diff --git a/.auto-changelog b/.auto-changelog index 05dc0059..b9bbd45a 100644 --- a/.auto-changelog +++ b/.auto-changelog @@ -1,11 +1 @@ -{ - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": 0, - "backfillLimit": 3, - "hideCredit": true, - "replaceText": { - "\\[([^\\]]+)\\]\\(https://github.com/[^/]+/([^/]+)/compare/[^)]+\\)": "[$1](https://github.com/fireblocks/$2/releases/tag/$1)" - } -} \ No newline at end of file +ewogICJvdXRwdXQiOiAiQ0hBTkdFTE9HLm1kIiwKICAidGVtcGxhdGUiOiAia2VlcGFjaGFuZ2Vsb2ciLAogICJ1bnJlbGVhc2VkIjogZmFsc2UsCiAgImNvbW1pdExpbWl0IjogMCwKICAiYmFja2ZpbGxMaW1pdCI6IDMsCiAgImhpZGVDcmVkaXQiOiB0cnVlLAogICJyZXBsYWNlVGV4dCI6IHsKICAgICJcXFsoW15cXF1dKylcXF1cXChodHRwczovL2dpdGh1Yi5jb20vW14vXSsvKFteL10rKS9jb21wYXJlL1teKV0rXFwpIjogIlskMV0oaHR0cHM6Ly9naXRodWIuY29tL2ZpcmVibG9ja3MvJDIvcmVsZWFzZXMvdGFnLyQxKSIKICB9Cn0= \ No newline at end of file diff --git a/.bump_version.toml b/.bump_version.toml index 5288f11f..4ce6df84 100644 --- a/.bump_version.toml +++ b/.bump_version.toml @@ -1,20 +1 @@ -[tool.bumpversion] -commit = false -tag = false -current_version = "placeholder_version" -parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)(\\.(?P[a-zA-Z0-9._+-]+))?" -serialize = [ - "{major}.{minor}.{patch}.{release}", - "{major}.{minor}.{patch}" -] -[[tool.bumpversion.files]] -filename = "setup.py" - -[[tool.bumpversion.files]] -filename = "pyproject.toml" - -[[tool.bumpversion.files]] -filename = "fireblocks/__init__.py" - -[[tool.bumpversion.files]] -filename = "fireblocks/configuration.py" +W3Rvb2wuYnVtcHZlcnNpb25dCmNvbW1pdCA9IGZhbHNlCnRhZyA9IGZhbHNlCmN1cnJlbnRfdmVyc2lvbiA9ICJwbGFjZWhvbGRlcl92ZXJzaW9uIgpwYXJzZSA9ICIoP1A8bWFqb3I+XFxkKylcXC4oP1A8bWlub3I+XFxkKylcXC4oP1A8cGF0Y2g+XFxkKykoXFwuKD9QPHJlbGVhc2U+W2EtekEtWjAtOS5fKy1dKykpPyIKc2VyaWFsaXplID0gWwogICAgInttYWpvcn0ue21pbm9yfS57cGF0Y2h9LntyZWxlYXNlfSIsCiAgICAie21ham9yfS57bWlub3J9LntwYXRjaH0iCl0KW1t0b29sLmJ1bXB2ZXJzaW9uLmZpbGVzXV0KZmlsZW5hbWUgPSAic2V0dXAucHkiCgpbW3Rvb2wuYnVtcHZlcnNpb24uZmlsZXNdXQpmaWxlbmFtZSA9ICJweXByb2plY3QudG9tbCIKCltbdG9vbC5idW1wdmVyc2lvbi5maWxlc11dCmZpbGVuYW1lID0gImZpcmVibG9ja3MvX19pbml0X18ucHkiCgpbW3Rvb2wuYnVtcHZlcnNpb24uZmlsZXNdXQpmaWxlbmFtZSA9ICJmaXJlYmxvY2tzL2NvbmZpZ3VyYXRpb24ucHkiCg== \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index d67c1163..30f19bf7 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,31 +1 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: bug -assignees: tomervil, yarinvak - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Versions (please complete the following information):** - - Python Version: [e.g 2.0] - - fireblocks-sdk version: [e.g. 1.7.0] - -**Additional context** -Add any other context about the problem here. +LS0tCm5hbWU6IEJ1ZyByZXBvcnQKYWJvdXQ6IENyZWF0ZSBhIHJlcG9ydCB0byBoZWxwIHVzIGltcHJvdmUKdGl0bGU6ICcnCmxhYmVsczogYnVnCmFzc2lnbmVlczogdG9tZXJ2aWwsIHlhcmludmFrCgotLS0KCioqRGVzY3JpYmUgdGhlIGJ1ZyoqCkEgY2xlYXIgYW5kIGNvbmNpc2UgZGVzY3JpcHRpb24gb2Ygd2hhdCB0aGUgYnVnIGlzLgoKKipUbyBSZXByb2R1Y2UqKgpTdGVwcyB0byByZXByb2R1Y2UgdGhlIGJlaGF2aW9yOgoxLiBHbyB0byAnLi4uJwoyLiBDbGljayBvbiAnLi4uLicKMy4gU2Nyb2xsIGRvd24gdG8gJy4uLi4nCjQuIFNlZSBlcnJvcgoKKipFeHBlY3RlZCBiZWhhdmlvcioqCkEgY2xlYXIgYW5kIGNvbmNpc2UgZGVzY3JpcHRpb24gb2Ygd2hhdCB5b3UgZXhwZWN0ZWQgdG8gaGFwcGVuLgoKKipTY3JlZW5zaG90cyoqCklmIGFwcGxpY2FibGUsIGFkZCBzY3JlZW5zaG90cyB0byBoZWxwIGV4cGxhaW4geW91ciBwcm9ibGVtLgoKKipWZXJzaW9ucyAocGxlYXNlIGNvbXBsZXRlIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb24pOioqCiAtIFB5dGhvbiBWZXJzaW9uOiBbZS5nIDIuMF0KIC0gZmlyZWJsb2Nrcy1zZGsgdmVyc2lvbjogW2UuZy4gMS43LjBdCgoqKkFkZGl0aW9uYWwgY29udGV4dCoqCkFkZCBhbnkgb3RoZXIgY29udGV4dCBhYm91dCB0aGUgcHJvYmxlbSBoZXJlLgo= \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 7a306380..21bbd6c5 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,17 +1 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: enhancement -assignees: michael-fireblocks, tomervil - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Additional context** -Add any other context or screenshots about the feature request here. +LS0tCm5hbWU6IEZlYXR1cmUgcmVxdWVzdAphYm91dDogU3VnZ2VzdCBhbiBpZGVhIGZvciB0aGlzIHByb2plY3QKdGl0bGU6ICcnCmxhYmVsczogZW5oYW5jZW1lbnQKYXNzaWduZWVzOiBtaWNoYWVsLWZpcmVibG9ja3MsIHRvbWVydmlsCgotLS0KCioqSXMgeW91ciBmZWF0dXJlIHJlcXVlc3QgcmVsYXRlZCB0byBhIHByb2JsZW0/IFBsZWFzZSBkZXNjcmliZS4qKgpBIGNsZWFyIGFuZCBjb25jaXNlIGRlc2NyaXB0aW9uIG9mIHdoYXQgdGhlIHByb2JsZW0gaXMuIEV4LiBJJ20gYWx3YXlzIGZydXN0cmF0ZWQgd2hlbiBbLi4uXQoKKipEZXNjcmliZSB0aGUgc29sdXRpb24geW91J2QgbGlrZSoqCkEgY2xlYXIgYW5kIGNvbmNpc2UgZGVzY3JpcHRpb24gb2Ygd2hhdCB5b3Ugd2FudCB0byBoYXBwZW4uCgoqKkFkZGl0aW9uYWwgY29udGV4dCoqCkFkZCBhbnkgb3RoZXIgY29udGV4dCBvciBzY3JlZW5zaG90cyBhYm91dCB0aGUgZmVhdHVyZSByZXF1ZXN0IGhlcmUuCg== \ No newline at end of file diff --git a/.github/workflows/auto-reply-issue.yml b/.github/workflows/auto-reply-issue.yml index 68595a5f..69286f8e 100644 --- a/.github/workflows/auto-reply-issue.yml +++ b/.github/workflows/auto-reply-issue.yml @@ -1,35 +1 @@ -name: Auto Reply On New Issues -on: - issues: - types: [opened] - -jobs: - auto-reply: - runs-on: ubuntu-latest - steps: - - name: Check out repository code - uses: actions/checkout@v4 - - - name: Choose random reply message - id: choose_message - run: | - reply_messages=( - "Thank you for raising this issue! We will look into it shortly." - "We appreciate your feedback. Our team will investigate this issue shortly." - "Your issue has been noted. We'll get back to you soon." - "Thanks for raising this issue. We'll review it and provide updates soon." - "Thank you for letting us know about this issue. We'll investigate and get back to you soon." - "Acknowledged. We'll review the issue and respond soon." - "Thanks for bringing this to our attention. We'll review it and provide updates soon." - "We've received your issue. Thanks for your patience." - "Noted. Expect updates on your issue shortly." - "Your issue is important to us. We will look into it shortly." - ) - random_index=$((RANDOM % ${#reply_messages[@]})) - echo "::set-output name=message::${reply_messages[$random_index]}" - - - name: Reply to issue - run: | - gh issue comment ${{ github.event.issue.number }} --body "${{ steps.choose_message.outputs.message }}" - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} +bmFtZTogQXV0byBSZXBseSBPbiBOZXcgSXNzdWVzCm9uOgogIGlzc3VlczoKICAgIHR5cGVzOiBbb3BlbmVkXQoKam9iczoKICBhdXRvLXJlcGx5OgogICAgcnVucy1vbjogdWJ1bnR1LWxhdGVzdAogICAgc3RlcHM6CiAgICAgIC0gbmFtZTogQ2hlY2sgb3V0IHJlcG9zaXRvcnkgY29kZQogICAgICAgIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjQKCiAgICAgIC0gbmFtZTogQ2hvb3NlIHJhbmRvbSByZXBseSBtZXNzYWdlCiAgICAgICAgaWQ6IGNob29zZV9tZXNzYWdlCiAgICAgICAgcnVuOiB8CiAgICAgICAgICByZXBseV9tZXNzYWdlcz0oCiAgICAgICAgICAgICJUaGFuayB5b3UgZm9yIHJhaXNpbmcgdGhpcyBpc3N1ZSEgV2Ugd2lsbCBsb29rIGludG8gaXQgc2hvcnRseS4iCiAgICAgICAgICAgICJXZSBhcHByZWNpYXRlIHlvdXIgZmVlZGJhY2suIE91ciB0ZWFtIHdpbGwgaW52ZXN0aWdhdGUgdGhpcyBpc3N1ZSBzaG9ydGx5LiIKICAgICAgICAgICAgIllvdXIgaXNzdWUgaGFzIGJlZW4gbm90ZWQuIFdlJ2xsIGdldCBiYWNrIHRvIHlvdSBzb29uLiIKICAgICAgICAgICAgIlRoYW5rcyBmb3IgcmFpc2luZyB0aGlzIGlzc3VlLiBXZSdsbCByZXZpZXcgaXQgYW5kIHByb3ZpZGUgdXBkYXRlcyBzb29uLiIKICAgICAgICAgICAgIlRoYW5rIHlvdSBmb3IgbGV0dGluZyB1cyBrbm93IGFib3V0IHRoaXMgaXNzdWUuIFdlJ2xsIGludmVzdGlnYXRlIGFuZCBnZXQgYmFjayB0byB5b3Ugc29vbi4iCiAgICAgICAgICAgICJBY2tub3dsZWRnZWQuIFdlJ2xsIHJldmlldyB0aGUgaXNzdWUgYW5kIHJlc3BvbmQgc29vbi4iCiAgICAgICAgICAgICJUaGFua3MgZm9yIGJyaW5naW5nIHRoaXMgdG8gb3VyIGF0dGVudGlvbi4gV2UnbGwgcmV2aWV3IGl0IGFuZCBwcm92aWRlIHVwZGF0ZXMgc29vbi4iCiAgICAgICAgICAgICJXZSd2ZSByZWNlaXZlZCB5b3VyIGlzc3VlLiBUaGFua3MgZm9yIHlvdXIgcGF0aWVuY2UuIgogICAgICAgICAgICAiTm90ZWQuIEV4cGVjdCB1cGRhdGVzIG9uIHlvdXIgaXNzdWUgc2hvcnRseS4iCiAgICAgICAgICAgICJZb3VyIGlzc3VlIGlzIGltcG9ydGFudCB0byB1cy4gV2Ugd2lsbCBsb29rIGludG8gaXQgc2hvcnRseS4iCiAgICAgICAgICApCiAgICAgICAgICByYW5kb21faW5kZXg9JCgoUkFORE9NICUgJHsjcmVwbHlfbWVzc2FnZXNbQF19KSkKICAgICAgICAgIGVjaG8gIjo6c2V0LW91dHB1dCBuYW1lPW1lc3NhZ2U6OiR7cmVwbHlfbWVzc2FnZXNbJHJhbmRvbV9pbmRleF19IgoKICAgICAgLSBuYW1lOiBSZXBseSB0byBpc3N1ZQogICAgICAgIHJ1bjogfAogICAgICAgICAgZ2ggaXNzdWUgY29tbWVudCAke3sgZ2l0aHViLmV2ZW50Lmlzc3VlLm51bWJlciB9fSAtLWJvZHkgIiR7eyBzdGVwcy5jaG9vc2VfbWVzc2FnZS5vdXRwdXRzLm1lc3NhZ2UgfX0iCiAgICAgICAgZW52OgogICAgICAgICAgR0hfVE9LRU46ICR7eyBzZWNyZXRzLkdJVEhVQl9UT0tFTiB9fQo= \ No newline at end of file diff --git a/.github/workflows/auto-reply-pr.yml b/.github/workflows/auto-reply-pr.yml index 932dd4a8..30234217 100644 --- a/.github/workflows/auto-reply-pr.yml +++ b/.github/workflows/auto-reply-pr.yml @@ -1,36 +1 @@ -name: Auto Reply On New Pull Requests -on: - pull_request: - types: [opened] - -jobs: - auto-reply: - runs-on: ubuntu-latest - steps: - - name: Check out repository code - uses: actions/checkout@v4 - - - name: Choose random reply message - id: choose_message - run: | - reply_messages=( - "Thank you for raising this! We will review it shortly. (Note that this SDK code is auto generated)" - "We appreciate your contribution. Our team will investigate this request shortly. (Note that this SDK code is auto generated)" - "Your request has been noted. We'll get back to you soon. (Note that this SDK code is auto generated)" - "Thanks for submitting this request. We'll review it and provide updates soon. (Note that this SDK code is auto generated)" - "Thank you for letting us know about this request. We'll investigate and get back to you soon. (Note that this SDK code is auto generated)" - "Acknowledged. We'll review and respond soon. (Note that this SDK code is auto generated)" - "Thanks for bringing this request to our attention. We'll review and provide updates soon. (Note that this SDK code is auto generated)" - "We've received your request. Thanks for your patience. (Note that this SDK code is auto generated)" - "Noted. Expect updates shortly. (Note that this SDK code is auto generated)" - "Your request is important to us. We will look into it shortly. (Note that this SDK code is auto generated)" - ) - random_index=$((RANDOM % ${#reply_messages[@]})) - echo "::set-output name=message::${reply_messages[$random_index]}" - - - name: Reply to pull request - if: (!contains(fromJSON('["github-actions"]'), github.event.pull_request.user.login)) - run: | - gh pr comment ${{ github.event.number }} --body "${{ steps.choose_message.outputs.message }}" - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} +bmFtZTogQXV0byBSZXBseSBPbiBOZXcgUHVsbCBSZXF1ZXN0cwpvbjoKICBwdWxsX3JlcXVlc3Q6CiAgICB0eXBlczogW29wZW5lZF0KCmpvYnM6CiAgYXV0by1yZXBseToKICAgIHJ1bnMtb246IHVidW50dS1sYXRlc3QKICAgIHN0ZXBzOgogICAgICAtIG5hbWU6IENoZWNrIG91dCByZXBvc2l0b3J5IGNvZGUKICAgICAgICB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHY0CgogICAgICAtIG5hbWU6IENob29zZSByYW5kb20gcmVwbHkgbWVzc2FnZQogICAgICAgIGlkOiBjaG9vc2VfbWVzc2FnZQogICAgICAgIHJ1bjogfAogICAgICAgICAgcmVwbHlfbWVzc2FnZXM9KAogICAgICAgICAgICAiVGhhbmsgeW91IGZvciByYWlzaW5nIHRoaXMhIFdlIHdpbGwgcmV2aWV3IGl0IHNob3J0bHkuIChOb3RlIHRoYXQgdGhpcyBTREsgY29kZSBpcyBhdXRvIGdlbmVyYXRlZCkiCiAgICAgICAgICAgICJXZSBhcHByZWNpYXRlIHlvdXIgY29udHJpYnV0aW9uLiBPdXIgdGVhbSB3aWxsIGludmVzdGlnYXRlIHRoaXMgcmVxdWVzdCBzaG9ydGx5LiAoTm90ZSB0aGF0IHRoaXMgU0RLIGNvZGUgaXMgYXV0byBnZW5lcmF0ZWQpIgogICAgICAgICAgICAiWW91ciByZXF1ZXN0IGhhcyBiZWVuIG5vdGVkLiBXZSdsbCBnZXQgYmFjayB0byB5b3Ugc29vbi4gKE5vdGUgdGhhdCB0aGlzIFNESyBjb2RlIGlzIGF1dG8gZ2VuZXJhdGVkKSIKICAgICAgICAgICAgIlRoYW5rcyBmb3Igc3VibWl0dGluZyB0aGlzIHJlcXVlc3QuIFdlJ2xsIHJldmlldyBpdCBhbmQgcHJvdmlkZSB1cGRhdGVzIHNvb24uIChOb3RlIHRoYXQgdGhpcyBTREsgY29kZSBpcyBhdXRvIGdlbmVyYXRlZCkiCiAgICAgICAgICAgICJUaGFuayB5b3UgZm9yIGxldHRpbmcgdXMga25vdyBhYm91dCB0aGlzIHJlcXVlc3QuIFdlJ2xsIGludmVzdGlnYXRlIGFuZCBnZXQgYmFjayB0byB5b3Ugc29vbi4gKE5vdGUgdGhhdCB0aGlzIFNESyBjb2RlIGlzIGF1dG8gZ2VuZXJhdGVkKSIKICAgICAgICAgICAgIkFja25vd2xlZGdlZC4gV2UnbGwgcmV2aWV3IGFuZCByZXNwb25kIHNvb24uIChOb3RlIHRoYXQgdGhpcyBTREsgY29kZSBpcyBhdXRvIGdlbmVyYXRlZCkiCiAgICAgICAgICAgICJUaGFua3MgZm9yIGJyaW5naW5nIHRoaXMgcmVxdWVzdCB0byBvdXIgYXR0ZW50aW9uLiBXZSdsbCByZXZpZXcgYW5kIHByb3ZpZGUgdXBkYXRlcyBzb29uLiAoTm90ZSB0aGF0IHRoaXMgU0RLIGNvZGUgaXMgYXV0byBnZW5lcmF0ZWQpIgogICAgICAgICAgICAiV2UndmUgcmVjZWl2ZWQgeW91ciByZXF1ZXN0LiBUaGFua3MgZm9yIHlvdXIgcGF0aWVuY2UuIChOb3RlIHRoYXQgdGhpcyBTREsgY29kZSBpcyBhdXRvIGdlbmVyYXRlZCkiCiAgICAgICAgICAgICJOb3RlZC4gRXhwZWN0IHVwZGF0ZXMgc2hvcnRseS4gKE5vdGUgdGhhdCB0aGlzIFNESyBjb2RlIGlzIGF1dG8gZ2VuZXJhdGVkKSIKICAgICAgICAgICAgIllvdXIgcmVxdWVzdCBpcyBpbXBvcnRhbnQgdG8gdXMuIFdlIHdpbGwgbG9vayBpbnRvIGl0IHNob3J0bHkuIChOb3RlIHRoYXQgdGhpcyBTREsgY29kZSBpcyBhdXRvIGdlbmVyYXRlZCkiCiAgICAgICAgICApCiAgICAgICAgICByYW5kb21faW5kZXg9JCgoUkFORE9NICUgJHsjcmVwbHlfbWVzc2FnZXNbQF19KSkKICAgICAgICAgIGVjaG8gIjo6c2V0LW91dHB1dCBuYW1lPW1lc3NhZ2U6OiR7cmVwbHlfbWVzc2FnZXNbJHJhbmRvbV9pbmRleF19IgoKICAgICAgLSBuYW1lOiBSZXBseSB0byBwdWxsIHJlcXVlc3QKICAgICAgICBpZjogKCFjb250YWlucyhmcm9tSlNPTignWyJnaXRodWItYWN0aW9ucyJdJyksIGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QudXNlci5sb2dpbikpCiAgICAgICAgcnVuOiB8CiAgICAgICAgICBnaCBwciBjb21tZW50ICR7eyBnaXRodWIuZXZlbnQubnVtYmVyIH19IC0tYm9keSAiJHt7IHN0ZXBzLmNob29zZV9tZXNzYWdlLm91dHB1dHMubWVzc2FnZSB9fSIKICAgICAgICBlbnY6CiAgICAgICAgICBHSF9UT0tFTjogJHt7IHNlY3JldHMuR0lUSFVCX1RPS0VOIH19Cg== \ No newline at end of file diff --git a/.github/workflows/draft-release-from-pr.yml b/.github/workflows/draft-release-from-pr.yml index ae3c2269..6425db0a 100644 --- a/.github/workflows/draft-release-from-pr.yml +++ b/.github/workflows/draft-release-from-pr.yml @@ -1,91 +1 @@ -name: Draft Release from PR - -on: - push: - branches: - - master - -permissions: - contents: write - pull-requests: read - -jobs: - draft-release: - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Get last merged PR - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - gh pr list \ - --state merged \ - --base master \ - --limit 1 \ - --json number,title,body,labels \ - > pr.json - - PR_NUM=$(jq -r '.[0].number // "none"' pr.json) - PR_TITLE=$(jq -r '.[0].title // "none"' pr.json) - echo "Found merged PR: #$PR_NUM - $PR_TITLE" - - - name: Get latest release version - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - LAST_TAG=$(gh release list --limit 1 --json tagName -q '.[0].tagName') - - if [[ -z "$LAST_TAG" || "$LAST_TAG" == "null" ]]; then - echo "No existing release found. A release tag is required to calculate the next version." - exit 1 - fi - - echo "Found latest release: $LAST_TAG" - echo "LAST_TAG=$LAST_TAG" >> $GITHUB_ENV - - - name: Calculate next version from labels - run: | - V="${LAST_TAG#v}" - - MAJOR=$(echo $V | cut -d. -f1) - MINOR=$(echo $V | cut -d. -f2) - PATCH=$(echo $V | cut -d. -f3) - - LABELS=$(jq -r '.[0].labels[].name' pr.json) - echo "Found labels: $LABELS" - - if echo "$LABELS" | grep -q "major"; then - echo "Bumping MAJOR version" - MAJOR=$((MAJOR+1)) - MINOR=0 - PATCH=0 - elif echo "$LABELS" | grep -q "minor"; then - echo "Bumping MINOR version" - MINOR=$((MINOR+1)) - PATCH=0 - else - echo "Bumping PATCH version" - PATCH=$((PATCH+1)) - fi - - echo "Calculated next version: v$MAJOR.$MINOR.$PATCH" - echo "VERSION=v$MAJOR.$MINOR.$PATCH" >> $GITHUB_ENV - - - name: Create DRAFT release using PR BODY - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - PR_BODY=$(jq -r '.[0].body // ""' pr.json) - - echo "Creating draft release..." - echo "Version: $VERSION" - - gh release create "$VERSION" \ - --draft \ - --title "$VERSION" \ - --notes "$PR_BODY" - - echo "Draft release created successfully!" \ No newline at end of file +bmFtZTogRHJhZnQgUmVsZWFzZSBmcm9tIFBSCgpvbjoKICBwdXNoOgogICAgYnJhbmNoZXM6CiAgICAgIC0gbWFzdGVyCgpwZXJtaXNzaW9uczoKICBjb250ZW50czogd3JpdGUKICBwdWxsLXJlcXVlc3RzOiByZWFkCgpqb2JzOgogIGRyYWZ0LXJlbGVhc2U6CiAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0CgogICAgc3RlcHM6CiAgICAgIC0gbmFtZTogQ2hlY2tvdXQgcmVwb3NpdG9yeQogICAgICAgIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjQKCiAgICAgIC0gbmFtZTogR2V0IGxhc3QgbWVyZ2VkIFBSCiAgICAgICAgZW52OgogICAgICAgICAgR0hfVE9LRU46ICR7eyBzZWNyZXRzLkdJVEhVQl9UT0tFTiB9fQogICAgICAgIHJ1bjogfAogICAgICAgICAgZ2ggcHIgbGlzdCBcCiAgICAgICAgICAgIC0tc3RhdGUgbWVyZ2VkIFwKICAgICAgICAgICAgLS1iYXNlIG1hc3RlciBcCiAgICAgICAgICAgIC0tbGltaXQgMSBcCiAgICAgICAgICAgIC0tanNvbiBudW1iZXIsdGl0bGUsYm9keSxsYWJlbHMgXAogICAgICAgICAgICA+IHByLmpzb24KICAgICAgICAgIAogICAgICAgICAgUFJfTlVNPSQoanEgLXIgJy5bMF0ubnVtYmVyIC8vICJub25lIicgcHIuanNvbikKICAgICAgICAgIFBSX1RJVExFPSQoanEgLXIgJy5bMF0udGl0bGUgLy8gIm5vbmUiJyBwci5qc29uKQogICAgICAgICAgZWNobyAiRm91bmQgbWVyZ2VkIFBSOiAjJFBSX05VTSAtICRQUl9USVRMRSIKCiAgICAgIC0gbmFtZTogR2V0IGxhdGVzdCByZWxlYXNlIHZlcnNpb24KICAgICAgICBlbnY6CiAgICAgICAgICBHSF9UT0tFTjogJHt7IHNlY3JldHMuR0lUSFVCX1RPS0VOIH19CiAgICAgICAgcnVuOiB8CiAgICAgICAgICBMQVNUX1RBRz0kKGdoIHJlbGVhc2UgbGlzdCAtLWxpbWl0IDEgLS1qc29uIHRhZ05hbWUgLXEgJy5bMF0udGFnTmFtZScpCgogICAgICAgICAgaWYgW1sgLXogIiRMQVNUX1RBRyIgfHwgIiRMQVNUX1RBRyIgPT0gIm51bGwiIF1dOyB0aGVuCiAgICAgICAgICAgIGVjaG8gIk5vIGV4aXN0aW5nIHJlbGVhc2UgZm91bmQuIEEgcmVsZWFzZSB0YWcgaXMgcmVxdWlyZWQgdG8gY2FsY3VsYXRlIHRoZSBuZXh0IHZlcnNpb24uIgogICAgICAgICAgICBleGl0IDEKICAgICAgICAgIGZpCgogICAgICAgICAgZWNobyAiRm91bmQgbGF0ZXN0IHJlbGVhc2U6ICRMQVNUX1RBRyIKICAgICAgICAgIGVjaG8gIkxBU1RfVEFHPSRMQVNUX1RBRyIgPj4gJEdJVEhVQl9FTlYKCiAgICAgIC0gbmFtZTogQ2FsY3VsYXRlIG5leHQgdmVyc2lvbiBmcm9tIGxhYmVscwogICAgICAgIHJ1bjogfAogICAgICAgICAgVj0iJHtMQVNUX1RBRyN2fSIKCiAgICAgICAgICBNQUpPUj0kKGVjaG8gJFYgfCBjdXQgLWQuIC1mMSkKICAgICAgICAgIE1JTk9SPSQoZWNobyAkViB8IGN1dCAtZC4gLWYyKQogICAgICAgICAgUEFUQ0g9JChlY2hvICRWIHwgY3V0IC1kLiAtZjMpCgogICAgICAgICAgTEFCRUxTPSQoanEgLXIgJy5bMF0ubGFiZWxzW10ubmFtZScgcHIuanNvbikKICAgICAgICAgIGVjaG8gIkZvdW5kIGxhYmVsczogJExBQkVMUyIKCiAgICAgICAgICBpZiBlY2hvICIkTEFCRUxTIiB8IGdyZXAgLXEgIm1ham9yIjsgdGhlbgogICAgICAgICAgICBlY2hvICJCdW1waW5nIE1BSk9SIHZlcnNpb24iCiAgICAgICAgICAgIE1BSk9SPSQoKE1BSk9SKzEpKQogICAgICAgICAgICBNSU5PUj0wCiAgICAgICAgICAgIFBBVENIPTAKICAgICAgICAgIGVsaWYgZWNobyAiJExBQkVMUyIgfCBncmVwIC1xICJtaW5vciI7IHRoZW4KICAgICAgICAgICAgZWNobyAiQnVtcGluZyBNSU5PUiB2ZXJzaW9uIgogICAgICAgICAgICBNSU5PUj0kKChNSU5PUisxKSkKICAgICAgICAgICAgUEFUQ0g9MAogICAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICJCdW1waW5nIFBBVENIIHZlcnNpb24iCiAgICAgICAgICAgIFBBVENIPSQoKFBBVENIKzEpKQogICAgICAgICAgZmkKCiAgICAgICAgICBlY2hvICJDYWxjdWxhdGVkIG5leHQgdmVyc2lvbjogdiRNQUpPUi4kTUlOT1IuJFBBVENIIgogICAgICAgICAgZWNobyAiVkVSU0lPTj12JE1BSk9SLiRNSU5PUi4kUEFUQ0giID4+ICRHSVRIVUJfRU5WCgogICAgICAtIG5hbWU6IENyZWF0ZSBEUkFGVCByZWxlYXNlIHVzaW5nIFBSIEJPRFkKICAgICAgICBlbnY6CiAgICAgICAgICBHSF9UT0tFTjogJHt7IHNlY3JldHMuR0lUSFVCX1RPS0VOIH19CiAgICAgICAgcnVuOiB8CiAgICAgICAgICBQUl9CT0RZPSQoanEgLXIgJy5bMF0uYm9keSAvLyAiIicgcHIuanNvbikKCiAgICAgICAgICBlY2hvICJDcmVhdGluZyBkcmFmdCByZWxlYXNlLi4uIgogICAgICAgICAgZWNobyAiVmVyc2lvbjogJFZFUlNJT04iCgogICAgICAgICAgZ2ggcmVsZWFzZSBjcmVhdGUgIiRWRVJTSU9OIiBcCiAgICAgICAgICAgIC0tZHJhZnQgXAogICAgICAgICAgICAtLXRpdGxlICIkVkVSU0lPTiIgXAogICAgICAgICAgICAtLW5vdGVzICIkUFJfQk9EWSIKICAgICAgICAgIAogICAgICAgICAgZWNobyAiRHJhZnQgcmVsZWFzZSBjcmVhdGVkIHN1Y2Nlc3NmdWxseSEi \ No newline at end of file diff --git a/.github/workflows/pr-auto-label.yml b/.github/workflows/pr-auto-label.yml index e5df470a..317986d9 100644 --- a/.github/workflows/pr-auto-label.yml +++ b/.github/workflows/pr-auto-label.yml @@ -1,37 +1 @@ -name: PR Auto Label - -on: - pull_request: - types: [opened, edited, reopened, synchronize] - -permissions: - pull-requests: write - contents: read - -jobs: - label: - runs-on: ubuntu-latest - steps: - - name: Label PR by title - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - TITLE: ${{ github.event.pull_request.title }} - PR: ${{ github.event.pull_request.number }} - REPO: ${{ github.repository }} - run: | - label="" - - if [[ "$TITLE" =~ \(major\) ]]; then - label="major" - elif [[ "$TITLE" =~ \(minor\) ]]; then - label="minor" - elif [[ "$TITLE" =~ \(patch\) ]]; then - label="patch" - fi - - if [[ -n "$label" ]]; then - echo "Found label: $label" - gh pr edit "$PR" --repo "$REPO" --add-label "$label" - else - echo "No label found in title: $TITLE" - fi +bmFtZTogUFIgQXV0byBMYWJlbAoKb246CiAgcHVsbF9yZXF1ZXN0OgogICAgdHlwZXM6IFtvcGVuZWQsIGVkaXRlZCwgcmVvcGVuZWQsIHN5bmNocm9uaXplXQoKcGVybWlzc2lvbnM6CiAgcHVsbC1yZXF1ZXN0czogd3JpdGUKICBjb250ZW50czogcmVhZAoKam9iczoKICBsYWJlbDoKICAgIHJ1bnMtb246IHVidW50dS1sYXRlc3QKICAgIHN0ZXBzOgogICAgICAtIG5hbWU6IExhYmVsIFBSIGJ5IHRpdGxlCiAgICAgICAgZW52OgogICAgICAgICAgR0hfVE9LRU46ICR7eyBzZWNyZXRzLkdJVEhVQl9UT0tFTiB9fQogICAgICAgICAgVElUTEU6ICR7eyBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LnRpdGxlIH19CiAgICAgICAgICBQUjogJHt7IGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QubnVtYmVyIH19CiAgICAgICAgICBSRVBPOiAke3sgZ2l0aHViLnJlcG9zaXRvcnkgfX0KICAgICAgICBydW46IHwKICAgICAgICAgIGxhYmVsPSIiCgogICAgICAgICAgaWYgW1sgIiRUSVRMRSIgPX4gXChtYWpvclwpIF1dOyB0aGVuCiAgICAgICAgICAgIGxhYmVsPSJtYWpvciIKICAgICAgICAgIGVsaWYgW1sgIiRUSVRMRSIgPX4gXChtaW5vclwpIF1dOyB0aGVuCiAgICAgICAgICAgIGxhYmVsPSJtaW5vciIKICAgICAgICAgIGVsaWYgW1sgIiRUSVRMRSIgPX4gXChwYXRjaFwpIF1dOyB0aGVuCiAgICAgICAgICAgIGxhYmVsPSJwYXRjaCIKICAgICAgICAgIGZpCiAgICAgICAgICAKICAgICAgICAgIGlmIFtbIC1uICIkbGFiZWwiIF1dOyB0aGVuCiAgICAgICAgICAgIGVjaG8gIkZvdW5kIGxhYmVsOiAkbGFiZWwiCiAgICAgICAgICAgIGdoIHByIGVkaXQgIiRQUiIgLS1yZXBvICIkUkVQTyIgLS1hZGQtbGFiZWwgIiRsYWJlbCIKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgZWNobyAiTm8gbGFiZWwgZm91bmQgaW4gdGl0bGU6ICRUSVRMRSIKICAgICAgICAgIGZpCg== \ No newline at end of file diff --git a/.github/workflows/pr-title-validation.yml b/.github/workflows/pr-title-validation.yml index 6cf926de..138e544e 100644 --- a/.github/workflows/pr-title-validation.yml +++ b/.github/workflows/pr-title-validation.yml @@ -1,12 +1 @@ -name: PR Title Validation -on: - pull_request: - types: [opened, edited, synchronize, reopened] -jobs: - validate: - runs-on: ubuntu-latest - steps: - - uses: deepakputhraya/action-pr-title@master - with: - disallowed_prefixes: 'COR-' - prefix_case_sensitive: false +bmFtZTogUFIgVGl0bGUgVmFsaWRhdGlvbgpvbjoKICBwdWxsX3JlcXVlc3Q6CiAgICB0eXBlczogW29wZW5lZCwgZWRpdGVkLCBzeW5jaHJvbml6ZSwgcmVvcGVuZWRdCmpvYnM6CiAgdmFsaWRhdGU6CiAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0CiAgICBzdGVwczoKICAgIC0gdXNlczogZGVlcGFrcHV0aHJheWEvYWN0aW9uLXByLXRpdGxlQG1hc3RlcgogICAgICB3aXRoOgogICAgICAgIGRpc2FsbG93ZWRfcHJlZml4ZXM6ICdDT1ItJwogICAgICAgIHByZWZpeF9jYXNlX3NlbnNpdGl2ZTogZmFsc2UK \ No newline at end of file diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 19c50db7..61f3f7c6 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -1,36 +1 @@ -name: Python package - -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - -jobs: - build: - strategy: - matrix: - python-version: [ "3.10", 3.11, 3.12, 3.13, 3.14 ] - os: [ macos-14, windows-latest, ubuntu-22.04, ubuntu-24.04 ] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install flake8 pytest - - name: Lint with ..flake8 - run: | - # stop the build if there are Python syntax errors or undefined names - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - - name: Build package - run: pip install -e . -# - name: Test with pytest -# run: | -# pytest +bmFtZTogUHl0aG9uIHBhY2thZ2UKCm9uOgogIHB1c2g6CiAgICBicmFuY2hlczogWyBtYXN0ZXIgXQogIHB1bGxfcmVxdWVzdDoKICAgIGJyYW5jaGVzOiBbIG1hc3RlciBdCgpqb2JzOgogIGJ1aWxkOgogICAgc3RyYXRlZ3k6CiAgICAgIG1hdHJpeDoKICAgICAgICBweXRob24tdmVyc2lvbjogWyAiMy4xMCIsIDMuMTEsIDMuMTIsIDMuMTMsIDMuMTQgXQogICAgICAgIG9zOiBbIG1hY29zLTE0LCB3aW5kb3dzLWxhdGVzdCwgdWJ1bnR1LTIyLjA0LCB1YnVudHUtMjQuMDQgXQogICAgcnVucy1vbjogJHt7IG1hdHJpeC5vcyB9fQogICAgc3RlcHM6CiAgICAgIC0gdXNlczogYWN0aW9ucy9jaGVja291dEB2MwogICAgICAtIG5hbWU6IFNldCB1cCBQeXRob24gJHt7IG1hdHJpeC5weXRob24tdmVyc2lvbiB9fQogICAgICAgIHVzZXM6IGFjdGlvbnMvc2V0dXAtcHl0aG9uQHY0CiAgICAgICAgd2l0aDoKICAgICAgICAgIHB5dGhvbi12ZXJzaW9uOiAke3sgbWF0cml4LnB5dGhvbi12ZXJzaW9uIH19CiAgICAgIC0gbmFtZTogSW5zdGFsbCBkZXBlbmRlbmNpZXMKICAgICAgICBydW46IHwKICAgICAgICAgIHB5dGhvbiAtbSBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgcGlwCiAgICAgICAgICBwaXAgaW5zdGFsbCBmbGFrZTggcHl0ZXN0CiAgICAgIC0gbmFtZTogTGludCB3aXRoIC4uZmxha2U4CiAgICAgICAgcnVuOiB8CiAgICAgICAgICAjIHN0b3AgdGhlIGJ1aWxkIGlmIHRoZXJlIGFyZSBQeXRob24gc3ludGF4IGVycm9ycyBvciB1bmRlZmluZWQgbmFtZXMKICAgICAgICAgIGZsYWtlOCAuIC0tY291bnQgLS1zZWxlY3Q9RTksRjYzLEY3LEY4MiAtLXNob3ctc291cmNlIC0tc3RhdGlzdGljcwogICAgICAgICAgIyBleGl0LXplcm8gdHJlYXRzIGFsbCBlcnJvcnMgYXMgd2FybmluZ3MuIFRoZSBHaXRIdWIgZWRpdG9yIGlzIDEyNyBjaGFycyB3aWRlCiAgICAgICAgICBmbGFrZTggLiAtLWNvdW50IC0tZXhpdC16ZXJvIC0tbWF4LWNvbXBsZXhpdHk9MTAgLS1tYXgtbGluZS1sZW5ndGg9MTI3IC0tc3RhdGlzdGljcwogICAgICAtIG5hbWU6IEJ1aWxkIHBhY2thZ2UKICAgICAgICBydW46IHBpcCBpbnN0YWxsIC1lIC4KIyAgICAgIC0gbmFtZTogVGVzdCB3aXRoIHB5dGVzdAojICAgICAgICBydW46IHwKIyAgICAgICAgICBweXRlc3QK \ No newline at end of file diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index df986b00..73d94733 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -1,88 +1 @@ -name: Upload Python Package - -on: - release: - types: [ published ] - -jobs: - bump-version: - runs-on: ubuntu-latest - steps: - - name: Generate GitHub App token - id: generate-token - uses: actions/create-github-app-token@v2 - with: - app-id: ${{ vars.SDK_GENERATION_APP_ID }} - private-key: ${{ secrets.SDK_GENERATION_APP_PRIVATE_KEY }} - - - name: Check out repository code - uses: actions/checkout@v4 - with: - token: ${{ steps.generate-token.outputs.token }} - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3' - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install bump-my-version - npm i -g auto-changelog - - name: Bump version - run: | - initialTag=${{ github.event.release.tag_name }} - tag="${initialTag//[v]/}" - echo $tag - git remote update - git fetch - echo "finished fetching" - git checkout --track origin/master - echo "finished checkout" - git config --global user.email "github-actions@github.com" - git config --global user.name "Github Actions" - echo "finished configuration" - bump-my-version bump --config-file .bump_version.toml --current-version 0.0.0 --new-version $tag - echo "bumpversion finished" - auto-changelog - git add . - git commit -m "release $tag" - git push - - - name: Move tag - run: | - TAG_NAME=${{ github.event.release.tag_name }} - echo $TAG_NAME - git tag --force $TAG_NAME - git push --force origin $TAG_NAME - - publish: - needs: bump-version - runs-on: ubuntu-latest - permissions: - id-token: write # Required for OIDC/Trusted Publishing - contents: read - steps: - - name: Check out repository code - uses: actions/checkout@v4 - with: - ref: master - fetch-depth: 0 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3' - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install build - - - name: Build package - run: python -m build - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@release/v1 - # No user/password needed - OIDC handles authentication +bmFtZTogVXBsb2FkIFB5dGhvbiBQYWNrYWdlCgpvbjoKICByZWxlYXNlOgogICAgdHlwZXM6IFsgcHVibGlzaGVkIF0KCmpvYnM6CiAgYnVtcC12ZXJzaW9uOgogICAgcnVucy1vbjogdWJ1bnR1LWxhdGVzdAogICAgc3RlcHM6CiAgICAgIC0gbmFtZTogR2VuZXJhdGUgR2l0SHViIEFwcCB0b2tlbgogICAgICAgIGlkOiBnZW5lcmF0ZS10b2tlbgogICAgICAgIHVzZXM6IGFjdGlvbnMvY3JlYXRlLWdpdGh1Yi1hcHAtdG9rZW5AdjIKICAgICAgICB3aXRoOgogICAgICAgICAgYXBwLWlkOiAke3sgdmFycy5TREtfR0VORVJBVElPTl9BUFBfSUQgfX0KICAgICAgICAgIHByaXZhdGUta2V5OiAke3sgc2VjcmV0cy5TREtfR0VORVJBVElPTl9BUFBfUFJJVkFURV9LRVkgfX0KCiAgICAgIC0gbmFtZTogQ2hlY2sgb3V0IHJlcG9zaXRvcnkgY29kZQogICAgICAgIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjQKICAgICAgICB3aXRoOgogICAgICAgICAgdG9rZW46ICR7eyBzdGVwcy5nZW5lcmF0ZS10b2tlbi5vdXRwdXRzLnRva2VuIH19CgogICAgICAtIG5hbWU6IFNldCB1cCBQeXRob24KICAgICAgICB1c2VzOiBhY3Rpb25zL3NldHVwLXB5dGhvbkB2NQogICAgICAgIHdpdGg6CiAgICAgICAgICBweXRob24tdmVyc2lvbjogJzMnCgogICAgICAtIG5hbWU6IEluc3RhbGwgZGVwZW5kZW5jaWVzCiAgICAgICAgcnVuOiB8CiAgICAgICAgICBweXRob24gLW0gcGlwIGluc3RhbGwgLS11cGdyYWRlIHBpcAogICAgICAgICAgcGlwIGluc3RhbGwgYnVtcC1teS12ZXJzaW9uCiAgICAgICAgICBucG0gaSAtZyBhdXRvLWNoYW5nZWxvZwoKICAgICAgLSBuYW1lOiBCdW1wIHZlcnNpb24KICAgICAgICBydW46IHwKICAgICAgICAgIGluaXRpYWxUYWc9JHt7IGdpdGh1Yi5ldmVudC5yZWxlYXNlLnRhZ19uYW1lIH19CiAgICAgICAgICB0YWc9IiR7aW5pdGlhbFRhZy8vW3ZdL30iCiAgICAgICAgICBlY2hvICR0YWcKICAgICAgICAgIGdpdCByZW1vdGUgdXBkYXRlCiAgICAgICAgICBnaXQgZmV0Y2gKICAgICAgICAgIGVjaG8gImZpbmlzaGVkIGZldGNoaW5nIgogICAgICAgICAgZ2l0IGNoZWNrb3V0IC0tdHJhY2sgb3JpZ2luL21hc3RlcgogICAgICAgICAgZWNobyAiZmluaXNoZWQgY2hlY2tvdXQiCiAgICAgICAgICBnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgImdpdGh1Yi1hY3Rpb25zQGdpdGh1Yi5jb20iCiAgICAgICAgICBnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIubmFtZSAiR2l0aHViIEFjdGlvbnMiCiAgICAgICAgICBlY2hvICJmaW5pc2hlZCBjb25maWd1cmF0aW9uIgogICAgICAgICAgYnVtcC1teS12ZXJzaW9uIGJ1bXAgLS1jb25maWctZmlsZSAuYnVtcF92ZXJzaW9uLnRvbWwgLS1jdXJyZW50LXZlcnNpb24gMC4wLjAgLS1uZXctdmVyc2lvbiAkdGFnCiAgICAgICAgICBlY2hvICJidW1wdmVyc2lvbiBmaW5pc2hlZCIKICAgICAgICAgIGF1dG8tY2hhbmdlbG9nCiAgICAgICAgICBnaXQgYWRkIC4KICAgICAgICAgIGdpdCBjb21taXQgLW0gInJlbGVhc2UgJHRhZyIKICAgICAgICAgIGdpdCBwdXNoCgogICAgICAtIG5hbWU6IE1vdmUgdGFnCiAgICAgICAgcnVuOiB8CiAgICAgICAgICBUQUdfTkFNRT0ke3sgZ2l0aHViLmV2ZW50LnJlbGVhc2UudGFnX25hbWUgfX0KICAgICAgICAgIGVjaG8gJFRBR19OQU1FCiAgICAgICAgICBnaXQgdGFnIC0tZm9yY2UgJFRBR19OQU1FCiAgICAgICAgICBnaXQgcHVzaCAtLWZvcmNlIG9yaWdpbiAkVEFHX05BTUUKCiAgcHVibGlzaDoKICAgIG5lZWRzOiBidW1wLXZlcnNpb24KICAgIHJ1bnMtb246IHVidW50dS1sYXRlc3QKICAgIHBlcm1pc3Npb25zOgogICAgICBpZC10b2tlbjogd3JpdGUgICMgUmVxdWlyZWQgZm9yIE9JREMvVHJ1c3RlZCBQdWJsaXNoaW5nCiAgICAgIGNvbnRlbnRzOiByZWFkCiAgICBzdGVwczoKICAgICAgLSBuYW1lOiBDaGVjayBvdXQgcmVwb3NpdG9yeSBjb2RlCiAgICAgICAgdXNlczogYWN0aW9ucy9jaGVja291dEB2NAogICAgICAgIHdpdGg6CiAgICAgICAgICByZWY6IG1hc3RlcgogICAgICAgICAgZmV0Y2gtZGVwdGg6IDAKCiAgICAgIC0gbmFtZTogU2V0IHVwIFB5dGhvbgogICAgICAgIHVzZXM6IGFjdGlvbnMvc2V0dXAtcHl0aG9uQHY1CiAgICAgICAgd2l0aDoKICAgICAgICAgIHB5dGhvbi12ZXJzaW9uOiAnMycKCiAgICAgIC0gbmFtZTogSW5zdGFsbCBkZXBlbmRlbmNpZXMKICAgICAgICBydW46IHwKICAgICAgICAgIHB5dGhvbiAtbSBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgcGlwCiAgICAgICAgICBwaXAgaW5zdGFsbCBidWlsZAoKICAgICAgLSBuYW1lOiBCdWlsZCBwYWNrYWdlCiAgICAgICAgcnVuOiBweXRob24gLW0gYnVpbGQKCiAgICAgIC0gbmFtZTogUHVibGlzaCBwYWNrYWdlIHRvIFB5UEkKICAgICAgICB1c2VzOiBweXBhL2doLWFjdGlvbi1weXBpLXB1Ymxpc2hAcmVsZWFzZS92MQogICAgICAgICMgTm8gdXNlci9wYXNzd29yZCBuZWVkZWQgLSBPSURDIGhhbmRsZXMgYXV0aGVudGljYXRpb24= \ No newline at end of file diff --git a/.gitignore b/.gitignore index 43995bd4..b9906037 100644 --- a/.gitignore +++ b/.gitignore @@ -1,66 +1 @@ -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] -*$py.class - -# C extensions -*.so - -# Distribution / packaging -.Python -env/ -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -*.egg-info/ -.installed.cfg -*.egg - -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.coverage -.coverage.* -.cache -nosetests.xml -coverage.xml -*,cover -.hypothesis/ -venv/ -.venv/ -.python-version -.pytest_cache - -# Translations -*.mo -*.pot - -# Django stuff: -*.log - -# Sphinx documentation -docs/_build/ - -# PyBuilder -target/ - -#Ipython Notebook -.ipynb_checkpoints +IyBCeXRlLWNvbXBpbGVkIC8gb3B0aW1pemVkIC8gRExMIGZpbGVzCl9fcHljYWNoZV9fLwoqLnB5W2NvZF0KKiRweS5jbGFzcwoKIyBDIGV4dGVuc2lvbnMKKi5zbwoKIyBEaXN0cmlidXRpb24gLyBwYWNrYWdpbmcKLlB5dGhvbgplbnYvCmJ1aWxkLwpkZXZlbG9wLWVnZ3MvCmRpc3QvCmRvd25sb2Fkcy8KZWdncy8KLmVnZ3MvCmxpYi8KbGliNjQvCnBhcnRzLwpzZGlzdC8KdmFyLwoqLmVnZy1pbmZvLwouaW5zdGFsbGVkLmNmZwoqLmVnZwoKIyBQeUluc3RhbGxlcgojICBVc3VhbGx5IHRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIGJ5IGEgcHl0aG9uIHNjcmlwdCBmcm9tIGEgdGVtcGxhdGUKIyAgYmVmb3JlIFB5SW5zdGFsbGVyIGJ1aWxkcyB0aGUgZXhlLCBzbyBhcyB0byBpbmplY3QgZGF0ZS9vdGhlciBpbmZvcyBpbnRvIGl0LgoqLm1hbmlmZXN0Ciouc3BlYwoKIyBJbnN0YWxsZXIgbG9ncwpwaXAtbG9nLnR4dApwaXAtZGVsZXRlLXRoaXMtZGlyZWN0b3J5LnR4dAoKIyBVbml0IHRlc3QgLyBjb3ZlcmFnZSByZXBvcnRzCmh0bWxjb3YvCi50b3gvCi5jb3ZlcmFnZQouY292ZXJhZ2UuKgouY2FjaGUKbm9zZXRlc3RzLnhtbApjb3ZlcmFnZS54bWwKKixjb3ZlcgouaHlwb3RoZXNpcy8KdmVudi8KLnZlbnYvCi5weXRob24tdmVyc2lvbgoucHl0ZXN0X2NhY2hlCgojIFRyYW5zbGF0aW9ucwoqLm1vCioucG90CgojIERqYW5nbyBzdHVmZjoKKi5sb2cKCiMgU3BoaW54IGRvY3VtZW50YXRpb24KZG9jcy9fYnVpbGQvCgojIFB5QnVpbGRlcgp0YXJnZXQvCgojSXB5dGhvbiBOb3RlYm9vawouaXB5bmJfY2hlY2twb2ludHMK \ No newline at end of file diff --git a/.openapi-generator-ignore b/.openapi-generator-ignore index 1898dab3..a5dd815e 100644 --- a/.openapi-generator-ignore +++ b/.openapi-generator-ignore @@ -1,35 +1 @@ -# IMPORTANT: this file is generated with the option `openapiGeneratorIgnoreList` enabled -# (--openapi-generator-ignore-list in CLI for example) so the entries below are pre-populated based -# on the input provided by the users and this file will be overwritten every time when the option is -# enabled (which is the exact opposite of the default behaviour to not overwrite -# .openapi-generator-ignore if the file exists). - -# OpenAPI Generator Ignore -# Generated by openapi-generator https://github.com/openapitools/openapi-generator - -# Use this file to prevent files from being overwritten by the generator. -# The patterns follow closely to .gitignore or .dockerignore. - -# As an example, the C# client generator defines ApiClient.cs. -# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: -#ApiClient.cs - -# You can match any string of characters against a directory, file or extension with a single asterisk (*): -#foo/*/qux -# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux - -# You can recursively match patterns against a directory, file or extension with a double asterisk (**): -#foo/**/qux -# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux - -# You can also negate patterns with an exclamation (!). -# For example, you can ignore all files in a docs folder with the file extension .md: -#docs/*.md -# Then explicitly reverse the ignore rule for a single file: -#!docs/README.md - -# The following entries are pre-populated based on the input obtained via -# the option `openapiGeneratorIgnoreList` (--openapi-generator-ignore-list in CLI for example). -.github/workflows/python.yml -.travis.yml -.gitlab-ci.yml +IyBJTVBPUlRBTlQ6IHRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgd2l0aCB0aGUgb3B0aW9uIGBvcGVuYXBpR2VuZXJhdG9ySWdub3JlTGlzdGAgZW5hYmxlZAojICgtLW9wZW5hcGktZ2VuZXJhdG9yLWlnbm9yZS1saXN0IGluIENMSSBmb3IgZXhhbXBsZSkgc28gdGhlIGVudHJpZXMgYmVsb3cgYXJlIHByZS1wb3B1bGF0ZWQgYmFzZWQKIyBvbiB0aGUgaW5wdXQgcHJvdmlkZWQgYnkgdGhlIHVzZXJzIGFuZCB0aGlzIGZpbGUgd2lsbCBiZSBvdmVyd3JpdHRlbiBldmVyeSB0aW1lIHdoZW4gdGhlIG9wdGlvbiBpcwojIGVuYWJsZWQgKHdoaWNoIGlzIHRoZSBleGFjdCBvcHBvc2l0ZSBvZiB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgdG8gbm90IG92ZXJ3cml0ZQojIC5vcGVuYXBpLWdlbmVyYXRvci1pZ25vcmUgaWYgdGhlIGZpbGUgZXhpc3RzKS4KCiMgT3BlbkFQSSBHZW5lcmF0b3IgSWdub3JlCiMgR2VuZXJhdGVkIGJ5IG9wZW5hcGktZ2VuZXJhdG9yIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IKCiMgVXNlIHRoaXMgZmlsZSB0byBwcmV2ZW50IGZpbGVzIGZyb20gYmVpbmcgb3ZlcndyaXR0ZW4gYnkgdGhlIGdlbmVyYXRvci4KIyBUaGUgcGF0dGVybnMgZm9sbG93IGNsb3NlbHkgdG8gLmdpdGlnbm9yZSBvciAuZG9ja2VyaWdub3JlLgoKIyBBcyBhbiBleGFtcGxlLCB0aGUgQyMgY2xpZW50IGdlbmVyYXRvciBkZWZpbmVzIEFwaUNsaWVudC5jcy4KIyBZb3UgY2FuIG1ha2UgY2hhbmdlcyBhbmQgdGVsbCBPcGVuQVBJIEdlbmVyYXRvciB0byBpZ25vcmUganVzdCB0aGlzIGZpbGUgYnkgdW5jb21tZW50aW5nIHRoZSBmb2xsb3dpbmcgbGluZToKI0FwaUNsaWVudC5jcwoKIyBZb3UgY2FuIG1hdGNoIGFueSBzdHJpbmcgb2YgY2hhcmFjdGVycyBhZ2FpbnN0IGEgZGlyZWN0b3J5LCBmaWxlIG9yIGV4dGVuc2lvbiB3aXRoIGEgc2luZ2xlIGFzdGVyaXNrICgqKToKI2Zvby8qL3F1eAojIFRoZSBhYm92ZSBtYXRjaGVzIGZvby9iYXIvcXV4IGFuZCBmb28vYmF6L3F1eCwgYnV0IG5vdCBmb28vYmFyL2Jhei9xdXgKCiMgWW91IGNhbiByZWN1cnNpdmVseSBtYXRjaCBwYXR0ZXJucyBhZ2FpbnN0IGEgZGlyZWN0b3J5LCBmaWxlIG9yIGV4dGVuc2lvbiB3aXRoIGEgZG91YmxlIGFzdGVyaXNrICgqKik6CiNmb28vKiovcXV4CiMgVGhpcyBtYXRjaGVzIGZvby9iYXIvcXV4LCBmb28vYmF6L3F1eCwgYW5kIGZvby9iYXIvYmF6L3F1eAoKIyBZb3UgY2FuIGFsc28gbmVnYXRlIHBhdHRlcm5zIHdpdGggYW4gZXhjbGFtYXRpb24gKCEpLgojIEZvciBleGFtcGxlLCB5b3UgY2FuIGlnbm9yZSBhbGwgZmlsZXMgaW4gYSBkb2NzIGZvbGRlciB3aXRoIHRoZSBmaWxlIGV4dGVuc2lvbiAubWQ6CiNkb2NzLyoubWQKIyBUaGVuIGV4cGxpY2l0bHkgcmV2ZXJzZSB0aGUgaWdub3JlIHJ1bGUgZm9yIGEgc2luZ2xlIGZpbGU6CiMhZG9jcy9SRUFETUUubWQKCiMgVGhlIGZvbGxvd2luZyBlbnRyaWVzIGFyZSBwcmUtcG9wdWxhdGVkIGJhc2VkIG9uIHRoZSBpbnB1dCBvYnRhaW5lZCB2aWEKIyB0aGUgb3B0aW9uIGBvcGVuYXBpR2VuZXJhdG9ySWdub3JlTGlzdGAgKC0tb3BlbmFwaS1nZW5lcmF0b3ItaWdub3JlLWxpc3QgaW4gQ0xJIGZvciBleGFtcGxlKS4KLmdpdGh1Yi93b3JrZmxvd3MvcHl0aG9uLnltbAoudHJhdmlzLnltbAouZ2l0bGFiLWNpLnltbAo= \ No newline at end of file diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index 5bb694a0..bbb00d9d 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -1,3154 +1 @@ -.bump_version.toml -.gitignore -LICENSE.txt -README.md -docs/APIUser.md -docs/AbaPaymentInfo.md -docs/AbiFunction.md -docs/AccessRegistryAddressItem.md -docs/AccessRegistryCurrentStateResponse.md -docs/AccessRegistrySummaryResponse.md -docs/AccessType.md -docs/Account.md -docs/AccountAccess.md -docs/AccountBase.md -docs/AccountBasedAccessProvider.md -docs/AccountBasedAccessProviderDetails.md -docs/AccountConfig.md -docs/AccountHolderDetails.md -docs/AccountIdentifier.md -docs/AccountReference.md -docs/AccountType.md -docs/AccountType2.md -docs/AchAccountType.md -docs/AchAddress.md -docs/AchDestination.md -docs/AchPaymentInfo.md -docs/AdapterProcessingResult.md -docs/AddAbiRequestDto.md -docs/AddAssetToExternalWalletRequest.md -docs/AddCollateralRequestBody.md -docs/AddContractAssetRequest.md -docs/AddCosignerRequest.md -docs/AddCosignerResponse.md -docs/AddExchangeAccountRequest.md -docs/AddExchangeAccountResponse.md -docs/AdditionalInfo.md -docs/AdditionalInfoRequest.md -docs/AdditionalInfoRequestAdditionalInfo.md -docs/AddressBalanceItemDto.md -docs/AddressBalancePagedResponse.md -docs/AddressNotAvailableError.md -docs/AddressRegistryError.md -docs/AddressRegistryLegalEntity.md -docs/AlertExposureTypeEnum.md -docs/AlertLevelEnum.md -docs/AmlAlert.md -docs/AmlMatchedRule.md -docs/AmlRegistrationResult.md -docs/AmlRegistrationResultFullPayload.md -docs/AmlResult.md -docs/AmlScreeningResult.md -docs/AmlStatusEnum.md -docs/AmlVerdictManualRequest.md -docs/AmlVerdictManualResponse.md -docs/AmountAndChainDescriptor.md -docs/AmountConfig.md -docs/AmountConfigCurrency.md -docs/AmountInfo.md -docs/AmountOverTimeConfig.md -docs/AmountRange.md -docs/AmountRangeMinMax.md -docs/AmountRangeMinMax2.md -docs/ApiKey.md -docs/ApiKeysPaginatedResponse.md -docs/ApiUserApi.md -docs/ApprovalRequest.md -docs/ApproversConfig.md -docs/ApproversConfigApprovalGroupsInner.md -docs/Asset.md -docs/AssetAlreadyExistHttpError.md -docs/AssetAmount.md -docs/AssetBadRequestErrorResponse.md -docs/AssetClass.md -docs/AssetConfig.md -docs/AssetConflictErrorResponse.md -docs/AssetDetailsMetadata.md -docs/AssetDetailsOnchain.md -docs/AssetFeature.md -docs/AssetForbiddenErrorResponse.md -docs/AssetInternalServerErrorResponse.md -docs/AssetMedia.md -docs/AssetMediaAttributes.md -docs/AssetMetadata.md -docs/AssetMetadataDto.md -docs/AssetMetadataRequest.md -docs/AssetNotFoundErrorResponse.md -docs/AssetNote.md -docs/AssetNoteRequest.md -docs/AssetOnchain.md -docs/AssetPriceForbiddenErrorResponse.md -docs/AssetPriceNotFoundErrorResponse.md -docs/AssetPriceResponse.md -docs/AssetResponse.md -docs/AssetScope.md -docs/AssetTypeEnum.md -docs/AssetTypeResponse.md -docs/AssetTypesConfigInner.md -docs/AssetWallet.md -docs/AuditLogData.md -docs/AuditLogsApi.md -docs/AuditorData.md -docs/AuthorizationGroups.md -docs/AuthorizationInfo.md -docs/BalanceHistoryItemDto.md -docs/BalanceHistoryPagedResponse.md -docs/BankAddress.md -docs/BaseProvider.md -docs/BasicAddressRequest.md -docs/BlockInfo.md -docs/BlockchainAddress.md -docs/BlockchainDestination.md -docs/BlockchainExplorer.md -docs/BlockchainMedia.md -docs/BlockchainMetadata.md -docs/BlockchainNotFoundErrorResponse.md -docs/BlockchainOnchain.md -docs/BlockchainResponse.md -docs/BlockchainTransfer.md -docs/BlockchainsAssetsApi.md -docs/BpsFee.md -docs/BusinessEntityTypeEnum.md -docs/BusinessIdentification.md -docs/CallbackHandler.md -docs/CallbackHandlerRequest.md -docs/CancelTransactionResponse.md -docs/Capability.md -docs/ChainDescriptor.md -docs/ChainInfoResponse.md -docs/ChannelDvnConfigWithConfirmations.md -docs/ChannelDvnConfigWithConfirmationsReceiveConfig.md -docs/ChannelDvnConfigWithConfirmationsSendConfig.md -docs/ChapsAddress.md -docs/ChapsDestination.md -docs/ChapsPaymentInfo.md -docs/ClaimRewardsRequest.md -docs/CollectionBurnRequestDto.md -docs/CollectionBurnResponseDto.md -docs/CollectionDeployRequestDto.md -docs/CollectionLinkDto.md -docs/CollectionMetadataDto.md -docs/CollectionMintRequestDto.md -docs/CollectionMintResponseDto.md -docs/CollectionOwnershipResponse.md -docs/CollectionTokenMetadataAttributeDto.md -docs/CollectionTokenMetadataDto.md -docs/CollectionType.md -docs/CommittedQuoteEnum.md -docs/CommittedQuoteType.md -docs/ComplianceApi.md -docs/ComplianceResultFullPayload.md -docs/ComplianceResultStatusesEnum.md -docs/ComplianceResults.md -docs/ComplianceScreeningConfigurationApi.md -docs/ComplianceScreeningResult.md -docs/ComplianceScreeningResultFullPayload.md -docs/ConfigChangeRequestStatus.md -docs/ConfigConversionOperationSnapshot.md -docs/ConfigDisbursementOperationSnapshot.md -docs/ConfigOperation.md -docs/ConfigOperationSnapshot.md -docs/ConfigOperationStatus.md -docs/ConfigTransferOperationSnapshot.md -docs/ConnectedAccount.md -docs/ConnectedAccountApprovalStatus.md -docs/ConnectedAccountAssetType.md -docs/ConnectedAccountBalances.md -docs/ConnectedAccountBalancesResponse.md -docs/ConnectedAccountCapability.md -docs/ConnectedAccountErrorResponse.md -docs/ConnectedAccountManifest.md -docs/ConnectedAccountRateResponse.md -docs/ConnectedAccountTotalBalance.md -docs/ConnectedAccountTradingPair.md -docs/ConnectedAccountTradingPairSupportedType.md -docs/ConnectedAccountTradingPairsResponse.md -docs/ConnectedAccountsBetaApi.md -docs/ConnectedAccountsResponse.md -docs/ConnectedSingleAccount.md -docs/ConnectedSingleAccountResponse.md -docs/ConsoleUser.md -docs/ConsoleUserApi.md -docs/ContractAbiResponseDto.md -docs/ContractAbiResponseDtoAbiInner.md -docs/ContractAddressResponse.md -docs/ContractAttributes.md -docs/ContractDataDecodeDataType.md -docs/ContractDataDecodeError.md -docs/ContractDataDecodeRequest.md -docs/ContractDataDecodeRequestData.md -docs/ContractDataDecodeResponseParams.md -docs/ContractDataDecodedResponse.md -docs/ContractDataLogDataParam.md -docs/ContractDeployRequest.md -docs/ContractDeployResponse.md -docs/ContractDoc.md -docs/ContractInteractionsApi.md -docs/ContractMetadataDto.md -docs/ContractMethodConfig.md -docs/ContractMethodPattern.md -docs/ContractTemplateDto.md -docs/ContractTemplatesApi.md -docs/ContractUploadRequest.md -docs/ContractWithAbiDto.md -docs/ContractsApi.md -docs/ConversionConfigOperation.md -docs/ConversionOperationConfigParams.md -docs/ConversionOperationExecution.md -docs/ConversionOperationExecutionOutput.md -docs/ConversionOperationExecutionParams.md -docs/ConversionOperationExecutionParamsExecutionParams.md -docs/ConversionOperationFailure.md -docs/ConversionOperationPreview.md -docs/ConversionOperationPreviewOutput.md -docs/ConversionOperationType.md -docs/ConversionValidationFailure.md -docs/ConvertAssetsRequest.md -docs/ConvertAssetsResponse.md -docs/Cosigner.md -docs/CosignersBetaApi.md -docs/CosignersPaginatedResponse.md -docs/CreateAPIUser.md -docs/CreateAddressRequest.md -docs/CreateAddressResponse.md -docs/CreateAssetsRequest.md -docs/CreateConfigOperationRequest.md -docs/CreateConnectionRequest.md -docs/CreateConnectionResponse.md -docs/CreateConsoleUser.md -docs/CreateContractRequest.md -docs/CreateConversionConfigOperationRequest.md -docs/CreateDisbursementConfigOperationRequest.md -docs/CreateInternalTransferRequest.md -docs/CreateInternalWalletAssetRequest.md -docs/CreateMultichainTokenRequest.md -docs/CreateMultichainTokenRequestCreateParams.md -docs/CreateMultipleAccountsRequest.md -docs/CreateMultipleDepositAddressesJobStatus.md -docs/CreateMultipleDepositAddressesRequest.md -docs/CreateMultipleVaultAccountsJobStatus.md -docs/CreateNcwConnectionRequest.md -docs/CreateNetworkIdRequest.md -docs/CreateOrderRequest.md -docs/CreatePayoutRequest.md -docs/CreateQuote.md -docs/CreateQuoteScopeInner.md -docs/CreateSigningKeyDto.md -docs/CreateSigningKeyDtoProofOfOwnership.md -docs/CreateTagRequest.md -docs/CreateTokenRequestDto.md -docs/CreateTokenRequestDtoCreateParams.md -docs/CreateTransactionResponse.md -docs/CreateTransferConfigOperationRequest.md -docs/CreateUserGroupResponse.md -docs/CreateValidationKeyDto.md -docs/CreateValidationKeyResponseDto.md -docs/CreateVaultAccountConnectionRequest.md -docs/CreateVaultAccountRequest.md -docs/CreateVaultAssetResponse.md -docs/CreateWalletRequest.md -docs/CreateWebhookRequest.md -docs/CreateWorkflowExecutionRequestParamsInner.md -docs/CustomRoutingDest.md -docs/DAppAddressConfig.md -docs/DVPSettlement.md -docs/DVPSettlementType.md -docs/DecodedLog.md -docs/DefaultNetworkRoutingDest.md -docs/Delegation.md -docs/DelegationBlockchainPositionInfo.md -docs/DelegationSummary.md -docs/DeleteNetworkConnectionResponse.md -docs/DeleteNetworkIdResponse.md -docs/DeployLayerZeroAdaptersRequest.md -docs/DeployableAddressResponse.md -docs/DeployedContractNotFoundError.md -docs/DeployedContractResponseDto.md -docs/DeployedContractsApi.md -docs/DeployedContractsPaginatedResponse.md -docs/DepositFundsFromLinkedDDAResponse.md -docs/DerivationPathConfig.md -docs/DesignatedSignersConfig.md -docs/Destination.md -docs/DestinationConfig.md -docs/DestinationTransferPeerPath.md -docs/DestinationTransferPeerPathResponse.md -docs/DirectAccess.md -docs/DirectAccessProvider.md -docs/DirectAccessProviderDetails.md -docs/DisbursementAmountInstruction.md -docs/DisbursementConfigOperation.md -docs/DisbursementInstruction.md -docs/DisbursementInstructionOutput.md -docs/DisbursementOperationConfigParams.md -docs/DisbursementOperationExecution.md -docs/DisbursementOperationExecutionOutput.md -docs/DisbursementOperationExecutionParams.md -docs/DisbursementOperationExecutionParamsExecutionParams.md -docs/DisbursementOperationInput.md -docs/DisbursementOperationPreview.md -docs/DisbursementOperationPreviewOutput.md -docs/DisbursementOperationPreviewOutputInstructionSetInner.md -docs/DisbursementOperationType.md -docs/DisbursementPercentageInstruction.md -docs/DisbursementValidationFailure.md -docs/DispatchPayoutResponse.md -docs/DraftResponse.md -docs/DraftReviewAndValidationResponse.md -docs/DropTransactionRequest.md -docs/DropTransactionResponse.md -docs/DvnConfig.md -docs/DvnConfigWithConfirmations.md -docs/EVMTokenCreateParamsDto.md -docs/EditGasStationConfigurationResponse.md -docs/EmbeddedWallet.md -docs/EmbeddedWalletAccount.md -docs/EmbeddedWalletAddressDetails.md -docs/EmbeddedWalletAlgoritm.md -docs/EmbeddedWalletAssetBalance.md -docs/EmbeddedWalletAssetResponse.md -docs/EmbeddedWalletAssetRewardInfo.md -docs/EmbeddedWalletDevice.md -docs/EmbeddedWalletDeviceKeySetupResponse.md -docs/EmbeddedWalletDeviceKeySetupResponseSetupStatusInner.md -docs/EmbeddedWalletLatestBackupKey.md -docs/EmbeddedWalletLatestBackupResponse.md -docs/EmbeddedWalletPaginatedAddressesResponse.md -docs/EmbeddedWalletPaginatedAssetsResponse.md -docs/EmbeddedWalletPaginatedDevicesResponse.md -docs/EmbeddedWalletPaginatedWalletsResponse.md -docs/EmbeddedWalletRequiredAlgorithms.md -docs/EmbeddedWalletSetUpStatus.md -docs/EmbeddedWalletSetupStatusResponse.md -docs/EmbeddedWalletsApi.md -docs/EnableDevice.md -docs/EnableWallet.md -docs/ErrorResponse.md -docs/ErrorResponseError.md -docs/ErrorSchema.md -docs/EstimatedFeeDetails.md -docs/EstimatedNetworkFeeResponse.md -docs/EstimatedTransactionFeeResponse.md -docs/EthereumBlockchainData.md -docs/EuropeanSEPAAddress.md -docs/EuropeanSEPADestination.md -docs/ExchangeAccount.md -docs/ExchangeAccountsApi.md -docs/ExchangeAsset.md -docs/ExchangeSettlementTransactionsResponse.md -docs/ExchangeTradingAccount.md -docs/ExchangeType.md -docs/ExecutionConversionOperation.md -docs/ExecutionDisbursementOperation.md -docs/ExecutionOperationStatus.md -docs/ExecutionRequestBaseDetails.md -docs/ExecutionRequestDetails.md -docs/ExecutionResponseBaseDetails.md -docs/ExecutionResponseDetails.md -docs/ExecutionScreeningOperation.md -docs/ExecutionStepError.md -docs/ExecutionStepStatusEnum.md -docs/ExecutionStepType.md -docs/ExecutionTransferOperation.md -docs/ExternalAccount.md -docs/ExternalAccountLocalBankAfrica.md -docs/ExternalAccountMobileMoney.md -docs/ExternalAccountMobileMoneyProvider.md -docs/ExternalAccountMobileMoneyType.md -docs/ExternalAccountSenderInformation.md -docs/ExternalAccountType.md -docs/ExternalWalletAsset.md -docs/ExternalWalletsApi.md -docs/ExtraParameters.md -docs/Failure.md -docs/FailureReason.md -docs/Fee.md -docs/FeeBreakdown.md -docs/FeeInfo.md -docs/FeeLevel.md -docs/FeePayerInfo.md -docs/FeePropertiesDetails.md -docs/FeeTypeEnum.md -docs/FetchAbiRequestDto.md -docs/FiatAccount.md -docs/FiatAccountType.md -docs/FiatAccountsApi.md -docs/FiatAsset.md -docs/FiatDestination.md -docs/FiatPaymentMetadata.md -docs/FiatTransfer.md -docs/FixedAmountTypeEnum.md -docs/FixedFee.md -docs/FreezeTransactionResponse.md -docs/FunctionDoc.md -docs/Funds.md -docs/GasStationConfiguration.md -docs/GasStationConfigurationResponse.md -docs/GasStationPropertiesResponse.md -docs/GasStationsApi.md -docs/GasslessStandardConfigurations.md -docs/GasslessStandardConfigurationsGaslessStandardConfigurationsValue.md -docs/GetAPIUsersResponse.md -docs/GetAuditLogsResponse.md -docs/GetConnectionsResponse.md -docs/GetConsoleUsersResponse.md -docs/GetDeployableAddressRequest.md -docs/GetExchangeAccountsCredentialsPublicKeyResponse.md -docs/GetFilterParameter.md -docs/GetLayerZeroDvnConfigResponse.md -docs/GetLayerZeroPeersResponse.md -docs/GetLinkedCollectionsPaginatedResponse.md -docs/GetMaxBipIndexUsedResponse.md -docs/GetMaxSpendableAmountResponse.md -docs/GetMpcKeysResponse.md -docs/GetNFTsResponse.md -docs/GetOrdersResponse.md -docs/GetOtaStatusResponse.md -docs/GetOwnershipTokensResponse.md -docs/GetPagedExchangeAccountsResponse.md -docs/GetPagedExchangeAccountsResponsePaging.md -docs/GetSigningKeyResponseDto.md -docs/GetTransactionOperation.md -docs/GetValidationKeyResponseDto.md -docs/GetWhitelistIpAddressesResponse.md -docs/GetWorkspaceStatusResponse.md -docs/HttpContractDoesNotExistError.md -docs/IbanAddress.md -docs/IbanDestination.md -docs/IbanPaymentInfo.md -docs/Identification.md -docs/IdlType.md -docs/IndicativeQuoteEnum.md -docs/IndicativeQuoteType.md -docs/InitiatorConfig.md -docs/InitiatorConfigPattern.md -docs/InstructionAmount.md -docs/InteracAddress.md -docs/InteracDestination.md -docs/InteracPaymentInfo.md -docs/InternalReference.md -docs/InternalTransferAddress.md -docs/InternalTransferDestination.md -docs/InternalTransferResponse.md -docs/InternalWalletsApi.md -docs/InvalidParamaterValueError.md -docs/JobCreated.md -docs/KeyLinkBetaApi.md -docs/KeysBetaApi.md -docs/LayerZeroAdapterCreateParams.md -docs/LbtPaymentInfo.md -docs/LeanAbiFunction.md -docs/LeanContractDto.md -docs/LeanDeployedContractResponseDto.md -docs/LegacyAmountAggregationTimePeriodMethod.md -docs/LegacyDraftResponse.md -docs/LegacyDraftReviewAndValidationResponse.md -docs/LegacyPolicyAndValidationResponse.md -docs/LegacyPolicyCheckResult.md -docs/LegacyPolicyMetadata.md -docs/LegacyPolicyResponse.md -docs/LegacyPolicyRule.md -docs/LegacyPolicyRuleAmount.md -docs/LegacyPolicyRuleAmountAggregation.md -docs/LegacyPolicyRuleAuthorizationGroups.md -docs/LegacyPolicyRuleAuthorizationGroupsGroupsInner.md -docs/LegacyPolicyRuleCheckResult.md -docs/LegacyPolicyRuleDesignatedSigners.md -docs/LegacyPolicyRuleDst.md -docs/LegacyPolicyRuleError.md -docs/LegacyPolicyRuleOperators.md -docs/LegacyPolicyRuleRawMessageSigning.md -docs/LegacyPolicyRuleRawMessageSigningDerivationPath.md -docs/LegacyPolicyRuleSrc.md -docs/LegacyPolicyRules.md -docs/LegacyPolicySrcOrDestSubType.md -docs/LegacyPolicySrcOrDestType.md -docs/LegacyPolicyStatus.md -docs/LegacyPolicyValidation.md -docs/LegacyPublishDraftRequest.md -docs/LegacyPublishResult.md -docs/LegacySrcOrDestAttributesInner.md -docs/LinkedTokensCount.md -docs/ListAssetsResponse.md -docs/ListBlockchainsResponse.md -docs/ListOwnedCollectionsResponse.md -docs/ListOwnedTokensResponse.md -docs/LocalBankTransferAfricaAddress.md -docs/LocalBankTransferAfricaDestination.md -docs/Manifest.md -docs/MarketExecutionRequestDetails.md -docs/MarketExecutionResponseDetails.md -docs/MarketRequoteRequestDetails.md -docs/MarketRequoteTypeEnum.md -docs/MarketTypeDetails.md -docs/MarketTypeEnum.md -docs/MediaEntityResponse.md -docs/MergeStakeAccountsRequest.md -docs/MergeStakeAccountsResponse.md -docs/MobileMoneyAddress.md -docs/MobileMoneyDestination.md -docs/ModifySigningKeyAgentIdDto.md -docs/ModifySigningKeyDto.md -docs/ModifyValidationKeyDto.md -docs/MomoPaymentInfo.md -docs/MpcKey.md -docs/MultichainDeploymentMetadata.md -docs/NFTsApi.md -docs/NetworkChannel.md -docs/NetworkConnection.md -docs/NetworkConnectionResponse.md -docs/NetworkConnectionRoutingPolicyValue.md -docs/NetworkConnectionStatus.md -docs/NetworkConnectionsApi.md -docs/NetworkFee.md -docs/NetworkId.md -docs/NetworkIdResponse.md -docs/NetworkIdRoutingPolicyValue.md -docs/NetworkRecord.md -docs/NewAddress.md -docs/NoneNetworkRoutingDest.md -docs/NotFoundException.md -docs/Notification.md -docs/NotificationAttempt.md -docs/NotificationAttemptsPaginatedResponse.md -docs/NotificationPaginatedResponse.md -docs/NotificationStatus.md -docs/NotificationWithData.md -docs/OTABetaApi.md -docs/OffExchangesApi.md -docs/OnchainDataApi.md -docs/OnchainTransaction.md -docs/OnchainTransactionsPagedResponse.md -docs/OneTimeAddress.md -docs/OneTimeAddressAccount.md -docs/OneTimeAddressPeerType.md -docs/OneTimeAddressReference.md -docs/OperationExecutionFailure.md -docs/OrderDetails.md -docs/OrderExecutionStep.md -docs/OrderSide.md -docs/OrderStatus.md -docs/OrderSummary.md -docs/PaginatedAddressResponse.md -docs/PaginatedAddressResponsePaging.md -docs/PaginatedAssetWalletResponse.md -docs/PaginatedAssetWalletResponsePaging.md -docs/PaginatedAssetsResponse.md -docs/Paging.md -docs/PairApiKeyRequest.md -docs/PairApiKeyResponse.md -docs/Parameter.md -docs/ParameterWithValue.md -docs/ParticipantRelationshipType.md -docs/ParticipantsIdentification.md -docs/PayeeAccount.md -docs/PayeeAccountResponse.md -docs/PayeeAccountType.md -docs/PayidAddress.md -docs/PayidDestination.md -docs/PayidPaymentInfo.md -docs/PaymentAccount.md -docs/PaymentAccountResponse.md -docs/PaymentAccountType.md -docs/PaymentInstructions.md -docs/PaymentInstructionsOneOf.md -docs/PaymentRedirect.md -docs/PaymentsPayoutApi.md -docs/PayoutInitMethod.md -docs/PayoutInstruction.md -docs/PayoutInstructionResponse.md -docs/PayoutInstructionState.md -docs/PayoutResponse.md -docs/PayoutState.md -docs/PayoutStatus.md -docs/PeerAdapterInfo.md -docs/PeerType.md -docs/PersonalEntityTypeEnum.md -docs/PersonalIdentification.md -docs/PersonalIdentificationFullName.md -docs/PersonalIdentificationType.md -docs/PixAddress.md -docs/PixDestination.md -docs/PixPaymentInfo.md -docs/PlatformAccount.md -docs/PlatformPeerType.md -docs/Players.md -docs/PolicyAndValidationResponse.md -docs/PolicyCheckResult.md -docs/PolicyCurrency.md -docs/PolicyEditorBetaApi.md -docs/PolicyEditorV2BetaApi.md -docs/PolicyMetadata.md -docs/PolicyOperator.md -docs/PolicyResponse.md -docs/PolicyRule.md -docs/PolicyRuleCheckResult.md -docs/PolicyRuleError.md -docs/PolicyStatus.md -docs/PolicyTag.md -docs/PolicyType.md -docs/PolicyValidation.md -docs/PolicyVerdictActionEnum.md -docs/PolicyVerdictActionEnum2.md -docs/PostalAddress.md -docs/PreScreening.md -docs/PrefundedSettlement.md -docs/PrefundedSettlementType.md -docs/ProgramCallConfig.md -docs/Provider.md -docs/ProvidersListResponse.md -docs/PublicKeyInformation.md -docs/PublishDraftRequest.md -docs/PublishResult.md -docs/Quote.md -docs/QuoteExecutionRequestDetails.md -docs/QuoteExecutionStep.md -docs/QuoteExecutionTypeDetails.md -docs/QuoteExecutionWithRequoteRequestDetails.md -docs/QuoteExecutionWithRequoteResponseDetails.md -docs/QuoteFailure.md -docs/QuotePropertiesDetails.md -docs/QuoteTypeEnum.md -docs/QuotesResponse.md -docs/ReQuoteDetails.md -docs/ReQuoteDetailsReQuote.md -docs/ReadAbiFunction.md -docs/ReadCallFunctionDto.md -docs/ReadCallFunctionDtoAbiFunction.md -docs/RecipientHandle.md -docs/RedeemFundsToLinkedDDAResponse.md -docs/RegisterNewAssetRequest.md -docs/ReissueMultichainTokenRequest.md -docs/RelatedRequest.md -docs/RelatedTransaction.md -docs/RemoveCollateralRequestBody.md -docs/RemoveLayerZeroAdapterFailedResult.md -docs/RemoveLayerZeroAdaptersRequest.md -docs/RemoveLayerZeroAdaptersResponse.md -docs/RemoveLayerZeroPeersRequest.md -docs/RemoveLayerZeroPeersResponse.md -docs/RenameConnectedAccountRequest.md -docs/RenameConnectedAccountResponse.md -docs/RenameCosigner.md -docs/RenameVaultAccountResponse.md -docs/ResendFailedNotificationsJobStatusResponse.md -docs/ResendFailedNotificationsRequest.md -docs/ResendFailedNotificationsResponse.md -docs/ResendNotificationsByResourceIdRequest.md -docs/ResendTransactionWebhooksRequest.md -docs/ResendWebhooksByTransactionIdResponse.md -docs/ResendWebhooksResponse.md -docs/ResetDeviceApi.md -docs/RespondToConnectionRequest.md -docs/RetryRequoteRequestDetails.md -docs/RetryRequoteTypeEnum.md -docs/RewardInfo.md -docs/RewardsInfo.md -docs/RoleDetails.md -docs/RoleGrantee.md -docs/SEPAAddress.md -docs/SEPADestination.md -docs/SOLAccount.md -docs/SOLAccountWithValue.md -docs/ScopeItem.md -docs/ScreeningAlertExposureTypeEnum.md -docs/ScreeningAmlAlert.md -docs/ScreeningAmlMatchedRule.md -docs/ScreeningAmlResult.md -docs/ScreeningConfigurationsRequest.md -docs/ScreeningMetadataConfig.md -docs/ScreeningOperationExecution.md -docs/ScreeningOperationExecutionOutput.md -docs/ScreeningOperationFailure.md -docs/ScreeningOperationType.md -docs/ScreeningPolicyResponse.md -docs/ScreeningProviderRulesConfigurationResponse.md -docs/ScreeningRiskLevelEnum.md -docs/ScreeningTRLinkAmount.md -docs/ScreeningTRLinkMissingTrmDecision.md -docs/ScreeningTRLinkMissingTrmRule.md -docs/ScreeningTRLinkPostScreeningRule.md -docs/ScreeningTRLinkPrescreeningRule.md -docs/ScreeningTRLinkRuleBase.md -docs/ScreeningTravelRuleMatchedRule.md -docs/ScreeningTravelRulePrescreeningRule.md -docs/ScreeningTravelRuleResult.md -docs/ScreeningUpdateConfigurations.md -docs/ScreeningValidationFailure.md -docs/ScreeningVerdict.md -docs/ScreeningVerdictEnum.md -docs/ScreeningVerdictMatchedRule.md -docs/SearchNetworkIdsResponse.md -docs/SepaPaymentInfo.md -docs/SessionDTO.md -docs/SessionMetadata.md -docs/SetAdminQuorumThresholdRequest.md -docs/SetAdminQuorumThresholdResponse.md -docs/SetAssetPriceRequest.md -docs/SetAutoFuelRequest.md -docs/SetConfirmationsThresholdRequest.md -docs/SetConfirmationsThresholdResponse.md -docs/SetCustomerRefIdForAddressRequest.md -docs/SetCustomerRefIdRequest.md -docs/SetLayerZeroDvnConfigRequest.md -docs/SetLayerZeroDvnConfigResponse.md -docs/SetLayerZeroPeersRequest.md -docs/SetLayerZeroPeersResponse.md -docs/SetNetworkIdDiscoverabilityRequest.md -docs/SetNetworkIdNameRequest.md -docs/SetNetworkIdResponse.md -docs/SetNetworkIdRoutingPolicyRequest.md -docs/SetOtaStatusRequest.md -docs/SetOtaStatusResponse.md -docs/SetOtaStatusResponseOneOf.md -docs/SetRoutingPolicyRequest.md -docs/SetRoutingPolicyResponse.md -docs/Settlement.md -docs/SettlementRequestBody.md -docs/SettlementResponse.md -docs/SettlementSourceAccount.md -docs/Side.md -docs/SignedMessage.md -docs/SignedMessageSignature.md -docs/SigningKeyDto.md -docs/SmartTransferApi.md -docs/SmartTransferApproveTerm.md -docs/SmartTransferBadRequestResponse.md -docs/SmartTransferCoinStatistic.md -docs/SmartTransferCreateTicket.md -docs/SmartTransferCreateTicketTerm.md -docs/SmartTransferForbiddenResponse.md -docs/SmartTransferFundDvpTicket.md -docs/SmartTransferFundTerm.md -docs/SmartTransferManuallyFundTerm.md -docs/SmartTransferNotFoundResponse.md -docs/SmartTransferSetTicketExpiration.md -docs/SmartTransferSetTicketExternalId.md -docs/SmartTransferSetUserGroups.md -docs/SmartTransferStatistic.md -docs/SmartTransferStatisticInflow.md -docs/SmartTransferStatisticOutflow.md -docs/SmartTransferSubmitTicket.md -docs/SmartTransferTicket.md -docs/SmartTransferTicketFilteredResponse.md -docs/SmartTransferTicketResponse.md -docs/SmartTransferTicketTerm.md -docs/SmartTransferTicketTermResponse.md -docs/SmartTransferUpdateTicketTerm.md -docs/SmartTransferUserGroups.md -docs/SmartTransferUserGroupsResponse.md -docs/SolParameter.md -docs/SolParameterWithValue.md -docs/SolanaBlockchainData.md -docs/SolanaConfig.md -docs/SolanaInstruction.md -docs/SolanaInstructionWithValue.md -docs/SolanaSimpleCreateParams.md -docs/SourceConfig.md -docs/SourceTransferPeerPath.md -docs/SourceTransferPeerPathResponse.md -docs/SpamOwnershipResponse.md -docs/SpamTokenResponse.md -docs/SpeiAddress.md -docs/SpeiAdvancedPaymentInfo.md -docs/SpeiBasicPaymentInfo.md -docs/SpeiDestination.md -docs/SplitRequest.md -docs/SplitResponse.md -docs/StEthBlockchainData.md -docs/StakeRequest.md -docs/StakeResponse.md -docs/StakingApi.md -docs/StakingProvider.md -docs/Status.md -docs/StellarRippleCreateParamsDto.md -docs/SupportedBlockChainsResponse.md -docs/SupportedBlockchain.md -docs/SwiftAddress.md -docs/SwiftDestination.md -docs/SystemMessageInfo.md -docs/TRLinkAPIPagedResponse.md -docs/TRLinkAmount.md -docs/TRLinkAmount2.md -docs/TRLinkAmountRange.md -docs/TRLinkApi.md -docs/TRLinkAssessTravelRuleRequest.md -docs/TRLinkAssessTravelRuleResponse.md -docs/TRLinkAssessmentDecision.md -docs/TRLinkAsset.md -docs/TRLinkAssetData.md -docs/TRLinkAssetFormat.md -docs/TRLinkAssetsListPagedResponse.md -docs/TRLinkCancelTrmRequest.md -docs/TRLinkConnectIntegrationRequest.md -docs/TRLinkCreateCustomerRequest.md -docs/TRLinkCreateIntegrationRequest.md -docs/TRLinkCreateTrmRequest.md -docs/TRLinkCurrency.md -docs/TRLinkCustomerIntegrationResponse.md -docs/TRLinkCustomerResponse.md -docs/TRLinkDestinationTransferPeerPath.md -docs/TRLinkDiscoverableStatus.md -docs/TRLinkFiatValue.md -docs/TRLinkGeographicAddressRequest.md -docs/TRLinkGetSupportedAssetResponse.md -docs/TRLinkIvms.md -docs/TRLinkIvmsResponse.md -docs/TRLinkJwkPublicKey.md -docs/TRLinkMissingTrmAction.md -docs/TRLinkMissingTrmAction2.md -docs/TRLinkMissingTrmActionEnum.md -docs/TRLinkMissingTrmDecision.md -docs/TRLinkMissingTrmRule.md -docs/TRLinkMissingTrmRule2.md -docs/TRLinkOneTimeAddress.md -docs/TRLinkPaging.md -docs/TRLinkPartnerResponse.md -docs/TRLinkPolicyResponse.md -docs/TRLinkPostScreeningAction.md -docs/TRLinkPostScreeningRule.md -docs/TRLinkPostScreeningRule2.md -docs/TRLinkPreScreeningAction.md -docs/TRLinkPreScreeningAction2.md -docs/TRLinkPreScreeningActionEnum.md -docs/TRLinkPreScreeningRule.md -docs/TRLinkPreScreeningRule2.md -docs/TRLinkProviderData.md -docs/TRLinkProviderResult.md -docs/TRLinkProviderResultWithRule.md -docs/TRLinkProviderResultWithRule2.md -docs/TRLinkPublicAssetInfo.md -docs/TRLinkPublicKeyResponse.md -docs/TRLinkRedirectTrmRequest.md -docs/TRLinkRegistrationResult.md -docs/TRLinkRegistrationResultFullPayload.md -docs/TRLinkRegistrationStatus.md -docs/TRLinkRegistrationStatusEnum.md -docs/TRLinkResult.md -docs/TRLinkResultFullPayload.md -docs/TRLinkRuleBase.md -docs/TRLinkSetDestinationTravelRuleMessageIdRequest.md -docs/TRLinkSetDestinationTravelRuleMessageIdResponse.md -docs/TRLinkSetTransactionTravelRuleMessageIdRequest.md -docs/TRLinkSetTransactionTravelRuleMessageIdResponse.md -docs/TRLinkSourceTransferPeerPath.md -docs/TRLinkTestConnectionResponse.md -docs/TRLinkThresholds.md -docs/TRLinkTransactionDirection.md -docs/TRLinkTransferPeerPath.md -docs/TRLinkTrmDirection.md -docs/TRLinkTrmInfoResponse.md -docs/TRLinkTrmScreeningStatus.md -docs/TRLinkTrmScreeningStatusEnum.md -docs/TRLinkTrmStatus.md -docs/TRLinkTxnInfo.md -docs/TRLinkUpdateCustomerRequest.md -docs/TRLinkVaspDto.md -docs/TRLinkVaspGeographicAddress.md -docs/TRLinkVaspListDto.md -docs/TRLinkVaspNationalIdentification.md -docs/TRLinkVerdict.md -docs/TRLinkVerdictEnum.md -docs/Tag.md -docs/TagAttachmentOperationAction.md -docs/TagsApi.md -docs/TagsPagedResponse.md -docs/TemplatesPaginatedResponse.md -docs/ThirdPartyRouting.md -docs/TimePeriodConfig.md -docs/TimePeriodMatchType.md -docs/ToCollateralTransaction.md -docs/ToExchangeTransaction.md -docs/TokenCollectionResponse.md -docs/TokenContractSummaryResponse.md -docs/TokenInfoNotFoundErrorResponse.md -docs/TokenLinkDto.md -docs/TokenLinkDtoTokenMetadata.md -docs/TokenLinkExistsHttpError.md -docs/TokenLinkNotMultichainCompatibleHttpError.md -docs/TokenLinkRequestDto.md -docs/TokenOwnershipResponse.md -docs/TokenOwnershipSpamUpdatePayload.md -docs/TokenOwnershipStatusUpdatePayload.md -docs/TokenResponse.md -docs/TokenizationApi.md -docs/TokensPaginatedResponse.md -docs/TotalSupplyItemDto.md -docs/TotalSupplyPagedResponse.md -docs/TradingAccountType.md -docs/TradingBetaApi.md -docs/TradingErrorSchema.md -docs/TradingProvider.md -docs/Transaction.md -docs/TransactionDirection.md -docs/TransactionFee.md -docs/TransactionOperation.md -docs/TransactionOperationEnum.md -docs/TransactionReceiptResponse.md -docs/TransactionRequest.md -docs/TransactionRequestAmount.md -docs/TransactionRequestDestination.md -docs/TransactionRequestFee.md -docs/TransactionRequestGasLimit.md -docs/TransactionRequestGasPrice.md -docs/TransactionRequestNetworkFee.md -docs/TransactionRequestNetworkStaking.md -docs/TransactionRequestPriorityFee.md -docs/TransactionResponse.md -docs/TransactionResponseContractCallDecodedData.md -docs/TransactionResponseDestination.md -docs/TransactionsApi.md -docs/TransferConfigOperation.md -docs/TransferOperationConfigParams.md -docs/TransferOperationExecution.md -docs/TransferOperationExecutionOutput.md -docs/TransferOperationExecutionParams.md -docs/TransferOperationExecutionParamsExecutionParams.md -docs/TransferOperationFailure.md -docs/TransferOperationFailureData.md -docs/TransferOperationPreview.md -docs/TransferOperationPreviewOutput.md -docs/TransferOperationType.md -docs/TransferPeerPathSubType.md -docs/TransferPeerPathType.md -docs/TransferPeerSubTypeEnum.md -docs/TransferPeerTypeEnum.md -docs/TransferRail.md -docs/TransferReceipt.md -docs/TransferValidationFailure.md -docs/TravelRuleActionEnum.md -docs/TravelRuleAddress.md -docs/TravelRuleApi.md -docs/TravelRuleCreateTransactionRequest.md -docs/TravelRuleDateAndPlaceOfBirth.md -docs/TravelRuleDirectionEnum.md -docs/TravelRuleGeographicAddress.md -docs/TravelRuleGetAllVASPsResponse.md -docs/TravelRuleIssuer.md -docs/TravelRuleIssuers.md -docs/TravelRuleLegalPerson.md -docs/TravelRuleLegalPersonNameIdentifier.md -docs/TravelRuleMatchedRule.md -docs/TravelRuleNationalIdentification.md -docs/TravelRuleNaturalNameIdentifier.md -docs/TravelRuleNaturalPerson.md -docs/TravelRuleNaturalPersonNameIdentifier.md -docs/TravelRuleOwnershipProof.md -docs/TravelRulePerson.md -docs/TravelRulePiiIVMS.md -docs/TravelRulePolicyRuleResponse.md -docs/TravelRulePrescreeningRule.md -docs/TravelRuleResult.md -docs/TravelRuleStatusEnum.md -docs/TravelRuleTransactionBlockchainInfo.md -docs/TravelRuleUpdateVASPDetails.md -docs/TravelRuleVASP.md -docs/TravelRuleValidateDateAndPlaceOfBirth.md -docs/TravelRuleValidateFullTransactionRequest.md -docs/TravelRuleValidateGeographicAddress.md -docs/TravelRuleValidateLegalPerson.md -docs/TravelRuleValidateLegalPersonNameIdentifier.md -docs/TravelRuleValidateNationalIdentification.md -docs/TravelRuleValidateNaturalNameIdentifier.md -docs/TravelRuleValidateNaturalPerson.md -docs/TravelRuleValidateNaturalPersonNameIdentifier.md -docs/TravelRuleValidatePerson.md -docs/TravelRuleValidatePiiIVMS.md -docs/TravelRuleValidateTransactionRequest.md -docs/TravelRuleValidateTransactionResponse.md -docs/TravelRuleVaspForVault.md -docs/TravelRuleVerdictEnum.md -docs/TrustProofOfAddressCreateResponse.md -docs/TrustProofOfAddressRequest.md -docs/TrustProofOfAddressResponse.md -docs/TxLog.md -docs/TypedMessageTransactionStatusEnum.md -docs/USWireAddress.md -docs/USWireDestination.md -docs/UnfreezeTransactionResponse.md -docs/UnmanagedWallet.md -docs/UnspentInput.md -docs/UnspentInputsResponse.md -docs/UnstakeRequest.md -docs/UpdateAssetUserMetadataRequest.md -docs/UpdateCallbackHandlerRequest.md -docs/UpdateCallbackHandlerResponse.md -docs/UpdateDraftRequest.md -docs/UpdateTagRequest.md -docs/UpdateTokenOwnershipStatusDto.md -docs/UpdateVaultAccountAssetAddressRequest.md -docs/UpdateVaultAccountRequest.md -docs/UpdateWebhookRequest.md -docs/UsWirePaymentInfo.md -docs/UserGroupCreateRequest.md -docs/UserGroupCreateResponse.md -docs/UserGroupResponse.md -docs/UserGroupUpdateRequest.md -docs/UserGroupsBetaApi.md -docs/UserResponse.md -docs/UserRole.md -docs/UserStatus.md -docs/UserType.md -docs/UsersApi.md -docs/ValidateAddressResponse.md -docs/ValidateLayerZeroChannelResponse.md -docs/ValidationKeyDto.md -docs/Validator.md -docs/VaultAccount.md -docs/VaultAccountTagAttachmentOperation.md -docs/VaultAccountTagAttachmentPendingOperation.md -docs/VaultAccountTagAttachmentRejectedOperation.md -docs/VaultAccountsPagedResponse.md -docs/VaultAccountsPagedResponsePaging.md -docs/VaultAccountsTagAttachmentOperationsRequest.md -docs/VaultAccountsTagAttachmentOperationsResponse.md -docs/VaultActionStatus.md -docs/VaultAsset.md -docs/VaultWalletAddress.md -docs/VaultsApi.md -docs/VendorDto.md -docs/VerdictConfig.md -docs/VersionSummary.md -docs/WalletAsset.md -docs/WalletAssetAdditionalInfo.md -docs/Web3ConnectionsApi.md -docs/Webhook.md -docs/WebhookEvent.md -docs/WebhookMetric.md -docs/WebhookPaginatedResponse.md -docs/WebhooksApi.md -docs/WebhooksV2Api.md -docs/WhitelistIpAddressesApi.md -docs/WithdrawRequest.md -docs/WorkflowConfigStatus.md -docs/WorkflowConfigurationId.md -docs/WorkflowExecutionOperation.md -docs/Workspace.md -docs/WorkspaceApi.md -docs/WorkspaceStatusBetaApi.md -docs/WriteAbiFunction.md -docs/WriteCallFunctionDto.md -docs/WriteCallFunctionDtoAbiFunction.md -docs/WriteCallFunctionResponseDto.md -fireblocks/__init__.py -fireblocks/additional_options.py -fireblocks/api/__init__.py -fireblocks/api/api_user_api.py -fireblocks/api/audit_logs_api.py -fireblocks/api/blockchains_assets_api.py -fireblocks/api/compliance_api.py -fireblocks/api/compliance_screening_configuration_api.py -fireblocks/api/connected_accounts_beta_api.py -fireblocks/api/console_user_api.py -fireblocks/api/contract_interactions_api.py -fireblocks/api/contract_templates_api.py -fireblocks/api/contracts_api.py -fireblocks/api/cosigners_beta_api.py -fireblocks/api/deployed_contracts_api.py -fireblocks/api/embedded_wallets_api.py -fireblocks/api/exchange_accounts_api.py -fireblocks/api/external_wallets_api.py -fireblocks/api/fiat_accounts_api.py -fireblocks/api/gas_stations_api.py -fireblocks/api/internal_wallets_api.py -fireblocks/api/key_link_beta_api.py -fireblocks/api/keys_beta_api.py -fireblocks/api/network_connections_api.py -fireblocks/api/nfts_api.py -fireblocks/api/off_exchanges_api.py -fireblocks/api/onchain_data_api.py -fireblocks/api/ota_beta_api.py -fireblocks/api/payments_payout_api.py -fireblocks/api/policy_editor_beta_api.py -fireblocks/api/policy_editor_v2_beta_api.py -fireblocks/api/reset_device_api.py -fireblocks/api/smart_transfer_api.py -fireblocks/api/staking_api.py -fireblocks/api/tags_api.py -fireblocks/api/tokenization_api.py -fireblocks/api/tr_link_api.py -fireblocks/api/trading_beta_api.py -fireblocks/api/transactions_api.py -fireblocks/api/travel_rule_api.py -fireblocks/api/user_groups_beta_api.py -fireblocks/api/users_api.py -fireblocks/api/vaults_api.py -fireblocks/api/web3_connections_api.py -fireblocks/api/webhooks_api.py -fireblocks/api/webhooks_v2_api.py -fireblocks/api/whitelist_ip_addresses_api.py -fireblocks/api/workspace_api.py -fireblocks/api/workspace_status_beta_api.py -fireblocks/api_client.py -fireblocks/api_response.py -fireblocks/base_path.py -fireblocks/bearer_token_provider.py -fireblocks/client.py -fireblocks/client_configuration.py -fireblocks/configuration.py -fireblocks/exceptions.py -fireblocks/models/__init__.py -fireblocks/models/aba_payment_info.py -fireblocks/models/abi_function.py -fireblocks/models/access_registry_address_item.py -fireblocks/models/access_registry_current_state_response.py -fireblocks/models/access_registry_summary_response.py -fireblocks/models/access_type.py -fireblocks/models/account.py -fireblocks/models/account_access.py -fireblocks/models/account_base.py -fireblocks/models/account_based_access_provider.py -fireblocks/models/account_based_access_provider_details.py -fireblocks/models/account_config.py -fireblocks/models/account_holder_details.py -fireblocks/models/account_identifier.py -fireblocks/models/account_reference.py -fireblocks/models/account_type.py -fireblocks/models/account_type2.py -fireblocks/models/ach_account_type.py -fireblocks/models/ach_address.py -fireblocks/models/ach_destination.py -fireblocks/models/ach_payment_info.py -fireblocks/models/adapter_processing_result.py -fireblocks/models/add_abi_request_dto.py -fireblocks/models/add_asset_to_external_wallet_request.py -fireblocks/models/add_collateral_request_body.py -fireblocks/models/add_contract_asset_request.py -fireblocks/models/add_cosigner_request.py -fireblocks/models/add_cosigner_response.py -fireblocks/models/add_exchange_account_request.py -fireblocks/models/add_exchange_account_response.py -fireblocks/models/additional_info.py -fireblocks/models/additional_info_request.py -fireblocks/models/additional_info_request_additional_info.py -fireblocks/models/address_balance_item_dto.py -fireblocks/models/address_balance_paged_response.py -fireblocks/models/address_not_available_error.py -fireblocks/models/address_registry_error.py -fireblocks/models/address_registry_legal_entity.py -fireblocks/models/alert_exposure_type_enum.py -fireblocks/models/alert_level_enum.py -fireblocks/models/aml_alert.py -fireblocks/models/aml_matched_rule.py -fireblocks/models/aml_registration_result.py -fireblocks/models/aml_registration_result_full_payload.py -fireblocks/models/aml_result.py -fireblocks/models/aml_screening_result.py -fireblocks/models/aml_status_enum.py -fireblocks/models/aml_verdict_manual_request.py -fireblocks/models/aml_verdict_manual_response.py -fireblocks/models/amount_and_chain_descriptor.py -fireblocks/models/amount_config.py -fireblocks/models/amount_config_currency.py -fireblocks/models/amount_info.py -fireblocks/models/amount_over_time_config.py -fireblocks/models/amount_range.py -fireblocks/models/amount_range_min_max.py -fireblocks/models/amount_range_min_max2.py -fireblocks/models/api_key.py -fireblocks/models/api_keys_paginated_response.py -fireblocks/models/api_user.py -fireblocks/models/approval_request.py -fireblocks/models/approvers_config.py -fireblocks/models/approvers_config_approval_groups_inner.py -fireblocks/models/asset.py -fireblocks/models/asset_already_exist_http_error.py -fireblocks/models/asset_amount.py -fireblocks/models/asset_bad_request_error_response.py -fireblocks/models/asset_class.py -fireblocks/models/asset_config.py -fireblocks/models/asset_conflict_error_response.py -fireblocks/models/asset_details_metadata.py -fireblocks/models/asset_details_onchain.py -fireblocks/models/asset_feature.py -fireblocks/models/asset_forbidden_error_response.py -fireblocks/models/asset_internal_server_error_response.py -fireblocks/models/asset_media.py -fireblocks/models/asset_media_attributes.py -fireblocks/models/asset_metadata.py -fireblocks/models/asset_metadata_dto.py -fireblocks/models/asset_metadata_request.py -fireblocks/models/asset_not_found_error_response.py -fireblocks/models/asset_note.py -fireblocks/models/asset_note_request.py -fireblocks/models/asset_onchain.py -fireblocks/models/asset_price_forbidden_error_response.py -fireblocks/models/asset_price_not_found_error_response.py -fireblocks/models/asset_price_response.py -fireblocks/models/asset_response.py -fireblocks/models/asset_scope.py -fireblocks/models/asset_type_enum.py -fireblocks/models/asset_type_response.py -fireblocks/models/asset_types_config_inner.py -fireblocks/models/asset_wallet.py -fireblocks/models/audit_log_data.py -fireblocks/models/auditor_data.py -fireblocks/models/authorization_groups.py -fireblocks/models/authorization_info.py -fireblocks/models/balance_history_item_dto.py -fireblocks/models/balance_history_paged_response.py -fireblocks/models/bank_address.py -fireblocks/models/base_provider.py -fireblocks/models/basic_address_request.py -fireblocks/models/block_info.py -fireblocks/models/blockchain_address.py -fireblocks/models/blockchain_destination.py -fireblocks/models/blockchain_explorer.py -fireblocks/models/blockchain_media.py -fireblocks/models/blockchain_metadata.py -fireblocks/models/blockchain_not_found_error_response.py -fireblocks/models/blockchain_onchain.py -fireblocks/models/blockchain_response.py -fireblocks/models/blockchain_transfer.py -fireblocks/models/bps_fee.py -fireblocks/models/business_entity_type_enum.py -fireblocks/models/business_identification.py -fireblocks/models/callback_handler.py -fireblocks/models/callback_handler_request.py -fireblocks/models/cancel_transaction_response.py -fireblocks/models/capability.py -fireblocks/models/chain_descriptor.py -fireblocks/models/chain_info_response.py -fireblocks/models/channel_dvn_config_with_confirmations.py -fireblocks/models/channel_dvn_config_with_confirmations_receive_config.py -fireblocks/models/channel_dvn_config_with_confirmations_send_config.py -fireblocks/models/chaps_address.py -fireblocks/models/chaps_destination.py -fireblocks/models/chaps_payment_info.py -fireblocks/models/claim_rewards_request.py -fireblocks/models/collection_burn_request_dto.py -fireblocks/models/collection_burn_response_dto.py -fireblocks/models/collection_deploy_request_dto.py -fireblocks/models/collection_link_dto.py -fireblocks/models/collection_metadata_dto.py -fireblocks/models/collection_mint_request_dto.py -fireblocks/models/collection_mint_response_dto.py -fireblocks/models/collection_ownership_response.py -fireblocks/models/collection_token_metadata_attribute_dto.py -fireblocks/models/collection_token_metadata_dto.py -fireblocks/models/collection_type.py -fireblocks/models/committed_quote_enum.py -fireblocks/models/committed_quote_type.py -fireblocks/models/compliance_result_full_payload.py -fireblocks/models/compliance_result_statuses_enum.py -fireblocks/models/compliance_results.py -fireblocks/models/compliance_screening_result.py -fireblocks/models/compliance_screening_result_full_payload.py -fireblocks/models/config_change_request_status.py -fireblocks/models/config_conversion_operation_snapshot.py -fireblocks/models/config_disbursement_operation_snapshot.py -fireblocks/models/config_operation.py -fireblocks/models/config_operation_snapshot.py -fireblocks/models/config_operation_status.py -fireblocks/models/config_transfer_operation_snapshot.py -fireblocks/models/connected_account.py -fireblocks/models/connected_account_approval_status.py -fireblocks/models/connected_account_asset_type.py -fireblocks/models/connected_account_balances.py -fireblocks/models/connected_account_balances_response.py -fireblocks/models/connected_account_capability.py -fireblocks/models/connected_account_error_response.py -fireblocks/models/connected_account_manifest.py -fireblocks/models/connected_account_rate_response.py -fireblocks/models/connected_account_total_balance.py -fireblocks/models/connected_account_trading_pair.py -fireblocks/models/connected_account_trading_pair_supported_type.py -fireblocks/models/connected_account_trading_pairs_response.py -fireblocks/models/connected_accounts_response.py -fireblocks/models/connected_single_account.py -fireblocks/models/connected_single_account_response.py -fireblocks/models/console_user.py -fireblocks/models/contract_abi_response_dto.py -fireblocks/models/contract_abi_response_dto_abi_inner.py -fireblocks/models/contract_address_response.py -fireblocks/models/contract_attributes.py -fireblocks/models/contract_data_decode_data_type.py -fireblocks/models/contract_data_decode_error.py -fireblocks/models/contract_data_decode_request.py -fireblocks/models/contract_data_decode_request_data.py -fireblocks/models/contract_data_decode_response_params.py -fireblocks/models/contract_data_decoded_response.py -fireblocks/models/contract_data_log_data_param.py -fireblocks/models/contract_deploy_request.py -fireblocks/models/contract_deploy_response.py -fireblocks/models/contract_doc.py -fireblocks/models/contract_metadata_dto.py -fireblocks/models/contract_method_config.py -fireblocks/models/contract_method_pattern.py -fireblocks/models/contract_template_dto.py -fireblocks/models/contract_upload_request.py -fireblocks/models/contract_with_abi_dto.py -fireblocks/models/conversion_config_operation.py -fireblocks/models/conversion_operation_config_params.py -fireblocks/models/conversion_operation_execution.py -fireblocks/models/conversion_operation_execution_output.py -fireblocks/models/conversion_operation_execution_params.py -fireblocks/models/conversion_operation_execution_params_execution_params.py -fireblocks/models/conversion_operation_failure.py -fireblocks/models/conversion_operation_preview.py -fireblocks/models/conversion_operation_preview_output.py -fireblocks/models/conversion_operation_type.py -fireblocks/models/conversion_validation_failure.py -fireblocks/models/convert_assets_request.py -fireblocks/models/convert_assets_response.py -fireblocks/models/cosigner.py -fireblocks/models/cosigners_paginated_response.py -fireblocks/models/create_address_request.py -fireblocks/models/create_address_response.py -fireblocks/models/create_api_user.py -fireblocks/models/create_assets_request.py -fireblocks/models/create_config_operation_request.py -fireblocks/models/create_connection_request.py -fireblocks/models/create_connection_response.py -fireblocks/models/create_console_user.py -fireblocks/models/create_contract_request.py -fireblocks/models/create_conversion_config_operation_request.py -fireblocks/models/create_disbursement_config_operation_request.py -fireblocks/models/create_internal_transfer_request.py -fireblocks/models/create_internal_wallet_asset_request.py -fireblocks/models/create_multichain_token_request.py -fireblocks/models/create_multichain_token_request_create_params.py -fireblocks/models/create_multiple_accounts_request.py -fireblocks/models/create_multiple_deposit_addresses_job_status.py -fireblocks/models/create_multiple_deposit_addresses_request.py -fireblocks/models/create_multiple_vault_accounts_job_status.py -fireblocks/models/create_ncw_connection_request.py -fireblocks/models/create_network_id_request.py -fireblocks/models/create_order_request.py -fireblocks/models/create_payout_request.py -fireblocks/models/create_quote.py -fireblocks/models/create_quote_scope_inner.py -fireblocks/models/create_signing_key_dto.py -fireblocks/models/create_signing_key_dto_proof_of_ownership.py -fireblocks/models/create_tag_request.py -fireblocks/models/create_token_request_dto.py -fireblocks/models/create_token_request_dto_create_params.py -fireblocks/models/create_transaction_response.py -fireblocks/models/create_transfer_config_operation_request.py -fireblocks/models/create_user_group_response.py -fireblocks/models/create_validation_key_dto.py -fireblocks/models/create_validation_key_response_dto.py -fireblocks/models/create_vault_account_connection_request.py -fireblocks/models/create_vault_account_request.py -fireblocks/models/create_vault_asset_response.py -fireblocks/models/create_wallet_request.py -fireblocks/models/create_webhook_request.py -fireblocks/models/create_workflow_execution_request_params_inner.py -fireblocks/models/custom_routing_dest.py -fireblocks/models/d_app_address_config.py -fireblocks/models/decoded_log.py -fireblocks/models/default_network_routing_dest.py -fireblocks/models/delegation.py -fireblocks/models/delegation_blockchain_position_info.py -fireblocks/models/delegation_summary.py -fireblocks/models/delete_network_connection_response.py -fireblocks/models/delete_network_id_response.py -fireblocks/models/deploy_layer_zero_adapters_request.py -fireblocks/models/deployable_address_response.py -fireblocks/models/deployed_contract_not_found_error.py -fireblocks/models/deployed_contract_response_dto.py -fireblocks/models/deployed_contracts_paginated_response.py -fireblocks/models/deposit_funds_from_linked_dda_response.py -fireblocks/models/derivation_path_config.py -fireblocks/models/designated_signers_config.py -fireblocks/models/destination.py -fireblocks/models/destination_config.py -fireblocks/models/destination_transfer_peer_path.py -fireblocks/models/destination_transfer_peer_path_response.py -fireblocks/models/direct_access.py -fireblocks/models/direct_access_provider.py -fireblocks/models/direct_access_provider_details.py -fireblocks/models/disbursement_amount_instruction.py -fireblocks/models/disbursement_config_operation.py -fireblocks/models/disbursement_instruction.py -fireblocks/models/disbursement_instruction_output.py -fireblocks/models/disbursement_operation_config_params.py -fireblocks/models/disbursement_operation_execution.py -fireblocks/models/disbursement_operation_execution_output.py -fireblocks/models/disbursement_operation_execution_params.py -fireblocks/models/disbursement_operation_execution_params_execution_params.py -fireblocks/models/disbursement_operation_input.py -fireblocks/models/disbursement_operation_preview.py -fireblocks/models/disbursement_operation_preview_output.py -fireblocks/models/disbursement_operation_preview_output_instruction_set_inner.py -fireblocks/models/disbursement_operation_type.py -fireblocks/models/disbursement_percentage_instruction.py -fireblocks/models/disbursement_validation_failure.py -fireblocks/models/dispatch_payout_response.py -fireblocks/models/draft_response.py -fireblocks/models/draft_review_and_validation_response.py -fireblocks/models/drop_transaction_request.py -fireblocks/models/drop_transaction_response.py -fireblocks/models/dvn_config.py -fireblocks/models/dvn_config_with_confirmations.py -fireblocks/models/dvp_settlement.py -fireblocks/models/dvp_settlement_type.py -fireblocks/models/edit_gas_station_configuration_response.py -fireblocks/models/embedded_wallet.py -fireblocks/models/embedded_wallet_account.py -fireblocks/models/embedded_wallet_address_details.py -fireblocks/models/embedded_wallet_algoritm.py -fireblocks/models/embedded_wallet_asset_balance.py -fireblocks/models/embedded_wallet_asset_response.py -fireblocks/models/embedded_wallet_asset_reward_info.py -fireblocks/models/embedded_wallet_device.py -fireblocks/models/embedded_wallet_device_key_setup_response.py -fireblocks/models/embedded_wallet_device_key_setup_response_setup_status_inner.py -fireblocks/models/embedded_wallet_latest_backup_key.py -fireblocks/models/embedded_wallet_latest_backup_response.py -fireblocks/models/embedded_wallet_paginated_addresses_response.py -fireblocks/models/embedded_wallet_paginated_assets_response.py -fireblocks/models/embedded_wallet_paginated_devices_response.py -fireblocks/models/embedded_wallet_paginated_wallets_response.py -fireblocks/models/embedded_wallet_required_algorithms.py -fireblocks/models/embedded_wallet_set_up_status.py -fireblocks/models/embedded_wallet_setup_status_response.py -fireblocks/models/enable_device.py -fireblocks/models/enable_wallet.py -fireblocks/models/error_response.py -fireblocks/models/error_response_error.py -fireblocks/models/error_schema.py -fireblocks/models/estimated_fee_details.py -fireblocks/models/estimated_network_fee_response.py -fireblocks/models/estimated_transaction_fee_response.py -fireblocks/models/ethereum_blockchain_data.py -fireblocks/models/european_sepa_address.py -fireblocks/models/european_sepa_destination.py -fireblocks/models/evm_token_create_params_dto.py -fireblocks/models/exchange_account.py -fireblocks/models/exchange_asset.py -fireblocks/models/exchange_settlement_transactions_response.py -fireblocks/models/exchange_trading_account.py -fireblocks/models/exchange_type.py -fireblocks/models/execution_conversion_operation.py -fireblocks/models/execution_disbursement_operation.py -fireblocks/models/execution_operation_status.py -fireblocks/models/execution_request_base_details.py -fireblocks/models/execution_request_details.py -fireblocks/models/execution_response_base_details.py -fireblocks/models/execution_response_details.py -fireblocks/models/execution_screening_operation.py -fireblocks/models/execution_step_error.py -fireblocks/models/execution_step_status_enum.py -fireblocks/models/execution_step_type.py -fireblocks/models/execution_transfer_operation.py -fireblocks/models/external_account.py -fireblocks/models/external_account_local_bank_africa.py -fireblocks/models/external_account_mobile_money.py -fireblocks/models/external_account_mobile_money_provider.py -fireblocks/models/external_account_mobile_money_type.py -fireblocks/models/external_account_sender_information.py -fireblocks/models/external_account_type.py -fireblocks/models/external_wallet_asset.py -fireblocks/models/extra_parameters.py -fireblocks/models/failure.py -fireblocks/models/failure_reason.py -fireblocks/models/fee.py -fireblocks/models/fee_breakdown.py -fireblocks/models/fee_info.py -fireblocks/models/fee_level.py -fireblocks/models/fee_payer_info.py -fireblocks/models/fee_properties_details.py -fireblocks/models/fee_type_enum.py -fireblocks/models/fetch_abi_request_dto.py -fireblocks/models/fiat_account.py -fireblocks/models/fiat_account_type.py -fireblocks/models/fiat_asset.py -fireblocks/models/fiat_destination.py -fireblocks/models/fiat_payment_metadata.py -fireblocks/models/fiat_transfer.py -fireblocks/models/fixed_amount_type_enum.py -fireblocks/models/fixed_fee.py -fireblocks/models/freeze_transaction_response.py -fireblocks/models/function_doc.py -fireblocks/models/funds.py -fireblocks/models/gas_station_configuration.py -fireblocks/models/gas_station_configuration_response.py -fireblocks/models/gas_station_properties_response.py -fireblocks/models/gassless_standard_configurations.py -fireblocks/models/gassless_standard_configurations_gasless_standard_configurations_value.py -fireblocks/models/get_api_users_response.py -fireblocks/models/get_audit_logs_response.py -fireblocks/models/get_connections_response.py -fireblocks/models/get_console_users_response.py -fireblocks/models/get_deployable_address_request.py -fireblocks/models/get_exchange_accounts_credentials_public_key_response.py -fireblocks/models/get_filter_parameter.py -fireblocks/models/get_layer_zero_dvn_config_response.py -fireblocks/models/get_layer_zero_peers_response.py -fireblocks/models/get_linked_collections_paginated_response.py -fireblocks/models/get_max_bip_index_used_response.py -fireblocks/models/get_max_spendable_amount_response.py -fireblocks/models/get_mpc_keys_response.py -fireblocks/models/get_nfts_response.py -fireblocks/models/get_orders_response.py -fireblocks/models/get_ota_status_response.py -fireblocks/models/get_ownership_tokens_response.py -fireblocks/models/get_paged_exchange_accounts_response.py -fireblocks/models/get_paged_exchange_accounts_response_paging.py -fireblocks/models/get_signing_key_response_dto.py -fireblocks/models/get_transaction_operation.py -fireblocks/models/get_validation_key_response_dto.py -fireblocks/models/get_whitelist_ip_addresses_response.py -fireblocks/models/get_workspace_status_response.py -fireblocks/models/http_contract_does_not_exist_error.py -fireblocks/models/iban_address.py -fireblocks/models/iban_destination.py -fireblocks/models/iban_payment_info.py -fireblocks/models/identification.py -fireblocks/models/idl_type.py -fireblocks/models/indicative_quote_enum.py -fireblocks/models/indicative_quote_type.py -fireblocks/models/initiator_config.py -fireblocks/models/initiator_config_pattern.py -fireblocks/models/instruction_amount.py -fireblocks/models/interac_address.py -fireblocks/models/interac_destination.py -fireblocks/models/interac_payment_info.py -fireblocks/models/internal_reference.py -fireblocks/models/internal_transfer_address.py -fireblocks/models/internal_transfer_destination.py -fireblocks/models/internal_transfer_response.py -fireblocks/models/invalid_paramater_value_error.py -fireblocks/models/job_created.py -fireblocks/models/layer_zero_adapter_create_params.py -fireblocks/models/lbt_payment_info.py -fireblocks/models/lean_abi_function.py -fireblocks/models/lean_contract_dto.py -fireblocks/models/lean_deployed_contract_response_dto.py -fireblocks/models/legacy_amount_aggregation_time_period_method.py -fireblocks/models/legacy_draft_response.py -fireblocks/models/legacy_draft_review_and_validation_response.py -fireblocks/models/legacy_policy_and_validation_response.py -fireblocks/models/legacy_policy_check_result.py -fireblocks/models/legacy_policy_metadata.py -fireblocks/models/legacy_policy_response.py -fireblocks/models/legacy_policy_rule.py -fireblocks/models/legacy_policy_rule_amount.py -fireblocks/models/legacy_policy_rule_amount_aggregation.py -fireblocks/models/legacy_policy_rule_authorization_groups.py -fireblocks/models/legacy_policy_rule_authorization_groups_groups_inner.py -fireblocks/models/legacy_policy_rule_check_result.py -fireblocks/models/legacy_policy_rule_designated_signers.py -fireblocks/models/legacy_policy_rule_dst.py -fireblocks/models/legacy_policy_rule_error.py -fireblocks/models/legacy_policy_rule_operators.py -fireblocks/models/legacy_policy_rule_raw_message_signing.py -fireblocks/models/legacy_policy_rule_raw_message_signing_derivation_path.py -fireblocks/models/legacy_policy_rule_src.py -fireblocks/models/legacy_policy_rules.py -fireblocks/models/legacy_policy_src_or_dest_sub_type.py -fireblocks/models/legacy_policy_src_or_dest_type.py -fireblocks/models/legacy_policy_status.py -fireblocks/models/legacy_policy_validation.py -fireblocks/models/legacy_publish_draft_request.py -fireblocks/models/legacy_publish_result.py -fireblocks/models/legacy_src_or_dest_attributes_inner.py -fireblocks/models/linked_tokens_count.py -fireblocks/models/list_assets_response.py -fireblocks/models/list_blockchains_response.py -fireblocks/models/list_owned_collections_response.py -fireblocks/models/list_owned_tokens_response.py -fireblocks/models/local_bank_transfer_africa_address.py -fireblocks/models/local_bank_transfer_africa_destination.py -fireblocks/models/manifest.py -fireblocks/models/market_execution_request_details.py -fireblocks/models/market_execution_response_details.py -fireblocks/models/market_requote_request_details.py -fireblocks/models/market_requote_type_enum.py -fireblocks/models/market_type_details.py -fireblocks/models/market_type_enum.py -fireblocks/models/media_entity_response.py -fireblocks/models/merge_stake_accounts_request.py -fireblocks/models/merge_stake_accounts_response.py -fireblocks/models/mobile_money_address.py -fireblocks/models/mobile_money_destination.py -fireblocks/models/modify_signing_key_agent_id_dto.py -fireblocks/models/modify_signing_key_dto.py -fireblocks/models/modify_validation_key_dto.py -fireblocks/models/momo_payment_info.py -fireblocks/models/mpc_key.py -fireblocks/models/multichain_deployment_metadata.py -fireblocks/models/network_channel.py -fireblocks/models/network_connection.py -fireblocks/models/network_connection_response.py -fireblocks/models/network_connection_routing_policy_value.py -fireblocks/models/network_connection_status.py -fireblocks/models/network_fee.py -fireblocks/models/network_id.py -fireblocks/models/network_id_response.py -fireblocks/models/network_id_routing_policy_value.py -fireblocks/models/network_record.py -fireblocks/models/new_address.py -fireblocks/models/none_network_routing_dest.py -fireblocks/models/not_found_exception.py -fireblocks/models/notification.py -fireblocks/models/notification_attempt.py -fireblocks/models/notification_attempts_paginated_response.py -fireblocks/models/notification_paginated_response.py -fireblocks/models/notification_status.py -fireblocks/models/notification_with_data.py -fireblocks/models/onchain_transaction.py -fireblocks/models/onchain_transactions_paged_response.py -fireblocks/models/one_time_address.py -fireblocks/models/one_time_address_account.py -fireblocks/models/one_time_address_peer_type.py -fireblocks/models/one_time_address_reference.py -fireblocks/models/operation_execution_failure.py -fireblocks/models/order_details.py -fireblocks/models/order_execution_step.py -fireblocks/models/order_side.py -fireblocks/models/order_status.py -fireblocks/models/order_summary.py -fireblocks/models/paginated_address_response.py -fireblocks/models/paginated_address_response_paging.py -fireblocks/models/paginated_asset_wallet_response.py -fireblocks/models/paginated_asset_wallet_response_paging.py -fireblocks/models/paginated_assets_response.py -fireblocks/models/paging.py -fireblocks/models/pair_api_key_request.py -fireblocks/models/pair_api_key_response.py -fireblocks/models/parameter.py -fireblocks/models/parameter_with_value.py -fireblocks/models/participant_relationship_type.py -fireblocks/models/participants_identification.py -fireblocks/models/payee_account.py -fireblocks/models/payee_account_response.py -fireblocks/models/payee_account_type.py -fireblocks/models/payid_address.py -fireblocks/models/payid_destination.py -fireblocks/models/payid_payment_info.py -fireblocks/models/payment_account.py -fireblocks/models/payment_account_response.py -fireblocks/models/payment_account_type.py -fireblocks/models/payment_instructions.py -fireblocks/models/payment_instructions_one_of.py -fireblocks/models/payment_redirect.py -fireblocks/models/payout_init_method.py -fireblocks/models/payout_instruction.py -fireblocks/models/payout_instruction_response.py -fireblocks/models/payout_instruction_state.py -fireblocks/models/payout_response.py -fireblocks/models/payout_state.py -fireblocks/models/payout_status.py -fireblocks/models/peer_adapter_info.py -fireblocks/models/peer_type.py -fireblocks/models/personal_entity_type_enum.py -fireblocks/models/personal_identification.py -fireblocks/models/personal_identification_full_name.py -fireblocks/models/personal_identification_type.py -fireblocks/models/pix_address.py -fireblocks/models/pix_destination.py -fireblocks/models/pix_payment_info.py -fireblocks/models/platform_account.py -fireblocks/models/platform_peer_type.py -fireblocks/models/players.py -fireblocks/models/policy_and_validation_response.py -fireblocks/models/policy_check_result.py -fireblocks/models/policy_currency.py -fireblocks/models/policy_metadata.py -fireblocks/models/policy_operator.py -fireblocks/models/policy_response.py -fireblocks/models/policy_rule.py -fireblocks/models/policy_rule_check_result.py -fireblocks/models/policy_rule_error.py -fireblocks/models/policy_status.py -fireblocks/models/policy_tag.py -fireblocks/models/policy_type.py -fireblocks/models/policy_validation.py -fireblocks/models/policy_verdict_action_enum.py -fireblocks/models/policy_verdict_action_enum2.py -fireblocks/models/postal_address.py -fireblocks/models/pre_screening.py -fireblocks/models/prefunded_settlement.py -fireblocks/models/prefunded_settlement_type.py -fireblocks/models/program_call_config.py -fireblocks/models/provider.py -fireblocks/models/providers_list_response.py -fireblocks/models/public_key_information.py -fireblocks/models/publish_draft_request.py -fireblocks/models/publish_result.py -fireblocks/models/quote.py -fireblocks/models/quote_execution_request_details.py -fireblocks/models/quote_execution_step.py -fireblocks/models/quote_execution_type_details.py -fireblocks/models/quote_execution_with_requote_request_details.py -fireblocks/models/quote_execution_with_requote_response_details.py -fireblocks/models/quote_failure.py -fireblocks/models/quote_properties_details.py -fireblocks/models/quote_type_enum.py -fireblocks/models/quotes_response.py -fireblocks/models/re_quote_details.py -fireblocks/models/re_quote_details_re_quote.py -fireblocks/models/read_abi_function.py -fireblocks/models/read_call_function_dto.py -fireblocks/models/read_call_function_dto_abi_function.py -fireblocks/models/recipient_handle.py -fireblocks/models/redeem_funds_to_linked_dda_response.py -fireblocks/models/register_new_asset_request.py -fireblocks/models/reissue_multichain_token_request.py -fireblocks/models/related_request.py -fireblocks/models/related_transaction.py -fireblocks/models/remove_collateral_request_body.py -fireblocks/models/remove_layer_zero_adapter_failed_result.py -fireblocks/models/remove_layer_zero_adapters_request.py -fireblocks/models/remove_layer_zero_adapters_response.py -fireblocks/models/remove_layer_zero_peers_request.py -fireblocks/models/remove_layer_zero_peers_response.py -fireblocks/models/rename_connected_account_request.py -fireblocks/models/rename_connected_account_response.py -fireblocks/models/rename_cosigner.py -fireblocks/models/rename_vault_account_response.py -fireblocks/models/resend_failed_notifications_job_status_response.py -fireblocks/models/resend_failed_notifications_request.py -fireblocks/models/resend_failed_notifications_response.py -fireblocks/models/resend_notifications_by_resource_id_request.py -fireblocks/models/resend_transaction_webhooks_request.py -fireblocks/models/resend_webhooks_by_transaction_id_response.py -fireblocks/models/resend_webhooks_response.py -fireblocks/models/respond_to_connection_request.py -fireblocks/models/retry_requote_request_details.py -fireblocks/models/retry_requote_type_enum.py -fireblocks/models/reward_info.py -fireblocks/models/rewards_info.py -fireblocks/models/role_details.py -fireblocks/models/role_grantee.py -fireblocks/models/scope_item.py -fireblocks/models/screening_alert_exposure_type_enum.py -fireblocks/models/screening_aml_alert.py -fireblocks/models/screening_aml_matched_rule.py -fireblocks/models/screening_aml_result.py -fireblocks/models/screening_configurations_request.py -fireblocks/models/screening_metadata_config.py -fireblocks/models/screening_operation_execution.py -fireblocks/models/screening_operation_execution_output.py -fireblocks/models/screening_operation_failure.py -fireblocks/models/screening_operation_type.py -fireblocks/models/screening_policy_response.py -fireblocks/models/screening_provider_rules_configuration_response.py -fireblocks/models/screening_risk_level_enum.py -fireblocks/models/screening_tr_link_amount.py -fireblocks/models/screening_tr_link_missing_trm_decision.py -fireblocks/models/screening_tr_link_missing_trm_rule.py -fireblocks/models/screening_tr_link_post_screening_rule.py -fireblocks/models/screening_tr_link_prescreening_rule.py -fireblocks/models/screening_tr_link_rule_base.py -fireblocks/models/screening_travel_rule_matched_rule.py -fireblocks/models/screening_travel_rule_prescreening_rule.py -fireblocks/models/screening_travel_rule_result.py -fireblocks/models/screening_update_configurations.py -fireblocks/models/screening_validation_failure.py -fireblocks/models/screening_verdict.py -fireblocks/models/screening_verdict_enum.py -fireblocks/models/screening_verdict_matched_rule.py -fireblocks/models/search_network_ids_response.py -fireblocks/models/sepa_address.py -fireblocks/models/sepa_destination.py -fireblocks/models/sepa_payment_info.py -fireblocks/models/session_dto.py -fireblocks/models/session_metadata.py -fireblocks/models/set_admin_quorum_threshold_request.py -fireblocks/models/set_admin_quorum_threshold_response.py -fireblocks/models/set_asset_price_request.py -fireblocks/models/set_auto_fuel_request.py -fireblocks/models/set_confirmations_threshold_request.py -fireblocks/models/set_confirmations_threshold_response.py -fireblocks/models/set_customer_ref_id_for_address_request.py -fireblocks/models/set_customer_ref_id_request.py -fireblocks/models/set_layer_zero_dvn_config_request.py -fireblocks/models/set_layer_zero_dvn_config_response.py -fireblocks/models/set_layer_zero_peers_request.py -fireblocks/models/set_layer_zero_peers_response.py -fireblocks/models/set_network_id_discoverability_request.py -fireblocks/models/set_network_id_name_request.py -fireblocks/models/set_network_id_response.py -fireblocks/models/set_network_id_routing_policy_request.py -fireblocks/models/set_ota_status_request.py -fireblocks/models/set_ota_status_response.py -fireblocks/models/set_ota_status_response_one_of.py -fireblocks/models/set_routing_policy_request.py -fireblocks/models/set_routing_policy_response.py -fireblocks/models/settlement.py -fireblocks/models/settlement_request_body.py -fireblocks/models/settlement_response.py -fireblocks/models/settlement_source_account.py -fireblocks/models/side.py -fireblocks/models/signed_message.py -fireblocks/models/signed_message_signature.py -fireblocks/models/signing_key_dto.py -fireblocks/models/smart_transfer_approve_term.py -fireblocks/models/smart_transfer_bad_request_response.py -fireblocks/models/smart_transfer_coin_statistic.py -fireblocks/models/smart_transfer_create_ticket.py -fireblocks/models/smart_transfer_create_ticket_term.py -fireblocks/models/smart_transfer_forbidden_response.py -fireblocks/models/smart_transfer_fund_dvp_ticket.py -fireblocks/models/smart_transfer_fund_term.py -fireblocks/models/smart_transfer_manually_fund_term.py -fireblocks/models/smart_transfer_not_found_response.py -fireblocks/models/smart_transfer_set_ticket_expiration.py -fireblocks/models/smart_transfer_set_ticket_external_id.py -fireblocks/models/smart_transfer_set_user_groups.py -fireblocks/models/smart_transfer_statistic.py -fireblocks/models/smart_transfer_statistic_inflow.py -fireblocks/models/smart_transfer_statistic_outflow.py -fireblocks/models/smart_transfer_submit_ticket.py -fireblocks/models/smart_transfer_ticket.py -fireblocks/models/smart_transfer_ticket_filtered_response.py -fireblocks/models/smart_transfer_ticket_response.py -fireblocks/models/smart_transfer_ticket_term.py -fireblocks/models/smart_transfer_ticket_term_response.py -fireblocks/models/smart_transfer_update_ticket_term.py -fireblocks/models/smart_transfer_user_groups.py -fireblocks/models/smart_transfer_user_groups_response.py -fireblocks/models/sol_account.py -fireblocks/models/sol_account_with_value.py -fireblocks/models/sol_parameter.py -fireblocks/models/sol_parameter_with_value.py -fireblocks/models/solana_blockchain_data.py -fireblocks/models/solana_config.py -fireblocks/models/solana_instruction.py -fireblocks/models/solana_instruction_with_value.py -fireblocks/models/solana_simple_create_params.py -fireblocks/models/source_config.py -fireblocks/models/source_transfer_peer_path.py -fireblocks/models/source_transfer_peer_path_response.py -fireblocks/models/spam_ownership_response.py -fireblocks/models/spam_token_response.py -fireblocks/models/spei_address.py -fireblocks/models/spei_advanced_payment_info.py -fireblocks/models/spei_basic_payment_info.py -fireblocks/models/spei_destination.py -fireblocks/models/split_request.py -fireblocks/models/split_response.py -fireblocks/models/st_eth_blockchain_data.py -fireblocks/models/stake_request.py -fireblocks/models/stake_response.py -fireblocks/models/staking_provider.py -fireblocks/models/status.py -fireblocks/models/stellar_ripple_create_params_dto.py -fireblocks/models/supported_block_chains_response.py -fireblocks/models/supported_blockchain.py -fireblocks/models/swift_address.py -fireblocks/models/swift_destination.py -fireblocks/models/system_message_info.py -fireblocks/models/tag.py -fireblocks/models/tag_attachment_operation_action.py -fireblocks/models/tags_paged_response.py -fireblocks/models/templates_paginated_response.py -fireblocks/models/third_party_routing.py -fireblocks/models/time_period_config.py -fireblocks/models/time_period_match_type.py -fireblocks/models/to_collateral_transaction.py -fireblocks/models/to_exchange_transaction.py -fireblocks/models/token_collection_response.py -fireblocks/models/token_contract_summary_response.py -fireblocks/models/token_info_not_found_error_response.py -fireblocks/models/token_link_dto.py -fireblocks/models/token_link_dto_token_metadata.py -fireblocks/models/token_link_exists_http_error.py -fireblocks/models/token_link_not_multichain_compatible_http_error.py -fireblocks/models/token_link_request_dto.py -fireblocks/models/token_ownership_response.py -fireblocks/models/token_ownership_spam_update_payload.py -fireblocks/models/token_ownership_status_update_payload.py -fireblocks/models/token_response.py -fireblocks/models/tokens_paginated_response.py -fireblocks/models/total_supply_item_dto.py -fireblocks/models/total_supply_paged_response.py -fireblocks/models/tr_link_amount.py -fireblocks/models/tr_link_amount2.py -fireblocks/models/tr_link_amount_range.py -fireblocks/models/tr_link_api_paged_response.py -fireblocks/models/tr_link_assess_travel_rule_request.py -fireblocks/models/tr_link_assess_travel_rule_response.py -fireblocks/models/tr_link_assessment_decision.py -fireblocks/models/tr_link_asset.py -fireblocks/models/tr_link_asset_data.py -fireblocks/models/tr_link_asset_format.py -fireblocks/models/tr_link_assets_list_paged_response.py -fireblocks/models/tr_link_cancel_trm_request.py -fireblocks/models/tr_link_connect_integration_request.py -fireblocks/models/tr_link_create_customer_request.py -fireblocks/models/tr_link_create_integration_request.py -fireblocks/models/tr_link_create_trm_request.py -fireblocks/models/tr_link_currency.py -fireblocks/models/tr_link_customer_integration_response.py -fireblocks/models/tr_link_customer_response.py -fireblocks/models/tr_link_destination_transfer_peer_path.py -fireblocks/models/tr_link_discoverable_status.py -fireblocks/models/tr_link_fiat_value.py -fireblocks/models/tr_link_geographic_address_request.py -fireblocks/models/tr_link_get_supported_asset_response.py -fireblocks/models/tr_link_ivms.py -fireblocks/models/tr_link_ivms_response.py -fireblocks/models/tr_link_jwk_public_key.py -fireblocks/models/tr_link_missing_trm_action.py -fireblocks/models/tr_link_missing_trm_action2.py -fireblocks/models/tr_link_missing_trm_action_enum.py -fireblocks/models/tr_link_missing_trm_decision.py -fireblocks/models/tr_link_missing_trm_rule.py -fireblocks/models/tr_link_missing_trm_rule2.py -fireblocks/models/tr_link_one_time_address.py -fireblocks/models/tr_link_paging.py -fireblocks/models/tr_link_partner_response.py -fireblocks/models/tr_link_policy_response.py -fireblocks/models/tr_link_post_screening_action.py -fireblocks/models/tr_link_post_screening_rule.py -fireblocks/models/tr_link_post_screening_rule2.py -fireblocks/models/tr_link_pre_screening_action.py -fireblocks/models/tr_link_pre_screening_action2.py -fireblocks/models/tr_link_pre_screening_action_enum.py -fireblocks/models/tr_link_pre_screening_rule.py -fireblocks/models/tr_link_pre_screening_rule2.py -fireblocks/models/tr_link_provider_data.py -fireblocks/models/tr_link_provider_result.py -fireblocks/models/tr_link_provider_result_with_rule.py -fireblocks/models/tr_link_provider_result_with_rule2.py -fireblocks/models/tr_link_public_asset_info.py -fireblocks/models/tr_link_public_key_response.py -fireblocks/models/tr_link_redirect_trm_request.py -fireblocks/models/tr_link_registration_result.py -fireblocks/models/tr_link_registration_result_full_payload.py -fireblocks/models/tr_link_registration_status.py -fireblocks/models/tr_link_registration_status_enum.py -fireblocks/models/tr_link_result.py -fireblocks/models/tr_link_result_full_payload.py -fireblocks/models/tr_link_rule_base.py -fireblocks/models/tr_link_set_destination_travel_rule_message_id_request.py -fireblocks/models/tr_link_set_destination_travel_rule_message_id_response.py -fireblocks/models/tr_link_set_transaction_travel_rule_message_id_request.py -fireblocks/models/tr_link_set_transaction_travel_rule_message_id_response.py -fireblocks/models/tr_link_source_transfer_peer_path.py -fireblocks/models/tr_link_test_connection_response.py -fireblocks/models/tr_link_thresholds.py -fireblocks/models/tr_link_transaction_direction.py -fireblocks/models/tr_link_transfer_peer_path.py -fireblocks/models/tr_link_trm_direction.py -fireblocks/models/tr_link_trm_info_response.py -fireblocks/models/tr_link_trm_screening_status.py -fireblocks/models/tr_link_trm_screening_status_enum.py -fireblocks/models/tr_link_trm_status.py -fireblocks/models/tr_link_txn_info.py -fireblocks/models/tr_link_update_customer_request.py -fireblocks/models/tr_link_vasp_dto.py -fireblocks/models/tr_link_vasp_geographic_address.py -fireblocks/models/tr_link_vasp_list_dto.py -fireblocks/models/tr_link_vasp_national_identification.py -fireblocks/models/tr_link_verdict.py -fireblocks/models/tr_link_verdict_enum.py -fireblocks/models/trading_account_type.py -fireblocks/models/trading_error_schema.py -fireblocks/models/trading_provider.py -fireblocks/models/transaction.py -fireblocks/models/transaction_direction.py -fireblocks/models/transaction_fee.py -fireblocks/models/transaction_operation.py -fireblocks/models/transaction_operation_enum.py -fireblocks/models/transaction_receipt_response.py -fireblocks/models/transaction_request.py -fireblocks/models/transaction_request_amount.py -fireblocks/models/transaction_request_destination.py -fireblocks/models/transaction_request_fee.py -fireblocks/models/transaction_request_gas_limit.py -fireblocks/models/transaction_request_gas_price.py -fireblocks/models/transaction_request_network_fee.py -fireblocks/models/transaction_request_network_staking.py -fireblocks/models/transaction_request_priority_fee.py -fireblocks/models/transaction_response.py -fireblocks/models/transaction_response_contract_call_decoded_data.py -fireblocks/models/transaction_response_destination.py -fireblocks/models/transfer_config_operation.py -fireblocks/models/transfer_operation_config_params.py -fireblocks/models/transfer_operation_execution.py -fireblocks/models/transfer_operation_execution_output.py -fireblocks/models/transfer_operation_execution_params.py -fireblocks/models/transfer_operation_execution_params_execution_params.py -fireblocks/models/transfer_operation_failure.py -fireblocks/models/transfer_operation_failure_data.py -fireblocks/models/transfer_operation_preview.py -fireblocks/models/transfer_operation_preview_output.py -fireblocks/models/transfer_operation_type.py -fireblocks/models/transfer_peer_path_sub_type.py -fireblocks/models/transfer_peer_path_type.py -fireblocks/models/transfer_peer_sub_type_enum.py -fireblocks/models/transfer_peer_type_enum.py -fireblocks/models/transfer_rail.py -fireblocks/models/transfer_receipt.py -fireblocks/models/transfer_validation_failure.py -fireblocks/models/travel_rule_action_enum.py -fireblocks/models/travel_rule_address.py -fireblocks/models/travel_rule_create_transaction_request.py -fireblocks/models/travel_rule_date_and_place_of_birth.py -fireblocks/models/travel_rule_direction_enum.py -fireblocks/models/travel_rule_geographic_address.py -fireblocks/models/travel_rule_get_all_vasps_response.py -fireblocks/models/travel_rule_issuer.py -fireblocks/models/travel_rule_issuers.py -fireblocks/models/travel_rule_legal_person.py -fireblocks/models/travel_rule_legal_person_name_identifier.py -fireblocks/models/travel_rule_matched_rule.py -fireblocks/models/travel_rule_national_identification.py -fireblocks/models/travel_rule_natural_name_identifier.py -fireblocks/models/travel_rule_natural_person.py -fireblocks/models/travel_rule_natural_person_name_identifier.py -fireblocks/models/travel_rule_ownership_proof.py -fireblocks/models/travel_rule_person.py -fireblocks/models/travel_rule_pii_ivms.py -fireblocks/models/travel_rule_policy_rule_response.py -fireblocks/models/travel_rule_prescreening_rule.py -fireblocks/models/travel_rule_result.py -fireblocks/models/travel_rule_status_enum.py -fireblocks/models/travel_rule_transaction_blockchain_info.py -fireblocks/models/travel_rule_update_vasp_details.py -fireblocks/models/travel_rule_validate_date_and_place_of_birth.py -fireblocks/models/travel_rule_validate_full_transaction_request.py -fireblocks/models/travel_rule_validate_geographic_address.py -fireblocks/models/travel_rule_validate_legal_person.py -fireblocks/models/travel_rule_validate_legal_person_name_identifier.py -fireblocks/models/travel_rule_validate_national_identification.py -fireblocks/models/travel_rule_validate_natural_name_identifier.py -fireblocks/models/travel_rule_validate_natural_person.py -fireblocks/models/travel_rule_validate_natural_person_name_identifier.py -fireblocks/models/travel_rule_validate_person.py -fireblocks/models/travel_rule_validate_pii_ivms.py -fireblocks/models/travel_rule_validate_transaction_request.py -fireblocks/models/travel_rule_validate_transaction_response.py -fireblocks/models/travel_rule_vasp.py -fireblocks/models/travel_rule_vasp_for_vault.py -fireblocks/models/travel_rule_verdict_enum.py -fireblocks/models/trust_proof_of_address_create_response.py -fireblocks/models/trust_proof_of_address_request.py -fireblocks/models/trust_proof_of_address_response.py -fireblocks/models/tx_log.py -fireblocks/models/typed_message_transaction_status_enum.py -fireblocks/models/unfreeze_transaction_response.py -fireblocks/models/unmanaged_wallet.py -fireblocks/models/unspent_input.py -fireblocks/models/unspent_inputs_response.py -fireblocks/models/unstake_request.py -fireblocks/models/update_asset_user_metadata_request.py -fireblocks/models/update_callback_handler_request.py -fireblocks/models/update_callback_handler_response.py -fireblocks/models/update_draft_request.py -fireblocks/models/update_tag_request.py -fireblocks/models/update_token_ownership_status_dto.py -fireblocks/models/update_vault_account_asset_address_request.py -fireblocks/models/update_vault_account_request.py -fireblocks/models/update_webhook_request.py -fireblocks/models/us_wire_address.py -fireblocks/models/us_wire_destination.py -fireblocks/models/us_wire_payment_info.py -fireblocks/models/user_group_create_request.py -fireblocks/models/user_group_create_response.py -fireblocks/models/user_group_response.py -fireblocks/models/user_group_update_request.py -fireblocks/models/user_response.py -fireblocks/models/user_role.py -fireblocks/models/user_status.py -fireblocks/models/user_type.py -fireblocks/models/validate_address_response.py -fireblocks/models/validate_layer_zero_channel_response.py -fireblocks/models/validation_key_dto.py -fireblocks/models/validator.py -fireblocks/models/vault_account.py -fireblocks/models/vault_account_tag_attachment_operation.py -fireblocks/models/vault_account_tag_attachment_pending_operation.py -fireblocks/models/vault_account_tag_attachment_rejected_operation.py -fireblocks/models/vault_accounts_paged_response.py -fireblocks/models/vault_accounts_paged_response_paging.py -fireblocks/models/vault_accounts_tag_attachment_operations_request.py -fireblocks/models/vault_accounts_tag_attachment_operations_response.py -fireblocks/models/vault_action_status.py -fireblocks/models/vault_asset.py -fireblocks/models/vault_wallet_address.py -fireblocks/models/vendor_dto.py -fireblocks/models/verdict_config.py -fireblocks/models/version_summary.py -fireblocks/models/wallet_asset.py -fireblocks/models/wallet_asset_additional_info.py -fireblocks/models/webhook.py -fireblocks/models/webhook_event.py -fireblocks/models/webhook_metric.py -fireblocks/models/webhook_paginated_response.py -fireblocks/models/withdraw_request.py -fireblocks/models/workflow_config_status.py -fireblocks/models/workflow_configuration_id.py -fireblocks/models/workflow_execution_operation.py -fireblocks/models/workspace.py -fireblocks/models/write_abi_function.py -fireblocks/models/write_call_function_dto.py -fireblocks/models/write_call_function_dto_abi_function.py -fireblocks/models/write_call_function_response_dto.py -fireblocks/py.typed -fireblocks/rest.py -fireblocks/threaded_api_client.py -fireblocks/unknown_model.py -fireblocks/user_agent_util.py -fireblocks/validation_utils.py -git_push.sh -pyproject.toml -requirements.txt -setup.cfg -setup.py -test-requirements.txt -test/__init__.py -test/fireblocks/__init__.py -test/fireblocks/dummy_test_key.txt -test/fireblocks/test_additional_options.py -test/fireblocks/test_bearer_token_provider.py -test/fireblocks/test_client.py -test/fireblocks/test_client_configuration.py -test/fireblocks/test_threaded_api_client.py -test/fireblocks/test_unknown_model.py -test/fireblocks/test_user_agent_util.py -test/fireblocks/test_validation_utils.py -test/test_aba_payment_info.py -test/test_abi_function.py -test/test_access_registry_address_item.py -test/test_access_registry_current_state_response.py -test/test_access_registry_summary_response.py -test/test_access_type.py -test/test_account.py -test/test_account_access.py -test/test_account_base.py -test/test_account_based_access_provider.py -test/test_account_based_access_provider_details.py -test/test_account_config.py -test/test_account_holder_details.py -test/test_account_identifier.py -test/test_account_reference.py -test/test_account_type.py -test/test_account_type2.py -test/test_ach_account_type.py -test/test_ach_address.py -test/test_ach_destination.py -test/test_ach_payment_info.py -test/test_adapter_processing_result.py -test/test_add_abi_request_dto.py -test/test_add_asset_to_external_wallet_request.py -test/test_add_collateral_request_body.py -test/test_add_contract_asset_request.py -test/test_add_cosigner_request.py -test/test_add_cosigner_response.py -test/test_add_exchange_account_request.py -test/test_add_exchange_account_response.py -test/test_additional_info.py -test/test_additional_info_request.py -test/test_additional_info_request_additional_info.py -test/test_address_balance_item_dto.py -test/test_address_balance_paged_response.py -test/test_address_not_available_error.py -test/test_address_registry_error.py -test/test_address_registry_legal_entity.py -test/test_alert_exposure_type_enum.py -test/test_alert_level_enum.py -test/test_aml_alert.py -test/test_aml_matched_rule.py -test/test_aml_registration_result.py -test/test_aml_registration_result_full_payload.py -test/test_aml_result.py -test/test_aml_screening_result.py -test/test_aml_status_enum.py -test/test_aml_verdict_manual_request.py -test/test_aml_verdict_manual_response.py -test/test_amount_and_chain_descriptor.py -test/test_amount_config.py -test/test_amount_config_currency.py -test/test_amount_info.py -test/test_amount_over_time_config.py -test/test_amount_range.py -test/test_amount_range_min_max.py -test/test_amount_range_min_max2.py -test/test_api_key.py -test/test_api_keys_paginated_response.py -test/test_api_user.py -test/test_api_user_api.py -test/test_approval_request.py -test/test_approvers_config.py -test/test_approvers_config_approval_groups_inner.py -test/test_asset.py -test/test_asset_already_exist_http_error.py -test/test_asset_amount.py -test/test_asset_bad_request_error_response.py -test/test_asset_class.py -test/test_asset_config.py -test/test_asset_conflict_error_response.py -test/test_asset_details_metadata.py -test/test_asset_details_onchain.py -test/test_asset_feature.py -test/test_asset_forbidden_error_response.py -test/test_asset_internal_server_error_response.py -test/test_asset_media.py -test/test_asset_media_attributes.py -test/test_asset_metadata.py -test/test_asset_metadata_dto.py -test/test_asset_metadata_request.py -test/test_asset_not_found_error_response.py -test/test_asset_note.py -test/test_asset_note_request.py -test/test_asset_onchain.py -test/test_asset_price_forbidden_error_response.py -test/test_asset_price_not_found_error_response.py -test/test_asset_price_response.py -test/test_asset_response.py -test/test_asset_scope.py -test/test_asset_type_enum.py -test/test_asset_type_response.py -test/test_asset_types_config_inner.py -test/test_asset_wallet.py -test/test_audit_log_data.py -test/test_audit_logs_api.py -test/test_auditor_data.py -test/test_authorization_groups.py -test/test_authorization_info.py -test/test_balance_history_item_dto.py -test/test_balance_history_paged_response.py -test/test_bank_address.py -test/test_base_provider.py -test/test_basic_address_request.py -test/test_block_info.py -test/test_blockchain_address.py -test/test_blockchain_destination.py -test/test_blockchain_explorer.py -test/test_blockchain_media.py -test/test_blockchain_metadata.py -test/test_blockchain_not_found_error_response.py -test/test_blockchain_onchain.py -test/test_blockchain_response.py -test/test_blockchain_transfer.py -test/test_blockchains_assets_api.py -test/test_bps_fee.py -test/test_business_entity_type_enum.py -test/test_business_identification.py -test/test_callback_handler.py -test/test_callback_handler_request.py -test/test_cancel_transaction_response.py -test/test_capability.py -test/test_chain_descriptor.py -test/test_chain_info_response.py -test/test_channel_dvn_config_with_confirmations.py -test/test_channel_dvn_config_with_confirmations_receive_config.py -test/test_channel_dvn_config_with_confirmations_send_config.py -test/test_chaps_address.py -test/test_chaps_destination.py -test/test_chaps_payment_info.py -test/test_claim_rewards_request.py -test/test_collection_burn_request_dto.py -test/test_collection_burn_response_dto.py -test/test_collection_deploy_request_dto.py -test/test_collection_link_dto.py -test/test_collection_metadata_dto.py -test/test_collection_mint_request_dto.py -test/test_collection_mint_response_dto.py -test/test_collection_ownership_response.py -test/test_collection_token_metadata_attribute_dto.py -test/test_collection_token_metadata_dto.py -test/test_collection_type.py -test/test_committed_quote_enum.py -test/test_committed_quote_type.py -test/test_compliance_api.py -test/test_compliance_result_full_payload.py -test/test_compliance_result_statuses_enum.py -test/test_compliance_results.py -test/test_compliance_screening_configuration_api.py -test/test_compliance_screening_result.py -test/test_compliance_screening_result_full_payload.py -test/test_config_change_request_status.py -test/test_config_conversion_operation_snapshot.py -test/test_config_disbursement_operation_snapshot.py -test/test_config_operation.py -test/test_config_operation_snapshot.py -test/test_config_operation_status.py -test/test_config_transfer_operation_snapshot.py -test/test_connected_account.py -test/test_connected_account_approval_status.py -test/test_connected_account_asset_type.py -test/test_connected_account_balances.py -test/test_connected_account_balances_response.py -test/test_connected_account_capability.py -test/test_connected_account_error_response.py -test/test_connected_account_manifest.py -test/test_connected_account_rate_response.py -test/test_connected_account_total_balance.py -test/test_connected_account_trading_pair.py -test/test_connected_account_trading_pair_supported_type.py -test/test_connected_account_trading_pairs_response.py -test/test_connected_accounts_beta_api.py -test/test_connected_accounts_response.py -test/test_connected_single_account.py -test/test_connected_single_account_response.py -test/test_console_user.py -test/test_console_user_api.py -test/test_contract_abi_response_dto.py -test/test_contract_abi_response_dto_abi_inner.py -test/test_contract_address_response.py -test/test_contract_attributes.py -test/test_contract_data_decode_data_type.py -test/test_contract_data_decode_error.py -test/test_contract_data_decode_request.py -test/test_contract_data_decode_request_data.py -test/test_contract_data_decode_response_params.py -test/test_contract_data_decoded_response.py -test/test_contract_data_log_data_param.py -test/test_contract_deploy_request.py -test/test_contract_deploy_response.py -test/test_contract_doc.py -test/test_contract_interactions_api.py -test/test_contract_metadata_dto.py -test/test_contract_method_config.py -test/test_contract_method_pattern.py -test/test_contract_template_dto.py -test/test_contract_templates_api.py -test/test_contract_upload_request.py -test/test_contract_with_abi_dto.py -test/test_contracts_api.py -test/test_conversion_config_operation.py -test/test_conversion_operation_config_params.py -test/test_conversion_operation_execution.py -test/test_conversion_operation_execution_output.py -test/test_conversion_operation_execution_params.py -test/test_conversion_operation_execution_params_execution_params.py -test/test_conversion_operation_failure.py -test/test_conversion_operation_preview.py -test/test_conversion_operation_preview_output.py -test/test_conversion_operation_type.py -test/test_conversion_validation_failure.py -test/test_convert_assets_request.py -test/test_convert_assets_response.py -test/test_cosigner.py -test/test_cosigners_beta_api.py -test/test_cosigners_paginated_response.py -test/test_create_address_request.py -test/test_create_address_response.py -test/test_create_api_user.py -test/test_create_assets_request.py -test/test_create_config_operation_request.py -test/test_create_connection_request.py -test/test_create_connection_response.py -test/test_create_console_user.py -test/test_create_contract_request.py -test/test_create_conversion_config_operation_request.py -test/test_create_disbursement_config_operation_request.py -test/test_create_internal_transfer_request.py -test/test_create_internal_wallet_asset_request.py -test/test_create_multichain_token_request.py -test/test_create_multichain_token_request_create_params.py -test/test_create_multiple_accounts_request.py -test/test_create_multiple_deposit_addresses_job_status.py -test/test_create_multiple_deposit_addresses_request.py -test/test_create_multiple_vault_accounts_job_status.py -test/test_create_ncw_connection_request.py -test/test_create_network_id_request.py -test/test_create_order_request.py -test/test_create_payout_request.py -test/test_create_quote.py -test/test_create_quote_scope_inner.py -test/test_create_signing_key_dto.py -test/test_create_signing_key_dto_proof_of_ownership.py -test/test_create_tag_request.py -test/test_create_token_request_dto.py -test/test_create_token_request_dto_create_params.py -test/test_create_transaction_response.py -test/test_create_transfer_config_operation_request.py -test/test_create_user_group_response.py -test/test_create_validation_key_dto.py -test/test_create_validation_key_response_dto.py -test/test_create_vault_account_connection_request.py -test/test_create_vault_account_request.py -test/test_create_vault_asset_response.py -test/test_create_wallet_request.py -test/test_create_webhook_request.py -test/test_create_workflow_execution_request_params_inner.py -test/test_custom_routing_dest.py -test/test_d_app_address_config.py -test/test_decoded_log.py -test/test_default_network_routing_dest.py -test/test_delegation.py -test/test_delegation_blockchain_position_info.py -test/test_delegation_summary.py -test/test_delete_network_connection_response.py -test/test_delete_network_id_response.py -test/test_deploy_layer_zero_adapters_request.py -test/test_deployable_address_response.py -test/test_deployed_contract_not_found_error.py -test/test_deployed_contract_response_dto.py -test/test_deployed_contracts_api.py -test/test_deployed_contracts_paginated_response.py -test/test_deposit_funds_from_linked_dda_response.py -test/test_derivation_path_config.py -test/test_designated_signers_config.py -test/test_destination.py -test/test_destination_config.py -test/test_destination_transfer_peer_path.py -test/test_destination_transfer_peer_path_response.py -test/test_direct_access.py -test/test_direct_access_provider.py -test/test_direct_access_provider_details.py -test/test_disbursement_amount_instruction.py -test/test_disbursement_config_operation.py -test/test_disbursement_instruction.py -test/test_disbursement_instruction_output.py -test/test_disbursement_operation_config_params.py -test/test_disbursement_operation_execution.py -test/test_disbursement_operation_execution_output.py -test/test_disbursement_operation_execution_params.py -test/test_disbursement_operation_execution_params_execution_params.py -test/test_disbursement_operation_input.py -test/test_disbursement_operation_preview.py -test/test_disbursement_operation_preview_output.py -test/test_disbursement_operation_preview_output_instruction_set_inner.py -test/test_disbursement_operation_type.py -test/test_disbursement_percentage_instruction.py -test/test_disbursement_validation_failure.py -test/test_dispatch_payout_response.py -test/test_draft_response.py -test/test_draft_review_and_validation_response.py -test/test_drop_transaction_request.py -test/test_drop_transaction_response.py -test/test_dvn_config.py -test/test_dvn_config_with_confirmations.py -test/test_dvp_settlement.py -test/test_dvp_settlement_type.py -test/test_edit_gas_station_configuration_response.py -test/test_embedded_wallet.py -test/test_embedded_wallet_account.py -test/test_embedded_wallet_address_details.py -test/test_embedded_wallet_algoritm.py -test/test_embedded_wallet_asset_balance.py -test/test_embedded_wallet_asset_response.py -test/test_embedded_wallet_asset_reward_info.py -test/test_embedded_wallet_device.py -test/test_embedded_wallet_device_key_setup_response.py -test/test_embedded_wallet_device_key_setup_response_setup_status_inner.py -test/test_embedded_wallet_latest_backup_key.py -test/test_embedded_wallet_latest_backup_response.py -test/test_embedded_wallet_paginated_addresses_response.py -test/test_embedded_wallet_paginated_assets_response.py -test/test_embedded_wallet_paginated_devices_response.py -test/test_embedded_wallet_paginated_wallets_response.py -test/test_embedded_wallet_required_algorithms.py -test/test_embedded_wallet_set_up_status.py -test/test_embedded_wallet_setup_status_response.py -test/test_embedded_wallets_api.py -test/test_enable_device.py -test/test_enable_wallet.py -test/test_error_response.py -test/test_error_response_error.py -test/test_error_schema.py -test/test_estimated_fee_details.py -test/test_estimated_network_fee_response.py -test/test_estimated_transaction_fee_response.py -test/test_ethereum_blockchain_data.py -test/test_european_sepa_address.py -test/test_european_sepa_destination.py -test/test_evm_token_create_params_dto.py -test/test_exchange_account.py -test/test_exchange_accounts_api.py -test/test_exchange_asset.py -test/test_exchange_settlement_transactions_response.py -test/test_exchange_trading_account.py -test/test_exchange_type.py -test/test_execution_conversion_operation.py -test/test_execution_disbursement_operation.py -test/test_execution_operation_status.py -test/test_execution_request_base_details.py -test/test_execution_request_details.py -test/test_execution_response_base_details.py -test/test_execution_response_details.py -test/test_execution_screening_operation.py -test/test_execution_step_error.py -test/test_execution_step_status_enum.py -test/test_execution_step_type.py -test/test_execution_transfer_operation.py -test/test_external_account.py -test/test_external_account_local_bank_africa.py -test/test_external_account_mobile_money.py -test/test_external_account_mobile_money_provider.py -test/test_external_account_mobile_money_type.py -test/test_external_account_sender_information.py -test/test_external_account_type.py -test/test_external_wallet_asset.py -test/test_external_wallets_api.py -test/test_extra_parameters.py -test/test_failure.py -test/test_failure_reason.py -test/test_fee.py -test/test_fee_breakdown.py -test/test_fee_info.py -test/test_fee_level.py -test/test_fee_payer_info.py -test/test_fee_properties_details.py -test/test_fee_type_enum.py -test/test_fetch_abi_request_dto.py -test/test_fiat_account.py -test/test_fiat_account_type.py -test/test_fiat_accounts_api.py -test/test_fiat_asset.py -test/test_fiat_destination.py -test/test_fiat_payment_metadata.py -test/test_fiat_transfer.py -test/test_fixed_amount_type_enum.py -test/test_fixed_fee.py -test/test_freeze_transaction_response.py -test/test_function_doc.py -test/test_funds.py -test/test_gas_station_configuration.py -test/test_gas_station_configuration_response.py -test/test_gas_station_properties_response.py -test/test_gas_stations_api.py -test/test_gassless_standard_configurations.py -test/test_gassless_standard_configurations_gasless_standard_configurations_value.py -test/test_get_api_users_response.py -test/test_get_audit_logs_response.py -test/test_get_connections_response.py -test/test_get_console_users_response.py -test/test_get_deployable_address_request.py -test/test_get_exchange_accounts_credentials_public_key_response.py -test/test_get_filter_parameter.py -test/test_get_layer_zero_dvn_config_response.py -test/test_get_layer_zero_peers_response.py -test/test_get_linked_collections_paginated_response.py -test/test_get_max_bip_index_used_response.py -test/test_get_max_spendable_amount_response.py -test/test_get_mpc_keys_response.py -test/test_get_nfts_response.py -test/test_get_orders_response.py -test/test_get_ota_status_response.py -test/test_get_ownership_tokens_response.py -test/test_get_paged_exchange_accounts_response.py -test/test_get_paged_exchange_accounts_response_paging.py -test/test_get_signing_key_response_dto.py -test/test_get_transaction_operation.py -test/test_get_validation_key_response_dto.py -test/test_get_whitelist_ip_addresses_response.py -test/test_get_workspace_status_response.py -test/test_http_contract_does_not_exist_error.py -test/test_iban_address.py -test/test_iban_destination.py -test/test_iban_payment_info.py -test/test_identification.py -test/test_idl_type.py -test/test_indicative_quote_enum.py -test/test_indicative_quote_type.py -test/test_initiator_config.py -test/test_initiator_config_pattern.py -test/test_instruction_amount.py -test/test_interac_address.py -test/test_interac_destination.py -test/test_interac_payment_info.py -test/test_internal_reference.py -test/test_internal_transfer_address.py -test/test_internal_transfer_destination.py -test/test_internal_transfer_response.py -test/test_internal_wallets_api.py -test/test_invalid_paramater_value_error.py -test/test_job_created.py -test/test_key_link_beta_api.py -test/test_keys_beta_api.py -test/test_layer_zero_adapter_create_params.py -test/test_lbt_payment_info.py -test/test_lean_abi_function.py -test/test_lean_contract_dto.py -test/test_lean_deployed_contract_response_dto.py -test/test_legacy_amount_aggregation_time_period_method.py -test/test_legacy_draft_response.py -test/test_legacy_draft_review_and_validation_response.py -test/test_legacy_policy_and_validation_response.py -test/test_legacy_policy_check_result.py -test/test_legacy_policy_metadata.py -test/test_legacy_policy_response.py -test/test_legacy_policy_rule.py -test/test_legacy_policy_rule_amount.py -test/test_legacy_policy_rule_amount_aggregation.py -test/test_legacy_policy_rule_authorization_groups.py -test/test_legacy_policy_rule_authorization_groups_groups_inner.py -test/test_legacy_policy_rule_check_result.py -test/test_legacy_policy_rule_designated_signers.py -test/test_legacy_policy_rule_dst.py -test/test_legacy_policy_rule_error.py -test/test_legacy_policy_rule_operators.py -test/test_legacy_policy_rule_raw_message_signing.py -test/test_legacy_policy_rule_raw_message_signing_derivation_path.py -test/test_legacy_policy_rule_src.py -test/test_legacy_policy_rules.py -test/test_legacy_policy_src_or_dest_sub_type.py -test/test_legacy_policy_src_or_dest_type.py -test/test_legacy_policy_status.py -test/test_legacy_policy_validation.py -test/test_legacy_publish_draft_request.py -test/test_legacy_publish_result.py -test/test_legacy_src_or_dest_attributes_inner.py -test/test_linked_tokens_count.py -test/test_list_assets_response.py -test/test_list_blockchains_response.py -test/test_list_owned_collections_response.py -test/test_list_owned_tokens_response.py -test/test_local_bank_transfer_africa_address.py -test/test_local_bank_transfer_africa_destination.py -test/test_manifest.py -test/test_market_execution_request_details.py -test/test_market_execution_response_details.py -test/test_market_requote_request_details.py -test/test_market_requote_type_enum.py -test/test_market_type_details.py -test/test_market_type_enum.py -test/test_media_entity_response.py -test/test_merge_stake_accounts_request.py -test/test_merge_stake_accounts_response.py -test/test_mobile_money_address.py -test/test_mobile_money_destination.py -test/test_modify_signing_key_agent_id_dto.py -test/test_modify_signing_key_dto.py -test/test_modify_validation_key_dto.py -test/test_momo_payment_info.py -test/test_mpc_key.py -test/test_multichain_deployment_metadata.py -test/test_network_channel.py -test/test_network_connection.py -test/test_network_connection_response.py -test/test_network_connection_routing_policy_value.py -test/test_network_connection_status.py -test/test_network_connections_api.py -test/test_network_fee.py -test/test_network_id.py -test/test_network_id_response.py -test/test_network_id_routing_policy_value.py -test/test_network_record.py -test/test_new_address.py -test/test_nfts_api.py -test/test_none_network_routing_dest.py -test/test_not_found_exception.py -test/test_notification.py -test/test_notification_attempt.py -test/test_notification_attempts_paginated_response.py -test/test_notification_paginated_response.py -test/test_notification_status.py -test/test_notification_with_data.py -test/test_off_exchanges_api.py -test/test_onchain_data_api.py -test/test_onchain_transaction.py -test/test_onchain_transactions_paged_response.py -test/test_one_time_address.py -test/test_one_time_address_account.py -test/test_one_time_address_peer_type.py -test/test_one_time_address_reference.py -test/test_operation_execution_failure.py -test/test_order_details.py -test/test_order_execution_step.py -test/test_order_side.py -test/test_order_status.py -test/test_order_summary.py -test/test_ota_beta_api.py -test/test_paginated_address_response.py -test/test_paginated_address_response_paging.py -test/test_paginated_asset_wallet_response.py -test/test_paginated_asset_wallet_response_paging.py -test/test_paginated_assets_response.py -test/test_paging.py -test/test_pair_api_key_request.py -test/test_pair_api_key_response.py -test/test_parameter.py -test/test_parameter_with_value.py -test/test_participant_relationship_type.py -test/test_participants_identification.py -test/test_payee_account.py -test/test_payee_account_response.py -test/test_payee_account_type.py -test/test_payid_address.py -test/test_payid_destination.py -test/test_payid_payment_info.py -test/test_payment_account.py -test/test_payment_account_response.py -test/test_payment_account_type.py -test/test_payment_instructions.py -test/test_payment_instructions_one_of.py -test/test_payment_redirect.py -test/test_payments_payout_api.py -test/test_payout_init_method.py -test/test_payout_instruction.py -test/test_payout_instruction_response.py -test/test_payout_instruction_state.py -test/test_payout_response.py -test/test_payout_state.py -test/test_payout_status.py -test/test_peer_adapter_info.py -test/test_peer_type.py -test/test_personal_entity_type_enum.py -test/test_personal_identification.py -test/test_personal_identification_full_name.py -test/test_personal_identification_type.py -test/test_pix_address.py -test/test_pix_destination.py -test/test_pix_payment_info.py -test/test_platform_account.py -test/test_platform_peer_type.py -test/test_players.py -test/test_policy_and_validation_response.py -test/test_policy_check_result.py -test/test_policy_currency.py -test/test_policy_editor_beta_api.py -test/test_policy_editor_v2_beta_api.py -test/test_policy_metadata.py -test/test_policy_operator.py -test/test_policy_response.py -test/test_policy_rule.py -test/test_policy_rule_check_result.py -test/test_policy_rule_error.py -test/test_policy_status.py -test/test_policy_tag.py -test/test_policy_type.py -test/test_policy_validation.py -test/test_policy_verdict_action_enum.py -test/test_policy_verdict_action_enum2.py -test/test_postal_address.py -test/test_pre_screening.py -test/test_prefunded_settlement.py -test/test_prefunded_settlement_type.py -test/test_program_call_config.py -test/test_provider.py -test/test_providers_list_response.py -test/test_public_key_information.py -test/test_publish_draft_request.py -test/test_publish_result.py -test/test_quote.py -test/test_quote_execution_request_details.py -test/test_quote_execution_step.py -test/test_quote_execution_type_details.py -test/test_quote_execution_with_requote_request_details.py -test/test_quote_execution_with_requote_response_details.py -test/test_quote_failure.py -test/test_quote_properties_details.py -test/test_quote_type_enum.py -test/test_quotes_response.py -test/test_re_quote_details.py -test/test_re_quote_details_re_quote.py -test/test_read_abi_function.py -test/test_read_call_function_dto.py -test/test_read_call_function_dto_abi_function.py -test/test_recipient_handle.py -test/test_redeem_funds_to_linked_dda_response.py -test/test_register_new_asset_request.py -test/test_reissue_multichain_token_request.py -test/test_related_request.py -test/test_related_transaction.py -test/test_remove_collateral_request_body.py -test/test_remove_layer_zero_adapter_failed_result.py -test/test_remove_layer_zero_adapters_request.py -test/test_remove_layer_zero_adapters_response.py -test/test_remove_layer_zero_peers_request.py -test/test_remove_layer_zero_peers_response.py -test/test_rename_connected_account_request.py -test/test_rename_connected_account_response.py -test/test_rename_cosigner.py -test/test_rename_vault_account_response.py -test/test_resend_failed_notifications_job_status_response.py -test/test_resend_failed_notifications_request.py -test/test_resend_failed_notifications_response.py -test/test_resend_notifications_by_resource_id_request.py -test/test_resend_transaction_webhooks_request.py -test/test_resend_webhooks_by_transaction_id_response.py -test/test_resend_webhooks_response.py -test/test_reset_device_api.py -test/test_respond_to_connection_request.py -test/test_retry_requote_request_details.py -test/test_retry_requote_type_enum.py -test/test_reward_info.py -test/test_rewards_info.py -test/test_role_details.py -test/test_role_grantee.py -test/test_scope_item.py -test/test_screening_alert_exposure_type_enum.py -test/test_screening_aml_alert.py -test/test_screening_aml_matched_rule.py -test/test_screening_aml_result.py -test/test_screening_configurations_request.py -test/test_screening_metadata_config.py -test/test_screening_operation_execution.py -test/test_screening_operation_execution_output.py -test/test_screening_operation_failure.py -test/test_screening_operation_type.py -test/test_screening_policy_response.py -test/test_screening_provider_rules_configuration_response.py -test/test_screening_risk_level_enum.py -test/test_screening_tr_link_amount.py -test/test_screening_tr_link_missing_trm_decision.py -test/test_screening_tr_link_missing_trm_rule.py -test/test_screening_tr_link_post_screening_rule.py -test/test_screening_tr_link_prescreening_rule.py -test/test_screening_tr_link_rule_base.py -test/test_screening_travel_rule_matched_rule.py -test/test_screening_travel_rule_prescreening_rule.py -test/test_screening_travel_rule_result.py -test/test_screening_update_configurations.py -test/test_screening_validation_failure.py -test/test_screening_verdict.py -test/test_screening_verdict_enum.py -test/test_screening_verdict_matched_rule.py -test/test_search_network_ids_response.py -test/test_sepa_address.py -test/test_sepa_destination.py -test/test_sepa_payment_info.py -test/test_session_dto.py -test/test_session_metadata.py -test/test_set_admin_quorum_threshold_request.py -test/test_set_admin_quorum_threshold_response.py -test/test_set_asset_price_request.py -test/test_set_auto_fuel_request.py -test/test_set_confirmations_threshold_request.py -test/test_set_confirmations_threshold_response.py -test/test_set_customer_ref_id_for_address_request.py -test/test_set_customer_ref_id_request.py -test/test_set_layer_zero_dvn_config_request.py -test/test_set_layer_zero_dvn_config_response.py -test/test_set_layer_zero_peers_request.py -test/test_set_layer_zero_peers_response.py -test/test_set_network_id_discoverability_request.py -test/test_set_network_id_name_request.py -test/test_set_network_id_response.py -test/test_set_network_id_routing_policy_request.py -test/test_set_ota_status_request.py -test/test_set_ota_status_response.py -test/test_set_ota_status_response_one_of.py -test/test_set_routing_policy_request.py -test/test_set_routing_policy_response.py -test/test_settlement.py -test/test_settlement_request_body.py -test/test_settlement_response.py -test/test_settlement_source_account.py -test/test_side.py -test/test_signed_message.py -test/test_signed_message_signature.py -test/test_signing_key_dto.py -test/test_smart_transfer_api.py -test/test_smart_transfer_approve_term.py -test/test_smart_transfer_bad_request_response.py -test/test_smart_transfer_coin_statistic.py -test/test_smart_transfer_create_ticket.py -test/test_smart_transfer_create_ticket_term.py -test/test_smart_transfer_forbidden_response.py -test/test_smart_transfer_fund_dvp_ticket.py -test/test_smart_transfer_fund_term.py -test/test_smart_transfer_manually_fund_term.py -test/test_smart_transfer_not_found_response.py -test/test_smart_transfer_set_ticket_expiration.py -test/test_smart_transfer_set_ticket_external_id.py -test/test_smart_transfer_set_user_groups.py -test/test_smart_transfer_statistic.py -test/test_smart_transfer_statistic_inflow.py -test/test_smart_transfer_statistic_outflow.py -test/test_smart_transfer_submit_ticket.py -test/test_smart_transfer_ticket.py -test/test_smart_transfer_ticket_filtered_response.py -test/test_smart_transfer_ticket_response.py -test/test_smart_transfer_ticket_term.py -test/test_smart_transfer_ticket_term_response.py -test/test_smart_transfer_update_ticket_term.py -test/test_smart_transfer_user_groups.py -test/test_smart_transfer_user_groups_response.py -test/test_sol_account.py -test/test_sol_account_with_value.py -test/test_sol_parameter.py -test/test_sol_parameter_with_value.py -test/test_solana_blockchain_data.py -test/test_solana_config.py -test/test_solana_instruction.py -test/test_solana_instruction_with_value.py -test/test_solana_simple_create_params.py -test/test_source_config.py -test/test_source_transfer_peer_path.py -test/test_source_transfer_peer_path_response.py -test/test_spam_ownership_response.py -test/test_spam_token_response.py -test/test_spei_address.py -test/test_spei_advanced_payment_info.py -test/test_spei_basic_payment_info.py -test/test_spei_destination.py -test/test_split_request.py -test/test_split_response.py -test/test_st_eth_blockchain_data.py -test/test_stake_request.py -test/test_stake_response.py -test/test_staking_api.py -test/test_staking_provider.py -test/test_status.py -test/test_stellar_ripple_create_params_dto.py -test/test_supported_block_chains_response.py -test/test_supported_blockchain.py -test/test_swift_address.py -test/test_swift_destination.py -test/test_system_message_info.py -test/test_tag.py -test/test_tag_attachment_operation_action.py -test/test_tags_api.py -test/test_tags_paged_response.py -test/test_templates_paginated_response.py -test/test_third_party_routing.py -test/test_time_period_config.py -test/test_time_period_match_type.py -test/test_to_collateral_transaction.py -test/test_to_exchange_transaction.py -test/test_token_collection_response.py -test/test_token_contract_summary_response.py -test/test_token_info_not_found_error_response.py -test/test_token_link_dto.py -test/test_token_link_dto_token_metadata.py -test/test_token_link_exists_http_error.py -test/test_token_link_not_multichain_compatible_http_error.py -test/test_token_link_request_dto.py -test/test_token_ownership_response.py -test/test_token_ownership_spam_update_payload.py -test/test_token_ownership_status_update_payload.py -test/test_token_response.py -test/test_tokenization_api.py -test/test_tokens_paginated_response.py -test/test_total_supply_item_dto.py -test/test_total_supply_paged_response.py -test/test_tr_link_amount.py -test/test_tr_link_amount2.py -test/test_tr_link_amount_range.py -test/test_tr_link_api.py -test/test_tr_link_api_paged_response.py -test/test_tr_link_assess_travel_rule_request.py -test/test_tr_link_assess_travel_rule_response.py -test/test_tr_link_assessment_decision.py -test/test_tr_link_asset.py -test/test_tr_link_asset_data.py -test/test_tr_link_asset_format.py -test/test_tr_link_assets_list_paged_response.py -test/test_tr_link_cancel_trm_request.py -test/test_tr_link_connect_integration_request.py -test/test_tr_link_create_customer_request.py -test/test_tr_link_create_integration_request.py -test/test_tr_link_create_trm_request.py -test/test_tr_link_currency.py -test/test_tr_link_customer_integration_response.py -test/test_tr_link_customer_response.py -test/test_tr_link_destination_transfer_peer_path.py -test/test_tr_link_discoverable_status.py -test/test_tr_link_fiat_value.py -test/test_tr_link_geographic_address_request.py -test/test_tr_link_get_supported_asset_response.py -test/test_tr_link_ivms.py -test/test_tr_link_ivms_response.py -test/test_tr_link_jwk_public_key.py -test/test_tr_link_missing_trm_action.py -test/test_tr_link_missing_trm_action2.py -test/test_tr_link_missing_trm_action_enum.py -test/test_tr_link_missing_trm_decision.py -test/test_tr_link_missing_trm_rule.py -test/test_tr_link_missing_trm_rule2.py -test/test_tr_link_one_time_address.py -test/test_tr_link_paging.py -test/test_tr_link_partner_response.py -test/test_tr_link_policy_response.py -test/test_tr_link_post_screening_action.py -test/test_tr_link_post_screening_rule.py -test/test_tr_link_post_screening_rule2.py -test/test_tr_link_pre_screening_action.py -test/test_tr_link_pre_screening_action2.py -test/test_tr_link_pre_screening_action_enum.py -test/test_tr_link_pre_screening_rule.py -test/test_tr_link_pre_screening_rule2.py -test/test_tr_link_provider_data.py -test/test_tr_link_provider_result.py -test/test_tr_link_provider_result_with_rule.py -test/test_tr_link_provider_result_with_rule2.py -test/test_tr_link_public_asset_info.py -test/test_tr_link_public_key_response.py -test/test_tr_link_redirect_trm_request.py -test/test_tr_link_registration_result.py -test/test_tr_link_registration_result_full_payload.py -test/test_tr_link_registration_status.py -test/test_tr_link_registration_status_enum.py -test/test_tr_link_result.py -test/test_tr_link_result_full_payload.py -test/test_tr_link_rule_base.py -test/test_tr_link_set_destination_travel_rule_message_id_request.py -test/test_tr_link_set_destination_travel_rule_message_id_response.py -test/test_tr_link_set_transaction_travel_rule_message_id_request.py -test/test_tr_link_set_transaction_travel_rule_message_id_response.py -test/test_tr_link_source_transfer_peer_path.py -test/test_tr_link_test_connection_response.py -test/test_tr_link_thresholds.py -test/test_tr_link_transaction_direction.py -test/test_tr_link_transfer_peer_path.py -test/test_tr_link_trm_direction.py -test/test_tr_link_trm_info_response.py -test/test_tr_link_trm_screening_status.py -test/test_tr_link_trm_screening_status_enum.py -test/test_tr_link_trm_status.py -test/test_tr_link_txn_info.py -test/test_tr_link_update_customer_request.py -test/test_tr_link_vasp_dto.py -test/test_tr_link_vasp_geographic_address.py -test/test_tr_link_vasp_list_dto.py -test/test_tr_link_vasp_national_identification.py -test/test_tr_link_verdict.py -test/test_tr_link_verdict_enum.py -test/test_trading_account_type.py -test/test_trading_beta_api.py -test/test_trading_error_schema.py -test/test_trading_provider.py -test/test_transaction.py -test/test_transaction_direction.py -test/test_transaction_fee.py -test/test_transaction_operation.py -test/test_transaction_operation_enum.py -test/test_transaction_receipt_response.py -test/test_transaction_request.py -test/test_transaction_request_amount.py -test/test_transaction_request_destination.py -test/test_transaction_request_fee.py -test/test_transaction_request_gas_limit.py -test/test_transaction_request_gas_price.py -test/test_transaction_request_network_fee.py -test/test_transaction_request_network_staking.py -test/test_transaction_request_priority_fee.py -test/test_transaction_response.py -test/test_transaction_response_contract_call_decoded_data.py -test/test_transaction_response_destination.py -test/test_transactions_api.py -test/test_transfer_config_operation.py -test/test_transfer_operation_config_params.py -test/test_transfer_operation_execution.py -test/test_transfer_operation_execution_output.py -test/test_transfer_operation_execution_params.py -test/test_transfer_operation_execution_params_execution_params.py -test/test_transfer_operation_failure.py -test/test_transfer_operation_failure_data.py -test/test_transfer_operation_preview.py -test/test_transfer_operation_preview_output.py -test/test_transfer_operation_type.py -test/test_transfer_peer_path_sub_type.py -test/test_transfer_peer_path_type.py -test/test_transfer_peer_sub_type_enum.py -test/test_transfer_peer_type_enum.py -test/test_transfer_rail.py -test/test_transfer_receipt.py -test/test_transfer_validation_failure.py -test/test_travel_rule_action_enum.py -test/test_travel_rule_address.py -test/test_travel_rule_api.py -test/test_travel_rule_create_transaction_request.py -test/test_travel_rule_date_and_place_of_birth.py -test/test_travel_rule_direction_enum.py -test/test_travel_rule_geographic_address.py -test/test_travel_rule_get_all_vasps_response.py -test/test_travel_rule_issuer.py -test/test_travel_rule_issuers.py -test/test_travel_rule_legal_person.py -test/test_travel_rule_legal_person_name_identifier.py -test/test_travel_rule_matched_rule.py -test/test_travel_rule_national_identification.py -test/test_travel_rule_natural_name_identifier.py -test/test_travel_rule_natural_person.py -test/test_travel_rule_natural_person_name_identifier.py -test/test_travel_rule_ownership_proof.py -test/test_travel_rule_person.py -test/test_travel_rule_pii_ivms.py -test/test_travel_rule_policy_rule_response.py -test/test_travel_rule_prescreening_rule.py -test/test_travel_rule_result.py -test/test_travel_rule_status_enum.py -test/test_travel_rule_transaction_blockchain_info.py -test/test_travel_rule_update_vasp_details.py -test/test_travel_rule_validate_date_and_place_of_birth.py -test/test_travel_rule_validate_full_transaction_request.py -test/test_travel_rule_validate_geographic_address.py -test/test_travel_rule_validate_legal_person.py -test/test_travel_rule_validate_legal_person_name_identifier.py -test/test_travel_rule_validate_national_identification.py -test/test_travel_rule_validate_natural_name_identifier.py -test/test_travel_rule_validate_natural_person.py -test/test_travel_rule_validate_natural_person_name_identifier.py -test/test_travel_rule_validate_person.py -test/test_travel_rule_validate_pii_ivms.py -test/test_travel_rule_validate_transaction_request.py -test/test_travel_rule_validate_transaction_response.py -test/test_travel_rule_vasp.py -test/test_travel_rule_vasp_for_vault.py -test/test_travel_rule_verdict_enum.py -test/test_trust_proof_of_address_create_response.py -test/test_trust_proof_of_address_request.py -test/test_trust_proof_of_address_response.py -test/test_tx_log.py -test/test_typed_message_transaction_status_enum.py -test/test_unfreeze_transaction_response.py -test/test_unmanaged_wallet.py -test/test_unspent_input.py -test/test_unspent_inputs_response.py -test/test_unstake_request.py -test/test_update_asset_user_metadata_request.py -test/test_update_callback_handler_request.py -test/test_update_callback_handler_response.py -test/test_update_draft_request.py -test/test_update_tag_request.py -test/test_update_token_ownership_status_dto.py -test/test_update_vault_account_asset_address_request.py -test/test_update_vault_account_request.py -test/test_update_webhook_request.py -test/test_us_wire_address.py -test/test_us_wire_destination.py -test/test_us_wire_payment_info.py -test/test_user_group_create_request.py -test/test_user_group_create_response.py -test/test_user_group_response.py -test/test_user_group_update_request.py -test/test_user_groups_beta_api.py -test/test_user_response.py -test/test_user_role.py -test/test_user_status.py -test/test_user_type.py -test/test_users_api.py -test/test_validate_address_response.py -test/test_validate_layer_zero_channel_response.py -test/test_validation_key_dto.py -test/test_validator.py -test/test_vault_account.py -test/test_vault_account_tag_attachment_operation.py -test/test_vault_account_tag_attachment_pending_operation.py -test/test_vault_account_tag_attachment_rejected_operation.py -test/test_vault_accounts_paged_response.py -test/test_vault_accounts_paged_response_paging.py -test/test_vault_accounts_tag_attachment_operations_request.py -test/test_vault_accounts_tag_attachment_operations_response.py -test/test_vault_action_status.py -test/test_vault_asset.py -test/test_vault_wallet_address.py -test/test_vaults_api.py -test/test_vendor_dto.py -test/test_verdict_config.py -test/test_version_summary.py -test/test_wallet_asset.py -test/test_wallet_asset_additional_info.py -test/test_web3_connections_api.py -test/test_webhook.py -test/test_webhook_event.py -test/test_webhook_metric.py -test/test_webhook_paginated_response.py -test/test_webhooks_api.py -test/test_webhooks_v2_api.py -test/test_whitelist_ip_addresses_api.py -test/test_withdraw_request.py -test/test_workflow_config_status.py -test/test_workflow_configuration_id.py -test/test_workflow_execution_operation.py -test/test_workspace.py -test/test_workspace_api.py -test/test_workspace_status_beta_api.py -test/test_write_abi_function.py -test/test_write_call_function_dto.py -test/test_write_call_function_dto_abi_function.py -test/test_write_call_function_response_dto.py -tox.ini +LmJ1bXBfdmVyc2lvbi50b21sCi5naXRpZ25vcmUKTElDRU5TRS50eHQKUkVBRE1FLm1kCmRvY3MvQVBJVXNlci5tZApkb2NzL0FiYVBheW1lbnRJbmZvLm1kCmRvY3MvQWJpRnVuY3Rpb24ubWQKZG9jcy9BY2Nlc3NSZWdpc3RyeUFkZHJlc3NJdGVtLm1kCmRvY3MvQWNjZXNzUmVnaXN0cnlDdXJyZW50U3RhdGVSZXNwb25zZS5tZApkb2NzL0FjY2Vzc1JlZ2lzdHJ5U3VtbWFyeVJlc3BvbnNlLm1kCmRvY3MvQWNjZXNzVHlwZS5tZApkb2NzL0FjY291bnQubWQKZG9jcy9BY2NvdW50QWNjZXNzLm1kCmRvY3MvQWNjb3VudEJhc2UubWQKZG9jcy9BY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlci5tZApkb2NzL0FjY291bnRCYXNlZEFjY2Vzc1Byb3ZpZGVySW5mby5tZApkb2NzL0FjY291bnRCYXNlZFByb3ZpZGVyRGV0YWlscy5tZApkb2NzL0FjY291bnRDb25maWcubWQKZG9jcy9BY2NvdW50SG9sZGVyRGV0YWlscy5tZApkb2NzL0FjY291bnRJZGVudGlmaWVyLm1kCmRvY3MvQWNjb3VudFJlZmVyZW5jZS5tZApkb2NzL0FjY291bnRUeXBlLm1kCmRvY3MvQWNjb3VudFR5cGUyLm1kCmRvY3MvQWNoQWNjb3VudFR5cGUubWQKZG9jcy9BY2hBZGRyZXNzLm1kCmRvY3MvQWNoRGVzdGluYXRpb24ubWQKZG9jcy9BY2hQYXltZW50SW5mby5tZApkb2NzL0FkYXB0ZXJQcm9jZXNzaW5nUmVzdWx0Lm1kCmRvY3MvQWRkQWJpUmVxdWVzdER0by5tZApkb2NzL0FkZEFzc2V0VG9FeHRlcm5hbFdhbGxldFJlcXVlc3QubWQKZG9jcy9BZGRDb2xsYXRlcmFsUmVxdWVzdEJvZHkubWQKZG9jcy9BZGRDb250cmFjdEFzc2V0UmVxdWVzdC5tZApkb2NzL0FkZENvc2lnbmVyUmVxdWVzdC5tZApkb2NzL0FkZENvc2lnbmVyUmVzcG9uc2UubWQKZG9jcy9BZGRFeGNoYW5nZUFjY291bnRSZXF1ZXN0Lm1kCmRvY3MvQWRkRXhjaGFuZ2VBY2NvdW50UmVzcG9uc2UubWQKZG9jcy9BZGRpdGlvbmFsSW5mby5tZApkb2NzL0FkZGl0aW9uYWxJbmZvUmVxdWVzdC5tZApkb2NzL0FkZGl0aW9uYWxJbmZvUmVxdWVzdEFkZGl0aW9uYWxJbmZvLm1kCmRvY3MvQWRkcmVzc0JhbGFuY2VJdGVtRHRvLm1kCmRvY3MvQWRkcmVzc0JhbGFuY2VQYWdlZFJlc3BvbnNlLm1kCmRvY3MvQWRkcmVzc05vdEF2YWlsYWJsZUVycm9yLm1kCmRvY3MvQWRkcmVzc1JlZ2lzdHJ5RXJyb3IubWQKZG9jcy9BZGRyZXNzUmVnaXN0cnlMZWdhbEVudGl0eS5tZApkb2NzL0FsZXJ0RXhwb3N1cmVUeXBlRW51bS5tZApkb2NzL0FsZXJ0TGV2ZWxFbnVtLm1kCmRvY3MvQW1sQWxlcnQubWQKZG9jcy9BbWxNYXRjaGVkUnVsZS5tZApkb2NzL0FtbFJlZ2lzdHJhdGlvblJlc3VsdC5tZApkb2NzL0FtbFJlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkLm1kCmRvY3MvQW1sUmVzdWx0Lm1kCmRvY3MvQW1sU2NyZWVuaW5nUmVzdWx0Lm1kCmRvY3MvQW1sU3RhdHVzRW51bS5tZApkb2NzL0FtbFZlcmRpY3RNYW51YWxSZXF1ZXN0Lm1kCmRvY3MvQW1sVmVyZGljdE1hbnVhbFJlc3BvbnNlLm1kCmRvY3MvQW1vdW50QW5kQ2hhaW5EZXNjcmlwdG9yLm1kCmRvY3MvQW1vdW50Q29uZmlnLm1kCmRvY3MvQW1vdW50Q29uZmlnQ3VycmVuY3kubWQKZG9jcy9BbW91bnRJbmZvLm1kCmRvY3MvQW1vdW50T3ZlclRpbWVDb25maWcubWQKZG9jcy9BbW91bnRSYW5nZS5tZApkb2NzL0Ftb3VudFJhbmdlTWluTWF4Lm1kCmRvY3MvQW1vdW50UmFuZ2VNaW5NYXgyLm1kCmRvY3MvQXBpS2V5Lm1kCmRvY3MvQXBpS2V5c1BhZ2luYXRlZFJlc3BvbnNlLm1kCmRvY3MvQXBpVXNlckFwaS5tZApkb2NzL0FwcHJvdmFsUmVxdWVzdC5tZApkb2NzL0FwcHJvdmVyc0NvbmZpZy5tZApkb2NzL0FwcHJvdmVyc0NvbmZpZ0FwcHJvdmFsR3JvdXBzSW5uZXIubWQKZG9jcy9Bc3NldC5tZApkb2NzL0Fzc2V0QWxyZWFkeUV4aXN0SHR0cEVycm9yLm1kCmRvY3MvQXNzZXRBbW91bnQubWQKZG9jcy9Bc3NldEJhZFJlcXVlc3RFcnJvclJlc3BvbnNlLm1kCmRvY3MvQXNzZXRDbGFzcy5tZApkb2NzL0Fzc2V0Q29uZmlnLm1kCmRvY3MvQXNzZXRDb25mbGljdEVycm9yUmVzcG9uc2UubWQKZG9jcy9Bc3NldERldGFpbHNNZXRhZGF0YS5tZApkb2NzL0Fzc2V0RGV0YWlsc09uY2hhaW4ubWQKZG9jcy9Bc3NldEZlYXR1cmUubWQKZG9jcy9Bc3NldEZvcmJpZGRlbkVycm9yUmVzcG9uc2UubWQKZG9jcy9Bc3NldEludGVybmFsU2VydmVyRXJyb3JSZXNwb25zZS5tZApkb2NzL0Fzc2V0TWVkaWEubWQKZG9jcy9Bc3NldE1lZGlhQXR0cmlidXRlcy5tZApkb2NzL0Fzc2V0TWV0YWRhdGEubWQKZG9jcy9Bc3NldE1ldGFkYXRhRHRvLm1kCmRvY3MvQXNzZXRNZXRhZGF0YVJlcXVlc3QubWQKZG9jcy9Bc3NldE5vdEZvdW5kRXJyb3JSZXNwb25zZS5tZApkb2NzL0Fzc2V0Tm90ZS5tZApkb2NzL0Fzc2V0Tm90ZVJlcXVlc3QubWQKZG9jcy9Bc3NldE9uY2hhaW4ubWQKZG9jcy9Bc3NldFByaWNlRm9yYmlkZGVuRXJyb3JSZXNwb25zZS5tZApkb2NzL0Fzc2V0UHJpY2VOb3RGb3VuZEVycm9yUmVzcG9uc2UubWQKZG9jcy9Bc3NldFByaWNlUmVzcG9uc2UubWQKZG9jcy9Bc3NldFJlc3BvbnNlLm1kCmRvY3MvQXNzZXRTY29wZS5tZApkb2NzL0Fzc2V0VHlwZVJlc3BvbnNlLm1kCmRvY3MvQXNzZXRUeXBlc0NvbmZpZ0lubmVyLm1kCmRvY3MvQXNzZXRXYWxsZXQubWQKZG9jcy9BdWRpdExvZ0RhdGEubWQKZG9jcy9BdWRpdExvZ3NBcGkubWQKZG9jcy9BdWRpdG9yRGF0YS5tZApkb2NzL0F1dGhvcml6YXRpb25Hcm91cHMubWQKZG9jcy9BdXRob3JpemF0aW9uSW5mby5tZApkb2NzL0JhbGFuY2VIaXN0b3J5SXRlbUR0by5tZApkb2NzL0JhbGFuY2VIaXN0b3J5UGFnZWRSZXNwb25zZS5tZApkb2NzL0JhbmtBZGRyZXNzLm1kCmRvY3MvQmFzZVByb3ZpZGVyLm1kCmRvY3MvQmFzaWNBZGRyZXNzUmVxdWVzdC5tZApkb2NzL0Jsb2NrSW5mby5tZApkb2NzL0Jsb2NrY2hhaW5BZGRyZXNzLm1kCmRvY3MvQmxvY2tjaGFpbkRlc3RpbmF0aW9uLm1kCmRvY3MvQmxvY2tjaGFpbkV4cGxvcmVyLm1kCmRvY3MvQmxvY2tjaGFpbk1lZGlhLm1kCmRvY3MvQmxvY2tjaGFpbk1ldGFkYXRhLm1kCmRvY3MvQmxvY2tjaGFpbk5vdEZvdW5kRXJyb3JSZXNwb25zZS5tZApkb2NzL0Jsb2NrY2hhaW5PbmNoYWluLm1kCmRvY3MvQmxvY2tjaGFpblJlc3BvbnNlLm1kCmRvY3MvQmxvY2tjaGFpblRyYW5zZmVyLm1kCmRvY3MvQmxvY2tjaGFpbnNBc3NldHNBcGkubWQKZG9jcy9CcHNGZWUubWQKZG9jcy9CdXNpbmVzc0VudGl0eVR5cGVFbnVtLm1kCmRvY3MvQnVzaW5lc3NJZGVudGlmaWNhdGlvbi5tZApkb2NzL0NhbGxiYWNrSGFuZGxlci5tZApkb2NzL0NhbGxiYWNrSGFuZGxlclJlcXVlc3QubWQKZG9jcy9DYW5jZWxUcmFuc2FjdGlvblJlc3BvbnNlLm1kCmRvY3MvQ2hhaW5EZXNjcmlwdG9yLm1kCmRvY3MvQ2hhaW5JbmZvUmVzcG9uc2UubWQKZG9jcy9DaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnMubWQKZG9jcy9DaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNSZWNlaXZlQ29uZmlnLm1kCmRvY3MvQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zU2VuZENvbmZpZy5tZApkb2NzL0NoYXBzQWRkcmVzcy5tZApkb2NzL0NoYXBzRGVzdGluYXRpb24ubWQKZG9jcy9DaGFwc1BheW1lbnRJbmZvLm1kCmRvY3MvQ2xhaW1SZXdhcmRzUmVxdWVzdC5tZApkb2NzL0NvbGxlY3Rpb25CdXJuUmVxdWVzdER0by5tZApkb2NzL0NvbGxlY3Rpb25CdXJuUmVzcG9uc2VEdG8ubWQKZG9jcy9Db2xsZWN0aW9uRGVwbG95UmVxdWVzdER0by5tZApkb2NzL0NvbGxlY3Rpb25MaW5rRHRvLm1kCmRvY3MvQ29sbGVjdGlvbk1ldGFkYXRhRHRvLm1kCmRvY3MvQ29sbGVjdGlvbk1pbnRSZXF1ZXN0RHRvLm1kCmRvY3MvQ29sbGVjdGlvbk1pbnRSZXNwb25zZUR0by5tZApkb2NzL0NvbGxlY3Rpb25Pd25lcnNoaXBSZXNwb25zZS5tZApkb2NzL0NvbGxlY3Rpb25Ub2tlbk1ldGFkYXRhQXR0cmlidXRlRHRvLm1kCmRvY3MvQ29sbGVjdGlvblRva2VuTWV0YWRhdGFEdG8ubWQKZG9jcy9Db2xsZWN0aW9uVHlwZS5tZApkb2NzL0NvbW1pdHRlZFF1b3RlRW51bS5tZApkb2NzL0NvbW1pdHRlZFF1b3RlVHlwZS5tZApkb2NzL0NvbXBsaWFuY2VBcGkubWQKZG9jcy9Db21wbGlhbmNlUmVzdWx0RnVsbFBheWxvYWQubWQKZG9jcy9Db21wbGlhbmNlUmVzdWx0U3RhdHVzZXNFbnVtLm1kCmRvY3MvQ29tcGxpYW5jZVJlc3VsdHMubWQKZG9jcy9Db21wbGlhbmNlU2NyZWVuaW5nQ29uZmlndXJhdGlvbkFwaS5tZApkb2NzL0NvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHQubWQKZG9jcy9Db21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0RnVsbFBheWxvYWQubWQKZG9jcy9Db25maWdDaGFuZ2VSZXF1ZXN0U3RhdHVzLm1kCmRvY3MvQ29uZmlnQ29udmVyc2lvbk9wZXJhdGlvblNuYXBzaG90Lm1kCmRvY3MvQ29uZmlnRGlzYnVyc2VtZW50T3BlcmF0aW9uU25hcHNob3QubWQKZG9jcy9Db25maWdPcGVyYXRpb24ubWQKZG9jcy9Db25maWdPcGVyYXRpb25TbmFwc2hvdC5tZApkb2NzL0NvbmZpZ09wZXJhdGlvblN0YXR1cy5tZApkb2NzL0NvbmZpZ1RyYW5zZmVyT3BlcmF0aW9uU25hcHNob3QubWQKZG9jcy9Db25uZWN0ZWRBY2NvdW50Lm1kCmRvY3MvQ29ubmVjdGVkQWNjb3VudEFwcHJvdmFsU3RhdHVzLm1kCmRvY3MvQ29ubmVjdGVkQWNjb3VudEFzc2V0VHlwZS5tZApkb2NzL0Nvbm5lY3RlZEFjY291bnRCYWxhbmNlcy5tZApkb2NzL0Nvbm5lY3RlZEFjY291bnRCYWxhbmNlc1Jlc3BvbnNlLm1kCmRvY3MvQ29ubmVjdGVkQWNjb3VudENhcGFiaWxpdHkubWQKZG9jcy9Db25uZWN0ZWRBY2NvdW50RXJyb3JSZXNwb25zZS5tZApkb2NzL0Nvbm5lY3RlZEFjY291bnRNYW5pZmVzdC5tZApkb2NzL0Nvbm5lY3RlZEFjY291bnRSYXRlUmVzcG9uc2UubWQKZG9jcy9Db25uZWN0ZWRBY2NvdW50VG90YWxCYWxhbmNlLm1kCmRvY3MvQ29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyLm1kCmRvY3MvQ29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyU3VwcG9ydGVkVHlwZS5tZApkb2NzL0Nvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpcnNSZXNwb25zZS5tZApkb2NzL0Nvbm5lY3RlZEFjY291bnRzQmV0YUFwaS5tZApkb2NzL0Nvbm5lY3RlZEFjY291bnRzUmVzcG9uc2UubWQKZG9jcy9Db25uZWN0ZWRTaW5nbGVBY2NvdW50Lm1kCmRvY3MvQ29ubmVjdGVkU2luZ2xlQWNjb3VudFJlc3BvbnNlLm1kCmRvY3MvQ29uc29sZVVzZXIubWQKZG9jcy9Db25zb2xlVXNlckFwaS5tZApkb2NzL0NvbnRyYWN0QWJpUmVzcG9uc2VEdG8ubWQKZG9jcy9Db250cmFjdEFiaVJlc3BvbnNlRHRvQWJpSW5uZXIubWQKZG9jcy9Db250cmFjdEFkZHJlc3NSZXNwb25zZS5tZApkb2NzL0NvbnRyYWN0QXR0cmlidXRlcy5tZApkb2NzL0NvbnRyYWN0RGF0YURlY29kZURhdGFUeXBlLm1kCmRvY3MvQ29udHJhY3REYXRhRGVjb2RlRXJyb3IubWQKZG9jcy9Db250cmFjdERhdGFEZWNvZGVSZXF1ZXN0Lm1kCmRvY3MvQ29udHJhY3REYXRhRGVjb2RlUmVxdWVzdERhdGEubWQKZG9jcy9Db250cmFjdERhdGFEZWNvZGVSZXNwb25zZVBhcmFtcy5tZApkb2NzL0NvbnRyYWN0RGF0YURlY29kZWRSZXNwb25zZS5tZApkb2NzL0NvbnRyYWN0RGF0YUxvZ0RhdGFQYXJhbS5tZApkb2NzL0NvbnRyYWN0RGVwbG95UmVxdWVzdC5tZApkb2NzL0NvbnRyYWN0RGVwbG95UmVzcG9uc2UubWQKZG9jcy9Db250cmFjdERvYy5tZApkb2NzL0NvbnRyYWN0SW50ZXJhY3Rpb25zQXBpLm1kCmRvY3MvQ29udHJhY3RNZXRhZGF0YUR0by5tZApkb2NzL0NvbnRyYWN0TWV0aG9kQ29uZmlnLm1kCmRvY3MvQ29udHJhY3RNZXRob2RQYXR0ZXJuLm1kCmRvY3MvQ29udHJhY3RUZW1wbGF0ZUR0by5tZApkb2NzL0NvbnRyYWN0VGVtcGxhdGVzQXBpLm1kCmRvY3MvQ29udHJhY3RVcGxvYWRSZXF1ZXN0Lm1kCmRvY3MvQ29udHJhY3RXaXRoQWJpRHRvLm1kCmRvY3MvQ29udHJhY3RzQXBpLm1kCmRvY3MvQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvbi5tZApkb2NzL0NvbnZlcnNpb25PcGVyYXRpb25Db25maWdQYXJhbXMubWQKZG9jcy9Db252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uLm1kCmRvY3MvQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dC5tZApkb2NzL0NvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXMubWQKZG9jcy9Db252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zLm1kCmRvY3MvQ29udmVyc2lvbk9wZXJhdGlvbkZhaWx1cmUubWQKZG9jcy9Db252ZXJzaW9uT3BlcmF0aW9uUHJldmlldy5tZApkb2NzL0NvbnZlcnNpb25PcGVyYXRpb25QcmV2aWV3T3V0cHV0Lm1kCmRvY3MvQ29udmVyc2lvbk9wZXJhdGlvblR5cGUubWQKZG9jcy9Db252ZXJzaW9uVmFsaWRhdGlvbkZhaWx1cmUubWQKZG9jcy9Db252ZXJ0QXNzZXRzUmVxdWVzdC5tZApkb2NzL0NvbnZlcnRBc3NldHNSZXNwb25zZS5tZApkb2NzL0Nvc2lnbmVyLm1kCmRvY3MvQ29zaWduZXJzQmV0YUFwaS5tZApkb2NzL0Nvc2lnbmVyc1BhZ2luYXRlZFJlc3BvbnNlLm1kCmRvY3MvQ3JlYXRlQVBJVXNlci5tZApkb2NzL0NyZWF0ZUFkZHJlc3NSZXF1ZXN0Lm1kCmRvY3MvQ3JlYXRlQWRkcmVzc1Jlc3BvbnNlLm1kCmRvY3MvQ3JlYXRlQXNzZXRzUmVxdWVzdC5tZApkb2NzL0NyZWF0ZUNvbmZpZ09wZXJhdGlvblJlcXVlc3QubWQKZG9jcy9DcmVhdGVDb25uZWN0aW9uUmVxdWVzdC5tZApkb2NzL0NyZWF0ZUNvbm5lY3Rpb25SZXNwb25zZS5tZApkb2NzL0NyZWF0ZUNvbnNvbGVVc2VyLm1kCmRvY3MvQ3JlYXRlQ29udHJhY3RSZXF1ZXN0Lm1kCmRvY3MvQ3JlYXRlQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvblJlcXVlc3QubWQKZG9jcy9DcmVhdGVEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb25SZXF1ZXN0Lm1kCmRvY3MvQ3JlYXRlSW50ZXJuYWxUcmFuc2ZlclJlcXVlc3QubWQKZG9jcy9DcmVhdGVJbnRlcm5hbFdhbGxldEFzc2V0UmVxdWVzdC5tZApkb2NzL0NyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3QubWQKZG9jcy9DcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0Q3JlYXRlUGFyYW1zLm1kCmRvY3MvQ3JlYXRlTXVsdGlwbGVBY2NvdW50c1JlcXVlc3QubWQKZG9jcy9DcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNKb2JTdGF0dXMubWQKZG9jcy9DcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNSZXF1ZXN0Lm1kCmRvY3MvQ3JlYXRlTXVsdGlwbGVWYXVsdEFjY291bnRzSm9iU3RhdHVzLm1kCmRvY3MvQ3JlYXRlTmN3Q29ubmVjdGlvblJlcXVlc3QubWQKZG9jcy9DcmVhdGVOZXR3b3JrSWRSZXF1ZXN0Lm1kCmRvY3MvQ3JlYXRlT3JkZXJSZXF1ZXN0Lm1kCmRvY3MvQ3JlYXRlUGF5b3V0UmVxdWVzdC5tZApkb2NzL0NyZWF0ZVF1b3RlLm1kCmRvY3MvQ3JlYXRlUXVvdGVTY29wZUlubmVyLm1kCmRvY3MvQ3JlYXRlU2lnbmluZ0tleUR0by5tZApkb2NzL0NyZWF0ZVNpZ25pbmdLZXlEdG9Qcm9vZk9mT3duZXJzaGlwLm1kCmRvY3MvQ3JlYXRlVGFnUmVxdWVzdC5tZApkb2NzL0NyZWF0ZVRva2VuUmVxdWVzdER0by5tZApkb2NzL0NyZWF0ZVRva2VuUmVxdWVzdER0b0NyZWF0ZVBhcmFtcy5tZApkb2NzL0NyZWF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UubWQKZG9jcy9DcmVhdGVUcmFuc2ZlckNvbmZpZ09wZXJhdGlvblJlcXVlc3QubWQKZG9jcy9DcmVhdGVVc2VyR3JvdXBSZXNwb25zZS5tZApkb2NzL0NyZWF0ZVZhbGlkYXRpb25LZXlEdG8ubWQKZG9jcy9DcmVhdGVWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8ubWQKZG9jcy9DcmVhdGVWYXVsdEFjY291bnRDb25uZWN0aW9uUmVxdWVzdC5tZApkb2NzL0NyZWF0ZVZhdWx0QWNjb3VudFJlcXVlc3QubWQKZG9jcy9DcmVhdGVWYXVsdEFzc2V0UmVzcG9uc2UubWQKZG9jcy9DcmVhdGVXYWxsZXRSZXF1ZXN0Lm1kCmRvY3MvQ3JlYXRlV2ViaG9va1JlcXVlc3QubWQKZG9jcy9DcmVhdGVXb3JrZmxvd0V4ZWN1dGlvblJlcXVlc3RQYXJhbXNJbm5lci5tZApkb2NzL0N1c3RvbVJvdXRpbmdEZXN0Lm1kCmRvY3MvREFwcEFkZHJlc3NDb25maWcubWQKZG9jcy9EVlBTZXR0bGVtZW50Lm1kCmRvY3MvRFZQU2V0dGxlbWVudFR5cGUubWQKZG9jcy9EZWNvZGVkTG9nLm1kCmRvY3MvRGVmYXVsdE5ldHdvcmtSb3V0aW5nRGVzdC5tZApkb2NzL0RlbGVnYXRpb24ubWQKZG9jcy9EZWxlZ2F0aW9uQmxvY2tjaGFpblBvc2l0aW9uSW5mby5tZApkb2NzL0RlbGVnYXRpb25TdW1tYXJ5Lm1kCmRvY3MvRGVsZXRlTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZS5tZApkb2NzL0RlbGV0ZU5ldHdvcmtJZFJlc3BvbnNlLm1kCmRvY3MvRGVwbG95TGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0Lm1kCmRvY3MvRGVwbG95YWJsZUFkZHJlc3NSZXNwb25zZS5tZApkb2NzL0RlcGxveWVkQ29udHJhY3ROb3RGb3VuZEVycm9yLm1kCmRvY3MvRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvLm1kCmRvY3MvRGVwbG95ZWRDb250cmFjdHNBcGkubWQKZG9jcy9EZXBsb3llZENvbnRyYWN0c1BhZ2luYXRlZFJlc3BvbnNlLm1kCmRvY3MvRGVwb3NpdEZ1bmRzRnJvbUxpbmtlZEREQVJlc3BvbnNlLm1kCmRvY3MvRGVyaXZhdGlvblBhdGhDb25maWcubWQKZG9jcy9EZXNpZ25hdGVkU2lnbmVyc0NvbmZpZy5tZApkb2NzL0Rlc3RpbmF0aW9uLm1kCmRvY3MvRGVzdGluYXRpb25Db25maWcubWQKZG9jcy9EZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgubWQKZG9jcy9EZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGhSZXNwb25zZS5tZApkb2NzL0RpcmVjdEFjY2Vzcy5tZApkb2NzL0RpcmVjdEFjY2Vzc1Byb3ZpZGVyLm1kCmRvY3MvRGlyZWN0QWNjZXNzUHJvdmlkZXJJbmZvLm1kCmRvY3MvRGlyZWN0UHJvdmlkZXJEZXRhaWxzLm1kCmRvY3MvRGlzYnVyc2VtZW50QW1vdW50SW5zdHJ1Y3Rpb24ubWQKZG9jcy9EaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb24ubWQKZG9jcy9EaXNidXJzZW1lbnRJbnN0cnVjdGlvbi5tZApkb2NzL0Rpc2J1cnNlbWVudEluc3RydWN0aW9uT3V0cHV0Lm1kCmRvY3MvRGlzYnVyc2VtZW50T3BlcmF0aW9uQ29uZmlnUGFyYW1zLm1kCmRvY3MvRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uLm1kCmRvY3MvRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0Lm1kCmRvY3MvRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zLm1kCmRvY3MvRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zLm1kCmRvY3MvRGlzYnVyc2VtZW50T3BlcmF0aW9uSW5wdXQubWQKZG9jcy9EaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3Lm1kCmRvY3MvRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlld091dHB1dC5tZApkb2NzL0Rpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXdPdXRwdXRJbnN0cnVjdGlvblNldElubmVyLm1kCmRvY3MvRGlzYnVyc2VtZW50T3BlcmF0aW9uVHlwZS5tZApkb2NzL0Rpc2J1cnNlbWVudFBlcmNlbnRhZ2VJbnN0cnVjdGlvbi5tZApkb2NzL0Rpc2J1cnNlbWVudFZhbGlkYXRpb25GYWlsdXJlLm1kCmRvY3MvRGlzcGF0Y2hQYXlvdXRSZXNwb25zZS5tZApkb2NzL0RyYWZ0UmVzcG9uc2UubWQKZG9jcy9EcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZS5tZApkb2NzL0Ryb3BUcmFuc2FjdGlvblJlcXVlc3QubWQKZG9jcy9Ecm9wVHJhbnNhY3Rpb25SZXNwb25zZS5tZApkb2NzL0R2bkNvbmZpZy5tZApkb2NzL0R2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zLm1kCmRvY3MvRVZNVG9rZW5DcmVhdGVQYXJhbXNEdG8ubWQKZG9jcy9FZGl0R2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZS5tZApkb2NzL0VtYmVkZGVkV2FsbGV0Lm1kCmRvY3MvRW1iZWRkZWRXYWxsZXRBY2NvdW50Lm1kCmRvY3MvRW1iZWRkZWRXYWxsZXRBZGRyZXNzRGV0YWlscy5tZApkb2NzL0VtYmVkZGVkV2FsbGV0QWxnb3JpdG0ubWQKZG9jcy9FbWJlZGRlZFdhbGxldEFzc2V0QmFsYW5jZS5tZApkb2NzL0VtYmVkZGVkV2FsbGV0QXNzZXRSZXNwb25zZS5tZApkb2NzL0VtYmVkZGVkV2FsbGV0QXNzZXRSZXdhcmRJbmZvLm1kCmRvY3MvRW1iZWRkZWRXYWxsZXREZXZpY2UubWQKZG9jcy9FbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2UubWQKZG9jcy9FbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2VTZXR1cFN0YXR1c0lubmVyLm1kCmRvY3MvRW1iZWRkZWRXYWxsZXRMYXRlc3RCYWNrdXBLZXkubWQKZG9jcy9FbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cFJlc3BvbnNlLm1kCmRvY3MvRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBZGRyZXNzZXNSZXNwb25zZS5tZApkb2NzL0VtYmVkZGVkV2FsbGV0UGFnaW5hdGVkQXNzZXRzUmVzcG9uc2UubWQKZG9jcy9FbWJlZGRlZFdhbGxldFBhZ2luYXRlZERldmljZXNSZXNwb25zZS5tZApkb2NzL0VtYmVkZGVkV2FsbGV0UGFnaW5hdGVkV2FsbGV0c1Jlc3BvbnNlLm1kCmRvY3MvRW1iZWRkZWRXYWxsZXRSZXF1aXJlZEFsZ29yaXRobXMubWQKZG9jcy9FbWJlZGRlZFdhbGxldFNldFVwU3RhdHVzLm1kCmRvY3MvRW1iZWRkZWRXYWxsZXRTZXR1cFN0YXR1c1Jlc3BvbnNlLm1kCmRvY3MvRW1iZWRkZWRXYWxsZXRzQXBpLm1kCmRvY3MvRW5hYmxlRGV2aWNlLm1kCmRvY3MvRW5hYmxlV2FsbGV0Lm1kCmRvY3MvRXJyb3JSZXNwb25zZS5tZApkb2NzL0Vycm9yUmVzcG9uc2VFcnJvci5tZApkb2NzL0Vycm9yU2NoZW1hLm1kCmRvY3MvRXN0aW1hdGVkRmVlRGV0YWlscy5tZApkb2NzL0VzdGltYXRlZE5ldHdvcmtGZWVSZXNwb25zZS5tZApkb2NzL0VzdGltYXRlZFRyYW5zYWN0aW9uRmVlUmVzcG9uc2UubWQKZG9jcy9FdGhlcmV1bUJsb2NrY2hhaW5EYXRhLm1kCmRvY3MvRXVyb3BlYW5TRVBBQWRkcmVzcy5tZApkb2NzL0V1cm9wZWFuU0VQQURlc3RpbmF0aW9uLm1kCmRvY3MvRXhjaGFuZ2VBY2NvdW50Lm1kCmRvY3MvRXhjaGFuZ2VBY2NvdW50c0FwaS5tZApkb2NzL0V4Y2hhbmdlQXNzZXQubWQKZG9jcy9FeGNoYW5nZVNldHRsZW1lbnRUcmFuc2FjdGlvbnNSZXNwb25zZS5tZApkb2NzL0V4Y2hhbmdlVHJhZGluZ0FjY291bnQubWQKZG9jcy9FeGNoYW5nZVR5cGUubWQKZG9jcy9FeGVjdXRpb25Db252ZXJzaW9uT3BlcmF0aW9uLm1kCmRvY3MvRXhlY3V0aW9uRGlzYnVyc2VtZW50T3BlcmF0aW9uLm1kCmRvY3MvRXhlY3V0aW9uT3BlcmF0aW9uU3RhdHVzLm1kCmRvY3MvRXhlY3V0aW9uUmVxdWVzdEJhc2VEZXRhaWxzLm1kCmRvY3MvRXhlY3V0aW9uUmVxdWVzdERldGFpbHMubWQKZG9jcy9FeGVjdXRpb25SZXF1ZXN0RGV0YWlsc1R5cGUubWQKZG9jcy9FeGVjdXRpb25SZXNwb25zZUJhc2VEZXRhaWxzLm1kCmRvY3MvRXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzLm1kCmRvY3MvRXhlY3V0aW9uU2NyZWVuaW5nT3BlcmF0aW9uLm1kCmRvY3MvRXhlY3V0aW9uU3RlcEVycm9yLm1kCmRvY3MvRXhlY3V0aW9uU3RlcFN0YXR1c0VudW0ubWQKZG9jcy9FeGVjdXRpb25TdGVwVHlwZS5tZApkb2NzL0V4ZWN1dGlvblRyYW5zZmVyT3BlcmF0aW9uLm1kCmRvY3MvRXh0ZXJuYWxBY2NvdW50Lm1kCmRvY3MvRXh0ZXJuYWxBY2NvdW50TG9jYWxCYW5rQWZyaWNhLm1kCmRvY3MvRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXkubWQKZG9jcy9FeHRlcm5hbEFjY291bnRNb2JpbGVNb25leVByb3ZpZGVyLm1kCmRvY3MvRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXlUeXBlLm1kCmRvY3MvRXh0ZXJuYWxBY2NvdW50U2VuZGVySW5mb3JtYXRpb24ubWQKZG9jcy9FeHRlcm5hbEFjY291bnRUeXBlLm1kCmRvY3MvRXh0ZXJuYWxXYWxsZXRBc3NldC5tZApkb2NzL0V4dGVybmFsV2FsbGV0c0FwaS5tZApkb2NzL0V4dHJhUGFyYW1ldGVycy5tZApkb2NzL0ZhaWx1cmUubWQKZG9jcy9GYWlsdXJlUmVhc29uLm1kCmRvY3MvRmVlLm1kCmRvY3MvRmVlQnJlYWtkb3duLm1kCmRvY3MvRmVlSW5mby5tZApkb2NzL0ZlZUxldmVsLm1kCmRvY3MvRmVlUGF5ZXJJbmZvLm1kCmRvY3MvRmVlUHJvcGVydGllc0RldGFpbHMubWQKZG9jcy9GZWVUeXBlRW51bS5tZApkb2NzL0ZldGNoQWJpUmVxdWVzdER0by5tZApkb2NzL0ZpYXRBY2NvdW50Lm1kCmRvY3MvRmlhdEFjY291bnRUeXBlLm1kCmRvY3MvRmlhdEFjY291bnRzQXBpLm1kCmRvY3MvRmlhdEFzc2V0Lm1kCmRvY3MvRmlhdERlc3RpbmF0aW9uLm1kCmRvY3MvRmlhdFBheW1lbnRNZXRhZGF0YS5tZApkb2NzL0ZpYXRUcmFuc2Zlci5tZApkb2NzL0ZpeGVkQW1vdW50VHlwZUVudW0ubWQKZG9jcy9GaXhlZEZlZS5tZApkb2NzL0ZyZWV6ZVRyYW5zYWN0aW9uUmVzcG9uc2UubWQKZG9jcy9GdW5jdGlvbkRvYy5tZApkb2NzL0Z1bmRzLm1kCmRvY3MvR2FzU3RhdGlvbkNvbmZpZ3VyYXRpb24ubWQKZG9jcy9HYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlLm1kCmRvY3MvR2FzU3RhdGlvblByb3BlcnRpZXNSZXNwb25zZS5tZApkb2NzL0dhc1N0YXRpb25zQXBpLm1kCmRvY3MvR2Fzc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zLm1kCmRvY3MvR2Fzc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zR2FzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnNWYWx1ZS5tZApkb2NzL0dldEFQSVVzZXJzUmVzcG9uc2UubWQKZG9jcy9HZXRBdWRpdExvZ3NSZXNwb25zZS5tZApkb2NzL0dldENvbm5lY3Rpb25zUmVzcG9uc2UubWQKZG9jcy9HZXRDb25zb2xlVXNlcnNSZXNwb25zZS5tZApkb2NzL0dldERlcGxveWFibGVBZGRyZXNzUmVxdWVzdC5tZApkb2NzL0dldEV4Y2hhbmdlQWNjb3VudHNDcmVkZW50aWFsc1B1YmxpY0tleVJlc3BvbnNlLm1kCmRvY3MvR2V0RmlsdGVyUGFyYW1ldGVyLm1kCmRvY3MvR2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UubWQKZG9jcy9HZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlLm1kCmRvY3MvR2V0TGlua2VkQ29sbGVjdGlvbnNQYWdpbmF0ZWRSZXNwb25zZS5tZApkb2NzL0dldE1heEJpcEluZGV4VXNlZFJlc3BvbnNlLm1kCmRvY3MvR2V0TWF4U3BlbmRhYmxlQW1vdW50UmVzcG9uc2UubWQKZG9jcy9HZXRNcGNLZXlzUmVzcG9uc2UubWQKZG9jcy9HZXRORlRzUmVzcG9uc2UubWQKZG9jcy9HZXRPcmRlcnNSZXNwb25zZS5tZApkb2NzL0dldE90YVN0YXR1c1Jlc3BvbnNlLm1kCmRvY3MvR2V0T3duZXJzaGlwVG9rZW5zUmVzcG9uc2UubWQKZG9jcy9HZXRQYWdlZEV4Y2hhbmdlQWNjb3VudHNSZXNwb25zZS5tZApkb2NzL0dldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlUGFnaW5nLm1kCmRvY3MvR2V0U2lnbmluZ0tleVJlc3BvbnNlRHRvLm1kCmRvY3MvR2V0VHJhbnNhY3Rpb25PcGVyYXRpb24ubWQKZG9jcy9HZXRWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8ubWQKZG9jcy9HZXRXaGl0ZWxpc3RJcEFkZHJlc3Nlc1Jlc3BvbnNlLm1kCmRvY3MvR2V0V29ya3NwYWNlU3RhdHVzUmVzcG9uc2UubWQKZG9jcy9IdHRwQ29udHJhY3REb2VzTm90RXhpc3RFcnJvci5tZApkb2NzL0liYW5BZGRyZXNzLm1kCmRvY3MvSWJhbkRlc3RpbmF0aW9uLm1kCmRvY3MvSWJhblBheW1lbnRJbmZvLm1kCmRvY3MvSWRlbnRpZmljYXRpb24ubWQKZG9jcy9JZGxUeXBlLm1kCmRvY3MvSW5kaWNhdGl2ZVF1b3RlRW51bS5tZApkb2NzL0luZGljYXRpdmVRdW90ZVR5cGUubWQKZG9jcy9Jbml0aWF0b3JDb25maWcubWQKZG9jcy9Jbml0aWF0b3JDb25maWdQYXR0ZXJuLm1kCmRvY3MvSW5zdHJ1Y3Rpb25BbW91bnQubWQKZG9jcy9JbnRlcmFjQWRkcmVzcy5tZApkb2NzL0ludGVyYWNEZXN0aW5hdGlvbi5tZApkb2NzL0ludGVyYWNQYXltZW50SW5mby5tZApkb2NzL0ludGVybmFsUmVmZXJlbmNlLm1kCmRvY3MvSW50ZXJuYWxUcmFuc2ZlckFkZHJlc3MubWQKZG9jcy9JbnRlcm5hbFRyYW5zZmVyRGVzdGluYXRpb24ubWQKZG9jcy9JbnRlcm5hbFRyYW5zZmVyUmVzcG9uc2UubWQKZG9jcy9JbnRlcm5hbFdhbGxldHNBcGkubWQKZG9jcy9JbnZhbGlkUGFyYW1hdGVyVmFsdWVFcnJvci5tZApkb2NzL0pvYkNyZWF0ZWQubWQKZG9jcy9LZXlMaW5rQmV0YUFwaS5tZApkb2NzL0tleXNCZXRhQXBpLm1kCmRvY3MvTGF5ZXJaZXJvQWRhcHRlckNyZWF0ZVBhcmFtcy5tZApkb2NzL0xidFBheW1lbnRJbmZvLm1kCmRvY3MvTGVhbkFiaUZ1bmN0aW9uLm1kCmRvY3MvTGVhbkNvbnRyYWN0RHRvLm1kCmRvY3MvTGVhbkRlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0by5tZApkb2NzL0xlZ2FjeUFtb3VudEFnZ3JlZ2F0aW9uVGltZVBlcmlvZE1ldGhvZC5tZApkb2NzL0xlZ2FjeURyYWZ0UmVzcG9uc2UubWQKZG9jcy9MZWdhY3lEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZS5tZApkb2NzL0xlZ2FjeVBvbGljeUFuZFZhbGlkYXRpb25SZXNwb25zZS5tZApkb2NzL0xlZ2FjeVBvbGljeUNoZWNrUmVzdWx0Lm1kCmRvY3MvTGVnYWN5UG9saWN5TWV0YWRhdGEubWQKZG9jcy9MZWdhY3lQb2xpY3lSZXNwb25zZS5tZApkb2NzL0xlZ2FjeVBvbGljeVJ1bGUubWQKZG9jcy9MZWdhY3lQb2xpY3lSdWxlQW1vdW50Lm1kCmRvY3MvTGVnYWN5UG9saWN5UnVsZUFtb3VudEFnZ3JlZ2F0aW9uLm1kCmRvY3MvTGVnYWN5UG9saWN5UnVsZUF1dGhvcml6YXRpb25Hcm91cHMubWQKZG9jcy9MZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3Vwc0dyb3Vwc0lubmVyLm1kCmRvY3MvTGVnYWN5UG9saWN5UnVsZUNoZWNrUmVzdWx0Lm1kCmRvY3MvTGVnYWN5UG9saWN5UnVsZURlc2lnbmF0ZWRTaWduZXJzLm1kCmRvY3MvTGVnYWN5UG9saWN5UnVsZURzdC5tZApkb2NzL0xlZ2FjeVBvbGljeVJ1bGVFcnJvci5tZApkb2NzL0xlZ2FjeVBvbGljeVJ1bGVPcGVyYXRvcnMubWQKZG9jcy9MZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmcubWQKZG9jcy9MZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmdEZXJpdmF0aW9uUGF0aC5tZApkb2NzL0xlZ2FjeVBvbGljeVJ1bGVTcmMubWQKZG9jcy9MZWdhY3lQb2xpY3lSdWxlcy5tZApkb2NzL0xlZ2FjeVBvbGljeVNyY09yRGVzdFN1YlR5cGUubWQKZG9jcy9MZWdhY3lQb2xpY3lTcmNPckRlc3RUeXBlLm1kCmRvY3MvTGVnYWN5UG9saWN5U3RhdHVzLm1kCmRvY3MvTGVnYWN5UG9saWN5VmFsaWRhdGlvbi5tZApkb2NzL0xlZ2FjeVB1Ymxpc2hEcmFmdFJlcXVlc3QubWQKZG9jcy9MZWdhY3lQdWJsaXNoUmVzdWx0Lm1kCmRvY3MvTGVnYWN5U3JjT3JEZXN0QXR0cmlidXRlc0lubmVyLm1kCmRvY3MvTGlua2VkVG9rZW5zQ291bnQubWQKZG9jcy9MaXN0QXNzZXRzUmVzcG9uc2UubWQKZG9jcy9MaXN0QmxvY2tjaGFpbnNSZXNwb25zZS5tZApkb2NzL0xpc3RPd25lZENvbGxlY3Rpb25zUmVzcG9uc2UubWQKZG9jcy9MaXN0T3duZWRUb2tlbnNSZXNwb25zZS5tZApkb2NzL0xvY2FsQmFua1RyYW5zZmVyQWZyaWNhQWRkcmVzcy5tZApkb2NzL0xvY2FsQmFua1RyYW5zZmVyQWZyaWNhRGVzdGluYXRpb24ubWQKZG9jcy9NYW5pZmVzdC5tZApkb2NzL01hbmlmZXN0QmFzZS5tZApkb2NzL01hbmlmZXN0T3JkZXIubWQKZG9jcy9NYW5pZmVzdE9yZGVySW5mby5tZApkb2NzL01hbmlmZXN0UXVvdGUubWQKZG9jcy9NYW5pZmVzdFF1b3RlSW5mby5tZApkb2NzL01hcmtldEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzLm1kCmRvY3MvTWFya2V0RXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzLm1kCmRvY3MvTWFya2V0UmVxdW90ZVJlcXVlc3REZXRhaWxzLm1kCmRvY3MvTWFya2V0UmVxdW90ZVR5cGVFbnVtLm1kCmRvY3MvTWFya2V0VHlwZURldGFpbHMubWQKZG9jcy9NYXJrZXRUeXBlRW51bS5tZApkb2NzL01lZGlhRW50aXR5UmVzcG9uc2UubWQKZG9jcy9NZXJnZVN0YWtlQWNjb3VudHNSZXF1ZXN0Lm1kCmRvY3MvTWVyZ2VTdGFrZUFjY291bnRzUmVzcG9uc2UubWQKZG9jcy9Nb2JpbGVNb25leUFkZHJlc3MubWQKZG9jcy9Nb2JpbGVNb25leURlc3RpbmF0aW9uLm1kCmRvY3MvTW9kaWZ5U2lnbmluZ0tleUFnZW50SWREdG8ubWQKZG9jcy9Nb2RpZnlTaWduaW5nS2V5RHRvLm1kCmRvY3MvTW9kaWZ5VmFsaWRhdGlvbktleUR0by5tZApkb2NzL01vbW9QYXltZW50SW5mby5tZApkb2NzL01wY0tleS5tZApkb2NzL011bHRpY2hhaW5EZXBsb3ltZW50TWV0YWRhdGEubWQKZG9jcy9ORlRzQXBpLm1kCmRvY3MvTmV0d29ya0NoYW5uZWwubWQKZG9jcy9OZXR3b3JrQ29ubmVjdGlvbi5tZApkb2NzL05ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2UubWQKZG9jcy9OZXR3b3JrQ29ubmVjdGlvblJvdXRpbmdQb2xpY3lWYWx1ZS5tZApkb2NzL05ldHdvcmtDb25uZWN0aW9uU3RhdHVzLm1kCmRvY3MvTmV0d29ya0Nvbm5lY3Rpb25zQXBpLm1kCmRvY3MvTmV0d29ya0ZlZS5tZApkb2NzL05ldHdvcmtJZC5tZApkb2NzL05ldHdvcmtJZFJlc3BvbnNlLm1kCmRvY3MvTmV0d29ya0lkUm91dGluZ1BvbGljeVZhbHVlLm1kCmRvY3MvTmV0d29ya1JlY29yZC5tZApkb2NzL05ld0FkZHJlc3MubWQKZG9jcy9Ob25lTmV0d29ya1JvdXRpbmdEZXN0Lm1kCmRvY3MvTm90Rm91bmRFeGNlcHRpb24ubWQKZG9jcy9Ob3RpZmljYXRpb24ubWQKZG9jcy9Ob3RpZmljYXRpb25BdHRlbXB0Lm1kCmRvY3MvTm90aWZpY2F0aW9uQXR0ZW1wdHNQYWdpbmF0ZWRSZXNwb25zZS5tZApkb2NzL05vdGlmaWNhdGlvblBhZ2luYXRlZFJlc3BvbnNlLm1kCmRvY3MvTm90aWZpY2F0aW9uU3RhdHVzLm1kCmRvY3MvTm90aWZpY2F0aW9uV2l0aERhdGEubWQKZG9jcy9PVEFCZXRhQXBpLm1kCmRvY3MvT2ZmRXhjaGFuZ2VzQXBpLm1kCmRvY3MvT25jaGFpbkRhdGFBcGkubWQKZG9jcy9PbmNoYWluVHJhbnNhY3Rpb24ubWQKZG9jcy9PbmNoYWluVHJhbnNhY3Rpb25zUGFnZWRSZXNwb25zZS5tZApkb2NzL09uZVRpbWVBZGRyZXNzLm1kCmRvY3MvT25lVGltZUFkZHJlc3NBY2NvdW50Lm1kCmRvY3MvT25lVGltZUFkZHJlc3NQZWVyVHlwZS5tZApkb2NzL09uZVRpbWVBZGRyZXNzUmVmZXJlbmNlLm1kCmRvY3MvT3BlcmF0aW9uRXhlY3V0aW9uRmFpbHVyZS5tZApkb2NzL09yZGVyRGV0YWlscy5tZApkb2NzL09yZGVyRXhlY3V0aW9uU3RlcC5tZApkb2NzL09yZGVyU2lkZS5tZApkb2NzL09yZGVyU3RhdHVzLm1kCmRvY3MvT3JkZXJTdW1tYXJ5Lm1kCmRvY3MvUGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlLm1kCmRvY3MvUGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlUGFnaW5nLm1kCmRvY3MvUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZS5tZApkb2NzL1BhZ2luYXRlZEFzc2V0V2FsbGV0UmVzcG9uc2VQYWdpbmcubWQKZG9jcy9QYWdpbmF0ZWRBc3NldHNSZXNwb25zZS5tZApkb2NzL1BhZ2luZy5tZApkb2NzL1BhaXJBcGlLZXlSZXF1ZXN0Lm1kCmRvY3MvUGFpckFwaUtleVJlc3BvbnNlLm1kCmRvY3MvUGFyYW1ldGVyLm1kCmRvY3MvUGFyYW1ldGVyV2l0aFZhbHVlLm1kCmRvY3MvUGFydGljaXBhbnRSZWxhdGlvbnNoaXBUeXBlLm1kCmRvY3MvUGFydGljaXBhbnRzSWRlbnRpZmljYXRpb24ubWQKZG9jcy9QYXllZUFjY291bnQubWQKZG9jcy9QYXllZUFjY291bnRSZXNwb25zZS5tZApkb2NzL1BheWVlQWNjb3VudFR5cGUubWQKZG9jcy9QYXlpZEFkZHJlc3MubWQKZG9jcy9QYXlpZERlc3RpbmF0aW9uLm1kCmRvY3MvUGF5aWRQYXltZW50SW5mby5tZApkb2NzL1BheW1lbnRBY2NvdW50Lm1kCmRvY3MvUGF5bWVudEFjY291bnRSZXNwb25zZS5tZApkb2NzL1BheW1lbnRBY2NvdW50VHlwZS5tZApkb2NzL1BheW1lbnRJbnN0cnVjdGlvbnMubWQKZG9jcy9QYXltZW50SW5zdHJ1Y3Rpb25zT25lT2YubWQKZG9jcy9QYXltZW50UmVkaXJlY3QubWQKZG9jcy9QYXltZW50c1BheW91dEFwaS5tZApkb2NzL1BheW91dEluaXRNZXRob2QubWQKZG9jcy9QYXlvdXRJbnN0cnVjdGlvbi5tZApkb2NzL1BheW91dEluc3RydWN0aW9uUmVzcG9uc2UubWQKZG9jcy9QYXlvdXRJbnN0cnVjdGlvblN0YXRlLm1kCmRvY3MvUGF5b3V0UmVzcG9uc2UubWQKZG9jcy9QYXlvdXRTdGF0ZS5tZApkb2NzL1BheW91dFN0YXR1cy5tZApkb2NzL1BlZXJBZGFwdGVySW5mby5tZApkb2NzL1BlZXJUeXBlLm1kCmRvY3MvUGVyc29uYWxFbnRpdHlUeXBlRW51bS5tZApkb2NzL1BlcnNvbmFsSWRlbnRpZmljYXRpb24ubWQKZG9jcy9QZXJzb25hbElkZW50aWZpY2F0aW9uRnVsbE5hbWUubWQKZG9jcy9QZXJzb25hbElkZW50aWZpY2F0aW9uVHlwZS5tZApkb2NzL1BpeEFkZHJlc3MubWQKZG9jcy9QaXhEZXN0aW5hdGlvbi5tZApkb2NzL1BpeFBheW1lbnRJbmZvLm1kCmRvY3MvUGxhdGZvcm1BY2NvdW50Lm1kCmRvY3MvUGxhdGZvcm1QZWVyVHlwZS5tZApkb2NzL1BsYXllcnMubWQKZG9jcy9Qb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2UubWQKZG9jcy9Qb2xpY3lDaGVja1Jlc3VsdC5tZApkb2NzL1BvbGljeUN1cnJlbmN5Lm1kCmRvY3MvUG9saWN5RWRpdG9yQmV0YUFwaS5tZApkb2NzL1BvbGljeUVkaXRvclYyQmV0YUFwaS5tZApkb2NzL1BvbGljeU1ldGFkYXRhLm1kCmRvY3MvUG9saWN5T3BlcmF0b3IubWQKZG9jcy9Qb2xpY3lSZXNwb25zZS5tZApkb2NzL1BvbGljeVJ1bGUubWQKZG9jcy9Qb2xpY3lSdWxlQ2hlY2tSZXN1bHQubWQKZG9jcy9Qb2xpY3lSdWxlRXJyb3IubWQKZG9jcy9Qb2xpY3lTdGF0dXMubWQKZG9jcy9Qb2xpY3lUYWcubWQKZG9jcy9Qb2xpY3lUeXBlLm1kCmRvY3MvUG9saWN5VmFsaWRhdGlvbi5tZApkb2NzL1BvbGljeVZlcmRpY3RBY3Rpb25FbnVtLm1kCmRvY3MvUG9saWN5VmVyZGljdEFjdGlvbkVudW0yLm1kCmRvY3MvUG9zaXRpb24ubWQKZG9jcy9Qb3N0YWxBZGRyZXNzLm1kCmRvY3MvUHJlU2NyZWVuaW5nLm1kCmRvY3MvUHJlZnVuZGVkU2V0dGxlbWVudC5tZApkb2NzL1ByZWZ1bmRlZFNldHRsZW1lbnRUeXBlLm1kCmRvY3MvUHJvZ3JhbUNhbGxDb25maWcubWQKZG9jcy9Qcm92aWRlci5tZApkb2NzL1Byb3ZpZGVyc0xpc3RSZXNwb25zZS5tZApkb2NzL1B1YmxpY0tleUluZm9ybWF0aW9uLm1kCmRvY3MvUHVibGlzaERyYWZ0UmVxdWVzdC5tZApkb2NzL1B1Ymxpc2hSZXN1bHQubWQKZG9jcy9RdW90ZS5tZApkb2NzL1F1b3RlRXhlY3V0aW9uUmVxdWVzdERldGFpbHMubWQKZG9jcy9RdW90ZUV4ZWN1dGlvblN0ZXAubWQKZG9jcy9RdW90ZUV4ZWN1dGlvblR5cGVEZXRhaWxzLm1kCmRvY3MvUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlcXVlc3REZXRhaWxzLm1kCmRvY3MvUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlc3BvbnNlRGV0YWlscy5tZApkb2NzL1F1b3RlRmFpbHVyZS5tZApkb2NzL1F1b3RlUHJvcGVydGllc0RldGFpbHMubWQKZG9jcy9RdW90ZVR5cGVFbnVtLm1kCmRvY3MvUXVvdGVzUmVzcG9uc2UubWQKZG9jcy9SZVF1b3RlRGV0YWlscy5tZApkb2NzL1JlUXVvdGVEZXRhaWxzUmVRdW90ZS5tZApkb2NzL1JlYWRBYmlGdW5jdGlvbi5tZApkb2NzL1JlYWRDYWxsRnVuY3Rpb25EdG8ubWQKZG9jcy9SZWFkQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb24ubWQKZG9jcy9SZWNpcGllbnRIYW5kbGUubWQKZG9jcy9SZWRlZW1GdW5kc1RvTGlua2VkRERBUmVzcG9uc2UubWQKZG9jcy9SZWdpc3Rlck5ld0Fzc2V0UmVxdWVzdC5tZApkb2NzL1JlaXNzdWVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0Lm1kCmRvY3MvUmVsYXRlZFJlcXVlc3QubWQKZG9jcy9SZWxhdGVkVHJhbnNhY3Rpb24ubWQKZG9jcy9SZW1vdmVDb2xsYXRlcmFsUmVxdWVzdEJvZHkubWQKZG9jcy9SZW1vdmVMYXllclplcm9BZGFwdGVyRmFpbGVkUmVzdWx0Lm1kCmRvY3MvUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0Lm1kCmRvY3MvUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXNwb25zZS5tZApkb2NzL1JlbW92ZUxheWVyWmVyb1BlZXJzUmVxdWVzdC5tZApkb2NzL1JlbW92ZUxheWVyWmVyb1BlZXJzUmVzcG9uc2UubWQKZG9jcy9SZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVxdWVzdC5tZApkb2NzL1JlbmFtZUNvbm5lY3RlZEFjY291bnRSZXNwb25zZS5tZApkb2NzL1JlbmFtZUNvc2lnbmVyLm1kCmRvY3MvUmVuYW1lVmF1bHRBY2NvdW50UmVzcG9uc2UubWQKZG9jcy9SZXNlbmRGYWlsZWROb3RpZmljYXRpb25zSm9iU3RhdHVzUmVzcG9uc2UubWQKZG9jcy9SZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVxdWVzdC5tZApkb2NzL1Jlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXNwb25zZS5tZApkb2NzL1Jlc2VuZE5vdGlmaWNhdGlvbnNCeVJlc291cmNlSWRSZXF1ZXN0Lm1kCmRvY3MvUmVzZW5kVHJhbnNhY3Rpb25XZWJob29rc1JlcXVlc3QubWQKZG9jcy9SZXNlbmRXZWJob29rc0J5VHJhbnNhY3Rpb25JZFJlc3BvbnNlLm1kCmRvY3MvUmVzZW5kV2ViaG9va3NSZXNwb25zZS5tZApkb2NzL1Jlc2V0RGV2aWNlQXBpLm1kCmRvY3MvUmVzcG9uZFRvQ29ubmVjdGlvblJlcXVlc3QubWQKZG9jcy9SZXRyeVJlcXVvdGVSZXF1ZXN0RGV0YWlscy5tZApkb2NzL1JldHJ5UmVxdW90ZVR5cGVFbnVtLm1kCmRvY3MvUmV3YXJkSW5mby5tZApkb2NzL1Jld2FyZHNJbmZvLm1kCmRvY3MvUm9sZURldGFpbHMubWQKZG9jcy9Sb2xlR3JhbnRlZS5tZApkb2NzL1NFUEFBZGRyZXNzLm1kCmRvY3MvU0VQQURlc3RpbmF0aW9uLm1kCmRvY3MvU09MQWNjb3VudC5tZApkb2NzL1NPTEFjY291bnRXaXRoVmFsdWUubWQKZG9jcy9TY29wZUl0ZW0ubWQKZG9jcy9TY3JlZW5pbmdBbGVydEV4cG9zdXJlVHlwZUVudW0ubWQKZG9jcy9TY3JlZW5pbmdBbWxBbGVydC5tZApkb2NzL1NjcmVlbmluZ0FtbE1hdGNoZWRSdWxlLm1kCmRvY3MvU2NyZWVuaW5nQW1sUmVzdWx0Lm1kCmRvY3MvU2NyZWVuaW5nQ29uZmlndXJhdGlvbnNSZXF1ZXN0Lm1kCmRvY3MvU2NyZWVuaW5nTWV0YWRhdGFDb25maWcubWQKZG9jcy9TY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb24ubWQKZG9jcy9TY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQubWQKZG9jcy9TY3JlZW5pbmdPcGVyYXRpb25GYWlsdXJlLm1kCmRvY3MvU2NyZWVuaW5nT3BlcmF0aW9uVHlwZS5tZApkb2NzL1NjcmVlbmluZ1BvbGljeVJlc3BvbnNlLm1kCmRvY3MvU2NyZWVuaW5nUHJvdmlkZXJSdWxlc0NvbmZpZ3VyYXRpb25SZXNwb25zZS5tZApkb2NzL1NjcmVlbmluZ1RSTGlua0Ftb3VudC5tZApkb2NzL1NjcmVlbmluZ1RSTGlua01pc3NpbmdUcm1EZWNpc2lvbi5tZApkb2NzL1NjcmVlbmluZ1RSTGlua01pc3NpbmdUcm1SdWxlLm1kCmRvY3MvU2NyZWVuaW5nVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUubWQKZG9jcy9TY3JlZW5pbmdUUkxpbmtQcmVzY3JlZW5pbmdSdWxlLm1kCmRvY3MvU2NyZWVuaW5nVFJMaW5rUnVsZUJhc2UubWQKZG9jcy9TY3JlZW5pbmdUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGUubWQKZG9jcy9TY3JlZW5pbmdUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZS5tZApkb2NzL1NjcmVlbmluZ1RyYXZlbFJ1bGVSZXN1bHQubWQKZG9jcy9TY3JlZW5pbmdVcGRhdGVDb25maWd1cmF0aW9ucy5tZApkb2NzL1NjcmVlbmluZ1ZhbGlkYXRpb25GYWlsdXJlLm1kCmRvY3MvU2NyZWVuaW5nVmVyZGljdC5tZApkb2NzL1NjcmVlbmluZ1ZlcmRpY3RFbnVtLm1kCmRvY3MvU2NyZWVuaW5nVmVyZGljdE1hdGNoZWRSdWxlLm1kCmRvY3MvU2VhcmNoTmV0d29ya0lkc1Jlc3BvbnNlLm1kCmRvY3MvU2VwYVBheW1lbnRJbmZvLm1kCmRvY3MvU2Vzc2lvbkRUTy5tZApkb2NzL1Nlc3Npb25NZXRhZGF0YS5tZApkb2NzL1NldEFkbWluUXVvcnVtVGhyZXNob2xkUmVxdWVzdC5tZApkb2NzL1NldEFkbWluUXVvcnVtVGhyZXNob2xkUmVzcG9uc2UubWQKZG9jcy9TZXRBc3NldFByaWNlUmVxdWVzdC5tZApkb2NzL1NldEF1dG9GdWVsUmVxdWVzdC5tZApkb2NzL1NldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXF1ZXN0Lm1kCmRvY3MvU2V0Q29uZmlybWF0aW9uc1RocmVzaG9sZFJlc3BvbnNlLm1kCmRvY3MvU2V0Q3VzdG9tZXJSZWZJZEZvckFkZHJlc3NSZXF1ZXN0Lm1kCmRvY3MvU2V0Q3VzdG9tZXJSZWZJZFJlcXVlc3QubWQKZG9jcy9TZXRMYXllclplcm9Edm5Db25maWdSZXF1ZXN0Lm1kCmRvY3MvU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UubWQKZG9jcy9TZXRMYXllclplcm9QZWVyc1JlcXVlc3QubWQKZG9jcy9TZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlLm1kCmRvY3MvU2V0TmV0d29ya0lkRGlzY292ZXJhYmlsaXR5UmVxdWVzdC5tZApkb2NzL1NldE5ldHdvcmtJZE5hbWVSZXF1ZXN0Lm1kCmRvY3MvU2V0TmV0d29ya0lkUmVzcG9uc2UubWQKZG9jcy9TZXROZXR3b3JrSWRSb3V0aW5nUG9saWN5UmVxdWVzdC5tZApkb2NzL1NldE90YVN0YXR1c1JlcXVlc3QubWQKZG9jcy9TZXRPdGFTdGF0dXNSZXNwb25zZS5tZApkb2NzL1NldE90YVN0YXR1c1Jlc3BvbnNlT25lT2YubWQKZG9jcy9TZXRSb3V0aW5nUG9saWN5UmVxdWVzdC5tZApkb2NzL1NldFJvdXRpbmdQb2xpY3lSZXNwb25zZS5tZApkb2NzL1NldHRsZW1lbnQubWQKZG9jcy9TZXR0bGVtZW50UmVxdWVzdEJvZHkubWQKZG9jcy9TZXR0bGVtZW50UmVzcG9uc2UubWQKZG9jcy9TZXR0bGVtZW50U291cmNlQWNjb3VudC5tZApkb2NzL1NldHRsZW1lbnRUeXBlRW51bS5tZApkb2NzL1NpZGUubWQKZG9jcy9TaWduZWRNZXNzYWdlLm1kCmRvY3MvU2lnbmVkTWVzc2FnZVNpZ25hdHVyZS5tZApkb2NzL1NpZ25pbmdLZXlEdG8ubWQKZG9jcy9TbWFydFRyYW5zZmVyQXBpLm1kCmRvY3MvU21hcnRUcmFuc2ZlckFwcHJvdmVUZXJtLm1kCmRvY3MvU21hcnRUcmFuc2ZlckJhZFJlcXVlc3RSZXNwb25zZS5tZApkb2NzL1NtYXJ0VHJhbnNmZXJDb2luU3RhdGlzdGljLm1kCmRvY3MvU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldC5tZApkb2NzL1NtYXJ0VHJhbnNmZXJDcmVhdGVUaWNrZXRUZXJtLm1kCmRvY3MvU21hcnRUcmFuc2ZlckZvcmJpZGRlblJlc3BvbnNlLm1kCmRvY3MvU21hcnRUcmFuc2ZlckZ1bmREdnBUaWNrZXQubWQKZG9jcy9TbWFydFRyYW5zZmVyRnVuZFRlcm0ubWQKZG9jcy9TbWFydFRyYW5zZmVyTWFudWFsbHlGdW5kVGVybS5tZApkb2NzL1NtYXJ0VHJhbnNmZXJOb3RGb3VuZFJlc3BvbnNlLm1kCmRvY3MvU21hcnRUcmFuc2ZlclNldFRpY2tldEV4cGlyYXRpb24ubWQKZG9jcy9TbWFydFRyYW5zZmVyU2V0VGlja2V0RXh0ZXJuYWxJZC5tZApkb2NzL1NtYXJ0VHJhbnNmZXJTZXRVc2VyR3JvdXBzLm1kCmRvY3MvU21hcnRUcmFuc2ZlclN0YXRpc3RpYy5tZApkb2NzL1NtYXJ0VHJhbnNmZXJTdGF0aXN0aWNJbmZsb3cubWQKZG9jcy9TbWFydFRyYW5zZmVyU3RhdGlzdGljT3V0Zmxvdy5tZApkb2NzL1NtYXJ0VHJhbnNmZXJTdWJtaXRUaWNrZXQubWQKZG9jcy9TbWFydFRyYW5zZmVyVGlja2V0Lm1kCmRvY3MvU21hcnRUcmFuc2ZlclRpY2tldEZpbHRlcmVkUmVzcG9uc2UubWQKZG9jcy9TbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UubWQKZG9jcy9TbWFydFRyYW5zZmVyVGlja2V0VGVybS5tZApkb2NzL1NtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2UubWQKZG9jcy9TbWFydFRyYW5zZmVyVXBkYXRlVGlja2V0VGVybS5tZApkb2NzL1NtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzLm1kCmRvY3MvU21hcnRUcmFuc2ZlclVzZXJHcm91cHNSZXNwb25zZS5tZApkb2NzL1NvbFBhcmFtZXRlci5tZApkb2NzL1NvbFBhcmFtZXRlcldpdGhWYWx1ZS5tZApkb2NzL1NvbGFuYUJsb2NrY2hhaW5EYXRhLm1kCmRvY3MvU29sYW5hQ29uZmlnLm1kCmRvY3MvU29sYW5hSW5zdHJ1Y3Rpb24ubWQKZG9jcy9Tb2xhbmFJbnN0cnVjdGlvbldpdGhWYWx1ZS5tZApkb2NzL1NvbGFuYVNpbXBsZUNyZWF0ZVBhcmFtcy5tZApkb2NzL1NvdXJjZUNvbmZpZy5tZApkb2NzL1NvdXJjZVRyYW5zZmVyUGVlclBhdGgubWQKZG9jcy9Tb3VyY2VUcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UubWQKZG9jcy9TcGFtT3duZXJzaGlwUmVzcG9uc2UubWQKZG9jcy9TcGFtVG9rZW5SZXNwb25zZS5tZApkb2NzL1NwZWlBZGRyZXNzLm1kCmRvY3MvU3BlaUFkdmFuY2VkUGF5bWVudEluZm8ubWQKZG9jcy9TcGVpQmFzaWNQYXltZW50SW5mby5tZApkb2NzL1NwZWlEZXN0aW5hdGlvbi5tZApkb2NzL1NwbGl0UmVxdWVzdC5tZApkb2NzL1NwbGl0UmVzcG9uc2UubWQKZG9jcy9TdEV0aEJsb2NrY2hhaW5EYXRhLm1kCmRvY3MvU3Rha2VSZXF1ZXN0Lm1kCmRvY3MvU3Rha2VSZXNwb25zZS5tZApkb2NzL1N0YWtpbmdBcGkubWQKZG9jcy9TdGFraW5nUG9zaXRpb25zUGFnaW5hdGVkUmVzcG9uc2UubWQKZG9jcy9TdGFraW5nUHJvdmlkZXIubWQKZG9jcy9TdGF0dXMubWQKZG9jcy9TdGVsbGFyUmlwcGxlQ3JlYXRlUGFyYW1zRHRvLm1kCmRvY3MvU3VwcG9ydGVkQmxvY2tDaGFpbnNSZXNwb25zZS5tZApkb2NzL1N1cHBvcnRlZEJsb2NrY2hhaW4ubWQKZG9jcy9Td2lmdEFkZHJlc3MubWQKZG9jcy9Td2lmdERlc3RpbmF0aW9uLm1kCmRvY3MvU3lzdGVtTWVzc2FnZUluZm8ubWQKZG9jcy9UUkxpbmtBUElQYWdlZFJlc3BvbnNlLm1kCmRvY3MvVFJMaW5rQW1vdW50Lm1kCmRvY3MvVFJMaW5rQW1vdW50Mi5tZApkb2NzL1RSTGlua0Ftb3VudFJhbmdlLm1kCmRvY3MvVFJMaW5rQXBpLm1kCmRvY3MvVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlcXVlc3QubWQKZG9jcy9UUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVzcG9uc2UubWQKZG9jcy9UUkxpbmtBc3Nlc3NtZW50RGVjaXNpb24ubWQKZG9jcy9UUkxpbmtBc3NldC5tZApkb2NzL1RSTGlua0Fzc2V0RGF0YS5tZApkb2NzL1RSTGlua0Fzc2V0Rm9ybWF0Lm1kCmRvY3MvVFJMaW5rQXNzZXRzTGlzdFBhZ2VkUmVzcG9uc2UubWQKZG9jcy9UUkxpbmtDYW5jZWxUcm1SZXF1ZXN0Lm1kCmRvY3MvVFJMaW5rQ29ubmVjdEludGVncmF0aW9uUmVxdWVzdC5tZApkb2NzL1RSTGlua0NyZWF0ZUN1c3RvbWVyUmVxdWVzdC5tZApkb2NzL1RSTGlua0NyZWF0ZUludGVncmF0aW9uUmVxdWVzdC5tZApkb2NzL1RSTGlua0NyZWF0ZVRybVJlcXVlc3QubWQKZG9jcy9UUkxpbmtDdXJyZW5jeS5tZApkb2NzL1RSTGlua0N1c3RvbWVySW50ZWdyYXRpb25SZXNwb25zZS5tZApkb2NzL1RSTGlua0N1c3RvbWVyUmVzcG9uc2UubWQKZG9jcy9UUkxpbmtEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgubWQKZG9jcy9UUkxpbmtEaXNjb3ZlcmFibGVTdGF0dXMubWQKZG9jcy9UUkxpbmtGaWF0VmFsdWUubWQKZG9jcy9UUkxpbmtHZW9ncmFwaGljQWRkcmVzc1JlcXVlc3QubWQKZG9jcy9UUkxpbmtHZXRTdXBwb3J0ZWRBc3NldFJlc3BvbnNlLm1kCmRvY3MvVFJMaW5rSXZtcy5tZApkb2NzL1RSTGlua0l2bXNSZXNwb25zZS5tZApkb2NzL1RSTGlua0p3a1B1YmxpY0tleS5tZApkb2NzL1RSTGlua01pc3NpbmdUcm1BY3Rpb24ubWQKZG9jcy9UUkxpbmtNaXNzaW5nVHJtQWN0aW9uMi5tZApkb2NzL1RSTGlua01pc3NpbmdUcm1BY3Rpb25FbnVtLm1kCmRvY3MvVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uLm1kCmRvY3MvVFJMaW5rTWlzc2luZ1RybVJ1bGUubWQKZG9jcy9UUkxpbmtNaXNzaW5nVHJtUnVsZTIubWQKZG9jcy9UUkxpbmtPbmVUaW1lQWRkcmVzcy5tZApkb2NzL1RSTGlua1BhZ2luZy5tZApkb2NzL1RSTGlua1BhcnRuZXJSZXNwb25zZS5tZApkb2NzL1RSTGlua1BvbGljeVJlc3BvbnNlLm1kCmRvY3MvVFJMaW5rUG9zdFNjcmVlbmluZ0FjdGlvbi5tZApkb2NzL1RSTGlua1Bvc3RTY3JlZW5pbmdSdWxlLm1kCmRvY3MvVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUyLm1kCmRvY3MvVFJMaW5rUHJlU2NyZWVuaW5nQWN0aW9uLm1kCmRvY3MvVFJMaW5rUHJlU2NyZWVuaW5nQWN0aW9uMi5tZApkb2NzL1RSTGlua1ByZVNjcmVlbmluZ0FjdGlvbkVudW0ubWQKZG9jcy9UUkxpbmtQcmVTY3JlZW5pbmdSdWxlLm1kCmRvY3MvVFJMaW5rUHJlU2NyZWVuaW5nUnVsZTIubWQKZG9jcy9UUkxpbmtQcm92aWRlckRhdGEubWQKZG9jcy9UUkxpbmtQcm92aWRlclJlc3VsdC5tZApkb2NzL1RSTGlua1Byb3ZpZGVyUmVzdWx0V2l0aFJ1bGUubWQKZG9jcy9UUkxpbmtQcm92aWRlclJlc3VsdFdpdGhSdWxlMi5tZApkb2NzL1RSTGlua1B1YmxpY0Fzc2V0SW5mby5tZApkb2NzL1RSTGlua1B1YmxpY0tleVJlc3BvbnNlLm1kCmRvY3MvVFJMaW5rUmVkaXJlY3RUcm1SZXF1ZXN0Lm1kCmRvY3MvVFJMaW5rUmVnaXN0cmF0aW9uUmVzdWx0Lm1kCmRvY3MvVFJMaW5rUmVnaXN0cmF0aW9uUmVzdWx0RnVsbFBheWxvYWQubWQKZG9jcy9UUkxpbmtSZWdpc3RyYXRpb25TdGF0dXMubWQKZG9jcy9UUkxpbmtSZWdpc3RyYXRpb25TdGF0dXNFbnVtLm1kCmRvY3MvVFJMaW5rUmVzdWx0Lm1kCmRvY3MvVFJMaW5rUmVzdWx0RnVsbFBheWxvYWQubWQKZG9jcy9UUkxpbmtSdWxlQmFzZS5tZApkb2NzL1RSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QubWQKZG9jcy9UUkxpbmtTZXREZXN0aW5hdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXNwb25zZS5tZApkb2NzL1RSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QubWQKZG9jcy9UUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXNwb25zZS5tZApkb2NzL1RSTGlua1NvdXJjZVRyYW5zZmVyUGVlclBhdGgubWQKZG9jcy9UUkxpbmtUZXN0Q29ubmVjdGlvblJlc3BvbnNlLm1kCmRvY3MvVFJMaW5rVGhyZXNob2xkcy5tZApkb2NzL1RSTGlua1RyYW5zYWN0aW9uRGlyZWN0aW9uLm1kCmRvY3MvVFJMaW5rVHJhbnNmZXJQZWVyUGF0aC5tZApkb2NzL1RSTGlua1RybURpcmVjdGlvbi5tZApkb2NzL1RSTGlua1RybUluZm9SZXNwb25zZS5tZApkb2NzL1RSTGlua1RybVNjcmVlbmluZ1N0YXR1cy5tZApkb2NzL1RSTGlua1RybVNjcmVlbmluZ1N0YXR1c0VudW0ubWQKZG9jcy9UUkxpbmtUcm1TdGF0dXMubWQKZG9jcy9UUkxpbmtUeG5JbmZvLm1kCmRvY3MvVFJMaW5rVXBkYXRlQ3VzdG9tZXJSZXF1ZXN0Lm1kCmRvY3MvVFJMaW5rVmFzcER0by5tZApkb2NzL1RSTGlua1Zhc3BHZW9ncmFwaGljQWRkcmVzcy5tZApkb2NzL1RSTGlua1Zhc3BMaXN0RHRvLm1kCmRvY3MvVFJMaW5rVmFzcE5hdGlvbmFsSWRlbnRpZmljYXRpb24ubWQKZG9jcy9UUkxpbmtWZXJkaWN0Lm1kCmRvY3MvVFJMaW5rVmVyZGljdEVudW0ubWQKZG9jcy9UYWcubWQKZG9jcy9UYWdBdHRhY2htZW50T3BlcmF0aW9uQWN0aW9uLm1kCmRvY3MvVGFnc0FwaS5tZApkb2NzL1RhZ3NQYWdlZFJlc3BvbnNlLm1kCmRvY3MvVGVtcGxhdGVzUGFnaW5hdGVkUmVzcG9uc2UubWQKZG9jcy9UaGlyZFBhcnR5Um91dGluZy5tZApkb2NzL1RpbWVQZXJpb2RDb25maWcubWQKZG9jcy9UaW1lUGVyaW9kTWF0Y2hUeXBlLm1kCmRvY3MvVG9Db2xsYXRlcmFsVHJhbnNhY3Rpb24ubWQKZG9jcy9Ub0V4Y2hhbmdlVHJhbnNhY3Rpb24ubWQKZG9jcy9Ub2tlbkNvbGxlY3Rpb25SZXNwb25zZS5tZApkb2NzL1Rva2VuQ29udHJhY3RTdW1tYXJ5UmVzcG9uc2UubWQKZG9jcy9Ub2tlbkluZm9Ob3RGb3VuZEVycm9yUmVzcG9uc2UubWQKZG9jcy9Ub2tlbkxpbmtEdG8ubWQKZG9jcy9Ub2tlbkxpbmtEdG9Ub2tlbk1ldGFkYXRhLm1kCmRvY3MvVG9rZW5MaW5rRXhpc3RzSHR0cEVycm9yLm1kCmRvY3MvVG9rZW5MaW5rTm90TXVsdGljaGFpbkNvbXBhdGlibGVIdHRwRXJyb3IubWQKZG9jcy9Ub2tlbkxpbmtSZXF1ZXN0RHRvLm1kCmRvY3MvVG9rZW5Pd25lcnNoaXBSZXNwb25zZS5tZApkb2NzL1Rva2VuT3duZXJzaGlwU3BhbVVwZGF0ZVBheWxvYWQubWQKZG9jcy9Ub2tlbk93bmVyc2hpcFN0YXR1c1VwZGF0ZVBheWxvYWQubWQKZG9jcy9Ub2tlblJlc3BvbnNlLm1kCmRvY3MvVG9rZW5pemF0aW9uQXBpLm1kCmRvY3MvVG9rZW5zUGFnaW5hdGVkUmVzcG9uc2UubWQKZG9jcy9Ub3RhbFN1cHBseUl0ZW1EdG8ubWQKZG9jcy9Ub3RhbFN1cHBseVBhZ2VkUmVzcG9uc2UubWQKZG9jcy9UcmFkaW5nQWNjb3VudFR5cGUubWQKZG9jcy9UcmFkaW5nQmV0YUFwaS5tZApkb2NzL1RyYWRpbmdFcnJvclNjaGVtYS5tZApkb2NzL1RyYWRpbmdQcm92aWRlci5tZApkb2NzL1RyYWRpbmdQcm92aWRlckRldGFpbHMubWQKZG9jcy9UcmFuc2FjdGlvbi5tZApkb2NzL1RyYW5zYWN0aW9uRGlyZWN0aW9uLm1kCmRvY3MvVHJhbnNhY3Rpb25GZWUubWQKZG9jcy9UcmFuc2FjdGlvbk9wZXJhdGlvbi5tZApkb2NzL1RyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5tZApkb2NzL1RyYW5zYWN0aW9uUmVjZWlwdFJlc3BvbnNlLm1kCmRvY3MvVHJhbnNhY3Rpb25SZXF1ZXN0Lm1kCmRvY3MvVHJhbnNhY3Rpb25SZXF1ZXN0QW1vdW50Lm1kCmRvY3MvVHJhbnNhY3Rpb25SZXF1ZXN0RGVzdGluYXRpb24ubWQKZG9jcy9UcmFuc2FjdGlvblJlcXVlc3RGZWUubWQKZG9jcy9UcmFuc2FjdGlvblJlcXVlc3RHYXNMaW1pdC5tZApkb2NzL1RyYW5zYWN0aW9uUmVxdWVzdEdhc1ByaWNlLm1kCmRvY3MvVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya0ZlZS5tZApkb2NzL1RyYW5zYWN0aW9uUmVxdWVzdE5ldHdvcmtTdGFraW5nLm1kCmRvY3MvVHJhbnNhY3Rpb25SZXF1ZXN0UHJpb3JpdHlGZWUubWQKZG9jcy9UcmFuc2FjdGlvblJlc3BvbnNlLm1kCmRvY3MvVHJhbnNhY3Rpb25SZXNwb25zZUNvbnRyYWN0Q2FsbERlY29kZWREYXRhLm1kCmRvY3MvVHJhbnNhY3Rpb25SZXNwb25zZURlc3RpbmF0aW9uLm1kCmRvY3MvVHJhbnNhY3Rpb25zQXBpLm1kCmRvY3MvVHJhbnNmZXJDb25maWdPcGVyYXRpb24ubWQKZG9jcy9UcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcy5tZApkb2NzL1RyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uLm1kCmRvY3MvVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQubWQKZG9jcy9UcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcy5tZApkb2NzL1RyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zLm1kCmRvY3MvVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlLm1kCmRvY3MvVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlRGF0YS5tZApkb2NzL1RyYW5zZmVyT3BlcmF0aW9uUHJldmlldy5tZApkb2NzL1RyYW5zZmVyT3BlcmF0aW9uUHJldmlld091dHB1dC5tZApkb2NzL1RyYW5zZmVyT3BlcmF0aW9uVHlwZS5tZApkb2NzL1RyYW5zZmVyUGVlclBhdGhTdWJUeXBlLm1kCmRvY3MvVHJhbnNmZXJQZWVyUGF0aFR5cGUubWQKZG9jcy9UcmFuc2ZlclBlZXJTdWJUeXBlRW51bS5tZApkb2NzL1RyYW5zZmVyUGVlclR5cGVFbnVtLm1kCmRvY3MvVHJhbnNmZXJSYWlsLm1kCmRvY3MvVHJhbnNmZXJSZWNlaXB0Lm1kCmRvY3MvVHJhbnNmZXJWYWxpZGF0aW9uRmFpbHVyZS5tZApkb2NzL1RyYXZlbFJ1bGVBY3Rpb25FbnVtLm1kCmRvY3MvVHJhdmVsUnVsZUFkZHJlc3MubWQKZG9jcy9UcmF2ZWxSdWxlQXBpLm1kCmRvY3MvVHJhdmVsUnVsZUNyZWF0ZVRyYW5zYWN0aW9uUmVxdWVzdC5tZApkb2NzL1RyYXZlbFJ1bGVEYXRlQW5kUGxhY2VPZkJpcnRoLm1kCmRvY3MvVHJhdmVsUnVsZURpcmVjdGlvbkVudW0ubWQKZG9jcy9UcmF2ZWxSdWxlR2VvZ3JhcGhpY0FkZHJlc3MubWQKZG9jcy9UcmF2ZWxSdWxlR2V0QWxsVkFTUHNSZXNwb25zZS5tZApkb2NzL1RyYXZlbFJ1bGVJc3N1ZXIubWQKZG9jcy9UcmF2ZWxSdWxlSXNzdWVycy5tZApkb2NzL1RyYXZlbFJ1bGVMZWdhbFBlcnNvbi5tZApkb2NzL1RyYXZlbFJ1bGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyLm1kCmRvY3MvVHJhdmVsUnVsZU1hdGNoZWRSdWxlLm1kCmRvY3MvVHJhdmVsUnVsZU5hdGlvbmFsSWRlbnRpZmljYXRpb24ubWQKZG9jcy9UcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyLm1kCmRvY3MvVHJhdmVsUnVsZU5hdHVyYWxQZXJzb24ubWQKZG9jcy9UcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyLm1kCmRvY3MvVHJhdmVsUnVsZU93bmVyc2hpcFByb29mLm1kCmRvY3MvVHJhdmVsUnVsZVBlcnNvbi5tZApkb2NzL1RyYXZlbFJ1bGVQaWlJVk1TLm1kCmRvY3MvVHJhdmVsUnVsZVBvbGljeVJ1bGVSZXNwb25zZS5tZApkb2NzL1RyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlLm1kCmRvY3MvVHJhdmVsUnVsZVJlc3VsdC5tZApkb2NzL1RyYXZlbFJ1bGVTdGF0dXNFbnVtLm1kCmRvY3MvVHJhdmVsUnVsZVRyYW5zYWN0aW9uQmxvY2tjaGFpbkluZm8ubWQKZG9jcy9UcmF2ZWxSdWxlVXBkYXRlVkFTUERldGFpbHMubWQKZG9jcy9UcmF2ZWxSdWxlVkFTUC5tZApkb2NzL1RyYXZlbFJ1bGVWYWxpZGF0ZURhdGVBbmRQbGFjZU9mQmlydGgubWQKZG9jcy9UcmF2ZWxSdWxlVmFsaWRhdGVGdWxsVHJhbnNhY3Rpb25SZXF1ZXN0Lm1kCmRvY3MvVHJhdmVsUnVsZVZhbGlkYXRlR2VvZ3JhcGhpY0FkZHJlc3MubWQKZG9jcy9UcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbi5tZApkb2NzL1RyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uTmFtZUlkZW50aWZpZXIubWQKZG9jcy9UcmF2ZWxSdWxlVmFsaWRhdGVOYXRpb25hbElkZW50aWZpY2F0aW9uLm1kCmRvY3MvVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbE5hbWVJZGVudGlmaWVyLm1kCmRvY3MvVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbi5tZApkb2NzL1RyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllci5tZApkb2NzL1RyYXZlbFJ1bGVWYWxpZGF0ZVBlcnNvbi5tZApkb2NzL1RyYXZlbFJ1bGVWYWxpZGF0ZVBpaUlWTVMubWQKZG9jcy9UcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlcXVlc3QubWQKZG9jcy9UcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlc3BvbnNlLm1kCmRvY3MvVHJhdmVsUnVsZVZhc3BGb3JWYXVsdC5tZApkb2NzL1RyYXZlbFJ1bGVWZXJkaWN0RW51bS5tZApkb2NzL1RydXN0UHJvb2ZPZkFkZHJlc3NDcmVhdGVSZXNwb25zZS5tZApkb2NzL1RydXN0UHJvb2ZPZkFkZHJlc3NSZXF1ZXN0Lm1kCmRvY3MvVHJ1c3RQcm9vZk9mQWRkcmVzc1Jlc3BvbnNlLm1kCmRvY3MvVHhMb2cubWQKZG9jcy9UeXBlZE1lc3NhZ2VUcmFuc2FjdGlvblN0YXR1c0VudW0ubWQKZG9jcy9VU1dpcmVBZGRyZXNzLm1kCmRvY3MvVVNXaXJlRGVzdGluYXRpb24ubWQKZG9jcy9VbmZyZWV6ZVRyYW5zYWN0aW9uUmVzcG9uc2UubWQKZG9jcy9Vbm1hbmFnZWRXYWxsZXQubWQKZG9jcy9VbnNwZW50SW5wdXQubWQKZG9jcy9VbnNwZW50SW5wdXRzUmVzcG9uc2UubWQKZG9jcy9VbnN0YWtlUmVxdWVzdC5tZApkb2NzL1VwZGF0ZUFzc2V0VXNlck1ldGFkYXRhUmVxdWVzdC5tZApkb2NzL1VwZGF0ZUNhbGxiYWNrSGFuZGxlclJlcXVlc3QubWQKZG9jcy9VcGRhdGVDYWxsYmFja0hhbmRsZXJSZXNwb25zZS5tZApkb2NzL1VwZGF0ZURyYWZ0UmVxdWVzdC5tZApkb2NzL1VwZGF0ZVRhZ1JlcXVlc3QubWQKZG9jcy9VcGRhdGVUb2tlbk93bmVyc2hpcFN0YXR1c0R0by5tZApkb2NzL1VwZGF0ZVZhdWx0QWNjb3VudEFzc2V0QWRkcmVzc1JlcXVlc3QubWQKZG9jcy9VcGRhdGVWYXVsdEFjY291bnRSZXF1ZXN0Lm1kCmRvY3MvVXBkYXRlV2ViaG9va1JlcXVlc3QubWQKZG9jcy9Vc1dpcmVQYXltZW50SW5mby5tZApkb2NzL1VzZXJHcm91cENyZWF0ZVJlcXVlc3QubWQKZG9jcy9Vc2VyR3JvdXBDcmVhdGVSZXNwb25zZS5tZApkb2NzL1VzZXJHcm91cFJlc3BvbnNlLm1kCmRvY3MvVXNlckdyb3VwVXBkYXRlUmVxdWVzdC5tZApkb2NzL1VzZXJHcm91cHNCZXRhQXBpLm1kCmRvY3MvVXNlclJlc3BvbnNlLm1kCmRvY3MvVXNlclJvbGUubWQKZG9jcy9Vc2VyU3RhdHVzLm1kCmRvY3MvVXNlclR5cGUubWQKZG9jcy9Vc2Vyc0FwaS5tZApkb2NzL1ZhbGlkYXRlQWRkcmVzc1Jlc3BvbnNlLm1kCmRvY3MvVmFsaWRhdGVMYXllclplcm9DaGFubmVsUmVzcG9uc2UubWQKZG9jcy9WYWxpZGF0aW9uS2V5RHRvLm1kCmRvY3MvVmFsaWRhdG9yLm1kCmRvY3MvVmF1bHRBY2NvdW50Lm1kCmRvY3MvVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudE9wZXJhdGlvbi5tZApkb2NzL1ZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRQZW5kaW5nT3BlcmF0aW9uLm1kCmRvY3MvVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudFJlamVjdGVkT3BlcmF0aW9uLm1kCmRvY3MvVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2UubWQKZG9jcy9WYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZVBhZ2luZy5tZApkb2NzL1ZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1JlcXVlc3QubWQKZG9jcy9WYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXNwb25zZS5tZApkb2NzL1ZhdWx0QWN0aW9uU3RhdHVzLm1kCmRvY3MvVmF1bHRBc3NldC5tZApkb2NzL1ZhdWx0V2FsbGV0QWRkcmVzcy5tZApkb2NzL1ZhdWx0c0FwaS5tZApkb2NzL1ZlbmRvckR0by5tZApkb2NzL1ZlcmRpY3RDb25maWcubWQKZG9jcy9WZXJzaW9uU3VtbWFyeS5tZApkb2NzL1dhbGxldEFzc2V0Lm1kCmRvY3MvV2FsbGV0QXNzZXRBZGRpdGlvbmFsSW5mby5tZApkb2NzL1dlYjNDb25uZWN0aW9uc0FwaS5tZApkb2NzL1dlYmhvb2subWQKZG9jcy9XZWJob29rRXZlbnQubWQKZG9jcy9XZWJob29rTWV0cmljLm1kCmRvY3MvV2ViaG9va1BhZ2luYXRlZFJlc3BvbnNlLm1kCmRvY3MvV2ViaG9va3NBcGkubWQKZG9jcy9XZWJob29rc1YyQXBpLm1kCmRvY3MvV2hpdGVsaXN0SXBBZGRyZXNzZXNBcGkubWQKZG9jcy9XaXRoZHJhd1JlcXVlc3QubWQKZG9jcy9Xb3JrZmxvd0NvbmZpZ1N0YXR1cy5tZApkb2NzL1dvcmtmbG93Q29uZmlndXJhdGlvbklkLm1kCmRvY3MvV29ya2Zsb3dFeGVjdXRpb25PcGVyYXRpb24ubWQKZG9jcy9Xb3Jrc3BhY2UubWQKZG9jcy9Xb3Jrc3BhY2VBcGkubWQKZG9jcy9Xb3Jrc3BhY2VTdGF0dXNCZXRhQXBpLm1kCmRvY3MvV3JpdGVBYmlGdW5jdGlvbi5tZApkb2NzL1dyaXRlQ2FsbEZ1bmN0aW9uRHRvLm1kCmRvY3MvV3JpdGVDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbi5tZApkb2NzL1dyaXRlQ2FsbEZ1bmN0aW9uUmVzcG9uc2VEdG8ubWQKZmlyZWJsb2Nrcy9fX2luaXRfXy5weQpmaXJlYmxvY2tzL2FkZGl0aW9uYWxfb3B0aW9ucy5weQpmaXJlYmxvY2tzL2FwaS9fX2luaXRfXy5weQpmaXJlYmxvY2tzL2FwaS9hcGlfdXNlcl9hcGkucHkKZmlyZWJsb2Nrcy9hcGkvYXVkaXRfbG9nc19hcGkucHkKZmlyZWJsb2Nrcy9hcGkvYmxvY2tjaGFpbnNfYXNzZXRzX2FwaS5weQpmaXJlYmxvY2tzL2FwaS9jb21wbGlhbmNlX2FwaS5weQpmaXJlYmxvY2tzL2FwaS9jb21wbGlhbmNlX3NjcmVlbmluZ19jb25maWd1cmF0aW9uX2FwaS5weQpmaXJlYmxvY2tzL2FwaS9jb25uZWN0ZWRfYWNjb3VudHNfYmV0YV9hcGkucHkKZmlyZWJsb2Nrcy9hcGkvY29uc29sZV91c2VyX2FwaS5weQpmaXJlYmxvY2tzL2FwaS9jb250cmFjdF9pbnRlcmFjdGlvbnNfYXBpLnB5CmZpcmVibG9ja3MvYXBpL2NvbnRyYWN0X3RlbXBsYXRlc19hcGkucHkKZmlyZWJsb2Nrcy9hcGkvY29udHJhY3RzX2FwaS5weQpmaXJlYmxvY2tzL2FwaS9jb3NpZ25lcnNfYmV0YV9hcGkucHkKZmlyZWJsb2Nrcy9hcGkvZGVwbG95ZWRfY29udHJhY3RzX2FwaS5weQpmaXJlYmxvY2tzL2FwaS9lbWJlZGRlZF93YWxsZXRzX2FwaS5weQpmaXJlYmxvY2tzL2FwaS9leGNoYW5nZV9hY2NvdW50c19hcGkucHkKZmlyZWJsb2Nrcy9hcGkvZXh0ZXJuYWxfd2FsbGV0c19hcGkucHkKZmlyZWJsb2Nrcy9hcGkvZmlhdF9hY2NvdW50c19hcGkucHkKZmlyZWJsb2Nrcy9hcGkvZ2FzX3N0YXRpb25zX2FwaS5weQpmaXJlYmxvY2tzL2FwaS9pbnRlcm5hbF93YWxsZXRzX2FwaS5weQpmaXJlYmxvY2tzL2FwaS9rZXlfbGlua19iZXRhX2FwaS5weQpmaXJlYmxvY2tzL2FwaS9rZXlzX2JldGFfYXBpLnB5CmZpcmVibG9ja3MvYXBpL25ldHdvcmtfY29ubmVjdGlvbnNfYXBpLnB5CmZpcmVibG9ja3MvYXBpL25mdHNfYXBpLnB5CmZpcmVibG9ja3MvYXBpL29mZl9leGNoYW5nZXNfYXBpLnB5CmZpcmVibG9ja3MvYXBpL29uY2hhaW5fZGF0YV9hcGkucHkKZmlyZWJsb2Nrcy9hcGkvb3RhX2JldGFfYXBpLnB5CmZpcmVibG9ja3MvYXBpL3BheW1lbnRzX3BheW91dF9hcGkucHkKZmlyZWJsb2Nrcy9hcGkvcG9saWN5X2VkaXRvcl9iZXRhX2FwaS5weQpmaXJlYmxvY2tzL2FwaS9wb2xpY3lfZWRpdG9yX3YyX2JldGFfYXBpLnB5CmZpcmVibG9ja3MvYXBpL3Jlc2V0X2RldmljZV9hcGkucHkKZmlyZWJsb2Nrcy9hcGkvc21hcnRfdHJhbnNmZXJfYXBpLnB5CmZpcmVibG9ja3MvYXBpL3N0YWtpbmdfYXBpLnB5CmZpcmVibG9ja3MvYXBpL3RhZ3NfYXBpLnB5CmZpcmVibG9ja3MvYXBpL3Rva2VuaXphdGlvbl9hcGkucHkKZmlyZWJsb2Nrcy9hcGkvdHJfbGlua19hcGkucHkKZmlyZWJsb2Nrcy9hcGkvdHJhZGluZ19iZXRhX2FwaS5weQpmaXJlYmxvY2tzL2FwaS90cmFuc2FjdGlvbnNfYXBpLnB5CmZpcmVibG9ja3MvYXBpL3RyYXZlbF9ydWxlX2FwaS5weQpmaXJlYmxvY2tzL2FwaS91c2VyX2dyb3Vwc19iZXRhX2FwaS5weQpmaXJlYmxvY2tzL2FwaS91c2Vyc19hcGkucHkKZmlyZWJsb2Nrcy9hcGkvdmF1bHRzX2FwaS5weQpmaXJlYmxvY2tzL2FwaS93ZWIzX2Nvbm5lY3Rpb25zX2FwaS5weQpmaXJlYmxvY2tzL2FwaS93ZWJob29rc19hcGkucHkKZmlyZWJsb2Nrcy9hcGkvd2ViaG9va3NfdjJfYXBpLnB5CmZpcmVibG9ja3MvYXBpL3doaXRlbGlzdF9pcF9hZGRyZXNzZXNfYXBpLnB5CmZpcmVibG9ja3MvYXBpL3dvcmtzcGFjZV9hcGkucHkKZmlyZWJsb2Nrcy9hcGkvd29ya3NwYWNlX3N0YXR1c19iZXRhX2FwaS5weQpmaXJlYmxvY2tzL2FwaV9jbGllbnQucHkKZmlyZWJsb2Nrcy9hcGlfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9iYXNlX3BhdGgucHkKZmlyZWJsb2Nrcy9iZWFyZXJfdG9rZW5fcHJvdmlkZXIucHkKZmlyZWJsb2Nrcy9jbGllbnQucHkKZmlyZWJsb2Nrcy9jbGllbnRfY29uZmlndXJhdGlvbi5weQpmaXJlYmxvY2tzL2NvbmZpZ3VyYXRpb24ucHkKZmlyZWJsb2Nrcy9leGNlcHRpb25zLnB5CmZpcmVibG9ja3MvbW9kZWxzL19faW5pdF9fLnB5CmZpcmVibG9ja3MvbW9kZWxzL2FiYV9wYXltZW50X2luZm8ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYWJpX2Z1bmN0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL2FjY2Vzc19yZWdpc3RyeV9hZGRyZXNzX2l0ZW0ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYWNjZXNzX3JlZ2lzdHJ5X2N1cnJlbnRfc3RhdGVfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYWNjZXNzX3JlZ2lzdHJ5X3N1bW1hcnlfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYWNjZXNzX3R5cGUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYWNjb3VudC5weQpmaXJlYmxvY2tzL21vZGVscy9hY2NvdW50X2FjY2Vzcy5weQpmaXJlYmxvY2tzL21vZGVscy9hY2NvdW50X2Jhc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYWNjb3VudF9iYXNlZF9hY2Nlc3NfcHJvdmlkZXIucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYWNjb3VudF9iYXNlZF9hY2Nlc3NfcHJvdmlkZXJfaW5mby5weQpmaXJlYmxvY2tzL21vZGVscy9hY2NvdW50X2Jhc2VkX3Byb3ZpZGVyX2RldGFpbHMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYWNjb3VudF9jb25maWcucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYWNjb3VudF9ob2xkZXJfZGV0YWlscy5weQpmaXJlYmxvY2tzL21vZGVscy9hY2NvdW50X2lkZW50aWZpZXIucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYWNjb3VudF9yZWZlcmVuY2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYWNjb3VudF90eXBlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2FjY291bnRfdHlwZTIucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYWNoX2FjY291bnRfdHlwZS5weQpmaXJlYmxvY2tzL21vZGVscy9hY2hfYWRkcmVzcy5weQpmaXJlYmxvY2tzL21vZGVscy9hY2hfZGVzdGluYXRpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYWNoX3BheW1lbnRfaW5mby5weQpmaXJlYmxvY2tzL21vZGVscy9hZGFwdGVyX3Byb2Nlc3NpbmdfcmVzdWx0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2FkZF9hYmlfcmVxdWVzdF9kdG8ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYWRkX2Fzc2V0X3RvX2V4dGVybmFsX3dhbGxldF9yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2FkZF9jb2xsYXRlcmFsX3JlcXVlc3RfYm9keS5weQpmaXJlYmxvY2tzL21vZGVscy9hZGRfY29udHJhY3RfYXNzZXRfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9hZGRfY29zaWduZXJfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9hZGRfY29zaWduZXJfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYWRkX2V4Y2hhbmdlX2FjY291bnRfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9hZGRfZXhjaGFuZ2VfYWNjb3VudF9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9hZGRpdGlvbmFsX2luZm8ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYWRkaXRpb25hbF9pbmZvX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYWRkaXRpb25hbF9pbmZvX3JlcXVlc3RfYWRkaXRpb25hbF9pbmZvLnB5CmZpcmVibG9ja3MvbW9kZWxzL2FkZHJlc3NfYmFsYW5jZV9pdGVtX2R0by5weQpmaXJlYmxvY2tzL21vZGVscy9hZGRyZXNzX2JhbGFuY2VfcGFnZWRfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYWRkcmVzc19ub3RfYXZhaWxhYmxlX2Vycm9yLnB5CmZpcmVibG9ja3MvbW9kZWxzL2FkZHJlc3NfcmVnaXN0cnlfZXJyb3IucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYWRkcmVzc19yZWdpc3RyeV9sZWdhbF9lbnRpdHkucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYWxlcnRfZXhwb3N1cmVfdHlwZV9lbnVtLnB5CmZpcmVibG9ja3MvbW9kZWxzL2FsZXJ0X2xldmVsX2VudW0ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYW1sX2FsZXJ0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2FtbF9tYXRjaGVkX3J1bGUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYW1sX3JlZ2lzdHJhdGlvbl9yZXN1bHQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYW1sX3JlZ2lzdHJhdGlvbl9yZXN1bHRfZnVsbF9wYXlsb2FkLnB5CmZpcmVibG9ja3MvbW9kZWxzL2FtbF9yZXN1bHQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYW1sX3NjcmVlbmluZ19yZXN1bHQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYW1sX3N0YXR1c19lbnVtLnB5CmZpcmVibG9ja3MvbW9kZWxzL2FtbF92ZXJkaWN0X21hbnVhbF9yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2FtbF92ZXJkaWN0X21hbnVhbF9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9hbW91bnRfYW5kX2NoYWluX2Rlc2NyaXB0b3IucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYW1vdW50X2NvbmZpZy5weQpmaXJlYmxvY2tzL21vZGVscy9hbW91bnRfY29uZmlnX2N1cnJlbmN5LnB5CmZpcmVibG9ja3MvbW9kZWxzL2Ftb3VudF9pbmZvLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Ftb3VudF9vdmVyX3RpbWVfY29uZmlnLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Ftb3VudF9yYW5nZS5weQpmaXJlYmxvY2tzL21vZGVscy9hbW91bnRfcmFuZ2VfbWluX21heC5weQpmaXJlYmxvY2tzL21vZGVscy9hbW91bnRfcmFuZ2VfbWluX21heDIucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYXBpX2tleS5weQpmaXJlYmxvY2tzL21vZGVscy9hcGlfa2V5c19wYWdpbmF0ZWRfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYXBpX3VzZXIucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYXBwcm92YWxfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9hcHByb3ZlcnNfY29uZmlnLnB5CmZpcmVibG9ja3MvbW9kZWxzL2FwcHJvdmVyc19jb25maWdfYXBwcm92YWxfZ3JvdXBzX2lubmVyLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Fzc2V0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2Fzc2V0X2FscmVhZHlfZXhpc3RfaHR0cF9lcnJvci5weQpmaXJlYmxvY2tzL21vZGVscy9hc3NldF9hbW91bnQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYXNzZXRfYmFkX3JlcXVlc3RfZXJyb3JfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYXNzZXRfY2xhc3MucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYXNzZXRfY29uZmlnLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Fzc2V0X2NvbmZsaWN0X2Vycm9yX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Fzc2V0X2RldGFpbHNfbWV0YWRhdGEucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYXNzZXRfZGV0YWlsc19vbmNoYWluLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Fzc2V0X2ZlYXR1cmUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYXNzZXRfZm9yYmlkZGVuX2Vycm9yX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Fzc2V0X2ludGVybmFsX3NlcnZlcl9lcnJvcl9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9hc3NldF9tZWRpYS5weQpmaXJlYmxvY2tzL21vZGVscy9hc3NldF9tZWRpYV9hdHRyaWJ1dGVzLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Fzc2V0X21ldGFkYXRhLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Fzc2V0X21ldGFkYXRhX2R0by5weQpmaXJlYmxvY2tzL21vZGVscy9hc3NldF9tZXRhZGF0YV9yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2Fzc2V0X25vdF9mb3VuZF9lcnJvcl9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9hc3NldF9ub3RlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Fzc2V0X25vdGVfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9hc3NldF9vbmNoYWluLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Fzc2V0X3ByaWNlX2ZvcmJpZGRlbl9lcnJvcl9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9hc3NldF9wcmljZV9ub3RfZm91bmRfZXJyb3JfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYXNzZXRfcHJpY2VfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYXNzZXRfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYXNzZXRfc2NvcGUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYXNzZXRfdHlwZV9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9hc3NldF90eXBlc19jb25maWdfaW5uZXIucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYXNzZXRfd2FsbGV0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2F1ZGl0X2xvZ19kYXRhLnB5CmZpcmVibG9ja3MvbW9kZWxzL2F1ZGl0b3JfZGF0YS5weQpmaXJlYmxvY2tzL21vZGVscy9hdXRob3JpemF0aW9uX2dyb3Vwcy5weQpmaXJlYmxvY2tzL21vZGVscy9hdXRob3JpemF0aW9uX2luZm8ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYmFsYW5jZV9oaXN0b3J5X2l0ZW1fZHRvLnB5CmZpcmVibG9ja3MvbW9kZWxzL2JhbGFuY2VfaGlzdG9yeV9wYWdlZF9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9iYW5rX2FkZHJlc3MucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYmFzZV9wcm92aWRlci5weQpmaXJlYmxvY2tzL21vZGVscy9iYXNpY19hZGRyZXNzX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYmxvY2tfaW5mby5weQpmaXJlYmxvY2tzL21vZGVscy9ibG9ja2NoYWluX2FkZHJlc3MucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYmxvY2tjaGFpbl9kZXN0aW5hdGlvbi5weQpmaXJlYmxvY2tzL21vZGVscy9ibG9ja2NoYWluX2V4cGxvcmVyLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Jsb2NrY2hhaW5fbWVkaWEucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYmxvY2tjaGFpbl9tZXRhZGF0YS5weQpmaXJlYmxvY2tzL21vZGVscy9ibG9ja2NoYWluX25vdF9mb3VuZF9lcnJvcl9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9ibG9ja2NoYWluX29uY2hhaW4ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYmxvY2tjaGFpbl9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9ibG9ja2NoYWluX3RyYW5zZmVyLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Jwc19mZWUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvYnVzaW5lc3NfZW50aXR5X3R5cGVfZW51bS5weQpmaXJlYmxvY2tzL21vZGVscy9idXNpbmVzc19pZGVudGlmaWNhdGlvbi5weQpmaXJlYmxvY2tzL21vZGVscy9jYWxsYmFja19oYW5kbGVyLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NhbGxiYWNrX2hhbmRsZXJfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9jYW5jZWxfdHJhbnNhY3Rpb25fcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY2hhaW5fZGVzY3JpcHRvci5weQpmaXJlYmxvY2tzL21vZGVscy9jaGFpbl9pbmZvX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NoYW5uZWxfZHZuX2NvbmZpZ193aXRoX2NvbmZpcm1hdGlvbnMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY2hhbm5lbF9kdm5fY29uZmlnX3dpdGhfY29uZmlybWF0aW9uc19yZWNlaXZlX2NvbmZpZy5weQpmaXJlYmxvY2tzL21vZGVscy9jaGFubmVsX2R2bl9jb25maWdfd2l0aF9jb25maXJtYXRpb25zX3NlbmRfY29uZmlnLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NoYXBzX2FkZHJlc3MucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY2hhcHNfZGVzdGluYXRpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY2hhcHNfcGF5bWVudF9pbmZvLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NsYWltX3Jld2FyZHNfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9jb2xsZWN0aW9uX2J1cm5fcmVxdWVzdF9kdG8ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29sbGVjdGlvbl9idXJuX3Jlc3BvbnNlX2R0by5weQpmaXJlYmxvY2tzL21vZGVscy9jb2xsZWN0aW9uX2RlcGxveV9yZXF1ZXN0X2R0by5weQpmaXJlYmxvY2tzL21vZGVscy9jb2xsZWN0aW9uX2xpbmtfZHRvLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NvbGxlY3Rpb25fbWV0YWRhdGFfZHRvLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NvbGxlY3Rpb25fbWludF9yZXF1ZXN0X2R0by5weQpmaXJlYmxvY2tzL21vZGVscy9jb2xsZWN0aW9uX21pbnRfcmVzcG9uc2VfZHRvLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NvbGxlY3Rpb25fb3duZXJzaGlwX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NvbGxlY3Rpb25fdG9rZW5fbWV0YWRhdGFfYXR0cmlidXRlX2R0by5weQpmaXJlYmxvY2tzL21vZGVscy9jb2xsZWN0aW9uX3Rva2VuX21ldGFkYXRhX2R0by5weQpmaXJlYmxvY2tzL21vZGVscy9jb2xsZWN0aW9uX3R5cGUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29tbWl0dGVkX3F1b3RlX2VudW0ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29tbWl0dGVkX3F1b3RlX3R5cGUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29tcGxpYW5jZV9yZXN1bHRfZnVsbF9wYXlsb2FkLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NvbXBsaWFuY2VfcmVzdWx0X3N0YXR1c2VzX2VudW0ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29tcGxpYW5jZV9yZXN1bHRzLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NvbXBsaWFuY2Vfc2NyZWVuaW5nX3Jlc3VsdC5weQpmaXJlYmxvY2tzL21vZGVscy9jb21wbGlhbmNlX3NjcmVlbmluZ19yZXN1bHRfZnVsbF9wYXlsb2FkLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NvbmZpZ19jaGFuZ2VfcmVxdWVzdF9zdGF0dXMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29uZmlnX2NvbnZlcnNpb25fb3BlcmF0aW9uX3NuYXBzaG90LnB5CmZpcmVibG9ja3MvbW9kZWxzL2NvbmZpZ19kaXNidXJzZW1lbnRfb3BlcmF0aW9uX3NuYXBzaG90LnB5CmZpcmVibG9ja3MvbW9kZWxzL2NvbmZpZ19vcGVyYXRpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29uZmlnX29wZXJhdGlvbl9zbmFwc2hvdC5weQpmaXJlYmxvY2tzL21vZGVscy9jb25maWdfb3BlcmF0aW9uX3N0YXR1cy5weQpmaXJlYmxvY2tzL21vZGVscy9jb25maWdfdHJhbnNmZXJfb3BlcmF0aW9uX3NuYXBzaG90LnB5CmZpcmVibG9ja3MvbW9kZWxzL2Nvbm5lY3RlZF9hY2NvdW50LnB5CmZpcmVibG9ja3MvbW9kZWxzL2Nvbm5lY3RlZF9hY2NvdW50X2FwcHJvdmFsX3N0YXR1cy5weQpmaXJlYmxvY2tzL21vZGVscy9jb25uZWN0ZWRfYWNjb3VudF9hc3NldF90eXBlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Nvbm5lY3RlZF9hY2NvdW50X2JhbGFuY2VzLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Nvbm5lY3RlZF9hY2NvdW50X2JhbGFuY2VzX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Nvbm5lY3RlZF9hY2NvdW50X2NhcGFiaWxpdHkucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29ubmVjdGVkX2FjY291bnRfZXJyb3JfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29ubmVjdGVkX2FjY291bnRfbWFuaWZlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29ubmVjdGVkX2FjY291bnRfcmF0ZV9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9jb25uZWN0ZWRfYWNjb3VudF90b3RhbF9iYWxhbmNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Nvbm5lY3RlZF9hY2NvdW50X3RyYWRpbmdfcGFpci5weQpmaXJlYmxvY2tzL21vZGVscy9jb25uZWN0ZWRfYWNjb3VudF90cmFkaW5nX3BhaXJfc3VwcG9ydGVkX3R5cGUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29ubmVjdGVkX2FjY291bnRfdHJhZGluZ19wYWlyc19yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9jb25uZWN0ZWRfYWNjb3VudHNfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29ubmVjdGVkX3NpbmdsZV9hY2NvdW50LnB5CmZpcmVibG9ja3MvbW9kZWxzL2Nvbm5lY3RlZF9zaW5nbGVfYWNjb3VudF9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9jb25zb2xlX3VzZXIucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29udHJhY3RfYWJpX3Jlc3BvbnNlX2R0by5weQpmaXJlYmxvY2tzL21vZGVscy9jb250cmFjdF9hYmlfcmVzcG9uc2VfZHRvX2FiaV9pbm5lci5weQpmaXJlYmxvY2tzL21vZGVscy9jb250cmFjdF9hZGRyZXNzX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NvbnRyYWN0X2F0dHJpYnV0ZXMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29udHJhY3RfZGF0YV9kZWNvZGVfZGF0YV90eXBlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NvbnRyYWN0X2RhdGFfZGVjb2RlX2Vycm9yLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NvbnRyYWN0X2RhdGFfZGVjb2RlX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29udHJhY3RfZGF0YV9kZWNvZGVfcmVxdWVzdF9kYXRhLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NvbnRyYWN0X2RhdGFfZGVjb2RlX3Jlc3BvbnNlX3BhcmFtcy5weQpmaXJlYmxvY2tzL21vZGVscy9jb250cmFjdF9kYXRhX2RlY29kZWRfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29udHJhY3RfZGF0YV9sb2dfZGF0YV9wYXJhbS5weQpmaXJlYmxvY2tzL21vZGVscy9jb250cmFjdF9kZXBsb3lfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9jb250cmFjdF9kZXBsb3lfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29udHJhY3RfZG9jLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NvbnRyYWN0X21ldGFkYXRhX2R0by5weQpmaXJlYmxvY2tzL21vZGVscy9jb250cmFjdF9tZXRob2RfY29uZmlnLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NvbnRyYWN0X21ldGhvZF9wYXR0ZXJuLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NvbnRyYWN0X3RlbXBsYXRlX2R0by5weQpmaXJlYmxvY2tzL21vZGVscy9jb250cmFjdF91cGxvYWRfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9jb250cmFjdF93aXRoX2FiaV9kdG8ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29udmVyc2lvbl9jb25maWdfb3BlcmF0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NvbnZlcnNpb25fb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29udmVyc2lvbl9vcGVyYXRpb25fZXhlY3V0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29udmVyc2lvbl9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtcy5weQpmaXJlYmxvY2tzL21vZGVscy9jb252ZXJzaW9uX29wZXJhdGlvbl9leGVjdXRpb25fcGFyYW1zX2V4ZWN1dGlvbl9wYXJhbXMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29udmVyc2lvbl9vcGVyYXRpb25fZmFpbHVyZS5weQpmaXJlYmxvY2tzL21vZGVscy9jb252ZXJzaW9uX29wZXJhdGlvbl9wcmV2aWV3LnB5CmZpcmVibG9ja3MvbW9kZWxzL2NvbnZlcnNpb25fb3BlcmF0aW9uX3ByZXZpZXdfb3V0cHV0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2NvbnZlcnNpb25fb3BlcmF0aW9uX3R5cGUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29udmVyc2lvbl92YWxpZGF0aW9uX2ZhaWx1cmUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY29udmVydF9hc3NldHNfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9jb252ZXJ0X2Fzc2V0c19yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9jb3NpZ25lci5weQpmaXJlYmxvY2tzL21vZGVscy9jb3NpZ25lcnNfcGFnaW5hdGVkX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NyZWF0ZV9hZGRyZXNzX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY3JlYXRlX2FkZHJlc3NfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY3JlYXRlX2FwaV91c2VyLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NyZWF0ZV9hc3NldHNfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9jcmVhdGVfY29uZmlnX29wZXJhdGlvbl9yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2NyZWF0ZV9jb25uZWN0aW9uX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY3JlYXRlX2Nvbm5lY3Rpb25fcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY3JlYXRlX2NvbnNvbGVfdXNlci5weQpmaXJlYmxvY2tzL21vZGVscy9jcmVhdGVfY29udHJhY3RfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9jcmVhdGVfY29udmVyc2lvbl9jb25maWdfb3BlcmF0aW9uX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY3JlYXRlX2Rpc2J1cnNlbWVudF9jb25maWdfb3BlcmF0aW9uX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY3JlYXRlX2ludGVybmFsX3RyYW5zZmVyX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY3JlYXRlX2ludGVybmFsX3dhbGxldF9hc3NldF9yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2NyZWF0ZV9tdWx0aWNoYWluX3Rva2VuX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY3JlYXRlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdF9jcmVhdGVfcGFyYW1zLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NyZWF0ZV9tdWx0aXBsZV9hY2NvdW50c19yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2NyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3Nlc19qb2Jfc3RhdHVzLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3Nlc19yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2NyZWF0ZV9tdWx0aXBsZV92YXVsdF9hY2NvdW50c19qb2Jfc3RhdHVzLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NyZWF0ZV9uY3dfY29ubmVjdGlvbl9yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2NyZWF0ZV9uZXR3b3JrX2lkX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY3JlYXRlX29yZGVyX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY3JlYXRlX3BheW91dF9yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2NyZWF0ZV9xdW90ZS5weQpmaXJlYmxvY2tzL21vZGVscy9jcmVhdGVfcXVvdGVfc2NvcGVfaW5uZXIucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY3JlYXRlX3NpZ25pbmdfa2V5X2R0by5weQpmaXJlYmxvY2tzL21vZGVscy9jcmVhdGVfc2lnbmluZ19rZXlfZHRvX3Byb29mX29mX293bmVyc2hpcC5weQpmaXJlYmxvY2tzL21vZGVscy9jcmVhdGVfdGFnX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY3JlYXRlX3Rva2VuX3JlcXVlc3RfZHRvLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NyZWF0ZV90b2tlbl9yZXF1ZXN0X2R0b19jcmVhdGVfcGFyYW1zLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NyZWF0ZV90cmFuc2FjdGlvbl9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9jcmVhdGVfdHJhbnNmZXJfY29uZmlnX29wZXJhdGlvbl9yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2NyZWF0ZV91c2VyX2dyb3VwX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2NyZWF0ZV92YWxpZGF0aW9uX2tleV9kdG8ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY3JlYXRlX3ZhbGlkYXRpb25fa2V5X3Jlc3BvbnNlX2R0by5weQpmaXJlYmxvY2tzL21vZGVscy9jcmVhdGVfdmF1bHRfYWNjb3VudF9jb25uZWN0aW9uX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY3JlYXRlX3ZhdWx0X2FjY291bnRfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9jcmVhdGVfdmF1bHRfYXNzZXRfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY3JlYXRlX3dhbGxldF9yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2NyZWF0ZV93ZWJob29rX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvY3JlYXRlX3dvcmtmbG93X2V4ZWN1dGlvbl9yZXF1ZXN0X3BhcmFtc19pbm5lci5weQpmaXJlYmxvY2tzL21vZGVscy9jdXN0b21fcm91dGluZ19kZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2RfYXBwX2FkZHJlc3NfY29uZmlnLnB5CmZpcmVibG9ja3MvbW9kZWxzL2RlY29kZWRfbG9nLnB5CmZpcmVibG9ja3MvbW9kZWxzL2RlZmF1bHRfbmV0d29ya19yb3V0aW5nX2Rlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZGVsZWdhdGlvbi5weQpmaXJlYmxvY2tzL21vZGVscy9kZWxlZ2F0aW9uX2Jsb2NrY2hhaW5fcG9zaXRpb25faW5mby5weQpmaXJlYmxvY2tzL21vZGVscy9kZWxlZ2F0aW9uX3N1bW1hcnkucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZGVsZXRlX25ldHdvcmtfY29ubmVjdGlvbl9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9kZWxldGVfbmV0d29ya19pZF9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9kZXBsb3lfbGF5ZXJfemVyb19hZGFwdGVyc19yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2RlcGxveWFibGVfYWRkcmVzc19yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9kZXBsb3llZF9jb250cmFjdF9ub3RfZm91bmRfZXJyb3IucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZGVwbG95ZWRfY29udHJhY3RfcmVzcG9uc2VfZHRvLnB5CmZpcmVibG9ja3MvbW9kZWxzL2RlcGxveWVkX2NvbnRyYWN0c19wYWdpbmF0ZWRfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZGVwb3NpdF9mdW5kc19mcm9tX2xpbmtlZF9kZGFfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZGVyaXZhdGlvbl9wYXRoX2NvbmZpZy5weQpmaXJlYmxvY2tzL21vZGVscy9kZXNpZ25hdGVkX3NpZ25lcnNfY29uZmlnLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Rlc3RpbmF0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Rlc3RpbmF0aW9uX2NvbmZpZy5weQpmaXJlYmxvY2tzL21vZGVscy9kZXN0aW5hdGlvbl90cmFuc2Zlcl9wZWVyX3BhdGgucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZGVzdGluYXRpb25fdHJhbnNmZXJfcGVlcl9wYXRoX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2RpcmVjdF9hY2Nlc3MucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZGlyZWN0X2FjY2Vzc19wcm92aWRlci5weQpmaXJlYmxvY2tzL21vZGVscy9kaXJlY3RfYWNjZXNzX3Byb3ZpZGVyX2luZm8ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZGlyZWN0X3Byb3ZpZGVyX2RldGFpbHMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZGlzYnVyc2VtZW50X2Ftb3VudF9pbnN0cnVjdGlvbi5weQpmaXJlYmxvY2tzL21vZGVscy9kaXNidXJzZW1lbnRfY29uZmlnX29wZXJhdGlvbi5weQpmaXJlYmxvY2tzL21vZGVscy9kaXNidXJzZW1lbnRfaW5zdHJ1Y3Rpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZGlzYnVyc2VtZW50X2luc3RydWN0aW9uX291dHB1dC5weQpmaXJlYmxvY2tzL21vZGVscy9kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZGlzYnVyc2VtZW50X29wZXJhdGlvbl9leGVjdXRpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZGlzYnVyc2VtZW50X29wZXJhdGlvbl9leGVjdXRpb25fb3V0cHV0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2Rpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtcy5weQpmaXJlYmxvY2tzL21vZGVscy9kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXNfZXhlY3V0aW9uX3BhcmFtcy5weQpmaXJlYmxvY2tzL21vZGVscy9kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2lucHV0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2Rpc2J1cnNlbWVudF9vcGVyYXRpb25fcHJldmlldy5weQpmaXJlYmxvY2tzL21vZGVscy9kaXNidXJzZW1lbnRfb3BlcmF0aW9uX3ByZXZpZXdfb3V0cHV0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2Rpc2J1cnNlbWVudF9vcGVyYXRpb25fcHJldmlld19vdXRwdXRfaW5zdHJ1Y3Rpb25fc2V0X2lubmVyLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Rpc2J1cnNlbWVudF9vcGVyYXRpb25fdHlwZS5weQpmaXJlYmxvY2tzL21vZGVscy9kaXNidXJzZW1lbnRfcGVyY2VudGFnZV9pbnN0cnVjdGlvbi5weQpmaXJlYmxvY2tzL21vZGVscy9kaXNidXJzZW1lbnRfdmFsaWRhdGlvbl9mYWlsdXJlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Rpc3BhdGNoX3BheW91dF9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9kcmFmdF9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9kcmFmdF9yZXZpZXdfYW5kX3ZhbGlkYXRpb25fcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZHJvcF90cmFuc2FjdGlvbl9yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2Ryb3BfdHJhbnNhY3Rpb25fcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZHZuX2NvbmZpZy5weQpmaXJlYmxvY2tzL21vZGVscy9kdm5fY29uZmlnX3dpdGhfY29uZmlybWF0aW9ucy5weQpmaXJlYmxvY2tzL21vZGVscy9kdnBfc2V0dGxlbWVudC5weQpmaXJlYmxvY2tzL21vZGVscy9kdnBfc2V0dGxlbWVudF90eXBlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2VkaXRfZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbl9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9lbWJlZGRlZF93YWxsZXQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZW1iZWRkZWRfd2FsbGV0X2FjY291bnQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZW1iZWRkZWRfd2FsbGV0X2FkZHJlc3NfZGV0YWlscy5weQpmaXJlYmxvY2tzL21vZGVscy9lbWJlZGRlZF93YWxsZXRfYWxnb3JpdG0ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X2JhbGFuY2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2VtYmVkZGVkX3dhbGxldF9hc3NldF9yZXdhcmRfaW5mby5weQpmaXJlYmxvY2tzL21vZGVscy9lbWJlZGRlZF93YWxsZXRfZGV2aWNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2VtYmVkZGVkX3dhbGxldF9kZXZpY2Vfa2V5X3NldHVwX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2VtYmVkZGVkX3dhbGxldF9kZXZpY2Vfa2V5X3NldHVwX3Jlc3BvbnNlX3NldHVwX3N0YXR1c19pbm5lci5weQpmaXJlYmxvY2tzL21vZGVscy9lbWJlZGRlZF93YWxsZXRfbGF0ZXN0X2JhY2t1cF9rZXkucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZW1iZWRkZWRfd2FsbGV0X2xhdGVzdF9iYWNrdXBfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZW1iZWRkZWRfd2FsbGV0X3BhZ2luYXRlZF9hZGRyZXNzZXNfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZW1iZWRkZWRfd2FsbGV0X3BhZ2luYXRlZF9hc3NldHNfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZW1iZWRkZWRfd2FsbGV0X3BhZ2luYXRlZF9kZXZpY2VzX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2VtYmVkZGVkX3dhbGxldF9wYWdpbmF0ZWRfd2FsbGV0c19yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9lbWJlZGRlZF93YWxsZXRfcmVxdWlyZWRfYWxnb3JpdGhtcy5weQpmaXJlYmxvY2tzL21vZGVscy9lbWJlZGRlZF93YWxsZXRfc2V0X3VwX3N0YXR1cy5weQpmaXJlYmxvY2tzL21vZGVscy9lbWJlZGRlZF93YWxsZXRfc2V0dXBfc3RhdHVzX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2VuYWJsZV9kZXZpY2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZW5hYmxlX3dhbGxldC5weQpmaXJlYmxvY2tzL21vZGVscy9lcnJvcl9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9lcnJvcl9yZXNwb25zZV9lcnJvci5weQpmaXJlYmxvY2tzL21vZGVscy9lcnJvcl9zY2hlbWEucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZXN0aW1hdGVkX2ZlZV9kZXRhaWxzLnB5CmZpcmVibG9ja3MvbW9kZWxzL2VzdGltYXRlZF9uZXR3b3JrX2ZlZV9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9lc3RpbWF0ZWRfdHJhbnNhY3Rpb25fZmVlX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2V0aGVyZXVtX2Jsb2NrY2hhaW5fZGF0YS5weQpmaXJlYmxvY2tzL21vZGVscy9ldXJvcGVhbl9zZXBhX2FkZHJlc3MucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZXVyb3BlYW5fc2VwYV9kZXN0aW5hdGlvbi5weQpmaXJlYmxvY2tzL21vZGVscy9ldm1fdG9rZW5fY3JlYXRlX3BhcmFtc19kdG8ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZXhjaGFuZ2VfYWNjb3VudC5weQpmaXJlYmxvY2tzL21vZGVscy9leGNoYW5nZV9hc3NldC5weQpmaXJlYmxvY2tzL21vZGVscy9leGNoYW5nZV9zZXR0bGVtZW50X3RyYW5zYWN0aW9uc19yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9leGNoYW5nZV90cmFkaW5nX2FjY291bnQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZXhjaGFuZ2VfdHlwZS5weQpmaXJlYmxvY2tzL21vZGVscy9leGVjdXRpb25fY29udmVyc2lvbl9vcGVyYXRpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZXhlY3V0aW9uX2Rpc2J1cnNlbWVudF9vcGVyYXRpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZXhlY3V0aW9uX29wZXJhdGlvbl9zdGF0dXMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZXhlY3V0aW9uX3JlcXVlc3RfYmFzZV9kZXRhaWxzLnB5CmZpcmVibG9ja3MvbW9kZWxzL2V4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZXhlY3V0aW9uX3JlcXVlc3RfZGV0YWlsc190eXBlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2V4ZWN1dGlvbl9yZXNwb25zZV9iYXNlX2RldGFpbHMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZXhlY3V0aW9uX3Jlc3BvbnNlX2RldGFpbHMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZXhlY3V0aW9uX3NjcmVlbmluZ19vcGVyYXRpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZXhlY3V0aW9uX3N0ZXBfZXJyb3IucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZXhlY3V0aW9uX3N0ZXBfc3RhdHVzX2VudW0ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZXhlY3V0aW9uX3N0ZXBfdHlwZS5weQpmaXJlYmxvY2tzL21vZGVscy9leGVjdXRpb25fdHJhbnNmZXJfb3BlcmF0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL2V4dGVybmFsX2FjY291bnQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZXh0ZXJuYWxfYWNjb3VudF9sb2NhbF9iYW5rX2FmcmljYS5weQpmaXJlYmxvY2tzL21vZGVscy9leHRlcm5hbF9hY2NvdW50X21vYmlsZV9tb25leS5weQpmaXJlYmxvY2tzL21vZGVscy9leHRlcm5hbF9hY2NvdW50X21vYmlsZV9tb25leV9wcm92aWRlci5weQpmaXJlYmxvY2tzL21vZGVscy9leHRlcm5hbF9hY2NvdW50X21vYmlsZV9tb25leV90eXBlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2V4dGVybmFsX2FjY291bnRfc2VuZGVyX2luZm9ybWF0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL2V4dGVybmFsX2FjY291bnRfdHlwZS5weQpmaXJlYmxvY2tzL21vZGVscy9leHRlcm5hbF93YWxsZXRfYXNzZXQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZXh0cmFfcGFyYW1ldGVycy5weQpmaXJlYmxvY2tzL21vZGVscy9mYWlsdXJlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2ZhaWx1cmVfcmVhc29uLnB5CmZpcmVibG9ja3MvbW9kZWxzL2ZlZS5weQpmaXJlYmxvY2tzL21vZGVscy9mZWVfYnJlYWtkb3duLnB5CmZpcmVibG9ja3MvbW9kZWxzL2ZlZV9pbmZvLnB5CmZpcmVibG9ja3MvbW9kZWxzL2ZlZV9sZXZlbC5weQpmaXJlYmxvY2tzL21vZGVscy9mZWVfcGF5ZXJfaW5mby5weQpmaXJlYmxvY2tzL21vZGVscy9mZWVfcHJvcGVydGllc19kZXRhaWxzLnB5CmZpcmVibG9ja3MvbW9kZWxzL2ZlZV90eXBlX2VudW0ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZmV0Y2hfYWJpX3JlcXVlc3RfZHRvLnB5CmZpcmVibG9ja3MvbW9kZWxzL2ZpYXRfYWNjb3VudC5weQpmaXJlYmxvY2tzL21vZGVscy9maWF0X2FjY291bnRfdHlwZS5weQpmaXJlYmxvY2tzL21vZGVscy9maWF0X2Fzc2V0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2ZpYXRfZGVzdGluYXRpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZmlhdF9wYXltZW50X21ldGFkYXRhLnB5CmZpcmVibG9ja3MvbW9kZWxzL2ZpYXRfdHJhbnNmZXIucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZml4ZWRfYW1vdW50X3R5cGVfZW51bS5weQpmaXJlYmxvY2tzL21vZGVscy9maXhlZF9mZWUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZnJlZXplX3RyYW5zYWN0aW9uX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2Z1bmN0aW9uX2RvYy5weQpmaXJlYmxvY2tzL21vZGVscy9mdW5kcy5weQpmaXJlYmxvY2tzL21vZGVscy9nYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL2dhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25fcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZ2FzX3N0YXRpb25fcHJvcGVydGllc19yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9nYXNzbGVzc19zdGFuZGFyZF9jb25maWd1cmF0aW9ucy5weQpmaXJlYmxvY2tzL21vZGVscy9nYXNzbGVzc19zdGFuZGFyZF9jb25maWd1cmF0aW9uc19nYXNsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zX3ZhbHVlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2dldF9hcGlfdXNlcnNfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZ2V0X2F1ZGl0X2xvZ3NfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZ2V0X2Nvbm5lY3Rpb25zX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2dldF9jb25zb2xlX3VzZXJzX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2dldF9kZXBsb3lhYmxlX2FkZHJlc3NfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9nZXRfZXhjaGFuZ2VfYWNjb3VudHNfY3JlZGVudGlhbHNfcHVibGljX2tleV9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9nZXRfZmlsdGVyX3BhcmFtZXRlci5weQpmaXJlYmxvY2tzL21vZGVscy9nZXRfbGF5ZXJfemVyb19kdm5fY29uZmlnX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2dldF9sYXllcl96ZXJvX3BlZXJzX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2dldF9saW5rZWRfY29sbGVjdGlvbnNfcGFnaW5hdGVkX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2dldF9tYXhfYmlwX2luZGV4X3VzZWRfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZ2V0X21heF9zcGVuZGFibGVfYW1vdW50X3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2dldF9tcGNfa2V5c19yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9nZXRfbmZ0c19yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9nZXRfb3JkZXJzX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2dldF9vdGFfc3RhdHVzX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2dldF9vd25lcnNoaXBfdG9rZW5zX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2dldF9wYWdlZF9leGNoYW5nZV9hY2NvdW50c19yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9nZXRfcGFnZWRfZXhjaGFuZ2VfYWNjb3VudHNfcmVzcG9uc2VfcGFnaW5nLnB5CmZpcmVibG9ja3MvbW9kZWxzL2dldF9zaWduaW5nX2tleV9yZXNwb25zZV9kdG8ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvZ2V0X3RyYW5zYWN0aW9uX29wZXJhdGlvbi5weQpmaXJlYmxvY2tzL21vZGVscy9nZXRfdmFsaWRhdGlvbl9rZXlfcmVzcG9uc2VfZHRvLnB5CmZpcmVibG9ja3MvbW9kZWxzL2dldF93aGl0ZWxpc3RfaXBfYWRkcmVzc2VzX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2dldF93b3Jrc3BhY2Vfc3RhdHVzX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2h0dHBfY29udHJhY3RfZG9lc19ub3RfZXhpc3RfZXJyb3IucHkKZmlyZWJsb2Nrcy9tb2RlbHMvaWJhbl9hZGRyZXNzLnB5CmZpcmVibG9ja3MvbW9kZWxzL2liYW5fZGVzdGluYXRpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvaWJhbl9wYXltZW50X2luZm8ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvaWRlbnRpZmljYXRpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvaWRsX3R5cGUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvaW5kaWNhdGl2ZV9xdW90ZV9lbnVtLnB5CmZpcmVibG9ja3MvbW9kZWxzL2luZGljYXRpdmVfcXVvdGVfdHlwZS5weQpmaXJlYmxvY2tzL21vZGVscy9pbml0aWF0b3JfY29uZmlnLnB5CmZpcmVibG9ja3MvbW9kZWxzL2luaXRpYXRvcl9jb25maWdfcGF0dGVybi5weQpmaXJlYmxvY2tzL21vZGVscy9pbnN0cnVjdGlvbl9hbW91bnQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvaW50ZXJhY19hZGRyZXNzLnB5CmZpcmVibG9ja3MvbW9kZWxzL2ludGVyYWNfZGVzdGluYXRpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvaW50ZXJhY19wYXltZW50X2luZm8ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvaW50ZXJuYWxfcmVmZXJlbmNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2ludGVybmFsX3RyYW5zZmVyX2FkZHJlc3MucHkKZmlyZWJsb2Nrcy9tb2RlbHMvaW50ZXJuYWxfdHJhbnNmZXJfZGVzdGluYXRpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvaW50ZXJuYWxfdHJhbnNmZXJfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvaW52YWxpZF9wYXJhbWF0ZXJfdmFsdWVfZXJyb3IucHkKZmlyZWJsb2Nrcy9tb2RlbHMvam9iX2NyZWF0ZWQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbGF5ZXJfemVyb19hZGFwdGVyX2NyZWF0ZV9wYXJhbXMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbGJ0X3BheW1lbnRfaW5mby5weQpmaXJlYmxvY2tzL21vZGVscy9sZWFuX2FiaV9mdW5jdGlvbi5weQpmaXJlYmxvY2tzL21vZGVscy9sZWFuX2NvbnRyYWN0X2R0by5weQpmaXJlYmxvY2tzL21vZGVscy9sZWFuX2RlcGxveWVkX2NvbnRyYWN0X3Jlc3BvbnNlX2R0by5weQpmaXJlYmxvY2tzL21vZGVscy9sZWdhY3lfYW1vdW50X2FnZ3JlZ2F0aW9uX3RpbWVfcGVyaW9kX21ldGhvZC5weQpmaXJlYmxvY2tzL21vZGVscy9sZWdhY3lfZHJhZnRfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbGVnYWN5X2RyYWZ0X3Jldmlld19hbmRfdmFsaWRhdGlvbl9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9sZWdhY3lfcG9saWN5X2FuZF92YWxpZGF0aW9uX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2xlZ2FjeV9wb2xpY3lfY2hlY2tfcmVzdWx0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2xlZ2FjeV9wb2xpY3lfbWV0YWRhdGEucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbGVnYWN5X3BvbGljeV9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9sZWdhY3lfcG9saWN5X3J1bGUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbGVnYWN5X3BvbGljeV9ydWxlX2Ftb3VudC5weQpmaXJlYmxvY2tzL21vZGVscy9sZWdhY3lfcG9saWN5X3J1bGVfYW1vdW50X2FnZ3JlZ2F0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL2xlZ2FjeV9wb2xpY3lfcnVsZV9hdXRob3JpemF0aW9uX2dyb3Vwcy5weQpmaXJlYmxvY2tzL21vZGVscy9sZWdhY3lfcG9saWN5X3J1bGVfYXV0aG9yaXphdGlvbl9ncm91cHNfZ3JvdXBzX2lubmVyLnB5CmZpcmVibG9ja3MvbW9kZWxzL2xlZ2FjeV9wb2xpY3lfcnVsZV9jaGVja19yZXN1bHQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbGVnYWN5X3BvbGljeV9ydWxlX2Rlc2lnbmF0ZWRfc2lnbmVycy5weQpmaXJlYmxvY2tzL21vZGVscy9sZWdhY3lfcG9saWN5X3J1bGVfZHN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2xlZ2FjeV9wb2xpY3lfcnVsZV9lcnJvci5weQpmaXJlYmxvY2tzL21vZGVscy9sZWdhY3lfcG9saWN5X3J1bGVfb3BlcmF0b3JzLnB5CmZpcmVibG9ja3MvbW9kZWxzL2xlZ2FjeV9wb2xpY3lfcnVsZV9yYXdfbWVzc2FnZV9zaWduaW5nLnB5CmZpcmVibG9ja3MvbW9kZWxzL2xlZ2FjeV9wb2xpY3lfcnVsZV9yYXdfbWVzc2FnZV9zaWduaW5nX2Rlcml2YXRpb25fcGF0aC5weQpmaXJlYmxvY2tzL21vZGVscy9sZWdhY3lfcG9saWN5X3J1bGVfc3JjLnB5CmZpcmVibG9ja3MvbW9kZWxzL2xlZ2FjeV9wb2xpY3lfcnVsZXMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbGVnYWN5X3BvbGljeV9zcmNfb3JfZGVzdF9zdWJfdHlwZS5weQpmaXJlYmxvY2tzL21vZGVscy9sZWdhY3lfcG9saWN5X3NyY19vcl9kZXN0X3R5cGUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbGVnYWN5X3BvbGljeV9zdGF0dXMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbGVnYWN5X3BvbGljeV92YWxpZGF0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL2xlZ2FjeV9wdWJsaXNoX2RyYWZ0X3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbGVnYWN5X3B1Ymxpc2hfcmVzdWx0LnB5CmZpcmVibG9ja3MvbW9kZWxzL2xlZ2FjeV9zcmNfb3JfZGVzdF9hdHRyaWJ1dGVzX2lubmVyLnB5CmZpcmVibG9ja3MvbW9kZWxzL2xpbmtlZF90b2tlbnNfY291bnQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbGlzdF9hc3NldHNfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbGlzdF9ibG9ja2NoYWluc19yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9saXN0X293bmVkX2NvbGxlY3Rpb25zX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2xpc3Rfb3duZWRfdG9rZW5zX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL2xvY2FsX2JhbmtfdHJhbnNmZXJfYWZyaWNhX2FkZHJlc3MucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbG9jYWxfYmFua190cmFuc2Zlcl9hZnJpY2FfZGVzdGluYXRpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbWFuaWZlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbWFuaWZlc3RfYmFzZS5weQpmaXJlYmxvY2tzL21vZGVscy9tYW5pZmVzdF9vcmRlci5weQpmaXJlYmxvY2tzL21vZGVscy9tYW5pZmVzdF9vcmRlcl9pbmZvLnB5CmZpcmVibG9ja3MvbW9kZWxzL21hbmlmZXN0X3F1b3RlLnB5CmZpcmVibG9ja3MvbW9kZWxzL21hbmlmZXN0X3F1b3RlX2luZm8ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbWFya2V0X2V4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbWFya2V0X2V4ZWN1dGlvbl9yZXNwb25zZV9kZXRhaWxzLnB5CmZpcmVibG9ja3MvbW9kZWxzL21hcmtldF9yZXF1b3RlX3JlcXVlc3RfZGV0YWlscy5weQpmaXJlYmxvY2tzL21vZGVscy9tYXJrZXRfcmVxdW90ZV90eXBlX2VudW0ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbWFya2V0X3R5cGVfZGV0YWlscy5weQpmaXJlYmxvY2tzL21vZGVscy9tYXJrZXRfdHlwZV9lbnVtLnB5CmZpcmVibG9ja3MvbW9kZWxzL21lZGlhX2VudGl0eV9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9tZXJnZV9zdGFrZV9hY2NvdW50c19yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL21lcmdlX3N0YWtlX2FjY291bnRzX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL21vYmlsZV9tb25leV9hZGRyZXNzLnB5CmZpcmVibG9ja3MvbW9kZWxzL21vYmlsZV9tb25leV9kZXN0aW5hdGlvbi5weQpmaXJlYmxvY2tzL21vZGVscy9tb2RpZnlfc2lnbmluZ19rZXlfYWdlbnRfaWRfZHRvLnB5CmZpcmVibG9ja3MvbW9kZWxzL21vZGlmeV9zaWduaW5nX2tleV9kdG8ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbW9kaWZ5X3ZhbGlkYXRpb25fa2V5X2R0by5weQpmaXJlYmxvY2tzL21vZGVscy9tb21vX3BheW1lbnRfaW5mby5weQpmaXJlYmxvY2tzL21vZGVscy9tcGNfa2V5LnB5CmZpcmVibG9ja3MvbW9kZWxzL211bHRpY2hhaW5fZGVwbG95bWVudF9tZXRhZGF0YS5weQpmaXJlYmxvY2tzL21vZGVscy9uZXR3b3JrX2NoYW5uZWwucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbmV0d29ya19jb25uZWN0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL25ldHdvcmtfY29ubmVjdGlvbl9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9uZXR3b3JrX2Nvbm5lY3Rpb25fcm91dGluZ19wb2xpY3lfdmFsdWUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbmV0d29ya19jb25uZWN0aW9uX3N0YXR1cy5weQpmaXJlYmxvY2tzL21vZGVscy9uZXR3b3JrX2ZlZS5weQpmaXJlYmxvY2tzL21vZGVscy9uZXR3b3JrX2lkLnB5CmZpcmVibG9ja3MvbW9kZWxzL25ldHdvcmtfaWRfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbmV0d29ya19pZF9yb3V0aW5nX3BvbGljeV92YWx1ZS5weQpmaXJlYmxvY2tzL21vZGVscy9uZXR3b3JrX3JlY29yZC5weQpmaXJlYmxvY2tzL21vZGVscy9uZXdfYWRkcmVzcy5weQpmaXJlYmxvY2tzL21vZGVscy9ub25lX25ldHdvcmtfcm91dGluZ19kZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL25vdF9mb3VuZF9leGNlcHRpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbm90aWZpY2F0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL25vdGlmaWNhdGlvbl9hdHRlbXB0LnB5CmZpcmVibG9ja3MvbW9kZWxzL25vdGlmaWNhdGlvbl9hdHRlbXB0c19wYWdpbmF0ZWRfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvbm90aWZpY2F0aW9uX3BhZ2luYXRlZF9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9ub3RpZmljYXRpb25fc3RhdHVzLnB5CmZpcmVibG9ja3MvbW9kZWxzL25vdGlmaWNhdGlvbl93aXRoX2RhdGEucHkKZmlyZWJsb2Nrcy9tb2RlbHMvb25jaGFpbl90cmFuc2FjdGlvbi5weQpmaXJlYmxvY2tzL21vZGVscy9vbmNoYWluX3RyYW5zYWN0aW9uc19wYWdlZF9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9vbmVfdGltZV9hZGRyZXNzLnB5CmZpcmVibG9ja3MvbW9kZWxzL29uZV90aW1lX2FkZHJlc3NfYWNjb3VudC5weQpmaXJlYmxvY2tzL21vZGVscy9vbmVfdGltZV9hZGRyZXNzX3BlZXJfdHlwZS5weQpmaXJlYmxvY2tzL21vZGVscy9vbmVfdGltZV9hZGRyZXNzX3JlZmVyZW5jZS5weQpmaXJlYmxvY2tzL21vZGVscy9vcGVyYXRpb25fZXhlY3V0aW9uX2ZhaWx1cmUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvb3JkZXJfZGV0YWlscy5weQpmaXJlYmxvY2tzL21vZGVscy9vcmRlcl9leGVjdXRpb25fc3RlcC5weQpmaXJlYmxvY2tzL21vZGVscy9vcmRlcl9zaWRlLnB5CmZpcmVibG9ja3MvbW9kZWxzL29yZGVyX3N0YXR1cy5weQpmaXJlYmxvY2tzL21vZGVscy9vcmRlcl9zdW1tYXJ5LnB5CmZpcmVibG9ja3MvbW9kZWxzL3BhZ2luYXRlZF9hZGRyZXNzX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3BhZ2luYXRlZF9hZGRyZXNzX3Jlc3BvbnNlX3BhZ2luZy5weQpmaXJlYmxvY2tzL21vZGVscy9wYWdpbmF0ZWRfYXNzZXRfd2FsbGV0X3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3BhZ2luYXRlZF9hc3NldF93YWxsZXRfcmVzcG9uc2VfcGFnaW5nLnB5CmZpcmVibG9ja3MvbW9kZWxzL3BhZ2luYXRlZF9hc3NldHNfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcGFnaW5nLnB5CmZpcmVibG9ja3MvbW9kZWxzL3BhaXJfYXBpX2tleV9yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3BhaXJfYXBpX2tleV9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9wYXJhbWV0ZXIucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcGFyYW1ldGVyX3dpdGhfdmFsdWUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcGFydGljaXBhbnRfcmVsYXRpb25zaGlwX3R5cGUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcGFydGljaXBhbnRzX2lkZW50aWZpY2F0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3BheWVlX2FjY291bnQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcGF5ZWVfYWNjb3VudF9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9wYXllZV9hY2NvdW50X3R5cGUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcGF5aWRfYWRkcmVzcy5weQpmaXJlYmxvY2tzL21vZGVscy9wYXlpZF9kZXN0aW5hdGlvbi5weQpmaXJlYmxvY2tzL21vZGVscy9wYXlpZF9wYXltZW50X2luZm8ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcGF5bWVudF9hY2NvdW50LnB5CmZpcmVibG9ja3MvbW9kZWxzL3BheW1lbnRfYWNjb3VudF9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9wYXltZW50X2FjY291bnRfdHlwZS5weQpmaXJlYmxvY2tzL21vZGVscy9wYXltZW50X2luc3RydWN0aW9ucy5weQpmaXJlYmxvY2tzL21vZGVscy9wYXltZW50X2luc3RydWN0aW9uc19vbmVfb2YucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcGF5bWVudF9yZWRpcmVjdC5weQpmaXJlYmxvY2tzL21vZGVscy9wYXlvdXRfaW5pdF9tZXRob2QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcGF5b3V0X2luc3RydWN0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3BheW91dF9pbnN0cnVjdGlvbl9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9wYXlvdXRfaW5zdHJ1Y3Rpb25fc3RhdGUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcGF5b3V0X3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3BheW91dF9zdGF0ZS5weQpmaXJlYmxvY2tzL21vZGVscy9wYXlvdXRfc3RhdHVzLnB5CmZpcmVibG9ja3MvbW9kZWxzL3BlZXJfYWRhcHRlcl9pbmZvLnB5CmZpcmVibG9ja3MvbW9kZWxzL3BlZXJfdHlwZS5weQpmaXJlYmxvY2tzL21vZGVscy9wZXJzb25hbF9lbnRpdHlfdHlwZV9lbnVtLnB5CmZpcmVibG9ja3MvbW9kZWxzL3BlcnNvbmFsX2lkZW50aWZpY2F0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3BlcnNvbmFsX2lkZW50aWZpY2F0aW9uX2Z1bGxfbmFtZS5weQpmaXJlYmxvY2tzL21vZGVscy9wZXJzb25hbF9pZGVudGlmaWNhdGlvbl90eXBlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3BpeF9hZGRyZXNzLnB5CmZpcmVibG9ja3MvbW9kZWxzL3BpeF9kZXN0aW5hdGlvbi5weQpmaXJlYmxvY2tzL21vZGVscy9waXhfcGF5bWVudF9pbmZvLnB5CmZpcmVibG9ja3MvbW9kZWxzL3BsYXRmb3JtX2FjY291bnQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcGxhdGZvcm1fcGVlcl90eXBlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3BsYXllcnMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcG9saWN5X2FuZF92YWxpZGF0aW9uX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3BvbGljeV9jaGVja19yZXN1bHQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcG9saWN5X2N1cnJlbmN5LnB5CmZpcmVibG9ja3MvbW9kZWxzL3BvbGljeV9tZXRhZGF0YS5weQpmaXJlYmxvY2tzL21vZGVscy9wb2xpY3lfb3BlcmF0b3IucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcG9saWN5X3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3BvbGljeV9ydWxlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3BvbGljeV9ydWxlX2NoZWNrX3Jlc3VsdC5weQpmaXJlYmxvY2tzL21vZGVscy9wb2xpY3lfcnVsZV9lcnJvci5weQpmaXJlYmxvY2tzL21vZGVscy9wb2xpY3lfc3RhdHVzLnB5CmZpcmVibG9ja3MvbW9kZWxzL3BvbGljeV90YWcucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcG9saWN5X3R5cGUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcG9saWN5X3ZhbGlkYXRpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcG9saWN5X3ZlcmRpY3RfYWN0aW9uX2VudW0ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcG9saWN5X3ZlcmRpY3RfYWN0aW9uX2VudW0yLnB5CmZpcmVibG9ja3MvbW9kZWxzL3Bvc2l0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3Bvc3RhbF9hZGRyZXNzLnB5CmZpcmVibG9ja3MvbW9kZWxzL3ByZV9zY3JlZW5pbmcucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcHJlZnVuZGVkX3NldHRsZW1lbnQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcHJlZnVuZGVkX3NldHRsZW1lbnRfdHlwZS5weQpmaXJlYmxvY2tzL21vZGVscy9wcm9ncmFtX2NhbGxfY29uZmlnLnB5CmZpcmVibG9ja3MvbW9kZWxzL3Byb3ZpZGVyLnB5CmZpcmVibG9ja3MvbW9kZWxzL3Byb3ZpZGVyc19saXN0X3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3B1YmxpY19rZXlfaW5mb3JtYXRpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcHVibGlzaF9kcmFmdF9yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3B1Ymxpc2hfcmVzdWx0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3F1b3RlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3F1b3RlX2V4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcXVvdGVfZXhlY3V0aW9uX3N0ZXAucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcXVvdGVfZXhlY3V0aW9uX3R5cGVfZGV0YWlscy5weQpmaXJlYmxvY2tzL21vZGVscy9xdW90ZV9leGVjdXRpb25fd2l0aF9yZXF1b3RlX3JlcXVlc3RfZGV0YWlscy5weQpmaXJlYmxvY2tzL21vZGVscy9xdW90ZV9leGVjdXRpb25fd2l0aF9yZXF1b3RlX3Jlc3BvbnNlX2RldGFpbHMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcXVvdGVfZmFpbHVyZS5weQpmaXJlYmxvY2tzL21vZGVscy9xdW90ZV9wcm9wZXJ0aWVzX2RldGFpbHMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcXVvdGVfdHlwZV9lbnVtLnB5CmZpcmVibG9ja3MvbW9kZWxzL3F1b3Rlc19yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9yZV9xdW90ZV9kZXRhaWxzLnB5CmZpcmVibG9ja3MvbW9kZWxzL3JlX3F1b3RlX2RldGFpbHNfcmVfcXVvdGUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcmVhZF9hYmlfZnVuY3Rpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcmVhZF9jYWxsX2Z1bmN0aW9uX2R0by5weQpmaXJlYmxvY2tzL21vZGVscy9yZWFkX2NhbGxfZnVuY3Rpb25fZHRvX2FiaV9mdW5jdGlvbi5weQpmaXJlYmxvY2tzL21vZGVscy9yZWNpcGllbnRfaGFuZGxlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3JlZGVlbV9mdW5kc190b19saW5rZWRfZGRhX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3JlZ2lzdGVyX25ld19hc3NldF9yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3JlaXNzdWVfbXVsdGljaGFpbl90b2tlbl9yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3JlbGF0ZWRfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9yZWxhdGVkX3RyYW5zYWN0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3JlbW92ZV9jb2xsYXRlcmFsX3JlcXVlc3RfYm9keS5weQpmaXJlYmxvY2tzL21vZGVscy9yZW1vdmVfbGF5ZXJfemVyb19hZGFwdGVyX2ZhaWxlZF9yZXN1bHQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcmVtb3ZlX2xheWVyX3plcm9fYWRhcHRlcnNfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9yZW1vdmVfbGF5ZXJfemVyb19hZGFwdGVyc19yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9yZW1vdmVfbGF5ZXJfemVyb19wZWVyc19yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3JlbW92ZV9sYXllcl96ZXJvX3BlZXJzX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3JlbmFtZV9jb25uZWN0ZWRfYWNjb3VudF9yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3JlbmFtZV9jb25uZWN0ZWRfYWNjb3VudF9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9yZW5hbWVfY29zaWduZXIucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcmVuYW1lX3ZhdWx0X2FjY291bnRfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcmVzZW5kX2ZhaWxlZF9ub3RpZmljYXRpb25zX2pvYl9zdGF0dXNfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcmVzZW5kX2ZhaWxlZF9ub3RpZmljYXRpb25zX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcmVzZW5kX2ZhaWxlZF9ub3RpZmljYXRpb25zX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3Jlc2VuZF9ub3RpZmljYXRpb25zX2J5X3Jlc291cmNlX2lkX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcmVzZW5kX3RyYW5zYWN0aW9uX3dlYmhvb2tzX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcmVzZW5kX3dlYmhvb2tzX2J5X3RyYW5zYWN0aW9uX2lkX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3Jlc2VuZF93ZWJob29rc19yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9yZXNwb25kX3RvX2Nvbm5lY3Rpb25fcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9yZXRyeV9yZXF1b3RlX3JlcXVlc3RfZGV0YWlscy5weQpmaXJlYmxvY2tzL21vZGVscy9yZXRyeV9yZXF1b3RlX3R5cGVfZW51bS5weQpmaXJlYmxvY2tzL21vZGVscy9yZXdhcmRfaW5mby5weQpmaXJlYmxvY2tzL21vZGVscy9yZXdhcmRzX2luZm8ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvcm9sZV9kZXRhaWxzLnB5CmZpcmVibG9ja3MvbW9kZWxzL3JvbGVfZ3JhbnRlZS5weQpmaXJlYmxvY2tzL21vZGVscy9zY29wZV9pdGVtLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NjcmVlbmluZ19hbGVydF9leHBvc3VyZV90eXBlX2VudW0ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc2NyZWVuaW5nX2FtbF9hbGVydC5weQpmaXJlYmxvY2tzL21vZGVscy9zY3JlZW5pbmdfYW1sX21hdGNoZWRfcnVsZS5weQpmaXJlYmxvY2tzL21vZGVscy9zY3JlZW5pbmdfYW1sX3Jlc3VsdC5weQpmaXJlYmxvY2tzL21vZGVscy9zY3JlZW5pbmdfY29uZmlndXJhdGlvbnNfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9zY3JlZW5pbmdfbWV0YWRhdGFfY29uZmlnLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NjcmVlbmluZ19vcGVyYXRpb25fZXhlY3V0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NjcmVlbmluZ19vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dC5weQpmaXJlYmxvY2tzL21vZGVscy9zY3JlZW5pbmdfb3BlcmF0aW9uX2ZhaWx1cmUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc2NyZWVuaW5nX29wZXJhdGlvbl90eXBlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NjcmVlbmluZ19wb2xpY3lfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc2NyZWVuaW5nX3Byb3ZpZGVyX3J1bGVzX2NvbmZpZ3VyYXRpb25fcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc2NyZWVuaW5nX3RyX2xpbmtfYW1vdW50LnB5CmZpcmVibG9ja3MvbW9kZWxzL3NjcmVlbmluZ190cl9saW5rX21pc3NpbmdfdHJtX2RlY2lzaW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NjcmVlbmluZ190cl9saW5rX21pc3NpbmdfdHJtX3J1bGUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc2NyZWVuaW5nX3RyX2xpbmtfcG9zdF9zY3JlZW5pbmdfcnVsZS5weQpmaXJlYmxvY2tzL21vZGVscy9zY3JlZW5pbmdfdHJfbGlua19wcmVzY3JlZW5pbmdfcnVsZS5weQpmaXJlYmxvY2tzL21vZGVscy9zY3JlZW5pbmdfdHJfbGlua19ydWxlX2Jhc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc2NyZWVuaW5nX3RyYXZlbF9ydWxlX21hdGNoZWRfcnVsZS5weQpmaXJlYmxvY2tzL21vZGVscy9zY3JlZW5pbmdfdHJhdmVsX3J1bGVfcHJlc2NyZWVuaW5nX3J1bGUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc2NyZWVuaW5nX3RyYXZlbF9ydWxlX3Jlc3VsdC5weQpmaXJlYmxvY2tzL21vZGVscy9zY3JlZW5pbmdfdXBkYXRlX2NvbmZpZ3VyYXRpb25zLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NjcmVlbmluZ192YWxpZGF0aW9uX2ZhaWx1cmUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc2NyZWVuaW5nX3ZlcmRpY3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc2NyZWVuaW5nX3ZlcmRpY3RfZW51bS5weQpmaXJlYmxvY2tzL21vZGVscy9zY3JlZW5pbmdfdmVyZGljdF9tYXRjaGVkX3J1bGUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc2VhcmNoX25ldHdvcmtfaWRzX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NlcGFfYWRkcmVzcy5weQpmaXJlYmxvY2tzL21vZGVscy9zZXBhX2Rlc3RpbmF0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NlcGFfcGF5bWVudF9pbmZvLnB5CmZpcmVibG9ja3MvbW9kZWxzL3Nlc3Npb25fZHRvLnB5CmZpcmVibG9ja3MvbW9kZWxzL3Nlc3Npb25fbWV0YWRhdGEucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc2V0X2FkbWluX3F1b3J1bV90aHJlc2hvbGRfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9zZXRfYWRtaW5fcXVvcnVtX3RocmVzaG9sZF9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9zZXRfYXNzZXRfcHJpY2VfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9zZXRfYXV0b19mdWVsX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc2V0X2NvbmZpcm1hdGlvbnNfdGhyZXNob2xkX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc2V0X2NvbmZpcm1hdGlvbnNfdGhyZXNob2xkX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NldF9jdXN0b21lcl9yZWZfaWRfZm9yX2FkZHJlc3NfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9zZXRfY3VzdG9tZXJfcmVmX2lkX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3NldF9sYXllcl96ZXJvX2R2bl9jb25maWdfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc2V0X2xheWVyX3plcm9fcGVlcnNfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9zZXRfbGF5ZXJfemVyb19wZWVyc19yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9zZXRfbmV0d29ya19pZF9kaXNjb3ZlcmFiaWxpdHlfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9zZXRfbmV0d29ya19pZF9uYW1lX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc2V0X25ldHdvcmtfaWRfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc2V0X25ldHdvcmtfaWRfcm91dGluZ19wb2xpY3lfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9zZXRfb3RhX3N0YXR1c19yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3NldF9vdGFfc3RhdHVzX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NldF9vdGFfc3RhdHVzX3Jlc3BvbnNlX29uZV9vZi5weQpmaXJlYmxvY2tzL21vZGVscy9zZXRfcm91dGluZ19wb2xpY3lfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9zZXRfcm91dGluZ19wb2xpY3lfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc2V0dGxlbWVudC5weQpmaXJlYmxvY2tzL21vZGVscy9zZXR0bGVtZW50X3JlcXVlc3RfYm9keS5weQpmaXJlYmxvY2tzL21vZGVscy9zZXR0bGVtZW50X3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NldHRsZW1lbnRfc291cmNlX2FjY291bnQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc2V0dGxlbWVudF90eXBlX2VudW0ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc2lkZS5weQpmaXJlYmxvY2tzL21vZGVscy9zaWduZWRfbWVzc2FnZS5weQpmaXJlYmxvY2tzL21vZGVscy9zaWduZWRfbWVzc2FnZV9zaWduYXR1cmUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc2lnbmluZ19rZXlfZHRvLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NtYXJ0X3RyYW5zZmVyX2FwcHJvdmVfdGVybS5weQpmaXJlYmxvY2tzL21vZGVscy9zbWFydF90cmFuc2Zlcl9iYWRfcmVxdWVzdF9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9zbWFydF90cmFuc2Zlcl9jb2luX3N0YXRpc3RpYy5weQpmaXJlYmxvY2tzL21vZGVscy9zbWFydF90cmFuc2Zlcl9jcmVhdGVfdGlja2V0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3NtYXJ0X3RyYW5zZmVyX2NyZWF0ZV90aWNrZXRfdGVybS5weQpmaXJlYmxvY2tzL21vZGVscy9zbWFydF90cmFuc2Zlcl9mb3JiaWRkZW5fcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc21hcnRfdHJhbnNmZXJfZnVuZF9kdnBfdGlja2V0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3NtYXJ0X3RyYW5zZmVyX2Z1bmRfdGVybS5weQpmaXJlYmxvY2tzL21vZGVscy9zbWFydF90cmFuc2Zlcl9tYW51YWxseV9mdW5kX3Rlcm0ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc21hcnRfdHJhbnNmZXJfbm90X2ZvdW5kX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXhwaXJhdGlvbi5weQpmaXJlYmxvY2tzL21vZGVscy9zbWFydF90cmFuc2Zlcl9zZXRfdGlja2V0X2V4dGVybmFsX2lkLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NtYXJ0X3RyYW5zZmVyX3NldF91c2VyX2dyb3Vwcy5weQpmaXJlYmxvY2tzL21vZGVscy9zbWFydF90cmFuc2Zlcl9zdGF0aXN0aWMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc21hcnRfdHJhbnNmZXJfc3RhdGlzdGljX2luZmxvdy5weQpmaXJlYmxvY2tzL21vZGVscy9zbWFydF90cmFuc2Zlcl9zdGF0aXN0aWNfb3V0Zmxvdy5weQpmaXJlYmxvY2tzL21vZGVscy9zbWFydF90cmFuc2Zlcl9zdWJtaXRfdGlja2V0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3NtYXJ0X3RyYW5zZmVyX3RpY2tldC5weQpmaXJlYmxvY2tzL21vZGVscy9zbWFydF90cmFuc2Zlcl90aWNrZXRfZmlsdGVyZWRfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc21hcnRfdHJhbnNmZXJfdGlja2V0X3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NtYXJ0X3RyYW5zZmVyX3RpY2tldF90ZXJtLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NtYXJ0X3RyYW5zZmVyX3RpY2tldF90ZXJtX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NtYXJ0X3RyYW5zZmVyX3VwZGF0ZV90aWNrZXRfdGVybS5weQpmaXJlYmxvY2tzL21vZGVscy9zbWFydF90cmFuc2Zlcl91c2VyX2dyb3Vwcy5weQpmaXJlYmxvY2tzL21vZGVscy9zbWFydF90cmFuc2Zlcl91c2VyX2dyb3Vwc19yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9zb2xfYWNjb3VudC5weQpmaXJlYmxvY2tzL21vZGVscy9zb2xfYWNjb3VudF93aXRoX3ZhbHVlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NvbF9wYXJhbWV0ZXIucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc29sX3BhcmFtZXRlcl93aXRoX3ZhbHVlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NvbGFuYV9ibG9ja2NoYWluX2RhdGEucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc29sYW5hX2NvbmZpZy5weQpmaXJlYmxvY2tzL21vZGVscy9zb2xhbmFfaW5zdHJ1Y3Rpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc29sYW5hX2luc3RydWN0aW9uX3dpdGhfdmFsdWUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc29sYW5hX3NpbXBsZV9jcmVhdGVfcGFyYW1zLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NvdXJjZV9jb25maWcucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc291cmNlX3RyYW5zZmVyX3BlZXJfcGF0aC5weQpmaXJlYmxvY2tzL21vZGVscy9zb3VyY2VfdHJhbnNmZXJfcGVlcl9wYXRoX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NwYW1fb3duZXJzaGlwX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NwYW1fdG9rZW5fcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc3BlaV9hZGRyZXNzLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NwZWlfYWR2YW5jZWRfcGF5bWVudF9pbmZvLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NwZWlfYmFzaWNfcGF5bWVudF9pbmZvLnB5CmZpcmVibG9ja3MvbW9kZWxzL3NwZWlfZGVzdGluYXRpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc3BsaXRfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy9zcGxpdF9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy9zdF9ldGhfYmxvY2tjaGFpbl9kYXRhLnB5CmZpcmVibG9ja3MvbW9kZWxzL3N0YWtlX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc3Rha2VfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc3Rha2luZ19wb3NpdGlvbnNfcGFnaW5hdGVkX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3N0YWtpbmdfcHJvdmlkZXIucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc3RhdHVzLnB5CmZpcmVibG9ja3MvbW9kZWxzL3N0ZWxsYXJfcmlwcGxlX2NyZWF0ZV9wYXJhbXNfZHRvLnB5CmZpcmVibG9ja3MvbW9kZWxzL3N1cHBvcnRlZF9ibG9ja19jaGFpbnNfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc3VwcG9ydGVkX2Jsb2NrY2hhaW4ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvc3dpZnRfYWRkcmVzcy5weQpmaXJlYmxvY2tzL21vZGVscy9zd2lmdF9kZXN0aW5hdGlvbi5weQpmaXJlYmxvY2tzL21vZGVscy9zeXN0ZW1fbWVzc2FnZV9pbmZvLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RhZy5weQpmaXJlYmxvY2tzL21vZGVscy90YWdfYXR0YWNobWVudF9vcGVyYXRpb25fYWN0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RhZ3NfcGFnZWRfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdGVtcGxhdGVzX3BhZ2luYXRlZF9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy90aGlyZF9wYXJ0eV9yb3V0aW5nLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RpbWVfcGVyaW9kX2NvbmZpZy5weQpmaXJlYmxvY2tzL21vZGVscy90aW1lX3BlcmlvZF9tYXRjaF90eXBlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RvX2NvbGxhdGVyYWxfdHJhbnNhY3Rpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdG9fZXhjaGFuZ2VfdHJhbnNhY3Rpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdG9rZW5fY29sbGVjdGlvbl9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy90b2tlbl9jb250cmFjdF9zdW1tYXJ5X3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3Rva2VuX2luZm9fbm90X2ZvdW5kX2Vycm9yX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3Rva2VuX2xpbmtfZHRvLnB5CmZpcmVibG9ja3MvbW9kZWxzL3Rva2VuX2xpbmtfZHRvX3Rva2VuX21ldGFkYXRhLnB5CmZpcmVibG9ja3MvbW9kZWxzL3Rva2VuX2xpbmtfZXhpc3RzX2h0dHBfZXJyb3IucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdG9rZW5fbGlua19ub3RfbXVsdGljaGFpbl9jb21wYXRpYmxlX2h0dHBfZXJyb3IucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdG9rZW5fbGlua19yZXF1ZXN0X2R0by5weQpmaXJlYmxvY2tzL21vZGVscy90b2tlbl9vd25lcnNoaXBfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdG9rZW5fb3duZXJzaGlwX3NwYW1fdXBkYXRlX3BheWxvYWQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdG9rZW5fb3duZXJzaGlwX3N0YXR1c191cGRhdGVfcGF5bG9hZC5weQpmaXJlYmxvY2tzL21vZGVscy90b2tlbl9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy90b2tlbnNfcGFnaW5hdGVkX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RvdGFsX3N1cHBseV9pdGVtX2R0by5weQpmaXJlYmxvY2tzL21vZGVscy90b3RhbF9zdXBwbHlfcGFnZWRfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua19hbW91bnQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua19hbW91bnQyLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfYW1vdW50X3JhbmdlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfYXBpX3BhZ2VkX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfYXNzZXNzX3RyYXZlbF9ydWxlX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua19hc3Nlc3NfdHJhdmVsX3J1bGVfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua19hc3Nlc3NtZW50X2RlY2lzaW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfYXNzZXQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua19hc3NldF9kYXRhLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfYXNzZXRfZm9ybWF0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfYXNzZXRzX2xpc3RfcGFnZWRfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua19jYW5jZWxfdHJtX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua19jb25uZWN0X2ludGVncmF0aW9uX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua19jcmVhdGVfY3VzdG9tZXJfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy90cl9saW5rX2NyZWF0ZV9pbnRlZ3JhdGlvbl9yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfY3JlYXRlX3RybV9yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfY3VycmVuY3kucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua19jdXN0b21lcl9pbnRlZ3JhdGlvbl9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy90cl9saW5rX2N1c3RvbWVyX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfZGVzdGluYXRpb25fdHJhbnNmZXJfcGVlcl9wYXRoLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfZGlzY292ZXJhYmxlX3N0YXR1cy5weQpmaXJlYmxvY2tzL21vZGVscy90cl9saW5rX2ZpYXRfdmFsdWUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua19nZW9ncmFwaGljX2FkZHJlc3NfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy90cl9saW5rX2dldF9zdXBwb3J0ZWRfYXNzZXRfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua19pdm1zLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfaXZtc19yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy90cl9saW5rX2p3a19wdWJsaWNfa2V5LnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfbWlzc2luZ190cm1fYWN0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfbWlzc2luZ190cm1fYWN0aW9uMi5weQpmaXJlYmxvY2tzL21vZGVscy90cl9saW5rX21pc3NpbmdfdHJtX2FjdGlvbl9lbnVtLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfbWlzc2luZ190cm1fZGVjaXNpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua19taXNzaW5nX3RybV9ydWxlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfbWlzc2luZ190cm1fcnVsZTIucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua19vbmVfdGltZV9hZGRyZXNzLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfcGFnaW5nLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfcGFydG5lcl9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy90cl9saW5rX3BvbGljeV9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy90cl9saW5rX3Bvc3Rfc2NyZWVuaW5nX2FjdGlvbi5weQpmaXJlYmxvY2tzL21vZGVscy90cl9saW5rX3Bvc3Rfc2NyZWVuaW5nX3J1bGUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua19wb3N0X3NjcmVlbmluZ19ydWxlMi5weQpmaXJlYmxvY2tzL21vZGVscy90cl9saW5rX3ByZV9zY3JlZW5pbmdfYWN0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfcHJlX3NjcmVlbmluZ19hY3Rpb24yLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfcHJlX3NjcmVlbmluZ19hY3Rpb25fZW51bS5weQpmaXJlYmxvY2tzL21vZGVscy90cl9saW5rX3ByZV9zY3JlZW5pbmdfcnVsZS5weQpmaXJlYmxvY2tzL21vZGVscy90cl9saW5rX3ByZV9zY3JlZW5pbmdfcnVsZTIucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua19wcm92aWRlcl9kYXRhLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfcHJvdmlkZXJfcmVzdWx0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfcHJvdmlkZXJfcmVzdWx0X3dpdGhfcnVsZS5weQpmaXJlYmxvY2tzL21vZGVscy90cl9saW5rX3Byb3ZpZGVyX3Jlc3VsdF93aXRoX3J1bGUyLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfcHVibGljX2Fzc2V0X2luZm8ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua19wdWJsaWNfa2V5X3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfcmVkaXJlY3RfdHJtX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua19yZWdpc3RyYXRpb25fcmVzdWx0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfcmVnaXN0cmF0aW9uX3Jlc3VsdF9mdWxsX3BheWxvYWQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua19yZWdpc3RyYXRpb25fc3RhdHVzLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfcmVnaXN0cmF0aW9uX3N0YXR1c19lbnVtLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfcmVzdWx0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfcmVzdWx0X2Z1bGxfcGF5bG9hZC5weQpmaXJlYmxvY2tzL21vZGVscy90cl9saW5rX3J1bGVfYmFzZS5weQpmaXJlYmxvY2tzL21vZGVscy90cl9saW5rX3NldF9kZXN0aW5hdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua19zZXRfZGVzdGluYXRpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy90cl9saW5rX3NldF90cmFuc2FjdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua19zZXRfdHJhbnNhY3Rpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy90cl9saW5rX3NvdXJjZV90cmFuc2Zlcl9wZWVyX3BhdGgucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua190ZXN0X2Nvbm5lY3Rpb25fcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua190aHJlc2hvbGRzLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfdHJhbnNhY3Rpb25fZGlyZWN0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfdHJhbnNmZXJfcGVlcl9wYXRoLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfdHJtX2RpcmVjdGlvbi5weQpmaXJlYmxvY2tzL21vZGVscy90cl9saW5rX3RybV9pbmZvX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfdHJtX3NjcmVlbmluZ19zdGF0dXMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua190cm1fc2NyZWVuaW5nX3N0YXR1c19lbnVtLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfdHJtX3N0YXR1cy5weQpmaXJlYmxvY2tzL21vZGVscy90cl9saW5rX3R4bl9pbmZvLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfdXBkYXRlX2N1c3RvbWVyX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua192YXNwX2R0by5weQpmaXJlYmxvY2tzL21vZGVscy90cl9saW5rX3Zhc3BfZ2VvZ3JhcGhpY19hZGRyZXNzLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfdmFzcF9saXN0X2R0by5weQpmaXJlYmxvY2tzL21vZGVscy90cl9saW5rX3Zhc3BfbmF0aW9uYWxfaWRlbnRpZmljYXRpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJfbGlua192ZXJkaWN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyX2xpbmtfdmVyZGljdF9lbnVtLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYWRpbmdfYWNjb3VudF90eXBlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYWRpbmdfZXJyb3Jfc2NoZW1hLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYWRpbmdfcHJvdmlkZXIucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhZGluZ19wcm92aWRlcl9kZXRhaWxzLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYW5zYWN0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYW5zYWN0aW9uX2RpcmVjdGlvbi5weQpmaXJlYmxvY2tzL21vZGVscy90cmFuc2FjdGlvbl9mZWUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhbnNhY3Rpb25fb3BlcmF0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYW5zYWN0aW9uX29wZXJhdGlvbl9lbnVtLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYW5zYWN0aW9uX3JlY2VpcHRfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhbnNhY3Rpb25fcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy90cmFuc2FjdGlvbl9yZXF1ZXN0X2Ftb3VudC5weQpmaXJlYmxvY2tzL21vZGVscy90cmFuc2FjdGlvbl9yZXF1ZXN0X2Rlc3RpbmF0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYW5zYWN0aW9uX3JlcXVlc3RfZmVlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYW5zYWN0aW9uX3JlcXVlc3RfZ2FzX2xpbWl0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYW5zYWN0aW9uX3JlcXVlc3RfZ2FzX3ByaWNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYW5zYWN0aW9uX3JlcXVlc3RfbmV0d29ya19mZWUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhbnNhY3Rpb25fcmVxdWVzdF9uZXR3b3JrX3N0YWtpbmcucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhbnNhY3Rpb25fcmVxdWVzdF9wcmlvcml0eV9mZWUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhbnNhY3Rpb25fcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhbnNhY3Rpb25fcmVzcG9uc2VfY29udHJhY3RfY2FsbF9kZWNvZGVkX2RhdGEucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhbnNhY3Rpb25fcmVzcG9uc2VfZGVzdGluYXRpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhbnNmZXJfY29uZmlnX29wZXJhdGlvbi5weQpmaXJlYmxvY2tzL21vZGVscy90cmFuc2Zlcl9vcGVyYXRpb25fY29uZmlnX3BhcmFtcy5weQpmaXJlYmxvY2tzL21vZGVscy90cmFuc2Zlcl9vcGVyYXRpb25fZXhlY3V0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYW5zZmVyX29wZXJhdGlvbl9leGVjdXRpb25fb3V0cHV0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYW5zZmVyX29wZXJhdGlvbl9leGVjdXRpb25fcGFyYW1zLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYW5zZmVyX29wZXJhdGlvbl9leGVjdXRpb25fcGFyYW1zX2V4ZWN1dGlvbl9wYXJhbXMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhbnNmZXJfb3BlcmF0aW9uX2ZhaWx1cmUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhbnNmZXJfb3BlcmF0aW9uX2ZhaWx1cmVfZGF0YS5weQpmaXJlYmxvY2tzL21vZGVscy90cmFuc2Zlcl9vcGVyYXRpb25fcHJldmlldy5weQpmaXJlYmxvY2tzL21vZGVscy90cmFuc2Zlcl9vcGVyYXRpb25fcHJldmlld19vdXRwdXQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhbnNmZXJfb3BlcmF0aW9uX3R5cGUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhbnNmZXJfcGVlcl9wYXRoX3N1Yl90eXBlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYW5zZmVyX3BlZXJfcGF0aF90eXBlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYW5zZmVyX3BlZXJfc3ViX3R5cGVfZW51bS5weQpmaXJlYmxvY2tzL21vZGVscy90cmFuc2Zlcl9wZWVyX3R5cGVfZW51bS5weQpmaXJlYmxvY2tzL21vZGVscy90cmFuc2Zlcl9yYWlsLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYW5zZmVyX3JlY2VpcHQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhbnNmZXJfdmFsaWRhdGlvbl9mYWlsdXJlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYXZlbF9ydWxlX2FjdGlvbl9lbnVtLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYXZlbF9ydWxlX2FkZHJlc3MucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhdmVsX3J1bGVfY3JlYXRlX3RyYW5zYWN0aW9uX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhdmVsX3J1bGVfZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGgucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhdmVsX3J1bGVfZGlyZWN0aW9uX2VudW0ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhdmVsX3J1bGVfZ2VvZ3JhcGhpY19hZGRyZXNzLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYXZlbF9ydWxlX2dldF9hbGxfdmFzcHNfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhdmVsX3J1bGVfaXNzdWVyLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYXZlbF9ydWxlX2lzc3VlcnMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhdmVsX3J1bGVfbGVnYWxfcGVyc29uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYXZlbF9ydWxlX2xlZ2FsX3BlcnNvbl9uYW1lX2lkZW50aWZpZXIucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhdmVsX3J1bGVfbWF0Y2hlZF9ydWxlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYXZlbF9ydWxlX25hdGlvbmFsX2lkZW50aWZpY2F0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYXZlbF9ydWxlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uX25hbWVfaWRlbnRpZmllci5weQpmaXJlYmxvY2tzL21vZGVscy90cmF2ZWxfcnVsZV9vd25lcnNoaXBfcHJvb2YucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhdmVsX3J1bGVfcGVyc29uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYXZlbF9ydWxlX3BpaV9pdm1zLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYXZlbF9ydWxlX3BvbGljeV9ydWxlX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYXZlbF9ydWxlX3ByZXNjcmVlbmluZ19ydWxlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYXZlbF9ydWxlX3Jlc3VsdC5weQpmaXJlYmxvY2tzL21vZGVscy90cmF2ZWxfcnVsZV9zdGF0dXNfZW51bS5weQpmaXJlYmxvY2tzL21vZGVscy90cmF2ZWxfcnVsZV90cmFuc2FjdGlvbl9ibG9ja2NoYWluX2luZm8ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhdmVsX3J1bGVfdXBkYXRlX3Zhc3BfZGV0YWlscy5weQpmaXJlYmxvY2tzL21vZGVscy90cmF2ZWxfcnVsZV92YWxpZGF0ZV9kYXRlX2FuZF9wbGFjZV9vZl9iaXJ0aC5weQpmaXJlYmxvY2tzL21vZGVscy90cmF2ZWxfcnVsZV92YWxpZGF0ZV9mdWxsX3RyYW5zYWN0aW9uX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhdmVsX3J1bGVfdmFsaWRhdGVfZ2VvZ3JhcGhpY19hZGRyZXNzLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYXZlbF9ydWxlX3ZhbGlkYXRlX2xlZ2FsX3BlcnNvbi5weQpmaXJlYmxvY2tzL21vZGVscy90cmF2ZWxfcnVsZV92YWxpZGF0ZV9sZWdhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdGlvbmFsX2lkZW50aWZpY2F0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfcGVyc29uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfcGVyc29uX25hbWVfaWRlbnRpZmllci5weQpmaXJlYmxvY2tzL21vZGVscy90cmF2ZWxfcnVsZV92YWxpZGF0ZV9wZXJzb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhdmVsX3J1bGVfdmFsaWRhdGVfcGlpX2l2bXMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJhdmVsX3J1bGVfdmFsaWRhdGVfdHJhbnNhY3Rpb25fcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy90cmF2ZWxfcnVsZV92YWxpZGF0ZV90cmFuc2FjdGlvbl9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy90cmF2ZWxfcnVsZV92YXNwLnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYXZlbF9ydWxlX3Zhc3BfZm9yX3ZhdWx0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3RyYXZlbF9ydWxlX3ZlcmRpY3RfZW51bS5weQpmaXJlYmxvY2tzL21vZGVscy90cnVzdF9wcm9vZl9vZl9hZGRyZXNzX2NyZWF0ZV9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy90cnVzdF9wcm9vZl9vZl9hZGRyZXNzX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzc19yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy90eF9sb2cucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdHlwZWRfbWVzc2FnZV90cmFuc2FjdGlvbl9zdGF0dXNfZW51bS5weQpmaXJlYmxvY2tzL21vZGVscy91bmZyZWV6ZV90cmFuc2FjdGlvbl9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy91bm1hbmFnZWRfd2FsbGV0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3Vuc3BlbnRfaW5wdXQucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdW5zcGVudF9pbnB1dHNfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdW5zdGFrZV9yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3VwZGF0ZV9hc3NldF91c2VyX21ldGFkYXRhX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdXBkYXRlX2NhbGxiYWNrX2hhbmRsZXJfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy91cGRhdGVfY2FsbGJhY2tfaGFuZGxlcl9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy91cGRhdGVfZHJhZnRfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy91cGRhdGVfdGFnX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdXBkYXRlX3Rva2VuX293bmVyc2hpcF9zdGF0dXNfZHRvLnB5CmZpcmVibG9ja3MvbW9kZWxzL3VwZGF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3NfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy91cGRhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3VwZGF0ZV93ZWJob29rX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdXNfd2lyZV9hZGRyZXNzLnB5CmZpcmVibG9ja3MvbW9kZWxzL3VzX3dpcmVfZGVzdGluYXRpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdXNfd2lyZV9wYXltZW50X2luZm8ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdXNlcl9ncm91cF9jcmVhdGVfcmVxdWVzdC5weQpmaXJlYmxvY2tzL21vZGVscy91c2VyX2dyb3VwX2NyZWF0ZV9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy91c2VyX2dyb3VwX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3VzZXJfZ3JvdXBfdXBkYXRlX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdXNlcl9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy91c2VyX3JvbGUucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdXNlcl9zdGF0dXMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdXNlcl90eXBlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3ZhbGlkYXRlX2FkZHJlc3NfcmVzcG9uc2UucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdmFsaWRhdGVfbGF5ZXJfemVyb19jaGFubmVsX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3ZhbGlkYXRpb25fa2V5X2R0by5weQpmaXJlYmxvY2tzL21vZGVscy92YWxpZGF0b3IucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdmF1bHRfYWNjb3VudC5weQpmaXJlYmxvY2tzL21vZGVscy92YXVsdF9hY2NvdW50X3RhZ19hdHRhY2htZW50X29wZXJhdGlvbi5weQpmaXJlYmxvY2tzL21vZGVscy92YXVsdF9hY2NvdW50X3RhZ19hdHRhY2htZW50X3BlbmRpbmdfb3BlcmF0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3ZhdWx0X2FjY291bnRfdGFnX2F0dGFjaG1lbnRfcmVqZWN0ZWRfb3BlcmF0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3ZhdWx0X2FjY291bnRzX3BhZ2VkX3Jlc3BvbnNlLnB5CmZpcmVibG9ja3MvbW9kZWxzL3ZhdWx0X2FjY291bnRzX3BhZ2VkX3Jlc3BvbnNlX3BhZ2luZy5weQpmaXJlYmxvY2tzL21vZGVscy92YXVsdF9hY2NvdW50c190YWdfYXR0YWNobWVudF9vcGVyYXRpb25zX3JlcXVlc3QucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdmF1bHRfYWNjb3VudHNfdGFnX2F0dGFjaG1lbnRfb3BlcmF0aW9uc19yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy92YXVsdF9hY3Rpb25fc3RhdHVzLnB5CmZpcmVibG9ja3MvbW9kZWxzL3ZhdWx0X2Fzc2V0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3ZhdWx0X3dhbGxldF9hZGRyZXNzLnB5CmZpcmVibG9ja3MvbW9kZWxzL3ZlbmRvcl9kdG8ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdmVyZGljdF9jb25maWcucHkKZmlyZWJsb2Nrcy9tb2RlbHMvdmVyc2lvbl9zdW1tYXJ5LnB5CmZpcmVibG9ja3MvbW9kZWxzL3dhbGxldF9hc3NldC5weQpmaXJlYmxvY2tzL21vZGVscy93YWxsZXRfYXNzZXRfYWRkaXRpb25hbF9pbmZvLnB5CmZpcmVibG9ja3MvbW9kZWxzL3dlYmhvb2sucHkKZmlyZWJsb2Nrcy9tb2RlbHMvd2ViaG9va19ldmVudC5weQpmaXJlYmxvY2tzL21vZGVscy93ZWJob29rX21ldHJpYy5weQpmaXJlYmxvY2tzL21vZGVscy93ZWJob29rX3BhZ2luYXRlZF9yZXNwb25zZS5weQpmaXJlYmxvY2tzL21vZGVscy93aXRoZHJhd19yZXF1ZXN0LnB5CmZpcmVibG9ja3MvbW9kZWxzL3dvcmtmbG93X2NvbmZpZ19zdGF0dXMucHkKZmlyZWJsb2Nrcy9tb2RlbHMvd29ya2Zsb3dfY29uZmlndXJhdGlvbl9pZC5weQpmaXJlYmxvY2tzL21vZGVscy93b3JrZmxvd19leGVjdXRpb25fb3BlcmF0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3dvcmtzcGFjZS5weQpmaXJlYmxvY2tzL21vZGVscy93cml0ZV9hYmlfZnVuY3Rpb24ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvd3JpdGVfY2FsbF9mdW5jdGlvbl9kdG8ucHkKZmlyZWJsb2Nrcy9tb2RlbHMvd3JpdGVfY2FsbF9mdW5jdGlvbl9kdG9fYWJpX2Z1bmN0aW9uLnB5CmZpcmVibG9ja3MvbW9kZWxzL3dyaXRlX2NhbGxfZnVuY3Rpb25fcmVzcG9uc2VfZHRvLnB5CmZpcmVibG9ja3MvcHkudHlwZWQKZmlyZWJsb2Nrcy9yZXN0LnB5CmZpcmVibG9ja3MvdGhyZWFkZWRfYXBpX2NsaWVudC5weQpmaXJlYmxvY2tzL3Vua25vd25fbW9kZWwucHkKZmlyZWJsb2Nrcy91c2VyX2FnZW50X3V0aWwucHkKZmlyZWJsb2Nrcy92YWxpZGF0aW9uX3V0aWxzLnB5CmdpdF9wdXNoLnNoCnB5cHJvamVjdC50b21sCnJlcXVpcmVtZW50cy50eHQKc2V0dXAuY2ZnCnNldHVwLnB5CnRlc3QtcmVxdWlyZW1lbnRzLnR4dAp0ZXN0L19faW5pdF9fLnB5CnRlc3QvZmlyZWJsb2Nrcy9fX2luaXRfXy5weQp0ZXN0L2ZpcmVibG9ja3MvZHVtbXlfdGVzdF9rZXkudHh0CnRlc3QvZmlyZWJsb2Nrcy90ZXN0X2FkZGl0aW9uYWxfb3B0aW9ucy5weQp0ZXN0L2ZpcmVibG9ja3MvdGVzdF9iZWFyZXJfdG9rZW5fcHJvdmlkZXIucHkKdGVzdC9maXJlYmxvY2tzL3Rlc3RfY2xpZW50LnB5CnRlc3QvZmlyZWJsb2Nrcy90ZXN0X2NsaWVudF9jb25maWd1cmF0aW9uLnB5CnRlc3QvZmlyZWJsb2Nrcy90ZXN0X3RocmVhZGVkX2FwaV9jbGllbnQucHkKdGVzdC9maXJlYmxvY2tzL3Rlc3RfdW5rbm93bl9tb2RlbC5weQp0ZXN0L2ZpcmVibG9ja3MvdGVzdF91c2VyX2FnZW50X3V0aWwucHkKdGVzdC9maXJlYmxvY2tzL3Rlc3RfdmFsaWRhdGlvbl91dGlscy5weQp0ZXN0L3Rlc3RfYWJhX3BheW1lbnRfaW5mby5weQp0ZXN0L3Rlc3RfYWJpX2Z1bmN0aW9uLnB5CnRlc3QvdGVzdF9hY2Nlc3NfcmVnaXN0cnlfYWRkcmVzc19pdGVtLnB5CnRlc3QvdGVzdF9hY2Nlc3NfcmVnaXN0cnlfY3VycmVudF9zdGF0ZV9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfYWNjZXNzX3JlZ2lzdHJ5X3N1bW1hcnlfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2FjY2Vzc190eXBlLnB5CnRlc3QvdGVzdF9hY2NvdW50LnB5CnRlc3QvdGVzdF9hY2NvdW50X2FjY2Vzcy5weQp0ZXN0L3Rlc3RfYWNjb3VudF9iYXNlLnB5CnRlc3QvdGVzdF9hY2NvdW50X2Jhc2VkX2FjY2Vzc19wcm92aWRlci5weQp0ZXN0L3Rlc3RfYWNjb3VudF9iYXNlZF9hY2Nlc3NfcHJvdmlkZXJfaW5mby5weQp0ZXN0L3Rlc3RfYWNjb3VudF9iYXNlZF9wcm92aWRlcl9kZXRhaWxzLnB5CnRlc3QvdGVzdF9hY2NvdW50X2NvbmZpZy5weQp0ZXN0L3Rlc3RfYWNjb3VudF9ob2xkZXJfZGV0YWlscy5weQp0ZXN0L3Rlc3RfYWNjb3VudF9pZGVudGlmaWVyLnB5CnRlc3QvdGVzdF9hY2NvdW50X3JlZmVyZW5jZS5weQp0ZXN0L3Rlc3RfYWNjb3VudF90eXBlLnB5CnRlc3QvdGVzdF9hY2NvdW50X3R5cGUyLnB5CnRlc3QvdGVzdF9hY2hfYWNjb3VudF90eXBlLnB5CnRlc3QvdGVzdF9hY2hfYWRkcmVzcy5weQp0ZXN0L3Rlc3RfYWNoX2Rlc3RpbmF0aW9uLnB5CnRlc3QvdGVzdF9hY2hfcGF5bWVudF9pbmZvLnB5CnRlc3QvdGVzdF9hZGFwdGVyX3Byb2Nlc3NpbmdfcmVzdWx0LnB5CnRlc3QvdGVzdF9hZGRfYWJpX3JlcXVlc3RfZHRvLnB5CnRlc3QvdGVzdF9hZGRfYXNzZXRfdG9fZXh0ZXJuYWxfd2FsbGV0X3JlcXVlc3QucHkKdGVzdC90ZXN0X2FkZF9jb2xsYXRlcmFsX3JlcXVlc3RfYm9keS5weQp0ZXN0L3Rlc3RfYWRkX2NvbnRyYWN0X2Fzc2V0X3JlcXVlc3QucHkKdGVzdC90ZXN0X2FkZF9jb3NpZ25lcl9yZXF1ZXN0LnB5CnRlc3QvdGVzdF9hZGRfY29zaWduZXJfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2FkZF9leGNoYW5nZV9hY2NvdW50X3JlcXVlc3QucHkKdGVzdC90ZXN0X2FkZF9leGNoYW5nZV9hY2NvdW50X3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9hZGRpdGlvbmFsX2luZm8ucHkKdGVzdC90ZXN0X2FkZGl0aW9uYWxfaW5mb19yZXF1ZXN0LnB5CnRlc3QvdGVzdF9hZGRpdGlvbmFsX2luZm9fcmVxdWVzdF9hZGRpdGlvbmFsX2luZm8ucHkKdGVzdC90ZXN0X2FkZHJlc3NfYmFsYW5jZV9pdGVtX2R0by5weQp0ZXN0L3Rlc3RfYWRkcmVzc19iYWxhbmNlX3BhZ2VkX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9hZGRyZXNzX25vdF9hdmFpbGFibGVfZXJyb3IucHkKdGVzdC90ZXN0X2FkZHJlc3NfcmVnaXN0cnlfZXJyb3IucHkKdGVzdC90ZXN0X2FkZHJlc3NfcmVnaXN0cnlfbGVnYWxfZW50aXR5LnB5CnRlc3QvdGVzdF9hbGVydF9leHBvc3VyZV90eXBlX2VudW0ucHkKdGVzdC90ZXN0X2FsZXJ0X2xldmVsX2VudW0ucHkKdGVzdC90ZXN0X2FtbF9hbGVydC5weQp0ZXN0L3Rlc3RfYW1sX21hdGNoZWRfcnVsZS5weQp0ZXN0L3Rlc3RfYW1sX3JlZ2lzdHJhdGlvbl9yZXN1bHQucHkKdGVzdC90ZXN0X2FtbF9yZWdpc3RyYXRpb25fcmVzdWx0X2Z1bGxfcGF5bG9hZC5weQp0ZXN0L3Rlc3RfYW1sX3Jlc3VsdC5weQp0ZXN0L3Rlc3RfYW1sX3NjcmVlbmluZ19yZXN1bHQucHkKdGVzdC90ZXN0X2FtbF9zdGF0dXNfZW51bS5weQp0ZXN0L3Rlc3RfYW1sX3ZlcmRpY3RfbWFudWFsX3JlcXVlc3QucHkKdGVzdC90ZXN0X2FtbF92ZXJkaWN0X21hbnVhbF9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfYW1vdW50X2FuZF9jaGFpbl9kZXNjcmlwdG9yLnB5CnRlc3QvdGVzdF9hbW91bnRfY29uZmlnLnB5CnRlc3QvdGVzdF9hbW91bnRfY29uZmlnX2N1cnJlbmN5LnB5CnRlc3QvdGVzdF9hbW91bnRfaW5mby5weQp0ZXN0L3Rlc3RfYW1vdW50X292ZXJfdGltZV9jb25maWcucHkKdGVzdC90ZXN0X2Ftb3VudF9yYW5nZS5weQp0ZXN0L3Rlc3RfYW1vdW50X3JhbmdlX21pbl9tYXgucHkKdGVzdC90ZXN0X2Ftb3VudF9yYW5nZV9taW5fbWF4Mi5weQp0ZXN0L3Rlc3RfYXBpX2tleS5weQp0ZXN0L3Rlc3RfYXBpX2tleXNfcGFnaW5hdGVkX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9hcGlfdXNlci5weQp0ZXN0L3Rlc3RfYXBpX3VzZXJfYXBpLnB5CnRlc3QvdGVzdF9hcHByb3ZhbF9yZXF1ZXN0LnB5CnRlc3QvdGVzdF9hcHByb3ZlcnNfY29uZmlnLnB5CnRlc3QvdGVzdF9hcHByb3ZlcnNfY29uZmlnX2FwcHJvdmFsX2dyb3Vwc19pbm5lci5weQp0ZXN0L3Rlc3RfYXNzZXQucHkKdGVzdC90ZXN0X2Fzc2V0X2FscmVhZHlfZXhpc3RfaHR0cF9lcnJvci5weQp0ZXN0L3Rlc3RfYXNzZXRfYW1vdW50LnB5CnRlc3QvdGVzdF9hc3NldF9iYWRfcmVxdWVzdF9lcnJvcl9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfYXNzZXRfY2xhc3MucHkKdGVzdC90ZXN0X2Fzc2V0X2NvbmZpZy5weQp0ZXN0L3Rlc3RfYXNzZXRfY29uZmxpY3RfZXJyb3JfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2Fzc2V0X2RldGFpbHNfbWV0YWRhdGEucHkKdGVzdC90ZXN0X2Fzc2V0X2RldGFpbHNfb25jaGFpbi5weQp0ZXN0L3Rlc3RfYXNzZXRfZmVhdHVyZS5weQp0ZXN0L3Rlc3RfYXNzZXRfZm9yYmlkZGVuX2Vycm9yX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9hc3NldF9pbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2Fzc2V0X21lZGlhLnB5CnRlc3QvdGVzdF9hc3NldF9tZWRpYV9hdHRyaWJ1dGVzLnB5CnRlc3QvdGVzdF9hc3NldF9tZXRhZGF0YS5weQp0ZXN0L3Rlc3RfYXNzZXRfbWV0YWRhdGFfZHRvLnB5CnRlc3QvdGVzdF9hc3NldF9tZXRhZGF0YV9yZXF1ZXN0LnB5CnRlc3QvdGVzdF9hc3NldF9ub3RfZm91bmRfZXJyb3JfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2Fzc2V0X25vdGUucHkKdGVzdC90ZXN0X2Fzc2V0X25vdGVfcmVxdWVzdC5weQp0ZXN0L3Rlc3RfYXNzZXRfb25jaGFpbi5weQp0ZXN0L3Rlc3RfYXNzZXRfcHJpY2VfZm9yYmlkZGVuX2Vycm9yX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9hc3NldF9wcmljZV9ub3RfZm91bmRfZXJyb3JfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2Fzc2V0X3ByaWNlX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9hc3NldF9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfYXNzZXRfc2NvcGUucHkKdGVzdC90ZXN0X2Fzc2V0X3R5cGVfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2Fzc2V0X3R5cGVzX2NvbmZpZ19pbm5lci5weQp0ZXN0L3Rlc3RfYXNzZXRfd2FsbGV0LnB5CnRlc3QvdGVzdF9hdWRpdF9sb2dfZGF0YS5weQp0ZXN0L3Rlc3RfYXVkaXRfbG9nc19hcGkucHkKdGVzdC90ZXN0X2F1ZGl0b3JfZGF0YS5weQp0ZXN0L3Rlc3RfYXV0aG9yaXphdGlvbl9ncm91cHMucHkKdGVzdC90ZXN0X2F1dGhvcml6YXRpb25faW5mby5weQp0ZXN0L3Rlc3RfYmFsYW5jZV9oaXN0b3J5X2l0ZW1fZHRvLnB5CnRlc3QvdGVzdF9iYWxhbmNlX2hpc3RvcnlfcGFnZWRfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2JhbmtfYWRkcmVzcy5weQp0ZXN0L3Rlc3RfYmFzZV9wcm92aWRlci5weQp0ZXN0L3Rlc3RfYmFzaWNfYWRkcmVzc19yZXF1ZXN0LnB5CnRlc3QvdGVzdF9ibG9ja19pbmZvLnB5CnRlc3QvdGVzdF9ibG9ja2NoYWluX2FkZHJlc3MucHkKdGVzdC90ZXN0X2Jsb2NrY2hhaW5fZGVzdGluYXRpb24ucHkKdGVzdC90ZXN0X2Jsb2NrY2hhaW5fZXhwbG9yZXIucHkKdGVzdC90ZXN0X2Jsb2NrY2hhaW5fbWVkaWEucHkKdGVzdC90ZXN0X2Jsb2NrY2hhaW5fbWV0YWRhdGEucHkKdGVzdC90ZXN0X2Jsb2NrY2hhaW5fbm90X2ZvdW5kX2Vycm9yX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9ibG9ja2NoYWluX29uY2hhaW4ucHkKdGVzdC90ZXN0X2Jsb2NrY2hhaW5fcmVzcG9uc2UucHkKdGVzdC90ZXN0X2Jsb2NrY2hhaW5fdHJhbnNmZXIucHkKdGVzdC90ZXN0X2Jsb2NrY2hhaW5zX2Fzc2V0c19hcGkucHkKdGVzdC90ZXN0X2Jwc19mZWUucHkKdGVzdC90ZXN0X2J1c2luZXNzX2VudGl0eV90eXBlX2VudW0ucHkKdGVzdC90ZXN0X2J1c2luZXNzX2lkZW50aWZpY2F0aW9uLnB5CnRlc3QvdGVzdF9jYWxsYmFja19oYW5kbGVyLnB5CnRlc3QvdGVzdF9jYWxsYmFja19oYW5kbGVyX3JlcXVlc3QucHkKdGVzdC90ZXN0X2NhbmNlbF90cmFuc2FjdGlvbl9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfY2hhaW5fZGVzY3JpcHRvci5weQp0ZXN0L3Rlc3RfY2hhaW5faW5mb19yZXNwb25zZS5weQp0ZXN0L3Rlc3RfY2hhbm5lbF9kdm5fY29uZmlnX3dpdGhfY29uZmlybWF0aW9ucy5weQp0ZXN0L3Rlc3RfY2hhbm5lbF9kdm5fY29uZmlnX3dpdGhfY29uZmlybWF0aW9uc19yZWNlaXZlX2NvbmZpZy5weQp0ZXN0L3Rlc3RfY2hhbm5lbF9kdm5fY29uZmlnX3dpdGhfY29uZmlybWF0aW9uc19zZW5kX2NvbmZpZy5weQp0ZXN0L3Rlc3RfY2hhcHNfYWRkcmVzcy5weQp0ZXN0L3Rlc3RfY2hhcHNfZGVzdGluYXRpb24ucHkKdGVzdC90ZXN0X2NoYXBzX3BheW1lbnRfaW5mby5weQp0ZXN0L3Rlc3RfY2xhaW1fcmV3YXJkc19yZXF1ZXN0LnB5CnRlc3QvdGVzdF9jb2xsZWN0aW9uX2J1cm5fcmVxdWVzdF9kdG8ucHkKdGVzdC90ZXN0X2NvbGxlY3Rpb25fYnVybl9yZXNwb25zZV9kdG8ucHkKdGVzdC90ZXN0X2NvbGxlY3Rpb25fZGVwbG95X3JlcXVlc3RfZHRvLnB5CnRlc3QvdGVzdF9jb2xsZWN0aW9uX2xpbmtfZHRvLnB5CnRlc3QvdGVzdF9jb2xsZWN0aW9uX21ldGFkYXRhX2R0by5weQp0ZXN0L3Rlc3RfY29sbGVjdGlvbl9taW50X3JlcXVlc3RfZHRvLnB5CnRlc3QvdGVzdF9jb2xsZWN0aW9uX21pbnRfcmVzcG9uc2VfZHRvLnB5CnRlc3QvdGVzdF9jb2xsZWN0aW9uX293bmVyc2hpcF9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfY29sbGVjdGlvbl90b2tlbl9tZXRhZGF0YV9hdHRyaWJ1dGVfZHRvLnB5CnRlc3QvdGVzdF9jb2xsZWN0aW9uX3Rva2VuX21ldGFkYXRhX2R0by5weQp0ZXN0L3Rlc3RfY29sbGVjdGlvbl90eXBlLnB5CnRlc3QvdGVzdF9jb21taXR0ZWRfcXVvdGVfZW51bS5weQp0ZXN0L3Rlc3RfY29tbWl0dGVkX3F1b3RlX3R5cGUucHkKdGVzdC90ZXN0X2NvbXBsaWFuY2VfYXBpLnB5CnRlc3QvdGVzdF9jb21wbGlhbmNlX3Jlc3VsdF9mdWxsX3BheWxvYWQucHkKdGVzdC90ZXN0X2NvbXBsaWFuY2VfcmVzdWx0X3N0YXR1c2VzX2VudW0ucHkKdGVzdC90ZXN0X2NvbXBsaWFuY2VfcmVzdWx0cy5weQp0ZXN0L3Rlc3RfY29tcGxpYW5jZV9zY3JlZW5pbmdfY29uZmlndXJhdGlvbl9hcGkucHkKdGVzdC90ZXN0X2NvbXBsaWFuY2Vfc2NyZWVuaW5nX3Jlc3VsdC5weQp0ZXN0L3Rlc3RfY29tcGxpYW5jZV9zY3JlZW5pbmdfcmVzdWx0X2Z1bGxfcGF5bG9hZC5weQp0ZXN0L3Rlc3RfY29uZmlnX2NoYW5nZV9yZXF1ZXN0X3N0YXR1cy5weQp0ZXN0L3Rlc3RfY29uZmlnX2NvbnZlcnNpb25fb3BlcmF0aW9uX3NuYXBzaG90LnB5CnRlc3QvdGVzdF9jb25maWdfZGlzYnVyc2VtZW50X29wZXJhdGlvbl9zbmFwc2hvdC5weQp0ZXN0L3Rlc3RfY29uZmlnX29wZXJhdGlvbi5weQp0ZXN0L3Rlc3RfY29uZmlnX29wZXJhdGlvbl9zbmFwc2hvdC5weQp0ZXN0L3Rlc3RfY29uZmlnX29wZXJhdGlvbl9zdGF0dXMucHkKdGVzdC90ZXN0X2NvbmZpZ190cmFuc2Zlcl9vcGVyYXRpb25fc25hcHNob3QucHkKdGVzdC90ZXN0X2Nvbm5lY3RlZF9hY2NvdW50LnB5CnRlc3QvdGVzdF9jb25uZWN0ZWRfYWNjb3VudF9hcHByb3ZhbF9zdGF0dXMucHkKdGVzdC90ZXN0X2Nvbm5lY3RlZF9hY2NvdW50X2Fzc2V0X3R5cGUucHkKdGVzdC90ZXN0X2Nvbm5lY3RlZF9hY2NvdW50X2JhbGFuY2VzLnB5CnRlc3QvdGVzdF9jb25uZWN0ZWRfYWNjb3VudF9iYWxhbmNlc19yZXNwb25zZS5weQp0ZXN0L3Rlc3RfY29ubmVjdGVkX2FjY291bnRfY2FwYWJpbGl0eS5weQp0ZXN0L3Rlc3RfY29ubmVjdGVkX2FjY291bnRfZXJyb3JfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2Nvbm5lY3RlZF9hY2NvdW50X21hbmlmZXN0LnB5CnRlc3QvdGVzdF9jb25uZWN0ZWRfYWNjb3VudF9yYXRlX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9jb25uZWN0ZWRfYWNjb3VudF90b3RhbF9iYWxhbmNlLnB5CnRlc3QvdGVzdF9jb25uZWN0ZWRfYWNjb3VudF90cmFkaW5nX3BhaXIucHkKdGVzdC90ZXN0X2Nvbm5lY3RlZF9hY2NvdW50X3RyYWRpbmdfcGFpcl9zdXBwb3J0ZWRfdHlwZS5weQp0ZXN0L3Rlc3RfY29ubmVjdGVkX2FjY291bnRfdHJhZGluZ19wYWlyc19yZXNwb25zZS5weQp0ZXN0L3Rlc3RfY29ubmVjdGVkX2FjY291bnRzX2JldGFfYXBpLnB5CnRlc3QvdGVzdF9jb25uZWN0ZWRfYWNjb3VudHNfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2Nvbm5lY3RlZF9zaW5nbGVfYWNjb3VudC5weQp0ZXN0L3Rlc3RfY29ubmVjdGVkX3NpbmdsZV9hY2NvdW50X3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9jb25zb2xlX3VzZXIucHkKdGVzdC90ZXN0X2NvbnNvbGVfdXNlcl9hcGkucHkKdGVzdC90ZXN0X2NvbnRyYWN0X2FiaV9yZXNwb25zZV9kdG8ucHkKdGVzdC90ZXN0X2NvbnRyYWN0X2FiaV9yZXNwb25zZV9kdG9fYWJpX2lubmVyLnB5CnRlc3QvdGVzdF9jb250cmFjdF9hZGRyZXNzX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9jb250cmFjdF9hdHRyaWJ1dGVzLnB5CnRlc3QvdGVzdF9jb250cmFjdF9kYXRhX2RlY29kZV9kYXRhX3R5cGUucHkKdGVzdC90ZXN0X2NvbnRyYWN0X2RhdGFfZGVjb2RlX2Vycm9yLnB5CnRlc3QvdGVzdF9jb250cmFjdF9kYXRhX2RlY29kZV9yZXF1ZXN0LnB5CnRlc3QvdGVzdF9jb250cmFjdF9kYXRhX2RlY29kZV9yZXF1ZXN0X2RhdGEucHkKdGVzdC90ZXN0X2NvbnRyYWN0X2RhdGFfZGVjb2RlX3Jlc3BvbnNlX3BhcmFtcy5weQp0ZXN0L3Rlc3RfY29udHJhY3RfZGF0YV9kZWNvZGVkX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9jb250cmFjdF9kYXRhX2xvZ19kYXRhX3BhcmFtLnB5CnRlc3QvdGVzdF9jb250cmFjdF9kZXBsb3lfcmVxdWVzdC5weQp0ZXN0L3Rlc3RfY29udHJhY3RfZGVwbG95X3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9jb250cmFjdF9kb2MucHkKdGVzdC90ZXN0X2NvbnRyYWN0X2ludGVyYWN0aW9uc19hcGkucHkKdGVzdC90ZXN0X2NvbnRyYWN0X21ldGFkYXRhX2R0by5weQp0ZXN0L3Rlc3RfY29udHJhY3RfbWV0aG9kX2NvbmZpZy5weQp0ZXN0L3Rlc3RfY29udHJhY3RfbWV0aG9kX3BhdHRlcm4ucHkKdGVzdC90ZXN0X2NvbnRyYWN0X3RlbXBsYXRlX2R0by5weQp0ZXN0L3Rlc3RfY29udHJhY3RfdGVtcGxhdGVzX2FwaS5weQp0ZXN0L3Rlc3RfY29udHJhY3RfdXBsb2FkX3JlcXVlc3QucHkKdGVzdC90ZXN0X2NvbnRyYWN0X3dpdGhfYWJpX2R0by5weQp0ZXN0L3Rlc3RfY29udHJhY3RzX2FwaS5weQp0ZXN0L3Rlc3RfY29udmVyc2lvbl9jb25maWdfb3BlcmF0aW9uLnB5CnRlc3QvdGVzdF9jb252ZXJzaW9uX29wZXJhdGlvbl9jb25maWdfcGFyYW1zLnB5CnRlc3QvdGVzdF9jb252ZXJzaW9uX29wZXJhdGlvbl9leGVjdXRpb24ucHkKdGVzdC90ZXN0X2NvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXQucHkKdGVzdC90ZXN0X2NvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXMucHkKdGVzdC90ZXN0X2NvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXNfZXhlY3V0aW9uX3BhcmFtcy5weQp0ZXN0L3Rlc3RfY29udmVyc2lvbl9vcGVyYXRpb25fZmFpbHVyZS5weQp0ZXN0L3Rlc3RfY29udmVyc2lvbl9vcGVyYXRpb25fcHJldmlldy5weQp0ZXN0L3Rlc3RfY29udmVyc2lvbl9vcGVyYXRpb25fcHJldmlld19vdXRwdXQucHkKdGVzdC90ZXN0X2NvbnZlcnNpb25fb3BlcmF0aW9uX3R5cGUucHkKdGVzdC90ZXN0X2NvbnZlcnNpb25fdmFsaWRhdGlvbl9mYWlsdXJlLnB5CnRlc3QvdGVzdF9jb252ZXJ0X2Fzc2V0c19yZXF1ZXN0LnB5CnRlc3QvdGVzdF9jb252ZXJ0X2Fzc2V0c19yZXNwb25zZS5weQp0ZXN0L3Rlc3RfY29zaWduZXIucHkKdGVzdC90ZXN0X2Nvc2lnbmVyc19iZXRhX2FwaS5weQp0ZXN0L3Rlc3RfY29zaWduZXJzX3BhZ2luYXRlZF9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfY3JlYXRlX2FkZHJlc3NfcmVxdWVzdC5weQp0ZXN0L3Rlc3RfY3JlYXRlX2FkZHJlc3NfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2NyZWF0ZV9hcGlfdXNlci5weQp0ZXN0L3Rlc3RfY3JlYXRlX2Fzc2V0c19yZXF1ZXN0LnB5CnRlc3QvdGVzdF9jcmVhdGVfY29uZmlnX29wZXJhdGlvbl9yZXF1ZXN0LnB5CnRlc3QvdGVzdF9jcmVhdGVfY29ubmVjdGlvbl9yZXF1ZXN0LnB5CnRlc3QvdGVzdF9jcmVhdGVfY29ubmVjdGlvbl9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfY3JlYXRlX2NvbnNvbGVfdXNlci5weQp0ZXN0L3Rlc3RfY3JlYXRlX2NvbnRyYWN0X3JlcXVlc3QucHkKdGVzdC90ZXN0X2NyZWF0ZV9jb252ZXJzaW9uX2NvbmZpZ19vcGVyYXRpb25fcmVxdWVzdC5weQp0ZXN0L3Rlc3RfY3JlYXRlX2Rpc2J1cnNlbWVudF9jb25maWdfb3BlcmF0aW9uX3JlcXVlc3QucHkKdGVzdC90ZXN0X2NyZWF0ZV9pbnRlcm5hbF90cmFuc2Zlcl9yZXF1ZXN0LnB5CnRlc3QvdGVzdF9jcmVhdGVfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0X3JlcXVlc3QucHkKdGVzdC90ZXN0X2NyZWF0ZV9tdWx0aWNoYWluX3Rva2VuX3JlcXVlc3QucHkKdGVzdC90ZXN0X2NyZWF0ZV9tdWx0aWNoYWluX3Rva2VuX3JlcXVlc3RfY3JlYXRlX3BhcmFtcy5weQp0ZXN0L3Rlc3RfY3JlYXRlX211bHRpcGxlX2FjY291bnRzX3JlcXVlc3QucHkKdGVzdC90ZXN0X2NyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3Nlc19qb2Jfc3RhdHVzLnB5CnRlc3QvdGVzdF9jcmVhdGVfbXVsdGlwbGVfZGVwb3NpdF9hZGRyZXNzZXNfcmVxdWVzdC5weQp0ZXN0L3Rlc3RfY3JlYXRlX211bHRpcGxlX3ZhdWx0X2FjY291bnRzX2pvYl9zdGF0dXMucHkKdGVzdC90ZXN0X2NyZWF0ZV9uY3dfY29ubmVjdGlvbl9yZXF1ZXN0LnB5CnRlc3QvdGVzdF9jcmVhdGVfbmV0d29ya19pZF9yZXF1ZXN0LnB5CnRlc3QvdGVzdF9jcmVhdGVfb3JkZXJfcmVxdWVzdC5weQp0ZXN0L3Rlc3RfY3JlYXRlX3BheW91dF9yZXF1ZXN0LnB5CnRlc3QvdGVzdF9jcmVhdGVfcXVvdGUucHkKdGVzdC90ZXN0X2NyZWF0ZV9xdW90ZV9zY29wZV9pbm5lci5weQp0ZXN0L3Rlc3RfY3JlYXRlX3NpZ25pbmdfa2V5X2R0by5weQp0ZXN0L3Rlc3RfY3JlYXRlX3NpZ25pbmdfa2V5X2R0b19wcm9vZl9vZl9vd25lcnNoaXAucHkKdGVzdC90ZXN0X2NyZWF0ZV90YWdfcmVxdWVzdC5weQp0ZXN0L3Rlc3RfY3JlYXRlX3Rva2VuX3JlcXVlc3RfZHRvLnB5CnRlc3QvdGVzdF9jcmVhdGVfdG9rZW5fcmVxdWVzdF9kdG9fY3JlYXRlX3BhcmFtcy5weQp0ZXN0L3Rlc3RfY3JlYXRlX3RyYW5zYWN0aW9uX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9jcmVhdGVfdHJhbnNmZXJfY29uZmlnX29wZXJhdGlvbl9yZXF1ZXN0LnB5CnRlc3QvdGVzdF9jcmVhdGVfdXNlcl9ncm91cF9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfY3JlYXRlX3ZhbGlkYXRpb25fa2V5X2R0by5weQp0ZXN0L3Rlc3RfY3JlYXRlX3ZhbGlkYXRpb25fa2V5X3Jlc3BvbnNlX2R0by5weQp0ZXN0L3Rlc3RfY3JlYXRlX3ZhdWx0X2FjY291bnRfY29ubmVjdGlvbl9yZXF1ZXN0LnB5CnRlc3QvdGVzdF9jcmVhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0LnB5CnRlc3QvdGVzdF9jcmVhdGVfdmF1bHRfYXNzZXRfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2NyZWF0ZV93YWxsZXRfcmVxdWVzdC5weQp0ZXN0L3Rlc3RfY3JlYXRlX3dlYmhvb2tfcmVxdWVzdC5weQp0ZXN0L3Rlc3RfY3JlYXRlX3dvcmtmbG93X2V4ZWN1dGlvbl9yZXF1ZXN0X3BhcmFtc19pbm5lci5weQp0ZXN0L3Rlc3RfY3VzdG9tX3JvdXRpbmdfZGVzdC5weQp0ZXN0L3Rlc3RfZF9hcHBfYWRkcmVzc19jb25maWcucHkKdGVzdC90ZXN0X2RlY29kZWRfbG9nLnB5CnRlc3QvdGVzdF9kZWZhdWx0X25ldHdvcmtfcm91dGluZ19kZXN0LnB5CnRlc3QvdGVzdF9kZWxlZ2F0aW9uLnB5CnRlc3QvdGVzdF9kZWxlZ2F0aW9uX2Jsb2NrY2hhaW5fcG9zaXRpb25faW5mby5weQp0ZXN0L3Rlc3RfZGVsZWdhdGlvbl9zdW1tYXJ5LnB5CnRlc3QvdGVzdF9kZWxldGVfbmV0d29ya19jb25uZWN0aW9uX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9kZWxldGVfbmV0d29ya19pZF9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfZGVwbG95X2xheWVyX3plcm9fYWRhcHRlcnNfcmVxdWVzdC5weQp0ZXN0L3Rlc3RfZGVwbG95YWJsZV9hZGRyZXNzX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9kZXBsb3llZF9jb250cmFjdF9ub3RfZm91bmRfZXJyb3IucHkKdGVzdC90ZXN0X2RlcGxveWVkX2NvbnRyYWN0X3Jlc3BvbnNlX2R0by5weQp0ZXN0L3Rlc3RfZGVwbG95ZWRfY29udHJhY3RzX2FwaS5weQp0ZXN0L3Rlc3RfZGVwbG95ZWRfY29udHJhY3RzX3BhZ2luYXRlZF9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfZGVwb3NpdF9mdW5kc19mcm9tX2xpbmtlZF9kZGFfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2Rlcml2YXRpb25fcGF0aF9jb25maWcucHkKdGVzdC90ZXN0X2Rlc2lnbmF0ZWRfc2lnbmVyc19jb25maWcucHkKdGVzdC90ZXN0X2Rlc3RpbmF0aW9uLnB5CnRlc3QvdGVzdF9kZXN0aW5hdGlvbl9jb25maWcucHkKdGVzdC90ZXN0X2Rlc3RpbmF0aW9uX3RyYW5zZmVyX3BlZXJfcGF0aC5weQp0ZXN0L3Rlc3RfZGVzdGluYXRpb25fdHJhbnNmZXJfcGVlcl9wYXRoX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9kaXJlY3RfYWNjZXNzLnB5CnRlc3QvdGVzdF9kaXJlY3RfYWNjZXNzX3Byb3ZpZGVyLnB5CnRlc3QvdGVzdF9kaXJlY3RfYWNjZXNzX3Byb3ZpZGVyX2luZm8ucHkKdGVzdC90ZXN0X2RpcmVjdF9wcm92aWRlcl9kZXRhaWxzLnB5CnRlc3QvdGVzdF9kaXNidXJzZW1lbnRfYW1vdW50X2luc3RydWN0aW9uLnB5CnRlc3QvdGVzdF9kaXNidXJzZW1lbnRfY29uZmlnX29wZXJhdGlvbi5weQp0ZXN0L3Rlc3RfZGlzYnVyc2VtZW50X2luc3RydWN0aW9uLnB5CnRlc3QvdGVzdF9kaXNidXJzZW1lbnRfaW5zdHJ1Y3Rpb25fb3V0cHV0LnB5CnRlc3QvdGVzdF9kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMucHkKdGVzdC90ZXN0X2Rpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uLnB5CnRlc3QvdGVzdF9kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXQucHkKdGVzdC90ZXN0X2Rpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtcy5weQp0ZXN0L3Rlc3RfZGlzYnVyc2VtZW50X29wZXJhdGlvbl9leGVjdXRpb25fcGFyYW1zX2V4ZWN1dGlvbl9wYXJhbXMucHkKdGVzdC90ZXN0X2Rpc2J1cnNlbWVudF9vcGVyYXRpb25faW5wdXQucHkKdGVzdC90ZXN0X2Rpc2J1cnNlbWVudF9vcGVyYXRpb25fcHJldmlldy5weQp0ZXN0L3Rlc3RfZGlzYnVyc2VtZW50X29wZXJhdGlvbl9wcmV2aWV3X291dHB1dC5weQp0ZXN0L3Rlc3RfZGlzYnVyc2VtZW50X29wZXJhdGlvbl9wcmV2aWV3X291dHB1dF9pbnN0cnVjdGlvbl9zZXRfaW5uZXIucHkKdGVzdC90ZXN0X2Rpc2J1cnNlbWVudF9vcGVyYXRpb25fdHlwZS5weQp0ZXN0L3Rlc3RfZGlzYnVyc2VtZW50X3BlcmNlbnRhZ2VfaW5zdHJ1Y3Rpb24ucHkKdGVzdC90ZXN0X2Rpc2J1cnNlbWVudF92YWxpZGF0aW9uX2ZhaWx1cmUucHkKdGVzdC90ZXN0X2Rpc3BhdGNoX3BheW91dF9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfZHJhZnRfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2RyYWZ0X3Jldmlld19hbmRfdmFsaWRhdGlvbl9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfZHJvcF90cmFuc2FjdGlvbl9yZXF1ZXN0LnB5CnRlc3QvdGVzdF9kcm9wX3RyYW5zYWN0aW9uX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9kdm5fY29uZmlnLnB5CnRlc3QvdGVzdF9kdm5fY29uZmlnX3dpdGhfY29uZmlybWF0aW9ucy5weQp0ZXN0L3Rlc3RfZHZwX3NldHRsZW1lbnQucHkKdGVzdC90ZXN0X2R2cF9zZXR0bGVtZW50X3R5cGUucHkKdGVzdC90ZXN0X2VkaXRfZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbl9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfZW1iZWRkZWRfd2FsbGV0LnB5CnRlc3QvdGVzdF9lbWJlZGRlZF93YWxsZXRfYWNjb3VudC5weQp0ZXN0L3Rlc3RfZW1iZWRkZWRfd2FsbGV0X2FkZHJlc3NfZGV0YWlscy5weQp0ZXN0L3Rlc3RfZW1iZWRkZWRfd2FsbGV0X2FsZ29yaXRtLnB5CnRlc3QvdGVzdF9lbWJlZGRlZF93YWxsZXRfYXNzZXRfYmFsYW5jZS5weQp0ZXN0L3Rlc3RfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9lbWJlZGRlZF93YWxsZXRfYXNzZXRfcmV3YXJkX2luZm8ucHkKdGVzdC90ZXN0X2VtYmVkZGVkX3dhbGxldF9kZXZpY2UucHkKdGVzdC90ZXN0X2VtYmVkZGVkX3dhbGxldF9kZXZpY2Vfa2V5X3NldHVwX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9lbWJlZGRlZF93YWxsZXRfZGV2aWNlX2tleV9zZXR1cF9yZXNwb25zZV9zZXR1cF9zdGF0dXNfaW5uZXIucHkKdGVzdC90ZXN0X2VtYmVkZGVkX3dhbGxldF9sYXRlc3RfYmFja3VwX2tleS5weQp0ZXN0L3Rlc3RfZW1iZWRkZWRfd2FsbGV0X2xhdGVzdF9iYWNrdXBfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2VtYmVkZGVkX3dhbGxldF9wYWdpbmF0ZWRfYWRkcmVzc2VzX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9lbWJlZGRlZF93YWxsZXRfcGFnaW5hdGVkX2Fzc2V0c19yZXNwb25zZS5weQp0ZXN0L3Rlc3RfZW1iZWRkZWRfd2FsbGV0X3BhZ2luYXRlZF9kZXZpY2VzX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9lbWJlZGRlZF93YWxsZXRfcGFnaW5hdGVkX3dhbGxldHNfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2VtYmVkZGVkX3dhbGxldF9yZXF1aXJlZF9hbGdvcml0aG1zLnB5CnRlc3QvdGVzdF9lbWJlZGRlZF93YWxsZXRfc2V0X3VwX3N0YXR1cy5weQp0ZXN0L3Rlc3RfZW1iZWRkZWRfd2FsbGV0X3NldHVwX3N0YXR1c19yZXNwb25zZS5weQp0ZXN0L3Rlc3RfZW1iZWRkZWRfd2FsbGV0c19hcGkucHkKdGVzdC90ZXN0X2VuYWJsZV9kZXZpY2UucHkKdGVzdC90ZXN0X2VuYWJsZV93YWxsZXQucHkKdGVzdC90ZXN0X2Vycm9yX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9lcnJvcl9yZXNwb25zZV9lcnJvci5weQp0ZXN0L3Rlc3RfZXJyb3Jfc2NoZW1hLnB5CnRlc3QvdGVzdF9lc3RpbWF0ZWRfZmVlX2RldGFpbHMucHkKdGVzdC90ZXN0X2VzdGltYXRlZF9uZXR3b3JrX2ZlZV9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfZXN0aW1hdGVkX3RyYW5zYWN0aW9uX2ZlZV9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfZXRoZXJldW1fYmxvY2tjaGFpbl9kYXRhLnB5CnRlc3QvdGVzdF9ldXJvcGVhbl9zZXBhX2FkZHJlc3MucHkKdGVzdC90ZXN0X2V1cm9wZWFuX3NlcGFfZGVzdGluYXRpb24ucHkKdGVzdC90ZXN0X2V2bV90b2tlbl9jcmVhdGVfcGFyYW1zX2R0by5weQp0ZXN0L3Rlc3RfZXhjaGFuZ2VfYWNjb3VudC5weQp0ZXN0L3Rlc3RfZXhjaGFuZ2VfYWNjb3VudHNfYXBpLnB5CnRlc3QvdGVzdF9leGNoYW5nZV9hc3NldC5weQp0ZXN0L3Rlc3RfZXhjaGFuZ2Vfc2V0dGxlbWVudF90cmFuc2FjdGlvbnNfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2V4Y2hhbmdlX3RyYWRpbmdfYWNjb3VudC5weQp0ZXN0L3Rlc3RfZXhjaGFuZ2VfdHlwZS5weQp0ZXN0L3Rlc3RfZXhlY3V0aW9uX2NvbnZlcnNpb25fb3BlcmF0aW9uLnB5CnRlc3QvdGVzdF9leGVjdXRpb25fZGlzYnVyc2VtZW50X29wZXJhdGlvbi5weQp0ZXN0L3Rlc3RfZXhlY3V0aW9uX29wZXJhdGlvbl9zdGF0dXMucHkKdGVzdC90ZXN0X2V4ZWN1dGlvbl9yZXF1ZXN0X2Jhc2VfZGV0YWlscy5weQp0ZXN0L3Rlc3RfZXhlY3V0aW9uX3JlcXVlc3RfZGV0YWlscy5weQp0ZXN0L3Rlc3RfZXhlY3V0aW9uX3JlcXVlc3RfZGV0YWlsc190eXBlLnB5CnRlc3QvdGVzdF9leGVjdXRpb25fcmVzcG9uc2VfYmFzZV9kZXRhaWxzLnB5CnRlc3QvdGVzdF9leGVjdXRpb25fcmVzcG9uc2VfZGV0YWlscy5weQp0ZXN0L3Rlc3RfZXhlY3V0aW9uX3NjcmVlbmluZ19vcGVyYXRpb24ucHkKdGVzdC90ZXN0X2V4ZWN1dGlvbl9zdGVwX2Vycm9yLnB5CnRlc3QvdGVzdF9leGVjdXRpb25fc3RlcF9zdGF0dXNfZW51bS5weQp0ZXN0L3Rlc3RfZXhlY3V0aW9uX3N0ZXBfdHlwZS5weQp0ZXN0L3Rlc3RfZXhlY3V0aW9uX3RyYW5zZmVyX29wZXJhdGlvbi5weQp0ZXN0L3Rlc3RfZXh0ZXJuYWxfYWNjb3VudC5weQp0ZXN0L3Rlc3RfZXh0ZXJuYWxfYWNjb3VudF9sb2NhbF9iYW5rX2FmcmljYS5weQp0ZXN0L3Rlc3RfZXh0ZXJuYWxfYWNjb3VudF9tb2JpbGVfbW9uZXkucHkKdGVzdC90ZXN0X2V4dGVybmFsX2FjY291bnRfbW9iaWxlX21vbmV5X3Byb3ZpZGVyLnB5CnRlc3QvdGVzdF9leHRlcm5hbF9hY2NvdW50X21vYmlsZV9tb25leV90eXBlLnB5CnRlc3QvdGVzdF9leHRlcm5hbF9hY2NvdW50X3NlbmRlcl9pbmZvcm1hdGlvbi5weQp0ZXN0L3Rlc3RfZXh0ZXJuYWxfYWNjb3VudF90eXBlLnB5CnRlc3QvdGVzdF9leHRlcm5hbF93YWxsZXRfYXNzZXQucHkKdGVzdC90ZXN0X2V4dGVybmFsX3dhbGxldHNfYXBpLnB5CnRlc3QvdGVzdF9leHRyYV9wYXJhbWV0ZXJzLnB5CnRlc3QvdGVzdF9mYWlsdXJlLnB5CnRlc3QvdGVzdF9mYWlsdXJlX3JlYXNvbi5weQp0ZXN0L3Rlc3RfZmVlLnB5CnRlc3QvdGVzdF9mZWVfYnJlYWtkb3duLnB5CnRlc3QvdGVzdF9mZWVfaW5mby5weQp0ZXN0L3Rlc3RfZmVlX2xldmVsLnB5CnRlc3QvdGVzdF9mZWVfcGF5ZXJfaW5mby5weQp0ZXN0L3Rlc3RfZmVlX3Byb3BlcnRpZXNfZGV0YWlscy5weQp0ZXN0L3Rlc3RfZmVlX3R5cGVfZW51bS5weQp0ZXN0L3Rlc3RfZmV0Y2hfYWJpX3JlcXVlc3RfZHRvLnB5CnRlc3QvdGVzdF9maWF0X2FjY291bnQucHkKdGVzdC90ZXN0X2ZpYXRfYWNjb3VudF90eXBlLnB5CnRlc3QvdGVzdF9maWF0X2FjY291bnRzX2FwaS5weQp0ZXN0L3Rlc3RfZmlhdF9hc3NldC5weQp0ZXN0L3Rlc3RfZmlhdF9kZXN0aW5hdGlvbi5weQp0ZXN0L3Rlc3RfZmlhdF9wYXltZW50X21ldGFkYXRhLnB5CnRlc3QvdGVzdF9maWF0X3RyYW5zZmVyLnB5CnRlc3QvdGVzdF9maXhlZF9hbW91bnRfdHlwZV9lbnVtLnB5CnRlc3QvdGVzdF9maXhlZF9mZWUucHkKdGVzdC90ZXN0X2ZyZWV6ZV90cmFuc2FjdGlvbl9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfZnVuY3Rpb25fZG9jLnB5CnRlc3QvdGVzdF9mdW5kcy5weQp0ZXN0L3Rlc3RfZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbi5weQp0ZXN0L3Rlc3RfZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbl9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfZ2FzX3N0YXRpb25fcHJvcGVydGllc19yZXNwb25zZS5weQp0ZXN0L3Rlc3RfZ2FzX3N0YXRpb25zX2FwaS5weQp0ZXN0L3Rlc3RfZ2Fzc2xlc3Nfc3RhbmRhcmRfY29uZmlndXJhdGlvbnMucHkKdGVzdC90ZXN0X2dhc3NsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zX2dhc2xlc3Nfc3RhbmRhcmRfY29uZmlndXJhdGlvbnNfdmFsdWUucHkKdGVzdC90ZXN0X2dldF9hcGlfdXNlcnNfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2dldF9hdWRpdF9sb2dzX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9nZXRfY29ubmVjdGlvbnNfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2dldF9jb25zb2xlX3VzZXJzX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9nZXRfZGVwbG95YWJsZV9hZGRyZXNzX3JlcXVlc3QucHkKdGVzdC90ZXN0X2dldF9leGNoYW5nZV9hY2NvdW50c19jcmVkZW50aWFsc19wdWJsaWNfa2V5X3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9nZXRfZmlsdGVyX3BhcmFtZXRlci5weQp0ZXN0L3Rlc3RfZ2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXNwb25zZS5weQp0ZXN0L3Rlc3RfZ2V0X2xheWVyX3plcm9fcGVlcnNfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2dldF9saW5rZWRfY29sbGVjdGlvbnNfcGFnaW5hdGVkX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9nZXRfbWF4X2JpcF9pbmRleF91c2VkX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9nZXRfbWF4X3NwZW5kYWJsZV9hbW91bnRfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2dldF9tcGNfa2V5c19yZXNwb25zZS5weQp0ZXN0L3Rlc3RfZ2V0X25mdHNfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2dldF9vcmRlcnNfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2dldF9vdGFfc3RhdHVzX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9nZXRfb3duZXJzaGlwX3Rva2Vuc19yZXNwb25zZS5weQp0ZXN0L3Rlc3RfZ2V0X3BhZ2VkX2V4Y2hhbmdlX2FjY291bnRzX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9nZXRfcGFnZWRfZXhjaGFuZ2VfYWNjb3VudHNfcmVzcG9uc2VfcGFnaW5nLnB5CnRlc3QvdGVzdF9nZXRfc2lnbmluZ19rZXlfcmVzcG9uc2VfZHRvLnB5CnRlc3QvdGVzdF9nZXRfdHJhbnNhY3Rpb25fb3BlcmF0aW9uLnB5CnRlc3QvdGVzdF9nZXRfdmFsaWRhdGlvbl9rZXlfcmVzcG9uc2VfZHRvLnB5CnRlc3QvdGVzdF9nZXRfd2hpdGVsaXN0X2lwX2FkZHJlc3Nlc19yZXNwb25zZS5weQp0ZXN0L3Rlc3RfZ2V0X3dvcmtzcGFjZV9zdGF0dXNfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2h0dHBfY29udHJhY3RfZG9lc19ub3RfZXhpc3RfZXJyb3IucHkKdGVzdC90ZXN0X2liYW5fYWRkcmVzcy5weQp0ZXN0L3Rlc3RfaWJhbl9kZXN0aW5hdGlvbi5weQp0ZXN0L3Rlc3RfaWJhbl9wYXltZW50X2luZm8ucHkKdGVzdC90ZXN0X2lkZW50aWZpY2F0aW9uLnB5CnRlc3QvdGVzdF9pZGxfdHlwZS5weQp0ZXN0L3Rlc3RfaW5kaWNhdGl2ZV9xdW90ZV9lbnVtLnB5CnRlc3QvdGVzdF9pbmRpY2F0aXZlX3F1b3RlX3R5cGUucHkKdGVzdC90ZXN0X2luaXRpYXRvcl9jb25maWcucHkKdGVzdC90ZXN0X2luaXRpYXRvcl9jb25maWdfcGF0dGVybi5weQp0ZXN0L3Rlc3RfaW5zdHJ1Y3Rpb25fYW1vdW50LnB5CnRlc3QvdGVzdF9pbnRlcmFjX2FkZHJlc3MucHkKdGVzdC90ZXN0X2ludGVyYWNfZGVzdGluYXRpb24ucHkKdGVzdC90ZXN0X2ludGVyYWNfcGF5bWVudF9pbmZvLnB5CnRlc3QvdGVzdF9pbnRlcm5hbF9yZWZlcmVuY2UucHkKdGVzdC90ZXN0X2ludGVybmFsX3RyYW5zZmVyX2FkZHJlc3MucHkKdGVzdC90ZXN0X2ludGVybmFsX3RyYW5zZmVyX2Rlc3RpbmF0aW9uLnB5CnRlc3QvdGVzdF9pbnRlcm5hbF90cmFuc2Zlcl9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfaW50ZXJuYWxfd2FsbGV0c19hcGkucHkKdGVzdC90ZXN0X2ludmFsaWRfcGFyYW1hdGVyX3ZhbHVlX2Vycm9yLnB5CnRlc3QvdGVzdF9qb2JfY3JlYXRlZC5weQp0ZXN0L3Rlc3Rfa2V5X2xpbmtfYmV0YV9hcGkucHkKdGVzdC90ZXN0X2tleXNfYmV0YV9hcGkucHkKdGVzdC90ZXN0X2xheWVyX3plcm9fYWRhcHRlcl9jcmVhdGVfcGFyYW1zLnB5CnRlc3QvdGVzdF9sYnRfcGF5bWVudF9pbmZvLnB5CnRlc3QvdGVzdF9sZWFuX2FiaV9mdW5jdGlvbi5weQp0ZXN0L3Rlc3RfbGVhbl9jb250cmFjdF9kdG8ucHkKdGVzdC90ZXN0X2xlYW5fZGVwbG95ZWRfY29udHJhY3RfcmVzcG9uc2VfZHRvLnB5CnRlc3QvdGVzdF9sZWdhY3lfYW1vdW50X2FnZ3JlZ2F0aW9uX3RpbWVfcGVyaW9kX21ldGhvZC5weQp0ZXN0L3Rlc3RfbGVnYWN5X2RyYWZ0X3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9sZWdhY3lfZHJhZnRfcmV2aWV3X2FuZF92YWxpZGF0aW9uX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9sZWdhY3lfcG9saWN5X2FuZF92YWxpZGF0aW9uX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9sZWdhY3lfcG9saWN5X2NoZWNrX3Jlc3VsdC5weQp0ZXN0L3Rlc3RfbGVnYWN5X3BvbGljeV9tZXRhZGF0YS5weQp0ZXN0L3Rlc3RfbGVnYWN5X3BvbGljeV9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfbGVnYWN5X3BvbGljeV9ydWxlLnB5CnRlc3QvdGVzdF9sZWdhY3lfcG9saWN5X3J1bGVfYW1vdW50LnB5CnRlc3QvdGVzdF9sZWdhY3lfcG9saWN5X3J1bGVfYW1vdW50X2FnZ3JlZ2F0aW9uLnB5CnRlc3QvdGVzdF9sZWdhY3lfcG9saWN5X3J1bGVfYXV0aG9yaXphdGlvbl9ncm91cHMucHkKdGVzdC90ZXN0X2xlZ2FjeV9wb2xpY3lfcnVsZV9hdXRob3JpemF0aW9uX2dyb3Vwc19ncm91cHNfaW5uZXIucHkKdGVzdC90ZXN0X2xlZ2FjeV9wb2xpY3lfcnVsZV9jaGVja19yZXN1bHQucHkKdGVzdC90ZXN0X2xlZ2FjeV9wb2xpY3lfcnVsZV9kZXNpZ25hdGVkX3NpZ25lcnMucHkKdGVzdC90ZXN0X2xlZ2FjeV9wb2xpY3lfcnVsZV9kc3QucHkKdGVzdC90ZXN0X2xlZ2FjeV9wb2xpY3lfcnVsZV9lcnJvci5weQp0ZXN0L3Rlc3RfbGVnYWN5X3BvbGljeV9ydWxlX29wZXJhdG9ycy5weQp0ZXN0L3Rlc3RfbGVnYWN5X3BvbGljeV9ydWxlX3Jhd19tZXNzYWdlX3NpZ25pbmcucHkKdGVzdC90ZXN0X2xlZ2FjeV9wb2xpY3lfcnVsZV9yYXdfbWVzc2FnZV9zaWduaW5nX2Rlcml2YXRpb25fcGF0aC5weQp0ZXN0L3Rlc3RfbGVnYWN5X3BvbGljeV9ydWxlX3NyYy5weQp0ZXN0L3Rlc3RfbGVnYWN5X3BvbGljeV9ydWxlcy5weQp0ZXN0L3Rlc3RfbGVnYWN5X3BvbGljeV9zcmNfb3JfZGVzdF9zdWJfdHlwZS5weQp0ZXN0L3Rlc3RfbGVnYWN5X3BvbGljeV9zcmNfb3JfZGVzdF90eXBlLnB5CnRlc3QvdGVzdF9sZWdhY3lfcG9saWN5X3N0YXR1cy5weQp0ZXN0L3Rlc3RfbGVnYWN5X3BvbGljeV92YWxpZGF0aW9uLnB5CnRlc3QvdGVzdF9sZWdhY3lfcHVibGlzaF9kcmFmdF9yZXF1ZXN0LnB5CnRlc3QvdGVzdF9sZWdhY3lfcHVibGlzaF9yZXN1bHQucHkKdGVzdC90ZXN0X2xlZ2FjeV9zcmNfb3JfZGVzdF9hdHRyaWJ1dGVzX2lubmVyLnB5CnRlc3QvdGVzdF9saW5rZWRfdG9rZW5zX2NvdW50LnB5CnRlc3QvdGVzdF9saXN0X2Fzc2V0c19yZXNwb25zZS5weQp0ZXN0L3Rlc3RfbGlzdF9ibG9ja2NoYWluc19yZXNwb25zZS5weQp0ZXN0L3Rlc3RfbGlzdF9vd25lZF9jb2xsZWN0aW9uc19yZXNwb25zZS5weQp0ZXN0L3Rlc3RfbGlzdF9vd25lZF90b2tlbnNfcmVzcG9uc2UucHkKdGVzdC90ZXN0X2xvY2FsX2JhbmtfdHJhbnNmZXJfYWZyaWNhX2FkZHJlc3MucHkKdGVzdC90ZXN0X2xvY2FsX2JhbmtfdHJhbnNmZXJfYWZyaWNhX2Rlc3RpbmF0aW9uLnB5CnRlc3QvdGVzdF9tYW5pZmVzdC5weQp0ZXN0L3Rlc3RfbWFuaWZlc3RfYmFzZS5weQp0ZXN0L3Rlc3RfbWFuaWZlc3Rfb3JkZXIucHkKdGVzdC90ZXN0X21hbmlmZXN0X29yZGVyX2luZm8ucHkKdGVzdC90ZXN0X21hbmlmZXN0X3F1b3RlLnB5CnRlc3QvdGVzdF9tYW5pZmVzdF9xdW90ZV9pbmZvLnB5CnRlc3QvdGVzdF9tYXJrZXRfZXhlY3V0aW9uX3JlcXVlc3RfZGV0YWlscy5weQp0ZXN0L3Rlc3RfbWFya2V0X2V4ZWN1dGlvbl9yZXNwb25zZV9kZXRhaWxzLnB5CnRlc3QvdGVzdF9tYXJrZXRfcmVxdW90ZV9yZXF1ZXN0X2RldGFpbHMucHkKdGVzdC90ZXN0X21hcmtldF9yZXF1b3RlX3R5cGVfZW51bS5weQp0ZXN0L3Rlc3RfbWFya2V0X3R5cGVfZGV0YWlscy5weQp0ZXN0L3Rlc3RfbWFya2V0X3R5cGVfZW51bS5weQp0ZXN0L3Rlc3RfbWVkaWFfZW50aXR5X3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9tZXJnZV9zdGFrZV9hY2NvdW50c19yZXF1ZXN0LnB5CnRlc3QvdGVzdF9tZXJnZV9zdGFrZV9hY2NvdW50c19yZXNwb25zZS5weQp0ZXN0L3Rlc3RfbW9iaWxlX21vbmV5X2FkZHJlc3MucHkKdGVzdC90ZXN0X21vYmlsZV9tb25leV9kZXN0aW5hdGlvbi5weQp0ZXN0L3Rlc3RfbW9kaWZ5X3NpZ25pbmdfa2V5X2FnZW50X2lkX2R0by5weQp0ZXN0L3Rlc3RfbW9kaWZ5X3NpZ25pbmdfa2V5X2R0by5weQp0ZXN0L3Rlc3RfbW9kaWZ5X3ZhbGlkYXRpb25fa2V5X2R0by5weQp0ZXN0L3Rlc3RfbW9tb19wYXltZW50X2luZm8ucHkKdGVzdC90ZXN0X21wY19rZXkucHkKdGVzdC90ZXN0X211bHRpY2hhaW5fZGVwbG95bWVudF9tZXRhZGF0YS5weQp0ZXN0L3Rlc3RfbmV0d29ya19jaGFubmVsLnB5CnRlc3QvdGVzdF9uZXR3b3JrX2Nvbm5lY3Rpb24ucHkKdGVzdC90ZXN0X25ldHdvcmtfY29ubmVjdGlvbl9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfbmV0d29ya19jb25uZWN0aW9uX3JvdXRpbmdfcG9saWN5X3ZhbHVlLnB5CnRlc3QvdGVzdF9uZXR3b3JrX2Nvbm5lY3Rpb25fc3RhdHVzLnB5CnRlc3QvdGVzdF9uZXR3b3JrX2Nvbm5lY3Rpb25zX2FwaS5weQp0ZXN0L3Rlc3RfbmV0d29ya19mZWUucHkKdGVzdC90ZXN0X25ldHdvcmtfaWQucHkKdGVzdC90ZXN0X25ldHdvcmtfaWRfcmVzcG9uc2UucHkKdGVzdC90ZXN0X25ldHdvcmtfaWRfcm91dGluZ19wb2xpY3lfdmFsdWUucHkKdGVzdC90ZXN0X25ldHdvcmtfcmVjb3JkLnB5CnRlc3QvdGVzdF9uZXdfYWRkcmVzcy5weQp0ZXN0L3Rlc3RfbmZ0c19hcGkucHkKdGVzdC90ZXN0X25vbmVfbmV0d29ya19yb3V0aW5nX2Rlc3QucHkKdGVzdC90ZXN0X25vdF9mb3VuZF9leGNlcHRpb24ucHkKdGVzdC90ZXN0X25vdGlmaWNhdGlvbi5weQp0ZXN0L3Rlc3Rfbm90aWZpY2F0aW9uX2F0dGVtcHQucHkKdGVzdC90ZXN0X25vdGlmaWNhdGlvbl9hdHRlbXB0c19wYWdpbmF0ZWRfcmVzcG9uc2UucHkKdGVzdC90ZXN0X25vdGlmaWNhdGlvbl9wYWdpbmF0ZWRfcmVzcG9uc2UucHkKdGVzdC90ZXN0X25vdGlmaWNhdGlvbl9zdGF0dXMucHkKdGVzdC90ZXN0X25vdGlmaWNhdGlvbl93aXRoX2RhdGEucHkKdGVzdC90ZXN0X29mZl9leGNoYW5nZXNfYXBpLnB5CnRlc3QvdGVzdF9vbmNoYWluX2RhdGFfYXBpLnB5CnRlc3QvdGVzdF9vbmNoYWluX3RyYW5zYWN0aW9uLnB5CnRlc3QvdGVzdF9vbmNoYWluX3RyYW5zYWN0aW9uc19wYWdlZF9yZXNwb25zZS5weQp0ZXN0L3Rlc3Rfb25lX3RpbWVfYWRkcmVzcy5weQp0ZXN0L3Rlc3Rfb25lX3RpbWVfYWRkcmVzc19hY2NvdW50LnB5CnRlc3QvdGVzdF9vbmVfdGltZV9hZGRyZXNzX3BlZXJfdHlwZS5weQp0ZXN0L3Rlc3Rfb25lX3RpbWVfYWRkcmVzc19yZWZlcmVuY2UucHkKdGVzdC90ZXN0X29wZXJhdGlvbl9leGVjdXRpb25fZmFpbHVyZS5weQp0ZXN0L3Rlc3Rfb3JkZXJfZGV0YWlscy5weQp0ZXN0L3Rlc3Rfb3JkZXJfZXhlY3V0aW9uX3N0ZXAucHkKdGVzdC90ZXN0X29yZGVyX3NpZGUucHkKdGVzdC90ZXN0X29yZGVyX3N0YXR1cy5weQp0ZXN0L3Rlc3Rfb3JkZXJfc3VtbWFyeS5weQp0ZXN0L3Rlc3Rfb3RhX2JldGFfYXBpLnB5CnRlc3QvdGVzdF9wYWdpbmF0ZWRfYWRkcmVzc19yZXNwb25zZS5weQp0ZXN0L3Rlc3RfcGFnaW5hdGVkX2FkZHJlc3NfcmVzcG9uc2VfcGFnaW5nLnB5CnRlc3QvdGVzdF9wYWdpbmF0ZWRfYXNzZXRfd2FsbGV0X3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9wYWdpbmF0ZWRfYXNzZXRfd2FsbGV0X3Jlc3BvbnNlX3BhZ2luZy5weQp0ZXN0L3Rlc3RfcGFnaW5hdGVkX2Fzc2V0c19yZXNwb25zZS5weQp0ZXN0L3Rlc3RfcGFnaW5nLnB5CnRlc3QvdGVzdF9wYWlyX2FwaV9rZXlfcmVxdWVzdC5weQp0ZXN0L3Rlc3RfcGFpcl9hcGlfa2V5X3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9wYXJhbWV0ZXIucHkKdGVzdC90ZXN0X3BhcmFtZXRlcl93aXRoX3ZhbHVlLnB5CnRlc3QvdGVzdF9wYXJ0aWNpcGFudF9yZWxhdGlvbnNoaXBfdHlwZS5weQp0ZXN0L3Rlc3RfcGFydGljaXBhbnRzX2lkZW50aWZpY2F0aW9uLnB5CnRlc3QvdGVzdF9wYXllZV9hY2NvdW50LnB5CnRlc3QvdGVzdF9wYXllZV9hY2NvdW50X3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9wYXllZV9hY2NvdW50X3R5cGUucHkKdGVzdC90ZXN0X3BheWlkX2FkZHJlc3MucHkKdGVzdC90ZXN0X3BheWlkX2Rlc3RpbmF0aW9uLnB5CnRlc3QvdGVzdF9wYXlpZF9wYXltZW50X2luZm8ucHkKdGVzdC90ZXN0X3BheW1lbnRfYWNjb3VudC5weQp0ZXN0L3Rlc3RfcGF5bWVudF9hY2NvdW50X3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9wYXltZW50X2FjY291bnRfdHlwZS5weQp0ZXN0L3Rlc3RfcGF5bWVudF9pbnN0cnVjdGlvbnMucHkKdGVzdC90ZXN0X3BheW1lbnRfaW5zdHJ1Y3Rpb25zX29uZV9vZi5weQp0ZXN0L3Rlc3RfcGF5bWVudF9yZWRpcmVjdC5weQp0ZXN0L3Rlc3RfcGF5bWVudHNfcGF5b3V0X2FwaS5weQp0ZXN0L3Rlc3RfcGF5b3V0X2luaXRfbWV0aG9kLnB5CnRlc3QvdGVzdF9wYXlvdXRfaW5zdHJ1Y3Rpb24ucHkKdGVzdC90ZXN0X3BheW91dF9pbnN0cnVjdGlvbl9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfcGF5b3V0X2luc3RydWN0aW9uX3N0YXRlLnB5CnRlc3QvdGVzdF9wYXlvdXRfcmVzcG9uc2UucHkKdGVzdC90ZXN0X3BheW91dF9zdGF0ZS5weQp0ZXN0L3Rlc3RfcGF5b3V0X3N0YXR1cy5weQp0ZXN0L3Rlc3RfcGVlcl9hZGFwdGVyX2luZm8ucHkKdGVzdC90ZXN0X3BlZXJfdHlwZS5weQp0ZXN0L3Rlc3RfcGVyc29uYWxfZW50aXR5X3R5cGVfZW51bS5weQp0ZXN0L3Rlc3RfcGVyc29uYWxfaWRlbnRpZmljYXRpb24ucHkKdGVzdC90ZXN0X3BlcnNvbmFsX2lkZW50aWZpY2F0aW9uX2Z1bGxfbmFtZS5weQp0ZXN0L3Rlc3RfcGVyc29uYWxfaWRlbnRpZmljYXRpb25fdHlwZS5weQp0ZXN0L3Rlc3RfcGl4X2FkZHJlc3MucHkKdGVzdC90ZXN0X3BpeF9kZXN0aW5hdGlvbi5weQp0ZXN0L3Rlc3RfcGl4X3BheW1lbnRfaW5mby5weQp0ZXN0L3Rlc3RfcGxhdGZvcm1fYWNjb3VudC5weQp0ZXN0L3Rlc3RfcGxhdGZvcm1fcGVlcl90eXBlLnB5CnRlc3QvdGVzdF9wbGF5ZXJzLnB5CnRlc3QvdGVzdF9wb2xpY3lfYW5kX3ZhbGlkYXRpb25fcmVzcG9uc2UucHkKdGVzdC90ZXN0X3BvbGljeV9jaGVja19yZXN1bHQucHkKdGVzdC90ZXN0X3BvbGljeV9jdXJyZW5jeS5weQp0ZXN0L3Rlc3RfcG9saWN5X2VkaXRvcl9iZXRhX2FwaS5weQp0ZXN0L3Rlc3RfcG9saWN5X2VkaXRvcl92Ml9iZXRhX2FwaS5weQp0ZXN0L3Rlc3RfcG9saWN5X21ldGFkYXRhLnB5CnRlc3QvdGVzdF9wb2xpY3lfb3BlcmF0b3IucHkKdGVzdC90ZXN0X3BvbGljeV9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfcG9saWN5X3J1bGUucHkKdGVzdC90ZXN0X3BvbGljeV9ydWxlX2NoZWNrX3Jlc3VsdC5weQp0ZXN0L3Rlc3RfcG9saWN5X3J1bGVfZXJyb3IucHkKdGVzdC90ZXN0X3BvbGljeV9zdGF0dXMucHkKdGVzdC90ZXN0X3BvbGljeV90YWcucHkKdGVzdC90ZXN0X3BvbGljeV90eXBlLnB5CnRlc3QvdGVzdF9wb2xpY3lfdmFsaWRhdGlvbi5weQp0ZXN0L3Rlc3RfcG9saWN5X3ZlcmRpY3RfYWN0aW9uX2VudW0ucHkKdGVzdC90ZXN0X3BvbGljeV92ZXJkaWN0X2FjdGlvbl9lbnVtMi5weQp0ZXN0L3Rlc3RfcG9zaXRpb24ucHkKdGVzdC90ZXN0X3Bvc3RhbF9hZGRyZXNzLnB5CnRlc3QvdGVzdF9wcmVfc2NyZWVuaW5nLnB5CnRlc3QvdGVzdF9wcmVmdW5kZWRfc2V0dGxlbWVudC5weQp0ZXN0L3Rlc3RfcHJlZnVuZGVkX3NldHRsZW1lbnRfdHlwZS5weQp0ZXN0L3Rlc3RfcHJvZ3JhbV9jYWxsX2NvbmZpZy5weQp0ZXN0L3Rlc3RfcHJvdmlkZXIucHkKdGVzdC90ZXN0X3Byb3ZpZGVyc19saXN0X3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9wdWJsaWNfa2V5X2luZm9ybWF0aW9uLnB5CnRlc3QvdGVzdF9wdWJsaXNoX2RyYWZ0X3JlcXVlc3QucHkKdGVzdC90ZXN0X3B1Ymxpc2hfcmVzdWx0LnB5CnRlc3QvdGVzdF9xdW90ZS5weQp0ZXN0L3Rlc3RfcXVvdGVfZXhlY3V0aW9uX3JlcXVlc3RfZGV0YWlscy5weQp0ZXN0L3Rlc3RfcXVvdGVfZXhlY3V0aW9uX3N0ZXAucHkKdGVzdC90ZXN0X3F1b3RlX2V4ZWN1dGlvbl90eXBlX2RldGFpbHMucHkKdGVzdC90ZXN0X3F1b3RlX2V4ZWN1dGlvbl93aXRoX3JlcXVvdGVfcmVxdWVzdF9kZXRhaWxzLnB5CnRlc3QvdGVzdF9xdW90ZV9leGVjdXRpb25fd2l0aF9yZXF1b3RlX3Jlc3BvbnNlX2RldGFpbHMucHkKdGVzdC90ZXN0X3F1b3RlX2ZhaWx1cmUucHkKdGVzdC90ZXN0X3F1b3RlX3Byb3BlcnRpZXNfZGV0YWlscy5weQp0ZXN0L3Rlc3RfcXVvdGVfdHlwZV9lbnVtLnB5CnRlc3QvdGVzdF9xdW90ZXNfcmVzcG9uc2UucHkKdGVzdC90ZXN0X3JlX3F1b3RlX2RldGFpbHMucHkKdGVzdC90ZXN0X3JlX3F1b3RlX2RldGFpbHNfcmVfcXVvdGUucHkKdGVzdC90ZXN0X3JlYWRfYWJpX2Z1bmN0aW9uLnB5CnRlc3QvdGVzdF9yZWFkX2NhbGxfZnVuY3Rpb25fZHRvLnB5CnRlc3QvdGVzdF9yZWFkX2NhbGxfZnVuY3Rpb25fZHRvX2FiaV9mdW5jdGlvbi5weQp0ZXN0L3Rlc3RfcmVjaXBpZW50X2hhbmRsZS5weQp0ZXN0L3Rlc3RfcmVkZWVtX2Z1bmRzX3RvX2xpbmtlZF9kZGFfcmVzcG9uc2UucHkKdGVzdC90ZXN0X3JlZ2lzdGVyX25ld19hc3NldF9yZXF1ZXN0LnB5CnRlc3QvdGVzdF9yZWlzc3VlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdC5weQp0ZXN0L3Rlc3RfcmVsYXRlZF9yZXF1ZXN0LnB5CnRlc3QvdGVzdF9yZWxhdGVkX3RyYW5zYWN0aW9uLnB5CnRlc3QvdGVzdF9yZW1vdmVfY29sbGF0ZXJhbF9yZXF1ZXN0X2JvZHkucHkKdGVzdC90ZXN0X3JlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJfZmFpbGVkX3Jlc3VsdC5weQp0ZXN0L3Rlc3RfcmVtb3ZlX2xheWVyX3plcm9fYWRhcHRlcnNfcmVxdWVzdC5weQp0ZXN0L3Rlc3RfcmVtb3ZlX2xheWVyX3plcm9fYWRhcHRlcnNfcmVzcG9uc2UucHkKdGVzdC90ZXN0X3JlbW92ZV9sYXllcl96ZXJvX3BlZXJzX3JlcXVlc3QucHkKdGVzdC90ZXN0X3JlbW92ZV9sYXllcl96ZXJvX3BlZXJzX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9yZW5hbWVfY29ubmVjdGVkX2FjY291bnRfcmVxdWVzdC5weQp0ZXN0L3Rlc3RfcmVuYW1lX2Nvbm5lY3RlZF9hY2NvdW50X3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9yZW5hbWVfY29zaWduZXIucHkKdGVzdC90ZXN0X3JlbmFtZV92YXVsdF9hY2NvdW50X3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9yZXNlbmRfZmFpbGVkX25vdGlmaWNhdGlvbnNfam9iX3N0YXR1c19yZXNwb25zZS5weQp0ZXN0L3Rlc3RfcmVzZW5kX2ZhaWxlZF9ub3RpZmljYXRpb25zX3JlcXVlc3QucHkKdGVzdC90ZXN0X3Jlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19yZXNwb25zZS5weQp0ZXN0L3Rlc3RfcmVzZW5kX25vdGlmaWNhdGlvbnNfYnlfcmVzb3VyY2VfaWRfcmVxdWVzdC5weQp0ZXN0L3Rlc3RfcmVzZW5kX3RyYW5zYWN0aW9uX3dlYmhvb2tzX3JlcXVlc3QucHkKdGVzdC90ZXN0X3Jlc2VuZF93ZWJob29rc19ieV90cmFuc2FjdGlvbl9pZF9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfcmVzZW5kX3dlYmhvb2tzX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9yZXNldF9kZXZpY2VfYXBpLnB5CnRlc3QvdGVzdF9yZXNwb25kX3RvX2Nvbm5lY3Rpb25fcmVxdWVzdC5weQp0ZXN0L3Rlc3RfcmV0cnlfcmVxdW90ZV9yZXF1ZXN0X2RldGFpbHMucHkKdGVzdC90ZXN0X3JldHJ5X3JlcXVvdGVfdHlwZV9lbnVtLnB5CnRlc3QvdGVzdF9yZXdhcmRfaW5mby5weQp0ZXN0L3Rlc3RfcmV3YXJkc19pbmZvLnB5CnRlc3QvdGVzdF9yb2xlX2RldGFpbHMucHkKdGVzdC90ZXN0X3JvbGVfZ3JhbnRlZS5weQp0ZXN0L3Rlc3Rfc2NvcGVfaXRlbS5weQp0ZXN0L3Rlc3Rfc2NyZWVuaW5nX2FsZXJ0X2V4cG9zdXJlX3R5cGVfZW51bS5weQp0ZXN0L3Rlc3Rfc2NyZWVuaW5nX2FtbF9hbGVydC5weQp0ZXN0L3Rlc3Rfc2NyZWVuaW5nX2FtbF9tYXRjaGVkX3J1bGUucHkKdGVzdC90ZXN0X3NjcmVlbmluZ19hbWxfcmVzdWx0LnB5CnRlc3QvdGVzdF9zY3JlZW5pbmdfY29uZmlndXJhdGlvbnNfcmVxdWVzdC5weQp0ZXN0L3Rlc3Rfc2NyZWVuaW5nX21ldGFkYXRhX2NvbmZpZy5weQp0ZXN0L3Rlc3Rfc2NyZWVuaW5nX29wZXJhdGlvbl9leGVjdXRpb24ucHkKdGVzdC90ZXN0X3NjcmVlbmluZ19vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dC5weQp0ZXN0L3Rlc3Rfc2NyZWVuaW5nX29wZXJhdGlvbl9mYWlsdXJlLnB5CnRlc3QvdGVzdF9zY3JlZW5pbmdfb3BlcmF0aW9uX3R5cGUucHkKdGVzdC90ZXN0X3NjcmVlbmluZ19wb2xpY3lfcmVzcG9uc2UucHkKdGVzdC90ZXN0X3NjcmVlbmluZ19wcm92aWRlcl9ydWxlc19jb25maWd1cmF0aW9uX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9zY3JlZW5pbmdfdHJfbGlua19hbW91bnQucHkKdGVzdC90ZXN0X3NjcmVlbmluZ190cl9saW5rX21pc3NpbmdfdHJtX2RlY2lzaW9uLnB5CnRlc3QvdGVzdF9zY3JlZW5pbmdfdHJfbGlua19taXNzaW5nX3RybV9ydWxlLnB5CnRlc3QvdGVzdF9zY3JlZW5pbmdfdHJfbGlua19wb3N0X3NjcmVlbmluZ19ydWxlLnB5CnRlc3QvdGVzdF9zY3JlZW5pbmdfdHJfbGlua19wcmVzY3JlZW5pbmdfcnVsZS5weQp0ZXN0L3Rlc3Rfc2NyZWVuaW5nX3RyX2xpbmtfcnVsZV9iYXNlLnB5CnRlc3QvdGVzdF9zY3JlZW5pbmdfdHJhdmVsX3J1bGVfbWF0Y2hlZF9ydWxlLnB5CnRlc3QvdGVzdF9zY3JlZW5pbmdfdHJhdmVsX3J1bGVfcHJlc2NyZWVuaW5nX3J1bGUucHkKdGVzdC90ZXN0X3NjcmVlbmluZ190cmF2ZWxfcnVsZV9yZXN1bHQucHkKdGVzdC90ZXN0X3NjcmVlbmluZ191cGRhdGVfY29uZmlndXJhdGlvbnMucHkKdGVzdC90ZXN0X3NjcmVlbmluZ192YWxpZGF0aW9uX2ZhaWx1cmUucHkKdGVzdC90ZXN0X3NjcmVlbmluZ192ZXJkaWN0LnB5CnRlc3QvdGVzdF9zY3JlZW5pbmdfdmVyZGljdF9lbnVtLnB5CnRlc3QvdGVzdF9zY3JlZW5pbmdfdmVyZGljdF9tYXRjaGVkX3J1bGUucHkKdGVzdC90ZXN0X3NlYXJjaF9uZXR3b3JrX2lkc19yZXNwb25zZS5weQp0ZXN0L3Rlc3Rfc2VwYV9hZGRyZXNzLnB5CnRlc3QvdGVzdF9zZXBhX2Rlc3RpbmF0aW9uLnB5CnRlc3QvdGVzdF9zZXBhX3BheW1lbnRfaW5mby5weQp0ZXN0L3Rlc3Rfc2Vzc2lvbl9kdG8ucHkKdGVzdC90ZXN0X3Nlc3Npb25fbWV0YWRhdGEucHkKdGVzdC90ZXN0X3NldF9hZG1pbl9xdW9ydW1fdGhyZXNob2xkX3JlcXVlc3QucHkKdGVzdC90ZXN0X3NldF9hZG1pbl9xdW9ydW1fdGhyZXNob2xkX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9zZXRfYXNzZXRfcHJpY2VfcmVxdWVzdC5weQp0ZXN0L3Rlc3Rfc2V0X2F1dG9fZnVlbF9yZXF1ZXN0LnB5CnRlc3QvdGVzdF9zZXRfY29uZmlybWF0aW9uc190aHJlc2hvbGRfcmVxdWVzdC5weQp0ZXN0L3Rlc3Rfc2V0X2NvbmZpcm1hdGlvbnNfdGhyZXNob2xkX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9zZXRfY3VzdG9tZXJfcmVmX2lkX2Zvcl9hZGRyZXNzX3JlcXVlc3QucHkKdGVzdC90ZXN0X3NldF9jdXN0b21lcl9yZWZfaWRfcmVxdWVzdC5weQp0ZXN0L3Rlc3Rfc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXF1ZXN0LnB5CnRlc3QvdGVzdF9zZXRfbGF5ZXJfemVyb19kdm5fY29uZmlnX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9zZXRfbGF5ZXJfemVyb19wZWVyc19yZXF1ZXN0LnB5CnRlc3QvdGVzdF9zZXRfbGF5ZXJfemVyb19wZWVyc19yZXNwb25zZS5weQp0ZXN0L3Rlc3Rfc2V0X25ldHdvcmtfaWRfZGlzY292ZXJhYmlsaXR5X3JlcXVlc3QucHkKdGVzdC90ZXN0X3NldF9uZXR3b3JrX2lkX25hbWVfcmVxdWVzdC5weQp0ZXN0L3Rlc3Rfc2V0X25ldHdvcmtfaWRfcmVzcG9uc2UucHkKdGVzdC90ZXN0X3NldF9uZXR3b3JrX2lkX3JvdXRpbmdfcG9saWN5X3JlcXVlc3QucHkKdGVzdC90ZXN0X3NldF9vdGFfc3RhdHVzX3JlcXVlc3QucHkKdGVzdC90ZXN0X3NldF9vdGFfc3RhdHVzX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9zZXRfb3RhX3N0YXR1c19yZXNwb25zZV9vbmVfb2YucHkKdGVzdC90ZXN0X3NldF9yb3V0aW5nX3BvbGljeV9yZXF1ZXN0LnB5CnRlc3QvdGVzdF9zZXRfcm91dGluZ19wb2xpY3lfcmVzcG9uc2UucHkKdGVzdC90ZXN0X3NldHRsZW1lbnQucHkKdGVzdC90ZXN0X3NldHRsZW1lbnRfcmVxdWVzdF9ib2R5LnB5CnRlc3QvdGVzdF9zZXR0bGVtZW50X3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9zZXR0bGVtZW50X3NvdXJjZV9hY2NvdW50LnB5CnRlc3QvdGVzdF9zZXR0bGVtZW50X3R5cGVfZW51bS5weQp0ZXN0L3Rlc3Rfc2lkZS5weQp0ZXN0L3Rlc3Rfc2lnbmVkX21lc3NhZ2UucHkKdGVzdC90ZXN0X3NpZ25lZF9tZXNzYWdlX3NpZ25hdHVyZS5weQp0ZXN0L3Rlc3Rfc2lnbmluZ19rZXlfZHRvLnB5CnRlc3QvdGVzdF9zbWFydF90cmFuc2Zlcl9hcGkucHkKdGVzdC90ZXN0X3NtYXJ0X3RyYW5zZmVyX2FwcHJvdmVfdGVybS5weQp0ZXN0L3Rlc3Rfc21hcnRfdHJhbnNmZXJfYmFkX3JlcXVlc3RfcmVzcG9uc2UucHkKdGVzdC90ZXN0X3NtYXJ0X3RyYW5zZmVyX2NvaW5fc3RhdGlzdGljLnB5CnRlc3QvdGVzdF9zbWFydF90cmFuc2Zlcl9jcmVhdGVfdGlja2V0LnB5CnRlc3QvdGVzdF9zbWFydF90cmFuc2Zlcl9jcmVhdGVfdGlja2V0X3Rlcm0ucHkKdGVzdC90ZXN0X3NtYXJ0X3RyYW5zZmVyX2ZvcmJpZGRlbl9yZXNwb25zZS5weQp0ZXN0L3Rlc3Rfc21hcnRfdHJhbnNmZXJfZnVuZF9kdnBfdGlja2V0LnB5CnRlc3QvdGVzdF9zbWFydF90cmFuc2Zlcl9mdW5kX3Rlcm0ucHkKdGVzdC90ZXN0X3NtYXJ0X3RyYW5zZmVyX21hbnVhbGx5X2Z1bmRfdGVybS5weQp0ZXN0L3Rlc3Rfc21hcnRfdHJhbnNmZXJfbm90X2ZvdW5kX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9zbWFydF90cmFuc2Zlcl9zZXRfdGlja2V0X2V4cGlyYXRpb24ucHkKdGVzdC90ZXN0X3NtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXh0ZXJuYWxfaWQucHkKdGVzdC90ZXN0X3NtYXJ0X3RyYW5zZmVyX3NldF91c2VyX2dyb3Vwcy5weQp0ZXN0L3Rlc3Rfc21hcnRfdHJhbnNmZXJfc3RhdGlzdGljLnB5CnRlc3QvdGVzdF9zbWFydF90cmFuc2Zlcl9zdGF0aXN0aWNfaW5mbG93LnB5CnRlc3QvdGVzdF9zbWFydF90cmFuc2Zlcl9zdGF0aXN0aWNfb3V0Zmxvdy5weQp0ZXN0L3Rlc3Rfc21hcnRfdHJhbnNmZXJfc3VibWl0X3RpY2tldC5weQp0ZXN0L3Rlc3Rfc21hcnRfdHJhbnNmZXJfdGlja2V0LnB5CnRlc3QvdGVzdF9zbWFydF90cmFuc2Zlcl90aWNrZXRfZmlsdGVyZWRfcmVzcG9uc2UucHkKdGVzdC90ZXN0X3NtYXJ0X3RyYW5zZmVyX3RpY2tldF9yZXNwb25zZS5weQp0ZXN0L3Rlc3Rfc21hcnRfdHJhbnNmZXJfdGlja2V0X3Rlcm0ucHkKdGVzdC90ZXN0X3NtYXJ0X3RyYW5zZmVyX3RpY2tldF90ZXJtX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9zbWFydF90cmFuc2Zlcl91cGRhdGVfdGlja2V0X3Rlcm0ucHkKdGVzdC90ZXN0X3NtYXJ0X3RyYW5zZmVyX3VzZXJfZ3JvdXBzLnB5CnRlc3QvdGVzdF9zbWFydF90cmFuc2Zlcl91c2VyX2dyb3Vwc19yZXNwb25zZS5weQp0ZXN0L3Rlc3Rfc29sX2FjY291bnQucHkKdGVzdC90ZXN0X3NvbF9hY2NvdW50X3dpdGhfdmFsdWUucHkKdGVzdC90ZXN0X3NvbF9wYXJhbWV0ZXIucHkKdGVzdC90ZXN0X3NvbF9wYXJhbWV0ZXJfd2l0aF92YWx1ZS5weQp0ZXN0L3Rlc3Rfc29sYW5hX2Jsb2NrY2hhaW5fZGF0YS5weQp0ZXN0L3Rlc3Rfc29sYW5hX2NvbmZpZy5weQp0ZXN0L3Rlc3Rfc29sYW5hX2luc3RydWN0aW9uLnB5CnRlc3QvdGVzdF9zb2xhbmFfaW5zdHJ1Y3Rpb25fd2l0aF92YWx1ZS5weQp0ZXN0L3Rlc3Rfc29sYW5hX3NpbXBsZV9jcmVhdGVfcGFyYW1zLnB5CnRlc3QvdGVzdF9zb3VyY2VfY29uZmlnLnB5CnRlc3QvdGVzdF9zb3VyY2VfdHJhbnNmZXJfcGVlcl9wYXRoLnB5CnRlc3QvdGVzdF9zb3VyY2VfdHJhbnNmZXJfcGVlcl9wYXRoX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9zcGFtX293bmVyc2hpcF9yZXNwb25zZS5weQp0ZXN0L3Rlc3Rfc3BhbV90b2tlbl9yZXNwb25zZS5weQp0ZXN0L3Rlc3Rfc3BlaV9hZGRyZXNzLnB5CnRlc3QvdGVzdF9zcGVpX2FkdmFuY2VkX3BheW1lbnRfaW5mby5weQp0ZXN0L3Rlc3Rfc3BlaV9iYXNpY19wYXltZW50X2luZm8ucHkKdGVzdC90ZXN0X3NwZWlfZGVzdGluYXRpb24ucHkKdGVzdC90ZXN0X3NwbGl0X3JlcXVlc3QucHkKdGVzdC90ZXN0X3NwbGl0X3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF9zdF9ldGhfYmxvY2tjaGFpbl9kYXRhLnB5CnRlc3QvdGVzdF9zdGFrZV9yZXF1ZXN0LnB5CnRlc3QvdGVzdF9zdGFrZV9yZXNwb25zZS5weQp0ZXN0L3Rlc3Rfc3Rha2luZ19hcGkucHkKdGVzdC90ZXN0X3N0YWtpbmdfcG9zaXRpb25zX3BhZ2luYXRlZF9yZXNwb25zZS5weQp0ZXN0L3Rlc3Rfc3Rha2luZ19wcm92aWRlci5weQp0ZXN0L3Rlc3Rfc3RhdHVzLnB5CnRlc3QvdGVzdF9zdGVsbGFyX3JpcHBsZV9jcmVhdGVfcGFyYW1zX2R0by5weQp0ZXN0L3Rlc3Rfc3VwcG9ydGVkX2Jsb2NrX2NoYWluc19yZXNwb25zZS5weQp0ZXN0L3Rlc3Rfc3VwcG9ydGVkX2Jsb2NrY2hhaW4ucHkKdGVzdC90ZXN0X3N3aWZ0X2FkZHJlc3MucHkKdGVzdC90ZXN0X3N3aWZ0X2Rlc3RpbmF0aW9uLnB5CnRlc3QvdGVzdF9zeXN0ZW1fbWVzc2FnZV9pbmZvLnB5CnRlc3QvdGVzdF90YWcucHkKdGVzdC90ZXN0X3RhZ19hdHRhY2htZW50X29wZXJhdGlvbl9hY3Rpb24ucHkKdGVzdC90ZXN0X3RhZ3NfYXBpLnB5CnRlc3QvdGVzdF90YWdzX3BhZ2VkX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF90ZW1wbGF0ZXNfcGFnaW5hdGVkX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF90aGlyZF9wYXJ0eV9yb3V0aW5nLnB5CnRlc3QvdGVzdF90aW1lX3BlcmlvZF9jb25maWcucHkKdGVzdC90ZXN0X3RpbWVfcGVyaW9kX21hdGNoX3R5cGUucHkKdGVzdC90ZXN0X3RvX2NvbGxhdGVyYWxfdHJhbnNhY3Rpb24ucHkKdGVzdC90ZXN0X3RvX2V4Y2hhbmdlX3RyYW5zYWN0aW9uLnB5CnRlc3QvdGVzdF90b2tlbl9jb2xsZWN0aW9uX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF90b2tlbl9jb250cmFjdF9zdW1tYXJ5X3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF90b2tlbl9pbmZvX25vdF9mb3VuZF9lcnJvcl9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfdG9rZW5fbGlua19kdG8ucHkKdGVzdC90ZXN0X3Rva2VuX2xpbmtfZHRvX3Rva2VuX21ldGFkYXRhLnB5CnRlc3QvdGVzdF90b2tlbl9saW5rX2V4aXN0c19odHRwX2Vycm9yLnB5CnRlc3QvdGVzdF90b2tlbl9saW5rX25vdF9tdWx0aWNoYWluX2NvbXBhdGlibGVfaHR0cF9lcnJvci5weQp0ZXN0L3Rlc3RfdG9rZW5fbGlua19yZXF1ZXN0X2R0by5weQp0ZXN0L3Rlc3RfdG9rZW5fb3duZXJzaGlwX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF90b2tlbl9vd25lcnNoaXBfc3BhbV91cGRhdGVfcGF5bG9hZC5weQp0ZXN0L3Rlc3RfdG9rZW5fb3duZXJzaGlwX3N0YXR1c191cGRhdGVfcGF5bG9hZC5weQp0ZXN0L3Rlc3RfdG9rZW5fcmVzcG9uc2UucHkKdGVzdC90ZXN0X3Rva2VuaXphdGlvbl9hcGkucHkKdGVzdC90ZXN0X3Rva2Vuc19wYWdpbmF0ZWRfcmVzcG9uc2UucHkKdGVzdC90ZXN0X3RvdGFsX3N1cHBseV9pdGVtX2R0by5weQp0ZXN0L3Rlc3RfdG90YWxfc3VwcGx5X3BhZ2VkX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF90cl9saW5rX2Ftb3VudC5weQp0ZXN0L3Rlc3RfdHJfbGlua19hbW91bnQyLnB5CnRlc3QvdGVzdF90cl9saW5rX2Ftb3VudF9yYW5nZS5weQp0ZXN0L3Rlc3RfdHJfbGlua19hcGkucHkKdGVzdC90ZXN0X3RyX2xpbmtfYXBpX3BhZ2VkX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF90cl9saW5rX2Fzc2Vzc190cmF2ZWxfcnVsZV9yZXF1ZXN0LnB5CnRlc3QvdGVzdF90cl9saW5rX2Fzc2Vzc190cmF2ZWxfcnVsZV9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfdHJfbGlua19hc3Nlc3NtZW50X2RlY2lzaW9uLnB5CnRlc3QvdGVzdF90cl9saW5rX2Fzc2V0LnB5CnRlc3QvdGVzdF90cl9saW5rX2Fzc2V0X2RhdGEucHkKdGVzdC90ZXN0X3RyX2xpbmtfYXNzZXRfZm9ybWF0LnB5CnRlc3QvdGVzdF90cl9saW5rX2Fzc2V0c19saXN0X3BhZ2VkX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF90cl9saW5rX2NhbmNlbF90cm1fcmVxdWVzdC5weQp0ZXN0L3Rlc3RfdHJfbGlua19jb25uZWN0X2ludGVncmF0aW9uX3JlcXVlc3QucHkKdGVzdC90ZXN0X3RyX2xpbmtfY3JlYXRlX2N1c3RvbWVyX3JlcXVlc3QucHkKdGVzdC90ZXN0X3RyX2xpbmtfY3JlYXRlX2ludGVncmF0aW9uX3JlcXVlc3QucHkKdGVzdC90ZXN0X3RyX2xpbmtfY3JlYXRlX3RybV9yZXF1ZXN0LnB5CnRlc3QvdGVzdF90cl9saW5rX2N1cnJlbmN5LnB5CnRlc3QvdGVzdF90cl9saW5rX2N1c3RvbWVyX2ludGVncmF0aW9uX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF90cl9saW5rX2N1c3RvbWVyX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF90cl9saW5rX2Rlc3RpbmF0aW9uX3RyYW5zZmVyX3BlZXJfcGF0aC5weQp0ZXN0L3Rlc3RfdHJfbGlua19kaXNjb3ZlcmFibGVfc3RhdHVzLnB5CnRlc3QvdGVzdF90cl9saW5rX2ZpYXRfdmFsdWUucHkKdGVzdC90ZXN0X3RyX2xpbmtfZ2VvZ3JhcGhpY19hZGRyZXNzX3JlcXVlc3QucHkKdGVzdC90ZXN0X3RyX2xpbmtfZ2V0X3N1cHBvcnRlZF9hc3NldF9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfdHJfbGlua19pdm1zLnB5CnRlc3QvdGVzdF90cl9saW5rX2l2bXNfcmVzcG9uc2UucHkKdGVzdC90ZXN0X3RyX2xpbmtfandrX3B1YmxpY19rZXkucHkKdGVzdC90ZXN0X3RyX2xpbmtfbWlzc2luZ190cm1fYWN0aW9uLnB5CnRlc3QvdGVzdF90cl9saW5rX21pc3NpbmdfdHJtX2FjdGlvbjIucHkKdGVzdC90ZXN0X3RyX2xpbmtfbWlzc2luZ190cm1fYWN0aW9uX2VudW0ucHkKdGVzdC90ZXN0X3RyX2xpbmtfbWlzc2luZ190cm1fZGVjaXNpb24ucHkKdGVzdC90ZXN0X3RyX2xpbmtfbWlzc2luZ190cm1fcnVsZS5weQp0ZXN0L3Rlc3RfdHJfbGlua19taXNzaW5nX3RybV9ydWxlMi5weQp0ZXN0L3Rlc3RfdHJfbGlua19vbmVfdGltZV9hZGRyZXNzLnB5CnRlc3QvdGVzdF90cl9saW5rX3BhZ2luZy5weQp0ZXN0L3Rlc3RfdHJfbGlua19wYXJ0bmVyX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF90cl9saW5rX3BvbGljeV9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfdHJfbGlua19wb3N0X3NjcmVlbmluZ19hY3Rpb24ucHkKdGVzdC90ZXN0X3RyX2xpbmtfcG9zdF9zY3JlZW5pbmdfcnVsZS5weQp0ZXN0L3Rlc3RfdHJfbGlua19wb3N0X3NjcmVlbmluZ19ydWxlMi5weQp0ZXN0L3Rlc3RfdHJfbGlua19wcmVfc2NyZWVuaW5nX2FjdGlvbi5weQp0ZXN0L3Rlc3RfdHJfbGlua19wcmVfc2NyZWVuaW5nX2FjdGlvbjIucHkKdGVzdC90ZXN0X3RyX2xpbmtfcHJlX3NjcmVlbmluZ19hY3Rpb25fZW51bS5weQp0ZXN0L3Rlc3RfdHJfbGlua19wcmVfc2NyZWVuaW5nX3J1bGUucHkKdGVzdC90ZXN0X3RyX2xpbmtfcHJlX3NjcmVlbmluZ19ydWxlMi5weQp0ZXN0L3Rlc3RfdHJfbGlua19wcm92aWRlcl9kYXRhLnB5CnRlc3QvdGVzdF90cl9saW5rX3Byb3ZpZGVyX3Jlc3VsdC5weQp0ZXN0L3Rlc3RfdHJfbGlua19wcm92aWRlcl9yZXN1bHRfd2l0aF9ydWxlLnB5CnRlc3QvdGVzdF90cl9saW5rX3Byb3ZpZGVyX3Jlc3VsdF93aXRoX3J1bGUyLnB5CnRlc3QvdGVzdF90cl9saW5rX3B1YmxpY19hc3NldF9pbmZvLnB5CnRlc3QvdGVzdF90cl9saW5rX3B1YmxpY19rZXlfcmVzcG9uc2UucHkKdGVzdC90ZXN0X3RyX2xpbmtfcmVkaXJlY3RfdHJtX3JlcXVlc3QucHkKdGVzdC90ZXN0X3RyX2xpbmtfcmVnaXN0cmF0aW9uX3Jlc3VsdC5weQp0ZXN0L3Rlc3RfdHJfbGlua19yZWdpc3RyYXRpb25fcmVzdWx0X2Z1bGxfcGF5bG9hZC5weQp0ZXN0L3Rlc3RfdHJfbGlua19yZWdpc3RyYXRpb25fc3RhdHVzLnB5CnRlc3QvdGVzdF90cl9saW5rX3JlZ2lzdHJhdGlvbl9zdGF0dXNfZW51bS5weQp0ZXN0L3Rlc3RfdHJfbGlua19yZXN1bHQucHkKdGVzdC90ZXN0X3RyX2xpbmtfcmVzdWx0X2Z1bGxfcGF5bG9hZC5weQp0ZXN0L3Rlc3RfdHJfbGlua19ydWxlX2Jhc2UucHkKdGVzdC90ZXN0X3RyX2xpbmtfc2V0X2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVxdWVzdC5weQp0ZXN0L3Rlc3RfdHJfbGlua19zZXRfZGVzdGluYXRpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfdHJfbGlua19zZXRfdHJhbnNhY3Rpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXF1ZXN0LnB5CnRlc3QvdGVzdF90cl9saW5rX3NldF90cmFuc2FjdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF90cl9saW5rX3NvdXJjZV90cmFuc2Zlcl9wZWVyX3BhdGgucHkKdGVzdC90ZXN0X3RyX2xpbmtfdGVzdF9jb25uZWN0aW9uX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF90cl9saW5rX3RocmVzaG9sZHMucHkKdGVzdC90ZXN0X3RyX2xpbmtfdHJhbnNhY3Rpb25fZGlyZWN0aW9uLnB5CnRlc3QvdGVzdF90cl9saW5rX3RyYW5zZmVyX3BlZXJfcGF0aC5weQp0ZXN0L3Rlc3RfdHJfbGlua190cm1fZGlyZWN0aW9uLnB5CnRlc3QvdGVzdF90cl9saW5rX3RybV9pbmZvX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF90cl9saW5rX3RybV9zY3JlZW5pbmdfc3RhdHVzLnB5CnRlc3QvdGVzdF90cl9saW5rX3RybV9zY3JlZW5pbmdfc3RhdHVzX2VudW0ucHkKdGVzdC90ZXN0X3RyX2xpbmtfdHJtX3N0YXR1cy5weQp0ZXN0L3Rlc3RfdHJfbGlua190eG5faW5mby5weQp0ZXN0L3Rlc3RfdHJfbGlua191cGRhdGVfY3VzdG9tZXJfcmVxdWVzdC5weQp0ZXN0L3Rlc3RfdHJfbGlua192YXNwX2R0by5weQp0ZXN0L3Rlc3RfdHJfbGlua192YXNwX2dlb2dyYXBoaWNfYWRkcmVzcy5weQp0ZXN0L3Rlc3RfdHJfbGlua192YXNwX2xpc3RfZHRvLnB5CnRlc3QvdGVzdF90cl9saW5rX3Zhc3BfbmF0aW9uYWxfaWRlbnRpZmljYXRpb24ucHkKdGVzdC90ZXN0X3RyX2xpbmtfdmVyZGljdC5weQp0ZXN0L3Rlc3RfdHJfbGlua192ZXJkaWN0X2VudW0ucHkKdGVzdC90ZXN0X3RyYWRpbmdfYWNjb3VudF90eXBlLnB5CnRlc3QvdGVzdF90cmFkaW5nX2JldGFfYXBpLnB5CnRlc3QvdGVzdF90cmFkaW5nX2Vycm9yX3NjaGVtYS5weQp0ZXN0L3Rlc3RfdHJhZGluZ19wcm92aWRlci5weQp0ZXN0L3Rlc3RfdHJhZGluZ19wcm92aWRlcl9kZXRhaWxzLnB5CnRlc3QvdGVzdF90cmFuc2FjdGlvbi5weQp0ZXN0L3Rlc3RfdHJhbnNhY3Rpb25fZGlyZWN0aW9uLnB5CnRlc3QvdGVzdF90cmFuc2FjdGlvbl9mZWUucHkKdGVzdC90ZXN0X3RyYW5zYWN0aW9uX29wZXJhdGlvbi5weQp0ZXN0L3Rlc3RfdHJhbnNhY3Rpb25fb3BlcmF0aW9uX2VudW0ucHkKdGVzdC90ZXN0X3RyYW5zYWN0aW9uX3JlY2VpcHRfcmVzcG9uc2UucHkKdGVzdC90ZXN0X3RyYW5zYWN0aW9uX3JlcXVlc3QucHkKdGVzdC90ZXN0X3RyYW5zYWN0aW9uX3JlcXVlc3RfYW1vdW50LnB5CnRlc3QvdGVzdF90cmFuc2FjdGlvbl9yZXF1ZXN0X2Rlc3RpbmF0aW9uLnB5CnRlc3QvdGVzdF90cmFuc2FjdGlvbl9yZXF1ZXN0X2ZlZS5weQp0ZXN0L3Rlc3RfdHJhbnNhY3Rpb25fcmVxdWVzdF9nYXNfbGltaXQucHkKdGVzdC90ZXN0X3RyYW5zYWN0aW9uX3JlcXVlc3RfZ2FzX3ByaWNlLnB5CnRlc3QvdGVzdF90cmFuc2FjdGlvbl9yZXF1ZXN0X25ldHdvcmtfZmVlLnB5CnRlc3QvdGVzdF90cmFuc2FjdGlvbl9yZXF1ZXN0X25ldHdvcmtfc3Rha2luZy5weQp0ZXN0L3Rlc3RfdHJhbnNhY3Rpb25fcmVxdWVzdF9wcmlvcml0eV9mZWUucHkKdGVzdC90ZXN0X3RyYW5zYWN0aW9uX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF90cmFuc2FjdGlvbl9yZXNwb25zZV9jb250cmFjdF9jYWxsX2RlY29kZWRfZGF0YS5weQp0ZXN0L3Rlc3RfdHJhbnNhY3Rpb25fcmVzcG9uc2VfZGVzdGluYXRpb24ucHkKdGVzdC90ZXN0X3RyYW5zYWN0aW9uc19hcGkucHkKdGVzdC90ZXN0X3RyYW5zZmVyX2NvbmZpZ19vcGVyYXRpb24ucHkKdGVzdC90ZXN0X3RyYW5zZmVyX29wZXJhdGlvbl9jb25maWdfcGFyYW1zLnB5CnRlc3QvdGVzdF90cmFuc2Zlcl9vcGVyYXRpb25fZXhlY3V0aW9uLnB5CnRlc3QvdGVzdF90cmFuc2Zlcl9vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dC5weQp0ZXN0L3Rlc3RfdHJhbnNmZXJfb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXMucHkKdGVzdC90ZXN0X3RyYW5zZmVyX29wZXJhdGlvbl9leGVjdXRpb25fcGFyYW1zX2V4ZWN1dGlvbl9wYXJhbXMucHkKdGVzdC90ZXN0X3RyYW5zZmVyX29wZXJhdGlvbl9mYWlsdXJlLnB5CnRlc3QvdGVzdF90cmFuc2Zlcl9vcGVyYXRpb25fZmFpbHVyZV9kYXRhLnB5CnRlc3QvdGVzdF90cmFuc2Zlcl9vcGVyYXRpb25fcHJldmlldy5weQp0ZXN0L3Rlc3RfdHJhbnNmZXJfb3BlcmF0aW9uX3ByZXZpZXdfb3V0cHV0LnB5CnRlc3QvdGVzdF90cmFuc2Zlcl9vcGVyYXRpb25fdHlwZS5weQp0ZXN0L3Rlc3RfdHJhbnNmZXJfcGVlcl9wYXRoX3N1Yl90eXBlLnB5CnRlc3QvdGVzdF90cmFuc2Zlcl9wZWVyX3BhdGhfdHlwZS5weQp0ZXN0L3Rlc3RfdHJhbnNmZXJfcGVlcl9zdWJfdHlwZV9lbnVtLnB5CnRlc3QvdGVzdF90cmFuc2Zlcl9wZWVyX3R5cGVfZW51bS5weQp0ZXN0L3Rlc3RfdHJhbnNmZXJfcmFpbC5weQp0ZXN0L3Rlc3RfdHJhbnNmZXJfcmVjZWlwdC5weQp0ZXN0L3Rlc3RfdHJhbnNmZXJfdmFsaWRhdGlvbl9mYWlsdXJlLnB5CnRlc3QvdGVzdF90cmF2ZWxfcnVsZV9hY3Rpb25fZW51bS5weQp0ZXN0L3Rlc3RfdHJhdmVsX3J1bGVfYWRkcmVzcy5weQp0ZXN0L3Rlc3RfdHJhdmVsX3J1bGVfYXBpLnB5CnRlc3QvdGVzdF90cmF2ZWxfcnVsZV9jcmVhdGVfdHJhbnNhY3Rpb25fcmVxdWVzdC5weQp0ZXN0L3Rlc3RfdHJhdmVsX3J1bGVfZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGgucHkKdGVzdC90ZXN0X3RyYXZlbF9ydWxlX2RpcmVjdGlvbl9lbnVtLnB5CnRlc3QvdGVzdF90cmF2ZWxfcnVsZV9nZW9ncmFwaGljX2FkZHJlc3MucHkKdGVzdC90ZXN0X3RyYXZlbF9ydWxlX2dldF9hbGxfdmFzcHNfcmVzcG9uc2UucHkKdGVzdC90ZXN0X3RyYXZlbF9ydWxlX2lzc3Vlci5weQp0ZXN0L3Rlc3RfdHJhdmVsX3J1bGVfaXNzdWVycy5weQp0ZXN0L3Rlc3RfdHJhdmVsX3J1bGVfbGVnYWxfcGVyc29uLnB5CnRlc3QvdGVzdF90cmF2ZWxfcnVsZV9sZWdhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyLnB5CnRlc3QvdGVzdF90cmF2ZWxfcnVsZV9tYXRjaGVkX3J1bGUucHkKdGVzdC90ZXN0X3RyYXZlbF9ydWxlX25hdGlvbmFsX2lkZW50aWZpY2F0aW9uLnB5CnRlc3QvdGVzdF90cmF2ZWxfcnVsZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5weQp0ZXN0L3Rlc3RfdHJhdmVsX3J1bGVfbmF0dXJhbF9wZXJzb24ucHkKdGVzdC90ZXN0X3RyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uX25hbWVfaWRlbnRpZmllci5weQp0ZXN0L3Rlc3RfdHJhdmVsX3J1bGVfb3duZXJzaGlwX3Byb29mLnB5CnRlc3QvdGVzdF90cmF2ZWxfcnVsZV9wZXJzb24ucHkKdGVzdC90ZXN0X3RyYXZlbF9ydWxlX3BpaV9pdm1zLnB5CnRlc3QvdGVzdF90cmF2ZWxfcnVsZV9wb2xpY3lfcnVsZV9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfdHJhdmVsX3J1bGVfcHJlc2NyZWVuaW5nX3J1bGUucHkKdGVzdC90ZXN0X3RyYXZlbF9ydWxlX3Jlc3VsdC5weQp0ZXN0L3Rlc3RfdHJhdmVsX3J1bGVfc3RhdHVzX2VudW0ucHkKdGVzdC90ZXN0X3RyYXZlbF9ydWxlX3RyYW5zYWN0aW9uX2Jsb2NrY2hhaW5faW5mby5weQp0ZXN0L3Rlc3RfdHJhdmVsX3J1bGVfdXBkYXRlX3Zhc3BfZGV0YWlscy5weQp0ZXN0L3Rlc3RfdHJhdmVsX3J1bGVfdmFsaWRhdGVfZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGgucHkKdGVzdC90ZXN0X3RyYXZlbF9ydWxlX3ZhbGlkYXRlX2Z1bGxfdHJhbnNhY3Rpb25fcmVxdWVzdC5weQp0ZXN0L3Rlc3RfdHJhdmVsX3J1bGVfdmFsaWRhdGVfZ2VvZ3JhcGhpY19hZGRyZXNzLnB5CnRlc3QvdGVzdF90cmF2ZWxfcnVsZV92YWxpZGF0ZV9sZWdhbF9wZXJzb24ucHkKdGVzdC90ZXN0X3RyYXZlbF9ydWxlX3ZhbGlkYXRlX2xlZ2FsX3BlcnNvbl9uYW1lX2lkZW50aWZpZXIucHkKdGVzdC90ZXN0X3RyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdGlvbmFsX2lkZW50aWZpY2F0aW9uLnB5CnRlc3QvdGVzdF90cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5weQp0ZXN0L3Rlc3RfdHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9wZXJzb24ucHkKdGVzdC90ZXN0X3RyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfcGVyc29uX25hbWVfaWRlbnRpZmllci5weQp0ZXN0L3Rlc3RfdHJhdmVsX3J1bGVfdmFsaWRhdGVfcGVyc29uLnB5CnRlc3QvdGVzdF90cmF2ZWxfcnVsZV92YWxpZGF0ZV9waWlfaXZtcy5weQp0ZXN0L3Rlc3RfdHJhdmVsX3J1bGVfdmFsaWRhdGVfdHJhbnNhY3Rpb25fcmVxdWVzdC5weQp0ZXN0L3Rlc3RfdHJhdmVsX3J1bGVfdmFsaWRhdGVfdHJhbnNhY3Rpb25fcmVzcG9uc2UucHkKdGVzdC90ZXN0X3RyYXZlbF9ydWxlX3Zhc3AucHkKdGVzdC90ZXN0X3RyYXZlbF9ydWxlX3Zhc3BfZm9yX3ZhdWx0LnB5CnRlc3QvdGVzdF90cmF2ZWxfcnVsZV92ZXJkaWN0X2VudW0ucHkKdGVzdC90ZXN0X3RydXN0X3Byb29mX29mX2FkZHJlc3NfY3JlYXRlX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF90cnVzdF9wcm9vZl9vZl9hZGRyZXNzX3JlcXVlc3QucHkKdGVzdC90ZXN0X3RydXN0X3Byb29mX29mX2FkZHJlc3NfcmVzcG9uc2UucHkKdGVzdC90ZXN0X3R4X2xvZy5weQp0ZXN0L3Rlc3RfdHlwZWRfbWVzc2FnZV90cmFuc2FjdGlvbl9zdGF0dXNfZW51bS5weQp0ZXN0L3Rlc3RfdW5mcmVlemVfdHJhbnNhY3Rpb25fcmVzcG9uc2UucHkKdGVzdC90ZXN0X3VubWFuYWdlZF93YWxsZXQucHkKdGVzdC90ZXN0X3Vuc3BlbnRfaW5wdXQucHkKdGVzdC90ZXN0X3Vuc3BlbnRfaW5wdXRzX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF91bnN0YWtlX3JlcXVlc3QucHkKdGVzdC90ZXN0X3VwZGF0ZV9hc3NldF91c2VyX21ldGFkYXRhX3JlcXVlc3QucHkKdGVzdC90ZXN0X3VwZGF0ZV9jYWxsYmFja19oYW5kbGVyX3JlcXVlc3QucHkKdGVzdC90ZXN0X3VwZGF0ZV9jYWxsYmFja19oYW5kbGVyX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF91cGRhdGVfZHJhZnRfcmVxdWVzdC5weQp0ZXN0L3Rlc3RfdXBkYXRlX3RhZ19yZXF1ZXN0LnB5CnRlc3QvdGVzdF91cGRhdGVfdG9rZW5fb3duZXJzaGlwX3N0YXR1c19kdG8ucHkKdGVzdC90ZXN0X3VwZGF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3NfcmVxdWVzdC5weQp0ZXN0L3Rlc3RfdXBkYXRlX3ZhdWx0X2FjY291bnRfcmVxdWVzdC5weQp0ZXN0L3Rlc3RfdXBkYXRlX3dlYmhvb2tfcmVxdWVzdC5weQp0ZXN0L3Rlc3RfdXNfd2lyZV9hZGRyZXNzLnB5CnRlc3QvdGVzdF91c193aXJlX2Rlc3RpbmF0aW9uLnB5CnRlc3QvdGVzdF91c193aXJlX3BheW1lbnRfaW5mby5weQp0ZXN0L3Rlc3RfdXNlcl9ncm91cF9jcmVhdGVfcmVxdWVzdC5weQp0ZXN0L3Rlc3RfdXNlcl9ncm91cF9jcmVhdGVfcmVzcG9uc2UucHkKdGVzdC90ZXN0X3VzZXJfZ3JvdXBfcmVzcG9uc2UucHkKdGVzdC90ZXN0X3VzZXJfZ3JvdXBfdXBkYXRlX3JlcXVlc3QucHkKdGVzdC90ZXN0X3VzZXJfZ3JvdXBzX2JldGFfYXBpLnB5CnRlc3QvdGVzdF91c2VyX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF91c2VyX3JvbGUucHkKdGVzdC90ZXN0X3VzZXJfc3RhdHVzLnB5CnRlc3QvdGVzdF91c2VyX3R5cGUucHkKdGVzdC90ZXN0X3VzZXJzX2FwaS5weQp0ZXN0L3Rlc3RfdmFsaWRhdGVfYWRkcmVzc19yZXNwb25zZS5weQp0ZXN0L3Rlc3RfdmFsaWRhdGVfbGF5ZXJfemVyb19jaGFubmVsX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF92YWxpZGF0aW9uX2tleV9kdG8ucHkKdGVzdC90ZXN0X3ZhbGlkYXRvci5weQp0ZXN0L3Rlc3RfdmF1bHRfYWNjb3VudC5weQp0ZXN0L3Rlc3RfdmF1bHRfYWNjb3VudF90YWdfYXR0YWNobWVudF9vcGVyYXRpb24ucHkKdGVzdC90ZXN0X3ZhdWx0X2FjY291bnRfdGFnX2F0dGFjaG1lbnRfcGVuZGluZ19vcGVyYXRpb24ucHkKdGVzdC90ZXN0X3ZhdWx0X2FjY291bnRfdGFnX2F0dGFjaG1lbnRfcmVqZWN0ZWRfb3BlcmF0aW9uLnB5CnRlc3QvdGVzdF92YXVsdF9hY2NvdW50c19wYWdlZF9yZXNwb25zZS5weQp0ZXN0L3Rlc3RfdmF1bHRfYWNjb3VudHNfcGFnZWRfcmVzcG9uc2VfcGFnaW5nLnB5CnRlc3QvdGVzdF92YXVsdF9hY2NvdW50c190YWdfYXR0YWNobWVudF9vcGVyYXRpb25zX3JlcXVlc3QucHkKdGVzdC90ZXN0X3ZhdWx0X2FjY291bnRzX3RhZ19hdHRhY2htZW50X29wZXJhdGlvbnNfcmVzcG9uc2UucHkKdGVzdC90ZXN0X3ZhdWx0X2FjdGlvbl9zdGF0dXMucHkKdGVzdC90ZXN0X3ZhdWx0X2Fzc2V0LnB5CnRlc3QvdGVzdF92YXVsdF93YWxsZXRfYWRkcmVzcy5weQp0ZXN0L3Rlc3RfdmF1bHRzX2FwaS5weQp0ZXN0L3Rlc3RfdmVuZG9yX2R0by5weQp0ZXN0L3Rlc3RfdmVyZGljdF9jb25maWcucHkKdGVzdC90ZXN0X3ZlcnNpb25fc3VtbWFyeS5weQp0ZXN0L3Rlc3Rfd2FsbGV0X2Fzc2V0LnB5CnRlc3QvdGVzdF93YWxsZXRfYXNzZXRfYWRkaXRpb25hbF9pbmZvLnB5CnRlc3QvdGVzdF93ZWIzX2Nvbm5lY3Rpb25zX2FwaS5weQp0ZXN0L3Rlc3Rfd2ViaG9vay5weQp0ZXN0L3Rlc3Rfd2ViaG9va19ldmVudC5weQp0ZXN0L3Rlc3Rfd2ViaG9va19tZXRyaWMucHkKdGVzdC90ZXN0X3dlYmhvb2tfcGFnaW5hdGVkX3Jlc3BvbnNlLnB5CnRlc3QvdGVzdF93ZWJob29rc19hcGkucHkKdGVzdC90ZXN0X3dlYmhvb2tzX3YyX2FwaS5weQp0ZXN0L3Rlc3Rfd2hpdGVsaXN0X2lwX2FkZHJlc3Nlc19hcGkucHkKdGVzdC90ZXN0X3dpdGhkcmF3X3JlcXVlc3QucHkKdGVzdC90ZXN0X3dvcmtmbG93X2NvbmZpZ19zdGF0dXMucHkKdGVzdC90ZXN0X3dvcmtmbG93X2NvbmZpZ3VyYXRpb25faWQucHkKdGVzdC90ZXN0X3dvcmtmbG93X2V4ZWN1dGlvbl9vcGVyYXRpb24ucHkKdGVzdC90ZXN0X3dvcmtzcGFjZS5weQp0ZXN0L3Rlc3Rfd29ya3NwYWNlX2FwaS5weQp0ZXN0L3Rlc3Rfd29ya3NwYWNlX3N0YXR1c19iZXRhX2FwaS5weQp0ZXN0L3Rlc3Rfd3JpdGVfYWJpX2Z1bmN0aW9uLnB5CnRlc3QvdGVzdF93cml0ZV9jYWxsX2Z1bmN0aW9uX2R0by5weQp0ZXN0L3Rlc3Rfd3JpdGVfY2FsbF9mdW5jdGlvbl9kdG9fYWJpX2Z1bmN0aW9uLnB5CnRlc3QvdGVzdF93cml0ZV9jYWxsX2Z1bmN0aW9uX3Jlc3BvbnNlX2R0by5weQp0b3guaW5pCg== \ No newline at end of file diff --git a/.openapi-generator/VERSION b/.openapi-generator/VERSION index 5f84a81d..428d8710 100644 --- a/.openapi-generator/VERSION +++ b/.openapi-generator/VERSION @@ -1 +1 @@ -7.12.0 +Ny4xMi4wCg== \ No newline at end of file diff --git a/LICENSE.txt b/LICENSE.txt index 19036afa..a85dbcc1 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,21 +1 @@ -MIT License - -Copyright (c) 2019 fireblocks - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +TUlUIExpY2Vuc2UKCkNvcHlyaWdodCAoYykgMjAxOSBmaXJlYmxvY2tzCgpQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5Cm9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCmluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbApjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKClRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbApjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQpBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCkxJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCk9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFClNPRlRXQVJFLgo= \ No newline at end of file diff --git a/README.md b/README.md index 4ca24e78..02ef7a3f 100644 --- a/README.md +++ b/README.md @@ -1,1617 +1 @@ -# Official Fireblocks Python SDK -[![PyPI version](https://badge.fury.io/py/fireblocks.svg)](https://badge.fury.io/py/fireblocks) - -The Fireblocks SDK allows developers to seamlessly integrate with the Fireblocks platform and perform a variety of operations, including managing vault accounts and executing transactions securely. - -For detailed API documentation please refer to the [Fireblocks API Reference](https://developers.fireblocks.com/reference/). - -## Requirements. - -Python 3.8+ - -## Installation - -To use the Fireblocks SDK, follow these steps: - -### pip install - -If the python package is hosted on a repository, you can install directly using: - -```sh -pip install fireblocks -``` - -Then import the package: -```python -import fireblocks -``` - -### Setuptools - -Install via [Setuptools](http://pypi.python.org/pypi/setuptools). - -```sh -python setup.py install --user -``` -(or `sudo python setup.py install` to install the package for all users) - -Then import the package: -```python -import fireblocks -``` - -## Usage - -Please follow the [installation procedure](#installation) first. - -### Initializing the SDK -You can initialize the Fireblocks SDK in two ways, either by setting environment variables or providing the parameters directly: - -

Using Environment Variables
-You can initialize the SDK using environment variables from your .env file or by setting them programmatically:

- -use bash commands to set environment variables: -```bash -export FIREBLOCKS_BASE_PATH="https://sandbox-api.fireblocks.io/v1" -export FIREBLOCKS_API_KEY="my-api-key" -export FIREBLOCKS_SECRET_KEY="my-secret-key" -``` - -```python -from fireblocks.client import Fireblocks - -# Enter a context with an instance of the API client -with Fireblocks() as fireblocks: - pass -``` - -

Providing Local Variables
- -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.base_path import BasePath - - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - pass -``` - -### Basic Api Examples -

Creating a Vault Account
- To create a new vault account, you can use the following function:

- -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.base_path import BasePath -from fireblocks.models.create_vault_account_request import CreateVaultAccountRequest -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - create_vault_account_request: CreateVaultAccountRequest = CreateVaultAccountRequest( - name='My First Vault Account', - hidden_on_ui=False, - auto_fuel=False - ) - try: - # Create a new vault account - future = fireblocks.vaults.create_vault_account(create_vault_account_request=create_vault_account_request) - api_response = future.result() # Wait for the response - print("The response of VaultsApi->create_vault_account:\n") - pprint(api_response) - # to print just the data: pprint(api_response.data) - # to print just the data in json format: pprint(api_response.data.to_json()) - except Exception as e: - print("Exception when calling VaultsApi->create_vault_account: %s\n" % e) - -``` - - -

Retrieving Vault Accounts
- To get a list of vault accounts, you can use the following function:

- -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - try: - # List vault accounts (Paginated) - future = fireblocks.vaults.get_paged_vault_accounts() - api_response = future.result() # Wait for the response - print("The response of VaultsApi->get_paged_vault_accounts:\n") - pprint(api_response) - # to print just the data: pprint(api_response.data) - # to print just the data in json format: pprint(api_response.data.to_json()) - except Exception as e: - print("Exception when calling VaultsApi->get_paged_vault_accounts: %s\n" % e) -``` - -

Creating a Transaction
- To make a transaction between vault accounts, you can use the following function:

- -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.base_path import BasePath -from fireblocks.models.transaction_request import TransactionRequest -from fireblocks.models.destination_transfer_peer_path import DestinationTransferPeerPath -from fireblocks.models.source_transfer_peer_path import SourceTransferPeerPath -from fireblocks.models.transfer_peer_path_type import TransferPeerPathType -from fireblocks.models.transaction_request_amount import TransactionRequestAmount -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - transaction_request: TransactionRequest = TransactionRequest( - asset_id="ETH", - amount=TransactionRequestAmount("0.1"), - source=SourceTransferPeerPath( - type=TransferPeerPathType.VAULT_ACCOUNT, - id="0" - ), - destination=DestinationTransferPeerPath( - type=TransferPeerPathType.VAULT_ACCOUNT, - id="1" - ), - note="Your first transaction!" - ) - # or you can use JSON approach: - # - # transaction_request: TransactionRequest = TransactionRequest.from_json( - # '{"note": "Your first transaction!", ' - # '"assetId": "ETH", ' - # '"source": {"type": "VAULT_ACCOUNT", "id": "0"}, ' - # '"destination": {"type": "VAULT_ACCOUNT", "id": "1"}, ' - # '"amount": "0.1"}' - # ) - try: - # Create a new transaction - future = fireblocks.transactions.create_transaction(transaction_request=transaction_request) - api_response = future.result() # Wait for the response - print("The response of TransactionsApi->create_transaction:\n") - pprint(api_response) - # to print just the data: pprint(api_response.data) - # to print just the data in json format: pprint(api_response.data.to_json()) - except Exception as e: - print("Exception when calling TransactionsApi->create_transaction: %s\n" % e) -``` - -## Documentation for API Endpoints - -All URIs are relative to https://developers.fireblocks.com/reference/ - -Class | Method | HTTP request | Description ------------- | ------------- | ------------- | ------------- -*ApiUserApi* | [**create_api_user**](docs/ApiUserApi.md#create_api_user) | **POST** /management/api_users | Create API Key -*ApiUserApi* | [**get_api_users**](docs/ApiUserApi.md#get_api_users) | **GET** /management/api_users | Get API Keys -*AuditLogsApi* | [**get_audit_logs**](docs/AuditLogsApi.md#get_audit_logs) | **GET** /management/audit_logs | Get audit logs -*BlockchainsAssetsApi* | [**get_asset**](docs/BlockchainsAssetsApi.md#get_asset) | **GET** /assets/{id} | Get an asset -*BlockchainsAssetsApi* | [**get_blockchain**](docs/BlockchainsAssetsApi.md#get_blockchain) | **GET** /blockchains/{id} | Get a Blockchain by ID -*BlockchainsAssetsApi* | [**get_supported_assets**](docs/BlockchainsAssetsApi.md#get_supported_assets) | **GET** /supported_assets | List assets (Legacy) -*BlockchainsAssetsApi* | [**list_assets**](docs/BlockchainsAssetsApi.md#list_assets) | **GET** /assets | List assets -*BlockchainsAssetsApi* | [**list_blockchains**](docs/BlockchainsAssetsApi.md#list_blockchains) | **GET** /blockchains | List blockchains -*BlockchainsAssetsApi* | [**register_new_asset**](docs/BlockchainsAssetsApi.md#register_new_asset) | **POST** /assets | Register an asset -*BlockchainsAssetsApi* | [**set_asset_price**](docs/BlockchainsAssetsApi.md#set_asset_price) | **POST** /assets/prices/{id} | Set asset price -*BlockchainsAssetsApi* | [**update_asset_user_metadata**](docs/BlockchainsAssetsApi.md#update_asset_user_metadata) | **PATCH** /assets/{id} | Update the user’s metadata for an asset -*ComplianceApi* | [**get_aml_post_screening_policy**](docs/ComplianceApi.md#get_aml_post_screening_policy) | **GET** /screening/aml/post_screening_policy | AML - View Post-Screening Policy -*ComplianceApi* | [**get_aml_screening_policy**](docs/ComplianceApi.md#get_aml_screening_policy) | **GET** /screening/aml/screening_policy | AML - View Screening Policy -*ComplianceApi* | [**get_legal_entity_by_address**](docs/ComplianceApi.md#get_legal_entity_by_address) | **GET** /address_registry/legal_entity | Look up legal entity by address and asset -*ComplianceApi* | [**get_post_screening_policy**](docs/ComplianceApi.md#get_post_screening_policy) | **GET** /screening/travel_rule/post_screening_policy | Travel Rule - View Post-Screening Policy -*ComplianceApi* | [**get_screening_full_details**](docs/ComplianceApi.md#get_screening_full_details) | **GET** /screening/transaction/{txId} | Provides all the compliance details for the given screened transaction. -*ComplianceApi* | [**get_screening_policy**](docs/ComplianceApi.md#get_screening_policy) | **GET** /screening/travel_rule/screening_policy | Travel Rule - View Screening Policy -*ComplianceApi* | [**retry_rejected_transaction_bypass_screening_checks**](docs/ComplianceApi.md#retry_rejected_transaction_bypass_screening_checks) | **POST** /screening/transaction/{txId}/bypass_screening_policy | Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, with the API user as the initiator, bypassing the screening policy check -*ComplianceApi* | [**set_aml_verdict**](docs/ComplianceApi.md#set_aml_verdict) | **POST** /screening/aml/verdict/manual | Set AML Verdict for Manual Screening Verdict. -*ComplianceApi* | [**update_aml_screening_configuration**](docs/ComplianceApi.md#update_aml_screening_configuration) | **PUT** /screening/aml/policy_configuration | Update AML Configuration -*ComplianceApi* | [**update_screening_configuration**](docs/ComplianceApi.md#update_screening_configuration) | **PUT** /screening/configurations | Tenant - Screening Configuration -*ComplianceApi* | [**update_travel_rule_config**](docs/ComplianceApi.md#update_travel_rule_config) | **PUT** /screening/travel_rule/policy_configuration | Update Travel Rule Configuration -*ComplianceScreeningConfigurationApi* | [**get_aml_screening_configuration**](docs/ComplianceScreeningConfigurationApi.md#get_aml_screening_configuration) | **GET** /screening/aml/policy_configuration | Get AML Screening Policy Configuration -*ComplianceScreeningConfigurationApi* | [**get_screening_configuration**](docs/ComplianceScreeningConfigurationApi.md#get_screening_configuration) | **GET** /screening/travel_rule/policy_configuration | Get Travel Rule Screening Policy Configuration -*ConnectedAccountsBetaApi* | [**disconnect_connected_account**](docs/ConnectedAccountsBetaApi.md#disconnect_connected_account) | **DELETE** /connected_accounts/{accountId} | Disconnect connected account -*ConnectedAccountsBetaApi* | [**get_connected_account**](docs/ConnectedAccountsBetaApi.md#get_connected_account) | **GET** /connected_accounts/{accountId} | Get connected account -*ConnectedAccountsBetaApi* | [**get_connected_account_balances**](docs/ConnectedAccountsBetaApi.md#get_connected_account_balances) | **GET** /connected_accounts/{accountId}/balances | Get balances for an account -*ConnectedAccountsBetaApi* | [**get_connected_account_rates**](docs/ConnectedAccountsBetaApi.md#get_connected_account_rates) | **GET** /connected_accounts/{accountId}/rates | Get exchange rates for an account -*ConnectedAccountsBetaApi* | [**get_connected_account_trading_pairs**](docs/ConnectedAccountsBetaApi.md#get_connected_account_trading_pairs) | **GET** /connected_accounts/{accountId}/manifest/capabilities/trading/pairs | Get supported trading pairs for an account -*ConnectedAccountsBetaApi* | [**get_connected_accounts**](docs/ConnectedAccountsBetaApi.md#get_connected_accounts) | **GET** /connected_accounts | Get connected accounts -*ConnectedAccountsBetaApi* | [**rename_connected_account**](docs/ConnectedAccountsBetaApi.md#rename_connected_account) | **POST** /connected_accounts/{accountId}/rename | Rename Connected Account -*ConsoleUserApi* | [**create_console_user**](docs/ConsoleUserApi.md#create_console_user) | **POST** /management/users | Create console user -*ConsoleUserApi* | [**get_console_users**](docs/ConsoleUserApi.md#get_console_users) | **GET** /management/users | Get console users -*ContractInteractionsApi* | [**decode_contract_data**](docs/ContractInteractionsApi.md#decode_contract_data) | **POST** /contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/decode | Decode a function call data, error, or event log -*ContractInteractionsApi* | [**get_contract_address**](docs/ContractInteractionsApi.md#get_contract_address) | **GET** /contract_interactions/base_asset_id/{baseAssetId}/tx_hash/{txHash} | Get contract address by transaction hash -*ContractInteractionsApi* | [**get_deployed_contract_abi**](docs/ContractInteractionsApi.md#get_deployed_contract_abi) | **GET** /contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/functions | Return deployed contract's ABI -*ContractInteractionsApi* | [**get_transaction_receipt**](docs/ContractInteractionsApi.md#get_transaction_receipt) | **GET** /contract_interactions/base_asset_id/{baseAssetId}/tx_hash/{txHash}/receipt | Get transaction receipt -*ContractInteractionsApi* | [**read_call_function**](docs/ContractInteractionsApi.md#read_call_function) | **POST** /contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/functions/read | Call a read function on a deployed contract -*ContractInteractionsApi* | [**write_call_function**](docs/ContractInteractionsApi.md#write_call_function) | **POST** /contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/functions/write | Call a write function on a deployed contract -*ContractTemplatesApi* | [**delete_contract_template_by_id**](docs/ContractTemplatesApi.md#delete_contract_template_by_id) | **DELETE** /tokenization/templates/{contractTemplateId} | Delete a contract template by id -*ContractTemplatesApi* | [**deploy_contract**](docs/ContractTemplatesApi.md#deploy_contract) | **POST** /tokenization/templates/{contractTemplateId}/deploy | Deploy contract -*ContractTemplatesApi* | [**get_constructor_by_contract_template_id**](docs/ContractTemplatesApi.md#get_constructor_by_contract_template_id) | **GET** /tokenization/templates/{contractTemplateId}/constructor | Return contract template's constructor -*ContractTemplatesApi* | [**get_contract_template_by_id**](docs/ContractTemplatesApi.md#get_contract_template_by_id) | **GET** /tokenization/templates/{contractTemplateId} | Return contract template by id -*ContractTemplatesApi* | [**get_contract_templates**](docs/ContractTemplatesApi.md#get_contract_templates) | **GET** /tokenization/templates | List all contract templates -*ContractTemplatesApi* | [**get_function_abi_by_contract_template_id**](docs/ContractTemplatesApi.md#get_function_abi_by_contract_template_id) | **GET** /tokenization/templates/{contractTemplateId}/function | Return contract template's function -*ContractTemplatesApi* | [**get_supported_blockchains_by_template_id**](docs/ContractTemplatesApi.md#get_supported_blockchains_by_template_id) | **GET** /tokenization/templates/{contractTemplateId}/supported_blockchains | Get supported blockchains for the template -*ContractTemplatesApi* | [**upload_contract_template**](docs/ContractTemplatesApi.md#upload_contract_template) | **POST** /tokenization/templates | Upload contract template -*ContractsApi* | [**add_contract_asset**](docs/ContractsApi.md#add_contract_asset) | **POST** /contracts/{contractId}/{assetId} | Add an asset to a whitelisted contract -*ContractsApi* | [**create_contract**](docs/ContractsApi.md#create_contract) | **POST** /contracts | Add a contract -*ContractsApi* | [**delete_contract**](docs/ContractsApi.md#delete_contract) | **DELETE** /contracts/{contractId} | Delete a contract -*ContractsApi* | [**delete_contract_asset**](docs/ContractsApi.md#delete_contract_asset) | **DELETE** /contracts/{contractId}/{assetId} | Delete an asset from a whitelisted contract -*ContractsApi* | [**get_contract**](docs/ContractsApi.md#get_contract) | **GET** /contracts/{contractId} | Find a Specific Whitelisted Contract -*ContractsApi* | [**get_contract_asset**](docs/ContractsApi.md#get_contract_asset) | **GET** /contracts/{contractId}/{assetId} | Find a whitelisted contract's asset -*ContractsApi* | [**get_contracts**](docs/ContractsApi.md#get_contracts) | **GET** /contracts | List Whitelisted Contracts -*CosignersBetaApi* | [**add_cosigner**](docs/CosignersBetaApi.md#add_cosigner) | **POST** /cosigners | Add cosigner -*CosignersBetaApi* | [**get_api_key**](docs/CosignersBetaApi.md#get_api_key) | **GET** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Get API key -*CosignersBetaApi* | [**get_api_keys**](docs/CosignersBetaApi.md#get_api_keys) | **GET** /cosigners/{cosignerId}/api_keys | Get all API keys -*CosignersBetaApi* | [**get_cosigner**](docs/CosignersBetaApi.md#get_cosigner) | **GET** /cosigners/{cosignerId} | Get cosigner -*CosignersBetaApi* | [**get_cosigners**](docs/CosignersBetaApi.md#get_cosigners) | **GET** /cosigners | Get all cosigners -*CosignersBetaApi* | [**get_request_status**](docs/CosignersBetaApi.md#get_request_status) | **GET** /cosigners/{cosignerId}/api_keys/{apiKeyId}/{requestId} | Get request status -*CosignersBetaApi* | [**pair_api_key**](docs/CosignersBetaApi.md#pair_api_key) | **PUT** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Pair API key -*CosignersBetaApi* | [**rename_cosigner**](docs/CosignersBetaApi.md#rename_cosigner) | **PATCH** /cosigners/{cosignerId} | Rename cosigner -*CosignersBetaApi* | [**unpair_api_key**](docs/CosignersBetaApi.md#unpair_api_key) | **DELETE** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Unpair API key -*CosignersBetaApi* | [**update_callback_handler**](docs/CosignersBetaApi.md#update_callback_handler) | **PATCH** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Update API key callback handler -*DeployedContractsApi* | [**add_contract_abi**](docs/DeployedContractsApi.md#add_contract_abi) | **POST** /tokenization/contracts/abi | Save contract ABI -*DeployedContractsApi* | [**fetch_contract_abi**](docs/DeployedContractsApi.md#fetch_contract_abi) | **POST** /tokenization/contracts/fetch_abi | Fetch the contract ABI -*DeployedContractsApi* | [**get_deployed_contract_by_address**](docs/DeployedContractsApi.md#get_deployed_contract_by_address) | **GET** /tokenization/contracts/{assetId}/{contractAddress} | Return deployed contract data -*DeployedContractsApi* | [**get_deployed_contract_by_id**](docs/DeployedContractsApi.md#get_deployed_contract_by_id) | **GET** /tokenization/contracts/{id} | Return deployed contract data by id -*DeployedContractsApi* | [**get_deployed_contracts**](docs/DeployedContractsApi.md#get_deployed_contracts) | **GET** /tokenization/contracts | List deployed contracts data -*EmbeddedWalletsApi* | [**add_embedded_wallet_asset**](docs/EmbeddedWalletsApi.md#add_embedded_wallet_asset) | **POST** /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId} | Add asset to account -*EmbeddedWalletsApi* | [**assign_embedded_wallet**](docs/EmbeddedWalletsApi.md#assign_embedded_wallet) | **POST** /ncw/wallets/{walletId}/assign | Assign a wallet -*EmbeddedWalletsApi* | [**create_embedded_wallet**](docs/EmbeddedWalletsApi.md#create_embedded_wallet) | **POST** /ncw/wallets | Create a new wallet -*EmbeddedWalletsApi* | [**create_embedded_wallet_account**](docs/EmbeddedWalletsApi.md#create_embedded_wallet_account) | **POST** /ncw/wallets/{walletId}/accounts | Create a new account -*EmbeddedWalletsApi* | [**get_embedded_wallet**](docs/EmbeddedWalletsApi.md#get_embedded_wallet) | **GET** /ncw/wallets/{walletId} | Get a wallet -*EmbeddedWalletsApi* | [**get_embedded_wallet_account**](docs/EmbeddedWalletsApi.md#get_embedded_wallet_account) | **GET** /ncw/wallets/{walletId}/accounts/{accountId} | Get a account -*EmbeddedWalletsApi* | [**get_embedded_wallet_addresses**](docs/EmbeddedWalletsApi.md#get_embedded_wallet_addresses) | **GET** /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}/addresses | Retrieve asset addresses -*EmbeddedWalletsApi* | [**get_embedded_wallet_asset**](docs/EmbeddedWalletsApi.md#get_embedded_wallet_asset) | **GET** /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId} | Retrieve asset -*EmbeddedWalletsApi* | [**get_embedded_wallet_asset_balance**](docs/EmbeddedWalletsApi.md#get_embedded_wallet_asset_balance) | **GET** /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}/balance | Retrieve asset balance -*EmbeddedWalletsApi* | [**get_embedded_wallet_assets**](docs/EmbeddedWalletsApi.md#get_embedded_wallet_assets) | **GET** /ncw/wallets/{walletId}/accounts/{accountId}/assets | Retrieve assets -*EmbeddedWalletsApi* | [**get_embedded_wallet_device**](docs/EmbeddedWalletsApi.md#get_embedded_wallet_device) | **GET** /ncw/wallets/{walletId}/devices/{deviceId} | Get Embedded Wallet Device -*EmbeddedWalletsApi* | [**get_embedded_wallet_device_setup_state**](docs/EmbeddedWalletsApi.md#get_embedded_wallet_device_setup_state) | **GET** /ncw/wallets/{walletId}/devices/{deviceId}/setup_status | Get device key setup state -*EmbeddedWalletsApi* | [**get_embedded_wallet_devices_paginated**](docs/EmbeddedWalletsApi.md#get_embedded_wallet_devices_paginated) | **GET** /ncw/wallets/{walletId}/devices_paginated | Get registered devices - paginated -*EmbeddedWalletsApi* | [**get_embedded_wallet_latest_backup**](docs/EmbeddedWalletsApi.md#get_embedded_wallet_latest_backup) | **GET** /ncw/wallets/{walletId}/backup/latest | Get wallet Latest Backup details -*EmbeddedWalletsApi* | [**get_embedded_wallet_public_key_info_for_address**](docs/EmbeddedWalletsApi.md#get_embedded_wallet_public_key_info_for_address) | **GET** /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}/{change}/{addressIndex}/public_key_info | Get the public key of an asset -*EmbeddedWalletsApi* | [**get_embedded_wallet_setup_status**](docs/EmbeddedWalletsApi.md#get_embedded_wallet_setup_status) | **GET** /ncw/wallets/{walletId}/setup_status | Get wallet key setup state -*EmbeddedWalletsApi* | [**get_embedded_wallet_supported_assets**](docs/EmbeddedWalletsApi.md#get_embedded_wallet_supported_assets) | **GET** /ncw/wallets/supported_assets | Retrieve supported assets -*EmbeddedWalletsApi* | [**get_embedded_wallets**](docs/EmbeddedWalletsApi.md#get_embedded_wallets) | **GET** /ncw/wallets | List wallets -*EmbeddedWalletsApi* | [**get_public_key_info_ncw**](docs/EmbeddedWalletsApi.md#get_public_key_info_ncw) | **GET** /ncw/wallets/{walletId}/public_key_info | Get the public key for a derivation path -*EmbeddedWalletsApi* | [**refresh_embedded_wallet_asset_balance**](docs/EmbeddedWalletsApi.md#refresh_embedded_wallet_asset_balance) | **PUT** /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}/balance | Refresh asset balance -*EmbeddedWalletsApi* | [**update_embedded_wallet_device_status**](docs/EmbeddedWalletsApi.md#update_embedded_wallet_device_status) | **PATCH** /ncw/wallets/{walletId}/devices/{deviceId}/status | Update device status -*EmbeddedWalletsApi* | [**update_embedded_wallet_status**](docs/EmbeddedWalletsApi.md#update_embedded_wallet_status) | **PATCH** /ncw/wallets/{walletId}/status | Update wallet status -*ExchangeAccountsApi* | [**add_exchange_account**](docs/ExchangeAccountsApi.md#add_exchange_account) | **POST** /exchange_accounts | Add an exchange account -*ExchangeAccountsApi* | [**convert_assets**](docs/ExchangeAccountsApi.md#convert_assets) | **POST** /exchange_accounts/{exchangeAccountId}/convert | Convert exchange account funds -*ExchangeAccountsApi* | [**get_exchange_account**](docs/ExchangeAccountsApi.md#get_exchange_account) | **GET** /exchange_accounts/{exchangeAccountId} | Get a specific exchange account -*ExchangeAccountsApi* | [**get_exchange_account_asset**](docs/ExchangeAccountsApi.md#get_exchange_account_asset) | **GET** /exchange_accounts/{exchangeAccountId}/{assetId} | Get an asset for an exchange account -*ExchangeAccountsApi* | [**get_exchange_accounts_credentials_public_key**](docs/ExchangeAccountsApi.md#get_exchange_accounts_credentials_public_key) | **GET** /exchange_accounts/credentials_public_key | Get public key to encrypt exchange credentials -*ExchangeAccountsApi* | [**get_paged_exchange_accounts**](docs/ExchangeAccountsApi.md#get_paged_exchange_accounts) | **GET** /exchange_accounts/paged | List connected exchange accounts -*ExchangeAccountsApi* | [**internal_transfer**](docs/ExchangeAccountsApi.md#internal_transfer) | **POST** /exchange_accounts/{exchangeAccountId}/internal_transfer | Internal transfer for exchange accounts -*ExternalWalletsApi* | [**add_asset_to_external_wallet**](docs/ExternalWalletsApi.md#add_asset_to_external_wallet) | **POST** /external_wallets/{walletId}/{assetId} | Add an asset to an external wallet. -*ExternalWalletsApi* | [**create_external_wallet**](docs/ExternalWalletsApi.md#create_external_wallet) | **POST** /external_wallets | Create an external wallet -*ExternalWalletsApi* | [**delete_external_wallet**](docs/ExternalWalletsApi.md#delete_external_wallet) | **DELETE** /external_wallets/{walletId} | Delete an external wallet -*ExternalWalletsApi* | [**get_external_wallet**](docs/ExternalWalletsApi.md#get_external_wallet) | **GET** /external_wallets/{walletId} | Find an external wallet -*ExternalWalletsApi* | [**get_external_wallet_asset**](docs/ExternalWalletsApi.md#get_external_wallet_asset) | **GET** /external_wallets/{walletId}/{assetId} | Get an asset from an external wallet -*ExternalWalletsApi* | [**get_external_wallets**](docs/ExternalWalletsApi.md#get_external_wallets) | **GET** /external_wallets | List external wallets -*ExternalWalletsApi* | [**remove_asset_from_external_wallet**](docs/ExternalWalletsApi.md#remove_asset_from_external_wallet) | **DELETE** /external_wallets/{walletId}/{assetId} | Delete an asset from an external wallet -*ExternalWalletsApi* | [**set_external_wallet_customer_ref_id**](docs/ExternalWalletsApi.md#set_external_wallet_customer_ref_id) | **POST** /external_wallets/{walletId}/set_customer_ref_id | Set an AML customer reference ID for an external wallet -*FiatAccountsApi* | [**deposit_funds_from_linked_dda**](docs/FiatAccountsApi.md#deposit_funds_from_linked_dda) | **POST** /fiat_accounts/{accountId}/deposit_from_linked_dda | Deposit funds from DDA -*FiatAccountsApi* | [**get_fiat_account**](docs/FiatAccountsApi.md#get_fiat_account) | **GET** /fiat_accounts/{accountId} | Find a specific fiat account -*FiatAccountsApi* | [**get_fiat_accounts**](docs/FiatAccountsApi.md#get_fiat_accounts) | **GET** /fiat_accounts | List fiat accounts -*FiatAccountsApi* | [**redeem_funds_to_linked_dda**](docs/FiatAccountsApi.md#redeem_funds_to_linked_dda) | **POST** /fiat_accounts/{accountId}/redeem_to_linked_dda | Redeem funds to DDA -*GasStationsApi* | [**get_gas_station_by_asset_id**](docs/GasStationsApi.md#get_gas_station_by_asset_id) | **GET** /gas_station/{assetId} | Get gas station settings by asset -*GasStationsApi* | [**get_gas_station_info**](docs/GasStationsApi.md#get_gas_station_info) | **GET** /gas_station | Get gas station settings -*GasStationsApi* | [**update_gas_station_configuration**](docs/GasStationsApi.md#update_gas_station_configuration) | **PUT** /gas_station/configuration | Edit gas station settings -*GasStationsApi* | [**update_gas_station_configuration_by_asset_id**](docs/GasStationsApi.md#update_gas_station_configuration_by_asset_id) | **PUT** /gas_station/configuration/{assetId} | Edit gas station settings for an asset -*InternalWalletsApi* | [**create_internal_wallet**](docs/InternalWalletsApi.md#create_internal_wallet) | **POST** /internal_wallets | Create an internal wallet -*InternalWalletsApi* | [**create_internal_wallet_asset**](docs/InternalWalletsApi.md#create_internal_wallet_asset) | **POST** /internal_wallets/{walletId}/{assetId} | Add an asset to an internal wallet -*InternalWalletsApi* | [**delete_internal_wallet**](docs/InternalWalletsApi.md#delete_internal_wallet) | **DELETE** /internal_wallets/{walletId} | Delete an internal wallet -*InternalWalletsApi* | [**delete_internal_wallet_asset**](docs/InternalWalletsApi.md#delete_internal_wallet_asset) | **DELETE** /internal_wallets/{walletId}/{assetId} | Delete a whitelisted address -*InternalWalletsApi* | [**get_internal_wallet**](docs/InternalWalletsApi.md#get_internal_wallet) | **GET** /internal_wallets/{walletId} | Get assets for internal wallet -*InternalWalletsApi* | [**get_internal_wallet_asset**](docs/InternalWalletsApi.md#get_internal_wallet_asset) | **GET** /internal_wallets/{walletId}/{assetId} | Get an asset from an internal wallet -*InternalWalletsApi* | [**get_internal_wallet_assets_paginated**](docs/InternalWalletsApi.md#get_internal_wallet_assets_paginated) | **GET** /internal_wallets/{walletId}/assets | List assets in an internal wallet (Paginated) -*InternalWalletsApi* | [**get_internal_wallets**](docs/InternalWalletsApi.md#get_internal_wallets) | **GET** /internal_wallets | List internal wallets -*InternalWalletsApi* | [**set_customer_ref_id_for_internal_wallet**](docs/InternalWalletsApi.md#set_customer_ref_id_for_internal_wallet) | **POST** /internal_wallets/{walletId}/set_customer_ref_id | Set an AML/KYT customer reference ID for internal wallet -*KeyLinkBetaApi* | [**create_signing_key**](docs/KeyLinkBetaApi.md#create_signing_key) | **POST** /key_link/signing_keys | Add a new signing key -*KeyLinkBetaApi* | [**create_validation_key**](docs/KeyLinkBetaApi.md#create_validation_key) | **POST** /key_link/validation_keys | Add a new validation key -*KeyLinkBetaApi* | [**disable_validation_key**](docs/KeyLinkBetaApi.md#disable_validation_key) | **PATCH** /key_link/validation_keys/{keyId} | Disables a validation key -*KeyLinkBetaApi* | [**get_signing_key**](docs/KeyLinkBetaApi.md#get_signing_key) | **GET** /key_link/signing_keys/{keyId} | Get a signing key by `keyId` -*KeyLinkBetaApi* | [**get_signing_keys_list**](docs/KeyLinkBetaApi.md#get_signing_keys_list) | **GET** /key_link/signing_keys | Get list of signing keys -*KeyLinkBetaApi* | [**get_validation_key**](docs/KeyLinkBetaApi.md#get_validation_key) | **GET** /key_link/validation_keys/{keyId} | Get a validation key by `keyId` -*KeyLinkBetaApi* | [**get_validation_keys_list**](docs/KeyLinkBetaApi.md#get_validation_keys_list) | **GET** /key_link/validation_keys | Get list of registered validation keys -*KeyLinkBetaApi* | [**set_agent_id**](docs/KeyLinkBetaApi.md#set_agent_id) | **PATCH** /key_link/signing_keys/{keyId}/agent_user_id | Set agent user id -*KeyLinkBetaApi* | [**update_signing_key**](docs/KeyLinkBetaApi.md#update_signing_key) | **PATCH** /key_link/signing_keys/{keyId} | Modify the signing keyId -*KeysBetaApi* | [**get_mpc_keys_list**](docs/KeysBetaApi.md#get_mpc_keys_list) | **GET** /keys/mpc/list | Get list of mpc keys -*KeysBetaApi* | [**get_mpc_keys_list_by_user**](docs/KeysBetaApi.md#get_mpc_keys_list_by_user) | **GET** /keys/mpc/list/{userId} | Get list of mpc keys by `userId` -*NFTsApi* | [**get_nft**](docs/NFTsApi.md#get_nft) | **GET** /nfts/tokens/{id} | List token data by ID -*NFTsApi* | [**get_nfts**](docs/NFTsApi.md#get_nfts) | **GET** /nfts/tokens | List tokens by IDs -*NFTsApi* | [**get_ownership_tokens**](docs/NFTsApi.md#get_ownership_tokens) | **GET** /nfts/ownership/tokens | List all owned tokens (paginated) -*NFTsApi* | [**list_owned_collections**](docs/NFTsApi.md#list_owned_collections) | **GET** /nfts/ownership/collections | List owned collections (paginated) -*NFTsApi* | [**list_owned_tokens**](docs/NFTsApi.md#list_owned_tokens) | **GET** /nfts/ownership/assets | List all distinct owned tokens (paginated) -*NFTsApi* | [**refresh_nft_metadata**](docs/NFTsApi.md#refresh_nft_metadata) | **PUT** /nfts/tokens/{id} | Refresh token metadata -*NFTsApi* | [**update_ownership_tokens**](docs/NFTsApi.md#update_ownership_tokens) | **PUT** /nfts/ownership/tokens | Refresh vault account tokens -*NFTsApi* | [**update_token_ownership_status**](docs/NFTsApi.md#update_token_ownership_status) | **PUT** /nfts/ownership/tokens/{id}/status | Update token ownership status -*NFTsApi* | [**update_tokens_ownership_spam**](docs/NFTsApi.md#update_tokens_ownership_spam) | **PUT** /nfts/ownership/tokens/spam | Update tokens ownership spam property -*NFTsApi* | [**update_tokens_ownership_status**](docs/NFTsApi.md#update_tokens_ownership_status) | **PUT** /nfts/ownership/tokens/status | Update tokens ownership status -*NetworkConnectionsApi* | [**check_third_party_routing**](docs/NetworkConnectionsApi.md#check_third_party_routing) | **GET** /network_connections/{connectionId}/is_third_party_routing/{assetType} | Retrieve third-party network routing validation -*NetworkConnectionsApi* | [**create_network_connection**](docs/NetworkConnectionsApi.md#create_network_connection) | **POST** /network_connections | Create a new network connection -*NetworkConnectionsApi* | [**create_network_id**](docs/NetworkConnectionsApi.md#create_network_id) | **POST** /network_ids | Creates a new Network ID -*NetworkConnectionsApi* | [**delete_network_connection**](docs/NetworkConnectionsApi.md#delete_network_connection) | **DELETE** /network_connections/{connectionId} | Delete a network connection by ID -*NetworkConnectionsApi* | [**delete_network_id**](docs/NetworkConnectionsApi.md#delete_network_id) | **DELETE** /network_ids/{networkId} | Delete specific network ID. -*NetworkConnectionsApi* | [**get_network**](docs/NetworkConnectionsApi.md#get_network) | **GET** /network_connections/{connectionId} | Get a network connection -*NetworkConnectionsApi* | [**get_network_connections**](docs/NetworkConnectionsApi.md#get_network_connections) | **GET** /network_connections | List network connections -*NetworkConnectionsApi* | [**get_network_id**](docs/NetworkConnectionsApi.md#get_network_id) | **GET** /network_ids/{networkId} | Return specific network ID. -*NetworkConnectionsApi* | [**get_network_ids**](docs/NetworkConnectionsApi.md#get_network_ids) | **GET** /network_ids | Get all network IDs -*NetworkConnectionsApi* | [**get_routing_policy_asset_groups**](docs/NetworkConnectionsApi.md#get_routing_policy_asset_groups) | **GET** /network_ids/routing_policy_asset_groups | Return all enabled routing policy asset groups -*NetworkConnectionsApi* | [**search_network_ids**](docs/NetworkConnectionsApi.md#search_network_ids) | **GET** /network_ids/search | Get both local IDs and discoverable remote IDs -*NetworkConnectionsApi* | [**set_network_id_discoverability**](docs/NetworkConnectionsApi.md#set_network_id_discoverability) | **PATCH** /network_ids/{networkId}/set_discoverability | Update network ID's discoverability. -*NetworkConnectionsApi* | [**set_network_id_name**](docs/NetworkConnectionsApi.md#set_network_id_name) | **PATCH** /network_ids/{networkId}/set_name | Update network ID's name. -*NetworkConnectionsApi* | [**set_network_id_routing_policy**](docs/NetworkConnectionsApi.md#set_network_id_routing_policy) | **PATCH** /network_ids/{networkId}/set_routing_policy | Update network id routing policy. -*NetworkConnectionsApi* | [**set_routing_policy**](docs/NetworkConnectionsApi.md#set_routing_policy) | **PATCH** /network_connections/{connectionId}/set_routing_policy | Update network connection routing policy. -*OTABetaApi* | [**get_ota_status**](docs/OTABetaApi.md#get_ota_status) | **GET** /management/ota | Returns current OTA status -*OTABetaApi* | [**set_ota_status**](docs/OTABetaApi.md#set_ota_status) | **PUT** /management/ota | Enable or disable transactions to OTA -*OffExchangesApi* | [**add_off_exchange**](docs/OffExchangesApi.md#add_off_exchange) | **POST** /off_exchange/add | Add Collateral -*OffExchangesApi* | [**get_off_exchange_collateral_accounts**](docs/OffExchangesApi.md#get_off_exchange_collateral_accounts) | **GET** /off_exchange/collateral_accounts/{mainExchangeAccountId} | Find a specific collateral exchange account -*OffExchangesApi* | [**get_off_exchange_settlement_transactions**](docs/OffExchangesApi.md#get_off_exchange_settlement_transactions) | **GET** /off_exchange/settlements/transactions | Get Settlements Transactions -*OffExchangesApi* | [**remove_off_exchange**](docs/OffExchangesApi.md#remove_off_exchange) | **POST** /off_exchange/remove | Remove Collateral -*OffExchangesApi* | [**settle_off_exchange_trades**](docs/OffExchangesApi.md#settle_off_exchange_trades) | **POST** /off_exchange/settlements/trader | Create Settlement for a Trader -*OnchainDataApi* | [**get_access_registry_current_state**](docs/OnchainDataApi.md#get_access_registry_current_state) | **GET** /onchain_data/base_asset_id/{baseAssetId}/access_registry_address/{accessRegistryAddress}/list | Get the current state of addresses in an access registry -*OnchainDataApi* | [**get_access_registry_summary**](docs/OnchainDataApi.md#get_access_registry_summary) | **GET** /onchain_data/base_asset_id/{baseAssetId}/access_registry_address/{accessRegistryAddress}/summary | Summary of access registry state -*OnchainDataApi* | [**get_active_roles_for_contract**](docs/OnchainDataApi.md#get_active_roles_for_contract) | **GET** /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/roles | List of active roles for a given contract address and base asset ID -*OnchainDataApi* | [**get_contract_balance_history**](docs/OnchainDataApi.md#get_contract_balance_history) | **GET** /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/account_address/{accountAddress}/balance_history | Get historical balance data for a specific account in a contract -*OnchainDataApi* | [**get_contract_balances_summary**](docs/OnchainDataApi.md#get_contract_balances_summary) | **GET** /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/summary | Get summary for the token contract -*OnchainDataApi* | [**get_contract_total_supply**](docs/OnchainDataApi.md#get_contract_total_supply) | **GET** /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/total_supply | Get historical total supply data for a contract -*OnchainDataApi* | [**get_latest_balances_for_contract**](docs/OnchainDataApi.md#get_latest_balances_for_contract) | **GET** /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/balances | Get latest balances for all addresses holding tokens from a contract -*OnchainDataApi* | [**get_onchain_transactions**](docs/OnchainDataApi.md#get_onchain_transactions) | **GET** /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/transactions | Fetch onchain transactions for a contract -*PaymentsPayoutApi* | [**create_payout**](docs/PaymentsPayoutApi.md#create_payout) | **POST** /payments/payout | Create a payout instruction set -*PaymentsPayoutApi* | [**execute_payout_action**](docs/PaymentsPayoutApi.md#execute_payout_action) | **POST** /payments/payout/{payoutId}/actions/execute | Execute a payout instruction set -*PaymentsPayoutApi* | [**get_payout**](docs/PaymentsPayoutApi.md#get_payout) | **GET** /payments/payout/{payoutId} | Get the status of a payout instruction set -*PolicyEditorV2BetaApi* | [**get_active_policy**](docs/PolicyEditorV2BetaApi.md#get_active_policy) | **GET** /policy/active_policy | Get the active policy and its validation by policy type -*PolicyEditorV2BetaApi* | [**get_draft**](docs/PolicyEditorV2BetaApi.md#get_draft) | **GET** /policy/draft | Get the active draft by policy type -*PolicyEditorV2BetaApi* | [**publish_draft**](docs/PolicyEditorV2BetaApi.md#publish_draft) | **POST** /policy/draft | Send publish request for a certain draft id -*PolicyEditorV2BetaApi* | [**update_draft**](docs/PolicyEditorV2BetaApi.md#update_draft) | **PUT** /policy/draft | Update the draft with a new set of rules by policy types -*PolicyEditorBetaApi* | [**get_active_policy_legacy**](docs/PolicyEditorBetaApi.md#get_active_policy_legacy) | **GET** /tap/active_policy | Get the active policy and its validation -*PolicyEditorBetaApi* | [**get_draft_legacy**](docs/PolicyEditorBetaApi.md#get_draft_legacy) | **GET** /tap/draft | Get the active draft -*PolicyEditorBetaApi* | [**publish_draft_legacy**](docs/PolicyEditorBetaApi.md#publish_draft_legacy) | **POST** /tap/draft | Send publish request for a certain draft id -*PolicyEditorBetaApi* | [**publish_policy_rules**](docs/PolicyEditorBetaApi.md#publish_policy_rules) | **POST** /tap/publish | Send publish request for a set of policy rules -*PolicyEditorBetaApi* | [**update_draft_legacy**](docs/PolicyEditorBetaApi.md#update_draft_legacy) | **PUT** /tap/draft | Update the draft with a new set of rules -*ResetDeviceApi* | [**reset_device**](docs/ResetDeviceApi.md#reset_device) | **POST** /management/users/{id}/reset_device | Resets device -*SmartTransferApi* | [**approve_dv_p_ticket_term**](docs/SmartTransferApi.md#approve_dv_p_ticket_term) | **PUT** /smart_transfers/{ticketId}/terms/{termId}/dvp/approve | Set funding source and approval -*SmartTransferApi* | [**cancel_ticket**](docs/SmartTransferApi.md#cancel_ticket) | **PUT** /smart-transfers/{ticketId}/cancel | Cancel Ticket -*SmartTransferApi* | [**create_ticket**](docs/SmartTransferApi.md#create_ticket) | **POST** /smart-transfers | Create Ticket -*SmartTransferApi* | [**create_ticket_term**](docs/SmartTransferApi.md#create_ticket_term) | **POST** /smart-transfers/{ticketId}/terms | Create leg (term) -*SmartTransferApi* | [**find_ticket_by_id**](docs/SmartTransferApi.md#find_ticket_by_id) | **GET** /smart-transfers/{ticketId} | Search Ticket by ID -*SmartTransferApi* | [**find_ticket_term_by_id**](docs/SmartTransferApi.md#find_ticket_term_by_id) | **GET** /smart-transfers/{ticketId}/terms/{termId} | Get Smart Transfer ticket term -*SmartTransferApi* | [**fulfill_ticket**](docs/SmartTransferApi.md#fulfill_ticket) | **PUT** /smart-transfers/{ticketId}/fulfill | Fund ticket manually -*SmartTransferApi* | [**fund_dvp_ticket**](docs/SmartTransferApi.md#fund_dvp_ticket) | **PUT** /smart_transfers/{ticketId}/dvp/fund | Fund dvp ticket -*SmartTransferApi* | [**fund_ticket_term**](docs/SmartTransferApi.md#fund_ticket_term) | **PUT** /smart-transfers/{ticketId}/terms/{termId}/fund | Define funding source -*SmartTransferApi* | [**get_smart_transfer_statistic**](docs/SmartTransferApi.md#get_smart_transfer_statistic) | **GET** /smart_transfers/statistic | Get smart transfers statistic -*SmartTransferApi* | [**get_smart_transfer_user_groups**](docs/SmartTransferApi.md#get_smart_transfer_user_groups) | **GET** /smart-transfers/settings/user-groups | Get user group -*SmartTransferApi* | [**manually_fund_ticket_term**](docs/SmartTransferApi.md#manually_fund_ticket_term) | **PUT** /smart-transfers/{ticketId}/terms/{termId}/manually-fund | Manually add term transaction -*SmartTransferApi* | [**remove_ticket_term**](docs/SmartTransferApi.md#remove_ticket_term) | **DELETE** /smart-transfers/{ticketId}/terms/{termId} | Delete ticket leg (term) -*SmartTransferApi* | [**search_tickets**](docs/SmartTransferApi.md#search_tickets) | **GET** /smart-transfers | Find Ticket -*SmartTransferApi* | [**set_external_ref_id**](docs/SmartTransferApi.md#set_external_ref_id) | **PUT** /smart-transfers/{ticketId}/external-id | Add external ref. ID -*SmartTransferApi* | [**set_ticket_expiration**](docs/SmartTransferApi.md#set_ticket_expiration) | **PUT** /smart-transfers/{ticketId}/expires-in | Set expiration -*SmartTransferApi* | [**set_user_groups**](docs/SmartTransferApi.md#set_user_groups) | **POST** /smart-transfers/settings/user-groups | Set user group -*SmartTransferApi* | [**submit_ticket**](docs/SmartTransferApi.md#submit_ticket) | **PUT** /smart-transfers/{ticketId}/submit | Submit ticket -*SmartTransferApi* | [**update_ticket_term**](docs/SmartTransferApi.md#update_ticket_term) | **PUT** /smart-transfers/{ticketId}/terms/{termId} | Update ticket leg (term) -*StakingApi* | [**approve_terms_of_service_by_provider_id**](docs/StakingApi.md#approve_terms_of_service_by_provider_id) | **POST** /staking/providers/{providerId}/approveTermsOfService | Approve provider terms of service -*StakingApi* | [**claim_rewards**](docs/StakingApi.md#claim_rewards) | **POST** /staking/chains/{chainDescriptor}/claim_rewards | Claim accrued rewards -*StakingApi* | [**consolidate**](docs/StakingApi.md#consolidate) | **POST** /staking/chains/{chainDescriptor}/consolidate | Consolidate staking positions (ETH validator consolidation) -*StakingApi* | [**get_all_delegations**](docs/StakingApi.md#get_all_delegations) | **GET** /staking/positions | List staking positions -*StakingApi* | [**get_chain_info**](docs/StakingApi.md#get_chain_info) | **GET** /staking/chains/{chainDescriptor}/chainInfo | Get chain-level staking parameters -*StakingApi* | [**get_chains**](docs/StakingApi.md#get_chains) | **GET** /staking/chains | List supported staking chains -*StakingApi* | [**get_delegation_by_id**](docs/StakingApi.md#get_delegation_by_id) | **GET** /staking/positions/{id} | Get position details -*StakingApi* | [**get_providers**](docs/StakingApi.md#get_providers) | **GET** /staking/providers | List staking providers -*StakingApi* | [**get_summary**](docs/StakingApi.md#get_summary) | **GET** /staking/positions/summary | Get positions summary -*StakingApi* | [**get_summary_by_vault**](docs/StakingApi.md#get_summary_by_vault) | **GET** /staking/positions/summary/vaults | Get positions summary by vault -*StakingApi* | [**merge_stake_accounts**](docs/StakingApi.md#merge_stake_accounts) | **POST** /staking/chains/{chainDescriptor}/merge | Merge staking positions -*StakingApi* | [**split**](docs/StakingApi.md#split) | **POST** /staking/chains/{chainDescriptor}/split | Split a staking position -*StakingApi* | [**stake**](docs/StakingApi.md#stake) | **POST** /staking/chains/{chainDescriptor}/stake | Initiate or add to existing stake -*StakingApi* | [**unstake**](docs/StakingApi.md#unstake) | **POST** /staking/chains/{chainDescriptor}/unstake | Initiate unstake -*StakingApi* | [**withdraw**](docs/StakingApi.md#withdraw) | **POST** /staking/chains/{chainDescriptor}/withdraw | Withdraw staked funds -*TRLinkApi* | [**assess_tr_link_travel_rule_requirement**](docs/TRLinkApi.md#assess_tr_link_travel_rule_requirement) | **POST** /screening/trlink/customers/integration/{customerIntegrationId}/trm/assess | Assess Travel Rule requirement -*TRLinkApi* | [**cancel_tr_link_trm**](docs/TRLinkApi.md#cancel_tr_link_trm) | **POST** /screening/trlink/customers/integration/{customerIntegrationId}/trm/{trmId}/cancel | Cancel Travel Rule Message -*TRLinkApi* | [**connect_tr_link_integration**](docs/TRLinkApi.md#connect_tr_link_integration) | **PUT** /screening/trlink/customers/integration/{customerIntegrationId} | Connect customer integration -*TRLinkApi* | [**create_tr_link_customer**](docs/TRLinkApi.md#create_tr_link_customer) | **POST** /screening/trlink/customers | Create customer -*TRLinkApi* | [**create_tr_link_integration**](docs/TRLinkApi.md#create_tr_link_integration) | **POST** /screening/trlink/customers/integration | Create customer integration -*TRLinkApi* | [**create_tr_link_trm**](docs/TRLinkApi.md#create_tr_link_trm) | **POST** /screening/trlink/customers/integration/{customerIntegrationId}/trm | Create Travel Rule Message -*TRLinkApi* | [**delete_tr_link_customer**](docs/TRLinkApi.md#delete_tr_link_customer) | **DELETE** /screening/trlink/customers/{customerId} | Delete customer -*TRLinkApi* | [**disconnect_tr_link_integration**](docs/TRLinkApi.md#disconnect_tr_link_integration) | **DELETE** /screening/trlink/customers/integration/{customerIntegrationId} | Disconnect customer integration -*TRLinkApi* | [**get_tr_link_customer_by_id**](docs/TRLinkApi.md#get_tr_link_customer_by_id) | **GET** /screening/trlink/customers/{customerId} | Get customer by ID -*TRLinkApi* | [**get_tr_link_customer_integration_by_id**](docs/TRLinkApi.md#get_tr_link_customer_integration_by_id) | **GET** /screening/trlink/customers/{customerId}/integrations/{customerIntegrationId} | Get customer integration by ID -*TRLinkApi* | [**get_tr_link_customer_integrations**](docs/TRLinkApi.md#get_tr_link_customer_integrations) | **GET** /screening/trlink/customers/{customerId}/integrations | Get customer integrations -*TRLinkApi* | [**get_tr_link_customers**](docs/TRLinkApi.md#get_tr_link_customers) | **GET** /screening/trlink/customers | Get all customers -*TRLinkApi* | [**get_tr_link_integration_public_key**](docs/TRLinkApi.md#get_tr_link_integration_public_key) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/public_key | Get public key for PII encryption -*TRLinkApi* | [**get_tr_link_partners**](docs/TRLinkApi.md#get_tr_link_partners) | **GET** /screening/trlink/partners | List available TRSupport partners -*TRLinkApi* | [**get_tr_link_policy**](docs/TRLinkApi.md#get_tr_link_policy) | **GET** /screening/trlink/policy | Get TRLink policy -*TRLinkApi* | [**get_tr_link_supported_asset**](docs/TRLinkApi.md#get_tr_link_supported_asset) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/assets/{assetId} | Get supported asset by ID -*TRLinkApi* | [**get_tr_link_trm_by_id**](docs/TRLinkApi.md#get_tr_link_trm_by_id) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/trm/{trmId} | Get TRM by ID -*TRLinkApi* | [**get_tr_link_vasp_by_id**](docs/TRLinkApi.md#get_tr_link_vasp_by_id) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/vasps/{vaspId} | Get VASP by ID -*TRLinkApi* | [**list_tr_link_supported_assets**](docs/TRLinkApi.md#list_tr_link_supported_assets) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/assets | List supported assets -*TRLinkApi* | [**list_tr_link_vasps**](docs/TRLinkApi.md#list_tr_link_vasps) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/vasps | List VASPs -*TRLinkApi* | [**redirect_tr_link_trm**](docs/TRLinkApi.md#redirect_tr_link_trm) | **POST** /screening/trlink/customers/integration/{customerIntegrationId}/trm/{trmId}/redirect | Redirect Travel Rule Message -*TRLinkApi* | [**set_tr_link_destination_travel_rule_message_id**](docs/TRLinkApi.md#set_tr_link_destination_travel_rule_message_id) | **POST** /screening/trlink/transaction/{txId}/destination/travel_rule_message_id | Set destination travel rule message ID -*TRLinkApi* | [**set_tr_link_transaction_travel_rule_message_id**](docs/TRLinkApi.md#set_tr_link_transaction_travel_rule_message_id) | **POST** /screening/trlink/transaction/{txId}/travel_rule_message_id | Set transaction travel rule message ID -*TRLinkApi* | [**test_tr_link_integration_connection**](docs/TRLinkApi.md#test_tr_link_integration_connection) | **POST** /screening/trlink/customers/integration/{customerIntegrationId}/test_connection | Test connection -*TRLinkApi* | [**update_tr_link_customer**](docs/TRLinkApi.md#update_tr_link_customer) | **PUT** /screening/trlink/customers/{customerId} | Update customer -*TagsApi* | [**cancel_approval_request**](docs/TagsApi.md#cancel_approval_request) | **POST** /tags/approval_requests/{id}/cancel | Cancel an approval request by id -*TagsApi* | [**create_tag**](docs/TagsApi.md#create_tag) | **POST** /tags | Create a new tag -*TagsApi* | [**delete_tag**](docs/TagsApi.md#delete_tag) | **DELETE** /tags/{tagId} | Delete a tag -*TagsApi* | [**get_approval_request**](docs/TagsApi.md#get_approval_request) | **GET** /tags/approval_requests/{id} | Get an approval request by id -*TagsApi* | [**get_tag**](docs/TagsApi.md#get_tag) | **GET** /tags/{tagId} | Get a tag -*TagsApi* | [**get_tags**](docs/TagsApi.md#get_tags) | **GET** /tags | Get list of tags -*TagsApi* | [**update_tag**](docs/TagsApi.md#update_tag) | **PATCH** /tags/{tagId} | Update a tag -*TokenizationApi* | [**burn_collection_token**](docs/TokenizationApi.md#burn_collection_token) | **POST** /tokenization/collections/{id}/tokens/burn | Burn tokens -*TokenizationApi* | [**create_new_collection**](docs/TokenizationApi.md#create_new_collection) | **POST** /tokenization/collections | Create a new collection -*TokenizationApi* | [**deactivate_and_unlink_adapters**](docs/TokenizationApi.md#deactivate_and_unlink_adapters) | **DELETE** /tokenization/multichain/bridge/layerzero | Remove LayerZero adapters -*TokenizationApi* | [**deploy_and_link_adapters**](docs/TokenizationApi.md#deploy_and_link_adapters) | **POST** /tokenization/multichain/bridge/layerzero | Deploy LayerZero adapters -*TokenizationApi* | [**fetch_collection_token_details**](docs/TokenizationApi.md#fetch_collection_token_details) | **GET** /tokenization/collections/{id}/tokens/{tokenId} | Get collection token details -*TokenizationApi* | [**get_collection_by_id**](docs/TokenizationApi.md#get_collection_by_id) | **GET** /tokenization/collections/{id} | Get a collection by id -*TokenizationApi* | [**get_deployable_address**](docs/TokenizationApi.md#get_deployable_address) | **POST** /tokenization/multichain/deterministic_address | Get deterministic address for contract deployment -*TokenizationApi* | [**get_layer_zero_dvn_config**](docs/TokenizationApi.md#get_layer_zero_dvn_config) | **GET** /tokenization/multichain/bridge/layerzero/config/{adapterTokenLinkId}/dvns | Get LayerZero DVN configuration -*TokenizationApi* | [**get_layer_zero_peers**](docs/TokenizationApi.md#get_layer_zero_peers) | **GET** /tokenization/multichain/bridge/layerzero/config/{adapterTokenLinkId}/peers | Get LayerZero peers -*TokenizationApi* | [**get_linked_collections**](docs/TokenizationApi.md#get_linked_collections) | **GET** /tokenization/collections | Get collections -*TokenizationApi* | [**get_linked_token**](docs/TokenizationApi.md#get_linked_token) | **GET** /tokenization/tokens/{id} | Return a linked token -*TokenizationApi* | [**get_linked_tokens**](docs/TokenizationApi.md#get_linked_tokens) | **GET** /tokenization/tokens | List all linked tokens -*TokenizationApi* | [**get_linked_tokens_count**](docs/TokenizationApi.md#get_linked_tokens_count) | **GET** /tokenization/tokens/count | Get the total count of linked tokens -*TokenizationApi* | [**issue_new_token**](docs/TokenizationApi.md#issue_new_token) | **POST** /tokenization/tokens | Issue a new token -*TokenizationApi* | [**issue_token_multi_chain**](docs/TokenizationApi.md#issue_token_multi_chain) | **POST** /tokenization/multichain/tokens | Issue a token on one or more blockchains -*TokenizationApi* | [**link**](docs/TokenizationApi.md#link) | **POST** /tokenization/tokens/link | Link a contract -*TokenizationApi* | [**mint_collection_token**](docs/TokenizationApi.md#mint_collection_token) | **POST** /tokenization/collections/{id}/tokens/mint | Mint tokens -*TokenizationApi* | [**re_issue_token_multi_chain**](docs/TokenizationApi.md#re_issue_token_multi_chain) | **POST** /tokenization/multichain/reissue/token/{tokenLinkId} | Reissue a multichain token -*TokenizationApi* | [**remove_layer_zero_peers**](docs/TokenizationApi.md#remove_layer_zero_peers) | **DELETE** /tokenization/multichain/bridge/layerzero/config/peers | Remove LayerZero peers -*TokenizationApi* | [**set_layer_zero_dvn_config**](docs/TokenizationApi.md#set_layer_zero_dvn_config) | **POST** /tokenization/multichain/bridge/layerzero/config/dvns | Set LayerZero DVN configuration -*TokenizationApi* | [**set_layer_zero_peers**](docs/TokenizationApi.md#set_layer_zero_peers) | **POST** /tokenization/multichain/bridge/layerzero/config/peers | Set LayerZero peers -*TokenizationApi* | [**unlink**](docs/TokenizationApi.md#unlink) | **DELETE** /tokenization/tokens/{id} | Unlink a token -*TokenizationApi* | [**unlink_collection**](docs/TokenizationApi.md#unlink_collection) | **DELETE** /tokenization/collections/{id} | Delete a collection link -*TokenizationApi* | [**validate_layer_zero_channel_config**](docs/TokenizationApi.md#validate_layer_zero_channel_config) | **GET** /tokenization/multichain/bridge/layerzero/validate | Validate LayerZero channel configuration -*TradingBetaApi* | [**create_order**](docs/TradingBetaApi.md#create_order) | **POST** /trading/orders | Create an order -*TradingBetaApi* | [**create_quote**](docs/TradingBetaApi.md#create_quote) | **POST** /trading/quotes | Create a quote -*TradingBetaApi* | [**get_order**](docs/TradingBetaApi.md#get_order) | **GET** /trading/orders/{orderId} | Get order details -*TradingBetaApi* | [**get_orders**](docs/TradingBetaApi.md#get_orders) | **GET** /trading/orders | Get orders -*TradingBetaApi* | [**get_trading_providers**](docs/TradingBetaApi.md#get_trading_providers) | **GET** /trading/providers | Get providers -*TransactionsApi* | [**cancel_transaction**](docs/TransactionsApi.md#cancel_transaction) | **POST** /transactions/{txId}/cancel | Cancel a transaction -*TransactionsApi* | [**create_transaction**](docs/TransactionsApi.md#create_transaction) | **POST** /transactions | Create a new transaction -*TransactionsApi* | [**drop_transaction**](docs/TransactionsApi.md#drop_transaction) | **POST** /transactions/{txId}/drop | Drop ETH (EVM) transaction by ID -*TransactionsApi* | [**estimate_network_fee**](docs/TransactionsApi.md#estimate_network_fee) | **GET** /estimate_network_fee | Estimate the required fee for an asset -*TransactionsApi* | [**estimate_transaction_fee**](docs/TransactionsApi.md#estimate_transaction_fee) | **POST** /transactions/estimate_fee | Estimate transaction fee -*TransactionsApi* | [**freeze_transaction**](docs/TransactionsApi.md#freeze_transaction) | **POST** /transactions/{txId}/freeze | Freeze a transaction -*TransactionsApi* | [**get_transaction**](docs/TransactionsApi.md#get_transaction) | **GET** /transactions/{txId} | Get a specific transaction by Fireblocks transaction ID -*TransactionsApi* | [**get_transaction_by_external_id**](docs/TransactionsApi.md#get_transaction_by_external_id) | **GET** /transactions/external_tx_id/{externalTxId} | Get a specific transaction by external transaction ID -*TransactionsApi* | [**get_transactions**](docs/TransactionsApi.md#get_transactions) | **GET** /transactions | Get transaction history -*TransactionsApi* | [**set_confirmation_threshold_by_transaction_hash**](docs/TransactionsApi.md#set_confirmation_threshold_by_transaction_hash) | **POST** /txHash/{txHash}/set_confirmation_threshold | Set confirmation threshold by transaction hash -*TransactionsApi* | [**set_transaction_confirmation_threshold**](docs/TransactionsApi.md#set_transaction_confirmation_threshold) | **POST** /transactions/{txId}/set_confirmation_threshold | Set confirmation threshold by Fireblocks Transaction ID -*TransactionsApi* | [**unfreeze_transaction**](docs/TransactionsApi.md#unfreeze_transaction) | **POST** /transactions/{txId}/unfreeze | Unfreeze a transaction -*TransactionsApi* | [**validate_address**](docs/TransactionsApi.md#validate_address) | **GET** /transactions/validate_address/{assetId}/{address} | Validate destination address -*TravelRuleApi* | [**create_trust_proof_of_address**](docs/TravelRuleApi.md#create_trust_proof_of_address) | **POST** /screening/travel_rule/providers/trust/proof_of_address | Create Trust Network Proof of Address -*TravelRuleApi* | [**get_trust_proof_of_address**](docs/TravelRuleApi.md#get_trust_proof_of_address) | **GET** /screening/travel_rule/providers/trust/proof_of_address/{transactionId} | Retrieve Trust Network Proof of Address Signature -*TravelRuleApi* | [**get_vasp_for_vault**](docs/TravelRuleApi.md#get_vasp_for_vault) | **GET** /screening/travel_rule/vault/{vaultAccountId}/vasp | Get assigned VASP to vault -*TravelRuleApi* | [**get_vaspby_did**](docs/TravelRuleApi.md#get_vaspby_did) | **GET** /screening/travel_rule/vasp/{did} | Get VASP details -*TravelRuleApi* | [**get_vasps**](docs/TravelRuleApi.md#get_vasps) | **GET** /screening/travel_rule/vasp | Get All VASPs -*TravelRuleApi* | [**set_vasp_for_vault**](docs/TravelRuleApi.md#set_vasp_for_vault) | **POST** /screening/travel_rule/vault/{vaultAccountId}/vasp | Assign VASP to vault -*TravelRuleApi* | [**update_vasp**](docs/TravelRuleApi.md#update_vasp) | **PUT** /screening/travel_rule/vasp/update | Add jsonDidKey to VASP details -*TravelRuleApi* | [**validate_full_travel_rule_transaction**](docs/TravelRuleApi.md#validate_full_travel_rule_transaction) | **POST** /screening/travel_rule/transaction/validate/full | Validate Full Travel Rule Transaction -*UserGroupsBetaApi* | [**create_user_group**](docs/UserGroupsBetaApi.md#create_user_group) | **POST** /management/user_groups | Create user group -*UserGroupsBetaApi* | [**delete_user_group**](docs/UserGroupsBetaApi.md#delete_user_group) | **DELETE** /management/user_groups/{groupId} | Delete user group -*UserGroupsBetaApi* | [**get_user_group**](docs/UserGroupsBetaApi.md#get_user_group) | **GET** /management/user_groups/{groupId} | Get user group -*UserGroupsBetaApi* | [**get_user_groups**](docs/UserGroupsBetaApi.md#get_user_groups) | **GET** /management/user_groups | List user groups -*UserGroupsBetaApi* | [**update_user_group**](docs/UserGroupsBetaApi.md#update_user_group) | **PUT** /management/user_groups/{groupId} | Update user group -*UsersApi* | [**get_users**](docs/UsersApi.md#get_users) | **GET** /users | List users -*VaultsApi* | [**activate_asset_for_vault_account**](docs/VaultsApi.md#activate_asset_for_vault_account) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/activate | Activate a wallet in a vault account -*VaultsApi* | [**attach_or_detach_tags_from_vault_accounts**](docs/VaultsApi.md#attach_or_detach_tags_from_vault_accounts) | **POST** /vault/accounts/attached_tags | Attach or detach tags from vault accounts -*VaultsApi* | [**create_legacy_address**](docs/VaultsApi.md#create_legacy_address) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/create_legacy | Convert a segwit address to legacy format -*VaultsApi* | [**create_multiple_accounts**](docs/VaultsApi.md#create_multiple_accounts) | **POST** /vault/accounts/bulk | Bulk creation of new vault accounts -*VaultsApi* | [**create_multiple_deposit_addresses**](docs/VaultsApi.md#create_multiple_deposit_addresses) | **POST** /vault/accounts/addresses/bulk | Bulk creation of new deposit addresses -*VaultsApi* | [**create_vault_account**](docs/VaultsApi.md#create_vault_account) | **POST** /vault/accounts | Create a new vault account -*VaultsApi* | [**create_vault_account_asset**](docs/VaultsApi.md#create_vault_account_asset) | **POST** /vault/accounts/{vaultAccountId}/{assetId} | Create a new vault wallet -*VaultsApi* | [**create_vault_account_asset_address**](docs/VaultsApi.md#create_vault_account_asset_address) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses | Create new asset deposit address -*VaultsApi* | [**get_asset_wallets**](docs/VaultsApi.md#get_asset_wallets) | **GET** /vault/asset_wallets | Get vault wallets (Paginated) -*VaultsApi* | [**get_create_multiple_deposit_addresses_job_status**](docs/VaultsApi.md#get_create_multiple_deposit_addresses_job_status) | **GET** /vault/accounts/addresses/bulk/{jobId} | Get the job status of the bulk deposit address creation -*VaultsApi* | [**get_create_multiple_vault_accounts_job_status**](docs/VaultsApi.md#get_create_multiple_vault_accounts_job_status) | **GET** /vault/accounts/bulk/{jobId} | Get job status of bulk creation of new vault accounts -*VaultsApi* | [**get_max_bip_index_used**](docs/VaultsApi.md#get_max_bip_index_used) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/max_bip44_index_used | Get maximum BIP44 index used -*VaultsApi* | [**get_max_spendable_amount**](docs/VaultsApi.md#get_max_spendable_amount) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/max_spendable_amount | Get max spendable amount in a transaction -*VaultsApi* | [**get_paged_vault_accounts**](docs/VaultsApi.md#get_paged_vault_accounts) | **GET** /vault/accounts_paged | Get vault accounts (Paginated) -*VaultsApi* | [**get_public_key_info**](docs/VaultsApi.md#get_public_key_info) | **GET** /vault/public_key_info | Get the public key for a derivation path -*VaultsApi* | [**get_public_key_info_for_address**](docs/VaultsApi.md#get_public_key_info_for_address) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/{change}/{addressIndex}/public_key_info | Get an asset's public key -*VaultsApi* | [**get_unspent_inputs**](docs/VaultsApi.md#get_unspent_inputs) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/unspent_inputs | Get UTXO unspent inputs information -*VaultsApi* | [**get_vault_account**](docs/VaultsApi.md#get_vault_account) | **GET** /vault/accounts/{vaultAccountId} | Get a vault account by ID -*VaultsApi* | [**get_vault_account_asset**](docs/VaultsApi.md#get_vault_account_asset) | **GET** /vault/accounts/{vaultAccountId}/{assetId} | Get the asset balance for a vault account -*VaultsApi* | [**get_vault_account_asset_addresses_paginated**](docs/VaultsApi.md#get_vault_account_asset_addresses_paginated) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated | Get addresses (Paginated) -*VaultsApi* | [**get_vault_assets**](docs/VaultsApi.md#get_vault_assets) | **GET** /vault/assets | Get asset balance for chosen assets -*VaultsApi* | [**get_vault_balance_by_asset**](docs/VaultsApi.md#get_vault_balance_by_asset) | **GET** /vault/assets/{assetId} | Get vault balance by an asset -*VaultsApi* | [**hide_vault_account**](docs/VaultsApi.md#hide_vault_account) | **POST** /vault/accounts/{vaultAccountId}/hide | Hide a vault account in the console -*VaultsApi* | [**set_customer_ref_id_for_address**](docs/VaultsApi.md#set_customer_ref_id_for_address) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/set_customer_ref_id | Assign AML customer reference ID -*VaultsApi* | [**set_vault_account_auto_fuel**](docs/VaultsApi.md#set_vault_account_auto_fuel) | **POST** /vault/accounts/{vaultAccountId}/set_auto_fuel | Set auto fueling to on or off -*VaultsApi* | [**set_vault_account_customer_ref_id**](docs/VaultsApi.md#set_vault_account_customer_ref_id) | **POST** /vault/accounts/{vaultAccountId}/set_customer_ref_id | Set an AML/KYT ID for a vault account -*VaultsApi* | [**unhide_vault_account**](docs/VaultsApi.md#unhide_vault_account) | **POST** /vault/accounts/{vaultAccountId}/unhide | Unhide a vault account in the console -*VaultsApi* | [**update_vault_account**](docs/VaultsApi.md#update_vault_account) | **PUT** /vault/accounts/{vaultAccountId} | Rename a vault account -*VaultsApi* | [**update_vault_account_asset_address**](docs/VaultsApi.md#update_vault_account_asset_address) | **PUT** /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId} | Update address description -*VaultsApi* | [**update_vault_account_asset_balance**](docs/VaultsApi.md#update_vault_account_asset_balance) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/balance | Refresh asset balance data -*Web3ConnectionsApi* | [**create**](docs/Web3ConnectionsApi.md#create) | **POST** /connections/wc | Create a new Web3 connection. -*Web3ConnectionsApi* | [**get**](docs/Web3ConnectionsApi.md#get) | **GET** /connections | List all open Web3 connections. -*Web3ConnectionsApi* | [**remove**](docs/Web3ConnectionsApi.md#remove) | **DELETE** /connections/wc/{id} | Remove an existing Web3 connection. -*Web3ConnectionsApi* | [**submit**](docs/Web3ConnectionsApi.md#submit) | **PUT** /connections/wc/{id} | Respond to a pending Web3 connection request. -*WebhooksApi* | [**resend_transaction_webhooks**](docs/WebhooksApi.md#resend_transaction_webhooks) | **POST** /webhooks/resend/{txId} | Resend webhooks for a transaction by ID -*WebhooksApi* | [**resend_webhooks**](docs/WebhooksApi.md#resend_webhooks) | **POST** /webhooks/resend | Resend failed webhooks -*WebhooksV2Api* | [**create_webhook**](docs/WebhooksV2Api.md#create_webhook) | **POST** /webhooks | Create a new webhook -*WebhooksV2Api* | [**delete_webhook**](docs/WebhooksV2Api.md#delete_webhook) | **DELETE** /webhooks/{webhookId} | Delete webhook -*WebhooksV2Api* | [**get_metrics**](docs/WebhooksV2Api.md#get_metrics) | **GET** /webhooks/{webhookId}/metrics/{metricName} | Get webhook metrics -*WebhooksV2Api* | [**get_notification**](docs/WebhooksV2Api.md#get_notification) | **GET** /webhooks/{webhookId}/notifications/{notificationId} | Get notification by id -*WebhooksV2Api* | [**get_notification_attempts**](docs/WebhooksV2Api.md#get_notification_attempts) | **GET** /webhooks/{webhookId}/notifications/{notificationId}/attempts | Get notification attempts -*WebhooksV2Api* | [**get_notifications**](docs/WebhooksV2Api.md#get_notifications) | **GET** /webhooks/{webhookId}/notifications | Get all notifications by webhook id -*WebhooksV2Api* | [**get_resend_job_status**](docs/WebhooksV2Api.md#get_resend_job_status) | **GET** /webhooks/{webhookId}/notifications/resend_failed/jobs/{jobId} | Get resend job status -*WebhooksV2Api* | [**get_webhook**](docs/WebhooksV2Api.md#get_webhook) | **GET** /webhooks/{webhookId} | Get webhook by id -*WebhooksV2Api* | [**get_webhooks**](docs/WebhooksV2Api.md#get_webhooks) | **GET** /webhooks | Get all webhooks -*WebhooksV2Api* | [**resend_failed_notifications**](docs/WebhooksV2Api.md#resend_failed_notifications) | **POST** /webhooks/{webhookId}/notifications/resend_failed | Resend failed notifications -*WebhooksV2Api* | [**resend_notification_by_id**](docs/WebhooksV2Api.md#resend_notification_by_id) | **POST** /webhooks/{webhookId}/notifications/{notificationId}/resend | Resend notification by id -*WebhooksV2Api* | [**resend_notifications_by_resource_id**](docs/WebhooksV2Api.md#resend_notifications_by_resource_id) | **POST** /webhooks/{webhookId}/notifications/resend_by_resource | Resend notifications by resource Id -*WebhooksV2Api* | [**update_webhook**](docs/WebhooksV2Api.md#update_webhook) | **PATCH** /webhooks/{webhookId} | Update webhook -*WorkspaceApi* | [**get_workspace**](docs/WorkspaceApi.md#get_workspace) | **GET** /workspace | Get workspace -*WorkspaceStatusBetaApi* | [**get_workspace_status**](docs/WorkspaceStatusBetaApi.md#get_workspace_status) | **GET** /management/workspace_status | Returns current workspace status -*WhitelistIpAddressesApi* | [**get_whitelist_ip_addresses**](docs/WhitelistIpAddressesApi.md#get_whitelist_ip_addresses) | **GET** /management/api_users/{userId}/whitelist_ip_addresses | Get whitelisted ip addresses for an API Key - - -## Documentation For Models - - - [APIUser](docs/APIUser.md) - - [AbaPaymentInfo](docs/AbaPaymentInfo.md) - - [AbiFunction](docs/AbiFunction.md) - - [AccessRegistryAddressItem](docs/AccessRegistryAddressItem.md) - - [AccessRegistryCurrentStateResponse](docs/AccessRegistryCurrentStateResponse.md) - - [AccessRegistrySummaryResponse](docs/AccessRegistrySummaryResponse.md) - - [AccessType](docs/AccessType.md) - - [Account](docs/Account.md) - - [AccountAccess](docs/AccountAccess.md) - - [AccountBase](docs/AccountBase.md) - - [AccountBasedAccessProvider](docs/AccountBasedAccessProvider.md) - - [AccountBasedAccessProviderDetails](docs/AccountBasedAccessProviderDetails.md) - - [AccountConfig](docs/AccountConfig.md) - - [AccountHolderDetails](docs/AccountHolderDetails.md) - - [AccountIdentifier](docs/AccountIdentifier.md) - - [AccountReference](docs/AccountReference.md) - - [AccountType](docs/AccountType.md) - - [AccountType2](docs/AccountType2.md) - - [AchAccountType](docs/AchAccountType.md) - - [AchAddress](docs/AchAddress.md) - - [AchDestination](docs/AchDestination.md) - - [AchPaymentInfo](docs/AchPaymentInfo.md) - - [AdapterProcessingResult](docs/AdapterProcessingResult.md) - - [AddAbiRequestDto](docs/AddAbiRequestDto.md) - - [AddAssetToExternalWalletRequest](docs/AddAssetToExternalWalletRequest.md) - - [AddCollateralRequestBody](docs/AddCollateralRequestBody.md) - - [AddContractAssetRequest](docs/AddContractAssetRequest.md) - - [AddCosignerRequest](docs/AddCosignerRequest.md) - - [AddCosignerResponse](docs/AddCosignerResponse.md) - - [AddExchangeAccountRequest](docs/AddExchangeAccountRequest.md) - - [AddExchangeAccountResponse](docs/AddExchangeAccountResponse.md) - - [AdditionalInfo](docs/AdditionalInfo.md) - - [AdditionalInfoRequest](docs/AdditionalInfoRequest.md) - - [AdditionalInfoRequestAdditionalInfo](docs/AdditionalInfoRequestAdditionalInfo.md) - - [AddressBalanceItemDto](docs/AddressBalanceItemDto.md) - - [AddressBalancePagedResponse](docs/AddressBalancePagedResponse.md) - - [AddressNotAvailableError](docs/AddressNotAvailableError.md) - - [AddressRegistryError](docs/AddressRegistryError.md) - - [AddressRegistryLegalEntity](docs/AddressRegistryLegalEntity.md) - - [AlertExposureTypeEnum](docs/AlertExposureTypeEnum.md) - - [AlertLevelEnum](docs/AlertLevelEnum.md) - - [AmlAlert](docs/AmlAlert.md) - - [AmlMatchedRule](docs/AmlMatchedRule.md) - - [AmlRegistrationResult](docs/AmlRegistrationResult.md) - - [AmlRegistrationResultFullPayload](docs/AmlRegistrationResultFullPayload.md) - - [AmlResult](docs/AmlResult.md) - - [AmlScreeningResult](docs/AmlScreeningResult.md) - - [AmlStatusEnum](docs/AmlStatusEnum.md) - - [AmlVerdictManualRequest](docs/AmlVerdictManualRequest.md) - - [AmlVerdictManualResponse](docs/AmlVerdictManualResponse.md) - - [AmountAndChainDescriptor](docs/AmountAndChainDescriptor.md) - - [AmountConfig](docs/AmountConfig.md) - - [AmountConfigCurrency](docs/AmountConfigCurrency.md) - - [AmountInfo](docs/AmountInfo.md) - - [AmountOverTimeConfig](docs/AmountOverTimeConfig.md) - - [AmountRange](docs/AmountRange.md) - - [AmountRangeMinMax](docs/AmountRangeMinMax.md) - - [AmountRangeMinMax2](docs/AmountRangeMinMax2.md) - - [ApiKey](docs/ApiKey.md) - - [ApiKeysPaginatedResponse](docs/ApiKeysPaginatedResponse.md) - - [ApprovalRequest](docs/ApprovalRequest.md) - - [ApproversConfig](docs/ApproversConfig.md) - - [ApproversConfigApprovalGroupsInner](docs/ApproversConfigApprovalGroupsInner.md) - - [Asset](docs/Asset.md) - - [AssetAlreadyExistHttpError](docs/AssetAlreadyExistHttpError.md) - - [AssetAmount](docs/AssetAmount.md) - - [AssetBadRequestErrorResponse](docs/AssetBadRequestErrorResponse.md) - - [AssetClass](docs/AssetClass.md) - - [AssetConfig](docs/AssetConfig.md) - - [AssetConflictErrorResponse](docs/AssetConflictErrorResponse.md) - - [AssetDetailsMetadata](docs/AssetDetailsMetadata.md) - - [AssetDetailsOnchain](docs/AssetDetailsOnchain.md) - - [AssetFeature](docs/AssetFeature.md) - - [AssetForbiddenErrorResponse](docs/AssetForbiddenErrorResponse.md) - - [AssetInternalServerErrorResponse](docs/AssetInternalServerErrorResponse.md) - - [AssetMedia](docs/AssetMedia.md) - - [AssetMediaAttributes](docs/AssetMediaAttributes.md) - - [AssetMetadata](docs/AssetMetadata.md) - - [AssetMetadataDto](docs/AssetMetadataDto.md) - - [AssetMetadataRequest](docs/AssetMetadataRequest.md) - - [AssetNotFoundErrorResponse](docs/AssetNotFoundErrorResponse.md) - - [AssetNote](docs/AssetNote.md) - - [AssetNoteRequest](docs/AssetNoteRequest.md) - - [AssetOnchain](docs/AssetOnchain.md) - - [AssetPriceForbiddenErrorResponse](docs/AssetPriceForbiddenErrorResponse.md) - - [AssetPriceNotFoundErrorResponse](docs/AssetPriceNotFoundErrorResponse.md) - - [AssetPriceResponse](docs/AssetPriceResponse.md) - - [AssetResponse](docs/AssetResponse.md) - - [AssetScope](docs/AssetScope.md) - - [AssetTypeEnum](docs/AssetTypeEnum.md) - - [AssetTypeResponse](docs/AssetTypeResponse.md) - - [AssetTypesConfigInner](docs/AssetTypesConfigInner.md) - - [AssetWallet](docs/AssetWallet.md) - - [AuditLogData](docs/AuditLogData.md) - - [AuditorData](docs/AuditorData.md) - - [AuthorizationGroups](docs/AuthorizationGroups.md) - - [AuthorizationInfo](docs/AuthorizationInfo.md) - - [BalanceHistoryItemDto](docs/BalanceHistoryItemDto.md) - - [BalanceHistoryPagedResponse](docs/BalanceHistoryPagedResponse.md) - - [BankAddress](docs/BankAddress.md) - - [BaseProvider](docs/BaseProvider.md) - - [BasicAddressRequest](docs/BasicAddressRequest.md) - - [BlockInfo](docs/BlockInfo.md) - - [BlockchainAddress](docs/BlockchainAddress.md) - - [BlockchainDestination](docs/BlockchainDestination.md) - - [BlockchainExplorer](docs/BlockchainExplorer.md) - - [BlockchainMedia](docs/BlockchainMedia.md) - - [BlockchainMetadata](docs/BlockchainMetadata.md) - - [BlockchainNotFoundErrorResponse](docs/BlockchainNotFoundErrorResponse.md) - - [BlockchainOnchain](docs/BlockchainOnchain.md) - - [BlockchainResponse](docs/BlockchainResponse.md) - - [BlockchainTransfer](docs/BlockchainTransfer.md) - - [BpsFee](docs/BpsFee.md) - - [BusinessEntityTypeEnum](docs/BusinessEntityTypeEnum.md) - - [BusinessIdentification](docs/BusinessIdentification.md) - - [CallbackHandler](docs/CallbackHandler.md) - - [CallbackHandlerRequest](docs/CallbackHandlerRequest.md) - - [CancelTransactionResponse](docs/CancelTransactionResponse.md) - - [Capability](docs/Capability.md) - - [ChainDescriptor](docs/ChainDescriptor.md) - - [ChainInfoResponse](docs/ChainInfoResponse.md) - - [ChannelDvnConfigWithConfirmations](docs/ChannelDvnConfigWithConfirmations.md) - - [ChannelDvnConfigWithConfirmationsReceiveConfig](docs/ChannelDvnConfigWithConfirmationsReceiveConfig.md) - - [ChannelDvnConfigWithConfirmationsSendConfig](docs/ChannelDvnConfigWithConfirmationsSendConfig.md) - - [ChapsAddress](docs/ChapsAddress.md) - - [ChapsDestination](docs/ChapsDestination.md) - - [ChapsPaymentInfo](docs/ChapsPaymentInfo.md) - - [ClaimRewardsRequest](docs/ClaimRewardsRequest.md) - - [CollectionBurnRequestDto](docs/CollectionBurnRequestDto.md) - - [CollectionBurnResponseDto](docs/CollectionBurnResponseDto.md) - - [CollectionDeployRequestDto](docs/CollectionDeployRequestDto.md) - - [CollectionLinkDto](docs/CollectionLinkDto.md) - - [CollectionMetadataDto](docs/CollectionMetadataDto.md) - - [CollectionMintRequestDto](docs/CollectionMintRequestDto.md) - - [CollectionMintResponseDto](docs/CollectionMintResponseDto.md) - - [CollectionOwnershipResponse](docs/CollectionOwnershipResponse.md) - - [CollectionTokenMetadataAttributeDto](docs/CollectionTokenMetadataAttributeDto.md) - - [CollectionTokenMetadataDto](docs/CollectionTokenMetadataDto.md) - - [CollectionType](docs/CollectionType.md) - - [CommittedQuoteEnum](docs/CommittedQuoteEnum.md) - - [CommittedQuoteType](docs/CommittedQuoteType.md) - - [ComplianceResultFullPayload](docs/ComplianceResultFullPayload.md) - - [ComplianceResultStatusesEnum](docs/ComplianceResultStatusesEnum.md) - - [ComplianceResults](docs/ComplianceResults.md) - - [ComplianceScreeningResult](docs/ComplianceScreeningResult.md) - - [ComplianceScreeningResultFullPayload](docs/ComplianceScreeningResultFullPayload.md) - - [ConfigChangeRequestStatus](docs/ConfigChangeRequestStatus.md) - - [ConfigConversionOperationSnapshot](docs/ConfigConversionOperationSnapshot.md) - - [ConfigDisbursementOperationSnapshot](docs/ConfigDisbursementOperationSnapshot.md) - - [ConfigOperation](docs/ConfigOperation.md) - - [ConfigOperationSnapshot](docs/ConfigOperationSnapshot.md) - - [ConfigOperationStatus](docs/ConfigOperationStatus.md) - - [ConfigTransferOperationSnapshot](docs/ConfigTransferOperationSnapshot.md) - - [ConnectedAccount](docs/ConnectedAccount.md) - - [ConnectedAccountApprovalStatus](docs/ConnectedAccountApprovalStatus.md) - - [ConnectedAccountAssetType](docs/ConnectedAccountAssetType.md) - - [ConnectedAccountBalances](docs/ConnectedAccountBalances.md) - - [ConnectedAccountBalancesResponse](docs/ConnectedAccountBalancesResponse.md) - - [ConnectedAccountCapability](docs/ConnectedAccountCapability.md) - - [ConnectedAccountErrorResponse](docs/ConnectedAccountErrorResponse.md) - - [ConnectedAccountManifest](docs/ConnectedAccountManifest.md) - - [ConnectedAccountRateResponse](docs/ConnectedAccountRateResponse.md) - - [ConnectedAccountTotalBalance](docs/ConnectedAccountTotalBalance.md) - - [ConnectedAccountTradingPair](docs/ConnectedAccountTradingPair.md) - - [ConnectedAccountTradingPairSupportedType](docs/ConnectedAccountTradingPairSupportedType.md) - - [ConnectedAccountTradingPairsResponse](docs/ConnectedAccountTradingPairsResponse.md) - - [ConnectedAccountsResponse](docs/ConnectedAccountsResponse.md) - - [ConnectedSingleAccount](docs/ConnectedSingleAccount.md) - - [ConnectedSingleAccountResponse](docs/ConnectedSingleAccountResponse.md) - - [ConsoleUser](docs/ConsoleUser.md) - - [ContractAbiResponseDto](docs/ContractAbiResponseDto.md) - - [ContractAbiResponseDtoAbiInner](docs/ContractAbiResponseDtoAbiInner.md) - - [ContractAddressResponse](docs/ContractAddressResponse.md) - - [ContractAttributes](docs/ContractAttributes.md) - - [ContractDataDecodeDataType](docs/ContractDataDecodeDataType.md) - - [ContractDataDecodeError](docs/ContractDataDecodeError.md) - - [ContractDataDecodeRequest](docs/ContractDataDecodeRequest.md) - - [ContractDataDecodeRequestData](docs/ContractDataDecodeRequestData.md) - - [ContractDataDecodeResponseParams](docs/ContractDataDecodeResponseParams.md) - - [ContractDataDecodedResponse](docs/ContractDataDecodedResponse.md) - - [ContractDataLogDataParam](docs/ContractDataLogDataParam.md) - - [ContractDeployRequest](docs/ContractDeployRequest.md) - - [ContractDeployResponse](docs/ContractDeployResponse.md) - - [ContractDoc](docs/ContractDoc.md) - - [ContractMetadataDto](docs/ContractMetadataDto.md) - - [ContractMethodConfig](docs/ContractMethodConfig.md) - - [ContractMethodPattern](docs/ContractMethodPattern.md) - - [ContractTemplateDto](docs/ContractTemplateDto.md) - - [ContractUploadRequest](docs/ContractUploadRequest.md) - - [ContractWithAbiDto](docs/ContractWithAbiDto.md) - - [ConversionConfigOperation](docs/ConversionConfigOperation.md) - - [ConversionOperationConfigParams](docs/ConversionOperationConfigParams.md) - - [ConversionOperationExecution](docs/ConversionOperationExecution.md) - - [ConversionOperationExecutionOutput](docs/ConversionOperationExecutionOutput.md) - - [ConversionOperationExecutionParams](docs/ConversionOperationExecutionParams.md) - - [ConversionOperationExecutionParamsExecutionParams](docs/ConversionOperationExecutionParamsExecutionParams.md) - - [ConversionOperationFailure](docs/ConversionOperationFailure.md) - - [ConversionOperationPreview](docs/ConversionOperationPreview.md) - - [ConversionOperationPreviewOutput](docs/ConversionOperationPreviewOutput.md) - - [ConversionOperationType](docs/ConversionOperationType.md) - - [ConversionValidationFailure](docs/ConversionValidationFailure.md) - - [ConvertAssetsRequest](docs/ConvertAssetsRequest.md) - - [ConvertAssetsResponse](docs/ConvertAssetsResponse.md) - - [Cosigner](docs/Cosigner.md) - - [CosignersPaginatedResponse](docs/CosignersPaginatedResponse.md) - - [CreateAPIUser](docs/CreateAPIUser.md) - - [CreateAddressRequest](docs/CreateAddressRequest.md) - - [CreateAddressResponse](docs/CreateAddressResponse.md) - - [CreateAssetsRequest](docs/CreateAssetsRequest.md) - - [CreateConfigOperationRequest](docs/CreateConfigOperationRequest.md) - - [CreateConnectionRequest](docs/CreateConnectionRequest.md) - - [CreateConnectionResponse](docs/CreateConnectionResponse.md) - - [CreateConsoleUser](docs/CreateConsoleUser.md) - - [CreateContractRequest](docs/CreateContractRequest.md) - - [CreateConversionConfigOperationRequest](docs/CreateConversionConfigOperationRequest.md) - - [CreateDisbursementConfigOperationRequest](docs/CreateDisbursementConfigOperationRequest.md) - - [CreateInternalTransferRequest](docs/CreateInternalTransferRequest.md) - - [CreateInternalWalletAssetRequest](docs/CreateInternalWalletAssetRequest.md) - - [CreateMultichainTokenRequest](docs/CreateMultichainTokenRequest.md) - - [CreateMultichainTokenRequestCreateParams](docs/CreateMultichainTokenRequestCreateParams.md) - - [CreateMultipleAccountsRequest](docs/CreateMultipleAccountsRequest.md) - - [CreateMultipleDepositAddressesJobStatus](docs/CreateMultipleDepositAddressesJobStatus.md) - - [CreateMultipleDepositAddressesRequest](docs/CreateMultipleDepositAddressesRequest.md) - - [CreateMultipleVaultAccountsJobStatus](docs/CreateMultipleVaultAccountsJobStatus.md) - - [CreateNcwConnectionRequest](docs/CreateNcwConnectionRequest.md) - - [CreateNetworkIdRequest](docs/CreateNetworkIdRequest.md) - - [CreateOrderRequest](docs/CreateOrderRequest.md) - - [CreatePayoutRequest](docs/CreatePayoutRequest.md) - - [CreateQuote](docs/CreateQuote.md) - - [CreateQuoteScopeInner](docs/CreateQuoteScopeInner.md) - - [CreateSigningKeyDto](docs/CreateSigningKeyDto.md) - - [CreateSigningKeyDtoProofOfOwnership](docs/CreateSigningKeyDtoProofOfOwnership.md) - - [CreateTagRequest](docs/CreateTagRequest.md) - - [CreateTokenRequestDto](docs/CreateTokenRequestDto.md) - - [CreateTokenRequestDtoCreateParams](docs/CreateTokenRequestDtoCreateParams.md) - - [CreateTransactionResponse](docs/CreateTransactionResponse.md) - - [CreateTransferConfigOperationRequest](docs/CreateTransferConfigOperationRequest.md) - - [CreateUserGroupResponse](docs/CreateUserGroupResponse.md) - - [CreateValidationKeyDto](docs/CreateValidationKeyDto.md) - - [CreateValidationKeyResponseDto](docs/CreateValidationKeyResponseDto.md) - - [CreateVaultAccountConnectionRequest](docs/CreateVaultAccountConnectionRequest.md) - - [CreateVaultAccountRequest](docs/CreateVaultAccountRequest.md) - - [CreateVaultAssetResponse](docs/CreateVaultAssetResponse.md) - - [CreateWalletRequest](docs/CreateWalletRequest.md) - - [CreateWebhookRequest](docs/CreateWebhookRequest.md) - - [CreateWorkflowExecutionRequestParamsInner](docs/CreateWorkflowExecutionRequestParamsInner.md) - - [CustomRoutingDest](docs/CustomRoutingDest.md) - - [DAppAddressConfig](docs/DAppAddressConfig.md) - - [DVPSettlement](docs/DVPSettlement.md) - - [DVPSettlementType](docs/DVPSettlementType.md) - - [DecodedLog](docs/DecodedLog.md) - - [DefaultNetworkRoutingDest](docs/DefaultNetworkRoutingDest.md) - - [Delegation](docs/Delegation.md) - - [DelegationBlockchainPositionInfo](docs/DelegationBlockchainPositionInfo.md) - - [DelegationSummary](docs/DelegationSummary.md) - - [DeleteNetworkConnectionResponse](docs/DeleteNetworkConnectionResponse.md) - - [DeleteNetworkIdResponse](docs/DeleteNetworkIdResponse.md) - - [DeployLayerZeroAdaptersRequest](docs/DeployLayerZeroAdaptersRequest.md) - - [DeployableAddressResponse](docs/DeployableAddressResponse.md) - - [DeployedContractNotFoundError](docs/DeployedContractNotFoundError.md) - - [DeployedContractResponseDto](docs/DeployedContractResponseDto.md) - - [DeployedContractsPaginatedResponse](docs/DeployedContractsPaginatedResponse.md) - - [DepositFundsFromLinkedDDAResponse](docs/DepositFundsFromLinkedDDAResponse.md) - - [DerivationPathConfig](docs/DerivationPathConfig.md) - - [DesignatedSignersConfig](docs/DesignatedSignersConfig.md) - - [Destination](docs/Destination.md) - - [DestinationConfig](docs/DestinationConfig.md) - - [DestinationTransferPeerPath](docs/DestinationTransferPeerPath.md) - - [DestinationTransferPeerPathResponse](docs/DestinationTransferPeerPathResponse.md) - - [DirectAccess](docs/DirectAccess.md) - - [DirectAccessProvider](docs/DirectAccessProvider.md) - - [DirectAccessProviderDetails](docs/DirectAccessProviderDetails.md) - - [DisbursementAmountInstruction](docs/DisbursementAmountInstruction.md) - - [DisbursementConfigOperation](docs/DisbursementConfigOperation.md) - - [DisbursementInstruction](docs/DisbursementInstruction.md) - - [DisbursementInstructionOutput](docs/DisbursementInstructionOutput.md) - - [DisbursementOperationConfigParams](docs/DisbursementOperationConfigParams.md) - - [DisbursementOperationExecution](docs/DisbursementOperationExecution.md) - - [DisbursementOperationExecutionOutput](docs/DisbursementOperationExecutionOutput.md) - - [DisbursementOperationExecutionParams](docs/DisbursementOperationExecutionParams.md) - - [DisbursementOperationExecutionParamsExecutionParams](docs/DisbursementOperationExecutionParamsExecutionParams.md) - - [DisbursementOperationInput](docs/DisbursementOperationInput.md) - - [DisbursementOperationPreview](docs/DisbursementOperationPreview.md) - - [DisbursementOperationPreviewOutput](docs/DisbursementOperationPreviewOutput.md) - - [DisbursementOperationPreviewOutputInstructionSetInner](docs/DisbursementOperationPreviewOutputInstructionSetInner.md) - - [DisbursementOperationType](docs/DisbursementOperationType.md) - - [DisbursementPercentageInstruction](docs/DisbursementPercentageInstruction.md) - - [DisbursementValidationFailure](docs/DisbursementValidationFailure.md) - - [DispatchPayoutResponse](docs/DispatchPayoutResponse.md) - - [DraftResponse](docs/DraftResponse.md) - - [DraftReviewAndValidationResponse](docs/DraftReviewAndValidationResponse.md) - - [DropTransactionRequest](docs/DropTransactionRequest.md) - - [DropTransactionResponse](docs/DropTransactionResponse.md) - - [DvnConfig](docs/DvnConfig.md) - - [DvnConfigWithConfirmations](docs/DvnConfigWithConfirmations.md) - - [EVMTokenCreateParamsDto](docs/EVMTokenCreateParamsDto.md) - - [EditGasStationConfigurationResponse](docs/EditGasStationConfigurationResponse.md) - - [EmbeddedWallet](docs/EmbeddedWallet.md) - - [EmbeddedWalletAccount](docs/EmbeddedWalletAccount.md) - - [EmbeddedWalletAddressDetails](docs/EmbeddedWalletAddressDetails.md) - - [EmbeddedWalletAlgoritm](docs/EmbeddedWalletAlgoritm.md) - - [EmbeddedWalletAssetBalance](docs/EmbeddedWalletAssetBalance.md) - - [EmbeddedWalletAssetResponse](docs/EmbeddedWalletAssetResponse.md) - - [EmbeddedWalletAssetRewardInfo](docs/EmbeddedWalletAssetRewardInfo.md) - - [EmbeddedWalletDevice](docs/EmbeddedWalletDevice.md) - - [EmbeddedWalletDeviceKeySetupResponse](docs/EmbeddedWalletDeviceKeySetupResponse.md) - - [EmbeddedWalletDeviceKeySetupResponseSetupStatusInner](docs/EmbeddedWalletDeviceKeySetupResponseSetupStatusInner.md) - - [EmbeddedWalletLatestBackupKey](docs/EmbeddedWalletLatestBackupKey.md) - - [EmbeddedWalletLatestBackupResponse](docs/EmbeddedWalletLatestBackupResponse.md) - - [EmbeddedWalletPaginatedAddressesResponse](docs/EmbeddedWalletPaginatedAddressesResponse.md) - - [EmbeddedWalletPaginatedAssetsResponse](docs/EmbeddedWalletPaginatedAssetsResponse.md) - - [EmbeddedWalletPaginatedDevicesResponse](docs/EmbeddedWalletPaginatedDevicesResponse.md) - - [EmbeddedWalletPaginatedWalletsResponse](docs/EmbeddedWalletPaginatedWalletsResponse.md) - - [EmbeddedWalletRequiredAlgorithms](docs/EmbeddedWalletRequiredAlgorithms.md) - - [EmbeddedWalletSetUpStatus](docs/EmbeddedWalletSetUpStatus.md) - - [EmbeddedWalletSetupStatusResponse](docs/EmbeddedWalletSetupStatusResponse.md) - - [EnableDevice](docs/EnableDevice.md) - - [EnableWallet](docs/EnableWallet.md) - - [ErrorResponse](docs/ErrorResponse.md) - - [ErrorResponseError](docs/ErrorResponseError.md) - - [ErrorSchema](docs/ErrorSchema.md) - - [EstimatedFeeDetails](docs/EstimatedFeeDetails.md) - - [EstimatedNetworkFeeResponse](docs/EstimatedNetworkFeeResponse.md) - - [EstimatedTransactionFeeResponse](docs/EstimatedTransactionFeeResponse.md) - - [EthereumBlockchainData](docs/EthereumBlockchainData.md) - - [EuropeanSEPAAddress](docs/EuropeanSEPAAddress.md) - - [EuropeanSEPADestination](docs/EuropeanSEPADestination.md) - - [ExchangeAccount](docs/ExchangeAccount.md) - - [ExchangeAsset](docs/ExchangeAsset.md) - - [ExchangeSettlementTransactionsResponse](docs/ExchangeSettlementTransactionsResponse.md) - - [ExchangeTradingAccount](docs/ExchangeTradingAccount.md) - - [ExchangeType](docs/ExchangeType.md) - - [ExecutionConversionOperation](docs/ExecutionConversionOperation.md) - - [ExecutionDisbursementOperation](docs/ExecutionDisbursementOperation.md) - - [ExecutionOperationStatus](docs/ExecutionOperationStatus.md) - - [ExecutionRequestBaseDetails](docs/ExecutionRequestBaseDetails.md) - - [ExecutionRequestDetails](docs/ExecutionRequestDetails.md) - - [ExecutionResponseBaseDetails](docs/ExecutionResponseBaseDetails.md) - - [ExecutionResponseDetails](docs/ExecutionResponseDetails.md) - - [ExecutionScreeningOperation](docs/ExecutionScreeningOperation.md) - - [ExecutionStepError](docs/ExecutionStepError.md) - - [ExecutionStepStatusEnum](docs/ExecutionStepStatusEnum.md) - - [ExecutionStepType](docs/ExecutionStepType.md) - - [ExecutionTransferOperation](docs/ExecutionTransferOperation.md) - - [ExternalAccount](docs/ExternalAccount.md) - - [ExternalAccountLocalBankAfrica](docs/ExternalAccountLocalBankAfrica.md) - - [ExternalAccountMobileMoney](docs/ExternalAccountMobileMoney.md) - - [ExternalAccountMobileMoneyProvider](docs/ExternalAccountMobileMoneyProvider.md) - - [ExternalAccountMobileMoneyType](docs/ExternalAccountMobileMoneyType.md) - - [ExternalAccountSenderInformation](docs/ExternalAccountSenderInformation.md) - - [ExternalAccountType](docs/ExternalAccountType.md) - - [ExternalWalletAsset](docs/ExternalWalletAsset.md) - - [ExtraParameters](docs/ExtraParameters.md) - - [Failure](docs/Failure.md) - - [FailureReason](docs/FailureReason.md) - - [Fee](docs/Fee.md) - - [FeeBreakdown](docs/FeeBreakdown.md) - - [FeeInfo](docs/FeeInfo.md) - - [FeeLevel](docs/FeeLevel.md) - - [FeePayerInfo](docs/FeePayerInfo.md) - - [FeePropertiesDetails](docs/FeePropertiesDetails.md) - - [FeeTypeEnum](docs/FeeTypeEnum.md) - - [FetchAbiRequestDto](docs/FetchAbiRequestDto.md) - - [FiatAccount](docs/FiatAccount.md) - - [FiatAccountType](docs/FiatAccountType.md) - - [FiatAsset](docs/FiatAsset.md) - - [FiatDestination](docs/FiatDestination.md) - - [FiatPaymentMetadata](docs/FiatPaymentMetadata.md) - - [FiatTransfer](docs/FiatTransfer.md) - - [FixedAmountTypeEnum](docs/FixedAmountTypeEnum.md) - - [FixedFee](docs/FixedFee.md) - - [FreezeTransactionResponse](docs/FreezeTransactionResponse.md) - - [FunctionDoc](docs/FunctionDoc.md) - - [Funds](docs/Funds.md) - - [GasStationConfiguration](docs/GasStationConfiguration.md) - - [GasStationConfigurationResponse](docs/GasStationConfigurationResponse.md) - - [GasStationPropertiesResponse](docs/GasStationPropertiesResponse.md) - - [GasslessStandardConfigurations](docs/GasslessStandardConfigurations.md) - - [GasslessStandardConfigurationsGaslessStandardConfigurationsValue](docs/GasslessStandardConfigurationsGaslessStandardConfigurationsValue.md) - - [GetAPIUsersResponse](docs/GetAPIUsersResponse.md) - - [GetAuditLogsResponse](docs/GetAuditLogsResponse.md) - - [GetConnectionsResponse](docs/GetConnectionsResponse.md) - - [GetConsoleUsersResponse](docs/GetConsoleUsersResponse.md) - - [GetDeployableAddressRequest](docs/GetDeployableAddressRequest.md) - - [GetExchangeAccountsCredentialsPublicKeyResponse](docs/GetExchangeAccountsCredentialsPublicKeyResponse.md) - - [GetFilterParameter](docs/GetFilterParameter.md) - - [GetLayerZeroDvnConfigResponse](docs/GetLayerZeroDvnConfigResponse.md) - - [GetLayerZeroPeersResponse](docs/GetLayerZeroPeersResponse.md) - - [GetLinkedCollectionsPaginatedResponse](docs/GetLinkedCollectionsPaginatedResponse.md) - - [GetMaxBipIndexUsedResponse](docs/GetMaxBipIndexUsedResponse.md) - - [GetMaxSpendableAmountResponse](docs/GetMaxSpendableAmountResponse.md) - - [GetMpcKeysResponse](docs/GetMpcKeysResponse.md) - - [GetNFTsResponse](docs/GetNFTsResponse.md) - - [GetOrdersResponse](docs/GetOrdersResponse.md) - - [GetOtaStatusResponse](docs/GetOtaStatusResponse.md) - - [GetOwnershipTokensResponse](docs/GetOwnershipTokensResponse.md) - - [GetPagedExchangeAccountsResponse](docs/GetPagedExchangeAccountsResponse.md) - - [GetPagedExchangeAccountsResponsePaging](docs/GetPagedExchangeAccountsResponsePaging.md) - - [GetSigningKeyResponseDto](docs/GetSigningKeyResponseDto.md) - - [GetTransactionOperation](docs/GetTransactionOperation.md) - - [GetValidationKeyResponseDto](docs/GetValidationKeyResponseDto.md) - - [GetWhitelistIpAddressesResponse](docs/GetWhitelistIpAddressesResponse.md) - - [GetWorkspaceStatusResponse](docs/GetWorkspaceStatusResponse.md) - - [HttpContractDoesNotExistError](docs/HttpContractDoesNotExistError.md) - - [IbanAddress](docs/IbanAddress.md) - - [IbanDestination](docs/IbanDestination.md) - - [IbanPaymentInfo](docs/IbanPaymentInfo.md) - - [Identification](docs/Identification.md) - - [IdlType](docs/IdlType.md) - - [IndicativeQuoteEnum](docs/IndicativeQuoteEnum.md) - - [IndicativeQuoteType](docs/IndicativeQuoteType.md) - - [InitiatorConfig](docs/InitiatorConfig.md) - - [InitiatorConfigPattern](docs/InitiatorConfigPattern.md) - - [InstructionAmount](docs/InstructionAmount.md) - - [InteracAddress](docs/InteracAddress.md) - - [InteracDestination](docs/InteracDestination.md) - - [InteracPaymentInfo](docs/InteracPaymentInfo.md) - - [InternalReference](docs/InternalReference.md) - - [InternalTransferAddress](docs/InternalTransferAddress.md) - - [InternalTransferDestination](docs/InternalTransferDestination.md) - - [InternalTransferResponse](docs/InternalTransferResponse.md) - - [InvalidParamaterValueError](docs/InvalidParamaterValueError.md) - - [JobCreated](docs/JobCreated.md) - - [LayerZeroAdapterCreateParams](docs/LayerZeroAdapterCreateParams.md) - - [LbtPaymentInfo](docs/LbtPaymentInfo.md) - - [LeanAbiFunction](docs/LeanAbiFunction.md) - - [LeanContractDto](docs/LeanContractDto.md) - - [LeanDeployedContractResponseDto](docs/LeanDeployedContractResponseDto.md) - - [LegacyAmountAggregationTimePeriodMethod](docs/LegacyAmountAggregationTimePeriodMethod.md) - - [LegacyDraftResponse](docs/LegacyDraftResponse.md) - - [LegacyDraftReviewAndValidationResponse](docs/LegacyDraftReviewAndValidationResponse.md) - - [LegacyPolicyAndValidationResponse](docs/LegacyPolicyAndValidationResponse.md) - - [LegacyPolicyCheckResult](docs/LegacyPolicyCheckResult.md) - - [LegacyPolicyMetadata](docs/LegacyPolicyMetadata.md) - - [LegacyPolicyResponse](docs/LegacyPolicyResponse.md) - - [LegacyPolicyRule](docs/LegacyPolicyRule.md) - - [LegacyPolicyRuleAmount](docs/LegacyPolicyRuleAmount.md) - - [LegacyPolicyRuleAmountAggregation](docs/LegacyPolicyRuleAmountAggregation.md) - - [LegacyPolicyRuleAuthorizationGroups](docs/LegacyPolicyRuleAuthorizationGroups.md) - - [LegacyPolicyRuleAuthorizationGroupsGroupsInner](docs/LegacyPolicyRuleAuthorizationGroupsGroupsInner.md) - - [LegacyPolicyRuleCheckResult](docs/LegacyPolicyRuleCheckResult.md) - - [LegacyPolicyRuleDesignatedSigners](docs/LegacyPolicyRuleDesignatedSigners.md) - - [LegacyPolicyRuleDst](docs/LegacyPolicyRuleDst.md) - - [LegacyPolicyRuleError](docs/LegacyPolicyRuleError.md) - - [LegacyPolicyRuleOperators](docs/LegacyPolicyRuleOperators.md) - - [LegacyPolicyRuleRawMessageSigning](docs/LegacyPolicyRuleRawMessageSigning.md) - - [LegacyPolicyRuleRawMessageSigningDerivationPath](docs/LegacyPolicyRuleRawMessageSigningDerivationPath.md) - - [LegacyPolicyRuleSrc](docs/LegacyPolicyRuleSrc.md) - - [LegacyPolicyRules](docs/LegacyPolicyRules.md) - - [LegacyPolicySrcOrDestSubType](docs/LegacyPolicySrcOrDestSubType.md) - - [LegacyPolicySrcOrDestType](docs/LegacyPolicySrcOrDestType.md) - - [LegacyPolicyStatus](docs/LegacyPolicyStatus.md) - - [LegacyPolicyValidation](docs/LegacyPolicyValidation.md) - - [LegacyPublishDraftRequest](docs/LegacyPublishDraftRequest.md) - - [LegacyPublishResult](docs/LegacyPublishResult.md) - - [LegacySrcOrDestAttributesInner](docs/LegacySrcOrDestAttributesInner.md) - - [LinkedTokensCount](docs/LinkedTokensCount.md) - - [ListAssetsResponse](docs/ListAssetsResponse.md) - - [ListBlockchainsResponse](docs/ListBlockchainsResponse.md) - - [ListOwnedCollectionsResponse](docs/ListOwnedCollectionsResponse.md) - - [ListOwnedTokensResponse](docs/ListOwnedTokensResponse.md) - - [LocalBankTransferAfricaAddress](docs/LocalBankTransferAfricaAddress.md) - - [LocalBankTransferAfricaDestination](docs/LocalBankTransferAfricaDestination.md) - - [Manifest](docs/Manifest.md) - - [MarketExecutionRequestDetails](docs/MarketExecutionRequestDetails.md) - - [MarketExecutionResponseDetails](docs/MarketExecutionResponseDetails.md) - - [MarketRequoteRequestDetails](docs/MarketRequoteRequestDetails.md) - - [MarketRequoteTypeEnum](docs/MarketRequoteTypeEnum.md) - - [MarketTypeDetails](docs/MarketTypeDetails.md) - - [MarketTypeEnum](docs/MarketTypeEnum.md) - - [MediaEntityResponse](docs/MediaEntityResponse.md) - - [MergeStakeAccountsRequest](docs/MergeStakeAccountsRequest.md) - - [MergeStakeAccountsResponse](docs/MergeStakeAccountsResponse.md) - - [MobileMoneyAddress](docs/MobileMoneyAddress.md) - - [MobileMoneyDestination](docs/MobileMoneyDestination.md) - - [ModifySigningKeyAgentIdDto](docs/ModifySigningKeyAgentIdDto.md) - - [ModifySigningKeyDto](docs/ModifySigningKeyDto.md) - - [ModifyValidationKeyDto](docs/ModifyValidationKeyDto.md) - - [MomoPaymentInfo](docs/MomoPaymentInfo.md) - - [MpcKey](docs/MpcKey.md) - - [MultichainDeploymentMetadata](docs/MultichainDeploymentMetadata.md) - - [NetworkChannel](docs/NetworkChannel.md) - - [NetworkConnection](docs/NetworkConnection.md) - - [NetworkConnectionResponse](docs/NetworkConnectionResponse.md) - - [NetworkConnectionRoutingPolicyValue](docs/NetworkConnectionRoutingPolicyValue.md) - - [NetworkConnectionStatus](docs/NetworkConnectionStatus.md) - - [NetworkFee](docs/NetworkFee.md) - - [NetworkId](docs/NetworkId.md) - - [NetworkIdResponse](docs/NetworkIdResponse.md) - - [NetworkIdRoutingPolicyValue](docs/NetworkIdRoutingPolicyValue.md) - - [NetworkRecord](docs/NetworkRecord.md) - - [NewAddress](docs/NewAddress.md) - - [NoneNetworkRoutingDest](docs/NoneNetworkRoutingDest.md) - - [NotFoundException](docs/NotFoundException.md) - - [Notification](docs/Notification.md) - - [NotificationAttempt](docs/NotificationAttempt.md) - - [NotificationAttemptsPaginatedResponse](docs/NotificationAttemptsPaginatedResponse.md) - - [NotificationPaginatedResponse](docs/NotificationPaginatedResponse.md) - - [NotificationStatus](docs/NotificationStatus.md) - - [NotificationWithData](docs/NotificationWithData.md) - - [OnchainTransaction](docs/OnchainTransaction.md) - - [OnchainTransactionsPagedResponse](docs/OnchainTransactionsPagedResponse.md) - - [OneTimeAddress](docs/OneTimeAddress.md) - - [OneTimeAddressAccount](docs/OneTimeAddressAccount.md) - - [OneTimeAddressPeerType](docs/OneTimeAddressPeerType.md) - - [OneTimeAddressReference](docs/OneTimeAddressReference.md) - - [OperationExecutionFailure](docs/OperationExecutionFailure.md) - - [OrderDetails](docs/OrderDetails.md) - - [OrderExecutionStep](docs/OrderExecutionStep.md) - - [OrderSide](docs/OrderSide.md) - - [OrderStatus](docs/OrderStatus.md) - - [OrderSummary](docs/OrderSummary.md) - - [PaginatedAddressResponse](docs/PaginatedAddressResponse.md) - - [PaginatedAddressResponsePaging](docs/PaginatedAddressResponsePaging.md) - - [PaginatedAssetWalletResponse](docs/PaginatedAssetWalletResponse.md) - - [PaginatedAssetWalletResponsePaging](docs/PaginatedAssetWalletResponsePaging.md) - - [PaginatedAssetsResponse](docs/PaginatedAssetsResponse.md) - - [Paging](docs/Paging.md) - - [PairApiKeyRequest](docs/PairApiKeyRequest.md) - - [PairApiKeyResponse](docs/PairApiKeyResponse.md) - - [Parameter](docs/Parameter.md) - - [ParameterWithValue](docs/ParameterWithValue.md) - - [ParticipantRelationshipType](docs/ParticipantRelationshipType.md) - - [ParticipantsIdentification](docs/ParticipantsIdentification.md) - - [PayeeAccount](docs/PayeeAccount.md) - - [PayeeAccountResponse](docs/PayeeAccountResponse.md) - - [PayeeAccountType](docs/PayeeAccountType.md) - - [PayidAddress](docs/PayidAddress.md) - - [PayidDestination](docs/PayidDestination.md) - - [PayidPaymentInfo](docs/PayidPaymentInfo.md) - - [PaymentAccount](docs/PaymentAccount.md) - - [PaymentAccountResponse](docs/PaymentAccountResponse.md) - - [PaymentAccountType](docs/PaymentAccountType.md) - - [PaymentInstructions](docs/PaymentInstructions.md) - - [PaymentInstructionsOneOf](docs/PaymentInstructionsOneOf.md) - - [PaymentRedirect](docs/PaymentRedirect.md) - - [PayoutInitMethod](docs/PayoutInitMethod.md) - - [PayoutInstruction](docs/PayoutInstruction.md) - - [PayoutInstructionResponse](docs/PayoutInstructionResponse.md) - - [PayoutInstructionState](docs/PayoutInstructionState.md) - - [PayoutResponse](docs/PayoutResponse.md) - - [PayoutState](docs/PayoutState.md) - - [PayoutStatus](docs/PayoutStatus.md) - - [PeerAdapterInfo](docs/PeerAdapterInfo.md) - - [PeerType](docs/PeerType.md) - - [PersonalEntityTypeEnum](docs/PersonalEntityTypeEnum.md) - - [PersonalIdentification](docs/PersonalIdentification.md) - - [PersonalIdentificationFullName](docs/PersonalIdentificationFullName.md) - - [PersonalIdentificationType](docs/PersonalIdentificationType.md) - - [PixAddress](docs/PixAddress.md) - - [PixDestination](docs/PixDestination.md) - - [PixPaymentInfo](docs/PixPaymentInfo.md) - - [PlatformAccount](docs/PlatformAccount.md) - - [PlatformPeerType](docs/PlatformPeerType.md) - - [Players](docs/Players.md) - - [PolicyAndValidationResponse](docs/PolicyAndValidationResponse.md) - - [PolicyCheckResult](docs/PolicyCheckResult.md) - - [PolicyCurrency](docs/PolicyCurrency.md) - - [PolicyMetadata](docs/PolicyMetadata.md) - - [PolicyOperator](docs/PolicyOperator.md) - - [PolicyResponse](docs/PolicyResponse.md) - - [PolicyRule](docs/PolicyRule.md) - - [PolicyRuleCheckResult](docs/PolicyRuleCheckResult.md) - - [PolicyRuleError](docs/PolicyRuleError.md) - - [PolicyStatus](docs/PolicyStatus.md) - - [PolicyTag](docs/PolicyTag.md) - - [PolicyType](docs/PolicyType.md) - - [PolicyValidation](docs/PolicyValidation.md) - - [PolicyVerdictActionEnum](docs/PolicyVerdictActionEnum.md) - - [PolicyVerdictActionEnum2](docs/PolicyVerdictActionEnum2.md) - - [PostalAddress](docs/PostalAddress.md) - - [PreScreening](docs/PreScreening.md) - - [PrefundedSettlement](docs/PrefundedSettlement.md) - - [PrefundedSettlementType](docs/PrefundedSettlementType.md) - - [ProgramCallConfig](docs/ProgramCallConfig.md) - - [Provider](docs/Provider.md) - - [ProvidersListResponse](docs/ProvidersListResponse.md) - - [PublicKeyInformation](docs/PublicKeyInformation.md) - - [PublishDraftRequest](docs/PublishDraftRequest.md) - - [PublishResult](docs/PublishResult.md) - - [Quote](docs/Quote.md) - - [QuoteExecutionRequestDetails](docs/QuoteExecutionRequestDetails.md) - - [QuoteExecutionStep](docs/QuoteExecutionStep.md) - - [QuoteExecutionTypeDetails](docs/QuoteExecutionTypeDetails.md) - - [QuoteExecutionWithRequoteRequestDetails](docs/QuoteExecutionWithRequoteRequestDetails.md) - - [QuoteExecutionWithRequoteResponseDetails](docs/QuoteExecutionWithRequoteResponseDetails.md) - - [QuoteFailure](docs/QuoteFailure.md) - - [QuotePropertiesDetails](docs/QuotePropertiesDetails.md) - - [QuoteTypeEnum](docs/QuoteTypeEnum.md) - - [QuotesResponse](docs/QuotesResponse.md) - - [ReQuoteDetails](docs/ReQuoteDetails.md) - - [ReQuoteDetailsReQuote](docs/ReQuoteDetailsReQuote.md) - - [ReadAbiFunction](docs/ReadAbiFunction.md) - - [ReadCallFunctionDto](docs/ReadCallFunctionDto.md) - - [ReadCallFunctionDtoAbiFunction](docs/ReadCallFunctionDtoAbiFunction.md) - - [RecipientHandle](docs/RecipientHandle.md) - - [RedeemFundsToLinkedDDAResponse](docs/RedeemFundsToLinkedDDAResponse.md) - - [RegisterNewAssetRequest](docs/RegisterNewAssetRequest.md) - - [ReissueMultichainTokenRequest](docs/ReissueMultichainTokenRequest.md) - - [RelatedRequest](docs/RelatedRequest.md) - - [RelatedTransaction](docs/RelatedTransaction.md) - - [RemoveCollateralRequestBody](docs/RemoveCollateralRequestBody.md) - - [RemoveLayerZeroAdapterFailedResult](docs/RemoveLayerZeroAdapterFailedResult.md) - - [RemoveLayerZeroAdaptersRequest](docs/RemoveLayerZeroAdaptersRequest.md) - - [RemoveLayerZeroAdaptersResponse](docs/RemoveLayerZeroAdaptersResponse.md) - - [RemoveLayerZeroPeersRequest](docs/RemoveLayerZeroPeersRequest.md) - - [RemoveLayerZeroPeersResponse](docs/RemoveLayerZeroPeersResponse.md) - - [RenameConnectedAccountRequest](docs/RenameConnectedAccountRequest.md) - - [RenameConnectedAccountResponse](docs/RenameConnectedAccountResponse.md) - - [RenameCosigner](docs/RenameCosigner.md) - - [RenameVaultAccountResponse](docs/RenameVaultAccountResponse.md) - - [ResendFailedNotificationsJobStatusResponse](docs/ResendFailedNotificationsJobStatusResponse.md) - - [ResendFailedNotificationsRequest](docs/ResendFailedNotificationsRequest.md) - - [ResendFailedNotificationsResponse](docs/ResendFailedNotificationsResponse.md) - - [ResendNotificationsByResourceIdRequest](docs/ResendNotificationsByResourceIdRequest.md) - - [ResendTransactionWebhooksRequest](docs/ResendTransactionWebhooksRequest.md) - - [ResendWebhooksByTransactionIdResponse](docs/ResendWebhooksByTransactionIdResponse.md) - - [ResendWebhooksResponse](docs/ResendWebhooksResponse.md) - - [RespondToConnectionRequest](docs/RespondToConnectionRequest.md) - - [RetryRequoteRequestDetails](docs/RetryRequoteRequestDetails.md) - - [RetryRequoteTypeEnum](docs/RetryRequoteTypeEnum.md) - - [RewardInfo](docs/RewardInfo.md) - - [RewardsInfo](docs/RewardsInfo.md) - - [RoleDetails](docs/RoleDetails.md) - - [RoleGrantee](docs/RoleGrantee.md) - - [SEPAAddress](docs/SEPAAddress.md) - - [SEPADestination](docs/SEPADestination.md) - - [SOLAccount](docs/SOLAccount.md) - - [SOLAccountWithValue](docs/SOLAccountWithValue.md) - - [ScopeItem](docs/ScopeItem.md) - - [ScreeningAlertExposureTypeEnum](docs/ScreeningAlertExposureTypeEnum.md) - - [ScreeningAmlAlert](docs/ScreeningAmlAlert.md) - - [ScreeningAmlMatchedRule](docs/ScreeningAmlMatchedRule.md) - - [ScreeningAmlResult](docs/ScreeningAmlResult.md) - - [ScreeningConfigurationsRequest](docs/ScreeningConfigurationsRequest.md) - - [ScreeningMetadataConfig](docs/ScreeningMetadataConfig.md) - - [ScreeningOperationExecution](docs/ScreeningOperationExecution.md) - - [ScreeningOperationExecutionOutput](docs/ScreeningOperationExecutionOutput.md) - - [ScreeningOperationFailure](docs/ScreeningOperationFailure.md) - - [ScreeningOperationType](docs/ScreeningOperationType.md) - - [ScreeningPolicyResponse](docs/ScreeningPolicyResponse.md) - - [ScreeningProviderRulesConfigurationResponse](docs/ScreeningProviderRulesConfigurationResponse.md) - - [ScreeningRiskLevelEnum](docs/ScreeningRiskLevelEnum.md) - - [ScreeningTRLinkAmount](docs/ScreeningTRLinkAmount.md) - - [ScreeningTRLinkMissingTrmDecision](docs/ScreeningTRLinkMissingTrmDecision.md) - - [ScreeningTRLinkMissingTrmRule](docs/ScreeningTRLinkMissingTrmRule.md) - - [ScreeningTRLinkPostScreeningRule](docs/ScreeningTRLinkPostScreeningRule.md) - - [ScreeningTRLinkPrescreeningRule](docs/ScreeningTRLinkPrescreeningRule.md) - - [ScreeningTRLinkRuleBase](docs/ScreeningTRLinkRuleBase.md) - - [ScreeningTravelRuleMatchedRule](docs/ScreeningTravelRuleMatchedRule.md) - - [ScreeningTravelRulePrescreeningRule](docs/ScreeningTravelRulePrescreeningRule.md) - - [ScreeningTravelRuleResult](docs/ScreeningTravelRuleResult.md) - - [ScreeningUpdateConfigurations](docs/ScreeningUpdateConfigurations.md) - - [ScreeningValidationFailure](docs/ScreeningValidationFailure.md) - - [ScreeningVerdict](docs/ScreeningVerdict.md) - - [ScreeningVerdictEnum](docs/ScreeningVerdictEnum.md) - - [ScreeningVerdictMatchedRule](docs/ScreeningVerdictMatchedRule.md) - - [SearchNetworkIdsResponse](docs/SearchNetworkIdsResponse.md) - - [SepaPaymentInfo](docs/SepaPaymentInfo.md) - - [SessionDTO](docs/SessionDTO.md) - - [SessionMetadata](docs/SessionMetadata.md) - - [SetAdminQuorumThresholdRequest](docs/SetAdminQuorumThresholdRequest.md) - - [SetAdminQuorumThresholdResponse](docs/SetAdminQuorumThresholdResponse.md) - - [SetAssetPriceRequest](docs/SetAssetPriceRequest.md) - - [SetAutoFuelRequest](docs/SetAutoFuelRequest.md) - - [SetConfirmationsThresholdRequest](docs/SetConfirmationsThresholdRequest.md) - - [SetConfirmationsThresholdResponse](docs/SetConfirmationsThresholdResponse.md) - - [SetCustomerRefIdForAddressRequest](docs/SetCustomerRefIdForAddressRequest.md) - - [SetCustomerRefIdRequest](docs/SetCustomerRefIdRequest.md) - - [SetLayerZeroDvnConfigRequest](docs/SetLayerZeroDvnConfigRequest.md) - - [SetLayerZeroDvnConfigResponse](docs/SetLayerZeroDvnConfigResponse.md) - - [SetLayerZeroPeersRequest](docs/SetLayerZeroPeersRequest.md) - - [SetLayerZeroPeersResponse](docs/SetLayerZeroPeersResponse.md) - - [SetNetworkIdDiscoverabilityRequest](docs/SetNetworkIdDiscoverabilityRequest.md) - - [SetNetworkIdNameRequest](docs/SetNetworkIdNameRequest.md) - - [SetNetworkIdResponse](docs/SetNetworkIdResponse.md) - - [SetNetworkIdRoutingPolicyRequest](docs/SetNetworkIdRoutingPolicyRequest.md) - - [SetOtaStatusRequest](docs/SetOtaStatusRequest.md) - - [SetOtaStatusResponse](docs/SetOtaStatusResponse.md) - - [SetOtaStatusResponseOneOf](docs/SetOtaStatusResponseOneOf.md) - - [SetRoutingPolicyRequest](docs/SetRoutingPolicyRequest.md) - - [SetRoutingPolicyResponse](docs/SetRoutingPolicyResponse.md) - - [Settlement](docs/Settlement.md) - - [SettlementRequestBody](docs/SettlementRequestBody.md) - - [SettlementResponse](docs/SettlementResponse.md) - - [SettlementSourceAccount](docs/SettlementSourceAccount.md) - - [Side](docs/Side.md) - - [SignedMessage](docs/SignedMessage.md) - - [SignedMessageSignature](docs/SignedMessageSignature.md) - - [SigningKeyDto](docs/SigningKeyDto.md) - - [SmartTransferApproveTerm](docs/SmartTransferApproveTerm.md) - - [SmartTransferBadRequestResponse](docs/SmartTransferBadRequestResponse.md) - - [SmartTransferCoinStatistic](docs/SmartTransferCoinStatistic.md) - - [SmartTransferCreateTicket](docs/SmartTransferCreateTicket.md) - - [SmartTransferCreateTicketTerm](docs/SmartTransferCreateTicketTerm.md) - - [SmartTransferForbiddenResponse](docs/SmartTransferForbiddenResponse.md) - - [SmartTransferFundDvpTicket](docs/SmartTransferFundDvpTicket.md) - - [SmartTransferFundTerm](docs/SmartTransferFundTerm.md) - - [SmartTransferManuallyFundTerm](docs/SmartTransferManuallyFundTerm.md) - - [SmartTransferNotFoundResponse](docs/SmartTransferNotFoundResponse.md) - - [SmartTransferSetTicketExpiration](docs/SmartTransferSetTicketExpiration.md) - - [SmartTransferSetTicketExternalId](docs/SmartTransferSetTicketExternalId.md) - - [SmartTransferSetUserGroups](docs/SmartTransferSetUserGroups.md) - - [SmartTransferStatistic](docs/SmartTransferStatistic.md) - - [SmartTransferStatisticInflow](docs/SmartTransferStatisticInflow.md) - - [SmartTransferStatisticOutflow](docs/SmartTransferStatisticOutflow.md) - - [SmartTransferSubmitTicket](docs/SmartTransferSubmitTicket.md) - - [SmartTransferTicket](docs/SmartTransferTicket.md) - - [SmartTransferTicketFilteredResponse](docs/SmartTransferTicketFilteredResponse.md) - - [SmartTransferTicketResponse](docs/SmartTransferTicketResponse.md) - - [SmartTransferTicketTerm](docs/SmartTransferTicketTerm.md) - - [SmartTransferTicketTermResponse](docs/SmartTransferTicketTermResponse.md) - - [SmartTransferUpdateTicketTerm](docs/SmartTransferUpdateTicketTerm.md) - - [SmartTransferUserGroups](docs/SmartTransferUserGroups.md) - - [SmartTransferUserGroupsResponse](docs/SmartTransferUserGroupsResponse.md) - - [SolParameter](docs/SolParameter.md) - - [SolParameterWithValue](docs/SolParameterWithValue.md) - - [SolanaBlockchainData](docs/SolanaBlockchainData.md) - - [SolanaConfig](docs/SolanaConfig.md) - - [SolanaInstruction](docs/SolanaInstruction.md) - - [SolanaInstructionWithValue](docs/SolanaInstructionWithValue.md) - - [SolanaSimpleCreateParams](docs/SolanaSimpleCreateParams.md) - - [SourceConfig](docs/SourceConfig.md) - - [SourceTransferPeerPath](docs/SourceTransferPeerPath.md) - - [SourceTransferPeerPathResponse](docs/SourceTransferPeerPathResponse.md) - - [SpamOwnershipResponse](docs/SpamOwnershipResponse.md) - - [SpamTokenResponse](docs/SpamTokenResponse.md) - - [SpeiAddress](docs/SpeiAddress.md) - - [SpeiAdvancedPaymentInfo](docs/SpeiAdvancedPaymentInfo.md) - - [SpeiBasicPaymentInfo](docs/SpeiBasicPaymentInfo.md) - - [SpeiDestination](docs/SpeiDestination.md) - - [SplitRequest](docs/SplitRequest.md) - - [SplitResponse](docs/SplitResponse.md) - - [StEthBlockchainData](docs/StEthBlockchainData.md) - - [StakeRequest](docs/StakeRequest.md) - - [StakeResponse](docs/StakeResponse.md) - - [StakingProvider](docs/StakingProvider.md) - - [Status](docs/Status.md) - - [StellarRippleCreateParamsDto](docs/StellarRippleCreateParamsDto.md) - - [SupportedBlockChainsResponse](docs/SupportedBlockChainsResponse.md) - - [SupportedBlockchain](docs/SupportedBlockchain.md) - - [SwiftAddress](docs/SwiftAddress.md) - - [SwiftDestination](docs/SwiftDestination.md) - - [SystemMessageInfo](docs/SystemMessageInfo.md) - - [TRLinkAPIPagedResponse](docs/TRLinkAPIPagedResponse.md) - - [TRLinkAmount](docs/TRLinkAmount.md) - - [TRLinkAmount2](docs/TRLinkAmount2.md) - - [TRLinkAmountRange](docs/TRLinkAmountRange.md) - - [TRLinkAssessTravelRuleRequest](docs/TRLinkAssessTravelRuleRequest.md) - - [TRLinkAssessTravelRuleResponse](docs/TRLinkAssessTravelRuleResponse.md) - - [TRLinkAssessmentDecision](docs/TRLinkAssessmentDecision.md) - - [TRLinkAsset](docs/TRLinkAsset.md) - - [TRLinkAssetData](docs/TRLinkAssetData.md) - - [TRLinkAssetFormat](docs/TRLinkAssetFormat.md) - - [TRLinkAssetsListPagedResponse](docs/TRLinkAssetsListPagedResponse.md) - - [TRLinkCancelTrmRequest](docs/TRLinkCancelTrmRequest.md) - - [TRLinkConnectIntegrationRequest](docs/TRLinkConnectIntegrationRequest.md) - - [TRLinkCreateCustomerRequest](docs/TRLinkCreateCustomerRequest.md) - - [TRLinkCreateIntegrationRequest](docs/TRLinkCreateIntegrationRequest.md) - - [TRLinkCreateTrmRequest](docs/TRLinkCreateTrmRequest.md) - - [TRLinkCurrency](docs/TRLinkCurrency.md) - - [TRLinkCustomerIntegrationResponse](docs/TRLinkCustomerIntegrationResponse.md) - - [TRLinkCustomerResponse](docs/TRLinkCustomerResponse.md) - - [TRLinkDestinationTransferPeerPath](docs/TRLinkDestinationTransferPeerPath.md) - - [TRLinkDiscoverableStatus](docs/TRLinkDiscoverableStatus.md) - - [TRLinkFiatValue](docs/TRLinkFiatValue.md) - - [TRLinkGeographicAddressRequest](docs/TRLinkGeographicAddressRequest.md) - - [TRLinkGetSupportedAssetResponse](docs/TRLinkGetSupportedAssetResponse.md) - - [TRLinkIvms](docs/TRLinkIvms.md) - - [TRLinkIvmsResponse](docs/TRLinkIvmsResponse.md) - - [TRLinkJwkPublicKey](docs/TRLinkJwkPublicKey.md) - - [TRLinkMissingTrmAction](docs/TRLinkMissingTrmAction.md) - - [TRLinkMissingTrmAction2](docs/TRLinkMissingTrmAction2.md) - - [TRLinkMissingTrmActionEnum](docs/TRLinkMissingTrmActionEnum.md) - - [TRLinkMissingTrmDecision](docs/TRLinkMissingTrmDecision.md) - - [TRLinkMissingTrmRule](docs/TRLinkMissingTrmRule.md) - - [TRLinkMissingTrmRule2](docs/TRLinkMissingTrmRule2.md) - - [TRLinkOneTimeAddress](docs/TRLinkOneTimeAddress.md) - - [TRLinkPaging](docs/TRLinkPaging.md) - - [TRLinkPartnerResponse](docs/TRLinkPartnerResponse.md) - - [TRLinkPolicyResponse](docs/TRLinkPolicyResponse.md) - - [TRLinkPostScreeningAction](docs/TRLinkPostScreeningAction.md) - - [TRLinkPostScreeningRule](docs/TRLinkPostScreeningRule.md) - - [TRLinkPostScreeningRule2](docs/TRLinkPostScreeningRule2.md) - - [TRLinkPreScreeningAction](docs/TRLinkPreScreeningAction.md) - - [TRLinkPreScreeningAction2](docs/TRLinkPreScreeningAction2.md) - - [TRLinkPreScreeningActionEnum](docs/TRLinkPreScreeningActionEnum.md) - - [TRLinkPreScreeningRule](docs/TRLinkPreScreeningRule.md) - - [TRLinkPreScreeningRule2](docs/TRLinkPreScreeningRule2.md) - - [TRLinkProviderData](docs/TRLinkProviderData.md) - - [TRLinkProviderResult](docs/TRLinkProviderResult.md) - - [TRLinkProviderResultWithRule](docs/TRLinkProviderResultWithRule.md) - - [TRLinkProviderResultWithRule2](docs/TRLinkProviderResultWithRule2.md) - - [TRLinkPublicAssetInfo](docs/TRLinkPublicAssetInfo.md) - - [TRLinkPublicKeyResponse](docs/TRLinkPublicKeyResponse.md) - - [TRLinkRedirectTrmRequest](docs/TRLinkRedirectTrmRequest.md) - - [TRLinkRegistrationResult](docs/TRLinkRegistrationResult.md) - - [TRLinkRegistrationResultFullPayload](docs/TRLinkRegistrationResultFullPayload.md) - - [TRLinkRegistrationStatus](docs/TRLinkRegistrationStatus.md) - - [TRLinkRegistrationStatusEnum](docs/TRLinkRegistrationStatusEnum.md) - - [TRLinkResult](docs/TRLinkResult.md) - - [TRLinkResultFullPayload](docs/TRLinkResultFullPayload.md) - - [TRLinkRuleBase](docs/TRLinkRuleBase.md) - - [TRLinkSetDestinationTravelRuleMessageIdRequest](docs/TRLinkSetDestinationTravelRuleMessageIdRequest.md) - - [TRLinkSetDestinationTravelRuleMessageIdResponse](docs/TRLinkSetDestinationTravelRuleMessageIdResponse.md) - - [TRLinkSetTransactionTravelRuleMessageIdRequest](docs/TRLinkSetTransactionTravelRuleMessageIdRequest.md) - - [TRLinkSetTransactionTravelRuleMessageIdResponse](docs/TRLinkSetTransactionTravelRuleMessageIdResponse.md) - - [TRLinkSourceTransferPeerPath](docs/TRLinkSourceTransferPeerPath.md) - - [TRLinkTestConnectionResponse](docs/TRLinkTestConnectionResponse.md) - - [TRLinkThresholds](docs/TRLinkThresholds.md) - - [TRLinkTransactionDirection](docs/TRLinkTransactionDirection.md) - - [TRLinkTransferPeerPath](docs/TRLinkTransferPeerPath.md) - - [TRLinkTrmDirection](docs/TRLinkTrmDirection.md) - - [TRLinkTrmInfoResponse](docs/TRLinkTrmInfoResponse.md) - - [TRLinkTrmScreeningStatus](docs/TRLinkTrmScreeningStatus.md) - - [TRLinkTrmScreeningStatusEnum](docs/TRLinkTrmScreeningStatusEnum.md) - - [TRLinkTrmStatus](docs/TRLinkTrmStatus.md) - - [TRLinkTxnInfo](docs/TRLinkTxnInfo.md) - - [TRLinkUpdateCustomerRequest](docs/TRLinkUpdateCustomerRequest.md) - - [TRLinkVaspDto](docs/TRLinkVaspDto.md) - - [TRLinkVaspGeographicAddress](docs/TRLinkVaspGeographicAddress.md) - - [TRLinkVaspListDto](docs/TRLinkVaspListDto.md) - - [TRLinkVaspNationalIdentification](docs/TRLinkVaspNationalIdentification.md) - - [TRLinkVerdict](docs/TRLinkVerdict.md) - - [TRLinkVerdictEnum](docs/TRLinkVerdictEnum.md) - - [Tag](docs/Tag.md) - - [TagAttachmentOperationAction](docs/TagAttachmentOperationAction.md) - - [TagsPagedResponse](docs/TagsPagedResponse.md) - - [TemplatesPaginatedResponse](docs/TemplatesPaginatedResponse.md) - - [ThirdPartyRouting](docs/ThirdPartyRouting.md) - - [TimePeriodConfig](docs/TimePeriodConfig.md) - - [TimePeriodMatchType](docs/TimePeriodMatchType.md) - - [ToCollateralTransaction](docs/ToCollateralTransaction.md) - - [ToExchangeTransaction](docs/ToExchangeTransaction.md) - - [TokenCollectionResponse](docs/TokenCollectionResponse.md) - - [TokenContractSummaryResponse](docs/TokenContractSummaryResponse.md) - - [TokenInfoNotFoundErrorResponse](docs/TokenInfoNotFoundErrorResponse.md) - - [TokenLinkDto](docs/TokenLinkDto.md) - - [TokenLinkDtoTokenMetadata](docs/TokenLinkDtoTokenMetadata.md) - - [TokenLinkExistsHttpError](docs/TokenLinkExistsHttpError.md) - - [TokenLinkNotMultichainCompatibleHttpError](docs/TokenLinkNotMultichainCompatibleHttpError.md) - - [TokenLinkRequestDto](docs/TokenLinkRequestDto.md) - - [TokenOwnershipResponse](docs/TokenOwnershipResponse.md) - - [TokenOwnershipSpamUpdatePayload](docs/TokenOwnershipSpamUpdatePayload.md) - - [TokenOwnershipStatusUpdatePayload](docs/TokenOwnershipStatusUpdatePayload.md) - - [TokenResponse](docs/TokenResponse.md) - - [TokensPaginatedResponse](docs/TokensPaginatedResponse.md) - - [TotalSupplyItemDto](docs/TotalSupplyItemDto.md) - - [TotalSupplyPagedResponse](docs/TotalSupplyPagedResponse.md) - - [TradingAccountType](docs/TradingAccountType.md) - - [TradingErrorSchema](docs/TradingErrorSchema.md) - - [TradingProvider](docs/TradingProvider.md) - - [Transaction](docs/Transaction.md) - - [TransactionDirection](docs/TransactionDirection.md) - - [TransactionFee](docs/TransactionFee.md) - - [TransactionOperation](docs/TransactionOperation.md) - - [TransactionOperationEnum](docs/TransactionOperationEnum.md) - - [TransactionReceiptResponse](docs/TransactionReceiptResponse.md) - - [TransactionRequest](docs/TransactionRequest.md) - - [TransactionRequestAmount](docs/TransactionRequestAmount.md) - - [TransactionRequestDestination](docs/TransactionRequestDestination.md) - - [TransactionRequestFee](docs/TransactionRequestFee.md) - - [TransactionRequestGasLimit](docs/TransactionRequestGasLimit.md) - - [TransactionRequestGasPrice](docs/TransactionRequestGasPrice.md) - - [TransactionRequestNetworkFee](docs/TransactionRequestNetworkFee.md) - - [TransactionRequestNetworkStaking](docs/TransactionRequestNetworkStaking.md) - - [TransactionRequestPriorityFee](docs/TransactionRequestPriorityFee.md) - - [TransactionResponse](docs/TransactionResponse.md) - - [TransactionResponseContractCallDecodedData](docs/TransactionResponseContractCallDecodedData.md) - - [TransactionResponseDestination](docs/TransactionResponseDestination.md) - - [TransferConfigOperation](docs/TransferConfigOperation.md) - - [TransferOperationConfigParams](docs/TransferOperationConfigParams.md) - - [TransferOperationExecution](docs/TransferOperationExecution.md) - - [TransferOperationExecutionOutput](docs/TransferOperationExecutionOutput.md) - - [TransferOperationExecutionParams](docs/TransferOperationExecutionParams.md) - - [TransferOperationExecutionParamsExecutionParams](docs/TransferOperationExecutionParamsExecutionParams.md) - - [TransferOperationFailure](docs/TransferOperationFailure.md) - - [TransferOperationFailureData](docs/TransferOperationFailureData.md) - - [TransferOperationPreview](docs/TransferOperationPreview.md) - - [TransferOperationPreviewOutput](docs/TransferOperationPreviewOutput.md) - - [TransferOperationType](docs/TransferOperationType.md) - - [TransferPeerPathSubType](docs/TransferPeerPathSubType.md) - - [TransferPeerPathType](docs/TransferPeerPathType.md) - - [TransferPeerSubTypeEnum](docs/TransferPeerSubTypeEnum.md) - - [TransferPeerTypeEnum](docs/TransferPeerTypeEnum.md) - - [TransferRail](docs/TransferRail.md) - - [TransferReceipt](docs/TransferReceipt.md) - - [TransferValidationFailure](docs/TransferValidationFailure.md) - - [TravelRuleActionEnum](docs/TravelRuleActionEnum.md) - - [TravelRuleAddress](docs/TravelRuleAddress.md) - - [TravelRuleCreateTransactionRequest](docs/TravelRuleCreateTransactionRequest.md) - - [TravelRuleDateAndPlaceOfBirth](docs/TravelRuleDateAndPlaceOfBirth.md) - - [TravelRuleDirectionEnum](docs/TravelRuleDirectionEnum.md) - - [TravelRuleGeographicAddress](docs/TravelRuleGeographicAddress.md) - - [TravelRuleGetAllVASPsResponse](docs/TravelRuleGetAllVASPsResponse.md) - - [TravelRuleIssuer](docs/TravelRuleIssuer.md) - - [TravelRuleIssuers](docs/TravelRuleIssuers.md) - - [TravelRuleLegalPerson](docs/TravelRuleLegalPerson.md) - - [TravelRuleLegalPersonNameIdentifier](docs/TravelRuleLegalPersonNameIdentifier.md) - - [TravelRuleMatchedRule](docs/TravelRuleMatchedRule.md) - - [TravelRuleNationalIdentification](docs/TravelRuleNationalIdentification.md) - - [TravelRuleNaturalNameIdentifier](docs/TravelRuleNaturalNameIdentifier.md) - - [TravelRuleNaturalPerson](docs/TravelRuleNaturalPerson.md) - - [TravelRuleNaturalPersonNameIdentifier](docs/TravelRuleNaturalPersonNameIdentifier.md) - - [TravelRuleOwnershipProof](docs/TravelRuleOwnershipProof.md) - - [TravelRulePerson](docs/TravelRulePerson.md) - - [TravelRulePiiIVMS](docs/TravelRulePiiIVMS.md) - - [TravelRulePolicyRuleResponse](docs/TravelRulePolicyRuleResponse.md) - - [TravelRulePrescreeningRule](docs/TravelRulePrescreeningRule.md) - - [TravelRuleResult](docs/TravelRuleResult.md) - - [TravelRuleStatusEnum](docs/TravelRuleStatusEnum.md) - - [TravelRuleTransactionBlockchainInfo](docs/TravelRuleTransactionBlockchainInfo.md) - - [TravelRuleUpdateVASPDetails](docs/TravelRuleUpdateVASPDetails.md) - - [TravelRuleVASP](docs/TravelRuleVASP.md) - - [TravelRuleValidateDateAndPlaceOfBirth](docs/TravelRuleValidateDateAndPlaceOfBirth.md) - - [TravelRuleValidateFullTransactionRequest](docs/TravelRuleValidateFullTransactionRequest.md) - - [TravelRuleValidateGeographicAddress](docs/TravelRuleValidateGeographicAddress.md) - - [TravelRuleValidateLegalPerson](docs/TravelRuleValidateLegalPerson.md) - - [TravelRuleValidateLegalPersonNameIdentifier](docs/TravelRuleValidateLegalPersonNameIdentifier.md) - - [TravelRuleValidateNationalIdentification](docs/TravelRuleValidateNationalIdentification.md) - - [TravelRuleValidateNaturalNameIdentifier](docs/TravelRuleValidateNaturalNameIdentifier.md) - - [TravelRuleValidateNaturalPerson](docs/TravelRuleValidateNaturalPerson.md) - - [TravelRuleValidateNaturalPersonNameIdentifier](docs/TravelRuleValidateNaturalPersonNameIdentifier.md) - - [TravelRuleValidatePerson](docs/TravelRuleValidatePerson.md) - - [TravelRuleValidatePiiIVMS](docs/TravelRuleValidatePiiIVMS.md) - - [TravelRuleValidateTransactionRequest](docs/TravelRuleValidateTransactionRequest.md) - - [TravelRuleValidateTransactionResponse](docs/TravelRuleValidateTransactionResponse.md) - - [TravelRuleVaspForVault](docs/TravelRuleVaspForVault.md) - - [TravelRuleVerdictEnum](docs/TravelRuleVerdictEnum.md) - - [TrustProofOfAddressCreateResponse](docs/TrustProofOfAddressCreateResponse.md) - - [TrustProofOfAddressRequest](docs/TrustProofOfAddressRequest.md) - - [TrustProofOfAddressResponse](docs/TrustProofOfAddressResponse.md) - - [TxLog](docs/TxLog.md) - - [TypedMessageTransactionStatusEnum](docs/TypedMessageTransactionStatusEnum.md) - - [USWireAddress](docs/USWireAddress.md) - - [USWireDestination](docs/USWireDestination.md) - - [UnfreezeTransactionResponse](docs/UnfreezeTransactionResponse.md) - - [UnmanagedWallet](docs/UnmanagedWallet.md) - - [UnspentInput](docs/UnspentInput.md) - - [UnspentInputsResponse](docs/UnspentInputsResponse.md) - - [UnstakeRequest](docs/UnstakeRequest.md) - - [UpdateAssetUserMetadataRequest](docs/UpdateAssetUserMetadataRequest.md) - - [UpdateCallbackHandlerRequest](docs/UpdateCallbackHandlerRequest.md) - - [UpdateCallbackHandlerResponse](docs/UpdateCallbackHandlerResponse.md) - - [UpdateDraftRequest](docs/UpdateDraftRequest.md) - - [UpdateTagRequest](docs/UpdateTagRequest.md) - - [UpdateTokenOwnershipStatusDto](docs/UpdateTokenOwnershipStatusDto.md) - - [UpdateVaultAccountAssetAddressRequest](docs/UpdateVaultAccountAssetAddressRequest.md) - - [UpdateVaultAccountRequest](docs/UpdateVaultAccountRequest.md) - - [UpdateWebhookRequest](docs/UpdateWebhookRequest.md) - - [UsWirePaymentInfo](docs/UsWirePaymentInfo.md) - - [UserGroupCreateRequest](docs/UserGroupCreateRequest.md) - - [UserGroupCreateResponse](docs/UserGroupCreateResponse.md) - - [UserGroupResponse](docs/UserGroupResponse.md) - - [UserGroupUpdateRequest](docs/UserGroupUpdateRequest.md) - - [UserResponse](docs/UserResponse.md) - - [UserRole](docs/UserRole.md) - - [UserStatus](docs/UserStatus.md) - - [UserType](docs/UserType.md) - - [ValidateAddressResponse](docs/ValidateAddressResponse.md) - - [ValidateLayerZeroChannelResponse](docs/ValidateLayerZeroChannelResponse.md) - - [ValidationKeyDto](docs/ValidationKeyDto.md) - - [Validator](docs/Validator.md) - - [VaultAccount](docs/VaultAccount.md) - - [VaultAccountTagAttachmentOperation](docs/VaultAccountTagAttachmentOperation.md) - - [VaultAccountTagAttachmentPendingOperation](docs/VaultAccountTagAttachmentPendingOperation.md) - - [VaultAccountTagAttachmentRejectedOperation](docs/VaultAccountTagAttachmentRejectedOperation.md) - - [VaultAccountsPagedResponse](docs/VaultAccountsPagedResponse.md) - - [VaultAccountsPagedResponsePaging](docs/VaultAccountsPagedResponsePaging.md) - - [VaultAccountsTagAttachmentOperationsRequest](docs/VaultAccountsTagAttachmentOperationsRequest.md) - - [VaultAccountsTagAttachmentOperationsResponse](docs/VaultAccountsTagAttachmentOperationsResponse.md) - - [VaultActionStatus](docs/VaultActionStatus.md) - - [VaultAsset](docs/VaultAsset.md) - - [VaultWalletAddress](docs/VaultWalletAddress.md) - - [VendorDto](docs/VendorDto.md) - - [VerdictConfig](docs/VerdictConfig.md) - - [VersionSummary](docs/VersionSummary.md) - - [WalletAsset](docs/WalletAsset.md) - - [WalletAssetAdditionalInfo](docs/WalletAssetAdditionalInfo.md) - - [Webhook](docs/Webhook.md) - - [WebhookEvent](docs/WebhookEvent.md) - - [WebhookMetric](docs/WebhookMetric.md) - - [WebhookPaginatedResponse](docs/WebhookPaginatedResponse.md) - - [WithdrawRequest](docs/WithdrawRequest.md) - - [WorkflowConfigStatus](docs/WorkflowConfigStatus.md) - - [WorkflowConfigurationId](docs/WorkflowConfigurationId.md) - - [WorkflowExecutionOperation](docs/WorkflowExecutionOperation.md) - - [Workspace](docs/Workspace.md) - - [WriteAbiFunction](docs/WriteAbiFunction.md) - - [WriteCallFunctionDto](docs/WriteCallFunctionDto.md) - - [WriteCallFunctionDtoAbiFunction](docs/WriteCallFunctionDtoAbiFunction.md) - - [WriteCallFunctionResponseDto](docs/WriteCallFunctionResponseDto.md) - - - -## Documentation For Authorization - - -Authentication schemes defined for the API: - -### bearerTokenAuth - -- **Type**: Bearer authentication (JWT) - - -### ApiKeyAuth - -- **Type**: API key -- **API key parameter name**: X-API-Key -- **Location**: HTTP header - - -## Author - -developers@fireblocks.com - - +IyBPZmZpY2lhbCBGaXJlYmxvY2tzIFB5dGhvbiBTREsKWyFbUHlQSSB2ZXJzaW9uXShodHRwczovL2JhZGdlLmZ1cnkuaW8vcHkvZmlyZWJsb2Nrcy5zdmcpXShodHRwczovL2JhZGdlLmZ1cnkuaW8vcHkvZmlyZWJsb2NrcykKClRoZSBGaXJlYmxvY2tzIFNESyBhbGxvd3MgZGV2ZWxvcGVycyB0byBzZWFtbGVzc2x5IGludGVncmF0ZSB3aXRoIHRoZSBGaXJlYmxvY2tzIHBsYXRmb3JtIGFuZCBwZXJmb3JtIGEgdmFyaWV0eSBvZiBvcGVyYXRpb25zLCBpbmNsdWRpbmcgbWFuYWdpbmcgdmF1bHQgYWNjb3VudHMgYW5kIGV4ZWN1dGluZyB0cmFuc2FjdGlvbnMgc2VjdXJlbHkuCgpGb3IgZGV0YWlsZWQgQVBJIGRvY3VtZW50YXRpb24gcGxlYXNlIHJlZmVyIHRvIHRoZSBbRmlyZWJsb2NrcyBBUEkgUmVmZXJlbmNlXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlLykuCgojIyBSZXF1aXJlbWVudHMuCgpQeXRob24gMy44KwoKIyMgSW5zdGFsbGF0aW9uCgpUbyB1c2UgdGhlIEZpcmVibG9ja3MgU0RLLCBmb2xsb3cgdGhlc2Ugc3RlcHM6CgojIyMgcGlwIGluc3RhbGwKCklmIHRoZSBweXRob24gcGFja2FnZSBpcyBob3N0ZWQgb24gYSByZXBvc2l0b3J5LCB5b3UgY2FuIGluc3RhbGwgZGlyZWN0bHkgdXNpbmc6CgpgYGBzaApwaXAgaW5zdGFsbCBmaXJlYmxvY2tzCmBgYAoKVGhlbiBpbXBvcnQgdGhlIHBhY2thZ2U6CmBgYHB5dGhvbgppbXBvcnQgZmlyZWJsb2NrcwpgYGAKCiMjIyBTZXR1cHRvb2xzCgpJbnN0YWxsIHZpYSBbU2V0dXB0b29sc10oaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3NldHVwdG9vbHMpLgoKYGBgc2gKcHl0aG9uIHNldHVwLnB5IGluc3RhbGwgLS11c2VyCmBgYAoob3IgYHN1ZG8gcHl0aG9uIHNldHVwLnB5IGluc3RhbGxgIHRvIGluc3RhbGwgdGhlIHBhY2thZ2UgZm9yIGFsbCB1c2VycykKClRoZW4gaW1wb3J0IHRoZSBwYWNrYWdlOgpgYGBweXRob24KaW1wb3J0IGZpcmVibG9ja3MKYGBgCgojIyBVc2FnZQoKUGxlYXNlIGZvbGxvdyB0aGUgW2luc3RhbGxhdGlvbiBwcm9jZWR1cmVdKCNpbnN0YWxsYXRpb24pIGZpcnN0LgoKIyMjIEluaXRpYWxpemluZyB0aGUgU0RLCllvdSBjYW4gaW5pdGlhbGl6ZSB0aGUgRmlyZWJsb2NrcyBTREsgaW4gdHdvIHdheXMsIGVpdGhlciBieSBzZXR0aW5nIGVudmlyb25tZW50IHZhcmlhYmxlcyBvciBwcm92aWRpbmcgdGhlIHBhcmFtZXRlcnMgZGlyZWN0bHk6Cgo8cD48c3Ryb25nPlVzaW5nIEVudmlyb25tZW50IFZhcmlhYmxlczwvc3Ryb25nPjxicj4KWW91IGNhbiBpbml0aWFsaXplIHRoZSBTREsgdXNpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZyb20geW91ciAuZW52IGZpbGUgb3IgYnkgc2V0dGluZyB0aGVtIHByb2dyYW1tYXRpY2FsbHk6PC9wPgoKdXNlIGJhc2ggY29tbWFuZHMgdG8gc2V0IGVudmlyb25tZW50IHZhcmlhYmxlczoKYGBgYmFzaApleHBvcnQgRklSRUJMT0NLU19CQVNFX1BBVEg9Imh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKZXhwb3J0IEZJUkVCTE9DS1NfQVBJX0tFWT0ibXktYXBpLWtleSIKZXhwb3J0IEZJUkVCTE9DS1NfU0VDUkVUX0tFWT0ibXktc2VjcmV0LWtleSIKYGBgCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2NrcwoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoKSBhcyBmaXJlYmxvY2tzOgogICAgcGFzcwpgYGAKCjxwPjxzdHJvbmc+UHJvdmlkaW5nIExvY2FsIFZhcmlhYmxlczwvc3Ryb25nPjxicj4KCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aAoKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHBhc3MKYGBgCgojIyMgQmFzaWMgQXBpIEV4YW1wbGVzCjxwPjxzdHJvbmc+Q3JlYXRpbmcgYSBWYXVsdCBBY2NvdW50PC9zdHJvbmc+PGJyPgogICAgVG8gY3JlYXRlIGEgbmV3IHZhdWx0IGFjY291bnQsIHlvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb246PC9wPgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3ZhdWx0X2FjY291bnRfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlVmF1bHRBY2NvdW50UmVxdWVzdApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjcmVhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0OiBDcmVhdGVWYXVsdEFjY291bnRSZXF1ZXN0ID0gQ3JlYXRlVmF1bHRBY2NvdW50UmVxdWVzdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0nTXkgRmlyc3QgVmF1bHQgQWNjb3VudCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGRlbl9vbl91aT1GYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b19mdWVsPUZhbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgIHRyeToKICAgICAgICAjIENyZWF0ZSBhIG5ldyB2YXVsdCBhY2NvdW50CiAgICAgICAgZnV0dXJlID0gZmlyZWJsb2Nrcy52YXVsdHMuY3JlYXRlX3ZhdWx0X2FjY291bnQoY3JlYXRlX3ZhdWx0X2FjY291bnRfcmVxdWVzdD1jcmVhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0KQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZ1dHVyZS5yZXN1bHQoKSAgIyBXYWl0IGZvciB0aGUgcmVzcG9uc2UKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFZhdWx0c0FwaS0+Y3JlYXRlX3ZhdWx0X2FjY291bnQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICAgICAgIyB0byBwcmludCBqdXN0IHRoZSBkYXRhOiAgICAgICAgICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlLmRhdGEpCiAgICAgICAgIyB0byBwcmludCBqdXN0IHRoZSBkYXRhIGluIGpzb24gZm9ybWF0OiBwcHJpbnQoYXBpX3Jlc3BvbnNlLmRhdGEudG9fanNvbigpKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFZhdWx0c0FwaS0+Y3JlYXRlX3ZhdWx0X2FjY291bnQ6ICVzXG4iICUgZSkKCmBgYAoKCjxwPjxzdHJvbmc+UmV0cmlldmluZyBWYXVsdCBBY2NvdW50czwvc3Ryb25nPjxicj4KICAgIFRvIGdldCBhIGxpc3Qgb2YgdmF1bHQgYWNjb3VudHMsIHlvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb246PC9wPgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHRyeToKICAgICAgICAjIExpc3QgdmF1bHQgYWNjb3VudHMgKFBhZ2luYXRlZCkKICAgICAgICBmdXR1cmUgPSBmaXJlYmxvY2tzLnZhdWx0cy5nZXRfcGFnZWRfdmF1bHRfYWNjb3VudHMoKQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZ1dHVyZS5yZXN1bHQoKSAgIyBXYWl0IGZvciB0aGUgcmVzcG9uc2UKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFZhdWx0c0FwaS0+Z2V0X3BhZ2VkX3ZhdWx0X2FjY291bnRzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgICAgICMgdG8gcHJpbnQganVzdCB0aGUgZGF0YTogICAgICAgICAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZS5kYXRhKQogICAgICAgICMgdG8gcHJpbnQganVzdCB0aGUgZGF0YSBpbiBqc29uIGZvcm1hdDogcHByaW50KGFwaV9yZXNwb25zZS5kYXRhLnRvX2pzb24oKSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBWYXVsdHNBcGktPmdldF9wYWdlZF92YXVsdF9hY2NvdW50czogJXNcbiIgJSBlKQpgYGAKCjxwPjxzdHJvbmc+Q3JlYXRpbmcgYSBUcmFuc2FjdGlvbjwvc3Ryb25nPjxicj4KICAgIFRvIG1ha2UgYSB0cmFuc2FjdGlvbiBiZXR3ZWVuIHZhdWx0IGFjY291bnRzLCB5b3UgY2FuIHVzZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uOjwvcD4KCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlcXVlc3QgaW1wb3J0IFRyYW5zYWN0aW9uUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlc3RpbmF0aW9uX3RyYW5zZmVyX3BlZXJfcGF0aCBpbXBvcnQgRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc291cmNlX3RyYW5zZmVyX3BlZXJfcGF0aCBpbXBvcnQgU291cmNlVHJhbnNmZXJQZWVyUGF0aApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3BlZXJfcGF0aF90eXBlIGltcG9ydCBUcmFuc2ZlclBlZXJQYXRoVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlcXVlc3RfYW1vdW50IGltcG9ydCBUcmFuc2FjdGlvblJlcXVlc3RBbW91bnQKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdHJhbnNhY3Rpb25fcmVxdWVzdDogVHJhbnNhY3Rpb25SZXF1ZXN0ID0gVHJhbnNhY3Rpb25SZXF1ZXN0KAogICAgICAgIGFzc2V0X2lkPSJFVEgiLAogICAgICAgIGFtb3VudD1UcmFuc2FjdGlvblJlcXVlc3RBbW91bnQoIjAuMSIpLAogICAgICAgIHNvdXJjZT1Tb3VyY2VUcmFuc2ZlclBlZXJQYXRoKAogICAgICAgICAgICB0eXBlPVRyYW5zZmVyUGVlclBhdGhUeXBlLlZBVUxUX0FDQ09VTlQsCiAgICAgICAgICAgIGlkPSIwIgogICAgICAgICksCiAgICAgICAgZGVzdGluYXRpb249RGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoKAogICAgICAgICAgICB0eXBlPVRyYW5zZmVyUGVlclBhdGhUeXBlLlZBVUxUX0FDQ09VTlQsCiAgICAgICAgICAgIGlkPSIxIgogICAgICAgICksCiAgICAgICAgbm90ZT0iWW91ciBmaXJzdCB0cmFuc2FjdGlvbiEiCiAgICApCiAgICAjIG9yIHlvdSBjYW4gdXNlIEpTT04gYXBwcm9hY2g6CiAgICAjCiAgICAjIHRyYW5zYWN0aW9uX3JlcXVlc3Q6IFRyYW5zYWN0aW9uUmVxdWVzdCA9IFRyYW5zYWN0aW9uUmVxdWVzdC5mcm9tX2pzb24oCiAgICAjICAgICAneyJub3RlIjogIllvdXIgZmlyc3QgdHJhbnNhY3Rpb24hIiwgJwogICAgIyAgICAgJyJhc3NldElkIjogIkVUSCIsICcKICAgICMgICAgICcic291cmNlIjogeyJ0eXBlIjogIlZBVUxUX0FDQ09VTlQiLCAiaWQiOiAiMCJ9LCAnCiAgICAjICAgICAnImRlc3RpbmF0aW9uIjogeyJ0eXBlIjogIlZBVUxUX0FDQ09VTlQiLCAiaWQiOiAiMSJ9LCAnCiAgICAjICAgICAnImFtb3VudCI6ICIwLjEifScKICAgICMgKQogICAgdHJ5OgogICAgICAgICMgQ3JlYXRlIGEgbmV3IHRyYW5zYWN0aW9uCiAgICAgICAgZnV0dXJlID0gZmlyZWJsb2Nrcy50cmFuc2FjdGlvbnMuY3JlYXRlX3RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uX3JlcXVlc3Q9dHJhbnNhY3Rpb25fcmVxdWVzdCkKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmdXR1cmUucmVzdWx0KCkgICMgV2FpdCBmb3IgdGhlIHJlc3BvbnNlCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUcmFuc2FjdGlvbnNBcGktPmNyZWF0ZV90cmFuc2FjdGlvbjpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgICAgICAjIHRvIHByaW50IGp1c3QgdGhlIGRhdGE6ICAgICAgICAgICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UuZGF0YSkKICAgICAgICAjIHRvIHByaW50IGp1c3QgdGhlIGRhdGEgaW4ganNvbiBmb3JtYXQ6IHBwcmludChhcGlfcmVzcG9uc2UuZGF0YS50b19qc29uKCkpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVHJhbnNhY3Rpb25zQXBpLT5jcmVhdGVfdHJhbnNhY3Rpb246ICVzXG4iICUgZSkKYGBgCgojIyBEb2N1bWVudGF0aW9uIGZvciBBUEkgRW5kcG9pbnRzCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS8KCkNsYXNzIHwgTWV0aG9kIHwgSFRUUCByZXF1ZXN0IHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCipBcGlVc2VyQXBpKiB8IFsqKmNyZWF0ZV9hcGlfdXNlcioqXShkb2NzL0FwaVVzZXJBcGkubWQjY3JlYXRlX2FwaV91c2VyKSB8ICoqUE9TVCoqIC9tYW5hZ2VtZW50L2FwaV91c2VycyB8IENyZWF0ZSBBUEkgS2V5CipBcGlVc2VyQXBpKiB8IFsqKmdldF9hcGlfdXNlcnMqKl0oZG9jcy9BcGlVc2VyQXBpLm1kI2dldF9hcGlfdXNlcnMpIHwgKipHRVQqKiAvbWFuYWdlbWVudC9hcGlfdXNlcnMgfCBHZXQgQVBJIEtleXMKKkF1ZGl0TG9nc0FwaSogfCBbKipnZXRfYXVkaXRfbG9ncyoqXShkb2NzL0F1ZGl0TG9nc0FwaS5tZCNnZXRfYXVkaXRfbG9ncykgfCAqKkdFVCoqIC9tYW5hZ2VtZW50L2F1ZGl0X2xvZ3MgfCBHZXQgYXVkaXQgbG9ncwoqQmxvY2tjaGFpbnNBc3NldHNBcGkqIHwgWyoqZ2V0X2Fzc2V0KipdKGRvY3MvQmxvY2tjaGFpbnNBc3NldHNBcGkubWQjZ2V0X2Fzc2V0KSB8ICoqR0VUKiogL2Fzc2V0cy97aWR9IHwgR2V0IGFuIGFzc2V0CipCbG9ja2NoYWluc0Fzc2V0c0FwaSogfCBbKipnZXRfYmxvY2tjaGFpbioqXShkb2NzL0Jsb2NrY2hhaW5zQXNzZXRzQXBpLm1kI2dldF9ibG9ja2NoYWluKSB8ICoqR0VUKiogL2Jsb2NrY2hhaW5zL3tpZH0gfCBHZXQgYSBCbG9ja2NoYWluIGJ5IElECipCbG9ja2NoYWluc0Fzc2V0c0FwaSogfCBbKipnZXRfc3VwcG9ydGVkX2Fzc2V0cyoqXShkb2NzL0Jsb2NrY2hhaW5zQXNzZXRzQXBpLm1kI2dldF9zdXBwb3J0ZWRfYXNzZXRzKSB8ICoqR0VUKiogL3N1cHBvcnRlZF9hc3NldHMgfCBMaXN0IGFzc2V0cyAoTGVnYWN5KQoqQmxvY2tjaGFpbnNBc3NldHNBcGkqIHwgWyoqbGlzdF9hc3NldHMqKl0oZG9jcy9CbG9ja2NoYWluc0Fzc2V0c0FwaS5tZCNsaXN0X2Fzc2V0cykgfCAqKkdFVCoqIC9hc3NldHMgfCBMaXN0IGFzc2V0cwoqQmxvY2tjaGFpbnNBc3NldHNBcGkqIHwgWyoqbGlzdF9ibG9ja2NoYWlucyoqXShkb2NzL0Jsb2NrY2hhaW5zQXNzZXRzQXBpLm1kI2xpc3RfYmxvY2tjaGFpbnMpIHwgKipHRVQqKiAvYmxvY2tjaGFpbnMgfCBMaXN0IGJsb2NrY2hhaW5zCipCbG9ja2NoYWluc0Fzc2V0c0FwaSogfCBbKipyZWdpc3Rlcl9uZXdfYXNzZXQqKl0oZG9jcy9CbG9ja2NoYWluc0Fzc2V0c0FwaS5tZCNyZWdpc3Rlcl9uZXdfYXNzZXQpIHwgKipQT1NUKiogL2Fzc2V0cyB8IFJlZ2lzdGVyIGFuIGFzc2V0CipCbG9ja2NoYWluc0Fzc2V0c0FwaSogfCBbKipzZXRfYXNzZXRfcHJpY2UqKl0oZG9jcy9CbG9ja2NoYWluc0Fzc2V0c0FwaS5tZCNzZXRfYXNzZXRfcHJpY2UpIHwgKipQT1NUKiogL2Fzc2V0cy9wcmljZXMve2lkfSB8IFNldCBhc3NldCBwcmljZQoqQmxvY2tjaGFpbnNBc3NldHNBcGkqIHwgWyoqdXBkYXRlX2Fzc2V0X3VzZXJfbWV0YWRhdGEqKl0oZG9jcy9CbG9ja2NoYWluc0Fzc2V0c0FwaS5tZCN1cGRhdGVfYXNzZXRfdXNlcl9tZXRhZGF0YSkgfCAqKlBBVENIKiogL2Fzc2V0cy97aWR9IHwgVXBkYXRlIHRoZSB1c2Vy4oCZcyBtZXRhZGF0YSBmb3IgYW4gYXNzZXQKKkNvbXBsaWFuY2VBcGkqIHwgWyoqZ2V0X2FtbF9wb3N0X3NjcmVlbmluZ19wb2xpY3kqKl0oZG9jcy9Db21wbGlhbmNlQXBpLm1kI2dldF9hbWxfcG9zdF9zY3JlZW5pbmdfcG9saWN5KSB8ICoqR0VUKiogL3NjcmVlbmluZy9hbWwvcG9zdF9zY3JlZW5pbmdfcG9saWN5IHwgQU1MIC0gVmlldyBQb3N0LVNjcmVlbmluZyBQb2xpY3kKKkNvbXBsaWFuY2VBcGkqIHwgWyoqZ2V0X2FtbF9zY3JlZW5pbmdfcG9saWN5KipdKGRvY3MvQ29tcGxpYW5jZUFwaS5tZCNnZXRfYW1sX3NjcmVlbmluZ19wb2xpY3kpIHwgKipHRVQqKiAvc2NyZWVuaW5nL2FtbC9zY3JlZW5pbmdfcG9saWN5IHwgQU1MIC0gVmlldyBTY3JlZW5pbmcgUG9saWN5CipDb21wbGlhbmNlQXBpKiB8IFsqKmdldF9sZWdhbF9lbnRpdHlfYnlfYWRkcmVzcyoqXShkb2NzL0NvbXBsaWFuY2VBcGkubWQjZ2V0X2xlZ2FsX2VudGl0eV9ieV9hZGRyZXNzKSB8ICoqR0VUKiogL2FkZHJlc3NfcmVnaXN0cnkvbGVnYWxfZW50aXR5IHwgTG9vayB1cCBsZWdhbCBlbnRpdHkgYnkgYWRkcmVzcyBhbmQgYXNzZXQKKkNvbXBsaWFuY2VBcGkqIHwgWyoqZ2V0X3Bvc3Rfc2NyZWVuaW5nX3BvbGljeSoqXShkb2NzL0NvbXBsaWFuY2VBcGkubWQjZ2V0X3Bvc3Rfc2NyZWVuaW5nX3BvbGljeSkgfCAqKkdFVCoqIC9zY3JlZW5pbmcvdHJhdmVsX3J1bGUvcG9zdF9zY3JlZW5pbmdfcG9saWN5IHwgVHJhdmVsIFJ1bGUgLSBWaWV3IFBvc3QtU2NyZWVuaW5nIFBvbGljeQoqQ29tcGxpYW5jZUFwaSogfCBbKipnZXRfc2NyZWVuaW5nX2Z1bGxfZGV0YWlscyoqXShkb2NzL0NvbXBsaWFuY2VBcGkubWQjZ2V0X3NjcmVlbmluZ19mdWxsX2RldGFpbHMpIHwgKipHRVQqKiAvc2NyZWVuaW5nL3RyYW5zYWN0aW9uL3t0eElkfSB8IFByb3ZpZGVzIGFsbCB0aGUgY29tcGxpYW5jZSBkZXRhaWxzIGZvciB0aGUgZ2l2ZW4gc2NyZWVuZWQgdHJhbnNhY3Rpb24uCipDb21wbGlhbmNlQXBpKiB8IFsqKmdldF9zY3JlZW5pbmdfcG9saWN5KipdKGRvY3MvQ29tcGxpYW5jZUFwaS5tZCNnZXRfc2NyZWVuaW5nX3BvbGljeSkgfCAqKkdFVCoqIC9zY3JlZW5pbmcvdHJhdmVsX3J1bGUvc2NyZWVuaW5nX3BvbGljeSB8IFRyYXZlbCBSdWxlIC0gVmlldyBTY3JlZW5pbmcgUG9saWN5CipDb21wbGlhbmNlQXBpKiB8IFsqKnJldHJ5X3JlamVjdGVkX3RyYW5zYWN0aW9uX2J5cGFzc19zY3JlZW5pbmdfY2hlY2tzKipdKGRvY3MvQ29tcGxpYW5jZUFwaS5tZCNyZXRyeV9yZWplY3RlZF90cmFuc2FjdGlvbl9ieXBhc3Nfc2NyZWVuaW5nX2NoZWNrcykgfCAqKlBPU1QqKiAvc2NyZWVuaW5nL3RyYW5zYWN0aW9uL3t0eElkfS9ieXBhc3Nfc2NyZWVuaW5nX3BvbGljeSB8IENhbGxpbmcgdGhlIFwmcXVvdDtCeXBhc3MgU2NyZWVuaW5nIFBvbGljeVwmcXVvdDsgQVBJIGVuZHBvaW50IHRyaWdnZXJzIGEgbmV3IHRyYW5zYWN0aW9uLCB3aXRoIHRoZSBBUEkgdXNlciBhcyB0aGUgaW5pdGlhdG9yLCBieXBhc3NpbmcgdGhlIHNjcmVlbmluZyBwb2xpY3kgY2hlY2sKKkNvbXBsaWFuY2VBcGkqIHwgWyoqc2V0X2FtbF92ZXJkaWN0KipdKGRvY3MvQ29tcGxpYW5jZUFwaS5tZCNzZXRfYW1sX3ZlcmRpY3QpIHwgKipQT1NUKiogL3NjcmVlbmluZy9hbWwvdmVyZGljdC9tYW51YWwgfCBTZXQgQU1MIFZlcmRpY3QgZm9yIE1hbnVhbCBTY3JlZW5pbmcgVmVyZGljdC4KKkNvbXBsaWFuY2VBcGkqIHwgWyoqdXBkYXRlX2FtbF9zY3JlZW5pbmdfY29uZmlndXJhdGlvbioqXShkb2NzL0NvbXBsaWFuY2VBcGkubWQjdXBkYXRlX2FtbF9zY3JlZW5pbmdfY29uZmlndXJhdGlvbikgfCAqKlBVVCoqIC9zY3JlZW5pbmcvYW1sL3BvbGljeV9jb25maWd1cmF0aW9uIHwgVXBkYXRlIEFNTCBDb25maWd1cmF0aW9uCipDb21wbGlhbmNlQXBpKiB8IFsqKnVwZGF0ZV9zY3JlZW5pbmdfY29uZmlndXJhdGlvbioqXShkb2NzL0NvbXBsaWFuY2VBcGkubWQjdXBkYXRlX3NjcmVlbmluZ19jb25maWd1cmF0aW9uKSB8ICoqUFVUKiogL3NjcmVlbmluZy9jb25maWd1cmF0aW9ucyB8IFRlbmFudCAtIFNjcmVlbmluZyBDb25maWd1cmF0aW9uCipDb21wbGlhbmNlQXBpKiB8IFsqKnVwZGF0ZV90cmF2ZWxfcnVsZV9jb25maWcqKl0oZG9jcy9Db21wbGlhbmNlQXBpLm1kI3VwZGF0ZV90cmF2ZWxfcnVsZV9jb25maWcpIHwgKipQVVQqKiAvc2NyZWVuaW5nL3RyYXZlbF9ydWxlL3BvbGljeV9jb25maWd1cmF0aW9uIHwgVXBkYXRlIFRyYXZlbCBSdWxlIENvbmZpZ3VyYXRpb24KKkNvbXBsaWFuY2VTY3JlZW5pbmdDb25maWd1cmF0aW9uQXBpKiB8IFsqKmdldF9hbWxfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb24qKl0oZG9jcy9Db21wbGlhbmNlU2NyZWVuaW5nQ29uZmlndXJhdGlvbkFwaS5tZCNnZXRfYW1sX3NjcmVlbmluZ19jb25maWd1cmF0aW9uKSB8ICoqR0VUKiogL3NjcmVlbmluZy9hbWwvcG9saWN5X2NvbmZpZ3VyYXRpb24gfCBHZXQgQU1MIFNjcmVlbmluZyBQb2xpY3kgQ29uZmlndXJhdGlvbgoqQ29tcGxpYW5jZVNjcmVlbmluZ0NvbmZpZ3VyYXRpb25BcGkqIHwgWyoqZ2V0X3NjcmVlbmluZ19jb25maWd1cmF0aW9uKipdKGRvY3MvQ29tcGxpYW5jZVNjcmVlbmluZ0NvbmZpZ3VyYXRpb25BcGkubWQjZ2V0X3NjcmVlbmluZ19jb25maWd1cmF0aW9uKSB8ICoqR0VUKiogL3NjcmVlbmluZy90cmF2ZWxfcnVsZS9wb2xpY3lfY29uZmlndXJhdGlvbiB8IEdldCBUcmF2ZWwgUnVsZSBTY3JlZW5pbmcgUG9saWN5IENvbmZpZ3VyYXRpb24KKkNvbm5lY3RlZEFjY291bnRzQmV0YUFwaSogfCBbKipkaXNjb25uZWN0X2Nvbm5lY3RlZF9hY2NvdW50KipdKGRvY3MvQ29ubmVjdGVkQWNjb3VudHNCZXRhQXBpLm1kI2Rpc2Nvbm5lY3RfY29ubmVjdGVkX2FjY291bnQpIHwgKipERUxFVEUqKiAvY29ubmVjdGVkX2FjY291bnRzL3thY2NvdW50SWR9IHwgRGlzY29ubmVjdCBjb25uZWN0ZWQgYWNjb3VudAoqQ29ubmVjdGVkQWNjb3VudHNCZXRhQXBpKiB8IFsqKmdldF9jb25uZWN0ZWRfYWNjb3VudCoqXShkb2NzL0Nvbm5lY3RlZEFjY291bnRzQmV0YUFwaS5tZCNnZXRfY29ubmVjdGVkX2FjY291bnQpIHwgKipHRVQqKiAvY29ubmVjdGVkX2FjY291bnRzL3thY2NvdW50SWR9IHwgR2V0IGNvbm5lY3RlZCBhY2NvdW50CipDb25uZWN0ZWRBY2NvdW50c0JldGFBcGkqIHwgWyoqZ2V0X2Nvbm5lY3RlZF9hY2NvdW50X2JhbGFuY2VzKipdKGRvY3MvQ29ubmVjdGVkQWNjb3VudHNCZXRhQXBpLm1kI2dldF9jb25uZWN0ZWRfYWNjb3VudF9iYWxhbmNlcykgfCAqKkdFVCoqIC9jb25uZWN0ZWRfYWNjb3VudHMve2FjY291bnRJZH0vYmFsYW5jZXMgfCBHZXQgYmFsYW5jZXMgZm9yIGFuIGFjY291bnQKKkNvbm5lY3RlZEFjY291bnRzQmV0YUFwaSogfCBbKipnZXRfY29ubmVjdGVkX2FjY291bnRfcmF0ZXMqKl0oZG9jcy9Db25uZWN0ZWRBY2NvdW50c0JldGFBcGkubWQjZ2V0X2Nvbm5lY3RlZF9hY2NvdW50X3JhdGVzKSB8ICoqR0VUKiogL2Nvbm5lY3RlZF9hY2NvdW50cy97YWNjb3VudElkfS9yYXRlcyB8IEdldCBleGNoYW5nZSByYXRlcyBmb3IgYW4gYWNjb3VudAoqQ29ubmVjdGVkQWNjb3VudHNCZXRhQXBpKiB8IFsqKmdldF9jb25uZWN0ZWRfYWNjb3VudF90cmFkaW5nX3BhaXJzKipdKGRvY3MvQ29ubmVjdGVkQWNjb3VudHNCZXRhQXBpLm1kI2dldF9jb25uZWN0ZWRfYWNjb3VudF90cmFkaW5nX3BhaXJzKSB8ICoqR0VUKiogL2Nvbm5lY3RlZF9hY2NvdW50cy97YWNjb3VudElkfS9tYW5pZmVzdC9jYXBhYmlsaXRpZXMvdHJhZGluZy9wYWlycyB8IEdldCBzdXBwb3J0ZWQgdHJhZGluZyBwYWlycyBmb3IgYW4gYWNjb3VudAoqQ29ubmVjdGVkQWNjb3VudHNCZXRhQXBpKiB8IFsqKmdldF9jb25uZWN0ZWRfYWNjb3VudHMqKl0oZG9jcy9Db25uZWN0ZWRBY2NvdW50c0JldGFBcGkubWQjZ2V0X2Nvbm5lY3RlZF9hY2NvdW50cykgfCAqKkdFVCoqIC9jb25uZWN0ZWRfYWNjb3VudHMgfCBHZXQgY29ubmVjdGVkIGFjY291bnRzCipDb25uZWN0ZWRBY2NvdW50c0JldGFBcGkqIHwgWyoqcmVuYW1lX2Nvbm5lY3RlZF9hY2NvdW50KipdKGRvY3MvQ29ubmVjdGVkQWNjb3VudHNCZXRhQXBpLm1kI3JlbmFtZV9jb25uZWN0ZWRfYWNjb3VudCkgfCAqKlBPU1QqKiAvY29ubmVjdGVkX2FjY291bnRzL3thY2NvdW50SWR9L3JlbmFtZSB8IFJlbmFtZSBDb25uZWN0ZWQgQWNjb3VudAoqQ29uc29sZVVzZXJBcGkqIHwgWyoqY3JlYXRlX2NvbnNvbGVfdXNlcioqXShkb2NzL0NvbnNvbGVVc2VyQXBpLm1kI2NyZWF0ZV9jb25zb2xlX3VzZXIpIHwgKipQT1NUKiogL21hbmFnZW1lbnQvdXNlcnMgfCBDcmVhdGUgY29uc29sZSB1c2VyCipDb25zb2xlVXNlckFwaSogfCBbKipnZXRfY29uc29sZV91c2VycyoqXShkb2NzL0NvbnNvbGVVc2VyQXBpLm1kI2dldF9jb25zb2xlX3VzZXJzKSB8ICoqR0VUKiogL21hbmFnZW1lbnQvdXNlcnMgfCBHZXQgY29uc29sZSB1c2VycwoqQ29udHJhY3RJbnRlcmFjdGlvbnNBcGkqIHwgWyoqZGVjb2RlX2NvbnRyYWN0X2RhdGEqKl0oZG9jcy9Db250cmFjdEludGVyYWN0aW9uc0FwaS5tZCNkZWNvZGVfY29udHJhY3RfZGF0YSkgfCAqKlBPU1QqKiAvY29udHJhY3RfaW50ZXJhY3Rpb25zL2Jhc2VfYXNzZXRfaWQve2Jhc2VBc3NldElkfS9jb250cmFjdF9hZGRyZXNzL3tjb250cmFjdEFkZHJlc3N9L2RlY29kZSB8IERlY29kZSBhIGZ1bmN0aW9uIGNhbGwgZGF0YSwgZXJyb3IsIG9yIGV2ZW50IGxvZwoqQ29udHJhY3RJbnRlcmFjdGlvbnNBcGkqIHwgWyoqZ2V0X2NvbnRyYWN0X2FkZHJlc3MqKl0oZG9jcy9Db250cmFjdEludGVyYWN0aW9uc0FwaS5tZCNnZXRfY29udHJhY3RfYWRkcmVzcykgfCAqKkdFVCoqIC9jb250cmFjdF9pbnRlcmFjdGlvbnMvYmFzZV9hc3NldF9pZC97YmFzZUFzc2V0SWR9L3R4X2hhc2gve3R4SGFzaH0gfCBHZXQgY29udHJhY3QgYWRkcmVzcyBieSB0cmFuc2FjdGlvbiBoYXNoCipDb250cmFjdEludGVyYWN0aW9uc0FwaSogfCBbKipnZXRfZGVwbG95ZWRfY29udHJhY3RfYWJpKipdKGRvY3MvQ29udHJhY3RJbnRlcmFjdGlvbnNBcGkubWQjZ2V0X2RlcGxveWVkX2NvbnRyYWN0X2FiaSkgfCAqKkdFVCoqIC9jb250cmFjdF9pbnRlcmFjdGlvbnMvYmFzZV9hc3NldF9pZC97YmFzZUFzc2V0SWR9L2NvbnRyYWN0X2FkZHJlc3Mve2NvbnRyYWN0QWRkcmVzc30vZnVuY3Rpb25zIHwgUmV0dXJuIGRlcGxveWVkIGNvbnRyYWN0JiMzOTtzIEFCSQoqQ29udHJhY3RJbnRlcmFjdGlvbnNBcGkqIHwgWyoqZ2V0X3RyYW5zYWN0aW9uX3JlY2VpcHQqKl0oZG9jcy9Db250cmFjdEludGVyYWN0aW9uc0FwaS5tZCNnZXRfdHJhbnNhY3Rpb25fcmVjZWlwdCkgfCAqKkdFVCoqIC9jb250cmFjdF9pbnRlcmFjdGlvbnMvYmFzZV9hc3NldF9pZC97YmFzZUFzc2V0SWR9L3R4X2hhc2gve3R4SGFzaH0vcmVjZWlwdCB8IEdldCB0cmFuc2FjdGlvbiByZWNlaXB0CipDb250cmFjdEludGVyYWN0aW9uc0FwaSogfCBbKipyZWFkX2NhbGxfZnVuY3Rpb24qKl0oZG9jcy9Db250cmFjdEludGVyYWN0aW9uc0FwaS5tZCNyZWFkX2NhbGxfZnVuY3Rpb24pIHwgKipQT1NUKiogL2NvbnRyYWN0X2ludGVyYWN0aW9ucy9iYXNlX2Fzc2V0X2lkL3tiYXNlQXNzZXRJZH0vY29udHJhY3RfYWRkcmVzcy97Y29udHJhY3RBZGRyZXNzfS9mdW5jdGlvbnMvcmVhZCB8IENhbGwgYSByZWFkIGZ1bmN0aW9uIG9uIGEgZGVwbG95ZWQgY29udHJhY3QKKkNvbnRyYWN0SW50ZXJhY3Rpb25zQXBpKiB8IFsqKndyaXRlX2NhbGxfZnVuY3Rpb24qKl0oZG9jcy9Db250cmFjdEludGVyYWN0aW9uc0FwaS5tZCN3cml0ZV9jYWxsX2Z1bmN0aW9uKSB8ICoqUE9TVCoqIC9jb250cmFjdF9pbnRlcmFjdGlvbnMvYmFzZV9hc3NldF9pZC97YmFzZUFzc2V0SWR9L2NvbnRyYWN0X2FkZHJlc3Mve2NvbnRyYWN0QWRkcmVzc30vZnVuY3Rpb25zL3dyaXRlIHwgQ2FsbCBhIHdyaXRlIGZ1bmN0aW9uIG9uIGEgZGVwbG95ZWQgY29udHJhY3QKKkNvbnRyYWN0VGVtcGxhdGVzQXBpKiB8IFsqKmRlbGV0ZV9jb250cmFjdF90ZW1wbGF0ZV9ieV9pZCoqXShkb2NzL0NvbnRyYWN0VGVtcGxhdGVzQXBpLm1kI2RlbGV0ZV9jb250cmFjdF90ZW1wbGF0ZV9ieV9pZCkgfCAqKkRFTEVURSoqIC90b2tlbml6YXRpb24vdGVtcGxhdGVzL3tjb250cmFjdFRlbXBsYXRlSWR9IHwgRGVsZXRlIGEgY29udHJhY3QgdGVtcGxhdGUgYnkgaWQKKkNvbnRyYWN0VGVtcGxhdGVzQXBpKiB8IFsqKmRlcGxveV9jb250cmFjdCoqXShkb2NzL0NvbnRyYWN0VGVtcGxhdGVzQXBpLm1kI2RlcGxveV9jb250cmFjdCkgfCAqKlBPU1QqKiAvdG9rZW5pemF0aW9uL3RlbXBsYXRlcy97Y29udHJhY3RUZW1wbGF0ZUlkfS9kZXBsb3kgfCBEZXBsb3kgY29udHJhY3QKKkNvbnRyYWN0VGVtcGxhdGVzQXBpKiB8IFsqKmdldF9jb25zdHJ1Y3Rvcl9ieV9jb250cmFjdF90ZW1wbGF0ZV9pZCoqXShkb2NzL0NvbnRyYWN0VGVtcGxhdGVzQXBpLm1kI2dldF9jb25zdHJ1Y3Rvcl9ieV9jb250cmFjdF90ZW1wbGF0ZV9pZCkgfCAqKkdFVCoqIC90b2tlbml6YXRpb24vdGVtcGxhdGVzL3tjb250cmFjdFRlbXBsYXRlSWR9L2NvbnN0cnVjdG9yIHwgUmV0dXJuIGNvbnRyYWN0IHRlbXBsYXRlJiMzOTtzIGNvbnN0cnVjdG9yCipDb250cmFjdFRlbXBsYXRlc0FwaSogfCBbKipnZXRfY29udHJhY3RfdGVtcGxhdGVfYnlfaWQqKl0oZG9jcy9Db250cmFjdFRlbXBsYXRlc0FwaS5tZCNnZXRfY29udHJhY3RfdGVtcGxhdGVfYnlfaWQpIHwgKipHRVQqKiAvdG9rZW5pemF0aW9uL3RlbXBsYXRlcy97Y29udHJhY3RUZW1wbGF0ZUlkfSB8IFJldHVybiBjb250cmFjdCB0ZW1wbGF0ZSBieSBpZAoqQ29udHJhY3RUZW1wbGF0ZXNBcGkqIHwgWyoqZ2V0X2NvbnRyYWN0X3RlbXBsYXRlcyoqXShkb2NzL0NvbnRyYWN0VGVtcGxhdGVzQXBpLm1kI2dldF9jb250cmFjdF90ZW1wbGF0ZXMpIHwgKipHRVQqKiAvdG9rZW5pemF0aW9uL3RlbXBsYXRlcyB8IExpc3QgYWxsIGNvbnRyYWN0IHRlbXBsYXRlcwoqQ29udHJhY3RUZW1wbGF0ZXNBcGkqIHwgWyoqZ2V0X2Z1bmN0aW9uX2FiaV9ieV9jb250cmFjdF90ZW1wbGF0ZV9pZCoqXShkb2NzL0NvbnRyYWN0VGVtcGxhdGVzQXBpLm1kI2dldF9mdW5jdGlvbl9hYmlfYnlfY29udHJhY3RfdGVtcGxhdGVfaWQpIHwgKipHRVQqKiAvdG9rZW5pemF0aW9uL3RlbXBsYXRlcy97Y29udHJhY3RUZW1wbGF0ZUlkfS9mdW5jdGlvbiB8IFJldHVybiBjb250cmFjdCB0ZW1wbGF0ZSYjMzk7cyBmdW5jdGlvbgoqQ29udHJhY3RUZW1wbGF0ZXNBcGkqIHwgWyoqZ2V0X3N1cHBvcnRlZF9ibG9ja2NoYWluc19ieV90ZW1wbGF0ZV9pZCoqXShkb2NzL0NvbnRyYWN0VGVtcGxhdGVzQXBpLm1kI2dldF9zdXBwb3J0ZWRfYmxvY2tjaGFpbnNfYnlfdGVtcGxhdGVfaWQpIHwgKipHRVQqKiAvdG9rZW5pemF0aW9uL3RlbXBsYXRlcy97Y29udHJhY3RUZW1wbGF0ZUlkfS9zdXBwb3J0ZWRfYmxvY2tjaGFpbnMgfCBHZXQgc3VwcG9ydGVkIGJsb2NrY2hhaW5zIGZvciB0aGUgdGVtcGxhdGUKKkNvbnRyYWN0VGVtcGxhdGVzQXBpKiB8IFsqKnVwbG9hZF9jb250cmFjdF90ZW1wbGF0ZSoqXShkb2NzL0NvbnRyYWN0VGVtcGxhdGVzQXBpLm1kI3VwbG9hZF9jb250cmFjdF90ZW1wbGF0ZSkgfCAqKlBPU1QqKiAvdG9rZW5pemF0aW9uL3RlbXBsYXRlcyB8IFVwbG9hZCBjb250cmFjdCB0ZW1wbGF0ZQoqQ29udHJhY3RzQXBpKiB8IFsqKmFkZF9jb250cmFjdF9hc3NldCoqXShkb2NzL0NvbnRyYWN0c0FwaS5tZCNhZGRfY29udHJhY3RfYXNzZXQpIHwgKipQT1NUKiogL2NvbnRyYWN0cy97Y29udHJhY3RJZH0ve2Fzc2V0SWR9IHwgQWRkIGFuIGFzc2V0IHRvIGEgd2hpdGVsaXN0ZWQgY29udHJhY3QKKkNvbnRyYWN0c0FwaSogfCBbKipjcmVhdGVfY29udHJhY3QqKl0oZG9jcy9Db250cmFjdHNBcGkubWQjY3JlYXRlX2NvbnRyYWN0KSB8ICoqUE9TVCoqIC9jb250cmFjdHMgfCBBZGQgYSBjb250cmFjdAoqQ29udHJhY3RzQXBpKiB8IFsqKmRlbGV0ZV9jb250cmFjdCoqXShkb2NzL0NvbnRyYWN0c0FwaS5tZCNkZWxldGVfY29udHJhY3QpIHwgKipERUxFVEUqKiAvY29udHJhY3RzL3tjb250cmFjdElkfSB8IERlbGV0ZSBhIGNvbnRyYWN0CipDb250cmFjdHNBcGkqIHwgWyoqZGVsZXRlX2NvbnRyYWN0X2Fzc2V0KipdKGRvY3MvQ29udHJhY3RzQXBpLm1kI2RlbGV0ZV9jb250cmFjdF9hc3NldCkgfCAqKkRFTEVURSoqIC9jb250cmFjdHMve2NvbnRyYWN0SWR9L3thc3NldElkfSB8IERlbGV0ZSBhbiBhc3NldCBmcm9tIGEgd2hpdGVsaXN0ZWQgY29udHJhY3QKKkNvbnRyYWN0c0FwaSogfCBbKipnZXRfY29udHJhY3QqKl0oZG9jcy9Db250cmFjdHNBcGkubWQjZ2V0X2NvbnRyYWN0KSB8ICoqR0VUKiogL2NvbnRyYWN0cy97Y29udHJhY3RJZH0gfCBGaW5kIGEgU3BlY2lmaWMgV2hpdGVsaXN0ZWQgQ29udHJhY3QKKkNvbnRyYWN0c0FwaSogfCBbKipnZXRfY29udHJhY3RfYXNzZXQqKl0oZG9jcy9Db250cmFjdHNBcGkubWQjZ2V0X2NvbnRyYWN0X2Fzc2V0KSB8ICoqR0VUKiogL2NvbnRyYWN0cy97Y29udHJhY3RJZH0ve2Fzc2V0SWR9IHwgRmluZCBhIHdoaXRlbGlzdGVkIGNvbnRyYWN0JiMzOTtzIGFzc2V0CipDb250cmFjdHNBcGkqIHwgWyoqZ2V0X2NvbnRyYWN0cyoqXShkb2NzL0NvbnRyYWN0c0FwaS5tZCNnZXRfY29udHJhY3RzKSB8ICoqR0VUKiogL2NvbnRyYWN0cyB8IExpc3QgV2hpdGVsaXN0ZWQgQ29udHJhY3RzCipDb3NpZ25lcnNCZXRhQXBpKiB8IFsqKmFkZF9jb3NpZ25lcioqXShkb2NzL0Nvc2lnbmVyc0JldGFBcGkubWQjYWRkX2Nvc2lnbmVyKSB8ICoqUE9TVCoqIC9jb3NpZ25lcnMgfCBBZGQgY29zaWduZXIKKkNvc2lnbmVyc0JldGFBcGkqIHwgWyoqZ2V0X2FwaV9rZXkqKl0oZG9jcy9Db3NpZ25lcnNCZXRhQXBpLm1kI2dldF9hcGlfa2V5KSB8ICoqR0VUKiogL2Nvc2lnbmVycy97Y29zaWduZXJJZH0vYXBpX2tleXMve2FwaUtleUlkfSB8IEdldCBBUEkga2V5CipDb3NpZ25lcnNCZXRhQXBpKiB8IFsqKmdldF9hcGlfa2V5cyoqXShkb2NzL0Nvc2lnbmVyc0JldGFBcGkubWQjZ2V0X2FwaV9rZXlzKSB8ICoqR0VUKiogL2Nvc2lnbmVycy97Y29zaWduZXJJZH0vYXBpX2tleXMgfCBHZXQgYWxsIEFQSSBrZXlzCipDb3NpZ25lcnNCZXRhQXBpKiB8IFsqKmdldF9jb3NpZ25lcioqXShkb2NzL0Nvc2lnbmVyc0JldGFBcGkubWQjZ2V0X2Nvc2lnbmVyKSB8ICoqR0VUKiogL2Nvc2lnbmVycy97Y29zaWduZXJJZH0gfCBHZXQgY29zaWduZXIKKkNvc2lnbmVyc0JldGFBcGkqIHwgWyoqZ2V0X2Nvc2lnbmVycyoqXShkb2NzL0Nvc2lnbmVyc0JldGFBcGkubWQjZ2V0X2Nvc2lnbmVycykgfCAqKkdFVCoqIC9jb3NpZ25lcnMgfCBHZXQgYWxsIGNvc2lnbmVycwoqQ29zaWduZXJzQmV0YUFwaSogfCBbKipnZXRfcmVxdWVzdF9zdGF0dXMqKl0oZG9jcy9Db3NpZ25lcnNCZXRhQXBpLm1kI2dldF9yZXF1ZXN0X3N0YXR1cykgfCAqKkdFVCoqIC9jb3NpZ25lcnMve2Nvc2lnbmVySWR9L2FwaV9rZXlzL3thcGlLZXlJZH0ve3JlcXVlc3RJZH0gfCBHZXQgcmVxdWVzdCBzdGF0dXMKKkNvc2lnbmVyc0JldGFBcGkqIHwgWyoqcGFpcl9hcGlfa2V5KipdKGRvY3MvQ29zaWduZXJzQmV0YUFwaS5tZCNwYWlyX2FwaV9rZXkpIHwgKipQVVQqKiAvY29zaWduZXJzL3tjb3NpZ25lcklkfS9hcGlfa2V5cy97YXBpS2V5SWR9IHwgUGFpciBBUEkga2V5CipDb3NpZ25lcnNCZXRhQXBpKiB8IFsqKnJlbmFtZV9jb3NpZ25lcioqXShkb2NzL0Nvc2lnbmVyc0JldGFBcGkubWQjcmVuYW1lX2Nvc2lnbmVyKSB8ICoqUEFUQ0gqKiAvY29zaWduZXJzL3tjb3NpZ25lcklkfSB8IFJlbmFtZSBjb3NpZ25lcgoqQ29zaWduZXJzQmV0YUFwaSogfCBbKip1bnBhaXJfYXBpX2tleSoqXShkb2NzL0Nvc2lnbmVyc0JldGFBcGkubWQjdW5wYWlyX2FwaV9rZXkpIHwgKipERUxFVEUqKiAvY29zaWduZXJzL3tjb3NpZ25lcklkfS9hcGlfa2V5cy97YXBpS2V5SWR9IHwgVW5wYWlyIEFQSSBrZXkKKkNvc2lnbmVyc0JldGFBcGkqIHwgWyoqdXBkYXRlX2NhbGxiYWNrX2hhbmRsZXIqKl0oZG9jcy9Db3NpZ25lcnNCZXRhQXBpLm1kI3VwZGF0ZV9jYWxsYmFja19oYW5kbGVyKSB8ICoqUEFUQ0gqKiAvY29zaWduZXJzL3tjb3NpZ25lcklkfS9hcGlfa2V5cy97YXBpS2V5SWR9IHwgVXBkYXRlIEFQSSBrZXkgY2FsbGJhY2sgaGFuZGxlcgoqRGVwbG95ZWRDb250cmFjdHNBcGkqIHwgWyoqYWRkX2NvbnRyYWN0X2FiaSoqXShkb2NzL0RlcGxveWVkQ29udHJhY3RzQXBpLm1kI2FkZF9jb250cmFjdF9hYmkpIHwgKipQT1NUKiogL3Rva2VuaXphdGlvbi9jb250cmFjdHMvYWJpIHwgU2F2ZSBjb250cmFjdCBBQkkKKkRlcGxveWVkQ29udHJhY3RzQXBpKiB8IFsqKmZldGNoX2NvbnRyYWN0X2FiaSoqXShkb2NzL0RlcGxveWVkQ29udHJhY3RzQXBpLm1kI2ZldGNoX2NvbnRyYWN0X2FiaSkgfCAqKlBPU1QqKiAvdG9rZW5pemF0aW9uL2NvbnRyYWN0cy9mZXRjaF9hYmkgfCBGZXRjaCB0aGUgY29udHJhY3QgQUJJCipEZXBsb3llZENvbnRyYWN0c0FwaSogfCBbKipnZXRfZGVwbG95ZWRfY29udHJhY3RfYnlfYWRkcmVzcyoqXShkb2NzL0RlcGxveWVkQ29udHJhY3RzQXBpLm1kI2dldF9kZXBsb3llZF9jb250cmFjdF9ieV9hZGRyZXNzKSB8ICoqR0VUKiogL3Rva2VuaXphdGlvbi9jb250cmFjdHMve2Fzc2V0SWR9L3tjb250cmFjdEFkZHJlc3N9IHwgUmV0dXJuIGRlcGxveWVkIGNvbnRyYWN0IGRhdGEKKkRlcGxveWVkQ29udHJhY3RzQXBpKiB8IFsqKmdldF9kZXBsb3llZF9jb250cmFjdF9ieV9pZCoqXShkb2NzL0RlcGxveWVkQ29udHJhY3RzQXBpLm1kI2dldF9kZXBsb3llZF9jb250cmFjdF9ieV9pZCkgfCAqKkdFVCoqIC90b2tlbml6YXRpb24vY29udHJhY3RzL3tpZH0gfCBSZXR1cm4gZGVwbG95ZWQgY29udHJhY3QgZGF0YSBieSBpZAoqRGVwbG95ZWRDb250cmFjdHNBcGkqIHwgWyoqZ2V0X2RlcGxveWVkX2NvbnRyYWN0cyoqXShkb2NzL0RlcGxveWVkQ29udHJhY3RzQXBpLm1kI2dldF9kZXBsb3llZF9jb250cmFjdHMpIHwgKipHRVQqKiAvdG9rZW5pemF0aW9uL2NvbnRyYWN0cyB8IExpc3QgZGVwbG95ZWQgY29udHJhY3RzIGRhdGEKKkVtYmVkZGVkV2FsbGV0c0FwaSogfCBbKiphZGRfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0KipdKGRvY3MvRW1iZWRkZWRXYWxsZXRzQXBpLm1kI2FkZF9lbWJlZGRlZF93YWxsZXRfYXNzZXQpIHwgKipQT1NUKiogL25jdy93YWxsZXRzL3t3YWxsZXRJZH0vYWNjb3VudHMve2FjY291bnRJZH0vYXNzZXRzL3thc3NldElkfSB8IEFkZCBhc3NldCB0byBhY2NvdW50CipFbWJlZGRlZFdhbGxldHNBcGkqIHwgWyoqYXNzaWduX2VtYmVkZGVkX3dhbGxldCoqXShkb2NzL0VtYmVkZGVkV2FsbGV0c0FwaS5tZCNhc3NpZ25fZW1iZWRkZWRfd2FsbGV0KSB8ICoqUE9TVCoqIC9uY3cvd2FsbGV0cy97d2FsbGV0SWR9L2Fzc2lnbiB8IEFzc2lnbiBhIHdhbGxldAoqRW1iZWRkZWRXYWxsZXRzQXBpKiB8IFsqKmNyZWF0ZV9lbWJlZGRlZF93YWxsZXQqKl0oZG9jcy9FbWJlZGRlZFdhbGxldHNBcGkubWQjY3JlYXRlX2VtYmVkZGVkX3dhbGxldCkgfCAqKlBPU1QqKiAvbmN3L3dhbGxldHMgfCBDcmVhdGUgYSBuZXcgd2FsbGV0CipFbWJlZGRlZFdhbGxldHNBcGkqIHwgWyoqY3JlYXRlX2VtYmVkZGVkX3dhbGxldF9hY2NvdW50KipdKGRvY3MvRW1iZWRkZWRXYWxsZXRzQXBpLm1kI2NyZWF0ZV9lbWJlZGRlZF93YWxsZXRfYWNjb3VudCkgfCAqKlBPU1QqKiAvbmN3L3dhbGxldHMve3dhbGxldElkfS9hY2NvdW50cyB8IENyZWF0ZSBhIG5ldyBhY2NvdW50CipFbWJlZGRlZFdhbGxldHNBcGkqIHwgWyoqZ2V0X2VtYmVkZGVkX3dhbGxldCoqXShkb2NzL0VtYmVkZGVkV2FsbGV0c0FwaS5tZCNnZXRfZW1iZWRkZWRfd2FsbGV0KSB8ICoqR0VUKiogL25jdy93YWxsZXRzL3t3YWxsZXRJZH0gfCBHZXQgYSB3YWxsZXQKKkVtYmVkZGVkV2FsbGV0c0FwaSogfCBbKipnZXRfZW1iZWRkZWRfd2FsbGV0X2FjY291bnQqKl0oZG9jcy9FbWJlZGRlZFdhbGxldHNBcGkubWQjZ2V0X2VtYmVkZGVkX3dhbGxldF9hY2NvdW50KSB8ICoqR0VUKiogL25jdy93YWxsZXRzL3t3YWxsZXRJZH0vYWNjb3VudHMve2FjY291bnRJZH0gfCBHZXQgYSBhY2NvdW50CipFbWJlZGRlZFdhbGxldHNBcGkqIHwgWyoqZ2V0X2VtYmVkZGVkX3dhbGxldF9hZGRyZXNzZXMqKl0oZG9jcy9FbWJlZGRlZFdhbGxldHNBcGkubWQjZ2V0X2VtYmVkZGVkX3dhbGxldF9hZGRyZXNzZXMpIHwgKipHRVQqKiAvbmN3L3dhbGxldHMve3dhbGxldElkfS9hY2NvdW50cy97YWNjb3VudElkfS9hc3NldHMve2Fzc2V0SWR9L2FkZHJlc3NlcyB8IFJldHJpZXZlIGFzc2V0IGFkZHJlc3NlcwoqRW1iZWRkZWRXYWxsZXRzQXBpKiB8IFsqKmdldF9lbWJlZGRlZF93YWxsZXRfYXNzZXQqKl0oZG9jcy9FbWJlZGRlZFdhbGxldHNBcGkubWQjZ2V0X2VtYmVkZGVkX3dhbGxldF9hc3NldCkgfCAqKkdFVCoqIC9uY3cvd2FsbGV0cy97d2FsbGV0SWR9L2FjY291bnRzL3thY2NvdW50SWR9L2Fzc2V0cy97YXNzZXRJZH0gfCBSZXRyaWV2ZSBhc3NldAoqRW1iZWRkZWRXYWxsZXRzQXBpKiB8IFsqKmdldF9lbWJlZGRlZF93YWxsZXRfYXNzZXRfYmFsYW5jZSoqXShkb2NzL0VtYmVkZGVkV2FsbGV0c0FwaS5tZCNnZXRfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X2JhbGFuY2UpIHwgKipHRVQqKiAvbmN3L3dhbGxldHMve3dhbGxldElkfS9hY2NvdW50cy97YWNjb3VudElkfS9hc3NldHMve2Fzc2V0SWR9L2JhbGFuY2UgfCBSZXRyaWV2ZSBhc3NldCBiYWxhbmNlCipFbWJlZGRlZFdhbGxldHNBcGkqIHwgWyoqZ2V0X2VtYmVkZGVkX3dhbGxldF9hc3NldHMqKl0oZG9jcy9FbWJlZGRlZFdhbGxldHNBcGkubWQjZ2V0X2VtYmVkZGVkX3dhbGxldF9hc3NldHMpIHwgKipHRVQqKiAvbmN3L3dhbGxldHMve3dhbGxldElkfS9hY2NvdW50cy97YWNjb3VudElkfS9hc3NldHMgfCBSZXRyaWV2ZSBhc3NldHMKKkVtYmVkZGVkV2FsbGV0c0FwaSogfCBbKipnZXRfZW1iZWRkZWRfd2FsbGV0X2RldmljZSoqXShkb2NzL0VtYmVkZGVkV2FsbGV0c0FwaS5tZCNnZXRfZW1iZWRkZWRfd2FsbGV0X2RldmljZSkgfCAqKkdFVCoqIC9uY3cvd2FsbGV0cy97d2FsbGV0SWR9L2RldmljZXMve2RldmljZUlkfSB8IEdldCBFbWJlZGRlZCBXYWxsZXQgRGV2aWNlCipFbWJlZGRlZFdhbGxldHNBcGkqIHwgWyoqZ2V0X2VtYmVkZGVkX3dhbGxldF9kZXZpY2Vfc2V0dXBfc3RhdGUqKl0oZG9jcy9FbWJlZGRlZFdhbGxldHNBcGkubWQjZ2V0X2VtYmVkZGVkX3dhbGxldF9kZXZpY2Vfc2V0dXBfc3RhdGUpIHwgKipHRVQqKiAvbmN3L3dhbGxldHMve3dhbGxldElkfS9kZXZpY2VzL3tkZXZpY2VJZH0vc2V0dXBfc3RhdHVzIHwgR2V0IGRldmljZSBrZXkgc2V0dXAgc3RhdGUKKkVtYmVkZGVkV2FsbGV0c0FwaSogfCBbKipnZXRfZW1iZWRkZWRfd2FsbGV0X2RldmljZXNfcGFnaW5hdGVkKipdKGRvY3MvRW1iZWRkZWRXYWxsZXRzQXBpLm1kI2dldF9lbWJlZGRlZF93YWxsZXRfZGV2aWNlc19wYWdpbmF0ZWQpIHwgKipHRVQqKiAvbmN3L3dhbGxldHMve3dhbGxldElkfS9kZXZpY2VzX3BhZ2luYXRlZCB8IEdldCByZWdpc3RlcmVkIGRldmljZXMgLSBwYWdpbmF0ZWQKKkVtYmVkZGVkV2FsbGV0c0FwaSogfCBbKipnZXRfZW1iZWRkZWRfd2FsbGV0X2xhdGVzdF9iYWNrdXAqKl0oZG9jcy9FbWJlZGRlZFdhbGxldHNBcGkubWQjZ2V0X2VtYmVkZGVkX3dhbGxldF9sYXRlc3RfYmFja3VwKSB8ICoqR0VUKiogL25jdy93YWxsZXRzL3t3YWxsZXRJZH0vYmFja3VwL2xhdGVzdCB8IEdldCB3YWxsZXQgTGF0ZXN0IEJhY2t1cCBkZXRhaWxzCipFbWJlZGRlZFdhbGxldHNBcGkqIHwgWyoqZ2V0X2VtYmVkZGVkX3dhbGxldF9wdWJsaWNfa2V5X2luZm9fZm9yX2FkZHJlc3MqKl0oZG9jcy9FbWJlZGRlZFdhbGxldHNBcGkubWQjZ2V0X2VtYmVkZGVkX3dhbGxldF9wdWJsaWNfa2V5X2luZm9fZm9yX2FkZHJlc3MpIHwgKipHRVQqKiAvbmN3L3dhbGxldHMve3dhbGxldElkfS9hY2NvdW50cy97YWNjb3VudElkfS9hc3NldHMve2Fzc2V0SWR9L3tjaGFuZ2V9L3thZGRyZXNzSW5kZXh9L3B1YmxpY19rZXlfaW5mbyB8IEdldCB0aGUgcHVibGljIGtleSBvZiBhbiBhc3NldAoqRW1iZWRkZWRXYWxsZXRzQXBpKiB8IFsqKmdldF9lbWJlZGRlZF93YWxsZXRfc2V0dXBfc3RhdHVzKipdKGRvY3MvRW1iZWRkZWRXYWxsZXRzQXBpLm1kI2dldF9lbWJlZGRlZF93YWxsZXRfc2V0dXBfc3RhdHVzKSB8ICoqR0VUKiogL25jdy93YWxsZXRzL3t3YWxsZXRJZH0vc2V0dXBfc3RhdHVzIHwgR2V0IHdhbGxldCBrZXkgc2V0dXAgc3RhdGUKKkVtYmVkZGVkV2FsbGV0c0FwaSogfCBbKipnZXRfZW1iZWRkZWRfd2FsbGV0X3N1cHBvcnRlZF9hc3NldHMqKl0oZG9jcy9FbWJlZGRlZFdhbGxldHNBcGkubWQjZ2V0X2VtYmVkZGVkX3dhbGxldF9zdXBwb3J0ZWRfYXNzZXRzKSB8ICoqR0VUKiogL25jdy93YWxsZXRzL3N1cHBvcnRlZF9hc3NldHMgfCBSZXRyaWV2ZSBzdXBwb3J0ZWQgYXNzZXRzCipFbWJlZGRlZFdhbGxldHNBcGkqIHwgWyoqZ2V0X2VtYmVkZGVkX3dhbGxldHMqKl0oZG9jcy9FbWJlZGRlZFdhbGxldHNBcGkubWQjZ2V0X2VtYmVkZGVkX3dhbGxldHMpIHwgKipHRVQqKiAvbmN3L3dhbGxldHMgfCBMaXN0IHdhbGxldHMKKkVtYmVkZGVkV2FsbGV0c0FwaSogfCBbKipnZXRfcHVibGljX2tleV9pbmZvX25jdyoqXShkb2NzL0VtYmVkZGVkV2FsbGV0c0FwaS5tZCNnZXRfcHVibGljX2tleV9pbmZvX25jdykgfCAqKkdFVCoqIC9uY3cvd2FsbGV0cy97d2FsbGV0SWR9L3B1YmxpY19rZXlfaW5mbyB8IEdldCB0aGUgcHVibGljIGtleSBmb3IgYSBkZXJpdmF0aW9uIHBhdGgKKkVtYmVkZGVkV2FsbGV0c0FwaSogfCBbKipyZWZyZXNoX2VtYmVkZGVkX3dhbGxldF9hc3NldF9iYWxhbmNlKipdKGRvY3MvRW1iZWRkZWRXYWxsZXRzQXBpLm1kI3JlZnJlc2hfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X2JhbGFuY2UpIHwgKipQVVQqKiAvbmN3L3dhbGxldHMve3dhbGxldElkfS9hY2NvdW50cy97YWNjb3VudElkfS9hc3NldHMve2Fzc2V0SWR9L2JhbGFuY2UgfCBSZWZyZXNoIGFzc2V0IGJhbGFuY2UKKkVtYmVkZGVkV2FsbGV0c0FwaSogfCBbKip1cGRhdGVfZW1iZWRkZWRfd2FsbGV0X2RldmljZV9zdGF0dXMqKl0oZG9jcy9FbWJlZGRlZFdhbGxldHNBcGkubWQjdXBkYXRlX2VtYmVkZGVkX3dhbGxldF9kZXZpY2Vfc3RhdHVzKSB8ICoqUEFUQ0gqKiAvbmN3L3dhbGxldHMve3dhbGxldElkfS9kZXZpY2VzL3tkZXZpY2VJZH0vc3RhdHVzIHwgVXBkYXRlIGRldmljZSBzdGF0dXMKKkVtYmVkZGVkV2FsbGV0c0FwaSogfCBbKip1cGRhdGVfZW1iZWRkZWRfd2FsbGV0X3N0YXR1cyoqXShkb2NzL0VtYmVkZGVkV2FsbGV0c0FwaS5tZCN1cGRhdGVfZW1iZWRkZWRfd2FsbGV0X3N0YXR1cykgfCAqKlBBVENIKiogL25jdy93YWxsZXRzL3t3YWxsZXRJZH0vc3RhdHVzIHwgVXBkYXRlIHdhbGxldCBzdGF0dXMKKkV4Y2hhbmdlQWNjb3VudHNBcGkqIHwgWyoqYWRkX2V4Y2hhbmdlX2FjY291bnQqKl0oZG9jcy9FeGNoYW5nZUFjY291bnRzQXBpLm1kI2FkZF9leGNoYW5nZV9hY2NvdW50KSB8ICoqUE9TVCoqIC9leGNoYW5nZV9hY2NvdW50cyB8IEFkZCBhbiBleGNoYW5nZSBhY2NvdW50CipFeGNoYW5nZUFjY291bnRzQXBpKiB8IFsqKmNvbnZlcnRfYXNzZXRzKipdKGRvY3MvRXhjaGFuZ2VBY2NvdW50c0FwaS5tZCNjb252ZXJ0X2Fzc2V0cykgfCAqKlBPU1QqKiAvZXhjaGFuZ2VfYWNjb3VudHMve2V4Y2hhbmdlQWNjb3VudElkfS9jb252ZXJ0IHwgQ29udmVydCBleGNoYW5nZSBhY2NvdW50IGZ1bmRzCipFeGNoYW5nZUFjY291bnRzQXBpKiB8IFsqKmdldF9leGNoYW5nZV9hY2NvdW50KipdKGRvY3MvRXhjaGFuZ2VBY2NvdW50c0FwaS5tZCNnZXRfZXhjaGFuZ2VfYWNjb3VudCkgfCAqKkdFVCoqIC9leGNoYW5nZV9hY2NvdW50cy97ZXhjaGFuZ2VBY2NvdW50SWR9IHwgR2V0IGEgc3BlY2lmaWMgZXhjaGFuZ2UgYWNjb3VudAoqRXhjaGFuZ2VBY2NvdW50c0FwaSogfCBbKipnZXRfZXhjaGFuZ2VfYWNjb3VudF9hc3NldCoqXShkb2NzL0V4Y2hhbmdlQWNjb3VudHNBcGkubWQjZ2V0X2V4Y2hhbmdlX2FjY291bnRfYXNzZXQpIHwgKipHRVQqKiAvZXhjaGFuZ2VfYWNjb3VudHMve2V4Y2hhbmdlQWNjb3VudElkfS97YXNzZXRJZH0gfCBHZXQgYW4gYXNzZXQgZm9yIGFuIGV4Y2hhbmdlIGFjY291bnQKKkV4Y2hhbmdlQWNjb3VudHNBcGkqIHwgWyoqZ2V0X2V4Y2hhbmdlX2FjY291bnRzX2NyZWRlbnRpYWxzX3B1YmxpY19rZXkqKl0oZG9jcy9FeGNoYW5nZUFjY291bnRzQXBpLm1kI2dldF9leGNoYW5nZV9hY2NvdW50c19jcmVkZW50aWFsc19wdWJsaWNfa2V5KSB8ICoqR0VUKiogL2V4Y2hhbmdlX2FjY291bnRzL2NyZWRlbnRpYWxzX3B1YmxpY19rZXkgfCBHZXQgcHVibGljIGtleSB0byBlbmNyeXB0IGV4Y2hhbmdlIGNyZWRlbnRpYWxzCipFeGNoYW5nZUFjY291bnRzQXBpKiB8IFsqKmdldF9wYWdlZF9leGNoYW5nZV9hY2NvdW50cyoqXShkb2NzL0V4Y2hhbmdlQWNjb3VudHNBcGkubWQjZ2V0X3BhZ2VkX2V4Y2hhbmdlX2FjY291bnRzKSB8ICoqR0VUKiogL2V4Y2hhbmdlX2FjY291bnRzL3BhZ2VkIHwgTGlzdCBjb25uZWN0ZWQgZXhjaGFuZ2UgYWNjb3VudHMKKkV4Y2hhbmdlQWNjb3VudHNBcGkqIHwgWyoqaW50ZXJuYWxfdHJhbnNmZXIqKl0oZG9jcy9FeGNoYW5nZUFjY291bnRzQXBpLm1kI2ludGVybmFsX3RyYW5zZmVyKSB8ICoqUE9TVCoqIC9leGNoYW5nZV9hY2NvdW50cy97ZXhjaGFuZ2VBY2NvdW50SWR9L2ludGVybmFsX3RyYW5zZmVyIHwgSW50ZXJuYWwgdHJhbnNmZXIgZm9yIGV4Y2hhbmdlIGFjY291bnRzCipFeHRlcm5hbFdhbGxldHNBcGkqIHwgWyoqYWRkX2Fzc2V0X3RvX2V4dGVybmFsX3dhbGxldCoqXShkb2NzL0V4dGVybmFsV2FsbGV0c0FwaS5tZCNhZGRfYXNzZXRfdG9fZXh0ZXJuYWxfd2FsbGV0KSB8ICoqUE9TVCoqIC9leHRlcm5hbF93YWxsZXRzL3t3YWxsZXRJZH0ve2Fzc2V0SWR9IHwgQWRkIGFuIGFzc2V0IHRvIGFuIGV4dGVybmFsIHdhbGxldC4KKkV4dGVybmFsV2FsbGV0c0FwaSogfCBbKipjcmVhdGVfZXh0ZXJuYWxfd2FsbGV0KipdKGRvY3MvRXh0ZXJuYWxXYWxsZXRzQXBpLm1kI2NyZWF0ZV9leHRlcm5hbF93YWxsZXQpIHwgKipQT1NUKiogL2V4dGVybmFsX3dhbGxldHMgfCBDcmVhdGUgYW4gZXh0ZXJuYWwgd2FsbGV0CipFeHRlcm5hbFdhbGxldHNBcGkqIHwgWyoqZGVsZXRlX2V4dGVybmFsX3dhbGxldCoqXShkb2NzL0V4dGVybmFsV2FsbGV0c0FwaS5tZCNkZWxldGVfZXh0ZXJuYWxfd2FsbGV0KSB8ICoqREVMRVRFKiogL2V4dGVybmFsX3dhbGxldHMve3dhbGxldElkfSB8IERlbGV0ZSBhbiBleHRlcm5hbCB3YWxsZXQKKkV4dGVybmFsV2FsbGV0c0FwaSogfCBbKipnZXRfZXh0ZXJuYWxfd2FsbGV0KipdKGRvY3MvRXh0ZXJuYWxXYWxsZXRzQXBpLm1kI2dldF9leHRlcm5hbF93YWxsZXQpIHwgKipHRVQqKiAvZXh0ZXJuYWxfd2FsbGV0cy97d2FsbGV0SWR9IHwgRmluZCBhbiBleHRlcm5hbCB3YWxsZXQKKkV4dGVybmFsV2FsbGV0c0FwaSogfCBbKipnZXRfZXh0ZXJuYWxfd2FsbGV0X2Fzc2V0KipdKGRvY3MvRXh0ZXJuYWxXYWxsZXRzQXBpLm1kI2dldF9leHRlcm5hbF93YWxsZXRfYXNzZXQpIHwgKipHRVQqKiAvZXh0ZXJuYWxfd2FsbGV0cy97d2FsbGV0SWR9L3thc3NldElkfSB8IEdldCBhbiBhc3NldCBmcm9tIGFuIGV4dGVybmFsIHdhbGxldAoqRXh0ZXJuYWxXYWxsZXRzQXBpKiB8IFsqKmdldF9leHRlcm5hbF93YWxsZXRzKipdKGRvY3MvRXh0ZXJuYWxXYWxsZXRzQXBpLm1kI2dldF9leHRlcm5hbF93YWxsZXRzKSB8ICoqR0VUKiogL2V4dGVybmFsX3dhbGxldHMgfCBMaXN0IGV4dGVybmFsIHdhbGxldHMKKkV4dGVybmFsV2FsbGV0c0FwaSogfCBbKipyZW1vdmVfYXNzZXRfZnJvbV9leHRlcm5hbF93YWxsZXQqKl0oZG9jcy9FeHRlcm5hbFdhbGxldHNBcGkubWQjcmVtb3ZlX2Fzc2V0X2Zyb21fZXh0ZXJuYWxfd2FsbGV0KSB8ICoqREVMRVRFKiogL2V4dGVybmFsX3dhbGxldHMve3dhbGxldElkfS97YXNzZXRJZH0gfCBEZWxldGUgYW4gYXNzZXQgZnJvbSBhbiBleHRlcm5hbCB3YWxsZXQKKkV4dGVybmFsV2FsbGV0c0FwaSogfCBbKipzZXRfZXh0ZXJuYWxfd2FsbGV0X2N1c3RvbWVyX3JlZl9pZCoqXShkb2NzL0V4dGVybmFsV2FsbGV0c0FwaS5tZCNzZXRfZXh0ZXJuYWxfd2FsbGV0X2N1c3RvbWVyX3JlZl9pZCkgfCAqKlBPU1QqKiAvZXh0ZXJuYWxfd2FsbGV0cy97d2FsbGV0SWR9L3NldF9jdXN0b21lcl9yZWZfaWQgfCBTZXQgYW4gQU1MIGN1c3RvbWVyIHJlZmVyZW5jZSBJRCBmb3IgYW4gZXh0ZXJuYWwgd2FsbGV0CipGaWF0QWNjb3VudHNBcGkqIHwgWyoqZGVwb3NpdF9mdW5kc19mcm9tX2xpbmtlZF9kZGEqKl0oZG9jcy9GaWF0QWNjb3VudHNBcGkubWQjZGVwb3NpdF9mdW5kc19mcm9tX2xpbmtlZF9kZGEpIHwgKipQT1NUKiogL2ZpYXRfYWNjb3VudHMve2FjY291bnRJZH0vZGVwb3NpdF9mcm9tX2xpbmtlZF9kZGEgfCBEZXBvc2l0IGZ1bmRzIGZyb20gRERBCipGaWF0QWNjb3VudHNBcGkqIHwgWyoqZ2V0X2ZpYXRfYWNjb3VudCoqXShkb2NzL0ZpYXRBY2NvdW50c0FwaS5tZCNnZXRfZmlhdF9hY2NvdW50KSB8ICoqR0VUKiogL2ZpYXRfYWNjb3VudHMve2FjY291bnRJZH0gfCBGaW5kIGEgc3BlY2lmaWMgZmlhdCBhY2NvdW50CipGaWF0QWNjb3VudHNBcGkqIHwgWyoqZ2V0X2ZpYXRfYWNjb3VudHMqKl0oZG9jcy9GaWF0QWNjb3VudHNBcGkubWQjZ2V0X2ZpYXRfYWNjb3VudHMpIHwgKipHRVQqKiAvZmlhdF9hY2NvdW50cyB8IExpc3QgZmlhdCBhY2NvdW50cwoqRmlhdEFjY291bnRzQXBpKiB8IFsqKnJlZGVlbV9mdW5kc190b19saW5rZWRfZGRhKipdKGRvY3MvRmlhdEFjY291bnRzQXBpLm1kI3JlZGVlbV9mdW5kc190b19saW5rZWRfZGRhKSB8ICoqUE9TVCoqIC9maWF0X2FjY291bnRzL3thY2NvdW50SWR9L3JlZGVlbV90b19saW5rZWRfZGRhIHwgUmVkZWVtIGZ1bmRzIHRvIEREQQoqR2FzU3RhdGlvbnNBcGkqIHwgWyoqZ2V0X2dhc19zdGF0aW9uX2J5X2Fzc2V0X2lkKipdKGRvY3MvR2FzU3RhdGlvbnNBcGkubWQjZ2V0X2dhc19zdGF0aW9uX2J5X2Fzc2V0X2lkKSB8ICoqR0VUKiogL2dhc19zdGF0aW9uL3thc3NldElkfSB8IEdldCBnYXMgc3RhdGlvbiBzZXR0aW5ncyBieSBhc3NldAoqR2FzU3RhdGlvbnNBcGkqIHwgWyoqZ2V0X2dhc19zdGF0aW9uX2luZm8qKl0oZG9jcy9HYXNTdGF0aW9uc0FwaS5tZCNnZXRfZ2FzX3N0YXRpb25faW5mbykgfCAqKkdFVCoqIC9nYXNfc3RhdGlvbiB8IEdldCBnYXMgc3RhdGlvbiBzZXR0aW5ncwoqR2FzU3RhdGlvbnNBcGkqIHwgWyoqdXBkYXRlX2dhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb24qKl0oZG9jcy9HYXNTdGF0aW9uc0FwaS5tZCN1cGRhdGVfZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbikgfCAqKlBVVCoqIC9nYXNfc3RhdGlvbi9jb25maWd1cmF0aW9uIHwgRWRpdCBnYXMgc3RhdGlvbiBzZXR0aW5ncwoqR2FzU3RhdGlvbnNBcGkqIHwgWyoqdXBkYXRlX2dhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25fYnlfYXNzZXRfaWQqKl0oZG9jcy9HYXNTdGF0aW9uc0FwaS5tZCN1cGRhdGVfZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbl9ieV9hc3NldF9pZCkgfCAqKlBVVCoqIC9nYXNfc3RhdGlvbi9jb25maWd1cmF0aW9uL3thc3NldElkfSB8IEVkaXQgZ2FzIHN0YXRpb24gc2V0dGluZ3MgZm9yIGFuIGFzc2V0CipJbnRlcm5hbFdhbGxldHNBcGkqIHwgWyoqY3JlYXRlX2ludGVybmFsX3dhbGxldCoqXShkb2NzL0ludGVybmFsV2FsbGV0c0FwaS5tZCNjcmVhdGVfaW50ZXJuYWxfd2FsbGV0KSB8ICoqUE9TVCoqIC9pbnRlcm5hbF93YWxsZXRzIHwgQ3JlYXRlIGFuIGludGVybmFsIHdhbGxldAoqSW50ZXJuYWxXYWxsZXRzQXBpKiB8IFsqKmNyZWF0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXQqKl0oZG9jcy9JbnRlcm5hbFdhbGxldHNBcGkubWQjY3JlYXRlX2ludGVybmFsX3dhbGxldF9hc3NldCkgfCAqKlBPU1QqKiAvaW50ZXJuYWxfd2FsbGV0cy97d2FsbGV0SWR9L3thc3NldElkfSB8IEFkZCBhbiBhc3NldCB0byBhbiBpbnRlcm5hbCB3YWxsZXQKKkludGVybmFsV2FsbGV0c0FwaSogfCBbKipkZWxldGVfaW50ZXJuYWxfd2FsbGV0KipdKGRvY3MvSW50ZXJuYWxXYWxsZXRzQXBpLm1kI2RlbGV0ZV9pbnRlcm5hbF93YWxsZXQpIHwgKipERUxFVEUqKiAvaW50ZXJuYWxfd2FsbGV0cy97d2FsbGV0SWR9IHwgRGVsZXRlIGFuIGludGVybmFsIHdhbGxldAoqSW50ZXJuYWxXYWxsZXRzQXBpKiB8IFsqKmRlbGV0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXQqKl0oZG9jcy9JbnRlcm5hbFdhbGxldHNBcGkubWQjZGVsZXRlX2ludGVybmFsX3dhbGxldF9hc3NldCkgfCAqKkRFTEVURSoqIC9pbnRlcm5hbF93YWxsZXRzL3t3YWxsZXRJZH0ve2Fzc2V0SWR9IHwgRGVsZXRlIGEgd2hpdGVsaXN0ZWQgYWRkcmVzcwoqSW50ZXJuYWxXYWxsZXRzQXBpKiB8IFsqKmdldF9pbnRlcm5hbF93YWxsZXQqKl0oZG9jcy9JbnRlcm5hbFdhbGxldHNBcGkubWQjZ2V0X2ludGVybmFsX3dhbGxldCkgfCAqKkdFVCoqIC9pbnRlcm5hbF93YWxsZXRzL3t3YWxsZXRJZH0gfCBHZXQgYXNzZXRzIGZvciBpbnRlcm5hbCB3YWxsZXQKKkludGVybmFsV2FsbGV0c0FwaSogfCBbKipnZXRfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0KipdKGRvY3MvSW50ZXJuYWxXYWxsZXRzQXBpLm1kI2dldF9pbnRlcm5hbF93YWxsZXRfYXNzZXQpIHwgKipHRVQqKiAvaW50ZXJuYWxfd2FsbGV0cy97d2FsbGV0SWR9L3thc3NldElkfSB8IEdldCBhbiBhc3NldCBmcm9tIGFuIGludGVybmFsIHdhbGxldAoqSW50ZXJuYWxXYWxsZXRzQXBpKiB8IFsqKmdldF9pbnRlcm5hbF93YWxsZXRfYXNzZXRzX3BhZ2luYXRlZCoqXShkb2NzL0ludGVybmFsV2FsbGV0c0FwaS5tZCNnZXRfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0c19wYWdpbmF0ZWQpIHwgKipHRVQqKiAvaW50ZXJuYWxfd2FsbGV0cy97d2FsbGV0SWR9L2Fzc2V0cyB8IExpc3QgYXNzZXRzIGluIGFuIGludGVybmFsIHdhbGxldCAoUGFnaW5hdGVkKQoqSW50ZXJuYWxXYWxsZXRzQXBpKiB8IFsqKmdldF9pbnRlcm5hbF93YWxsZXRzKipdKGRvY3MvSW50ZXJuYWxXYWxsZXRzQXBpLm1kI2dldF9pbnRlcm5hbF93YWxsZXRzKSB8ICoqR0VUKiogL2ludGVybmFsX3dhbGxldHMgfCBMaXN0IGludGVybmFsIHdhbGxldHMKKkludGVybmFsV2FsbGV0c0FwaSogfCBbKipzZXRfY3VzdG9tZXJfcmVmX2lkX2Zvcl9pbnRlcm5hbF93YWxsZXQqKl0oZG9jcy9JbnRlcm5hbFdhbGxldHNBcGkubWQjc2V0X2N1c3RvbWVyX3JlZl9pZF9mb3JfaW50ZXJuYWxfd2FsbGV0KSB8ICoqUE9TVCoqIC9pbnRlcm5hbF93YWxsZXRzL3t3YWxsZXRJZH0vc2V0X2N1c3RvbWVyX3JlZl9pZCB8IFNldCBhbiBBTUwvS1lUIGN1c3RvbWVyIHJlZmVyZW5jZSBJRCBmb3IgaW50ZXJuYWwgd2FsbGV0CipLZXlMaW5rQmV0YUFwaSogfCBbKipjcmVhdGVfc2lnbmluZ19rZXkqKl0oZG9jcy9LZXlMaW5rQmV0YUFwaS5tZCNjcmVhdGVfc2lnbmluZ19rZXkpIHwgKipQT1NUKiogL2tleV9saW5rL3NpZ25pbmdfa2V5cyB8IEFkZCBhIG5ldyBzaWduaW5nIGtleQoqS2V5TGlua0JldGFBcGkqIHwgWyoqY3JlYXRlX3ZhbGlkYXRpb25fa2V5KipdKGRvY3MvS2V5TGlua0JldGFBcGkubWQjY3JlYXRlX3ZhbGlkYXRpb25fa2V5KSB8ICoqUE9TVCoqIC9rZXlfbGluay92YWxpZGF0aW9uX2tleXMgfCBBZGQgYSBuZXcgdmFsaWRhdGlvbiBrZXkKKktleUxpbmtCZXRhQXBpKiB8IFsqKmRpc2FibGVfdmFsaWRhdGlvbl9rZXkqKl0oZG9jcy9LZXlMaW5rQmV0YUFwaS5tZCNkaXNhYmxlX3ZhbGlkYXRpb25fa2V5KSB8ICoqUEFUQ0gqKiAva2V5X2xpbmsvdmFsaWRhdGlvbl9rZXlzL3trZXlJZH0gfCBEaXNhYmxlcyBhIHZhbGlkYXRpb24ga2V5CipLZXlMaW5rQmV0YUFwaSogfCBbKipnZXRfc2lnbmluZ19rZXkqKl0oZG9jcy9LZXlMaW5rQmV0YUFwaS5tZCNnZXRfc2lnbmluZ19rZXkpIHwgKipHRVQqKiAva2V5X2xpbmsvc2lnbmluZ19rZXlzL3trZXlJZH0gfCBHZXQgYSBzaWduaW5nIGtleSBieSAmI3g2MDtrZXlJZCYjeDYwOwoqS2V5TGlua0JldGFBcGkqIHwgWyoqZ2V0X3NpZ25pbmdfa2V5c19saXN0KipdKGRvY3MvS2V5TGlua0JldGFBcGkubWQjZ2V0X3NpZ25pbmdfa2V5c19saXN0KSB8ICoqR0VUKiogL2tleV9saW5rL3NpZ25pbmdfa2V5cyB8IEdldCBsaXN0IG9mIHNpZ25pbmcga2V5cwoqS2V5TGlua0JldGFBcGkqIHwgWyoqZ2V0X3ZhbGlkYXRpb25fa2V5KipdKGRvY3MvS2V5TGlua0JldGFBcGkubWQjZ2V0X3ZhbGlkYXRpb25fa2V5KSB8ICoqR0VUKiogL2tleV9saW5rL3ZhbGlkYXRpb25fa2V5cy97a2V5SWR9IHwgR2V0IGEgdmFsaWRhdGlvbiBrZXkgYnkgJiN4NjA7a2V5SWQmI3g2MDsKKktleUxpbmtCZXRhQXBpKiB8IFsqKmdldF92YWxpZGF0aW9uX2tleXNfbGlzdCoqXShkb2NzL0tleUxpbmtCZXRhQXBpLm1kI2dldF92YWxpZGF0aW9uX2tleXNfbGlzdCkgfCAqKkdFVCoqIC9rZXlfbGluay92YWxpZGF0aW9uX2tleXMgfCBHZXQgbGlzdCBvZiByZWdpc3RlcmVkIHZhbGlkYXRpb24ga2V5cwoqS2V5TGlua0JldGFBcGkqIHwgWyoqc2V0X2FnZW50X2lkKipdKGRvY3MvS2V5TGlua0JldGFBcGkubWQjc2V0X2FnZW50X2lkKSB8ICoqUEFUQ0gqKiAva2V5X2xpbmsvc2lnbmluZ19rZXlzL3trZXlJZH0vYWdlbnRfdXNlcl9pZCB8IFNldCBhZ2VudCB1c2VyIGlkCipLZXlMaW5rQmV0YUFwaSogfCBbKip1cGRhdGVfc2lnbmluZ19rZXkqKl0oZG9jcy9LZXlMaW5rQmV0YUFwaS5tZCN1cGRhdGVfc2lnbmluZ19rZXkpIHwgKipQQVRDSCoqIC9rZXlfbGluay9zaWduaW5nX2tleXMve2tleUlkfSB8IE1vZGlmeSB0aGUgc2lnbmluZyBrZXlJZAoqS2V5c0JldGFBcGkqIHwgWyoqZ2V0X21wY19rZXlzX2xpc3QqKl0oZG9jcy9LZXlzQmV0YUFwaS5tZCNnZXRfbXBjX2tleXNfbGlzdCkgfCAqKkdFVCoqIC9rZXlzL21wYy9saXN0IHwgR2V0IGxpc3Qgb2YgbXBjIGtleXMKKktleXNCZXRhQXBpKiB8IFsqKmdldF9tcGNfa2V5c19saXN0X2J5X3VzZXIqKl0oZG9jcy9LZXlzQmV0YUFwaS5tZCNnZXRfbXBjX2tleXNfbGlzdF9ieV91c2VyKSB8ICoqR0VUKiogL2tleXMvbXBjL2xpc3Qve3VzZXJJZH0gfCBHZXQgbGlzdCBvZiBtcGMga2V5cyBieSAmI3g2MDt1c2VySWQmI3g2MDsKKk5GVHNBcGkqIHwgWyoqZ2V0X25mdCoqXShkb2NzL05GVHNBcGkubWQjZ2V0X25mdCkgfCAqKkdFVCoqIC9uZnRzL3Rva2Vucy97aWR9IHwgTGlzdCB0b2tlbiBkYXRhIGJ5IElECipORlRzQXBpKiB8IFsqKmdldF9uZnRzKipdKGRvY3MvTkZUc0FwaS5tZCNnZXRfbmZ0cykgfCAqKkdFVCoqIC9uZnRzL3Rva2VucyB8IExpc3QgdG9rZW5zIGJ5IElEcwoqTkZUc0FwaSogfCBbKipnZXRfb3duZXJzaGlwX3Rva2VucyoqXShkb2NzL05GVHNBcGkubWQjZ2V0X293bmVyc2hpcF90b2tlbnMpIHwgKipHRVQqKiAvbmZ0cy9vd25lcnNoaXAvdG9rZW5zIHwgTGlzdCBhbGwgb3duZWQgdG9rZW5zIChwYWdpbmF0ZWQpCipORlRzQXBpKiB8IFsqKmxpc3Rfb3duZWRfY29sbGVjdGlvbnMqKl0oZG9jcy9ORlRzQXBpLm1kI2xpc3Rfb3duZWRfY29sbGVjdGlvbnMpIHwgKipHRVQqKiAvbmZ0cy9vd25lcnNoaXAvY29sbGVjdGlvbnMgfCBMaXN0IG93bmVkIGNvbGxlY3Rpb25zIChwYWdpbmF0ZWQpCipORlRzQXBpKiB8IFsqKmxpc3Rfb3duZWRfdG9rZW5zKipdKGRvY3MvTkZUc0FwaS5tZCNsaXN0X293bmVkX3Rva2VucykgfCAqKkdFVCoqIC9uZnRzL293bmVyc2hpcC9hc3NldHMgfCBMaXN0IGFsbCBkaXN0aW5jdCBvd25lZCB0b2tlbnMgKHBhZ2luYXRlZCkKKk5GVHNBcGkqIHwgWyoqcmVmcmVzaF9uZnRfbWV0YWRhdGEqKl0oZG9jcy9ORlRzQXBpLm1kI3JlZnJlc2hfbmZ0X21ldGFkYXRhKSB8ICoqUFVUKiogL25mdHMvdG9rZW5zL3tpZH0gfCBSZWZyZXNoIHRva2VuIG1ldGFkYXRhCipORlRzQXBpKiB8IFsqKnVwZGF0ZV9vd25lcnNoaXBfdG9rZW5zKipdKGRvY3MvTkZUc0FwaS5tZCN1cGRhdGVfb3duZXJzaGlwX3Rva2VucykgfCAqKlBVVCoqIC9uZnRzL293bmVyc2hpcC90b2tlbnMgfCBSZWZyZXNoIHZhdWx0IGFjY291bnQgdG9rZW5zCipORlRzQXBpKiB8IFsqKnVwZGF0ZV90b2tlbl9vd25lcnNoaXBfc3RhdHVzKipdKGRvY3MvTkZUc0FwaS5tZCN1cGRhdGVfdG9rZW5fb3duZXJzaGlwX3N0YXR1cykgfCAqKlBVVCoqIC9uZnRzL293bmVyc2hpcC90b2tlbnMve2lkfS9zdGF0dXMgfCBVcGRhdGUgdG9rZW4gb3duZXJzaGlwIHN0YXR1cwoqTkZUc0FwaSogfCBbKip1cGRhdGVfdG9rZW5zX293bmVyc2hpcF9zcGFtKipdKGRvY3MvTkZUc0FwaS5tZCN1cGRhdGVfdG9rZW5zX293bmVyc2hpcF9zcGFtKSB8ICoqUFVUKiogL25mdHMvb3duZXJzaGlwL3Rva2Vucy9zcGFtIHwgVXBkYXRlIHRva2VucyBvd25lcnNoaXAgc3BhbSBwcm9wZXJ0eQoqTkZUc0FwaSogfCBbKip1cGRhdGVfdG9rZW5zX293bmVyc2hpcF9zdGF0dXMqKl0oZG9jcy9ORlRzQXBpLm1kI3VwZGF0ZV90b2tlbnNfb3duZXJzaGlwX3N0YXR1cykgfCAqKlBVVCoqIC9uZnRzL293bmVyc2hpcC90b2tlbnMvc3RhdHVzIHwgVXBkYXRlIHRva2VucyBvd25lcnNoaXAgc3RhdHVzCipOZXR3b3JrQ29ubmVjdGlvbnNBcGkqIHwgWyoqY2hlY2tfdGhpcmRfcGFydHlfcm91dGluZyoqXShkb2NzL05ldHdvcmtDb25uZWN0aW9uc0FwaS5tZCNjaGVja190aGlyZF9wYXJ0eV9yb3V0aW5nKSB8ICoqR0VUKiogL25ldHdvcmtfY29ubmVjdGlvbnMve2Nvbm5lY3Rpb25JZH0vaXNfdGhpcmRfcGFydHlfcm91dGluZy97YXNzZXRUeXBlfSB8IFJldHJpZXZlIHRoaXJkLXBhcnR5IG5ldHdvcmsgcm91dGluZyB2YWxpZGF0aW9uCipOZXR3b3JrQ29ubmVjdGlvbnNBcGkqIHwgWyoqY3JlYXRlX25ldHdvcmtfY29ubmVjdGlvbioqXShkb2NzL05ldHdvcmtDb25uZWN0aW9uc0FwaS5tZCNjcmVhdGVfbmV0d29ya19jb25uZWN0aW9uKSB8ICoqUE9TVCoqIC9uZXR3b3JrX2Nvbm5lY3Rpb25zIHwgQ3JlYXRlIGEgbmV3IG5ldHdvcmsgY29ubmVjdGlvbgoqTmV0d29ya0Nvbm5lY3Rpb25zQXBpKiB8IFsqKmNyZWF0ZV9uZXR3b3JrX2lkKipdKGRvY3MvTmV0d29ya0Nvbm5lY3Rpb25zQXBpLm1kI2NyZWF0ZV9uZXR3b3JrX2lkKSB8ICoqUE9TVCoqIC9uZXR3b3JrX2lkcyB8IENyZWF0ZXMgYSBuZXcgTmV0d29yayBJRAoqTmV0d29ya0Nvbm5lY3Rpb25zQXBpKiB8IFsqKmRlbGV0ZV9uZXR3b3JrX2Nvbm5lY3Rpb24qKl0oZG9jcy9OZXR3b3JrQ29ubmVjdGlvbnNBcGkubWQjZGVsZXRlX25ldHdvcmtfY29ubmVjdGlvbikgfCAqKkRFTEVURSoqIC9uZXR3b3JrX2Nvbm5lY3Rpb25zL3tjb25uZWN0aW9uSWR9IHwgRGVsZXRlIGEgbmV0d29yayBjb25uZWN0aW9uIGJ5IElECipOZXR3b3JrQ29ubmVjdGlvbnNBcGkqIHwgWyoqZGVsZXRlX25ldHdvcmtfaWQqKl0oZG9jcy9OZXR3b3JrQ29ubmVjdGlvbnNBcGkubWQjZGVsZXRlX25ldHdvcmtfaWQpIHwgKipERUxFVEUqKiAvbmV0d29ya19pZHMve25ldHdvcmtJZH0gfCBEZWxldGUgc3BlY2lmaWMgbmV0d29yayBJRC4KKk5ldHdvcmtDb25uZWN0aW9uc0FwaSogfCBbKipnZXRfbmV0d29yayoqXShkb2NzL05ldHdvcmtDb25uZWN0aW9uc0FwaS5tZCNnZXRfbmV0d29yaykgfCAqKkdFVCoqIC9uZXR3b3JrX2Nvbm5lY3Rpb25zL3tjb25uZWN0aW9uSWR9IHwgR2V0IGEgbmV0d29yayBjb25uZWN0aW9uCipOZXR3b3JrQ29ubmVjdGlvbnNBcGkqIHwgWyoqZ2V0X25ldHdvcmtfY29ubmVjdGlvbnMqKl0oZG9jcy9OZXR3b3JrQ29ubmVjdGlvbnNBcGkubWQjZ2V0X25ldHdvcmtfY29ubmVjdGlvbnMpIHwgKipHRVQqKiAvbmV0d29ya19jb25uZWN0aW9ucyB8IExpc3QgbmV0d29yayBjb25uZWN0aW9ucwoqTmV0d29ya0Nvbm5lY3Rpb25zQXBpKiB8IFsqKmdldF9uZXR3b3JrX2lkKipdKGRvY3MvTmV0d29ya0Nvbm5lY3Rpb25zQXBpLm1kI2dldF9uZXR3b3JrX2lkKSB8ICoqR0VUKiogL25ldHdvcmtfaWRzL3tuZXR3b3JrSWR9IHwgUmV0dXJuIHNwZWNpZmljIG5ldHdvcmsgSUQuCipOZXR3b3JrQ29ubmVjdGlvbnNBcGkqIHwgWyoqZ2V0X25ldHdvcmtfaWRzKipdKGRvY3MvTmV0d29ya0Nvbm5lY3Rpb25zQXBpLm1kI2dldF9uZXR3b3JrX2lkcykgfCAqKkdFVCoqIC9uZXR3b3JrX2lkcyB8IEdldCBhbGwgbmV0d29yayBJRHMKKk5ldHdvcmtDb25uZWN0aW9uc0FwaSogfCBbKipnZXRfcm91dGluZ19wb2xpY3lfYXNzZXRfZ3JvdXBzKipdKGRvY3MvTmV0d29ya0Nvbm5lY3Rpb25zQXBpLm1kI2dldF9yb3V0aW5nX3BvbGljeV9hc3NldF9ncm91cHMpIHwgKipHRVQqKiAvbmV0d29ya19pZHMvcm91dGluZ19wb2xpY3lfYXNzZXRfZ3JvdXBzIHwgUmV0dXJuIGFsbCBlbmFibGVkIHJvdXRpbmcgcG9saWN5IGFzc2V0IGdyb3VwcwoqTmV0d29ya0Nvbm5lY3Rpb25zQXBpKiB8IFsqKnNlYXJjaF9uZXR3b3JrX2lkcyoqXShkb2NzL05ldHdvcmtDb25uZWN0aW9uc0FwaS5tZCNzZWFyY2hfbmV0d29ya19pZHMpIHwgKipHRVQqKiAvbmV0d29ya19pZHMvc2VhcmNoIHwgR2V0IGJvdGggbG9jYWwgSURzIGFuZCBkaXNjb3ZlcmFibGUgcmVtb3RlIElEcwoqTmV0d29ya0Nvbm5lY3Rpb25zQXBpKiB8IFsqKnNldF9uZXR3b3JrX2lkX2Rpc2NvdmVyYWJpbGl0eSoqXShkb2NzL05ldHdvcmtDb25uZWN0aW9uc0FwaS5tZCNzZXRfbmV0d29ya19pZF9kaXNjb3ZlcmFiaWxpdHkpIHwgKipQQVRDSCoqIC9uZXR3b3JrX2lkcy97bmV0d29ya0lkfS9zZXRfZGlzY292ZXJhYmlsaXR5IHwgVXBkYXRlIG5ldHdvcmsgSUQmIzM5O3MgZGlzY292ZXJhYmlsaXR5LgoqTmV0d29ya0Nvbm5lY3Rpb25zQXBpKiB8IFsqKnNldF9uZXR3b3JrX2lkX25hbWUqKl0oZG9jcy9OZXR3b3JrQ29ubmVjdGlvbnNBcGkubWQjc2V0X25ldHdvcmtfaWRfbmFtZSkgfCAqKlBBVENIKiogL25ldHdvcmtfaWRzL3tuZXR3b3JrSWR9L3NldF9uYW1lIHwgVXBkYXRlIG5ldHdvcmsgSUQmIzM5O3MgbmFtZS4KKk5ldHdvcmtDb25uZWN0aW9uc0FwaSogfCBbKipzZXRfbmV0d29ya19pZF9yb3V0aW5nX3BvbGljeSoqXShkb2NzL05ldHdvcmtDb25uZWN0aW9uc0FwaS5tZCNzZXRfbmV0d29ya19pZF9yb3V0aW5nX3BvbGljeSkgfCAqKlBBVENIKiogL25ldHdvcmtfaWRzL3tuZXR3b3JrSWR9L3NldF9yb3V0aW5nX3BvbGljeSB8IFVwZGF0ZSBuZXR3b3JrIGlkIHJvdXRpbmcgcG9saWN5LgoqTmV0d29ya0Nvbm5lY3Rpb25zQXBpKiB8IFsqKnNldF9yb3V0aW5nX3BvbGljeSoqXShkb2NzL05ldHdvcmtDb25uZWN0aW9uc0FwaS5tZCNzZXRfcm91dGluZ19wb2xpY3kpIHwgKipQQVRDSCoqIC9uZXR3b3JrX2Nvbm5lY3Rpb25zL3tjb25uZWN0aW9uSWR9L3NldF9yb3V0aW5nX3BvbGljeSB8IFVwZGF0ZSBuZXR3b3JrIGNvbm5lY3Rpb24gcm91dGluZyBwb2xpY3kuCipPVEFCZXRhQXBpKiB8IFsqKmdldF9vdGFfc3RhdHVzKipdKGRvY3MvT1RBQmV0YUFwaS5tZCNnZXRfb3RhX3N0YXR1cykgfCAqKkdFVCoqIC9tYW5hZ2VtZW50L290YSB8IFJldHVybnMgY3VycmVudCBPVEEgc3RhdHVzCipPVEFCZXRhQXBpKiB8IFsqKnNldF9vdGFfc3RhdHVzKipdKGRvY3MvT1RBQmV0YUFwaS5tZCNzZXRfb3RhX3N0YXR1cykgfCAqKlBVVCoqIC9tYW5hZ2VtZW50L290YSB8IEVuYWJsZSBvciBkaXNhYmxlIHRyYW5zYWN0aW9ucyB0byBPVEEKKk9mZkV4Y2hhbmdlc0FwaSogfCBbKiphZGRfb2ZmX2V4Y2hhbmdlKipdKGRvY3MvT2ZmRXhjaGFuZ2VzQXBpLm1kI2FkZF9vZmZfZXhjaGFuZ2UpIHwgKipQT1NUKiogL29mZl9leGNoYW5nZS9hZGQgfCBBZGQgQ29sbGF0ZXJhbAoqT2ZmRXhjaGFuZ2VzQXBpKiB8IFsqKmdldF9vZmZfZXhjaGFuZ2VfY29sbGF0ZXJhbF9hY2NvdW50cyoqXShkb2NzL09mZkV4Y2hhbmdlc0FwaS5tZCNnZXRfb2ZmX2V4Y2hhbmdlX2NvbGxhdGVyYWxfYWNjb3VudHMpIHwgKipHRVQqKiAvb2ZmX2V4Y2hhbmdlL2NvbGxhdGVyYWxfYWNjb3VudHMve21haW5FeGNoYW5nZUFjY291bnRJZH0gfCBGaW5kIGEgc3BlY2lmaWMgY29sbGF0ZXJhbCBleGNoYW5nZSBhY2NvdW50CipPZmZFeGNoYW5nZXNBcGkqIHwgWyoqZ2V0X29mZl9leGNoYW5nZV9zZXR0bGVtZW50X3RyYW5zYWN0aW9ucyoqXShkb2NzL09mZkV4Y2hhbmdlc0FwaS5tZCNnZXRfb2ZmX2V4Y2hhbmdlX3NldHRsZW1lbnRfdHJhbnNhY3Rpb25zKSB8ICoqR0VUKiogL29mZl9leGNoYW5nZS9zZXR0bGVtZW50cy90cmFuc2FjdGlvbnMgfCBHZXQgU2V0dGxlbWVudHMgVHJhbnNhY3Rpb25zCipPZmZFeGNoYW5nZXNBcGkqIHwgWyoqcmVtb3ZlX29mZl9leGNoYW5nZSoqXShkb2NzL09mZkV4Y2hhbmdlc0FwaS5tZCNyZW1vdmVfb2ZmX2V4Y2hhbmdlKSB8ICoqUE9TVCoqIC9vZmZfZXhjaGFuZ2UvcmVtb3ZlIHwgUmVtb3ZlIENvbGxhdGVyYWwKKk9mZkV4Y2hhbmdlc0FwaSogfCBbKipzZXR0bGVfb2ZmX2V4Y2hhbmdlX3RyYWRlcyoqXShkb2NzL09mZkV4Y2hhbmdlc0FwaS5tZCNzZXR0bGVfb2ZmX2V4Y2hhbmdlX3RyYWRlcykgfCAqKlBPU1QqKiAvb2ZmX2V4Y2hhbmdlL3NldHRsZW1lbnRzL3RyYWRlciB8IENyZWF0ZSBTZXR0bGVtZW50IGZvciBhIFRyYWRlcgoqT25jaGFpbkRhdGFBcGkqIHwgWyoqZ2V0X2FjY2Vzc19yZWdpc3RyeV9jdXJyZW50X3N0YXRlKipdKGRvY3MvT25jaGFpbkRhdGFBcGkubWQjZ2V0X2FjY2Vzc19yZWdpc3RyeV9jdXJyZW50X3N0YXRlKSB8ICoqR0VUKiogL29uY2hhaW5fZGF0YS9iYXNlX2Fzc2V0X2lkL3tiYXNlQXNzZXRJZH0vYWNjZXNzX3JlZ2lzdHJ5X2FkZHJlc3Mve2FjY2Vzc1JlZ2lzdHJ5QWRkcmVzc30vbGlzdCB8IEdldCB0aGUgY3VycmVudCBzdGF0ZSBvZiBhZGRyZXNzZXMgaW4gYW4gYWNjZXNzIHJlZ2lzdHJ5CipPbmNoYWluRGF0YUFwaSogfCBbKipnZXRfYWNjZXNzX3JlZ2lzdHJ5X3N1bW1hcnkqKl0oZG9jcy9PbmNoYWluRGF0YUFwaS5tZCNnZXRfYWNjZXNzX3JlZ2lzdHJ5X3N1bW1hcnkpIHwgKipHRVQqKiAvb25jaGFpbl9kYXRhL2Jhc2VfYXNzZXRfaWQve2Jhc2VBc3NldElkfS9hY2Nlc3NfcmVnaXN0cnlfYWRkcmVzcy97YWNjZXNzUmVnaXN0cnlBZGRyZXNzfS9zdW1tYXJ5IHwgU3VtbWFyeSBvZiBhY2Nlc3MgcmVnaXN0cnkgc3RhdGUKKk9uY2hhaW5EYXRhQXBpKiB8IFsqKmdldF9hY3RpdmVfcm9sZXNfZm9yX2NvbnRyYWN0KipdKGRvY3MvT25jaGFpbkRhdGFBcGkubWQjZ2V0X2FjdGl2ZV9yb2xlc19mb3JfY29udHJhY3QpIHwgKipHRVQqKiAvb25jaGFpbl9kYXRhL2Jhc2VfYXNzZXRfaWQve2Jhc2VBc3NldElkfS9jb250cmFjdF9hZGRyZXNzL3tjb250cmFjdEFkZHJlc3N9L3JvbGVzIHwgTGlzdCBvZiBhY3RpdmUgcm9sZXMgZm9yIGEgZ2l2ZW4gY29udHJhY3QgYWRkcmVzcyBhbmQgYmFzZSBhc3NldCBJRAoqT25jaGFpbkRhdGFBcGkqIHwgWyoqZ2V0X2NvbnRyYWN0X2JhbGFuY2VfaGlzdG9yeSoqXShkb2NzL09uY2hhaW5EYXRhQXBpLm1kI2dldF9jb250cmFjdF9iYWxhbmNlX2hpc3RvcnkpIHwgKipHRVQqKiAvb25jaGFpbl9kYXRhL2Jhc2VfYXNzZXRfaWQve2Jhc2VBc3NldElkfS9jb250cmFjdF9hZGRyZXNzL3tjb250cmFjdEFkZHJlc3N9L2FjY291bnRfYWRkcmVzcy97YWNjb3VudEFkZHJlc3N9L2JhbGFuY2VfaGlzdG9yeSB8IEdldCBoaXN0b3JpY2FsIGJhbGFuY2UgZGF0YSBmb3IgYSBzcGVjaWZpYyBhY2NvdW50IGluIGEgY29udHJhY3QKKk9uY2hhaW5EYXRhQXBpKiB8IFsqKmdldF9jb250cmFjdF9iYWxhbmNlc19zdW1tYXJ5KipdKGRvY3MvT25jaGFpbkRhdGFBcGkubWQjZ2V0X2NvbnRyYWN0X2JhbGFuY2VzX3N1bW1hcnkpIHwgKipHRVQqKiAvb25jaGFpbl9kYXRhL2Jhc2VfYXNzZXRfaWQve2Jhc2VBc3NldElkfS9jb250cmFjdF9hZGRyZXNzL3tjb250cmFjdEFkZHJlc3N9L3N1bW1hcnkgfCBHZXQgc3VtbWFyeSBmb3IgdGhlIHRva2VuIGNvbnRyYWN0CipPbmNoYWluRGF0YUFwaSogfCBbKipnZXRfY29udHJhY3RfdG90YWxfc3VwcGx5KipdKGRvY3MvT25jaGFpbkRhdGFBcGkubWQjZ2V0X2NvbnRyYWN0X3RvdGFsX3N1cHBseSkgfCAqKkdFVCoqIC9vbmNoYWluX2RhdGEvYmFzZV9hc3NldF9pZC97YmFzZUFzc2V0SWR9L2NvbnRyYWN0X2FkZHJlc3Mve2NvbnRyYWN0QWRkcmVzc30vdG90YWxfc3VwcGx5IHwgR2V0IGhpc3RvcmljYWwgdG90YWwgc3VwcGx5IGRhdGEgZm9yIGEgY29udHJhY3QKKk9uY2hhaW5EYXRhQXBpKiB8IFsqKmdldF9sYXRlc3RfYmFsYW5jZXNfZm9yX2NvbnRyYWN0KipdKGRvY3MvT25jaGFpbkRhdGFBcGkubWQjZ2V0X2xhdGVzdF9iYWxhbmNlc19mb3JfY29udHJhY3QpIHwgKipHRVQqKiAvb25jaGFpbl9kYXRhL2Jhc2VfYXNzZXRfaWQve2Jhc2VBc3NldElkfS9jb250cmFjdF9hZGRyZXNzL3tjb250cmFjdEFkZHJlc3N9L2JhbGFuY2VzIHwgR2V0IGxhdGVzdCBiYWxhbmNlcyBmb3IgYWxsIGFkZHJlc3NlcyBob2xkaW5nIHRva2VucyBmcm9tIGEgY29udHJhY3QKKk9uY2hhaW5EYXRhQXBpKiB8IFsqKmdldF9vbmNoYWluX3RyYW5zYWN0aW9ucyoqXShkb2NzL09uY2hhaW5EYXRhQXBpLm1kI2dldF9vbmNoYWluX3RyYW5zYWN0aW9ucykgfCAqKkdFVCoqIC9vbmNoYWluX2RhdGEvYmFzZV9hc3NldF9pZC97YmFzZUFzc2V0SWR9L2NvbnRyYWN0X2FkZHJlc3Mve2NvbnRyYWN0QWRkcmVzc30vdHJhbnNhY3Rpb25zIHwgRmV0Y2ggb25jaGFpbiB0cmFuc2FjdGlvbnMgZm9yIGEgY29udHJhY3QKKlBheW1lbnRzUGF5b3V0QXBpKiB8IFsqKmNyZWF0ZV9wYXlvdXQqKl0oZG9jcy9QYXltZW50c1BheW91dEFwaS5tZCNjcmVhdGVfcGF5b3V0KSB8ICoqUE9TVCoqIC9wYXltZW50cy9wYXlvdXQgfCBDcmVhdGUgYSBwYXlvdXQgaW5zdHJ1Y3Rpb24gc2V0CipQYXltZW50c1BheW91dEFwaSogfCBbKipleGVjdXRlX3BheW91dF9hY3Rpb24qKl0oZG9jcy9QYXltZW50c1BheW91dEFwaS5tZCNleGVjdXRlX3BheW91dF9hY3Rpb24pIHwgKipQT1NUKiogL3BheW1lbnRzL3BheW91dC97cGF5b3V0SWR9L2FjdGlvbnMvZXhlY3V0ZSB8IEV4ZWN1dGUgYSBwYXlvdXQgaW5zdHJ1Y3Rpb24gc2V0CipQYXltZW50c1BheW91dEFwaSogfCBbKipnZXRfcGF5b3V0KipdKGRvY3MvUGF5bWVudHNQYXlvdXRBcGkubWQjZ2V0X3BheW91dCkgfCAqKkdFVCoqIC9wYXltZW50cy9wYXlvdXQve3BheW91dElkfSB8IEdldCB0aGUgc3RhdHVzIG9mIGEgcGF5b3V0IGluc3RydWN0aW9uIHNldAoqUG9saWN5RWRpdG9yVjJCZXRhQXBpKiB8IFsqKmdldF9hY3RpdmVfcG9saWN5KipdKGRvY3MvUG9saWN5RWRpdG9yVjJCZXRhQXBpLm1kI2dldF9hY3RpdmVfcG9saWN5KSB8ICoqR0VUKiogL3BvbGljeS9hY3RpdmVfcG9saWN5IHwgR2V0IHRoZSBhY3RpdmUgcG9saWN5IGFuZCBpdHMgdmFsaWRhdGlvbiBieSBwb2xpY3kgdHlwZQoqUG9saWN5RWRpdG9yVjJCZXRhQXBpKiB8IFsqKmdldF9kcmFmdCoqXShkb2NzL1BvbGljeUVkaXRvclYyQmV0YUFwaS5tZCNnZXRfZHJhZnQpIHwgKipHRVQqKiAvcG9saWN5L2RyYWZ0IHwgR2V0IHRoZSBhY3RpdmUgZHJhZnQgYnkgcG9saWN5IHR5cGUKKlBvbGljeUVkaXRvclYyQmV0YUFwaSogfCBbKipwdWJsaXNoX2RyYWZ0KipdKGRvY3MvUG9saWN5RWRpdG9yVjJCZXRhQXBpLm1kI3B1Ymxpc2hfZHJhZnQpIHwgKipQT1NUKiogL3BvbGljeS9kcmFmdCB8IFNlbmQgcHVibGlzaCByZXF1ZXN0IGZvciBhIGNlcnRhaW4gZHJhZnQgaWQKKlBvbGljeUVkaXRvclYyQmV0YUFwaSogfCBbKip1cGRhdGVfZHJhZnQqKl0oZG9jcy9Qb2xpY3lFZGl0b3JWMkJldGFBcGkubWQjdXBkYXRlX2RyYWZ0KSB8ICoqUFVUKiogL3BvbGljeS9kcmFmdCB8IFVwZGF0ZSB0aGUgZHJhZnQgd2l0aCBhIG5ldyBzZXQgb2YgcnVsZXMgYnkgcG9saWN5IHR5cGVzCipQb2xpY3lFZGl0b3JCZXRhQXBpKiB8IFsqKmdldF9hY3RpdmVfcG9saWN5X2xlZ2FjeSoqXShkb2NzL1BvbGljeUVkaXRvckJldGFBcGkubWQjZ2V0X2FjdGl2ZV9wb2xpY3lfbGVnYWN5KSB8ICoqR0VUKiogL3RhcC9hY3RpdmVfcG9saWN5IHwgR2V0IHRoZSBhY3RpdmUgcG9saWN5IGFuZCBpdHMgdmFsaWRhdGlvbgoqUG9saWN5RWRpdG9yQmV0YUFwaSogfCBbKipnZXRfZHJhZnRfbGVnYWN5KipdKGRvY3MvUG9saWN5RWRpdG9yQmV0YUFwaS5tZCNnZXRfZHJhZnRfbGVnYWN5KSB8ICoqR0VUKiogL3RhcC9kcmFmdCB8IEdldCB0aGUgYWN0aXZlIGRyYWZ0CipQb2xpY3lFZGl0b3JCZXRhQXBpKiB8IFsqKnB1Ymxpc2hfZHJhZnRfbGVnYWN5KipdKGRvY3MvUG9saWN5RWRpdG9yQmV0YUFwaS5tZCNwdWJsaXNoX2RyYWZ0X2xlZ2FjeSkgfCAqKlBPU1QqKiAvdGFwL2RyYWZ0IHwgU2VuZCBwdWJsaXNoIHJlcXVlc3QgZm9yIGEgY2VydGFpbiBkcmFmdCBpZAoqUG9saWN5RWRpdG9yQmV0YUFwaSogfCBbKipwdWJsaXNoX3BvbGljeV9ydWxlcyoqXShkb2NzL1BvbGljeUVkaXRvckJldGFBcGkubWQjcHVibGlzaF9wb2xpY3lfcnVsZXMpIHwgKipQT1NUKiogL3RhcC9wdWJsaXNoIHwgU2VuZCBwdWJsaXNoIHJlcXVlc3QgZm9yIGEgc2V0IG9mIHBvbGljeSBydWxlcwoqUG9saWN5RWRpdG9yQmV0YUFwaSogfCBbKip1cGRhdGVfZHJhZnRfbGVnYWN5KipdKGRvY3MvUG9saWN5RWRpdG9yQmV0YUFwaS5tZCN1cGRhdGVfZHJhZnRfbGVnYWN5KSB8ICoqUFVUKiogL3RhcC9kcmFmdCB8IFVwZGF0ZSB0aGUgZHJhZnQgd2l0aCBhIG5ldyBzZXQgb2YgcnVsZXMKKlJlc2V0RGV2aWNlQXBpKiB8IFsqKnJlc2V0X2RldmljZSoqXShkb2NzL1Jlc2V0RGV2aWNlQXBpLm1kI3Jlc2V0X2RldmljZSkgfCAqKlBPU1QqKiAvbWFuYWdlbWVudC91c2Vycy97aWR9L3Jlc2V0X2RldmljZSB8IFJlc2V0cyBkZXZpY2UKKlNtYXJ0VHJhbnNmZXJBcGkqIHwgWyoqYXBwcm92ZV9kdl9wX3RpY2tldF90ZXJtKipdKGRvY3MvU21hcnRUcmFuc2ZlckFwaS5tZCNhcHByb3ZlX2R2X3BfdGlja2V0X3Rlcm0pIHwgKipQVVQqKiAvc21hcnRfdHJhbnNmZXJzL3t0aWNrZXRJZH0vdGVybXMve3Rlcm1JZH0vZHZwL2FwcHJvdmUgfCBTZXQgZnVuZGluZyBzb3VyY2UgYW5kIGFwcHJvdmFsCipTbWFydFRyYW5zZmVyQXBpKiB8IFsqKmNhbmNlbF90aWNrZXQqKl0oZG9jcy9TbWFydFRyYW5zZmVyQXBpLm1kI2NhbmNlbF90aWNrZXQpIHwgKipQVVQqKiAvc21hcnQtdHJhbnNmZXJzL3t0aWNrZXRJZH0vY2FuY2VsIHwgQ2FuY2VsIFRpY2tldAoqU21hcnRUcmFuc2ZlckFwaSogfCBbKipjcmVhdGVfdGlja2V0KipdKGRvY3MvU21hcnRUcmFuc2ZlckFwaS5tZCNjcmVhdGVfdGlja2V0KSB8ICoqUE9TVCoqIC9zbWFydC10cmFuc2ZlcnMgfCBDcmVhdGUgVGlja2V0CipTbWFydFRyYW5zZmVyQXBpKiB8IFsqKmNyZWF0ZV90aWNrZXRfdGVybSoqXShkb2NzL1NtYXJ0VHJhbnNmZXJBcGkubWQjY3JlYXRlX3RpY2tldF90ZXJtKSB8ICoqUE9TVCoqIC9zbWFydC10cmFuc2ZlcnMve3RpY2tldElkfS90ZXJtcyB8IENyZWF0ZSBsZWcgKHRlcm0pCipTbWFydFRyYW5zZmVyQXBpKiB8IFsqKmZpbmRfdGlja2V0X2J5X2lkKipdKGRvY3MvU21hcnRUcmFuc2ZlckFwaS5tZCNmaW5kX3RpY2tldF9ieV9pZCkgfCAqKkdFVCoqIC9zbWFydC10cmFuc2ZlcnMve3RpY2tldElkfSB8IFNlYXJjaCBUaWNrZXQgYnkgSUQKKlNtYXJ0VHJhbnNmZXJBcGkqIHwgWyoqZmluZF90aWNrZXRfdGVybV9ieV9pZCoqXShkb2NzL1NtYXJ0VHJhbnNmZXJBcGkubWQjZmluZF90aWNrZXRfdGVybV9ieV9pZCkgfCAqKkdFVCoqIC9zbWFydC10cmFuc2ZlcnMve3RpY2tldElkfS90ZXJtcy97dGVybUlkfSB8IEdldCBTbWFydCBUcmFuc2ZlciB0aWNrZXQgdGVybQoqU21hcnRUcmFuc2ZlckFwaSogfCBbKipmdWxmaWxsX3RpY2tldCoqXShkb2NzL1NtYXJ0VHJhbnNmZXJBcGkubWQjZnVsZmlsbF90aWNrZXQpIHwgKipQVVQqKiAvc21hcnQtdHJhbnNmZXJzL3t0aWNrZXRJZH0vZnVsZmlsbCB8IEZ1bmQgdGlja2V0IG1hbnVhbGx5CipTbWFydFRyYW5zZmVyQXBpKiB8IFsqKmZ1bmRfZHZwX3RpY2tldCoqXShkb2NzL1NtYXJ0VHJhbnNmZXJBcGkubWQjZnVuZF9kdnBfdGlja2V0KSB8ICoqUFVUKiogL3NtYXJ0X3RyYW5zZmVycy97dGlja2V0SWR9L2R2cC9mdW5kIHwgRnVuZCBkdnAgdGlja2V0CipTbWFydFRyYW5zZmVyQXBpKiB8IFsqKmZ1bmRfdGlja2V0X3Rlcm0qKl0oZG9jcy9TbWFydFRyYW5zZmVyQXBpLm1kI2Z1bmRfdGlja2V0X3Rlcm0pIHwgKipQVVQqKiAvc21hcnQtdHJhbnNmZXJzL3t0aWNrZXRJZH0vdGVybXMve3Rlcm1JZH0vZnVuZCB8IERlZmluZSBmdW5kaW5nIHNvdXJjZQoqU21hcnRUcmFuc2ZlckFwaSogfCBbKipnZXRfc21hcnRfdHJhbnNmZXJfc3RhdGlzdGljKipdKGRvY3MvU21hcnRUcmFuc2ZlckFwaS5tZCNnZXRfc21hcnRfdHJhbnNmZXJfc3RhdGlzdGljKSB8ICoqR0VUKiogL3NtYXJ0X3RyYW5zZmVycy9zdGF0aXN0aWMgfCBHZXQgc21hcnQgdHJhbnNmZXJzIHN0YXRpc3RpYwoqU21hcnRUcmFuc2ZlckFwaSogfCBbKipnZXRfc21hcnRfdHJhbnNmZXJfdXNlcl9ncm91cHMqKl0oZG9jcy9TbWFydFRyYW5zZmVyQXBpLm1kI2dldF9zbWFydF90cmFuc2Zlcl91c2VyX2dyb3VwcykgfCAqKkdFVCoqIC9zbWFydC10cmFuc2ZlcnMvc2V0dGluZ3MvdXNlci1ncm91cHMgfCBHZXQgdXNlciBncm91cAoqU21hcnRUcmFuc2ZlckFwaSogfCBbKiptYW51YWxseV9mdW5kX3RpY2tldF90ZXJtKipdKGRvY3MvU21hcnRUcmFuc2ZlckFwaS5tZCNtYW51YWxseV9mdW5kX3RpY2tldF90ZXJtKSB8ICoqUFVUKiogL3NtYXJ0LXRyYW5zZmVycy97dGlja2V0SWR9L3Rlcm1zL3t0ZXJtSWR9L21hbnVhbGx5LWZ1bmQgfCBNYW51YWxseSBhZGQgdGVybSB0cmFuc2FjdGlvbgoqU21hcnRUcmFuc2ZlckFwaSogfCBbKipyZW1vdmVfdGlja2V0X3Rlcm0qKl0oZG9jcy9TbWFydFRyYW5zZmVyQXBpLm1kI3JlbW92ZV90aWNrZXRfdGVybSkgfCAqKkRFTEVURSoqIC9zbWFydC10cmFuc2ZlcnMve3RpY2tldElkfS90ZXJtcy97dGVybUlkfSB8IERlbGV0ZSB0aWNrZXQgbGVnICh0ZXJtKQoqU21hcnRUcmFuc2ZlckFwaSogfCBbKipzZWFyY2hfdGlja2V0cyoqXShkb2NzL1NtYXJ0VHJhbnNmZXJBcGkubWQjc2VhcmNoX3RpY2tldHMpIHwgKipHRVQqKiAvc21hcnQtdHJhbnNmZXJzIHwgRmluZCBUaWNrZXQKKlNtYXJ0VHJhbnNmZXJBcGkqIHwgWyoqc2V0X2V4dGVybmFsX3JlZl9pZCoqXShkb2NzL1NtYXJ0VHJhbnNmZXJBcGkubWQjc2V0X2V4dGVybmFsX3JlZl9pZCkgfCAqKlBVVCoqIC9zbWFydC10cmFuc2ZlcnMve3RpY2tldElkfS9leHRlcm5hbC1pZCB8IEFkZCBleHRlcm5hbCByZWYuIElECipTbWFydFRyYW5zZmVyQXBpKiB8IFsqKnNldF90aWNrZXRfZXhwaXJhdGlvbioqXShkb2NzL1NtYXJ0VHJhbnNmZXJBcGkubWQjc2V0X3RpY2tldF9leHBpcmF0aW9uKSB8ICoqUFVUKiogL3NtYXJ0LXRyYW5zZmVycy97dGlja2V0SWR9L2V4cGlyZXMtaW4gfCBTZXQgZXhwaXJhdGlvbgoqU21hcnRUcmFuc2ZlckFwaSogfCBbKipzZXRfdXNlcl9ncm91cHMqKl0oZG9jcy9TbWFydFRyYW5zZmVyQXBpLm1kI3NldF91c2VyX2dyb3VwcykgfCAqKlBPU1QqKiAvc21hcnQtdHJhbnNmZXJzL3NldHRpbmdzL3VzZXItZ3JvdXBzIHwgU2V0IHVzZXIgZ3JvdXAKKlNtYXJ0VHJhbnNmZXJBcGkqIHwgWyoqc3VibWl0X3RpY2tldCoqXShkb2NzL1NtYXJ0VHJhbnNmZXJBcGkubWQjc3VibWl0X3RpY2tldCkgfCAqKlBVVCoqIC9zbWFydC10cmFuc2ZlcnMve3RpY2tldElkfS9zdWJtaXQgfCBTdWJtaXQgdGlja2V0CipTbWFydFRyYW5zZmVyQXBpKiB8IFsqKnVwZGF0ZV90aWNrZXRfdGVybSoqXShkb2NzL1NtYXJ0VHJhbnNmZXJBcGkubWQjdXBkYXRlX3RpY2tldF90ZXJtKSB8ICoqUFVUKiogL3NtYXJ0LXRyYW5zZmVycy97dGlja2V0SWR9L3Rlcm1zL3t0ZXJtSWR9IHwgVXBkYXRlIHRpY2tldCBsZWcgKHRlcm0pCipTdGFraW5nQXBpKiB8IFsqKmFwcHJvdmVfdGVybXNfb2Zfc2VydmljZV9ieV9wcm92aWRlcl9pZCoqXShkb2NzL1N0YWtpbmdBcGkubWQjYXBwcm92ZV90ZXJtc19vZl9zZXJ2aWNlX2J5X3Byb3ZpZGVyX2lkKSB8ICoqUE9TVCoqIC9zdGFraW5nL3Byb3ZpZGVycy97cHJvdmlkZXJJZH0vYXBwcm92ZVRlcm1zT2ZTZXJ2aWNlIHwgQXBwcm92ZSBwcm92aWRlciB0ZXJtcyBvZiBzZXJ2aWNlCipTdGFraW5nQXBpKiB8IFsqKmNsYWltX3Jld2FyZHMqKl0oZG9jcy9TdGFraW5nQXBpLm1kI2NsYWltX3Jld2FyZHMpIHwgKipQT1NUKiogL3N0YWtpbmcvY2hhaW5zL3tjaGFpbkRlc2NyaXB0b3J9L2NsYWltX3Jld2FyZHMgfCBDbGFpbSBhY2NydWVkIHJld2FyZHMKKlN0YWtpbmdBcGkqIHwgWyoqY29uc29saWRhdGUqKl0oZG9jcy9TdGFraW5nQXBpLm1kI2NvbnNvbGlkYXRlKSB8ICoqUE9TVCoqIC9zdGFraW5nL2NoYWlucy97Y2hhaW5EZXNjcmlwdG9yfS9jb25zb2xpZGF0ZSB8IENvbnNvbGlkYXRlIHN0YWtpbmcgcG9zaXRpb25zIChFVEggdmFsaWRhdG9yIGNvbnNvbGlkYXRpb24pCipTdGFraW5nQXBpKiB8IFsqKmdldF9hbGxfZGVsZWdhdGlvbnMqKl0oZG9jcy9TdGFraW5nQXBpLm1kI2dldF9hbGxfZGVsZWdhdGlvbnMpIHwgKipHRVQqKiAvc3Rha2luZy9wb3NpdGlvbnMgfCBMaXN0IHN0YWtpbmcgcG9zaXRpb25zCipTdGFraW5nQXBpKiB8IFsqKmdldF9jaGFpbl9pbmZvKipdKGRvY3MvU3Rha2luZ0FwaS5tZCNnZXRfY2hhaW5faW5mbykgfCAqKkdFVCoqIC9zdGFraW5nL2NoYWlucy97Y2hhaW5EZXNjcmlwdG9yfS9jaGFpbkluZm8gfCBHZXQgY2hhaW4tbGV2ZWwgc3Rha2luZyBwYXJhbWV0ZXJzCipTdGFraW5nQXBpKiB8IFsqKmdldF9jaGFpbnMqKl0oZG9jcy9TdGFraW5nQXBpLm1kI2dldF9jaGFpbnMpIHwgKipHRVQqKiAvc3Rha2luZy9jaGFpbnMgfCBMaXN0IHN1cHBvcnRlZCBzdGFraW5nIGNoYWlucwoqU3Rha2luZ0FwaSogfCBbKipnZXRfZGVsZWdhdGlvbl9ieV9pZCoqXShkb2NzL1N0YWtpbmdBcGkubWQjZ2V0X2RlbGVnYXRpb25fYnlfaWQpIHwgKipHRVQqKiAvc3Rha2luZy9wb3NpdGlvbnMve2lkfSB8IEdldCBwb3NpdGlvbiBkZXRhaWxzCipTdGFraW5nQXBpKiB8IFsqKmdldF9wb3NpdGlvbnMqKl0oZG9jcy9TdGFraW5nQXBpLm1kI2dldF9wb3NpdGlvbnMpIHwgKipHRVQqKiAvc3Rha2luZy9wb3NpdGlvbnNfcGFnaW5hdGVkIHwgTGlzdCBzdGFraW5nIHBvc2l0aW9ucyAoUGFnaW5hdGVkKQoqU3Rha2luZ0FwaSogfCBbKipnZXRfcHJvdmlkZXJzKipdKGRvY3MvU3Rha2luZ0FwaS5tZCNnZXRfcHJvdmlkZXJzKSB8ICoqR0VUKiogL3N0YWtpbmcvcHJvdmlkZXJzIHwgTGlzdCBzdGFraW5nIHByb3ZpZGVycwoqU3Rha2luZ0FwaSogfCBbKipnZXRfc3VtbWFyeSoqXShkb2NzL1N0YWtpbmdBcGkubWQjZ2V0X3N1bW1hcnkpIHwgKipHRVQqKiAvc3Rha2luZy9wb3NpdGlvbnMvc3VtbWFyeSB8IEdldCBwb3NpdGlvbnMgc3VtbWFyeQoqU3Rha2luZ0FwaSogfCBbKipnZXRfc3VtbWFyeV9ieV92YXVsdCoqXShkb2NzL1N0YWtpbmdBcGkubWQjZ2V0X3N1bW1hcnlfYnlfdmF1bHQpIHwgKipHRVQqKiAvc3Rha2luZy9wb3NpdGlvbnMvc3VtbWFyeS92YXVsdHMgfCBHZXQgcG9zaXRpb25zIHN1bW1hcnkgYnkgdmF1bHQKKlN0YWtpbmdBcGkqIHwgWyoqbWVyZ2Vfc3Rha2VfYWNjb3VudHMqKl0oZG9jcy9TdGFraW5nQXBpLm1kI21lcmdlX3N0YWtlX2FjY291bnRzKSB8ICoqUE9TVCoqIC9zdGFraW5nL2NoYWlucy97Y2hhaW5EZXNjcmlwdG9yfS9tZXJnZSB8IE1lcmdlIHN0YWtpbmcgcG9zaXRpb25zCipTdGFraW5nQXBpKiB8IFsqKnNwbGl0KipdKGRvY3MvU3Rha2luZ0FwaS5tZCNzcGxpdCkgfCAqKlBPU1QqKiAvc3Rha2luZy9jaGFpbnMve2NoYWluRGVzY3JpcHRvcn0vc3BsaXQgfCBTcGxpdCBhIHN0YWtpbmcgcG9zaXRpb24KKlN0YWtpbmdBcGkqIHwgWyoqc3Rha2UqKl0oZG9jcy9TdGFraW5nQXBpLm1kI3N0YWtlKSB8ICoqUE9TVCoqIC9zdGFraW5nL2NoYWlucy97Y2hhaW5EZXNjcmlwdG9yfS9zdGFrZSB8IEluaXRpYXRlIG9yIGFkZCB0byBleGlzdGluZyBzdGFrZQoqU3Rha2luZ0FwaSogfCBbKip1bnN0YWtlKipdKGRvY3MvU3Rha2luZ0FwaS5tZCN1bnN0YWtlKSB8ICoqUE9TVCoqIC9zdGFraW5nL2NoYWlucy97Y2hhaW5EZXNjcmlwdG9yfS91bnN0YWtlIHwgSW5pdGlhdGUgdW5zdGFrZQoqU3Rha2luZ0FwaSogfCBbKip3aXRoZHJhdyoqXShkb2NzL1N0YWtpbmdBcGkubWQjd2l0aGRyYXcpIHwgKipQT1NUKiogL3N0YWtpbmcvY2hhaW5zL3tjaGFpbkRlc2NyaXB0b3J9L3dpdGhkcmF3IHwgV2l0aGRyYXcgc3Rha2VkIGZ1bmRzCipUUkxpbmtBcGkqIHwgWyoqYXNzZXNzX3RyX2xpbmtfdHJhdmVsX3J1bGVfcmVxdWlyZW1lbnQqKl0oZG9jcy9UUkxpbmtBcGkubWQjYXNzZXNzX3RyX2xpbmtfdHJhdmVsX3J1bGVfcmVxdWlyZW1lbnQpIHwgKipQT1NUKiogL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL2ludGVncmF0aW9uL3tjdXN0b21lckludGVncmF0aW9uSWR9L3RybS9hc3Nlc3MgfCBBc3Nlc3MgVHJhdmVsIFJ1bGUgcmVxdWlyZW1lbnQKKlRSTGlua0FwaSogfCBbKipjYW5jZWxfdHJfbGlua190cm0qKl0oZG9jcy9UUkxpbmtBcGkubWQjY2FuY2VsX3RyX2xpbmtfdHJtKSB8ICoqUE9TVCoqIC9zY3JlZW5pbmcvdHJsaW5rL2N1c3RvbWVycy9pbnRlZ3JhdGlvbi97Y3VzdG9tZXJJbnRlZ3JhdGlvbklkfS90cm0ve3RybUlkfS9jYW5jZWwgfCBDYW5jZWwgVHJhdmVsIFJ1bGUgTWVzc2FnZQoqVFJMaW5rQXBpKiB8IFsqKmNvbm5lY3RfdHJfbGlua19pbnRlZ3JhdGlvbioqXShkb2NzL1RSTGlua0FwaS5tZCNjb25uZWN0X3RyX2xpbmtfaW50ZWdyYXRpb24pIHwgKipQVVQqKiAvc2NyZWVuaW5nL3RybGluay9jdXN0b21lcnMvaW50ZWdyYXRpb24ve2N1c3RvbWVySW50ZWdyYXRpb25JZH0gfCBDb25uZWN0IGN1c3RvbWVyIGludGVncmF0aW9uCipUUkxpbmtBcGkqIHwgWyoqY3JlYXRlX3RyX2xpbmtfY3VzdG9tZXIqKl0oZG9jcy9UUkxpbmtBcGkubWQjY3JlYXRlX3RyX2xpbmtfY3VzdG9tZXIpIHwgKipQT1NUKiogL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzIHwgQ3JlYXRlIGN1c3RvbWVyCipUUkxpbmtBcGkqIHwgWyoqY3JlYXRlX3RyX2xpbmtfaW50ZWdyYXRpb24qKl0oZG9jcy9UUkxpbmtBcGkubWQjY3JlYXRlX3RyX2xpbmtfaW50ZWdyYXRpb24pIHwgKipQT1NUKiogL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL2ludGVncmF0aW9uIHwgQ3JlYXRlIGN1c3RvbWVyIGludGVncmF0aW9uCipUUkxpbmtBcGkqIHwgWyoqY3JlYXRlX3RyX2xpbmtfdHJtKipdKGRvY3MvVFJMaW5rQXBpLm1kI2NyZWF0ZV90cl9saW5rX3RybSkgfCAqKlBPU1QqKiAvc2NyZWVuaW5nL3RybGluay9jdXN0b21lcnMvaW50ZWdyYXRpb24ve2N1c3RvbWVySW50ZWdyYXRpb25JZH0vdHJtIHwgQ3JlYXRlIFRyYXZlbCBSdWxlIE1lc3NhZ2UKKlRSTGlua0FwaSogfCBbKipkZWxldGVfdHJfbGlua19jdXN0b21lcioqXShkb2NzL1RSTGlua0FwaS5tZCNkZWxldGVfdHJfbGlua19jdXN0b21lcikgfCAqKkRFTEVURSoqIC9zY3JlZW5pbmcvdHJsaW5rL2N1c3RvbWVycy97Y3VzdG9tZXJJZH0gfCBEZWxldGUgY3VzdG9tZXIKKlRSTGlua0FwaSogfCBbKipkaXNjb25uZWN0X3RyX2xpbmtfaW50ZWdyYXRpb24qKl0oZG9jcy9UUkxpbmtBcGkubWQjZGlzY29ubmVjdF90cl9saW5rX2ludGVncmF0aW9uKSB8ICoqREVMRVRFKiogL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL2ludGVncmF0aW9uL3tjdXN0b21lckludGVncmF0aW9uSWR9IHwgRGlzY29ubmVjdCBjdXN0b21lciBpbnRlZ3JhdGlvbgoqVFJMaW5rQXBpKiB8IFsqKmdldF90cl9saW5rX2N1c3RvbWVyX2J5X2lkKipdKGRvY3MvVFJMaW5rQXBpLm1kI2dldF90cl9saW5rX2N1c3RvbWVyX2J5X2lkKSB8ICoqR0VUKiogL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL3tjdXN0b21lcklkfSB8IEdldCBjdXN0b21lciBieSBJRAoqVFJMaW5rQXBpKiB8IFsqKmdldF90cl9saW5rX2N1c3RvbWVyX2ludGVncmF0aW9uX2J5X2lkKipdKGRvY3MvVFJMaW5rQXBpLm1kI2dldF90cl9saW5rX2N1c3RvbWVyX2ludGVncmF0aW9uX2J5X2lkKSB8ICoqR0VUKiogL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL3tjdXN0b21lcklkfS9pbnRlZ3JhdGlvbnMve2N1c3RvbWVySW50ZWdyYXRpb25JZH0gfCBHZXQgY3VzdG9tZXIgaW50ZWdyYXRpb24gYnkgSUQKKlRSTGlua0FwaSogfCBbKipnZXRfdHJfbGlua19jdXN0b21lcl9pbnRlZ3JhdGlvbnMqKl0oZG9jcy9UUkxpbmtBcGkubWQjZ2V0X3RyX2xpbmtfY3VzdG9tZXJfaW50ZWdyYXRpb25zKSB8ICoqR0VUKiogL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL3tjdXN0b21lcklkfS9pbnRlZ3JhdGlvbnMgfCBHZXQgY3VzdG9tZXIgaW50ZWdyYXRpb25zCipUUkxpbmtBcGkqIHwgWyoqZ2V0X3RyX2xpbmtfY3VzdG9tZXJzKipdKGRvY3MvVFJMaW5rQXBpLm1kI2dldF90cl9saW5rX2N1c3RvbWVycykgfCAqKkdFVCoqIC9zY3JlZW5pbmcvdHJsaW5rL2N1c3RvbWVycyB8IEdldCBhbGwgY3VzdG9tZXJzCipUUkxpbmtBcGkqIHwgWyoqZ2V0X3RyX2xpbmtfaW50ZWdyYXRpb25fcHVibGljX2tleSoqXShkb2NzL1RSTGlua0FwaS5tZCNnZXRfdHJfbGlua19pbnRlZ3JhdGlvbl9wdWJsaWNfa2V5KSB8ICoqR0VUKiogL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL2ludGVncmF0aW9uL3tjdXN0b21lckludGVncmF0aW9uSWR9L3B1YmxpY19rZXkgfCBHZXQgcHVibGljIGtleSBmb3IgUElJIGVuY3J5cHRpb24KKlRSTGlua0FwaSogfCBbKipnZXRfdHJfbGlua19wYXJ0bmVycyoqXShkb2NzL1RSTGlua0FwaS5tZCNnZXRfdHJfbGlua19wYXJ0bmVycykgfCAqKkdFVCoqIC9zY3JlZW5pbmcvdHJsaW5rL3BhcnRuZXJzIHwgTGlzdCBhdmFpbGFibGUgVFJTdXBwb3J0IHBhcnRuZXJzCipUUkxpbmtBcGkqIHwgWyoqZ2V0X3RyX2xpbmtfcG9saWN5KipdKGRvY3MvVFJMaW5rQXBpLm1kI2dldF90cl9saW5rX3BvbGljeSkgfCAqKkdFVCoqIC9zY3JlZW5pbmcvdHJsaW5rL3BvbGljeSB8IEdldCBUUkxpbmsgcG9saWN5CipUUkxpbmtBcGkqIHwgWyoqZ2V0X3RyX2xpbmtfc3VwcG9ydGVkX2Fzc2V0KipdKGRvY3MvVFJMaW5rQXBpLm1kI2dldF90cl9saW5rX3N1cHBvcnRlZF9hc3NldCkgfCAqKkdFVCoqIC9zY3JlZW5pbmcvdHJsaW5rL2N1c3RvbWVycy9pbnRlZ3JhdGlvbi97Y3VzdG9tZXJJbnRlZ3JhdGlvbklkfS9hc3NldHMve2Fzc2V0SWR9IHwgR2V0IHN1cHBvcnRlZCBhc3NldCBieSBJRAoqVFJMaW5rQXBpKiB8IFsqKmdldF90cl9saW5rX3RybV9ieV9pZCoqXShkb2NzL1RSTGlua0FwaS5tZCNnZXRfdHJfbGlua190cm1fYnlfaWQpIHwgKipHRVQqKiAvc2NyZWVuaW5nL3RybGluay9jdXN0b21lcnMvaW50ZWdyYXRpb24ve2N1c3RvbWVySW50ZWdyYXRpb25JZH0vdHJtL3t0cm1JZH0gfCBHZXQgVFJNIGJ5IElECipUUkxpbmtBcGkqIHwgWyoqZ2V0X3RyX2xpbmtfdmFzcF9ieV9pZCoqXShkb2NzL1RSTGlua0FwaS5tZCNnZXRfdHJfbGlua192YXNwX2J5X2lkKSB8ICoqR0VUKiogL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL2ludGVncmF0aW9uL3tjdXN0b21lckludGVncmF0aW9uSWR9L3Zhc3BzL3t2YXNwSWR9IHwgR2V0IFZBU1AgYnkgSUQKKlRSTGlua0FwaSogfCBbKipsaXN0X3RyX2xpbmtfc3VwcG9ydGVkX2Fzc2V0cyoqXShkb2NzL1RSTGlua0FwaS5tZCNsaXN0X3RyX2xpbmtfc3VwcG9ydGVkX2Fzc2V0cykgfCAqKkdFVCoqIC9zY3JlZW5pbmcvdHJsaW5rL2N1c3RvbWVycy9pbnRlZ3JhdGlvbi97Y3VzdG9tZXJJbnRlZ3JhdGlvbklkfS9hc3NldHMgfCBMaXN0IHN1cHBvcnRlZCBhc3NldHMKKlRSTGlua0FwaSogfCBbKipsaXN0X3RyX2xpbmtfdmFzcHMqKl0oZG9jcy9UUkxpbmtBcGkubWQjbGlzdF90cl9saW5rX3Zhc3BzKSB8ICoqR0VUKiogL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL2ludGVncmF0aW9uL3tjdXN0b21lckludGVncmF0aW9uSWR9L3Zhc3BzIHwgTGlzdCBWQVNQcwoqVFJMaW5rQXBpKiB8IFsqKnJlZGlyZWN0X3RyX2xpbmtfdHJtKipdKGRvY3MvVFJMaW5rQXBpLm1kI3JlZGlyZWN0X3RyX2xpbmtfdHJtKSB8ICoqUE9TVCoqIC9zY3JlZW5pbmcvdHJsaW5rL2N1c3RvbWVycy9pbnRlZ3JhdGlvbi97Y3VzdG9tZXJJbnRlZ3JhdGlvbklkfS90cm0ve3RybUlkfS9yZWRpcmVjdCB8IFJlZGlyZWN0IFRyYXZlbCBSdWxlIE1lc3NhZ2UKKlRSTGlua0FwaSogfCBbKipzZXRfdHJfbGlua19kZXN0aW5hdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkKipdKGRvY3MvVFJMaW5rQXBpLm1kI3NldF90cl9saW5rX2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWQpIHwgKipQT1NUKiogL3NjcmVlbmluZy90cmxpbmsvdHJhbnNhY3Rpb24ve3R4SWR9L2Rlc3RpbmF0aW9uL3RyYXZlbF9ydWxlX21lc3NhZ2VfaWQgfCBTZXQgZGVzdGluYXRpb24gdHJhdmVsIHJ1bGUgbWVzc2FnZSBJRAoqVFJMaW5rQXBpKiB8IFsqKnNldF90cl9saW5rX3RyYW5zYWN0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWQqKl0oZG9jcy9UUkxpbmtBcGkubWQjc2V0X3RyX2xpbmtfdHJhbnNhY3Rpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCkgfCAqKlBPU1QqKiAvc2NyZWVuaW5nL3RybGluay90cmFuc2FjdGlvbi97dHhJZH0vdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCB8IFNldCB0cmFuc2FjdGlvbiB0cmF2ZWwgcnVsZSBtZXNzYWdlIElECipUUkxpbmtBcGkqIHwgWyoqdGVzdF90cl9saW5rX2ludGVncmF0aW9uX2Nvbm5lY3Rpb24qKl0oZG9jcy9UUkxpbmtBcGkubWQjdGVzdF90cl9saW5rX2ludGVncmF0aW9uX2Nvbm5lY3Rpb24pIHwgKipQT1NUKiogL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL2ludGVncmF0aW9uL3tjdXN0b21lckludGVncmF0aW9uSWR9L3Rlc3RfY29ubmVjdGlvbiB8IFRlc3QgY29ubmVjdGlvbgoqVFJMaW5rQXBpKiB8IFsqKnVwZGF0ZV90cl9saW5rX2N1c3RvbWVyKipdKGRvY3MvVFJMaW5rQXBpLm1kI3VwZGF0ZV90cl9saW5rX2N1c3RvbWVyKSB8ICoqUFVUKiogL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL3tjdXN0b21lcklkfSB8IFVwZGF0ZSBjdXN0b21lcgoqVGFnc0FwaSogfCBbKipjYW5jZWxfYXBwcm92YWxfcmVxdWVzdCoqXShkb2NzL1RhZ3NBcGkubWQjY2FuY2VsX2FwcHJvdmFsX3JlcXVlc3QpIHwgKipQT1NUKiogL3RhZ3MvYXBwcm92YWxfcmVxdWVzdHMve2lkfS9jYW5jZWwgfCBDYW5jZWwgYW4gYXBwcm92YWwgcmVxdWVzdCBieSBpZAoqVGFnc0FwaSogfCBbKipjcmVhdGVfdGFnKipdKGRvY3MvVGFnc0FwaS5tZCNjcmVhdGVfdGFnKSB8ICoqUE9TVCoqIC90YWdzIHwgQ3JlYXRlIGEgbmV3IHRhZwoqVGFnc0FwaSogfCBbKipkZWxldGVfdGFnKipdKGRvY3MvVGFnc0FwaS5tZCNkZWxldGVfdGFnKSB8ICoqREVMRVRFKiogL3RhZ3Mve3RhZ0lkfSB8IERlbGV0ZSBhIHRhZwoqVGFnc0FwaSogfCBbKipnZXRfYXBwcm92YWxfcmVxdWVzdCoqXShkb2NzL1RhZ3NBcGkubWQjZ2V0X2FwcHJvdmFsX3JlcXVlc3QpIHwgKipHRVQqKiAvdGFncy9hcHByb3ZhbF9yZXF1ZXN0cy97aWR9IHwgR2V0IGFuIGFwcHJvdmFsIHJlcXVlc3QgYnkgaWQKKlRhZ3NBcGkqIHwgWyoqZ2V0X3RhZyoqXShkb2NzL1RhZ3NBcGkubWQjZ2V0X3RhZykgfCAqKkdFVCoqIC90YWdzL3t0YWdJZH0gfCBHZXQgYSB0YWcKKlRhZ3NBcGkqIHwgWyoqZ2V0X3RhZ3MqKl0oZG9jcy9UYWdzQXBpLm1kI2dldF90YWdzKSB8ICoqR0VUKiogL3RhZ3MgfCBHZXQgbGlzdCBvZiB0YWdzCipUYWdzQXBpKiB8IFsqKnVwZGF0ZV90YWcqKl0oZG9jcy9UYWdzQXBpLm1kI3VwZGF0ZV90YWcpIHwgKipQQVRDSCoqIC90YWdzL3t0YWdJZH0gfCBVcGRhdGUgYSB0YWcKKlRva2VuaXphdGlvbkFwaSogfCBbKipidXJuX2NvbGxlY3Rpb25fdG9rZW4qKl0oZG9jcy9Ub2tlbml6YXRpb25BcGkubWQjYnVybl9jb2xsZWN0aW9uX3Rva2VuKSB8ICoqUE9TVCoqIC90b2tlbml6YXRpb24vY29sbGVjdGlvbnMve2lkfS90b2tlbnMvYnVybiB8IEJ1cm4gdG9rZW5zCipUb2tlbml6YXRpb25BcGkqIHwgWyoqY3JlYXRlX25ld19jb2xsZWN0aW9uKipdKGRvY3MvVG9rZW5pemF0aW9uQXBpLm1kI2NyZWF0ZV9uZXdfY29sbGVjdGlvbikgfCAqKlBPU1QqKiAvdG9rZW5pemF0aW9uL2NvbGxlY3Rpb25zIHwgQ3JlYXRlIGEgbmV3IGNvbGxlY3Rpb24KKlRva2VuaXphdGlvbkFwaSogfCBbKipkZWFjdGl2YXRlX2FuZF91bmxpbmtfYWRhcHRlcnMqKl0oZG9jcy9Ub2tlbml6YXRpb25BcGkubWQjZGVhY3RpdmF0ZV9hbmRfdW5saW5rX2FkYXB0ZXJzKSB8ICoqREVMRVRFKiogL3Rva2VuaXphdGlvbi9tdWx0aWNoYWluL2JyaWRnZS9sYXllcnplcm8gfCBSZW1vdmUgTGF5ZXJaZXJvIGFkYXB0ZXJzCipUb2tlbml6YXRpb25BcGkqIHwgWyoqZGVwbG95X2FuZF9saW5rX2FkYXB0ZXJzKipdKGRvY3MvVG9rZW5pemF0aW9uQXBpLm1kI2RlcGxveV9hbmRfbGlua19hZGFwdGVycykgfCAqKlBPU1QqKiAvdG9rZW5pemF0aW9uL211bHRpY2hhaW4vYnJpZGdlL2xheWVyemVybyB8IERlcGxveSBMYXllclplcm8gYWRhcHRlcnMKKlRva2VuaXphdGlvbkFwaSogfCBbKipmZXRjaF9jb2xsZWN0aW9uX3Rva2VuX2RldGFpbHMqKl0oZG9jcy9Ub2tlbml6YXRpb25BcGkubWQjZmV0Y2hfY29sbGVjdGlvbl90b2tlbl9kZXRhaWxzKSB8ICoqR0VUKiogL3Rva2VuaXphdGlvbi9jb2xsZWN0aW9ucy97aWR9L3Rva2Vucy97dG9rZW5JZH0gfCBHZXQgY29sbGVjdGlvbiB0b2tlbiBkZXRhaWxzCipUb2tlbml6YXRpb25BcGkqIHwgWyoqZ2V0X2NvbGxlY3Rpb25fYnlfaWQqKl0oZG9jcy9Ub2tlbml6YXRpb25BcGkubWQjZ2V0X2NvbGxlY3Rpb25fYnlfaWQpIHwgKipHRVQqKiAvdG9rZW5pemF0aW9uL2NvbGxlY3Rpb25zL3tpZH0gfCBHZXQgYSBjb2xsZWN0aW9uIGJ5IGlkCipUb2tlbml6YXRpb25BcGkqIHwgWyoqZ2V0X2RlcGxveWFibGVfYWRkcmVzcyoqXShkb2NzL1Rva2VuaXphdGlvbkFwaS5tZCNnZXRfZGVwbG95YWJsZV9hZGRyZXNzKSB8ICoqUE9TVCoqIC90b2tlbml6YXRpb24vbXVsdGljaGFpbi9kZXRlcm1pbmlzdGljX2FkZHJlc3MgfCBHZXQgZGV0ZXJtaW5pc3RpYyBhZGRyZXNzIGZvciBjb250cmFjdCBkZXBsb3ltZW50CipUb2tlbml6YXRpb25BcGkqIHwgWyoqZ2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZyoqXShkb2NzL1Rva2VuaXphdGlvbkFwaS5tZCNnZXRfbGF5ZXJfemVyb19kdm5fY29uZmlnKSB8ICoqR0VUKiogL3Rva2VuaXphdGlvbi9tdWx0aWNoYWluL2JyaWRnZS9sYXllcnplcm8vY29uZmlnL3thZGFwdGVyVG9rZW5MaW5rSWR9L2R2bnMgfCBHZXQgTGF5ZXJaZXJvIERWTiBjb25maWd1cmF0aW9uCipUb2tlbml6YXRpb25BcGkqIHwgWyoqZ2V0X2xheWVyX3plcm9fcGVlcnMqKl0oZG9jcy9Ub2tlbml6YXRpb25BcGkubWQjZ2V0X2xheWVyX3plcm9fcGVlcnMpIHwgKipHRVQqKiAvdG9rZW5pemF0aW9uL211bHRpY2hhaW4vYnJpZGdlL2xheWVyemVyby9jb25maWcve2FkYXB0ZXJUb2tlbkxpbmtJZH0vcGVlcnMgfCBHZXQgTGF5ZXJaZXJvIHBlZXJzCipUb2tlbml6YXRpb25BcGkqIHwgWyoqZ2V0X2xpbmtlZF9jb2xsZWN0aW9ucyoqXShkb2NzL1Rva2VuaXphdGlvbkFwaS5tZCNnZXRfbGlua2VkX2NvbGxlY3Rpb25zKSB8ICoqR0VUKiogL3Rva2VuaXphdGlvbi9jb2xsZWN0aW9ucyB8IEdldCBjb2xsZWN0aW9ucwoqVG9rZW5pemF0aW9uQXBpKiB8IFsqKmdldF9saW5rZWRfdG9rZW4qKl0oZG9jcy9Ub2tlbml6YXRpb25BcGkubWQjZ2V0X2xpbmtlZF90b2tlbikgfCAqKkdFVCoqIC90b2tlbml6YXRpb24vdG9rZW5zL3tpZH0gfCBSZXR1cm4gYSBsaW5rZWQgdG9rZW4KKlRva2VuaXphdGlvbkFwaSogfCBbKipnZXRfbGlua2VkX3Rva2VucyoqXShkb2NzL1Rva2VuaXphdGlvbkFwaS5tZCNnZXRfbGlua2VkX3Rva2VucykgfCAqKkdFVCoqIC90b2tlbml6YXRpb24vdG9rZW5zIHwgTGlzdCBhbGwgbGlua2VkIHRva2VucwoqVG9rZW5pemF0aW9uQXBpKiB8IFsqKmdldF9saW5rZWRfdG9rZW5zX2NvdW50KipdKGRvY3MvVG9rZW5pemF0aW9uQXBpLm1kI2dldF9saW5rZWRfdG9rZW5zX2NvdW50KSB8ICoqR0VUKiogL3Rva2VuaXphdGlvbi90b2tlbnMvY291bnQgfCBHZXQgdGhlIHRvdGFsIGNvdW50IG9mIGxpbmtlZCB0b2tlbnMKKlRva2VuaXphdGlvbkFwaSogfCBbKippc3N1ZV9uZXdfdG9rZW4qKl0oZG9jcy9Ub2tlbml6YXRpb25BcGkubWQjaXNzdWVfbmV3X3Rva2VuKSB8ICoqUE9TVCoqIC90b2tlbml6YXRpb24vdG9rZW5zIHwgSXNzdWUgYSBuZXcgdG9rZW4KKlRva2VuaXphdGlvbkFwaSogfCBbKippc3N1ZV90b2tlbl9tdWx0aV9jaGFpbioqXShkb2NzL1Rva2VuaXphdGlvbkFwaS5tZCNpc3N1ZV90b2tlbl9tdWx0aV9jaGFpbikgfCAqKlBPU1QqKiAvdG9rZW5pemF0aW9uL211bHRpY2hhaW4vdG9rZW5zIHwgSXNzdWUgYSB0b2tlbiBvbiBvbmUgb3IgbW9yZSBibG9ja2NoYWlucwoqVG9rZW5pemF0aW9uQXBpKiB8IFsqKmxpbmsqKl0oZG9jcy9Ub2tlbml6YXRpb25BcGkubWQjbGluaykgfCAqKlBPU1QqKiAvdG9rZW5pemF0aW9uL3Rva2Vucy9saW5rIHwgTGluayBhIGNvbnRyYWN0CipUb2tlbml6YXRpb25BcGkqIHwgWyoqbWludF9jb2xsZWN0aW9uX3Rva2VuKipdKGRvY3MvVG9rZW5pemF0aW9uQXBpLm1kI21pbnRfY29sbGVjdGlvbl90b2tlbikgfCAqKlBPU1QqKiAvdG9rZW5pemF0aW9uL2NvbGxlY3Rpb25zL3tpZH0vdG9rZW5zL21pbnQgfCBNaW50IHRva2VucwoqVG9rZW5pemF0aW9uQXBpKiB8IFsqKnJlX2lzc3VlX3Rva2VuX211bHRpX2NoYWluKipdKGRvY3MvVG9rZW5pemF0aW9uQXBpLm1kI3JlX2lzc3VlX3Rva2VuX211bHRpX2NoYWluKSB8ICoqUE9TVCoqIC90b2tlbml6YXRpb24vbXVsdGljaGFpbi9yZWlzc3VlL3Rva2VuL3t0b2tlbkxpbmtJZH0gfCBSZWlzc3VlIGEgbXVsdGljaGFpbiB0b2tlbgoqVG9rZW5pemF0aW9uQXBpKiB8IFsqKnJlbW92ZV9sYXllcl96ZXJvX3BlZXJzKipdKGRvY3MvVG9rZW5pemF0aW9uQXBpLm1kI3JlbW92ZV9sYXllcl96ZXJvX3BlZXJzKSB8ICoqREVMRVRFKiogL3Rva2VuaXphdGlvbi9tdWx0aWNoYWluL2JyaWRnZS9sYXllcnplcm8vY29uZmlnL3BlZXJzIHwgUmVtb3ZlIExheWVyWmVybyBwZWVycwoqVG9rZW5pemF0aW9uQXBpKiB8IFsqKnNldF9sYXllcl96ZXJvX2R2bl9jb25maWcqKl0oZG9jcy9Ub2tlbml6YXRpb25BcGkubWQjc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZykgfCAqKlBPU1QqKiAvdG9rZW5pemF0aW9uL211bHRpY2hhaW4vYnJpZGdlL2xheWVyemVyby9jb25maWcvZHZucyB8IFNldCBMYXllclplcm8gRFZOIGNvbmZpZ3VyYXRpb24KKlRva2VuaXphdGlvbkFwaSogfCBbKipzZXRfbGF5ZXJfemVyb19wZWVycyoqXShkb2NzL1Rva2VuaXphdGlvbkFwaS5tZCNzZXRfbGF5ZXJfemVyb19wZWVycykgfCAqKlBPU1QqKiAvdG9rZW5pemF0aW9uL211bHRpY2hhaW4vYnJpZGdlL2xheWVyemVyby9jb25maWcvcGVlcnMgfCBTZXQgTGF5ZXJaZXJvIHBlZXJzCipUb2tlbml6YXRpb25BcGkqIHwgWyoqdW5saW5rKipdKGRvY3MvVG9rZW5pemF0aW9uQXBpLm1kI3VubGluaykgfCAqKkRFTEVURSoqIC90b2tlbml6YXRpb24vdG9rZW5zL3tpZH0gfCBVbmxpbmsgYSB0b2tlbgoqVG9rZW5pemF0aW9uQXBpKiB8IFsqKnVubGlua19jb2xsZWN0aW9uKipdKGRvY3MvVG9rZW5pemF0aW9uQXBpLm1kI3VubGlua19jb2xsZWN0aW9uKSB8ICoqREVMRVRFKiogL3Rva2VuaXphdGlvbi9jb2xsZWN0aW9ucy97aWR9IHwgRGVsZXRlIGEgY29sbGVjdGlvbiBsaW5rCipUb2tlbml6YXRpb25BcGkqIHwgWyoqdmFsaWRhdGVfbGF5ZXJfemVyb19jaGFubmVsX2NvbmZpZyoqXShkb2NzL1Rva2VuaXphdGlvbkFwaS5tZCN2YWxpZGF0ZV9sYXllcl96ZXJvX2NoYW5uZWxfY29uZmlnKSB8ICoqR0VUKiogL3Rva2VuaXphdGlvbi9tdWx0aWNoYWluL2JyaWRnZS9sYXllcnplcm8vdmFsaWRhdGUgfCBWYWxpZGF0ZSBMYXllclplcm8gY2hhbm5lbCBjb25maWd1cmF0aW9uCipUcmFkaW5nQmV0YUFwaSogfCBbKipjcmVhdGVfb3JkZXIqKl0oZG9jcy9UcmFkaW5nQmV0YUFwaS5tZCNjcmVhdGVfb3JkZXIpIHwgKipQT1NUKiogL3RyYWRpbmcvb3JkZXJzIHwgQ3JlYXRlIGFuIG9yZGVyCipUcmFkaW5nQmV0YUFwaSogfCBbKipjcmVhdGVfcXVvdGUqKl0oZG9jcy9UcmFkaW5nQmV0YUFwaS5tZCNjcmVhdGVfcXVvdGUpIHwgKipQT1NUKiogL3RyYWRpbmcvcXVvdGVzIHwgQ3JlYXRlIGEgcXVvdGUKKlRyYWRpbmdCZXRhQXBpKiB8IFsqKmdldF9vcmRlcioqXShkb2NzL1RyYWRpbmdCZXRhQXBpLm1kI2dldF9vcmRlcikgfCAqKkdFVCoqIC90cmFkaW5nL29yZGVycy97b3JkZXJJZH0gfCBHZXQgb3JkZXIgZGV0YWlscwoqVHJhZGluZ0JldGFBcGkqIHwgWyoqZ2V0X29yZGVycyoqXShkb2NzL1RyYWRpbmdCZXRhQXBpLm1kI2dldF9vcmRlcnMpIHwgKipHRVQqKiAvdHJhZGluZy9vcmRlcnMgfCBHZXQgb3JkZXJzCipUcmFkaW5nQmV0YUFwaSogfCBbKipnZXRfdHJhZGluZ19wcm92aWRlcl9ieV9pZCoqXShkb2NzL1RyYWRpbmdCZXRhQXBpLm1kI2dldF90cmFkaW5nX3Byb3ZpZGVyX2J5X2lkKSB8ICoqR0VUKiogL3RyYWRpbmcvcHJvdmlkZXJzL3twcm92aWRlcklkfSB8IEdldCB0cmFkaW5nIHByb3ZpZGVyIGJ5IElECipUcmFkaW5nQmV0YUFwaSogfCBbKipnZXRfdHJhZGluZ19wcm92aWRlcnMqKl0oZG9jcy9UcmFkaW5nQmV0YUFwaS5tZCNnZXRfdHJhZGluZ19wcm92aWRlcnMpIHwgKipHRVQqKiAvdHJhZGluZy9wcm92aWRlcnMgfCBHZXQgcHJvdmlkZXJzCipUcmFuc2FjdGlvbnNBcGkqIHwgWyoqY2FuY2VsX3RyYW5zYWN0aW9uKipdKGRvY3MvVHJhbnNhY3Rpb25zQXBpLm1kI2NhbmNlbF90cmFuc2FjdGlvbikgfCAqKlBPU1QqKiAvdHJhbnNhY3Rpb25zL3t0eElkfS9jYW5jZWwgfCBDYW5jZWwgYSB0cmFuc2FjdGlvbgoqVHJhbnNhY3Rpb25zQXBpKiB8IFsqKmNyZWF0ZV90cmFuc2FjdGlvbioqXShkb2NzL1RyYW5zYWN0aW9uc0FwaS5tZCNjcmVhdGVfdHJhbnNhY3Rpb24pIHwgKipQT1NUKiogL3RyYW5zYWN0aW9ucyB8IENyZWF0ZSBhIG5ldyB0cmFuc2FjdGlvbgoqVHJhbnNhY3Rpb25zQXBpKiB8IFsqKmRyb3BfdHJhbnNhY3Rpb24qKl0oZG9jcy9UcmFuc2FjdGlvbnNBcGkubWQjZHJvcF90cmFuc2FjdGlvbikgfCAqKlBPU1QqKiAvdHJhbnNhY3Rpb25zL3t0eElkfS9kcm9wIHwgRHJvcCBFVEggKEVWTSkgdHJhbnNhY3Rpb24gYnkgSUQKKlRyYW5zYWN0aW9uc0FwaSogfCBbKiplc3RpbWF0ZV9uZXR3b3JrX2ZlZSoqXShkb2NzL1RyYW5zYWN0aW9uc0FwaS5tZCNlc3RpbWF0ZV9uZXR3b3JrX2ZlZSkgfCAqKkdFVCoqIC9lc3RpbWF0ZV9uZXR3b3JrX2ZlZSB8IEVzdGltYXRlIHRoZSByZXF1aXJlZCBmZWUgZm9yIGFuIGFzc2V0CipUcmFuc2FjdGlvbnNBcGkqIHwgWyoqZXN0aW1hdGVfdHJhbnNhY3Rpb25fZmVlKipdKGRvY3MvVHJhbnNhY3Rpb25zQXBpLm1kI2VzdGltYXRlX3RyYW5zYWN0aW9uX2ZlZSkgfCAqKlBPU1QqKiAvdHJhbnNhY3Rpb25zL2VzdGltYXRlX2ZlZSB8IEVzdGltYXRlIHRyYW5zYWN0aW9uIGZlZQoqVHJhbnNhY3Rpb25zQXBpKiB8IFsqKmZyZWV6ZV90cmFuc2FjdGlvbioqXShkb2NzL1RyYW5zYWN0aW9uc0FwaS5tZCNmcmVlemVfdHJhbnNhY3Rpb24pIHwgKipQT1NUKiogL3RyYW5zYWN0aW9ucy97dHhJZH0vZnJlZXplIHwgRnJlZXplIGEgdHJhbnNhY3Rpb24KKlRyYW5zYWN0aW9uc0FwaSogfCBbKipnZXRfdHJhbnNhY3Rpb24qKl0oZG9jcy9UcmFuc2FjdGlvbnNBcGkubWQjZ2V0X3RyYW5zYWN0aW9uKSB8ICoqR0VUKiogL3RyYW5zYWN0aW9ucy97dHhJZH0gfCBHZXQgYSBzcGVjaWZpYyB0cmFuc2FjdGlvbiBieSBGaXJlYmxvY2tzIHRyYW5zYWN0aW9uIElECipUcmFuc2FjdGlvbnNBcGkqIHwgWyoqZ2V0X3RyYW5zYWN0aW9uX2J5X2V4dGVybmFsX2lkKipdKGRvY3MvVHJhbnNhY3Rpb25zQXBpLm1kI2dldF90cmFuc2FjdGlvbl9ieV9leHRlcm5hbF9pZCkgfCAqKkdFVCoqIC90cmFuc2FjdGlvbnMvZXh0ZXJuYWxfdHhfaWQve2V4dGVybmFsVHhJZH0gfCBHZXQgYSBzcGVjaWZpYyB0cmFuc2FjdGlvbiBieSBleHRlcm5hbCB0cmFuc2FjdGlvbiBJRAoqVHJhbnNhY3Rpb25zQXBpKiB8IFsqKmdldF90cmFuc2FjdGlvbnMqKl0oZG9jcy9UcmFuc2FjdGlvbnNBcGkubWQjZ2V0X3RyYW5zYWN0aW9ucykgfCAqKkdFVCoqIC90cmFuc2FjdGlvbnMgfCBHZXQgdHJhbnNhY3Rpb24gaGlzdG9yeQoqVHJhbnNhY3Rpb25zQXBpKiB8IFsqKnNldF9jb25maXJtYXRpb25fdGhyZXNob2xkX2J5X3RyYW5zYWN0aW9uX2hhc2gqKl0oZG9jcy9UcmFuc2FjdGlvbnNBcGkubWQjc2V0X2NvbmZpcm1hdGlvbl90aHJlc2hvbGRfYnlfdHJhbnNhY3Rpb25faGFzaCkgfCAqKlBPU1QqKiAvdHhIYXNoL3t0eEhhc2h9L3NldF9jb25maXJtYXRpb25fdGhyZXNob2xkIHwgU2V0IGNvbmZpcm1hdGlvbiB0aHJlc2hvbGQgYnkgdHJhbnNhY3Rpb24gaGFzaAoqVHJhbnNhY3Rpb25zQXBpKiB8IFsqKnNldF90cmFuc2FjdGlvbl9jb25maXJtYXRpb25fdGhyZXNob2xkKipdKGRvY3MvVHJhbnNhY3Rpb25zQXBpLm1kI3NldF90cmFuc2FjdGlvbl9jb25maXJtYXRpb25fdGhyZXNob2xkKSB8ICoqUE9TVCoqIC90cmFuc2FjdGlvbnMve3R4SWR9L3NldF9jb25maXJtYXRpb25fdGhyZXNob2xkIHwgU2V0IGNvbmZpcm1hdGlvbiB0aHJlc2hvbGQgYnkgRmlyZWJsb2NrcyBUcmFuc2FjdGlvbiBJRAoqVHJhbnNhY3Rpb25zQXBpKiB8IFsqKnVuZnJlZXplX3RyYW5zYWN0aW9uKipdKGRvY3MvVHJhbnNhY3Rpb25zQXBpLm1kI3VuZnJlZXplX3RyYW5zYWN0aW9uKSB8ICoqUE9TVCoqIC90cmFuc2FjdGlvbnMve3R4SWR9L3VuZnJlZXplIHwgVW5mcmVlemUgYSB0cmFuc2FjdGlvbgoqVHJhbnNhY3Rpb25zQXBpKiB8IFsqKnZhbGlkYXRlX2FkZHJlc3MqKl0oZG9jcy9UcmFuc2FjdGlvbnNBcGkubWQjdmFsaWRhdGVfYWRkcmVzcykgfCAqKkdFVCoqIC90cmFuc2FjdGlvbnMvdmFsaWRhdGVfYWRkcmVzcy97YXNzZXRJZH0ve2FkZHJlc3N9IHwgVmFsaWRhdGUgZGVzdGluYXRpb24gYWRkcmVzcwoqVHJhdmVsUnVsZUFwaSogfCBbKipjcmVhdGVfdHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzcyoqXShkb2NzL1RyYXZlbFJ1bGVBcGkubWQjY3JlYXRlX3RydXN0X3Byb29mX29mX2FkZHJlc3MpIHwgKipQT1NUKiogL3NjcmVlbmluZy90cmF2ZWxfcnVsZS9wcm92aWRlcnMvdHJ1c3QvcHJvb2Zfb2ZfYWRkcmVzcyB8IENyZWF0ZSBUcnVzdCBOZXR3b3JrIFByb29mIG9mIEFkZHJlc3MKKlRyYXZlbFJ1bGVBcGkqIHwgWyoqZ2V0X3RydXN0X3Byb29mX29mX2FkZHJlc3MqKl0oZG9jcy9UcmF2ZWxSdWxlQXBpLm1kI2dldF90cnVzdF9wcm9vZl9vZl9hZGRyZXNzKSB8ICoqR0VUKiogL3NjcmVlbmluZy90cmF2ZWxfcnVsZS9wcm92aWRlcnMvdHJ1c3QvcHJvb2Zfb2ZfYWRkcmVzcy97dHJhbnNhY3Rpb25JZH0gfCBSZXRyaWV2ZSBUcnVzdCBOZXR3b3JrIFByb29mIG9mIEFkZHJlc3MgU2lnbmF0dXJlCipUcmF2ZWxSdWxlQXBpKiB8IFsqKmdldF92YXNwX2Zvcl92YXVsdCoqXShkb2NzL1RyYXZlbFJ1bGVBcGkubWQjZ2V0X3Zhc3BfZm9yX3ZhdWx0KSB8ICoqR0VUKiogL3NjcmVlbmluZy90cmF2ZWxfcnVsZS92YXVsdC97dmF1bHRBY2NvdW50SWR9L3Zhc3AgfCBHZXQgYXNzaWduZWQgVkFTUCB0byB2YXVsdAoqVHJhdmVsUnVsZUFwaSogfCBbKipnZXRfdmFzcGJ5X2RpZCoqXShkb2NzL1RyYXZlbFJ1bGVBcGkubWQjZ2V0X3Zhc3BieV9kaWQpIHwgKipHRVQqKiAvc2NyZWVuaW5nL3RyYXZlbF9ydWxlL3Zhc3Ave2RpZH0gfCBHZXQgVkFTUCBkZXRhaWxzCipUcmF2ZWxSdWxlQXBpKiB8IFsqKmdldF92YXNwcyoqXShkb2NzL1RyYXZlbFJ1bGVBcGkubWQjZ2V0X3Zhc3BzKSB8ICoqR0VUKiogL3NjcmVlbmluZy90cmF2ZWxfcnVsZS92YXNwIHwgR2V0IEFsbCBWQVNQcwoqVHJhdmVsUnVsZUFwaSogfCBbKipzZXRfdmFzcF9mb3JfdmF1bHQqKl0oZG9jcy9UcmF2ZWxSdWxlQXBpLm1kI3NldF92YXNwX2Zvcl92YXVsdCkgfCAqKlBPU1QqKiAvc2NyZWVuaW5nL3RyYXZlbF9ydWxlL3ZhdWx0L3t2YXVsdEFjY291bnRJZH0vdmFzcCB8IEFzc2lnbiBWQVNQIHRvIHZhdWx0CipUcmF2ZWxSdWxlQXBpKiB8IFsqKnVwZGF0ZV92YXNwKipdKGRvY3MvVHJhdmVsUnVsZUFwaS5tZCN1cGRhdGVfdmFzcCkgfCAqKlBVVCoqIC9zY3JlZW5pbmcvdHJhdmVsX3J1bGUvdmFzcC91cGRhdGUgfCBBZGQganNvbkRpZEtleSB0byBWQVNQIGRldGFpbHMKKlRyYXZlbFJ1bGVBcGkqIHwgWyoqdmFsaWRhdGVfZnVsbF90cmF2ZWxfcnVsZV90cmFuc2FjdGlvbioqXShkb2NzL1RyYXZlbFJ1bGVBcGkubWQjdmFsaWRhdGVfZnVsbF90cmF2ZWxfcnVsZV90cmFuc2FjdGlvbikgfCAqKlBPU1QqKiAvc2NyZWVuaW5nL3RyYXZlbF9ydWxlL3RyYW5zYWN0aW9uL3ZhbGlkYXRlL2Z1bGwgfCBWYWxpZGF0ZSBGdWxsIFRyYXZlbCBSdWxlIFRyYW5zYWN0aW9uCipVc2VyR3JvdXBzQmV0YUFwaSogfCBbKipjcmVhdGVfdXNlcl9ncm91cCoqXShkb2NzL1VzZXJHcm91cHNCZXRhQXBpLm1kI2NyZWF0ZV91c2VyX2dyb3VwKSB8ICoqUE9TVCoqIC9tYW5hZ2VtZW50L3VzZXJfZ3JvdXBzIHwgQ3JlYXRlIHVzZXIgZ3JvdXAKKlVzZXJHcm91cHNCZXRhQXBpKiB8IFsqKmRlbGV0ZV91c2VyX2dyb3VwKipdKGRvY3MvVXNlckdyb3Vwc0JldGFBcGkubWQjZGVsZXRlX3VzZXJfZ3JvdXApIHwgKipERUxFVEUqKiAvbWFuYWdlbWVudC91c2VyX2dyb3Vwcy97Z3JvdXBJZH0gfCBEZWxldGUgdXNlciBncm91cAoqVXNlckdyb3Vwc0JldGFBcGkqIHwgWyoqZ2V0X3VzZXJfZ3JvdXAqKl0oZG9jcy9Vc2VyR3JvdXBzQmV0YUFwaS5tZCNnZXRfdXNlcl9ncm91cCkgfCAqKkdFVCoqIC9tYW5hZ2VtZW50L3VzZXJfZ3JvdXBzL3tncm91cElkfSB8IEdldCB1c2VyIGdyb3VwCipVc2VyR3JvdXBzQmV0YUFwaSogfCBbKipnZXRfdXNlcl9ncm91cHMqKl0oZG9jcy9Vc2VyR3JvdXBzQmV0YUFwaS5tZCNnZXRfdXNlcl9ncm91cHMpIHwgKipHRVQqKiAvbWFuYWdlbWVudC91c2VyX2dyb3VwcyB8IExpc3QgdXNlciBncm91cHMKKlVzZXJHcm91cHNCZXRhQXBpKiB8IFsqKnVwZGF0ZV91c2VyX2dyb3VwKipdKGRvY3MvVXNlckdyb3Vwc0JldGFBcGkubWQjdXBkYXRlX3VzZXJfZ3JvdXApIHwgKipQVVQqKiAvbWFuYWdlbWVudC91c2VyX2dyb3Vwcy97Z3JvdXBJZH0gfCBVcGRhdGUgdXNlciBncm91cAoqVXNlcnNBcGkqIHwgWyoqZ2V0X3VzZXJzKipdKGRvY3MvVXNlcnNBcGkubWQjZ2V0X3VzZXJzKSB8ICoqR0VUKiogL3VzZXJzIHwgTGlzdCB1c2VycwoqVmF1bHRzQXBpKiB8IFsqKmFjdGl2YXRlX2Fzc2V0X2Zvcl92YXVsdF9hY2NvdW50KipdKGRvY3MvVmF1bHRzQXBpLm1kI2FjdGl2YXRlX2Fzc2V0X2Zvcl92YXVsdF9hY2NvdW50KSB8ICoqUE9TVCoqIC92YXVsdC9hY2NvdW50cy97dmF1bHRBY2NvdW50SWR9L3thc3NldElkfS9hY3RpdmF0ZSB8IEFjdGl2YXRlIGEgd2FsbGV0IGluIGEgdmF1bHQgYWNjb3VudAoqVmF1bHRzQXBpKiB8IFsqKmF0dGFjaF9vcl9kZXRhY2hfdGFnc19mcm9tX3ZhdWx0X2FjY291bnRzKipdKGRvY3MvVmF1bHRzQXBpLm1kI2F0dGFjaF9vcl9kZXRhY2hfdGFnc19mcm9tX3ZhdWx0X2FjY291bnRzKSB8ICoqUE9TVCoqIC92YXVsdC9hY2NvdW50cy9hdHRhY2hlZF90YWdzIHwgQXR0YWNoIG9yIGRldGFjaCB0YWdzIGZyb20gdmF1bHQgYWNjb3VudHMKKlZhdWx0c0FwaSogfCBbKipjcmVhdGVfbGVnYWN5X2FkZHJlc3MqKl0oZG9jcy9WYXVsdHNBcGkubWQjY3JlYXRlX2xlZ2FjeV9hZGRyZXNzKSB8ICoqUE9TVCoqIC92YXVsdC9hY2NvdW50cy97dmF1bHRBY2NvdW50SWR9L3thc3NldElkfS9hZGRyZXNzZXMve2FkZHJlc3NJZH0vY3JlYXRlX2xlZ2FjeSB8IENvbnZlcnQgYSBzZWd3aXQgYWRkcmVzcyB0byBsZWdhY3kgZm9ybWF0CipWYXVsdHNBcGkqIHwgWyoqY3JlYXRlX211bHRpcGxlX2FjY291bnRzKipdKGRvY3MvVmF1bHRzQXBpLm1kI2NyZWF0ZV9tdWx0aXBsZV9hY2NvdW50cykgfCAqKlBPU1QqKiAvdmF1bHQvYWNjb3VudHMvYnVsayB8IEJ1bGsgY3JlYXRpb24gb2YgbmV3IHZhdWx0IGFjY291bnRzCipWYXVsdHNBcGkqIHwgWyoqY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzKipdKGRvY3MvVmF1bHRzQXBpLm1kI2NyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3NlcykgfCAqKlBPU1QqKiAvdmF1bHQvYWNjb3VudHMvYWRkcmVzc2VzL2J1bGsgfCBCdWxrIGNyZWF0aW9uIG9mIG5ldyBkZXBvc2l0IGFkZHJlc3NlcwoqVmF1bHRzQXBpKiB8IFsqKmNyZWF0ZV92YXVsdF9hY2NvdW50KipdKGRvY3MvVmF1bHRzQXBpLm1kI2NyZWF0ZV92YXVsdF9hY2NvdW50KSB8ICoqUE9TVCoqIC92YXVsdC9hY2NvdW50cyB8IENyZWF0ZSBhIG5ldyB2YXVsdCBhY2NvdW50CipWYXVsdHNBcGkqIHwgWyoqY3JlYXRlX3ZhdWx0X2FjY291bnRfYXNzZXQqKl0oZG9jcy9WYXVsdHNBcGkubWQjY3JlYXRlX3ZhdWx0X2FjY291bnRfYXNzZXQpIHwgKipQT1NUKiogL3ZhdWx0L2FjY291bnRzL3t2YXVsdEFjY291bnRJZH0ve2Fzc2V0SWR9IHwgQ3JlYXRlIGEgbmV3IHZhdWx0IHdhbGxldAoqVmF1bHRzQXBpKiB8IFsqKmNyZWF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3MqKl0oZG9jcy9WYXVsdHNBcGkubWQjY3JlYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzcykgfCAqKlBPU1QqKiAvdmF1bHQvYWNjb3VudHMve3ZhdWx0QWNjb3VudElkfS97YXNzZXRJZH0vYWRkcmVzc2VzIHwgQ3JlYXRlIG5ldyBhc3NldCBkZXBvc2l0IGFkZHJlc3MKKlZhdWx0c0FwaSogfCBbKipnZXRfYXNzZXRfd2FsbGV0cyoqXShkb2NzL1ZhdWx0c0FwaS5tZCNnZXRfYXNzZXRfd2FsbGV0cykgfCAqKkdFVCoqIC92YXVsdC9hc3NldF93YWxsZXRzIHwgR2V0IHZhdWx0IHdhbGxldHMgKFBhZ2luYXRlZCkKKlZhdWx0c0FwaSogfCBbKipnZXRfY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzX2pvYl9zdGF0dXMqKl0oZG9jcy9WYXVsdHNBcGkubWQjZ2V0X2NyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3Nlc19qb2Jfc3RhdHVzKSB8ICoqR0VUKiogL3ZhdWx0L2FjY291bnRzL2FkZHJlc3Nlcy9idWxrL3tqb2JJZH0gfCBHZXQgdGhlIGpvYiBzdGF0dXMgb2YgdGhlIGJ1bGsgZGVwb3NpdCBhZGRyZXNzIGNyZWF0aW9uCipWYXVsdHNBcGkqIHwgWyoqZ2V0X2NyZWF0ZV9tdWx0aXBsZV92YXVsdF9hY2NvdW50c19qb2Jfc3RhdHVzKipdKGRvY3MvVmF1bHRzQXBpLm1kI2dldF9jcmVhdGVfbXVsdGlwbGVfdmF1bHRfYWNjb3VudHNfam9iX3N0YXR1cykgfCAqKkdFVCoqIC92YXVsdC9hY2NvdW50cy9idWxrL3tqb2JJZH0gfCBHZXQgam9iIHN0YXR1cyBvZiBidWxrIGNyZWF0aW9uIG9mIG5ldyB2YXVsdCBhY2NvdW50cwoqVmF1bHRzQXBpKiB8IFsqKmdldF9tYXhfYmlwX2luZGV4X3VzZWQqKl0oZG9jcy9WYXVsdHNBcGkubWQjZ2V0X21heF9iaXBfaW5kZXhfdXNlZCkgfCAqKkdFVCoqIC92YXVsdC9hY2NvdW50cy97dmF1bHRBY2NvdW50SWR9L3thc3NldElkfS9tYXhfYmlwNDRfaW5kZXhfdXNlZCB8IEdldCBtYXhpbXVtIEJJUDQ0IGluZGV4IHVzZWQKKlZhdWx0c0FwaSogfCBbKipnZXRfbWF4X3NwZW5kYWJsZV9hbW91bnQqKl0oZG9jcy9WYXVsdHNBcGkubWQjZ2V0X21heF9zcGVuZGFibGVfYW1vdW50KSB8ICoqR0VUKiogL3ZhdWx0L2FjY291bnRzL3t2YXVsdEFjY291bnRJZH0ve2Fzc2V0SWR9L21heF9zcGVuZGFibGVfYW1vdW50IHwgR2V0IG1heCBzcGVuZGFibGUgYW1vdW50IGluIGEgdHJhbnNhY3Rpb24KKlZhdWx0c0FwaSogfCBbKipnZXRfcGFnZWRfdmF1bHRfYWNjb3VudHMqKl0oZG9jcy9WYXVsdHNBcGkubWQjZ2V0X3BhZ2VkX3ZhdWx0X2FjY291bnRzKSB8ICoqR0VUKiogL3ZhdWx0L2FjY291bnRzX3BhZ2VkIHwgR2V0IHZhdWx0IGFjY291bnRzIChQYWdpbmF0ZWQpCipWYXVsdHNBcGkqIHwgWyoqZ2V0X3B1YmxpY19rZXlfaW5mbyoqXShkb2NzL1ZhdWx0c0FwaS5tZCNnZXRfcHVibGljX2tleV9pbmZvKSB8ICoqR0VUKiogL3ZhdWx0L3B1YmxpY19rZXlfaW5mbyB8IEdldCB0aGUgcHVibGljIGtleSBmb3IgYSBkZXJpdmF0aW9uIHBhdGgKKlZhdWx0c0FwaSogfCBbKipnZXRfcHVibGljX2tleV9pbmZvX2Zvcl9hZGRyZXNzKipdKGRvY3MvVmF1bHRzQXBpLm1kI2dldF9wdWJsaWNfa2V5X2luZm9fZm9yX2FkZHJlc3MpIHwgKipHRVQqKiAvdmF1bHQvYWNjb3VudHMve3ZhdWx0QWNjb3VudElkfS97YXNzZXRJZH0ve2NoYW5nZX0ve2FkZHJlc3NJbmRleH0vcHVibGljX2tleV9pbmZvIHwgR2V0IGFuIGFzc2V0JiMzOTtzIHB1YmxpYyBrZXkKKlZhdWx0c0FwaSogfCBbKipnZXRfdW5zcGVudF9pbnB1dHMqKl0oZG9jcy9WYXVsdHNBcGkubWQjZ2V0X3Vuc3BlbnRfaW5wdXRzKSB8ICoqR0VUKiogL3ZhdWx0L2FjY291bnRzL3t2YXVsdEFjY291bnRJZH0ve2Fzc2V0SWR9L3Vuc3BlbnRfaW5wdXRzIHwgR2V0IFVUWE8gdW5zcGVudCBpbnB1dHMgaW5mb3JtYXRpb24KKlZhdWx0c0FwaSogfCBbKipnZXRfdmF1bHRfYWNjb3VudCoqXShkb2NzL1ZhdWx0c0FwaS5tZCNnZXRfdmF1bHRfYWNjb3VudCkgfCAqKkdFVCoqIC92YXVsdC9hY2NvdW50cy97dmF1bHRBY2NvdW50SWR9IHwgR2V0IGEgdmF1bHQgYWNjb3VudCBieSBJRAoqVmF1bHRzQXBpKiB8IFsqKmdldF92YXVsdF9hY2NvdW50X2Fzc2V0KipdKGRvY3MvVmF1bHRzQXBpLm1kI2dldF92YXVsdF9hY2NvdW50X2Fzc2V0KSB8ICoqR0VUKiogL3ZhdWx0L2FjY291bnRzL3t2YXVsdEFjY291bnRJZH0ve2Fzc2V0SWR9IHwgR2V0IHRoZSBhc3NldCBiYWxhbmNlIGZvciBhIHZhdWx0IGFjY291bnQKKlZhdWx0c0FwaSogfCBbKipnZXRfdmF1bHRfYWNjb3VudF9hc3NldF9hZGRyZXNzZXNfcGFnaW5hdGVkKipdKGRvY3MvVmF1bHRzQXBpLm1kI2dldF92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3Nlc19wYWdpbmF0ZWQpIHwgKipHRVQqKiAvdmF1bHQvYWNjb3VudHMve3ZhdWx0QWNjb3VudElkfS97YXNzZXRJZH0vYWRkcmVzc2VzX3BhZ2luYXRlZCB8IEdldCBhZGRyZXNzZXMgKFBhZ2luYXRlZCkKKlZhdWx0c0FwaSogfCBbKipnZXRfdmF1bHRfYXNzZXRzKipdKGRvY3MvVmF1bHRzQXBpLm1kI2dldF92YXVsdF9hc3NldHMpIHwgKipHRVQqKiAvdmF1bHQvYXNzZXRzIHwgR2V0IGFzc2V0IGJhbGFuY2UgZm9yIGNob3NlbiBhc3NldHMKKlZhdWx0c0FwaSogfCBbKipnZXRfdmF1bHRfYmFsYW5jZV9ieV9hc3NldCoqXShkb2NzL1ZhdWx0c0FwaS5tZCNnZXRfdmF1bHRfYmFsYW5jZV9ieV9hc3NldCkgfCAqKkdFVCoqIC92YXVsdC9hc3NldHMve2Fzc2V0SWR9IHwgR2V0IHZhdWx0IGJhbGFuY2UgYnkgYW4gYXNzZXQKKlZhdWx0c0FwaSogfCBbKipoaWRlX3ZhdWx0X2FjY291bnQqKl0oZG9jcy9WYXVsdHNBcGkubWQjaGlkZV92YXVsdF9hY2NvdW50KSB8ICoqUE9TVCoqIC92YXVsdC9hY2NvdW50cy97dmF1bHRBY2NvdW50SWR9L2hpZGUgfCBIaWRlIGEgdmF1bHQgYWNjb3VudCBpbiB0aGUgY29uc29sZQoqVmF1bHRzQXBpKiB8IFsqKnNldF9jdXN0b21lcl9yZWZfaWRfZm9yX2FkZHJlc3MqKl0oZG9jcy9WYXVsdHNBcGkubWQjc2V0X2N1c3RvbWVyX3JlZl9pZF9mb3JfYWRkcmVzcykgfCAqKlBPU1QqKiAvdmF1bHQvYWNjb3VudHMve3ZhdWx0QWNjb3VudElkfS97YXNzZXRJZH0vYWRkcmVzc2VzL3thZGRyZXNzSWR9L3NldF9jdXN0b21lcl9yZWZfaWQgfCBBc3NpZ24gQU1MIGN1c3RvbWVyIHJlZmVyZW5jZSBJRAoqVmF1bHRzQXBpKiB8IFsqKnNldF92YXVsdF9hY2NvdW50X2F1dG9fZnVlbCoqXShkb2NzL1ZhdWx0c0FwaS5tZCNzZXRfdmF1bHRfYWNjb3VudF9hdXRvX2Z1ZWwpIHwgKipQT1NUKiogL3ZhdWx0L2FjY291bnRzL3t2YXVsdEFjY291bnRJZH0vc2V0X2F1dG9fZnVlbCB8IFNldCBhdXRvIGZ1ZWxpbmcgdG8gb24gb3Igb2ZmCipWYXVsdHNBcGkqIHwgWyoqc2V0X3ZhdWx0X2FjY291bnRfY3VzdG9tZXJfcmVmX2lkKipdKGRvY3MvVmF1bHRzQXBpLm1kI3NldF92YXVsdF9hY2NvdW50X2N1c3RvbWVyX3JlZl9pZCkgfCAqKlBPU1QqKiAvdmF1bHQvYWNjb3VudHMve3ZhdWx0QWNjb3VudElkfS9zZXRfY3VzdG9tZXJfcmVmX2lkIHwgU2V0IGFuIEFNTC9LWVQgSUQgZm9yIGEgdmF1bHQgYWNjb3VudAoqVmF1bHRzQXBpKiB8IFsqKnVuaGlkZV92YXVsdF9hY2NvdW50KipdKGRvY3MvVmF1bHRzQXBpLm1kI3VuaGlkZV92YXVsdF9hY2NvdW50KSB8ICoqUE9TVCoqIC92YXVsdC9hY2NvdW50cy97dmF1bHRBY2NvdW50SWR9L3VuaGlkZSB8IFVuaGlkZSBhIHZhdWx0IGFjY291bnQgaW4gdGhlIGNvbnNvbGUKKlZhdWx0c0FwaSogfCBbKip1cGRhdGVfdmF1bHRfYWNjb3VudCoqXShkb2NzL1ZhdWx0c0FwaS5tZCN1cGRhdGVfdmF1bHRfYWNjb3VudCkgfCAqKlBVVCoqIC92YXVsdC9hY2NvdW50cy97dmF1bHRBY2NvdW50SWR9IHwgUmVuYW1lIGEgdmF1bHQgYWNjb3VudAoqVmF1bHRzQXBpKiB8IFsqKnVwZGF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3MqKl0oZG9jcy9WYXVsdHNBcGkubWQjdXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzcykgfCAqKlBVVCoqIC92YXVsdC9hY2NvdW50cy97dmF1bHRBY2NvdW50SWR9L3thc3NldElkfS9hZGRyZXNzZXMve2FkZHJlc3NJZH0gfCBVcGRhdGUgYWRkcmVzcyBkZXNjcmlwdGlvbgoqVmF1bHRzQXBpKiB8IFsqKnVwZGF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2JhbGFuY2UqKl0oZG9jcy9WYXVsdHNBcGkubWQjdXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYmFsYW5jZSkgfCAqKlBPU1QqKiAvdmF1bHQvYWNjb3VudHMve3ZhdWx0QWNjb3VudElkfS97YXNzZXRJZH0vYmFsYW5jZSB8IFJlZnJlc2ggYXNzZXQgYmFsYW5jZSBkYXRhCipXZWIzQ29ubmVjdGlvbnNBcGkqIHwgWyoqY3JlYXRlKipdKGRvY3MvV2ViM0Nvbm5lY3Rpb25zQXBpLm1kI2NyZWF0ZSkgfCAqKlBPU1QqKiAvY29ubmVjdGlvbnMvd2MgfCBDcmVhdGUgYSBuZXcgV2ViMyBjb25uZWN0aW9uLgoqV2ViM0Nvbm5lY3Rpb25zQXBpKiB8IFsqKmdldCoqXShkb2NzL1dlYjNDb25uZWN0aW9uc0FwaS5tZCNnZXQpIHwgKipHRVQqKiAvY29ubmVjdGlvbnMgfCBMaXN0IGFsbCBvcGVuIFdlYjMgY29ubmVjdGlvbnMuCipXZWIzQ29ubmVjdGlvbnNBcGkqIHwgWyoqcmVtb3ZlKipdKGRvY3MvV2ViM0Nvbm5lY3Rpb25zQXBpLm1kI3JlbW92ZSkgfCAqKkRFTEVURSoqIC9jb25uZWN0aW9ucy93Yy97aWR9IHwgUmVtb3ZlIGFuIGV4aXN0aW5nIFdlYjMgY29ubmVjdGlvbi4KKldlYjNDb25uZWN0aW9uc0FwaSogfCBbKipzdWJtaXQqKl0oZG9jcy9XZWIzQ29ubmVjdGlvbnNBcGkubWQjc3VibWl0KSB8ICoqUFVUKiogL2Nvbm5lY3Rpb25zL3djL3tpZH0gfCBSZXNwb25kIHRvIGEgcGVuZGluZyBXZWIzIGNvbm5lY3Rpb24gcmVxdWVzdC4KKldlYmhvb2tzQXBpKiB8IFsqKnJlc2VuZF90cmFuc2FjdGlvbl93ZWJob29rcyoqXShkb2NzL1dlYmhvb2tzQXBpLm1kI3Jlc2VuZF90cmFuc2FjdGlvbl93ZWJob29rcykgfCAqKlBPU1QqKiAvd2ViaG9va3MvcmVzZW5kL3t0eElkfSB8IFJlc2VuZCB3ZWJob29rcyBmb3IgYSB0cmFuc2FjdGlvbiBieSBJRAoqV2ViaG9va3NBcGkqIHwgWyoqcmVzZW5kX3dlYmhvb2tzKipdKGRvY3MvV2ViaG9va3NBcGkubWQjcmVzZW5kX3dlYmhvb2tzKSB8ICoqUE9TVCoqIC93ZWJob29rcy9yZXNlbmQgfCBSZXNlbmQgZmFpbGVkIHdlYmhvb2tzCipXZWJob29rc1YyQXBpKiB8IFsqKmNyZWF0ZV93ZWJob29rKipdKGRvY3MvV2ViaG9va3NWMkFwaS5tZCNjcmVhdGVfd2ViaG9vaykgfCAqKlBPU1QqKiAvd2ViaG9va3MgfCBDcmVhdGUgYSBuZXcgd2ViaG9vawoqV2ViaG9va3NWMkFwaSogfCBbKipkZWxldGVfd2ViaG9vayoqXShkb2NzL1dlYmhvb2tzVjJBcGkubWQjZGVsZXRlX3dlYmhvb2spIHwgKipERUxFVEUqKiAvd2ViaG9va3Mve3dlYmhvb2tJZH0gfCBEZWxldGUgd2ViaG9vawoqV2ViaG9va3NWMkFwaSogfCBbKipnZXRfbWV0cmljcyoqXShkb2NzL1dlYmhvb2tzVjJBcGkubWQjZ2V0X21ldHJpY3MpIHwgKipHRVQqKiAvd2ViaG9va3Mve3dlYmhvb2tJZH0vbWV0cmljcy97bWV0cmljTmFtZX0gfCBHZXQgd2ViaG9vayBtZXRyaWNzCipXZWJob29rc1YyQXBpKiB8IFsqKmdldF9ub3RpZmljYXRpb24qKl0oZG9jcy9XZWJob29rc1YyQXBpLm1kI2dldF9ub3RpZmljYXRpb24pIHwgKipHRVQqKiAvd2ViaG9va3Mve3dlYmhvb2tJZH0vbm90aWZpY2F0aW9ucy97bm90aWZpY2F0aW9uSWR9IHwgR2V0IG5vdGlmaWNhdGlvbiBieSBpZAoqV2ViaG9va3NWMkFwaSogfCBbKipnZXRfbm90aWZpY2F0aW9uX2F0dGVtcHRzKipdKGRvY3MvV2ViaG9va3NWMkFwaS5tZCNnZXRfbm90aWZpY2F0aW9uX2F0dGVtcHRzKSB8ICoqR0VUKiogL3dlYmhvb2tzL3t3ZWJob29rSWR9L25vdGlmaWNhdGlvbnMve25vdGlmaWNhdGlvbklkfS9hdHRlbXB0cyB8IEdldCBub3RpZmljYXRpb24gYXR0ZW1wdHMKKldlYmhvb2tzVjJBcGkqIHwgWyoqZ2V0X25vdGlmaWNhdGlvbnMqKl0oZG9jcy9XZWJob29rc1YyQXBpLm1kI2dldF9ub3RpZmljYXRpb25zKSB8ICoqR0VUKiogL3dlYmhvb2tzL3t3ZWJob29rSWR9L25vdGlmaWNhdGlvbnMgfCBHZXQgYWxsIG5vdGlmaWNhdGlvbnMgYnkgd2ViaG9vayBpZAoqV2ViaG9va3NWMkFwaSogfCBbKipnZXRfcmVzZW5kX2pvYl9zdGF0dXMqKl0oZG9jcy9XZWJob29rc1YyQXBpLm1kI2dldF9yZXNlbmRfam9iX3N0YXR1cykgfCAqKkdFVCoqIC93ZWJob29rcy97d2ViaG9va0lkfS9ub3RpZmljYXRpb25zL3Jlc2VuZF9mYWlsZWQvam9icy97am9iSWR9IHwgR2V0IHJlc2VuZCBqb2Igc3RhdHVzCipXZWJob29rc1YyQXBpKiB8IFsqKmdldF93ZWJob29rKipdKGRvY3MvV2ViaG9va3NWMkFwaS5tZCNnZXRfd2ViaG9vaykgfCAqKkdFVCoqIC93ZWJob29rcy97d2ViaG9va0lkfSB8IEdldCB3ZWJob29rIGJ5IGlkCipXZWJob29rc1YyQXBpKiB8IFsqKmdldF93ZWJob29rcyoqXShkb2NzL1dlYmhvb2tzVjJBcGkubWQjZ2V0X3dlYmhvb2tzKSB8ICoqR0VUKiogL3dlYmhvb2tzIHwgR2V0IGFsbCB3ZWJob29rcwoqV2ViaG9va3NWMkFwaSogfCBbKipyZXNlbmRfZmFpbGVkX25vdGlmaWNhdGlvbnMqKl0oZG9jcy9XZWJob29rc1YyQXBpLm1kI3Jlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9ucykgfCAqKlBPU1QqKiAvd2ViaG9va3Mve3dlYmhvb2tJZH0vbm90aWZpY2F0aW9ucy9yZXNlbmRfZmFpbGVkIHwgUmVzZW5kIGZhaWxlZCBub3RpZmljYXRpb25zCipXZWJob29rc1YyQXBpKiB8IFsqKnJlc2VuZF9ub3RpZmljYXRpb25fYnlfaWQqKl0oZG9jcy9XZWJob29rc1YyQXBpLm1kI3Jlc2VuZF9ub3RpZmljYXRpb25fYnlfaWQpIHwgKipQT1NUKiogL3dlYmhvb2tzL3t3ZWJob29rSWR9L25vdGlmaWNhdGlvbnMve25vdGlmaWNhdGlvbklkfS9yZXNlbmQgfCBSZXNlbmQgbm90aWZpY2F0aW9uIGJ5IGlkCipXZWJob29rc1YyQXBpKiB8IFsqKnJlc2VuZF9ub3RpZmljYXRpb25zX2J5X3Jlc291cmNlX2lkKipdKGRvY3MvV2ViaG9va3NWMkFwaS5tZCNyZXNlbmRfbm90aWZpY2F0aW9uc19ieV9yZXNvdXJjZV9pZCkgfCAqKlBPU1QqKiAvd2ViaG9va3Mve3dlYmhvb2tJZH0vbm90aWZpY2F0aW9ucy9yZXNlbmRfYnlfcmVzb3VyY2UgfCBSZXNlbmQgbm90aWZpY2F0aW9ucyBieSByZXNvdXJjZSBJZAoqV2ViaG9va3NWMkFwaSogfCBbKip1cGRhdGVfd2ViaG9vayoqXShkb2NzL1dlYmhvb2tzVjJBcGkubWQjdXBkYXRlX3dlYmhvb2spIHwgKipQQVRDSCoqIC93ZWJob29rcy97d2ViaG9va0lkfSB8IFVwZGF0ZSB3ZWJob29rCipXb3Jrc3BhY2VBcGkqIHwgWyoqZ2V0X3dvcmtzcGFjZSoqXShkb2NzL1dvcmtzcGFjZUFwaS5tZCNnZXRfd29ya3NwYWNlKSB8ICoqR0VUKiogL3dvcmtzcGFjZSB8IEdldCB3b3Jrc3BhY2UKKldvcmtzcGFjZVN0YXR1c0JldGFBcGkqIHwgWyoqZ2V0X3dvcmtzcGFjZV9zdGF0dXMqKl0oZG9jcy9Xb3Jrc3BhY2VTdGF0dXNCZXRhQXBpLm1kI2dldF93b3Jrc3BhY2Vfc3RhdHVzKSB8ICoqR0VUKiogL21hbmFnZW1lbnQvd29ya3NwYWNlX3N0YXR1cyB8IFJldHVybnMgY3VycmVudCB3b3Jrc3BhY2Ugc3RhdHVzCipXaGl0ZWxpc3RJcEFkZHJlc3Nlc0FwaSogfCBbKipnZXRfd2hpdGVsaXN0X2lwX2FkZHJlc3NlcyoqXShkb2NzL1doaXRlbGlzdElwQWRkcmVzc2VzQXBpLm1kI2dldF93aGl0ZWxpc3RfaXBfYWRkcmVzc2VzKSB8ICoqR0VUKiogL21hbmFnZW1lbnQvYXBpX3VzZXJzL3t1c2VySWR9L3doaXRlbGlzdF9pcF9hZGRyZXNzZXMgfCBHZXQgd2hpdGVsaXN0ZWQgaXAgYWRkcmVzc2VzIGZvciBhbiBBUEkgS2V5CgoKIyMgRG9jdW1lbnRhdGlvbiBGb3IgTW9kZWxzCgogLSBbQVBJVXNlcl0oZG9jcy9BUElVc2VyLm1kKQogLSBbQWJhUGF5bWVudEluZm9dKGRvY3MvQWJhUGF5bWVudEluZm8ubWQpCiAtIFtBYmlGdW5jdGlvbl0oZG9jcy9BYmlGdW5jdGlvbi5tZCkKIC0gW0FjY2Vzc1JlZ2lzdHJ5QWRkcmVzc0l0ZW1dKGRvY3MvQWNjZXNzUmVnaXN0cnlBZGRyZXNzSXRlbS5tZCkKIC0gW0FjY2Vzc1JlZ2lzdHJ5Q3VycmVudFN0YXRlUmVzcG9uc2VdKGRvY3MvQWNjZXNzUmVnaXN0cnlDdXJyZW50U3RhdGVSZXNwb25zZS5tZCkKIC0gW0FjY2Vzc1JlZ2lzdHJ5U3VtbWFyeVJlc3BvbnNlXShkb2NzL0FjY2Vzc1JlZ2lzdHJ5U3VtbWFyeVJlc3BvbnNlLm1kKQogLSBbQWNjZXNzVHlwZV0oZG9jcy9BY2Nlc3NUeXBlLm1kKQogLSBbQWNjb3VudF0oZG9jcy9BY2NvdW50Lm1kKQogLSBbQWNjb3VudEFjY2Vzc10oZG9jcy9BY2NvdW50QWNjZXNzLm1kKQogLSBbQWNjb3VudEJhc2VdKGRvY3MvQWNjb3VudEJhc2UubWQpCiAtIFtBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlcl0oZG9jcy9BY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlci5tZCkKIC0gW0FjY291bnRCYXNlZEFjY2Vzc1Byb3ZpZGVySW5mb10oZG9jcy9BY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlckluZm8ubWQpCiAtIFtBY2NvdW50QmFzZWRQcm92aWRlckRldGFpbHNdKGRvY3MvQWNjb3VudEJhc2VkUHJvdmlkZXJEZXRhaWxzLm1kKQogLSBbQWNjb3VudENvbmZpZ10oZG9jcy9BY2NvdW50Q29uZmlnLm1kKQogLSBbQWNjb3VudEhvbGRlckRldGFpbHNdKGRvY3MvQWNjb3VudEhvbGRlckRldGFpbHMubWQpCiAtIFtBY2NvdW50SWRlbnRpZmllcl0oZG9jcy9BY2NvdW50SWRlbnRpZmllci5tZCkKIC0gW0FjY291bnRSZWZlcmVuY2VdKGRvY3MvQWNjb3VudFJlZmVyZW5jZS5tZCkKIC0gW0FjY291bnRUeXBlXShkb2NzL0FjY291bnRUeXBlLm1kKQogLSBbQWNjb3VudFR5cGUyXShkb2NzL0FjY291bnRUeXBlMi5tZCkKIC0gW0FjaEFjY291bnRUeXBlXShkb2NzL0FjaEFjY291bnRUeXBlLm1kKQogLSBbQWNoQWRkcmVzc10oZG9jcy9BY2hBZGRyZXNzLm1kKQogLSBbQWNoRGVzdGluYXRpb25dKGRvY3MvQWNoRGVzdGluYXRpb24ubWQpCiAtIFtBY2hQYXltZW50SW5mb10oZG9jcy9BY2hQYXltZW50SW5mby5tZCkKIC0gW0FkYXB0ZXJQcm9jZXNzaW5nUmVzdWx0XShkb2NzL0FkYXB0ZXJQcm9jZXNzaW5nUmVzdWx0Lm1kKQogLSBbQWRkQWJpUmVxdWVzdER0b10oZG9jcy9BZGRBYmlSZXF1ZXN0RHRvLm1kKQogLSBbQWRkQXNzZXRUb0V4dGVybmFsV2FsbGV0UmVxdWVzdF0oZG9jcy9BZGRBc3NldFRvRXh0ZXJuYWxXYWxsZXRSZXF1ZXN0Lm1kKQogLSBbQWRkQ29sbGF0ZXJhbFJlcXVlc3RCb2R5XShkb2NzL0FkZENvbGxhdGVyYWxSZXF1ZXN0Qm9keS5tZCkKIC0gW0FkZENvbnRyYWN0QXNzZXRSZXF1ZXN0XShkb2NzL0FkZENvbnRyYWN0QXNzZXRSZXF1ZXN0Lm1kKQogLSBbQWRkQ29zaWduZXJSZXF1ZXN0XShkb2NzL0FkZENvc2lnbmVyUmVxdWVzdC5tZCkKIC0gW0FkZENvc2lnbmVyUmVzcG9uc2VdKGRvY3MvQWRkQ29zaWduZXJSZXNwb25zZS5tZCkKIC0gW0FkZEV4Y2hhbmdlQWNjb3VudFJlcXVlc3RdKGRvY3MvQWRkRXhjaGFuZ2VBY2NvdW50UmVxdWVzdC5tZCkKIC0gW0FkZEV4Y2hhbmdlQWNjb3VudFJlc3BvbnNlXShkb2NzL0FkZEV4Y2hhbmdlQWNjb3VudFJlc3BvbnNlLm1kKQogLSBbQWRkaXRpb25hbEluZm9dKGRvY3MvQWRkaXRpb25hbEluZm8ubWQpCiAtIFtBZGRpdGlvbmFsSW5mb1JlcXVlc3RdKGRvY3MvQWRkaXRpb25hbEluZm9SZXF1ZXN0Lm1kKQogLSBbQWRkaXRpb25hbEluZm9SZXF1ZXN0QWRkaXRpb25hbEluZm9dKGRvY3MvQWRkaXRpb25hbEluZm9SZXF1ZXN0QWRkaXRpb25hbEluZm8ubWQpCiAtIFtBZGRyZXNzQmFsYW5jZUl0ZW1EdG9dKGRvY3MvQWRkcmVzc0JhbGFuY2VJdGVtRHRvLm1kKQogLSBbQWRkcmVzc0JhbGFuY2VQYWdlZFJlc3BvbnNlXShkb2NzL0FkZHJlc3NCYWxhbmNlUGFnZWRSZXNwb25zZS5tZCkKIC0gW0FkZHJlc3NOb3RBdmFpbGFibGVFcnJvcl0oZG9jcy9BZGRyZXNzTm90QXZhaWxhYmxlRXJyb3IubWQpCiAtIFtBZGRyZXNzUmVnaXN0cnlFcnJvcl0oZG9jcy9BZGRyZXNzUmVnaXN0cnlFcnJvci5tZCkKIC0gW0FkZHJlc3NSZWdpc3RyeUxlZ2FsRW50aXR5XShkb2NzL0FkZHJlc3NSZWdpc3RyeUxlZ2FsRW50aXR5Lm1kKQogLSBbQWxlcnRFeHBvc3VyZVR5cGVFbnVtXShkb2NzL0FsZXJ0RXhwb3N1cmVUeXBlRW51bS5tZCkKIC0gW0FsZXJ0TGV2ZWxFbnVtXShkb2NzL0FsZXJ0TGV2ZWxFbnVtLm1kKQogLSBbQW1sQWxlcnRdKGRvY3MvQW1sQWxlcnQubWQpCiAtIFtBbWxNYXRjaGVkUnVsZV0oZG9jcy9BbWxNYXRjaGVkUnVsZS5tZCkKIC0gW0FtbFJlZ2lzdHJhdGlvblJlc3VsdF0oZG9jcy9BbWxSZWdpc3RyYXRpb25SZXN1bHQubWQpCiAtIFtBbWxSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZF0oZG9jcy9BbWxSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZC5tZCkKIC0gW0FtbFJlc3VsdF0oZG9jcy9BbWxSZXN1bHQubWQpCiAtIFtBbWxTY3JlZW5pbmdSZXN1bHRdKGRvY3MvQW1sU2NyZWVuaW5nUmVzdWx0Lm1kKQogLSBbQW1sU3RhdHVzRW51bV0oZG9jcy9BbWxTdGF0dXNFbnVtLm1kKQogLSBbQW1sVmVyZGljdE1hbnVhbFJlcXVlc3RdKGRvY3MvQW1sVmVyZGljdE1hbnVhbFJlcXVlc3QubWQpCiAtIFtBbWxWZXJkaWN0TWFudWFsUmVzcG9uc2VdKGRvY3MvQW1sVmVyZGljdE1hbnVhbFJlc3BvbnNlLm1kKQogLSBbQW1vdW50QW5kQ2hhaW5EZXNjcmlwdG9yXShkb2NzL0Ftb3VudEFuZENoYWluRGVzY3JpcHRvci5tZCkKIC0gW0Ftb3VudENvbmZpZ10oZG9jcy9BbW91bnRDb25maWcubWQpCiAtIFtBbW91bnRDb25maWdDdXJyZW5jeV0oZG9jcy9BbW91bnRDb25maWdDdXJyZW5jeS5tZCkKIC0gW0Ftb3VudEluZm9dKGRvY3MvQW1vdW50SW5mby5tZCkKIC0gW0Ftb3VudE92ZXJUaW1lQ29uZmlnXShkb2NzL0Ftb3VudE92ZXJUaW1lQ29uZmlnLm1kKQogLSBbQW1vdW50UmFuZ2VdKGRvY3MvQW1vdW50UmFuZ2UubWQpCiAtIFtBbW91bnRSYW5nZU1pbk1heF0oZG9jcy9BbW91bnRSYW5nZU1pbk1heC5tZCkKIC0gW0Ftb3VudFJhbmdlTWluTWF4Ml0oZG9jcy9BbW91bnRSYW5nZU1pbk1heDIubWQpCiAtIFtBcGlLZXldKGRvY3MvQXBpS2V5Lm1kKQogLSBbQXBpS2V5c1BhZ2luYXRlZFJlc3BvbnNlXShkb2NzL0FwaUtleXNQYWdpbmF0ZWRSZXNwb25zZS5tZCkKIC0gW0FwcHJvdmFsUmVxdWVzdF0oZG9jcy9BcHByb3ZhbFJlcXVlc3QubWQpCiAtIFtBcHByb3ZlcnNDb25maWddKGRvY3MvQXBwcm92ZXJzQ29uZmlnLm1kKQogLSBbQXBwcm92ZXJzQ29uZmlnQXBwcm92YWxHcm91cHNJbm5lcl0oZG9jcy9BcHByb3ZlcnNDb25maWdBcHByb3ZhbEdyb3Vwc0lubmVyLm1kKQogLSBbQXNzZXRdKGRvY3MvQXNzZXQubWQpCiAtIFtBc3NldEFscmVhZHlFeGlzdEh0dHBFcnJvcl0oZG9jcy9Bc3NldEFscmVhZHlFeGlzdEh0dHBFcnJvci5tZCkKIC0gW0Fzc2V0QW1vdW50XShkb2NzL0Fzc2V0QW1vdW50Lm1kKQogLSBbQXNzZXRCYWRSZXF1ZXN0RXJyb3JSZXNwb25zZV0oZG9jcy9Bc3NldEJhZFJlcXVlc3RFcnJvclJlc3BvbnNlLm1kKQogLSBbQXNzZXRDbGFzc10oZG9jcy9Bc3NldENsYXNzLm1kKQogLSBbQXNzZXRDb25maWddKGRvY3MvQXNzZXRDb25maWcubWQpCiAtIFtBc3NldENvbmZsaWN0RXJyb3JSZXNwb25zZV0oZG9jcy9Bc3NldENvbmZsaWN0RXJyb3JSZXNwb25zZS5tZCkKIC0gW0Fzc2V0RGV0YWlsc01ldGFkYXRhXShkb2NzL0Fzc2V0RGV0YWlsc01ldGFkYXRhLm1kKQogLSBbQXNzZXREZXRhaWxzT25jaGFpbl0oZG9jcy9Bc3NldERldGFpbHNPbmNoYWluLm1kKQogLSBbQXNzZXRGZWF0dXJlXShkb2NzL0Fzc2V0RmVhdHVyZS5tZCkKIC0gW0Fzc2V0Rm9yYmlkZGVuRXJyb3JSZXNwb25zZV0oZG9jcy9Bc3NldEZvcmJpZGRlbkVycm9yUmVzcG9uc2UubWQpCiAtIFtBc3NldEludGVybmFsU2VydmVyRXJyb3JSZXNwb25zZV0oZG9jcy9Bc3NldEludGVybmFsU2VydmVyRXJyb3JSZXNwb25zZS5tZCkKIC0gW0Fzc2V0TWVkaWFdKGRvY3MvQXNzZXRNZWRpYS5tZCkKIC0gW0Fzc2V0TWVkaWFBdHRyaWJ1dGVzXShkb2NzL0Fzc2V0TWVkaWFBdHRyaWJ1dGVzLm1kKQogLSBbQXNzZXRNZXRhZGF0YV0oZG9jcy9Bc3NldE1ldGFkYXRhLm1kKQogLSBbQXNzZXRNZXRhZGF0YUR0b10oZG9jcy9Bc3NldE1ldGFkYXRhRHRvLm1kKQogLSBbQXNzZXRNZXRhZGF0YVJlcXVlc3RdKGRvY3MvQXNzZXRNZXRhZGF0YVJlcXVlc3QubWQpCiAtIFtBc3NldE5vdEZvdW5kRXJyb3JSZXNwb25zZV0oZG9jcy9Bc3NldE5vdEZvdW5kRXJyb3JSZXNwb25zZS5tZCkKIC0gW0Fzc2V0Tm90ZV0oZG9jcy9Bc3NldE5vdGUubWQpCiAtIFtBc3NldE5vdGVSZXF1ZXN0XShkb2NzL0Fzc2V0Tm90ZVJlcXVlc3QubWQpCiAtIFtBc3NldE9uY2hhaW5dKGRvY3MvQXNzZXRPbmNoYWluLm1kKQogLSBbQXNzZXRQcmljZUZvcmJpZGRlbkVycm9yUmVzcG9uc2VdKGRvY3MvQXNzZXRQcmljZUZvcmJpZGRlbkVycm9yUmVzcG9uc2UubWQpCiAtIFtBc3NldFByaWNlTm90Rm91bmRFcnJvclJlc3BvbnNlXShkb2NzL0Fzc2V0UHJpY2VOb3RGb3VuZEVycm9yUmVzcG9uc2UubWQpCiAtIFtBc3NldFByaWNlUmVzcG9uc2VdKGRvY3MvQXNzZXRQcmljZVJlc3BvbnNlLm1kKQogLSBbQXNzZXRSZXNwb25zZV0oZG9jcy9Bc3NldFJlc3BvbnNlLm1kKQogLSBbQXNzZXRTY29wZV0oZG9jcy9Bc3NldFNjb3BlLm1kKQogLSBbQXNzZXRUeXBlUmVzcG9uc2VdKGRvY3MvQXNzZXRUeXBlUmVzcG9uc2UubWQpCiAtIFtBc3NldFR5cGVzQ29uZmlnSW5uZXJdKGRvY3MvQXNzZXRUeXBlc0NvbmZpZ0lubmVyLm1kKQogLSBbQXNzZXRXYWxsZXRdKGRvY3MvQXNzZXRXYWxsZXQubWQpCiAtIFtBdWRpdExvZ0RhdGFdKGRvY3MvQXVkaXRMb2dEYXRhLm1kKQogLSBbQXVkaXRvckRhdGFdKGRvY3MvQXVkaXRvckRhdGEubWQpCiAtIFtBdXRob3JpemF0aW9uR3JvdXBzXShkb2NzL0F1dGhvcml6YXRpb25Hcm91cHMubWQpCiAtIFtBdXRob3JpemF0aW9uSW5mb10oZG9jcy9BdXRob3JpemF0aW9uSW5mby5tZCkKIC0gW0JhbGFuY2VIaXN0b3J5SXRlbUR0b10oZG9jcy9CYWxhbmNlSGlzdG9yeUl0ZW1EdG8ubWQpCiAtIFtCYWxhbmNlSGlzdG9yeVBhZ2VkUmVzcG9uc2VdKGRvY3MvQmFsYW5jZUhpc3RvcnlQYWdlZFJlc3BvbnNlLm1kKQogLSBbQmFua0FkZHJlc3NdKGRvY3MvQmFua0FkZHJlc3MubWQpCiAtIFtCYXNlUHJvdmlkZXJdKGRvY3MvQmFzZVByb3ZpZGVyLm1kKQogLSBbQmFzaWNBZGRyZXNzUmVxdWVzdF0oZG9jcy9CYXNpY0FkZHJlc3NSZXF1ZXN0Lm1kKQogLSBbQmxvY2tJbmZvXShkb2NzL0Jsb2NrSW5mby5tZCkKIC0gW0Jsb2NrY2hhaW5BZGRyZXNzXShkb2NzL0Jsb2NrY2hhaW5BZGRyZXNzLm1kKQogLSBbQmxvY2tjaGFpbkRlc3RpbmF0aW9uXShkb2NzL0Jsb2NrY2hhaW5EZXN0aW5hdGlvbi5tZCkKIC0gW0Jsb2NrY2hhaW5FeHBsb3Jlcl0oZG9jcy9CbG9ja2NoYWluRXhwbG9yZXIubWQpCiAtIFtCbG9ja2NoYWluTWVkaWFdKGRvY3MvQmxvY2tjaGFpbk1lZGlhLm1kKQogLSBbQmxvY2tjaGFpbk1ldGFkYXRhXShkb2NzL0Jsb2NrY2hhaW5NZXRhZGF0YS5tZCkKIC0gW0Jsb2NrY2hhaW5Ob3RGb3VuZEVycm9yUmVzcG9uc2VdKGRvY3MvQmxvY2tjaGFpbk5vdEZvdW5kRXJyb3JSZXNwb25zZS5tZCkKIC0gW0Jsb2NrY2hhaW5PbmNoYWluXShkb2NzL0Jsb2NrY2hhaW5PbmNoYWluLm1kKQogLSBbQmxvY2tjaGFpblJlc3BvbnNlXShkb2NzL0Jsb2NrY2hhaW5SZXNwb25zZS5tZCkKIC0gW0Jsb2NrY2hhaW5UcmFuc2Zlcl0oZG9jcy9CbG9ja2NoYWluVHJhbnNmZXIubWQpCiAtIFtCcHNGZWVdKGRvY3MvQnBzRmVlLm1kKQogLSBbQnVzaW5lc3NFbnRpdHlUeXBlRW51bV0oZG9jcy9CdXNpbmVzc0VudGl0eVR5cGVFbnVtLm1kKQogLSBbQnVzaW5lc3NJZGVudGlmaWNhdGlvbl0oZG9jcy9CdXNpbmVzc0lkZW50aWZpY2F0aW9uLm1kKQogLSBbQ2FsbGJhY2tIYW5kbGVyXShkb2NzL0NhbGxiYWNrSGFuZGxlci5tZCkKIC0gW0NhbGxiYWNrSGFuZGxlclJlcXVlc3RdKGRvY3MvQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdC5tZCkKIC0gW0NhbmNlbFRyYW5zYWN0aW9uUmVzcG9uc2VdKGRvY3MvQ2FuY2VsVHJhbnNhY3Rpb25SZXNwb25zZS5tZCkKIC0gW0NoYWluRGVzY3JpcHRvcl0oZG9jcy9DaGFpbkRlc2NyaXB0b3IubWQpCiAtIFtDaGFpbkluZm9SZXNwb25zZV0oZG9jcy9DaGFpbkluZm9SZXNwb25zZS5tZCkKIC0gW0NoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc10oZG9jcy9DaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnMubWQpCiAtIFtDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNSZWNlaXZlQ29uZmlnXShkb2NzL0NoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1JlY2VpdmVDb25maWcubWQpCiAtIFtDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNTZW5kQ29uZmlnXShkb2NzL0NoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1NlbmRDb25maWcubWQpCiAtIFtDaGFwc0FkZHJlc3NdKGRvY3MvQ2hhcHNBZGRyZXNzLm1kKQogLSBbQ2hhcHNEZXN0aW5hdGlvbl0oZG9jcy9DaGFwc0Rlc3RpbmF0aW9uLm1kKQogLSBbQ2hhcHNQYXltZW50SW5mb10oZG9jcy9DaGFwc1BheW1lbnRJbmZvLm1kKQogLSBbQ2xhaW1SZXdhcmRzUmVxdWVzdF0oZG9jcy9DbGFpbVJld2FyZHNSZXF1ZXN0Lm1kKQogLSBbQ29sbGVjdGlvbkJ1cm5SZXF1ZXN0RHRvXShkb2NzL0NvbGxlY3Rpb25CdXJuUmVxdWVzdER0by5tZCkKIC0gW0NvbGxlY3Rpb25CdXJuUmVzcG9uc2VEdG9dKGRvY3MvQ29sbGVjdGlvbkJ1cm5SZXNwb25zZUR0by5tZCkKIC0gW0NvbGxlY3Rpb25EZXBsb3lSZXF1ZXN0RHRvXShkb2NzL0NvbGxlY3Rpb25EZXBsb3lSZXF1ZXN0RHRvLm1kKQogLSBbQ29sbGVjdGlvbkxpbmtEdG9dKGRvY3MvQ29sbGVjdGlvbkxpbmtEdG8ubWQpCiAtIFtDb2xsZWN0aW9uTWV0YWRhdGFEdG9dKGRvY3MvQ29sbGVjdGlvbk1ldGFkYXRhRHRvLm1kKQogLSBbQ29sbGVjdGlvbk1pbnRSZXF1ZXN0RHRvXShkb2NzL0NvbGxlY3Rpb25NaW50UmVxdWVzdER0by5tZCkKIC0gW0NvbGxlY3Rpb25NaW50UmVzcG9uc2VEdG9dKGRvY3MvQ29sbGVjdGlvbk1pbnRSZXNwb25zZUR0by5tZCkKIC0gW0NvbGxlY3Rpb25Pd25lcnNoaXBSZXNwb25zZV0oZG9jcy9Db2xsZWN0aW9uT3duZXJzaGlwUmVzcG9uc2UubWQpCiAtIFtDb2xsZWN0aW9uVG9rZW5NZXRhZGF0YUF0dHJpYnV0ZUR0b10oZG9jcy9Db2xsZWN0aW9uVG9rZW5NZXRhZGF0YUF0dHJpYnV0ZUR0by5tZCkKIC0gW0NvbGxlY3Rpb25Ub2tlbk1ldGFkYXRhRHRvXShkb2NzL0NvbGxlY3Rpb25Ub2tlbk1ldGFkYXRhRHRvLm1kKQogLSBbQ29sbGVjdGlvblR5cGVdKGRvY3MvQ29sbGVjdGlvblR5cGUubWQpCiAtIFtDb21taXR0ZWRRdW90ZUVudW1dKGRvY3MvQ29tbWl0dGVkUXVvdGVFbnVtLm1kKQogLSBbQ29tbWl0dGVkUXVvdGVUeXBlXShkb2NzL0NvbW1pdHRlZFF1b3RlVHlwZS5tZCkKIC0gW0NvbXBsaWFuY2VSZXN1bHRGdWxsUGF5bG9hZF0oZG9jcy9Db21wbGlhbmNlUmVzdWx0RnVsbFBheWxvYWQubWQpCiAtIFtDb21wbGlhbmNlUmVzdWx0U3RhdHVzZXNFbnVtXShkb2NzL0NvbXBsaWFuY2VSZXN1bHRTdGF0dXNlc0VudW0ubWQpCiAtIFtDb21wbGlhbmNlUmVzdWx0c10oZG9jcy9Db21wbGlhbmNlUmVzdWx0cy5tZCkKIC0gW0NvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHRdKGRvY3MvQ29tcGxpYW5jZVNjcmVlbmluZ1Jlc3VsdC5tZCkKIC0gW0NvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHRGdWxsUGF5bG9hZF0oZG9jcy9Db21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0RnVsbFBheWxvYWQubWQpCiAtIFtDb25maWdDaGFuZ2VSZXF1ZXN0U3RhdHVzXShkb2NzL0NvbmZpZ0NoYW5nZVJlcXVlc3RTdGF0dXMubWQpCiAtIFtDb25maWdDb252ZXJzaW9uT3BlcmF0aW9uU25hcHNob3RdKGRvY3MvQ29uZmlnQ29udmVyc2lvbk9wZXJhdGlvblNuYXBzaG90Lm1kKQogLSBbQ29uZmlnRGlzYnVyc2VtZW50T3BlcmF0aW9uU25hcHNob3RdKGRvY3MvQ29uZmlnRGlzYnVyc2VtZW50T3BlcmF0aW9uU25hcHNob3QubWQpCiAtIFtDb25maWdPcGVyYXRpb25dKGRvY3MvQ29uZmlnT3BlcmF0aW9uLm1kKQogLSBbQ29uZmlnT3BlcmF0aW9uU25hcHNob3RdKGRvY3MvQ29uZmlnT3BlcmF0aW9uU25hcHNob3QubWQpCiAtIFtDb25maWdPcGVyYXRpb25TdGF0dXNdKGRvY3MvQ29uZmlnT3BlcmF0aW9uU3RhdHVzLm1kKQogLSBbQ29uZmlnVHJhbnNmZXJPcGVyYXRpb25TbmFwc2hvdF0oZG9jcy9Db25maWdUcmFuc2Zlck9wZXJhdGlvblNuYXBzaG90Lm1kKQogLSBbQ29ubmVjdGVkQWNjb3VudF0oZG9jcy9Db25uZWN0ZWRBY2NvdW50Lm1kKQogLSBbQ29ubmVjdGVkQWNjb3VudEFwcHJvdmFsU3RhdHVzXShkb2NzL0Nvbm5lY3RlZEFjY291bnRBcHByb3ZhbFN0YXR1cy5tZCkKIC0gW0Nvbm5lY3RlZEFjY291bnRBc3NldFR5cGVdKGRvY3MvQ29ubmVjdGVkQWNjb3VudEFzc2V0VHlwZS5tZCkKIC0gW0Nvbm5lY3RlZEFjY291bnRCYWxhbmNlc10oZG9jcy9Db25uZWN0ZWRBY2NvdW50QmFsYW5jZXMubWQpCiAtIFtDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXNSZXNwb25zZV0oZG9jcy9Db25uZWN0ZWRBY2NvdW50QmFsYW5jZXNSZXNwb25zZS5tZCkKIC0gW0Nvbm5lY3RlZEFjY291bnRDYXBhYmlsaXR5XShkb2NzL0Nvbm5lY3RlZEFjY291bnRDYXBhYmlsaXR5Lm1kKQogLSBbQ29ubmVjdGVkQWNjb3VudEVycm9yUmVzcG9uc2VdKGRvY3MvQ29ubmVjdGVkQWNjb3VudEVycm9yUmVzcG9uc2UubWQpCiAtIFtDb25uZWN0ZWRBY2NvdW50TWFuaWZlc3RdKGRvY3MvQ29ubmVjdGVkQWNjb3VudE1hbmlmZXN0Lm1kKQogLSBbQ29ubmVjdGVkQWNjb3VudFJhdGVSZXNwb25zZV0oZG9jcy9Db25uZWN0ZWRBY2NvdW50UmF0ZVJlc3BvbnNlLm1kKQogLSBbQ29ubmVjdGVkQWNjb3VudFRvdGFsQmFsYW5jZV0oZG9jcy9Db25uZWN0ZWRBY2NvdW50VG90YWxCYWxhbmNlLm1kKQogLSBbQ29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyXShkb2NzL0Nvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpci5tZCkKIC0gW0Nvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpclN1cHBvcnRlZFR5cGVdKGRvY3MvQ29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyU3VwcG9ydGVkVHlwZS5tZCkKIC0gW0Nvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpcnNSZXNwb25zZV0oZG9jcy9Db25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXJzUmVzcG9uc2UubWQpCiAtIFtDb25uZWN0ZWRBY2NvdW50c1Jlc3BvbnNlXShkb2NzL0Nvbm5lY3RlZEFjY291bnRzUmVzcG9uc2UubWQpCiAtIFtDb25uZWN0ZWRTaW5nbGVBY2NvdW50XShkb2NzL0Nvbm5lY3RlZFNpbmdsZUFjY291bnQubWQpCiAtIFtDb25uZWN0ZWRTaW5nbGVBY2NvdW50UmVzcG9uc2VdKGRvY3MvQ29ubmVjdGVkU2luZ2xlQWNjb3VudFJlc3BvbnNlLm1kKQogLSBbQ29uc29sZVVzZXJdKGRvY3MvQ29uc29sZVVzZXIubWQpCiAtIFtDb250cmFjdEFiaVJlc3BvbnNlRHRvXShkb2NzL0NvbnRyYWN0QWJpUmVzcG9uc2VEdG8ubWQpCiAtIFtDb250cmFjdEFiaVJlc3BvbnNlRHRvQWJpSW5uZXJdKGRvY3MvQ29udHJhY3RBYmlSZXNwb25zZUR0b0FiaUlubmVyLm1kKQogLSBbQ29udHJhY3RBZGRyZXNzUmVzcG9uc2VdKGRvY3MvQ29udHJhY3RBZGRyZXNzUmVzcG9uc2UubWQpCiAtIFtDb250cmFjdEF0dHJpYnV0ZXNdKGRvY3MvQ29udHJhY3RBdHRyaWJ1dGVzLm1kKQogLSBbQ29udHJhY3REYXRhRGVjb2RlRGF0YVR5cGVdKGRvY3MvQ29udHJhY3REYXRhRGVjb2RlRGF0YVR5cGUubWQpCiAtIFtDb250cmFjdERhdGFEZWNvZGVFcnJvcl0oZG9jcy9Db250cmFjdERhdGFEZWNvZGVFcnJvci5tZCkKIC0gW0NvbnRyYWN0RGF0YURlY29kZVJlcXVlc3RdKGRvY3MvQ29udHJhY3REYXRhRGVjb2RlUmVxdWVzdC5tZCkKIC0gW0NvbnRyYWN0RGF0YURlY29kZVJlcXVlc3REYXRhXShkb2NzL0NvbnRyYWN0RGF0YURlY29kZVJlcXVlc3REYXRhLm1kKQogLSBbQ29udHJhY3REYXRhRGVjb2RlUmVzcG9uc2VQYXJhbXNdKGRvY3MvQ29udHJhY3REYXRhRGVjb2RlUmVzcG9uc2VQYXJhbXMubWQpCiAtIFtDb250cmFjdERhdGFEZWNvZGVkUmVzcG9uc2VdKGRvY3MvQ29udHJhY3REYXRhRGVjb2RlZFJlc3BvbnNlLm1kKQogLSBbQ29udHJhY3REYXRhTG9nRGF0YVBhcmFtXShkb2NzL0NvbnRyYWN0RGF0YUxvZ0RhdGFQYXJhbS5tZCkKIC0gW0NvbnRyYWN0RGVwbG95UmVxdWVzdF0oZG9jcy9Db250cmFjdERlcGxveVJlcXVlc3QubWQpCiAtIFtDb250cmFjdERlcGxveVJlc3BvbnNlXShkb2NzL0NvbnRyYWN0RGVwbG95UmVzcG9uc2UubWQpCiAtIFtDb250cmFjdERvY10oZG9jcy9Db250cmFjdERvYy5tZCkKIC0gW0NvbnRyYWN0TWV0YWRhdGFEdG9dKGRvY3MvQ29udHJhY3RNZXRhZGF0YUR0by5tZCkKIC0gW0NvbnRyYWN0TWV0aG9kQ29uZmlnXShkb2NzL0NvbnRyYWN0TWV0aG9kQ29uZmlnLm1kKQogLSBbQ29udHJhY3RNZXRob2RQYXR0ZXJuXShkb2NzL0NvbnRyYWN0TWV0aG9kUGF0dGVybi5tZCkKIC0gW0NvbnRyYWN0VGVtcGxhdGVEdG9dKGRvY3MvQ29udHJhY3RUZW1wbGF0ZUR0by5tZCkKIC0gW0NvbnRyYWN0VXBsb2FkUmVxdWVzdF0oZG9jcy9Db250cmFjdFVwbG9hZFJlcXVlc3QubWQpCiAtIFtDb250cmFjdFdpdGhBYmlEdG9dKGRvY3MvQ29udHJhY3RXaXRoQWJpRHRvLm1kKQogLSBbQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvbl0oZG9jcy9Db252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uLm1kKQogLSBbQ29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtc10oZG9jcy9Db252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zLm1kKQogLSBbQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvbl0oZG9jcy9Db252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uLm1kKQogLSBbQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dF0oZG9jcy9Db252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0Lm1kKQogLSBbQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc10oZG9jcy9Db252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zLm1kKQogLSBbQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtc10oZG9jcy9Db252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zLm1kKQogLSBbQ29udmVyc2lvbk9wZXJhdGlvbkZhaWx1cmVdKGRvY3MvQ29udmVyc2lvbk9wZXJhdGlvbkZhaWx1cmUubWQpCiAtIFtDb252ZXJzaW9uT3BlcmF0aW9uUHJldmlld10oZG9jcy9Db252ZXJzaW9uT3BlcmF0aW9uUHJldmlldy5tZCkKIC0gW0NvbnZlcnNpb25PcGVyYXRpb25QcmV2aWV3T3V0cHV0XShkb2NzL0NvbnZlcnNpb25PcGVyYXRpb25QcmV2aWV3T3V0cHV0Lm1kKQogLSBbQ29udmVyc2lvbk9wZXJhdGlvblR5cGVdKGRvY3MvQ29udmVyc2lvbk9wZXJhdGlvblR5cGUubWQpCiAtIFtDb252ZXJzaW9uVmFsaWRhdGlvbkZhaWx1cmVdKGRvY3MvQ29udmVyc2lvblZhbGlkYXRpb25GYWlsdXJlLm1kKQogLSBbQ29udmVydEFzc2V0c1JlcXVlc3RdKGRvY3MvQ29udmVydEFzc2V0c1JlcXVlc3QubWQpCiAtIFtDb252ZXJ0QXNzZXRzUmVzcG9uc2VdKGRvY3MvQ29udmVydEFzc2V0c1Jlc3BvbnNlLm1kKQogLSBbQ29zaWduZXJdKGRvY3MvQ29zaWduZXIubWQpCiAtIFtDb3NpZ25lcnNQYWdpbmF0ZWRSZXNwb25zZV0oZG9jcy9Db3NpZ25lcnNQYWdpbmF0ZWRSZXNwb25zZS5tZCkKIC0gW0NyZWF0ZUFQSVVzZXJdKGRvY3MvQ3JlYXRlQVBJVXNlci5tZCkKIC0gW0NyZWF0ZUFkZHJlc3NSZXF1ZXN0XShkb2NzL0NyZWF0ZUFkZHJlc3NSZXF1ZXN0Lm1kKQogLSBbQ3JlYXRlQWRkcmVzc1Jlc3BvbnNlXShkb2NzL0NyZWF0ZUFkZHJlc3NSZXNwb25zZS5tZCkKIC0gW0NyZWF0ZUFzc2V0c1JlcXVlc3RdKGRvY3MvQ3JlYXRlQXNzZXRzUmVxdWVzdC5tZCkKIC0gW0NyZWF0ZUNvbmZpZ09wZXJhdGlvblJlcXVlc3RdKGRvY3MvQ3JlYXRlQ29uZmlnT3BlcmF0aW9uUmVxdWVzdC5tZCkKIC0gW0NyZWF0ZUNvbm5lY3Rpb25SZXF1ZXN0XShkb2NzL0NyZWF0ZUNvbm5lY3Rpb25SZXF1ZXN0Lm1kKQogLSBbQ3JlYXRlQ29ubmVjdGlvblJlc3BvbnNlXShkb2NzL0NyZWF0ZUNvbm5lY3Rpb25SZXNwb25zZS5tZCkKIC0gW0NyZWF0ZUNvbnNvbGVVc2VyXShkb2NzL0NyZWF0ZUNvbnNvbGVVc2VyLm1kKQogLSBbQ3JlYXRlQ29udHJhY3RSZXF1ZXN0XShkb2NzL0NyZWF0ZUNvbnRyYWN0UmVxdWVzdC5tZCkKIC0gW0NyZWF0ZUNvbnZlcnNpb25Db25maWdPcGVyYXRpb25SZXF1ZXN0XShkb2NzL0NyZWF0ZUNvbnZlcnNpb25Db25maWdPcGVyYXRpb25SZXF1ZXN0Lm1kKQogLSBbQ3JlYXRlRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uUmVxdWVzdF0oZG9jcy9DcmVhdGVEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb25SZXF1ZXN0Lm1kKQogLSBbQ3JlYXRlSW50ZXJuYWxUcmFuc2ZlclJlcXVlc3RdKGRvY3MvQ3JlYXRlSW50ZXJuYWxUcmFuc2ZlclJlcXVlc3QubWQpCiAtIFtDcmVhdGVJbnRlcm5hbFdhbGxldEFzc2V0UmVxdWVzdF0oZG9jcy9DcmVhdGVJbnRlcm5hbFdhbGxldEFzc2V0UmVxdWVzdC5tZCkKIC0gW0NyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3RdKGRvY3MvQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdC5tZCkKIC0gW0NyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3RDcmVhdGVQYXJhbXNdKGRvY3MvQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdENyZWF0ZVBhcmFtcy5tZCkKIC0gW0NyZWF0ZU11bHRpcGxlQWNjb3VudHNSZXF1ZXN0XShkb2NzL0NyZWF0ZU11bHRpcGxlQWNjb3VudHNSZXF1ZXN0Lm1kKQogLSBbQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzSm9iU3RhdHVzXShkb2NzL0NyZWF0ZU11bHRpcGxlRGVwb3NpdEFkZHJlc3Nlc0pvYlN0YXR1cy5tZCkKIC0gW0NyZWF0ZU11bHRpcGxlRGVwb3NpdEFkZHJlc3Nlc1JlcXVlc3RdKGRvY3MvQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzUmVxdWVzdC5tZCkKIC0gW0NyZWF0ZU11bHRpcGxlVmF1bHRBY2NvdW50c0pvYlN0YXR1c10oZG9jcy9DcmVhdGVNdWx0aXBsZVZhdWx0QWNjb3VudHNKb2JTdGF0dXMubWQpCiAtIFtDcmVhdGVOY3dDb25uZWN0aW9uUmVxdWVzdF0oZG9jcy9DcmVhdGVOY3dDb25uZWN0aW9uUmVxdWVzdC5tZCkKIC0gW0NyZWF0ZU5ldHdvcmtJZFJlcXVlc3RdKGRvY3MvQ3JlYXRlTmV0d29ya0lkUmVxdWVzdC5tZCkKIC0gW0NyZWF0ZU9yZGVyUmVxdWVzdF0oZG9jcy9DcmVhdGVPcmRlclJlcXVlc3QubWQpCiAtIFtDcmVhdGVQYXlvdXRSZXF1ZXN0XShkb2NzL0NyZWF0ZVBheW91dFJlcXVlc3QubWQpCiAtIFtDcmVhdGVRdW90ZV0oZG9jcy9DcmVhdGVRdW90ZS5tZCkKIC0gW0NyZWF0ZVF1b3RlU2NvcGVJbm5lcl0oZG9jcy9DcmVhdGVRdW90ZVNjb3BlSW5uZXIubWQpCiAtIFtDcmVhdGVTaWduaW5nS2V5RHRvXShkb2NzL0NyZWF0ZVNpZ25pbmdLZXlEdG8ubWQpCiAtIFtDcmVhdGVTaWduaW5nS2V5RHRvUHJvb2ZPZk93bmVyc2hpcF0oZG9jcy9DcmVhdGVTaWduaW5nS2V5RHRvUHJvb2ZPZk93bmVyc2hpcC5tZCkKIC0gW0NyZWF0ZVRhZ1JlcXVlc3RdKGRvY3MvQ3JlYXRlVGFnUmVxdWVzdC5tZCkKIC0gW0NyZWF0ZVRva2VuUmVxdWVzdER0b10oZG9jcy9DcmVhdGVUb2tlblJlcXVlc3REdG8ubWQpCiAtIFtDcmVhdGVUb2tlblJlcXVlc3REdG9DcmVhdGVQYXJhbXNdKGRvY3MvQ3JlYXRlVG9rZW5SZXF1ZXN0RHRvQ3JlYXRlUGFyYW1zLm1kKQogLSBbQ3JlYXRlVHJhbnNhY3Rpb25SZXNwb25zZV0oZG9jcy9DcmVhdGVUcmFuc2FjdGlvblJlc3BvbnNlLm1kKQogLSBbQ3JlYXRlVHJhbnNmZXJDb25maWdPcGVyYXRpb25SZXF1ZXN0XShkb2NzL0NyZWF0ZVRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uUmVxdWVzdC5tZCkKIC0gW0NyZWF0ZVVzZXJHcm91cFJlc3BvbnNlXShkb2NzL0NyZWF0ZVVzZXJHcm91cFJlc3BvbnNlLm1kKQogLSBbQ3JlYXRlVmFsaWRhdGlvbktleUR0b10oZG9jcy9DcmVhdGVWYWxpZGF0aW9uS2V5RHRvLm1kKQogLSBbQ3JlYXRlVmFsaWRhdGlvbktleVJlc3BvbnNlRHRvXShkb2NzL0NyZWF0ZVZhbGlkYXRpb25LZXlSZXNwb25zZUR0by5tZCkKIC0gW0NyZWF0ZVZhdWx0QWNjb3VudENvbm5lY3Rpb25SZXF1ZXN0XShkb2NzL0NyZWF0ZVZhdWx0QWNjb3VudENvbm5lY3Rpb25SZXF1ZXN0Lm1kKQogLSBbQ3JlYXRlVmF1bHRBY2NvdW50UmVxdWVzdF0oZG9jcy9DcmVhdGVWYXVsdEFjY291bnRSZXF1ZXN0Lm1kKQogLSBbQ3JlYXRlVmF1bHRBc3NldFJlc3BvbnNlXShkb2NzL0NyZWF0ZVZhdWx0QXNzZXRSZXNwb25zZS5tZCkKIC0gW0NyZWF0ZVdhbGxldFJlcXVlc3RdKGRvY3MvQ3JlYXRlV2FsbGV0UmVxdWVzdC5tZCkKIC0gW0NyZWF0ZVdlYmhvb2tSZXF1ZXN0XShkb2NzL0NyZWF0ZVdlYmhvb2tSZXF1ZXN0Lm1kKQogLSBbQ3JlYXRlV29ya2Zsb3dFeGVjdXRpb25SZXF1ZXN0UGFyYW1zSW5uZXJdKGRvY3MvQ3JlYXRlV29ya2Zsb3dFeGVjdXRpb25SZXF1ZXN0UGFyYW1zSW5uZXIubWQpCiAtIFtDdXN0b21Sb3V0aW5nRGVzdF0oZG9jcy9DdXN0b21Sb3V0aW5nRGVzdC5tZCkKIC0gW0RBcHBBZGRyZXNzQ29uZmlnXShkb2NzL0RBcHBBZGRyZXNzQ29uZmlnLm1kKQogLSBbRFZQU2V0dGxlbWVudF0oZG9jcy9EVlBTZXR0bGVtZW50Lm1kKQogLSBbRFZQU2V0dGxlbWVudFR5cGVdKGRvY3MvRFZQU2V0dGxlbWVudFR5cGUubWQpCiAtIFtEZWNvZGVkTG9nXShkb2NzL0RlY29kZWRMb2cubWQpCiAtIFtEZWZhdWx0TmV0d29ya1JvdXRpbmdEZXN0XShkb2NzL0RlZmF1bHROZXR3b3JrUm91dGluZ0Rlc3QubWQpCiAtIFtEZWxlZ2F0aW9uXShkb2NzL0RlbGVnYXRpb24ubWQpCiAtIFtEZWxlZ2F0aW9uQmxvY2tjaGFpblBvc2l0aW9uSW5mb10oZG9jcy9EZWxlZ2F0aW9uQmxvY2tjaGFpblBvc2l0aW9uSW5mby5tZCkKIC0gW0RlbGVnYXRpb25TdW1tYXJ5XShkb2NzL0RlbGVnYXRpb25TdW1tYXJ5Lm1kKQogLSBbRGVsZXRlTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZV0oZG9jcy9EZWxldGVOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlLm1kKQogLSBbRGVsZXRlTmV0d29ya0lkUmVzcG9uc2VdKGRvY3MvRGVsZXRlTmV0d29ya0lkUmVzcG9uc2UubWQpCiAtIFtEZXBsb3lMYXllclplcm9BZGFwdGVyc1JlcXVlc3RdKGRvY3MvRGVwbG95TGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0Lm1kKQogLSBbRGVwbG95YWJsZUFkZHJlc3NSZXNwb25zZV0oZG9jcy9EZXBsb3lhYmxlQWRkcmVzc1Jlc3BvbnNlLm1kKQogLSBbRGVwbG95ZWRDb250cmFjdE5vdEZvdW5kRXJyb3JdKGRvY3MvRGVwbG95ZWRDb250cmFjdE5vdEZvdW5kRXJyb3IubWQpCiAtIFtEZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG9dKGRvY3MvRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvLm1kKQogLSBbRGVwbG95ZWRDb250cmFjdHNQYWdpbmF0ZWRSZXNwb25zZV0oZG9jcy9EZXBsb3llZENvbnRyYWN0c1BhZ2luYXRlZFJlc3BvbnNlLm1kKQogLSBbRGVwb3NpdEZ1bmRzRnJvbUxpbmtlZEREQVJlc3BvbnNlXShkb2NzL0RlcG9zaXRGdW5kc0Zyb21MaW5rZWREREFSZXNwb25zZS5tZCkKIC0gW0Rlcml2YXRpb25QYXRoQ29uZmlnXShkb2NzL0Rlcml2YXRpb25QYXRoQ29uZmlnLm1kKQogLSBbRGVzaWduYXRlZFNpZ25lcnNDb25maWddKGRvY3MvRGVzaWduYXRlZFNpZ25lcnNDb25maWcubWQpCiAtIFtEZXN0aW5hdGlvbl0oZG9jcy9EZXN0aW5hdGlvbi5tZCkKIC0gW0Rlc3RpbmF0aW9uQ29uZmlnXShkb2NzL0Rlc3RpbmF0aW9uQ29uZmlnLm1kKQogLSBbRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoXShkb2NzL0Rlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aC5tZCkKIC0gW0Rlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlXShkb2NzL0Rlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlLm1kKQogLSBbRGlyZWN0QWNjZXNzXShkb2NzL0RpcmVjdEFjY2Vzcy5tZCkKIC0gW0RpcmVjdEFjY2Vzc1Byb3ZpZGVyXShkb2NzL0RpcmVjdEFjY2Vzc1Byb3ZpZGVyLm1kKQogLSBbRGlyZWN0QWNjZXNzUHJvdmlkZXJJbmZvXShkb2NzL0RpcmVjdEFjY2Vzc1Byb3ZpZGVySW5mby5tZCkKIC0gW0RpcmVjdFByb3ZpZGVyRGV0YWlsc10oZG9jcy9EaXJlY3RQcm92aWRlckRldGFpbHMubWQpCiAtIFtEaXNidXJzZW1lbnRBbW91bnRJbnN0cnVjdGlvbl0oZG9jcy9EaXNidXJzZW1lbnRBbW91bnRJbnN0cnVjdGlvbi5tZCkKIC0gW0Rpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvbl0oZG9jcy9EaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb24ubWQpCiAtIFtEaXNidXJzZW1lbnRJbnN0cnVjdGlvbl0oZG9jcy9EaXNidXJzZW1lbnRJbnN0cnVjdGlvbi5tZCkKIC0gW0Rpc2J1cnNlbWVudEluc3RydWN0aW9uT3V0cHV0XShkb2NzL0Rpc2J1cnNlbWVudEluc3RydWN0aW9uT3V0cHV0Lm1kKQogLSBbRGlzYnVyc2VtZW50T3BlcmF0aW9uQ29uZmlnUGFyYW1zXShkb2NzL0Rpc2J1cnNlbWVudE9wZXJhdGlvbkNvbmZpZ1BhcmFtcy5tZCkKIC0gW0Rpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbl0oZG9jcy9EaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb24ubWQpCiAtIFtEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25PdXRwdXRdKGRvY3MvRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0Lm1kKQogLSBbRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zXShkb2NzL0Rpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcy5tZCkKIC0gW0Rpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtc10oZG9jcy9EaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMubWQpCiAtIFtEaXNidXJzZW1lbnRPcGVyYXRpb25JbnB1dF0oZG9jcy9EaXNidXJzZW1lbnRPcGVyYXRpb25JbnB1dC5tZCkKIC0gW0Rpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXddKGRvY3MvRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlldy5tZCkKIC0gW0Rpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXdPdXRwdXRdKGRvY3MvRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlld091dHB1dC5tZCkKIC0gW0Rpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXdPdXRwdXRJbnN0cnVjdGlvblNldElubmVyXShkb2NzL0Rpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXdPdXRwdXRJbnN0cnVjdGlvblNldElubmVyLm1kKQogLSBbRGlzYnVyc2VtZW50T3BlcmF0aW9uVHlwZV0oZG9jcy9EaXNidXJzZW1lbnRPcGVyYXRpb25UeXBlLm1kKQogLSBbRGlzYnVyc2VtZW50UGVyY2VudGFnZUluc3RydWN0aW9uXShkb2NzL0Rpc2J1cnNlbWVudFBlcmNlbnRhZ2VJbnN0cnVjdGlvbi5tZCkKIC0gW0Rpc2J1cnNlbWVudFZhbGlkYXRpb25GYWlsdXJlXShkb2NzL0Rpc2J1cnNlbWVudFZhbGlkYXRpb25GYWlsdXJlLm1kKQogLSBbRGlzcGF0Y2hQYXlvdXRSZXNwb25zZV0oZG9jcy9EaXNwYXRjaFBheW91dFJlc3BvbnNlLm1kKQogLSBbRHJhZnRSZXNwb25zZV0oZG9jcy9EcmFmdFJlc3BvbnNlLm1kKQogLSBbRHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2VdKGRvY3MvRHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UubWQpCiAtIFtEcm9wVHJhbnNhY3Rpb25SZXF1ZXN0XShkb2NzL0Ryb3BUcmFuc2FjdGlvblJlcXVlc3QubWQpCiAtIFtEcm9wVHJhbnNhY3Rpb25SZXNwb25zZV0oZG9jcy9Ecm9wVHJhbnNhY3Rpb25SZXNwb25zZS5tZCkKIC0gW0R2bkNvbmZpZ10oZG9jcy9Edm5Db25maWcubWQpCiAtIFtEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc10oZG9jcy9Edm5Db25maWdXaXRoQ29uZmlybWF0aW9ucy5tZCkKIC0gW0VWTVRva2VuQ3JlYXRlUGFyYW1zRHRvXShkb2NzL0VWTVRva2VuQ3JlYXRlUGFyYW1zRHRvLm1kKQogLSBbRWRpdEdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2VdKGRvY3MvRWRpdEdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2UubWQpCiAtIFtFbWJlZGRlZFdhbGxldF0oZG9jcy9FbWJlZGRlZFdhbGxldC5tZCkKIC0gW0VtYmVkZGVkV2FsbGV0QWNjb3VudF0oZG9jcy9FbWJlZGRlZFdhbGxldEFjY291bnQubWQpCiAtIFtFbWJlZGRlZFdhbGxldEFkZHJlc3NEZXRhaWxzXShkb2NzL0VtYmVkZGVkV2FsbGV0QWRkcmVzc0RldGFpbHMubWQpCiAtIFtFbWJlZGRlZFdhbGxldEFsZ29yaXRtXShkb2NzL0VtYmVkZGVkV2FsbGV0QWxnb3JpdG0ubWQpCiAtIFtFbWJlZGRlZFdhbGxldEFzc2V0QmFsYW5jZV0oZG9jcy9FbWJlZGRlZFdhbGxldEFzc2V0QmFsYW5jZS5tZCkKIC0gW0VtYmVkZGVkV2FsbGV0QXNzZXRSZXNwb25zZV0oZG9jcy9FbWJlZGRlZFdhbGxldEFzc2V0UmVzcG9uc2UubWQpCiAtIFtFbWJlZGRlZFdhbGxldEFzc2V0UmV3YXJkSW5mb10oZG9jcy9FbWJlZGRlZFdhbGxldEFzc2V0UmV3YXJkSW5mby5tZCkKIC0gW0VtYmVkZGVkV2FsbGV0RGV2aWNlXShkb2NzL0VtYmVkZGVkV2FsbGV0RGV2aWNlLm1kKQogLSBbRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlXShkb2NzL0VtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZS5tZCkKIC0gW0VtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZVNldHVwU3RhdHVzSW5uZXJdKGRvY3MvRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlU2V0dXBTdGF0dXNJbm5lci5tZCkKIC0gW0VtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwS2V5XShkb2NzL0VtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwS2V5Lm1kKQogLSBbRW1iZWRkZWRXYWxsZXRMYXRlc3RCYWNrdXBSZXNwb25zZV0oZG9jcy9FbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cFJlc3BvbnNlLm1kKQogLSBbRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBZGRyZXNzZXNSZXNwb25zZV0oZG9jcy9FbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFkZHJlc3Nlc1Jlc3BvbnNlLm1kKQogLSBbRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBc3NldHNSZXNwb25zZV0oZG9jcy9FbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlLm1kKQogLSBbRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWREZXZpY2VzUmVzcG9uc2VdKGRvY3MvRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWREZXZpY2VzUmVzcG9uc2UubWQpCiAtIFtFbWJlZGRlZFdhbGxldFBhZ2luYXRlZFdhbGxldHNSZXNwb25zZV0oZG9jcy9FbWJlZGRlZFdhbGxldFBhZ2luYXRlZFdhbGxldHNSZXNwb25zZS5tZCkKIC0gW0VtYmVkZGVkV2FsbGV0UmVxdWlyZWRBbGdvcml0aG1zXShkb2NzL0VtYmVkZGVkV2FsbGV0UmVxdWlyZWRBbGdvcml0aG1zLm1kKQogLSBbRW1iZWRkZWRXYWxsZXRTZXRVcFN0YXR1c10oZG9jcy9FbWJlZGRlZFdhbGxldFNldFVwU3RhdHVzLm1kKQogLSBbRW1iZWRkZWRXYWxsZXRTZXR1cFN0YXR1c1Jlc3BvbnNlXShkb2NzL0VtYmVkZGVkV2FsbGV0U2V0dXBTdGF0dXNSZXNwb25zZS5tZCkKIC0gW0VuYWJsZURldmljZV0oZG9jcy9FbmFibGVEZXZpY2UubWQpCiAtIFtFbmFibGVXYWxsZXRdKGRvY3MvRW5hYmxlV2FsbGV0Lm1kKQogLSBbRXJyb3JSZXNwb25zZV0oZG9jcy9FcnJvclJlc3BvbnNlLm1kKQogLSBbRXJyb3JSZXNwb25zZUVycm9yXShkb2NzL0Vycm9yUmVzcG9uc2VFcnJvci5tZCkKIC0gW0Vycm9yU2NoZW1hXShkb2NzL0Vycm9yU2NoZW1hLm1kKQogLSBbRXN0aW1hdGVkRmVlRGV0YWlsc10oZG9jcy9Fc3RpbWF0ZWRGZWVEZXRhaWxzLm1kKQogLSBbRXN0aW1hdGVkTmV0d29ya0ZlZVJlc3BvbnNlXShkb2NzL0VzdGltYXRlZE5ldHdvcmtGZWVSZXNwb25zZS5tZCkKIC0gW0VzdGltYXRlZFRyYW5zYWN0aW9uRmVlUmVzcG9uc2VdKGRvY3MvRXN0aW1hdGVkVHJhbnNhY3Rpb25GZWVSZXNwb25zZS5tZCkKIC0gW0V0aGVyZXVtQmxvY2tjaGFpbkRhdGFdKGRvY3MvRXRoZXJldW1CbG9ja2NoYWluRGF0YS5tZCkKIC0gW0V1cm9wZWFuU0VQQUFkZHJlc3NdKGRvY3MvRXVyb3BlYW5TRVBBQWRkcmVzcy5tZCkKIC0gW0V1cm9wZWFuU0VQQURlc3RpbmF0aW9uXShkb2NzL0V1cm9wZWFuU0VQQURlc3RpbmF0aW9uLm1kKQogLSBbRXhjaGFuZ2VBY2NvdW50XShkb2NzL0V4Y2hhbmdlQWNjb3VudC5tZCkKIC0gW0V4Y2hhbmdlQXNzZXRdKGRvY3MvRXhjaGFuZ2VBc3NldC5tZCkKIC0gW0V4Y2hhbmdlU2V0dGxlbWVudFRyYW5zYWN0aW9uc1Jlc3BvbnNlXShkb2NzL0V4Y2hhbmdlU2V0dGxlbWVudFRyYW5zYWN0aW9uc1Jlc3BvbnNlLm1kKQogLSBbRXhjaGFuZ2VUcmFkaW5nQWNjb3VudF0oZG9jcy9FeGNoYW5nZVRyYWRpbmdBY2NvdW50Lm1kKQogLSBbRXhjaGFuZ2VUeXBlXShkb2NzL0V4Y2hhbmdlVHlwZS5tZCkKIC0gW0V4ZWN1dGlvbkNvbnZlcnNpb25PcGVyYXRpb25dKGRvY3MvRXhlY3V0aW9uQ29udmVyc2lvbk9wZXJhdGlvbi5tZCkKIC0gW0V4ZWN1dGlvbkRpc2J1cnNlbWVudE9wZXJhdGlvbl0oZG9jcy9FeGVjdXRpb25EaXNidXJzZW1lbnRPcGVyYXRpb24ubWQpCiAtIFtFeGVjdXRpb25PcGVyYXRpb25TdGF0dXNdKGRvY3MvRXhlY3V0aW9uT3BlcmF0aW9uU3RhdHVzLm1kKQogLSBbRXhlY3V0aW9uUmVxdWVzdEJhc2VEZXRhaWxzXShkb2NzL0V4ZWN1dGlvblJlcXVlc3RCYXNlRGV0YWlscy5tZCkKIC0gW0V4ZWN1dGlvblJlcXVlc3REZXRhaWxzXShkb2NzL0V4ZWN1dGlvblJlcXVlc3REZXRhaWxzLm1kKQogLSBbRXhlY3V0aW9uUmVxdWVzdERldGFpbHNUeXBlXShkb2NzL0V4ZWN1dGlvblJlcXVlc3REZXRhaWxzVHlwZS5tZCkKIC0gW0V4ZWN1dGlvblJlc3BvbnNlQmFzZURldGFpbHNdKGRvY3MvRXhlY3V0aW9uUmVzcG9uc2VCYXNlRGV0YWlscy5tZCkKIC0gW0V4ZWN1dGlvblJlc3BvbnNlRGV0YWlsc10oZG9jcy9FeGVjdXRpb25SZXNwb25zZURldGFpbHMubWQpCiAtIFtFeGVjdXRpb25TY3JlZW5pbmdPcGVyYXRpb25dKGRvY3MvRXhlY3V0aW9uU2NyZWVuaW5nT3BlcmF0aW9uLm1kKQogLSBbRXhlY3V0aW9uU3RlcEVycm9yXShkb2NzL0V4ZWN1dGlvblN0ZXBFcnJvci5tZCkKIC0gW0V4ZWN1dGlvblN0ZXBTdGF0dXNFbnVtXShkb2NzL0V4ZWN1dGlvblN0ZXBTdGF0dXNFbnVtLm1kKQogLSBbRXhlY3V0aW9uU3RlcFR5cGVdKGRvY3MvRXhlY3V0aW9uU3RlcFR5cGUubWQpCiAtIFtFeGVjdXRpb25UcmFuc2Zlck9wZXJhdGlvbl0oZG9jcy9FeGVjdXRpb25UcmFuc2Zlck9wZXJhdGlvbi5tZCkKIC0gW0V4dGVybmFsQWNjb3VudF0oZG9jcy9FeHRlcm5hbEFjY291bnQubWQpCiAtIFtFeHRlcm5hbEFjY291bnRMb2NhbEJhbmtBZnJpY2FdKGRvY3MvRXh0ZXJuYWxBY2NvdW50TG9jYWxCYW5rQWZyaWNhLm1kKQogLSBbRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXldKGRvY3MvRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXkubWQpCiAtIFtFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leVByb3ZpZGVyXShkb2NzL0V4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5UHJvdmlkZXIubWQpCiAtIFtFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leVR5cGVdKGRvY3MvRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXlUeXBlLm1kKQogLSBbRXh0ZXJuYWxBY2NvdW50U2VuZGVySW5mb3JtYXRpb25dKGRvY3MvRXh0ZXJuYWxBY2NvdW50U2VuZGVySW5mb3JtYXRpb24ubWQpCiAtIFtFeHRlcm5hbEFjY291bnRUeXBlXShkb2NzL0V4dGVybmFsQWNjb3VudFR5cGUubWQpCiAtIFtFeHRlcm5hbFdhbGxldEFzc2V0XShkb2NzL0V4dGVybmFsV2FsbGV0QXNzZXQubWQpCiAtIFtFeHRyYVBhcmFtZXRlcnNdKGRvY3MvRXh0cmFQYXJhbWV0ZXJzLm1kKQogLSBbRmFpbHVyZV0oZG9jcy9GYWlsdXJlLm1kKQogLSBbRmFpbHVyZVJlYXNvbl0oZG9jcy9GYWlsdXJlUmVhc29uLm1kKQogLSBbRmVlXShkb2NzL0ZlZS5tZCkKIC0gW0ZlZUJyZWFrZG93bl0oZG9jcy9GZWVCcmVha2Rvd24ubWQpCiAtIFtGZWVJbmZvXShkb2NzL0ZlZUluZm8ubWQpCiAtIFtGZWVMZXZlbF0oZG9jcy9GZWVMZXZlbC5tZCkKIC0gW0ZlZVBheWVySW5mb10oZG9jcy9GZWVQYXllckluZm8ubWQpCiAtIFtGZWVQcm9wZXJ0aWVzRGV0YWlsc10oZG9jcy9GZWVQcm9wZXJ0aWVzRGV0YWlscy5tZCkKIC0gW0ZlZVR5cGVFbnVtXShkb2NzL0ZlZVR5cGVFbnVtLm1kKQogLSBbRmV0Y2hBYmlSZXF1ZXN0RHRvXShkb2NzL0ZldGNoQWJpUmVxdWVzdER0by5tZCkKIC0gW0ZpYXRBY2NvdW50XShkb2NzL0ZpYXRBY2NvdW50Lm1kKQogLSBbRmlhdEFjY291bnRUeXBlXShkb2NzL0ZpYXRBY2NvdW50VHlwZS5tZCkKIC0gW0ZpYXRBc3NldF0oZG9jcy9GaWF0QXNzZXQubWQpCiAtIFtGaWF0RGVzdGluYXRpb25dKGRvY3MvRmlhdERlc3RpbmF0aW9uLm1kKQogLSBbRmlhdFBheW1lbnRNZXRhZGF0YV0oZG9jcy9GaWF0UGF5bWVudE1ldGFkYXRhLm1kKQogLSBbRmlhdFRyYW5zZmVyXShkb2NzL0ZpYXRUcmFuc2Zlci5tZCkKIC0gW0ZpeGVkQW1vdW50VHlwZUVudW1dKGRvY3MvRml4ZWRBbW91bnRUeXBlRW51bS5tZCkKIC0gW0ZpeGVkRmVlXShkb2NzL0ZpeGVkRmVlLm1kKQogLSBbRnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZV0oZG9jcy9GcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlLm1kKQogLSBbRnVuY3Rpb25Eb2NdKGRvY3MvRnVuY3Rpb25Eb2MubWQpCiAtIFtGdW5kc10oZG9jcy9GdW5kcy5tZCkKIC0gW0dhc1N0YXRpb25Db25maWd1cmF0aW9uXShkb2NzL0dhc1N0YXRpb25Db25maWd1cmF0aW9uLm1kKQogLSBbR2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZV0oZG9jcy9HYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlLm1kKQogLSBbR2FzU3RhdGlvblByb3BlcnRpZXNSZXNwb25zZV0oZG9jcy9HYXNTdGF0aW9uUHJvcGVydGllc1Jlc3BvbnNlLm1kKQogLSBbR2Fzc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zXShkb2NzL0dhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9ucy5tZCkKIC0gW0dhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc0dhc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zVmFsdWVdKGRvY3MvR2Fzc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zR2FzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnNWYWx1ZS5tZCkKIC0gW0dldEFQSVVzZXJzUmVzcG9uc2VdKGRvY3MvR2V0QVBJVXNlcnNSZXNwb25zZS5tZCkKIC0gW0dldEF1ZGl0TG9nc1Jlc3BvbnNlXShkb2NzL0dldEF1ZGl0TG9nc1Jlc3BvbnNlLm1kKQogLSBbR2V0Q29ubmVjdGlvbnNSZXNwb25zZV0oZG9jcy9HZXRDb25uZWN0aW9uc1Jlc3BvbnNlLm1kKQogLSBbR2V0Q29uc29sZVVzZXJzUmVzcG9uc2VdKGRvY3MvR2V0Q29uc29sZVVzZXJzUmVzcG9uc2UubWQpCiAtIFtHZXREZXBsb3lhYmxlQWRkcmVzc1JlcXVlc3RdKGRvY3MvR2V0RGVwbG95YWJsZUFkZHJlc3NSZXF1ZXN0Lm1kKQogLSBbR2V0RXhjaGFuZ2VBY2NvdW50c0NyZWRlbnRpYWxzUHVibGljS2V5UmVzcG9uc2VdKGRvY3MvR2V0RXhjaGFuZ2VBY2NvdW50c0NyZWRlbnRpYWxzUHVibGljS2V5UmVzcG9uc2UubWQpCiAtIFtHZXRGaWx0ZXJQYXJhbWV0ZXJdKGRvY3MvR2V0RmlsdGVyUGFyYW1ldGVyLm1kKQogLSBbR2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2VdKGRvY3MvR2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UubWQpCiAtIFtHZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlXShkb2NzL0dldExheWVyWmVyb1BlZXJzUmVzcG9uc2UubWQpCiAtIFtHZXRMaW5rZWRDb2xsZWN0aW9uc1BhZ2luYXRlZFJlc3BvbnNlXShkb2NzL0dldExpbmtlZENvbGxlY3Rpb25zUGFnaW5hdGVkUmVzcG9uc2UubWQpCiAtIFtHZXRNYXhCaXBJbmRleFVzZWRSZXNwb25zZV0oZG9jcy9HZXRNYXhCaXBJbmRleFVzZWRSZXNwb25zZS5tZCkKIC0gW0dldE1heFNwZW5kYWJsZUFtb3VudFJlc3BvbnNlXShkb2NzL0dldE1heFNwZW5kYWJsZUFtb3VudFJlc3BvbnNlLm1kKQogLSBbR2V0TXBjS2V5c1Jlc3BvbnNlXShkb2NzL0dldE1wY0tleXNSZXNwb25zZS5tZCkKIC0gW0dldE5GVHNSZXNwb25zZV0oZG9jcy9HZXRORlRzUmVzcG9uc2UubWQpCiAtIFtHZXRPcmRlcnNSZXNwb25zZV0oZG9jcy9HZXRPcmRlcnNSZXNwb25zZS5tZCkKIC0gW0dldE90YVN0YXR1c1Jlc3BvbnNlXShkb2NzL0dldE90YVN0YXR1c1Jlc3BvbnNlLm1kKQogLSBbR2V0T3duZXJzaGlwVG9rZW5zUmVzcG9uc2VdKGRvY3MvR2V0T3duZXJzaGlwVG9rZW5zUmVzcG9uc2UubWQpCiAtIFtHZXRQYWdlZEV4Y2hhbmdlQWNjb3VudHNSZXNwb25zZV0oZG9jcy9HZXRQYWdlZEV4Y2hhbmdlQWNjb3VudHNSZXNwb25zZS5tZCkKIC0gW0dldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlUGFnaW5nXShkb2NzL0dldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlUGFnaW5nLm1kKQogLSBbR2V0U2lnbmluZ0tleVJlc3BvbnNlRHRvXShkb2NzL0dldFNpZ25pbmdLZXlSZXNwb25zZUR0by5tZCkKIC0gW0dldFRyYW5zYWN0aW9uT3BlcmF0aW9uXShkb2NzL0dldFRyYW5zYWN0aW9uT3BlcmF0aW9uLm1kKQogLSBbR2V0VmFsaWRhdGlvbktleVJlc3BvbnNlRHRvXShkb2NzL0dldFZhbGlkYXRpb25LZXlSZXNwb25zZUR0by5tZCkKIC0gW0dldFdoaXRlbGlzdElwQWRkcmVzc2VzUmVzcG9uc2VdKGRvY3MvR2V0V2hpdGVsaXN0SXBBZGRyZXNzZXNSZXNwb25zZS5tZCkKIC0gW0dldFdvcmtzcGFjZVN0YXR1c1Jlc3BvbnNlXShkb2NzL0dldFdvcmtzcGFjZVN0YXR1c1Jlc3BvbnNlLm1kKQogLSBbSHR0cENvbnRyYWN0RG9lc05vdEV4aXN0RXJyb3JdKGRvY3MvSHR0cENvbnRyYWN0RG9lc05vdEV4aXN0RXJyb3IubWQpCiAtIFtJYmFuQWRkcmVzc10oZG9jcy9JYmFuQWRkcmVzcy5tZCkKIC0gW0liYW5EZXN0aW5hdGlvbl0oZG9jcy9JYmFuRGVzdGluYXRpb24ubWQpCiAtIFtJYmFuUGF5bWVudEluZm9dKGRvY3MvSWJhblBheW1lbnRJbmZvLm1kKQogLSBbSWRlbnRpZmljYXRpb25dKGRvY3MvSWRlbnRpZmljYXRpb24ubWQpCiAtIFtJZGxUeXBlXShkb2NzL0lkbFR5cGUubWQpCiAtIFtJbmRpY2F0aXZlUXVvdGVFbnVtXShkb2NzL0luZGljYXRpdmVRdW90ZUVudW0ubWQpCiAtIFtJbmRpY2F0aXZlUXVvdGVUeXBlXShkb2NzL0luZGljYXRpdmVRdW90ZVR5cGUubWQpCiAtIFtJbml0aWF0b3JDb25maWddKGRvY3MvSW5pdGlhdG9yQ29uZmlnLm1kKQogLSBbSW5pdGlhdG9yQ29uZmlnUGF0dGVybl0oZG9jcy9Jbml0aWF0b3JDb25maWdQYXR0ZXJuLm1kKQogLSBbSW5zdHJ1Y3Rpb25BbW91bnRdKGRvY3MvSW5zdHJ1Y3Rpb25BbW91bnQubWQpCiAtIFtJbnRlcmFjQWRkcmVzc10oZG9jcy9JbnRlcmFjQWRkcmVzcy5tZCkKIC0gW0ludGVyYWNEZXN0aW5hdGlvbl0oZG9jcy9JbnRlcmFjRGVzdGluYXRpb24ubWQpCiAtIFtJbnRlcmFjUGF5bWVudEluZm9dKGRvY3MvSW50ZXJhY1BheW1lbnRJbmZvLm1kKQogLSBbSW50ZXJuYWxSZWZlcmVuY2VdKGRvY3MvSW50ZXJuYWxSZWZlcmVuY2UubWQpCiAtIFtJbnRlcm5hbFRyYW5zZmVyQWRkcmVzc10oZG9jcy9JbnRlcm5hbFRyYW5zZmVyQWRkcmVzcy5tZCkKIC0gW0ludGVybmFsVHJhbnNmZXJEZXN0aW5hdGlvbl0oZG9jcy9JbnRlcm5hbFRyYW5zZmVyRGVzdGluYXRpb24ubWQpCiAtIFtJbnRlcm5hbFRyYW5zZmVyUmVzcG9uc2VdKGRvY3MvSW50ZXJuYWxUcmFuc2ZlclJlc3BvbnNlLm1kKQogLSBbSW52YWxpZFBhcmFtYXRlclZhbHVlRXJyb3JdKGRvY3MvSW52YWxpZFBhcmFtYXRlclZhbHVlRXJyb3IubWQpCiAtIFtKb2JDcmVhdGVkXShkb2NzL0pvYkNyZWF0ZWQubWQpCiAtIFtMYXllclplcm9BZGFwdGVyQ3JlYXRlUGFyYW1zXShkb2NzL0xheWVyWmVyb0FkYXB0ZXJDcmVhdGVQYXJhbXMubWQpCiAtIFtMYnRQYXltZW50SW5mb10oZG9jcy9MYnRQYXltZW50SW5mby5tZCkKIC0gW0xlYW5BYmlGdW5jdGlvbl0oZG9jcy9MZWFuQWJpRnVuY3Rpb24ubWQpCiAtIFtMZWFuQ29udHJhY3REdG9dKGRvY3MvTGVhbkNvbnRyYWN0RHRvLm1kKQogLSBbTGVhbkRlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0b10oZG9jcy9MZWFuRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvLm1kKQogLSBbTGVnYWN5QW1vdW50QWdncmVnYXRpb25UaW1lUGVyaW9kTWV0aG9kXShkb2NzL0xlZ2FjeUFtb3VudEFnZ3JlZ2F0aW9uVGltZVBlcmlvZE1ldGhvZC5tZCkKIC0gW0xlZ2FjeURyYWZ0UmVzcG9uc2VdKGRvY3MvTGVnYWN5RHJhZnRSZXNwb25zZS5tZCkKIC0gW0xlZ2FjeURyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlXShkb2NzL0xlZ2FjeURyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlLm1kKQogLSBbTGVnYWN5UG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlXShkb2NzL0xlZ2FjeVBvbGljeUFuZFZhbGlkYXRpb25SZXNwb25zZS5tZCkKIC0gW0xlZ2FjeVBvbGljeUNoZWNrUmVzdWx0XShkb2NzL0xlZ2FjeVBvbGljeUNoZWNrUmVzdWx0Lm1kKQogLSBbTGVnYWN5UG9saWN5TWV0YWRhdGFdKGRvY3MvTGVnYWN5UG9saWN5TWV0YWRhdGEubWQpCiAtIFtMZWdhY3lQb2xpY3lSZXNwb25zZV0oZG9jcy9MZWdhY3lQb2xpY3lSZXNwb25zZS5tZCkKIC0gW0xlZ2FjeVBvbGljeVJ1bGVdKGRvY3MvTGVnYWN5UG9saWN5UnVsZS5tZCkKIC0gW0xlZ2FjeVBvbGljeVJ1bGVBbW91bnRdKGRvY3MvTGVnYWN5UG9saWN5UnVsZUFtb3VudC5tZCkKIC0gW0xlZ2FjeVBvbGljeVJ1bGVBbW91bnRBZ2dyZWdhdGlvbl0oZG9jcy9MZWdhY3lQb2xpY3lSdWxlQW1vdW50QWdncmVnYXRpb24ubWQpCiAtIFtMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3Vwc10oZG9jcy9MZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3Vwcy5tZCkKIC0gW0xlZ2FjeVBvbGljeVJ1bGVBdXRob3JpemF0aW9uR3JvdXBzR3JvdXBzSW5uZXJdKGRvY3MvTGVnYWN5UG9saWN5UnVsZUF1dGhvcml6YXRpb25Hcm91cHNHcm91cHNJbm5lci5tZCkKIC0gW0xlZ2FjeVBvbGljeVJ1bGVDaGVja1Jlc3VsdF0oZG9jcy9MZWdhY3lQb2xpY3lSdWxlQ2hlY2tSZXN1bHQubWQpCiAtIFtMZWdhY3lQb2xpY3lSdWxlRGVzaWduYXRlZFNpZ25lcnNdKGRvY3MvTGVnYWN5UG9saWN5UnVsZURlc2lnbmF0ZWRTaWduZXJzLm1kKQogLSBbTGVnYWN5UG9saWN5UnVsZURzdF0oZG9jcy9MZWdhY3lQb2xpY3lSdWxlRHN0Lm1kKQogLSBbTGVnYWN5UG9saWN5UnVsZUVycm9yXShkb2NzL0xlZ2FjeVBvbGljeVJ1bGVFcnJvci5tZCkKIC0gW0xlZ2FjeVBvbGljeVJ1bGVPcGVyYXRvcnNdKGRvY3MvTGVnYWN5UG9saWN5UnVsZU9wZXJhdG9ycy5tZCkKIC0gW0xlZ2FjeVBvbGljeVJ1bGVSYXdNZXNzYWdlU2lnbmluZ10oZG9jcy9MZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmcubWQpCiAtIFtMZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmdEZXJpdmF0aW9uUGF0aF0oZG9jcy9MZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmdEZXJpdmF0aW9uUGF0aC5tZCkKIC0gW0xlZ2FjeVBvbGljeVJ1bGVTcmNdKGRvY3MvTGVnYWN5UG9saWN5UnVsZVNyYy5tZCkKIC0gW0xlZ2FjeVBvbGljeVJ1bGVzXShkb2NzL0xlZ2FjeVBvbGljeVJ1bGVzLm1kKQogLSBbTGVnYWN5UG9saWN5U3JjT3JEZXN0U3ViVHlwZV0oZG9jcy9MZWdhY3lQb2xpY3lTcmNPckRlc3RTdWJUeXBlLm1kKQogLSBbTGVnYWN5UG9saWN5U3JjT3JEZXN0VHlwZV0oZG9jcy9MZWdhY3lQb2xpY3lTcmNPckRlc3RUeXBlLm1kKQogLSBbTGVnYWN5UG9saWN5U3RhdHVzXShkb2NzL0xlZ2FjeVBvbGljeVN0YXR1cy5tZCkKIC0gW0xlZ2FjeVBvbGljeVZhbGlkYXRpb25dKGRvY3MvTGVnYWN5UG9saWN5VmFsaWRhdGlvbi5tZCkKIC0gW0xlZ2FjeVB1Ymxpc2hEcmFmdFJlcXVlc3RdKGRvY3MvTGVnYWN5UHVibGlzaERyYWZ0UmVxdWVzdC5tZCkKIC0gW0xlZ2FjeVB1Ymxpc2hSZXN1bHRdKGRvY3MvTGVnYWN5UHVibGlzaFJlc3VsdC5tZCkKIC0gW0xlZ2FjeVNyY09yRGVzdEF0dHJpYnV0ZXNJbm5lcl0oZG9jcy9MZWdhY3lTcmNPckRlc3RBdHRyaWJ1dGVzSW5uZXIubWQpCiAtIFtMaW5rZWRUb2tlbnNDb3VudF0oZG9jcy9MaW5rZWRUb2tlbnNDb3VudC5tZCkKIC0gW0xpc3RBc3NldHNSZXNwb25zZV0oZG9jcy9MaXN0QXNzZXRzUmVzcG9uc2UubWQpCiAtIFtMaXN0QmxvY2tjaGFpbnNSZXNwb25zZV0oZG9jcy9MaXN0QmxvY2tjaGFpbnNSZXNwb25zZS5tZCkKIC0gW0xpc3RPd25lZENvbGxlY3Rpb25zUmVzcG9uc2VdKGRvY3MvTGlzdE93bmVkQ29sbGVjdGlvbnNSZXNwb25zZS5tZCkKIC0gW0xpc3RPd25lZFRva2Vuc1Jlc3BvbnNlXShkb2NzL0xpc3RPd25lZFRva2Vuc1Jlc3BvbnNlLm1kKQogLSBbTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FBZGRyZXNzXShkb2NzL0xvY2FsQmFua1RyYW5zZmVyQWZyaWNhQWRkcmVzcy5tZCkKIC0gW0xvY2FsQmFua1RyYW5zZmVyQWZyaWNhRGVzdGluYXRpb25dKGRvY3MvTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FEZXN0aW5hdGlvbi5tZCkKIC0gW01hbmlmZXN0XShkb2NzL01hbmlmZXN0Lm1kKQogLSBbTWFuaWZlc3RCYXNlXShkb2NzL01hbmlmZXN0QmFzZS5tZCkKIC0gW01hbmlmZXN0T3JkZXJdKGRvY3MvTWFuaWZlc3RPcmRlci5tZCkKIC0gW01hbmlmZXN0T3JkZXJJbmZvXShkb2NzL01hbmlmZXN0T3JkZXJJbmZvLm1kKQogLSBbTWFuaWZlc3RRdW90ZV0oZG9jcy9NYW5pZmVzdFF1b3RlLm1kKQogLSBbTWFuaWZlc3RRdW90ZUluZm9dKGRvY3MvTWFuaWZlc3RRdW90ZUluZm8ubWQpCiAtIFtNYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlsc10oZG9jcy9NYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlscy5tZCkKIC0gW01hcmtldEV4ZWN1dGlvblJlc3BvbnNlRGV0YWlsc10oZG9jcy9NYXJrZXRFeGVjdXRpb25SZXNwb25zZURldGFpbHMubWQpCiAtIFtNYXJrZXRSZXF1b3RlUmVxdWVzdERldGFpbHNdKGRvY3MvTWFya2V0UmVxdW90ZVJlcXVlc3REZXRhaWxzLm1kKQogLSBbTWFya2V0UmVxdW90ZVR5cGVFbnVtXShkb2NzL01hcmtldFJlcXVvdGVUeXBlRW51bS5tZCkKIC0gW01hcmtldFR5cGVEZXRhaWxzXShkb2NzL01hcmtldFR5cGVEZXRhaWxzLm1kKQogLSBbTWFya2V0VHlwZUVudW1dKGRvY3MvTWFya2V0VHlwZUVudW0ubWQpCiAtIFtNZWRpYUVudGl0eVJlc3BvbnNlXShkb2NzL01lZGlhRW50aXR5UmVzcG9uc2UubWQpCiAtIFtNZXJnZVN0YWtlQWNjb3VudHNSZXF1ZXN0XShkb2NzL01lcmdlU3Rha2VBY2NvdW50c1JlcXVlc3QubWQpCiAtIFtNZXJnZVN0YWtlQWNjb3VudHNSZXNwb25zZV0oZG9jcy9NZXJnZVN0YWtlQWNjb3VudHNSZXNwb25zZS5tZCkKIC0gW01vYmlsZU1vbmV5QWRkcmVzc10oZG9jcy9Nb2JpbGVNb25leUFkZHJlc3MubWQpCiAtIFtNb2JpbGVNb25leURlc3RpbmF0aW9uXShkb2NzL01vYmlsZU1vbmV5RGVzdGluYXRpb24ubWQpCiAtIFtNb2RpZnlTaWduaW5nS2V5QWdlbnRJZER0b10oZG9jcy9Nb2RpZnlTaWduaW5nS2V5QWdlbnRJZER0by5tZCkKIC0gW01vZGlmeVNpZ25pbmdLZXlEdG9dKGRvY3MvTW9kaWZ5U2lnbmluZ0tleUR0by5tZCkKIC0gW01vZGlmeVZhbGlkYXRpb25LZXlEdG9dKGRvY3MvTW9kaWZ5VmFsaWRhdGlvbktleUR0by5tZCkKIC0gW01vbW9QYXltZW50SW5mb10oZG9jcy9Nb21vUGF5bWVudEluZm8ubWQpCiAtIFtNcGNLZXldKGRvY3MvTXBjS2V5Lm1kKQogLSBbTXVsdGljaGFpbkRlcGxveW1lbnRNZXRhZGF0YV0oZG9jcy9NdWx0aWNoYWluRGVwbG95bWVudE1ldGFkYXRhLm1kKQogLSBbTmV0d29ya0NoYW5uZWxdKGRvY3MvTmV0d29ya0NoYW5uZWwubWQpCiAtIFtOZXR3b3JrQ29ubmVjdGlvbl0oZG9jcy9OZXR3b3JrQ29ubmVjdGlvbi5tZCkKIC0gW05ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2VdKGRvY3MvTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZS5tZCkKIC0gW05ldHdvcmtDb25uZWN0aW9uUm91dGluZ1BvbGljeVZhbHVlXShkb2NzL05ldHdvcmtDb25uZWN0aW9uUm91dGluZ1BvbGljeVZhbHVlLm1kKQogLSBbTmV0d29ya0Nvbm5lY3Rpb25TdGF0dXNdKGRvY3MvTmV0d29ya0Nvbm5lY3Rpb25TdGF0dXMubWQpCiAtIFtOZXR3b3JrRmVlXShkb2NzL05ldHdvcmtGZWUubWQpCiAtIFtOZXR3b3JrSWRdKGRvY3MvTmV0d29ya0lkLm1kKQogLSBbTmV0d29ya0lkUmVzcG9uc2VdKGRvY3MvTmV0d29ya0lkUmVzcG9uc2UubWQpCiAtIFtOZXR3b3JrSWRSb3V0aW5nUG9saWN5VmFsdWVdKGRvY3MvTmV0d29ya0lkUm91dGluZ1BvbGljeVZhbHVlLm1kKQogLSBbTmV0d29ya1JlY29yZF0oZG9jcy9OZXR3b3JrUmVjb3JkLm1kKQogLSBbTmV3QWRkcmVzc10oZG9jcy9OZXdBZGRyZXNzLm1kKQogLSBbTm9uZU5ldHdvcmtSb3V0aW5nRGVzdF0oZG9jcy9Ob25lTmV0d29ya1JvdXRpbmdEZXN0Lm1kKQogLSBbTm90Rm91bmRFeGNlcHRpb25dKGRvY3MvTm90Rm91bmRFeGNlcHRpb24ubWQpCiAtIFtOb3RpZmljYXRpb25dKGRvY3MvTm90aWZpY2F0aW9uLm1kKQogLSBbTm90aWZpY2F0aW9uQXR0ZW1wdF0oZG9jcy9Ob3RpZmljYXRpb25BdHRlbXB0Lm1kKQogLSBbTm90aWZpY2F0aW9uQXR0ZW1wdHNQYWdpbmF0ZWRSZXNwb25zZV0oZG9jcy9Ob3RpZmljYXRpb25BdHRlbXB0c1BhZ2luYXRlZFJlc3BvbnNlLm1kKQogLSBbTm90aWZpY2F0aW9uUGFnaW5hdGVkUmVzcG9uc2VdKGRvY3MvTm90aWZpY2F0aW9uUGFnaW5hdGVkUmVzcG9uc2UubWQpCiAtIFtOb3RpZmljYXRpb25TdGF0dXNdKGRvY3MvTm90aWZpY2F0aW9uU3RhdHVzLm1kKQogLSBbTm90aWZpY2F0aW9uV2l0aERhdGFdKGRvY3MvTm90aWZpY2F0aW9uV2l0aERhdGEubWQpCiAtIFtPbmNoYWluVHJhbnNhY3Rpb25dKGRvY3MvT25jaGFpblRyYW5zYWN0aW9uLm1kKQogLSBbT25jaGFpblRyYW5zYWN0aW9uc1BhZ2VkUmVzcG9uc2VdKGRvY3MvT25jaGFpblRyYW5zYWN0aW9uc1BhZ2VkUmVzcG9uc2UubWQpCiAtIFtPbmVUaW1lQWRkcmVzc10oZG9jcy9PbmVUaW1lQWRkcmVzcy5tZCkKIC0gW09uZVRpbWVBZGRyZXNzQWNjb3VudF0oZG9jcy9PbmVUaW1lQWRkcmVzc0FjY291bnQubWQpCiAtIFtPbmVUaW1lQWRkcmVzc1BlZXJUeXBlXShkb2NzL09uZVRpbWVBZGRyZXNzUGVlclR5cGUubWQpCiAtIFtPbmVUaW1lQWRkcmVzc1JlZmVyZW5jZV0oZG9jcy9PbmVUaW1lQWRkcmVzc1JlZmVyZW5jZS5tZCkKIC0gW09wZXJhdGlvbkV4ZWN1dGlvbkZhaWx1cmVdKGRvY3MvT3BlcmF0aW9uRXhlY3V0aW9uRmFpbHVyZS5tZCkKIC0gW09yZGVyRGV0YWlsc10oZG9jcy9PcmRlckRldGFpbHMubWQpCiAtIFtPcmRlckV4ZWN1dGlvblN0ZXBdKGRvY3MvT3JkZXJFeGVjdXRpb25TdGVwLm1kKQogLSBbT3JkZXJTaWRlXShkb2NzL09yZGVyU2lkZS5tZCkKIC0gW09yZGVyU3RhdHVzXShkb2NzL09yZGVyU3RhdHVzLm1kKQogLSBbT3JkZXJTdW1tYXJ5XShkb2NzL09yZGVyU3VtbWFyeS5tZCkKIC0gW1BhZ2luYXRlZEFkZHJlc3NSZXNwb25zZV0oZG9jcy9QYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2UubWQpCiAtIFtQYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2VQYWdpbmddKGRvY3MvUGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlUGFnaW5nLm1kKQogLSBbUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZV0oZG9jcy9QYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlLm1kKQogLSBbUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZVBhZ2luZ10oZG9jcy9QYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlUGFnaW5nLm1kKQogLSBbUGFnaW5hdGVkQXNzZXRzUmVzcG9uc2VdKGRvY3MvUGFnaW5hdGVkQXNzZXRzUmVzcG9uc2UubWQpCiAtIFtQYWdpbmddKGRvY3MvUGFnaW5nLm1kKQogLSBbUGFpckFwaUtleVJlcXVlc3RdKGRvY3MvUGFpckFwaUtleVJlcXVlc3QubWQpCiAtIFtQYWlyQXBpS2V5UmVzcG9uc2VdKGRvY3MvUGFpckFwaUtleVJlc3BvbnNlLm1kKQogLSBbUGFyYW1ldGVyXShkb2NzL1BhcmFtZXRlci5tZCkKIC0gW1BhcmFtZXRlcldpdGhWYWx1ZV0oZG9jcy9QYXJhbWV0ZXJXaXRoVmFsdWUubWQpCiAtIFtQYXJ0aWNpcGFudFJlbGF0aW9uc2hpcFR5cGVdKGRvY3MvUGFydGljaXBhbnRSZWxhdGlvbnNoaXBUeXBlLm1kKQogLSBbUGFydGljaXBhbnRzSWRlbnRpZmljYXRpb25dKGRvY3MvUGFydGljaXBhbnRzSWRlbnRpZmljYXRpb24ubWQpCiAtIFtQYXllZUFjY291bnRdKGRvY3MvUGF5ZWVBY2NvdW50Lm1kKQogLSBbUGF5ZWVBY2NvdW50UmVzcG9uc2VdKGRvY3MvUGF5ZWVBY2NvdW50UmVzcG9uc2UubWQpCiAtIFtQYXllZUFjY291bnRUeXBlXShkb2NzL1BheWVlQWNjb3VudFR5cGUubWQpCiAtIFtQYXlpZEFkZHJlc3NdKGRvY3MvUGF5aWRBZGRyZXNzLm1kKQogLSBbUGF5aWREZXN0aW5hdGlvbl0oZG9jcy9QYXlpZERlc3RpbmF0aW9uLm1kKQogLSBbUGF5aWRQYXltZW50SW5mb10oZG9jcy9QYXlpZFBheW1lbnRJbmZvLm1kKQogLSBbUGF5bWVudEFjY291bnRdKGRvY3MvUGF5bWVudEFjY291bnQubWQpCiAtIFtQYXltZW50QWNjb3VudFJlc3BvbnNlXShkb2NzL1BheW1lbnRBY2NvdW50UmVzcG9uc2UubWQpCiAtIFtQYXltZW50QWNjb3VudFR5cGVdKGRvY3MvUGF5bWVudEFjY291bnRUeXBlLm1kKQogLSBbUGF5bWVudEluc3RydWN0aW9uc10oZG9jcy9QYXltZW50SW5zdHJ1Y3Rpb25zLm1kKQogLSBbUGF5bWVudEluc3RydWN0aW9uc09uZU9mXShkb2NzL1BheW1lbnRJbnN0cnVjdGlvbnNPbmVPZi5tZCkKIC0gW1BheW1lbnRSZWRpcmVjdF0oZG9jcy9QYXltZW50UmVkaXJlY3QubWQpCiAtIFtQYXlvdXRJbml0TWV0aG9kXShkb2NzL1BheW91dEluaXRNZXRob2QubWQpCiAtIFtQYXlvdXRJbnN0cnVjdGlvbl0oZG9jcy9QYXlvdXRJbnN0cnVjdGlvbi5tZCkKIC0gW1BheW91dEluc3RydWN0aW9uUmVzcG9uc2VdKGRvY3MvUGF5b3V0SW5zdHJ1Y3Rpb25SZXNwb25zZS5tZCkKIC0gW1BheW91dEluc3RydWN0aW9uU3RhdGVdKGRvY3MvUGF5b3V0SW5zdHJ1Y3Rpb25TdGF0ZS5tZCkKIC0gW1BheW91dFJlc3BvbnNlXShkb2NzL1BheW91dFJlc3BvbnNlLm1kKQogLSBbUGF5b3V0U3RhdGVdKGRvY3MvUGF5b3V0U3RhdGUubWQpCiAtIFtQYXlvdXRTdGF0dXNdKGRvY3MvUGF5b3V0U3RhdHVzLm1kKQogLSBbUGVlckFkYXB0ZXJJbmZvXShkb2NzL1BlZXJBZGFwdGVySW5mby5tZCkKIC0gW1BlZXJUeXBlXShkb2NzL1BlZXJUeXBlLm1kKQogLSBbUGVyc29uYWxFbnRpdHlUeXBlRW51bV0oZG9jcy9QZXJzb25hbEVudGl0eVR5cGVFbnVtLm1kKQogLSBbUGVyc29uYWxJZGVudGlmaWNhdGlvbl0oZG9jcy9QZXJzb25hbElkZW50aWZpY2F0aW9uLm1kKQogLSBbUGVyc29uYWxJZGVudGlmaWNhdGlvbkZ1bGxOYW1lXShkb2NzL1BlcnNvbmFsSWRlbnRpZmljYXRpb25GdWxsTmFtZS5tZCkKIC0gW1BlcnNvbmFsSWRlbnRpZmljYXRpb25UeXBlXShkb2NzL1BlcnNvbmFsSWRlbnRpZmljYXRpb25UeXBlLm1kKQogLSBbUGl4QWRkcmVzc10oZG9jcy9QaXhBZGRyZXNzLm1kKQogLSBbUGl4RGVzdGluYXRpb25dKGRvY3MvUGl4RGVzdGluYXRpb24ubWQpCiAtIFtQaXhQYXltZW50SW5mb10oZG9jcy9QaXhQYXltZW50SW5mby5tZCkKIC0gW1BsYXRmb3JtQWNjb3VudF0oZG9jcy9QbGF0Zm9ybUFjY291bnQubWQpCiAtIFtQbGF0Zm9ybVBlZXJUeXBlXShkb2NzL1BsYXRmb3JtUGVlclR5cGUubWQpCiAtIFtQbGF5ZXJzXShkb2NzL1BsYXllcnMubWQpCiAtIFtQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2VdKGRvY3MvUG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlLm1kKQogLSBbUG9saWN5Q2hlY2tSZXN1bHRdKGRvY3MvUG9saWN5Q2hlY2tSZXN1bHQubWQpCiAtIFtQb2xpY3lDdXJyZW5jeV0oZG9jcy9Qb2xpY3lDdXJyZW5jeS5tZCkKIC0gW1BvbGljeU1ldGFkYXRhXShkb2NzL1BvbGljeU1ldGFkYXRhLm1kKQogLSBbUG9saWN5T3BlcmF0b3JdKGRvY3MvUG9saWN5T3BlcmF0b3IubWQpCiAtIFtQb2xpY3lSZXNwb25zZV0oZG9jcy9Qb2xpY3lSZXNwb25zZS5tZCkKIC0gW1BvbGljeVJ1bGVdKGRvY3MvUG9saWN5UnVsZS5tZCkKIC0gW1BvbGljeVJ1bGVDaGVja1Jlc3VsdF0oZG9jcy9Qb2xpY3lSdWxlQ2hlY2tSZXN1bHQubWQpCiAtIFtQb2xpY3lSdWxlRXJyb3JdKGRvY3MvUG9saWN5UnVsZUVycm9yLm1kKQogLSBbUG9saWN5U3RhdHVzXShkb2NzL1BvbGljeVN0YXR1cy5tZCkKIC0gW1BvbGljeVRhZ10oZG9jcy9Qb2xpY3lUYWcubWQpCiAtIFtQb2xpY3lUeXBlXShkb2NzL1BvbGljeVR5cGUubWQpCiAtIFtQb2xpY3lWYWxpZGF0aW9uXShkb2NzL1BvbGljeVZhbGlkYXRpb24ubWQpCiAtIFtQb2xpY3lWZXJkaWN0QWN0aW9uRW51bV0oZG9jcy9Qb2xpY3lWZXJkaWN0QWN0aW9uRW51bS5tZCkKIC0gW1BvbGljeVZlcmRpY3RBY3Rpb25FbnVtMl0oZG9jcy9Qb2xpY3lWZXJkaWN0QWN0aW9uRW51bTIubWQpCiAtIFtQb3NpdGlvbl0oZG9jcy9Qb3NpdGlvbi5tZCkKIC0gW1Bvc3RhbEFkZHJlc3NdKGRvY3MvUG9zdGFsQWRkcmVzcy5tZCkKIC0gW1ByZVNjcmVlbmluZ10oZG9jcy9QcmVTY3JlZW5pbmcubWQpCiAtIFtQcmVmdW5kZWRTZXR0bGVtZW50XShkb2NzL1ByZWZ1bmRlZFNldHRsZW1lbnQubWQpCiAtIFtQcmVmdW5kZWRTZXR0bGVtZW50VHlwZV0oZG9jcy9QcmVmdW5kZWRTZXR0bGVtZW50VHlwZS5tZCkKIC0gW1Byb2dyYW1DYWxsQ29uZmlnXShkb2NzL1Byb2dyYW1DYWxsQ29uZmlnLm1kKQogLSBbUHJvdmlkZXJdKGRvY3MvUHJvdmlkZXIubWQpCiAtIFtQcm92aWRlcnNMaXN0UmVzcG9uc2VdKGRvY3MvUHJvdmlkZXJzTGlzdFJlc3BvbnNlLm1kKQogLSBbUHVibGljS2V5SW5mb3JtYXRpb25dKGRvY3MvUHVibGljS2V5SW5mb3JtYXRpb24ubWQpCiAtIFtQdWJsaXNoRHJhZnRSZXF1ZXN0XShkb2NzL1B1Ymxpc2hEcmFmdFJlcXVlc3QubWQpCiAtIFtQdWJsaXNoUmVzdWx0XShkb2NzL1B1Ymxpc2hSZXN1bHQubWQpCiAtIFtRdW90ZV0oZG9jcy9RdW90ZS5tZCkKIC0gW1F1b3RlRXhlY3V0aW9uUmVxdWVzdERldGFpbHNdKGRvY3MvUXVvdGVFeGVjdXRpb25SZXF1ZXN0RGV0YWlscy5tZCkKIC0gW1F1b3RlRXhlY3V0aW9uU3RlcF0oZG9jcy9RdW90ZUV4ZWN1dGlvblN0ZXAubWQpCiAtIFtRdW90ZUV4ZWN1dGlvblR5cGVEZXRhaWxzXShkb2NzL1F1b3RlRXhlY3V0aW9uVHlwZURldGFpbHMubWQpCiAtIFtRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVxdWVzdERldGFpbHNdKGRvY3MvUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlcXVlc3REZXRhaWxzLm1kKQogLSBbUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlc3BvbnNlRGV0YWlsc10oZG9jcy9RdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVzcG9uc2VEZXRhaWxzLm1kKQogLSBbUXVvdGVGYWlsdXJlXShkb2NzL1F1b3RlRmFpbHVyZS5tZCkKIC0gW1F1b3RlUHJvcGVydGllc0RldGFpbHNdKGRvY3MvUXVvdGVQcm9wZXJ0aWVzRGV0YWlscy5tZCkKIC0gW1F1b3RlVHlwZUVudW1dKGRvY3MvUXVvdGVUeXBlRW51bS5tZCkKIC0gW1F1b3Rlc1Jlc3BvbnNlXShkb2NzL1F1b3Rlc1Jlc3BvbnNlLm1kKQogLSBbUmVRdW90ZURldGFpbHNdKGRvY3MvUmVRdW90ZURldGFpbHMubWQpCiAtIFtSZVF1b3RlRGV0YWlsc1JlUXVvdGVdKGRvY3MvUmVRdW90ZURldGFpbHNSZVF1b3RlLm1kKQogLSBbUmVhZEFiaUZ1bmN0aW9uXShkb2NzL1JlYWRBYmlGdW5jdGlvbi5tZCkKIC0gW1JlYWRDYWxsRnVuY3Rpb25EdG9dKGRvY3MvUmVhZENhbGxGdW5jdGlvbkR0by5tZCkKIC0gW1JlYWRDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbl0oZG9jcy9SZWFkQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb24ubWQpCiAtIFtSZWNpcGllbnRIYW5kbGVdKGRvY3MvUmVjaXBpZW50SGFuZGxlLm1kKQogLSBbUmVkZWVtRnVuZHNUb0xpbmtlZEREQVJlc3BvbnNlXShkb2NzL1JlZGVlbUZ1bmRzVG9MaW5rZWREREFSZXNwb25zZS5tZCkKIC0gW1JlZ2lzdGVyTmV3QXNzZXRSZXF1ZXN0XShkb2NzL1JlZ2lzdGVyTmV3QXNzZXRSZXF1ZXN0Lm1kKQogLSBbUmVpc3N1ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3RdKGRvY3MvUmVpc3N1ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3QubWQpCiAtIFtSZWxhdGVkUmVxdWVzdF0oZG9jcy9SZWxhdGVkUmVxdWVzdC5tZCkKIC0gW1JlbGF0ZWRUcmFuc2FjdGlvbl0oZG9jcy9SZWxhdGVkVHJhbnNhY3Rpb24ubWQpCiAtIFtSZW1vdmVDb2xsYXRlcmFsUmVxdWVzdEJvZHldKGRvY3MvUmVtb3ZlQ29sbGF0ZXJhbFJlcXVlc3RCb2R5Lm1kKQogLSBbUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlckZhaWxlZFJlc3VsdF0oZG9jcy9SZW1vdmVMYXllclplcm9BZGFwdGVyRmFpbGVkUmVzdWx0Lm1kKQogLSBbUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0XShkb2NzL1JlbW92ZUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdC5tZCkKIC0gW1JlbW92ZUxheWVyWmVyb0FkYXB0ZXJzUmVzcG9uc2VdKGRvY3MvUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXNwb25zZS5tZCkKIC0gW1JlbW92ZUxheWVyWmVyb1BlZXJzUmVxdWVzdF0oZG9jcy9SZW1vdmVMYXllclplcm9QZWVyc1JlcXVlc3QubWQpCiAtIFtSZW1vdmVMYXllclplcm9QZWVyc1Jlc3BvbnNlXShkb2NzL1JlbW92ZUxheWVyWmVyb1BlZXJzUmVzcG9uc2UubWQpCiAtIFtSZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVxdWVzdF0oZG9jcy9SZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVxdWVzdC5tZCkKIC0gW1JlbmFtZUNvbm5lY3RlZEFjY291bnRSZXNwb25zZV0oZG9jcy9SZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVzcG9uc2UubWQpCiAtIFtSZW5hbWVDb3NpZ25lcl0oZG9jcy9SZW5hbWVDb3NpZ25lci5tZCkKIC0gW1JlbmFtZVZhdWx0QWNjb3VudFJlc3BvbnNlXShkb2NzL1JlbmFtZVZhdWx0QWNjb3VudFJlc3BvbnNlLm1kKQogLSBbUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc0pvYlN0YXR1c1Jlc3BvbnNlXShkb2NzL1Jlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNKb2JTdGF0dXNSZXNwb25zZS5tZCkKIC0gW1Jlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXF1ZXN0XShkb2NzL1Jlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXF1ZXN0Lm1kKQogLSBbUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc1Jlc3BvbnNlXShkb2NzL1Jlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXNwb25zZS5tZCkKIC0gW1Jlc2VuZE5vdGlmaWNhdGlvbnNCeVJlc291cmNlSWRSZXF1ZXN0XShkb2NzL1Jlc2VuZE5vdGlmaWNhdGlvbnNCeVJlc291cmNlSWRSZXF1ZXN0Lm1kKQogLSBbUmVzZW5kVHJhbnNhY3Rpb25XZWJob29rc1JlcXVlc3RdKGRvY3MvUmVzZW5kVHJhbnNhY3Rpb25XZWJob29rc1JlcXVlc3QubWQpCiAtIFtSZXNlbmRXZWJob29rc0J5VHJhbnNhY3Rpb25JZFJlc3BvbnNlXShkb2NzL1Jlc2VuZFdlYmhvb2tzQnlUcmFuc2FjdGlvbklkUmVzcG9uc2UubWQpCiAtIFtSZXNlbmRXZWJob29rc1Jlc3BvbnNlXShkb2NzL1Jlc2VuZFdlYmhvb2tzUmVzcG9uc2UubWQpCiAtIFtSZXNwb25kVG9Db25uZWN0aW9uUmVxdWVzdF0oZG9jcy9SZXNwb25kVG9Db25uZWN0aW9uUmVxdWVzdC5tZCkKIC0gW1JldHJ5UmVxdW90ZVJlcXVlc3REZXRhaWxzXShkb2NzL1JldHJ5UmVxdW90ZVJlcXVlc3REZXRhaWxzLm1kKQogLSBbUmV0cnlSZXF1b3RlVHlwZUVudW1dKGRvY3MvUmV0cnlSZXF1b3RlVHlwZUVudW0ubWQpCiAtIFtSZXdhcmRJbmZvXShkb2NzL1Jld2FyZEluZm8ubWQpCiAtIFtSZXdhcmRzSW5mb10oZG9jcy9SZXdhcmRzSW5mby5tZCkKIC0gW1JvbGVEZXRhaWxzXShkb2NzL1JvbGVEZXRhaWxzLm1kKQogLSBbUm9sZUdyYW50ZWVdKGRvY3MvUm9sZUdyYW50ZWUubWQpCiAtIFtTRVBBQWRkcmVzc10oZG9jcy9TRVBBQWRkcmVzcy5tZCkKIC0gW1NFUEFEZXN0aW5hdGlvbl0oZG9jcy9TRVBBRGVzdGluYXRpb24ubWQpCiAtIFtTT0xBY2NvdW50XShkb2NzL1NPTEFjY291bnQubWQpCiAtIFtTT0xBY2NvdW50V2l0aFZhbHVlXShkb2NzL1NPTEFjY291bnRXaXRoVmFsdWUubWQpCiAtIFtTY29wZUl0ZW1dKGRvY3MvU2NvcGVJdGVtLm1kKQogLSBbU2NyZWVuaW5nQWxlcnRFeHBvc3VyZVR5cGVFbnVtXShkb2NzL1NjcmVlbmluZ0FsZXJ0RXhwb3N1cmVUeXBlRW51bS5tZCkKIC0gW1NjcmVlbmluZ0FtbEFsZXJ0XShkb2NzL1NjcmVlbmluZ0FtbEFsZXJ0Lm1kKQogLSBbU2NyZWVuaW5nQW1sTWF0Y2hlZFJ1bGVdKGRvY3MvU2NyZWVuaW5nQW1sTWF0Y2hlZFJ1bGUubWQpCiAtIFtTY3JlZW5pbmdBbWxSZXN1bHRdKGRvY3MvU2NyZWVuaW5nQW1sUmVzdWx0Lm1kKQogLSBbU2NyZWVuaW5nQ29uZmlndXJhdGlvbnNSZXF1ZXN0XShkb2NzL1NjcmVlbmluZ0NvbmZpZ3VyYXRpb25zUmVxdWVzdC5tZCkKIC0gW1NjcmVlbmluZ01ldGFkYXRhQ29uZmlnXShkb2NzL1NjcmVlbmluZ01ldGFkYXRhQ29uZmlnLm1kKQogLSBbU2NyZWVuaW5nT3BlcmF0aW9uRXhlY3V0aW9uXShkb2NzL1NjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbi5tZCkKIC0gW1NjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dF0oZG9jcy9TY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQubWQpCiAtIFtTY3JlZW5pbmdPcGVyYXRpb25GYWlsdXJlXShkb2NzL1NjcmVlbmluZ09wZXJhdGlvbkZhaWx1cmUubWQpCiAtIFtTY3JlZW5pbmdPcGVyYXRpb25UeXBlXShkb2NzL1NjcmVlbmluZ09wZXJhdGlvblR5cGUubWQpCiAtIFtTY3JlZW5pbmdQb2xpY3lSZXNwb25zZV0oZG9jcy9TY3JlZW5pbmdQb2xpY3lSZXNwb25zZS5tZCkKIC0gW1NjcmVlbmluZ1Byb3ZpZGVyUnVsZXNDb25maWd1cmF0aW9uUmVzcG9uc2VdKGRvY3MvU2NyZWVuaW5nUHJvdmlkZXJSdWxlc0NvbmZpZ3VyYXRpb25SZXNwb25zZS5tZCkKIC0gW1NjcmVlbmluZ1RSTGlua0Ftb3VudF0oZG9jcy9TY3JlZW5pbmdUUkxpbmtBbW91bnQubWQpCiAtIFtTY3JlZW5pbmdUUkxpbmtNaXNzaW5nVHJtRGVjaXNpb25dKGRvY3MvU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uLm1kKQogLSBbU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybVJ1bGVdKGRvY3MvU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybVJ1bGUubWQpCiAtIFtTY3JlZW5pbmdUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZV0oZG9jcy9TY3JlZW5pbmdUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZS5tZCkKIC0gW1NjcmVlbmluZ1RSTGlua1ByZXNjcmVlbmluZ1J1bGVdKGRvY3MvU2NyZWVuaW5nVFJMaW5rUHJlc2NyZWVuaW5nUnVsZS5tZCkKIC0gW1NjcmVlbmluZ1RSTGlua1J1bGVCYXNlXShkb2NzL1NjcmVlbmluZ1RSTGlua1J1bGVCYXNlLm1kKQogLSBbU2NyZWVuaW5nVHJhdmVsUnVsZU1hdGNoZWRSdWxlXShkb2NzL1NjcmVlbmluZ1RyYXZlbFJ1bGVNYXRjaGVkUnVsZS5tZCkKIC0gW1NjcmVlbmluZ1RyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlXShkb2NzL1NjcmVlbmluZ1RyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlLm1kKQogLSBbU2NyZWVuaW5nVHJhdmVsUnVsZVJlc3VsdF0oZG9jcy9TY3JlZW5pbmdUcmF2ZWxSdWxlUmVzdWx0Lm1kKQogLSBbU2NyZWVuaW5nVXBkYXRlQ29uZmlndXJhdGlvbnNdKGRvY3MvU2NyZWVuaW5nVXBkYXRlQ29uZmlndXJhdGlvbnMubWQpCiAtIFtTY3JlZW5pbmdWYWxpZGF0aW9uRmFpbHVyZV0oZG9jcy9TY3JlZW5pbmdWYWxpZGF0aW9uRmFpbHVyZS5tZCkKIC0gW1NjcmVlbmluZ1ZlcmRpY3RdKGRvY3MvU2NyZWVuaW5nVmVyZGljdC5tZCkKIC0gW1NjcmVlbmluZ1ZlcmRpY3RFbnVtXShkb2NzL1NjcmVlbmluZ1ZlcmRpY3RFbnVtLm1kKQogLSBbU2NyZWVuaW5nVmVyZGljdE1hdGNoZWRSdWxlXShkb2NzL1NjcmVlbmluZ1ZlcmRpY3RNYXRjaGVkUnVsZS5tZCkKIC0gW1NlYXJjaE5ldHdvcmtJZHNSZXNwb25zZV0oZG9jcy9TZWFyY2hOZXR3b3JrSWRzUmVzcG9uc2UubWQpCiAtIFtTZXBhUGF5bWVudEluZm9dKGRvY3MvU2VwYVBheW1lbnRJbmZvLm1kKQogLSBbU2Vzc2lvbkRUT10oZG9jcy9TZXNzaW9uRFRPLm1kKQogLSBbU2Vzc2lvbk1ldGFkYXRhXShkb2NzL1Nlc3Npb25NZXRhZGF0YS5tZCkKIC0gW1NldEFkbWluUXVvcnVtVGhyZXNob2xkUmVxdWVzdF0oZG9jcy9TZXRBZG1pblF1b3J1bVRocmVzaG9sZFJlcXVlc3QubWQpCiAtIFtTZXRBZG1pblF1b3J1bVRocmVzaG9sZFJlc3BvbnNlXShkb2NzL1NldEFkbWluUXVvcnVtVGhyZXNob2xkUmVzcG9uc2UubWQpCiAtIFtTZXRBc3NldFByaWNlUmVxdWVzdF0oZG9jcy9TZXRBc3NldFByaWNlUmVxdWVzdC5tZCkKIC0gW1NldEF1dG9GdWVsUmVxdWVzdF0oZG9jcy9TZXRBdXRvRnVlbFJlcXVlc3QubWQpCiAtIFtTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdF0oZG9jcy9TZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdC5tZCkKIC0gW1NldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXNwb25zZV0oZG9jcy9TZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVzcG9uc2UubWQpCiAtIFtTZXRDdXN0b21lclJlZklkRm9yQWRkcmVzc1JlcXVlc3RdKGRvY3MvU2V0Q3VzdG9tZXJSZWZJZEZvckFkZHJlc3NSZXF1ZXN0Lm1kKQogLSBbU2V0Q3VzdG9tZXJSZWZJZFJlcXVlc3RdKGRvY3MvU2V0Q3VzdG9tZXJSZWZJZFJlcXVlc3QubWQpCiAtIFtTZXRMYXllclplcm9Edm5Db25maWdSZXF1ZXN0XShkb2NzL1NldExheWVyWmVyb0R2bkNvbmZpZ1JlcXVlc3QubWQpCiAtIFtTZXRMYXllclplcm9Edm5Db25maWdSZXNwb25zZV0oZG9jcy9TZXRMYXllclplcm9Edm5Db25maWdSZXNwb25zZS5tZCkKIC0gW1NldExheWVyWmVyb1BlZXJzUmVxdWVzdF0oZG9jcy9TZXRMYXllclplcm9QZWVyc1JlcXVlc3QubWQpCiAtIFtTZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlXShkb2NzL1NldExheWVyWmVyb1BlZXJzUmVzcG9uc2UubWQpCiAtIFtTZXROZXR3b3JrSWREaXNjb3ZlcmFiaWxpdHlSZXF1ZXN0XShkb2NzL1NldE5ldHdvcmtJZERpc2NvdmVyYWJpbGl0eVJlcXVlc3QubWQpCiAtIFtTZXROZXR3b3JrSWROYW1lUmVxdWVzdF0oZG9jcy9TZXROZXR3b3JrSWROYW1lUmVxdWVzdC5tZCkKIC0gW1NldE5ldHdvcmtJZFJlc3BvbnNlXShkb2NzL1NldE5ldHdvcmtJZFJlc3BvbnNlLm1kKQogLSBbU2V0TmV0d29ya0lkUm91dGluZ1BvbGljeVJlcXVlc3RdKGRvY3MvU2V0TmV0d29ya0lkUm91dGluZ1BvbGljeVJlcXVlc3QubWQpCiAtIFtTZXRPdGFTdGF0dXNSZXF1ZXN0XShkb2NzL1NldE90YVN0YXR1c1JlcXVlc3QubWQpCiAtIFtTZXRPdGFTdGF0dXNSZXNwb25zZV0oZG9jcy9TZXRPdGFTdGF0dXNSZXNwb25zZS5tZCkKIC0gW1NldE90YVN0YXR1c1Jlc3BvbnNlT25lT2ZdKGRvY3MvU2V0T3RhU3RhdHVzUmVzcG9uc2VPbmVPZi5tZCkKIC0gW1NldFJvdXRpbmdQb2xpY3lSZXF1ZXN0XShkb2NzL1NldFJvdXRpbmdQb2xpY3lSZXF1ZXN0Lm1kKQogLSBbU2V0Um91dGluZ1BvbGljeVJlc3BvbnNlXShkb2NzL1NldFJvdXRpbmdQb2xpY3lSZXNwb25zZS5tZCkKIC0gW1NldHRsZW1lbnRdKGRvY3MvU2V0dGxlbWVudC5tZCkKIC0gW1NldHRsZW1lbnRSZXF1ZXN0Qm9keV0oZG9jcy9TZXR0bGVtZW50UmVxdWVzdEJvZHkubWQpCiAtIFtTZXR0bGVtZW50UmVzcG9uc2VdKGRvY3MvU2V0dGxlbWVudFJlc3BvbnNlLm1kKQogLSBbU2V0dGxlbWVudFNvdXJjZUFjY291bnRdKGRvY3MvU2V0dGxlbWVudFNvdXJjZUFjY291bnQubWQpCiAtIFtTZXR0bGVtZW50VHlwZUVudW1dKGRvY3MvU2V0dGxlbWVudFR5cGVFbnVtLm1kKQogLSBbU2lkZV0oZG9jcy9TaWRlLm1kKQogLSBbU2lnbmVkTWVzc2FnZV0oZG9jcy9TaWduZWRNZXNzYWdlLm1kKQogLSBbU2lnbmVkTWVzc2FnZVNpZ25hdHVyZV0oZG9jcy9TaWduZWRNZXNzYWdlU2lnbmF0dXJlLm1kKQogLSBbU2lnbmluZ0tleUR0b10oZG9jcy9TaWduaW5nS2V5RHRvLm1kKQogLSBbU21hcnRUcmFuc2ZlckFwcHJvdmVUZXJtXShkb2NzL1NtYXJ0VHJhbnNmZXJBcHByb3ZlVGVybS5tZCkKIC0gW1NtYXJ0VHJhbnNmZXJCYWRSZXF1ZXN0UmVzcG9uc2VdKGRvY3MvU21hcnRUcmFuc2ZlckJhZFJlcXVlc3RSZXNwb25zZS5tZCkKIC0gW1NtYXJ0VHJhbnNmZXJDb2luU3RhdGlzdGljXShkb2NzL1NtYXJ0VHJhbnNmZXJDb2luU3RhdGlzdGljLm1kKQogLSBbU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldF0oZG9jcy9TbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0Lm1kKQogLSBbU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldFRlcm1dKGRvY3MvU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldFRlcm0ubWQpCiAtIFtTbWFydFRyYW5zZmVyRm9yYmlkZGVuUmVzcG9uc2VdKGRvY3MvU21hcnRUcmFuc2ZlckZvcmJpZGRlblJlc3BvbnNlLm1kKQogLSBbU21hcnRUcmFuc2ZlckZ1bmREdnBUaWNrZXRdKGRvY3MvU21hcnRUcmFuc2ZlckZ1bmREdnBUaWNrZXQubWQpCiAtIFtTbWFydFRyYW5zZmVyRnVuZFRlcm1dKGRvY3MvU21hcnRUcmFuc2ZlckZ1bmRUZXJtLm1kKQogLSBbU21hcnRUcmFuc2Zlck1hbnVhbGx5RnVuZFRlcm1dKGRvY3MvU21hcnRUcmFuc2Zlck1hbnVhbGx5RnVuZFRlcm0ubWQpCiAtIFtTbWFydFRyYW5zZmVyTm90Rm91bmRSZXNwb25zZV0oZG9jcy9TbWFydFRyYW5zZmVyTm90Rm91bmRSZXNwb25zZS5tZCkKIC0gW1NtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHBpcmF0aW9uXShkb2NzL1NtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHBpcmF0aW9uLm1kKQogLSBbU21hcnRUcmFuc2ZlclNldFRpY2tldEV4dGVybmFsSWRdKGRvY3MvU21hcnRUcmFuc2ZlclNldFRpY2tldEV4dGVybmFsSWQubWQpCiAtIFtTbWFydFRyYW5zZmVyU2V0VXNlckdyb3Vwc10oZG9jcy9TbWFydFRyYW5zZmVyU2V0VXNlckdyb3Vwcy5tZCkKIC0gW1NtYXJ0VHJhbnNmZXJTdGF0aXN0aWNdKGRvY3MvU21hcnRUcmFuc2ZlclN0YXRpc3RpYy5tZCkKIC0gW1NtYXJ0VHJhbnNmZXJTdGF0aXN0aWNJbmZsb3ddKGRvY3MvU21hcnRUcmFuc2ZlclN0YXRpc3RpY0luZmxvdy5tZCkKIC0gW1NtYXJ0VHJhbnNmZXJTdGF0aXN0aWNPdXRmbG93XShkb2NzL1NtYXJ0VHJhbnNmZXJTdGF0aXN0aWNPdXRmbG93Lm1kKQogLSBbU21hcnRUcmFuc2ZlclN1Ym1pdFRpY2tldF0oZG9jcy9TbWFydFRyYW5zZmVyU3VibWl0VGlja2V0Lm1kKQogLSBbU21hcnRUcmFuc2ZlclRpY2tldF0oZG9jcy9TbWFydFRyYW5zZmVyVGlja2V0Lm1kKQogLSBbU21hcnRUcmFuc2ZlclRpY2tldEZpbHRlcmVkUmVzcG9uc2VdKGRvY3MvU21hcnRUcmFuc2ZlclRpY2tldEZpbHRlcmVkUmVzcG9uc2UubWQpCiAtIFtTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2VdKGRvY3MvU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlLm1kKQogLSBbU21hcnRUcmFuc2ZlclRpY2tldFRlcm1dKGRvY3MvU21hcnRUcmFuc2ZlclRpY2tldFRlcm0ubWQpCiAtIFtTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlXShkb2NzL1NtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2UubWQpCiAtIFtTbWFydFRyYW5zZmVyVXBkYXRlVGlja2V0VGVybV0oZG9jcy9TbWFydFRyYW5zZmVyVXBkYXRlVGlja2V0VGVybS5tZCkKIC0gW1NtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzXShkb2NzL1NtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzLm1kKQogLSBbU21hcnRUcmFuc2ZlclVzZXJHcm91cHNSZXNwb25zZV0oZG9jcy9TbWFydFRyYW5zZmVyVXNlckdyb3Vwc1Jlc3BvbnNlLm1kKQogLSBbU29sUGFyYW1ldGVyXShkb2NzL1NvbFBhcmFtZXRlci5tZCkKIC0gW1NvbFBhcmFtZXRlcldpdGhWYWx1ZV0oZG9jcy9Tb2xQYXJhbWV0ZXJXaXRoVmFsdWUubWQpCiAtIFtTb2xhbmFCbG9ja2NoYWluRGF0YV0oZG9jcy9Tb2xhbmFCbG9ja2NoYWluRGF0YS5tZCkKIC0gW1NvbGFuYUNvbmZpZ10oZG9jcy9Tb2xhbmFDb25maWcubWQpCiAtIFtTb2xhbmFJbnN0cnVjdGlvbl0oZG9jcy9Tb2xhbmFJbnN0cnVjdGlvbi5tZCkKIC0gW1NvbGFuYUluc3RydWN0aW9uV2l0aFZhbHVlXShkb2NzL1NvbGFuYUluc3RydWN0aW9uV2l0aFZhbHVlLm1kKQogLSBbU29sYW5hU2ltcGxlQ3JlYXRlUGFyYW1zXShkb2NzL1NvbGFuYVNpbXBsZUNyZWF0ZVBhcmFtcy5tZCkKIC0gW1NvdXJjZUNvbmZpZ10oZG9jcy9Tb3VyY2VDb25maWcubWQpCiAtIFtTb3VyY2VUcmFuc2ZlclBlZXJQYXRoXShkb2NzL1NvdXJjZVRyYW5zZmVyUGVlclBhdGgubWQpCiAtIFtTb3VyY2VUcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2VdKGRvY3MvU291cmNlVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlLm1kKQogLSBbU3BhbU93bmVyc2hpcFJlc3BvbnNlXShkb2NzL1NwYW1Pd25lcnNoaXBSZXNwb25zZS5tZCkKIC0gW1NwYW1Ub2tlblJlc3BvbnNlXShkb2NzL1NwYW1Ub2tlblJlc3BvbnNlLm1kKQogLSBbU3BlaUFkZHJlc3NdKGRvY3MvU3BlaUFkZHJlc3MubWQpCiAtIFtTcGVpQWR2YW5jZWRQYXltZW50SW5mb10oZG9jcy9TcGVpQWR2YW5jZWRQYXltZW50SW5mby5tZCkKIC0gW1NwZWlCYXNpY1BheW1lbnRJbmZvXShkb2NzL1NwZWlCYXNpY1BheW1lbnRJbmZvLm1kKQogLSBbU3BlaURlc3RpbmF0aW9uXShkb2NzL1NwZWlEZXN0aW5hdGlvbi5tZCkKIC0gW1NwbGl0UmVxdWVzdF0oZG9jcy9TcGxpdFJlcXVlc3QubWQpCiAtIFtTcGxpdFJlc3BvbnNlXShkb2NzL1NwbGl0UmVzcG9uc2UubWQpCiAtIFtTdEV0aEJsb2NrY2hhaW5EYXRhXShkb2NzL1N0RXRoQmxvY2tjaGFpbkRhdGEubWQpCiAtIFtTdGFrZVJlcXVlc3RdKGRvY3MvU3Rha2VSZXF1ZXN0Lm1kKQogLSBbU3Rha2VSZXNwb25zZV0oZG9jcy9TdGFrZVJlc3BvbnNlLm1kKQogLSBbU3Rha2luZ1Bvc2l0aW9uc1BhZ2luYXRlZFJlc3BvbnNlXShkb2NzL1N0YWtpbmdQb3NpdGlvbnNQYWdpbmF0ZWRSZXNwb25zZS5tZCkKIC0gW1N0YWtpbmdQcm92aWRlcl0oZG9jcy9TdGFraW5nUHJvdmlkZXIubWQpCiAtIFtTdGF0dXNdKGRvY3MvU3RhdHVzLm1kKQogLSBbU3RlbGxhclJpcHBsZUNyZWF0ZVBhcmFtc0R0b10oZG9jcy9TdGVsbGFyUmlwcGxlQ3JlYXRlUGFyYW1zRHRvLm1kKQogLSBbU3VwcG9ydGVkQmxvY2tDaGFpbnNSZXNwb25zZV0oZG9jcy9TdXBwb3J0ZWRCbG9ja0NoYWluc1Jlc3BvbnNlLm1kKQogLSBbU3VwcG9ydGVkQmxvY2tjaGFpbl0oZG9jcy9TdXBwb3J0ZWRCbG9ja2NoYWluLm1kKQogLSBbU3dpZnRBZGRyZXNzXShkb2NzL1N3aWZ0QWRkcmVzcy5tZCkKIC0gW1N3aWZ0RGVzdGluYXRpb25dKGRvY3MvU3dpZnREZXN0aW5hdGlvbi5tZCkKIC0gW1N5c3RlbU1lc3NhZ2VJbmZvXShkb2NzL1N5c3RlbU1lc3NhZ2VJbmZvLm1kKQogLSBbVFJMaW5rQVBJUGFnZWRSZXNwb25zZV0oZG9jcy9UUkxpbmtBUElQYWdlZFJlc3BvbnNlLm1kKQogLSBbVFJMaW5rQW1vdW50XShkb2NzL1RSTGlua0Ftb3VudC5tZCkKIC0gW1RSTGlua0Ftb3VudDJdKGRvY3MvVFJMaW5rQW1vdW50Mi5tZCkKIC0gW1RSTGlua0Ftb3VudFJhbmdlXShkb2NzL1RSTGlua0Ftb3VudFJhbmdlLm1kKQogLSBbVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlcXVlc3RdKGRvY3MvVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlcXVlc3QubWQpCiAtIFtUUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVzcG9uc2VdKGRvY3MvVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlc3BvbnNlLm1kKQogLSBbVFJMaW5rQXNzZXNzbWVudERlY2lzaW9uXShkb2NzL1RSTGlua0Fzc2Vzc21lbnREZWNpc2lvbi5tZCkKIC0gW1RSTGlua0Fzc2V0XShkb2NzL1RSTGlua0Fzc2V0Lm1kKQogLSBbVFJMaW5rQXNzZXREYXRhXShkb2NzL1RSTGlua0Fzc2V0RGF0YS5tZCkKIC0gW1RSTGlua0Fzc2V0Rm9ybWF0XShkb2NzL1RSTGlua0Fzc2V0Rm9ybWF0Lm1kKQogLSBbVFJMaW5rQXNzZXRzTGlzdFBhZ2VkUmVzcG9uc2VdKGRvY3MvVFJMaW5rQXNzZXRzTGlzdFBhZ2VkUmVzcG9uc2UubWQpCiAtIFtUUkxpbmtDYW5jZWxUcm1SZXF1ZXN0XShkb2NzL1RSTGlua0NhbmNlbFRybVJlcXVlc3QubWQpCiAtIFtUUkxpbmtDb25uZWN0SW50ZWdyYXRpb25SZXF1ZXN0XShkb2NzL1RSTGlua0Nvbm5lY3RJbnRlZ3JhdGlvblJlcXVlc3QubWQpCiAtIFtUUkxpbmtDcmVhdGVDdXN0b21lclJlcXVlc3RdKGRvY3MvVFJMaW5rQ3JlYXRlQ3VzdG9tZXJSZXF1ZXN0Lm1kKQogLSBbVFJMaW5rQ3JlYXRlSW50ZWdyYXRpb25SZXF1ZXN0XShkb2NzL1RSTGlua0NyZWF0ZUludGVncmF0aW9uUmVxdWVzdC5tZCkKIC0gW1RSTGlua0NyZWF0ZVRybVJlcXVlc3RdKGRvY3MvVFJMaW5rQ3JlYXRlVHJtUmVxdWVzdC5tZCkKIC0gW1RSTGlua0N1cnJlbmN5XShkb2NzL1RSTGlua0N1cnJlbmN5Lm1kKQogLSBbVFJMaW5rQ3VzdG9tZXJJbnRlZ3JhdGlvblJlc3BvbnNlXShkb2NzL1RSTGlua0N1c3RvbWVySW50ZWdyYXRpb25SZXNwb25zZS5tZCkKIC0gW1RSTGlua0N1c3RvbWVyUmVzcG9uc2VdKGRvY3MvVFJMaW5rQ3VzdG9tZXJSZXNwb25zZS5tZCkKIC0gW1RSTGlua0Rlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aF0oZG9jcy9UUkxpbmtEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgubWQpCiAtIFtUUkxpbmtEaXNjb3ZlcmFibGVTdGF0dXNdKGRvY3MvVFJMaW5rRGlzY292ZXJhYmxlU3RhdHVzLm1kKQogLSBbVFJMaW5rRmlhdFZhbHVlXShkb2NzL1RSTGlua0ZpYXRWYWx1ZS5tZCkKIC0gW1RSTGlua0dlb2dyYXBoaWNBZGRyZXNzUmVxdWVzdF0oZG9jcy9UUkxpbmtHZW9ncmFwaGljQWRkcmVzc1JlcXVlc3QubWQpCiAtIFtUUkxpbmtHZXRTdXBwb3J0ZWRBc3NldFJlc3BvbnNlXShkb2NzL1RSTGlua0dldFN1cHBvcnRlZEFzc2V0UmVzcG9uc2UubWQpCiAtIFtUUkxpbmtJdm1zXShkb2NzL1RSTGlua0l2bXMubWQpCiAtIFtUUkxpbmtJdm1zUmVzcG9uc2VdKGRvY3MvVFJMaW5rSXZtc1Jlc3BvbnNlLm1kKQogLSBbVFJMaW5rSndrUHVibGljS2V5XShkb2NzL1RSTGlua0p3a1B1YmxpY0tleS5tZCkKIC0gW1RSTGlua01pc3NpbmdUcm1BY3Rpb25dKGRvY3MvVFJMaW5rTWlzc2luZ1RybUFjdGlvbi5tZCkKIC0gW1RSTGlua01pc3NpbmdUcm1BY3Rpb24yXShkb2NzL1RSTGlua01pc3NpbmdUcm1BY3Rpb24yLm1kKQogLSBbVFJMaW5rTWlzc2luZ1RybUFjdGlvbkVudW1dKGRvY3MvVFJMaW5rTWlzc2luZ1RybUFjdGlvbkVudW0ubWQpCiAtIFtUUkxpbmtNaXNzaW5nVHJtRGVjaXNpb25dKGRvY3MvVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uLm1kKQogLSBbVFJMaW5rTWlzc2luZ1RybVJ1bGVdKGRvY3MvVFJMaW5rTWlzc2luZ1RybVJ1bGUubWQpCiAtIFtUUkxpbmtNaXNzaW5nVHJtUnVsZTJdKGRvY3MvVFJMaW5rTWlzc2luZ1RybVJ1bGUyLm1kKQogLSBbVFJMaW5rT25lVGltZUFkZHJlc3NdKGRvY3MvVFJMaW5rT25lVGltZUFkZHJlc3MubWQpCiAtIFtUUkxpbmtQYWdpbmddKGRvY3MvVFJMaW5rUGFnaW5nLm1kKQogLSBbVFJMaW5rUGFydG5lclJlc3BvbnNlXShkb2NzL1RSTGlua1BhcnRuZXJSZXNwb25zZS5tZCkKIC0gW1RSTGlua1BvbGljeVJlc3BvbnNlXShkb2NzL1RSTGlua1BvbGljeVJlc3BvbnNlLm1kKQogLSBbVFJMaW5rUG9zdFNjcmVlbmluZ0FjdGlvbl0oZG9jcy9UUkxpbmtQb3N0U2NyZWVuaW5nQWN0aW9uLm1kKQogLSBbVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGVdKGRvY3MvVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUubWQpCiAtIFtUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZTJdKGRvY3MvVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUyLm1kKQogLSBbVFJMaW5rUHJlU2NyZWVuaW5nQWN0aW9uXShkb2NzL1RSTGlua1ByZVNjcmVlbmluZ0FjdGlvbi5tZCkKIC0gW1RSTGlua1ByZVNjcmVlbmluZ0FjdGlvbjJdKGRvY3MvVFJMaW5rUHJlU2NyZWVuaW5nQWN0aW9uMi5tZCkKIC0gW1RSTGlua1ByZVNjcmVlbmluZ0FjdGlvbkVudW1dKGRvY3MvVFJMaW5rUHJlU2NyZWVuaW5nQWN0aW9uRW51bS5tZCkKIC0gW1RSTGlua1ByZVNjcmVlbmluZ1J1bGVdKGRvY3MvVFJMaW5rUHJlU2NyZWVuaW5nUnVsZS5tZCkKIC0gW1RSTGlua1ByZVNjcmVlbmluZ1J1bGUyXShkb2NzL1RSTGlua1ByZVNjcmVlbmluZ1J1bGUyLm1kKQogLSBbVFJMaW5rUHJvdmlkZXJEYXRhXShkb2NzL1RSTGlua1Byb3ZpZGVyRGF0YS5tZCkKIC0gW1RSTGlua1Byb3ZpZGVyUmVzdWx0XShkb2NzL1RSTGlua1Byb3ZpZGVyUmVzdWx0Lm1kKQogLSBbVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZV0oZG9jcy9UUkxpbmtQcm92aWRlclJlc3VsdFdpdGhSdWxlLm1kKQogLSBbVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZTJdKGRvY3MvVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZTIubWQpCiAtIFtUUkxpbmtQdWJsaWNBc3NldEluZm9dKGRvY3MvVFJMaW5rUHVibGljQXNzZXRJbmZvLm1kKQogLSBbVFJMaW5rUHVibGljS2V5UmVzcG9uc2VdKGRvY3MvVFJMaW5rUHVibGljS2V5UmVzcG9uc2UubWQpCiAtIFtUUkxpbmtSZWRpcmVjdFRybVJlcXVlc3RdKGRvY3MvVFJMaW5rUmVkaXJlY3RUcm1SZXF1ZXN0Lm1kKQogLSBbVFJMaW5rUmVnaXN0cmF0aW9uUmVzdWx0XShkb2NzL1RSTGlua1JlZ2lzdHJhdGlvblJlc3VsdC5tZCkKIC0gW1RSTGlua1JlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkXShkb2NzL1RSTGlua1JlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkLm1kKQogLSBbVFJMaW5rUmVnaXN0cmF0aW9uU3RhdHVzXShkb2NzL1RSTGlua1JlZ2lzdHJhdGlvblN0YXR1cy5tZCkKIC0gW1RSTGlua1JlZ2lzdHJhdGlvblN0YXR1c0VudW1dKGRvY3MvVFJMaW5rUmVnaXN0cmF0aW9uU3RhdHVzRW51bS5tZCkKIC0gW1RSTGlua1Jlc3VsdF0oZG9jcy9UUkxpbmtSZXN1bHQubWQpCiAtIFtUUkxpbmtSZXN1bHRGdWxsUGF5bG9hZF0oZG9jcy9UUkxpbmtSZXN1bHRGdWxsUGF5bG9hZC5tZCkKIC0gW1RSTGlua1J1bGVCYXNlXShkb2NzL1RSTGlua1J1bGVCYXNlLm1kKQogLSBbVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVxdWVzdF0oZG9jcy9UUkxpbmtTZXREZXN0aW5hdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXF1ZXN0Lm1kKQogLSBbVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2VdKGRvY3MvVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2UubWQpCiAtIFtUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXF1ZXN0XShkb2NzL1RSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QubWQpCiAtIFtUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXNwb25zZV0oZG9jcy9UUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXNwb25zZS5tZCkKIC0gW1RSTGlua1NvdXJjZVRyYW5zZmVyUGVlclBhdGhdKGRvY3MvVFJMaW5rU291cmNlVHJhbnNmZXJQZWVyUGF0aC5tZCkKIC0gW1RSTGlua1Rlc3RDb25uZWN0aW9uUmVzcG9uc2VdKGRvY3MvVFJMaW5rVGVzdENvbm5lY3Rpb25SZXNwb25zZS5tZCkKIC0gW1RSTGlua1RocmVzaG9sZHNdKGRvY3MvVFJMaW5rVGhyZXNob2xkcy5tZCkKIC0gW1RSTGlua1RyYW5zYWN0aW9uRGlyZWN0aW9uXShkb2NzL1RSTGlua1RyYW5zYWN0aW9uRGlyZWN0aW9uLm1kKQogLSBbVFJMaW5rVHJhbnNmZXJQZWVyUGF0aF0oZG9jcy9UUkxpbmtUcmFuc2ZlclBlZXJQYXRoLm1kKQogLSBbVFJMaW5rVHJtRGlyZWN0aW9uXShkb2NzL1RSTGlua1RybURpcmVjdGlvbi5tZCkKIC0gW1RSTGlua1RybUluZm9SZXNwb25zZV0oZG9jcy9UUkxpbmtUcm1JbmZvUmVzcG9uc2UubWQpCiAtIFtUUkxpbmtUcm1TY3JlZW5pbmdTdGF0dXNdKGRvY3MvVFJMaW5rVHJtU2NyZWVuaW5nU3RhdHVzLm1kKQogLSBbVFJMaW5rVHJtU2NyZWVuaW5nU3RhdHVzRW51bV0oZG9jcy9UUkxpbmtUcm1TY3JlZW5pbmdTdGF0dXNFbnVtLm1kKQogLSBbVFJMaW5rVHJtU3RhdHVzXShkb2NzL1RSTGlua1RybVN0YXR1cy5tZCkKIC0gW1RSTGlua1R4bkluZm9dKGRvY3MvVFJMaW5rVHhuSW5mby5tZCkKIC0gW1RSTGlua1VwZGF0ZUN1c3RvbWVyUmVxdWVzdF0oZG9jcy9UUkxpbmtVcGRhdGVDdXN0b21lclJlcXVlc3QubWQpCiAtIFtUUkxpbmtWYXNwRHRvXShkb2NzL1RSTGlua1Zhc3BEdG8ubWQpCiAtIFtUUkxpbmtWYXNwR2VvZ3JhcGhpY0FkZHJlc3NdKGRvY3MvVFJMaW5rVmFzcEdlb2dyYXBoaWNBZGRyZXNzLm1kKQogLSBbVFJMaW5rVmFzcExpc3REdG9dKGRvY3MvVFJMaW5rVmFzcExpc3REdG8ubWQpCiAtIFtUUkxpbmtWYXNwTmF0aW9uYWxJZGVudGlmaWNhdGlvbl0oZG9jcy9UUkxpbmtWYXNwTmF0aW9uYWxJZGVudGlmaWNhdGlvbi5tZCkKIC0gW1RSTGlua1ZlcmRpY3RdKGRvY3MvVFJMaW5rVmVyZGljdC5tZCkKIC0gW1RSTGlua1ZlcmRpY3RFbnVtXShkb2NzL1RSTGlua1ZlcmRpY3RFbnVtLm1kKQogLSBbVGFnXShkb2NzL1RhZy5tZCkKIC0gW1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25BY3Rpb25dKGRvY3MvVGFnQXR0YWNobWVudE9wZXJhdGlvbkFjdGlvbi5tZCkKIC0gW1RhZ3NQYWdlZFJlc3BvbnNlXShkb2NzL1RhZ3NQYWdlZFJlc3BvbnNlLm1kKQogLSBbVGVtcGxhdGVzUGFnaW5hdGVkUmVzcG9uc2VdKGRvY3MvVGVtcGxhdGVzUGFnaW5hdGVkUmVzcG9uc2UubWQpCiAtIFtUaGlyZFBhcnR5Um91dGluZ10oZG9jcy9UaGlyZFBhcnR5Um91dGluZy5tZCkKIC0gW1RpbWVQZXJpb2RDb25maWddKGRvY3MvVGltZVBlcmlvZENvbmZpZy5tZCkKIC0gW1RpbWVQZXJpb2RNYXRjaFR5cGVdKGRvY3MvVGltZVBlcmlvZE1hdGNoVHlwZS5tZCkKIC0gW1RvQ29sbGF0ZXJhbFRyYW5zYWN0aW9uXShkb2NzL1RvQ29sbGF0ZXJhbFRyYW5zYWN0aW9uLm1kKQogLSBbVG9FeGNoYW5nZVRyYW5zYWN0aW9uXShkb2NzL1RvRXhjaGFuZ2VUcmFuc2FjdGlvbi5tZCkKIC0gW1Rva2VuQ29sbGVjdGlvblJlc3BvbnNlXShkb2NzL1Rva2VuQ29sbGVjdGlvblJlc3BvbnNlLm1kKQogLSBbVG9rZW5Db250cmFjdFN1bW1hcnlSZXNwb25zZV0oZG9jcy9Ub2tlbkNvbnRyYWN0U3VtbWFyeVJlc3BvbnNlLm1kKQogLSBbVG9rZW5JbmZvTm90Rm91bmRFcnJvclJlc3BvbnNlXShkb2NzL1Rva2VuSW5mb05vdEZvdW5kRXJyb3JSZXNwb25zZS5tZCkKIC0gW1Rva2VuTGlua0R0b10oZG9jcy9Ub2tlbkxpbmtEdG8ubWQpCiAtIFtUb2tlbkxpbmtEdG9Ub2tlbk1ldGFkYXRhXShkb2NzL1Rva2VuTGlua0R0b1Rva2VuTWV0YWRhdGEubWQpCiAtIFtUb2tlbkxpbmtFeGlzdHNIdHRwRXJyb3JdKGRvY3MvVG9rZW5MaW5rRXhpc3RzSHR0cEVycm9yLm1kKQogLSBbVG9rZW5MaW5rTm90TXVsdGljaGFpbkNvbXBhdGlibGVIdHRwRXJyb3JdKGRvY3MvVG9rZW5MaW5rTm90TXVsdGljaGFpbkNvbXBhdGlibGVIdHRwRXJyb3IubWQpCiAtIFtUb2tlbkxpbmtSZXF1ZXN0RHRvXShkb2NzL1Rva2VuTGlua1JlcXVlc3REdG8ubWQpCiAtIFtUb2tlbk93bmVyc2hpcFJlc3BvbnNlXShkb2NzL1Rva2VuT3duZXJzaGlwUmVzcG9uc2UubWQpCiAtIFtUb2tlbk93bmVyc2hpcFNwYW1VcGRhdGVQYXlsb2FkXShkb2NzL1Rva2VuT3duZXJzaGlwU3BhbVVwZGF0ZVBheWxvYWQubWQpCiAtIFtUb2tlbk93bmVyc2hpcFN0YXR1c1VwZGF0ZVBheWxvYWRdKGRvY3MvVG9rZW5Pd25lcnNoaXBTdGF0dXNVcGRhdGVQYXlsb2FkLm1kKQogLSBbVG9rZW5SZXNwb25zZV0oZG9jcy9Ub2tlblJlc3BvbnNlLm1kKQogLSBbVG9rZW5zUGFnaW5hdGVkUmVzcG9uc2VdKGRvY3MvVG9rZW5zUGFnaW5hdGVkUmVzcG9uc2UubWQpCiAtIFtUb3RhbFN1cHBseUl0ZW1EdG9dKGRvY3MvVG90YWxTdXBwbHlJdGVtRHRvLm1kKQogLSBbVG90YWxTdXBwbHlQYWdlZFJlc3BvbnNlXShkb2NzL1RvdGFsU3VwcGx5UGFnZWRSZXNwb25zZS5tZCkKIC0gW1RyYWRpbmdBY2NvdW50VHlwZV0oZG9jcy9UcmFkaW5nQWNjb3VudFR5cGUubWQpCiAtIFtUcmFkaW5nRXJyb3JTY2hlbWFdKGRvY3MvVHJhZGluZ0Vycm9yU2NoZW1hLm1kKQogLSBbVHJhZGluZ1Byb3ZpZGVyXShkb2NzL1RyYWRpbmdQcm92aWRlci5tZCkKIC0gW1RyYWRpbmdQcm92aWRlckRldGFpbHNdKGRvY3MvVHJhZGluZ1Byb3ZpZGVyRGV0YWlscy5tZCkKIC0gW1RyYW5zYWN0aW9uXShkb2NzL1RyYW5zYWN0aW9uLm1kKQogLSBbVHJhbnNhY3Rpb25EaXJlY3Rpb25dKGRvY3MvVHJhbnNhY3Rpb25EaXJlY3Rpb24ubWQpCiAtIFtUcmFuc2FjdGlvbkZlZV0oZG9jcy9UcmFuc2FjdGlvbkZlZS5tZCkKIC0gW1RyYW5zYWN0aW9uT3BlcmF0aW9uXShkb2NzL1RyYW5zYWN0aW9uT3BlcmF0aW9uLm1kKQogLSBbVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtXShkb2NzL1RyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5tZCkKIC0gW1RyYW5zYWN0aW9uUmVjZWlwdFJlc3BvbnNlXShkb2NzL1RyYW5zYWN0aW9uUmVjZWlwdFJlc3BvbnNlLm1kKQogLSBbVHJhbnNhY3Rpb25SZXF1ZXN0XShkb2NzL1RyYW5zYWN0aW9uUmVxdWVzdC5tZCkKIC0gW1RyYW5zYWN0aW9uUmVxdWVzdEFtb3VudF0oZG9jcy9UcmFuc2FjdGlvblJlcXVlc3RBbW91bnQubWQpCiAtIFtUcmFuc2FjdGlvblJlcXVlc3REZXN0aW5hdGlvbl0oZG9jcy9UcmFuc2FjdGlvblJlcXVlc3REZXN0aW5hdGlvbi5tZCkKIC0gW1RyYW5zYWN0aW9uUmVxdWVzdEZlZV0oZG9jcy9UcmFuc2FjdGlvblJlcXVlc3RGZWUubWQpCiAtIFtUcmFuc2FjdGlvblJlcXVlc3RHYXNMaW1pdF0oZG9jcy9UcmFuc2FjdGlvblJlcXVlc3RHYXNMaW1pdC5tZCkKIC0gW1RyYW5zYWN0aW9uUmVxdWVzdEdhc1ByaWNlXShkb2NzL1RyYW5zYWN0aW9uUmVxdWVzdEdhc1ByaWNlLm1kKQogLSBbVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya0ZlZV0oZG9jcy9UcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrRmVlLm1kKQogLSBbVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya1N0YWtpbmddKGRvY3MvVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya1N0YWtpbmcubWQpCiAtIFtUcmFuc2FjdGlvblJlcXVlc3RQcmlvcml0eUZlZV0oZG9jcy9UcmFuc2FjdGlvblJlcXVlc3RQcmlvcml0eUZlZS5tZCkKIC0gW1RyYW5zYWN0aW9uUmVzcG9uc2VdKGRvY3MvVHJhbnNhY3Rpb25SZXNwb25zZS5tZCkKIC0gW1RyYW5zYWN0aW9uUmVzcG9uc2VDb250cmFjdENhbGxEZWNvZGVkRGF0YV0oZG9jcy9UcmFuc2FjdGlvblJlc3BvbnNlQ29udHJhY3RDYWxsRGVjb2RlZERhdGEubWQpCiAtIFtUcmFuc2FjdGlvblJlc3BvbnNlRGVzdGluYXRpb25dKGRvY3MvVHJhbnNhY3Rpb25SZXNwb25zZURlc3RpbmF0aW9uLm1kKQogLSBbVHJhbnNmZXJDb25maWdPcGVyYXRpb25dKGRvY3MvVHJhbnNmZXJDb25maWdPcGVyYXRpb24ubWQpCiAtIFtUcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtc10oZG9jcy9UcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcy5tZCkKIC0gW1RyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uXShkb2NzL1RyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uLm1kKQogLSBbVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25PdXRwdXRdKGRvY3MvVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQubWQpCiAtIFtUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc10oZG9jcy9UcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcy5tZCkKIC0gW1RyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zXShkb2NzL1RyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zLm1kKQogLSBbVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlXShkb2NzL1RyYW5zZmVyT3BlcmF0aW9uRmFpbHVyZS5tZCkKIC0gW1RyYW5zZmVyT3BlcmF0aW9uRmFpbHVyZURhdGFdKGRvY3MvVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlRGF0YS5tZCkKIC0gW1RyYW5zZmVyT3BlcmF0aW9uUHJldmlld10oZG9jcy9UcmFuc2Zlck9wZXJhdGlvblByZXZpZXcubWQpCiAtIFtUcmFuc2Zlck9wZXJhdGlvblByZXZpZXdPdXRwdXRdKGRvY3MvVHJhbnNmZXJPcGVyYXRpb25QcmV2aWV3T3V0cHV0Lm1kKQogLSBbVHJhbnNmZXJPcGVyYXRpb25UeXBlXShkb2NzL1RyYW5zZmVyT3BlcmF0aW9uVHlwZS5tZCkKIC0gW1RyYW5zZmVyUGVlclBhdGhTdWJUeXBlXShkb2NzL1RyYW5zZmVyUGVlclBhdGhTdWJUeXBlLm1kKQogLSBbVHJhbnNmZXJQZWVyUGF0aFR5cGVdKGRvY3MvVHJhbnNmZXJQZWVyUGF0aFR5cGUubWQpCiAtIFtUcmFuc2ZlclBlZXJTdWJUeXBlRW51bV0oZG9jcy9UcmFuc2ZlclBlZXJTdWJUeXBlRW51bS5tZCkKIC0gW1RyYW5zZmVyUGVlclR5cGVFbnVtXShkb2NzL1RyYW5zZmVyUGVlclR5cGVFbnVtLm1kKQogLSBbVHJhbnNmZXJSYWlsXShkb2NzL1RyYW5zZmVyUmFpbC5tZCkKIC0gW1RyYW5zZmVyUmVjZWlwdF0oZG9jcy9UcmFuc2ZlclJlY2VpcHQubWQpCiAtIFtUcmFuc2ZlclZhbGlkYXRpb25GYWlsdXJlXShkb2NzL1RyYW5zZmVyVmFsaWRhdGlvbkZhaWx1cmUubWQpCiAtIFtUcmF2ZWxSdWxlQWN0aW9uRW51bV0oZG9jcy9UcmF2ZWxSdWxlQWN0aW9uRW51bS5tZCkKIC0gW1RyYXZlbFJ1bGVBZGRyZXNzXShkb2NzL1RyYXZlbFJ1bGVBZGRyZXNzLm1kKQogLSBbVHJhdmVsUnVsZUNyZWF0ZVRyYW5zYWN0aW9uUmVxdWVzdF0oZG9jcy9UcmF2ZWxSdWxlQ3JlYXRlVHJhbnNhY3Rpb25SZXF1ZXN0Lm1kKQogLSBbVHJhdmVsUnVsZURhdGVBbmRQbGFjZU9mQmlydGhdKGRvY3MvVHJhdmVsUnVsZURhdGVBbmRQbGFjZU9mQmlydGgubWQpCiAtIFtUcmF2ZWxSdWxlRGlyZWN0aW9uRW51bV0oZG9jcy9UcmF2ZWxSdWxlRGlyZWN0aW9uRW51bS5tZCkKIC0gW1RyYXZlbFJ1bGVHZW9ncmFwaGljQWRkcmVzc10oZG9jcy9UcmF2ZWxSdWxlR2VvZ3JhcGhpY0FkZHJlc3MubWQpCiAtIFtUcmF2ZWxSdWxlR2V0QWxsVkFTUHNSZXNwb25zZV0oZG9jcy9UcmF2ZWxSdWxlR2V0QWxsVkFTUHNSZXNwb25zZS5tZCkKIC0gW1RyYXZlbFJ1bGVJc3N1ZXJdKGRvY3MvVHJhdmVsUnVsZUlzc3Vlci5tZCkKIC0gW1RyYXZlbFJ1bGVJc3N1ZXJzXShkb2NzL1RyYXZlbFJ1bGVJc3N1ZXJzLm1kKQogLSBbVHJhdmVsUnVsZUxlZ2FsUGVyc29uXShkb2NzL1RyYXZlbFJ1bGVMZWdhbFBlcnNvbi5tZCkKIC0gW1RyYXZlbFJ1bGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyXShkb2NzL1RyYXZlbFJ1bGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyLm1kKQogLSBbVHJhdmVsUnVsZU1hdGNoZWRSdWxlXShkb2NzL1RyYXZlbFJ1bGVNYXRjaGVkUnVsZS5tZCkKIC0gW1RyYXZlbFJ1bGVOYXRpb25hbElkZW50aWZpY2F0aW9uXShkb2NzL1RyYXZlbFJ1bGVOYXRpb25hbElkZW50aWZpY2F0aW9uLm1kKQogLSBbVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllcl0oZG9jcy9UcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyLm1kKQogLSBbVHJhdmVsUnVsZU5hdHVyYWxQZXJzb25dKGRvY3MvVHJhdmVsUnVsZU5hdHVyYWxQZXJzb24ubWQpCiAtIFtUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyXShkb2NzL1RyYXZlbFJ1bGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIubWQpCiAtIFtUcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2ZdKGRvY3MvVHJhdmVsUnVsZU93bmVyc2hpcFByb29mLm1kKQogLSBbVHJhdmVsUnVsZVBlcnNvbl0oZG9jcy9UcmF2ZWxSdWxlUGVyc29uLm1kKQogLSBbVHJhdmVsUnVsZVBpaUlWTVNdKGRvY3MvVHJhdmVsUnVsZVBpaUlWTVMubWQpCiAtIFtUcmF2ZWxSdWxlUG9saWN5UnVsZVJlc3BvbnNlXShkb2NzL1RyYXZlbFJ1bGVQb2xpY3lSdWxlUmVzcG9uc2UubWQpCiAtIFtUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZV0oZG9jcy9UcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZS5tZCkKIC0gW1RyYXZlbFJ1bGVSZXN1bHRdKGRvY3MvVHJhdmVsUnVsZVJlc3VsdC5tZCkKIC0gW1RyYXZlbFJ1bGVTdGF0dXNFbnVtXShkb2NzL1RyYXZlbFJ1bGVTdGF0dXNFbnVtLm1kKQogLSBbVHJhdmVsUnVsZVRyYW5zYWN0aW9uQmxvY2tjaGFpbkluZm9dKGRvY3MvVHJhdmVsUnVsZVRyYW5zYWN0aW9uQmxvY2tjaGFpbkluZm8ubWQpCiAtIFtUcmF2ZWxSdWxlVXBkYXRlVkFTUERldGFpbHNdKGRvY3MvVHJhdmVsUnVsZVVwZGF0ZVZBU1BEZXRhaWxzLm1kKQogLSBbVHJhdmVsUnVsZVZBU1BdKGRvY3MvVHJhdmVsUnVsZVZBU1AubWQpCiAtIFtUcmF2ZWxSdWxlVmFsaWRhdGVEYXRlQW5kUGxhY2VPZkJpcnRoXShkb2NzL1RyYXZlbFJ1bGVWYWxpZGF0ZURhdGVBbmRQbGFjZU9mQmlydGgubWQpCiAtIFtUcmF2ZWxSdWxlVmFsaWRhdGVGdWxsVHJhbnNhY3Rpb25SZXF1ZXN0XShkb2NzL1RyYXZlbFJ1bGVWYWxpZGF0ZUZ1bGxUcmFuc2FjdGlvblJlcXVlc3QubWQpCiAtIFtUcmF2ZWxSdWxlVmFsaWRhdGVHZW9ncmFwaGljQWRkcmVzc10oZG9jcy9UcmF2ZWxSdWxlVmFsaWRhdGVHZW9ncmFwaGljQWRkcmVzcy5tZCkKIC0gW1RyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uXShkb2NzL1RyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uLm1kKQogLSBbVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllcl0oZG9jcy9UcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyLm1kKQogLSBbVHJhdmVsUnVsZVZhbGlkYXRlTmF0aW9uYWxJZGVudGlmaWNhdGlvbl0oZG9jcy9UcmF2ZWxSdWxlVmFsaWRhdGVOYXRpb25hbElkZW50aWZpY2F0aW9uLm1kKQogLSBbVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbE5hbWVJZGVudGlmaWVyXShkb2NzL1RyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxOYW1lSWRlbnRpZmllci5tZCkKIC0gW1RyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb25dKGRvY3MvVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbi5tZCkKIC0gW1RyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllcl0oZG9jcy9UcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIubWQpCiAtIFtUcmF2ZWxSdWxlVmFsaWRhdGVQZXJzb25dKGRvY3MvVHJhdmVsUnVsZVZhbGlkYXRlUGVyc29uLm1kKQogLSBbVHJhdmVsUnVsZVZhbGlkYXRlUGlpSVZNU10oZG9jcy9UcmF2ZWxSdWxlVmFsaWRhdGVQaWlJVk1TLm1kKQogLSBbVHJhdmVsUnVsZVZhbGlkYXRlVHJhbnNhY3Rpb25SZXF1ZXN0XShkb2NzL1RyYXZlbFJ1bGVWYWxpZGF0ZVRyYW5zYWN0aW9uUmVxdWVzdC5tZCkKIC0gW1RyYXZlbFJ1bGVWYWxpZGF0ZVRyYW5zYWN0aW9uUmVzcG9uc2VdKGRvY3MvVHJhdmVsUnVsZVZhbGlkYXRlVHJhbnNhY3Rpb25SZXNwb25zZS5tZCkKIC0gW1RyYXZlbFJ1bGVWYXNwRm9yVmF1bHRdKGRvY3MvVHJhdmVsUnVsZVZhc3BGb3JWYXVsdC5tZCkKIC0gW1RyYXZlbFJ1bGVWZXJkaWN0RW51bV0oZG9jcy9UcmF2ZWxSdWxlVmVyZGljdEVudW0ubWQpCiAtIFtUcnVzdFByb29mT2ZBZGRyZXNzQ3JlYXRlUmVzcG9uc2VdKGRvY3MvVHJ1c3RQcm9vZk9mQWRkcmVzc0NyZWF0ZVJlc3BvbnNlLm1kKQogLSBbVHJ1c3RQcm9vZk9mQWRkcmVzc1JlcXVlc3RdKGRvY3MvVHJ1c3RQcm9vZk9mQWRkcmVzc1JlcXVlc3QubWQpCiAtIFtUcnVzdFByb29mT2ZBZGRyZXNzUmVzcG9uc2VdKGRvY3MvVHJ1c3RQcm9vZk9mQWRkcmVzc1Jlc3BvbnNlLm1kKQogLSBbVHhMb2ddKGRvY3MvVHhMb2cubWQpCiAtIFtUeXBlZE1lc3NhZ2VUcmFuc2FjdGlvblN0YXR1c0VudW1dKGRvY3MvVHlwZWRNZXNzYWdlVHJhbnNhY3Rpb25TdGF0dXNFbnVtLm1kKQogLSBbVVNXaXJlQWRkcmVzc10oZG9jcy9VU1dpcmVBZGRyZXNzLm1kKQogLSBbVVNXaXJlRGVzdGluYXRpb25dKGRvY3MvVVNXaXJlRGVzdGluYXRpb24ubWQpCiAtIFtVbmZyZWV6ZVRyYW5zYWN0aW9uUmVzcG9uc2VdKGRvY3MvVW5mcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlLm1kKQogLSBbVW5tYW5hZ2VkV2FsbGV0XShkb2NzL1VubWFuYWdlZFdhbGxldC5tZCkKIC0gW1Vuc3BlbnRJbnB1dF0oZG9jcy9VbnNwZW50SW5wdXQubWQpCiAtIFtVbnNwZW50SW5wdXRzUmVzcG9uc2VdKGRvY3MvVW5zcGVudElucHV0c1Jlc3BvbnNlLm1kKQogLSBbVW5zdGFrZVJlcXVlc3RdKGRvY3MvVW5zdGFrZVJlcXVlc3QubWQpCiAtIFtVcGRhdGVBc3NldFVzZXJNZXRhZGF0YVJlcXVlc3RdKGRvY3MvVXBkYXRlQXNzZXRVc2VyTWV0YWRhdGFSZXF1ZXN0Lm1kKQogLSBbVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdF0oZG9jcy9VcGRhdGVDYWxsYmFja0hhbmRsZXJSZXF1ZXN0Lm1kKQogLSBbVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVzcG9uc2VdKGRvY3MvVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVzcG9uc2UubWQpCiAtIFtVcGRhdGVEcmFmdFJlcXVlc3RdKGRvY3MvVXBkYXRlRHJhZnRSZXF1ZXN0Lm1kKQogLSBbVXBkYXRlVGFnUmVxdWVzdF0oZG9jcy9VcGRhdGVUYWdSZXF1ZXN0Lm1kKQogLSBbVXBkYXRlVG9rZW5Pd25lcnNoaXBTdGF0dXNEdG9dKGRvY3MvVXBkYXRlVG9rZW5Pd25lcnNoaXBTdGF0dXNEdG8ubWQpCiAtIFtVcGRhdGVWYXVsdEFjY291bnRBc3NldEFkZHJlc3NSZXF1ZXN0XShkb2NzL1VwZGF0ZVZhdWx0QWNjb3VudEFzc2V0QWRkcmVzc1JlcXVlc3QubWQpCiAtIFtVcGRhdGVWYXVsdEFjY291bnRSZXF1ZXN0XShkb2NzL1VwZGF0ZVZhdWx0QWNjb3VudFJlcXVlc3QubWQpCiAtIFtVcGRhdGVXZWJob29rUmVxdWVzdF0oZG9jcy9VcGRhdGVXZWJob29rUmVxdWVzdC5tZCkKIC0gW1VzV2lyZVBheW1lbnRJbmZvXShkb2NzL1VzV2lyZVBheW1lbnRJbmZvLm1kKQogLSBbVXNlckdyb3VwQ3JlYXRlUmVxdWVzdF0oZG9jcy9Vc2VyR3JvdXBDcmVhdGVSZXF1ZXN0Lm1kKQogLSBbVXNlckdyb3VwQ3JlYXRlUmVzcG9uc2VdKGRvY3MvVXNlckdyb3VwQ3JlYXRlUmVzcG9uc2UubWQpCiAtIFtVc2VyR3JvdXBSZXNwb25zZV0oZG9jcy9Vc2VyR3JvdXBSZXNwb25zZS5tZCkKIC0gW1VzZXJHcm91cFVwZGF0ZVJlcXVlc3RdKGRvY3MvVXNlckdyb3VwVXBkYXRlUmVxdWVzdC5tZCkKIC0gW1VzZXJSZXNwb25zZV0oZG9jcy9Vc2VyUmVzcG9uc2UubWQpCiAtIFtVc2VyUm9sZV0oZG9jcy9Vc2VyUm9sZS5tZCkKIC0gW1VzZXJTdGF0dXNdKGRvY3MvVXNlclN0YXR1cy5tZCkKIC0gW1VzZXJUeXBlXShkb2NzL1VzZXJUeXBlLm1kKQogLSBbVmFsaWRhdGVBZGRyZXNzUmVzcG9uc2VdKGRvY3MvVmFsaWRhdGVBZGRyZXNzUmVzcG9uc2UubWQpCiAtIFtWYWxpZGF0ZUxheWVyWmVyb0NoYW5uZWxSZXNwb25zZV0oZG9jcy9WYWxpZGF0ZUxheWVyWmVyb0NoYW5uZWxSZXNwb25zZS5tZCkKIC0gW1ZhbGlkYXRpb25LZXlEdG9dKGRvY3MvVmFsaWRhdGlvbktleUR0by5tZCkKIC0gW1ZhbGlkYXRvcl0oZG9jcy9WYWxpZGF0b3IubWQpCiAtIFtWYXVsdEFjY291bnRdKGRvY3MvVmF1bHRBY2NvdW50Lm1kKQogLSBbVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudE9wZXJhdGlvbl0oZG9jcy9WYXVsdEFjY291bnRUYWdBdHRhY2htZW50T3BlcmF0aW9uLm1kKQogLSBbVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudFBlbmRpbmdPcGVyYXRpb25dKGRvY3MvVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudFBlbmRpbmdPcGVyYXRpb24ubWQpCiAtIFtWYXVsdEFjY291bnRUYWdBdHRhY2htZW50UmVqZWN0ZWRPcGVyYXRpb25dKGRvY3MvVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudFJlamVjdGVkT3BlcmF0aW9uLm1kKQogLSBbVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2VdKGRvY3MvVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2UubWQpCiAtIFtWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZVBhZ2luZ10oZG9jcy9WYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZVBhZ2luZy5tZCkKIC0gW1ZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1JlcXVlc3RdKGRvY3MvVmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVxdWVzdC5tZCkKIC0gW1ZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1Jlc3BvbnNlXShkb2NzL1ZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1Jlc3BvbnNlLm1kKQogLSBbVmF1bHRBY3Rpb25TdGF0dXNdKGRvY3MvVmF1bHRBY3Rpb25TdGF0dXMubWQpCiAtIFtWYXVsdEFzc2V0XShkb2NzL1ZhdWx0QXNzZXQubWQpCiAtIFtWYXVsdFdhbGxldEFkZHJlc3NdKGRvY3MvVmF1bHRXYWxsZXRBZGRyZXNzLm1kKQogLSBbVmVuZG9yRHRvXShkb2NzL1ZlbmRvckR0by5tZCkKIC0gW1ZlcmRpY3RDb25maWddKGRvY3MvVmVyZGljdENvbmZpZy5tZCkKIC0gW1ZlcnNpb25TdW1tYXJ5XShkb2NzL1ZlcnNpb25TdW1tYXJ5Lm1kKQogLSBbV2FsbGV0QXNzZXRdKGRvY3MvV2FsbGV0QXNzZXQubWQpCiAtIFtXYWxsZXRBc3NldEFkZGl0aW9uYWxJbmZvXShkb2NzL1dhbGxldEFzc2V0QWRkaXRpb25hbEluZm8ubWQpCiAtIFtXZWJob29rXShkb2NzL1dlYmhvb2subWQpCiAtIFtXZWJob29rRXZlbnRdKGRvY3MvV2ViaG9va0V2ZW50Lm1kKQogLSBbV2ViaG9va01ldHJpY10oZG9jcy9XZWJob29rTWV0cmljLm1kKQogLSBbV2ViaG9va1BhZ2luYXRlZFJlc3BvbnNlXShkb2NzL1dlYmhvb2tQYWdpbmF0ZWRSZXNwb25zZS5tZCkKIC0gW1dpdGhkcmF3UmVxdWVzdF0oZG9jcy9XaXRoZHJhd1JlcXVlc3QubWQpCiAtIFtXb3JrZmxvd0NvbmZpZ1N0YXR1c10oZG9jcy9Xb3JrZmxvd0NvbmZpZ1N0YXR1cy5tZCkKIC0gW1dvcmtmbG93Q29uZmlndXJhdGlvbklkXShkb2NzL1dvcmtmbG93Q29uZmlndXJhdGlvbklkLm1kKQogLSBbV29ya2Zsb3dFeGVjdXRpb25PcGVyYXRpb25dKGRvY3MvV29ya2Zsb3dFeGVjdXRpb25PcGVyYXRpb24ubWQpCiAtIFtXb3Jrc3BhY2VdKGRvY3MvV29ya3NwYWNlLm1kKQogLSBbV3JpdGVBYmlGdW5jdGlvbl0oZG9jcy9Xcml0ZUFiaUZ1bmN0aW9uLm1kKQogLSBbV3JpdGVDYWxsRnVuY3Rpb25EdG9dKGRvY3MvV3JpdGVDYWxsRnVuY3Rpb25EdG8ubWQpCiAtIFtXcml0ZUNhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uXShkb2NzL1dyaXRlQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb24ubWQpCiAtIFtXcml0ZUNhbGxGdW5jdGlvblJlc3BvbnNlRHRvXShkb2NzL1dyaXRlQ2FsbEZ1bmN0aW9uUmVzcG9uc2VEdG8ubWQpCgoKPGEgaWQ9ImRvY3VtZW50YXRpb24tZm9yLWF1dGhvcml6YXRpb24iPjwvYT4KIyMgRG9jdW1lbnRhdGlvbiBGb3IgQXV0aG9yaXphdGlvbgoKCkF1dGhlbnRpY2F0aW9uIHNjaGVtZXMgZGVmaW5lZCBmb3IgdGhlIEFQSToKPGEgaWQ9ImJlYXJlclRva2VuQXV0aCI+PC9hPgojIyMgYmVhcmVyVG9rZW5BdXRoCgotICoqVHlwZSoqOiBCZWFyZXIgYXV0aGVudGljYXRpb24gKEpXVCkKCjxhIGlkPSJBcGlLZXlBdXRoIj48L2E+CiMjIyBBcGlLZXlBdXRoCgotICoqVHlwZSoqOiBBUEkga2V5Ci0gKipBUEkga2V5IHBhcmFtZXRlciBuYW1lKio6IFgtQVBJLUtleQotICoqTG9jYXRpb24qKjogSFRUUCBoZWFkZXIKCgojIyBBdXRob3IKCmRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KCgo= \ No newline at end of file diff --git a/docs/APIUser.md b/docs/APIUser.md index 8c7999b4..15672388 100644 --- a/docs/APIUser.md +++ b/docs/APIUser.md @@ -1,34 +1 @@ -# APIUser - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The unique identifier of the user | [optional] -**name** | **str** | The name of the user | [optional] -**role** | [**UserRole**](UserRole.md) | | [optional] -**enabled** | **bool** | Whether the user is enabled | [optional] -**status** | [**UserStatus**](UserStatus.md) | | [optional] -**user_type** | [**UserType**](UserType.md) | | [optional] - -## Example - -```python -from fireblocks.models.api_user import APIUser - -# TODO update the JSON string below -json = "{}" -# create an instance of APIUser from a JSON string -api_user_instance = APIUser.from_json(json) -# print the JSON string representation of the object -print(APIUser.to_json()) - -# convert the object into a dict -api_user_dict = api_user_instance.to_dict() -# create an instance of APIUser from a dict -api_user_from_dict = APIUser.from_dict(api_user_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBUElVc2VyCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSB1c2VyIHwgW29wdGlvbmFsXSAKKipuYW1lKiogfCAqKnN0cioqIHwgVGhlIG5hbWUgb2YgdGhlIHVzZXIgfCBbb3B0aW9uYWxdIAoqKnJvbGUqKiB8IFsqKlVzZXJSb2xlKipdKFVzZXJSb2xlLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZW5hYmxlZCoqIHwgKipib29sKiogfCBXaGV0aGVyIHRoZSB1c2VyIGlzIGVuYWJsZWQgfCBbb3B0aW9uYWxdIAoqKnN0YXR1cyoqIHwgWyoqVXNlclN0YXR1cyoqXShVc2VyU3RhdHVzLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqdXNlcl90eXBlKiogfCBbKipVc2VyVHlwZSoqXShVc2VyVHlwZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXBpX3VzZXIgaW1wb3J0IEFQSVVzZXIKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFQSVVzZXIgZnJvbSBhIEpTT04gc3RyaW5nCmFwaV91c2VyX2luc3RhbmNlID0gQVBJVXNlci5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBUElVc2VyLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFwaV91c2VyX2RpY3QgPSBhcGlfdXNlcl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQVBJVXNlciBmcm9tIGEgZGljdAphcGlfdXNlcl9mcm9tX2RpY3QgPSBBUElVc2VyLmZyb21fZGljdChhcGlfdXNlcl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AbaPaymentInfo.md b/docs/AbaPaymentInfo.md index d2669aee..90d1d78d 100644 --- a/docs/AbaPaymentInfo.md +++ b/docs/AbaPaymentInfo.md @@ -1,40 +1 @@ -# AbaPaymentInfo - -ABA payment information for US bank transfers - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_holder_given_name** | **str** | The given name (first name) of the account holder | -**account_holder_surname** | **str** | The surname (last name) of the account holder | [optional] -**account_holder_city** | **str** | The city where the account holder resides | -**account_holder_country** | **str** | The country where the account holder resides (ISO 3166-1 alpha-2 code) | -**account_holder_address1** | **str** | The primary address line of the account holder | -**account_holder_address2** | **str** | The secondary address line of the account holder (optional) | [optional] -**account_holder_district** | **str** | The district or region where the account holder resides | [optional] -**account_holder_postal_code** | **str** | The postal code of the account holder's address | -**aba_routing_number** | **str** | The ABA routing number for the bank | -**aba_account_number** | **str** | The account number at the bank | -**aba_country** | **str** | The country for the ABA transfer (ISO 3166-1 alpha-2 code) | - -## Example - -```python -from fireblocks.models.aba_payment_info import AbaPaymentInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of AbaPaymentInfo from a JSON string -aba_payment_info_instance = AbaPaymentInfo.from_json(json) -# print the JSON string representation of the object -print(AbaPaymentInfo.to_json()) - -# convert the object into a dict -aba_payment_info_dict = aba_payment_info_instance.to_dict() -# create an instance of AbaPaymentInfo from a dict -aba_payment_info_from_dict = AbaPaymentInfo.from_dict(aba_payment_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBYmFQYXltZW50SW5mbwoKQUJBIHBheW1lbnQgaW5mb3JtYXRpb24gZm9yIFVTIGJhbmsgdHJhbnNmZXJzCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYWNjb3VudF9ob2xkZXJfZ2l2ZW5fbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBnaXZlbiBuYW1lIChmaXJzdCBuYW1lKSBvZiB0aGUgYWNjb3VudCBob2xkZXIgfCAKKiphY2NvdW50X2hvbGRlcl9zdXJuYW1lKiogfCAqKnN0cioqIHwgVGhlIHN1cm5hbWUgKGxhc3QgbmFtZSkgb2YgdGhlIGFjY291bnQgaG9sZGVyIHwgW29wdGlvbmFsXSAKKiphY2NvdW50X2hvbGRlcl9jaXR5KiogfCAqKnN0cioqIHwgVGhlIGNpdHkgd2hlcmUgdGhlIGFjY291bnQgaG9sZGVyIHJlc2lkZXMgfCAKKiphY2NvdW50X2hvbGRlcl9jb3VudHJ5KiogfCAqKnN0cioqIHwgVGhlIGNvdW50cnkgd2hlcmUgdGhlIGFjY291bnQgaG9sZGVyIHJlc2lkZXMgKElTTyAzMTY2LTEgYWxwaGEtMiBjb2RlKSB8IAoqKmFjY291bnRfaG9sZGVyX2FkZHJlc3MxKiogfCAqKnN0cioqIHwgVGhlIHByaW1hcnkgYWRkcmVzcyBsaW5lIG9mIHRoZSBhY2NvdW50IGhvbGRlciB8IAoqKmFjY291bnRfaG9sZGVyX2FkZHJlc3MyKiogfCAqKnN0cioqIHwgVGhlIHNlY29uZGFyeSBhZGRyZXNzIGxpbmUgb2YgdGhlIGFjY291bnQgaG9sZGVyIChvcHRpb25hbCkgfCBbb3B0aW9uYWxdIAoqKmFjY291bnRfaG9sZGVyX2Rpc3RyaWN0KiogfCAqKnN0cioqIHwgVGhlIGRpc3RyaWN0IG9yIHJlZ2lvbiB3aGVyZSB0aGUgYWNjb3VudCBob2xkZXIgcmVzaWRlcyB8IFtvcHRpb25hbF0gCioqYWNjb3VudF9ob2xkZXJfcG9zdGFsX2NvZGUqKiB8ICoqc3RyKiogfCBUaGUgcG9zdGFsIGNvZGUgb2YgdGhlIGFjY291bnQgaG9sZGVyJiMzOTtzIGFkZHJlc3MgfCAKKiphYmFfcm91dGluZ19udW1iZXIqKiB8ICoqc3RyKiogfCBUaGUgQUJBIHJvdXRpbmcgbnVtYmVyIGZvciB0aGUgYmFuayB8IAoqKmFiYV9hY2NvdW50X251bWJlcioqIHwgKipzdHIqKiB8IFRoZSBhY2NvdW50IG51bWJlciBhdCB0aGUgYmFuayB8IAoqKmFiYV9jb3VudHJ5KiogfCAqKnN0cioqIHwgVGhlIGNvdW50cnkgZm9yIHRoZSBBQkEgdHJhbnNmZXIgKElTTyAzMTY2LTEgYWxwaGEtMiBjb2RlKSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWJhX3BheW1lbnRfaW5mbyBpbXBvcnQgQWJhUGF5bWVudEluZm8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFiYVBheW1lbnRJbmZvIGZyb20gYSBKU09OIHN0cmluZwphYmFfcGF5bWVudF9pbmZvX2luc3RhbmNlID0gQWJhUGF5bWVudEluZm8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQWJhUGF5bWVudEluZm8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYWJhX3BheW1lbnRfaW5mb19kaWN0ID0gYWJhX3BheW1lbnRfaW5mb19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWJhUGF5bWVudEluZm8gZnJvbSBhIGRpY3QKYWJhX3BheW1lbnRfaW5mb19mcm9tX2RpY3QgPSBBYmFQYXltZW50SW5mby5mcm9tX2RpY3QoYWJhX3BheW1lbnRfaW5mb19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AbiFunction.md b/docs/AbiFunction.md index 9ad1b191..37c43dd9 100644 --- a/docs/AbiFunction.md +++ b/docs/AbiFunction.md @@ -1,34 +1 @@ -# AbiFunction - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | The name of the contract function as it appears in the ABI | [optional] -**state_mutability** | **str** | The state mutability of the contract function as it appears in the ABI | [optional] -**type** | **str** | The type of the function | -**inputs** | [**List[Parameter]**](Parameter.md) | The parameters that this function/constructor posses | [optional] -**outputs** | [**List[Parameter]**](Parameter.md) | The parameters that this 'read' function returns | [optional] -**description** | **str** | The documentation of this function (if has any) | [optional] - -## Example - -```python -from fireblocks.models.abi_function import AbiFunction - -# TODO update the JSON string below -json = "{}" -# create an instance of AbiFunction from a JSON string -abi_function_instance = AbiFunction.from_json(json) -# print the JSON string representation of the object -print(AbiFunction.to_json()) - -# convert the object into a dict -abi_function_dict = abi_function_instance.to_dict() -# create an instance of AbiFunction from a dict -abi_function_from_dict = AbiFunction.from_dict(abi_function_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBYmlGdW5jdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipuYW1lKiogfCAqKnN0cioqIHwgVGhlIG5hbWUgb2YgdGhlIGNvbnRyYWN0IGZ1bmN0aW9uIGFzIGl0IGFwcGVhcnMgaW4gdGhlIEFCSSB8IFtvcHRpb25hbF0gCioqc3RhdGVfbXV0YWJpbGl0eSoqIHwgKipzdHIqKiB8IFRoZSBzdGF0ZSBtdXRhYmlsaXR5IG9mIHRoZSBjb250cmFjdCBmdW5jdGlvbiBhcyBpdCBhcHBlYXJzIGluIHRoZSBBQkkgfCBbb3B0aW9uYWxdIAoqKnR5cGUqKiB8ICoqc3RyKiogfCBUaGUgdHlwZSBvZiB0aGUgZnVuY3Rpb24gfCAKKippbnB1dHMqKiB8IFsqKkxpc3RbUGFyYW1ldGVyXSoqXShQYXJhbWV0ZXIubWQpIHwgVGhlIHBhcmFtZXRlcnMgdGhhdCB0aGlzIGZ1bmN0aW9uL2NvbnN0cnVjdG9yIHBvc3NlcyB8IFtvcHRpb25hbF0gCioqb3V0cHV0cyoqIHwgWyoqTGlzdFtQYXJhbWV0ZXJdKipdKFBhcmFtZXRlci5tZCkgfCBUaGUgcGFyYW1ldGVycyB0aGF0IHRoaXMgJiMzOTtyZWFkJiMzOTsgZnVuY3Rpb24gcmV0dXJucyB8IFtvcHRpb25hbF0gCioqZGVzY3JpcHRpb24qKiB8ICoqc3RyKiogfCBUaGUgZG9jdW1lbnRhdGlvbiBvZiB0aGlzIGZ1bmN0aW9uIChpZiBoYXMgYW55KSB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hYmlfZnVuY3Rpb24gaW1wb3J0IEFiaUZ1bmN0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBYmlGdW5jdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmcKYWJpX2Z1bmN0aW9uX2luc3RhbmNlID0gQWJpRnVuY3Rpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQWJpRnVuY3Rpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYWJpX2Z1bmN0aW9uX2RpY3QgPSBhYmlfZnVuY3Rpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFiaUZ1bmN0aW9uIGZyb20gYSBkaWN0CmFiaV9mdW5jdGlvbl9mcm9tX2RpY3QgPSBBYmlGdW5jdGlvbi5mcm9tX2RpY3QoYWJpX2Z1bmN0aW9uX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AccessRegistryAddressItem.md b/docs/AccessRegistryAddressItem.md index 2067162e..ff0eec56 100644 --- a/docs/AccessRegistryAddressItem.md +++ b/docs/AccessRegistryAddressItem.md @@ -1,30 +1 @@ -# AccessRegistryAddressItem - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**address** | **str** | The address that was added to the access registry | -**date_added** | **datetime** | The date when the address was added to the access registry | - -## Example - -```python -from fireblocks.models.access_registry_address_item import AccessRegistryAddressItem - -# TODO update the JSON string below -json = "{}" -# create an instance of AccessRegistryAddressItem from a JSON string -access_registry_address_item_instance = AccessRegistryAddressItem.from_json(json) -# print the JSON string representation of the object -print(AccessRegistryAddressItem.to_json()) - -# convert the object into a dict -access_registry_address_item_dict = access_registry_address_item_instance.to_dict() -# create an instance of AccessRegistryAddressItem from a dict -access_registry_address_item_from_dict = AccessRegistryAddressItem.from_dict(access_registry_address_item_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBY2Nlc3NSZWdpc3RyeUFkZHJlc3NJdGVtCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFkZHJlc3MqKiB8ICoqc3RyKiogfCBUaGUgYWRkcmVzcyB0aGF0IHdhcyBhZGRlZCB0byB0aGUgYWNjZXNzIHJlZ2lzdHJ5IHwgCioqZGF0ZV9hZGRlZCoqIHwgKipkYXRldGltZSoqIHwgVGhlIGRhdGUgd2hlbiB0aGUgYWRkcmVzcyB3YXMgYWRkZWQgdG8gdGhlIGFjY2VzcyByZWdpc3RyeSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjZXNzX3JlZ2lzdHJ5X2FkZHJlc3NfaXRlbSBpbXBvcnQgQWNjZXNzUmVnaXN0cnlBZGRyZXNzSXRlbQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNjZXNzUmVnaXN0cnlBZGRyZXNzSXRlbSBmcm9tIGEgSlNPTiBzdHJpbmcKYWNjZXNzX3JlZ2lzdHJ5X2FkZHJlc3NfaXRlbV9pbnN0YW5jZSA9IEFjY2Vzc1JlZ2lzdHJ5QWRkcmVzc0l0ZW0uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQWNjZXNzUmVnaXN0cnlBZGRyZXNzSXRlbS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphY2Nlc3NfcmVnaXN0cnlfYWRkcmVzc19pdGVtX2RpY3QgPSBhY2Nlc3NfcmVnaXN0cnlfYWRkcmVzc19pdGVtX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2Nlc3NSZWdpc3RyeUFkZHJlc3NJdGVtIGZyb20gYSBkaWN0CmFjY2Vzc19yZWdpc3RyeV9hZGRyZXNzX2l0ZW1fZnJvbV9kaWN0ID0gQWNjZXNzUmVnaXN0cnlBZGRyZXNzSXRlbS5mcm9tX2RpY3QoYWNjZXNzX3JlZ2lzdHJ5X2FkZHJlc3NfaXRlbV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AccessRegistryCurrentStateResponse.md b/docs/AccessRegistryCurrentStateResponse.md index 8327b81f..5318d3f6 100644 --- a/docs/AccessRegistryCurrentStateResponse.md +++ b/docs/AccessRegistryCurrentStateResponse.md @@ -1,32 +1 @@ -# AccessRegistryCurrentStateResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[AccessRegistryAddressItem]**](AccessRegistryAddressItem.md) | Array of active addresses in the access registry | -**next** | **str** | Cursor for next page | [optional] -**prev** | **str** | Cursor for previous page | [optional] -**total** | **float** | Total count of active addresses in the access registry | [optional] - -## Example - -```python -from fireblocks.models.access_registry_current_state_response import AccessRegistryCurrentStateResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of AccessRegistryCurrentStateResponse from a JSON string -access_registry_current_state_response_instance = AccessRegistryCurrentStateResponse.from_json(json) -# print the JSON string representation of the object -print(AccessRegistryCurrentStateResponse.to_json()) - -# convert the object into a dict -access_registry_current_state_response_dict = access_registry_current_state_response_instance.to_dict() -# create an instance of AccessRegistryCurrentStateResponse from a dict -access_registry_current_state_response_from_dict = AccessRegistryCurrentStateResponse.from_dict(access_registry_current_state_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBY2Nlc3NSZWdpc3RyeUN1cnJlbnRTdGF0ZVJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmRhdGEqKiB8IFsqKkxpc3RbQWNjZXNzUmVnaXN0cnlBZGRyZXNzSXRlbV0qKl0oQWNjZXNzUmVnaXN0cnlBZGRyZXNzSXRlbS5tZCkgfCBBcnJheSBvZiBhY3RpdmUgYWRkcmVzc2VzIGluIHRoZSBhY2Nlc3MgcmVnaXN0cnkgfCAKKipuZXh0KiogfCAqKnN0cioqIHwgQ3Vyc29yIGZvciBuZXh0IHBhZ2UgfCBbb3B0aW9uYWxdIAoqKnByZXYqKiB8ICoqc3RyKiogfCBDdXJzb3IgZm9yIHByZXZpb3VzIHBhZ2UgfCBbb3B0aW9uYWxdIAoqKnRvdGFsKiogfCAqKmZsb2F0KiogfCBUb3RhbCBjb3VudCBvZiBhY3RpdmUgYWRkcmVzc2VzIGluIHRoZSBhY2Nlc3MgcmVnaXN0cnkgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjZXNzX3JlZ2lzdHJ5X2N1cnJlbnRfc3RhdGVfcmVzcG9uc2UgaW1wb3J0IEFjY2Vzc1JlZ2lzdHJ5Q3VycmVudFN0YXRlUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFjY2Vzc1JlZ2lzdHJ5Q3VycmVudFN0YXRlUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmFjY2Vzc19yZWdpc3RyeV9jdXJyZW50X3N0YXRlX3Jlc3BvbnNlX2luc3RhbmNlID0gQWNjZXNzUmVnaXN0cnlDdXJyZW50U3RhdGVSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBY2Nlc3NSZWdpc3RyeUN1cnJlbnRTdGF0ZVJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFjY2Vzc19yZWdpc3RyeV9jdXJyZW50X3N0YXRlX3Jlc3BvbnNlX2RpY3QgPSBhY2Nlc3NfcmVnaXN0cnlfY3VycmVudF9zdGF0ZV9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNjZXNzUmVnaXN0cnlDdXJyZW50U3RhdGVSZXNwb25zZSBmcm9tIGEgZGljdAphY2Nlc3NfcmVnaXN0cnlfY3VycmVudF9zdGF0ZV9yZXNwb25zZV9mcm9tX2RpY3QgPSBBY2Nlc3NSZWdpc3RyeUN1cnJlbnRTdGF0ZVJlc3BvbnNlLmZyb21fZGljdChhY2Nlc3NfcmVnaXN0cnlfY3VycmVudF9zdGF0ZV9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AccessRegistrySummaryResponse.md b/docs/AccessRegistrySummaryResponse.md index e847c36a..3e3b358f 100644 --- a/docs/AccessRegistrySummaryResponse.md +++ b/docs/AccessRegistrySummaryResponse.md @@ -1,29 +1 @@ -# AccessRegistrySummaryResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**total_active_addresses** | **float** | The total number of active addresses in the access registry | - -## Example - -```python -from fireblocks.models.access_registry_summary_response import AccessRegistrySummaryResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of AccessRegistrySummaryResponse from a JSON string -access_registry_summary_response_instance = AccessRegistrySummaryResponse.from_json(json) -# print the JSON string representation of the object -print(AccessRegistrySummaryResponse.to_json()) - -# convert the object into a dict -access_registry_summary_response_dict = access_registry_summary_response_instance.to_dict() -# create an instance of AccessRegistrySummaryResponse from a dict -access_registry_summary_response_from_dict = AccessRegistrySummaryResponse.from_dict(access_registry_summary_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBY2Nlc3NSZWdpc3RyeVN1bW1hcnlSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0b3RhbF9hY3RpdmVfYWRkcmVzc2VzKiogfCAqKmZsb2F0KiogfCBUaGUgdG90YWwgbnVtYmVyIG9mIGFjdGl2ZSBhZGRyZXNzZXMgaW4gdGhlIGFjY2VzcyByZWdpc3RyeSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjZXNzX3JlZ2lzdHJ5X3N1bW1hcnlfcmVzcG9uc2UgaW1wb3J0IEFjY2Vzc1JlZ2lzdHJ5U3VtbWFyeVJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2Nlc3NSZWdpc3RyeVN1bW1hcnlSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKYWNjZXNzX3JlZ2lzdHJ5X3N1bW1hcnlfcmVzcG9uc2VfaW5zdGFuY2UgPSBBY2Nlc3NSZWdpc3RyeVN1bW1hcnlSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBY2Nlc3NSZWdpc3RyeVN1bW1hcnlSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphY2Nlc3NfcmVnaXN0cnlfc3VtbWFyeV9yZXNwb25zZV9kaWN0ID0gYWNjZXNzX3JlZ2lzdHJ5X3N1bW1hcnlfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFjY2Vzc1JlZ2lzdHJ5U3VtbWFyeVJlc3BvbnNlIGZyb20gYSBkaWN0CmFjY2Vzc19yZWdpc3RyeV9zdW1tYXJ5X3Jlc3BvbnNlX2Zyb21fZGljdCA9IEFjY2Vzc1JlZ2lzdHJ5U3VtbWFyeVJlc3BvbnNlLmZyb21fZGljdChhY2Nlc3NfcmVnaXN0cnlfc3VtbWFyeV9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AccessType.md b/docs/AccessType.md index b19e59a7..8c09f334 100644 --- a/docs/AccessType.md +++ b/docs/AccessType.md @@ -1,31 +1 @@ -# AccessType - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | Indicates this uses account-based access | -**provider_id** | **str** | The ID of the provider | -**account_id** | **str** | The ID of the account | - -## Example - -```python -from fireblocks.models.access_type import AccessType - -# TODO update the JSON string below -json = "{}" -# create an instance of AccessType from a JSON string -access_type_instance = AccessType.from_json(json) -# print the JSON string representation of the object -print(AccessType.to_json()) - -# convert the object into a dict -access_type_dict = access_type_instance.to_dict() -# create an instance of AccessType from a dict -access_type_from_dict = AccessType.from_dict(access_type_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBY2Nlc3NUeXBlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8ICoqc3RyKiogfCBJbmRpY2F0ZXMgdGhpcyB1c2VzIGFjY291bnQtYmFzZWQgYWNjZXNzIHwgCioqcHJvdmlkZXJfaWQqKiB8ICoqc3RyKiogfCBUaGUgSUQgb2YgdGhlIHByb3ZpZGVyIHwgCioqYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgYWNjb3VudCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjZXNzX3R5cGUgaW1wb3J0IEFjY2Vzc1R5cGUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFjY2Vzc1R5cGUgZnJvbSBhIEpTT04gc3RyaW5nCmFjY2Vzc190eXBlX2luc3RhbmNlID0gQWNjZXNzVHlwZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBY2Nlc3NUeXBlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFjY2Vzc190eXBlX2RpY3QgPSBhY2Nlc3NfdHlwZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNjZXNzVHlwZSBmcm9tIGEgZGljdAphY2Nlc3NfdHlwZV9mcm9tX2RpY3QgPSBBY2Nlc3NUeXBlLmZyb21fZGljdChhY2Nlc3NfdHlwZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/Account.md b/docs/Account.md index 5b530944..807ed339 100644 --- a/docs/Account.md +++ b/docs/Account.md @@ -1,30 +1 @@ -# Account - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_id** | **str** | | -**account_type** | [**AccountType**](AccountType.md) | | - -## Example - -```python -from fireblocks.models.account import Account - -# TODO update the JSON string below -json = "{}" -# create an instance of Account from a JSON string -account_instance = Account.from_json(json) -# print the JSON string representation of the object -print(Account.to_json()) - -# convert the object into a dict -account_dict = account_instance.to_dict() -# create an instance of Account from a dict -account_from_dict = Account.from_dict(account_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBY2NvdW50CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFjY291bnRfaWQqKiB8ICoqc3RyKiogfCAgfCAKKiphY2NvdW50X3R5cGUqKiB8IFsqKkFjY291bnRUeXBlKipdKEFjY291bnRUeXBlLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudCBpbXBvcnQgQWNjb3VudAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNjb3VudCBmcm9tIGEgSlNPTiBzdHJpbmcKYWNjb3VudF9pbnN0YW5jZSA9IEFjY291bnQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQWNjb3VudC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphY2NvdW50X2RpY3QgPSBhY2NvdW50X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2NvdW50IGZyb20gYSBkaWN0CmFjY291bnRfZnJvbV9kaWN0ID0gQWNjb3VudC5mcm9tX2RpY3QoYWNjb3VudF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AccountAccess.md b/docs/AccountAccess.md index a6d90806..4b0927e0 100644 --- a/docs/AccountAccess.md +++ b/docs/AccountAccess.md @@ -1,31 +1 @@ -# AccountAccess - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | Indicates this uses account-based access | -**provider_id** | **str** | The ID of the provider | [optional] -**account_id** | **str** | The ID of the account | - -## Example - -```python -from fireblocks.models.account_access import AccountAccess - -# TODO update the JSON string below -json = "{}" -# create an instance of AccountAccess from a JSON string -account_access_instance = AccountAccess.from_json(json) -# print the JSON string representation of the object -print(AccountAccess.to_json()) - -# convert the object into a dict -account_access_dict = account_access_instance.to_dict() -# create an instance of AccountAccess from a dict -account_access_from_dict = AccountAccess.from_dict(account_access_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBY2NvdW50QWNjZXNzCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8ICoqc3RyKiogfCBJbmRpY2F0ZXMgdGhpcyB1c2VzIGFjY291bnQtYmFzZWQgYWNjZXNzIHwgCioqcHJvdmlkZXJfaWQqKiB8ICoqc3RyKiogfCBUaGUgSUQgb2YgdGhlIHByb3ZpZGVyIHwgW29wdGlvbmFsXSAKKiphY2NvdW50X2lkKiogfCAqKnN0cioqIHwgVGhlIElEIG9mIHRoZSBhY2NvdW50IHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2FjY2VzcyBpbXBvcnQgQWNjb3VudEFjY2VzcwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNjb3VudEFjY2VzcyBmcm9tIGEgSlNPTiBzdHJpbmcKYWNjb3VudF9hY2Nlc3NfaW5zdGFuY2UgPSBBY2NvdW50QWNjZXNzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFjY291bnRBY2Nlc3MudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYWNjb3VudF9hY2Nlc3NfZGljdCA9IGFjY291bnRfYWNjZXNzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2NvdW50QWNjZXNzIGZyb20gYSBkaWN0CmFjY291bnRfYWNjZXNzX2Zyb21fZGljdCA9IEFjY291bnRBY2Nlc3MuZnJvbV9kaWN0KGFjY291bnRfYWNjZXNzX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AccountBase.md b/docs/AccountBase.md index 481f7a83..a108fc86 100644 --- a/docs/AccountBase.md +++ b/docs/AccountBase.md @@ -1,30 +1 @@ -# AccountBase - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The ID of the account | -**name** | **str** | The name of the account | - -## Example - -```python -from fireblocks.models.account_base import AccountBase - -# TODO update the JSON string below -json = "{}" -# create an instance of AccountBase from a JSON string -account_base_instance = AccountBase.from_json(json) -# print the JSON string representation of the object -print(AccountBase.to_json()) - -# convert the object into a dict -account_base_dict = account_base_instance.to_dict() -# create an instance of AccountBase from a dict -account_base_from_dict = AccountBase.from_dict(account_base_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBY2NvdW50QmFzZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgYWNjb3VudCB8IAoqKm5hbWUqKiB8ICoqc3RyKiogfCBUaGUgbmFtZSBvZiB0aGUgYWNjb3VudCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9iYXNlIGltcG9ydCBBY2NvdW50QmFzZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNjb3VudEJhc2UgZnJvbSBhIEpTT04gc3RyaW5nCmFjY291bnRfYmFzZV9pbnN0YW5jZSA9IEFjY291bnRCYXNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFjY291bnRCYXNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFjY291bnRfYmFzZV9kaWN0ID0gYWNjb3VudF9iYXNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2NvdW50QmFzZSBmcm9tIGEgZGljdAphY2NvdW50X2Jhc2VfZnJvbV9kaWN0ID0gQWNjb3VudEJhc2UuZnJvbV9kaWN0KGFjY291bnRfYmFzZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AccountBasedAccessProvider.md b/docs/AccountBasedAccessProvider.md index dc698c49..a6545981 100644 --- a/docs/AccountBasedAccessProvider.md +++ b/docs/AccountBasedAccessProvider.md @@ -1,35 +1 @@ -# AccountBasedAccessProvider - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | Unique identifier for the provider | -**name** | **str** | Display name of the provider | -**logo** | **str** | URL to the logo image of the provider | [optional] -**account_based** | **bool** | Indicates whether the provider access model is through accounts or directly | -**manifest** | [**Manifest**](Manifest.md) | | -**connected** | **bool** | Whether the provider is currently connected | -**accounts** | [**List[AccountBase]**](AccountBase.md) | | [optional] - -## Example - -```python -from fireblocks.models.account_based_access_provider import AccountBasedAccessProvider - -# TODO update the JSON string below -json = "{}" -# create an instance of AccountBasedAccessProvider from a JSON string -account_based_access_provider_instance = AccountBasedAccessProvider.from_json(json) -# print the JSON string representation of the object -print(AccountBasedAccessProvider.to_json()) - -# convert the object into a dict -account_based_access_provider_dict = account_based_access_provider_instance.to_dict() -# create an instance of AccountBasedAccessProvider from a dict -account_based_access_provider_from_dict = AccountBasedAccessProvider.from_dict(account_based_access_provider_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlcgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8IFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcHJvdmlkZXIgfCAKKipuYW1lKiogfCAqKnN0cioqIHwgRGlzcGxheSBuYW1lIG9mIHRoZSBwcm92aWRlciB8IAoqKmxvZ28qKiB8ICoqc3RyKiogfCBVUkwgdG8gdGhlIGxvZ28gaW1hZ2Ugb2YgdGhlIHByb3ZpZGVyIHwgW29wdGlvbmFsXSAKKiphY2NvdW50X2Jhc2VkKiogfCAqKmJvb2wqKiB8IEluZGljYXRlcyB3aGV0aGVyIHRoZSBwcm92aWRlciBhY2Nlc3MgbW9kZWwgaXMgdGhyb3VnaCBhY2NvdW50cyBvciBkaXJlY3RseSB8IAoqKm1hbmlmZXN0KiogfCBbKipNYW5pZmVzdCoqXShNYW5pZmVzdC5tZCkgfCAgfCAKKipjb25uZWN0ZWQqKiB8ICoqYm9vbCoqIHwgV2hldGhlciB0aGUgcHJvdmlkZXIgaXMgY3VycmVudGx5IGNvbm5lY3RlZCB8IAoqKmFjY291bnRzKiogfCBbKipMaXN0W0FjY291bnRCYXNlXSoqXShBY2NvdW50QmFzZS5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfYmFzZWRfYWNjZXNzX3Byb3ZpZGVyIGltcG9ydCBBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlcgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNjb3VudEJhc2VkQWNjZXNzUHJvdmlkZXIgZnJvbSBhIEpTT04gc3RyaW5nCmFjY291bnRfYmFzZWRfYWNjZXNzX3Byb3ZpZGVyX2luc3RhbmNlID0gQWNjb3VudEJhc2VkQWNjZXNzUHJvdmlkZXIuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQWNjb3VudEJhc2VkQWNjZXNzUHJvdmlkZXIudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYWNjb3VudF9iYXNlZF9hY2Nlc3NfcHJvdmlkZXJfZGljdCA9IGFjY291bnRfYmFzZWRfYWNjZXNzX3Byb3ZpZGVyX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlciBmcm9tIGEgZGljdAphY2NvdW50X2Jhc2VkX2FjY2Vzc19wcm92aWRlcl9mcm9tX2RpY3QgPSBBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlci5mcm9tX2RpY3QoYWNjb3VudF9iYXNlZF9hY2Nlc3NfcHJvdmlkZXJfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AccountBasedAccessProviderInfo.md b/docs/AccountBasedAccessProviderInfo.md new file mode 100644 index 00000000..7f84d343 --- /dev/null +++ b/docs/AccountBasedAccessProviderInfo.md @@ -0,0 +1 @@ +IyBBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlckluZm8KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqY29ubmVjdGVkKiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgdGhlIHByb3ZpZGVyIGlzIGN1cnJlbnRseSBjb25uZWN0ZWQgfCAKKiphY2NvdW50cyoqIHwgWyoqTGlzdFtBY2NvdW50QmFzZV0qKl0oQWNjb3VudEJhc2UubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2Jhc2VkX2FjY2Vzc19wcm92aWRlcl9pbmZvIGltcG9ydCBBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlckluZm8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFjY291bnRCYXNlZEFjY2Vzc1Byb3ZpZGVySW5mbyBmcm9tIGEgSlNPTiBzdHJpbmcKYWNjb3VudF9iYXNlZF9hY2Nlc3NfcHJvdmlkZXJfaW5mb19pbnN0YW5jZSA9IEFjY291bnRCYXNlZEFjY2Vzc1Byb3ZpZGVySW5mby5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlckluZm8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYWNjb3VudF9iYXNlZF9hY2Nlc3NfcHJvdmlkZXJfaW5mb19kaWN0ID0gYWNjb3VudF9iYXNlZF9hY2Nlc3NfcHJvdmlkZXJfaW5mb19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNjb3VudEJhc2VkQWNjZXNzUHJvdmlkZXJJbmZvIGZyb20gYSBkaWN0CmFjY291bnRfYmFzZWRfYWNjZXNzX3Byb3ZpZGVyX2luZm9fZnJvbV9kaWN0ID0gQWNjb3VudEJhc2VkQWNjZXNzUHJvdmlkZXJJbmZvLmZyb21fZGljdChhY2NvdW50X2Jhc2VkX2FjY2Vzc19wcm92aWRlcl9pbmZvX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AccountBasedProviderDetails.md b/docs/AccountBasedProviderDetails.md new file mode 100644 index 00000000..4d1f2a89 --- /dev/null +++ b/docs/AccountBasedProviderDetails.md @@ -0,0 +1 @@ +IyBBY2NvdW50QmFzZWRQcm92aWRlckRldGFpbHMKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHByb3ZpZGVyIHwgCioqbmFtZSoqIHwgKipzdHIqKiB8IERpc3BsYXkgbmFtZSBvZiB0aGUgcHJvdmlkZXIgfCAKKipsb2dvKiogfCAqKnN0cioqIHwgVVJMIHRvIHRoZSBsb2dvIGltYWdlIG9mIHRoZSBwcm92aWRlciB8IFtvcHRpb25hbF0gCioqYWNjb3VudF9iYXNlZCoqIHwgKipib29sKiogfCBJbmRpY2F0ZXMgd2hldGhlciB0aGUgcHJvdmlkZXIgYWNjZXNzIG1vZGVsIGlzIHRocm91Z2ggYWNjb3VudHMgb3IgZGlyZWN0bHkgfCAKKiptYW5pZmVzdCoqIHwgWyoqTWFuaWZlc3QqKl0oTWFuaWZlc3QubWQpIHwgIHwgCioqY29ubmVjdGVkKiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgdGhlIHByb3ZpZGVyIGlzIGN1cnJlbnRseSBjb25uZWN0ZWQgfCAKKiphY2NvdW50cyoqIHwgWyoqTGlzdFtBY2NvdW50QmFzZV0qKl0oQWNjb3VudEJhc2UubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2Jhc2VkX3Byb3ZpZGVyX2RldGFpbHMgaW1wb3J0IEFjY291bnRCYXNlZFByb3ZpZGVyRGV0YWlscwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNjb3VudEJhc2VkUHJvdmlkZXJEZXRhaWxzIGZyb20gYSBKU09OIHN0cmluZwphY2NvdW50X2Jhc2VkX3Byb3ZpZGVyX2RldGFpbHNfaW5zdGFuY2UgPSBBY2NvdW50QmFzZWRQcm92aWRlckRldGFpbHMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQWNjb3VudEJhc2VkUHJvdmlkZXJEZXRhaWxzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFjY291bnRfYmFzZWRfcHJvdmlkZXJfZGV0YWlsc19kaWN0ID0gYWNjb3VudF9iYXNlZF9wcm92aWRlcl9kZXRhaWxzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2NvdW50QmFzZWRQcm92aWRlckRldGFpbHMgZnJvbSBhIGRpY3QKYWNjb3VudF9iYXNlZF9wcm92aWRlcl9kZXRhaWxzX2Zyb21fZGljdCA9IEFjY291bnRCYXNlZFByb3ZpZGVyRGV0YWlscy5mcm9tX2RpY3QoYWNjb3VudF9iYXNlZF9wcm92aWRlcl9kZXRhaWxzX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AccountConfig.md b/docs/AccountConfig.md index 5bb3d236..34578372 100644 --- a/docs/AccountConfig.md +++ b/docs/AccountConfig.md @@ -1,35 +1 @@ -# AccountConfig - -Policy account configuration - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**List[AccountType2]**](AccountType2.md) | Account types | [optional] -**sub_type** | [**List[AccountIdentifier]**](AccountIdentifier.md) | | [optional] -**ids** | [**List[AccountIdentifier]**](AccountIdentifier.md) | | [optional] -**tags** | [**List[PolicyTag]**](PolicyTag.md) | Tags for account matching | [optional] -**operator** | [**PolicyOperator**](PolicyOperator.md) | | -**match_from** | **str** | Whether to match from account or source | [optional] - -## Example - -```python -from fireblocks.models.account_config import AccountConfig - -# TODO update the JSON string below -json = "{}" -# create an instance of AccountConfig from a JSON string -account_config_instance = AccountConfig.from_json(json) -# print the JSON string representation of the object -print(AccountConfig.to_json()) - -# convert the object into a dict -account_config_dict = account_config_instance.to_dict() -# create an instance of AccountConfig from a dict -account_config_from_dict = AccountConfig.from_dict(account_config_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBY2NvdW50Q29uZmlnCgpQb2xpY3kgYWNjb3VudCBjb25maWd1cmF0aW9uCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgWyoqTGlzdFtBY2NvdW50VHlwZTJdKipdKEFjY291bnRUeXBlMi5tZCkgfCBBY2NvdW50IHR5cGVzIHwgW29wdGlvbmFsXSAKKipzdWJfdHlwZSoqIHwgWyoqTGlzdFtBY2NvdW50SWRlbnRpZmllcl0qKl0oQWNjb3VudElkZW50aWZpZXIubWQpIHwgIHwgW29wdGlvbmFsXSAKKippZHMqKiB8IFsqKkxpc3RbQWNjb3VudElkZW50aWZpZXJdKipdKEFjY291bnRJZGVudGlmaWVyLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqdGFncyoqIHwgWyoqTGlzdFtQb2xpY3lUYWddKipdKFBvbGljeVRhZy5tZCkgfCBUYWdzIGZvciBhY2NvdW50IG1hdGNoaW5nIHwgW29wdGlvbmFsXSAKKipvcGVyYXRvcioqIHwgWyoqUG9saWN5T3BlcmF0b3IqKl0oUG9saWN5T3BlcmF0b3IubWQpIHwgIHwgCioqbWF0Y2hfZnJvbSoqIHwgKipzdHIqKiB8IFdoZXRoZXIgdG8gbWF0Y2ggZnJvbSBhY2NvdW50IG9yIHNvdXJjZSB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2NvbmZpZyBpbXBvcnQgQWNjb3VudENvbmZpZwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNjb3VudENvbmZpZyBmcm9tIGEgSlNPTiBzdHJpbmcKYWNjb3VudF9jb25maWdfaW5zdGFuY2UgPSBBY2NvdW50Q29uZmlnLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFjY291bnRDb25maWcudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYWNjb3VudF9jb25maWdfZGljdCA9IGFjY291bnRfY29uZmlnX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2NvdW50Q29uZmlnIGZyb20gYSBkaWN0CmFjY291bnRfY29uZmlnX2Zyb21fZGljdCA9IEFjY291bnRDb25maWcuZnJvbV9kaWN0KGFjY291bnRfY29uZmlnX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AccountHolderDetails.md b/docs/AccountHolderDetails.md index 8f43e49b..43265dfe 100644 --- a/docs/AccountHolderDetails.md +++ b/docs/AccountHolderDetails.md @@ -1,34 +1 @@ -# AccountHolderDetails - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | Full name of the account holder. | -**city** | **str** | | [optional] -**country** | **str** | Country code, as specified in ISO 3166-1 alpha-2. | [optional] -**subdivision** | **str** | Country administrative subdivision, as specified in ISO 3166-2. | [optional] -**address** | **str** | Account holder street address. | [optional] -**postal_code** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.account_holder_details import AccountHolderDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of AccountHolderDetails from a JSON string -account_holder_details_instance = AccountHolderDetails.from_json(json) -# print the JSON string representation of the object -print(AccountHolderDetails.to_json()) - -# convert the object into a dict -account_holder_details_dict = account_holder_details_instance.to_dict() -# create an instance of AccountHolderDetails from a dict -account_holder_details_from_dict = AccountHolderDetails.from_dict(account_holder_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBY2NvdW50SG9sZGVyRGV0YWlscwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipuYW1lKiogfCAqKnN0cioqIHwgRnVsbCBuYW1lIG9mIHRoZSBhY2NvdW50IGhvbGRlci4gfCAKKipjaXR5KiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipjb3VudHJ5KiogfCAqKnN0cioqIHwgQ291bnRyeSBjb2RlLCBhcyBzcGVjaWZpZWQgaW4gSVNPIDMxNjYtMSBhbHBoYS0yLiB8IFtvcHRpb25hbF0gCioqc3ViZGl2aXNpb24qKiB8ICoqc3RyKiogfCBDb3VudHJ5IGFkbWluaXN0cmF0aXZlIHN1YmRpdmlzaW9uLCBhcyBzcGVjaWZpZWQgaW4gSVNPIDMxNjYtMi4gfCBbb3B0aW9uYWxdIAoqKmFkZHJlc3MqKiB8ICoqc3RyKiogfCBBY2NvdW50IGhvbGRlciBzdHJlZXQgYWRkcmVzcy4gfCBbb3B0aW9uYWxdIAoqKnBvc3RhbF9jb2RlKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaG9sZGVyX2RldGFpbHMgaW1wb3J0IEFjY291bnRIb2xkZXJEZXRhaWxzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2NvdW50SG9sZGVyRGV0YWlscyBmcm9tIGEgSlNPTiBzdHJpbmcKYWNjb3VudF9ob2xkZXJfZGV0YWlsc19pbnN0YW5jZSA9IEFjY291bnRIb2xkZXJEZXRhaWxzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFjY291bnRIb2xkZXJEZXRhaWxzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFjY291bnRfaG9sZGVyX2RldGFpbHNfZGljdCA9IGFjY291bnRfaG9sZGVyX2RldGFpbHNfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFjY291bnRIb2xkZXJEZXRhaWxzIGZyb20gYSBkaWN0CmFjY291bnRfaG9sZGVyX2RldGFpbHNfZnJvbV9kaWN0ID0gQWNjb3VudEhvbGRlckRldGFpbHMuZnJvbV9kaWN0KGFjY291bnRfaG9sZGVyX2RldGFpbHNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AccountIdentifier.md b/docs/AccountIdentifier.md index 46984b4e..9e21b043 100644 --- a/docs/AccountIdentifier.md +++ b/docs/AccountIdentifier.md @@ -1,33 +1 @@ -# AccountIdentifier - -Account identifier with type, ID, subtype, and address - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**AccountType2**](AccountType2.md) | | -**id** | **str** | Account ID | [optional] -**sub_type** | **str** | Account subtype | [optional] -**address** | **str** | Account address | [optional] - -## Example - -```python -from fireblocks.models.account_identifier import AccountIdentifier - -# TODO update the JSON string below -json = "{}" -# create an instance of AccountIdentifier from a JSON string -account_identifier_instance = AccountIdentifier.from_json(json) -# print the JSON string representation of the object -print(AccountIdentifier.to_json()) - -# convert the object into a dict -account_identifier_dict = account_identifier_instance.to_dict() -# create an instance of AccountIdentifier from a dict -account_identifier_from_dict = AccountIdentifier.from_dict(account_identifier_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBY2NvdW50SWRlbnRpZmllcgoKQWNjb3VudCBpZGVudGlmaWVyIHdpdGggdHlwZSwgSUQsIHN1YnR5cGUsIGFuZCBhZGRyZXNzCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgWyoqQWNjb3VudFR5cGUyKipdKEFjY291bnRUeXBlMi5tZCkgfCAgfCAKKippZCoqIHwgKipzdHIqKiB8IEFjY291bnQgSUQgfCBbb3B0aW9uYWxdIAoqKnN1Yl90eXBlKiogfCAqKnN0cioqIHwgQWNjb3VudCBzdWJ0eXBlIHwgW29wdGlvbmFsXSAKKiphZGRyZXNzKiogfCAqKnN0cioqIHwgQWNjb3VudCBhZGRyZXNzIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaWRlbnRpZmllciBpbXBvcnQgQWNjb3VudElkZW50aWZpZXIKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFjY291bnRJZGVudGlmaWVyIGZyb20gYSBKU09OIHN0cmluZwphY2NvdW50X2lkZW50aWZpZXJfaW5zdGFuY2UgPSBBY2NvdW50SWRlbnRpZmllci5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBY2NvdW50SWRlbnRpZmllci50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphY2NvdW50X2lkZW50aWZpZXJfZGljdCA9IGFjY291bnRfaWRlbnRpZmllcl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNjb3VudElkZW50aWZpZXIgZnJvbSBhIGRpY3QKYWNjb3VudF9pZGVudGlmaWVyX2Zyb21fZGljdCA9IEFjY291bnRJZGVudGlmaWVyLmZyb21fZGljdChhY2NvdW50X2lkZW50aWZpZXJfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AccountReference.md b/docs/AccountReference.md index ff1ea9b5..2e0d2bc1 100644 --- a/docs/AccountReference.md +++ b/docs/AccountReference.md @@ -1,32 +1 @@ -# AccountReference - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**OneTimeAddressPeerType**](OneTimeAddressPeerType.md) | | -**account_id** | **str** | | -**address** | **str** | | -**tag** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.account_reference import AccountReference - -# TODO update the JSON string below -json = "{}" -# create an instance of AccountReference from a JSON string -account_reference_instance = AccountReference.from_json(json) -# print the JSON string representation of the object -print(AccountReference.to_json()) - -# convert the object into a dict -account_reference_dict = account_reference_instance.to_dict() -# create an instance of AccountReference from a dict -account_reference_from_dict = AccountReference.from_dict(account_reference_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBY2NvdW50UmVmZXJlbmNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8IFsqKk9uZVRpbWVBZGRyZXNzUGVlclR5cGUqKl0oT25lVGltZUFkZHJlc3NQZWVyVHlwZS5tZCkgfCAgfCAKKiphY2NvdW50X2lkKiogfCAqKnN0cioqIHwgIHwgCioqYWRkcmVzcyoqIHwgKipzdHIqKiB8ICB8IAoqKnRhZyoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X3JlZmVyZW5jZSBpbXBvcnQgQWNjb3VudFJlZmVyZW5jZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNjb3VudFJlZmVyZW5jZSBmcm9tIGEgSlNPTiBzdHJpbmcKYWNjb3VudF9yZWZlcmVuY2VfaW5zdGFuY2UgPSBBY2NvdW50UmVmZXJlbmNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFjY291bnRSZWZlcmVuY2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYWNjb3VudF9yZWZlcmVuY2VfZGljdCA9IGFjY291bnRfcmVmZXJlbmNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2NvdW50UmVmZXJlbmNlIGZyb20gYSBkaWN0CmFjY291bnRfcmVmZXJlbmNlX2Zyb21fZGljdCA9IEFjY291bnRSZWZlcmVuY2UuZnJvbV9kaWN0KGFjY291bnRfcmVmZXJlbmNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AccountType.md b/docs/AccountType.md index 18b20d92..00a195dd 100644 --- a/docs/AccountType.md +++ b/docs/AccountType.md @@ -1,18 +1 @@ -# AccountType - - -## Enum - -* `EXCHANGE_ACCOUNT` (value: `'EXCHANGE_ACCOUNT'`) - -* `UNMANAGED_WALLET` (value: `'UNMANAGED_WALLET'`) - -* `VAULT_ACCOUNT` (value: `'VAULT_ACCOUNT'`) - -* `NETWORK_CONNECTION` (value: `'NETWORK_CONNECTION'`) - -* `FIAT_ACCOUNT` (value: `'FIAT_ACCOUNT'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBY2NvdW50VHlwZQoKCiMjIEVudW0KCiogYEVYQ0hBTkdFX0FDQ09VTlRgICh2YWx1ZTogYCdFWENIQU5HRV9BQ0NPVU5UJ2ApCgoqIGBVTk1BTkFHRURfV0FMTEVUYCAodmFsdWU6IGAnVU5NQU5BR0VEX1dBTExFVCdgKQoKKiBgVkFVTFRfQUNDT1VOVGAgKHZhbHVlOiBgJ1ZBVUxUX0FDQ09VTlQnYCkKCiogYE5FVFdPUktfQ09OTkVDVElPTmAgKHZhbHVlOiBgJ05FVFdPUktfQ09OTkVDVElPTidgKQoKKiBgRklBVF9BQ0NPVU5UYCAodmFsdWU6IGAnRklBVF9BQ0NPVU5UJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AccountType2.md b/docs/AccountType2.md index 8d24ad05..0c243690 100644 --- a/docs/AccountType2.md +++ b/docs/AccountType2.md @@ -1,47 +1 @@ -# AccountType2 - -Type of account - -## Enum - -* `EXCHANGE` (value: `'EXCHANGE'`) - -* `UNMANAGED` (value: `'UNMANAGED'`) - -* `VAULT` (value: `'VAULT'`) - -* `GLOBAL_WHITELIST` (value: `'GLOBAL_WHITELIST'`) - -* `NETWORK_CONNECTION` (value: `'NETWORK_CONNECTION'`) - -* `FIAT_ACCOUNT` (value: `'FIAT_ACCOUNT'`) - -* `CONNECTED_ACCOUNT` (value: `'CONNECTED_ACCOUNT'`) - -* `ONE_TIME_ADDRESS` (value: `'ONE_TIME_ADDRESS'`) - -* `SRC_DST_NA` (value: `'SRC_DST_NA'`) - -* `MULTIPLE_VENUES` (value: `'MULTIPLE_VENUES'`) - -* `END_USER_WALLET` (value: `'END_USER_WALLET'`) - -* `OEC_PARTNER` (value: `'OEC_PARTNER'`) - -* `CONTRACT` (value: `'CONTRACT'`) - -* `INTERNAL` (value: `'INTERNAL'`) - -* `EXTERNAL` (value: `'EXTERNAL'`) - -* `DAPP_CONNECTION` (value: `'DAPP_CONNECTION'`) - -* `UNKNOWN` (value: `'UNKNOWN'`) - -* `STAR` (value: `'*'`) - -* `ANY` (value: `'ANY'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBY2NvdW50VHlwZTIKClR5cGUgb2YgYWNjb3VudAoKIyMgRW51bQoKKiBgRVhDSEFOR0VgICh2YWx1ZTogYCdFWENIQU5HRSdgKQoKKiBgVU5NQU5BR0VEYCAodmFsdWU6IGAnVU5NQU5BR0VEJ2ApCgoqIGBWQVVMVGAgKHZhbHVlOiBgJ1ZBVUxUJ2ApCgoqIGBHTE9CQUxfV0hJVEVMSVNUYCAodmFsdWU6IGAnR0xPQkFMX1dISVRFTElTVCdgKQoKKiBgTkVUV09SS19DT05ORUNUSU9OYCAodmFsdWU6IGAnTkVUV09SS19DT05ORUNUSU9OJ2ApCgoqIGBGSUFUX0FDQ09VTlRgICh2YWx1ZTogYCdGSUFUX0FDQ09VTlQnYCkKCiogYENPTk5FQ1RFRF9BQ0NPVU5UYCAodmFsdWU6IGAnQ09OTkVDVEVEX0FDQ09VTlQnYCkKCiogYE9ORV9USU1FX0FERFJFU1NgICh2YWx1ZTogYCdPTkVfVElNRV9BRERSRVNTJ2ApCgoqIGBTUkNfRFNUX05BYCAodmFsdWU6IGAnU1JDX0RTVF9OQSdgKQoKKiBgTVVMVElQTEVfVkVOVUVTYCAodmFsdWU6IGAnTVVMVElQTEVfVkVOVUVTJ2ApCgoqIGBFTkRfVVNFUl9XQUxMRVRgICh2YWx1ZTogYCdFTkRfVVNFUl9XQUxMRVQnYCkKCiogYE9FQ19QQVJUTkVSYCAodmFsdWU6IGAnT0VDX1BBUlRORVInYCkKCiogYENPTlRSQUNUYCAodmFsdWU6IGAnQ09OVFJBQ1QnYCkKCiogYElOVEVSTkFMYCAodmFsdWU6IGAnSU5URVJOQUwnYCkKCiogYEVYVEVSTkFMYCAodmFsdWU6IGAnRVhURVJOQUwnYCkKCiogYERBUFBfQ09OTkVDVElPTmAgKHZhbHVlOiBgJ0RBUFBfQ09OTkVDVElPTidgKQoKKiBgVU5LTk9XTmAgKHZhbHVlOiBgJ1VOS05PV04nYCkKCiogYFNUQVJgICh2YWx1ZTogYCcqJ2ApCgoqIGBBTllgICh2YWx1ZTogYCdBTlknYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AchAccountType.md b/docs/AchAccountType.md index 45e8cd68..9c0b595d 100644 --- a/docs/AchAccountType.md +++ b/docs/AchAccountType.md @@ -1,13 +1 @@ -# AchAccountType - -Type of the bank account. - -## Enum - -* `CHECKING` (value: `'CHECKING'`) - -* `SAVINGS` (value: `'SAVINGS'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBY2hBY2NvdW50VHlwZQoKVHlwZSBvZiB0aGUgYmFuayBhY2NvdW50LgoKIyMgRW51bQoKKiBgQ0hFQ0tJTkdgICh2YWx1ZTogYCdDSEVDS0lORydgKQoKKiBgU0FWSU5HU2AgKHZhbHVlOiBgJ1NBVklOR1MnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AchAddress.md b/docs/AchAddress.md index 9067e1b3..88ec0d56 100644 --- a/docs/AchAddress.md +++ b/docs/AchAddress.md @@ -1,33 +1 @@ -# AchAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | | -**bank_name** | **str** | Name of the bank. | [optional] -**bank_account_number** | **str** | The bank account number for the ACH transfer. | -**routing_number** | **str** | Routing number identifying the bank account. | -**account_type** | [**AchAccountType**](AchAccountType.md) | | - -## Example - -```python -from fireblocks.models.ach_address import AchAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of AchAddress from a JSON string -ach_address_instance = AchAddress.from_json(json) -# print the JSON string representation of the object -print(AchAddress.to_json()) - -# convert the object into a dict -ach_address_dict = ach_address_instance.to_dict() -# create an instance of AchAddress from a dict -ach_address_from_dict = AchAddress.from_dict(ach_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBY2hBZGRyZXNzCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFjY291bnRfaG9sZGVyKiogfCBbKipBY2NvdW50SG9sZGVyRGV0YWlscyoqXShBY2NvdW50SG9sZGVyRGV0YWlscy5tZCkgfCAgfCAKKipiYW5rX25hbWUqKiB8ICoqc3RyKiogfCBOYW1lIG9mIHRoZSBiYW5rLiB8IFtvcHRpb25hbF0gCioqYmFua19hY2NvdW50X251bWJlcioqIHwgKipzdHIqKiB8IFRoZSBiYW5rIGFjY291bnQgbnVtYmVyIGZvciB0aGUgQUNIIHRyYW5zZmVyLiB8IAoqKnJvdXRpbmdfbnVtYmVyKiogfCAqKnN0cioqIHwgUm91dGluZyBudW1iZXIgaWRlbnRpZnlpbmcgdGhlIGJhbmsgYWNjb3VudC4gfCAKKiphY2NvdW50X3R5cGUqKiB8IFsqKkFjaEFjY291bnRUeXBlKipdKEFjaEFjY291bnRUeXBlLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNoX2FkZHJlc3MgaW1wb3J0IEFjaEFkZHJlc3MKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFjaEFkZHJlc3MgZnJvbSBhIEpTT04gc3RyaW5nCmFjaF9hZGRyZXNzX2luc3RhbmNlID0gQWNoQWRkcmVzcy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBY2hBZGRyZXNzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFjaF9hZGRyZXNzX2RpY3QgPSBhY2hfYWRkcmVzc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNoQWRkcmVzcyBmcm9tIGEgZGljdAphY2hfYWRkcmVzc19mcm9tX2RpY3QgPSBBY2hBZGRyZXNzLmZyb21fZGljdChhY2hfYWRkcmVzc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AchDestination.md b/docs/AchDestination.md index 9c4e9d8b..dc13fda9 100644 --- a/docs/AchDestination.md +++ b/docs/AchDestination.md @@ -1,30 +1 @@ -# AchDestination - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | -**address** | [**AchAddress**](AchAddress.md) | | - -## Example - -```python -from fireblocks.models.ach_destination import AchDestination - -# TODO update the JSON string below -json = "{}" -# create an instance of AchDestination from a JSON string -ach_destination_instance = AchDestination.from_json(json) -# print the JSON string representation of the object -print(AchDestination.to_json()) - -# convert the object into a dict -ach_destination_dict = ach_destination_instance.to_dict() -# create an instance of AchDestination from a dict -ach_destination_from_dict = AchDestination.from_dict(ach_destination_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBY2hEZXN0aW5hdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eXBlKiogfCAqKnN0cioqIHwgIHwgCioqYWRkcmVzcyoqIHwgWyoqQWNoQWRkcmVzcyoqXShBY2hBZGRyZXNzLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNoX2Rlc3RpbmF0aW9uIGltcG9ydCBBY2hEZXN0aW5hdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNoRGVzdGluYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCmFjaF9kZXN0aW5hdGlvbl9pbnN0YW5jZSA9IEFjaERlc3RpbmF0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFjaERlc3RpbmF0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFjaF9kZXN0aW5hdGlvbl9kaWN0ID0gYWNoX2Rlc3RpbmF0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2hEZXN0aW5hdGlvbiBmcm9tIGEgZGljdAphY2hfZGVzdGluYXRpb25fZnJvbV9kaWN0ID0gQWNoRGVzdGluYXRpb24uZnJvbV9kaWN0KGFjaF9kZXN0aW5hdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AchPaymentInfo.md b/docs/AchPaymentInfo.md index 099d1700..65e86f9d 100644 --- a/docs/AchPaymentInfo.md +++ b/docs/AchPaymentInfo.md @@ -1,37 +1 @@ -# AchPaymentInfo - -ACH payment information for US Automated Clearing House transfers - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**rail** | **str** | The payment rail type for ACH transfers | -**addressing_system** | **str** | The addressing system used for ACH transfers | -**account_holder_given_name** | **str** | The given name (first name) of the account holder | -**account_holder_surname** | **str** | The surname (last name) of the account holder | -**country** | **str** | The country for the transfer (ISO 3166-1 alpha-2 code) | -**account_number** | **str** | The bank account number | -**routing_number** | **str** | The bank routing number (ABA routing number) | -**account_type** | **str** | The type of bank account | - -## Example - -```python -from fireblocks.models.ach_payment_info import AchPaymentInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of AchPaymentInfo from a JSON string -ach_payment_info_instance = AchPaymentInfo.from_json(json) -# print the JSON string representation of the object -print(AchPaymentInfo.to_json()) - -# convert the object into a dict -ach_payment_info_dict = ach_payment_info_instance.to_dict() -# create an instance of AchPaymentInfo from a dict -ach_payment_info_from_dict = AchPaymentInfo.from_dict(ach_payment_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBY2hQYXltZW50SW5mbwoKQUNIIHBheW1lbnQgaW5mb3JtYXRpb24gZm9yIFVTIEF1dG9tYXRlZCBDbGVhcmluZyBIb3VzZSB0cmFuc2ZlcnMKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipyYWlsKiogfCAqKnN0cioqIHwgVGhlIHBheW1lbnQgcmFpbCB0eXBlIGZvciBBQ0ggdHJhbnNmZXJzIHwgCioqYWRkcmVzc2luZ19zeXN0ZW0qKiB8ICoqc3RyKiogfCBUaGUgYWRkcmVzc2luZyBzeXN0ZW0gdXNlZCBmb3IgQUNIIHRyYW5zZmVycyB8IAoqKmFjY291bnRfaG9sZGVyX2dpdmVuX25hbWUqKiB8ICoqc3RyKiogfCBUaGUgZ2l2ZW4gbmFtZSAoZmlyc3QgbmFtZSkgb2YgdGhlIGFjY291bnQgaG9sZGVyIHwgCioqYWNjb3VudF9ob2xkZXJfc3VybmFtZSoqIHwgKipzdHIqKiB8IFRoZSBzdXJuYW1lIChsYXN0IG5hbWUpIG9mIHRoZSBhY2NvdW50IGhvbGRlciB8IAoqKmNvdW50cnkqKiB8ICoqc3RyKiogfCBUaGUgY291bnRyeSBmb3IgdGhlIHRyYW5zZmVyIChJU08gMzE2Ni0xIGFscGhhLTIgY29kZSkgfCAKKiphY2NvdW50X251bWJlcioqIHwgKipzdHIqKiB8IFRoZSBiYW5rIGFjY291bnQgbnVtYmVyIHwgCioqcm91dGluZ19udW1iZXIqKiB8ICoqc3RyKiogfCBUaGUgYmFuayByb3V0aW5nIG51bWJlciAoQUJBIHJvdXRpbmcgbnVtYmVyKSB8IAoqKmFjY291bnRfdHlwZSoqIHwgKipzdHIqKiB8IFRoZSB0eXBlIG9mIGJhbmsgYWNjb3VudCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNoX3BheW1lbnRfaW5mbyBpbXBvcnQgQWNoUGF5bWVudEluZm8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFjaFBheW1lbnRJbmZvIGZyb20gYSBKU09OIHN0cmluZwphY2hfcGF5bWVudF9pbmZvX2luc3RhbmNlID0gQWNoUGF5bWVudEluZm8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQWNoUGF5bWVudEluZm8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYWNoX3BheW1lbnRfaW5mb19kaWN0ID0gYWNoX3BheW1lbnRfaW5mb19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNoUGF5bWVudEluZm8gZnJvbSBhIGRpY3QKYWNoX3BheW1lbnRfaW5mb19mcm9tX2RpY3QgPSBBY2hQYXltZW50SW5mby5mcm9tX2RpY3QoYWNoX3BheW1lbnRfaW5mb19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AdapterProcessingResult.md b/docs/AdapterProcessingResult.md index 0cce0607..0c251775 100644 --- a/docs/AdapterProcessingResult.md +++ b/docs/AdapterProcessingResult.md @@ -1,30 +1 @@ -# AdapterProcessingResult - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**input_token_link_id** | **str** | The input token link ID | -**adapter_link_id** | **str** | The adapter link ID | - -## Example - -```python -from fireblocks.models.adapter_processing_result import AdapterProcessingResult - -# TODO update the JSON string below -json = "{}" -# create an instance of AdapterProcessingResult from a JSON string -adapter_processing_result_instance = AdapterProcessingResult.from_json(json) -# print the JSON string representation of the object -print(AdapterProcessingResult.to_json()) - -# convert the object into a dict -adapter_processing_result_dict = adapter_processing_result_instance.to_dict() -# create an instance of AdapterProcessingResult from a dict -adapter_processing_result_from_dict = AdapterProcessingResult.from_dict(adapter_processing_result_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBZGFwdGVyUHJvY2Vzc2luZ1Jlc3VsdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippbnB1dF90b2tlbl9saW5rX2lkKiogfCAqKnN0cioqIHwgVGhlIGlucHV0IHRva2VuIGxpbmsgSUQgfCAKKiphZGFwdGVyX2xpbmtfaWQqKiB8ICoqc3RyKiogfCBUaGUgYWRhcHRlciBsaW5rIElEIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hZGFwdGVyX3Byb2Nlc3NpbmdfcmVzdWx0IGltcG9ydCBBZGFwdGVyUHJvY2Vzc2luZ1Jlc3VsdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWRhcHRlclByb2Nlc3NpbmdSZXN1bHQgZnJvbSBhIEpTT04gc3RyaW5nCmFkYXB0ZXJfcHJvY2Vzc2luZ19yZXN1bHRfaW5zdGFuY2UgPSBBZGFwdGVyUHJvY2Vzc2luZ1Jlc3VsdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBZGFwdGVyUHJvY2Vzc2luZ1Jlc3VsdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphZGFwdGVyX3Byb2Nlc3NpbmdfcmVzdWx0X2RpY3QgPSBhZGFwdGVyX3Byb2Nlc3NpbmdfcmVzdWx0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGFwdGVyUHJvY2Vzc2luZ1Jlc3VsdCBmcm9tIGEgZGljdAphZGFwdGVyX3Byb2Nlc3NpbmdfcmVzdWx0X2Zyb21fZGljdCA9IEFkYXB0ZXJQcm9jZXNzaW5nUmVzdWx0LmZyb21fZGljdChhZGFwdGVyX3Byb2Nlc3NpbmdfcmVzdWx0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AddAbiRequestDto.md b/docs/AddAbiRequestDto.md index 85847549..c6672eeb 100644 --- a/docs/AddAbiRequestDto.md +++ b/docs/AddAbiRequestDto.md @@ -1,32 +1 @@ -# AddAbiRequestDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**contract_address** | **str** | The address of deployed contract | -**base_asset_id** | **str** | The blockchain base assetId | -**abi** | [**List[AbiFunction]**](AbiFunction.md) | The ABI of the contract | -**name** | **str** | The name of the contract | [optional] - -## Example - -```python -from fireblocks.models.add_abi_request_dto import AddAbiRequestDto - -# TODO update the JSON string below -json = "{}" -# create an instance of AddAbiRequestDto from a JSON string -add_abi_request_dto_instance = AddAbiRequestDto.from_json(json) -# print the JSON string representation of the object -print(AddAbiRequestDto.to_json()) - -# convert the object into a dict -add_abi_request_dto_dict = add_abi_request_dto_instance.to_dict() -# create an instance of AddAbiRequestDto from a dict -add_abi_request_dto_from_dict = AddAbiRequestDto.from_dict(add_abi_request_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBZGRBYmlSZXF1ZXN0RHRvCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmNvbnRyYWN0X2FkZHJlc3MqKiB8ICoqc3RyKiogfCBUaGUgYWRkcmVzcyBvZiBkZXBsb3llZCBjb250cmFjdCB8IAoqKmJhc2VfYXNzZXRfaWQqKiB8ICoqc3RyKiogfCBUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQgfCAKKiphYmkqKiB8IFsqKkxpc3RbQWJpRnVuY3Rpb25dKipdKEFiaUZ1bmN0aW9uLm1kKSB8IFRoZSBBQkkgb2YgdGhlIGNvbnRyYWN0IHwgCioqbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBuYW1lIG9mIHRoZSBjb250cmFjdCB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hZGRfYWJpX3JlcXVlc3RfZHRvIGltcG9ydCBBZGRBYmlSZXF1ZXN0RHRvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGRBYmlSZXF1ZXN0RHRvIGZyb20gYSBKU09OIHN0cmluZwphZGRfYWJpX3JlcXVlc3RfZHRvX2luc3RhbmNlID0gQWRkQWJpUmVxdWVzdER0by5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBZGRBYmlSZXF1ZXN0RHRvLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFkZF9hYmlfcmVxdWVzdF9kdG9fZGljdCA9IGFkZF9hYmlfcmVxdWVzdF9kdG9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkZEFiaVJlcXVlc3REdG8gZnJvbSBhIGRpY3QKYWRkX2FiaV9yZXF1ZXN0X2R0b19mcm9tX2RpY3QgPSBBZGRBYmlSZXF1ZXN0RHRvLmZyb21fZGljdChhZGRfYWJpX3JlcXVlc3RfZHRvX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AddAssetToExternalWalletRequest.md b/docs/AddAssetToExternalWalletRequest.md index e8c84df0..ef47fb44 100644 --- a/docs/AddAssetToExternalWalletRequest.md +++ b/docs/AddAssetToExternalWalletRequest.md @@ -1,32 +1 @@ -# AddAssetToExternalWalletRequest - -Request schema for adding an asset to an external wallet - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**address** | **str** | The wallet's address (or xpub) of the external wallet | -**tag** | **str** | For XRP wallets, the destination tag; for EOS/XLM, the memo; for the fiat providers (BLINC by BCB Group), the Bank Transfer Description | [optional] -**additional_info** | [**AdditionalInfoRequestAdditionalInfo**](AdditionalInfoRequestAdditionalInfo.md) | | - -## Example - -```python -from fireblocks.models.add_asset_to_external_wallet_request import AddAssetToExternalWalletRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of AddAssetToExternalWalletRequest from a JSON string -add_asset_to_external_wallet_request_instance = AddAssetToExternalWalletRequest.from_json(json) -# print the JSON string representation of the object -print(AddAssetToExternalWalletRequest.to_json()) - -# convert the object into a dict -add_asset_to_external_wallet_request_dict = add_asset_to_external_wallet_request_instance.to_dict() -# create an instance of AddAssetToExternalWalletRequest from a dict -add_asset_to_external_wallet_request_from_dict = AddAssetToExternalWalletRequest.from_dict(add_asset_to_external_wallet_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBZGRBc3NldFRvRXh0ZXJuYWxXYWxsZXRSZXF1ZXN0CgpSZXF1ZXN0IHNjaGVtYSBmb3IgYWRkaW5nIGFuIGFzc2V0IHRvIGFuIGV4dGVybmFsIHdhbGxldAoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFkZHJlc3MqKiB8ICoqc3RyKiogfCBUaGUgd2FsbGV0JiMzOTtzIGFkZHJlc3MgKG9yIHhwdWIpIG9mIHRoZSBleHRlcm5hbCB3YWxsZXQgfCAKKip0YWcqKiB8ICoqc3RyKiogfCBGb3IgWFJQIHdhbGxldHMsIHRoZSBkZXN0aW5hdGlvbiB0YWc7IGZvciBFT1MvWExNLCB0aGUgbWVtbzsgZm9yIHRoZSBmaWF0IHByb3ZpZGVycyAoQkxJTkMgYnkgQkNCIEdyb3VwKSwgdGhlIEJhbmsgVHJhbnNmZXIgRGVzY3JpcHRpb24gfCBbb3B0aW9uYWxdIAoqKmFkZGl0aW9uYWxfaW5mbyoqIHwgWyoqQWRkaXRpb25hbEluZm9SZXF1ZXN0QWRkaXRpb25hbEluZm8qKl0oQWRkaXRpb25hbEluZm9SZXF1ZXN0QWRkaXRpb25hbEluZm8ubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hZGRfYXNzZXRfdG9fZXh0ZXJuYWxfd2FsbGV0X3JlcXVlc3QgaW1wb3J0IEFkZEFzc2V0VG9FeHRlcm5hbFdhbGxldFJlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkZEFzc2V0VG9FeHRlcm5hbFdhbGxldFJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCmFkZF9hc3NldF90b19leHRlcm5hbF93YWxsZXRfcmVxdWVzdF9pbnN0YW5jZSA9IEFkZEFzc2V0VG9FeHRlcm5hbFdhbGxldFJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQWRkQXNzZXRUb0V4dGVybmFsV2FsbGV0UmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphZGRfYXNzZXRfdG9fZXh0ZXJuYWxfd2FsbGV0X3JlcXVlc3RfZGljdCA9IGFkZF9hc3NldF90b19leHRlcm5hbF93YWxsZXRfcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWRkQXNzZXRUb0V4dGVybmFsV2FsbGV0UmVxdWVzdCBmcm9tIGEgZGljdAphZGRfYXNzZXRfdG9fZXh0ZXJuYWxfd2FsbGV0X3JlcXVlc3RfZnJvbV9kaWN0ID0gQWRkQXNzZXRUb0V4dGVybmFsV2FsbGV0UmVxdWVzdC5mcm9tX2RpY3QoYWRkX2Fzc2V0X3RvX2V4dGVybmFsX3dhbGxldF9yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AddCollateralRequestBody.md b/docs/AddCollateralRequestBody.md index db01ac31..927f3aad 100644 --- a/docs/AddCollateralRequestBody.md +++ b/docs/AddCollateralRequestBody.md @@ -1,30 +1 @@ -# AddCollateralRequestBody - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**transaction_request** | [**TransactionRequest**](TransactionRequest.md) | | [optional] -**is_src_collateral** | **bool** | optional | [optional] - -## Example - -```python -from fireblocks.models.add_collateral_request_body import AddCollateralRequestBody - -# TODO update the JSON string below -json = "{}" -# create an instance of AddCollateralRequestBody from a JSON string -add_collateral_request_body_instance = AddCollateralRequestBody.from_json(json) -# print the JSON string representation of the object -print(AddCollateralRequestBody.to_json()) - -# convert the object into a dict -add_collateral_request_body_dict = add_collateral_request_body_instance.to_dict() -# create an instance of AddCollateralRequestBody from a dict -add_collateral_request_body_from_dict = AddCollateralRequestBody.from_dict(add_collateral_request_body_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBZGRDb2xsYXRlcmFsUmVxdWVzdEJvZHkKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHJhbnNhY3Rpb25fcmVxdWVzdCoqIHwgWyoqVHJhbnNhY3Rpb25SZXF1ZXN0KipdKFRyYW5zYWN0aW9uUmVxdWVzdC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmlzX3NyY19jb2xsYXRlcmFsKiogfCAqKmJvb2wqKiB8IG9wdGlvbmFsIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZF9jb2xsYXRlcmFsX3JlcXVlc3RfYm9keSBpbXBvcnQgQWRkQ29sbGF0ZXJhbFJlcXVlc3RCb2R5CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGRDb2xsYXRlcmFsUmVxdWVzdEJvZHkgZnJvbSBhIEpTT04gc3RyaW5nCmFkZF9jb2xsYXRlcmFsX3JlcXVlc3RfYm9keV9pbnN0YW5jZSA9IEFkZENvbGxhdGVyYWxSZXF1ZXN0Qm9keS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBZGRDb2xsYXRlcmFsUmVxdWVzdEJvZHkudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYWRkX2NvbGxhdGVyYWxfcmVxdWVzdF9ib2R5X2RpY3QgPSBhZGRfY29sbGF0ZXJhbF9yZXF1ZXN0X2JvZHlfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkZENvbGxhdGVyYWxSZXF1ZXN0Qm9keSBmcm9tIGEgZGljdAphZGRfY29sbGF0ZXJhbF9yZXF1ZXN0X2JvZHlfZnJvbV9kaWN0ID0gQWRkQ29sbGF0ZXJhbFJlcXVlc3RCb2R5LmZyb21fZGljdChhZGRfY29sbGF0ZXJhbF9yZXF1ZXN0X2JvZHlfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AddContractAssetRequest.md b/docs/AddContractAssetRequest.md index 88ebce03..5c235d31 100644 --- a/docs/AddContractAssetRequest.md +++ b/docs/AddContractAssetRequest.md @@ -1,30 +1 @@ -# AddContractAssetRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**address** | **str** | The contract's address (or xpub) of the wallet | -**tag** | **str** | The destination tag, for XRP wallets | [optional] - -## Example - -```python -from fireblocks.models.add_contract_asset_request import AddContractAssetRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of AddContractAssetRequest from a JSON string -add_contract_asset_request_instance = AddContractAssetRequest.from_json(json) -# print the JSON string representation of the object -print(AddContractAssetRequest.to_json()) - -# convert the object into a dict -add_contract_asset_request_dict = add_contract_asset_request_instance.to_dict() -# create an instance of AddContractAssetRequest from a dict -add_contract_asset_request_from_dict = AddContractAssetRequest.from_dict(add_contract_asset_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBZGRDb250cmFjdEFzc2V0UmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphZGRyZXNzKiogfCAqKnN0cioqIHwgVGhlIGNvbnRyYWN0JiMzOTtzIGFkZHJlc3MgKG9yIHhwdWIpIG9mIHRoZSB3YWxsZXQgfCAKKip0YWcqKiB8ICoqc3RyKiogfCBUaGUgZGVzdGluYXRpb24gdGFnLCBmb3IgWFJQIHdhbGxldHMgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkX2NvbnRyYWN0X2Fzc2V0X3JlcXVlc3QgaW1wb3J0IEFkZENvbnRyYWN0QXNzZXRSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGRDb250cmFjdEFzc2V0UmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKYWRkX2NvbnRyYWN0X2Fzc2V0X3JlcXVlc3RfaW5zdGFuY2UgPSBBZGRDb250cmFjdEFzc2V0UmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBZGRDb250cmFjdEFzc2V0UmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphZGRfY29udHJhY3RfYXNzZXRfcmVxdWVzdF9kaWN0ID0gYWRkX2NvbnRyYWN0X2Fzc2V0X3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkZENvbnRyYWN0QXNzZXRSZXF1ZXN0IGZyb20gYSBkaWN0CmFkZF9jb250cmFjdF9hc3NldF9yZXF1ZXN0X2Zyb21fZGljdCA9IEFkZENvbnRyYWN0QXNzZXRSZXF1ZXN0LmZyb21fZGljdChhZGRfY29udHJhY3RfYXNzZXRfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AddCosignerRequest.md b/docs/AddCosignerRequest.md index 52ea9c0b..140b2435 100644 --- a/docs/AddCosignerRequest.md +++ b/docs/AddCosignerRequest.md @@ -1,31 +1 @@ -# AddCosignerRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**api_key_id** | **str** | The id of the API key to be paired with the cosigner | -**name** | **str** | The name of the cosigner | -**existing_cosigner** | **bool** | Whether the cosigner already exists in another workspace | [optional] [default to False] - -## Example - -```python -from fireblocks.models.add_cosigner_request import AddCosignerRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of AddCosignerRequest from a JSON string -add_cosigner_request_instance = AddCosignerRequest.from_json(json) -# print the JSON string representation of the object -print(AddCosignerRequest.to_json()) - -# convert the object into a dict -add_cosigner_request_dict = add_cosigner_request_instance.to_dict() -# create an instance of AddCosignerRequest from a dict -add_cosigner_request_from_dict = AddCosignerRequest.from_dict(add_cosigner_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBZGRDb3NpZ25lclJlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYXBpX2tleV9pZCoqIHwgKipzdHIqKiB8IFRoZSBpZCBvZiB0aGUgQVBJIGtleSB0byBiZSBwYWlyZWQgd2l0aCB0aGUgY29zaWduZXIgfCAKKipuYW1lKiogfCAqKnN0cioqIHwgVGhlIG5hbWUgb2YgdGhlIGNvc2lnbmVyIHwgCioqZXhpc3RpbmdfY29zaWduZXIqKiB8ICoqYm9vbCoqIHwgV2hldGhlciB0aGUgY29zaWduZXIgYWxyZWFkeSBleGlzdHMgaW4gYW5vdGhlciB3b3Jrc3BhY2UgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIEZhbHNlXQoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkX2Nvc2lnbmVyX3JlcXVlc3QgaW1wb3J0IEFkZENvc2lnbmVyUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWRkQ29zaWduZXJSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwphZGRfY29zaWduZXJfcmVxdWVzdF9pbnN0YW5jZSA9IEFkZENvc2lnbmVyUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBZGRDb3NpZ25lclJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYWRkX2Nvc2lnbmVyX3JlcXVlc3RfZGljdCA9IGFkZF9jb3NpZ25lcl9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGRDb3NpZ25lclJlcXVlc3QgZnJvbSBhIGRpY3QKYWRkX2Nvc2lnbmVyX3JlcXVlc3RfZnJvbV9kaWN0ID0gQWRkQ29zaWduZXJSZXF1ZXN0LmZyb21fZGljdChhZGRfY29zaWduZXJfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AddCosignerResponse.md b/docs/AddCosignerResponse.md index 32146293..7d0a872f 100644 --- a/docs/AddCosignerResponse.md +++ b/docs/AddCosignerResponse.md @@ -1,32 +1 @@ -# AddCosignerResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**api_key_id** | **str** | The id of the API key to be paired with the cosigner | -**name** | **str** | The name of the cosigner | -**existing_cosigner** | **bool** | Whether the cosigner already exists in another workspace | [optional] [default to False] -**pending_cosigner_id** | **str** | The unique identifier of a pending cosigner | - -## Example - -```python -from fireblocks.models.add_cosigner_response import AddCosignerResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of AddCosignerResponse from a JSON string -add_cosigner_response_instance = AddCosignerResponse.from_json(json) -# print the JSON string representation of the object -print(AddCosignerResponse.to_json()) - -# convert the object into a dict -add_cosigner_response_dict = add_cosigner_response_instance.to_dict() -# create an instance of AddCosignerResponse from a dict -add_cosigner_response_from_dict = AddCosignerResponse.from_dict(add_cosigner_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBZGRDb3NpZ25lclJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFwaV9rZXlfaWQqKiB8ICoqc3RyKiogfCBUaGUgaWQgb2YgdGhlIEFQSSBrZXkgdG8gYmUgcGFpcmVkIHdpdGggdGhlIGNvc2lnbmVyIHwgCioqbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBuYW1lIG9mIHRoZSBjb3NpZ25lciB8IAoqKmV4aXN0aW5nX2Nvc2lnbmVyKiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgdGhlIGNvc2lnbmVyIGFscmVhZHkgZXhpc3RzIGluIGFub3RoZXIgd29ya3NwYWNlIHwgW29wdGlvbmFsXSBbZGVmYXVsdCB0byBGYWxzZV0KKipwZW5kaW5nX2Nvc2lnbmVyX2lkKiogfCAqKnN0cioqIHwgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIGEgcGVuZGluZyBjb3NpZ25lciB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkX2Nvc2lnbmVyX3Jlc3BvbnNlIGltcG9ydCBBZGRDb3NpZ25lclJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGRDb3NpZ25lclJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwphZGRfY29zaWduZXJfcmVzcG9uc2VfaW5zdGFuY2UgPSBBZGRDb3NpZ25lclJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFkZENvc2lnbmVyUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYWRkX2Nvc2lnbmVyX3Jlc3BvbnNlX2RpY3QgPSBhZGRfY29zaWduZXJfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkZENvc2lnbmVyUmVzcG9uc2UgZnJvbSBhIGRpY3QKYWRkX2Nvc2lnbmVyX3Jlc3BvbnNlX2Zyb21fZGljdCA9IEFkZENvc2lnbmVyUmVzcG9uc2UuZnJvbV9kaWN0KGFkZF9jb3NpZ25lcl9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AddExchangeAccountRequest.md b/docs/AddExchangeAccountRequest.md index bd19da31..4f3bf245 100644 --- a/docs/AddExchangeAccountRequest.md +++ b/docs/AddExchangeAccountRequest.md @@ -1,33 +1 @@ -# AddExchangeAccountRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**exchange_type** | [**ExchangeType**](ExchangeType.md) | | -**name** | **str** | Display name of the exchange account | -**creds** | **str** | Encrypted credentials | [optional] -**key** | **str** | Api key of the exchange | [optional] -**main_account_id** | **str** | Optional - main account id of the exchange | [optional] - -## Example - -```python -from fireblocks.models.add_exchange_account_request import AddExchangeAccountRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of AddExchangeAccountRequest from a JSON string -add_exchange_account_request_instance = AddExchangeAccountRequest.from_json(json) -# print the JSON string representation of the object -print(AddExchangeAccountRequest.to_json()) - -# convert the object into a dict -add_exchange_account_request_dict = add_exchange_account_request_instance.to_dict() -# create an instance of AddExchangeAccountRequest from a dict -add_exchange_account_request_from_dict = AddExchangeAccountRequest.from_dict(add_exchange_account_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBZGRFeGNoYW5nZUFjY291bnRSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmV4Y2hhbmdlX3R5cGUqKiB8IFsqKkV4Y2hhbmdlVHlwZSoqXShFeGNoYW5nZVR5cGUubWQpIHwgIHwgCioqbmFtZSoqIHwgKipzdHIqKiB8IERpc3BsYXkgbmFtZSBvZiB0aGUgZXhjaGFuZ2UgYWNjb3VudCB8IAoqKmNyZWRzKiogfCAqKnN0cioqIHwgRW5jcnlwdGVkIGNyZWRlbnRpYWxzIHwgW29wdGlvbmFsXSAKKiprZXkqKiB8ICoqc3RyKiogfCBBcGkga2V5IG9mIHRoZSBleGNoYW5nZSB8IFtvcHRpb25hbF0gCioqbWFpbl9hY2NvdW50X2lkKiogfCAqKnN0cioqIHwgT3B0aW9uYWwgLSBtYWluIGFjY291bnQgaWQgb2YgdGhlIGV4Y2hhbmdlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZF9leGNoYW5nZV9hY2NvdW50X3JlcXVlc3QgaW1wb3J0IEFkZEV4Y2hhbmdlQWNjb3VudFJlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkZEV4Y2hhbmdlQWNjb3VudFJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCmFkZF9leGNoYW5nZV9hY2NvdW50X3JlcXVlc3RfaW5zdGFuY2UgPSBBZGRFeGNoYW5nZUFjY291bnRSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFkZEV4Y2hhbmdlQWNjb3VudFJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYWRkX2V4Y2hhbmdlX2FjY291bnRfcmVxdWVzdF9kaWN0ID0gYWRkX2V4Y2hhbmdlX2FjY291bnRfcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWRkRXhjaGFuZ2VBY2NvdW50UmVxdWVzdCBmcm9tIGEgZGljdAphZGRfZXhjaGFuZ2VfYWNjb3VudF9yZXF1ZXN0X2Zyb21fZGljdCA9IEFkZEV4Y2hhbmdlQWNjb3VudFJlcXVlc3QuZnJvbV9kaWN0KGFkZF9leGNoYW5nZV9hY2NvdW50X3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AddExchangeAccountResponse.md b/docs/AddExchangeAccountResponse.md index c1c4e3a9..6d1167fa 100644 --- a/docs/AddExchangeAccountResponse.md +++ b/docs/AddExchangeAccountResponse.md @@ -1,31 +1 @@ -# AddExchangeAccountResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | Exchange account's identifier | [optional] -**name** | **str** | Display name of the exchange account | [optional] -**exchange_type** | [**ExchangeType**](ExchangeType.md) | | [optional] - -## Example - -```python -from fireblocks.models.add_exchange_account_response import AddExchangeAccountResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of AddExchangeAccountResponse from a JSON string -add_exchange_account_response_instance = AddExchangeAccountResponse.from_json(json) -# print the JSON string representation of the object -print(AddExchangeAccountResponse.to_json()) - -# convert the object into a dict -add_exchange_account_response_dict = add_exchange_account_response_instance.to_dict() -# create an instance of AddExchangeAccountResponse from a dict -add_exchange_account_response_from_dict = AddExchangeAccountResponse.from_dict(add_exchange_account_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBZGRFeGNoYW5nZUFjY291bnRSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8IEV4Y2hhbmdlIGFjY291bnQmIzM5O3MgaWRlbnRpZmllciB8IFtvcHRpb25hbF0gCioqbmFtZSoqIHwgKipzdHIqKiB8IERpc3BsYXkgbmFtZSBvZiB0aGUgZXhjaGFuZ2UgYWNjb3VudCB8IFtvcHRpb25hbF0gCioqZXhjaGFuZ2VfdHlwZSoqIHwgWyoqRXhjaGFuZ2VUeXBlKipdKEV4Y2hhbmdlVHlwZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkX2V4Y2hhbmdlX2FjY291bnRfcmVzcG9uc2UgaW1wb3J0IEFkZEV4Y2hhbmdlQWNjb3VudFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGRFeGNoYW5nZUFjY291bnRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKYWRkX2V4Y2hhbmdlX2FjY291bnRfcmVzcG9uc2VfaW5zdGFuY2UgPSBBZGRFeGNoYW5nZUFjY291bnRSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBZGRFeGNoYW5nZUFjY291bnRSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphZGRfZXhjaGFuZ2VfYWNjb3VudF9yZXNwb25zZV9kaWN0ID0gYWRkX2V4Y2hhbmdlX2FjY291bnRfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkZEV4Y2hhbmdlQWNjb3VudFJlc3BvbnNlIGZyb20gYSBkaWN0CmFkZF9leGNoYW5nZV9hY2NvdW50X3Jlc3BvbnNlX2Zyb21fZGljdCA9IEFkZEV4Y2hhbmdlQWNjb3VudFJlc3BvbnNlLmZyb21fZGljdChhZGRfZXhjaGFuZ2VfYWNjb3VudF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AdditionalInfo.md b/docs/AdditionalInfo.md index 38c7ab4c..737e889a 100644 --- a/docs/AdditionalInfo.md +++ b/docs/AdditionalInfo.md @@ -1,32 +1 @@ -# AdditionalInfo - -Additional information related to the blockchain. This may include extra details about the blockchain network. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**estimated_annual_reward** | **float** | The estimated annual reward rate for the blockchain, represented as a decimal percentage value. | -**lockup_period** | **float** | The duration of the lockup period for certain actions on the blockchain, measured in milliseconds. | -**activation_period** | **float** | The duration of the activation period for certain actions on the blockchain, measured in milliseconds. | - -## Example - -```python -from fireblocks.models.additional_info import AdditionalInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of AdditionalInfo from a JSON string -additional_info_instance = AdditionalInfo.from_json(json) -# print the JSON string representation of the object -print(AdditionalInfo.to_json()) - -# convert the object into a dict -additional_info_dict = additional_info_instance.to_dict() -# create an instance of AdditionalInfo from a dict -additional_info_from_dict = AdditionalInfo.from_dict(additional_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBZGRpdGlvbmFsSW5mbwoKQWRkaXRpb25hbCBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIHRoZSBibG9ja2NoYWluLiBUaGlzIG1heSBpbmNsdWRlIGV4dHJhIGRldGFpbHMgYWJvdXQgdGhlIGJsb2NrY2hhaW4gbmV0d29yay4KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiplc3RpbWF0ZWRfYW5udWFsX3Jld2FyZCoqIHwgKipmbG9hdCoqIHwgVGhlIGVzdGltYXRlZCBhbm51YWwgcmV3YXJkIHJhdGUgZm9yIHRoZSBibG9ja2NoYWluLCByZXByZXNlbnRlZCBhcyBhIGRlY2ltYWwgcGVyY2VudGFnZSB2YWx1ZS4gfCAKKipsb2NrdXBfcGVyaW9kKiogfCAqKmZsb2F0KiogfCBUaGUgZHVyYXRpb24gb2YgdGhlIGxvY2t1cCBwZXJpb2QgZm9yIGNlcnRhaW4gYWN0aW9ucyBvbiB0aGUgYmxvY2tjaGFpbiwgbWVhc3VyZWQgaW4gbWlsbGlzZWNvbmRzLiB8IAoqKmFjdGl2YXRpb25fcGVyaW9kKiogfCAqKmZsb2F0KiogfCBUaGUgZHVyYXRpb24gb2YgdGhlIGFjdGl2YXRpb24gcGVyaW9kIGZvciBjZXJ0YWluIGFjdGlvbnMgb24gdGhlIGJsb2NrY2hhaW4sIG1lYXN1cmVkIGluIG1pbGxpc2Vjb25kcy4gfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZGl0aW9uYWxfaW5mbyBpbXBvcnQgQWRkaXRpb25hbEluZm8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkZGl0aW9uYWxJbmZvIGZyb20gYSBKU09OIHN0cmluZwphZGRpdGlvbmFsX2luZm9faW5zdGFuY2UgPSBBZGRpdGlvbmFsSW5mby5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBZGRpdGlvbmFsSW5mby50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphZGRpdGlvbmFsX2luZm9fZGljdCA9IGFkZGl0aW9uYWxfaW5mb19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWRkaXRpb25hbEluZm8gZnJvbSBhIGRpY3QKYWRkaXRpb25hbF9pbmZvX2Zyb21fZGljdCA9IEFkZGl0aW9uYWxJbmZvLmZyb21fZGljdChhZGRpdGlvbmFsX2luZm9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AdditionalInfoRequest.md b/docs/AdditionalInfoRequest.md index 1d912dc9..38550834 100644 --- a/docs/AdditionalInfoRequest.md +++ b/docs/AdditionalInfoRequest.md @@ -1,30 +1 @@ -# AdditionalInfoRequest - -External wallet request with additional payment information for various payment rails - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**additional_info** | [**AdditionalInfoRequestAdditionalInfo**](AdditionalInfoRequestAdditionalInfo.md) | | - -## Example - -```python -from fireblocks.models.additional_info_request import AdditionalInfoRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of AdditionalInfoRequest from a JSON string -additional_info_request_instance = AdditionalInfoRequest.from_json(json) -# print the JSON string representation of the object -print(AdditionalInfoRequest.to_json()) - -# convert the object into a dict -additional_info_request_dict = additional_info_request_instance.to_dict() -# create an instance of AdditionalInfoRequest from a dict -additional_info_request_from_dict = AdditionalInfoRequest.from_dict(additional_info_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBZGRpdGlvbmFsSW5mb1JlcXVlc3QKCkV4dGVybmFsIHdhbGxldCByZXF1ZXN0IHdpdGggYWRkaXRpb25hbCBwYXltZW50IGluZm9ybWF0aW9uIGZvciB2YXJpb3VzIHBheW1lbnQgcmFpbHMKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphZGRpdGlvbmFsX2luZm8qKiB8IFsqKkFkZGl0aW9uYWxJbmZvUmVxdWVzdEFkZGl0aW9uYWxJbmZvKipdKEFkZGl0aW9uYWxJbmZvUmVxdWVzdEFkZGl0aW9uYWxJbmZvLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkaXRpb25hbF9pbmZvX3JlcXVlc3QgaW1wb3J0IEFkZGl0aW9uYWxJbmZvUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWRkaXRpb25hbEluZm9SZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwphZGRpdGlvbmFsX2luZm9fcmVxdWVzdF9pbnN0YW5jZSA9IEFkZGl0aW9uYWxJbmZvUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBZGRpdGlvbmFsSW5mb1JlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYWRkaXRpb25hbF9pbmZvX3JlcXVlc3RfZGljdCA9IGFkZGl0aW9uYWxfaW5mb19yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGRpdGlvbmFsSW5mb1JlcXVlc3QgZnJvbSBhIGRpY3QKYWRkaXRpb25hbF9pbmZvX3JlcXVlc3RfZnJvbV9kaWN0ID0gQWRkaXRpb25hbEluZm9SZXF1ZXN0LmZyb21fZGljdChhZGRpdGlvbmFsX2luZm9fcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AdditionalInfoRequestAdditionalInfo.md b/docs/AdditionalInfoRequestAdditionalInfo.md index 066973e1..23a378a9 100644 --- a/docs/AdditionalInfoRequestAdditionalInfo.md +++ b/docs/AdditionalInfoRequestAdditionalInfo.md @@ -1,84 +1 @@ -# AdditionalInfoRequestAdditionalInfo - -Additional payment information based on the payment rail type - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_holder_given_name** | **str** | The given name (first name) of the account holder | -**account_holder_surname** | **str** | The surname (last name) of the account holder | -**account_holder_city** | **str** | The city where the account holder resides | -**account_holder_country** | **str** | The country where the account holder resides (ISO 3166-1 alpha-2 code) | -**account_holder_address1** | **str** | The primary address line of the account holder | -**account_holder_address2** | **str** | The secondary address line of the account holder (optional) | [optional] -**account_holder_district** | **str** | The district or region where the account holder resides | [optional] -**account_holder_postal_code** | **str** | The postal code of the account holder's address | -**iban** | **str** | The International Bank Account Number (IBAN) | -**iban_city** | **str** | The city associated with the IBAN | -**iban_country** | **str** | The country associated with the IBAN (ISO 3166-1 alpha-2 code) | -**aba_routing_number** | **str** | The ABA routing number for the bank | -**aba_account_number** | **str** | The account number at the bank | -**aba_country** | **str** | The country for the ABA transfer (ISO 3166-1 alpha-2 code) | -**spei_clabe** | **str** | The CLABE (Clave Bancaria Estandarizada) number for SPEI transfers | -**spei_name** | **str** | The name associated with the SPEI account | [optional] -**rail** | **str** | The payment rail type for CHAPS transfers | -**addressing_system** | **str** | The addressing system used for CHAPS transfers | -**country** | **str** | The country for the transfer (ISO 3166-1 alpha-2 code) | -**bank_name** | **str** | The name of the bank | -**beneficiary_rfc** | **str** | The RFC (Registro Federal de Contribuyentes) of the beneficiary | [optional] -**sender_document_id** | **str** | The document ID of the sender | [optional] -**clabe** | **str** | The CLABE (Clave Bancaria Estandarizada) number | -**pix_key** | **str** | The PIX key used for the transfer | -**bank_code** | **str** | The bank code or identifier | -**key_type** | **str** | The type of PIX key being used | -**account_holder_address** | **str** | The address of the account holder | [optional] -**bic** | **str** | The Bank Identifier Code (BIC/SWIFT code) | [optional] -**bank_branch** | **str** | The bank branch information | [optional] -**bank_address** | **str** | The address of the bank | [optional] -**purpose_code** | **str** | The purpose code for the transfer | [optional] -**tax_id** | **str** | The tax identification number | [optional] -**account_number** | **str** | UK bank account number | -**routing_number** | **str** | The bank routing number (ABA routing number) | -**account_type** | **str** | The type of bank account | -**swift_code** | **str** | The SWIFT/BIC code of the bank | -**bank_address_line** | **str** | The street address of the bank | -**bank_address_city** | **str** | The city where the bank is located | -**bank_address_state** | **str** | The state where the bank is located | [optional] -**bank_address_country** | **str** | The country where the bank is located (ISO 3166-1 alpha-2 code) | -**bank_address_postal_code** | **str** | The postal code of the bank's address | -**branch_number** | **str** | The branch number of the bank | [optional] -**mobile_phone_number** | **str** | The mobile phone number associated with the mobile money account | -**provider** | **str** | The mobile money service provider | -**beneficiary_document_id** | **str** | The document ID of the beneficiary | [optional] -**beneficiary_relationship** | **str** | The relationship between sender and beneficiary | [optional] -**recipient_handle_type** | **str** | The type of recipient handler being used | -**recipient_handle_value** | **str** | Email address registered for Interac e-Transfer | -**message** | **str** | The message to be sent to the recipient | -**value** | **str** | The PayID identifier (email, phone, ABN, or organization ID) | -**type** | **str** | The type of PayID being used | -**bsb** | **str** | Bank State Branch (BSB) number (6 digits, format XXX-XXX) | [optional] -**sort_code** | **str** | UK bank sort code (format XX-XX-XX) | -**bank_account_country** | **str** | CHAPS bank account holder name | -**bank_account_holder_name** | **str** | CHAPS bank account holder name | - -## Example - -```python -from fireblocks.models.additional_info_request_additional_info import AdditionalInfoRequestAdditionalInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of AdditionalInfoRequestAdditionalInfo from a JSON string -additional_info_request_additional_info_instance = AdditionalInfoRequestAdditionalInfo.from_json(json) -# print the JSON string representation of the object -print(AdditionalInfoRequestAdditionalInfo.to_json()) - -# convert the object into a dict -additional_info_request_additional_info_dict = additional_info_request_additional_info_instance.to_dict() -# create an instance of AdditionalInfoRequestAdditionalInfo from a dict -additional_info_request_additional_info_from_dict = AdditionalInfoRequestAdditionalInfo.from_dict(additional_info_request_additional_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBZGRpdGlvbmFsSW5mb1JlcXVlc3RBZGRpdGlvbmFsSW5mbwoKQWRkaXRpb25hbCBwYXltZW50IGluZm9ybWF0aW9uIGJhc2VkIG9uIHRoZSBwYXltZW50IHJhaWwgdHlwZQoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFjY291bnRfaG9sZGVyX2dpdmVuX25hbWUqKiB8ICoqc3RyKiogfCBUaGUgZ2l2ZW4gbmFtZSAoZmlyc3QgbmFtZSkgb2YgdGhlIGFjY291bnQgaG9sZGVyIHwgCioqYWNjb3VudF9ob2xkZXJfc3VybmFtZSoqIHwgKipzdHIqKiB8IFRoZSBzdXJuYW1lIChsYXN0IG5hbWUpIG9mIHRoZSBhY2NvdW50IGhvbGRlciB8IAoqKmFjY291bnRfaG9sZGVyX2NpdHkqKiB8ICoqc3RyKiogfCBUaGUgY2l0eSB3aGVyZSB0aGUgYWNjb3VudCBob2xkZXIgcmVzaWRlcyB8IAoqKmFjY291bnRfaG9sZGVyX2NvdW50cnkqKiB8ICoqc3RyKiogfCBUaGUgY291bnRyeSB3aGVyZSB0aGUgYWNjb3VudCBob2xkZXIgcmVzaWRlcyAoSVNPIDMxNjYtMSBhbHBoYS0yIGNvZGUpIHwgCioqYWNjb3VudF9ob2xkZXJfYWRkcmVzczEqKiB8ICoqc3RyKiogfCBUaGUgcHJpbWFyeSBhZGRyZXNzIGxpbmUgb2YgdGhlIGFjY291bnQgaG9sZGVyIHwgCioqYWNjb3VudF9ob2xkZXJfYWRkcmVzczIqKiB8ICoqc3RyKiogfCBUaGUgc2Vjb25kYXJ5IGFkZHJlc3MgbGluZSBvZiB0aGUgYWNjb3VudCBob2xkZXIgKG9wdGlvbmFsKSB8IFtvcHRpb25hbF0gCioqYWNjb3VudF9ob2xkZXJfZGlzdHJpY3QqKiB8ICoqc3RyKiogfCBUaGUgZGlzdHJpY3Qgb3IgcmVnaW9uIHdoZXJlIHRoZSBhY2NvdW50IGhvbGRlciByZXNpZGVzIHwgW29wdGlvbmFsXSAKKiphY2NvdW50X2hvbGRlcl9wb3N0YWxfY29kZSoqIHwgKipzdHIqKiB8IFRoZSBwb3N0YWwgY29kZSBvZiB0aGUgYWNjb3VudCBob2xkZXImIzM5O3MgYWRkcmVzcyB8IAoqKmliYW4qKiB8ICoqc3RyKiogfCBUaGUgSW50ZXJuYXRpb25hbCBCYW5rIEFjY291bnQgTnVtYmVyIChJQkFOKSB8IAoqKmliYW5fY2l0eSoqIHwgKipzdHIqKiB8IFRoZSBjaXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgSUJBTiB8IAoqKmliYW5fY291bnRyeSoqIHwgKipzdHIqKiB8IFRoZSBjb3VudHJ5IGFzc29jaWF0ZWQgd2l0aCB0aGUgSUJBTiAoSVNPIDMxNjYtMSBhbHBoYS0yIGNvZGUpIHwgCioqYWJhX3JvdXRpbmdfbnVtYmVyKiogfCAqKnN0cioqIHwgVGhlIEFCQSByb3V0aW5nIG51bWJlciBmb3IgdGhlIGJhbmsgfCAKKiphYmFfYWNjb3VudF9udW1iZXIqKiB8ICoqc3RyKiogfCBUaGUgYWNjb3VudCBudW1iZXIgYXQgdGhlIGJhbmsgfCAKKiphYmFfY291bnRyeSoqIHwgKipzdHIqKiB8IFRoZSBjb3VudHJ5IGZvciB0aGUgQUJBIHRyYW5zZmVyIChJU08gMzE2Ni0xIGFscGhhLTIgY29kZSkgfCAKKipzcGVpX2NsYWJlKiogfCAqKnN0cioqIHwgVGhlIENMQUJFIChDbGF2ZSBCYW5jYXJpYSBFc3RhbmRhcml6YWRhKSBudW1iZXIgZm9yIFNQRUkgdHJhbnNmZXJzIHwgCioqc3BlaV9uYW1lKiogfCAqKnN0cioqIHwgVGhlIG5hbWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBTUEVJIGFjY291bnQgfCBbb3B0aW9uYWxdIAoqKnJhaWwqKiB8ICoqc3RyKiogfCBUaGUgcGF5bWVudCByYWlsIHR5cGUgZm9yIENIQVBTIHRyYW5zZmVycyB8IAoqKmFkZHJlc3Npbmdfc3lzdGVtKiogfCAqKnN0cioqIHwgVGhlIGFkZHJlc3Npbmcgc3lzdGVtIHVzZWQgZm9yIENIQVBTIHRyYW5zZmVycyB8IAoqKmNvdW50cnkqKiB8ICoqc3RyKiogfCBUaGUgY291bnRyeSBmb3IgdGhlIHRyYW5zZmVyIChJU08gMzE2Ni0xIGFscGhhLTIgY29kZSkgfCAKKipiYW5rX25hbWUqKiB8ICoqc3RyKiogfCBUaGUgbmFtZSBvZiB0aGUgYmFuayB8IAoqKmJlbmVmaWNpYXJ5X3JmYyoqIHwgKipzdHIqKiB8IFRoZSBSRkMgKFJlZ2lzdHJvIEZlZGVyYWwgZGUgQ29udHJpYnV5ZW50ZXMpIG9mIHRoZSBiZW5lZmljaWFyeSB8IFtvcHRpb25hbF0gCioqc2VuZGVyX2RvY3VtZW50X2lkKiogfCAqKnN0cioqIHwgVGhlIGRvY3VtZW50IElEIG9mIHRoZSBzZW5kZXIgfCBbb3B0aW9uYWxdIAoqKmNsYWJlKiogfCAqKnN0cioqIHwgVGhlIENMQUJFIChDbGF2ZSBCYW5jYXJpYSBFc3RhbmRhcml6YWRhKSBudW1iZXIgfCAKKipwaXhfa2V5KiogfCAqKnN0cioqIHwgVGhlIFBJWCBrZXkgdXNlZCBmb3IgdGhlIHRyYW5zZmVyIHwgCioqYmFua19jb2RlKiogfCAqKnN0cioqIHwgVGhlIGJhbmsgY29kZSBvciBpZGVudGlmaWVyIHwgCioqa2V5X3R5cGUqKiB8ICoqc3RyKiogfCBUaGUgdHlwZSBvZiBQSVgga2V5IGJlaW5nIHVzZWQgfCAKKiphY2NvdW50X2hvbGRlcl9hZGRyZXNzKiogfCAqKnN0cioqIHwgVGhlIGFkZHJlc3Mgb2YgdGhlIGFjY291bnQgaG9sZGVyIHwgW29wdGlvbmFsXSAKKipiaWMqKiB8ICoqc3RyKiogfCBUaGUgQmFuayBJZGVudGlmaWVyIENvZGUgKEJJQy9TV0lGVCBjb2RlKSB8IFtvcHRpb25hbF0gCioqYmFua19icmFuY2gqKiB8ICoqc3RyKiogfCBUaGUgYmFuayBicmFuY2ggaW5mb3JtYXRpb24gfCBbb3B0aW9uYWxdIAoqKmJhbmtfYWRkcmVzcyoqIHwgKipzdHIqKiB8IFRoZSBhZGRyZXNzIG9mIHRoZSBiYW5rIHwgW29wdGlvbmFsXSAKKipwdXJwb3NlX2NvZGUqKiB8ICoqc3RyKiogfCBUaGUgcHVycG9zZSBjb2RlIGZvciB0aGUgdHJhbnNmZXIgfCBbb3B0aW9uYWxdIAoqKnRheF9pZCoqIHwgKipzdHIqKiB8IFRoZSB0YXggaWRlbnRpZmljYXRpb24gbnVtYmVyIHwgW29wdGlvbmFsXSAKKiphY2NvdW50X251bWJlcioqIHwgKipzdHIqKiB8IFVLIGJhbmsgYWNjb3VudCBudW1iZXIgfCAKKipyb3V0aW5nX251bWJlcioqIHwgKipzdHIqKiB8IFRoZSBiYW5rIHJvdXRpbmcgbnVtYmVyIChBQkEgcm91dGluZyBudW1iZXIpIHwgCioqYWNjb3VudF90eXBlKiogfCAqKnN0cioqIHwgVGhlIHR5cGUgb2YgYmFuayBhY2NvdW50IHwgCioqc3dpZnRfY29kZSoqIHwgKipzdHIqKiB8IFRoZSBTV0lGVC9CSUMgY29kZSBvZiB0aGUgYmFuayB8IAoqKmJhbmtfYWRkcmVzc19saW5lKiogfCAqKnN0cioqIHwgVGhlIHN0cmVldCBhZGRyZXNzIG9mIHRoZSBiYW5rIHwgCioqYmFua19hZGRyZXNzX2NpdHkqKiB8ICoqc3RyKiogfCBUaGUgY2l0eSB3aGVyZSB0aGUgYmFuayBpcyBsb2NhdGVkIHwgCioqYmFua19hZGRyZXNzX3N0YXRlKiogfCAqKnN0cioqIHwgVGhlIHN0YXRlIHdoZXJlIHRoZSBiYW5rIGlzIGxvY2F0ZWQgfCBbb3B0aW9uYWxdIAoqKmJhbmtfYWRkcmVzc19jb3VudHJ5KiogfCAqKnN0cioqIHwgVGhlIGNvdW50cnkgd2hlcmUgdGhlIGJhbmsgaXMgbG9jYXRlZCAoSVNPIDMxNjYtMSBhbHBoYS0yIGNvZGUpIHwgCioqYmFua19hZGRyZXNzX3Bvc3RhbF9jb2RlKiogfCAqKnN0cioqIHwgVGhlIHBvc3RhbCBjb2RlIG9mIHRoZSBiYW5rJiMzOTtzIGFkZHJlc3MgfCAKKipicmFuY2hfbnVtYmVyKiogfCAqKnN0cioqIHwgVGhlIGJyYW5jaCBudW1iZXIgb2YgdGhlIGJhbmsgfCBbb3B0aW9uYWxdIAoqKm1vYmlsZV9waG9uZV9udW1iZXIqKiB8ICoqc3RyKiogfCBUaGUgbW9iaWxlIHBob25lIG51bWJlciBhc3NvY2lhdGVkIHdpdGggdGhlIG1vYmlsZSBtb25leSBhY2NvdW50IHwgCioqcHJvdmlkZXIqKiB8ICoqc3RyKiogfCBUaGUgbW9iaWxlIG1vbmV5IHNlcnZpY2UgcHJvdmlkZXIgfCAKKipiZW5lZmljaWFyeV9kb2N1bWVudF9pZCoqIHwgKipzdHIqKiB8IFRoZSBkb2N1bWVudCBJRCBvZiB0aGUgYmVuZWZpY2lhcnkgfCBbb3B0aW9uYWxdIAoqKmJlbmVmaWNpYXJ5X3JlbGF0aW9uc2hpcCoqIHwgKipzdHIqKiB8IFRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBzZW5kZXIgYW5kIGJlbmVmaWNpYXJ5IHwgW29wdGlvbmFsXSAKKipyZWNpcGllbnRfaGFuZGxlX3R5cGUqKiB8ICoqc3RyKiogfCBUaGUgdHlwZSBvZiByZWNpcGllbnQgaGFuZGxlciBiZWluZyB1c2VkIHwgCioqcmVjaXBpZW50X2hhbmRsZV92YWx1ZSoqIHwgKipzdHIqKiB8IEVtYWlsIGFkZHJlc3MgcmVnaXN0ZXJlZCBmb3IgSW50ZXJhYyBlLVRyYW5zZmVyIHwgCioqbWVzc2FnZSoqIHwgKipzdHIqKiB8IFRoZSBtZXNzYWdlIHRvIGJlIHNlbnQgdG8gdGhlIHJlY2lwaWVudCB8IAoqKnZhbHVlKiogfCAqKnN0cioqIHwgVGhlIFBheUlEIGlkZW50aWZpZXIgKGVtYWlsLCBwaG9uZSwgQUJOLCBvciBvcmdhbml6YXRpb24gSUQpIHwgCioqdHlwZSoqIHwgKipzdHIqKiB8IFRoZSB0eXBlIG9mIFBheUlEIGJlaW5nIHVzZWQgfCAKKipic2IqKiB8ICoqc3RyKiogfCBCYW5rIFN0YXRlIEJyYW5jaCAoQlNCKSBudW1iZXIgKDYgZGlnaXRzLCBmb3JtYXQgWFhYLVhYWCkgfCBbb3B0aW9uYWxdIAoqKnNvcnRfY29kZSoqIHwgKipzdHIqKiB8IFVLIGJhbmsgc29ydCBjb2RlIChmb3JtYXQgWFgtWFgtWFgpIHwgCioqYmFua19hY2NvdW50X2NvdW50cnkqKiB8ICoqc3RyKiogfCBDSEFQUyBiYW5rIGFjY291bnQgaG9sZGVyIG5hbWUgfCAKKipiYW5rX2FjY291bnRfaG9sZGVyX25hbWUqKiB8ICoqc3RyKiogfCBDSEFQUyBiYW5rIGFjY291bnQgaG9sZGVyIG5hbWUgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZGl0aW9uYWxfaW5mb19yZXF1ZXN0X2FkZGl0aW9uYWxfaW5mbyBpbXBvcnQgQWRkaXRpb25hbEluZm9SZXF1ZXN0QWRkaXRpb25hbEluZm8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkZGl0aW9uYWxJbmZvUmVxdWVzdEFkZGl0aW9uYWxJbmZvIGZyb20gYSBKU09OIHN0cmluZwphZGRpdGlvbmFsX2luZm9fcmVxdWVzdF9hZGRpdGlvbmFsX2luZm9faW5zdGFuY2UgPSBBZGRpdGlvbmFsSW5mb1JlcXVlc3RBZGRpdGlvbmFsSW5mby5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBZGRpdGlvbmFsSW5mb1JlcXVlc3RBZGRpdGlvbmFsSW5mby50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphZGRpdGlvbmFsX2luZm9fcmVxdWVzdF9hZGRpdGlvbmFsX2luZm9fZGljdCA9IGFkZGl0aW9uYWxfaW5mb19yZXF1ZXN0X2FkZGl0aW9uYWxfaW5mb19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWRkaXRpb25hbEluZm9SZXF1ZXN0QWRkaXRpb25hbEluZm8gZnJvbSBhIGRpY3QKYWRkaXRpb25hbF9pbmZvX3JlcXVlc3RfYWRkaXRpb25hbF9pbmZvX2Zyb21fZGljdCA9IEFkZGl0aW9uYWxJbmZvUmVxdWVzdEFkZGl0aW9uYWxJbmZvLmZyb21fZGljdChhZGRpdGlvbmFsX2luZm9fcmVxdWVzdF9hZGRpdGlvbmFsX2luZm9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AddressBalanceItemDto.md b/docs/AddressBalanceItemDto.md index f0b078e6..c9aa46f8 100644 --- a/docs/AddressBalanceItemDto.md +++ b/docs/AddressBalanceItemDto.md @@ -1,31 +1 @@ -# AddressBalanceItemDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_address** | **str** | The account address | -**balance** | **str** | The current balance of the account | -**last_updated** | **datetime** | The timestamp when this balance was last updated | - -## Example - -```python -from fireblocks.models.address_balance_item_dto import AddressBalanceItemDto - -# TODO update the JSON string below -json = "{}" -# create an instance of AddressBalanceItemDto from a JSON string -address_balance_item_dto_instance = AddressBalanceItemDto.from_json(json) -# print the JSON string representation of the object -print(AddressBalanceItemDto.to_json()) - -# convert the object into a dict -address_balance_item_dto_dict = address_balance_item_dto_instance.to_dict() -# create an instance of AddressBalanceItemDto from a dict -address_balance_item_dto_from_dict = AddressBalanceItemDto.from_dict(address_balance_item_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBZGRyZXNzQmFsYW5jZUl0ZW1EdG8KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYWNjb3VudF9hZGRyZXNzKiogfCAqKnN0cioqIHwgVGhlIGFjY291bnQgYWRkcmVzcyB8IAoqKmJhbGFuY2UqKiB8ICoqc3RyKiogfCBUaGUgY3VycmVudCBiYWxhbmNlIG9mIHRoZSBhY2NvdW50IHwgCioqbGFzdF91cGRhdGVkKiogfCAqKmRhdGV0aW1lKiogfCBUaGUgdGltZXN0YW1wIHdoZW4gdGhpcyBiYWxhbmNlIHdhcyBsYXN0IHVwZGF0ZWQgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZHJlc3NfYmFsYW5jZV9pdGVtX2R0byBpbXBvcnQgQWRkcmVzc0JhbGFuY2VJdGVtRHRvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGRyZXNzQmFsYW5jZUl0ZW1EdG8gZnJvbSBhIEpTT04gc3RyaW5nCmFkZHJlc3NfYmFsYW5jZV9pdGVtX2R0b19pbnN0YW5jZSA9IEFkZHJlc3NCYWxhbmNlSXRlbUR0by5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBZGRyZXNzQmFsYW5jZUl0ZW1EdG8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYWRkcmVzc19iYWxhbmNlX2l0ZW1fZHRvX2RpY3QgPSBhZGRyZXNzX2JhbGFuY2VfaXRlbV9kdG9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkZHJlc3NCYWxhbmNlSXRlbUR0byBmcm9tIGEgZGljdAphZGRyZXNzX2JhbGFuY2VfaXRlbV9kdG9fZnJvbV9kaWN0ID0gQWRkcmVzc0JhbGFuY2VJdGVtRHRvLmZyb21fZGljdChhZGRyZXNzX2JhbGFuY2VfaXRlbV9kdG9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AddressBalancePagedResponse.md b/docs/AddressBalancePagedResponse.md index 1743314a..bf2c5bec 100644 --- a/docs/AddressBalancePagedResponse.md +++ b/docs/AddressBalancePagedResponse.md @@ -1,32 +1 @@ -# AddressBalancePagedResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[AddressBalanceItemDto]**](AddressBalanceItemDto.md) | Array of address balance data | -**next** | **str** | Cursor for next page | [optional] -**prev** | **str** | Cursor for previous page (reserved for future support) | [optional] -**total** | **float** | Total count of items | [optional] - -## Example - -```python -from fireblocks.models.address_balance_paged_response import AddressBalancePagedResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of AddressBalancePagedResponse from a JSON string -address_balance_paged_response_instance = AddressBalancePagedResponse.from_json(json) -# print the JSON string representation of the object -print(AddressBalancePagedResponse.to_json()) - -# convert the object into a dict -address_balance_paged_response_dict = address_balance_paged_response_instance.to_dict() -# create an instance of AddressBalancePagedResponse from a dict -address_balance_paged_response_from_dict = AddressBalancePagedResponse.from_dict(address_balance_paged_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBZGRyZXNzQmFsYW5jZVBhZ2VkUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZGF0YSoqIHwgWyoqTGlzdFtBZGRyZXNzQmFsYW5jZUl0ZW1EdG9dKipdKEFkZHJlc3NCYWxhbmNlSXRlbUR0by5tZCkgfCBBcnJheSBvZiBhZGRyZXNzIGJhbGFuY2UgZGF0YSB8IAoqKm5leHQqKiB8ICoqc3RyKiogfCBDdXJzb3IgZm9yIG5leHQgcGFnZSB8IFtvcHRpb25hbF0gCioqcHJldioqIHwgKipzdHIqKiB8IEN1cnNvciBmb3IgcHJldmlvdXMgcGFnZSAocmVzZXJ2ZWQgZm9yIGZ1dHVyZSBzdXBwb3J0KSB8IFtvcHRpb25hbF0gCioqdG90YWwqKiB8ICoqZmxvYXQqKiB8IFRvdGFsIGNvdW50IG9mIGl0ZW1zIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZHJlc3NfYmFsYW5jZV9wYWdlZF9yZXNwb25zZSBpbXBvcnQgQWRkcmVzc0JhbGFuY2VQYWdlZFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGRyZXNzQmFsYW5jZVBhZ2VkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmFkZHJlc3NfYmFsYW5jZV9wYWdlZF9yZXNwb25zZV9pbnN0YW5jZSA9IEFkZHJlc3NCYWxhbmNlUGFnZWRSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBZGRyZXNzQmFsYW5jZVBhZ2VkUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYWRkcmVzc19iYWxhbmNlX3BhZ2VkX3Jlc3BvbnNlX2RpY3QgPSBhZGRyZXNzX2JhbGFuY2VfcGFnZWRfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkZHJlc3NCYWxhbmNlUGFnZWRSZXNwb25zZSBmcm9tIGEgZGljdAphZGRyZXNzX2JhbGFuY2VfcGFnZWRfcmVzcG9uc2VfZnJvbV9kaWN0ID0gQWRkcmVzc0JhbGFuY2VQYWdlZFJlc3BvbnNlLmZyb21fZGljdChhZGRyZXNzX2JhbGFuY2VfcGFnZWRfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AddressNotAvailableError.md b/docs/AddressNotAvailableError.md index 7ec026d0..23e2707d 100644 --- a/docs/AddressNotAvailableError.md +++ b/docs/AddressNotAvailableError.md @@ -1,30 +1 @@ -# AddressNotAvailableError - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Conflict error message | -**code** | **float** | Error code | - -## Example - -```python -from fireblocks.models.address_not_available_error import AddressNotAvailableError - -# TODO update the JSON string below -json = "{}" -# create an instance of AddressNotAvailableError from a JSON string -address_not_available_error_instance = AddressNotAvailableError.from_json(json) -# print the JSON string representation of the object -print(AddressNotAvailableError.to_json()) - -# convert the object into a dict -address_not_available_error_dict = address_not_available_error_instance.to_dict() -# create an instance of AddressNotAvailableError from a dict -address_not_available_error_from_dict = AddressNotAvailableError.from_dict(address_not_available_error_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBZGRyZXNzTm90QXZhaWxhYmxlRXJyb3IKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbWVzc2FnZSoqIHwgKipzdHIqKiB8IENvbmZsaWN0IGVycm9yIG1lc3NhZ2UgfCAKKipjb2RlKiogfCAqKmZsb2F0KiogfCBFcnJvciBjb2RlIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hZGRyZXNzX25vdF9hdmFpbGFibGVfZXJyb3IgaW1wb3J0IEFkZHJlc3NOb3RBdmFpbGFibGVFcnJvcgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWRkcmVzc05vdEF2YWlsYWJsZUVycm9yIGZyb20gYSBKU09OIHN0cmluZwphZGRyZXNzX25vdF9hdmFpbGFibGVfZXJyb3JfaW5zdGFuY2UgPSBBZGRyZXNzTm90QXZhaWxhYmxlRXJyb3IuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQWRkcmVzc05vdEF2YWlsYWJsZUVycm9yLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFkZHJlc3Nfbm90X2F2YWlsYWJsZV9lcnJvcl9kaWN0ID0gYWRkcmVzc19ub3RfYXZhaWxhYmxlX2Vycm9yX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGRyZXNzTm90QXZhaWxhYmxlRXJyb3IgZnJvbSBhIGRpY3QKYWRkcmVzc19ub3RfYXZhaWxhYmxlX2Vycm9yX2Zyb21fZGljdCA9IEFkZHJlc3NOb3RBdmFpbGFibGVFcnJvci5mcm9tX2RpY3QoYWRkcmVzc19ub3RfYXZhaWxhYmxlX2Vycm9yX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AddressRegistryError.md b/docs/AddressRegistryError.md index 95c97651..9c556781 100644 --- a/docs/AddressRegistryError.md +++ b/docs/AddressRegistryError.md @@ -1,31 +1 @@ -# AddressRegistryError - -Error body for address-registry 4xx and 5xx. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**code** | **int** | Numeric error code (2140–2143) for 403, 404 and 5xx responses. | [optional] -**message** | **str** | Human-readable error message | - -## Example - -```python -from fireblocks.models.address_registry_error import AddressRegistryError - -# TODO update the JSON string below -json = "{}" -# create an instance of AddressRegistryError from a JSON string -address_registry_error_instance = AddressRegistryError.from_json(json) -# print the JSON string representation of the object -print(AddressRegistryError.to_json()) - -# convert the object into a dict -address_registry_error_dict = address_registry_error_instance.to_dict() -# create an instance of AddressRegistryError from a dict -address_registry_error_from_dict = AddressRegistryError.from_dict(address_registry_error_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBZGRyZXNzUmVnaXN0cnlFcnJvcgoKRXJyb3IgYm9keSBmb3IgYWRkcmVzcy1yZWdpc3RyeSA0eHggYW5kIDV4eC4KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipjb2RlKiogfCAqKmludCoqIHwgTnVtZXJpYyBlcnJvciBjb2RlICgyMTQw4oCTMjE0MykgZm9yIDQwMywgNDA0IGFuZCA1eHggcmVzcG9uc2VzLiB8IFtvcHRpb25hbF0gCioqbWVzc2FnZSoqIHwgKipzdHIqKiB8IEh1bWFuLXJlYWRhYmxlIGVycm9yIG1lc3NhZ2UgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZHJlc3NfcmVnaXN0cnlfZXJyb3IgaW1wb3J0IEFkZHJlc3NSZWdpc3RyeUVycm9yCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGRyZXNzUmVnaXN0cnlFcnJvciBmcm9tIGEgSlNPTiBzdHJpbmcKYWRkcmVzc19yZWdpc3RyeV9lcnJvcl9pbnN0YW5jZSA9IEFkZHJlc3NSZWdpc3RyeUVycm9yLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFkZHJlc3NSZWdpc3RyeUVycm9yLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFkZHJlc3NfcmVnaXN0cnlfZXJyb3JfZGljdCA9IGFkZHJlc3NfcmVnaXN0cnlfZXJyb3JfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkZHJlc3NSZWdpc3RyeUVycm9yIGZyb20gYSBkaWN0CmFkZHJlc3NfcmVnaXN0cnlfZXJyb3JfZnJvbV9kaWN0ID0gQWRkcmVzc1JlZ2lzdHJ5RXJyb3IuZnJvbV9kaWN0KGFkZHJlc3NfcmVnaXN0cnlfZXJyb3JfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AddressRegistryLegalEntity.md b/docs/AddressRegistryLegalEntity.md index e7f5c663..4a774f19 100644 --- a/docs/AddressRegistryLegalEntity.md +++ b/docs/AddressRegistryLegalEntity.md @@ -1,32 +1 @@ -# AddressRegistryLegalEntity - -Legal entity resolved for an address-registry lookup - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**company_name** | **str** | Legal entity / company display name | -**country_code** | **str** | Jurisdiction country code (e.g. ISO 3166-1 alpha-2) | -**company_id** | **str** | Company identifier for the resolved legal entity (UUID) | - -## Example - -```python -from fireblocks.models.address_registry_legal_entity import AddressRegistryLegalEntity - -# TODO update the JSON string below -json = "{}" -# create an instance of AddressRegistryLegalEntity from a JSON string -address_registry_legal_entity_instance = AddressRegistryLegalEntity.from_json(json) -# print the JSON string representation of the object -print(AddressRegistryLegalEntity.to_json()) - -# convert the object into a dict -address_registry_legal_entity_dict = address_registry_legal_entity_instance.to_dict() -# create an instance of AddressRegistryLegalEntity from a dict -address_registry_legal_entity_from_dict = AddressRegistryLegalEntity.from_dict(address_registry_legal_entity_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBZGRyZXNzUmVnaXN0cnlMZWdhbEVudGl0eQoKTGVnYWwgZW50aXR5IHJlc29sdmVkIGZvciBhbiBhZGRyZXNzLXJlZ2lzdHJ5IGxvb2t1cAoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmNvbXBhbnlfbmFtZSoqIHwgKipzdHIqKiB8IExlZ2FsIGVudGl0eSAvIGNvbXBhbnkgZGlzcGxheSBuYW1lIHwgCioqY291bnRyeV9jb2RlKiogfCAqKnN0cioqIHwgSnVyaXNkaWN0aW9uIGNvdW50cnkgY29kZSAoZS5nLiBJU08gMzE2Ni0xIGFscGhhLTIpIHwgCioqY29tcGFueV9pZCoqIHwgKipzdHIqKiB8IENvbXBhbnkgaWRlbnRpZmllciBmb3IgdGhlIHJlc29sdmVkIGxlZ2FsIGVudGl0eSAoVVVJRCkgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZHJlc3NfcmVnaXN0cnlfbGVnYWxfZW50aXR5IGltcG9ydCBBZGRyZXNzUmVnaXN0cnlMZWdhbEVudGl0eQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWRkcmVzc1JlZ2lzdHJ5TGVnYWxFbnRpdHkgZnJvbSBhIEpTT04gc3RyaW5nCmFkZHJlc3NfcmVnaXN0cnlfbGVnYWxfZW50aXR5X2luc3RhbmNlID0gQWRkcmVzc1JlZ2lzdHJ5TGVnYWxFbnRpdHkuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQWRkcmVzc1JlZ2lzdHJ5TGVnYWxFbnRpdHkudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYWRkcmVzc19yZWdpc3RyeV9sZWdhbF9lbnRpdHlfZGljdCA9IGFkZHJlc3NfcmVnaXN0cnlfbGVnYWxfZW50aXR5X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGRyZXNzUmVnaXN0cnlMZWdhbEVudGl0eSBmcm9tIGEgZGljdAphZGRyZXNzX3JlZ2lzdHJ5X2xlZ2FsX2VudGl0eV9mcm9tX2RpY3QgPSBBZGRyZXNzUmVnaXN0cnlMZWdhbEVudGl0eS5mcm9tX2RpY3QoYWRkcmVzc19yZWdpc3RyeV9sZWdhbF9lbnRpdHlfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AlertExposureTypeEnum.md b/docs/AlertExposureTypeEnum.md index 77e2f003..2e690b36 100644 --- a/docs/AlertExposureTypeEnum.md +++ b/docs/AlertExposureTypeEnum.md @@ -1,13 +1 @@ -# AlertExposureTypeEnum - -Alert exposure type (AlertExposureType enum) - -## Enum - -* `DIRECT` (value: `'DIRECT'`) - -* `INDIRECT` (value: `'INDIRECT'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBbGVydEV4cG9zdXJlVHlwZUVudW0KCkFsZXJ0IGV4cG9zdXJlIHR5cGUgKEFsZXJ0RXhwb3N1cmVUeXBlIGVudW0pCgojIyBFbnVtCgoqIGBESVJFQ1RgICh2YWx1ZTogYCdESVJFQ1QnYCkKCiogYElORElSRUNUYCAodmFsdWU6IGAnSU5ESVJFQ1QnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AlertLevelEnum.md b/docs/AlertLevelEnum.md index 21910667..8bda8c66 100644 --- a/docs/AlertLevelEnum.md +++ b/docs/AlertLevelEnum.md @@ -1,17 +1 @@ -# AlertLevelEnum - -Alert level severity - -## Enum - -* `SEVERE` (value: `'SEVERE'`) - -* `HIGH` (value: `'HIGH'`) - -* `MEDIUM` (value: `'MEDIUM'`) - -* `LOW` (value: `'LOW'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBbGVydExldmVsRW51bQoKQWxlcnQgbGV2ZWwgc2V2ZXJpdHkKCiMjIEVudW0KCiogYFNFVkVSRWAgKHZhbHVlOiBgJ1NFVkVSRSdgKQoKKiBgSElHSGAgKHZhbHVlOiBgJ0hJR0gnYCkKCiogYE1FRElVTWAgKHZhbHVlOiBgJ01FRElVTSdgKQoKKiBgTE9XYCAodmFsdWU6IGAnTE9XJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AmlAlert.md b/docs/AmlAlert.md index 2efd3b57..29c3fb50 100644 --- a/docs/AmlAlert.md +++ b/docs/AmlAlert.md @@ -1,38 +1 @@ -# AmlAlert - -AML alert information - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**alert_level** | [**AlertLevelEnum**](AlertLevelEnum.md) | | -**alert_name** | **str** | Name or type of the alert | [optional] -**category** | **str** | Alert category | [optional] -**service** | **str** | Service that generated the alert | [optional] -**external_id** | **str** | External identifier for the alert | -**alert_amount** | **float** | Amount associated with the alert | -**exposure_type** | [**AlertExposureTypeEnum**](AlertExposureTypeEnum.md) | | -**policy_action** | **str** | Recommended action based on policy | [optional] -**category_id** | **float** | Category identifier | [optional] - -## Example - -```python -from fireblocks.models.aml_alert import AmlAlert - -# TODO update the JSON string below -json = "{}" -# create an instance of AmlAlert from a JSON string -aml_alert_instance = AmlAlert.from_json(json) -# print the JSON string representation of the object -print(AmlAlert.to_json()) - -# convert the object into a dict -aml_alert_dict = aml_alert_instance.to_dict() -# create an instance of AmlAlert from a dict -aml_alert_from_dict = AmlAlert.from_dict(aml_alert_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBbWxBbGVydAoKQU1MIGFsZXJ0IGluZm9ybWF0aW9uCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYWxlcnRfbGV2ZWwqKiB8IFsqKkFsZXJ0TGV2ZWxFbnVtKipdKEFsZXJ0TGV2ZWxFbnVtLm1kKSB8ICB8IAoqKmFsZXJ0X25hbWUqKiB8ICoqc3RyKiogfCBOYW1lIG9yIHR5cGUgb2YgdGhlIGFsZXJ0IHwgW29wdGlvbmFsXSAKKipjYXRlZ29yeSoqIHwgKipzdHIqKiB8IEFsZXJ0IGNhdGVnb3J5IHwgW29wdGlvbmFsXSAKKipzZXJ2aWNlKiogfCAqKnN0cioqIHwgU2VydmljZSB0aGF0IGdlbmVyYXRlZCB0aGUgYWxlcnQgfCBbb3B0aW9uYWxdIAoqKmV4dGVybmFsX2lkKiogfCAqKnN0cioqIHwgRXh0ZXJuYWwgaWRlbnRpZmllciBmb3IgdGhlIGFsZXJ0IHwgCioqYWxlcnRfYW1vdW50KiogfCAqKmZsb2F0KiogfCBBbW91bnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBhbGVydCB8IAoqKmV4cG9zdXJlX3R5cGUqKiB8IFsqKkFsZXJ0RXhwb3N1cmVUeXBlRW51bSoqXShBbGVydEV4cG9zdXJlVHlwZUVudW0ubWQpIHwgIHwgCioqcG9saWN5X2FjdGlvbioqIHwgKipzdHIqKiB8IFJlY29tbWVuZGVkIGFjdGlvbiBiYXNlZCBvbiBwb2xpY3kgfCBbb3B0aW9uYWxdIAoqKmNhdGVnb3J5X2lkKiogfCAqKmZsb2F0KiogfCBDYXRlZ29yeSBpZGVudGlmaWVyIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF9hbGVydCBpbXBvcnQgQW1sQWxlcnQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtbEFsZXJ0IGZyb20gYSBKU09OIHN0cmluZwphbWxfYWxlcnRfaW5zdGFuY2UgPSBBbWxBbGVydC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBbWxBbGVydC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphbWxfYWxlcnRfZGljdCA9IGFtbF9hbGVydF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1sQWxlcnQgZnJvbSBhIGRpY3QKYW1sX2FsZXJ0X2Zyb21fZGljdCA9IEFtbEFsZXJ0LmZyb21fZGljdChhbWxfYWxlcnRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AmlMatchedRule.md b/docs/AmlMatchedRule.md index 79f07b89..df689730 100644 --- a/docs/AmlMatchedRule.md +++ b/docs/AmlMatchedRule.md @@ -1,32 +1 @@ -# AmlMatchedRule - -AML matched rule information - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**rule_id** | **str** | Identifier of the matched rule | [optional] -**rule_name** | **str** | Name of the matched rule | [optional] -**action** | [**PolicyVerdictActionEnum**](PolicyVerdictActionEnum.md) | | [optional] - -## Example - -```python -from fireblocks.models.aml_matched_rule import AmlMatchedRule - -# TODO update the JSON string below -json = "{}" -# create an instance of AmlMatchedRule from a JSON string -aml_matched_rule_instance = AmlMatchedRule.from_json(json) -# print the JSON string representation of the object -print(AmlMatchedRule.to_json()) - -# convert the object into a dict -aml_matched_rule_dict = aml_matched_rule_instance.to_dict() -# create an instance of AmlMatchedRule from a dict -aml_matched_rule_from_dict = AmlMatchedRule.from_dict(aml_matched_rule_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBbWxNYXRjaGVkUnVsZQoKQU1MIG1hdGNoZWQgcnVsZSBpbmZvcm1hdGlvbgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnJ1bGVfaWQqKiB8ICoqc3RyKiogfCBJZGVudGlmaWVyIG9mIHRoZSBtYXRjaGVkIHJ1bGUgfCBbb3B0aW9uYWxdIAoqKnJ1bGVfbmFtZSoqIHwgKipzdHIqKiB8IE5hbWUgb2YgdGhlIG1hdGNoZWQgcnVsZSB8IFtvcHRpb25hbF0gCioqYWN0aW9uKiogfCBbKipQb2xpY3lWZXJkaWN0QWN0aW9uRW51bSoqXShQb2xpY3lWZXJkaWN0QWN0aW9uRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX21hdGNoZWRfcnVsZSBpbXBvcnQgQW1sTWF0Y2hlZFJ1bGUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtbE1hdGNoZWRSdWxlIGZyb20gYSBKU09OIHN0cmluZwphbWxfbWF0Y2hlZF9ydWxlX2luc3RhbmNlID0gQW1sTWF0Y2hlZFJ1bGUuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQW1sTWF0Y2hlZFJ1bGUudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYW1sX21hdGNoZWRfcnVsZV9kaWN0ID0gYW1sX21hdGNoZWRfcnVsZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1sTWF0Y2hlZFJ1bGUgZnJvbSBhIGRpY3QKYW1sX21hdGNoZWRfcnVsZV9mcm9tX2RpY3QgPSBBbWxNYXRjaGVkUnVsZS5mcm9tX2RpY3QoYW1sX21hdGNoZWRfcnVsZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AmlRegistrationResult.md b/docs/AmlRegistrationResult.md index ecd7ca72..bb0cf842 100644 --- a/docs/AmlRegistrationResult.md +++ b/docs/AmlRegistrationResult.md @@ -1,31 +1 @@ -# AmlRegistrationResult - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**provider** | **str** | | [optional] -**success** | **bool** | | [optional] -**timestamp** | **float** | | [optional] - -## Example - -```python -from fireblocks.models.aml_registration_result import AmlRegistrationResult - -# TODO update the JSON string below -json = "{}" -# create an instance of AmlRegistrationResult from a JSON string -aml_registration_result_instance = AmlRegistrationResult.from_json(json) -# print the JSON string representation of the object -print(AmlRegistrationResult.to_json()) - -# convert the object into a dict -aml_registration_result_dict = aml_registration_result_instance.to_dict() -# create an instance of AmlRegistrationResult from a dict -aml_registration_result_from_dict = AmlRegistrationResult.from_dict(aml_registration_result_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBbWxSZWdpc3RyYXRpb25SZXN1bHQKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcHJvdmlkZXIqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKnN1Y2Nlc3MqKiB8ICoqYm9vbCoqIHwgIHwgW29wdGlvbmFsXSAKKip0aW1lc3RhbXAqKiB8ICoqZmxvYXQqKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfcmVnaXN0cmF0aW9uX3Jlc3VsdCBpbXBvcnQgQW1sUmVnaXN0cmF0aW9uUmVzdWx0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBbWxSZWdpc3RyYXRpb25SZXN1bHQgZnJvbSBhIEpTT04gc3RyaW5nCmFtbF9yZWdpc3RyYXRpb25fcmVzdWx0X2luc3RhbmNlID0gQW1sUmVnaXN0cmF0aW9uUmVzdWx0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFtbFJlZ2lzdHJhdGlvblJlc3VsdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphbWxfcmVnaXN0cmF0aW9uX3Jlc3VsdF9kaWN0ID0gYW1sX3JlZ2lzdHJhdGlvbl9yZXN1bHRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtbFJlZ2lzdHJhdGlvblJlc3VsdCBmcm9tIGEgZGljdAphbWxfcmVnaXN0cmF0aW9uX3Jlc3VsdF9mcm9tX2RpY3QgPSBBbWxSZWdpc3RyYXRpb25SZXN1bHQuZnJvbV9kaWN0KGFtbF9yZWdpc3RyYXRpb25fcmVzdWx0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AmlRegistrationResultFullPayload.md b/docs/AmlRegistrationResultFullPayload.md index 23860090..9f1f0305 100644 --- a/docs/AmlRegistrationResultFullPayload.md +++ b/docs/AmlRegistrationResultFullPayload.md @@ -1,32 +1 @@ -# AmlRegistrationResultFullPayload - -The results of the AML address registration. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**provider** | **str** | | [optional] -**success** | **bool** | | [optional] -**timestamp** | **float** | | [optional] - -## Example - -```python -from fireblocks.models.aml_registration_result_full_payload import AmlRegistrationResultFullPayload - -# TODO update the JSON string below -json = "{}" -# create an instance of AmlRegistrationResultFullPayload from a JSON string -aml_registration_result_full_payload_instance = AmlRegistrationResultFullPayload.from_json(json) -# print the JSON string representation of the object -print(AmlRegistrationResultFullPayload.to_json()) - -# convert the object into a dict -aml_registration_result_full_payload_dict = aml_registration_result_full_payload_instance.to_dict() -# create an instance of AmlRegistrationResultFullPayload from a dict -aml_registration_result_full_payload_from_dict = AmlRegistrationResultFullPayload.from_dict(aml_registration_result_full_payload_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBbWxSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZAoKVGhlIHJlc3VsdHMgb2YgdGhlIEFNTCBhZGRyZXNzIHJlZ2lzdHJhdGlvbi4KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipwcm92aWRlcioqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqc3VjY2VzcyoqIHwgKipib29sKiogfCAgfCBbb3B0aW9uYWxdIAoqKnRpbWVzdGFtcCoqIHwgKipmbG9hdCoqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF9yZWdpc3RyYXRpb25fcmVzdWx0X2Z1bGxfcGF5bG9hZCBpbXBvcnQgQW1sUmVnaXN0cmF0aW9uUmVzdWx0RnVsbFBheWxvYWQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtbFJlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkIGZyb20gYSBKU09OIHN0cmluZwphbWxfcmVnaXN0cmF0aW9uX3Jlc3VsdF9mdWxsX3BheWxvYWRfaW5zdGFuY2UgPSBBbWxSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBbWxSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphbWxfcmVnaXN0cmF0aW9uX3Jlc3VsdF9mdWxsX3BheWxvYWRfZGljdCA9IGFtbF9yZWdpc3RyYXRpb25fcmVzdWx0X2Z1bGxfcGF5bG9hZF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1sUmVnaXN0cmF0aW9uUmVzdWx0RnVsbFBheWxvYWQgZnJvbSBhIGRpY3QKYW1sX3JlZ2lzdHJhdGlvbl9yZXN1bHRfZnVsbF9wYXlsb2FkX2Zyb21fZGljdCA9IEFtbFJlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkLmZyb21fZGljdChhbWxfcmVnaXN0cmF0aW9uX3Jlc3VsdF9mdWxsX3BheWxvYWRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AmlResult.md b/docs/AmlResult.md index d31c6fa1..b12fa2de 100644 --- a/docs/AmlResult.md +++ b/docs/AmlResult.md @@ -1,33 +1 @@ -# AmlResult - -Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**alerts** | [**List[AmlAlert]**](AmlAlert.md) | List of AML alerts triggered during screening | [optional] -**provider_response** | **Dict[str, object]** | Complete response from the AML provider. This is a dynamic object that varies significantly between different AML providers (Chainalysis, Elliptic, etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - Chainalysis: Contains cluster info, risk scores, sanctions data - Elliptic: Includes risk assessment, entity types, compliance flags The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. | [optional] -**matched_rule** | [**AmlMatchedRule**](AmlMatchedRule.md) | | [optional] -**matched_alert** | [**AmlAlert**](AmlAlert.md) | | [optional] - -## Example - -```python -from fireblocks.models.aml_result import AmlResult - -# TODO update the JSON string below -json = "{}" -# create an instance of AmlResult from a JSON string -aml_result_instance = AmlResult.from_json(json) -# print the JSON string representation of the object -print(AmlResult.to_json()) - -# convert the object into a dict -aml_result_dict = aml_result_instance.to_dict() -# create an instance of AmlResult from a dict -aml_result_from_dict = AmlResult.from_dict(aml_result_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBbWxSZXN1bHQKCkRlcHJlY2F0ZWQ6IFRoaXMgZmllbGQgaXMgbm90IGN1cnJlbnRseSByZXR1cm5lZCBpbiB0aGUgQVBJIHJlc3BvbnNlLiBEZXRhaWxlZCBBTUwgc2NyZWVuaW5nIHJlc3VsdCBpbmZvcm1hdGlvbi4gQ29udGFpbnMgYWxlcnRzLCByaXNrIHNjb3JlcywgYW5kIG90aGVyIEFNTC1zcGVjaWZpYyBkYXRhIGZyb20gcHJvdmlkZXItc3BlY2lmaWMgcmVzcG9uc2VzLiAKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphbGVydHMqKiB8IFsqKkxpc3RbQW1sQWxlcnRdKipdKEFtbEFsZXJ0Lm1kKSB8IExpc3Qgb2YgQU1MIGFsZXJ0cyB0cmlnZ2VyZWQgZHVyaW5nIHNjcmVlbmluZyB8IFtvcHRpb25hbF0gCioqcHJvdmlkZXJfcmVzcG9uc2UqKiB8ICoqRGljdFtzdHIsIG9iamVjdF0qKiB8IENvbXBsZXRlIHJlc3BvbnNlIGZyb20gdGhlIEFNTCBwcm92aWRlci4gVGhpcyBpcyBhIGR5bmFtaWMgb2JqZWN0IHRoYXQgdmFyaWVzIHNpZ25pZmljYW50bHkgYmV0d2VlbiBkaWZmZXJlbnQgQU1MIHByb3ZpZGVycyAoQ2hhaW5hbHlzaXMsIEVsbGlwdGljLCBldGMuKS4gRWFjaCBwcm92aWRlciBoYXMgdGhlaXIgb3duIHByb3ByaWV0YXJ5IHJlc3BvbnNlIGZvcm1hdCBhbmQgc2NoZW1hLiAgRXhhbXBsZXMgb2YgcHJvdmlkZXItc3BlY2lmaWMgc3RydWN0dXJlczogLSBDaGFpbmFseXNpczogQ29udGFpbnMgY2x1c3RlciBpbmZvLCByaXNrIHNjb3Jlcywgc2FuY3Rpb25zIGRhdGEgLSBFbGxpcHRpYzogSW5jbHVkZXMgcmlzayBhc3Nlc3NtZW50LCBlbnRpdHkgdHlwZXMsIGNvbXBsaWFuY2UgZmxhZ3MgIFRoZSBzdHJ1Y3R1cmUgaXMgcHJvdmlkZXItZGVwZW5kZW50IGFuZCBjYW5ub3QgYmUgc3RhbmRhcmRpemVkIGFzIGVhY2ggdmVuZG9yIGltcGxlbWVudHMgdGhlaXIgb3duIHByb3ByaWV0YXJ5IGRhdGEgbW9kZWxzIGFuZCByZXNwb25zZSBmb3JtYXRzLiAgfCBbb3B0aW9uYWxdIAoqKm1hdGNoZWRfcnVsZSoqIHwgWyoqQW1sTWF0Y2hlZFJ1bGUqKl0oQW1sTWF0Y2hlZFJ1bGUubWQpIHwgIHwgW29wdGlvbmFsXSAKKiptYXRjaGVkX2FsZXJ0KiogfCBbKipBbWxBbGVydCoqXShBbWxBbGVydC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX3Jlc3VsdCBpbXBvcnQgQW1sUmVzdWx0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBbWxSZXN1bHQgZnJvbSBhIEpTT04gc3RyaW5nCmFtbF9yZXN1bHRfaW5zdGFuY2UgPSBBbWxSZXN1bHQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQW1sUmVzdWx0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFtbF9yZXN1bHRfZGljdCA9IGFtbF9yZXN1bHRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtbFJlc3VsdCBmcm9tIGEgZGljdAphbWxfcmVzdWx0X2Zyb21fZGljdCA9IEFtbFJlc3VsdC5mcm9tX2RpY3QoYW1sX3Jlc3VsdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AmlScreeningResult.md b/docs/AmlScreeningResult.md index 5efc5c5c..9e2c58a3 100644 --- a/docs/AmlScreeningResult.md +++ b/docs/AmlScreeningResult.md @@ -1,31 +1 @@ -# AmlScreeningResult - -The result of the AML screening. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**provider** | **str** | | [optional] -**payload** | **object** | | [optional] - -## Example - -```python -from fireblocks.models.aml_screening_result import AmlScreeningResult - -# TODO update the JSON string below -json = "{}" -# create an instance of AmlScreeningResult from a JSON string -aml_screening_result_instance = AmlScreeningResult.from_json(json) -# print the JSON string representation of the object -print(AmlScreeningResult.to_json()) - -# convert the object into a dict -aml_screening_result_dict = aml_screening_result_instance.to_dict() -# create an instance of AmlScreeningResult from a dict -aml_screening_result_from_dict = AmlScreeningResult.from_dict(aml_screening_result_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBbWxTY3JlZW5pbmdSZXN1bHQKClRoZSByZXN1bHQgb2YgdGhlIEFNTCBzY3JlZW5pbmcuCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcHJvdmlkZXIqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKnBheWxvYWQqKiB8ICoqb2JqZWN0KiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX3NjcmVlbmluZ19yZXN1bHQgaW1wb3J0IEFtbFNjcmVlbmluZ1Jlc3VsdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1sU2NyZWVuaW5nUmVzdWx0IGZyb20gYSBKU09OIHN0cmluZwphbWxfc2NyZWVuaW5nX3Jlc3VsdF9pbnN0YW5jZSA9IEFtbFNjcmVlbmluZ1Jlc3VsdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBbWxTY3JlZW5pbmdSZXN1bHQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYW1sX3NjcmVlbmluZ19yZXN1bHRfZGljdCA9IGFtbF9zY3JlZW5pbmdfcmVzdWx0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBbWxTY3JlZW5pbmdSZXN1bHQgZnJvbSBhIGRpY3QKYW1sX3NjcmVlbmluZ19yZXN1bHRfZnJvbV9kaWN0ID0gQW1sU2NyZWVuaW5nUmVzdWx0LmZyb21fZGljdChhbWxfc2NyZWVuaW5nX3Jlc3VsdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AmlStatusEnum.md b/docs/AmlStatusEnum.md index ad8cc9ec..6e56b484 100644 --- a/docs/AmlStatusEnum.md +++ b/docs/AmlStatusEnum.md @@ -1,19 +1 @@ -# AmlStatusEnum - -AML screening status - -## Enum - -* `COMPLETED` (value: `'COMPLETED'`) - -* `PENDING` (value: `'PENDING'`) - -* `BYPASSED` (value: `'BYPASSED'`) - -* `FAILED` (value: `'FAILED'`) - -* `FROZEN` (value: `'FROZEN'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBbWxTdGF0dXNFbnVtCgpEZXByZWNhdGVkOiBVc2Ugc2NyZWVuaW5nU3RhdHVzIGluc3RlYWQuIEFNTCBzY3JlZW5pbmcgc3RhdHVzLiAKCiMjIEVudW0KCiogYENPTVBMRVRFRGAgKHZhbHVlOiBgJ0NPTVBMRVRFRCdgKQoKKiBgUEVORElOR2AgKHZhbHVlOiBgJ1BFTkRJTkcnYCkKCiogYEJZUEFTU0VEYCAodmFsdWU6IGAnQllQQVNTRUQnYCkKCiogYEZBSUxFRGAgKHZhbHVlOiBgJ0ZBSUxFRCdgKQoKKiBgRlJPWkVOYCAodmFsdWU6IGAnRlJPWkVOJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AmlVerdictManualRequest.md b/docs/AmlVerdictManualRequest.md index a9dcf65f..a6bfe561 100644 --- a/docs/AmlVerdictManualRequest.md +++ b/docs/AmlVerdictManualRequest.md @@ -1,30 +1 @@ -# AmlVerdictManualRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**verdict** | **str** | The AML verdict to set for the transaction | -**tx_id** | **str** | The transaction ID to set the verdict for | - -## Example - -```python -from fireblocks.models.aml_verdict_manual_request import AmlVerdictManualRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of AmlVerdictManualRequest from a JSON string -aml_verdict_manual_request_instance = AmlVerdictManualRequest.from_json(json) -# print the JSON string representation of the object -print(AmlVerdictManualRequest.to_json()) - -# convert the object into a dict -aml_verdict_manual_request_dict = aml_verdict_manual_request_instance.to_dict() -# create an instance of AmlVerdictManualRequest from a dict -aml_verdict_manual_request_from_dict = AmlVerdictManualRequest.from_dict(aml_verdict_manual_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBbWxWZXJkaWN0TWFudWFsUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip2ZXJkaWN0KiogfCAqKnN0cioqIHwgVGhlIEFNTCB2ZXJkaWN0IHRvIHNldCBmb3IgdGhlIHRyYW5zYWN0aW9uIHwgCioqdHhfaWQqKiB8ICoqc3RyKiogfCBUaGUgdHJhbnNhY3Rpb24gSUQgdG8gc2V0IHRoZSB2ZXJkaWN0IGZvciB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX3ZlcmRpY3RfbWFudWFsX3JlcXVlc3QgaW1wb3J0IEFtbFZlcmRpY3RNYW51YWxSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBbWxWZXJkaWN0TWFudWFsUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKYW1sX3ZlcmRpY3RfbWFudWFsX3JlcXVlc3RfaW5zdGFuY2UgPSBBbWxWZXJkaWN0TWFudWFsUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBbWxWZXJkaWN0TWFudWFsUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphbWxfdmVyZGljdF9tYW51YWxfcmVxdWVzdF9kaWN0ID0gYW1sX3ZlcmRpY3RfbWFudWFsX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtbFZlcmRpY3RNYW51YWxSZXF1ZXN0IGZyb20gYSBkaWN0CmFtbF92ZXJkaWN0X21hbnVhbF9yZXF1ZXN0X2Zyb21fZGljdCA9IEFtbFZlcmRpY3RNYW51YWxSZXF1ZXN0LmZyb21fZGljdChhbWxfdmVyZGljdF9tYW51YWxfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AmlVerdictManualResponse.md b/docs/AmlVerdictManualResponse.md index 0302046c..6e0d5dbd 100644 --- a/docs/AmlVerdictManualResponse.md +++ b/docs/AmlVerdictManualResponse.md @@ -1,30 +1 @@ -# AmlVerdictManualResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**success** | **bool** | | -**message** | **str** | | - -## Example - -```python -from fireblocks.models.aml_verdict_manual_response import AmlVerdictManualResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of AmlVerdictManualResponse from a JSON string -aml_verdict_manual_response_instance = AmlVerdictManualResponse.from_json(json) -# print the JSON string representation of the object -print(AmlVerdictManualResponse.to_json()) - -# convert the object into a dict -aml_verdict_manual_response_dict = aml_verdict_manual_response_instance.to_dict() -# create an instance of AmlVerdictManualResponse from a dict -aml_verdict_manual_response_from_dict = AmlVerdictManualResponse.from_dict(aml_verdict_manual_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBbWxWZXJkaWN0TWFudWFsUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3VjY2VzcyoqIHwgKipib29sKiogfCAgfCAKKiptZXNzYWdlKiogfCAqKnN0cioqIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfdmVyZGljdF9tYW51YWxfcmVzcG9uc2UgaW1wb3J0IEFtbFZlcmRpY3RNYW51YWxSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1sVmVyZGljdE1hbnVhbFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwphbWxfdmVyZGljdF9tYW51YWxfcmVzcG9uc2VfaW5zdGFuY2UgPSBBbWxWZXJkaWN0TWFudWFsUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQW1sVmVyZGljdE1hbnVhbFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFtbF92ZXJkaWN0X21hbnVhbF9yZXNwb25zZV9kaWN0ID0gYW1sX3ZlcmRpY3RfbWFudWFsX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBbWxWZXJkaWN0TWFudWFsUmVzcG9uc2UgZnJvbSBhIGRpY3QKYW1sX3ZlcmRpY3RfbWFudWFsX3Jlc3BvbnNlX2Zyb21fZGljdCA9IEFtbFZlcmRpY3RNYW51YWxSZXNwb25zZS5mcm9tX2RpY3QoYW1sX3ZlcmRpY3RfbWFudWFsX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AmountAndChainDescriptor.md b/docs/AmountAndChainDescriptor.md index 690d879e..360ad8ce 100644 --- a/docs/AmountAndChainDescriptor.md +++ b/docs/AmountAndChainDescriptor.md @@ -1,30 +1 @@ -# AmountAndChainDescriptor - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**chain_descriptor** | **str** | The protocol identifier (e.g. \"ETH\"/\"SOL\") for summary | -**amount** | **str** | Cryptocurrency quantity | - -## Example - -```python -from fireblocks.models.amount_and_chain_descriptor import AmountAndChainDescriptor - -# TODO update the JSON string below -json = "{}" -# create an instance of AmountAndChainDescriptor from a JSON string -amount_and_chain_descriptor_instance = AmountAndChainDescriptor.from_json(json) -# print the JSON string representation of the object -print(AmountAndChainDescriptor.to_json()) - -# convert the object into a dict -amount_and_chain_descriptor_dict = amount_and_chain_descriptor_instance.to_dict() -# create an instance of AmountAndChainDescriptor from a dict -amount_and_chain_descriptor_from_dict = AmountAndChainDescriptor.from_dict(amount_and_chain_descriptor_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBbW91bnRBbmRDaGFpbkRlc2NyaXB0b3IKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqY2hhaW5fZGVzY3JpcHRvcioqIHwgKipzdHIqKiB8IFRoZSBwcm90b2NvbCBpZGVudGlmaWVyIChlLmcuIFwmcXVvdDtFVEhcJnF1b3Q7L1wmcXVvdDtTT0xcJnF1b3Q7KSBmb3Igc3VtbWFyeSB8IAoqKmFtb3VudCoqIHwgKipzdHIqKiB8IENyeXB0b2N1cnJlbmN5IHF1YW50aXR5IHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfYW5kX2NoYWluX2Rlc2NyaXB0b3IgaW1wb3J0IEFtb3VudEFuZENoYWluRGVzY3JpcHRvcgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1vdW50QW5kQ2hhaW5EZXNjcmlwdG9yIGZyb20gYSBKU09OIHN0cmluZwphbW91bnRfYW5kX2NoYWluX2Rlc2NyaXB0b3JfaW5zdGFuY2UgPSBBbW91bnRBbmRDaGFpbkRlc2NyaXB0b3IuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQW1vdW50QW5kQ2hhaW5EZXNjcmlwdG9yLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFtb3VudF9hbmRfY2hhaW5fZGVzY3JpcHRvcl9kaWN0ID0gYW1vdW50X2FuZF9jaGFpbl9kZXNjcmlwdG9yX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBbW91bnRBbmRDaGFpbkRlc2NyaXB0b3IgZnJvbSBhIGRpY3QKYW1vdW50X2FuZF9jaGFpbl9kZXNjcmlwdG9yX2Zyb21fZGljdCA9IEFtb3VudEFuZENoYWluRGVzY3JpcHRvci5mcm9tX2RpY3QoYW1vdW50X2FuZF9jaGFpbl9kZXNjcmlwdG9yX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AmountConfig.md b/docs/AmountConfig.md index fdd23ea1..4f8d47d4 100644 --- a/docs/AmountConfig.md +++ b/docs/AmountConfig.md @@ -1,30 +1 @@ -# AmountConfig - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**range** | [**AmountRangeMinMax2**](AmountRangeMinMax2.md) | | -**currency** | [**PolicyCurrency**](PolicyCurrency.md) | | [optional] - -## Example - -```python -from fireblocks.models.amount_config import AmountConfig - -# TODO update the JSON string below -json = "{}" -# create an instance of AmountConfig from a JSON string -amount_config_instance = AmountConfig.from_json(json) -# print the JSON string representation of the object -print(AmountConfig.to_json()) - -# convert the object into a dict -amount_config_dict = amount_config_instance.to_dict() -# create an instance of AmountConfig from a dict -amount_config_from_dict = AmountConfig.from_dict(amount_config_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBbW91bnRDb25maWcKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcmFuZ2UqKiB8IFsqKkFtb3VudFJhbmdlTWluTWF4MioqXShBbW91bnRSYW5nZU1pbk1heDIubWQpIHwgIHwgCioqY3VycmVuY3kqKiB8IFsqKlBvbGljeUN1cnJlbmN5KipdKFBvbGljeUN1cnJlbmN5Lm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfY29uZmlnIGltcG9ydCBBbW91bnRDb25maWcKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtb3VudENvbmZpZyBmcm9tIGEgSlNPTiBzdHJpbmcKYW1vdW50X2NvbmZpZ19pbnN0YW5jZSA9IEFtb3VudENvbmZpZy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBbW91bnRDb25maWcudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYW1vdW50X2NvbmZpZ19kaWN0ID0gYW1vdW50X2NvbmZpZ19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1vdW50Q29uZmlnIGZyb20gYSBkaWN0CmFtb3VudF9jb25maWdfZnJvbV9kaWN0ID0gQW1vdW50Q29uZmlnLmZyb21fZGljdChhbW91bnRfY29uZmlnX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AmountConfigCurrency.md b/docs/AmountConfigCurrency.md index 67b84b34..6663cd7b 100644 --- a/docs/AmountConfigCurrency.md +++ b/docs/AmountConfigCurrency.md @@ -1,30 +1 @@ -# AmountConfigCurrency - -Currency property for amount configuration - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**currency** | [**PolicyCurrency**](PolicyCurrency.md) | | [optional] - -## Example - -```python -from fireblocks.models.amount_config_currency import AmountConfigCurrency - -# TODO update the JSON string below -json = "{}" -# create an instance of AmountConfigCurrency from a JSON string -amount_config_currency_instance = AmountConfigCurrency.from_json(json) -# print the JSON string representation of the object -print(AmountConfigCurrency.to_json()) - -# convert the object into a dict -amount_config_currency_dict = amount_config_currency_instance.to_dict() -# create an instance of AmountConfigCurrency from a dict -amount_config_currency_from_dict = AmountConfigCurrency.from_dict(amount_config_currency_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBbW91bnRDb25maWdDdXJyZW5jeQoKQ3VycmVuY3kgcHJvcGVydHkgZm9yIGFtb3VudCBjb25maWd1cmF0aW9uCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqY3VycmVuY3kqKiB8IFsqKlBvbGljeUN1cnJlbmN5KipdKFBvbGljeUN1cnJlbmN5Lm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfY29uZmlnX2N1cnJlbmN5IGltcG9ydCBBbW91bnRDb25maWdDdXJyZW5jeQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1vdW50Q29uZmlnQ3VycmVuY3kgZnJvbSBhIEpTT04gc3RyaW5nCmFtb3VudF9jb25maWdfY3VycmVuY3lfaW5zdGFuY2UgPSBBbW91bnRDb25maWdDdXJyZW5jeS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBbW91bnRDb25maWdDdXJyZW5jeS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphbW91bnRfY29uZmlnX2N1cnJlbmN5X2RpY3QgPSBhbW91bnRfY29uZmlnX2N1cnJlbmN5X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBbW91bnRDb25maWdDdXJyZW5jeSBmcm9tIGEgZGljdAphbW91bnRfY29uZmlnX2N1cnJlbmN5X2Zyb21fZGljdCA9IEFtb3VudENvbmZpZ0N1cnJlbmN5LmZyb21fZGljdChhbW91bnRfY29uZmlnX2N1cnJlbmN5X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AmountInfo.md b/docs/AmountInfo.md index 691796c4..8c799df4 100644 --- a/docs/AmountInfo.md +++ b/docs/AmountInfo.md @@ -1,33 +1 @@ -# AmountInfo - -The details of the requested amount to transfer. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | **str** | If the transfer is a withdrawal from an exchange, the actual amount that was requested to be transferred. Otherwise, the requested amount. | [optional] -**requested_amount** | **str** | The amount requested by the user. | [optional] -**net_amount** | **str** | The net amount of the transaction, after fee deduction. | [optional] -**amount_usd** | **str** | The USD value of the requested amount. | [optional] - -## Example - -```python -from fireblocks.models.amount_info import AmountInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of AmountInfo from a JSON string -amount_info_instance = AmountInfo.from_json(json) -# print the JSON string representation of the object -print(AmountInfo.to_json()) - -# convert the object into a dict -amount_info_dict = amount_info_instance.to_dict() -# create an instance of AmountInfo from a dict -amount_info_from_dict = AmountInfo.from_dict(amount_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBbW91bnRJbmZvCgpUaGUgZGV0YWlscyBvZiB0aGUgcmVxdWVzdGVkIGFtb3VudCB0byB0cmFuc2Zlci4KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphbW91bnQqKiB8ICoqc3RyKiogfCBJZiB0aGUgdHJhbnNmZXIgaXMgYSB3aXRoZHJhd2FsIGZyb20gYW4gZXhjaGFuZ2UsIHRoZSBhY3R1YWwgYW1vdW50IHRoYXQgd2FzIHJlcXVlc3RlZCB0byBiZSB0cmFuc2ZlcnJlZC4gT3RoZXJ3aXNlLCB0aGUgcmVxdWVzdGVkIGFtb3VudC4gfCBbb3B0aW9uYWxdIAoqKnJlcXVlc3RlZF9hbW91bnQqKiB8ICoqc3RyKiogfCBUaGUgYW1vdW50IHJlcXVlc3RlZCBieSB0aGUgdXNlci4gfCBbb3B0aW9uYWxdIAoqKm5ldF9hbW91bnQqKiB8ICoqc3RyKiogfCBUaGUgbmV0IGFtb3VudCBvZiB0aGUgdHJhbnNhY3Rpb24sIGFmdGVyIGZlZSBkZWR1Y3Rpb24uIHwgW29wdGlvbmFsXSAKKiphbW91bnRfdXNkKiogfCAqKnN0cioqIHwgVGhlIFVTRCB2YWx1ZSBvZiB0aGUgcmVxdWVzdGVkIGFtb3VudC4gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X2luZm8gaW1wb3J0IEFtb3VudEluZm8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtb3VudEluZm8gZnJvbSBhIEpTT04gc3RyaW5nCmFtb3VudF9pbmZvX2luc3RhbmNlID0gQW1vdW50SW5mby5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBbW91bnRJbmZvLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFtb3VudF9pbmZvX2RpY3QgPSBhbW91bnRfaW5mb19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1vdW50SW5mbyBmcm9tIGEgZGljdAphbW91bnRfaW5mb19mcm9tX2RpY3QgPSBBbW91bnRJbmZvLmZyb21fZGljdChhbW91bnRfaW5mb19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AmountOverTimeConfig.md b/docs/AmountOverTimeConfig.md index 04680784..69f7fa91 100644 --- a/docs/AmountOverTimeConfig.md +++ b/docs/AmountOverTimeConfig.md @@ -1,32 +1 @@ -# AmountOverTimeConfig - -Amount over time configuration - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**range** | [**AmountRangeMinMax2**](AmountRangeMinMax2.md) | | -**currency** | [**PolicyCurrency**](PolicyCurrency.md) | | -**time_period** | [**TimePeriodConfig**](TimePeriodConfig.md) | | - -## Example - -```python -from fireblocks.models.amount_over_time_config import AmountOverTimeConfig - -# TODO update the JSON string below -json = "{}" -# create an instance of AmountOverTimeConfig from a JSON string -amount_over_time_config_instance = AmountOverTimeConfig.from_json(json) -# print the JSON string representation of the object -print(AmountOverTimeConfig.to_json()) - -# convert the object into a dict -amount_over_time_config_dict = amount_over_time_config_instance.to_dict() -# create an instance of AmountOverTimeConfig from a dict -amount_over_time_config_from_dict = AmountOverTimeConfig.from_dict(amount_over_time_config_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBbW91bnRPdmVyVGltZUNvbmZpZwoKQW1vdW50IG92ZXIgdGltZSBjb25maWd1cmF0aW9uCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcmFuZ2UqKiB8IFsqKkFtb3VudFJhbmdlTWluTWF4MioqXShBbW91bnRSYW5nZU1pbk1heDIubWQpIHwgIHwgCioqY3VycmVuY3kqKiB8IFsqKlBvbGljeUN1cnJlbmN5KipdKFBvbGljeUN1cnJlbmN5Lm1kKSB8ICB8IAoqKnRpbWVfcGVyaW9kKiogfCBbKipUaW1lUGVyaW9kQ29uZmlnKipdKFRpbWVQZXJpb2RDb25maWcubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfb3Zlcl90aW1lX2NvbmZpZyBpbXBvcnQgQW1vdW50T3ZlclRpbWVDb25maWcKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtb3VudE92ZXJUaW1lQ29uZmlnIGZyb20gYSBKU09OIHN0cmluZwphbW91bnRfb3Zlcl90aW1lX2NvbmZpZ19pbnN0YW5jZSA9IEFtb3VudE92ZXJUaW1lQ29uZmlnLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFtb3VudE92ZXJUaW1lQ29uZmlnLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFtb3VudF9vdmVyX3RpbWVfY29uZmlnX2RpY3QgPSBhbW91bnRfb3Zlcl90aW1lX2NvbmZpZ19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1vdW50T3ZlclRpbWVDb25maWcgZnJvbSBhIGRpY3QKYW1vdW50X292ZXJfdGltZV9jb25maWdfZnJvbV9kaWN0ID0gQW1vdW50T3ZlclRpbWVDb25maWcuZnJvbV9kaWN0KGFtb3VudF9vdmVyX3RpbWVfY29uZmlnX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AmountRange.md b/docs/AmountRange.md index 5d763cbb..77eadabb 100644 --- a/docs/AmountRange.md +++ b/docs/AmountRange.md @@ -1,30 +1 @@ -# AmountRange - -Amount range with minimum and maximum values - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**range** | [**AmountRangeMinMax2**](AmountRangeMinMax2.md) | | - -## Example - -```python -from fireblocks.models.amount_range import AmountRange - -# TODO update the JSON string below -json = "{}" -# create an instance of AmountRange from a JSON string -amount_range_instance = AmountRange.from_json(json) -# print the JSON string representation of the object -print(AmountRange.to_json()) - -# convert the object into a dict -amount_range_dict = amount_range_instance.to_dict() -# create an instance of AmountRange from a dict -amount_range_from_dict = AmountRange.from_dict(amount_range_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBbW91bnRSYW5nZQoKQW1vdW50IHJhbmdlIHdpdGggbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZXMKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipyYW5nZSoqIHwgWyoqQW1vdW50UmFuZ2VNaW5NYXgyKipdKEFtb3VudFJhbmdlTWluTWF4Mi5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9yYW5nZSBpbXBvcnQgQW1vdW50UmFuZ2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtb3VudFJhbmdlIGZyb20gYSBKU09OIHN0cmluZwphbW91bnRfcmFuZ2VfaW5zdGFuY2UgPSBBbW91bnRSYW5nZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBbW91bnRSYW5nZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphbW91bnRfcmFuZ2VfZGljdCA9IGFtb3VudF9yYW5nZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1vdW50UmFuZ2UgZnJvbSBhIGRpY3QKYW1vdW50X3JhbmdlX2Zyb21fZGljdCA9IEFtb3VudFJhbmdlLmZyb21fZGljdChhbW91bnRfcmFuZ2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AmountRangeMinMax.md b/docs/AmountRangeMinMax.md index aec79b88..2415ee86 100644 --- a/docs/AmountRangeMinMax.md +++ b/docs/AmountRangeMinMax.md @@ -1,31 +1 @@ -# AmountRangeMinMax - -Amount range with minimum and maximum values - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**min** | **str** | Minimum amount | [optional] -**max** | **str** | Maximum amount | [optional] - -## Example - -```python -from fireblocks.models.amount_range_min_max import AmountRangeMinMax - -# TODO update the JSON string below -json = "{}" -# create an instance of AmountRangeMinMax from a JSON string -amount_range_min_max_instance = AmountRangeMinMax.from_json(json) -# print the JSON string representation of the object -print(AmountRangeMinMax.to_json()) - -# convert the object into a dict -amount_range_min_max_dict = amount_range_min_max_instance.to_dict() -# create an instance of AmountRangeMinMax from a dict -amount_range_min_max_from_dict = AmountRangeMinMax.from_dict(amount_range_min_max_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBbW91bnRSYW5nZU1pbk1heAoKQW1vdW50IHJhbmdlIHdpdGggbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZXMKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiptaW4qKiB8ICoqc3RyKiogfCBNaW5pbXVtIGFtb3VudCB8IFtvcHRpb25hbF0gCioqbWF4KiogfCAqKnN0cioqIHwgTWF4aW11bSBhbW91bnQgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X3JhbmdlX21pbl9tYXggaW1wb3J0IEFtb3VudFJhbmdlTWluTWF4CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBbW91bnRSYW5nZU1pbk1heCBmcm9tIGEgSlNPTiBzdHJpbmcKYW1vdW50X3JhbmdlX21pbl9tYXhfaW5zdGFuY2UgPSBBbW91bnRSYW5nZU1pbk1heC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBbW91bnRSYW5nZU1pbk1heC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphbW91bnRfcmFuZ2VfbWluX21heF9kaWN0ID0gYW1vdW50X3JhbmdlX21pbl9tYXhfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtb3VudFJhbmdlTWluTWF4IGZyb20gYSBkaWN0CmFtb3VudF9yYW5nZV9taW5fbWF4X2Zyb21fZGljdCA9IEFtb3VudFJhbmdlTWluTWF4LmZyb21fZGljdChhbW91bnRfcmFuZ2VfbWluX21heF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AmountRangeMinMax2.md b/docs/AmountRangeMinMax2.md index 89a49229..8bcc28a4 100644 --- a/docs/AmountRangeMinMax2.md +++ b/docs/AmountRangeMinMax2.md @@ -1,31 +1 @@ -# AmountRangeMinMax2 - -Amount range with minimum and maximum values - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**min** | **str** | Minimum amount | -**max** | **str** | Maximum amount | [optional] - -## Example - -```python -from fireblocks.models.amount_range_min_max2 import AmountRangeMinMax2 - -# TODO update the JSON string below -json = "{}" -# create an instance of AmountRangeMinMax2 from a JSON string -amount_range_min_max2_instance = AmountRangeMinMax2.from_json(json) -# print the JSON string representation of the object -print(AmountRangeMinMax2.to_json()) - -# convert the object into a dict -amount_range_min_max2_dict = amount_range_min_max2_instance.to_dict() -# create an instance of AmountRangeMinMax2 from a dict -amount_range_min_max2_from_dict = AmountRangeMinMax2.from_dict(amount_range_min_max2_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBbW91bnRSYW5nZU1pbk1heDIKCkFtb3VudCByYW5nZSB3aXRoIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWVzCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbWluKiogfCAqKnN0cioqIHwgTWluaW11bSBhbW91bnQgfCAKKiptYXgqKiB8ICoqc3RyKiogfCBNYXhpbXVtIGFtb3VudCB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfcmFuZ2VfbWluX21heDIgaW1wb3J0IEFtb3VudFJhbmdlTWluTWF4MgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1vdW50UmFuZ2VNaW5NYXgyIGZyb20gYSBKU09OIHN0cmluZwphbW91bnRfcmFuZ2VfbWluX21heDJfaW5zdGFuY2UgPSBBbW91bnRSYW5nZU1pbk1heDIuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQW1vdW50UmFuZ2VNaW5NYXgyLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFtb3VudF9yYW5nZV9taW5fbWF4Ml9kaWN0ID0gYW1vdW50X3JhbmdlX21pbl9tYXgyX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBbW91bnRSYW5nZU1pbk1heDIgZnJvbSBhIGRpY3QKYW1vdW50X3JhbmdlX21pbl9tYXgyX2Zyb21fZGljdCA9IEFtb3VudFJhbmdlTWluTWF4Mi5mcm9tX2RpY3QoYW1vdW50X3JhbmdlX21pbl9tYXgyX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ApiKey.md b/docs/ApiKey.md index 2c96dd7f..f56ffac2 100644 --- a/docs/ApiKey.md +++ b/docs/ApiKey.md @@ -1,31 +1 @@ -# ApiKey - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The unique identifier of the API key | -**last_seen** | **datetime** | The date the API key was last seen | [optional] -**callback_handler** | [**CallbackHandler**](CallbackHandler.md) | | [optional] - -## Example - -```python -from fireblocks.models.api_key import ApiKey - -# TODO update the JSON string below -json = "{}" -# create an instance of ApiKey from a JSON string -api_key_instance = ApiKey.from_json(json) -# print the JSON string representation of the object -print(ApiKey.to_json()) - -# convert the object into a dict -api_key_dict = api_key_instance.to_dict() -# create an instance of ApiKey from a dict -api_key_from_dict = ApiKey.from_dict(api_key_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBcGlLZXkKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIEFQSSBrZXkgfCAKKipsYXN0X3NlZW4qKiB8ICoqZGF0ZXRpbWUqKiB8IFRoZSBkYXRlIHRoZSBBUEkga2V5IHdhcyBsYXN0IHNlZW4gfCBbb3B0aW9uYWxdIAoqKmNhbGxiYWNrX2hhbmRsZXIqKiB8IFsqKkNhbGxiYWNrSGFuZGxlcioqXShDYWxsYmFja0hhbmRsZXIubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFwaV9rZXkgaW1wb3J0IEFwaUtleQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXBpS2V5IGZyb20gYSBKU09OIHN0cmluZwphcGlfa2V5X2luc3RhbmNlID0gQXBpS2V5LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFwaUtleS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphcGlfa2V5X2RpY3QgPSBhcGlfa2V5X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBcGlLZXkgZnJvbSBhIGRpY3QKYXBpX2tleV9mcm9tX2RpY3QgPSBBcGlLZXkuZnJvbV9kaWN0KGFwaV9rZXlfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ApiKeysPaginatedResponse.md b/docs/ApiKeysPaginatedResponse.md index 81167552..6be11140 100644 --- a/docs/ApiKeysPaginatedResponse.md +++ b/docs/ApiKeysPaginatedResponse.md @@ -1,30 +1 @@ -# ApiKeysPaginatedResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[ApiKey]**](ApiKey.md) | The data of the current page | -**next** | **str** | The ID of the next page | [optional] - -## Example - -```python -from fireblocks.models.api_keys_paginated_response import ApiKeysPaginatedResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ApiKeysPaginatedResponse from a JSON string -api_keys_paginated_response_instance = ApiKeysPaginatedResponse.from_json(json) -# print the JSON string representation of the object -print(ApiKeysPaginatedResponse.to_json()) - -# convert the object into a dict -api_keys_paginated_response_dict = api_keys_paginated_response_instance.to_dict() -# create an instance of ApiKeysPaginatedResponse from a dict -api_keys_paginated_response_from_dict = ApiKeysPaginatedResponse.from_dict(api_keys_paginated_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBcGlLZXlzUGFnaW5hdGVkUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZGF0YSoqIHwgWyoqTGlzdFtBcGlLZXldKipdKEFwaUtleS5tZCkgfCBUaGUgZGF0YSBvZiB0aGUgY3VycmVudCBwYWdlIHwgCioqbmV4dCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgbmV4dCBwYWdlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFwaV9rZXlzX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgQXBpS2V5c1BhZ2luYXRlZFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBcGlLZXlzUGFnaW5hdGVkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmFwaV9rZXlzX3BhZ2luYXRlZF9yZXNwb25zZV9pbnN0YW5jZSA9IEFwaUtleXNQYWdpbmF0ZWRSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBcGlLZXlzUGFnaW5hdGVkUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYXBpX2tleXNfcGFnaW5hdGVkX3Jlc3BvbnNlX2RpY3QgPSBhcGlfa2V5c19wYWdpbmF0ZWRfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFwaUtleXNQYWdpbmF0ZWRSZXNwb25zZSBmcm9tIGEgZGljdAphcGlfa2V5c19wYWdpbmF0ZWRfcmVzcG9uc2VfZnJvbV9kaWN0ID0gQXBpS2V5c1BhZ2luYXRlZFJlc3BvbnNlLmZyb21fZGljdChhcGlfa2V5c19wYWdpbmF0ZWRfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ApiUserApi.md b/docs/ApiUserApi.md index deff5050..ce1c6bb5 100644 --- a/docs/ApiUserApi.md +++ b/docs/ApiUserApi.md @@ -1,164 +1 @@ -# fireblocks.ApiUserApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**create_api_user**](ApiUserApi.md#create_api_user) | **POST** /management/api_users | Create API Key -[**get_api_users**](ApiUserApi.md#get_api_users) | **GET** /management/api_users | Get API Keys - - -# **create_api_user** -> create_api_user(idempotency_key=idempotency_key, create_api_user=create_api_user) - -Create API Key - -Create a new API key in your workspace. -Learn more about Fireblocks API Keys management in the following [guide](https://developers.fireblocks.com/docs/manage-api-keys). -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.create_api_user import CreateAPIUser -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - create_api_user = fireblocks.CreateAPIUser() # CreateAPIUser | (optional) - - try: - # Create API Key - fireblocks.api_user.create_api_user(idempotency_key=idempotency_key, create_api_user=create_api_user).result() - except Exception as e: - print("Exception when calling ApiUserApi->create_api_user: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **create_api_user** | [**CreateAPIUser**](CreateAPIUser.md)| | [optional] - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | User creation approval request has been sent | * X-Request-ID -
| -**400** | bad request | * X-Request-ID -
| -**401** | Unauthorized. Missing / invalid JWT token in Authorization header. | * X-Request-ID -
| -**403** | Lacking permissions. | * X-Request-ID -
| -**5XX** | Internal error. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_api_users** -> GetAPIUsersResponse get_api_users() - -Get API Keys - -List all API keys in your workspace. -- Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.get_api_users_response import GetAPIUsersResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Get API Keys - api_response = fireblocks.api_user.get_api_users().result() - print("The response of ApiUserApi->get_api_users:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ApiUserApi->get_api_users: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**GetAPIUsersResponse**](GetAPIUsersResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | got api users | * X-Request-ID -
| -**401** | Unauthorized. Missing / invalid JWT token in Authorization header. | * X-Request-ID -
| -**403** | Lacking permissions. | * X-Request-ID -
| -**5XX** | Internal error. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLkFwaVVzZXJBcGkKCkFsbCBVUklzIGFyZSByZWxhdGl2ZSB0byAqaHR0cHM6Ly9hcGkuZmlyZWJsb2Nrcy5pby92MSoKCk1ldGhvZCB8IEhUVFAgcmVxdWVzdCB8IERlc2NyaXB0aW9uCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQpbKipjcmVhdGVfYXBpX3VzZXIqKl0oQXBpVXNlckFwaS5tZCNjcmVhdGVfYXBpX3VzZXIpIHwgKipQT1NUKiogL21hbmFnZW1lbnQvYXBpX3VzZXJzIHwgQ3JlYXRlIEFQSSBLZXkKWyoqZ2V0X2FwaV91c2VycyoqXShBcGlVc2VyQXBpLm1kI2dldF9hcGlfdXNlcnMpIHwgKipHRVQqKiAvbWFuYWdlbWVudC9hcGlfdXNlcnMgfCBHZXQgQVBJIEtleXMKCgojICoqY3JlYXRlX2FwaV91c2VyKioKPiBjcmVhdGVfYXBpX3VzZXIoaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwgY3JlYXRlX2FwaV91c2VyPWNyZWF0ZV9hcGlfdXNlcikKCkNyZWF0ZSBBUEkgS2V5CgpDcmVhdGUgYSBuZXcgQVBJIGtleSBpbiB5b3VyIHdvcmtzcGFjZS4KTGVhcm4gbW9yZSBhYm91dCBGaXJlYmxvY2tzIEFQSSBLZXlzIG1hbmFnZW1lbnQgaW4gdGhlIGZvbGxvd2luZyBbZ3VpZGVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL21hbmFnZS1hcGkta2V5cykuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfYXBpX3VzZXIgaW1wb3J0IENyZWF0ZUFQSVVzZXIKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKICAgIGNyZWF0ZV9hcGlfdXNlciA9IGZpcmVibG9ja3MuQ3JlYXRlQVBJVXNlcigpICMgQ3JlYXRlQVBJVXNlciB8ICAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ3JlYXRlIEFQSSBLZXkKICAgICAgICBmaXJlYmxvY2tzLmFwaV91c2VyLmNyZWF0ZV9hcGlfdXNlcihpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCBjcmVhdGVfYXBpX3VzZXI9Y3JlYXRlX2FwaV91c2VyKS5yZXN1bHQoKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEFwaVVzZXJBcGktPmNyZWF0ZV9hcGlfdXNlcjogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKICoqY3JlYXRlX2FwaV91c2VyKiogfCBbKipDcmVhdGVBUElVc2VyKipdKENyZWF0ZUFQSVVzZXIubWQpfCAgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgp2b2lkIChlbXB0eSByZXNwb25zZSBib2R5KQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBVc2VyIGNyZWF0aW9uIGFwcHJvdmFsIHJlcXVlc3QgaGFzIGJlZW4gc2VudCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDAwKiogfCBiYWQgcmVxdWVzdCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDAxKiogfCBVbmF1dGhvcml6ZWQuIE1pc3NpbmcgLyBpbnZhbGlkIEpXVCB0b2tlbiBpbiBBdXRob3JpemF0aW9uIGhlYWRlci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMyoqIHwgTGFja2luZyBwZXJtaXNzaW9ucy4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjVYWCoqIHwgSW50ZXJuYWwgZXJyb3IuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfYXBpX3VzZXJzKioKPiBHZXRBUElVc2Vyc1Jlc3BvbnNlIGdldF9hcGlfdXNlcnMoKQoKR2V0IEFQSSBLZXlzCgpMaXN0IGFsbCBBUEkga2V5cyBpbiB5b3VyIHdvcmtzcGFjZS4KLSBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgZW5kcG9pbnQgaXMgYXZhaWxhYmxlIG9ubHkgZm9yIEFQSSBrZXlzIHdpdGggQWRtaW4vTm9uIFNpZ25pbmcgQWRtaW4gcGVybWlzc2lvbnMuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfYXBpX3VzZXJzX3Jlc3BvbnNlIGltcG9ydCBHZXRBUElVc2Vyc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgQVBJIEtleXMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmFwaV91c2VyLmdldF9hcGlfdXNlcnMoKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgQXBpVXNlckFwaS0+Z2V0X2FwaV91c2VyczpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBBcGlVc2VyQXBpLT5nZXRfYXBpX3VzZXJzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKVGhpcyBlbmRwb2ludCBkb2VzIG5vdCBuZWVkIGFueSBwYXJhbWV0ZXIuCgojIyMgUmV0dXJuIHR5cGUKClsqKkdldEFQSVVzZXJzUmVzcG9uc2UqKl0oR2V0QVBJVXNlcnNSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IGdvdCBhcGkgdXNlcnMgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMSoqIHwgVW5hdXRob3JpemVkLiBNaXNzaW5nIC8gaW52YWxpZCBKV1QgdG9rZW4gaW4gQXV0aG9yaXphdGlvbiBoZWFkZXIuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDMqKiB8IExhY2tpbmcgcGVybWlzc2lvbnMuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio1WFgqKiB8IEludGVybmFsIGVycm9yLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgo= \ No newline at end of file diff --git a/docs/ApprovalRequest.md b/docs/ApprovalRequest.md index 4cbda79a..591cbe4b 100644 --- a/docs/ApprovalRequest.md +++ b/docs/ApprovalRequest.md @@ -1,32 +1 @@ -# ApprovalRequest - -Approval request details - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The approval request identifier | -**type** | **str** | The approval request type | -**state** | **str** | The approval request state | - -## Example - -```python -from fireblocks.models.approval_request import ApprovalRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of ApprovalRequest from a JSON string -approval_request_instance = ApprovalRequest.from_json(json) -# print the JSON string representation of the object -print(ApprovalRequest.to_json()) - -# convert the object into a dict -approval_request_dict = approval_request_instance.to_dict() -# create an instance of ApprovalRequest from a dict -approval_request_from_dict = ApprovalRequest.from_dict(approval_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBcHByb3ZhbFJlcXVlc3QKCkFwcHJvdmFsIHJlcXVlc3QgZGV0YWlscwoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgVGhlIGFwcHJvdmFsIHJlcXVlc3QgaWRlbnRpZmllciB8IAoqKnR5cGUqKiB8ICoqc3RyKiogfCBUaGUgYXBwcm92YWwgcmVxdWVzdCB0eXBlIHwgCioqc3RhdGUqKiB8ICoqc3RyKiogfCBUaGUgYXBwcm92YWwgcmVxdWVzdCBzdGF0ZSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXBwcm92YWxfcmVxdWVzdCBpbXBvcnQgQXBwcm92YWxSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBcHByb3ZhbFJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCmFwcHJvdmFsX3JlcXVlc3RfaW5zdGFuY2UgPSBBcHByb3ZhbFJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQXBwcm92YWxSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFwcHJvdmFsX3JlcXVlc3RfZGljdCA9IGFwcHJvdmFsX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFwcHJvdmFsUmVxdWVzdCBmcm9tIGEgZGljdAphcHByb3ZhbF9yZXF1ZXN0X2Zyb21fZGljdCA9IEFwcHJvdmFsUmVxdWVzdC5mcm9tX2RpY3QoYXBwcm92YWxfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ApproversConfig.md b/docs/ApproversConfig.md index 76441500..b8d8d5b0 100644 --- a/docs/ApproversConfig.md +++ b/docs/ApproversConfig.md @@ -1,33 +1 @@ -# ApproversConfig - -Approvers configuration - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**can_initiator_approve** | **bool** | Whether initiator can approve | -**operator** | **str** | Operator for approval groups | [optional] -**allow_operator_as_authorizer** | **bool** | Whether operator can be authorizer | [optional] -**approval_groups** | [**List[ApproversConfigApprovalGroupsInner]**](ApproversConfigApprovalGroupsInner.md) | List of approval groups | [optional] - -## Example - -```python -from fireblocks.models.approvers_config import ApproversConfig - -# TODO update the JSON string below -json = "{}" -# create an instance of ApproversConfig from a JSON string -approvers_config_instance = ApproversConfig.from_json(json) -# print the JSON string representation of the object -print(ApproversConfig.to_json()) - -# convert the object into a dict -approvers_config_dict = approvers_config_instance.to_dict() -# create an instance of ApproversConfig from a dict -approvers_config_from_dict = ApproversConfig.from_dict(approvers_config_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBcHByb3ZlcnNDb25maWcKCkFwcHJvdmVycyBjb25maWd1cmF0aW9uCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqY2FuX2luaXRpYXRvcl9hcHByb3ZlKiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgaW5pdGlhdG9yIGNhbiBhcHByb3ZlIHwgCioqb3BlcmF0b3IqKiB8ICoqc3RyKiogfCBPcGVyYXRvciBmb3IgYXBwcm92YWwgZ3JvdXBzIHwgW29wdGlvbmFsXSAKKiphbGxvd19vcGVyYXRvcl9hc19hdXRob3JpemVyKiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgb3BlcmF0b3IgY2FuIGJlIGF1dGhvcml6ZXIgfCBbb3B0aW9uYWxdIAoqKmFwcHJvdmFsX2dyb3VwcyoqIHwgWyoqTGlzdFtBcHByb3ZlcnNDb25maWdBcHByb3ZhbEdyb3Vwc0lubmVyXSoqXShBcHByb3ZlcnNDb25maWdBcHByb3ZhbEdyb3Vwc0lubmVyLm1kKSB8IExpc3Qgb2YgYXBwcm92YWwgZ3JvdXBzIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFwcHJvdmVyc19jb25maWcgaW1wb3J0IEFwcHJvdmVyc0NvbmZpZwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXBwcm92ZXJzQ29uZmlnIGZyb20gYSBKU09OIHN0cmluZwphcHByb3ZlcnNfY29uZmlnX2luc3RhbmNlID0gQXBwcm92ZXJzQ29uZmlnLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFwcHJvdmVyc0NvbmZpZy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphcHByb3ZlcnNfY29uZmlnX2RpY3QgPSBhcHByb3ZlcnNfY29uZmlnX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBcHByb3ZlcnNDb25maWcgZnJvbSBhIGRpY3QKYXBwcm92ZXJzX2NvbmZpZ19mcm9tX2RpY3QgPSBBcHByb3ZlcnNDb25maWcuZnJvbV9kaWN0KGFwcHJvdmVyc19jb25maWdfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ApproversConfigApprovalGroupsInner.md b/docs/ApproversConfigApprovalGroupsInner.md index d888ba0f..790af23f 100644 --- a/docs/ApproversConfigApprovalGroupsInner.md +++ b/docs/ApproversConfigApprovalGroupsInner.md @@ -1,31 +1 @@ -# ApproversConfigApprovalGroupsInner - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**threshold** | **float** | Approval threshold | -**users** | **List[str]** | List of user IDs | [optional] -**groups** | **List[str]** | List of policy group IDs | [optional] - -## Example - -```python -from fireblocks.models.approvers_config_approval_groups_inner import ApproversConfigApprovalGroupsInner - -# TODO update the JSON string below -json = "{}" -# create an instance of ApproversConfigApprovalGroupsInner from a JSON string -approvers_config_approval_groups_inner_instance = ApproversConfigApprovalGroupsInner.from_json(json) -# print the JSON string representation of the object -print(ApproversConfigApprovalGroupsInner.to_json()) - -# convert the object into a dict -approvers_config_approval_groups_inner_dict = approvers_config_approval_groups_inner_instance.to_dict() -# create an instance of ApproversConfigApprovalGroupsInner from a dict -approvers_config_approval_groups_inner_from_dict = ApproversConfigApprovalGroupsInner.from_dict(approvers_config_approval_groups_inner_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBcHByb3ZlcnNDb25maWdBcHByb3ZhbEdyb3Vwc0lubmVyCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnRocmVzaG9sZCoqIHwgKipmbG9hdCoqIHwgQXBwcm92YWwgdGhyZXNob2xkIHwgCioqdXNlcnMqKiB8ICoqTGlzdFtzdHJdKiogfCBMaXN0IG9mIHVzZXIgSURzIHwgW29wdGlvbmFsXSAKKipncm91cHMqKiB8ICoqTGlzdFtzdHJdKiogfCBMaXN0IG9mIHBvbGljeSBncm91cCBJRHMgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXBwcm92ZXJzX2NvbmZpZ19hcHByb3ZhbF9ncm91cHNfaW5uZXIgaW1wb3J0IEFwcHJvdmVyc0NvbmZpZ0FwcHJvdmFsR3JvdXBzSW5uZXIKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFwcHJvdmVyc0NvbmZpZ0FwcHJvdmFsR3JvdXBzSW5uZXIgZnJvbSBhIEpTT04gc3RyaW5nCmFwcHJvdmVyc19jb25maWdfYXBwcm92YWxfZ3JvdXBzX2lubmVyX2luc3RhbmNlID0gQXBwcm92ZXJzQ29uZmlnQXBwcm92YWxHcm91cHNJbm5lci5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBcHByb3ZlcnNDb25maWdBcHByb3ZhbEdyb3Vwc0lubmVyLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFwcHJvdmVyc19jb25maWdfYXBwcm92YWxfZ3JvdXBzX2lubmVyX2RpY3QgPSBhcHByb3ZlcnNfY29uZmlnX2FwcHJvdmFsX2dyb3Vwc19pbm5lcl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXBwcm92ZXJzQ29uZmlnQXBwcm92YWxHcm91cHNJbm5lciBmcm9tIGEgZGljdAphcHByb3ZlcnNfY29uZmlnX2FwcHJvdmFsX2dyb3Vwc19pbm5lcl9mcm9tX2RpY3QgPSBBcHByb3ZlcnNDb25maWdBcHByb3ZhbEdyb3Vwc0lubmVyLmZyb21fZGljdChhcHByb3ZlcnNfY29uZmlnX2FwcHJvdmFsX2dyb3Vwc19pbm5lcl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/Asset.md b/docs/Asset.md index a50c3549..6e80eed6 100644 --- a/docs/Asset.md +++ b/docs/Asset.md @@ -1,40 +1 @@ -# Asset - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The ID of the asset | -**legacy_id** | **str** | The Legacy ID of the asset | -**blockchain_id** | **str** | The ID of the asset's blockchain | [optional] -**display_name** | **str** | Asset's display name | -**display_symbol** | **str** | Asset's display symbol | -**provider_id** | **str** | The ID of the asset provider | [optional] -**pegged_asset_id** | **str** | The ID of the pegged asset | [optional] -**assets** | **List[str]** | List of asset IDs for virtual assets | [optional] -**asset_class** | [**AssetClass**](AssetClass.md) | | -**decimals** | **float** | Number of decimals for FIAT assets | [optional] -**onchain** | [**AssetDetailsOnchain**](AssetDetailsOnchain.md) | | [optional] -**metadata** | [**AssetDetailsMetadata**](AssetDetailsMetadata.md) | | - -## Example - -```python -from fireblocks.models.asset import Asset - -# TODO update the JSON string below -json = "{}" -# create an instance of Asset from a JSON string -asset_instance = Asset.from_json(json) -# print the JSON string representation of the object -print(Asset.to_json()) - -# convert the object into a dict -asset_dict = asset_instance.to_dict() -# create an instance of Asset from a dict -asset_from_dict = Asset.from_dict(asset_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgYXNzZXQgfCAKKipsZWdhY3lfaWQqKiB8ICoqc3RyKiogfCBUaGUgTGVnYWN5IElEIG9mIHRoZSBhc3NldCB8IAoqKmJsb2NrY2hhaW5faWQqKiB8ICoqc3RyKiogfCBUaGUgSUQgb2YgdGhlIGFzc2V0JiMzOTtzIGJsb2NrY2hhaW4gfCBbb3B0aW9uYWxdIAoqKmRpc3BsYXlfbmFtZSoqIHwgKipzdHIqKiB8IEFzc2V0JiMzOTtzIGRpc3BsYXkgbmFtZSB8IAoqKmRpc3BsYXlfc3ltYm9sKiogfCAqKnN0cioqIHwgQXNzZXQmIzM5O3MgZGlzcGxheSBzeW1ib2wgfCAKKipwcm92aWRlcl9pZCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgYXNzZXQgcHJvdmlkZXIgfCBbb3B0aW9uYWxdIAoqKnBlZ2dlZF9hc3NldF9pZCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgcGVnZ2VkIGFzc2V0IHwgW29wdGlvbmFsXSAKKiphc3NldHMqKiB8ICoqTGlzdFtzdHJdKiogfCBMaXN0IG9mIGFzc2V0IElEcyBmb3IgdmlydHVhbCBhc3NldHMgfCBbb3B0aW9uYWxdIAoqKmFzc2V0X2NsYXNzKiogfCBbKipBc3NldENsYXNzKipdKEFzc2V0Q2xhc3MubWQpIHwgIHwgCioqZGVjaW1hbHMqKiB8ICoqZmxvYXQqKiB8IE51bWJlciBvZiBkZWNpbWFscyBmb3IgRklBVCBhc3NldHMgfCBbb3B0aW9uYWxdIAoqKm9uY2hhaW4qKiB8IFsqKkFzc2V0RGV0YWlsc09uY2hhaW4qKl0oQXNzZXREZXRhaWxzT25jaGFpbi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKm1ldGFkYXRhKiogfCBbKipBc3NldERldGFpbHNNZXRhZGF0YSoqXShBc3NldERldGFpbHNNZXRhZGF0YS5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0IGltcG9ydCBBc3NldAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXQgZnJvbSBhIEpTT04gc3RyaW5nCmFzc2V0X2luc3RhbmNlID0gQXNzZXQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQXNzZXQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYXNzZXRfZGljdCA9IGFzc2V0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldCBmcm9tIGEgZGljdAphc3NldF9mcm9tX2RpY3QgPSBBc3NldC5mcm9tX2RpY3QoYXNzZXRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AssetAlreadyExistHttpError.md b/docs/AssetAlreadyExistHttpError.md index b68ffc49..e5d638aa 100644 --- a/docs/AssetAlreadyExistHttpError.md +++ b/docs/AssetAlreadyExistHttpError.md @@ -1,31 +1 @@ -# AssetAlreadyExistHttpError - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status_code** | **int** | HTTP status code | [optional] -**message** | **str** | Error message | [optional] -**error** | **str** | Short description of the HTTP error | [optional] - -## Example - -```python -from fireblocks.models.asset_already_exist_http_error import AssetAlreadyExistHttpError - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetAlreadyExistHttpError from a JSON string -asset_already_exist_http_error_instance = AssetAlreadyExistHttpError.from_json(json) -# print the JSON string representation of the object -print(AssetAlreadyExistHttpError.to_json()) - -# convert the object into a dict -asset_already_exist_http_error_dict = asset_already_exist_http_error_instance.to_dict() -# create an instance of AssetAlreadyExistHttpError from a dict -asset_already_exist_http_error_from_dict = AssetAlreadyExistHttpError.from_dict(asset_already_exist_http_error_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldEFscmVhZHlFeGlzdEh0dHBFcnJvcgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzdGF0dXNfY29kZSoqIHwgKippbnQqKiB8IEhUVFAgc3RhdHVzIGNvZGUgfCBbb3B0aW9uYWxdIAoqKm1lc3NhZ2UqKiB8ICoqc3RyKiogfCBFcnJvciBtZXNzYWdlIHwgW29wdGlvbmFsXSAKKiplcnJvcioqIHwgKipzdHIqKiB8IFNob3J0IGRlc2NyaXB0aW9uIG9mIHRoZSBIVFRQIGVycm9yIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2FscmVhZHlfZXhpc3RfaHR0cF9lcnJvciBpbXBvcnQgQXNzZXRBbHJlYWR5RXhpc3RIdHRwRXJyb3IKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0QWxyZWFkeUV4aXN0SHR0cEVycm9yIGZyb20gYSBKU09OIHN0cmluZwphc3NldF9hbHJlYWR5X2V4aXN0X2h0dHBfZXJyb3JfaW5zdGFuY2UgPSBBc3NldEFscmVhZHlFeGlzdEh0dHBFcnJvci5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBc3NldEFscmVhZHlFeGlzdEh0dHBFcnJvci50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphc3NldF9hbHJlYWR5X2V4aXN0X2h0dHBfZXJyb3JfZGljdCA9IGFzc2V0X2FscmVhZHlfZXhpc3RfaHR0cF9lcnJvcl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRBbHJlYWR5RXhpc3RIdHRwRXJyb3IgZnJvbSBhIGRpY3QKYXNzZXRfYWxyZWFkeV9leGlzdF9odHRwX2Vycm9yX2Zyb21fZGljdCA9IEFzc2V0QWxyZWFkeUV4aXN0SHR0cEVycm9yLmZyb21fZGljdChhc3NldF9hbHJlYWR5X2V4aXN0X2h0dHBfZXJyb3JfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AssetAmount.md b/docs/AssetAmount.md index 246cfa2a..a62a34c4 100644 --- a/docs/AssetAmount.md +++ b/docs/AssetAmount.md @@ -1,30 +1 @@ -# AssetAmount - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | **str** | | -**asset_id** | **str** | | - -## Example - -```python -from fireblocks.models.asset_amount import AssetAmount - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetAmount from a JSON string -asset_amount_instance = AssetAmount.from_json(json) -# print the JSON string representation of the object -print(AssetAmount.to_json()) - -# convert the object into a dict -asset_amount_dict = asset_amount_instance.to_dict() -# create an instance of AssetAmount from a dict -asset_amount_from_dict = AssetAmount.from_dict(asset_amount_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldEFtb3VudAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphbW91bnQqKiB8ICoqc3RyKiogfCAgfCAKKiphc3NldF9pZCoqIHwgKipzdHIqKiB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfYW1vdW50IGltcG9ydCBBc3NldEFtb3VudAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRBbW91bnQgZnJvbSBhIEpTT04gc3RyaW5nCmFzc2V0X2Ftb3VudF9pbnN0YW5jZSA9IEFzc2V0QW1vdW50LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFzc2V0QW1vdW50LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFzc2V0X2Ftb3VudF9kaWN0ID0gYXNzZXRfYW1vdW50X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldEFtb3VudCBmcm9tIGEgZGljdAphc3NldF9hbW91bnRfZnJvbV9kaWN0ID0gQXNzZXRBbW91bnQuZnJvbV9kaWN0KGFzc2V0X2Ftb3VudF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AssetBadRequestErrorResponse.md b/docs/AssetBadRequestErrorResponse.md index 07103747..202df3bd 100644 --- a/docs/AssetBadRequestErrorResponse.md +++ b/docs/AssetBadRequestErrorResponse.md @@ -1,30 +1 @@ -# AssetBadRequestErrorResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Bad request error code | -**code** | **float** | Error code | - -## Example - -```python -from fireblocks.models.asset_bad_request_error_response import AssetBadRequestErrorResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetBadRequestErrorResponse from a JSON string -asset_bad_request_error_response_instance = AssetBadRequestErrorResponse.from_json(json) -# print the JSON string representation of the object -print(AssetBadRequestErrorResponse.to_json()) - -# convert the object into a dict -asset_bad_request_error_response_dict = asset_bad_request_error_response_instance.to_dict() -# create an instance of AssetBadRequestErrorResponse from a dict -asset_bad_request_error_response_from_dict = AssetBadRequestErrorResponse.from_dict(asset_bad_request_error_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldEJhZFJlcXVlc3RFcnJvclJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm1lc3NhZ2UqKiB8ICoqc3RyKiogfCBCYWQgcmVxdWVzdCBlcnJvciBjb2RlIHwgCioqY29kZSoqIHwgKipmbG9hdCoqIHwgRXJyb3IgY29kZSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfYmFkX3JlcXVlc3RfZXJyb3JfcmVzcG9uc2UgaW1wb3J0IEFzc2V0QmFkUmVxdWVzdEVycm9yUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0QmFkUmVxdWVzdEVycm9yUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmFzc2V0X2JhZF9yZXF1ZXN0X2Vycm9yX3Jlc3BvbnNlX2luc3RhbmNlID0gQXNzZXRCYWRSZXF1ZXN0RXJyb3JSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBc3NldEJhZFJlcXVlc3RFcnJvclJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFzc2V0X2JhZF9yZXF1ZXN0X2Vycm9yX3Jlc3BvbnNlX2RpY3QgPSBhc3NldF9iYWRfcmVxdWVzdF9lcnJvcl9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRCYWRSZXF1ZXN0RXJyb3JSZXNwb25zZSBmcm9tIGEgZGljdAphc3NldF9iYWRfcmVxdWVzdF9lcnJvcl9yZXNwb25zZV9mcm9tX2RpY3QgPSBBc3NldEJhZFJlcXVlc3RFcnJvclJlc3BvbnNlLmZyb21fZGljdChhc3NldF9iYWRfcmVxdWVzdF9lcnJvcl9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AssetClass.md b/docs/AssetClass.md index d0d9e234..b7c4c16e 100644 --- a/docs/AssetClass.md +++ b/docs/AssetClass.md @@ -1,20 +1 @@ -# AssetClass - - -## Enum - -* `NATIVE` (value: `'NATIVE'`) - -* `FT` (value: `'FT'`) - -* `FIAT` (value: `'FIAT'`) - -* `NFT` (value: `'NFT'`) - -* `SFT` (value: `'SFT'`) - -* `VIRTUAL` (value: `'VIRTUAL'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldENsYXNzCgoKIyMgRW51bQoKKiBgTkFUSVZFYCAodmFsdWU6IGAnTkFUSVZFJ2ApCgoqIGBGVGAgKHZhbHVlOiBgJ0ZUJ2ApCgoqIGBGSUFUYCAodmFsdWU6IGAnRklBVCdgKQoKKiBgTkZUYCAodmFsdWU6IGAnTkZUJ2ApCgoqIGBTRlRgICh2YWx1ZTogYCdTRlQnYCkKCiogYFZJUlRVQUxgICh2YWx1ZTogYCdWSVJUVUFMJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AssetConfig.md b/docs/AssetConfig.md index bcd43447..a8c8af7f 100644 --- a/docs/AssetConfig.md +++ b/docs/AssetConfig.md @@ -1,32 +1 @@ -# AssetConfig - -Policy asset configuration - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**nft_transfer** | **bool** | Whether this is an NFT transfer | -**asset_types** | [**List[AssetTypesConfigInner]**](AssetTypesConfigInner.md) | List of asset types | [optional] -**operator** | [**PolicyOperator**](PolicyOperator.md) | | [optional] - -## Example - -```python -from fireblocks.models.asset_config import AssetConfig - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetConfig from a JSON string -asset_config_instance = AssetConfig.from_json(json) -# print the JSON string representation of the object -print(AssetConfig.to_json()) - -# convert the object into a dict -asset_config_dict = asset_config_instance.to_dict() -# create an instance of AssetConfig from a dict -asset_config_from_dict = AssetConfig.from_dict(asset_config_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldENvbmZpZwoKUG9saWN5IGFzc2V0IGNvbmZpZ3VyYXRpb24KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipuZnRfdHJhbnNmZXIqKiB8ICoqYm9vbCoqIHwgV2hldGhlciB0aGlzIGlzIGFuIE5GVCB0cmFuc2ZlciB8IAoqKmFzc2V0X3R5cGVzKiogfCBbKipMaXN0W0Fzc2V0VHlwZXNDb25maWdJbm5lcl0qKl0oQXNzZXRUeXBlc0NvbmZpZ0lubmVyLm1kKSB8IExpc3Qgb2YgYXNzZXQgdHlwZXMgfCBbb3B0aW9uYWxdIAoqKm9wZXJhdG9yKiogfCBbKipQb2xpY3lPcGVyYXRvcioqXShQb2xpY3lPcGVyYXRvci5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfY29uZmlnIGltcG9ydCBBc3NldENvbmZpZwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRDb25maWcgZnJvbSBhIEpTT04gc3RyaW5nCmFzc2V0X2NvbmZpZ19pbnN0YW5jZSA9IEFzc2V0Q29uZmlnLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFzc2V0Q29uZmlnLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFzc2V0X2NvbmZpZ19kaWN0ID0gYXNzZXRfY29uZmlnX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldENvbmZpZyBmcm9tIGEgZGljdAphc3NldF9jb25maWdfZnJvbV9kaWN0ID0gQXNzZXRDb25maWcuZnJvbV9kaWN0KGFzc2V0X2NvbmZpZ19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AssetConflictErrorResponse.md b/docs/AssetConflictErrorResponse.md index f828bd77..bd76eb7a 100644 --- a/docs/AssetConflictErrorResponse.md +++ b/docs/AssetConflictErrorResponse.md @@ -1,30 +1 @@ -# AssetConflictErrorResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Conflict error code | -**code** | **float** | Error code | - -## Example - -```python -from fireblocks.models.asset_conflict_error_response import AssetConflictErrorResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetConflictErrorResponse from a JSON string -asset_conflict_error_response_instance = AssetConflictErrorResponse.from_json(json) -# print the JSON string representation of the object -print(AssetConflictErrorResponse.to_json()) - -# convert the object into a dict -asset_conflict_error_response_dict = asset_conflict_error_response_instance.to_dict() -# create an instance of AssetConflictErrorResponse from a dict -asset_conflict_error_response_from_dict = AssetConflictErrorResponse.from_dict(asset_conflict_error_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldENvbmZsaWN0RXJyb3JSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiptZXNzYWdlKiogfCAqKnN0cioqIHwgQ29uZmxpY3QgZXJyb3IgY29kZSB8IAoqKmNvZGUqKiB8ICoqZmxvYXQqKiB8IEVycm9yIGNvZGUgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2NvbmZsaWN0X2Vycm9yX3Jlc3BvbnNlIGltcG9ydCBBc3NldENvbmZsaWN0RXJyb3JSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRDb25mbGljdEVycm9yUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmFzc2V0X2NvbmZsaWN0X2Vycm9yX3Jlc3BvbnNlX2luc3RhbmNlID0gQXNzZXRDb25mbGljdEVycm9yUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQXNzZXRDb25mbGljdEVycm9yUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYXNzZXRfY29uZmxpY3RfZXJyb3JfcmVzcG9uc2VfZGljdCA9IGFzc2V0X2NvbmZsaWN0X2Vycm9yX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldENvbmZsaWN0RXJyb3JSZXNwb25zZSBmcm9tIGEgZGljdAphc3NldF9jb25mbGljdF9lcnJvcl9yZXNwb25zZV9mcm9tX2RpY3QgPSBBc3NldENvbmZsaWN0RXJyb3JSZXNwb25zZS5mcm9tX2RpY3QoYXNzZXRfY29uZmxpY3RfZXJyb3JfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AssetDetailsMetadata.md b/docs/AssetDetailsMetadata.md index 3b470a20..cf9e0aa3 100644 --- a/docs/AssetDetailsMetadata.md +++ b/docs/AssetDetailsMetadata.md @@ -1,36 +1 @@ -# AssetDetailsMetadata - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**scope** | [**AssetScope**](AssetScope.md) | | -**verified** | **bool** | Is asset verified by Fireblocks | -**deprecated** | **bool** | Is asset deprecated | -**deprecation_referral_id** | **str** | New asset ID replacement | [optional] -**website** | **str** | Vendor’s website | [optional] -**media** | [**List[AssetMedia]**](AssetMedia.md) | Asset’s media | [optional] -**note** | [**AssetNote**](AssetNote.md) | | [optional] -**features** | [**List[AssetFeature]**](AssetFeature.md) | Asset features | [optional] - -## Example - -```python -from fireblocks.models.asset_details_metadata import AssetDetailsMetadata - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetDetailsMetadata from a JSON string -asset_details_metadata_instance = AssetDetailsMetadata.from_json(json) -# print the JSON string representation of the object -print(AssetDetailsMetadata.to_json()) - -# convert the object into a dict -asset_details_metadata_dict = asset_details_metadata_instance.to_dict() -# create an instance of AssetDetailsMetadata from a dict -asset_details_metadata_from_dict = AssetDetailsMetadata.from_dict(asset_details_metadata_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldERldGFpbHNNZXRhZGF0YQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzY29wZSoqIHwgWyoqQXNzZXRTY29wZSoqXShBc3NldFNjb3BlLm1kKSB8ICB8IAoqKnZlcmlmaWVkKiogfCAqKmJvb2wqKiB8IElzIGFzc2V0IHZlcmlmaWVkIGJ5IEZpcmVibG9ja3MgfCAKKipkZXByZWNhdGVkKiogfCAqKmJvb2wqKiB8IElzIGFzc2V0IGRlcHJlY2F0ZWQgfCAKKipkZXByZWNhdGlvbl9yZWZlcnJhbF9pZCoqIHwgKipzdHIqKiB8IE5ldyBhc3NldCBJRCByZXBsYWNlbWVudCB8IFtvcHRpb25hbF0gCioqd2Vic2l0ZSoqIHwgKipzdHIqKiB8IFZlbmRvcuKAmXMgd2Vic2l0ZSB8IFtvcHRpb25hbF0gCioqbWVkaWEqKiB8IFsqKkxpc3RbQXNzZXRNZWRpYV0qKl0oQXNzZXRNZWRpYS5tZCkgfCBBc3NldOKAmXMgbWVkaWEgfCBbb3B0aW9uYWxdIAoqKm5vdGUqKiB8IFsqKkFzc2V0Tm90ZSoqXShBc3NldE5vdGUubWQpIHwgIHwgW29wdGlvbmFsXSAKKipmZWF0dXJlcyoqIHwgWyoqTGlzdFtBc3NldEZlYXR1cmVdKipdKEFzc2V0RmVhdHVyZS5tZCkgfCBBc3NldCBmZWF0dXJlcyB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9kZXRhaWxzX21ldGFkYXRhIGltcG9ydCBBc3NldERldGFpbHNNZXRhZGF0YQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXREZXRhaWxzTWV0YWRhdGEgZnJvbSBhIEpTT04gc3RyaW5nCmFzc2V0X2RldGFpbHNfbWV0YWRhdGFfaW5zdGFuY2UgPSBBc3NldERldGFpbHNNZXRhZGF0YS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBc3NldERldGFpbHNNZXRhZGF0YS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphc3NldF9kZXRhaWxzX21ldGFkYXRhX2RpY3QgPSBhc3NldF9kZXRhaWxzX21ldGFkYXRhX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldERldGFpbHNNZXRhZGF0YSBmcm9tIGEgZGljdAphc3NldF9kZXRhaWxzX21ldGFkYXRhX2Zyb21fZGljdCA9IEFzc2V0RGV0YWlsc01ldGFkYXRhLmZyb21fZGljdChhc3NldF9kZXRhaWxzX21ldGFkYXRhX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AssetDetailsOnchain.md b/docs/AssetDetailsOnchain.md index 93fb1706..9e90cdfd 100644 --- a/docs/AssetDetailsOnchain.md +++ b/docs/AssetDetailsOnchain.md @@ -1,33 +1 @@ -# AssetDetailsOnchain - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**symbol** | **str** | The asset symbol | -**name** | **str** | The asset name | -**address** | **str** | The asset address | [optional] -**decimals** | **float** | Number of decimals | -**standards** | **List[str]** | Supported standards | [optional] - -## Example - -```python -from fireblocks.models.asset_details_onchain import AssetDetailsOnchain - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetDetailsOnchain from a JSON string -asset_details_onchain_instance = AssetDetailsOnchain.from_json(json) -# print the JSON string representation of the object -print(AssetDetailsOnchain.to_json()) - -# convert the object into a dict -asset_details_onchain_dict = asset_details_onchain_instance.to_dict() -# create an instance of AssetDetailsOnchain from a dict -asset_details_onchain_from_dict = AssetDetailsOnchain.from_dict(asset_details_onchain_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldERldGFpbHNPbmNoYWluCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnN5bWJvbCoqIHwgKipzdHIqKiB8IFRoZSBhc3NldCBzeW1ib2wgfCAKKipuYW1lKiogfCAqKnN0cioqIHwgVGhlIGFzc2V0IG5hbWUgfCAKKiphZGRyZXNzKiogfCAqKnN0cioqIHwgVGhlIGFzc2V0IGFkZHJlc3MgfCBbb3B0aW9uYWxdIAoqKmRlY2ltYWxzKiogfCAqKmZsb2F0KiogfCBOdW1iZXIgb2YgZGVjaW1hbHMgfCAKKipzdGFuZGFyZHMqKiB8ICoqTGlzdFtzdHJdKiogfCBTdXBwb3J0ZWQgc3RhbmRhcmRzIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2RldGFpbHNfb25jaGFpbiBpbXBvcnQgQXNzZXREZXRhaWxzT25jaGFpbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXREZXRhaWxzT25jaGFpbiBmcm9tIGEgSlNPTiBzdHJpbmcKYXNzZXRfZGV0YWlsc19vbmNoYWluX2luc3RhbmNlID0gQXNzZXREZXRhaWxzT25jaGFpbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBc3NldERldGFpbHNPbmNoYWluLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFzc2V0X2RldGFpbHNfb25jaGFpbl9kaWN0ID0gYXNzZXRfZGV0YWlsc19vbmNoYWluX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldERldGFpbHNPbmNoYWluIGZyb20gYSBkaWN0CmFzc2V0X2RldGFpbHNfb25jaGFpbl9mcm9tX2RpY3QgPSBBc3NldERldGFpbHNPbmNoYWluLmZyb21fZGljdChhc3NldF9kZXRhaWxzX29uY2hhaW5fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AssetFeature.md b/docs/AssetFeature.md index cd843955..da050d78 100644 --- a/docs/AssetFeature.md +++ b/docs/AssetFeature.md @@ -1,11 +1 @@ -# AssetFeature - -Asset feature - -## Enum - -* `STABLECOIN` (value: `'STABLECOIN'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldEZlYXR1cmUKCkFzc2V0IGZlYXR1cmUKCiMjIEVudW0KCiogYFNUQUJMRUNPSU5gICh2YWx1ZTogYCdTVEFCTEVDT0lOJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AssetForbiddenErrorResponse.md b/docs/AssetForbiddenErrorResponse.md index 7813c5db..2239df63 100644 --- a/docs/AssetForbiddenErrorResponse.md +++ b/docs/AssetForbiddenErrorResponse.md @@ -1,30 +1 @@ -# AssetForbiddenErrorResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Forbidden error code | -**code** | **float** | Error code | - -## Example - -```python -from fireblocks.models.asset_forbidden_error_response import AssetForbiddenErrorResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetForbiddenErrorResponse from a JSON string -asset_forbidden_error_response_instance = AssetForbiddenErrorResponse.from_json(json) -# print the JSON string representation of the object -print(AssetForbiddenErrorResponse.to_json()) - -# convert the object into a dict -asset_forbidden_error_response_dict = asset_forbidden_error_response_instance.to_dict() -# create an instance of AssetForbiddenErrorResponse from a dict -asset_forbidden_error_response_from_dict = AssetForbiddenErrorResponse.from_dict(asset_forbidden_error_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldEZvcmJpZGRlbkVycm9yUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbWVzc2FnZSoqIHwgKipzdHIqKiB8IEZvcmJpZGRlbiBlcnJvciBjb2RlIHwgCioqY29kZSoqIHwgKipmbG9hdCoqIHwgRXJyb3IgY29kZSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfZm9yYmlkZGVuX2Vycm9yX3Jlc3BvbnNlIGltcG9ydCBBc3NldEZvcmJpZGRlbkVycm9yUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0Rm9yYmlkZGVuRXJyb3JSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKYXNzZXRfZm9yYmlkZGVuX2Vycm9yX3Jlc3BvbnNlX2luc3RhbmNlID0gQXNzZXRGb3JiaWRkZW5FcnJvclJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFzc2V0Rm9yYmlkZGVuRXJyb3JSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphc3NldF9mb3JiaWRkZW5fZXJyb3JfcmVzcG9uc2VfZGljdCA9IGFzc2V0X2ZvcmJpZGRlbl9lcnJvcl9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRGb3JiaWRkZW5FcnJvclJlc3BvbnNlIGZyb20gYSBkaWN0CmFzc2V0X2ZvcmJpZGRlbl9lcnJvcl9yZXNwb25zZV9mcm9tX2RpY3QgPSBBc3NldEZvcmJpZGRlbkVycm9yUmVzcG9uc2UuZnJvbV9kaWN0KGFzc2V0X2ZvcmJpZGRlbl9lcnJvcl9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AssetInternalServerErrorResponse.md b/docs/AssetInternalServerErrorResponse.md index c8f4e831..6c2a6ae8 100644 --- a/docs/AssetInternalServerErrorResponse.md +++ b/docs/AssetInternalServerErrorResponse.md @@ -1,30 +1 @@ -# AssetInternalServerErrorResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Internal server error code | -**code** | **float** | Error code | - -## Example - -```python -from fireblocks.models.asset_internal_server_error_response import AssetInternalServerErrorResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetInternalServerErrorResponse from a JSON string -asset_internal_server_error_response_instance = AssetInternalServerErrorResponse.from_json(json) -# print the JSON string representation of the object -print(AssetInternalServerErrorResponse.to_json()) - -# convert the object into a dict -asset_internal_server_error_response_dict = asset_internal_server_error_response_instance.to_dict() -# create an instance of AssetInternalServerErrorResponse from a dict -asset_internal_server_error_response_from_dict = AssetInternalServerErrorResponse.from_dict(asset_internal_server_error_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldEludGVybmFsU2VydmVyRXJyb3JSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiptZXNzYWdlKiogfCAqKnN0cioqIHwgSW50ZXJuYWwgc2VydmVyIGVycm9yIGNvZGUgfCAKKipjb2RlKiogfCAqKmZsb2F0KiogfCBFcnJvciBjb2RlIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9pbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfcmVzcG9uc2UgaW1wb3J0IEFzc2V0SW50ZXJuYWxTZXJ2ZXJFcnJvclJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldEludGVybmFsU2VydmVyRXJyb3JSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKYXNzZXRfaW50ZXJuYWxfc2VydmVyX2Vycm9yX3Jlc3BvbnNlX2luc3RhbmNlID0gQXNzZXRJbnRlcm5hbFNlcnZlckVycm9yUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQXNzZXRJbnRlcm5hbFNlcnZlckVycm9yUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYXNzZXRfaW50ZXJuYWxfc2VydmVyX2Vycm9yX3Jlc3BvbnNlX2RpY3QgPSBhc3NldF9pbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0SW50ZXJuYWxTZXJ2ZXJFcnJvclJlc3BvbnNlIGZyb20gYSBkaWN0CmFzc2V0X2ludGVybmFsX3NlcnZlcl9lcnJvcl9yZXNwb25zZV9mcm9tX2RpY3QgPSBBc3NldEludGVybmFsU2VydmVyRXJyb3JSZXNwb25zZS5mcm9tX2RpY3QoYXNzZXRfaW50ZXJuYWxfc2VydmVyX2Vycm9yX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AssetMedia.md b/docs/AssetMedia.md index 73baa0dc..06b2941f 100644 --- a/docs/AssetMedia.md +++ b/docs/AssetMedia.md @@ -1,31 +1 @@ -# AssetMedia - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**url** | **str** | Media URL | -**type** | **str** | Media type | -**attributes** | [**AssetMediaAttributes**](AssetMediaAttributes.md) | | [optional] - -## Example - -```python -from fireblocks.models.asset_media import AssetMedia - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetMedia from a JSON string -asset_media_instance = AssetMedia.from_json(json) -# print the JSON string representation of the object -print(AssetMedia.to_json()) - -# convert the object into a dict -asset_media_dict = asset_media_instance.to_dict() -# create an instance of AssetMedia from a dict -asset_media_from_dict = AssetMedia.from_dict(asset_media_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldE1lZGlhCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnVybCoqIHwgKipzdHIqKiB8IE1lZGlhIFVSTCB8IAoqKnR5cGUqKiB8ICoqc3RyKiogfCBNZWRpYSB0eXBlIHwgCioqYXR0cmlidXRlcyoqIHwgWyoqQXNzZXRNZWRpYUF0dHJpYnV0ZXMqKl0oQXNzZXRNZWRpYUF0dHJpYnV0ZXMubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X21lZGlhIGltcG9ydCBBc3NldE1lZGlhCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldE1lZGlhIGZyb20gYSBKU09OIHN0cmluZwphc3NldF9tZWRpYV9pbnN0YW5jZSA9IEFzc2V0TWVkaWEuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQXNzZXRNZWRpYS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphc3NldF9tZWRpYV9kaWN0ID0gYXNzZXRfbWVkaWFfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0TWVkaWEgZnJvbSBhIGRpY3QKYXNzZXRfbWVkaWFfZnJvbV9kaWN0ID0gQXNzZXRNZWRpYS5mcm9tX2RpY3QoYXNzZXRfbWVkaWFfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AssetMediaAttributes.md b/docs/AssetMediaAttributes.md index e70ef32f..eb5620e5 100644 --- a/docs/AssetMediaAttributes.md +++ b/docs/AssetMediaAttributes.md @@ -1,30 +1 @@ -# AssetMediaAttributes - -Media attributes - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**monochrome** | **bool** | Monochrome flag | [optional] - -## Example - -```python -from fireblocks.models.asset_media_attributes import AssetMediaAttributes - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetMediaAttributes from a JSON string -asset_media_attributes_instance = AssetMediaAttributes.from_json(json) -# print the JSON string representation of the object -print(AssetMediaAttributes.to_json()) - -# convert the object into a dict -asset_media_attributes_dict = asset_media_attributes_instance.to_dict() -# create an instance of AssetMediaAttributes from a dict -asset_media_attributes_from_dict = AssetMediaAttributes.from_dict(asset_media_attributes_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldE1lZGlhQXR0cmlidXRlcwoKTWVkaWEgYXR0cmlidXRlcwoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm1vbm9jaHJvbWUqKiB8ICoqYm9vbCoqIHwgTW9ub2Nocm9tZSBmbGFnIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X21lZGlhX2F0dHJpYnV0ZXMgaW1wb3J0IEFzc2V0TWVkaWFBdHRyaWJ1dGVzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldE1lZGlhQXR0cmlidXRlcyBmcm9tIGEgSlNPTiBzdHJpbmcKYXNzZXRfbWVkaWFfYXR0cmlidXRlc19pbnN0YW5jZSA9IEFzc2V0TWVkaWFBdHRyaWJ1dGVzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFzc2V0TWVkaWFBdHRyaWJ1dGVzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFzc2V0X21lZGlhX2F0dHJpYnV0ZXNfZGljdCA9IGFzc2V0X21lZGlhX2F0dHJpYnV0ZXNfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0TWVkaWFBdHRyaWJ1dGVzIGZyb20gYSBkaWN0CmFzc2V0X21lZGlhX2F0dHJpYnV0ZXNfZnJvbV9kaWN0ID0gQXNzZXRNZWRpYUF0dHJpYnV0ZXMuZnJvbV9kaWN0KGFzc2V0X21lZGlhX2F0dHJpYnV0ZXNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AssetMetadata.md b/docs/AssetMetadata.md index fefab139..80676c08 100644 --- a/docs/AssetMetadata.md +++ b/docs/AssetMetadata.md @@ -1,30 +1 @@ -# AssetMetadata - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**scope** | **str** | The scope of the asset | -**deprecated** | **bool** | Is asset deprecated | - -## Example - -```python -from fireblocks.models.asset_metadata import AssetMetadata - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetMetadata from a JSON string -asset_metadata_instance = AssetMetadata.from_json(json) -# print the JSON string representation of the object -print(AssetMetadata.to_json()) - -# convert the object into a dict -asset_metadata_dict = asset_metadata_instance.to_dict() -# create an instance of AssetMetadata from a dict -asset_metadata_from_dict = AssetMetadata.from_dict(asset_metadata_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldE1ldGFkYXRhCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnNjb3BlKiogfCAqKnN0cioqIHwgVGhlIHNjb3BlIG9mIHRoZSBhc3NldCB8IAoqKmRlcHJlY2F0ZWQqKiB8ICoqYm9vbCoqIHwgSXMgYXNzZXQgZGVwcmVjYXRlZCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfbWV0YWRhdGEgaW1wb3J0IEFzc2V0TWV0YWRhdGEKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0TWV0YWRhdGEgZnJvbSBhIEpTT04gc3RyaW5nCmFzc2V0X21ldGFkYXRhX2luc3RhbmNlID0gQXNzZXRNZXRhZGF0YS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBc3NldE1ldGFkYXRhLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFzc2V0X21ldGFkYXRhX2RpY3QgPSBhc3NldF9tZXRhZGF0YV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRNZXRhZGF0YSBmcm9tIGEgZGljdAphc3NldF9tZXRhZGF0YV9mcm9tX2RpY3QgPSBBc3NldE1ldGFkYXRhLmZyb21fZGljdChhc3NldF9tZXRhZGF0YV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AssetMetadataDto.md b/docs/AssetMetadataDto.md index 427c04e6..463bf8e4 100644 --- a/docs/AssetMetadataDto.md +++ b/docs/AssetMetadataDto.md @@ -1,41 +1 @@ -# AssetMetadataDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**asset_id** | **str** | The Fireblocks` asset id | -**name** | **str** | The name of the token | [optional] -**symbol** | **str** | The symbol of the token | [optional] -**network_protocol** | **str** | The network protocol of the token | [optional] -**total_supply** | **str** | The total supply of the token | [optional] -**holders_count** | **float** | The number of holders of the token | [optional] -**type** | **str** | The type of the token | [optional] -**contract_address** | **str** | The address of the token contract | [optional] -**issuer_address** | **str** | In case of Stellar or Ripple, the address of the issuer of the token | [optional] -**testnet** | **bool** | Is it deployed on testnet or to mainnet | [optional] -**blockchain** | **str** | The blockchain native asset id which the token is deployed on | [optional] -**decimals** | **float** | The number of decimals of the token | [optional] -**vault_account_id** | **str** | The id of the vault account that initiated the request to issue the token. Will be empty if token was issued outside of Fireblocks. | [optional] - -## Example - -```python -from fireblocks.models.asset_metadata_dto import AssetMetadataDto - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetMetadataDto from a JSON string -asset_metadata_dto_instance = AssetMetadataDto.from_json(json) -# print the JSON string representation of the object -print(AssetMetadataDto.to_json()) - -# convert the object into a dict -asset_metadata_dto_dict = asset_metadata_dto_instance.to_dict() -# create an instance of AssetMetadataDto from a dict -asset_metadata_dto_from_dict = AssetMetadataDto.from_dict(asset_metadata_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldE1ldGFkYXRhRHRvCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFzc2V0X2lkKiogfCAqKnN0cioqIHwgVGhlIEZpcmVibG9ja3MmI3g2MDsgYXNzZXQgaWQgfCAKKipuYW1lKiogfCAqKnN0cioqIHwgVGhlIG5hbWUgb2YgdGhlIHRva2VuIHwgW29wdGlvbmFsXSAKKipzeW1ib2wqKiB8ICoqc3RyKiogfCBUaGUgc3ltYm9sIG9mIHRoZSB0b2tlbiB8IFtvcHRpb25hbF0gCioqbmV0d29ya19wcm90b2NvbCoqIHwgKipzdHIqKiB8IFRoZSBuZXR3b3JrIHByb3RvY29sIG9mIHRoZSB0b2tlbiB8IFtvcHRpb25hbF0gCioqdG90YWxfc3VwcGx5KiogfCAqKnN0cioqIHwgVGhlIHRvdGFsIHN1cHBseSBvZiB0aGUgdG9rZW4gfCBbb3B0aW9uYWxdIAoqKmhvbGRlcnNfY291bnQqKiB8ICoqZmxvYXQqKiB8IFRoZSBudW1iZXIgb2YgaG9sZGVycyBvZiB0aGUgdG9rZW4gfCBbb3B0aW9uYWxdIAoqKnR5cGUqKiB8ICoqc3RyKiogfCBUaGUgdHlwZSBvZiB0aGUgdG9rZW4gfCBbb3B0aW9uYWxdIAoqKmNvbnRyYWN0X2FkZHJlc3MqKiB8ICoqc3RyKiogfCBUaGUgYWRkcmVzcyBvZiB0aGUgdG9rZW4gY29udHJhY3QgfCBbb3B0aW9uYWxdIAoqKmlzc3Vlcl9hZGRyZXNzKiogfCAqKnN0cioqIHwgSW4gY2FzZSBvZiBTdGVsbGFyIG9yIFJpcHBsZSwgdGhlIGFkZHJlc3Mgb2YgdGhlIGlzc3VlciBvZiB0aGUgdG9rZW4gfCBbb3B0aW9uYWxdIAoqKnRlc3RuZXQqKiB8ICoqYm9vbCoqIHwgSXMgaXQgZGVwbG95ZWQgb24gdGVzdG5ldCBvciB0byBtYWlubmV0IHwgW29wdGlvbmFsXSAKKipibG9ja2NoYWluKiogfCAqKnN0cioqIHwgVGhlIGJsb2NrY2hhaW4gbmF0aXZlIGFzc2V0IGlkIHdoaWNoIHRoZSB0b2tlbiBpcyBkZXBsb3llZCBvbiB8IFtvcHRpb25hbF0gCioqZGVjaW1hbHMqKiB8ICoqZmxvYXQqKiB8IFRoZSBudW1iZXIgb2YgZGVjaW1hbHMgb2YgdGhlIHRva2VuIHwgW29wdGlvbmFsXSAKKip2YXVsdF9hY2NvdW50X2lkKiogfCAqKnN0cioqIHwgVGhlIGlkIG9mIHRoZSB2YXVsdCBhY2NvdW50IHRoYXQgaW5pdGlhdGVkIHRoZSByZXF1ZXN0IHRvIGlzc3VlIHRoZSB0b2tlbi4gV2lsbCBiZSBlbXB0eSBpZiB0b2tlbiB3YXMgaXNzdWVkIG91dHNpZGUgb2YgRmlyZWJsb2Nrcy4gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfbWV0YWRhdGFfZHRvIGltcG9ydCBBc3NldE1ldGFkYXRhRHRvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldE1ldGFkYXRhRHRvIGZyb20gYSBKU09OIHN0cmluZwphc3NldF9tZXRhZGF0YV9kdG9faW5zdGFuY2UgPSBBc3NldE1ldGFkYXRhRHRvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFzc2V0TWV0YWRhdGFEdG8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYXNzZXRfbWV0YWRhdGFfZHRvX2RpY3QgPSBhc3NldF9tZXRhZGF0YV9kdG9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0TWV0YWRhdGFEdG8gZnJvbSBhIGRpY3QKYXNzZXRfbWV0YWRhdGFfZHRvX2Zyb21fZGljdCA9IEFzc2V0TWV0YWRhdGFEdG8uZnJvbV9kaWN0KGFzc2V0X21ldGFkYXRhX2R0b19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AssetMetadataRequest.md b/docs/AssetMetadataRequest.md index 6e55c7be..5b61b3bd 100644 --- a/docs/AssetMetadataRequest.md +++ b/docs/AssetMetadataRequest.md @@ -1,29 +1 @@ -# AssetMetadataRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**note** | [**AssetNoteRequest**](AssetNoteRequest.md) | | [optional] - -## Example - -```python -from fireblocks.models.asset_metadata_request import AssetMetadataRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetMetadataRequest from a JSON string -asset_metadata_request_instance = AssetMetadataRequest.from_json(json) -# print the JSON string representation of the object -print(AssetMetadataRequest.to_json()) - -# convert the object into a dict -asset_metadata_request_dict = asset_metadata_request_instance.to_dict() -# create an instance of AssetMetadataRequest from a dict -asset_metadata_request_from_dict = AssetMetadataRequest.from_dict(asset_metadata_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldE1ldGFkYXRhUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipub3RlKiogfCBbKipBc3NldE5vdGVSZXF1ZXN0KipdKEFzc2V0Tm90ZVJlcXVlc3QubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X21ldGFkYXRhX3JlcXVlc3QgaW1wb3J0IEFzc2V0TWV0YWRhdGFSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldE1ldGFkYXRhUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKYXNzZXRfbWV0YWRhdGFfcmVxdWVzdF9pbnN0YW5jZSA9IEFzc2V0TWV0YWRhdGFSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFzc2V0TWV0YWRhdGFSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFzc2V0X21ldGFkYXRhX3JlcXVlc3RfZGljdCA9IGFzc2V0X21ldGFkYXRhX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0TWV0YWRhdGFSZXF1ZXN0IGZyb20gYSBkaWN0CmFzc2V0X21ldGFkYXRhX3JlcXVlc3RfZnJvbV9kaWN0ID0gQXNzZXRNZXRhZGF0YVJlcXVlc3QuZnJvbV9kaWN0KGFzc2V0X21ldGFkYXRhX3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AssetNotFoundErrorResponse.md b/docs/AssetNotFoundErrorResponse.md index f022995d..3c536937 100644 --- a/docs/AssetNotFoundErrorResponse.md +++ b/docs/AssetNotFoundErrorResponse.md @@ -1,30 +1 @@ -# AssetNotFoundErrorResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Not found error code | -**code** | **float** | Error code | - -## Example - -```python -from fireblocks.models.asset_not_found_error_response import AssetNotFoundErrorResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetNotFoundErrorResponse from a JSON string -asset_not_found_error_response_instance = AssetNotFoundErrorResponse.from_json(json) -# print the JSON string representation of the object -print(AssetNotFoundErrorResponse.to_json()) - -# convert the object into a dict -asset_not_found_error_response_dict = asset_not_found_error_response_instance.to_dict() -# create an instance of AssetNotFoundErrorResponse from a dict -asset_not_found_error_response_from_dict = AssetNotFoundErrorResponse.from_dict(asset_not_found_error_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldE5vdEZvdW5kRXJyb3JSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiptZXNzYWdlKiogfCAqKnN0cioqIHwgTm90IGZvdW5kIGVycm9yIGNvZGUgfCAKKipjb2RlKiogfCAqKmZsb2F0KiogfCBFcnJvciBjb2RlIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9ub3RfZm91bmRfZXJyb3JfcmVzcG9uc2UgaW1wb3J0IEFzc2V0Tm90Rm91bmRFcnJvclJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldE5vdEZvdW5kRXJyb3JSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKYXNzZXRfbm90X2ZvdW5kX2Vycm9yX3Jlc3BvbnNlX2luc3RhbmNlID0gQXNzZXROb3RGb3VuZEVycm9yUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQXNzZXROb3RGb3VuZEVycm9yUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYXNzZXRfbm90X2ZvdW5kX2Vycm9yX3Jlc3BvbnNlX2RpY3QgPSBhc3NldF9ub3RfZm91bmRfZXJyb3JfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0Tm90Rm91bmRFcnJvclJlc3BvbnNlIGZyb20gYSBkaWN0CmFzc2V0X25vdF9mb3VuZF9lcnJvcl9yZXNwb25zZV9mcm9tX2RpY3QgPSBBc3NldE5vdEZvdW5kRXJyb3JSZXNwb25zZS5mcm9tX2RpY3QoYXNzZXRfbm90X2ZvdW5kX2Vycm9yX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AssetNote.md b/docs/AssetNote.md index 0f2b0695..252535c3 100644 --- a/docs/AssetNote.md +++ b/docs/AssetNote.md @@ -1,32 +1 @@ -# AssetNote - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**text** | **str** | Note content | -**user_id** | **str** | Who updated the note (uuid) | -**user_name** | **str** | User name | -**updated_at** | **datetime** | ISO Timestamp when last updated | - -## Example - -```python -from fireblocks.models.asset_note import AssetNote - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetNote from a JSON string -asset_note_instance = AssetNote.from_json(json) -# print the JSON string representation of the object -print(AssetNote.to_json()) - -# convert the object into a dict -asset_note_dict = asset_note_instance.to_dict() -# create an instance of AssetNote from a dict -asset_note_from_dict = AssetNote.from_dict(asset_note_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldE5vdGUKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdGV4dCoqIHwgKipzdHIqKiB8IE5vdGUgY29udGVudCB8IAoqKnVzZXJfaWQqKiB8ICoqc3RyKiogfCBXaG8gdXBkYXRlZCB0aGUgbm90ZSAodXVpZCkgfCAKKip1c2VyX25hbWUqKiB8ICoqc3RyKiogfCBVc2VyIG5hbWUgfCAKKip1cGRhdGVkX2F0KiogfCAqKmRhdGV0aW1lKiogfCBJU08gVGltZXN0YW1wIHdoZW4gbGFzdCB1cGRhdGVkIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9ub3RlIGltcG9ydCBBc3NldE5vdGUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0Tm90ZSBmcm9tIGEgSlNPTiBzdHJpbmcKYXNzZXRfbm90ZV9pbnN0YW5jZSA9IEFzc2V0Tm90ZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBc3NldE5vdGUudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYXNzZXRfbm90ZV9kaWN0ID0gYXNzZXRfbm90ZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXROb3RlIGZyb20gYSBkaWN0CmFzc2V0X25vdGVfZnJvbV9kaWN0ID0gQXNzZXROb3RlLmZyb21fZGljdChhc3NldF9ub3RlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AssetNoteRequest.md b/docs/AssetNoteRequest.md index a8692c63..86758e37 100644 --- a/docs/AssetNoteRequest.md +++ b/docs/AssetNoteRequest.md @@ -1,29 +1 @@ -# AssetNoteRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**text** | **str** | Asset user note | [optional] - -## Example - -```python -from fireblocks.models.asset_note_request import AssetNoteRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetNoteRequest from a JSON string -asset_note_request_instance = AssetNoteRequest.from_json(json) -# print the JSON string representation of the object -print(AssetNoteRequest.to_json()) - -# convert the object into a dict -asset_note_request_dict = asset_note_request_instance.to_dict() -# create an instance of AssetNoteRequest from a dict -asset_note_request_from_dict = AssetNoteRequest.from_dict(asset_note_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldE5vdGVSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnRleHQqKiB8ICoqc3RyKiogfCBBc3NldCB1c2VyIG5vdGUgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfbm90ZV9yZXF1ZXN0IGltcG9ydCBBc3NldE5vdGVSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldE5vdGVSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwphc3NldF9ub3RlX3JlcXVlc3RfaW5zdGFuY2UgPSBBc3NldE5vdGVSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFzc2V0Tm90ZVJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYXNzZXRfbm90ZV9yZXF1ZXN0X2RpY3QgPSBhc3NldF9ub3RlX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0Tm90ZVJlcXVlc3QgZnJvbSBhIGRpY3QKYXNzZXRfbm90ZV9yZXF1ZXN0X2Zyb21fZGljdCA9IEFzc2V0Tm90ZVJlcXVlc3QuZnJvbV9kaWN0KGFzc2V0X25vdGVfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AssetOnchain.md b/docs/AssetOnchain.md index 64e3b664..06545cca 100644 --- a/docs/AssetOnchain.md +++ b/docs/AssetOnchain.md @@ -1,33 +1 @@ -# AssetOnchain - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**symbol** | **str** | The asset symbol | -**name** | **str** | The asset name | -**address** | **str** | The asset address | [optional] -**decimals** | **float** | Number of decimals | -**standard** | **str** | The asset standard | [optional] - -## Example - -```python -from fireblocks.models.asset_onchain import AssetOnchain - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetOnchain from a JSON string -asset_onchain_instance = AssetOnchain.from_json(json) -# print the JSON string representation of the object -print(AssetOnchain.to_json()) - -# convert the object into a dict -asset_onchain_dict = asset_onchain_instance.to_dict() -# create an instance of AssetOnchain from a dict -asset_onchain_from_dict = AssetOnchain.from_dict(asset_onchain_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldE9uY2hhaW4KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3ltYm9sKiogfCAqKnN0cioqIHwgVGhlIGFzc2V0IHN5bWJvbCB8IAoqKm5hbWUqKiB8ICoqc3RyKiogfCBUaGUgYXNzZXQgbmFtZSB8IAoqKmFkZHJlc3MqKiB8ICoqc3RyKiogfCBUaGUgYXNzZXQgYWRkcmVzcyB8IFtvcHRpb25hbF0gCioqZGVjaW1hbHMqKiB8ICoqZmxvYXQqKiB8IE51bWJlciBvZiBkZWNpbWFscyB8IAoqKnN0YW5kYXJkKiogfCAqKnN0cioqIHwgVGhlIGFzc2V0IHN0YW5kYXJkIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X29uY2hhaW4gaW1wb3J0IEFzc2V0T25jaGFpbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRPbmNoYWluIGZyb20gYSBKU09OIHN0cmluZwphc3NldF9vbmNoYWluX2luc3RhbmNlID0gQXNzZXRPbmNoYWluLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFzc2V0T25jaGFpbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphc3NldF9vbmNoYWluX2RpY3QgPSBhc3NldF9vbmNoYWluX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldE9uY2hhaW4gZnJvbSBhIGRpY3QKYXNzZXRfb25jaGFpbl9mcm9tX2RpY3QgPSBBc3NldE9uY2hhaW4uZnJvbV9kaWN0KGFzc2V0X29uY2hhaW5fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AssetPriceForbiddenErrorResponse.md b/docs/AssetPriceForbiddenErrorResponse.md index 8d6edf3a..01ff8cd4 100644 --- a/docs/AssetPriceForbiddenErrorResponse.md +++ b/docs/AssetPriceForbiddenErrorResponse.md @@ -1,30 +1 @@ -# AssetPriceForbiddenErrorResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Forbidden error message | -**code** | **float** | Error code | - -## Example - -```python -from fireblocks.models.asset_price_forbidden_error_response import AssetPriceForbiddenErrorResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetPriceForbiddenErrorResponse from a JSON string -asset_price_forbidden_error_response_instance = AssetPriceForbiddenErrorResponse.from_json(json) -# print the JSON string representation of the object -print(AssetPriceForbiddenErrorResponse.to_json()) - -# convert the object into a dict -asset_price_forbidden_error_response_dict = asset_price_forbidden_error_response_instance.to_dict() -# create an instance of AssetPriceForbiddenErrorResponse from a dict -asset_price_forbidden_error_response_from_dict = AssetPriceForbiddenErrorResponse.from_dict(asset_price_forbidden_error_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldFByaWNlRm9yYmlkZGVuRXJyb3JSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiptZXNzYWdlKiogfCAqKnN0cioqIHwgRm9yYmlkZGVuIGVycm9yIG1lc3NhZ2UgfCAKKipjb2RlKiogfCAqKmZsb2F0KiogfCBFcnJvciBjb2RlIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9wcmljZV9mb3JiaWRkZW5fZXJyb3JfcmVzcG9uc2UgaW1wb3J0IEFzc2V0UHJpY2VGb3JiaWRkZW5FcnJvclJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldFByaWNlRm9yYmlkZGVuRXJyb3JSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKYXNzZXRfcHJpY2VfZm9yYmlkZGVuX2Vycm9yX3Jlc3BvbnNlX2luc3RhbmNlID0gQXNzZXRQcmljZUZvcmJpZGRlbkVycm9yUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQXNzZXRQcmljZUZvcmJpZGRlbkVycm9yUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYXNzZXRfcHJpY2VfZm9yYmlkZGVuX2Vycm9yX3Jlc3BvbnNlX2RpY3QgPSBhc3NldF9wcmljZV9mb3JiaWRkZW5fZXJyb3JfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0UHJpY2VGb3JiaWRkZW5FcnJvclJlc3BvbnNlIGZyb20gYSBkaWN0CmFzc2V0X3ByaWNlX2ZvcmJpZGRlbl9lcnJvcl9yZXNwb25zZV9mcm9tX2RpY3QgPSBBc3NldFByaWNlRm9yYmlkZGVuRXJyb3JSZXNwb25zZS5mcm9tX2RpY3QoYXNzZXRfcHJpY2VfZm9yYmlkZGVuX2Vycm9yX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AssetPriceNotFoundErrorResponse.md b/docs/AssetPriceNotFoundErrorResponse.md index a035c55a..23a3df01 100644 --- a/docs/AssetPriceNotFoundErrorResponse.md +++ b/docs/AssetPriceNotFoundErrorResponse.md @@ -1,30 +1 @@ -# AssetPriceNotFoundErrorResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Not found error message | -**code** | **float** | Error code | - -## Example - -```python -from fireblocks.models.asset_price_not_found_error_response import AssetPriceNotFoundErrorResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetPriceNotFoundErrorResponse from a JSON string -asset_price_not_found_error_response_instance = AssetPriceNotFoundErrorResponse.from_json(json) -# print the JSON string representation of the object -print(AssetPriceNotFoundErrorResponse.to_json()) - -# convert the object into a dict -asset_price_not_found_error_response_dict = asset_price_not_found_error_response_instance.to_dict() -# create an instance of AssetPriceNotFoundErrorResponse from a dict -asset_price_not_found_error_response_from_dict = AssetPriceNotFoundErrorResponse.from_dict(asset_price_not_found_error_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldFByaWNlTm90Rm91bmRFcnJvclJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm1lc3NhZ2UqKiB8ICoqc3RyKiogfCBOb3QgZm91bmQgZXJyb3IgbWVzc2FnZSB8IAoqKmNvZGUqKiB8ICoqZmxvYXQqKiB8IEVycm9yIGNvZGUgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X3ByaWNlX25vdF9mb3VuZF9lcnJvcl9yZXNwb25zZSBpbXBvcnQgQXNzZXRQcmljZU5vdEZvdW5kRXJyb3JSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRQcmljZU5vdEZvdW5kRXJyb3JSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKYXNzZXRfcHJpY2Vfbm90X2ZvdW5kX2Vycm9yX3Jlc3BvbnNlX2luc3RhbmNlID0gQXNzZXRQcmljZU5vdEZvdW5kRXJyb3JSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBc3NldFByaWNlTm90Rm91bmRFcnJvclJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFzc2V0X3ByaWNlX25vdF9mb3VuZF9lcnJvcl9yZXNwb25zZV9kaWN0ID0gYXNzZXRfcHJpY2Vfbm90X2ZvdW5kX2Vycm9yX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldFByaWNlTm90Rm91bmRFcnJvclJlc3BvbnNlIGZyb20gYSBkaWN0CmFzc2V0X3ByaWNlX25vdF9mb3VuZF9lcnJvcl9yZXNwb25zZV9mcm9tX2RpY3QgPSBBc3NldFByaWNlTm90Rm91bmRFcnJvclJlc3BvbnNlLmZyb21fZGljdChhc3NldF9wcmljZV9ub3RfZm91bmRfZXJyb3JfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AssetPriceResponse.md b/docs/AssetPriceResponse.md index 7da6230d..e1036364 100644 --- a/docs/AssetPriceResponse.md +++ b/docs/AssetPriceResponse.md @@ -1,33 +1 @@ -# AssetPriceResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**legacy_id** | **str** | The ID of the asset | -**last_update_at** | **float** | Time of last price update | -**currency** | **str** | Currency (according to ISO 4217 currency codes) | -**price** | **float** | Price in currency | -**source** | **str** | Source of the price data | - -## Example - -```python -from fireblocks.models.asset_price_response import AssetPriceResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetPriceResponse from a JSON string -asset_price_response_instance = AssetPriceResponse.from_json(json) -# print the JSON string representation of the object -print(AssetPriceResponse.to_json()) - -# convert the object into a dict -asset_price_response_dict = asset_price_response_instance.to_dict() -# create an instance of AssetPriceResponse from a dict -asset_price_response_from_dict = AssetPriceResponse.from_dict(asset_price_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldFByaWNlUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbGVnYWN5X2lkKiogfCAqKnN0cioqIHwgVGhlIElEIG9mIHRoZSBhc3NldCB8IAoqKmxhc3RfdXBkYXRlX2F0KiogfCAqKmZsb2F0KiogfCBUaW1lIG9mIGxhc3QgcHJpY2UgdXBkYXRlIHwgCioqY3VycmVuY3kqKiB8ICoqc3RyKiogfCBDdXJyZW5jeSAoYWNjb3JkaW5nIHRvIElTTyA0MjE3IGN1cnJlbmN5IGNvZGVzKSB8IAoqKnByaWNlKiogfCAqKmZsb2F0KiogfCBQcmljZSBpbiBjdXJyZW5jeSB8IAoqKnNvdXJjZSoqIHwgKipzdHIqKiB8IFNvdXJjZSBvZiB0aGUgcHJpY2UgZGF0YSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfcHJpY2VfcmVzcG9uc2UgaW1wb3J0IEFzc2V0UHJpY2VSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRQcmljZVJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwphc3NldF9wcmljZV9yZXNwb25zZV9pbnN0YW5jZSA9IEFzc2V0UHJpY2VSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBc3NldFByaWNlUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYXNzZXRfcHJpY2VfcmVzcG9uc2VfZGljdCA9IGFzc2V0X3ByaWNlX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldFByaWNlUmVzcG9uc2UgZnJvbSBhIGRpY3QKYXNzZXRfcHJpY2VfcmVzcG9uc2VfZnJvbV9kaWN0ID0gQXNzZXRQcmljZVJlc3BvbnNlLmZyb21fZGljdChhc3NldF9wcmljZV9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AssetResponse.md b/docs/AssetResponse.md index 5d143b97..1f7d6e85 100644 --- a/docs/AssetResponse.md +++ b/docs/AssetResponse.md @@ -1,32 +1 @@ -# AssetResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**legacy_id** | **str** | | -**asset_class** | **str** | | -**onchain** | [**AssetOnchain**](AssetOnchain.md) | | -**metadata** | [**AssetMetadata**](AssetMetadata.md) | | - -## Example - -```python -from fireblocks.models.asset_response import AssetResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetResponse from a JSON string -asset_response_instance = AssetResponse.from_json(json) -# print the JSON string representation of the object -print(AssetResponse.to_json()) - -# convert the object into a dict -asset_response_dict = asset_response_instance.to_dict() -# create an instance of AssetResponse from a dict -asset_response_from_dict = AssetResponse.from_dict(asset_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldFJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmxlZ2FjeV9pZCoqIHwgKipzdHIqKiB8ICB8IAoqKmFzc2V0X2NsYXNzKiogfCAqKnN0cioqIHwgIHwgCioqb25jaGFpbioqIHwgWyoqQXNzZXRPbmNoYWluKipdKEFzc2V0T25jaGFpbi5tZCkgfCAgfCAKKiptZXRhZGF0YSoqIHwgWyoqQXNzZXRNZXRhZGF0YSoqXShBc3NldE1ldGFkYXRhLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfcmVzcG9uc2UgaW1wb3J0IEFzc2V0UmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmFzc2V0X3Jlc3BvbnNlX2luc3RhbmNlID0gQXNzZXRSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBc3NldFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFzc2V0X3Jlc3BvbnNlX2RpY3QgPSBhc3NldF9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRSZXNwb25zZSBmcm9tIGEgZGljdAphc3NldF9yZXNwb25zZV9mcm9tX2RpY3QgPSBBc3NldFJlc3BvbnNlLmZyb21fZGljdChhc3NldF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AssetScope.md b/docs/AssetScope.md index 08948878..3305d773 100644 --- a/docs/AssetScope.md +++ b/docs/AssetScope.md @@ -1,13 +1 @@ -# AssetScope - -The scope of the asset - -## Enum - -* `GLOBAL` (value: `'GLOBAL'`) - -* `LOCAL` (value: `'LOCAL'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldFNjb3BlCgpUaGUgc2NvcGUgb2YgdGhlIGFzc2V0CgojIyBFbnVtCgoqIGBHTE9CQUxgICh2YWx1ZTogYCdHTE9CQUwnYCkKCiogYExPQ0FMYCAodmFsdWU6IGAnTE9DQUwnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AssetTypeResponse.md b/docs/AssetTypeResponse.md index 8205babb..50614566 100644 --- a/docs/AssetTypeResponse.md +++ b/docs/AssetTypeResponse.md @@ -1,34 +1 @@ -# AssetTypeResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | -**name** | **str** | | -**type** | **str** | | -**contract_address** | **str** | | [optional] -**native_asset** | **str** | | [optional] -**decimals** | **float** | | [optional] - -## Example - -```python -from fireblocks.models.asset_type_response import AssetTypeResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetTypeResponse from a JSON string -asset_type_response_instance = AssetTypeResponse.from_json(json) -# print the JSON string representation of the object -print(AssetTypeResponse.to_json()) - -# convert the object into a dict -asset_type_response_dict = asset_type_response_instance.to_dict() -# create an instance of AssetTypeResponse from a dict -asset_type_response_from_dict = AssetTypeResponse.from_dict(asset_type_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldFR5cGVSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8ICB8IAoqKm5hbWUqKiB8ICoqc3RyKiogfCAgfCAKKip0eXBlKiogfCAqKnN0cioqIHwgIHwgCioqY29udHJhY3RfYWRkcmVzcyoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqbmF0aXZlX2Fzc2V0KiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipkZWNpbWFscyoqIHwgKipmbG9hdCoqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X3R5cGVfcmVzcG9uc2UgaW1wb3J0IEFzc2V0VHlwZVJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldFR5cGVSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKYXNzZXRfdHlwZV9yZXNwb25zZV9pbnN0YW5jZSA9IEFzc2V0VHlwZVJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEFzc2V0VHlwZVJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFzc2V0X3R5cGVfcmVzcG9uc2VfZGljdCA9IGFzc2V0X3R5cGVfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0VHlwZVJlc3BvbnNlIGZyb20gYSBkaWN0CmFzc2V0X3R5cGVfcmVzcG9uc2VfZnJvbV9kaWN0ID0gQXNzZXRUeXBlUmVzcG9uc2UuZnJvbV9kaWN0KGFzc2V0X3R5cGVfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/AssetTypesConfigInner.md b/docs/AssetTypesConfigInner.md index 7ea0fc09..05425004 100644 --- a/docs/AssetTypesConfigInner.md +++ b/docs/AssetTypesConfigInner.md @@ -1,28 +1 @@ -# AssetTypesConfigInner - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - -## Example - -```python -from fireblocks.models.asset_types_config_inner import AssetTypesConfigInner - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetTypesConfigInner from a JSON string -asset_types_config_inner_instance = AssetTypesConfigInner.from_json(json) -# print the JSON string representation of the object -print(AssetTypesConfigInner.to_json()) - -# convert the object into a dict -asset_types_config_inner_dict = asset_types_config_inner_instance.to_dict() -# create an instance of AssetTypesConfigInner from a dict -asset_types_config_inner_from_dict = AssetTypesConfigInner.from_dict(asset_types_config_inner_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldFR5cGVzQ29uZmlnSW5uZXIKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF90eXBlc19jb25maWdfaW5uZXIgaW1wb3J0IEFzc2V0VHlwZXNDb25maWdJbm5lcgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRUeXBlc0NvbmZpZ0lubmVyIGZyb20gYSBKU09OIHN0cmluZwphc3NldF90eXBlc19jb25maWdfaW5uZXJfaW5zdGFuY2UgPSBBc3NldFR5cGVzQ29uZmlnSW5uZXIuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQXNzZXRUeXBlc0NvbmZpZ0lubmVyLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmFzc2V0X3R5cGVzX2NvbmZpZ19pbm5lcl9kaWN0ID0gYXNzZXRfdHlwZXNfY29uZmlnX2lubmVyX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldFR5cGVzQ29uZmlnSW5uZXIgZnJvbSBhIGRpY3QKYXNzZXRfdHlwZXNfY29uZmlnX2lubmVyX2Zyb21fZGljdCA9IEFzc2V0VHlwZXNDb25maWdJbm5lci5mcm9tX2RpY3QoYXNzZXRfdHlwZXNfY29uZmlnX2lubmVyX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AssetWallet.md b/docs/AssetWallet.md index 87d0aa5f..7d98f06e 100644 --- a/docs/AssetWallet.md +++ b/docs/AssetWallet.md @@ -1,39 +1 @@ -# AssetWallet - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vault_id** | **str** | ID of the vault account. You can [get the vault account by this ID](https://developers.fireblocks.com/reference/get_vault-accounts-vaultaccountid) to retrieve vault properties such as its name, auto fueling, hidden on UI or customer reference ID. | [optional] -**asset_id** | **str** | ID of the asset. You can get more information about this asset by using the [supported assets API](https://developers.fireblocks.com/reference/get_supported-assets) | [optional] -**available** | **str** | Available balance, available to use in a transaction. | [optional] -**total** | **str** | Total balance at the asset wallet, as seen at the blockchain explorers. This includes balance available, and any kind of unavailable balance such as locked, frozen, or others. | [optional] -**pending** | **str** | Pending balance. | [optional] -**staked** | **str** | Staked balance. | [optional] -**frozen** | **str** | Funds frozen due to the anti-money laundering policy at this workspace. | [optional] -**locked_amount** | **str** | Locked balance. | [optional] -**block_height** | **str** | The height (number) of the block of the balance. Can by empty. | [optional] -**block_hash** | **str** | The hash of the block of the balance. Can by empty. | [optional] -**creation_timestamp** | **str** | Unix timestamp of the time the asset wallet was created. | [optional] - -## Example - -```python -from fireblocks.models.asset_wallet import AssetWallet - -# TODO update the JSON string below -json = "{}" -# create an instance of AssetWallet from a JSON string -asset_wallet_instance = AssetWallet.from_json(json) -# print the JSON string representation of the object -print(AssetWallet.to_json()) - -# convert the object into a dict -asset_wallet_dict = asset_wallet_instance.to_dict() -# create an instance of AssetWallet from a dict -asset_wallet_from_dict = AssetWallet.from_dict(asset_wallet_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBc3NldFdhbGxldAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip2YXVsdF9pZCoqIHwgKipzdHIqKiB8IElEIG9mIHRoZSB2YXVsdCBhY2NvdW50LiBZb3UgY2FuIFtnZXQgdGhlIHZhdWx0IGFjY291bnQgYnkgdGhpcyBJRF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS9nZXRfdmF1bHQtYWNjb3VudHMtdmF1bHRhY2NvdW50aWQpIHRvIHJldHJpZXZlIHZhdWx0IHByb3BlcnRpZXMgc3VjaCBhcyBpdHMgbmFtZSwgYXV0byBmdWVsaW5nLCBoaWRkZW4gb24gVUkgb3IgY3VzdG9tZXIgcmVmZXJlbmNlIElELiB8IFtvcHRpb25hbF0gCioqYXNzZXRfaWQqKiB8ICoqc3RyKiogfCBJRCBvZiB0aGUgYXNzZXQuIFlvdSBjYW4gZ2V0IG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBhc3NldCBieSB1c2luZyB0aGUgW3N1cHBvcnRlZCBhc3NldHMgQVBJXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2dldF9zdXBwb3J0ZWQtYXNzZXRzKSB8IFtvcHRpb25hbF0gCioqYXZhaWxhYmxlKiogfCAqKnN0cioqIHwgQXZhaWxhYmxlIGJhbGFuY2UsIGF2YWlsYWJsZSB0byB1c2UgaW4gYSB0cmFuc2FjdGlvbi4gfCBbb3B0aW9uYWxdIAoqKnRvdGFsKiogfCAqKnN0cioqIHwgVG90YWwgYmFsYW5jZSBhdCB0aGUgYXNzZXQgd2FsbGV0LCBhcyBzZWVuIGF0IHRoZSBibG9ja2NoYWluIGV4cGxvcmVycy4gVGhpcyBpbmNsdWRlcyBiYWxhbmNlIGF2YWlsYWJsZSwgYW5kIGFueSBraW5kIG9mIHVuYXZhaWxhYmxlIGJhbGFuY2Ugc3VjaCBhcyBsb2NrZWQsIGZyb3plbiwgb3Igb3RoZXJzLiB8IFtvcHRpb25hbF0gCioqcGVuZGluZyoqIHwgKipzdHIqKiB8IFBlbmRpbmcgYmFsYW5jZS4gfCBbb3B0aW9uYWxdIAoqKnN0YWtlZCoqIHwgKipzdHIqKiB8IFN0YWtlZCBiYWxhbmNlLiB8IFtvcHRpb25hbF0gCioqZnJvemVuKiogfCAqKnN0cioqIHwgRnVuZHMgZnJvemVuIGR1ZSB0byB0aGUgYW50aS1tb25leSBsYXVuZGVyaW5nIHBvbGljeSBhdCB0aGlzIHdvcmtzcGFjZS4gfCBbb3B0aW9uYWxdIAoqKmxvY2tlZF9hbW91bnQqKiB8ICoqc3RyKiogfCBMb2NrZWQgYmFsYW5jZS4gfCBbb3B0aW9uYWxdIAoqKmJsb2NrX2hlaWdodCoqIHwgKipzdHIqKiB8IFRoZSBoZWlnaHQgKG51bWJlcikgb2YgdGhlIGJsb2NrIG9mIHRoZSBiYWxhbmNlLiBDYW4gYnkgZW1wdHkuIHwgW29wdGlvbmFsXSAKKipibG9ja19oYXNoKiogfCAqKnN0cioqIHwgVGhlIGhhc2ggb2YgdGhlIGJsb2NrIG9mIHRoZSBiYWxhbmNlLiBDYW4gYnkgZW1wdHkuIHwgW29wdGlvbmFsXSAKKipjcmVhdGlvbl90aW1lc3RhbXAqKiB8ICoqc3RyKiogfCBVbml4IHRpbWVzdGFtcCBvZiB0aGUgdGltZSB0aGUgYXNzZXQgd2FsbGV0IHdhcyBjcmVhdGVkLiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF93YWxsZXQgaW1wb3J0IEFzc2V0V2FsbGV0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldFdhbGxldCBmcm9tIGEgSlNPTiBzdHJpbmcKYXNzZXRfd2FsbGV0X2luc3RhbmNlID0gQXNzZXRXYWxsZXQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQXNzZXRXYWxsZXQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYXNzZXRfd2FsbGV0X2RpY3QgPSBhc3NldF93YWxsZXRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0V2FsbGV0IGZyb20gYSBkaWN0CmFzc2V0X3dhbGxldF9mcm9tX2RpY3QgPSBBc3NldFdhbGxldC5mcm9tX2RpY3QoYXNzZXRfd2FsbGV0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AuditLogData.md b/docs/AuditLogData.md index 494af4ed..650c419a 100644 --- a/docs/AuditLogData.md +++ b/docs/AuditLogData.md @@ -1,36 +1 @@ -# AuditLogData - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The unique identifier of the audit log | [optional] -**timestamp** | **float** | The timestamp of the audit log | [optional] -**created_at** | **float** | The timestamp of the audit log creation | [optional] -**user** | **str** | The user who performed the action | [optional] -**subject** | **str** | The subject of the action | [optional] -**event** | **str** | The event that was performed | [optional] -**tenant_id** | **str** | The tenant ID of the audit log | [optional] -**user_id** | **str** | The user ID of the audit log | [optional] - -## Example - -```python -from fireblocks.models.audit_log_data import AuditLogData - -# TODO update the JSON string below -json = "{}" -# create an instance of AuditLogData from a JSON string -audit_log_data_instance = AuditLogData.from_json(json) -# print the JSON string representation of the object -print(AuditLogData.to_json()) - -# convert the object into a dict -audit_log_data_dict = audit_log_data_instance.to_dict() -# create an instance of AuditLogData from a dict -audit_log_data_from_dict = AuditLogData.from_dict(audit_log_data_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBdWRpdExvZ0RhdGEKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGF1ZGl0IGxvZyB8IFtvcHRpb25hbF0gCioqdGltZXN0YW1wKiogfCAqKmZsb2F0KiogfCBUaGUgdGltZXN0YW1wIG9mIHRoZSBhdWRpdCBsb2cgfCBbb3B0aW9uYWxdIAoqKmNyZWF0ZWRfYXQqKiB8ICoqZmxvYXQqKiB8IFRoZSB0aW1lc3RhbXAgb2YgdGhlIGF1ZGl0IGxvZyBjcmVhdGlvbiB8IFtvcHRpb25hbF0gCioqdXNlcioqIHwgKipzdHIqKiB8IFRoZSB1c2VyIHdobyBwZXJmb3JtZWQgdGhlIGFjdGlvbiB8IFtvcHRpb25hbF0gCioqc3ViamVjdCoqIHwgKipzdHIqKiB8IFRoZSBzdWJqZWN0IG9mIHRoZSBhY3Rpb24gfCBbb3B0aW9uYWxdIAoqKmV2ZW50KiogfCAqKnN0cioqIHwgVGhlIGV2ZW50IHRoYXQgd2FzIHBlcmZvcm1lZCB8IFtvcHRpb25hbF0gCioqdGVuYW50X2lkKiogfCAqKnN0cioqIHwgVGhlIHRlbmFudCBJRCBvZiB0aGUgYXVkaXQgbG9nIHwgW29wdGlvbmFsXSAKKip1c2VyX2lkKiogfCAqKnN0cioqIHwgVGhlIHVzZXIgSUQgb2YgdGhlIGF1ZGl0IGxvZyB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hdWRpdF9sb2dfZGF0YSBpbXBvcnQgQXVkaXRMb2dEYXRhCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBdWRpdExvZ0RhdGEgZnJvbSBhIEpTT04gc3RyaW5nCmF1ZGl0X2xvZ19kYXRhX2luc3RhbmNlID0gQXVkaXRMb2dEYXRhLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEF1ZGl0TG9nRGF0YS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAphdWRpdF9sb2dfZGF0YV9kaWN0ID0gYXVkaXRfbG9nX2RhdGFfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEF1ZGl0TG9nRGF0YSBmcm9tIGEgZGljdAphdWRpdF9sb2dfZGF0YV9mcm9tX2RpY3QgPSBBdWRpdExvZ0RhdGEuZnJvbV9kaWN0KGF1ZGl0X2xvZ19kYXRhX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/AuditLogsApi.md b/docs/AuditLogsApi.md index 289fa02c..834c3123 100644 --- a/docs/AuditLogsApi.md +++ b/docs/AuditLogsApi.md @@ -1,88 +1 @@ -# fireblocks.AuditLogsApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**get_audit_logs**](AuditLogsApi.md#get_audit_logs) | **GET** /management/audit_logs | Get audit logs - - -# **get_audit_logs** -> GetAuditLogsResponse get_audit_logs(time_period=time_period, cursor=cursor) - -Get audit logs - -Get Audit logs for the last Day/Week. - -- Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.get_audit_logs_response import GetAuditLogsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - time_period = 'time_period_example' # str | The last time period to fetch audit logs (optional) - cursor = 'cursor_example' # str | The next id to start fetch audit logs from (optional) - - try: - # Get audit logs - api_response = fireblocks.audit_logs.get_audit_logs(time_period=time_period, cursor=cursor).result() - print("The response of AuditLogsApi->get_audit_logs:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling AuditLogsApi->get_audit_logs: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **time_period** | **str**| The last time period to fetch audit logs | [optional] - **cursor** | **str**| The next id to start fetch audit logs from | [optional] - -### Return type - -[**GetAuditLogsResponse**](GetAuditLogsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Audit logs from requested time period | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLkF1ZGl0TG9nc0FwaQoKQWxsIFVSSXMgYXJlIHJlbGF0aXZlIHRvICpodHRwczovL2FwaS5maXJlYmxvY2tzLmlvL3YxKgoKTWV0aG9kIHwgSFRUUCByZXF1ZXN0IHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tClsqKmdldF9hdWRpdF9sb2dzKipdKEF1ZGl0TG9nc0FwaS5tZCNnZXRfYXVkaXRfbG9ncykgfCAqKkdFVCoqIC9tYW5hZ2VtZW50L2F1ZGl0X2xvZ3MgfCBHZXQgYXVkaXQgbG9ncwoKCiMgKipnZXRfYXVkaXRfbG9ncyoqCj4gR2V0QXVkaXRMb2dzUmVzcG9uc2UgZ2V0X2F1ZGl0X2xvZ3ModGltZV9wZXJpb2Q9dGltZV9wZXJpb2QsIGN1cnNvcj1jdXJzb3IpCgpHZXQgYXVkaXQgbG9ncwoKR2V0IEF1ZGl0IGxvZ3MgZm9yIHRoZSBsYXN0IERheS9XZWVrLgoKLSBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgZW5kcG9pbnQgaXMgYXZhaWxhYmxlIG9ubHkgZm9yIEFQSSBrZXlzIHdpdGggQWRtaW4vTm9uIFNpZ25pbmcgQWRtaW4gcGVybWlzc2lvbnMuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfYXVkaXRfbG9nc19yZXNwb25zZSBpbXBvcnQgR2V0QXVkaXRMb2dzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdGltZV9wZXJpb2QgPSAndGltZV9wZXJpb2RfZXhhbXBsZScgIyBzdHIgfCBUaGUgbGFzdCB0aW1lIHBlcmlvZCB0byBmZXRjaCBhdWRpdCBsb2dzIChvcHRpb25hbCkKICAgIGN1cnNvciA9ICdjdXJzb3JfZXhhbXBsZScgIyBzdHIgfCBUaGUgbmV4dCBpZCB0byBzdGFydCBmZXRjaCBhdWRpdCBsb2dzIGZyb20gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIEdldCBhdWRpdCBsb2dzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5hdWRpdF9sb2dzLmdldF9hdWRpdF9sb2dzKHRpbWVfcGVyaW9kPXRpbWVfcGVyaW9kLCBjdXJzb3I9Y3Vyc29yKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgQXVkaXRMb2dzQXBpLT5nZXRfYXVkaXRfbG9nczpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBBdWRpdExvZ3NBcGktPmdldF9hdWRpdF9sb2dzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip0aW1lX3BlcmlvZCoqIHwgKipzdHIqKnwgVGhlIGxhc3QgdGltZSBwZXJpb2QgdG8gZmV0Y2ggYXVkaXQgbG9ncyB8IFtvcHRpb25hbF0gCiAqKmN1cnNvcioqIHwgKipzdHIqKnwgVGhlIG5leHQgaWQgdG8gc3RhcnQgZmV0Y2ggYXVkaXQgbG9ncyBmcm9tIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqR2V0QXVkaXRMb2dzUmVzcG9uc2UqKl0oR2V0QXVkaXRMb2dzUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBdWRpdCBsb2dzIGZyb20gcmVxdWVzdGVkIHRpbWUgcGVyaW9kIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCg== \ No newline at end of file diff --git a/docs/AuditorData.md b/docs/AuditorData.md index 65d74f3c..f46e9694 100644 --- a/docs/AuditorData.md +++ b/docs/AuditorData.md @@ -1,31 +1 @@ -# AuditorData - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | | -**image_url** | **str** | | -**link** | **str** | | - -## Example - -```python -from fireblocks.models.auditor_data import AuditorData - -# TODO update the JSON string below -json = "{}" -# create an instance of AuditorData from a JSON string -auditor_data_instance = AuditorData.from_json(json) -# print the JSON string representation of the object -print(AuditorData.to_json()) - -# convert the object into a dict -auditor_data_dict = auditor_data_instance.to_dict() -# create an instance of AuditorData from a dict -auditor_data_from_dict = AuditorData.from_dict(auditor_data_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBdWRpdG9yRGF0YQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipuYW1lKiogfCAqKnN0cioqIHwgIHwgCioqaW1hZ2VfdXJsKiogfCAqKnN0cioqIHwgIHwgCioqbGluayoqIHwgKipzdHIqKiB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXVkaXRvcl9kYXRhIGltcG9ydCBBdWRpdG9yRGF0YQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXVkaXRvckRhdGEgZnJvbSBhIEpTT04gc3RyaW5nCmF1ZGl0b3JfZGF0YV9pbnN0YW5jZSA9IEF1ZGl0b3JEYXRhLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEF1ZGl0b3JEYXRhLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmF1ZGl0b3JfZGF0YV9kaWN0ID0gYXVkaXRvcl9kYXRhX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBdWRpdG9yRGF0YSBmcm9tIGEgZGljdAphdWRpdG9yX2RhdGFfZnJvbV9kaWN0ID0gQXVkaXRvckRhdGEuZnJvbV9kaWN0KGF1ZGl0b3JfZGF0YV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AuthorizationGroups.md b/docs/AuthorizationGroups.md index 15b49001..c519faf7 100644 --- a/docs/AuthorizationGroups.md +++ b/docs/AuthorizationGroups.md @@ -1,30 +1 @@ -# AuthorizationGroups - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**th** | **float** | | [optional] -**users** | **Dict[str, str]** | | [optional] - -## Example - -```python -from fireblocks.models.authorization_groups import AuthorizationGroups - -# TODO update the JSON string below -json = "{}" -# create an instance of AuthorizationGroups from a JSON string -authorization_groups_instance = AuthorizationGroups.from_json(json) -# print the JSON string representation of the object -print(AuthorizationGroups.to_json()) - -# convert the object into a dict -authorization_groups_dict = authorization_groups_instance.to_dict() -# create an instance of AuthorizationGroups from a dict -authorization_groups_from_dict = AuthorizationGroups.from_dict(authorization_groups_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBdXRob3JpemF0aW9uR3JvdXBzCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnRoKiogfCAqKmZsb2F0KiogfCAgfCBbb3B0aW9uYWxdIAoqKnVzZXJzKiogfCAqKkRpY3Rbc3RyLCBzdHJdKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXV0aG9yaXphdGlvbl9ncm91cHMgaW1wb3J0IEF1dGhvcml6YXRpb25Hcm91cHMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEF1dGhvcml6YXRpb25Hcm91cHMgZnJvbSBhIEpTT04gc3RyaW5nCmF1dGhvcml6YXRpb25fZ3JvdXBzX2luc3RhbmNlID0gQXV0aG9yaXphdGlvbkdyb3Vwcy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChBdXRob3JpemF0aW9uR3JvdXBzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmF1dGhvcml6YXRpb25fZ3JvdXBzX2RpY3QgPSBhdXRob3JpemF0aW9uX2dyb3Vwc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXV0aG9yaXphdGlvbkdyb3VwcyBmcm9tIGEgZGljdAphdXRob3JpemF0aW9uX2dyb3Vwc19mcm9tX2RpY3QgPSBBdXRob3JpemF0aW9uR3JvdXBzLmZyb21fZGljdChhdXRob3JpemF0aW9uX2dyb3Vwc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/AuthorizationInfo.md b/docs/AuthorizationInfo.md index 02bc0a90..7abed0eb 100644 --- a/docs/AuthorizationInfo.md +++ b/docs/AuthorizationInfo.md @@ -1,32 +1 @@ -# AuthorizationInfo - -The information about your [Transaction Authorization Policy (TAP).](https://developers.fireblocks.com/docs/capabilities#transaction-authorization-policy-tap) - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**allow_operator_as_authorizer** | **bool** | | [optional] -**logic** | **str** | | [optional] -**groups** | [**List[AuthorizationGroups]**](AuthorizationGroups.md) | | [optional] - -## Example - -```python -from fireblocks.models.authorization_info import AuthorizationInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of AuthorizationInfo from a JSON string -authorization_info_instance = AuthorizationInfo.from_json(json) -# print the JSON string representation of the object -print(AuthorizationInfo.to_json()) - -# convert the object into a dict -authorization_info_dict = authorization_info_instance.to_dict() -# create an instance of AuthorizationInfo from a dict -authorization_info_from_dict = AuthorizationInfo.from_dict(authorization_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBBdXRob3JpemF0aW9uSW5mbwoKVGhlIGluZm9ybWF0aW9uIGFib3V0IHlvdXIgW1RyYW5zYWN0aW9uIEF1dGhvcml6YXRpb24gUG9saWN5IChUQVApLl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL2RvY3MvY2FwYWJpbGl0aWVzI3RyYW5zYWN0aW9uLWF1dGhvcml6YXRpb24tcG9saWN5LXRhcCkKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphbGxvd19vcGVyYXRvcl9hc19hdXRob3JpemVyKiogfCAqKmJvb2wqKiB8ICB8IFtvcHRpb25hbF0gCioqbG9naWMqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmdyb3VwcyoqIHwgWyoqTGlzdFtBdXRob3JpemF0aW9uR3JvdXBzXSoqXShBdXRob3JpemF0aW9uR3JvdXBzLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hdXRob3JpemF0aW9uX2luZm8gaW1wb3J0IEF1dGhvcml6YXRpb25JbmZvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBdXRob3JpemF0aW9uSW5mbyBmcm9tIGEgSlNPTiBzdHJpbmcKYXV0aG9yaXphdGlvbl9pbmZvX2luc3RhbmNlID0gQXV0aG9yaXphdGlvbkluZm8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQXV0aG9yaXphdGlvbkluZm8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYXV0aG9yaXphdGlvbl9pbmZvX2RpY3QgPSBhdXRob3JpemF0aW9uX2luZm9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEF1dGhvcml6YXRpb25JbmZvIGZyb20gYSBkaWN0CmF1dGhvcml6YXRpb25faW5mb19mcm9tX2RpY3QgPSBBdXRob3JpemF0aW9uSW5mby5mcm9tX2RpY3QoYXV0aG9yaXphdGlvbl9pbmZvX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/BalanceHistoryItemDto.md b/docs/BalanceHistoryItemDto.md index a729d858..11bad2c8 100644 --- a/docs/BalanceHistoryItemDto.md +++ b/docs/BalanceHistoryItemDto.md @@ -1,30 +1 @@ -# BalanceHistoryItemDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**timestamp** | **datetime** | Timestamp of the data point | -**balance** | **str** | Balance at the given timestamp | - -## Example - -```python -from fireblocks.models.balance_history_item_dto import BalanceHistoryItemDto - -# TODO update the JSON string below -json = "{}" -# create an instance of BalanceHistoryItemDto from a JSON string -balance_history_item_dto_instance = BalanceHistoryItemDto.from_json(json) -# print the JSON string representation of the object -print(BalanceHistoryItemDto.to_json()) - -# convert the object into a dict -balance_history_item_dto_dict = balance_history_item_dto_instance.to_dict() -# create an instance of BalanceHistoryItemDto from a dict -balance_history_item_dto_from_dict = BalanceHistoryItemDto.from_dict(balance_history_item_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBCYWxhbmNlSGlzdG9yeUl0ZW1EdG8KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdGltZXN0YW1wKiogfCAqKmRhdGV0aW1lKiogfCBUaW1lc3RhbXAgb2YgdGhlIGRhdGEgcG9pbnQgfCAKKipiYWxhbmNlKiogfCAqKnN0cioqIHwgQmFsYW5jZSBhdCB0aGUgZ2l2ZW4gdGltZXN0YW1wIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5iYWxhbmNlX2hpc3RvcnlfaXRlbV9kdG8gaW1wb3J0IEJhbGFuY2VIaXN0b3J5SXRlbUR0bwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQmFsYW5jZUhpc3RvcnlJdGVtRHRvIGZyb20gYSBKU09OIHN0cmluZwpiYWxhbmNlX2hpc3RvcnlfaXRlbV9kdG9faW5zdGFuY2UgPSBCYWxhbmNlSGlzdG9yeUl0ZW1EdG8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQmFsYW5jZUhpc3RvcnlJdGVtRHRvLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmJhbGFuY2VfaGlzdG9yeV9pdGVtX2R0b19kaWN0ID0gYmFsYW5jZV9oaXN0b3J5X2l0ZW1fZHRvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCYWxhbmNlSGlzdG9yeUl0ZW1EdG8gZnJvbSBhIGRpY3QKYmFsYW5jZV9oaXN0b3J5X2l0ZW1fZHRvX2Zyb21fZGljdCA9IEJhbGFuY2VIaXN0b3J5SXRlbUR0by5mcm9tX2RpY3QoYmFsYW5jZV9oaXN0b3J5X2l0ZW1fZHRvX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/BalanceHistoryPagedResponse.md b/docs/BalanceHistoryPagedResponse.md index e4b344b3..a78ff485 100644 --- a/docs/BalanceHistoryPagedResponse.md +++ b/docs/BalanceHistoryPagedResponse.md @@ -1,32 +1 @@ -# BalanceHistoryPagedResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[BalanceHistoryItemDto]**](BalanceHistoryItemDto.md) | Array of balance history data points | -**next** | **str** | Cursor for next page | [optional] -**prev** | **str** | Cursor for previous page | [optional] -**total** | **float** | Total count of items | [optional] - -## Example - -```python -from fireblocks.models.balance_history_paged_response import BalanceHistoryPagedResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of BalanceHistoryPagedResponse from a JSON string -balance_history_paged_response_instance = BalanceHistoryPagedResponse.from_json(json) -# print the JSON string representation of the object -print(BalanceHistoryPagedResponse.to_json()) - -# convert the object into a dict -balance_history_paged_response_dict = balance_history_paged_response_instance.to_dict() -# create an instance of BalanceHistoryPagedResponse from a dict -balance_history_paged_response_from_dict = BalanceHistoryPagedResponse.from_dict(balance_history_paged_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBCYWxhbmNlSGlzdG9yeVBhZ2VkUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZGF0YSoqIHwgWyoqTGlzdFtCYWxhbmNlSGlzdG9yeUl0ZW1EdG9dKipdKEJhbGFuY2VIaXN0b3J5SXRlbUR0by5tZCkgfCBBcnJheSBvZiBiYWxhbmNlIGhpc3RvcnkgZGF0YSBwb2ludHMgfCAKKipuZXh0KiogfCAqKnN0cioqIHwgQ3Vyc29yIGZvciBuZXh0IHBhZ2UgfCBbb3B0aW9uYWxdIAoqKnByZXYqKiB8ICoqc3RyKiogfCBDdXJzb3IgZm9yIHByZXZpb3VzIHBhZ2UgfCBbb3B0aW9uYWxdIAoqKnRvdGFsKiogfCAqKmZsb2F0KiogfCBUb3RhbCBjb3VudCBvZiBpdGVtcyB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5iYWxhbmNlX2hpc3RvcnlfcGFnZWRfcmVzcG9uc2UgaW1wb3J0IEJhbGFuY2VIaXN0b3J5UGFnZWRSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQmFsYW5jZUhpc3RvcnlQYWdlZFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpiYWxhbmNlX2hpc3RvcnlfcGFnZWRfcmVzcG9uc2VfaW5zdGFuY2UgPSBCYWxhbmNlSGlzdG9yeVBhZ2VkUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQmFsYW5jZUhpc3RvcnlQYWdlZFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmJhbGFuY2VfaGlzdG9yeV9wYWdlZF9yZXNwb25zZV9kaWN0ID0gYmFsYW5jZV9oaXN0b3J5X3BhZ2VkX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCYWxhbmNlSGlzdG9yeVBhZ2VkUmVzcG9uc2UgZnJvbSBhIGRpY3QKYmFsYW5jZV9oaXN0b3J5X3BhZ2VkX3Jlc3BvbnNlX2Zyb21fZGljdCA9IEJhbGFuY2VIaXN0b3J5UGFnZWRSZXNwb25zZS5mcm9tX2RpY3QoYmFsYW5jZV9oaXN0b3J5X3BhZ2VkX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/BankAddress.md b/docs/BankAddress.md index ca4f960b..f222866f 100644 --- a/docs/BankAddress.md +++ b/docs/BankAddress.md @@ -1,36 +1 @@ -# BankAddress - -Address of the bank. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**street_name** | **str** | | [optional] -**building_number** | **str** | | [optional] -**postal_code** | **str** | | [optional] -**city** | **str** | | [optional] -**subdivision** | **str** | | [optional] -**district** | **str** | | [optional] -**country** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.bank_address import BankAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of BankAddress from a JSON string -bank_address_instance = BankAddress.from_json(json) -# print the JSON string representation of the object -print(BankAddress.to_json()) - -# convert the object into a dict -bank_address_dict = bank_address_instance.to_dict() -# create an instance of BankAddress from a dict -bank_address_from_dict = BankAddress.from_dict(bank_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBCYW5rQWRkcmVzcwoKQWRkcmVzcyBvZiB0aGUgYmFuay4KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzdHJlZXRfbmFtZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqYnVpbGRpbmdfbnVtYmVyKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipwb3N0YWxfY29kZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqY2l0eSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqc3ViZGl2aXNpb24qKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmRpc3RyaWN0KiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipjb3VudHJ5KiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJhbmtfYWRkcmVzcyBpbXBvcnQgQmFua0FkZHJlc3MKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEJhbmtBZGRyZXNzIGZyb20gYSBKU09OIHN0cmluZwpiYW5rX2FkZHJlc3NfaW5zdGFuY2UgPSBCYW5rQWRkcmVzcy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChCYW5rQWRkcmVzcy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApiYW5rX2FkZHJlc3NfZGljdCA9IGJhbmtfYWRkcmVzc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQmFua0FkZHJlc3MgZnJvbSBhIGRpY3QKYmFua19hZGRyZXNzX2Zyb21fZGljdCA9IEJhbmtBZGRyZXNzLmZyb21fZGljdChiYW5rX2FkZHJlc3NfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/BaseProvider.md b/docs/BaseProvider.md index 52817c1f..0d808813 100644 --- a/docs/BaseProvider.md +++ b/docs/BaseProvider.md @@ -1,32 +1 @@ -# BaseProvider - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | Unique identifier for the provider | -**name** | **str** | Display name of the provider | -**logo** | **str** | URL to the logo image of the provider | [optional] -**account_based** | **bool** | Indicates whether the provider access model is through accounts or directly | - -## Example - -```python -from fireblocks.models.base_provider import BaseProvider - -# TODO update the JSON string below -json = "{}" -# create an instance of BaseProvider from a JSON string -base_provider_instance = BaseProvider.from_json(json) -# print the JSON string representation of the object -print(BaseProvider.to_json()) - -# convert the object into a dict -base_provider_dict = base_provider_instance.to_dict() -# create an instance of BaseProvider from a dict -base_provider_from_dict = BaseProvider.from_dict(base_provider_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBCYXNlUHJvdmlkZXIKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHByb3ZpZGVyIHwgCioqbmFtZSoqIHwgKipzdHIqKiB8IERpc3BsYXkgbmFtZSBvZiB0aGUgcHJvdmlkZXIgfCAKKipsb2dvKiogfCAqKnN0cioqIHwgVVJMIHRvIHRoZSBsb2dvIGltYWdlIG9mIHRoZSBwcm92aWRlciB8IFtvcHRpb25hbF0gCioqYWNjb3VudF9iYXNlZCoqIHwgKipib29sKiogfCBJbmRpY2F0ZXMgd2hldGhlciB0aGUgcHJvdmlkZXIgYWNjZXNzIG1vZGVsIGlzIHRocm91Z2ggYWNjb3VudHMgb3IgZGlyZWN0bHkgfCAKKiptYW5pZmVzdCoqIHwgWyoqTWFuaWZlc3QqKl0oTWFuaWZlc3QubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5iYXNlX3Byb3ZpZGVyIGltcG9ydCBCYXNlUHJvdmlkZXIKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEJhc2VQcm92aWRlciBmcm9tIGEgSlNPTiBzdHJpbmcKYmFzZV9wcm92aWRlcl9pbnN0YW5jZSA9IEJhc2VQcm92aWRlci5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChCYXNlUHJvdmlkZXIudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYmFzZV9wcm92aWRlcl9kaWN0ID0gYmFzZV9wcm92aWRlcl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQmFzZVByb3ZpZGVyIGZyb20gYSBkaWN0CmJhc2VfcHJvdmlkZXJfZnJvbV9kaWN0ID0gQmFzZVByb3ZpZGVyLmZyb21fZGljdChiYXNlX3Byb3ZpZGVyX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/BasicAddressRequest.md b/docs/BasicAddressRequest.md index 97b4275d..82a18f16 100644 --- a/docs/BasicAddressRequest.md +++ b/docs/BasicAddressRequest.md @@ -1,31 +1 @@ -# BasicAddressRequest - -Basic external wallet request with address information - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**address** | **str** | The wallet's address (or xpub) of the external wallet | -**tag** | **str** | For XRP wallets, the destination tag; for EOS/XLM, the memo; for the fiat providers (BLINC by BCB Group), the Bank Transfer Description | [optional] - -## Example - -```python -from fireblocks.models.basic_address_request import BasicAddressRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of BasicAddressRequest from a JSON string -basic_address_request_instance = BasicAddressRequest.from_json(json) -# print the JSON string representation of the object -print(BasicAddressRequest.to_json()) - -# convert the object into a dict -basic_address_request_dict = basic_address_request_instance.to_dict() -# create an instance of BasicAddressRequest from a dict -basic_address_request_from_dict = BasicAddressRequest.from_dict(basic_address_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBCYXNpY0FkZHJlc3NSZXF1ZXN0CgpCYXNpYyBleHRlcm5hbCB3YWxsZXQgcmVxdWVzdCB3aXRoIGFkZHJlc3MgaW5mb3JtYXRpb24KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphZGRyZXNzKiogfCAqKnN0cioqIHwgVGhlIHdhbGxldCYjMzk7cyBhZGRyZXNzIChvciB4cHViKSBvZiB0aGUgZXh0ZXJuYWwgd2FsbGV0IHwgCioqdGFnKiogfCAqKnN0cioqIHwgRm9yIFhSUCB3YWxsZXRzLCB0aGUgZGVzdGluYXRpb24gdGFnOyBmb3IgRU9TL1hMTSwgdGhlIG1lbW87IGZvciB0aGUgZmlhdCBwcm92aWRlcnMgKEJMSU5DIGJ5IEJDQiBHcm91cCksIHRoZSBCYW5rIFRyYW5zZmVyIERlc2NyaXB0aW9uIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJhc2ljX2FkZHJlc3NfcmVxdWVzdCBpbXBvcnQgQmFzaWNBZGRyZXNzUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQmFzaWNBZGRyZXNzUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKYmFzaWNfYWRkcmVzc19yZXF1ZXN0X2luc3RhbmNlID0gQmFzaWNBZGRyZXNzUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChCYXNpY0FkZHJlc3NSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmJhc2ljX2FkZHJlc3NfcmVxdWVzdF9kaWN0ID0gYmFzaWNfYWRkcmVzc19yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCYXNpY0FkZHJlc3NSZXF1ZXN0IGZyb20gYSBkaWN0CmJhc2ljX2FkZHJlc3NfcmVxdWVzdF9mcm9tX2RpY3QgPSBCYXNpY0FkZHJlc3NSZXF1ZXN0LmZyb21fZGljdChiYXNpY19hZGRyZXNzX3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/BlockInfo.md b/docs/BlockInfo.md index 5a3736f9..3b0b4c9f 100644 --- a/docs/BlockInfo.md +++ b/docs/BlockInfo.md @@ -1,31 +1 @@ -# BlockInfo - -The block hash and height of the block that this transaction was mined in. **Note**: If an outgoing transaction uses the destinations object with more than one value in the array, blockHash is set to null. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**block_height** | **str** | | [optional] -**block_hash** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.block_info import BlockInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of BlockInfo from a JSON string -block_info_instance = BlockInfo.from_json(json) -# print the JSON string representation of the object -print(BlockInfo.to_json()) - -# convert the object into a dict -block_info_dict = block_info_instance.to_dict() -# create an instance of BlockInfo from a dict -block_info_from_dict = BlockInfo.from_dict(block_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBCbG9ja0luZm8KClRoZSBibG9jayBoYXNoIGFuZCBoZWlnaHQgb2YgdGhlIGJsb2NrIHRoYXQgdGhpcyB0cmFuc2FjdGlvbiB3YXMgbWluZWQgaW4uICAgICAgKipOb3RlKio6IElmIGFuIG91dGdvaW5nIHRyYW5zYWN0aW9uIHVzZXMgdGhlIGRlc3RpbmF0aW9ucyBvYmplY3Qgd2l0aCBtb3JlIHRoYW4gb25lIHZhbHVlIGluIHRoZSBhcnJheSwgYmxvY2tIYXNoIGlzIHNldCB0byBudWxsLgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmJsb2NrX2hlaWdodCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqYmxvY2tfaGFzaCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ibG9ja19pbmZvIGltcG9ydCBCbG9ja0luZm8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEJsb2NrSW5mbyBmcm9tIGEgSlNPTiBzdHJpbmcKYmxvY2tfaW5mb19pbnN0YW5jZSA9IEJsb2NrSW5mby5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChCbG9ja0luZm8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKYmxvY2tfaW5mb19kaWN0ID0gYmxvY2tfaW5mb19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQmxvY2tJbmZvIGZyb20gYSBkaWN0CmJsb2NrX2luZm9fZnJvbV9kaWN0ID0gQmxvY2tJbmZvLmZyb21fZGljdChibG9ja19pbmZvX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/BlockchainAddress.md b/docs/BlockchainAddress.md index 8d860263..275c90b3 100644 --- a/docs/BlockchainAddress.md +++ b/docs/BlockchainAddress.md @@ -1,31 +1 @@ -# BlockchainAddress - -The blockchain address information. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**blockchain_address** | **str** | The blockchain address. | -**tag** | **str** | The tag of the blockchain address. It is used to identify the address in the blockchain. It is optional. | [optional] - -## Example - -```python -from fireblocks.models.blockchain_address import BlockchainAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of BlockchainAddress from a JSON string -blockchain_address_instance = BlockchainAddress.from_json(json) -# print the JSON string representation of the object -print(BlockchainAddress.to_json()) - -# convert the object into a dict -blockchain_address_dict = blockchain_address_instance.to_dict() -# create an instance of BlockchainAddress from a dict -blockchain_address_from_dict = BlockchainAddress.from_dict(blockchain_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBCbG9ja2NoYWluQWRkcmVzcwoKVGhlIGJsb2NrY2hhaW4gYWRkcmVzcyBpbmZvcm1hdGlvbi4KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipibG9ja2NoYWluX2FkZHJlc3MqKiB8ICoqc3RyKiogfCBUaGUgYmxvY2tjaGFpbiBhZGRyZXNzLiB8IAoqKnRhZyoqIHwgKipzdHIqKiB8IFRoZSB0YWcgb2YgdGhlIGJsb2NrY2hhaW4gYWRkcmVzcy4gSXQgaXMgdXNlZCB0byBpZGVudGlmeSB0aGUgYWRkcmVzcyBpbiB0aGUgYmxvY2tjaGFpbi4gSXQgaXMgb3B0aW9uYWwuIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fYWRkcmVzcyBpbXBvcnQgQmxvY2tjaGFpbkFkZHJlc3MKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEJsb2NrY2hhaW5BZGRyZXNzIGZyb20gYSBKU09OIHN0cmluZwpibG9ja2NoYWluX2FkZHJlc3NfaW5zdGFuY2UgPSBCbG9ja2NoYWluQWRkcmVzcy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChCbG9ja2NoYWluQWRkcmVzcy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApibG9ja2NoYWluX2FkZHJlc3NfZGljdCA9IGJsb2NrY2hhaW5fYWRkcmVzc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQmxvY2tjaGFpbkFkZHJlc3MgZnJvbSBhIGRpY3QKYmxvY2tjaGFpbl9hZGRyZXNzX2Zyb21fZGljdCA9IEJsb2NrY2hhaW5BZGRyZXNzLmZyb21fZGljdChibG9ja2NoYWluX2FkZHJlc3NfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/BlockchainDestination.md b/docs/BlockchainDestination.md index e249474a..37dba35f 100644 --- a/docs/BlockchainDestination.md +++ b/docs/BlockchainDestination.md @@ -1,30 +1 @@ -# BlockchainDestination - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | The type of destination. Use \"BLOCKCHAIN\" for blockchain address destinations. | -**address** | [**BlockchainAddress**](BlockchainAddress.md) | | - -## Example - -```python -from fireblocks.models.blockchain_destination import BlockchainDestination - -# TODO update the JSON string below -json = "{}" -# create an instance of BlockchainDestination from a JSON string -blockchain_destination_instance = BlockchainDestination.from_json(json) -# print the JSON string representation of the object -print(BlockchainDestination.to_json()) - -# convert the object into a dict -blockchain_destination_dict = blockchain_destination_instance.to_dict() -# create an instance of BlockchainDestination from a dict -blockchain_destination_from_dict = BlockchainDestination.from_dict(blockchain_destination_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBCbG9ja2NoYWluRGVzdGluYXRpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgKipzdHIqKiB8IFRoZSB0eXBlIG9mIGRlc3RpbmF0aW9uLiBVc2UgXCZxdW90O0JMT0NLQ0hBSU5cJnF1b3Q7IGZvciBibG9ja2NoYWluIGFkZHJlc3MgZGVzdGluYXRpb25zLiB8IAoqKmFkZHJlc3MqKiB8IFsqKkJsb2NrY2hhaW5BZGRyZXNzKipdKEJsb2NrY2hhaW5BZGRyZXNzLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9kZXN0aW5hdGlvbiBpbXBvcnQgQmxvY2tjaGFpbkRlc3RpbmF0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCbG9ja2NoYWluRGVzdGluYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCmJsb2NrY2hhaW5fZGVzdGluYXRpb25faW5zdGFuY2UgPSBCbG9ja2NoYWluRGVzdGluYXRpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQmxvY2tjaGFpbkRlc3RpbmF0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmJsb2NrY2hhaW5fZGVzdGluYXRpb25fZGljdCA9IGJsb2NrY2hhaW5fZGVzdGluYXRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEJsb2NrY2hhaW5EZXN0aW5hdGlvbiBmcm9tIGEgZGljdApibG9ja2NoYWluX2Rlc3RpbmF0aW9uX2Zyb21fZGljdCA9IEJsb2NrY2hhaW5EZXN0aW5hdGlvbi5mcm9tX2RpY3QoYmxvY2tjaGFpbl9kZXN0aW5hdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/BlockchainExplorer.md b/docs/BlockchainExplorer.md index c23d8c09..03d1b248 100644 --- a/docs/BlockchainExplorer.md +++ b/docs/BlockchainExplorer.md @@ -1,32 +1 @@ -# BlockchainExplorer - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**base** | **str** | Explorer base url | -**address** | **str** | Explorer address url | [optional] -**tx** | **str** | Explorer transaction url | [optional] -**token** | **str** | Explorer token url | [optional] - -## Example - -```python -from fireblocks.models.blockchain_explorer import BlockchainExplorer - -# TODO update the JSON string below -json = "{}" -# create an instance of BlockchainExplorer from a JSON string -blockchain_explorer_instance = BlockchainExplorer.from_json(json) -# print the JSON string representation of the object -print(BlockchainExplorer.to_json()) - -# convert the object into a dict -blockchain_explorer_dict = blockchain_explorer_instance.to_dict() -# create an instance of BlockchainExplorer from a dict -blockchain_explorer_from_dict = BlockchainExplorer.from_dict(blockchain_explorer_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBCbG9ja2NoYWluRXhwbG9yZXIKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYmFzZSoqIHwgKipzdHIqKiB8IEV4cGxvcmVyIGJhc2UgdXJsIHwgCioqYWRkcmVzcyoqIHwgKipzdHIqKiB8IEV4cGxvcmVyIGFkZHJlc3MgdXJsIHwgW29wdGlvbmFsXSAKKip0eCoqIHwgKipzdHIqKiB8IEV4cGxvcmVyIHRyYW5zYWN0aW9uIHVybCB8IFtvcHRpb25hbF0gCioqdG9rZW4qKiB8ICoqc3RyKiogfCBFeHBsb3JlciB0b2tlbiB1cmwgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9leHBsb3JlciBpbXBvcnQgQmxvY2tjaGFpbkV4cGxvcmVyCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCbG9ja2NoYWluRXhwbG9yZXIgZnJvbSBhIEpTT04gc3RyaW5nCmJsb2NrY2hhaW5fZXhwbG9yZXJfaW5zdGFuY2UgPSBCbG9ja2NoYWluRXhwbG9yZXIuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQmxvY2tjaGFpbkV4cGxvcmVyLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmJsb2NrY2hhaW5fZXhwbG9yZXJfZGljdCA9IGJsb2NrY2hhaW5fZXhwbG9yZXJfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEJsb2NrY2hhaW5FeHBsb3JlciBmcm9tIGEgZGljdApibG9ja2NoYWluX2V4cGxvcmVyX2Zyb21fZGljdCA9IEJsb2NrY2hhaW5FeHBsb3Jlci5mcm9tX2RpY3QoYmxvY2tjaGFpbl9leHBsb3Jlcl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/BlockchainMedia.md b/docs/BlockchainMedia.md index a18094f3..43b4d80f 100644 --- a/docs/BlockchainMedia.md +++ b/docs/BlockchainMedia.md @@ -1,30 +1 @@ -# BlockchainMedia - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**url** | **str** | Media URL | -**type** | **str** | Media type | - -## Example - -```python -from fireblocks.models.blockchain_media import BlockchainMedia - -# TODO update the JSON string below -json = "{}" -# create an instance of BlockchainMedia from a JSON string -blockchain_media_instance = BlockchainMedia.from_json(json) -# print the JSON string representation of the object -print(BlockchainMedia.to_json()) - -# convert the object into a dict -blockchain_media_dict = blockchain_media_instance.to_dict() -# create an instance of BlockchainMedia from a dict -blockchain_media_from_dict = BlockchainMedia.from_dict(blockchain_media_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBCbG9ja2NoYWluTWVkaWEKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdXJsKiogfCAqKnN0cioqIHwgTWVkaWEgVVJMIHwgCioqdHlwZSoqIHwgKipzdHIqKiB8IE1lZGlhIHR5cGUgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fbWVkaWEgaW1wb3J0IEJsb2NrY2hhaW5NZWRpYQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQmxvY2tjaGFpbk1lZGlhIGZyb20gYSBKU09OIHN0cmluZwpibG9ja2NoYWluX21lZGlhX2luc3RhbmNlID0gQmxvY2tjaGFpbk1lZGlhLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEJsb2NrY2hhaW5NZWRpYS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApibG9ja2NoYWluX21lZGlhX2RpY3QgPSBibG9ja2NoYWluX21lZGlhX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCbG9ja2NoYWluTWVkaWEgZnJvbSBhIGRpY3QKYmxvY2tjaGFpbl9tZWRpYV9mcm9tX2RpY3QgPSBCbG9ja2NoYWluTWVkaWEuZnJvbV9kaWN0KGJsb2NrY2hhaW5fbWVkaWFfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/BlockchainMetadata.md b/docs/BlockchainMetadata.md index bd016402..40dc9433 100644 --- a/docs/BlockchainMetadata.md +++ b/docs/BlockchainMetadata.md @@ -1,32 +1 @@ -# BlockchainMetadata - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**scope** | [**AssetScope**](AssetScope.md) | | -**deprecated** | **bool** | Is blockchain deprecated | -**media** | [**List[BlockchainMedia]**](BlockchainMedia.md) | Blockchain’s media | [optional] -**explorer** | [**BlockchainExplorer**](BlockchainExplorer.md) | | [optional] - -## Example - -```python -from fireblocks.models.blockchain_metadata import BlockchainMetadata - -# TODO update the JSON string below -json = "{}" -# create an instance of BlockchainMetadata from a JSON string -blockchain_metadata_instance = BlockchainMetadata.from_json(json) -# print the JSON string representation of the object -print(BlockchainMetadata.to_json()) - -# convert the object into a dict -blockchain_metadata_dict = blockchain_metadata_instance.to_dict() -# create an instance of BlockchainMetadata from a dict -blockchain_metadata_from_dict = BlockchainMetadata.from_dict(blockchain_metadata_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBCbG9ja2NoYWluTWV0YWRhdGEKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc2NvcGUqKiB8IFsqKkFzc2V0U2NvcGUqKl0oQXNzZXRTY29wZS5tZCkgfCAgfCAKKipkZXByZWNhdGVkKiogfCAqKmJvb2wqKiB8IElzIGJsb2NrY2hhaW4gZGVwcmVjYXRlZCB8IAoqKm1lZGlhKiogfCBbKipMaXN0W0Jsb2NrY2hhaW5NZWRpYV0qKl0oQmxvY2tjaGFpbk1lZGlhLm1kKSB8IEJsb2NrY2hhaW7igJlzIG1lZGlhIHwgW29wdGlvbmFsXSAKKipleHBsb3JlcioqIHwgWyoqQmxvY2tjaGFpbkV4cGxvcmVyKipdKEJsb2NrY2hhaW5FeHBsb3Jlci5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9tZXRhZGF0YSBpbXBvcnQgQmxvY2tjaGFpbk1ldGFkYXRhCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCbG9ja2NoYWluTWV0YWRhdGEgZnJvbSBhIEpTT04gc3RyaW5nCmJsb2NrY2hhaW5fbWV0YWRhdGFfaW5zdGFuY2UgPSBCbG9ja2NoYWluTWV0YWRhdGEuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQmxvY2tjaGFpbk1ldGFkYXRhLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmJsb2NrY2hhaW5fbWV0YWRhdGFfZGljdCA9IGJsb2NrY2hhaW5fbWV0YWRhdGFfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEJsb2NrY2hhaW5NZXRhZGF0YSBmcm9tIGEgZGljdApibG9ja2NoYWluX21ldGFkYXRhX2Zyb21fZGljdCA9IEJsb2NrY2hhaW5NZXRhZGF0YS5mcm9tX2RpY3QoYmxvY2tjaGFpbl9tZXRhZGF0YV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/BlockchainNotFoundErrorResponse.md b/docs/BlockchainNotFoundErrorResponse.md index 69ac1828..8f816341 100644 --- a/docs/BlockchainNotFoundErrorResponse.md +++ b/docs/BlockchainNotFoundErrorResponse.md @@ -1,30 +1 @@ -# BlockchainNotFoundErrorResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Not found error code | -**code** | **float** | Error code | - -## Example - -```python -from fireblocks.models.blockchain_not_found_error_response import BlockchainNotFoundErrorResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of BlockchainNotFoundErrorResponse from a JSON string -blockchain_not_found_error_response_instance = BlockchainNotFoundErrorResponse.from_json(json) -# print the JSON string representation of the object -print(BlockchainNotFoundErrorResponse.to_json()) - -# convert the object into a dict -blockchain_not_found_error_response_dict = blockchain_not_found_error_response_instance.to_dict() -# create an instance of BlockchainNotFoundErrorResponse from a dict -blockchain_not_found_error_response_from_dict = BlockchainNotFoundErrorResponse.from_dict(blockchain_not_found_error_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBCbG9ja2NoYWluTm90Rm91bmRFcnJvclJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm1lc3NhZ2UqKiB8ICoqc3RyKiogfCBOb3QgZm91bmQgZXJyb3IgY29kZSB8IAoqKmNvZGUqKiB8ICoqZmxvYXQqKiB8IEVycm9yIGNvZGUgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fbm90X2ZvdW5kX2Vycm9yX3Jlc3BvbnNlIGltcG9ydCBCbG9ja2NoYWluTm90Rm91bmRFcnJvclJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCbG9ja2NoYWluTm90Rm91bmRFcnJvclJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpibG9ja2NoYWluX25vdF9mb3VuZF9lcnJvcl9yZXNwb25zZV9pbnN0YW5jZSA9IEJsb2NrY2hhaW5Ob3RGb3VuZEVycm9yUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQmxvY2tjaGFpbk5vdEZvdW5kRXJyb3JSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApibG9ja2NoYWluX25vdF9mb3VuZF9lcnJvcl9yZXNwb25zZV9kaWN0ID0gYmxvY2tjaGFpbl9ub3RfZm91bmRfZXJyb3JfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEJsb2NrY2hhaW5Ob3RGb3VuZEVycm9yUmVzcG9uc2UgZnJvbSBhIGRpY3QKYmxvY2tjaGFpbl9ub3RfZm91bmRfZXJyb3JfcmVzcG9uc2VfZnJvbV9kaWN0ID0gQmxvY2tjaGFpbk5vdEZvdW5kRXJyb3JSZXNwb25zZS5mcm9tX2RpY3QoYmxvY2tjaGFpbl9ub3RfZm91bmRfZXJyb3JfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/BlockchainOnchain.md b/docs/BlockchainOnchain.md index ab939787..71182b78 100644 --- a/docs/BlockchainOnchain.md +++ b/docs/BlockchainOnchain.md @@ -1,32 +1 @@ -# BlockchainOnchain - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**protocol** | **str** | The protocol of the blockchain | -**chain_id** | **str** | Network/chain ID | [optional] -**test** | **bool** | Is test blockchain | -**signing_algo** | **str** | Signing alghorithm | - -## Example - -```python -from fireblocks.models.blockchain_onchain import BlockchainOnchain - -# TODO update the JSON string below -json = "{}" -# create an instance of BlockchainOnchain from a JSON string -blockchain_onchain_instance = BlockchainOnchain.from_json(json) -# print the JSON string representation of the object -print(BlockchainOnchain.to_json()) - -# convert the object into a dict -blockchain_onchain_dict = blockchain_onchain_instance.to_dict() -# create an instance of BlockchainOnchain from a dict -blockchain_onchain_from_dict = BlockchainOnchain.from_dict(blockchain_onchain_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBCbG9ja2NoYWluT25jaGFpbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipwcm90b2NvbCoqIHwgKipzdHIqKiB8IFRoZSBwcm90b2NvbCBvZiB0aGUgYmxvY2tjaGFpbiB8IAoqKmNoYWluX2lkKiogfCAqKnN0cioqIHwgTmV0d29yay9jaGFpbiBJRCB8IFtvcHRpb25hbF0gCioqdGVzdCoqIHwgKipib29sKiogfCBJcyB0ZXN0IGJsb2NrY2hhaW4gfCAKKipzaWduaW5nX2FsZ28qKiB8ICoqc3RyKiogfCBTaWduaW5nIGFsZ2hvcml0aG0gfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fb25jaGFpbiBpbXBvcnQgQmxvY2tjaGFpbk9uY2hhaW4KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEJsb2NrY2hhaW5PbmNoYWluIGZyb20gYSBKU09OIHN0cmluZwpibG9ja2NoYWluX29uY2hhaW5faW5zdGFuY2UgPSBCbG9ja2NoYWluT25jaGFpbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChCbG9ja2NoYWluT25jaGFpbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApibG9ja2NoYWluX29uY2hhaW5fZGljdCA9IGJsb2NrY2hhaW5fb25jaGFpbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQmxvY2tjaGFpbk9uY2hhaW4gZnJvbSBhIGRpY3QKYmxvY2tjaGFpbl9vbmNoYWluX2Zyb21fZGljdCA9IEJsb2NrY2hhaW5PbmNoYWluLmZyb21fZGljdChibG9ja2NoYWluX29uY2hhaW5fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/BlockchainResponse.md b/docs/BlockchainResponse.md index 8ba901ea..a28b7b84 100644 --- a/docs/BlockchainResponse.md +++ b/docs/BlockchainResponse.md @@ -1,34 +1 @@ -# BlockchainResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The ID of the blockchain | -**legacy_id** | **str** | The old blockchain ID representation of the blockchain | -**display_name** | **str** | The name of the blockchain | -**native_asset_id** | **str** | Native asset ID of this blockchain | -**onchain** | [**BlockchainOnchain**](BlockchainOnchain.md) | | -**metadata** | [**BlockchainMetadata**](BlockchainMetadata.md) | | - -## Example - -```python -from fireblocks.models.blockchain_response import BlockchainResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of BlockchainResponse from a JSON string -blockchain_response_instance = BlockchainResponse.from_json(json) -# print the JSON string representation of the object -print(BlockchainResponse.to_json()) - -# convert the object into a dict -blockchain_response_dict = blockchain_response_instance.to_dict() -# create an instance of BlockchainResponse from a dict -blockchain_response_from_dict = BlockchainResponse.from_dict(blockchain_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBCbG9ja2NoYWluUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBUaGUgSUQgb2YgdGhlIGJsb2NrY2hhaW4gfCAKKipsZWdhY3lfaWQqKiB8ICoqc3RyKiogfCBUaGUgb2xkIGJsb2NrY2hhaW4gSUQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGJsb2NrY2hhaW4gfCAKKipkaXNwbGF5X25hbWUqKiB8ICoqc3RyKiogfCBUaGUgbmFtZSBvZiB0aGUgYmxvY2tjaGFpbiB8IAoqKm5hdGl2ZV9hc3NldF9pZCoqIHwgKipzdHIqKiB8IE5hdGl2ZSBhc3NldCBJRCBvZiB0aGlzIGJsb2NrY2hhaW4gfCAKKipvbmNoYWluKiogfCBbKipCbG9ja2NoYWluT25jaGFpbioqXShCbG9ja2NoYWluT25jaGFpbi5tZCkgfCAgfCAKKiptZXRhZGF0YSoqIHwgWyoqQmxvY2tjaGFpbk1ldGFkYXRhKipdKEJsb2NrY2hhaW5NZXRhZGF0YS5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fcmVzcG9uc2UgaW1wb3J0IEJsb2NrY2hhaW5SZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQmxvY2tjaGFpblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpibG9ja2NoYWluX3Jlc3BvbnNlX2luc3RhbmNlID0gQmxvY2tjaGFpblJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEJsb2NrY2hhaW5SZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApibG9ja2NoYWluX3Jlc3BvbnNlX2RpY3QgPSBibG9ja2NoYWluX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCbG9ja2NoYWluUmVzcG9uc2UgZnJvbSBhIGRpY3QKYmxvY2tjaGFpbl9yZXNwb25zZV9mcm9tX2RpY3QgPSBCbG9ja2NoYWluUmVzcG9uc2UuZnJvbV9kaWN0KGJsb2NrY2hhaW5fcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/BlockchainTransfer.md b/docs/BlockchainTransfer.md index bef366ad..f30165fb 100644 --- a/docs/BlockchainTransfer.md +++ b/docs/BlockchainTransfer.md @@ -1,31 +1 @@ -# BlockchainTransfer - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | [optional] -**tx_hash** | **str** | The hash of the transaction on the blockchain. | [optional] -**amount** | **str** | The amount of the transaction. | - -## Example - -```python -from fireblocks.models.blockchain_transfer import BlockchainTransfer - -# TODO update the JSON string below -json = "{}" -# create an instance of BlockchainTransfer from a JSON string -blockchain_transfer_instance = BlockchainTransfer.from_json(json) -# print the JSON string representation of the object -print(BlockchainTransfer.to_json()) - -# convert the object into a dict -blockchain_transfer_dict = blockchain_transfer_instance.to_dict() -# create an instance of BlockchainTransfer from a dict -blockchain_transfer_from_dict = BlockchainTransfer.from_dict(blockchain_transfer_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBCbG9ja2NoYWluVHJhbnNmZXIKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqdHhfaGFzaCoqIHwgKipzdHIqKiB8IFRoZSBoYXNoIG9mIHRoZSB0cmFuc2FjdGlvbiBvbiB0aGUgYmxvY2tjaGFpbi4gfCBbb3B0aW9uYWxdIAoqKmFtb3VudCoqIHwgKipzdHIqKiB8IFRoZSBhbW91bnQgb2YgdGhlIHRyYW5zYWN0aW9uLiB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl90cmFuc2ZlciBpbXBvcnQgQmxvY2tjaGFpblRyYW5zZmVyCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCbG9ja2NoYWluVHJhbnNmZXIgZnJvbSBhIEpTT04gc3RyaW5nCmJsb2NrY2hhaW5fdHJhbnNmZXJfaW5zdGFuY2UgPSBCbG9ja2NoYWluVHJhbnNmZXIuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQmxvY2tjaGFpblRyYW5zZmVyLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmJsb2NrY2hhaW5fdHJhbnNmZXJfZGljdCA9IGJsb2NrY2hhaW5fdHJhbnNmZXJfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEJsb2NrY2hhaW5UcmFuc2ZlciBmcm9tIGEgZGljdApibG9ja2NoYWluX3RyYW5zZmVyX2Zyb21fZGljdCA9IEJsb2NrY2hhaW5UcmFuc2Zlci5mcm9tX2RpY3QoYmxvY2tjaGFpbl90cmFuc2Zlcl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/BlockchainsAssetsApi.md b/docs/BlockchainsAssetsApi.md index e8918004..3b026b71 100644 --- a/docs/BlockchainsAssetsApi.md +++ b/docs/BlockchainsAssetsApi.md @@ -1,689 +1 @@ -# fireblocks.BlockchainsAssetsApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**get_asset**](BlockchainsAssetsApi.md#get_asset) | **GET** /assets/{id} | Get an asset -[**get_blockchain**](BlockchainsAssetsApi.md#get_blockchain) | **GET** /blockchains/{id} | Get a Blockchain by ID -[**get_supported_assets**](BlockchainsAssetsApi.md#get_supported_assets) | **GET** /supported_assets | List assets (Legacy) -[**list_assets**](BlockchainsAssetsApi.md#list_assets) | **GET** /assets | List assets -[**list_blockchains**](BlockchainsAssetsApi.md#list_blockchains) | **GET** /blockchains | List blockchains -[**register_new_asset**](BlockchainsAssetsApi.md#register_new_asset) | **POST** /assets | Register an asset -[**set_asset_price**](BlockchainsAssetsApi.md#set_asset_price) | **POST** /assets/prices/{id} | Set asset price -[**update_asset_user_metadata**](BlockchainsAssetsApi.md#update_asset_user_metadata) | **PATCH** /assets/{id} | Update the user’s metadata for an asset - - -# **get_asset** -> Asset get_asset(id, idempotency_key=idempotency_key) - -Get an asset - -Returns an asset by ID or legacyID.
- -**Note**: - - - We will continue displaying and supporting the legacy ID (API ID). Since not all Fireblocks services fully support the new Assets UUID, please use only the legacy ID until further notice. - - -### Example - - -```python -from fireblocks.models.asset import Asset -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - id = 'ETH' # str | The ID or legacyId of the asset - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Get an asset - api_response = fireblocks.blockchains_assets.get_asset(id, idempotency_key=idempotency_key).result() - print("The response of BlockchainsAssetsApi->get_asset:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling BlockchainsAssetsApi->get_asset: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **id** | **str**| The ID or legacyId of the asset | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**Asset**](Asset.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Asset with requested identification | * X-Request-ID -
| -**404** | - Asset with specified ID or legacy ID is not found. Error code 1504 | - | -**500** | Error occurred while getting an asset | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_blockchain** -> BlockchainResponse get_blockchain(id) - -Get a Blockchain by ID - -Returns a blockchain by ID or legacyID. - - -### Example - - -```python -from fireblocks.models.blockchain_response import BlockchainResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - id = 'ETH' # str | The ID or legacyId of the blockchain - - try: - # Get a Blockchain by ID - api_response = fireblocks.blockchains_assets.get_blockchain(id).result() - print("The response of BlockchainsAssetsApi->get_blockchain:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling BlockchainsAssetsApi->get_blockchain: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **id** | **str**| The ID or legacyId of the blockchain | - -### Return type - -[**BlockchainResponse**](BlockchainResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Blockchain with requested identification | * X-Request-ID -
| -**404** | - Blockchain with specified ID or legacy ID is not found. Error code 1505 | - | -**500** | Error occurred while getting an blockchain | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_supported_assets** -> List[AssetTypeResponse] get_supported_assets() - -List assets (Legacy) - -**This legacy endpoint has not been deprecated but it should not be used in your operations. Instead, use the new [List assets](https://developers.fireblocks.com/reference/listassets) endpoint for better performance and to retrieve more detailed asset information.** - -Retrieves all assets supported by Fireblocks in your workspace. - -**Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor. - - -### Example - - -```python -from fireblocks.models.asset_type_response import AssetTypeResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # List assets (Legacy) - api_response = fireblocks.blockchains_assets.get_supported_assets().result() - print("The response of BlockchainsAssetsApi->get_supported_assets:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling BlockchainsAssetsApi->get_supported_assets: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**List[AssetTypeResponse]**](AssetTypeResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A Transaction object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **list_assets** -> ListAssetsResponse list_assets(blockchain_id=blockchain_id, asset_class=asset_class, symbol=symbol, scope=scope, deprecated=deprecated, ids=ids, page_cursor=page_cursor, page_size=page_size, idempotency_key=idempotency_key) - -List assets - -Retrieves a paginated list of all assets supported by Fireblocks in your workspace - -**Note:** We will continue to support and display the legacy ID (API ID). Since not all Fireblocks services fully support the new Assets UUID, please use only the legacy ID until further notice. - - -### Example - - -```python -from fireblocks.models.asset_class import AssetClass -from fireblocks.models.asset_scope import AssetScope -from fireblocks.models.list_assets_response import ListAssetsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - blockchain_id = '0f672204-a28b-464a-b318-a387abd3d3c7' # str | Blockchain id of the assets (optional) - asset_class = fireblocks.AssetClass() # AssetClass | Assets class (optional) - symbol = 'ETH' # str | Assets onchain symbol (optional) - scope = fireblocks.AssetScope() # AssetScope | Scope of the assets (optional) - deprecated = false # bool | Are assets deprecated (optional) - ids = ['[\"3ed32525-70df-45c8-bae3-e69ab56dc095\",\"3a3b5f06-61e7-44f0-9962-4425b55795ff\",\"SHANI5_B75VRLGX_MUPA\"]'] # List[str] | A list of asset IDs (max 100) (optional) - page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Next page cursor to fetch (optional) - page_size = 500 # float | Items per page (optional) (default to 500) - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # List assets - api_response = fireblocks.blockchains_assets.list_assets(blockchain_id=blockchain_id, asset_class=asset_class, symbol=symbol, scope=scope, deprecated=deprecated, ids=ids, page_cursor=page_cursor, page_size=page_size, idempotency_key=idempotency_key).result() - print("The response of BlockchainsAssetsApi->list_assets:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling BlockchainsAssetsApi->list_assets: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **blockchain_id** | **str**| Blockchain id of the assets | [optional] - **asset_class** | [**AssetClass**](.md)| Assets class | [optional] - **symbol** | **str**| Assets onchain symbol | [optional] - **scope** | [**AssetScope**](.md)| Scope of the assets | [optional] - **deprecated** | **bool**| Are assets deprecated | [optional] - **ids** | [**List[str]**](str.md)| A list of asset IDs (max 100) | [optional] - **page_cursor** | **str**| Next page cursor to fetch | [optional] - **page_size** | **float**| Items per page | [optional] [default to 500] - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**ListAssetsResponse**](ListAssetsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | List of assets | - | -**500** | Error occurred while listing assets | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **list_blockchains** -> ListBlockchainsResponse list_blockchains(protocol=protocol, deprecated=deprecated, test=test, ids=ids, page_cursor=page_cursor, page_size=page_size) - -List blockchains - -Returns all blockchains supported by Fireblocks.
- - -### Example - - -```python -from fireblocks.models.list_blockchains_response import ListBlockchainsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - protocol = 'SOL' # str | Blockchain protocol (optional) - deprecated = false # bool | Is blockchain deprecated (optional) - test = false # bool | Is test blockchain (optional) - ids = ['[\"3ed32525-70df-45c8-bae3-e69ab56dc095\",\"3a3b5f06-61e7-44f0-9962-4425b55795ff\",\"MANTRA\"]'] # List[str] | A list of blockchain IDs (max 100) (optional) - page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Page cursor to fetch (optional) - page_size = 500 # float | Items per page (max 500) (optional) (default to 500) - - try: - # List blockchains - api_response = fireblocks.blockchains_assets.list_blockchains(protocol=protocol, deprecated=deprecated, test=test, ids=ids, page_cursor=page_cursor, page_size=page_size).result() - print("The response of BlockchainsAssetsApi->list_blockchains:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling BlockchainsAssetsApi->list_blockchains: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **protocol** | **str**| Blockchain protocol | [optional] - **deprecated** | **bool**| Is blockchain deprecated | [optional] - **test** | **bool**| Is test blockchain | [optional] - **ids** | [**List[str]**](str.md)| A list of blockchain IDs (max 100) | [optional] - **page_cursor** | **str**| Page cursor to fetch | [optional] - **page_size** | **float**| Items per page (max 500) | [optional] [default to 500] - -### Return type - -[**ListBlockchainsResponse**](ListBlockchainsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | List of supported blockchains | - | -**500** | Error occurred while listing blockchains | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **register_new_asset** -> AssetResponse register_new_asset(idempotency_key=idempotency_key, register_new_asset_request=register_new_asset_request) - -Register an asset - -Register a new asset to a workspace and return the newly created asset's details. Currently supported chains are: -- EVM based chains -- Stellar -- Algorand -- TRON -- NEAR -- Solana -- Sui -- TON - - -### Example - - -```python -from fireblocks.models.asset_response import AssetResponse -from fireblocks.models.register_new_asset_request import RegisterNewAssetRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - register_new_asset_request = fireblocks.RegisterNewAssetRequest() # RegisterNewAssetRequest | (optional) - - try: - # Register an asset - api_response = fireblocks.blockchains_assets.register_new_asset(idempotency_key=idempotency_key, register_new_asset_request=register_new_asset_request).result() - print("The response of BlockchainsAssetsApi->register_new_asset:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling BlockchainsAssetsApi->register_new_asset: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **register_new_asset_request** | [**RegisterNewAssetRequest**](RegisterNewAssetRequest.md)| | [optional] - -### Return type - -[**AssetResponse**](AssetResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A new asset has been created successfully | - | -**400** | - Listing an asset on the requested blockchain is not supported. Error code: 1000 - The asset address is invalid. Error code: 1003 - Self serve listing an asset on the requested blockchain is currently not supported, please contact support. Error code: 1004 - Blockchain is deprecated. Error code: 1006 - The asset's standard is not supported. Error code: 1007 - Unable to get expected metadata: decimals | name | symbol. Error code: 1010 | - | -**403** | - The asset creation quota reached. Error code: 1005 - Tenant is not allowed to create testnet assets. Error code: 1008 - Tenant is not allowed to create mainnet assets. Error code: 1009 | - | -**404** | - Invalid address, could not get asset information. Error code 1003 | - | -**409** | - The asset is already supported globally. Error code: 1001 - The asset has already been added to this workspace. Error code: 1002 | - | -**500** | Failed to create asset | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_asset_price** -> AssetPriceResponse set_asset_price(id, idempotency_key=idempotency_key, set_asset_price_request=set_asset_price_request) - -Set asset price - -Set asset price for the given asset id. Returns the asset price response. - - -### Example - - -```python -from fireblocks.models.asset_price_response import AssetPriceResponse -from fireblocks.models.set_asset_price_request import SetAssetPriceRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - id = 'ETH' # str | The ID of the asset - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - set_asset_price_request = fireblocks.SetAssetPriceRequest() # SetAssetPriceRequest | (optional) - - try: - # Set asset price - api_response = fireblocks.blockchains_assets.set_asset_price(id, idempotency_key=idempotency_key, set_asset_price_request=set_asset_price_request).result() - print("The response of BlockchainsAssetsApi->set_asset_price:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling BlockchainsAssetsApi->set_asset_price: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **id** | **str**| The ID of the asset | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **set_asset_price_request** | [**SetAssetPriceRequest**](SetAssetPriceRequest.md)| | [optional] - -### Return type - -[**AssetPriceResponse**](AssetPriceResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Asset price has been set successfully. | - | -**403** | - Tenant is not allowed to set rate. Error code: 1002. | - | -**404** | - Currency not found. Error code 1001 | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_asset_user_metadata** -> Asset update_asset_user_metadata(id, idempotency_key=idempotency_key, update_asset_user_metadata_request=update_asset_user_metadata_request) - -Update the user’s metadata for an asset - -Update the user’s metadata for an asset. - -Endpoint Permission: Owner, Admin, Non-Signing Admin, NCW Admin, Signer, Editor. - -### Example - - -```python -from fireblocks.models.asset import Asset -from fireblocks.models.update_asset_user_metadata_request import UpdateAssetUserMetadataRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - id = 'ETH' # str | The ID or legacyId of the asset - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - update_asset_user_metadata_request = fireblocks.UpdateAssetUserMetadataRequest() # UpdateAssetUserMetadataRequest | (optional) - - try: - # Update the user’s metadata for an asset - api_response = fireblocks.blockchains_assets.update_asset_user_metadata(id, idempotency_key=idempotency_key, update_asset_user_metadata_request=update_asset_user_metadata_request).result() - print("The response of BlockchainsAssetsApi->update_asset_user_metadata:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling BlockchainsAssetsApi->update_asset_user_metadata: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **id** | **str**| The ID or legacyId of the asset | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **update_asset_user_metadata_request** | [**UpdateAssetUserMetadataRequest**](UpdateAssetUserMetadataRequest.md)| | [optional] - -### Return type - -[**Asset**](Asset.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Updated asset user metadata | * X-Request-ID -
| -**404** | - Asset with specified ID or legacy ID is not found. Error code 1504 | - | -**500** | Error occurred while updating asset user metadata | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLkJsb2NrY2hhaW5zQXNzZXRzQXBpCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gKmh0dHBzOi8vYXBpLmZpcmVibG9ja3MuaW8vdjEqCgpNZXRob2QgfCBIVFRQIHJlcXVlc3QgfCBEZXNjcmlwdGlvbgotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KWyoqZ2V0X2Fzc2V0KipdKEJsb2NrY2hhaW5zQXNzZXRzQXBpLm1kI2dldF9hc3NldCkgfCAqKkdFVCoqIC9hc3NldHMve2lkfSB8IEdldCBhbiBhc3NldApbKipnZXRfYmxvY2tjaGFpbioqXShCbG9ja2NoYWluc0Fzc2V0c0FwaS5tZCNnZXRfYmxvY2tjaGFpbikgfCAqKkdFVCoqIC9ibG9ja2NoYWlucy97aWR9IHwgR2V0IGEgQmxvY2tjaGFpbiBieSBJRApbKipnZXRfc3VwcG9ydGVkX2Fzc2V0cyoqXShCbG9ja2NoYWluc0Fzc2V0c0FwaS5tZCNnZXRfc3VwcG9ydGVkX2Fzc2V0cykgfCAqKkdFVCoqIC9zdXBwb3J0ZWRfYXNzZXRzIHwgTGlzdCBhc3NldHMgKExlZ2FjeSkKWyoqbGlzdF9hc3NldHMqKl0oQmxvY2tjaGFpbnNBc3NldHNBcGkubWQjbGlzdF9hc3NldHMpIHwgKipHRVQqKiAvYXNzZXRzIHwgTGlzdCBhc3NldHMKWyoqbGlzdF9ibG9ja2NoYWlucyoqXShCbG9ja2NoYWluc0Fzc2V0c0FwaS5tZCNsaXN0X2Jsb2NrY2hhaW5zKSB8ICoqR0VUKiogL2Jsb2NrY2hhaW5zIHwgTGlzdCBibG9ja2NoYWlucwpbKipyZWdpc3Rlcl9uZXdfYXNzZXQqKl0oQmxvY2tjaGFpbnNBc3NldHNBcGkubWQjcmVnaXN0ZXJfbmV3X2Fzc2V0KSB8ICoqUE9TVCoqIC9hc3NldHMgfCBSZWdpc3RlciBhbiBhc3NldApbKipzZXRfYXNzZXRfcHJpY2UqKl0oQmxvY2tjaGFpbnNBc3NldHNBcGkubWQjc2V0X2Fzc2V0X3ByaWNlKSB8ICoqUE9TVCoqIC9hc3NldHMvcHJpY2VzL3tpZH0gfCBTZXQgYXNzZXQgcHJpY2UKWyoqdXBkYXRlX2Fzc2V0X3VzZXJfbWV0YWRhdGEqKl0oQmxvY2tjaGFpbnNBc3NldHNBcGkubWQjdXBkYXRlX2Fzc2V0X3VzZXJfbWV0YWRhdGEpIHwgKipQQVRDSCoqIC9hc3NldHMve2lkfSB8IFVwZGF0ZSB0aGUgdXNlcuKAmXMgbWV0YWRhdGEgZm9yIGFuIGFzc2V0CgoKIyAqKmdldF9hc3NldCoqCj4gQXNzZXQgZ2V0X2Fzc2V0KGlkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKR2V0IGFuIGFzc2V0CgpSZXR1cm5zIGFuIGFzc2V0IGJ5IElEIG9yIGxlZ2FjeUlELjwvYnI+CgoqKk5vdGUqKjoKCiAgLSBXZSB3aWxsIGNvbnRpbnVlIGRpc3BsYXlpbmcgYW5kIHN1cHBvcnRpbmcgdGhlIGxlZ2FjeSBJRCAoQVBJIElEKS4gU2luY2Ugbm90IGFsbCBGaXJlYmxvY2tzIHNlcnZpY2VzIGZ1bGx5IHN1cHBvcnQgdGhlIG5ldyBBc3NldHMgVVVJRCwgcGxlYXNlIHVzZSBvbmx5IHRoZSBsZWdhY3kgSUQgdW50aWwgZnVydGhlciBub3RpY2UuCgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldCBpbXBvcnQgQXNzZXQKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgaWQgPSAnRVRIJyAjIHN0ciB8IFRoZSBJRCBvciBsZWdhY3lJZCBvZiB0aGUgYXNzZXQKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgYW4gYXNzZXQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmJsb2NrY2hhaW5zX2Fzc2V0cy5nZXRfYXNzZXQoaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBCbG9ja2NoYWluc0Fzc2V0c0FwaS0+Z2V0X2Fzc2V0OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEJsb2NrY2hhaW5zQXNzZXRzQXBpLT5nZXRfYXNzZXQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmlkKiogfCAqKnN0cioqfCBUaGUgSUQgb3IgbGVnYWN5SWQgb2YgdGhlIGFzc2V0IHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkFzc2V0KipdKEFzc2V0Lm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQXNzZXQgd2l0aCByZXF1ZXN0ZWQgaWRlbnRpZmljYXRpb24gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwNCoqIHwgLSBBc3NldCB3aXRoIHNwZWNpZmllZCBJRCBvciBsZWdhY3kgSUQgaXMgbm90IGZvdW5kLiBFcnJvciBjb2RlIDE1MDQgIHwgIC0gIHwKKio1MDAqKiB8IEVycm9yIG9jY3VycmVkIHdoaWxlIGdldHRpbmcgYW4gYXNzZXQgfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9ibG9ja2NoYWluKioKPiBCbG9ja2NoYWluUmVzcG9uc2UgZ2V0X2Jsb2NrY2hhaW4oaWQpCgpHZXQgYSBCbG9ja2NoYWluIGJ5IElECgpSZXR1cm5zIGEgYmxvY2tjaGFpbiBieSBJRCBvciBsZWdhY3lJRC4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fcmVzcG9uc2UgaW1wb3J0IEJsb2NrY2hhaW5SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBpZCA9ICdFVEgnICMgc3RyIHwgVGhlIElEIG9yIGxlZ2FjeUlkIG9mIHRoZSBibG9ja2NoYWluCgogICAgdHJ5OgogICAgICAgICMgR2V0IGEgQmxvY2tjaGFpbiBieSBJRAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuYmxvY2tjaGFpbnNfYXNzZXRzLmdldF9ibG9ja2NoYWluKGlkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgQmxvY2tjaGFpbnNBc3NldHNBcGktPmdldF9ibG9ja2NoYWluOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEJsb2NrY2hhaW5zQXNzZXRzQXBpLT5nZXRfYmxvY2tjaGFpbjogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvciBsZWdhY3lJZCBvZiB0aGUgYmxvY2tjaGFpbiB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipCbG9ja2NoYWluUmVzcG9uc2UqKl0oQmxvY2tjaGFpblJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQmxvY2tjaGFpbiB3aXRoIHJlcXVlc3RlZCBpZGVudGlmaWNhdGlvbiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDA0KiogfCAtIEJsb2NrY2hhaW4gd2l0aCBzcGVjaWZpZWQgSUQgb3IgbGVnYWN5IElEIGlzIG5vdCBmb3VuZC4gRXJyb3IgY29kZSAxNTA1ICB8ICAtICB8CioqNTAwKiogfCBFcnJvciBvY2N1cnJlZCB3aGlsZSBnZXR0aW5nIGFuIGJsb2NrY2hhaW4gfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9zdXBwb3J0ZWRfYXNzZXRzKioKPiBMaXN0W0Fzc2V0VHlwZVJlc3BvbnNlXSBnZXRfc3VwcG9ydGVkX2Fzc2V0cygpCgpMaXN0IGFzc2V0cyAoTGVnYWN5KQoKKipUaGlzIGxlZ2FjeSBlbmRwb2ludCBoYXMgbm90IGJlZW4gZGVwcmVjYXRlZCBidXQgaXQgc2hvdWxkIG5vdCBiZSB1c2VkIGluIHlvdXIgb3BlcmF0aW9ucy4gSW5zdGVhZCwgdXNlIHRoZSBuZXcgW0xpc3QgYXNzZXRzXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2xpc3Rhc3NldHMpIGVuZHBvaW50IGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UgYW5kIHRvIHJldHJpZXZlIG1vcmUgZGV0YWlsZWQgYXNzZXQgaW5mb3JtYXRpb24uKioKClJldHJpZXZlcyBhbGwgYXNzZXRzIHN1cHBvcnRlZCBieSBGaXJlYmxvY2tzIGluIHlvdXIgd29ya3NwYWNlLgoKKipFbmRwb2ludCBQZXJtaXNzaW9uczoqKiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X3R5cGVfcmVzcG9uc2UgaW1wb3J0IEFzc2V0VHlwZVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKCiAgICB0cnk6CiAgICAgICAgIyBMaXN0IGFzc2V0cyAoTGVnYWN5KQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuYmxvY2tjaGFpbnNfYXNzZXRzLmdldF9zdXBwb3J0ZWRfYXNzZXRzKCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEJsb2NrY2hhaW5zQXNzZXRzQXBpLT5nZXRfc3VwcG9ydGVkX2Fzc2V0czpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBCbG9ja2NoYWluc0Fzc2V0c0FwaS0+Z2V0X3N1cHBvcnRlZF9hc3NldHM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgpUaGlzIGVuZHBvaW50IGRvZXMgbm90IG5lZWQgYW55IHBhcmFtZXRlci4KCiMjIyBSZXR1cm4gdHlwZQoKWyoqTGlzdFtBc3NldFR5cGVSZXNwb25zZV0qKl0oQXNzZXRUeXBlUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBIFRyYW5zYWN0aW9uIG9iamVjdCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqbGlzdF9hc3NldHMqKgo+IExpc3RBc3NldHNSZXNwb25zZSBsaXN0X2Fzc2V0cyhibG9ja2NoYWluX2lkPWJsb2NrY2hhaW5faWQsIGFzc2V0X2NsYXNzPWFzc2V0X2NsYXNzLCBzeW1ib2w9c3ltYm9sLCBzY29wZT1zY29wZSwgZGVwcmVjYXRlZD1kZXByZWNhdGVkLCBpZHM9aWRzLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCkxpc3QgYXNzZXRzCgpSZXRyaWV2ZXMgYSBwYWdpbmF0ZWQgbGlzdCBvZiBhbGwgYXNzZXRzIHN1cHBvcnRlZCBieSBGaXJlYmxvY2tzIGluIHlvdXIgd29ya3NwYWNlCgoqKk5vdGU6KiogV2Ugd2lsbCBjb250aW51ZSB0byBzdXBwb3J0IGFuZCBkaXNwbGF5IHRoZSBsZWdhY3kgSUQgKEFQSSBJRCkuIFNpbmNlIG5vdCBhbGwgRmlyZWJsb2NrcyBzZXJ2aWNlcyBmdWxseSBzdXBwb3J0IHRoZSBuZXcgQXNzZXRzIFVVSUQsIHBsZWFzZSB1c2Ugb25seSB0aGUgbGVnYWN5IElEIHVudGlsIGZ1cnRoZXIgbm90aWNlLgoKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfY2xhc3MgaW1wb3J0IEFzc2V0Q2xhc3MKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9zY29wZSBpbXBvcnQgQXNzZXRTY29wZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxpc3RfYXNzZXRzX3Jlc3BvbnNlIGltcG9ydCBMaXN0QXNzZXRzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgYmxvY2tjaGFpbl9pZCA9ICcwZjY3MjIwNC1hMjhiLTQ2NGEtYjMxOC1hMzg3YWJkM2QzYzcnICMgc3RyIHwgQmxvY2tjaGFpbiBpZCBvZiB0aGUgYXNzZXRzIChvcHRpb25hbCkKICAgIGFzc2V0X2NsYXNzID0gZmlyZWJsb2Nrcy5Bc3NldENsYXNzKCkgIyBBc3NldENsYXNzIHwgQXNzZXRzIGNsYXNzIChvcHRpb25hbCkKICAgIHN5bWJvbCA9ICdFVEgnICMgc3RyIHwgQXNzZXRzIG9uY2hhaW4gc3ltYm9sIChvcHRpb25hbCkKICAgIHNjb3BlID0gZmlyZWJsb2Nrcy5Bc3NldFNjb3BlKCkgIyBBc3NldFNjb3BlIHwgU2NvcGUgb2YgdGhlIGFzc2V0cyAob3B0aW9uYWwpCiAgICBkZXByZWNhdGVkID0gZmFsc2UgIyBib29sIHwgQXJlIGFzc2V0cyBkZXByZWNhdGVkIChvcHRpb25hbCkKICAgIGlkcyA9IFsnW1wiM2VkMzI1MjUtNzBkZi00NWM4LWJhZTMtZTY5YWI1NmRjMDk1XCIsXCIzYTNiNWYwNi02MWU3LTQ0ZjAtOTk2Mi00NDI1YjU1Nzk1ZmZcIixcIlNIQU5JNV9CNzVWUkxHWF9NVVBBXCJdJ10gIyBMaXN0W3N0cl0gfCBBIGxpc3Qgb2YgYXNzZXQgSURzIChtYXggMTAwKSAob3B0aW9uYWwpCiAgICBwYWdlX2N1cnNvciA9ICdNakF5TXkweE1pMHhNeUF5TURvek5qb3dPQzR6TURJPTpNVEV3TUE9PScgIyBzdHIgfCBOZXh0IHBhZ2UgY3Vyc29yIHRvIGZldGNoIChvcHRpb25hbCkKICAgIHBhZ2Vfc2l6ZSA9IDUwMCAjIGZsb2F0IHwgSXRlbXMgcGVyIHBhZ2UgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byA1MDApCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgTGlzdCBhc3NldHMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmJsb2NrY2hhaW5zX2Fzc2V0cy5saXN0X2Fzc2V0cyhibG9ja2NoYWluX2lkPWJsb2NrY2hhaW5faWQsIGFzc2V0X2NsYXNzPWFzc2V0X2NsYXNzLCBzeW1ib2w9c3ltYm9sLCBzY29wZT1zY29wZSwgZGVwcmVjYXRlZD1kZXByZWNhdGVkLCBpZHM9aWRzLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEJsb2NrY2hhaW5zQXNzZXRzQXBpLT5saXN0X2Fzc2V0czpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBCbG9ja2NoYWluc0Fzc2V0c0FwaS0+bGlzdF9hc3NldHM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmJsb2NrY2hhaW5faWQqKiB8ICoqc3RyKip8IEJsb2NrY2hhaW4gaWQgb2YgdGhlIGFzc2V0cyB8IFtvcHRpb25hbF0gCiAqKmFzc2V0X2NsYXNzKiogfCBbKipBc3NldENsYXNzKipdKC5tZCl8IEFzc2V0cyBjbGFzcyB8IFtvcHRpb25hbF0gCiAqKnN5bWJvbCoqIHwgKipzdHIqKnwgQXNzZXRzIG9uY2hhaW4gc3ltYm9sIHwgW29wdGlvbmFsXSAKICoqc2NvcGUqKiB8IFsqKkFzc2V0U2NvcGUqKl0oLm1kKXwgU2NvcGUgb2YgdGhlIGFzc2V0cyB8IFtvcHRpb25hbF0gCiAqKmRlcHJlY2F0ZWQqKiB8ICoqYm9vbCoqfCBBcmUgYXNzZXRzIGRlcHJlY2F0ZWQgfCBbb3B0aW9uYWxdIAogKippZHMqKiB8IFsqKkxpc3Rbc3RyXSoqXShzdHIubWQpfCBBIGxpc3Qgb2YgYXNzZXQgSURzIChtYXggMTAwKSB8IFtvcHRpb25hbF0gCiAqKnBhZ2VfY3Vyc29yKiogfCAqKnN0cioqfCBOZXh0IHBhZ2UgY3Vyc29yIHRvIGZldGNoIHwgW29wdGlvbmFsXSAKICoqcGFnZV9zaXplKiogfCAqKmZsb2F0Kip8IEl0ZW1zIHBlciBwYWdlIHwgW29wdGlvbmFsXSBbZGVmYXVsdCB0byA1MDBdCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkxpc3RBc3NldHNSZXNwb25zZSoqXShMaXN0QXNzZXRzUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBMaXN0IG9mIGFzc2V0cyB8ICAtICB8CioqNTAwKiogfCBFcnJvciBvY2N1cnJlZCB3aGlsZSBsaXN0aW5nIGFzc2V0cyB8ICAtICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqbGlzdF9ibG9ja2NoYWlucyoqCj4gTGlzdEJsb2NrY2hhaW5zUmVzcG9uc2UgbGlzdF9ibG9ja2NoYWlucyhwcm90b2NvbD1wcm90b2NvbCwgZGVwcmVjYXRlZD1kZXByZWNhdGVkLCB0ZXN0PXRlc3QsIGlkcz1pZHMsIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplKQoKTGlzdCBibG9ja2NoYWlucwoKUmV0dXJucyBhbGwgYmxvY2tjaGFpbnMgc3VwcG9ydGVkIGJ5IEZpcmVibG9ja3MuPC9icj4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxpc3RfYmxvY2tjaGFpbnNfcmVzcG9uc2UgaW1wb3J0IExpc3RCbG9ja2NoYWluc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHByb3RvY29sID0gJ1NPTCcgIyBzdHIgfCBCbG9ja2NoYWluIHByb3RvY29sIChvcHRpb25hbCkKICAgIGRlcHJlY2F0ZWQgPSBmYWxzZSAjIGJvb2wgfCBJcyBibG9ja2NoYWluIGRlcHJlY2F0ZWQgKG9wdGlvbmFsKQogICAgdGVzdCA9IGZhbHNlICMgYm9vbCB8IElzIHRlc3QgYmxvY2tjaGFpbiAob3B0aW9uYWwpCiAgICBpZHMgPSBbJ1tcIjNlZDMyNTI1LTcwZGYtNDVjOC1iYWUzLWU2OWFiNTZkYzA5NVwiLFwiM2EzYjVmMDYtNjFlNy00NGYwLTk5NjItNDQyNWI1NTc5NWZmXCIsXCJNQU5UUkFcIl0nXSAjIExpc3Rbc3RyXSB8IEEgbGlzdCBvZiBibG9ja2NoYWluIElEcyAobWF4IDEwMCkgKG9wdGlvbmFsKQogICAgcGFnZV9jdXJzb3IgPSAnTWpBeU15MHhNaTB4TXlBeU1Eb3pOam93T0M0ek1EST06TVRFd01BPT0nICMgc3RyIHwgUGFnZSBjdXJzb3IgdG8gZmV0Y2ggKG9wdGlvbmFsKQogICAgcGFnZV9zaXplID0gNTAwICMgZmxvYXQgfCBJdGVtcyBwZXIgcGFnZSAobWF4IDUwMCkgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byA1MDApCgogICAgdHJ5OgogICAgICAgICMgTGlzdCBibG9ja2NoYWlucwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuYmxvY2tjaGFpbnNfYXNzZXRzLmxpc3RfYmxvY2tjaGFpbnMocHJvdG9jb2w9cHJvdG9jb2wsIGRlcHJlY2F0ZWQ9ZGVwcmVjYXRlZCwgdGVzdD10ZXN0LCBpZHM9aWRzLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEJsb2NrY2hhaW5zQXNzZXRzQXBpLT5saXN0X2Jsb2NrY2hhaW5zOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEJsb2NrY2hhaW5zQXNzZXRzQXBpLT5saXN0X2Jsb2NrY2hhaW5zOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipwcm90b2NvbCoqIHwgKipzdHIqKnwgQmxvY2tjaGFpbiBwcm90b2NvbCB8IFtvcHRpb25hbF0gCiAqKmRlcHJlY2F0ZWQqKiB8ICoqYm9vbCoqfCBJcyBibG9ja2NoYWluIGRlcHJlY2F0ZWQgfCBbb3B0aW9uYWxdIAogKip0ZXN0KiogfCAqKmJvb2wqKnwgSXMgdGVzdCBibG9ja2NoYWluIHwgW29wdGlvbmFsXSAKICoqaWRzKiogfCBbKipMaXN0W3N0cl0qKl0oc3RyLm1kKXwgQSBsaXN0IG9mIGJsb2NrY2hhaW4gSURzIChtYXggMTAwKSB8IFtvcHRpb25hbF0gCiAqKnBhZ2VfY3Vyc29yKiogfCAqKnN0cioqfCBQYWdlIGN1cnNvciB0byBmZXRjaCB8IFtvcHRpb25hbF0gCiAqKnBhZ2Vfc2l6ZSoqIHwgKipmbG9hdCoqfCBJdGVtcyBwZXIgcGFnZSAobWF4IDUwMCkgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIDUwMF0KCiMjIyBSZXR1cm4gdHlwZQoKWyoqTGlzdEJsb2NrY2hhaW5zUmVzcG9uc2UqKl0oTGlzdEJsb2NrY2hhaW5zUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBMaXN0IG9mIHN1cHBvcnRlZCBibG9ja2NoYWlucyB8ICAtICB8CioqNTAwKiogfCBFcnJvciBvY2N1cnJlZCB3aGlsZSBsaXN0aW5nIGJsb2NrY2hhaW5zIHwgIC0gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipyZWdpc3Rlcl9uZXdfYXNzZXQqKgo+IEFzc2V0UmVzcG9uc2UgcmVnaXN0ZXJfbmV3X2Fzc2V0KGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksIHJlZ2lzdGVyX25ld19hc3NldF9yZXF1ZXN0PXJlZ2lzdGVyX25ld19hc3NldF9yZXF1ZXN0KQoKUmVnaXN0ZXIgYW4gYXNzZXQKClJlZ2lzdGVyIGEgbmV3IGFzc2V0IHRvIGEgd29ya3NwYWNlIGFuZCByZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQgYXNzZXQncyBkZXRhaWxzLiBDdXJyZW50bHkgc3VwcG9ydGVkIGNoYWlucyBhcmU6Ci0gRVZNIGJhc2VkIGNoYWlucwotIFN0ZWxsYXIKLSBBbGdvcmFuZAotIFRST04KLSBORUFSCi0gU29sYW5hCi0gU3VpCi0gVE9OCgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9yZXNwb25zZSBpbXBvcnQgQXNzZXRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlZ2lzdGVyX25ld19hc3NldF9yZXF1ZXN0IGltcG9ydCBSZWdpc3Rlck5ld0Fzc2V0UmVxdWVzdApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCiAgICByZWdpc3Rlcl9uZXdfYXNzZXRfcmVxdWVzdCA9IGZpcmVibG9ja3MuUmVnaXN0ZXJOZXdBc3NldFJlcXVlc3QoKSAjIFJlZ2lzdGVyTmV3QXNzZXRSZXF1ZXN0IHwgIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBSZWdpc3RlciBhbiBhc3NldAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuYmxvY2tjaGFpbnNfYXNzZXRzLnJlZ2lzdGVyX25ld19hc3NldChpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCByZWdpc3Rlcl9uZXdfYXNzZXRfcmVxdWVzdD1yZWdpc3Rlcl9uZXdfYXNzZXRfcmVxdWVzdCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEJsb2NrY2hhaW5zQXNzZXRzQXBpLT5yZWdpc3Rlcl9uZXdfYXNzZXQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQmxvY2tjaGFpbnNBc3NldHNBcGktPnJlZ2lzdGVyX25ld19hc3NldDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKICoqcmVnaXN0ZXJfbmV3X2Fzc2V0X3JlcXVlc3QqKiB8IFsqKlJlZ2lzdGVyTmV3QXNzZXRSZXF1ZXN0KipdKFJlZ2lzdGVyTmV3QXNzZXRSZXF1ZXN0Lm1kKXwgIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqQXNzZXRSZXNwb25zZSoqXShBc3NldFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBIG5ldyBhc3NldCBoYXMgYmVlbiBjcmVhdGVkIHN1Y2Nlc3NmdWxseSB8ICAtICB8CioqNDAwKiogfCAtIExpc3RpbmcgYW4gYXNzZXQgb24gdGhlIHJlcXVlc3RlZCBibG9ja2NoYWluIGlzIG5vdCBzdXBwb3J0ZWQuIEVycm9yIGNvZGU6IDEwMDAgIC0gVGhlIGFzc2V0IGFkZHJlc3MgaXMgaW52YWxpZC4gRXJyb3IgY29kZTogMTAwMyAgLSBTZWxmIHNlcnZlIGxpc3RpbmcgYW4gYXNzZXQgb24gdGhlIHJlcXVlc3RlZCBibG9ja2NoYWluIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkLCBwbGVhc2UgY29udGFjdCBzdXBwb3J0LiBFcnJvciBjb2RlOiAxMDA0ICAtIEJsb2NrY2hhaW4gaXMgZGVwcmVjYXRlZC4gRXJyb3IgY29kZTogMTAwNiAgLSBUaGUgYXNzZXQmIzM5O3Mgc3RhbmRhcmQgaXMgbm90IHN1cHBvcnRlZC4gRXJyb3IgY29kZTogMTAwNyAgLSBVbmFibGUgdG8gZ2V0IGV4cGVjdGVkIG1ldGFkYXRhOiBkZWNpbWFscyB8IG5hbWUgfCBzeW1ib2wuIEVycm9yIGNvZGU6IDEwMTAgIHwgIC0gIHwKKio0MDMqKiB8IC0gVGhlIGFzc2V0IGNyZWF0aW9uIHF1b3RhIHJlYWNoZWQuIEVycm9yIGNvZGU6IDEwMDUgIC0gVGVuYW50IGlzIG5vdCBhbGxvd2VkIHRvIGNyZWF0ZSB0ZXN0bmV0IGFzc2V0cy4gRXJyb3IgY29kZTogMTAwOCAgLSBUZW5hbnQgaXMgbm90IGFsbG93ZWQgdG8gY3JlYXRlIG1haW5uZXQgYXNzZXRzLiBFcnJvciBjb2RlOiAxMDA5ICB8ICAtICB8CioqNDA0KiogfCAtIEludmFsaWQgYWRkcmVzcywgY291bGQgbm90IGdldCBhc3NldCBpbmZvcm1hdGlvbi4gRXJyb3IgY29kZSAxMDAzICB8ICAtICB8CioqNDA5KiogfCAtIFRoZSBhc3NldCBpcyBhbHJlYWR5IHN1cHBvcnRlZCBnbG9iYWxseS4gRXJyb3IgY29kZTogMTAwMSAgLSBUaGUgYXNzZXQgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCB0byB0aGlzIHdvcmtzcGFjZS4gRXJyb3IgY29kZTogMTAwMiAgfCAgLSAgfAoqKjUwMCoqIHwgRmFpbGVkIHRvIGNyZWF0ZSBhc3NldCB8ICAtICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqc2V0X2Fzc2V0X3ByaWNlKioKPiBBc3NldFByaWNlUmVzcG9uc2Ugc2V0X2Fzc2V0X3ByaWNlKGlkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCBzZXRfYXNzZXRfcHJpY2VfcmVxdWVzdD1zZXRfYXNzZXRfcHJpY2VfcmVxdWVzdCkKClNldCBhc3NldCBwcmljZQoKU2V0IGFzc2V0IHByaWNlIGZvciB0aGUgZ2l2ZW4gYXNzZXQgaWQuIFJldHVybnMgdGhlIGFzc2V0IHByaWNlIHJlc3BvbnNlLgoKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfcHJpY2VfcmVzcG9uc2UgaW1wb3J0IEFzc2V0UHJpY2VSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9hc3NldF9wcmljZV9yZXF1ZXN0IGltcG9ydCBTZXRBc3NldFByaWNlUmVxdWVzdApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBpZCA9ICdFVEgnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBhc3NldAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQogICAgc2V0X2Fzc2V0X3ByaWNlX3JlcXVlc3QgPSBmaXJlYmxvY2tzLlNldEFzc2V0UHJpY2VSZXF1ZXN0KCkgIyBTZXRBc3NldFByaWNlUmVxdWVzdCB8ICAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgU2V0IGFzc2V0IHByaWNlCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5ibG9ja2NoYWluc19hc3NldHMuc2V0X2Fzc2V0X3ByaWNlKGlkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCBzZXRfYXNzZXRfcHJpY2VfcmVxdWVzdD1zZXRfYXNzZXRfcHJpY2VfcmVxdWVzdCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEJsb2NrY2hhaW5zQXNzZXRzQXBpLT5zZXRfYXNzZXRfcHJpY2U6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQmxvY2tjaGFpbnNBc3NldHNBcGktPnNldF9hc3NldF9wcmljZTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgYXNzZXQgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKICoqc2V0X2Fzc2V0X3ByaWNlX3JlcXVlc3QqKiB8IFsqKlNldEFzc2V0UHJpY2VSZXF1ZXN0KipdKFNldEFzc2V0UHJpY2VSZXF1ZXN0Lm1kKXwgIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqQXNzZXRQcmljZVJlc3BvbnNlKipdKEFzc2V0UHJpY2VSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQXNzZXQgcHJpY2UgaGFzIGJlZW4gc2V0IHN1Y2Nlc3NmdWxseS4gfCAgLSAgfAoqKjQwMyoqIHwgLSBUZW5hbnQgaXMgbm90IGFsbG93ZWQgdG8gc2V0IHJhdGUuIEVycm9yIGNvZGU6IDEwMDIuICB8ICAtICB8CioqNDA0KiogfCAtIEN1cnJlbmN5IG5vdCBmb3VuZC4gRXJyb3IgY29kZSAxMDAxICB8ICAtICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqdXBkYXRlX2Fzc2V0X3VzZXJfbWV0YWRhdGEqKgo+IEFzc2V0IHVwZGF0ZV9hc3NldF91c2VyX21ldGFkYXRhKGlkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCB1cGRhdGVfYXNzZXRfdXNlcl9tZXRhZGF0YV9yZXF1ZXN0PXVwZGF0ZV9hc3NldF91c2VyX21ldGFkYXRhX3JlcXVlc3QpCgpVcGRhdGUgdGhlIHVzZXLigJlzIG1ldGFkYXRhIGZvciBhbiBhc3NldAoKVXBkYXRlIHRoZSB1c2Vy4oCZcyBtZXRhZGF0YSBmb3IgYW4gYXNzZXQuCgpFbmRwb2ludCBQZXJtaXNzaW9uOiBPd25lciwgQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBOQ1cgQWRtaW4sIFNpZ25lciwgRWRpdG9yLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldCBpbXBvcnQgQXNzZXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51cGRhdGVfYXNzZXRfdXNlcl9tZXRhZGF0YV9yZXF1ZXN0IGltcG9ydCBVcGRhdGVBc3NldFVzZXJNZXRhZGF0YVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgaWQgPSAnRVRIJyAjIHN0ciB8IFRoZSBJRCBvciBsZWdhY3lJZCBvZiB0aGUgYXNzZXQKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKICAgIHVwZGF0ZV9hc3NldF91c2VyX21ldGFkYXRhX3JlcXVlc3QgPSBmaXJlYmxvY2tzLlVwZGF0ZUFzc2V0VXNlck1ldGFkYXRhUmVxdWVzdCgpICMgVXBkYXRlQXNzZXRVc2VyTWV0YWRhdGFSZXF1ZXN0IHwgIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBVcGRhdGUgdGhlIHVzZXLigJlzIG1ldGFkYXRhIGZvciBhbiBhc3NldAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuYmxvY2tjaGFpbnNfYXNzZXRzLnVwZGF0ZV9hc3NldF91c2VyX21ldGFkYXRhKGlkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCB1cGRhdGVfYXNzZXRfdXNlcl9tZXRhZGF0YV9yZXF1ZXN0PXVwZGF0ZV9hc3NldF91c2VyX21ldGFkYXRhX3JlcXVlc3QpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBCbG9ja2NoYWluc0Fzc2V0c0FwaS0+dXBkYXRlX2Fzc2V0X3VzZXJfbWV0YWRhdGE6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQmxvY2tjaGFpbnNBc3NldHNBcGktPnVwZGF0ZV9hc3NldF91c2VyX21ldGFkYXRhOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKippZCoqIHwgKipzdHIqKnwgVGhlIElEIG9yIGxlZ2FjeUlkIG9mIHRoZSBhc3NldCB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAogKip1cGRhdGVfYXNzZXRfdXNlcl9tZXRhZGF0YV9yZXF1ZXN0KiogfCBbKipVcGRhdGVBc3NldFVzZXJNZXRhZGF0YVJlcXVlc3QqKl0oVXBkYXRlQXNzZXRVc2VyTWV0YWRhdGFSZXF1ZXN0Lm1kKXwgIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqQXNzZXQqKl0oQXNzZXQubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFVwZGF0ZWQgYXNzZXQgdXNlciBtZXRhZGF0YSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDA0KiogfCAtIEFzc2V0IHdpdGggc3BlY2lmaWVkIElEIG9yIGxlZ2FjeSBJRCBpcyBub3QgZm91bmQuIEVycm9yIGNvZGUgMTUwNCAgfCAgLSAgfAoqKjUwMCoqIHwgRXJyb3Igb2NjdXJyZWQgd2hpbGUgdXBkYXRpbmcgYXNzZXQgdXNlciBtZXRhZGF0YSB8ICAtICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgo= \ No newline at end of file diff --git a/docs/BpsFee.md b/docs/BpsFee.md index 02ba47b4..2b7055d5 100644 --- a/docs/BpsFee.md +++ b/docs/BpsFee.md @@ -1,30 +1 @@ -# BpsFee - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount_type** | **str** | | -**amount** | **float** | Fee in basis points (1 = 0.01%, 10000 = 100%) | - -## Example - -```python -from fireblocks.models.bps_fee import BpsFee - -# TODO update the JSON string below -json = "{}" -# create an instance of BpsFee from a JSON string -bps_fee_instance = BpsFee.from_json(json) -# print the JSON string representation of the object -print(BpsFee.to_json()) - -# convert the object into a dict -bps_fee_dict = bps_fee_instance.to_dict() -# create an instance of BpsFee from a dict -bps_fee_from_dict = BpsFee.from_dict(bps_fee_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBCcHNGZWUKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYW1vdW50X3R5cGUqKiB8ICoqc3RyKiogfCAgfCAKKiphbW91bnQqKiB8ICoqZmxvYXQqKiB8IEZlZSBpbiBiYXNpcyBwb2ludHMgKDEgJiN4M0Q7IDAuMDElLCAxMDAwMCAmI3gzRDsgMTAwJSkgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJwc19mZWUgaW1wb3J0IEJwc0ZlZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQnBzRmVlIGZyb20gYSBKU09OIHN0cmluZwpicHNfZmVlX2luc3RhbmNlID0gQnBzRmVlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEJwc0ZlZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApicHNfZmVlX2RpY3QgPSBicHNfZmVlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCcHNGZWUgZnJvbSBhIGRpY3QKYnBzX2ZlZV9mcm9tX2RpY3QgPSBCcHNGZWUuZnJvbV9kaWN0KGJwc19mZWVfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/BusinessEntityTypeEnum.md b/docs/BusinessEntityTypeEnum.md index ce96d617..b255f8c3 100644 --- a/docs/BusinessEntityTypeEnum.md +++ b/docs/BusinessEntityTypeEnum.md @@ -1,10 +1 @@ -# BusinessEntityTypeEnum - - -## Enum - -* `BUSINESS` (value: `'BUSINESS'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBCdXNpbmVzc0VudGl0eVR5cGVFbnVtCgoKIyMgRW51bQoKKiBgQlVTSU5FU1NgICh2YWx1ZTogYCdCVVNJTkVTUydgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/BusinessIdentification.md b/docs/BusinessIdentification.md index 1409b742..cb932a13 100644 --- a/docs/BusinessIdentification.md +++ b/docs/BusinessIdentification.md @@ -1,36 +1 @@ -# BusinessIdentification - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**external_reference_id** | **str** | | -**entity_type** | [**BusinessEntityTypeEnum**](BusinessEntityTypeEnum.md) | | -**participant_relationship_type** | [**ParticipantRelationshipType**](ParticipantRelationshipType.md) | | -**business_name** | **str** | | -**registration_number** | **str** | | -**postal_address** | [**PostalAddress**](PostalAddress.md) | | -**email** | **str** | | [optional] -**phone** | **str** | Mobile phone number in E.164 format | [optional] - -## Example - -```python -from fireblocks.models.business_identification import BusinessIdentification - -# TODO update the JSON string below -json = "{}" -# create an instance of BusinessIdentification from a JSON string -business_identification_instance = BusinessIdentification.from_json(json) -# print the JSON string representation of the object -print(BusinessIdentification.to_json()) - -# convert the object into a dict -business_identification_dict = business_identification_instance.to_dict() -# create an instance of BusinessIdentification from a dict -business_identification_from_dict = BusinessIdentification.from_dict(business_identification_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBCdXNpbmVzc0lkZW50aWZpY2F0aW9uCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmV4dGVybmFsX3JlZmVyZW5jZV9pZCoqIHwgKipzdHIqKiB8ICB8IAoqKmVudGl0eV90eXBlKiogfCBbKipCdXNpbmVzc0VudGl0eVR5cGVFbnVtKipdKEJ1c2luZXNzRW50aXR5VHlwZUVudW0ubWQpIHwgIHwgCioqcGFydGljaXBhbnRfcmVsYXRpb25zaGlwX3R5cGUqKiB8IFsqKlBhcnRpY2lwYW50UmVsYXRpb25zaGlwVHlwZSoqXShQYXJ0aWNpcGFudFJlbGF0aW9uc2hpcFR5cGUubWQpIHwgIHwgCioqYnVzaW5lc3NfbmFtZSoqIHwgKipzdHIqKiB8ICB8IAoqKnJlZ2lzdHJhdGlvbl9udW1iZXIqKiB8ICoqc3RyKiogfCAgfCAKKipwb3N0YWxfYWRkcmVzcyoqIHwgWyoqUG9zdGFsQWRkcmVzcyoqXShQb3N0YWxBZGRyZXNzLm1kKSB8ICB8IAoqKmVtYWlsKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipwaG9uZSoqIHwgKipzdHIqKiB8IE1vYmlsZSBwaG9uZSBudW1iZXIgaW4gRS4xNjQgZm9ybWF0IHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJ1c2luZXNzX2lkZW50aWZpY2F0aW9uIGltcG9ydCBCdXNpbmVzc0lkZW50aWZpY2F0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCdXNpbmVzc0lkZW50aWZpY2F0aW9uIGZyb20gYSBKU09OIHN0cmluZwpidXNpbmVzc19pZGVudGlmaWNhdGlvbl9pbnN0YW5jZSA9IEJ1c2luZXNzSWRlbnRpZmljYXRpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQnVzaW5lc3NJZGVudGlmaWNhdGlvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApidXNpbmVzc19pZGVudGlmaWNhdGlvbl9kaWN0ID0gYnVzaW5lc3NfaWRlbnRpZmljYXRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEJ1c2luZXNzSWRlbnRpZmljYXRpb24gZnJvbSBhIGRpY3QKYnVzaW5lc3NfaWRlbnRpZmljYXRpb25fZnJvbV9kaWN0ID0gQnVzaW5lc3NJZGVudGlmaWNhdGlvbi5mcm9tX2RpY3QoYnVzaW5lc3NfaWRlbnRpZmljYXRpb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CallbackHandler.md b/docs/CallbackHandler.md index d413ce0e..347a1932 100644 --- a/docs/CallbackHandler.md +++ b/docs/CallbackHandler.md @@ -1,31 +1 @@ -# CallbackHandler - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**url** | **str** | The callback handler's URL | -**public_key** | **str** | The callback handler's public key | [optional] -**cert_public_key_hash** | **str** | A hashed representation of the public key of the callback handler's certificate | [optional] - -## Example - -```python -from fireblocks.models.callback_handler import CallbackHandler - -# TODO update the JSON string below -json = "{}" -# create an instance of CallbackHandler from a JSON string -callback_handler_instance = CallbackHandler.from_json(json) -# print the JSON string representation of the object -print(CallbackHandler.to_json()) - -# convert the object into a dict -callback_handler_dict = callback_handler_instance.to_dict() -# create an instance of CallbackHandler from a dict -callback_handler_from_dict = CallbackHandler.from_dict(callback_handler_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDYWxsYmFja0hhbmRsZXIKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdXJsKiogfCAqKnN0cioqIHwgVGhlIGNhbGxiYWNrIGhhbmRsZXImIzM5O3MgVVJMIHwgCioqcHVibGljX2tleSoqIHwgKipzdHIqKiB8IFRoZSBjYWxsYmFjayBoYW5kbGVyJiMzOTtzIHB1YmxpYyBrZXkgfCBbb3B0aW9uYWxdIAoqKmNlcnRfcHVibGljX2tleV9oYXNoKiogfCAqKnN0cioqIHwgQSBoYXNoZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIHB1YmxpYyBrZXkgb2YgdGhlIGNhbGxiYWNrIGhhbmRsZXImIzM5O3MgY2VydGlmaWNhdGUgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY2FsbGJhY2tfaGFuZGxlciBpbXBvcnQgQ2FsbGJhY2tIYW5kbGVyCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDYWxsYmFja0hhbmRsZXIgZnJvbSBhIEpTT04gc3RyaW5nCmNhbGxiYWNrX2hhbmRsZXJfaW5zdGFuY2UgPSBDYWxsYmFja0hhbmRsZXIuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ2FsbGJhY2tIYW5kbGVyLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNhbGxiYWNrX2hhbmRsZXJfZGljdCA9IGNhbGxiYWNrX2hhbmRsZXJfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENhbGxiYWNrSGFuZGxlciBmcm9tIGEgZGljdApjYWxsYmFja19oYW5kbGVyX2Zyb21fZGljdCA9IENhbGxiYWNrSGFuZGxlci5mcm9tX2RpY3QoY2FsbGJhY2tfaGFuZGxlcl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CallbackHandlerRequest.md b/docs/CallbackHandlerRequest.md index 0b145e62..bf4dde9b 100644 --- a/docs/CallbackHandlerRequest.md +++ b/docs/CallbackHandlerRequest.md @@ -1,31 +1 @@ -# CallbackHandlerRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**url** | **str** | The callback handler's URL | -**public_key** | **str** | The callback handler's public key | [optional] -**cert** | **str** | The callback handler's certificate | [optional] - -## Example - -```python -from fireblocks.models.callback_handler_request import CallbackHandlerRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CallbackHandlerRequest from a JSON string -callback_handler_request_instance = CallbackHandlerRequest.from_json(json) -# print the JSON string representation of the object -print(CallbackHandlerRequest.to_json()) - -# convert the object into a dict -callback_handler_request_dict = callback_handler_request_instance.to_dict() -# create an instance of CallbackHandlerRequest from a dict -callback_handler_request_from_dict = CallbackHandlerRequest.from_dict(callback_handler_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDYWxsYmFja0hhbmRsZXJSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnVybCoqIHwgKipzdHIqKiB8IFRoZSBjYWxsYmFjayBoYW5kbGVyJiMzOTtzIFVSTCB8IAoqKnB1YmxpY19rZXkqKiB8ICoqc3RyKiogfCBUaGUgY2FsbGJhY2sgaGFuZGxlciYjMzk7cyBwdWJsaWMga2V5IHwgW29wdGlvbmFsXSAKKipjZXJ0KiogfCAqKnN0cioqIHwgVGhlIGNhbGxiYWNrIGhhbmRsZXImIzM5O3MgY2VydGlmaWNhdGUgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY2FsbGJhY2tfaGFuZGxlcl9yZXF1ZXN0IGltcG9ydCBDYWxsYmFja0hhbmRsZXJSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDYWxsYmFja0hhbmRsZXJSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpjYWxsYmFja19oYW5kbGVyX3JlcXVlc3RfaW5zdGFuY2UgPSBDYWxsYmFja0hhbmRsZXJSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENhbGxiYWNrSGFuZGxlclJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY2FsbGJhY2tfaGFuZGxlcl9yZXF1ZXN0X2RpY3QgPSBjYWxsYmFja19oYW5kbGVyX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENhbGxiYWNrSGFuZGxlclJlcXVlc3QgZnJvbSBhIGRpY3QKY2FsbGJhY2tfaGFuZGxlcl9yZXF1ZXN0X2Zyb21fZGljdCA9IENhbGxiYWNrSGFuZGxlclJlcXVlc3QuZnJvbV9kaWN0KGNhbGxiYWNrX2hhbmRsZXJfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CancelTransactionResponse.md b/docs/CancelTransactionResponse.md index ea6146a6..61e4714b 100644 --- a/docs/CancelTransactionResponse.md +++ b/docs/CancelTransactionResponse.md @@ -1,29 +1 @@ -# CancelTransactionResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**success** | **bool** | | [optional] - -## Example - -```python -from fireblocks.models.cancel_transaction_response import CancelTransactionResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of CancelTransactionResponse from a JSON string -cancel_transaction_response_instance = CancelTransactionResponse.from_json(json) -# print the JSON string representation of the object -print(CancelTransactionResponse.to_json()) - -# convert the object into a dict -cancel_transaction_response_dict = cancel_transaction_response_instance.to_dict() -# create an instance of CancelTransactionResponse from a dict -cancel_transaction_response_from_dict = CancelTransactionResponse.from_dict(cancel_transaction_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDYW5jZWxUcmFuc2FjdGlvblJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnN1Y2Nlc3MqKiB8ICoqYm9vbCoqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNhbmNlbF90cmFuc2FjdGlvbl9yZXNwb25zZSBpbXBvcnQgQ2FuY2VsVHJhbnNhY3Rpb25SZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ2FuY2VsVHJhbnNhY3Rpb25SZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKY2FuY2VsX3RyYW5zYWN0aW9uX3Jlc3BvbnNlX2luc3RhbmNlID0gQ2FuY2VsVHJhbnNhY3Rpb25SZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDYW5jZWxUcmFuc2FjdGlvblJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNhbmNlbF90cmFuc2FjdGlvbl9yZXNwb25zZV9kaWN0ID0gY2FuY2VsX3RyYW5zYWN0aW9uX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDYW5jZWxUcmFuc2FjdGlvblJlc3BvbnNlIGZyb20gYSBkaWN0CmNhbmNlbF90cmFuc2FjdGlvbl9yZXNwb25zZV9mcm9tX2RpY3QgPSBDYW5jZWxUcmFuc2FjdGlvblJlc3BvbnNlLmZyb21fZGljdChjYW5jZWxfdHJhbnNhY3Rpb25fcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ChainDescriptor.md b/docs/ChainDescriptor.md index 248c543c..6c9769a7 100644 --- a/docs/ChainDescriptor.md +++ b/docs/ChainDescriptor.md @@ -1,43 +1 @@ -# ChainDescriptor - -Protocol identifier for the staking operation. - -## Enum - -* `ATOM_COS` (value: `'ATOM_COS'`) - -* `AXL` (value: `'AXL'`) - -* `AXL_TEST` (value: `'AXL_TEST'`) - -* `CELESTIA` (value: `'CELESTIA'`) - -* `DYDX_DYDX` (value: `'DYDX_DYDX'`) - -* `ETH` (value: `'ETH'`) - -* `ETH_TEST6` (value: `'ETH_TEST6'`) - -* `ETH_TEST_HOODI` (value: `'ETH_TEST_HOODI'`) - -* `INJ_INJ` (value: `'INJ_INJ'`) - -* `MANTRA` (value: `'MANTRA'`) - -* `MATIC` (value: `'MATIC'`) - -* `OSMO` (value: `'OSMO'`) - -* `SOL` (value: `'SOL'`) - -* `SOL_TEST` (value: `'SOL_TEST'`) - -* `STETH_ETH` (value: `'STETH_ETH'`) - -* `STETH_ETH_TEST6_DZFA` (value: `'STETH_ETH_TEST6_DZFA'`) - -* `STETH_ETH_TEST_HOODI` (value: `'STETH_ETH_TEST_HOODI'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDaGFpbkRlc2NyaXB0b3IKClByb3RvY29sIGlkZW50aWZpZXIgZm9yIHRoZSBzdGFraW5nIG9wZXJhdGlvbi4KCiMjIEVudW0KCiogYEFUT01fQ09TYCAodmFsdWU6IGAnQVRPTV9DT1MnYCkKCiogYEFYTGAgKHZhbHVlOiBgJ0FYTCdgKQoKKiBgQVhMX1RFU1RgICh2YWx1ZTogYCdBWExfVEVTVCdgKQoKKiBgQ0VMRVNUSUFgICh2YWx1ZTogYCdDRUxFU1RJQSdgKQoKKiBgRFlEWF9EWURYYCAodmFsdWU6IGAnRFlEWF9EWURYJ2ApCgoqIGBFVEhgICh2YWx1ZTogYCdFVEgnYCkKCiogYEVUSF9URVNUNmAgKHZhbHVlOiBgJ0VUSF9URVNUNidgKQoKKiBgRVRIX1RFU1RfSE9PRElgICh2YWx1ZTogYCdFVEhfVEVTVF9IT09ESSdgKQoKKiBgSU5KX0lOSmAgKHZhbHVlOiBgJ0lOSl9JTkonYCkKCiogYE1BTlRSQWAgKHZhbHVlOiBgJ01BTlRSQSdgKQoKKiBgTUFUSUNgICh2YWx1ZTogYCdNQVRJQydgKQoKKiBgT1NNT2AgKHZhbHVlOiBgJ09TTU8nYCkKCiogYFNPTGAgKHZhbHVlOiBgJ1NPTCdgKQoKKiBgU09MX1RFU1RgICh2YWx1ZTogYCdTT0xfVEVTVCdgKQoKKiBgU1RFVEhfRVRIYCAodmFsdWU6IGAnU1RFVEhfRVRIJ2ApCgoqIGBTVEVUSF9FVEhfVEVTVDZfRFpGQWAgKHZhbHVlOiBgJ1NURVRIX0VUSF9URVNUNl9EWkZBJ2ApCgoqIGBTVEVUSF9FVEhfVEVTVF9IT09ESWAgKHZhbHVlOiBgJ1NURVRIX0VUSF9URVNUX0hPT0RJJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ChainInfoResponse.md b/docs/ChainInfoResponse.md index 942eaa8a..85d515ce 100644 --- a/docs/ChainInfoResponse.md +++ b/docs/ChainInfoResponse.md @@ -1,34 +1 @@ -# ChainInfoResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**chain_descriptor** | **str** | The protocol identifier (e.g. \"ETH\"/\"SOL\"). | -**current_epoch** | **float** | The current epoch number of the blockchain network. | -**epoch_elapsed** | **float** | The percentage of time that has elapsed within the current epoch, represented as a decimal value between 0 and 1. | -**epoch_duration** | **float** | The total duration in milliseconds of a single epoch. | -**additional_info** | [**AdditionalInfo**](AdditionalInfo.md) | | -**last_updated** | **float** | timestamp (in milliseconds) of last update time | - -## Example - -```python -from fireblocks.models.chain_info_response import ChainInfoResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ChainInfoResponse from a JSON string -chain_info_response_instance = ChainInfoResponse.from_json(json) -# print the JSON string representation of the object -print(ChainInfoResponse.to_json()) - -# convert the object into a dict -chain_info_response_dict = chain_info_response_instance.to_dict() -# create an instance of ChainInfoResponse from a dict -chain_info_response_from_dict = ChainInfoResponse.from_dict(chain_info_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDaGFpbkluZm9SZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipjaGFpbl9kZXNjcmlwdG9yKiogfCAqKnN0cioqIHwgVGhlIHByb3RvY29sIGlkZW50aWZpZXIgKGUuZy4gXCZxdW90O0VUSFwmcXVvdDsvXCZxdW90O1NPTFwmcXVvdDspLiB8IAoqKmN1cnJlbnRfZXBvY2gqKiB8ICoqZmxvYXQqKiB8IFRoZSBjdXJyZW50IGVwb2NoIG51bWJlciBvZiB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrLiB8IAoqKmVwb2NoX2VsYXBzZWQqKiB8ICoqZmxvYXQqKiB8IFRoZSBwZXJjZW50YWdlIG9mIHRpbWUgdGhhdCBoYXMgZWxhcHNlZCB3aXRoaW4gdGhlIGN1cnJlbnQgZXBvY2gsIHJlcHJlc2VudGVkIGFzIGEgZGVjaW1hbCB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEuIHwgCioqZXBvY2hfZHVyYXRpb24qKiB8ICoqZmxvYXQqKiB8IFRoZSB0b3RhbCBkdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMgb2YgYSBzaW5nbGUgZXBvY2guIHwgCioqYWRkaXRpb25hbF9pbmZvKiogfCBbKipBZGRpdGlvbmFsSW5mbyoqXShBZGRpdGlvbmFsSW5mby5tZCkgfCAgfCAKKipsYXN0X3VwZGF0ZWQqKiB8ICoqZmxvYXQqKiB8IHRpbWVzdGFtcCAoaW4gbWlsbGlzZWNvbmRzKSBvZiBsYXN0IHVwZGF0ZSB0aW1lIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jaGFpbl9pbmZvX3Jlc3BvbnNlIGltcG9ydCBDaGFpbkluZm9SZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ2hhaW5JbmZvUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmNoYWluX2luZm9fcmVzcG9uc2VfaW5zdGFuY2UgPSBDaGFpbkluZm9SZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDaGFpbkluZm9SZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjaGFpbl9pbmZvX3Jlc3BvbnNlX2RpY3QgPSBjaGFpbl9pbmZvX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDaGFpbkluZm9SZXNwb25zZSBmcm9tIGEgZGljdApjaGFpbl9pbmZvX3Jlc3BvbnNlX2Zyb21fZGljdCA9IENoYWluSW5mb1Jlc3BvbnNlLmZyb21fZGljdChjaGFpbl9pbmZvX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ChannelDvnConfigWithConfirmations.md b/docs/ChannelDvnConfigWithConfirmations.md index 4d27a785..5af6f9be 100644 --- a/docs/ChannelDvnConfigWithConfirmations.md +++ b/docs/ChannelDvnConfigWithConfirmations.md @@ -1,30 +1 @@ -# ChannelDvnConfigWithConfirmations - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**send_config** | [**ChannelDvnConfigWithConfirmationsSendConfig**](ChannelDvnConfigWithConfirmationsSendConfig.md) | | [optional] -**receive_config** | [**ChannelDvnConfigWithConfirmationsReceiveConfig**](ChannelDvnConfigWithConfirmationsReceiveConfig.md) | | [optional] - -## Example - -```python -from fireblocks.models.channel_dvn_config_with_confirmations import ChannelDvnConfigWithConfirmations - -# TODO update the JSON string below -json = "{}" -# create an instance of ChannelDvnConfigWithConfirmations from a JSON string -channel_dvn_config_with_confirmations_instance = ChannelDvnConfigWithConfirmations.from_json(json) -# print the JSON string representation of the object -print(ChannelDvnConfigWithConfirmations.to_json()) - -# convert the object into a dict -channel_dvn_config_with_confirmations_dict = channel_dvn_config_with_confirmations_instance.to_dict() -# create an instance of ChannelDvnConfigWithConfirmations from a dict -channel_dvn_config_with_confirmations_from_dict = ChannelDvnConfigWithConfirmations.from_dict(channel_dvn_config_with_confirmations_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnMKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc2VuZF9jb25maWcqKiB8IFsqKkNoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1NlbmRDb25maWcqKl0oQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zU2VuZENvbmZpZy5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnJlY2VpdmVfY29uZmlnKiogfCBbKipDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNSZWNlaXZlQ29uZmlnKipdKENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1JlY2VpdmVDb25maWcubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYW5uZWxfZHZuX2NvbmZpZ193aXRoX2NvbmZpcm1hdGlvbnMgaW1wb3J0IENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9ucwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zIGZyb20gYSBKU09OIHN0cmluZwpjaGFubmVsX2R2bl9jb25maWdfd2l0aF9jb25maXJtYXRpb25zX2luc3RhbmNlID0gQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9ucy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjaGFubmVsX2R2bl9jb25maWdfd2l0aF9jb25maXJtYXRpb25zX2RpY3QgPSBjaGFubmVsX2R2bl9jb25maWdfd2l0aF9jb25maXJtYXRpb25zX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnMgZnJvbSBhIGRpY3QKY2hhbm5lbF9kdm5fY29uZmlnX3dpdGhfY29uZmlybWF0aW9uc19mcm9tX2RpY3QgPSBDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnMuZnJvbV9kaWN0KGNoYW5uZWxfZHZuX2NvbmZpZ193aXRoX2NvbmZpcm1hdGlvbnNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ChannelDvnConfigWithConfirmationsReceiveConfig.md b/docs/ChannelDvnConfigWithConfirmationsReceiveConfig.md index 55e8c687..da575727 100644 --- a/docs/ChannelDvnConfigWithConfirmationsReceiveConfig.md +++ b/docs/ChannelDvnConfigWithConfirmationsReceiveConfig.md @@ -1,32 +1 @@ -# ChannelDvnConfigWithConfirmationsReceiveConfig - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**dvn_addresses** | **List[str]** | Array of required DVN Ethereum addresses that sign ULN messages. | -**optional_dvn_addresses** | **List[str]** | Array of optional DVN Ethereum addresses that sign ULN messages. | [optional] -**optional_threshold** | **float** | Minimum number of DVN signatures required (M-of-N). | -**confirmations** | **float** | Number of block confirmations required | - -## Example - -```python -from fireblocks.models.channel_dvn_config_with_confirmations_receive_config import ChannelDvnConfigWithConfirmationsReceiveConfig - -# TODO update the JSON string below -json = "{}" -# create an instance of ChannelDvnConfigWithConfirmationsReceiveConfig from a JSON string -channel_dvn_config_with_confirmations_receive_config_instance = ChannelDvnConfigWithConfirmationsReceiveConfig.from_json(json) -# print the JSON string representation of the object -print(ChannelDvnConfigWithConfirmationsReceiveConfig.to_json()) - -# convert the object into a dict -channel_dvn_config_with_confirmations_receive_config_dict = channel_dvn_config_with_confirmations_receive_config_instance.to_dict() -# create an instance of ChannelDvnConfigWithConfirmationsReceiveConfig from a dict -channel_dvn_config_with_confirmations_receive_config_from_dict = ChannelDvnConfigWithConfirmationsReceiveConfig.from_dict(channel_dvn_config_with_confirmations_receive_config_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNSZWNlaXZlQ29uZmlnCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmR2bl9hZGRyZXNzZXMqKiB8ICoqTGlzdFtzdHJdKiogfCBBcnJheSBvZiByZXF1aXJlZCBEVk4gRXRoZXJldW0gYWRkcmVzc2VzIHRoYXQgc2lnbiBVTE4gbWVzc2FnZXMuIHwgCioqb3B0aW9uYWxfZHZuX2FkZHJlc3NlcyoqIHwgKipMaXN0W3N0cl0qKiB8IEFycmF5IG9mIG9wdGlvbmFsIERWTiBFdGhlcmV1bSBhZGRyZXNzZXMgdGhhdCBzaWduIFVMTiBtZXNzYWdlcy4gfCBbb3B0aW9uYWxdIAoqKm9wdGlvbmFsX3RocmVzaG9sZCoqIHwgKipmbG9hdCoqIHwgTWluaW11bSBudW1iZXIgb2YgRFZOIHNpZ25hdHVyZXMgcmVxdWlyZWQgKE0tb2YtTikuIHwgCioqY29uZmlybWF0aW9ucyoqIHwgKipmbG9hdCoqIHwgTnVtYmVyIG9mIGJsb2NrIGNvbmZpcm1hdGlvbnMgcmVxdWlyZWQgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYW5uZWxfZHZuX2NvbmZpZ193aXRoX2NvbmZpcm1hdGlvbnNfcmVjZWl2ZV9jb25maWcgaW1wb3J0IENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1JlY2VpdmVDb25maWcKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1JlY2VpdmVDb25maWcgZnJvbSBhIEpTT04gc3RyaW5nCmNoYW5uZWxfZHZuX2NvbmZpZ193aXRoX2NvbmZpcm1hdGlvbnNfcmVjZWl2ZV9jb25maWdfaW5zdGFuY2UgPSBDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNSZWNlaXZlQ29uZmlnLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1JlY2VpdmVDb25maWcudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY2hhbm5lbF9kdm5fY29uZmlnX3dpdGhfY29uZmlybWF0aW9uc19yZWNlaXZlX2NvbmZpZ19kaWN0ID0gY2hhbm5lbF9kdm5fY29uZmlnX3dpdGhfY29uZmlybWF0aW9uc19yZWNlaXZlX2NvbmZpZ19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zUmVjZWl2ZUNvbmZpZyBmcm9tIGEgZGljdApjaGFubmVsX2R2bl9jb25maWdfd2l0aF9jb25maXJtYXRpb25zX3JlY2VpdmVfY29uZmlnX2Zyb21fZGljdCA9IENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1JlY2VpdmVDb25maWcuZnJvbV9kaWN0KGNoYW5uZWxfZHZuX2NvbmZpZ193aXRoX2NvbmZpcm1hdGlvbnNfcmVjZWl2ZV9jb25maWdfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ChannelDvnConfigWithConfirmationsSendConfig.md b/docs/ChannelDvnConfigWithConfirmationsSendConfig.md index 1df2a0d8..9d4d1412 100644 --- a/docs/ChannelDvnConfigWithConfirmationsSendConfig.md +++ b/docs/ChannelDvnConfigWithConfirmationsSendConfig.md @@ -1,32 +1 @@ -# ChannelDvnConfigWithConfirmationsSendConfig - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**dvn_addresses** | **List[str]** | Array of required DVN Ethereum addresses that sign ULN messages. | -**optional_dvn_addresses** | **List[str]** | Array of optional DVN Ethereum addresses that sign ULN messages. | [optional] -**optional_threshold** | **float** | Minimum number of DVN signatures required (M-of-N). | -**confirmations** | **float** | Number of block confirmations required | - -## Example - -```python -from fireblocks.models.channel_dvn_config_with_confirmations_send_config import ChannelDvnConfigWithConfirmationsSendConfig - -# TODO update the JSON string below -json = "{}" -# create an instance of ChannelDvnConfigWithConfirmationsSendConfig from a JSON string -channel_dvn_config_with_confirmations_send_config_instance = ChannelDvnConfigWithConfirmationsSendConfig.from_json(json) -# print the JSON string representation of the object -print(ChannelDvnConfigWithConfirmationsSendConfig.to_json()) - -# convert the object into a dict -channel_dvn_config_with_confirmations_send_config_dict = channel_dvn_config_with_confirmations_send_config_instance.to_dict() -# create an instance of ChannelDvnConfigWithConfirmationsSendConfig from a dict -channel_dvn_config_with_confirmations_send_config_from_dict = ChannelDvnConfigWithConfirmationsSendConfig.from_dict(channel_dvn_config_with_confirmations_send_config_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNTZW5kQ29uZmlnCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmR2bl9hZGRyZXNzZXMqKiB8ICoqTGlzdFtzdHJdKiogfCBBcnJheSBvZiByZXF1aXJlZCBEVk4gRXRoZXJldW0gYWRkcmVzc2VzIHRoYXQgc2lnbiBVTE4gbWVzc2FnZXMuIHwgCioqb3B0aW9uYWxfZHZuX2FkZHJlc3NlcyoqIHwgKipMaXN0W3N0cl0qKiB8IEFycmF5IG9mIG9wdGlvbmFsIERWTiBFdGhlcmV1bSBhZGRyZXNzZXMgdGhhdCBzaWduIFVMTiBtZXNzYWdlcy4gfCBbb3B0aW9uYWxdIAoqKm9wdGlvbmFsX3RocmVzaG9sZCoqIHwgKipmbG9hdCoqIHwgTWluaW11bSBudW1iZXIgb2YgRFZOIHNpZ25hdHVyZXMgcmVxdWlyZWQgKE0tb2YtTikuIHwgCioqY29uZmlybWF0aW9ucyoqIHwgKipmbG9hdCoqIHwgTnVtYmVyIG9mIGJsb2NrIGNvbmZpcm1hdGlvbnMgcmVxdWlyZWQgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYW5uZWxfZHZuX2NvbmZpZ193aXRoX2NvbmZpcm1hdGlvbnNfc2VuZF9jb25maWcgaW1wb3J0IENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1NlbmRDb25maWcKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1NlbmRDb25maWcgZnJvbSBhIEpTT04gc3RyaW5nCmNoYW5uZWxfZHZuX2NvbmZpZ193aXRoX2NvbmZpcm1hdGlvbnNfc2VuZF9jb25maWdfaW5zdGFuY2UgPSBDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNTZW5kQ29uZmlnLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1NlbmRDb25maWcudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY2hhbm5lbF9kdm5fY29uZmlnX3dpdGhfY29uZmlybWF0aW9uc19zZW5kX2NvbmZpZ19kaWN0ID0gY2hhbm5lbF9kdm5fY29uZmlnX3dpdGhfY29uZmlybWF0aW9uc19zZW5kX2NvbmZpZ19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zU2VuZENvbmZpZyBmcm9tIGEgZGljdApjaGFubmVsX2R2bl9jb25maWdfd2l0aF9jb25maXJtYXRpb25zX3NlbmRfY29uZmlnX2Zyb21fZGljdCA9IENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1NlbmRDb25maWcuZnJvbV9kaWN0KGNoYW5uZWxfZHZuX2NvbmZpZ193aXRoX2NvbmZpcm1hdGlvbnNfc2VuZF9jb25maWdfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ChapsAddress.md b/docs/ChapsAddress.md index 9f95ba82..b750b54a 100644 --- a/docs/ChapsAddress.md +++ b/docs/ChapsAddress.md @@ -1,34 +1 @@ -# ChapsAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | | -**sort_code** | **str** | UK bank sort code (format XX-XX-XX) | -**account_number** | **str** | UK bank account number | -**bank_name** | **str** | Name of the bank | [optional] -**bank_account_country** | **str** | CHAPS bank account holder name | -**bank_account_holder_name** | **str** | CHAPS bank account holder name | - -## Example - -```python -from fireblocks.models.chaps_address import ChapsAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of ChapsAddress from a JSON string -chaps_address_instance = ChapsAddress.from_json(json) -# print the JSON string representation of the object -print(ChapsAddress.to_json()) - -# convert the object into a dict -chaps_address_dict = chaps_address_instance.to_dict() -# create an instance of ChapsAddress from a dict -chaps_address_from_dict = ChapsAddress.from_dict(chaps_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDaGFwc0FkZHJlc3MKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYWNjb3VudF9ob2xkZXIqKiB8IFsqKkFjY291bnRIb2xkZXJEZXRhaWxzKipdKEFjY291bnRIb2xkZXJEZXRhaWxzLm1kKSB8ICB8IAoqKnNvcnRfY29kZSoqIHwgKipzdHIqKiB8IFVLIGJhbmsgc29ydCBjb2RlIChmb3JtYXQgWFgtWFgtWFgpIHwgCioqYWNjb3VudF9udW1iZXIqKiB8ICoqc3RyKiogfCBVSyBiYW5rIGFjY291bnQgbnVtYmVyIHwgCioqYmFua19uYW1lKiogfCAqKnN0cioqIHwgTmFtZSBvZiB0aGUgYmFuayB8IFtvcHRpb25hbF0gCioqYmFua19hY2NvdW50X2NvdW50cnkqKiB8ICoqc3RyKiogfCBDSEFQUyBiYW5rIGFjY291bnQgaG9sZGVyIG5hbWUgfCAKKipiYW5rX2FjY291bnRfaG9sZGVyX25hbWUqKiB8ICoqc3RyKiogfCBDSEFQUyBiYW5rIGFjY291bnQgaG9sZGVyIG5hbWUgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYXBzX2FkZHJlc3MgaW1wb3J0IENoYXBzQWRkcmVzcwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ2hhcHNBZGRyZXNzIGZyb20gYSBKU09OIHN0cmluZwpjaGFwc19hZGRyZXNzX2luc3RhbmNlID0gQ2hhcHNBZGRyZXNzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENoYXBzQWRkcmVzcy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjaGFwc19hZGRyZXNzX2RpY3QgPSBjaGFwc19hZGRyZXNzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDaGFwc0FkZHJlc3MgZnJvbSBhIGRpY3QKY2hhcHNfYWRkcmVzc19mcm9tX2RpY3QgPSBDaGFwc0FkZHJlc3MuZnJvbV9kaWN0KGNoYXBzX2FkZHJlc3NfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ChapsDestination.md b/docs/ChapsDestination.md index d3b81b3b..a7746a31 100644 --- a/docs/ChapsDestination.md +++ b/docs/ChapsDestination.md @@ -1,30 +1 @@ -# ChapsDestination - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | -**address** | [**ChapsAddress**](ChapsAddress.md) | | - -## Example - -```python -from fireblocks.models.chaps_destination import ChapsDestination - -# TODO update the JSON string below -json = "{}" -# create an instance of ChapsDestination from a JSON string -chaps_destination_instance = ChapsDestination.from_json(json) -# print the JSON string representation of the object -print(ChapsDestination.to_json()) - -# convert the object into a dict -chaps_destination_dict = chaps_destination_instance.to_dict() -# create an instance of ChapsDestination from a dict -chaps_destination_from_dict = ChapsDestination.from_dict(chaps_destination_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDaGFwc0Rlc3RpbmF0aW9uCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8ICoqc3RyKiogfCAgfCAKKiphZGRyZXNzKiogfCBbKipDaGFwc0FkZHJlc3MqKl0oQ2hhcHNBZGRyZXNzLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY2hhcHNfZGVzdGluYXRpb24gaW1wb3J0IENoYXBzRGVzdGluYXRpb24KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENoYXBzRGVzdGluYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCmNoYXBzX2Rlc3RpbmF0aW9uX2luc3RhbmNlID0gQ2hhcHNEZXN0aW5hdGlvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDaGFwc0Rlc3RpbmF0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNoYXBzX2Rlc3RpbmF0aW9uX2RpY3QgPSBjaGFwc19kZXN0aW5hdGlvbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ2hhcHNEZXN0aW5hdGlvbiBmcm9tIGEgZGljdApjaGFwc19kZXN0aW5hdGlvbl9mcm9tX2RpY3QgPSBDaGFwc0Rlc3RpbmF0aW9uLmZyb21fZGljdChjaGFwc19kZXN0aW5hdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ChapsPaymentInfo.md b/docs/ChapsPaymentInfo.md index 4417d600..8258f552 100644 --- a/docs/ChapsPaymentInfo.md +++ b/docs/ChapsPaymentInfo.md @@ -1,39 +1 @@ -# ChapsPaymentInfo - -CHAPS payment information for UK pound sterling same-day transfers - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**rail** | **str** | The payment rail type for CHAPS transfers | -**addressing_system** | **str** | The addressing system used for CHAPS transfers | -**account_holder_given_name** | **str** | The given name (first name) of the account holder | -**account_holder_surname** | **str** | The surname (last name) of the account holder | -**country** | **str** | The country for the transfer (ISO 3166-1 alpha-2 code) | -**sort_code** | **str** | UK bank sort code (format XX-XX-XX) | -**account_number** | **str** | UK bank account number | -**bank_name** | **str** | The name of the bank | [optional] -**bank_account_country** | **str** | CHAPS bank account holder name | -**bank_account_holder_name** | **str** | CHAPS bank account holder name | - -## Example - -```python -from fireblocks.models.chaps_payment_info import ChapsPaymentInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of ChapsPaymentInfo from a JSON string -chaps_payment_info_instance = ChapsPaymentInfo.from_json(json) -# print the JSON string representation of the object -print(ChapsPaymentInfo.to_json()) - -# convert the object into a dict -chaps_payment_info_dict = chaps_payment_info_instance.to_dict() -# create an instance of ChapsPaymentInfo from a dict -chaps_payment_info_from_dict = ChapsPaymentInfo.from_dict(chaps_payment_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDaGFwc1BheW1lbnRJbmZvCgpDSEFQUyBwYXltZW50IGluZm9ybWF0aW9uIGZvciBVSyBwb3VuZCBzdGVybGluZyBzYW1lLWRheSB0cmFuc2ZlcnMKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipyYWlsKiogfCAqKnN0cioqIHwgVGhlIHBheW1lbnQgcmFpbCB0eXBlIGZvciBDSEFQUyB0cmFuc2ZlcnMgfCAKKiphZGRyZXNzaW5nX3N5c3RlbSoqIHwgKipzdHIqKiB8IFRoZSBhZGRyZXNzaW5nIHN5c3RlbSB1c2VkIGZvciBDSEFQUyB0cmFuc2ZlcnMgfCAKKiphY2NvdW50X2hvbGRlcl9naXZlbl9uYW1lKiogfCAqKnN0cioqIHwgVGhlIGdpdmVuIG5hbWUgKGZpcnN0IG5hbWUpIG9mIHRoZSBhY2NvdW50IGhvbGRlciB8IAoqKmFjY291bnRfaG9sZGVyX3N1cm5hbWUqKiB8ICoqc3RyKiogfCBUaGUgc3VybmFtZSAobGFzdCBuYW1lKSBvZiB0aGUgYWNjb3VudCBob2xkZXIgfCAKKipjb3VudHJ5KiogfCAqKnN0cioqIHwgVGhlIGNvdW50cnkgZm9yIHRoZSB0cmFuc2ZlciAoSVNPIDMxNjYtMSBhbHBoYS0yIGNvZGUpIHwgCioqc29ydF9jb2RlKiogfCAqKnN0cioqIHwgVUsgYmFuayBzb3J0IGNvZGUgKGZvcm1hdCBYWC1YWC1YWCkgfCAKKiphY2NvdW50X251bWJlcioqIHwgKipzdHIqKiB8IFVLIGJhbmsgYWNjb3VudCBudW1iZXIgfCAKKipiYW5rX25hbWUqKiB8ICoqc3RyKiogfCBUaGUgbmFtZSBvZiB0aGUgYmFuayB8IFtvcHRpb25hbF0gCioqYmFua19hY2NvdW50X2NvdW50cnkqKiB8ICoqc3RyKiogfCBDSEFQUyBiYW5rIGFjY291bnQgaG9sZGVyIG5hbWUgfCAKKipiYW5rX2FjY291bnRfaG9sZGVyX25hbWUqKiB8ICoqc3RyKiogfCBDSEFQUyBiYW5rIGFjY291bnQgaG9sZGVyIG5hbWUgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYXBzX3BheW1lbnRfaW5mbyBpbXBvcnQgQ2hhcHNQYXltZW50SW5mbwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ2hhcHNQYXltZW50SW5mbyBmcm9tIGEgSlNPTiBzdHJpbmcKY2hhcHNfcGF5bWVudF9pbmZvX2luc3RhbmNlID0gQ2hhcHNQYXltZW50SW5mby5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDaGFwc1BheW1lbnRJbmZvLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNoYXBzX3BheW1lbnRfaW5mb19kaWN0ID0gY2hhcHNfcGF5bWVudF9pbmZvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDaGFwc1BheW1lbnRJbmZvIGZyb20gYSBkaWN0CmNoYXBzX3BheW1lbnRfaW5mb19mcm9tX2RpY3QgPSBDaGFwc1BheW1lbnRJbmZvLmZyb21fZGljdChjaGFwc19wYXltZW50X2luZm9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ClaimRewardsRequest.md b/docs/ClaimRewardsRequest.md index 14fae2b8..61d336c2 100644 --- a/docs/ClaimRewardsRequest.md +++ b/docs/ClaimRewardsRequest.md @@ -1,32 +1 @@ -# ClaimRewardsRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | id of position to withdraw rewards from | -**fee** | **str** | Represents the fee for a transaction, which can be specified as a percentage value. Only one of fee/feeLevel is required. | [optional] -**fee_level** | [**FeeLevel**](FeeLevel.md) | | [optional] -**tx_note** | **str** | The note to associate with the transactions. | [optional] - -## Example - -```python -from fireblocks.models.claim_rewards_request import ClaimRewardsRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of ClaimRewardsRequest from a JSON string -claim_rewards_request_instance = ClaimRewardsRequest.from_json(json) -# print the JSON string representation of the object -print(ClaimRewardsRequest.to_json()) - -# convert the object into a dict -claim_rewards_request_dict = claim_rewards_request_instance.to_dict() -# create an instance of ClaimRewardsRequest from a dict -claim_rewards_request_from_dict = ClaimRewardsRequest.from_dict(claim_rewards_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDbGFpbVJld2FyZHNSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgaWQgb2YgcG9zaXRpb24gdG8gd2l0aGRyYXcgcmV3YXJkcyBmcm9tIHwgCioqZmVlKiogfCAqKnN0cioqIHwgUmVwcmVzZW50cyB0aGUgZmVlIGZvciBhIHRyYW5zYWN0aW9uLCB3aGljaCBjYW4gYmUgc3BlY2lmaWVkIGFzIGEgcGVyY2VudGFnZSB2YWx1ZS4gT25seSBvbmUgb2YgZmVlL2ZlZUxldmVsIGlzIHJlcXVpcmVkLiB8IFtvcHRpb25hbF0gCioqZmVlX2xldmVsKiogfCBbKipGZWVMZXZlbCoqXShGZWVMZXZlbC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnR4X25vdGUqKiB8ICoqc3RyKiogfCBUaGUgbm90ZSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgdHJhbnNhY3Rpb25zLiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jbGFpbV9yZXdhcmRzX3JlcXVlc3QgaW1wb3J0IENsYWltUmV3YXJkc1JlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENsYWltUmV3YXJkc1JlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCmNsYWltX3Jld2FyZHNfcmVxdWVzdF9pbnN0YW5jZSA9IENsYWltUmV3YXJkc1JlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ2xhaW1SZXdhcmRzUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjbGFpbV9yZXdhcmRzX3JlcXVlc3RfZGljdCA9IGNsYWltX3Jld2FyZHNfcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ2xhaW1SZXdhcmRzUmVxdWVzdCBmcm9tIGEgZGljdApjbGFpbV9yZXdhcmRzX3JlcXVlc3RfZnJvbV9kaWN0ID0gQ2xhaW1SZXdhcmRzUmVxdWVzdC5mcm9tX2RpY3QoY2xhaW1fcmV3YXJkc19yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/CollectionBurnRequestDto.md b/docs/CollectionBurnRequestDto.md index 6fb5cc63..50d75018 100644 --- a/docs/CollectionBurnRequestDto.md +++ b/docs/CollectionBurnRequestDto.md @@ -1,32 +1 @@ -# CollectionBurnRequestDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vault_account_id** | **str** | The id of the vault account that initiates the burn function | -**token_id** | **str** | The token id | -**amount** | **str** | For ERC721, amount is optional or should always be 1 and for ERC1155, amount should be 1 or greater | [optional] -**external_id** | **str** | External id that can be used to identify the transaction in your system. The unique identifier of the transaction outside of Fireblocks with max length of 255 characters | [optional] - -## Example - -```python -from fireblocks.models.collection_burn_request_dto import CollectionBurnRequestDto - -# TODO update the JSON string below -json = "{}" -# create an instance of CollectionBurnRequestDto from a JSON string -collection_burn_request_dto_instance = CollectionBurnRequestDto.from_json(json) -# print the JSON string representation of the object -print(CollectionBurnRequestDto.to_json()) - -# convert the object into a dict -collection_burn_request_dto_dict = collection_burn_request_dto_instance.to_dict() -# create an instance of CollectionBurnRequestDto from a dict -collection_burn_request_dto_from_dict = CollectionBurnRequestDto.from_dict(collection_burn_request_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb2xsZWN0aW9uQnVyblJlcXVlc3REdG8KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8IFRoZSBpZCBvZiB0aGUgdmF1bHQgYWNjb3VudCB0aGF0IGluaXRpYXRlcyB0aGUgYnVybiBmdW5jdGlvbiB8IAoqKnRva2VuX2lkKiogfCAqKnN0cioqIHwgVGhlIHRva2VuIGlkIHwgCioqYW1vdW50KiogfCAqKnN0cioqIHwgRm9yIEVSQzcyMSwgYW1vdW50IGlzIG9wdGlvbmFsIG9yIHNob3VsZCBhbHdheXMgYmUgMSBhbmQgZm9yIEVSQzExNTUsIGFtb3VudCBzaG91bGQgYmUgMSBvciBncmVhdGVyIHwgW29wdGlvbmFsXSAKKipleHRlcm5hbF9pZCoqIHwgKipzdHIqKiB8IEV4dGVybmFsIGlkIHRoYXQgY2FuIGJlIHVzZWQgdG8gaWRlbnRpZnkgdGhlIHRyYW5zYWN0aW9uIGluIHlvdXIgc3lzdGVtLiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHRyYW5zYWN0aW9uIG91dHNpZGUgb2YgRmlyZWJsb2NrcyB3aXRoIG1heCBsZW5ndGggb2YgMjU1IGNoYXJhY3RlcnMgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29sbGVjdGlvbl9idXJuX3JlcXVlc3RfZHRvIGltcG9ydCBDb2xsZWN0aW9uQnVyblJlcXVlc3REdG8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbGxlY3Rpb25CdXJuUmVxdWVzdER0byBmcm9tIGEgSlNPTiBzdHJpbmcKY29sbGVjdGlvbl9idXJuX3JlcXVlc3RfZHRvX2luc3RhbmNlID0gQ29sbGVjdGlvbkJ1cm5SZXF1ZXN0RHRvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbGxlY3Rpb25CdXJuUmVxdWVzdER0by50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjb2xsZWN0aW9uX2J1cm5fcmVxdWVzdF9kdG9fZGljdCA9IGNvbGxlY3Rpb25fYnVybl9yZXF1ZXN0X2R0b19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29sbGVjdGlvbkJ1cm5SZXF1ZXN0RHRvIGZyb20gYSBkaWN0CmNvbGxlY3Rpb25fYnVybl9yZXF1ZXN0X2R0b19mcm9tX2RpY3QgPSBDb2xsZWN0aW9uQnVyblJlcXVlc3REdG8uZnJvbV9kaWN0KGNvbGxlY3Rpb25fYnVybl9yZXF1ZXN0X2R0b19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CollectionBurnResponseDto.md b/docs/CollectionBurnResponseDto.md index f58763e0..99a9e370 100644 --- a/docs/CollectionBurnResponseDto.md +++ b/docs/CollectionBurnResponseDto.md @@ -1,29 +1 @@ -# CollectionBurnResponseDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**tx_id** | **str** | Transaction Id for the burn operation | - -## Example - -```python -from fireblocks.models.collection_burn_response_dto import CollectionBurnResponseDto - -# TODO update the JSON string below -json = "{}" -# create an instance of CollectionBurnResponseDto from a JSON string -collection_burn_response_dto_instance = CollectionBurnResponseDto.from_json(json) -# print the JSON string representation of the object -print(CollectionBurnResponseDto.to_json()) - -# convert the object into a dict -collection_burn_response_dto_dict = collection_burn_response_dto_instance.to_dict() -# create an instance of CollectionBurnResponseDto from a dict -collection_burn_response_dto_from_dict = CollectionBurnResponseDto.from_dict(collection_burn_response_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb2xsZWN0aW9uQnVyblJlc3BvbnNlRHRvCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR4X2lkKiogfCAqKnN0cioqIHwgVHJhbnNhY3Rpb24gSWQgZm9yIHRoZSBidXJuIG9wZXJhdGlvbiB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29sbGVjdGlvbl9idXJuX3Jlc3BvbnNlX2R0byBpbXBvcnQgQ29sbGVjdGlvbkJ1cm5SZXNwb25zZUR0bwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29sbGVjdGlvbkJ1cm5SZXNwb25zZUR0byBmcm9tIGEgSlNPTiBzdHJpbmcKY29sbGVjdGlvbl9idXJuX3Jlc3BvbnNlX2R0b19pbnN0YW5jZSA9IENvbGxlY3Rpb25CdXJuUmVzcG9uc2VEdG8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29sbGVjdGlvbkJ1cm5SZXNwb25zZUR0by50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjb2xsZWN0aW9uX2J1cm5fcmVzcG9uc2VfZHRvX2RpY3QgPSBjb2xsZWN0aW9uX2J1cm5fcmVzcG9uc2VfZHRvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb2xsZWN0aW9uQnVyblJlc3BvbnNlRHRvIGZyb20gYSBkaWN0CmNvbGxlY3Rpb25fYnVybl9yZXNwb25zZV9kdG9fZnJvbV9kaWN0ID0gQ29sbGVjdGlvbkJ1cm5SZXNwb25zZUR0by5mcm9tX2RpY3QoY29sbGVjdGlvbl9idXJuX3Jlc3BvbnNlX2R0b19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CollectionDeployRequestDto.md b/docs/CollectionDeployRequestDto.md index 48bac932..58097ac2 100644 --- a/docs/CollectionDeployRequestDto.md +++ b/docs/CollectionDeployRequestDto.md @@ -1,35 +1 @@ -# CollectionDeployRequestDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**base_asset_id** | **str** | The blockchain base assetId | -**vault_account_id** | **str** | The id of the vault account that initiated the request to issue the token | -**type** | [**CollectionType**](CollectionType.md) | | -**name** | **str** | A string that represents the name of the collection | -**symbol** | **str** | A string that represents the symbol of the collection | -**admin_address** | **str** | The EVM address of the user that will be set as the admin user of the collection | -**display_name** | **str** | A string to display as a name of the collection | [optional] - -## Example - -```python -from fireblocks.models.collection_deploy_request_dto import CollectionDeployRequestDto - -# TODO update the JSON string below -json = "{}" -# create an instance of CollectionDeployRequestDto from a JSON string -collection_deploy_request_dto_instance = CollectionDeployRequestDto.from_json(json) -# print the JSON string representation of the object -print(CollectionDeployRequestDto.to_json()) - -# convert the object into a dict -collection_deploy_request_dto_dict = collection_deploy_request_dto_instance.to_dict() -# create an instance of CollectionDeployRequestDto from a dict -collection_deploy_request_dto_from_dict = CollectionDeployRequestDto.from_dict(collection_deploy_request_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb2xsZWN0aW9uRGVwbG95UmVxdWVzdER0bwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipiYXNlX2Fzc2V0X2lkKiogfCAqKnN0cioqIHwgVGhlIGJsb2NrY2hhaW4gYmFzZSBhc3NldElkIHwgCioqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8IFRoZSBpZCBvZiB0aGUgdmF1bHQgYWNjb3VudCB0aGF0IGluaXRpYXRlZCB0aGUgcmVxdWVzdCB0byBpc3N1ZSB0aGUgdG9rZW4gfCAKKip0eXBlKiogfCBbKipDb2xsZWN0aW9uVHlwZSoqXShDb2xsZWN0aW9uVHlwZS5tZCkgfCAgfCAKKipuYW1lKiogfCAqKnN0cioqIHwgQSBzdHJpbmcgdGhhdCByZXByZXNlbnRzIHRoZSBuYW1lIG9mIHRoZSBjb2xsZWN0aW9uIHwgCioqc3ltYm9sKiogfCAqKnN0cioqIHwgQSBzdHJpbmcgdGhhdCByZXByZXNlbnRzIHRoZSBzeW1ib2wgb2YgdGhlIGNvbGxlY3Rpb24gfCAKKiphZG1pbl9hZGRyZXNzKiogfCAqKnN0cioqIHwgVGhlIEVWTSBhZGRyZXNzIG9mIHRoZSB1c2VyIHRoYXQgd2lsbCBiZSBzZXQgYXMgdGhlIGFkbWluIHVzZXIgb2YgdGhlIGNvbGxlY3Rpb24gfCAKKipkaXNwbGF5X25hbWUqKiB8ICoqc3RyKiogfCBBIHN0cmluZyB0byBkaXNwbGF5IGFzIGEgbmFtZSBvZiB0aGUgY29sbGVjdGlvbiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb2xsZWN0aW9uX2RlcGxveV9yZXF1ZXN0X2R0byBpbXBvcnQgQ29sbGVjdGlvbkRlcGxveVJlcXVlc3REdG8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbGxlY3Rpb25EZXBsb3lSZXF1ZXN0RHRvIGZyb20gYSBKU09OIHN0cmluZwpjb2xsZWN0aW9uX2RlcGxveV9yZXF1ZXN0X2R0b19pbnN0YW5jZSA9IENvbGxlY3Rpb25EZXBsb3lSZXF1ZXN0RHRvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbGxlY3Rpb25EZXBsb3lSZXF1ZXN0RHRvLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNvbGxlY3Rpb25fZGVwbG95X3JlcXVlc3RfZHRvX2RpY3QgPSBjb2xsZWN0aW9uX2RlcGxveV9yZXF1ZXN0X2R0b19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29sbGVjdGlvbkRlcGxveVJlcXVlc3REdG8gZnJvbSBhIGRpY3QKY29sbGVjdGlvbl9kZXBsb3lfcmVxdWVzdF9kdG9fZnJvbV9kaWN0ID0gQ29sbGVjdGlvbkRlcGxveVJlcXVlc3REdG8uZnJvbV9kaWN0KGNvbGxlY3Rpb25fZGVwbG95X3JlcXVlc3RfZHRvX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/CollectionLinkDto.md b/docs/CollectionLinkDto.md index 4dcf8530..955fa90b 100644 --- a/docs/CollectionLinkDto.md +++ b/docs/CollectionLinkDto.md @@ -1,33 +1 @@ -# CollectionLinkDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The collection id | -**status** | **str** | The collection status | -**type** | [**CollectionType**](CollectionType.md) | | -**display_name** | **str** | The display name of the collection. If was not provided, would be taken from the contract template | [optional] -**collection_metadata** | [**CollectionMetadataDto**](CollectionMetadataDto.md) | The collection's metadata | [optional] - -## Example - -```python -from fireblocks.models.collection_link_dto import CollectionLinkDto - -# TODO update the JSON string below -json = "{}" -# create an instance of CollectionLinkDto from a JSON string -collection_link_dto_instance = CollectionLinkDto.from_json(json) -# print the JSON string representation of the object -print(CollectionLinkDto.to_json()) - -# convert the object into a dict -collection_link_dto_dict = collection_link_dto_instance.to_dict() -# create an instance of CollectionLinkDto from a dict -collection_link_dto_from_dict = CollectionLinkDto.from_dict(collection_link_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb2xsZWN0aW9uTGlua0R0bwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8IFRoZSBjb2xsZWN0aW9uIGlkIHwgCioqc3RhdHVzKiogfCAqKnN0cioqIHwgVGhlIGNvbGxlY3Rpb24gc3RhdHVzIHwgCioqdHlwZSoqIHwgWyoqQ29sbGVjdGlvblR5cGUqKl0oQ29sbGVjdGlvblR5cGUubWQpIHwgIHwgCioqZGlzcGxheV9uYW1lKiogfCAqKnN0cioqIHwgVGhlIGRpc3BsYXkgbmFtZSBvZiB0aGUgY29sbGVjdGlvbi4gSWYgd2FzIG5vdCBwcm92aWRlZCwgd291bGQgYmUgdGFrZW4gZnJvbSB0aGUgY29udHJhY3QgdGVtcGxhdGUgfCBbb3B0aW9uYWxdIAoqKmNvbGxlY3Rpb25fbWV0YWRhdGEqKiB8IFsqKkNvbGxlY3Rpb25NZXRhZGF0YUR0byoqXShDb2xsZWN0aW9uTWV0YWRhdGFEdG8ubWQpIHwgVGhlIGNvbGxlY3Rpb24mIzM5O3MgbWV0YWRhdGEgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29sbGVjdGlvbl9saW5rX2R0byBpbXBvcnQgQ29sbGVjdGlvbkxpbmtEdG8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbGxlY3Rpb25MaW5rRHRvIGZyb20gYSBKU09OIHN0cmluZwpjb2xsZWN0aW9uX2xpbmtfZHRvX2luc3RhbmNlID0gQ29sbGVjdGlvbkxpbmtEdG8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29sbGVjdGlvbkxpbmtEdG8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29sbGVjdGlvbl9saW5rX2R0b19kaWN0ID0gY29sbGVjdGlvbl9saW5rX2R0b19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29sbGVjdGlvbkxpbmtEdG8gZnJvbSBhIGRpY3QKY29sbGVjdGlvbl9saW5rX2R0b19mcm9tX2RpY3QgPSBDb2xsZWN0aW9uTGlua0R0by5mcm9tX2RpY3QoY29sbGVjdGlvbl9saW5rX2R0b19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CollectionMetadataDto.md b/docs/CollectionMetadataDto.md index 53f85744..038b8751 100644 --- a/docs/CollectionMetadataDto.md +++ b/docs/CollectionMetadataDto.md @@ -1,34 +1 @@ -# CollectionMetadataDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**fb_collection_id** | **str** | Fireblocks collection id | -**name** | **str** | Collection name | [optional] -**symbol** | **str** | Collection symbol | [optional] -**standard** | **str** | Collection contract standard | [optional] -**blockchain_descriptor** | **str** | Collection's blockchain | -**contract_address** | **str** | Collection contract address | [optional] - -## Example - -```python -from fireblocks.models.collection_metadata_dto import CollectionMetadataDto - -# TODO update the JSON string below -json = "{}" -# create an instance of CollectionMetadataDto from a JSON string -collection_metadata_dto_instance = CollectionMetadataDto.from_json(json) -# print the JSON string representation of the object -print(CollectionMetadataDto.to_json()) - -# convert the object into a dict -collection_metadata_dto_dict = collection_metadata_dto_instance.to_dict() -# create an instance of CollectionMetadataDto from a dict -collection_metadata_dto_from_dict = CollectionMetadataDto.from_dict(collection_metadata_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb2xsZWN0aW9uTWV0YWRhdGFEdG8KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZmJfY29sbGVjdGlvbl9pZCoqIHwgKipzdHIqKiB8IEZpcmVibG9ja3MgY29sbGVjdGlvbiBpZCB8IAoqKm5hbWUqKiB8ICoqc3RyKiogfCBDb2xsZWN0aW9uIG5hbWUgfCBbb3B0aW9uYWxdIAoqKnN5bWJvbCoqIHwgKipzdHIqKiB8IENvbGxlY3Rpb24gc3ltYm9sIHwgW29wdGlvbmFsXSAKKipzdGFuZGFyZCoqIHwgKipzdHIqKiB8IENvbGxlY3Rpb24gY29udHJhY3Qgc3RhbmRhcmQgfCBbb3B0aW9uYWxdIAoqKmJsb2NrY2hhaW5fZGVzY3JpcHRvcioqIHwgKipzdHIqKiB8IENvbGxlY3Rpb24mIzM5O3MgYmxvY2tjaGFpbiB8IAoqKmNvbnRyYWN0X2FkZHJlc3MqKiB8ICoqc3RyKiogfCBDb2xsZWN0aW9uIGNvbnRyYWN0IGFkZHJlc3MgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29sbGVjdGlvbl9tZXRhZGF0YV9kdG8gaW1wb3J0IENvbGxlY3Rpb25NZXRhZGF0YUR0bwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29sbGVjdGlvbk1ldGFkYXRhRHRvIGZyb20gYSBKU09OIHN0cmluZwpjb2xsZWN0aW9uX21ldGFkYXRhX2R0b19pbnN0YW5jZSA9IENvbGxlY3Rpb25NZXRhZGF0YUR0by5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDb2xsZWN0aW9uTWV0YWRhdGFEdG8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29sbGVjdGlvbl9tZXRhZGF0YV9kdG9fZGljdCA9IGNvbGxlY3Rpb25fbWV0YWRhdGFfZHRvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb2xsZWN0aW9uTWV0YWRhdGFEdG8gZnJvbSBhIGRpY3QKY29sbGVjdGlvbl9tZXRhZGF0YV9kdG9fZnJvbV9kaWN0ID0gQ29sbGVjdGlvbk1ldGFkYXRhRHRvLmZyb21fZGljdChjb2xsZWN0aW9uX21ldGFkYXRhX2R0b19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CollectionMintRequestDto.md b/docs/CollectionMintRequestDto.md index 621a2af0..749f20ce 100644 --- a/docs/CollectionMintRequestDto.md +++ b/docs/CollectionMintRequestDto.md @@ -1,35 +1 @@ -# CollectionMintRequestDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vault_account_id** | **str** | The id of the vault account that initiates the mint function. | -**to** | **str** | The EVM address to mint to | -**token_id** | **str** | The token id, recommended to have numerical format and in sequential order | -**amount** | **str** | For ERC721, amount is optional or should always be 1 and for ERC1155, amount should be 1 or greater | [optional] -**metadata_uri** | **str** | URL of metadata uploaded, skip uploading to IPFS if this field is provided with any value | [optional] -**metadata** | [**CollectionTokenMetadataDto**](CollectionTokenMetadataDto.md) | Metadata to upload | [optional] -**external_id** | **str** | External id that can be used to identify the transaction in your system. The unique identifier of the transaction outside of Fireblocks with max length of 255 characters | [optional] - -## Example - -```python -from fireblocks.models.collection_mint_request_dto import CollectionMintRequestDto - -# TODO update the JSON string below -json = "{}" -# create an instance of CollectionMintRequestDto from a JSON string -collection_mint_request_dto_instance = CollectionMintRequestDto.from_json(json) -# print the JSON string representation of the object -print(CollectionMintRequestDto.to_json()) - -# convert the object into a dict -collection_mint_request_dto_dict = collection_mint_request_dto_instance.to_dict() -# create an instance of CollectionMintRequestDto from a dict -collection_mint_request_dto_from_dict = CollectionMintRequestDto.from_dict(collection_mint_request_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb2xsZWN0aW9uTWludFJlcXVlc3REdG8KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8IFRoZSBpZCBvZiB0aGUgdmF1bHQgYWNjb3VudCB0aGF0IGluaXRpYXRlcyB0aGUgbWludCBmdW5jdGlvbi4gfCAKKip0byoqIHwgKipzdHIqKiB8IFRoZSBFVk0gYWRkcmVzcyB0byBtaW50IHRvICB8IAoqKnRva2VuX2lkKiogfCAqKnN0cioqIHwgVGhlIHRva2VuIGlkLCByZWNvbW1lbmRlZCB0byBoYXZlIG51bWVyaWNhbCBmb3JtYXQgYW5kIGluIHNlcXVlbnRpYWwgb3JkZXIgfCAKKiphbW91bnQqKiB8ICoqc3RyKiogfCBGb3IgRVJDNzIxLCBhbW91bnQgaXMgb3B0aW9uYWwgb3Igc2hvdWxkIGFsd2F5cyBiZSAxIGFuZCBmb3IgRVJDMTE1NSwgYW1vdW50IHNob3VsZCBiZSAxIG9yIGdyZWF0ZXIgfCBbb3B0aW9uYWxdIAoqKm1ldGFkYXRhX3VyaSoqIHwgKipzdHIqKiB8IFVSTCBvZiBtZXRhZGF0YSB1cGxvYWRlZCwgc2tpcCB1cGxvYWRpbmcgdG8gSVBGUyBpZiB0aGlzIGZpZWxkIGlzIHByb3ZpZGVkIHdpdGggYW55IHZhbHVlIHwgW29wdGlvbmFsXSAKKiptZXRhZGF0YSoqIHwgWyoqQ29sbGVjdGlvblRva2VuTWV0YWRhdGFEdG8qKl0oQ29sbGVjdGlvblRva2VuTWV0YWRhdGFEdG8ubWQpIHwgTWV0YWRhdGEgdG8gdXBsb2FkIHwgW29wdGlvbmFsXSAKKipleHRlcm5hbF9pZCoqIHwgKipzdHIqKiB8IEV4dGVybmFsIGlkIHRoYXQgY2FuIGJlIHVzZWQgdG8gaWRlbnRpZnkgdGhlIHRyYW5zYWN0aW9uIGluIHlvdXIgc3lzdGVtLiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHRyYW5zYWN0aW9uIG91dHNpZGUgb2YgRmlyZWJsb2NrcyB3aXRoIG1heCBsZW5ndGggb2YgMjU1IGNoYXJhY3RlcnMgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29sbGVjdGlvbl9taW50X3JlcXVlc3RfZHRvIGltcG9ydCBDb2xsZWN0aW9uTWludFJlcXVlc3REdG8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbGxlY3Rpb25NaW50UmVxdWVzdER0byBmcm9tIGEgSlNPTiBzdHJpbmcKY29sbGVjdGlvbl9taW50X3JlcXVlc3RfZHRvX2luc3RhbmNlID0gQ29sbGVjdGlvbk1pbnRSZXF1ZXN0RHRvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbGxlY3Rpb25NaW50UmVxdWVzdER0by50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjb2xsZWN0aW9uX21pbnRfcmVxdWVzdF9kdG9fZGljdCA9IGNvbGxlY3Rpb25fbWludF9yZXF1ZXN0X2R0b19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29sbGVjdGlvbk1pbnRSZXF1ZXN0RHRvIGZyb20gYSBkaWN0CmNvbGxlY3Rpb25fbWludF9yZXF1ZXN0X2R0b19mcm9tX2RpY3QgPSBDb2xsZWN0aW9uTWludFJlcXVlc3REdG8uZnJvbV9kaWN0KGNvbGxlY3Rpb25fbWludF9yZXF1ZXN0X2R0b19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CollectionMintResponseDto.md b/docs/CollectionMintResponseDto.md index 7c3fdbdd..15c73637 100644 --- a/docs/CollectionMintResponseDto.md +++ b/docs/CollectionMintResponseDto.md @@ -1,29 +1 @@ -# CollectionMintResponseDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**tx_id** | **str** | Transaction Id for the mint operation | - -## Example - -```python -from fireblocks.models.collection_mint_response_dto import CollectionMintResponseDto - -# TODO update the JSON string below -json = "{}" -# create an instance of CollectionMintResponseDto from a JSON string -collection_mint_response_dto_instance = CollectionMintResponseDto.from_json(json) -# print the JSON string representation of the object -print(CollectionMintResponseDto.to_json()) - -# convert the object into a dict -collection_mint_response_dto_dict = collection_mint_response_dto_instance.to_dict() -# create an instance of CollectionMintResponseDto from a dict -collection_mint_response_dto_from_dict = CollectionMintResponseDto.from_dict(collection_mint_response_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb2xsZWN0aW9uTWludFJlc3BvbnNlRHRvCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR4X2lkKiogfCAqKnN0cioqIHwgVHJhbnNhY3Rpb24gSWQgZm9yIHRoZSBtaW50IG9wZXJhdGlvbiB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29sbGVjdGlvbl9taW50X3Jlc3BvbnNlX2R0byBpbXBvcnQgQ29sbGVjdGlvbk1pbnRSZXNwb25zZUR0bwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29sbGVjdGlvbk1pbnRSZXNwb25zZUR0byBmcm9tIGEgSlNPTiBzdHJpbmcKY29sbGVjdGlvbl9taW50X3Jlc3BvbnNlX2R0b19pbnN0YW5jZSA9IENvbGxlY3Rpb25NaW50UmVzcG9uc2VEdG8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29sbGVjdGlvbk1pbnRSZXNwb25zZUR0by50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjb2xsZWN0aW9uX21pbnRfcmVzcG9uc2VfZHRvX2RpY3QgPSBjb2xsZWN0aW9uX21pbnRfcmVzcG9uc2VfZHRvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb2xsZWN0aW9uTWludFJlc3BvbnNlRHRvIGZyb20gYSBkaWN0CmNvbGxlY3Rpb25fbWludF9yZXNwb25zZV9kdG9fZnJvbV9kaWN0ID0gQ29sbGVjdGlvbk1pbnRSZXNwb25zZUR0by5mcm9tX2RpY3QoY29sbGVjdGlvbl9taW50X3Jlc3BvbnNlX2R0b19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CollectionOwnershipResponse.md b/docs/CollectionOwnershipResponse.md index 567fc21a..e747a190 100644 --- a/docs/CollectionOwnershipResponse.md +++ b/docs/CollectionOwnershipResponse.md @@ -1,34 +1 @@ -# CollectionOwnershipResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | Fireblocks collection id | -**name** | **str** | Collection name | [optional] -**symbol** | **str** | Collection symbol | [optional] -**standard** | **str** | Collection contract standard | [optional] -**blockchain_descriptor** | **str** | Collection's blockchain | -**contract_address** | **str** | Collection contract standard | [optional] - -## Example - -```python -from fireblocks.models.collection_ownership_response import CollectionOwnershipResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of CollectionOwnershipResponse from a JSON string -collection_ownership_response_instance = CollectionOwnershipResponse.from_json(json) -# print the JSON string representation of the object -print(CollectionOwnershipResponse.to_json()) - -# convert the object into a dict -collection_ownership_response_dict = collection_ownership_response_instance.to_dict() -# create an instance of CollectionOwnershipResponse from a dict -collection_ownership_response_from_dict = CollectionOwnershipResponse.from_dict(collection_ownership_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb2xsZWN0aW9uT3duZXJzaGlwUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBGaXJlYmxvY2tzIGNvbGxlY3Rpb24gaWQgfCAKKipuYW1lKiogfCAqKnN0cioqIHwgQ29sbGVjdGlvbiBuYW1lIHwgW29wdGlvbmFsXSAKKipzeW1ib2wqKiB8ICoqc3RyKiogfCBDb2xsZWN0aW9uIHN5bWJvbCB8IFtvcHRpb25hbF0gCioqc3RhbmRhcmQqKiB8ICoqc3RyKiogfCBDb2xsZWN0aW9uIGNvbnRyYWN0IHN0YW5kYXJkIHwgW29wdGlvbmFsXSAKKipibG9ja2NoYWluX2Rlc2NyaXB0b3IqKiB8ICoqc3RyKiogfCBDb2xsZWN0aW9uJiMzOTtzIGJsb2NrY2hhaW4gfCAKKipjb250cmFjdF9hZGRyZXNzKiogfCAqKnN0cioqIHwgQ29sbGVjdGlvbiBjb250cmFjdCBzdGFuZGFyZCB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb2xsZWN0aW9uX293bmVyc2hpcF9yZXNwb25zZSBpbXBvcnQgQ29sbGVjdGlvbk93bmVyc2hpcFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb2xsZWN0aW9uT3duZXJzaGlwUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmNvbGxlY3Rpb25fb3duZXJzaGlwX3Jlc3BvbnNlX2luc3RhbmNlID0gQ29sbGVjdGlvbk93bmVyc2hpcFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbGxlY3Rpb25Pd25lcnNoaXBSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjb2xsZWN0aW9uX293bmVyc2hpcF9yZXNwb25zZV9kaWN0ID0gY29sbGVjdGlvbl9vd25lcnNoaXBfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbGxlY3Rpb25Pd25lcnNoaXBSZXNwb25zZSBmcm9tIGEgZGljdApjb2xsZWN0aW9uX293bmVyc2hpcF9yZXNwb25zZV9mcm9tX2RpY3QgPSBDb2xsZWN0aW9uT3duZXJzaGlwUmVzcG9uc2UuZnJvbV9kaWN0KGNvbGxlY3Rpb25fb3duZXJzaGlwX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/CollectionTokenMetadataAttributeDto.md b/docs/CollectionTokenMetadataAttributeDto.md index 838d66e4..ddc5f71f 100644 --- a/docs/CollectionTokenMetadataAttributeDto.md +++ b/docs/CollectionTokenMetadataAttributeDto.md @@ -1,31 +1 @@ -# CollectionTokenMetadataAttributeDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**trait_type** | **str** | Name of the trait | -**value** | **str** | Value of the trait | -**display_type** | **str** | A field indicating how you would like trait to be displayed | [optional] - -## Example - -```python -from fireblocks.models.collection_token_metadata_attribute_dto import CollectionTokenMetadataAttributeDto - -# TODO update the JSON string below -json = "{}" -# create an instance of CollectionTokenMetadataAttributeDto from a JSON string -collection_token_metadata_attribute_dto_instance = CollectionTokenMetadataAttributeDto.from_json(json) -# print the JSON string representation of the object -print(CollectionTokenMetadataAttributeDto.to_json()) - -# convert the object into a dict -collection_token_metadata_attribute_dto_dict = collection_token_metadata_attribute_dto_instance.to_dict() -# create an instance of CollectionTokenMetadataAttributeDto from a dict -collection_token_metadata_attribute_dto_from_dict = CollectionTokenMetadataAttributeDto.from_dict(collection_token_metadata_attribute_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb2xsZWN0aW9uVG9rZW5NZXRhZGF0YUF0dHJpYnV0ZUR0bwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0cmFpdF90eXBlKiogfCAqKnN0cioqIHwgTmFtZSBvZiB0aGUgdHJhaXQgfCAKKip2YWx1ZSoqIHwgKipzdHIqKiB8IFZhbHVlIG9mIHRoZSB0cmFpdCB8IAoqKmRpc3BsYXlfdHlwZSoqIHwgKipzdHIqKiB8IEEgZmllbGQgaW5kaWNhdGluZyBob3cgeW91IHdvdWxkIGxpa2UgdHJhaXQgdG8gYmUgZGlzcGxheWVkIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fdG9rZW5fbWV0YWRhdGFfYXR0cmlidXRlX2R0byBpbXBvcnQgQ29sbGVjdGlvblRva2VuTWV0YWRhdGFBdHRyaWJ1dGVEdG8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbGxlY3Rpb25Ub2tlbk1ldGFkYXRhQXR0cmlidXRlRHRvIGZyb20gYSBKU09OIHN0cmluZwpjb2xsZWN0aW9uX3Rva2VuX21ldGFkYXRhX2F0dHJpYnV0ZV9kdG9faW5zdGFuY2UgPSBDb2xsZWN0aW9uVG9rZW5NZXRhZGF0YUF0dHJpYnV0ZUR0by5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDb2xsZWN0aW9uVG9rZW5NZXRhZGF0YUF0dHJpYnV0ZUR0by50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjb2xsZWN0aW9uX3Rva2VuX21ldGFkYXRhX2F0dHJpYnV0ZV9kdG9fZGljdCA9IGNvbGxlY3Rpb25fdG9rZW5fbWV0YWRhdGFfYXR0cmlidXRlX2R0b19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29sbGVjdGlvblRva2VuTWV0YWRhdGFBdHRyaWJ1dGVEdG8gZnJvbSBhIGRpY3QKY29sbGVjdGlvbl90b2tlbl9tZXRhZGF0YV9hdHRyaWJ1dGVfZHRvX2Zyb21fZGljdCA9IENvbGxlY3Rpb25Ub2tlbk1ldGFkYXRhQXR0cmlidXRlRHRvLmZyb21fZGljdChjb2xsZWN0aW9uX3Rva2VuX21ldGFkYXRhX2F0dHJpYnV0ZV9kdG9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CollectionTokenMetadataDto.md b/docs/CollectionTokenMetadataDto.md index f36d1033..0aec8753 100644 --- a/docs/CollectionTokenMetadataDto.md +++ b/docs/CollectionTokenMetadataDto.md @@ -1,34 +1 @@ -# CollectionTokenMetadataDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | Token's name | -**description** | **str** | Token's description | -**image** | **str** | Token's image URL | [optional] -**animation_url** | **str** | Token's animation URL | [optional] -**external_url** | **str** | Token's external URL | [optional] -**attributes** | [**List[CollectionTokenMetadataAttributeDto]**](CollectionTokenMetadataAttributeDto.md) | Token's metadata attributes | [optional] - -## Example - -```python -from fireblocks.models.collection_token_metadata_dto import CollectionTokenMetadataDto - -# TODO update the JSON string below -json = "{}" -# create an instance of CollectionTokenMetadataDto from a JSON string -collection_token_metadata_dto_instance = CollectionTokenMetadataDto.from_json(json) -# print the JSON string representation of the object -print(CollectionTokenMetadataDto.to_json()) - -# convert the object into a dict -collection_token_metadata_dto_dict = collection_token_metadata_dto_instance.to_dict() -# create an instance of CollectionTokenMetadataDto from a dict -collection_token_metadata_dto_from_dict = CollectionTokenMetadataDto.from_dict(collection_token_metadata_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb2xsZWN0aW9uVG9rZW5NZXRhZGF0YUR0bwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipuYW1lKiogfCAqKnN0cioqIHwgVG9rZW4mIzM5O3MgbmFtZSB8IAoqKmRlc2NyaXB0aW9uKiogfCAqKnN0cioqIHwgVG9rZW4mIzM5O3MgZGVzY3JpcHRpb24gfCAKKippbWFnZSoqIHwgKipzdHIqKiB8IFRva2VuJiMzOTtzIGltYWdlIFVSTCB8IFtvcHRpb25hbF0gCioqYW5pbWF0aW9uX3VybCoqIHwgKipzdHIqKiB8IFRva2VuJiMzOTtzIGFuaW1hdGlvbiBVUkwgfCBbb3B0aW9uYWxdIAoqKmV4dGVybmFsX3VybCoqIHwgKipzdHIqKiB8IFRva2VuJiMzOTtzIGV4dGVybmFsIFVSTCB8IFtvcHRpb25hbF0gCioqYXR0cmlidXRlcyoqIHwgWyoqTGlzdFtDb2xsZWN0aW9uVG9rZW5NZXRhZGF0YUF0dHJpYnV0ZUR0b10qKl0oQ29sbGVjdGlvblRva2VuTWV0YWRhdGFBdHRyaWJ1dGVEdG8ubWQpIHwgVG9rZW4mIzM5O3MgbWV0YWRhdGEgYXR0cmlidXRlcyB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb2xsZWN0aW9uX3Rva2VuX21ldGFkYXRhX2R0byBpbXBvcnQgQ29sbGVjdGlvblRva2VuTWV0YWRhdGFEdG8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbGxlY3Rpb25Ub2tlbk1ldGFkYXRhRHRvIGZyb20gYSBKU09OIHN0cmluZwpjb2xsZWN0aW9uX3Rva2VuX21ldGFkYXRhX2R0b19pbnN0YW5jZSA9IENvbGxlY3Rpb25Ub2tlbk1ldGFkYXRhRHRvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbGxlY3Rpb25Ub2tlbk1ldGFkYXRhRHRvLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNvbGxlY3Rpb25fdG9rZW5fbWV0YWRhdGFfZHRvX2RpY3QgPSBjb2xsZWN0aW9uX3Rva2VuX21ldGFkYXRhX2R0b19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29sbGVjdGlvblRva2VuTWV0YWRhdGFEdG8gZnJvbSBhIGRpY3QKY29sbGVjdGlvbl90b2tlbl9tZXRhZGF0YV9kdG9fZnJvbV9kaWN0ID0gQ29sbGVjdGlvblRva2VuTWV0YWRhdGFEdG8uZnJvbV9kaWN0KGNvbGxlY3Rpb25fdG9rZW5fbWV0YWRhdGFfZHRvX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/CollectionType.md b/docs/CollectionType.md index 21ec5b6c..e002bf7f 100644 --- a/docs/CollectionType.md +++ b/docs/CollectionType.md @@ -1,13 +1 @@ -# CollectionType - -The type of collection - -## Enum - -* `NON_FUNGIBLE_TOKEN` (value: `'NON_FUNGIBLE_TOKEN'`) - -* `SEMI_FUNGIBLE_TOKEN` (value: `'SEMI_FUNGIBLE_TOKEN'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb2xsZWN0aW9uVHlwZQoKVGhlIHR5cGUgb2YgY29sbGVjdGlvbgoKIyMgRW51bQoKKiBgTk9OX0ZVTkdJQkxFX1RPS0VOYCAodmFsdWU6IGAnTk9OX0ZVTkdJQkxFX1RPS0VOJ2ApCgoqIGBTRU1JX0ZVTkdJQkxFX1RPS0VOYCAodmFsdWU6IGAnU0VNSV9GVU5HSUJMRV9UT0tFTidgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CommittedQuoteEnum.md b/docs/CommittedQuoteEnum.md index 6026af8b..19cd759b 100644 --- a/docs/CommittedQuoteEnum.md +++ b/docs/CommittedQuoteEnum.md @@ -1,11 +1 @@ -# CommittedQuoteEnum - -Indicates this is a committed quote - -## Enum - -* `COMMITTED` (value: `'COMMITTED'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb21taXR0ZWRRdW90ZUVudW0KCkluZGljYXRlcyB0aGlzIGlzIGEgY29tbWl0dGVkIHF1b3RlCgojIyBFbnVtCgoqIGBDT01NSVRURURgICh2YWx1ZTogYCdDT01NSVRURUQnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CommittedQuoteType.md b/docs/CommittedQuoteType.md index 1359e6e0..fcac3713 100644 --- a/docs/CommittedQuoteType.md +++ b/docs/CommittedQuoteType.md @@ -1,29 +1 @@ -# CommittedQuoteType - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**CommittedQuoteEnum**](CommittedQuoteEnum.md) | | - -## Example - -```python -from fireblocks.models.committed_quote_type import CommittedQuoteType - -# TODO update the JSON string below -json = "{}" -# create an instance of CommittedQuoteType from a JSON string -committed_quote_type_instance = CommittedQuoteType.from_json(json) -# print the JSON string representation of the object -print(CommittedQuoteType.to_json()) - -# convert the object into a dict -committed_quote_type_dict = committed_quote_type_instance.to_dict() -# create an instance of CommittedQuoteType from a dict -committed_quote_type_from_dict = CommittedQuoteType.from_dict(committed_quote_type_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb21taXR0ZWRRdW90ZVR5cGUKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgWyoqQ29tbWl0dGVkUXVvdGVFbnVtKipdKENvbW1pdHRlZFF1b3RlRW51bS5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbW1pdHRlZF9xdW90ZV90eXBlIGltcG9ydCBDb21taXR0ZWRRdW90ZVR5cGUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbW1pdHRlZFF1b3RlVHlwZSBmcm9tIGEgSlNPTiBzdHJpbmcKY29tbWl0dGVkX3F1b3RlX3R5cGVfaW5zdGFuY2UgPSBDb21taXR0ZWRRdW90ZVR5cGUuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29tbWl0dGVkUXVvdGVUeXBlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNvbW1pdHRlZF9xdW90ZV90eXBlX2RpY3QgPSBjb21taXR0ZWRfcXVvdGVfdHlwZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29tbWl0dGVkUXVvdGVUeXBlIGZyb20gYSBkaWN0CmNvbW1pdHRlZF9xdW90ZV90eXBlX2Zyb21fZGljdCA9IENvbW1pdHRlZFF1b3RlVHlwZS5mcm9tX2RpY3QoY29tbWl0dGVkX3F1b3RlX3R5cGVfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ComplianceApi.md b/docs/ComplianceApi.md index 30149fae..502d7a9b 100644 --- a/docs/ComplianceApi.md +++ b/docs/ComplianceApi.md @@ -1,825 +1 @@ -# fireblocks.ComplianceApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**get_aml_post_screening_policy**](ComplianceApi.md#get_aml_post_screening_policy) | **GET** /screening/aml/post_screening_policy | AML - View Post-Screening Policy -[**get_aml_screening_policy**](ComplianceApi.md#get_aml_screening_policy) | **GET** /screening/aml/screening_policy | AML - View Screening Policy -[**get_legal_entity_by_address**](ComplianceApi.md#get_legal_entity_by_address) | **GET** /address_registry/legal_entity | Look up legal entity by address and asset -[**get_post_screening_policy**](ComplianceApi.md#get_post_screening_policy) | **GET** /screening/travel_rule/post_screening_policy | Travel Rule - View Post-Screening Policy -[**get_screening_full_details**](ComplianceApi.md#get_screening_full_details) | **GET** /screening/transaction/{txId} | Provides all the compliance details for the given screened transaction. -[**get_screening_policy**](ComplianceApi.md#get_screening_policy) | **GET** /screening/travel_rule/screening_policy | Travel Rule - View Screening Policy -[**retry_rejected_transaction_bypass_screening_checks**](ComplianceApi.md#retry_rejected_transaction_bypass_screening_checks) | **POST** /screening/transaction/{txId}/bypass_screening_policy | Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, with the API user as the initiator, bypassing the screening policy check -[**set_aml_verdict**](ComplianceApi.md#set_aml_verdict) | **POST** /screening/aml/verdict/manual | Set AML Verdict for Manual Screening Verdict. -[**update_aml_screening_configuration**](ComplianceApi.md#update_aml_screening_configuration) | **PUT** /screening/aml/policy_configuration | Update AML Configuration -[**update_screening_configuration**](ComplianceApi.md#update_screening_configuration) | **PUT** /screening/configurations | Tenant - Screening Configuration -[**update_travel_rule_config**](ComplianceApi.md#update_travel_rule_config) | **PUT** /screening/travel_rule/policy_configuration | Update Travel Rule Configuration - - -# **get_aml_post_screening_policy** -> ScreeningPolicyResponse get_aml_post_screening_policy() - -AML - View Post-Screening Policy - -Get the post-screening policy for AML. - -### Example - - -```python -from fireblocks.models.screening_policy_response import ScreeningPolicyResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # AML - View Post-Screening Policy - api_response = fireblocks.compliance.get_aml_post_screening_policy().result() - print("The response of ComplianceApi->get_aml_post_screening_policy:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ComplianceApi->get_aml_post_screening_policy: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**ScreeningPolicyResponse**](ScreeningPolicyResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Post-screening policy retrieved successfully. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_aml_screening_policy** -> ScreeningProviderRulesConfigurationResponse get_aml_screening_policy() - -AML - View Screening Policy - -Get the screening policy for AML. - -### Example - - -```python -from fireblocks.models.screening_provider_rules_configuration_response import ScreeningProviderRulesConfigurationResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # AML - View Screening Policy - api_response = fireblocks.compliance.get_aml_screening_policy().result() - print("The response of ComplianceApi->get_aml_screening_policy:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ComplianceApi->get_aml_screening_policy: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**ScreeningProviderRulesConfigurationResponse**](ScreeningProviderRulesConfigurationResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Screening policy retrieved successfully. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_legal_entity_by_address** -> AddressRegistryLegalEntity get_legal_entity_by_address(address, asset=asset) - -Look up legal entity by address and asset - -Returns the legal entity (company name, jurisdiction, companyId) for the given blockchain address and optional asset. Both the requester and the owner of the address must be opted in to the address registry. - -### Example - - -```python -from fireblocks.models.address_registry_legal_entity import AddressRegistryLegalEntity -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - address = '0x742d35cc6634c0532925a3b844bc9e7595f0beb0' # str | Blockchain address to look up - asset = 'ETH' # str | Asset ID (e.g. ETH, BTC). Optional. (optional) - - try: - # Look up legal entity by address and asset - api_response = fireblocks.compliance.get_legal_entity_by_address(address, asset=asset).result() - print("The response of ComplianceApi->get_legal_entity_by_address:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ComplianceApi->get_legal_entity_by_address: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **address** | **str**| Blockchain address to look up | - **asset** | **str**| Asset ID (e.g. ETH, BTC). Optional. | [optional] - -### Return type - -[**AddressRegistryLegalEntity**](AddressRegistryLegalEntity.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Legal entity found | * X-Request-ID -
| -**400** | Bad request – missing or invalid address or asset | * X-Request-ID -
| -**403** | Forbidden – requester or address owner not opted in to the address registry (error codes 2140, 2141) | * X-Request-ID -
| -**404** | Address not resolved or entity not found (error code 2142) | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_post_screening_policy** -> ScreeningPolicyResponse get_post_screening_policy() - -Travel Rule - View Post-Screening Policy - -Get the post-screening policy for Travel Rule. - -### Example - - -```python -from fireblocks.models.screening_policy_response import ScreeningPolicyResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Travel Rule - View Post-Screening Policy - api_response = fireblocks.compliance.get_post_screening_policy().result() - print("The response of ComplianceApi->get_post_screening_policy:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ComplianceApi->get_post_screening_policy: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**ScreeningPolicyResponse**](ScreeningPolicyResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Post-screening policy retrieved successfully. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_screening_full_details** -> ComplianceResultFullPayload get_screening_full_details(tx_id) - -Provides all the compliance details for the given screened transaction. - -Provides all the compliance details for the given screened transaction. - -### Example - - -```python -from fireblocks.models.compliance_result_full_payload import ComplianceResultFullPayload -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - tx_id = '550e8400-e29b-41d4-a716-446655440000' # str | Fireblocks transaction ID of the screened transaction - - try: - # Provides all the compliance details for the given screened transaction. - api_response = fireblocks.compliance.get_screening_full_details(tx_id).result() - print("The response of ComplianceApi->get_screening_full_details:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ComplianceApi->get_screening_full_details: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **tx_id** | **str**| Fireblocks transaction ID of the screened transaction | - -### Return type - -[**ComplianceResultFullPayload**](ComplianceResultFullPayload.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A compliance object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_screening_policy** -> ScreeningProviderRulesConfigurationResponse get_screening_policy() - -Travel Rule - View Screening Policy - -Get the screening policy for Travel Rule. - -### Example - - -```python -from fireblocks.models.screening_provider_rules_configuration_response import ScreeningProviderRulesConfigurationResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Travel Rule - View Screening Policy - api_response = fireblocks.compliance.get_screening_policy().result() - print("The response of ComplianceApi->get_screening_policy:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ComplianceApi->get_screening_policy: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**ScreeningProviderRulesConfigurationResponse**](ScreeningProviderRulesConfigurationResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Screening policy retrieved successfully. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **retry_rejected_transaction_bypass_screening_checks** -> CreateTransactionResponse retry_rejected_transaction_bypass_screening_checks(tx_id, idempotency_key=idempotency_key) - -Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, with the API user as the initiator, bypassing the screening policy check - -This endpoint is restricted to Admin API users and is only applicable to outgoing transactions. - -### Example - - -```python -from fireblocks.models.create_transaction_response import CreateTransactionResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - tx_id = '550e8400-e29b-41d4-a716-446655440000' # str | The transaction id that was rejected by screening checks - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, with the API user as the initiator, bypassing the screening policy check - api_response = fireblocks.compliance.retry_rejected_transaction_bypass_screening_checks(tx_id, idempotency_key=idempotency_key).result() - print("The response of ComplianceApi->retry_rejected_transaction_bypass_screening_checks:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ComplianceApi->retry_rejected_transaction_bypass_screening_checks: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **tx_id** | **str**| The transaction id that was rejected by screening checks | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**CreateTransactionResponse**](CreateTransactionResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | A transaction object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_aml_verdict** -> AmlVerdictManualResponse set_aml_verdict(aml_verdict_manual_request, idempotency_key=idempotency_key) - -Set AML Verdict for Manual Screening Verdict. - -Set AML verdict for incoming transactions when Manual Screening Verdict feature is enabled. - -### Example - - -```python -from fireblocks.models.aml_verdict_manual_request import AmlVerdictManualRequest -from fireblocks.models.aml_verdict_manual_response import AmlVerdictManualResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - aml_verdict_manual_request = fireblocks.AmlVerdictManualRequest() # AmlVerdictManualRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Set AML Verdict for Manual Screening Verdict. - api_response = fireblocks.compliance.set_aml_verdict(aml_verdict_manual_request, idempotency_key=idempotency_key).result() - print("The response of ComplianceApi->set_aml_verdict:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ComplianceApi->set_aml_verdict: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **aml_verdict_manual_request** | [**AmlVerdictManualRequest**](AmlVerdictManualRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**AmlVerdictManualResponse**](AmlVerdictManualResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | AML verdict set successfully. | - | -**400** | Feature not enabled for tenant. | * X-Request-ID -
| -**425** | Too Early - transaction not yet in pending screening. | * X-Request-ID -
| -**500** | Internal server error. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_aml_screening_configuration** -> ScreeningConfigurationsRequest update_aml_screening_configuration(idempotency_key=idempotency_key) - -Update AML Configuration - -Updates bypass screening, inbound delay, or outbound delay configurations for AML. - -### Example - - -```python -from fireblocks.models.screening_configurations_request import ScreeningConfigurationsRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Update AML Configuration - api_response = fireblocks.compliance.update_aml_screening_configuration(idempotency_key=idempotency_key).result() - print("The response of ComplianceApi->update_aml_screening_configuration:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ComplianceApi->update_aml_screening_configuration: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**ScreeningConfigurationsRequest**](ScreeningConfigurationsRequest.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Configuration updated successfully. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_screening_configuration** -> ScreeningUpdateConfigurations update_screening_configuration(screening_update_configurations, idempotency_key=idempotency_key) - -Tenant - Screening Configuration - -Update tenant screening configuration. - -### Example - - -```python -from fireblocks.models.screening_update_configurations import ScreeningUpdateConfigurations -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - screening_update_configurations = fireblocks.ScreeningUpdateConfigurations() # ScreeningUpdateConfigurations | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Tenant - Screening Configuration - api_response = fireblocks.compliance.update_screening_configuration(screening_update_configurations, idempotency_key=idempotency_key).result() - print("The response of ComplianceApi->update_screening_configuration:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ComplianceApi->update_screening_configuration: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **screening_update_configurations** | [**ScreeningUpdateConfigurations**](ScreeningUpdateConfigurations.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**ScreeningUpdateConfigurations**](ScreeningUpdateConfigurations.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Tenant Screening configuration updated successfully. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_travel_rule_config** -> ScreeningConfigurationsRequest update_travel_rule_config(idempotency_key=idempotency_key) - -Update Travel Rule Configuration - -Updates bypass screening, inbound delay, or outbound delay configurations for Travel Rule. - -### Example - - -```python -from fireblocks.models.screening_configurations_request import ScreeningConfigurationsRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Update Travel Rule Configuration - api_response = fireblocks.compliance.update_travel_rule_config(idempotency_key=idempotency_key).result() - print("The response of ComplianceApi->update_travel_rule_config:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ComplianceApi->update_travel_rule_config: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**ScreeningConfigurationsRequest**](ScreeningConfigurationsRequest.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Configuration updated successfully. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLkNvbXBsaWFuY2VBcGkKCkFsbCBVUklzIGFyZSByZWxhdGl2ZSB0byAqaHR0cHM6Ly9hcGkuZmlyZWJsb2Nrcy5pby92MSoKCk1ldGhvZCB8IEhUVFAgcmVxdWVzdCB8IERlc2NyaXB0aW9uCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQpbKipnZXRfYW1sX3Bvc3Rfc2NyZWVuaW5nX3BvbGljeSoqXShDb21wbGlhbmNlQXBpLm1kI2dldF9hbWxfcG9zdF9zY3JlZW5pbmdfcG9saWN5KSB8ICoqR0VUKiogL3NjcmVlbmluZy9hbWwvcG9zdF9zY3JlZW5pbmdfcG9saWN5IHwgQU1MIC0gVmlldyBQb3N0LVNjcmVlbmluZyBQb2xpY3kKWyoqZ2V0X2FtbF9zY3JlZW5pbmdfcG9saWN5KipdKENvbXBsaWFuY2VBcGkubWQjZ2V0X2FtbF9zY3JlZW5pbmdfcG9saWN5KSB8ICoqR0VUKiogL3NjcmVlbmluZy9hbWwvc2NyZWVuaW5nX3BvbGljeSB8IEFNTCAtIFZpZXcgU2NyZWVuaW5nIFBvbGljeQpbKipnZXRfbGVnYWxfZW50aXR5X2J5X2FkZHJlc3MqKl0oQ29tcGxpYW5jZUFwaS5tZCNnZXRfbGVnYWxfZW50aXR5X2J5X2FkZHJlc3MpIHwgKipHRVQqKiAvYWRkcmVzc19yZWdpc3RyeS9sZWdhbF9lbnRpdHkgfCBMb29rIHVwIGxlZ2FsIGVudGl0eSBieSBhZGRyZXNzIGFuZCBhc3NldApbKipnZXRfcG9zdF9zY3JlZW5pbmdfcG9saWN5KipdKENvbXBsaWFuY2VBcGkubWQjZ2V0X3Bvc3Rfc2NyZWVuaW5nX3BvbGljeSkgfCAqKkdFVCoqIC9zY3JlZW5pbmcvdHJhdmVsX3J1bGUvcG9zdF9zY3JlZW5pbmdfcG9saWN5IHwgVHJhdmVsIFJ1bGUgLSBWaWV3IFBvc3QtU2NyZWVuaW5nIFBvbGljeQpbKipnZXRfc2NyZWVuaW5nX2Z1bGxfZGV0YWlscyoqXShDb21wbGlhbmNlQXBpLm1kI2dldF9zY3JlZW5pbmdfZnVsbF9kZXRhaWxzKSB8ICoqR0VUKiogL3NjcmVlbmluZy90cmFuc2FjdGlvbi97dHhJZH0gfCBQcm92aWRlcyBhbGwgdGhlIGNvbXBsaWFuY2UgZGV0YWlscyBmb3IgdGhlIGdpdmVuIHNjcmVlbmVkIHRyYW5zYWN0aW9uLgpbKipnZXRfc2NyZWVuaW5nX3BvbGljeSoqXShDb21wbGlhbmNlQXBpLm1kI2dldF9zY3JlZW5pbmdfcG9saWN5KSB8ICoqR0VUKiogL3NjcmVlbmluZy90cmF2ZWxfcnVsZS9zY3JlZW5pbmdfcG9saWN5IHwgVHJhdmVsIFJ1bGUgLSBWaWV3IFNjcmVlbmluZyBQb2xpY3kKWyoqcmV0cnlfcmVqZWN0ZWRfdHJhbnNhY3Rpb25fYnlwYXNzX3NjcmVlbmluZ19jaGVja3MqKl0oQ29tcGxpYW5jZUFwaS5tZCNyZXRyeV9yZWplY3RlZF90cmFuc2FjdGlvbl9ieXBhc3Nfc2NyZWVuaW5nX2NoZWNrcykgfCAqKlBPU1QqKiAvc2NyZWVuaW5nL3RyYW5zYWN0aW9uL3t0eElkfS9ieXBhc3Nfc2NyZWVuaW5nX3BvbGljeSB8IENhbGxpbmcgdGhlIFwmcXVvdDtCeXBhc3MgU2NyZWVuaW5nIFBvbGljeVwmcXVvdDsgQVBJIGVuZHBvaW50IHRyaWdnZXJzIGEgbmV3IHRyYW5zYWN0aW9uLCB3aXRoIHRoZSBBUEkgdXNlciBhcyB0aGUgaW5pdGlhdG9yLCBieXBhc3NpbmcgdGhlIHNjcmVlbmluZyBwb2xpY3kgY2hlY2sKWyoqc2V0X2FtbF92ZXJkaWN0KipdKENvbXBsaWFuY2VBcGkubWQjc2V0X2FtbF92ZXJkaWN0KSB8ICoqUE9TVCoqIC9zY3JlZW5pbmcvYW1sL3ZlcmRpY3QvbWFudWFsIHwgU2V0IEFNTCBWZXJkaWN0IGZvciBNYW51YWwgU2NyZWVuaW5nIFZlcmRpY3QuClsqKnVwZGF0ZV9hbWxfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb24qKl0oQ29tcGxpYW5jZUFwaS5tZCN1cGRhdGVfYW1sX3NjcmVlbmluZ19jb25maWd1cmF0aW9uKSB8ICoqUFVUKiogL3NjcmVlbmluZy9hbWwvcG9saWN5X2NvbmZpZ3VyYXRpb24gfCBVcGRhdGUgQU1MIENvbmZpZ3VyYXRpb24KWyoqdXBkYXRlX3NjcmVlbmluZ19jb25maWd1cmF0aW9uKipdKENvbXBsaWFuY2VBcGkubWQjdXBkYXRlX3NjcmVlbmluZ19jb25maWd1cmF0aW9uKSB8ICoqUFVUKiogL3NjcmVlbmluZy9jb25maWd1cmF0aW9ucyB8IFRlbmFudCAtIFNjcmVlbmluZyBDb25maWd1cmF0aW9uClsqKnVwZGF0ZV90cmF2ZWxfcnVsZV9jb25maWcqKl0oQ29tcGxpYW5jZUFwaS5tZCN1cGRhdGVfdHJhdmVsX3J1bGVfY29uZmlnKSB8ICoqUFVUKiogL3NjcmVlbmluZy90cmF2ZWxfcnVsZS9wb2xpY3lfY29uZmlndXJhdGlvbiB8IFVwZGF0ZSBUcmF2ZWwgUnVsZSBDb25maWd1cmF0aW9uCgoKIyAqKmdldF9hbWxfcG9zdF9zY3JlZW5pbmdfcG9saWN5KioKPiBTY3JlZW5pbmdQb2xpY3lSZXNwb25zZSBnZXRfYW1sX3Bvc3Rfc2NyZWVuaW5nX3BvbGljeSgpCgpBTUwgLSBWaWV3IFBvc3QtU2NyZWVuaW5nIFBvbGljeQoKR2V0IHRoZSBwb3N0LXNjcmVlbmluZyBwb2xpY3kgZm9yIEFNTC4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3BvbGljeV9yZXNwb25zZSBpbXBvcnQgU2NyZWVuaW5nUG9saWN5UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgoKICAgIHRyeToKICAgICAgICAjIEFNTCAtIFZpZXcgUG9zdC1TY3JlZW5pbmcgUG9saWN5CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5jb21wbGlhbmNlLmdldF9hbWxfcG9zdF9zY3JlZW5pbmdfcG9saWN5KCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIENvbXBsaWFuY2VBcGktPmdldF9hbWxfcG9zdF9zY3JlZW5pbmdfcG9saWN5OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIENvbXBsaWFuY2VBcGktPmdldF9hbWxfcG9zdF9zY3JlZW5pbmdfcG9saWN5OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKVGhpcyBlbmRwb2ludCBkb2VzIG5vdCBuZWVkIGFueSBwYXJhbWV0ZXIuCgojIyMgUmV0dXJuIHR5cGUKClsqKlNjcmVlbmluZ1BvbGljeVJlc3BvbnNlKipdKFNjcmVlbmluZ1BvbGljeVJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgUG9zdC1zY3JlZW5pbmcgcG9saWN5IHJldHJpZXZlZCBzdWNjZXNzZnVsbHkuIHwgIC0gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9hbWxfc2NyZWVuaW5nX3BvbGljeSoqCj4gU2NyZWVuaW5nUHJvdmlkZXJSdWxlc0NvbmZpZ3VyYXRpb25SZXNwb25zZSBnZXRfYW1sX3NjcmVlbmluZ19wb2xpY3koKQoKQU1MIC0gVmlldyBTY3JlZW5pbmcgUG9saWN5CgpHZXQgdGhlIHNjcmVlbmluZyBwb2xpY3kgZm9yIEFNTC4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3Byb3ZpZGVyX3J1bGVzX2NvbmZpZ3VyYXRpb25fcmVzcG9uc2UgaW1wb3J0IFNjcmVlbmluZ1Byb3ZpZGVyUnVsZXNDb25maWd1cmF0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgoKICAgIHRyeToKICAgICAgICAjIEFNTCAtIFZpZXcgU2NyZWVuaW5nIFBvbGljeQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuY29tcGxpYW5jZS5nZXRfYW1sX3NjcmVlbmluZ19wb2xpY3koKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgQ29tcGxpYW5jZUFwaS0+Z2V0X2FtbF9zY3JlZW5pbmdfcG9saWN5OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIENvbXBsaWFuY2VBcGktPmdldF9hbWxfc2NyZWVuaW5nX3BvbGljeTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKClRoaXMgZW5kcG9pbnQgZG9lcyBub3QgbmVlZCBhbnkgcGFyYW1ldGVyLgoKIyMjIFJldHVybiB0eXBlCgpbKipTY3JlZW5pbmdQcm92aWRlclJ1bGVzQ29uZmlndXJhdGlvblJlc3BvbnNlKipdKFNjcmVlbmluZ1Byb3ZpZGVyUnVsZXNDb25maWd1cmF0aW9uUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTY3JlZW5pbmcgcG9saWN5IHJldHJpZXZlZCBzdWNjZXNzZnVsbHkuIHwgIC0gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9sZWdhbF9lbnRpdHlfYnlfYWRkcmVzcyoqCj4gQWRkcmVzc1JlZ2lzdHJ5TGVnYWxFbnRpdHkgZ2V0X2xlZ2FsX2VudGl0eV9ieV9hZGRyZXNzKGFkZHJlc3MsIGFzc2V0PWFzc2V0KQoKTG9vayB1cCBsZWdhbCBlbnRpdHkgYnkgYWRkcmVzcyBhbmQgYXNzZXQKClJldHVybnMgdGhlIGxlZ2FsIGVudGl0eSAoY29tcGFueSBuYW1lLCBqdXJpc2RpY3Rpb24sIGNvbXBhbnlJZCkgZm9yIHRoZSBnaXZlbiBibG9ja2NoYWluIGFkZHJlc3MgYW5kIG9wdGlvbmFsIGFzc2V0LiBCb3RoIHRoZSByZXF1ZXN0ZXIgYW5kIHRoZSBvd25lciBvZiB0aGUgYWRkcmVzcyBtdXN0IGJlIG9wdGVkIGluIHRvIHRoZSBhZGRyZXNzIHJlZ2lzdHJ5LgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hZGRyZXNzX3JlZ2lzdHJ5X2xlZ2FsX2VudGl0eSBpbXBvcnQgQWRkcmVzc1JlZ2lzdHJ5TGVnYWxFbnRpdHkKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgYWRkcmVzcyA9ICcweDc0MmQzNWNjNjYzNGMwNTMyOTI1YTNiODQ0YmM5ZTc1OTVmMGJlYjAnICMgc3RyIHwgQmxvY2tjaGFpbiBhZGRyZXNzIHRvIGxvb2sgdXAKICAgIGFzc2V0ID0gJ0VUSCcgIyBzdHIgfCBBc3NldCBJRCAoZS5nLiBFVEgsIEJUQykuIE9wdGlvbmFsLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgTG9vayB1cCBsZWdhbCBlbnRpdHkgYnkgYWRkcmVzcyBhbmQgYXNzZXQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmNvbXBsaWFuY2UuZ2V0X2xlZ2FsX2VudGl0eV9ieV9hZGRyZXNzKGFkZHJlc3MsIGFzc2V0PWFzc2V0KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgQ29tcGxpYW5jZUFwaS0+Z2V0X2xlZ2FsX2VudGl0eV9ieV9hZGRyZXNzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIENvbXBsaWFuY2VBcGktPmdldF9sZWdhbF9lbnRpdHlfYnlfYWRkcmVzczogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqYWRkcmVzcyoqIHwgKipzdHIqKnwgQmxvY2tjaGFpbiBhZGRyZXNzIHRvIGxvb2sgdXAgfCAKICoqYXNzZXQqKiB8ICoqc3RyKip8IEFzc2V0IElEIChlLmcuIEVUSCwgQlRDKS4gT3B0aW9uYWwuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqQWRkcmVzc1JlZ2lzdHJ5TGVnYWxFbnRpdHkqKl0oQWRkcmVzc1JlZ2lzdHJ5TGVnYWxFbnRpdHkubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBMZWdhbCBlbnRpdHkgZm91bmQgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMCoqIHwgQmFkIHJlcXVlc3Qg4oCTIG1pc3Npbmcgb3IgaW52YWxpZCBhZGRyZXNzIG9yIGFzc2V0IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDMqKiB8IEZvcmJpZGRlbiDigJMgcmVxdWVzdGVyIG9yIGFkZHJlc3Mgb3duZXIgbm90IG9wdGVkIGluIHRvIHRoZSBhZGRyZXNzIHJlZ2lzdHJ5IChlcnJvciBjb2RlcyAyMTQwLCAyMTQxKSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDA0KiogfCBBZGRyZXNzIG5vdCByZXNvbHZlZCBvciBlbnRpdHkgbm90IGZvdW5kIChlcnJvciBjb2RlIDIxNDIpIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfcG9zdF9zY3JlZW5pbmdfcG9saWN5KioKPiBTY3JlZW5pbmdQb2xpY3lSZXNwb25zZSBnZXRfcG9zdF9zY3JlZW5pbmdfcG9saWN5KCkKClRyYXZlbCBSdWxlIC0gVmlldyBQb3N0LVNjcmVlbmluZyBQb2xpY3kKCkdldCB0aGUgcG9zdC1zY3JlZW5pbmcgcG9saWN5IGZvciBUcmF2ZWwgUnVsZS4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3BvbGljeV9yZXNwb25zZSBpbXBvcnQgU2NyZWVuaW5nUG9saWN5UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgoKICAgIHRyeToKICAgICAgICAjIFRyYXZlbCBSdWxlIC0gVmlldyBQb3N0LVNjcmVlbmluZyBQb2xpY3kKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmNvbXBsaWFuY2UuZ2V0X3Bvc3Rfc2NyZWVuaW5nX3BvbGljeSgpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBDb21wbGlhbmNlQXBpLT5nZXRfcG9zdF9zY3JlZW5pbmdfcG9saWN5OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIENvbXBsaWFuY2VBcGktPmdldF9wb3N0X3NjcmVlbmluZ19wb2xpY3k6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgpUaGlzIGVuZHBvaW50IGRvZXMgbm90IG5lZWQgYW55IHBhcmFtZXRlci4KCiMjIyBSZXR1cm4gdHlwZQoKWyoqU2NyZWVuaW5nUG9saWN5UmVzcG9uc2UqKl0oU2NyZWVuaW5nUG9saWN5UmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBQb3N0LXNjcmVlbmluZyBwb2xpY3kgcmV0cmlldmVkIHN1Y2Nlc3NmdWxseS4gfCAgLSAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X3NjcmVlbmluZ19mdWxsX2RldGFpbHMqKgo+IENvbXBsaWFuY2VSZXN1bHRGdWxsUGF5bG9hZCBnZXRfc2NyZWVuaW5nX2Z1bGxfZGV0YWlscyh0eF9pZCkKClByb3ZpZGVzIGFsbCB0aGUgY29tcGxpYW5jZSBkZXRhaWxzIGZvciB0aGUgZ2l2ZW4gc2NyZWVuZWQgdHJhbnNhY3Rpb24uCgpQcm92aWRlcyBhbGwgdGhlIGNvbXBsaWFuY2UgZGV0YWlscyBmb3IgdGhlIGdpdmVuIHNjcmVlbmVkIHRyYW5zYWN0aW9uLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb21wbGlhbmNlX3Jlc3VsdF9mdWxsX3BheWxvYWQgaW1wb3J0IENvbXBsaWFuY2VSZXN1bHRGdWxsUGF5bG9hZApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB0eF9pZCA9ICc1NTBlODQwMC1lMjliLTQxZDQtYTcxNi00NDY2NTU0NDAwMDAnICMgc3RyIHwgRmlyZWJsb2NrcyB0cmFuc2FjdGlvbiBJRCBvZiB0aGUgc2NyZWVuZWQgdHJhbnNhY3Rpb24KCiAgICB0cnk6CiAgICAgICAgIyBQcm92aWRlcyBhbGwgdGhlIGNvbXBsaWFuY2UgZGV0YWlscyBmb3IgdGhlIGdpdmVuIHNjcmVlbmVkIHRyYW5zYWN0aW9uLgogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuY29tcGxpYW5jZS5nZXRfc2NyZWVuaW5nX2Z1bGxfZGV0YWlscyh0eF9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIENvbXBsaWFuY2VBcGktPmdldF9zY3JlZW5pbmdfZnVsbF9kZXRhaWxzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIENvbXBsaWFuY2VBcGktPmdldF9zY3JlZW5pbmdfZnVsbF9kZXRhaWxzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip0eF9pZCoqIHwgKipzdHIqKnwgRmlyZWJsb2NrcyB0cmFuc2FjdGlvbiBJRCBvZiB0aGUgc2NyZWVuZWQgdHJhbnNhY3Rpb24gfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqQ29tcGxpYW5jZVJlc3VsdEZ1bGxQYXlsb2FkKipdKENvbXBsaWFuY2VSZXN1bHRGdWxsUGF5bG9hZC5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgY29tcGxpYW5jZSBvYmplY3QgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9zY3JlZW5pbmdfcG9saWN5KioKPiBTY3JlZW5pbmdQcm92aWRlclJ1bGVzQ29uZmlndXJhdGlvblJlc3BvbnNlIGdldF9zY3JlZW5pbmdfcG9saWN5KCkKClRyYXZlbCBSdWxlIC0gVmlldyBTY3JlZW5pbmcgUG9saWN5CgpHZXQgdGhlIHNjcmVlbmluZyBwb2xpY3kgZm9yIFRyYXZlbCBSdWxlLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfcHJvdmlkZXJfcnVsZXNfY29uZmlndXJhdGlvbl9yZXNwb25zZSBpbXBvcnQgU2NyZWVuaW5nUHJvdmlkZXJSdWxlc0NvbmZpZ3VyYXRpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CgogICAgdHJ5OgogICAgICAgICMgVHJhdmVsIFJ1bGUgLSBWaWV3IFNjcmVlbmluZyBQb2xpY3kKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmNvbXBsaWFuY2UuZ2V0X3NjcmVlbmluZ19wb2xpY3koKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgQ29tcGxpYW5jZUFwaS0+Z2V0X3NjcmVlbmluZ19wb2xpY3k6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQ29tcGxpYW5jZUFwaS0+Z2V0X3NjcmVlbmluZ19wb2xpY3k6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgpUaGlzIGVuZHBvaW50IGRvZXMgbm90IG5lZWQgYW55IHBhcmFtZXRlci4KCiMjIyBSZXR1cm4gdHlwZQoKWyoqU2NyZWVuaW5nUHJvdmlkZXJSdWxlc0NvbmZpZ3VyYXRpb25SZXNwb25zZSoqXShTY3JlZW5pbmdQcm92aWRlclJ1bGVzQ29uZmlndXJhdGlvblJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgU2NyZWVuaW5nIHBvbGljeSByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5LiB8ICAtICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipyZXRyeV9yZWplY3RlZF90cmFuc2FjdGlvbl9ieXBhc3Nfc2NyZWVuaW5nX2NoZWNrcyoqCj4gQ3JlYXRlVHJhbnNhY3Rpb25SZXNwb25zZSByZXRyeV9yZWplY3RlZF90cmFuc2FjdGlvbl9ieXBhc3Nfc2NyZWVuaW5nX2NoZWNrcyh0eF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCkNhbGxpbmcgdGhlIFwiQnlwYXNzIFNjcmVlbmluZyBQb2xpY3lcIiBBUEkgZW5kcG9pbnQgdHJpZ2dlcnMgYSBuZXcgdHJhbnNhY3Rpb24sIHdpdGggdGhlIEFQSSB1c2VyIGFzIHRoZSBpbml0aWF0b3IsIGJ5cGFzc2luZyB0aGUgc2NyZWVuaW5nIHBvbGljeSBjaGVjawoKVGhpcyBlbmRwb2ludCBpcyByZXN0cmljdGVkIHRvIEFkbWluIEFQSSB1c2VycyBhbmQgaXMgb25seSBhcHBsaWNhYmxlIHRvIG91dGdvaW5nIHRyYW5zYWN0aW9ucy4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3RyYW5zYWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBDcmVhdGVUcmFuc2FjdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHR4X2lkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCcgIyBzdHIgfCBUaGUgdHJhbnNhY3Rpb24gaWQgdGhhdCB3YXMgcmVqZWN0ZWQgYnkgc2NyZWVuaW5nIGNoZWNrcwogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIENhbGxpbmcgdGhlIFwiQnlwYXNzIFNjcmVlbmluZyBQb2xpY3lcIiBBUEkgZW5kcG9pbnQgdHJpZ2dlcnMgYSBuZXcgdHJhbnNhY3Rpb24sIHdpdGggdGhlIEFQSSB1c2VyIGFzIHRoZSBpbml0aWF0b3IsIGJ5cGFzc2luZyB0aGUgc2NyZWVuaW5nIHBvbGljeSBjaGVjawogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuY29tcGxpYW5jZS5yZXRyeV9yZWplY3RlZF90cmFuc2FjdGlvbl9ieXBhc3Nfc2NyZWVuaW5nX2NoZWNrcyh0eF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIENvbXBsaWFuY2VBcGktPnJldHJ5X3JlamVjdGVkX3RyYW5zYWN0aW9uX2J5cGFzc19zY3JlZW5pbmdfY2hlY2tzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIENvbXBsaWFuY2VBcGktPnJldHJ5X3JlamVjdGVkX3RyYW5zYWN0aW9uX2J5cGFzc19zY3JlZW5pbmdfY2hlY2tzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip0eF9pZCoqIHwgKipzdHIqKnwgVGhlIHRyYW5zYWN0aW9uIGlkIHRoYXQgd2FzIHJlamVjdGVkIGJ5IHNjcmVlbmluZyBjaGVja3MgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqQ3JlYXRlVHJhbnNhY3Rpb25SZXNwb25zZSoqXShDcmVhdGVUcmFuc2FjdGlvblJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgQSB0cmFuc2FjdGlvbiBvYmplY3QgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnNldF9hbWxfdmVyZGljdCoqCj4gQW1sVmVyZGljdE1hbnVhbFJlc3BvbnNlIHNldF9hbWxfdmVyZGljdChhbWxfdmVyZGljdF9tYW51YWxfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKClNldCBBTUwgVmVyZGljdCBmb3IgTWFudWFsIFNjcmVlbmluZyBWZXJkaWN0LgoKU2V0IEFNTCB2ZXJkaWN0IGZvciBpbmNvbWluZyB0cmFuc2FjdGlvbnMgd2hlbiBNYW51YWwgU2NyZWVuaW5nIFZlcmRpY3QgZmVhdHVyZSBpcyBlbmFibGVkLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfdmVyZGljdF9tYW51YWxfcmVxdWVzdCBpbXBvcnQgQW1sVmVyZGljdE1hbnVhbFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfdmVyZGljdF9tYW51YWxfcmVzcG9uc2UgaW1wb3J0IEFtbFZlcmRpY3RNYW51YWxSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBhbWxfdmVyZGljdF9tYW51YWxfcmVxdWVzdCA9IGZpcmVibG9ja3MuQW1sVmVyZGljdE1hbnVhbFJlcXVlc3QoKSAjIEFtbFZlcmRpY3RNYW51YWxSZXF1ZXN0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgU2V0IEFNTCBWZXJkaWN0IGZvciBNYW51YWwgU2NyZWVuaW5nIFZlcmRpY3QuCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5jb21wbGlhbmNlLnNldF9hbWxfdmVyZGljdChhbWxfdmVyZGljdF9tYW51YWxfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIENvbXBsaWFuY2VBcGktPnNldF9hbWxfdmVyZGljdDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBDb21wbGlhbmNlQXBpLT5zZXRfYW1sX3ZlcmRpY3Q6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmFtbF92ZXJkaWN0X21hbnVhbF9yZXF1ZXN0KiogfCBbKipBbWxWZXJkaWN0TWFudWFsUmVxdWVzdCoqXShBbWxWZXJkaWN0TWFudWFsUmVxdWVzdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipBbWxWZXJkaWN0TWFudWFsUmVzcG9uc2UqKl0oQW1sVmVyZGljdE1hbnVhbFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBTUwgdmVyZGljdCBzZXQgc3VjY2Vzc2Z1bGx5LiB8ICAtICB8CioqNDAwKiogfCBGZWF0dXJlIG5vdCBlbmFibGVkIGZvciB0ZW5hbnQuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MjUqKiB8IFRvbyBFYXJseSAtIHRyYW5zYWN0aW9uIG5vdCB5ZXQgaW4gcGVuZGluZyBzY3JlZW5pbmcuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio1MDAqKiB8IEludGVybmFsIHNlcnZlciBlcnJvci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnVwZGF0ZV9hbWxfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb24qKgo+IFNjcmVlbmluZ0NvbmZpZ3VyYXRpb25zUmVxdWVzdCB1cGRhdGVfYW1sX3NjcmVlbmluZ19jb25maWd1cmF0aW9uKGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpVcGRhdGUgQU1MIENvbmZpZ3VyYXRpb24KClVwZGF0ZXMgYnlwYXNzIHNjcmVlbmluZywgaW5ib3VuZCBkZWxheSwgb3Igb3V0Ym91bmQgZGVsYXkgY29uZmlndXJhdGlvbnMgZm9yIEFNTC4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb25zX3JlcXVlc3QgaW1wb3J0IFNjcmVlbmluZ0NvbmZpZ3VyYXRpb25zUmVxdWVzdApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgVXBkYXRlIEFNTCBDb25maWd1cmF0aW9uCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5jb21wbGlhbmNlLnVwZGF0ZV9hbWxfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb24oaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIENvbXBsaWFuY2VBcGktPnVwZGF0ZV9hbWxfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb246XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQ29tcGxpYW5jZUFwaS0+dXBkYXRlX2FtbF9zY3JlZW5pbmdfY29uZmlndXJhdGlvbjogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqU2NyZWVuaW5nQ29uZmlndXJhdGlvbnNSZXF1ZXN0KipdKFNjcmVlbmluZ0NvbmZpZ3VyYXRpb25zUmVxdWVzdC5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IENvbmZpZ3VyYXRpb24gdXBkYXRlZCBzdWNjZXNzZnVsbHkuIHwgIC0gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnVwZGF0ZV9zY3JlZW5pbmdfY29uZmlndXJhdGlvbioqCj4gU2NyZWVuaW5nVXBkYXRlQ29uZmlndXJhdGlvbnMgdXBkYXRlX3NjcmVlbmluZ19jb25maWd1cmF0aW9uKHNjcmVlbmluZ191cGRhdGVfY29uZmlndXJhdGlvbnMsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpUZW5hbnQgLSBTY3JlZW5pbmcgQ29uZmlndXJhdGlvbgoKVXBkYXRlIHRlbmFudCBzY3JlZW5pbmcgY29uZmlndXJhdGlvbi4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3VwZGF0ZV9jb25maWd1cmF0aW9ucyBpbXBvcnQgU2NyZWVuaW5nVXBkYXRlQ29uZmlndXJhdGlvbnMKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgc2NyZWVuaW5nX3VwZGF0ZV9jb25maWd1cmF0aW9ucyA9IGZpcmVibG9ja3MuU2NyZWVuaW5nVXBkYXRlQ29uZmlndXJhdGlvbnMoKSAjIFNjcmVlbmluZ1VwZGF0ZUNvbmZpZ3VyYXRpb25zIHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgVGVuYW50IC0gU2NyZWVuaW5nIENvbmZpZ3VyYXRpb24KICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmNvbXBsaWFuY2UudXBkYXRlX3NjcmVlbmluZ19jb25maWd1cmF0aW9uKHNjcmVlbmluZ191cGRhdGVfY29uZmlndXJhdGlvbnMsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBDb21wbGlhbmNlQXBpLT51cGRhdGVfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb246XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQ29tcGxpYW5jZUFwaS0+dXBkYXRlX3NjcmVlbmluZ19jb25maWd1cmF0aW9uOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipzY3JlZW5pbmdfdXBkYXRlX2NvbmZpZ3VyYXRpb25zKiogfCBbKipTY3JlZW5pbmdVcGRhdGVDb25maWd1cmF0aW9ucyoqXShTY3JlZW5pbmdVcGRhdGVDb25maWd1cmF0aW9ucy5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipTY3JlZW5pbmdVcGRhdGVDb25maWd1cmF0aW9ucyoqXShTY3JlZW5pbmdVcGRhdGVDb25maWd1cmF0aW9ucy5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgVGVuYW50IFNjcmVlbmluZyBjb25maWd1cmF0aW9uIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5LiB8ICAtICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKip1cGRhdGVfdHJhdmVsX3J1bGVfY29uZmlnKioKPiBTY3JlZW5pbmdDb25maWd1cmF0aW9uc1JlcXVlc3QgdXBkYXRlX3RyYXZlbF9ydWxlX2NvbmZpZyhpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKVXBkYXRlIFRyYXZlbCBSdWxlIENvbmZpZ3VyYXRpb24KClVwZGF0ZXMgYnlwYXNzIHNjcmVlbmluZywgaW5ib3VuZCBkZWxheSwgb3Igb3V0Ym91bmQgZGVsYXkgY29uZmlndXJhdGlvbnMgZm9yIFRyYXZlbCBSdWxlLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfY29uZmlndXJhdGlvbnNfcmVxdWVzdCBpbXBvcnQgU2NyZWVuaW5nQ29uZmlndXJhdGlvbnNSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBVcGRhdGUgVHJhdmVsIFJ1bGUgQ29uZmlndXJhdGlvbgogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuY29tcGxpYW5jZS51cGRhdGVfdHJhdmVsX3J1bGVfY29uZmlnKGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBDb21wbGlhbmNlQXBpLT51cGRhdGVfdHJhdmVsX3J1bGVfY29uZmlnOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIENvbXBsaWFuY2VBcGktPnVwZGF0ZV90cmF2ZWxfcnVsZV9jb25maWc6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlNjcmVlbmluZ0NvbmZpZ3VyYXRpb25zUmVxdWVzdCoqXShTY3JlZW5pbmdDb25maWd1cmF0aW9uc1JlcXVlc3QubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBDb25maWd1cmF0aW9uIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5LiB8ICAtICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCg== \ No newline at end of file diff --git a/docs/ComplianceResultFullPayload.md b/docs/ComplianceResultFullPayload.md index eddd4314..a28862ed 100644 --- a/docs/ComplianceResultFullPayload.md +++ b/docs/ComplianceResultFullPayload.md @@ -1,36 +1 @@ -# ComplianceResultFullPayload - -The result of the Compliance AML/Travel Rule screening. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**aml** | [**ComplianceScreeningResultFullPayload**](ComplianceScreeningResultFullPayload.md) | | [optional] -**tr** | [**ComplianceScreeningResultFullPayload**](ComplianceScreeningResultFullPayload.md) | | [optional] -**aml_list** | [**List[ComplianceScreeningResultFullPayload]**](ComplianceScreeningResultFullPayload.md) | The list of all results of the AML screening. | [optional] -**status** | [**ComplianceResultStatusesEnum**](ComplianceResultStatusesEnum.md) | | [optional] -**aml_registration** | [**AmlRegistrationResultFullPayload**](AmlRegistrationResultFullPayload.md) | | [optional] -**trlink_registration** | [**TRLinkRegistrationResultFullPayload**](TRLinkRegistrationResultFullPayload.md) | | [optional] -**trlink_destinations** | [**List[TRLinkResultFullPayload]**](TRLinkResultFullPayload.md) | The list of TRLink destination screening results. | [optional] - -## Example - -```python -from fireblocks.models.compliance_result_full_payload import ComplianceResultFullPayload - -# TODO update the JSON string below -json = "{}" -# create an instance of ComplianceResultFullPayload from a JSON string -compliance_result_full_payload_instance = ComplianceResultFullPayload.from_json(json) -# print the JSON string representation of the object -print(ComplianceResultFullPayload.to_json()) - -# convert the object into a dict -compliance_result_full_payload_dict = compliance_result_full_payload_instance.to_dict() -# create an instance of ComplianceResultFullPayload from a dict -compliance_result_full_payload_from_dict = ComplianceResultFullPayload.from_dict(compliance_result_full_payload_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb21wbGlhbmNlUmVzdWx0RnVsbFBheWxvYWQKClRoZSByZXN1bHQgb2YgdGhlIENvbXBsaWFuY2UgQU1ML1RyYXZlbCBSdWxlIHNjcmVlbmluZy4KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphbWwqKiB8IFsqKkNvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHRGdWxsUGF5bG9hZCoqXShDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0RnVsbFBheWxvYWQubWQpIHwgIHwgW29wdGlvbmFsXSAKKip0cioqIHwgWyoqQ29tcGxpYW5jZVNjcmVlbmluZ1Jlc3VsdEZ1bGxQYXlsb2FkKipdKENvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHRGdWxsUGF5bG9hZC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmFtbF9saXN0KiogfCBbKipMaXN0W0NvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHRGdWxsUGF5bG9hZF0qKl0oQ29tcGxpYW5jZVNjcmVlbmluZ1Jlc3VsdEZ1bGxQYXlsb2FkLm1kKSB8IFRoZSBsaXN0IG9mIGFsbCByZXN1bHRzIG9mIHRoZSBBTUwgc2NyZWVuaW5nLiB8IFtvcHRpb25hbF0gCioqc3RhdHVzKiogfCBbKipDb21wbGlhbmNlUmVzdWx0U3RhdHVzZXNFbnVtKipdKENvbXBsaWFuY2VSZXN1bHRTdGF0dXNlc0VudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKiphbWxfcmVnaXN0cmF0aW9uKiogfCBbKipBbWxSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZCoqXShBbWxSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnRybGlua19yZWdpc3RyYXRpb24qKiB8IFsqKlRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkKipdKFRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqdHJsaW5rX2Rlc3RpbmF0aW9ucyoqIHwgWyoqTGlzdFtUUkxpbmtSZXN1bHRGdWxsUGF5bG9hZF0qKl0oVFJMaW5rUmVzdWx0RnVsbFBheWxvYWQubWQpIHwgVGhlIGxpc3Qgb2YgVFJMaW5rIGRlc3RpbmF0aW9uIHNjcmVlbmluZyByZXN1bHRzLiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb21wbGlhbmNlX3Jlc3VsdF9mdWxsX3BheWxvYWQgaW1wb3J0IENvbXBsaWFuY2VSZXN1bHRGdWxsUGF5bG9hZAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29tcGxpYW5jZVJlc3VsdEZ1bGxQYXlsb2FkIGZyb20gYSBKU09OIHN0cmluZwpjb21wbGlhbmNlX3Jlc3VsdF9mdWxsX3BheWxvYWRfaW5zdGFuY2UgPSBDb21wbGlhbmNlUmVzdWx0RnVsbFBheWxvYWQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29tcGxpYW5jZVJlc3VsdEZ1bGxQYXlsb2FkLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNvbXBsaWFuY2VfcmVzdWx0X2Z1bGxfcGF5bG9hZF9kaWN0ID0gY29tcGxpYW5jZV9yZXN1bHRfZnVsbF9wYXlsb2FkX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb21wbGlhbmNlUmVzdWx0RnVsbFBheWxvYWQgZnJvbSBhIGRpY3QKY29tcGxpYW5jZV9yZXN1bHRfZnVsbF9wYXlsb2FkX2Zyb21fZGljdCA9IENvbXBsaWFuY2VSZXN1bHRGdWxsUGF5bG9hZC5mcm9tX2RpY3QoY29tcGxpYW5jZV9yZXN1bHRfZnVsbF9wYXlsb2FkX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ComplianceResultStatusesEnum.md b/docs/ComplianceResultStatusesEnum.md index df1aa93d..4a503b6f 100644 --- a/docs/ComplianceResultStatusesEnum.md +++ b/docs/ComplianceResultStatusesEnum.md @@ -1,105 +1 @@ -# ComplianceResultStatusesEnum - -Status of compliance result screening - -## Enum - -* `UNKNOWN` (value: `'Unknown'`) - -* `STALLED` (value: `'Stalled'`) - -* `STARTED` (value: `'Started'`) - -* `NETWORKCONNECTIONADDRESSRESOLVE` (value: `'NetworkConnectionAddressResolve'`) - -* `SCREENINGPREPARE` (value: `'ScreeningPrepare'`) - -* `AMLSTARTED` (value: `'AMLStarted'`) - -* `AMLCOMPLETED` (value: `'AMLCompleted'`) - -* `AMLFAILED` (value: `'AMLFailed'`) - -* `AMLINBACKGROUND` (value: `'AMLInBackground'`) - -* `TRPRECONDITIONCHECKS` (value: `'TRPreconditionChecks'`) - -* `TRSTARTED` (value: `'TRStarted'`) - -* `TRLINKSTARTED` (value: `'TRLinkStarted'`) - -* `TRLINKDESTINATIONSTARTED` (value: `'TRLinkDestinationStarted'`) - -* `TRLINKDESTINATIONPRESCREENPOLICY` (value: `'TRLinkDestinationPrescreenPolicy'`) - -* `TRLINKDESTINATIONNOTRMPOLICY` (value: `'TRLinkDestinationNoTRMPolicy'`) - -* `TRLINKDESTINATIONSCREEN` (value: `'TRLinkDestinationScreen'`) - -* `TRLINKDESTINATIONPOSTSCREENPOLICY` (value: `'TRLinkDestinationPostscreenPolicy'`) - -* `TRLINKDESTINATIONCOMPLETED` (value: `'TRLinkDestinationCompleted'`) - -* `TRLINKCOMPLETED` (value: `'TRLinkCompleted'`) - -* `TRCOMPLETED` (value: `'TRCompleted'`) - -* `TRFAILED` (value: `'TRFailed'`) - -* `COMPLETED` (value: `'Completed'`) - -* `REGISTRATIONSTARTED` (value: `'RegistrationStarted'`) - -* `REGISTRATIONWAITFORFIRSTCONFIRMATION` (value: `'RegistrationWaitForFirstConfirmation'`) - -* `AMLREGISTRATIONSTARTED` (value: `'AMLRegistrationStarted'`) - -* `AMLREGISTRATIONCOMPLETED` (value: `'AMLRegistrationCompleted'`) - -* `TRUPDATESTARTED` (value: `'TRUpdateStarted'`) - -* `TRUPDATECOMPLETED` (value: `'TRUpdateCompleted'`) - -* `UPDATECOMPLETED` (value: `'UpdateCompleted'`) - -* `INCOMINGSTARTED` (value: `'IncomingStarted'`) - -* `INCOMINGBYORKSL` (value: `'IncomingByorkSL'`) - -* `INCOMINGSCREENINGPREPARE` (value: `'IncomingScreeningPrepare'`) - -* `INCOMINGWAITFORFIRSTCONFIRMATION` (value: `'IncomingWaitForFirstConfirmation'`) - -* `AMLINCOMINGSTARTED` (value: `'AMLIncomingStarted'`) - -* `AMLINCOMINGCOMPLETED` (value: `'AMLIncomingCompleted'`) - -* `AMLINCOMINGFAILED` (value: `'AMLIncomingFailed'`) - -* `AMLINCOMINGINBACKGROUND` (value: `'AMLIncomingInBackground'`) - -* `TRINCOMINGSTARTED` (value: `'TRIncomingStarted'`) - -* `TRINCOMINGCOMPLETED` (value: `'TRIncomingCompleted'`) - -* `TRINCOMINGFAILED` (value: `'TRIncomingFailed'`) - -* `INCOMINGCOMPLETED` (value: `'IncomingCompleted'`) - -* `ADDRESSAMLINITIATED` (value: `'AddressAmlInitiated'`) - -* `ADDRESSAMLADDRESSRESOLVE` (value: `'AddressAmlAddressResolve'`) - -* `ADDRESSAMLPREPARE` (value: `'AddressAmlPrepare'`) - -* `ADDRESSAMLPROCESSING` (value: `'AddressAmlProcessing'`) - -* `ADDRESSAMLSUCCEEDED` (value: `'AddressAmlSucceeded'`) - -* `ADDRESSAMLFAILED` (value: `'AddressAmlFailed'`) - -* `ADDRESSAMLCOMPLETED` (value: `'AddressAmlCompleted'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb21wbGlhbmNlUmVzdWx0U3RhdHVzZXNFbnVtCgpTdGF0dXMgb2YgY29tcGxpYW5jZSByZXN1bHQgc2NyZWVuaW5nCgojIyBFbnVtCgoqIGBVTktOT1dOYCAodmFsdWU6IGAnVW5rbm93bidgKQoKKiBgU1RBTExFRGAgKHZhbHVlOiBgJ1N0YWxsZWQnYCkKCiogYFNUQVJURURgICh2YWx1ZTogYCdTdGFydGVkJ2ApCgoqIGBORVRXT1JLQ09OTkVDVElPTkFERFJFU1NSRVNPTFZFYCAodmFsdWU6IGAnTmV0d29ya0Nvbm5lY3Rpb25BZGRyZXNzUmVzb2x2ZSdgKQoKKiBgU0NSRUVOSU5HUFJFUEFSRWAgKHZhbHVlOiBgJ1NjcmVlbmluZ1ByZXBhcmUnYCkKCiogYEFNTFNUQVJURURgICh2YWx1ZTogYCdBTUxTdGFydGVkJ2ApCgoqIGBBTUxDT01QTEVURURgICh2YWx1ZTogYCdBTUxDb21wbGV0ZWQnYCkKCiogYEFNTEZBSUxFRGAgKHZhbHVlOiBgJ0FNTEZhaWxlZCdgKQoKKiBgQU1MSU5CQUNLR1JPVU5EYCAodmFsdWU6IGAnQU1MSW5CYWNrZ3JvdW5kJ2ApCgoqIGBUUlBSRUNPTkRJVElPTkNIRUNLU2AgKHZhbHVlOiBgJ1RSUHJlY29uZGl0aW9uQ2hlY2tzJ2ApCgoqIGBUUlNUQVJURURgICh2YWx1ZTogYCdUUlN0YXJ0ZWQnYCkKCiogYFRSTElOS1NUQVJURURgICh2YWx1ZTogYCdUUkxpbmtTdGFydGVkJ2ApCgoqIGBUUkxJTktERVNUSU5BVElPTlNUQVJURURgICh2YWx1ZTogYCdUUkxpbmtEZXN0aW5hdGlvblN0YXJ0ZWQnYCkKCiogYFRSTElOS0RFU1RJTkFUSU9OUFJFU0NSRUVOUE9MSUNZYCAodmFsdWU6IGAnVFJMaW5rRGVzdGluYXRpb25QcmVzY3JlZW5Qb2xpY3knYCkKCiogYFRSTElOS0RFU1RJTkFUSU9OTk9UUk1QT0xJQ1lgICh2YWx1ZTogYCdUUkxpbmtEZXN0aW5hdGlvbk5vVFJNUG9saWN5J2ApCgoqIGBUUkxJTktERVNUSU5BVElPTlNDUkVFTmAgKHZhbHVlOiBgJ1RSTGlua0Rlc3RpbmF0aW9uU2NyZWVuJ2ApCgoqIGBUUkxJTktERVNUSU5BVElPTlBPU1RTQ1JFRU5QT0xJQ1lgICh2YWx1ZTogYCdUUkxpbmtEZXN0aW5hdGlvblBvc3RzY3JlZW5Qb2xpY3knYCkKCiogYFRSTElOS0RFU1RJTkFUSU9OQ09NUExFVEVEYCAodmFsdWU6IGAnVFJMaW5rRGVzdGluYXRpb25Db21wbGV0ZWQnYCkKCiogYFRSTElOS0NPTVBMRVRFRGAgKHZhbHVlOiBgJ1RSTGlua0NvbXBsZXRlZCdgKQoKKiBgVFJDT01QTEVURURgICh2YWx1ZTogYCdUUkNvbXBsZXRlZCdgKQoKKiBgVFJGQUlMRURgICh2YWx1ZTogYCdUUkZhaWxlZCdgKQoKKiBgQ09NUExFVEVEYCAodmFsdWU6IGAnQ29tcGxldGVkJ2ApCgoqIGBSRUdJU1RSQVRJT05TVEFSVEVEYCAodmFsdWU6IGAnUmVnaXN0cmF0aW9uU3RhcnRlZCdgKQoKKiBgUkVHSVNUUkFUSU9OV0FJVEZPUkZJUlNUQ09ORklSTUFUSU9OYCAodmFsdWU6IGAnUmVnaXN0cmF0aW9uV2FpdEZvckZpcnN0Q29uZmlybWF0aW9uJ2ApCgoqIGBBTUxSRUdJU1RSQVRJT05TVEFSVEVEYCAodmFsdWU6IGAnQU1MUmVnaXN0cmF0aW9uU3RhcnRlZCdgKQoKKiBgQU1MUkVHSVNUUkFUSU9OQ09NUExFVEVEYCAodmFsdWU6IGAnQU1MUmVnaXN0cmF0aW9uQ29tcGxldGVkJ2ApCgoqIGBUUlVQREFURVNUQVJURURgICh2YWx1ZTogYCdUUlVwZGF0ZVN0YXJ0ZWQnYCkKCiogYFRSVVBEQVRFQ09NUExFVEVEYCAodmFsdWU6IGAnVFJVcGRhdGVDb21wbGV0ZWQnYCkKCiogYFVQREFURUNPTVBMRVRFRGAgKHZhbHVlOiBgJ1VwZGF0ZUNvbXBsZXRlZCdgKQoKKiBgSU5DT01JTkdTVEFSVEVEYCAodmFsdWU6IGAnSW5jb21pbmdTdGFydGVkJ2ApCgoqIGBJTkNPTUlOR0JZT1JLU0xgICh2YWx1ZTogYCdJbmNvbWluZ0J5b3JrU0wnYCkKCiogYElOQ09NSU5HU0NSRUVOSU5HUFJFUEFSRWAgKHZhbHVlOiBgJ0luY29taW5nU2NyZWVuaW5nUHJlcGFyZSdgKQoKKiBgSU5DT01JTkdXQUlURk9SRklSU1RDT05GSVJNQVRJT05gICh2YWx1ZTogYCdJbmNvbWluZ1dhaXRGb3JGaXJzdENvbmZpcm1hdGlvbidgKQoKKiBgQU1MSU5DT01JTkdTVEFSVEVEYCAodmFsdWU6IGAnQU1MSW5jb21pbmdTdGFydGVkJ2ApCgoqIGBBTUxJTkNPTUlOR0NPTVBMRVRFRGAgKHZhbHVlOiBgJ0FNTEluY29taW5nQ29tcGxldGVkJ2ApCgoqIGBBTUxJTkNPTUlOR0ZBSUxFRGAgKHZhbHVlOiBgJ0FNTEluY29taW5nRmFpbGVkJ2ApCgoqIGBBTUxJTkNPTUlOR0lOQkFDS0dST1VORGAgKHZhbHVlOiBgJ0FNTEluY29taW5nSW5CYWNrZ3JvdW5kJ2ApCgoqIGBUUklOQ09NSU5HU1RBUlRFRGAgKHZhbHVlOiBgJ1RSSW5jb21pbmdTdGFydGVkJ2ApCgoqIGBUUklOQ09NSU5HQ09NUExFVEVEYCAodmFsdWU6IGAnVFJJbmNvbWluZ0NvbXBsZXRlZCdgKQoKKiBgVFJJTkNPTUlOR0ZBSUxFRGAgKHZhbHVlOiBgJ1RSSW5jb21pbmdGYWlsZWQnYCkKCiogYElOQ09NSU5HQ09NUExFVEVEYCAodmFsdWU6IGAnSW5jb21pbmdDb21wbGV0ZWQnYCkKCiogYEFERFJFU1NBTUxJTklUSUFURURgICh2YWx1ZTogYCdBZGRyZXNzQW1sSW5pdGlhdGVkJ2ApCgoqIGBBRERSRVNTQU1MQUREUkVTU1JFU09MVkVgICh2YWx1ZTogYCdBZGRyZXNzQW1sQWRkcmVzc1Jlc29sdmUnYCkKCiogYEFERFJFU1NBTUxQUkVQQVJFYCAodmFsdWU6IGAnQWRkcmVzc0FtbFByZXBhcmUnYCkKCiogYEFERFJFU1NBTUxQUk9DRVNTSU5HYCAodmFsdWU6IGAnQWRkcmVzc0FtbFByb2Nlc3NpbmcnYCkKCiogYEFERFJFU1NBTUxTVUNDRUVERURgICh2YWx1ZTogYCdBZGRyZXNzQW1sU3VjY2VlZGVkJ2ApCgoqIGBBRERSRVNTQU1MRkFJTEVEYCAodmFsdWU6IGAnQWRkcmVzc0FtbEZhaWxlZCdgKQoKKiBgQUREUkVTU0FNTENPTVBMRVRFRGAgKHZhbHVlOiBgJ0FkZHJlc3NBbWxDb21wbGV0ZWQnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ComplianceResults.md b/docs/ComplianceResults.md index a6b3351e..51235078 100644 --- a/docs/ComplianceResults.md +++ b/docs/ComplianceResults.md @@ -1,36 +1 @@ -# ComplianceResults - -The result of the Compliance AML/Travel Rule screening. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**aml** | [**ComplianceScreeningResult**](ComplianceScreeningResult.md) | | [optional] -**tr** | [**ComplianceScreeningResult**](ComplianceScreeningResult.md) | | [optional] -**aml_list** | [**List[ComplianceScreeningResult]**](ComplianceScreeningResult.md) | The list of all results of the AML screening. | [optional] -**status** | [**ComplianceResultStatusesEnum**](ComplianceResultStatusesEnum.md) | | [optional] -**aml_registration** | [**AmlRegistrationResult**](AmlRegistrationResult.md) | | [optional] -**trlink_registration** | [**TRLinkRegistrationResult**](TRLinkRegistrationResult.md) | | [optional] -**trlink_destinations** | [**List[TRLinkResult]**](TRLinkResult.md) | The list of TRLink destination screening results. | [optional] - -## Example - -```python -from fireblocks.models.compliance_results import ComplianceResults - -# TODO update the JSON string below -json = "{}" -# create an instance of ComplianceResults from a JSON string -compliance_results_instance = ComplianceResults.from_json(json) -# print the JSON string representation of the object -print(ComplianceResults.to_json()) - -# convert the object into a dict -compliance_results_dict = compliance_results_instance.to_dict() -# create an instance of ComplianceResults from a dict -compliance_results_from_dict = ComplianceResults.from_dict(compliance_results_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb21wbGlhbmNlUmVzdWx0cwoKVGhlIHJlc3VsdCBvZiB0aGUgQ29tcGxpYW5jZSBBTUwvVHJhdmVsIFJ1bGUgc2NyZWVuaW5nLgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFtbCoqIHwgWyoqQ29tcGxpYW5jZVNjcmVlbmluZ1Jlc3VsdCoqXShDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqdHIqKiB8IFsqKkNvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHQqKl0oQ29tcGxpYW5jZVNjcmVlbmluZ1Jlc3VsdC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmFtbF9saXN0KiogfCBbKipMaXN0W0NvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHRdKipdKENvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHQubWQpIHwgVGhlIGxpc3Qgb2YgYWxsIHJlc3VsdHMgb2YgdGhlIEFNTCBzY3JlZW5pbmcuIHwgW29wdGlvbmFsXSAKKipzdGF0dXMqKiB8IFsqKkNvbXBsaWFuY2VSZXN1bHRTdGF0dXNlc0VudW0qKl0oQ29tcGxpYW5jZVJlc3VsdFN0YXR1c2VzRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmFtbF9yZWdpc3RyYXRpb24qKiB8IFsqKkFtbFJlZ2lzdHJhdGlvblJlc3VsdCoqXShBbWxSZWdpc3RyYXRpb25SZXN1bHQubWQpIHwgIHwgW29wdGlvbmFsXSAKKip0cmxpbmtfcmVnaXN0cmF0aW9uKiogfCBbKipUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHQqKl0oVFJMaW5rUmVnaXN0cmF0aW9uUmVzdWx0Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqdHJsaW5rX2Rlc3RpbmF0aW9ucyoqIHwgWyoqTGlzdFtUUkxpbmtSZXN1bHRdKipdKFRSTGlua1Jlc3VsdC5tZCkgfCBUaGUgbGlzdCBvZiBUUkxpbmsgZGVzdGluYXRpb24gc2NyZWVuaW5nIHJlc3VsdHMuIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbXBsaWFuY2VfcmVzdWx0cyBpbXBvcnQgQ29tcGxpYW5jZVJlc3VsdHMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbXBsaWFuY2VSZXN1bHRzIGZyb20gYSBKU09OIHN0cmluZwpjb21wbGlhbmNlX3Jlc3VsdHNfaW5zdGFuY2UgPSBDb21wbGlhbmNlUmVzdWx0cy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDb21wbGlhbmNlUmVzdWx0cy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjb21wbGlhbmNlX3Jlc3VsdHNfZGljdCA9IGNvbXBsaWFuY2VfcmVzdWx0c19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29tcGxpYW5jZVJlc3VsdHMgZnJvbSBhIGRpY3QKY29tcGxpYW5jZV9yZXN1bHRzX2Zyb21fZGljdCA9IENvbXBsaWFuY2VSZXN1bHRzLmZyb21fZGljdChjb21wbGlhbmNlX3Jlc3VsdHNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ComplianceScreeningConfigurationApi.md b/docs/ComplianceScreeningConfigurationApi.md index 40d6442a..9adf2cfd 100644 --- a/docs/ComplianceScreeningConfigurationApi.md +++ b/docs/ComplianceScreeningConfigurationApi.md @@ -1,148 +1 @@ -# fireblocks.ComplianceScreeningConfigurationApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**get_aml_screening_configuration**](ComplianceScreeningConfigurationApi.md#get_aml_screening_configuration) | **GET** /screening/aml/policy_configuration | Get AML Screening Policy Configuration -[**get_screening_configuration**](ComplianceScreeningConfigurationApi.md#get_screening_configuration) | **GET** /screening/travel_rule/policy_configuration | Get Travel Rule Screening Policy Configuration - - -# **get_aml_screening_configuration** -> ScreeningConfigurationsRequest get_aml_screening_configuration() - -Get AML Screening Policy Configuration - -Retrieves the configuration for Travel Rule screening policy. - -### Example - - -```python -from fireblocks.models.screening_configurations_request import ScreeningConfigurationsRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Get AML Screening Policy Configuration - api_response = fireblocks.compliance_screening_configuration.get_aml_screening_configuration().result() - print("The response of ComplianceScreeningConfigurationApi->get_aml_screening_configuration:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ComplianceScreeningConfigurationApi->get_aml_screening_configuration: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**ScreeningConfigurationsRequest**](ScreeningConfigurationsRequest.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Screening policy configuration retrieved successfully. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_screening_configuration** -> ScreeningConfigurationsRequest get_screening_configuration() - -Get Travel Rule Screening Policy Configuration - -Retrieves the configuration for Travel Rule screening policy. - -### Example - - -```python -from fireblocks.models.screening_configurations_request import ScreeningConfigurationsRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Get Travel Rule Screening Policy Configuration - api_response = fireblocks.compliance_screening_configuration.get_screening_configuration().result() - print("The response of ComplianceScreeningConfigurationApi->get_screening_configuration:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ComplianceScreeningConfigurationApi->get_screening_configuration: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**ScreeningConfigurationsRequest**](ScreeningConfigurationsRequest.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Screening policy configuration retrieved successfully. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLkNvbXBsaWFuY2VTY3JlZW5pbmdDb25maWd1cmF0aW9uQXBpCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gKmh0dHBzOi8vYXBpLmZpcmVibG9ja3MuaW8vdjEqCgpNZXRob2QgfCBIVFRQIHJlcXVlc3QgfCBEZXNjcmlwdGlvbgotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KWyoqZ2V0X2FtbF9zY3JlZW5pbmdfY29uZmlndXJhdGlvbioqXShDb21wbGlhbmNlU2NyZWVuaW5nQ29uZmlndXJhdGlvbkFwaS5tZCNnZXRfYW1sX3NjcmVlbmluZ19jb25maWd1cmF0aW9uKSB8ICoqR0VUKiogL3NjcmVlbmluZy9hbWwvcG9saWN5X2NvbmZpZ3VyYXRpb24gfCBHZXQgQU1MIFNjcmVlbmluZyBQb2xpY3kgQ29uZmlndXJhdGlvbgpbKipnZXRfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb24qKl0oQ29tcGxpYW5jZVNjcmVlbmluZ0NvbmZpZ3VyYXRpb25BcGkubWQjZ2V0X3NjcmVlbmluZ19jb25maWd1cmF0aW9uKSB8ICoqR0VUKiogL3NjcmVlbmluZy90cmF2ZWxfcnVsZS9wb2xpY3lfY29uZmlndXJhdGlvbiB8IEdldCBUcmF2ZWwgUnVsZSBTY3JlZW5pbmcgUG9saWN5IENvbmZpZ3VyYXRpb24KCgojICoqZ2V0X2FtbF9zY3JlZW5pbmdfY29uZmlndXJhdGlvbioqCj4gU2NyZWVuaW5nQ29uZmlndXJhdGlvbnNSZXF1ZXN0IGdldF9hbWxfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb24oKQoKR2V0IEFNTCBTY3JlZW5pbmcgUG9saWN5IENvbmZpZ3VyYXRpb24KClJldHJpZXZlcyB0aGUgY29uZmlndXJhdGlvbiBmb3IgVHJhdmVsIFJ1bGUgc2NyZWVuaW5nIHBvbGljeS4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb25zX3JlcXVlc3QgaW1wb3J0IFNjcmVlbmluZ0NvbmZpZ3VyYXRpb25zUmVxdWVzdApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CgogICAgdHJ5OgogICAgICAgICMgR2V0IEFNTCBTY3JlZW5pbmcgUG9saWN5IENvbmZpZ3VyYXRpb24KICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmNvbXBsaWFuY2Vfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb24uZ2V0X2FtbF9zY3JlZW5pbmdfY29uZmlndXJhdGlvbigpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBDb21wbGlhbmNlU2NyZWVuaW5nQ29uZmlndXJhdGlvbkFwaS0+Z2V0X2FtbF9zY3JlZW5pbmdfY29uZmlndXJhdGlvbjpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBDb21wbGlhbmNlU2NyZWVuaW5nQ29uZmlndXJhdGlvbkFwaS0+Z2V0X2FtbF9zY3JlZW5pbmdfY29uZmlndXJhdGlvbjogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKClRoaXMgZW5kcG9pbnQgZG9lcyBub3QgbmVlZCBhbnkgcGFyYW1ldGVyLgoKIyMjIFJldHVybiB0eXBlCgpbKipTY3JlZW5pbmdDb25maWd1cmF0aW9uc1JlcXVlc3QqKl0oU2NyZWVuaW5nQ29uZmlndXJhdGlvbnNSZXF1ZXN0Lm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgU2NyZWVuaW5nIHBvbGljeSBjb25maWd1cmF0aW9uIHJldHJpZXZlZCBzdWNjZXNzZnVsbHkuIHwgIC0gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9zY3JlZW5pbmdfY29uZmlndXJhdGlvbioqCj4gU2NyZWVuaW5nQ29uZmlndXJhdGlvbnNSZXF1ZXN0IGdldF9zY3JlZW5pbmdfY29uZmlndXJhdGlvbigpCgpHZXQgVHJhdmVsIFJ1bGUgU2NyZWVuaW5nIFBvbGljeSBDb25maWd1cmF0aW9uCgpSZXRyaWV2ZXMgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIFRyYXZlbCBSdWxlIHNjcmVlbmluZyBwb2xpY3kuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19jb25maWd1cmF0aW9uc19yZXF1ZXN0IGltcG9ydCBTY3JlZW5pbmdDb25maWd1cmF0aW9uc1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgoKICAgIHRyeToKICAgICAgICAjIEdldCBUcmF2ZWwgUnVsZSBTY3JlZW5pbmcgUG9saWN5IENvbmZpZ3VyYXRpb24KICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmNvbXBsaWFuY2Vfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb24uZ2V0X3NjcmVlbmluZ19jb25maWd1cmF0aW9uKCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIENvbXBsaWFuY2VTY3JlZW5pbmdDb25maWd1cmF0aW9uQXBpLT5nZXRfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb246XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQ29tcGxpYW5jZVNjcmVlbmluZ0NvbmZpZ3VyYXRpb25BcGktPmdldF9zY3JlZW5pbmdfY29uZmlndXJhdGlvbjogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKClRoaXMgZW5kcG9pbnQgZG9lcyBub3QgbmVlZCBhbnkgcGFyYW1ldGVyLgoKIyMjIFJldHVybiB0eXBlCgpbKipTY3JlZW5pbmdDb25maWd1cmF0aW9uc1JlcXVlc3QqKl0oU2NyZWVuaW5nQ29uZmlndXJhdGlvbnNSZXF1ZXN0Lm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgU2NyZWVuaW5nIHBvbGljeSBjb25maWd1cmF0aW9uIHJldHJpZXZlZCBzdWNjZXNzZnVsbHkuIHwgIC0gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoK \ No newline at end of file diff --git a/docs/ComplianceScreeningResult.md b/docs/ComplianceScreeningResult.md index 9f1ba3de..4f0af4ce 100644 --- a/docs/ComplianceScreeningResult.md +++ b/docs/ComplianceScreeningResult.md @@ -1,59 +1 @@ -# ComplianceScreeningResult - -The result of the AML/Travel Rule screening. This unified schema contains all fields that may be returned for both AML and Travel Rule screening results. Not all fields will be present in every response - the actual fields depend on the screening type and provider. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**provider** | **str** | The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, SCORECHAIN, MERKLE_SCIENCE, etc. For Travel Rule: NOTABENE, SYGNA, or any TRLink provider name | [optional] -**payload** | **object** | The raw payload of the screening result from the provider. The payload is a JSON object that contains the screening result. The payload structure is different for each screening provider. This field contains the complete, unmodified response from the screening service. | [optional] -**timestamp** | **float** | Unix timestamp in milliseconds when the screening result was generated | [optional] -**screening_status** | **str** | Current status of the screening process | [optional] -**bypass_reason** | **str** | Reason for bypassing the screening, if applicable. For AML: SANCTIONS_SCREENING_BYPASS, SANCTIONS_RECIPIENT_BYPASS, etc. For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc. | [optional] -**status** | [**AmlStatusEnum**](AmlStatusEnum.md) | | [optional] -**prev_status** | [**AmlStatusEnum**](AmlStatusEnum.md) | | [optional] -**prev_bypass_reason** | **str** | Previous bypass reason before the current bypass reason change | [optional] -**verdict** | [**ScreeningVerdictEnum**](ScreeningVerdictEnum.md) | | [optional] -**risk** | [**ScreeningRiskLevelEnum**](ScreeningRiskLevelEnum.md) | | [optional] -**extended_risk** | [**ScreeningRiskLevelEnum**](ScreeningRiskLevelEnum.md) | | [optional] -**external_id** | **str** | External identifier for the screening (provider-specific) | [optional] -**customer_ref_id** | **str** | Customer-provided reference identifier for tracking | [optional] -**ref_id** | **str** | Internal reference identifier | [optional] -**category** | **str** | Risk category classification. Examples: EXCHANGE, GAMBLING, MIXER, DARKNET_SERVICE, SANCTIONED_ENTITY | [optional] -**category_id** | **float** | Numeric identifier for the risk category | [optional] -**dest_address** | **str** | The destination blockchain address associated with the screening | [optional] -**dest_tag** | **str** | Destination tag or memo (for chains that support it like XRP, XLM) | [optional] -**dest_record_id** | **str** | The destination record identifier used by the screening provider | [optional] -**address_resolution_signature** | **str** | Cryptographic signature for address resolution verification | [optional] -**aml_result** | [**AmlResult**](AmlResult.md) | | [optional] -**result** | [**TravelRuleResult**](TravelRuleResult.md) | | [optional] -**details_message** | **str** | Additional human-readable details or message about the screening result | [optional] -**matched_alert** | **object** | Information about the AML alert that was matched, if any. Contains details about the specific alert that triggered during screening. | [optional] -**matched_rule** | **object** | The matched rule information for this screening result. Contains details about which screening rule was applied and matched. | [optional] -**matched_prescreening_rule** | [**TravelRulePrescreeningRule**](TravelRulePrescreeningRule.md) | | [optional] -**matched_no_trm_screening_rule** | **object** | Matched no-TRM (Travel Rule Message) screening rule details. Used when TRLink screening detects a missing TRM scenario. | [optional] -**customer_integration_id** | **str** | Customer integration identifier used by Travel Rule providers | [optional] -**customer_short_name** | **str** | Customer short name registered with Travel Rule providers | [optional] -**travel_rule_message_id** | **str** | Travel rule message identifier for linking and tracking across providers | [optional] - -## Example - -```python -from fireblocks.models.compliance_screening_result import ComplianceScreeningResult - -# TODO update the JSON string below -json = "{}" -# create an instance of ComplianceScreeningResult from a JSON string -compliance_screening_result_instance = ComplianceScreeningResult.from_json(json) -# print the JSON string representation of the object -print(ComplianceScreeningResult.to_json()) - -# convert the object into a dict -compliance_screening_result_dict = compliance_screening_result_instance.to_dict() -# create an instance of ComplianceScreeningResult from a dict -compliance_screening_result_from_dict = ComplianceScreeningResult.from_dict(compliance_screening_result_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0CgpUaGUgcmVzdWx0IG9mIHRoZSBBTUwvVHJhdmVsIFJ1bGUgc2NyZWVuaW5nLiBUaGlzIHVuaWZpZWQgc2NoZW1hIGNvbnRhaW5zIGFsbCBmaWVsZHMgdGhhdCBtYXkgYmUgcmV0dXJuZWQgZm9yIGJvdGggQU1MIGFuZCBUcmF2ZWwgUnVsZSBzY3JlZW5pbmcgcmVzdWx0cy4gTm90IGFsbCBmaWVsZHMgd2lsbCBiZSBwcmVzZW50IGluIGV2ZXJ5IHJlc3BvbnNlIC0gdGhlIGFjdHVhbCBmaWVsZHMgZGVwZW5kIG9uIHRoZSBzY3JlZW5pbmcgdHlwZSBhbmQgcHJvdmlkZXIuIAoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnByb3ZpZGVyKiogfCAqKnN0cioqIHwgVGhlIEFNTC9UcmF2ZWwgUnVsZSBwcm92aWRlciBuYW1lLiBGb3IgQU1MOiBFTExJUFRJQywgQ0hBSU5BTFlTSVMsIGV0Yy4gRm9yIFRyYXZlbCBSdWxlOiBOT1RBQkVORSwgU1VNU1VCLCBHVFIsIG9yIGFueSBUUkxpbmsgcHJvdmlkZXIgbmFtZS4gIHwgW29wdGlvbmFsXSAKKipwYXlsb2FkKiogfCAqKm9iamVjdCoqIHwgVGhlIHJhdyBwYXlsb2FkIG9mIHRoZSBzY3JlZW5pbmcgcmVzdWx0IGZyb20gdGhlIHByb3ZpZGVyLiBUaGUgcGF5bG9hZCBpcyBhIEpTT04gb2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIHNjcmVlbmluZyByZXN1bHQuIFRoZSBwYXlsb2FkIHN0cnVjdHVyZSBpcyBkaWZmZXJlbnQgZm9yIGVhY2ggc2NyZWVuaW5nIHByb3ZpZGVyLiBUaGlzIGZpZWxkIGNvbnRhaW5zIHRoZSBjb21wbGV0ZSwgdW5tb2RpZmllZCByZXNwb25zZSBmcm9tIHRoZSBzY3JlZW5pbmcgc2VydmljZS4gIHwgW29wdGlvbmFsXSAKKip0aW1lc3RhbXAqKiB8ICoqZmxvYXQqKiB8IFVuaXggdGltZXN0YW1wIGluIG1pbGxpc2Vjb25kcyB3aGVuIHRoZSBzY3JlZW5pbmcgcmVzdWx0IHdhcyBnZW5lcmF0ZWQgfCBbb3B0aW9uYWxdIAoqKnNjcmVlbmluZ19zdGF0dXMqKiB8ICoqc3RyKiogfCBDdXJyZW50IHN0YXR1cyBvZiB0aGUgc2NyZWVuaW5nIHByb2Nlc3MgfCBbb3B0aW9uYWxdIAoqKmJ5cGFzc19yZWFzb24qKiB8ICoqc3RyKiogfCBSZWFzb24gZm9yIGJ5cGFzc2luZyB0aGUgc2NyZWVuaW5nLCBpZiBhcHBsaWNhYmxlLiBGb3IgQU1MOiBVTlNVUFBPUlRFRF9BU1NFVCwgUEFTU0VEX0JZX1BPTElDWS4gRm9yIFRyYXZlbCBSdWxlOiBVTlNVUFBPUlRFRF9BU1NFVCwgTk9fVFJBVkVMX1JVTEVfTUVTU0FHRSwgVFJBTlNBQ1RJT05fWkVST19BTU9VTlQuICB8IFtvcHRpb25hbF0gCioqc3RhdHVzKiogfCBbKipBbWxTdGF0dXNFbnVtKipdKEFtbFN0YXR1c0VudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipwcmV2X3N0YXR1cyoqIHwgWyoqQW1sU3RhdHVzRW51bSoqXShBbWxTdGF0dXNFbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqcHJldl9ieXBhc3NfcmVhc29uKiogfCAqKnN0cioqIHwgRGVwcmVjYXRlZDogVGhpcyBmaWVsZCBpcyBub3QgY3VycmVudGx5IHJldHVybmVkIGluIHRoZSBBUEkgcmVzcG9uc2UuIFByZXZpb3VzIGJ5cGFzcyByZWFzb24gYmVmb3JlIHRoZSBjdXJyZW50IGJ5cGFzcyByZWFzb24gY2hhbmdlLiAgfCBbb3B0aW9uYWxdIAoqKnZlcmRpY3QqKiB8IFsqKlNjcmVlbmluZ1ZlcmRpY3RFbnVtKipdKFNjcmVlbmluZ1ZlcmRpY3RFbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqcmlzayoqIHwgKipzdHIqKiB8IFJpc2sgbGV2ZWwgYXNzZXNzbWVudCBmb3Igc2NyZWVuaW5nIHJlc3VsdHMuIFZhbHVlcyB2YXJ5IGJ5IHByb3ZpZGVyIGFuZCBhcmUgbm90IG1hbmFnZWQgYnkgdGhpcyBzZXJ2aWNlLiAgS25vd24gdmFsdWVzIGJ5IHByb3ZpZGVyOiAtIENoYWluYWx5c2lzOiBzZXZlcmVSaXNrLCBoaWdoUmlzaywgbWVkaXVtUmlzaywgbG93Umlzaywgbm9SaXNrSW5mbyAtIEVsbGlwdGljOiBub1Jpc2tEZXRlY3RlZCAgTGVnYWN5IHZhbHVlcyAoU0NSRUFNSU5HX1NOQUtFX0NBU0UsIG1heSBhcHBlYXIgaW4gb2xkIHRyYW5zYWN0aW9ucyk6IFZFUllfSElHSCwgU0VWRVJFLCBISUdILCBNRURJVU0sIExPVywgTk9fUklTS19JTkZPLCBVTktOT1dOICB8IFtvcHRpb25hbF0gCioqZXh0ZW5kZWRfcmlzayoqIHwgKipzdHIqKiB8IERlcHJlY2F0ZWQ6IFRoaXMgZmllbGQgaXMgbm90IGN1cnJlbnRseSByZXR1cm5lZCBpbiB0aGUgQVBJIHJlc3BvbnNlLiBVc2UgcmlzayBpbnN0ZWFkLiAgfCBbb3B0aW9uYWxdIAoqKmV4dGVybmFsX2lkKiogfCAqKnN0cioqIHwgRXh0ZXJuYWwgaWRlbnRpZmllciBmb3IgdGhlIHNjcmVlbmluZyAocHJvdmlkZXItc3BlY2lmaWMpIHwgW29wdGlvbmFsXSAKKipjdXN0b21lcl9yZWZfaWQqKiB8ICoqc3RyKiogfCBDdXN0b21lci1wcm92aWRlZCByZWZlcmVuY2UgaWRlbnRpZmllciBmb3IgdHJhY2tpbmcgfCBbb3B0aW9uYWxdIAoqKnJlZl9pZCoqIHwgKipzdHIqKiB8IERlcHJlY2F0ZWQ6IFRoaXMgZmllbGQgaXMgbm90IGN1cnJlbnRseSByZXR1cm5lZCBpbiB0aGUgQVBJIHJlc3BvbnNlLiBJbnRlcm5hbCByZWZlcmVuY2UgaWRlbnRpZmllci4gIHwgW29wdGlvbmFsXSAKKipjYXRlZ29yeSoqIHwgKipzdHIqKiB8IFJpc2sgY2F0ZWdvcnkgY2xhc3NpZmljYXRpb24uIEV4YW1wbGVzOiBFWENIQU5HRSwgR0FNQkxJTkcsIE1JWEVSLCBEQVJLTkVUX1NFUlZJQ0UsIFNBTkNUSU9ORURfRU5USVRZICB8IFtvcHRpb25hbF0gCioqY2F0ZWdvcnlfaWQqKiB8ICoqZmxvYXQqKiB8IE51bWVyaWMgaWRlbnRpZmllciBmb3IgdGhlIHJpc2sgY2F0ZWdvcnkgfCBbb3B0aW9uYWxdIAoqKmRlc3RfYWRkcmVzcyoqIHwgKipzdHIqKiB8IFRoZSBkZXN0aW5hdGlvbiBibG9ja2NoYWluIGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBzY3JlZW5pbmcgfCBbb3B0aW9uYWxdIAoqKmRlc3RfdGFnKiogfCAqKnN0cioqIHwgRGVzdGluYXRpb24gdGFnIG9yIG1lbW8gKGZvciBjaGFpbnMgdGhhdCBzdXBwb3J0IGl0IGxpa2UgWFJQLCBYTE0pIHwgW29wdGlvbmFsXSAKKipkZXN0X3JlY29yZF9pZCoqIHwgKipzdHIqKiB8IERlcHJlY2F0ZWQ6IFRoaXMgZmllbGQgaXMgbm90IGN1cnJlbnRseSByZXR1cm5lZCBpbiB0aGUgQVBJIHJlc3BvbnNlLiBUaGUgZGVzdGluYXRpb24gcmVjb3JkIGlkZW50aWZpZXIgdXNlZCBieSB0aGUgc2NyZWVuaW5nIHByb3ZpZGVyLiAgfCBbb3B0aW9uYWxdIAoqKmFkZHJlc3NfcmVzb2x1dGlvbl9zaWduYXR1cmUqKiB8ICoqc3RyKiogfCBEZXByZWNhdGVkOiBUaGlzIGZpZWxkIGlzIG5vdCBjdXJyZW50bHkgcmV0dXJuZWQgaW4gdGhlIEFQSSByZXNwb25zZS4gQ3J5cHRvZ3JhcGhpYyBzaWduYXR1cmUgZm9yIGFkZHJlc3MgcmVzb2x1dGlvbiB2ZXJpZmljYXRpb24uICB8IFtvcHRpb25hbF0gCioqYW1sX3Jlc3VsdCoqIHwgWyoqQW1sUmVzdWx0KipdKEFtbFJlc3VsdC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnJlc3VsdCoqIHwgWyoqVHJhdmVsUnVsZVJlc3VsdCoqXShUcmF2ZWxSdWxlUmVzdWx0Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZGV0YWlsc19tZXNzYWdlKiogfCAqKnN0cioqIHwgQWRkaXRpb25hbCBodW1hbi1yZWFkYWJsZSBkZXRhaWxzIG9yIG1lc3NhZ2UgYWJvdXQgdGhlIHNjcmVlbmluZyByZXN1bHQgfCBbb3B0aW9uYWxdIAoqKm1hdGNoZWRfYWxlcnQqKiB8ICoqb2JqZWN0KiogfCBJbmZvcm1hdGlvbiBhYm91dCB0aGUgQU1MIGFsZXJ0IHRoYXQgd2FzIG1hdGNoZWQsIGlmIGFueS4gQ29udGFpbnMgZGV0YWlscyBhYm91dCB0aGUgc3BlY2lmaWMgYWxlcnQgdGhhdCB0cmlnZ2VyZWQgZHVyaW5nIHNjcmVlbmluZy4gIHwgW29wdGlvbmFsXSAKKiptYXRjaGVkX3J1bGUqKiB8ICoqb2JqZWN0KiogfCBUaGUgbWF0Y2hlZCBydWxlIGluZm9ybWF0aW9uIGZvciB0aGlzIHNjcmVlbmluZyByZXN1bHQuIENvbnRhaW5zIGRldGFpbHMgYWJvdXQgd2hpY2ggc2NyZWVuaW5nIHJ1bGUgd2FzIGFwcGxpZWQgYW5kIG1hdGNoZWQuICB8IFtvcHRpb25hbF0gCioqbWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZSoqIHwgWyoqVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGUqKl0oVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGUubWQpIHwgIHwgW29wdGlvbmFsXSAKKiptYXRjaGVkX25vX3RybV9zY3JlZW5pbmdfcnVsZSoqIHwgKipvYmplY3QqKiB8IE1hdGNoZWQgbm8tVFJNIChUcmF2ZWwgUnVsZSBNZXNzYWdlKSBzY3JlZW5pbmcgcnVsZSBkZXRhaWxzLiBVc2VkIHdoZW4gVFJMaW5rIHNjcmVlbmluZyBkZXRlY3RzIGEgbWlzc2luZyBUUk0gc2NlbmFyaW8uICB8IFtvcHRpb25hbF0gCioqY3VzdG9tZXJfaW50ZWdyYXRpb25faWQqKiB8ICoqc3RyKiogfCBDdXN0b21lciBpbnRlZ3JhdGlvbiBpZGVudGlmaWVyIHVzZWQgYnkgVHJhdmVsIFJ1bGUgcHJvdmlkZXJzIHwgW29wdGlvbmFsXSAKKipjdXN0b21lcl9zaG9ydF9uYW1lKiogfCAqKnN0cioqIHwgQ3VzdG9tZXIgc2hvcnQgbmFtZSByZWdpc3RlcmVkIHdpdGggVHJhdmVsIFJ1bGUgcHJvdmlkZXJzIHwgW29wdGlvbmFsXSAKKip0cmF2ZWxfcnVsZV9tZXNzYWdlX2lkKiogfCAqKnN0cioqIHwgVHJhdmVsIHJ1bGUgbWVzc2FnZSBpZGVudGlmaWVyIGZvciBsaW5raW5nIGFuZCB0cmFja2luZyBhY3Jvc3MgcHJvdmlkZXJzIHwgW29wdGlvbmFsXSAKKipwcm92aWRlcl9yZXNwb25zZSoqIHwgKipEaWN0W3N0ciwgb2JqZWN0XSoqIHwgQ29tcGxldGUgcmVzcG9uc2UgZnJvbSB0aGUgc2NyZWVuaW5nIHByb3ZpZGVyLiBUaGlzIGlzIGEgZHluYW1pYyBvYmplY3QgdGhhdCB2YXJpZXMgc2lnbmlmaWNhbnRseSBiZXR3ZWVuIGRpZmZlcmVudCBwcm92aWRlcnMgKENoYWluYWx5c2lzLCBFbGxpcHRpYywgTk9UQUJFTkUsIGV0Yy4pLiBFYWNoIHByb3ZpZGVyIGhhcyB0aGVpciBvd24gcHJvcHJpZXRhcnkgcmVzcG9uc2UgZm9ybWF0IGFuZCBzY2hlbWEuICBGb3IgQU1MIHByb3ZpZGVyczogQ29udGFpbnMgcmlzayBzY29yZXMsIGFsZXJ0cywgZW50aXR5IGluZm9ybWF0aW9uIEZvciBUcmF2ZWwgUnVsZSBwcm92aWRlcnM6IENvbnRhaW5zIFZBU1AgaW5mb3JtYXRpb24sIFBJSSBkYXRhLCBwcm90b2NvbC1zcGVjaWZpYyBmaWVsZHMgIFRoZSBzdHJ1Y3R1cmUgaXMgcHJvdmlkZXItZGVwZW5kZW50IGFuZCBjYW5ub3QgYmUgc3RhbmRhcmRpemVkIGFzIGVhY2ggdmVuZG9yIGltcGxlbWVudHMgdGhlaXIgb3duIHByb3ByaWV0YXJ5IGRhdGEgbW9kZWxzIGFuZCByZXNwb25zZSBmb3JtYXRzLiAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29tcGxpYW5jZV9zY3JlZW5pbmdfcmVzdWx0IGltcG9ydCBDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0IGZyb20gYSBKU09OIHN0cmluZwpjb21wbGlhbmNlX3NjcmVlbmluZ19yZXN1bHRfaW5zdGFuY2UgPSBDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29tcGxpYW5jZV9zY3JlZW5pbmdfcmVzdWx0X2RpY3QgPSBjb21wbGlhbmNlX3NjcmVlbmluZ19yZXN1bHRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHQgZnJvbSBhIGRpY3QKY29tcGxpYW5jZV9zY3JlZW5pbmdfcmVzdWx0X2Zyb21fZGljdCA9IENvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHQuZnJvbV9kaWN0KGNvbXBsaWFuY2Vfc2NyZWVuaW5nX3Jlc3VsdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ComplianceScreeningResultFullPayload.md b/docs/ComplianceScreeningResultFullPayload.md index 0b6b97f3..e44d4668 100644 --- a/docs/ComplianceScreeningResultFullPayload.md +++ b/docs/ComplianceScreeningResultFullPayload.md @@ -1,59 +1 @@ -# ComplianceScreeningResultFullPayload - -The result of the AML/Travel Rule screening. This unified schema contains all fields that may be returned for both AML and Travel Rule screening results. Not all fields will be present in every response - the actual fields depend on the screening type and provider. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**provider** | **str** | The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. For Travel Rule: NOTABENE, SUMSUB, or any TRLink provider name | [optional] -**payload** | **object** | The raw payload of the screening result from the provider. The payload is a JSON object that contains the screening result. The payload structure is different for each screening provider. This field contains the complete, unmodified response from the screening service. | [optional] -**timestamp** | **float** | Unix timestamp in milliseconds when the screening result was generated | [optional] -**screening_status** | **str** | Current status of the screening process | [optional] -**bypass_reason** | **str** | Reason for bypassing the screening, if applicable. For AML: SANCTIONS_SCREENING_BYPASS, SANCTIONS_RECIPIENT_BYPASS, etc. For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc. | [optional] -**status** | [**AmlStatusEnum**](AmlStatusEnum.md) | | [optional] -**prev_status** | [**AmlStatusEnum**](AmlStatusEnum.md) | | [optional] -**prev_bypass_reason** | **str** | Previous bypass reason before the current bypass reason change | [optional] -**verdict** | [**ScreeningVerdictEnum**](ScreeningVerdictEnum.md) | | [optional] -**risk** | [**ScreeningRiskLevelEnum**](ScreeningRiskLevelEnum.md) | | [optional] -**extended_risk** | [**ScreeningRiskLevelEnum**](ScreeningRiskLevelEnum.md) | | [optional] -**external_id** | **str** | External identifier for the screening (provider-specific) | [optional] -**customer_ref_id** | **str** | Customer-provided reference identifier for tracking | [optional] -**ref_id** | **str** | Internal reference identifier | [optional] -**category** | **str** | Risk category classification. Examples: EXCHANGE, GAMBLING, MIXER, DARKNET_SERVICE, SANCTIONED_ENTITY | [optional] -**category_id** | **float** | Numeric identifier for the risk category | [optional] -**dest_address** | **str** | The destination blockchain address associated with the screening | [optional] -**dest_tag** | **str** | Destination tag or memo (for chains that support it like XRP, XLM) | [optional] -**dest_record_id** | **str** | The destination record identifier used by the screening provider | [optional] -**address_resolution_signature** | **str** | Cryptographic signature for address resolution verification | [optional] -**aml_result** | [**ScreeningAmlResult**](ScreeningAmlResult.md) | | [optional] -**result** | [**ScreeningTravelRuleResult**](ScreeningTravelRuleResult.md) | | [optional] -**details_message** | **str** | Additional human-readable details or message about the screening result | [optional] -**matched_alert** | **object** | Information about the AML alert that was matched, if any. Contains details about the specific alert that triggered during screening. | [optional] -**matched_rule** | **object** | The matched rule information for this screening result. Contains details about which screening rule was applied and matched. | [optional] -**matched_prescreening_rule** | [**ScreeningTravelRulePrescreeningRule**](ScreeningTravelRulePrescreeningRule.md) | | [optional] -**matched_no_trm_screening_rule** | **object** | Matched no-TRM (Travel Rule Message) screening rule details. Used when TRLink screening detects a missing TRM scenario. | [optional] -**customer_integration_id** | **str** | Customer integration identifier used by Travel Rule providers | [optional] -**customer_short_name** | **str** | Customer short name registered with Travel Rule providers | [optional] -**travel_rule_message_id** | **str** | Travel rule message identifier for linking and tracking across providers | [optional] - -## Example - -```python -from fireblocks.models.compliance_screening_result_full_payload import ComplianceScreeningResultFullPayload - -# TODO update the JSON string below -json = "{}" -# create an instance of ComplianceScreeningResultFullPayload from a JSON string -compliance_screening_result_full_payload_instance = ComplianceScreeningResultFullPayload.from_json(json) -# print the JSON string representation of the object -print(ComplianceScreeningResultFullPayload.to_json()) - -# convert the object into a dict -compliance_screening_result_full_payload_dict = compliance_screening_result_full_payload_instance.to_dict() -# create an instance of ComplianceScreeningResultFullPayload from a dict -compliance_screening_result_full_payload_from_dict = ComplianceScreeningResultFullPayload.from_dict(compliance_screening_result_full_payload_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0RnVsbFBheWxvYWQKClRoZSByZXN1bHQgb2YgdGhlIEFNTC9UcmF2ZWwgUnVsZSBzY3JlZW5pbmcuIFRoaXMgdW5pZmllZCBzY2hlbWEgY29udGFpbnMgYWxsIGZpZWxkcyB0aGF0IG1heSBiZSByZXR1cm5lZCBmb3IgYm90aCBBTUwgYW5kIFRyYXZlbCBSdWxlIHNjcmVlbmluZyByZXN1bHRzLiBOb3QgYWxsIGZpZWxkcyB3aWxsIGJlIHByZXNlbnQgaW4gZXZlcnkgcmVzcG9uc2UgLSB0aGUgYWN0dWFsIGZpZWxkcyBkZXBlbmQgb24gdGhlIHNjcmVlbmluZyB0eXBlIGFuZCBwcm92aWRlci4gCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcHJvdmlkZXIqKiB8ICoqc3RyKiogfCBUaGUgQU1ML1RyYXZlbCBSdWxlIHByb3ZpZGVyIG5hbWUuIEZvciBBTUw6IEVMTElQVElDLCBDSEFJTkFMWVNJUywgZXRjLiBGb3IgVHJhdmVsIFJ1bGU6IE5PVEFCRU5FLCBTVU1TVUIsIEdUUiwgb3IgYW55IFRSTGluayBwcm92aWRlciBuYW1lICB8IFtvcHRpb25hbF0gCioqcGF5bG9hZCoqIHwgKipvYmplY3QqKiB8IFRoZSByYXcgcGF5bG9hZCBvZiB0aGUgc2NyZWVuaW5nIHJlc3VsdCBmcm9tIHRoZSBwcm92aWRlci4gVGhlIHBheWxvYWQgaXMgYSBKU09OIG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBzY3JlZW5pbmcgcmVzdWx0LiBUaGUgcGF5bG9hZCBzdHJ1Y3R1cmUgaXMgZGlmZmVyZW50IGZvciBlYWNoIHNjcmVlbmluZyBwcm92aWRlci4gVGhpcyBmaWVsZCBjb250YWlucyB0aGUgY29tcGxldGUsIHVubW9kaWZpZWQgcmVzcG9uc2UgZnJvbSB0aGUgc2NyZWVuaW5nIHNlcnZpY2UuICB8IFtvcHRpb25hbF0gCioqdGltZXN0YW1wKiogfCAqKmZsb2F0KiogfCBVbml4IHRpbWVzdGFtcCBpbiBtaWxsaXNlY29uZHMgd2hlbiB0aGUgc2NyZWVuaW5nIHJlc3VsdCB3YXMgZ2VuZXJhdGVkIHwgW29wdGlvbmFsXSAKKipzY3JlZW5pbmdfc3RhdHVzKiogfCAqKnN0cioqIHwgQ3VycmVudCBzdGF0dXMgb2YgdGhlIHNjcmVlbmluZyBwcm9jZXNzIHwgW29wdGlvbmFsXSAKKipieXBhc3NfcmVhc29uKiogfCAqKnN0cioqIHwgUmVhc29uIGZvciBieXBhc3NpbmcgdGhlIHNjcmVlbmluZywgaWYgYXBwbGljYWJsZS4gRm9yIEFNTDogVU5TVVBQT1JURURfQVNTRVQsIFBBU1NFRF9CWV9QT0xJQ1kuIEZvciBUcmF2ZWwgUnVsZTogVU5TVVBQT1JURURfQVNTRVQsIE5PX1RSQVZFTF9SVUxFX01FU1NBR0UsIFRSQU5TQUNUSU9OX1pFUk9fQU1PVU5ULiAgfCBbb3B0aW9uYWxdIAoqKnN0YXR1cyoqIHwgWyoqQW1sU3RhdHVzRW51bSoqXShBbWxTdGF0dXNFbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqcHJldl9zdGF0dXMqKiB8IFsqKkFtbFN0YXR1c0VudW0qKl0oQW1sU3RhdHVzRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnByZXZfYnlwYXNzX3JlYXNvbioqIHwgKipzdHIqKiB8IERlcHJlY2F0ZWQ6IFRoaXMgZmllbGQgaXMgbm90IGN1cnJlbnRseSByZXR1cm5lZCBpbiB0aGUgQVBJIHJlc3BvbnNlLiBQcmV2aW91cyBieXBhc3MgcmVhc29uIGJlZm9yZSB0aGUgY3VycmVudCBieXBhc3MgcmVhc29uIGNoYW5nZS4gIHwgW29wdGlvbmFsXSAKKip2ZXJkaWN0KiogfCBbKipTY3JlZW5pbmdWZXJkaWN0RW51bSoqXShTY3JlZW5pbmdWZXJkaWN0RW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnJpc2sqKiB8ICoqc3RyKiogfCBSaXNrIGxldmVsIGFzc2Vzc21lbnQgZm9yIHNjcmVlbmluZyByZXN1bHRzLiBWYWx1ZXMgdmFyeSBieSBwcm92aWRlciBhbmQgYXJlIG5vdCBtYW5hZ2VkIGJ5IHRoaXMgc2VydmljZS4gIEtub3duIHZhbHVlcyBieSBwcm92aWRlcjogLSBDaGFpbmFseXNpczogc2V2ZXJlUmlzaywgaGlnaFJpc2ssIG1lZGl1bVJpc2ssIGxvd1Jpc2ssIG5vUmlza0luZm8gLSBFbGxpcHRpYzogbm9SaXNrRGV0ZWN0ZWQgIExlZ2FjeSB2YWx1ZXMgKFNDUkVBTUlOR19TTkFLRV9DQVNFLCBtYXkgYXBwZWFyIGluIG9sZCB0cmFuc2FjdGlvbnMpOiBWRVJZX0hJR0gsIFNFVkVSRSwgSElHSCwgTUVESVVNLCBMT1csIE5PX1JJU0tfSU5GTywgVU5LTk9XTiAgfCBbb3B0aW9uYWxdIAoqKmV4dGVuZGVkX3Jpc2sqKiB8ICoqc3RyKiogfCBEZXByZWNhdGVkOiBUaGlzIGZpZWxkIGlzIG5vdCBjdXJyZW50bHkgcmV0dXJuZWQgaW4gdGhlIEFQSSByZXNwb25zZS4gVXNlIHJpc2sgaW5zdGVhZC4gIHwgW29wdGlvbmFsXSAKKipleHRlcm5hbF9pZCoqIHwgKipzdHIqKiB8IEV4dGVybmFsIGlkZW50aWZpZXIgZm9yIHRoZSBzY3JlZW5pbmcgKHByb3ZpZGVyLXNwZWNpZmljKSB8IFtvcHRpb25hbF0gCioqY3VzdG9tZXJfcmVmX2lkKiogfCAqKnN0cioqIHwgQ3VzdG9tZXItcHJvdmlkZWQgcmVmZXJlbmNlIGlkZW50aWZpZXIgZm9yIHRyYWNraW5nIHwgW29wdGlvbmFsXSAKKipyZWZfaWQqKiB8ICoqc3RyKiogfCBEZXByZWNhdGVkOiBUaGlzIGZpZWxkIGlzIG5vdCBjdXJyZW50bHkgcmV0dXJuZWQgaW4gdGhlIEFQSSByZXNwb25zZS4gSW50ZXJuYWwgcmVmZXJlbmNlIGlkZW50aWZpZXIuICB8IFtvcHRpb25hbF0gCioqY2F0ZWdvcnkqKiB8ICoqc3RyKiogfCBSaXNrIGNhdGVnb3J5IGNsYXNzaWZpY2F0aW9uLiBFeGFtcGxlczogRVhDSEFOR0UsIEdBTUJMSU5HLCBNSVhFUiwgREFSS05FVF9TRVJWSUNFLCBTQU5DVElPTkVEX0VOVElUWSAgfCBbb3B0aW9uYWxdIAoqKmNhdGVnb3J5X2lkKiogfCAqKmZsb2F0KiogfCBOdW1lcmljIGlkZW50aWZpZXIgZm9yIHRoZSByaXNrIGNhdGVnb3J5IHwgW29wdGlvbmFsXSAKKipkZXN0X2FkZHJlc3MqKiB8ICoqc3RyKiogfCBUaGUgZGVzdGluYXRpb24gYmxvY2tjaGFpbiBhZGRyZXNzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2NyZWVuaW5nIHwgW29wdGlvbmFsXSAKKipkZXN0X3RhZyoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIHRhZyBvciBtZW1vIChmb3IgY2hhaW5zIHRoYXQgc3VwcG9ydCBpdCBsaWtlIFhSUCwgWExNKSB8IFtvcHRpb25hbF0gCioqZGVzdF9yZWNvcmRfaWQqKiB8ICoqc3RyKiogfCBEZXByZWNhdGVkOiBUaGlzIGZpZWxkIGlzIG5vdCBjdXJyZW50bHkgcmV0dXJuZWQgaW4gdGhlIEFQSSByZXNwb25zZS4gVGhlIGRlc3RpbmF0aW9uIHJlY29yZCBpZGVudGlmaWVyIHVzZWQgYnkgdGhlIHNjcmVlbmluZyBwcm92aWRlci4gIHwgW29wdGlvbmFsXSAKKiphZGRyZXNzX3Jlc29sdXRpb25fc2lnbmF0dXJlKiogfCAqKnN0cioqIHwgRGVwcmVjYXRlZDogVGhpcyBmaWVsZCBpcyBub3QgY3VycmVudGx5IHJldHVybmVkIGluIHRoZSBBUEkgcmVzcG9uc2UuIENyeXB0b2dyYXBoaWMgc2lnbmF0dXJlIGZvciBhZGRyZXNzIHJlc29sdXRpb24gdmVyaWZpY2F0aW9uLiAgfCBbb3B0aW9uYWxdIAoqKmFtbF9yZXN1bHQqKiB8IFsqKlNjcmVlbmluZ0FtbFJlc3VsdCoqXShTY3JlZW5pbmdBbWxSZXN1bHQubWQpIHwgIHwgW29wdGlvbmFsXSAKKipyZXN1bHQqKiB8IFsqKlNjcmVlbmluZ1RyYXZlbFJ1bGVSZXN1bHQqKl0oU2NyZWVuaW5nVHJhdmVsUnVsZVJlc3VsdC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRldGFpbHNfbWVzc2FnZSoqIHwgKipzdHIqKiB8IEFkZGl0aW9uYWwgaHVtYW4tcmVhZGFibGUgZGV0YWlscyBvciBtZXNzYWdlIGFib3V0IHRoZSBzY3JlZW5pbmcgcmVzdWx0IHwgW29wdGlvbmFsXSAKKiptYXRjaGVkX2FsZXJ0KiogfCAqKm9iamVjdCoqIHwgSW5mb3JtYXRpb24gYWJvdXQgdGhlIEFNTCBhbGVydCB0aGF0IHdhcyBtYXRjaGVkLCBpZiBhbnkuIENvbnRhaW5zIGRldGFpbHMgYWJvdXQgdGhlIHNwZWNpZmljIGFsZXJ0IHRoYXQgdHJpZ2dlcmVkIGR1cmluZyBzY3JlZW5pbmcuICB8IFtvcHRpb25hbF0gCioqbWF0Y2hlZF9ydWxlKiogfCAqKm9iamVjdCoqIHwgVGhlIG1hdGNoZWQgcnVsZSBpbmZvcm1hdGlvbiBmb3IgdGhpcyBzY3JlZW5pbmcgcmVzdWx0LiBDb250YWlucyBkZXRhaWxzIGFib3V0IHdoaWNoIHNjcmVlbmluZyBydWxlIHdhcyBhcHBsaWVkIGFuZCBtYXRjaGVkLiAgfCBbb3B0aW9uYWxdIAoqKm1hdGNoZWRfcHJlc2NyZWVuaW5nX3J1bGUqKiB8IFsqKlNjcmVlbmluZ1RyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlKipdKFNjcmVlbmluZ1RyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqbWF0Y2hlZF9ub190cm1fc2NyZWVuaW5nX3J1bGUqKiB8ICoqb2JqZWN0KiogfCBNYXRjaGVkIG5vLVRSTSAoVHJhdmVsIFJ1bGUgTWVzc2FnZSkgc2NyZWVuaW5nIHJ1bGUgZGV0YWlscy4gVXNlZCB3aGVuIFRSTGluayBzY3JlZW5pbmcgZGV0ZWN0cyBhIG1pc3NpbmcgVFJNIHNjZW5hcmlvLiAgfCBbb3B0aW9uYWxdIAoqKmN1c3RvbWVyX2ludGVncmF0aW9uX2lkKiogfCAqKnN0cioqIHwgQ3VzdG9tZXIgaW50ZWdyYXRpb24gaWRlbnRpZmllciB1c2VkIGJ5IFRyYXZlbCBSdWxlIHByb3ZpZGVycyB8IFtvcHRpb25hbF0gCioqY3VzdG9tZXJfc2hvcnRfbmFtZSoqIHwgKipzdHIqKiB8IEN1c3RvbWVyIHNob3J0IG5hbWUgcmVnaXN0ZXJlZCB3aXRoIFRyYXZlbCBSdWxlIHByb3ZpZGVycyB8IFtvcHRpb25hbF0gCioqdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCoqIHwgKipzdHIqKiB8IFRyYXZlbCBydWxlIG1lc3NhZ2UgaWRlbnRpZmllciBmb3IgbGlua2luZyBhbmQgdHJhY2tpbmcgYWNyb3NzIHByb3ZpZGVycyB8IFtvcHRpb25hbF0gCioqcHJvdmlkZXJfcmVzcG9uc2UqKiB8ICoqRGljdFtzdHIsIG9iamVjdF0qKiB8IENvbXBsZXRlIHJlc3BvbnNlIGZyb20gdGhlIHNjcmVlbmluZyBwcm92aWRlci4gVGhpcyBpcyBhIGR5bmFtaWMgb2JqZWN0IHRoYXQgdmFyaWVzIHNpZ25pZmljYW50bHkgYmV0d2VlbiBkaWZmZXJlbnQgcHJvdmlkZXJzIChDaGFpbmFseXNpcywgRWxsaXB0aWMsIE5PVEFCRU5FLCBldGMuKS4gRWFjaCBwcm92aWRlciBoYXMgdGhlaXIgb3duIHByb3ByaWV0YXJ5IHJlc3BvbnNlIGZvcm1hdCBhbmQgc2NoZW1hLiAgRm9yIEFNTCBwcm92aWRlcnM6IENvbnRhaW5zIHJpc2sgc2NvcmVzLCBhbGVydHMsIGVudGl0eSBpbmZvcm1hdGlvbiBGb3IgVHJhdmVsIFJ1bGUgcHJvdmlkZXJzOiBDb250YWlucyBWQVNQIGluZm9ybWF0aW9uLCBQSUkgZGF0YSwgcHJvdG9jb2wtc3BlY2lmaWMgZmllbGRzICBUaGUgc3RydWN0dXJlIGlzIHByb3ZpZGVyLWRlcGVuZGVudCBhbmQgY2Fubm90IGJlIHN0YW5kYXJkaXplZCBhcyBlYWNoIHZlbmRvciBpbXBsZW1lbnRzIHRoZWlyIG93biBwcm9wcmlldGFyeSBkYXRhIG1vZGVscyBhbmQgcmVzcG9uc2UgZm9ybWF0cy4gIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbXBsaWFuY2Vfc2NyZWVuaW5nX3Jlc3VsdF9mdWxsX3BheWxvYWQgaW1wb3J0IENvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHRGdWxsUGF5bG9hZAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29tcGxpYW5jZVNjcmVlbmluZ1Jlc3VsdEZ1bGxQYXlsb2FkIGZyb20gYSBKU09OIHN0cmluZwpjb21wbGlhbmNlX3NjcmVlbmluZ19yZXN1bHRfZnVsbF9wYXlsb2FkX2luc3RhbmNlID0gQ29tcGxpYW5jZVNjcmVlbmluZ1Jlc3VsdEZ1bGxQYXlsb2FkLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHRGdWxsUGF5bG9hZC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjb21wbGlhbmNlX3NjcmVlbmluZ19yZXN1bHRfZnVsbF9wYXlsb2FkX2RpY3QgPSBjb21wbGlhbmNlX3NjcmVlbmluZ19yZXN1bHRfZnVsbF9wYXlsb2FkX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0RnVsbFBheWxvYWQgZnJvbSBhIGRpY3QKY29tcGxpYW5jZV9zY3JlZW5pbmdfcmVzdWx0X2Z1bGxfcGF5bG9hZF9mcm9tX2RpY3QgPSBDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0RnVsbFBheWxvYWQuZnJvbV9kaWN0KGNvbXBsaWFuY2Vfc2NyZWVuaW5nX3Jlc3VsdF9mdWxsX3BheWxvYWRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ConfigChangeRequestStatus.md b/docs/ConfigChangeRequestStatus.md index 8f4a51ed..06e2a7ff 100644 --- a/docs/ConfigChangeRequestStatus.md +++ b/docs/ConfigChangeRequestStatus.md @@ -1,18 +1 @@ -# ConfigChangeRequestStatus - - -## Enum - -* `WAITING_FOR_APPROVAL` (value: `'WAITING_FOR_APPROVAL'`) - -* `APPROVED` (value: `'APPROVED'`) - -* `CANCELLED` (value: `'CANCELLED'`) - -* `REJECTED` (value: `'REJECTED'`) - -* `FAILED` (value: `'FAILED'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25maWdDaGFuZ2VSZXF1ZXN0U3RhdHVzCgoKIyMgRW51bQoKKiBgV0FJVElOR19GT1JfQVBQUk9WQUxgICh2YWx1ZTogYCdXQUlUSU5HX0ZPUl9BUFBST1ZBTCdgKQoKKiBgQVBQUk9WRURgICh2YWx1ZTogYCdBUFBST1ZFRCdgKQoKKiBgQ0FOQ0VMTEVEYCAodmFsdWU6IGAnQ0FOQ0VMTEVEJ2ApCgoqIGBSRUpFQ1RFRGAgKHZhbHVlOiBgJ1JFSkVDVEVEJ2ApCgoqIGBGQUlMRURgICh2YWx1ZTogYCdGQUlMRUQnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ConfigConversionOperationSnapshot.md b/docs/ConfigConversionOperationSnapshot.md index e553e77e..7c4c3ba9 100644 --- a/docs/ConfigConversionOperationSnapshot.md +++ b/docs/ConfigConversionOperationSnapshot.md @@ -1,31 +1 @@ -# ConfigConversionOperationSnapshot - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**operation_id** | **str** | | -**type** | [**ConversionOperationType**](ConversionOperationType.md) | | -**params** | [**ConversionOperationConfigParams**](ConversionOperationConfigParams.md) | | - -## Example - -```python -from fireblocks.models.config_conversion_operation_snapshot import ConfigConversionOperationSnapshot - -# TODO update the JSON string below -json = "{}" -# create an instance of ConfigConversionOperationSnapshot from a JSON string -config_conversion_operation_snapshot_instance = ConfigConversionOperationSnapshot.from_json(json) -# print the JSON string representation of the object -print(ConfigConversionOperationSnapshot.to_json()) - -# convert the object into a dict -config_conversion_operation_snapshot_dict = config_conversion_operation_snapshot_instance.to_dict() -# create an instance of ConfigConversionOperationSnapshot from a dict -config_conversion_operation_snapshot_from_dict = ConfigConversionOperationSnapshot.from_dict(config_conversion_operation_snapshot_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25maWdDb252ZXJzaW9uT3BlcmF0aW9uU25hcHNob3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqb3BlcmF0aW9uX2lkKiogfCAqKnN0cioqIHwgIHwgCioqdHlwZSoqIHwgWyoqQ29udmVyc2lvbk9wZXJhdGlvblR5cGUqKl0oQ29udmVyc2lvbk9wZXJhdGlvblR5cGUubWQpIHwgIHwgCioqcGFyYW1zKiogfCBbKipDb252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zKipdKENvbnZlcnNpb25PcGVyYXRpb25Db25maWdQYXJhbXMubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25maWdfY29udmVyc2lvbl9vcGVyYXRpb25fc25hcHNob3QgaW1wb3J0IENvbmZpZ0NvbnZlcnNpb25PcGVyYXRpb25TbmFwc2hvdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29uZmlnQ29udmVyc2lvbk9wZXJhdGlvblNuYXBzaG90IGZyb20gYSBKU09OIHN0cmluZwpjb25maWdfY29udmVyc2lvbl9vcGVyYXRpb25fc25hcHNob3RfaW5zdGFuY2UgPSBDb25maWdDb252ZXJzaW9uT3BlcmF0aW9uU25hcHNob3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29uZmlnQ29udmVyc2lvbk9wZXJhdGlvblNuYXBzaG90LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNvbmZpZ19jb252ZXJzaW9uX29wZXJhdGlvbl9zbmFwc2hvdF9kaWN0ID0gY29uZmlnX2NvbnZlcnNpb25fb3BlcmF0aW9uX3NuYXBzaG90X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb25maWdDb252ZXJzaW9uT3BlcmF0aW9uU25hcHNob3QgZnJvbSBhIGRpY3QKY29uZmlnX2NvbnZlcnNpb25fb3BlcmF0aW9uX3NuYXBzaG90X2Zyb21fZGljdCA9IENvbmZpZ0NvbnZlcnNpb25PcGVyYXRpb25TbmFwc2hvdC5mcm9tX2RpY3QoY29uZmlnX2NvbnZlcnNpb25fb3BlcmF0aW9uX3NuYXBzaG90X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ConfigDisbursementOperationSnapshot.md b/docs/ConfigDisbursementOperationSnapshot.md index 7413f5db..f83981e7 100644 --- a/docs/ConfigDisbursementOperationSnapshot.md +++ b/docs/ConfigDisbursementOperationSnapshot.md @@ -1,31 +1 @@ -# ConfigDisbursementOperationSnapshot - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**operation_id** | **str** | | -**type** | [**DisbursementOperationType**](DisbursementOperationType.md) | | -**params** | [**DisbursementOperationConfigParams**](DisbursementOperationConfigParams.md) | | - -## Example - -```python -from fireblocks.models.config_disbursement_operation_snapshot import ConfigDisbursementOperationSnapshot - -# TODO update the JSON string below -json = "{}" -# create an instance of ConfigDisbursementOperationSnapshot from a JSON string -config_disbursement_operation_snapshot_instance = ConfigDisbursementOperationSnapshot.from_json(json) -# print the JSON string representation of the object -print(ConfigDisbursementOperationSnapshot.to_json()) - -# convert the object into a dict -config_disbursement_operation_snapshot_dict = config_disbursement_operation_snapshot_instance.to_dict() -# create an instance of ConfigDisbursementOperationSnapshot from a dict -config_disbursement_operation_snapshot_from_dict = ConfigDisbursementOperationSnapshot.from_dict(config_disbursement_operation_snapshot_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25maWdEaXNidXJzZW1lbnRPcGVyYXRpb25TbmFwc2hvdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipvcGVyYXRpb25faWQqKiB8ICoqc3RyKiogfCAgfCAKKip0eXBlKiogfCBbKipEaXNidXJzZW1lbnRPcGVyYXRpb25UeXBlKipdKERpc2J1cnNlbWVudE9wZXJhdGlvblR5cGUubWQpIHwgIHwgCioqcGFyYW1zKiogfCBbKipEaXNidXJzZW1lbnRPcGVyYXRpb25Db25maWdQYXJhbXMqKl0oRGlzYnVyc2VtZW50T3BlcmF0aW9uQ29uZmlnUGFyYW1zLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29uZmlnX2Rpc2J1cnNlbWVudF9vcGVyYXRpb25fc25hcHNob3QgaW1wb3J0IENvbmZpZ0Rpc2J1cnNlbWVudE9wZXJhdGlvblNuYXBzaG90CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb25maWdEaXNidXJzZW1lbnRPcGVyYXRpb25TbmFwc2hvdCBmcm9tIGEgSlNPTiBzdHJpbmcKY29uZmlnX2Rpc2J1cnNlbWVudF9vcGVyYXRpb25fc25hcHNob3RfaW5zdGFuY2UgPSBDb25maWdEaXNidXJzZW1lbnRPcGVyYXRpb25TbmFwc2hvdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDb25maWdEaXNidXJzZW1lbnRPcGVyYXRpb25TbmFwc2hvdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjb25maWdfZGlzYnVyc2VtZW50X29wZXJhdGlvbl9zbmFwc2hvdF9kaWN0ID0gY29uZmlnX2Rpc2J1cnNlbWVudF9vcGVyYXRpb25fc25hcHNob3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbmZpZ0Rpc2J1cnNlbWVudE9wZXJhdGlvblNuYXBzaG90IGZyb20gYSBkaWN0CmNvbmZpZ19kaXNidXJzZW1lbnRfb3BlcmF0aW9uX3NuYXBzaG90X2Zyb21fZGljdCA9IENvbmZpZ0Rpc2J1cnNlbWVudE9wZXJhdGlvblNuYXBzaG90LmZyb21fZGljdChjb25maWdfZGlzYnVyc2VtZW50X29wZXJhdGlvbl9zbmFwc2hvdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ConfigOperation.md b/docs/ConfigOperation.md index ba75c767..4b8be0be 100644 --- a/docs/ConfigOperation.md +++ b/docs/ConfigOperation.md @@ -1,33 +1 @@ -# ConfigOperation - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**operation_id** | **str** | | -**type** | [**DisbursementOperationType**](DisbursementOperationType.md) | | -**params** | [**DisbursementOperationConfigParams**](DisbursementOperationConfigParams.md) | | -**status** | [**ConfigOperationStatus**](ConfigOperationStatus.md) | | -**validation_failure** | [**DisbursementValidationFailure**](DisbursementValidationFailure.md) | | [optional] - -## Example - -```python -from fireblocks.models.config_operation import ConfigOperation - -# TODO update the JSON string below -json = "{}" -# create an instance of ConfigOperation from a JSON string -config_operation_instance = ConfigOperation.from_json(json) -# print the JSON string representation of the object -print(ConfigOperation.to_json()) - -# convert the object into a dict -config_operation_dict = config_operation_instance.to_dict() -# create an instance of ConfigOperation from a dict -config_operation_from_dict = ConfigOperation.from_dict(config_operation_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25maWdPcGVyYXRpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqb3BlcmF0aW9uX2lkKiogfCAqKnN0cioqIHwgIHwgCioqdHlwZSoqIHwgWyoqRGlzYnVyc2VtZW50T3BlcmF0aW9uVHlwZSoqXShEaXNidXJzZW1lbnRPcGVyYXRpb25UeXBlLm1kKSB8ICB8IAoqKnBhcmFtcyoqIHwgWyoqRGlzYnVyc2VtZW50T3BlcmF0aW9uQ29uZmlnUGFyYW1zKipdKERpc2J1cnNlbWVudE9wZXJhdGlvbkNvbmZpZ1BhcmFtcy5tZCkgfCAgfCAKKipzdGF0dXMqKiB8IFsqKkNvbmZpZ09wZXJhdGlvblN0YXR1cyoqXShDb25maWdPcGVyYXRpb25TdGF0dXMubWQpIHwgIHwgCioqdmFsaWRhdGlvbl9mYWlsdXJlKiogfCBbKipEaXNidXJzZW1lbnRWYWxpZGF0aW9uRmFpbHVyZSoqXShEaXNidXJzZW1lbnRWYWxpZGF0aW9uRmFpbHVyZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29uZmlnX29wZXJhdGlvbiBpbXBvcnQgQ29uZmlnT3BlcmF0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb25maWdPcGVyYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCmNvbmZpZ19vcGVyYXRpb25faW5zdGFuY2UgPSBDb25maWdPcGVyYXRpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29uZmlnT3BlcmF0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNvbmZpZ19vcGVyYXRpb25fZGljdCA9IGNvbmZpZ19vcGVyYXRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbmZpZ09wZXJhdGlvbiBmcm9tIGEgZGljdApjb25maWdfb3BlcmF0aW9uX2Zyb21fZGljdCA9IENvbmZpZ09wZXJhdGlvbi5mcm9tX2RpY3QoY29uZmlnX29wZXJhdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ConfigOperationSnapshot.md b/docs/ConfigOperationSnapshot.md index bbf3046c..d0747b99 100644 --- a/docs/ConfigOperationSnapshot.md +++ b/docs/ConfigOperationSnapshot.md @@ -1,31 +1 @@ -# ConfigOperationSnapshot - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**operation_id** | **str** | | -**type** | [**DisbursementOperationType**](DisbursementOperationType.md) | | -**params** | [**DisbursementOperationConfigParams**](DisbursementOperationConfigParams.md) | | - -## Example - -```python -from fireblocks.models.config_operation_snapshot import ConfigOperationSnapshot - -# TODO update the JSON string below -json = "{}" -# create an instance of ConfigOperationSnapshot from a JSON string -config_operation_snapshot_instance = ConfigOperationSnapshot.from_json(json) -# print the JSON string representation of the object -print(ConfigOperationSnapshot.to_json()) - -# convert the object into a dict -config_operation_snapshot_dict = config_operation_snapshot_instance.to_dict() -# create an instance of ConfigOperationSnapshot from a dict -config_operation_snapshot_from_dict = ConfigOperationSnapshot.from_dict(config_operation_snapshot_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25maWdPcGVyYXRpb25TbmFwc2hvdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipvcGVyYXRpb25faWQqKiB8ICoqc3RyKiogfCAgfCAKKip0eXBlKiogfCBbKipEaXNidXJzZW1lbnRPcGVyYXRpb25UeXBlKipdKERpc2J1cnNlbWVudE9wZXJhdGlvblR5cGUubWQpIHwgIHwgCioqcGFyYW1zKiogfCBbKipEaXNidXJzZW1lbnRPcGVyYXRpb25Db25maWdQYXJhbXMqKl0oRGlzYnVyc2VtZW50T3BlcmF0aW9uQ29uZmlnUGFyYW1zLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29uZmlnX29wZXJhdGlvbl9zbmFwc2hvdCBpbXBvcnQgQ29uZmlnT3BlcmF0aW9uU25hcHNob3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbmZpZ09wZXJhdGlvblNuYXBzaG90IGZyb20gYSBKU09OIHN0cmluZwpjb25maWdfb3BlcmF0aW9uX3NuYXBzaG90X2luc3RhbmNlID0gQ29uZmlnT3BlcmF0aW9uU25hcHNob3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29uZmlnT3BlcmF0aW9uU25hcHNob3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29uZmlnX29wZXJhdGlvbl9zbmFwc2hvdF9kaWN0ID0gY29uZmlnX29wZXJhdGlvbl9zbmFwc2hvdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29uZmlnT3BlcmF0aW9uU25hcHNob3QgZnJvbSBhIGRpY3QKY29uZmlnX29wZXJhdGlvbl9zbmFwc2hvdF9mcm9tX2RpY3QgPSBDb25maWdPcGVyYXRpb25TbmFwc2hvdC5mcm9tX2RpY3QoY29uZmlnX29wZXJhdGlvbl9zbmFwc2hvdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ConfigOperationStatus.md b/docs/ConfigOperationStatus.md index fa3f6bfd..cc0dc1d8 100644 --- a/docs/ConfigOperationStatus.md +++ b/docs/ConfigOperationStatus.md @@ -1,16 +1 @@ -# ConfigOperationStatus - - -## Enum - -* `PENDING` (value: `'PENDING'`) - -* `VALIDATION_IN_PROGRESS` (value: `'VALIDATION_IN_PROGRESS'`) - -* `READY_FOR_EXECUTION` (value: `'READY_FOR_EXECUTION'`) - -* `VALIDATION_FAILED` (value: `'VALIDATION_FAILED'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25maWdPcGVyYXRpb25TdGF0dXMKCgojIyBFbnVtCgoqIGBQRU5ESU5HYCAodmFsdWU6IGAnUEVORElORydgKQoKKiBgVkFMSURBVElPTl9JTl9QUk9HUkVTU2AgKHZhbHVlOiBgJ1ZBTElEQVRJT05fSU5fUFJPR1JFU1MnYCkKCiogYFJFQURZX0ZPUl9FWEVDVVRJT05gICh2YWx1ZTogYCdSRUFEWV9GT1JfRVhFQ1VUSU9OJ2ApCgoqIGBWQUxJREFUSU9OX0ZBSUxFRGAgKHZhbHVlOiBgJ1ZBTElEQVRJT05fRkFJTEVEJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ConfigTransferOperationSnapshot.md b/docs/ConfigTransferOperationSnapshot.md index 5c552a8c..a744b1b6 100644 --- a/docs/ConfigTransferOperationSnapshot.md +++ b/docs/ConfigTransferOperationSnapshot.md @@ -1,31 +1 @@ -# ConfigTransferOperationSnapshot - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**operation_id** | **str** | | -**type** | [**TransferOperationType**](TransferOperationType.md) | | -**params** | [**TransferOperationConfigParams**](TransferOperationConfigParams.md) | | - -## Example - -```python -from fireblocks.models.config_transfer_operation_snapshot import ConfigTransferOperationSnapshot - -# TODO update the JSON string below -json = "{}" -# create an instance of ConfigTransferOperationSnapshot from a JSON string -config_transfer_operation_snapshot_instance = ConfigTransferOperationSnapshot.from_json(json) -# print the JSON string representation of the object -print(ConfigTransferOperationSnapshot.to_json()) - -# convert the object into a dict -config_transfer_operation_snapshot_dict = config_transfer_operation_snapshot_instance.to_dict() -# create an instance of ConfigTransferOperationSnapshot from a dict -config_transfer_operation_snapshot_from_dict = ConfigTransferOperationSnapshot.from_dict(config_transfer_operation_snapshot_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25maWdUcmFuc2Zlck9wZXJhdGlvblNuYXBzaG90CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm9wZXJhdGlvbl9pZCoqIHwgKipzdHIqKiB8ICB8IAoqKnR5cGUqKiB8IFsqKlRyYW5zZmVyT3BlcmF0aW9uVHlwZSoqXShUcmFuc2Zlck9wZXJhdGlvblR5cGUubWQpIHwgIHwgCioqcGFyYW1zKiogfCBbKipUcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcyoqXShUcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcy5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbmZpZ190cmFuc2Zlcl9vcGVyYXRpb25fc25hcHNob3QgaW1wb3J0IENvbmZpZ1RyYW5zZmVyT3BlcmF0aW9uU25hcHNob3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbmZpZ1RyYW5zZmVyT3BlcmF0aW9uU25hcHNob3QgZnJvbSBhIEpTT04gc3RyaW5nCmNvbmZpZ190cmFuc2Zlcl9vcGVyYXRpb25fc25hcHNob3RfaW5zdGFuY2UgPSBDb25maWdUcmFuc2Zlck9wZXJhdGlvblNuYXBzaG90LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbmZpZ1RyYW5zZmVyT3BlcmF0aW9uU25hcHNob3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29uZmlnX3RyYW5zZmVyX29wZXJhdGlvbl9zbmFwc2hvdF9kaWN0ID0gY29uZmlnX3RyYW5zZmVyX29wZXJhdGlvbl9zbmFwc2hvdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29uZmlnVHJhbnNmZXJPcGVyYXRpb25TbmFwc2hvdCBmcm9tIGEgZGljdApjb25maWdfdHJhbnNmZXJfb3BlcmF0aW9uX3NuYXBzaG90X2Zyb21fZGljdCA9IENvbmZpZ1RyYW5zZmVyT3BlcmF0aW9uU25hcHNob3QuZnJvbV9kaWN0KGNvbmZpZ190cmFuc2Zlcl9vcGVyYXRpb25fc25hcHNob3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ConnectedAccount.md b/docs/ConnectedAccount.md index c15fa734..3dac9c26 100644 --- a/docs/ConnectedAccount.md +++ b/docs/ConnectedAccount.md @@ -1,35 +1 @@ -# ConnectedAccount - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | Unique identifier of the connected account. | -**name** | **str** | Human-readable name of the connected account. | -**provider_id** | **str** | The ID of the venue the account belongs to. | -**status** | [**ConnectedAccountApprovalStatus**](ConnectedAccountApprovalStatus.md) | | -**total_balance** | [**ConnectedAccountTotalBalance**](ConnectedAccountTotalBalance.md) | | -**manifest** | [**ConnectedAccountManifest**](ConnectedAccountManifest.md) | | -**parent_id** | **str** | The ID of the parent main account, if this is a sub account. | [optional] - -## Example - -```python -from fireblocks.models.connected_account import ConnectedAccount - -# TODO update the JSON string below -json = "{}" -# create an instance of ConnectedAccount from a JSON string -connected_account_instance = ConnectedAccount.from_json(json) -# print the JSON string representation of the object -print(ConnectedAccount.to_json()) - -# convert the object into a dict -connected_account_dict = connected_account_instance.to_dict() -# create an instance of ConnectedAccount from a dict -connected_account_from_dict = ConnectedAccount.from_dict(connected_account_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25uZWN0ZWRBY2NvdW50CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvbm5lY3RlZCBhY2NvdW50LiB8IAoqKm5hbWUqKiB8ICoqc3RyKiogfCBIdW1hbi1yZWFkYWJsZSBuYW1lIG9mIHRoZSBjb25uZWN0ZWQgYWNjb3VudC4gfCAKKipwcm92aWRlcl9pZCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgdmVudWUgdGhlIGFjY291bnQgYmVsb25ncyB0by4gfCAKKipzdGF0dXMqKiB8IFsqKkNvbm5lY3RlZEFjY291bnRBcHByb3ZhbFN0YXR1cyoqXShDb25uZWN0ZWRBY2NvdW50QXBwcm92YWxTdGF0dXMubWQpIHwgIHwgCioqdG90YWxfYmFsYW5jZSoqIHwgWyoqQ29ubmVjdGVkQWNjb3VudFRvdGFsQmFsYW5jZSoqXShDb25uZWN0ZWRBY2NvdW50VG90YWxCYWxhbmNlLm1kKSB8ICB8IAoqKm1hbmlmZXN0KiogfCBbKipDb25uZWN0ZWRBY2NvdW50TWFuaWZlc3QqKl0oQ29ubmVjdGVkQWNjb3VudE1hbmlmZXN0Lm1kKSB8ICB8IAoqKnBhcmVudF9pZCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgcGFyZW50IG1haW4gYWNjb3VudCwgaWYgdGhpcyBpcyBhIHN1YiBhY2NvdW50LiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfYWNjb3VudCBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29ubmVjdGVkQWNjb3VudCBmcm9tIGEgSlNPTiBzdHJpbmcKY29ubmVjdGVkX2FjY291bnRfaW5zdGFuY2UgPSBDb25uZWN0ZWRBY2NvdW50LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbm5lY3RlZEFjY291bnQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29ubmVjdGVkX2FjY291bnRfZGljdCA9IGNvbm5lY3RlZF9hY2NvdW50X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb25uZWN0ZWRBY2NvdW50IGZyb20gYSBkaWN0CmNvbm5lY3RlZF9hY2NvdW50X2Zyb21fZGljdCA9IENvbm5lY3RlZEFjY291bnQuZnJvbV9kaWN0KGNvbm5lY3RlZF9hY2NvdW50X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ConnectedAccountApprovalStatus.md b/docs/ConnectedAccountApprovalStatus.md index 7f1c26a6..3992b190 100644 --- a/docs/ConnectedAccountApprovalStatus.md +++ b/docs/ConnectedAccountApprovalStatus.md @@ -1,18 +1 @@ -# ConnectedAccountApprovalStatus - - -## Enum - -* `WAITING_FOR_APPROVAL` (value: `'WAITING_FOR_APPROVAL'`) - -* `APPROVED` (value: `'APPROVED'`) - -* `REJECTED` (value: `'REJECTED'`) - -* `CANCELLED` (value: `'CANCELLED'`) - -* `FAILED` (value: `'FAILED'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25uZWN0ZWRBY2NvdW50QXBwcm92YWxTdGF0dXMKCgojIyBFbnVtCgoqIGBXQUlUSU5HX0ZPUl9BUFBST1ZBTGAgKHZhbHVlOiBgJ1dBSVRJTkdfRk9SX0FQUFJPVkFMJ2ApCgoqIGBBUFBST1ZFRGAgKHZhbHVlOiBgJ0FQUFJPVkVEJ2ApCgoqIGBSRUpFQ1RFRGAgKHZhbHVlOiBgJ1JFSkVDVEVEJ2ApCgoqIGBDQU5DRUxMRURgICh2YWx1ZTogYCdDQU5DRUxMRUQnYCkKCiogYEZBSUxFRGAgKHZhbHVlOiBgJ0ZBSUxFRCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ConnectedAccountAssetType.md b/docs/ConnectedAccountAssetType.md index cd6367c6..1ed17d0b 100644 --- a/docs/ConnectedAccountAssetType.md +++ b/docs/ConnectedAccountAssetType.md @@ -1,12 +1 @@ -# ConnectedAccountAssetType - - -## Enum - -* `DIGITAL` (value: `'DIGITAL'`) - -* `FIAT` (value: `'FIAT'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25uZWN0ZWRBY2NvdW50QXNzZXRUeXBlCgoKIyMgRW51bQoKKiBgRElHSVRBTGAgKHZhbHVlOiBgJ0RJR0lUQUwnYCkKCiogYEZJQVRgICh2YWx1ZTogYCdGSUFUJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ConnectedAccountBalances.md b/docs/ConnectedAccountBalances.md index 1413bc6c..e0dba01c 100644 --- a/docs/ConnectedAccountBalances.md +++ b/docs/ConnectedAccountBalances.md @@ -1,35 +1 @@ -# ConnectedAccountBalances - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**asset_id** | **str** | Asset identifier (e.g., BTC, ETH, USDC). | -**available_amount** | **str** | Amount available for use. | -**total_amount** | **str** | Total amount including locked/held balances. | -**locked_amount** | **str** | Amount currently locked/held. | [optional] -**credit_amount** | **str** | Credit line amount, if applicable (0 when not used). | [optional] -**balance_type** | **str** | Wallet type/category (e.g., SPOT, MARGIN, FUNDING). | -**balance_name** | **str** | Display name for the balance type (at the provider) | [optional] - -## Example - -```python -from fireblocks.models.connected_account_balances import ConnectedAccountBalances - -# TODO update the JSON string below -json = "{}" -# create an instance of ConnectedAccountBalances from a JSON string -connected_account_balances_instance = ConnectedAccountBalances.from_json(json) -# print the JSON string representation of the object -print(ConnectedAccountBalances.to_json()) - -# convert the object into a dict -connected_account_balances_dict = connected_account_balances_instance.to_dict() -# create an instance of ConnectedAccountBalances from a dict -connected_account_balances_from_dict = ConnectedAccountBalances.from_dict(connected_account_balances_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXMKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYXNzZXRfaWQqKiB8ICoqc3RyKiogfCBBc3NldCBpZGVudGlmaWVyIChlLmcuLCBCVEMsIEVUSCwgVVNEQykuIHwgCioqYXZhaWxhYmxlX2Ftb3VudCoqIHwgKipzdHIqKiB8IEFtb3VudCBhdmFpbGFibGUgZm9yIHVzZS4gfCAKKip0b3RhbF9hbW91bnQqKiB8ICoqc3RyKiogfCBUb3RhbCBhbW91bnQgaW5jbHVkaW5nIGxvY2tlZC9oZWxkIGJhbGFuY2VzLiB8IAoqKmxvY2tlZF9hbW91bnQqKiB8ICoqc3RyKiogfCBBbW91bnQgY3VycmVudGx5IGxvY2tlZC9oZWxkLiB8IFtvcHRpb25hbF0gCioqY3JlZGl0X2Ftb3VudCoqIHwgKipzdHIqKiB8IENyZWRpdCBsaW5lIGFtb3VudCwgaWYgYXBwbGljYWJsZSAoMCB3aGVuIG5vdCB1c2VkKS4gfCBbb3B0aW9uYWxdIAoqKmJhbGFuY2VfdHlwZSoqIHwgKipzdHIqKiB8IFdhbGxldCB0eXBlL2NhdGVnb3J5IChlLmcuLCBTUE9ULCBNQVJHSU4sIEZVTkRJTkcpLiB8IAoqKmJhbGFuY2VfbmFtZSoqIHwgKipzdHIqKiB8IERpc3BsYXkgbmFtZSBmb3IgdGhlIGJhbGFuY2UgdHlwZSAoYXQgdGhlIHByb3ZpZGVyKSB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfYWNjb3VudF9iYWxhbmNlcyBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudEJhbGFuY2VzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXMgZnJvbSBhIEpTT04gc3RyaW5nCmNvbm5lY3RlZF9hY2NvdW50X2JhbGFuY2VzX2luc3RhbmNlID0gQ29ubmVjdGVkQWNjb3VudEJhbGFuY2VzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbm5lY3RlZEFjY291bnRCYWxhbmNlcy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjb25uZWN0ZWRfYWNjb3VudF9iYWxhbmNlc19kaWN0ID0gY29ubmVjdGVkX2FjY291bnRfYmFsYW5jZXNfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbm5lY3RlZEFjY291bnRCYWxhbmNlcyBmcm9tIGEgZGljdApjb25uZWN0ZWRfYWNjb3VudF9iYWxhbmNlc19mcm9tX2RpY3QgPSBDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXMuZnJvbV9kaWN0KGNvbm5lY3RlZF9hY2NvdW50X2JhbGFuY2VzX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ConnectedAccountBalancesResponse.md b/docs/ConnectedAccountBalancesResponse.md index cd0d17b9..ba55d527 100644 --- a/docs/ConnectedAccountBalancesResponse.md +++ b/docs/ConnectedAccountBalancesResponse.md @@ -1,31 +1 @@ -# ConnectedAccountBalancesResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[ConnectedAccountBalances]**](ConnectedAccountBalances.md) | Flat balance row for a single asset within an account and wallet type. One row per (assetId, balanceType). | -**total** | **int** | Total number of balance rows by query. | [optional] -**next** | **str** | A cursor for the next page of results, if available. | [optional] - -## Example - -```python -from fireblocks.models.connected_account_balances_response import ConnectedAccountBalancesResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ConnectedAccountBalancesResponse from a JSON string -connected_account_balances_response_instance = ConnectedAccountBalancesResponse.from_json(json) -# print the JSON string representation of the object -print(ConnectedAccountBalancesResponse.to_json()) - -# convert the object into a dict -connected_account_balances_response_dict = connected_account_balances_response_instance.to_dict() -# create an instance of ConnectedAccountBalancesResponse from a dict -connected_account_balances_response_from_dict = ConnectedAccountBalancesResponse.from_dict(connected_account_balances_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXNSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkYXRhKiogfCBbKipMaXN0W0Nvbm5lY3RlZEFjY291bnRCYWxhbmNlc10qKl0oQ29ubmVjdGVkQWNjb3VudEJhbGFuY2VzLm1kKSB8IEZsYXQgYmFsYW5jZSByb3cgZm9yIGEgc2luZ2xlIGFzc2V0IHdpdGhpbiBhbiBhY2NvdW50IGFuZCB3YWxsZXQgdHlwZS4gT25lIHJvdyBwZXIgKGFzc2V0SWQsIGJhbGFuY2VUeXBlKS4gfCAKKip0b3RhbCoqIHwgKippbnQqKiB8IFRvdGFsIG51bWJlciBvZiBiYWxhbmNlIHJvd3MgYnkgcXVlcnkuIHwgW29wdGlvbmFsXSAKKipuZXh0KiogfCAqKnN0cioqIHwgQSBjdXJzb3IgZm9yIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cywgaWYgYXZhaWxhYmxlLiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfYWNjb3VudF9iYWxhbmNlc19yZXNwb25zZSBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudEJhbGFuY2VzUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbm5lY3RlZEFjY291bnRCYWxhbmNlc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpjb25uZWN0ZWRfYWNjb3VudF9iYWxhbmNlc19yZXNwb25zZV9pbnN0YW5jZSA9IENvbm5lY3RlZEFjY291bnRCYWxhbmNlc1Jlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbm5lY3RlZEFjY291bnRCYWxhbmNlc1Jlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNvbm5lY3RlZF9hY2NvdW50X2JhbGFuY2VzX3Jlc3BvbnNlX2RpY3QgPSBjb25uZWN0ZWRfYWNjb3VudF9iYWxhbmNlc19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29ubmVjdGVkQWNjb3VudEJhbGFuY2VzUmVzcG9uc2UgZnJvbSBhIGRpY3QKY29ubmVjdGVkX2FjY291bnRfYmFsYW5jZXNfcmVzcG9uc2VfZnJvbV9kaWN0ID0gQ29ubmVjdGVkQWNjb3VudEJhbGFuY2VzUmVzcG9uc2UuZnJvbV9kaWN0KGNvbm5lY3RlZF9hY2NvdW50X2JhbGFuY2VzX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ConnectedAccountCapability.md b/docs/ConnectedAccountCapability.md index dcc2928a..8d5fbd8d 100644 --- a/docs/ConnectedAccountCapability.md +++ b/docs/ConnectedAccountCapability.md @@ -1,14 +1 @@ -# ConnectedAccountCapability - - -## Enum - -* `WITHDRAWALS` (value: `'WITHDRAWALS'`) - -* `DEPOSITS` (value: `'DEPOSITS'`) - -* `TRADING` (value: `'TRADING'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25uZWN0ZWRBY2NvdW50Q2FwYWJpbGl0eQoKCiMjIEVudW0KCiogYFdJVEhEUkFXQUxTYCAodmFsdWU6IGAnV0lUSERSQVdBTFMnYCkKCiogYERFUE9TSVRTYCAodmFsdWU6IGAnREVQT1NJVFMnYCkKCiogYFRSQURJTkdgICh2YWx1ZTogYCdUUkFESU5HJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ConnectedAccountErrorResponse.md b/docs/ConnectedAccountErrorResponse.md index 2a143f26..dc224fae 100644 --- a/docs/ConnectedAccountErrorResponse.md +++ b/docs/ConnectedAccountErrorResponse.md @@ -1,30 +1 @@ -# ConnectedAccountErrorResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**error_message** | **str** | Error message describing what went wrong | -**error_code** | **str** | Error code identifying the type of error | - -## Example - -```python -from fireblocks.models.connected_account_error_response import ConnectedAccountErrorResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ConnectedAccountErrorResponse from a JSON string -connected_account_error_response_instance = ConnectedAccountErrorResponse.from_json(json) -# print the JSON string representation of the object -print(ConnectedAccountErrorResponse.to_json()) - -# convert the object into a dict -connected_account_error_response_dict = connected_account_error_response_instance.to_dict() -# create an instance of ConnectedAccountErrorResponse from a dict -connected_account_error_response_from_dict = ConnectedAccountErrorResponse.from_dict(connected_account_error_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25uZWN0ZWRBY2NvdW50RXJyb3JSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiplcnJvcl9tZXNzYWdlKiogfCAqKnN0cioqIHwgRXJyb3IgbWVzc2FnZSBkZXNjcmliaW5nIHdoYXQgd2VudCB3cm9uZyB8IAoqKmVycm9yX2NvZGUqKiB8ICoqc3RyKiogfCBFcnJvciBjb2RlIGlkZW50aWZ5aW5nIHRoZSB0eXBlIG9mIGVycm9yIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfYWNjb3VudF9lcnJvcl9yZXNwb25zZSBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudEVycm9yUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbm5lY3RlZEFjY291bnRFcnJvclJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpjb25uZWN0ZWRfYWNjb3VudF9lcnJvcl9yZXNwb25zZV9pbnN0YW5jZSA9IENvbm5lY3RlZEFjY291bnRFcnJvclJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbm5lY3RlZEFjY291bnRFcnJvclJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNvbm5lY3RlZF9hY2NvdW50X2Vycm9yX3Jlc3BvbnNlX2RpY3QgPSBjb25uZWN0ZWRfYWNjb3VudF9lcnJvcl9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29ubmVjdGVkQWNjb3VudEVycm9yUmVzcG9uc2UgZnJvbSBhIGRpY3QKY29ubmVjdGVkX2FjY291bnRfZXJyb3JfcmVzcG9uc2VfZnJvbV9kaWN0ID0gQ29ubmVjdGVkQWNjb3VudEVycm9yUmVzcG9uc2UuZnJvbV9kaWN0KGNvbm5lY3RlZF9hY2NvdW50X2Vycm9yX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ConnectedAccountManifest.md b/docs/ConnectedAccountManifest.md index 5f761da7..ec8499ba 100644 --- a/docs/ConnectedAccountManifest.md +++ b/docs/ConnectedAccountManifest.md @@ -1,30 +1 @@ -# ConnectedAccountManifest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**asset_types** | [**List[ConnectedAccountAssetType]**](ConnectedAccountAssetType.md) | Asset types supported by the connected account. | -**capabilities** | [**List[ConnectedAccountCapability]**](ConnectedAccountCapability.md) | Features supported for the connected account. Logic: - If account capabilities include ramp -> TRADING - If account capabilities include transfers -> DEPOSITS - If account capabilities include transfersBlockchain / transfersFiat / transfersPeerAccounts / transfersInternal -> WITHDRAWALS | - -## Example - -```python -from fireblocks.models.connected_account_manifest import ConnectedAccountManifest - -# TODO update the JSON string below -json = "{}" -# create an instance of ConnectedAccountManifest from a JSON string -connected_account_manifest_instance = ConnectedAccountManifest.from_json(json) -# print the JSON string representation of the object -print(ConnectedAccountManifest.to_json()) - -# convert the object into a dict -connected_account_manifest_dict = connected_account_manifest_instance.to_dict() -# create an instance of ConnectedAccountManifest from a dict -connected_account_manifest_from_dict = ConnectedAccountManifest.from_dict(connected_account_manifest_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25uZWN0ZWRBY2NvdW50TWFuaWZlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYXNzZXRfdHlwZXMqKiB8IFsqKkxpc3RbQ29ubmVjdGVkQWNjb3VudEFzc2V0VHlwZV0qKl0oQ29ubmVjdGVkQWNjb3VudEFzc2V0VHlwZS5tZCkgfCBBc3NldCB0eXBlcyBzdXBwb3J0ZWQgYnkgdGhlIGNvbm5lY3RlZCBhY2NvdW50LiB8IAoqKmNhcGFiaWxpdGllcyoqIHwgWyoqTGlzdFtDb25uZWN0ZWRBY2NvdW50Q2FwYWJpbGl0eV0qKl0oQ29ubmVjdGVkQWNjb3VudENhcGFiaWxpdHkubWQpIHwgRmVhdHVyZXMgc3VwcG9ydGVkIGZvciB0aGUgY29ubmVjdGVkIGFjY291bnQuIExvZ2ljOiAtIElmIGFjY291bnQgY2FwYWJpbGl0aWVzIGluY2x1ZGUgcmFtcCAtJmd0OyBUUkFESU5HIC0gSWYgYWNjb3VudCBjYXBhYmlsaXRpZXMgaW5jbHVkZSB0cmFuc2ZlcnMgLSZndDsgREVQT1NJVFMgLSBJZiBhY2NvdW50IGNhcGFiaWxpdGllcyBpbmNsdWRlIHRyYW5zZmVyc0Jsb2NrY2hhaW4gLyB0cmFuc2ZlcnNGaWF0IC8gdHJhbnNmZXJzUGVlckFjY291bnRzIC8gdHJhbnNmZXJzSW50ZXJuYWwgLSZndDsgV0lUSERSQVdBTFMgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfYWNjb3VudF9tYW5pZmVzdCBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudE1hbmlmZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb25uZWN0ZWRBY2NvdW50TWFuaWZlc3QgZnJvbSBhIEpTT04gc3RyaW5nCmNvbm5lY3RlZF9hY2NvdW50X21hbmlmZXN0X2luc3RhbmNlID0gQ29ubmVjdGVkQWNjb3VudE1hbmlmZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbm5lY3RlZEFjY291bnRNYW5pZmVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjb25uZWN0ZWRfYWNjb3VudF9tYW5pZmVzdF9kaWN0ID0gY29ubmVjdGVkX2FjY291bnRfbWFuaWZlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbm5lY3RlZEFjY291bnRNYW5pZmVzdCBmcm9tIGEgZGljdApjb25uZWN0ZWRfYWNjb3VudF9tYW5pZmVzdF9mcm9tX2RpY3QgPSBDb25uZWN0ZWRBY2NvdW50TWFuaWZlc3QuZnJvbV9kaWN0KGNvbm5lY3RlZF9hY2NvdW50X21hbmlmZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ConnectedAccountRateResponse.md b/docs/ConnectedAccountRateResponse.md index ecaf7680..075bc1d7 100644 --- a/docs/ConnectedAccountRateResponse.md +++ b/docs/ConnectedAccountRateResponse.md @@ -1,32 +1 @@ -# ConnectedAccountRateResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_id** | **str** | The ID of the account that generated the quote. | -**base_asset_id** | **str** | The source asset identifier | -**quote_asset_id** | **str** | The target asset identifier | -**rate** | **str** | The exchange rate value | - -## Example - -```python -from fireblocks.models.connected_account_rate_response import ConnectedAccountRateResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ConnectedAccountRateResponse from a JSON string -connected_account_rate_response_instance = ConnectedAccountRateResponse.from_json(json) -# print the JSON string representation of the object -print(ConnectedAccountRateResponse.to_json()) - -# convert the object into a dict -connected_account_rate_response_dict = connected_account_rate_response_instance.to_dict() -# create an instance of ConnectedAccountRateResponse from a dict -connected_account_rate_response_from_dict = ConnectedAccountRateResponse.from_dict(connected_account_rate_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25uZWN0ZWRBY2NvdW50UmF0ZVJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFjY291bnRfaWQqKiB8ICoqc3RyKiogfCBUaGUgSUQgb2YgdGhlIGFjY291bnQgdGhhdCBnZW5lcmF0ZWQgdGhlIHF1b3RlLiB8IAoqKmJhc2VfYXNzZXRfaWQqKiB8ICoqc3RyKiogfCBUaGUgc291cmNlIGFzc2V0IGlkZW50aWZpZXIgfCAKKipxdW90ZV9hc3NldF9pZCoqIHwgKipzdHIqKiB8IFRoZSB0YXJnZXQgYXNzZXQgaWRlbnRpZmllciB8IAoqKnJhdGUqKiB8ICoqc3RyKiogfCBUaGUgZXhjaGFuZ2UgcmF0ZSB2YWx1ZSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRfcmF0ZV9yZXNwb25zZSBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudFJhdGVSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29ubmVjdGVkQWNjb3VudFJhdGVSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKY29ubmVjdGVkX2FjY291bnRfcmF0ZV9yZXNwb25zZV9pbnN0YW5jZSA9IENvbm5lY3RlZEFjY291bnRSYXRlUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29ubmVjdGVkQWNjb3VudFJhdGVSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjb25uZWN0ZWRfYWNjb3VudF9yYXRlX3Jlc3BvbnNlX2RpY3QgPSBjb25uZWN0ZWRfYWNjb3VudF9yYXRlX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb25uZWN0ZWRBY2NvdW50UmF0ZVJlc3BvbnNlIGZyb20gYSBkaWN0CmNvbm5lY3RlZF9hY2NvdW50X3JhdGVfcmVzcG9uc2VfZnJvbV9kaWN0ID0gQ29ubmVjdGVkQWNjb3VudFJhdGVSZXNwb25zZS5mcm9tX2RpY3QoY29ubmVjdGVkX2FjY291bnRfcmF0ZV9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ConnectedAccountTotalBalance.md b/docs/ConnectedAccountTotalBalance.md index 8104f7cf..8b3ceaf9 100644 --- a/docs/ConnectedAccountTotalBalance.md +++ b/docs/ConnectedAccountTotalBalance.md @@ -1,31 +1 @@ -# ConnectedAccountTotalBalance - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | **str** | The denominated currency value of the account. | -**denominated_asset_id** | **str** | The asset ID of the total balance. | -**has_full_asset_coverage** | **bool** | Indicates whether the total amount represents the complete balance of all assets in the account. When true, all asset balances have been successfully converted to the denominated currency. When false, some assets could not be included in the total due to missing exchange rates or non-convertible assets. | [default to False] - -## Example - -```python -from fireblocks.models.connected_account_total_balance import ConnectedAccountTotalBalance - -# TODO update the JSON string below -json = "{}" -# create an instance of ConnectedAccountTotalBalance from a JSON string -connected_account_total_balance_instance = ConnectedAccountTotalBalance.from_json(json) -# print the JSON string representation of the object -print(ConnectedAccountTotalBalance.to_json()) - -# convert the object into a dict -connected_account_total_balance_dict = connected_account_total_balance_instance.to_dict() -# create an instance of ConnectedAccountTotalBalance from a dict -connected_account_total_balance_from_dict = ConnectedAccountTotalBalance.from_dict(connected_account_total_balance_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25uZWN0ZWRBY2NvdW50VG90YWxCYWxhbmNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFtb3VudCoqIHwgKipzdHIqKiB8IFRoZSBkZW5vbWluYXRlZCBjdXJyZW5jeSB2YWx1ZSBvZiB0aGUgYWNjb3VudC4gfCAKKipkZW5vbWluYXRlZF9hc3NldF9pZCoqIHwgKipzdHIqKiB8IFRoZSBhc3NldCBJRCBvZiB0aGUgdG90YWwgYmFsYW5jZS4gfCAKKipoYXNfZnVsbF9hc3NldF9jb3ZlcmFnZSoqIHwgKipib29sKiogfCBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdG90YWwgYW1vdW50IHJlcHJlc2VudHMgdGhlIGNvbXBsZXRlIGJhbGFuY2Ugb2YgYWxsIGFzc2V0cyBpbiB0aGUgYWNjb3VudC4gV2hlbiB0cnVlLCBhbGwgYXNzZXQgYmFsYW5jZXMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBjb252ZXJ0ZWQgdG8gdGhlIGRlbm9taW5hdGVkIGN1cnJlbmN5LiBXaGVuIGZhbHNlLCBzb21lIGFzc2V0cyBjb3VsZCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIHRvdGFsIGR1ZSB0byBtaXNzaW5nIGV4Y2hhbmdlIHJhdGVzIG9yIG5vbi1jb252ZXJ0aWJsZSBhc3NldHMuIHwgW2RlZmF1bHQgdG8gRmFsc2VdCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfYWNjb3VudF90b3RhbF9iYWxhbmNlIGltcG9ydCBDb25uZWN0ZWRBY2NvdW50VG90YWxCYWxhbmNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb25uZWN0ZWRBY2NvdW50VG90YWxCYWxhbmNlIGZyb20gYSBKU09OIHN0cmluZwpjb25uZWN0ZWRfYWNjb3VudF90b3RhbF9iYWxhbmNlX2luc3RhbmNlID0gQ29ubmVjdGVkQWNjb3VudFRvdGFsQmFsYW5jZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDb25uZWN0ZWRBY2NvdW50VG90YWxCYWxhbmNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNvbm5lY3RlZF9hY2NvdW50X3RvdGFsX2JhbGFuY2VfZGljdCA9IGNvbm5lY3RlZF9hY2NvdW50X3RvdGFsX2JhbGFuY2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbm5lY3RlZEFjY291bnRUb3RhbEJhbGFuY2UgZnJvbSBhIGRpY3QKY29ubmVjdGVkX2FjY291bnRfdG90YWxfYmFsYW5jZV9mcm9tX2RpY3QgPSBDb25uZWN0ZWRBY2NvdW50VG90YWxCYWxhbmNlLmZyb21fZGljdChjb25uZWN0ZWRfYWNjb3VudF90b3RhbF9iYWxhbmNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ConnectedAccountTradingPair.md b/docs/ConnectedAccountTradingPair.md index c4427e0b..31a543bb 100644 --- a/docs/ConnectedAccountTradingPair.md +++ b/docs/ConnectedAccountTradingPair.md @@ -1,32 +1 @@ -# ConnectedAccountTradingPair - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The ID of the trading pair. | -**base_asset_id** | **str** | The Symbol of the base asset. | -**quote_asset_id** | **str** | The symbol of the quote asset. | -**supported_types** | [**List[ConnectedAccountTradingPairSupportedType]**](ConnectedAccountTradingPairSupportedType.md) | | - -## Example - -```python -from fireblocks.models.connected_account_trading_pair import ConnectedAccountTradingPair - -# TODO update the JSON string below -json = "{}" -# create an instance of ConnectedAccountTradingPair from a JSON string -connected_account_trading_pair_instance = ConnectedAccountTradingPair.from_json(json) -# print the JSON string representation of the object -print(ConnectedAccountTradingPair.to_json()) - -# convert the object into a dict -connected_account_trading_pair_dict = connected_account_trading_pair_instance.to_dict() -# create an instance of ConnectedAccountTradingPair from a dict -connected_account_trading_pair_from_dict = ConnectedAccountTradingPair.from_dict(connected_account_trading_pair_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXIKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBUaGUgSUQgb2YgdGhlIHRyYWRpbmcgcGFpci4gfCAKKipiYXNlX2Fzc2V0X2lkKiogfCAqKnN0cioqIHwgVGhlIFN5bWJvbCBvZiB0aGUgYmFzZSBhc3NldC4gfCAKKipxdW90ZV9hc3NldF9pZCoqIHwgKipzdHIqKiB8IFRoZSBzeW1ib2wgb2YgdGhlIHF1b3RlIGFzc2V0LiB8IAoqKnN1cHBvcnRlZF90eXBlcyoqIHwgWyoqTGlzdFtDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXJTdXBwb3J0ZWRUeXBlXSoqXShDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXJTdXBwb3J0ZWRUeXBlLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRfdHJhZGluZ19wYWlyIGltcG9ydCBDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXIKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpciBmcm9tIGEgSlNPTiBzdHJpbmcKY29ubmVjdGVkX2FjY291bnRfdHJhZGluZ19wYWlyX2luc3RhbmNlID0gQ29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpci50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjb25uZWN0ZWRfYWNjb3VudF90cmFkaW5nX3BhaXJfZGljdCA9IGNvbm5lY3RlZF9hY2NvdW50X3RyYWRpbmdfcGFpcl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyIGZyb20gYSBkaWN0CmNvbm5lY3RlZF9hY2NvdW50X3RyYWRpbmdfcGFpcl9mcm9tX2RpY3QgPSBDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXIuZnJvbV9kaWN0KGNvbm5lY3RlZF9hY2NvdW50X3RyYWRpbmdfcGFpcl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ConnectedAccountTradingPairSupportedType.md b/docs/ConnectedAccountTradingPairSupportedType.md index 18abdd51..199ca8c5 100644 --- a/docs/ConnectedAccountTradingPairSupportedType.md +++ b/docs/ConnectedAccountTradingPairSupportedType.md @@ -1,14 +1 @@ -# ConnectedAccountTradingPairSupportedType - - -## Enum - -* `QUOTE` (value: `'QUOTE'`) - -* `MARKET` (value: `'MARKET'`) - -* `LIMIT` (value: `'LIMIT'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXJTdXBwb3J0ZWRUeXBlCgoKIyMgRW51bQoKKiBgUVVPVEVgICh2YWx1ZTogYCdRVU9URSdgKQoKKiBgTUFSS0VUYCAodmFsdWU6IGAnTUFSS0VUJ2ApCgoqIGBMSU1JVGAgKHZhbHVlOiBgJ0xJTUlUJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ConnectedAccountTradingPairsResponse.md b/docs/ConnectedAccountTradingPairsResponse.md index 6e1fca6d..5b1c14e6 100644 --- a/docs/ConnectedAccountTradingPairsResponse.md +++ b/docs/ConnectedAccountTradingPairsResponse.md @@ -1,31 +1 @@ -# ConnectedAccountTradingPairsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[ConnectedAccountTradingPair]**](ConnectedAccountTradingPair.md) | | -**total** | **int** | Total number of asset pairs matching the query. | [optional] -**next** | **str** | A cursor for the next page of results, if available. | [optional] - -## Example - -```python -from fireblocks.models.connected_account_trading_pairs_response import ConnectedAccountTradingPairsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ConnectedAccountTradingPairsResponse from a JSON string -connected_account_trading_pairs_response_instance = ConnectedAccountTradingPairsResponse.from_json(json) -# print the JSON string representation of the object -print(ConnectedAccountTradingPairsResponse.to_json()) - -# convert the object into a dict -connected_account_trading_pairs_response_dict = connected_account_trading_pairs_response_instance.to_dict() -# create an instance of ConnectedAccountTradingPairsResponse from a dict -connected_account_trading_pairs_response_from_dict = ConnectedAccountTradingPairsResponse.from_dict(connected_account_trading_pairs_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXJzUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZGF0YSoqIHwgWyoqTGlzdFtDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXJdKipdKENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpci5tZCkgfCAgfCAKKip0b3RhbCoqIHwgKippbnQqKiB8IFRvdGFsIG51bWJlciBvZiBhc3NldCBwYWlycyBtYXRjaGluZyB0aGUgcXVlcnkuIHwgW29wdGlvbmFsXSAKKipuZXh0KiogfCAqKnN0cioqIHwgQSBjdXJzb3IgZm9yIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cywgaWYgYXZhaWxhYmxlLiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfYWNjb3VudF90cmFkaW5nX3BhaXJzX3Jlc3BvbnNlIGltcG9ydCBDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXJzUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpcnNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKY29ubmVjdGVkX2FjY291bnRfdHJhZGluZ19wYWlyc19yZXNwb25zZV9pbnN0YW5jZSA9IENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpcnNSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXJzUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29ubmVjdGVkX2FjY291bnRfdHJhZGluZ19wYWlyc19yZXNwb25zZV9kaWN0ID0gY29ubmVjdGVkX2FjY291bnRfdHJhZGluZ19wYWlyc19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyc1Jlc3BvbnNlIGZyb20gYSBkaWN0CmNvbm5lY3RlZF9hY2NvdW50X3RyYWRpbmdfcGFpcnNfcmVzcG9uc2VfZnJvbV9kaWN0ID0gQ29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyc1Jlc3BvbnNlLmZyb21fZGljdChjb25uZWN0ZWRfYWNjb3VudF90cmFkaW5nX3BhaXJzX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ConnectedAccountsBetaApi.md b/docs/ConnectedAccountsBetaApi.md index 4c55ad2f..13956a3b 100644 --- a/docs/ConnectedAccountsBetaApi.md +++ b/docs/ConnectedAccountsBetaApi.md @@ -1,576 +1 @@ -# fireblocks.ConnectedAccountsBetaApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**disconnect_connected_account**](ConnectedAccountsBetaApi.md#disconnect_connected_account) | **DELETE** /connected_accounts/{accountId} | Disconnect connected account -[**get_connected_account**](ConnectedAccountsBetaApi.md#get_connected_account) | **GET** /connected_accounts/{accountId} | Get connected account -[**get_connected_account_balances**](ConnectedAccountsBetaApi.md#get_connected_account_balances) | **GET** /connected_accounts/{accountId}/balances | Get balances for an account -[**get_connected_account_rates**](ConnectedAccountsBetaApi.md#get_connected_account_rates) | **GET** /connected_accounts/{accountId}/rates | Get exchange rates for an account -[**get_connected_account_trading_pairs**](ConnectedAccountsBetaApi.md#get_connected_account_trading_pairs) | **GET** /connected_accounts/{accountId}/manifest/capabilities/trading/pairs | Get supported trading pairs for an account -[**get_connected_accounts**](ConnectedAccountsBetaApi.md#get_connected_accounts) | **GET** /connected_accounts | Get connected accounts -[**rename_connected_account**](ConnectedAccountsBetaApi.md#rename_connected_account) | **POST** /connected_accounts/{accountId}/rename | Rename Connected Account - - -# **disconnect_connected_account** -> disconnect_connected_account(account_id) - -Disconnect connected account - -Disconnect a connected account by ID.
-**Note**: -- This endpoint is currently in beta and might be subject to changes. - - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - account_id = 'account_id_example' # str | The ID of the account to disconnect. - - try: - # Disconnect connected account - fireblocks.connected_accounts_beta.disconnect_connected_account(account_id).result() - except Exception as e: - print("Exception when calling ConnectedAccountsBetaApi->disconnect_connected_account: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **account_id** | **str**| The ID of the account to disconnect. | - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**204** | Account disconnected successfully | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_connected_account** -> ConnectedSingleAccountResponse get_connected_account(account_id) - -Get connected account - -Retrieve detailed information about a specific connected account by ID. - -**Note:** This endpoint is currently in beta and might be subject to changes. - - -### Example - - -```python -from fireblocks.models.connected_single_account_response import ConnectedSingleAccountResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - account_id = 'account_id_example' # str | The ID of the account to fetch. - - try: - # Get connected account - api_response = fireblocks.connected_accounts_beta.get_connected_account(account_id).result() - print("The response of ConnectedAccountsBetaApi->get_connected_account:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ConnectedAccountsBetaApi->get_connected_account: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **account_id** | **str**| The ID of the account to fetch. | - -### Return type - -[**ConnectedSingleAccountResponse**](ConnectedSingleAccountResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Account response | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_connected_account_balances** -> ConnectedAccountBalancesResponse get_connected_account_balances(account_id, page_size=page_size, page_cursor=page_cursor) - -Get balances for an account - -Retrieve current asset balances for a specific connected account as a flat list (one row per `assetId`, `balanceType`). - -**Note:** This endpoint is currently in beta and might be subject to changes. - - -### Example - - -```python -from fireblocks.models.connected_account_balances_response import ConnectedAccountBalancesResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - account_id = 'account_id_example' # str | The ID of the account to fetch balances for. - page_size = 56 # int | Page size for pagination. (optional) - page_cursor = 'page_cursor_example' # str | Page cursor for pagination. (optional) - - try: - # Get balances for an account - api_response = fireblocks.connected_accounts_beta.get_connected_account_balances(account_id, page_size=page_size, page_cursor=page_cursor).result() - print("The response of ConnectedAccountsBetaApi->get_connected_account_balances:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ConnectedAccountsBetaApi->get_connected_account_balances: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **account_id** | **str**| The ID of the account to fetch balances for. | - **page_size** | **int**| Page size for pagination. | [optional] - **page_cursor** | **str**| Page cursor for pagination. | [optional] - -### Return type - -[**ConnectedAccountBalancesResponse**](ConnectedAccountBalancesResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Account balances response | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_connected_account_rates** -> ConnectedAccountRateResponse get_connected_account_rates(account_id, base_asset_id, quote_asset_id) - -Get exchange rates for an account - -Retrieve current exchange rates for converting between specific assets in a connected account. - -**Note:** This endpoint is currently in beta and might be subject to changes. - - -### Example - - -```python -from fireblocks.models.connected_account_rate_response import ConnectedAccountRateResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - account_id = 'account_id_example' # str | The ID of the account to fetch rates for. - base_asset_id = 'base_asset_id_example' # str | The ID of the asset to fetch rates for. - quote_asset_id = 'quote_asset_id_example' # str | The ID of the asset to get the rates nominally. - - try: - # Get exchange rates for an account - api_response = fireblocks.connected_accounts_beta.get_connected_account_rates(account_id, base_asset_id, quote_asset_id).result() - print("The response of ConnectedAccountsBetaApi->get_connected_account_rates:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ConnectedAccountsBetaApi->get_connected_account_rates: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **account_id** | **str**| The ID of the account to fetch rates for. | - **base_asset_id** | **str**| The ID of the asset to fetch rates for. | - **quote_asset_id** | **str**| The ID of the asset to get the rates nominally. | - -### Return type - -[**ConnectedAccountRateResponse**](ConnectedAccountRateResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Rates response | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_connected_account_trading_pairs** -> ConnectedAccountTradingPairsResponse get_connected_account_trading_pairs(account_id, page_size=page_size, page_cursor=page_cursor) - -Get supported trading pairs for an account - -Retrieve all asset trading pairs supported by a specific connected account, including the pair type (`quote`, `market`, `onOffRamp`). - -**Note:** This endpoint is currently in beta and might be subject to changes. - - -### Example - - -```python -from fireblocks.models.connected_account_trading_pairs_response import ConnectedAccountTradingPairsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - account_id = 'account_id_example' # str | The ID of the account to fetch supported pairs for. - page_size = 100 # int | Page size for pagination. (optional) (default to 100) - page_cursor = 'page_cursor_example' # str | Page cursor for pagination. (optional) - - try: - # Get supported trading pairs for an account - api_response = fireblocks.connected_accounts_beta.get_connected_account_trading_pairs(account_id, page_size=page_size, page_cursor=page_cursor).result() - print("The response of ConnectedAccountsBetaApi->get_connected_account_trading_pairs:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ConnectedAccountsBetaApi->get_connected_account_trading_pairs: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **account_id** | **str**| The ID of the account to fetch supported pairs for. | - **page_size** | **int**| Page size for pagination. | [optional] [default to 100] - **page_cursor** | **str**| Page cursor for pagination. | [optional] - -### Return type - -[**ConnectedAccountTradingPairsResponse**](ConnectedAccountTradingPairsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Supported pairs response | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_connected_accounts** -> ConnectedAccountsResponse get_connected_accounts(main_accounts=main_accounts, page_size=page_size, page_cursor=page_cursor) - -Get connected accounts - -Returns all connected accounts. - -**Note:** This endpoint is currently in beta and might be subject to changes. - - -### Example - - -```python -from fireblocks.models.connected_accounts_response import ConnectedAccountsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - main_accounts = False # bool | Whether to include only main accounts in the response. (optional) (default to False) - page_size = 56 # int | Page size for pagination. (optional) - page_cursor = 'page_cursor_example' # str | Page cursor for pagination. (optional) - - try: - # Get connected accounts - api_response = fireblocks.connected_accounts_beta.get_connected_accounts(main_accounts=main_accounts, page_size=page_size, page_cursor=page_cursor).result() - print("The response of ConnectedAccountsBetaApi->get_connected_accounts:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ConnectedAccountsBetaApi->get_connected_accounts: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **main_accounts** | **bool**| Whether to include only main accounts in the response. | [optional] [default to False] - **page_size** | **int**| Page size for pagination. | [optional] - **page_cursor** | **str**| Page cursor for pagination. | [optional] - -### Return type - -[**ConnectedAccountsResponse**](ConnectedAccountsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Get accounts response | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **rename_connected_account** -> RenameConnectedAccountResponse rename_connected_account(account_id, rename_connected_account_request, idempotency_key=idempotency_key) - -Rename Connected Account - -Rename a connected account by account ID. - -**Note:** This endpoint is currently in beta and might be subject to changes. - - -### Example - - -```python -from fireblocks.models.rename_connected_account_request import RenameConnectedAccountRequest -from fireblocks.models.rename_connected_account_response import RenameConnectedAccountResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - account_id = 'account_id_example' # str | The unique identifier of the connected account - rename_connected_account_request = fireblocks.RenameConnectedAccountRequest() # RenameConnectedAccountRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Rename Connected Account - api_response = fireblocks.connected_accounts_beta.rename_connected_account(account_id, rename_connected_account_request, idempotency_key=idempotency_key).result() - print("The response of ConnectedAccountsBetaApi->rename_connected_account:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ConnectedAccountsBetaApi->rename_connected_account: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **account_id** | **str**| The unique identifier of the connected account | - **rename_connected_account_request** | [**RenameConnectedAccountRequest**](RenameConnectedAccountRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**RenameConnectedAccountResponse**](RenameConnectedAccountResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successfully renamed connected account. | * X-Request-ID -
| -**400** | Bad request. Missing tenantId, accountId, or accountName. | - | -**401** | Unauthorized. Missing / invalid JWT token in Authorization header. | - | -**403** | Failed to rename connected account. | - | -**404** | Connected account not found | - | -**409** | Conflict. Account name is already in use by another account. | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLkNvbm5lY3RlZEFjY291bnRzQmV0YUFwaQoKQWxsIFVSSXMgYXJlIHJlbGF0aXZlIHRvICpodHRwczovL2FwaS5maXJlYmxvY2tzLmlvL3YxKgoKTWV0aG9kIHwgSFRUUCByZXF1ZXN0IHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tClsqKmRpc2Nvbm5lY3RfY29ubmVjdGVkX2FjY291bnQqKl0oQ29ubmVjdGVkQWNjb3VudHNCZXRhQXBpLm1kI2Rpc2Nvbm5lY3RfY29ubmVjdGVkX2FjY291bnQpIHwgKipERUxFVEUqKiAvY29ubmVjdGVkX2FjY291bnRzL3thY2NvdW50SWR9IHwgRGlzY29ubmVjdCBjb25uZWN0ZWQgYWNjb3VudApbKipnZXRfY29ubmVjdGVkX2FjY291bnQqKl0oQ29ubmVjdGVkQWNjb3VudHNCZXRhQXBpLm1kI2dldF9jb25uZWN0ZWRfYWNjb3VudCkgfCAqKkdFVCoqIC9jb25uZWN0ZWRfYWNjb3VudHMve2FjY291bnRJZH0gfCBHZXQgY29ubmVjdGVkIGFjY291bnQKWyoqZ2V0X2Nvbm5lY3RlZF9hY2NvdW50X2JhbGFuY2VzKipdKENvbm5lY3RlZEFjY291bnRzQmV0YUFwaS5tZCNnZXRfY29ubmVjdGVkX2FjY291bnRfYmFsYW5jZXMpIHwgKipHRVQqKiAvY29ubmVjdGVkX2FjY291bnRzL3thY2NvdW50SWR9L2JhbGFuY2VzIHwgR2V0IGJhbGFuY2VzIGZvciBhbiBhY2NvdW50ClsqKmdldF9jb25uZWN0ZWRfYWNjb3VudF9yYXRlcyoqXShDb25uZWN0ZWRBY2NvdW50c0JldGFBcGkubWQjZ2V0X2Nvbm5lY3RlZF9hY2NvdW50X3JhdGVzKSB8ICoqR0VUKiogL2Nvbm5lY3RlZF9hY2NvdW50cy97YWNjb3VudElkfS9yYXRlcyB8IEdldCBleGNoYW5nZSByYXRlcyBmb3IgYW4gYWNjb3VudApbKipnZXRfY29ubmVjdGVkX2FjY291bnRfdHJhZGluZ19wYWlycyoqXShDb25uZWN0ZWRBY2NvdW50c0JldGFBcGkubWQjZ2V0X2Nvbm5lY3RlZF9hY2NvdW50X3RyYWRpbmdfcGFpcnMpIHwgKipHRVQqKiAvY29ubmVjdGVkX2FjY291bnRzL3thY2NvdW50SWR9L21hbmlmZXN0L2NhcGFiaWxpdGllcy90cmFkaW5nL3BhaXJzIHwgR2V0IHN1cHBvcnRlZCB0cmFkaW5nIHBhaXJzIGZvciBhbiBhY2NvdW50ClsqKmdldF9jb25uZWN0ZWRfYWNjb3VudHMqKl0oQ29ubmVjdGVkQWNjb3VudHNCZXRhQXBpLm1kI2dldF9jb25uZWN0ZWRfYWNjb3VudHMpIHwgKipHRVQqKiAvY29ubmVjdGVkX2FjY291bnRzIHwgR2V0IGNvbm5lY3RlZCBhY2NvdW50cwpbKipyZW5hbWVfY29ubmVjdGVkX2FjY291bnQqKl0oQ29ubmVjdGVkQWNjb3VudHNCZXRhQXBpLm1kI3JlbmFtZV9jb25uZWN0ZWRfYWNjb3VudCkgfCAqKlBPU1QqKiAvY29ubmVjdGVkX2FjY291bnRzL3thY2NvdW50SWR9L3JlbmFtZSB8IFJlbmFtZSBDb25uZWN0ZWQgQWNjb3VudAoKCiMgKipkaXNjb25uZWN0X2Nvbm5lY3RlZF9hY2NvdW50KioKPiBkaXNjb25uZWN0X2Nvbm5lY3RlZF9hY2NvdW50KGFjY291bnRfaWQpCgpEaXNjb25uZWN0IGNvbm5lY3RlZCBhY2NvdW50CgpEaXNjb25uZWN0IGEgY29ubmVjdGVkIGFjY291bnQgYnkgSUQuIDwvYnI+CioqTm90ZSoqOgotIFRoaXMgZW5kcG9pbnQgaXMgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgYWNjb3VudF9pZCA9ICdhY2NvdW50X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBhY2NvdW50IHRvIGRpc2Nvbm5lY3QuCgogICAgdHJ5OgogICAgICAgICMgRGlzY29ubmVjdCBjb25uZWN0ZWQgYWNjb3VudAogICAgICAgIGZpcmVibG9ja3MuY29ubmVjdGVkX2FjY291bnRzX2JldGEuZGlzY29ubmVjdF9jb25uZWN0ZWRfYWNjb3VudChhY2NvdW50X2lkKS5yZXN1bHQoKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIENvbm5lY3RlZEFjY291bnRzQmV0YUFwaS0+ZGlzY29ubmVjdF9jb25uZWN0ZWRfYWNjb3VudDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqYWNjb3VudF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSBhY2NvdW50IHRvIGRpc2Nvbm5lY3QuIHwgCgojIyMgUmV0dXJuIHR5cGUKCnZvaWQgKGVtcHR5IHJlc3BvbnNlIGJvZHkpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjA0KiogfCBBY2NvdW50IGRpc2Nvbm5lY3RlZCBzdWNjZXNzZnVsbHkgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9jb25uZWN0ZWRfYWNjb3VudCoqCj4gQ29ubmVjdGVkU2luZ2xlQWNjb3VudFJlc3BvbnNlIGdldF9jb25uZWN0ZWRfYWNjb3VudChhY2NvdW50X2lkKQoKR2V0IGNvbm5lY3RlZCBhY2NvdW50CgpSZXRyaWV2ZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGNvbm5lY3RlZCBhY2NvdW50IGJ5IElELgoKKipOb3RlOioqIFRoaXMgZW5kcG9pbnQgaXMgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9zaW5nbGVfYWNjb3VudF9yZXNwb25zZSBpbXBvcnQgQ29ubmVjdGVkU2luZ2xlQWNjb3VudFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGFjY291bnRfaWQgPSAnYWNjb3VudF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgYWNjb3VudCB0byBmZXRjaC4KCiAgICB0cnk6CiAgICAgICAgIyBHZXQgY29ubmVjdGVkIGFjY291bnQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmNvbm5lY3RlZF9hY2NvdW50c19iZXRhLmdldF9jb25uZWN0ZWRfYWNjb3VudChhY2NvdW50X2lkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgQ29ubmVjdGVkQWNjb3VudHNCZXRhQXBpLT5nZXRfY29ubmVjdGVkX2FjY291bnQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQ29ubmVjdGVkQWNjb3VudHNCZXRhQXBpLT5nZXRfY29ubmVjdGVkX2FjY291bnQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmFjY291bnRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgYWNjb3VudCB0byBmZXRjaC4gfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqQ29ubmVjdGVkU2luZ2xlQWNjb3VudFJlc3BvbnNlKipdKENvbm5lY3RlZFNpbmdsZUFjY291bnRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEFjY291bnQgcmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9jb25uZWN0ZWRfYWNjb3VudF9iYWxhbmNlcyoqCj4gQ29ubmVjdGVkQWNjb3VudEJhbGFuY2VzUmVzcG9uc2UgZ2V0X2Nvbm5lY3RlZF9hY2NvdW50X2JhbGFuY2VzKGFjY291bnRfaWQsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yKQoKR2V0IGJhbGFuY2VzIGZvciBhbiBhY2NvdW50CgpSZXRyaWV2ZSBjdXJyZW50IGFzc2V0IGJhbGFuY2VzIGZvciBhIHNwZWNpZmljIGNvbm5lY3RlZCBhY2NvdW50IGFzIGEgZmxhdCBsaXN0IChvbmUgcm93IHBlciBgYXNzZXRJZGAsIGBiYWxhbmNlVHlwZWApLgoKKipOb3RlOioqIFRoaXMgZW5kcG9pbnQgaXMgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X2JhbGFuY2VzX3Jlc3BvbnNlIGltcG9ydCBDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBhY2NvdW50X2lkID0gJ2FjY291bnRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGFjY291bnQgdG8gZmV0Y2ggYmFsYW5jZXMgZm9yLgogICAgcGFnZV9zaXplID0gNTYgIyBpbnQgfCBQYWdlIHNpemUgZm9yIHBhZ2luYXRpb24uIChvcHRpb25hbCkKICAgIHBhZ2VfY3Vyc29yID0gJ3BhZ2VfY3Vyc29yX2V4YW1wbGUnICMgc3RyIHwgUGFnZSBjdXJzb3IgZm9yIHBhZ2luYXRpb24uIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgYmFsYW5jZXMgZm9yIGFuIGFjY291bnQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmNvbm5lY3RlZF9hY2NvdW50c19iZXRhLmdldF9jb25uZWN0ZWRfYWNjb3VudF9iYWxhbmNlcyhhY2NvdW50X2lkLCBwYWdlX3NpemU9cGFnZV9zaXplLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvcikucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIENvbm5lY3RlZEFjY291bnRzQmV0YUFwaS0+Z2V0X2Nvbm5lY3RlZF9hY2NvdW50X2JhbGFuY2VzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIENvbm5lY3RlZEFjY291bnRzQmV0YUFwaS0+Z2V0X2Nvbm5lY3RlZF9hY2NvdW50X2JhbGFuY2VzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKiphY2NvdW50X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFjY291bnQgdG8gZmV0Y2ggYmFsYW5jZXMgZm9yLiB8IAogKipwYWdlX3NpemUqKiB8ICoqaW50Kip8IFBhZ2Ugc2l6ZSBmb3IgcGFnaW5hdGlvbi4gfCBbb3B0aW9uYWxdIAogKipwYWdlX2N1cnNvcioqIHwgKipzdHIqKnwgUGFnZSBjdXJzb3IgZm9yIHBhZ2luYXRpb24uIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqQ29ubmVjdGVkQWNjb3VudEJhbGFuY2VzUmVzcG9uc2UqKl0oQ29ubmVjdGVkQWNjb3VudEJhbGFuY2VzUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBY2NvdW50IGJhbGFuY2VzIHJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfY29ubmVjdGVkX2FjY291bnRfcmF0ZXMqKgo+IENvbm5lY3RlZEFjY291bnRSYXRlUmVzcG9uc2UgZ2V0X2Nvbm5lY3RlZF9hY2NvdW50X3JhdGVzKGFjY291bnRfaWQsIGJhc2VfYXNzZXRfaWQsIHF1b3RlX2Fzc2V0X2lkKQoKR2V0IGV4Y2hhbmdlIHJhdGVzIGZvciBhbiBhY2NvdW50CgpSZXRyaWV2ZSBjdXJyZW50IGV4Y2hhbmdlIHJhdGVzIGZvciBjb252ZXJ0aW5nIGJldHdlZW4gc3BlY2lmaWMgYXNzZXRzIGluIGEgY29ubmVjdGVkIGFjY291bnQuCgoqKk5vdGU6KiogVGhpcyBlbmRwb2ludCBpcyBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLgoKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRfcmF0ZV9yZXNwb25zZSBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudFJhdGVSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBhY2NvdW50X2lkID0gJ2FjY291bnRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGFjY291bnQgdG8gZmV0Y2ggcmF0ZXMgZm9yLgogICAgYmFzZV9hc3NldF9pZCA9ICdiYXNlX2Fzc2V0X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBhc3NldCB0byBmZXRjaCByYXRlcyBmb3IuCiAgICBxdW90ZV9hc3NldF9pZCA9ICdxdW90ZV9hc3NldF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgYXNzZXQgdG8gZ2V0IHRoZSByYXRlcyBub21pbmFsbHkuCgogICAgdHJ5OgogICAgICAgICMgR2V0IGV4Y2hhbmdlIHJhdGVzIGZvciBhbiBhY2NvdW50CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5jb25uZWN0ZWRfYWNjb3VudHNfYmV0YS5nZXRfY29ubmVjdGVkX2FjY291bnRfcmF0ZXMoYWNjb3VudF9pZCwgYmFzZV9hc3NldF9pZCwgcXVvdGVfYXNzZXRfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBDb25uZWN0ZWRBY2NvdW50c0JldGFBcGktPmdldF9jb25uZWN0ZWRfYWNjb3VudF9yYXRlczpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBDb25uZWN0ZWRBY2NvdW50c0JldGFBcGktPmdldF9jb25uZWN0ZWRfYWNjb3VudF9yYXRlczogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqYWNjb3VudF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSBhY2NvdW50IHRvIGZldGNoIHJhdGVzIGZvci4gfCAKICoqYmFzZV9hc3NldF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSBhc3NldCB0byBmZXRjaCByYXRlcyBmb3IuIHwgCiAqKnF1b3RlX2Fzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIGdldCB0aGUgcmF0ZXMgbm9taW5hbGx5LiB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipDb25uZWN0ZWRBY2NvdW50UmF0ZVJlc3BvbnNlKipdKENvbm5lY3RlZEFjY291bnRSYXRlUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBSYXRlcyByZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2Nvbm5lY3RlZF9hY2NvdW50X3RyYWRpbmdfcGFpcnMqKgo+IENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpcnNSZXNwb25zZSBnZXRfY29ubmVjdGVkX2FjY291bnRfdHJhZGluZ19wYWlycyhhY2NvdW50X2lkLCBwYWdlX3NpemU9cGFnZV9zaXplLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvcikKCkdldCBzdXBwb3J0ZWQgdHJhZGluZyBwYWlycyBmb3IgYW4gYWNjb3VudAoKUmV0cmlldmUgYWxsIGFzc2V0IHRyYWRpbmcgcGFpcnMgc3VwcG9ydGVkIGJ5IGEgc3BlY2lmaWMgY29ubmVjdGVkIGFjY291bnQsIGluY2x1ZGluZyB0aGUgcGFpciB0eXBlIChgcXVvdGVgLCBgbWFya2V0YCwgYG9uT2ZmUmFtcGApLgoKKipOb3RlOioqIFRoaXMgZW5kcG9pbnQgaXMgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X3RyYWRpbmdfcGFpcnNfcmVzcG9uc2UgaW1wb3J0IENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpcnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBhY2NvdW50X2lkID0gJ2FjY291bnRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGFjY291bnQgdG8gZmV0Y2ggc3VwcG9ydGVkIHBhaXJzIGZvci4KICAgIHBhZ2Vfc2l6ZSA9IDEwMCAjIGludCB8IFBhZ2Ugc2l6ZSBmb3IgcGFnaW5hdGlvbi4gKG9wdGlvbmFsKSAoZGVmYXVsdCB0byAxMDApCiAgICBwYWdlX2N1cnNvciA9ICdwYWdlX2N1cnNvcl9leGFtcGxlJyAjIHN0ciB8IFBhZ2UgY3Vyc29yIGZvciBwYWdpbmF0aW9uLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgR2V0IHN1cHBvcnRlZCB0cmFkaW5nIHBhaXJzIGZvciBhbiBhY2NvdW50CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5jb25uZWN0ZWRfYWNjb3VudHNfYmV0YS5nZXRfY29ubmVjdGVkX2FjY291bnRfdHJhZGluZ19wYWlycyhhY2NvdW50X2lkLCBwYWdlX3NpemU9cGFnZV9zaXplLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvcikucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIENvbm5lY3RlZEFjY291bnRzQmV0YUFwaS0+Z2V0X2Nvbm5lY3RlZF9hY2NvdW50X3RyYWRpbmdfcGFpcnM6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQ29ubmVjdGVkQWNjb3VudHNCZXRhQXBpLT5nZXRfY29ubmVjdGVkX2FjY291bnRfdHJhZGluZ19wYWlyczogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqYWNjb3VudF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSBhY2NvdW50IHRvIGZldGNoIHN1cHBvcnRlZCBwYWlycyBmb3IuIHwgCiAqKnBhZ2Vfc2l6ZSoqIHwgKippbnQqKnwgUGFnZSBzaXplIGZvciBwYWdpbmF0aW9uLiB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gMTAwXQogKipwYWdlX2N1cnNvcioqIHwgKipzdHIqKnwgUGFnZSBjdXJzb3IgZm9yIHBhZ2luYXRpb24uIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqQ29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyc1Jlc3BvbnNlKipdKENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpcnNSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFN1cHBvcnRlZCBwYWlycyByZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2Nvbm5lY3RlZF9hY2NvdW50cyoqCj4gQ29ubmVjdGVkQWNjb3VudHNSZXNwb25zZSBnZXRfY29ubmVjdGVkX2FjY291bnRzKG1haW5fYWNjb3VudHM9bWFpbl9hY2NvdW50cywgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IpCgpHZXQgY29ubmVjdGVkIGFjY291bnRzCgpSZXR1cm5zIGFsbCBjb25uZWN0ZWQgYWNjb3VudHMuCgoqKk5vdGU6KiogVGhpcyBlbmRwb2ludCBpcyBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLgoKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRzX3Jlc3BvbnNlIGltcG9ydCBDb25uZWN0ZWRBY2NvdW50c1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIG1haW5fYWNjb3VudHMgPSBGYWxzZSAjIGJvb2wgfCBXaGV0aGVyIHRvIGluY2x1ZGUgb25seSBtYWluIGFjY291bnRzIGluIHRoZSByZXNwb25zZS4gKG9wdGlvbmFsKSAoZGVmYXVsdCB0byBGYWxzZSkKICAgIHBhZ2Vfc2l6ZSA9IDU2ICMgaW50IHwgUGFnZSBzaXplIGZvciBwYWdpbmF0aW9uLiAob3B0aW9uYWwpCiAgICBwYWdlX2N1cnNvciA9ICdwYWdlX2N1cnNvcl9leGFtcGxlJyAjIHN0ciB8IFBhZ2UgY3Vyc29yIGZvciBwYWdpbmF0aW9uLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgR2V0IGNvbm5lY3RlZCBhY2NvdW50cwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuY29ubmVjdGVkX2FjY291bnRzX2JldGEuZ2V0X2Nvbm5lY3RlZF9hY2NvdW50cyhtYWluX2FjY291bnRzPW1haW5fYWNjb3VudHMsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgQ29ubmVjdGVkQWNjb3VudHNCZXRhQXBpLT5nZXRfY29ubmVjdGVkX2FjY291bnRzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIENvbm5lY3RlZEFjY291bnRzQmV0YUFwaS0+Z2V0X2Nvbm5lY3RlZF9hY2NvdW50czogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqbWFpbl9hY2NvdW50cyoqIHwgKipib29sKip8IFdoZXRoZXIgdG8gaW5jbHVkZSBvbmx5IG1haW4gYWNjb3VudHMgaW4gdGhlIHJlc3BvbnNlLiB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gRmFsc2VdCiAqKnBhZ2Vfc2l6ZSoqIHwgKippbnQqKnwgUGFnZSBzaXplIGZvciBwYWdpbmF0aW9uLiB8IFtvcHRpb25hbF0gCiAqKnBhZ2VfY3Vyc29yKiogfCAqKnN0cioqfCBQYWdlIGN1cnNvciBmb3IgcGFnaW5hdGlvbi4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipDb25uZWN0ZWRBY2NvdW50c1Jlc3BvbnNlKipdKENvbm5lY3RlZEFjY291bnRzUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBHZXQgYWNjb3VudHMgcmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnJlbmFtZV9jb25uZWN0ZWRfYWNjb3VudCoqCj4gUmVuYW1lQ29ubmVjdGVkQWNjb3VudFJlc3BvbnNlIHJlbmFtZV9jb25uZWN0ZWRfYWNjb3VudChhY2NvdW50X2lkLCByZW5hbWVfY29ubmVjdGVkX2FjY291bnRfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKClJlbmFtZSBDb25uZWN0ZWQgQWNjb3VudAoKUmVuYW1lIGEgY29ubmVjdGVkIGFjY291bnQgYnkgYWNjb3VudCBJRC4KCioqTm90ZToqKiBUaGlzIGVuZHBvaW50IGlzIGN1cnJlbnRseSBpbiBiZXRhIGFuZCBtaWdodCBiZSBzdWJqZWN0IHRvIGNoYW5nZXMuCgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZW5hbWVfY29ubmVjdGVkX2FjY291bnRfcmVxdWVzdCBpbXBvcnQgUmVuYW1lQ29ubmVjdGVkQWNjb3VudFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZW5hbWVfY29ubmVjdGVkX2FjY291bnRfcmVzcG9uc2UgaW1wb3J0IFJlbmFtZUNvbm5lY3RlZEFjY291bnRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBhY2NvdW50X2lkID0gJ2FjY291bnRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvbm5lY3RlZCBhY2NvdW50CiAgICByZW5hbWVfY29ubmVjdGVkX2FjY291bnRfcmVxdWVzdCA9IGZpcmVibG9ja3MuUmVuYW1lQ29ubmVjdGVkQWNjb3VudFJlcXVlc3QoKSAjIFJlbmFtZUNvbm5lY3RlZEFjY291bnRSZXF1ZXN0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgUmVuYW1lIENvbm5lY3RlZCBBY2NvdW50CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5jb25uZWN0ZWRfYWNjb3VudHNfYmV0YS5yZW5hbWVfY29ubmVjdGVkX2FjY291bnQoYWNjb3VudF9pZCwgcmVuYW1lX2Nvbm5lY3RlZF9hY2NvdW50X3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBDb25uZWN0ZWRBY2NvdW50c0JldGFBcGktPnJlbmFtZV9jb25uZWN0ZWRfYWNjb3VudDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBDb25uZWN0ZWRBY2NvdW50c0JldGFBcGktPnJlbmFtZV9jb25uZWN0ZWRfYWNjb3VudDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqYWNjb3VudF9pZCoqIHwgKipzdHIqKnwgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb25uZWN0ZWQgYWNjb3VudCB8IAogKipyZW5hbWVfY29ubmVjdGVkX2FjY291bnRfcmVxdWVzdCoqIHwgWyoqUmVuYW1lQ29ubmVjdGVkQWNjb3VudFJlcXVlc3QqKl0oUmVuYW1lQ29ubmVjdGVkQWNjb3VudFJlcXVlc3QubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqUmVuYW1lQ29ubmVjdGVkQWNjb3VudFJlc3BvbnNlKipdKFJlbmFtZUNvbm5lY3RlZEFjY291bnRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgU3VjY2Vzc2Z1bGx5IHJlbmFtZWQgY29ubmVjdGVkIGFjY291bnQuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDAqKiB8IEJhZCByZXF1ZXN0LiBNaXNzaW5nIHRlbmFudElkLCBhY2NvdW50SWQsIG9yIGFjY291bnROYW1lLiB8ICAtICB8CioqNDAxKiogfCBVbmF1dGhvcml6ZWQuIE1pc3NpbmcgLyBpbnZhbGlkIEpXVCB0b2tlbiBpbiBBdXRob3JpemF0aW9uIGhlYWRlci4gfCAgLSAgfAoqKjQwMyoqIHwgRmFpbGVkIHRvIHJlbmFtZSBjb25uZWN0ZWQgYWNjb3VudC4gfCAgLSAgfAoqKjQwNCoqIHwgQ29ubmVjdGVkIGFjY291bnQgbm90IGZvdW5kIHwgIC0gIHwKKio0MDkqKiB8IENvbmZsaWN0LiBBY2NvdW50IG5hbWUgaXMgYWxyZWFkeSBpbiB1c2UgYnkgYW5vdGhlciBhY2NvdW50LiB8ICAtICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgo= \ No newline at end of file diff --git a/docs/ConnectedAccountsResponse.md b/docs/ConnectedAccountsResponse.md index f7b55c6e..2c6cd844 100644 --- a/docs/ConnectedAccountsResponse.md +++ b/docs/ConnectedAccountsResponse.md @@ -1,31 +1 @@ -# ConnectedAccountsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[ConnectedAccount]**](ConnectedAccount.md) | List of connected accounts matching the query. | -**total** | **int** | Total number of accounts by query. | [optional] -**next** | **str** | A cursor for the next page of results, if available. | [optional] - -## Example - -```python -from fireblocks.models.connected_accounts_response import ConnectedAccountsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ConnectedAccountsResponse from a JSON string -connected_accounts_response_instance = ConnectedAccountsResponse.from_json(json) -# print the JSON string representation of the object -print(ConnectedAccountsResponse.to_json()) - -# convert the object into a dict -connected_accounts_response_dict = connected_accounts_response_instance.to_dict() -# create an instance of ConnectedAccountsResponse from a dict -connected_accounts_response_from_dict = ConnectedAccountsResponse.from_dict(connected_accounts_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25uZWN0ZWRBY2NvdW50c1Jlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmRhdGEqKiB8IFsqKkxpc3RbQ29ubmVjdGVkQWNjb3VudF0qKl0oQ29ubmVjdGVkQWNjb3VudC5tZCkgfCBMaXN0IG9mIGNvbm5lY3RlZCBhY2NvdW50cyBtYXRjaGluZyB0aGUgcXVlcnkuIHwgCioqdG90YWwqKiB8ICoqaW50KiogfCBUb3RhbCBudW1iZXIgb2YgYWNjb3VudHMgYnkgcXVlcnkuIHwgW29wdGlvbmFsXSAKKipuZXh0KiogfCAqKnN0cioqIHwgQSBjdXJzb3IgZm9yIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cywgaWYgYXZhaWxhYmxlLiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfYWNjb3VudHNfcmVzcG9uc2UgaW1wb3J0IENvbm5lY3RlZEFjY291bnRzUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbm5lY3RlZEFjY291bnRzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmNvbm5lY3RlZF9hY2NvdW50c19yZXNwb25zZV9pbnN0YW5jZSA9IENvbm5lY3RlZEFjY291bnRzUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29ubmVjdGVkQWNjb3VudHNSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjb25uZWN0ZWRfYWNjb3VudHNfcmVzcG9uc2VfZGljdCA9IGNvbm5lY3RlZF9hY2NvdW50c19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29ubmVjdGVkQWNjb3VudHNSZXNwb25zZSBmcm9tIGEgZGljdApjb25uZWN0ZWRfYWNjb3VudHNfcmVzcG9uc2VfZnJvbV9kaWN0ID0gQ29ubmVjdGVkQWNjb3VudHNSZXNwb25zZS5mcm9tX2RpY3QoY29ubmVjdGVkX2FjY291bnRzX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ConnectedSingleAccount.md b/docs/ConnectedSingleAccount.md index c4b5a4aa..d0c4c98b 100644 --- a/docs/ConnectedSingleAccount.md +++ b/docs/ConnectedSingleAccount.md @@ -1,29 +1 @@ -# ConnectedSingleAccount - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**sub_accounts_ids** | **List[str]** | IDs of sub-accounts associated with this connected account. | [optional] - -## Example - -```python -from fireblocks.models.connected_single_account import ConnectedSingleAccount - -# TODO update the JSON string below -json = "{}" -# create an instance of ConnectedSingleAccount from a JSON string -connected_single_account_instance = ConnectedSingleAccount.from_json(json) -# print the JSON string representation of the object -print(ConnectedSingleAccount.to_json()) - -# convert the object into a dict -connected_single_account_dict = connected_single_account_instance.to_dict() -# create an instance of ConnectedSingleAccount from a dict -connected_single_account_from_dict = ConnectedSingleAccount.from_dict(connected_single_account_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25uZWN0ZWRTaW5nbGVBY2NvdW50CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnN1Yl9hY2NvdW50c19pZHMqKiB8ICoqTGlzdFtzdHJdKiogfCBJRHMgb2Ygc3ViLWFjY291bnRzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbm5lY3RlZCBhY2NvdW50LiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfc2luZ2xlX2FjY291bnQgaW1wb3J0IENvbm5lY3RlZFNpbmdsZUFjY291bnQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbm5lY3RlZFNpbmdsZUFjY291bnQgZnJvbSBhIEpTT04gc3RyaW5nCmNvbm5lY3RlZF9zaW5nbGVfYWNjb3VudF9pbnN0YW5jZSA9IENvbm5lY3RlZFNpbmdsZUFjY291bnQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29ubmVjdGVkU2luZ2xlQWNjb3VudC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjb25uZWN0ZWRfc2luZ2xlX2FjY291bnRfZGljdCA9IGNvbm5lY3RlZF9zaW5nbGVfYWNjb3VudF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29ubmVjdGVkU2luZ2xlQWNjb3VudCBmcm9tIGEgZGljdApjb25uZWN0ZWRfc2luZ2xlX2FjY291bnRfZnJvbV9kaWN0ID0gQ29ubmVjdGVkU2luZ2xlQWNjb3VudC5mcm9tX2RpY3QoY29ubmVjdGVkX3NpbmdsZV9hY2NvdW50X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ConnectedSingleAccountResponse.md b/docs/ConnectedSingleAccountResponse.md index 62335482..219f918a 100644 --- a/docs/ConnectedSingleAccountResponse.md +++ b/docs/ConnectedSingleAccountResponse.md @@ -1,36 +1 @@ -# ConnectedSingleAccountResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | Unique identifier of the connected account. | -**name** | **str** | Human-readable name of the connected account. | -**provider_id** | **str** | The ID of the venue the account belongs to. | -**status** | [**ConnectedAccountApprovalStatus**](ConnectedAccountApprovalStatus.md) | | -**total_balance** | [**ConnectedAccountTotalBalance**](ConnectedAccountTotalBalance.md) | | -**manifest** | [**ConnectedAccountManifest**](ConnectedAccountManifest.md) | | -**parent_id** | **str** | The ID of the parent main account, if this is a sub account. | [optional] -**sub_accounts_ids** | **List[str]** | IDs of sub-accounts associated with this connected account. | [optional] - -## Example - -```python -from fireblocks.models.connected_single_account_response import ConnectedSingleAccountResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ConnectedSingleAccountResponse from a JSON string -connected_single_account_response_instance = ConnectedSingleAccountResponse.from_json(json) -# print the JSON string representation of the object -print(ConnectedSingleAccountResponse.to_json()) - -# convert the object into a dict -connected_single_account_response_dict = connected_single_account_response_instance.to_dict() -# create an instance of ConnectedSingleAccountResponse from a dict -connected_single_account_response_from_dict = ConnectedSingleAccountResponse.from_dict(connected_single_account_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25uZWN0ZWRTaW5nbGVBY2NvdW50UmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29ubmVjdGVkIGFjY291bnQuIHwgCioqbmFtZSoqIHwgKipzdHIqKiB8IEh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhlIGNvbm5lY3RlZCBhY2NvdW50LiB8IAoqKnByb3ZpZGVyX2lkKiogfCAqKnN0cioqIHwgVGhlIElEIG9mIHRoZSB2ZW51ZSB0aGUgYWNjb3VudCBiZWxvbmdzIHRvLiB8IAoqKnN0YXR1cyoqIHwgWyoqQ29ubmVjdGVkQWNjb3VudEFwcHJvdmFsU3RhdHVzKipdKENvbm5lY3RlZEFjY291bnRBcHByb3ZhbFN0YXR1cy5tZCkgfCAgfCAKKip0b3RhbF9iYWxhbmNlKiogfCBbKipDb25uZWN0ZWRBY2NvdW50VG90YWxCYWxhbmNlKipdKENvbm5lY3RlZEFjY291bnRUb3RhbEJhbGFuY2UubWQpIHwgIHwgCioqbWFuaWZlc3QqKiB8IFsqKkNvbm5lY3RlZEFjY291bnRNYW5pZmVzdCoqXShDb25uZWN0ZWRBY2NvdW50TWFuaWZlc3QubWQpIHwgIHwgCioqcGFyZW50X2lkKiogfCAqKnN0cioqIHwgVGhlIElEIG9mIHRoZSBwYXJlbnQgbWFpbiBhY2NvdW50LCBpZiB0aGlzIGlzIGEgc3ViIGFjY291bnQuIHwgW29wdGlvbmFsXSAKKipzdWJfYWNjb3VudHNfaWRzKiogfCAqKkxpc3Rbc3RyXSoqIHwgSURzIG9mIHN1Yi1hY2NvdW50cyBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb25uZWN0ZWQgYWNjb3VudC4gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX3NpbmdsZV9hY2NvdW50X3Jlc3BvbnNlIGltcG9ydCBDb25uZWN0ZWRTaW5nbGVBY2NvdW50UmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbm5lY3RlZFNpbmdsZUFjY291bnRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKY29ubmVjdGVkX3NpbmdsZV9hY2NvdW50X3Jlc3BvbnNlX2luc3RhbmNlID0gQ29ubmVjdGVkU2luZ2xlQWNjb3VudFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbm5lY3RlZFNpbmdsZUFjY291bnRSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjb25uZWN0ZWRfc2luZ2xlX2FjY291bnRfcmVzcG9uc2VfZGljdCA9IGNvbm5lY3RlZF9zaW5nbGVfYWNjb3VudF9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29ubmVjdGVkU2luZ2xlQWNjb3VudFJlc3BvbnNlIGZyb20gYSBkaWN0CmNvbm5lY3RlZF9zaW5nbGVfYWNjb3VudF9yZXNwb25zZV9mcm9tX2RpY3QgPSBDb25uZWN0ZWRTaW5nbGVBY2NvdW50UmVzcG9uc2UuZnJvbV9kaWN0KGNvbm5lY3RlZF9zaW5nbGVfYWNjb3VudF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ConsoleUser.md b/docs/ConsoleUser.md index bc027cc2..0cc3b42c 100644 --- a/docs/ConsoleUser.md +++ b/docs/ConsoleUser.md @@ -1,36 +1 @@ -# ConsoleUser - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The unique identifier of the user | [optional] -**first_name** | **str** | The first name of the user | [optional] -**last_name** | **str** | The last name of the user | [optional] -**email** | **str** | The email address of the user | [optional] -**role** | [**UserRole**](UserRole.md) | | [optional] -**enabled** | **bool** | Whether the user is enabled | [optional] -**status** | [**UserStatus**](UserStatus.md) | | [optional] -**user_type** | [**UserType**](UserType.md) | | [optional] - -## Example - -```python -from fireblocks.models.console_user import ConsoleUser - -# TODO update the JSON string below -json = "{}" -# create an instance of ConsoleUser from a JSON string -console_user_instance = ConsoleUser.from_json(json) -# print the JSON string representation of the object -print(ConsoleUser.to_json()) - -# convert the object into a dict -console_user_dict = console_user_instance.to_dict() -# create an instance of ConsoleUser from a dict -console_user_from_dict = ConsoleUser.from_dict(console_user_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb25zb2xlVXNlcgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgdXNlciB8IFtvcHRpb25hbF0gCioqZmlyc3RfbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBmaXJzdCBuYW1lIG9mIHRoZSB1c2VyIHwgW29wdGlvbmFsXSAKKipsYXN0X25hbWUqKiB8ICoqc3RyKiogfCBUaGUgbGFzdCBuYW1lIG9mIHRoZSB1c2VyIHwgW29wdGlvbmFsXSAKKiplbWFpbCoqIHwgKipzdHIqKiB8IFRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSB1c2VyIHwgW29wdGlvbmFsXSAKKipyb2xlKiogfCBbKipVc2VyUm9sZSoqXShVc2VyUm9sZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmVuYWJsZWQqKiB8ICoqYm9vbCoqIHwgV2hldGhlciB0aGUgdXNlciBpcyBlbmFibGVkIHwgW29wdGlvbmFsXSAKKipzdGF0dXMqKiB8IFsqKlVzZXJTdGF0dXMqKl0oVXNlclN0YXR1cy5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnVzZXJfdHlwZSoqIHwgWyoqVXNlclR5cGUqKl0oVXNlclR5cGUubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnNvbGVfdXNlciBpbXBvcnQgQ29uc29sZVVzZXIKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnNvbGVVc2VyIGZyb20gYSBKU09OIHN0cmluZwpjb25zb2xlX3VzZXJfaW5zdGFuY2UgPSBDb25zb2xlVXNlci5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDb25zb2xlVXNlci50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjb25zb2xlX3VzZXJfZGljdCA9IGNvbnNvbGVfdXNlcl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29uc29sZVVzZXIgZnJvbSBhIGRpY3QKY29uc29sZV91c2VyX2Zyb21fZGljdCA9IENvbnNvbGVVc2VyLmZyb21fZGljdChjb25zb2xlX3VzZXJfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ConsoleUserApi.md b/docs/ConsoleUserApi.md index f91b9b29..893f87b2 100644 --- a/docs/ConsoleUserApi.md +++ b/docs/ConsoleUserApi.md @@ -1,165 +1 @@ -# fireblocks.ConsoleUserApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**create_console_user**](ConsoleUserApi.md#create_console_user) | **POST** /management/users | Create console user -[**get_console_users**](ConsoleUserApi.md#get_console_users) | **GET** /management/users | Get console users - - -# **create_console_user** -> create_console_user(idempotency_key=idempotency_key, create_console_user=create_console_user) - -Create console user - -Create console users in your workspace -- Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. -Learn more about Fireblocks Users management in the following [guide](https://developers.fireblocks.com/docs/manage-users). -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.create_console_user import CreateConsoleUser -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - create_console_user = fireblocks.CreateConsoleUser() # CreateConsoleUser | (optional) - - try: - # Create console user - fireblocks.console_user.create_console_user(idempotency_key=idempotency_key, create_console_user=create_console_user).result() - except Exception as e: - print("Exception when calling ConsoleUserApi->create_console_user: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **create_console_user** | [**CreateConsoleUser**](CreateConsoleUser.md)| | [optional] - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | User creation approval request has been sent | * X-Request-ID -
| -**400** | bad request | * X-Request-ID -
| -**401** | Unauthorized. Missing / invalid JWT token in Authorization header. | * X-Request-ID -
| -**403** | Lacking permissions. | * X-Request-ID -
| -**5XX** | Internal error. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_console_users** -> GetConsoleUsersResponse get_console_users() - -Get console users - -Get console users for your workspace. -- Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.get_console_users_response import GetConsoleUsersResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Get console users - api_response = fireblocks.console_user.get_console_users().result() - print("The response of ConsoleUserApi->get_console_users:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ConsoleUserApi->get_console_users: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**GetConsoleUsersResponse**](GetConsoleUsersResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | got console users | * X-Request-ID -
| -**401** | Unauthorized. Missing / invalid JWT token in Authorization header. | * X-Request-ID -
| -**403** | Lacking permissions. | * X-Request-ID -
| -**5XX** | Internal error. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLkNvbnNvbGVVc2VyQXBpCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gKmh0dHBzOi8vYXBpLmZpcmVibG9ja3MuaW8vdjEqCgpNZXRob2QgfCBIVFRQIHJlcXVlc3QgfCBEZXNjcmlwdGlvbgotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KWyoqY3JlYXRlX2NvbnNvbGVfdXNlcioqXShDb25zb2xlVXNlckFwaS5tZCNjcmVhdGVfY29uc29sZV91c2VyKSB8ICoqUE9TVCoqIC9tYW5hZ2VtZW50L3VzZXJzIHwgQ3JlYXRlIGNvbnNvbGUgdXNlcgpbKipnZXRfY29uc29sZV91c2VycyoqXShDb25zb2xlVXNlckFwaS5tZCNnZXRfY29uc29sZV91c2VycykgfCAqKkdFVCoqIC9tYW5hZ2VtZW50L3VzZXJzIHwgR2V0IGNvbnNvbGUgdXNlcnMKCgojICoqY3JlYXRlX2NvbnNvbGVfdXNlcioqCj4gY3JlYXRlX2NvbnNvbGVfdXNlcihpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCBjcmVhdGVfY29uc29sZV91c2VyPWNyZWF0ZV9jb25zb2xlX3VzZXIpCgpDcmVhdGUgY29uc29sZSB1c2VyCgpDcmVhdGUgY29uc29sZSB1c2VycyBpbiB5b3VyIHdvcmtzcGFjZQotIFBsZWFzZSBub3RlIHRoYXQgdGhpcyBlbmRwb2ludCBpcyBhdmFpbGFibGUgb25seSBmb3IgQVBJIGtleXMgd2l0aCBBZG1pbi9Ob24gU2lnbmluZyBBZG1pbiBwZXJtaXNzaW9ucy4KTGVhcm4gbW9yZSBhYm91dCBGaXJlYmxvY2tzIFVzZXJzIG1hbmFnZW1lbnQgaW4gdGhlIGZvbGxvd2luZyBbZ3VpZGVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL21hbmFnZS11c2VycykuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfY29uc29sZV91c2VyIGltcG9ydCBDcmVhdGVDb25zb2xlVXNlcgpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQogICAgY3JlYXRlX2NvbnNvbGVfdXNlciA9IGZpcmVibG9ja3MuQ3JlYXRlQ29uc29sZVVzZXIoKSAjIENyZWF0ZUNvbnNvbGVVc2VyIHwgIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBDcmVhdGUgY29uc29sZSB1c2VyCiAgICAgICAgZmlyZWJsb2Nrcy5jb25zb2xlX3VzZXIuY3JlYXRlX2NvbnNvbGVfdXNlcihpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCBjcmVhdGVfY29uc29sZV91c2VyPWNyZWF0ZV9jb25zb2xlX3VzZXIpLnJlc3VsdCgpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQ29uc29sZVVzZXJBcGktPmNyZWF0ZV9jb25zb2xlX3VzZXI6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCiAqKmNyZWF0ZV9jb25zb2xlX3VzZXIqKiB8IFsqKkNyZWF0ZUNvbnNvbGVVc2VyKipdKENyZWF0ZUNvbnNvbGVVc2VyLm1kKXwgIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKdm9pZCAoZW1wdHkgcmVzcG9uc2UgYm9keSkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgVXNlciBjcmVhdGlvbiBhcHByb3ZhbCByZXF1ZXN0IGhhcyBiZWVuIHNlbnQgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMCoqIHwgYmFkIHJlcXVlc3QgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMSoqIHwgVW5hdXRob3JpemVkLiBNaXNzaW5nIC8gaW52YWxpZCBKV1QgdG9rZW4gaW4gQXV0aG9yaXphdGlvbiBoZWFkZXIuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDMqKiB8IExhY2tpbmcgcGVybWlzc2lvbnMuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio1WFgqKiB8IEludGVybmFsIGVycm9yLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2NvbnNvbGVfdXNlcnMqKgo+IEdldENvbnNvbGVVc2Vyc1Jlc3BvbnNlIGdldF9jb25zb2xlX3VzZXJzKCkKCkdldCBjb25zb2xlIHVzZXJzCgpHZXQgY29uc29sZSB1c2VycyBmb3IgeW91ciB3b3Jrc3BhY2UuCi0gUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGVuZHBvaW50IGlzIGF2YWlsYWJsZSBvbmx5IGZvciBBUEkga2V5cyB3aXRoIEFkbWluL05vbiBTaWduaW5nIEFkbWluIHBlcm1pc3Npb25zLgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbi4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X2NvbnNvbGVfdXNlcnNfcmVzcG9uc2UgaW1wb3J0IEdldENvbnNvbGVVc2Vyc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgY29uc29sZSB1c2VycwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuY29uc29sZV91c2VyLmdldF9jb25zb2xlX3VzZXJzKCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIENvbnNvbGVVc2VyQXBpLT5nZXRfY29uc29sZV91c2VyczpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBDb25zb2xlVXNlckFwaS0+Z2V0X2NvbnNvbGVfdXNlcnM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgpUaGlzIGVuZHBvaW50IGRvZXMgbm90IG5lZWQgYW55IHBhcmFtZXRlci4KCiMjIyBSZXR1cm4gdHlwZQoKWyoqR2V0Q29uc29sZVVzZXJzUmVzcG9uc2UqKl0oR2V0Q29uc29sZVVzZXJzUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBnb3QgY29uc29sZSB1c2VycyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDAxKiogfCBVbmF1dGhvcml6ZWQuIE1pc3NpbmcgLyBpbnZhbGlkIEpXVCB0b2tlbiBpbiBBdXRob3JpemF0aW9uIGhlYWRlci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMyoqIHwgTGFja2luZyBwZXJtaXNzaW9ucy4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjVYWCoqIHwgSW50ZXJuYWwgZXJyb3IuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCg== \ No newline at end of file diff --git a/docs/ContractAbiResponseDto.md b/docs/ContractAbiResponseDto.md index ad426e7d..da3a0e87 100644 --- a/docs/ContractAbiResponseDto.md +++ b/docs/ContractAbiResponseDto.md @@ -1,30 +1 @@ -# ContractAbiResponseDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**abi** | [**List[ContractAbiResponseDtoAbiInner]**](ContractAbiResponseDtoAbiInner.md) | The abi of the contract | -**implementation_abi** | [**List[AbiFunction]**](AbiFunction.md) | The abi of the implementation contract if exists. Relevant only for proxy patterns | [optional] - -## Example - -```python -from fireblocks.models.contract_abi_response_dto import ContractAbiResponseDto - -# TODO update the JSON string below -json = "{}" -# create an instance of ContractAbiResponseDto from a JSON string -contract_abi_response_dto_instance = ContractAbiResponseDto.from_json(json) -# print the JSON string representation of the object -print(ContractAbiResponseDto.to_json()) - -# convert the object into a dict -contract_abi_response_dto_dict = contract_abi_response_dto_instance.to_dict() -# create an instance of ContractAbiResponseDto from a dict -contract_abi_response_dto_from_dict = ContractAbiResponseDto.from_dict(contract_abi_response_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb250cmFjdEFiaVJlc3BvbnNlRHRvCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFiaSoqIHwgWyoqTGlzdFtDb250cmFjdEFiaVJlc3BvbnNlRHRvQWJpSW5uZXJdKipdKENvbnRyYWN0QWJpUmVzcG9uc2VEdG9BYmlJbm5lci5tZCkgfCBUaGUgYWJpIG9mIHRoZSBjb250cmFjdCB8IAoqKmltcGxlbWVudGF0aW9uX2FiaSoqIHwgWyoqTGlzdFtBYmlGdW5jdGlvbl0qKl0oQWJpRnVuY3Rpb24ubWQpIHwgVGhlIGFiaSBvZiB0aGUgaW1wbGVtZW50YXRpb24gY29udHJhY3QgaWYgZXhpc3RzLiBSZWxldmFudCBvbmx5IGZvciBwcm94eSBwYXR0ZXJucyB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9hYmlfcmVzcG9uc2VfZHRvIGltcG9ydCBDb250cmFjdEFiaVJlc3BvbnNlRHRvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb250cmFjdEFiaVJlc3BvbnNlRHRvIGZyb20gYSBKU09OIHN0cmluZwpjb250cmFjdF9hYmlfcmVzcG9uc2VfZHRvX2luc3RhbmNlID0gQ29udHJhY3RBYmlSZXNwb25zZUR0by5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDb250cmFjdEFiaVJlc3BvbnNlRHRvLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNvbnRyYWN0X2FiaV9yZXNwb25zZV9kdG9fZGljdCA9IGNvbnRyYWN0X2FiaV9yZXNwb25zZV9kdG9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0QWJpUmVzcG9uc2VEdG8gZnJvbSBhIGRpY3QKY29udHJhY3RfYWJpX3Jlc3BvbnNlX2R0b19mcm9tX2RpY3QgPSBDb250cmFjdEFiaVJlc3BvbnNlRHRvLmZyb21fZGljdChjb250cmFjdF9hYmlfcmVzcG9uc2VfZHRvX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ContractAbiResponseDtoAbiInner.md b/docs/ContractAbiResponseDtoAbiInner.md index 1488650c..6aa232a4 100644 --- a/docs/ContractAbiResponseDtoAbiInner.md +++ b/docs/ContractAbiResponseDtoAbiInner.md @@ -1,37 +1 @@ -# ContractAbiResponseDtoAbiInner - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | The name of the instruction | -**state_mutability** | **str** | The state mutability of the contract function as it appears in the ABI | [optional] -**type** | **str** | The type of the function | -**inputs** | [**List[Parameter]**](Parameter.md) | The parameters that this function/constructor posses | [optional] -**outputs** | [**List[Parameter]**](Parameter.md) | The parameters that this 'read' function returns | [optional] -**description** | **str** | The documentation of this function (if has any) | [optional] -**discriminator** | **List[float]** | The discriminator for the instruction. Acts as a function selector | -**accounts** | [**List[SOLAccount]**](SOLAccount.md) | | -**args** | [**List[SolParameter]**](SolParameter.md) | | - -## Example - -```python -from fireblocks.models.contract_abi_response_dto_abi_inner import ContractAbiResponseDtoAbiInner - -# TODO update the JSON string below -json = "{}" -# create an instance of ContractAbiResponseDtoAbiInner from a JSON string -contract_abi_response_dto_abi_inner_instance = ContractAbiResponseDtoAbiInner.from_json(json) -# print the JSON string representation of the object -print(ContractAbiResponseDtoAbiInner.to_json()) - -# convert the object into a dict -contract_abi_response_dto_abi_inner_dict = contract_abi_response_dto_abi_inner_instance.to_dict() -# create an instance of ContractAbiResponseDtoAbiInner from a dict -contract_abi_response_dto_abi_inner_from_dict = ContractAbiResponseDtoAbiInner.from_dict(contract_abi_response_dto_abi_inner_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb250cmFjdEFiaVJlc3BvbnNlRHRvQWJpSW5uZXIKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBuYW1lIG9mIHRoZSBpbnN0cnVjdGlvbiB8IAoqKnN0YXRlX211dGFiaWxpdHkqKiB8ICoqc3RyKiogfCBUaGUgc3RhdGUgbXV0YWJpbGl0eSBvZiB0aGUgY29udHJhY3QgZnVuY3Rpb24gYXMgaXQgYXBwZWFycyBpbiB0aGUgQUJJIHwgW29wdGlvbmFsXSAKKip0eXBlKiogfCAqKnN0cioqIHwgVGhlIHR5cGUgb2YgdGhlIGZ1bmN0aW9uIHwgCioqaW5wdXRzKiogfCBbKipMaXN0W1BhcmFtZXRlcl0qKl0oUGFyYW1ldGVyLm1kKSB8IFRoZSBwYXJhbWV0ZXJzIHRoYXQgdGhpcyBmdW5jdGlvbi9jb25zdHJ1Y3RvciBwb3NzZXMgfCBbb3B0aW9uYWxdIAoqKm91dHB1dHMqKiB8IFsqKkxpc3RbUGFyYW1ldGVyXSoqXShQYXJhbWV0ZXIubWQpIHwgVGhlIHBhcmFtZXRlcnMgdGhhdCB0aGlzICYjMzk7cmVhZCYjMzk7IGZ1bmN0aW9uIHJldHVybnMgfCBbb3B0aW9uYWxdIAoqKmRlc2NyaXB0aW9uKiogfCAqKnN0cioqIHwgVGhlIGRvY3VtZW50YXRpb24gb2YgdGhpcyBmdW5jdGlvbiAoaWYgaGFzIGFueSkgfCBbb3B0aW9uYWxdIAoqKmRpc2NyaW1pbmF0b3IqKiB8ICoqTGlzdFtmbG9hdF0qKiB8IFRoZSBkaXNjcmltaW5hdG9yIGZvciB0aGUgaW5zdHJ1Y3Rpb24uIEFjdHMgYXMgYSBmdW5jdGlvbiBzZWxlY3RvciB8IAoqKmFjY291bnRzKiogfCBbKipMaXN0W1NPTEFjY291bnRdKipdKFNPTEFjY291bnQubWQpIHwgIHwgCioqYXJncyoqIHwgWyoqTGlzdFtTb2xQYXJhbWV0ZXJdKipdKFNvbFBhcmFtZXRlci5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2FiaV9yZXNwb25zZV9kdG9fYWJpX2lubmVyIGltcG9ydCBDb250cmFjdEFiaVJlc3BvbnNlRHRvQWJpSW5uZXIKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0QWJpUmVzcG9uc2VEdG9BYmlJbm5lciBmcm9tIGEgSlNPTiBzdHJpbmcKY29udHJhY3RfYWJpX3Jlc3BvbnNlX2R0b19hYmlfaW5uZXJfaW5zdGFuY2UgPSBDb250cmFjdEFiaVJlc3BvbnNlRHRvQWJpSW5uZXIuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29udHJhY3RBYmlSZXNwb25zZUR0b0FiaUlubmVyLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNvbnRyYWN0X2FiaV9yZXNwb25zZV9kdG9fYWJpX2lubmVyX2RpY3QgPSBjb250cmFjdF9hYmlfcmVzcG9uc2VfZHRvX2FiaV9pbm5lcl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3RBYmlSZXNwb25zZUR0b0FiaUlubmVyIGZyb20gYSBkaWN0CmNvbnRyYWN0X2FiaV9yZXNwb25zZV9kdG9fYWJpX2lubmVyX2Zyb21fZGljdCA9IENvbnRyYWN0QWJpUmVzcG9uc2VEdG9BYmlJbm5lci5mcm9tX2RpY3QoY29udHJhY3RfYWJpX3Jlc3BvbnNlX2R0b19hYmlfaW5uZXJfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ContractAddressResponse.md b/docs/ContractAddressResponse.md index 948d8830..e777417f 100644 --- a/docs/ContractAddressResponse.md +++ b/docs/ContractAddressResponse.md @@ -1,29 +1 @@ -# ContractAddressResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**contract_address** | **str** | The contract's onchain address | - -## Example - -```python -from fireblocks.models.contract_address_response import ContractAddressResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ContractAddressResponse from a JSON string -contract_address_response_instance = ContractAddressResponse.from_json(json) -# print the JSON string representation of the object -print(ContractAddressResponse.to_json()) - -# convert the object into a dict -contract_address_response_dict = contract_address_response_instance.to_dict() -# create an instance of ContractAddressResponse from a dict -contract_address_response_from_dict = ContractAddressResponse.from_dict(contract_address_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb250cmFjdEFkZHJlc3NSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipjb250cmFjdF9hZGRyZXNzKiogfCAqKnN0cioqIHwgVGhlIGNvbnRyYWN0JiMzOTtzIG9uY2hhaW4gYWRkcmVzcyB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfYWRkcmVzc19yZXNwb25zZSBpbXBvcnQgQ29udHJhY3RBZGRyZXNzUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0QWRkcmVzc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpjb250cmFjdF9hZGRyZXNzX3Jlc3BvbnNlX2luc3RhbmNlID0gQ29udHJhY3RBZGRyZXNzUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29udHJhY3RBZGRyZXNzUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29udHJhY3RfYWRkcmVzc19yZXNwb25zZV9kaWN0ID0gY29udHJhY3RfYWRkcmVzc19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3RBZGRyZXNzUmVzcG9uc2UgZnJvbSBhIGRpY3QKY29udHJhY3RfYWRkcmVzc19yZXNwb25zZV9mcm9tX2RpY3QgPSBDb250cmFjdEFkZHJlc3NSZXNwb25zZS5mcm9tX2RpY3QoY29udHJhY3RfYWRkcmVzc19yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ContractAttributes.md b/docs/ContractAttributes.md index 3eaedb83..ceb5870f 100644 --- a/docs/ContractAttributes.md +++ b/docs/ContractAttributes.md @@ -1,31 +1 @@ -# ContractAttributes - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**use_cases** | **List[str]** | | -**standards** | **List[str]** | | -**auditor** | [**AuditorData**](AuditorData.md) | | - -## Example - -```python -from fireblocks.models.contract_attributes import ContractAttributes - -# TODO update the JSON string below -json = "{}" -# create an instance of ContractAttributes from a JSON string -contract_attributes_instance = ContractAttributes.from_json(json) -# print the JSON string representation of the object -print(ContractAttributes.to_json()) - -# convert the object into a dict -contract_attributes_dict = contract_attributes_instance.to_dict() -# create an instance of ContractAttributes from a dict -contract_attributes_from_dict = ContractAttributes.from_dict(contract_attributes_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb250cmFjdEF0dHJpYnV0ZXMKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdXNlX2Nhc2VzKiogfCAqKkxpc3Rbc3RyXSoqIHwgIHwgCioqc3RhbmRhcmRzKiogfCAqKkxpc3Rbc3RyXSoqIHwgIHwgCioqYXVkaXRvcioqIHwgWyoqQXVkaXRvckRhdGEqKl0oQXVkaXRvckRhdGEubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9hdHRyaWJ1dGVzIGltcG9ydCBDb250cmFjdEF0dHJpYnV0ZXMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0QXR0cmlidXRlcyBmcm9tIGEgSlNPTiBzdHJpbmcKY29udHJhY3RfYXR0cmlidXRlc19pbnN0YW5jZSA9IENvbnRyYWN0QXR0cmlidXRlcy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDb250cmFjdEF0dHJpYnV0ZXMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29udHJhY3RfYXR0cmlidXRlc19kaWN0ID0gY29udHJhY3RfYXR0cmlidXRlc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3RBdHRyaWJ1dGVzIGZyb20gYSBkaWN0CmNvbnRyYWN0X2F0dHJpYnV0ZXNfZnJvbV9kaWN0ID0gQ29udHJhY3RBdHRyaWJ1dGVzLmZyb21fZGljdChjb250cmFjdF9hdHRyaWJ1dGVzX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ContractDataDecodeDataType.md b/docs/ContractDataDecodeDataType.md index 14b24f3a..6b2adc99 100644 --- a/docs/ContractDataDecodeDataType.md +++ b/docs/ContractDataDecodeDataType.md @@ -1,15 +1 @@ -# ContractDataDecodeDataType - -The type of the data to decode. - -## Enum - -* `ERROR` (value: `'ERROR'`) - -* `LOG` (value: `'LOG'`) - -* `FUNCTION` (value: `'FUNCTION'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb250cmFjdERhdGFEZWNvZGVEYXRhVHlwZQoKVGhlIHR5cGUgb2YgdGhlIGRhdGEgdG8gZGVjb2RlLgoKIyMgRW51bQoKKiBgRVJST1JgICh2YWx1ZTogYCdFUlJPUidgKQoKKiBgTE9HYCAodmFsdWU6IGAnTE9HJ2ApCgoqIGBGVU5DVElPTmAgKHZhbHVlOiBgJ0ZVTkNUSU9OJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ContractDataDecodeError.md b/docs/ContractDataDecodeError.md index ba58b768..92f8777c 100644 --- a/docs/ContractDataDecodeError.md +++ b/docs/ContractDataDecodeError.md @@ -1,30 +1 @@ -# ContractDataDecodeError - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Bad request error message | -**code** | **float** | Error code | - -## Example - -```python -from fireblocks.models.contract_data_decode_error import ContractDataDecodeError - -# TODO update the JSON string below -json = "{}" -# create an instance of ContractDataDecodeError from a JSON string -contract_data_decode_error_instance = ContractDataDecodeError.from_json(json) -# print the JSON string representation of the object -print(ContractDataDecodeError.to_json()) - -# convert the object into a dict -contract_data_decode_error_dict = contract_data_decode_error_instance.to_dict() -# create an instance of ContractDataDecodeError from a dict -contract_data_decode_error_from_dict = ContractDataDecodeError.from_dict(contract_data_decode_error_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb250cmFjdERhdGFEZWNvZGVFcnJvcgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiptZXNzYWdlKiogfCAqKnN0cioqIHwgQmFkIHJlcXVlc3QgZXJyb3IgbWVzc2FnZSB8IAoqKmNvZGUqKiB8ICoqZmxvYXQqKiB8IEVycm9yIGNvZGUgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RhdGFfZGVjb2RlX2Vycm9yIGltcG9ydCBDb250cmFjdERhdGFEZWNvZGVFcnJvcgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3REYXRhRGVjb2RlRXJyb3IgZnJvbSBhIEpTT04gc3RyaW5nCmNvbnRyYWN0X2RhdGFfZGVjb2RlX2Vycm9yX2luc3RhbmNlID0gQ29udHJhY3REYXRhRGVjb2RlRXJyb3IuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29udHJhY3REYXRhRGVjb2RlRXJyb3IudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29udHJhY3RfZGF0YV9kZWNvZGVfZXJyb3JfZGljdCA9IGNvbnRyYWN0X2RhdGFfZGVjb2RlX2Vycm9yX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb250cmFjdERhdGFEZWNvZGVFcnJvciBmcm9tIGEgZGljdApjb250cmFjdF9kYXRhX2RlY29kZV9lcnJvcl9mcm9tX2RpY3QgPSBDb250cmFjdERhdGFEZWNvZGVFcnJvci5mcm9tX2RpY3QoY29udHJhY3RfZGF0YV9kZWNvZGVfZXJyb3JfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ContractDataDecodeRequest.md b/docs/ContractDataDecodeRequest.md index d4fba448..05fa6688 100644 --- a/docs/ContractDataDecodeRequest.md +++ b/docs/ContractDataDecodeRequest.md @@ -1,31 +1 @@ -# ContractDataDecodeRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**ContractDataDecodeRequestData**](ContractDataDecodeRequestData.md) | | -**data_type** | [**ContractDataDecodeDataType**](ContractDataDecodeDataType.md) | | -**abi** | [**List[AbiFunction]**](AbiFunction.md) | The abi of the function/error/log to decode. | [optional] - -## Example - -```python -from fireblocks.models.contract_data_decode_request import ContractDataDecodeRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of ContractDataDecodeRequest from a JSON string -contract_data_decode_request_instance = ContractDataDecodeRequest.from_json(json) -# print the JSON string representation of the object -print(ContractDataDecodeRequest.to_json()) - -# convert the object into a dict -contract_data_decode_request_dict = contract_data_decode_request_instance.to_dict() -# create an instance of ContractDataDecodeRequest from a dict -contract_data_decode_request_from_dict = ContractDataDecodeRequest.from_dict(contract_data_decode_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb250cmFjdERhdGFEZWNvZGVSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmRhdGEqKiB8IFsqKkNvbnRyYWN0RGF0YURlY29kZVJlcXVlc3REYXRhKipdKENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3REYXRhLm1kKSB8ICB8IAoqKmRhdGFfdHlwZSoqIHwgWyoqQ29udHJhY3REYXRhRGVjb2RlRGF0YVR5cGUqKl0oQ29udHJhY3REYXRhRGVjb2RlRGF0YVR5cGUubWQpIHwgIHwgCioqYWJpKiogfCBbKipMaXN0W0FiaUZ1bmN0aW9uXSoqXShBYmlGdW5jdGlvbi5tZCkgfCBUaGUgYWJpIG9mIHRoZSBmdW5jdGlvbi9lcnJvci9sb2cgdG8gZGVjb2RlLiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9kYXRhX2RlY29kZV9yZXF1ZXN0IGltcG9ydCBDb250cmFjdERhdGFEZWNvZGVSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb250cmFjdERhdGFEZWNvZGVSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpjb250cmFjdF9kYXRhX2RlY29kZV9yZXF1ZXN0X2luc3RhbmNlID0gQ29udHJhY3REYXRhRGVjb2RlUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDb250cmFjdERhdGFEZWNvZGVSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNvbnRyYWN0X2RhdGFfZGVjb2RlX3JlcXVlc3RfZGljdCA9IGNvbnRyYWN0X2RhdGFfZGVjb2RlX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3QgZnJvbSBhIGRpY3QKY29udHJhY3RfZGF0YV9kZWNvZGVfcmVxdWVzdF9mcm9tX2RpY3QgPSBDb250cmFjdERhdGFEZWNvZGVSZXF1ZXN0LmZyb21fZGljdChjb250cmFjdF9kYXRhX2RlY29kZV9yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ContractDataDecodeRequestData.md b/docs/ContractDataDecodeRequestData.md index b7a5f00a..5c9d7174 100644 --- a/docs/ContractDataDecodeRequestData.md +++ b/docs/ContractDataDecodeRequestData.md @@ -1,31 +1 @@ -# ContractDataDecodeRequestData - -The data to decode, which can be a string or an object containing the data and its type. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | **str** | The data to decode, which can be a string or an object containing the data and its type. | -**topics** | **List[str]** | The topics of the log, which is an array of strings. | - -## Example - -```python -from fireblocks.models.contract_data_decode_request_data import ContractDataDecodeRequestData - -# TODO update the JSON string below -json = "{}" -# create an instance of ContractDataDecodeRequestData from a JSON string -contract_data_decode_request_data_instance = ContractDataDecodeRequestData.from_json(json) -# print the JSON string representation of the object -print(ContractDataDecodeRequestData.to_json()) - -# convert the object into a dict -contract_data_decode_request_data_dict = contract_data_decode_request_data_instance.to_dict() -# create an instance of ContractDataDecodeRequestData from a dict -contract_data_decode_request_data_from_dict = ContractDataDecodeRequestData.from_dict(contract_data_decode_request_data_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb250cmFjdERhdGFEZWNvZGVSZXF1ZXN0RGF0YQoKVGhlIGRhdGEgdG8gZGVjb2RlLCB3aGljaCBjYW4gYmUgYSBzdHJpbmcgb3IgYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGRhdGEgYW5kIGl0cyB0eXBlLgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmRhdGEqKiB8ICoqc3RyKiogfCBUaGUgZGF0YSB0byBkZWNvZGUsIHdoaWNoIGNhbiBiZSBhIHN0cmluZyBvciBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgZGF0YSBhbmQgaXRzIHR5cGUuIHwgCioqdG9waWNzKiogfCAqKkxpc3Rbc3RyXSoqIHwgVGhlIHRvcGljcyBvZiB0aGUgbG9nLCB3aGljaCBpcyBhbiBhcnJheSBvZiBzdHJpbmdzLiB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfZGF0YV9kZWNvZGVfcmVxdWVzdF9kYXRhIGltcG9ydCBDb250cmFjdERhdGFEZWNvZGVSZXF1ZXN0RGF0YQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3REYXRhRGVjb2RlUmVxdWVzdERhdGEgZnJvbSBhIEpTT04gc3RyaW5nCmNvbnRyYWN0X2RhdGFfZGVjb2RlX3JlcXVlc3RfZGF0YV9pbnN0YW5jZSA9IENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3REYXRhLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3REYXRhLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNvbnRyYWN0X2RhdGFfZGVjb2RlX3JlcXVlc3RfZGF0YV9kaWN0ID0gY29udHJhY3RfZGF0YV9kZWNvZGVfcmVxdWVzdF9kYXRhX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb250cmFjdERhdGFEZWNvZGVSZXF1ZXN0RGF0YSBmcm9tIGEgZGljdApjb250cmFjdF9kYXRhX2RlY29kZV9yZXF1ZXN0X2RhdGFfZnJvbV9kaWN0ID0gQ29udHJhY3REYXRhRGVjb2RlUmVxdWVzdERhdGEuZnJvbV9kaWN0KGNvbnRyYWN0X2RhdGFfZGVjb2RlX3JlcXVlc3RfZGF0YV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ContractDataDecodeResponseParams.md b/docs/ContractDataDecodeResponseParams.md index 3150a1ab..7df410a6 100644 --- a/docs/ContractDataDecodeResponseParams.md +++ b/docs/ContractDataDecodeResponseParams.md @@ -1,31 +1 @@ -# ContractDataDecodeResponseParams - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | The name of the contract function. | -**signature** | **str** | The signature of the contract function. | -**args** | [**List[ParameterWithValue]**](ParameterWithValue.md) | | - -## Example - -```python -from fireblocks.models.contract_data_decode_response_params import ContractDataDecodeResponseParams - -# TODO update the JSON string below -json = "{}" -# create an instance of ContractDataDecodeResponseParams from a JSON string -contract_data_decode_response_params_instance = ContractDataDecodeResponseParams.from_json(json) -# print the JSON string representation of the object -print(ContractDataDecodeResponseParams.to_json()) - -# convert the object into a dict -contract_data_decode_response_params_dict = contract_data_decode_response_params_instance.to_dict() -# create an instance of ContractDataDecodeResponseParams from a dict -contract_data_decode_response_params_from_dict = ContractDataDecodeResponseParams.from_dict(contract_data_decode_response_params_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb250cmFjdERhdGFEZWNvZGVSZXNwb25zZVBhcmFtcwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipuYW1lKiogfCAqKnN0cioqIHwgVGhlIG5hbWUgb2YgdGhlIGNvbnRyYWN0IGZ1bmN0aW9uLiB8IAoqKnNpZ25hdHVyZSoqIHwgKipzdHIqKiB8IFRoZSBzaWduYXR1cmUgb2YgdGhlIGNvbnRyYWN0IGZ1bmN0aW9uLiB8IAoqKmFyZ3MqKiB8IFsqKkxpc3RbUGFyYW1ldGVyV2l0aFZhbHVlXSoqXShQYXJhbWV0ZXJXaXRoVmFsdWUubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9kYXRhX2RlY29kZV9yZXNwb25zZV9wYXJhbXMgaW1wb3J0IENvbnRyYWN0RGF0YURlY29kZVJlc3BvbnNlUGFyYW1zCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb250cmFjdERhdGFEZWNvZGVSZXNwb25zZVBhcmFtcyBmcm9tIGEgSlNPTiBzdHJpbmcKY29udHJhY3RfZGF0YV9kZWNvZGVfcmVzcG9uc2VfcGFyYW1zX2luc3RhbmNlID0gQ29udHJhY3REYXRhRGVjb2RlUmVzcG9uc2VQYXJhbXMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29udHJhY3REYXRhRGVjb2RlUmVzcG9uc2VQYXJhbXMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29udHJhY3RfZGF0YV9kZWNvZGVfcmVzcG9uc2VfcGFyYW1zX2RpY3QgPSBjb250cmFjdF9kYXRhX2RlY29kZV9yZXNwb25zZV9wYXJhbXNfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0RGF0YURlY29kZVJlc3BvbnNlUGFyYW1zIGZyb20gYSBkaWN0CmNvbnRyYWN0X2RhdGFfZGVjb2RlX3Jlc3BvbnNlX3BhcmFtc19mcm9tX2RpY3QgPSBDb250cmFjdERhdGFEZWNvZGVSZXNwb25zZVBhcmFtcy5mcm9tX2RpY3QoY29udHJhY3RfZGF0YV9kZWNvZGVfcmVzcG9uc2VfcGFyYW1zX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ContractDataDecodedResponse.md b/docs/ContractDataDecodedResponse.md index ccaf3195..804d049d 100644 --- a/docs/ContractDataDecodedResponse.md +++ b/docs/ContractDataDecodedResponse.md @@ -1,30 +1 @@ -# ContractDataDecodedResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**result** | [**List[ContractDataDecodeResponseParams]**](ContractDataDecodeResponseParams.md) | The decoded parameters of the contract function call. | -**type** | [**ContractDataDecodeDataType**](ContractDataDecodeDataType.md) | | - -## Example - -```python -from fireblocks.models.contract_data_decoded_response import ContractDataDecodedResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ContractDataDecodedResponse from a JSON string -contract_data_decoded_response_instance = ContractDataDecodedResponse.from_json(json) -# print the JSON string representation of the object -print(ContractDataDecodedResponse.to_json()) - -# convert the object into a dict -contract_data_decoded_response_dict = contract_data_decoded_response_instance.to_dict() -# create an instance of ContractDataDecodedResponse from a dict -contract_data_decoded_response_from_dict = ContractDataDecodedResponse.from_dict(contract_data_decoded_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb250cmFjdERhdGFEZWNvZGVkUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcmVzdWx0KiogfCBbKipMaXN0W0NvbnRyYWN0RGF0YURlY29kZVJlc3BvbnNlUGFyYW1zXSoqXShDb250cmFjdERhdGFEZWNvZGVSZXNwb25zZVBhcmFtcy5tZCkgfCBUaGUgZGVjb2RlZCBwYXJhbWV0ZXJzIG9mIHRoZSBjb250cmFjdCBmdW5jdGlvbiBjYWxsLiB8IAoqKnR5cGUqKiB8IFsqKkNvbnRyYWN0RGF0YURlY29kZURhdGFUeXBlKipdKENvbnRyYWN0RGF0YURlY29kZURhdGFUeXBlLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfZGF0YV9kZWNvZGVkX3Jlc3BvbnNlIGltcG9ydCBDb250cmFjdERhdGFEZWNvZGVkUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0RGF0YURlY29kZWRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKY29udHJhY3RfZGF0YV9kZWNvZGVkX3Jlc3BvbnNlX2luc3RhbmNlID0gQ29udHJhY3REYXRhRGVjb2RlZFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbnRyYWN0RGF0YURlY29kZWRSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjb250cmFjdF9kYXRhX2RlY29kZWRfcmVzcG9uc2VfZGljdCA9IGNvbnRyYWN0X2RhdGFfZGVjb2RlZF9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3REYXRhRGVjb2RlZFJlc3BvbnNlIGZyb20gYSBkaWN0CmNvbnRyYWN0X2RhdGFfZGVjb2RlZF9yZXNwb25zZV9mcm9tX2RpY3QgPSBDb250cmFjdERhdGFEZWNvZGVkUmVzcG9uc2UuZnJvbV9kaWN0KGNvbnRyYWN0X2RhdGFfZGVjb2RlZF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ContractDataLogDataParam.md b/docs/ContractDataLogDataParam.md index 6dfe4b7e..6a0c0bc9 100644 --- a/docs/ContractDataLogDataParam.md +++ b/docs/ContractDataLogDataParam.md @@ -1,30 +1 @@ -# ContractDataLogDataParam - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | **str** | The data to decode, which can be a string or an object containing the data and its type. | -**topics** | **List[str]** | The topics of the log, which is an array of strings. | - -## Example - -```python -from fireblocks.models.contract_data_log_data_param import ContractDataLogDataParam - -# TODO update the JSON string below -json = "{}" -# create an instance of ContractDataLogDataParam from a JSON string -contract_data_log_data_param_instance = ContractDataLogDataParam.from_json(json) -# print the JSON string representation of the object -print(ContractDataLogDataParam.to_json()) - -# convert the object into a dict -contract_data_log_data_param_dict = contract_data_log_data_param_instance.to_dict() -# create an instance of ContractDataLogDataParam from a dict -contract_data_log_data_param_from_dict = ContractDataLogDataParam.from_dict(contract_data_log_data_param_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb250cmFjdERhdGFMb2dEYXRhUGFyYW0KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZGF0YSoqIHwgKipzdHIqKiB8IFRoZSBkYXRhIHRvIGRlY29kZSwgd2hpY2ggY2FuIGJlIGEgc3RyaW5nIG9yIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBkYXRhIGFuZCBpdHMgdHlwZS4gfCAKKip0b3BpY3MqKiB8ICoqTGlzdFtzdHJdKiogfCBUaGUgdG9waWNzIG9mIHRoZSBsb2csIHdoaWNoIGlzIGFuIGFycmF5IG9mIHN0cmluZ3MuIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9kYXRhX2xvZ19kYXRhX3BhcmFtIGltcG9ydCBDb250cmFjdERhdGFMb2dEYXRhUGFyYW0KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0RGF0YUxvZ0RhdGFQYXJhbSBmcm9tIGEgSlNPTiBzdHJpbmcKY29udHJhY3RfZGF0YV9sb2dfZGF0YV9wYXJhbV9pbnN0YW5jZSA9IENvbnRyYWN0RGF0YUxvZ0RhdGFQYXJhbS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDb250cmFjdERhdGFMb2dEYXRhUGFyYW0udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29udHJhY3RfZGF0YV9sb2dfZGF0YV9wYXJhbV9kaWN0ID0gY29udHJhY3RfZGF0YV9sb2dfZGF0YV9wYXJhbV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3REYXRhTG9nRGF0YVBhcmFtIGZyb20gYSBkaWN0CmNvbnRyYWN0X2RhdGFfbG9nX2RhdGFfcGFyYW1fZnJvbV9kaWN0ID0gQ29udHJhY3REYXRhTG9nRGF0YVBhcmFtLmZyb21fZGljdChjb250cmFjdF9kYXRhX2xvZ19kYXRhX3BhcmFtX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ContractDeployRequest.md b/docs/ContractDeployRequest.md index 402abde7..73eb0317 100644 --- a/docs/ContractDeployRequest.md +++ b/docs/ContractDeployRequest.md @@ -1,34 +1 @@ -# ContractDeployRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**asset_id** | **str** | The base asset identifier of the blockchain you want to deploy to | -**vault_account_id** | **str** | The vault account id you wish to deploy from | -**constructor_parameters** | [**List[ParameterWithValue]**](ParameterWithValue.md) | The constructor parameters of this contract | [optional] -**use_gasless** | **bool** | Indicates whether the token should be created in a gasless manner, utilizing the ERC-2771 standard. When set to true, the transaction will be relayed by a designated relayer. The workspace must be configured to use Fireblocks gasless relay. | [optional] -**fee** | **str** | Max fee amount for the write function transaction. interchangeable with the 'feeLevel' field | [optional] -**fee_level** | **str** | Fee level for the write function transaction. interchangeable with the 'fee' field | [optional] - -## Example - -```python -from fireblocks.models.contract_deploy_request import ContractDeployRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of ContractDeployRequest from a JSON string -contract_deploy_request_instance = ContractDeployRequest.from_json(json) -# print the JSON string representation of the object -print(ContractDeployRequest.to_json()) - -# convert the object into a dict -contract_deploy_request_dict = contract_deploy_request_instance.to_dict() -# create an instance of ContractDeployRequest from a dict -contract_deploy_request_from_dict = ContractDeployRequest.from_dict(contract_deploy_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb250cmFjdERlcGxveVJlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYXNzZXRfaWQqKiB8ICoqc3RyKiogfCBUaGUgYmFzZSBhc3NldCBpZGVudGlmaWVyIG9mIHRoZSBibG9ja2NoYWluIHlvdSB3YW50IHRvIGRlcGxveSB0byB8IAoqKnZhdWx0X2FjY291bnRfaWQqKiB8ICoqc3RyKiogfCBUaGUgdmF1bHQgYWNjb3VudCBpZCB5b3Ugd2lzaCB0byBkZXBsb3kgZnJvbSB8IAoqKmNvbnN0cnVjdG9yX3BhcmFtZXRlcnMqKiB8IFsqKkxpc3RbUGFyYW1ldGVyV2l0aFZhbHVlXSoqXShQYXJhbWV0ZXJXaXRoVmFsdWUubWQpIHwgVGhlIGNvbnN0cnVjdG9yIHBhcmFtZXRlcnMgb2YgdGhpcyBjb250cmFjdCB8IFtvcHRpb25hbF0gCioqdXNlX2dhc2xlc3MqKiB8ICoqYm9vbCoqIHwgSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRva2VuIHNob3VsZCBiZSBjcmVhdGVkIGluIGEgZ2FzbGVzcyBtYW5uZXIsIHV0aWxpemluZyB0aGUgRVJDLTI3NzEgc3RhbmRhcmQuIFdoZW4gc2V0IHRvIHRydWUsIHRoZSB0cmFuc2FjdGlvbiB3aWxsIGJlIHJlbGF5ZWQgYnkgYSBkZXNpZ25hdGVkIHJlbGF5ZXIuIFRoZSB3b3Jrc3BhY2UgbXVzdCBiZSBjb25maWd1cmVkIHRvIHVzZSBGaXJlYmxvY2tzIGdhc2xlc3MgcmVsYXkuIHwgW29wdGlvbmFsXSAKKipmZWUqKiB8ICoqc3RyKiogfCBNYXggZmVlIGFtb3VudCBmb3IgdGhlIHdyaXRlIGZ1bmN0aW9uIHRyYW5zYWN0aW9uLiBpbnRlcmNoYW5nZWFibGUgd2l0aCB0aGUgJiMzOTtmZWVMZXZlbCYjMzk7IGZpZWxkIHwgW29wdGlvbmFsXSAKKipmZWVfbGV2ZWwqKiB8ICoqc3RyKiogfCBGZWUgbGV2ZWwgZm9yIHRoZSB3cml0ZSBmdW5jdGlvbiB0cmFuc2FjdGlvbi4gaW50ZXJjaGFuZ2VhYmxlIHdpdGggdGhlICYjMzk7ZmVlJiMzOTsgZmllbGQgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfZGVwbG95X3JlcXVlc3QgaW1wb3J0IENvbnRyYWN0RGVwbG95UmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3REZXBsb3lSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpjb250cmFjdF9kZXBsb3lfcmVxdWVzdF9pbnN0YW5jZSA9IENvbnRyYWN0RGVwbG95UmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDb250cmFjdERlcGxveVJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29udHJhY3RfZGVwbG95X3JlcXVlc3RfZGljdCA9IGNvbnRyYWN0X2RlcGxveV9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb250cmFjdERlcGxveVJlcXVlc3QgZnJvbSBhIGRpY3QKY29udHJhY3RfZGVwbG95X3JlcXVlc3RfZnJvbV9kaWN0ID0gQ29udHJhY3REZXBsb3lSZXF1ZXN0LmZyb21fZGljdChjb250cmFjdF9kZXBsb3lfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ContractDeployResponse.md b/docs/ContractDeployResponse.md index 53977e01..a37a4db0 100644 --- a/docs/ContractDeployResponse.md +++ b/docs/ContractDeployResponse.md @@ -1,29 +1 @@ -# ContractDeployResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**tx_id** | **str** | The transaction id of the deployment request | - -## Example - -```python -from fireblocks.models.contract_deploy_response import ContractDeployResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ContractDeployResponse from a JSON string -contract_deploy_response_instance = ContractDeployResponse.from_json(json) -# print the JSON string representation of the object -print(ContractDeployResponse.to_json()) - -# convert the object into a dict -contract_deploy_response_dict = contract_deploy_response_instance.to_dict() -# create an instance of ContractDeployResponse from a dict -contract_deploy_response_from_dict = ContractDeployResponse.from_dict(contract_deploy_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb250cmFjdERlcGxveVJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR4X2lkKiogfCAqKnN0cioqIHwgVGhlIHRyYW5zYWN0aW9uIGlkIG9mIHRoZSBkZXBsb3ltZW50IHJlcXVlc3QgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RlcGxveV9yZXNwb25zZSBpbXBvcnQgQ29udHJhY3REZXBsb3lSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3REZXBsb3lSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKY29udHJhY3RfZGVwbG95X3Jlc3BvbnNlX2luc3RhbmNlID0gQ29udHJhY3REZXBsb3lSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDb250cmFjdERlcGxveVJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNvbnRyYWN0X2RlcGxveV9yZXNwb25zZV9kaWN0ID0gY29udHJhY3RfZGVwbG95X3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb250cmFjdERlcGxveVJlc3BvbnNlIGZyb20gYSBkaWN0CmNvbnRyYWN0X2RlcGxveV9yZXNwb25zZV9mcm9tX2RpY3QgPSBDb250cmFjdERlcGxveVJlc3BvbnNlLmZyb21fZGljdChjb250cmFjdF9kZXBsb3lfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ContractDoc.md b/docs/ContractDoc.md index 45153f1d..3d89b0ad 100644 --- a/docs/ContractDoc.md +++ b/docs/ContractDoc.md @@ -1,33 +1 @@ -# ContractDoc - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**details** | **str** | A description of the contract | [optional] -**events** | **str** | A description of the contract`s events | [optional] -**kind** | **str** | Is it devdoc or userdoc | -**methods** | [**Dict[str, FunctionDoc]**](FunctionDoc.md) | The description of the contract functions | -**version** | **float** | The version of the contract | - -## Example - -```python -from fireblocks.models.contract_doc import ContractDoc - -# TODO update the JSON string below -json = "{}" -# create an instance of ContractDoc from a JSON string -contract_doc_instance = ContractDoc.from_json(json) -# print the JSON string representation of the object -print(ContractDoc.to_json()) - -# convert the object into a dict -contract_doc_dict = contract_doc_instance.to_dict() -# create an instance of ContractDoc from a dict -contract_doc_from_dict = ContractDoc.from_dict(contract_doc_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb250cmFjdERvYwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkZXRhaWxzKiogfCAqKnN0cioqIHwgQSBkZXNjcmlwdGlvbiBvZiB0aGUgY29udHJhY3QgfCBbb3B0aW9uYWxdIAoqKmV2ZW50cyoqIHwgKipzdHIqKiB8IEEgZGVzY3JpcHRpb24gb2YgdGhlIGNvbnRyYWN0JiN4NjA7cyBldmVudHMgfCBbb3B0aW9uYWxdIAoqKmtpbmQqKiB8ICoqc3RyKiogfCBJcyBpdCBkZXZkb2Mgb3IgdXNlcmRvYyB8IAoqKm1ldGhvZHMqKiB8IFsqKkRpY3Rbc3RyLCBGdW5jdGlvbkRvY10qKl0oRnVuY3Rpb25Eb2MubWQpIHwgVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBjb250cmFjdCBmdW5jdGlvbnMgfCAKKip2ZXJzaW9uKiogfCAqKmZsb2F0KiogfCBUaGUgdmVyc2lvbiBvZiB0aGUgY29udHJhY3QgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RvYyBpbXBvcnQgQ29udHJhY3REb2MKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0RG9jIGZyb20gYSBKU09OIHN0cmluZwpjb250cmFjdF9kb2NfaW5zdGFuY2UgPSBDb250cmFjdERvYy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDb250cmFjdERvYy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjb250cmFjdF9kb2NfZGljdCA9IGNvbnRyYWN0X2RvY19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3REb2MgZnJvbSBhIGRpY3QKY29udHJhY3RfZG9jX2Zyb21fZGljdCA9IENvbnRyYWN0RG9jLmZyb21fZGljdChjb250cmFjdF9kb2NfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ContractInteractionsApi.md b/docs/ContractInteractionsApi.md index b8f20541..450d431d 100644 --- a/docs/ContractInteractionsApi.md +++ b/docs/ContractInteractionsApi.md @@ -1,493 +1 @@ -# fireblocks.ContractInteractionsApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**decode_contract_data**](ContractInteractionsApi.md#decode_contract_data) | **POST** /contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/decode | Decode a function call data, error, or event log -[**get_contract_address**](ContractInteractionsApi.md#get_contract_address) | **GET** /contract_interactions/base_asset_id/{baseAssetId}/tx_hash/{txHash} | Get contract address by transaction hash -[**get_deployed_contract_abi**](ContractInteractionsApi.md#get_deployed_contract_abi) | **GET** /contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/functions | Return deployed contract's ABI -[**get_transaction_receipt**](ContractInteractionsApi.md#get_transaction_receipt) | **GET** /contract_interactions/base_asset_id/{baseAssetId}/tx_hash/{txHash}/receipt | Get transaction receipt -[**read_call_function**](ContractInteractionsApi.md#read_call_function) | **POST** /contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/functions/read | Call a read function on a deployed contract -[**write_call_function**](ContractInteractionsApi.md#write_call_function) | **POST** /contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/functions/write | Call a write function on a deployed contract - - -# **decode_contract_data** -> ContractDataDecodedResponse decode_contract_data(contract_address, base_asset_id, contract_data_decode_request, idempotency_key=idempotency_key) - -Decode a function call data, error, or event log - -Decode a function call data, error, or event log from a deployed contract by blockchain native asset id and contract address. - -### Example - - -```python -from fireblocks.models.contract_data_decode_request import ContractDataDecodeRequest -from fireblocks.models.contract_data_decoded_response import ContractDataDecodedResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66' # str | The contract's onchain address - base_asset_id = 'ETH' # str | The blockchain native asset identifier - contract_data_decode_request = fireblocks.ContractDataDecodeRequest() # ContractDataDecodeRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Decode a function call data, error, or event log - api_response = fireblocks.contract_interactions.decode_contract_data(contract_address, base_asset_id, contract_data_decode_request, idempotency_key=idempotency_key).result() - print("The response of ContractInteractionsApi->decode_contract_data:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ContractInteractionsApi->decode_contract_data: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **contract_address** | **str**| The contract's onchain address | - **base_asset_id** | **str**| The blockchain native asset identifier | - **contract_data_decode_request** | [**ContractDataDecodeRequest**](ContractDataDecodeRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**ContractDataDecodedResponse**](ContractDataDecodedResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Decoded data retrieved successfully | - | -**400** | Bad request, invalid input data or parameters | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_contract_address** -> ContractAddressResponse get_contract_address(base_asset_id, tx_hash, idempotency_key=idempotency_key) - -Get contract address by transaction hash - -Retrieve the contract address by blockchain native asset ID and transaction hash - -### Example - - -```python -from fireblocks.models.contract_address_response import ContractAddressResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - base_asset_id = 'ETH_TEST3' # str | The blockchain base assetId - tx_hash = '0x3b015ca0518c55d7bff4e3f5aa5d0431705771553ba8a95cf20e34cb597f57f6' # str | The transaction hash - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Get contract address by transaction hash - api_response = fireblocks.contract_interactions.get_contract_address(base_asset_id, tx_hash, idempotency_key=idempotency_key).result() - print("The response of ContractInteractionsApi->get_contract_address:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ContractInteractionsApi->get_contract_address: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **base_asset_id** | **str**| The blockchain base assetId | - **tx_hash** | **str**| The transaction hash | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**ContractAddressResponse**](ContractAddressResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Retrieved The Contract Address Successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_deployed_contract_abi** -> ContractAbiResponseDto get_deployed_contract_abi(contract_address, base_asset_id, idempotency_key=idempotency_key) - -Return deployed contract's ABI - -Return deployed contract's ABI by blockchain native asset id and contract address. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer. - -### Example - - -```python -from fireblocks.models.contract_abi_response_dto import ContractAbiResponseDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66' # str | The contract's onchain address - base_asset_id = 'ETH' # str | The blockchain base assetId - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Return deployed contract's ABI - api_response = fireblocks.contract_interactions.get_deployed_contract_abi(contract_address, base_asset_id, idempotency_key=idempotency_key).result() - print("The response of ContractInteractionsApi->get_deployed_contract_abi:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ContractInteractionsApi->get_deployed_contract_abi: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **contract_address** | **str**| The contract's onchain address | - **base_asset_id** | **str**| The blockchain base assetId | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**ContractAbiResponseDto**](ContractAbiResponseDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_transaction_receipt** -> TransactionReceiptResponse get_transaction_receipt(base_asset_id, tx_hash) - -Get transaction receipt - -Retrieve the transaction receipt by blockchain native asset ID and transaction hash -> **Note** > This functionality is exclusively available for EVM (Ethereum Virtual Machine) compatible chains. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer. - -### Example - - -```python -from fireblocks.models.transaction_receipt_response import TransactionReceiptResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - base_asset_id = 'ETH_TEST6' # str | The blockchain base assetId - tx_hash = '0x3b015ca0518c55d7bff4e3f5aa5d0431705771553ba8a95cf20e34cb597f57f6' # str | The transaction hash - - try: - # Get transaction receipt - api_response = fireblocks.contract_interactions.get_transaction_receipt(base_asset_id, tx_hash).result() - print("The response of ContractInteractionsApi->get_transaction_receipt:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ContractInteractionsApi->get_transaction_receipt: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **base_asset_id** | **str**| The blockchain base assetId | - **tx_hash** | **str**| The transaction hash | - -### Return type - -[**TransactionReceiptResponse**](TransactionReceiptResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Retrieved The Transaction Receipt Successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **read_call_function** -> List[ParameterWithValue] read_call_function(contract_address, base_asset_id, read_call_function_dto, idempotency_key=idempotency_key) - -Call a read function on a deployed contract - -Call a read function on a deployed contract by blockchain native asset id and contract address - -### Example - - -```python -from fireblocks.models.parameter_with_value import ParameterWithValue -from fireblocks.models.read_call_function_dto import ReadCallFunctionDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66' # str | The contract's onchain address - base_asset_id = 'base_asset_id_example' # str | - read_call_function_dto = fireblocks.ReadCallFunctionDto() # ReadCallFunctionDto | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Call a read function on a deployed contract - api_response = fireblocks.contract_interactions.read_call_function(contract_address, base_asset_id, read_call_function_dto, idempotency_key=idempotency_key).result() - print("The response of ContractInteractionsApi->read_call_function:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ContractInteractionsApi->read_call_function: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **contract_address** | **str**| The contract's onchain address | - **base_asset_id** | **str**| | - **read_call_function_dto** | [**ReadCallFunctionDto**](ReadCallFunctionDto.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**List[ParameterWithValue]**](ParameterWithValue.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Read Call Retrieved Successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **write_call_function** -> WriteCallFunctionResponseDto write_call_function(contract_address, base_asset_id, write_call_function_dto, idempotency_key=idempotency_key) - -Call a write function on a deployed contract - -Call a write function on a deployed contract by blockchain native asset id and contract address. This creates an onchain transaction, thus it is an async operation. It returns a transaction id that can be polled for status check - -### Example - - -```python -from fireblocks.models.write_call_function_dto import WriteCallFunctionDto -from fireblocks.models.write_call_function_response_dto import WriteCallFunctionResponseDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66' # str | The contract's onchain address - base_asset_id = 'base_asset_id_example' # str | - write_call_function_dto = fireblocks.WriteCallFunctionDto() # WriteCallFunctionDto | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Call a write function on a deployed contract - api_response = fireblocks.contract_interactions.write_call_function(contract_address, base_asset_id, write_call_function_dto, idempotency_key=idempotency_key).result() - print("The response of ContractInteractionsApi->write_call_function:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ContractInteractionsApi->write_call_function: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **contract_address** | **str**| The contract's onchain address | - **base_asset_id** | **str**| | - **write_call_function_dto** | [**WriteCallFunctionDto**](WriteCallFunctionDto.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**WriteCallFunctionResponseDto**](WriteCallFunctionResponseDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**202** | | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLkNvbnRyYWN0SW50ZXJhY3Rpb25zQXBpCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gKmh0dHBzOi8vYXBpLmZpcmVibG9ja3MuaW8vdjEqCgpNZXRob2QgfCBIVFRQIHJlcXVlc3QgfCBEZXNjcmlwdGlvbgotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KWyoqZGVjb2RlX2NvbnRyYWN0X2RhdGEqKl0oQ29udHJhY3RJbnRlcmFjdGlvbnNBcGkubWQjZGVjb2RlX2NvbnRyYWN0X2RhdGEpIHwgKipQT1NUKiogL2NvbnRyYWN0X2ludGVyYWN0aW9ucy9iYXNlX2Fzc2V0X2lkL3tiYXNlQXNzZXRJZH0vY29udHJhY3RfYWRkcmVzcy97Y29udHJhY3RBZGRyZXNzfS9kZWNvZGUgfCBEZWNvZGUgYSBmdW5jdGlvbiBjYWxsIGRhdGEsIGVycm9yLCBvciBldmVudCBsb2cKWyoqZ2V0X2NvbnRyYWN0X2FkZHJlc3MqKl0oQ29udHJhY3RJbnRlcmFjdGlvbnNBcGkubWQjZ2V0X2NvbnRyYWN0X2FkZHJlc3MpIHwgKipHRVQqKiAvY29udHJhY3RfaW50ZXJhY3Rpb25zL2Jhc2VfYXNzZXRfaWQve2Jhc2VBc3NldElkfS90eF9oYXNoL3t0eEhhc2h9IHwgR2V0IGNvbnRyYWN0IGFkZHJlc3MgYnkgdHJhbnNhY3Rpb24gaGFzaApbKipnZXRfZGVwbG95ZWRfY29udHJhY3RfYWJpKipdKENvbnRyYWN0SW50ZXJhY3Rpb25zQXBpLm1kI2dldF9kZXBsb3llZF9jb250cmFjdF9hYmkpIHwgKipHRVQqKiAvY29udHJhY3RfaW50ZXJhY3Rpb25zL2Jhc2VfYXNzZXRfaWQve2Jhc2VBc3NldElkfS9jb250cmFjdF9hZGRyZXNzL3tjb250cmFjdEFkZHJlc3N9L2Z1bmN0aW9ucyB8IFJldHVybiBkZXBsb3llZCBjb250cmFjdCYjMzk7cyBBQkkKWyoqZ2V0X3RyYW5zYWN0aW9uX3JlY2VpcHQqKl0oQ29udHJhY3RJbnRlcmFjdGlvbnNBcGkubWQjZ2V0X3RyYW5zYWN0aW9uX3JlY2VpcHQpIHwgKipHRVQqKiAvY29udHJhY3RfaW50ZXJhY3Rpb25zL2Jhc2VfYXNzZXRfaWQve2Jhc2VBc3NldElkfS90eF9oYXNoL3t0eEhhc2h9L3JlY2VpcHQgfCBHZXQgdHJhbnNhY3Rpb24gcmVjZWlwdApbKipyZWFkX2NhbGxfZnVuY3Rpb24qKl0oQ29udHJhY3RJbnRlcmFjdGlvbnNBcGkubWQjcmVhZF9jYWxsX2Z1bmN0aW9uKSB8ICoqUE9TVCoqIC9jb250cmFjdF9pbnRlcmFjdGlvbnMvYmFzZV9hc3NldF9pZC97YmFzZUFzc2V0SWR9L2NvbnRyYWN0X2FkZHJlc3Mve2NvbnRyYWN0QWRkcmVzc30vZnVuY3Rpb25zL3JlYWQgfCBDYWxsIGEgcmVhZCBmdW5jdGlvbiBvbiBhIGRlcGxveWVkIGNvbnRyYWN0ClsqKndyaXRlX2NhbGxfZnVuY3Rpb24qKl0oQ29udHJhY3RJbnRlcmFjdGlvbnNBcGkubWQjd3JpdGVfY2FsbF9mdW5jdGlvbikgfCAqKlBPU1QqKiAvY29udHJhY3RfaW50ZXJhY3Rpb25zL2Jhc2VfYXNzZXRfaWQve2Jhc2VBc3NldElkfS9jb250cmFjdF9hZGRyZXNzL3tjb250cmFjdEFkZHJlc3N9L2Z1bmN0aW9ucy93cml0ZSB8IENhbGwgYSB3cml0ZSBmdW5jdGlvbiBvbiBhIGRlcGxveWVkIGNvbnRyYWN0CgoKIyAqKmRlY29kZV9jb250cmFjdF9kYXRhKioKPiBDb250cmFjdERhdGFEZWNvZGVkUmVzcG9uc2UgZGVjb2RlX2NvbnRyYWN0X2RhdGEoY29udHJhY3RfYWRkcmVzcywgYmFzZV9hc3NldF9pZCwgY29udHJhY3RfZGF0YV9kZWNvZGVfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCkRlY29kZSBhIGZ1bmN0aW9uIGNhbGwgZGF0YSwgZXJyb3IsIG9yIGV2ZW50IGxvZwoKRGVjb2RlIGEgZnVuY3Rpb24gY2FsbCBkYXRhLCBlcnJvciwgb3IgZXZlbnQgbG9nIGZyb20gYSBkZXBsb3llZCBjb250cmFjdCBieSBibG9ja2NoYWluIG5hdGl2ZSBhc3NldCBpZCBhbmQgY29udHJhY3QgYWRkcmVzcy4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfZGF0YV9kZWNvZGVfcmVxdWVzdCBpbXBvcnQgQ29udHJhY3REYXRhRGVjb2RlUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RhdGFfZGVjb2RlZF9yZXNwb25zZSBpbXBvcnQgQ29udHJhY3REYXRhRGVjb2RlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGNvbnRyYWN0X2FkZHJlc3MgPSAnMHhDMmM0ZTFEYjQxRjBiQjk3OTk2RDBlRDA1NDJEMjE3MGQxNDZGQjY2JyAjIHN0ciB8IFRoZSBjb250cmFjdCdzIG9uY2hhaW4gYWRkcmVzcwogICAgYmFzZV9hc3NldF9pZCA9ICdFVEgnICMgc3RyIHwgVGhlIGJsb2NrY2hhaW4gbmF0aXZlIGFzc2V0IGlkZW50aWZpZXIKICAgIGNvbnRyYWN0X2RhdGFfZGVjb2RlX3JlcXVlc3QgPSBmaXJlYmxvY2tzLkNvbnRyYWN0RGF0YURlY29kZVJlcXVlc3QoKSAjIENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBEZWNvZGUgYSBmdW5jdGlvbiBjYWxsIGRhdGEsIGVycm9yLCBvciBldmVudCBsb2cKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmNvbnRyYWN0X2ludGVyYWN0aW9ucy5kZWNvZGVfY29udHJhY3RfZGF0YShjb250cmFjdF9hZGRyZXNzLCBiYXNlX2Fzc2V0X2lkLCBjb250cmFjdF9kYXRhX2RlY29kZV9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgQ29udHJhY3RJbnRlcmFjdGlvbnNBcGktPmRlY29kZV9jb250cmFjdF9kYXRhOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIENvbnRyYWN0SW50ZXJhY3Rpb25zQXBpLT5kZWNvZGVfY29udHJhY3RfZGF0YTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqY29udHJhY3RfYWRkcmVzcyoqIHwgKipzdHIqKnwgVGhlIGNvbnRyYWN0JiMzOTtzIG9uY2hhaW4gYWRkcmVzcyB8IAogKipiYXNlX2Fzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgYmxvY2tjaGFpbiBuYXRpdmUgYXNzZXQgaWRlbnRpZmllciB8IAogKipjb250cmFjdF9kYXRhX2RlY29kZV9yZXF1ZXN0KiogfCBbKipDb250cmFjdERhdGFEZWNvZGVSZXF1ZXN0KipdKENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3QubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqQ29udHJhY3REYXRhRGVjb2RlZFJlc3BvbnNlKipdKENvbnRyYWN0RGF0YURlY29kZWRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgRGVjb2RlZCBkYXRhIHJldHJpZXZlZCBzdWNjZXNzZnVsbHkgfCAgLSAgfAoqKjQwMCoqIHwgQmFkIHJlcXVlc3QsIGludmFsaWQgaW5wdXQgZGF0YSBvciBwYXJhbWV0ZXJzIHwgIC0gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfY29udHJhY3RfYWRkcmVzcyoqCj4gQ29udHJhY3RBZGRyZXNzUmVzcG9uc2UgZ2V0X2NvbnRyYWN0X2FkZHJlc3MoYmFzZV9hc3NldF9pZCwgdHhfaGFzaCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCkdldCBjb250cmFjdCBhZGRyZXNzIGJ5IHRyYW5zYWN0aW9uIGhhc2gKClJldHJpZXZlIHRoZSBjb250cmFjdCBhZGRyZXNzIGJ5IGJsb2NrY2hhaW4gbmF0aXZlIGFzc2V0IElEIGFuZCB0cmFuc2FjdGlvbiBoYXNoCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2FkZHJlc3NfcmVzcG9uc2UgaW1wb3J0IENvbnRyYWN0QWRkcmVzc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGJhc2VfYXNzZXRfaWQgPSAnRVRIX1RFU1QzJyAjIHN0ciB8IFRoZSBibG9ja2NoYWluIGJhc2UgYXNzZXRJZAogICAgdHhfaGFzaCA9ICcweDNiMDE1Y2EwNTE4YzU1ZDdiZmY0ZTNmNWFhNWQwNDMxNzA1NzcxNTUzYmE4YTk1Y2YyMGUzNGNiNTk3ZjU3ZjYnICMgc3RyIHwgVGhlIHRyYW5zYWN0aW9uIGhhc2gKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgY29udHJhY3QgYWRkcmVzcyBieSB0cmFuc2FjdGlvbiBoYXNoCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5jb250cmFjdF9pbnRlcmFjdGlvbnMuZ2V0X2NvbnRyYWN0X2FkZHJlc3MoYmFzZV9hc3NldF9pZCwgdHhfaGFzaCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIENvbnRyYWN0SW50ZXJhY3Rpb25zQXBpLT5nZXRfY29udHJhY3RfYWRkcmVzczpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBDb250cmFjdEludGVyYWN0aW9uc0FwaS0+Z2V0X2NvbnRyYWN0X2FkZHJlc3M6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmJhc2VfYXNzZXRfaWQqKiB8ICoqc3RyKip8IFRoZSBibG9ja2NoYWluIGJhc2UgYXNzZXRJZCB8IAogKip0eF9oYXNoKiogfCAqKnN0cioqfCBUaGUgdHJhbnNhY3Rpb24gaGFzaCB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipDb250cmFjdEFkZHJlc3NSZXNwb25zZSoqXShDb250cmFjdEFkZHJlc3NSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFJldHJpZXZlZCBUaGUgQ29udHJhY3QgQWRkcmVzcyBTdWNjZXNzZnVsbHkgfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9kZXBsb3llZF9jb250cmFjdF9hYmkqKgo+IENvbnRyYWN0QWJpUmVzcG9uc2VEdG8gZ2V0X2RlcGxveWVkX2NvbnRyYWN0X2FiaShjb250cmFjdF9hZGRyZXNzLCBiYXNlX2Fzc2V0X2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKUmV0dXJuIGRlcGxveWVkIGNvbnRyYWN0J3MgQUJJCgpSZXR1cm4gZGVwbG95ZWQgY29udHJhY3QncyBBQkkgYnkgYmxvY2tjaGFpbiBuYXRpdmUgYXNzZXQgaWQgYW5kIGNvbnRyYWN0IGFkZHJlc3MuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIGFuZCBWaWV3ZXIuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2FiaV9yZXNwb25zZV9kdG8gaW1wb3J0IENvbnRyYWN0QWJpUmVzcG9uc2VEdG8KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY29udHJhY3RfYWRkcmVzcyA9ICcweEMyYzRlMURiNDFGMGJCOTc5OTZEMGVEMDU0MkQyMTcwZDE0NkZCNjYnICMgc3RyIHwgVGhlIGNvbnRyYWN0J3Mgb25jaGFpbiBhZGRyZXNzCiAgICBiYXNlX2Fzc2V0X2lkID0gJ0VUSCcgIyBzdHIgfCBUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBSZXR1cm4gZGVwbG95ZWQgY29udHJhY3QncyBBQkkKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmNvbnRyYWN0X2ludGVyYWN0aW9ucy5nZXRfZGVwbG95ZWRfY29udHJhY3RfYWJpKGNvbnRyYWN0X2FkZHJlc3MsIGJhc2VfYXNzZXRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBDb250cmFjdEludGVyYWN0aW9uc0FwaS0+Z2V0X2RlcGxveWVkX2NvbnRyYWN0X2FiaTpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBDb250cmFjdEludGVyYWN0aW9uc0FwaS0+Z2V0X2RlcGxveWVkX2NvbnRyYWN0X2FiaTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqY29udHJhY3RfYWRkcmVzcyoqIHwgKipzdHIqKnwgVGhlIGNvbnRyYWN0JiMzOTtzIG9uY2hhaW4gYWRkcmVzcyB8IAogKipiYXNlX2Fzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqQ29udHJhY3RBYmlSZXNwb25zZUR0byoqXShDb250cmFjdEFiaVJlc3BvbnNlRHRvLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgIHwgIC0gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfdHJhbnNhY3Rpb25fcmVjZWlwdCoqCj4gVHJhbnNhY3Rpb25SZWNlaXB0UmVzcG9uc2UgZ2V0X3RyYW5zYWN0aW9uX3JlY2VpcHQoYmFzZV9hc3NldF9pZCwgdHhfaGFzaCkKCkdldCB0cmFuc2FjdGlvbiByZWNlaXB0CgpSZXRyaWV2ZSB0aGUgdHJhbnNhY3Rpb24gcmVjZWlwdCBieSBibG9ja2NoYWluIG5hdGl2ZSBhc3NldCBJRCBhbmQgdHJhbnNhY3Rpb24gaGFzaAo+ICoqTm90ZSoqID4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIGV4Y2x1c2l2ZWx5IGF2YWlsYWJsZSBmb3IgRVZNIChFdGhlcmV1bSBWaXJ0dWFsIE1hY2hpbmUpIGNvbXBhdGlibGUgY2hhaW5zLiAKPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgYW5kIFZpZXdlci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVjZWlwdF9yZXNwb25zZSBpbXBvcnQgVHJhbnNhY3Rpb25SZWNlaXB0UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgYmFzZV9hc3NldF9pZCA9ICdFVEhfVEVTVDYnICMgc3RyIHwgVGhlIGJsb2NrY2hhaW4gYmFzZSBhc3NldElkCiAgICB0eF9oYXNoID0gJzB4M2IwMTVjYTA1MThjNTVkN2JmZjRlM2Y1YWE1ZDA0MzE3MDU3NzE1NTNiYThhOTVjZjIwZTM0Y2I1OTdmNTdmNicgIyBzdHIgfCBUaGUgdHJhbnNhY3Rpb24gaGFzaAoKICAgIHRyeToKICAgICAgICAjIEdldCB0cmFuc2FjdGlvbiByZWNlaXB0CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5jb250cmFjdF9pbnRlcmFjdGlvbnMuZ2V0X3RyYW5zYWN0aW9uX3JlY2VpcHQoYmFzZV9hc3NldF9pZCwgdHhfaGFzaCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIENvbnRyYWN0SW50ZXJhY3Rpb25zQXBpLT5nZXRfdHJhbnNhY3Rpb25fcmVjZWlwdDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBDb250cmFjdEludGVyYWN0aW9uc0FwaS0+Z2V0X3RyYW5zYWN0aW9uX3JlY2VpcHQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmJhc2VfYXNzZXRfaWQqKiB8ICoqc3RyKip8IFRoZSBibG9ja2NoYWluIGJhc2UgYXNzZXRJZCB8IAogKip0eF9oYXNoKiogfCAqKnN0cioqfCBUaGUgdHJhbnNhY3Rpb24gaGFzaCB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipUcmFuc2FjdGlvblJlY2VpcHRSZXNwb25zZSoqXShUcmFuc2FjdGlvblJlY2VpcHRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFJldHJpZXZlZCBUaGUgVHJhbnNhY3Rpb24gUmVjZWlwdCBTdWNjZXNzZnVsbHkgfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnJlYWRfY2FsbF9mdW5jdGlvbioqCj4gTGlzdFtQYXJhbWV0ZXJXaXRoVmFsdWVdIHJlYWRfY2FsbF9mdW5jdGlvbihjb250cmFjdF9hZGRyZXNzLCBiYXNlX2Fzc2V0X2lkLCByZWFkX2NhbGxfZnVuY3Rpb25fZHRvLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKQ2FsbCBhIHJlYWQgZnVuY3Rpb24gb24gYSBkZXBsb3llZCBjb250cmFjdAoKQ2FsbCBhIHJlYWQgZnVuY3Rpb24gb24gYSBkZXBsb3llZCBjb250cmFjdCBieSBibG9ja2NoYWluIG5hdGl2ZSBhc3NldCBpZCBhbmQgY29udHJhY3QgYWRkcmVzcwoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXJfd2l0aF92YWx1ZSBpbXBvcnQgUGFyYW1ldGVyV2l0aFZhbHVlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVhZF9jYWxsX2Z1bmN0aW9uX2R0byBpbXBvcnQgUmVhZENhbGxGdW5jdGlvbkR0bwpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjb250cmFjdF9hZGRyZXNzID0gJzB4QzJjNGUxRGI0MUYwYkI5Nzk5NkQwZUQwNTQyRDIxNzBkMTQ2RkI2NicgIyBzdHIgfCBUaGUgY29udHJhY3QncyBvbmNoYWluIGFkZHJlc3MKICAgIGJhc2VfYXNzZXRfaWQgPSAnYmFzZV9hc3NldF9pZF9leGFtcGxlJyAjIHN0ciB8IAogICAgcmVhZF9jYWxsX2Z1bmN0aW9uX2R0byA9IGZpcmVibG9ja3MuUmVhZENhbGxGdW5jdGlvbkR0bygpICMgUmVhZENhbGxGdW5jdGlvbkR0byB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIENhbGwgYSByZWFkIGZ1bmN0aW9uIG9uIGEgZGVwbG95ZWQgY29udHJhY3QKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmNvbnRyYWN0X2ludGVyYWN0aW9ucy5yZWFkX2NhbGxfZnVuY3Rpb24oY29udHJhY3RfYWRkcmVzcywgYmFzZV9hc3NldF9pZCwgcmVhZF9jYWxsX2Z1bmN0aW9uX2R0bywgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIENvbnRyYWN0SW50ZXJhY3Rpb25zQXBpLT5yZWFkX2NhbGxfZnVuY3Rpb246XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQ29udHJhY3RJbnRlcmFjdGlvbnNBcGktPnJlYWRfY2FsbF9mdW5jdGlvbjogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqY29udHJhY3RfYWRkcmVzcyoqIHwgKipzdHIqKnwgVGhlIGNvbnRyYWN0JiMzOTtzIG9uY2hhaW4gYWRkcmVzcyB8IAogKipiYXNlX2Fzc2V0X2lkKiogfCAqKnN0cioqfCAgfCAKICoqcmVhZF9jYWxsX2Z1bmN0aW9uX2R0byoqIHwgWyoqUmVhZENhbGxGdW5jdGlvbkR0byoqXShSZWFkQ2FsbEZ1bmN0aW9uRHRvLm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkxpc3RbUGFyYW1ldGVyV2l0aFZhbHVlXSoqXShQYXJhbWV0ZXJXaXRoVmFsdWUubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFJlYWQgQ2FsbCBSZXRyaWV2ZWQgU3VjY2Vzc2Z1bGx5IHwgIC0gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKip3cml0ZV9jYWxsX2Z1bmN0aW9uKioKPiBXcml0ZUNhbGxGdW5jdGlvblJlc3BvbnNlRHRvIHdyaXRlX2NhbGxfZnVuY3Rpb24oY29udHJhY3RfYWRkcmVzcywgYmFzZV9hc3NldF9pZCwgd3JpdGVfY2FsbF9mdW5jdGlvbl9kdG8sIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpDYWxsIGEgd3JpdGUgZnVuY3Rpb24gb24gYSBkZXBsb3llZCBjb250cmFjdAoKQ2FsbCBhIHdyaXRlIGZ1bmN0aW9uIG9uIGEgZGVwbG95ZWQgY29udHJhY3QgYnkgYmxvY2tjaGFpbiBuYXRpdmUgYXNzZXQgaWQgYW5kIGNvbnRyYWN0IGFkZHJlc3MuIFRoaXMgY3JlYXRlcyBhbiBvbmNoYWluIHRyYW5zYWN0aW9uLCB0aHVzIGl0IGlzIGFuIGFzeW5jIG9wZXJhdGlvbi4gSXQgcmV0dXJucyBhIHRyYW5zYWN0aW9uIGlkIHRoYXQgY2FuIGJlIHBvbGxlZCBmb3Igc3RhdHVzIGNoZWNrCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndyaXRlX2NhbGxfZnVuY3Rpb25fZHRvIGltcG9ydCBXcml0ZUNhbGxGdW5jdGlvbkR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndyaXRlX2NhbGxfZnVuY3Rpb25fcmVzcG9uc2VfZHRvIGltcG9ydCBXcml0ZUNhbGxGdW5jdGlvblJlc3BvbnNlRHRvCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGNvbnRyYWN0X2FkZHJlc3MgPSAnMHhDMmM0ZTFEYjQxRjBiQjk3OTk2RDBlRDA1NDJEMjE3MGQxNDZGQjY2JyAjIHN0ciB8IFRoZSBjb250cmFjdCdzIG9uY2hhaW4gYWRkcmVzcwogICAgYmFzZV9hc3NldF9pZCA9ICdiYXNlX2Fzc2V0X2lkX2V4YW1wbGUnICMgc3RyIHwgCiAgICB3cml0ZV9jYWxsX2Z1bmN0aW9uX2R0byA9IGZpcmVibG9ja3MuV3JpdGVDYWxsRnVuY3Rpb25EdG8oKSAjIFdyaXRlQ2FsbEZ1bmN0aW9uRHRvIHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ2FsbCBhIHdyaXRlIGZ1bmN0aW9uIG9uIGEgZGVwbG95ZWQgY29udHJhY3QKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmNvbnRyYWN0X2ludGVyYWN0aW9ucy53cml0ZV9jYWxsX2Z1bmN0aW9uKGNvbnRyYWN0X2FkZHJlc3MsIGJhc2VfYXNzZXRfaWQsIHdyaXRlX2NhbGxfZnVuY3Rpb25fZHRvLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgQ29udHJhY3RJbnRlcmFjdGlvbnNBcGktPndyaXRlX2NhbGxfZnVuY3Rpb246XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQ29udHJhY3RJbnRlcmFjdGlvbnNBcGktPndyaXRlX2NhbGxfZnVuY3Rpb246ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmNvbnRyYWN0X2FkZHJlc3MqKiB8ICoqc3RyKip8IFRoZSBjb250cmFjdCYjMzk7cyBvbmNoYWluIGFkZHJlc3MgfCAKICoqYmFzZV9hc3NldF9pZCoqIHwgKipzdHIqKnwgIHwgCiAqKndyaXRlX2NhbGxfZnVuY3Rpb25fZHRvKiogfCBbKipXcml0ZUNhbGxGdW5jdGlvbkR0byoqXShXcml0ZUNhbGxGdW5jdGlvbkR0by5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipXcml0ZUNhbGxGdW5jdGlvblJlc3BvbnNlRHRvKipdKFdyaXRlQ2FsbEZ1bmN0aW9uUmVzcG9uc2VEdG8ubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDIqKiB8ICB8ICAtICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgo= \ No newline at end of file diff --git a/docs/ContractMetadataDto.md b/docs/ContractMetadataDto.md index a382a45e..f71a5fb6 100644 --- a/docs/ContractMetadataDto.md +++ b/docs/ContractMetadataDto.md @@ -1,33 +1 @@ -# ContractMetadataDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The deployed contract ID | -**blockchain_id** | **str** | The blockchain ID | -**contract_address** | **str** | The address of the token contract | -**contract_template_id** | **str** | The contract template ID | -**vault_account_id** | **str** | The vault account ID that initiated the request to issue the token | [optional] - -## Example - -```python -from fireblocks.models.contract_metadata_dto import ContractMetadataDto - -# TODO update the JSON string below -json = "{}" -# create an instance of ContractMetadataDto from a JSON string -contract_metadata_dto_instance = ContractMetadataDto.from_json(json) -# print the JSON string representation of the object -print(ContractMetadataDto.to_json()) - -# convert the object into a dict -contract_metadata_dto_dict = contract_metadata_dto_instance.to_dict() -# create an instance of ContractMetadataDto from a dict -contract_metadata_dto_from_dict = ContractMetadataDto.from_dict(contract_metadata_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb250cmFjdE1ldGFkYXRhRHRvCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgVGhlIGRlcGxveWVkIGNvbnRyYWN0IElEIHwgCioqYmxvY2tjaGFpbl9pZCoqIHwgKipzdHIqKiB8IFRoZSBibG9ja2NoYWluIElEIHwgCioqY29udHJhY3RfYWRkcmVzcyoqIHwgKipzdHIqKiB8IFRoZSBhZGRyZXNzIG9mIHRoZSB0b2tlbiBjb250cmFjdCB8IAoqKmNvbnRyYWN0X3RlbXBsYXRlX2lkKiogfCAqKnN0cioqIHwgVGhlIGNvbnRyYWN0IHRlbXBsYXRlIElEIHwgCioqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8IFRoZSB2YXVsdCBhY2NvdW50IElEIHRoYXQgaW5pdGlhdGVkIHRoZSByZXF1ZXN0IHRvIGlzc3VlIHRoZSB0b2tlbiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9tZXRhZGF0YV9kdG8gaW1wb3J0IENvbnRyYWN0TWV0YWRhdGFEdG8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0TWV0YWRhdGFEdG8gZnJvbSBhIEpTT04gc3RyaW5nCmNvbnRyYWN0X21ldGFkYXRhX2R0b19pbnN0YW5jZSA9IENvbnRyYWN0TWV0YWRhdGFEdG8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29udHJhY3RNZXRhZGF0YUR0by50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjb250cmFjdF9tZXRhZGF0YV9kdG9fZGljdCA9IGNvbnRyYWN0X21ldGFkYXRhX2R0b19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3RNZXRhZGF0YUR0byBmcm9tIGEgZGljdApjb250cmFjdF9tZXRhZGF0YV9kdG9fZnJvbV9kaWN0ID0gQ29udHJhY3RNZXRhZGF0YUR0by5mcm9tX2RpY3QoY29udHJhY3RfbWV0YWRhdGFfZHRvX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ContractMethodConfig.md b/docs/ContractMethodConfig.md index 37b1eee0..6d578c12 100644 --- a/docs/ContractMethodConfig.md +++ b/docs/ContractMethodConfig.md @@ -1,32 +1 @@ -# ContractMethodConfig - -Contract method configuration - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**method_calls** | **List[str]** | | -**operator** | **str** | Operator for method calls | -**payload_suffix** | **str** | Payload suffix for method calls | [optional] - -## Example - -```python -from fireblocks.models.contract_method_config import ContractMethodConfig - -# TODO update the JSON string below -json = "{}" -# create an instance of ContractMethodConfig from a JSON string -contract_method_config_instance = ContractMethodConfig.from_json(json) -# print the JSON string representation of the object -print(ContractMethodConfig.to_json()) - -# convert the object into a dict -contract_method_config_dict = contract_method_config_instance.to_dict() -# create an instance of ContractMethodConfig from a dict -contract_method_config_from_dict = ContractMethodConfig.from_dict(contract_method_config_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb250cmFjdE1ldGhvZENvbmZpZwoKQ29udHJhY3QgbWV0aG9kIGNvbmZpZ3VyYXRpb24KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiptZXRob2RfY2FsbHMqKiB8ICoqTGlzdFtzdHJdKiogfCAgfCAKKipvcGVyYXRvcioqIHwgKipzdHIqKiB8IE9wZXJhdG9yIGZvciBtZXRob2QgY2FsbHMgfCAKKipwYXlsb2FkX3N1ZmZpeCoqIHwgKipzdHIqKiB8IFBheWxvYWQgc3VmZml4IGZvciBtZXRob2QgY2FsbHMgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfbWV0aG9kX2NvbmZpZyBpbXBvcnQgQ29udHJhY3RNZXRob2RDb25maWcKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0TWV0aG9kQ29uZmlnIGZyb20gYSBKU09OIHN0cmluZwpjb250cmFjdF9tZXRob2RfY29uZmlnX2luc3RhbmNlID0gQ29udHJhY3RNZXRob2RDb25maWcuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29udHJhY3RNZXRob2RDb25maWcudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29udHJhY3RfbWV0aG9kX2NvbmZpZ19kaWN0ID0gY29udHJhY3RfbWV0aG9kX2NvbmZpZ19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3RNZXRob2RDb25maWcgZnJvbSBhIGRpY3QKY29udHJhY3RfbWV0aG9kX2NvbmZpZ19mcm9tX2RpY3QgPSBDb250cmFjdE1ldGhvZENvbmZpZy5mcm9tX2RpY3QoY29udHJhY3RfbWV0aG9kX2NvbmZpZ19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ContractMethodPattern.md b/docs/ContractMethodPattern.md index ed418d88..3c13f2d9 100644 --- a/docs/ContractMethodPattern.md +++ b/docs/ContractMethodPattern.md @@ -1,31 +1 @@ -# ContractMethodPattern - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**method_calls** | **List[str]** | | -**operator** | **str** | Operator for method calls | -**payload_suffix** | **str** | Payload suffix for method calls | [optional] - -## Example - -```python -from fireblocks.models.contract_method_pattern import ContractMethodPattern - -# TODO update the JSON string below -json = "{}" -# create an instance of ContractMethodPattern from a JSON string -contract_method_pattern_instance = ContractMethodPattern.from_json(json) -# print the JSON string representation of the object -print(ContractMethodPattern.to_json()) - -# convert the object into a dict -contract_method_pattern_dict = contract_method_pattern_instance.to_dict() -# create an instance of ContractMethodPattern from a dict -contract_method_pattern_from_dict = ContractMethodPattern.from_dict(contract_method_pattern_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb250cmFjdE1ldGhvZFBhdHRlcm4KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbWV0aG9kX2NhbGxzKiogfCAqKkxpc3Rbc3RyXSoqIHwgIHwgCioqb3BlcmF0b3IqKiB8ICoqc3RyKiogfCBPcGVyYXRvciBmb3IgbWV0aG9kIGNhbGxzIHwgCioqcGF5bG9hZF9zdWZmaXgqKiB8ICoqc3RyKiogfCBQYXlsb2FkIHN1ZmZpeCBmb3IgbWV0aG9kIGNhbGxzIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X21ldGhvZF9wYXR0ZXJuIGltcG9ydCBDb250cmFjdE1ldGhvZFBhdHRlcm4KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0TWV0aG9kUGF0dGVybiBmcm9tIGEgSlNPTiBzdHJpbmcKY29udHJhY3RfbWV0aG9kX3BhdHRlcm5faW5zdGFuY2UgPSBDb250cmFjdE1ldGhvZFBhdHRlcm4uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29udHJhY3RNZXRob2RQYXR0ZXJuLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNvbnRyYWN0X21ldGhvZF9wYXR0ZXJuX2RpY3QgPSBjb250cmFjdF9tZXRob2RfcGF0dGVybl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3RNZXRob2RQYXR0ZXJuIGZyb20gYSBkaWN0CmNvbnRyYWN0X21ldGhvZF9wYXR0ZXJuX2Zyb21fZGljdCA9IENvbnRyYWN0TWV0aG9kUGF0dGVybi5mcm9tX2RpY3QoY29udHJhY3RfbWV0aG9kX3BhdHRlcm5fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ContractTemplateDto.md b/docs/ContractTemplateDto.md index 0e68dfcf..bbb072c8 100644 --- a/docs/ContractTemplateDto.md +++ b/docs/ContractTemplateDto.md @@ -1,42 +1 @@ -# ContractTemplateDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The unique identifier of the contract template | -**name** | **str** | The name of the contract template | -**description** | **str** | A short description of the contract template | -**long_description** | **str** | A full description of the contract template. May contain to break the lines | [optional] -**abi** | [**List[AbiFunction]**](AbiFunction.md) | The abi of the contract template. Necessary for displaying and for after deployment encoding | -**attributes** | [**ContractAttributes**](ContractAttributes.md) | The attributes related to this contract template. It will be displayed in the tokenization page | [optional] -**docs** | [**ContractDoc**](ContractDoc.md) | A `natspec` compliant documentation json. Can be retrieved from the output json after compilation | [optional] -**owner** | **str** | The workspace id of the owner of this contract template. If it's a private contract, only this workspace will be allowed to deploy it | [optional] -**vendor** | [**VendorDto**](VendorDto.md) | The details of the vendor of this contract template. Applicable only for public contract templates | [optional] -**is_public** | **bool** | Is this a contract that is viewable by all fireblocks's users or is it visible only for this workspace | -**can_deploy** | **bool** | True if the workspace allowed to deploy this contract, false otherwise | [optional] -**type** | **str** | The type of the contract template | [optional] -**implementation_contract_id** | **str** | | [optional] -**initialization_phase** | **str** | | - -## Example - -```python -from fireblocks.models.contract_template_dto import ContractTemplateDto - -# TODO update the JSON string below -json = "{}" -# create an instance of ContractTemplateDto from a JSON string -contract_template_dto_instance = ContractTemplateDto.from_json(json) -# print the JSON string representation of the object -print(ContractTemplateDto.to_json()) - -# convert the object into a dict -contract_template_dto_dict = contract_template_dto_instance.to_dict() -# create an instance of ContractTemplateDto from a dict -contract_template_dto_from_dict = ContractTemplateDto.from_dict(contract_template_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb250cmFjdFRlbXBsYXRlRHRvCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb250cmFjdCB0ZW1wbGF0ZSB8IAoqKm5hbWUqKiB8ICoqc3RyKiogfCBUaGUgbmFtZSBvZiB0aGUgY29udHJhY3QgdGVtcGxhdGUgfCAKKipkZXNjcmlwdGlvbioqIHwgKipzdHIqKiB8IEEgc2hvcnQgZGVzY3JpcHRpb24gb2YgdGhlIGNvbnRyYWN0IHRlbXBsYXRlIHwgCioqbG9uZ19kZXNjcmlwdGlvbioqIHwgKipzdHIqKiB8IEEgZnVsbCBkZXNjcmlwdGlvbiBvZiB0aGUgY29udHJhY3QgdGVtcGxhdGUuIE1heSBjb250YWluICAgdG8gYnJlYWsgdGhlIGxpbmVzIHwgW29wdGlvbmFsXSAKKiphYmkqKiB8IFsqKkxpc3RbQWJpRnVuY3Rpb25dKipdKEFiaUZ1bmN0aW9uLm1kKSB8IFRoZSBhYmkgb2YgdGhlIGNvbnRyYWN0IHRlbXBsYXRlLiBOZWNlc3NhcnkgZm9yIGRpc3BsYXlpbmcgYW5kIGZvciBhZnRlciBkZXBsb3ltZW50IGVuY29kaW5nIHwgCioqYXR0cmlidXRlcyoqIHwgWyoqQ29udHJhY3RBdHRyaWJ1dGVzKipdKENvbnRyYWN0QXR0cmlidXRlcy5tZCkgfCBUaGUgYXR0cmlidXRlcyByZWxhdGVkIHRvIHRoaXMgY29udHJhY3QgdGVtcGxhdGUuIEl0IHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSB0b2tlbml6YXRpb24gcGFnZSB8IFtvcHRpb25hbF0gCioqZG9jcyoqIHwgWyoqQ29udHJhY3REb2MqKl0oQ29udHJhY3REb2MubWQpIHwgQSAmI3g2MDtuYXRzcGVjJiN4NjA7IGNvbXBsaWFudCBkb2N1bWVudGF0aW9uIGpzb24uIENhbiBiZSByZXRyaWV2ZWQgZnJvbSB0aGUgb3V0cHV0IGpzb24gYWZ0ZXIgY29tcGlsYXRpb24gfCBbb3B0aW9uYWxdIAoqKm93bmVyKiogfCAqKnN0cioqIHwgVGhlIHdvcmtzcGFjZSBpZCBvZiB0aGUgb3duZXIgb2YgdGhpcyBjb250cmFjdCB0ZW1wbGF0ZS4gSWYgaXQmIzM5O3MgYSBwcml2YXRlIGNvbnRyYWN0LCBvbmx5IHRoaXMgd29ya3NwYWNlIHdpbGwgYmUgYWxsb3dlZCB0byBkZXBsb3kgaXQgfCBbb3B0aW9uYWxdIAoqKnZlbmRvcioqIHwgWyoqVmVuZG9yRHRvKipdKFZlbmRvckR0by5tZCkgfCBUaGUgZGV0YWlscyBvZiB0aGUgdmVuZG9yIG9mIHRoaXMgY29udHJhY3QgdGVtcGxhdGUuIEFwcGxpY2FibGUgb25seSBmb3IgcHVibGljIGNvbnRyYWN0IHRlbXBsYXRlcyB8IFtvcHRpb25hbF0gCioqaXNfcHVibGljKiogfCAqKmJvb2wqKiB8IElzIHRoaXMgYSBjb250cmFjdCB0aGF0IGlzIHZpZXdhYmxlIGJ5IGFsbCBmaXJlYmxvY2tzJiMzOTtzIHVzZXJzIG9yIGlzIGl0IHZpc2libGUgb25seSBmb3IgdGhpcyB3b3Jrc3BhY2UgfCAKKipjYW5fZGVwbG95KiogfCAqKmJvb2wqKiB8IFRydWUgaWYgdGhlIHdvcmtzcGFjZSBhbGxvd2VkIHRvIGRlcGxveSB0aGlzIGNvbnRyYWN0LCBmYWxzZSBvdGhlcndpc2UgfCBbb3B0aW9uYWxdIAoqKnR5cGUqKiB8ICoqc3RyKiogfCBUaGUgdHlwZSBvZiB0aGUgY29udHJhY3QgdGVtcGxhdGUgfCBbb3B0aW9uYWxdIAoqKmltcGxlbWVudGF0aW9uX2NvbnRyYWN0X2lkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKippbml0aWFsaXphdGlvbl9waGFzZSoqIHwgKipzdHIqKiB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfdGVtcGxhdGVfZHRvIGltcG9ydCBDb250cmFjdFRlbXBsYXRlRHRvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb250cmFjdFRlbXBsYXRlRHRvIGZyb20gYSBKU09OIHN0cmluZwpjb250cmFjdF90ZW1wbGF0ZV9kdG9faW5zdGFuY2UgPSBDb250cmFjdFRlbXBsYXRlRHRvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbnRyYWN0VGVtcGxhdGVEdG8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29udHJhY3RfdGVtcGxhdGVfZHRvX2RpY3QgPSBjb250cmFjdF90ZW1wbGF0ZV9kdG9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0VGVtcGxhdGVEdG8gZnJvbSBhIGRpY3QKY29udHJhY3RfdGVtcGxhdGVfZHRvX2Zyb21fZGljdCA9IENvbnRyYWN0VGVtcGxhdGVEdG8uZnJvbV9kaWN0KGNvbnRyYWN0X3RlbXBsYXRlX2R0b19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ContractTemplatesApi.md b/docs/ContractTemplatesApi.md index 923c9b6d..21febf3c 100644 --- a/docs/ContractTemplatesApi.md +++ b/docs/ContractTemplatesApi.md @@ -1,633 +1 @@ -# fireblocks.ContractTemplatesApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**delete_contract_template_by_id**](ContractTemplatesApi.md#delete_contract_template_by_id) | **DELETE** /tokenization/templates/{contractTemplateId} | Delete a contract template by id -[**deploy_contract**](ContractTemplatesApi.md#deploy_contract) | **POST** /tokenization/templates/{contractTemplateId}/deploy | Deploy contract -[**get_constructor_by_contract_template_id**](ContractTemplatesApi.md#get_constructor_by_contract_template_id) | **GET** /tokenization/templates/{contractTemplateId}/constructor | Return contract template's constructor -[**get_contract_template_by_id**](ContractTemplatesApi.md#get_contract_template_by_id) | **GET** /tokenization/templates/{contractTemplateId} | Return contract template by id -[**get_contract_templates**](ContractTemplatesApi.md#get_contract_templates) | **GET** /tokenization/templates | List all contract templates -[**get_function_abi_by_contract_template_id**](ContractTemplatesApi.md#get_function_abi_by_contract_template_id) | **GET** /tokenization/templates/{contractTemplateId}/function | Return contract template's function -[**get_supported_blockchains_by_template_id**](ContractTemplatesApi.md#get_supported_blockchains_by_template_id) | **GET** /tokenization/templates/{contractTemplateId}/supported_blockchains | Get supported blockchains for the template -[**upload_contract_template**](ContractTemplatesApi.md#upload_contract_template) | **POST** /tokenization/templates | Upload contract template - - -# **delete_contract_template_by_id** -> delete_contract_template_by_id(contract_template_id) - -Delete a contract template by id - -Delete a contract by id. allowed only for private contract templates. Notice: it is irreversible! - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - contract_template_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d' # str | The Contract Template identifier - - try: - # Delete a contract template by id - fireblocks.contract_templates.delete_contract_template_by_id(contract_template_id).result() - except Exception as e: - print("Exception when calling ContractTemplatesApi->delete_contract_template_by_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **contract_template_id** | **str**| The Contract Template identifier | - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**204** | Contract was deleted successfully | - | -**404** | Could not find contract. | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **deploy_contract** -> ContractDeployResponse deploy_contract(contract_template_id, contract_deploy_request, idempotency_key=idempotency_key) - -Deploy contract - -Deploy a new contract by contract template id. If you wish to deploy a token (ERC20, ERC721 etc), and create asset please use POST /tokenization - -### Example - - -```python -from fireblocks.models.contract_deploy_request import ContractDeployRequest -from fireblocks.models.contract_deploy_response import ContractDeployResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - contract_template_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d' # str | The Contract Template identifier - contract_deploy_request = fireblocks.ContractDeployRequest() # ContractDeployRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Deploy contract - api_response = fireblocks.contract_templates.deploy_contract(contract_template_id, contract_deploy_request, idempotency_key=idempotency_key).result() - print("The response of ContractTemplatesApi->deploy_contract:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ContractTemplatesApi->deploy_contract: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **contract_template_id** | **str**| The Contract Template identifier | - **contract_deploy_request** | [**ContractDeployRequest**](ContractDeployRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**ContractDeployResponse**](ContractDeployResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**202** | Contract was deployed successfully | - | -**404** | Could not find contract. | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_constructor_by_contract_template_id** -> AbiFunction get_constructor_by_contract_template_id(contract_template_id, with_docs=with_docs) - -Return contract template's constructor - -Return contract template's constructor ABI - -### Example - - -```python -from fireblocks.models.abi_function import AbiFunction -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - contract_template_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d' # str | The Contract Template identifier - with_docs = False # bool | true if you want to get the abi with its docs (optional) (default to False) - - try: - # Return contract template's constructor - api_response = fireblocks.contract_templates.get_constructor_by_contract_template_id(contract_template_id, with_docs=with_docs).result() - print("The response of ContractTemplatesApi->get_constructor_by_contract_template_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ContractTemplatesApi->get_constructor_by_contract_template_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **contract_template_id** | **str**| The Contract Template identifier | - **with_docs** | **bool**| true if you want to get the abi with its docs | [optional] [default to False] - -### Return type - -[**AbiFunction**](AbiFunction.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Contract template's constructor ABI was returned successfully | - | -**404** | Could not find contract. | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_contract_template_by_id** -> ContractTemplateDto get_contract_template_by_id(contract_template_id) - -Return contract template by id - -Return detailed information about the contract template - -### Example - - -```python -from fireblocks.models.contract_template_dto import ContractTemplateDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - contract_template_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d' # str | The Contract Template identifier - - try: - # Return contract template by id - api_response = fireblocks.contract_templates.get_contract_template_by_id(contract_template_id).result() - print("The response of ContractTemplatesApi->get_contract_template_by_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ContractTemplatesApi->get_contract_template_by_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **contract_template_id** | **str**| The Contract Template identifier | - -### Return type - -[**ContractTemplateDto**](ContractTemplateDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Contract template was returned successfully | - | -**404** | Could not find contract. | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_contract_templates** -> TemplatesPaginatedResponse get_contract_templates(limit=limit, offset=offset, page_cursor=page_cursor, page_size=page_size, type=type, initialization_phase=initialization_phase) - -List all contract templates - -Return minimal representation of all the contract templates available for the workspace. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -### Example - - -```python -from fireblocks.models.templates_paginated_response import TemplatesPaginatedResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - limit = 100 # float | Items per page (max 100) (optional) (default to 100) - offset = 0 # float | Paging offset (optional) (default to 0) - page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Page cursor to get the next page (optional) - page_size = 10 # float | Number of items per page, requesting more then max will return max items (optional) - type = 'FUNGIBLE_TOKEN' # str | The type of the contract templates you wish to retrieve. Can accept one type, more or none (optional) - initialization_phase = 'initialization_phase_example' # str | For standalone contracts use ON_DEPLOYMENT and for contracts that are behind proxies use POST_DEPLOYMENT (optional) - - try: - # List all contract templates - api_response = fireblocks.contract_templates.get_contract_templates(limit=limit, offset=offset, page_cursor=page_cursor, page_size=page_size, type=type, initialization_phase=initialization_phase).result() - print("The response of ContractTemplatesApi->get_contract_templates:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ContractTemplatesApi->get_contract_templates: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **limit** | **float**| Items per page (max 100) | [optional] [default to 100] - **offset** | **float**| Paging offset | [optional] [default to 0] - **page_cursor** | **str**| Page cursor to get the next page | [optional] - **page_size** | **float**| Number of items per page, requesting more then max will return max items | [optional] - **type** | **str**| The type of the contract templates you wish to retrieve. Can accept one type, more or none | [optional] - **initialization_phase** | **str**| For standalone contracts use ON_DEPLOYMENT and for contracts that are behind proxies use POST_DEPLOYMENT | [optional] - -### Return type - -[**TemplatesPaginatedResponse**](TemplatesPaginatedResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | List of contract templates was returned successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_function_abi_by_contract_template_id** -> AbiFunction get_function_abi_by_contract_template_id(contract_template_id, function_signature) - -Return contract template's function - -Return contract template`s function ABI by signature - -### Example - - -```python -from fireblocks.models.abi_function import AbiFunction -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - contract_template_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d' # str | The Contract Template identifier - function_signature = 'function_signature_example' # str | - - try: - # Return contract template's function - api_response = fireblocks.contract_templates.get_function_abi_by_contract_template_id(contract_template_id, function_signature).result() - print("The response of ContractTemplatesApi->get_function_abi_by_contract_template_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ContractTemplatesApi->get_function_abi_by_contract_template_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **contract_template_id** | **str**| The Contract Template identifier | - **function_signature** | **str**| | - -### Return type - -[**AbiFunction**](AbiFunction.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Contract template`s function ABI was returned successfully | - | -**404** | Could not find contract. | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_supported_blockchains_by_template_id** -> SupportedBlockChainsResponse get_supported_blockchains_by_template_id(contract_template_id) - -Get supported blockchains for the template - -Get supported blockchains for the template - -### Example - - -```python -from fireblocks.models.supported_block_chains_response import SupportedBlockChainsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - contract_template_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d' # str | The Contract Template identifier - - try: - # Get supported blockchains for the template - api_response = fireblocks.contract_templates.get_supported_blockchains_by_template_id(contract_template_id).result() - print("The response of ContractTemplatesApi->get_supported_blockchains_by_template_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ContractTemplatesApi->get_supported_blockchains_by_template_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **contract_template_id** | **str**| The Contract Template identifier | - -### Return type - -[**SupportedBlockChainsResponse**](SupportedBlockChainsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Supported blockchains list | - | -**404** | Could not find contract. | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **upload_contract_template** -> ContractTemplateDto upload_contract_template(contract_upload_request, idempotency_key=idempotency_key) - -Upload contract template - -Upload a new contract template. This contract template will be available for the workspace - -### Example - - -```python -from fireblocks.models.contract_template_dto import ContractTemplateDto -from fireblocks.models.contract_upload_request import ContractUploadRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - contract_upload_request = fireblocks.ContractUploadRequest() # ContractUploadRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Upload contract template - api_response = fireblocks.contract_templates.upload_contract_template(contract_upload_request, idempotency_key=idempotency_key).result() - print("The response of ContractTemplatesApi->upload_contract_template:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ContractTemplatesApi->upload_contract_template: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **contract_upload_request** | [**ContractUploadRequest**](ContractUploadRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**ContractTemplateDto**](ContractTemplateDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Contract was uploaded successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLkNvbnRyYWN0VGVtcGxhdGVzQXBpCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gKmh0dHBzOi8vYXBpLmZpcmVibG9ja3MuaW8vdjEqCgpNZXRob2QgfCBIVFRQIHJlcXVlc3QgfCBEZXNjcmlwdGlvbgotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KWyoqZGVsZXRlX2NvbnRyYWN0X3RlbXBsYXRlX2J5X2lkKipdKENvbnRyYWN0VGVtcGxhdGVzQXBpLm1kI2RlbGV0ZV9jb250cmFjdF90ZW1wbGF0ZV9ieV9pZCkgfCAqKkRFTEVURSoqIC90b2tlbml6YXRpb24vdGVtcGxhdGVzL3tjb250cmFjdFRlbXBsYXRlSWR9IHwgRGVsZXRlIGEgY29udHJhY3QgdGVtcGxhdGUgYnkgaWQKWyoqZGVwbG95X2NvbnRyYWN0KipdKENvbnRyYWN0VGVtcGxhdGVzQXBpLm1kI2RlcGxveV9jb250cmFjdCkgfCAqKlBPU1QqKiAvdG9rZW5pemF0aW9uL3RlbXBsYXRlcy97Y29udHJhY3RUZW1wbGF0ZUlkfS9kZXBsb3kgfCBEZXBsb3kgY29udHJhY3QKWyoqZ2V0X2NvbnN0cnVjdG9yX2J5X2NvbnRyYWN0X3RlbXBsYXRlX2lkKipdKENvbnRyYWN0VGVtcGxhdGVzQXBpLm1kI2dldF9jb25zdHJ1Y3Rvcl9ieV9jb250cmFjdF90ZW1wbGF0ZV9pZCkgfCAqKkdFVCoqIC90b2tlbml6YXRpb24vdGVtcGxhdGVzL3tjb250cmFjdFRlbXBsYXRlSWR9L2NvbnN0cnVjdG9yIHwgUmV0dXJuIGNvbnRyYWN0IHRlbXBsYXRlJiMzOTtzIGNvbnN0cnVjdG9yClsqKmdldF9jb250cmFjdF90ZW1wbGF0ZV9ieV9pZCoqXShDb250cmFjdFRlbXBsYXRlc0FwaS5tZCNnZXRfY29udHJhY3RfdGVtcGxhdGVfYnlfaWQpIHwgKipHRVQqKiAvdG9rZW5pemF0aW9uL3RlbXBsYXRlcy97Y29udHJhY3RUZW1wbGF0ZUlkfSB8IFJldHVybiBjb250cmFjdCB0ZW1wbGF0ZSBieSBpZApbKipnZXRfY29udHJhY3RfdGVtcGxhdGVzKipdKENvbnRyYWN0VGVtcGxhdGVzQXBpLm1kI2dldF9jb250cmFjdF90ZW1wbGF0ZXMpIHwgKipHRVQqKiAvdG9rZW5pemF0aW9uL3RlbXBsYXRlcyB8IExpc3QgYWxsIGNvbnRyYWN0IHRlbXBsYXRlcwpbKipnZXRfZnVuY3Rpb25fYWJpX2J5X2NvbnRyYWN0X3RlbXBsYXRlX2lkKipdKENvbnRyYWN0VGVtcGxhdGVzQXBpLm1kI2dldF9mdW5jdGlvbl9hYmlfYnlfY29udHJhY3RfdGVtcGxhdGVfaWQpIHwgKipHRVQqKiAvdG9rZW5pemF0aW9uL3RlbXBsYXRlcy97Y29udHJhY3RUZW1wbGF0ZUlkfS9mdW5jdGlvbiB8IFJldHVybiBjb250cmFjdCB0ZW1wbGF0ZSYjMzk7cyBmdW5jdGlvbgpbKipnZXRfc3VwcG9ydGVkX2Jsb2NrY2hhaW5zX2J5X3RlbXBsYXRlX2lkKipdKENvbnRyYWN0VGVtcGxhdGVzQXBpLm1kI2dldF9zdXBwb3J0ZWRfYmxvY2tjaGFpbnNfYnlfdGVtcGxhdGVfaWQpIHwgKipHRVQqKiAvdG9rZW5pemF0aW9uL3RlbXBsYXRlcy97Y29udHJhY3RUZW1wbGF0ZUlkfS9zdXBwb3J0ZWRfYmxvY2tjaGFpbnMgfCBHZXQgc3VwcG9ydGVkIGJsb2NrY2hhaW5zIGZvciB0aGUgdGVtcGxhdGUKWyoqdXBsb2FkX2NvbnRyYWN0X3RlbXBsYXRlKipdKENvbnRyYWN0VGVtcGxhdGVzQXBpLm1kI3VwbG9hZF9jb250cmFjdF90ZW1wbGF0ZSkgfCAqKlBPU1QqKiAvdG9rZW5pemF0aW9uL3RlbXBsYXRlcyB8IFVwbG9hZCBjb250cmFjdCB0ZW1wbGF0ZQoKCiMgKipkZWxldGVfY29udHJhY3RfdGVtcGxhdGVfYnlfaWQqKgo+IGRlbGV0ZV9jb250cmFjdF90ZW1wbGF0ZV9ieV9pZChjb250cmFjdF90ZW1wbGF0ZV9pZCkKCkRlbGV0ZSBhIGNvbnRyYWN0IHRlbXBsYXRlIGJ5IGlkCgpEZWxldGUgYSBjb250cmFjdCBieSBpZC4gYWxsb3dlZCBvbmx5IGZvciBwcml2YXRlIGNvbnRyYWN0IHRlbXBsYXRlcy4gTm90aWNlOiBpdCBpcyBpcnJldmVyc2libGUhCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY29udHJhY3RfdGVtcGxhdGVfaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJyAjIHN0ciB8IFRoZSBDb250cmFjdCBUZW1wbGF0ZSBpZGVudGlmaWVyCgogICAgdHJ5OgogICAgICAgICMgRGVsZXRlIGEgY29udHJhY3QgdGVtcGxhdGUgYnkgaWQKICAgICAgICBmaXJlYmxvY2tzLmNvbnRyYWN0X3RlbXBsYXRlcy5kZWxldGVfY29udHJhY3RfdGVtcGxhdGVfYnlfaWQoY29udHJhY3RfdGVtcGxhdGVfaWQpLnJlc3VsdCgpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQ29udHJhY3RUZW1wbGF0ZXNBcGktPmRlbGV0ZV9jb250cmFjdF90ZW1wbGF0ZV9ieV9pZDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqY29udHJhY3RfdGVtcGxhdGVfaWQqKiB8ICoqc3RyKip8IFRoZSBDb250cmFjdCBUZW1wbGF0ZSBpZGVudGlmaWVyIHwgCgojIyMgUmV0dXJuIHR5cGUKCnZvaWQgKGVtcHR5IHJlc3BvbnNlIGJvZHkpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjA0KiogfCBDb250cmFjdCB3YXMgZGVsZXRlZCBzdWNjZXNzZnVsbHkgfCAgLSAgfAoqKjQwNCoqIHwgQ291bGQgbm90IGZpbmQgY29udHJhY3QuIHwgIC0gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipkZXBsb3lfY29udHJhY3QqKgo+IENvbnRyYWN0RGVwbG95UmVzcG9uc2UgZGVwbG95X2NvbnRyYWN0KGNvbnRyYWN0X3RlbXBsYXRlX2lkLCBjb250cmFjdF9kZXBsb3lfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCkRlcGxveSBjb250cmFjdAoKRGVwbG95IGEgbmV3IGNvbnRyYWN0IGJ5IGNvbnRyYWN0IHRlbXBsYXRlIGlkLiBJZiB5b3Ugd2lzaCB0byBkZXBsb3kgYSB0b2tlbiAoRVJDMjAsIEVSQzcyMSBldGMpLCBhbmQgY3JlYXRlIGFzc2V0IHBsZWFzZSB1c2UgUE9TVCAvdG9rZW5pemF0aW9uCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RlcGxveV9yZXF1ZXN0IGltcG9ydCBDb250cmFjdERlcGxveVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9kZXBsb3lfcmVzcG9uc2UgaW1wb3J0IENvbnRyYWN0RGVwbG95UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY29udHJhY3RfdGVtcGxhdGVfaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJyAjIHN0ciB8IFRoZSBDb250cmFjdCBUZW1wbGF0ZSBpZGVudGlmaWVyCiAgICBjb250cmFjdF9kZXBsb3lfcmVxdWVzdCA9IGZpcmVibG9ja3MuQ29udHJhY3REZXBsb3lSZXF1ZXN0KCkgIyBDb250cmFjdERlcGxveVJlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBEZXBsb3kgY29udHJhY3QKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmNvbnRyYWN0X3RlbXBsYXRlcy5kZXBsb3lfY29udHJhY3QoY29udHJhY3RfdGVtcGxhdGVfaWQsIGNvbnRyYWN0X2RlcGxveV9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgQ29udHJhY3RUZW1wbGF0ZXNBcGktPmRlcGxveV9jb250cmFjdDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBDb250cmFjdFRlbXBsYXRlc0FwaS0+ZGVwbG95X2NvbnRyYWN0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjb250cmFjdF90ZW1wbGF0ZV9pZCoqIHwgKipzdHIqKnwgVGhlIENvbnRyYWN0IFRlbXBsYXRlIGlkZW50aWZpZXIgfCAKICoqY29udHJhY3RfZGVwbG95X3JlcXVlc3QqKiB8IFsqKkNvbnRyYWN0RGVwbG95UmVxdWVzdCoqXShDb250cmFjdERlcGxveVJlcXVlc3QubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqQ29udHJhY3REZXBsb3lSZXNwb25zZSoqXShDb250cmFjdERlcGxveVJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAyKiogfCBDb250cmFjdCB3YXMgZGVwbG95ZWQgc3VjY2Vzc2Z1bGx5IHwgIC0gIHwKKio0MDQqKiB8IENvdWxkIG5vdCBmaW5kIGNvbnRyYWN0LiB8ICAtICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2NvbnN0cnVjdG9yX2J5X2NvbnRyYWN0X3RlbXBsYXRlX2lkKioKPiBBYmlGdW5jdGlvbiBnZXRfY29uc3RydWN0b3JfYnlfY29udHJhY3RfdGVtcGxhdGVfaWQoY29udHJhY3RfdGVtcGxhdGVfaWQsIHdpdGhfZG9jcz13aXRoX2RvY3MpCgpSZXR1cm4gY29udHJhY3QgdGVtcGxhdGUncyBjb25zdHJ1Y3RvcgoKUmV0dXJuIGNvbnRyYWN0IHRlbXBsYXRlJ3MgY29uc3RydWN0b3IgQUJJCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFiaV9mdW5jdGlvbiBpbXBvcnQgQWJpRnVuY3Rpb24KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY29udHJhY3RfdGVtcGxhdGVfaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJyAjIHN0ciB8IFRoZSBDb250cmFjdCBUZW1wbGF0ZSBpZGVudGlmaWVyCiAgICB3aXRoX2RvY3MgPSBGYWxzZSAjIGJvb2wgfCB0cnVlIGlmIHlvdSB3YW50IHRvIGdldCB0aGUgYWJpIHdpdGggaXRzIGRvY3MgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byBGYWxzZSkKCiAgICB0cnk6CiAgICAgICAgIyBSZXR1cm4gY29udHJhY3QgdGVtcGxhdGUncyBjb25zdHJ1Y3RvcgogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuY29udHJhY3RfdGVtcGxhdGVzLmdldF9jb25zdHJ1Y3Rvcl9ieV9jb250cmFjdF90ZW1wbGF0ZV9pZChjb250cmFjdF90ZW1wbGF0ZV9pZCwgd2l0aF9kb2NzPXdpdGhfZG9jcykucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIENvbnRyYWN0VGVtcGxhdGVzQXBpLT5nZXRfY29uc3RydWN0b3JfYnlfY29udHJhY3RfdGVtcGxhdGVfaWQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQ29udHJhY3RUZW1wbGF0ZXNBcGktPmdldF9jb25zdHJ1Y3Rvcl9ieV9jb250cmFjdF90ZW1wbGF0ZV9pZDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqY29udHJhY3RfdGVtcGxhdGVfaWQqKiB8ICoqc3RyKip8IFRoZSBDb250cmFjdCBUZW1wbGF0ZSBpZGVudGlmaWVyIHwgCiAqKndpdGhfZG9jcyoqIHwgKipib29sKip8IHRydWUgaWYgeW91IHdhbnQgdG8gZ2V0IHRoZSBhYmkgd2l0aCBpdHMgZG9jcyB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gRmFsc2VdCgojIyMgUmV0dXJuIHR5cGUKClsqKkFiaUZ1bmN0aW9uKipdKEFiaUZ1bmN0aW9uLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQ29udHJhY3QgdGVtcGxhdGUmIzM5O3MgY29uc3RydWN0b3IgQUJJIHdhcyByZXR1cm5lZCBzdWNjZXNzZnVsbHkgfCAgLSAgfAoqKjQwNCoqIHwgQ291bGQgbm90IGZpbmQgY29udHJhY3QuIHwgIC0gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfY29udHJhY3RfdGVtcGxhdGVfYnlfaWQqKgo+IENvbnRyYWN0VGVtcGxhdGVEdG8gZ2V0X2NvbnRyYWN0X3RlbXBsYXRlX2J5X2lkKGNvbnRyYWN0X3RlbXBsYXRlX2lkKQoKUmV0dXJuIGNvbnRyYWN0IHRlbXBsYXRlIGJ5IGlkCgpSZXR1cm4gZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbnRyYWN0IHRlbXBsYXRlCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X3RlbXBsYXRlX2R0byBpbXBvcnQgQ29udHJhY3RUZW1wbGF0ZUR0bwpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjb250cmFjdF90ZW1wbGF0ZV9pZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGQnICMgc3RyIHwgVGhlIENvbnRyYWN0IFRlbXBsYXRlIGlkZW50aWZpZXIKCiAgICB0cnk6CiAgICAgICAgIyBSZXR1cm4gY29udHJhY3QgdGVtcGxhdGUgYnkgaWQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmNvbnRyYWN0X3RlbXBsYXRlcy5nZXRfY29udHJhY3RfdGVtcGxhdGVfYnlfaWQoY29udHJhY3RfdGVtcGxhdGVfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBDb250cmFjdFRlbXBsYXRlc0FwaS0+Z2V0X2NvbnRyYWN0X3RlbXBsYXRlX2J5X2lkOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIENvbnRyYWN0VGVtcGxhdGVzQXBpLT5nZXRfY29udHJhY3RfdGVtcGxhdGVfYnlfaWQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmNvbnRyYWN0X3RlbXBsYXRlX2lkKiogfCAqKnN0cioqfCBUaGUgQ29udHJhY3QgVGVtcGxhdGUgaWRlbnRpZmllciB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipDb250cmFjdFRlbXBsYXRlRHRvKipdKENvbnRyYWN0VGVtcGxhdGVEdG8ubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBDb250cmFjdCB0ZW1wbGF0ZSB3YXMgcmV0dXJuZWQgc3VjY2Vzc2Z1bGx5IHwgIC0gIHwKKio0MDQqKiB8IENvdWxkIG5vdCBmaW5kIGNvbnRyYWN0LiB8ICAtICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2NvbnRyYWN0X3RlbXBsYXRlcyoqCj4gVGVtcGxhdGVzUGFnaW5hdGVkUmVzcG9uc2UgZ2V0X2NvbnRyYWN0X3RlbXBsYXRlcyhsaW1pdD1saW1pdCwgb2Zmc2V0PW9mZnNldCwgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsIHR5cGU9dHlwZSwgaW5pdGlhbGl6YXRpb25fcGhhc2U9aW5pdGlhbGl6YXRpb25fcGhhc2UpCgpMaXN0IGFsbCBjb250cmFjdCB0ZW1wbGF0ZXMKClJldHVybiBtaW5pbWFsIHJlcHJlc2VudGF0aW9uIG9mIGFsbCB0aGUgY29udHJhY3QgdGVtcGxhdGVzIGF2YWlsYWJsZSBmb3IgdGhlIHdvcmtzcGFjZS4KPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgVmlld2VyLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50ZW1wbGF0ZXNfcGFnaW5hdGVkX3Jlc3BvbnNlIGltcG9ydCBUZW1wbGF0ZXNQYWdpbmF0ZWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBsaW1pdCA9IDEwMCAjIGZsb2F0IHwgSXRlbXMgcGVyIHBhZ2UgKG1heCAxMDApIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gMTAwKQogICAgb2Zmc2V0ID0gMCAjIGZsb2F0IHwgUGFnaW5nIG9mZnNldCAob3B0aW9uYWwpIChkZWZhdWx0IHRvIDApCiAgICBwYWdlX2N1cnNvciA9ICdNakF5TXkweE1pMHhNeUF5TURvek5qb3dPQzR6TURJPTpNVEV3TUE9PScgIyBzdHIgfCBQYWdlIGN1cnNvciB0byBnZXQgdGhlIG5leHQgcGFnZSAob3B0aW9uYWwpCiAgICBwYWdlX3NpemUgPSAxMCAjIGZsb2F0IHwgTnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlLCByZXF1ZXN0aW5nIG1vcmUgdGhlbiBtYXggd2lsbCByZXR1cm4gbWF4IGl0ZW1zIChvcHRpb25hbCkKICAgIHR5cGUgPSAnRlVOR0lCTEVfVE9LRU4nICMgc3RyIHwgVGhlIHR5cGUgb2YgdGhlIGNvbnRyYWN0IHRlbXBsYXRlcyB5b3Ugd2lzaCB0byByZXRyaWV2ZS4gQ2FuIGFjY2VwdCBvbmUgdHlwZSwgbW9yZSBvciBub25lIChvcHRpb25hbCkKICAgIGluaXRpYWxpemF0aW9uX3BoYXNlID0gJ2luaXRpYWxpemF0aW9uX3BoYXNlX2V4YW1wbGUnICMgc3RyIHwgRm9yIHN0YW5kYWxvbmUgY29udHJhY3RzIHVzZSBPTl9ERVBMT1lNRU5UIGFuZCBmb3IgY29udHJhY3RzIHRoYXQgYXJlIGJlaGluZCBwcm94aWVzIHVzZSBQT1NUX0RFUExPWU1FTlQgKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIExpc3QgYWxsIGNvbnRyYWN0IHRlbXBsYXRlcwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuY29udHJhY3RfdGVtcGxhdGVzLmdldF9jb250cmFjdF90ZW1wbGF0ZXMobGltaXQ9bGltaXQsIG9mZnNldD1vZmZzZXQsIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplLCB0eXBlPXR5cGUsIGluaXRpYWxpemF0aW9uX3BoYXNlPWluaXRpYWxpemF0aW9uX3BoYXNlKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgQ29udHJhY3RUZW1wbGF0ZXNBcGktPmdldF9jb250cmFjdF90ZW1wbGF0ZXM6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQ29udHJhY3RUZW1wbGF0ZXNBcGktPmdldF9jb250cmFjdF90ZW1wbGF0ZXM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmxpbWl0KiogfCAqKmZsb2F0Kip8IEl0ZW1zIHBlciBwYWdlIChtYXggMTAwKSB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gMTAwXQogKipvZmZzZXQqKiB8ICoqZmxvYXQqKnwgUGFnaW5nIG9mZnNldCB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gMF0KICoqcGFnZV9jdXJzb3IqKiB8ICoqc3RyKip8IFBhZ2UgY3Vyc29yIHRvIGdldCB0aGUgbmV4dCBwYWdlIHwgW29wdGlvbmFsXSAKICoqcGFnZV9zaXplKiogfCAqKmZsb2F0Kip8IE51bWJlciBvZiBpdGVtcyBwZXIgcGFnZSwgcmVxdWVzdGluZyBtb3JlIHRoZW4gbWF4IHdpbGwgcmV0dXJuIG1heCBpdGVtcyB8IFtvcHRpb25hbF0gCiAqKnR5cGUqKiB8ICoqc3RyKip8IFRoZSB0eXBlIG9mIHRoZSBjb250cmFjdCB0ZW1wbGF0ZXMgeW91IHdpc2ggdG8gcmV0cmlldmUuIENhbiBhY2NlcHQgb25lIHR5cGUsIG1vcmUgb3Igbm9uZSB8IFtvcHRpb25hbF0gCiAqKmluaXRpYWxpemF0aW9uX3BoYXNlKiogfCAqKnN0cioqfCBGb3Igc3RhbmRhbG9uZSBjb250cmFjdHMgdXNlIE9OX0RFUExPWU1FTlQgYW5kIGZvciBjb250cmFjdHMgdGhhdCBhcmUgYmVoaW5kIHByb3hpZXMgdXNlIFBPU1RfREVQTE9ZTUVOVCB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlRlbXBsYXRlc1BhZ2luYXRlZFJlc3BvbnNlKipdKFRlbXBsYXRlc1BhZ2luYXRlZFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgTGlzdCBvZiBjb250cmFjdCB0ZW1wbGF0ZXMgd2FzIHJldHVybmVkIHN1Y2Nlc3NmdWxseSB8ICAtICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2Z1bmN0aW9uX2FiaV9ieV9jb250cmFjdF90ZW1wbGF0ZV9pZCoqCj4gQWJpRnVuY3Rpb24gZ2V0X2Z1bmN0aW9uX2FiaV9ieV9jb250cmFjdF90ZW1wbGF0ZV9pZChjb250cmFjdF90ZW1wbGF0ZV9pZCwgZnVuY3Rpb25fc2lnbmF0dXJlKQoKUmV0dXJuIGNvbnRyYWN0IHRlbXBsYXRlJ3MgZnVuY3Rpb24KClJldHVybiBjb250cmFjdCB0ZW1wbGF0ZWBzIGZ1bmN0aW9uIEFCSSBieSBzaWduYXR1cmUKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWJpX2Z1bmN0aW9uIGltcG9ydCBBYmlGdW5jdGlvbgpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjb250cmFjdF90ZW1wbGF0ZV9pZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGQnICMgc3RyIHwgVGhlIENvbnRyYWN0IFRlbXBsYXRlIGlkZW50aWZpZXIKICAgIGZ1bmN0aW9uX3NpZ25hdHVyZSA9ICdmdW5jdGlvbl9zaWduYXR1cmVfZXhhbXBsZScgIyBzdHIgfCAKCiAgICB0cnk6CiAgICAgICAgIyBSZXR1cm4gY29udHJhY3QgdGVtcGxhdGUncyBmdW5jdGlvbgogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuY29udHJhY3RfdGVtcGxhdGVzLmdldF9mdW5jdGlvbl9hYmlfYnlfY29udHJhY3RfdGVtcGxhdGVfaWQoY29udHJhY3RfdGVtcGxhdGVfaWQsIGZ1bmN0aW9uX3NpZ25hdHVyZSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIENvbnRyYWN0VGVtcGxhdGVzQXBpLT5nZXRfZnVuY3Rpb25fYWJpX2J5X2NvbnRyYWN0X3RlbXBsYXRlX2lkOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIENvbnRyYWN0VGVtcGxhdGVzQXBpLT5nZXRfZnVuY3Rpb25fYWJpX2J5X2NvbnRyYWN0X3RlbXBsYXRlX2lkOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjb250cmFjdF90ZW1wbGF0ZV9pZCoqIHwgKipzdHIqKnwgVGhlIENvbnRyYWN0IFRlbXBsYXRlIGlkZW50aWZpZXIgfCAKICoqZnVuY3Rpb25fc2lnbmF0dXJlKiogfCAqKnN0cioqfCAgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqQWJpRnVuY3Rpb24qKl0oQWJpRnVuY3Rpb24ubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBDb250cmFjdCB0ZW1wbGF0ZSYjeDYwO3MgZnVuY3Rpb24gQUJJIHdhcyByZXR1cm5lZCBzdWNjZXNzZnVsbHkgfCAgLSAgfAoqKjQwNCoqIHwgQ291bGQgbm90IGZpbmQgY29udHJhY3QuIHwgIC0gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfc3VwcG9ydGVkX2Jsb2NrY2hhaW5zX2J5X3RlbXBsYXRlX2lkKioKPiBTdXBwb3J0ZWRCbG9ja0NoYWluc1Jlc3BvbnNlIGdldF9zdXBwb3J0ZWRfYmxvY2tjaGFpbnNfYnlfdGVtcGxhdGVfaWQoY29udHJhY3RfdGVtcGxhdGVfaWQpCgpHZXQgc3VwcG9ydGVkIGJsb2NrY2hhaW5zIGZvciB0aGUgdGVtcGxhdGUKCkdldCBzdXBwb3J0ZWQgYmxvY2tjaGFpbnMgZm9yIHRoZSB0ZW1wbGF0ZQoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zdXBwb3J0ZWRfYmxvY2tfY2hhaW5zX3Jlc3BvbnNlIGltcG9ydCBTdXBwb3J0ZWRCbG9ja0NoYWluc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGNvbnRyYWN0X3RlbXBsYXRlX2lkID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCcgIyBzdHIgfCBUaGUgQ29udHJhY3QgVGVtcGxhdGUgaWRlbnRpZmllcgoKICAgIHRyeToKICAgICAgICAjIEdldCBzdXBwb3J0ZWQgYmxvY2tjaGFpbnMgZm9yIHRoZSB0ZW1wbGF0ZQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuY29udHJhY3RfdGVtcGxhdGVzLmdldF9zdXBwb3J0ZWRfYmxvY2tjaGFpbnNfYnlfdGVtcGxhdGVfaWQoY29udHJhY3RfdGVtcGxhdGVfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBDb250cmFjdFRlbXBsYXRlc0FwaS0+Z2V0X3N1cHBvcnRlZF9ibG9ja2NoYWluc19ieV90ZW1wbGF0ZV9pZDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBDb250cmFjdFRlbXBsYXRlc0FwaS0+Z2V0X3N1cHBvcnRlZF9ibG9ja2NoYWluc19ieV90ZW1wbGF0ZV9pZDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqY29udHJhY3RfdGVtcGxhdGVfaWQqKiB8ICoqc3RyKip8IFRoZSBDb250cmFjdCBUZW1wbGF0ZSBpZGVudGlmaWVyIHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKlN1cHBvcnRlZEJsb2NrQ2hhaW5zUmVzcG9uc2UqKl0oU3VwcG9ydGVkQmxvY2tDaGFpbnNSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFN1cHBvcnRlZCBibG9ja2NoYWlucyBsaXN0IHwgIC0gIHwKKio0MDQqKiB8IENvdWxkIG5vdCBmaW5kIGNvbnRyYWN0LiB8ICAtICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqdXBsb2FkX2NvbnRyYWN0X3RlbXBsYXRlKioKPiBDb250cmFjdFRlbXBsYXRlRHRvIHVwbG9hZF9jb250cmFjdF90ZW1wbGF0ZShjb250cmFjdF91cGxvYWRfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKClVwbG9hZCBjb250cmFjdCB0ZW1wbGF0ZQoKVXBsb2FkIGEgbmV3IGNvbnRyYWN0IHRlbXBsYXRlLiBUaGlzIGNvbnRyYWN0IHRlbXBsYXRlIHdpbGwgYmUgYXZhaWxhYmxlIGZvciB0aGUgd29ya3NwYWNlCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X3RlbXBsYXRlX2R0byBpbXBvcnQgQ29udHJhY3RUZW1wbGF0ZUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X3VwbG9hZF9yZXF1ZXN0IGltcG9ydCBDb250cmFjdFVwbG9hZFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY29udHJhY3RfdXBsb2FkX3JlcXVlc3QgPSBmaXJlYmxvY2tzLkNvbnRyYWN0VXBsb2FkUmVxdWVzdCgpICMgQ29udHJhY3RVcGxvYWRSZXF1ZXN0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgVXBsb2FkIGNvbnRyYWN0IHRlbXBsYXRlCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5jb250cmFjdF90ZW1wbGF0ZXMudXBsb2FkX2NvbnRyYWN0X3RlbXBsYXRlKGNvbnRyYWN0X3VwbG9hZF9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgQ29udHJhY3RUZW1wbGF0ZXNBcGktPnVwbG9hZF9jb250cmFjdF90ZW1wbGF0ZTpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBDb250cmFjdFRlbXBsYXRlc0FwaS0+dXBsb2FkX2NvbnRyYWN0X3RlbXBsYXRlOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjb250cmFjdF91cGxvYWRfcmVxdWVzdCoqIHwgWyoqQ29udHJhY3RVcGxvYWRSZXF1ZXN0KipdKENvbnRyYWN0VXBsb2FkUmVxdWVzdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipDb250cmFjdFRlbXBsYXRlRHRvKipdKENvbnRyYWN0VGVtcGxhdGVEdG8ubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDEqKiB8IENvbnRyYWN0IHdhcyB1cGxvYWRlZCBzdWNjZXNzZnVsbHkgfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoK \ No newline at end of file diff --git a/docs/ContractUploadRequest.md b/docs/ContractUploadRequest.md index 6e6b16af..825bc08c 100644 --- a/docs/ContractUploadRequest.md +++ b/docs/ContractUploadRequest.md @@ -1,38 +1 @@ -# ContractUploadRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | The name of the contract template | -**description** | **str** | A short description of the contract template | -**long_description** | **str** | A full description of the contract template. May contain to break the lines | [optional] -**bytecode** | **str** | The compiled artifact of this smart contract. Used for deployment of this contract template | -**sourcecode** | **str** | The source code of the contract. Optional. | [optional] -**type** | **str** | The type of the contract template | -**docs** | [**ContractDoc**](ContractDoc.md) | A `natspec` compliant documentation json. Can be retrieved from the output json after compilation | [optional] -**abi** | [**List[AbiFunction]**](AbiFunction.md) | The abi of the contract template. Necessary for displaying and for after deployment encoding | -**attributes** | [**ContractAttributes**](ContractAttributes.md) | The attributes related to this contract template. It will be displayed in the tokenization page | [optional] -**protocol** | **str** | The protocol that the template will be used for | [optional] - -## Example - -```python -from fireblocks.models.contract_upload_request import ContractUploadRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of ContractUploadRequest from a JSON string -contract_upload_request_instance = ContractUploadRequest.from_json(json) -# print the JSON string representation of the object -print(ContractUploadRequest.to_json()) - -# convert the object into a dict -contract_upload_request_dict = contract_upload_request_instance.to_dict() -# create an instance of ContractUploadRequest from a dict -contract_upload_request_from_dict = ContractUploadRequest.from_dict(contract_upload_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb250cmFjdFVwbG9hZFJlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBuYW1lIG9mIHRoZSBjb250cmFjdCB0ZW1wbGF0ZSB8IAoqKmRlc2NyaXB0aW9uKiogfCAqKnN0cioqIHwgQSBzaG9ydCBkZXNjcmlwdGlvbiBvZiB0aGUgY29udHJhY3QgdGVtcGxhdGUgfCAKKipsb25nX2Rlc2NyaXB0aW9uKiogfCAqKnN0cioqIHwgQSBmdWxsIGRlc2NyaXB0aW9uIG9mIHRoZSBjb250cmFjdCB0ZW1wbGF0ZS4gTWF5IGNvbnRhaW4gICB0byBicmVhayB0aGUgbGluZXMgfCBbb3B0aW9uYWxdIAoqKmJ5dGVjb2RlKiogfCAqKnN0cioqIHwgVGhlIGNvbXBpbGVkIGFydGlmYWN0IG9mIHRoaXMgc21hcnQgY29udHJhY3QuIFVzZWQgZm9yIGRlcGxveW1lbnQgb2YgdGhpcyBjb250cmFjdCB0ZW1wbGF0ZSB8IAoqKnNvdXJjZWNvZGUqKiB8ICoqc3RyKiogfCBUaGUgc291cmNlIGNvZGUgb2YgdGhlIGNvbnRyYWN0LiBPcHRpb25hbC4gfCBbb3B0aW9uYWxdIAoqKnR5cGUqKiB8ICoqc3RyKiogfCBUaGUgdHlwZSBvZiB0aGUgY29udHJhY3QgdGVtcGxhdGUgfCAKKipkb2NzKiogfCBbKipDb250cmFjdERvYyoqXShDb250cmFjdERvYy5tZCkgfCBBICYjeDYwO25hdHNwZWMmI3g2MDsgY29tcGxpYW50IGRvY3VtZW50YXRpb24ganNvbi4gQ2FuIGJlIHJldHJpZXZlZCBmcm9tIHRoZSBvdXRwdXQganNvbiBhZnRlciBjb21waWxhdGlvbiB8IFtvcHRpb25hbF0gCioqYWJpKiogfCBbKipMaXN0W0FiaUZ1bmN0aW9uXSoqXShBYmlGdW5jdGlvbi5tZCkgfCBUaGUgYWJpIG9mIHRoZSBjb250cmFjdCB0ZW1wbGF0ZS4gTmVjZXNzYXJ5IGZvciBkaXNwbGF5aW5nIGFuZCBmb3IgYWZ0ZXIgZGVwbG95bWVudCBlbmNvZGluZyB8IAoqKmF0dHJpYnV0ZXMqKiB8IFsqKkNvbnRyYWN0QXR0cmlidXRlcyoqXShDb250cmFjdEF0dHJpYnV0ZXMubWQpIHwgVGhlIGF0dHJpYnV0ZXMgcmVsYXRlZCB0byB0aGlzIGNvbnRyYWN0IHRlbXBsYXRlLiBJdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgdG9rZW5pemF0aW9uIHBhZ2UgfCBbb3B0aW9uYWxdIAoqKnByb3RvY29sKiogfCAqKnN0cioqIHwgVGhlIHByb3RvY29sIHRoYXQgdGhlIHRlbXBsYXRlIHdpbGwgYmUgdXNlZCBmb3IgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfdXBsb2FkX3JlcXVlc3QgaW1wb3J0IENvbnRyYWN0VXBsb2FkUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3RVcGxvYWRSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpjb250cmFjdF91cGxvYWRfcmVxdWVzdF9pbnN0YW5jZSA9IENvbnRyYWN0VXBsb2FkUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDb250cmFjdFVwbG9hZFJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29udHJhY3RfdXBsb2FkX3JlcXVlc3RfZGljdCA9IGNvbnRyYWN0X3VwbG9hZF9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb250cmFjdFVwbG9hZFJlcXVlc3QgZnJvbSBhIGRpY3QKY29udHJhY3RfdXBsb2FkX3JlcXVlc3RfZnJvbV9kaWN0ID0gQ29udHJhY3RVcGxvYWRSZXF1ZXN0LmZyb21fZGljdChjb250cmFjdF91cGxvYWRfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ContractWithAbiDto.md b/docs/ContractWithAbiDto.md index fdf287d6..6678dd4a 100644 --- a/docs/ContractWithAbiDto.md +++ b/docs/ContractWithAbiDto.md @@ -1,35 +1 @@ -# ContractWithAbiDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**contract_address** | **str** | The address of the contract | -**base_asset_id** | **str** | The blockchain base assetId | -**name** | **str** | The name of the contract | -**abi** | [**List[AbiFunction]**](AbiFunction.md) | The ABI of the contract | -**is_proxy** | **bool** | Whether the contract is a proxy contract | [optional] -**implementation** | **str** | The implementation contract address | [optional] -**is_public** | **bool** | Whether the contract ABI is public | - -## Example - -```python -from fireblocks.models.contract_with_abi_dto import ContractWithAbiDto - -# TODO update the JSON string below -json = "{}" -# create an instance of ContractWithAbiDto from a JSON string -contract_with_abi_dto_instance = ContractWithAbiDto.from_json(json) -# print the JSON string representation of the object -print(ContractWithAbiDto.to_json()) - -# convert the object into a dict -contract_with_abi_dto_dict = contract_with_abi_dto_instance.to_dict() -# create an instance of ContractWithAbiDto from a dict -contract_with_abi_dto_from_dict = ContractWithAbiDto.from_dict(contract_with_abi_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb250cmFjdFdpdGhBYmlEdG8KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqY29udHJhY3RfYWRkcmVzcyoqIHwgKipzdHIqKiB8IFRoZSBhZGRyZXNzIG9mIHRoZSBjb250cmFjdCB8IAoqKmJhc2VfYXNzZXRfaWQqKiB8ICoqc3RyKiogfCBUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQgfCAKKipuYW1lKiogfCAqKnN0cioqIHwgVGhlIG5hbWUgb2YgdGhlIGNvbnRyYWN0IHwgCioqYWJpKiogfCBbKipMaXN0W0FiaUZ1bmN0aW9uXSoqXShBYmlGdW5jdGlvbi5tZCkgfCBUaGUgQUJJIG9mIHRoZSBjb250cmFjdCB8IAoqKmlzX3Byb3h5KiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgdGhlIGNvbnRyYWN0IGlzIGEgcHJveHkgY29udHJhY3QgfCBbb3B0aW9uYWxdIAoqKmltcGxlbWVudGF0aW9uKiogfCAqKnN0cioqIHwgVGhlIGltcGxlbWVudGF0aW9uIGNvbnRyYWN0IGFkZHJlc3MgfCBbb3B0aW9uYWxdIAoqKmlzX3B1YmxpYyoqIHwgKipib29sKiogfCBXaGV0aGVyIHRoZSBjb250cmFjdCBBQkkgaXMgcHVibGljIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF93aXRoX2FiaV9kdG8gaW1wb3J0IENvbnRyYWN0V2l0aEFiaUR0bwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3RXaXRoQWJpRHRvIGZyb20gYSBKU09OIHN0cmluZwpjb250cmFjdF93aXRoX2FiaV9kdG9faW5zdGFuY2UgPSBDb250cmFjdFdpdGhBYmlEdG8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29udHJhY3RXaXRoQWJpRHRvLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNvbnRyYWN0X3dpdGhfYWJpX2R0b19kaWN0ID0gY29udHJhY3Rfd2l0aF9hYmlfZHRvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb250cmFjdFdpdGhBYmlEdG8gZnJvbSBhIGRpY3QKY29udHJhY3Rfd2l0aF9hYmlfZHRvX2Zyb21fZGljdCA9IENvbnRyYWN0V2l0aEFiaUR0by5mcm9tX2RpY3QoY29udHJhY3Rfd2l0aF9hYmlfZHRvX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ContractsApi.md b/docs/ContractsApi.md index e5463056..42739214 100644 --- a/docs/ContractsApi.md +++ b/docs/ContractsApi.md @@ -1,535 +1 @@ -# fireblocks.ContractsApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**add_contract_asset**](ContractsApi.md#add_contract_asset) | **POST** /contracts/{contractId}/{assetId} | Add an asset to a whitelisted contract -[**create_contract**](ContractsApi.md#create_contract) | **POST** /contracts | Add a contract -[**delete_contract**](ContractsApi.md#delete_contract) | **DELETE** /contracts/{contractId} | Delete a contract -[**delete_contract_asset**](ContractsApi.md#delete_contract_asset) | **DELETE** /contracts/{contractId}/{assetId} | Delete an asset from a whitelisted contract -[**get_contract**](ContractsApi.md#get_contract) | **GET** /contracts/{contractId} | Find a Specific Whitelisted Contract -[**get_contract_asset**](ContractsApi.md#get_contract_asset) | **GET** /contracts/{contractId}/{assetId} | Find a whitelisted contract's asset -[**get_contracts**](ContractsApi.md#get_contracts) | **GET** /contracts | List Whitelisted Contracts - - -# **add_contract_asset** -> ExternalWalletAsset add_contract_asset(contract_id, asset_id, idempotency_key=idempotency_key, add_contract_asset_request=add_contract_asset_request) - -Add an asset to a whitelisted contract - -Adds an asset to a whitelisted contract.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.add_contract_asset_request import AddContractAssetRequest -from fireblocks.models.external_wallet_asset import ExternalWalletAsset -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - contract_id = 'contract_id_example' # str | The ID of the contract - asset_id = 'asset_id_example' # str | The ID of the asset to add - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - add_contract_asset_request = fireblocks.AddContractAssetRequest() # AddContractAssetRequest | (optional) - - try: - # Add an asset to a whitelisted contract - api_response = fireblocks.contracts.add_contract_asset(contract_id, asset_id, idempotency_key=idempotency_key, add_contract_asset_request=add_contract_asset_request).result() - print("The response of ContractsApi->add_contract_asset:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ContractsApi->add_contract_asset: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **contract_id** | **str**| The ID of the contract | - **asset_id** | **str**| The ID of the asset to add | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **add_contract_asset_request** | [**AddContractAssetRequest**](AddContractAssetRequest.md)| | [optional] - -### Return type - -[**ExternalWalletAsset**](ExternalWalletAsset.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A Wallet Asset object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_contract** -> UnmanagedWallet create_contract(idempotency_key=idempotency_key, create_contract_request=create_contract_request) - -Add a contract - -Adds a contract to the workspace whitelist.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.create_contract_request import CreateContractRequest -from fireblocks.models.unmanaged_wallet import UnmanagedWallet -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - create_contract_request = fireblocks.CreateContractRequest() # CreateContractRequest | (optional) - - try: - # Add a contract - api_response = fireblocks.contracts.create_contract(idempotency_key=idempotency_key, create_contract_request=create_contract_request).result() - print("The response of ContractsApi->create_contract:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ContractsApi->create_contract: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **create_contract_request** | [**CreateContractRequest**](CreateContractRequest.md)| | [optional] - -### Return type - -[**UnmanagedWallet**](UnmanagedWallet.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A Wallet object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **delete_contract** -> delete_contract(contract_id) - -Delete a contract - -Deletes a contract by ID.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - contract_id = 'contract_id_example' # str | The ID of the contract to delete - - try: - # Delete a contract - fireblocks.contracts.delete_contract(contract_id).result() - except Exception as e: - print("Exception when calling ContractsApi->delete_contract: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **contract_id** | **str**| The ID of the contract to delete | - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **delete_contract_asset** -> delete_contract_asset(contract_id, asset_id) - -Delete an asset from a whitelisted contract - -Deletes a whitelisted contract asset by ID.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - contract_id = 'contract_id_example' # str | The ID of the contract - asset_id = 'asset_id_example' # str | The ID of the asset to delete - - try: - # Delete an asset from a whitelisted contract - fireblocks.contracts.delete_contract_asset(contract_id, asset_id).result() - except Exception as e: - print("Exception when calling ContractsApi->delete_contract_asset: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **contract_id** | **str**| The ID of the contract | - **asset_id** | **str**| The ID of the asset to delete | - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_contract** -> UnmanagedWallet get_contract(contract_id) - -Find a Specific Whitelisted Contract - -Returns a whitelisted contract by Fireblocks Contract ID.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.unmanaged_wallet import UnmanagedWallet -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - contract_id = 'contract_id_example' # str | The ID of the contract to return - - try: - # Find a Specific Whitelisted Contract - api_response = fireblocks.contracts.get_contract(contract_id).result() - print("The response of ContractsApi->get_contract:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ContractsApi->get_contract: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **contract_id** | **str**| The ID of the contract to return | - -### Return type - -[**UnmanagedWallet**](UnmanagedWallet.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A Wallet object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_contract_asset** -> ExternalWalletAsset get_contract_asset(contract_id, asset_id) - -Find a whitelisted contract's asset - -Returns a whitelisted contract's asset by ID.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.external_wallet_asset import ExternalWalletAsset -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - contract_id = 'contract_id_example' # str | The ID of the contract - asset_id = 'asset_id_example' # str | The ID of the asset to return - - try: - # Find a whitelisted contract's asset - api_response = fireblocks.contracts.get_contract_asset(contract_id, asset_id).result() - print("The response of ContractsApi->get_contract_asset:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ContractsApi->get_contract_asset: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **contract_id** | **str**| The ID of the contract | - **asset_id** | **str**| The ID of the asset to return | - -### Return type - -[**ExternalWalletAsset**](ExternalWalletAsset.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A Wallet Asset object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_contracts** -> List[UnmanagedWallet] get_contracts() - -List Whitelisted Contracts - -Gets a list of whitelisted contracts.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -### Example - - -```python -from fireblocks.models.unmanaged_wallet import UnmanagedWallet -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # List Whitelisted Contracts - api_response = fireblocks.contracts.get_contracts().result() - print("The response of ContractsApi->get_contracts:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ContractsApi->get_contracts: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**List[UnmanagedWallet]**](UnmanagedWallet.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A list of contracts | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLkNvbnRyYWN0c0FwaQoKQWxsIFVSSXMgYXJlIHJlbGF0aXZlIHRvICpodHRwczovL2FwaS5maXJlYmxvY2tzLmlvL3YxKgoKTWV0aG9kIHwgSFRUUCByZXF1ZXN0IHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tClsqKmFkZF9jb250cmFjdF9hc3NldCoqXShDb250cmFjdHNBcGkubWQjYWRkX2NvbnRyYWN0X2Fzc2V0KSB8ICoqUE9TVCoqIC9jb250cmFjdHMve2NvbnRyYWN0SWR9L3thc3NldElkfSB8IEFkZCBhbiBhc3NldCB0byBhIHdoaXRlbGlzdGVkIGNvbnRyYWN0ClsqKmNyZWF0ZV9jb250cmFjdCoqXShDb250cmFjdHNBcGkubWQjY3JlYXRlX2NvbnRyYWN0KSB8ICoqUE9TVCoqIC9jb250cmFjdHMgfCBBZGQgYSBjb250cmFjdApbKipkZWxldGVfY29udHJhY3QqKl0oQ29udHJhY3RzQXBpLm1kI2RlbGV0ZV9jb250cmFjdCkgfCAqKkRFTEVURSoqIC9jb250cmFjdHMve2NvbnRyYWN0SWR9IHwgRGVsZXRlIGEgY29udHJhY3QKWyoqZGVsZXRlX2NvbnRyYWN0X2Fzc2V0KipdKENvbnRyYWN0c0FwaS5tZCNkZWxldGVfY29udHJhY3RfYXNzZXQpIHwgKipERUxFVEUqKiAvY29udHJhY3RzL3tjb250cmFjdElkfS97YXNzZXRJZH0gfCBEZWxldGUgYW4gYXNzZXQgZnJvbSBhIHdoaXRlbGlzdGVkIGNvbnRyYWN0ClsqKmdldF9jb250cmFjdCoqXShDb250cmFjdHNBcGkubWQjZ2V0X2NvbnRyYWN0KSB8ICoqR0VUKiogL2NvbnRyYWN0cy97Y29udHJhY3RJZH0gfCBGaW5kIGEgU3BlY2lmaWMgV2hpdGVsaXN0ZWQgQ29udHJhY3QKWyoqZ2V0X2NvbnRyYWN0X2Fzc2V0KipdKENvbnRyYWN0c0FwaS5tZCNnZXRfY29udHJhY3RfYXNzZXQpIHwgKipHRVQqKiAvY29udHJhY3RzL3tjb250cmFjdElkfS97YXNzZXRJZH0gfCBGaW5kIGEgd2hpdGVsaXN0ZWQgY29udHJhY3QmIzM5O3MgYXNzZXQKWyoqZ2V0X2NvbnRyYWN0cyoqXShDb250cmFjdHNBcGkubWQjZ2V0X2NvbnRyYWN0cykgfCAqKkdFVCoqIC9jb250cmFjdHMgfCBMaXN0IFdoaXRlbGlzdGVkIENvbnRyYWN0cwoKCiMgKiphZGRfY29udHJhY3RfYXNzZXQqKgo+IEV4dGVybmFsV2FsbGV0QXNzZXQgYWRkX2NvbnRyYWN0X2Fzc2V0KGNvbnRyYWN0X2lkLCBhc3NldF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwgYWRkX2NvbnRyYWN0X2Fzc2V0X3JlcXVlc3Q9YWRkX2NvbnRyYWN0X2Fzc2V0X3JlcXVlc3QpCgpBZGQgYW4gYXNzZXQgdG8gYSB3aGl0ZWxpc3RlZCBjb250cmFjdAoKQWRkcyBhbiBhc3NldCB0byBhIHdoaXRlbGlzdGVkIGNvbnRyYWN0LiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hZGRfY29udHJhY3RfYXNzZXRfcmVxdWVzdCBpbXBvcnQgQWRkQ29udHJhY3RBc3NldFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leHRlcm5hbF93YWxsZXRfYXNzZXQgaW1wb3J0IEV4dGVybmFsV2FsbGV0QXNzZXQKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY29udHJhY3RfaWQgPSAnY29udHJhY3RfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGNvbnRyYWN0CiAgICBhc3NldF9pZCA9ICdhc3NldF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgYXNzZXQgdG8gYWRkCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCiAgICBhZGRfY29udHJhY3RfYXNzZXRfcmVxdWVzdCA9IGZpcmVibG9ja3MuQWRkQ29udHJhY3RBc3NldFJlcXVlc3QoKSAjIEFkZENvbnRyYWN0QXNzZXRSZXF1ZXN0IHwgIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBBZGQgYW4gYXNzZXQgdG8gYSB3aGl0ZWxpc3RlZCBjb250cmFjdAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuY29udHJhY3RzLmFkZF9jb250cmFjdF9hc3NldChjb250cmFjdF9pZCwgYXNzZXRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksIGFkZF9jb250cmFjdF9hc3NldF9yZXF1ZXN0PWFkZF9jb250cmFjdF9hc3NldF9yZXF1ZXN0KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgQ29udHJhY3RzQXBpLT5hZGRfY29udHJhY3RfYXNzZXQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQ29udHJhY3RzQXBpLT5hZGRfY29udHJhY3RfYXNzZXQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmNvbnRyYWN0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGNvbnRyYWN0IHwgCiAqKmFzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIGFkZCB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAogKiphZGRfY29udHJhY3RfYXNzZXRfcmVxdWVzdCoqIHwgWyoqQWRkQ29udHJhY3RBc3NldFJlcXVlc3QqKl0oQWRkQ29udHJhY3RBc3NldFJlcXVlc3QubWQpfCAgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipFeHRlcm5hbFdhbGxldEFzc2V0KipdKEV4dGVybmFsV2FsbGV0QXNzZXQubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgV2FsbGV0IEFzc2V0IG9iamVjdCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqY3JlYXRlX2NvbnRyYWN0KioKPiBVbm1hbmFnZWRXYWxsZXQgY3JlYXRlX2NvbnRyYWN0KGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksIGNyZWF0ZV9jb250cmFjdF9yZXF1ZXN0PWNyZWF0ZV9jb250cmFjdF9yZXF1ZXN0KQoKQWRkIGEgY29udHJhY3QKCkFkZHMgYSBjb250cmFjdCB0byB0aGUgd29ya3NwYWNlIHdoaXRlbGlzdC4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX2NvbnRyYWN0X3JlcXVlc3QgaW1wb3J0IENyZWF0ZUNvbnRyYWN0UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVubWFuYWdlZF93YWxsZXQgaW1wb3J0IFVubWFuYWdlZFdhbGxldApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCiAgICBjcmVhdGVfY29udHJhY3RfcmVxdWVzdCA9IGZpcmVibG9ja3MuQ3JlYXRlQ29udHJhY3RSZXF1ZXN0KCkgIyBDcmVhdGVDb250cmFjdFJlcXVlc3QgfCAgKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIEFkZCBhIGNvbnRyYWN0CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5jb250cmFjdHMuY3JlYXRlX2NvbnRyYWN0KGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksIGNyZWF0ZV9jb250cmFjdF9yZXF1ZXN0PWNyZWF0ZV9jb250cmFjdF9yZXF1ZXN0KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgQ29udHJhY3RzQXBpLT5jcmVhdGVfY29udHJhY3Q6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQ29udHJhY3RzQXBpLT5jcmVhdGVfY29udHJhY3Q6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCiAqKmNyZWF0ZV9jb250cmFjdF9yZXF1ZXN0KiogfCBbKipDcmVhdGVDb250cmFjdFJlcXVlc3QqKl0oQ3JlYXRlQ29udHJhY3RSZXF1ZXN0Lm1kKXwgIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqVW5tYW5hZ2VkV2FsbGV0KipdKFVubWFuYWdlZFdhbGxldC5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQSBXYWxsZXQgb2JqZWN0IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipkZWxldGVfY29udHJhY3QqKgo+IGRlbGV0ZV9jb250cmFjdChjb250cmFjdF9pZCkKCkRlbGV0ZSBhIGNvbnRyYWN0CgpEZWxldGVzIGEgY29udHJhY3QgYnkgSUQuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY29udHJhY3RfaWQgPSAnY29udHJhY3RfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGNvbnRyYWN0IHRvIGRlbGV0ZQoKICAgIHRyeToKICAgICAgICAjIERlbGV0ZSBhIGNvbnRyYWN0CiAgICAgICAgZmlyZWJsb2Nrcy5jb250cmFjdHMuZGVsZXRlX2NvbnRyYWN0KGNvbnRyYWN0X2lkKS5yZXN1bHQoKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIENvbnRyYWN0c0FwaS0+ZGVsZXRlX2NvbnRyYWN0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjb250cmFjdF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSBjb250cmFjdCB0byBkZWxldGUgfCAKCiMjIyBSZXR1cm4gdHlwZQoKdm9pZCAoZW1wdHkgcmVzcG9uc2UgYm9keSkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDEqKiB8IE9LIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipkZWxldGVfY29udHJhY3RfYXNzZXQqKgo+IGRlbGV0ZV9jb250cmFjdF9hc3NldChjb250cmFjdF9pZCwgYXNzZXRfaWQpCgpEZWxldGUgYW4gYXNzZXQgZnJvbSBhIHdoaXRlbGlzdGVkIGNvbnRyYWN0CgpEZWxldGVzIGEgd2hpdGVsaXN0ZWQgY29udHJhY3QgYXNzZXQgYnkgSUQuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY29udHJhY3RfaWQgPSAnY29udHJhY3RfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGNvbnRyYWN0CiAgICBhc3NldF9pZCA9ICdhc3NldF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgYXNzZXQgdG8gZGVsZXRlCgogICAgdHJ5OgogICAgICAgICMgRGVsZXRlIGFuIGFzc2V0IGZyb20gYSB3aGl0ZWxpc3RlZCBjb250cmFjdAogICAgICAgIGZpcmVibG9ja3MuY29udHJhY3RzLmRlbGV0ZV9jb250cmFjdF9hc3NldChjb250cmFjdF9pZCwgYXNzZXRfaWQpLnJlc3VsdCgpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQ29udHJhY3RzQXBpLT5kZWxldGVfY29udHJhY3RfYXNzZXQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmNvbnRyYWN0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGNvbnRyYWN0IHwgCiAqKmFzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIGRlbGV0ZSB8IAoKIyMjIFJldHVybiB0eXBlCgp2b2lkIChlbXB0eSByZXNwb25zZSBib2R5KQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgT0sgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9jb250cmFjdCoqCj4gVW5tYW5hZ2VkV2FsbGV0IGdldF9jb250cmFjdChjb250cmFjdF9pZCkKCkZpbmQgYSBTcGVjaWZpYyBXaGl0ZWxpc3RlZCBDb250cmFjdAoKUmV0dXJucyBhIHdoaXRlbGlzdGVkIGNvbnRyYWN0IGJ5IEZpcmVibG9ja3MgQ29udHJhY3QgSUQuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVubWFuYWdlZF93YWxsZXQgaW1wb3J0IFVubWFuYWdlZFdhbGxldApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjb250cmFjdF9pZCA9ICdjb250cmFjdF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgY29udHJhY3QgdG8gcmV0dXJuCgogICAgdHJ5OgogICAgICAgICMgRmluZCBhIFNwZWNpZmljIFdoaXRlbGlzdGVkIENvbnRyYWN0CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5jb250cmFjdHMuZ2V0X2NvbnRyYWN0KGNvbnRyYWN0X2lkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgQ29udHJhY3RzQXBpLT5nZXRfY29udHJhY3Q6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQ29udHJhY3RzQXBpLT5nZXRfY29udHJhY3Q6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmNvbnRyYWN0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGNvbnRyYWN0IHRvIHJldHVybiB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipVbm1hbmFnZWRXYWxsZXQqKl0oVW5tYW5hZ2VkV2FsbGV0Lm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQSBXYWxsZXQgb2JqZWN0IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfY29udHJhY3RfYXNzZXQqKgo+IEV4dGVybmFsV2FsbGV0QXNzZXQgZ2V0X2NvbnRyYWN0X2Fzc2V0KGNvbnRyYWN0X2lkLCBhc3NldF9pZCkKCkZpbmQgYSB3aGl0ZWxpc3RlZCBjb250cmFjdCdzIGFzc2V0CgpSZXR1cm5zIGEgd2hpdGVsaXN0ZWQgY29udHJhY3QncyBhc3NldCBieSBJRC4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXh0ZXJuYWxfd2FsbGV0X2Fzc2V0IGltcG9ydCBFeHRlcm5hbFdhbGxldEFzc2V0CmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGNvbnRyYWN0X2lkID0gJ2NvbnRyYWN0X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBjb250cmFjdAogICAgYXNzZXRfaWQgPSAnYXNzZXRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIHJldHVybgoKICAgIHRyeToKICAgICAgICAjIEZpbmQgYSB3aGl0ZWxpc3RlZCBjb250cmFjdCdzIGFzc2V0CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5jb250cmFjdHMuZ2V0X2NvbnRyYWN0X2Fzc2V0KGNvbnRyYWN0X2lkLCBhc3NldF9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIENvbnRyYWN0c0FwaS0+Z2V0X2NvbnRyYWN0X2Fzc2V0OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIENvbnRyYWN0c0FwaS0+Z2V0X2NvbnRyYWN0X2Fzc2V0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjb250cmFjdF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSBjb250cmFjdCB8IAogKiphc3NldF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSBhc3NldCB0byByZXR1cm4gfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqRXh0ZXJuYWxXYWxsZXRBc3NldCoqXShFeHRlcm5hbFdhbGxldEFzc2V0Lm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQSBXYWxsZXQgQXNzZXQgb2JqZWN0IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfY29udHJhY3RzKioKPiBMaXN0W1VubWFuYWdlZFdhbGxldF0gZ2V0X2NvbnRyYWN0cygpCgpMaXN0IFdoaXRlbGlzdGVkIENvbnRyYWN0cwoKR2V0cyBhIGxpc3Qgb2Ygd2hpdGVsaXN0ZWQgY29udHJhY3RzLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLCBWaWV3ZXIuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVubWFuYWdlZF93YWxsZXQgaW1wb3J0IFVubWFuYWdlZFdhbGxldApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CgogICAgdHJ5OgogICAgICAgICMgTGlzdCBXaGl0ZWxpc3RlZCBDb250cmFjdHMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmNvbnRyYWN0cy5nZXRfY29udHJhY3RzKCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIENvbnRyYWN0c0FwaS0+Z2V0X2NvbnRyYWN0czpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBDb250cmFjdHNBcGktPmdldF9jb250cmFjdHM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgpUaGlzIGVuZHBvaW50IGRvZXMgbm90IG5lZWQgYW55IHBhcmFtZXRlci4KCiMjIyBSZXR1cm4gdHlwZQoKWyoqTGlzdFtVbm1hbmFnZWRXYWxsZXRdKipdKFVubWFuYWdlZFdhbGxldC5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgbGlzdCBvZiBjb250cmFjdHMgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoK \ No newline at end of file diff --git a/docs/ConversionConfigOperation.md b/docs/ConversionConfigOperation.md index 79b08fd6..a778e0c8 100644 --- a/docs/ConversionConfigOperation.md +++ b/docs/ConversionConfigOperation.md @@ -1,33 +1 @@ -# ConversionConfigOperation - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**operation_id** | **str** | | -**type** | [**ConversionOperationType**](ConversionOperationType.md) | | -**params** | [**ConversionOperationConfigParams**](ConversionOperationConfigParams.md) | | -**status** | [**ConfigOperationStatus**](ConfigOperationStatus.md) | | -**validation_failure** | [**ConversionValidationFailure**](ConversionValidationFailure.md) | | [optional] - -## Example - -```python -from fireblocks.models.conversion_config_operation import ConversionConfigOperation - -# TODO update the JSON string below -json = "{}" -# create an instance of ConversionConfigOperation from a JSON string -conversion_config_operation_instance = ConversionConfigOperation.from_json(json) -# print the JSON string representation of the object -print(ConversionConfigOperation.to_json()) - -# convert the object into a dict -conversion_config_operation_dict = conversion_config_operation_instance.to_dict() -# create an instance of ConversionConfigOperation from a dict -conversion_config_operation_from_dict = ConversionConfigOperation.from_dict(conversion_config_operation_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm9wZXJhdGlvbl9pZCoqIHwgKipzdHIqKiB8ICB8IAoqKnR5cGUqKiB8IFsqKkNvbnZlcnNpb25PcGVyYXRpb25UeXBlKipdKENvbnZlcnNpb25PcGVyYXRpb25UeXBlLm1kKSB8ICB8IAoqKnBhcmFtcyoqIHwgWyoqQ29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtcyoqXShDb252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zLm1kKSB8ICB8IAoqKnN0YXR1cyoqIHwgWyoqQ29uZmlnT3BlcmF0aW9uU3RhdHVzKipdKENvbmZpZ09wZXJhdGlvblN0YXR1cy5tZCkgfCAgfCAKKip2YWxpZGF0aW9uX2ZhaWx1cmUqKiB8IFsqKkNvbnZlcnNpb25WYWxpZGF0aW9uRmFpbHVyZSoqXShDb252ZXJzaW9uVmFsaWRhdGlvbkZhaWx1cmUubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fY29uZmlnX29wZXJhdGlvbiBpbXBvcnQgQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmcKY29udmVyc2lvbl9jb25maWdfb3BlcmF0aW9uX2luc3RhbmNlID0gQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNvbnZlcnNpb25fY29uZmlnX29wZXJhdGlvbl9kaWN0ID0gY29udmVyc2lvbl9jb25maWdfb3BlcmF0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uIGZyb20gYSBkaWN0CmNvbnZlcnNpb25fY29uZmlnX29wZXJhdGlvbl9mcm9tX2RpY3QgPSBDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uLmZyb21fZGljdChjb252ZXJzaW9uX2NvbmZpZ19vcGVyYXRpb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ConversionOperationConfigParams.md b/docs/ConversionOperationConfigParams.md index 50ab2422..52e17ddd 100644 --- a/docs/ConversionOperationConfigParams.md +++ b/docs/ConversionOperationConfigParams.md @@ -1,33 +1 @@ -# ConversionOperationConfigParams - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | **str** | | [optional] -**account_id** | **str** | | [optional] -**src_asset_id** | **str** | | [optional] -**dest_asset_id** | **str** | | -**slippage_basis_points** | **int** | | [optional] - -## Example - -```python -from fireblocks.models.conversion_operation_config_params import ConversionOperationConfigParams - -# TODO update the JSON string below -json = "{}" -# create an instance of ConversionOperationConfigParams from a JSON string -conversion_operation_config_params_instance = ConversionOperationConfigParams.from_json(json) -# print the JSON string representation of the object -print(ConversionOperationConfigParams.to_json()) - -# convert the object into a dict -conversion_operation_config_params_dict = conversion_operation_config_params_instance.to_dict() -# create an instance of ConversionOperationConfigParams from a dict -conversion_operation_config_params_from_dict = ConversionOperationConfigParams.from_dict(conversion_operation_config_params_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFtb3VudCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqc3JjX2Fzc2V0X2lkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipkZXN0X2Fzc2V0X2lkKiogfCAqKnN0cioqIHwgIHwgCioqc2xpcHBhZ2VfYmFzaXNfcG9pbnRzKiogfCAqKmludCoqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMgaW1wb3J0IENvbnZlcnNpb25PcGVyYXRpb25Db25maWdQYXJhbXMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnZlcnNpb25PcGVyYXRpb25Db25maWdQYXJhbXMgZnJvbSBhIEpTT04gc3RyaW5nCmNvbnZlcnNpb25fb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXNfaW5zdGFuY2UgPSBDb252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbnZlcnNpb25PcGVyYXRpb25Db25maWdQYXJhbXMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29udmVyc2lvbl9vcGVyYXRpb25fY29uZmlnX3BhcmFtc19kaWN0ID0gY29udmVyc2lvbl9vcGVyYXRpb25fY29uZmlnX3BhcmFtc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtcyBmcm9tIGEgZGljdApjb252ZXJzaW9uX29wZXJhdGlvbl9jb25maWdfcGFyYW1zX2Zyb21fZGljdCA9IENvbnZlcnNpb25PcGVyYXRpb25Db25maWdQYXJhbXMuZnJvbV9kaWN0KGNvbnZlcnNpb25fb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ConversionOperationExecution.md b/docs/ConversionOperationExecution.md index 0c046cd5..00c6b219 100644 --- a/docs/ConversionOperationExecution.md +++ b/docs/ConversionOperationExecution.md @@ -1,33 +1 @@ -# ConversionOperationExecution - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**input** | [**ConversionOperationConfigParams**](ConversionOperationConfigParams.md) | | -**output** | [**ConversionOperationExecutionOutput**](ConversionOperationExecutionOutput.md) | | [optional] -**started_at** | **float** | | -**finished_at** | **float** | | [optional] -**failure** | [**ConversionOperationFailure**](ConversionOperationFailure.md) | | [optional] - -## Example - -```python -from fireblocks.models.conversion_operation_execution import ConversionOperationExecution - -# TODO update the JSON string below -json = "{}" -# create an instance of ConversionOperationExecution from a JSON string -conversion_operation_execution_instance = ConversionOperationExecution.from_json(json) -# print the JSON string representation of the object -print(ConversionOperationExecution.to_json()) - -# convert the object into a dict -conversion_operation_execution_dict = conversion_operation_execution_instance.to_dict() -# create an instance of ConversionOperationExecution from a dict -conversion_operation_execution_from_dict = ConversionOperationExecution.from_dict(conversion_operation_execution_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlucHV0KiogfCBbKipDb252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zKipdKENvbnZlcnNpb25PcGVyYXRpb25Db25maWdQYXJhbXMubWQpIHwgIHwgCioqb3V0cHV0KiogfCBbKipDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0KipdKENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25PdXRwdXQubWQpIHwgIHwgW29wdGlvbmFsXSAKKipzdGFydGVkX2F0KiogfCAqKmZsb2F0KiogfCAgfCAKKipmaW5pc2hlZF9hdCoqIHwgKipmbG9hdCoqIHwgIHwgW29wdGlvbmFsXSAKKipmYWlsdXJlKiogfCBbKipDb252ZXJzaW9uT3BlcmF0aW9uRmFpbHVyZSoqXShDb252ZXJzaW9uT3BlcmF0aW9uRmFpbHVyZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fZXhlY3V0aW9uIGltcG9ydCBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uIGZyb20gYSBKU09OIHN0cmluZwpjb252ZXJzaW9uX29wZXJhdGlvbl9leGVjdXRpb25faW5zdGFuY2UgPSBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29udmVyc2lvbl9vcGVyYXRpb25fZXhlY3V0aW9uX2RpY3QgPSBjb252ZXJzaW9uX29wZXJhdGlvbl9leGVjdXRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb24gZnJvbSBhIGRpY3QKY29udmVyc2lvbl9vcGVyYXRpb25fZXhlY3V0aW9uX2Zyb21fZGljdCA9IENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb24uZnJvbV9kaWN0KGNvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ConversionOperationExecutionOutput.md b/docs/ConversionOperationExecutionOutput.md index ad3a64f3..51e9dfad 100644 --- a/docs/ConversionOperationExecutionOutput.md +++ b/docs/ConversionOperationExecutionOutput.md @@ -1,31 +1 @@ -# ConversionOperationExecutionOutput - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | [**AssetAmount**](AssetAmount.md) | | -**fee** | [**AssetAmount**](AssetAmount.md) | | -**conversion_rate** | **str** | | - -## Example - -```python -from fireblocks.models.conversion_operation_execution_output import ConversionOperationExecutionOutput - -# TODO update the JSON string below -json = "{}" -# create an instance of ConversionOperationExecutionOutput from a JSON string -conversion_operation_execution_output_instance = ConversionOperationExecutionOutput.from_json(json) -# print the JSON string representation of the object -print(ConversionOperationExecutionOutput.to_json()) - -# convert the object into a dict -conversion_operation_execution_output_dict = conversion_operation_execution_output_instance.to_dict() -# create an instance of ConversionOperationExecutionOutput from a dict -conversion_operation_execution_output_from_dict = ConversionOperationExecutionOutput.from_dict(conversion_operation_execution_output_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFtb3VudCoqIHwgWyoqQXNzZXRBbW91bnQqKl0oQXNzZXRBbW91bnQubWQpIHwgIHwgCioqZmVlKiogfCBbKipBc3NldEFtb3VudCoqXShBc3NldEFtb3VudC5tZCkgfCAgfCAKKipjb252ZXJzaW9uX3JhdGUqKiB8ICoqc3RyKiogfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXQgaW1wb3J0IENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25PdXRwdXQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25PdXRwdXQgZnJvbSBhIEpTT04gc3RyaW5nCmNvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXRfaW5zdGFuY2UgPSBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25PdXRwdXQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29udmVyc2lvbl9vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dF9kaWN0ID0gY29udmVyc2lvbl9vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCBmcm9tIGEgZGljdApjb252ZXJzaW9uX29wZXJhdGlvbl9leGVjdXRpb25fb3V0cHV0X2Zyb21fZGljdCA9IENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25PdXRwdXQuZnJvbV9kaWN0KGNvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ConversionOperationExecutionParams.md b/docs/ConversionOperationExecutionParams.md index a9dc9fca..7e35875d 100644 --- a/docs/ConversionOperationExecutionParams.md +++ b/docs/ConversionOperationExecutionParams.md @@ -1,30 +1 @@ -# ConversionOperationExecutionParams - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**config_operation_id** | **str** | | -**execution_params** | [**ConversionOperationExecutionParamsExecutionParams**](ConversionOperationExecutionParamsExecutionParams.md) | | [optional] - -## Example - -```python -from fireblocks.models.conversion_operation_execution_params import ConversionOperationExecutionParams - -# TODO update the JSON string below -json = "{}" -# create an instance of ConversionOperationExecutionParams from a JSON string -conversion_operation_execution_params_instance = ConversionOperationExecutionParams.from_json(json) -# print the JSON string representation of the object -print(ConversionOperationExecutionParams.to_json()) - -# convert the object into a dict -conversion_operation_execution_params_dict = conversion_operation_execution_params_instance.to_dict() -# create an instance of ConversionOperationExecutionParams from a dict -conversion_operation_execution_params_from_dict = ConversionOperationExecutionParams.from_dict(conversion_operation_execution_params_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmNvbmZpZ19vcGVyYXRpb25faWQqKiB8ICoqc3RyKiogfCAgfCAKKipleGVjdXRpb25fcGFyYW1zKiogfCBbKipDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zKipdKENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXMgaW1wb3J0IENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXMgZnJvbSBhIEpTT04gc3RyaW5nCmNvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXNfaW5zdGFuY2UgPSBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29udmVyc2lvbl9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtc19kaWN0ID0gY29udmVyc2lvbl9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcyBmcm9tIGEgZGljdApjb252ZXJzaW9uX29wZXJhdGlvbl9leGVjdXRpb25fcGFyYW1zX2Zyb21fZGljdCA9IENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXMuZnJvbV9kaWN0KGNvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ConversionOperationExecutionParamsExecutionParams.md b/docs/ConversionOperationExecutionParamsExecutionParams.md index e32cd8d1..0f24a723 100644 --- a/docs/ConversionOperationExecutionParamsExecutionParams.md +++ b/docs/ConversionOperationExecutionParamsExecutionParams.md @@ -1,33 +1 @@ -# ConversionOperationExecutionParamsExecutionParams - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | **str** | | [optional] -**account_id** | **str** | | [optional] -**src_asset_id** | **str** | | [optional] -**dest_asset_id** | **str** | | [optional] -**slippage_basis_points** | **int** | | [optional] - -## Example - -```python -from fireblocks.models.conversion_operation_execution_params_execution_params import ConversionOperationExecutionParamsExecutionParams - -# TODO update the JSON string below -json = "{}" -# create an instance of ConversionOperationExecutionParamsExecutionParams from a JSON string -conversion_operation_execution_params_execution_params_instance = ConversionOperationExecutionParamsExecutionParams.from_json(json) -# print the JSON string representation of the object -print(ConversionOperationExecutionParamsExecutionParams.to_json()) - -# convert the object into a dict -conversion_operation_execution_params_execution_params_dict = conversion_operation_execution_params_execution_params_instance.to_dict() -# create an instance of ConversionOperationExecutionParamsExecutionParams from a dict -conversion_operation_execution_params_execution_params_from_dict = ConversionOperationExecutionParamsExecutionParams.from_dict(conversion_operation_execution_params_execution_params_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFtb3VudCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqc3JjX2Fzc2V0X2lkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipkZXN0X2Fzc2V0X2lkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipzbGlwcGFnZV9iYXNpc19wb2ludHMqKiB8ICoqaW50KiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtc19leGVjdXRpb25fcGFyYW1zIGltcG9ydCBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zIGZyb20gYSBKU09OIHN0cmluZwpjb252ZXJzaW9uX29wZXJhdGlvbl9leGVjdXRpb25fcGFyYW1zX2V4ZWN1dGlvbl9wYXJhbXNfaW5zdGFuY2UgPSBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29udmVyc2lvbl9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtc19leGVjdXRpb25fcGFyYW1zX2RpY3QgPSBjb252ZXJzaW9uX29wZXJhdGlvbl9leGVjdXRpb25fcGFyYW1zX2V4ZWN1dGlvbl9wYXJhbXNfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMgZnJvbSBhIGRpY3QKY29udmVyc2lvbl9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtc19leGVjdXRpb25fcGFyYW1zX2Zyb21fZGljdCA9IENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMuZnJvbV9kaWN0KGNvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXNfZXhlY3V0aW9uX3BhcmFtc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ConversionOperationFailure.md b/docs/ConversionOperationFailure.md index 7c7f99e1..5017c2c0 100644 --- a/docs/ConversionOperationFailure.md +++ b/docs/ConversionOperationFailure.md @@ -1,30 +1 @@ -# ConversionOperationFailure - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**reason** | **str** | | -**data** | **Dict[str, object]** | | [optional] - -## Example - -```python -from fireblocks.models.conversion_operation_failure import ConversionOperationFailure - -# TODO update the JSON string below -json = "{}" -# create an instance of ConversionOperationFailure from a JSON string -conversion_operation_failure_instance = ConversionOperationFailure.from_json(json) -# print the JSON string representation of the object -print(ConversionOperationFailure.to_json()) - -# convert the object into a dict -conversion_operation_failure_dict = conversion_operation_failure_instance.to_dict() -# create an instance of ConversionOperationFailure from a dict -conversion_operation_failure_from_dict = ConversionOperationFailure.from_dict(conversion_operation_failure_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb252ZXJzaW9uT3BlcmF0aW9uRmFpbHVyZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipyZWFzb24qKiB8ICoqc3RyKiogfCAgfCAKKipkYXRhKiogfCAqKkRpY3Rbc3RyLCBvYmplY3RdKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fZmFpbHVyZSBpbXBvcnQgQ29udmVyc2lvbk9wZXJhdGlvbkZhaWx1cmUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnZlcnNpb25PcGVyYXRpb25GYWlsdXJlIGZyb20gYSBKU09OIHN0cmluZwpjb252ZXJzaW9uX29wZXJhdGlvbl9mYWlsdXJlX2luc3RhbmNlID0gQ29udmVyc2lvbk9wZXJhdGlvbkZhaWx1cmUuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29udmVyc2lvbk9wZXJhdGlvbkZhaWx1cmUudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29udmVyc2lvbl9vcGVyYXRpb25fZmFpbHVyZV9kaWN0ID0gY29udmVyc2lvbl9vcGVyYXRpb25fZmFpbHVyZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udmVyc2lvbk9wZXJhdGlvbkZhaWx1cmUgZnJvbSBhIGRpY3QKY29udmVyc2lvbl9vcGVyYXRpb25fZmFpbHVyZV9mcm9tX2RpY3QgPSBDb252ZXJzaW9uT3BlcmF0aW9uRmFpbHVyZS5mcm9tX2RpY3QoY29udmVyc2lvbl9vcGVyYXRpb25fZmFpbHVyZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ConversionOperationPreview.md b/docs/ConversionOperationPreview.md index dd1ab5ac..28adcbed 100644 --- a/docs/ConversionOperationPreview.md +++ b/docs/ConversionOperationPreview.md @@ -1,31 +1 @@ -# ConversionOperationPreview - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**input** | [**ConversionOperationConfigParams**](ConversionOperationConfigParams.md) | | -**output** | [**ConversionOperationPreviewOutput**](ConversionOperationPreviewOutput.md) | | [optional] -**failure** | [**ConversionOperationFailure**](ConversionOperationFailure.md) | | [optional] - -## Example - -```python -from fireblocks.models.conversion_operation_preview import ConversionOperationPreview - -# TODO update the JSON string below -json = "{}" -# create an instance of ConversionOperationPreview from a JSON string -conversion_operation_preview_instance = ConversionOperationPreview.from_json(json) -# print the JSON string representation of the object -print(ConversionOperationPreview.to_json()) - -# convert the object into a dict -conversion_operation_preview_dict = conversion_operation_preview_instance.to_dict() -# create an instance of ConversionOperationPreview from a dict -conversion_operation_preview_from_dict = ConversionOperationPreview.from_dict(conversion_operation_preview_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb252ZXJzaW9uT3BlcmF0aW9uUHJldmlldwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippbnB1dCoqIHwgWyoqQ29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtcyoqXShDb252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zLm1kKSB8ICB8IAoqKm91dHB1dCoqIHwgWyoqQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXdPdXRwdXQqKl0oQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXdPdXRwdXQubWQpIHwgIHwgW29wdGlvbmFsXSAKKipmYWlsdXJlKiogfCBbKipDb252ZXJzaW9uT3BlcmF0aW9uRmFpbHVyZSoqXShDb252ZXJzaW9uT3BlcmF0aW9uRmFpbHVyZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fcHJldmlldyBpbXBvcnQgQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXcKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnZlcnNpb25PcGVyYXRpb25QcmV2aWV3IGZyb20gYSBKU09OIHN0cmluZwpjb252ZXJzaW9uX29wZXJhdGlvbl9wcmV2aWV3X2luc3RhbmNlID0gQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXcuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXcudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29udmVyc2lvbl9vcGVyYXRpb25fcHJldmlld19kaWN0ID0gY29udmVyc2lvbl9vcGVyYXRpb25fcHJldmlld19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXcgZnJvbSBhIGRpY3QKY29udmVyc2lvbl9vcGVyYXRpb25fcHJldmlld19mcm9tX2RpY3QgPSBDb252ZXJzaW9uT3BlcmF0aW9uUHJldmlldy5mcm9tX2RpY3QoY29udmVyc2lvbl9vcGVyYXRpb25fcHJldmlld19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ConversionOperationPreviewOutput.md b/docs/ConversionOperationPreviewOutput.md index 1899f6f3..4387031f 100644 --- a/docs/ConversionOperationPreviewOutput.md +++ b/docs/ConversionOperationPreviewOutput.md @@ -1,32 +1 @@ -# ConversionOperationPreviewOutput - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | [**AssetAmount**](AssetAmount.md) | | -**fee** | [**AssetAmount**](AssetAmount.md) | | -**conversion_rate** | **str** | | -**time_seconds** | **float** | | - -## Example - -```python -from fireblocks.models.conversion_operation_preview_output import ConversionOperationPreviewOutput - -# TODO update the JSON string below -json = "{}" -# create an instance of ConversionOperationPreviewOutput from a JSON string -conversion_operation_preview_output_instance = ConversionOperationPreviewOutput.from_json(json) -# print the JSON string representation of the object -print(ConversionOperationPreviewOutput.to_json()) - -# convert the object into a dict -conversion_operation_preview_output_dict = conversion_operation_preview_output_instance.to_dict() -# create an instance of ConversionOperationPreviewOutput from a dict -conversion_operation_preview_output_from_dict = ConversionOperationPreviewOutput.from_dict(conversion_operation_preview_output_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb252ZXJzaW9uT3BlcmF0aW9uUHJldmlld091dHB1dAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphbW91bnQqKiB8IFsqKkFzc2V0QW1vdW50KipdKEFzc2V0QW1vdW50Lm1kKSB8ICB8IAoqKmZlZSoqIHwgWyoqQXNzZXRBbW91bnQqKl0oQXNzZXRBbW91bnQubWQpIHwgIHwgCioqY29udmVyc2lvbl9yYXRlKiogfCAqKnN0cioqIHwgIHwgCioqdGltZV9zZWNvbmRzKiogfCAqKmZsb2F0KiogfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX3ByZXZpZXdfb3V0cHV0IGltcG9ydCBDb252ZXJzaW9uT3BlcmF0aW9uUHJldmlld091dHB1dAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXdPdXRwdXQgZnJvbSBhIEpTT04gc3RyaW5nCmNvbnZlcnNpb25fb3BlcmF0aW9uX3ByZXZpZXdfb3V0cHV0X2luc3RhbmNlID0gQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXdPdXRwdXQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXdPdXRwdXQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29udmVyc2lvbl9vcGVyYXRpb25fcHJldmlld19vdXRwdXRfZGljdCA9IGNvbnZlcnNpb25fb3BlcmF0aW9uX3ByZXZpZXdfb3V0cHV0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb252ZXJzaW9uT3BlcmF0aW9uUHJldmlld091dHB1dCBmcm9tIGEgZGljdApjb252ZXJzaW9uX29wZXJhdGlvbl9wcmV2aWV3X291dHB1dF9mcm9tX2RpY3QgPSBDb252ZXJzaW9uT3BlcmF0aW9uUHJldmlld091dHB1dC5mcm9tX2RpY3QoY29udmVyc2lvbl9vcGVyYXRpb25fcHJldmlld19vdXRwdXRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ConversionOperationType.md b/docs/ConversionOperationType.md index b37fa869..22480755 100644 --- a/docs/ConversionOperationType.md +++ b/docs/ConversionOperationType.md @@ -1,10 +1 @@ -# ConversionOperationType - - -## Enum - -* `CONVERSION` (value: `'CONVERSION'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb252ZXJzaW9uT3BlcmF0aW9uVHlwZQoKCiMjIEVudW0KCiogYENPTlZFUlNJT05gICh2YWx1ZTogYCdDT05WRVJTSU9OJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ConversionValidationFailure.md b/docs/ConversionValidationFailure.md index ca8957b6..96ba6349 100644 --- a/docs/ConversionValidationFailure.md +++ b/docs/ConversionValidationFailure.md @@ -1,30 +1 @@ -# ConversionValidationFailure - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**reason** | **str** | | -**data** | **Dict[str, object]** | | [optional] - -## Example - -```python -from fireblocks.models.conversion_validation_failure import ConversionValidationFailure - -# TODO update the JSON string below -json = "{}" -# create an instance of ConversionValidationFailure from a JSON string -conversion_validation_failure_instance = ConversionValidationFailure.from_json(json) -# print the JSON string representation of the object -print(ConversionValidationFailure.to_json()) - -# convert the object into a dict -conversion_validation_failure_dict = conversion_validation_failure_instance.to_dict() -# create an instance of ConversionValidationFailure from a dict -conversion_validation_failure_from_dict = ConversionValidationFailure.from_dict(conversion_validation_failure_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb252ZXJzaW9uVmFsaWRhdGlvbkZhaWx1cmUKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcmVhc29uKiogfCAqKnN0cioqIHwgIHwgCioqZGF0YSoqIHwgKipEaWN0W3N0ciwgb2JqZWN0XSoqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fdmFsaWRhdGlvbl9mYWlsdXJlIGltcG9ydCBDb252ZXJzaW9uVmFsaWRhdGlvbkZhaWx1cmUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnZlcnNpb25WYWxpZGF0aW9uRmFpbHVyZSBmcm9tIGEgSlNPTiBzdHJpbmcKY29udmVyc2lvbl92YWxpZGF0aW9uX2ZhaWx1cmVfaW5zdGFuY2UgPSBDb252ZXJzaW9uVmFsaWRhdGlvbkZhaWx1cmUuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ29udmVyc2lvblZhbGlkYXRpb25GYWlsdXJlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNvbnZlcnNpb25fdmFsaWRhdGlvbl9mYWlsdXJlX2RpY3QgPSBjb252ZXJzaW9uX3ZhbGlkYXRpb25fZmFpbHVyZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udmVyc2lvblZhbGlkYXRpb25GYWlsdXJlIGZyb20gYSBkaWN0CmNvbnZlcnNpb25fdmFsaWRhdGlvbl9mYWlsdXJlX2Zyb21fZGljdCA9IENvbnZlcnNpb25WYWxpZGF0aW9uRmFpbHVyZS5mcm9tX2RpY3QoY29udmVyc2lvbl92YWxpZGF0aW9uX2ZhaWx1cmVfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ConvertAssetsRequest.md b/docs/ConvertAssetsRequest.md index 4a30bd0f..dd732f00 100644 --- a/docs/ConvertAssetsRequest.md +++ b/docs/ConvertAssetsRequest.md @@ -1,31 +1 @@ -# ConvertAssetsRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**src_asset** | **str** | Name of the source asset (must be in a currency that is supported for conversions in the selected exchange type that corresponds to your exchange ID) | -**dest_asset** | **str** | Name of the destination asset (must be in a currency that is supported for conversions in the selected exchange type that corresponds to your exchange ID) | -**amount** | **float** | The amount to transfer (in the currency of the source asset) | - -## Example - -```python -from fireblocks.models.convert_assets_request import ConvertAssetsRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of ConvertAssetsRequest from a JSON string -convert_assets_request_instance = ConvertAssetsRequest.from_json(json) -# print the JSON string representation of the object -print(ConvertAssetsRequest.to_json()) - -# convert the object into a dict -convert_assets_request_dict = convert_assets_request_instance.to_dict() -# create an instance of ConvertAssetsRequest from a dict -convert_assets_request_from_dict = ConvertAssetsRequest.from_dict(convert_assets_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb252ZXJ0QXNzZXRzUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzcmNfYXNzZXQqKiB8ICoqc3RyKiogfCBOYW1lIG9mIHRoZSBzb3VyY2UgYXNzZXQgKG11c3QgYmUgaW4gYSBjdXJyZW5jeSB0aGF0IGlzIHN1cHBvcnRlZCBmb3IgY29udmVyc2lvbnMgaW4gdGhlIHNlbGVjdGVkIGV4Y2hhbmdlIHR5cGUgdGhhdCBjb3JyZXNwb25kcyB0byB5b3VyIGV4Y2hhbmdlIElEKSB8IAoqKmRlc3RfYXNzZXQqKiB8ICoqc3RyKiogfCBOYW1lIG9mIHRoZSBkZXN0aW5hdGlvbiBhc3NldCAobXVzdCBiZSBpbiBhIGN1cnJlbmN5IHRoYXQgaXMgc3VwcG9ydGVkIGZvciBjb252ZXJzaW9ucyBpbiB0aGUgc2VsZWN0ZWQgZXhjaGFuZ2UgdHlwZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHlvdXIgZXhjaGFuZ2UgSUQpIHwgCioqYW1vdW50KiogfCAqKmZsb2F0KiogfCBUaGUgYW1vdW50IHRvIHRyYW5zZmVyIChpbiB0aGUgY3VycmVuY3kgb2YgdGhlIHNvdXJjZSBhc3NldCkgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnRfYXNzZXRzX3JlcXVlc3QgaW1wb3J0IENvbnZlcnRBc3NldHNSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb252ZXJ0QXNzZXRzUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKY29udmVydF9hc3NldHNfcmVxdWVzdF9pbnN0YW5jZSA9IENvbnZlcnRBc3NldHNSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvbnZlcnRBc3NldHNSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNvbnZlcnRfYXNzZXRzX3JlcXVlc3RfZGljdCA9IGNvbnZlcnRfYXNzZXRzX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnZlcnRBc3NldHNSZXF1ZXN0IGZyb20gYSBkaWN0CmNvbnZlcnRfYXNzZXRzX3JlcXVlc3RfZnJvbV9kaWN0ID0gQ29udmVydEFzc2V0c1JlcXVlc3QuZnJvbV9kaWN0KGNvbnZlcnRfYXNzZXRzX3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ConvertAssetsResponse.md b/docs/ConvertAssetsResponse.md index 675004d4..5e7cd4eb 100644 --- a/docs/ConvertAssetsResponse.md +++ b/docs/ConvertAssetsResponse.md @@ -1,29 +1 @@ -# ConvertAssetsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**success** | **bool** | Indicates whether the conversion was successful | - -## Example - -```python -from fireblocks.models.convert_assets_response import ConvertAssetsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ConvertAssetsResponse from a JSON string -convert_assets_response_instance = ConvertAssetsResponse.from_json(json) -# print the JSON string representation of the object -print(ConvertAssetsResponse.to_json()) - -# convert the object into a dict -convert_assets_response_dict = convert_assets_response_instance.to_dict() -# create an instance of ConvertAssetsResponse from a dict -convert_assets_response_from_dict = ConvertAssetsResponse.from_dict(convert_assets_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb252ZXJ0QXNzZXRzUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3VjY2VzcyoqIHwgKipib29sKiogfCBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY29udmVyc2lvbiB3YXMgc3VjY2Vzc2Z1bCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVydF9hc3NldHNfcmVzcG9uc2UgaW1wb3J0IENvbnZlcnRBc3NldHNSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udmVydEFzc2V0c1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpjb252ZXJ0X2Fzc2V0c19yZXNwb25zZV9pbnN0YW5jZSA9IENvbnZlcnRBc3NldHNSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDb252ZXJ0QXNzZXRzUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY29udmVydF9hc3NldHNfcmVzcG9uc2VfZGljdCA9IGNvbnZlcnRfYXNzZXRzX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb252ZXJ0QXNzZXRzUmVzcG9uc2UgZnJvbSBhIGRpY3QKY29udmVydF9hc3NldHNfcmVzcG9uc2VfZnJvbV9kaWN0ID0gQ29udmVydEFzc2V0c1Jlc3BvbnNlLmZyb21fZGljdChjb252ZXJ0X2Fzc2V0c19yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/Cosigner.md b/docs/Cosigner.md index 23566b51..236bad76 100644 --- a/docs/Cosigner.md +++ b/docs/Cosigner.md @@ -1,33 +1 @@ -# Cosigner - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**archived** | **bool** | Whether the cosigner is archived | -**id** | **str** | The unique identifier of the cosigner | -**name** | **str** | The name of the cosigner | [optional] -**type** | **str** | The type of the cosigner | [optional] -**version** | [**VersionSummary**](VersionSummary.md) | | [optional] - -## Example - -```python -from fireblocks.models.cosigner import Cosigner - -# TODO update the JSON string below -json = "{}" -# create an instance of Cosigner from a JSON string -cosigner_instance = Cosigner.from_json(json) -# print the JSON string representation of the object -print(Cosigner.to_json()) - -# convert the object into a dict -cosigner_dict = cosigner_instance.to_dict() -# create an instance of Cosigner from a dict -cosigner_from_dict = Cosigner.from_dict(cosigner_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb3NpZ25lcgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphcmNoaXZlZCoqIHwgKipib29sKiogfCBXaGV0aGVyIHRoZSBjb3NpZ25lciBpcyBhcmNoaXZlZCB8IAoqKmlkKiogfCAqKnN0cioqIHwgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb3NpZ25lciB8IAoqKm5hbWUqKiB8ICoqc3RyKiogfCBUaGUgbmFtZSBvZiB0aGUgY29zaWduZXIgfCBbb3B0aW9uYWxdIAoqKnR5cGUqKiB8ICoqc3RyKiogfCBUaGUgdHlwZSBvZiB0aGUgY29zaWduZXIgfCBbb3B0aW9uYWxdIAoqKnZlcnNpb24qKiB8IFsqKlZlcnNpb25TdW1tYXJ5KipdKFZlcnNpb25TdW1tYXJ5Lm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb3NpZ25lciBpbXBvcnQgQ29zaWduZXIKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvc2lnbmVyIGZyb20gYSBKU09OIHN0cmluZwpjb3NpZ25lcl9pbnN0YW5jZSA9IENvc2lnbmVyLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvc2lnbmVyLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNvc2lnbmVyX2RpY3QgPSBjb3NpZ25lcl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29zaWduZXIgZnJvbSBhIGRpY3QKY29zaWduZXJfZnJvbV9kaWN0ID0gQ29zaWduZXIuZnJvbV9kaWN0KGNvc2lnbmVyX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/CosignersBetaApi.md b/docs/CosignersBetaApi.md index 62459ae7..6bbcc4ef 100644 --- a/docs/CosignersBetaApi.md +++ b/docs/CosignersBetaApi.md @@ -1,809 +1 @@ -# fireblocks.CosignersBetaApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**add_cosigner**](CosignersBetaApi.md#add_cosigner) | **POST** /cosigners | Add cosigner -[**get_api_key**](CosignersBetaApi.md#get_api_key) | **GET** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Get API key -[**get_api_keys**](CosignersBetaApi.md#get_api_keys) | **GET** /cosigners/{cosignerId}/api_keys | Get all API keys -[**get_cosigner**](CosignersBetaApi.md#get_cosigner) | **GET** /cosigners/{cosignerId} | Get cosigner -[**get_cosigners**](CosignersBetaApi.md#get_cosigners) | **GET** /cosigners | Get all cosigners -[**get_request_status**](CosignersBetaApi.md#get_request_status) | **GET** /cosigners/{cosignerId}/api_keys/{apiKeyId}/{requestId} | Get request status -[**pair_api_key**](CosignersBetaApi.md#pair_api_key) | **PUT** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Pair API key -[**rename_cosigner**](CosignersBetaApi.md#rename_cosigner) | **PATCH** /cosigners/{cosignerId} | Rename cosigner -[**unpair_api_key**](CosignersBetaApi.md#unpair_api_key) | **DELETE** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Unpair API key -[**update_callback_handler**](CosignersBetaApi.md#update_callback_handler) | **PATCH** /cosigners/{cosignerId}/api_keys/{apiKeyId} | Update API key callback handler - - -# **add_cosigner** -> AddCosignerResponse add_cosigner(add_cosigner_request, idempotency_key=idempotency_key) - -Add cosigner - -Add a new cosigner. The cosigner will be pending pairing until the API key is manually paired -
Endpoint Permission: Admin and Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.add_cosigner_request import AddCosignerRequest -from fireblocks.models.add_cosigner_response import AddCosignerResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - add_cosigner_request = fireblocks.AddCosignerRequest() # AddCosignerRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Add cosigner - api_response = fireblocks.cosigners_beta.add_cosigner(add_cosigner_request, idempotency_key=idempotency_key).result() - print("The response of CosignersBetaApi->add_cosigner:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling CosignersBetaApi->add_cosigner: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **add_cosigner_request** | [**AddCosignerRequest**](AddCosignerRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**AddCosignerResponse**](AddCosignerResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Pending cosigner added | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_api_key** -> ApiKey get_api_key(cosigner_id, api_key_id) - -Get API key - -Get an API key by ID. -**Note:** These endpoints are currently in beta and might be subject to changes. -
Endpoint Permission: Admin and Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.api_key import ApiKey -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - cosigner_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the cosigner - api_key_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the API key - - try: - # Get API key - api_response = fireblocks.cosigners_beta.get_api_key(cosigner_id, api_key_id).result() - print("The response of CosignersBetaApi->get_api_key:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling CosignersBetaApi->get_api_key: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **cosigner_id** | **str**| The unique identifier of the cosigner | - **api_key_id** | **str**| The unique identifier of the API key | - -### Return type - -[**ApiKey**](ApiKey.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | An ApiKey object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_api_keys** -> ApiKeysPaginatedResponse get_api_keys(cosigner_id, order=order, page_cursor=page_cursor, page_size=page_size) - -Get all API keys - -Get all cosigner paired API keys (paginated). -**Note:** These endpoints are currently in beta and might be subject to changes. -
Endpoint Permission: Admin and Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.api_keys_paginated_response import ApiKeysPaginatedResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - cosigner_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the cosigner - order = DESC # str | ASC / DESC ordering (default DESC) (optional) (default to DESC) - page_cursor = 'page_cursor_example' # str | Cursor of the required page (optional) - page_size = 10 # float | Maximum number of items in the page (optional) (default to 10) - - try: - # Get all API keys - api_response = fireblocks.cosigners_beta.get_api_keys(cosigner_id, order=order, page_cursor=page_cursor, page_size=page_size).result() - print("The response of CosignersBetaApi->get_api_keys:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling CosignersBetaApi->get_api_keys: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **cosigner_id** | **str**| The unique identifier of the cosigner | - **order** | **str**| ASC / DESC ordering (default DESC) | [optional] [default to DESC] - **page_cursor** | **str**| Cursor of the required page | [optional] - **page_size** | **float**| Maximum number of items in the page | [optional] [default to 10] - -### Return type - -[**ApiKeysPaginatedResponse**](ApiKeysPaginatedResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A paginated response containing ApiKey objects | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_cosigner** -> Cosigner get_cosigner(cosigner_id) - -Get cosigner - -Get a cosigner by ID. -**Note:** These endpoints are currently in beta and might be subject to changes. -
Endpoint Permission: Admin and Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.cosigner import Cosigner -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - cosigner_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the cosigner - - try: - # Get cosigner - api_response = fireblocks.cosigners_beta.get_cosigner(cosigner_id).result() - print("The response of CosignersBetaApi->get_cosigner:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling CosignersBetaApi->get_cosigner: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **cosigner_id** | **str**| The unique identifier of the cosigner | - -### Return type - -[**Cosigner**](Cosigner.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A cosigner object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_cosigners** -> CosignersPaginatedResponse get_cosigners(order=order, page_cursor=page_cursor, page_size=page_size) - -Get all cosigners - -Get all workspace cosigners (paginated). -**Note:** These endpoints are currently in beta and might be subject to changes. -
Endpoint Permission: Admin and Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.cosigners_paginated_response import CosignersPaginatedResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - order = DESC # str | ASC / DESC ordering (default DESC) (optional) (default to DESC) - page_cursor = 'page_cursor_example' # str | Cursor of the required page (optional) - page_size = 10 # float | Maximum number of items in the page (optional) (default to 10) - - try: - # Get all cosigners - api_response = fireblocks.cosigners_beta.get_cosigners(order=order, page_cursor=page_cursor, page_size=page_size).result() - print("The response of CosignersBetaApi->get_cosigners:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling CosignersBetaApi->get_cosigners: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **order** | **str**| ASC / DESC ordering (default DESC) | [optional] [default to DESC] - **page_cursor** | **str**| Cursor of the required page | [optional] - **page_size** | **float**| Maximum number of items in the page | [optional] [default to 10] - -### Return type - -[**CosignersPaginatedResponse**](CosignersPaginatedResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A paginated response containing Cosigner objects | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_request_status** -> Status get_request_status(cosigner_id, api_key_id, request_id) - -Get request status - -Get the status of an asynchronous request -
Endpoint Permission: Admin and Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.status import Status -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - cosigner_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the cosigner - api_key_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the API key - request_id = 'request_id_example' # str | - - try: - # Get request status - api_response = fireblocks.cosigners_beta.get_request_status(cosigner_id, api_key_id, request_id).result() - print("The response of CosignersBetaApi->get_request_status:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling CosignersBetaApi->get_request_status: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **cosigner_id** | **str**| The unique identifier of the cosigner | - **api_key_id** | **str**| The unique identifier of the API key | - **request_id** | **str**| | - -### Return type - -[**Status**](Status.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | The status of the request | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **pair_api_key** -> PairApiKeyResponse pair_api_key(cosigner_id, api_key_id, pair_api_key_request, idempotency_key=idempotency_key) - -Pair API key - -Pair an API key to a cosigner -
Endpoint Permission: Admin and Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.pair_api_key_request import PairApiKeyRequest -from fireblocks.models.pair_api_key_response import PairApiKeyResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - cosigner_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the cosigner - api_key_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the API key - pair_api_key_request = fireblocks.PairApiKeyRequest() # PairApiKeyRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Pair API key - api_response = fireblocks.cosigners_beta.pair_api_key(cosigner_id, api_key_id, pair_api_key_request, idempotency_key=idempotency_key).result() - print("The response of CosignersBetaApi->pair_api_key:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling CosignersBetaApi->pair_api_key: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **cosigner_id** | **str**| The unique identifier of the cosigner | - **api_key_id** | **str**| The unique identifier of the API key | - **pair_api_key_request** | [**PairApiKeyRequest**](PairApiKeyRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**PairApiKeyResponse**](PairApiKeyResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**202** | The API key object to be paired | * X-Request-ID -
* Location -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **rename_cosigner** -> Cosigner rename_cosigner(cosigner_id, rename_cosigner) - -Rename cosigner - -Rename a cosigner by ID. -**Note:** These endpoints are currently in beta and might be subject to changes. -
Endpoint Permission: Admin and Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.cosigner import Cosigner -from fireblocks.models.rename_cosigner import RenameCosigner -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - cosigner_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the cosigner - rename_cosigner = fireblocks.RenameCosigner() # RenameCosigner | - - try: - # Rename cosigner - api_response = fireblocks.cosigners_beta.rename_cosigner(cosigner_id, rename_cosigner).result() - print("The response of CosignersBetaApi->rename_cosigner:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling CosignersBetaApi->rename_cosigner: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **cosigner_id** | **str**| The unique identifier of the cosigner | - **rename_cosigner** | [**RenameCosigner**](RenameCosigner.md)| | - -### Return type - -[**Cosigner**](Cosigner.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A cosigner object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **unpair_api_key** -> ApiKey unpair_api_key(cosigner_id, api_key_id) - -Unpair API key - -Unpair an API key from a cosigner -
Endpoint Permission: Admin and Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.api_key import ApiKey -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - cosigner_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the cosigner - api_key_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the API key - - try: - # Unpair API key - api_response = fireblocks.cosigners_beta.unpair_api_key(cosigner_id, api_key_id).result() - print("The response of CosignersBetaApi->unpair_api_key:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling CosignersBetaApi->unpair_api_key: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **cosigner_id** | **str**| The unique identifier of the cosigner | - **api_key_id** | **str**| The unique identifier of the API key | - -### Return type - -[**ApiKey**](ApiKey.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**202** | The API key object to be unpaired | * X-Request-ID -
* Location -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_callback_handler** -> UpdateCallbackHandlerResponse update_callback_handler(cosigner_id, api_key_id, update_callback_handler_request) - -Update API key callback handler - -Update the callback handler of an API key -
Endpoint Permission: Admin and Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.update_callback_handler_request import UpdateCallbackHandlerRequest -from fireblocks.models.update_callback_handler_response import UpdateCallbackHandlerResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - cosigner_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the cosigner - api_key_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the API key - update_callback_handler_request = fireblocks.UpdateCallbackHandlerRequest() # UpdateCallbackHandlerRequest | - - try: - # Update API key callback handler - api_response = fireblocks.cosigners_beta.update_callback_handler(cosigner_id, api_key_id, update_callback_handler_request).result() - print("The response of CosignersBetaApi->update_callback_handler:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling CosignersBetaApi->update_callback_handler: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **cosigner_id** | **str**| The unique identifier of the cosigner | - **api_key_id** | **str**| The unique identifier of the API key | - **update_callback_handler_request** | [**UpdateCallbackHandlerRequest**](UpdateCallbackHandlerRequest.md)| | - -### Return type - -[**UpdateCallbackHandlerResponse**](UpdateCallbackHandlerResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**202** | The API key object with the new callback handler | * X-Request-ID -
* Location -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLkNvc2lnbmVyc0JldGFBcGkKCkFsbCBVUklzIGFyZSByZWxhdGl2ZSB0byAqaHR0cHM6Ly9hcGkuZmlyZWJsb2Nrcy5pby92MSoKCk1ldGhvZCB8IEhUVFAgcmVxdWVzdCB8IERlc2NyaXB0aW9uCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQpbKiphZGRfY29zaWduZXIqKl0oQ29zaWduZXJzQmV0YUFwaS5tZCNhZGRfY29zaWduZXIpIHwgKipQT1NUKiogL2Nvc2lnbmVycyB8IEFkZCBjb3NpZ25lcgpbKipnZXRfYXBpX2tleSoqXShDb3NpZ25lcnNCZXRhQXBpLm1kI2dldF9hcGlfa2V5KSB8ICoqR0VUKiogL2Nvc2lnbmVycy97Y29zaWduZXJJZH0vYXBpX2tleXMve2FwaUtleUlkfSB8IEdldCBBUEkga2V5ClsqKmdldF9hcGlfa2V5cyoqXShDb3NpZ25lcnNCZXRhQXBpLm1kI2dldF9hcGlfa2V5cykgfCAqKkdFVCoqIC9jb3NpZ25lcnMve2Nvc2lnbmVySWR9L2FwaV9rZXlzIHwgR2V0IGFsbCBBUEkga2V5cwpbKipnZXRfY29zaWduZXIqKl0oQ29zaWduZXJzQmV0YUFwaS5tZCNnZXRfY29zaWduZXIpIHwgKipHRVQqKiAvY29zaWduZXJzL3tjb3NpZ25lcklkfSB8IEdldCBjb3NpZ25lcgpbKipnZXRfY29zaWduZXJzKipdKENvc2lnbmVyc0JldGFBcGkubWQjZ2V0X2Nvc2lnbmVycykgfCAqKkdFVCoqIC9jb3NpZ25lcnMgfCBHZXQgYWxsIGNvc2lnbmVycwpbKipnZXRfcmVxdWVzdF9zdGF0dXMqKl0oQ29zaWduZXJzQmV0YUFwaS5tZCNnZXRfcmVxdWVzdF9zdGF0dXMpIHwgKipHRVQqKiAvY29zaWduZXJzL3tjb3NpZ25lcklkfS9hcGlfa2V5cy97YXBpS2V5SWR9L3tyZXF1ZXN0SWR9IHwgR2V0IHJlcXVlc3Qgc3RhdHVzClsqKnBhaXJfYXBpX2tleSoqXShDb3NpZ25lcnNCZXRhQXBpLm1kI3BhaXJfYXBpX2tleSkgfCAqKlBVVCoqIC9jb3NpZ25lcnMve2Nvc2lnbmVySWR9L2FwaV9rZXlzL3thcGlLZXlJZH0gfCBQYWlyIEFQSSBrZXkKWyoqcmVuYW1lX2Nvc2lnbmVyKipdKENvc2lnbmVyc0JldGFBcGkubWQjcmVuYW1lX2Nvc2lnbmVyKSB8ICoqUEFUQ0gqKiAvY29zaWduZXJzL3tjb3NpZ25lcklkfSB8IFJlbmFtZSBjb3NpZ25lcgpbKip1bnBhaXJfYXBpX2tleSoqXShDb3NpZ25lcnNCZXRhQXBpLm1kI3VucGFpcl9hcGlfa2V5KSB8ICoqREVMRVRFKiogL2Nvc2lnbmVycy97Y29zaWduZXJJZH0vYXBpX2tleXMve2FwaUtleUlkfSB8IFVucGFpciBBUEkga2V5ClsqKnVwZGF0ZV9jYWxsYmFja19oYW5kbGVyKipdKENvc2lnbmVyc0JldGFBcGkubWQjdXBkYXRlX2NhbGxiYWNrX2hhbmRsZXIpIHwgKipQQVRDSCoqIC9jb3NpZ25lcnMve2Nvc2lnbmVySWR9L2FwaV9rZXlzL3thcGlLZXlJZH0gfCBVcGRhdGUgQVBJIGtleSBjYWxsYmFjayBoYW5kbGVyCgoKIyAqKmFkZF9jb3NpZ25lcioqCj4gQWRkQ29zaWduZXJSZXNwb25zZSBhZGRfY29zaWduZXIoYWRkX2Nvc2lnbmVyX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpBZGQgY29zaWduZXIKCkFkZCBhIG5ldyBjb3NpZ25lci4gVGhlIGNvc2lnbmVyIHdpbGwgYmUgcGVuZGluZyBwYWlyaW5nIHVudGlsIHRoZSBBUEkga2V5IGlzIG1hbnVhbGx5IHBhaXJlZAo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluIGFuZCBOb24tU2lnbmluZyBBZG1pbi4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkX2Nvc2lnbmVyX3JlcXVlc3QgaW1wb3J0IEFkZENvc2lnbmVyUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZF9jb3NpZ25lcl9yZXNwb25zZSBpbXBvcnQgQWRkQ29zaWduZXJSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBhZGRfY29zaWduZXJfcmVxdWVzdCA9IGZpcmVibG9ja3MuQWRkQ29zaWduZXJSZXF1ZXN0KCkgIyBBZGRDb3NpZ25lclJlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBBZGQgY29zaWduZXIKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmNvc2lnbmVyc19iZXRhLmFkZF9jb3NpZ25lcihhZGRfY29zaWduZXJfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIENvc2lnbmVyc0JldGFBcGktPmFkZF9jb3NpZ25lcjpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBDb3NpZ25lcnNCZXRhQXBpLT5hZGRfY29zaWduZXI6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmFkZF9jb3NpZ25lcl9yZXF1ZXN0KiogfCBbKipBZGRDb3NpZ25lclJlcXVlc3QqKl0oQWRkQ29zaWduZXJSZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkFkZENvc2lnbmVyUmVzcG9uc2UqKl0oQWRkQ29zaWduZXJSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgUGVuZGluZyBjb3NpZ25lciBhZGRlZCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2FwaV9rZXkqKgo+IEFwaUtleSBnZXRfYXBpX2tleShjb3NpZ25lcl9pZCwgYXBpX2tleV9pZCkKCkdldCBBUEkga2V5CgpHZXQgYW4gQVBJIGtleSBieSBJRC4KKipOb3RlOioqIFRoZXNlIGVuZHBvaW50cyBhcmUgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy4KPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiBhbmQgTm9uLVNpZ25pbmcgQWRtaW4uCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFwaV9rZXkgaW1wb3J0IEFwaUtleQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjb3NpZ25lcl9pZCA9ICc0NGZjZWFkMC03MDUzLTQ4MzEtYTUzYS1kZjdmYjkwZDQ0MGYnICMgc3RyIHwgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb3NpZ25lcgogICAgYXBpX2tleV9pZCA9ICc0NGZjZWFkMC03MDUzLTQ4MzEtYTUzYS1kZjdmYjkwZDQ0MGYnICMgc3RyIHwgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBBUEkga2V5CgogICAgdHJ5OgogICAgICAgICMgR2V0IEFQSSBrZXkKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmNvc2lnbmVyc19iZXRhLmdldF9hcGlfa2V5KGNvc2lnbmVyX2lkLCBhcGlfa2V5X2lkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgQ29zaWduZXJzQmV0YUFwaS0+Z2V0X2FwaV9rZXk6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQ29zaWduZXJzQmV0YUFwaS0+Z2V0X2FwaV9rZXk6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmNvc2lnbmVyX2lkKiogfCAqKnN0cioqfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvc2lnbmVyIHwgCiAqKmFwaV9rZXlfaWQqKiB8ICoqc3RyKip8IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgQVBJIGtleSB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipBcGlLZXkqKl0oQXBpS2V5Lm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQW4gQXBpS2V5IG9iamVjdCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2FwaV9rZXlzKioKPiBBcGlLZXlzUGFnaW5hdGVkUmVzcG9uc2UgZ2V0X2FwaV9rZXlzKGNvc2lnbmVyX2lkLCBvcmRlcj1vcmRlciwgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUpCgpHZXQgYWxsIEFQSSBrZXlzCgpHZXQgYWxsIGNvc2lnbmVyIHBhaXJlZCBBUEkga2V5cyAocGFnaW5hdGVkKS4KKipOb3RlOioqIFRoZXNlIGVuZHBvaW50cyBhcmUgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy4KPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiBhbmQgTm9uLVNpZ25pbmcgQWRtaW4uCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFwaV9rZXlzX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgQXBpS2V5c1BhZ2luYXRlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGNvc2lnbmVyX2lkID0gJzQ0ZmNlYWQwLTcwNTMtNDgzMS1hNTNhLWRmN2ZiOTBkNDQwZicgIyBzdHIgfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvc2lnbmVyCiAgICBvcmRlciA9IERFU0MgIyBzdHIgfCBBU0MgLyBERVNDIG9yZGVyaW5nIChkZWZhdWx0IERFU0MpIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gREVTQykKICAgIHBhZ2VfY3Vyc29yID0gJ3BhZ2VfY3Vyc29yX2V4YW1wbGUnICMgc3RyIHwgQ3Vyc29yIG9mIHRoZSByZXF1aXJlZCBwYWdlIChvcHRpb25hbCkKICAgIHBhZ2Vfc2l6ZSA9IDEwICMgZmxvYXQgfCBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgcGFnZSAob3B0aW9uYWwpIChkZWZhdWx0IHRvIDEwKQoKICAgIHRyeToKICAgICAgICAjIEdldCBhbGwgQVBJIGtleXMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmNvc2lnbmVyc19iZXRhLmdldF9hcGlfa2V5cyhjb3NpZ25lcl9pZCwgb3JkZXI9b3JkZXIsIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgQ29zaWduZXJzQmV0YUFwaS0+Z2V0X2FwaV9rZXlzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIENvc2lnbmVyc0JldGFBcGktPmdldF9hcGlfa2V5czogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqY29zaWduZXJfaWQqKiB8ICoqc3RyKip8IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29zaWduZXIgfCAKICoqb3JkZXIqKiB8ICoqc3RyKip8IEFTQyAvIERFU0Mgb3JkZXJpbmcgKGRlZmF1bHQgREVTQykgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIERFU0NdCiAqKnBhZ2VfY3Vyc29yKiogfCAqKnN0cioqfCBDdXJzb3Igb2YgdGhlIHJlcXVpcmVkIHBhZ2UgfCBbb3B0aW9uYWxdIAogKipwYWdlX3NpemUqKiB8ICoqZmxvYXQqKnwgTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgaW4gdGhlIHBhZ2UgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIDEwXQoKIyMjIFJldHVybiB0eXBlCgpbKipBcGlLZXlzUGFnaW5hdGVkUmVzcG9uc2UqKl0oQXBpS2V5c1BhZ2luYXRlZFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQSBwYWdpbmF0ZWQgcmVzcG9uc2UgY29udGFpbmluZyBBcGlLZXkgb2JqZWN0cyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2Nvc2lnbmVyKioKPiBDb3NpZ25lciBnZXRfY29zaWduZXIoY29zaWduZXJfaWQpCgpHZXQgY29zaWduZXIKCkdldCBhIGNvc2lnbmVyIGJ5IElELgoqKk5vdGU6KiogVGhlc2UgZW5kcG9pbnRzIGFyZSBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluIGFuZCBOb24tU2lnbmluZyBBZG1pbi4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29zaWduZXIgaW1wb3J0IENvc2lnbmVyCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGNvc2lnbmVyX2lkID0gJzQ0ZmNlYWQwLTcwNTMtNDgzMS1hNTNhLWRmN2ZiOTBkNDQwZicgIyBzdHIgfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvc2lnbmVyCgogICAgdHJ5OgogICAgICAgICMgR2V0IGNvc2lnbmVyCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5jb3NpZ25lcnNfYmV0YS5nZXRfY29zaWduZXIoY29zaWduZXJfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBDb3NpZ25lcnNCZXRhQXBpLT5nZXRfY29zaWduZXI6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQ29zaWduZXJzQmV0YUFwaS0+Z2V0X2Nvc2lnbmVyOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjb3NpZ25lcl9pZCoqIHwgKipzdHIqKnwgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb3NpZ25lciB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipDb3NpZ25lcioqXShDb3NpZ25lci5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgY29zaWduZXIgb2JqZWN0IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfY29zaWduZXJzKioKPiBDb3NpZ25lcnNQYWdpbmF0ZWRSZXNwb25zZSBnZXRfY29zaWduZXJzKG9yZGVyPW9yZGVyLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSkKCkdldCBhbGwgY29zaWduZXJzCgpHZXQgYWxsIHdvcmtzcGFjZSBjb3NpZ25lcnMgKHBhZ2luYXRlZCkuCioqTm90ZToqKiBUaGVzZSBlbmRwb2ludHMgYXJlIGN1cnJlbnRseSBpbiBiZXRhIGFuZCBtaWdodCBiZSBzdWJqZWN0IHRvIGNoYW5nZXMuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4gYW5kIE5vbi1TaWduaW5nIEFkbWluLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb3NpZ25lcnNfcGFnaW5hdGVkX3Jlc3BvbnNlIGltcG9ydCBDb3NpZ25lcnNQYWdpbmF0ZWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBvcmRlciA9IERFU0MgIyBzdHIgfCBBU0MgLyBERVNDIG9yZGVyaW5nIChkZWZhdWx0IERFU0MpIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gREVTQykKICAgIHBhZ2VfY3Vyc29yID0gJ3BhZ2VfY3Vyc29yX2V4YW1wbGUnICMgc3RyIHwgQ3Vyc29yIG9mIHRoZSByZXF1aXJlZCBwYWdlIChvcHRpb25hbCkKICAgIHBhZ2Vfc2l6ZSA9IDEwICMgZmxvYXQgfCBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgcGFnZSAob3B0aW9uYWwpIChkZWZhdWx0IHRvIDEwKQoKICAgIHRyeToKICAgICAgICAjIEdldCBhbGwgY29zaWduZXJzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5jb3NpZ25lcnNfYmV0YS5nZXRfY29zaWduZXJzKG9yZGVyPW9yZGVyLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIENvc2lnbmVyc0JldGFBcGktPmdldF9jb3NpZ25lcnM6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQ29zaWduZXJzQmV0YUFwaS0+Z2V0X2Nvc2lnbmVyczogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqb3JkZXIqKiB8ICoqc3RyKip8IEFTQyAvIERFU0Mgb3JkZXJpbmcgKGRlZmF1bHQgREVTQykgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIERFU0NdCiAqKnBhZ2VfY3Vyc29yKiogfCAqKnN0cioqfCBDdXJzb3Igb2YgdGhlIHJlcXVpcmVkIHBhZ2UgfCBbb3B0aW9uYWxdIAogKipwYWdlX3NpemUqKiB8ICoqZmxvYXQqKnwgTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgaW4gdGhlIHBhZ2UgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIDEwXQoKIyMjIFJldHVybiB0eXBlCgpbKipDb3NpZ25lcnNQYWdpbmF0ZWRSZXNwb25zZSoqXShDb3NpZ25lcnNQYWdpbmF0ZWRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgcGFnaW5hdGVkIHJlc3BvbnNlIGNvbnRhaW5pbmcgQ29zaWduZXIgb2JqZWN0cyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X3JlcXVlc3Rfc3RhdHVzKioKPiBTdGF0dXMgZ2V0X3JlcXVlc3Rfc3RhdHVzKGNvc2lnbmVyX2lkLCBhcGlfa2V5X2lkLCByZXF1ZXN0X2lkKQoKR2V0IHJlcXVlc3Qgc3RhdHVzCgpHZXQgdGhlIHN0YXR1cyBvZiBhbiBhc3luY2hyb25vdXMgcmVxdWVzdAo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluIGFuZCBOb24tU2lnbmluZyBBZG1pbi4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3RhdHVzIGltcG9ydCBTdGF0dXMKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY29zaWduZXJfaWQgPSAnNDRmY2VhZDAtNzA1My00ODMxLWE1M2EtZGY3ZmI5MGQ0NDBmJyAjIHN0ciB8IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29zaWduZXIKICAgIGFwaV9rZXlfaWQgPSAnNDRmY2VhZDAtNzA1My00ODMxLWE1M2EtZGY3ZmI5MGQ0NDBmJyAjIHN0ciB8IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgQVBJIGtleQogICAgcmVxdWVzdF9pZCA9ICdyZXF1ZXN0X2lkX2V4YW1wbGUnICMgc3RyIHwgCgogICAgdHJ5OgogICAgICAgICMgR2V0IHJlcXVlc3Qgc3RhdHVzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5jb3NpZ25lcnNfYmV0YS5nZXRfcmVxdWVzdF9zdGF0dXMoY29zaWduZXJfaWQsIGFwaV9rZXlfaWQsIHJlcXVlc3RfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBDb3NpZ25lcnNCZXRhQXBpLT5nZXRfcmVxdWVzdF9zdGF0dXM6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQ29zaWduZXJzQmV0YUFwaS0+Z2V0X3JlcXVlc3Rfc3RhdHVzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjb3NpZ25lcl9pZCoqIHwgKipzdHIqKnwgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb3NpZ25lciB8IAogKiphcGlfa2V5X2lkKiogfCAqKnN0cioqfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIEFQSSBrZXkgfCAKICoqcmVxdWVzdF9pZCoqIHwgKipzdHIqKnwgIHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKlN0YXR1cyoqXShTdGF0dXMubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBUaGUgc3RhdHVzIG9mIHRoZSByZXF1ZXN0IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipwYWlyX2FwaV9rZXkqKgo+IFBhaXJBcGlLZXlSZXNwb25zZSBwYWlyX2FwaV9rZXkoY29zaWduZXJfaWQsIGFwaV9rZXlfaWQsIHBhaXJfYXBpX2tleV9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKUGFpciBBUEkga2V5CgpQYWlyIGFuIEFQSSBrZXkgdG8gYSBjb3NpZ25lcgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluIGFuZCBOb24tU2lnbmluZyBBZG1pbi4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFpcl9hcGlfa2V5X3JlcXVlc3QgaW1wb3J0IFBhaXJBcGlLZXlSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFpcl9hcGlfa2V5X3Jlc3BvbnNlIGltcG9ydCBQYWlyQXBpS2V5UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY29zaWduZXJfaWQgPSAnNDRmY2VhZDAtNzA1My00ODMxLWE1M2EtZGY3ZmI5MGQ0NDBmJyAjIHN0ciB8IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29zaWduZXIKICAgIGFwaV9rZXlfaWQgPSAnNDRmY2VhZDAtNzA1My00ODMxLWE1M2EtZGY3ZmI5MGQ0NDBmJyAjIHN0ciB8IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgQVBJIGtleQogICAgcGFpcl9hcGlfa2V5X3JlcXVlc3QgPSBmaXJlYmxvY2tzLlBhaXJBcGlLZXlSZXF1ZXN0KCkgIyBQYWlyQXBpS2V5UmVxdWVzdCB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIFBhaXIgQVBJIGtleQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuY29zaWduZXJzX2JldGEucGFpcl9hcGlfa2V5KGNvc2lnbmVyX2lkLCBhcGlfa2V5X2lkLCBwYWlyX2FwaV9rZXlfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIENvc2lnbmVyc0JldGFBcGktPnBhaXJfYXBpX2tleTpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBDb3NpZ25lcnNCZXRhQXBpLT5wYWlyX2FwaV9rZXk6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmNvc2lnbmVyX2lkKiogfCAqKnN0cioqfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvc2lnbmVyIHwgCiAqKmFwaV9rZXlfaWQqKiB8ICoqc3RyKip8IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgQVBJIGtleSB8IAogKipwYWlyX2FwaV9rZXlfcmVxdWVzdCoqIHwgWyoqUGFpckFwaUtleVJlcXVlc3QqKl0oUGFpckFwaUtleVJlcXVlc3QubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqUGFpckFwaUtleVJlc3BvbnNlKipdKFBhaXJBcGlLZXlSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMioqIHwgVGhlIEFQSSBrZXkgb2JqZWN0IHRvIGJlIHBhaXJlZCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICAqIExvY2F0aW9uIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipyZW5hbWVfY29zaWduZXIqKgo+IENvc2lnbmVyIHJlbmFtZV9jb3NpZ25lcihjb3NpZ25lcl9pZCwgcmVuYW1lX2Nvc2lnbmVyKQoKUmVuYW1lIGNvc2lnbmVyCgpSZW5hbWUgYSBjb3NpZ25lciBieSBJRC4KKipOb3RlOioqIFRoZXNlIGVuZHBvaW50cyBhcmUgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy4KPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiBhbmQgTm9uLVNpZ25pbmcgQWRtaW4uCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvc2lnbmVyIGltcG9ydCBDb3NpZ25lcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbmFtZV9jb3NpZ25lciBpbXBvcnQgUmVuYW1lQ29zaWduZXIKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY29zaWduZXJfaWQgPSAnNDRmY2VhZDAtNzA1My00ODMxLWE1M2EtZGY3ZmI5MGQ0NDBmJyAjIHN0ciB8IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29zaWduZXIKICAgIHJlbmFtZV9jb3NpZ25lciA9IGZpcmVibG9ja3MuUmVuYW1lQ29zaWduZXIoKSAjIFJlbmFtZUNvc2lnbmVyIHwgCgogICAgdHJ5OgogICAgICAgICMgUmVuYW1lIGNvc2lnbmVyCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5jb3NpZ25lcnNfYmV0YS5yZW5hbWVfY29zaWduZXIoY29zaWduZXJfaWQsIHJlbmFtZV9jb3NpZ25lcikucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIENvc2lnbmVyc0JldGFBcGktPnJlbmFtZV9jb3NpZ25lcjpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBDb3NpZ25lcnNCZXRhQXBpLT5yZW5hbWVfY29zaWduZXI6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmNvc2lnbmVyX2lkKiogfCAqKnN0cioqfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvc2lnbmVyIHwgCiAqKnJlbmFtZV9jb3NpZ25lcioqIHwgWyoqUmVuYW1lQ29zaWduZXIqKl0oUmVuYW1lQ29zaWduZXIubWQpfCAgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqQ29zaWduZXIqKl0oQ29zaWduZXIubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgY29zaWduZXIgb2JqZWN0IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKip1bnBhaXJfYXBpX2tleSoqCj4gQXBpS2V5IHVucGFpcl9hcGlfa2V5KGNvc2lnbmVyX2lkLCBhcGlfa2V5X2lkKQoKVW5wYWlyIEFQSSBrZXkKClVucGFpciBhbiBBUEkga2V5IGZyb20gYSBjb3NpZ25lcgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluIGFuZCBOb24tU2lnbmluZyBBZG1pbi4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXBpX2tleSBpbXBvcnQgQXBpS2V5CmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGNvc2lnbmVyX2lkID0gJzQ0ZmNlYWQwLTcwNTMtNDgzMS1hNTNhLWRmN2ZiOTBkNDQwZicgIyBzdHIgfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvc2lnbmVyCiAgICBhcGlfa2V5X2lkID0gJzQ0ZmNlYWQwLTcwNTMtNDgzMS1hNTNhLWRmN2ZiOTBkNDQwZicgIyBzdHIgfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIEFQSSBrZXkKCiAgICB0cnk6CiAgICAgICAgIyBVbnBhaXIgQVBJIGtleQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuY29zaWduZXJzX2JldGEudW5wYWlyX2FwaV9rZXkoY29zaWduZXJfaWQsIGFwaV9rZXlfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBDb3NpZ25lcnNCZXRhQXBpLT51bnBhaXJfYXBpX2tleTpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBDb3NpZ25lcnNCZXRhQXBpLT51bnBhaXJfYXBpX2tleTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqY29zaWduZXJfaWQqKiB8ICoqc3RyKip8IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29zaWduZXIgfCAKICoqYXBpX2tleV9pZCoqIHwgKipzdHIqKnwgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBBUEkga2V5IHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKkFwaUtleSoqXShBcGlLZXkubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAyKiogfCBUaGUgQVBJIGtleSBvYmplY3QgdG8gYmUgdW5wYWlyZWQgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgKiBMb2NhdGlvbiAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqdXBkYXRlX2NhbGxiYWNrX2hhbmRsZXIqKgo+IFVwZGF0ZUNhbGxiYWNrSGFuZGxlclJlc3BvbnNlIHVwZGF0ZV9jYWxsYmFja19oYW5kbGVyKGNvc2lnbmVyX2lkLCBhcGlfa2V5X2lkLCB1cGRhdGVfY2FsbGJhY2tfaGFuZGxlcl9yZXF1ZXN0KQoKVXBkYXRlIEFQSSBrZXkgY2FsbGJhY2sgaGFuZGxlcgoKVXBkYXRlIHRoZSBjYWxsYmFjayBoYW5kbGVyIG9mIGFuIEFQSSBrZXkKPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiBhbmQgTm9uLVNpZ25pbmcgQWRtaW4uCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV9jYWxsYmFja19oYW5kbGVyX3JlcXVlc3QgaW1wb3J0IFVwZGF0ZUNhbGxiYWNrSGFuZGxlclJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51cGRhdGVfY2FsbGJhY2tfaGFuZGxlcl9yZXNwb25zZSBpbXBvcnQgVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY29zaWduZXJfaWQgPSAnNDRmY2VhZDAtNzA1My00ODMxLWE1M2EtZGY3ZmI5MGQ0NDBmJyAjIHN0ciB8IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29zaWduZXIKICAgIGFwaV9rZXlfaWQgPSAnNDRmY2VhZDAtNzA1My00ODMxLWE1M2EtZGY3ZmI5MGQ0NDBmJyAjIHN0ciB8IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgQVBJIGtleQogICAgdXBkYXRlX2NhbGxiYWNrX2hhbmRsZXJfcmVxdWVzdCA9IGZpcmVibG9ja3MuVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdCgpICMgVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdCB8IAoKICAgIHRyeToKICAgICAgICAjIFVwZGF0ZSBBUEkga2V5IGNhbGxiYWNrIGhhbmRsZXIKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmNvc2lnbmVyc19iZXRhLnVwZGF0ZV9jYWxsYmFja19oYW5kbGVyKGNvc2lnbmVyX2lkLCBhcGlfa2V5X2lkLCB1cGRhdGVfY2FsbGJhY2tfaGFuZGxlcl9yZXF1ZXN0KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgQ29zaWduZXJzQmV0YUFwaS0+dXBkYXRlX2NhbGxiYWNrX2hhbmRsZXI6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgQ29zaWduZXJzQmV0YUFwaS0+dXBkYXRlX2NhbGxiYWNrX2hhbmRsZXI6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmNvc2lnbmVyX2lkKiogfCAqKnN0cioqfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvc2lnbmVyIHwgCiAqKmFwaV9rZXlfaWQqKiB8ICoqc3RyKip8IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgQVBJIGtleSB8IAogKip1cGRhdGVfY2FsbGJhY2tfaGFuZGxlcl9yZXF1ZXN0KiogfCBbKipVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXF1ZXN0KipdKFVwZGF0ZUNhbGxiYWNrSGFuZGxlclJlcXVlc3QubWQpfCAgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVzcG9uc2UqKl0oVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDIqKiB8IFRoZSBBUEkga2V5IG9iamVjdCB3aXRoIHRoZSBuZXcgY2FsbGJhY2sgaGFuZGxlciB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICAqIExvY2F0aW9uIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCg== \ No newline at end of file diff --git a/docs/CosignersPaginatedResponse.md b/docs/CosignersPaginatedResponse.md index 1779d924..9cb06d92 100644 --- a/docs/CosignersPaginatedResponse.md +++ b/docs/CosignersPaginatedResponse.md @@ -1,30 +1 @@ -# CosignersPaginatedResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[Cosigner]**](Cosigner.md) | The data of the current page | -**next** | **str** | The ID of the next page | [optional] - -## Example - -```python -from fireblocks.models.cosigners_paginated_response import CosignersPaginatedResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of CosignersPaginatedResponse from a JSON string -cosigners_paginated_response_instance = CosignersPaginatedResponse.from_json(json) -# print the JSON string representation of the object -print(CosignersPaginatedResponse.to_json()) - -# convert the object into a dict -cosigners_paginated_response_dict = cosigners_paginated_response_instance.to_dict() -# create an instance of CosignersPaginatedResponse from a dict -cosigners_paginated_response_from_dict = CosignersPaginatedResponse.from_dict(cosigners_paginated_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDb3NpZ25lcnNQYWdpbmF0ZWRSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkYXRhKiogfCBbKipMaXN0W0Nvc2lnbmVyXSoqXShDb3NpZ25lci5tZCkgfCBUaGUgZGF0YSBvZiB0aGUgY3VycmVudCBwYWdlIHwgCioqbmV4dCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgbmV4dCBwYWdlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvc2lnbmVyc19wYWdpbmF0ZWRfcmVzcG9uc2UgaW1wb3J0IENvc2lnbmVyc1BhZ2luYXRlZFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb3NpZ25lcnNQYWdpbmF0ZWRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKY29zaWduZXJzX3BhZ2luYXRlZF9yZXNwb25zZV9pbnN0YW5jZSA9IENvc2lnbmVyc1BhZ2luYXRlZFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENvc2lnbmVyc1BhZ2luYXRlZFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNvc2lnbmVyc19wYWdpbmF0ZWRfcmVzcG9uc2VfZGljdCA9IGNvc2lnbmVyc19wYWdpbmF0ZWRfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENvc2lnbmVyc1BhZ2luYXRlZFJlc3BvbnNlIGZyb20gYSBkaWN0CmNvc2lnbmVyc19wYWdpbmF0ZWRfcmVzcG9uc2VfZnJvbV9kaWN0ID0gQ29zaWduZXJzUGFnaW5hdGVkUmVzcG9uc2UuZnJvbV9kaWN0KGNvc2lnbmVyc19wYWdpbmF0ZWRfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CreateAPIUser.md b/docs/CreateAPIUser.md index 6ada832c..0b5edc60 100644 --- a/docs/CreateAPIUser.md +++ b/docs/CreateAPIUser.md @@ -1,33 +1 @@ -# CreateAPIUser - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**role** | **str** | Users role | -**name** | **str** | Users name | -**csr_pem** | **str** | CSR file that is used to verify API requests. read more https://developers.fireblocks.com/docs/quickstart | -**co_signer_setup_type** | **str** | Different environments allow for different setup options, field is required for management/signer role | [optional] -**co_signer_setup_is_first_user** | **bool** | pass as true if this is the first user on the coSigner machine | [optional] - -## Example - -```python -from fireblocks.models.create_api_user import CreateAPIUser - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateAPIUser from a JSON string -create_api_user_instance = CreateAPIUser.from_json(json) -# print the JSON string representation of the object -print(CreateAPIUser.to_json()) - -# convert the object into a dict -create_api_user_dict = create_api_user_instance.to_dict() -# create an instance of CreateAPIUser from a dict -create_api_user_from_dict = CreateAPIUser.from_dict(create_api_user_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVBUElVc2VyCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnJvbGUqKiB8ICoqc3RyKiogfCBVc2VycyByb2xlIHwgCioqbmFtZSoqIHwgKipzdHIqKiB8IFVzZXJzIG5hbWUgfCAKKipjc3JfcGVtKiogfCAqKnN0cioqIHwgQ1NSIGZpbGUgdGhhdCBpcyB1c2VkIHRvIHZlcmlmeSBBUEkgcmVxdWVzdHMuIHJlYWQgbW9yZSBodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vZG9jcy9xdWlja3N0YXJ0IHwgCioqY29fc2lnbmVyX3NldHVwX3R5cGUqKiB8ICoqc3RyKiogfCBEaWZmZXJlbnQgZW52aXJvbm1lbnRzIGFsbG93IGZvciBkaWZmZXJlbnQgc2V0dXAgb3B0aW9ucywgZmllbGQgaXMgcmVxdWlyZWQgZm9yIG1hbmFnZW1lbnQvc2lnbmVyIHJvbGUgfCBbb3B0aW9uYWxdIAoqKmNvX3NpZ25lcl9zZXR1cF9pc19maXJzdF91c2VyKiogfCAqKmJvb2wqKiB8IHBhc3MgYXMgdHJ1ZSBpZiB0aGlzIGlzIHRoZSBmaXJzdCB1c2VyIG9uIHRoZSBjb1NpZ25lciBtYWNoaW5lIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9hcGlfdXNlciBpbXBvcnQgQ3JlYXRlQVBJVXNlcgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlQVBJVXNlciBmcm9tIGEgSlNPTiBzdHJpbmcKY3JlYXRlX2FwaV91c2VyX2luc3RhbmNlID0gQ3JlYXRlQVBJVXNlci5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDcmVhdGVBUElVc2VyLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNyZWF0ZV9hcGlfdXNlcl9kaWN0ID0gY3JlYXRlX2FwaV91c2VyX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVBUElVc2VyIGZyb20gYSBkaWN0CmNyZWF0ZV9hcGlfdXNlcl9mcm9tX2RpY3QgPSBDcmVhdGVBUElVc2VyLmZyb21fZGljdChjcmVhdGVfYXBpX3VzZXJfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CreateAddressRequest.md b/docs/CreateAddressRequest.md index 1cd39ffc..19f7e84b 100644 --- a/docs/CreateAddressRequest.md +++ b/docs/CreateAddressRequest.md @@ -1,30 +1 @@ -# CreateAddressRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**description** | **str** | (Optional) Attach a description to the new address | [optional] -**customer_ref_id** | **str** | Optional - Sets a customer reference ID | [optional] - -## Example - -```python -from fireblocks.models.create_address_request import CreateAddressRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateAddressRequest from a JSON string -create_address_request_instance = CreateAddressRequest.from_json(json) -# print the JSON string representation of the object -print(CreateAddressRequest.to_json()) - -# convert the object into a dict -create_address_request_dict = create_address_request_instance.to_dict() -# create an instance of CreateAddressRequest from a dict -create_address_request_from_dict = CreateAddressRequest.from_dict(create_address_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVBZGRyZXNzUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkZXNjcmlwdGlvbioqIHwgKipzdHIqKiB8IChPcHRpb25hbCkgQXR0YWNoIGEgZGVzY3JpcHRpb24gdG8gdGhlIG5ldyBhZGRyZXNzIHwgW29wdGlvbmFsXSAKKipjdXN0b21lcl9yZWZfaWQqKiB8ICoqc3RyKiogfCBPcHRpb25hbCAtIFNldHMgYSBjdXN0b21lciByZWZlcmVuY2UgSUQgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX2FkZHJlc3NfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlQWRkcmVzc1JlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZUFkZHJlc3NSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpjcmVhdGVfYWRkcmVzc19yZXF1ZXN0X2luc3RhbmNlID0gQ3JlYXRlQWRkcmVzc1JlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ3JlYXRlQWRkcmVzc1JlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY3JlYXRlX2FkZHJlc3NfcmVxdWVzdF9kaWN0ID0gY3JlYXRlX2FkZHJlc3NfcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlQWRkcmVzc1JlcXVlc3QgZnJvbSBhIGRpY3QKY3JlYXRlX2FkZHJlc3NfcmVxdWVzdF9mcm9tX2RpY3QgPSBDcmVhdGVBZGRyZXNzUmVxdWVzdC5mcm9tX2RpY3QoY3JlYXRlX2FkZHJlc3NfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CreateAddressResponse.md b/docs/CreateAddressResponse.md index b6be498f..0599a965 100644 --- a/docs/CreateAddressResponse.md +++ b/docs/CreateAddressResponse.md @@ -1,33 +1 @@ -# CreateAddressResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**address** | **str** | | [optional] -**legacy_address** | **str** | | [optional] -**enterprise_address** | **str** | | [optional] -**tag** | **str** | | [optional] -**bip44_address_index** | **int** | | [optional] - -## Example - -```python -from fireblocks.models.create_address_response import CreateAddressResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateAddressResponse from a JSON string -create_address_response_instance = CreateAddressResponse.from_json(json) -# print the JSON string representation of the object -print(CreateAddressResponse.to_json()) - -# convert the object into a dict -create_address_response_dict = create_address_response_instance.to_dict() -# create an instance of CreateAddressResponse from a dict -create_address_response_from_dict = CreateAddressResponse.from_dict(create_address_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVBZGRyZXNzUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYWRkcmVzcyoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqbGVnYWN5X2FkZHJlc3MqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmVudGVycHJpc2VfYWRkcmVzcyoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqdGFnKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipiaXA0NF9hZGRyZXNzX2luZGV4KiogfCAqKmludCoqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9hZGRyZXNzX3Jlc3BvbnNlIGltcG9ydCBDcmVhdGVBZGRyZXNzUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZUFkZHJlc3NSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKY3JlYXRlX2FkZHJlc3NfcmVzcG9uc2VfaW5zdGFuY2UgPSBDcmVhdGVBZGRyZXNzUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ3JlYXRlQWRkcmVzc1Jlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNyZWF0ZV9hZGRyZXNzX3Jlc3BvbnNlX2RpY3QgPSBjcmVhdGVfYWRkcmVzc19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlQWRkcmVzc1Jlc3BvbnNlIGZyb20gYSBkaWN0CmNyZWF0ZV9hZGRyZXNzX3Jlc3BvbnNlX2Zyb21fZGljdCA9IENyZWF0ZUFkZHJlc3NSZXNwb25zZS5mcm9tX2RpY3QoY3JlYXRlX2FkZHJlc3NfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CreateAssetsRequest.md b/docs/CreateAssetsRequest.md index d8867049..8f3241fb 100644 --- a/docs/CreateAssetsRequest.md +++ b/docs/CreateAssetsRequest.md @@ -1,29 +1 @@ -# CreateAssetsRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**eos_account_name** | **str** | Optional - when creating an EOS wallet, the account name. If not provided, a random name will be generated | [optional] - -## Example - -```python -from fireblocks.models.create_assets_request import CreateAssetsRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateAssetsRequest from a JSON string -create_assets_request_instance = CreateAssetsRequest.from_json(json) -# print the JSON string representation of the object -print(CreateAssetsRequest.to_json()) - -# convert the object into a dict -create_assets_request_dict = create_assets_request_instance.to_dict() -# create an instance of CreateAssetsRequest from a dict -create_assets_request_from_dict = CreateAssetsRequest.from_dict(create_assets_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVBc3NldHNSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmVvc19hY2NvdW50X25hbWUqKiB8ICoqc3RyKiogfCBPcHRpb25hbCAtIHdoZW4gY3JlYXRpbmcgYW4gRU9TIHdhbGxldCwgdGhlIGFjY291bnQgbmFtZS4gSWYgbm90IHByb3ZpZGVkLCBhIHJhbmRvbSBuYW1lIHdpbGwgYmUgZ2VuZXJhdGVkIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9hc3NldHNfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlQXNzZXRzUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlQXNzZXRzUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKY3JlYXRlX2Fzc2V0c19yZXF1ZXN0X2luc3RhbmNlID0gQ3JlYXRlQXNzZXRzUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDcmVhdGVBc3NldHNSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNyZWF0ZV9hc3NldHNfcmVxdWVzdF9kaWN0ID0gY3JlYXRlX2Fzc2V0c19yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVBc3NldHNSZXF1ZXN0IGZyb20gYSBkaWN0CmNyZWF0ZV9hc3NldHNfcmVxdWVzdF9mcm9tX2RpY3QgPSBDcmVhdGVBc3NldHNSZXF1ZXN0LmZyb21fZGljdChjcmVhdGVfYXNzZXRzX3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CreateConfigOperationRequest.md b/docs/CreateConfigOperationRequest.md index 6487fda7..85c67d02 100644 --- a/docs/CreateConfigOperationRequest.md +++ b/docs/CreateConfigOperationRequest.md @@ -1,30 +1 @@ -# CreateConfigOperationRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**DisbursementOperationType**](DisbursementOperationType.md) | | -**params** | [**DisbursementOperationConfigParams**](DisbursementOperationConfigParams.md) | | - -## Example - -```python -from fireblocks.models.create_config_operation_request import CreateConfigOperationRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateConfigOperationRequest from a JSON string -create_config_operation_request_instance = CreateConfigOperationRequest.from_json(json) -# print the JSON string representation of the object -print(CreateConfigOperationRequest.to_json()) - -# convert the object into a dict -create_config_operation_request_dict = create_config_operation_request_instance.to_dict() -# create an instance of CreateConfigOperationRequest from a dict -create_config_operation_request_from_dict = CreateConfigOperationRequest.from_dict(create_config_operation_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVDb25maWdPcGVyYXRpb25SZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8IFsqKkRpc2J1cnNlbWVudE9wZXJhdGlvblR5cGUqKl0oRGlzYnVyc2VtZW50T3BlcmF0aW9uVHlwZS5tZCkgfCAgfCAKKipwYXJhbXMqKiB8IFsqKkRpc2J1cnNlbWVudE9wZXJhdGlvbkNvbmZpZ1BhcmFtcyoqXShEaXNidXJzZW1lbnRPcGVyYXRpb25Db25maWdQYXJhbXMubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfY29uZmlnX29wZXJhdGlvbl9yZXF1ZXN0IGltcG9ydCBDcmVhdGVDb25maWdPcGVyYXRpb25SZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVDb25maWdPcGVyYXRpb25SZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpjcmVhdGVfY29uZmlnX29wZXJhdGlvbl9yZXF1ZXN0X2luc3RhbmNlID0gQ3JlYXRlQ29uZmlnT3BlcmF0aW9uUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDcmVhdGVDb25maWdPcGVyYXRpb25SZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNyZWF0ZV9jb25maWdfb3BlcmF0aW9uX3JlcXVlc3RfZGljdCA9IGNyZWF0ZV9jb25maWdfb3BlcmF0aW9uX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZUNvbmZpZ09wZXJhdGlvblJlcXVlc3QgZnJvbSBhIGRpY3QKY3JlYXRlX2NvbmZpZ19vcGVyYXRpb25fcmVxdWVzdF9mcm9tX2RpY3QgPSBDcmVhdGVDb25maWdPcGVyYXRpb25SZXF1ZXN0LmZyb21fZGljdChjcmVhdGVfY29uZmlnX29wZXJhdGlvbl9yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/CreateConnectionRequest.md b/docs/CreateConnectionRequest.md index 026647e4..fd0b49a1 100644 --- a/docs/CreateConnectionRequest.md +++ b/docs/CreateConnectionRequest.md @@ -1,34 +1 @@ -# CreateConnectionRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vault_account_id** | **float** | The ID of the vault to connect to the dApp. | -**fee_level** | **str** | The default fee level. Valid values are `MEDIUM` and `HIGH`. | -**uri** | **str** | The WalletConnect uri provided by the dapp. | -**chain_ids** | **List[str]** | The IDs of the blockchain networks used in the Web3 connection (Currently required in V1 connections only). | [optional] -**ncw_id** | **str** | The ID of the Non-Custodial Wallet to connect to the dApp. | -**ncw_account_id** | **float** | The NCW account ID to connect to the dApp. | - -## Example - -```python -from fireblocks.models.create_connection_request import CreateConnectionRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateConnectionRequest from a JSON string -create_connection_request_instance = CreateConnectionRequest.from_json(json) -# print the JSON string representation of the object -print(CreateConnectionRequest.to_json()) - -# convert the object into a dict -create_connection_request_dict = create_connection_request_instance.to_dict() -# create an instance of CreateConnectionRequest from a dict -create_connection_request_from_dict = CreateConnectionRequest.from_dict(create_connection_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVDb25uZWN0aW9uUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip2YXVsdF9hY2NvdW50X2lkKiogfCAqKmZsb2F0KiogfCBUaGUgSUQgb2YgdGhlIHZhdWx0IHRvIGNvbm5lY3QgdG8gdGhlIGRBcHAuIHwgCioqZmVlX2xldmVsKiogfCAqKnN0cioqIHwgVGhlIGRlZmF1bHQgZmVlIGxldmVsLiBWYWxpZCB2YWx1ZXMgYXJlICYjeDYwO01FRElVTSYjeDYwOyBhbmQgJiN4NjA7SElHSCYjeDYwOy4gfCAKKip1cmkqKiB8ICoqc3RyKiogfCBUaGUgV2FsbGV0Q29ubmVjdCB1cmkgcHJvdmlkZWQgYnkgdGhlIGRhcHAuIHwgCioqY2hhaW5faWRzKiogfCAqKkxpc3Rbc3RyXSoqIHwgVGhlIElEcyBvZiB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrcyB1c2VkIGluIHRoZSBXZWIzIGNvbm5lY3Rpb24gKEN1cnJlbnRseSByZXF1aXJlZCBpbiBWMSBjb25uZWN0aW9ucyBvbmx5KS4gfCBbb3B0aW9uYWxdIAoqKm5jd19pZCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgTm9uLUN1c3RvZGlhbCBXYWxsZXQgdG8gY29ubmVjdCB0byB0aGUgZEFwcC4gfCAKKipuY3dfYWNjb3VudF9pZCoqIHwgKipmbG9hdCoqIHwgVGhlIE5DVyBhY2NvdW50IElEIHRvIGNvbm5lY3QgdG8gdGhlIGRBcHAuIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfY29ubmVjdGlvbl9yZXF1ZXN0IGltcG9ydCBDcmVhdGVDb25uZWN0aW9uUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlQ29ubmVjdGlvblJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCmNyZWF0ZV9jb25uZWN0aW9uX3JlcXVlc3RfaW5zdGFuY2UgPSBDcmVhdGVDb25uZWN0aW9uUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDcmVhdGVDb25uZWN0aW9uUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjcmVhdGVfY29ubmVjdGlvbl9yZXF1ZXN0X2RpY3QgPSBjcmVhdGVfY29ubmVjdGlvbl9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVDb25uZWN0aW9uUmVxdWVzdCBmcm9tIGEgZGljdApjcmVhdGVfY29ubmVjdGlvbl9yZXF1ZXN0X2Zyb21fZGljdCA9IENyZWF0ZUNvbm5lY3Rpb25SZXF1ZXN0LmZyb21fZGljdChjcmVhdGVfY29ubmVjdGlvbl9yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/CreateConnectionResponse.md b/docs/CreateConnectionResponse.md index dccfb2a2..65ca2f95 100644 --- a/docs/CreateConnectionResponse.md +++ b/docs/CreateConnectionResponse.md @@ -1,30 +1 @@ -# CreateConnectionResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The ID of the Web3 connection initiated. | -**session_metadata** | [**SessionMetadata**](SessionMetadata.md) | Metadata of the Web3 connection (provided by the DApp). | - -## Example - -```python -from fireblocks.models.create_connection_response import CreateConnectionResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateConnectionResponse from a JSON string -create_connection_response_instance = CreateConnectionResponse.from_json(json) -# print the JSON string representation of the object -print(CreateConnectionResponse.to_json()) - -# convert the object into a dict -create_connection_response_dict = create_connection_response_instance.to_dict() -# create an instance of CreateConnectionResponse from a dict -create_connection_response_from_dict = CreateConnectionResponse.from_dict(create_connection_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVDb25uZWN0aW9uUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBUaGUgSUQgb2YgdGhlIFdlYjMgY29ubmVjdGlvbiBpbml0aWF0ZWQuIHwgCioqc2Vzc2lvbl9tZXRhZGF0YSoqIHwgWyoqU2Vzc2lvbk1ldGFkYXRhKipdKFNlc3Npb25NZXRhZGF0YS5tZCkgfCBNZXRhZGF0YSBvZiB0aGUgV2ViMyBjb25uZWN0aW9uIChwcm92aWRlZCBieSB0aGUgREFwcCkuIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfY29ubmVjdGlvbl9yZXNwb25zZSBpbXBvcnQgQ3JlYXRlQ29ubmVjdGlvblJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVDb25uZWN0aW9uUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmNyZWF0ZV9jb25uZWN0aW9uX3Jlc3BvbnNlX2luc3RhbmNlID0gQ3JlYXRlQ29ubmVjdGlvblJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENyZWF0ZUNvbm5lY3Rpb25SZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjcmVhdGVfY29ubmVjdGlvbl9yZXNwb25zZV9kaWN0ID0gY3JlYXRlX2Nvbm5lY3Rpb25fcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZUNvbm5lY3Rpb25SZXNwb25zZSBmcm9tIGEgZGljdApjcmVhdGVfY29ubmVjdGlvbl9yZXNwb25zZV9mcm9tX2RpY3QgPSBDcmVhdGVDb25uZWN0aW9uUmVzcG9uc2UuZnJvbV9kaWN0KGNyZWF0ZV9jb25uZWN0aW9uX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/CreateConsoleUser.md b/docs/CreateConsoleUser.md index 263f7217..b9378014 100644 --- a/docs/CreateConsoleUser.md +++ b/docs/CreateConsoleUser.md @@ -1,32 +1 @@ -# CreateConsoleUser - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**first_name** | **str** | users firstName | -**last_name** | **str** | users lastName | -**role** | **str** | users role | -**email** | **str** | valid email address | - -## Example - -```python -from fireblocks.models.create_console_user import CreateConsoleUser - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateConsoleUser from a JSON string -create_console_user_instance = CreateConsoleUser.from_json(json) -# print the JSON string representation of the object -print(CreateConsoleUser.to_json()) - -# convert the object into a dict -create_console_user_dict = create_console_user_instance.to_dict() -# create an instance of CreateConsoleUser from a dict -create_console_user_from_dict = CreateConsoleUser.from_dict(create_console_user_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVDb25zb2xlVXNlcgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipmaXJzdF9uYW1lKiogfCAqKnN0cioqIHwgdXNlcnMgZmlyc3ROYW1lIHwgCioqbGFzdF9uYW1lKiogfCAqKnN0cioqIHwgdXNlcnMgbGFzdE5hbWUgfCAKKipyb2xlKiogfCAqKnN0cioqIHwgdXNlcnMgcm9sZSB8IAoqKmVtYWlsKiogfCAqKnN0cioqIHwgdmFsaWQgZW1haWwgYWRkcmVzcyB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX2NvbnNvbGVfdXNlciBpbXBvcnQgQ3JlYXRlQ29uc29sZVVzZXIKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZUNvbnNvbGVVc2VyIGZyb20gYSBKU09OIHN0cmluZwpjcmVhdGVfY29uc29sZV91c2VyX2luc3RhbmNlID0gQ3JlYXRlQ29uc29sZVVzZXIuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ3JlYXRlQ29uc29sZVVzZXIudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY3JlYXRlX2NvbnNvbGVfdXNlcl9kaWN0ID0gY3JlYXRlX2NvbnNvbGVfdXNlcl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlQ29uc29sZVVzZXIgZnJvbSBhIGRpY3QKY3JlYXRlX2NvbnNvbGVfdXNlcl9mcm9tX2RpY3QgPSBDcmVhdGVDb25zb2xlVXNlci5mcm9tX2RpY3QoY3JlYXRlX2NvbnNvbGVfdXNlcl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CreateContractRequest.md b/docs/CreateContractRequest.md index f50a0bab..9cab5a24 100644 --- a/docs/CreateContractRequest.md +++ b/docs/CreateContractRequest.md @@ -1,29 +1 @@ -# CreateContractRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | the contract's display name | [optional] - -## Example - -```python -from fireblocks.models.create_contract_request import CreateContractRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateContractRequest from a JSON string -create_contract_request_instance = CreateContractRequest.from_json(json) -# print the JSON string representation of the object -print(CreateContractRequest.to_json()) - -# convert the object into a dict -create_contract_request_dict = create_contract_request_instance.to_dict() -# create an instance of CreateContractRequest from a dict -create_contract_request_from_dict = CreateContractRequest.from_dict(create_contract_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVDb250cmFjdFJlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbmFtZSoqIHwgKipzdHIqKiB8IHRoZSBjb250cmFjdCYjMzk7cyBkaXNwbGF5IG5hbWUgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX2NvbnRyYWN0X3JlcXVlc3QgaW1wb3J0IENyZWF0ZUNvbnRyYWN0UmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlQ29udHJhY3RSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpjcmVhdGVfY29udHJhY3RfcmVxdWVzdF9pbnN0YW5jZSA9IENyZWF0ZUNvbnRyYWN0UmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDcmVhdGVDb250cmFjdFJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY3JlYXRlX2NvbnRyYWN0X3JlcXVlc3RfZGljdCA9IGNyZWF0ZV9jb250cmFjdF9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVDb250cmFjdFJlcXVlc3QgZnJvbSBhIGRpY3QKY3JlYXRlX2NvbnRyYWN0X3JlcXVlc3RfZnJvbV9kaWN0ID0gQ3JlYXRlQ29udHJhY3RSZXF1ZXN0LmZyb21fZGljdChjcmVhdGVfY29udHJhY3RfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CreateConversionConfigOperationRequest.md b/docs/CreateConversionConfigOperationRequest.md index 262b7be8..863f7b38 100644 --- a/docs/CreateConversionConfigOperationRequest.md +++ b/docs/CreateConversionConfigOperationRequest.md @@ -1,30 +1 @@ -# CreateConversionConfigOperationRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**ConversionOperationType**](ConversionOperationType.md) | | -**params** | [**ConversionOperationConfigParams**](ConversionOperationConfigParams.md) | | - -## Example - -```python -from fireblocks.models.create_conversion_config_operation_request import CreateConversionConfigOperationRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateConversionConfigOperationRequest from a JSON string -create_conversion_config_operation_request_instance = CreateConversionConfigOperationRequest.from_json(json) -# print the JSON string representation of the object -print(CreateConversionConfigOperationRequest.to_json()) - -# convert the object into a dict -create_conversion_config_operation_request_dict = create_conversion_config_operation_request_instance.to_dict() -# create an instance of CreateConversionConfigOperationRequest from a dict -create_conversion_config_operation_request_from_dict = CreateConversionConfigOperationRequest.from_dict(create_conversion_config_operation_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eXBlKiogfCBbKipDb252ZXJzaW9uT3BlcmF0aW9uVHlwZSoqXShDb252ZXJzaW9uT3BlcmF0aW9uVHlwZS5tZCkgfCAgfCAKKipwYXJhbXMqKiB8IFsqKkNvbnZlcnNpb25PcGVyYXRpb25Db25maWdQYXJhbXMqKl0oQ29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtcy5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9jb252ZXJzaW9uX2NvbmZpZ19vcGVyYXRpb25fcmVxdWVzdCBpbXBvcnQgQ3JlYXRlQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvblJlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZUNvbnZlcnNpb25Db25maWdPcGVyYXRpb25SZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpjcmVhdGVfY29udmVyc2lvbl9jb25maWdfb3BlcmF0aW9uX3JlcXVlc3RfaW5zdGFuY2UgPSBDcmVhdGVDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDcmVhdGVDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjcmVhdGVfY29udmVyc2lvbl9jb25maWdfb3BlcmF0aW9uX3JlcXVlc3RfZGljdCA9IGNyZWF0ZV9jb252ZXJzaW9uX2NvbmZpZ19vcGVyYXRpb25fcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvblJlcXVlc3QgZnJvbSBhIGRpY3QKY3JlYXRlX2NvbnZlcnNpb25fY29uZmlnX29wZXJhdGlvbl9yZXF1ZXN0X2Zyb21fZGljdCA9IENyZWF0ZUNvbnZlcnNpb25Db25maWdPcGVyYXRpb25SZXF1ZXN0LmZyb21fZGljdChjcmVhdGVfY29udmVyc2lvbl9jb25maWdfb3BlcmF0aW9uX3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CreateDisbursementConfigOperationRequest.md b/docs/CreateDisbursementConfigOperationRequest.md index 9d34ca72..54f114d6 100644 --- a/docs/CreateDisbursementConfigOperationRequest.md +++ b/docs/CreateDisbursementConfigOperationRequest.md @@ -1,30 +1 @@ -# CreateDisbursementConfigOperationRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**DisbursementOperationType**](DisbursementOperationType.md) | | -**params** | [**DisbursementOperationConfigParams**](DisbursementOperationConfigParams.md) | | - -## Example - -```python -from fireblocks.models.create_disbursement_config_operation_request import CreateDisbursementConfigOperationRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateDisbursementConfigOperationRequest from a JSON string -create_disbursement_config_operation_request_instance = CreateDisbursementConfigOperationRequest.from_json(json) -# print the JSON string representation of the object -print(CreateDisbursementConfigOperationRequest.to_json()) - -# convert the object into a dict -create_disbursement_config_operation_request_dict = create_disbursement_config_operation_request_instance.to_dict() -# create an instance of CreateDisbursementConfigOperationRequest from a dict -create_disbursement_config_operation_request_from_dict = CreateDisbursementConfigOperationRequest.from_dict(create_disbursement_config_operation_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb25SZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8IFsqKkRpc2J1cnNlbWVudE9wZXJhdGlvblR5cGUqKl0oRGlzYnVyc2VtZW50T3BlcmF0aW9uVHlwZS5tZCkgfCAgfCAKKipwYXJhbXMqKiB8IFsqKkRpc2J1cnNlbWVudE9wZXJhdGlvbkNvbmZpZ1BhcmFtcyoqXShEaXNidXJzZW1lbnRPcGVyYXRpb25Db25maWdQYXJhbXMubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfZGlzYnVyc2VtZW50X2NvbmZpZ19vcGVyYXRpb25fcmVxdWVzdCBpbXBvcnQgQ3JlYXRlRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKY3JlYXRlX2Rpc2J1cnNlbWVudF9jb25maWdfb3BlcmF0aW9uX3JlcXVlc3RfaW5zdGFuY2UgPSBDcmVhdGVEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb25SZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENyZWF0ZURpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvblJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY3JlYXRlX2Rpc2J1cnNlbWVudF9jb25maWdfb3BlcmF0aW9uX3JlcXVlc3RfZGljdCA9IGNyZWF0ZV9kaXNidXJzZW1lbnRfY29uZmlnX29wZXJhdGlvbl9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb25SZXF1ZXN0IGZyb20gYSBkaWN0CmNyZWF0ZV9kaXNidXJzZW1lbnRfY29uZmlnX29wZXJhdGlvbl9yZXF1ZXN0X2Zyb21fZGljdCA9IENyZWF0ZURpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvblJlcXVlc3QuZnJvbV9kaWN0KGNyZWF0ZV9kaXNidXJzZW1lbnRfY29uZmlnX29wZXJhdGlvbl9yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/CreateInternalTransferRequest.md b/docs/CreateInternalTransferRequest.md index c1cdbbde..2c0023fe 100644 --- a/docs/CreateInternalTransferRequest.md +++ b/docs/CreateInternalTransferRequest.md @@ -1,32 +1 @@ -# CreateInternalTransferRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**asset** | **str** | | -**amount** | **str** | | -**source_type** | [**TradingAccountType**](TradingAccountType.md) | | -**dest_type** | [**TradingAccountType**](TradingAccountType.md) | | - -## Example - -```python -from fireblocks.models.create_internal_transfer_request import CreateInternalTransferRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateInternalTransferRequest from a JSON string -create_internal_transfer_request_instance = CreateInternalTransferRequest.from_json(json) -# print the JSON string representation of the object -print(CreateInternalTransferRequest.to_json()) - -# convert the object into a dict -create_internal_transfer_request_dict = create_internal_transfer_request_instance.to_dict() -# create an instance of CreateInternalTransferRequest from a dict -create_internal_transfer_request_from_dict = CreateInternalTransferRequest.from_dict(create_internal_transfer_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVJbnRlcm5hbFRyYW5zZmVyUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphc3NldCoqIHwgKipzdHIqKiB8ICB8IAoqKmFtb3VudCoqIHwgKipzdHIqKiB8ICB8IAoqKnNvdXJjZV90eXBlKiogfCBbKipUcmFkaW5nQWNjb3VudFR5cGUqKl0oVHJhZGluZ0FjY291bnRUeXBlLm1kKSB8ICB8IAoqKmRlc3RfdHlwZSoqIHwgWyoqVHJhZGluZ0FjY291bnRUeXBlKipdKFRyYWRpbmdBY2NvdW50VHlwZS5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9pbnRlcm5hbF90cmFuc2Zlcl9yZXF1ZXN0IGltcG9ydCBDcmVhdGVJbnRlcm5hbFRyYW5zZmVyUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlSW50ZXJuYWxUcmFuc2ZlclJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCmNyZWF0ZV9pbnRlcm5hbF90cmFuc2Zlcl9yZXF1ZXN0X2luc3RhbmNlID0gQ3JlYXRlSW50ZXJuYWxUcmFuc2ZlclJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ3JlYXRlSW50ZXJuYWxUcmFuc2ZlclJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY3JlYXRlX2ludGVybmFsX3RyYW5zZmVyX3JlcXVlc3RfZGljdCA9IGNyZWF0ZV9pbnRlcm5hbF90cmFuc2Zlcl9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVJbnRlcm5hbFRyYW5zZmVyUmVxdWVzdCBmcm9tIGEgZGljdApjcmVhdGVfaW50ZXJuYWxfdHJhbnNmZXJfcmVxdWVzdF9mcm9tX2RpY3QgPSBDcmVhdGVJbnRlcm5hbFRyYW5zZmVyUmVxdWVzdC5mcm9tX2RpY3QoY3JlYXRlX2ludGVybmFsX3RyYW5zZmVyX3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CreateInternalWalletAssetRequest.md b/docs/CreateInternalWalletAssetRequest.md index f860033d..fef50087 100644 --- a/docs/CreateInternalWalletAssetRequest.md +++ b/docs/CreateInternalWalletAssetRequest.md @@ -1,30 +1 @@ -# CreateInternalWalletAssetRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**address** | **str** | The wallet's address or, for EOS wallets, the account name | -**tag** | **str** | for XRP wallets, the destination tag; for EOS, the memo; for the fiat providers (BLINC by BCB Group), the Bank Transfer Description | [optional] - -## Example - -```python -from fireblocks.models.create_internal_wallet_asset_request import CreateInternalWalletAssetRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateInternalWalletAssetRequest from a JSON string -create_internal_wallet_asset_request_instance = CreateInternalWalletAssetRequest.from_json(json) -# print the JSON string representation of the object -print(CreateInternalWalletAssetRequest.to_json()) - -# convert the object into a dict -create_internal_wallet_asset_request_dict = create_internal_wallet_asset_request_instance.to_dict() -# create an instance of CreateInternalWalletAssetRequest from a dict -create_internal_wallet_asset_request_from_dict = CreateInternalWalletAssetRequest.from_dict(create_internal_wallet_asset_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVJbnRlcm5hbFdhbGxldEFzc2V0UmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphZGRyZXNzKiogfCAqKnN0cioqIHwgVGhlIHdhbGxldCYjMzk7cyBhZGRyZXNzIG9yLCBmb3IgRU9TIHdhbGxldHMsIHRoZSBhY2NvdW50IG5hbWUgfCAKKip0YWcqKiB8ICoqc3RyKiogfCBmb3IgWFJQIHdhbGxldHMsIHRoZSBkZXN0aW5hdGlvbiB0YWc7IGZvciBFT1MsIHRoZSBtZW1vOyBmb3IgdGhlIGZpYXQgcHJvdmlkZXJzIChCTElOQyBieSBCQ0IgR3JvdXApLCB0aGUgQmFuayBUcmFuc2ZlciBEZXNjcmlwdGlvbiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0X3JlcXVlc3QgaW1wb3J0IENyZWF0ZUludGVybmFsV2FsbGV0QXNzZXRSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVJbnRlcm5hbFdhbGxldEFzc2V0UmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKY3JlYXRlX2ludGVybmFsX3dhbGxldF9hc3NldF9yZXF1ZXN0X2luc3RhbmNlID0gQ3JlYXRlSW50ZXJuYWxXYWxsZXRBc3NldFJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ3JlYXRlSW50ZXJuYWxXYWxsZXRBc3NldFJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY3JlYXRlX2ludGVybmFsX3dhbGxldF9hc3NldF9yZXF1ZXN0X2RpY3QgPSBjcmVhdGVfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0X3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZUludGVybmFsV2FsbGV0QXNzZXRSZXF1ZXN0IGZyb20gYSBkaWN0CmNyZWF0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXRfcmVxdWVzdF9mcm9tX2RpY3QgPSBDcmVhdGVJbnRlcm5hbFdhbGxldEFzc2V0UmVxdWVzdC5mcm9tX2RpY3QoY3JlYXRlX2ludGVybmFsX3dhbGxldF9hc3NldF9yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/CreateMultichainTokenRequest.md b/docs/CreateMultichainTokenRequest.md index afe34197..8f605381 100644 --- a/docs/CreateMultichainTokenRequest.md +++ b/docs/CreateMultichainTokenRequest.md @@ -1,36 +1 @@ -# CreateMultichainTokenRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vault_account_id** | **str** | The id of the vault account that initiated the request to issue the token | -**create_params** | [**CreateMultichainTokenRequestCreateParams**](CreateMultichainTokenRequestCreateParams.md) | | -**salt** | **str** | The salt to calculate the deterministic address. Must be a number between 0 and 2^256 -1, for it to fit in the bytes32 parameter. | [optional] -**chains** | **List[str]** | The base asset identifiers of the blockchains (legacyId) to calculate deterministic addresses | -**display_name** | **str** | | [optional] -**use_gasless** | **bool** | Indicates whether the token should be created in a gasless manner, utilizing the ERC-2771 standard. When set to true, the transaction will be relayed by a designated relayer. The workspace must be configured to use Fireblocks gasless relay. | [optional] -**fee** | **str** | Max fee amount for the write function transaction. interchangeable with the 'feeLevel' field | [optional] -**fee_level** | **str** | Fee level for the write function transaction. interchangeable with the 'fee' field | [optional] - -## Example - -```python -from fireblocks.models.create_multichain_token_request import CreateMultichainTokenRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateMultichainTokenRequest from a JSON string -create_multichain_token_request_instance = CreateMultichainTokenRequest.from_json(json) -# print the JSON string representation of the object -print(CreateMultichainTokenRequest.to_json()) - -# convert the object into a dict -create_multichain_token_request_dict = create_multichain_token_request_instance.to_dict() -# create an instance of CreateMultichainTokenRequest from a dict -create_multichain_token_request_from_dict = CreateMultichainTokenRequest.from_dict(create_multichain_token_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnZhdWx0X2FjY291bnRfaWQqKiB8ICoqc3RyKiogfCBUaGUgaWQgb2YgdGhlIHZhdWx0IGFjY291bnQgdGhhdCBpbml0aWF0ZWQgdGhlIHJlcXVlc3QgdG8gaXNzdWUgdGhlIHRva2VuIHwgCioqY3JlYXRlX3BhcmFtcyoqIHwgWyoqQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdENyZWF0ZVBhcmFtcyoqXShDcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0Q3JlYXRlUGFyYW1zLm1kKSB8ICB8IAoqKnNhbHQqKiB8ICoqc3RyKiogfCBUaGUgc2FsdCB0byBjYWxjdWxhdGUgdGhlIGRldGVybWluaXN0aWMgYWRkcmVzcy4gTXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDJeMjU2IC0xLCBmb3IgaXQgdG8gZml0IGluIHRoZSBieXRlczMyIHBhcmFtZXRlci4gfCBbb3B0aW9uYWxdIAoqKmNoYWlucyoqIHwgKipMaXN0W3N0cl0qKiB8IFRoZSBiYXNlIGFzc2V0IGlkZW50aWZpZXJzIG9mIHRoZSBibG9ja2NoYWlucyAobGVnYWN5SWQpIHRvIGNhbGN1bGF0ZSBkZXRlcm1pbmlzdGljIGFkZHJlc3NlcyB8IAoqKmRpc3BsYXlfbmFtZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqdXNlX2dhc2xlc3MqKiB8ICoqYm9vbCoqIHwgSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRva2VuIHNob3VsZCBiZSBjcmVhdGVkIGluIGEgZ2FzbGVzcyBtYW5uZXIsIHV0aWxpemluZyB0aGUgRVJDLTI3NzEgc3RhbmRhcmQuIFdoZW4gc2V0IHRvIHRydWUsIHRoZSB0cmFuc2FjdGlvbiB3aWxsIGJlIHJlbGF5ZWQgYnkgYSBkZXNpZ25hdGVkIHJlbGF5ZXIuIFRoZSB3b3Jrc3BhY2UgbXVzdCBiZSBjb25maWd1cmVkIHRvIHVzZSBGaXJlYmxvY2tzIGdhc2xlc3MgcmVsYXkuIHwgW29wdGlvbmFsXSAKKipmZWUqKiB8ICoqc3RyKiogfCBNYXggZmVlIGFtb3VudCBmb3IgdGhlIHdyaXRlIGZ1bmN0aW9uIHRyYW5zYWN0aW9uLiBpbnRlcmNoYW5nZWFibGUgd2l0aCB0aGUgJiMzOTtmZWVMZXZlbCYjMzk7IGZpZWxkIHwgW29wdGlvbmFsXSAKKipmZWVfbGV2ZWwqKiB8ICoqc3RyKiogfCBGZWUgbGV2ZWwgZm9yIHRoZSB3cml0ZSBmdW5jdGlvbiB0cmFuc2FjdGlvbi4gaW50ZXJjaGFuZ2VhYmxlIHdpdGggdGhlICYjMzk7ZmVlJiMzOTsgZmllbGQgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdCBpbXBvcnQgQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKY3JlYXRlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdF9pbnN0YW5jZSA9IENyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjcmVhdGVfbXVsdGljaGFpbl90b2tlbl9yZXF1ZXN0X2RpY3QgPSBjcmVhdGVfbXVsdGljaGFpbl90b2tlbl9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0IGZyb20gYSBkaWN0CmNyZWF0ZV9tdWx0aWNoYWluX3Rva2VuX3JlcXVlc3RfZnJvbV9kaWN0ID0gQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdC5mcm9tX2RpY3QoY3JlYXRlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CreateMultichainTokenRequestCreateParams.md b/docs/CreateMultichainTokenRequestCreateParams.md index 9f75c108..1bca6d8d 100644 --- a/docs/CreateMultichainTokenRequestCreateParams.md +++ b/docs/CreateMultichainTokenRequestCreateParams.md @@ -1,30 +1 @@ -# CreateMultichainTokenRequestCreateParams - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**contract_id** | **str** | The id of the contract template that will be used to create the token | -**deploy_function_params** | [**List[ParameterWithValue]**](ParameterWithValue.md) | The deploy function parameters and values of the contract template | [optional] - -## Example - -```python -from fireblocks.models.create_multichain_token_request_create_params import CreateMultichainTokenRequestCreateParams - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateMultichainTokenRequestCreateParams from a JSON string -create_multichain_token_request_create_params_instance = CreateMultichainTokenRequestCreateParams.from_json(json) -# print the JSON string representation of the object -print(CreateMultichainTokenRequestCreateParams.to_json()) - -# convert the object into a dict -create_multichain_token_request_create_params_dict = create_multichain_token_request_create_params_instance.to_dict() -# create an instance of CreateMultichainTokenRequestCreateParams from a dict -create_multichain_token_request_create_params_from_dict = CreateMultichainTokenRequestCreateParams.from_dict(create_multichain_token_request_create_params_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0Q3JlYXRlUGFyYW1zCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmNvbnRyYWN0X2lkKiogfCAqKnN0cioqIHwgVGhlIGlkIG9mIHRoZSBjb250cmFjdCB0ZW1wbGF0ZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgdGhlIHRva2VuIHwgCioqZGVwbG95X2Z1bmN0aW9uX3BhcmFtcyoqIHwgWyoqTGlzdFtQYXJhbWV0ZXJXaXRoVmFsdWVdKipdKFBhcmFtZXRlcldpdGhWYWx1ZS5tZCkgfCBUaGUgZGVwbG95IGZ1bmN0aW9uIHBhcmFtZXRlcnMgYW5kIHZhbHVlcyBvZiB0aGUgY29udHJhY3QgdGVtcGxhdGUgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdF9jcmVhdGVfcGFyYW1zIGltcG9ydCBDcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0Q3JlYXRlUGFyYW1zCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0Q3JlYXRlUGFyYW1zIGZyb20gYSBKU09OIHN0cmluZwpjcmVhdGVfbXVsdGljaGFpbl90b2tlbl9yZXF1ZXN0X2NyZWF0ZV9wYXJhbXNfaW5zdGFuY2UgPSBDcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0Q3JlYXRlUGFyYW1zLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3RDcmVhdGVQYXJhbXMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY3JlYXRlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdF9jcmVhdGVfcGFyYW1zX2RpY3QgPSBjcmVhdGVfbXVsdGljaGFpbl90b2tlbl9yZXF1ZXN0X2NyZWF0ZV9wYXJhbXNfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3RDcmVhdGVQYXJhbXMgZnJvbSBhIGRpY3QKY3JlYXRlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdF9jcmVhdGVfcGFyYW1zX2Zyb21fZGljdCA9IENyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3RDcmVhdGVQYXJhbXMuZnJvbV9kaWN0KGNyZWF0ZV9tdWx0aWNoYWluX3Rva2VuX3JlcXVlc3RfY3JlYXRlX3BhcmFtc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CreateMultipleAccountsRequest.md b/docs/CreateMultipleAccountsRequest.md index f416113f..ee7822b0 100644 --- a/docs/CreateMultipleAccountsRequest.md +++ b/docs/CreateMultipleAccountsRequest.md @@ -1,33 +1 @@ -# CreateMultipleAccountsRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**count** | **int** | Count | -**base_asset_ids** | **List[str]** | Array of base asset IDs | -**names** | **List[str]** | Names to assign to vault accounts. if vaultAccountNamesStartingIndex or prefix is used it'll fail | [optional] -**vault_account_names_starting_index** | **int** | Copy vault accounts names starting from this index. If names array is used it'll fail | [optional] -**prefix** | **str** | When copying from existing vault accounts (vaultAccountNamesStartingIndex) then adding a prefix to the names. If names array is used it'll fail | [optional] - -## Example - -```python -from fireblocks.models.create_multiple_accounts_request import CreateMultipleAccountsRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateMultipleAccountsRequest from a JSON string -create_multiple_accounts_request_instance = CreateMultipleAccountsRequest.from_json(json) -# print the JSON string representation of the object -print(CreateMultipleAccountsRequest.to_json()) - -# convert the object into a dict -create_multiple_accounts_request_dict = create_multiple_accounts_request_instance.to_dict() -# create an instance of CreateMultipleAccountsRequest from a dict -create_multiple_accounts_request_from_dict = CreateMultipleAccountsRequest.from_dict(create_multiple_accounts_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVNdWx0aXBsZUFjY291bnRzUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipjb3VudCoqIHwgKippbnQqKiB8IENvdW50IHwgCioqYmFzZV9hc3NldF9pZHMqKiB8ICoqTGlzdFtzdHJdKiogfCBBcnJheSBvZiBiYXNlIGFzc2V0IElEcyB8IAoqKm5hbWVzKiogfCAqKkxpc3Rbc3RyXSoqIHwgTmFtZXMgdG8gYXNzaWduIHRvIHZhdWx0IGFjY291bnRzLiBpZiB2YXVsdEFjY291bnROYW1lc1N0YXJ0aW5nSW5kZXggb3IgcHJlZml4IGlzIHVzZWQgaXQmIzM5O2xsIGZhaWwgfCBbb3B0aW9uYWxdIAoqKnZhdWx0X2FjY291bnRfbmFtZXNfc3RhcnRpbmdfaW5kZXgqKiB8ICoqaW50KiogfCBDb3B5IHZhdWx0IGFjY291bnRzIG5hbWVzIHN0YXJ0aW5nIGZyb20gdGhpcyBpbmRleC4gSWYgbmFtZXMgYXJyYXkgaXMgdXNlZCBpdCYjMzk7bGwgZmFpbCB8IFtvcHRpb25hbF0gCioqcHJlZml4KiogfCAqKnN0cioqIHwgV2hlbiBjb3B5aW5nIGZyb20gZXhpc3RpbmcgdmF1bHQgYWNjb3VudHMgKHZhdWx0QWNjb3VudE5hbWVzU3RhcnRpbmdJbmRleCkgdGhlbiBhZGRpbmcgYSBwcmVmaXggdG8gdGhlIG5hbWVzLiBJZiBuYW1lcyBhcnJheSBpcyB1c2VkIGl0JiMzOTtsbCBmYWlsIHwgW29wdGlvbmFsXSAKKip0YWdfaWRzKiogfCAqKkxpc3Rbc3RyXSoqIHwgT3B0aW9uYWwgbGlzdCBvZiB0YWcgSURzIHRvIGF0dGFjaCB0byBhbGwgY3JlYXRlZCB2YXVsdCBhY2NvdW50cyB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfbXVsdGlwbGVfYWNjb3VudHNfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlTXVsdGlwbGVBY2NvdW50c1JlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZU11bHRpcGxlQWNjb3VudHNSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpjcmVhdGVfbXVsdGlwbGVfYWNjb3VudHNfcmVxdWVzdF9pbnN0YW5jZSA9IENyZWF0ZU11bHRpcGxlQWNjb3VudHNSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENyZWF0ZU11bHRpcGxlQWNjb3VudHNSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNyZWF0ZV9tdWx0aXBsZV9hY2NvdW50c19yZXF1ZXN0X2RpY3QgPSBjcmVhdGVfbXVsdGlwbGVfYWNjb3VudHNfcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlTXVsdGlwbGVBY2NvdW50c1JlcXVlc3QgZnJvbSBhIGRpY3QKY3JlYXRlX211bHRpcGxlX2FjY291bnRzX3JlcXVlc3RfZnJvbV9kaWN0ID0gQ3JlYXRlTXVsdGlwbGVBY2NvdW50c1JlcXVlc3QuZnJvbV9kaWN0KGNyZWF0ZV9tdWx0aXBsZV9hY2NvdW50c19yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/CreateMultipleDepositAddressesJobStatus.md b/docs/CreateMultipleDepositAddressesJobStatus.md index fe2b027e..afbf9a2e 100644 --- a/docs/CreateMultipleDepositAddressesJobStatus.md +++ b/docs/CreateMultipleDepositAddressesJobStatus.md @@ -1,31 +1 @@ -# CreateMultipleDepositAddressesJobStatus - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status** | **str** | | -**addresses** | [**List[NewAddress]**](NewAddress.md) | | [optional] -**error_message** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.create_multiple_deposit_addresses_job_status import CreateMultipleDepositAddressesJobStatus - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateMultipleDepositAddressesJobStatus from a JSON string -create_multiple_deposit_addresses_job_status_instance = CreateMultipleDepositAddressesJobStatus.from_json(json) -# print the JSON string representation of the object -print(CreateMultipleDepositAddressesJobStatus.to_json()) - -# convert the object into a dict -create_multiple_deposit_addresses_job_status_dict = create_multiple_deposit_addresses_job_status_instance.to_dict() -# create an instance of CreateMultipleDepositAddressesJobStatus from a dict -create_multiple_deposit_addresses_job_status_from_dict = CreateMultipleDepositAddressesJobStatus.from_dict(create_multiple_deposit_addresses_job_status_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNKb2JTdGF0dXMKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3RhdHVzKiogfCAqKnN0cioqIHwgIHwgCioqYWRkcmVzc2VzKiogfCBbKipMaXN0W05ld0FkZHJlc3NdKipdKE5ld0FkZHJlc3MubWQpIHwgIHwgW29wdGlvbmFsXSAKKiplcnJvcl9tZXNzYWdlKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3Nlc19qb2Jfc3RhdHVzIGltcG9ydCBDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNKb2JTdGF0dXMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZU11bHRpcGxlRGVwb3NpdEFkZHJlc3Nlc0pvYlN0YXR1cyBmcm9tIGEgSlNPTiBzdHJpbmcKY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzX2pvYl9zdGF0dXNfaW5zdGFuY2UgPSBDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNKb2JTdGF0dXMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzSm9iU3RhdHVzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3Nlc19qb2Jfc3RhdHVzX2RpY3QgPSBjcmVhdGVfbXVsdGlwbGVfZGVwb3NpdF9hZGRyZXNzZXNfam9iX3N0YXR1c19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzSm9iU3RhdHVzIGZyb20gYSBkaWN0CmNyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3Nlc19qb2Jfc3RhdHVzX2Zyb21fZGljdCA9IENyZWF0ZU11bHRpcGxlRGVwb3NpdEFkZHJlc3Nlc0pvYlN0YXR1cy5mcm9tX2RpY3QoY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzX2pvYl9zdGF0dXNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CreateMultipleDepositAddressesRequest.md b/docs/CreateMultipleDepositAddressesRequest.md index b05f34e1..1165143e 100644 --- a/docs/CreateMultipleDepositAddressesRequest.md +++ b/docs/CreateMultipleDepositAddressesRequest.md @@ -1,34 +1 @@ -# CreateMultipleDepositAddressesRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vault_account_id** | **int** | Existing Vault account ID to add deposit addresses to | -**asset_id** | **str** | asset ID | -**count** | **int** | Count of deposit addresses to issue | -**descriptions** | **List[str]** | Desctiptions of the newly created addresses | [optional] -**vault_account_to_copy_desc_from** | **int** | Existing Vault Account ID to copy deposit addresses descriptions from in case no descriptions were provided | [optional] -**vault_account_to_copy_desc_from_index** | **int** | Existing length within the vault account to copy deposit addresses descriptions from | [optional] - -## Example - -```python -from fireblocks.models.create_multiple_deposit_addresses_request import CreateMultipleDepositAddressesRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateMultipleDepositAddressesRequest from a JSON string -create_multiple_deposit_addresses_request_instance = CreateMultipleDepositAddressesRequest.from_json(json) -# print the JSON string representation of the object -print(CreateMultipleDepositAddressesRequest.to_json()) - -# convert the object into a dict -create_multiple_deposit_addresses_request_dict = create_multiple_deposit_addresses_request_instance.to_dict() -# create an instance of CreateMultipleDepositAddressesRequest from a dict -create_multiple_deposit_addresses_request_from_dict = CreateMultipleDepositAddressesRequest.from_dict(create_multiple_deposit_addresses_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnZhdWx0X2FjY291bnRfaWQqKiB8ICoqaW50KiogfCBFeGlzdGluZyBWYXVsdCBhY2NvdW50IElEIHRvIGFkZCBkZXBvc2l0IGFkZHJlc3NlcyB0byB8IAoqKmFzc2V0X2lkKiogfCAqKnN0cioqIHwgYXNzZXQgSUQgfCAKKipjb3VudCoqIHwgKippbnQqKiB8IENvdW50IG9mIGRlcG9zaXQgYWRkcmVzc2VzIHRvIGlzc3VlIHwgCioqZGVzY3JpcHRpb25zKiogfCAqKkxpc3Rbc3RyXSoqIHwgRGVzY3RpcHRpb25zIG9mIHRoZSBuZXdseSBjcmVhdGVkIGFkZHJlc3NlcyB8IFtvcHRpb25hbF0gCioqdmF1bHRfYWNjb3VudF90b19jb3B5X2Rlc2NfZnJvbSoqIHwgKippbnQqKiB8IEV4aXN0aW5nIFZhdWx0IEFjY291bnQgSUQgdG8gY29weSBkZXBvc2l0IGFkZHJlc3NlcyBkZXNjcmlwdGlvbnMgZnJvbSBpbiBjYXNlIG5vIGRlc2NyaXB0aW9ucyB3ZXJlIHByb3ZpZGVkIHwgW29wdGlvbmFsXSAKKip2YXVsdF9hY2NvdW50X3RvX2NvcHlfZGVzY19mcm9tX2luZGV4KiogfCAqKmludCoqIHwgRXhpc3RpbmcgbGVuZ3RoIHdpdGhpbiB0aGUgdmF1bHQgYWNjb3VudCB0byBjb3B5IGRlcG9zaXQgYWRkcmVzc2VzIGRlc2NyaXB0aW9ucyBmcm9tIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3Nlc19yZXF1ZXN0IGltcG9ydCBDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpjcmVhdGVfbXVsdGlwbGVfZGVwb3NpdF9hZGRyZXNzZXNfcmVxdWVzdF9pbnN0YW5jZSA9IENyZWF0ZU11bHRpcGxlRGVwb3NpdEFkZHJlc3Nlc1JlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjcmVhdGVfbXVsdGlwbGVfZGVwb3NpdF9hZGRyZXNzZXNfcmVxdWVzdF9kaWN0ID0gY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZU11bHRpcGxlRGVwb3NpdEFkZHJlc3Nlc1JlcXVlc3QgZnJvbSBhIGRpY3QKY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzX3JlcXVlc3RfZnJvbV9kaWN0ID0gQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzUmVxdWVzdC5mcm9tX2RpY3QoY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzX3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CreateMultipleVaultAccountsJobStatus.md b/docs/CreateMultipleVaultAccountsJobStatus.md index 42c4c3d9..ef4d8dc8 100644 --- a/docs/CreateMultipleVaultAccountsJobStatus.md +++ b/docs/CreateMultipleVaultAccountsJobStatus.md @@ -1,31 +1 @@ -# CreateMultipleVaultAccountsJobStatus - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status** | **str** | | -**vault_accounts** | **Dict[str, Dict[str, str]]** | Mapping between VaultAccountId to a mapping of asset to address | [optional] -**error_message** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.create_multiple_vault_accounts_job_status import CreateMultipleVaultAccountsJobStatus - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateMultipleVaultAccountsJobStatus from a JSON string -create_multiple_vault_accounts_job_status_instance = CreateMultipleVaultAccountsJobStatus.from_json(json) -# print the JSON string representation of the object -print(CreateMultipleVaultAccountsJobStatus.to_json()) - -# convert the object into a dict -create_multiple_vault_accounts_job_status_dict = create_multiple_vault_accounts_job_status_instance.to_dict() -# create an instance of CreateMultipleVaultAccountsJobStatus from a dict -create_multiple_vault_accounts_job_status_from_dict = CreateMultipleVaultAccountsJobStatus.from_dict(create_multiple_vault_accounts_job_status_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVNdWx0aXBsZVZhdWx0QWNjb3VudHNKb2JTdGF0dXMKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3RhdHVzKiogfCAqKnN0cioqIHwgIHwgCioqdmF1bHRfYWNjb3VudHMqKiB8ICoqRGljdFtzdHIsIERpY3Rbc3RyLCBzdHJdXSoqIHwgTWFwcGluZyBiZXR3ZWVuIFZhdWx0QWNjb3VudElkIHRvIGEgbWFwcGluZyBvZiBhc3NldCB0byBhZGRyZXNzIHwgW29wdGlvbmFsXSAKKiplcnJvcl9tZXNzYWdlKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9tdWx0aXBsZV92YXVsdF9hY2NvdW50c19qb2Jfc3RhdHVzIGltcG9ydCBDcmVhdGVNdWx0aXBsZVZhdWx0QWNjb3VudHNKb2JTdGF0dXMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZU11bHRpcGxlVmF1bHRBY2NvdW50c0pvYlN0YXR1cyBmcm9tIGEgSlNPTiBzdHJpbmcKY3JlYXRlX211bHRpcGxlX3ZhdWx0X2FjY291bnRzX2pvYl9zdGF0dXNfaW5zdGFuY2UgPSBDcmVhdGVNdWx0aXBsZVZhdWx0QWNjb3VudHNKb2JTdGF0dXMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ3JlYXRlTXVsdGlwbGVWYXVsdEFjY291bnRzSm9iU3RhdHVzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNyZWF0ZV9tdWx0aXBsZV92YXVsdF9hY2NvdW50c19qb2Jfc3RhdHVzX2RpY3QgPSBjcmVhdGVfbXVsdGlwbGVfdmF1bHRfYWNjb3VudHNfam9iX3N0YXR1c19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlTXVsdGlwbGVWYXVsdEFjY291bnRzSm9iU3RhdHVzIGZyb20gYSBkaWN0CmNyZWF0ZV9tdWx0aXBsZV92YXVsdF9hY2NvdW50c19qb2Jfc3RhdHVzX2Zyb21fZGljdCA9IENyZWF0ZU11bHRpcGxlVmF1bHRBY2NvdW50c0pvYlN0YXR1cy5mcm9tX2RpY3QoY3JlYXRlX211bHRpcGxlX3ZhdWx0X2FjY291bnRzX2pvYl9zdGF0dXNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CreateNcwConnectionRequest.md b/docs/CreateNcwConnectionRequest.md index c8562c8e..ecab6c68 100644 --- a/docs/CreateNcwConnectionRequest.md +++ b/docs/CreateNcwConnectionRequest.md @@ -1,33 +1 @@ -# CreateNcwConnectionRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**ncw_id** | **str** | The ID of the Non-Custodial Wallet to connect to the dApp. | -**ncw_account_id** | **float** | The NCW account ID to connect to the dApp. | -**fee_level** | **str** | The default fee level. Valid values are `MEDIUM` and `HIGH`. | -**uri** | **str** | The WalletConnect uri provided by the dapp. | -**chain_ids** | **List[str]** | The IDs of the blockchain networks used in the Web3 connection (Currently required in V1 connections only). | [optional] - -## Example - -```python -from fireblocks.models.create_ncw_connection_request import CreateNcwConnectionRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateNcwConnectionRequest from a JSON string -create_ncw_connection_request_instance = CreateNcwConnectionRequest.from_json(json) -# print the JSON string representation of the object -print(CreateNcwConnectionRequest.to_json()) - -# convert the object into a dict -create_ncw_connection_request_dict = create_ncw_connection_request_instance.to_dict() -# create an instance of CreateNcwConnectionRequest from a dict -create_ncw_connection_request_from_dict = CreateNcwConnectionRequest.from_dict(create_ncw_connection_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVOY3dDb25uZWN0aW9uUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipuY3dfaWQqKiB8ICoqc3RyKiogfCBUaGUgSUQgb2YgdGhlIE5vbi1DdXN0b2RpYWwgV2FsbGV0IHRvIGNvbm5lY3QgdG8gdGhlIGRBcHAuIHwgCioqbmN3X2FjY291bnRfaWQqKiB8ICoqZmxvYXQqKiB8IFRoZSBOQ1cgYWNjb3VudCBJRCB0byBjb25uZWN0IHRvIHRoZSBkQXBwLiB8IAoqKmZlZV9sZXZlbCoqIHwgKipzdHIqKiB8IFRoZSBkZWZhdWx0IGZlZSBsZXZlbC4gVmFsaWQgdmFsdWVzIGFyZSAmI3g2MDtNRURJVU0mI3g2MDsgYW5kICYjeDYwO0hJR0gmI3g2MDsuIHwgCioqdXJpKiogfCAqKnN0cioqIHwgVGhlIFdhbGxldENvbm5lY3QgdXJpIHByb3ZpZGVkIGJ5IHRoZSBkYXBwLiB8IAoqKmNoYWluX2lkcyoqIHwgKipMaXN0W3N0cl0qKiB8IFRoZSBJRHMgb2YgdGhlIGJsb2NrY2hhaW4gbmV0d29ya3MgdXNlZCBpbiB0aGUgV2ViMyBjb25uZWN0aW9uIChDdXJyZW50bHkgcmVxdWlyZWQgaW4gVjEgY29ubmVjdGlvbnMgb25seSkuIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9uY3dfY29ubmVjdGlvbl9yZXF1ZXN0IGltcG9ydCBDcmVhdGVOY3dDb25uZWN0aW9uUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlTmN3Q29ubmVjdGlvblJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCmNyZWF0ZV9uY3dfY29ubmVjdGlvbl9yZXF1ZXN0X2luc3RhbmNlID0gQ3JlYXRlTmN3Q29ubmVjdGlvblJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ3JlYXRlTmN3Q29ubmVjdGlvblJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY3JlYXRlX25jd19jb25uZWN0aW9uX3JlcXVlc3RfZGljdCA9IGNyZWF0ZV9uY3dfY29ubmVjdGlvbl9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVOY3dDb25uZWN0aW9uUmVxdWVzdCBmcm9tIGEgZGljdApjcmVhdGVfbmN3X2Nvbm5lY3Rpb25fcmVxdWVzdF9mcm9tX2RpY3QgPSBDcmVhdGVOY3dDb25uZWN0aW9uUmVxdWVzdC5mcm9tX2RpY3QoY3JlYXRlX25jd19jb25uZWN0aW9uX3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CreateNetworkIdRequest.md b/docs/CreateNetworkIdRequest.md index 49dc45ab..8f3b6081 100644 --- a/docs/CreateNetworkIdRequest.md +++ b/docs/CreateNetworkIdRequest.md @@ -1,30 +1 @@ -# CreateNetworkIdRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | | -**routing_policy** | [**Dict[str, NetworkIdRoutingPolicyValue]**](NetworkIdRoutingPolicyValue.md) | | [optional] - -## Example - -```python -from fireblocks.models.create_network_id_request import CreateNetworkIdRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateNetworkIdRequest from a JSON string -create_network_id_request_instance = CreateNetworkIdRequest.from_json(json) -# print the JSON string representation of the object -print(CreateNetworkIdRequest.to_json()) - -# convert the object into a dict -create_network_id_request_dict = create_network_id_request_instance.to_dict() -# create an instance of CreateNetworkIdRequest from a dict -create_network_id_request_from_dict = CreateNetworkIdRequest.from_dict(create_network_id_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVOZXR3b3JrSWRSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm5hbWUqKiB8ICoqc3RyKiogfCAgfCAKKipyb3V0aW5nX3BvbGljeSoqIHwgWyoqRGljdFtzdHIsIE5ldHdvcmtJZFJvdXRpbmdQb2xpY3lWYWx1ZV0qKl0oTmV0d29ya0lkUm91dGluZ1BvbGljeVZhbHVlLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfbmV0d29ya19pZF9yZXF1ZXN0IGltcG9ydCBDcmVhdGVOZXR3b3JrSWRSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVOZXR3b3JrSWRSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpjcmVhdGVfbmV0d29ya19pZF9yZXF1ZXN0X2luc3RhbmNlID0gQ3JlYXRlTmV0d29ya0lkUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDcmVhdGVOZXR3b3JrSWRSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNyZWF0ZV9uZXR3b3JrX2lkX3JlcXVlc3RfZGljdCA9IGNyZWF0ZV9uZXR3b3JrX2lkX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZU5ldHdvcmtJZFJlcXVlc3QgZnJvbSBhIGRpY3QKY3JlYXRlX25ldHdvcmtfaWRfcmVxdWVzdF9mcm9tX2RpY3QgPSBDcmVhdGVOZXR3b3JrSWRSZXF1ZXN0LmZyb21fZGljdChjcmVhdGVfbmV0d29ya19pZF9yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/CreateOrderRequest.md b/docs/CreateOrderRequest.md index e9e2dc7a..6f3ed054 100644 --- a/docs/CreateOrderRequest.md +++ b/docs/CreateOrderRequest.md @@ -1,34 +1 @@ -# CreateOrderRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**via** | [**AccessType**](AccessType.md) | | -**execution_request_details** | [**ExecutionRequestDetails**](ExecutionRequestDetails.md) | | -**settlement** | [**Settlement**](Settlement.md) | | -**participants_identification** | [**ParticipantsIdentification**](ParticipantsIdentification.md) | | [optional] -**customer_internal_reference_id** | **str** | Internal reference ID for the customer | [optional] -**note** | **str** | Optional note for the order | [optional] - -## Example - -```python -from fireblocks.models.create_order_request import CreateOrderRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateOrderRequest from a JSON string -create_order_request_instance = CreateOrderRequest.from_json(json) -# print the JSON string representation of the object -print(CreateOrderRequest.to_json()) - -# convert the object into a dict -create_order_request_dict = create_order_request_instance.to_dict() -# create an instance of CreateOrderRequest from a dict -create_order_request_from_dict = CreateOrderRequest.from_dict(create_order_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVPcmRlclJlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdmlhKiogfCBbKipBY2Nlc3NUeXBlKipdKEFjY2Vzc1R5cGUubWQpIHwgIHwgCioqZXhlY3V0aW9uX3JlcXVlc3RfZGV0YWlscyoqIHwgWyoqRXhlY3V0aW9uUmVxdWVzdERldGFpbHMqKl0oRXhlY3V0aW9uUmVxdWVzdERldGFpbHMubWQpIHwgIHwgCioqc2V0dGxlbWVudCoqIHwgWyoqU2V0dGxlbWVudCoqXShTZXR0bGVtZW50Lm1kKSB8ICB8IAoqKnBhcnRpY2lwYW50c19pZGVudGlmaWNhdGlvbioqIHwgWyoqUGFydGljaXBhbnRzSWRlbnRpZmljYXRpb24qKl0oUGFydGljaXBhbnRzSWRlbnRpZmljYXRpb24ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipjdXN0b21lcl9pbnRlcm5hbF9yZWZlcmVuY2VfaWQqKiB8ICoqc3RyKiogfCBJbnRlcm5hbCByZWZlcmVuY2UgSUQgZm9yIHRoZSBjdXN0b21lciB8IFtvcHRpb25hbF0gCioqbm90ZSoqIHwgKipzdHIqKiB8IE9wdGlvbmFsIG5vdGUgZm9yIHRoZSBvcmRlciB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfb3JkZXJfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlT3JkZXJSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVPcmRlclJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCmNyZWF0ZV9vcmRlcl9yZXF1ZXN0X2luc3RhbmNlID0gQ3JlYXRlT3JkZXJSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENyZWF0ZU9yZGVyUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjcmVhdGVfb3JkZXJfcmVxdWVzdF9kaWN0ID0gY3JlYXRlX29yZGVyX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZU9yZGVyUmVxdWVzdCBmcm9tIGEgZGljdApjcmVhdGVfb3JkZXJfcmVxdWVzdF9mcm9tX2RpY3QgPSBDcmVhdGVPcmRlclJlcXVlc3QuZnJvbV9kaWN0KGNyZWF0ZV9vcmRlcl9yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/CreatePayoutRequest.md b/docs/CreatePayoutRequest.md index 66f0b716..52c16d43 100644 --- a/docs/CreatePayoutRequest.md +++ b/docs/CreatePayoutRequest.md @@ -1,30 +1 @@ -# CreatePayoutRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**payment_account** | [**PaymentAccount**](PaymentAccount.md) | | -**instruction_set** | [**List[PayoutInstruction]**](PayoutInstruction.md) | | - -## Example - -```python -from fireblocks.models.create_payout_request import CreatePayoutRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreatePayoutRequest from a JSON string -create_payout_request_instance = CreatePayoutRequest.from_json(json) -# print the JSON string representation of the object -print(CreatePayoutRequest.to_json()) - -# convert the object into a dict -create_payout_request_dict = create_payout_request_instance.to_dict() -# create an instance of CreatePayoutRequest from a dict -create_payout_request_from_dict = CreatePayoutRequest.from_dict(create_payout_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVQYXlvdXRSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnBheW1lbnRfYWNjb3VudCoqIHwgWyoqUGF5bWVudEFjY291bnQqKl0oUGF5bWVudEFjY291bnQubWQpIHwgIHwgCioqaW5zdHJ1Y3Rpb25fc2V0KiogfCBbKipMaXN0W1BheW91dEluc3RydWN0aW9uXSoqXShQYXlvdXRJbnN0cnVjdGlvbi5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9wYXlvdXRfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlUGF5b3V0UmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlUGF5b3V0UmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKY3JlYXRlX3BheW91dF9yZXF1ZXN0X2luc3RhbmNlID0gQ3JlYXRlUGF5b3V0UmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDcmVhdGVQYXlvdXRSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNyZWF0ZV9wYXlvdXRfcmVxdWVzdF9kaWN0ID0gY3JlYXRlX3BheW91dF9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVQYXlvdXRSZXF1ZXN0IGZyb20gYSBkaWN0CmNyZWF0ZV9wYXlvdXRfcmVxdWVzdF9mcm9tX2RpY3QgPSBDcmVhdGVQYXlvdXRSZXF1ZXN0LmZyb21fZGljdChjcmVhdGVfcGF5b3V0X3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CreateQuote.md b/docs/CreateQuote.md index e11c2dd6..194f95cd 100644 --- a/docs/CreateQuote.md +++ b/docs/CreateQuote.md @@ -1,37 +1 @@ -# CreateQuote - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**scope** | [**List[CreateQuoteScopeInner]**](CreateQuoteScopeInner.md) | | -**base_asset_id** | **str** | The asset you receive on BUY / give on SELL. | -**base_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional] -**quote_asset_id** | **str** | The counter asset used to pay/receive. | -**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional] -**base_amount** | **str** | Amount in baseAssetId. BUY = base amount to receive; SELL = base amount to sell. | -**slippage_bps** | **float** | Slippage tolerance in basis points (bps) for defi quotes - 1 is 0.01% and 10000 is 100% | [optional] [default to 50] -**settlement** | [**DVPSettlement**](DVPSettlement.md) | | [optional] -**side** | [**Side**](Side.md) | | - -## Example - -```python -from fireblocks.models.create_quote import CreateQuote - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateQuote from a JSON string -create_quote_instance = CreateQuote.from_json(json) -# print the JSON string representation of the object -print(CreateQuote.to_json()) - -# convert the object into a dict -create_quote_dict = create_quote_instance.to_dict() -# create an instance of CreateQuote from a dict -create_quote_from_dict = CreateQuote.from_dict(create_quote_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVRdW90ZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzY29wZSoqIHwgWyoqTGlzdFtDcmVhdGVRdW90ZVNjb3BlSW5uZXJdKipdKENyZWF0ZVF1b3RlU2NvcGVJbm5lci5tZCkgfCAgfCAKKipiYXNlX2Fzc2V0X2lkKiogfCAqKnN0cioqIHwgVGhlIGFzc2V0IHlvdSByZWNlaXZlIG9uIEJVWSAvIGdpdmUgb24gU0VMTC4gfCAKKipiYXNlX2Fzc2V0X3JhaWwqKiB8IFsqKlRyYW5zZmVyUmFpbCoqXShUcmFuc2ZlclJhaWwubWQpIHwgIHwgW29wdGlvbmFsXSAKKipxdW90ZV9hc3NldF9pZCoqIHwgKipzdHIqKiB8IFRoZSBjb3VudGVyIGFzc2V0IHVzZWQgdG8gcGF5L3JlY2VpdmUuIHwgCioqcXVvdGVfYXNzZXRfcmFpbCoqIHwgWyoqVHJhbnNmZXJSYWlsKipdKFRyYW5zZmVyUmFpbC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmJhc2VfYW1vdW50KiogfCAqKnN0cioqIHwgQW1vdW50IGluIGJhc2VBc3NldElkLiBCVVkgJiN4M0Q7IGJhc2UgYW1vdW50IHRvIHJlY2VpdmU7IFNFTEwgJiN4M0Q7IGJhc2UgYW1vdW50IHRvIHNlbGwuIHwgCioqc2xpcHBhZ2VfYnBzKiogfCAqKmZsb2F0KiogfCBTbGlwcGFnZSB0b2xlcmFuY2UgaW4gYmFzaXMgcG9pbnRzIChicHMpIGZvciBkZWZpIHF1b3RlcyAtIDEgaXMgMC4wMSUgYW5kIDEwMDAwIGlzIDEwMCUgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIDUwXQoqKnNldHRsZW1lbnQqKiB8IFsqKkRWUFNldHRsZW1lbnQqKl0oRFZQU2V0dGxlbWVudC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnNpZGUqKiB8IFsqKlNpZGUqKl0oU2lkZS5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9xdW90ZSBpbXBvcnQgQ3JlYXRlUXVvdGUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVF1b3RlIGZyb20gYSBKU09OIHN0cmluZwpjcmVhdGVfcXVvdGVfaW5zdGFuY2UgPSBDcmVhdGVRdW90ZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDcmVhdGVRdW90ZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjcmVhdGVfcXVvdGVfZGljdCA9IGNyZWF0ZV9xdW90ZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlUXVvdGUgZnJvbSBhIGRpY3QKY3JlYXRlX3F1b3RlX2Zyb21fZGljdCA9IENyZWF0ZVF1b3RlLmZyb21fZGljdChjcmVhdGVfcXVvdGVfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CreateQuoteScopeInner.md b/docs/CreateQuoteScopeInner.md index 062de637..ab9b713a 100644 --- a/docs/CreateQuoteScopeInner.md +++ b/docs/CreateQuoteScopeInner.md @@ -1,30 +1 @@ -# CreateQuoteScopeInner - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**provider_id** | **str** | The ID of the provider associated with the account. | -**account_id** | **str** | The ID of the account associated with the provider. | [optional] - -## Example - -```python -from fireblocks.models.create_quote_scope_inner import CreateQuoteScopeInner - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateQuoteScopeInner from a JSON string -create_quote_scope_inner_instance = CreateQuoteScopeInner.from_json(json) -# print the JSON string representation of the object -print(CreateQuoteScopeInner.to_json()) - -# convert the object into a dict -create_quote_scope_inner_dict = create_quote_scope_inner_instance.to_dict() -# create an instance of CreateQuoteScopeInner from a dict -create_quote_scope_inner_from_dict = CreateQuoteScopeInner.from_dict(create_quote_scope_inner_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVRdW90ZVNjb3BlSW5uZXIKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcHJvdmlkZXJfaWQqKiB8ICoqc3RyKiogfCBUaGUgSUQgb2YgdGhlIHByb3ZpZGVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgYWNjb3VudC4gfCAKKiphY2NvdW50X2lkKiogfCAqKnN0cioqIHwgVGhlIElEIG9mIHRoZSBhY2NvdW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJvdmlkZXIuIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9xdW90ZV9zY29wZV9pbm5lciBpbXBvcnQgQ3JlYXRlUXVvdGVTY29wZUlubmVyCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVRdW90ZVNjb3BlSW5uZXIgZnJvbSBhIEpTT04gc3RyaW5nCmNyZWF0ZV9xdW90ZV9zY29wZV9pbm5lcl9pbnN0YW5jZSA9IENyZWF0ZVF1b3RlU2NvcGVJbm5lci5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDcmVhdGVRdW90ZVNjb3BlSW5uZXIudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY3JlYXRlX3F1b3RlX3Njb3BlX2lubmVyX2RpY3QgPSBjcmVhdGVfcXVvdGVfc2NvcGVfaW5uZXJfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVF1b3RlU2NvcGVJbm5lciBmcm9tIGEgZGljdApjcmVhdGVfcXVvdGVfc2NvcGVfaW5uZXJfZnJvbV9kaWN0ID0gQ3JlYXRlUXVvdGVTY29wZUlubmVyLmZyb21fZGljdChjcmVhdGVfcXVvdGVfc2NvcGVfaW5uZXJfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CreateSigningKeyDto.md b/docs/CreateSigningKeyDto.md index 01b1f32f..9d300b1c 100644 --- a/docs/CreateSigningKeyDto.md +++ b/docs/CreateSigningKeyDto.md @@ -1,32 +1 @@ -# CreateSigningKeyDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**signing_device_key_id** | **str** | The ID, name or label of the key specified on the customer's signing device. | -**signed_cert_pem** | **str** | The signed certificate that includes the public key PEM of the signing key, signed by a validation key. | -**agent_user_id** | **str** | Id of user to which this key belongs | -**proof_of_ownership** | [**CreateSigningKeyDtoProofOfOwnership**](CreateSigningKeyDtoProofOfOwnership.md) | | [optional] - -## Example - -```python -from fireblocks.models.create_signing_key_dto import CreateSigningKeyDto - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateSigningKeyDto from a JSON string -create_signing_key_dto_instance = CreateSigningKeyDto.from_json(json) -# print the JSON string representation of the object -print(CreateSigningKeyDto.to_json()) - -# convert the object into a dict -create_signing_key_dto_dict = create_signing_key_dto_instance.to_dict() -# create an instance of CreateSigningKeyDto from a dict -create_signing_key_dto_from_dict = CreateSigningKeyDto.from_dict(create_signing_key_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVTaWduaW5nS2V5RHRvCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnNpZ25pbmdfZGV2aWNlX2tleV9pZCoqIHwgKipzdHIqKiB8IFRoZSBJRCwgbmFtZSBvciBsYWJlbCBvZiB0aGUga2V5IHNwZWNpZmllZCBvbiB0aGUgY3VzdG9tZXImIzM5O3Mgc2lnbmluZyBkZXZpY2UuIHwgCioqc2lnbmVkX2NlcnRfcGVtKiogfCAqKnN0cioqIHwgVGhlIHNpZ25lZCBjZXJ0aWZpY2F0ZSB0aGF0IGluY2x1ZGVzIHRoZSBwdWJsaWMga2V5IFBFTSBvZiB0aGUgc2lnbmluZyBrZXksIHNpZ25lZCBieSBhIHZhbGlkYXRpb24ga2V5LiB8IAoqKmFnZW50X3VzZXJfaWQqKiB8ICoqc3RyKiogfCBJZCBvZiB1c2VyIHRvIHdoaWNoIHRoaXMga2V5IGJlbG9uZ3MgfCAKKipwcm9vZl9vZl9vd25lcnNoaXAqKiB8IFsqKkNyZWF0ZVNpZ25pbmdLZXlEdG9Qcm9vZk9mT3duZXJzaGlwKipdKENyZWF0ZVNpZ25pbmdLZXlEdG9Qcm9vZk9mT3duZXJzaGlwLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfc2lnbmluZ19rZXlfZHRvIGltcG9ydCBDcmVhdGVTaWduaW5nS2V5RHRvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVTaWduaW5nS2V5RHRvIGZyb20gYSBKU09OIHN0cmluZwpjcmVhdGVfc2lnbmluZ19rZXlfZHRvX2luc3RhbmNlID0gQ3JlYXRlU2lnbmluZ0tleUR0by5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDcmVhdGVTaWduaW5nS2V5RHRvLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNyZWF0ZV9zaWduaW5nX2tleV9kdG9fZGljdCA9IGNyZWF0ZV9zaWduaW5nX2tleV9kdG9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVNpZ25pbmdLZXlEdG8gZnJvbSBhIGRpY3QKY3JlYXRlX3NpZ25pbmdfa2V5X2R0b19mcm9tX2RpY3QgPSBDcmVhdGVTaWduaW5nS2V5RHRvLmZyb21fZGljdChjcmVhdGVfc2lnbmluZ19rZXlfZHRvX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/CreateSigningKeyDtoProofOfOwnership.md b/docs/CreateSigningKeyDtoProofOfOwnership.md index 0e389f28..af877321 100644 --- a/docs/CreateSigningKeyDtoProofOfOwnership.md +++ b/docs/CreateSigningKeyDtoProofOfOwnership.md @@ -1,31 +1 @@ -# CreateSigningKeyDtoProofOfOwnership - -An object containing proof of ownership for the signing key. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | The message to be signed by the key as proof of ownership. 64 to 1024 bytes in hexadecimal format. | -**signature** | **str** | The signature of the message. 64 bytes in hexadecimal format. | - -## Example - -```python -from fireblocks.models.create_signing_key_dto_proof_of_ownership import CreateSigningKeyDtoProofOfOwnership - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateSigningKeyDtoProofOfOwnership from a JSON string -create_signing_key_dto_proof_of_ownership_instance = CreateSigningKeyDtoProofOfOwnership.from_json(json) -# print the JSON string representation of the object -print(CreateSigningKeyDtoProofOfOwnership.to_json()) - -# convert the object into a dict -create_signing_key_dto_proof_of_ownership_dict = create_signing_key_dto_proof_of_ownership_instance.to_dict() -# create an instance of CreateSigningKeyDtoProofOfOwnership from a dict -create_signing_key_dto_proof_of_ownership_from_dict = CreateSigningKeyDtoProofOfOwnership.from_dict(create_signing_key_dto_proof_of_ownership_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVTaWduaW5nS2V5RHRvUHJvb2ZPZk93bmVyc2hpcAoKQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvb2Ygb2Ygb3duZXJzaGlwIGZvciB0aGUgc2lnbmluZyBrZXkuCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbWVzc2FnZSoqIHwgKipzdHIqKiB8IFRoZSBtZXNzYWdlIHRvIGJlIHNpZ25lZCBieSB0aGUga2V5IGFzIHByb29mIG9mIG93bmVyc2hpcC4gNjQgdG8gMTAyNCBieXRlcyBpbiBoZXhhZGVjaW1hbCBmb3JtYXQuIHwgCioqc2lnbmF0dXJlKiogfCAqKnN0cioqIHwgVGhlIHNpZ25hdHVyZSBvZiB0aGUgbWVzc2FnZS4gNjQgYnl0ZXMgaW4gaGV4YWRlY2ltYWwgZm9ybWF0LiB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3NpZ25pbmdfa2V5X2R0b19wcm9vZl9vZl9vd25lcnNoaXAgaW1wb3J0IENyZWF0ZVNpZ25pbmdLZXlEdG9Qcm9vZk9mT3duZXJzaGlwCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVTaWduaW5nS2V5RHRvUHJvb2ZPZk93bmVyc2hpcCBmcm9tIGEgSlNPTiBzdHJpbmcKY3JlYXRlX3NpZ25pbmdfa2V5X2R0b19wcm9vZl9vZl9vd25lcnNoaXBfaW5zdGFuY2UgPSBDcmVhdGVTaWduaW5nS2V5RHRvUHJvb2ZPZk93bmVyc2hpcC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDcmVhdGVTaWduaW5nS2V5RHRvUHJvb2ZPZk93bmVyc2hpcC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjcmVhdGVfc2lnbmluZ19rZXlfZHRvX3Byb29mX29mX293bmVyc2hpcF9kaWN0ID0gY3JlYXRlX3NpZ25pbmdfa2V5X2R0b19wcm9vZl9vZl9vd25lcnNoaXBfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVNpZ25pbmdLZXlEdG9Qcm9vZk9mT3duZXJzaGlwIGZyb20gYSBkaWN0CmNyZWF0ZV9zaWduaW5nX2tleV9kdG9fcHJvb2Zfb2Zfb3duZXJzaGlwX2Zyb21fZGljdCA9IENyZWF0ZVNpZ25pbmdLZXlEdG9Qcm9vZk9mT3duZXJzaGlwLmZyb21fZGljdChjcmVhdGVfc2lnbmluZ19rZXlfZHRvX3Byb29mX29mX293bmVyc2hpcF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CreateTagRequest.md b/docs/CreateTagRequest.md index 002b9875..aef98ee9 100644 --- a/docs/CreateTagRequest.md +++ b/docs/CreateTagRequest.md @@ -1,32 +1 @@ -# CreateTagRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**label** | **str** | The tag label | -**description** | **str** | Description for the tag | [optional] -**color** | **str** | The tag color in hex format | [optional] -**is_protected** | **bool** | Indication if the tag is protected tag | [optional] [default to False] - -## Example - -```python -from fireblocks.models.create_tag_request import CreateTagRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateTagRequest from a JSON string -create_tag_request_instance = CreateTagRequest.from_json(json) -# print the JSON string representation of the object -print(CreateTagRequest.to_json()) - -# convert the object into a dict -create_tag_request_dict = create_tag_request_instance.to_dict() -# create an instance of CreateTagRequest from a dict -create_tag_request_from_dict = CreateTagRequest.from_dict(create_tag_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVUYWdSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmxhYmVsKiogfCAqKnN0cioqIHwgVGhlIHRhZyBsYWJlbCB8IAoqKmRlc2NyaXB0aW9uKiogfCAqKnN0cioqIHwgRGVzY3JpcHRpb24gZm9yIHRoZSB0YWcgfCBbb3B0aW9uYWxdIAoqKmNvbG9yKiogfCAqKnN0cioqIHwgVGhlIHRhZyBjb2xvciBpbiBoZXggZm9ybWF0IHwgW29wdGlvbmFsXSAKKippc19wcm90ZWN0ZWQqKiB8ICoqYm9vbCoqIHwgSW5kaWNhdGlvbiBpZiB0aGUgdGFnIGlzIHByb3RlY3RlZCB0YWcgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIEZhbHNlXQoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3RhZ19yZXF1ZXN0IGltcG9ydCBDcmVhdGVUYWdSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVUYWdSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpjcmVhdGVfdGFnX3JlcXVlc3RfaW5zdGFuY2UgPSBDcmVhdGVUYWdSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENyZWF0ZVRhZ1JlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY3JlYXRlX3RhZ19yZXF1ZXN0X2RpY3QgPSBjcmVhdGVfdGFnX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVRhZ1JlcXVlc3QgZnJvbSBhIGRpY3QKY3JlYXRlX3RhZ19yZXF1ZXN0X2Zyb21fZGljdCA9IENyZWF0ZVRhZ1JlcXVlc3QuZnJvbV9kaWN0KGNyZWF0ZV90YWdfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CreateTokenRequestDto.md b/docs/CreateTokenRequestDto.md index 731344a2..23bf78c9 100644 --- a/docs/CreateTokenRequestDto.md +++ b/docs/CreateTokenRequestDto.md @@ -1,38 +1 @@ -# CreateTokenRequestDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**blockchain_id** | **str** | The id of the blockchain the request was initiated on | [optional] -**asset_id** | **str** | The base asset identifier of the blockchain you want to deploy to | [optional] -**vault_account_id** | **str** | The id of the vault account that initiated the request to issue the token | -**create_params** | [**CreateTokenRequestDtoCreateParams**](CreateTokenRequestDtoCreateParams.md) | | -**display_name** | **str** | | [optional] -**use_gasless** | **bool** | Indicates whether the token should be created in a gasless manner, utilizing the ERC-2771 standard. When set to true, the transaction will be relayed by a designated relayer. The workspace must be configured to use Fireblocks gasless relay. | [optional] -**fee** | **str** | Max fee amount for the write function transaction. interchangeable with the 'feeLevel' field | [optional] -**fee_level** | **str** | Fee level for the write function transaction. interchangeable with the 'fee' field | [optional] -**tx_note** | **str** | Custom note that describes the transaction at your Fireblocks workspace. This note will be visible in the Fireblocks UI and in the transaction details and not on the blockchain. | [optional] -**external_id** | **str** | External id that can be used to identify the transaction in your system. The unique identifier of the transaction outside of Fireblocks with max length of 255 characters | [optional] - -## Example - -```python -from fireblocks.models.create_token_request_dto import CreateTokenRequestDto - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateTokenRequestDto from a JSON string -create_token_request_dto_instance = CreateTokenRequestDto.from_json(json) -# print the JSON string representation of the object -print(CreateTokenRequestDto.to_json()) - -# convert the object into a dict -create_token_request_dto_dict = create_token_request_dto_instance.to_dict() -# create an instance of CreateTokenRequestDto from a dict -create_token_request_dto_from_dict = CreateTokenRequestDto.from_dict(create_token_request_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVUb2tlblJlcXVlc3REdG8KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYmxvY2tjaGFpbl9pZCoqIHwgKipzdHIqKiB8IFRoZSBpZCBvZiB0aGUgYmxvY2tjaGFpbiB0aGUgcmVxdWVzdCB3YXMgaW5pdGlhdGVkIG9uIHwgW29wdGlvbmFsXSAKKiphc3NldF9pZCoqIHwgKipzdHIqKiB8IFRoZSBiYXNlIGFzc2V0IGlkZW50aWZpZXIgb2YgdGhlIGJsb2NrY2hhaW4geW91IHdhbnQgdG8gZGVwbG95IHRvIHwgW29wdGlvbmFsXSAKKip2YXVsdF9hY2NvdW50X2lkKiogfCAqKnN0cioqIHwgVGhlIGlkIG9mIHRoZSB2YXVsdCBhY2NvdW50IHRoYXQgaW5pdGlhdGVkIHRoZSByZXF1ZXN0IHRvIGlzc3VlIHRoZSB0b2tlbiB8IAoqKmNyZWF0ZV9wYXJhbXMqKiB8IFsqKkNyZWF0ZVRva2VuUmVxdWVzdER0b0NyZWF0ZVBhcmFtcyoqXShDcmVhdGVUb2tlblJlcXVlc3REdG9DcmVhdGVQYXJhbXMubWQpIHwgIHwgCioqZGlzcGxheV9uYW1lKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKip1c2VfZ2FzbGVzcyoqIHwgKipib29sKiogfCBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdG9rZW4gc2hvdWxkIGJlIGNyZWF0ZWQgaW4gYSBnYXNsZXNzIG1hbm5lciwgdXRpbGl6aW5nIHRoZSBFUkMtMjc3MSBzdGFuZGFyZC4gV2hlbiBzZXQgdG8gdHJ1ZSwgdGhlIHRyYW5zYWN0aW9uIHdpbGwgYmUgcmVsYXllZCBieSBhIGRlc2lnbmF0ZWQgcmVsYXllci4gVGhlIHdvcmtzcGFjZSBtdXN0IGJlIGNvbmZpZ3VyZWQgdG8gdXNlIEZpcmVibG9ja3MgZ2FzbGVzcyByZWxheS4gfCBbb3B0aW9uYWxdIAoqKmZlZSoqIHwgKipzdHIqKiB8IE1heCBmZWUgYW1vdW50IGZvciB0aGUgd3JpdGUgZnVuY3Rpb24gdHJhbnNhY3Rpb24uIGludGVyY2hhbmdlYWJsZSB3aXRoIHRoZSAmIzM5O2ZlZUxldmVsJiMzOTsgZmllbGQgfCBbb3B0aW9uYWxdIAoqKmZlZV9sZXZlbCoqIHwgKipzdHIqKiB8IEZlZSBsZXZlbCBmb3IgdGhlIHdyaXRlIGZ1bmN0aW9uIHRyYW5zYWN0aW9uLiBpbnRlcmNoYW5nZWFibGUgd2l0aCB0aGUgJiMzOTtmZWUmIzM5OyBmaWVsZCB8IFtvcHRpb25hbF0gCioqdHhfbm90ZSoqIHwgKipzdHIqKiB8IEN1c3RvbSBub3RlIHRoYXQgZGVzY3JpYmVzIHRoZSB0cmFuc2FjdGlvbiBhdCB5b3VyIEZpcmVibG9ja3Mgd29ya3NwYWNlLiBUaGlzIG5vdGUgd2lsbCBiZSB2aXNpYmxlIGluIHRoZSBGaXJlYmxvY2tzIFVJIGFuZCBpbiB0aGUgdHJhbnNhY3Rpb24gZGV0YWlscyBhbmQgbm90IG9uIHRoZSBibG9ja2NoYWluLiB8IFtvcHRpb25hbF0gCioqZXh0ZXJuYWxfaWQqKiB8ICoqc3RyKiogfCBFeHRlcm5hbCBpZCB0aGF0IGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSB0cmFuc2FjdGlvbiBpbiB5b3VyIHN5c3RlbS4gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSB0cmFuc2FjdGlvbiBvdXRzaWRlIG9mIEZpcmVibG9ja3Mgd2l0aCBtYXggbGVuZ3RoIG9mIDI1NSBjaGFyYWN0ZXJzIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV90b2tlbl9yZXF1ZXN0X2R0byBpbXBvcnQgQ3JlYXRlVG9rZW5SZXF1ZXN0RHRvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVUb2tlblJlcXVlc3REdG8gZnJvbSBhIEpTT04gc3RyaW5nCmNyZWF0ZV90b2tlbl9yZXF1ZXN0X2R0b19pbnN0YW5jZSA9IENyZWF0ZVRva2VuUmVxdWVzdER0by5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDcmVhdGVUb2tlblJlcXVlc3REdG8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY3JlYXRlX3Rva2VuX3JlcXVlc3RfZHRvX2RpY3QgPSBjcmVhdGVfdG9rZW5fcmVxdWVzdF9kdG9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVRva2VuUmVxdWVzdER0byBmcm9tIGEgZGljdApjcmVhdGVfdG9rZW5fcmVxdWVzdF9kdG9fZnJvbV9kaWN0ID0gQ3JlYXRlVG9rZW5SZXF1ZXN0RHRvLmZyb21fZGljdChjcmVhdGVfdG9rZW5fcmVxdWVzdF9kdG9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CreateTokenRequestDtoCreateParams.md b/docs/CreateTokenRequestDtoCreateParams.md index ffe3795c..977bd916 100644 --- a/docs/CreateTokenRequestDtoCreateParams.md +++ b/docs/CreateTokenRequestDtoCreateParams.md @@ -1,34 +1 @@ -# CreateTokenRequestDtoCreateParams - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**contract_id** | **str** | The id of the contract template that will be used to create the token | -**deploy_function_params** | [**List[ParameterWithValue]**](ParameterWithValue.md) | The deploy function parameters and values of the contract template | [optional] -**symbol** | **str** | The symbol for the token, typically an abbreviated representation. | -**name** | **str** | The name of the token or asset being created. | -**issuer_address** | **str** | The address of the issuer of this token. Will be part of the identifier of this token on chain. | -**decimals** | **int** | The number of decimal places the token supports (e.g., 9 for typical Solana tokens). | - -## Example - -```python -from fireblocks.models.create_token_request_dto_create_params import CreateTokenRequestDtoCreateParams - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateTokenRequestDtoCreateParams from a JSON string -create_token_request_dto_create_params_instance = CreateTokenRequestDtoCreateParams.from_json(json) -# print the JSON string representation of the object -print(CreateTokenRequestDtoCreateParams.to_json()) - -# convert the object into a dict -create_token_request_dto_create_params_dict = create_token_request_dto_create_params_instance.to_dict() -# create an instance of CreateTokenRequestDtoCreateParams from a dict -create_token_request_dto_create_params_from_dict = CreateTokenRequestDtoCreateParams.from_dict(create_token_request_dto_create_params_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVUb2tlblJlcXVlc3REdG9DcmVhdGVQYXJhbXMKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqY29udHJhY3RfaWQqKiB8ICoqc3RyKiogfCBUaGUgaWQgb2YgdGhlIGNvbnRyYWN0IHRlbXBsYXRlIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGNyZWF0ZSB0aGUgdG9rZW4gfCAKKipkZXBsb3lfZnVuY3Rpb25fcGFyYW1zKiogfCBbKipMaXN0W1BhcmFtZXRlcldpdGhWYWx1ZV0qKl0oUGFyYW1ldGVyV2l0aFZhbHVlLm1kKSB8IFRoZSBkZXBsb3kgZnVuY3Rpb24gcGFyYW1ldGVycyBhbmQgdmFsdWVzIG9mIHRoZSBjb250cmFjdCB0ZW1wbGF0ZSB8IFtvcHRpb25hbF0gCioqc3ltYm9sKiogfCAqKnN0cioqIHwgVGhlIHN5bWJvbCBmb3IgdGhlIHRva2VuLCB0eXBpY2FsbHkgYW4gYWJicmV2aWF0ZWQgcmVwcmVzZW50YXRpb24uIHwgCioqbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBuYW1lIG9mIHRoZSB0b2tlbiBvciBhc3NldCBiZWluZyBjcmVhdGVkLiB8IAoqKmlzc3Vlcl9hZGRyZXNzKiogfCAqKnN0cioqIHwgVGhlIGFkZHJlc3Mgb2YgdGhlIGlzc3VlciBvZiB0aGlzIHRva2VuLiBXaWxsIGJlIHBhcnQgb2YgdGhlIGlkZW50aWZpZXIgb2YgdGhpcyB0b2tlbiBvbiBjaGFpbi4gfCAKKipkZWNpbWFscyoqIHwgKippbnQqKiB8IFRoZSBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgdGhlIHRva2VuIHN1cHBvcnRzIChlLmcuLCA5IGZvciB0eXBpY2FsIFNvbGFuYSB0b2tlbnMpLiB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3Rva2VuX3JlcXVlc3RfZHRvX2NyZWF0ZV9wYXJhbXMgaW1wb3J0IENyZWF0ZVRva2VuUmVxdWVzdER0b0NyZWF0ZVBhcmFtcwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlVG9rZW5SZXF1ZXN0RHRvQ3JlYXRlUGFyYW1zIGZyb20gYSBKU09OIHN0cmluZwpjcmVhdGVfdG9rZW5fcmVxdWVzdF9kdG9fY3JlYXRlX3BhcmFtc19pbnN0YW5jZSA9IENyZWF0ZVRva2VuUmVxdWVzdER0b0NyZWF0ZVBhcmFtcy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDcmVhdGVUb2tlblJlcXVlc3REdG9DcmVhdGVQYXJhbXMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY3JlYXRlX3Rva2VuX3JlcXVlc3RfZHRvX2NyZWF0ZV9wYXJhbXNfZGljdCA9IGNyZWF0ZV90b2tlbl9yZXF1ZXN0X2R0b19jcmVhdGVfcGFyYW1zX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVUb2tlblJlcXVlc3REdG9DcmVhdGVQYXJhbXMgZnJvbSBhIGRpY3QKY3JlYXRlX3Rva2VuX3JlcXVlc3RfZHRvX2NyZWF0ZV9wYXJhbXNfZnJvbV9kaWN0ID0gQ3JlYXRlVG9rZW5SZXF1ZXN0RHRvQ3JlYXRlUGFyYW1zLmZyb21fZGljdChjcmVhdGVfdG9rZW5fcmVxdWVzdF9kdG9fY3JlYXRlX3BhcmFtc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CreateTransactionResponse.md b/docs/CreateTransactionResponse.md index f78e2f41..40be0920 100644 --- a/docs/CreateTransactionResponse.md +++ b/docs/CreateTransactionResponse.md @@ -1,31 +1 @@ -# CreateTransactionResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The ID of the transaction. | [optional] -**status** | **str** | The primary status of the transaction. For details, see [Primary transaction statuses.] (https://developers.fireblocks.com/reference/primary-transaction-statuses) | [optional] -**system_messages** | [**List[SystemMessageInfo]**](SystemMessageInfo.md) | | [optional] - -## Example - -```python -from fireblocks.models.create_transaction_response import CreateTransactionResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateTransactionResponse from a JSON string -create_transaction_response_instance = CreateTransactionResponse.from_json(json) -# print the JSON string representation of the object -print(CreateTransactionResponse.to_json()) - -# convert the object into a dict -create_transaction_response_dict = create_transaction_response_instance.to_dict() -# create an instance of CreateTransactionResponse from a dict -create_transaction_response_from_dict = CreateTransactionResponse.from_dict(create_transaction_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVUcmFuc2FjdGlvblJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgVGhlIElEIG9mIHRoZSB0cmFuc2FjdGlvbi4gfCBbb3B0aW9uYWxdIAoqKnN0YXR1cyoqIHwgKipzdHIqKiB8IFRoZSBwcmltYXJ5IHN0YXR1cyBvZiB0aGUgdHJhbnNhY3Rpb24uIEZvciBkZXRhaWxzLCBzZWUgW1ByaW1hcnkgdHJhbnNhY3Rpb24gc3RhdHVzZXMuXSAoaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS9wcmltYXJ5LXRyYW5zYWN0aW9uLXN0YXR1c2VzKSB8IFtvcHRpb25hbF0gCioqc3lzdGVtX21lc3NhZ2VzKiogfCBbKipMaXN0W1N5c3RlbU1lc3NhZ2VJbmZvXSoqXShTeXN0ZW1NZXNzYWdlSW5mby5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3RyYW5zYWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBDcmVhdGVUcmFuc2FjdGlvblJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVUcmFuc2FjdGlvblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpjcmVhdGVfdHJhbnNhY3Rpb25fcmVzcG9uc2VfaW5zdGFuY2UgPSBDcmVhdGVUcmFuc2FjdGlvblJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENyZWF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY3JlYXRlX3RyYW5zYWN0aW9uX3Jlc3BvbnNlX2RpY3QgPSBjcmVhdGVfdHJhbnNhY3Rpb25fcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UgZnJvbSBhIGRpY3QKY3JlYXRlX3RyYW5zYWN0aW9uX3Jlc3BvbnNlX2Zyb21fZGljdCA9IENyZWF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UuZnJvbV9kaWN0KGNyZWF0ZV90cmFuc2FjdGlvbl9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CreateTransferConfigOperationRequest.md b/docs/CreateTransferConfigOperationRequest.md index b368afe1..ed2219e8 100644 --- a/docs/CreateTransferConfigOperationRequest.md +++ b/docs/CreateTransferConfigOperationRequest.md @@ -1,30 +1 @@ -# CreateTransferConfigOperationRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**TransferOperationType**](TransferOperationType.md) | | -**params** | [**TransferOperationConfigParams**](TransferOperationConfigParams.md) | | - -## Example - -```python -from fireblocks.models.create_transfer_config_operation_request import CreateTransferConfigOperationRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateTransferConfigOperationRequest from a JSON string -create_transfer_config_operation_request_instance = CreateTransferConfigOperationRequest.from_json(json) -# print the JSON string representation of the object -print(CreateTransferConfigOperationRequest.to_json()) - -# convert the object into a dict -create_transfer_config_operation_request_dict = create_transfer_config_operation_request_instance.to_dict() -# create an instance of CreateTransferConfigOperationRequest from a dict -create_transfer_config_operation_request_from_dict = CreateTransferConfigOperationRequest.from_dict(create_transfer_config_operation_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVUcmFuc2ZlckNvbmZpZ09wZXJhdGlvblJlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgWyoqVHJhbnNmZXJPcGVyYXRpb25UeXBlKipdKFRyYW5zZmVyT3BlcmF0aW9uVHlwZS5tZCkgfCAgfCAKKipwYXJhbXMqKiB8IFsqKlRyYW5zZmVyT3BlcmF0aW9uQ29uZmlnUGFyYW1zKipdKFRyYW5zZmVyT3BlcmF0aW9uQ29uZmlnUGFyYW1zLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3RyYW5zZmVyX2NvbmZpZ19vcGVyYXRpb25fcmVxdWVzdCBpbXBvcnQgQ3JlYXRlVHJhbnNmZXJDb25maWdPcGVyYXRpb25SZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVUcmFuc2ZlckNvbmZpZ09wZXJhdGlvblJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCmNyZWF0ZV90cmFuc2Zlcl9jb25maWdfb3BlcmF0aW9uX3JlcXVlc3RfaW5zdGFuY2UgPSBDcmVhdGVUcmFuc2ZlckNvbmZpZ09wZXJhdGlvblJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ3JlYXRlVHJhbnNmZXJDb25maWdPcGVyYXRpb25SZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNyZWF0ZV90cmFuc2Zlcl9jb25maWdfb3BlcmF0aW9uX3JlcXVlc3RfZGljdCA9IGNyZWF0ZV90cmFuc2Zlcl9jb25maWdfb3BlcmF0aW9uX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uUmVxdWVzdCBmcm9tIGEgZGljdApjcmVhdGVfdHJhbnNmZXJfY29uZmlnX29wZXJhdGlvbl9yZXF1ZXN0X2Zyb21fZGljdCA9IENyZWF0ZVRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uUmVxdWVzdC5mcm9tX2RpY3QoY3JlYXRlX3RyYW5zZmVyX2NvbmZpZ19vcGVyYXRpb25fcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CreateUserGroupResponse.md b/docs/CreateUserGroupResponse.md index 0be95ffa..0fc02d5d 100644 --- a/docs/CreateUserGroupResponse.md +++ b/docs/CreateUserGroupResponse.md @@ -1,32 +1 @@ -# CreateUserGroupResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | [optional] -**name** | **str** | | [optional] -**member_ids** | **List[str]** | | [optional] -**status** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.create_user_group_response import CreateUserGroupResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateUserGroupResponse from a JSON string -create_user_group_response_instance = CreateUserGroupResponse.from_json(json) -# print the JSON string representation of the object -print(CreateUserGroupResponse.to_json()) - -# convert the object into a dict -create_user_group_response_dict = create_user_group_response_instance.to_dict() -# create an instance of CreateUserGroupResponse from a dict -create_user_group_response_from_dict = CreateUserGroupResponse.from_dict(create_user_group_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVVc2VyR3JvdXBSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqbmFtZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqbWVtYmVyX2lkcyoqIHwgKipMaXN0W3N0cl0qKiB8ICB8IFtvcHRpb25hbF0gCioqc3RhdHVzKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV91c2VyX2dyb3VwX3Jlc3BvbnNlIGltcG9ydCBDcmVhdGVVc2VyR3JvdXBSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlVXNlckdyb3VwUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmNyZWF0ZV91c2VyX2dyb3VwX3Jlc3BvbnNlX2luc3RhbmNlID0gQ3JlYXRlVXNlckdyb3VwUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ3JlYXRlVXNlckdyb3VwUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY3JlYXRlX3VzZXJfZ3JvdXBfcmVzcG9uc2VfZGljdCA9IGNyZWF0ZV91c2VyX2dyb3VwX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVVc2VyR3JvdXBSZXNwb25zZSBmcm9tIGEgZGljdApjcmVhdGVfdXNlcl9ncm91cF9yZXNwb25zZV9mcm9tX2RpY3QgPSBDcmVhdGVVc2VyR3JvdXBSZXNwb25zZS5mcm9tX2RpY3QoY3JlYXRlX3VzZXJfZ3JvdXBfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CreateValidationKeyDto.md b/docs/CreateValidationKeyDto.md index 7c6e058a..ddbaf9f0 100644 --- a/docs/CreateValidationKeyDto.md +++ b/docs/CreateValidationKeyDto.md @@ -1,30 +1 @@ -# CreateValidationKeyDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**public_key_pem** | **str** | The PEM encoded public key of the validation key being added | -**days_till_expired** | **float** | The number of days from the date the validation key was added until it expires | - -## Example - -```python -from fireblocks.models.create_validation_key_dto import CreateValidationKeyDto - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateValidationKeyDto from a JSON string -create_validation_key_dto_instance = CreateValidationKeyDto.from_json(json) -# print the JSON string representation of the object -print(CreateValidationKeyDto.to_json()) - -# convert the object into a dict -create_validation_key_dto_dict = create_validation_key_dto_instance.to_dict() -# create an instance of CreateValidationKeyDto from a dict -create_validation_key_dto_from_dict = CreateValidationKeyDto.from_dict(create_validation_key_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVWYWxpZGF0aW9uS2V5RHRvCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnB1YmxpY19rZXlfcGVtKiogfCAqKnN0cioqIHwgVGhlIFBFTSBlbmNvZGVkIHB1YmxpYyBrZXkgb2YgdGhlIHZhbGlkYXRpb24ga2V5IGJlaW5nIGFkZGVkIHwgCioqZGF5c190aWxsX2V4cGlyZWQqKiB8ICoqZmxvYXQqKiB8IFRoZSBudW1iZXIgb2YgZGF5cyBmcm9tIHRoZSBkYXRlIHRoZSB2YWxpZGF0aW9uIGtleSB3YXMgYWRkZWQgdW50aWwgaXQgZXhwaXJlcyB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3ZhbGlkYXRpb25fa2V5X2R0byBpbXBvcnQgQ3JlYXRlVmFsaWRhdGlvbktleUR0bwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlVmFsaWRhdGlvbktleUR0byBmcm9tIGEgSlNPTiBzdHJpbmcKY3JlYXRlX3ZhbGlkYXRpb25fa2V5X2R0b19pbnN0YW5jZSA9IENyZWF0ZVZhbGlkYXRpb25LZXlEdG8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ3JlYXRlVmFsaWRhdGlvbktleUR0by50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjcmVhdGVfdmFsaWRhdGlvbl9rZXlfZHRvX2RpY3QgPSBjcmVhdGVfdmFsaWRhdGlvbl9rZXlfZHRvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVWYWxpZGF0aW9uS2V5RHRvIGZyb20gYSBkaWN0CmNyZWF0ZV92YWxpZGF0aW9uX2tleV9kdG9fZnJvbV9kaWN0ID0gQ3JlYXRlVmFsaWRhdGlvbktleUR0by5mcm9tX2RpY3QoY3JlYXRlX3ZhbGlkYXRpb25fa2V5X2R0b19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CreateValidationKeyResponseDto.md b/docs/CreateValidationKeyResponseDto.md index a54da7fd..18c22982 100644 --- a/docs/CreateValidationKeyResponseDto.md +++ b/docs/CreateValidationKeyResponseDto.md @@ -1,32 +1 @@ -# CreateValidationKeyResponseDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**validation_key** | [**ValidationKeyDto**](ValidationKeyDto.md) | Created validation key | -**admins** | **List[str]** | Admins who have to approve the validation key addition | -**approval_threshold** | **float** | Minimal number of approvers required. 0 for all | -**request_id** | **float** | Approval request id. Can be cancelled | - -## Example - -```python -from fireblocks.models.create_validation_key_response_dto import CreateValidationKeyResponseDto - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateValidationKeyResponseDto from a JSON string -create_validation_key_response_dto_instance = CreateValidationKeyResponseDto.from_json(json) -# print the JSON string representation of the object -print(CreateValidationKeyResponseDto.to_json()) - -# convert the object into a dict -create_validation_key_response_dto_dict = create_validation_key_response_dto_instance.to_dict() -# create an instance of CreateValidationKeyResponseDto from a dict -create_validation_key_response_dto_from_dict = CreateValidationKeyResponseDto.from_dict(create_validation_key_response_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdmFsaWRhdGlvbl9rZXkqKiB8IFsqKlZhbGlkYXRpb25LZXlEdG8qKl0oVmFsaWRhdGlvbktleUR0by5tZCkgfCBDcmVhdGVkIHZhbGlkYXRpb24ga2V5IHwgCioqYWRtaW5zKiogfCAqKkxpc3Rbc3RyXSoqIHwgQWRtaW5zIHdobyBoYXZlIHRvIGFwcHJvdmUgdGhlIHZhbGlkYXRpb24ga2V5IGFkZGl0aW9uIHwgCioqYXBwcm92YWxfdGhyZXNob2xkKiogfCAqKmZsb2F0KiogfCBNaW5pbWFsIG51bWJlciBvZiBhcHByb3ZlcnMgcmVxdWlyZWQuIDAgZm9yIGFsbCB8IAoqKnJlcXVlc3RfaWQqKiB8ICoqZmxvYXQqKiB8IEFwcHJvdmFsIHJlcXVlc3QgaWQuIENhbiBiZSBjYW5jZWxsZWQgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV92YWxpZGF0aW9uX2tleV9yZXNwb25zZV9kdG8gaW1wb3J0IENyZWF0ZVZhbGlkYXRpb25LZXlSZXNwb25zZUR0bwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlVmFsaWRhdGlvbktleVJlc3BvbnNlRHRvIGZyb20gYSBKU09OIHN0cmluZwpjcmVhdGVfdmFsaWRhdGlvbl9rZXlfcmVzcG9uc2VfZHRvX2luc3RhbmNlID0gQ3JlYXRlVmFsaWRhdGlvbktleVJlc3BvbnNlRHRvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENyZWF0ZVZhbGlkYXRpb25LZXlSZXNwb25zZUR0by50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjcmVhdGVfdmFsaWRhdGlvbl9rZXlfcmVzcG9uc2VfZHRvX2RpY3QgPSBjcmVhdGVfdmFsaWRhdGlvbl9rZXlfcmVzcG9uc2VfZHRvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8gZnJvbSBhIGRpY3QKY3JlYXRlX3ZhbGlkYXRpb25fa2V5X3Jlc3BvbnNlX2R0b19mcm9tX2RpY3QgPSBDcmVhdGVWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8uZnJvbV9kaWN0KGNyZWF0ZV92YWxpZGF0aW9uX2tleV9yZXNwb25zZV9kdG9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CreateVaultAccountConnectionRequest.md b/docs/CreateVaultAccountConnectionRequest.md index 68916eac..6225b872 100644 --- a/docs/CreateVaultAccountConnectionRequest.md +++ b/docs/CreateVaultAccountConnectionRequest.md @@ -1,32 +1 @@ -# CreateVaultAccountConnectionRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vault_account_id** | **float** | The ID of the vault to connect to the dApp. | -**fee_level** | **str** | The default fee level. Valid values are `MEDIUM` and `HIGH`. | -**uri** | **str** | The WalletConnect uri provided by the dapp. | -**chain_ids** | **List[str]** | The IDs of the blockchain networks used in the Web3 connection (Currently required in V1 connections only). | [optional] - -## Example - -```python -from fireblocks.models.create_vault_account_connection_request import CreateVaultAccountConnectionRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateVaultAccountConnectionRequest from a JSON string -create_vault_account_connection_request_instance = CreateVaultAccountConnectionRequest.from_json(json) -# print the JSON string representation of the object -print(CreateVaultAccountConnectionRequest.to_json()) - -# convert the object into a dict -create_vault_account_connection_request_dict = create_vault_account_connection_request_instance.to_dict() -# create an instance of CreateVaultAccountConnectionRequest from a dict -create_vault_account_connection_request_from_dict = CreateVaultAccountConnectionRequest.from_dict(create_vault_account_connection_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVWYXVsdEFjY291bnRDb25uZWN0aW9uUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip2YXVsdF9hY2NvdW50X2lkKiogfCAqKmZsb2F0KiogfCBUaGUgSUQgb2YgdGhlIHZhdWx0IHRvIGNvbm5lY3QgdG8gdGhlIGRBcHAuIHwgCioqZmVlX2xldmVsKiogfCAqKnN0cioqIHwgVGhlIGRlZmF1bHQgZmVlIGxldmVsLiBWYWxpZCB2YWx1ZXMgYXJlICYjeDYwO01FRElVTSYjeDYwOyBhbmQgJiN4NjA7SElHSCYjeDYwOy4gfCAKKip1cmkqKiB8ICoqc3RyKiogfCBUaGUgV2FsbGV0Q29ubmVjdCB1cmkgcHJvdmlkZWQgYnkgdGhlIGRhcHAuIHwgCioqY2hhaW5faWRzKiogfCAqKkxpc3Rbc3RyXSoqIHwgVGhlIElEcyBvZiB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrcyB1c2VkIGluIHRoZSBXZWIzIGNvbm5lY3Rpb24gKEN1cnJlbnRseSByZXF1aXJlZCBpbiBWMSBjb25uZWN0aW9ucyBvbmx5KS4gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3ZhdWx0X2FjY291bnRfY29ubmVjdGlvbl9yZXF1ZXN0IGltcG9ydCBDcmVhdGVWYXVsdEFjY291bnRDb25uZWN0aW9uUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlVmF1bHRBY2NvdW50Q29ubmVjdGlvblJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCmNyZWF0ZV92YXVsdF9hY2NvdW50X2Nvbm5lY3Rpb25fcmVxdWVzdF9pbnN0YW5jZSA9IENyZWF0ZVZhdWx0QWNjb3VudENvbm5lY3Rpb25SZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENyZWF0ZVZhdWx0QWNjb3VudENvbm5lY3Rpb25SZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNyZWF0ZV92YXVsdF9hY2NvdW50X2Nvbm5lY3Rpb25fcmVxdWVzdF9kaWN0ID0gY3JlYXRlX3ZhdWx0X2FjY291bnRfY29ubmVjdGlvbl9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVWYXVsdEFjY291bnRDb25uZWN0aW9uUmVxdWVzdCBmcm9tIGEgZGljdApjcmVhdGVfdmF1bHRfYWNjb3VudF9jb25uZWN0aW9uX3JlcXVlc3RfZnJvbV9kaWN0ID0gQ3JlYXRlVmF1bHRBY2NvdW50Q29ubmVjdGlvblJlcXVlc3QuZnJvbV9kaWN0KGNyZWF0ZV92YXVsdF9hY2NvdW50X2Nvbm5lY3Rpb25fcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CreateVaultAccountRequest.md b/docs/CreateVaultAccountRequest.md index 4a68332b..3ddcd8cf 100644 --- a/docs/CreateVaultAccountRequest.md +++ b/docs/CreateVaultAccountRequest.md @@ -1,34 +1 @@ -# CreateVaultAccountRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | Account Name | [optional] -**hidden_on_ui** | **bool** | Optional - if true, the created account and all related transactions will not be shown on Fireblocks console | [optional] -**customer_ref_id** | **str** | Optional - Sets a customer reference ID | [optional] -**auto_fuel** | **bool** | Optional - Sets the autoFuel property of the vault account | [optional] -**vault_type** | **str** | Type of vault account. The default type will be set to MPC.<br/> If the workspace does not support the selected type, it will return an error. | [optional] [default to 'MPC'] -**auto_assign** | **bool** | Applicable only when the vault account type is KEY_LINK. For MPC, this parameter will be ignored.<br/> If set to true and there are available keys, random keys will be assigned to the newly created vault account.<br/> If set to true and there are no available keys to be assigned, it will return an error.<br/> If set to false, the vault account will be created without any keys. | [optional] [default to False] - -## Example - -```python -from fireblocks.models.create_vault_account_request import CreateVaultAccountRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateVaultAccountRequest from a JSON string -create_vault_account_request_instance = CreateVaultAccountRequest.from_json(json) -# print the JSON string representation of the object -print(CreateVaultAccountRequest.to_json()) - -# convert the object into a dict -create_vault_account_request_dict = create_vault_account_request_instance.to_dict() -# create an instance of CreateVaultAccountRequest from a dict -create_vault_account_request_from_dict = CreateVaultAccountRequest.from_dict(create_vault_account_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVWYXVsdEFjY291bnRSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm5hbWUqKiB8ICoqc3RyKiogfCBBY2NvdW50IE5hbWUgfCBbb3B0aW9uYWxdIAoqKmhpZGRlbl9vbl91aSoqIHwgKipib29sKiogfCBPcHRpb25hbCAtIGlmIHRydWUsIHRoZSBjcmVhdGVkIGFjY291bnQgYW5kIGFsbCByZWxhdGVkIHRyYW5zYWN0aW9ucyB3aWxsIG5vdCBiZSBzaG93biBvbiBGaXJlYmxvY2tzIGNvbnNvbGUgfCBbb3B0aW9uYWxdIAoqKmN1c3RvbWVyX3JlZl9pZCoqIHwgKipzdHIqKiB8IE9wdGlvbmFsIC0gU2V0cyBhIGN1c3RvbWVyIHJlZmVyZW5jZSBJRCB8IFtvcHRpb25hbF0gCioqYXV0b19mdWVsKiogfCAqKmJvb2wqKiB8IE9wdGlvbmFsIC0gU2V0cyB0aGUgYXV0b0Z1ZWwgcHJvcGVydHkgb2YgdGhlIHZhdWx0IGFjY291bnQgfCBbb3B0aW9uYWxdIAoqKnZhdWx0X3R5cGUqKiB8ICoqc3RyKiogfCBUeXBlIG9mIHZhdWx0IGFjY291bnQuIFRoZSBkZWZhdWx0IHR5cGUgd2lsbCBiZSBzZXQgdG8gTVBDLiZsdDtici8mZ3Q7ICBJZiB0aGUgd29ya3NwYWNlIGRvZXMgbm90IHN1cHBvcnQgdGhlIHNlbGVjdGVkIHR5cGUsIGl0IHdpbGwgcmV0dXJuIGFuIGVycm9yLiB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gJ01QQyddCioqYXV0b19hc3NpZ24qKiB8ICoqYm9vbCoqIHwgQXBwbGljYWJsZSBvbmx5IHdoZW4gdGhlIHZhdWx0IGFjY291bnQgdHlwZSBpcyBLRVlfTElOSy4gRm9yIE1QQywgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBpZ25vcmVkLiZsdDtici8mZ3Q7IElmIHNldCB0byB0cnVlIGFuZCB0aGVyZSBhcmUgYXZhaWxhYmxlIGtleXMsIHJhbmRvbSBrZXlzIHdpbGwgYmUgYXNzaWduZWQgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgdmF1bHQgYWNjb3VudC4mbHQ7YnIvJmd0OyBJZiBzZXQgdG8gdHJ1ZSBhbmQgdGhlcmUgYXJlIG5vIGF2YWlsYWJsZSBrZXlzIHRvIGJlIGFzc2lnbmVkLCBpdCB3aWxsIHJldHVybiBhbiBlcnJvci4mbHQ7YnIvJmd0OyBJZiBzZXQgdG8gZmFsc2UsIHRoZSB2YXVsdCBhY2NvdW50IHdpbGwgYmUgY3JlYXRlZCB3aXRob3V0IGFueSBrZXlzLiB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gRmFsc2VdCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0IGltcG9ydCBDcmVhdGVWYXVsdEFjY291bnRSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVWYXVsdEFjY291bnRSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpjcmVhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0X2luc3RhbmNlID0gQ3JlYXRlVmF1bHRBY2NvdW50UmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDcmVhdGVWYXVsdEFjY291bnRSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNyZWF0ZV92YXVsdF9hY2NvdW50X3JlcXVlc3RfZGljdCA9IGNyZWF0ZV92YXVsdF9hY2NvdW50X3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVZhdWx0QWNjb3VudFJlcXVlc3QgZnJvbSBhIGRpY3QKY3JlYXRlX3ZhdWx0X2FjY291bnRfcmVxdWVzdF9mcm9tX2RpY3QgPSBDcmVhdGVWYXVsdEFjY291bnRSZXF1ZXN0LmZyb21fZGljdChjcmVhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/CreateVaultAssetResponse.md b/docs/CreateVaultAssetResponse.md index ed197fab..6425f02e 100644 --- a/docs/CreateVaultAssetResponse.md +++ b/docs/CreateVaultAssetResponse.md @@ -1,36 +1 @@ -# CreateVaultAssetResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | [optional] -**address** | **str** | | [optional] -**legacy_address** | **str** | | [optional] -**enterprise_address** | **str** | | [optional] -**tag** | **str** | | [optional] -**eos_account_name** | **str** | | [optional] -**status** | **str** | | [optional] -**activation_tx_id** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.create_vault_asset_response import CreateVaultAssetResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateVaultAssetResponse from a JSON string -create_vault_asset_response_instance = CreateVaultAssetResponse.from_json(json) -# print the JSON string representation of the object -print(CreateVaultAssetResponse.to_json()) - -# convert the object into a dict -create_vault_asset_response_dict = create_vault_asset_response_instance.to_dict() -# create an instance of CreateVaultAssetResponse from a dict -create_vault_asset_response_from_dict = CreateVaultAssetResponse.from_dict(create_vault_asset_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVWYXVsdEFzc2V0UmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFkZHJlc3MqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmxlZ2FjeV9hZGRyZXNzKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKiplbnRlcnByaXNlX2FkZHJlc3MqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKnRhZyoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqZW9zX2FjY291bnRfbmFtZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqc3RhdHVzKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKiphY3RpdmF0aW9uX3R4X2lkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV92YXVsdF9hc3NldF9yZXNwb25zZSBpbXBvcnQgQ3JlYXRlVmF1bHRBc3NldFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVWYXVsdEFzc2V0UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmNyZWF0ZV92YXVsdF9hc3NldF9yZXNwb25zZV9pbnN0YW5jZSA9IENyZWF0ZVZhdWx0QXNzZXRSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDcmVhdGVWYXVsdEFzc2V0UmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY3JlYXRlX3ZhdWx0X2Fzc2V0X3Jlc3BvbnNlX2RpY3QgPSBjcmVhdGVfdmF1bHRfYXNzZXRfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVZhdWx0QXNzZXRSZXNwb25zZSBmcm9tIGEgZGljdApjcmVhdGVfdmF1bHRfYXNzZXRfcmVzcG9uc2VfZnJvbV9kaWN0ID0gQ3JlYXRlVmF1bHRBc3NldFJlc3BvbnNlLmZyb21fZGljdChjcmVhdGVfdmF1bHRfYXNzZXRfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CreateWalletRequest.md b/docs/CreateWalletRequest.md index 9afb5579..09a09602 100644 --- a/docs/CreateWalletRequest.md +++ b/docs/CreateWalletRequest.md @@ -1,30 +1 @@ -# CreateWalletRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | the wallet's display name | [optional] -**customer_ref_id** | **str** | Optional - Sets a customer reference ID | [optional] - -## Example - -```python -from fireblocks.models.create_wallet_request import CreateWalletRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateWalletRequest from a JSON string -create_wallet_request_instance = CreateWalletRequest.from_json(json) -# print the JSON string representation of the object -print(CreateWalletRequest.to_json()) - -# convert the object into a dict -create_wallet_request_dict = create_wallet_request_instance.to_dict() -# create an instance of CreateWalletRequest from a dict -create_wallet_request_from_dict = CreateWalletRequest.from_dict(create_wallet_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVXYWxsZXRSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm5hbWUqKiB8ICoqc3RyKiogfCB0aGUgd2FsbGV0JiMzOTtzIGRpc3BsYXkgbmFtZSB8IFtvcHRpb25hbF0gCioqY3VzdG9tZXJfcmVmX2lkKiogfCAqKnN0cioqIHwgT3B0aW9uYWwgLSBTZXRzIGEgY3VzdG9tZXIgcmVmZXJlbmNlIElEIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV93YWxsZXRfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlV2FsbGV0UmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlV2FsbGV0UmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKY3JlYXRlX3dhbGxldF9yZXF1ZXN0X2luc3RhbmNlID0gQ3JlYXRlV2FsbGV0UmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDcmVhdGVXYWxsZXRSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNyZWF0ZV93YWxsZXRfcmVxdWVzdF9kaWN0ID0gY3JlYXRlX3dhbGxldF9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVXYWxsZXRSZXF1ZXN0IGZyb20gYSBkaWN0CmNyZWF0ZV93YWxsZXRfcmVxdWVzdF9mcm9tX2RpY3QgPSBDcmVhdGVXYWxsZXRSZXF1ZXN0LmZyb21fZGljdChjcmVhdGVfd2FsbGV0X3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CreateWebhookRequest.md b/docs/CreateWebhookRequest.md index 1f80f754..9fc96375 100644 --- a/docs/CreateWebhookRequest.md +++ b/docs/CreateWebhookRequest.md @@ -1,32 +1 @@ -# CreateWebhookRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**url** | **str** | The url of the webhook where notifications will be sent. URL must be valid, unique and https. | -**description** | **str** | description of the webhook. should not contain special characters. | [optional] -**events** | [**List[WebhookEvent]**](WebhookEvent.md) | event types the webhook will subscribe to | -**enabled** | **bool** | The status of the webhook. If false, the webhook will not receive notifications. | [optional] [default to True] - -## Example - -```python -from fireblocks.models.create_webhook_request import CreateWebhookRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateWebhookRequest from a JSON string -create_webhook_request_instance = CreateWebhookRequest.from_json(json) -# print the JSON string representation of the object -print(CreateWebhookRequest.to_json()) - -# convert the object into a dict -create_webhook_request_dict = create_webhook_request_instance.to_dict() -# create an instance of CreateWebhookRequest from a dict -create_webhook_request_from_dict = CreateWebhookRequest.from_dict(create_webhook_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVXZWJob29rUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip1cmwqKiB8ICoqc3RyKiogfCBUaGUgdXJsIG9mIHRoZSB3ZWJob29rIHdoZXJlIG5vdGlmaWNhdGlvbnMgd2lsbCBiZSBzZW50LiBVUkwgbXVzdCBiZSB2YWxpZCwgdW5pcXVlIGFuZCBodHRwcy4gfCAKKipkZXNjcmlwdGlvbioqIHwgKipzdHIqKiB8IGRlc2NyaXB0aW9uIG9mIHRoZSB3ZWJob29rLiBzaG91bGQgbm90IGNvbnRhaW4gc3BlY2lhbCBjaGFyYWN0ZXJzLiB8IFtvcHRpb25hbF0gCioqZXZlbnRzKiogfCBbKipMaXN0W1dlYmhvb2tFdmVudF0qKl0oV2ViaG9va0V2ZW50Lm1kKSB8IGV2ZW50IHR5cGVzIHRoZSB3ZWJob29rIHdpbGwgc3Vic2NyaWJlIHRvIHwgCioqZW5hYmxlZCoqIHwgKipib29sKiogfCBUaGUgc3RhdHVzIG9mIHRoZSB3ZWJob29rLiBJZiBmYWxzZSwgdGhlIHdlYmhvb2sgd2lsbCBub3QgcmVjZWl2ZSBub3RpZmljYXRpb25zLiB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gVHJ1ZV0KCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV93ZWJob29rX3JlcXVlc3QgaW1wb3J0IENyZWF0ZVdlYmhvb2tSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVXZWJob29rUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKY3JlYXRlX3dlYmhvb2tfcmVxdWVzdF9pbnN0YW5jZSA9IENyZWF0ZVdlYmhvb2tSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KENyZWF0ZVdlYmhvb2tSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmNyZWF0ZV93ZWJob29rX3JlcXVlc3RfZGljdCA9IGNyZWF0ZV93ZWJob29rX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVdlYmhvb2tSZXF1ZXN0IGZyb20gYSBkaWN0CmNyZWF0ZV93ZWJob29rX3JlcXVlc3RfZnJvbV9kaWN0ID0gQ3JlYXRlV2ViaG9va1JlcXVlc3QuZnJvbV9kaWN0KGNyZWF0ZV93ZWJob29rX3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/CreateWorkflowExecutionRequestParamsInner.md b/docs/CreateWorkflowExecutionRequestParamsInner.md index a7d128ac..3665b64f 100644 --- a/docs/CreateWorkflowExecutionRequestParamsInner.md +++ b/docs/CreateWorkflowExecutionRequestParamsInner.md @@ -1,30 +1 @@ -# CreateWorkflowExecutionRequestParamsInner - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**config_operation_id** | **str** | | -**execution_params** | [**DisbursementOperationExecutionParamsExecutionParams**](DisbursementOperationExecutionParamsExecutionParams.md) | | [optional] - -## Example - -```python -from fireblocks.models.create_workflow_execution_request_params_inner import CreateWorkflowExecutionRequestParamsInner - -# TODO update the JSON string below -json = "{}" -# create an instance of CreateWorkflowExecutionRequestParamsInner from a JSON string -create_workflow_execution_request_params_inner_instance = CreateWorkflowExecutionRequestParamsInner.from_json(json) -# print the JSON string representation of the object -print(CreateWorkflowExecutionRequestParamsInner.to_json()) - -# convert the object into a dict -create_workflow_execution_request_params_inner_dict = create_workflow_execution_request_params_inner_instance.to_dict() -# create an instance of CreateWorkflowExecutionRequestParamsInner from a dict -create_workflow_execution_request_params_inner_from_dict = CreateWorkflowExecutionRequestParamsInner.from_dict(create_workflow_execution_request_params_inner_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDcmVhdGVXb3JrZmxvd0V4ZWN1dGlvblJlcXVlc3RQYXJhbXNJbm5lcgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipjb25maWdfb3BlcmF0aW9uX2lkKiogfCAqKnN0cioqIHwgIHwgCioqZXhlY3V0aW9uX3BhcmFtcyoqIHwgWyoqRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zKipdKERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtcy5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3dvcmtmbG93X2V4ZWN1dGlvbl9yZXF1ZXN0X3BhcmFtc19pbm5lciBpbXBvcnQgQ3JlYXRlV29ya2Zsb3dFeGVjdXRpb25SZXF1ZXN0UGFyYW1zSW5uZXIKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVdvcmtmbG93RXhlY3V0aW9uUmVxdWVzdFBhcmFtc0lubmVyIGZyb20gYSBKU09OIHN0cmluZwpjcmVhdGVfd29ya2Zsb3dfZXhlY3V0aW9uX3JlcXVlc3RfcGFyYW1zX2lubmVyX2luc3RhbmNlID0gQ3JlYXRlV29ya2Zsb3dFeGVjdXRpb25SZXF1ZXN0UGFyYW1zSW5uZXIuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoQ3JlYXRlV29ya2Zsb3dFeGVjdXRpb25SZXF1ZXN0UGFyYW1zSW5uZXIudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKY3JlYXRlX3dvcmtmbG93X2V4ZWN1dGlvbl9yZXF1ZXN0X3BhcmFtc19pbm5lcl9kaWN0ID0gY3JlYXRlX3dvcmtmbG93X2V4ZWN1dGlvbl9yZXF1ZXN0X3BhcmFtc19pbm5lcl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlV29ya2Zsb3dFeGVjdXRpb25SZXF1ZXN0UGFyYW1zSW5uZXIgZnJvbSBhIGRpY3QKY3JlYXRlX3dvcmtmbG93X2V4ZWN1dGlvbl9yZXF1ZXN0X3BhcmFtc19pbm5lcl9mcm9tX2RpY3QgPSBDcmVhdGVXb3JrZmxvd0V4ZWN1dGlvblJlcXVlc3RQYXJhbXNJbm5lci5mcm9tX2RpY3QoY3JlYXRlX3dvcmtmbG93X2V4ZWN1dGlvbl9yZXF1ZXN0X3BhcmFtc19pbm5lcl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/CustomRoutingDest.md b/docs/CustomRoutingDest.md index 805b2528..aa1f63d2 100644 --- a/docs/CustomRoutingDest.md +++ b/docs/CustomRoutingDest.md @@ -1,31 +1 @@ -# CustomRoutingDest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**scheme** | **str** | The network routing logic. | -**dst_type** | **str** | The account the funds are being sent to. | -**dst_id** | **str** | The ID of the account the funds are being sent to. | - -## Example - -```python -from fireblocks.models.custom_routing_dest import CustomRoutingDest - -# TODO update the JSON string below -json = "{}" -# create an instance of CustomRoutingDest from a JSON string -custom_routing_dest_instance = CustomRoutingDest.from_json(json) -# print the JSON string representation of the object -print(CustomRoutingDest.to_json()) - -# convert the object into a dict -custom_routing_dest_dict = custom_routing_dest_instance.to_dict() -# create an instance of CustomRoutingDest from a dict -custom_routing_dest_from_dict = CustomRoutingDest.from_dict(custom_routing_dest_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBDdXN0b21Sb3V0aW5nRGVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzY2hlbWUqKiB8ICoqc3RyKiogfCBUaGUgbmV0d29yayByb3V0aW5nIGxvZ2ljLiB8IAoqKmRzdF90eXBlKiogfCAqKnN0cioqIHwgVGhlIGFjY291bnQgdGhlIGZ1bmRzIGFyZSBiZWluZyBzZW50IHRvLiB8IAoqKmRzdF9pZCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgYWNjb3VudCB0aGUgZnVuZHMgYXJlIGJlaW5nIHNlbnQgdG8uIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jdXN0b21fcm91dGluZ19kZXN0IGltcG9ydCBDdXN0b21Sb3V0aW5nRGVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3VzdG9tUm91dGluZ0Rlc3QgZnJvbSBhIEpTT04gc3RyaW5nCmN1c3RvbV9yb3V0aW5nX2Rlc3RfaW5zdGFuY2UgPSBDdXN0b21Sb3V0aW5nRGVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChDdXN0b21Sb3V0aW5nRGVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApjdXN0b21fcm91dGluZ19kZXN0X2RpY3QgPSBjdXN0b21fcm91dGluZ19kZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDdXN0b21Sb3V0aW5nRGVzdCBmcm9tIGEgZGljdApjdXN0b21fcm91dGluZ19kZXN0X2Zyb21fZGljdCA9IEN1c3RvbVJvdXRpbmdEZXN0LmZyb21fZGljdChjdXN0b21fcm91dGluZ19kZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/DAppAddressConfig.md b/docs/DAppAddressConfig.md index d55a106e..de24c466 100644 --- a/docs/DAppAddressConfig.md +++ b/docs/DAppAddressConfig.md @@ -1,33 +1 @@ -# DAppAddressConfig - -dApp address configuration for policy rules - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**global_whitelisted** | **List[str]** | Globally whitelisted addresses | -**tenant_whitelisted** | **List[str]** | Tenant whitelisted addresses | -**urls** | **List[str]** | Allowed all address | -**operator** | [**PolicyOperator**](PolicyOperator.md) | | - -## Example - -```python -from fireblocks.models.d_app_address_config import DAppAddressConfig - -# TODO update the JSON string below -json = "{}" -# create an instance of DAppAddressConfig from a JSON string -d_app_address_config_instance = DAppAddressConfig.from_json(json) -# print the JSON string representation of the object -print(DAppAddressConfig.to_json()) - -# convert the object into a dict -d_app_address_config_dict = d_app_address_config_instance.to_dict() -# create an instance of DAppAddressConfig from a dict -d_app_address_config_from_dict = DAppAddressConfig.from_dict(d_app_address_config_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEQXBwQWRkcmVzc0NvbmZpZwoKZEFwcCBhZGRyZXNzIGNvbmZpZ3VyYXRpb24gZm9yIHBvbGljeSBydWxlcwoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmdsb2JhbF93aGl0ZWxpc3RlZCoqIHwgKipMaXN0W3N0cl0qKiB8IEdsb2JhbGx5IHdoaXRlbGlzdGVkIGFkZHJlc3NlcyB8IAoqKnRlbmFudF93aGl0ZWxpc3RlZCoqIHwgKipMaXN0W3N0cl0qKiB8IFRlbmFudCB3aGl0ZWxpc3RlZCBhZGRyZXNzZXMgfCAKKip1cmxzKiogfCAqKkxpc3Rbc3RyXSoqIHwgQWxsb3dlZCBhbGwgYWRkcmVzcyB8IAoqKm9wZXJhdG9yKiogfCBbKipQb2xpY3lPcGVyYXRvcioqXShQb2xpY3lPcGVyYXRvci5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRfYXBwX2FkZHJlc3NfY29uZmlnIGltcG9ydCBEQXBwQWRkcmVzc0NvbmZpZwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgREFwcEFkZHJlc3NDb25maWcgZnJvbSBhIEpTT04gc3RyaW5nCmRfYXBwX2FkZHJlc3NfY29uZmlnX2luc3RhbmNlID0gREFwcEFkZHJlc3NDb25maWcuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoREFwcEFkZHJlc3NDb25maWcudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZF9hcHBfYWRkcmVzc19jb25maWdfZGljdCA9IGRfYXBwX2FkZHJlc3NfY29uZmlnX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEQXBwQWRkcmVzc0NvbmZpZyBmcm9tIGEgZGljdApkX2FwcF9hZGRyZXNzX2NvbmZpZ19mcm9tX2RpY3QgPSBEQXBwQWRkcmVzc0NvbmZpZy5mcm9tX2RpY3QoZF9hcHBfYWRkcmVzc19jb25maWdfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/DVPSettlement.md b/docs/DVPSettlement.md index c2677224..660a1a38 100644 --- a/docs/DVPSettlement.md +++ b/docs/DVPSettlement.md @@ -1,32 +1 @@ -# DVPSettlement - -Source/Destination accounts for the quote (must have for defi quotes) - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**DVPSettlementType**](DVPSettlementType.md) | | -**source_account** | [**SettlementSourceAccount**](SettlementSourceAccount.md) | | -**destination_account** | [**AccountReference**](AccountReference.md) | | - -## Example - -```python -from fireblocks.models.dvp_settlement import DVPSettlement - -# TODO update the JSON string below -json = "{}" -# create an instance of DVPSettlement from a JSON string -dvp_settlement_instance = DVPSettlement.from_json(json) -# print the JSON string representation of the object -print(DVPSettlement.to_json()) - -# convert the object into a dict -dvp_settlement_dict = dvp_settlement_instance.to_dict() -# create an instance of DVPSettlement from a dict -dvp_settlement_from_dict = DVPSettlement.from_dict(dvp_settlement_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEVlBTZXR0bGVtZW50CgpTb3VyY2UvRGVzdGluYXRpb24gYWNjb3VudHMgZm9yIHRoZSBxdW90ZSAobXVzdCBoYXZlIGZvciBkZWZpIHF1b3RlcykKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eXBlKiogfCBbKipEVlBTZXR0bGVtZW50VHlwZSoqXShEVlBTZXR0bGVtZW50VHlwZS5tZCkgfCAgfCAKKipzb3VyY2VfYWNjb3VudCoqIHwgWyoqU2V0dGxlbWVudFNvdXJjZUFjY291bnQqKl0oU2V0dGxlbWVudFNvdXJjZUFjY291bnQubWQpIHwgIHwgCioqZGVzdGluYXRpb25fYWNjb3VudCoqIHwgWyoqQWNjb3VudFJlZmVyZW5jZSoqXShBY2NvdW50UmVmZXJlbmNlLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZHZwX3NldHRsZW1lbnQgaW1wb3J0IERWUFNldHRsZW1lbnQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERWUFNldHRsZW1lbnQgZnJvbSBhIEpTT04gc3RyaW5nCmR2cF9zZXR0bGVtZW50X2luc3RhbmNlID0gRFZQU2V0dGxlbWVudC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChEVlBTZXR0bGVtZW50LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmR2cF9zZXR0bGVtZW50X2RpY3QgPSBkdnBfc2V0dGxlbWVudF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRFZQU2V0dGxlbWVudCBmcm9tIGEgZGljdApkdnBfc2V0dGxlbWVudF9mcm9tX2RpY3QgPSBEVlBTZXR0bGVtZW50LmZyb21fZGljdChkdnBfc2V0dGxlbWVudF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/DVPSettlementType.md b/docs/DVPSettlementType.md index 23454ac5..e3b36736 100644 --- a/docs/DVPSettlementType.md +++ b/docs/DVPSettlementType.md @@ -1,10 +1 @@ -# DVPSettlementType - - -## Enum - -* `DVP` (value: `'DVP'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEVlBTZXR0bGVtZW50VHlwZQoKCiMjIEVudW0KCiogYERWUGAgKHZhbHVlOiBgJ0RWUCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/DecodedLog.md b/docs/DecodedLog.md index 1c0fcb90..e3d07edb 100644 --- a/docs/DecodedLog.md +++ b/docs/DecodedLog.md @@ -1,34 +1 @@ -# DecodedLog - -Decoded event log from a blockchain transaction. Note - Additional dynamic properties may be present beyond the required ones. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**address** | **str** | Contract address that emitted the log | -**block_hash** | **str** | Hash of the block containing this log | -**block_number** | **str** | Block number containing this log | -**transaction_hash** | **str** | Hash of the transaction that generated this log | -**log_index** | **str** | Index of the log in the transaction | - -## Example - -```python -from fireblocks.models.decoded_log import DecodedLog - -# TODO update the JSON string below -json = "{}" -# create an instance of DecodedLog from a JSON string -decoded_log_instance = DecodedLog.from_json(json) -# print the JSON string representation of the object -print(DecodedLog.to_json()) - -# convert the object into a dict -decoded_log_dict = decoded_log_instance.to_dict() -# create an instance of DecodedLog from a dict -decoded_log_from_dict = DecodedLog.from_dict(decoded_log_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEZWNvZGVkTG9nCgpEZWNvZGVkIGV2ZW50IGxvZyBmcm9tIGEgYmxvY2tjaGFpbiB0cmFuc2FjdGlvbi4gTm90ZSAtIEFkZGl0aW9uYWwgZHluYW1pYyBwcm9wZXJ0aWVzIG1heSBiZSBwcmVzZW50IGJleW9uZCB0aGUgcmVxdWlyZWQgb25lcy4KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphZGRyZXNzKiogfCAqKnN0cioqIHwgQ29udHJhY3QgYWRkcmVzcyB0aGF0IGVtaXR0ZWQgdGhlIGxvZyB8IAoqKmJsb2NrX2hhc2gqKiB8ICoqc3RyKiogfCBIYXNoIG9mIHRoZSBibG9jayBjb250YWluaW5nIHRoaXMgbG9nIHwgCioqYmxvY2tfbnVtYmVyKiogfCAqKnN0cioqIHwgQmxvY2sgbnVtYmVyIGNvbnRhaW5pbmcgdGhpcyBsb2cgfCAKKip0cmFuc2FjdGlvbl9oYXNoKiogfCAqKnN0cioqIHwgSGFzaCBvZiB0aGUgdHJhbnNhY3Rpb24gdGhhdCBnZW5lcmF0ZWQgdGhpcyBsb2cgfCAKKipsb2dfaW5kZXgqKiB8ICoqc3RyKiogfCBJbmRleCBvZiB0aGUgbG9nIGluIHRoZSB0cmFuc2FjdGlvbiB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVjb2RlZF9sb2cgaW1wb3J0IERlY29kZWRMb2cKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERlY29kZWRMb2cgZnJvbSBhIEpTT04gc3RyaW5nCmRlY29kZWRfbG9nX2luc3RhbmNlID0gRGVjb2RlZExvZy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChEZWNvZGVkTG9nLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmRlY29kZWRfbG9nX2RpY3QgPSBkZWNvZGVkX2xvZ19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGVjb2RlZExvZyBmcm9tIGEgZGljdApkZWNvZGVkX2xvZ19mcm9tX2RpY3QgPSBEZWNvZGVkTG9nLmZyb21fZGljdChkZWNvZGVkX2xvZ19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/DefaultNetworkRoutingDest.md b/docs/DefaultNetworkRoutingDest.md index 0f403f57..45018002 100644 --- a/docs/DefaultNetworkRoutingDest.md +++ b/docs/DefaultNetworkRoutingDest.md @@ -1,29 +1 @@ -# DefaultNetworkRoutingDest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**scheme** | **str** | The network routing logic. | - -## Example - -```python -from fireblocks.models.default_network_routing_dest import DefaultNetworkRoutingDest - -# TODO update the JSON string below -json = "{}" -# create an instance of DefaultNetworkRoutingDest from a JSON string -default_network_routing_dest_instance = DefaultNetworkRoutingDest.from_json(json) -# print the JSON string representation of the object -print(DefaultNetworkRoutingDest.to_json()) - -# convert the object into a dict -default_network_routing_dest_dict = default_network_routing_dest_instance.to_dict() -# create an instance of DefaultNetworkRoutingDest from a dict -default_network_routing_dest_from_dict = DefaultNetworkRoutingDest.from_dict(default_network_routing_dest_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEZWZhdWx0TmV0d29ya1JvdXRpbmdEZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnNjaGVtZSoqIHwgKipzdHIqKiB8IFRoZSBuZXR3b3JrIHJvdXRpbmcgbG9naWMuIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZWZhdWx0X25ldHdvcmtfcm91dGluZ19kZXN0IGltcG9ydCBEZWZhdWx0TmV0d29ya1JvdXRpbmdEZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZWZhdWx0TmV0d29ya1JvdXRpbmdEZXN0IGZyb20gYSBKU09OIHN0cmluZwpkZWZhdWx0X25ldHdvcmtfcm91dGluZ19kZXN0X2luc3RhbmNlID0gRGVmYXVsdE5ldHdvcmtSb3V0aW5nRGVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChEZWZhdWx0TmV0d29ya1JvdXRpbmdEZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmRlZmF1bHRfbmV0d29ya19yb3V0aW5nX2Rlc3RfZGljdCA9IGRlZmF1bHRfbmV0d29ya19yb3V0aW5nX2Rlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERlZmF1bHROZXR3b3JrUm91dGluZ0Rlc3QgZnJvbSBhIGRpY3QKZGVmYXVsdF9uZXR3b3JrX3JvdXRpbmdfZGVzdF9mcm9tX2RpY3QgPSBEZWZhdWx0TmV0d29ya1JvdXRpbmdEZXN0LmZyb21fZGljdChkZWZhdWx0X25ldHdvcmtfcm91dGluZ19kZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/Delegation.md b/docs/Delegation.md index 255ceeaf..d8396c7c 100644 --- a/docs/Delegation.md +++ b/docs/Delegation.md @@ -1,46 +1 @@ -# Delegation - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The unique identifier of the staking position | -**vault_account_id** | **str** | The source vault account to stake from | -**validator_name** | **str** | The destination validator address name | -**provider_name** | **str** | The destination validator provider name | -**chain_descriptor** | **str** | The protocol identifier (e.g. \"ETH\"/ \"SOL\") to use | -**amount** | **str** | Total value of the staking position. For Solana, Lido and Ethereum (compounding validator): includes the original stake plus accumulated rewards. For MATIC, Cosmos and Ethereum (legacy validator): refers to the amount currently staked. | -**rewards_amount** | **str** | The amount staked in the position, measured in the staked asset unit. | -**date_created** | **datetime** | When was the request made (ISO Date). | -**date_updated** | **datetime** | When has the position last changed (ISO Date). | -**status** | **str** | The current status. | -**related_transactions** | [**List[RelatedTransaction]**](RelatedTransaction.md) | An array of transaction objects related to this position. Each object includes a 'txId' representing the transaction ID and a 'completed' boolean indicating if the transaction was completed. | -**validator_address** | **str** | The destination address of the staking transaction. | -**provider_id** | [**StakingProvider**](StakingProvider.md) | | -**available_actions** | **List[str]** | An array of available actions that can be performed. for example, actions like \"unstake\" or \"withdraw\". | -**in_progress** | **bool** | Indicates whether there is an ongoing action for this position related to this request | -**in_progress_tx_id** | **str** | The transaction ID of the initial stake position request only. Only present when there is an active initial stake transaction. | [optional] -**blockchain_position_info** | [**DelegationBlockchainPositionInfo**](DelegationBlockchainPositionInfo.md) | | -**related_requests** | [**List[RelatedRequest]**](RelatedRequest.md) | | [optional] - -## Example - -```python -from fireblocks.models.delegation import Delegation - -# TODO update the JSON string below -json = "{}" -# create an instance of Delegation from a JSON string -delegation_instance = Delegation.from_json(json) -# print the JSON string representation of the object -print(Delegation.to_json()) - -# convert the object into a dict -delegation_dict = delegation_instance.to_dict() -# create an instance of Delegation from a dict -delegation_from_dict = Delegation.from_dict(delegation_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEZWxlZ2F0aW9uCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBzdGFraW5nIHBvc2l0aW9uIHwgCioqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8IFRoZSBzb3VyY2UgdmF1bHQgYWNjb3VudCB0byBzdGFrZSBmcm9tIHwgCioqdmFsaWRhdG9yX25hbWUqKiB8ICoqc3RyKiogfCBUaGUgZGVzdGluYXRpb24gdmFsaWRhdG9yIGFkZHJlc3MgbmFtZSB8IAoqKnByb3ZpZGVyX25hbWUqKiB8ICoqc3RyKiogfCBUaGUgZGVzdGluYXRpb24gdmFsaWRhdG9yIHByb3ZpZGVyIG5hbWUgfCAKKipjaGFpbl9kZXNjcmlwdG9yKiogfCAqKnN0cioqIHwgVGhlIHByb3RvY29sIGlkZW50aWZpZXIgKGUuZy4gXCZxdW90O0VUSFwmcXVvdDsvIFwmcXVvdDtTT0xcJnF1b3Q7KSB0byB1c2UgfCAKKiphbW91bnQqKiB8ICoqc3RyKiogfCBUb3RhbCB2YWx1ZSBvZiB0aGUgc3Rha2luZyBwb3NpdGlvbi4gRm9yIFNvbGFuYSwgTGlkbyBhbmQgRXRoZXJldW0gKGNvbXBvdW5kaW5nIHZhbGlkYXRvcik6IGluY2x1ZGVzIHRoZSBvcmlnaW5hbCBzdGFrZSBwbHVzIGFjY3VtdWxhdGVkIHJld2FyZHMuIEZvciBNQVRJQywgQ29zbW9zIGFuZCBFdGhlcmV1bSAobGVnYWN5IHZhbGlkYXRvcik6IHJlZmVycyB0byB0aGUgYW1vdW50IGN1cnJlbnRseSBzdGFrZWQuIHwgCioqcmV3YXJkc19hbW91bnQqKiB8ICoqc3RyKiogfCBUaGUgYW1vdW50IHN0YWtlZCBpbiB0aGUgcG9zaXRpb24sIG1lYXN1cmVkIGluIHRoZSBzdGFrZWQgYXNzZXQgdW5pdC4gfCAKKipkYXRlX2NyZWF0ZWQqKiB8ICoqZGF0ZXRpbWUqKiB8IFdoZW4gd2FzIHRoZSByZXF1ZXN0IG1hZGUgKElTTyBEYXRlKS4gfCAKKipkYXRlX3VwZGF0ZWQqKiB8ICoqZGF0ZXRpbWUqKiB8IFdoZW4gaGFzIHRoZSBwb3NpdGlvbiBsYXN0IGNoYW5nZWQgKElTTyBEYXRlKS4gfCAKKipzdGF0dXMqKiB8ICoqc3RyKiogfCBUaGUgY3VycmVudCBzdGF0dXMuIHwgCioqcmVsYXRlZF90cmFuc2FjdGlvbnMqKiB8IFsqKkxpc3RbUmVsYXRlZFRyYW5zYWN0aW9uXSoqXShSZWxhdGVkVHJhbnNhY3Rpb24ubWQpIHwgQW4gYXJyYXkgb2YgdHJhbnNhY3Rpb24gb2JqZWN0cyByZWxhdGVkIHRvIHRoaXMgcG9zaXRpb24uIEVhY2ggb2JqZWN0IGluY2x1ZGVzIGEgJiMzOTt0eElkJiMzOTsgcmVwcmVzZW50aW5nIHRoZSB0cmFuc2FjdGlvbiBJRCBhbmQgYSAmIzM5O2NvbXBsZXRlZCYjMzk7IGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgdHJhbnNhY3Rpb24gd2FzIGNvbXBsZXRlZC4gfCAKKip2YWxpZGF0b3JfYWRkcmVzcyoqIHwgKipzdHIqKiB8IFRoZSBkZXN0aW5hdGlvbiBhZGRyZXNzIG9mIHRoZSBzdGFraW5nIHRyYW5zYWN0aW9uLiB8IAoqKnByb3ZpZGVyX2lkKiogfCBbKipTdGFraW5nUHJvdmlkZXIqKl0oU3Rha2luZ1Byb3ZpZGVyLm1kKSB8ICB8IAoqKmF2YWlsYWJsZV9hY3Rpb25zKiogfCAqKkxpc3Rbc3RyXSoqIHwgQW4gYXJyYXkgb2YgYXZhaWxhYmxlIGFjdGlvbnMgdGhhdCBjYW4gYmUgcGVyZm9ybWVkLiBmb3IgZXhhbXBsZSwgYWN0aW9ucyBsaWtlIFwmcXVvdDt1bnN0YWtlXCZxdW90OyBvciBcJnF1b3Q7d2l0aGRyYXdcJnF1b3Q7LiB8IAoqKmluX3Byb2dyZXNzKiogfCAqKmJvb2wqKiB8IEluZGljYXRlcyB3aGV0aGVyIHRoZXJlIGlzIGFuIG9uZ29pbmcgYWN0aW9uIGZvciB0aGlzIHBvc2l0aW9uIHJlbGF0ZWQgdG8gdGhpcyByZXF1ZXN0IHwgCioqaW5fcHJvZ3Jlc3NfdHhfaWQqKiB8ICoqc3RyKiogfCBUaGUgdHJhbnNhY3Rpb24gSUQgb2YgdGhlIGluaXRpYWwgc3Rha2UgcG9zaXRpb24gcmVxdWVzdCBvbmx5LiBPbmx5IHByZXNlbnQgd2hlbiB0aGVyZSBpcyBhbiBhY3RpdmUgaW5pdGlhbCBzdGFrZSB0cmFuc2FjdGlvbi4gfCBbb3B0aW9uYWxdIAoqKmJsb2NrY2hhaW5fcG9zaXRpb25faW5mbyoqIHwgWyoqRGVsZWdhdGlvbkJsb2NrY2hhaW5Qb3NpdGlvbkluZm8qKl0oRGVsZWdhdGlvbkJsb2NrY2hhaW5Qb3NpdGlvbkluZm8ubWQpIHwgIHwgCioqcmVsYXRlZF9yZXF1ZXN0cyoqIHwgWyoqTGlzdFtSZWxhdGVkUmVxdWVzdF0qKl0oUmVsYXRlZFJlcXVlc3QubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlbGVnYXRpb24gaW1wb3J0IERlbGVnYXRpb24KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERlbGVnYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCmRlbGVnYXRpb25faW5zdGFuY2UgPSBEZWxlZ2F0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KERlbGVnYXRpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZGVsZWdhdGlvbl9kaWN0ID0gZGVsZWdhdGlvbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGVsZWdhdGlvbiBmcm9tIGEgZGljdApkZWxlZ2F0aW9uX2Zyb21fZGljdCA9IERlbGVnYXRpb24uZnJvbV9kaWN0KGRlbGVnYXRpb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/DelegationBlockchainPositionInfo.md b/docs/DelegationBlockchainPositionInfo.md index 68fe2a0f..6a823917 100644 --- a/docs/DelegationBlockchainPositionInfo.md +++ b/docs/DelegationBlockchainPositionInfo.md @@ -1,34 +1 @@ -# DelegationBlockchainPositionInfo - -Additional fields per blockchain - can be empty or missing if not initialized or no additional info exists. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**stake_account_address** | **str** | The stake account address matching the stakeAccountId. | -**stake_account_derivation_change_value** | **float** | The value of the change level in the BIP32 path which was used to derive the stake account address. | -**is_compounding_validator** | **bool** | Is the validator compounding (i.e it was created with compounding validator type). | -**total_withdrawable_amount** | **str** | The total amount available for withdrawal. | -**total_inactive_amount** | **str** | The total inactive amount. | - -## Example - -```python -from fireblocks.models.delegation_blockchain_position_info import DelegationBlockchainPositionInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of DelegationBlockchainPositionInfo from a JSON string -delegation_blockchain_position_info_instance = DelegationBlockchainPositionInfo.from_json(json) -# print the JSON string representation of the object -print(DelegationBlockchainPositionInfo.to_json()) - -# convert the object into a dict -delegation_blockchain_position_info_dict = delegation_blockchain_position_info_instance.to_dict() -# create an instance of DelegationBlockchainPositionInfo from a dict -delegation_blockchain_position_info_from_dict = DelegationBlockchainPositionInfo.from_dict(delegation_blockchain_position_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEZWxlZ2F0aW9uQmxvY2tjaGFpblBvc2l0aW9uSW5mbwoKQWRkaXRpb25hbCBmaWVsZHMgcGVyIGJsb2NrY2hhaW4gLSBjYW4gYmUgZW1wdHkgb3IgbWlzc2luZyBpZiBub3QgaW5pdGlhbGl6ZWQgb3Igbm8gYWRkaXRpb25hbCBpbmZvIGV4aXN0cy4KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzdGFrZV9hY2NvdW50X2FkZHJlc3MqKiB8ICoqc3RyKiogfCBUaGUgc3Rha2UgYWNjb3VudCBhZGRyZXNzIG1hdGNoaW5nIHRoZSBzdGFrZUFjY291bnRJZC4gfCAKKipzdGFrZV9hY2NvdW50X2Rlcml2YXRpb25fY2hhbmdlX3ZhbHVlKiogfCAqKmZsb2F0KiogfCBUaGUgdmFsdWUgb2YgdGhlIGNoYW5nZSBsZXZlbCBpbiB0aGUgQklQMzIgcGF0aCB3aGljaCB3YXMgdXNlZCB0byBkZXJpdmUgdGhlIHN0YWtlIGFjY291bnQgYWRkcmVzcy4gfCAKKippc19jb21wb3VuZGluZ192YWxpZGF0b3IqKiB8ICoqYm9vbCoqIHwgSXMgdGhlIHZhbGlkYXRvciBjb21wb3VuZGluZyAoaS5lIGl0IHdhcyBjcmVhdGVkIHdpdGggY29tcG91bmRpbmcgdmFsaWRhdG9yIHR5cGUpLiB8IAoqKnRvdGFsX3dpdGhkcmF3YWJsZV9hbW91bnQqKiB8ICoqc3RyKiogfCBUaGUgdG90YWwgYW1vdW50IGF2YWlsYWJsZSBmb3Igd2l0aGRyYXdhbC4gfCAKKip0b3RhbF9pbmFjdGl2ZV9hbW91bnQqKiB8ICoqc3RyKiogfCBUaGUgdG90YWwgaW5hY3RpdmUgYW1vdW50LiB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVsZWdhdGlvbl9ibG9ja2NoYWluX3Bvc2l0aW9uX2luZm8gaW1wb3J0IERlbGVnYXRpb25CbG9ja2NoYWluUG9zaXRpb25JbmZvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZWxlZ2F0aW9uQmxvY2tjaGFpblBvc2l0aW9uSW5mbyBmcm9tIGEgSlNPTiBzdHJpbmcKZGVsZWdhdGlvbl9ibG9ja2NoYWluX3Bvc2l0aW9uX2luZm9faW5zdGFuY2UgPSBEZWxlZ2F0aW9uQmxvY2tjaGFpblBvc2l0aW9uSW5mby5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChEZWxlZ2F0aW9uQmxvY2tjaGFpblBvc2l0aW9uSW5mby50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApkZWxlZ2F0aW9uX2Jsb2NrY2hhaW5fcG9zaXRpb25faW5mb19kaWN0ID0gZGVsZWdhdGlvbl9ibG9ja2NoYWluX3Bvc2l0aW9uX2luZm9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERlbGVnYXRpb25CbG9ja2NoYWluUG9zaXRpb25JbmZvIGZyb20gYSBkaWN0CmRlbGVnYXRpb25fYmxvY2tjaGFpbl9wb3NpdGlvbl9pbmZvX2Zyb21fZGljdCA9IERlbGVnYXRpb25CbG9ja2NoYWluUG9zaXRpb25JbmZvLmZyb21fZGljdChkZWxlZ2F0aW9uX2Jsb2NrY2hhaW5fcG9zaXRpb25faW5mb19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/DelegationSummary.md b/docs/DelegationSummary.md index 275470dd..3c15486f 100644 --- a/docs/DelegationSummary.md +++ b/docs/DelegationSummary.md @@ -1,32 +1 @@ -# DelegationSummary - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**active** | [**List[AmountAndChainDescriptor]**](AmountAndChainDescriptor.md) | An array of objects containing chain descriptors and associated amounts, representing active positions. | -**inactive** | [**List[AmountAndChainDescriptor]**](AmountAndChainDescriptor.md) | An array of objects containing chain descriptors and associated amounts, representing inactive positions. | -**rewards_amount** | [**List[AmountAndChainDescriptor]**](AmountAndChainDescriptor.md) | An array of objects containing chain descriptors and associated amounts, representing rewards positions. | -**total_staked** | [**List[AmountAndChainDescriptor]**](AmountAndChainDescriptor.md) | An array of objects with chain descriptors and total staked amounts, representing the combined staked totals of active and inactive positions. | - -## Example - -```python -from fireblocks.models.delegation_summary import DelegationSummary - -# TODO update the JSON string below -json = "{}" -# create an instance of DelegationSummary from a JSON string -delegation_summary_instance = DelegationSummary.from_json(json) -# print the JSON string representation of the object -print(DelegationSummary.to_json()) - -# convert the object into a dict -delegation_summary_dict = delegation_summary_instance.to_dict() -# create an instance of DelegationSummary from a dict -delegation_summary_from_dict = DelegationSummary.from_dict(delegation_summary_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEZWxlZ2F0aW9uU3VtbWFyeQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphY3RpdmUqKiB8IFsqKkxpc3RbQW1vdW50QW5kQ2hhaW5EZXNjcmlwdG9yXSoqXShBbW91bnRBbmRDaGFpbkRlc2NyaXB0b3IubWQpIHwgQW4gYXJyYXkgb2Ygb2JqZWN0cyBjb250YWluaW5nIGNoYWluIGRlc2NyaXB0b3JzIGFuZCBhc3NvY2lhdGVkIGFtb3VudHMsIHJlcHJlc2VudGluZyBhY3RpdmUgcG9zaXRpb25zLiB8IAoqKmluYWN0aXZlKiogfCBbKipMaXN0W0Ftb3VudEFuZENoYWluRGVzY3JpcHRvcl0qKl0oQW1vdW50QW5kQ2hhaW5EZXNjcmlwdG9yLm1kKSB8IEFuIGFycmF5IG9mIG9iamVjdHMgY29udGFpbmluZyBjaGFpbiBkZXNjcmlwdG9ycyBhbmQgYXNzb2NpYXRlZCBhbW91bnRzLCByZXByZXNlbnRpbmcgaW5hY3RpdmUgcG9zaXRpb25zLiB8IAoqKnJld2FyZHNfYW1vdW50KiogfCBbKipMaXN0W0Ftb3VudEFuZENoYWluRGVzY3JpcHRvcl0qKl0oQW1vdW50QW5kQ2hhaW5EZXNjcmlwdG9yLm1kKSB8IEFuIGFycmF5IG9mIG9iamVjdHMgY29udGFpbmluZyBjaGFpbiBkZXNjcmlwdG9ycyBhbmQgYXNzb2NpYXRlZCBhbW91bnRzLCByZXByZXNlbnRpbmcgcmV3YXJkcyBwb3NpdGlvbnMuIHwgCioqdG90YWxfc3Rha2VkKiogfCBbKipMaXN0W0Ftb3VudEFuZENoYWluRGVzY3JpcHRvcl0qKl0oQW1vdW50QW5kQ2hhaW5EZXNjcmlwdG9yLm1kKSB8IEFuIGFycmF5IG9mIG9iamVjdHMgd2l0aCBjaGFpbiBkZXNjcmlwdG9ycyBhbmQgdG90YWwgc3Rha2VkIGFtb3VudHMsIHJlcHJlc2VudGluZyB0aGUgY29tYmluZWQgc3Rha2VkIHRvdGFscyBvZiBhY3RpdmUgYW5kIGluYWN0aXZlIHBvc2l0aW9ucy4gfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlbGVnYXRpb25fc3VtbWFyeSBpbXBvcnQgRGVsZWdhdGlvblN1bW1hcnkKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERlbGVnYXRpb25TdW1tYXJ5IGZyb20gYSBKU09OIHN0cmluZwpkZWxlZ2F0aW9uX3N1bW1hcnlfaW5zdGFuY2UgPSBEZWxlZ2F0aW9uU3VtbWFyeS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChEZWxlZ2F0aW9uU3VtbWFyeS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApkZWxlZ2F0aW9uX3N1bW1hcnlfZGljdCA9IGRlbGVnYXRpb25fc3VtbWFyeV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGVsZWdhdGlvblN1bW1hcnkgZnJvbSBhIGRpY3QKZGVsZWdhdGlvbl9zdW1tYXJ5X2Zyb21fZGljdCA9IERlbGVnYXRpb25TdW1tYXJ5LmZyb21fZGljdChkZWxlZ2F0aW9uX3N1bW1hcnlfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/DeleteNetworkConnectionResponse.md b/docs/DeleteNetworkConnectionResponse.md index c5cc6e45..f3bdccd8 100644 --- a/docs/DeleteNetworkConnectionResponse.md +++ b/docs/DeleteNetworkConnectionResponse.md @@ -1,29 +1 @@ -# DeleteNetworkConnectionResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**success** | **bool** | | - -## Example - -```python -from fireblocks.models.delete_network_connection_response import DeleteNetworkConnectionResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of DeleteNetworkConnectionResponse from a JSON string -delete_network_connection_response_instance = DeleteNetworkConnectionResponse.from_json(json) -# print the JSON string representation of the object -print(DeleteNetworkConnectionResponse.to_json()) - -# convert the object into a dict -delete_network_connection_response_dict = delete_network_connection_response_instance.to_dict() -# create an instance of DeleteNetworkConnectionResponse from a dict -delete_network_connection_response_from_dict = DeleteNetworkConnectionResponse.from_dict(delete_network_connection_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEZWxldGVOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnN1Y2Nlc3MqKiB8ICoqYm9vbCoqIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZWxldGVfbmV0d29ya19jb25uZWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBEZWxldGVOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZWxldGVOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpkZWxldGVfbmV0d29ya19jb25uZWN0aW9uX3Jlc3BvbnNlX2luc3RhbmNlID0gRGVsZXRlTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChEZWxldGVOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmRlbGV0ZV9uZXR3b3JrX2Nvbm5lY3Rpb25fcmVzcG9uc2VfZGljdCA9IGRlbGV0ZV9uZXR3b3JrX2Nvbm5lY3Rpb25fcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERlbGV0ZU5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2UgZnJvbSBhIGRpY3QKZGVsZXRlX25ldHdvcmtfY29ubmVjdGlvbl9yZXNwb25zZV9mcm9tX2RpY3QgPSBEZWxldGVOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlLmZyb21fZGljdChkZWxldGVfbmV0d29ya19jb25uZWN0aW9uX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/DeleteNetworkIdResponse.md b/docs/DeleteNetworkIdResponse.md index 5baceafc..ea40fa9b 100644 --- a/docs/DeleteNetworkIdResponse.md +++ b/docs/DeleteNetworkIdResponse.md @@ -1,29 +1 @@ -# DeleteNetworkIdResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**success** | **bool** | | - -## Example - -```python -from fireblocks.models.delete_network_id_response import DeleteNetworkIdResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of DeleteNetworkIdResponse from a JSON string -delete_network_id_response_instance = DeleteNetworkIdResponse.from_json(json) -# print the JSON string representation of the object -print(DeleteNetworkIdResponse.to_json()) - -# convert the object into a dict -delete_network_id_response_dict = delete_network_id_response_instance.to_dict() -# create an instance of DeleteNetworkIdResponse from a dict -delete_network_id_response_from_dict = DeleteNetworkIdResponse.from_dict(delete_network_id_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEZWxldGVOZXR3b3JrSWRSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzdWNjZXNzKiogfCAqKmJvb2wqKiB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVsZXRlX25ldHdvcmtfaWRfcmVzcG9uc2UgaW1wb3J0IERlbGV0ZU5ldHdvcmtJZFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZWxldGVOZXR3b3JrSWRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKZGVsZXRlX25ldHdvcmtfaWRfcmVzcG9uc2VfaW5zdGFuY2UgPSBEZWxldGVOZXR3b3JrSWRSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChEZWxldGVOZXR3b3JrSWRSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApkZWxldGVfbmV0d29ya19pZF9yZXNwb25zZV9kaWN0ID0gZGVsZXRlX25ldHdvcmtfaWRfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERlbGV0ZU5ldHdvcmtJZFJlc3BvbnNlIGZyb20gYSBkaWN0CmRlbGV0ZV9uZXR3b3JrX2lkX3Jlc3BvbnNlX2Zyb21fZGljdCA9IERlbGV0ZU5ldHdvcmtJZFJlc3BvbnNlLmZyb21fZGljdChkZWxldGVfbmV0d29ya19pZF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/DeployLayerZeroAdaptersRequest.md b/docs/DeployLayerZeroAdaptersRequest.md index 76701c93..bd2beef7 100644 --- a/docs/DeployLayerZeroAdaptersRequest.md +++ b/docs/DeployLayerZeroAdaptersRequest.md @@ -1,35 +1 @@ -# DeployLayerZeroAdaptersRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vault_account_id** | **str** | The id of the vault account that initiated the request to deploy adapter for the token | -**create_params** | [**List[LayerZeroAdapterCreateParams]**](LayerZeroAdapterCreateParams.md) | Array of creation parameters for LayerZero adapters, one per tokenLink. | -**display_name** | **str** | The display name of the contract | [optional] -**use_gasless** | **bool** | Whether to use gasless deployment or not | [optional] -**fee_level** | **str** | Fee level for the write function transaction. interchangeable with the 'fee' field | [optional] -**fee** | **str** | Max fee amount for the write function transaction. interchangeable with the 'feeLevel' field | [optional] -**salt** | **str** | The salt to calculate the deterministic address. Must be a number between 0 and 2^256 -1, for it to fit in the bytes32 parameter | [optional] - -## Example - -```python -from fireblocks.models.deploy_layer_zero_adapters_request import DeployLayerZeroAdaptersRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of DeployLayerZeroAdaptersRequest from a JSON string -deploy_layer_zero_adapters_request_instance = DeployLayerZeroAdaptersRequest.from_json(json) -# print the JSON string representation of the object -print(DeployLayerZeroAdaptersRequest.to_json()) - -# convert the object into a dict -deploy_layer_zero_adapters_request_dict = deploy_layer_zero_adapters_request_instance.to_dict() -# create an instance of DeployLayerZeroAdaptersRequest from a dict -deploy_layer_zero_adapters_request_from_dict = DeployLayerZeroAdaptersRequest.from_dict(deploy_layer_zero_adapters_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEZXBsb3lMYXllclplcm9BZGFwdGVyc1JlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8IFRoZSBpZCBvZiB0aGUgdmF1bHQgYWNjb3VudCB0aGF0IGluaXRpYXRlZCB0aGUgcmVxdWVzdCB0byBkZXBsb3kgYWRhcHRlciBmb3IgdGhlIHRva2VuIHwgCioqY3JlYXRlX3BhcmFtcyoqIHwgWyoqTGlzdFtMYXllclplcm9BZGFwdGVyQ3JlYXRlUGFyYW1zXSoqXShMYXllclplcm9BZGFwdGVyQ3JlYXRlUGFyYW1zLm1kKSB8IEFycmF5IG9mIGNyZWF0aW9uIHBhcmFtZXRlcnMgZm9yIExheWVyWmVybyBhZGFwdGVycywgb25lIHBlciB0b2tlbkxpbmsuIHwgCioqZGlzcGxheV9uYW1lKiogfCAqKnN0cioqIHwgVGhlIGRpc3BsYXkgbmFtZSBvZiB0aGUgY29udHJhY3QgfCBbb3B0aW9uYWxdIAoqKnVzZV9nYXNsZXNzKiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgdG8gdXNlIGdhc2xlc3MgZGVwbG95bWVudCBvciBub3QgfCBbb3B0aW9uYWxdIAoqKmZlZV9sZXZlbCoqIHwgKipzdHIqKiB8IEZlZSBsZXZlbCBmb3IgdGhlIHdyaXRlIGZ1bmN0aW9uIHRyYW5zYWN0aW9uLiBpbnRlcmNoYW5nZWFibGUgd2l0aCB0aGUgJiMzOTtmZWUmIzM5OyBmaWVsZCB8IFtvcHRpb25hbF0gCioqZmVlKiogfCAqKnN0cioqIHwgTWF4IGZlZSBhbW91bnQgZm9yIHRoZSB3cml0ZSBmdW5jdGlvbiB0cmFuc2FjdGlvbi4gaW50ZXJjaGFuZ2VhYmxlIHdpdGggdGhlICYjMzk7ZmVlTGV2ZWwmIzM5OyBmaWVsZCB8IFtvcHRpb25hbF0gCioqc2FsdCoqIHwgKipzdHIqKiB8IFRoZSBzYWx0IHRvIGNhbGN1bGF0ZSB0aGUgZGV0ZXJtaW5pc3RpYyBhZGRyZXNzLiBNdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMl4yNTYgLTEsIGZvciBpdCB0byBmaXQgaW4gdGhlIGJ5dGVzMzIgcGFyYW1ldGVyIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlcGxveV9sYXllcl96ZXJvX2FkYXB0ZXJzX3JlcXVlc3QgaW1wb3J0IERlcGxveUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGVwbG95TGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpkZXBsb3lfbGF5ZXJfemVyb19hZGFwdGVyc19yZXF1ZXN0X2luc3RhbmNlID0gRGVwbG95TGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KERlcGxveUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApkZXBsb3lfbGF5ZXJfemVyb19hZGFwdGVyc19yZXF1ZXN0X2RpY3QgPSBkZXBsb3lfbGF5ZXJfemVyb19hZGFwdGVyc19yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZXBsb3lMYXllclplcm9BZGFwdGVyc1JlcXVlc3QgZnJvbSBhIGRpY3QKZGVwbG95X2xheWVyX3plcm9fYWRhcHRlcnNfcmVxdWVzdF9mcm9tX2RpY3QgPSBEZXBsb3lMYXllclplcm9BZGFwdGVyc1JlcXVlc3QuZnJvbV9kaWN0KGRlcGxveV9sYXllcl96ZXJvX2FkYXB0ZXJzX3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/DeployableAddressResponse.md b/docs/DeployableAddressResponse.md index 0dbcf829..aee012b0 100644 --- a/docs/DeployableAddressResponse.md +++ b/docs/DeployableAddressResponse.md @@ -1,30 +1 @@ -# DeployableAddressResponse - -Response DTO containing a deployable address - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**address** | **str** | The deployable address | - -## Example - -```python -from fireblocks.models.deployable_address_response import DeployableAddressResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of DeployableAddressResponse from a JSON string -deployable_address_response_instance = DeployableAddressResponse.from_json(json) -# print the JSON string representation of the object -print(DeployableAddressResponse.to_json()) - -# convert the object into a dict -deployable_address_response_dict = deployable_address_response_instance.to_dict() -# create an instance of DeployableAddressResponse from a dict -deployable_address_response_from_dict = DeployableAddressResponse.from_dict(deployable_address_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEZXBsb3lhYmxlQWRkcmVzc1Jlc3BvbnNlCgpSZXNwb25zZSBEVE8gY29udGFpbmluZyBhIGRlcGxveWFibGUgYWRkcmVzcwoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFkZHJlc3MqKiB8ICoqc3RyKiogfCBUaGUgZGVwbG95YWJsZSBhZGRyZXNzIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZXBsb3lhYmxlX2FkZHJlc3NfcmVzcG9uc2UgaW1wb3J0IERlcGxveWFibGVBZGRyZXNzUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERlcGxveWFibGVBZGRyZXNzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmRlcGxveWFibGVfYWRkcmVzc19yZXNwb25zZV9pbnN0YW5jZSA9IERlcGxveWFibGVBZGRyZXNzUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRGVwbG95YWJsZUFkZHJlc3NSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApkZXBsb3lhYmxlX2FkZHJlc3NfcmVzcG9uc2VfZGljdCA9IGRlcGxveWFibGVfYWRkcmVzc19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGVwbG95YWJsZUFkZHJlc3NSZXNwb25zZSBmcm9tIGEgZGljdApkZXBsb3lhYmxlX2FkZHJlc3NfcmVzcG9uc2VfZnJvbV9kaWN0ID0gRGVwbG95YWJsZUFkZHJlc3NSZXNwb25zZS5mcm9tX2RpY3QoZGVwbG95YWJsZV9hZGRyZXNzX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/DeployedContractNotFoundError.md b/docs/DeployedContractNotFoundError.md index 32bb6246..34627342 100644 --- a/docs/DeployedContractNotFoundError.md +++ b/docs/DeployedContractNotFoundError.md @@ -1,30 +1 @@ -# DeployedContractNotFoundError - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Not Found error message | -**code** | **float** | Error code | - -## Example - -```python -from fireblocks.models.deployed_contract_not_found_error import DeployedContractNotFoundError - -# TODO update the JSON string below -json = "{}" -# create an instance of DeployedContractNotFoundError from a JSON string -deployed_contract_not_found_error_instance = DeployedContractNotFoundError.from_json(json) -# print the JSON string representation of the object -print(DeployedContractNotFoundError.to_json()) - -# convert the object into a dict -deployed_contract_not_found_error_dict = deployed_contract_not_found_error_instance.to_dict() -# create an instance of DeployedContractNotFoundError from a dict -deployed_contract_not_found_error_from_dict = DeployedContractNotFoundError.from_dict(deployed_contract_not_found_error_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEZXBsb3llZENvbnRyYWN0Tm90Rm91bmRFcnJvcgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiptZXNzYWdlKiogfCAqKnN0cioqIHwgTm90IEZvdW5kIGVycm9yIG1lc3NhZ2UgfCAKKipjb2RlKiogfCAqKmZsb2F0KiogfCBFcnJvciBjb2RlIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZXBsb3llZF9jb250cmFjdF9ub3RfZm91bmRfZXJyb3IgaW1wb3J0IERlcGxveWVkQ29udHJhY3ROb3RGb3VuZEVycm9yCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZXBsb3llZENvbnRyYWN0Tm90Rm91bmRFcnJvciBmcm9tIGEgSlNPTiBzdHJpbmcKZGVwbG95ZWRfY29udHJhY3Rfbm90X2ZvdW5kX2Vycm9yX2luc3RhbmNlID0gRGVwbG95ZWRDb250cmFjdE5vdEZvdW5kRXJyb3IuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRGVwbG95ZWRDb250cmFjdE5vdEZvdW5kRXJyb3IudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZGVwbG95ZWRfY29udHJhY3Rfbm90X2ZvdW5kX2Vycm9yX2RpY3QgPSBkZXBsb3llZF9jb250cmFjdF9ub3RfZm91bmRfZXJyb3JfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERlcGxveWVkQ29udHJhY3ROb3RGb3VuZEVycm9yIGZyb20gYSBkaWN0CmRlcGxveWVkX2NvbnRyYWN0X25vdF9mb3VuZF9lcnJvcl9mcm9tX2RpY3QgPSBEZXBsb3llZENvbnRyYWN0Tm90Rm91bmRFcnJvci5mcm9tX2RpY3QoZGVwbG95ZWRfY29udHJhY3Rfbm90X2ZvdW5kX2Vycm9yX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/DeployedContractResponseDto.md b/docs/DeployedContractResponseDto.md index 647bf660..f3fc699d 100644 --- a/docs/DeployedContractResponseDto.md +++ b/docs/DeployedContractResponseDto.md @@ -1,37 +1 @@ -# DeployedContractResponseDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The deployed contract data identifier | -**contract_address** | **str** | The contract's onchain address | -**contract_template_id** | **str** | The contract template identifier | -**vault_account_id** | **str** | The vault account id this contract was deploy from | [optional] -**blockchain_id** | **str** | | -**base_asset_id** | **str** | The blockchain base assetId | [optional] -**gasless_config** | [**GasslessStandardConfigurations**](GasslessStandardConfigurations.md) | | [optional] -**multichain_deployment_metadata** | [**MultichainDeploymentMetadata**](MultichainDeploymentMetadata.md) | | [optional] -**solana_config** | [**SolanaConfig**](SolanaConfig.md) | | [optional] - -## Example - -```python -from fireblocks.models.deployed_contract_response_dto import DeployedContractResponseDto - -# TODO update the JSON string below -json = "{}" -# create an instance of DeployedContractResponseDto from a JSON string -deployed_contract_response_dto_instance = DeployedContractResponseDto.from_json(json) -# print the JSON string representation of the object -print(DeployedContractResponseDto.to_json()) - -# convert the object into a dict -deployed_contract_response_dto_dict = deployed_contract_response_dto_instance.to_dict() -# create an instance of DeployedContractResponseDto from a dict -deployed_contract_response_dto_from_dict = DeployedContractResponseDto.from_dict(deployed_contract_response_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBUaGUgZGVwbG95ZWQgY29udHJhY3QgZGF0YSBpZGVudGlmaWVyIHwgCioqY29udHJhY3RfYWRkcmVzcyoqIHwgKipzdHIqKiB8IFRoZSBjb250cmFjdCYjMzk7cyBvbmNoYWluIGFkZHJlc3MgfCAKKipjb250cmFjdF90ZW1wbGF0ZV9pZCoqIHwgKipzdHIqKiB8IFRoZSBjb250cmFjdCB0ZW1wbGF0ZSBpZGVudGlmaWVyIHwgCioqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8IFRoZSB2YXVsdCBhY2NvdW50IGlkIHRoaXMgY29udHJhY3Qgd2FzIGRlcGxveSBmcm9tIHwgW29wdGlvbmFsXSAKKipibG9ja2NoYWluX2lkKiogfCAqKnN0cioqIHwgIHwgCioqYmFzZV9hc3NldF9pZCoqIHwgKipzdHIqKiB8IFRoZSBibG9ja2NoYWluIGJhc2UgYXNzZXRJZCB8IFtvcHRpb25hbF0gCioqZ2FzbGVzc19jb25maWcqKiB8IFsqKkdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9ucyoqXShHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnMubWQpIHwgIHwgW29wdGlvbmFsXSAKKiptdWx0aWNoYWluX2RlcGxveW1lbnRfbWV0YWRhdGEqKiB8IFsqKk11bHRpY2hhaW5EZXBsb3ltZW50TWV0YWRhdGEqKl0oTXVsdGljaGFpbkRlcGxveW1lbnRNZXRhZGF0YS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnNvbGFuYV9jb25maWcqKiB8IFsqKlNvbGFuYUNvbmZpZyoqXShTb2xhbmFDb25maWcubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlcGxveWVkX2NvbnRyYWN0X3Jlc3BvbnNlX2R0byBpbXBvcnQgRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8gZnJvbSBhIEpTT04gc3RyaW5nCmRlcGxveWVkX2NvbnRyYWN0X3Jlc3BvbnNlX2R0b19pbnN0YW5jZSA9IERlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0by5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChEZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZGVwbG95ZWRfY29udHJhY3RfcmVzcG9uc2VfZHRvX2RpY3QgPSBkZXBsb3llZF9jb250cmFjdF9yZXNwb25zZV9kdG9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0byBmcm9tIGEgZGljdApkZXBsb3llZF9jb250cmFjdF9yZXNwb25zZV9kdG9fZnJvbV9kaWN0ID0gRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvLmZyb21fZGljdChkZXBsb3llZF9jb250cmFjdF9yZXNwb25zZV9kdG9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/DeployedContractsApi.md b/docs/DeployedContractsApi.md index 16a22a58..473a83fd 100644 --- a/docs/DeployedContractsApi.md +++ b/docs/DeployedContractsApi.md @@ -1,401 +1 @@ -# fireblocks.DeployedContractsApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**add_contract_abi**](DeployedContractsApi.md#add_contract_abi) | **POST** /tokenization/contracts/abi | Save contract ABI -[**fetch_contract_abi**](DeployedContractsApi.md#fetch_contract_abi) | **POST** /tokenization/contracts/fetch_abi | Fetch the contract ABI -[**get_deployed_contract_by_address**](DeployedContractsApi.md#get_deployed_contract_by_address) | **GET** /tokenization/contracts/{assetId}/{contractAddress} | Return deployed contract data -[**get_deployed_contract_by_id**](DeployedContractsApi.md#get_deployed_contract_by_id) | **GET** /tokenization/contracts/{id} | Return deployed contract data by id -[**get_deployed_contracts**](DeployedContractsApi.md#get_deployed_contracts) | **GET** /tokenization/contracts | List deployed contracts data - - -# **add_contract_abi** -> ContractWithAbiDto add_contract_abi(add_abi_request_dto, idempotency_key=idempotency_key) - -Save contract ABI - -Save contract ABI for the tenant - -### Example - - -```python -from fireblocks.models.add_abi_request_dto import AddAbiRequestDto -from fireblocks.models.contract_with_abi_dto import ContractWithAbiDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - add_abi_request_dto = fireblocks.AddAbiRequestDto() # AddAbiRequestDto | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Save contract ABI - api_response = fireblocks.deployed_contracts.add_contract_abi(add_abi_request_dto, idempotency_key=idempotency_key).result() - print("The response of DeployedContractsApi->add_contract_abi:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling DeployedContractsApi->add_contract_abi: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **add_abi_request_dto** | [**AddAbiRequestDto**](AddAbiRequestDto.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**ContractWithAbiDto**](ContractWithAbiDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Contract ABI created (or updated) for the tenant | - | -**409** | Contract ABI already exists. | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **fetch_contract_abi** -> ContractWithAbiDto fetch_contract_abi(fetch_abi_request_dto, idempotency_key=idempotency_key) - -Fetch the contract ABI - -Fetch the ABI. If not found fetch the ABI from the block explorer - -### Example - - -```python -from fireblocks.models.contract_with_abi_dto import ContractWithAbiDto -from fireblocks.models.fetch_abi_request_dto import FetchAbiRequestDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - fetch_abi_request_dto = fireblocks.FetchAbiRequestDto() # FetchAbiRequestDto | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Fetch the contract ABI - api_response = fireblocks.deployed_contracts.fetch_contract_abi(fetch_abi_request_dto, idempotency_key=idempotency_key).result() - print("The response of DeployedContractsApi->fetch_contract_abi:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling DeployedContractsApi->fetch_contract_abi: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **fetch_abi_request_dto** | [**FetchAbiRequestDto**](FetchAbiRequestDto.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**ContractWithAbiDto**](ContractWithAbiDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Contract ABI found. | - | -**404** | Contract ABI not found | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_deployed_contract_by_address** -> DeployedContractResponseDto get_deployed_contract_by_address(contract_address, asset_id) - -Return deployed contract data - -Return deployed contract data by blockchain native asset id and contract address - -### Example - - -```python -from fireblocks.models.deployed_contract_response_dto import DeployedContractResponseDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66' # str | The contract's onchain address - asset_id = 'asset_id_example' # str | - - try: - # Return deployed contract data - api_response = fireblocks.deployed_contracts.get_deployed_contract_by_address(contract_address, asset_id).result() - print("The response of DeployedContractsApi->get_deployed_contract_by_address:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling DeployedContractsApi->get_deployed_contract_by_address: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **contract_address** | **str**| The contract's onchain address | - **asset_id** | **str**| | - -### Return type - -[**DeployedContractResponseDto**](DeployedContractResponseDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_deployed_contract_by_id** -> DeployedContractResponseDto get_deployed_contract_by_id(id) - -Return deployed contract data by id - -Return deployed contract data by id - -### Example - - -```python -from fireblocks.models.deployed_contract_response_dto import DeployedContractResponseDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d' # str | The deployed contract data identifier - - try: - # Return deployed contract data by id - api_response = fireblocks.deployed_contracts.get_deployed_contract_by_id(id).result() - print("The response of DeployedContractsApi->get_deployed_contract_by_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling DeployedContractsApi->get_deployed_contract_by_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **id** | **str**| The deployed contract data identifier | - -### Return type - -[**DeployedContractResponseDto**](DeployedContractResponseDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_deployed_contracts** -> DeployedContractsPaginatedResponse get_deployed_contracts(page_cursor=page_cursor, page_size=page_size, contract_address=contract_address, base_asset_id=base_asset_id, contract_template_id=contract_template_id) - -List deployed contracts data - -Return a filtered lean representation of the deployed contracts data on all blockchains (paginated) - -### Example - - -```python -from fireblocks.models.deployed_contracts_paginated_response import DeployedContractsPaginatedResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Page cursor to get the next page (optional) - page_size = 10 # float | Number of items per page, requesting more then max will return max items (optional) - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66' # str | The contract's onchain address (optional) - base_asset_id = 'base_asset_id_example' # str | (optional) - contract_template_id = 'contract_template_id_example' # str | (optional) - - try: - # List deployed contracts data - api_response = fireblocks.deployed_contracts.get_deployed_contracts(page_cursor=page_cursor, page_size=page_size, contract_address=contract_address, base_asset_id=base_asset_id, contract_template_id=contract_template_id).result() - print("The response of DeployedContractsApi->get_deployed_contracts:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling DeployedContractsApi->get_deployed_contracts: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **page_cursor** | **str**| Page cursor to get the next page | [optional] - **page_size** | **float**| Number of items per page, requesting more then max will return max items | [optional] - **contract_address** | **str**| The contract's onchain address | [optional] - **base_asset_id** | **str**| | [optional] - **contract_template_id** | **str**| | [optional] - -### Return type - -[**DeployedContractsPaginatedResponse**](DeployedContractsPaginatedResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Deployed contracts fetched successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLkRlcGxveWVkQ29udHJhY3RzQXBpCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gKmh0dHBzOi8vYXBpLmZpcmVibG9ja3MuaW8vdjEqCgpNZXRob2QgfCBIVFRQIHJlcXVlc3QgfCBEZXNjcmlwdGlvbgotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KWyoqYWRkX2NvbnRyYWN0X2FiaSoqXShEZXBsb3llZENvbnRyYWN0c0FwaS5tZCNhZGRfY29udHJhY3RfYWJpKSB8ICoqUE9TVCoqIC90b2tlbml6YXRpb24vY29udHJhY3RzL2FiaSB8IFNhdmUgY29udHJhY3QgQUJJClsqKmZldGNoX2NvbnRyYWN0X2FiaSoqXShEZXBsb3llZENvbnRyYWN0c0FwaS5tZCNmZXRjaF9jb250cmFjdF9hYmkpIHwgKipQT1NUKiogL3Rva2VuaXphdGlvbi9jb250cmFjdHMvZmV0Y2hfYWJpIHwgRmV0Y2ggdGhlIGNvbnRyYWN0IEFCSQpbKipnZXRfZGVwbG95ZWRfY29udHJhY3RfYnlfYWRkcmVzcyoqXShEZXBsb3llZENvbnRyYWN0c0FwaS5tZCNnZXRfZGVwbG95ZWRfY29udHJhY3RfYnlfYWRkcmVzcykgfCAqKkdFVCoqIC90b2tlbml6YXRpb24vY29udHJhY3RzL3thc3NldElkfS97Y29udHJhY3RBZGRyZXNzfSB8IFJldHVybiBkZXBsb3llZCBjb250cmFjdCBkYXRhClsqKmdldF9kZXBsb3llZF9jb250cmFjdF9ieV9pZCoqXShEZXBsb3llZENvbnRyYWN0c0FwaS5tZCNnZXRfZGVwbG95ZWRfY29udHJhY3RfYnlfaWQpIHwgKipHRVQqKiAvdG9rZW5pemF0aW9uL2NvbnRyYWN0cy97aWR9IHwgUmV0dXJuIGRlcGxveWVkIGNvbnRyYWN0IGRhdGEgYnkgaWQKWyoqZ2V0X2RlcGxveWVkX2NvbnRyYWN0cyoqXShEZXBsb3llZENvbnRyYWN0c0FwaS5tZCNnZXRfZGVwbG95ZWRfY29udHJhY3RzKSB8ICoqR0VUKiogL3Rva2VuaXphdGlvbi9jb250cmFjdHMgfCBMaXN0IGRlcGxveWVkIGNvbnRyYWN0cyBkYXRhCgoKIyAqKmFkZF9jb250cmFjdF9hYmkqKgo+IENvbnRyYWN0V2l0aEFiaUR0byBhZGRfY29udHJhY3RfYWJpKGFkZF9hYmlfcmVxdWVzdF9kdG8sIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpTYXZlIGNvbnRyYWN0IEFCSQoKU2F2ZSBjb250cmFjdCBBQkkgZm9yIHRoZSB0ZW5hbnQKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkX2FiaV9yZXF1ZXN0X2R0byBpbXBvcnQgQWRkQWJpUmVxdWVzdER0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X3dpdGhfYWJpX2R0byBpbXBvcnQgQ29udHJhY3RXaXRoQWJpRHRvCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGFkZF9hYmlfcmVxdWVzdF9kdG8gPSBmaXJlYmxvY2tzLkFkZEFiaVJlcXVlc3REdG8oKSAjIEFkZEFiaVJlcXVlc3REdG8gfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBTYXZlIGNvbnRyYWN0IEFCSQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuZGVwbG95ZWRfY29udHJhY3RzLmFkZF9jb250cmFjdF9hYmkoYWRkX2FiaV9yZXF1ZXN0X2R0bywgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIERlcGxveWVkQ29udHJhY3RzQXBpLT5hZGRfY29udHJhY3RfYWJpOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIERlcGxveWVkQ29udHJhY3RzQXBpLT5hZGRfY29udHJhY3RfYWJpOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKiphZGRfYWJpX3JlcXVlc3RfZHRvKiogfCBbKipBZGRBYmlSZXF1ZXN0RHRvKipdKEFkZEFiaVJlcXVlc3REdG8ubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqQ29udHJhY3RXaXRoQWJpRHRvKipdKENvbnRyYWN0V2l0aEFiaUR0by5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQ29udHJhY3QgQUJJIGNyZWF0ZWQgKG9yIHVwZGF0ZWQpIGZvciB0aGUgdGVuYW50IHwgIC0gIHwKKio0MDkqKiB8IENvbnRyYWN0IEFCSSBhbHJlYWR5IGV4aXN0cy4gfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmZldGNoX2NvbnRyYWN0X2FiaSoqCj4gQ29udHJhY3RXaXRoQWJpRHRvIGZldGNoX2NvbnRyYWN0X2FiaShmZXRjaF9hYmlfcmVxdWVzdF9kdG8sIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpGZXRjaCB0aGUgY29udHJhY3QgQUJJCgpGZXRjaCB0aGUgQUJJLiBJZiBub3QgZm91bmQgZmV0Y2ggdGhlIEFCSSBmcm9tIHRoZSBibG9jayBleHBsb3JlcgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF93aXRoX2FiaV9kdG8gaW1wb3J0IENvbnRyYWN0V2l0aEFiaUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZldGNoX2FiaV9yZXF1ZXN0X2R0byBpbXBvcnQgRmV0Y2hBYmlSZXF1ZXN0RHRvCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGZldGNoX2FiaV9yZXF1ZXN0X2R0byA9IGZpcmVibG9ja3MuRmV0Y2hBYmlSZXF1ZXN0RHRvKCkgIyBGZXRjaEFiaVJlcXVlc3REdG8gfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBGZXRjaCB0aGUgY29udHJhY3QgQUJJCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5kZXBsb3llZF9jb250cmFjdHMuZmV0Y2hfY29udHJhY3RfYWJpKGZldGNoX2FiaV9yZXF1ZXN0X2R0bywgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIERlcGxveWVkQ29udHJhY3RzQXBpLT5mZXRjaF9jb250cmFjdF9hYmk6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgRGVwbG95ZWRDb250cmFjdHNBcGktPmZldGNoX2NvbnRyYWN0X2FiaTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqZmV0Y2hfYWJpX3JlcXVlc3RfZHRvKiogfCBbKipGZXRjaEFiaVJlcXVlc3REdG8qKl0oRmV0Y2hBYmlSZXF1ZXN0RHRvLm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkNvbnRyYWN0V2l0aEFiaUR0byoqXShDb250cmFjdFdpdGhBYmlEdG8ubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IENvbnRyYWN0IEFCSSBmb3VuZC4gfCAgLSAgfAoqKjQwNCoqIHwgQ29udHJhY3QgQUJJIG5vdCBmb3VuZCB8ICAtICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2RlcGxveWVkX2NvbnRyYWN0X2J5X2FkZHJlc3MqKgo+IERlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0byBnZXRfZGVwbG95ZWRfY29udHJhY3RfYnlfYWRkcmVzcyhjb250cmFjdF9hZGRyZXNzLCBhc3NldF9pZCkKClJldHVybiBkZXBsb3llZCBjb250cmFjdCBkYXRhCgpSZXR1cm4gZGVwbG95ZWQgY29udHJhY3QgZGF0YSBieSBibG9ja2NoYWluIG5hdGl2ZSBhc3NldCBpZCBhbmQgY29udHJhY3QgYWRkcmVzcwoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZXBsb3llZF9jb250cmFjdF9yZXNwb25zZV9kdG8gaW1wb3J0IERlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0bwpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjb250cmFjdF9hZGRyZXNzID0gJzB4QzJjNGUxRGI0MUYwYkI5Nzk5NkQwZUQwNTQyRDIxNzBkMTQ2RkI2NicgIyBzdHIgfCBUaGUgY29udHJhY3QncyBvbmNoYWluIGFkZHJlc3MKICAgIGFzc2V0X2lkID0gJ2Fzc2V0X2lkX2V4YW1wbGUnICMgc3RyIHwgCgogICAgdHJ5OgogICAgICAgICMgUmV0dXJuIGRlcGxveWVkIGNvbnRyYWN0IGRhdGEKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmRlcGxveWVkX2NvbnRyYWN0cy5nZXRfZGVwbG95ZWRfY29udHJhY3RfYnlfYWRkcmVzcyhjb250cmFjdF9hZGRyZXNzLCBhc3NldF9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIERlcGxveWVkQ29udHJhY3RzQXBpLT5nZXRfZGVwbG95ZWRfY29udHJhY3RfYnlfYWRkcmVzczpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBEZXBsb3llZENvbnRyYWN0c0FwaS0+Z2V0X2RlcGxveWVkX2NvbnRyYWN0X2J5X2FkZHJlc3M6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmNvbnRyYWN0X2FkZHJlc3MqKiB8ICoqc3RyKip8IFRoZSBjb250cmFjdCYjMzk7cyBvbmNoYWluIGFkZHJlc3MgfCAKICoqYXNzZXRfaWQqKiB8ICoqc3RyKip8ICB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipEZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8qKl0oRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgIHwgIC0gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfZGVwbG95ZWRfY29udHJhY3RfYnlfaWQqKgo+IERlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0byBnZXRfZGVwbG95ZWRfY29udHJhY3RfYnlfaWQoaWQpCgpSZXR1cm4gZGVwbG95ZWQgY29udHJhY3QgZGF0YSBieSBpZAoKUmV0dXJuIGRlcGxveWVkIGNvbnRyYWN0IGRhdGEgYnkgaWQKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVwbG95ZWRfY29udHJhY3RfcmVzcG9uc2VfZHRvIGltcG9ydCBEZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJyAjIHN0ciB8IFRoZSBkZXBsb3llZCBjb250cmFjdCBkYXRhIGlkZW50aWZpZXIKCiAgICB0cnk6CiAgICAgICAgIyBSZXR1cm4gZGVwbG95ZWQgY29udHJhY3QgZGF0YSBieSBpZAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuZGVwbG95ZWRfY29udHJhY3RzLmdldF9kZXBsb3llZF9jb250cmFjdF9ieV9pZChpZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIERlcGxveWVkQ29udHJhY3RzQXBpLT5nZXRfZGVwbG95ZWRfY29udHJhY3RfYnlfaWQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgRGVwbG95ZWRDb250cmFjdHNBcGktPmdldF9kZXBsb3llZF9jb250cmFjdF9ieV9pZDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqaWQqKiB8ICoqc3RyKip8IFRoZSBkZXBsb3llZCBjb250cmFjdCBkYXRhIGlkZW50aWZpZXIgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvKipdKERlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0by5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8ICB8ICAtICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2RlcGxveWVkX2NvbnRyYWN0cyoqCj4gRGVwbG95ZWRDb250cmFjdHNQYWdpbmF0ZWRSZXNwb25zZSBnZXRfZGVwbG95ZWRfY29udHJhY3RzKHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplLCBjb250cmFjdF9hZGRyZXNzPWNvbnRyYWN0X2FkZHJlc3MsIGJhc2VfYXNzZXRfaWQ9YmFzZV9hc3NldF9pZCwgY29udHJhY3RfdGVtcGxhdGVfaWQ9Y29udHJhY3RfdGVtcGxhdGVfaWQpCgpMaXN0IGRlcGxveWVkIGNvbnRyYWN0cyBkYXRhCgpSZXR1cm4gYSBmaWx0ZXJlZCBsZWFuIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZXBsb3llZCBjb250cmFjdHMgZGF0YSBvbiBhbGwgYmxvY2tjaGFpbnMgKHBhZ2luYXRlZCkKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVwbG95ZWRfY29udHJhY3RzX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgRGVwbG95ZWRDb250cmFjdHNQYWdpbmF0ZWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBwYWdlX2N1cnNvciA9ICdNakF5TXkweE1pMHhNeUF5TURvek5qb3dPQzR6TURJPTpNVEV3TUE9PScgIyBzdHIgfCBQYWdlIGN1cnNvciB0byBnZXQgdGhlIG5leHQgcGFnZSAob3B0aW9uYWwpCiAgICBwYWdlX3NpemUgPSAxMCAjIGZsb2F0IHwgTnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlLCByZXF1ZXN0aW5nIG1vcmUgdGhlbiBtYXggd2lsbCByZXR1cm4gbWF4IGl0ZW1zIChvcHRpb25hbCkKICAgIGNvbnRyYWN0X2FkZHJlc3MgPSAnMHhDMmM0ZTFEYjQxRjBiQjk3OTk2RDBlRDA1NDJEMjE3MGQxNDZGQjY2JyAjIHN0ciB8IFRoZSBjb250cmFjdCdzIG9uY2hhaW4gYWRkcmVzcyAob3B0aW9uYWwpCiAgICBiYXNlX2Fzc2V0X2lkID0gJ2Jhc2VfYXNzZXRfaWRfZXhhbXBsZScgIyBzdHIgfCAgKG9wdGlvbmFsKQogICAgY29udHJhY3RfdGVtcGxhdGVfaWQgPSAnY29udHJhY3RfdGVtcGxhdGVfaWRfZXhhbXBsZScgIyBzdHIgfCAgKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIExpc3QgZGVwbG95ZWQgY29udHJhY3RzIGRhdGEKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmRlcGxveWVkX2NvbnRyYWN0cy5nZXRfZGVwbG95ZWRfY29udHJhY3RzKHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplLCBjb250cmFjdF9hZGRyZXNzPWNvbnRyYWN0X2FkZHJlc3MsIGJhc2VfYXNzZXRfaWQ9YmFzZV9hc3NldF9pZCwgY29udHJhY3RfdGVtcGxhdGVfaWQ9Y29udHJhY3RfdGVtcGxhdGVfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBEZXBsb3llZENvbnRyYWN0c0FwaS0+Z2V0X2RlcGxveWVkX2NvbnRyYWN0czpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBEZXBsb3llZENvbnRyYWN0c0FwaS0+Z2V0X2RlcGxveWVkX2NvbnRyYWN0czogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqcGFnZV9jdXJzb3IqKiB8ICoqc3RyKip8IFBhZ2UgY3Vyc29yIHRvIGdldCB0aGUgbmV4dCBwYWdlIHwgW29wdGlvbmFsXSAKICoqcGFnZV9zaXplKiogfCAqKmZsb2F0Kip8IE51bWJlciBvZiBpdGVtcyBwZXIgcGFnZSwgcmVxdWVzdGluZyBtb3JlIHRoZW4gbWF4IHdpbGwgcmV0dXJuIG1heCBpdGVtcyB8IFtvcHRpb25hbF0gCiAqKmNvbnRyYWN0X2FkZHJlc3MqKiB8ICoqc3RyKip8IFRoZSBjb250cmFjdCYjMzk7cyBvbmNoYWluIGFkZHJlc3MgfCBbb3B0aW9uYWxdIAogKipiYXNlX2Fzc2V0X2lkKiogfCAqKnN0cioqfCAgfCBbb3B0aW9uYWxdIAogKipjb250cmFjdF90ZW1wbGF0ZV9pZCoqIHwgKipzdHIqKnwgIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqRGVwbG95ZWRDb250cmFjdHNQYWdpbmF0ZWRSZXNwb25zZSoqXShEZXBsb3llZENvbnRyYWN0c1BhZ2luYXRlZFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgRGVwbG95ZWQgY29udHJhY3RzIGZldGNoZWQgc3VjY2Vzc2Z1bGx5IHwgIC0gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCg== \ No newline at end of file diff --git a/docs/DeployedContractsPaginatedResponse.md b/docs/DeployedContractsPaginatedResponse.md index 400ef0ca..01009ef3 100644 --- a/docs/DeployedContractsPaginatedResponse.md +++ b/docs/DeployedContractsPaginatedResponse.md @@ -1,30 +1 @@ -# DeployedContractsPaginatedResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[LeanDeployedContractResponseDto]**](LeanDeployedContractResponseDto.md) | The data of the current page | -**next** | **str** | The ID of the next page | [optional] - -## Example - -```python -from fireblocks.models.deployed_contracts_paginated_response import DeployedContractsPaginatedResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of DeployedContractsPaginatedResponse from a JSON string -deployed_contracts_paginated_response_instance = DeployedContractsPaginatedResponse.from_json(json) -# print the JSON string representation of the object -print(DeployedContractsPaginatedResponse.to_json()) - -# convert the object into a dict -deployed_contracts_paginated_response_dict = deployed_contracts_paginated_response_instance.to_dict() -# create an instance of DeployedContractsPaginatedResponse from a dict -deployed_contracts_paginated_response_from_dict = DeployedContractsPaginatedResponse.from_dict(deployed_contracts_paginated_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEZXBsb3llZENvbnRyYWN0c1BhZ2luYXRlZFJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmRhdGEqKiB8IFsqKkxpc3RbTGVhbkRlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0b10qKl0oTGVhbkRlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0by5tZCkgfCBUaGUgZGF0YSBvZiB0aGUgY3VycmVudCBwYWdlIHwgCioqbmV4dCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgbmV4dCBwYWdlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlcGxveWVkX2NvbnRyYWN0c19wYWdpbmF0ZWRfcmVzcG9uc2UgaW1wb3J0IERlcGxveWVkQ29udHJhY3RzUGFnaW5hdGVkUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERlcGxveWVkQ29udHJhY3RzUGFnaW5hdGVkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmRlcGxveWVkX2NvbnRyYWN0c19wYWdpbmF0ZWRfcmVzcG9uc2VfaW5zdGFuY2UgPSBEZXBsb3llZENvbnRyYWN0c1BhZ2luYXRlZFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KERlcGxveWVkQ29udHJhY3RzUGFnaW5hdGVkUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZGVwbG95ZWRfY29udHJhY3RzX3BhZ2luYXRlZF9yZXNwb25zZV9kaWN0ID0gZGVwbG95ZWRfY29udHJhY3RzX3BhZ2luYXRlZF9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGVwbG95ZWRDb250cmFjdHNQYWdpbmF0ZWRSZXNwb25zZSBmcm9tIGEgZGljdApkZXBsb3llZF9jb250cmFjdHNfcGFnaW5hdGVkX3Jlc3BvbnNlX2Zyb21fZGljdCA9IERlcGxveWVkQ29udHJhY3RzUGFnaW5hdGVkUmVzcG9uc2UuZnJvbV9kaWN0KGRlcGxveWVkX2NvbnRyYWN0c19wYWdpbmF0ZWRfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/DepositFundsFromLinkedDDAResponse.md b/docs/DepositFundsFromLinkedDDAResponse.md index a64d960d..4cf561c4 100644 --- a/docs/DepositFundsFromLinkedDDAResponse.md +++ b/docs/DepositFundsFromLinkedDDAResponse.md @@ -1,29 +1 @@ -# DepositFundsFromLinkedDDAResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**success** | **bool** | Indicates whether the funds were successfully deposited from the linked DDA | - -## Example - -```python -from fireblocks.models.deposit_funds_from_linked_dda_response import DepositFundsFromLinkedDDAResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of DepositFundsFromLinkedDDAResponse from a JSON string -deposit_funds_from_linked_dda_response_instance = DepositFundsFromLinkedDDAResponse.from_json(json) -# print the JSON string representation of the object -print(DepositFundsFromLinkedDDAResponse.to_json()) - -# convert the object into a dict -deposit_funds_from_linked_dda_response_dict = deposit_funds_from_linked_dda_response_instance.to_dict() -# create an instance of DepositFundsFromLinkedDDAResponse from a dict -deposit_funds_from_linked_dda_response_from_dict = DepositFundsFromLinkedDDAResponse.from_dict(deposit_funds_from_linked_dda_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEZXBvc2l0RnVuZHNGcm9tTGlua2VkRERBUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3VjY2VzcyoqIHwgKipib29sKiogfCBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZnVuZHMgd2VyZSBzdWNjZXNzZnVsbHkgZGVwb3NpdGVkIGZyb20gdGhlIGxpbmtlZCBEREEgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlcG9zaXRfZnVuZHNfZnJvbV9saW5rZWRfZGRhX3Jlc3BvbnNlIGltcG9ydCBEZXBvc2l0RnVuZHNGcm9tTGlua2VkRERBUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERlcG9zaXRGdW5kc0Zyb21MaW5rZWREREFSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKZGVwb3NpdF9mdW5kc19mcm9tX2xpbmtlZF9kZGFfcmVzcG9uc2VfaW5zdGFuY2UgPSBEZXBvc2l0RnVuZHNGcm9tTGlua2VkRERBUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRGVwb3NpdEZ1bmRzRnJvbUxpbmtlZEREQVJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmRlcG9zaXRfZnVuZHNfZnJvbV9saW5rZWRfZGRhX3Jlc3BvbnNlX2RpY3QgPSBkZXBvc2l0X2Z1bmRzX2Zyb21fbGlua2VkX2RkYV9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGVwb3NpdEZ1bmRzRnJvbUxpbmtlZEREQVJlc3BvbnNlIGZyb20gYSBkaWN0CmRlcG9zaXRfZnVuZHNfZnJvbV9saW5rZWRfZGRhX3Jlc3BvbnNlX2Zyb21fZGljdCA9IERlcG9zaXRGdW5kc0Zyb21MaW5rZWREREFSZXNwb25zZS5mcm9tX2RpY3QoZGVwb3NpdF9mdW5kc19mcm9tX2xpbmtlZF9kZGFfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/DerivationPathConfig.md b/docs/DerivationPathConfig.md index 6cca6c27..843520bc 100644 --- a/docs/DerivationPathConfig.md +++ b/docs/DerivationPathConfig.md @@ -1,31 +1 @@ -# DerivationPathConfig - -Derivation path configuration - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**path** | **List[float]** | Derivation path as array of numbers | -**partial** | **bool** | Whether this is a partial path | [optional] - -## Example - -```python -from fireblocks.models.derivation_path_config import DerivationPathConfig - -# TODO update the JSON string below -json = "{}" -# create an instance of DerivationPathConfig from a JSON string -derivation_path_config_instance = DerivationPathConfig.from_json(json) -# print the JSON string representation of the object -print(DerivationPathConfig.to_json()) - -# convert the object into a dict -derivation_path_config_dict = derivation_path_config_instance.to_dict() -# create an instance of DerivationPathConfig from a dict -derivation_path_config_from_dict = DerivationPathConfig.from_dict(derivation_path_config_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEZXJpdmF0aW9uUGF0aENvbmZpZwoKRGVyaXZhdGlvbiBwYXRoIGNvbmZpZ3VyYXRpb24KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipwYXRoKiogfCAqKkxpc3RbZmxvYXRdKiogfCBEZXJpdmF0aW9uIHBhdGggYXMgYXJyYXkgb2YgbnVtYmVycyB8IAoqKnBhcnRpYWwqKiB8ICoqYm9vbCoqIHwgV2hldGhlciB0aGlzIGlzIGEgcGFydGlhbCBwYXRoIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlcml2YXRpb25fcGF0aF9jb25maWcgaW1wb3J0IERlcml2YXRpb25QYXRoQ29uZmlnCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZXJpdmF0aW9uUGF0aENvbmZpZyBmcm9tIGEgSlNPTiBzdHJpbmcKZGVyaXZhdGlvbl9wYXRoX2NvbmZpZ19pbnN0YW5jZSA9IERlcml2YXRpb25QYXRoQ29uZmlnLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KERlcml2YXRpb25QYXRoQ29uZmlnLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmRlcml2YXRpb25fcGF0aF9jb25maWdfZGljdCA9IGRlcml2YXRpb25fcGF0aF9jb25maWdfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERlcml2YXRpb25QYXRoQ29uZmlnIGZyb20gYSBkaWN0CmRlcml2YXRpb25fcGF0aF9jb25maWdfZnJvbV9kaWN0ID0gRGVyaXZhdGlvblBhdGhDb25maWcuZnJvbV9kaWN0KGRlcml2YXRpb25fcGF0aF9jb25maWdfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/DesignatedSignersConfig.md b/docs/DesignatedSignersConfig.md index 9d90d8bc..9060c189 100644 --- a/docs/DesignatedSignersConfig.md +++ b/docs/DesignatedSignersConfig.md @@ -1,32 +1 @@ -# DesignatedSignersConfig - -Designated signers configuration - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | Type of designated signers | -**users** | **List[str]** | List of user IDs | [optional] -**groups** | **List[str]** | List of policy group IDs | [optional] - -## Example - -```python -from fireblocks.models.designated_signers_config import DesignatedSignersConfig - -# TODO update the JSON string below -json = "{}" -# create an instance of DesignatedSignersConfig from a JSON string -designated_signers_config_instance = DesignatedSignersConfig.from_json(json) -# print the JSON string representation of the object -print(DesignatedSignersConfig.to_json()) - -# convert the object into a dict -designated_signers_config_dict = designated_signers_config_instance.to_dict() -# create an instance of DesignatedSignersConfig from a dict -designated_signers_config_from_dict = DesignatedSignersConfig.from_dict(designated_signers_config_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEZXNpZ25hdGVkU2lnbmVyc0NvbmZpZwoKRGVzaWduYXRlZCBzaWduZXJzIGNvbmZpZ3VyYXRpb24KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eXBlKiogfCAqKnN0cioqIHwgVHlwZSBvZiBkZXNpZ25hdGVkIHNpZ25lcnMgfCAKKip1c2VycyoqIHwgKipMaXN0W3N0cl0qKiB8IExpc3Qgb2YgdXNlciBJRHMgfCBbb3B0aW9uYWxdIAoqKmdyb3VwcyoqIHwgKipMaXN0W3N0cl0qKiB8IExpc3Qgb2YgcG9saWN5IGdyb3VwIElEcyB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZXNpZ25hdGVkX3NpZ25lcnNfY29uZmlnIGltcG9ydCBEZXNpZ25hdGVkU2lnbmVyc0NvbmZpZwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGVzaWduYXRlZFNpZ25lcnNDb25maWcgZnJvbSBhIEpTT04gc3RyaW5nCmRlc2lnbmF0ZWRfc2lnbmVyc19jb25maWdfaW5zdGFuY2UgPSBEZXNpZ25hdGVkU2lnbmVyc0NvbmZpZy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChEZXNpZ25hdGVkU2lnbmVyc0NvbmZpZy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApkZXNpZ25hdGVkX3NpZ25lcnNfY29uZmlnX2RpY3QgPSBkZXNpZ25hdGVkX3NpZ25lcnNfY29uZmlnX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZXNpZ25hdGVkU2lnbmVyc0NvbmZpZyBmcm9tIGEgZGljdApkZXNpZ25hdGVkX3NpZ25lcnNfY29uZmlnX2Zyb21fZGljdCA9IERlc2lnbmF0ZWRTaWduZXJzQ29uZmlnLmZyb21fZGljdChkZXNpZ25hdGVkX3NpZ25lcnNfY29uZmlnX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/Destination.md b/docs/Destination.md index ff63ae4e..28869aa8 100644 --- a/docs/Destination.md +++ b/docs/Destination.md @@ -1,32 +1 @@ -# Destination - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_id** | **str** | | -**account_type** | [**AccountType**](AccountType.md) | | -**one_time_address** | **str** | | -**tag** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.destination import Destination - -# TODO update the JSON string below -json = "{}" -# create an instance of Destination from a JSON string -destination_instance = Destination.from_json(json) -# print the JSON string representation of the object -print(Destination.to_json()) - -# convert the object into a dict -destination_dict = destination_instance.to_dict() -# create an instance of Destination from a dict -destination_from_dict = Destination.from_dict(destination_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEZXN0aW5hdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphY2NvdW50X2lkKiogfCAqKnN0cioqIHwgIHwgCioqYWNjb3VudF90eXBlKiogfCBbKipBY2NvdW50VHlwZSoqXShBY2NvdW50VHlwZS5tZCkgfCAgfCAKKipvbmVfdGltZV9hZGRyZXNzKiogfCAqKnN0cioqIHwgIHwgCioqdGFnKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlc3RpbmF0aW9uIGltcG9ydCBEZXN0aW5hdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGVzdGluYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCmRlc3RpbmF0aW9uX2luc3RhbmNlID0gRGVzdGluYXRpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRGVzdGluYXRpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZGVzdGluYXRpb25fZGljdCA9IGRlc3RpbmF0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZXN0aW5hdGlvbiBmcm9tIGEgZGljdApkZXN0aW5hdGlvbl9mcm9tX2RpY3QgPSBEZXN0aW5hdGlvbi5mcm9tX2RpY3QoZGVzdGluYXRpb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/DestinationConfig.md b/docs/DestinationConfig.md index e664b7f7..2e15b910 100644 --- a/docs/DestinationConfig.md +++ b/docs/DestinationConfig.md @@ -1,36 +1 @@ -# DestinationConfig - -Destination configuration for policy rules - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**List[AccountType2]**](AccountType2.md) | Destination account types | [optional] -**sub_type** | [**List[AccountIdentifier]**](AccountIdentifier.md) | | [optional] -**ids** | [**List[AccountIdentifier]**](AccountIdentifier.md) | | [optional] -**tags** | [**List[PolicyTag]**](PolicyTag.md) | Tags for destination matching | [optional] -**operator** | [**PolicyOperator**](PolicyOperator.md) | | -**match_from** | **str** | Whether to match from account or source (relevant only for ORDER policy type). If set to ACCOUNT, only matchFrom is allowed and other fields are not required. | [optional] -**address_type** | **str** | Type of destination addresses allowed | - -## Example - -```python -from fireblocks.models.destination_config import DestinationConfig - -# TODO update the JSON string below -json = "{}" -# create an instance of DestinationConfig from a JSON string -destination_config_instance = DestinationConfig.from_json(json) -# print the JSON string representation of the object -print(DestinationConfig.to_json()) - -# convert the object into a dict -destination_config_dict = destination_config_instance.to_dict() -# create an instance of DestinationConfig from a dict -destination_config_from_dict = DestinationConfig.from_dict(destination_config_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEZXN0aW5hdGlvbkNvbmZpZwoKRGVzdGluYXRpb24gY29uZmlndXJhdGlvbiBmb3IgcG9saWN5IHJ1bGVzCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgWyoqTGlzdFtBY2NvdW50VHlwZTJdKipdKEFjY291bnRUeXBlMi5tZCkgfCBEZXN0aW5hdGlvbiBhY2NvdW50IHR5cGVzIHwgW29wdGlvbmFsXSAKKipzdWJfdHlwZSoqIHwgWyoqTGlzdFtBY2NvdW50SWRlbnRpZmllcl0qKl0oQWNjb3VudElkZW50aWZpZXIubWQpIHwgIHwgW29wdGlvbmFsXSAKKippZHMqKiB8IFsqKkxpc3RbQWNjb3VudElkZW50aWZpZXJdKipdKEFjY291bnRJZGVudGlmaWVyLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqdGFncyoqIHwgWyoqTGlzdFtQb2xpY3lUYWddKipdKFBvbGljeVRhZy5tZCkgfCBUYWdzIGZvciBkZXN0aW5hdGlvbiBtYXRjaGluZyB8IFtvcHRpb25hbF0gCioqb3BlcmF0b3IqKiB8IFsqKlBvbGljeU9wZXJhdG9yKipdKFBvbGljeU9wZXJhdG9yLm1kKSB8ICB8IAoqKm1hdGNoX2Zyb20qKiB8ICoqc3RyKiogfCBXaGV0aGVyIHRvIG1hdGNoIGZyb20gYWNjb3VudCBvciBzb3VyY2UgKHJlbGV2YW50IG9ubHkgZm9yIE9SREVSIHBvbGljeSB0eXBlKS4gSWYgc2V0IHRvIEFDQ09VTlQsIG9ubHkgbWF0Y2hGcm9tIGlzIGFsbG93ZWQgYW5kIG90aGVyIGZpZWxkcyBhcmUgbm90IHJlcXVpcmVkLiB8IFtvcHRpb25hbF0gCioqYWRkcmVzc190eXBlKiogfCAqKnN0cioqIHwgVHlwZSBvZiBkZXN0aW5hdGlvbiBhZGRyZXNzZXMgYWxsb3dlZCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzdGluYXRpb25fY29uZmlnIGltcG9ydCBEZXN0aW5hdGlvbkNvbmZpZwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGVzdGluYXRpb25Db25maWcgZnJvbSBhIEpTT04gc3RyaW5nCmRlc3RpbmF0aW9uX2NvbmZpZ19pbnN0YW5jZSA9IERlc3RpbmF0aW9uQ29uZmlnLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KERlc3RpbmF0aW9uQ29uZmlnLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmRlc3RpbmF0aW9uX2NvbmZpZ19kaWN0ID0gZGVzdGluYXRpb25fY29uZmlnX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZXN0aW5hdGlvbkNvbmZpZyBmcm9tIGEgZGljdApkZXN0aW5hdGlvbl9jb25maWdfZnJvbV9kaWN0ID0gRGVzdGluYXRpb25Db25maWcuZnJvbV9kaWN0KGRlc3RpbmF0aW9uX2NvbmZpZ19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/DestinationTransferPeerPath.md b/docs/DestinationTransferPeerPath.md index f2a27118..3e81f3df 100644 --- a/docs/DestinationTransferPeerPath.md +++ b/docs/DestinationTransferPeerPath.md @@ -1,36 +1 @@ -# DestinationTransferPeerPath - -The destination of the transaction. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**TransferPeerPathType**](TransferPeerPathType.md) | | -**sub_type** | [**TransferPeerPathSubType**](TransferPeerPathSubType.md) | | [optional] -**id** | **str** | | [optional] -**name** | **str** | | [optional] -**wallet_id** | **str** | | [optional] -**one_time_address** | [**OneTimeAddress**](OneTimeAddress.md) | | [optional] -**is_collateral** | **bool** | indicate if the destination is collateral account | [optional] - -## Example - -```python -from fireblocks.models.destination_transfer_peer_path import DestinationTransferPeerPath - -# TODO update the JSON string below -json = "{}" -# create an instance of DestinationTransferPeerPath from a JSON string -destination_transfer_peer_path_instance = DestinationTransferPeerPath.from_json(json) -# print the JSON string representation of the object -print(DestinationTransferPeerPath.to_json()) - -# convert the object into a dict -destination_transfer_peer_path_dict = destination_transfer_peer_path_instance.to_dict() -# create an instance of DestinationTransferPeerPath from a dict -destination_transfer_peer_path_from_dict = DestinationTransferPeerPath.from_dict(destination_transfer_peer_path_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgKClRoZSBkZXN0aW5hdGlvbiBvZiB0aGUgdHJhbnNhY3Rpb24uCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgWyoqVHJhbnNmZXJQZWVyUGF0aFR5cGUqKl0oVHJhbnNmZXJQZWVyUGF0aFR5cGUubWQpIHwgIHwgCioqc3ViX3R5cGUqKiB8IFsqKlRyYW5zZmVyUGVlclBhdGhTdWJUeXBlKipdKFRyYW5zZmVyUGVlclBhdGhTdWJUeXBlLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqaWQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKm5hbWUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKndhbGxldF9pZCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqb25lX3RpbWVfYWRkcmVzcyoqIHwgWyoqT25lVGltZUFkZHJlc3MqKl0oT25lVGltZUFkZHJlc3MubWQpIHwgIHwgW29wdGlvbmFsXSAKKippc19jb2xsYXRlcmFsKiogfCAqKmJvb2wqKiB8IGluZGljYXRlIGlmIHRoZSBkZXN0aW5hdGlvbiBpcyBjb2xsYXRlcmFsIGFjY291bnQgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzdGluYXRpb25fdHJhbnNmZXJfcGVlcl9wYXRoIGltcG9ydCBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aCBmcm9tIGEgSlNPTiBzdHJpbmcKZGVzdGluYXRpb25fdHJhbnNmZXJfcGVlcl9wYXRoX2luc3RhbmNlID0gRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KERlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApkZXN0aW5hdGlvbl90cmFuc2Zlcl9wZWVyX3BhdGhfZGljdCA9IGRlc3RpbmF0aW9uX3RyYW5zZmVyX3BlZXJfcGF0aF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoIGZyb20gYSBkaWN0CmRlc3RpbmF0aW9uX3RyYW5zZmVyX3BlZXJfcGF0aF9mcm9tX2RpY3QgPSBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGguZnJvbV9kaWN0KGRlc3RpbmF0aW9uX3RyYW5zZmVyX3BlZXJfcGF0aF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/DestinationTransferPeerPathResponse.md b/docs/DestinationTransferPeerPathResponse.md index fecebadb..b5df6e54 100644 --- a/docs/DestinationTransferPeerPathResponse.md +++ b/docs/DestinationTransferPeerPathResponse.md @@ -1,35 +1 @@ -# DestinationTransferPeerPathResponse - -Destination of the transaction. **Note:** In case the transaction is sent to multiple destinations, the `destinations` parameter is be used instead of this. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**TransferPeerPathType**](TransferPeerPathType.md) | | -**sub_type** | **str** | In case the type is set to `EXCHANGE_ACCOUNT` or `FIAT_ACCOUNT`, the specific exchange vendor name or fiat vendor name.In case the type is set to `INTERNAL_WALLET` or `EXTERNAL_WALLET`, the subType is set to `Internal` or `External`. | [optional] -**id** | **str** | The ID of the peer. You can retrieve the ID of each venue object using the endpoints for [listing vault accounts](https://developers.fireblocks.com/reference/getpagedvaultaccounts), [listing exchange account](https://developers.fireblocks.com/reference/getexchangeaccounts), [listing fiat accounts](https://developers.fireblocks.com/reference/getfiataccounts), [listing internal wallets](https://developers.fireblocks.com/reference/getinternalwallets), [listing external wallets](https://developers.fireblocks.com/reference/getexternalwallets), [listing network connections](https://developers.fireblocks.com/reference/getnetworkconnections). For the other types, this parameter is not needed. | [optional] -**name** | **str** | The name of the peer. | [optional] -**wallet_id** | **str** | | [optional] -**trading_account** | **str** | If this transaction is an exchange internal transfer, this field will be populated with the type of that trading account. | [optional] - -## Example - -```python -from fireblocks.models.destination_transfer_peer_path_response import DestinationTransferPeerPathResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of DestinationTransferPeerPathResponse from a JSON string -destination_transfer_peer_path_response_instance = DestinationTransferPeerPathResponse.from_json(json) -# print the JSON string representation of the object -print(DestinationTransferPeerPathResponse.to_json()) - -# convert the object into a dict -destination_transfer_peer_path_response_dict = destination_transfer_peer_path_response_instance.to_dict() -# create an instance of DestinationTransferPeerPathResponse from a dict -destination_transfer_peer_path_response_from_dict = DestinationTransferPeerPathResponse.from_dict(destination_transfer_peer_path_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGhSZXNwb25zZQoKRGVzdGluYXRpb24gb2YgdGhlIHRyYW5zYWN0aW9uLiAgKipOb3RlOioqIEluIGNhc2UgdGhlIHRyYW5zYWN0aW9uIGlzIHNlbnQgdG8gbXVsdGlwbGUgZGVzdGluYXRpb25zLCB0aGUgYGRlc3RpbmF0aW9uc2AgcGFyYW1ldGVyIGlzIGJlIHVzZWQgaW5zdGVhZCBvZiB0aGlzLgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8IFsqKlRyYW5zZmVyUGVlclBhdGhUeXBlKipdKFRyYW5zZmVyUGVlclBhdGhUeXBlLm1kKSB8ICB8IAoqKnN1Yl90eXBlKiogfCAqKnN0cioqIHwgSW4gY2FzZSB0aGUgdHlwZSBpcyBzZXQgdG8gJiN4NjA7RVhDSEFOR0VfQUNDT1VOVCYjeDYwOyBvciAmI3g2MDtGSUFUX0FDQ09VTlQmI3g2MDssIHRoZSBzcGVjaWZpYyBleGNoYW5nZSB2ZW5kb3IgbmFtZSBvciBmaWF0IHZlbmRvciBuYW1lLkluIGNhc2UgdGhlIHR5cGUgaXMgc2V0IHRvICYjeDYwO0lOVEVSTkFMX1dBTExFVCYjeDYwOyBvciAmI3g2MDtFWFRFUk5BTF9XQUxMRVQmI3g2MDssIHRoZSBzdWJUeXBlIGlzIHNldCB0byAmI3g2MDtJbnRlcm5hbCYjeDYwOyBvciAmI3g2MDtFeHRlcm5hbCYjeDYwOy4gfCBbb3B0aW9uYWxdIAoqKmlkKiogfCAqKnN0cioqIHwgVGhlIElEIG9mIHRoZSBwZWVyLiBZb3UgY2FuIHJldHJpZXZlIHRoZSBJRCBvZiBlYWNoIHZlbnVlIG9iamVjdCB1c2luZyB0aGUgZW5kcG9pbnRzIGZvciBbbGlzdGluZyB2YXVsdCBhY2NvdW50c10oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS9nZXRwYWdlZHZhdWx0YWNjb3VudHMpLCBbbGlzdGluZyBleGNoYW5nZSBhY2NvdW50XShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2dldGV4Y2hhbmdlYWNjb3VudHMpLCBbbGlzdGluZyBmaWF0IGFjY291bnRzXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2dldGZpYXRhY2NvdW50cyksIFtsaXN0aW5nIGludGVybmFsIHdhbGxldHNdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9yZWZlcmVuY2UvZ2V0aW50ZXJuYWx3YWxsZXRzKSwgW2xpc3RpbmcgZXh0ZXJuYWwgd2FsbGV0c10oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS9nZXRleHRlcm5hbHdhbGxldHMpLCBbbGlzdGluZyBuZXR3b3JrIGNvbm5lY3Rpb25zXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2dldG5ldHdvcmtjb25uZWN0aW9ucykuIEZvciB0aGUgb3RoZXIgdHlwZXMsIHRoaXMgcGFyYW1ldGVyIGlzIG5vdCBuZWVkZWQuIHwgW29wdGlvbmFsXSAKKipuYW1lKiogfCAqKnN0cioqIHwgVGhlIG5hbWUgb2YgdGhlIHBlZXIuIHwgW29wdGlvbmFsXSAKKip3YWxsZXRfaWQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKnRyYWRpbmdfYWNjb3VudCoqIHwgKipzdHIqKiB8IElmIHRoaXMgdHJhbnNhY3Rpb24gaXMgYW4gZXhjaGFuZ2UgaW50ZXJuYWwgdHJhbnNmZXIsIHRoaXMgZmllbGQgd2lsbCBiZSBwb3B1bGF0ZWQgd2l0aCB0aGUgdHlwZSBvZiB0aGF0IHRyYWRpbmcgYWNjb3VudC4gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzdGluYXRpb25fdHJhbnNmZXJfcGVlcl9wYXRoX3Jlc3BvbnNlIGltcG9ydCBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGhSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmRlc3RpbmF0aW9uX3RyYW5zZmVyX3BlZXJfcGF0aF9yZXNwb25zZV9pbnN0YW5jZSA9IERlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KERlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmRlc3RpbmF0aW9uX3RyYW5zZmVyX3BlZXJfcGF0aF9yZXNwb25zZV9kaWN0ID0gZGVzdGluYXRpb25fdHJhbnNmZXJfcGVlcl9wYXRoX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGhSZXNwb25zZSBmcm9tIGEgZGljdApkZXN0aW5hdGlvbl90cmFuc2Zlcl9wZWVyX3BhdGhfcmVzcG9uc2VfZnJvbV9kaWN0ID0gRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UuZnJvbV9kaWN0KGRlc3RpbmF0aW9uX3RyYW5zZmVyX3BlZXJfcGF0aF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/DirectAccess.md b/docs/DirectAccess.md index dec6d316..6e3c6cf6 100644 --- a/docs/DirectAccess.md +++ b/docs/DirectAccess.md @@ -1,30 +1 @@ -# DirectAccess - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | Indicates this uses direct provider access | -**provider_id** | **str** | The ID of the provider | - -## Example - -```python -from fireblocks.models.direct_access import DirectAccess - -# TODO update the JSON string below -json = "{}" -# create an instance of DirectAccess from a JSON string -direct_access_instance = DirectAccess.from_json(json) -# print the JSON string representation of the object -print(DirectAccess.to_json()) - -# convert the object into a dict -direct_access_dict = direct_access_instance.to_dict() -# create an instance of DirectAccess from a dict -direct_access_from_dict = DirectAccess.from_dict(direct_access_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEaXJlY3RBY2Nlc3MKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgKipzdHIqKiB8IEluZGljYXRlcyB0aGlzIHVzZXMgZGlyZWN0IHByb3ZpZGVyIGFjY2VzcyB8IAoqKnByb3ZpZGVyX2lkKiogfCAqKnN0cioqIHwgVGhlIElEIG9mIHRoZSBwcm92aWRlciB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlyZWN0X2FjY2VzcyBpbXBvcnQgRGlyZWN0QWNjZXNzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXJlY3RBY2Nlc3MgZnJvbSBhIEpTT04gc3RyaW5nCmRpcmVjdF9hY2Nlc3NfaW5zdGFuY2UgPSBEaXJlY3RBY2Nlc3MuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRGlyZWN0QWNjZXNzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmRpcmVjdF9hY2Nlc3NfZGljdCA9IGRpcmVjdF9hY2Nlc3NfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERpcmVjdEFjY2VzcyBmcm9tIGEgZGljdApkaXJlY3RfYWNjZXNzX2Zyb21fZGljdCA9IERpcmVjdEFjY2Vzcy5mcm9tX2RpY3QoZGlyZWN0X2FjY2Vzc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/DirectAccessProvider.md b/docs/DirectAccessProvider.md index 8c8a1240..cee01686 100644 --- a/docs/DirectAccessProvider.md +++ b/docs/DirectAccessProvider.md @@ -1,35 +1 @@ -# DirectAccessProvider - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | Unique identifier for the provider | -**name** | **str** | Display name of the provider | -**logo** | **str** | URL to the logo image of the provider | [optional] -**account_based** | **bool** | Indicates whether the provider access model is through accounts or directly | -**approved** | **bool** | Whether the provider was approved for use | [optional] -**has_terms_of_service** | **bool** | Whether the provider has terms of service | -**terms_of_service_url** | **str** | URL to the terms of service document | [optional] - -## Example - -```python -from fireblocks.models.direct_access_provider import DirectAccessProvider - -# TODO update the JSON string below -json = "{}" -# create an instance of DirectAccessProvider from a JSON string -direct_access_provider_instance = DirectAccessProvider.from_json(json) -# print the JSON string representation of the object -print(DirectAccessProvider.to_json()) - -# convert the object into a dict -direct_access_provider_dict = direct_access_provider_instance.to_dict() -# create an instance of DirectAccessProvider from a dict -direct_access_provider_from_dict = DirectAccessProvider.from_dict(direct_access_provider_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEaXJlY3RBY2Nlc3NQcm92aWRlcgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8IFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcHJvdmlkZXIgfCAKKipuYW1lKiogfCAqKnN0cioqIHwgRGlzcGxheSBuYW1lIG9mIHRoZSBwcm92aWRlciB8IAoqKmxvZ28qKiB8ICoqc3RyKiogfCBVUkwgdG8gdGhlIGxvZ28gaW1hZ2Ugb2YgdGhlIHByb3ZpZGVyIHwgW29wdGlvbmFsXSAKKiphY2NvdW50X2Jhc2VkKiogfCAqKmJvb2wqKiB8IEluZGljYXRlcyB3aGV0aGVyIHRoZSBwcm92aWRlciBhY2Nlc3MgbW9kZWwgaXMgdGhyb3VnaCBhY2NvdW50cyBvciBkaXJlY3RseSB8IAoqKm1hbmlmZXN0KiogfCBbKipNYW5pZmVzdCoqXShNYW5pZmVzdC5tZCkgfCAgfCAKKiphcHByb3ZlZCoqIHwgKipib29sKiogfCBXaGV0aGVyIHRoZSBwcm92aWRlciB3YXMgYXBwcm92ZWQgZm9yIHVzZSB8IFtvcHRpb25hbF0gCioqaGFzX3Rlcm1zX29mX3NlcnZpY2UqKiB8ICoqYm9vbCoqIHwgV2hldGhlciB0aGUgcHJvdmlkZXIgaGFzIHRlcm1zIG9mIHNlcnZpY2UgfCAKKip0ZXJtc19vZl9zZXJ2aWNlX3VybCoqIHwgKipzdHIqKiB8IFVSTCB0byB0aGUgdGVybXMgb2Ygc2VydmljZSBkb2N1bWVudCB8IFtvcHRpb25hbF0gCioqcHJpdmFjeV9wb2xpY3lfdXJsKiogfCAqKnN0cioqIHwgVVJMIHRvIHRoZSBwcml2YWN5IHBvbGljeSBkb2N1bWVudCB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXJlY3RfYWNjZXNzX3Byb3ZpZGVyIGltcG9ydCBEaXJlY3RBY2Nlc3NQcm92aWRlcgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlyZWN0QWNjZXNzUHJvdmlkZXIgZnJvbSBhIEpTT04gc3RyaW5nCmRpcmVjdF9hY2Nlc3NfcHJvdmlkZXJfaW5zdGFuY2UgPSBEaXJlY3RBY2Nlc3NQcm92aWRlci5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChEaXJlY3RBY2Nlc3NQcm92aWRlci50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApkaXJlY3RfYWNjZXNzX3Byb3ZpZGVyX2RpY3QgPSBkaXJlY3RfYWNjZXNzX3Byb3ZpZGVyX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXJlY3RBY2Nlc3NQcm92aWRlciBmcm9tIGEgZGljdApkaXJlY3RfYWNjZXNzX3Byb3ZpZGVyX2Zyb21fZGljdCA9IERpcmVjdEFjY2Vzc1Byb3ZpZGVyLmZyb21fZGljdChkaXJlY3RfYWNjZXNzX3Byb3ZpZGVyX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/DirectAccessProviderInfo.md b/docs/DirectAccessProviderInfo.md new file mode 100644 index 00000000..e1d70c30 --- /dev/null +++ b/docs/DirectAccessProviderInfo.md @@ -0,0 +1 @@ +IyBEaXJlY3RBY2Nlc3NQcm92aWRlckluZm8KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYXBwcm92ZWQqKiB8ICoqYm9vbCoqIHwgV2hldGhlciB0aGUgcHJvdmlkZXIgd2FzIGFwcHJvdmVkIGZvciB1c2UgfCBbb3B0aW9uYWxdIAoqKmhhc190ZXJtc19vZl9zZXJ2aWNlKiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgdGhlIHByb3ZpZGVyIGhhcyB0ZXJtcyBvZiBzZXJ2aWNlIHwgCioqdGVybXNfb2Zfc2VydmljZV91cmwqKiB8ICoqc3RyKiogfCBVUkwgdG8gdGhlIHRlcm1zIG9mIHNlcnZpY2UgZG9jdW1lbnQgfCBbb3B0aW9uYWxdIAoqKnByaXZhY3lfcG9saWN5X3VybCoqIHwgKipzdHIqKiB8IFVSTCB0byB0aGUgcHJpdmFjeSBwb2xpY3kgZG9jdW1lbnQgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlyZWN0X2FjY2Vzc19wcm92aWRlcl9pbmZvIGltcG9ydCBEaXJlY3RBY2Nlc3NQcm92aWRlckluZm8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERpcmVjdEFjY2Vzc1Byb3ZpZGVySW5mbyBmcm9tIGEgSlNPTiBzdHJpbmcKZGlyZWN0X2FjY2Vzc19wcm92aWRlcl9pbmZvX2luc3RhbmNlID0gRGlyZWN0QWNjZXNzUHJvdmlkZXJJbmZvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KERpcmVjdEFjY2Vzc1Byb3ZpZGVySW5mby50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApkaXJlY3RfYWNjZXNzX3Byb3ZpZGVyX2luZm9fZGljdCA9IGRpcmVjdF9hY2Nlc3NfcHJvdmlkZXJfaW5mb19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlyZWN0QWNjZXNzUHJvdmlkZXJJbmZvIGZyb20gYSBkaWN0CmRpcmVjdF9hY2Nlc3NfcHJvdmlkZXJfaW5mb19mcm9tX2RpY3QgPSBEaXJlY3RBY2Nlc3NQcm92aWRlckluZm8uZnJvbV9kaWN0KGRpcmVjdF9hY2Nlc3NfcHJvdmlkZXJfaW5mb19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/DirectProviderDetails.md b/docs/DirectProviderDetails.md new file mode 100644 index 00000000..9a0b7313 --- /dev/null +++ b/docs/DirectProviderDetails.md @@ -0,0 +1 @@ +IyBEaXJlY3RQcm92aWRlckRldGFpbHMKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHByb3ZpZGVyIHwgCioqbmFtZSoqIHwgKipzdHIqKiB8IERpc3BsYXkgbmFtZSBvZiB0aGUgcHJvdmlkZXIgfCAKKipsb2dvKiogfCAqKnN0cioqIHwgVVJMIHRvIHRoZSBsb2dvIGltYWdlIG9mIHRoZSBwcm92aWRlciB8IFtvcHRpb25hbF0gCioqYWNjb3VudF9iYXNlZCoqIHwgKipib29sKiogfCBJbmRpY2F0ZXMgd2hldGhlciB0aGUgcHJvdmlkZXIgYWNjZXNzIG1vZGVsIGlzIHRocm91Z2ggYWNjb3VudHMgb3IgZGlyZWN0bHkgfCAKKiptYW5pZmVzdCoqIHwgWyoqTWFuaWZlc3QqKl0oTWFuaWZlc3QubWQpIHwgIHwgCioqYXBwcm92ZWQqKiB8ICoqYm9vbCoqIHwgV2hldGhlciB0aGUgcHJvdmlkZXIgd2FzIGFwcHJvdmVkIGZvciB1c2UgfCBbb3B0aW9uYWxdIAoqKmhhc190ZXJtc19vZl9zZXJ2aWNlKiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgdGhlIHByb3ZpZGVyIGhhcyB0ZXJtcyBvZiBzZXJ2aWNlIHwgCioqdGVybXNfb2Zfc2VydmljZV91cmwqKiB8ICoqc3RyKiogfCBVUkwgdG8gdGhlIHRlcm1zIG9mIHNlcnZpY2UgZG9jdW1lbnQgfCBbb3B0aW9uYWxdIAoqKnByaXZhY3lfcG9saWN5X3VybCoqIHwgKipzdHIqKiB8IFVSTCB0byB0aGUgcHJpdmFjeSBwb2xpY3kgZG9jdW1lbnQgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlyZWN0X3Byb3ZpZGVyX2RldGFpbHMgaW1wb3J0IERpcmVjdFByb3ZpZGVyRGV0YWlscwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlyZWN0UHJvdmlkZXJEZXRhaWxzIGZyb20gYSBKU09OIHN0cmluZwpkaXJlY3RfcHJvdmlkZXJfZGV0YWlsc19pbnN0YW5jZSA9IERpcmVjdFByb3ZpZGVyRGV0YWlscy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChEaXJlY3RQcm92aWRlckRldGFpbHMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZGlyZWN0X3Byb3ZpZGVyX2RldGFpbHNfZGljdCA9IGRpcmVjdF9wcm92aWRlcl9kZXRhaWxzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXJlY3RQcm92aWRlckRldGFpbHMgZnJvbSBhIGRpY3QKZGlyZWN0X3Byb3ZpZGVyX2RldGFpbHNfZnJvbV9kaWN0ID0gRGlyZWN0UHJvdmlkZXJEZXRhaWxzLmZyb21fZGljdChkaXJlY3RfcHJvdmlkZXJfZGV0YWlsc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/DisbursementAmountInstruction.md b/docs/DisbursementAmountInstruction.md index 4e4cb8be..554f0b32 100644 --- a/docs/DisbursementAmountInstruction.md +++ b/docs/DisbursementAmountInstruction.md @@ -1,31 +1 @@ -# DisbursementAmountInstruction - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**payee_account** | [**Destination**](Destination.md) | | -**asset_id** | **str** | | -**amount** | **str** | | - -## Example - -```python -from fireblocks.models.disbursement_amount_instruction import DisbursementAmountInstruction - -# TODO update the JSON string below -json = "{}" -# create an instance of DisbursementAmountInstruction from a JSON string -disbursement_amount_instruction_instance = DisbursementAmountInstruction.from_json(json) -# print the JSON string representation of the object -print(DisbursementAmountInstruction.to_json()) - -# convert the object into a dict -disbursement_amount_instruction_dict = disbursement_amount_instruction_instance.to_dict() -# create an instance of DisbursementAmountInstruction from a dict -disbursement_amount_instruction_from_dict = DisbursementAmountInstruction.from_dict(disbursement_amount_instruction_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEaXNidXJzZW1lbnRBbW91bnRJbnN0cnVjdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipwYXllZV9hY2NvdW50KiogfCBbKipEZXN0aW5hdGlvbioqXShEZXN0aW5hdGlvbi5tZCkgfCAgfCAKKiphc3NldF9pZCoqIHwgKipzdHIqKiB8ICB8IAoqKmFtb3VudCoqIHwgKipzdHIqKiB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X2Ftb3VudF9pbnN0cnVjdGlvbiBpbXBvcnQgRGlzYnVyc2VtZW50QW1vdW50SW5zdHJ1Y3Rpb24KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudEFtb3VudEluc3RydWN0aW9uIGZyb20gYSBKU09OIHN0cmluZwpkaXNidXJzZW1lbnRfYW1vdW50X2luc3RydWN0aW9uX2luc3RhbmNlID0gRGlzYnVyc2VtZW50QW1vdW50SW5zdHJ1Y3Rpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRGlzYnVyc2VtZW50QW1vdW50SW5zdHJ1Y3Rpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZGlzYnVyc2VtZW50X2Ftb3VudF9pbnN0cnVjdGlvbl9kaWN0ID0gZGlzYnVyc2VtZW50X2Ftb3VudF9pbnN0cnVjdGlvbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlzYnVyc2VtZW50QW1vdW50SW5zdHJ1Y3Rpb24gZnJvbSBhIGRpY3QKZGlzYnVyc2VtZW50X2Ftb3VudF9pbnN0cnVjdGlvbl9mcm9tX2RpY3QgPSBEaXNidXJzZW1lbnRBbW91bnRJbnN0cnVjdGlvbi5mcm9tX2RpY3QoZGlzYnVyc2VtZW50X2Ftb3VudF9pbnN0cnVjdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/DisbursementConfigOperation.md b/docs/DisbursementConfigOperation.md index b93112d9..d1ccf946 100644 --- a/docs/DisbursementConfigOperation.md +++ b/docs/DisbursementConfigOperation.md @@ -1,33 +1 @@ -# DisbursementConfigOperation - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**operation_id** | **str** | | -**type** | [**DisbursementOperationType**](DisbursementOperationType.md) | | -**params** | [**DisbursementOperationConfigParams**](DisbursementOperationConfigParams.md) | | -**status** | [**ConfigOperationStatus**](ConfigOperationStatus.md) | | -**validation_failure** | [**DisbursementValidationFailure**](DisbursementValidationFailure.md) | | [optional] - -## Example - -```python -from fireblocks.models.disbursement_config_operation import DisbursementConfigOperation - -# TODO update the JSON string below -json = "{}" -# create an instance of DisbursementConfigOperation from a JSON string -disbursement_config_operation_instance = DisbursementConfigOperation.from_json(json) -# print the JSON string representation of the object -print(DisbursementConfigOperation.to_json()) - -# convert the object into a dict -disbursement_config_operation_dict = disbursement_config_operation_instance.to_dict() -# create an instance of DisbursementConfigOperation from a dict -disbursement_config_operation_from_dict = DisbursementConfigOperation.from_dict(disbursement_config_operation_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqb3BlcmF0aW9uX2lkKiogfCAqKnN0cioqIHwgIHwgCioqdHlwZSoqIHwgWyoqRGlzYnVyc2VtZW50T3BlcmF0aW9uVHlwZSoqXShEaXNidXJzZW1lbnRPcGVyYXRpb25UeXBlLm1kKSB8ICB8IAoqKnBhcmFtcyoqIHwgWyoqRGlzYnVyc2VtZW50T3BlcmF0aW9uQ29uZmlnUGFyYW1zKipdKERpc2J1cnNlbWVudE9wZXJhdGlvbkNvbmZpZ1BhcmFtcy5tZCkgfCAgfCAKKipzdGF0dXMqKiB8IFsqKkNvbmZpZ09wZXJhdGlvblN0YXR1cyoqXShDb25maWdPcGVyYXRpb25TdGF0dXMubWQpIHwgIHwgCioqdmFsaWRhdGlvbl9mYWlsdXJlKiogfCBbKipEaXNidXJzZW1lbnRWYWxpZGF0aW9uRmFpbHVyZSoqXShEaXNidXJzZW1lbnRWYWxpZGF0aW9uRmFpbHVyZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X2NvbmZpZ19vcGVyYXRpb24gaW1wb3J0IERpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uIGZyb20gYSBKU09OIHN0cmluZwpkaXNidXJzZW1lbnRfY29uZmlnX29wZXJhdGlvbl9pbnN0YW5jZSA9IERpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZGlzYnVyc2VtZW50X2NvbmZpZ19vcGVyYXRpb25fZGljdCA9IGRpc2J1cnNlbWVudF9jb25maWdfb3BlcmF0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb24gZnJvbSBhIGRpY3QKZGlzYnVyc2VtZW50X2NvbmZpZ19vcGVyYXRpb25fZnJvbV9kaWN0ID0gRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uLmZyb21fZGljdChkaXNidXJzZW1lbnRfY29uZmlnX29wZXJhdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/DisbursementInstruction.md b/docs/DisbursementInstruction.md index 19f5c008..2a047a6a 100644 --- a/docs/DisbursementInstruction.md +++ b/docs/DisbursementInstruction.md @@ -1,32 +1 @@ -# DisbursementInstruction - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**payee_account** | [**Destination**](Destination.md) | | -**asset_id** | **str** | | -**amount** | **str** | | -**percentage** | **str** | | - -## Example - -```python -from fireblocks.models.disbursement_instruction import DisbursementInstruction - -# TODO update the JSON string below -json = "{}" -# create an instance of DisbursementInstruction from a JSON string -disbursement_instruction_instance = DisbursementInstruction.from_json(json) -# print the JSON string representation of the object -print(DisbursementInstruction.to_json()) - -# convert the object into a dict -disbursement_instruction_dict = disbursement_instruction_instance.to_dict() -# create an instance of DisbursementInstruction from a dict -disbursement_instruction_from_dict = DisbursementInstruction.from_dict(disbursement_instruction_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEaXNidXJzZW1lbnRJbnN0cnVjdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipwYXllZV9hY2NvdW50KiogfCBbKipEZXN0aW5hdGlvbioqXShEZXN0aW5hdGlvbi5tZCkgfCAgfCAKKiphc3NldF9pZCoqIHwgKipzdHIqKiB8ICB8IAoqKmFtb3VudCoqIHwgKipzdHIqKiB8ICB8IAoqKnBlcmNlbnRhZ2UqKiB8ICoqc3RyKiogfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9pbnN0cnVjdGlvbiBpbXBvcnQgRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb24KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudEluc3RydWN0aW9uIGZyb20gYSBKU09OIHN0cmluZwpkaXNidXJzZW1lbnRfaW5zdHJ1Y3Rpb25faW5zdGFuY2UgPSBEaXNidXJzZW1lbnRJbnN0cnVjdGlvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChEaXNidXJzZW1lbnRJbnN0cnVjdGlvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApkaXNidXJzZW1lbnRfaW5zdHJ1Y3Rpb25fZGljdCA9IGRpc2J1cnNlbWVudF9pbnN0cnVjdGlvbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb24gZnJvbSBhIGRpY3QKZGlzYnVyc2VtZW50X2luc3RydWN0aW9uX2Zyb21fZGljdCA9IERpc2J1cnNlbWVudEluc3RydWN0aW9uLmZyb21fZGljdChkaXNidXJzZW1lbnRfaW5zdHJ1Y3Rpb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/DisbursementInstructionOutput.md b/docs/DisbursementInstructionOutput.md index eb5dbb6b..2cb89a45 100644 --- a/docs/DisbursementInstructionOutput.md +++ b/docs/DisbursementInstructionOutput.md @@ -1,31 +1 @@ -# DisbursementInstructionOutput - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | [**AssetAmount**](AssetAmount.md) | | -**fee** | [**AssetAmount**](AssetAmount.md) | | -**payee_account** | [**Destination**](Destination.md) | | - -## Example - -```python -from fireblocks.models.disbursement_instruction_output import DisbursementInstructionOutput - -# TODO update the JSON string below -json = "{}" -# create an instance of DisbursementInstructionOutput from a JSON string -disbursement_instruction_output_instance = DisbursementInstructionOutput.from_json(json) -# print the JSON string representation of the object -print(DisbursementInstructionOutput.to_json()) - -# convert the object into a dict -disbursement_instruction_output_dict = disbursement_instruction_output_instance.to_dict() -# create an instance of DisbursementInstructionOutput from a dict -disbursement_instruction_output_from_dict = DisbursementInstructionOutput.from_dict(disbursement_instruction_output_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEaXNidXJzZW1lbnRJbnN0cnVjdGlvbk91dHB1dAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphbW91bnQqKiB8IFsqKkFzc2V0QW1vdW50KipdKEFzc2V0QW1vdW50Lm1kKSB8ICB8IAoqKmZlZSoqIHwgWyoqQXNzZXRBbW91bnQqKl0oQXNzZXRBbW91bnQubWQpIHwgIHwgCioqcGF5ZWVfYWNjb3VudCoqIHwgWyoqRGVzdGluYXRpb24qKl0oRGVzdGluYXRpb24ubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfaW5zdHJ1Y3Rpb25fb3V0cHV0IGltcG9ydCBEaXNidXJzZW1lbnRJbnN0cnVjdGlvbk91dHB1dAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb25PdXRwdXQgZnJvbSBhIEpTT04gc3RyaW5nCmRpc2J1cnNlbWVudF9pbnN0cnVjdGlvbl9vdXRwdXRfaW5zdGFuY2UgPSBEaXNidXJzZW1lbnRJbnN0cnVjdGlvbk91dHB1dC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChEaXNidXJzZW1lbnRJbnN0cnVjdGlvbk91dHB1dC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApkaXNidXJzZW1lbnRfaW5zdHJ1Y3Rpb25fb3V0cHV0X2RpY3QgPSBkaXNidXJzZW1lbnRfaW5zdHJ1Y3Rpb25fb3V0cHV0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNidXJzZW1lbnRJbnN0cnVjdGlvbk91dHB1dCBmcm9tIGEgZGljdApkaXNidXJzZW1lbnRfaW5zdHJ1Y3Rpb25fb3V0cHV0X2Zyb21fZGljdCA9IERpc2J1cnNlbWVudEluc3RydWN0aW9uT3V0cHV0LmZyb21fZGljdChkaXNidXJzZW1lbnRfaW5zdHJ1Y3Rpb25fb3V0cHV0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/DisbursementOperationConfigParams.md b/docs/DisbursementOperationConfigParams.md index e438ec29..7c4d7c2c 100644 --- a/docs/DisbursementOperationConfigParams.md +++ b/docs/DisbursementOperationConfigParams.md @@ -1,30 +1 @@ -# DisbursementOperationConfigParams - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**payment_account** | [**Account**](Account.md) | | [optional] -**instruction_set** | [**List[DisbursementInstruction]**](DisbursementInstruction.md) | | - -## Example - -```python -from fireblocks.models.disbursement_operation_config_params import DisbursementOperationConfigParams - -# TODO update the JSON string below -json = "{}" -# create an instance of DisbursementOperationConfigParams from a JSON string -disbursement_operation_config_params_instance = DisbursementOperationConfigParams.from_json(json) -# print the JSON string representation of the object -print(DisbursementOperationConfigParams.to_json()) - -# convert the object into a dict -disbursement_operation_config_params_dict = disbursement_operation_config_params_instance.to_dict() -# create an instance of DisbursementOperationConfigParams from a dict -disbursement_operation_config_params_from_dict = DisbursementOperationConfigParams.from_dict(disbursement_operation_config_params_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEaXNidXJzZW1lbnRPcGVyYXRpb25Db25maWdQYXJhbXMKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcGF5bWVudF9hY2NvdW50KiogfCBbKipBY2NvdW50KipdKEFjY291bnQubWQpIHwgIHwgW29wdGlvbmFsXSAKKippbnN0cnVjdGlvbl9zZXQqKiB8IFsqKkxpc3RbRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb25dKipdKERpc2J1cnNlbWVudEluc3RydWN0aW9uLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9jb25maWdfcGFyYW1zIGltcG9ydCBEaXNidXJzZW1lbnRPcGVyYXRpb25Db25maWdQYXJhbXMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudE9wZXJhdGlvbkNvbmZpZ1BhcmFtcyBmcm9tIGEgSlNPTiBzdHJpbmcKZGlzYnVyc2VtZW50X29wZXJhdGlvbl9jb25maWdfcGFyYW1zX2luc3RhbmNlID0gRGlzYnVyc2VtZW50T3BlcmF0aW9uQ29uZmlnUGFyYW1zLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KERpc2J1cnNlbWVudE9wZXJhdGlvbkNvbmZpZ1BhcmFtcy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApkaXNidXJzZW1lbnRfb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXNfZGljdCA9IGRpc2J1cnNlbWVudF9vcGVyYXRpb25fY29uZmlnX3BhcmFtc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlzYnVyc2VtZW50T3BlcmF0aW9uQ29uZmlnUGFyYW1zIGZyb20gYSBkaWN0CmRpc2J1cnNlbWVudF9vcGVyYXRpb25fY29uZmlnX3BhcmFtc19mcm9tX2RpY3QgPSBEaXNidXJzZW1lbnRPcGVyYXRpb25Db25maWdQYXJhbXMuZnJvbV9kaWN0KGRpc2J1cnNlbWVudF9vcGVyYXRpb25fY29uZmlnX3BhcmFtc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/DisbursementOperationExecution.md b/docs/DisbursementOperationExecution.md index 98530249..eda4e572 100644 --- a/docs/DisbursementOperationExecution.md +++ b/docs/DisbursementOperationExecution.md @@ -1,34 +1 @@ -# DisbursementOperationExecution - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**input** | [**DisbursementOperationInput**](DisbursementOperationInput.md) | | -**output** | [**DisbursementOperationExecutionOutput**](DisbursementOperationExecutionOutput.md) | | [optional] -**payout_id** | **str** | | [optional] -**started_at** | **float** | | -**finished_at** | **float** | | [optional] -**failure** | [**OperationExecutionFailure**](OperationExecutionFailure.md) | | [optional] - -## Example - -```python -from fireblocks.models.disbursement_operation_execution import DisbursementOperationExecution - -# TODO update the JSON string below -json = "{}" -# create an instance of DisbursementOperationExecution from a JSON string -disbursement_operation_execution_instance = DisbursementOperationExecution.from_json(json) -# print the JSON string representation of the object -print(DisbursementOperationExecution.to_json()) - -# convert the object into a dict -disbursement_operation_execution_dict = disbursement_operation_execution_instance.to_dict() -# create an instance of DisbursementOperationExecution from a dict -disbursement_operation_execution_from_dict = DisbursementOperationExecution.from_dict(disbursement_operation_execution_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaW5wdXQqKiB8IFsqKkRpc2J1cnNlbWVudE9wZXJhdGlvbklucHV0KipdKERpc2J1cnNlbWVudE9wZXJhdGlvbklucHV0Lm1kKSB8ICB8IAoqKm91dHB1dCoqIHwgWyoqRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0KipdKERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnBheW91dF9pZCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqc3RhcnRlZF9hdCoqIHwgKipmbG9hdCoqIHwgIHwgCioqZmluaXNoZWRfYXQqKiB8ICoqZmxvYXQqKiB8ICB8IFtvcHRpb25hbF0gCioqZmFpbHVyZSoqIHwgWyoqT3BlcmF0aW9uRXhlY3V0aW9uRmFpbHVyZSoqXShPcGVyYXRpb25FeGVjdXRpb25GYWlsdXJlLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2V4ZWN1dGlvbiBpbXBvcnQgRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCmRpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uX2luc3RhbmNlID0gRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApkaXNidXJzZW1lbnRfb3BlcmF0aW9uX2V4ZWN1dGlvbl9kaWN0ID0gZGlzYnVyc2VtZW50X29wZXJhdGlvbl9leGVjdXRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbiBmcm9tIGEgZGljdApkaXNidXJzZW1lbnRfb3BlcmF0aW9uX2V4ZWN1dGlvbl9mcm9tX2RpY3QgPSBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb24uZnJvbV9kaWN0KGRpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/DisbursementOperationExecutionOutput.md b/docs/DisbursementOperationExecutionOutput.md index 524b9696..4e65856e 100644 --- a/docs/DisbursementOperationExecutionOutput.md +++ b/docs/DisbursementOperationExecutionOutput.md @@ -1,29 +1 @@ -# DisbursementOperationExecutionOutput - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**instruction_set** | [**List[DisbursementInstructionOutput]**](DisbursementInstructionOutput.md) | | - -## Example - -```python -from fireblocks.models.disbursement_operation_execution_output import DisbursementOperationExecutionOutput - -# TODO update the JSON string below -json = "{}" -# create an instance of DisbursementOperationExecutionOutput from a JSON string -disbursement_operation_execution_output_instance = DisbursementOperationExecutionOutput.from_json(json) -# print the JSON string representation of the object -print(DisbursementOperationExecutionOutput.to_json()) - -# convert the object into a dict -disbursement_operation_execution_output_dict = disbursement_operation_execution_output_instance.to_dict() -# create an instance of DisbursementOperationExecutionOutput from a dict -disbursement_operation_execution_output_from_dict = DisbursementOperationExecutionOutput.from_dict(disbursement_operation_execution_output_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaW5zdHJ1Y3Rpb25fc2V0KiogfCBbKipMaXN0W0Rpc2J1cnNlbWVudEluc3RydWN0aW9uT3V0cHV0XSoqXShEaXNidXJzZW1lbnRJbnN0cnVjdGlvbk91dHB1dC5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dCBpbXBvcnQgRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQgZnJvbSBhIEpTT04gc3RyaW5nCmRpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dF9pbnN0YW5jZSA9IERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZGlzYnVyc2VtZW50X29wZXJhdGlvbl9leGVjdXRpb25fb3V0cHV0X2RpY3QgPSBkaXNidXJzZW1lbnRfb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCBmcm9tIGEgZGljdApkaXNidXJzZW1lbnRfb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXRfZnJvbV9kaWN0ID0gRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0LmZyb21fZGljdChkaXNidXJzZW1lbnRfb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/DisbursementOperationExecutionParams.md b/docs/DisbursementOperationExecutionParams.md index 05ab6865..5bfc67ef 100644 --- a/docs/DisbursementOperationExecutionParams.md +++ b/docs/DisbursementOperationExecutionParams.md @@ -1,30 +1 @@ -# DisbursementOperationExecutionParams - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**config_operation_id** | **str** | | -**execution_params** | [**DisbursementOperationExecutionParamsExecutionParams**](DisbursementOperationExecutionParamsExecutionParams.md) | | [optional] - -## Example - -```python -from fireblocks.models.disbursement_operation_execution_params import DisbursementOperationExecutionParams - -# TODO update the JSON string below -json = "{}" -# create an instance of DisbursementOperationExecutionParams from a JSON string -disbursement_operation_execution_params_instance = DisbursementOperationExecutionParams.from_json(json) -# print the JSON string representation of the object -print(DisbursementOperationExecutionParams.to_json()) - -# convert the object into a dict -disbursement_operation_execution_params_dict = disbursement_operation_execution_params_instance.to_dict() -# create an instance of DisbursementOperationExecutionParams from a dict -disbursement_operation_execution_params_from_dict = DisbursementOperationExecutionParams.from_dict(disbursement_operation_execution_params_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXMKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqY29uZmlnX29wZXJhdGlvbl9pZCoqIHwgKipzdHIqKiB8ICB8IAoqKmV4ZWN1dGlvbl9wYXJhbXMqKiB8IFsqKkRpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtcyoqXShEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtcyBpbXBvcnQgRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXMgZnJvbSBhIEpTT04gc3RyaW5nCmRpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtc19pbnN0YW5jZSA9IERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZGlzYnVyc2VtZW50X29wZXJhdGlvbl9leGVjdXRpb25fcGFyYW1zX2RpY3QgPSBkaXNidXJzZW1lbnRfb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXNfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcyBmcm9tIGEgZGljdApkaXNidXJzZW1lbnRfb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXNfZnJvbV9kaWN0ID0gRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zLmZyb21fZGljdChkaXNidXJzZW1lbnRfb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/DisbursementOperationExecutionParamsExecutionParams.md b/docs/DisbursementOperationExecutionParamsExecutionParams.md index a2f35ce4..519c0228 100644 --- a/docs/DisbursementOperationExecutionParamsExecutionParams.md +++ b/docs/DisbursementOperationExecutionParamsExecutionParams.md @@ -1,31 +1 @@ -# DisbursementOperationExecutionParamsExecutionParams - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | **str** | | [optional] -**payment_account** | [**Account**](Account.md) | | [optional] -**instruction_set** | [**List[DisbursementInstruction]**](DisbursementInstruction.md) | | [optional] - -## Example - -```python -from fireblocks.models.disbursement_operation_execution_params_execution_params import DisbursementOperationExecutionParamsExecutionParams - -# TODO update the JSON string below -json = "{}" -# create an instance of DisbursementOperationExecutionParamsExecutionParams from a JSON string -disbursement_operation_execution_params_execution_params_instance = DisbursementOperationExecutionParamsExecutionParams.from_json(json) -# print the JSON string representation of the object -print(DisbursementOperationExecutionParamsExecutionParams.to_json()) - -# convert the object into a dict -disbursement_operation_execution_params_execution_params_dict = disbursement_operation_execution_params_execution_params_instance.to_dict() -# create an instance of DisbursementOperationExecutionParamsExecutionParams from a dict -disbursement_operation_execution_params_execution_params_from_dict = DisbursementOperationExecutionParamsExecutionParams.from_dict(disbursement_operation_execution_params_execution_params_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYW1vdW50KiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipwYXltZW50X2FjY291bnQqKiB8IFsqKkFjY291bnQqKl0oQWNjb3VudC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmluc3RydWN0aW9uX3NldCoqIHwgWyoqTGlzdFtEaXNidXJzZW1lbnRJbnN0cnVjdGlvbl0qKl0oRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb24ubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtc19leGVjdXRpb25fcGFyYW1zIGltcG9ydCBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtcyBmcm9tIGEgSlNPTiBzdHJpbmcKZGlzYnVyc2VtZW50X29wZXJhdGlvbl9leGVjdXRpb25fcGFyYW1zX2V4ZWN1dGlvbl9wYXJhbXNfaW5zdGFuY2UgPSBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmRpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtc19leGVjdXRpb25fcGFyYW1zX2RpY3QgPSBkaXNidXJzZW1lbnRfb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXNfZXhlY3V0aW9uX3BhcmFtc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zIGZyb20gYSBkaWN0CmRpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtc19leGVjdXRpb25fcGFyYW1zX2Zyb21fZGljdCA9IERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtcy5mcm9tX2RpY3QoZGlzYnVyc2VtZW50X29wZXJhdGlvbl9leGVjdXRpb25fcGFyYW1zX2V4ZWN1dGlvbl9wYXJhbXNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/DisbursementOperationInput.md b/docs/DisbursementOperationInput.md index 696071a8..02573cd5 100644 --- a/docs/DisbursementOperationInput.md +++ b/docs/DisbursementOperationInput.md @@ -1,31 +1 @@ -# DisbursementOperationInput - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | **str** | | [optional] -**payment_account** | [**Account**](Account.md) | | -**instruction_set** | [**List[DisbursementInstruction]**](DisbursementInstruction.md) | | - -## Example - -```python -from fireblocks.models.disbursement_operation_input import DisbursementOperationInput - -# TODO update the JSON string below -json = "{}" -# create an instance of DisbursementOperationInput from a JSON string -disbursement_operation_input_instance = DisbursementOperationInput.from_json(json) -# print the JSON string representation of the object -print(DisbursementOperationInput.to_json()) - -# convert the object into a dict -disbursement_operation_input_dict = disbursement_operation_input_instance.to_dict() -# create an instance of DisbursementOperationInput from a dict -disbursement_operation_input_from_dict = DisbursementOperationInput.from_dict(disbursement_operation_input_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEaXNidXJzZW1lbnRPcGVyYXRpb25JbnB1dAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphbW91bnQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKnBheW1lbnRfYWNjb3VudCoqIHwgWyoqQWNjb3VudCoqXShBY2NvdW50Lm1kKSB8ICB8IAoqKmluc3RydWN0aW9uX3NldCoqIHwgWyoqTGlzdFtEaXNidXJzZW1lbnRJbnN0cnVjdGlvbl0qKl0oRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb24ubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2lucHV0IGltcG9ydCBEaXNidXJzZW1lbnRPcGVyYXRpb25JbnB1dAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlzYnVyc2VtZW50T3BlcmF0aW9uSW5wdXQgZnJvbSBhIEpTT04gc3RyaW5nCmRpc2J1cnNlbWVudF9vcGVyYXRpb25faW5wdXRfaW5zdGFuY2UgPSBEaXNidXJzZW1lbnRPcGVyYXRpb25JbnB1dC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChEaXNidXJzZW1lbnRPcGVyYXRpb25JbnB1dC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApkaXNidXJzZW1lbnRfb3BlcmF0aW9uX2lucHV0X2RpY3QgPSBkaXNidXJzZW1lbnRfb3BlcmF0aW9uX2lucHV0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNidXJzZW1lbnRPcGVyYXRpb25JbnB1dCBmcm9tIGEgZGljdApkaXNidXJzZW1lbnRfb3BlcmF0aW9uX2lucHV0X2Zyb21fZGljdCA9IERpc2J1cnNlbWVudE9wZXJhdGlvbklucHV0LmZyb21fZGljdChkaXNidXJzZW1lbnRfb3BlcmF0aW9uX2lucHV0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/DisbursementOperationPreview.md b/docs/DisbursementOperationPreview.md index 74e65bd3..17f4ba74 100644 --- a/docs/DisbursementOperationPreview.md +++ b/docs/DisbursementOperationPreview.md @@ -1,31 +1 @@ -# DisbursementOperationPreview - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**input** | [**DisbursementOperationInput**](DisbursementOperationInput.md) | | -**output** | [**DisbursementOperationPreviewOutput**](DisbursementOperationPreviewOutput.md) | | [optional] -**failure** | [**OperationExecutionFailure**](OperationExecutionFailure.md) | | [optional] - -## Example - -```python -from fireblocks.models.disbursement_operation_preview import DisbursementOperationPreview - -# TODO update the JSON string below -json = "{}" -# create an instance of DisbursementOperationPreview from a JSON string -disbursement_operation_preview_instance = DisbursementOperationPreview.from_json(json) -# print the JSON string representation of the object -print(DisbursementOperationPreview.to_json()) - -# convert the object into a dict -disbursement_operation_preview_dict = disbursement_operation_preview_instance.to_dict() -# create an instance of DisbursementOperationPreview from a dict -disbursement_operation_preview_from_dict = DisbursementOperationPreview.from_dict(disbursement_operation_preview_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlucHV0KiogfCBbKipEaXNidXJzZW1lbnRPcGVyYXRpb25JbnB1dCoqXShEaXNidXJzZW1lbnRPcGVyYXRpb25JbnB1dC5tZCkgfCAgfCAKKipvdXRwdXQqKiB8IFsqKkRpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXdPdXRwdXQqKl0oRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlld091dHB1dC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmZhaWx1cmUqKiB8IFsqKk9wZXJhdGlvbkV4ZWN1dGlvbkZhaWx1cmUqKl0oT3BlcmF0aW9uRXhlY3V0aW9uRmFpbHVyZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9wcmV2aWV3IGltcG9ydCBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3IGZyb20gYSBKU09OIHN0cmluZwpkaXNidXJzZW1lbnRfb3BlcmF0aW9uX3ByZXZpZXdfaW5zdGFuY2UgPSBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KERpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXcudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZGlzYnVyc2VtZW50X29wZXJhdGlvbl9wcmV2aWV3X2RpY3QgPSBkaXNidXJzZW1lbnRfb3BlcmF0aW9uX3ByZXZpZXdfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXcgZnJvbSBhIGRpY3QKZGlzYnVyc2VtZW50X29wZXJhdGlvbl9wcmV2aWV3X2Zyb21fZGljdCA9IERpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXcuZnJvbV9kaWN0KGRpc2J1cnNlbWVudF9vcGVyYXRpb25fcHJldmlld19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/DisbursementOperationPreviewOutput.md b/docs/DisbursementOperationPreviewOutput.md index cbb14dce..063300f7 100644 --- a/docs/DisbursementOperationPreviewOutput.md +++ b/docs/DisbursementOperationPreviewOutput.md @@ -1,29 +1 @@ -# DisbursementOperationPreviewOutput - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**instruction_set** | [**List[DisbursementOperationPreviewOutputInstructionSetInner]**](DisbursementOperationPreviewOutputInstructionSetInner.md) | | - -## Example - -```python -from fireblocks.models.disbursement_operation_preview_output import DisbursementOperationPreviewOutput - -# TODO update the JSON string below -json = "{}" -# create an instance of DisbursementOperationPreviewOutput from a JSON string -disbursement_operation_preview_output_instance = DisbursementOperationPreviewOutput.from_json(json) -# print the JSON string representation of the object -print(DisbursementOperationPreviewOutput.to_json()) - -# convert the object into a dict -disbursement_operation_preview_output_dict = disbursement_operation_preview_output_instance.to_dict() -# create an instance of DisbursementOperationPreviewOutput from a dict -disbursement_operation_preview_output_from_dict = DisbursementOperationPreviewOutput.from_dict(disbursement_operation_preview_output_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmluc3RydWN0aW9uX3NldCoqIHwgWyoqTGlzdFtEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0SW5zdHJ1Y3Rpb25TZXRJbm5lcl0qKl0oRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlld091dHB1dEluc3RydWN0aW9uU2V0SW5uZXIubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX3ByZXZpZXdfb3V0cHV0IGltcG9ydCBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0IGZyb20gYSBKU09OIHN0cmluZwpkaXNidXJzZW1lbnRfb3BlcmF0aW9uX3ByZXZpZXdfb3V0cHV0X2luc3RhbmNlID0gRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlld091dHB1dC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmRpc2J1cnNlbWVudF9vcGVyYXRpb25fcHJldmlld19vdXRwdXRfZGljdCA9IGRpc2J1cnNlbWVudF9vcGVyYXRpb25fcHJldmlld19vdXRwdXRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXdPdXRwdXQgZnJvbSBhIGRpY3QKZGlzYnVyc2VtZW50X29wZXJhdGlvbl9wcmV2aWV3X291dHB1dF9mcm9tX2RpY3QgPSBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0LmZyb21fZGljdChkaXNidXJzZW1lbnRfb3BlcmF0aW9uX3ByZXZpZXdfb3V0cHV0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/DisbursementOperationPreviewOutputInstructionSetInner.md b/docs/DisbursementOperationPreviewOutputInstructionSetInner.md index 7ff09753..265fd4b2 100644 --- a/docs/DisbursementOperationPreviewOutputInstructionSetInner.md +++ b/docs/DisbursementOperationPreviewOutputInstructionSetInner.md @@ -1,32 +1 @@ -# DisbursementOperationPreviewOutputInstructionSetInner - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | [**AssetAmount**](AssetAmount.md) | | -**fee** | [**AssetAmount**](AssetAmount.md) | | -**payee_account** | [**Destination**](Destination.md) | | -**time_seconds** | **float** | | - -## Example - -```python -from fireblocks.models.disbursement_operation_preview_output_instruction_set_inner import DisbursementOperationPreviewOutputInstructionSetInner - -# TODO update the JSON string below -json = "{}" -# create an instance of DisbursementOperationPreviewOutputInstructionSetInner from a JSON string -disbursement_operation_preview_output_instruction_set_inner_instance = DisbursementOperationPreviewOutputInstructionSetInner.from_json(json) -# print the JSON string representation of the object -print(DisbursementOperationPreviewOutputInstructionSetInner.to_json()) - -# convert the object into a dict -disbursement_operation_preview_output_instruction_set_inner_dict = disbursement_operation_preview_output_instruction_set_inner_instance.to_dict() -# create an instance of DisbursementOperationPreviewOutputInstructionSetInner from a dict -disbursement_operation_preview_output_instruction_set_inner_from_dict = DisbursementOperationPreviewOutputInstructionSetInner.from_dict(disbursement_operation_preview_output_instruction_set_inner_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0SW5zdHJ1Y3Rpb25TZXRJbm5lcgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphbW91bnQqKiB8IFsqKkFzc2V0QW1vdW50KipdKEFzc2V0QW1vdW50Lm1kKSB8ICB8IAoqKmZlZSoqIHwgWyoqQXNzZXRBbW91bnQqKl0oQXNzZXRBbW91bnQubWQpIHwgIHwgCioqcGF5ZWVfYWNjb3VudCoqIHwgWyoqRGVzdGluYXRpb24qKl0oRGVzdGluYXRpb24ubWQpIHwgIHwgCioqdGltZV9zZWNvbmRzKiogfCAqKmZsb2F0KiogfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fcHJldmlld19vdXRwdXRfaW5zdHJ1Y3Rpb25fc2V0X2lubmVyIGltcG9ydCBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0SW5zdHJ1Y3Rpb25TZXRJbm5lcgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlld091dHB1dEluc3RydWN0aW9uU2V0SW5uZXIgZnJvbSBhIEpTT04gc3RyaW5nCmRpc2J1cnNlbWVudF9vcGVyYXRpb25fcHJldmlld19vdXRwdXRfaW5zdHJ1Y3Rpb25fc2V0X2lubmVyX2luc3RhbmNlID0gRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlld091dHB1dEluc3RydWN0aW9uU2V0SW5uZXIuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlld091dHB1dEluc3RydWN0aW9uU2V0SW5uZXIudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZGlzYnVyc2VtZW50X29wZXJhdGlvbl9wcmV2aWV3X291dHB1dF9pbnN0cnVjdGlvbl9zZXRfaW5uZXJfZGljdCA9IGRpc2J1cnNlbWVudF9vcGVyYXRpb25fcHJldmlld19vdXRwdXRfaW5zdHJ1Y3Rpb25fc2V0X2lubmVyX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0SW5zdHJ1Y3Rpb25TZXRJbm5lciBmcm9tIGEgZGljdApkaXNidXJzZW1lbnRfb3BlcmF0aW9uX3ByZXZpZXdfb3V0cHV0X2luc3RydWN0aW9uX3NldF9pbm5lcl9mcm9tX2RpY3QgPSBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0SW5zdHJ1Y3Rpb25TZXRJbm5lci5mcm9tX2RpY3QoZGlzYnVyc2VtZW50X29wZXJhdGlvbl9wcmV2aWV3X291dHB1dF9pbnN0cnVjdGlvbl9zZXRfaW5uZXJfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/DisbursementOperationType.md b/docs/DisbursementOperationType.md index 3367a30f..430b126d 100644 --- a/docs/DisbursementOperationType.md +++ b/docs/DisbursementOperationType.md @@ -1,10 +1 @@ -# DisbursementOperationType - - -## Enum - -* `DISBURSEMENT` (value: `'DISBURSEMENT'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEaXNidXJzZW1lbnRPcGVyYXRpb25UeXBlCgoKIyMgRW51bQoKKiBgRElTQlVSU0VNRU5UYCAodmFsdWU6IGAnRElTQlVSU0VNRU5UJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/DisbursementPercentageInstruction.md b/docs/DisbursementPercentageInstruction.md index a6656df3..8a974b8f 100644 --- a/docs/DisbursementPercentageInstruction.md +++ b/docs/DisbursementPercentageInstruction.md @@ -1,31 +1 @@ -# DisbursementPercentageInstruction - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**payee_account** | [**Destination**](Destination.md) | | -**asset_id** | **str** | | -**percentage** | **str** | | - -## Example - -```python -from fireblocks.models.disbursement_percentage_instruction import DisbursementPercentageInstruction - -# TODO update the JSON string below -json = "{}" -# create an instance of DisbursementPercentageInstruction from a JSON string -disbursement_percentage_instruction_instance = DisbursementPercentageInstruction.from_json(json) -# print the JSON string representation of the object -print(DisbursementPercentageInstruction.to_json()) - -# convert the object into a dict -disbursement_percentage_instruction_dict = disbursement_percentage_instruction_instance.to_dict() -# create an instance of DisbursementPercentageInstruction from a dict -disbursement_percentage_instruction_from_dict = DisbursementPercentageInstruction.from_dict(disbursement_percentage_instruction_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEaXNidXJzZW1lbnRQZXJjZW50YWdlSW5zdHJ1Y3Rpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcGF5ZWVfYWNjb3VudCoqIHwgWyoqRGVzdGluYXRpb24qKl0oRGVzdGluYXRpb24ubWQpIHwgIHwgCioqYXNzZXRfaWQqKiB8ICoqc3RyKiogfCAgfCAKKipwZXJjZW50YWdlKiogfCAqKnN0cioqIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfcGVyY2VudGFnZV9pbnN0cnVjdGlvbiBpbXBvcnQgRGlzYnVyc2VtZW50UGVyY2VudGFnZUluc3RydWN0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNidXJzZW1lbnRQZXJjZW50YWdlSW5zdHJ1Y3Rpb24gZnJvbSBhIEpTT04gc3RyaW5nCmRpc2J1cnNlbWVudF9wZXJjZW50YWdlX2luc3RydWN0aW9uX2luc3RhbmNlID0gRGlzYnVyc2VtZW50UGVyY2VudGFnZUluc3RydWN0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KERpc2J1cnNlbWVudFBlcmNlbnRhZ2VJbnN0cnVjdGlvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApkaXNidXJzZW1lbnRfcGVyY2VudGFnZV9pbnN0cnVjdGlvbl9kaWN0ID0gZGlzYnVyc2VtZW50X3BlcmNlbnRhZ2VfaW5zdHJ1Y3Rpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudFBlcmNlbnRhZ2VJbnN0cnVjdGlvbiBmcm9tIGEgZGljdApkaXNidXJzZW1lbnRfcGVyY2VudGFnZV9pbnN0cnVjdGlvbl9mcm9tX2RpY3QgPSBEaXNidXJzZW1lbnRQZXJjZW50YWdlSW5zdHJ1Y3Rpb24uZnJvbV9kaWN0KGRpc2J1cnNlbWVudF9wZXJjZW50YWdlX2luc3RydWN0aW9uX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/DisbursementValidationFailure.md b/docs/DisbursementValidationFailure.md index 85688be7..3e26125a 100644 --- a/docs/DisbursementValidationFailure.md +++ b/docs/DisbursementValidationFailure.md @@ -1,30 +1 @@ -# DisbursementValidationFailure - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**reason** | **str** | | -**data** | **Dict[str, object]** | | [optional] - -## Example - -```python -from fireblocks.models.disbursement_validation_failure import DisbursementValidationFailure - -# TODO update the JSON string below -json = "{}" -# create an instance of DisbursementValidationFailure from a JSON string -disbursement_validation_failure_instance = DisbursementValidationFailure.from_json(json) -# print the JSON string representation of the object -print(DisbursementValidationFailure.to_json()) - -# convert the object into a dict -disbursement_validation_failure_dict = disbursement_validation_failure_instance.to_dict() -# create an instance of DisbursementValidationFailure from a dict -disbursement_validation_failure_from_dict = DisbursementValidationFailure.from_dict(disbursement_validation_failure_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEaXNidXJzZW1lbnRWYWxpZGF0aW9uRmFpbHVyZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipyZWFzb24qKiB8ICoqc3RyKiogfCAgfCAKKipkYXRhKiogfCAqKkRpY3Rbc3RyLCBvYmplY3RdKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X3ZhbGlkYXRpb25fZmFpbHVyZSBpbXBvcnQgRGlzYnVyc2VtZW50VmFsaWRhdGlvbkZhaWx1cmUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudFZhbGlkYXRpb25GYWlsdXJlIGZyb20gYSBKU09OIHN0cmluZwpkaXNidXJzZW1lbnRfdmFsaWRhdGlvbl9mYWlsdXJlX2luc3RhbmNlID0gRGlzYnVyc2VtZW50VmFsaWRhdGlvbkZhaWx1cmUuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRGlzYnVyc2VtZW50VmFsaWRhdGlvbkZhaWx1cmUudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZGlzYnVyc2VtZW50X3ZhbGlkYXRpb25fZmFpbHVyZV9kaWN0ID0gZGlzYnVyc2VtZW50X3ZhbGlkYXRpb25fZmFpbHVyZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlzYnVyc2VtZW50VmFsaWRhdGlvbkZhaWx1cmUgZnJvbSBhIGRpY3QKZGlzYnVyc2VtZW50X3ZhbGlkYXRpb25fZmFpbHVyZV9mcm9tX2RpY3QgPSBEaXNidXJzZW1lbnRWYWxpZGF0aW9uRmFpbHVyZS5mcm9tX2RpY3QoZGlzYnVyc2VtZW50X3ZhbGlkYXRpb25fZmFpbHVyZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/DispatchPayoutResponse.md b/docs/DispatchPayoutResponse.md index 4af7d42b..71fddc91 100644 --- a/docs/DispatchPayoutResponse.md +++ b/docs/DispatchPayoutResponse.md @@ -1,29 +1 @@ -# DispatchPayoutResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**payout_id** | **str** | | - -## Example - -```python -from fireblocks.models.dispatch_payout_response import DispatchPayoutResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of DispatchPayoutResponse from a JSON string -dispatch_payout_response_instance = DispatchPayoutResponse.from_json(json) -# print the JSON string representation of the object -print(DispatchPayoutResponse.to_json()) - -# convert the object into a dict -dispatch_payout_response_dict = dispatch_payout_response_instance.to_dict() -# create an instance of DispatchPayoutResponse from a dict -dispatch_payout_response_from_dict = DispatchPayoutResponse.from_dict(dispatch_payout_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEaXNwYXRjaFBheW91dFJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnBheW91dF9pZCoqIHwgKipzdHIqKiB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzcGF0Y2hfcGF5b3V0X3Jlc3BvbnNlIGltcG9ydCBEaXNwYXRjaFBheW91dFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNwYXRjaFBheW91dFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpkaXNwYXRjaF9wYXlvdXRfcmVzcG9uc2VfaW5zdGFuY2UgPSBEaXNwYXRjaFBheW91dFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KERpc3BhdGNoUGF5b3V0UmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZGlzcGF0Y2hfcGF5b3V0X3Jlc3BvbnNlX2RpY3QgPSBkaXNwYXRjaF9wYXlvdXRfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc3BhdGNoUGF5b3V0UmVzcG9uc2UgZnJvbSBhIGRpY3QKZGlzcGF0Y2hfcGF5b3V0X3Jlc3BvbnNlX2Zyb21fZGljdCA9IERpc3BhdGNoUGF5b3V0UmVzcG9uc2UuZnJvbV9kaWN0KGRpc3BhdGNoX3BheW91dF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/DraftResponse.md b/docs/DraftResponse.md index f8f41239..2800a4b9 100644 --- a/docs/DraftResponse.md +++ b/docs/DraftResponse.md @@ -1,33 +1 @@ -# DraftResponse - -Response object for draft operations - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status** | **str** | Operation status | -**rules** | [**List[PolicyRule]**](PolicyRule.md) | Draft rules | -**draft_id** | **str** | Draft unique id | -**metadata** | [**PolicyMetadata**](PolicyMetadata.md) | | - -## Example - -```python -from fireblocks.models.draft_response import DraftResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of DraftResponse from a JSON string -draft_response_instance = DraftResponse.from_json(json) -# print the JSON string representation of the object -print(DraftResponse.to_json()) - -# convert the object into a dict -draft_response_dict = draft_response_instance.to_dict() -# create an instance of DraftResponse from a dict -draft_response_from_dict = DraftResponse.from_dict(draft_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEcmFmdFJlc3BvbnNlCgpSZXNwb25zZSBvYmplY3QgZm9yIGRyYWZ0IG9wZXJhdGlvbnMKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzdGF0dXMqKiB8ICoqc3RyKiogfCBPcGVyYXRpb24gc3RhdHVzIHwgCioqcnVsZXMqKiB8IFsqKkxpc3RbUG9saWN5UnVsZV0qKl0oUG9saWN5UnVsZS5tZCkgfCBEcmFmdCBydWxlcyB8IAoqKmRyYWZ0X2lkKiogfCAqKnN0cioqIHwgRHJhZnQgdW5pcXVlIGlkIHwgCioqbWV0YWRhdGEqKiB8IFsqKlBvbGljeU1ldGFkYXRhKipdKFBvbGljeU1ldGFkYXRhLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZHJhZnRfcmVzcG9uc2UgaW1wb3J0IERyYWZ0UmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERyYWZ0UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmRyYWZ0X3Jlc3BvbnNlX2luc3RhbmNlID0gRHJhZnRSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChEcmFmdFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmRyYWZ0X3Jlc3BvbnNlX2RpY3QgPSBkcmFmdF9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRHJhZnRSZXNwb25zZSBmcm9tIGEgZGljdApkcmFmdF9yZXNwb25zZV9mcm9tX2RpY3QgPSBEcmFmdFJlc3BvbnNlLmZyb21fZGljdChkcmFmdF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/DraftReviewAndValidationResponse.md b/docs/DraftReviewAndValidationResponse.md index 68af53bd..dc03c746 100644 --- a/docs/DraftReviewAndValidationResponse.md +++ b/docs/DraftReviewAndValidationResponse.md @@ -1,31 +1 @@ -# DraftReviewAndValidationResponse - -Draft validation - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**draft_response** | [**DraftResponse**](DraftResponse.md) | | -**validation** | [**PolicyValidation**](PolicyValidation.md) | | - -## Example - -```python -from fireblocks.models.draft_review_and_validation_response import DraftReviewAndValidationResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of DraftReviewAndValidationResponse from a JSON string -draft_review_and_validation_response_instance = DraftReviewAndValidationResponse.from_json(json) -# print the JSON string representation of the object -print(DraftReviewAndValidationResponse.to_json()) - -# convert the object into a dict -draft_review_and_validation_response_dict = draft_review_and_validation_response_instance.to_dict() -# create an instance of DraftReviewAndValidationResponse from a dict -draft_review_and_validation_response_from_dict = DraftReviewAndValidationResponse.from_dict(draft_review_and_validation_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZQoKRHJhZnQgdmFsaWRhdGlvbgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmRyYWZ0X3Jlc3BvbnNlKiogfCBbKipEcmFmdFJlc3BvbnNlKipdKERyYWZ0UmVzcG9uc2UubWQpIHwgIHwgCioqdmFsaWRhdGlvbioqIHwgWyoqUG9saWN5VmFsaWRhdGlvbioqXShQb2xpY3lWYWxpZGF0aW9uLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZHJhZnRfcmV2aWV3X2FuZF92YWxpZGF0aW9uX3Jlc3BvbnNlIGltcG9ydCBEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmRyYWZ0X3Jldmlld19hbmRfdmFsaWRhdGlvbl9yZXNwb25zZV9pbnN0YW5jZSA9IERyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KERyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmRyYWZ0X3Jldmlld19hbmRfdmFsaWRhdGlvbl9yZXNwb25zZV9kaWN0ID0gZHJhZnRfcmV2aWV3X2FuZF92YWxpZGF0aW9uX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZSBmcm9tIGEgZGljdApkcmFmdF9yZXZpZXdfYW5kX3ZhbGlkYXRpb25fcmVzcG9uc2VfZnJvbV9kaWN0ID0gRHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UuZnJvbV9kaWN0KGRyYWZ0X3Jldmlld19hbmRfdmFsaWRhdGlvbl9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/DropTransactionRequest.md b/docs/DropTransactionRequest.md index ca8ea82b..c25fb8e6 100644 --- a/docs/DropTransactionRequest.md +++ b/docs/DropTransactionRequest.md @@ -1,31 +1 @@ -# DropTransactionRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**tx_id** | **str** | | [optional] -**fee_level** | **str** | | [optional] -**gas_price** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.drop_transaction_request import DropTransactionRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of DropTransactionRequest from a JSON string -drop_transaction_request_instance = DropTransactionRequest.from_json(json) -# print the JSON string representation of the object -print(DropTransactionRequest.to_json()) - -# convert the object into a dict -drop_transaction_request_dict = drop_transaction_request_instance.to_dict() -# create an instance of DropTransactionRequest from a dict -drop_transaction_request_from_dict = DropTransactionRequest.from_dict(drop_transaction_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEcm9wVHJhbnNhY3Rpb25SZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR4X2lkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipmZWVfbGV2ZWwqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmdhc19wcmljZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kcm9wX3RyYW5zYWN0aW9uX3JlcXVlc3QgaW1wb3J0IERyb3BUcmFuc2FjdGlvblJlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERyb3BUcmFuc2FjdGlvblJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCmRyb3BfdHJhbnNhY3Rpb25fcmVxdWVzdF9pbnN0YW5jZSA9IERyb3BUcmFuc2FjdGlvblJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRHJvcFRyYW5zYWN0aW9uUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApkcm9wX3RyYW5zYWN0aW9uX3JlcXVlc3RfZGljdCA9IGRyb3BfdHJhbnNhY3Rpb25fcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRHJvcFRyYW5zYWN0aW9uUmVxdWVzdCBmcm9tIGEgZGljdApkcm9wX3RyYW5zYWN0aW9uX3JlcXVlc3RfZnJvbV9kaWN0ID0gRHJvcFRyYW5zYWN0aW9uUmVxdWVzdC5mcm9tX2RpY3QoZHJvcF90cmFuc2FjdGlvbl9yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/DropTransactionResponse.md b/docs/DropTransactionResponse.md index 07d246d9..217a8798 100644 --- a/docs/DropTransactionResponse.md +++ b/docs/DropTransactionResponse.md @@ -1,31 +1 @@ -# DropTransactionResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**tx_status** | **str** | | [optional] -**tx_id** | **str** | | [optional] -**replaced_tx_hash** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.drop_transaction_response import DropTransactionResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of DropTransactionResponse from a JSON string -drop_transaction_response_instance = DropTransactionResponse.from_json(json) -# print the JSON string representation of the object -print(DropTransactionResponse.to_json()) - -# convert the object into a dict -drop_transaction_response_dict = drop_transaction_response_instance.to_dict() -# create an instance of DropTransactionResponse from a dict -drop_transaction_response_from_dict = DropTransactionResponse.from_dict(drop_transaction_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEcm9wVHJhbnNhY3Rpb25SZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eF9zdGF0dXMqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKnR4X2lkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipyZXBsYWNlZF90eF9oYXNoKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRyb3BfdHJhbnNhY3Rpb25fcmVzcG9uc2UgaW1wb3J0IERyb3BUcmFuc2FjdGlvblJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEcm9wVHJhbnNhY3Rpb25SZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKZHJvcF90cmFuc2FjdGlvbl9yZXNwb25zZV9pbnN0YW5jZSA9IERyb3BUcmFuc2FjdGlvblJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KERyb3BUcmFuc2FjdGlvblJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmRyb3BfdHJhbnNhY3Rpb25fcmVzcG9uc2VfZGljdCA9IGRyb3BfdHJhbnNhY3Rpb25fcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIERyb3BUcmFuc2FjdGlvblJlc3BvbnNlIGZyb20gYSBkaWN0CmRyb3BfdHJhbnNhY3Rpb25fcmVzcG9uc2VfZnJvbV9kaWN0ID0gRHJvcFRyYW5zYWN0aW9uUmVzcG9uc2UuZnJvbV9kaWN0KGRyb3BfdHJhbnNhY3Rpb25fcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/DvnConfig.md b/docs/DvnConfig.md index 7eb04228..20e2fc92 100644 --- a/docs/DvnConfig.md +++ b/docs/DvnConfig.md @@ -1,31 +1 @@ -# DvnConfig - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**dvn_addresses** | **List[str]** | Array of required DVN Ethereum addresses that sign ULN messages. | -**optional_dvn_addresses** | **List[str]** | Array of optional DVN Ethereum addresses that sign ULN messages. | [optional] -**optional_threshold** | **float** | Minimum number of DVN signatures required (M-of-N). | - -## Example - -```python -from fireblocks.models.dvn_config import DvnConfig - -# TODO update the JSON string below -json = "{}" -# create an instance of DvnConfig from a JSON string -dvn_config_instance = DvnConfig.from_json(json) -# print the JSON string representation of the object -print(DvnConfig.to_json()) - -# convert the object into a dict -dvn_config_dict = dvn_config_instance.to_dict() -# create an instance of DvnConfig from a dict -dvn_config_from_dict = DvnConfig.from_dict(dvn_config_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEdm5Db25maWcKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZHZuX2FkZHJlc3NlcyoqIHwgKipMaXN0W3N0cl0qKiB8IEFycmF5IG9mIHJlcXVpcmVkIERWTiBFdGhlcmV1bSBhZGRyZXNzZXMgdGhhdCBzaWduIFVMTiBtZXNzYWdlcy4gfCAKKipvcHRpb25hbF9kdm5fYWRkcmVzc2VzKiogfCAqKkxpc3Rbc3RyXSoqIHwgQXJyYXkgb2Ygb3B0aW9uYWwgRFZOIEV0aGVyZXVtIGFkZHJlc3NlcyB0aGF0IHNpZ24gVUxOIG1lc3NhZ2VzLiB8IFtvcHRpb25hbF0gCioqb3B0aW9uYWxfdGhyZXNob2xkKiogfCAqKmZsb2F0KiogfCBNaW5pbXVtIG51bWJlciBvZiBEVk4gc2lnbmF0dXJlcyByZXF1aXJlZCAoTS1vZi1OKS4gfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmR2bl9jb25maWcgaW1wb3J0IER2bkNvbmZpZwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRHZuQ29uZmlnIGZyb20gYSBKU09OIHN0cmluZwpkdm5fY29uZmlnX2luc3RhbmNlID0gRHZuQ29uZmlnLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KER2bkNvbmZpZy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApkdm5fY29uZmlnX2RpY3QgPSBkdm5fY29uZmlnX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEdm5Db25maWcgZnJvbSBhIGRpY3QKZHZuX2NvbmZpZ19mcm9tX2RpY3QgPSBEdm5Db25maWcuZnJvbV9kaWN0KGR2bl9jb25maWdfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/DvnConfigWithConfirmations.md b/docs/DvnConfigWithConfirmations.md index b03f0778..49bc50ed 100644 --- a/docs/DvnConfigWithConfirmations.md +++ b/docs/DvnConfigWithConfirmations.md @@ -1,32 +1 @@ -# DvnConfigWithConfirmations - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**dvn_addresses** | **List[str]** | Array of required DVN Ethereum addresses that sign ULN messages. | -**optional_dvn_addresses** | **List[str]** | Array of optional DVN Ethereum addresses that sign ULN messages. | [optional] -**optional_threshold** | **float** | Minimum number of DVN signatures required (M-of-N). | -**confirmations** | **float** | Number of block confirmations required | - -## Example - -```python -from fireblocks.models.dvn_config_with_confirmations import DvnConfigWithConfirmations - -# TODO update the JSON string below -json = "{}" -# create an instance of DvnConfigWithConfirmations from a JSON string -dvn_config_with_confirmations_instance = DvnConfigWithConfirmations.from_json(json) -# print the JSON string representation of the object -print(DvnConfigWithConfirmations.to_json()) - -# convert the object into a dict -dvn_config_with_confirmations_dict = dvn_config_with_confirmations_instance.to_dict() -# create an instance of DvnConfigWithConfirmations from a dict -dvn_config_with_confirmations_from_dict = DvnConfigWithConfirmations.from_dict(dvn_config_with_confirmations_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBEdm5Db25maWdXaXRoQ29uZmlybWF0aW9ucwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkdm5fYWRkcmVzc2VzKiogfCAqKkxpc3Rbc3RyXSoqIHwgQXJyYXkgb2YgcmVxdWlyZWQgRFZOIEV0aGVyZXVtIGFkZHJlc3NlcyB0aGF0IHNpZ24gVUxOIG1lc3NhZ2VzLiB8IAoqKm9wdGlvbmFsX2R2bl9hZGRyZXNzZXMqKiB8ICoqTGlzdFtzdHJdKiogfCBBcnJheSBvZiBvcHRpb25hbCBEVk4gRXRoZXJldW0gYWRkcmVzc2VzIHRoYXQgc2lnbiBVTE4gbWVzc2FnZXMuIHwgW29wdGlvbmFsXSAKKipvcHRpb25hbF90aHJlc2hvbGQqKiB8ICoqZmxvYXQqKiB8IE1pbmltdW0gbnVtYmVyIG9mIERWTiBzaWduYXR1cmVzIHJlcXVpcmVkIChNLW9mLU4pLiB8IAoqKmNvbmZpcm1hdGlvbnMqKiB8ICoqZmxvYXQqKiB8IE51bWJlciBvZiBibG9jayBjb25maXJtYXRpb25zIHJlcXVpcmVkIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kdm5fY29uZmlnX3dpdGhfY29uZmlybWF0aW9ucyBpbXBvcnQgRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zIGZyb20gYSBKU09OIHN0cmluZwpkdm5fY29uZmlnX3dpdGhfY29uZmlybWF0aW9uc19pbnN0YW5jZSA9IER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmR2bl9jb25maWdfd2l0aF9jb25maXJtYXRpb25zX2RpY3QgPSBkdm5fY29uZmlnX3dpdGhfY29uZmlybWF0aW9uc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnMgZnJvbSBhIGRpY3QKZHZuX2NvbmZpZ193aXRoX2NvbmZpcm1hdGlvbnNfZnJvbV9kaWN0ID0gRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnMuZnJvbV9kaWN0KGR2bl9jb25maWdfd2l0aF9jb25maXJtYXRpb25zX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/EVMTokenCreateParamsDto.md b/docs/EVMTokenCreateParamsDto.md index cc20993b..41908202 100644 --- a/docs/EVMTokenCreateParamsDto.md +++ b/docs/EVMTokenCreateParamsDto.md @@ -1,30 +1 @@ -# EVMTokenCreateParamsDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**contract_id** | **str** | The id of the contract template that will be used to create the token | -**deploy_function_params** | [**List[ParameterWithValue]**](ParameterWithValue.md) | The deploy function parameters and values of the contract template | [optional] - -## Example - -```python -from fireblocks.models.evm_token_create_params_dto import EVMTokenCreateParamsDto - -# TODO update the JSON string below -json = "{}" -# create an instance of EVMTokenCreateParamsDto from a JSON string -evm_token_create_params_dto_instance = EVMTokenCreateParamsDto.from_json(json) -# print the JSON string representation of the object -print(EVMTokenCreateParamsDto.to_json()) - -# convert the object into a dict -evm_token_create_params_dto_dict = evm_token_create_params_dto_instance.to_dict() -# create an instance of EVMTokenCreateParamsDto from a dict -evm_token_create_params_dto_from_dict = EVMTokenCreateParamsDto.from_dict(evm_token_create_params_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFVk1Ub2tlbkNyZWF0ZVBhcmFtc0R0bwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipjb250cmFjdF9pZCoqIHwgKipzdHIqKiB8IFRoZSBpZCBvZiB0aGUgY29udHJhY3QgdGVtcGxhdGUgdGhhdCB3aWxsIGJlIHVzZWQgdG8gY3JlYXRlIHRoZSB0b2tlbiB8IAoqKmRlcGxveV9mdW5jdGlvbl9wYXJhbXMqKiB8IFsqKkxpc3RbUGFyYW1ldGVyV2l0aFZhbHVlXSoqXShQYXJhbWV0ZXJXaXRoVmFsdWUubWQpIHwgVGhlIGRlcGxveSBmdW5jdGlvbiBwYXJhbWV0ZXJzIGFuZCB2YWx1ZXMgb2YgdGhlIGNvbnRyYWN0IHRlbXBsYXRlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV2bV90b2tlbl9jcmVhdGVfcGFyYW1zX2R0byBpbXBvcnQgRVZNVG9rZW5DcmVhdGVQYXJhbXNEdG8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEVWTVRva2VuQ3JlYXRlUGFyYW1zRHRvIGZyb20gYSBKU09OIHN0cmluZwpldm1fdG9rZW5fY3JlYXRlX3BhcmFtc19kdG9faW5zdGFuY2UgPSBFVk1Ub2tlbkNyZWF0ZVBhcmFtc0R0by5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChFVk1Ub2tlbkNyZWF0ZVBhcmFtc0R0by50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApldm1fdG9rZW5fY3JlYXRlX3BhcmFtc19kdG9fZGljdCA9IGV2bV90b2tlbl9jcmVhdGVfcGFyYW1zX2R0b19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRVZNVG9rZW5DcmVhdGVQYXJhbXNEdG8gZnJvbSBhIGRpY3QKZXZtX3Rva2VuX2NyZWF0ZV9wYXJhbXNfZHRvX2Zyb21fZGljdCA9IEVWTVRva2VuQ3JlYXRlUGFyYW1zRHRvLmZyb21fZGljdChldm1fdG9rZW5fY3JlYXRlX3BhcmFtc19kdG9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/EditGasStationConfigurationResponse.md b/docs/EditGasStationConfigurationResponse.md index d3b5b759..cb63490a 100644 --- a/docs/EditGasStationConfigurationResponse.md +++ b/docs/EditGasStationConfigurationResponse.md @@ -1,29 +1 @@ -# EditGasStationConfigurationResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**success** | **bool** | Indicates whether editing the gas station configuration was successful | - -## Example - -```python -from fireblocks.models.edit_gas_station_configuration_response import EditGasStationConfigurationResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of EditGasStationConfigurationResponse from a JSON string -edit_gas_station_configuration_response_instance = EditGasStationConfigurationResponse.from_json(json) -# print the JSON string representation of the object -print(EditGasStationConfigurationResponse.to_json()) - -# convert the object into a dict -edit_gas_station_configuration_response_dict = edit_gas_station_configuration_response_instance.to_dict() -# create an instance of EditGasStationConfigurationResponse from a dict -edit_gas_station_configuration_response_from_dict = EditGasStationConfigurationResponse.from_dict(edit_gas_station_configuration_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFZGl0R2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzdWNjZXNzKiogfCAqKmJvb2wqKiB8IEluZGljYXRlcyB3aGV0aGVyIGVkaXRpbmcgdGhlIGdhcyBzdGF0aW9uIGNvbmZpZ3VyYXRpb24gd2FzIHN1Y2Nlc3NmdWwgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVkaXRfZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbl9yZXNwb25zZSBpbXBvcnQgRWRpdEdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEVkaXRHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwplZGl0X2dhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25fcmVzcG9uc2VfaW5zdGFuY2UgPSBFZGl0R2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChFZGl0R2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAplZGl0X2dhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25fcmVzcG9uc2VfZGljdCA9IGVkaXRfZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbl9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRWRpdEdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2UgZnJvbSBhIGRpY3QKZWRpdF9nYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uX3Jlc3BvbnNlX2Zyb21fZGljdCA9IEVkaXRHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlLmZyb21fZGljdChlZGl0X2dhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25fcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/EmbeddedWallet.md b/docs/EmbeddedWallet.md index e1a0d665..b4a0b63a 100644 --- a/docs/EmbeddedWallet.md +++ b/docs/EmbeddedWallet.md @@ -1,30 +1 @@ -# EmbeddedWallet - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**wallet_id** | **str** | walletId | -**enabled** | **bool** | enabled | - -## Example - -```python -from fireblocks.models.embedded_wallet import EmbeddedWallet - -# TODO update the JSON string below -json = "{}" -# create an instance of EmbeddedWallet from a JSON string -embedded_wallet_instance = EmbeddedWallet.from_json(json) -# print the JSON string representation of the object -print(EmbeddedWallet.to_json()) - -# convert the object into a dict -embedded_wallet_dict = embedded_wallet_instance.to_dict() -# create an instance of EmbeddedWallet from a dict -embedded_wallet_from_dict = EmbeddedWallet.from_dict(embedded_wallet_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFbWJlZGRlZFdhbGxldAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip3YWxsZXRfaWQqKiB8ICoqc3RyKiogfCB3YWxsZXRJZCB8IAoqKmVuYWJsZWQqKiB8ICoqYm9vbCoqIHwgZW5hYmxlZCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0IGltcG9ydCBFbWJlZGRlZFdhbGxldAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRW1iZWRkZWRXYWxsZXQgZnJvbSBhIEpTT04gc3RyaW5nCmVtYmVkZGVkX3dhbGxldF9pbnN0YW5jZSA9IEVtYmVkZGVkV2FsbGV0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEVtYmVkZGVkV2FsbGV0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmVtYmVkZGVkX3dhbGxldF9kaWN0ID0gZW1iZWRkZWRfd2FsbGV0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldCBmcm9tIGEgZGljdAplbWJlZGRlZF93YWxsZXRfZnJvbV9kaWN0ID0gRW1iZWRkZWRXYWxsZXQuZnJvbV9kaWN0KGVtYmVkZGVkX3dhbGxldF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/EmbeddedWalletAccount.md b/docs/EmbeddedWalletAccount.md index e4522f9d..d9f314b2 100644 --- a/docs/EmbeddedWalletAccount.md +++ b/docs/EmbeddedWalletAccount.md @@ -1,30 +1 @@ -# EmbeddedWalletAccount - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_id** | **str** | The ID of the account | -**wallet_id** | **str** | Unique identifier of the Non-Custodial Wallet (UUID) | - -## Example - -```python -from fireblocks.models.embedded_wallet_account import EmbeddedWalletAccount - -# TODO update the JSON string below -json = "{}" -# create an instance of EmbeddedWalletAccount from a JSON string -embedded_wallet_account_instance = EmbeddedWalletAccount.from_json(json) -# print the JSON string representation of the object -print(EmbeddedWalletAccount.to_json()) - -# convert the object into a dict -embedded_wallet_account_dict = embedded_wallet_account_instance.to_dict() -# create an instance of EmbeddedWalletAccount from a dict -embedded_wallet_account_from_dict = EmbeddedWalletAccount.from_dict(embedded_wallet_account_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFbWJlZGRlZFdhbGxldEFjY291bnQKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgYWNjb3VudCB8IAoqKndhbGxldF9pZCoqIHwgKipzdHIqKiB8IFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBOb24tQ3VzdG9kaWFsIFdhbGxldCAoVVVJRCkgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9hY2NvdW50IGltcG9ydCBFbWJlZGRlZFdhbGxldEFjY291bnQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0QWNjb3VudCBmcm9tIGEgSlNPTiBzdHJpbmcKZW1iZWRkZWRfd2FsbGV0X2FjY291bnRfaW5zdGFuY2UgPSBFbWJlZGRlZFdhbGxldEFjY291bnQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRW1iZWRkZWRXYWxsZXRBY2NvdW50LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmVtYmVkZGVkX3dhbGxldF9hY2NvdW50X2RpY3QgPSBlbWJlZGRlZF93YWxsZXRfYWNjb3VudF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRW1iZWRkZWRXYWxsZXRBY2NvdW50IGZyb20gYSBkaWN0CmVtYmVkZGVkX3dhbGxldF9hY2NvdW50X2Zyb21fZGljdCA9IEVtYmVkZGVkV2FsbGV0QWNjb3VudC5mcm9tX2RpY3QoZW1iZWRkZWRfd2FsbGV0X2FjY291bnRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/EmbeddedWalletAddressDetails.md b/docs/EmbeddedWalletAddressDetails.md index d345e313..ba597a85 100644 --- a/docs/EmbeddedWalletAddressDetails.md +++ b/docs/EmbeddedWalletAddressDetails.md @@ -1,44 +1 @@ -# EmbeddedWalletAddressDetails - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_name** | **str** | accountName | -**account_id** | **str** | accountId | -**asset** | **str** | asset | -**address** | **str** | address | -**address_type** | **str** | addressType | -**address_description** | **str** | addressDescription | -**tag** | **str** | tag | -**address_index** | **float** | addressIndex | [optional] -**change** | **float** | change | [optional] -**coin_type** | **float** | Unique identifier of an asset (0 for BTC, 60 for ETH, etc.) | [optional] -**customer_ref_id** | **str** | customerRefId | [optional] -**address_format** | **str** | addressFormat | [optional] -**legacy_address** | **str** | legacyAddress | [optional] -**payment_address** | **str** | paymentAddress | [optional] -**user_defined** | **bool** | userDefined | [optional] -**state** | **str** | state | [optional] - -## Example - -```python -from fireblocks.models.embedded_wallet_address_details import EmbeddedWalletAddressDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of EmbeddedWalletAddressDetails from a JSON string -embedded_wallet_address_details_instance = EmbeddedWalletAddressDetails.from_json(json) -# print the JSON string representation of the object -print(EmbeddedWalletAddressDetails.to_json()) - -# convert the object into a dict -embedded_wallet_address_details_dict = embedded_wallet_address_details_instance.to_dict() -# create an instance of EmbeddedWalletAddressDetails from a dict -embedded_wallet_address_details_from_dict = EmbeddedWalletAddressDetails.from_dict(embedded_wallet_address_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFbWJlZGRlZFdhbGxldEFkZHJlc3NEZXRhaWxzCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFjY291bnRfbmFtZSoqIHwgKipzdHIqKiB8IGFjY291bnROYW1lIHwgCioqYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8IGFjY291bnRJZCB8IAoqKmFzc2V0KiogfCAqKnN0cioqIHwgYXNzZXQgfCAKKiphZGRyZXNzKiogfCAqKnN0cioqIHwgYWRkcmVzcyB8IAoqKmFkZHJlc3NfdHlwZSoqIHwgKipzdHIqKiB8IGFkZHJlc3NUeXBlIHwgCioqYWRkcmVzc19kZXNjcmlwdGlvbioqIHwgKipzdHIqKiB8IGFkZHJlc3NEZXNjcmlwdGlvbiB8IAoqKnRhZyoqIHwgKipzdHIqKiB8IHRhZyB8IAoqKmFkZHJlc3NfaW5kZXgqKiB8ICoqZmxvYXQqKiB8IGFkZHJlc3NJbmRleCB8IFtvcHRpb25hbF0gCioqY2hhbmdlKiogfCAqKmZsb2F0KiogfCBjaGFuZ2UgfCBbb3B0aW9uYWxdIAoqKmNvaW5fdHlwZSoqIHwgKipmbG9hdCoqIHwgVW5pcXVlIGlkZW50aWZpZXIgb2YgYW4gYXNzZXQgKDAgZm9yIEJUQywgNjAgZm9yIEVUSCwgZXRjLikgfCBbb3B0aW9uYWxdIAoqKmN1c3RvbWVyX3JlZl9pZCoqIHwgKipzdHIqKiB8IGN1c3RvbWVyUmVmSWQgfCBbb3B0aW9uYWxdIAoqKmFkZHJlc3NfZm9ybWF0KiogfCAqKnN0cioqIHwgYWRkcmVzc0Zvcm1hdCB8IFtvcHRpb25hbF0gCioqbGVnYWN5X2FkZHJlc3MqKiB8ICoqc3RyKiogfCBsZWdhY3lBZGRyZXNzIHwgW29wdGlvbmFsXSAKKipwYXltZW50X2FkZHJlc3MqKiB8ICoqc3RyKiogfCBwYXltZW50QWRkcmVzcyB8IFtvcHRpb25hbF0gCioqdXNlcl9kZWZpbmVkKiogfCAqKmJvb2wqKiB8IHVzZXJEZWZpbmVkIHwgW29wdGlvbmFsXSAKKipzdGF0ZSoqIHwgKipzdHIqKiB8IHN0YXRlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9hZGRyZXNzX2RldGFpbHMgaW1wb3J0IEVtYmVkZGVkV2FsbGV0QWRkcmVzc0RldGFpbHMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0QWRkcmVzc0RldGFpbHMgZnJvbSBhIEpTT04gc3RyaW5nCmVtYmVkZGVkX3dhbGxldF9hZGRyZXNzX2RldGFpbHNfaW5zdGFuY2UgPSBFbWJlZGRlZFdhbGxldEFkZHJlc3NEZXRhaWxzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEVtYmVkZGVkV2FsbGV0QWRkcmVzc0RldGFpbHMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZW1iZWRkZWRfd2FsbGV0X2FkZHJlc3NfZGV0YWlsc19kaWN0ID0gZW1iZWRkZWRfd2FsbGV0X2FkZHJlc3NfZGV0YWlsc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRW1iZWRkZWRXYWxsZXRBZGRyZXNzRGV0YWlscyBmcm9tIGEgZGljdAplbWJlZGRlZF93YWxsZXRfYWRkcmVzc19kZXRhaWxzX2Zyb21fZGljdCA9IEVtYmVkZGVkV2FsbGV0QWRkcmVzc0RldGFpbHMuZnJvbV9kaWN0KGVtYmVkZGVkX3dhbGxldF9hZGRyZXNzX2RldGFpbHNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/EmbeddedWalletAlgoritm.md b/docs/EmbeddedWalletAlgoritm.md index 09acba02..8166cc29 100644 --- a/docs/EmbeddedWalletAlgoritm.md +++ b/docs/EmbeddedWalletAlgoritm.md @@ -1,30 +1 @@ -# EmbeddedWalletAlgoritm - -algorithm name - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**algorithm** | **str** | algorithm | - -## Example - -```python -from fireblocks.models.embedded_wallet_algoritm import EmbeddedWalletAlgoritm - -# TODO update the JSON string below -json = "{}" -# create an instance of EmbeddedWalletAlgoritm from a JSON string -embedded_wallet_algoritm_instance = EmbeddedWalletAlgoritm.from_json(json) -# print the JSON string representation of the object -print(EmbeddedWalletAlgoritm.to_json()) - -# convert the object into a dict -embedded_wallet_algoritm_dict = embedded_wallet_algoritm_instance.to_dict() -# create an instance of EmbeddedWalletAlgoritm from a dict -embedded_wallet_algoritm_from_dict = EmbeddedWalletAlgoritm.from_dict(embedded_wallet_algoritm_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFbWJlZGRlZFdhbGxldEFsZ29yaXRtCgphbGdvcml0aG0gbmFtZQoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFsZ29yaXRobSoqIHwgKipzdHIqKiB8IGFsZ29yaXRobSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X2FsZ29yaXRtIGltcG9ydCBFbWJlZGRlZFdhbGxldEFsZ29yaXRtCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldEFsZ29yaXRtIGZyb20gYSBKU09OIHN0cmluZwplbWJlZGRlZF93YWxsZXRfYWxnb3JpdG1faW5zdGFuY2UgPSBFbWJlZGRlZFdhbGxldEFsZ29yaXRtLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEVtYmVkZGVkV2FsbGV0QWxnb3JpdG0udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZW1iZWRkZWRfd2FsbGV0X2FsZ29yaXRtX2RpY3QgPSBlbWJlZGRlZF93YWxsZXRfYWxnb3JpdG1faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0QWxnb3JpdG0gZnJvbSBhIGRpY3QKZW1iZWRkZWRfd2FsbGV0X2FsZ29yaXRtX2Zyb21fZGljdCA9IEVtYmVkZGVkV2FsbGV0QWxnb3JpdG0uZnJvbV9kaWN0KGVtYmVkZGVkX3dhbGxldF9hbGdvcml0bV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/EmbeddedWalletAssetBalance.md b/docs/EmbeddedWalletAssetBalance.md index 10e6bde7..e278be69 100644 --- a/docs/EmbeddedWalletAssetBalance.md +++ b/docs/EmbeddedWalletAssetBalance.md @@ -1,37 +1 @@ -# EmbeddedWalletAssetBalance - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | Unique identifier of the asset balance entry | -**total** | **str** | Total balance amount for the asset in the account (including pending, locked, and available) | -**available** | **str** | The balance available for use or withdrawal | -**pending** | **str** | Amount pending confirmation from blockchain (e.g., unconfirmed deposits) | -**frozen** | **str** | Balance that is frozen due to policy or regulatory lock | -**locked_amount** | **str** | Funds locked for operations such as staking or delegation | -**block_height** | **str** | Latest known blockchain height when balance was fetched | [optional] -**block_hash** | **str** | Hash of the blockchain block associated with the current balance state | [optional] -**reward_info** | [**EmbeddedWalletAssetRewardInfo**](EmbeddedWalletAssetRewardInfo.md) | | [optional] - -## Example - -```python -from fireblocks.models.embedded_wallet_asset_balance import EmbeddedWalletAssetBalance - -# TODO update the JSON string below -json = "{}" -# create an instance of EmbeddedWalletAssetBalance from a JSON string -embedded_wallet_asset_balance_instance = EmbeddedWalletAssetBalance.from_json(json) -# print the JSON string representation of the object -print(EmbeddedWalletAssetBalance.to_json()) - -# convert the object into a dict -embedded_wallet_asset_balance_dict = embedded_wallet_asset_balance_instance.to_dict() -# create an instance of EmbeddedWalletAssetBalance from a dict -embedded_wallet_asset_balance_from_dict = EmbeddedWalletAssetBalance.from_dict(embedded_wallet_asset_balance_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFbWJlZGRlZFdhbGxldEFzc2V0QmFsYW5jZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8IFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCBiYWxhbmNlIGVudHJ5IHwgCioqdG90YWwqKiB8ICoqc3RyKiogfCBUb3RhbCBiYWxhbmNlIGFtb3VudCBmb3IgdGhlIGFzc2V0IGluIHRoZSBhY2NvdW50IChpbmNsdWRpbmcgcGVuZGluZywgbG9ja2VkLCBhbmQgYXZhaWxhYmxlKSB8IAoqKmF2YWlsYWJsZSoqIHwgKipzdHIqKiB8IFRoZSBiYWxhbmNlIGF2YWlsYWJsZSBmb3IgdXNlIG9yIHdpdGhkcmF3YWwgfCAKKipwZW5kaW5nKiogfCAqKnN0cioqIHwgQW1vdW50IHBlbmRpbmcgY29uZmlybWF0aW9uIGZyb20gYmxvY2tjaGFpbiAoZS5nLiwgdW5jb25maXJtZWQgZGVwb3NpdHMpIHwgCioqZnJvemVuKiogfCAqKnN0cioqIHwgQmFsYW5jZSB0aGF0IGlzIGZyb3plbiBkdWUgdG8gcG9saWN5IG9yIHJlZ3VsYXRvcnkgbG9jayB8IAoqKmxvY2tlZF9hbW91bnQqKiB8ICoqc3RyKiogfCBGdW5kcyBsb2NrZWQgZm9yIG9wZXJhdGlvbnMgc3VjaCBhcyBzdGFraW5nIG9yIGRlbGVnYXRpb24gfCAKKipibG9ja19oZWlnaHQqKiB8ICoqc3RyKiogfCBMYXRlc3Qga25vd24gYmxvY2tjaGFpbiBoZWlnaHQgd2hlbiBiYWxhbmNlIHdhcyBmZXRjaGVkIHwgW29wdGlvbmFsXSAKKipibG9ja19oYXNoKiogfCAqKnN0cioqIHwgSGFzaCBvZiB0aGUgYmxvY2tjaGFpbiBibG9jayBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgYmFsYW5jZSBzdGF0ZSB8IFtvcHRpb25hbF0gCioqcmV3YXJkX2luZm8qKiB8IFsqKkVtYmVkZGVkV2FsbGV0QXNzZXRSZXdhcmRJbmZvKipdKEVtYmVkZGVkV2FsbGV0QXNzZXRSZXdhcmRJbmZvLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfYXNzZXRfYmFsYW5jZSBpbXBvcnQgRW1iZWRkZWRXYWxsZXRBc3NldEJhbGFuY2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0QXNzZXRCYWxhbmNlIGZyb20gYSBKU09OIHN0cmluZwplbWJlZGRlZF93YWxsZXRfYXNzZXRfYmFsYW5jZV9pbnN0YW5jZSA9IEVtYmVkZGVkV2FsbGV0QXNzZXRCYWxhbmNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEVtYmVkZGVkV2FsbGV0QXNzZXRCYWxhbmNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmVtYmVkZGVkX3dhbGxldF9hc3NldF9iYWxhbmNlX2RpY3QgPSBlbWJlZGRlZF93YWxsZXRfYXNzZXRfYmFsYW5jZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRW1iZWRkZWRXYWxsZXRBc3NldEJhbGFuY2UgZnJvbSBhIGRpY3QKZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X2JhbGFuY2VfZnJvbV9kaWN0ID0gRW1iZWRkZWRXYWxsZXRBc3NldEJhbGFuY2UuZnJvbV9kaWN0KGVtYmVkZGVkX3dhbGxldF9hc3NldF9iYWxhbmNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/EmbeddedWalletAssetResponse.md b/docs/EmbeddedWalletAssetResponse.md index 23a8291a..213d3f5b 100644 --- a/docs/EmbeddedWalletAssetResponse.md +++ b/docs/EmbeddedWalletAssetResponse.md @@ -1,45 +1 @@ -# EmbeddedWalletAssetResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | -**symbol** | **str** | The asset symbol | -**name** | **str** | The asset name | -**decimals** | **float** | Number of decimals | -**network_protocol** | **str** | Netowrk protocol of the blockchain (BTC, ETH) | -**testnet** | **bool** | Is in testnet | -**has_fee** | **bool** | Has fee | -**base_asset** | **str** | Base asset symbol BTC_TEST, ETH_TEST5) | -**eth_network** | **str** | | [optional] -**eth_contract_address** | **str** | | [optional] -**issuer_address** | **str** | The address of the issuer of this token. Will be part of the identifier of this token on chain. | [optional] -**blockchain_symbol** | **str** | Name of blockchain | [optional] -**deprecated** | **bool** | Is blockchain deprecated | [optional] -**coin_type** | **float** | Unique identifier of an asset (0 for BTC, 60 for ETH, etc.) | -**blockchain** | **str** | The blockchain native asset id which the token is deployed on | -**blockchain_display_name** | **str** | Name of blockchain | [optional] -**algorithm** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.embedded_wallet_asset_response import EmbeddedWalletAssetResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of EmbeddedWalletAssetResponse from a JSON string -embedded_wallet_asset_response_instance = EmbeddedWalletAssetResponse.from_json(json) -# print the JSON string representation of the object -print(EmbeddedWalletAssetResponse.to_json()) - -# convert the object into a dict -embedded_wallet_asset_response_dict = embedded_wallet_asset_response_instance.to_dict() -# create an instance of EmbeddedWalletAssetResponse from a dict -embedded_wallet_asset_response_from_dict = EmbeddedWalletAssetResponse.from_dict(embedded_wallet_asset_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFbWJlZGRlZFdhbGxldEFzc2V0UmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCAgfCAKKipzeW1ib2wqKiB8ICoqc3RyKiogfCBUaGUgYXNzZXQgc3ltYm9sIHwgCioqbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBhc3NldCBuYW1lIHwgCioqZGVjaW1hbHMqKiB8ICoqZmxvYXQqKiB8IE51bWJlciBvZiBkZWNpbWFscyB8IAoqKm5ldHdvcmtfcHJvdG9jb2wqKiB8ICoqc3RyKiogfCBOZXRvd3JrIHByb3RvY29sIG9mIHRoZSBibG9ja2NoYWluIChCVEMsIEVUSCkgfCAKKip0ZXN0bmV0KiogfCAqKmJvb2wqKiB8IElzIGluIHRlc3RuZXQgfCAKKipoYXNfZmVlKiogfCAqKmJvb2wqKiB8IEhhcyBmZWUgfCAKKipiYXNlX2Fzc2V0KiogfCAqKnN0cioqIHwgQmFzZSBhc3NldCBzeW1ib2wgQlRDX1RFU1QsIEVUSF9URVNUNSkgfCAKKipldGhfbmV0d29yayoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqZXRoX2NvbnRyYWN0X2FkZHJlc3MqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmlzc3Vlcl9hZGRyZXNzKiogfCAqKnN0cioqIHwgVGhlIGFkZHJlc3Mgb2YgdGhlIGlzc3VlciBvZiB0aGlzIHRva2VuLiBXaWxsIGJlIHBhcnQgb2YgdGhlIGlkZW50aWZpZXIgb2YgdGhpcyB0b2tlbiBvbiBjaGFpbi4gfCBbb3B0aW9uYWxdIAoqKmJsb2NrY2hhaW5fc3ltYm9sKiogfCAqKnN0cioqIHwgTmFtZSBvZiBibG9ja2NoYWluIHwgW29wdGlvbmFsXSAKKipkZXByZWNhdGVkKiogfCAqKmJvb2wqKiB8IElzIGJsb2NrY2hhaW4gZGVwcmVjYXRlZCB8IFtvcHRpb25hbF0gCioqY29pbl90eXBlKiogfCAqKmZsb2F0KiogfCBVbmlxdWUgaWRlbnRpZmllciBvZiBhbiBhc3NldCAoMCBmb3IgQlRDLCA2MCBmb3IgRVRILCBldGMuKSB8IAoqKmJsb2NrY2hhaW4qKiB8ICoqc3RyKiogfCBUaGUgYmxvY2tjaGFpbiBuYXRpdmUgYXNzZXQgaWQgd2hpY2ggdGhlIHRva2VuIGlzIGRlcGxveWVkIG9uIHwgCioqYmxvY2tjaGFpbl9kaXNwbGF5X25hbWUqKiB8ICoqc3RyKiogfCBOYW1lIG9mIGJsb2NrY2hhaW4gfCBbb3B0aW9uYWxdIAoqKmFsZ29yaXRobSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfYXNzZXRfcmVzcG9uc2UgaW1wb3J0IEVtYmVkZGVkV2FsbGV0QXNzZXRSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRW1iZWRkZWRXYWxsZXRBc3NldFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwplbWJlZGRlZF93YWxsZXRfYXNzZXRfcmVzcG9uc2VfaW5zdGFuY2UgPSBFbWJlZGRlZFdhbGxldEFzc2V0UmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRW1iZWRkZWRXYWxsZXRBc3NldFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmVtYmVkZGVkX3dhbGxldF9hc3NldF9yZXNwb25zZV9kaWN0ID0gZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldEFzc2V0UmVzcG9uc2UgZnJvbSBhIGRpY3QKZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X3Jlc3BvbnNlX2Zyb21fZGljdCA9IEVtYmVkZGVkV2FsbGV0QXNzZXRSZXNwb25zZS5mcm9tX2RpY3QoZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/EmbeddedWalletAssetRewardInfo.md b/docs/EmbeddedWalletAssetRewardInfo.md index eb629951..dc583fad 100644 --- a/docs/EmbeddedWalletAssetRewardInfo.md +++ b/docs/EmbeddedWalletAssetRewardInfo.md @@ -1,29 +1 @@ -# EmbeddedWalletAssetRewardInfo - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**pending_rewards** | **str** | Amount that is pending for rewards | - -## Example - -```python -from fireblocks.models.embedded_wallet_asset_reward_info import EmbeddedWalletAssetRewardInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of EmbeddedWalletAssetRewardInfo from a JSON string -embedded_wallet_asset_reward_info_instance = EmbeddedWalletAssetRewardInfo.from_json(json) -# print the JSON string representation of the object -print(EmbeddedWalletAssetRewardInfo.to_json()) - -# convert the object into a dict -embedded_wallet_asset_reward_info_dict = embedded_wallet_asset_reward_info_instance.to_dict() -# create an instance of EmbeddedWalletAssetRewardInfo from a dict -embedded_wallet_asset_reward_info_from_dict = EmbeddedWalletAssetRewardInfo.from_dict(embedded_wallet_asset_reward_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFbWJlZGRlZFdhbGxldEFzc2V0UmV3YXJkSW5mbwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipwZW5kaW5nX3Jld2FyZHMqKiB8ICoqc3RyKiogfCBBbW91bnQgdGhhdCBpcyBwZW5kaW5nIGZvciByZXdhcmRzIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfYXNzZXRfcmV3YXJkX2luZm8gaW1wb3J0IEVtYmVkZGVkV2FsbGV0QXNzZXRSZXdhcmRJbmZvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldEFzc2V0UmV3YXJkSW5mbyBmcm9tIGEgSlNPTiBzdHJpbmcKZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X3Jld2FyZF9pbmZvX2luc3RhbmNlID0gRW1iZWRkZWRXYWxsZXRBc3NldFJld2FyZEluZm8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRW1iZWRkZWRXYWxsZXRBc3NldFJld2FyZEluZm8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X3Jld2FyZF9pbmZvX2RpY3QgPSBlbWJlZGRlZF93YWxsZXRfYXNzZXRfcmV3YXJkX2luZm9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0QXNzZXRSZXdhcmRJbmZvIGZyb20gYSBkaWN0CmVtYmVkZGVkX3dhbGxldF9hc3NldF9yZXdhcmRfaW5mb19mcm9tX2RpY3QgPSBFbWJlZGRlZFdhbGxldEFzc2V0UmV3YXJkSW5mby5mcm9tX2RpY3QoZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X3Jld2FyZF9pbmZvX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/EmbeddedWalletDevice.md b/docs/EmbeddedWalletDevice.md index 90e5216c..32a950df 100644 --- a/docs/EmbeddedWalletDevice.md +++ b/docs/EmbeddedWalletDevice.md @@ -1,31 +1 @@ -# EmbeddedWalletDevice - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**device_id** | **str** | deviceId | -**enabled** | **bool** | enabled | -**physical_device_id** | **str** | physicalDeviceId | - -## Example - -```python -from fireblocks.models.embedded_wallet_device import EmbeddedWalletDevice - -# TODO update the JSON string below -json = "{}" -# create an instance of EmbeddedWalletDevice from a JSON string -embedded_wallet_device_instance = EmbeddedWalletDevice.from_json(json) -# print the JSON string representation of the object -print(EmbeddedWalletDevice.to_json()) - -# convert the object into a dict -embedded_wallet_device_dict = embedded_wallet_device_instance.to_dict() -# create an instance of EmbeddedWalletDevice from a dict -embedded_wallet_device_from_dict = EmbeddedWalletDevice.from_dict(embedded_wallet_device_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFbWJlZGRlZFdhbGxldERldmljZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkZXZpY2VfaWQqKiB8ICoqc3RyKiogfCBkZXZpY2VJZCB8IAoqKmVuYWJsZWQqKiB8ICoqYm9vbCoqIHwgZW5hYmxlZCB8IAoqKnBoeXNpY2FsX2RldmljZV9pZCoqIHwgKipzdHIqKiB8IHBoeXNpY2FsRGV2aWNlSWQgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9kZXZpY2UgaW1wb3J0IEVtYmVkZGVkV2FsbGV0RGV2aWNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldERldmljZSBmcm9tIGEgSlNPTiBzdHJpbmcKZW1iZWRkZWRfd2FsbGV0X2RldmljZV9pbnN0YW5jZSA9IEVtYmVkZGVkV2FsbGV0RGV2aWNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEVtYmVkZGVkV2FsbGV0RGV2aWNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmVtYmVkZGVkX3dhbGxldF9kZXZpY2VfZGljdCA9IGVtYmVkZGVkX3dhbGxldF9kZXZpY2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0RGV2aWNlIGZyb20gYSBkaWN0CmVtYmVkZGVkX3dhbGxldF9kZXZpY2VfZnJvbV9kaWN0ID0gRW1iZWRkZWRXYWxsZXREZXZpY2UuZnJvbV9kaWN0KGVtYmVkZGVkX3dhbGxldF9kZXZpY2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/EmbeddedWalletDeviceKeySetupResponse.md b/docs/EmbeddedWalletDeviceKeySetupResponse.md index ae022a03..7b9472b8 100644 --- a/docs/EmbeddedWalletDeviceKeySetupResponse.md +++ b/docs/EmbeddedWalletDeviceKeySetupResponse.md @@ -1,32 +1 @@ -# EmbeddedWalletDeviceKeySetupResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status** | [**EmbeddedWalletSetUpStatus**](EmbeddedWalletSetUpStatus.md) | | -**device_id** | **str** | deviceId | -**enabled** | **bool** | enabled | -**setup_status** | [**List[EmbeddedWalletDeviceKeySetupResponseSetupStatusInner]**](EmbeddedWalletDeviceKeySetupResponseSetupStatusInner.md) | setupStatus | - -## Example - -```python -from fireblocks.models.embedded_wallet_device_key_setup_response import EmbeddedWalletDeviceKeySetupResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of EmbeddedWalletDeviceKeySetupResponse from a JSON string -embedded_wallet_device_key_setup_response_instance = EmbeddedWalletDeviceKeySetupResponse.from_json(json) -# print the JSON string representation of the object -print(EmbeddedWalletDeviceKeySetupResponse.to_json()) - -# convert the object into a dict -embedded_wallet_device_key_setup_response_dict = embedded_wallet_device_key_setup_response_instance.to_dict() -# create an instance of EmbeddedWalletDeviceKeySetupResponse from a dict -embedded_wallet_device_key_setup_response_from_dict = EmbeddedWalletDeviceKeySetupResponse.from_dict(embedded_wallet_device_key_setup_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3RhdHVzKiogfCBbKipFbWJlZGRlZFdhbGxldFNldFVwU3RhdHVzKipdKEVtYmVkZGVkV2FsbGV0U2V0VXBTdGF0dXMubWQpIHwgIHwgCioqZGV2aWNlX2lkKiogfCAqKnN0cioqIHwgZGV2aWNlSWQgfCAKKiplbmFibGVkKiogfCAqKmJvb2wqKiB8IGVuYWJsZWQgfCAKKipzZXR1cF9zdGF0dXMqKiB8IFsqKkxpc3RbRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlU2V0dXBTdGF0dXNJbm5lcl0qKl0oRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlU2V0dXBTdGF0dXNJbm5lci5tZCkgfCBzZXR1cFN0YXR1cyB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X2RldmljZV9rZXlfc2V0dXBfcmVzcG9uc2UgaW1wb3J0IEVtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwplbWJlZGRlZF93YWxsZXRfZGV2aWNlX2tleV9zZXR1cF9yZXNwb25zZV9pbnN0YW5jZSA9IEVtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChFbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZW1iZWRkZWRfd2FsbGV0X2RldmljZV9rZXlfc2V0dXBfcmVzcG9uc2VfZGljdCA9IGVtYmVkZGVkX3dhbGxldF9kZXZpY2Vfa2V5X3NldHVwX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2UgZnJvbSBhIGRpY3QKZW1iZWRkZWRfd2FsbGV0X2RldmljZV9rZXlfc2V0dXBfcmVzcG9uc2VfZnJvbV9kaWN0ID0gRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlLmZyb21fZGljdChlbWJlZGRlZF93YWxsZXRfZGV2aWNlX2tleV9zZXR1cF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/EmbeddedWalletDeviceKeySetupResponseSetupStatusInner.md b/docs/EmbeddedWalletDeviceKeySetupResponseSetupStatusInner.md index ce7d2aa5..93575e0c 100644 --- a/docs/EmbeddedWalletDeviceKeySetupResponseSetupStatusInner.md +++ b/docs/EmbeddedWalletDeviceKeySetupResponseSetupStatusInner.md @@ -1,31 +1 @@ -# EmbeddedWalletDeviceKeySetupResponseSetupStatusInner - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**algorithm_name** | [**EmbeddedWalletAlgoritm**](EmbeddedWalletAlgoritm.md) | | -**confirmed** | **bool** | confirmed | -**backed_up** | **bool** | backedUp | - -## Example - -```python -from fireblocks.models.embedded_wallet_device_key_setup_response_setup_status_inner import EmbeddedWalletDeviceKeySetupResponseSetupStatusInner - -# TODO update the JSON string below -json = "{}" -# create an instance of EmbeddedWalletDeviceKeySetupResponseSetupStatusInner from a JSON string -embedded_wallet_device_key_setup_response_setup_status_inner_instance = EmbeddedWalletDeviceKeySetupResponseSetupStatusInner.from_json(json) -# print the JSON string representation of the object -print(EmbeddedWalletDeviceKeySetupResponseSetupStatusInner.to_json()) - -# convert the object into a dict -embedded_wallet_device_key_setup_response_setup_status_inner_dict = embedded_wallet_device_key_setup_response_setup_status_inner_instance.to_dict() -# create an instance of EmbeddedWalletDeviceKeySetupResponseSetupStatusInner from a dict -embedded_wallet_device_key_setup_response_setup_status_inner_from_dict = EmbeddedWalletDeviceKeySetupResponseSetupStatusInner.from_dict(embedded_wallet_device_key_setup_response_setup_status_inner_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2VTZXR1cFN0YXR1c0lubmVyCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFsZ29yaXRobV9uYW1lKiogfCBbKipFbWJlZGRlZFdhbGxldEFsZ29yaXRtKipdKEVtYmVkZGVkV2FsbGV0QWxnb3JpdG0ubWQpIHwgIHwgCioqY29uZmlybWVkKiogfCAqKmJvb2wqKiB8IGNvbmZpcm1lZCB8IAoqKmJhY2tlZF91cCoqIHwgKipib29sKiogfCBiYWNrZWRVcCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X2RldmljZV9rZXlfc2V0dXBfcmVzcG9uc2Vfc2V0dXBfc3RhdHVzX2lubmVyIGltcG9ydCBFbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2VTZXR1cFN0YXR1c0lubmVyCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2VTZXR1cFN0YXR1c0lubmVyIGZyb20gYSBKU09OIHN0cmluZwplbWJlZGRlZF93YWxsZXRfZGV2aWNlX2tleV9zZXR1cF9yZXNwb25zZV9zZXR1cF9zdGF0dXNfaW5uZXJfaW5zdGFuY2UgPSBFbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2VTZXR1cFN0YXR1c0lubmVyLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEVtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZVNldHVwU3RhdHVzSW5uZXIudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZW1iZWRkZWRfd2FsbGV0X2RldmljZV9rZXlfc2V0dXBfcmVzcG9uc2Vfc2V0dXBfc3RhdHVzX2lubmVyX2RpY3QgPSBlbWJlZGRlZF93YWxsZXRfZGV2aWNlX2tleV9zZXR1cF9yZXNwb25zZV9zZXR1cF9zdGF0dXNfaW5uZXJfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZVNldHVwU3RhdHVzSW5uZXIgZnJvbSBhIGRpY3QKZW1iZWRkZWRfd2FsbGV0X2RldmljZV9rZXlfc2V0dXBfcmVzcG9uc2Vfc2V0dXBfc3RhdHVzX2lubmVyX2Zyb21fZGljdCA9IEVtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZVNldHVwU3RhdHVzSW5uZXIuZnJvbV9kaWN0KGVtYmVkZGVkX3dhbGxldF9kZXZpY2Vfa2V5X3NldHVwX3Jlc3BvbnNlX3NldHVwX3N0YXR1c19pbm5lcl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/EmbeddedWalletLatestBackupKey.md b/docs/EmbeddedWalletLatestBackupKey.md index 926162f4..a7eee3b5 100644 --- a/docs/EmbeddedWalletLatestBackupKey.md +++ b/docs/EmbeddedWalletLatestBackupKey.md @@ -1,32 +1 @@ -# EmbeddedWalletLatestBackupKey - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**device_id** | **str** | deviceId | -**public_key** | **str** | publicKey | -**key_id** | **str** | keyId | -**algorithm** | **str** | algorithm | - -## Example - -```python -from fireblocks.models.embedded_wallet_latest_backup_key import EmbeddedWalletLatestBackupKey - -# TODO update the JSON string below -json = "{}" -# create an instance of EmbeddedWalletLatestBackupKey from a JSON string -embedded_wallet_latest_backup_key_instance = EmbeddedWalletLatestBackupKey.from_json(json) -# print the JSON string representation of the object -print(EmbeddedWalletLatestBackupKey.to_json()) - -# convert the object into a dict -embedded_wallet_latest_backup_key_dict = embedded_wallet_latest_backup_key_instance.to_dict() -# create an instance of EmbeddedWalletLatestBackupKey from a dict -embedded_wallet_latest_backup_key_from_dict = EmbeddedWalletLatestBackupKey.from_dict(embedded_wallet_latest_backup_key_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cEtleQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkZXZpY2VfaWQqKiB8ICoqc3RyKiogfCBkZXZpY2VJZCB8IAoqKnB1YmxpY19rZXkqKiB8ICoqc3RyKiogfCBwdWJsaWNLZXkgfCAKKiprZXlfaWQqKiB8ICoqc3RyKiogfCBrZXlJZCB8IAoqKmFsZ29yaXRobSoqIHwgKipzdHIqKiB8IGFsZ29yaXRobSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X2xhdGVzdF9iYWNrdXBfa2V5IGltcG9ydCBFbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cEtleQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRW1iZWRkZWRXYWxsZXRMYXRlc3RCYWNrdXBLZXkgZnJvbSBhIEpTT04gc3RyaW5nCmVtYmVkZGVkX3dhbGxldF9sYXRlc3RfYmFja3VwX2tleV9pbnN0YW5jZSA9IEVtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwS2V5LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEVtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwS2V5LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmVtYmVkZGVkX3dhbGxldF9sYXRlc3RfYmFja3VwX2tleV9kaWN0ID0gZW1iZWRkZWRfd2FsbGV0X2xhdGVzdF9iYWNrdXBfa2V5X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cEtleSBmcm9tIGEgZGljdAplbWJlZGRlZF93YWxsZXRfbGF0ZXN0X2JhY2t1cF9rZXlfZnJvbV9kaWN0ID0gRW1iZWRkZWRXYWxsZXRMYXRlc3RCYWNrdXBLZXkuZnJvbV9kaWN0KGVtYmVkZGVkX3dhbGxldF9sYXRlc3RfYmFja3VwX2tleV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/EmbeddedWalletLatestBackupResponse.md b/docs/EmbeddedWalletLatestBackupResponse.md index 053802de..d58a19cf 100644 --- a/docs/EmbeddedWalletLatestBackupResponse.md +++ b/docs/EmbeddedWalletLatestBackupResponse.md @@ -1,31 +1 @@ -# EmbeddedWalletLatestBackupResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**passphrase_id** | **str** | passphraseId | -**created_at** | **float** | createdAt | -**keys** | [**List[EmbeddedWalletLatestBackupKey]**](EmbeddedWalletLatestBackupKey.md) | keys | - -## Example - -```python -from fireblocks.models.embedded_wallet_latest_backup_response import EmbeddedWalletLatestBackupResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of EmbeddedWalletLatestBackupResponse from a JSON string -embedded_wallet_latest_backup_response_instance = EmbeddedWalletLatestBackupResponse.from_json(json) -# print the JSON string representation of the object -print(EmbeddedWalletLatestBackupResponse.to_json()) - -# convert the object into a dict -embedded_wallet_latest_backup_response_dict = embedded_wallet_latest_backup_response_instance.to_dict() -# create an instance of EmbeddedWalletLatestBackupResponse from a dict -embedded_wallet_latest_backup_response_from_dict = EmbeddedWalletLatestBackupResponse.from_dict(embedded_wallet_latest_backup_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cFJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnBhc3NwaHJhc2VfaWQqKiB8ICoqc3RyKiogfCBwYXNzcGhyYXNlSWQgfCAKKipjcmVhdGVkX2F0KiogfCAqKmZsb2F0KiogfCBjcmVhdGVkQXQgfCAKKiprZXlzKiogfCBbKipMaXN0W0VtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwS2V5XSoqXShFbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cEtleS5tZCkgfCBrZXlzIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfbGF0ZXN0X2JhY2t1cF9yZXNwb25zZSBpbXBvcnQgRW1iZWRkZWRXYWxsZXRMYXRlc3RCYWNrdXBSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRW1iZWRkZWRXYWxsZXRMYXRlc3RCYWNrdXBSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKZW1iZWRkZWRfd2FsbGV0X2xhdGVzdF9iYWNrdXBfcmVzcG9uc2VfaW5zdGFuY2UgPSBFbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEVtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZW1iZWRkZWRfd2FsbGV0X2xhdGVzdF9iYWNrdXBfcmVzcG9uc2VfZGljdCA9IGVtYmVkZGVkX3dhbGxldF9sYXRlc3RfYmFja3VwX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cFJlc3BvbnNlIGZyb20gYSBkaWN0CmVtYmVkZGVkX3dhbGxldF9sYXRlc3RfYmFja3VwX3Jlc3BvbnNlX2Zyb21fZGljdCA9IEVtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwUmVzcG9uc2UuZnJvbV9kaWN0KGVtYmVkZGVkX3dhbGxldF9sYXRlc3RfYmFja3VwX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/EmbeddedWalletPaginatedAddressesResponse.md b/docs/EmbeddedWalletPaginatedAddressesResponse.md index 9dfddd81..20578348 100644 --- a/docs/EmbeddedWalletPaginatedAddressesResponse.md +++ b/docs/EmbeddedWalletPaginatedAddressesResponse.md @@ -1,30 +1 @@ -# EmbeddedWalletPaginatedAddressesResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[EmbeddedWalletAddressDetails]**](EmbeddedWalletAddressDetails.md) | The data of the current page | -**next** | **str** | The ID of the next page | [optional] - -## Example - -```python -from fireblocks.models.embedded_wallet_paginated_addresses_response import EmbeddedWalletPaginatedAddressesResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of EmbeddedWalletPaginatedAddressesResponse from a JSON string -embedded_wallet_paginated_addresses_response_instance = EmbeddedWalletPaginatedAddressesResponse.from_json(json) -# print the JSON string representation of the object -print(EmbeddedWalletPaginatedAddressesResponse.to_json()) - -# convert the object into a dict -embedded_wallet_paginated_addresses_response_dict = embedded_wallet_paginated_addresses_response_instance.to_dict() -# create an instance of EmbeddedWalletPaginatedAddressesResponse from a dict -embedded_wallet_paginated_addresses_response_from_dict = EmbeddedWalletPaginatedAddressesResponse.from_dict(embedded_wallet_paginated_addresses_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFkZHJlc3Nlc1Jlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmRhdGEqKiB8IFsqKkxpc3RbRW1iZWRkZWRXYWxsZXRBZGRyZXNzRGV0YWlsc10qKl0oRW1iZWRkZWRXYWxsZXRBZGRyZXNzRGV0YWlscy5tZCkgfCBUaGUgZGF0YSBvZiB0aGUgY3VycmVudCBwYWdlIHwgCioqbmV4dCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgbmV4dCBwYWdlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9wYWdpbmF0ZWRfYWRkcmVzc2VzX3Jlc3BvbnNlIGltcG9ydCBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFkZHJlc3Nlc1Jlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFkZHJlc3Nlc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwplbWJlZGRlZF93YWxsZXRfcGFnaW5hdGVkX2FkZHJlc3Nlc19yZXNwb25zZV9pbnN0YW5jZSA9IEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkQWRkcmVzc2VzUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBZGRyZXNzZXNSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAplbWJlZGRlZF93YWxsZXRfcGFnaW5hdGVkX2FkZHJlc3Nlc19yZXNwb25zZV9kaWN0ID0gZW1iZWRkZWRfd2FsbGV0X3BhZ2luYXRlZF9hZGRyZXNzZXNfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkQWRkcmVzc2VzUmVzcG9uc2UgZnJvbSBhIGRpY3QKZW1iZWRkZWRfd2FsbGV0X3BhZ2luYXRlZF9hZGRyZXNzZXNfcmVzcG9uc2VfZnJvbV9kaWN0ID0gRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBZGRyZXNzZXNSZXNwb25zZS5mcm9tX2RpY3QoZW1iZWRkZWRfd2FsbGV0X3BhZ2luYXRlZF9hZGRyZXNzZXNfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/EmbeddedWalletPaginatedAssetsResponse.md b/docs/EmbeddedWalletPaginatedAssetsResponse.md index d9b6eb3a..99f5dc5f 100644 --- a/docs/EmbeddedWalletPaginatedAssetsResponse.md +++ b/docs/EmbeddedWalletPaginatedAssetsResponse.md @@ -1,30 +1 @@ -# EmbeddedWalletPaginatedAssetsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[EmbeddedWalletAssetResponse]**](EmbeddedWalletAssetResponse.md) | The data of the current page | -**next** | **str** | The ID of the next page | [optional] - -## Example - -```python -from fireblocks.models.embedded_wallet_paginated_assets_response import EmbeddedWalletPaginatedAssetsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of EmbeddedWalletPaginatedAssetsResponse from a JSON string -embedded_wallet_paginated_assets_response_instance = EmbeddedWalletPaginatedAssetsResponse.from_json(json) -# print the JSON string representation of the object -print(EmbeddedWalletPaginatedAssetsResponse.to_json()) - -# convert the object into a dict -embedded_wallet_paginated_assets_response_dict = embedded_wallet_paginated_assets_response_instance.to_dict() -# create an instance of EmbeddedWalletPaginatedAssetsResponse from a dict -embedded_wallet_paginated_assets_response_from_dict = EmbeddedWalletPaginatedAssetsResponse.from_dict(embedded_wallet_paginated_assets_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmRhdGEqKiB8IFsqKkxpc3RbRW1iZWRkZWRXYWxsZXRBc3NldFJlc3BvbnNlXSoqXShFbWJlZGRlZFdhbGxldEFzc2V0UmVzcG9uc2UubWQpIHwgVGhlIGRhdGEgb2YgdGhlIGN1cnJlbnQgcGFnZSB8IAoqKm5leHQqKiB8ICoqc3RyKiogfCBUaGUgSUQgb2YgdGhlIG5leHQgcGFnZSB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfcGFnaW5hdGVkX2Fzc2V0c19yZXNwb25zZSBpbXBvcnQgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBc3NldHNSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBc3NldHNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKZW1iZWRkZWRfd2FsbGV0X3BhZ2luYXRlZF9hc3NldHNfcmVzcG9uc2VfaW5zdGFuY2UgPSBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkQXNzZXRzUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZW1iZWRkZWRfd2FsbGV0X3BhZ2luYXRlZF9hc3NldHNfcmVzcG9uc2VfZGljdCA9IGVtYmVkZGVkX3dhbGxldF9wYWdpbmF0ZWRfYXNzZXRzX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlIGZyb20gYSBkaWN0CmVtYmVkZGVkX3dhbGxldF9wYWdpbmF0ZWRfYXNzZXRzX3Jlc3BvbnNlX2Zyb21fZGljdCA9IEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkQXNzZXRzUmVzcG9uc2UuZnJvbV9kaWN0KGVtYmVkZGVkX3dhbGxldF9wYWdpbmF0ZWRfYXNzZXRzX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/EmbeddedWalletPaginatedDevicesResponse.md b/docs/EmbeddedWalletPaginatedDevicesResponse.md index 61c13c29..c7a53130 100644 --- a/docs/EmbeddedWalletPaginatedDevicesResponse.md +++ b/docs/EmbeddedWalletPaginatedDevicesResponse.md @@ -1,30 +1 @@ -# EmbeddedWalletPaginatedDevicesResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[EmbeddedWalletDevice]**](EmbeddedWalletDevice.md) | The data of the current page | -**next** | **str** | The ID of the next page | [optional] - -## Example - -```python -from fireblocks.models.embedded_wallet_paginated_devices_response import EmbeddedWalletPaginatedDevicesResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of EmbeddedWalletPaginatedDevicesResponse from a JSON string -embedded_wallet_paginated_devices_response_instance = EmbeddedWalletPaginatedDevicesResponse.from_json(json) -# print the JSON string representation of the object -print(EmbeddedWalletPaginatedDevicesResponse.to_json()) - -# convert the object into a dict -embedded_wallet_paginated_devices_response_dict = embedded_wallet_paginated_devices_response_instance.to_dict() -# create an instance of EmbeddedWalletPaginatedDevicesResponse from a dict -embedded_wallet_paginated_devices_response_from_dict = EmbeddedWalletPaginatedDevicesResponse.from_dict(embedded_wallet_paginated_devices_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZERldmljZXNSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkYXRhKiogfCBbKipMaXN0W0VtYmVkZGVkV2FsbGV0RGV2aWNlXSoqXShFbWJlZGRlZFdhbGxldERldmljZS5tZCkgfCBUaGUgZGF0YSBvZiB0aGUgY3VycmVudCBwYWdlIHwgCioqbmV4dCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgbmV4dCBwYWdlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9wYWdpbmF0ZWRfZGV2aWNlc19yZXNwb25zZSBpbXBvcnQgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWREZXZpY2VzUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkRGV2aWNlc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwplbWJlZGRlZF93YWxsZXRfcGFnaW5hdGVkX2RldmljZXNfcmVzcG9uc2VfaW5zdGFuY2UgPSBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZERldmljZXNSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChFbWJlZGRlZFdhbGxldFBhZ2luYXRlZERldmljZXNSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAplbWJlZGRlZF93YWxsZXRfcGFnaW5hdGVkX2RldmljZXNfcmVzcG9uc2VfZGljdCA9IGVtYmVkZGVkX3dhbGxldF9wYWdpbmF0ZWRfZGV2aWNlc19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWREZXZpY2VzUmVzcG9uc2UgZnJvbSBhIGRpY3QKZW1iZWRkZWRfd2FsbGV0X3BhZ2luYXRlZF9kZXZpY2VzX3Jlc3BvbnNlX2Zyb21fZGljdCA9IEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkRGV2aWNlc1Jlc3BvbnNlLmZyb21fZGljdChlbWJlZGRlZF93YWxsZXRfcGFnaW5hdGVkX2RldmljZXNfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/EmbeddedWalletPaginatedWalletsResponse.md b/docs/EmbeddedWalletPaginatedWalletsResponse.md index 170cc59f..a73ae930 100644 --- a/docs/EmbeddedWalletPaginatedWalletsResponse.md +++ b/docs/EmbeddedWalletPaginatedWalletsResponse.md @@ -1,30 +1 @@ -# EmbeddedWalletPaginatedWalletsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[EmbeddedWallet]**](EmbeddedWallet.md) | The data of the current page | -**next** | **str** | The ID of the next page | [optional] - -## Example - -```python -from fireblocks.models.embedded_wallet_paginated_wallets_response import EmbeddedWalletPaginatedWalletsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of EmbeddedWalletPaginatedWalletsResponse from a JSON string -embedded_wallet_paginated_wallets_response_instance = EmbeddedWalletPaginatedWalletsResponse.from_json(json) -# print the JSON string representation of the object -print(EmbeddedWalletPaginatedWalletsResponse.to_json()) - -# convert the object into a dict -embedded_wallet_paginated_wallets_response_dict = embedded_wallet_paginated_wallets_response_instance.to_dict() -# create an instance of EmbeddedWalletPaginatedWalletsResponse from a dict -embedded_wallet_paginated_wallets_response_from_dict = EmbeddedWalletPaginatedWalletsResponse.from_dict(embedded_wallet_paginated_wallets_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZFdhbGxldHNSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkYXRhKiogfCBbKipMaXN0W0VtYmVkZGVkV2FsbGV0XSoqXShFbWJlZGRlZFdhbGxldC5tZCkgfCBUaGUgZGF0YSBvZiB0aGUgY3VycmVudCBwYWdlIHwgCioqbmV4dCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgbmV4dCBwYWdlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9wYWdpbmF0ZWRfd2FsbGV0c19yZXNwb25zZSBpbXBvcnQgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRXYWxsZXRzUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkV2FsbGV0c1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwplbWJlZGRlZF93YWxsZXRfcGFnaW5hdGVkX3dhbGxldHNfcmVzcG9uc2VfaW5zdGFuY2UgPSBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZFdhbGxldHNSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChFbWJlZGRlZFdhbGxldFBhZ2luYXRlZFdhbGxldHNSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAplbWJlZGRlZF93YWxsZXRfcGFnaW5hdGVkX3dhbGxldHNfcmVzcG9uc2VfZGljdCA9IGVtYmVkZGVkX3dhbGxldF9wYWdpbmF0ZWRfd2FsbGV0c19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRXYWxsZXRzUmVzcG9uc2UgZnJvbSBhIGRpY3QKZW1iZWRkZWRfd2FsbGV0X3BhZ2luYXRlZF93YWxsZXRzX3Jlc3BvbnNlX2Zyb21fZGljdCA9IEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkV2FsbGV0c1Jlc3BvbnNlLmZyb21fZGljdChlbWJlZGRlZF93YWxsZXRfcGFnaW5hdGVkX3dhbGxldHNfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/EmbeddedWalletRequiredAlgorithms.md b/docs/EmbeddedWalletRequiredAlgorithms.md index c0e76c53..cd4cd4d0 100644 --- a/docs/EmbeddedWalletRequiredAlgorithms.md +++ b/docs/EmbeddedWalletRequiredAlgorithms.md @@ -1,12 +1 @@ -# EmbeddedWalletRequiredAlgorithms - - -## Enum - -* `MPC_ECDSA_SECP256_K1` (value: `'MPC_ECDSA_SECP256K1'`) - -* `MPC_EDDSA_ED25519` (value: `'MPC_EDDSA_ED25519'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFbWJlZGRlZFdhbGxldFJlcXVpcmVkQWxnb3JpdGhtcwoKCiMjIEVudW0KCiogYE1QQ19FQ0RTQV9TRUNQMjU2X0sxYCAodmFsdWU6IGAnTVBDX0VDRFNBX1NFQ1AyNTZLMSdgKQoKKiBgTVBDX0VERFNBX0VEMjU1MTlgICh2YWx1ZTogYCdNUENfRUREU0FfRUQyNTUxOSdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/EmbeddedWalletSetUpStatus.md b/docs/EmbeddedWalletSetUpStatus.md index 9ec2d40e..5edd460e 100644 --- a/docs/EmbeddedWalletSetUpStatus.md +++ b/docs/EmbeddedWalletSetUpStatus.md @@ -1,30 +1 @@ -# EmbeddedWalletSetUpStatus - -embedded wallet setup status - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status** | **str** | status | - -## Example - -```python -from fireblocks.models.embedded_wallet_set_up_status import EmbeddedWalletSetUpStatus - -# TODO update the JSON string below -json = "{}" -# create an instance of EmbeddedWalletSetUpStatus from a JSON string -embedded_wallet_set_up_status_instance = EmbeddedWalletSetUpStatus.from_json(json) -# print the JSON string representation of the object -print(EmbeddedWalletSetUpStatus.to_json()) - -# convert the object into a dict -embedded_wallet_set_up_status_dict = embedded_wallet_set_up_status_instance.to_dict() -# create an instance of EmbeddedWalletSetUpStatus from a dict -embedded_wallet_set_up_status_from_dict = EmbeddedWalletSetUpStatus.from_dict(embedded_wallet_set_up_status_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFbWJlZGRlZFdhbGxldFNldFVwU3RhdHVzCgplbWJlZGRlZCB3YWxsZXQgc2V0dXAgc3RhdHVzCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3RhdHVzKiogfCAqKnN0cioqIHwgc3RhdHVzIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfc2V0X3VwX3N0YXR1cyBpbXBvcnQgRW1iZWRkZWRXYWxsZXRTZXRVcFN0YXR1cwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRW1iZWRkZWRXYWxsZXRTZXRVcFN0YXR1cyBmcm9tIGEgSlNPTiBzdHJpbmcKZW1iZWRkZWRfd2FsbGV0X3NldF91cF9zdGF0dXNfaW5zdGFuY2UgPSBFbWJlZGRlZFdhbGxldFNldFVwU3RhdHVzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEVtYmVkZGVkV2FsbGV0U2V0VXBTdGF0dXMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZW1iZWRkZWRfd2FsbGV0X3NldF91cF9zdGF0dXNfZGljdCA9IGVtYmVkZGVkX3dhbGxldF9zZXRfdXBfc3RhdHVzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldFNldFVwU3RhdHVzIGZyb20gYSBkaWN0CmVtYmVkZGVkX3dhbGxldF9zZXRfdXBfc3RhdHVzX2Zyb21fZGljdCA9IEVtYmVkZGVkV2FsbGV0U2V0VXBTdGF0dXMuZnJvbV9kaWN0KGVtYmVkZGVkX3dhbGxldF9zZXRfdXBfc3RhdHVzX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/EmbeddedWalletSetupStatusResponse.md b/docs/EmbeddedWalletSetupStatusResponse.md index 696dd9a3..ca39dc3e 100644 --- a/docs/EmbeddedWalletSetupStatusResponse.md +++ b/docs/EmbeddedWalletSetupStatusResponse.md @@ -1,31 +1 @@ -# EmbeddedWalletSetupStatusResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status** | [**EmbeddedWalletSetUpStatus**](EmbeddedWalletSetUpStatus.md) | | -**required_algorithms** | [**List[EmbeddedWalletRequiredAlgorithms]**](EmbeddedWalletRequiredAlgorithms.md) | Required algorithms for the wallet | -**device_setup_status** | [**List[EmbeddedWalletDeviceKeySetupResponse]**](EmbeddedWalletDeviceKeySetupResponse.md) | Setup status for each device | - -## Example - -```python -from fireblocks.models.embedded_wallet_setup_status_response import EmbeddedWalletSetupStatusResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of EmbeddedWalletSetupStatusResponse from a JSON string -embedded_wallet_setup_status_response_instance = EmbeddedWalletSetupStatusResponse.from_json(json) -# print the JSON string representation of the object -print(EmbeddedWalletSetupStatusResponse.to_json()) - -# convert the object into a dict -embedded_wallet_setup_status_response_dict = embedded_wallet_setup_status_response_instance.to_dict() -# create an instance of EmbeddedWalletSetupStatusResponse from a dict -embedded_wallet_setup_status_response_from_dict = EmbeddedWalletSetupStatusResponse.from_dict(embedded_wallet_setup_status_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFbWJlZGRlZFdhbGxldFNldHVwU3RhdHVzUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3RhdHVzKiogfCBbKipFbWJlZGRlZFdhbGxldFNldFVwU3RhdHVzKipdKEVtYmVkZGVkV2FsbGV0U2V0VXBTdGF0dXMubWQpIHwgIHwgCioqcmVxdWlyZWRfYWxnb3JpdGhtcyoqIHwgWyoqTGlzdFtFbWJlZGRlZFdhbGxldFJlcXVpcmVkQWxnb3JpdGhtc10qKl0oRW1iZWRkZWRXYWxsZXRSZXF1aXJlZEFsZ29yaXRobXMubWQpIHwgUmVxdWlyZWQgYWxnb3JpdGhtcyBmb3IgdGhlIHdhbGxldCB8IAoqKmRldmljZV9zZXR1cF9zdGF0dXMqKiB8IFsqKkxpc3RbRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlXSoqXShFbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2UubWQpIHwgU2V0dXAgc3RhdHVzIGZvciBlYWNoIGRldmljZSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X3NldHVwX3N0YXR1c19yZXNwb25zZSBpbXBvcnQgRW1iZWRkZWRXYWxsZXRTZXR1cFN0YXR1c1Jlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldFNldHVwU3RhdHVzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmVtYmVkZGVkX3dhbGxldF9zZXR1cF9zdGF0dXNfcmVzcG9uc2VfaW5zdGFuY2UgPSBFbWJlZGRlZFdhbGxldFNldHVwU3RhdHVzUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRW1iZWRkZWRXYWxsZXRTZXR1cFN0YXR1c1Jlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmVtYmVkZGVkX3dhbGxldF9zZXR1cF9zdGF0dXNfcmVzcG9uc2VfZGljdCA9IGVtYmVkZGVkX3dhbGxldF9zZXR1cF9zdGF0dXNfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0U2V0dXBTdGF0dXNSZXNwb25zZSBmcm9tIGEgZGljdAplbWJlZGRlZF93YWxsZXRfc2V0dXBfc3RhdHVzX3Jlc3BvbnNlX2Zyb21fZGljdCA9IEVtYmVkZGVkV2FsbGV0U2V0dXBTdGF0dXNSZXNwb25zZS5mcm9tX2RpY3QoZW1iZWRkZWRfd2FsbGV0X3NldHVwX3N0YXR1c19yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/EmbeddedWalletsApi.md b/docs/EmbeddedWalletsApi.md index 0d9c88b3..06733c46 100644 --- a/docs/EmbeddedWalletsApi.md +++ b/docs/EmbeddedWalletsApi.md @@ -1,1757 +1 @@ -# fireblocks.EmbeddedWalletsApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**add_embedded_wallet_asset**](EmbeddedWalletsApi.md#add_embedded_wallet_asset) | **POST** /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId} | Add asset to account -[**assign_embedded_wallet**](EmbeddedWalletsApi.md#assign_embedded_wallet) | **POST** /ncw/wallets/{walletId}/assign | Assign a wallet -[**create_embedded_wallet**](EmbeddedWalletsApi.md#create_embedded_wallet) | **POST** /ncw/wallets | Create a new wallet -[**create_embedded_wallet_account**](EmbeddedWalletsApi.md#create_embedded_wallet_account) | **POST** /ncw/wallets/{walletId}/accounts | Create a new account -[**get_embedded_wallet**](EmbeddedWalletsApi.md#get_embedded_wallet) | **GET** /ncw/wallets/{walletId} | Get a wallet -[**get_embedded_wallet_account**](EmbeddedWalletsApi.md#get_embedded_wallet_account) | **GET** /ncw/wallets/{walletId}/accounts/{accountId} | Get a account -[**get_embedded_wallet_addresses**](EmbeddedWalletsApi.md#get_embedded_wallet_addresses) | **GET** /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}/addresses | Retrieve asset addresses -[**get_embedded_wallet_asset**](EmbeddedWalletsApi.md#get_embedded_wallet_asset) | **GET** /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId} | Retrieve asset -[**get_embedded_wallet_asset_balance**](EmbeddedWalletsApi.md#get_embedded_wallet_asset_balance) | **GET** /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}/balance | Retrieve asset balance -[**get_embedded_wallet_assets**](EmbeddedWalletsApi.md#get_embedded_wallet_assets) | **GET** /ncw/wallets/{walletId}/accounts/{accountId}/assets | Retrieve assets -[**get_embedded_wallet_device**](EmbeddedWalletsApi.md#get_embedded_wallet_device) | **GET** /ncw/wallets/{walletId}/devices/{deviceId} | Get Embedded Wallet Device -[**get_embedded_wallet_device_setup_state**](EmbeddedWalletsApi.md#get_embedded_wallet_device_setup_state) | **GET** /ncw/wallets/{walletId}/devices/{deviceId}/setup_status | Get device key setup state -[**get_embedded_wallet_devices_paginated**](EmbeddedWalletsApi.md#get_embedded_wallet_devices_paginated) | **GET** /ncw/wallets/{walletId}/devices_paginated | Get registered devices - paginated -[**get_embedded_wallet_latest_backup**](EmbeddedWalletsApi.md#get_embedded_wallet_latest_backup) | **GET** /ncw/wallets/{walletId}/backup/latest | Get wallet Latest Backup details -[**get_embedded_wallet_public_key_info_for_address**](EmbeddedWalletsApi.md#get_embedded_wallet_public_key_info_for_address) | **GET** /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}/{change}/{addressIndex}/public_key_info | Get the public key of an asset -[**get_embedded_wallet_setup_status**](EmbeddedWalletsApi.md#get_embedded_wallet_setup_status) | **GET** /ncw/wallets/{walletId}/setup_status | Get wallet key setup state -[**get_embedded_wallet_supported_assets**](EmbeddedWalletsApi.md#get_embedded_wallet_supported_assets) | **GET** /ncw/wallets/supported_assets | Retrieve supported assets -[**get_embedded_wallets**](EmbeddedWalletsApi.md#get_embedded_wallets) | **GET** /ncw/wallets | List wallets -[**get_public_key_info_ncw**](EmbeddedWalletsApi.md#get_public_key_info_ncw) | **GET** /ncw/wallets/{walletId}/public_key_info | Get the public key for a derivation path -[**refresh_embedded_wallet_asset_balance**](EmbeddedWalletsApi.md#refresh_embedded_wallet_asset_balance) | **PUT** /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}/balance | Refresh asset balance -[**update_embedded_wallet_device_status**](EmbeddedWalletsApi.md#update_embedded_wallet_device_status) | **PATCH** /ncw/wallets/{walletId}/devices/{deviceId}/status | Update device status -[**update_embedded_wallet_status**](EmbeddedWalletsApi.md#update_embedded_wallet_status) | **PATCH** /ncw/wallets/{walletId}/status | Update wallet status - - -# **add_embedded_wallet_asset** -> EmbeddedWalletAddressDetails add_embedded_wallet_asset(wallet_id, account_id, asset_id, idempotency_key=idempotency_key) - -Add asset to account - -Get the addresses of a specific asset, under a specific account, under a specific Non Custodial Wallet - -### Example - - -```python -from fireblocks.models.embedded_wallet_address_details import EmbeddedWalletAddressDetails -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = '550e8400-e29b-41d4-a716-446655440000' # str | Wallet Id - account_id = '0' # str | The ID of the account - asset_id = 'BTC' # str | The ID of the asset - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Add asset to account - api_response = fireblocks.embedded_wallets.add_embedded_wallet_asset(wallet_id, account_id, asset_id, idempotency_key=idempotency_key).result() - print("The response of EmbeddedWalletsApi->add_embedded_wallet_asset:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->add_embedded_wallet_asset: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| Wallet Id | - **account_id** | **str**| The ID of the account | - **asset_id** | **str**| The ID of the asset | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**EmbeddedWalletAddressDetails**](EmbeddedWalletAddressDetails.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Created | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **assign_embedded_wallet** -> EmbeddedWallet assign_embedded_wallet(wallet_id, idempotency_key=idempotency_key) - -Assign a wallet - -Assign a specific Non Custodial Wallet to a user - -### Example - - -```python -from fireblocks.models.embedded_wallet import EmbeddedWallet -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = '550e8400-e29b-41d4-a716-446655440000' # str | Wallet Id - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Assign a wallet - api_response = fireblocks.embedded_wallets.assign_embedded_wallet(wallet_id, idempotency_key=idempotency_key).result() - print("The response of EmbeddedWalletsApi->assign_embedded_wallet:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->assign_embedded_wallet: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| Wallet Id | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**EmbeddedWallet**](EmbeddedWallet.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Wallet Assigned | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_embedded_wallet** -> EmbeddedWallet create_embedded_wallet(idempotency_key=idempotency_key) - -Create a new wallet - -Create new Non Custodial Wallet - -### Example - - -```python -from fireblocks.models.embedded_wallet import EmbeddedWallet -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Create a new wallet - api_response = fireblocks.embedded_wallets.create_embedded_wallet(idempotency_key=idempotency_key).result() - print("The response of EmbeddedWalletsApi->create_embedded_wallet:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->create_embedded_wallet: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**EmbeddedWallet**](EmbeddedWallet.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Wallet created successfully | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_embedded_wallet_account** -> EmbeddedWalletAccount create_embedded_wallet_account(wallet_id, idempotency_key=idempotency_key) - -Create a new account - -Create a new account under a specific Non Custodial Wallet - -### Example - - -```python -from fireblocks.models.embedded_wallet_account import EmbeddedWalletAccount -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = '550e8400-e29b-41d4-a716-446655440000' # str | Wallet Id - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Create a new account - api_response = fireblocks.embedded_wallets.create_embedded_wallet_account(wallet_id, idempotency_key=idempotency_key).result() - print("The response of EmbeddedWalletsApi->create_embedded_wallet_account:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->create_embedded_wallet_account: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| Wallet Id | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**EmbeddedWalletAccount**](EmbeddedWalletAccount.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Account Created | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_embedded_wallet** -> EmbeddedWallet get_embedded_wallet(wallet_id) - -Get a wallet - -Get a wallet - -### Example - - -```python -from fireblocks.models.embedded_wallet import EmbeddedWallet -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = '550e8400-e29b-41d4-a716-446655440000' # str | Wallet Id - - try: - # Get a wallet - api_response = fireblocks.embedded_wallets.get_embedded_wallet(wallet_id).result() - print("The response of EmbeddedWalletsApi->get_embedded_wallet:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->get_embedded_wallet: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| Wallet Id | - -### Return type - -[**EmbeddedWallet**](EmbeddedWallet.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successful response | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_embedded_wallet_account** -> EmbeddedWalletAccount get_embedded_wallet_account(wallet_id, account_id) - -Get a account - -Get a specific account under a specific Non Custodial Wallet - -### Example - - -```python -from fireblocks.models.embedded_wallet_account import EmbeddedWalletAccount -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = '550e8400-e29b-41d4-a716-446655440000' # str | WalletId - account_id = '0' # str | The ID of the account - - try: - # Get a account - api_response = fireblocks.embedded_wallets.get_embedded_wallet_account(wallet_id, account_id).result() - print("The response of EmbeddedWalletsApi->get_embedded_wallet_account:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->get_embedded_wallet_account: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| WalletId | - **account_id** | **str**| The ID of the account | - -### Return type - -[**EmbeddedWalletAccount**](EmbeddedWalletAccount.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successful response | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_embedded_wallet_addresses** -> EmbeddedWalletPaginatedAddressesResponse get_embedded_wallet_addresses(wallet_id, account_id, asset_id, page_cursor=page_cursor, page_size=page_size, sort=sort, order=order, enabled=enabled) - -Retrieve asset addresses - -Get the addresses of a specific asset, under a specific account, under a specific Non Custodial Wallet - -### Example - - -```python -from fireblocks.models.embedded_wallet_paginated_addresses_response import EmbeddedWalletPaginatedAddressesResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = '550e8400-e29b-41d4-a716-446655440000' # str | Wallet Id - account_id = '0' # str | The ID of the account - asset_id = 'BTC' # str | The ID of the asset - page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Cursor to the next page (optional) - page_size = 10 # float | Items per page (optional) - sort = createdAt # str | Sort by address (optional) (default to createdAt) - order = ASC # str | Is the order ascending or descending (optional) (default to ASC) - enabled = true # bool | Enabled (optional) - - try: - # Retrieve asset addresses - api_response = fireblocks.embedded_wallets.get_embedded_wallet_addresses(wallet_id, account_id, asset_id, page_cursor=page_cursor, page_size=page_size, sort=sort, order=order, enabled=enabled).result() - print("The response of EmbeddedWalletsApi->get_embedded_wallet_addresses:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->get_embedded_wallet_addresses: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| Wallet Id | - **account_id** | **str**| The ID of the account | - **asset_id** | **str**| The ID of the asset | - **page_cursor** | **str**| Cursor to the next page | [optional] - **page_size** | **float**| Items per page | [optional] - **sort** | **str**| Sort by address | [optional] [default to createdAt] - **order** | **str**| Is the order ascending or descending | [optional] [default to ASC] - **enabled** | **bool**| Enabled | [optional] - -### Return type - -[**EmbeddedWalletPaginatedAddressesResponse**](EmbeddedWalletPaginatedAddressesResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successful response | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_embedded_wallet_asset** -> EmbeddedWalletAssetResponse get_embedded_wallet_asset(wallet_id, account_id, asset_id) - -Retrieve asset - -Get asset under a specific account, under a specific Non Custodial Wallet - -### Example - - -```python -from fireblocks.models.embedded_wallet_asset_response import EmbeddedWalletAssetResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = '550e8400-e29b-41d4-a716-446655440000' # str | Wallet Id - account_id = '0' # str | The ID of the account - asset_id = 'BTC' # str | The ID of the asset - - try: - # Retrieve asset - api_response = fireblocks.embedded_wallets.get_embedded_wallet_asset(wallet_id, account_id, asset_id).result() - print("The response of EmbeddedWalletsApi->get_embedded_wallet_asset:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->get_embedded_wallet_asset: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| Wallet Id | - **account_id** | **str**| The ID of the account | - **asset_id** | **str**| The ID of the asset | - -### Return type - -[**EmbeddedWalletAssetResponse**](EmbeddedWalletAssetResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successful response | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_embedded_wallet_asset_balance** -> EmbeddedWalletAssetBalance get_embedded_wallet_asset_balance(wallet_id, account_id, asset_id) - -Retrieve asset balance - -Get balance for specific asset, under a specific account - -### Example - - -```python -from fireblocks.models.embedded_wallet_asset_balance import EmbeddedWalletAssetBalance -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = '550e8400-e29b-41d4-a716-446655440000' # str | Wallet Id - account_id = '0' # str | The ID of the account - asset_id = 'BTC' # str | The ID of the asset - - try: - # Retrieve asset balance - api_response = fireblocks.embedded_wallets.get_embedded_wallet_asset_balance(wallet_id, account_id, asset_id).result() - print("The response of EmbeddedWalletsApi->get_embedded_wallet_asset_balance:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->get_embedded_wallet_asset_balance: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| Wallet Id | - **account_id** | **str**| The ID of the account | - **asset_id** | **str**| The ID of the asset | - -### Return type - -[**EmbeddedWalletAssetBalance**](EmbeddedWalletAssetBalance.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successful response | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_embedded_wallet_assets** -> EmbeddedWalletPaginatedAssetsResponse get_embedded_wallet_assets(wallet_id, account_id, sort=sort, page_cursor=page_cursor, page_size=page_size, order=order) - -Retrieve assets - -Retrieve assets for a specific account under a specific Non Custodial Wallet - -### Example - - -```python -from fireblocks.models.embedded_wallet_paginated_assets_response import EmbeddedWalletPaginatedAssetsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = '550e8400-e29b-41d4-a716-446655440000' # str | Wallet Id - account_id = '0' # str | The ID of the account - sort = ["assetId"] # List[str] | Sort by fields (optional) (default to ["assetId"]) - page_cursor = 'page_cursor_example' # str | Cursor to the next page (optional) - page_size = 200 # float | Amount of results to return in the next page (optional) (default to 200) - order = ASC # str | Is the order ascending or descending (optional) (default to ASC) - - try: - # Retrieve assets - api_response = fireblocks.embedded_wallets.get_embedded_wallet_assets(wallet_id, account_id, sort=sort, page_cursor=page_cursor, page_size=page_size, order=order).result() - print("The response of EmbeddedWalletsApi->get_embedded_wallet_assets:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->get_embedded_wallet_assets: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| Wallet Id | - **account_id** | **str**| The ID of the account | - **sort** | [**List[str]**](str.md)| Sort by fields | [optional] [default to ["assetId"]] - **page_cursor** | **str**| Cursor to the next page | [optional] - **page_size** | **float**| Amount of results to return in the next page | [optional] [default to 200] - **order** | **str**| Is the order ascending or descending | [optional] [default to ASC] - -### Return type - -[**EmbeddedWalletPaginatedAssetsResponse**](EmbeddedWalletPaginatedAssetsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successful response | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_embedded_wallet_device** -> EmbeddedWalletDevice get_embedded_wallet_device(wallet_id, device_id) - -Get Embedded Wallet Device - -Get specific device for a specific s Wallet - -### Example - - -```python -from fireblocks.models.embedded_wallet_device import EmbeddedWalletDevice -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = '550e8400-e29b-41d4-a716-446655440000' # str | Wallet Id - device_id = '9ee1bff0-6dba-4f0c-9b75-03fe90e66fa3' # str | Device Id - - try: - # Get Embedded Wallet Device - api_response = fireblocks.embedded_wallets.get_embedded_wallet_device(wallet_id, device_id).result() - print("The response of EmbeddedWalletsApi->get_embedded_wallet_device:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->get_embedded_wallet_device: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| Wallet Id | - **device_id** | **str**| Device Id | - -### Return type - -[**EmbeddedWalletDevice**](EmbeddedWalletDevice.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successful response | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_embedded_wallet_device_setup_state** -> EmbeddedWalletDeviceKeySetupResponse get_embedded_wallet_device_setup_state(wallet_id, device_id) - -Get device key setup state - -Get the state of the specific device setup key under a specific Non Custodial Wallet - -### Example - - -```python -from fireblocks.models.embedded_wallet_device_key_setup_response import EmbeddedWalletDeviceKeySetupResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = '550e8400-e29b-41d4-a716-446655440000' # str | Wallet Id - device_id = '9ee1bff0-6dba-4f0c-9b75-03fe90e66fa3' # str | Device Id - - try: - # Get device key setup state - api_response = fireblocks.embedded_wallets.get_embedded_wallet_device_setup_state(wallet_id, device_id).result() - print("The response of EmbeddedWalletsApi->get_embedded_wallet_device_setup_state:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->get_embedded_wallet_device_setup_state: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| Wallet Id | - **device_id** | **str**| Device Id | - -### Return type - -[**EmbeddedWalletDeviceKeySetupResponse**](EmbeddedWalletDeviceKeySetupResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successful response | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_embedded_wallet_devices_paginated** -> EmbeddedWalletPaginatedDevicesResponse get_embedded_wallet_devices_paginated(wallet_id, sort=sort, page_cursor=page_cursor, page_size=page_size, order=order) - -Get registered devices - paginated - -Get a paginated list of registered devices for a specific Non Custodial Wallet - -### Example - - -```python -from fireblocks.models.embedded_wallet_paginated_devices_response import EmbeddedWalletPaginatedDevicesResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = '550e8400-e29b-41d4-a716-446655440000' # str | Wallet Id - sort = ["createdAt"] # List[str] | Sort by fields (optional) (default to ["createdAt"]) - page_cursor = 'page_cursor_example' # str | Cursor to the next page (optional) - page_size = 200 # float | Amount of results to return in the next page (optional) (default to 200) - order = ASC # str | Is the order ascending or descending (optional) (default to ASC) - - try: - # Get registered devices - paginated - api_response = fireblocks.embedded_wallets.get_embedded_wallet_devices_paginated(wallet_id, sort=sort, page_cursor=page_cursor, page_size=page_size, order=order).result() - print("The response of EmbeddedWalletsApi->get_embedded_wallet_devices_paginated:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->get_embedded_wallet_devices_paginated: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| Wallet Id | - **sort** | [**List[str]**](str.md)| Sort by fields | [optional] [default to ["createdAt"]] - **page_cursor** | **str**| Cursor to the next page | [optional] - **page_size** | **float**| Amount of results to return in the next page | [optional] [default to 200] - **order** | **str**| Is the order ascending or descending | [optional] [default to ASC] - -### Return type - -[**EmbeddedWalletPaginatedDevicesResponse**](EmbeddedWalletPaginatedDevicesResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successful response | * X-Request-ID -
| -**400** | Query parameters were invalid | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_embedded_wallet_latest_backup** -> EmbeddedWalletLatestBackupResponse get_embedded_wallet_latest_backup(wallet_id) - -Get wallet Latest Backup details - -Get wallet Latest Backup details, including the deviceId, and backup time - -### Example - - -```python -from fireblocks.models.embedded_wallet_latest_backup_response import EmbeddedWalletLatestBackupResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = '550e8400-e29b-41d4-a716-446655440000' # str | Wallet Id - - try: - # Get wallet Latest Backup details - api_response = fireblocks.embedded_wallets.get_embedded_wallet_latest_backup(wallet_id).result() - print("The response of EmbeddedWalletsApi->get_embedded_wallet_latest_backup:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->get_embedded_wallet_latest_backup: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| Wallet Id | - -### Return type - -[**EmbeddedWalletLatestBackupResponse**](EmbeddedWalletLatestBackupResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successful response | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_embedded_wallet_public_key_info_for_address** -> PublicKeyInformation get_embedded_wallet_public_key_info_for_address(x_end_user_wallet_id, wallet_id, account_id, asset_id, change, address_index, compressed=compressed) - -Get the public key of an asset - -Gets the public key of an asset associated with a specific account within a Non-Custodial Wallet - -### Example - - -```python -from fireblocks.models.public_key_information import PublicKeyInformation -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - x_end_user_wallet_id = 'x_end_user_wallet_id_example' # str | Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. - wallet_id = '550e8400-e29b-41d4-a716-446655440000' # str | The ID of the Non-Custodial wallet - account_id = '0' # str | The ID of the account - asset_id = 'BTC' # str | The ID of the asset - change = 0 # float | BIP44 derivation path - change value - address_index = 0 # float | BIP44 derivation path - index value - compressed = true # bool | Compressed/Uncompressed public key format (optional) - - try: - # Get the public key of an asset - api_response = fireblocks.embedded_wallets.get_embedded_wallet_public_key_info_for_address(x_end_user_wallet_id, wallet_id, account_id, asset_id, change, address_index, compressed=compressed).result() - print("The response of EmbeddedWalletsApi->get_embedded_wallet_public_key_info_for_address:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->get_embedded_wallet_public_key_info_for_address: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **x_end_user_wallet_id** | **str**| Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. | - **wallet_id** | **str**| The ID of the Non-Custodial wallet | - **account_id** | **str**| The ID of the account | - **asset_id** | **str**| The ID of the asset | - **change** | **float**| BIP44 derivation path - change value | - **address_index** | **float**| BIP44 derivation path - index value | - **compressed** | **bool**| Compressed/Uncompressed public key format | [optional] - -### Return type - -[**PublicKeyInformation**](PublicKeyInformation.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Public Key Information | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_embedded_wallet_setup_status** -> EmbeddedWalletSetupStatusResponse get_embedded_wallet_setup_status(wallet_id) - -Get wallet key setup state - -Get the key setup state for a specific Non Custodial Wallet, including required algorithms and device setup status - -### Example - - -```python -from fireblocks.models.embedded_wallet_setup_status_response import EmbeddedWalletSetupStatusResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = '550e8400-e29b-41d4-a716-446655440000' # str | Wallet Id - - try: - # Get wallet key setup state - api_response = fireblocks.embedded_wallets.get_embedded_wallet_setup_status(wallet_id).result() - print("The response of EmbeddedWalletsApi->get_embedded_wallet_setup_status:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->get_embedded_wallet_setup_status: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| Wallet Id | - -### Return type - -[**EmbeddedWalletSetupStatusResponse**](EmbeddedWalletSetupStatusResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successful response | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_embedded_wallet_supported_assets** -> EmbeddedWalletPaginatedAssetsResponse get_embedded_wallet_supported_assets(page_cursor=page_cursor, page_size=page_size, only_base_assets=only_base_assets) - -Retrieve supported assets - -Get all the available supported assets for the Non-Custodial Wallet - -### Example - - -```python -from fireblocks.models.embedded_wallet_paginated_assets_response import EmbeddedWalletPaginatedAssetsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Next page cursor to fetch (optional) - page_size = 200 # float | Items per page (optional) (default to 200) - only_base_assets = true # bool | Only base assets (optional) - - try: - # Retrieve supported assets - api_response = fireblocks.embedded_wallets.get_embedded_wallet_supported_assets(page_cursor=page_cursor, page_size=page_size, only_base_assets=only_base_assets).result() - print("The response of EmbeddedWalletsApi->get_embedded_wallet_supported_assets:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->get_embedded_wallet_supported_assets: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **page_cursor** | **str**| Next page cursor to fetch | [optional] - **page_size** | **float**| Items per page | [optional] [default to 200] - **only_base_assets** | **bool**| Only base assets | [optional] - -### Return type - -[**EmbeddedWalletPaginatedAssetsResponse**](EmbeddedWalletPaginatedAssetsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successful response | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_embedded_wallets** -> EmbeddedWalletPaginatedWalletsResponse get_embedded_wallets(page_cursor=page_cursor, page_size=page_size, sort=sort, order=order, enabled=enabled) - -List wallets - -Get all Non Custodial Wallets - -### Example - - -```python -from fireblocks.models.embedded_wallet_paginated_wallets_response import EmbeddedWalletPaginatedWalletsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Next page cursor to fetch (optional) - page_size = 200 # float | Items per page (optional) (default to 200) - sort = createdAt # str | Field(s) to use for sorting (optional) (default to createdAt) - order = ASC # str | Is the order ascending or descending (optional) (default to ASC) - enabled = true # bool | Enabled Wallets (optional) - - try: - # List wallets - api_response = fireblocks.embedded_wallets.get_embedded_wallets(page_cursor=page_cursor, page_size=page_size, sort=sort, order=order, enabled=enabled).result() - print("The response of EmbeddedWalletsApi->get_embedded_wallets:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->get_embedded_wallets: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **page_cursor** | **str**| Next page cursor to fetch | [optional] - **page_size** | **float**| Items per page | [optional] [default to 200] - **sort** | **str**| Field(s) to use for sorting | [optional] [default to createdAt] - **order** | **str**| Is the order ascending or descending | [optional] [default to ASC] - **enabled** | **bool**| Enabled Wallets | [optional] - -### Return type - -[**EmbeddedWalletPaginatedWalletsResponse**](EmbeddedWalletPaginatedWalletsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successful response | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_public_key_info_ncw** -> PublicKeyInformation get_public_key_info_ncw(x_end_user_wallet_id, wallet_id, derivation_path, algorithm, compressed=compressed) - -Get the public key for a derivation path - -Gets the public key information based on derivation path and signing algorithm within a Non-Custodial Wallet - -### Example - - -```python -from fireblocks.models.public_key_information import PublicKeyInformation -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - x_end_user_wallet_id = 'x_end_user_wallet_id_example' # str | Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. - wallet_id = '550e8400-e29b-41d4-a716-446655440000' # str | The ID of the Non-Custodial wallet - derivation_path = '[44,0,0,0,0]' # str | An array of integers (passed as JSON stringified array) representing the full BIP44 derivation path of the requested public key. The first element must always be 44. - algorithm = 'MPC_EDDSA_ED25519' # str | Elliptic Curve - compressed = true # bool | Compressed/Uncompressed public key format (optional) - - try: - # Get the public key for a derivation path - api_response = fireblocks.embedded_wallets.get_public_key_info_ncw(x_end_user_wallet_id, wallet_id, derivation_path, algorithm, compressed=compressed).result() - print("The response of EmbeddedWalletsApi->get_public_key_info_ncw:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->get_public_key_info_ncw: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **x_end_user_wallet_id** | **str**| Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. | - **wallet_id** | **str**| The ID of the Non-Custodial wallet | - **derivation_path** | **str**| An array of integers (passed as JSON stringified array) representing the full BIP44 derivation path of the requested public key. The first element must always be 44. | - **algorithm** | **str**| Elliptic Curve | - **compressed** | **bool**| Compressed/Uncompressed public key format | [optional] - -### Return type - -[**PublicKeyInformation**](PublicKeyInformation.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Public key information | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **refresh_embedded_wallet_asset_balance** -> EmbeddedWalletAssetBalance refresh_embedded_wallet_asset_balance(wallet_id, account_id, asset_id, idempotency_key=idempotency_key) - -Refresh asset balance - -Refresh the balance of an asset in a specific account - -### Example - - -```python -from fireblocks.models.embedded_wallet_asset_balance import EmbeddedWalletAssetBalance -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = '550e8400-e29b-41d4-a716-446655440000' # str | Wallet Id - account_id = '0' # str | The ID of the account - asset_id = 'BTC' # str | The ID of the asset - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Refresh asset balance - api_response = fireblocks.embedded_wallets.refresh_embedded_wallet_asset_balance(wallet_id, account_id, asset_id, idempotency_key=idempotency_key).result() - print("The response of EmbeddedWalletsApi->refresh_embedded_wallet_asset_balance:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->refresh_embedded_wallet_asset_balance: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| Wallet Id | - **account_id** | **str**| The ID of the account | - **asset_id** | **str**| The ID of the asset | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**EmbeddedWalletAssetBalance**](EmbeddedWalletAssetBalance.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successful response | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_embedded_wallet_device_status** -> update_embedded_wallet_device_status(wallet_id, device_id, enable_device, idempotency_key=idempotency_key) - -Update device status - -Update the enabled/disabled status of a specific device for a Non Custodial Wallet - -### Example - - -```python -from fireblocks.models.enable_device import EnableDevice -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = '550e8400-e29b-41d4-a716-446655440000' # str | Wallet Id - device_id = '9ee1bff0-6dba-4f0c-9b75-03fe90e66fa3' # str | Device Id - enable_device = fireblocks.EnableDevice() # EnableDevice | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Update device status - fireblocks.embedded_wallets.update_embedded_wallet_device_status(wallet_id, device_id, enable_device, idempotency_key=idempotency_key).result() - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->update_embedded_wallet_device_status: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| Wallet Id | - **device_id** | **str**| Device Id | - **enable_device** | [**EnableDevice**](EnableDevice.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**204** | No Content - Device status updated successfully | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_embedded_wallet_status** -> update_embedded_wallet_status(wallet_id, enable_wallet, idempotency_key=idempotency_key) - -Update wallet status - -Update the enabled/disabled status of a specific Non Custodial Wallet - -### Example - - -```python -from fireblocks.models.enable_wallet import EnableWallet -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = '550e8400-e29b-41d4-a716-446655440000' # str | Wallet Id - enable_wallet = fireblocks.EnableWallet() # EnableWallet | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Update wallet status - fireblocks.embedded_wallets.update_embedded_wallet_status(wallet_id, enable_wallet, idempotency_key=idempotency_key).result() - except Exception as e: - print("Exception when calling EmbeddedWalletsApi->update_embedded_wallet_status: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| Wallet Id | - **enable_wallet** | [**EnableWallet**](EnableWallet.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**204** | No Content - Wallet status updated successfully | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLkVtYmVkZGVkV2FsbGV0c0FwaQoKQWxsIFVSSXMgYXJlIHJlbGF0aXZlIHRvICpodHRwczovL2FwaS5maXJlYmxvY2tzLmlvL3YxKgoKTWV0aG9kIHwgSFRUUCByZXF1ZXN0IHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tClsqKmFkZF9lbWJlZGRlZF93YWxsZXRfYXNzZXQqKl0oRW1iZWRkZWRXYWxsZXRzQXBpLm1kI2FkZF9lbWJlZGRlZF93YWxsZXRfYXNzZXQpIHwgKipQT1NUKiogL25jdy93YWxsZXRzL3t3YWxsZXRJZH0vYWNjb3VudHMve2FjY291bnRJZH0vYXNzZXRzL3thc3NldElkfSB8IEFkZCBhc3NldCB0byBhY2NvdW50ClsqKmFzc2lnbl9lbWJlZGRlZF93YWxsZXQqKl0oRW1iZWRkZWRXYWxsZXRzQXBpLm1kI2Fzc2lnbl9lbWJlZGRlZF93YWxsZXQpIHwgKipQT1NUKiogL25jdy93YWxsZXRzL3t3YWxsZXRJZH0vYXNzaWduIHwgQXNzaWduIGEgd2FsbGV0ClsqKmNyZWF0ZV9lbWJlZGRlZF93YWxsZXQqKl0oRW1iZWRkZWRXYWxsZXRzQXBpLm1kI2NyZWF0ZV9lbWJlZGRlZF93YWxsZXQpIHwgKipQT1NUKiogL25jdy93YWxsZXRzIHwgQ3JlYXRlIGEgbmV3IHdhbGxldApbKipjcmVhdGVfZW1iZWRkZWRfd2FsbGV0X2FjY291bnQqKl0oRW1iZWRkZWRXYWxsZXRzQXBpLm1kI2NyZWF0ZV9lbWJlZGRlZF93YWxsZXRfYWNjb3VudCkgfCAqKlBPU1QqKiAvbmN3L3dhbGxldHMve3dhbGxldElkfS9hY2NvdW50cyB8IENyZWF0ZSBhIG5ldyBhY2NvdW50ClsqKmdldF9lbWJlZGRlZF93YWxsZXQqKl0oRW1iZWRkZWRXYWxsZXRzQXBpLm1kI2dldF9lbWJlZGRlZF93YWxsZXQpIHwgKipHRVQqKiAvbmN3L3dhbGxldHMve3dhbGxldElkfSB8IEdldCBhIHdhbGxldApbKipnZXRfZW1iZWRkZWRfd2FsbGV0X2FjY291bnQqKl0oRW1iZWRkZWRXYWxsZXRzQXBpLm1kI2dldF9lbWJlZGRlZF93YWxsZXRfYWNjb3VudCkgfCAqKkdFVCoqIC9uY3cvd2FsbGV0cy97d2FsbGV0SWR9L2FjY291bnRzL3thY2NvdW50SWR9IHwgR2V0IGEgYWNjb3VudApbKipnZXRfZW1iZWRkZWRfd2FsbGV0X2FkZHJlc3NlcyoqXShFbWJlZGRlZFdhbGxldHNBcGkubWQjZ2V0X2VtYmVkZGVkX3dhbGxldF9hZGRyZXNzZXMpIHwgKipHRVQqKiAvbmN3L3dhbGxldHMve3dhbGxldElkfS9hY2NvdW50cy97YWNjb3VudElkfS9hc3NldHMve2Fzc2V0SWR9L2FkZHJlc3NlcyB8IFJldHJpZXZlIGFzc2V0IGFkZHJlc3NlcwpbKipnZXRfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0KipdKEVtYmVkZGVkV2FsbGV0c0FwaS5tZCNnZXRfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0KSB8ICoqR0VUKiogL25jdy93YWxsZXRzL3t3YWxsZXRJZH0vYWNjb3VudHMve2FjY291bnRJZH0vYXNzZXRzL3thc3NldElkfSB8IFJldHJpZXZlIGFzc2V0ClsqKmdldF9lbWJlZGRlZF93YWxsZXRfYXNzZXRfYmFsYW5jZSoqXShFbWJlZGRlZFdhbGxldHNBcGkubWQjZ2V0X2VtYmVkZGVkX3dhbGxldF9hc3NldF9iYWxhbmNlKSB8ICoqR0VUKiogL25jdy93YWxsZXRzL3t3YWxsZXRJZH0vYWNjb3VudHMve2FjY291bnRJZH0vYXNzZXRzL3thc3NldElkfS9iYWxhbmNlIHwgUmV0cmlldmUgYXNzZXQgYmFsYW5jZQpbKipnZXRfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0cyoqXShFbWJlZGRlZFdhbGxldHNBcGkubWQjZ2V0X2VtYmVkZGVkX3dhbGxldF9hc3NldHMpIHwgKipHRVQqKiAvbmN3L3dhbGxldHMve3dhbGxldElkfS9hY2NvdW50cy97YWNjb3VudElkfS9hc3NldHMgfCBSZXRyaWV2ZSBhc3NldHMKWyoqZ2V0X2VtYmVkZGVkX3dhbGxldF9kZXZpY2UqKl0oRW1iZWRkZWRXYWxsZXRzQXBpLm1kI2dldF9lbWJlZGRlZF93YWxsZXRfZGV2aWNlKSB8ICoqR0VUKiogL25jdy93YWxsZXRzL3t3YWxsZXRJZH0vZGV2aWNlcy97ZGV2aWNlSWR9IHwgR2V0IEVtYmVkZGVkIFdhbGxldCBEZXZpY2UKWyoqZ2V0X2VtYmVkZGVkX3dhbGxldF9kZXZpY2Vfc2V0dXBfc3RhdGUqKl0oRW1iZWRkZWRXYWxsZXRzQXBpLm1kI2dldF9lbWJlZGRlZF93YWxsZXRfZGV2aWNlX3NldHVwX3N0YXRlKSB8ICoqR0VUKiogL25jdy93YWxsZXRzL3t3YWxsZXRJZH0vZGV2aWNlcy97ZGV2aWNlSWR9L3NldHVwX3N0YXR1cyB8IEdldCBkZXZpY2Uga2V5IHNldHVwIHN0YXRlClsqKmdldF9lbWJlZGRlZF93YWxsZXRfZGV2aWNlc19wYWdpbmF0ZWQqKl0oRW1iZWRkZWRXYWxsZXRzQXBpLm1kI2dldF9lbWJlZGRlZF93YWxsZXRfZGV2aWNlc19wYWdpbmF0ZWQpIHwgKipHRVQqKiAvbmN3L3dhbGxldHMve3dhbGxldElkfS9kZXZpY2VzX3BhZ2luYXRlZCB8IEdldCByZWdpc3RlcmVkIGRldmljZXMgLSBwYWdpbmF0ZWQKWyoqZ2V0X2VtYmVkZGVkX3dhbGxldF9sYXRlc3RfYmFja3VwKipdKEVtYmVkZGVkV2FsbGV0c0FwaS5tZCNnZXRfZW1iZWRkZWRfd2FsbGV0X2xhdGVzdF9iYWNrdXApIHwgKipHRVQqKiAvbmN3L3dhbGxldHMve3dhbGxldElkfS9iYWNrdXAvbGF0ZXN0IHwgR2V0IHdhbGxldCBMYXRlc3QgQmFja3VwIGRldGFpbHMKWyoqZ2V0X2VtYmVkZGVkX3dhbGxldF9wdWJsaWNfa2V5X2luZm9fZm9yX2FkZHJlc3MqKl0oRW1iZWRkZWRXYWxsZXRzQXBpLm1kI2dldF9lbWJlZGRlZF93YWxsZXRfcHVibGljX2tleV9pbmZvX2Zvcl9hZGRyZXNzKSB8ICoqR0VUKiogL25jdy93YWxsZXRzL3t3YWxsZXRJZH0vYWNjb3VudHMve2FjY291bnRJZH0vYXNzZXRzL3thc3NldElkfS97Y2hhbmdlfS97YWRkcmVzc0luZGV4fS9wdWJsaWNfa2V5X2luZm8gfCBHZXQgdGhlIHB1YmxpYyBrZXkgb2YgYW4gYXNzZXQKWyoqZ2V0X2VtYmVkZGVkX3dhbGxldF9zZXR1cF9zdGF0dXMqKl0oRW1iZWRkZWRXYWxsZXRzQXBpLm1kI2dldF9lbWJlZGRlZF93YWxsZXRfc2V0dXBfc3RhdHVzKSB8ICoqR0VUKiogL25jdy93YWxsZXRzL3t3YWxsZXRJZH0vc2V0dXBfc3RhdHVzIHwgR2V0IHdhbGxldCBrZXkgc2V0dXAgc3RhdGUKWyoqZ2V0X2VtYmVkZGVkX3dhbGxldF9zdXBwb3J0ZWRfYXNzZXRzKipdKEVtYmVkZGVkV2FsbGV0c0FwaS5tZCNnZXRfZW1iZWRkZWRfd2FsbGV0X3N1cHBvcnRlZF9hc3NldHMpIHwgKipHRVQqKiAvbmN3L3dhbGxldHMvc3VwcG9ydGVkX2Fzc2V0cyB8IFJldHJpZXZlIHN1cHBvcnRlZCBhc3NldHMKWyoqZ2V0X2VtYmVkZGVkX3dhbGxldHMqKl0oRW1iZWRkZWRXYWxsZXRzQXBpLm1kI2dldF9lbWJlZGRlZF93YWxsZXRzKSB8ICoqR0VUKiogL25jdy93YWxsZXRzIHwgTGlzdCB3YWxsZXRzClsqKmdldF9wdWJsaWNfa2V5X2luZm9fbmN3KipdKEVtYmVkZGVkV2FsbGV0c0FwaS5tZCNnZXRfcHVibGljX2tleV9pbmZvX25jdykgfCAqKkdFVCoqIC9uY3cvd2FsbGV0cy97d2FsbGV0SWR9L3B1YmxpY19rZXlfaW5mbyB8IEdldCB0aGUgcHVibGljIGtleSBmb3IgYSBkZXJpdmF0aW9uIHBhdGgKWyoqcmVmcmVzaF9lbWJlZGRlZF93YWxsZXRfYXNzZXRfYmFsYW5jZSoqXShFbWJlZGRlZFdhbGxldHNBcGkubWQjcmVmcmVzaF9lbWJlZGRlZF93YWxsZXRfYXNzZXRfYmFsYW5jZSkgfCAqKlBVVCoqIC9uY3cvd2FsbGV0cy97d2FsbGV0SWR9L2FjY291bnRzL3thY2NvdW50SWR9L2Fzc2V0cy97YXNzZXRJZH0vYmFsYW5jZSB8IFJlZnJlc2ggYXNzZXQgYmFsYW5jZQpbKip1cGRhdGVfZW1iZWRkZWRfd2FsbGV0X2RldmljZV9zdGF0dXMqKl0oRW1iZWRkZWRXYWxsZXRzQXBpLm1kI3VwZGF0ZV9lbWJlZGRlZF93YWxsZXRfZGV2aWNlX3N0YXR1cykgfCAqKlBBVENIKiogL25jdy93YWxsZXRzL3t3YWxsZXRJZH0vZGV2aWNlcy97ZGV2aWNlSWR9L3N0YXR1cyB8IFVwZGF0ZSBkZXZpY2Ugc3RhdHVzClsqKnVwZGF0ZV9lbWJlZGRlZF93YWxsZXRfc3RhdHVzKipdKEVtYmVkZGVkV2FsbGV0c0FwaS5tZCN1cGRhdGVfZW1iZWRkZWRfd2FsbGV0X3N0YXR1cykgfCAqKlBBVENIKiogL25jdy93YWxsZXRzL3t3YWxsZXRJZH0vc3RhdHVzIHwgVXBkYXRlIHdhbGxldCBzdGF0dXMKCgojICoqYWRkX2VtYmVkZGVkX3dhbGxldF9hc3NldCoqCj4gRW1iZWRkZWRXYWxsZXRBZGRyZXNzRGV0YWlscyBhZGRfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0KHdhbGxldF9pZCwgYWNjb3VudF9pZCwgYXNzZXRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpBZGQgYXNzZXQgdG8gYWNjb3VudAoKR2V0IHRoZSBhZGRyZXNzZXMgb2YgYSBzcGVjaWZpYyBhc3NldCwgdW5kZXIgYSBzcGVjaWZpYyBhY2NvdW50LCB1bmRlciBhIHNwZWNpZmljIE5vbiBDdXN0b2RpYWwgV2FsbGV0CgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9hZGRyZXNzX2RldGFpbHMgaW1wb3J0IEVtYmVkZGVkV2FsbGV0QWRkcmVzc0RldGFpbHMKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgd2FsbGV0X2lkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCcgIyBzdHIgfCBXYWxsZXQgSWQKICAgIGFjY291bnRfaWQgPSAnMCcgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGFjY291bnQKICAgIGFzc2V0X2lkID0gJ0JUQycgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGFzc2V0CiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQWRkIGFzc2V0IHRvIGFjY291bnQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmVtYmVkZGVkX3dhbGxldHMuYWRkX2VtYmVkZGVkX3dhbGxldF9hc3NldCh3YWxsZXRfaWQsIGFjY291bnRfaWQsIGFzc2V0X2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgRW1iZWRkZWRXYWxsZXRzQXBpLT5hZGRfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEVtYmVkZGVkV2FsbGV0c0FwaS0+YWRkX2VtYmVkZGVkX3dhbGxldF9hc3NldDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqd2FsbGV0X2lkKiogfCAqKnN0cioqfCBXYWxsZXQgSWQgfCAKICoqYWNjb3VudF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSBhY2NvdW50IHwgCiAqKmFzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkVtYmVkZGVkV2FsbGV0QWRkcmVzc0RldGFpbHMqKl0oRW1iZWRkZWRXYWxsZXRBZGRyZXNzRGV0YWlscy5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDEqKiB8IENyZWF0ZWQgfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmFzc2lnbl9lbWJlZGRlZF93YWxsZXQqKgo+IEVtYmVkZGVkV2FsbGV0IGFzc2lnbl9lbWJlZGRlZF93YWxsZXQod2FsbGV0X2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKQXNzaWduIGEgd2FsbGV0CgpBc3NpZ24gYSBzcGVjaWZpYyBOb24gQ3VzdG9kaWFsIFdhbGxldCB0byBhIHVzZXIKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0IGltcG9ydCBFbWJlZGRlZFdhbGxldApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB3YWxsZXRfaWQgPSAnNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAwJyAjIHN0ciB8IFdhbGxldCBJZAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIEFzc2lnbiBhIHdhbGxldAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuZW1iZWRkZWRfd2FsbGV0cy5hc3NpZ25fZW1iZWRkZWRfd2FsbGV0KHdhbGxldF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEVtYmVkZGVkV2FsbGV0c0FwaS0+YXNzaWduX2VtYmVkZGVkX3dhbGxldDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBFbWJlZGRlZFdhbGxldHNBcGktPmFzc2lnbl9lbWJlZGRlZF93YWxsZXQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKndhbGxldF9pZCoqIHwgKipzdHIqKnwgV2FsbGV0IElkIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkVtYmVkZGVkV2FsbGV0KipdKEVtYmVkZGVkV2FsbGV0Lm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgV2FsbGV0IEFzc2lnbmVkIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipjcmVhdGVfZW1iZWRkZWRfd2FsbGV0KioKPiBFbWJlZGRlZFdhbGxldCBjcmVhdGVfZW1iZWRkZWRfd2FsbGV0KGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpDcmVhdGUgYSBuZXcgd2FsbGV0CgpDcmVhdGUgbmV3IE5vbiBDdXN0b2RpYWwgV2FsbGV0CgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldCBpbXBvcnQgRW1iZWRkZWRXYWxsZXQKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIENyZWF0ZSBhIG5ldyB3YWxsZXQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmVtYmVkZGVkX3dhbGxldHMuY3JlYXRlX2VtYmVkZGVkX3dhbGxldChpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgRW1iZWRkZWRXYWxsZXRzQXBpLT5jcmVhdGVfZW1iZWRkZWRfd2FsbGV0OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEVtYmVkZGVkV2FsbGV0c0FwaS0+Y3JlYXRlX2VtYmVkZGVkX3dhbGxldDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqRW1iZWRkZWRXYWxsZXQqKl0oRW1iZWRkZWRXYWxsZXQubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBXYWxsZXQgY3JlYXRlZCBzdWNjZXNzZnVsbHkgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmNyZWF0ZV9lbWJlZGRlZF93YWxsZXRfYWNjb3VudCoqCj4gRW1iZWRkZWRXYWxsZXRBY2NvdW50IGNyZWF0ZV9lbWJlZGRlZF93YWxsZXRfYWNjb3VudCh3YWxsZXRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpDcmVhdGUgYSBuZXcgYWNjb3VudAoKQ3JlYXRlIGEgbmV3IGFjY291bnQgdW5kZXIgYSBzcGVjaWZpYyBOb24gQ3VzdG9kaWFsIFdhbGxldAoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfYWNjb3VudCBpbXBvcnQgRW1iZWRkZWRXYWxsZXRBY2NvdW50CmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHdhbGxldF9pZCA9ICc1NTBlODQwMC1lMjliLTQxZDQtYTcxNi00NDY2NTU0NDAwMDAnICMgc3RyIHwgV2FsbGV0IElkCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ3JlYXRlIGEgbmV3IGFjY291bnQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmVtYmVkZGVkX3dhbGxldHMuY3JlYXRlX2VtYmVkZGVkX3dhbGxldF9hY2NvdW50KHdhbGxldF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEVtYmVkZGVkV2FsbGV0c0FwaS0+Y3JlYXRlX2VtYmVkZGVkX3dhbGxldF9hY2NvdW50OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEVtYmVkZGVkV2FsbGV0c0FwaS0+Y3JlYXRlX2VtYmVkZGVkX3dhbGxldF9hY2NvdW50OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip3YWxsZXRfaWQqKiB8ICoqc3RyKip8IFdhbGxldCBJZCB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipFbWJlZGRlZFdhbGxldEFjY291bnQqKl0oRW1iZWRkZWRXYWxsZXRBY2NvdW50Lm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgQWNjb3VudCBDcmVhdGVkIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfZW1iZWRkZWRfd2FsbGV0KioKPiBFbWJlZGRlZFdhbGxldCBnZXRfZW1iZWRkZWRfd2FsbGV0KHdhbGxldF9pZCkKCkdldCBhIHdhbGxldAoKR2V0IGEgd2FsbGV0CgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldCBpbXBvcnQgRW1iZWRkZWRXYWxsZXQKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgd2FsbGV0X2lkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCcgIyBzdHIgfCBXYWxsZXQgSWQKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgYSB3YWxsZXQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmVtYmVkZGVkX3dhbGxldHMuZ2V0X2VtYmVkZGVkX3dhbGxldCh3YWxsZXRfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBFbWJlZGRlZFdhbGxldHNBcGktPmdldF9lbWJlZGRlZF93YWxsZXQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgRW1iZWRkZWRXYWxsZXRzQXBpLT5nZXRfZW1iZWRkZWRfd2FsbGV0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip3YWxsZXRfaWQqKiB8ICoqc3RyKip8IFdhbGxldCBJZCB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipFbWJlZGRlZFdhbGxldCoqXShFbWJlZGRlZFdhbGxldC5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFN1Y2Nlc3NmdWwgcmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9lbWJlZGRlZF93YWxsZXRfYWNjb3VudCoqCj4gRW1iZWRkZWRXYWxsZXRBY2NvdW50IGdldF9lbWJlZGRlZF93YWxsZXRfYWNjb3VudCh3YWxsZXRfaWQsIGFjY291bnRfaWQpCgpHZXQgYSBhY2NvdW50CgpHZXQgYSBzcGVjaWZpYyBhY2NvdW50IHVuZGVyIGEgc3BlY2lmaWMgTm9uIEN1c3RvZGlhbCBXYWxsZXQKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X2FjY291bnQgaW1wb3J0IEVtYmVkZGVkV2FsbGV0QWNjb3VudApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB3YWxsZXRfaWQgPSAnNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAwJyAjIHN0ciB8IFdhbGxldElkCiAgICBhY2NvdW50X2lkID0gJzAnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBhY2NvdW50CgogICAgdHJ5OgogICAgICAgICMgR2V0IGEgYWNjb3VudAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuZW1iZWRkZWRfd2FsbGV0cy5nZXRfZW1iZWRkZWRfd2FsbGV0X2FjY291bnQod2FsbGV0X2lkLCBhY2NvdW50X2lkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgRW1iZWRkZWRXYWxsZXRzQXBpLT5nZXRfZW1iZWRkZWRfd2FsbGV0X2FjY291bnQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgRW1iZWRkZWRXYWxsZXRzQXBpLT5nZXRfZW1iZWRkZWRfd2FsbGV0X2FjY291bnQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKndhbGxldF9pZCoqIHwgKipzdHIqKnwgV2FsbGV0SWQgfCAKICoqYWNjb3VudF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSBhY2NvdW50IHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKkVtYmVkZGVkV2FsbGV0QWNjb3VudCoqXShFbWJlZGRlZFdhbGxldEFjY291bnQubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTdWNjZXNzZnVsIHJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfZW1iZWRkZWRfd2FsbGV0X2FkZHJlc3NlcyoqCj4gRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBZGRyZXNzZXNSZXNwb25zZSBnZXRfZW1iZWRkZWRfd2FsbGV0X2FkZHJlc3Nlcyh3YWxsZXRfaWQsIGFjY291bnRfaWQsIGFzc2V0X2lkLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwgc29ydD1zb3J0LCBvcmRlcj1vcmRlciwgZW5hYmxlZD1lbmFibGVkKQoKUmV0cmlldmUgYXNzZXQgYWRkcmVzc2VzCgpHZXQgdGhlIGFkZHJlc3NlcyBvZiBhIHNwZWNpZmljIGFzc2V0LCB1bmRlciBhIHNwZWNpZmljIGFjY291bnQsIHVuZGVyIGEgc3BlY2lmaWMgTm9uIEN1c3RvZGlhbCBXYWxsZXQKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X3BhZ2luYXRlZF9hZGRyZXNzZXNfcmVzcG9uc2UgaW1wb3J0IEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkQWRkcmVzc2VzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgd2FsbGV0X2lkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCcgIyBzdHIgfCBXYWxsZXQgSWQKICAgIGFjY291bnRfaWQgPSAnMCcgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGFjY291bnQKICAgIGFzc2V0X2lkID0gJ0JUQycgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGFzc2V0CiAgICBwYWdlX2N1cnNvciA9ICdNakF5TXkweE1pMHhNeUF5TURvek5qb3dPQzR6TURJPTpNVEV3TUE9PScgIyBzdHIgfCBDdXJzb3IgdG8gdGhlIG5leHQgcGFnZSAob3B0aW9uYWwpCiAgICBwYWdlX3NpemUgPSAxMCAjIGZsb2F0IHwgSXRlbXMgcGVyIHBhZ2UgKG9wdGlvbmFsKQogICAgc29ydCA9IGNyZWF0ZWRBdCAjIHN0ciB8IFNvcnQgYnkgYWRkcmVzcyAob3B0aW9uYWwpIChkZWZhdWx0IHRvIGNyZWF0ZWRBdCkKICAgIG9yZGVyID0gQVNDICMgc3RyIHwgSXMgdGhlIG9yZGVyIGFzY2VuZGluZyBvciBkZXNjZW5kaW5nIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gQVNDKQogICAgZW5hYmxlZCA9IHRydWUgIyBib29sIHwgRW5hYmxlZCAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgUmV0cmlldmUgYXNzZXQgYWRkcmVzc2VzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5lbWJlZGRlZF93YWxsZXRzLmdldF9lbWJlZGRlZF93YWxsZXRfYWRkcmVzc2VzKHdhbGxldF9pZCwgYWNjb3VudF9pZCwgYXNzZXRfaWQsIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplLCBzb3J0PXNvcnQsIG9yZGVyPW9yZGVyLCBlbmFibGVkPWVuYWJsZWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBFbWJlZGRlZFdhbGxldHNBcGktPmdldF9lbWJlZGRlZF93YWxsZXRfYWRkcmVzc2VzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEVtYmVkZGVkV2FsbGV0c0FwaS0+Z2V0X2VtYmVkZGVkX3dhbGxldF9hZGRyZXNzZXM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKndhbGxldF9pZCoqIHwgKipzdHIqKnwgV2FsbGV0IElkIHwgCiAqKmFjY291bnRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgYWNjb3VudCB8IAogKiphc3NldF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSBhc3NldCB8IAogKipwYWdlX2N1cnNvcioqIHwgKipzdHIqKnwgQ3Vyc29yIHRvIHRoZSBuZXh0IHBhZ2UgfCBbb3B0aW9uYWxdIAogKipwYWdlX3NpemUqKiB8ICoqZmxvYXQqKnwgSXRlbXMgcGVyIHBhZ2UgfCBbb3B0aW9uYWxdIAogKipzb3J0KiogfCAqKnN0cioqfCBTb3J0IGJ5IGFkZHJlc3MgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIGNyZWF0ZWRBdF0KICoqb3JkZXIqKiB8ICoqc3RyKip8IElzIHRoZSBvcmRlciBhc2NlbmRpbmcgb3IgZGVzY2VuZGluZyB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gQVNDXQogKiplbmFibGVkKiogfCAqKmJvb2wqKnwgRW5hYmxlZCB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkQWRkcmVzc2VzUmVzcG9uc2UqKl0oRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBZGRyZXNzZXNSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFN1Y2Nlc3NmdWwgcmVzcG9uc2UgfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9lbWJlZGRlZF93YWxsZXRfYXNzZXQqKgo+IEVtYmVkZGVkV2FsbGV0QXNzZXRSZXNwb25zZSBnZXRfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0KHdhbGxldF9pZCwgYWNjb3VudF9pZCwgYXNzZXRfaWQpCgpSZXRyaWV2ZSBhc3NldAoKR2V0IGFzc2V0IHVuZGVyIGEgc3BlY2lmaWMgYWNjb3VudCwgdW5kZXIgYSBzcGVjaWZpYyBOb24gQ3VzdG9kaWFsIFdhbGxldAoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfYXNzZXRfcmVzcG9uc2UgaW1wb3J0IEVtYmVkZGVkV2FsbGV0QXNzZXRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB3YWxsZXRfaWQgPSAnNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAwJyAjIHN0ciB8IFdhbGxldCBJZAogICAgYWNjb3VudF9pZCA9ICcwJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgYWNjb3VudAogICAgYXNzZXRfaWQgPSAnQlRDJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgYXNzZXQKCiAgICB0cnk6CiAgICAgICAgIyBSZXRyaWV2ZSBhc3NldAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuZW1iZWRkZWRfd2FsbGV0cy5nZXRfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0KHdhbGxldF9pZCwgYWNjb3VudF9pZCwgYXNzZXRfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBFbWJlZGRlZFdhbGxldHNBcGktPmdldF9lbWJlZGRlZF93YWxsZXRfYXNzZXQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgRW1iZWRkZWRXYWxsZXRzQXBpLT5nZXRfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip3YWxsZXRfaWQqKiB8ICoqc3RyKip8IFdhbGxldCBJZCB8IAogKiphY2NvdW50X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFjY291bnQgfCAKICoqYXNzZXRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgYXNzZXQgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqRW1iZWRkZWRXYWxsZXRBc3NldFJlc3BvbnNlKipdKEVtYmVkZGVkV2FsbGV0QXNzZXRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFN1Y2Nlc3NmdWwgcmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9lbWJlZGRlZF93YWxsZXRfYXNzZXRfYmFsYW5jZSoqCj4gRW1iZWRkZWRXYWxsZXRBc3NldEJhbGFuY2UgZ2V0X2VtYmVkZGVkX3dhbGxldF9hc3NldF9iYWxhbmNlKHdhbGxldF9pZCwgYWNjb3VudF9pZCwgYXNzZXRfaWQpCgpSZXRyaWV2ZSBhc3NldCBiYWxhbmNlCgpHZXQgYmFsYW5jZSBmb3Igc3BlY2lmaWMgYXNzZXQsIHVuZGVyIGEgc3BlY2lmaWMgYWNjb3VudAoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfYXNzZXRfYmFsYW5jZSBpbXBvcnQgRW1iZWRkZWRXYWxsZXRBc3NldEJhbGFuY2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgd2FsbGV0X2lkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCcgIyBzdHIgfCBXYWxsZXQgSWQKICAgIGFjY291bnRfaWQgPSAnMCcgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGFjY291bnQKICAgIGFzc2V0X2lkID0gJ0JUQycgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGFzc2V0CgogICAgdHJ5OgogICAgICAgICMgUmV0cmlldmUgYXNzZXQgYmFsYW5jZQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuZW1iZWRkZWRfd2FsbGV0cy5nZXRfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X2JhbGFuY2Uod2FsbGV0X2lkLCBhY2NvdW50X2lkLCBhc3NldF9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEVtYmVkZGVkV2FsbGV0c0FwaS0+Z2V0X2VtYmVkZGVkX3dhbGxldF9hc3NldF9iYWxhbmNlOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEVtYmVkZGVkV2FsbGV0c0FwaS0+Z2V0X2VtYmVkZGVkX3dhbGxldF9hc3NldF9iYWxhbmNlOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip3YWxsZXRfaWQqKiB8ICoqc3RyKip8IFdhbGxldCBJZCB8IAogKiphY2NvdW50X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFjY291bnQgfCAKICoqYXNzZXRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgYXNzZXQgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqRW1iZWRkZWRXYWxsZXRBc3NldEJhbGFuY2UqKl0oRW1iZWRkZWRXYWxsZXRBc3NldEJhbGFuY2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTdWNjZXNzZnVsIHJlc3BvbnNlIHwgIC0gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0cyoqCj4gRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBc3NldHNSZXNwb25zZSBnZXRfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0cyh3YWxsZXRfaWQsIGFjY291bnRfaWQsIHNvcnQ9c29ydCwgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsIG9yZGVyPW9yZGVyKQoKUmV0cmlldmUgYXNzZXRzCgpSZXRyaWV2ZSBhc3NldHMgZm9yIGEgc3BlY2lmaWMgYWNjb3VudCB1bmRlciBhIHNwZWNpZmljIE5vbiBDdXN0b2RpYWwgV2FsbGV0CgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9wYWdpbmF0ZWRfYXNzZXRzX3Jlc3BvbnNlIGltcG9ydCBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHdhbGxldF9pZCA9ICc1NTBlODQwMC1lMjliLTQxZDQtYTcxNi00NDY2NTU0NDAwMDAnICMgc3RyIHwgV2FsbGV0IElkCiAgICBhY2NvdW50X2lkID0gJzAnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBhY2NvdW50CiAgICBzb3J0ID0gWyJhc3NldElkIl0gIyBMaXN0W3N0cl0gfCBTb3J0IGJ5IGZpZWxkcyAob3B0aW9uYWwpIChkZWZhdWx0IHRvIFsiYXNzZXRJZCJdKQogICAgcGFnZV9jdXJzb3IgPSAncGFnZV9jdXJzb3JfZXhhbXBsZScgIyBzdHIgfCBDdXJzb3IgdG8gdGhlIG5leHQgcGFnZSAob3B0aW9uYWwpCiAgICBwYWdlX3NpemUgPSAyMDAgIyBmbG9hdCB8IEFtb3VudCBvZiByZXN1bHRzIHRvIHJldHVybiBpbiB0aGUgbmV4dCBwYWdlIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gMjAwKQogICAgb3JkZXIgPSBBU0MgIyBzdHIgfCBJcyB0aGUgb3JkZXIgYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byBBU0MpCgogICAgdHJ5OgogICAgICAgICMgUmV0cmlldmUgYXNzZXRzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5lbWJlZGRlZF93YWxsZXRzLmdldF9lbWJlZGRlZF93YWxsZXRfYXNzZXRzKHdhbGxldF9pZCwgYWNjb3VudF9pZCwgc29ydD1zb3J0LCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwgb3JkZXI9b3JkZXIpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBFbWJlZGRlZFdhbGxldHNBcGktPmdldF9lbWJlZGRlZF93YWxsZXRfYXNzZXRzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEVtYmVkZGVkV2FsbGV0c0FwaS0+Z2V0X2VtYmVkZGVkX3dhbGxldF9hc3NldHM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKndhbGxldF9pZCoqIHwgKipzdHIqKnwgV2FsbGV0IElkIHwgCiAqKmFjY291bnRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgYWNjb3VudCB8IAogKipzb3J0KiogfCBbKipMaXN0W3N0cl0qKl0oc3RyLm1kKXwgU29ydCBieSBmaWVsZHMgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIFsmcXVvdDthc3NldElkJnF1b3Q7XV0KICoqcGFnZV9jdXJzb3IqKiB8ICoqc3RyKip8IEN1cnNvciB0byB0aGUgbmV4dCBwYWdlIHwgW29wdGlvbmFsXSAKICoqcGFnZV9zaXplKiogfCAqKmZsb2F0Kip8IEFtb3VudCBvZiByZXN1bHRzIHRvIHJldHVybiBpbiB0aGUgbmV4dCBwYWdlIHwgW29wdGlvbmFsXSBbZGVmYXVsdCB0byAyMDBdCiAqKm9yZGVyKiogfCAqKnN0cioqfCBJcyB0aGUgb3JkZXIgYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIEFTQ10KCiMjIyBSZXR1cm4gdHlwZQoKWyoqRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBc3NldHNSZXNwb25zZSoqXShFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgU3VjY2Vzc2Z1bCByZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2VtYmVkZGVkX3dhbGxldF9kZXZpY2UqKgo+IEVtYmVkZGVkV2FsbGV0RGV2aWNlIGdldF9lbWJlZGRlZF93YWxsZXRfZGV2aWNlKHdhbGxldF9pZCwgZGV2aWNlX2lkKQoKR2V0IEVtYmVkZGVkIFdhbGxldCBEZXZpY2UKCkdldCBzcGVjaWZpYyBkZXZpY2UgZm9yIGEgc3BlY2lmaWMgcyBXYWxsZXQKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X2RldmljZSBpbXBvcnQgRW1iZWRkZWRXYWxsZXREZXZpY2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgd2FsbGV0X2lkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCcgIyBzdHIgfCBXYWxsZXQgSWQKICAgIGRldmljZV9pZCA9ICc5ZWUxYmZmMC02ZGJhLTRmMGMtOWI3NS0wM2ZlOTBlNjZmYTMnICMgc3RyIHwgRGV2aWNlIElkCgogICAgdHJ5OgogICAgICAgICMgR2V0IEVtYmVkZGVkIFdhbGxldCBEZXZpY2UKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmVtYmVkZGVkX3dhbGxldHMuZ2V0X2VtYmVkZGVkX3dhbGxldF9kZXZpY2Uod2FsbGV0X2lkLCBkZXZpY2VfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBFbWJlZGRlZFdhbGxldHNBcGktPmdldF9lbWJlZGRlZF93YWxsZXRfZGV2aWNlOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEVtYmVkZGVkV2FsbGV0c0FwaS0+Z2V0X2VtYmVkZGVkX3dhbGxldF9kZXZpY2U6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKndhbGxldF9pZCoqIHwgKipzdHIqKnwgV2FsbGV0IElkIHwgCiAqKmRldmljZV9pZCoqIHwgKipzdHIqKnwgRGV2aWNlIElkIHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKkVtYmVkZGVkV2FsbGV0RGV2aWNlKipdKEVtYmVkZGVkV2FsbGV0RGV2aWNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgU3VjY2Vzc2Z1bCByZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2VtYmVkZGVkX3dhbGxldF9kZXZpY2Vfc2V0dXBfc3RhdGUqKgo+IEVtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZSBnZXRfZW1iZWRkZWRfd2FsbGV0X2RldmljZV9zZXR1cF9zdGF0ZSh3YWxsZXRfaWQsIGRldmljZV9pZCkKCkdldCBkZXZpY2Uga2V5IHNldHVwIHN0YXRlCgpHZXQgdGhlIHN0YXRlIG9mIHRoZSBzcGVjaWZpYyBkZXZpY2Ugc2V0dXAga2V5IHVuZGVyIGEgc3BlY2lmaWMgTm9uIEN1c3RvZGlhbCBXYWxsZXQKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X2RldmljZV9rZXlfc2V0dXBfcmVzcG9uc2UgaW1wb3J0IEVtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB3YWxsZXRfaWQgPSAnNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAwJyAjIHN0ciB8IFdhbGxldCBJZAogICAgZGV2aWNlX2lkID0gJzllZTFiZmYwLTZkYmEtNGYwYy05Yjc1LTAzZmU5MGU2NmZhMycgIyBzdHIgfCBEZXZpY2UgSWQKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgZGV2aWNlIGtleSBzZXR1cCBzdGF0ZQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuZW1iZWRkZWRfd2FsbGV0cy5nZXRfZW1iZWRkZWRfd2FsbGV0X2RldmljZV9zZXR1cF9zdGF0ZSh3YWxsZXRfaWQsIGRldmljZV9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEVtYmVkZGVkV2FsbGV0c0FwaS0+Z2V0X2VtYmVkZGVkX3dhbGxldF9kZXZpY2Vfc2V0dXBfc3RhdGU6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgRW1iZWRkZWRXYWxsZXRzQXBpLT5nZXRfZW1iZWRkZWRfd2FsbGV0X2RldmljZV9zZXR1cF9zdGF0ZTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqd2FsbGV0X2lkKiogfCAqKnN0cioqfCBXYWxsZXQgSWQgfCAKICoqZGV2aWNlX2lkKiogfCAqKnN0cioqfCBEZXZpY2UgSWQgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlKipdKEVtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFN1Y2Nlc3NmdWwgcmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9lbWJlZGRlZF93YWxsZXRfZGV2aWNlc19wYWdpbmF0ZWQqKgo+IEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkRGV2aWNlc1Jlc3BvbnNlIGdldF9lbWJlZGRlZF93YWxsZXRfZGV2aWNlc19wYWdpbmF0ZWQod2FsbGV0X2lkLCBzb3J0PXNvcnQsIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplLCBvcmRlcj1vcmRlcikKCkdldCByZWdpc3RlcmVkIGRldmljZXMgLSBwYWdpbmF0ZWQKCkdldCBhIHBhZ2luYXRlZCBsaXN0IG9mIHJlZ2lzdGVyZWQgZGV2aWNlcyBmb3IgYSBzcGVjaWZpYyBOb24gQ3VzdG9kaWFsIFdhbGxldAoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfcGFnaW5hdGVkX2RldmljZXNfcmVzcG9uc2UgaW1wb3J0IEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkRGV2aWNlc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHdhbGxldF9pZCA9ICc1NTBlODQwMC1lMjliLTQxZDQtYTcxNi00NDY2NTU0NDAwMDAnICMgc3RyIHwgV2FsbGV0IElkCiAgICBzb3J0ID0gWyJjcmVhdGVkQXQiXSAjIExpc3Rbc3RyXSB8IFNvcnQgYnkgZmllbGRzIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gWyJjcmVhdGVkQXQiXSkKICAgIHBhZ2VfY3Vyc29yID0gJ3BhZ2VfY3Vyc29yX2V4YW1wbGUnICMgc3RyIHwgQ3Vyc29yIHRvIHRoZSBuZXh0IHBhZ2UgKG9wdGlvbmFsKQogICAgcGFnZV9zaXplID0gMjAwICMgZmxvYXQgfCBBbW91bnQgb2YgcmVzdWx0cyB0byByZXR1cm4gaW4gdGhlIG5leHQgcGFnZSAob3B0aW9uYWwpIChkZWZhdWx0IHRvIDIwMCkKICAgIG9yZGVyID0gQVNDICMgc3RyIHwgSXMgdGhlIG9yZGVyIGFzY2VuZGluZyBvciBkZXNjZW5kaW5nIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gQVNDKQoKICAgIHRyeToKICAgICAgICAjIEdldCByZWdpc3RlcmVkIGRldmljZXMgLSBwYWdpbmF0ZWQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmVtYmVkZGVkX3dhbGxldHMuZ2V0X2VtYmVkZGVkX3dhbGxldF9kZXZpY2VzX3BhZ2luYXRlZCh3YWxsZXRfaWQsIHNvcnQ9c29ydCwgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsIG9yZGVyPW9yZGVyKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgRW1iZWRkZWRXYWxsZXRzQXBpLT5nZXRfZW1iZWRkZWRfd2FsbGV0X2RldmljZXNfcGFnaW5hdGVkOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEVtYmVkZGVkV2FsbGV0c0FwaS0+Z2V0X2VtYmVkZGVkX3dhbGxldF9kZXZpY2VzX3BhZ2luYXRlZDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqd2FsbGV0X2lkKiogfCAqKnN0cioqfCBXYWxsZXQgSWQgfCAKICoqc29ydCoqIHwgWyoqTGlzdFtzdHJdKipdKHN0ci5tZCl8IFNvcnQgYnkgZmllbGRzIHwgW29wdGlvbmFsXSBbZGVmYXVsdCB0byBbJnF1b3Q7Y3JlYXRlZEF0JnF1b3Q7XV0KICoqcGFnZV9jdXJzb3IqKiB8ICoqc3RyKip8IEN1cnNvciB0byB0aGUgbmV4dCBwYWdlIHwgW29wdGlvbmFsXSAKICoqcGFnZV9zaXplKiogfCAqKmZsb2F0Kip8IEFtb3VudCBvZiByZXN1bHRzIHRvIHJldHVybiBpbiB0aGUgbmV4dCBwYWdlIHwgW29wdGlvbmFsXSBbZGVmYXVsdCB0byAyMDBdCiAqKm9yZGVyKiogfCAqKnN0cioqfCBJcyB0aGUgb3JkZXIgYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIEFTQ10KCiMjIyBSZXR1cm4gdHlwZQoKWyoqRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWREZXZpY2VzUmVzcG9uc2UqKl0oRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWREZXZpY2VzUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTdWNjZXNzZnVsIHJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDAqKiB8IFF1ZXJ5IHBhcmFtZXRlcnMgd2VyZSBpbnZhbGlkIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfZW1iZWRkZWRfd2FsbGV0X2xhdGVzdF9iYWNrdXAqKgo+IEVtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwUmVzcG9uc2UgZ2V0X2VtYmVkZGVkX3dhbGxldF9sYXRlc3RfYmFja3VwKHdhbGxldF9pZCkKCkdldCB3YWxsZXQgTGF0ZXN0IEJhY2t1cCBkZXRhaWxzCgpHZXQgd2FsbGV0IExhdGVzdCBCYWNrdXAgZGV0YWlscywgaW5jbHVkaW5nIHRoZSBkZXZpY2VJZCwgYW5kIGJhY2t1cCB0aW1lCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9sYXRlc3RfYmFja3VwX3Jlc3BvbnNlIGltcG9ydCBFbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHdhbGxldF9pZCA9ICc1NTBlODQwMC1lMjliLTQxZDQtYTcxNi00NDY2NTU0NDAwMDAnICMgc3RyIHwgV2FsbGV0IElkCgogICAgdHJ5OgogICAgICAgICMgR2V0IHdhbGxldCBMYXRlc3QgQmFja3VwIGRldGFpbHMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmVtYmVkZGVkX3dhbGxldHMuZ2V0X2VtYmVkZGVkX3dhbGxldF9sYXRlc3RfYmFja3VwKHdhbGxldF9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEVtYmVkZGVkV2FsbGV0c0FwaS0+Z2V0X2VtYmVkZGVkX3dhbGxldF9sYXRlc3RfYmFja3VwOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEVtYmVkZGVkV2FsbGV0c0FwaS0+Z2V0X2VtYmVkZGVkX3dhbGxldF9sYXRlc3RfYmFja3VwOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip3YWxsZXRfaWQqKiB8ICoqc3RyKip8IFdhbGxldCBJZCB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipFbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cFJlc3BvbnNlKipdKEVtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTdWNjZXNzZnVsIHJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfZW1iZWRkZWRfd2FsbGV0X3B1YmxpY19rZXlfaW5mb19mb3JfYWRkcmVzcyoqCj4gUHVibGljS2V5SW5mb3JtYXRpb24gZ2V0X2VtYmVkZGVkX3dhbGxldF9wdWJsaWNfa2V5X2luZm9fZm9yX2FkZHJlc3MoeF9lbmRfdXNlcl93YWxsZXRfaWQsIHdhbGxldF9pZCwgYWNjb3VudF9pZCwgYXNzZXRfaWQsIGNoYW5nZSwgYWRkcmVzc19pbmRleCwgY29tcHJlc3NlZD1jb21wcmVzc2VkKQoKR2V0IHRoZSBwdWJsaWMga2V5IG9mIGFuIGFzc2V0CgpHZXRzIHRoZSBwdWJsaWMga2V5IG9mIGFuIGFzc2V0IGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIGFjY291bnQgd2l0aGluIGEgTm9uLUN1c3RvZGlhbCBXYWxsZXQKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucHVibGljX2tleV9pbmZvcm1hdGlvbiBpbXBvcnQgUHVibGljS2V5SW5mb3JtYXRpb24KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgeF9lbmRfdXNlcl93YWxsZXRfaWQgPSAneF9lbmRfdXNlcl93YWxsZXRfaWRfZXhhbXBsZScgIyBzdHIgfCBVbmlxdWUgSUQgb2YgdGhlIEVuZC1Vc2VyIHdhbGxldCB0byB0aGUgQVBJIHJlcXVlc3QuIFJlcXVpcmVkIGZvciBlbmQtdXNlciB3YWxsZXQgb3BlcmF0aW9ucy4KICAgIHdhbGxldF9pZCA9ICc1NTBlODQwMC1lMjliLTQxZDQtYTcxNi00NDY2NTU0NDAwMDAnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBOb24tQ3VzdG9kaWFsIHdhbGxldAogICAgYWNjb3VudF9pZCA9ICcwJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgYWNjb3VudAogICAgYXNzZXRfaWQgPSAnQlRDJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgYXNzZXQKICAgIGNoYW5nZSA9IDAgIyBmbG9hdCB8IEJJUDQ0IGRlcml2YXRpb24gcGF0aCAtIGNoYW5nZSB2YWx1ZQogICAgYWRkcmVzc19pbmRleCA9IDAgIyBmbG9hdCB8IEJJUDQ0IGRlcml2YXRpb24gcGF0aCAtIGluZGV4IHZhbHVlCiAgICBjb21wcmVzc2VkID0gdHJ1ZSAjIGJvb2wgfCBDb21wcmVzc2VkL1VuY29tcHJlc3NlZCBwdWJsaWMga2V5IGZvcm1hdCAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgR2V0IHRoZSBwdWJsaWMga2V5IG9mIGFuIGFzc2V0CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5lbWJlZGRlZF93YWxsZXRzLmdldF9lbWJlZGRlZF93YWxsZXRfcHVibGljX2tleV9pbmZvX2Zvcl9hZGRyZXNzKHhfZW5kX3VzZXJfd2FsbGV0X2lkLCB3YWxsZXRfaWQsIGFjY291bnRfaWQsIGFzc2V0X2lkLCBjaGFuZ2UsIGFkZHJlc3NfaW5kZXgsIGNvbXByZXNzZWQ9Y29tcHJlc3NlZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEVtYmVkZGVkV2FsbGV0c0FwaS0+Z2V0X2VtYmVkZGVkX3dhbGxldF9wdWJsaWNfa2V5X2luZm9fZm9yX2FkZHJlc3M6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgRW1iZWRkZWRXYWxsZXRzQXBpLT5nZXRfZW1iZWRkZWRfd2FsbGV0X3B1YmxpY19rZXlfaW5mb19mb3JfYWRkcmVzczogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqeF9lbmRfdXNlcl93YWxsZXRfaWQqKiB8ICoqc3RyKip8IFVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLiB8IAogKip3YWxsZXRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgTm9uLUN1c3RvZGlhbCB3YWxsZXQgfCAKICoqYWNjb3VudF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSBhY2NvdW50IHwgCiAqKmFzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHwgCiAqKmNoYW5nZSoqIHwgKipmbG9hdCoqfCBCSVA0NCBkZXJpdmF0aW9uIHBhdGggLSBjaGFuZ2UgdmFsdWUgfCAKICoqYWRkcmVzc19pbmRleCoqIHwgKipmbG9hdCoqfCBCSVA0NCBkZXJpdmF0aW9uIHBhdGggLSBpbmRleCB2YWx1ZSB8IAogKipjb21wcmVzc2VkKiogfCAqKmJvb2wqKnwgQ29tcHJlc3NlZC9VbmNvbXByZXNzZWQgcHVibGljIGtleSBmb3JtYXQgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipQdWJsaWNLZXlJbmZvcm1hdGlvbioqXShQdWJsaWNLZXlJbmZvcm1hdGlvbi5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFB1YmxpYyBLZXkgSW5mb3JtYXRpb24gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9lbWJlZGRlZF93YWxsZXRfc2V0dXBfc3RhdHVzKioKPiBFbWJlZGRlZFdhbGxldFNldHVwU3RhdHVzUmVzcG9uc2UgZ2V0X2VtYmVkZGVkX3dhbGxldF9zZXR1cF9zdGF0dXMod2FsbGV0X2lkKQoKR2V0IHdhbGxldCBrZXkgc2V0dXAgc3RhdGUKCkdldCB0aGUga2V5IHNldHVwIHN0YXRlIGZvciBhIHNwZWNpZmljIE5vbiBDdXN0b2RpYWwgV2FsbGV0LCBpbmNsdWRpbmcgcmVxdWlyZWQgYWxnb3JpdGhtcyBhbmQgZGV2aWNlIHNldHVwIHN0YXR1cwoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfc2V0dXBfc3RhdHVzX3Jlc3BvbnNlIGltcG9ydCBFbWJlZGRlZFdhbGxldFNldHVwU3RhdHVzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgd2FsbGV0X2lkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCcgIyBzdHIgfCBXYWxsZXQgSWQKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgd2FsbGV0IGtleSBzZXR1cCBzdGF0ZQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuZW1iZWRkZWRfd2FsbGV0cy5nZXRfZW1iZWRkZWRfd2FsbGV0X3NldHVwX3N0YXR1cyh3YWxsZXRfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBFbWJlZGRlZFdhbGxldHNBcGktPmdldF9lbWJlZGRlZF93YWxsZXRfc2V0dXBfc3RhdHVzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEVtYmVkZGVkV2FsbGV0c0FwaS0+Z2V0X2VtYmVkZGVkX3dhbGxldF9zZXR1cF9zdGF0dXM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKndhbGxldF9pZCoqIHwgKipzdHIqKnwgV2FsbGV0IElkIHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKkVtYmVkZGVkV2FsbGV0U2V0dXBTdGF0dXNSZXNwb25zZSoqXShFbWJlZGRlZFdhbGxldFNldHVwU3RhdHVzUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTdWNjZXNzZnVsIHJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfZW1iZWRkZWRfd2FsbGV0X3N1cHBvcnRlZF9hc3NldHMqKgo+IEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkQXNzZXRzUmVzcG9uc2UgZ2V0X2VtYmVkZGVkX3dhbGxldF9zdXBwb3J0ZWRfYXNzZXRzKHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplLCBvbmx5X2Jhc2VfYXNzZXRzPW9ubHlfYmFzZV9hc3NldHMpCgpSZXRyaWV2ZSBzdXBwb3J0ZWQgYXNzZXRzCgpHZXQgYWxsIHRoZSBhdmFpbGFibGUgc3VwcG9ydGVkIGFzc2V0cyBmb3IgdGhlIE5vbi1DdXN0b2RpYWwgV2FsbGV0CgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9wYWdpbmF0ZWRfYXNzZXRzX3Jlc3BvbnNlIGltcG9ydCBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHBhZ2VfY3Vyc29yID0gJ01qQXlNeTB4TWkweE15QXlNRG96Tmpvd09DNHpNREk9Ok1URXdNQT09JyAjIHN0ciB8IE5leHQgcGFnZSBjdXJzb3IgdG8gZmV0Y2ggKG9wdGlvbmFsKQogICAgcGFnZV9zaXplID0gMjAwICMgZmxvYXQgfCBJdGVtcyBwZXIgcGFnZSAob3B0aW9uYWwpIChkZWZhdWx0IHRvIDIwMCkKICAgIG9ubHlfYmFzZV9hc3NldHMgPSB0cnVlICMgYm9vbCB8IE9ubHkgYmFzZSBhc3NldHMgKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIFJldHJpZXZlIHN1cHBvcnRlZCBhc3NldHMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmVtYmVkZGVkX3dhbGxldHMuZ2V0X2VtYmVkZGVkX3dhbGxldF9zdXBwb3J0ZWRfYXNzZXRzKHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplLCBvbmx5X2Jhc2VfYXNzZXRzPW9ubHlfYmFzZV9hc3NldHMpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBFbWJlZGRlZFdhbGxldHNBcGktPmdldF9lbWJlZGRlZF93YWxsZXRfc3VwcG9ydGVkX2Fzc2V0czpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBFbWJlZGRlZFdhbGxldHNBcGktPmdldF9lbWJlZGRlZF93YWxsZXRfc3VwcG9ydGVkX2Fzc2V0czogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqcGFnZV9jdXJzb3IqKiB8ICoqc3RyKip8IE5leHQgcGFnZSBjdXJzb3IgdG8gZmV0Y2ggfCBbb3B0aW9uYWxdIAogKipwYWdlX3NpemUqKiB8ICoqZmxvYXQqKnwgSXRlbXMgcGVyIHBhZ2UgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIDIwMF0KICoqb25seV9iYXNlX2Fzc2V0cyoqIHwgKipib29sKip8IE9ubHkgYmFzZSBhc3NldHMgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlKipdKEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkQXNzZXRzUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTdWNjZXNzZnVsIHJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfZW1iZWRkZWRfd2FsbGV0cyoqCj4gRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRXYWxsZXRzUmVzcG9uc2UgZ2V0X2VtYmVkZGVkX3dhbGxldHMocGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsIHNvcnQ9c29ydCwgb3JkZXI9b3JkZXIsIGVuYWJsZWQ9ZW5hYmxlZCkKCkxpc3Qgd2FsbGV0cwoKR2V0IGFsbCBOb24gQ3VzdG9kaWFsIFdhbGxldHMKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X3BhZ2luYXRlZF93YWxsZXRzX3Jlc3BvbnNlIGltcG9ydCBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZFdhbGxldHNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBwYWdlX2N1cnNvciA9ICdNakF5TXkweE1pMHhNeUF5TURvek5qb3dPQzR6TURJPTpNVEV3TUE9PScgIyBzdHIgfCBOZXh0IHBhZ2UgY3Vyc29yIHRvIGZldGNoIChvcHRpb25hbCkKICAgIHBhZ2Vfc2l6ZSA9IDIwMCAjIGZsb2F0IHwgSXRlbXMgcGVyIHBhZ2UgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byAyMDApCiAgICBzb3J0ID0gY3JlYXRlZEF0ICMgc3RyIHwgRmllbGQocykgdG8gdXNlIGZvciBzb3J0aW5nIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gY3JlYXRlZEF0KQogICAgb3JkZXIgPSBBU0MgIyBzdHIgfCBJcyB0aGUgb3JkZXIgYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byBBU0MpCiAgICBlbmFibGVkID0gdHJ1ZSAjIGJvb2wgfCBFbmFibGVkIFdhbGxldHMgKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIExpc3Qgd2FsbGV0cwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuZW1iZWRkZWRfd2FsbGV0cy5nZXRfZW1iZWRkZWRfd2FsbGV0cyhwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwgc29ydD1zb3J0LCBvcmRlcj1vcmRlciwgZW5hYmxlZD1lbmFibGVkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgRW1iZWRkZWRXYWxsZXRzQXBpLT5nZXRfZW1iZWRkZWRfd2FsbGV0czpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBFbWJlZGRlZFdhbGxldHNBcGktPmdldF9lbWJlZGRlZF93YWxsZXRzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipwYWdlX2N1cnNvcioqIHwgKipzdHIqKnwgTmV4dCBwYWdlIGN1cnNvciB0byBmZXRjaCB8IFtvcHRpb25hbF0gCiAqKnBhZ2Vfc2l6ZSoqIHwgKipmbG9hdCoqfCBJdGVtcyBwZXIgcGFnZSB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gMjAwXQogKipzb3J0KiogfCAqKnN0cioqfCBGaWVsZChzKSB0byB1c2UgZm9yIHNvcnRpbmcgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIGNyZWF0ZWRBdF0KICoqb3JkZXIqKiB8ICoqc3RyKip8IElzIHRoZSBvcmRlciBhc2NlbmRpbmcgb3IgZGVzY2VuZGluZyB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gQVNDXQogKiplbmFibGVkKiogfCAqKmJvb2wqKnwgRW5hYmxlZCBXYWxsZXRzIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRXYWxsZXRzUmVzcG9uc2UqKl0oRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRXYWxsZXRzUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTdWNjZXNzZnVsIHJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfcHVibGljX2tleV9pbmZvX25jdyoqCj4gUHVibGljS2V5SW5mb3JtYXRpb24gZ2V0X3B1YmxpY19rZXlfaW5mb19uY3coeF9lbmRfdXNlcl93YWxsZXRfaWQsIHdhbGxldF9pZCwgZGVyaXZhdGlvbl9wYXRoLCBhbGdvcml0aG0sIGNvbXByZXNzZWQ9Y29tcHJlc3NlZCkKCkdldCB0aGUgcHVibGljIGtleSBmb3IgYSBkZXJpdmF0aW9uIHBhdGgKCkdldHMgdGhlIHB1YmxpYyBrZXkgaW5mb3JtYXRpb24gYmFzZWQgb24gZGVyaXZhdGlvbiBwYXRoIGFuZCBzaWduaW5nIGFsZ29yaXRobSB3aXRoaW4gYSBOb24tQ3VzdG9kaWFsIFdhbGxldAoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wdWJsaWNfa2V5X2luZm9ybWF0aW9uIGltcG9ydCBQdWJsaWNLZXlJbmZvcm1hdGlvbgpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB4X2VuZF91c2VyX3dhbGxldF9pZCA9ICd4X2VuZF91c2VyX3dhbGxldF9pZF9leGFtcGxlJyAjIHN0ciB8IFVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLgogICAgd2FsbGV0X2lkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCcgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIE5vbi1DdXN0b2RpYWwgd2FsbGV0CiAgICBkZXJpdmF0aW9uX3BhdGggPSAnWzQ0LDAsMCwwLDBdJyAjIHN0ciB8IEFuIGFycmF5IG9mIGludGVnZXJzIChwYXNzZWQgYXMgSlNPTiBzdHJpbmdpZmllZCBhcnJheSkgcmVwcmVzZW50aW5nIHRoZSBmdWxsIEJJUDQ0IGRlcml2YXRpb24gcGF0aCBvZiB0aGUgcmVxdWVzdGVkIHB1YmxpYyBrZXkuICBUaGUgZmlyc3QgZWxlbWVudCBtdXN0IGFsd2F5cyBiZSA0NC4gCiAgICBhbGdvcml0aG0gPSAnTVBDX0VERFNBX0VEMjU1MTknICMgc3RyIHwgRWxsaXB0aWMgQ3VydmUKICAgIGNvbXByZXNzZWQgPSB0cnVlICMgYm9vbCB8IENvbXByZXNzZWQvVW5jb21wcmVzc2VkIHB1YmxpYyBrZXkgZm9ybWF0IChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgdGhlIHB1YmxpYyBrZXkgZm9yIGEgZGVyaXZhdGlvbiBwYXRoCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5lbWJlZGRlZF93YWxsZXRzLmdldF9wdWJsaWNfa2V5X2luZm9fbmN3KHhfZW5kX3VzZXJfd2FsbGV0X2lkLCB3YWxsZXRfaWQsIGRlcml2YXRpb25fcGF0aCwgYWxnb3JpdGhtLCBjb21wcmVzc2VkPWNvbXByZXNzZWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBFbWJlZGRlZFdhbGxldHNBcGktPmdldF9wdWJsaWNfa2V5X2luZm9fbmN3OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEVtYmVkZGVkV2FsbGV0c0FwaS0+Z2V0X3B1YmxpY19rZXlfaW5mb19uY3c6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnhfZW5kX3VzZXJfd2FsbGV0X2lkKiogfCAqKnN0cioqfCBVbmlxdWUgSUQgb2YgdGhlIEVuZC1Vc2VyIHdhbGxldCB0byB0aGUgQVBJIHJlcXVlc3QuIFJlcXVpcmVkIGZvciBlbmQtdXNlciB3YWxsZXQgb3BlcmF0aW9ucy4gfCAKICoqd2FsbGV0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIE5vbi1DdXN0b2RpYWwgd2FsbGV0IHwgCiAqKmRlcml2YXRpb25fcGF0aCoqIHwgKipzdHIqKnwgQW4gYXJyYXkgb2YgaW50ZWdlcnMgKHBhc3NlZCBhcyBKU09OIHN0cmluZ2lmaWVkIGFycmF5KSByZXByZXNlbnRpbmcgdGhlIGZ1bGwgQklQNDQgZGVyaXZhdGlvbiBwYXRoIG9mIHRoZSByZXF1ZXN0ZWQgcHVibGljIGtleS4gIFRoZSBmaXJzdCBlbGVtZW50IG11c3QgYWx3YXlzIGJlIDQ0LiAgfCAKICoqYWxnb3JpdGhtKiogfCAqKnN0cioqfCBFbGxpcHRpYyBDdXJ2ZSB8IAogKipjb21wcmVzc2VkKiogfCAqKmJvb2wqKnwgQ29tcHJlc3NlZC9VbmNvbXByZXNzZWQgcHVibGljIGtleSBmb3JtYXQgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipQdWJsaWNLZXlJbmZvcm1hdGlvbioqXShQdWJsaWNLZXlJbmZvcm1hdGlvbi5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFB1YmxpYyBrZXkgaW5mb3JtYXRpb24gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnJlZnJlc2hfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X2JhbGFuY2UqKgo+IEVtYmVkZGVkV2FsbGV0QXNzZXRCYWxhbmNlIHJlZnJlc2hfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X2JhbGFuY2Uod2FsbGV0X2lkLCBhY2NvdW50X2lkLCBhc3NldF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKClJlZnJlc2ggYXNzZXQgYmFsYW5jZQoKUmVmcmVzaCB0aGUgYmFsYW5jZSBvZiBhbiBhc3NldCBpbiBhIHNwZWNpZmljIGFjY291bnQKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X2JhbGFuY2UgaW1wb3J0IEVtYmVkZGVkV2FsbGV0QXNzZXRCYWxhbmNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHdhbGxldF9pZCA9ICc1NTBlODQwMC1lMjliLTQxZDQtYTcxNi00NDY2NTU0NDAwMDAnICMgc3RyIHwgV2FsbGV0IElkCiAgICBhY2NvdW50X2lkID0gJzAnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBhY2NvdW50CiAgICBhc3NldF9pZCA9ICdCVEMnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBhc3NldAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIFJlZnJlc2ggYXNzZXQgYmFsYW5jZQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuZW1iZWRkZWRfd2FsbGV0cy5yZWZyZXNoX2VtYmVkZGVkX3dhbGxldF9hc3NldF9iYWxhbmNlKHdhbGxldF9pZCwgYWNjb3VudF9pZCwgYXNzZXRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBFbWJlZGRlZFdhbGxldHNBcGktPnJlZnJlc2hfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X2JhbGFuY2U6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgRW1iZWRkZWRXYWxsZXRzQXBpLT5yZWZyZXNoX2VtYmVkZGVkX3dhbGxldF9hc3NldF9iYWxhbmNlOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip3YWxsZXRfaWQqKiB8ICoqc3RyKip8IFdhbGxldCBJZCB8IAogKiphY2NvdW50X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFjY291bnQgfCAKICoqYXNzZXRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgYXNzZXQgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqRW1iZWRkZWRXYWxsZXRBc3NldEJhbGFuY2UqKl0oRW1iZWRkZWRXYWxsZXRBc3NldEJhbGFuY2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTdWNjZXNzZnVsIHJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKip1cGRhdGVfZW1iZWRkZWRfd2FsbGV0X2RldmljZV9zdGF0dXMqKgo+IHVwZGF0ZV9lbWJlZGRlZF93YWxsZXRfZGV2aWNlX3N0YXR1cyh3YWxsZXRfaWQsIGRldmljZV9pZCwgZW5hYmxlX2RldmljZSwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKClVwZGF0ZSBkZXZpY2Ugc3RhdHVzCgpVcGRhdGUgdGhlIGVuYWJsZWQvZGlzYWJsZWQgc3RhdHVzIG9mIGEgc3BlY2lmaWMgZGV2aWNlIGZvciBhIE5vbiBDdXN0b2RpYWwgV2FsbGV0CgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVuYWJsZV9kZXZpY2UgaW1wb3J0IEVuYWJsZURldmljZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgd2FsbGV0X2lkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCcgIyBzdHIgfCBXYWxsZXQgSWQKICAgIGRldmljZV9pZCA9ICc5ZWUxYmZmMC02ZGJhLTRmMGMtOWI3NS0wM2ZlOTBlNjZmYTMnICMgc3RyIHwgRGV2aWNlIElkCiAgICBlbmFibGVfZGV2aWNlID0gZmlyZWJsb2Nrcy5FbmFibGVEZXZpY2UoKSAjIEVuYWJsZURldmljZSB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIFVwZGF0ZSBkZXZpY2Ugc3RhdHVzCiAgICAgICAgZmlyZWJsb2Nrcy5lbWJlZGRlZF93YWxsZXRzLnVwZGF0ZV9lbWJlZGRlZF93YWxsZXRfZGV2aWNlX3N0YXR1cyh3YWxsZXRfaWQsIGRldmljZV9pZCwgZW5hYmxlX2RldmljZSwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBFbWJlZGRlZFdhbGxldHNBcGktPnVwZGF0ZV9lbWJlZGRlZF93YWxsZXRfZGV2aWNlX3N0YXR1czogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqd2FsbGV0X2lkKiogfCAqKnN0cioqfCBXYWxsZXQgSWQgfCAKICoqZGV2aWNlX2lkKiogfCAqKnN0cioqfCBEZXZpY2UgSWQgfCAKICoqZW5hYmxlX2RldmljZSoqIHwgWyoqRW5hYmxlRGV2aWNlKipdKEVuYWJsZURldmljZS5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgp2b2lkIChlbXB0eSByZXNwb25zZSBib2R5KQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjA0KiogfCBObyBDb250ZW50IC0gRGV2aWNlIHN0YXR1cyB1cGRhdGVkIHN1Y2Nlc3NmdWxseSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqdXBkYXRlX2VtYmVkZGVkX3dhbGxldF9zdGF0dXMqKgo+IHVwZGF0ZV9lbWJlZGRlZF93YWxsZXRfc3RhdHVzKHdhbGxldF9pZCwgZW5hYmxlX3dhbGxldCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKClVwZGF0ZSB3YWxsZXQgc3RhdHVzCgpVcGRhdGUgdGhlIGVuYWJsZWQvZGlzYWJsZWQgc3RhdHVzIG9mIGEgc3BlY2lmaWMgTm9uIEN1c3RvZGlhbCBXYWxsZXQKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW5hYmxlX3dhbGxldCBpbXBvcnQgRW5hYmxlV2FsbGV0CmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB3YWxsZXRfaWQgPSAnNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAwJyAjIHN0ciB8IFdhbGxldCBJZAogICAgZW5hYmxlX3dhbGxldCA9IGZpcmVibG9ja3MuRW5hYmxlV2FsbGV0KCkgIyBFbmFibGVXYWxsZXQgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBVcGRhdGUgd2FsbGV0IHN0YXR1cwogICAgICAgIGZpcmVibG9ja3MuZW1iZWRkZWRfd2FsbGV0cy51cGRhdGVfZW1iZWRkZWRfd2FsbGV0X3N0YXR1cyh3YWxsZXRfaWQsIGVuYWJsZV93YWxsZXQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgRW1iZWRkZWRXYWxsZXRzQXBpLT51cGRhdGVfZW1iZWRkZWRfd2FsbGV0X3N0YXR1czogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqd2FsbGV0X2lkKiogfCAqKnN0cioqfCBXYWxsZXQgSWQgfCAKICoqZW5hYmxlX3dhbGxldCoqIHwgWyoqRW5hYmxlV2FsbGV0KipdKEVuYWJsZVdhbGxldC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgp2b2lkIChlbXB0eSByZXNwb25zZSBib2R5KQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjA0KiogfCBObyBDb250ZW50IC0gV2FsbGV0IHN0YXR1cyB1cGRhdGVkIHN1Y2Nlc3NmdWxseSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgo= \ No newline at end of file diff --git a/docs/EnableDevice.md b/docs/EnableDevice.md index 997fc760..f61eb9fe 100644 --- a/docs/EnableDevice.md +++ b/docs/EnableDevice.md @@ -1,29 +1 @@ -# EnableDevice - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**enabled** | **bool** | Whether the device should be enabled or disabled | - -## Example - -```python -from fireblocks.models.enable_device import EnableDevice - -# TODO update the JSON string below -json = "{}" -# create an instance of EnableDevice from a JSON string -enable_device_instance = EnableDevice.from_json(json) -# print the JSON string representation of the object -print(EnableDevice.to_json()) - -# convert the object into a dict -enable_device_dict = enable_device_instance.to_dict() -# create an instance of EnableDevice from a dict -enable_device_from_dict = EnableDevice.from_dict(enable_device_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFbmFibGVEZXZpY2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZW5hYmxlZCoqIHwgKipib29sKiogfCBXaGV0aGVyIHRoZSBkZXZpY2Ugc2hvdWxkIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVuYWJsZV9kZXZpY2UgaW1wb3J0IEVuYWJsZURldmljZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRW5hYmxlRGV2aWNlIGZyb20gYSBKU09OIHN0cmluZwplbmFibGVfZGV2aWNlX2luc3RhbmNlID0gRW5hYmxlRGV2aWNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEVuYWJsZURldmljZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAplbmFibGVfZGV2aWNlX2RpY3QgPSBlbmFibGVfZGV2aWNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbmFibGVEZXZpY2UgZnJvbSBhIGRpY3QKZW5hYmxlX2RldmljZV9mcm9tX2RpY3QgPSBFbmFibGVEZXZpY2UuZnJvbV9kaWN0KGVuYWJsZV9kZXZpY2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/EnableWallet.md b/docs/EnableWallet.md index e7a9a83a..a60c161b 100644 --- a/docs/EnableWallet.md +++ b/docs/EnableWallet.md @@ -1,29 +1 @@ -# EnableWallet - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**enabled** | **bool** | Whether the wallet should be enabled or disabled | - -## Example - -```python -from fireblocks.models.enable_wallet import EnableWallet - -# TODO update the JSON string below -json = "{}" -# create an instance of EnableWallet from a JSON string -enable_wallet_instance = EnableWallet.from_json(json) -# print the JSON string representation of the object -print(EnableWallet.to_json()) - -# convert the object into a dict -enable_wallet_dict = enable_wallet_instance.to_dict() -# create an instance of EnableWallet from a dict -enable_wallet_from_dict = EnableWallet.from_dict(enable_wallet_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFbmFibGVXYWxsZXQKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZW5hYmxlZCoqIHwgKipib29sKiogfCBXaGV0aGVyIHRoZSB3YWxsZXQgc2hvdWxkIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVuYWJsZV93YWxsZXQgaW1wb3J0IEVuYWJsZVdhbGxldAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRW5hYmxlV2FsbGV0IGZyb20gYSBKU09OIHN0cmluZwplbmFibGVfd2FsbGV0X2luc3RhbmNlID0gRW5hYmxlV2FsbGV0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEVuYWJsZVdhbGxldC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAplbmFibGVfd2FsbGV0X2RpY3QgPSBlbmFibGVfd2FsbGV0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbmFibGVXYWxsZXQgZnJvbSBhIGRpY3QKZW5hYmxlX3dhbGxldF9mcm9tX2RpY3QgPSBFbmFibGVXYWxsZXQuZnJvbV9kaWN0KGVuYWJsZV93YWxsZXRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ErrorResponse.md b/docs/ErrorResponse.md index 48adacca..1b739e77 100644 --- a/docs/ErrorResponse.md +++ b/docs/ErrorResponse.md @@ -1,29 +1 @@ -# ErrorResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**error** | [**ErrorResponseError**](ErrorResponseError.md) | | - -## Example - -```python -from fireblocks.models.error_response import ErrorResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ErrorResponse from a JSON string -error_response_instance = ErrorResponse.from_json(json) -# print the JSON string representation of the object -print(ErrorResponse.to_json()) - -# convert the object into a dict -error_response_dict = error_response_instance.to_dict() -# create an instance of ErrorResponse from a dict -error_response_from_dict = ErrorResponse.from_dict(error_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFcnJvclJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmVycm9yKiogfCBbKipFcnJvclJlc3BvbnNlRXJyb3IqKl0oRXJyb3JSZXNwb25zZUVycm9yLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXJyb3JfcmVzcG9uc2UgaW1wb3J0IEVycm9yUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEVycm9yUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmVycm9yX3Jlc3BvbnNlX2luc3RhbmNlID0gRXJyb3JSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChFcnJvclJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmVycm9yX3Jlc3BvbnNlX2RpY3QgPSBlcnJvcl9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXJyb3JSZXNwb25zZSBmcm9tIGEgZGljdAplcnJvcl9yZXNwb25zZV9mcm9tX2RpY3QgPSBFcnJvclJlc3BvbnNlLmZyb21fZGljdChlcnJvcl9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ErrorResponseError.md b/docs/ErrorResponseError.md index 546b0776..6ce0fc6e 100644 --- a/docs/ErrorResponseError.md +++ b/docs/ErrorResponseError.md @@ -1,30 +1 @@ -# ErrorResponseError - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | -**message** | **str** | | - -## Example - -```python -from fireblocks.models.error_response_error import ErrorResponseError - -# TODO update the JSON string below -json = "{}" -# create an instance of ErrorResponseError from a JSON string -error_response_error_instance = ErrorResponseError.from_json(json) -# print the JSON string representation of the object -print(ErrorResponseError.to_json()) - -# convert the object into a dict -error_response_error_dict = error_response_error_instance.to_dict() -# create an instance of ErrorResponseError from a dict -error_response_error_from_dict = ErrorResponseError.from_dict(error_response_error_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFcnJvclJlc3BvbnNlRXJyb3IKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgKipzdHIqKiB8ICB8IAoqKm1lc3NhZ2UqKiB8ICoqc3RyKiogfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVycm9yX3Jlc3BvbnNlX2Vycm9yIGltcG9ydCBFcnJvclJlc3BvbnNlRXJyb3IKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEVycm9yUmVzcG9uc2VFcnJvciBmcm9tIGEgSlNPTiBzdHJpbmcKZXJyb3JfcmVzcG9uc2VfZXJyb3JfaW5zdGFuY2UgPSBFcnJvclJlc3BvbnNlRXJyb3IuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRXJyb3JSZXNwb25zZUVycm9yLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmVycm9yX3Jlc3BvbnNlX2Vycm9yX2RpY3QgPSBlcnJvcl9yZXNwb25zZV9lcnJvcl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXJyb3JSZXNwb25zZUVycm9yIGZyb20gYSBkaWN0CmVycm9yX3Jlc3BvbnNlX2Vycm9yX2Zyb21fZGljdCA9IEVycm9yUmVzcG9uc2VFcnJvci5mcm9tX2RpY3QoZXJyb3JfcmVzcG9uc2VfZXJyb3JfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ErrorSchema.md b/docs/ErrorSchema.md index b0a5af46..85b6e457 100644 --- a/docs/ErrorSchema.md +++ b/docs/ErrorSchema.md @@ -1,30 +1 @@ -# ErrorSchema - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | | [optional] -**code** | **float** | | [optional] - -## Example - -```python -from fireblocks.models.error_schema import ErrorSchema - -# TODO update the JSON string below -json = "{}" -# create an instance of ErrorSchema from a JSON string -error_schema_instance = ErrorSchema.from_json(json) -# print the JSON string representation of the object -print(ErrorSchema.to_json()) - -# convert the object into a dict -error_schema_dict = error_schema_instance.to_dict() -# create an instance of ErrorSchema from a dict -error_schema_from_dict = ErrorSchema.from_dict(error_schema_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFcnJvclNjaGVtYQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiptZXNzYWdlKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipjb2RlKiogfCAqKmZsb2F0KiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXJyb3Jfc2NoZW1hIGltcG9ydCBFcnJvclNjaGVtYQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXJyb3JTY2hlbWEgZnJvbSBhIEpTT04gc3RyaW5nCmVycm9yX3NjaGVtYV9pbnN0YW5jZSA9IEVycm9yU2NoZW1hLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEVycm9yU2NoZW1hLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmVycm9yX3NjaGVtYV9kaWN0ID0gZXJyb3Jfc2NoZW1hX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFcnJvclNjaGVtYSBmcm9tIGEgZGljdAplcnJvcl9zY2hlbWFfZnJvbV9kaWN0ID0gRXJyb3JTY2hlbWEuZnJvbV9kaWN0KGVycm9yX3NjaGVtYV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/EstimatedFeeDetails.md b/docs/EstimatedFeeDetails.md index 5aacae0c..fd641614 100644 --- a/docs/EstimatedFeeDetails.md +++ b/docs/EstimatedFeeDetails.md @@ -1,32 +1 @@ -# EstimatedFeeDetails - -Optional detailed fee breakdown for high/medium/low estimates - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**low** | [**FeeBreakdown**](FeeBreakdown.md) | | [optional] -**medium** | [**FeeBreakdown**](FeeBreakdown.md) | | [optional] -**high** | [**FeeBreakdown**](FeeBreakdown.md) | | [optional] - -## Example - -```python -from fireblocks.models.estimated_fee_details import EstimatedFeeDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of EstimatedFeeDetails from a JSON string -estimated_fee_details_instance = EstimatedFeeDetails.from_json(json) -# print the JSON string representation of the object -print(EstimatedFeeDetails.to_json()) - -# convert the object into a dict -estimated_fee_details_dict = estimated_fee_details_instance.to_dict() -# create an instance of EstimatedFeeDetails from a dict -estimated_fee_details_from_dict = EstimatedFeeDetails.from_dict(estimated_fee_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFc3RpbWF0ZWRGZWVEZXRhaWxzCgpPcHRpb25hbCBkZXRhaWxlZCBmZWUgYnJlYWtkb3duIGZvciBoaWdoL21lZGl1bS9sb3cgZXN0aW1hdGVzCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbG93KiogfCBbKipGZWVCcmVha2Rvd24qKl0oRmVlQnJlYWtkb3duLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqbWVkaXVtKiogfCBbKipGZWVCcmVha2Rvd24qKl0oRmVlQnJlYWtkb3duLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqaGlnaCoqIHwgWyoqRmVlQnJlYWtkb3duKipdKEZlZUJyZWFrZG93bi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXN0aW1hdGVkX2ZlZV9kZXRhaWxzIGltcG9ydCBFc3RpbWF0ZWRGZWVEZXRhaWxzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFc3RpbWF0ZWRGZWVEZXRhaWxzIGZyb20gYSBKU09OIHN0cmluZwplc3RpbWF0ZWRfZmVlX2RldGFpbHNfaW5zdGFuY2UgPSBFc3RpbWF0ZWRGZWVEZXRhaWxzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEVzdGltYXRlZEZlZURldGFpbHMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZXN0aW1hdGVkX2ZlZV9kZXRhaWxzX2RpY3QgPSBlc3RpbWF0ZWRfZmVlX2RldGFpbHNfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEVzdGltYXRlZEZlZURldGFpbHMgZnJvbSBhIGRpY3QKZXN0aW1hdGVkX2ZlZV9kZXRhaWxzX2Zyb21fZGljdCA9IEVzdGltYXRlZEZlZURldGFpbHMuZnJvbV9kaWN0KGVzdGltYXRlZF9mZWVfZGV0YWlsc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/EstimatedNetworkFeeResponse.md b/docs/EstimatedNetworkFeeResponse.md index e46ce1a3..9a47f384 100644 --- a/docs/EstimatedNetworkFeeResponse.md +++ b/docs/EstimatedNetworkFeeResponse.md @@ -1,31 +1 @@ -# EstimatedNetworkFeeResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**low** | [**NetworkFee**](NetworkFee.md) | | -**medium** | [**NetworkFee**](NetworkFee.md) | | -**high** | [**NetworkFee**](NetworkFee.md) | | - -## Example - -```python -from fireblocks.models.estimated_network_fee_response import EstimatedNetworkFeeResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of EstimatedNetworkFeeResponse from a JSON string -estimated_network_fee_response_instance = EstimatedNetworkFeeResponse.from_json(json) -# print the JSON string representation of the object -print(EstimatedNetworkFeeResponse.to_json()) - -# convert the object into a dict -estimated_network_fee_response_dict = estimated_network_fee_response_instance.to_dict() -# create an instance of EstimatedNetworkFeeResponse from a dict -estimated_network_fee_response_from_dict = EstimatedNetworkFeeResponse.from_dict(estimated_network_fee_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFc3RpbWF0ZWROZXR3b3JrRmVlUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbG93KiogfCBbKipOZXR3b3JrRmVlKipdKE5ldHdvcmtGZWUubWQpIHwgIHwgCioqbWVkaXVtKiogfCBbKipOZXR3b3JrRmVlKipdKE5ldHdvcmtGZWUubWQpIHwgIHwgCioqaGlnaCoqIHwgWyoqTmV0d29ya0ZlZSoqXShOZXR3b3JrRmVlLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXN0aW1hdGVkX25ldHdvcmtfZmVlX3Jlc3BvbnNlIGltcG9ydCBFc3RpbWF0ZWROZXR3b3JrRmVlUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEVzdGltYXRlZE5ldHdvcmtGZWVSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKZXN0aW1hdGVkX25ldHdvcmtfZmVlX3Jlc3BvbnNlX2luc3RhbmNlID0gRXN0aW1hdGVkTmV0d29ya0ZlZVJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEVzdGltYXRlZE5ldHdvcmtGZWVSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAplc3RpbWF0ZWRfbmV0d29ya19mZWVfcmVzcG9uc2VfZGljdCA9IGVzdGltYXRlZF9uZXR3b3JrX2ZlZV9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXN0aW1hdGVkTmV0d29ya0ZlZVJlc3BvbnNlIGZyb20gYSBkaWN0CmVzdGltYXRlZF9uZXR3b3JrX2ZlZV9yZXNwb25zZV9mcm9tX2RpY3QgPSBFc3RpbWF0ZWROZXR3b3JrRmVlUmVzcG9uc2UuZnJvbV9kaWN0KGVzdGltYXRlZF9uZXR3b3JrX2ZlZV9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/EstimatedTransactionFeeResponse.md b/docs/EstimatedTransactionFeeResponse.md index a2d10b4e..26c9f15b 100644 --- a/docs/EstimatedTransactionFeeResponse.md +++ b/docs/EstimatedTransactionFeeResponse.md @@ -1,32 +1 @@ -# EstimatedTransactionFeeResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**low** | [**TransactionFee**](TransactionFee.md) | | -**medium** | [**TransactionFee**](TransactionFee.md) | | -**high** | [**TransactionFee**](TransactionFee.md) | | -**fee_details** | [**EstimatedFeeDetails**](EstimatedFeeDetails.md) | | [optional] - -## Example - -```python -from fireblocks.models.estimated_transaction_fee_response import EstimatedTransactionFeeResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of EstimatedTransactionFeeResponse from a JSON string -estimated_transaction_fee_response_instance = EstimatedTransactionFeeResponse.from_json(json) -# print the JSON string representation of the object -print(EstimatedTransactionFeeResponse.to_json()) - -# convert the object into a dict -estimated_transaction_fee_response_dict = estimated_transaction_fee_response_instance.to_dict() -# create an instance of EstimatedTransactionFeeResponse from a dict -estimated_transaction_fee_response_from_dict = EstimatedTransactionFeeResponse.from_dict(estimated_transaction_fee_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFc3RpbWF0ZWRUcmFuc2FjdGlvbkZlZVJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmxvdyoqIHwgWyoqVHJhbnNhY3Rpb25GZWUqKl0oVHJhbnNhY3Rpb25GZWUubWQpIHwgIHwgCioqbWVkaXVtKiogfCBbKipUcmFuc2FjdGlvbkZlZSoqXShUcmFuc2FjdGlvbkZlZS5tZCkgfCAgfCAKKipoaWdoKiogfCBbKipUcmFuc2FjdGlvbkZlZSoqXShUcmFuc2FjdGlvbkZlZS5tZCkgfCAgfCAKKipmZWVfZGV0YWlscyoqIHwgWyoqRXN0aW1hdGVkRmVlRGV0YWlscyoqXShFc3RpbWF0ZWRGZWVEZXRhaWxzLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lc3RpbWF0ZWRfdHJhbnNhY3Rpb25fZmVlX3Jlc3BvbnNlIGltcG9ydCBFc3RpbWF0ZWRUcmFuc2FjdGlvbkZlZVJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFc3RpbWF0ZWRUcmFuc2FjdGlvbkZlZVJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwplc3RpbWF0ZWRfdHJhbnNhY3Rpb25fZmVlX3Jlc3BvbnNlX2luc3RhbmNlID0gRXN0aW1hdGVkVHJhbnNhY3Rpb25GZWVSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChFc3RpbWF0ZWRUcmFuc2FjdGlvbkZlZVJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmVzdGltYXRlZF90cmFuc2FjdGlvbl9mZWVfcmVzcG9uc2VfZGljdCA9IGVzdGltYXRlZF90cmFuc2FjdGlvbl9mZWVfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEVzdGltYXRlZFRyYW5zYWN0aW9uRmVlUmVzcG9uc2UgZnJvbSBhIGRpY3QKZXN0aW1hdGVkX3RyYW5zYWN0aW9uX2ZlZV9yZXNwb25zZV9mcm9tX2RpY3QgPSBFc3RpbWF0ZWRUcmFuc2FjdGlvbkZlZVJlc3BvbnNlLmZyb21fZGljdChlc3RpbWF0ZWRfdHJhbnNhY3Rpb25fZmVlX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/EthereumBlockchainData.md b/docs/EthereumBlockchainData.md index 7ad0c43e..b0f9d9eb 100644 --- a/docs/EthereumBlockchainData.md +++ b/docs/EthereumBlockchainData.md @@ -1,30 +1 @@ -# EthereumBlockchainData - -Additional fields per blockchain for Ethereum (ETH) - can be empty or missing if not initialized or no specific data is available. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**is_compounding_validator** | **bool** | Is the validator compounding (i.e it was created with compounding validator type). | - -## Example - -```python -from fireblocks.models.ethereum_blockchain_data import EthereumBlockchainData - -# TODO update the JSON string below -json = "{}" -# create an instance of EthereumBlockchainData from a JSON string -ethereum_blockchain_data_instance = EthereumBlockchainData.from_json(json) -# print the JSON string representation of the object -print(EthereumBlockchainData.to_json()) - -# convert the object into a dict -ethereum_blockchain_data_dict = ethereum_blockchain_data_instance.to_dict() -# create an instance of EthereumBlockchainData from a dict -ethereum_blockchain_data_from_dict = EthereumBlockchainData.from_dict(ethereum_blockchain_data_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFdGhlcmV1bUJsb2NrY2hhaW5EYXRhCgpBZGRpdGlvbmFsIGZpZWxkcyBwZXIgYmxvY2tjaGFpbiBmb3IgRXRoZXJldW0gKEVUSCkgLSBjYW4gYmUgZW1wdHkgb3IgbWlzc2luZyBpZiBub3QgaW5pdGlhbGl6ZWQgb3Igbm8gc3BlY2lmaWMgZGF0YSBpcyBhdmFpbGFibGUuCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaXNfY29tcG91bmRpbmdfdmFsaWRhdG9yKiogfCAqKmJvb2wqKiB8IElzIHRoZSB2YWxpZGF0b3IgY29tcG91bmRpbmcgKGkuZSBpdCB3YXMgY3JlYXRlZCB3aXRoIGNvbXBvdW5kaW5nIHZhbGlkYXRvciB0eXBlKS4gfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV0aGVyZXVtX2Jsb2NrY2hhaW5fZGF0YSBpbXBvcnQgRXRoZXJldW1CbG9ja2NoYWluRGF0YQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXRoZXJldW1CbG9ja2NoYWluRGF0YSBmcm9tIGEgSlNPTiBzdHJpbmcKZXRoZXJldW1fYmxvY2tjaGFpbl9kYXRhX2luc3RhbmNlID0gRXRoZXJldW1CbG9ja2NoYWluRGF0YS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChFdGhlcmV1bUJsb2NrY2hhaW5EYXRhLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmV0aGVyZXVtX2Jsb2NrY2hhaW5fZGF0YV9kaWN0ID0gZXRoZXJldW1fYmxvY2tjaGFpbl9kYXRhX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFdGhlcmV1bUJsb2NrY2hhaW5EYXRhIGZyb20gYSBkaWN0CmV0aGVyZXVtX2Jsb2NrY2hhaW5fZGF0YV9mcm9tX2RpY3QgPSBFdGhlcmV1bUJsb2NrY2hhaW5EYXRhLmZyb21fZGljdChldGhlcmV1bV9ibG9ja2NoYWluX2RhdGFfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/EuropeanSEPAAddress.md b/docs/EuropeanSEPAAddress.md index 9cd3c3f7..37b5d2af 100644 --- a/docs/EuropeanSEPAAddress.md +++ b/docs/EuropeanSEPAAddress.md @@ -1,36 +1 @@ -# EuropeanSEPAAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | | -**iban** | **str** | | -**bic** | **str** | | [optional] -**bank_name** | **str** | | [optional] -**bank_branch** | **str** | | [optional] -**bank_address** | **str** | | [optional] -**purpose_code** | **str** | | [optional] -**tax_id** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.european_sepa_address import EuropeanSEPAAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of EuropeanSEPAAddress from a JSON string -european_sepa_address_instance = EuropeanSEPAAddress.from_json(json) -# print the JSON string representation of the object -print(EuropeanSEPAAddress.to_json()) - -# convert the object into a dict -european_sepa_address_dict = european_sepa_address_instance.to_dict() -# create an instance of EuropeanSEPAAddress from a dict -european_sepa_address_from_dict = EuropeanSEPAAddress.from_dict(european_sepa_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFdXJvcGVhblNFUEFBZGRyZXNzCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFjY291bnRfaG9sZGVyKiogfCBbKipBY2NvdW50SG9sZGVyRGV0YWlscyoqXShBY2NvdW50SG9sZGVyRGV0YWlscy5tZCkgfCAgfCAKKippYmFuKiogfCAqKnN0cioqIHwgIHwgCioqYmljKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipiYW5rX25hbWUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmJhbmtfYnJhbmNoKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipiYW5rX2FkZHJlc3MqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKnB1cnBvc2VfY29kZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqdGF4X2lkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV1cm9wZWFuX3NlcGFfYWRkcmVzcyBpbXBvcnQgRXVyb3BlYW5TRVBBQWRkcmVzcwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXVyb3BlYW5TRVBBQWRkcmVzcyBmcm9tIGEgSlNPTiBzdHJpbmcKZXVyb3BlYW5fc2VwYV9hZGRyZXNzX2luc3RhbmNlID0gRXVyb3BlYW5TRVBBQWRkcmVzcy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChFdXJvcGVhblNFUEFBZGRyZXNzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmV1cm9wZWFuX3NlcGFfYWRkcmVzc19kaWN0ID0gZXVyb3BlYW5fc2VwYV9hZGRyZXNzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFdXJvcGVhblNFUEFBZGRyZXNzIGZyb20gYSBkaWN0CmV1cm9wZWFuX3NlcGFfYWRkcmVzc19mcm9tX2RpY3QgPSBFdXJvcGVhblNFUEFBZGRyZXNzLmZyb21fZGljdChldXJvcGVhbl9zZXBhX2FkZHJlc3NfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/EuropeanSEPADestination.md b/docs/EuropeanSEPADestination.md index cbf42749..b723d86e 100644 --- a/docs/EuropeanSEPADestination.md +++ b/docs/EuropeanSEPADestination.md @@ -1,30 +1 @@ -# EuropeanSEPADestination - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | -**address** | [**EuropeanSEPAAddress**](EuropeanSEPAAddress.md) | | - -## Example - -```python -from fireblocks.models.european_sepa_destination import EuropeanSEPADestination - -# TODO update the JSON string below -json = "{}" -# create an instance of EuropeanSEPADestination from a JSON string -european_sepa_destination_instance = EuropeanSEPADestination.from_json(json) -# print the JSON string representation of the object -print(EuropeanSEPADestination.to_json()) - -# convert the object into a dict -european_sepa_destination_dict = european_sepa_destination_instance.to_dict() -# create an instance of EuropeanSEPADestination from a dict -european_sepa_destination_from_dict = EuropeanSEPADestination.from_dict(european_sepa_destination_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFdXJvcGVhblNFUEFEZXN0aW5hdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eXBlKiogfCAqKnN0cioqIHwgIHwgCioqYWRkcmVzcyoqIHwgWyoqRXVyb3BlYW5TRVBBQWRkcmVzcyoqXShFdXJvcGVhblNFUEFBZGRyZXNzLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXVyb3BlYW5fc2VwYV9kZXN0aW5hdGlvbiBpbXBvcnQgRXVyb3BlYW5TRVBBRGVzdGluYXRpb24KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEV1cm9wZWFuU0VQQURlc3RpbmF0aW9uIGZyb20gYSBKU09OIHN0cmluZwpldXJvcGVhbl9zZXBhX2Rlc3RpbmF0aW9uX2luc3RhbmNlID0gRXVyb3BlYW5TRVBBRGVzdGluYXRpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRXVyb3BlYW5TRVBBRGVzdGluYXRpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZXVyb3BlYW5fc2VwYV9kZXN0aW5hdGlvbl9kaWN0ID0gZXVyb3BlYW5fc2VwYV9kZXN0aW5hdGlvbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXVyb3BlYW5TRVBBRGVzdGluYXRpb24gZnJvbSBhIGRpY3QKZXVyb3BlYW5fc2VwYV9kZXN0aW5hdGlvbl9mcm9tX2RpY3QgPSBFdXJvcGVhblNFUEFEZXN0aW5hdGlvbi5mcm9tX2RpY3QoZXVyb3BlYW5fc2VwYV9kZXN0aW5hdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ExchangeAccount.md b/docs/ExchangeAccount.md index ba961854..2b1d1fdd 100644 --- a/docs/ExchangeAccount.md +++ b/docs/ExchangeAccount.md @@ -1,37 +1 @@ -# ExchangeAccount - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | [optional] -**type** | [**ExchangeType**](ExchangeType.md) | | [optional] -**name** | **str** | Display name of the exchange account | [optional] -**status** | **str** | | [optional] -**assets** | [**List[ExchangeAsset]**](ExchangeAsset.md) | | [optional] -**success** | **bool** | Did succeed in retrieve balance data | [optional] -**trading_accounts** | [**List[ExchangeTradingAccount]**](ExchangeTradingAccount.md) | | [optional] -**is_subaccount** | **bool** | True if the account is a subaccount in an exchange | [optional] -**main_account_id** | **str** | if the account is a sub-account, the ID of the main account | [optional] - -## Example - -```python -from fireblocks.models.exchange_account import ExchangeAccount - -# TODO update the JSON string below -json = "{}" -# create an instance of ExchangeAccount from a JSON string -exchange_account_instance = ExchangeAccount.from_json(json) -# print the JSON string representation of the object -print(ExchangeAccount.to_json()) - -# convert the object into a dict -exchange_account_dict = exchange_account_instance.to_dict() -# create an instance of ExchangeAccount from a dict -exchange_account_from_dict = ExchangeAccount.from_dict(exchange_account_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeGNoYW5nZUFjY291bnQKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKnR5cGUqKiB8IFsqKkV4Y2hhbmdlVHlwZSoqXShFeGNoYW5nZVR5cGUubWQpIHwgIHwgW29wdGlvbmFsXSAKKipuYW1lKiogfCAqKnN0cioqIHwgRGlzcGxheSBuYW1lIG9mIHRoZSBleGNoYW5nZSBhY2NvdW50IHwgW29wdGlvbmFsXSAKKipzdGF0dXMqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFzc2V0cyoqIHwgWyoqTGlzdFtFeGNoYW5nZUFzc2V0XSoqXShFeGNoYW5nZUFzc2V0Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc3VjY2VzcyoqIHwgKipib29sKiogfCBEaWQgc3VjY2VlZCBpbiByZXRyaWV2ZSBiYWxhbmNlIGRhdGEgfCBbb3B0aW9uYWxdIAoqKnRyYWRpbmdfYWNjb3VudHMqKiB8IFsqKkxpc3RbRXhjaGFuZ2VUcmFkaW5nQWNjb3VudF0qKl0oRXhjaGFuZ2VUcmFkaW5nQWNjb3VudC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmlzX3N1YmFjY291bnQqKiB8ICoqYm9vbCoqIHwgVHJ1ZSBpZiB0aGUgYWNjb3VudCBpcyBhIHN1YmFjY291bnQgaW4gYW4gZXhjaGFuZ2UgfCBbb3B0aW9uYWxdIAoqKm1haW5fYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8IGlmIHRoZSBhY2NvdW50IGlzIGEgc3ViLWFjY291bnQsIHRoZSBJRCBvZiB0aGUgbWFpbiBhY2NvdW50IHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4Y2hhbmdlX2FjY291bnQgaW1wb3J0IEV4Y2hhbmdlQWNjb3VudAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXhjaGFuZ2VBY2NvdW50IGZyb20gYSBKU09OIHN0cmluZwpleGNoYW5nZV9hY2NvdW50X2luc3RhbmNlID0gRXhjaGFuZ2VBY2NvdW50LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEV4Y2hhbmdlQWNjb3VudC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApleGNoYW5nZV9hY2NvdW50X2RpY3QgPSBleGNoYW5nZV9hY2NvdW50X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeGNoYW5nZUFjY291bnQgZnJvbSBhIGRpY3QKZXhjaGFuZ2VfYWNjb3VudF9mcm9tX2RpY3QgPSBFeGNoYW5nZUFjY291bnQuZnJvbV9kaWN0KGV4Y2hhbmdlX2FjY291bnRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ExchangeAccountsApi.md b/docs/ExchangeAccountsApi.md index 5685f383..a41a808e 100644 --- a/docs/ExchangeAccountsApi.md +++ b/docs/ExchangeAccountsApi.md @@ -1,559 +1 @@ -# fireblocks.ExchangeAccountsApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**add_exchange_account**](ExchangeAccountsApi.md#add_exchange_account) | **POST** /exchange_accounts | Add an exchange account -[**convert_assets**](ExchangeAccountsApi.md#convert_assets) | **POST** /exchange_accounts/{exchangeAccountId}/convert | Convert exchange account funds -[**get_exchange_account**](ExchangeAccountsApi.md#get_exchange_account) | **GET** /exchange_accounts/{exchangeAccountId} | Get a specific exchange account -[**get_exchange_account_asset**](ExchangeAccountsApi.md#get_exchange_account_asset) | **GET** /exchange_accounts/{exchangeAccountId}/{assetId} | Get an asset for an exchange account -[**get_exchange_accounts_credentials_public_key**](ExchangeAccountsApi.md#get_exchange_accounts_credentials_public_key) | **GET** /exchange_accounts/credentials_public_key | Get public key to encrypt exchange credentials -[**get_paged_exchange_accounts**](ExchangeAccountsApi.md#get_paged_exchange_accounts) | **GET** /exchange_accounts/paged | List connected exchange accounts -[**internal_transfer**](ExchangeAccountsApi.md#internal_transfer) | **POST** /exchange_accounts/{exchangeAccountId}/internal_transfer | Internal transfer for exchange accounts - - -# **add_exchange_account** -> AddExchangeAccountResponse add_exchange_account(add_exchange_account_request, idempotency_key=idempotency_key) - -Add an exchange account - -Add an exchange account to exchanges. - -Note: This endpoint currently only supports the following exchanges `INDEPENDENT_RESERVE`,`BIT`, `BITHUMB`, `BITSO`, `CRYPTOCOM`, `BYBIT_V2`, `WHITEBIT`, `HITBTC`, `GEMINI`, `HUOBI`, `GATEIO`, `COINHAKO`, `BULLISH`, `BITGET`, and `LUNO` - -To add an exchange account, please use the following [guide](https://developers.fireblocks.com/docs/add-an-exchange-account). - - -### Example - - -```python -from fireblocks.models.add_exchange_account_request import AddExchangeAccountRequest -from fireblocks.models.add_exchange_account_response import AddExchangeAccountResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - add_exchange_account_request = fireblocks.AddExchangeAccountRequest() # AddExchangeAccountRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Add an exchange account - api_response = fireblocks.exchange_accounts.add_exchange_account(add_exchange_account_request, idempotency_key=idempotency_key).result() - print("The response of ExchangeAccountsApi->add_exchange_account:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ExchangeAccountsApi->add_exchange_account: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **add_exchange_account_request** | [**AddExchangeAccountRequest**](AddExchangeAccountRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**AddExchangeAccountResponse**](AddExchangeAccountResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | An Exchange Account identifier object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **convert_assets** -> ConvertAssetsResponse convert_assets(exchange_account_id, idempotency_key=idempotency_key, convert_assets_request=convert_assets_request) - -Convert exchange account funds - -Convert exchange account funds from the source asset to the destination asset. Coinbase (USD to USDC, USDC to USD) and Bitso (MXN to USD) are supported conversions. -Learn more about Fireblocks Exchange Connectivity in the following [guide](https://developers.fireblocks.com/docs/connect-to-exchanges-and-fiat-providers). -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.convert_assets_request import ConvertAssetsRequest -from fireblocks.models.convert_assets_response import ConvertAssetsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - exchange_account_id = 'exchange_account_id_example' # str | The ID of the exchange account. Please make sure the exchange supports conversions. To find the ID of your exchange account, use GET/exchange_accounts. - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - convert_assets_request = fireblocks.ConvertAssetsRequest() # ConvertAssetsRequest | (optional) - - try: - # Convert exchange account funds - api_response = fireblocks.exchange_accounts.convert_assets(exchange_account_id, idempotency_key=idempotency_key, convert_assets_request=convert_assets_request).result() - print("The response of ExchangeAccountsApi->convert_assets:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ExchangeAccountsApi->convert_assets: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **exchange_account_id** | **str**| The ID of the exchange account. Please make sure the exchange supports conversions. To find the ID of your exchange account, use GET/exchange_accounts. | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **convert_assets_request** | [**ConvertAssetsRequest**](ConvertAssetsRequest.md)| | [optional] - -### Return type - -[**ConvertAssetsResponse**](ConvertAssetsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Conversion successful | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_exchange_account** -> ExchangeAccount get_exchange_account(exchange_account_id) - -Get a specific exchange account - -Returns an exchange account by ID. -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.exchange_account import ExchangeAccount -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - exchange_account_id = 'exchange_account_id_example' # str | The ID of the exchange account to return - - try: - # Get a specific exchange account - api_response = fireblocks.exchange_accounts.get_exchange_account(exchange_account_id).result() - print("The response of ExchangeAccountsApi->get_exchange_account:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ExchangeAccountsApi->get_exchange_account: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **exchange_account_id** | **str**| The ID of the exchange account to return | - -### Return type - -[**ExchangeAccount**](ExchangeAccount.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | An ExchangeAccount object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_exchange_account_asset** -> ExchangeAsset get_exchange_account_asset(exchange_account_id, asset_id) - -Get an asset for an exchange account - -Returns an asset for an exchange account. -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.exchange_asset import ExchangeAsset -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - exchange_account_id = 'exchange_account_id_example' # str | The ID of the exchange account to return - asset_id = 'asset_id_example' # str | The ID of the asset to return - - try: - # Get an asset for an exchange account - api_response = fireblocks.exchange_accounts.get_exchange_account_asset(exchange_account_id, asset_id).result() - print("The response of ExchangeAccountsApi->get_exchange_account_asset:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ExchangeAccountsApi->get_exchange_account_asset: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **exchange_account_id** | **str**| The ID of the exchange account to return | - **asset_id** | **str**| The ID of the asset to return | - -### Return type - -[**ExchangeAsset**](ExchangeAsset.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | An ExchangeAccountAsset object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_exchange_accounts_credentials_public_key** -> GetExchangeAccountsCredentialsPublicKeyResponse get_exchange_accounts_credentials_public_key() - -Get public key to encrypt exchange credentials - -Return public key - -### Example - - -```python -from fireblocks.models.get_exchange_accounts_credentials_public_key_response import GetExchangeAccountsCredentialsPublicKeyResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Get public key to encrypt exchange credentials - api_response = fireblocks.exchange_accounts.get_exchange_accounts_credentials_public_key().result() - print("The response of ExchangeAccountsApi->get_exchange_accounts_credentials_public_key:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ExchangeAccountsApi->get_exchange_accounts_credentials_public_key: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**GetExchangeAccountsCredentialsPublicKeyResponse**](GetExchangeAccountsCredentialsPublicKeyResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | public key as string | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_paged_exchange_accounts** -> GetPagedExchangeAccountsResponse get_paged_exchange_accounts(limit, before=before, after=after) - -List connected exchange accounts - -Returns a list of the connected exchange accounts in your workspace.
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.get_paged_exchange_accounts_response import GetPagedExchangeAccountsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - limit = 3 # float | number of exchanges per page (default to 3) - before = 'before_example' # str | (optional) - after = 'after_example' # str | (optional) - - try: - # List connected exchange accounts - api_response = fireblocks.exchange_accounts.get_paged_exchange_accounts(limit, before=before, after=after).result() - print("The response of ExchangeAccountsApi->get_paged_exchange_accounts:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ExchangeAccountsApi->get_paged_exchange_accounts: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **limit** | **float**| number of exchanges per page | [default to 3] - **before** | **str**| | [optional] - **after** | **str**| | [optional] - -### Return type - -[**GetPagedExchangeAccountsResponse**](GetPagedExchangeAccountsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | An ExchangeAccount object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **internal_transfer** -> InternalTransferResponse internal_transfer(exchange_account_id, idempotency_key=idempotency_key, create_internal_transfer_request=create_internal_transfer_request) - -Internal transfer for exchange accounts - -Transfers funds between trading accounts under the same exchange account. -Learn more about Fireblocks Exchange Connectivity in the following [guide](https://developers.fireblocks.com/docs/connect-to-exchanges-and-fiat-providers). -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.create_internal_transfer_request import CreateInternalTransferRequest -from fireblocks.models.internal_transfer_response import InternalTransferResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - exchange_account_id = 'exchange_account_id_example' # str | The ID of the exchange account to return - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - create_internal_transfer_request = fireblocks.CreateInternalTransferRequest() # CreateInternalTransferRequest | (optional) - - try: - # Internal transfer for exchange accounts - api_response = fireblocks.exchange_accounts.internal_transfer(exchange_account_id, idempotency_key=idempotency_key, create_internal_transfer_request=create_internal_transfer_request).result() - print("The response of ExchangeAccountsApi->internal_transfer:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ExchangeAccountsApi->internal_transfer: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **exchange_account_id** | **str**| The ID of the exchange account to return | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **create_internal_transfer_request** | [**CreateInternalTransferRequest**](CreateInternalTransferRequest.md)| | [optional] - -### Return type - -[**InternalTransferResponse**](InternalTransferResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Transfer succeeded | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLkV4Y2hhbmdlQWNjb3VudHNBcGkKCkFsbCBVUklzIGFyZSByZWxhdGl2ZSB0byAqaHR0cHM6Ly9hcGkuZmlyZWJsb2Nrcy5pby92MSoKCk1ldGhvZCB8IEhUVFAgcmVxdWVzdCB8IERlc2NyaXB0aW9uCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQpbKiphZGRfZXhjaGFuZ2VfYWNjb3VudCoqXShFeGNoYW5nZUFjY291bnRzQXBpLm1kI2FkZF9leGNoYW5nZV9hY2NvdW50KSB8ICoqUE9TVCoqIC9leGNoYW5nZV9hY2NvdW50cyB8IEFkZCBhbiBleGNoYW5nZSBhY2NvdW50ClsqKmNvbnZlcnRfYXNzZXRzKipdKEV4Y2hhbmdlQWNjb3VudHNBcGkubWQjY29udmVydF9hc3NldHMpIHwgKipQT1NUKiogL2V4Y2hhbmdlX2FjY291bnRzL3tleGNoYW5nZUFjY291bnRJZH0vY29udmVydCB8IENvbnZlcnQgZXhjaGFuZ2UgYWNjb3VudCBmdW5kcwpbKipnZXRfZXhjaGFuZ2VfYWNjb3VudCoqXShFeGNoYW5nZUFjY291bnRzQXBpLm1kI2dldF9leGNoYW5nZV9hY2NvdW50KSB8ICoqR0VUKiogL2V4Y2hhbmdlX2FjY291bnRzL3tleGNoYW5nZUFjY291bnRJZH0gfCBHZXQgYSBzcGVjaWZpYyBleGNoYW5nZSBhY2NvdW50ClsqKmdldF9leGNoYW5nZV9hY2NvdW50X2Fzc2V0KipdKEV4Y2hhbmdlQWNjb3VudHNBcGkubWQjZ2V0X2V4Y2hhbmdlX2FjY291bnRfYXNzZXQpIHwgKipHRVQqKiAvZXhjaGFuZ2VfYWNjb3VudHMve2V4Y2hhbmdlQWNjb3VudElkfS97YXNzZXRJZH0gfCBHZXQgYW4gYXNzZXQgZm9yIGFuIGV4Y2hhbmdlIGFjY291bnQKWyoqZ2V0X2V4Y2hhbmdlX2FjY291bnRzX2NyZWRlbnRpYWxzX3B1YmxpY19rZXkqKl0oRXhjaGFuZ2VBY2NvdW50c0FwaS5tZCNnZXRfZXhjaGFuZ2VfYWNjb3VudHNfY3JlZGVudGlhbHNfcHVibGljX2tleSkgfCAqKkdFVCoqIC9leGNoYW5nZV9hY2NvdW50cy9jcmVkZW50aWFsc19wdWJsaWNfa2V5IHwgR2V0IHB1YmxpYyBrZXkgdG8gZW5jcnlwdCBleGNoYW5nZSBjcmVkZW50aWFscwpbKipnZXRfcGFnZWRfZXhjaGFuZ2VfYWNjb3VudHMqKl0oRXhjaGFuZ2VBY2NvdW50c0FwaS5tZCNnZXRfcGFnZWRfZXhjaGFuZ2VfYWNjb3VudHMpIHwgKipHRVQqKiAvZXhjaGFuZ2VfYWNjb3VudHMvcGFnZWQgfCBMaXN0IGNvbm5lY3RlZCBleGNoYW5nZSBhY2NvdW50cwpbKippbnRlcm5hbF90cmFuc2ZlcioqXShFeGNoYW5nZUFjY291bnRzQXBpLm1kI2ludGVybmFsX3RyYW5zZmVyKSB8ICoqUE9TVCoqIC9leGNoYW5nZV9hY2NvdW50cy97ZXhjaGFuZ2VBY2NvdW50SWR9L2ludGVybmFsX3RyYW5zZmVyIHwgSW50ZXJuYWwgdHJhbnNmZXIgZm9yIGV4Y2hhbmdlIGFjY291bnRzCgoKIyAqKmFkZF9leGNoYW5nZV9hY2NvdW50KioKPiBBZGRFeGNoYW5nZUFjY291bnRSZXNwb25zZSBhZGRfZXhjaGFuZ2VfYWNjb3VudChhZGRfZXhjaGFuZ2VfYWNjb3VudF9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKQWRkIGFuIGV4Y2hhbmdlIGFjY291bnQKCkFkZCBhbiBleGNoYW5nZSBhY2NvdW50IHRvIGV4Y2hhbmdlcy4gCgpOb3RlOiBUaGlzIGVuZHBvaW50IGN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgZXhjaGFuZ2VzIGBJTkRFUEVOREVOVF9SRVNFUlZFYCxgQklUYCwgYEJJVEhVTUJgLCBgQklUU09gLCBgQ1JZUFRPQ09NYCwgYEJZQklUX1YyYCwgYFdISVRFQklUYCwgYEhJVEJUQ2AsIGBHRU1JTklgLCBgSFVPQklgLCBgR0FURUlPYCwgYENPSU5IQUtPYCwgYEJVTExJU0hgLCBgQklUR0VUYCwgYW5kIGBMVU5PYAoKVG8gYWRkIGFuIGV4Y2hhbmdlIGFjY291bnQsIHBsZWFzZSB1c2UgdGhlIGZvbGxvd2luZyBbZ3VpZGVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL2FkZC1hbi1leGNoYW5nZS1hY2NvdW50KS4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZF9leGNoYW5nZV9hY2NvdW50X3JlcXVlc3QgaW1wb3J0IEFkZEV4Y2hhbmdlQWNjb3VudFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hZGRfZXhjaGFuZ2VfYWNjb3VudF9yZXNwb25zZSBpbXBvcnQgQWRkRXhjaGFuZ2VBY2NvdW50UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgYWRkX2V4Y2hhbmdlX2FjY291bnRfcmVxdWVzdCA9IGZpcmVibG9ja3MuQWRkRXhjaGFuZ2VBY2NvdW50UmVxdWVzdCgpICMgQWRkRXhjaGFuZ2VBY2NvdW50UmVxdWVzdCB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIEFkZCBhbiBleGNoYW5nZSBhY2NvdW50CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5leGNoYW5nZV9hY2NvdW50cy5hZGRfZXhjaGFuZ2VfYWNjb3VudChhZGRfZXhjaGFuZ2VfYWNjb3VudF9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgRXhjaGFuZ2VBY2NvdW50c0FwaS0+YWRkX2V4Y2hhbmdlX2FjY291bnQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgRXhjaGFuZ2VBY2NvdW50c0FwaS0+YWRkX2V4Y2hhbmdlX2FjY291bnQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmFkZF9leGNoYW5nZV9hY2NvdW50X3JlcXVlc3QqKiB8IFsqKkFkZEV4Y2hhbmdlQWNjb3VudFJlcXVlc3QqKl0oQWRkRXhjaGFuZ2VBY2NvdW50UmVxdWVzdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipBZGRFeGNoYW5nZUFjY291bnRSZXNwb25zZSoqXShBZGRFeGNoYW5nZUFjY291bnRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgQW4gRXhjaGFuZ2UgQWNjb3VudCBpZGVudGlmaWVyIG9iamVjdCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqY29udmVydF9hc3NldHMqKgo+IENvbnZlcnRBc3NldHNSZXNwb25zZSBjb252ZXJ0X2Fzc2V0cyhleGNoYW5nZV9hY2NvdW50X2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCBjb252ZXJ0X2Fzc2V0c19yZXF1ZXN0PWNvbnZlcnRfYXNzZXRzX3JlcXVlc3QpCgpDb252ZXJ0IGV4Y2hhbmdlIGFjY291bnQgZnVuZHMKCkNvbnZlcnQgZXhjaGFuZ2UgYWNjb3VudCBmdW5kcyBmcm9tIHRoZSBzb3VyY2UgYXNzZXQgdG8gdGhlIGRlc3RpbmF0aW9uIGFzc2V0LiBDb2luYmFzZSAoVVNEIHRvIFVTREMsIFVTREMgdG8gVVNEKSBhbmQgQml0c28gKE1YTiB0byBVU0QpIGFyZSBzdXBwb3J0ZWQgY29udmVyc2lvbnMuCkxlYXJuIG1vcmUgYWJvdXQgRmlyZWJsb2NrcyBFeGNoYW5nZSBDb25uZWN0aXZpdHkgaW4gdGhlIGZvbGxvd2luZyBbZ3VpZGVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL2Nvbm5lY3QtdG8tZXhjaGFuZ2VzLWFuZC1maWF0LXByb3ZpZGVycykuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJ0X2Fzc2V0c19yZXF1ZXN0IGltcG9ydCBDb252ZXJ0QXNzZXRzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnRfYXNzZXRzX3Jlc3BvbnNlIGltcG9ydCBDb252ZXJ0QXNzZXRzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgZXhjaGFuZ2VfYWNjb3VudF9pZCA9ICdleGNoYW5nZV9hY2NvdW50X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBleGNoYW5nZSBhY2NvdW50LiBQbGVhc2UgbWFrZSBzdXJlIHRoZSBleGNoYW5nZSBzdXBwb3J0cyBjb252ZXJzaW9ucy4gVG8gZmluZCB0aGUgSUQgb2YgeW91ciBleGNoYW5nZSBhY2NvdW50LCB1c2UgR0VUL2V4Y2hhbmdlX2FjY291bnRzLgogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQogICAgY29udmVydF9hc3NldHNfcmVxdWVzdCA9IGZpcmVibG9ja3MuQ29udmVydEFzc2V0c1JlcXVlc3QoKSAjIENvbnZlcnRBc3NldHNSZXF1ZXN0IHwgIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBDb252ZXJ0IGV4Y2hhbmdlIGFjY291bnQgZnVuZHMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmV4Y2hhbmdlX2FjY291bnRzLmNvbnZlcnRfYXNzZXRzKGV4Y2hhbmdlX2FjY291bnRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksIGNvbnZlcnRfYXNzZXRzX3JlcXVlc3Q9Y29udmVydF9hc3NldHNfcmVxdWVzdCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEV4Y2hhbmdlQWNjb3VudHNBcGktPmNvbnZlcnRfYXNzZXRzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEV4Y2hhbmdlQWNjb3VudHNBcGktPmNvbnZlcnRfYXNzZXRzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipleGNoYW5nZV9hY2NvdW50X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGV4Y2hhbmdlIGFjY291bnQuIFBsZWFzZSBtYWtlIHN1cmUgdGhlIGV4Y2hhbmdlIHN1cHBvcnRzIGNvbnZlcnNpb25zLiBUbyBmaW5kIHRoZSBJRCBvZiB5b3VyIGV4Y2hhbmdlIGFjY291bnQsIHVzZSBHRVQvZXhjaGFuZ2VfYWNjb3VudHMuIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCiAqKmNvbnZlcnRfYXNzZXRzX3JlcXVlc3QqKiB8IFsqKkNvbnZlcnRBc3NldHNSZXF1ZXN0KipdKENvbnZlcnRBc3NldHNSZXF1ZXN0Lm1kKXwgIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqQ29udmVydEFzc2V0c1Jlc3BvbnNlKipdKENvbnZlcnRBc3NldHNSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQ29udmVyc2lvbiBzdWNjZXNzZnVsIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfZXhjaGFuZ2VfYWNjb3VudCoqCj4gRXhjaGFuZ2VBY2NvdW50IGdldF9leGNoYW5nZV9hY2NvdW50KGV4Y2hhbmdlX2FjY291bnRfaWQpCgpHZXQgYSBzcGVjaWZpYyBleGNoYW5nZSBhY2NvdW50CgpSZXR1cm5zIGFuIGV4Y2hhbmdlIGFjY291bnQgYnkgSUQuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGNoYW5nZV9hY2NvdW50IGltcG9ydCBFeGNoYW5nZUFjY291bnQKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgZXhjaGFuZ2VfYWNjb3VudF9pZCA9ICdleGNoYW5nZV9hY2NvdW50X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBleGNoYW5nZSBhY2NvdW50IHRvIHJldHVybgoKICAgIHRyeToKICAgICAgICAjIEdldCBhIHNwZWNpZmljIGV4Y2hhbmdlIGFjY291bnQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmV4Y2hhbmdlX2FjY291bnRzLmdldF9leGNoYW5nZV9hY2NvdW50KGV4Y2hhbmdlX2FjY291bnRfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBFeGNoYW5nZUFjY291bnRzQXBpLT5nZXRfZXhjaGFuZ2VfYWNjb3VudDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBFeGNoYW5nZUFjY291bnRzQXBpLT5nZXRfZXhjaGFuZ2VfYWNjb3VudDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqZXhjaGFuZ2VfYWNjb3VudF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSBleGNoYW5nZSBhY2NvdW50IHRvIHJldHVybiB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipFeGNoYW5nZUFjY291bnQqKl0oRXhjaGFuZ2VBY2NvdW50Lm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQW4gRXhjaGFuZ2VBY2NvdW50IG9iamVjdCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2V4Y2hhbmdlX2FjY291bnRfYXNzZXQqKgo+IEV4Y2hhbmdlQXNzZXQgZ2V0X2V4Y2hhbmdlX2FjY291bnRfYXNzZXQoZXhjaGFuZ2VfYWNjb3VudF9pZCwgYXNzZXRfaWQpCgpHZXQgYW4gYXNzZXQgZm9yIGFuIGV4Y2hhbmdlIGFjY291bnQKClJldHVybnMgYW4gYXNzZXQgZm9yIGFuIGV4Y2hhbmdlIGFjY291bnQuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGNoYW5nZV9hc3NldCBpbXBvcnQgRXhjaGFuZ2VBc3NldApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBleGNoYW5nZV9hY2NvdW50X2lkID0gJ2V4Y2hhbmdlX2FjY291bnRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGV4Y2hhbmdlIGFjY291bnQgdG8gcmV0dXJuCiAgICBhc3NldF9pZCA9ICdhc3NldF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgYXNzZXQgdG8gcmV0dXJuCgogICAgdHJ5OgogICAgICAgICMgR2V0IGFuIGFzc2V0IGZvciBhbiBleGNoYW5nZSBhY2NvdW50CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5leGNoYW5nZV9hY2NvdW50cy5nZXRfZXhjaGFuZ2VfYWNjb3VudF9hc3NldChleGNoYW5nZV9hY2NvdW50X2lkLCBhc3NldF9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEV4Y2hhbmdlQWNjb3VudHNBcGktPmdldF9leGNoYW5nZV9hY2NvdW50X2Fzc2V0OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEV4Y2hhbmdlQWNjb3VudHNBcGktPmdldF9leGNoYW5nZV9hY2NvdW50X2Fzc2V0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipleGNoYW5nZV9hY2NvdW50X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGV4Y2hhbmdlIGFjY291bnQgdG8gcmV0dXJuIHwgCiAqKmFzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIHJldHVybiB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipFeGNoYW5nZUFzc2V0KipdKEV4Y2hhbmdlQXNzZXQubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBbiBFeGNoYW5nZUFjY291bnRBc3NldCBvYmplY3QgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9leGNoYW5nZV9hY2NvdW50c19jcmVkZW50aWFsc19wdWJsaWNfa2V5KioKPiBHZXRFeGNoYW5nZUFjY291bnRzQ3JlZGVudGlhbHNQdWJsaWNLZXlSZXNwb25zZSBnZXRfZXhjaGFuZ2VfYWNjb3VudHNfY3JlZGVudGlhbHNfcHVibGljX2tleSgpCgpHZXQgcHVibGljIGtleSB0byBlbmNyeXB0IGV4Y2hhbmdlIGNyZWRlbnRpYWxzCgpSZXR1cm4gcHVibGljIGtleQoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfZXhjaGFuZ2VfYWNjb3VudHNfY3JlZGVudGlhbHNfcHVibGljX2tleV9yZXNwb25zZSBpbXBvcnQgR2V0RXhjaGFuZ2VBY2NvdW50c0NyZWRlbnRpYWxzUHVibGljS2V5UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgoKICAgIHRyeToKICAgICAgICAjIEdldCBwdWJsaWMga2V5IHRvIGVuY3J5cHQgZXhjaGFuZ2UgY3JlZGVudGlhbHMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmV4Y2hhbmdlX2FjY291bnRzLmdldF9leGNoYW5nZV9hY2NvdW50c19jcmVkZW50aWFsc19wdWJsaWNfa2V5KCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEV4Y2hhbmdlQWNjb3VudHNBcGktPmdldF9leGNoYW5nZV9hY2NvdW50c19jcmVkZW50aWFsc19wdWJsaWNfa2V5OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEV4Y2hhbmdlQWNjb3VudHNBcGktPmdldF9leGNoYW5nZV9hY2NvdW50c19jcmVkZW50aWFsc19wdWJsaWNfa2V5OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKVGhpcyBlbmRwb2ludCBkb2VzIG5vdCBuZWVkIGFueSBwYXJhbWV0ZXIuCgojIyMgUmV0dXJuIHR5cGUKClsqKkdldEV4Y2hhbmdlQWNjb3VudHNDcmVkZW50aWFsc1B1YmxpY0tleVJlc3BvbnNlKipdKEdldEV4Y2hhbmdlQWNjb3VudHNDcmVkZW50aWFsc1B1YmxpY0tleVJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgcHVibGljIGtleSBhcyBzdHJpbmcgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9wYWdlZF9leGNoYW5nZV9hY2NvdW50cyoqCj4gR2V0UGFnZWRFeGNoYW5nZUFjY291bnRzUmVzcG9uc2UgZ2V0X3BhZ2VkX2V4Y2hhbmdlX2FjY291bnRzKGxpbWl0LCBiZWZvcmU9YmVmb3JlLCBhZnRlcj1hZnRlcikKCkxpc3QgY29ubmVjdGVkIGV4Y2hhbmdlIGFjY291bnRzCgpSZXR1cm5zIGEgbGlzdCBvZiB0aGUgY29ubmVjdGVkIGV4Y2hhbmdlIGFjY291bnRzIGluIHlvdXIgd29ya3NwYWNlLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbi4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X3BhZ2VkX2V4Y2hhbmdlX2FjY291bnRzX3Jlc3BvbnNlIGltcG9ydCBHZXRQYWdlZEV4Y2hhbmdlQWNjb3VudHNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBsaW1pdCA9IDMgIyBmbG9hdCB8IG51bWJlciBvZiBleGNoYW5nZXMgcGVyIHBhZ2UgKGRlZmF1bHQgdG8gMykKICAgIGJlZm9yZSA9ICdiZWZvcmVfZXhhbXBsZScgIyBzdHIgfCAgKG9wdGlvbmFsKQogICAgYWZ0ZXIgPSAnYWZ0ZXJfZXhhbXBsZScgIyBzdHIgfCAgKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIExpc3QgY29ubmVjdGVkIGV4Y2hhbmdlIGFjY291bnRzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5leGNoYW5nZV9hY2NvdW50cy5nZXRfcGFnZWRfZXhjaGFuZ2VfYWNjb3VudHMobGltaXQsIGJlZm9yZT1iZWZvcmUsIGFmdGVyPWFmdGVyKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgRXhjaGFuZ2VBY2NvdW50c0FwaS0+Z2V0X3BhZ2VkX2V4Y2hhbmdlX2FjY291bnRzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEV4Y2hhbmdlQWNjb3VudHNBcGktPmdldF9wYWdlZF9leGNoYW5nZV9hY2NvdW50czogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqbGltaXQqKiB8ICoqZmxvYXQqKnwgbnVtYmVyIG9mIGV4Y2hhbmdlcyBwZXIgcGFnZSB8IFtkZWZhdWx0IHRvIDNdCiAqKmJlZm9yZSoqIHwgKipzdHIqKnwgIHwgW29wdGlvbmFsXSAKICoqYWZ0ZXIqKiB8ICoqc3RyKip8ICB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlKipdKEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQW4gRXhjaGFuZ2VBY2NvdW50IG9iamVjdCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqaW50ZXJuYWxfdHJhbnNmZXIqKgo+IEludGVybmFsVHJhbnNmZXJSZXNwb25zZSBpbnRlcm5hbF90cmFuc2ZlcihleGNoYW5nZV9hY2NvdW50X2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCBjcmVhdGVfaW50ZXJuYWxfdHJhbnNmZXJfcmVxdWVzdD1jcmVhdGVfaW50ZXJuYWxfdHJhbnNmZXJfcmVxdWVzdCkKCkludGVybmFsIHRyYW5zZmVyIGZvciBleGNoYW5nZSBhY2NvdW50cwoKVHJhbnNmZXJzIGZ1bmRzIGJldHdlZW4gdHJhZGluZyBhY2NvdW50cyB1bmRlciB0aGUgc2FtZSBleGNoYW5nZSBhY2NvdW50LgpMZWFybiBtb3JlIGFib3V0IEZpcmVibG9ja3MgRXhjaGFuZ2UgQ29ubmVjdGl2aXR5IGluIHRoZSBmb2xsb3dpbmcgW2d1aWRlXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vZG9jcy9jb25uZWN0LXRvLWV4Y2hhbmdlcy1hbmQtZmlhdC1wcm92aWRlcnMpLgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbi4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX2ludGVybmFsX3RyYW5zZmVyX3JlcXVlc3QgaW1wb3J0IENyZWF0ZUludGVybmFsVHJhbnNmZXJSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaW50ZXJuYWxfdHJhbnNmZXJfcmVzcG9uc2UgaW1wb3J0IEludGVybmFsVHJhbnNmZXJSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBleGNoYW5nZV9hY2NvdW50X2lkID0gJ2V4Y2hhbmdlX2FjY291bnRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGV4Y2hhbmdlIGFjY291bnQgdG8gcmV0dXJuCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCiAgICBjcmVhdGVfaW50ZXJuYWxfdHJhbnNmZXJfcmVxdWVzdCA9IGZpcmVibG9ja3MuQ3JlYXRlSW50ZXJuYWxUcmFuc2ZlclJlcXVlc3QoKSAjIENyZWF0ZUludGVybmFsVHJhbnNmZXJSZXF1ZXN0IHwgIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBJbnRlcm5hbCB0cmFuc2ZlciBmb3IgZXhjaGFuZ2UgYWNjb3VudHMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmV4Y2hhbmdlX2FjY291bnRzLmludGVybmFsX3RyYW5zZmVyKGV4Y2hhbmdlX2FjY291bnRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksIGNyZWF0ZV9pbnRlcm5hbF90cmFuc2Zlcl9yZXF1ZXN0PWNyZWF0ZV9pbnRlcm5hbF90cmFuc2Zlcl9yZXF1ZXN0KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgRXhjaGFuZ2VBY2NvdW50c0FwaS0+aW50ZXJuYWxfdHJhbnNmZXI6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgRXhjaGFuZ2VBY2NvdW50c0FwaS0+aW50ZXJuYWxfdHJhbnNmZXI6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmV4Y2hhbmdlX2FjY291bnRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgZXhjaGFuZ2UgYWNjb3VudCB0byByZXR1cm4gfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKICoqY3JlYXRlX2ludGVybmFsX3RyYW5zZmVyX3JlcXVlc3QqKiB8IFsqKkNyZWF0ZUludGVybmFsVHJhbnNmZXJSZXF1ZXN0KipdKENyZWF0ZUludGVybmFsVHJhbnNmZXJSZXF1ZXN0Lm1kKXwgIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqSW50ZXJuYWxUcmFuc2ZlclJlc3BvbnNlKipdKEludGVybmFsVHJhbnNmZXJSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgVHJhbnNmZXIgc3VjY2VlZGVkIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCg== \ No newline at end of file diff --git a/docs/ExchangeAsset.md b/docs/ExchangeAsset.md index 94bd5a0d..0de476a3 100644 --- a/docs/ExchangeAsset.md +++ b/docs/ExchangeAsset.md @@ -1,38 +1 @@ -# ExchangeAsset - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | [optional] -**balance** | **str** | | [optional] -**locked_amount** | **str** | | [optional] -**total** | **str** | | [optional] -**available** | **str** | | [optional] -**credit** | **str** | | [optional] -**asset_id** | **str** | The id of the asset | [optional] -**provider_symbol** | **str** | The provider symbol of the asset | [optional] -**asset_symbol** | **str** | The asset symbol of the asset | [optional] -**asset_legacy_id** | **str** | The asset legacy id of the asset | [optional] - -## Example - -```python -from fireblocks.models.exchange_asset import ExchangeAsset - -# TODO update the JSON string below -json = "{}" -# create an instance of ExchangeAsset from a JSON string -exchange_asset_instance = ExchangeAsset.from_json(json) -# print the JSON string representation of the object -print(ExchangeAsset.to_json()) - -# convert the object into a dict -exchange_asset_dict = exchange_asset_instance.to_dict() -# create an instance of ExchangeAsset from a dict -exchange_asset_from_dict = ExchangeAsset.from_dict(exchange_asset_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeGNoYW5nZUFzc2V0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipiYWxhbmNlKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipsb2NrZWRfYW1vdW50KiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKip0b3RhbCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqYXZhaWxhYmxlKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipjcmVkaXQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFzc2V0X2lkKiogfCAqKnN0cioqIHwgVGhlIGlkIG9mIHRoZSBhc3NldCB8IFtvcHRpb25hbF0gCioqcHJvdmlkZXJfc3ltYm9sKiogfCAqKnN0cioqIHwgVGhlIHByb3ZpZGVyIHN5bWJvbCBvZiB0aGUgYXNzZXQgfCBbb3B0aW9uYWxdIAoqKmFzc2V0X3N5bWJvbCoqIHwgKipzdHIqKiB8IFRoZSBhc3NldCBzeW1ib2wgb2YgdGhlIGFzc2V0IHwgW29wdGlvbmFsXSAKKiphc3NldF9sZWdhY3lfaWQqKiB8ICoqc3RyKiogfCBUaGUgYXNzZXQgbGVnYWN5IGlkIG9mIHRoZSBhc3NldCB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGNoYW5nZV9hc3NldCBpbXBvcnQgRXhjaGFuZ2VBc3NldAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXhjaGFuZ2VBc3NldCBmcm9tIGEgSlNPTiBzdHJpbmcKZXhjaGFuZ2VfYXNzZXRfaW5zdGFuY2UgPSBFeGNoYW5nZUFzc2V0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEV4Y2hhbmdlQXNzZXQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZXhjaGFuZ2VfYXNzZXRfZGljdCA9IGV4Y2hhbmdlX2Fzc2V0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeGNoYW5nZUFzc2V0IGZyb20gYSBkaWN0CmV4Y2hhbmdlX2Fzc2V0X2Zyb21fZGljdCA9IEV4Y2hhbmdlQXNzZXQuZnJvbV9kaWN0KGV4Y2hhbmdlX2Fzc2V0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ExchangeSettlementTransactionsResponse.md b/docs/ExchangeSettlementTransactionsResponse.md index 3cd98ff2..b15299c4 100644 --- a/docs/ExchangeSettlementTransactionsResponse.md +++ b/docs/ExchangeSettlementTransactionsResponse.md @@ -1,30 +1 @@ -# ExchangeSettlementTransactionsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**to_exchange** | [**List[ToExchangeTransaction]**](ToExchangeTransaction.md) | | [optional] -**to_collateral** | [**List[ToCollateralTransaction]**](ToCollateralTransaction.md) | | [optional] - -## Example - -```python -from fireblocks.models.exchange_settlement_transactions_response import ExchangeSettlementTransactionsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ExchangeSettlementTransactionsResponse from a JSON string -exchange_settlement_transactions_response_instance = ExchangeSettlementTransactionsResponse.from_json(json) -# print the JSON string representation of the object -print(ExchangeSettlementTransactionsResponse.to_json()) - -# convert the object into a dict -exchange_settlement_transactions_response_dict = exchange_settlement_transactions_response_instance.to_dict() -# create an instance of ExchangeSettlementTransactionsResponse from a dict -exchange_settlement_transactions_response_from_dict = ExchangeSettlementTransactionsResponse.from_dict(exchange_settlement_transactions_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeGNoYW5nZVNldHRsZW1lbnRUcmFuc2FjdGlvbnNSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0b19leGNoYW5nZSoqIHwgWyoqTGlzdFtUb0V4Y2hhbmdlVHJhbnNhY3Rpb25dKipdKFRvRXhjaGFuZ2VUcmFuc2FjdGlvbi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnRvX2NvbGxhdGVyYWwqKiB8IFsqKkxpc3RbVG9Db2xsYXRlcmFsVHJhbnNhY3Rpb25dKipdKFRvQ29sbGF0ZXJhbFRyYW5zYWN0aW9uLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGNoYW5nZV9zZXR0bGVtZW50X3RyYW5zYWN0aW9uc19yZXNwb25zZSBpbXBvcnQgRXhjaGFuZ2VTZXR0bGVtZW50VHJhbnNhY3Rpb25zUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEV4Y2hhbmdlU2V0dGxlbWVudFRyYW5zYWN0aW9uc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpleGNoYW5nZV9zZXR0bGVtZW50X3RyYW5zYWN0aW9uc19yZXNwb25zZV9pbnN0YW5jZSA9IEV4Y2hhbmdlU2V0dGxlbWVudFRyYW5zYWN0aW9uc1Jlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEV4Y2hhbmdlU2V0dGxlbWVudFRyYW5zYWN0aW9uc1Jlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmV4Y2hhbmdlX3NldHRsZW1lbnRfdHJhbnNhY3Rpb25zX3Jlc3BvbnNlX2RpY3QgPSBleGNoYW5nZV9zZXR0bGVtZW50X3RyYW5zYWN0aW9uc19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXhjaGFuZ2VTZXR0bGVtZW50VHJhbnNhY3Rpb25zUmVzcG9uc2UgZnJvbSBhIGRpY3QKZXhjaGFuZ2Vfc2V0dGxlbWVudF90cmFuc2FjdGlvbnNfcmVzcG9uc2VfZnJvbV9kaWN0ID0gRXhjaGFuZ2VTZXR0bGVtZW50VHJhbnNhY3Rpb25zUmVzcG9uc2UuZnJvbV9kaWN0KGV4Y2hhbmdlX3NldHRsZW1lbnRfdHJhbnNhY3Rpb25zX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ExchangeTradingAccount.md b/docs/ExchangeTradingAccount.md index 8b32c78e..7ff56207 100644 --- a/docs/ExchangeTradingAccount.md +++ b/docs/ExchangeTradingAccount.md @@ -1,31 +1 @@ -# ExchangeTradingAccount - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | [optional] -**name** | **str** | | [optional] -**assets** | [**List[ExchangeAsset]**](ExchangeAsset.md) | | [optional] - -## Example - -```python -from fireblocks.models.exchange_trading_account import ExchangeTradingAccount - -# TODO update the JSON string below -json = "{}" -# create an instance of ExchangeTradingAccount from a JSON string -exchange_trading_account_instance = ExchangeTradingAccount.from_json(json) -# print the JSON string representation of the object -print(ExchangeTradingAccount.to_json()) - -# convert the object into a dict -exchange_trading_account_dict = exchange_trading_account_instance.to_dict() -# create an instance of ExchangeTradingAccount from a dict -exchange_trading_account_from_dict = ExchangeTradingAccount.from_dict(exchange_trading_account_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeGNoYW5nZVRyYWRpbmdBY2NvdW50CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKm5hbWUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFzc2V0cyoqIHwgWyoqTGlzdFtFeGNoYW5nZUFzc2V0XSoqXShFeGNoYW5nZUFzc2V0Lm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGNoYW5nZV90cmFkaW5nX2FjY291bnQgaW1wb3J0IEV4Y2hhbmdlVHJhZGluZ0FjY291bnQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEV4Y2hhbmdlVHJhZGluZ0FjY291bnQgZnJvbSBhIEpTT04gc3RyaW5nCmV4Y2hhbmdlX3RyYWRpbmdfYWNjb3VudF9pbnN0YW5jZSA9IEV4Y2hhbmdlVHJhZGluZ0FjY291bnQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRXhjaGFuZ2VUcmFkaW5nQWNjb3VudC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApleGNoYW5nZV90cmFkaW5nX2FjY291bnRfZGljdCA9IGV4Y2hhbmdlX3RyYWRpbmdfYWNjb3VudF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXhjaGFuZ2VUcmFkaW5nQWNjb3VudCBmcm9tIGEgZGljdApleGNoYW5nZV90cmFkaW5nX2FjY291bnRfZnJvbV9kaWN0ID0gRXhjaGFuZ2VUcmFkaW5nQWNjb3VudC5mcm9tX2RpY3QoZXhjaGFuZ2VfdHJhZGluZ19hY2NvdW50X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ExchangeType.md b/docs/ExchangeType.md index 5876fa78..ffeca1eb 100644 --- a/docs/ExchangeType.md +++ b/docs/ExchangeType.md @@ -1,93 +1 @@ -# ExchangeType - -Exchange account's type - -## Enum - -* `INDEPENDENT_RESERVE` (value: `'INDEPENDENT_RESERVE'`) - -* `ENCLAVE_MARKETS` (value: `'ENCLAVE_MARKETS'`) - -* `BIT` (value: `'BIT'`) - -* `COINFLEX` (value: `'COINFLEX'`) - -* `KUCOIN` (value: `'KUCOIN'`) - -* `PXS` (value: `'PXS'`) - -* `LIQUID` (value: `'LIQUID'`) - -* `BITHUMB` (value: `'BITHUMB'`) - -* `BITFINEX` (value: `'BITFINEX'`) - -* `BITSO` (value: `'BITSO'`) - -* `BITSTAMP` (value: `'BITSTAMP'`) - -* `KRAKEN` (value: `'KRAKEN'`) - -* `KRAKENINTL` (value: `'KRAKENINTL'`) - -* `BINANCE` (value: `'BINANCE'`) - -* `BINANCEUS` (value: `'BINANCEUS'`) - -* `CRYPTOCOM` (value: `'CRYPTOCOM'`) - -* `BYBIT_V2` (value: `'BYBIT_V2'`) - -* `COINBASEPRO` (value: `'COINBASEPRO'`) - -* `COINBASEPRIME` (value: `'COINBASEPRIME'`) - -* `COINBASEINTERNATIONAL` (value: `'COINBASEINTERNATIONAL'`) - -* `WHITEBIT` (value: `'WHITEBIT'`) - -* `COINBASEEXCHANGE` (value: `'COINBASEEXCHANGE'`) - -* `KORBIT` (value: `'KORBIT'`) - -* `HITBTC` (value: `'HITBTC'`) - -* `GEMINI` (value: `'GEMINI'`) - -* `CIRCLE` (value: `'CIRCLE'`) - -* `BITMEX` (value: `'BITMEX'`) - -* `HUOBI` (value: `'HUOBI'`) - -* `DERIBIT` (value: `'DERIBIT'`) - -* `OKCOIN_V5` (value: `'OKCOIN_V5'`) - -* `OKEX` (value: `'OKEX'`) - -* `COINMETRO` (value: `'COINMETRO'`) - -* `GATEIO` (value: `'GATEIO'`) - -* `SCRYPT` (value: `'SCRYPT'`) - -* `COINHAKO` (value: `'COINHAKO'`) - -* `LIGHTBIT` (value: `'LIGHTBIT'`) - -* `BULLISH` (value: `'BULLISH'`) - -* `CANVAS_CONNECT` (value: `'CANVAS_CONNECT'`) - -* `BITGET` (value: `'BITGET'`) - -* `LUNO` (value: `'LUNO'`) - -* `BIT_GENERA` (value: `'BIT_GENERA'`) - -* `TRANSFERO` (value: `'TRANSFERO'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeGNoYW5nZVR5cGUKCkV4Y2hhbmdlIGFjY291bnQncyB0eXBlCgojIyBFbnVtCgoqIGBJTkRFUEVOREVOVF9SRVNFUlZFYCAodmFsdWU6IGAnSU5ERVBFTkRFTlRfUkVTRVJWRSdgKQoKKiBgRU5DTEFWRV9NQVJLRVRTYCAodmFsdWU6IGAnRU5DTEFWRV9NQVJLRVRTJ2ApCgoqIGBCSVRgICh2YWx1ZTogYCdCSVQnYCkKCiogYENPSU5GTEVYYCAodmFsdWU6IGAnQ09JTkZMRVgnYCkKCiogYEtVQ09JTmAgKHZhbHVlOiBgJ0tVQ09JTidgKQoKKiBgUFhTYCAodmFsdWU6IGAnUFhTJ2ApCgoqIGBMSVFVSURgICh2YWx1ZTogYCdMSVFVSUQnYCkKCiogYEJJVEhVTUJgICh2YWx1ZTogYCdCSVRIVU1CJ2ApCgoqIGBCSVRGSU5FWGAgKHZhbHVlOiBgJ0JJVEZJTkVYJ2ApCgoqIGBCSVRTT2AgKHZhbHVlOiBgJ0JJVFNPJ2ApCgoqIGBCSVRTVEFNUGAgKHZhbHVlOiBgJ0JJVFNUQU1QJ2ApCgoqIGBLUkFLRU5gICh2YWx1ZTogYCdLUkFLRU4nYCkKCiogYEtSQUtFTklOVExgICh2YWx1ZTogYCdLUkFLRU5JTlRMJ2ApCgoqIGBCSU5BTkNFYCAodmFsdWU6IGAnQklOQU5DRSdgKQoKKiBgQklOQU5DRVVTYCAodmFsdWU6IGAnQklOQU5DRVVTJ2ApCgoqIGBDUllQVE9DT01gICh2YWx1ZTogYCdDUllQVE9DT00nYCkKCiogYEJZQklUX1YyYCAodmFsdWU6IGAnQllCSVRfVjInYCkKCiogYENPSU5CQVNFUFJPYCAodmFsdWU6IGAnQ09JTkJBU0VQUk8nYCkKCiogYENPSU5CQVNFUFJJTUVgICh2YWx1ZTogYCdDT0lOQkFTRVBSSU1FJ2ApCgoqIGBDT0lOQkFTRUlOVEVSTkFUSU9OQUxgICh2YWx1ZTogYCdDT0lOQkFTRUlOVEVSTkFUSU9OQUwnYCkKCiogYFdISVRFQklUYCAodmFsdWU6IGAnV0hJVEVCSVQnYCkKCiogYENPSU5CQVNFRVhDSEFOR0VgICh2YWx1ZTogYCdDT0lOQkFTRUVYQ0hBTkdFJ2ApCgoqIGBLT1JCSVRgICh2YWx1ZTogYCdLT1JCSVQnYCkKCiogYEhJVEJUQ2AgKHZhbHVlOiBgJ0hJVEJUQydgKQoKKiBgR0VNSU5JYCAodmFsdWU6IGAnR0VNSU5JJ2ApCgoqIGBDSVJDTEVgICh2YWx1ZTogYCdDSVJDTEUnYCkKCiogYEJJVE1FWGAgKHZhbHVlOiBgJ0JJVE1FWCdgKQoKKiBgSFVPQklgICh2YWx1ZTogYCdIVU9CSSdgKQoKKiBgREVSSUJJVGAgKHZhbHVlOiBgJ0RFUklCSVQnYCkKCiogYE9LQ09JTl9WNWAgKHZhbHVlOiBgJ09LQ09JTl9WNSdgKQoKKiBgT0tFWGAgKHZhbHVlOiBgJ09LRVgnYCkKCiogYENPSU5NRVRST2AgKHZhbHVlOiBgJ0NPSU5NRVRSTydgKQoKKiBgR0FURUlPYCAodmFsdWU6IGAnR0FURUlPJ2ApCgoqIGBTQ1JZUFRgICh2YWx1ZTogYCdTQ1JZUFQnYCkKCiogYENPSU5IQUtPYCAodmFsdWU6IGAnQ09JTkhBS08nYCkKCiogYExJR0hUQklUYCAodmFsdWU6IGAnTElHSFRCSVQnYCkKCiogYEJVTExJU0hgICh2YWx1ZTogYCdCVUxMSVNIJ2ApCgoqIGBDQU5WQVNfQ09OTkVDVGAgKHZhbHVlOiBgJ0NBTlZBU19DT05ORUNUJ2ApCgoqIGBCSVRHRVRgICh2YWx1ZTogYCdCSVRHRVQnYCkKCiogYExVTk9gICh2YWx1ZTogYCdMVU5PJ2ApCgoqIGBCSVRfR0VORVJBYCAodmFsdWU6IGAnQklUX0dFTkVSQSdgKQoKKiBgVFJBTlNGRVJPYCAodmFsdWU6IGAnVFJBTlNGRVJPJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ExecutionConversionOperation.md b/docs/ExecutionConversionOperation.md index dde7704d..e22d0120 100644 --- a/docs/ExecutionConversionOperation.md +++ b/docs/ExecutionConversionOperation.md @@ -1,34 +1 @@ -# ExecutionConversionOperation - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**operation_id** | **str** | | -**status** | [**ExecutionOperationStatus**](ExecutionOperationStatus.md) | | -**validation_failure** | [**ConversionValidationFailure**](ConversionValidationFailure.md) | | [optional] -**operation_type** | [**ConversionOperationType**](ConversionOperationType.md) | | -**preview** | [**ConversionOperationPreview**](ConversionOperationPreview.md) | | [optional] -**execution** | [**ConversionOperationExecution**](ConversionOperationExecution.md) | | [optional] - -## Example - -```python -from fireblocks.models.execution_conversion_operation import ExecutionConversionOperation - -# TODO update the JSON string below -json = "{}" -# create an instance of ExecutionConversionOperation from a JSON string -execution_conversion_operation_instance = ExecutionConversionOperation.from_json(json) -# print the JSON string representation of the object -print(ExecutionConversionOperation.to_json()) - -# convert the object into a dict -execution_conversion_operation_dict = execution_conversion_operation_instance.to_dict() -# create an instance of ExecutionConversionOperation from a dict -execution_conversion_operation_from_dict = ExecutionConversionOperation.from_dict(execution_conversion_operation_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeGVjdXRpb25Db252ZXJzaW9uT3BlcmF0aW9uCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm9wZXJhdGlvbl9pZCoqIHwgKipzdHIqKiB8ICB8IAoqKnN0YXR1cyoqIHwgWyoqRXhlY3V0aW9uT3BlcmF0aW9uU3RhdHVzKipdKEV4ZWN1dGlvbk9wZXJhdGlvblN0YXR1cy5tZCkgfCAgfCAKKip2YWxpZGF0aW9uX2ZhaWx1cmUqKiB8IFsqKkNvbnZlcnNpb25WYWxpZGF0aW9uRmFpbHVyZSoqXShDb252ZXJzaW9uVmFsaWRhdGlvbkZhaWx1cmUubWQpIHwgIHwgW29wdGlvbmFsXSAKKipvcGVyYXRpb25fdHlwZSoqIHwgWyoqQ29udmVyc2lvbk9wZXJhdGlvblR5cGUqKl0oQ29udmVyc2lvbk9wZXJhdGlvblR5cGUubWQpIHwgIHwgCioqcHJldmlldyoqIHwgWyoqQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXcqKl0oQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXcubWQpIHwgIHwgW29wdGlvbmFsXSAKKipleGVjdXRpb24qKiB8IFsqKkNvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb24qKl0oQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvbi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhlY3V0aW9uX2NvbnZlcnNpb25fb3BlcmF0aW9uIGltcG9ydCBFeGVjdXRpb25Db252ZXJzaW9uT3BlcmF0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeGVjdXRpb25Db252ZXJzaW9uT3BlcmF0aW9uIGZyb20gYSBKU09OIHN0cmluZwpleGVjdXRpb25fY29udmVyc2lvbl9vcGVyYXRpb25faW5zdGFuY2UgPSBFeGVjdXRpb25Db252ZXJzaW9uT3BlcmF0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEV4ZWN1dGlvbkNvbnZlcnNpb25PcGVyYXRpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZXhlY3V0aW9uX2NvbnZlcnNpb25fb3BlcmF0aW9uX2RpY3QgPSBleGVjdXRpb25fY29udmVyc2lvbl9vcGVyYXRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEV4ZWN1dGlvbkNvbnZlcnNpb25PcGVyYXRpb24gZnJvbSBhIGRpY3QKZXhlY3V0aW9uX2NvbnZlcnNpb25fb3BlcmF0aW9uX2Zyb21fZGljdCA9IEV4ZWN1dGlvbkNvbnZlcnNpb25PcGVyYXRpb24uZnJvbV9kaWN0KGV4ZWN1dGlvbl9jb252ZXJzaW9uX29wZXJhdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ExecutionDisbursementOperation.md b/docs/ExecutionDisbursementOperation.md index 4d6a02c8..69550b0d 100644 --- a/docs/ExecutionDisbursementOperation.md +++ b/docs/ExecutionDisbursementOperation.md @@ -1,34 +1 @@ -# ExecutionDisbursementOperation - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**operation_id** | **str** | | -**status** | [**ExecutionOperationStatus**](ExecutionOperationStatus.md) | | -**validation_failure** | [**DisbursementValidationFailure**](DisbursementValidationFailure.md) | | [optional] -**operation_type** | [**DisbursementOperationType**](DisbursementOperationType.md) | | -**preview** | [**DisbursementOperationPreview**](DisbursementOperationPreview.md) | | [optional] -**execution** | [**DisbursementOperationExecution**](DisbursementOperationExecution.md) | | [optional] - -## Example - -```python -from fireblocks.models.execution_disbursement_operation import ExecutionDisbursementOperation - -# TODO update the JSON string below -json = "{}" -# create an instance of ExecutionDisbursementOperation from a JSON string -execution_disbursement_operation_instance = ExecutionDisbursementOperation.from_json(json) -# print the JSON string representation of the object -print(ExecutionDisbursementOperation.to_json()) - -# convert the object into a dict -execution_disbursement_operation_dict = execution_disbursement_operation_instance.to_dict() -# create an instance of ExecutionDisbursementOperation from a dict -execution_disbursement_operation_from_dict = ExecutionDisbursementOperation.from_dict(execution_disbursement_operation_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeGVjdXRpb25EaXNidXJzZW1lbnRPcGVyYXRpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqb3BlcmF0aW9uX2lkKiogfCAqKnN0cioqIHwgIHwgCioqc3RhdHVzKiogfCBbKipFeGVjdXRpb25PcGVyYXRpb25TdGF0dXMqKl0oRXhlY3V0aW9uT3BlcmF0aW9uU3RhdHVzLm1kKSB8ICB8IAoqKnZhbGlkYXRpb25fZmFpbHVyZSoqIHwgWyoqRGlzYnVyc2VtZW50VmFsaWRhdGlvbkZhaWx1cmUqKl0oRGlzYnVyc2VtZW50VmFsaWRhdGlvbkZhaWx1cmUubWQpIHwgIHwgW29wdGlvbmFsXSAKKipvcGVyYXRpb25fdHlwZSoqIHwgWyoqRGlzYnVyc2VtZW50T3BlcmF0aW9uVHlwZSoqXShEaXNidXJzZW1lbnRPcGVyYXRpb25UeXBlLm1kKSB8ICB8IAoqKnByZXZpZXcqKiB8IFsqKkRpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXcqKl0oRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlldy5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmV4ZWN1dGlvbioqIHwgWyoqRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uKipdKERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhlY3V0aW9uX2Rpc2J1cnNlbWVudF9vcGVyYXRpb24gaW1wb3J0IEV4ZWN1dGlvbkRpc2J1cnNlbWVudE9wZXJhdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXhlY3V0aW9uRGlzYnVyc2VtZW50T3BlcmF0aW9uIGZyb20gYSBKU09OIHN0cmluZwpleGVjdXRpb25fZGlzYnVyc2VtZW50X29wZXJhdGlvbl9pbnN0YW5jZSA9IEV4ZWN1dGlvbkRpc2J1cnNlbWVudE9wZXJhdGlvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChFeGVjdXRpb25EaXNidXJzZW1lbnRPcGVyYXRpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZXhlY3V0aW9uX2Rpc2J1cnNlbWVudF9vcGVyYXRpb25fZGljdCA9IGV4ZWN1dGlvbl9kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeGVjdXRpb25EaXNidXJzZW1lbnRPcGVyYXRpb24gZnJvbSBhIGRpY3QKZXhlY3V0aW9uX2Rpc2J1cnNlbWVudF9vcGVyYXRpb25fZnJvbV9kaWN0ID0gRXhlY3V0aW9uRGlzYnVyc2VtZW50T3BlcmF0aW9uLmZyb21fZGljdChleGVjdXRpb25fZGlzYnVyc2VtZW50X29wZXJhdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ExecutionOperationStatus.md b/docs/ExecutionOperationStatus.md index 2e1ca5c0..9d0f222b 100644 --- a/docs/ExecutionOperationStatus.md +++ b/docs/ExecutionOperationStatus.md @@ -1,32 +1 @@ -# ExecutionOperationStatus - - -## Enum - -* `PENDING` (value: `'PENDING'`) - -* `VALIDATION_IN_PROGRESS` (value: `'VALIDATION_IN_PROGRESS'`) - -* `VALIDATION_FAILED` (value: `'VALIDATION_FAILED'`) - -* `VALIDATION_COMPLETED` (value: `'VALIDATION_COMPLETED'`) - -* `PREVIEW_REQUESTED` (value: `'PREVIEW_REQUESTED'`) - -* `PREVIEW_IN_PROGRESS` (value: `'PREVIEW_IN_PROGRESS'`) - -* `PREVIEW_FAILED` (value: `'PREVIEW_FAILED'`) - -* `READY_FOR_LAUNCH` (value: `'READY_FOR_LAUNCH'`) - -* `EXECUTION_REQUESTED` (value: `'EXECUTION_REQUESTED'`) - -* `EXECUTION_IN_PROGRESS` (value: `'EXECUTION_IN_PROGRESS'`) - -* `EXECUTION_COMPLETED` (value: `'EXECUTION_COMPLETED'`) - -* `EXECUTION_FAILED` (value: `'EXECUTION_FAILED'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeGVjdXRpb25PcGVyYXRpb25TdGF0dXMKCgojIyBFbnVtCgoqIGBQRU5ESU5HYCAodmFsdWU6IGAnUEVORElORydgKQoKKiBgVkFMSURBVElPTl9JTl9QUk9HUkVTU2AgKHZhbHVlOiBgJ1ZBTElEQVRJT05fSU5fUFJPR1JFU1MnYCkKCiogYFZBTElEQVRJT05fRkFJTEVEYCAodmFsdWU6IGAnVkFMSURBVElPTl9GQUlMRUQnYCkKCiogYFZBTElEQVRJT05fQ09NUExFVEVEYCAodmFsdWU6IGAnVkFMSURBVElPTl9DT01QTEVURUQnYCkKCiogYFBSRVZJRVdfUkVRVUVTVEVEYCAodmFsdWU6IGAnUFJFVklFV19SRVFVRVNURUQnYCkKCiogYFBSRVZJRVdfSU5fUFJPR1JFU1NgICh2YWx1ZTogYCdQUkVWSUVXX0lOX1BST0dSRVNTJ2ApCgoqIGBQUkVWSUVXX0ZBSUxFRGAgKHZhbHVlOiBgJ1BSRVZJRVdfRkFJTEVEJ2ApCgoqIGBSRUFEWV9GT1JfTEFVTkNIYCAodmFsdWU6IGAnUkVBRFlfRk9SX0xBVU5DSCdgKQoKKiBgRVhFQ1VUSU9OX1JFUVVFU1RFRGAgKHZhbHVlOiBgJ0VYRUNVVElPTl9SRVFVRVNURUQnYCkKCiogYEVYRUNVVElPTl9JTl9QUk9HUkVTU2AgKHZhbHVlOiBgJ0VYRUNVVElPTl9JTl9QUk9HUkVTUydgKQoKKiBgRVhFQ1VUSU9OX0NPTVBMRVRFRGAgKHZhbHVlOiBgJ0VYRUNVVElPTl9DT01QTEVURUQnYCkKCiogYEVYRUNVVElPTl9GQUlMRURgICh2YWx1ZTogYCdFWEVDVVRJT05fRkFJTEVEJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ExecutionRequestBaseDetails.md b/docs/ExecutionRequestBaseDetails.md index 521d0365..ee9a7a75 100644 --- a/docs/ExecutionRequestBaseDetails.md +++ b/docs/ExecutionRequestBaseDetails.md @@ -1,34 +1 @@ -# ExecutionRequestBaseDetails - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**side** | [**Side**](Side.md) | | -**base_amount** | **str** | Amount in baseAssetId. BUY = base amount to receive; SELL = base amount to sell. | -**base_asset_id** | **str** | The asset you receive on BUY / give on SELL. | -**base_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional] -**quote_asset_id** | **str** | Counter asset used to pay/receive | -**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional] - -## Example - -```python -from fireblocks.models.execution_request_base_details import ExecutionRequestBaseDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of ExecutionRequestBaseDetails from a JSON string -execution_request_base_details_instance = ExecutionRequestBaseDetails.from_json(json) -# print the JSON string representation of the object -print(ExecutionRequestBaseDetails.to_json()) - -# convert the object into a dict -execution_request_base_details_dict = execution_request_base_details_instance.to_dict() -# create an instance of ExecutionRequestBaseDetails from a dict -execution_request_base_details_from_dict = ExecutionRequestBaseDetails.from_dict(execution_request_base_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeGVjdXRpb25SZXF1ZXN0QmFzZURldGFpbHMKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc2lkZSoqIHwgWyoqU2lkZSoqXShTaWRlLm1kKSB8ICB8IAoqKmJhc2VfYW1vdW50KiogfCAqKnN0cioqIHwgQW1vdW50IGluIGJhc2VBc3NldElkLiBCVVkgJiN4M0Q7IGJhc2UgYW1vdW50IHRvIHJlY2VpdmU7IFNFTEwgJiN4M0Q7IGJhc2UgYW1vdW50IHRvIHNlbGwuIHwgCioqYmFzZV9hc3NldF9pZCoqIHwgKipzdHIqKiB8IFRoZSBhc3NldCB5b3UgcmVjZWl2ZSBvbiBCVVkgLyBnaXZlIG9uIFNFTEwuIHwgCioqYmFzZV9hc3NldF9yYWlsKiogfCBbKipUcmFuc2ZlclJhaWwqKl0oVHJhbnNmZXJSYWlsLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqcXVvdGVfYXNzZXRfaWQqKiB8ICoqc3RyKiogfCBDb3VudGVyIGFzc2V0IHVzZWQgdG8gcGF5L3JlY2VpdmUgfCAKKipxdW90ZV9hc3NldF9yYWlsKiogfCBbKipUcmFuc2ZlclJhaWwqKl0oVHJhbnNmZXJSYWlsLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGVjdXRpb25fcmVxdWVzdF9iYXNlX2RldGFpbHMgaW1wb3J0IEV4ZWN1dGlvblJlcXVlc3RCYXNlRGV0YWlscwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXhlY3V0aW9uUmVxdWVzdEJhc2VEZXRhaWxzIGZyb20gYSBKU09OIHN0cmluZwpleGVjdXRpb25fcmVxdWVzdF9iYXNlX2RldGFpbHNfaW5zdGFuY2UgPSBFeGVjdXRpb25SZXF1ZXN0QmFzZURldGFpbHMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRXhlY3V0aW9uUmVxdWVzdEJhc2VEZXRhaWxzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmV4ZWN1dGlvbl9yZXF1ZXN0X2Jhc2VfZGV0YWlsc19kaWN0ID0gZXhlY3V0aW9uX3JlcXVlc3RfYmFzZV9kZXRhaWxzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeGVjdXRpb25SZXF1ZXN0QmFzZURldGFpbHMgZnJvbSBhIGRpY3QKZXhlY3V0aW9uX3JlcXVlc3RfYmFzZV9kZXRhaWxzX2Zyb21fZGljdCA9IEV4ZWN1dGlvblJlcXVlc3RCYXNlRGV0YWlscy5mcm9tX2RpY3QoZXhlY3V0aW9uX3JlcXVlc3RfYmFzZV9kZXRhaWxzX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ExecutionRequestDetails.md b/docs/ExecutionRequestDetails.md index ef4445cd..9f1c314e 100644 --- a/docs/ExecutionRequestDetails.md +++ b/docs/ExecutionRequestDetails.md @@ -1,38 +1 @@ -# ExecutionRequestDetails - -Order execution details - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**QuoteTypeEnum**](QuoteTypeEnum.md) | | -**side** | [**Side**](Side.md) | | -**base_amount** | **str** | Amount in baseAssetId. BUY = base amount to receive; SELL = base amount to sell. | -**base_asset_id** | **str** | The asset you receive on BUY / give on SELL. | -**base_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional] -**quote_asset_id** | **str** | Counter asset used to pay/receive | -**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional] -**quote_id** | **str** | Quote ID for quote orders | -**re_quote** | [**ReQuoteDetailsReQuote**](ReQuoteDetailsReQuote.md) | | [optional] - -## Example - -```python -from fireblocks.models.execution_request_details import ExecutionRequestDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of ExecutionRequestDetails from a JSON string -execution_request_details_instance = ExecutionRequestDetails.from_json(json) -# print the JSON string representation of the object -print(ExecutionRequestDetails.to_json()) - -# convert the object into a dict -execution_request_details_dict = execution_request_details_instance.to_dict() -# create an instance of ExecutionRequestDetails from a dict -execution_request_details_from_dict = ExecutionRequestDetails.from_dict(execution_request_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeGVjdXRpb25SZXF1ZXN0RGV0YWlscwoKT3JkZXIgZXhlY3V0aW9uIGRldGFpbHMKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eXBlKiogfCBbKipRdW90ZVR5cGVFbnVtKipdKFF1b3RlVHlwZUVudW0ubWQpIHwgIHwgCioqc2lkZSoqIHwgWyoqU2lkZSoqXShTaWRlLm1kKSB8ICB8IAoqKmJhc2VfYW1vdW50KiogfCAqKnN0cioqIHwgQW1vdW50IGluIGJhc2VBc3NldElkLiBCVVkgJiN4M0Q7IGJhc2UgYW1vdW50IHRvIHJlY2VpdmU7IFNFTEwgJiN4M0Q7IGJhc2UgYW1vdW50IHRvIHNlbGwuIHwgCioqYmFzZV9hc3NldF9pZCoqIHwgKipzdHIqKiB8IFRoZSBhc3NldCB5b3UgcmVjZWl2ZSBvbiBCVVkgLyBnaXZlIG9uIFNFTEwuIHwgCioqYmFzZV9hc3NldF9yYWlsKiogfCBbKipUcmFuc2ZlclJhaWwqKl0oVHJhbnNmZXJSYWlsLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqcXVvdGVfYXNzZXRfaWQqKiB8ICoqc3RyKiogfCBDb3VudGVyIGFzc2V0IHVzZWQgdG8gcGF5L3JlY2VpdmUgfCAKKipxdW90ZV9hc3NldF9yYWlsKiogfCBbKipUcmFuc2ZlclJhaWwqKl0oVHJhbnNmZXJSYWlsLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqcXVvdGVfaWQqKiB8ICoqc3RyKiogfCBRdW90ZSBJRCBmb3IgcXVvdGUgb3JkZXJzIHwgCioqcmVfcXVvdGUqKiB8IFsqKlJlUXVvdGVEZXRhaWxzUmVRdW90ZSoqXShSZVF1b3RlRGV0YWlsc1JlUXVvdGUubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHMgaW1wb3J0IEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeGVjdXRpb25SZXF1ZXN0RGV0YWlscyBmcm9tIGEgSlNPTiBzdHJpbmcKZXhlY3V0aW9uX3JlcXVlc3RfZGV0YWlsc19pbnN0YW5jZSA9IEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmV4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHNfZGljdCA9IGV4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHNfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzIGZyb20gYSBkaWN0CmV4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHNfZnJvbV9kaWN0ID0gRXhlY3V0aW9uUmVxdWVzdERldGFpbHMuZnJvbV9kaWN0KGV4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ExecutionRequestDetailsType.md b/docs/ExecutionRequestDetailsType.md new file mode 100644 index 00000000..9ea6c6a1 --- /dev/null +++ b/docs/ExecutionRequestDetailsType.md @@ -0,0 +1 @@ +IyBFeGVjdXRpb25SZXF1ZXN0RGV0YWlsc1R5cGUKCkV4ZWN1dGlvbiB0eXBlIHN1cHBvcnRlZCBieSB0aGUgcHJvdmlkZXIKCiMjIEVudW0KCiogYFFVT1RFYCAodmFsdWU6IGAnUVVPVEUnYCkKCiogYE1BUktFVGAgKHZhbHVlOiBgJ01BUktFVCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ExecutionResponseBaseDetails.md b/docs/ExecutionResponseBaseDetails.md index aabbfa85..82f26559 100644 --- a/docs/ExecutionResponseBaseDetails.md +++ b/docs/ExecutionResponseBaseDetails.md @@ -1,34 +1 @@ -# ExecutionResponseBaseDetails - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**side** | [**Side**](Side.md) | | -**base_amount** | **str** | Amount to convert | -**base_asset_id** | **str** | Source asset identifier | -**base_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional] -**quote_asset_id** | **str** | Target asset identifier | -**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional] - -## Example - -```python -from fireblocks.models.execution_response_base_details import ExecutionResponseBaseDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of ExecutionResponseBaseDetails from a JSON string -execution_response_base_details_instance = ExecutionResponseBaseDetails.from_json(json) -# print the JSON string representation of the object -print(ExecutionResponseBaseDetails.to_json()) - -# convert the object into a dict -execution_response_base_details_dict = execution_response_base_details_instance.to_dict() -# create an instance of ExecutionResponseBaseDetails from a dict -execution_response_base_details_from_dict = ExecutionResponseBaseDetails.from_dict(execution_response_base_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeGVjdXRpb25SZXNwb25zZUJhc2VEZXRhaWxzCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnNpZGUqKiB8IFsqKlNpZGUqKl0oU2lkZS5tZCkgfCAgfCAKKipiYXNlX2Ftb3VudCoqIHwgKipzdHIqKiB8IEFtb3VudCB0byBjb252ZXJ0IHwgCioqYmFzZV9hc3NldF9pZCoqIHwgKipzdHIqKiB8IFNvdXJjZSBhc3NldCBpZGVudGlmaWVyIHwgCioqYmFzZV9hc3NldF9yYWlsKiogfCBbKipUcmFuc2ZlclJhaWwqKl0oVHJhbnNmZXJSYWlsLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqcXVvdGVfYXNzZXRfaWQqKiB8ICoqc3RyKiogfCBUYXJnZXQgYXNzZXQgaWRlbnRpZmllciB8IAoqKnF1b3RlX2Fzc2V0X3JhaWwqKiB8IFsqKlRyYW5zZmVyUmFpbCoqXShUcmFuc2ZlclJhaWwubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9yZXNwb25zZV9iYXNlX2RldGFpbHMgaW1wb3J0IEV4ZWN1dGlvblJlc3BvbnNlQmFzZURldGFpbHMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEV4ZWN1dGlvblJlc3BvbnNlQmFzZURldGFpbHMgZnJvbSBhIEpTT04gc3RyaW5nCmV4ZWN1dGlvbl9yZXNwb25zZV9iYXNlX2RldGFpbHNfaW5zdGFuY2UgPSBFeGVjdXRpb25SZXNwb25zZUJhc2VEZXRhaWxzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEV4ZWN1dGlvblJlc3BvbnNlQmFzZURldGFpbHMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZXhlY3V0aW9uX3Jlc3BvbnNlX2Jhc2VfZGV0YWlsc19kaWN0ID0gZXhlY3V0aW9uX3Jlc3BvbnNlX2Jhc2VfZGV0YWlsc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXhlY3V0aW9uUmVzcG9uc2VCYXNlRGV0YWlscyBmcm9tIGEgZGljdApleGVjdXRpb25fcmVzcG9uc2VfYmFzZV9kZXRhaWxzX2Zyb21fZGljdCA9IEV4ZWN1dGlvblJlc3BvbnNlQmFzZURldGFpbHMuZnJvbV9kaWN0KGV4ZWN1dGlvbl9yZXNwb25zZV9iYXNlX2RldGFpbHNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ExecutionResponseDetails.md b/docs/ExecutionResponseDetails.md index 51a7c76e..03681daa 100644 --- a/docs/ExecutionResponseDetails.md +++ b/docs/ExecutionResponseDetails.md @@ -1,38 +1 @@ -# ExecutionResponseDetails - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**QuoteTypeEnum**](QuoteTypeEnum.md) | | -**side** | [**Side**](Side.md) | | -**base_amount** | **str** | Amount to convert | -**base_asset_id** | **str** | Source asset identifier | -**base_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional] -**quote_asset_id** | **str** | Target asset identifier | -**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional] -**quote_id** | **str** | Quote ID for quote orders | -**quote_amount** | **str** | Quote amount for quote orders | -**re_quote** | [**ReQuoteDetailsReQuote**](ReQuoteDetailsReQuote.md) | | [optional] - -## Example - -```python -from fireblocks.models.execution_response_details import ExecutionResponseDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of ExecutionResponseDetails from a JSON string -execution_response_details_instance = ExecutionResponseDetails.from_json(json) -# print the JSON string representation of the object -print(ExecutionResponseDetails.to_json()) - -# convert the object into a dict -execution_response_details_dict = execution_response_details_instance.to_dict() -# create an instance of ExecutionResponseDetails from a dict -execution_response_details_from_dict = ExecutionResponseDetails.from_dict(execution_response_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeGVjdXRpb25SZXNwb25zZURldGFpbHMKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgWyoqUXVvdGVUeXBlRW51bSoqXShRdW90ZVR5cGVFbnVtLm1kKSB8ICB8IAoqKnNpZGUqKiB8IFsqKlNpZGUqKl0oU2lkZS5tZCkgfCAgfCAKKipiYXNlX2Ftb3VudCoqIHwgKipzdHIqKiB8IEFtb3VudCB0byBjb252ZXJ0IHwgCioqYmFzZV9hc3NldF9pZCoqIHwgKipzdHIqKiB8IFNvdXJjZSBhc3NldCBpZGVudGlmaWVyIHwgCioqYmFzZV9hc3NldF9yYWlsKiogfCBbKipUcmFuc2ZlclJhaWwqKl0oVHJhbnNmZXJSYWlsLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqcXVvdGVfYXNzZXRfaWQqKiB8ICoqc3RyKiogfCBUYXJnZXQgYXNzZXQgaWRlbnRpZmllciB8IAoqKnF1b3RlX2Fzc2V0X3JhaWwqKiB8IFsqKlRyYW5zZmVyUmFpbCoqXShUcmFuc2ZlclJhaWwubWQpIHwgIHwgW29wdGlvbmFsXSAKKipxdW90ZV9pZCoqIHwgKipzdHIqKiB8IFF1b3RlIElEIGZvciBxdW90ZSBvcmRlcnMgfCAKKipxdW90ZV9hbW91bnQqKiB8ICoqc3RyKiogfCBRdW90ZSBhbW91bnQgZm9yIHF1b3RlIG9yZGVycyB8IAoqKnJlX3F1b3RlKiogfCBbKipSZVF1b3RlRGV0YWlsc1JlUXVvdGUqKl0oUmVRdW90ZURldGFpbHNSZVF1b3RlLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGVjdXRpb25fcmVzcG9uc2VfZGV0YWlscyBpbXBvcnQgRXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeGVjdXRpb25SZXNwb25zZURldGFpbHMgZnJvbSBhIEpTT04gc3RyaW5nCmV4ZWN1dGlvbl9yZXNwb25zZV9kZXRhaWxzX2luc3RhbmNlID0gRXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEV4ZWN1dGlvblJlc3BvbnNlRGV0YWlscy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApleGVjdXRpb25fcmVzcG9uc2VfZGV0YWlsc19kaWN0ID0gZXhlY3V0aW9uX3Jlc3BvbnNlX2RldGFpbHNfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEV4ZWN1dGlvblJlc3BvbnNlRGV0YWlscyBmcm9tIGEgZGljdApleGVjdXRpb25fcmVzcG9uc2VfZGV0YWlsc19mcm9tX2RpY3QgPSBFeGVjdXRpb25SZXNwb25zZURldGFpbHMuZnJvbV9kaWN0KGV4ZWN1dGlvbl9yZXNwb25zZV9kZXRhaWxzX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ExecutionScreeningOperation.md b/docs/ExecutionScreeningOperation.md index 406448ee..593b26ff 100644 --- a/docs/ExecutionScreeningOperation.md +++ b/docs/ExecutionScreeningOperation.md @@ -1,33 +1 @@ -# ExecutionScreeningOperation - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**operation_id** | **str** | | -**status** | [**ExecutionOperationStatus**](ExecutionOperationStatus.md) | | -**operation_type** | [**ScreeningOperationType**](ScreeningOperationType.md) | | -**validation_failure** | [**ScreeningValidationFailure**](ScreeningValidationFailure.md) | | [optional] -**execution** | [**ScreeningOperationExecution**](ScreeningOperationExecution.md) | | [optional] - -## Example - -```python -from fireblocks.models.execution_screening_operation import ExecutionScreeningOperation - -# TODO update the JSON string below -json = "{}" -# create an instance of ExecutionScreeningOperation from a JSON string -execution_screening_operation_instance = ExecutionScreeningOperation.from_json(json) -# print the JSON string representation of the object -print(ExecutionScreeningOperation.to_json()) - -# convert the object into a dict -execution_screening_operation_dict = execution_screening_operation_instance.to_dict() -# create an instance of ExecutionScreeningOperation from a dict -execution_screening_operation_from_dict = ExecutionScreeningOperation.from_dict(execution_screening_operation_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeGVjdXRpb25TY3JlZW5pbmdPcGVyYXRpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqb3BlcmF0aW9uX2lkKiogfCAqKnN0cioqIHwgIHwgCioqc3RhdHVzKiogfCBbKipFeGVjdXRpb25PcGVyYXRpb25TdGF0dXMqKl0oRXhlY3V0aW9uT3BlcmF0aW9uU3RhdHVzLm1kKSB8ICB8IAoqKm9wZXJhdGlvbl90eXBlKiogfCBbKipTY3JlZW5pbmdPcGVyYXRpb25UeXBlKipdKFNjcmVlbmluZ09wZXJhdGlvblR5cGUubWQpIHwgIHwgCioqdmFsaWRhdGlvbl9mYWlsdXJlKiogfCBbKipTY3JlZW5pbmdWYWxpZGF0aW9uRmFpbHVyZSoqXShTY3JlZW5pbmdWYWxpZGF0aW9uRmFpbHVyZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmV4ZWN1dGlvbioqIHwgWyoqU2NyZWVuaW5nT3BlcmF0aW9uRXhlY3V0aW9uKipdKFNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhlY3V0aW9uX3NjcmVlbmluZ19vcGVyYXRpb24gaW1wb3J0IEV4ZWN1dGlvblNjcmVlbmluZ09wZXJhdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXhlY3V0aW9uU2NyZWVuaW5nT3BlcmF0aW9uIGZyb20gYSBKU09OIHN0cmluZwpleGVjdXRpb25fc2NyZWVuaW5nX29wZXJhdGlvbl9pbnN0YW5jZSA9IEV4ZWN1dGlvblNjcmVlbmluZ09wZXJhdGlvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChFeGVjdXRpb25TY3JlZW5pbmdPcGVyYXRpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZXhlY3V0aW9uX3NjcmVlbmluZ19vcGVyYXRpb25fZGljdCA9IGV4ZWN1dGlvbl9zY3JlZW5pbmdfb3BlcmF0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeGVjdXRpb25TY3JlZW5pbmdPcGVyYXRpb24gZnJvbSBhIGRpY3QKZXhlY3V0aW9uX3NjcmVlbmluZ19vcGVyYXRpb25fZnJvbV9kaWN0ID0gRXhlY3V0aW9uU2NyZWVuaW5nT3BlcmF0aW9uLmZyb21fZGljdChleGVjdXRpb25fc2NyZWVuaW5nX29wZXJhdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ExecutionStepError.md b/docs/ExecutionStepError.md index 58abf127..a6e536f5 100644 --- a/docs/ExecutionStepError.md +++ b/docs/ExecutionStepError.md @@ -1,22 +1 @@ -# ExecutionStepError - - -## Enum - -* `INTERNAL_ERROR` (value: `'INTERNAL_ERROR'`) - -* `QUOTE_EXPIRED` (value: `'QUOTE_EXPIRED'`) - -* `INSUFFICIENT_OUTPUT_AMOUNT` (value: `'INSUFFICIENT_OUTPUT_AMOUNT'`) - -* `INSUFFICIENT_FUNDS` (value: `'INSUFFICIENT_FUNDS'`) - -* `LAST_TRANSACTION_FAILED` (value: `'LAST_TRANSACTION_FAILED'`) - -* `SWAP_APPROVAL_FAILED` (value: `'SWAP_APPROVAL_FAILED'`) - -* `PROVIDER_EXECUTION_ERROR` (value: `'PROVIDER_EXECUTION_ERROR'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeGVjdXRpb25TdGVwRXJyb3IKCgojIyBFbnVtCgoqIGBJTlRFUk5BTF9FUlJPUmAgKHZhbHVlOiBgJ0lOVEVSTkFMX0VSUk9SJ2ApCgoqIGBRVU9URV9FWFBJUkVEYCAodmFsdWU6IGAnUVVPVEVfRVhQSVJFRCdgKQoKKiBgSU5TVUZGSUNJRU5UX09VVFBVVF9BTU9VTlRgICh2YWx1ZTogYCdJTlNVRkZJQ0lFTlRfT1VUUFVUX0FNT1VOVCdgKQoKKiBgSU5TVUZGSUNJRU5UX0ZVTkRTYCAodmFsdWU6IGAnSU5TVUZGSUNJRU5UX0ZVTkRTJ2ApCgoqIGBMQVNUX1RSQU5TQUNUSU9OX0ZBSUxFRGAgKHZhbHVlOiBgJ0xBU1RfVFJBTlNBQ1RJT05fRkFJTEVEJ2ApCgoqIGBTV0FQX0FQUFJPVkFMX0ZBSUxFRGAgKHZhbHVlOiBgJ1NXQVBfQVBQUk9WQUxfRkFJTEVEJ2ApCgoqIGBQUk9WSURFUl9FWEVDVVRJT05fRVJST1JgICh2YWx1ZTogYCdQUk9WSURFUl9FWEVDVVRJT05fRVJST1InYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ExecutionStepStatusEnum.md b/docs/ExecutionStepStatusEnum.md index ee27a6bc..c02e1716 100644 --- a/docs/ExecutionStepStatusEnum.md +++ b/docs/ExecutionStepStatusEnum.md @@ -1,18 +1 @@ -# ExecutionStepStatusEnum - - -## Enum - -* `WAITING` (value: `'WAITING'`) - -* `PROCESSING` (value: `'PROCESSING'`) - -* `COMPLETED` (value: `'COMPLETED'`) - -* `FAILED` (value: `'FAILED'`) - -* `CANCELLED` (value: `'CANCELLED'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeGVjdXRpb25TdGVwU3RhdHVzRW51bQoKCiMjIEVudW0KCiogYFdBSVRJTkdgICh2YWx1ZTogYCdXQUlUSU5HJ2ApCgoqIGBQUk9DRVNTSU5HYCAodmFsdWU6IGAnUFJPQ0VTU0lORydgKQoKKiBgQ09NUExFVEVEYCAodmFsdWU6IGAnQ09NUExFVEVEJ2ApCgoqIGBGQUlMRURgICh2YWx1ZTogYCdGQUlMRUQnYCkKCiogYENBTkNFTExFRGAgKHZhbHVlOiBgJ0NBTkNFTExFRCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ExecutionStepType.md b/docs/ExecutionStepType.md index 80c28855..2b9d22fe 100644 --- a/docs/ExecutionStepType.md +++ b/docs/ExecutionStepType.md @@ -1,20 +1 @@ -# ExecutionStepType - - -## Enum - -* `APPROVE` (value: `'APPROVE'`) - -* `PERMIT` (value: `'PERMIT'`) - -* `CONTRACT_CALL` (value: `'CONTRACT_CALL'`) - -* `EXECUTE` (value: `'EXECUTE'`) - -* `SETTLEMENT` (value: `'SETTLEMENT'`) - -* `DELIVERY` (value: `'DELIVERY'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeGVjdXRpb25TdGVwVHlwZQoKCiMjIEVudW0KCiogYEFQUFJPVkVgICh2YWx1ZTogYCdBUFBST1ZFJ2ApCgoqIGBQRVJNSVRgICh2YWx1ZTogYCdQRVJNSVQnYCkKCiogYENPTlRSQUNUX0NBTExgICh2YWx1ZTogYCdDT05UUkFDVF9DQUxMJ2ApCgoqIGBFWEVDVVRFYCAodmFsdWU6IGAnRVhFQ1VURSdgKQoKKiBgU0VUVExFTUVOVGAgKHZhbHVlOiBgJ1NFVFRMRU1FTlQnYCkKCiogYERFTElWRVJZYCAodmFsdWU6IGAnREVMSVZFUlknYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ExecutionTransferOperation.md b/docs/ExecutionTransferOperation.md index d84070df..ba5289fc 100644 --- a/docs/ExecutionTransferOperation.md +++ b/docs/ExecutionTransferOperation.md @@ -1,34 +1 @@ -# ExecutionTransferOperation - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**operation_id** | **str** | | -**status** | [**ExecutionOperationStatus**](ExecutionOperationStatus.md) | | -**validation_failure** | [**TransferValidationFailure**](TransferValidationFailure.md) | | [optional] -**operation_type** | [**TransferOperationType**](TransferOperationType.md) | | -**preview** | [**TransferOperationPreview**](TransferOperationPreview.md) | | [optional] -**execution** | [**TransferOperationExecution**](TransferOperationExecution.md) | | [optional] - -## Example - -```python -from fireblocks.models.execution_transfer_operation import ExecutionTransferOperation - -# TODO update the JSON string below -json = "{}" -# create an instance of ExecutionTransferOperation from a JSON string -execution_transfer_operation_instance = ExecutionTransferOperation.from_json(json) -# print the JSON string representation of the object -print(ExecutionTransferOperation.to_json()) - -# convert the object into a dict -execution_transfer_operation_dict = execution_transfer_operation_instance.to_dict() -# create an instance of ExecutionTransferOperation from a dict -execution_transfer_operation_from_dict = ExecutionTransferOperation.from_dict(execution_transfer_operation_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeGVjdXRpb25UcmFuc2Zlck9wZXJhdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipvcGVyYXRpb25faWQqKiB8ICoqc3RyKiogfCAgfCAKKipzdGF0dXMqKiB8IFsqKkV4ZWN1dGlvbk9wZXJhdGlvblN0YXR1cyoqXShFeGVjdXRpb25PcGVyYXRpb25TdGF0dXMubWQpIHwgIHwgCioqdmFsaWRhdGlvbl9mYWlsdXJlKiogfCBbKipUcmFuc2ZlclZhbGlkYXRpb25GYWlsdXJlKipdKFRyYW5zZmVyVmFsaWRhdGlvbkZhaWx1cmUubWQpIHwgIHwgW29wdGlvbmFsXSAKKipvcGVyYXRpb25fdHlwZSoqIHwgWyoqVHJhbnNmZXJPcGVyYXRpb25UeXBlKipdKFRyYW5zZmVyT3BlcmF0aW9uVHlwZS5tZCkgfCAgfCAKKipwcmV2aWV3KiogfCBbKipUcmFuc2Zlck9wZXJhdGlvblByZXZpZXcqKl0oVHJhbnNmZXJPcGVyYXRpb25QcmV2aWV3Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZXhlY3V0aW9uKiogfCBbKipUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbioqXShUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhlY3V0aW9uX3RyYW5zZmVyX29wZXJhdGlvbiBpbXBvcnQgRXhlY3V0aW9uVHJhbnNmZXJPcGVyYXRpb24KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEV4ZWN1dGlvblRyYW5zZmVyT3BlcmF0aW9uIGZyb20gYSBKU09OIHN0cmluZwpleGVjdXRpb25fdHJhbnNmZXJfb3BlcmF0aW9uX2luc3RhbmNlID0gRXhlY3V0aW9uVHJhbnNmZXJPcGVyYXRpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRXhlY3V0aW9uVHJhbnNmZXJPcGVyYXRpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZXhlY3V0aW9uX3RyYW5zZmVyX29wZXJhdGlvbl9kaWN0ID0gZXhlY3V0aW9uX3RyYW5zZmVyX29wZXJhdGlvbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXhlY3V0aW9uVHJhbnNmZXJPcGVyYXRpb24gZnJvbSBhIGRpY3QKZXhlY3V0aW9uX3RyYW5zZmVyX29wZXJhdGlvbl9mcm9tX2RpY3QgPSBFeGVjdXRpb25UcmFuc2Zlck9wZXJhdGlvbi5mcm9tX2RpY3QoZXhlY3V0aW9uX3RyYW5zZmVyX29wZXJhdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ExternalAccount.md b/docs/ExternalAccount.md index 94b3a58c..a1270dee 100644 --- a/docs/ExternalAccount.md +++ b/docs/ExternalAccount.md @@ -1,30 +1 @@ -# ExternalAccount - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**ExternalAccountType**](ExternalAccountType.md) | | -**sender_information** | [**ExternalAccountSenderInformation**](ExternalAccountSenderInformation.md) | | [optional] - -## Example - -```python -from fireblocks.models.external_account import ExternalAccount - -# TODO update the JSON string below -json = "{}" -# create an instance of ExternalAccount from a JSON string -external_account_instance = ExternalAccount.from_json(json) -# print the JSON string representation of the object -print(ExternalAccount.to_json()) - -# convert the object into a dict -external_account_dict = external_account_instance.to_dict() -# create an instance of ExternalAccount from a dict -external_account_from_dict = ExternalAccount.from_dict(external_account_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeHRlcm5hbEFjY291bnQKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgWyoqRXh0ZXJuYWxBY2NvdW50VHlwZSoqXShFeHRlcm5hbEFjY291bnRUeXBlLm1kKSB8ICB8IAoqKnNlbmRlcl9pbmZvcm1hdGlvbioqIHwgWyoqRXh0ZXJuYWxBY2NvdW50U2VuZGVySW5mb3JtYXRpb24qKl0oRXh0ZXJuYWxBY2NvdW50U2VuZGVySW5mb3JtYXRpb24ubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX2FjY291bnQgaW1wb3J0IEV4dGVybmFsQWNjb3VudAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXh0ZXJuYWxBY2NvdW50IGZyb20gYSBKU09OIHN0cmluZwpleHRlcm5hbF9hY2NvdW50X2luc3RhbmNlID0gRXh0ZXJuYWxBY2NvdW50LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEV4dGVybmFsQWNjb3VudC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApleHRlcm5hbF9hY2NvdW50X2RpY3QgPSBleHRlcm5hbF9hY2NvdW50X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeHRlcm5hbEFjY291bnQgZnJvbSBhIGRpY3QKZXh0ZXJuYWxfYWNjb3VudF9mcm9tX2RpY3QgPSBFeHRlcm5hbEFjY291bnQuZnJvbV9kaWN0KGV4dGVybmFsX2FjY291bnRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ExternalAccountLocalBankAfrica.md b/docs/ExternalAccountLocalBankAfrica.md index bd5b92fd..7ad014ce 100644 --- a/docs/ExternalAccountLocalBankAfrica.md +++ b/docs/ExternalAccountLocalBankAfrica.md @@ -1,29 +1 @@ -# ExternalAccountLocalBankAfrica - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**success_redirect_url** | **str** | URL to redirect the end user back to after they complete the payment on the bank/mobile provider page (e.g., the merchant checkout page) | [optional] - -## Example - -```python -from fireblocks.models.external_account_local_bank_africa import ExternalAccountLocalBankAfrica - -# TODO update the JSON string below -json = "{}" -# create an instance of ExternalAccountLocalBankAfrica from a JSON string -external_account_local_bank_africa_instance = ExternalAccountLocalBankAfrica.from_json(json) -# print the JSON string representation of the object -print(ExternalAccountLocalBankAfrica.to_json()) - -# convert the object into a dict -external_account_local_bank_africa_dict = external_account_local_bank_africa_instance.to_dict() -# create an instance of ExternalAccountLocalBankAfrica from a dict -external_account_local_bank_africa_from_dict = ExternalAccountLocalBankAfrica.from_dict(external_account_local_bank_africa_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeHRlcm5hbEFjY291bnRMb2NhbEJhbmtBZnJpY2EKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3VjY2Vzc19yZWRpcmVjdF91cmwqKiB8ICoqc3RyKiogfCBVUkwgdG8gcmVkaXJlY3QgdGhlIGVuZCB1c2VyIGJhY2sgdG8gYWZ0ZXIgdGhleSBjb21wbGV0ZSB0aGUgcGF5bWVudCBvbiB0aGUgYmFuay9tb2JpbGUgcHJvdmlkZXIgcGFnZSAoZS5nLiwgdGhlIG1lcmNoYW50IGNoZWNrb3V0IHBhZ2UpIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX2FjY291bnRfbG9jYWxfYmFua19hZnJpY2EgaW1wb3J0IEV4dGVybmFsQWNjb3VudExvY2FsQmFua0FmcmljYQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXh0ZXJuYWxBY2NvdW50TG9jYWxCYW5rQWZyaWNhIGZyb20gYSBKU09OIHN0cmluZwpleHRlcm5hbF9hY2NvdW50X2xvY2FsX2JhbmtfYWZyaWNhX2luc3RhbmNlID0gRXh0ZXJuYWxBY2NvdW50TG9jYWxCYW5rQWZyaWNhLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEV4dGVybmFsQWNjb3VudExvY2FsQmFua0FmcmljYS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApleHRlcm5hbF9hY2NvdW50X2xvY2FsX2JhbmtfYWZyaWNhX2RpY3QgPSBleHRlcm5hbF9hY2NvdW50X2xvY2FsX2JhbmtfYWZyaWNhX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeHRlcm5hbEFjY291bnRMb2NhbEJhbmtBZnJpY2EgZnJvbSBhIGRpY3QKZXh0ZXJuYWxfYWNjb3VudF9sb2NhbF9iYW5rX2FmcmljYV9mcm9tX2RpY3QgPSBFeHRlcm5hbEFjY291bnRMb2NhbEJhbmtBZnJpY2EuZnJvbV9kaWN0KGV4dGVybmFsX2FjY291bnRfbG9jYWxfYmFua19hZnJpY2FfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ExternalAccountMobileMoney.md b/docs/ExternalAccountMobileMoney.md index f5c34019..1f58dbeb 100644 --- a/docs/ExternalAccountMobileMoney.md +++ b/docs/ExternalAccountMobileMoney.md @@ -1,33 +1 @@ -# ExternalAccountMobileMoney - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**ExternalAccountMobileMoneyType**](ExternalAccountMobileMoneyType.md) | | -**mobile_phone_number** | **str** | Mobile phone number in E.164 format | -**provider** | [**ExternalAccountMobileMoneyProvider**](ExternalAccountMobileMoneyProvider.md) | | -**email** | **str** | | -**success_redirect_url** | **str** | URL to redirect the end user back to after they complete the payment on the bank/mobile provider page (e.g., the merchant checkout page) | [optional] - -## Example - -```python -from fireblocks.models.external_account_mobile_money import ExternalAccountMobileMoney - -# TODO update the JSON string below -json = "{}" -# create an instance of ExternalAccountMobileMoney from a JSON string -external_account_mobile_money_instance = ExternalAccountMobileMoney.from_json(json) -# print the JSON string representation of the object -print(ExternalAccountMobileMoney.to_json()) - -# convert the object into a dict -external_account_mobile_money_dict = external_account_mobile_money_instance.to_dict() -# create an instance of ExternalAccountMobileMoney from a dict -external_account_mobile_money_from_dict = ExternalAccountMobileMoney.from_dict(external_account_mobile_money_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eXBlKiogfCBbKipFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leVR5cGUqKl0oRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXlUeXBlLm1kKSB8ICB8IAoqKm1vYmlsZV9waG9uZV9udW1iZXIqKiB8ICoqc3RyKiogfCBNb2JpbGUgcGhvbmUgbnVtYmVyIGluIEUuMTY0IGZvcm1hdCB8IAoqKnByb3ZpZGVyKiogfCBbKipFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leVByb3ZpZGVyKipdKEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5UHJvdmlkZXIubWQpIHwgIHwgCioqZW1haWwqKiB8ICoqc3RyKiogfCAgfCAKKipzdWNjZXNzX3JlZGlyZWN0X3VybCoqIHwgKipzdHIqKiB8IFVSTCB0byByZWRpcmVjdCB0aGUgZW5kIHVzZXIgYmFjayB0byBhZnRlciB0aGV5IGNvbXBsZXRlIHRoZSBwYXltZW50IG9uIHRoZSBiYW5rL21vYmlsZSBwcm92aWRlciBwYWdlIChlLmcuLCB0aGUgbWVyY2hhbnQgY2hlY2tvdXQgcGFnZSkgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXh0ZXJuYWxfYWNjb3VudF9tb2JpbGVfbW9uZXkgaW1wb3J0IEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leSBmcm9tIGEgSlNPTiBzdHJpbmcKZXh0ZXJuYWxfYWNjb3VudF9tb2JpbGVfbW9uZXlfaW5zdGFuY2UgPSBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApleHRlcm5hbF9hY2NvdW50X21vYmlsZV9tb25leV9kaWN0ID0gZXh0ZXJuYWxfYWNjb3VudF9tb2JpbGVfbW9uZXlfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5IGZyb20gYSBkaWN0CmV4dGVybmFsX2FjY291bnRfbW9iaWxlX21vbmV5X2Zyb21fZGljdCA9IEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5LmZyb21fZGljdChleHRlcm5hbF9hY2NvdW50X21vYmlsZV9tb25leV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ExternalAccountMobileMoneyProvider.md b/docs/ExternalAccountMobileMoneyProvider.md index c808ef43..92cb78ec 100644 --- a/docs/ExternalAccountMobileMoneyProvider.md +++ b/docs/ExternalAccountMobileMoneyProvider.md @@ -1,18 +1 @@ -# ExternalAccountMobileMoneyProvider - - -## Enum - -* `M_PESA` (value: `'M_PESA'`) - -* `AIRTEL` (value: `'AIRTEL'`) - -* `MTN` (value: `'MTN'`) - -* `TIGO` (value: `'TIGO'`) - -* `ORANGE` (value: `'ORANGE'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leVByb3ZpZGVyCgoKIyMgRW51bQoKKiBgTV9QRVNBYCAodmFsdWU6IGAnTV9QRVNBJ2ApCgoqIGBBSVJURUxgICh2YWx1ZTogYCdBSVJURUwnYCkKCiogYE1UTmAgKHZhbHVlOiBgJ01UTidgKQoKKiBgVElHT2AgKHZhbHVlOiBgJ1RJR08nYCkKCiogYE9SQU5HRWAgKHZhbHVlOiBgJ09SQU5HRSdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ExternalAccountMobileMoneyType.md b/docs/ExternalAccountMobileMoneyType.md index 794e7662..28f4150d 100644 --- a/docs/ExternalAccountMobileMoneyType.md +++ b/docs/ExternalAccountMobileMoneyType.md @@ -1,10 +1 @@ -# ExternalAccountMobileMoneyType - - -## Enum - -* `MOBILE_MONEY_RAIL` (value: `'MOBILE_MONEY_RAIL'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leVR5cGUKCgojIyBFbnVtCgoqIGBNT0JJTEVfTU9ORVlfUkFJTGAgKHZhbHVlOiBgJ01PQklMRV9NT05FWV9SQUlMJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ExternalAccountSenderInformation.md b/docs/ExternalAccountSenderInformation.md index e174606f..b12df338 100644 --- a/docs/ExternalAccountSenderInformation.md +++ b/docs/ExternalAccountSenderInformation.md @@ -1,34 +1 @@ -# ExternalAccountSenderInformation - -Additional data for the external account, depending on the type used. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**ExternalAccountMobileMoneyType**](ExternalAccountMobileMoneyType.md) | | -**mobile_phone_number** | **str** | Mobile phone number in E.164 format | -**provider** | [**ExternalAccountMobileMoneyProvider**](ExternalAccountMobileMoneyProvider.md) | | -**email** | **str** | | -**success_redirect_url** | **str** | URL to redirect the end user back to after they complete the payment on the bank/mobile provider page (e.g., the merchant checkout page) | [optional] - -## Example - -```python -from fireblocks.models.external_account_sender_information import ExternalAccountSenderInformation - -# TODO update the JSON string below -json = "{}" -# create an instance of ExternalAccountSenderInformation from a JSON string -external_account_sender_information_instance = ExternalAccountSenderInformation.from_json(json) -# print the JSON string representation of the object -print(ExternalAccountSenderInformation.to_json()) - -# convert the object into a dict -external_account_sender_information_dict = external_account_sender_information_instance.to_dict() -# create an instance of ExternalAccountSenderInformation from a dict -external_account_sender_information_from_dict = ExternalAccountSenderInformation.from_dict(external_account_sender_information_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeHRlcm5hbEFjY291bnRTZW5kZXJJbmZvcm1hdGlvbgoKQWRkaXRpb25hbCBkYXRhIGZvciB0aGUgZXh0ZXJuYWwgYWNjb3VudCwgZGVwZW5kaW5nIG9uIHRoZSB0eXBlIHVzZWQuCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgWyoqRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXlUeXBlKipdKEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5VHlwZS5tZCkgfCAgfCAKKiptb2JpbGVfcGhvbmVfbnVtYmVyKiogfCAqKnN0cioqIHwgTW9iaWxlIHBob25lIG51bWJlciBpbiBFLjE2NCBmb3JtYXQgfCAKKipwcm92aWRlcioqIHwgWyoqRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXlQcm92aWRlcioqXShFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leVByb3ZpZGVyLm1kKSB8ICB8IAoqKmVtYWlsKiogfCAqKnN0cioqIHwgIHwgCioqc3VjY2Vzc19yZWRpcmVjdF91cmwqKiB8ICoqc3RyKiogfCBVUkwgdG8gcmVkaXJlY3QgdGhlIGVuZCB1c2VyIGJhY2sgdG8gYWZ0ZXIgdGhleSBjb21wbGV0ZSB0aGUgcGF5bWVudCBvbiB0aGUgYmFuay9tb2JpbGUgcHJvdmlkZXIgcGFnZSAoZS5nLiwgdGhlIG1lcmNoYW50IGNoZWNrb3V0IHBhZ2UpIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX2FjY291bnRfc2VuZGVyX2luZm9ybWF0aW9uIGltcG9ydCBFeHRlcm5hbEFjY291bnRTZW5kZXJJbmZvcm1hdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXh0ZXJuYWxBY2NvdW50U2VuZGVySW5mb3JtYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCmV4dGVybmFsX2FjY291bnRfc2VuZGVyX2luZm9ybWF0aW9uX2luc3RhbmNlID0gRXh0ZXJuYWxBY2NvdW50U2VuZGVySW5mb3JtYXRpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRXh0ZXJuYWxBY2NvdW50U2VuZGVySW5mb3JtYXRpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZXh0ZXJuYWxfYWNjb3VudF9zZW5kZXJfaW5mb3JtYXRpb25fZGljdCA9IGV4dGVybmFsX2FjY291bnRfc2VuZGVyX2luZm9ybWF0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeHRlcm5hbEFjY291bnRTZW5kZXJJbmZvcm1hdGlvbiBmcm9tIGEgZGljdApleHRlcm5hbF9hY2NvdW50X3NlbmRlcl9pbmZvcm1hdGlvbl9mcm9tX2RpY3QgPSBFeHRlcm5hbEFjY291bnRTZW5kZXJJbmZvcm1hdGlvbi5mcm9tX2RpY3QoZXh0ZXJuYWxfYWNjb3VudF9zZW5kZXJfaW5mb3JtYXRpb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ExternalAccountType.md b/docs/ExternalAccountType.md index a240a0d5..5c1520fb 100644 --- a/docs/ExternalAccountType.md +++ b/docs/ExternalAccountType.md @@ -1,10 +1 @@ -# ExternalAccountType - - -## Enum - -* `EXTERNAL` (value: `'EXTERNAL'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeHRlcm5hbEFjY291bnRUeXBlCgoKIyMgRW51bQoKKiBgRVhURVJOQUxgICh2YWx1ZTogYCdFWFRFUk5BTCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ExternalWalletAsset.md b/docs/ExternalWalletAsset.md index a8b16093..fb1484ce 100644 --- a/docs/ExternalWalletAsset.md +++ b/docs/ExternalWalletAsset.md @@ -1,36 +1 @@ -# ExternalWalletAsset - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | [optional] -**status** | [**ConfigChangeRequestStatus**](ConfigChangeRequestStatus.md) | | [optional] -**address** | **str** | | [optional] -**balance** | **float** | | [optional] -**locked_amount** | **float** | | [optional] -**tag** | **str** | | [optional] -**activation_time** | **str** | | [optional] -**additional_info** | [**List[WalletAssetAdditionalInfo]**](WalletAssetAdditionalInfo.md) | | [optional] - -## Example - -```python -from fireblocks.models.external_wallet_asset import ExternalWalletAsset - -# TODO update the JSON string below -json = "{}" -# create an instance of ExternalWalletAsset from a JSON string -external_wallet_asset_instance = ExternalWalletAsset.from_json(json) -# print the JSON string representation of the object -print(ExternalWalletAsset.to_json()) - -# convert the object into a dict -external_wallet_asset_dict = external_wallet_asset_instance.to_dict() -# create an instance of ExternalWalletAsset from a dict -external_wallet_asset_from_dict = ExternalWalletAsset.from_dict(external_wallet_asset_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeHRlcm5hbFdhbGxldEFzc2V0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipzdGF0dXMqKiB8IFsqKkNvbmZpZ0NoYW5nZVJlcXVlc3RTdGF0dXMqKl0oQ29uZmlnQ2hhbmdlUmVxdWVzdFN0YXR1cy5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmFkZHJlc3MqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmJhbGFuY2UqKiB8ICoqZmxvYXQqKiB8ICB8IFtvcHRpb25hbF0gCioqbG9ja2VkX2Ftb3VudCoqIHwgKipmbG9hdCoqIHwgIHwgW29wdGlvbmFsXSAKKip0YWcqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFjdGl2YXRpb25fdGltZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqYWRkaXRpb25hbF9pbmZvKiogfCBbKipMaXN0W1dhbGxldEFzc2V0QWRkaXRpb25hbEluZm9dKipdKFdhbGxldEFzc2V0QWRkaXRpb25hbEluZm8ubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX3dhbGxldF9hc3NldCBpbXBvcnQgRXh0ZXJuYWxXYWxsZXRBc3NldAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXh0ZXJuYWxXYWxsZXRBc3NldCBmcm9tIGEgSlNPTiBzdHJpbmcKZXh0ZXJuYWxfd2FsbGV0X2Fzc2V0X2luc3RhbmNlID0gRXh0ZXJuYWxXYWxsZXRBc3NldC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChFeHRlcm5hbFdhbGxldEFzc2V0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmV4dGVybmFsX3dhbGxldF9hc3NldF9kaWN0ID0gZXh0ZXJuYWxfd2FsbGV0X2Fzc2V0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeHRlcm5hbFdhbGxldEFzc2V0IGZyb20gYSBkaWN0CmV4dGVybmFsX3dhbGxldF9hc3NldF9mcm9tX2RpY3QgPSBFeHRlcm5hbFdhbGxldEFzc2V0LmZyb21fZGljdChleHRlcm5hbF93YWxsZXRfYXNzZXRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ExternalWalletsApi.md b/docs/ExternalWalletsApi.md index 0b2d56f8..1acf71d1 100644 --- a/docs/ExternalWalletsApi.md +++ b/docs/ExternalWalletsApi.md @@ -1,623 +1 @@ -# fireblocks.ExternalWalletsApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**add_asset_to_external_wallet**](ExternalWalletsApi.md#add_asset_to_external_wallet) | **POST** /external_wallets/{walletId}/{assetId} | Add an asset to an external wallet. -[**create_external_wallet**](ExternalWalletsApi.md#create_external_wallet) | **POST** /external_wallets | Create an external wallet -[**delete_external_wallet**](ExternalWalletsApi.md#delete_external_wallet) | **DELETE** /external_wallets/{walletId} | Delete an external wallet -[**get_external_wallet**](ExternalWalletsApi.md#get_external_wallet) | **GET** /external_wallets/{walletId} | Find an external wallet -[**get_external_wallet_asset**](ExternalWalletsApi.md#get_external_wallet_asset) | **GET** /external_wallets/{walletId}/{assetId} | Get an asset from an external wallet -[**get_external_wallets**](ExternalWalletsApi.md#get_external_wallets) | **GET** /external_wallets | List external wallets -[**remove_asset_from_external_wallet**](ExternalWalletsApi.md#remove_asset_from_external_wallet) | **DELETE** /external_wallets/{walletId}/{assetId} | Delete an asset from an external wallet -[**set_external_wallet_customer_ref_id**](ExternalWalletsApi.md#set_external_wallet_customer_ref_id) | **POST** /external_wallets/{walletId}/set_customer_ref_id | Set an AML customer reference ID for an external wallet - - -# **add_asset_to_external_wallet** -> ExternalWalletAsset add_asset_to_external_wallet(wallet_id, asset_id, idempotency_key=idempotency_key, add_asset_to_external_wallet_request=add_asset_to_external_wallet_request) - -Add an asset to an external wallet. - -Adds an asset to an existing external wallet.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.add_asset_to_external_wallet_request import AddAssetToExternalWalletRequest -from fireblocks.models.external_wallet_asset import ExternalWalletAsset -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = 'wallet_id_example' # str | The ID of the wallet - asset_id = 'asset_id_example' # str | The ID of the asset to add - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - add_asset_to_external_wallet_request = fireblocks.AddAssetToExternalWalletRequest() # AddAssetToExternalWalletRequest | (optional) - - try: - # Add an asset to an external wallet. - api_response = fireblocks.external_wallets.add_asset_to_external_wallet(wallet_id, asset_id, idempotency_key=idempotency_key, add_asset_to_external_wallet_request=add_asset_to_external_wallet_request).result() - print("The response of ExternalWalletsApi->add_asset_to_external_wallet:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ExternalWalletsApi->add_asset_to_external_wallet: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| The ID of the wallet | - **asset_id** | **str**| The ID of the asset to add | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **add_asset_to_external_wallet_request** | [**AddAssetToExternalWalletRequest**](AddAssetToExternalWalletRequest.md)| | [optional] - -### Return type - -[**ExternalWalletAsset**](ExternalWalletAsset.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A Wallet Asset object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_external_wallet** -> UnmanagedWallet create_external_wallet(idempotency_key=idempotency_key, create_wallet_request=create_wallet_request) - -Create an external wallet - -Creates a new external wallet with the requested name. - -External Wallet is a whitelisted address of a wallet that belongs to your users/counterparties. - -- You cannot see the balance of the external wallet. -- You cannot initiate transactions from an external wallet as the source via Fireblocks. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.create_wallet_request import CreateWalletRequest -from fireblocks.models.unmanaged_wallet import UnmanagedWallet -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - create_wallet_request = fireblocks.CreateWalletRequest() # CreateWalletRequest | (optional) - - try: - # Create an external wallet - api_response = fireblocks.external_wallets.create_external_wallet(idempotency_key=idempotency_key, create_wallet_request=create_wallet_request).result() - print("The response of ExternalWalletsApi->create_external_wallet:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ExternalWalletsApi->create_external_wallet: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **create_wallet_request** | [**CreateWalletRequest**](CreateWalletRequest.md)| | [optional] - -### Return type - -[**UnmanagedWallet**](UnmanagedWallet.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A Wallet object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **delete_external_wallet** -> delete_external_wallet(wallet_id) - -Delete an external wallet - -Deletes an external wallet by ID. External Wallet is a whitelisted address of a wallet that belongs to your users/counterparties.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = 'wallet_id_example' # str | The ID of the wallet to delete - - try: - # Delete an external wallet - fireblocks.external_wallets.delete_external_wallet(wallet_id).result() - except Exception as e: - print("Exception when calling ExternalWalletsApi->delete_external_wallet: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| The ID of the wallet to delete | - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_external_wallet** -> UnmanagedWallet get_external_wallet(wallet_id) - -Find an external wallet - -Returns an external wallet by ID. External Wallet is a whitelisted address of a wallet that belongs to your users/counterparties.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -### Example - - -```python -from fireblocks.models.unmanaged_wallet import UnmanagedWallet -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = 'wallet_id_example' # str | The ID of the wallet to return - - try: - # Find an external wallet - api_response = fireblocks.external_wallets.get_external_wallet(wallet_id).result() - print("The response of ExternalWalletsApi->get_external_wallet:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ExternalWalletsApi->get_external_wallet: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| The ID of the wallet to return | - -### Return type - -[**UnmanagedWallet**](UnmanagedWallet.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A Wallet object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_external_wallet_asset** -> ExternalWalletAsset get_external_wallet_asset(wallet_id, asset_id) - -Get an asset from an external wallet - -Returns an external wallet by wallet ID and asset ID. External Wallet is a whitelisted address of a wallet that belongs to your users/counterparties.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -### Example - - -```python -from fireblocks.models.external_wallet_asset import ExternalWalletAsset -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = 'wallet_id_example' # str | The ID of the wallet - asset_id = 'asset_id_example' # str | The ID of the asset to return - - try: - # Get an asset from an external wallet - api_response = fireblocks.external_wallets.get_external_wallet_asset(wallet_id, asset_id).result() - print("The response of ExternalWalletsApi->get_external_wallet_asset:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ExternalWalletsApi->get_external_wallet_asset: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| The ID of the wallet | - **asset_id** | **str**| The ID of the asset to return | - -### Return type - -[**ExternalWalletAsset**](ExternalWalletAsset.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A Wallet Asset object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_external_wallets** -> List[UnmanagedWallet] get_external_wallets() - -List external wallets - -Gets a list of external wallets under the workspace. - -External Wallet is a whitelisted address of a wallet that belongs to your users/counterparties. - -- You cannot see the balance of the external wallet. -- You cannot initiate transactions from an external wallet as the source via Fireblocks. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -### Example - - -```python -from fireblocks.models.unmanaged_wallet import UnmanagedWallet -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # List external wallets - api_response = fireblocks.external_wallets.get_external_wallets().result() - print("The response of ExternalWalletsApi->get_external_wallets:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling ExternalWalletsApi->get_external_wallets: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**List[UnmanagedWallet]**](UnmanagedWallet.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A list of external wallets | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **remove_asset_from_external_wallet** -> remove_asset_from_external_wallet(wallet_id, asset_id) - -Delete an asset from an external wallet - -Deletes an external wallet asset by ID.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = 'wallet_id_example' # str | The ID of the wallet - asset_id = 'asset_id_example' # str | The ID of the asset to delete - - try: - # Delete an asset from an external wallet - fireblocks.external_wallets.remove_asset_from_external_wallet(wallet_id, asset_id).result() - except Exception as e: - print("Exception when calling ExternalWalletsApi->remove_asset_from_external_wallet: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| The ID of the wallet | - **asset_id** | **str**| The ID of the asset to delete | - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_external_wallet_customer_ref_id** -> set_external_wallet_customer_ref_id(wallet_id, set_customer_ref_id_request, idempotency_key=idempotency_key) - -Set an AML customer reference ID for an external wallet - -Sets an AML/KYT customer reference ID for the specific external wallet. External Wallet is a whitelisted address of a wallet that belongs to your users/counterparties.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.set_customer_ref_id_request import SetCustomerRefIdRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = 'wallet_id_example' # str | The wallet ID - set_customer_ref_id_request = fireblocks.SetCustomerRefIdRequest() # SetCustomerRefIdRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Set an AML customer reference ID for an external wallet - fireblocks.external_wallets.set_external_wallet_customer_ref_id(wallet_id, set_customer_ref_id_request, idempotency_key=idempotency_key).result() - except Exception as e: - print("Exception when calling ExternalWalletsApi->set_external_wallet_customer_ref_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| The wallet ID | - **set_customer_ref_id_request** | [**SetCustomerRefIdRequest**](SetCustomerRefIdRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLkV4dGVybmFsV2FsbGV0c0FwaQoKQWxsIFVSSXMgYXJlIHJlbGF0aXZlIHRvICpodHRwczovL2FwaS5maXJlYmxvY2tzLmlvL3YxKgoKTWV0aG9kIHwgSFRUUCByZXF1ZXN0IHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tClsqKmFkZF9hc3NldF90b19leHRlcm5hbF93YWxsZXQqKl0oRXh0ZXJuYWxXYWxsZXRzQXBpLm1kI2FkZF9hc3NldF90b19leHRlcm5hbF93YWxsZXQpIHwgKipQT1NUKiogL2V4dGVybmFsX3dhbGxldHMve3dhbGxldElkfS97YXNzZXRJZH0gfCBBZGQgYW4gYXNzZXQgdG8gYW4gZXh0ZXJuYWwgd2FsbGV0LgpbKipjcmVhdGVfZXh0ZXJuYWxfd2FsbGV0KipdKEV4dGVybmFsV2FsbGV0c0FwaS5tZCNjcmVhdGVfZXh0ZXJuYWxfd2FsbGV0KSB8ICoqUE9TVCoqIC9leHRlcm5hbF93YWxsZXRzIHwgQ3JlYXRlIGFuIGV4dGVybmFsIHdhbGxldApbKipkZWxldGVfZXh0ZXJuYWxfd2FsbGV0KipdKEV4dGVybmFsV2FsbGV0c0FwaS5tZCNkZWxldGVfZXh0ZXJuYWxfd2FsbGV0KSB8ICoqREVMRVRFKiogL2V4dGVybmFsX3dhbGxldHMve3dhbGxldElkfSB8IERlbGV0ZSBhbiBleHRlcm5hbCB3YWxsZXQKWyoqZ2V0X2V4dGVybmFsX3dhbGxldCoqXShFeHRlcm5hbFdhbGxldHNBcGkubWQjZ2V0X2V4dGVybmFsX3dhbGxldCkgfCAqKkdFVCoqIC9leHRlcm5hbF93YWxsZXRzL3t3YWxsZXRJZH0gfCBGaW5kIGFuIGV4dGVybmFsIHdhbGxldApbKipnZXRfZXh0ZXJuYWxfd2FsbGV0X2Fzc2V0KipdKEV4dGVybmFsV2FsbGV0c0FwaS5tZCNnZXRfZXh0ZXJuYWxfd2FsbGV0X2Fzc2V0KSB8ICoqR0VUKiogL2V4dGVybmFsX3dhbGxldHMve3dhbGxldElkfS97YXNzZXRJZH0gfCBHZXQgYW4gYXNzZXQgZnJvbSBhbiBleHRlcm5hbCB3YWxsZXQKWyoqZ2V0X2V4dGVybmFsX3dhbGxldHMqKl0oRXh0ZXJuYWxXYWxsZXRzQXBpLm1kI2dldF9leHRlcm5hbF93YWxsZXRzKSB8ICoqR0VUKiogL2V4dGVybmFsX3dhbGxldHMgfCBMaXN0IGV4dGVybmFsIHdhbGxldHMKWyoqcmVtb3ZlX2Fzc2V0X2Zyb21fZXh0ZXJuYWxfd2FsbGV0KipdKEV4dGVybmFsV2FsbGV0c0FwaS5tZCNyZW1vdmVfYXNzZXRfZnJvbV9leHRlcm5hbF93YWxsZXQpIHwgKipERUxFVEUqKiAvZXh0ZXJuYWxfd2FsbGV0cy97d2FsbGV0SWR9L3thc3NldElkfSB8IERlbGV0ZSBhbiBhc3NldCBmcm9tIGFuIGV4dGVybmFsIHdhbGxldApbKipzZXRfZXh0ZXJuYWxfd2FsbGV0X2N1c3RvbWVyX3JlZl9pZCoqXShFeHRlcm5hbFdhbGxldHNBcGkubWQjc2V0X2V4dGVybmFsX3dhbGxldF9jdXN0b21lcl9yZWZfaWQpIHwgKipQT1NUKiogL2V4dGVybmFsX3dhbGxldHMve3dhbGxldElkfS9zZXRfY3VzdG9tZXJfcmVmX2lkIHwgU2V0IGFuIEFNTCBjdXN0b21lciByZWZlcmVuY2UgSUQgZm9yIGFuIGV4dGVybmFsIHdhbGxldAoKCiMgKiphZGRfYXNzZXRfdG9fZXh0ZXJuYWxfd2FsbGV0KioKPiBFeHRlcm5hbFdhbGxldEFzc2V0IGFkZF9hc3NldF90b19leHRlcm5hbF93YWxsZXQod2FsbGV0X2lkLCBhc3NldF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwgYWRkX2Fzc2V0X3RvX2V4dGVybmFsX3dhbGxldF9yZXF1ZXN0PWFkZF9hc3NldF90b19leHRlcm5hbF93YWxsZXRfcmVxdWVzdCkKCkFkZCBhbiBhc3NldCB0byBhbiBleHRlcm5hbCB3YWxsZXQuCgpBZGRzIGFuIGFzc2V0IHRvIGFuIGV4aXN0aW5nIGV4dGVybmFsIHdhbGxldC4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkX2Fzc2V0X3RvX2V4dGVybmFsX3dhbGxldF9yZXF1ZXN0IGltcG9ydCBBZGRBc3NldFRvRXh0ZXJuYWxXYWxsZXRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXh0ZXJuYWxfd2FsbGV0X2Fzc2V0IGltcG9ydCBFeHRlcm5hbFdhbGxldEFzc2V0CmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHdhbGxldF9pZCA9ICd3YWxsZXRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIHdhbGxldAogICAgYXNzZXRfaWQgPSAnYXNzZXRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIGFkZAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQogICAgYWRkX2Fzc2V0X3RvX2V4dGVybmFsX3dhbGxldF9yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5BZGRBc3NldFRvRXh0ZXJuYWxXYWxsZXRSZXF1ZXN0KCkgIyBBZGRBc3NldFRvRXh0ZXJuYWxXYWxsZXRSZXF1ZXN0IHwgIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBBZGQgYW4gYXNzZXQgdG8gYW4gZXh0ZXJuYWwgd2FsbGV0LgogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuZXh0ZXJuYWxfd2FsbGV0cy5hZGRfYXNzZXRfdG9fZXh0ZXJuYWxfd2FsbGV0KHdhbGxldF9pZCwgYXNzZXRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksIGFkZF9hc3NldF90b19leHRlcm5hbF93YWxsZXRfcmVxdWVzdD1hZGRfYXNzZXRfdG9fZXh0ZXJuYWxfd2FsbGV0X3JlcXVlc3QpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBFeHRlcm5hbFdhbGxldHNBcGktPmFkZF9hc3NldF90b19leHRlcm5hbF93YWxsZXQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgRXh0ZXJuYWxXYWxsZXRzQXBpLT5hZGRfYXNzZXRfdG9fZXh0ZXJuYWxfd2FsbGV0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip3YWxsZXRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgd2FsbGV0IHwgCiAqKmFzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIGFkZCB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAogKiphZGRfYXNzZXRfdG9fZXh0ZXJuYWxfd2FsbGV0X3JlcXVlc3QqKiB8IFsqKkFkZEFzc2V0VG9FeHRlcm5hbFdhbGxldFJlcXVlc3QqKl0oQWRkQXNzZXRUb0V4dGVybmFsV2FsbGV0UmVxdWVzdC5tZCl8ICB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkV4dGVybmFsV2FsbGV0QXNzZXQqKl0oRXh0ZXJuYWxXYWxsZXRBc3NldC5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQSBXYWxsZXQgQXNzZXQgb2JqZWN0IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipjcmVhdGVfZXh0ZXJuYWxfd2FsbGV0KioKPiBVbm1hbmFnZWRXYWxsZXQgY3JlYXRlX2V4dGVybmFsX3dhbGxldChpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCBjcmVhdGVfd2FsbGV0X3JlcXVlc3Q9Y3JlYXRlX3dhbGxldF9yZXF1ZXN0KQoKQ3JlYXRlIGFuIGV4dGVybmFsIHdhbGxldAoKQ3JlYXRlcyBhIG5ldyBleHRlcm5hbCB3YWxsZXQgd2l0aCB0aGUgcmVxdWVzdGVkIG5hbWUuCgpFeHRlcm5hbCBXYWxsZXQgaXMgYSB3aGl0ZWxpc3RlZCBhZGRyZXNzIG9mIGEgd2FsbGV0IHRoYXQgYmVsb25ncyB0byB5b3VyIHVzZXJzL2NvdW50ZXJwYXJ0aWVzLgoKLSBZb3UgY2Fubm90IHNlZSB0aGUgYmFsYW5jZSBvZiB0aGUgZXh0ZXJuYWwgd2FsbGV0LgotIFlvdSBjYW5ub3QgaW5pdGlhdGUgdHJhbnNhY3Rpb25zIGZyb20gYW4gZXh0ZXJuYWwgd2FsbGV0IGFzIHRoZSBzb3VyY2UgdmlhIEZpcmVibG9ja3MuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV93YWxsZXRfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlV2FsbGV0UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVubWFuYWdlZF93YWxsZXQgaW1wb3J0IFVubWFuYWdlZFdhbGxldApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCiAgICBjcmVhdGVfd2FsbGV0X3JlcXVlc3QgPSBmaXJlYmxvY2tzLkNyZWF0ZVdhbGxldFJlcXVlc3QoKSAjIENyZWF0ZVdhbGxldFJlcXVlc3QgfCAgKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIENyZWF0ZSBhbiBleHRlcm5hbCB3YWxsZXQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmV4dGVybmFsX3dhbGxldHMuY3JlYXRlX2V4dGVybmFsX3dhbGxldChpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCBjcmVhdGVfd2FsbGV0X3JlcXVlc3Q9Y3JlYXRlX3dhbGxldF9yZXF1ZXN0KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgRXh0ZXJuYWxXYWxsZXRzQXBpLT5jcmVhdGVfZXh0ZXJuYWxfd2FsbGV0OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEV4dGVybmFsV2FsbGV0c0FwaS0+Y3JlYXRlX2V4dGVybmFsX3dhbGxldDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKICoqY3JlYXRlX3dhbGxldF9yZXF1ZXN0KiogfCBbKipDcmVhdGVXYWxsZXRSZXF1ZXN0KipdKENyZWF0ZVdhbGxldFJlcXVlc3QubWQpfCAgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipVbm1hbmFnZWRXYWxsZXQqKl0oVW5tYW5hZ2VkV2FsbGV0Lm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBIFdhbGxldCBvYmplY3QgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmRlbGV0ZV9leHRlcm5hbF93YWxsZXQqKgo+IGRlbGV0ZV9leHRlcm5hbF93YWxsZXQod2FsbGV0X2lkKQoKRGVsZXRlIGFuIGV4dGVybmFsIHdhbGxldAoKRGVsZXRlcyBhbiBleHRlcm5hbCB3YWxsZXQgYnkgSUQuIEV4dGVybmFsIFdhbGxldCBpcyBhIHdoaXRlbGlzdGVkIGFkZHJlc3Mgb2YgYSB3YWxsZXQgdGhhdCBiZWxvbmdzIHRvIHlvdXIgdXNlcnMvY291bnRlcnBhcnRpZXMuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgd2FsbGV0X2lkID0gJ3dhbGxldF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgd2FsbGV0IHRvIGRlbGV0ZQoKICAgIHRyeToKICAgICAgICAjIERlbGV0ZSBhbiBleHRlcm5hbCB3YWxsZXQKICAgICAgICBmaXJlYmxvY2tzLmV4dGVybmFsX3dhbGxldHMuZGVsZXRlX2V4dGVybmFsX3dhbGxldCh3YWxsZXRfaWQpLnJlc3VsdCgpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgRXh0ZXJuYWxXYWxsZXRzQXBpLT5kZWxldGVfZXh0ZXJuYWxfd2FsbGV0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip3YWxsZXRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgd2FsbGV0IHRvIGRlbGV0ZSB8IAoKIyMjIFJldHVybiB0eXBlCgp2b2lkIChlbXB0eSByZXNwb25zZSBib2R5KQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgT0sgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9leHRlcm5hbF93YWxsZXQqKgo+IFVubWFuYWdlZFdhbGxldCBnZXRfZXh0ZXJuYWxfd2FsbGV0KHdhbGxldF9pZCkKCkZpbmQgYW4gZXh0ZXJuYWwgd2FsbGV0CgpSZXR1cm5zIGFuIGV4dGVybmFsIHdhbGxldCBieSBJRC4gRXh0ZXJuYWwgV2FsbGV0IGlzIGEgd2hpdGVsaXN0ZWQgYWRkcmVzcyBvZiBhIHdhbGxldCB0aGF0IGJlbG9uZ3MgdG8geW91ciB1c2Vycy9jb3VudGVycGFydGllcy4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgVmlld2VyLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51bm1hbmFnZWRfd2FsbGV0IGltcG9ydCBVbm1hbmFnZWRXYWxsZXQKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgd2FsbGV0X2lkID0gJ3dhbGxldF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgd2FsbGV0IHRvIHJldHVybgoKICAgIHRyeToKICAgICAgICAjIEZpbmQgYW4gZXh0ZXJuYWwgd2FsbGV0CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5leHRlcm5hbF93YWxsZXRzLmdldF9leHRlcm5hbF93YWxsZXQod2FsbGV0X2lkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgRXh0ZXJuYWxXYWxsZXRzQXBpLT5nZXRfZXh0ZXJuYWxfd2FsbGV0OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEV4dGVybmFsV2FsbGV0c0FwaS0+Z2V0X2V4dGVybmFsX3dhbGxldDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqd2FsbGV0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIHdhbGxldCB0byByZXR1cm4gfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqVW5tYW5hZ2VkV2FsbGV0KipdKFVubWFuYWdlZFdhbGxldC5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgV2FsbGV0IG9iamVjdCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2V4dGVybmFsX3dhbGxldF9hc3NldCoqCj4gRXh0ZXJuYWxXYWxsZXRBc3NldCBnZXRfZXh0ZXJuYWxfd2FsbGV0X2Fzc2V0KHdhbGxldF9pZCwgYXNzZXRfaWQpCgpHZXQgYW4gYXNzZXQgZnJvbSBhbiBleHRlcm5hbCB3YWxsZXQKClJldHVybnMgYW4gZXh0ZXJuYWwgd2FsbGV0IGJ5IHdhbGxldCBJRCBhbmQgYXNzZXQgSUQuIEV4dGVybmFsIFdhbGxldCBpcyBhIHdoaXRlbGlzdGVkIGFkZHJlc3Mgb2YgYSB3YWxsZXQgdGhhdCBiZWxvbmdzIHRvIHlvdXIgdXNlcnMvY291bnRlcnBhcnRpZXMuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIFZpZXdlci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXh0ZXJuYWxfd2FsbGV0X2Fzc2V0IGltcG9ydCBFeHRlcm5hbFdhbGxldEFzc2V0CmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHdhbGxldF9pZCA9ICd3YWxsZXRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIHdhbGxldAogICAgYXNzZXRfaWQgPSAnYXNzZXRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIHJldHVybgoKICAgIHRyeToKICAgICAgICAjIEdldCBhbiBhc3NldCBmcm9tIGFuIGV4dGVybmFsIHdhbGxldAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuZXh0ZXJuYWxfd2FsbGV0cy5nZXRfZXh0ZXJuYWxfd2FsbGV0X2Fzc2V0KHdhbGxldF9pZCwgYXNzZXRfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBFeHRlcm5hbFdhbGxldHNBcGktPmdldF9leHRlcm5hbF93YWxsZXRfYXNzZXQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgRXh0ZXJuYWxXYWxsZXRzQXBpLT5nZXRfZXh0ZXJuYWxfd2FsbGV0X2Fzc2V0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip3YWxsZXRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgd2FsbGV0IHwgCiAqKmFzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIHJldHVybiB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipFeHRlcm5hbFdhbGxldEFzc2V0KipdKEV4dGVybmFsV2FsbGV0QXNzZXQubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBIFdhbGxldCBBc3NldCBvYmplY3QgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9leHRlcm5hbF93YWxsZXRzKioKPiBMaXN0W1VubWFuYWdlZFdhbGxldF0gZ2V0X2V4dGVybmFsX3dhbGxldHMoKQoKTGlzdCBleHRlcm5hbCB3YWxsZXRzCgpHZXRzIGEgbGlzdCBvZiBleHRlcm5hbCB3YWxsZXRzIHVuZGVyIHRoZSB3b3Jrc3BhY2UuCgpFeHRlcm5hbCBXYWxsZXQgaXMgYSB3aGl0ZWxpc3RlZCBhZGRyZXNzIG9mIGEgd2FsbGV0IHRoYXQgYmVsb25ncyB0byB5b3VyIHVzZXJzL2NvdW50ZXJwYXJ0aWVzLgoKLSBZb3UgY2Fubm90IHNlZSB0aGUgYmFsYW5jZSBvZiB0aGUgZXh0ZXJuYWwgd2FsbGV0LgotIFlvdSBjYW5ub3QgaW5pdGlhdGUgdHJhbnNhY3Rpb25zIGZyb20gYW4gZXh0ZXJuYWwgd2FsbGV0IGFzIHRoZSBzb3VyY2UgdmlhIEZpcmVibG9ja3MuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIFZpZXdlci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudW5tYW5hZ2VkX3dhbGxldCBpbXBvcnQgVW5tYW5hZ2VkV2FsbGV0CmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKCiAgICB0cnk6CiAgICAgICAgIyBMaXN0IGV4dGVybmFsIHdhbGxldHMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmV4dGVybmFsX3dhbGxldHMuZ2V0X2V4dGVybmFsX3dhbGxldHMoKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgRXh0ZXJuYWxXYWxsZXRzQXBpLT5nZXRfZXh0ZXJuYWxfd2FsbGV0czpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBFeHRlcm5hbFdhbGxldHNBcGktPmdldF9leHRlcm5hbF93YWxsZXRzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKVGhpcyBlbmRwb2ludCBkb2VzIG5vdCBuZWVkIGFueSBwYXJhbWV0ZXIuCgojIyMgUmV0dXJuIHR5cGUKClsqKkxpc3RbVW5tYW5hZ2VkV2FsbGV0XSoqXShVbm1hbmFnZWRXYWxsZXQubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBIGxpc3Qgb2YgZXh0ZXJuYWwgd2FsbGV0cyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqcmVtb3ZlX2Fzc2V0X2Zyb21fZXh0ZXJuYWxfd2FsbGV0KioKPiByZW1vdmVfYXNzZXRfZnJvbV9leHRlcm5hbF93YWxsZXQod2FsbGV0X2lkLCBhc3NldF9pZCkKCkRlbGV0ZSBhbiBhc3NldCBmcm9tIGFuIGV4dGVybmFsIHdhbGxldAoKRGVsZXRlcyBhbiBleHRlcm5hbCB3YWxsZXQgYXNzZXQgYnkgSUQuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgd2FsbGV0X2lkID0gJ3dhbGxldF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgd2FsbGV0CiAgICBhc3NldF9pZCA9ICdhc3NldF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgYXNzZXQgdG8gZGVsZXRlCgogICAgdHJ5OgogICAgICAgICMgRGVsZXRlIGFuIGFzc2V0IGZyb20gYW4gZXh0ZXJuYWwgd2FsbGV0CiAgICAgICAgZmlyZWJsb2Nrcy5leHRlcm5hbF93YWxsZXRzLnJlbW92ZV9hc3NldF9mcm9tX2V4dGVybmFsX3dhbGxldCh3YWxsZXRfaWQsIGFzc2V0X2lkKS5yZXN1bHQoKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEV4dGVybmFsV2FsbGV0c0FwaS0+cmVtb3ZlX2Fzc2V0X2Zyb21fZXh0ZXJuYWxfd2FsbGV0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip3YWxsZXRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgd2FsbGV0IHwgCiAqKmFzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIGRlbGV0ZSB8IAoKIyMjIFJldHVybiB0eXBlCgp2b2lkIChlbXB0eSByZXNwb25zZSBib2R5KQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgT0sgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnNldF9leHRlcm5hbF93YWxsZXRfY3VzdG9tZXJfcmVmX2lkKioKPiBzZXRfZXh0ZXJuYWxfd2FsbGV0X2N1c3RvbWVyX3JlZl9pZCh3YWxsZXRfaWQsIHNldF9jdXN0b21lcl9yZWZfaWRfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKClNldCBhbiBBTUwgY3VzdG9tZXIgcmVmZXJlbmNlIElEIGZvciBhbiBleHRlcm5hbCB3YWxsZXQKClNldHMgYW4gQU1ML0tZVCBjdXN0b21lciByZWZlcmVuY2UgSUQgZm9yIHRoZSBzcGVjaWZpYyBleHRlcm5hbCB3YWxsZXQuIEV4dGVybmFsIFdhbGxldCBpcyBhIHdoaXRlbGlzdGVkIGFkZHJlc3Mgb2YgYSB3YWxsZXQgdGhhdCBiZWxvbmdzIHRvIHlvdXIgdXNlcnMvY291bnRlcnBhcnRpZXMuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9jdXN0b21lcl9yZWZfaWRfcmVxdWVzdCBpbXBvcnQgU2V0Q3VzdG9tZXJSZWZJZFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHdhbGxldF9pZCA9ICd3YWxsZXRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgd2FsbGV0IElECiAgICBzZXRfY3VzdG9tZXJfcmVmX2lkX3JlcXVlc3QgPSBmaXJlYmxvY2tzLlNldEN1c3RvbWVyUmVmSWRSZXF1ZXN0KCkgIyBTZXRDdXN0b21lclJlZklkUmVxdWVzdCB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIFNldCBhbiBBTUwgY3VzdG9tZXIgcmVmZXJlbmNlIElEIGZvciBhbiBleHRlcm5hbCB3YWxsZXQKICAgICAgICBmaXJlYmxvY2tzLmV4dGVybmFsX3dhbGxldHMuc2V0X2V4dGVybmFsX3dhbGxldF9jdXN0b21lcl9yZWZfaWQod2FsbGV0X2lkLCBzZXRfY3VzdG9tZXJfcmVmX2lkX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgRXh0ZXJuYWxXYWxsZXRzQXBpLT5zZXRfZXh0ZXJuYWxfd2FsbGV0X2N1c3RvbWVyX3JlZl9pZDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqd2FsbGV0X2lkKiogfCAqKnN0cioqfCBUaGUgd2FsbGV0IElEIHwgCiAqKnNldF9jdXN0b21lcl9yZWZfaWRfcmVxdWVzdCoqIHwgWyoqU2V0Q3VzdG9tZXJSZWZJZFJlcXVlc3QqKl0oU2V0Q3VzdG9tZXJSZWZJZFJlcXVlc3QubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKdm9pZCAoZW1wdHkgcmVzcG9uc2UgYm9keSkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgT0sgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoK \ No newline at end of file diff --git a/docs/ExtraParameters.md b/docs/ExtraParameters.md index 7817a9e6..59fd3c4d 100644 --- a/docs/ExtraParameters.md +++ b/docs/ExtraParameters.md @@ -1,36 +1 @@ -# ExtraParameters - -Additional protocol / operation specific key-value parameters: For UTXO-based blockchain input selection, add the key `inputsSelection` with the value set to the [input selection structure.](https://developers.fireblocks.com/reference/transaction-objects#inputsselection) The inputs can be retrieved from the [Retrieve Unspent Inputs endpoint.](https://developers.fireblocks.com/reference/get_vault-accounts-vaultaccountid-assetid-unspent-inputs) For `RAW` operations, add the key `rawMessageData` with the value set to the [raw message data structure.](https://developers.fireblocks.com/reference/raw-signing-objects#rawmessagedata) For `CONTRACT_CALL` operations, add the key `contractCallData` with the value set to the Ethereum smart contract Application Binary Interface (ABI) payload. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions. For **exchange compliance (e.g., Binance) and Travel Rule purposes**, include the key `piiData` containing a **custom JSON structure** with Personally Identifiable Information (PII) relevant to the transaction. This data must be fully **encrypted by the sender** before being submitted to the Fireblocks API. The recommended encryption method is **hybrid encryption** using AES-256-GCM for the payload and RSA-OAEP for key exchange, with the recipient exchange's public key. [development libraries](https://developers.fireblocks.com/docs/a-developers-guide-to-constructing-encrypted-pii-messages-for-binance-via-fireblocks) **Note:** `rawMessageData`, `contractCallData`, and `inputsSelection` cannot be used together in the same call. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**node_controls** | **Dict[str, object]** | | [optional] -**raw_message_data** | **Dict[str, object]** | | [optional] -**contract_call_data** | **str** | | [optional] -**program_call_data** | **str** | | [optional] -**inputs_selection** | **Dict[str, object]** | | [optional] -**allow_base_asset_address** | **bool** | | [optional] -**pii_data** | **Dict[str, object]** | | [optional] - -## Example - -```python -from fireblocks.models.extra_parameters import ExtraParameters - -# TODO update the JSON string below -json = "{}" -# create an instance of ExtraParameters from a JSON string -extra_parameters_instance = ExtraParameters.from_json(json) -# print the JSON string representation of the object -print(ExtraParameters.to_json()) - -# convert the object into a dict -extra_parameters_dict = extra_parameters_instance.to_dict() -# create an instance of ExtraParameters from a dict -extra_parameters_from_dict = ExtraParameters.from_dict(extra_parameters_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBFeHRyYVBhcmFtZXRlcnMKCkFkZGl0aW9uYWwgcHJvdG9jb2wgLyBvcGVyYXRpb24gc3BlY2lmaWMga2V5LXZhbHVlIHBhcmFtZXRlcnM6ICBGb3IgVVRYTy1iYXNlZCBibG9ja2NoYWluIGlucHV0IHNlbGVjdGlvbiwgYWRkIHRoZSBrZXkgYGlucHV0c1NlbGVjdGlvbmAgd2l0aCB0aGUgdmFsdWUgc2V0IHRvIHRoZSBbaW5wdXQgc2VsZWN0aW9uIHN0cnVjdHVyZS5dKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9yZWZlcmVuY2UvdHJhbnNhY3Rpb24tb2JqZWN0cyNpbnB1dHNzZWxlY3Rpb24pIFRoZSBpbnB1dHMgY2FuIGJlIHJldHJpZXZlZCBmcm9tIHRoZSBbUmV0cmlldmUgVW5zcGVudCBJbnB1dHMgZW5kcG9pbnQuXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2dldF92YXVsdC1hY2NvdW50cy12YXVsdGFjY291bnRpZC1hc3NldGlkLXVuc3BlbnQtaW5wdXRzKSAgRm9yIGBSQVdgIG9wZXJhdGlvbnMsIGFkZCB0aGUga2V5IGByYXdNZXNzYWdlRGF0YWAgd2l0aCB0aGUgdmFsdWUgc2V0IHRvIHRoZSBbcmF3IG1lc3NhZ2UgZGF0YSBzdHJ1Y3R1cmUuXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL3Jhdy1zaWduaW5nLW9iamVjdHMjcmF3bWVzc2FnZWRhdGEpICBGb3IgYENPTlRSQUNUX0NBTExgIG9wZXJhdGlvbnMsIGFkZCB0aGUga2V5IGBjb250cmFjdENhbGxEYXRhYCB3aXRoIHRoZSB2YWx1ZSBzZXQgdG8gdGhlIEV0aGVyZXVtIHNtYXJ0IGNvbnRyYWN0IEFwcGxpY2F0aW9uIEJpbmFyeSBJbnRlcmZhY2UgKEFCSSkgcGF5bG9hZC4gVGhlIEZpcmVibG9ja3MgW2RldmVsb3BtZW50IGxpYnJhcmllc10oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL2RvY3MvZXRoZXJldW0tZGV2ZWxvcG1lbnQjY29udmVuaWVuY2UtbGlicmFyaWVzKSBhcmUgcmVjb21tZW5kZWQgZm9yIGJ1aWxkaW5nIGNvbnRyYWN0IGNhbGwgdHJhbnNhY3Rpb25zLiBGb3IgKipleGNoYW5nZSBjb21wbGlhbmNlIChlLmcuLCBCaW5hbmNlKSBhbmQgVHJhdmVsIFJ1bGUgcHVycG9zZXMqKiwgaW5jbHVkZSB0aGUga2V5IGBwaWlEYXRhYCBjb250YWluaW5nIGEgKipjdXN0b20gSlNPTiBzdHJ1Y3R1cmUqKiB3aXRoIFBlcnNvbmFsbHkgSWRlbnRpZmlhYmxlIEluZm9ybWF0aW9uIChQSUkpIHJlbGV2YW50IHRvIHRoZSB0cmFuc2FjdGlvbi4gVGhpcyBkYXRhIG11c3QgYmUgZnVsbHkgKiplbmNyeXB0ZWQgYnkgdGhlIHNlbmRlcioqIGJlZm9yZSBiZWluZyBzdWJtaXR0ZWQgdG8gdGhlIEZpcmVibG9ja3MgQVBJLiBUaGUgcmVjb21tZW5kZWQgZW5jcnlwdGlvbiBtZXRob2QgaXMgKipoeWJyaWQgZW5jcnlwdGlvbioqIHVzaW5nIEFFUy0yNTYtR0NNIGZvciB0aGUgcGF5bG9hZCBhbmQgUlNBLU9BRVAgZm9yIGtleSBleGNoYW5nZSwgd2l0aCB0aGUgcmVjaXBpZW50IGV4Y2hhbmdlJ3MgcHVibGljIGtleS4gW2RldmVsb3BtZW50IGxpYnJhcmllc10oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL2RvY3MvYS1kZXZlbG9wZXJzLWd1aWRlLXRvLWNvbnN0cnVjdGluZy1lbmNyeXB0ZWQtcGlpLW1lc3NhZ2VzLWZvci1iaW5hbmNlLXZpYS1maXJlYmxvY2tzKSAgKipOb3RlOioqIGByYXdNZXNzYWdlRGF0YWAsIGBjb250cmFjdENhbGxEYXRhYCwgYW5kIGBpbnB1dHNTZWxlY3Rpb25gIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIGluIHRoZSBzYW1lIGNhbGwuIAoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm5vZGVfY29udHJvbHMqKiB8ICoqRGljdFtzdHIsIG9iamVjdF0qKiB8ICB8IFtvcHRpb25hbF0gCioqcmF3X21lc3NhZ2VfZGF0YSoqIHwgKipEaWN0W3N0ciwgb2JqZWN0XSoqIHwgIHwgW29wdGlvbmFsXSAKKipjb250cmFjdF9jYWxsX2RhdGEqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKnByb2dyYW1fY2FsbF9kYXRhKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKippbnB1dHNfc2VsZWN0aW9uKiogfCAqKkRpY3Rbc3RyLCBvYmplY3RdKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFsbG93X2Jhc2VfYXNzZXRfYWRkcmVzcyoqIHwgKipib29sKiogfCAgfCBbb3B0aW9uYWxdIAoqKnBpaV9kYXRhKiogfCAqKkRpY3Rbc3RyLCBvYmplY3RdKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXh0cmFfcGFyYW1ldGVycyBpbXBvcnQgRXh0cmFQYXJhbWV0ZXJzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeHRyYVBhcmFtZXRlcnMgZnJvbSBhIEpTT04gc3RyaW5nCmV4dHJhX3BhcmFtZXRlcnNfaW5zdGFuY2UgPSBFeHRyYVBhcmFtZXRlcnMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRXh0cmFQYXJhbWV0ZXJzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmV4dHJhX3BhcmFtZXRlcnNfZGljdCA9IGV4dHJhX3BhcmFtZXRlcnNfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEV4dHJhUGFyYW1ldGVycyBmcm9tIGEgZGljdApleHRyYV9wYXJhbWV0ZXJzX2Zyb21fZGljdCA9IEV4dHJhUGFyYW1ldGVycy5mcm9tX2RpY3QoZXh0cmFfcGFyYW1ldGVyc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/Failure.md b/docs/Failure.md index fdf0ac07..6da8838e 100644 --- a/docs/Failure.md +++ b/docs/Failure.md @@ -1,29 +1 @@ -# Failure - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**reason** | [**FailureReason**](FailureReason.md) | | - -## Example - -```python -from fireblocks.models.failure import Failure - -# TODO update the JSON string below -json = "{}" -# create an instance of Failure from a JSON string -failure_instance = Failure.from_json(json) -# print the JSON string representation of the object -print(Failure.to_json()) - -# convert the object into a dict -failure_dict = failure_instance.to_dict() -# create an instance of Failure from a dict -failure_from_dict = Failure.from_dict(failure_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBGYWlsdXJlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnJlYXNvbioqIHwgWyoqRmFpbHVyZVJlYXNvbioqXShGYWlsdXJlUmVhc29uLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmFpbHVyZSBpbXBvcnQgRmFpbHVyZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRmFpbHVyZSBmcm9tIGEgSlNPTiBzdHJpbmcKZmFpbHVyZV9pbnN0YW5jZSA9IEZhaWx1cmUuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRmFpbHVyZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApmYWlsdXJlX2RpY3QgPSBmYWlsdXJlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGYWlsdXJlIGZyb20gYSBkaWN0CmZhaWx1cmVfZnJvbV9kaWN0ID0gRmFpbHVyZS5mcm9tX2RpY3QoZmFpbHVyZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/FailureReason.md b/docs/FailureReason.md index 325021cc..26716c74 100644 --- a/docs/FailureReason.md +++ b/docs/FailureReason.md @@ -1,44 +1 @@ -# FailureReason - - -## Enum - -* `INSUFFICIENT_FUNDS` (value: `'INSUFFICIENT_FUNDS'`) - -* `UNKNOWN_REASON` (value: `'UNKNOWN_REASON'`) - -* `INITIATE_PAYMENT_FAILURE` (value: `'INITIATE_PAYMENT_FAILURE'`) - -* `POLICY_REJECTION` (value: `'POLICY_REJECTION'`) - -* `TRANSACTION_FAILED` (value: `'TRANSACTION_FAILED'`) - -* `ACCOUNT_NOT_ACTIVE` (value: `'ACCOUNT_NOT_ACTIVE'`) - -* `ACCOUNT_NOT_FOUND` (value: `'ACCOUNT_NOT_FOUND'`) - -* `BAD_REQUEST` (value: `'BAD_REQUEST'`) - -* `QUOTE_NOT_READY` (value: `'QUOTE_NOT_READY'`) - -* `INVALID_DATA` (value: `'INVALID_DATA'`) - -* `UNSUPPORTED_CONVERSION` (value: `'UNSUPPORTED_CONVERSION'`) - -* `UNSUPPORTED_RAMP_METHOD` (value: `'UNSUPPORTED_RAMP_METHOD'`) - -* `REFUNDED` (value: `'REFUNDED'`) - -* `FAILED_BY_PROVIDER` (value: `'FAILED_BY_PROVIDER'`) - -* `ORDER_EXPIRED` (value: `'ORDER_EXPIRED'`) - -* `TRANSACTION_CANCELLED` (value: `'TRANSACTION_CANCELLED'`) - -* `TRANSACTION_REJECTED` (value: `'TRANSACTION_REJECTED'`) - -* `TRANSACTION_BLOCKED` (value: `'TRANSACTION_BLOCKED'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBGYWlsdXJlUmVhc29uCgoKIyMgRW51bQoKKiBgSU5TVUZGSUNJRU5UX0ZVTkRTYCAodmFsdWU6IGAnSU5TVUZGSUNJRU5UX0ZVTkRTJ2ApCgoqIGBVTktOT1dOX1JFQVNPTmAgKHZhbHVlOiBgJ1VOS05PV05fUkVBU09OJ2ApCgoqIGBJTklUSUFURV9QQVlNRU5UX0ZBSUxVUkVgICh2YWx1ZTogYCdJTklUSUFURV9QQVlNRU5UX0ZBSUxVUkUnYCkKCiogYFBPTElDWV9SRUpFQ1RJT05gICh2YWx1ZTogYCdQT0xJQ1lfUkVKRUNUSU9OJ2ApCgoqIGBUUkFOU0FDVElPTl9GQUlMRURgICh2YWx1ZTogYCdUUkFOU0FDVElPTl9GQUlMRUQnYCkKCiogYEFDQ09VTlRfTk9UX0FDVElWRWAgKHZhbHVlOiBgJ0FDQ09VTlRfTk9UX0FDVElWRSdgKQoKKiBgQUNDT1VOVF9OT1RfRk9VTkRgICh2YWx1ZTogYCdBQ0NPVU5UX05PVF9GT1VORCdgKQoKKiBgQkFEX1JFUVVFU1RgICh2YWx1ZTogYCdCQURfUkVRVUVTVCdgKQoKKiBgUVVPVEVfTk9UX1JFQURZYCAodmFsdWU6IGAnUVVPVEVfTk9UX1JFQURZJ2ApCgoqIGBJTlZBTElEX0RBVEFgICh2YWx1ZTogYCdJTlZBTElEX0RBVEEnYCkKCiogYFVOU1VQUE9SVEVEX0NPTlZFUlNJT05gICh2YWx1ZTogYCdVTlNVUFBPUlRFRF9DT05WRVJTSU9OJ2ApCgoqIGBVTlNVUFBPUlRFRF9SQU1QX01FVEhPRGAgKHZhbHVlOiBgJ1VOU1VQUE9SVEVEX1JBTVBfTUVUSE9EJ2ApCgoqIGBSRUZVTkRFRGAgKHZhbHVlOiBgJ1JFRlVOREVEJ2ApCgoqIGBGQUlMRURfQllfUFJPVklERVJgICh2YWx1ZTogYCdGQUlMRURfQllfUFJPVklERVInYCkKCiogYE9SREVSX0VYUElSRURgICh2YWx1ZTogYCdPUkRFUl9FWFBJUkVEJ2ApCgoqIGBUUkFOU0FDVElPTl9DQU5DRUxMRURgICh2YWx1ZTogYCdUUkFOU0FDVElPTl9DQU5DRUxMRUQnYCkKCiogYFRSQU5TQUNUSU9OX1JFSkVDVEVEYCAodmFsdWU6IGAnVFJBTlNBQ1RJT05fUkVKRUNURUQnYCkKCiogYFRSQU5TQUNUSU9OX0JMT0NLRURgICh2YWx1ZTogYCdUUkFOU0FDVElPTl9CTE9DS0VEJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/Fee.md b/docs/Fee.md index 258169b2..70c6e837 100644 --- a/docs/Fee.md +++ b/docs/Fee.md @@ -1,32 +1 @@ -# Fee - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**fee_type** | [**FeeTypeEnum**](FeeTypeEnum.md) | | -**asset_id** | **str** | The asset identifier for the fee. | -**amount_type** | **str** | | -**amount** | **float** | Fee in basis points (1 = 0.01%, 10000 = 100%) | - -## Example - -```python -from fireblocks.models.fee import Fee - -# TODO update the JSON string below -json = "{}" -# create an instance of Fee from a JSON string -fee_instance = Fee.from_json(json) -# print the JSON string representation of the object -print(Fee.to_json()) - -# convert the object into a dict -fee_dict = fee_instance.to_dict() -# create an instance of Fee from a dict -fee_from_dict = Fee.from_dict(fee_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBGZWUKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZmVlX3R5cGUqKiB8IFsqKkZlZVR5cGVFbnVtKipdKEZlZVR5cGVFbnVtLm1kKSB8ICB8IAoqKmFzc2V0X2lkKiogfCAqKnN0cioqIHwgVGhlIGFzc2V0IGlkZW50aWZpZXIgZm9yIHRoZSBmZWUuIHwgCioqYW1vdW50X3R5cGUqKiB8ICoqc3RyKiogfCAgfCAKKiphbW91bnQqKiB8ICoqZmxvYXQqKiB8IEZlZSBpbiBiYXNpcyBwb2ludHMgKDEgJiN4M0Q7IDAuMDElLCAxMDAwMCAmI3gzRDsgMTAwJSkgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZSBpbXBvcnQgRmVlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGZWUgZnJvbSBhIEpTT04gc3RyaW5nCmZlZV9pbnN0YW5jZSA9IEZlZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChGZWUudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZmVlX2RpY3QgPSBmZWVfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEZlZSBmcm9tIGEgZGljdApmZWVfZnJvbV9kaWN0ID0gRmVlLmZyb21fZGljdChmZWVfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/FeeBreakdown.md b/docs/FeeBreakdown.md index ac308336..0eeb4dad 100644 --- a/docs/FeeBreakdown.md +++ b/docs/FeeBreakdown.md @@ -1,33 +1 @@ -# FeeBreakdown - -Fee breakdown details for a transaction estimate - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**base_fee** | **str** | Base fee component | [optional] -**priority_fee** | **str** | Priority fee component | [optional] -**rent** | **str** | Rent fee for account creation/storage (Solana-specific, optional) | [optional] -**total_fee** | **str** | Total fee amount | [optional] - -## Example - -```python -from fireblocks.models.fee_breakdown import FeeBreakdown - -# TODO update the JSON string below -json = "{}" -# create an instance of FeeBreakdown from a JSON string -fee_breakdown_instance = FeeBreakdown.from_json(json) -# print the JSON string representation of the object -print(FeeBreakdown.to_json()) - -# convert the object into a dict -fee_breakdown_dict = fee_breakdown_instance.to_dict() -# create an instance of FeeBreakdown from a dict -fee_breakdown_from_dict = FeeBreakdown.from_dict(fee_breakdown_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBGZWVCcmVha2Rvd24KCkZlZSBicmVha2Rvd24gZGV0YWlscyBmb3IgYSB0cmFuc2FjdGlvbiBlc3RpbWF0ZQoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmJhc2VfZmVlKiogfCAqKnN0cioqIHwgQmFzZSBmZWUgY29tcG9uZW50IHwgW29wdGlvbmFsXSAKKipwcmlvcml0eV9mZWUqKiB8ICoqc3RyKiogfCBQcmlvcml0eSBmZWUgY29tcG9uZW50IHwgW29wdGlvbmFsXSAKKipyZW50KiogfCAqKnN0cioqIHwgUmVudCBmZWUgZm9yIGFjY291bnQgY3JlYXRpb24vc3RvcmFnZSAoU29sYW5hLXNwZWNpZmljLCBvcHRpb25hbCkgfCBbb3B0aW9uYWxdIAoqKnRvdGFsX2ZlZSoqIHwgKipzdHIqKiB8IFRvdGFsIGZlZSBhbW91bnQgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmVlX2JyZWFrZG93biBpbXBvcnQgRmVlQnJlYWtkb3duCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGZWVCcmVha2Rvd24gZnJvbSBhIEpTT04gc3RyaW5nCmZlZV9icmVha2Rvd25faW5zdGFuY2UgPSBGZWVCcmVha2Rvd24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRmVlQnJlYWtkb3duLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmZlZV9icmVha2Rvd25fZGljdCA9IGZlZV9icmVha2Rvd25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEZlZUJyZWFrZG93biBmcm9tIGEgZGljdApmZWVfYnJlYWtkb3duX2Zyb21fZGljdCA9IEZlZUJyZWFrZG93bi5mcm9tX2RpY3QoZmVlX2JyZWFrZG93bl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/FeeInfo.md b/docs/FeeInfo.md index c4dd92d2..53fad6bc 100644 --- a/docs/FeeInfo.md +++ b/docs/FeeInfo.md @@ -1,39 +1 @@ -# FeeInfo - -Details of the transaction's fee. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**network_fee** | **str** | The fee paid to the network | [optional] -**service_fee** | **str** | The total fee deducted by the exchange from the actual requested amount (serviceFee = amount - netAmount) | [optional] -**gas_price** | **str** | | [optional] -**l1network_fee** | **str** | Layer 1 network fee for Layer 2 blockchain transactions | [optional] -**l2network_fee** | **str** | Layer 2 network fee (gas price component for Layer 2 transactions) | [optional] -**paid_by_relay** | **bool** | Wether the fee was paid by the relay or not | [optional] -**relay_type** | **str** | Wether the relay is the same tenant (LOCAL) or another tenant (THIRD_PARTY) | [optional] -**relay_id** | **str** | The vault account ID of the relay | [optional] -**relay_name** | **str** | The name of the tenant, only for THIRD_PARTY relays | [optional] -**fee_usd** | **str** | The USD value of the fee | [optional] - -## Example - -```python -from fireblocks.models.fee_info import FeeInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of FeeInfo from a JSON string -fee_info_instance = FeeInfo.from_json(json) -# print the JSON string representation of the object -print(FeeInfo.to_json()) - -# convert the object into a dict -fee_info_dict = fee_info_instance.to_dict() -# create an instance of FeeInfo from a dict -fee_info_from_dict = FeeInfo.from_dict(fee_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBGZWVJbmZvCgpEZXRhaWxzIG9mIHRoZSB0cmFuc2FjdGlvbidzIGZlZS4KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipuZXR3b3JrX2ZlZSoqIHwgKipzdHIqKiB8IFRoZSBmZWUgcGFpZCB0byB0aGUgbmV0d29yayB8IFtvcHRpb25hbF0gCioqc2VydmljZV9mZWUqKiB8ICoqc3RyKiogfCBUaGUgdG90YWwgZmVlIGRlZHVjdGVkIGJ5IHRoZSBleGNoYW5nZSBmcm9tIHRoZSBhY3R1YWwgcmVxdWVzdGVkIGFtb3VudCAoc2VydmljZUZlZSAmI3gzRDsgYW1vdW50IC0gbmV0QW1vdW50KSB8IFtvcHRpb25hbF0gCioqZ2FzX3ByaWNlKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipsMW5ldHdvcmtfZmVlKiogfCAqKnN0cioqIHwgTGF5ZXIgMSBuZXR3b3JrIGZlZSBmb3IgTGF5ZXIgMiBibG9ja2NoYWluIHRyYW5zYWN0aW9ucyB8IFtvcHRpb25hbF0gCioqbDJuZXR3b3JrX2ZlZSoqIHwgKipzdHIqKiB8IExheWVyIDIgbmV0d29yayBmZWUgKGdhcyBwcmljZSBjb21wb25lbnQgZm9yIExheWVyIDIgdHJhbnNhY3Rpb25zKSB8IFtvcHRpb25hbF0gCioqcGFpZF9ieV9yZWxheSoqIHwgKipib29sKiogfCBXZXRoZXIgdGhlIGZlZSB3YXMgcGFpZCBieSB0aGUgcmVsYXkgb3Igbm90IHwgW29wdGlvbmFsXSAKKipyZWxheV90eXBlKiogfCAqKnN0cioqIHwgV2V0aGVyIHRoZSByZWxheSBpcyB0aGUgc2FtZSB0ZW5hbnQgKExPQ0FMKSBvciBhbm90aGVyIHRlbmFudCAoVEhJUkRfUEFSVFkpIHwgW29wdGlvbmFsXSAKKipyZWxheV9pZCoqIHwgKipzdHIqKiB8IFRoZSB2YXVsdCBhY2NvdW50IElEIG9mIHRoZSByZWxheSB8IFtvcHRpb25hbF0gCioqcmVsYXlfbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBuYW1lIG9mIHRoZSB0ZW5hbnQsIG9ubHkgZm9yIFRISVJEX1BBUlRZIHJlbGF5cyB8IFtvcHRpb25hbF0gCioqZmVlX3VzZCoqIHwgKipzdHIqKiB8IFRoZSBVU0QgdmFsdWUgb2YgdGhlIGZlZSB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5mZWVfaW5mbyBpbXBvcnQgRmVlSW5mbwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRmVlSW5mbyBmcm9tIGEgSlNPTiBzdHJpbmcKZmVlX2luZm9faW5zdGFuY2UgPSBGZWVJbmZvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEZlZUluZm8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZmVlX2luZm9fZGljdCA9IGZlZV9pbmZvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGZWVJbmZvIGZyb20gYSBkaWN0CmZlZV9pbmZvX2Zyb21fZGljdCA9IEZlZUluZm8uZnJvbV9kaWN0KGZlZV9pbmZvX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/FeeLevel.md b/docs/FeeLevel.md index f7d80cc8..3491f786 100644 --- a/docs/FeeLevel.md +++ b/docs/FeeLevel.md @@ -1,15 +1 @@ -# FeeLevel - -Represents the fee level for a transaction, which can be set as slow, medium, or fast. Only one of fee/feeLevel is required. - -## Enum - -* `LOW` (value: `'LOW'`) - -* `MEDIUM` (value: `'MEDIUM'`) - -* `HIGH` (value: `'HIGH'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBGZWVMZXZlbAoKUmVwcmVzZW50cyB0aGUgZmVlIGxldmVsIGZvciBhIHRyYW5zYWN0aW9uLCB3aGljaCBjYW4gYmUgc2V0IGFzIHNsb3csIG1lZGl1bSwgb3IgZmFzdC4gT25seSBvbmUgb2YgZmVlL2ZlZUxldmVsIGlzIHJlcXVpcmVkLgoKIyMgRW51bQoKKiBgTE9XYCAodmFsdWU6IGAnTE9XJ2ApCgoqIGBNRURJVU1gICh2YWx1ZTogYCdNRURJVU0nYCkKCiogYEhJR0hgICh2YWx1ZTogYCdISUdIJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/FeePayerInfo.md b/docs/FeePayerInfo.md index d3ce7bf7..4cbb9c73 100644 --- a/docs/FeePayerInfo.md +++ b/docs/FeePayerInfo.md @@ -1,29 +1 @@ -# FeePayerInfo - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**fee_payer_account_id** | **str** | The account ID of the fee payer | [optional] - -## Example - -```python -from fireblocks.models.fee_payer_info import FeePayerInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of FeePayerInfo from a JSON string -fee_payer_info_instance = FeePayerInfo.from_json(json) -# print the JSON string representation of the object -print(FeePayerInfo.to_json()) - -# convert the object into a dict -fee_payer_info_dict = fee_payer_info_instance.to_dict() -# create an instance of FeePayerInfo from a dict -fee_payer_info_from_dict = FeePayerInfo.from_dict(fee_payer_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBGZWVQYXllckluZm8KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZmVlX3BheWVyX2FjY291bnRfaWQqKiB8ICoqc3RyKiogfCBUaGUgYWNjb3VudCBJRCBvZiB0aGUgZmVlIHBheWVyIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZV9wYXllcl9pbmZvIGltcG9ydCBGZWVQYXllckluZm8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEZlZVBheWVySW5mbyBmcm9tIGEgSlNPTiBzdHJpbmcKZmVlX3BheWVyX2luZm9faW5zdGFuY2UgPSBGZWVQYXllckluZm8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRmVlUGF5ZXJJbmZvLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmZlZV9wYXllcl9pbmZvX2RpY3QgPSBmZWVfcGF5ZXJfaW5mb19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRmVlUGF5ZXJJbmZvIGZyb20gYSBkaWN0CmZlZV9wYXllcl9pbmZvX2Zyb21fZGljdCA9IEZlZVBheWVySW5mby5mcm9tX2RpY3QoZmVlX3BheWVyX2luZm9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/FeePropertiesDetails.md b/docs/FeePropertiesDetails.md index 5e824278..12a0265c 100644 --- a/docs/FeePropertiesDetails.md +++ b/docs/FeePropertiesDetails.md @@ -1,30 +1 @@ -# FeePropertiesDetails - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**fee_type** | [**FeeTypeEnum**](FeeTypeEnum.md) | | -**asset_id** | **str** | The asset identifier for the fee. | - -## Example - -```python -from fireblocks.models.fee_properties_details import FeePropertiesDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of FeePropertiesDetails from a JSON string -fee_properties_details_instance = FeePropertiesDetails.from_json(json) -# print the JSON string representation of the object -print(FeePropertiesDetails.to_json()) - -# convert the object into a dict -fee_properties_details_dict = fee_properties_details_instance.to_dict() -# create an instance of FeePropertiesDetails from a dict -fee_properties_details_from_dict = FeePropertiesDetails.from_dict(fee_properties_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBGZWVQcm9wZXJ0aWVzRGV0YWlscwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipmZWVfdHlwZSoqIHwgWyoqRmVlVHlwZUVudW0qKl0oRmVlVHlwZUVudW0ubWQpIHwgIHwgCioqYXNzZXRfaWQqKiB8ICoqc3RyKiogfCBUaGUgYXNzZXQgaWRlbnRpZmllciBmb3IgdGhlIGZlZS4gfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZV9wcm9wZXJ0aWVzX2RldGFpbHMgaW1wb3J0IEZlZVByb3BlcnRpZXNEZXRhaWxzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGZWVQcm9wZXJ0aWVzRGV0YWlscyBmcm9tIGEgSlNPTiBzdHJpbmcKZmVlX3Byb3BlcnRpZXNfZGV0YWlsc19pbnN0YW5jZSA9IEZlZVByb3BlcnRpZXNEZXRhaWxzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEZlZVByb3BlcnRpZXNEZXRhaWxzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmZlZV9wcm9wZXJ0aWVzX2RldGFpbHNfZGljdCA9IGZlZV9wcm9wZXJ0aWVzX2RldGFpbHNfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEZlZVByb3BlcnRpZXNEZXRhaWxzIGZyb20gYSBkaWN0CmZlZV9wcm9wZXJ0aWVzX2RldGFpbHNfZnJvbV9kaWN0ID0gRmVlUHJvcGVydGllc0RldGFpbHMuZnJvbV9kaWN0KGZlZV9wcm9wZXJ0aWVzX2RldGFpbHNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/FeeTypeEnum.md b/docs/FeeTypeEnum.md index a3ac7258..cae3c889 100644 --- a/docs/FeeTypeEnum.md +++ b/docs/FeeTypeEnum.md @@ -1,17 +1 @@ -# FeeTypeEnum - -The type of fee, such as ORDER, NETWORK, or SPREAD. ORDER - Fee for executing the order. NETWORK - Fee for network transactions. SPREAD - Fee for the difference between buy and sell prices. REBATE - Negative fee returned to the user as a reward or incentive. - -## Enum - -* `ORDER` (value: `'ORDER'`) - -* `NETWORK` (value: `'NETWORK'`) - -* `SPREAD` (value: `'SPREAD'`) - -* `REBATE` (value: `'REBATE'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBGZWVUeXBlRW51bQoKVGhlIHR5cGUgb2YgZmVlLCBzdWNoIGFzIE9SREVSLCBORVRXT1JLLCBvciBTUFJFQUQuIE9SREVSIC0gRmVlIGZvciBleGVjdXRpbmcgdGhlIG9yZGVyLiBORVRXT1JLIC0gRmVlIGZvciBuZXR3b3JrIHRyYW5zYWN0aW9ucy4gU1BSRUFEIC0gRmVlIGZvciB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGJ1eSBhbmQgc2VsbCBwcmljZXMuIFJFQkFURSAtIE5lZ2F0aXZlIGZlZSByZXR1cm5lZCB0byB0aGUgdXNlciBhcyBhIHJld2FyZCBvciBpbmNlbnRpdmUuIAoKIyMgRW51bQoKKiBgT1JERVJgICh2YWx1ZTogYCdPUkRFUidgKQoKKiBgTkVUV09SS2AgKHZhbHVlOiBgJ05FVFdPUksnYCkKCiogYFNQUkVBRGAgKHZhbHVlOiBgJ1NQUkVBRCdgKQoKKiBgUkVCQVRFYCAodmFsdWU6IGAnUkVCQVRFJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/FetchAbiRequestDto.md b/docs/FetchAbiRequestDto.md index f5549fe1..a7f5eab6 100644 --- a/docs/FetchAbiRequestDto.md +++ b/docs/FetchAbiRequestDto.md @@ -1,30 +1 @@ -# FetchAbiRequestDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**base_asset_id** | **str** | The blockchain base assetId | -**contract_address** | **str** | The contract's onchain address | - -## Example - -```python -from fireblocks.models.fetch_abi_request_dto import FetchAbiRequestDto - -# TODO update the JSON string below -json = "{}" -# create an instance of FetchAbiRequestDto from a JSON string -fetch_abi_request_dto_instance = FetchAbiRequestDto.from_json(json) -# print the JSON string representation of the object -print(FetchAbiRequestDto.to_json()) - -# convert the object into a dict -fetch_abi_request_dto_dict = fetch_abi_request_dto_instance.to_dict() -# create an instance of FetchAbiRequestDto from a dict -fetch_abi_request_dto_from_dict = FetchAbiRequestDto.from_dict(fetch_abi_request_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBGZXRjaEFiaVJlcXVlc3REdG8KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYmFzZV9hc3NldF9pZCoqIHwgKipzdHIqKiB8IFRoZSBibG9ja2NoYWluIGJhc2UgYXNzZXRJZCB8IAoqKmNvbnRyYWN0X2FkZHJlc3MqKiB8ICoqc3RyKiogfCBUaGUgY29udHJhY3QmIzM5O3Mgb25jaGFpbiBhZGRyZXNzIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5mZXRjaF9hYmlfcmVxdWVzdF9kdG8gaW1wb3J0IEZldGNoQWJpUmVxdWVzdER0bwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRmV0Y2hBYmlSZXF1ZXN0RHRvIGZyb20gYSBKU09OIHN0cmluZwpmZXRjaF9hYmlfcmVxdWVzdF9kdG9faW5zdGFuY2UgPSBGZXRjaEFiaVJlcXVlc3REdG8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRmV0Y2hBYmlSZXF1ZXN0RHRvLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmZldGNoX2FiaV9yZXF1ZXN0X2R0b19kaWN0ID0gZmV0Y2hfYWJpX3JlcXVlc3RfZHRvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGZXRjaEFiaVJlcXVlc3REdG8gZnJvbSBhIGRpY3QKZmV0Y2hfYWJpX3JlcXVlc3RfZHRvX2Zyb21fZGljdCA9IEZldGNoQWJpUmVxdWVzdER0by5mcm9tX2RpY3QoZmV0Y2hfYWJpX3JlcXVlc3RfZHRvX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/FiatAccount.md b/docs/FiatAccount.md index e45bf80c..a4d07f95 100644 --- a/docs/FiatAccount.md +++ b/docs/FiatAccount.md @@ -1,33 +1 @@ -# FiatAccount - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | [optional] -**type** | [**FiatAccountType**](FiatAccountType.md) | | [optional] -**name** | **str** | Display name of the fiat account | [optional] -**address** | **str** | | [optional] -**assets** | [**List[FiatAsset]**](FiatAsset.md) | | [optional] - -## Example - -```python -from fireblocks.models.fiat_account import FiatAccount - -# TODO update the JSON string below -json = "{}" -# create an instance of FiatAccount from a JSON string -fiat_account_instance = FiatAccount.from_json(json) -# print the JSON string representation of the object -print(FiatAccount.to_json()) - -# convert the object into a dict -fiat_account_dict = fiat_account_instance.to_dict() -# create an instance of FiatAccount from a dict -fiat_account_from_dict = FiatAccount.from_dict(fiat_account_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBGaWF0QWNjb3VudAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqdHlwZSoqIHwgWyoqRmlhdEFjY291bnRUeXBlKipdKEZpYXRBY2NvdW50VHlwZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKm5hbWUqKiB8ICoqc3RyKiogfCBEaXNwbGF5IG5hbWUgb2YgdGhlIGZpYXQgYWNjb3VudCB8IFtvcHRpb25hbF0gCioqYWRkcmVzcyoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqYXNzZXRzKiogfCBbKipMaXN0W0ZpYXRBc3NldF0qKl0oRmlhdEFzc2V0Lm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5maWF0X2FjY291bnQgaW1wb3J0IEZpYXRBY2NvdW50CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGaWF0QWNjb3VudCBmcm9tIGEgSlNPTiBzdHJpbmcKZmlhdF9hY2NvdW50X2luc3RhbmNlID0gRmlhdEFjY291bnQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRmlhdEFjY291bnQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZmlhdF9hY2NvdW50X2RpY3QgPSBmaWF0X2FjY291bnRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEZpYXRBY2NvdW50IGZyb20gYSBkaWN0CmZpYXRfYWNjb3VudF9mcm9tX2RpY3QgPSBGaWF0QWNjb3VudC5mcm9tX2RpY3QoZmlhdF9hY2NvdW50X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/FiatAccountType.md b/docs/FiatAccountType.md index c29dfcba..27359c25 100644 --- a/docs/FiatAccountType.md +++ b/docs/FiatAccountType.md @@ -1,10 +1 @@ -# FiatAccountType - - -## Enum - -* `BLINC` (value: `'BLINC'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBGaWF0QWNjb3VudFR5cGUKCgojIyBFbnVtCgoqIGBCTElOQ2AgKHZhbHVlOiBgJ0JMSU5DJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/FiatAccountsApi.md b/docs/FiatAccountsApi.md index ac2c01e1..8ca1ace0 100644 --- a/docs/FiatAccountsApi.md +++ b/docs/FiatAccountsApi.md @@ -1,316 +1 @@ -# fireblocks.FiatAccountsApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**deposit_funds_from_linked_dda**](FiatAccountsApi.md#deposit_funds_from_linked_dda) | **POST** /fiat_accounts/{accountId}/deposit_from_linked_dda | Deposit funds from DDA -[**get_fiat_account**](FiatAccountsApi.md#get_fiat_account) | **GET** /fiat_accounts/{accountId} | Find a specific fiat account -[**get_fiat_accounts**](FiatAccountsApi.md#get_fiat_accounts) | **GET** /fiat_accounts | List fiat accounts -[**redeem_funds_to_linked_dda**](FiatAccountsApi.md#redeem_funds_to_linked_dda) | **POST** /fiat_accounts/{accountId}/redeem_to_linked_dda | Redeem funds to DDA - - -# **deposit_funds_from_linked_dda** -> DepositFundsFromLinkedDDAResponse deposit_funds_from_linked_dda(account_id, idempotency_key=idempotency_key, funds=funds) - -Deposit funds from DDA - -Deposits funds from the linked DDA. - -### Example - - -```python -from fireblocks.models.deposit_funds_from_linked_dda_response import DepositFundsFromLinkedDDAResponse -from fireblocks.models.funds import Funds -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - account_id = 'account_id_example' # str | The ID of the fiat account to use - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - funds = fireblocks.Funds() # Funds | (optional) - - try: - # Deposit funds from DDA - api_response = fireblocks.fiat_accounts.deposit_funds_from_linked_dda(account_id, idempotency_key=idempotency_key, funds=funds).result() - print("The response of FiatAccountsApi->deposit_funds_from_linked_dda:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling FiatAccountsApi->deposit_funds_from_linked_dda: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **account_id** | **str**| The ID of the fiat account to use | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **funds** | [**Funds**](Funds.md)| | [optional] - -### Return type - -[**DepositFundsFromLinkedDDAResponse**](DepositFundsFromLinkedDDAResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Transfer succeeded | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_fiat_account** -> FiatAccount get_fiat_account(account_id) - -Find a specific fiat account - -Returns a fiat account by ID. -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.fiat_account import FiatAccount -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - account_id = 'account_id_example' # str | The ID of the fiat account to return - - try: - # Find a specific fiat account - api_response = fireblocks.fiat_accounts.get_fiat_account(account_id).result() - print("The response of FiatAccountsApi->get_fiat_account:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling FiatAccountsApi->get_fiat_account: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **account_id** | **str**| The ID of the fiat account to return | - -### Return type - -[**FiatAccount**](FiatAccount.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A fiat account object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_fiat_accounts** -> List[FiatAccount] get_fiat_accounts() - -List fiat accounts - -Returns all fiat accounts. -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.fiat_account import FiatAccount -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # List fiat accounts - api_response = fireblocks.fiat_accounts.get_fiat_accounts().result() - print("The response of FiatAccountsApi->get_fiat_accounts:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling FiatAccountsApi->get_fiat_accounts: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**List[FiatAccount]**](FiatAccount.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A fiat account object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **redeem_funds_to_linked_dda** -> RedeemFundsToLinkedDDAResponse redeem_funds_to_linked_dda(account_id, idempotency_key=idempotency_key, funds=funds) - -Redeem funds to DDA - -Redeems funds to the linked DDA. - -### Example - - -```python -from fireblocks.models.funds import Funds -from fireblocks.models.redeem_funds_to_linked_dda_response import RedeemFundsToLinkedDDAResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - account_id = 'account_id_example' # str | The ID of the fiat account to use - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - funds = fireblocks.Funds() # Funds | (optional) - - try: - # Redeem funds to DDA - api_response = fireblocks.fiat_accounts.redeem_funds_to_linked_dda(account_id, idempotency_key=idempotency_key, funds=funds).result() - print("The response of FiatAccountsApi->redeem_funds_to_linked_dda:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling FiatAccountsApi->redeem_funds_to_linked_dda: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **account_id** | **str**| The ID of the fiat account to use | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **funds** | [**Funds**](Funds.md)| | [optional] - -### Return type - -[**RedeemFundsToLinkedDDAResponse**](RedeemFundsToLinkedDDAResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Transfer succeeded | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLkZpYXRBY2NvdW50c0FwaQoKQWxsIFVSSXMgYXJlIHJlbGF0aXZlIHRvICpodHRwczovL2FwaS5maXJlYmxvY2tzLmlvL3YxKgoKTWV0aG9kIHwgSFRUUCByZXF1ZXN0IHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tClsqKmRlcG9zaXRfZnVuZHNfZnJvbV9saW5rZWRfZGRhKipdKEZpYXRBY2NvdW50c0FwaS5tZCNkZXBvc2l0X2Z1bmRzX2Zyb21fbGlua2VkX2RkYSkgfCAqKlBPU1QqKiAvZmlhdF9hY2NvdW50cy97YWNjb3VudElkfS9kZXBvc2l0X2Zyb21fbGlua2VkX2RkYSB8IERlcG9zaXQgZnVuZHMgZnJvbSBEREEKWyoqZ2V0X2ZpYXRfYWNjb3VudCoqXShGaWF0QWNjb3VudHNBcGkubWQjZ2V0X2ZpYXRfYWNjb3VudCkgfCAqKkdFVCoqIC9maWF0X2FjY291bnRzL3thY2NvdW50SWR9IHwgRmluZCBhIHNwZWNpZmljIGZpYXQgYWNjb3VudApbKipnZXRfZmlhdF9hY2NvdW50cyoqXShGaWF0QWNjb3VudHNBcGkubWQjZ2V0X2ZpYXRfYWNjb3VudHMpIHwgKipHRVQqKiAvZmlhdF9hY2NvdW50cyB8IExpc3QgZmlhdCBhY2NvdW50cwpbKipyZWRlZW1fZnVuZHNfdG9fbGlua2VkX2RkYSoqXShGaWF0QWNjb3VudHNBcGkubWQjcmVkZWVtX2Z1bmRzX3RvX2xpbmtlZF9kZGEpIHwgKipQT1NUKiogL2ZpYXRfYWNjb3VudHMve2FjY291bnRJZH0vcmVkZWVtX3RvX2xpbmtlZF9kZGEgfCBSZWRlZW0gZnVuZHMgdG8gRERBCgoKIyAqKmRlcG9zaXRfZnVuZHNfZnJvbV9saW5rZWRfZGRhKioKPiBEZXBvc2l0RnVuZHNGcm9tTGlua2VkRERBUmVzcG9uc2UgZGVwb3NpdF9mdW5kc19mcm9tX2xpbmtlZF9kZGEoYWNjb3VudF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwgZnVuZHM9ZnVuZHMpCgpEZXBvc2l0IGZ1bmRzIGZyb20gRERBCgpEZXBvc2l0cyBmdW5kcyBmcm9tIHRoZSBsaW5rZWQgRERBLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZXBvc2l0X2Z1bmRzX2Zyb21fbGlua2VkX2RkYV9yZXNwb25zZSBpbXBvcnQgRGVwb3NpdEZ1bmRzRnJvbUxpbmtlZEREQVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZnVuZHMgaW1wb3J0IEZ1bmRzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGFjY291bnRfaWQgPSAnYWNjb3VudF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgZmlhdCBhY2NvdW50IHRvIHVzZQogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQogICAgZnVuZHMgPSBmaXJlYmxvY2tzLkZ1bmRzKCkgIyBGdW5kcyB8ICAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgRGVwb3NpdCBmdW5kcyBmcm9tIEREQQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuZmlhdF9hY2NvdW50cy5kZXBvc2l0X2Z1bmRzX2Zyb21fbGlua2VkX2RkYShhY2NvdW50X2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCBmdW5kcz1mdW5kcykucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEZpYXRBY2NvdW50c0FwaS0+ZGVwb3NpdF9mdW5kc19mcm9tX2xpbmtlZF9kZGE6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgRmlhdEFjY291bnRzQXBpLT5kZXBvc2l0X2Z1bmRzX2Zyb21fbGlua2VkX2RkYTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqYWNjb3VudF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSBmaWF0IGFjY291bnQgdG8gdXNlIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCiAqKmZ1bmRzKiogfCBbKipGdW5kcyoqXShGdW5kcy5tZCl8ICB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkRlcG9zaXRGdW5kc0Zyb21MaW5rZWREREFSZXNwb25zZSoqXShEZXBvc2l0RnVuZHNGcm9tTGlua2VkRERBUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDEqKiB8IFRyYW5zZmVyIHN1Y2NlZWRlZCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2ZpYXRfYWNjb3VudCoqCj4gRmlhdEFjY291bnQgZ2V0X2ZpYXRfYWNjb3VudChhY2NvdW50X2lkKQoKRmluZCBhIHNwZWNpZmljIGZpYXQgYWNjb3VudAoKUmV0dXJucyBhIGZpYXQgYWNjb3VudCBieSBJRC4KPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4uCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZpYXRfYWNjb3VudCBpbXBvcnQgRmlhdEFjY291bnQKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgYWNjb3VudF9pZCA9ICdhY2NvdW50X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBmaWF0IGFjY291bnQgdG8gcmV0dXJuCgogICAgdHJ5OgogICAgICAgICMgRmluZCBhIHNwZWNpZmljIGZpYXQgYWNjb3VudAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuZmlhdF9hY2NvdW50cy5nZXRfZmlhdF9hY2NvdW50KGFjY291bnRfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBGaWF0QWNjb3VudHNBcGktPmdldF9maWF0X2FjY291bnQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgRmlhdEFjY291bnRzQXBpLT5nZXRfZmlhdF9hY2NvdW50OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKiphY2NvdW50X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGZpYXQgYWNjb3VudCB0byByZXR1cm4gfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqRmlhdEFjY291bnQqKl0oRmlhdEFjY291bnQubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBIGZpYXQgYWNjb3VudCBvYmplY3QgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9maWF0X2FjY291bnRzKioKPiBMaXN0W0ZpYXRBY2NvdW50XSBnZXRfZmlhdF9hY2NvdW50cygpCgpMaXN0IGZpYXQgYWNjb3VudHMKClJldHVybnMgYWxsIGZpYXQgYWNjb3VudHMuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5maWF0X2FjY291bnQgaW1wb3J0IEZpYXRBY2NvdW50CmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKCiAgICB0cnk6CiAgICAgICAgIyBMaXN0IGZpYXQgYWNjb3VudHMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmZpYXRfYWNjb3VudHMuZ2V0X2ZpYXRfYWNjb3VudHMoKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgRmlhdEFjY291bnRzQXBpLT5nZXRfZmlhdF9hY2NvdW50czpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBGaWF0QWNjb3VudHNBcGktPmdldF9maWF0X2FjY291bnRzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKVGhpcyBlbmRwb2ludCBkb2VzIG5vdCBuZWVkIGFueSBwYXJhbWV0ZXIuCgojIyMgUmV0dXJuIHR5cGUKClsqKkxpc3RbRmlhdEFjY291bnRdKipdKEZpYXRBY2NvdW50Lm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQSBmaWF0IGFjY291bnQgb2JqZWN0IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipyZWRlZW1fZnVuZHNfdG9fbGlua2VkX2RkYSoqCj4gUmVkZWVtRnVuZHNUb0xpbmtlZEREQVJlc3BvbnNlIHJlZGVlbV9mdW5kc190b19saW5rZWRfZGRhKGFjY291bnRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksIGZ1bmRzPWZ1bmRzKQoKUmVkZWVtIGZ1bmRzIHRvIEREQQoKUmVkZWVtcyBmdW5kcyB0byB0aGUgbGlua2VkIEREQS4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZnVuZHMgaW1wb3J0IEZ1bmRzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVkZWVtX2Z1bmRzX3RvX2xpbmtlZF9kZGFfcmVzcG9uc2UgaW1wb3J0IFJlZGVlbUZ1bmRzVG9MaW5rZWREREFSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBhY2NvdW50X2lkID0gJ2FjY291bnRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGZpYXQgYWNjb3VudCB0byB1c2UKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKICAgIGZ1bmRzID0gZmlyZWJsb2Nrcy5GdW5kcygpICMgRnVuZHMgfCAgKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIFJlZGVlbSBmdW5kcyB0byBEREEKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmZpYXRfYWNjb3VudHMucmVkZWVtX2Z1bmRzX3RvX2xpbmtlZF9kZGEoYWNjb3VudF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwgZnVuZHM9ZnVuZHMpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBGaWF0QWNjb3VudHNBcGktPnJlZGVlbV9mdW5kc190b19saW5rZWRfZGRhOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEZpYXRBY2NvdW50c0FwaS0+cmVkZWVtX2Z1bmRzX3RvX2xpbmtlZF9kZGE6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmFjY291bnRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgZmlhdCBhY2NvdW50IHRvIHVzZSB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAogKipmdW5kcyoqIHwgWyoqRnVuZHMqKl0oRnVuZHMubWQpfCAgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipSZWRlZW1GdW5kc1RvTGlua2VkRERBUmVzcG9uc2UqKl0oUmVkZWVtRnVuZHNUb0xpbmtlZEREQVJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBUcmFuc2ZlciBzdWNjZWVkZWQgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoK \ No newline at end of file diff --git a/docs/FiatAsset.md b/docs/FiatAsset.md index 37b7a81b..af4f5fff 100644 --- a/docs/FiatAsset.md +++ b/docs/FiatAsset.md @@ -1,30 +1 @@ -# FiatAsset - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | [optional] -**balance** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.fiat_asset import FiatAsset - -# TODO update the JSON string below -json = "{}" -# create an instance of FiatAsset from a JSON string -fiat_asset_instance = FiatAsset.from_json(json) -# print the JSON string representation of the object -print(FiatAsset.to_json()) - -# convert the object into a dict -fiat_asset_dict = fiat_asset_instance.to_dict() -# create an instance of FiatAsset from a dict -fiat_asset_from_dict = FiatAsset.from_dict(fiat_asset_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBGaWF0QXNzZXQKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmJhbGFuY2UqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmlhdF9hc3NldCBpbXBvcnQgRmlhdEFzc2V0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGaWF0QXNzZXQgZnJvbSBhIEpTT04gc3RyaW5nCmZpYXRfYXNzZXRfaW5zdGFuY2UgPSBGaWF0QXNzZXQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRmlhdEFzc2V0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmZpYXRfYXNzZXRfZGljdCA9IGZpYXRfYXNzZXRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEZpYXRBc3NldCBmcm9tIGEgZGljdApmaWF0X2Fzc2V0X2Zyb21fZGljdCA9IEZpYXRBc3NldC5mcm9tX2RpY3QoZmlhdF9hc3NldF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/FiatDestination.md b/docs/FiatDestination.md index adbd15da..83929e23 100644 --- a/docs/FiatDestination.md +++ b/docs/FiatDestination.md @@ -1,30 +1 @@ -# FiatDestination - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | -**address** | [**InternalTransferAddress**](InternalTransferAddress.md) | | - -## Example - -```python -from fireblocks.models.fiat_destination import FiatDestination - -# TODO update the JSON string below -json = "{}" -# create an instance of FiatDestination from a JSON string -fiat_destination_instance = FiatDestination.from_json(json) -# print the JSON string representation of the object -print(FiatDestination.to_json()) - -# convert the object into a dict -fiat_destination_dict = fiat_destination_instance.to_dict() -# create an instance of FiatDestination from a dict -fiat_destination_from_dict = FiatDestination.from_dict(fiat_destination_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBGaWF0RGVzdGluYXRpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgKipzdHIqKiB8ICB8IAoqKmFkZHJlc3MqKiB8IFsqKkludGVybmFsVHJhbnNmZXJBZGRyZXNzKipdKEludGVybmFsVHJhbnNmZXJBZGRyZXNzLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmlhdF9kZXN0aW5hdGlvbiBpbXBvcnQgRmlhdERlc3RpbmF0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGaWF0RGVzdGluYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCmZpYXRfZGVzdGluYXRpb25faW5zdGFuY2UgPSBGaWF0RGVzdGluYXRpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRmlhdERlc3RpbmF0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmZpYXRfZGVzdGluYXRpb25fZGljdCA9IGZpYXRfZGVzdGluYXRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEZpYXREZXN0aW5hdGlvbiBmcm9tIGEgZGljdApmaWF0X2Rlc3RpbmF0aW9uX2Zyb21fZGljdCA9IEZpYXREZXN0aW5hdGlvbi5mcm9tX2RpY3QoZmlhdF9kZXN0aW5hdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/FiatPaymentMetadata.md b/docs/FiatPaymentMetadata.md index 846637bb..d0163193 100644 --- a/docs/FiatPaymentMetadata.md +++ b/docs/FiatPaymentMetadata.md @@ -1,29 +1 @@ -# FiatPaymentMetadata - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**reference_id** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.fiat_payment_metadata import FiatPaymentMetadata - -# TODO update the JSON string below -json = "{}" -# create an instance of FiatPaymentMetadata from a JSON string -fiat_payment_metadata_instance = FiatPaymentMetadata.from_json(json) -# print the JSON string representation of the object -print(FiatPaymentMetadata.to_json()) - -# convert the object into a dict -fiat_payment_metadata_dict = fiat_payment_metadata_instance.to_dict() -# create an instance of FiatPaymentMetadata from a dict -fiat_payment_metadata_from_dict = FiatPaymentMetadata.from_dict(fiat_payment_metadata_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBGaWF0UGF5bWVudE1ldGFkYXRhCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnJlZmVyZW5jZV9pZCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5maWF0X3BheW1lbnRfbWV0YWRhdGEgaW1wb3J0IEZpYXRQYXltZW50TWV0YWRhdGEKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEZpYXRQYXltZW50TWV0YWRhdGEgZnJvbSBhIEpTT04gc3RyaW5nCmZpYXRfcGF5bWVudF9tZXRhZGF0YV9pbnN0YW5jZSA9IEZpYXRQYXltZW50TWV0YWRhdGEuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRmlhdFBheW1lbnRNZXRhZGF0YS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApmaWF0X3BheW1lbnRfbWV0YWRhdGFfZGljdCA9IGZpYXRfcGF5bWVudF9tZXRhZGF0YV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRmlhdFBheW1lbnRNZXRhZGF0YSBmcm9tIGEgZGljdApmaWF0X3BheW1lbnRfbWV0YWRhdGFfZnJvbV9kaWN0ID0gRmlhdFBheW1lbnRNZXRhZGF0YS5mcm9tX2RpY3QoZmlhdF9wYXltZW50X21ldGFkYXRhX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/FiatTransfer.md b/docs/FiatTransfer.md index ee14ab4c..c329b296 100644 --- a/docs/FiatTransfer.md +++ b/docs/FiatTransfer.md @@ -1,31 +1 @@ -# FiatTransfer - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | [optional] -**amount** | **str** | The amount of the fiat transfer. | -**reference_id** | **str** | The reference ID for the fiat transfer. | [optional] - -## Example - -```python -from fireblocks.models.fiat_transfer import FiatTransfer - -# TODO update the JSON string below -json = "{}" -# create an instance of FiatTransfer from a JSON string -fiat_transfer_instance = FiatTransfer.from_json(json) -# print the JSON string representation of the object -print(FiatTransfer.to_json()) - -# convert the object into a dict -fiat_transfer_dict = fiat_transfer_instance.to_dict() -# create an instance of FiatTransfer from a dict -fiat_transfer_from_dict = FiatTransfer.from_dict(fiat_transfer_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBGaWF0VHJhbnNmZXIKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqYW1vdW50KiogfCAqKnN0cioqIHwgVGhlIGFtb3VudCBvZiB0aGUgZmlhdCB0cmFuc2Zlci4gfCAKKipyZWZlcmVuY2VfaWQqKiB8ICoqc3RyKiogfCBUaGUgcmVmZXJlbmNlIElEIGZvciB0aGUgZmlhdCB0cmFuc2Zlci4gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmlhdF90cmFuc2ZlciBpbXBvcnQgRmlhdFRyYW5zZmVyCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGaWF0VHJhbnNmZXIgZnJvbSBhIEpTT04gc3RyaW5nCmZpYXRfdHJhbnNmZXJfaW5zdGFuY2UgPSBGaWF0VHJhbnNmZXIuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoRmlhdFRyYW5zZmVyLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmZpYXRfdHJhbnNmZXJfZGljdCA9IGZpYXRfdHJhbnNmZXJfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEZpYXRUcmFuc2ZlciBmcm9tIGEgZGljdApmaWF0X3RyYW5zZmVyX2Zyb21fZGljdCA9IEZpYXRUcmFuc2Zlci5mcm9tX2RpY3QoZmlhdF90cmFuc2Zlcl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/FixedAmountTypeEnum.md b/docs/FixedAmountTypeEnum.md index 63796536..7cc0303d 100644 --- a/docs/FixedAmountTypeEnum.md +++ b/docs/FixedAmountTypeEnum.md @@ -1,11 +1 @@ -# FixedAmountTypeEnum - -The type of amount for the fee, indicating a fixed amount. - -## Enum - -* `FIXED` (value: `'FIXED'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBGaXhlZEFtb3VudFR5cGVFbnVtCgpUaGUgdHlwZSBvZiBhbW91bnQgZm9yIHRoZSBmZWUsIGluZGljYXRpbmcgYSBmaXhlZCBhbW91bnQuCgojIyBFbnVtCgoqIGBGSVhFRGAgKHZhbHVlOiBgJ0ZJWEVEJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/FixedFee.md b/docs/FixedFee.md index fd0fac0a..a582fd53 100644 --- a/docs/FixedFee.md +++ b/docs/FixedFee.md @@ -1,30 +1 @@ -# FixedFee - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount_type** | [**FixedAmountTypeEnum**](FixedAmountTypeEnum.md) | | -**amount** | **str** | The fixed amount of the fee | - -## Example - -```python -from fireblocks.models.fixed_fee import FixedFee - -# TODO update the JSON string below -json = "{}" -# create an instance of FixedFee from a JSON string -fixed_fee_instance = FixedFee.from_json(json) -# print the JSON string representation of the object -print(FixedFee.to_json()) - -# convert the object into a dict -fixed_fee_dict = fixed_fee_instance.to_dict() -# create an instance of FixedFee from a dict -fixed_fee_from_dict = FixedFee.from_dict(fixed_fee_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBGaXhlZEZlZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphbW91bnRfdHlwZSoqIHwgWyoqRml4ZWRBbW91bnRUeXBlRW51bSoqXShGaXhlZEFtb3VudFR5cGVFbnVtLm1kKSB8ICB8IAoqKmFtb3VudCoqIHwgKipzdHIqKiB8IFRoZSBmaXhlZCBhbW91bnQgb2YgdGhlIGZlZSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZml4ZWRfZmVlIGltcG9ydCBGaXhlZEZlZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRml4ZWRGZWUgZnJvbSBhIEpTT04gc3RyaW5nCmZpeGVkX2ZlZV9pbnN0YW5jZSA9IEZpeGVkRmVlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEZpeGVkRmVlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmZpeGVkX2ZlZV9kaWN0ID0gZml4ZWRfZmVlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGaXhlZEZlZSBmcm9tIGEgZGljdApmaXhlZF9mZWVfZnJvbV9kaWN0ID0gRml4ZWRGZWUuZnJvbV9kaWN0KGZpeGVkX2ZlZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/FreezeTransactionResponse.md b/docs/FreezeTransactionResponse.md index 478ec4a0..7c9b72ed 100644 --- a/docs/FreezeTransactionResponse.md +++ b/docs/FreezeTransactionResponse.md @@ -1,29 +1 @@ -# FreezeTransactionResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**success** | **bool** | | [optional] - -## Example - -```python -from fireblocks.models.freeze_transaction_response import FreezeTransactionResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of FreezeTransactionResponse from a JSON string -freeze_transaction_response_instance = FreezeTransactionResponse.from_json(json) -# print the JSON string representation of the object -print(FreezeTransactionResponse.to_json()) - -# convert the object into a dict -freeze_transaction_response_dict = freeze_transaction_response_instance.to_dict() -# create an instance of FreezeTransactionResponse from a dict -freeze_transaction_response_from_dict = FreezeTransactionResponse.from_dict(freeze_transaction_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBGcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnN1Y2Nlc3MqKiB8ICoqYm9vbCoqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZyZWV6ZV90cmFuc2FjdGlvbl9yZXNwb25zZSBpbXBvcnQgRnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKZnJlZXplX3RyYW5zYWN0aW9uX3Jlc3BvbnNlX2luc3RhbmNlID0gRnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChGcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmZyZWV6ZV90cmFuc2FjdGlvbl9yZXNwb25zZV9kaWN0ID0gZnJlZXplX3RyYW5zYWN0aW9uX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlIGZyb20gYSBkaWN0CmZyZWV6ZV90cmFuc2FjdGlvbl9yZXNwb25zZV9mcm9tX2RpY3QgPSBGcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlLmZyb21fZGljdChmcmVlemVfdHJhbnNhY3Rpb25fcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/FunctionDoc.md b/docs/FunctionDoc.md index 0005820e..6ba03759 100644 --- a/docs/FunctionDoc.md +++ b/docs/FunctionDoc.md @@ -1,31 +1 @@ -# FunctionDoc - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**details** | **str** | A description of the function | [optional] -**params** | **Dict[str, str]** | A description of the function parameters | [optional] -**returns** | **Dict[str, str]** | A description of the function return values. only for read functions | [optional] - -## Example - -```python -from fireblocks.models.function_doc import FunctionDoc - -# TODO update the JSON string below -json = "{}" -# create an instance of FunctionDoc from a JSON string -function_doc_instance = FunctionDoc.from_json(json) -# print the JSON string representation of the object -print(FunctionDoc.to_json()) - -# convert the object into a dict -function_doc_dict = function_doc_instance.to_dict() -# create an instance of FunctionDoc from a dict -function_doc_from_dict = FunctionDoc.from_dict(function_doc_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBGdW5jdGlvbkRvYwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkZXRhaWxzKiogfCAqKnN0cioqIHwgQSBkZXNjcmlwdGlvbiBvZiB0aGUgZnVuY3Rpb24gfCBbb3B0aW9uYWxdIAoqKnBhcmFtcyoqIHwgKipEaWN0W3N0ciwgc3RyXSoqIHwgQSBkZXNjcmlwdGlvbiBvZiB0aGUgZnVuY3Rpb24gcGFyYW1ldGVycyB8IFtvcHRpb25hbF0gCioqcmV0dXJucyoqIHwgKipEaWN0W3N0ciwgc3RyXSoqIHwgQSBkZXNjcmlwdGlvbiBvZiB0aGUgZnVuY3Rpb24gcmV0dXJuIHZhbHVlcy4gb25seSBmb3IgcmVhZCBmdW5jdGlvbnMgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZnVuY3Rpb25fZG9jIGltcG9ydCBGdW5jdGlvbkRvYwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRnVuY3Rpb25Eb2MgZnJvbSBhIEpTT04gc3RyaW5nCmZ1bmN0aW9uX2RvY19pbnN0YW5jZSA9IEZ1bmN0aW9uRG9jLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEZ1bmN0aW9uRG9jLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmZ1bmN0aW9uX2RvY19kaWN0ID0gZnVuY3Rpb25fZG9jX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGdW5jdGlvbkRvYyBmcm9tIGEgZGljdApmdW5jdGlvbl9kb2NfZnJvbV9kaWN0ID0gRnVuY3Rpb25Eb2MuZnJvbV9kaWN0KGZ1bmN0aW9uX2RvY19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/Funds.md b/docs/Funds.md index 402b7b22..7dff4e55 100644 --- a/docs/Funds.md +++ b/docs/Funds.md @@ -1,29 +1 @@ -# Funds - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | **float** | | [optional] - -## Example - -```python -from fireblocks.models.funds import Funds - -# TODO update the JSON string below -json = "{}" -# create an instance of Funds from a JSON string -funds_instance = Funds.from_json(json) -# print the JSON string representation of the object -print(Funds.to_json()) - -# convert the object into a dict -funds_dict = funds_instance.to_dict() -# create an instance of Funds from a dict -funds_from_dict = Funds.from_dict(funds_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBGdW5kcwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphbW91bnQqKiB8ICoqZmxvYXQqKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5mdW5kcyBpbXBvcnQgRnVuZHMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEZ1bmRzIGZyb20gYSBKU09OIHN0cmluZwpmdW5kc19pbnN0YW5jZSA9IEZ1bmRzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEZ1bmRzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmZ1bmRzX2RpY3QgPSBmdW5kc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRnVuZHMgZnJvbSBhIGRpY3QKZnVuZHNfZnJvbV9kaWN0ID0gRnVuZHMuZnJvbV9kaWN0KGZ1bmRzX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/GasStationConfiguration.md b/docs/GasStationConfiguration.md index b09c40db..3173770a 100644 --- a/docs/GasStationConfiguration.md +++ b/docs/GasStationConfiguration.md @@ -1,31 +1 @@ -# GasStationConfiguration - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**gas_threshold** | **str** | | [optional] -**gas_cap** | **str** | | [optional] -**max_gas_price** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.gas_station_configuration import GasStationConfiguration - -# TODO update the JSON string below -json = "{}" -# create an instance of GasStationConfiguration from a JSON string -gas_station_configuration_instance = GasStationConfiguration.from_json(json) -# print the JSON string representation of the object -print(GasStationConfiguration.to_json()) - -# convert the object into a dict -gas_station_configuration_dict = gas_station_configuration_instance.to_dict() -# create an instance of GasStationConfiguration from a dict -gas_station_configuration_from_dict = GasStationConfiguration.from_dict(gas_station_configuration_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHYXNTdGF0aW9uQ29uZmlndXJhdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipnYXNfdGhyZXNob2xkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipnYXNfY2FwKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKiptYXhfZ2FzX3ByaWNlKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb24gaW1wb3J0IEdhc1N0YXRpb25Db25maWd1cmF0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHYXNTdGF0aW9uQ29uZmlndXJhdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmcKZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbl9pbnN0YW5jZSA9IEdhc1N0YXRpb25Db25maWd1cmF0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEdhc1N0YXRpb25Db25maWd1cmF0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cmdhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25fZGljdCA9IGdhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEdhc1N0YXRpb25Db25maWd1cmF0aW9uIGZyb20gYSBkaWN0Cmdhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25fZnJvbV9kaWN0ID0gR2FzU3RhdGlvbkNvbmZpZ3VyYXRpb24uZnJvbV9kaWN0KGdhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/GasStationConfigurationResponse.md b/docs/GasStationConfigurationResponse.md index 8ef8246b..496074d2 100644 --- a/docs/GasStationConfigurationResponse.md +++ b/docs/GasStationConfigurationResponse.md @@ -1,31 +1 @@ -# GasStationConfigurationResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**gas_threshold** | **str** | | [optional] -**gas_cap** | **str** | | [optional] -**max_gas_price** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.gas_station_configuration_response import GasStationConfigurationResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of GasStationConfigurationResponse from a JSON string -gas_station_configuration_response_instance = GasStationConfigurationResponse.from_json(json) -# print the JSON string representation of the object -print(GasStationConfigurationResponse.to_json()) - -# convert the object into a dict -gas_station_configuration_response_dict = gas_station_configuration_response_instance.to_dict() -# create an instance of GasStationConfigurationResponse from a dict -gas_station_configuration_response_from_dict = GasStationConfigurationResponse.from_dict(gas_station_configuration_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmdhc190aHJlc2hvbGQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmdhc19jYXAqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKm1heF9nYXNfcHJpY2UqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbl9yZXNwb25zZSBpbXBvcnQgR2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbl9yZXNwb25zZV9pbnN0YW5jZSA9IEdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoR2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApnYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uX3Jlc3BvbnNlX2RpY3QgPSBnYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlIGZyb20gYSBkaWN0Cmdhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25fcmVzcG9uc2VfZnJvbV9kaWN0ID0gR2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZS5mcm9tX2RpY3QoZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbl9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/GasStationPropertiesResponse.md b/docs/GasStationPropertiesResponse.md index 162951ae..92c95f04 100644 --- a/docs/GasStationPropertiesResponse.md +++ b/docs/GasStationPropertiesResponse.md @@ -1,30 +1 @@ -# GasStationPropertiesResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**balance** | **object** | | [optional] -**configuration** | [**GasStationConfigurationResponse**](GasStationConfigurationResponse.md) | | [optional] - -## Example - -```python -from fireblocks.models.gas_station_properties_response import GasStationPropertiesResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of GasStationPropertiesResponse from a JSON string -gas_station_properties_response_instance = GasStationPropertiesResponse.from_json(json) -# print the JSON string representation of the object -print(GasStationPropertiesResponse.to_json()) - -# convert the object into a dict -gas_station_properties_response_dict = gas_station_properties_response_instance.to_dict() -# create an instance of GasStationPropertiesResponse from a dict -gas_station_properties_response_from_dict = GasStationPropertiesResponse.from_dict(gas_station_properties_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHYXNTdGF0aW9uUHJvcGVydGllc1Jlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmJhbGFuY2UqKiB8ICoqb2JqZWN0KiogfCAgfCBbb3B0aW9uYWxdIAoqKmNvbmZpZ3VyYXRpb24qKiB8IFsqKkdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2UqKl0oR2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2FzX3N0YXRpb25fcHJvcGVydGllc19yZXNwb25zZSBpbXBvcnQgR2FzU3RhdGlvblByb3BlcnRpZXNSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2FzU3RhdGlvblByb3BlcnRpZXNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKZ2FzX3N0YXRpb25fcHJvcGVydGllc19yZXNwb25zZV9pbnN0YW5jZSA9IEdhc1N0YXRpb25Qcm9wZXJ0aWVzUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoR2FzU3RhdGlvblByb3BlcnRpZXNSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApnYXNfc3RhdGlvbl9wcm9wZXJ0aWVzX3Jlc3BvbnNlX2RpY3QgPSBnYXNfc3RhdGlvbl9wcm9wZXJ0aWVzX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHYXNTdGF0aW9uUHJvcGVydGllc1Jlc3BvbnNlIGZyb20gYSBkaWN0Cmdhc19zdGF0aW9uX3Byb3BlcnRpZXNfcmVzcG9uc2VfZnJvbV9kaWN0ID0gR2FzU3RhdGlvblByb3BlcnRpZXNSZXNwb25zZS5mcm9tX2RpY3QoZ2FzX3N0YXRpb25fcHJvcGVydGllc19yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/GasStationsApi.md b/docs/GasStationsApi.md index 3a7a1392..cd640ff4 100644 --- a/docs/GasStationsApi.md +++ b/docs/GasStationsApi.md @@ -1,318 +1 @@ -# fireblocks.GasStationsApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**get_gas_station_by_asset_id**](GasStationsApi.md#get_gas_station_by_asset_id) | **GET** /gas_station/{assetId} | Get gas station settings by asset -[**get_gas_station_info**](GasStationsApi.md#get_gas_station_info) | **GET** /gas_station | Get gas station settings -[**update_gas_station_configuration**](GasStationsApi.md#update_gas_station_configuration) | **PUT** /gas_station/configuration | Edit gas station settings -[**update_gas_station_configuration_by_asset_id**](GasStationsApi.md#update_gas_station_configuration_by_asset_id) | **PUT** /gas_station/configuration/{assetId} | Edit gas station settings for an asset - - -# **get_gas_station_by_asset_id** -> GasStationPropertiesResponse get_gas_station_by_asset_id(asset_id) - -Get gas station settings by asset - -Returns gas station settings and balances for a requested asset. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.gas_station_properties_response import GasStationPropertiesResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - asset_id = 'asset_id_example' # str | The ID of the asset - - try: - # Get gas station settings by asset - api_response = fireblocks.gas_stations.get_gas_station_by_asset_id(asset_id).result() - print("The response of GasStationsApi->get_gas_station_by_asset_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling GasStationsApi->get_gas_station_by_asset_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **asset_id** | **str**| The ID of the asset | - -### Return type - -[**GasStationPropertiesResponse**](GasStationPropertiesResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Gas Station properties | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_gas_station_info** -> GasStationPropertiesResponse get_gas_station_info() - -Get gas station settings - -Returns gas station settings and ETH balance. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.gas_station_properties_response import GasStationPropertiesResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Get gas station settings - api_response = fireblocks.gas_stations.get_gas_station_info().result() - print("The response of GasStationsApi->get_gas_station_info:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling GasStationsApi->get_gas_station_info: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**GasStationPropertiesResponse**](GasStationPropertiesResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Gas Station properties | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_gas_station_configuration** -> EditGasStationConfigurationResponse update_gas_station_configuration(gas_station_configuration, idempotency_key=idempotency_key) - -Edit gas station settings - -Configures gas station settings for ETH. -Learn more about the Fireblocks Gas Station in the following [guide](https://developers.fireblocks.com/docs/work-with-gas-station). -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.edit_gas_station_configuration_response import EditGasStationConfigurationResponse -from fireblocks.models.gas_station_configuration import GasStationConfiguration -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - gas_station_configuration = fireblocks.GasStationConfiguration() # GasStationConfiguration | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Edit gas station settings - api_response = fireblocks.gas_stations.update_gas_station_configuration(gas_station_configuration, idempotency_key=idempotency_key).result() - print("The response of GasStationsApi->update_gas_station_configuration:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling GasStationsApi->update_gas_station_configuration: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **gas_station_configuration** | [**GasStationConfiguration**](GasStationConfiguration.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**EditGasStationConfigurationResponse**](EditGasStationConfigurationResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_gas_station_configuration_by_asset_id** -> EditGasStationConfigurationResponse update_gas_station_configuration_by_asset_id(asset_id, gas_station_configuration, idempotency_key=idempotency_key) - -Edit gas station settings for an asset - -Configures gas station settings for a requested asset. -Learn more about the Fireblocks Gas Station in the following [guide](https://developers.fireblocks.com/docs/work-with-gas-station). -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.edit_gas_station_configuration_response import EditGasStationConfigurationResponse -from fireblocks.models.gas_station_configuration import GasStationConfiguration -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - asset_id = 'asset_id_example' # str | The ID of the asset - gas_station_configuration = fireblocks.GasStationConfiguration() # GasStationConfiguration | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Edit gas station settings for an asset - api_response = fireblocks.gas_stations.update_gas_station_configuration_by_asset_id(asset_id, gas_station_configuration, idempotency_key=idempotency_key).result() - print("The response of GasStationsApi->update_gas_station_configuration_by_asset_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling GasStationsApi->update_gas_station_configuration_by_asset_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **asset_id** | **str**| The ID of the asset | - **gas_station_configuration** | [**GasStationConfiguration**](GasStationConfiguration.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**EditGasStationConfigurationResponse**](EditGasStationConfigurationResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLkdhc1N0YXRpb25zQXBpCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gKmh0dHBzOi8vYXBpLmZpcmVibG9ja3MuaW8vdjEqCgpNZXRob2QgfCBIVFRQIHJlcXVlc3QgfCBEZXNjcmlwdGlvbgotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KWyoqZ2V0X2dhc19zdGF0aW9uX2J5X2Fzc2V0X2lkKipdKEdhc1N0YXRpb25zQXBpLm1kI2dldF9nYXNfc3RhdGlvbl9ieV9hc3NldF9pZCkgfCAqKkdFVCoqIC9nYXNfc3RhdGlvbi97YXNzZXRJZH0gfCBHZXQgZ2FzIHN0YXRpb24gc2V0dGluZ3MgYnkgYXNzZXQKWyoqZ2V0X2dhc19zdGF0aW9uX2luZm8qKl0oR2FzU3RhdGlvbnNBcGkubWQjZ2V0X2dhc19zdGF0aW9uX2luZm8pIHwgKipHRVQqKiAvZ2FzX3N0YXRpb24gfCBHZXQgZ2FzIHN0YXRpb24gc2V0dGluZ3MKWyoqdXBkYXRlX2dhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb24qKl0oR2FzU3RhdGlvbnNBcGkubWQjdXBkYXRlX2dhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb24pIHwgKipQVVQqKiAvZ2FzX3N0YXRpb24vY29uZmlndXJhdGlvbiB8IEVkaXQgZ2FzIHN0YXRpb24gc2V0dGluZ3MKWyoqdXBkYXRlX2dhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25fYnlfYXNzZXRfaWQqKl0oR2FzU3RhdGlvbnNBcGkubWQjdXBkYXRlX2dhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25fYnlfYXNzZXRfaWQpIHwgKipQVVQqKiAvZ2FzX3N0YXRpb24vY29uZmlndXJhdGlvbi97YXNzZXRJZH0gfCBFZGl0IGdhcyBzdGF0aW9uIHNldHRpbmdzIGZvciBhbiBhc3NldAoKCiMgKipnZXRfZ2FzX3N0YXRpb25fYnlfYXNzZXRfaWQqKgo+IEdhc1N0YXRpb25Qcm9wZXJ0aWVzUmVzcG9uc2UgZ2V0X2dhc19zdGF0aW9uX2J5X2Fzc2V0X2lkKGFzc2V0X2lkKQoKR2V0IGdhcyBzdGF0aW9uIHNldHRpbmdzIGJ5IGFzc2V0CgpSZXR1cm5zIGdhcyBzdGF0aW9uIHNldHRpbmdzIGFuZCBiYWxhbmNlcyBmb3IgYSByZXF1ZXN0ZWQgYXNzZXQuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdhc19zdGF0aW9uX3Byb3BlcnRpZXNfcmVzcG9uc2UgaW1wb3J0IEdhc1N0YXRpb25Qcm9wZXJ0aWVzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgYXNzZXRfaWQgPSAnYXNzZXRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGFzc2V0CgogICAgdHJ5OgogICAgICAgICMgR2V0IGdhcyBzdGF0aW9uIHNldHRpbmdzIGJ5IGFzc2V0CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5nYXNfc3RhdGlvbnMuZ2V0X2dhc19zdGF0aW9uX2J5X2Fzc2V0X2lkKGFzc2V0X2lkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgR2FzU3RhdGlvbnNBcGktPmdldF9nYXNfc3RhdGlvbl9ieV9hc3NldF9pZDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBHYXNTdGF0aW9uc0FwaS0+Z2V0X2dhc19zdGF0aW9uX2J5X2Fzc2V0X2lkOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKiphc3NldF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSBhc3NldCB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipHYXNTdGF0aW9uUHJvcGVydGllc1Jlc3BvbnNlKipdKEdhc1N0YXRpb25Qcm9wZXJ0aWVzUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBHYXMgU3RhdGlvbiBwcm9wZXJ0aWVzIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfZ2FzX3N0YXRpb25faW5mbyoqCj4gR2FzU3RhdGlvblByb3BlcnRpZXNSZXNwb25zZSBnZXRfZ2FzX3N0YXRpb25faW5mbygpCgpHZXQgZ2FzIHN0YXRpb24gc2V0dGluZ3MKClJldHVybnMgZ2FzIHN0YXRpb24gc2V0dGluZ3MgYW5kIEVUSCBiYWxhbmNlLgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nYXNfc3RhdGlvbl9wcm9wZXJ0aWVzX3Jlc3BvbnNlIGltcG9ydCBHYXNTdGF0aW9uUHJvcGVydGllc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgZ2FzIHN0YXRpb24gc2V0dGluZ3MKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmdhc19zdGF0aW9ucy5nZXRfZ2FzX3N0YXRpb25faW5mbygpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBHYXNTdGF0aW9uc0FwaS0+Z2V0X2dhc19zdGF0aW9uX2luZm86XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgR2FzU3RhdGlvbnNBcGktPmdldF9nYXNfc3RhdGlvbl9pbmZvOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKVGhpcyBlbmRwb2ludCBkb2VzIG5vdCBuZWVkIGFueSBwYXJhbWV0ZXIuCgojIyMgUmV0dXJuIHR5cGUKClsqKkdhc1N0YXRpb25Qcm9wZXJ0aWVzUmVzcG9uc2UqKl0oR2FzU3RhdGlvblByb3BlcnRpZXNSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEdhcyBTdGF0aW9uIHByb3BlcnRpZXMgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnVwZGF0ZV9nYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uKioKPiBFZGl0R2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZSB1cGRhdGVfZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbihnYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKRWRpdCBnYXMgc3RhdGlvbiBzZXR0aW5ncwoKQ29uZmlndXJlcyBnYXMgc3RhdGlvbiBzZXR0aW5ncyBmb3IgRVRILgpMZWFybiBtb3JlIGFib3V0IHRoZSBGaXJlYmxvY2tzIEdhcyBTdGF0aW9uIGluIHRoZSBmb2xsb3dpbmcgW2d1aWRlXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vZG9jcy93b3JrLXdpdGgtZ2FzLXN0YXRpb24pLgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lZGl0X2dhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25fcmVzcG9uc2UgaW1wb3J0IEVkaXRHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbiBpbXBvcnQgR2FzU3RhdGlvbkNvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbiA9IGZpcmVibG9ja3MuR2FzU3RhdGlvbkNvbmZpZ3VyYXRpb24oKSAjIEdhc1N0YXRpb25Db25maWd1cmF0aW9uIHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgRWRpdCBnYXMgc3RhdGlvbiBzZXR0aW5ncwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuZ2FzX3N0YXRpb25zLnVwZGF0ZV9nYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uKGdhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb24sIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBHYXNTdGF0aW9uc0FwaS0+dXBkYXRlX2dhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb246XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgR2FzU3RhdGlvbnNBcGktPnVwZGF0ZV9nYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipnYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uKiogfCBbKipHYXNTdGF0aW9uQ29uZmlndXJhdGlvbioqXShHYXNTdGF0aW9uQ29uZmlndXJhdGlvbi5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipFZGl0R2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZSoqXShFZGl0R2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgT0sgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnVwZGF0ZV9nYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uX2J5X2Fzc2V0X2lkKioKPiBFZGl0R2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZSB1cGRhdGVfZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbl9ieV9hc3NldF9pZChhc3NldF9pZCwgZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbiwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCkVkaXQgZ2FzIHN0YXRpb24gc2V0dGluZ3MgZm9yIGFuIGFzc2V0CgpDb25maWd1cmVzIGdhcyBzdGF0aW9uIHNldHRpbmdzIGZvciBhIHJlcXVlc3RlZCBhc3NldC4KTGVhcm4gbW9yZSBhYm91dCB0aGUgRmlyZWJsb2NrcyBHYXMgU3RhdGlvbiBpbiB0aGUgZm9sbG93aW5nIFtndWlkZV0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL2RvY3Mvd29yay13aXRoLWdhcy1zdGF0aW9uKS4KPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZWRpdF9nYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uX3Jlc3BvbnNlIGltcG9ydCBFZGl0R2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb24gaW1wb3J0IEdhc1N0YXRpb25Db25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGFzc2V0X2lkID0gJ2Fzc2V0X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBhc3NldAogICAgZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbiA9IGZpcmVibG9ja3MuR2FzU3RhdGlvbkNvbmZpZ3VyYXRpb24oKSAjIEdhc1N0YXRpb25Db25maWd1cmF0aW9uIHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgRWRpdCBnYXMgc3RhdGlvbiBzZXR0aW5ncyBmb3IgYW4gYXNzZXQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmdhc19zdGF0aW9ucy51cGRhdGVfZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbl9ieV9hc3NldF9pZChhc3NldF9pZCwgZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbiwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEdhc1N0YXRpb25zQXBpLT51cGRhdGVfZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbl9ieV9hc3NldF9pZDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBHYXNTdGF0aW9uc0FwaS0+dXBkYXRlX2dhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25fYnlfYXNzZXRfaWQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmFzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHwgCiAqKmdhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb24qKiB8IFsqKkdhc1N0YXRpb25Db25maWd1cmF0aW9uKipdKEdhc1N0YXRpb25Db25maWd1cmF0aW9uLm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkVkaXRHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlKipdKEVkaXRHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBPSyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgo= \ No newline at end of file diff --git a/docs/GasslessStandardConfigurations.md b/docs/GasslessStandardConfigurations.md index a8852af9..00f01207 100644 --- a/docs/GasslessStandardConfigurations.md +++ b/docs/GasslessStandardConfigurations.md @@ -1,30 +1 @@ -# GasslessStandardConfigurations - -The gasless configuration of the contract - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**gasless_standard_configurations** | [**Dict[str, GasslessStandardConfigurationsGaslessStandardConfigurationsValue]**](GasslessStandardConfigurationsGaslessStandardConfigurationsValue.md) | | [optional] - -## Example - -```python -from fireblocks.models.gassless_standard_configurations import GasslessStandardConfigurations - -# TODO update the JSON string below -json = "{}" -# create an instance of GasslessStandardConfigurations from a JSON string -gassless_standard_configurations_instance = GasslessStandardConfigurations.from_json(json) -# print the JSON string representation of the object -print(GasslessStandardConfigurations.to_json()) - -# convert the object into a dict -gassless_standard_configurations_dict = gassless_standard_configurations_instance.to_dict() -# create an instance of GasslessStandardConfigurations from a dict -gassless_standard_configurations_from_dict = GasslessStandardConfigurations.from_dict(gassless_standard_configurations_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnMKClRoZSBnYXNsZXNzIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGNvbnRyYWN0CgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZ2FzbGVzc19zdGFuZGFyZF9jb25maWd1cmF0aW9ucyoqIHwgWyoqRGljdFtzdHIsIEdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc0dhc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zVmFsdWVdKipdKEdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc0dhc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zVmFsdWUubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdhc3NsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zIGltcG9ydCBHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9ucyBmcm9tIGEgSlNPTiBzdHJpbmcKZ2Fzc2xlc3Nfc3RhbmRhcmRfY29uZmlndXJhdGlvbnNfaW5zdGFuY2UgPSBHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoR2Fzc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cmdhc3NsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zX2RpY3QgPSBnYXNzbGVzc19zdGFuZGFyZF9jb25maWd1cmF0aW9uc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2Fzc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zIGZyb20gYSBkaWN0Cmdhc3NsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zX2Zyb21fZGljdCA9IEdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9ucy5mcm9tX2RpY3QoZ2Fzc2xlc3Nfc3RhbmRhcmRfY29uZmlndXJhdGlvbnNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/GasslessStandardConfigurationsGaslessStandardConfigurationsValue.md b/docs/GasslessStandardConfigurationsGaslessStandardConfigurationsValue.md index bc1586e0..f081ff20 100644 --- a/docs/GasslessStandardConfigurationsGaslessStandardConfigurationsValue.md +++ b/docs/GasslessStandardConfigurationsGaslessStandardConfigurationsValue.md @@ -1,30 +1 @@ -# GasslessStandardConfigurationsGaslessStandardConfigurationsValue - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**last_on_chain_check** | **datetime** | | [optional] -**forwarder_addresses** | **List[str]** | | [optional] - -## Example - -```python -from fireblocks.models.gassless_standard_configurations_gasless_standard_configurations_value import GasslessStandardConfigurationsGaslessStandardConfigurationsValue - -# TODO update the JSON string below -json = "{}" -# create an instance of GasslessStandardConfigurationsGaslessStandardConfigurationsValue from a JSON string -gassless_standard_configurations_gasless_standard_configurations_value_instance = GasslessStandardConfigurationsGaslessStandardConfigurationsValue.from_json(json) -# print the JSON string representation of the object -print(GasslessStandardConfigurationsGaslessStandardConfigurationsValue.to_json()) - -# convert the object into a dict -gassless_standard_configurations_gasless_standard_configurations_value_dict = gassless_standard_configurations_gasless_standard_configurations_value_instance.to_dict() -# create an instance of GasslessStandardConfigurationsGaslessStandardConfigurationsValue from a dict -gassless_standard_configurations_gasless_standard_configurations_value_from_dict = GasslessStandardConfigurationsGaslessStandardConfigurationsValue.from_dict(gassless_standard_configurations_gasless_standard_configurations_value_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnNHYXNsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc1ZhbHVlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmxhc3Rfb25fY2hhaW5fY2hlY2sqKiB8ICoqZGF0ZXRpbWUqKiB8ICB8IFtvcHRpb25hbF0gCioqZm9yd2FyZGVyX2FkZHJlc3NlcyoqIHwgKipMaXN0W3N0cl0qKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nYXNzbGVzc19zdGFuZGFyZF9jb25maWd1cmF0aW9uc19nYXNsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zX3ZhbHVlIGltcG9ydCBHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnNHYXNsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc1ZhbHVlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnNHYXNsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc1ZhbHVlIGZyb20gYSBKU09OIHN0cmluZwpnYXNzbGVzc19zdGFuZGFyZF9jb25maWd1cmF0aW9uc19nYXNsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zX3ZhbHVlX2luc3RhbmNlID0gR2Fzc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zR2FzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnNWYWx1ZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnNHYXNsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc1ZhbHVlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cmdhc3NsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zX2dhc2xlc3Nfc3RhbmRhcmRfY29uZmlndXJhdGlvbnNfdmFsdWVfZGljdCA9IGdhc3NsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zX2dhc2xlc3Nfc3RhbmRhcmRfY29uZmlndXJhdGlvbnNfdmFsdWVfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc0dhc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zVmFsdWUgZnJvbSBhIGRpY3QKZ2Fzc2xlc3Nfc3RhbmRhcmRfY29uZmlndXJhdGlvbnNfZ2FzbGVzc19zdGFuZGFyZF9jb25maWd1cmF0aW9uc192YWx1ZV9mcm9tX2RpY3QgPSBHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnNHYXNsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc1ZhbHVlLmZyb21fZGljdChnYXNzbGVzc19zdGFuZGFyZF9jb25maWd1cmF0aW9uc19nYXNsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zX3ZhbHVlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/GetAPIUsersResponse.md b/docs/GetAPIUsersResponse.md index d30b9777..99aed594 100644 --- a/docs/GetAPIUsersResponse.md +++ b/docs/GetAPIUsersResponse.md @@ -1,29 +1 @@ -# GetAPIUsersResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**users** | [**List[APIUser]**](APIUser.md) | | - -## Example - -```python -from fireblocks.models.get_api_users_response import GetAPIUsersResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of GetAPIUsersResponse from a JSON string -get_api_users_response_instance = GetAPIUsersResponse.from_json(json) -# print the JSON string representation of the object -print(GetAPIUsersResponse.to_json()) - -# convert the object into a dict -get_api_users_response_dict = get_api_users_response_instance.to_dict() -# create an instance of GetAPIUsersResponse from a dict -get_api_users_response_from_dict = GetAPIUsersResponse.from_dict(get_api_users_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRBUElVc2Vyc1Jlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnVzZXJzKiogfCBbKipMaXN0W0FQSVVzZXJdKipdKEFQSVVzZXIubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfYXBpX3VzZXJzX3Jlc3BvbnNlIGltcG9ydCBHZXRBUElVc2Vyc1Jlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRBUElVc2Vyc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpnZXRfYXBpX3VzZXJzX3Jlc3BvbnNlX2luc3RhbmNlID0gR2V0QVBJVXNlcnNSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChHZXRBUElVc2Vyc1Jlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmdldF9hcGlfdXNlcnNfcmVzcG9uc2VfZGljdCA9IGdldF9hcGlfdXNlcnNfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldEFQSVVzZXJzUmVzcG9uc2UgZnJvbSBhIGRpY3QKZ2V0X2FwaV91c2Vyc19yZXNwb25zZV9mcm9tX2RpY3QgPSBHZXRBUElVc2Vyc1Jlc3BvbnNlLmZyb21fZGljdChnZXRfYXBpX3VzZXJzX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/GetAuditLogsResponse.md b/docs/GetAuditLogsResponse.md index 49466ea8..ab29a937 100644 --- a/docs/GetAuditLogsResponse.md +++ b/docs/GetAuditLogsResponse.md @@ -1,31 +1 @@ -# GetAuditLogsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[AuditLogData]**](AuditLogData.md) | | [optional] -**cursor** | **str** | The next id to start fetch audit logs from | [optional] -**total** | **float** | The total number of audit logs | [optional] - -## Example - -```python -from fireblocks.models.get_audit_logs_response import GetAuditLogsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of GetAuditLogsResponse from a JSON string -get_audit_logs_response_instance = GetAuditLogsResponse.from_json(json) -# print the JSON string representation of the object -print(GetAuditLogsResponse.to_json()) - -# convert the object into a dict -get_audit_logs_response_dict = get_audit_logs_response_instance.to_dict() -# create an instance of GetAuditLogsResponse from a dict -get_audit_logs_response_from_dict = GetAuditLogsResponse.from_dict(get_audit_logs_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRBdWRpdExvZ3NSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkYXRhKiogfCBbKipMaXN0W0F1ZGl0TG9nRGF0YV0qKl0oQXVkaXRMb2dEYXRhLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqY3Vyc29yKiogfCAqKnN0cioqIHwgVGhlIG5leHQgaWQgdG8gc3RhcnQgZmV0Y2ggYXVkaXQgbG9ncyBmcm9tIHwgW29wdGlvbmFsXSAKKip0b3RhbCoqIHwgKipmbG9hdCoqIHwgVGhlIHRvdGFsIG51bWJlciBvZiBhdWRpdCBsb2dzIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9hdWRpdF9sb2dzX3Jlc3BvbnNlIGltcG9ydCBHZXRBdWRpdExvZ3NSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0QXVkaXRMb2dzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmdldF9hdWRpdF9sb2dzX3Jlc3BvbnNlX2luc3RhbmNlID0gR2V0QXVkaXRMb2dzUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoR2V0QXVkaXRMb2dzUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZ2V0X2F1ZGl0X2xvZ3NfcmVzcG9uc2VfZGljdCA9IGdldF9hdWRpdF9sb2dzX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRBdWRpdExvZ3NSZXNwb25zZSBmcm9tIGEgZGljdApnZXRfYXVkaXRfbG9nc19yZXNwb25zZV9mcm9tX2RpY3QgPSBHZXRBdWRpdExvZ3NSZXNwb25zZS5mcm9tX2RpY3QoZ2V0X2F1ZGl0X2xvZ3NfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/GetConnectionsResponse.md b/docs/GetConnectionsResponse.md index 5d8fcf73..2fef443f 100644 --- a/docs/GetConnectionsResponse.md +++ b/docs/GetConnectionsResponse.md @@ -1,30 +1 @@ -# GetConnectionsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[SessionDTO]**](SessionDTO.md) | Array with the requested Web3 connection's data | -**paging** | [**Paging**](Paging.md) | | [optional] - -## Example - -```python -from fireblocks.models.get_connections_response import GetConnectionsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of GetConnectionsResponse from a JSON string -get_connections_response_instance = GetConnectionsResponse.from_json(json) -# print the JSON string representation of the object -print(GetConnectionsResponse.to_json()) - -# convert the object into a dict -get_connections_response_dict = get_connections_response_instance.to_dict() -# create an instance of GetConnectionsResponse from a dict -get_connections_response_from_dict = GetConnectionsResponse.from_dict(get_connections_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRDb25uZWN0aW9uc1Jlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmRhdGEqKiB8IFsqKkxpc3RbU2Vzc2lvbkRUT10qKl0oU2Vzc2lvbkRUTy5tZCkgfCBBcnJheSB3aXRoIHRoZSByZXF1ZXN0ZWQgV2ViMyBjb25uZWN0aW9uJiMzOTtzIGRhdGEgfCAKKipwYWdpbmcqKiB8IFsqKlBhZ2luZyoqXShQYWdpbmcubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9jb25uZWN0aW9uc19yZXNwb25zZSBpbXBvcnQgR2V0Q29ubmVjdGlvbnNSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0Q29ubmVjdGlvbnNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKZ2V0X2Nvbm5lY3Rpb25zX3Jlc3BvbnNlX2luc3RhbmNlID0gR2V0Q29ubmVjdGlvbnNSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChHZXRDb25uZWN0aW9uc1Jlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmdldF9jb25uZWN0aW9uc19yZXNwb25zZV9kaWN0ID0gZ2V0X2Nvbm5lY3Rpb25zX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRDb25uZWN0aW9uc1Jlc3BvbnNlIGZyb20gYSBkaWN0CmdldF9jb25uZWN0aW9uc19yZXNwb25zZV9mcm9tX2RpY3QgPSBHZXRDb25uZWN0aW9uc1Jlc3BvbnNlLmZyb21fZGljdChnZXRfY29ubmVjdGlvbnNfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/GetConsoleUsersResponse.md b/docs/GetConsoleUsersResponse.md index 483fba94..42177cd5 100644 --- a/docs/GetConsoleUsersResponse.md +++ b/docs/GetConsoleUsersResponse.md @@ -1,29 +1 @@ -# GetConsoleUsersResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**users** | [**List[ConsoleUser]**](ConsoleUser.md) | | - -## Example - -```python -from fireblocks.models.get_console_users_response import GetConsoleUsersResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of GetConsoleUsersResponse from a JSON string -get_console_users_response_instance = GetConsoleUsersResponse.from_json(json) -# print the JSON string representation of the object -print(GetConsoleUsersResponse.to_json()) - -# convert the object into a dict -get_console_users_response_dict = get_console_users_response_instance.to_dict() -# create an instance of GetConsoleUsersResponse from a dict -get_console_users_response_from_dict = GetConsoleUsersResponse.from_dict(get_console_users_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRDb25zb2xlVXNlcnNSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip1c2VycyoqIHwgWyoqTGlzdFtDb25zb2xlVXNlcl0qKl0oQ29uc29sZVVzZXIubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfY29uc29sZV91c2Vyc19yZXNwb25zZSBpbXBvcnQgR2V0Q29uc29sZVVzZXJzUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldENvbnNvbGVVc2Vyc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpnZXRfY29uc29sZV91c2Vyc19yZXNwb25zZV9pbnN0YW5jZSA9IEdldENvbnNvbGVVc2Vyc1Jlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEdldENvbnNvbGVVc2Vyc1Jlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmdldF9jb25zb2xlX3VzZXJzX3Jlc3BvbnNlX2RpY3QgPSBnZXRfY29uc29sZV91c2Vyc19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0Q29uc29sZVVzZXJzUmVzcG9uc2UgZnJvbSBhIGRpY3QKZ2V0X2NvbnNvbGVfdXNlcnNfcmVzcG9uc2VfZnJvbV9kaWN0ID0gR2V0Q29uc29sZVVzZXJzUmVzcG9uc2UuZnJvbV9kaWN0KGdldF9jb25zb2xlX3VzZXJzX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/GetDeployableAddressRequest.md b/docs/GetDeployableAddressRequest.md index f5282d5b..941cb60d 100644 --- a/docs/GetDeployableAddressRequest.md +++ b/docs/GetDeployableAddressRequest.md @@ -1,33 +1 @@ -# GetDeployableAddressRequest - -Request body for calculating deterministic address - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**chain_descriptor** | **str** | The base asset identifier of the blockchain (legacyId) to calculate deterministic address | -**template_id** | **str** | The template identifier | -**init_params** | [**List[ParameterWithValue]**](ParameterWithValue.md) | The deploy function parameters and values of the contract template | -**salt** | **str** | The salt to calculate the deterministic address. Must be a number between 0 and 2^256 -1, for it to fit in the bytes32 parameter | - -## Example - -```python -from fireblocks.models.get_deployable_address_request import GetDeployableAddressRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of GetDeployableAddressRequest from a JSON string -get_deployable_address_request_instance = GetDeployableAddressRequest.from_json(json) -# print the JSON string representation of the object -print(GetDeployableAddressRequest.to_json()) - -# convert the object into a dict -get_deployable_address_request_dict = get_deployable_address_request_instance.to_dict() -# create an instance of GetDeployableAddressRequest from a dict -get_deployable_address_request_from_dict = GetDeployableAddressRequest.from_dict(get_deployable_address_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXREZXBsb3lhYmxlQWRkcmVzc1JlcXVlc3QKClJlcXVlc3QgYm9keSBmb3IgY2FsY3VsYXRpbmcgZGV0ZXJtaW5pc3RpYyBhZGRyZXNzCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqY2hhaW5fZGVzY3JpcHRvcioqIHwgKipzdHIqKiB8IFRoZSBiYXNlIGFzc2V0IGlkZW50aWZpZXIgb2YgdGhlIGJsb2NrY2hhaW4gKGxlZ2FjeUlkKSB0byBjYWxjdWxhdGUgZGV0ZXJtaW5pc3RpYyBhZGRyZXNzIHwgCioqdGVtcGxhdGVfaWQqKiB8ICoqc3RyKiogfCBUaGUgdGVtcGxhdGUgaWRlbnRpZmllciB8IAoqKmluaXRfcGFyYW1zKiogfCBbKipMaXN0W1BhcmFtZXRlcldpdGhWYWx1ZV0qKl0oUGFyYW1ldGVyV2l0aFZhbHVlLm1kKSB8IFRoZSBkZXBsb3kgZnVuY3Rpb24gcGFyYW1ldGVycyBhbmQgdmFsdWVzIG9mIHRoZSBjb250cmFjdCB0ZW1wbGF0ZSB8IAoqKnNhbHQqKiB8ICoqc3RyKiogfCBUaGUgc2FsdCB0byBjYWxjdWxhdGUgdGhlIGRldGVybWluaXN0aWMgYWRkcmVzcy4gTXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDJeMjU2IC0xLCBmb3IgaXQgdG8gZml0IGluIHRoZSBieXRlczMyIHBhcmFtZXRlciB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X2RlcGxveWFibGVfYWRkcmVzc19yZXF1ZXN0IGltcG9ydCBHZXREZXBsb3lhYmxlQWRkcmVzc1JlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldERlcGxveWFibGVBZGRyZXNzUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKZ2V0X2RlcGxveWFibGVfYWRkcmVzc19yZXF1ZXN0X2luc3RhbmNlID0gR2V0RGVwbG95YWJsZUFkZHJlc3NSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEdldERlcGxveWFibGVBZGRyZXNzUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApnZXRfZGVwbG95YWJsZV9hZGRyZXNzX3JlcXVlc3RfZGljdCA9IGdldF9kZXBsb3lhYmxlX2FkZHJlc3NfcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0RGVwbG95YWJsZUFkZHJlc3NSZXF1ZXN0IGZyb20gYSBkaWN0CmdldF9kZXBsb3lhYmxlX2FkZHJlc3NfcmVxdWVzdF9mcm9tX2RpY3QgPSBHZXREZXBsb3lhYmxlQWRkcmVzc1JlcXVlc3QuZnJvbV9kaWN0KGdldF9kZXBsb3lhYmxlX2FkZHJlc3NfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/GetExchangeAccountsCredentialsPublicKeyResponse.md b/docs/GetExchangeAccountsCredentialsPublicKeyResponse.md index a3d2d949..8de3854b 100644 --- a/docs/GetExchangeAccountsCredentialsPublicKeyResponse.md +++ b/docs/GetExchangeAccountsCredentialsPublicKeyResponse.md @@ -1,30 +1 @@ -# GetExchangeAccountsCredentialsPublicKeyResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**public_key** | **str** | Public key string | -**tenant_id** | **str** | Tenant identifier | - -## Example - -```python -from fireblocks.models.get_exchange_accounts_credentials_public_key_response import GetExchangeAccountsCredentialsPublicKeyResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of GetExchangeAccountsCredentialsPublicKeyResponse from a JSON string -get_exchange_accounts_credentials_public_key_response_instance = GetExchangeAccountsCredentialsPublicKeyResponse.from_json(json) -# print the JSON string representation of the object -print(GetExchangeAccountsCredentialsPublicKeyResponse.to_json()) - -# convert the object into a dict -get_exchange_accounts_credentials_public_key_response_dict = get_exchange_accounts_credentials_public_key_response_instance.to_dict() -# create an instance of GetExchangeAccountsCredentialsPublicKeyResponse from a dict -get_exchange_accounts_credentials_public_key_response_from_dict = GetExchangeAccountsCredentialsPublicKeyResponse.from_dict(get_exchange_accounts_credentials_public_key_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRFeGNoYW5nZUFjY291bnRzQ3JlZGVudGlhbHNQdWJsaWNLZXlSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipwdWJsaWNfa2V5KiogfCAqKnN0cioqIHwgUHVibGljIGtleSBzdHJpbmcgfCAKKip0ZW5hbnRfaWQqKiB8ICoqc3RyKiogfCBUZW5hbnQgaWRlbnRpZmllciB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X2V4Y2hhbmdlX2FjY291bnRzX2NyZWRlbnRpYWxzX3B1YmxpY19rZXlfcmVzcG9uc2UgaW1wb3J0IEdldEV4Y2hhbmdlQWNjb3VudHNDcmVkZW50aWFsc1B1YmxpY0tleVJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRFeGNoYW5nZUFjY291bnRzQ3JlZGVudGlhbHNQdWJsaWNLZXlSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKZ2V0X2V4Y2hhbmdlX2FjY291bnRzX2NyZWRlbnRpYWxzX3B1YmxpY19rZXlfcmVzcG9uc2VfaW5zdGFuY2UgPSBHZXRFeGNoYW5nZUFjY291bnRzQ3JlZGVudGlhbHNQdWJsaWNLZXlSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChHZXRFeGNoYW5nZUFjY291bnRzQ3JlZGVudGlhbHNQdWJsaWNLZXlSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApnZXRfZXhjaGFuZ2VfYWNjb3VudHNfY3JlZGVudGlhbHNfcHVibGljX2tleV9yZXNwb25zZV9kaWN0ID0gZ2V0X2V4Y2hhbmdlX2FjY291bnRzX2NyZWRlbnRpYWxzX3B1YmxpY19rZXlfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldEV4Y2hhbmdlQWNjb3VudHNDcmVkZW50aWFsc1B1YmxpY0tleVJlc3BvbnNlIGZyb20gYSBkaWN0CmdldF9leGNoYW5nZV9hY2NvdW50c19jcmVkZW50aWFsc19wdWJsaWNfa2V5X3Jlc3BvbnNlX2Zyb21fZGljdCA9IEdldEV4Y2hhbmdlQWNjb3VudHNDcmVkZW50aWFsc1B1YmxpY0tleVJlc3BvbnNlLmZyb21fZGljdChnZXRfZXhjaGFuZ2VfYWNjb3VudHNfY3JlZGVudGlhbHNfcHVibGljX2tleV9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/GetFilterParameter.md b/docs/GetFilterParameter.md index 131ca4cc..af1d0010 100644 --- a/docs/GetFilterParameter.md +++ b/docs/GetFilterParameter.md @@ -1,35 +1 @@ -# GetFilterParameter - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | [optional] -**user_id** | **str** | | [optional] -**vault_account_id** | **float** | | [optional] -**connection_method** | **str** | | [optional] -**fee_level** | **str** | | [optional] -**app_url** | **str** | | [optional] -**app_name** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.get_filter_parameter import GetFilterParameter - -# TODO update the JSON string below -json = "{}" -# create an instance of GetFilterParameter from a JSON string -get_filter_parameter_instance = GetFilterParameter.from_json(json) -# print the JSON string representation of the object -print(GetFilterParameter.to_json()) - -# convert the object into a dict -get_filter_parameter_dict = get_filter_parameter_instance.to_dict() -# create an instance of GetFilterParameter from a dict -get_filter_parameter_from_dict = GetFilterParameter.from_dict(get_filter_parameter_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRGaWx0ZXJQYXJhbWV0ZXIKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKnVzZXJfaWQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKnZhdWx0X2FjY291bnRfaWQqKiB8ICoqZmxvYXQqKiB8ICB8IFtvcHRpb25hbF0gCioqY29ubmVjdGlvbl9tZXRob2QqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmZlZV9sZXZlbCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqYXBwX3VybCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqYXBwX25hbWUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X2ZpbHRlcl9wYXJhbWV0ZXIgaW1wb3J0IEdldEZpbHRlclBhcmFtZXRlcgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0RmlsdGVyUGFyYW1ldGVyIGZyb20gYSBKU09OIHN0cmluZwpnZXRfZmlsdGVyX3BhcmFtZXRlcl9pbnN0YW5jZSA9IEdldEZpbHRlclBhcmFtZXRlci5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChHZXRGaWx0ZXJQYXJhbWV0ZXIudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZ2V0X2ZpbHRlcl9wYXJhbWV0ZXJfZGljdCA9IGdldF9maWx0ZXJfcGFyYW1ldGVyX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRGaWx0ZXJQYXJhbWV0ZXIgZnJvbSBhIGRpY3QKZ2V0X2ZpbHRlcl9wYXJhbWV0ZXJfZnJvbV9kaWN0ID0gR2V0RmlsdGVyUGFyYW1ldGVyLmZyb21fZGljdChnZXRfZmlsdGVyX3BhcmFtZXRlcl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/GetLayerZeroDvnConfigResponse.md b/docs/GetLayerZeroDvnConfigResponse.md index b47ccffd..0f6c2129 100644 --- a/docs/GetLayerZeroDvnConfigResponse.md +++ b/docs/GetLayerZeroDvnConfigResponse.md @@ -1,30 +1 @@ -# GetLayerZeroDvnConfigResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**source_adapter_token_link_id** | **str** | Token-link ID of the adapter for which DVN configuration was queried. | -**channel_configs** | [**List[ChannelDvnConfigWithConfirmations]**](ChannelDvnConfigWithConfirmations.md) | DVN configurations for each discovered (or explicitly requested) channel between the source adapter and its peers. | - -## Example - -```python -from fireblocks.models.get_layer_zero_dvn_config_response import GetLayerZeroDvnConfigResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of GetLayerZeroDvnConfigResponse from a JSON string -get_layer_zero_dvn_config_response_instance = GetLayerZeroDvnConfigResponse.from_json(json) -# print the JSON string representation of the object -print(GetLayerZeroDvnConfigResponse.to_json()) - -# convert the object into a dict -get_layer_zero_dvn_config_response_dict = get_layer_zero_dvn_config_response_instance.to_dict() -# create an instance of GetLayerZeroDvnConfigResponse from a dict -get_layer_zero_dvn_config_response_from_dict = GetLayerZeroDvnConfigResponse.from_dict(get_layer_zero_dvn_config_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRMYXllclplcm9Edm5Db25maWdSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzb3VyY2VfYWRhcHRlcl90b2tlbl9saW5rX2lkKiogfCAqKnN0cioqIHwgVG9rZW4tbGluayBJRCBvZiB0aGUgYWRhcHRlciBmb3Igd2hpY2ggRFZOIGNvbmZpZ3VyYXRpb24gd2FzIHF1ZXJpZWQuIHwgCioqY2hhbm5lbF9jb25maWdzKiogfCBbKipMaXN0W0NoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc10qKl0oQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zLm1kKSB8IERWTiBjb25maWd1cmF0aW9ucyBmb3IgZWFjaCBkaXNjb3ZlcmVkIChvciBleHBsaWNpdGx5IHJlcXVlc3RlZCkgY2hhbm5lbCBiZXR3ZWVuIHRoZSBzb3VyY2UgYWRhcHRlciBhbmQgaXRzIHBlZXJzLiB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXNwb25zZSBpbXBvcnQgR2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpnZXRfbGF5ZXJfemVyb19kdm5fY29uZmlnX3Jlc3BvbnNlX2luc3RhbmNlID0gR2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoR2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZ2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXNwb25zZV9kaWN0ID0gZ2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UgZnJvbSBhIGRpY3QKZ2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXNwb25zZV9mcm9tX2RpY3QgPSBHZXRMYXllclplcm9Edm5Db25maWdSZXNwb25zZS5mcm9tX2RpY3QoZ2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/GetLayerZeroPeersResponse.md b/docs/GetLayerZeroPeersResponse.md index 16411f7f..30bfaff3 100644 --- a/docs/GetLayerZeroPeersResponse.md +++ b/docs/GetLayerZeroPeersResponse.md @@ -1,31 +1 @@ -# GetLayerZeroPeersResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**adapter_token_link_id** | **str** | The token link id of the adapter | -**adapter_address** | **str** | The adapter address | -**peers** | [**List[PeerAdapterInfo]**](PeerAdapterInfo.md) | The peers for the adapter | - -## Example - -```python -from fireblocks.models.get_layer_zero_peers_response import GetLayerZeroPeersResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of GetLayerZeroPeersResponse from a JSON string -get_layer_zero_peers_response_instance = GetLayerZeroPeersResponse.from_json(json) -# print the JSON string representation of the object -print(GetLayerZeroPeersResponse.to_json()) - -# convert the object into a dict -get_layer_zero_peers_response_dict = get_layer_zero_peers_response_instance.to_dict() -# create an instance of GetLayerZeroPeersResponse from a dict -get_layer_zero_peers_response_from_dict = GetLayerZeroPeersResponse.from_dict(get_layer_zero_peers_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFkYXB0ZXJfdG9rZW5fbGlua19pZCoqIHwgKipzdHIqKiB8IFRoZSB0b2tlbiBsaW5rIGlkIG9mIHRoZSBhZGFwdGVyIHwgCioqYWRhcHRlcl9hZGRyZXNzKiogfCAqKnN0cioqIHwgVGhlIGFkYXB0ZXIgYWRkcmVzcyB8IAoqKnBlZXJzKiogfCBbKipMaXN0W1BlZXJBZGFwdGVySW5mb10qKl0oUGVlckFkYXB0ZXJJbmZvLm1kKSB8IFRoZSBwZWVycyBmb3IgdGhlIGFkYXB0ZXIgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9sYXllcl96ZXJvX3BlZXJzX3Jlc3BvbnNlIGltcG9ydCBHZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpnZXRfbGF5ZXJfemVyb19wZWVyc19yZXNwb25zZV9pbnN0YW5jZSA9IEdldExheWVyWmVyb1BlZXJzUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoR2V0TGF5ZXJaZXJvUGVlcnNSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApnZXRfbGF5ZXJfemVyb19wZWVyc19yZXNwb25zZV9kaWN0ID0gZ2V0X2xheWVyX3plcm9fcGVlcnNfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldExheWVyWmVyb1BlZXJzUmVzcG9uc2UgZnJvbSBhIGRpY3QKZ2V0X2xheWVyX3plcm9fcGVlcnNfcmVzcG9uc2VfZnJvbV9kaWN0ID0gR2V0TGF5ZXJaZXJvUGVlcnNSZXNwb25zZS5mcm9tX2RpY3QoZ2V0X2xheWVyX3plcm9fcGVlcnNfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/GetLinkedCollectionsPaginatedResponse.md b/docs/GetLinkedCollectionsPaginatedResponse.md index dc379e87..98119835 100644 --- a/docs/GetLinkedCollectionsPaginatedResponse.md +++ b/docs/GetLinkedCollectionsPaginatedResponse.md @@ -1,30 +1 @@ -# GetLinkedCollectionsPaginatedResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[CollectionLinkDto]**](CollectionLinkDto.md) | The data of the current page | [optional] -**next** | **str** | The ID of the next page | [optional] - -## Example - -```python -from fireblocks.models.get_linked_collections_paginated_response import GetLinkedCollectionsPaginatedResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of GetLinkedCollectionsPaginatedResponse from a JSON string -get_linked_collections_paginated_response_instance = GetLinkedCollectionsPaginatedResponse.from_json(json) -# print the JSON string representation of the object -print(GetLinkedCollectionsPaginatedResponse.to_json()) - -# convert the object into a dict -get_linked_collections_paginated_response_dict = get_linked_collections_paginated_response_instance.to_dict() -# create an instance of GetLinkedCollectionsPaginatedResponse from a dict -get_linked_collections_paginated_response_from_dict = GetLinkedCollectionsPaginatedResponse.from_dict(get_linked_collections_paginated_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRMaW5rZWRDb2xsZWN0aW9uc1BhZ2luYXRlZFJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmRhdGEqKiB8IFsqKkxpc3RbQ29sbGVjdGlvbkxpbmtEdG9dKipdKENvbGxlY3Rpb25MaW5rRHRvLm1kKSB8IFRoZSBkYXRhIG9mIHRoZSBjdXJyZW50IHBhZ2UgfCBbb3B0aW9uYWxdIAoqKm5leHQqKiB8ICoqc3RyKiogfCBUaGUgSUQgb2YgdGhlIG5leHQgcGFnZSB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfbGlua2VkX2NvbGxlY3Rpb25zX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgR2V0TGlua2VkQ29sbGVjdGlvbnNQYWdpbmF0ZWRSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0TGlua2VkQ29sbGVjdGlvbnNQYWdpbmF0ZWRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKZ2V0X2xpbmtlZF9jb2xsZWN0aW9uc19wYWdpbmF0ZWRfcmVzcG9uc2VfaW5zdGFuY2UgPSBHZXRMaW5rZWRDb2xsZWN0aW9uc1BhZ2luYXRlZFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEdldExpbmtlZENvbGxlY3Rpb25zUGFnaW5hdGVkUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZ2V0X2xpbmtlZF9jb2xsZWN0aW9uc19wYWdpbmF0ZWRfcmVzcG9uc2VfZGljdCA9IGdldF9saW5rZWRfY29sbGVjdGlvbnNfcGFnaW5hdGVkX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRMaW5rZWRDb2xsZWN0aW9uc1BhZ2luYXRlZFJlc3BvbnNlIGZyb20gYSBkaWN0CmdldF9saW5rZWRfY29sbGVjdGlvbnNfcGFnaW5hdGVkX3Jlc3BvbnNlX2Zyb21fZGljdCA9IEdldExpbmtlZENvbGxlY3Rpb25zUGFnaW5hdGVkUmVzcG9uc2UuZnJvbV9kaWN0KGdldF9saW5rZWRfY29sbGVjdGlvbnNfcGFnaW5hdGVkX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/GetMaxBipIndexUsedResponse.md b/docs/GetMaxBipIndexUsedResponse.md index be06daed..4255732e 100644 --- a/docs/GetMaxBipIndexUsedResponse.md +++ b/docs/GetMaxBipIndexUsedResponse.md @@ -1,30 +1 @@ -# GetMaxBipIndexUsedResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**max_bip44_address_index_used** | **int** | The maximum BIP44 address index used for the vault account and asset | [optional] -**max_bip44_change_address_index_used** | **int** | The maximum BIP44 change address index used for the vault account and asset | [optional] - -## Example - -```python -from fireblocks.models.get_max_bip_index_used_response import GetMaxBipIndexUsedResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of GetMaxBipIndexUsedResponse from a JSON string -get_max_bip_index_used_response_instance = GetMaxBipIndexUsedResponse.from_json(json) -# print the JSON string representation of the object -print(GetMaxBipIndexUsedResponse.to_json()) - -# convert the object into a dict -get_max_bip_index_used_response_dict = get_max_bip_index_used_response_instance.to_dict() -# create an instance of GetMaxBipIndexUsedResponse from a dict -get_max_bip_index_used_response_from_dict = GetMaxBipIndexUsedResponse.from_dict(get_max_bip_index_used_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRNYXhCaXBJbmRleFVzZWRSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiptYXhfYmlwNDRfYWRkcmVzc19pbmRleF91c2VkKiogfCAqKmludCoqIHwgVGhlIG1heGltdW0gQklQNDQgYWRkcmVzcyBpbmRleCB1c2VkIGZvciB0aGUgdmF1bHQgYWNjb3VudCBhbmQgYXNzZXQgfCBbb3B0aW9uYWxdIAoqKm1heF9iaXA0NF9jaGFuZ2VfYWRkcmVzc19pbmRleF91c2VkKiogfCAqKmludCoqIHwgVGhlIG1heGltdW0gQklQNDQgY2hhbmdlIGFkZHJlc3MgaW5kZXggdXNlZCBmb3IgdGhlIHZhdWx0IGFjY291bnQgYW5kIGFzc2V0IHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9tYXhfYmlwX2luZGV4X3VzZWRfcmVzcG9uc2UgaW1wb3J0IEdldE1heEJpcEluZGV4VXNlZFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRNYXhCaXBJbmRleFVzZWRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKZ2V0X21heF9iaXBfaW5kZXhfdXNlZF9yZXNwb25zZV9pbnN0YW5jZSA9IEdldE1heEJpcEluZGV4VXNlZFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEdldE1heEJpcEluZGV4VXNlZFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmdldF9tYXhfYmlwX2luZGV4X3VzZWRfcmVzcG9uc2VfZGljdCA9IGdldF9tYXhfYmlwX2luZGV4X3VzZWRfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldE1heEJpcEluZGV4VXNlZFJlc3BvbnNlIGZyb20gYSBkaWN0CmdldF9tYXhfYmlwX2luZGV4X3VzZWRfcmVzcG9uc2VfZnJvbV9kaWN0ID0gR2V0TWF4QmlwSW5kZXhVc2VkUmVzcG9uc2UuZnJvbV9kaWN0KGdldF9tYXhfYmlwX2luZGV4X3VzZWRfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/GetMaxSpendableAmountResponse.md b/docs/GetMaxSpendableAmountResponse.md index c7272e5d..72692333 100644 --- a/docs/GetMaxSpendableAmountResponse.md +++ b/docs/GetMaxSpendableAmountResponse.md @@ -1,29 +1 @@ -# GetMaxSpendableAmountResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**max_spendable_amount** | **str** | The maximum amount that can be spent from the vault account | [optional] - -## Example - -```python -from fireblocks.models.get_max_spendable_amount_response import GetMaxSpendableAmountResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of GetMaxSpendableAmountResponse from a JSON string -get_max_spendable_amount_response_instance = GetMaxSpendableAmountResponse.from_json(json) -# print the JSON string representation of the object -print(GetMaxSpendableAmountResponse.to_json()) - -# convert the object into a dict -get_max_spendable_amount_response_dict = get_max_spendable_amount_response_instance.to_dict() -# create an instance of GetMaxSpendableAmountResponse from a dict -get_max_spendable_amount_response_from_dict = GetMaxSpendableAmountResponse.from_dict(get_max_spendable_amount_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRNYXhTcGVuZGFibGVBbW91bnRSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiptYXhfc3BlbmRhYmxlX2Ftb3VudCoqIHwgKipzdHIqKiB8IFRoZSBtYXhpbXVtIGFtb3VudCB0aGF0IGNhbiBiZSBzcGVudCBmcm9tIHRoZSB2YXVsdCBhY2NvdW50IHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9tYXhfc3BlbmRhYmxlX2Ftb3VudF9yZXNwb25zZSBpbXBvcnQgR2V0TWF4U3BlbmRhYmxlQW1vdW50UmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldE1heFNwZW5kYWJsZUFtb3VudFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpnZXRfbWF4X3NwZW5kYWJsZV9hbW91bnRfcmVzcG9uc2VfaW5zdGFuY2UgPSBHZXRNYXhTcGVuZGFibGVBbW91bnRSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChHZXRNYXhTcGVuZGFibGVBbW91bnRSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApnZXRfbWF4X3NwZW5kYWJsZV9hbW91bnRfcmVzcG9uc2VfZGljdCA9IGdldF9tYXhfc3BlbmRhYmxlX2Ftb3VudF9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0TWF4U3BlbmRhYmxlQW1vdW50UmVzcG9uc2UgZnJvbSBhIGRpY3QKZ2V0X21heF9zcGVuZGFibGVfYW1vdW50X3Jlc3BvbnNlX2Zyb21fZGljdCA9IEdldE1heFNwZW5kYWJsZUFtb3VudFJlc3BvbnNlLmZyb21fZGljdChnZXRfbWF4X3NwZW5kYWJsZV9hbW91bnRfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/GetMpcKeysResponse.md b/docs/GetMpcKeysResponse.md index db220211..878f10eb 100644 --- a/docs/GetMpcKeysResponse.md +++ b/docs/GetMpcKeysResponse.md @@ -1,30 +1 @@ -# GetMpcKeysResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**tenant_id** | **str** | The workspace id of the keys | -**keys** | [**List[MpcKey]**](MpcKey.md) | The keys that are associated with the workspace | - -## Example - -```python -from fireblocks.models.get_mpc_keys_response import GetMpcKeysResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of GetMpcKeysResponse from a JSON string -get_mpc_keys_response_instance = GetMpcKeysResponse.from_json(json) -# print the JSON string representation of the object -print(GetMpcKeysResponse.to_json()) - -# convert the object into a dict -get_mpc_keys_response_dict = get_mpc_keys_response_instance.to_dict() -# create an instance of GetMpcKeysResponse from a dict -get_mpc_keys_response_from_dict = GetMpcKeysResponse.from_dict(get_mpc_keys_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRNcGNLZXlzUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdGVuYW50X2lkKiogfCAqKnN0cioqIHwgVGhlIHdvcmtzcGFjZSBpZCBvZiB0aGUga2V5cyB8IAoqKmtleXMqKiB8IFsqKkxpc3RbTXBjS2V5XSoqXShNcGNLZXkubWQpIHwgVGhlIGtleXMgdGhhdCBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSB3b3Jrc3BhY2UgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9tcGNfa2V5c19yZXNwb25zZSBpbXBvcnQgR2V0TXBjS2V5c1Jlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRNcGNLZXlzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmdldF9tcGNfa2V5c19yZXNwb25zZV9pbnN0YW5jZSA9IEdldE1wY0tleXNSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChHZXRNcGNLZXlzUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZ2V0X21wY19rZXlzX3Jlc3BvbnNlX2RpY3QgPSBnZXRfbXBjX2tleXNfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldE1wY0tleXNSZXNwb25zZSBmcm9tIGEgZGljdApnZXRfbXBjX2tleXNfcmVzcG9uc2VfZnJvbV9kaWN0ID0gR2V0TXBjS2V5c1Jlc3BvbnNlLmZyb21fZGljdChnZXRfbXBjX2tleXNfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/GetNFTsResponse.md b/docs/GetNFTsResponse.md index 0efd992b..3ed9447f 100644 --- a/docs/GetNFTsResponse.md +++ b/docs/GetNFTsResponse.md @@ -1,30 +1 @@ -# GetNFTsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**paging** | [**Paging**](Paging.md) | | [optional] -**data** | [**List[TokenResponse]**](TokenResponse.md) | | [optional] - -## Example - -```python -from fireblocks.models.get_nfts_response import GetNFTsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of GetNFTsResponse from a JSON string -get_nfts_response_instance = GetNFTsResponse.from_json(json) -# print the JSON string representation of the object -print(GetNFTsResponse.to_json()) - -# convert the object into a dict -get_nfts_response_dict = get_nfts_response_instance.to_dict() -# create an instance of GetNFTsResponse from a dict -get_nfts_response_from_dict = GetNFTsResponse.from_dict(get_nfts_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRORlRzUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcGFnaW5nKiogfCBbKipQYWdpbmcqKl0oUGFnaW5nLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZGF0YSoqIHwgWyoqTGlzdFtUb2tlblJlc3BvbnNlXSoqXShUb2tlblJlc3BvbnNlLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfbmZ0c19yZXNwb25zZSBpbXBvcnQgR2V0TkZUc1Jlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRORlRzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmdldF9uZnRzX3Jlc3BvbnNlX2luc3RhbmNlID0gR2V0TkZUc1Jlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEdldE5GVHNSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApnZXRfbmZ0c19yZXNwb25zZV9kaWN0ID0gZ2V0X25mdHNfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldE5GVHNSZXNwb25zZSBmcm9tIGEgZGljdApnZXRfbmZ0c19yZXNwb25zZV9mcm9tX2RpY3QgPSBHZXRORlRzUmVzcG9uc2UuZnJvbV9kaWN0KGdldF9uZnRzX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/GetOrdersResponse.md b/docs/GetOrdersResponse.md index d28cced3..78832e02 100644 --- a/docs/GetOrdersResponse.md +++ b/docs/GetOrdersResponse.md @@ -1,31 +1 @@ -# GetOrdersResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[OrderSummary]**](OrderSummary.md) | | -**total** | **int** | Total number of orders matching the query. | -**next** | **str** | A cursor for the next page of results, if available. | [optional] - -## Example - -```python -from fireblocks.models.get_orders_response import GetOrdersResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of GetOrdersResponse from a JSON string -get_orders_response_instance = GetOrdersResponse.from_json(json) -# print the JSON string representation of the object -print(GetOrdersResponse.to_json()) - -# convert the object into a dict -get_orders_response_dict = get_orders_response_instance.to_dict() -# create an instance of GetOrdersResponse from a dict -get_orders_response_from_dict = GetOrdersResponse.from_dict(get_orders_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRPcmRlcnNSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkYXRhKiogfCBbKipMaXN0W09yZGVyU3VtbWFyeV0qKl0oT3JkZXJTdW1tYXJ5Lm1kKSB8ICB8IAoqKnRvdGFsKiogfCAqKmludCoqIHwgVG90YWwgbnVtYmVyIG9mIG9yZGVycyBtYXRjaGluZyB0aGUgcXVlcnkuIHwgCioqbmV4dCoqIHwgKipzdHIqKiB8IEEgY3Vyc29yIGZvciB0aGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMsIGlmIGF2YWlsYWJsZS4gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X29yZGVyc19yZXNwb25zZSBpbXBvcnQgR2V0T3JkZXJzUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldE9yZGVyc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpnZXRfb3JkZXJzX3Jlc3BvbnNlX2luc3RhbmNlID0gR2V0T3JkZXJzUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoR2V0T3JkZXJzUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZ2V0X29yZGVyc19yZXNwb25zZV9kaWN0ID0gZ2V0X29yZGVyc19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0T3JkZXJzUmVzcG9uc2UgZnJvbSBhIGRpY3QKZ2V0X29yZGVyc19yZXNwb25zZV9mcm9tX2RpY3QgPSBHZXRPcmRlcnNSZXNwb25zZS5mcm9tX2RpY3QoZ2V0X29yZGVyc19yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/GetOtaStatusResponse.md b/docs/GetOtaStatusResponse.md index e1e85282..83b0f166 100644 --- a/docs/GetOtaStatusResponse.md +++ b/docs/GetOtaStatusResponse.md @@ -1,29 +1 @@ -# GetOtaStatusResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**enabled** | **bool** | Current OTA status | [optional] - -## Example - -```python -from fireblocks.models.get_ota_status_response import GetOtaStatusResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of GetOtaStatusResponse from a JSON string -get_ota_status_response_instance = GetOtaStatusResponse.from_json(json) -# print the JSON string representation of the object -print(GetOtaStatusResponse.to_json()) - -# convert the object into a dict -get_ota_status_response_dict = get_ota_status_response_instance.to_dict() -# create an instance of GetOtaStatusResponse from a dict -get_ota_status_response_from_dict = GetOtaStatusResponse.from_dict(get_ota_status_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRPdGFTdGF0dXNSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiplbmFibGVkKiogfCAqKmJvb2wqKiB8IEN1cnJlbnQgT1RBIHN0YXR1cyB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfb3RhX3N0YXR1c19yZXNwb25zZSBpbXBvcnQgR2V0T3RhU3RhdHVzUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldE90YVN0YXR1c1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpnZXRfb3RhX3N0YXR1c19yZXNwb25zZV9pbnN0YW5jZSA9IEdldE90YVN0YXR1c1Jlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEdldE90YVN0YXR1c1Jlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmdldF9vdGFfc3RhdHVzX3Jlc3BvbnNlX2RpY3QgPSBnZXRfb3RhX3N0YXR1c19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0T3RhU3RhdHVzUmVzcG9uc2UgZnJvbSBhIGRpY3QKZ2V0X290YV9zdGF0dXNfcmVzcG9uc2VfZnJvbV9kaWN0ID0gR2V0T3RhU3RhdHVzUmVzcG9uc2UuZnJvbV9kaWN0KGdldF9vdGFfc3RhdHVzX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/GetOwnershipTokensResponse.md b/docs/GetOwnershipTokensResponse.md index bd9f0a9c..268eadfe 100644 --- a/docs/GetOwnershipTokensResponse.md +++ b/docs/GetOwnershipTokensResponse.md @@ -1,30 +1 @@ -# GetOwnershipTokensResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**paging** | [**Paging**](Paging.md) | | [optional] -**data** | [**List[TokenOwnershipResponse]**](TokenOwnershipResponse.md) | | [optional] - -## Example - -```python -from fireblocks.models.get_ownership_tokens_response import GetOwnershipTokensResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of GetOwnershipTokensResponse from a JSON string -get_ownership_tokens_response_instance = GetOwnershipTokensResponse.from_json(json) -# print the JSON string representation of the object -print(GetOwnershipTokensResponse.to_json()) - -# convert the object into a dict -get_ownership_tokens_response_dict = get_ownership_tokens_response_instance.to_dict() -# create an instance of GetOwnershipTokensResponse from a dict -get_ownership_tokens_response_from_dict = GetOwnershipTokensResponse.from_dict(get_ownership_tokens_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRPd25lcnNoaXBUb2tlbnNSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipwYWdpbmcqKiB8IFsqKlBhZ2luZyoqXShQYWdpbmcubWQpIHwgIHwgW29wdGlvbmFsXSAKKipkYXRhKiogfCBbKipMaXN0W1Rva2VuT3duZXJzaGlwUmVzcG9uc2VdKipdKFRva2VuT3duZXJzaGlwUmVzcG9uc2UubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9vd25lcnNoaXBfdG9rZW5zX3Jlc3BvbnNlIGltcG9ydCBHZXRPd25lcnNoaXBUb2tlbnNSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0T3duZXJzaGlwVG9rZW5zUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmdldF9vd25lcnNoaXBfdG9rZW5zX3Jlc3BvbnNlX2luc3RhbmNlID0gR2V0T3duZXJzaGlwVG9rZW5zUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoR2V0T3duZXJzaGlwVG9rZW5zUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZ2V0X293bmVyc2hpcF90b2tlbnNfcmVzcG9uc2VfZGljdCA9IGdldF9vd25lcnNoaXBfdG9rZW5zX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRPd25lcnNoaXBUb2tlbnNSZXNwb25zZSBmcm9tIGEgZGljdApnZXRfb3duZXJzaGlwX3Rva2Vuc19yZXNwb25zZV9mcm9tX2RpY3QgPSBHZXRPd25lcnNoaXBUb2tlbnNSZXNwb25zZS5mcm9tX2RpY3QoZ2V0X293bmVyc2hpcF90b2tlbnNfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/GetPagedExchangeAccountsResponse.md b/docs/GetPagedExchangeAccountsResponse.md index e18843c8..180571ea 100644 --- a/docs/GetPagedExchangeAccountsResponse.md +++ b/docs/GetPagedExchangeAccountsResponse.md @@ -1,32 +1 @@ -# GetPagedExchangeAccountsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**exchanges** | [**List[ExchangeAccount]**](ExchangeAccount.md) | | -**paging** | [**GetPagedExchangeAccountsResponsePaging**](GetPagedExchangeAccountsResponsePaging.md) | | [optional] -**prev_url** | **str** | | [optional] -**next_url** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.get_paged_exchange_accounts_response import GetPagedExchangeAccountsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of GetPagedExchangeAccountsResponse from a JSON string -get_paged_exchange_accounts_response_instance = GetPagedExchangeAccountsResponse.from_json(json) -# print the JSON string representation of the object -print(GetPagedExchangeAccountsResponse.to_json()) - -# convert the object into a dict -get_paged_exchange_accounts_response_dict = get_paged_exchange_accounts_response_instance.to_dict() -# create an instance of GetPagedExchangeAccountsResponse from a dict -get_paged_exchange_accounts_response_from_dict = GetPagedExchangeAccountsResponse.from_dict(get_paged_exchange_accounts_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRQYWdlZEV4Y2hhbmdlQWNjb3VudHNSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipleGNoYW5nZXMqKiB8IFsqKkxpc3RbRXhjaGFuZ2VBY2NvdW50XSoqXShFeGNoYW5nZUFjY291bnQubWQpIHwgIHwgCioqcGFnaW5nKiogfCBbKipHZXRQYWdlZEV4Y2hhbmdlQWNjb3VudHNSZXNwb25zZVBhZ2luZyoqXShHZXRQYWdlZEV4Y2hhbmdlQWNjb3VudHNSZXNwb25zZVBhZ2luZy5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnByZXZfdXJsKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipuZXh0X3VybCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfcGFnZWRfZXhjaGFuZ2VfYWNjb3VudHNfcmVzcG9uc2UgaW1wb3J0IEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRQYWdlZEV4Y2hhbmdlQWNjb3VudHNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKZ2V0X3BhZ2VkX2V4Y2hhbmdlX2FjY291bnRzX3Jlc3BvbnNlX2luc3RhbmNlID0gR2V0UGFnZWRFeGNoYW5nZUFjY291bnRzUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoR2V0UGFnZWRFeGNoYW5nZUFjY291bnRzUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZ2V0X3BhZ2VkX2V4Y2hhbmdlX2FjY291bnRzX3Jlc3BvbnNlX2RpY3QgPSBnZXRfcGFnZWRfZXhjaGFuZ2VfYWNjb3VudHNfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlIGZyb20gYSBkaWN0CmdldF9wYWdlZF9leGNoYW5nZV9hY2NvdW50c19yZXNwb25zZV9mcm9tX2RpY3QgPSBHZXRQYWdlZEV4Y2hhbmdlQWNjb3VudHNSZXNwb25zZS5mcm9tX2RpY3QoZ2V0X3BhZ2VkX2V4Y2hhbmdlX2FjY291bnRzX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/GetPagedExchangeAccountsResponsePaging.md b/docs/GetPagedExchangeAccountsResponsePaging.md index 6fd47e38..9cc2e943 100644 --- a/docs/GetPagedExchangeAccountsResponsePaging.md +++ b/docs/GetPagedExchangeAccountsResponsePaging.md @@ -1,30 +1 @@ -# GetPagedExchangeAccountsResponsePaging - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**after** | **str** | Query value to the after page | [optional] -**before** | **str** | Query value to the before page | [optional] - -## Example - -```python -from fireblocks.models.get_paged_exchange_accounts_response_paging import GetPagedExchangeAccountsResponsePaging - -# TODO update the JSON string below -json = "{}" -# create an instance of GetPagedExchangeAccountsResponsePaging from a JSON string -get_paged_exchange_accounts_response_paging_instance = GetPagedExchangeAccountsResponsePaging.from_json(json) -# print the JSON string representation of the object -print(GetPagedExchangeAccountsResponsePaging.to_json()) - -# convert the object into a dict -get_paged_exchange_accounts_response_paging_dict = get_paged_exchange_accounts_response_paging_instance.to_dict() -# create an instance of GetPagedExchangeAccountsResponsePaging from a dict -get_paged_exchange_accounts_response_paging_from_dict = GetPagedExchangeAccountsResponsePaging.from_dict(get_paged_exchange_accounts_response_paging_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRQYWdlZEV4Y2hhbmdlQWNjb3VudHNSZXNwb25zZVBhZ2luZwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphZnRlcioqIHwgKipzdHIqKiB8IFF1ZXJ5IHZhbHVlIHRvIHRoZSBhZnRlciBwYWdlIHwgW29wdGlvbmFsXSAKKipiZWZvcmUqKiB8ICoqc3RyKiogfCBRdWVyeSB2YWx1ZSB0byB0aGUgYmVmb3JlIHBhZ2UgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X3BhZ2VkX2V4Y2hhbmdlX2FjY291bnRzX3Jlc3BvbnNlX3BhZ2luZyBpbXBvcnQgR2V0UGFnZWRFeGNoYW5nZUFjY291bnRzUmVzcG9uc2VQYWdpbmcKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlUGFnaW5nIGZyb20gYSBKU09OIHN0cmluZwpnZXRfcGFnZWRfZXhjaGFuZ2VfYWNjb3VudHNfcmVzcG9uc2VfcGFnaW5nX2luc3RhbmNlID0gR2V0UGFnZWRFeGNoYW5nZUFjY291bnRzUmVzcG9uc2VQYWdpbmcuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoR2V0UGFnZWRFeGNoYW5nZUFjY291bnRzUmVzcG9uc2VQYWdpbmcudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKZ2V0X3BhZ2VkX2V4Y2hhbmdlX2FjY291bnRzX3Jlc3BvbnNlX3BhZ2luZ19kaWN0ID0gZ2V0X3BhZ2VkX2V4Y2hhbmdlX2FjY291bnRzX3Jlc3BvbnNlX3BhZ2luZ19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0UGFnZWRFeGNoYW5nZUFjY291bnRzUmVzcG9uc2VQYWdpbmcgZnJvbSBhIGRpY3QKZ2V0X3BhZ2VkX2V4Y2hhbmdlX2FjY291bnRzX3Jlc3BvbnNlX3BhZ2luZ19mcm9tX2RpY3QgPSBHZXRQYWdlZEV4Y2hhbmdlQWNjb3VudHNSZXNwb25zZVBhZ2luZy5mcm9tX2RpY3QoZ2V0X3BhZ2VkX2V4Y2hhbmdlX2FjY291bnRzX3Jlc3BvbnNlX3BhZ2luZ19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/GetSigningKeyResponseDto.md b/docs/GetSigningKeyResponseDto.md index 0ab15520..ec249f51 100644 --- a/docs/GetSigningKeyResponseDto.md +++ b/docs/GetSigningKeyResponseDto.md @@ -1,30 +1 @@ -# GetSigningKeyResponseDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[SigningKeyDto]**](SigningKeyDto.md) | Response object for getting external signing keys. | -**next** | **str** | The ID of the next page | [optional] - -## Example - -```python -from fireblocks.models.get_signing_key_response_dto import GetSigningKeyResponseDto - -# TODO update the JSON string below -json = "{}" -# create an instance of GetSigningKeyResponseDto from a JSON string -get_signing_key_response_dto_instance = GetSigningKeyResponseDto.from_json(json) -# print the JSON string representation of the object -print(GetSigningKeyResponseDto.to_json()) - -# convert the object into a dict -get_signing_key_response_dto_dict = get_signing_key_response_dto_instance.to_dict() -# create an instance of GetSigningKeyResponseDto from a dict -get_signing_key_response_dto_from_dict = GetSigningKeyResponseDto.from_dict(get_signing_key_response_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRTaWduaW5nS2V5UmVzcG9uc2VEdG8KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZGF0YSoqIHwgWyoqTGlzdFtTaWduaW5nS2V5RHRvXSoqXShTaWduaW5nS2V5RHRvLm1kKSB8IFJlc3BvbnNlIG9iamVjdCBmb3IgZ2V0dGluZyBleHRlcm5hbCBzaWduaW5nIGtleXMuIHwgCioqbmV4dCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgbmV4dCBwYWdlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9zaWduaW5nX2tleV9yZXNwb25zZV9kdG8gaW1wb3J0IEdldFNpZ25pbmdLZXlSZXNwb25zZUR0bwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0U2lnbmluZ0tleVJlc3BvbnNlRHRvIGZyb20gYSBKU09OIHN0cmluZwpnZXRfc2lnbmluZ19rZXlfcmVzcG9uc2VfZHRvX2luc3RhbmNlID0gR2V0U2lnbmluZ0tleVJlc3BvbnNlRHRvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEdldFNpZ25pbmdLZXlSZXNwb25zZUR0by50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApnZXRfc2lnbmluZ19rZXlfcmVzcG9uc2VfZHRvX2RpY3QgPSBnZXRfc2lnbmluZ19rZXlfcmVzcG9uc2VfZHRvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRTaWduaW5nS2V5UmVzcG9uc2VEdG8gZnJvbSBhIGRpY3QKZ2V0X3NpZ25pbmdfa2V5X3Jlc3BvbnNlX2R0b19mcm9tX2RpY3QgPSBHZXRTaWduaW5nS2V5UmVzcG9uc2VEdG8uZnJvbV9kaWN0KGdldF9zaWduaW5nX2tleV9yZXNwb25zZV9kdG9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/GetTransactionOperation.md b/docs/GetTransactionOperation.md index fb5755c3..dcd9fb49 100644 --- a/docs/GetTransactionOperation.md +++ b/docs/GetTransactionOperation.md @@ -1,37 +1 @@ -# GetTransactionOperation - -* `TRANSFER` - Transfers funds from one account to another. UTXO blockchains allow multi-input and multi-output transfers. All other blockchains allow transfers with one source address and one destination address. * `MINT` - Mints new tokens. Supported for Stellar, Ripple and EVM-based blockchains. * `BURN` - Burns tokens. Supported for Stellar, Ripple and EVM-based blockchains. * `CONTRACT_CALL` - Calls a smart contract method for web3 operations on any EVM blockchain. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions. * `TYPED_MESSAGE` - An off-chain message in either Ethereum Personal Message or EIP712 format. Use it to sign specific readable messages that are not actual transactions. [Learn more about typed messages](https://developers.fireblocks.com/docs/typed-message-signing). * `RAW` - An off-chain message with no predefined format. Use it to sign any message with your private key, including protocols such as blockchains and custom transaction types that are not natively supported by Fireblocks. [Learn more about raw signing transactions.](https://developers.fireblocks.com/docs/raw-message-signing) * `ENABLE_ASSET` - Algorand, DigitalBits, Solana, and Stellar require an on-chain transaction to create an asset wallet and enable the deposit address. This transaction is automatically created when adding assets on these blockchains at a vault account. * `STAKE` - Assign assets to a staking pool managed by a staking validator. Supported for Stellar and EVM-based blockchains. This transaction is automatically created when performing staking operations. * `UNSTAKE` - Remove assets from a staking pool managed by a staking validator. Supported for Stellar and EVM-based blockchains. This transaction is automatically created when performing staking operations. * `WITHDRAW` - Transfer assets from a dedicated staking vault account to another address. Supported for Stellar and EVM-based blockchains. This transaction is automatically created when performing staking operations. **Note:** Fireblocks will rename this type from `WITHDRAW` to a different type name soon. There will be a 7-day notice regarding the new type name. * `SUPPLY_TO_COMPOUND` - Deprecated since April 1st, 2023. Older transactions may have this as their operation, in case users in the workspace have used the direct integration between Fireblocks and the Compound DeFI protocol. * `REDEEM_FROM_COMPOUND` - Deprecated since April 1st, 2023. Older transactions may have this as their operation, in case users in the workspace have used the direct integration between Fireblocks and the Compound DeFI protocol. * `PROGRAM_CALL` - In Solana refers to invoking on-chain programs (smart contracts) to execute transactions and interact with the blockchain. * `APPROVE` - Enables the approve function for a smart contract or wallet to withdraw from a designated wallet. [Learn more](https://support.fireblocks.io/hc/en-us/articles/4404616097426-Amount-Cap-for-Approve-transactions). - -## Enum - -* `TRANSFER` (value: `'TRANSFER'`) - -* `BURN` (value: `'BURN'`) - -* `CONTRACT_CALL` (value: `'CONTRACT_CALL'`) - -* `MINT` (value: `'MINT'`) - -* `RAW` (value: `'RAW'`) - -* `TYPED_MESSAGE` (value: `'TYPED_MESSAGE'`) - -* `ENABLE_ASSET` (value: `'ENABLE_ASSET'`) - -* `STAKE` (value: `'STAKE'`) - -* `UNSTAKE` (value: `'UNSTAKE'`) - -* `WITHDRAW` (value: `'WITHDRAW'`) - -* `REDEEM_FROM_COMPOUND` (value: `'REDEEM_FROM_COMPOUND'`) - -* `SUPPLY_TO_COMPOUND` (value: `'SUPPLY_TO_COMPOUND'`) - -* `PROGRAM_CALL` (value: `'PROGRAM_CALL'`) - -* `APPROVE` (value: `'APPROVE'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRUcmFuc2FjdGlvbk9wZXJhdGlvbgoKKiBgVFJBTlNGRVJgIC0gVHJhbnNmZXJzIGZ1bmRzIGZyb20gb25lIGFjY291bnQgdG8gYW5vdGhlci4gVVRYTyBibG9ja2NoYWlucyBhbGxvdyBtdWx0aS1pbnB1dCBhbmQgbXVsdGktb3V0cHV0IHRyYW5zZmVycy4gQWxsIG90aGVyIGJsb2NrY2hhaW5zIGFsbG93IHRyYW5zZmVycyB3aXRoIG9uZSBzb3VyY2UgYWRkcmVzcyBhbmQgb25lIGRlc3RpbmF0aW9uIGFkZHJlc3MuICogYE1JTlRgIC0gTWludHMgbmV3IHRva2Vucy4gU3VwcG9ydGVkIGZvciBTdGVsbGFyLCBSaXBwbGUgYW5kIEVWTS1iYXNlZCBibG9ja2NoYWlucy4gKiBgQlVSTmAgLSBCdXJucyB0b2tlbnMuIFN1cHBvcnRlZCBmb3IgU3RlbGxhciwgUmlwcGxlIGFuZCBFVk0tYmFzZWQgYmxvY2tjaGFpbnMuICogYENPTlRSQUNUX0NBTExgIC0gQ2FsbHMgYSBzbWFydCBjb250cmFjdCBtZXRob2QgZm9yIHdlYjMgb3BlcmF0aW9ucyBvbiBhbnkgRVZNIGJsb2NrY2hhaW4uIFRoZSBGaXJlYmxvY2tzIFtkZXZlbG9wbWVudCBsaWJyYXJpZXNdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL2V0aGVyZXVtLWRldmVsb3BtZW50I2NvbnZlbmllbmNlLWxpYnJhcmllcykgYXJlIHJlY29tbWVuZGVkIGZvciBidWlsZGluZyBjb250cmFjdCBjYWxsIHRyYW5zYWN0aW9ucy4gKiBgVFlQRURfTUVTU0FHRWAgLSBBbiBvZmYtY2hhaW4gbWVzc2FnZSBpbiBlaXRoZXIgRXRoZXJldW0gUGVyc29uYWwgTWVzc2FnZSBvciBFSVA3MTIgZm9ybWF0LiBVc2UgaXQgdG8gc2lnbiBzcGVjaWZpYyByZWFkYWJsZSBtZXNzYWdlcyB0aGF0IGFyZSBub3QgYWN0dWFsIHRyYW5zYWN0aW9ucy4gW0xlYXJuIG1vcmUgYWJvdXQgdHlwZWQgbWVzc2FnZXNdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL3R5cGVkLW1lc3NhZ2Utc2lnbmluZykuICogYFJBV2AgLSBBbiBvZmYtY2hhaW4gbWVzc2FnZSB3aXRoIG5vIHByZWRlZmluZWQgZm9ybWF0LiBVc2UgaXQgdG8gc2lnbiBhbnkgbWVzc2FnZSB3aXRoIHlvdXIgcHJpdmF0ZSBrZXksIGluY2x1ZGluZyBwcm90b2NvbHMgc3VjaCBhcyBibG9ja2NoYWlucyBhbmQgY3VzdG9tIHRyYW5zYWN0aW9uIHR5cGVzIHRoYXQgYXJlIG5vdCBuYXRpdmVseSBzdXBwb3J0ZWQgYnkgRmlyZWJsb2Nrcy4gW0xlYXJuIG1vcmUgYWJvdXQgcmF3IHNpZ25pbmcgdHJhbnNhY3Rpb25zLl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL2RvY3MvcmF3LW1lc3NhZ2Utc2lnbmluZykgKiBgRU5BQkxFX0FTU0VUYCAtIEFsZ29yYW5kLCBEaWdpdGFsQml0cywgU29sYW5hLCBhbmQgU3RlbGxhciByZXF1aXJlIGFuIG9uLWNoYWluIHRyYW5zYWN0aW9uIHRvIGNyZWF0ZSBhbiBhc3NldCB3YWxsZXQgYW5kIGVuYWJsZSB0aGUgZGVwb3NpdCBhZGRyZXNzLiBUaGlzIHRyYW5zYWN0aW9uIGlzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB3aGVuIGFkZGluZyBhc3NldHMgb24gdGhlc2UgYmxvY2tjaGFpbnMgYXQgYSB2YXVsdCBhY2NvdW50LiAqIGBTVEFLRWAgLSBBc3NpZ24gYXNzZXRzIHRvIGEgc3Rha2luZyBwb29sIG1hbmFnZWQgYnkgYSBzdGFraW5nIHZhbGlkYXRvci4gU3VwcG9ydGVkIGZvciBTdGVsbGFyIGFuZCBFVk0tYmFzZWQgYmxvY2tjaGFpbnMuIFRoaXMgdHJhbnNhY3Rpb24gaXMgYXV0b21hdGljYWxseSBjcmVhdGVkIHdoZW4gcGVyZm9ybWluZyBzdGFraW5nIG9wZXJhdGlvbnMuICogYFVOU1RBS0VgIC0gUmVtb3ZlIGFzc2V0cyBmcm9tIGEgc3Rha2luZyBwb29sIG1hbmFnZWQgYnkgYSBzdGFraW5nIHZhbGlkYXRvci4gU3VwcG9ydGVkIGZvciBTdGVsbGFyIGFuZCBFVk0tYmFzZWQgYmxvY2tjaGFpbnMuIFRoaXMgdHJhbnNhY3Rpb24gaXMgYXV0b21hdGljYWxseSBjcmVhdGVkIHdoZW4gcGVyZm9ybWluZyBzdGFraW5nIG9wZXJhdGlvbnMuICogYFdJVEhEUkFXYCAtIFRyYW5zZmVyIGFzc2V0cyBmcm9tIGEgZGVkaWNhdGVkIHN0YWtpbmcgdmF1bHQgYWNjb3VudCB0byBhbm90aGVyIGFkZHJlc3MuIFN1cHBvcnRlZCBmb3IgU3RlbGxhciBhbmQgRVZNLWJhc2VkIGJsb2NrY2hhaW5zLiBUaGlzIHRyYW5zYWN0aW9uIGlzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB3aGVuIHBlcmZvcm1pbmcgc3Rha2luZyBvcGVyYXRpb25zLiAgICAgICoqTm90ZToqKiBGaXJlYmxvY2tzIHdpbGwgcmVuYW1lIHRoaXMgdHlwZSBmcm9tIGBXSVRIRFJBV2AgdG8gYSBkaWZmZXJlbnQgdHlwZSBuYW1lIHNvb24uIFRoZXJlIHdpbGwgYmUgYSA3LWRheSBub3RpY2UgcmVnYXJkaW5nIHRoZSBuZXcgdHlwZSBuYW1lLiAgKiBgU1VQUExZX1RPX0NPTVBPVU5EYCAtIERlcHJlY2F0ZWQgc2luY2UgQXByaWwgMXN0LCAyMDIzLiBPbGRlciB0cmFuc2FjdGlvbnMgbWF5IGhhdmUgdGhpcyBhcyB0aGVpciBvcGVyYXRpb24sIGluIGNhc2UgdXNlcnMgaW4gdGhlIHdvcmtzcGFjZSBoYXZlIHVzZWQgdGhlIGRpcmVjdCBpbnRlZ3JhdGlvbiBiZXR3ZWVuIEZpcmVibG9ja3MgYW5kIHRoZSBDb21wb3VuZCBEZUZJIHByb3RvY29sLiAqIGBSRURFRU1fRlJPTV9DT01QT1VORGAgLSBEZXByZWNhdGVkIHNpbmNlIEFwcmlsIDFzdCwgMjAyMy4gT2xkZXIgdHJhbnNhY3Rpb25zIG1heSBoYXZlIHRoaXMgYXMgdGhlaXIgb3BlcmF0aW9uLCBpbiBjYXNlIHVzZXJzIGluIHRoZSB3b3Jrc3BhY2UgaGF2ZSB1c2VkIHRoZSBkaXJlY3QgaW50ZWdyYXRpb24gYmV0d2VlbiBGaXJlYmxvY2tzIGFuZCB0aGUgQ29tcG91bmQgRGVGSSBwcm90b2NvbC4gKiBgUFJPR1JBTV9DQUxMYCAtIEluIFNvbGFuYSByZWZlcnMgdG8gaW52b2tpbmcgb24tY2hhaW4gcHJvZ3JhbXMgKHNtYXJ0IGNvbnRyYWN0cykgdG8gZXhlY3V0ZSB0cmFuc2FjdGlvbnMgYW5kIGludGVyYWN0IHdpdGggdGhlIGJsb2NrY2hhaW4uICogYEFQUFJPVkVgIC0gRW5hYmxlcyB0aGUgYXBwcm92ZSBmdW5jdGlvbiBmb3IgYSBzbWFydCBjb250cmFjdCBvciB3YWxsZXQgdG8gIHdpdGhkcmF3IGZyb20gYSBkZXNpZ25hdGVkIHdhbGxldC4gW0xlYXJuIG1vcmVdKGh0dHBzOi8vc3VwcG9ydC5maXJlYmxvY2tzLmlvL2hjL2VuLXVzL2FydGljbGVzLzQ0MDQ2MTYwOTc0MjYtQW1vdW50LUNhcC1mb3ItQXBwcm92ZS10cmFuc2FjdGlvbnMpLiAKCiMjIEVudW0KCiogYFRSQU5TRkVSYCAodmFsdWU6IGAnVFJBTlNGRVInYCkKCiogYEJVUk5gICh2YWx1ZTogYCdCVVJOJ2ApCgoqIGBDT05UUkFDVF9DQUxMYCAodmFsdWU6IGAnQ09OVFJBQ1RfQ0FMTCdgKQoKKiBgTUlOVGAgKHZhbHVlOiBgJ01JTlQnYCkKCiogYFJBV2AgKHZhbHVlOiBgJ1JBVydgKQoKKiBgVFlQRURfTUVTU0FHRWAgKHZhbHVlOiBgJ1RZUEVEX01FU1NBR0UnYCkKCiogYEVOQUJMRV9BU1NFVGAgKHZhbHVlOiBgJ0VOQUJMRV9BU1NFVCdgKQoKKiBgU1RBS0VgICh2YWx1ZTogYCdTVEFLRSdgKQoKKiBgVU5TVEFLRWAgKHZhbHVlOiBgJ1VOU1RBS0UnYCkKCiogYFdJVEhEUkFXYCAodmFsdWU6IGAnV0lUSERSQVcnYCkKCiogYFJFREVFTV9GUk9NX0NPTVBPVU5EYCAodmFsdWU6IGAnUkVERUVNX0ZST01fQ09NUE9VTkQnYCkKCiogYFNVUFBMWV9UT19DT01QT1VORGAgKHZhbHVlOiBgJ1NVUFBMWV9UT19DT01QT1VORCdgKQoKKiBgUFJPR1JBTV9DQUxMYCAodmFsdWU6IGAnUFJPR1JBTV9DQUxMJ2ApCgoqIGBBUFBST1ZFYCAodmFsdWU6IGAnQVBQUk9WRSdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/GetValidationKeyResponseDto.md b/docs/GetValidationKeyResponseDto.md index 33d3e16d..12e41069 100644 --- a/docs/GetValidationKeyResponseDto.md +++ b/docs/GetValidationKeyResponseDto.md @@ -1,30 +1 @@ -# GetValidationKeyResponseDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[ValidationKeyDto]**](ValidationKeyDto.md) | Response object for getting external validation keys. | -**next** | **str** | The ID of the next page | [optional] - -## Example - -```python -from fireblocks.models.get_validation_key_response_dto import GetValidationKeyResponseDto - -# TODO update the JSON string below -json = "{}" -# create an instance of GetValidationKeyResponseDto from a JSON string -get_validation_key_response_dto_instance = GetValidationKeyResponseDto.from_json(json) -# print the JSON string representation of the object -print(GetValidationKeyResponseDto.to_json()) - -# convert the object into a dict -get_validation_key_response_dto_dict = get_validation_key_response_dto_instance.to_dict() -# create an instance of GetValidationKeyResponseDto from a dict -get_validation_key_response_dto_from_dict = GetValidationKeyResponseDto.from_dict(get_validation_key_response_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZGF0YSoqIHwgWyoqTGlzdFtWYWxpZGF0aW9uS2V5RHRvXSoqXShWYWxpZGF0aW9uS2V5RHRvLm1kKSB8IFJlc3BvbnNlIG9iamVjdCBmb3IgZ2V0dGluZyBleHRlcm5hbCB2YWxpZGF0aW9uIGtleXMuIHwgCioqbmV4dCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgbmV4dCBwYWdlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF92YWxpZGF0aW9uX2tleV9yZXNwb25zZV9kdG8gaW1wb3J0IEdldFZhbGlkYXRpb25LZXlSZXNwb25zZUR0bwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0VmFsaWRhdGlvbktleVJlc3BvbnNlRHRvIGZyb20gYSBKU09OIHN0cmluZwpnZXRfdmFsaWRhdGlvbl9rZXlfcmVzcG9uc2VfZHRvX2luc3RhbmNlID0gR2V0VmFsaWRhdGlvbktleVJlc3BvbnNlRHRvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEdldFZhbGlkYXRpb25LZXlSZXNwb25zZUR0by50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApnZXRfdmFsaWRhdGlvbl9rZXlfcmVzcG9uc2VfZHRvX2RpY3QgPSBnZXRfdmFsaWRhdGlvbl9rZXlfcmVzcG9uc2VfZHRvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8gZnJvbSBhIGRpY3QKZ2V0X3ZhbGlkYXRpb25fa2V5X3Jlc3BvbnNlX2R0b19mcm9tX2RpY3QgPSBHZXRWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8uZnJvbV9kaWN0KGdldF92YWxpZGF0aW9uX2tleV9yZXNwb25zZV9kdG9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/GetWhitelistIpAddressesResponse.md b/docs/GetWhitelistIpAddressesResponse.md index ce7b901e..a3206b40 100644 --- a/docs/GetWhitelistIpAddressesResponse.md +++ b/docs/GetWhitelistIpAddressesResponse.md @@ -1,30 +1 @@ -# GetWhitelistIpAddressesResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**user_id** | **str** | The ID of the user | [optional] -**whitelisted_ips** | **List[str]** | List of whitelisted ip addresses | [optional] - -## Example - -```python -from fireblocks.models.get_whitelist_ip_addresses_response import GetWhitelistIpAddressesResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of GetWhitelistIpAddressesResponse from a JSON string -get_whitelist_ip_addresses_response_instance = GetWhitelistIpAddressesResponse.from_json(json) -# print the JSON string representation of the object -print(GetWhitelistIpAddressesResponse.to_json()) - -# convert the object into a dict -get_whitelist_ip_addresses_response_dict = get_whitelist_ip_addresses_response_instance.to_dict() -# create an instance of GetWhitelistIpAddressesResponse from a dict -get_whitelist_ip_addresses_response_from_dict = GetWhitelistIpAddressesResponse.from_dict(get_whitelist_ip_addresses_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRXaGl0ZWxpc3RJcEFkZHJlc3Nlc1Jlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnVzZXJfaWQqKiB8ICoqc3RyKiogfCBUaGUgSUQgb2YgdGhlIHVzZXIgfCBbb3B0aW9uYWxdIAoqKndoaXRlbGlzdGVkX2lwcyoqIHwgKipMaXN0W3N0cl0qKiB8IExpc3Qgb2Ygd2hpdGVsaXN0ZWQgaXAgYWRkcmVzc2VzIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF93aGl0ZWxpc3RfaXBfYWRkcmVzc2VzX3Jlc3BvbnNlIGltcG9ydCBHZXRXaGl0ZWxpc3RJcEFkZHJlc3Nlc1Jlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRXaGl0ZWxpc3RJcEFkZHJlc3Nlc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpnZXRfd2hpdGVsaXN0X2lwX2FkZHJlc3Nlc19yZXNwb25zZV9pbnN0YW5jZSA9IEdldFdoaXRlbGlzdElwQWRkcmVzc2VzUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoR2V0V2hpdGVsaXN0SXBBZGRyZXNzZXNSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApnZXRfd2hpdGVsaXN0X2lwX2FkZHJlc3Nlc19yZXNwb25zZV9kaWN0ID0gZ2V0X3doaXRlbGlzdF9pcF9hZGRyZXNzZXNfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldFdoaXRlbGlzdElwQWRkcmVzc2VzUmVzcG9uc2UgZnJvbSBhIGRpY3QKZ2V0X3doaXRlbGlzdF9pcF9hZGRyZXNzZXNfcmVzcG9uc2VfZnJvbV9kaWN0ID0gR2V0V2hpdGVsaXN0SXBBZGRyZXNzZXNSZXNwb25zZS5mcm9tX2RpY3QoZ2V0X3doaXRlbGlzdF9pcF9hZGRyZXNzZXNfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/GetWorkspaceStatusResponse.md b/docs/GetWorkspaceStatusResponse.md index c81ed601..d31b09d4 100644 --- a/docs/GetWorkspaceStatusResponse.md +++ b/docs/GetWorkspaceStatusResponse.md @@ -1,29 +1 @@ -# GetWorkspaceStatusResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status** | **str** | Current workspace status | [optional] - -## Example - -```python -from fireblocks.models.get_workspace_status_response import GetWorkspaceStatusResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of GetWorkspaceStatusResponse from a JSON string -get_workspace_status_response_instance = GetWorkspaceStatusResponse.from_json(json) -# print the JSON string representation of the object -print(GetWorkspaceStatusResponse.to_json()) - -# convert the object into a dict -get_workspace_status_response_dict = get_workspace_status_response_instance.to_dict() -# create an instance of GetWorkspaceStatusResponse from a dict -get_workspace_status_response_from_dict = GetWorkspaceStatusResponse.from_dict(get_workspace_status_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBHZXRXb3Jrc3BhY2VTdGF0dXNSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzdGF0dXMqKiB8ICoqc3RyKiogfCBDdXJyZW50IHdvcmtzcGFjZSBzdGF0dXMgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X3dvcmtzcGFjZV9zdGF0dXNfcmVzcG9uc2UgaW1wb3J0IEdldFdvcmtzcGFjZVN0YXR1c1Jlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRXb3Jrc3BhY2VTdGF0dXNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKZ2V0X3dvcmtzcGFjZV9zdGF0dXNfcmVzcG9uc2VfaW5zdGFuY2UgPSBHZXRXb3Jrc3BhY2VTdGF0dXNSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChHZXRXb3Jrc3BhY2VTdGF0dXNSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApnZXRfd29ya3NwYWNlX3N0YXR1c19yZXNwb25zZV9kaWN0ID0gZ2V0X3dvcmtzcGFjZV9zdGF0dXNfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldFdvcmtzcGFjZVN0YXR1c1Jlc3BvbnNlIGZyb20gYSBkaWN0CmdldF93b3Jrc3BhY2Vfc3RhdHVzX3Jlc3BvbnNlX2Zyb21fZGljdCA9IEdldFdvcmtzcGFjZVN0YXR1c1Jlc3BvbnNlLmZyb21fZGljdChnZXRfd29ya3NwYWNlX3N0YXR1c19yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/HttpContractDoesNotExistError.md b/docs/HttpContractDoesNotExistError.md index 8fe8d9ac..12a617bc 100644 --- a/docs/HttpContractDoesNotExistError.md +++ b/docs/HttpContractDoesNotExistError.md @@ -1,30 +1 @@ -# HttpContractDoesNotExistError - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Not Found error code | [optional] -**code** | **str** | Error code | [optional] - -## Example - -```python -from fireblocks.models.http_contract_does_not_exist_error import HttpContractDoesNotExistError - -# TODO update the JSON string below -json = "{}" -# create an instance of HttpContractDoesNotExistError from a JSON string -http_contract_does_not_exist_error_instance = HttpContractDoesNotExistError.from_json(json) -# print the JSON string representation of the object -print(HttpContractDoesNotExistError.to_json()) - -# convert the object into a dict -http_contract_does_not_exist_error_dict = http_contract_does_not_exist_error_instance.to_dict() -# create an instance of HttpContractDoesNotExistError from a dict -http_contract_does_not_exist_error_from_dict = HttpContractDoesNotExistError.from_dict(http_contract_does_not_exist_error_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBIdHRwQ29udHJhY3REb2VzTm90RXhpc3RFcnJvcgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiptZXNzYWdlKiogfCAqKnN0cioqIHwgTm90IEZvdW5kIGVycm9yIGNvZGUgfCBbb3B0aW9uYWxdIAoqKmNvZGUqKiB8ICoqc3RyKiogfCBFcnJvciBjb2RlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmh0dHBfY29udHJhY3RfZG9lc19ub3RfZXhpc3RfZXJyb3IgaW1wb3J0IEh0dHBDb250cmFjdERvZXNOb3RFeGlzdEVycm9yCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBIdHRwQ29udHJhY3REb2VzTm90RXhpc3RFcnJvciBmcm9tIGEgSlNPTiBzdHJpbmcKaHR0cF9jb250cmFjdF9kb2VzX25vdF9leGlzdF9lcnJvcl9pbnN0YW5jZSA9IEh0dHBDb250cmFjdERvZXNOb3RFeGlzdEVycm9yLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEh0dHBDb250cmFjdERvZXNOb3RFeGlzdEVycm9yLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cmh0dHBfY29udHJhY3RfZG9lc19ub3RfZXhpc3RfZXJyb3JfZGljdCA9IGh0dHBfY29udHJhY3RfZG9lc19ub3RfZXhpc3RfZXJyb3JfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEh0dHBDb250cmFjdERvZXNOb3RFeGlzdEVycm9yIGZyb20gYSBkaWN0Cmh0dHBfY29udHJhY3RfZG9lc19ub3RfZXhpc3RfZXJyb3JfZnJvbV9kaWN0ID0gSHR0cENvbnRyYWN0RG9lc05vdEV4aXN0RXJyb3IuZnJvbV9kaWN0KGh0dHBfY29udHJhY3RfZG9lc19ub3RfZXhpc3RfZXJyb3JfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/IbanAddress.md b/docs/IbanAddress.md index 09ea557b..7fbf3bc1 100644 --- a/docs/IbanAddress.md +++ b/docs/IbanAddress.md @@ -1,30 +1 @@ -# IbanAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | | -**iban** | **str** | | - -## Example - -```python -from fireblocks.models.iban_address import IbanAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of IbanAddress from a JSON string -iban_address_instance = IbanAddress.from_json(json) -# print the JSON string representation of the object -print(IbanAddress.to_json()) - -# convert the object into a dict -iban_address_dict = iban_address_instance.to_dict() -# create an instance of IbanAddress from a dict -iban_address_from_dict = IbanAddress.from_dict(iban_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBJYmFuQWRkcmVzcwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphY2NvdW50X2hvbGRlcioqIHwgWyoqQWNjb3VudEhvbGRlckRldGFpbHMqKl0oQWNjb3VudEhvbGRlckRldGFpbHMubWQpIHwgIHwgCioqaWJhbioqIHwgKipzdHIqKiB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaWJhbl9hZGRyZXNzIGltcG9ydCBJYmFuQWRkcmVzcwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgSWJhbkFkZHJlc3MgZnJvbSBhIEpTT04gc3RyaW5nCmliYW5fYWRkcmVzc19pbnN0YW5jZSA9IEliYW5BZGRyZXNzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEliYW5BZGRyZXNzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmliYW5fYWRkcmVzc19kaWN0ID0gaWJhbl9hZGRyZXNzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJYmFuQWRkcmVzcyBmcm9tIGEgZGljdAppYmFuX2FkZHJlc3NfZnJvbV9kaWN0ID0gSWJhbkFkZHJlc3MuZnJvbV9kaWN0KGliYW5fYWRkcmVzc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/IbanDestination.md b/docs/IbanDestination.md index 9432114d..467457c5 100644 --- a/docs/IbanDestination.md +++ b/docs/IbanDestination.md @@ -1,30 +1 @@ -# IbanDestination - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | -**address** | [**IbanAddress**](IbanAddress.md) | | - -## Example - -```python -from fireblocks.models.iban_destination import IbanDestination - -# TODO update the JSON string below -json = "{}" -# create an instance of IbanDestination from a JSON string -iban_destination_instance = IbanDestination.from_json(json) -# print the JSON string representation of the object -print(IbanDestination.to_json()) - -# convert the object into a dict -iban_destination_dict = iban_destination_instance.to_dict() -# create an instance of IbanDestination from a dict -iban_destination_from_dict = IbanDestination.from_dict(iban_destination_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBJYmFuRGVzdGluYXRpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgKipzdHIqKiB8ICB8IAoqKmFkZHJlc3MqKiB8IFsqKkliYW5BZGRyZXNzKipdKEliYW5BZGRyZXNzLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaWJhbl9kZXN0aW5hdGlvbiBpbXBvcnQgSWJhbkRlc3RpbmF0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJYmFuRGVzdGluYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCmliYW5fZGVzdGluYXRpb25faW5zdGFuY2UgPSBJYmFuRGVzdGluYXRpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoSWJhbkRlc3RpbmF0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmliYW5fZGVzdGluYXRpb25fZGljdCA9IGliYW5fZGVzdGluYXRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEliYW5EZXN0aW5hdGlvbiBmcm9tIGEgZGljdAppYmFuX2Rlc3RpbmF0aW9uX2Zyb21fZGljdCA9IEliYW5EZXN0aW5hdGlvbi5mcm9tX2RpY3QoaWJhbl9kZXN0aW5hdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/IbanPaymentInfo.md b/docs/IbanPaymentInfo.md index c40c3bc2..fddce0cb 100644 --- a/docs/IbanPaymentInfo.md +++ b/docs/IbanPaymentInfo.md @@ -1,40 +1 @@ -# IbanPaymentInfo - -IBAN payment information for European bank transfers - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_holder_given_name** | **str** | The given name (first name) of the account holder | -**account_holder_surname** | **str** | The surname (last name) of the account holder | [optional] -**account_holder_city** | **str** | The city where the account holder resides | -**account_holder_country** | **str** | The country where the account holder resides (ISO 3166-1 alpha-2 code) | -**account_holder_address1** | **str** | The primary address line of the account holder | -**account_holder_address2** | **str** | The secondary address line of the account holder (optional) | [optional] -**account_holder_district** | **str** | The district or region where the account holder resides | [optional] -**account_holder_postal_code** | **str** | The postal code of the account holder's address | -**iban** | **str** | The International Bank Account Number (IBAN) | -**iban_city** | **str** | The city associated with the IBAN | -**iban_country** | **str** | The country associated with the IBAN (ISO 3166-1 alpha-2 code) | - -## Example - -```python -from fireblocks.models.iban_payment_info import IbanPaymentInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of IbanPaymentInfo from a JSON string -iban_payment_info_instance = IbanPaymentInfo.from_json(json) -# print the JSON string representation of the object -print(IbanPaymentInfo.to_json()) - -# convert the object into a dict -iban_payment_info_dict = iban_payment_info_instance.to_dict() -# create an instance of IbanPaymentInfo from a dict -iban_payment_info_from_dict = IbanPaymentInfo.from_dict(iban_payment_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBJYmFuUGF5bWVudEluZm8KCklCQU4gcGF5bWVudCBpbmZvcm1hdGlvbiBmb3IgRXVyb3BlYW4gYmFuayB0cmFuc2ZlcnMKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphY2NvdW50X2hvbGRlcl9naXZlbl9uYW1lKiogfCAqKnN0cioqIHwgVGhlIGdpdmVuIG5hbWUgKGZpcnN0IG5hbWUpIG9mIHRoZSBhY2NvdW50IGhvbGRlciB8IAoqKmFjY291bnRfaG9sZGVyX3N1cm5hbWUqKiB8ICoqc3RyKiogfCBUaGUgc3VybmFtZSAobGFzdCBuYW1lKSBvZiB0aGUgYWNjb3VudCBob2xkZXIgfCBbb3B0aW9uYWxdIAoqKmFjY291bnRfaG9sZGVyX2NpdHkqKiB8ICoqc3RyKiogfCBUaGUgY2l0eSB3aGVyZSB0aGUgYWNjb3VudCBob2xkZXIgcmVzaWRlcyB8IAoqKmFjY291bnRfaG9sZGVyX2NvdW50cnkqKiB8ICoqc3RyKiogfCBUaGUgY291bnRyeSB3aGVyZSB0aGUgYWNjb3VudCBob2xkZXIgcmVzaWRlcyAoSVNPIDMxNjYtMSBhbHBoYS0yIGNvZGUpIHwgCioqYWNjb3VudF9ob2xkZXJfYWRkcmVzczEqKiB8ICoqc3RyKiogfCBUaGUgcHJpbWFyeSBhZGRyZXNzIGxpbmUgb2YgdGhlIGFjY291bnQgaG9sZGVyIHwgCioqYWNjb3VudF9ob2xkZXJfYWRkcmVzczIqKiB8ICoqc3RyKiogfCBUaGUgc2Vjb25kYXJ5IGFkZHJlc3MgbGluZSBvZiB0aGUgYWNjb3VudCBob2xkZXIgKG9wdGlvbmFsKSB8IFtvcHRpb25hbF0gCioqYWNjb3VudF9ob2xkZXJfZGlzdHJpY3QqKiB8ICoqc3RyKiogfCBUaGUgZGlzdHJpY3Qgb3IgcmVnaW9uIHdoZXJlIHRoZSBhY2NvdW50IGhvbGRlciByZXNpZGVzIHwgW29wdGlvbmFsXSAKKiphY2NvdW50X2hvbGRlcl9wb3N0YWxfY29kZSoqIHwgKipzdHIqKiB8IFRoZSBwb3N0YWwgY29kZSBvZiB0aGUgYWNjb3VudCBob2xkZXImIzM5O3MgYWRkcmVzcyB8IAoqKmliYW4qKiB8ICoqc3RyKiogfCBUaGUgSW50ZXJuYXRpb25hbCBCYW5rIEFjY291bnQgTnVtYmVyIChJQkFOKSB8IAoqKmliYW5fY2l0eSoqIHwgKipzdHIqKiB8IFRoZSBjaXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgSUJBTiB8IAoqKmliYW5fY291bnRyeSoqIHwgKipzdHIqKiB8IFRoZSBjb3VudHJ5IGFzc29jaWF0ZWQgd2l0aCB0aGUgSUJBTiAoSVNPIDMxNjYtMSBhbHBoYS0yIGNvZGUpIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5pYmFuX3BheW1lbnRfaW5mbyBpbXBvcnQgSWJhblBheW1lbnRJbmZvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJYmFuUGF5bWVudEluZm8gZnJvbSBhIEpTT04gc3RyaW5nCmliYW5fcGF5bWVudF9pbmZvX2luc3RhbmNlID0gSWJhblBheW1lbnRJbmZvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEliYW5QYXltZW50SW5mby50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAppYmFuX3BheW1lbnRfaW5mb19kaWN0ID0gaWJhbl9wYXltZW50X2luZm9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEliYW5QYXltZW50SW5mbyBmcm9tIGEgZGljdAppYmFuX3BheW1lbnRfaW5mb19mcm9tX2RpY3QgPSBJYmFuUGF5bWVudEluZm8uZnJvbV9kaWN0KGliYW5fcGF5bWVudF9pbmZvX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/Identification.md b/docs/Identification.md index a12ee859..6cf67710 100644 --- a/docs/Identification.md +++ b/docs/Identification.md @@ -1,42 +1 @@ -# Identification - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**external_reference_id** | **str** | | -**entity_type** | [**BusinessEntityTypeEnum**](BusinessEntityTypeEnum.md) | | -**participant_relationship_type** | [**ParticipantRelationshipType**](ParticipantRelationshipType.md) | | -**full_name** | [**PersonalIdentificationFullName**](PersonalIdentificationFullName.md) | | -**date_of_birth** | **date** | | -**postal_address** | [**PostalAddress**](PostalAddress.md) | | -**email** | **str** | | [optional] -**phone** | **str** | Mobile phone number in E.164 format | [optional] -**id_number** | **str** | The identification number corresponding to the primary identification document type specified in idType | [optional] -**id_type** | [**PersonalIdentificationType**](PersonalIdentificationType.md) | | [optional] -**additional_id_number** | **str** | The identification number corresponding to the additional identification document type specified in additionalIdType | [optional] -**additional_id_type** | [**PersonalIdentificationType**](PersonalIdentificationType.md) | | [optional] -**business_name** | **str** | | -**registration_number** | **str** | | - -## Example - -```python -from fireblocks.models.identification import Identification - -# TODO update the JSON string below -json = "{}" -# create an instance of Identification from a JSON string -identification_instance = Identification.from_json(json) -# print the JSON string representation of the object -print(Identification.to_json()) - -# convert the object into a dict -identification_dict = identification_instance.to_dict() -# create an instance of Identification from a dict -identification_from_dict = Identification.from_dict(identification_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBJZGVudGlmaWNhdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipleHRlcm5hbF9yZWZlcmVuY2VfaWQqKiB8ICoqc3RyKiogfCAgfCAKKiplbnRpdHlfdHlwZSoqIHwgWyoqQnVzaW5lc3NFbnRpdHlUeXBlRW51bSoqXShCdXNpbmVzc0VudGl0eVR5cGVFbnVtLm1kKSB8ICB8IAoqKnBhcnRpY2lwYW50X3JlbGF0aW9uc2hpcF90eXBlKiogfCBbKipQYXJ0aWNpcGFudFJlbGF0aW9uc2hpcFR5cGUqKl0oUGFydGljaXBhbnRSZWxhdGlvbnNoaXBUeXBlLm1kKSB8ICB8IAoqKmZ1bGxfbmFtZSoqIHwgWyoqUGVyc29uYWxJZGVudGlmaWNhdGlvbkZ1bGxOYW1lKipdKFBlcnNvbmFsSWRlbnRpZmljYXRpb25GdWxsTmFtZS5tZCkgfCAgfCAKKipkYXRlX29mX2JpcnRoKiogfCAqKmRhdGUqKiB8ICB8IAoqKnBvc3RhbF9hZGRyZXNzKiogfCBbKipQb3N0YWxBZGRyZXNzKipdKFBvc3RhbEFkZHJlc3MubWQpIHwgIHwgCioqZW1haWwqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKnBob25lKiogfCAqKnN0cioqIHwgTW9iaWxlIHBob25lIG51bWJlciBpbiBFLjE2NCBmb3JtYXQgfCBbb3B0aW9uYWxdIAoqKmlkX251bWJlcioqIHwgKipzdHIqKiB8IFRoZSBpZGVudGlmaWNhdGlvbiBudW1iZXIgY29ycmVzcG9uZGluZyB0byB0aGUgcHJpbWFyeSBpZGVudGlmaWNhdGlvbiBkb2N1bWVudCB0eXBlIHNwZWNpZmllZCBpbiBpZFR5cGUgfCBbb3B0aW9uYWxdIAoqKmlkX3R5cGUqKiB8IFsqKlBlcnNvbmFsSWRlbnRpZmljYXRpb25UeXBlKipdKFBlcnNvbmFsSWRlbnRpZmljYXRpb25UeXBlLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqYWRkaXRpb25hbF9pZF9udW1iZXIqKiB8ICoqc3RyKiogfCBUaGUgaWRlbnRpZmljYXRpb24gbnVtYmVyIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGFkZGl0aW9uYWwgaWRlbnRpZmljYXRpb24gZG9jdW1lbnQgdHlwZSBzcGVjaWZpZWQgaW4gYWRkaXRpb25hbElkVHlwZSB8IFtvcHRpb25hbF0gCioqYWRkaXRpb25hbF9pZF90eXBlKiogfCBbKipQZXJzb25hbElkZW50aWZpY2F0aW9uVHlwZSoqXShQZXJzb25hbElkZW50aWZpY2F0aW9uVHlwZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmJ1c2luZXNzX25hbWUqKiB8ICoqc3RyKiogfCAgfCAKKipyZWdpc3RyYXRpb25fbnVtYmVyKiogfCAqKnN0cioqIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5pZGVudGlmaWNhdGlvbiBpbXBvcnQgSWRlbnRpZmljYXRpb24KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIElkZW50aWZpY2F0aW9uIGZyb20gYSBKU09OIHN0cmluZwppZGVudGlmaWNhdGlvbl9pbnN0YW5jZSA9IElkZW50aWZpY2F0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KElkZW50aWZpY2F0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmlkZW50aWZpY2F0aW9uX2RpY3QgPSBpZGVudGlmaWNhdGlvbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgSWRlbnRpZmljYXRpb24gZnJvbSBhIGRpY3QKaWRlbnRpZmljYXRpb25fZnJvbV9kaWN0ID0gSWRlbnRpZmljYXRpb24uZnJvbV9kaWN0KGlkZW50aWZpY2F0aW9uX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/IdlType.md b/docs/IdlType.md index 78dfd9c4..aa35a1d4 100644 --- a/docs/IdlType.md +++ b/docs/IdlType.md @@ -1,45 +1 @@ -# IdlType - -The type of the parameter - -## Enum - -* `BOOL` (value: `'bool'`) - -* `U8` (value: `'u8'`) - -* `I8` (value: `'i8'`) - -* `U16` (value: `'u16'`) - -* `I16` (value: `'i16'`) - -* `U32` (value: `'u32'`) - -* `I32` (value: `'i32'`) - -* `F32` (value: `'f32'`) - -* `U64` (value: `'u64'`) - -* `I64` (value: `'i64'`) - -* `F64` (value: `'f64'`) - -* `U128` (value: `'u128'`) - -* `I128` (value: `'i128'`) - -* `U256` (value: `'u256'`) - -* `I256` (value: `'i256'`) - -* `BYTES` (value: `'bytes'`) - -* `STRING` (value: `'string'`) - -* `PUBKEY` (value: `'pubkey'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBJZGxUeXBlCgpUaGUgdHlwZSBvZiB0aGUgcGFyYW1ldGVyCgojIyBFbnVtCgoqIGBCT09MYCAodmFsdWU6IGAnYm9vbCdgKQoKKiBgVThgICh2YWx1ZTogYCd1OCdgKQoKKiBgSThgICh2YWx1ZTogYCdpOCdgKQoKKiBgVTE2YCAodmFsdWU6IGAndTE2J2ApCgoqIGBJMTZgICh2YWx1ZTogYCdpMTYnYCkKCiogYFUzMmAgKHZhbHVlOiBgJ3UzMidgKQoKKiBgSTMyYCAodmFsdWU6IGAnaTMyJ2ApCgoqIGBGMzJgICh2YWx1ZTogYCdmMzInYCkKCiogYFU2NGAgKHZhbHVlOiBgJ3U2NCdgKQoKKiBgSTY0YCAodmFsdWU6IGAnaTY0J2ApCgoqIGBGNjRgICh2YWx1ZTogYCdmNjQnYCkKCiogYFUxMjhgICh2YWx1ZTogYCd1MTI4J2ApCgoqIGBJMTI4YCAodmFsdWU6IGAnaTEyOCdgKQoKKiBgVTI1NmAgKHZhbHVlOiBgJ3UyNTYnYCkKCiogYEkyNTZgICh2YWx1ZTogYCdpMjU2J2ApCgoqIGBCWVRFU2AgKHZhbHVlOiBgJ2J5dGVzJ2ApCgoqIGBTVFJJTkdgICh2YWx1ZTogYCdzdHJpbmcnYCkKCiogYFBVQktFWWAgKHZhbHVlOiBgJ3B1YmtleSdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/IndicativeQuoteEnum.md b/docs/IndicativeQuoteEnum.md index 39904e97..6856aa7c 100644 --- a/docs/IndicativeQuoteEnum.md +++ b/docs/IndicativeQuoteEnum.md @@ -1,11 +1 @@ -# IndicativeQuoteEnum - -Indicates this is an indicative quote - -## Enum - -* `INDICATIVE` (value: `'INDICATIVE'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBJbmRpY2F0aXZlUXVvdGVFbnVtCgpJbmRpY2F0ZXMgdGhpcyBpcyBhbiBpbmRpY2F0aXZlIHF1b3RlCgojIyBFbnVtCgoqIGBJTkRJQ0FUSVZFYCAodmFsdWU6IGAnSU5ESUNBVElWRSdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/IndicativeQuoteType.md b/docs/IndicativeQuoteType.md index 5984e28b..994e8608 100644 --- a/docs/IndicativeQuoteType.md +++ b/docs/IndicativeQuoteType.md @@ -1,29 +1 @@ -# IndicativeQuoteType - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**IndicativeQuoteEnum**](IndicativeQuoteEnum.md) | | - -## Example - -```python -from fireblocks.models.indicative_quote_type import IndicativeQuoteType - -# TODO update the JSON string below -json = "{}" -# create an instance of IndicativeQuoteType from a JSON string -indicative_quote_type_instance = IndicativeQuoteType.from_json(json) -# print the JSON string representation of the object -print(IndicativeQuoteType.to_json()) - -# convert the object into a dict -indicative_quote_type_dict = indicative_quote_type_instance.to_dict() -# create an instance of IndicativeQuoteType from a dict -indicative_quote_type_from_dict = IndicativeQuoteType.from_dict(indicative_quote_type_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBJbmRpY2F0aXZlUXVvdGVUeXBlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8IFsqKkluZGljYXRpdmVRdW90ZUVudW0qKl0oSW5kaWNhdGl2ZVF1b3RlRW51bS5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmluZGljYXRpdmVfcXVvdGVfdHlwZSBpbXBvcnQgSW5kaWNhdGl2ZVF1b3RlVHlwZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgSW5kaWNhdGl2ZVF1b3RlVHlwZSBmcm9tIGEgSlNPTiBzdHJpbmcKaW5kaWNhdGl2ZV9xdW90ZV90eXBlX2luc3RhbmNlID0gSW5kaWNhdGl2ZVF1b3RlVHlwZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChJbmRpY2F0aXZlUXVvdGVUeXBlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmluZGljYXRpdmVfcXVvdGVfdHlwZV9kaWN0ID0gaW5kaWNhdGl2ZV9xdW90ZV90eXBlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJbmRpY2F0aXZlUXVvdGVUeXBlIGZyb20gYSBkaWN0CmluZGljYXRpdmVfcXVvdGVfdHlwZV9mcm9tX2RpY3QgPSBJbmRpY2F0aXZlUXVvdGVUeXBlLmZyb21fZGljdChpbmRpY2F0aXZlX3F1b3RlX3R5cGVfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/InitiatorConfig.md b/docs/InitiatorConfig.md index 404eff58..4ff12383 100644 --- a/docs/InitiatorConfig.md +++ b/docs/InitiatorConfig.md @@ -1,35 +1 @@ -# InitiatorConfig - -Policy rule initiator configuration - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**users** | **List[str]** | List of user IDs | [optional] -**groups** | **List[str]** | List of policy group IDs | [optional] -**services** | **List[str]** | | [optional] -**fb_admin_groups** | **List[str]** | | [optional] -**exchange** | **List[str]** | | [optional] -**operator** | [**PolicyOperator**](PolicyOperator.md) | | [optional] - -## Example - -```python -from fireblocks.models.initiator_config import InitiatorConfig - -# TODO update the JSON string below -json = "{}" -# create an instance of InitiatorConfig from a JSON string -initiator_config_instance = InitiatorConfig.from_json(json) -# print the JSON string representation of the object -print(InitiatorConfig.to_json()) - -# convert the object into a dict -initiator_config_dict = initiator_config_instance.to_dict() -# create an instance of InitiatorConfig from a dict -initiator_config_from_dict = InitiatorConfig.from_dict(initiator_config_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBJbml0aWF0b3JDb25maWcKClBvbGljeSBydWxlIGluaXRpYXRvciBjb25maWd1cmF0aW9uCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdXNlcnMqKiB8ICoqTGlzdFtzdHJdKiogfCBMaXN0IG9mIHVzZXIgSURzIHwgW29wdGlvbmFsXSAKKipncm91cHMqKiB8ICoqTGlzdFtzdHJdKiogfCBMaXN0IG9mIHBvbGljeSBncm91cCBJRHMgfCBbb3B0aW9uYWxdIAoqKnNlcnZpY2VzKiogfCAqKkxpc3Rbc3RyXSoqIHwgIHwgW29wdGlvbmFsXSAKKipmYl9hZG1pbl9ncm91cHMqKiB8ICoqTGlzdFtzdHJdKiogfCAgfCBbb3B0aW9uYWxdIAoqKmV4Y2hhbmdlKiogfCAqKkxpc3Rbc3RyXSoqIHwgIHwgW29wdGlvbmFsXSAKKipvcGVyYXRvcioqIHwgWyoqUG9saWN5T3BlcmF0b3IqKl0oUG9saWN5T3BlcmF0b3IubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmluaXRpYXRvcl9jb25maWcgaW1wb3J0IEluaXRpYXRvckNvbmZpZwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgSW5pdGlhdG9yQ29uZmlnIGZyb20gYSBKU09OIHN0cmluZwppbml0aWF0b3JfY29uZmlnX2luc3RhbmNlID0gSW5pdGlhdG9yQ29uZmlnLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEluaXRpYXRvckNvbmZpZy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAppbml0aWF0b3JfY29uZmlnX2RpY3QgPSBpbml0aWF0b3JfY29uZmlnX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJbml0aWF0b3JDb25maWcgZnJvbSBhIGRpY3QKaW5pdGlhdG9yX2NvbmZpZ19mcm9tX2RpY3QgPSBJbml0aWF0b3JDb25maWcuZnJvbV9kaWN0KGluaXRpYXRvcl9jb25maWdfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/InitiatorConfigPattern.md b/docs/InitiatorConfigPattern.md index 790505f3..f98a8941 100644 --- a/docs/InitiatorConfigPattern.md +++ b/docs/InitiatorConfigPattern.md @@ -1,34 +1 @@ -# InitiatorConfigPattern - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**users** | **List[str]** | List of user IDs | [optional] -**groups** | **List[str]** | List of policy group IDs | [optional] -**services** | **List[str]** | | [optional] -**fb_admin_groups** | **List[str]** | | [optional] -**exchange** | **List[str]** | | [optional] -**operator** | [**PolicyOperator**](PolicyOperator.md) | | [optional] - -## Example - -```python -from fireblocks.models.initiator_config_pattern import InitiatorConfigPattern - -# TODO update the JSON string below -json = "{}" -# create an instance of InitiatorConfigPattern from a JSON string -initiator_config_pattern_instance = InitiatorConfigPattern.from_json(json) -# print the JSON string representation of the object -print(InitiatorConfigPattern.to_json()) - -# convert the object into a dict -initiator_config_pattern_dict = initiator_config_pattern_instance.to_dict() -# create an instance of InitiatorConfigPattern from a dict -initiator_config_pattern_from_dict = InitiatorConfigPattern.from_dict(initiator_config_pattern_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBJbml0aWF0b3JDb25maWdQYXR0ZXJuCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnVzZXJzKiogfCAqKkxpc3Rbc3RyXSoqIHwgTGlzdCBvZiB1c2VyIElEcyB8IFtvcHRpb25hbF0gCioqZ3JvdXBzKiogfCAqKkxpc3Rbc3RyXSoqIHwgTGlzdCBvZiBwb2xpY3kgZ3JvdXAgSURzIHwgW29wdGlvbmFsXSAKKipzZXJ2aWNlcyoqIHwgKipMaXN0W3N0cl0qKiB8ICB8IFtvcHRpb25hbF0gCioqZmJfYWRtaW5fZ3JvdXBzKiogfCAqKkxpc3Rbc3RyXSoqIHwgIHwgW29wdGlvbmFsXSAKKipleGNoYW5nZSoqIHwgKipMaXN0W3N0cl0qKiB8ICB8IFtvcHRpb25hbF0gCioqb3BlcmF0b3IqKiB8IFsqKlBvbGljeU9wZXJhdG9yKipdKFBvbGljeU9wZXJhdG9yLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5pbml0aWF0b3JfY29uZmlnX3BhdHRlcm4gaW1wb3J0IEluaXRpYXRvckNvbmZpZ1BhdHRlcm4KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEluaXRpYXRvckNvbmZpZ1BhdHRlcm4gZnJvbSBhIEpTT04gc3RyaW5nCmluaXRpYXRvcl9jb25maWdfcGF0dGVybl9pbnN0YW5jZSA9IEluaXRpYXRvckNvbmZpZ1BhdHRlcm4uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoSW5pdGlhdG9yQ29uZmlnUGF0dGVybi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAppbml0aWF0b3JfY29uZmlnX3BhdHRlcm5fZGljdCA9IGluaXRpYXRvcl9jb25maWdfcGF0dGVybl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgSW5pdGlhdG9yQ29uZmlnUGF0dGVybiBmcm9tIGEgZGljdAppbml0aWF0b3JfY29uZmlnX3BhdHRlcm5fZnJvbV9kaWN0ID0gSW5pdGlhdG9yQ29uZmlnUGF0dGVybi5mcm9tX2RpY3QoaW5pdGlhdG9yX2NvbmZpZ19wYXR0ZXJuX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/InstructionAmount.md b/docs/InstructionAmount.md index b9c514da..fdf93af5 100644 --- a/docs/InstructionAmount.md +++ b/docs/InstructionAmount.md @@ -1,30 +1 @@ -# InstructionAmount - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | **str** | | -**asset_id** | **str** | | - -## Example - -```python -from fireblocks.models.instruction_amount import InstructionAmount - -# TODO update the JSON string below -json = "{}" -# create an instance of InstructionAmount from a JSON string -instruction_amount_instance = InstructionAmount.from_json(json) -# print the JSON string representation of the object -print(InstructionAmount.to_json()) - -# convert the object into a dict -instruction_amount_dict = instruction_amount_instance.to_dict() -# create an instance of InstructionAmount from a dict -instruction_amount_from_dict = InstructionAmount.from_dict(instruction_amount_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBJbnN0cnVjdGlvbkFtb3VudAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphbW91bnQqKiB8ICoqc3RyKiogfCAgfCAKKiphc3NldF9pZCoqIHwgKipzdHIqKiB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaW5zdHJ1Y3Rpb25fYW1vdW50IGltcG9ydCBJbnN0cnVjdGlvbkFtb3VudAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgSW5zdHJ1Y3Rpb25BbW91bnQgZnJvbSBhIEpTT04gc3RyaW5nCmluc3RydWN0aW9uX2Ftb3VudF9pbnN0YW5jZSA9IEluc3RydWN0aW9uQW1vdW50LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEluc3RydWN0aW9uQW1vdW50LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cmluc3RydWN0aW9uX2Ftb3VudF9kaWN0ID0gaW5zdHJ1Y3Rpb25fYW1vdW50X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJbnN0cnVjdGlvbkFtb3VudCBmcm9tIGEgZGljdAppbnN0cnVjdGlvbl9hbW91bnRfZnJvbV9kaWN0ID0gSW5zdHJ1Y3Rpb25BbW91bnQuZnJvbV9kaWN0KGluc3RydWN0aW9uX2Ftb3VudF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/InteracAddress.md b/docs/InteracAddress.md index c6ad53a5..8f83e71f 100644 --- a/docs/InteracAddress.md +++ b/docs/InteracAddress.md @@ -1,31 +1 @@ -# InteracAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | | -**recipient_handle** | [**RecipientHandle**](RecipientHandle.md) | | -**message** | **str** | The message to be sent to the recipient | [optional] - -## Example - -```python -from fireblocks.models.interac_address import InteracAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of InteracAddress from a JSON string -interac_address_instance = InteracAddress.from_json(json) -# print the JSON string representation of the object -print(InteracAddress.to_json()) - -# convert the object into a dict -interac_address_dict = interac_address_instance.to_dict() -# create an instance of InteracAddress from a dict -interac_address_from_dict = InteracAddress.from_dict(interac_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBJbnRlcmFjQWRkcmVzcwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphY2NvdW50X2hvbGRlcioqIHwgWyoqQWNjb3VudEhvbGRlckRldGFpbHMqKl0oQWNjb3VudEhvbGRlckRldGFpbHMubWQpIHwgIHwgCioqcmVjaXBpZW50X2hhbmRsZSoqIHwgWyoqUmVjaXBpZW50SGFuZGxlKipdKFJlY2lwaWVudEhhbmRsZS5tZCkgfCAgfCAKKiptZXNzYWdlKiogfCAqKnN0cioqIHwgVGhlIG1lc3NhZ2UgdG8gYmUgc2VudCB0byB0aGUgcmVjaXBpZW50IHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmludGVyYWNfYWRkcmVzcyBpbXBvcnQgSW50ZXJhY0FkZHJlc3MKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEludGVyYWNBZGRyZXNzIGZyb20gYSBKU09OIHN0cmluZwppbnRlcmFjX2FkZHJlc3NfaW5zdGFuY2UgPSBJbnRlcmFjQWRkcmVzcy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChJbnRlcmFjQWRkcmVzcy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAppbnRlcmFjX2FkZHJlc3NfZGljdCA9IGludGVyYWNfYWRkcmVzc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgSW50ZXJhY0FkZHJlc3MgZnJvbSBhIGRpY3QKaW50ZXJhY19hZGRyZXNzX2Zyb21fZGljdCA9IEludGVyYWNBZGRyZXNzLmZyb21fZGljdChpbnRlcmFjX2FkZHJlc3NfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/InteracDestination.md b/docs/InteracDestination.md index 8cce329d..b7a60d07 100644 --- a/docs/InteracDestination.md +++ b/docs/InteracDestination.md @@ -1,30 +1 @@ -# InteracDestination - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | -**address** | [**InteracAddress**](InteracAddress.md) | | - -## Example - -```python -from fireblocks.models.interac_destination import InteracDestination - -# TODO update the JSON string below -json = "{}" -# create an instance of InteracDestination from a JSON string -interac_destination_instance = InteracDestination.from_json(json) -# print the JSON string representation of the object -print(InteracDestination.to_json()) - -# convert the object into a dict -interac_destination_dict = interac_destination_instance.to_dict() -# create an instance of InteracDestination from a dict -interac_destination_from_dict = InteracDestination.from_dict(interac_destination_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBJbnRlcmFjRGVzdGluYXRpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgKipzdHIqKiB8ICB8IAoqKmFkZHJlc3MqKiB8IFsqKkludGVyYWNBZGRyZXNzKipdKEludGVyYWNBZGRyZXNzLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaW50ZXJhY19kZXN0aW5hdGlvbiBpbXBvcnQgSW50ZXJhY0Rlc3RpbmF0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJbnRlcmFjRGVzdGluYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCmludGVyYWNfZGVzdGluYXRpb25faW5zdGFuY2UgPSBJbnRlcmFjRGVzdGluYXRpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoSW50ZXJhY0Rlc3RpbmF0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmludGVyYWNfZGVzdGluYXRpb25fZGljdCA9IGludGVyYWNfZGVzdGluYXRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEludGVyYWNEZXN0aW5hdGlvbiBmcm9tIGEgZGljdAppbnRlcmFjX2Rlc3RpbmF0aW9uX2Zyb21fZGljdCA9IEludGVyYWNEZXN0aW5hdGlvbi5mcm9tX2RpY3QoaW50ZXJhY19kZXN0aW5hdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/InteracPaymentInfo.md b/docs/InteracPaymentInfo.md index b9f38cd1..f8146cd6 100644 --- a/docs/InteracPaymentInfo.md +++ b/docs/InteracPaymentInfo.md @@ -1,37 +1 @@ -# InteracPaymentInfo - -Interac e-Transfer payment information for Canadian dollar transfers - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**rail** | **str** | The payment rail type for Interac transfers | -**addressing_system** | **str** | The addressing system used for Interac transfers | -**account_holder_given_name** | **str** | The given name (first name) of the account holder | -**account_holder_surname** | **str** | The surname (last name) of the account holder | -**country** | **str** | The country for the transfer (ISO 3166-1 alpha-2 code) | -**recipient_handle_type** | **str** | The type of recipient handler being used | -**recipient_handle_value** | **str** | Email address registered for Interac e-Transfer | -**message** | **str** | The message to be sent to the recipient | - -## Example - -```python -from fireblocks.models.interac_payment_info import InteracPaymentInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of InteracPaymentInfo from a JSON string -interac_payment_info_instance = InteracPaymentInfo.from_json(json) -# print the JSON string representation of the object -print(InteracPaymentInfo.to_json()) - -# convert the object into a dict -interac_payment_info_dict = interac_payment_info_instance.to_dict() -# create an instance of InteracPaymentInfo from a dict -interac_payment_info_from_dict = InteracPaymentInfo.from_dict(interac_payment_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBJbnRlcmFjUGF5bWVudEluZm8KCkludGVyYWMgZS1UcmFuc2ZlciBwYXltZW50IGluZm9ybWF0aW9uIGZvciBDYW5hZGlhbiBkb2xsYXIgdHJhbnNmZXJzCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcmFpbCoqIHwgKipzdHIqKiB8IFRoZSBwYXltZW50IHJhaWwgdHlwZSBmb3IgSW50ZXJhYyB0cmFuc2ZlcnMgfCAKKiphZGRyZXNzaW5nX3N5c3RlbSoqIHwgKipzdHIqKiB8IFRoZSBhZGRyZXNzaW5nIHN5c3RlbSB1c2VkIGZvciBJbnRlcmFjIHRyYW5zZmVycyB8IAoqKmFjY291bnRfaG9sZGVyX2dpdmVuX25hbWUqKiB8ICoqc3RyKiogfCBUaGUgZ2l2ZW4gbmFtZSAoZmlyc3QgbmFtZSkgb2YgdGhlIGFjY291bnQgaG9sZGVyIHwgCioqYWNjb3VudF9ob2xkZXJfc3VybmFtZSoqIHwgKipzdHIqKiB8IFRoZSBzdXJuYW1lIChsYXN0IG5hbWUpIG9mIHRoZSBhY2NvdW50IGhvbGRlciB8IAoqKmNvdW50cnkqKiB8ICoqc3RyKiogfCBUaGUgY291bnRyeSBmb3IgdGhlIHRyYW5zZmVyIChJU08gMzE2Ni0xIGFscGhhLTIgY29kZSkgfCAKKipyZWNpcGllbnRfaGFuZGxlX3R5cGUqKiB8ICoqc3RyKiogfCBUaGUgdHlwZSBvZiByZWNpcGllbnQgaGFuZGxlciBiZWluZyB1c2VkIHwgCioqcmVjaXBpZW50X2hhbmRsZV92YWx1ZSoqIHwgKipzdHIqKiB8IEVtYWlsIGFkZHJlc3MgcmVnaXN0ZXJlZCBmb3IgSW50ZXJhYyBlLVRyYW5zZmVyIHwgCioqbWVzc2FnZSoqIHwgKipzdHIqKiB8IFRoZSBtZXNzYWdlIHRvIGJlIHNlbnQgdG8gdGhlIHJlY2lwaWVudCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaW50ZXJhY19wYXltZW50X2luZm8gaW1wb3J0IEludGVyYWNQYXltZW50SW5mbwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgSW50ZXJhY1BheW1lbnRJbmZvIGZyb20gYSBKU09OIHN0cmluZwppbnRlcmFjX3BheW1lbnRfaW5mb19pbnN0YW5jZSA9IEludGVyYWNQYXltZW50SW5mby5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChJbnRlcmFjUGF5bWVudEluZm8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKaW50ZXJhY19wYXltZW50X2luZm9fZGljdCA9IGludGVyYWNfcGF5bWVudF9pbmZvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJbnRlcmFjUGF5bWVudEluZm8gZnJvbSBhIGRpY3QKaW50ZXJhY19wYXltZW50X2luZm9fZnJvbV9kaWN0ID0gSW50ZXJhY1BheW1lbnRJbmZvLmZyb21fZGljdChpbnRlcmFjX3BheW1lbnRfaW5mb19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/InternalReference.md b/docs/InternalReference.md index 27ff9a9c..5127426b 100644 --- a/docs/InternalReference.md +++ b/docs/InternalReference.md @@ -1,30 +1 @@ -# InternalReference - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**PeerType**](PeerType.md) | | -**account_id** | **str** | | - -## Example - -```python -from fireblocks.models.internal_reference import InternalReference - -# TODO update the JSON string below -json = "{}" -# create an instance of InternalReference from a JSON string -internal_reference_instance = InternalReference.from_json(json) -# print the JSON string representation of the object -print(InternalReference.to_json()) - -# convert the object into a dict -internal_reference_dict = internal_reference_instance.to_dict() -# create an instance of InternalReference from a dict -internal_reference_from_dict = InternalReference.from_dict(internal_reference_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBJbnRlcm5hbFJlZmVyZW5jZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eXBlKiogfCBbKipQZWVyVHlwZSoqXShQZWVyVHlwZS5tZCkgfCAgfCAKKiphY2NvdW50X2lkKiogfCAqKnN0cioqIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5pbnRlcm5hbF9yZWZlcmVuY2UgaW1wb3J0IEludGVybmFsUmVmZXJlbmNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJbnRlcm5hbFJlZmVyZW5jZSBmcm9tIGEgSlNPTiBzdHJpbmcKaW50ZXJuYWxfcmVmZXJlbmNlX2luc3RhbmNlID0gSW50ZXJuYWxSZWZlcmVuY2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoSW50ZXJuYWxSZWZlcmVuY2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKaW50ZXJuYWxfcmVmZXJlbmNlX2RpY3QgPSBpbnRlcm5hbF9yZWZlcmVuY2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEludGVybmFsUmVmZXJlbmNlIGZyb20gYSBkaWN0CmludGVybmFsX3JlZmVyZW5jZV9mcm9tX2RpY3QgPSBJbnRlcm5hbFJlZmVyZW5jZS5mcm9tX2RpY3QoaW50ZXJuYWxfcmVmZXJlbmNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/InternalTransferAddress.md b/docs/InternalTransferAddress.md index 2f7414dd..5cccac7b 100644 --- a/docs/InternalTransferAddress.md +++ b/docs/InternalTransferAddress.md @@ -1,30 +1 @@ -# InternalTransferAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**external_account_id** | **str** | The provider's identifier for the external account. This enables the user to fund the account externally (outside of Fireblocks) if needed. | [optional] -**account_id** | **str** | The Fireblocks account ID where the user should deposit the funds. | - -## Example - -```python -from fireblocks.models.internal_transfer_address import InternalTransferAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of InternalTransferAddress from a JSON string -internal_transfer_address_instance = InternalTransferAddress.from_json(json) -# print the JSON string representation of the object -print(InternalTransferAddress.to_json()) - -# convert the object into a dict -internal_transfer_address_dict = internal_transfer_address_instance.to_dict() -# create an instance of InternalTransferAddress from a dict -internal_transfer_address_from_dict = InternalTransferAddress.from_dict(internal_transfer_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBJbnRlcm5hbFRyYW5zZmVyQWRkcmVzcwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipleHRlcm5hbF9hY2NvdW50X2lkKiogfCAqKnN0cioqIHwgVGhlIHByb3ZpZGVyJiMzOTtzIGlkZW50aWZpZXIgZm9yIHRoZSBleHRlcm5hbCBhY2NvdW50LiBUaGlzIGVuYWJsZXMgdGhlIHVzZXIgdG8gZnVuZCB0aGUgYWNjb3VudCBleHRlcm5hbGx5IChvdXRzaWRlIG9mIEZpcmVibG9ja3MpIGlmIG5lZWRlZC4gfCBbb3B0aW9uYWxdIAoqKmFjY291bnRfaWQqKiB8ICoqc3RyKiogfCBUaGUgRmlyZWJsb2NrcyBhY2NvdW50IElEIHdoZXJlIHRoZSB1c2VyIHNob3VsZCBkZXBvc2l0IHRoZSBmdW5kcy4gfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmludGVybmFsX3RyYW5zZmVyX2FkZHJlc3MgaW1wb3J0IEludGVybmFsVHJhbnNmZXJBZGRyZXNzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJbnRlcm5hbFRyYW5zZmVyQWRkcmVzcyBmcm9tIGEgSlNPTiBzdHJpbmcKaW50ZXJuYWxfdHJhbnNmZXJfYWRkcmVzc19pbnN0YW5jZSA9IEludGVybmFsVHJhbnNmZXJBZGRyZXNzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEludGVybmFsVHJhbnNmZXJBZGRyZXNzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmludGVybmFsX3RyYW5zZmVyX2FkZHJlc3NfZGljdCA9IGludGVybmFsX3RyYW5zZmVyX2FkZHJlc3NfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEludGVybmFsVHJhbnNmZXJBZGRyZXNzIGZyb20gYSBkaWN0CmludGVybmFsX3RyYW5zZmVyX2FkZHJlc3NfZnJvbV9kaWN0ID0gSW50ZXJuYWxUcmFuc2ZlckFkZHJlc3MuZnJvbV9kaWN0KGludGVybmFsX3RyYW5zZmVyX2FkZHJlc3NfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/InternalTransferDestination.md b/docs/InternalTransferDestination.md index 41e8b9a7..37f010d9 100644 --- a/docs/InternalTransferDestination.md +++ b/docs/InternalTransferDestination.md @@ -1,30 +1 @@ -# InternalTransferDestination - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | -**address** | [**InternalTransferAddress**](InternalTransferAddress.md) | | [optional] - -## Example - -```python -from fireblocks.models.internal_transfer_destination import InternalTransferDestination - -# TODO update the JSON string below -json = "{}" -# create an instance of InternalTransferDestination from a JSON string -internal_transfer_destination_instance = InternalTransferDestination.from_json(json) -# print the JSON string representation of the object -print(InternalTransferDestination.to_json()) - -# convert the object into a dict -internal_transfer_destination_dict = internal_transfer_destination_instance.to_dict() -# create an instance of InternalTransferDestination from a dict -internal_transfer_destination_from_dict = InternalTransferDestination.from_dict(internal_transfer_destination_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBJbnRlcm5hbFRyYW5zZmVyRGVzdGluYXRpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgKipzdHIqKiB8ICB8IAoqKmFkZHJlc3MqKiB8IFsqKkludGVybmFsVHJhbnNmZXJBZGRyZXNzKipdKEludGVybmFsVHJhbnNmZXJBZGRyZXNzLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5pbnRlcm5hbF90cmFuc2Zlcl9kZXN0aW5hdGlvbiBpbXBvcnQgSW50ZXJuYWxUcmFuc2ZlckRlc3RpbmF0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJbnRlcm5hbFRyYW5zZmVyRGVzdGluYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCmludGVybmFsX3RyYW5zZmVyX2Rlc3RpbmF0aW9uX2luc3RhbmNlID0gSW50ZXJuYWxUcmFuc2ZlckRlc3RpbmF0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KEludGVybmFsVHJhbnNmZXJEZXN0aW5hdGlvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAppbnRlcm5hbF90cmFuc2Zlcl9kZXN0aW5hdGlvbl9kaWN0ID0gaW50ZXJuYWxfdHJhbnNmZXJfZGVzdGluYXRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEludGVybmFsVHJhbnNmZXJEZXN0aW5hdGlvbiBmcm9tIGEgZGljdAppbnRlcm5hbF90cmFuc2Zlcl9kZXN0aW5hdGlvbl9mcm9tX2RpY3QgPSBJbnRlcm5hbFRyYW5zZmVyRGVzdGluYXRpb24uZnJvbV9kaWN0KGludGVybmFsX3RyYW5zZmVyX2Rlc3RpbmF0aW9uX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/InternalTransferResponse.md b/docs/InternalTransferResponse.md index 71243046..4cceb45f 100644 --- a/docs/InternalTransferResponse.md +++ b/docs/InternalTransferResponse.md @@ -1,30 +1 @@ -# InternalTransferResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**success** | **bool** | Indicates whether the transfer was successful | -**id** | **str** | The transaction ID of the internal transfer | [optional] - -## Example - -```python -from fireblocks.models.internal_transfer_response import InternalTransferResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of InternalTransferResponse from a JSON string -internal_transfer_response_instance = InternalTransferResponse.from_json(json) -# print the JSON string representation of the object -print(InternalTransferResponse.to_json()) - -# convert the object into a dict -internal_transfer_response_dict = internal_transfer_response_instance.to_dict() -# create an instance of InternalTransferResponse from a dict -internal_transfer_response_from_dict = InternalTransferResponse.from_dict(internal_transfer_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBJbnRlcm5hbFRyYW5zZmVyUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3VjY2VzcyoqIHwgKipib29sKiogfCBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdHJhbnNmZXIgd2FzIHN1Y2Nlc3NmdWwgfCAKKippZCoqIHwgKipzdHIqKiB8IFRoZSB0cmFuc2FjdGlvbiBJRCBvZiB0aGUgaW50ZXJuYWwgdHJhbnNmZXIgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaW50ZXJuYWxfdHJhbnNmZXJfcmVzcG9uc2UgaW1wb3J0IEludGVybmFsVHJhbnNmZXJSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgSW50ZXJuYWxUcmFuc2ZlclJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwppbnRlcm5hbF90cmFuc2Zlcl9yZXNwb25zZV9pbnN0YW5jZSA9IEludGVybmFsVHJhbnNmZXJSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChJbnRlcm5hbFRyYW5zZmVyUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKaW50ZXJuYWxfdHJhbnNmZXJfcmVzcG9uc2VfZGljdCA9IGludGVybmFsX3RyYW5zZmVyX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJbnRlcm5hbFRyYW5zZmVyUmVzcG9uc2UgZnJvbSBhIGRpY3QKaW50ZXJuYWxfdHJhbnNmZXJfcmVzcG9uc2VfZnJvbV9kaWN0ID0gSW50ZXJuYWxUcmFuc2ZlclJlc3BvbnNlLmZyb21fZGljdChpbnRlcm5hbF90cmFuc2Zlcl9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/InternalWalletsApi.md b/docs/InternalWalletsApi.md index 7782a661..89bc506a 100644 --- a/docs/InternalWalletsApi.md +++ b/docs/InternalWalletsApi.md @@ -1,692 +1 @@ -# fireblocks.InternalWalletsApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**create_internal_wallet**](InternalWalletsApi.md#create_internal_wallet) | **POST** /internal_wallets | Create an internal wallet -[**create_internal_wallet_asset**](InternalWalletsApi.md#create_internal_wallet_asset) | **POST** /internal_wallets/{walletId}/{assetId} | Add an asset to an internal wallet -[**delete_internal_wallet**](InternalWalletsApi.md#delete_internal_wallet) | **DELETE** /internal_wallets/{walletId} | Delete an internal wallet -[**delete_internal_wallet_asset**](InternalWalletsApi.md#delete_internal_wallet_asset) | **DELETE** /internal_wallets/{walletId}/{assetId} | Delete a whitelisted address -[**get_internal_wallet**](InternalWalletsApi.md#get_internal_wallet) | **GET** /internal_wallets/{walletId} | Get assets for internal wallet -[**get_internal_wallet_asset**](InternalWalletsApi.md#get_internal_wallet_asset) | **GET** /internal_wallets/{walletId}/{assetId} | Get an asset from an internal wallet -[**get_internal_wallet_assets_paginated**](InternalWalletsApi.md#get_internal_wallet_assets_paginated) | **GET** /internal_wallets/{walletId}/assets | List assets in an internal wallet (Paginated) -[**get_internal_wallets**](InternalWalletsApi.md#get_internal_wallets) | **GET** /internal_wallets | List internal wallets -[**set_customer_ref_id_for_internal_wallet**](InternalWalletsApi.md#set_customer_ref_id_for_internal_wallet) | **POST** /internal_wallets/{walletId}/set_customer_ref_id | Set an AML/KYT customer reference ID for internal wallet - - -# **create_internal_wallet** -> UnmanagedWallet create_internal_wallet(idempotency_key=idempotency_key, create_wallet_request=create_wallet_request) - -Create an internal wallet - -Creates a new internal wallet with the requested name. -Learn more about Whitelisted Internal Addresses [here](https://developers.fireblocks.com/docs/whitelist-addresses#internal-wallets) - -### Example - - -```python -from fireblocks.models.create_wallet_request import CreateWalletRequest -from fireblocks.models.unmanaged_wallet import UnmanagedWallet -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - create_wallet_request = fireblocks.CreateWalletRequest() # CreateWalletRequest | (optional) - - try: - # Create an internal wallet - api_response = fireblocks.internal_wallets.create_internal_wallet(idempotency_key=idempotency_key, create_wallet_request=create_wallet_request).result() - print("The response of InternalWalletsApi->create_internal_wallet:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling InternalWalletsApi->create_internal_wallet: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **create_wallet_request** | [**CreateWalletRequest**](CreateWalletRequest.md)| | [optional] - -### Return type - -[**UnmanagedWallet**](UnmanagedWallet.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A new wallet object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_internal_wallet_asset** -> WalletAsset create_internal_wallet_asset(wallet_id, asset_id, idempotency_key=idempotency_key, create_internal_wallet_asset_request=create_internal_wallet_asset_request) - -Add an asset to an internal wallet - -Adds an asset to an existing internal wallet. - -### Example - - -```python -from fireblocks.models.create_internal_wallet_asset_request import CreateInternalWalletAssetRequest -from fireblocks.models.wallet_asset import WalletAsset -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = 'wallet_id_example' # str | The ID of the wallet - asset_id = 'asset_id_example' # str | The ID of the asset to add - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - create_internal_wallet_asset_request = fireblocks.CreateInternalWalletAssetRequest() # CreateInternalWalletAssetRequest | (optional) - - try: - # Add an asset to an internal wallet - api_response = fireblocks.internal_wallets.create_internal_wallet_asset(wallet_id, asset_id, idempotency_key=idempotency_key, create_internal_wallet_asset_request=create_internal_wallet_asset_request).result() - print("The response of InternalWalletsApi->create_internal_wallet_asset:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling InternalWalletsApi->create_internal_wallet_asset: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| The ID of the wallet | - **asset_id** | **str**| The ID of the asset to add | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **create_internal_wallet_asset_request** | [**CreateInternalWalletAssetRequest**](CreateInternalWalletAssetRequest.md)| | [optional] - -### Return type - -[**WalletAsset**](WalletAsset.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A Wallet Asset object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **delete_internal_wallet** -> delete_internal_wallet(wallet_id) - -Delete an internal wallet - -Deletes an internal wallet by ID. - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = 'wallet_id_example' # str | The ID of the wallet to delete - - try: - # Delete an internal wallet - fireblocks.internal_wallets.delete_internal_wallet(wallet_id).result() - except Exception as e: - print("Exception when calling InternalWalletsApi->delete_internal_wallet: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| The ID of the wallet to delete | - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **delete_internal_wallet_asset** -> delete_internal_wallet_asset(wallet_id, asset_id) - -Delete a whitelisted address - -Deletes a whitelisted address (for an asset) from an internal wallet. - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = 'wallet_id_example' # str | The ID of the wallet - asset_id = 'asset_id_example' # str | The ID of the asset to delete - - try: - # Delete a whitelisted address - fireblocks.internal_wallets.delete_internal_wallet_asset(wallet_id, asset_id).result() - except Exception as e: - print("Exception when calling InternalWalletsApi->delete_internal_wallet_asset: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| The ID of the wallet | - **asset_id** | **str**| The ID of the asset to delete | - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_internal_wallet** -> UnmanagedWallet get_internal_wallet(wallet_id) - -Get assets for internal wallet - -Returns information for an internal wallet. - -### Example - - -```python -from fireblocks.models.unmanaged_wallet import UnmanagedWallet -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = 'wallet_id_example' # str | The ID of the wallet to return - - try: - # Get assets for internal wallet - api_response = fireblocks.internal_wallets.get_internal_wallet(wallet_id).result() - print("The response of InternalWalletsApi->get_internal_wallet:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling InternalWalletsApi->get_internal_wallet: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| The ID of the wallet to return | - -### Return type - -[**UnmanagedWallet**](UnmanagedWallet.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A Wallet object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_internal_wallet_asset** -> WalletAsset get_internal_wallet_asset(wallet_id, asset_id) - -Get an asset from an internal wallet - -Returns information for an asset in an internal wallet. - -### Example - - -```python -from fireblocks.models.wallet_asset import WalletAsset -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = 'wallet_id_example' # str | The ID of the wallet - asset_id = 'asset_id_example' # str | The ID of the asset to return - - try: - # Get an asset from an internal wallet - api_response = fireblocks.internal_wallets.get_internal_wallet_asset(wallet_id, asset_id).result() - print("The response of InternalWalletsApi->get_internal_wallet_asset:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling InternalWalletsApi->get_internal_wallet_asset: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| The ID of the wallet | - **asset_id** | **str**| The ID of the asset to return | - -### Return type - -[**WalletAsset**](WalletAsset.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A Wallet Asset object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_internal_wallet_assets_paginated** -> PaginatedAssetsResponse get_internal_wallet_assets_paginated(wallet_id, page_size=page_size, page_cursor=page_cursor) - -List assets in an internal wallet (Paginated) - -Returns a paginated response of assets in an internal wallet. - -### Example - - -```python -from fireblocks.models.paginated_assets_response import PaginatedAssetsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = 'wallet_id_example' # str | The ID of the internal wallet to return assets for - page_size = 50 # float | (optional) (default to 50) - page_cursor = 'page_cursor_example' # str | (optional) - - try: - # List assets in an internal wallet (Paginated) - api_response = fireblocks.internal_wallets.get_internal_wallet_assets_paginated(wallet_id, page_size=page_size, page_cursor=page_cursor).result() - print("The response of InternalWalletsApi->get_internal_wallet_assets_paginated:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling InternalWalletsApi->get_internal_wallet_assets_paginated: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| The ID of the internal wallet to return assets for | - **page_size** | **float**| | [optional] [default to 50] - **page_cursor** | **str**| | [optional] - -### Return type - -[**PaginatedAssetsResponse**](PaginatedAssetsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A paginated response of assets for the internal wallet | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_internal_wallets** -> List[UnmanagedWallet] get_internal_wallets() - -List internal wallets - -Gets a list of internal wallets. - - -### Example - - -```python -from fireblocks.models.unmanaged_wallet import UnmanagedWallet -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # List internal wallets - api_response = fireblocks.internal_wallets.get_internal_wallets().result() - print("The response of InternalWalletsApi->get_internal_wallets:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling InternalWalletsApi->get_internal_wallets: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**List[UnmanagedWallet]**](UnmanagedWallet.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A list of internal wallets | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_customer_ref_id_for_internal_wallet** -> set_customer_ref_id_for_internal_wallet(wallet_id, set_customer_ref_id_request, idempotency_key=idempotency_key) - -Set an AML/KYT customer reference ID for internal wallet - -Sets an AML/KYT customer reference ID for the specific internal wallet. - -### Example - - -```python -from fireblocks.models.set_customer_ref_id_request import SetCustomerRefIdRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - wallet_id = 'wallet_id_example' # str | The wallet ID - set_customer_ref_id_request = fireblocks.SetCustomerRefIdRequest() # SetCustomerRefIdRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Set an AML/KYT customer reference ID for internal wallet - fireblocks.internal_wallets.set_customer_ref_id_for_internal_wallet(wallet_id, set_customer_ref_id_request, idempotency_key=idempotency_key).result() - except Exception as e: - print("Exception when calling InternalWalletsApi->set_customer_ref_id_for_internal_wallet: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **wallet_id** | **str**| The wallet ID | - **set_customer_ref_id_request** | [**SetCustomerRefIdRequest**](SetCustomerRefIdRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLkludGVybmFsV2FsbGV0c0FwaQoKQWxsIFVSSXMgYXJlIHJlbGF0aXZlIHRvICpodHRwczovL2FwaS5maXJlYmxvY2tzLmlvL3YxKgoKTWV0aG9kIHwgSFRUUCByZXF1ZXN0IHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tClsqKmNyZWF0ZV9pbnRlcm5hbF93YWxsZXQqKl0oSW50ZXJuYWxXYWxsZXRzQXBpLm1kI2NyZWF0ZV9pbnRlcm5hbF93YWxsZXQpIHwgKipQT1NUKiogL2ludGVybmFsX3dhbGxldHMgfCBDcmVhdGUgYW4gaW50ZXJuYWwgd2FsbGV0ClsqKmNyZWF0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXQqKl0oSW50ZXJuYWxXYWxsZXRzQXBpLm1kI2NyZWF0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXQpIHwgKipQT1NUKiogL2ludGVybmFsX3dhbGxldHMve3dhbGxldElkfS97YXNzZXRJZH0gfCBBZGQgYW4gYXNzZXQgdG8gYW4gaW50ZXJuYWwgd2FsbGV0ClsqKmRlbGV0ZV9pbnRlcm5hbF93YWxsZXQqKl0oSW50ZXJuYWxXYWxsZXRzQXBpLm1kI2RlbGV0ZV9pbnRlcm5hbF93YWxsZXQpIHwgKipERUxFVEUqKiAvaW50ZXJuYWxfd2FsbGV0cy97d2FsbGV0SWR9IHwgRGVsZXRlIGFuIGludGVybmFsIHdhbGxldApbKipkZWxldGVfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0KipdKEludGVybmFsV2FsbGV0c0FwaS5tZCNkZWxldGVfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0KSB8ICoqREVMRVRFKiogL2ludGVybmFsX3dhbGxldHMve3dhbGxldElkfS97YXNzZXRJZH0gfCBEZWxldGUgYSB3aGl0ZWxpc3RlZCBhZGRyZXNzClsqKmdldF9pbnRlcm5hbF93YWxsZXQqKl0oSW50ZXJuYWxXYWxsZXRzQXBpLm1kI2dldF9pbnRlcm5hbF93YWxsZXQpIHwgKipHRVQqKiAvaW50ZXJuYWxfd2FsbGV0cy97d2FsbGV0SWR9IHwgR2V0IGFzc2V0cyBmb3IgaW50ZXJuYWwgd2FsbGV0ClsqKmdldF9pbnRlcm5hbF93YWxsZXRfYXNzZXQqKl0oSW50ZXJuYWxXYWxsZXRzQXBpLm1kI2dldF9pbnRlcm5hbF93YWxsZXRfYXNzZXQpIHwgKipHRVQqKiAvaW50ZXJuYWxfd2FsbGV0cy97d2FsbGV0SWR9L3thc3NldElkfSB8IEdldCBhbiBhc3NldCBmcm9tIGFuIGludGVybmFsIHdhbGxldApbKipnZXRfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0c19wYWdpbmF0ZWQqKl0oSW50ZXJuYWxXYWxsZXRzQXBpLm1kI2dldF9pbnRlcm5hbF93YWxsZXRfYXNzZXRzX3BhZ2luYXRlZCkgfCAqKkdFVCoqIC9pbnRlcm5hbF93YWxsZXRzL3t3YWxsZXRJZH0vYXNzZXRzIHwgTGlzdCBhc3NldHMgaW4gYW4gaW50ZXJuYWwgd2FsbGV0IChQYWdpbmF0ZWQpClsqKmdldF9pbnRlcm5hbF93YWxsZXRzKipdKEludGVybmFsV2FsbGV0c0FwaS5tZCNnZXRfaW50ZXJuYWxfd2FsbGV0cykgfCAqKkdFVCoqIC9pbnRlcm5hbF93YWxsZXRzIHwgTGlzdCBpbnRlcm5hbCB3YWxsZXRzClsqKnNldF9jdXN0b21lcl9yZWZfaWRfZm9yX2ludGVybmFsX3dhbGxldCoqXShJbnRlcm5hbFdhbGxldHNBcGkubWQjc2V0X2N1c3RvbWVyX3JlZl9pZF9mb3JfaW50ZXJuYWxfd2FsbGV0KSB8ICoqUE9TVCoqIC9pbnRlcm5hbF93YWxsZXRzL3t3YWxsZXRJZH0vc2V0X2N1c3RvbWVyX3JlZl9pZCB8IFNldCBhbiBBTUwvS1lUIGN1c3RvbWVyIHJlZmVyZW5jZSBJRCBmb3IgaW50ZXJuYWwgd2FsbGV0CgoKIyAqKmNyZWF0ZV9pbnRlcm5hbF93YWxsZXQqKgo+IFVubWFuYWdlZFdhbGxldCBjcmVhdGVfaW50ZXJuYWxfd2FsbGV0KGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksIGNyZWF0ZV93YWxsZXRfcmVxdWVzdD1jcmVhdGVfd2FsbGV0X3JlcXVlc3QpCgpDcmVhdGUgYW4gaW50ZXJuYWwgd2FsbGV0CgpDcmVhdGVzIGEgbmV3IGludGVybmFsIHdhbGxldCB3aXRoIHRoZSByZXF1ZXN0ZWQgbmFtZS4KTGVhcm4gbW9yZSBhYm91dCBXaGl0ZWxpc3RlZCBJbnRlcm5hbCBBZGRyZXNzZXMgW2hlcmVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL3doaXRlbGlzdC1hZGRyZXNzZXMjaW50ZXJuYWwtd2FsbGV0cykKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3dhbGxldF9yZXF1ZXN0IGltcG9ydCBDcmVhdGVXYWxsZXRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudW5tYW5hZ2VkX3dhbGxldCBpbXBvcnQgVW5tYW5hZ2VkV2FsbGV0CmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKICAgIGNyZWF0ZV93YWxsZXRfcmVxdWVzdCA9IGZpcmVibG9ja3MuQ3JlYXRlV2FsbGV0UmVxdWVzdCgpICMgQ3JlYXRlV2FsbGV0UmVxdWVzdCB8ICAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ3JlYXRlIGFuIGludGVybmFsIHdhbGxldAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuaW50ZXJuYWxfd2FsbGV0cy5jcmVhdGVfaW50ZXJuYWxfd2FsbGV0KGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksIGNyZWF0ZV93YWxsZXRfcmVxdWVzdD1jcmVhdGVfd2FsbGV0X3JlcXVlc3QpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBJbnRlcm5hbFdhbGxldHNBcGktPmNyZWF0ZV9pbnRlcm5hbF93YWxsZXQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgSW50ZXJuYWxXYWxsZXRzQXBpLT5jcmVhdGVfaW50ZXJuYWxfd2FsbGV0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAogKipjcmVhdGVfd2FsbGV0X3JlcXVlc3QqKiB8IFsqKkNyZWF0ZVdhbGxldFJlcXVlc3QqKl0oQ3JlYXRlV2FsbGV0UmVxdWVzdC5tZCl8ICB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlVubWFuYWdlZFdhbGxldCoqXShVbm1hbmFnZWRXYWxsZXQubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgbmV3IHdhbGxldCBvYmplY3QgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmNyZWF0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXQqKgo+IFdhbGxldEFzc2V0IGNyZWF0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXQod2FsbGV0X2lkLCBhc3NldF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwgY3JlYXRlX2ludGVybmFsX3dhbGxldF9hc3NldF9yZXF1ZXN0PWNyZWF0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXRfcmVxdWVzdCkKCkFkZCBhbiBhc3NldCB0byBhbiBpbnRlcm5hbCB3YWxsZXQKCkFkZHMgYW4gYXNzZXQgdG8gYW4gZXhpc3RpbmcgaW50ZXJuYWwgd2FsbGV0LgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0X3JlcXVlc3QgaW1wb3J0IENyZWF0ZUludGVybmFsV2FsbGV0QXNzZXRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud2FsbGV0X2Fzc2V0IGltcG9ydCBXYWxsZXRBc3NldApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB3YWxsZXRfaWQgPSAnd2FsbGV0X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSB3YWxsZXQKICAgIGFzc2V0X2lkID0gJ2Fzc2V0X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBhc3NldCB0byBhZGQKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKICAgIGNyZWF0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXRfcmVxdWVzdCA9IGZpcmVibG9ja3MuQ3JlYXRlSW50ZXJuYWxXYWxsZXRBc3NldFJlcXVlc3QoKSAjIENyZWF0ZUludGVybmFsV2FsbGV0QXNzZXRSZXF1ZXN0IHwgIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBBZGQgYW4gYXNzZXQgdG8gYW4gaW50ZXJuYWwgd2FsbGV0CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5pbnRlcm5hbF93YWxsZXRzLmNyZWF0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXQod2FsbGV0X2lkLCBhc3NldF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwgY3JlYXRlX2ludGVybmFsX3dhbGxldF9hc3NldF9yZXF1ZXN0PWNyZWF0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXRfcmVxdWVzdCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEludGVybmFsV2FsbGV0c0FwaS0+Y3JlYXRlX2ludGVybmFsX3dhbGxldF9hc3NldDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBJbnRlcm5hbFdhbGxldHNBcGktPmNyZWF0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKndhbGxldF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSB3YWxsZXQgfCAKICoqYXNzZXRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgYXNzZXQgdG8gYWRkIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCiAqKmNyZWF0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXRfcmVxdWVzdCoqIHwgWyoqQ3JlYXRlSW50ZXJuYWxXYWxsZXRBc3NldFJlcXVlc3QqKl0oQ3JlYXRlSW50ZXJuYWxXYWxsZXRBc3NldFJlcXVlc3QubWQpfCAgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipXYWxsZXRBc3NldCoqXShXYWxsZXRBc3NldC5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQSBXYWxsZXQgQXNzZXQgb2JqZWN0IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipkZWxldGVfaW50ZXJuYWxfd2FsbGV0KioKPiBkZWxldGVfaW50ZXJuYWxfd2FsbGV0KHdhbGxldF9pZCkKCkRlbGV0ZSBhbiBpbnRlcm5hbCB3YWxsZXQKCkRlbGV0ZXMgYW4gaW50ZXJuYWwgd2FsbGV0IGJ5IElELgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHdhbGxldF9pZCA9ICd3YWxsZXRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIHdhbGxldCB0byBkZWxldGUKCiAgICB0cnk6CiAgICAgICAgIyBEZWxldGUgYW4gaW50ZXJuYWwgd2FsbGV0CiAgICAgICAgZmlyZWJsb2Nrcy5pbnRlcm5hbF93YWxsZXRzLmRlbGV0ZV9pbnRlcm5hbF93YWxsZXQod2FsbGV0X2lkKS5yZXN1bHQoKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEludGVybmFsV2FsbGV0c0FwaS0+ZGVsZXRlX2ludGVybmFsX3dhbGxldDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqd2FsbGV0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIHdhbGxldCB0byBkZWxldGUgfCAKCiMjIyBSZXR1cm4gdHlwZQoKdm9pZCAoZW1wdHkgcmVzcG9uc2UgYm9keSkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDEqKiB8IE9LIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipkZWxldGVfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0KioKPiBkZWxldGVfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0KHdhbGxldF9pZCwgYXNzZXRfaWQpCgpEZWxldGUgYSB3aGl0ZWxpc3RlZCBhZGRyZXNzCgpEZWxldGVzIGEgd2hpdGVsaXN0ZWQgYWRkcmVzcyAoZm9yIGFuIGFzc2V0KSBmcm9tIGFuIGludGVybmFsIHdhbGxldC4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB3YWxsZXRfaWQgPSAnd2FsbGV0X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSB3YWxsZXQKICAgIGFzc2V0X2lkID0gJ2Fzc2V0X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBhc3NldCB0byBkZWxldGUKCiAgICB0cnk6CiAgICAgICAgIyBEZWxldGUgYSB3aGl0ZWxpc3RlZCBhZGRyZXNzCiAgICAgICAgZmlyZWJsb2Nrcy5pbnRlcm5hbF93YWxsZXRzLmRlbGV0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXQod2FsbGV0X2lkLCBhc3NldF9pZCkucmVzdWx0KCkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBJbnRlcm5hbFdhbGxldHNBcGktPmRlbGV0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKndhbGxldF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSB3YWxsZXQgfCAKICoqYXNzZXRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgYXNzZXQgdG8gZGVsZXRlIHwgCgojIyMgUmV0dXJuIHR5cGUKCnZvaWQgKGVtcHR5IHJlc3BvbnNlIGJvZHkpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBPSyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2ludGVybmFsX3dhbGxldCoqCj4gVW5tYW5hZ2VkV2FsbGV0IGdldF9pbnRlcm5hbF93YWxsZXQod2FsbGV0X2lkKQoKR2V0IGFzc2V0cyBmb3IgaW50ZXJuYWwgd2FsbGV0CgpSZXR1cm5zIGluZm9ybWF0aW9uIGZvciBhbiBpbnRlcm5hbCB3YWxsZXQuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVubWFuYWdlZF93YWxsZXQgaW1wb3J0IFVubWFuYWdlZFdhbGxldApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB3YWxsZXRfaWQgPSAnd2FsbGV0X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSB3YWxsZXQgdG8gcmV0dXJuCgogICAgdHJ5OgogICAgICAgICMgR2V0IGFzc2V0cyBmb3IgaW50ZXJuYWwgd2FsbGV0CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5pbnRlcm5hbF93YWxsZXRzLmdldF9pbnRlcm5hbF93YWxsZXQod2FsbGV0X2lkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgSW50ZXJuYWxXYWxsZXRzQXBpLT5nZXRfaW50ZXJuYWxfd2FsbGV0OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEludGVybmFsV2FsbGV0c0FwaS0+Z2V0X2ludGVybmFsX3dhbGxldDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqd2FsbGV0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIHdhbGxldCB0byByZXR1cm4gfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqVW5tYW5hZ2VkV2FsbGV0KipdKFVubWFuYWdlZFdhbGxldC5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgV2FsbGV0IG9iamVjdCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2ludGVybmFsX3dhbGxldF9hc3NldCoqCj4gV2FsbGV0QXNzZXQgZ2V0X2ludGVybmFsX3dhbGxldF9hc3NldCh3YWxsZXRfaWQsIGFzc2V0X2lkKQoKR2V0IGFuIGFzc2V0IGZyb20gYW4gaW50ZXJuYWwgd2FsbGV0CgpSZXR1cm5zIGluZm9ybWF0aW9uIGZvciBhbiBhc3NldCBpbiBhbiBpbnRlcm5hbCB3YWxsZXQuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndhbGxldF9hc3NldCBpbXBvcnQgV2FsbGV0QXNzZXQKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgd2FsbGV0X2lkID0gJ3dhbGxldF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgd2FsbGV0CiAgICBhc3NldF9pZCA9ICdhc3NldF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgYXNzZXQgdG8gcmV0dXJuCgogICAgdHJ5OgogICAgICAgICMgR2V0IGFuIGFzc2V0IGZyb20gYW4gaW50ZXJuYWwgd2FsbGV0CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5pbnRlcm5hbF93YWxsZXRzLmdldF9pbnRlcm5hbF93YWxsZXRfYXNzZXQod2FsbGV0X2lkLCBhc3NldF9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEludGVybmFsV2FsbGV0c0FwaS0+Z2V0X2ludGVybmFsX3dhbGxldF9hc3NldDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBJbnRlcm5hbFdhbGxldHNBcGktPmdldF9pbnRlcm5hbF93YWxsZXRfYXNzZXQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKndhbGxldF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSB3YWxsZXQgfCAKICoqYXNzZXRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgYXNzZXQgdG8gcmV0dXJuIHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKldhbGxldEFzc2V0KipdKFdhbGxldEFzc2V0Lm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQSBXYWxsZXQgQXNzZXQgb2JqZWN0IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0c19wYWdpbmF0ZWQqKgo+IFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlIGdldF9pbnRlcm5hbF93YWxsZXRfYXNzZXRzX3BhZ2luYXRlZCh3YWxsZXRfaWQsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yKQoKTGlzdCBhc3NldHMgaW4gYW4gaW50ZXJuYWwgd2FsbGV0IChQYWdpbmF0ZWQpCgpSZXR1cm5zIGEgcGFnaW5hdGVkIHJlc3BvbnNlIG9mIGFzc2V0cyBpbiBhbiBpbnRlcm5hbCB3YWxsZXQuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhZ2luYXRlZF9hc3NldHNfcmVzcG9uc2UgaW1wb3J0IFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHdhbGxldF9pZCA9ICd3YWxsZXRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGludGVybmFsIHdhbGxldCB0byByZXR1cm4gYXNzZXRzIGZvcgogICAgcGFnZV9zaXplID0gNTAgIyBmbG9hdCB8ICAob3B0aW9uYWwpIChkZWZhdWx0IHRvIDUwKQogICAgcGFnZV9jdXJzb3IgPSAncGFnZV9jdXJzb3JfZXhhbXBsZScgIyBzdHIgfCAgKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIExpc3QgYXNzZXRzIGluIGFuIGludGVybmFsIHdhbGxldCAoUGFnaW5hdGVkKQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MuaW50ZXJuYWxfd2FsbGV0cy5nZXRfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0c19wYWdpbmF0ZWQod2FsbGV0X2lkLCBwYWdlX3NpemU9cGFnZV9zaXplLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvcikucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEludGVybmFsV2FsbGV0c0FwaS0+Z2V0X2ludGVybmFsX3dhbGxldF9hc3NldHNfcGFnaW5hdGVkOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEludGVybmFsV2FsbGV0c0FwaS0+Z2V0X2ludGVybmFsX3dhbGxldF9hc3NldHNfcGFnaW5hdGVkOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip3YWxsZXRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgaW50ZXJuYWwgd2FsbGV0IHRvIHJldHVybiBhc3NldHMgZm9yIHwgCiAqKnBhZ2Vfc2l6ZSoqIHwgKipmbG9hdCoqfCAgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIDUwXQogKipwYWdlX2N1cnNvcioqIHwgKipzdHIqKnwgIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqUGFnaW5hdGVkQXNzZXRzUmVzcG9uc2UqKl0oUGFnaW5hdGVkQXNzZXRzUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBIHBhZ2luYXRlZCByZXNwb25zZSBvZiBhc3NldHMgZm9yIHRoZSBpbnRlcm5hbCB3YWxsZXQgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9pbnRlcm5hbF93YWxsZXRzKioKPiBMaXN0W1VubWFuYWdlZFdhbGxldF0gZ2V0X2ludGVybmFsX3dhbGxldHMoKQoKTGlzdCBpbnRlcm5hbCB3YWxsZXRzCgpHZXRzIGEgbGlzdCBvZiBpbnRlcm5hbCB3YWxsZXRzLgoKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudW5tYW5hZ2VkX3dhbGxldCBpbXBvcnQgVW5tYW5hZ2VkV2FsbGV0CmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKCiAgICB0cnk6CiAgICAgICAgIyBMaXN0IGludGVybmFsIHdhbGxldHMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmludGVybmFsX3dhbGxldHMuZ2V0X2ludGVybmFsX3dhbGxldHMoKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgSW50ZXJuYWxXYWxsZXRzQXBpLT5nZXRfaW50ZXJuYWxfd2FsbGV0czpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBJbnRlcm5hbFdhbGxldHNBcGktPmdldF9pbnRlcm5hbF93YWxsZXRzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKVGhpcyBlbmRwb2ludCBkb2VzIG5vdCBuZWVkIGFueSBwYXJhbWV0ZXIuCgojIyMgUmV0dXJuIHR5cGUKClsqKkxpc3RbVW5tYW5hZ2VkV2FsbGV0XSoqXShVbm1hbmFnZWRXYWxsZXQubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBIGxpc3Qgb2YgaW50ZXJuYWwgd2FsbGV0cyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqc2V0X2N1c3RvbWVyX3JlZl9pZF9mb3JfaW50ZXJuYWxfd2FsbGV0KioKPiBzZXRfY3VzdG9tZXJfcmVmX2lkX2Zvcl9pbnRlcm5hbF93YWxsZXQod2FsbGV0X2lkLCBzZXRfY3VzdG9tZXJfcmVmX2lkX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpTZXQgYW4gQU1ML0tZVCBjdXN0b21lciByZWZlcmVuY2UgSUQgZm9yIGludGVybmFsIHdhbGxldAoKU2V0cyBhbiBBTUwvS1lUIGN1c3RvbWVyIHJlZmVyZW5jZSBJRCBmb3IgdGhlIHNwZWNpZmljIGludGVybmFsIHdhbGxldC4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2N1c3RvbWVyX3JlZl9pZF9yZXF1ZXN0IGltcG9ydCBTZXRDdXN0b21lclJlZklkUmVxdWVzdApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgd2FsbGV0X2lkID0gJ3dhbGxldF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSB3YWxsZXQgSUQKICAgIHNldF9jdXN0b21lcl9yZWZfaWRfcmVxdWVzdCA9IGZpcmVibG9ja3MuU2V0Q3VzdG9tZXJSZWZJZFJlcXVlc3QoKSAjIFNldEN1c3RvbWVyUmVmSWRSZXF1ZXN0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgU2V0IGFuIEFNTC9LWVQgY3VzdG9tZXIgcmVmZXJlbmNlIElEIGZvciBpbnRlcm5hbCB3YWxsZXQKICAgICAgICBmaXJlYmxvY2tzLmludGVybmFsX3dhbGxldHMuc2V0X2N1c3RvbWVyX3JlZl9pZF9mb3JfaW50ZXJuYWxfd2FsbGV0KHdhbGxldF9pZCwgc2V0X2N1c3RvbWVyX3JlZl9pZF9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEludGVybmFsV2FsbGV0c0FwaS0+c2V0X2N1c3RvbWVyX3JlZl9pZF9mb3JfaW50ZXJuYWxfd2FsbGV0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip3YWxsZXRfaWQqKiB8ICoqc3RyKip8IFRoZSB3YWxsZXQgSUQgfCAKICoqc2V0X2N1c3RvbWVyX3JlZl9pZF9yZXF1ZXN0KiogfCBbKipTZXRDdXN0b21lclJlZklkUmVxdWVzdCoqXShTZXRDdXN0b21lclJlZklkUmVxdWVzdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgp2b2lkIChlbXB0eSByZXNwb25zZSBib2R5KQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBPSyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgo= \ No newline at end of file diff --git a/docs/InvalidParamaterValueError.md b/docs/InvalidParamaterValueError.md index a5bd79fc..31b03f22 100644 --- a/docs/InvalidParamaterValueError.md +++ b/docs/InvalidParamaterValueError.md @@ -1,30 +1 @@ -# InvalidParamaterValueError - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Bad request error message | -**code** | **float** | Error code | - -## Example - -```python -from fireblocks.models.invalid_paramater_value_error import InvalidParamaterValueError - -# TODO update the JSON string below -json = "{}" -# create an instance of InvalidParamaterValueError from a JSON string -invalid_paramater_value_error_instance = InvalidParamaterValueError.from_json(json) -# print the JSON string representation of the object -print(InvalidParamaterValueError.to_json()) - -# convert the object into a dict -invalid_paramater_value_error_dict = invalid_paramater_value_error_instance.to_dict() -# create an instance of InvalidParamaterValueError from a dict -invalid_paramater_value_error_from_dict = InvalidParamaterValueError.from_dict(invalid_paramater_value_error_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBJbnZhbGlkUGFyYW1hdGVyVmFsdWVFcnJvcgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiptZXNzYWdlKiogfCAqKnN0cioqIHwgQmFkIHJlcXVlc3QgZXJyb3IgbWVzc2FnZSB8IAoqKmNvZGUqKiB8ICoqZmxvYXQqKiB8IEVycm9yIGNvZGUgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmludmFsaWRfcGFyYW1hdGVyX3ZhbHVlX2Vycm9yIGltcG9ydCBJbnZhbGlkUGFyYW1hdGVyVmFsdWVFcnJvcgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgSW52YWxpZFBhcmFtYXRlclZhbHVlRXJyb3IgZnJvbSBhIEpTT04gc3RyaW5nCmludmFsaWRfcGFyYW1hdGVyX3ZhbHVlX2Vycm9yX2luc3RhbmNlID0gSW52YWxpZFBhcmFtYXRlclZhbHVlRXJyb3IuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoSW52YWxpZFBhcmFtYXRlclZhbHVlRXJyb3IudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKaW52YWxpZF9wYXJhbWF0ZXJfdmFsdWVfZXJyb3JfZGljdCA9IGludmFsaWRfcGFyYW1hdGVyX3ZhbHVlX2Vycm9yX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJbnZhbGlkUGFyYW1hdGVyVmFsdWVFcnJvciBmcm9tIGEgZGljdAppbnZhbGlkX3BhcmFtYXRlcl92YWx1ZV9lcnJvcl9mcm9tX2RpY3QgPSBJbnZhbGlkUGFyYW1hdGVyVmFsdWVFcnJvci5mcm9tX2RpY3QoaW52YWxpZF9wYXJhbWF0ZXJfdmFsdWVfZXJyb3JfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/JobCreated.md b/docs/JobCreated.md index f3c2c445..ec4806c6 100644 --- a/docs/JobCreated.md +++ b/docs/JobCreated.md @@ -1,29 +1 @@ -# JobCreated - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**job_id** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.job_created import JobCreated - -# TODO update the JSON string below -json = "{}" -# create an instance of JobCreated from a JSON string -job_created_instance = JobCreated.from_json(json) -# print the JSON string representation of the object -print(JobCreated.to_json()) - -# convert the object into a dict -job_created_dict = job_created_instance.to_dict() -# create an instance of JobCreated from a dict -job_created_from_dict = JobCreated.from_dict(job_created_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBKb2JDcmVhdGVkCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmpvYl9pZCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqYXBwcm92YWxfcmVxdWVzdF9pZCoqIHwgKipzdHIqKiB8IEFwcHJvdmFsIHJlcXVlc3QgSUQuIFJldHVybmVkIHdoZW4gYSB0YWcgdHJpZ2dlcnMgYW4gYXBwcm92YWwgZmxvdy4gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuam9iX2NyZWF0ZWQgaW1wb3J0IEpvYkNyZWF0ZWQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIEpvYkNyZWF0ZWQgZnJvbSBhIEpTT04gc3RyaW5nCmpvYl9jcmVhdGVkX2luc3RhbmNlID0gSm9iQ3JlYXRlZC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChKb2JDcmVhdGVkLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmpvYl9jcmVhdGVkX2RpY3QgPSBqb2JfY3JlYXRlZF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgSm9iQ3JlYXRlZCBmcm9tIGEgZGljdApqb2JfY3JlYXRlZF9mcm9tX2RpY3QgPSBKb2JDcmVhdGVkLmZyb21fZGljdChqb2JfY3JlYXRlZF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/KeyLinkBetaApi.md b/docs/KeyLinkBetaApi.md index 9aa203d2..6de66aff 100644 --- a/docs/KeyLinkBetaApi.md +++ b/docs/KeyLinkBetaApi.md @@ -1,720 +1 @@ -# fireblocks.KeyLinkBetaApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**create_signing_key**](KeyLinkBetaApi.md#create_signing_key) | **POST** /key_link/signing_keys | Add a new signing key -[**create_validation_key**](KeyLinkBetaApi.md#create_validation_key) | **POST** /key_link/validation_keys | Add a new validation key -[**disable_validation_key**](KeyLinkBetaApi.md#disable_validation_key) | **PATCH** /key_link/validation_keys/{keyId} | Disables a validation key -[**get_signing_key**](KeyLinkBetaApi.md#get_signing_key) | **GET** /key_link/signing_keys/{keyId} | Get a signing key by `keyId` -[**get_signing_keys_list**](KeyLinkBetaApi.md#get_signing_keys_list) | **GET** /key_link/signing_keys | Get list of signing keys -[**get_validation_key**](KeyLinkBetaApi.md#get_validation_key) | **GET** /key_link/validation_keys/{keyId} | Get a validation key by `keyId` -[**get_validation_keys_list**](KeyLinkBetaApi.md#get_validation_keys_list) | **GET** /key_link/validation_keys | Get list of registered validation keys -[**set_agent_id**](KeyLinkBetaApi.md#set_agent_id) | **PATCH** /key_link/signing_keys/{keyId}/agent_user_id | Set agent user id -[**update_signing_key**](KeyLinkBetaApi.md#update_signing_key) | **PATCH** /key_link/signing_keys/{keyId} | Modify the signing keyId - - -# **create_signing_key** -> SigningKeyDto create_signing_key(create_signing_key_dto, idempotency_key=idempotency_key) - -Add a new signing key - -Adds a new signing key to the workspace. The added key will be linked to the specific Fireblocks agent user ID. The same user will receive the proof of ownership message to be signed, and upon successful proof, the key will become enabled. - -### Example - - -```python -from fireblocks.models.create_signing_key_dto import CreateSigningKeyDto -from fireblocks.models.signing_key_dto import SigningKeyDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - create_signing_key_dto = fireblocks.CreateSigningKeyDto() # CreateSigningKeyDto | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Add a new signing key - api_response = fireblocks.key_link_beta.create_signing_key(create_signing_key_dto, idempotency_key=idempotency_key).result() - print("The response of KeyLinkBetaApi->create_signing_key:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling KeyLinkBetaApi->create_signing_key: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **create_signing_key_dto** | [**CreateSigningKeyDto**](CreateSigningKeyDto.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**SigningKeyDto**](SigningKeyDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Newly created signing key | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_validation_key** -> CreateValidationKeyResponseDto create_validation_key(create_validation_key_dto, idempotency_key=idempotency_key) - -Add a new validation key - -Adds a new validation key used to validate signing keys. The new validation key will undergo an approval process by the workspace quorum. - -### Example - - -```python -from fireblocks.models.create_validation_key_dto import CreateValidationKeyDto -from fireblocks.models.create_validation_key_response_dto import CreateValidationKeyResponseDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - create_validation_key_dto = fireblocks.CreateValidationKeyDto() # CreateValidationKeyDto | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Add a new validation key - api_response = fireblocks.key_link_beta.create_validation_key(create_validation_key_dto, idempotency_key=idempotency_key).result() - print("The response of KeyLinkBetaApi->create_validation_key:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling KeyLinkBetaApi->create_validation_key: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **create_validation_key_dto** | [**CreateValidationKeyDto**](CreateValidationKeyDto.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**CreateValidationKeyResponseDto**](CreateValidationKeyResponseDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | The validation key that was added and is pending approval. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **disable_validation_key** -> ValidationKeyDto disable_validation_key(key_id, modify_validation_key_dto) - -Disables a validation key - -Allows disabling validation key even if it has not expired yet. It is not allowed to enable the validation key back. Another key has to be used for future validations. - -### Example - - -```python -from fireblocks.models.modify_validation_key_dto import ModifyValidationKeyDto -from fireblocks.models.validation_key_dto import ValidationKeyDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - key_id = '46a92767-5f93-4a46-9eed-f012196bb4fc' # str | The unique identifier for the validation key provided by Fireblocks - modify_validation_key_dto = fireblocks.ModifyValidationKeyDto() # ModifyValidationKeyDto | - - try: - # Disables a validation key - api_response = fireblocks.key_link_beta.disable_validation_key(key_id, modify_validation_key_dto).result() - print("The response of KeyLinkBetaApi->disable_validation_key:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling KeyLinkBetaApi->disable_validation_key: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **key_id** | **str**| The unique identifier for the validation key provided by Fireblocks | - **modify_validation_key_dto** | [**ModifyValidationKeyDto**](ModifyValidationKeyDto.md)| | - -### Return type - -[**ValidationKeyDto**](ValidationKeyDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Modified validation key data | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_signing_key** -> SigningKeyDto get_signing_key(key_id) - -Get a signing key by `keyId` - -Returns a signing key if it exists, identified by the specified `keyId`. - -### Example - - -```python -from fireblocks.models.signing_key_dto import SigningKeyDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - key_id = '46a92767-5f93-4a46-9eed-f012196bb4fc' # str | The unique identifier for the signing key provided by Fireblocks - - try: - # Get a signing key by `keyId` - api_response = fireblocks.key_link_beta.get_signing_key(key_id).result() - print("The response of KeyLinkBetaApi->get_signing_key:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling KeyLinkBetaApi->get_signing_key: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **key_id** | **str**| The unique identifier for the signing key provided by Fireblocks | - -### Return type - -[**SigningKeyDto**](SigningKeyDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Requested signing key data | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_signing_keys_list** -> GetSigningKeyResponseDto get_signing_keys_list(page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order, vault_account_id=vault_account_id, agent_user_id=agent_user_id, algorithm=algorithm, enabled=enabled, available=available, is_assigned=is_assigned, key_prefix=key_prefix) - -Get list of signing keys - -Returns the list of signing keys in the workspace - -### Example - - -```python -from fireblocks.models.get_signing_key_response_dto import GetSigningKeyResponseDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Cursor to the next page (optional) - page_size = 10 # float | Amount of results to return in the next page (optional) (default to 10) - sort_by = createdAt # str | Field(s) to use for sorting (optional) (default to createdAt) - order = ASC # str | Is the order ascending or descending (optional) (default to ASC) - vault_account_id = 4 # float | Return keys assigned to a specific vault (optional) - agent_user_id = '12fed207-5bdf-4a0c-ab12-fcd2627f75d1' # str | Return keys associated with a specific agent user (optional) - algorithm = 'ECDSA_SECP256K1' # str | Return only keys with a specific algorithm (optional) - enabled = True # bool | Return keys that have been proof of ownership (optional) - available = True # bool | Return keys that are proof of ownership but not assigned. Available filter can be used only when vaultAccountId and enabled filters are not set (optional) - is_assigned = True # bool | Return keys that are assigned to a vault account (optional) - key_prefix = 'key_prefix_example' # str | A case-insensitive prefix filter that matches records where either keyId or signingDeviceKeyID starts with the specified value. (optional) - - try: - # Get list of signing keys - api_response = fireblocks.key_link_beta.get_signing_keys_list(page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order, vault_account_id=vault_account_id, agent_user_id=agent_user_id, algorithm=algorithm, enabled=enabled, available=available, is_assigned=is_assigned, key_prefix=key_prefix).result() - print("The response of KeyLinkBetaApi->get_signing_keys_list:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling KeyLinkBetaApi->get_signing_keys_list: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **page_cursor** | **str**| Cursor to the next page | [optional] - **page_size** | **float**| Amount of results to return in the next page | [optional] [default to 10] - **sort_by** | **str**| Field(s) to use for sorting | [optional] [default to createdAt] - **order** | **str**| Is the order ascending or descending | [optional] [default to ASC] - **vault_account_id** | **float**| Return keys assigned to a specific vault | [optional] - **agent_user_id** | **str**| Return keys associated with a specific agent user | [optional] - **algorithm** | **str**| Return only keys with a specific algorithm | [optional] - **enabled** | **bool**| Return keys that have been proof of ownership | [optional] - **available** | **bool**| Return keys that are proof of ownership but not assigned. Available filter can be used only when vaultAccountId and enabled filters are not set | [optional] - **is_assigned** | **bool**| Return keys that are assigned to a vault account | [optional] - **key_prefix** | **str**| A case-insensitive prefix filter that matches records where either keyId or signingDeviceKeyID starts with the specified value. | [optional] - -### Return type - -[**GetSigningKeyResponseDto**](GetSigningKeyResponseDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | List of signing keys and a data that allows requesting the next page if applicable | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_validation_key** -> ValidationKeyDto get_validation_key(key_id) - -Get a validation key by `keyId` - -Returns a validation key if it exists, identified by the specified `keyId`. - -### Example - - -```python -from fireblocks.models.validation_key_dto import ValidationKeyDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - key_id = 'key_id_example' # str | - - try: - # Get a validation key by `keyId` - api_response = fireblocks.key_link_beta.get_validation_key(key_id).result() - print("The response of KeyLinkBetaApi->get_validation_key:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling KeyLinkBetaApi->get_validation_key: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **key_id** | **str**| | - -### Return type - -[**ValidationKeyDto**](ValidationKeyDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | The requested validation key data | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_validation_keys_list** -> GetValidationKeyResponseDto get_validation_keys_list(page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order) - -Get list of registered validation keys - -Returns the list of validation keys in the workspace - -### Example - - -```python -from fireblocks.models.get_validation_key_response_dto import GetValidationKeyResponseDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Cursor to the next page (optional) - page_size = 10 # float | Amount of results to return in the next page (optional) (default to 10) - sort_by = createdAt # str | Field(s) to use for sorting (optional) (default to createdAt) - order = ASC # str | Is the order ascending or descending (optional) (default to ASC) - - try: - # Get list of registered validation keys - api_response = fireblocks.key_link_beta.get_validation_keys_list(page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order).result() - print("The response of KeyLinkBetaApi->get_validation_keys_list:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling KeyLinkBetaApi->get_validation_keys_list: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **page_cursor** | **str**| Cursor to the next page | [optional] - **page_size** | **float**| Amount of results to return in the next page | [optional] [default to 10] - **sort_by** | **str**| Field(s) to use for sorting | [optional] [default to createdAt] - **order** | **str**| Is the order ascending or descending | [optional] [default to ASC] - -### Return type - -[**GetValidationKeyResponseDto**](GetValidationKeyResponseDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Validation keys list along with data required to request the next page if applicable | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_agent_id** -> set_agent_id(key_id, modify_signing_key_agent_id_dto) - -Set agent user id - -Can modify existing signing key id if the key is not enabled. The change done in background and will be visible once applied. If key is already enabled (after proof of ownership) the user cannot be changed. - -### Example - - -```python -from fireblocks.models.modify_signing_key_agent_id_dto import ModifySigningKeyAgentIdDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - key_id = '46a92767-5f93-4a46-9eed-f012196bb4fc' # str | The unique identifier for the signing key provided by Fireblocks - modify_signing_key_agent_id_dto = fireblocks.ModifySigningKeyAgentIdDto() # ModifySigningKeyAgentIdDto | - - try: - # Set agent user id - fireblocks.key_link_beta.set_agent_id(key_id, modify_signing_key_agent_id_dto).result() - except Exception as e: - print("Exception when calling KeyLinkBetaApi->set_agent_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **key_id** | **str**| The unique identifier for the signing key provided by Fireblocks | - **modify_signing_key_agent_id_dto** | [**ModifySigningKeyAgentIdDto**](ModifySigningKeyAgentIdDto.md)| | - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**204** | Agent user id modification process has started in background. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_signing_key** -> SigningKeyDto update_signing_key(key_id, modify_signing_key_dto) - -Modify the signing keyId - -Allows assigning the signing key to a vault account, if it hasn't been assigned to any other vault accounts yet. - -### Example - - -```python -from fireblocks.models.modify_signing_key_dto import ModifySigningKeyDto -from fireblocks.models.signing_key_dto import SigningKeyDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - key_id = '46a92767-5f93-4a46-9eed-f012196bb4fc' # str | The unique identifier for the signing key provided by Fireblocks - modify_signing_key_dto = fireblocks.ModifySigningKeyDto() # ModifySigningKeyDto | - - try: - # Modify the signing keyId - api_response = fireblocks.key_link_beta.update_signing_key(key_id, modify_signing_key_dto).result() - print("The response of KeyLinkBetaApi->update_signing_key:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling KeyLinkBetaApi->update_signing_key: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **key_id** | **str**| The unique identifier for the signing key provided by Fireblocks | - **modify_signing_key_dto** | [**ModifySigningKeyDto**](ModifySigningKeyDto.md)| | - -### Return type - -[**SigningKeyDto**](SigningKeyDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Modified signing key data | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLktleUxpbmtCZXRhQXBpCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gKmh0dHBzOi8vYXBpLmZpcmVibG9ja3MuaW8vdjEqCgpNZXRob2QgfCBIVFRQIHJlcXVlc3QgfCBEZXNjcmlwdGlvbgotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KWyoqY3JlYXRlX3NpZ25pbmdfa2V5KipdKEtleUxpbmtCZXRhQXBpLm1kI2NyZWF0ZV9zaWduaW5nX2tleSkgfCAqKlBPU1QqKiAva2V5X2xpbmsvc2lnbmluZ19rZXlzIHwgQWRkIGEgbmV3IHNpZ25pbmcga2V5ClsqKmNyZWF0ZV92YWxpZGF0aW9uX2tleSoqXShLZXlMaW5rQmV0YUFwaS5tZCNjcmVhdGVfdmFsaWRhdGlvbl9rZXkpIHwgKipQT1NUKiogL2tleV9saW5rL3ZhbGlkYXRpb25fa2V5cyB8IEFkZCBhIG5ldyB2YWxpZGF0aW9uIGtleQpbKipkaXNhYmxlX3ZhbGlkYXRpb25fa2V5KipdKEtleUxpbmtCZXRhQXBpLm1kI2Rpc2FibGVfdmFsaWRhdGlvbl9rZXkpIHwgKipQQVRDSCoqIC9rZXlfbGluay92YWxpZGF0aW9uX2tleXMve2tleUlkfSB8IERpc2FibGVzIGEgdmFsaWRhdGlvbiBrZXkKWyoqZ2V0X3NpZ25pbmdfa2V5KipdKEtleUxpbmtCZXRhQXBpLm1kI2dldF9zaWduaW5nX2tleSkgfCAqKkdFVCoqIC9rZXlfbGluay9zaWduaW5nX2tleXMve2tleUlkfSB8IEdldCBhIHNpZ25pbmcga2V5IGJ5ICYjeDYwO2tleUlkJiN4NjA7ClsqKmdldF9zaWduaW5nX2tleXNfbGlzdCoqXShLZXlMaW5rQmV0YUFwaS5tZCNnZXRfc2lnbmluZ19rZXlzX2xpc3QpIHwgKipHRVQqKiAva2V5X2xpbmsvc2lnbmluZ19rZXlzIHwgR2V0IGxpc3Qgb2Ygc2lnbmluZyBrZXlzClsqKmdldF92YWxpZGF0aW9uX2tleSoqXShLZXlMaW5rQmV0YUFwaS5tZCNnZXRfdmFsaWRhdGlvbl9rZXkpIHwgKipHRVQqKiAva2V5X2xpbmsvdmFsaWRhdGlvbl9rZXlzL3trZXlJZH0gfCBHZXQgYSB2YWxpZGF0aW9uIGtleSBieSAmI3g2MDtrZXlJZCYjeDYwOwpbKipnZXRfdmFsaWRhdGlvbl9rZXlzX2xpc3QqKl0oS2V5TGlua0JldGFBcGkubWQjZ2V0X3ZhbGlkYXRpb25fa2V5c19saXN0KSB8ICoqR0VUKiogL2tleV9saW5rL3ZhbGlkYXRpb25fa2V5cyB8IEdldCBsaXN0IG9mIHJlZ2lzdGVyZWQgdmFsaWRhdGlvbiBrZXlzClsqKnNldF9hZ2VudF9pZCoqXShLZXlMaW5rQmV0YUFwaS5tZCNzZXRfYWdlbnRfaWQpIHwgKipQQVRDSCoqIC9rZXlfbGluay9zaWduaW5nX2tleXMve2tleUlkfS9hZ2VudF91c2VyX2lkIHwgU2V0IGFnZW50IHVzZXIgaWQKWyoqdXBkYXRlX3NpZ25pbmdfa2V5KipdKEtleUxpbmtCZXRhQXBpLm1kI3VwZGF0ZV9zaWduaW5nX2tleSkgfCAqKlBBVENIKiogL2tleV9saW5rL3NpZ25pbmdfa2V5cy97a2V5SWR9IHwgTW9kaWZ5IHRoZSBzaWduaW5nIGtleUlkCgoKIyAqKmNyZWF0ZV9zaWduaW5nX2tleSoqCj4gU2lnbmluZ0tleUR0byBjcmVhdGVfc2lnbmluZ19rZXkoY3JlYXRlX3NpZ25pbmdfa2V5X2R0bywgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCkFkZCBhIG5ldyBzaWduaW5nIGtleQoKQWRkcyBhIG5ldyBzaWduaW5nIGtleSB0byB0aGUgd29ya3NwYWNlLiBUaGUgYWRkZWQga2V5IHdpbGwgYmUgbGlua2VkIHRvIHRoZSBzcGVjaWZpYyBGaXJlYmxvY2tzIGFnZW50IHVzZXIgSUQuIFRoZSBzYW1lIHVzZXIgd2lsbCByZWNlaXZlIHRoZSBwcm9vZiBvZiBvd25lcnNoaXAgbWVzc2FnZSB0byBiZSBzaWduZWQsIGFuZCB1cG9uIHN1Y2Nlc3NmdWwgcHJvb2YsIHRoZSBrZXkgd2lsbCBiZWNvbWUgZW5hYmxlZC4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3NpZ25pbmdfa2V5X2R0byBpbXBvcnQgQ3JlYXRlU2lnbmluZ0tleUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNpZ25pbmdfa2V5X2R0byBpbXBvcnQgU2lnbmluZ0tleUR0bwpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjcmVhdGVfc2lnbmluZ19rZXlfZHRvID0gZmlyZWJsb2Nrcy5DcmVhdGVTaWduaW5nS2V5RHRvKCkgIyBDcmVhdGVTaWduaW5nS2V5RHRvIHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQWRkIGEgbmV3IHNpZ25pbmcga2V5CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5rZXlfbGlua19iZXRhLmNyZWF0ZV9zaWduaW5nX2tleShjcmVhdGVfc2lnbmluZ19rZXlfZHRvLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgS2V5TGlua0JldGFBcGktPmNyZWF0ZV9zaWduaW5nX2tleTpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBLZXlMaW5rQmV0YUFwaS0+Y3JlYXRlX3NpZ25pbmdfa2V5OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjcmVhdGVfc2lnbmluZ19rZXlfZHRvKiogfCBbKipDcmVhdGVTaWduaW5nS2V5RHRvKipdKENyZWF0ZVNpZ25pbmdLZXlEdG8ubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqU2lnbmluZ0tleUR0byoqXShTaWduaW5nS2V5RHRvLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBOZXdseSBjcmVhdGVkIHNpZ25pbmcga2V5IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipjcmVhdGVfdmFsaWRhdGlvbl9rZXkqKgo+IENyZWF0ZVZhbGlkYXRpb25LZXlSZXNwb25zZUR0byBjcmVhdGVfdmFsaWRhdGlvbl9rZXkoY3JlYXRlX3ZhbGlkYXRpb25fa2V5X2R0bywgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCkFkZCBhIG5ldyB2YWxpZGF0aW9uIGtleQoKQWRkcyBhIG5ldyB2YWxpZGF0aW9uIGtleSB1c2VkIHRvIHZhbGlkYXRlIHNpZ25pbmcga2V5cy4gVGhlIG5ldyB2YWxpZGF0aW9uIGtleSB3aWxsIHVuZGVyZ28gYW4gYXBwcm92YWwgcHJvY2VzcyBieSB0aGUgd29ya3NwYWNlIHF1b3J1bS4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3ZhbGlkYXRpb25fa2V5X2R0byBpbXBvcnQgQ3JlYXRlVmFsaWRhdGlvbktleUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV92YWxpZGF0aW9uX2tleV9yZXNwb25zZV9kdG8gaW1wb3J0IENyZWF0ZVZhbGlkYXRpb25LZXlSZXNwb25zZUR0bwpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjcmVhdGVfdmFsaWRhdGlvbl9rZXlfZHRvID0gZmlyZWJsb2Nrcy5DcmVhdGVWYWxpZGF0aW9uS2V5RHRvKCkgIyBDcmVhdGVWYWxpZGF0aW9uS2V5RHRvIHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQWRkIGEgbmV3IHZhbGlkYXRpb24ga2V5CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5rZXlfbGlua19iZXRhLmNyZWF0ZV92YWxpZGF0aW9uX2tleShjcmVhdGVfdmFsaWRhdGlvbl9rZXlfZHRvLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgS2V5TGlua0JldGFBcGktPmNyZWF0ZV92YWxpZGF0aW9uX2tleTpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBLZXlMaW5rQmV0YUFwaS0+Y3JlYXRlX3ZhbGlkYXRpb25fa2V5OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjcmVhdGVfdmFsaWRhdGlvbl9rZXlfZHRvKiogfCBbKipDcmVhdGVWYWxpZGF0aW9uS2V5RHRvKipdKENyZWF0ZVZhbGlkYXRpb25LZXlEdG8ubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqQ3JlYXRlVmFsaWRhdGlvbktleVJlc3BvbnNlRHRvKipdKENyZWF0ZVZhbGlkYXRpb25LZXlSZXNwb25zZUR0by5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgVGhlIHZhbGlkYXRpb24ga2V5IHRoYXQgd2FzIGFkZGVkIGFuZCBpcyBwZW5kaW5nIGFwcHJvdmFsLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZGlzYWJsZV92YWxpZGF0aW9uX2tleSoqCj4gVmFsaWRhdGlvbktleUR0byBkaXNhYmxlX3ZhbGlkYXRpb25fa2V5KGtleV9pZCwgbW9kaWZ5X3ZhbGlkYXRpb25fa2V5X2R0bykKCkRpc2FibGVzIGEgdmFsaWRhdGlvbiBrZXkKCkFsbG93cyBkaXNhYmxpbmcgdmFsaWRhdGlvbiBrZXkgZXZlbiBpZiBpdCBoYXMgbm90IGV4cGlyZWQgeWV0LiBJdCBpcyBub3QgYWxsb3dlZCB0byBlbmFibGUgdGhlIHZhbGlkYXRpb24ga2V5IGJhY2suIEFub3RoZXIga2V5IGhhcyB0byBiZSB1c2VkIGZvciBmdXR1cmUgdmFsaWRhdGlvbnMuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1vZGlmeV92YWxpZGF0aW9uX2tleV9kdG8gaW1wb3J0IE1vZGlmeVZhbGlkYXRpb25LZXlEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YWxpZGF0aW9uX2tleV9kdG8gaW1wb3J0IFZhbGlkYXRpb25LZXlEdG8KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAga2V5X2lkID0gJzQ2YTkyNzY3LTVmOTMtNGE0Ni05ZWVkLWYwMTIxOTZiYjRmYycgIyBzdHIgfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSB2YWxpZGF0aW9uIGtleSBwcm92aWRlZCBieSBGaXJlYmxvY2tzCiAgICBtb2RpZnlfdmFsaWRhdGlvbl9rZXlfZHRvID0gZmlyZWJsb2Nrcy5Nb2RpZnlWYWxpZGF0aW9uS2V5RHRvKCkgIyBNb2RpZnlWYWxpZGF0aW9uS2V5RHRvIHwgCgogICAgdHJ5OgogICAgICAgICMgRGlzYWJsZXMgYSB2YWxpZGF0aW9uIGtleQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Mua2V5X2xpbmtfYmV0YS5kaXNhYmxlX3ZhbGlkYXRpb25fa2V5KGtleV9pZCwgbW9kaWZ5X3ZhbGlkYXRpb25fa2V5X2R0bykucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEtleUxpbmtCZXRhQXBpLT5kaXNhYmxlX3ZhbGlkYXRpb25fa2V5OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEtleUxpbmtCZXRhQXBpLT5kaXNhYmxlX3ZhbGlkYXRpb25fa2V5OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKiprZXlfaWQqKiB8ICoqc3RyKip8IFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHZhbGlkYXRpb24ga2V5IHByb3ZpZGVkIGJ5IEZpcmVibG9ja3MgfCAKICoqbW9kaWZ5X3ZhbGlkYXRpb25fa2V5X2R0byoqIHwgWyoqTW9kaWZ5VmFsaWRhdGlvbktleUR0byoqXShNb2RpZnlWYWxpZGF0aW9uS2V5RHRvLm1kKXwgIHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKlZhbGlkYXRpb25LZXlEdG8qKl0oVmFsaWRhdGlvbktleUR0by5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgTW9kaWZpZWQgdmFsaWRhdGlvbiBrZXkgZGF0YSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X3NpZ25pbmdfa2V5KioKPiBTaWduaW5nS2V5RHRvIGdldF9zaWduaW5nX2tleShrZXlfaWQpCgpHZXQgYSBzaWduaW5nIGtleSBieSBga2V5SWRgCgpSZXR1cm5zIGEgc2lnbmluZyBrZXkgaWYgaXQgZXhpc3RzLCBpZGVudGlmaWVkIGJ5IHRoZSBzcGVjaWZpZWQgYGtleUlkYC4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2lnbmluZ19rZXlfZHRvIGltcG9ydCBTaWduaW5nS2V5RHRvCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGtleV9pZCA9ICc0NmE5Mjc2Ny01ZjkzLTRhNDYtOWVlZC1mMDEyMTk2YmI0ZmMnICMgc3RyIHwgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgc2lnbmluZyBrZXkgcHJvdmlkZWQgYnkgRmlyZWJsb2NrcwoKICAgIHRyeToKICAgICAgICAjIEdldCBhIHNpZ25pbmcga2V5IGJ5IGBrZXlJZGAKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmtleV9saW5rX2JldGEuZ2V0X3NpZ25pbmdfa2V5KGtleV9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEtleUxpbmtCZXRhQXBpLT5nZXRfc2lnbmluZ19rZXk6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgS2V5TGlua0JldGFBcGktPmdldF9zaWduaW5nX2tleTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqa2V5X2lkKiogfCAqKnN0cioqfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBzaWduaW5nIGtleSBwcm92aWRlZCBieSBGaXJlYmxvY2tzIHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKlNpZ25pbmdLZXlEdG8qKl0oU2lnbmluZ0tleUR0by5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFJlcXVlc3RlZCBzaWduaW5nIGtleSBkYXRhIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfc2lnbmluZ19rZXlzX2xpc3QqKgo+IEdldFNpZ25pbmdLZXlSZXNwb25zZUR0byBnZXRfc2lnbmluZ19rZXlzX2xpc3QocGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsIHNvcnRfYnk9c29ydF9ieSwgb3JkZXI9b3JkZXIsIHZhdWx0X2FjY291bnRfaWQ9dmF1bHRfYWNjb3VudF9pZCwgYWdlbnRfdXNlcl9pZD1hZ2VudF91c2VyX2lkLCBhbGdvcml0aG09YWxnb3JpdGhtLCBlbmFibGVkPWVuYWJsZWQsIGF2YWlsYWJsZT1hdmFpbGFibGUsIGlzX2Fzc2lnbmVkPWlzX2Fzc2lnbmVkLCBrZXlfcHJlZml4PWtleV9wcmVmaXgpCgpHZXQgbGlzdCBvZiBzaWduaW5nIGtleXMKClJldHVybnMgdGhlIGxpc3Qgb2Ygc2lnbmluZyBrZXlzIGluIHRoZSB3b3Jrc3BhY2UKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X3NpZ25pbmdfa2V5X3Jlc3BvbnNlX2R0byBpbXBvcnQgR2V0U2lnbmluZ0tleVJlc3BvbnNlRHRvCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHBhZ2VfY3Vyc29yID0gJ01qQXlNeTB4TWkweE15QXlNRG96Tmpvd09DNHpNREk9Ok1URXdNQT09JyAjIHN0ciB8IEN1cnNvciB0byB0aGUgbmV4dCBwYWdlIChvcHRpb25hbCkKICAgIHBhZ2Vfc2l6ZSA9IDEwICMgZmxvYXQgfCBBbW91bnQgb2YgcmVzdWx0cyB0byByZXR1cm4gaW4gdGhlIG5leHQgcGFnZSAob3B0aW9uYWwpIChkZWZhdWx0IHRvIDEwKQogICAgc29ydF9ieSA9IGNyZWF0ZWRBdCAjIHN0ciB8IEZpZWxkKHMpIHRvIHVzZSBmb3Igc29ydGluZyAob3B0aW9uYWwpIChkZWZhdWx0IHRvIGNyZWF0ZWRBdCkKICAgIG9yZGVyID0gQVNDICMgc3RyIHwgSXMgdGhlIG9yZGVyIGFzY2VuZGluZyBvciBkZXNjZW5kaW5nIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gQVNDKQogICAgdmF1bHRfYWNjb3VudF9pZCA9IDQgIyBmbG9hdCB8IFJldHVybiBrZXlzIGFzc2lnbmVkIHRvIGEgc3BlY2lmaWMgdmF1bHQgKG9wdGlvbmFsKQogICAgYWdlbnRfdXNlcl9pZCA9ICcxMmZlZDIwNy01YmRmLTRhMGMtYWIxMi1mY2QyNjI3Zjc1ZDEnICMgc3RyIHwgUmV0dXJuIGtleXMgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgYWdlbnQgdXNlciAob3B0aW9uYWwpCiAgICBhbGdvcml0aG0gPSAnRUNEU0FfU0VDUDI1NksxJyAjIHN0ciB8IFJldHVybiBvbmx5IGtleXMgd2l0aCBhIHNwZWNpZmljIGFsZ29yaXRobSAob3B0aW9uYWwpCiAgICBlbmFibGVkID0gVHJ1ZSAjIGJvb2wgfCBSZXR1cm4ga2V5cyB0aGF0IGhhdmUgYmVlbiBwcm9vZiBvZiBvd25lcnNoaXAgKG9wdGlvbmFsKQogICAgYXZhaWxhYmxlID0gVHJ1ZSAjIGJvb2wgfCBSZXR1cm4ga2V5cyB0aGF0IGFyZSBwcm9vZiBvZiBvd25lcnNoaXAgYnV0IG5vdCBhc3NpZ25lZC4gQXZhaWxhYmxlIGZpbHRlciBjYW4gYmUgdXNlZCBvbmx5IHdoZW4gdmF1bHRBY2NvdW50SWQgYW5kIGVuYWJsZWQgZmlsdGVycyBhcmUgbm90IHNldCAob3B0aW9uYWwpCiAgICBpc19hc3NpZ25lZCA9IFRydWUgIyBib29sIHwgUmV0dXJuIGtleXMgdGhhdCBhcmUgYXNzaWduZWQgdG8gYSB2YXVsdCBhY2NvdW50IChvcHRpb25hbCkKICAgIGtleV9wcmVmaXggPSAna2V5X3ByZWZpeF9leGFtcGxlJyAjIHN0ciB8IEEgY2FzZS1pbnNlbnNpdGl2ZSBwcmVmaXggZmlsdGVyIHRoYXQgbWF0Y2hlcyByZWNvcmRzIHdoZXJlIGVpdGhlciBrZXlJZCBvciBzaWduaW5nRGV2aWNlS2V5SUQgc3RhcnRzIHdpdGggdGhlIHNwZWNpZmllZCB2YWx1ZS4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIEdldCBsaXN0IG9mIHNpZ25pbmcga2V5cwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Mua2V5X2xpbmtfYmV0YS5nZXRfc2lnbmluZ19rZXlzX2xpc3QocGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsIHNvcnRfYnk9c29ydF9ieSwgb3JkZXI9b3JkZXIsIHZhdWx0X2FjY291bnRfaWQ9dmF1bHRfYWNjb3VudF9pZCwgYWdlbnRfdXNlcl9pZD1hZ2VudF91c2VyX2lkLCBhbGdvcml0aG09YWxnb3JpdGhtLCBlbmFibGVkPWVuYWJsZWQsIGF2YWlsYWJsZT1hdmFpbGFibGUsIGlzX2Fzc2lnbmVkPWlzX2Fzc2lnbmVkLCBrZXlfcHJlZml4PWtleV9wcmVmaXgpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBLZXlMaW5rQmV0YUFwaS0+Z2V0X3NpZ25pbmdfa2V5c19saXN0OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEtleUxpbmtCZXRhQXBpLT5nZXRfc2lnbmluZ19rZXlzX2xpc3Q6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnBhZ2VfY3Vyc29yKiogfCAqKnN0cioqfCBDdXJzb3IgdG8gdGhlIG5leHQgcGFnZSB8IFtvcHRpb25hbF0gCiAqKnBhZ2Vfc2l6ZSoqIHwgKipmbG9hdCoqfCBBbW91bnQgb2YgcmVzdWx0cyB0byByZXR1cm4gaW4gdGhlIG5leHQgcGFnZSB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gMTBdCiAqKnNvcnRfYnkqKiB8ICoqc3RyKip8IEZpZWxkKHMpIHRvIHVzZSBmb3Igc29ydGluZyB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gY3JlYXRlZEF0XQogKipvcmRlcioqIHwgKipzdHIqKnwgSXMgdGhlIG9yZGVyIGFzY2VuZGluZyBvciBkZXNjZW5kaW5nIHwgW29wdGlvbmFsXSBbZGVmYXVsdCB0byBBU0NdCiAqKnZhdWx0X2FjY291bnRfaWQqKiB8ICoqZmxvYXQqKnwgUmV0dXJuIGtleXMgYXNzaWduZWQgdG8gYSBzcGVjaWZpYyB2YXVsdCB8IFtvcHRpb25hbF0gCiAqKmFnZW50X3VzZXJfaWQqKiB8ICoqc3RyKip8IFJldHVybiBrZXlzIGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIGFnZW50IHVzZXIgfCBbb3B0aW9uYWxdIAogKiphbGdvcml0aG0qKiB8ICoqc3RyKip8IFJldHVybiBvbmx5IGtleXMgd2l0aCBhIHNwZWNpZmljIGFsZ29yaXRobSB8IFtvcHRpb25hbF0gCiAqKmVuYWJsZWQqKiB8ICoqYm9vbCoqfCBSZXR1cm4ga2V5cyB0aGF0IGhhdmUgYmVlbiBwcm9vZiBvZiBvd25lcnNoaXAgfCBbb3B0aW9uYWxdIAogKiphdmFpbGFibGUqKiB8ICoqYm9vbCoqfCBSZXR1cm4ga2V5cyB0aGF0IGFyZSBwcm9vZiBvZiBvd25lcnNoaXAgYnV0IG5vdCBhc3NpZ25lZC4gQXZhaWxhYmxlIGZpbHRlciBjYW4gYmUgdXNlZCBvbmx5IHdoZW4gdmF1bHRBY2NvdW50SWQgYW5kIGVuYWJsZWQgZmlsdGVycyBhcmUgbm90IHNldCB8IFtvcHRpb25hbF0gCiAqKmlzX2Fzc2lnbmVkKiogfCAqKmJvb2wqKnwgUmV0dXJuIGtleXMgdGhhdCBhcmUgYXNzaWduZWQgdG8gYSB2YXVsdCBhY2NvdW50IHwgW29wdGlvbmFsXSAKICoqa2V5X3ByZWZpeCoqIHwgKipzdHIqKnwgQSBjYXNlLWluc2Vuc2l0aXZlIHByZWZpeCBmaWx0ZXIgdGhhdCBtYXRjaGVzIHJlY29yZHMgd2hlcmUgZWl0aGVyIGtleUlkIG9yIHNpZ25pbmdEZXZpY2VLZXlJRCBzdGFydHMgd2l0aCB0aGUgc3BlY2lmaWVkIHZhbHVlLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkdldFNpZ25pbmdLZXlSZXNwb25zZUR0byoqXShHZXRTaWduaW5nS2V5UmVzcG9uc2VEdG8ubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBMaXN0IG9mIHNpZ25pbmcga2V5cyBhbmQgYSBkYXRhIHRoYXQgYWxsb3dzIHJlcXVlc3RpbmcgdGhlIG5leHQgcGFnZSBpZiBhcHBsaWNhYmxlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfdmFsaWRhdGlvbl9rZXkqKgo+IFZhbGlkYXRpb25LZXlEdG8gZ2V0X3ZhbGlkYXRpb25fa2V5KGtleV9pZCkKCkdldCBhIHZhbGlkYXRpb24ga2V5IGJ5IGBrZXlJZGAKClJldHVybnMgYSB2YWxpZGF0aW9uIGtleSBpZiBpdCBleGlzdHMsIGlkZW50aWZpZWQgYnkgdGhlIHNwZWNpZmllZCBga2V5SWRgLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YWxpZGF0aW9uX2tleV9kdG8gaW1wb3J0IFZhbGlkYXRpb25LZXlEdG8KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAga2V5X2lkID0gJ2tleV9pZF9leGFtcGxlJyAjIHN0ciB8IAoKICAgIHRyeToKICAgICAgICAjIEdldCBhIHZhbGlkYXRpb24ga2V5IGJ5IGBrZXlJZGAKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmtleV9saW5rX2JldGEuZ2V0X3ZhbGlkYXRpb25fa2V5KGtleV9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEtleUxpbmtCZXRhQXBpLT5nZXRfdmFsaWRhdGlvbl9rZXk6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgS2V5TGlua0JldGFBcGktPmdldF92YWxpZGF0aW9uX2tleTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqa2V5X2lkKiogfCAqKnN0cioqfCAgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqVmFsaWRhdGlvbktleUR0byoqXShWYWxpZGF0aW9uS2V5RHRvLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgVGhlIHJlcXVlc3RlZCB2YWxpZGF0aW9uIGtleSBkYXRhIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfdmFsaWRhdGlvbl9rZXlzX2xpc3QqKgo+IEdldFZhbGlkYXRpb25LZXlSZXNwb25zZUR0byBnZXRfdmFsaWRhdGlvbl9rZXlzX2xpc3QocGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsIHNvcnRfYnk9c29ydF9ieSwgb3JkZXI9b3JkZXIpCgpHZXQgbGlzdCBvZiByZWdpc3RlcmVkIHZhbGlkYXRpb24ga2V5cwoKUmV0dXJucyB0aGUgbGlzdCBvZiB2YWxpZGF0aW9uIGtleXMgaW4gdGhlIHdvcmtzcGFjZQoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfdmFsaWRhdGlvbl9rZXlfcmVzcG9uc2VfZHRvIGltcG9ydCBHZXRWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgcGFnZV9jdXJzb3IgPSAnTWpBeU15MHhNaTB4TXlBeU1Eb3pOam93T0M0ek1EST06TVRFd01BPT0nICMgc3RyIHwgQ3Vyc29yIHRvIHRoZSBuZXh0IHBhZ2UgKG9wdGlvbmFsKQogICAgcGFnZV9zaXplID0gMTAgIyBmbG9hdCB8IEFtb3VudCBvZiByZXN1bHRzIHRvIHJldHVybiBpbiB0aGUgbmV4dCBwYWdlIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gMTApCiAgICBzb3J0X2J5ID0gY3JlYXRlZEF0ICMgc3RyIHwgRmllbGQocykgdG8gdXNlIGZvciBzb3J0aW5nIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gY3JlYXRlZEF0KQogICAgb3JkZXIgPSBBU0MgIyBzdHIgfCBJcyB0aGUgb3JkZXIgYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byBBU0MpCgogICAgdHJ5OgogICAgICAgICMgR2V0IGxpc3Qgb2YgcmVnaXN0ZXJlZCB2YWxpZGF0aW9uIGtleXMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmtleV9saW5rX2JldGEuZ2V0X3ZhbGlkYXRpb25fa2V5c19saXN0KHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplLCBzb3J0X2J5PXNvcnRfYnksIG9yZGVyPW9yZGVyKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgS2V5TGlua0JldGFBcGktPmdldF92YWxpZGF0aW9uX2tleXNfbGlzdDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBLZXlMaW5rQmV0YUFwaS0+Z2V0X3ZhbGlkYXRpb25fa2V5c19saXN0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipwYWdlX2N1cnNvcioqIHwgKipzdHIqKnwgQ3Vyc29yIHRvIHRoZSBuZXh0IHBhZ2UgfCBbb3B0aW9uYWxdIAogKipwYWdlX3NpemUqKiB8ICoqZmxvYXQqKnwgQW1vdW50IG9mIHJlc3VsdHMgdG8gcmV0dXJuIGluIHRoZSBuZXh0IHBhZ2UgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIDEwXQogKipzb3J0X2J5KiogfCAqKnN0cioqfCBGaWVsZChzKSB0byB1c2UgZm9yIHNvcnRpbmcgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIGNyZWF0ZWRBdF0KICoqb3JkZXIqKiB8ICoqc3RyKip8IElzIHRoZSBvcmRlciBhc2NlbmRpbmcgb3IgZGVzY2VuZGluZyB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gQVNDXQoKIyMjIFJldHVybiB0eXBlCgpbKipHZXRWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8qKl0oR2V0VmFsaWRhdGlvbktleVJlc3BvbnNlRHRvLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgVmFsaWRhdGlvbiBrZXlzIGxpc3QgYWxvbmcgd2l0aCBkYXRhIHJlcXVpcmVkIHRvIHJlcXVlc3QgdGhlIG5leHQgcGFnZSBpZiBhcHBsaWNhYmxlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipzZXRfYWdlbnRfaWQqKgo+IHNldF9hZ2VudF9pZChrZXlfaWQsIG1vZGlmeV9zaWduaW5nX2tleV9hZ2VudF9pZF9kdG8pCgpTZXQgYWdlbnQgdXNlciBpZAoKQ2FuIG1vZGlmeSBleGlzdGluZyBzaWduaW5nIGtleSBpZCBpZiB0aGUga2V5IGlzIG5vdCBlbmFibGVkLiBUaGUgY2hhbmdlIGRvbmUgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSB2aXNpYmxlIG9uY2UgYXBwbGllZC4gSWYga2V5IGlzIGFscmVhZHkgZW5hYmxlZCAoYWZ0ZXIgcHJvb2Ygb2Ygb3duZXJzaGlwKSB0aGUgdXNlciBjYW5ub3QgYmUgY2hhbmdlZC4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubW9kaWZ5X3NpZ25pbmdfa2V5X2FnZW50X2lkX2R0byBpbXBvcnQgTW9kaWZ5U2lnbmluZ0tleUFnZW50SWREdG8KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGtleV9pZCA9ICc0NmE5Mjc2Ny01ZjkzLTRhNDYtOWVlZC1mMDEyMTk2YmI0ZmMnICMgc3RyIHwgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgc2lnbmluZyBrZXkgcHJvdmlkZWQgYnkgRmlyZWJsb2NrcwogICAgbW9kaWZ5X3NpZ25pbmdfa2V5X2FnZW50X2lkX2R0byA9IGZpcmVibG9ja3MuTW9kaWZ5U2lnbmluZ0tleUFnZW50SWREdG8oKSAjIE1vZGlmeVNpZ25pbmdLZXlBZ2VudElkRHRvIHwgCgogICAgdHJ5OgogICAgICAgICMgU2V0IGFnZW50IHVzZXIgaWQKICAgICAgICBmaXJlYmxvY2tzLmtleV9saW5rX2JldGEuc2V0X2FnZW50X2lkKGtleV9pZCwgbW9kaWZ5X3NpZ25pbmdfa2V5X2FnZW50X2lkX2R0bykucmVzdWx0KCkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBLZXlMaW5rQmV0YUFwaS0+c2V0X2FnZW50X2lkOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKiprZXlfaWQqKiB8ICoqc3RyKip8IFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHNpZ25pbmcga2V5IHByb3ZpZGVkIGJ5IEZpcmVibG9ja3MgfCAKICoqbW9kaWZ5X3NpZ25pbmdfa2V5X2FnZW50X2lkX2R0byoqIHwgWyoqTW9kaWZ5U2lnbmluZ0tleUFnZW50SWREdG8qKl0oTW9kaWZ5U2lnbmluZ0tleUFnZW50SWREdG8ubWQpfCAgfCAKCiMjIyBSZXR1cm4gdHlwZQoKdm9pZCAoZW1wdHkgcmVzcG9uc2UgYm9keSkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwNCoqIHwgQWdlbnQgdXNlciBpZCBtb2RpZmljYXRpb24gcHJvY2VzcyBoYXMgc3RhcnRlZCBpbiBiYWNrZ3JvdW5kLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqdXBkYXRlX3NpZ25pbmdfa2V5KioKPiBTaWduaW5nS2V5RHRvIHVwZGF0ZV9zaWduaW5nX2tleShrZXlfaWQsIG1vZGlmeV9zaWduaW5nX2tleV9kdG8pCgpNb2RpZnkgdGhlIHNpZ25pbmcga2V5SWQKCkFsbG93cyBhc3NpZ25pbmcgdGhlIHNpZ25pbmcga2V5IHRvIGEgdmF1bHQgYWNjb3VudCwgaWYgaXQgaGFzbid0IGJlZW4gYXNzaWduZWQgdG8gYW55IG90aGVyIHZhdWx0IGFjY291bnRzIHlldC4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubW9kaWZ5X3NpZ25pbmdfa2V5X2R0byBpbXBvcnQgTW9kaWZ5U2lnbmluZ0tleUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNpZ25pbmdfa2V5X2R0byBpbXBvcnQgU2lnbmluZ0tleUR0bwpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBrZXlfaWQgPSAnNDZhOTI3NjctNWY5My00YTQ2LTllZWQtZjAxMjE5NmJiNGZjJyAjIHN0ciB8IFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHNpZ25pbmcga2V5IHByb3ZpZGVkIGJ5IEZpcmVibG9ja3MKICAgIG1vZGlmeV9zaWduaW5nX2tleV9kdG8gPSBmaXJlYmxvY2tzLk1vZGlmeVNpZ25pbmdLZXlEdG8oKSAjIE1vZGlmeVNpZ25pbmdLZXlEdG8gfCAKCiAgICB0cnk6CiAgICAgICAgIyBNb2RpZnkgdGhlIHNpZ25pbmcga2V5SWQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLmtleV9saW5rX2JldGEudXBkYXRlX3NpZ25pbmdfa2V5KGtleV9pZCwgbW9kaWZ5X3NpZ25pbmdfa2V5X2R0bykucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEtleUxpbmtCZXRhQXBpLT51cGRhdGVfc2lnbmluZ19rZXk6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgS2V5TGlua0JldGFBcGktPnVwZGF0ZV9zaWduaW5nX2tleTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqa2V5X2lkKiogfCAqKnN0cioqfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBzaWduaW5nIGtleSBwcm92aWRlZCBieSBGaXJlYmxvY2tzIHwgCiAqKm1vZGlmeV9zaWduaW5nX2tleV9kdG8qKiB8IFsqKk1vZGlmeVNpZ25pbmdLZXlEdG8qKl0oTW9kaWZ5U2lnbmluZ0tleUR0by5tZCl8ICB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipTaWduaW5nS2V5RHRvKipdKFNpZ25pbmdLZXlEdG8ubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IE1vZGlmaWVkIHNpZ25pbmcga2V5IGRhdGEgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoK \ No newline at end of file diff --git a/docs/KeysBetaApi.md b/docs/KeysBetaApi.md index 6b52f743..82c9e718 100644 --- a/docs/KeysBetaApi.md +++ b/docs/KeysBetaApi.md @@ -1,158 +1 @@ -# fireblocks.KeysBetaApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**get_mpc_keys_list**](KeysBetaApi.md#get_mpc_keys_list) | **GET** /keys/mpc/list | Get list of mpc keys -[**get_mpc_keys_list_by_user**](KeysBetaApi.md#get_mpc_keys_list_by_user) | **GET** /keys/mpc/list/{userId} | Get list of mpc keys by `userId` - - -# **get_mpc_keys_list** -> GetMpcKeysResponse get_mpc_keys_list() - -Get list of mpc keys - -Returns a list of MPC signing keys of the workspace. For each key, the list of players associated with it is attached. -**Note:** -This endpoint is currently in beta and might be subject to changes. - -### Example - - -```python -from fireblocks.models.get_mpc_keys_response import GetMpcKeysResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Get list of mpc keys - api_response = fireblocks.keys_beta.get_mpc_keys_list().result() - print("The response of KeysBetaApi->get_mpc_keys_list:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling KeysBetaApi->get_mpc_keys_list: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**GetMpcKeysResponse**](GetMpcKeysResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | List of mpc keys | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_mpc_keys_list_by_user** -> GetMpcKeysResponse get_mpc_keys_list_by_user(user_id) - -Get list of mpc keys by `userId` - -Returns a list of MPC signing keys of a specific user. For each key, the list of players associated with it is attached. -**Note:** -This endpoint is currently in beta and might be subject to changes. - -### Example - - -```python -from fireblocks.models.get_mpc_keys_response import GetMpcKeysResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - user_id = '46a92767-5f93-4a46-9eed-f012196bb4fc' # str | The id for the user - - try: - # Get list of mpc keys by `userId` - api_response = fireblocks.keys_beta.get_mpc_keys_list_by_user(user_id).result() - print("The response of KeysBetaApi->get_mpc_keys_list_by_user:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling KeysBetaApi->get_mpc_keys_list_by_user: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **user_id** | **str**| The id for the user | - -### Return type - -[**GetMpcKeysResponse**](GetMpcKeysResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | List of mpc keys | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLktleXNCZXRhQXBpCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gKmh0dHBzOi8vYXBpLmZpcmVibG9ja3MuaW8vdjEqCgpNZXRob2QgfCBIVFRQIHJlcXVlc3QgfCBEZXNjcmlwdGlvbgotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KWyoqZ2V0X21wY19rZXlzX2xpc3QqKl0oS2V5c0JldGFBcGkubWQjZ2V0X21wY19rZXlzX2xpc3QpIHwgKipHRVQqKiAva2V5cy9tcGMvbGlzdCB8IEdldCBsaXN0IG9mIG1wYyBrZXlzClsqKmdldF9tcGNfa2V5c19saXN0X2J5X3VzZXIqKl0oS2V5c0JldGFBcGkubWQjZ2V0X21wY19rZXlzX2xpc3RfYnlfdXNlcikgfCAqKkdFVCoqIC9rZXlzL21wYy9saXN0L3t1c2VySWR9IHwgR2V0IGxpc3Qgb2YgbXBjIGtleXMgYnkgJiN4NjA7dXNlcklkJiN4NjA7CgoKIyAqKmdldF9tcGNfa2V5c19saXN0KioKPiBHZXRNcGNLZXlzUmVzcG9uc2UgZ2V0X21wY19rZXlzX2xpc3QoKQoKR2V0IGxpc3Qgb2YgbXBjIGtleXMKClJldHVybnMgYSBsaXN0IG9mIE1QQyBzaWduaW5nIGtleXMgb2YgdGhlIHdvcmtzcGFjZS4gRm9yIGVhY2gga2V5LCB0aGUgbGlzdCBvZiBwbGF5ZXJzIGFzc29jaWF0ZWQgd2l0aCBpdCBpcyBhdHRhY2hlZC4KKipOb3RlOioqIApUaGlzIGVuZHBvaW50IGlzIGN1cnJlbnRseSBpbiBiZXRhIGFuZCBtaWdodCBiZSBzdWJqZWN0IHRvIGNoYW5nZXMuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9tcGNfa2V5c19yZXNwb25zZSBpbXBvcnQgR2V0TXBjS2V5c1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgbGlzdCBvZiBtcGMga2V5cwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Mua2V5c19iZXRhLmdldF9tcGNfa2V5c19saXN0KCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEtleXNCZXRhQXBpLT5nZXRfbXBjX2tleXNfbGlzdDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBLZXlzQmV0YUFwaS0+Z2V0X21wY19rZXlzX2xpc3Q6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgpUaGlzIGVuZHBvaW50IGRvZXMgbm90IG5lZWQgYW55IHBhcmFtZXRlci4KCiMjIyBSZXR1cm4gdHlwZQoKWyoqR2V0TXBjS2V5c1Jlc3BvbnNlKipdKEdldE1wY0tleXNSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IExpc3Qgb2YgbXBjIGtleXMgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9tcGNfa2V5c19saXN0X2J5X3VzZXIqKgo+IEdldE1wY0tleXNSZXNwb25zZSBnZXRfbXBjX2tleXNfbGlzdF9ieV91c2VyKHVzZXJfaWQpCgpHZXQgbGlzdCBvZiBtcGMga2V5cyBieSBgdXNlcklkYAoKUmV0dXJucyBhIGxpc3Qgb2YgTVBDIHNpZ25pbmcga2V5cyBvZiBhIHNwZWNpZmljIHVzZXIuIEZvciBlYWNoIGtleSwgdGhlIGxpc3Qgb2YgcGxheWVycyBhc3NvY2lhdGVkIHdpdGggaXQgaXMgYXR0YWNoZWQuCioqTm90ZToqKgpUaGlzIGVuZHBvaW50IGlzIGN1cnJlbnRseSBpbiBiZXRhIGFuZCBtaWdodCBiZSBzdWJqZWN0IHRvIGNoYW5nZXMuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9tcGNfa2V5c19yZXNwb25zZSBpbXBvcnQgR2V0TXBjS2V5c1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHVzZXJfaWQgPSAnNDZhOTI3NjctNWY5My00YTQ2LTllZWQtZjAxMjE5NmJiNGZjJyAjIHN0ciB8IFRoZSBpZCBmb3IgdGhlIHVzZXIKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgbGlzdCBvZiBtcGMga2V5cyBieSBgdXNlcklkYAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Mua2V5c19iZXRhLmdldF9tcGNfa2V5c19saXN0X2J5X3VzZXIodXNlcl9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIEtleXNCZXRhQXBpLT5nZXRfbXBjX2tleXNfbGlzdF9ieV91c2VyOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIEtleXNCZXRhQXBpLT5nZXRfbXBjX2tleXNfbGlzdF9ieV91c2VyOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip1c2VyX2lkKiogfCAqKnN0cioqfCBUaGUgaWQgZm9yIHRoZSB1c2VyIHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKkdldE1wY0tleXNSZXNwb25zZSoqXShHZXRNcGNLZXlzUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBMaXN0IG9mIG1wYyBrZXlzIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCg== \ No newline at end of file diff --git a/docs/LayerZeroAdapterCreateParams.md b/docs/LayerZeroAdapterCreateParams.md index 865732a7..0b3fa724 100644 --- a/docs/LayerZeroAdapterCreateParams.md +++ b/docs/LayerZeroAdapterCreateParams.md @@ -1,32 +1 @@ -# LayerZeroAdapterCreateParams - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**token_link_id** | **str** | The token link id of the base token to deploy the adapters for | -**delegate_address** | **str** | Address that will receive `CONTRACT_ADMIN_ROLE`. | -**default_admin_address** | **str** | Address that will receive `DEFAULT_ADMIN_ROLE` on the adapter contract. | -**pauser_address** | **str** | Address that will receive `PAUSER_ROLE`. | - -## Example - -```python -from fireblocks.models.layer_zero_adapter_create_params import LayerZeroAdapterCreateParams - -# TODO update the JSON string below -json = "{}" -# create an instance of LayerZeroAdapterCreateParams from a JSON string -layer_zero_adapter_create_params_instance = LayerZeroAdapterCreateParams.from_json(json) -# print the JSON string representation of the object -print(LayerZeroAdapterCreateParams.to_json()) - -# convert the object into a dict -layer_zero_adapter_create_params_dict = layer_zero_adapter_create_params_instance.to_dict() -# create an instance of LayerZeroAdapterCreateParams from a dict -layer_zero_adapter_create_params_from_dict = LayerZeroAdapterCreateParams.from_dict(layer_zero_adapter_create_params_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMYXllclplcm9BZGFwdGVyQ3JlYXRlUGFyYW1zCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnRva2VuX2xpbmtfaWQqKiB8ICoqc3RyKiogfCBUaGUgdG9rZW4gbGluayBpZCBvZiB0aGUgYmFzZSB0b2tlbiB0byBkZXBsb3kgdGhlIGFkYXB0ZXJzIGZvciB8IAoqKmRlbGVnYXRlX2FkZHJlc3MqKiB8ICoqc3RyKiogfCBBZGRyZXNzIHRoYXQgd2lsbCByZWNlaXZlICYjeDYwO0NPTlRSQUNUX0FETUlOX1JPTEUmI3g2MDsuIHwgCioqZGVmYXVsdF9hZG1pbl9hZGRyZXNzKiogfCAqKnN0cioqIHwgQWRkcmVzcyB0aGF0IHdpbGwgcmVjZWl2ZSAmI3g2MDtERUZBVUxUX0FETUlOX1JPTEUmI3g2MDsgb24gdGhlIGFkYXB0ZXIgY29udHJhY3QuIHwgCioqcGF1c2VyX2FkZHJlc3MqKiB8ICoqc3RyKiogfCBBZGRyZXNzIHRoYXQgd2lsbCByZWNlaXZlICYjeDYwO1BBVVNFUl9ST0xFJiN4NjA7LiB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGF5ZXJfemVyb19hZGFwdGVyX2NyZWF0ZV9wYXJhbXMgaW1wb3J0IExheWVyWmVyb0FkYXB0ZXJDcmVhdGVQYXJhbXMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExheWVyWmVyb0FkYXB0ZXJDcmVhdGVQYXJhbXMgZnJvbSBhIEpTT04gc3RyaW5nCmxheWVyX3plcm9fYWRhcHRlcl9jcmVhdGVfcGFyYW1zX2luc3RhbmNlID0gTGF5ZXJaZXJvQWRhcHRlckNyZWF0ZVBhcmFtcy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChMYXllclplcm9BZGFwdGVyQ3JlYXRlUGFyYW1zLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmxheWVyX3plcm9fYWRhcHRlcl9jcmVhdGVfcGFyYW1zX2RpY3QgPSBsYXllcl96ZXJvX2FkYXB0ZXJfY3JlYXRlX3BhcmFtc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGF5ZXJaZXJvQWRhcHRlckNyZWF0ZVBhcmFtcyBmcm9tIGEgZGljdApsYXllcl96ZXJvX2FkYXB0ZXJfY3JlYXRlX3BhcmFtc19mcm9tX2RpY3QgPSBMYXllclplcm9BZGFwdGVyQ3JlYXRlUGFyYW1zLmZyb21fZGljdChsYXllcl96ZXJvX2FkYXB0ZXJfY3JlYXRlX3BhcmFtc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/LbtPaymentInfo.md b/docs/LbtPaymentInfo.md index a59c97f5..737c57ea 100644 --- a/docs/LbtPaymentInfo.md +++ b/docs/LbtPaymentInfo.md @@ -1,37 +1 @@ -# LbtPaymentInfo - -LBT (Lebanese Bank Transfer) payment information for Lebanese bank transfers - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**rail** | **str** | The payment rail type for Lebanese bank transfers | -**addressing_system** | **str** | The addressing system used for Lebanese bank transfers (Bank Account Number) | -**account_holder_given_name** | **str** | The given name (first name) of the account holder | -**account_holder_surname** | **str** | The surname (last name) of the account holder | -**country** | **str** | The country for the transfer (ISO 3166-1 alpha-2 code) | -**account_number** | **str** | The bank account number | -**bank_name** | **str** | The name of the bank | -**bank_code** | **str** | The bank code or identifier | - -## Example - -```python -from fireblocks.models.lbt_payment_info import LbtPaymentInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of LbtPaymentInfo from a JSON string -lbt_payment_info_instance = LbtPaymentInfo.from_json(json) -# print the JSON string representation of the object -print(LbtPaymentInfo.to_json()) - -# convert the object into a dict -lbt_payment_info_dict = lbt_payment_info_instance.to_dict() -# create an instance of LbtPaymentInfo from a dict -lbt_payment_info_from_dict = LbtPaymentInfo.from_dict(lbt_payment_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMYnRQYXltZW50SW5mbwoKTEJUIChMZWJhbmVzZSBCYW5rIFRyYW5zZmVyKSBwYXltZW50IGluZm9ybWF0aW9uIGZvciBMZWJhbmVzZSBiYW5rIHRyYW5zZmVycwoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnJhaWwqKiB8ICoqc3RyKiogfCBUaGUgcGF5bWVudCByYWlsIHR5cGUgZm9yIExlYmFuZXNlIGJhbmsgdHJhbnNmZXJzIHwgCioqYWRkcmVzc2luZ19zeXN0ZW0qKiB8ICoqc3RyKiogfCBUaGUgYWRkcmVzc2luZyBzeXN0ZW0gdXNlZCBmb3IgTGViYW5lc2UgYmFuayB0cmFuc2ZlcnMgKEJhbmsgQWNjb3VudCBOdW1iZXIpIHwgCioqYWNjb3VudF9ob2xkZXJfZ2l2ZW5fbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBnaXZlbiBuYW1lIChmaXJzdCBuYW1lKSBvZiB0aGUgYWNjb3VudCBob2xkZXIgfCAKKiphY2NvdW50X2hvbGRlcl9zdXJuYW1lKiogfCAqKnN0cioqIHwgVGhlIHN1cm5hbWUgKGxhc3QgbmFtZSkgb2YgdGhlIGFjY291bnQgaG9sZGVyIHwgCioqY291bnRyeSoqIHwgKipzdHIqKiB8IFRoZSBjb3VudHJ5IGZvciB0aGUgdHJhbnNmZXIgKElTTyAzMTY2LTEgYWxwaGEtMiBjb2RlKSB8IAoqKmFjY291bnRfbnVtYmVyKiogfCAqKnN0cioqIHwgVGhlIGJhbmsgYWNjb3VudCBudW1iZXIgfCAKKipiYW5rX25hbWUqKiB8ICoqc3RyKiogfCBUaGUgbmFtZSBvZiB0aGUgYmFuayB8IAoqKmJhbmtfY29kZSoqIHwgKipzdHIqKiB8IFRoZSBiYW5rIGNvZGUgb3IgaWRlbnRpZmllciB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGJ0X3BheW1lbnRfaW5mbyBpbXBvcnQgTGJ0UGF5bWVudEluZm8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExidFBheW1lbnRJbmZvIGZyb20gYSBKU09OIHN0cmluZwpsYnRfcGF5bWVudF9pbmZvX2luc3RhbmNlID0gTGJ0UGF5bWVudEluZm8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoTGJ0UGF5bWVudEluZm8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbGJ0X3BheW1lbnRfaW5mb19kaWN0ID0gbGJ0X3BheW1lbnRfaW5mb19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGJ0UGF5bWVudEluZm8gZnJvbSBhIGRpY3QKbGJ0X3BheW1lbnRfaW5mb19mcm9tX2RpY3QgPSBMYnRQYXltZW50SW5mby5mcm9tX2RpY3QobGJ0X3BheW1lbnRfaW5mb19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/LeanAbiFunction.md b/docs/LeanAbiFunction.md index 59cb0c25..40776456 100644 --- a/docs/LeanAbiFunction.md +++ b/docs/LeanAbiFunction.md @@ -1,32 +1 @@ -# LeanAbiFunction - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | The function name | [optional] -**inputs** | [**List[ParameterWithValue]**](ParameterWithValue.md) | The function inputs | -**outputs** | [**List[ParameterWithValue]**](ParameterWithValue.md) | The function outputs | [optional] -**state_mutability** | **str** | The state mutability of the function (e.g., view, pure, nonpayable, payable) | [optional] - -## Example - -```python -from fireblocks.models.lean_abi_function import LeanAbiFunction - -# TODO update the JSON string below -json = "{}" -# create an instance of LeanAbiFunction from a JSON string -lean_abi_function_instance = LeanAbiFunction.from_json(json) -# print the JSON string representation of the object -print(LeanAbiFunction.to_json()) - -# convert the object into a dict -lean_abi_function_dict = lean_abi_function_instance.to_dict() -# create an instance of LeanAbiFunction from a dict -lean_abi_function_from_dict = LeanAbiFunction.from_dict(lean_abi_function_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWFuQWJpRnVuY3Rpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBmdW5jdGlvbiBuYW1lIHwgW29wdGlvbmFsXSAKKippbnB1dHMqKiB8IFsqKkxpc3RbUGFyYW1ldGVyV2l0aFZhbHVlXSoqXShQYXJhbWV0ZXJXaXRoVmFsdWUubWQpIHwgVGhlIGZ1bmN0aW9uIGlucHV0cyB8IAoqKm91dHB1dHMqKiB8IFsqKkxpc3RbUGFyYW1ldGVyV2l0aFZhbHVlXSoqXShQYXJhbWV0ZXJXaXRoVmFsdWUubWQpIHwgVGhlIGZ1bmN0aW9uIG91dHB1dHMgfCBbb3B0aW9uYWxdIAoqKnN0YXRlX211dGFiaWxpdHkqKiB8ICoqc3RyKiogfCBUaGUgc3RhdGUgbXV0YWJpbGl0eSBvZiB0aGUgZnVuY3Rpb24gKGUuZy4sIHZpZXcsIHB1cmUsIG5vbnBheWFibGUsIHBheWFibGUpIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlYW5fYWJpX2Z1bmN0aW9uIGltcG9ydCBMZWFuQWJpRnVuY3Rpb24KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExlYW5BYmlGdW5jdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmcKbGVhbl9hYmlfZnVuY3Rpb25faW5zdGFuY2UgPSBMZWFuQWJpRnVuY3Rpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoTGVhbkFiaUZ1bmN0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmxlYW5fYWJpX2Z1bmN0aW9uX2RpY3QgPSBsZWFuX2FiaV9mdW5jdGlvbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVhbkFiaUZ1bmN0aW9uIGZyb20gYSBkaWN0CmxlYW5fYWJpX2Z1bmN0aW9uX2Zyb21fZGljdCA9IExlYW5BYmlGdW5jdGlvbi5mcm9tX2RpY3QobGVhbl9hYmlfZnVuY3Rpb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/LeanContractDto.md b/docs/LeanContractDto.md index aa04bcd8..40e6ea73 100644 --- a/docs/LeanContractDto.md +++ b/docs/LeanContractDto.md @@ -1,37 +1 @@ -# LeanContractDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The unique identifier of the contract template | -**name** | **str** | The name of the contract template | -**description** | **str** | A short description of the contract template | -**attributes** | [**ContractAttributes**](ContractAttributes.md) | The attributes related to this contract template. It will be displayed in the tokenization page | [optional] -**is_public** | **bool** | Is this a contract that is viewable by all fireblocks's users or is it visible only for this workspace | -**can_deploy** | **bool** | True if the workspace allowed to deploy this contract, false otherwise | [optional] -**owner** | **str** | The workspace id of the owner of this contract template. If it's a private contract, only this workspace will be allowed to deploy it | [optional] -**vendor** | [**VendorDto**](VendorDto.md) | The details of the vendor of this contract template. Applicable only for public contract templates | [optional] -**type** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.lean_contract_dto import LeanContractDto - -# TODO update the JSON string below -json = "{}" -# create an instance of LeanContractDto from a JSON string -lean_contract_dto_instance = LeanContractDto.from_json(json) -# print the JSON string representation of the object -print(LeanContractDto.to_json()) - -# convert the object into a dict -lean_contract_dto_dict = lean_contract_dto_instance.to_dict() -# create an instance of LeanContractDto from a dict -lean_contract_dto_from_dict = LeanContractDto.from_dict(lean_contract_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWFuQ29udHJhY3REdG8KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvbnRyYWN0IHRlbXBsYXRlIHwgCioqbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBuYW1lIG9mIHRoZSBjb250cmFjdCB0ZW1wbGF0ZSB8IAoqKmRlc2NyaXB0aW9uKiogfCAqKnN0cioqIHwgQSBzaG9ydCBkZXNjcmlwdGlvbiBvZiB0aGUgY29udHJhY3QgdGVtcGxhdGUgfCAKKiphdHRyaWJ1dGVzKiogfCBbKipDb250cmFjdEF0dHJpYnV0ZXMqKl0oQ29udHJhY3RBdHRyaWJ1dGVzLm1kKSB8IFRoZSBhdHRyaWJ1dGVzIHJlbGF0ZWQgdG8gdGhpcyBjb250cmFjdCB0ZW1wbGF0ZS4gSXQgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIHRva2VuaXphdGlvbiBwYWdlIHwgW29wdGlvbmFsXSAKKippc19wdWJsaWMqKiB8ICoqYm9vbCoqIHwgSXMgdGhpcyBhIGNvbnRyYWN0IHRoYXQgaXMgdmlld2FibGUgYnkgYWxsIGZpcmVibG9ja3MmIzM5O3MgdXNlcnMgb3IgaXMgaXQgdmlzaWJsZSBvbmx5IGZvciB0aGlzIHdvcmtzcGFjZSB8IAoqKmNhbl9kZXBsb3kqKiB8ICoqYm9vbCoqIHwgVHJ1ZSBpZiB0aGUgd29ya3NwYWNlIGFsbG93ZWQgdG8gZGVwbG95IHRoaXMgY29udHJhY3QsIGZhbHNlIG90aGVyd2lzZSB8IFtvcHRpb25hbF0gCioqb3duZXIqKiB8ICoqc3RyKiogfCBUaGUgd29ya3NwYWNlIGlkIG9mIHRoZSBvd25lciBvZiB0aGlzIGNvbnRyYWN0IHRlbXBsYXRlLiBJZiBpdCYjMzk7cyBhIHByaXZhdGUgY29udHJhY3QsIG9ubHkgdGhpcyB3b3Jrc3BhY2Ugd2lsbCBiZSBhbGxvd2VkIHRvIGRlcGxveSBpdCB8IFtvcHRpb25hbF0gCioqdmVuZG9yKiogfCBbKipWZW5kb3JEdG8qKl0oVmVuZG9yRHRvLm1kKSB8IFRoZSBkZXRhaWxzIG9mIHRoZSB2ZW5kb3Igb2YgdGhpcyBjb250cmFjdCB0ZW1wbGF0ZS4gQXBwbGljYWJsZSBvbmx5IGZvciBwdWJsaWMgY29udHJhY3QgdGVtcGxhdGVzIHwgW29wdGlvbmFsXSAKKip0eXBlKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlYW5fY29udHJhY3RfZHRvIGltcG9ydCBMZWFuQ29udHJhY3REdG8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExlYW5Db250cmFjdER0byBmcm9tIGEgSlNPTiBzdHJpbmcKbGVhbl9jb250cmFjdF9kdG9faW5zdGFuY2UgPSBMZWFuQ29udHJhY3REdG8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoTGVhbkNvbnRyYWN0RHRvLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmxlYW5fY29udHJhY3RfZHRvX2RpY3QgPSBsZWFuX2NvbnRyYWN0X2R0b19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVhbkNvbnRyYWN0RHRvIGZyb20gYSBkaWN0CmxlYW5fY29udHJhY3RfZHRvX2Zyb21fZGljdCA9IExlYW5Db250cmFjdER0by5mcm9tX2RpY3QobGVhbl9jb250cmFjdF9kdG9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/LeanDeployedContractResponseDto.md b/docs/LeanDeployedContractResponseDto.md index ba16f84d..47351f1c 100644 --- a/docs/LeanDeployedContractResponseDto.md +++ b/docs/LeanDeployedContractResponseDto.md @@ -1,32 +1 @@ -# LeanDeployedContractResponseDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The deployed contract data identifier | -**contract_address** | **str** | The contract's onchain address | -**contract_template_id** | **str** | The contract template identifier | -**blockchain_id** | **str** | | - -## Example - -```python -from fireblocks.models.lean_deployed_contract_response_dto import LeanDeployedContractResponseDto - -# TODO update the JSON string below -json = "{}" -# create an instance of LeanDeployedContractResponseDto from a JSON string -lean_deployed_contract_response_dto_instance = LeanDeployedContractResponseDto.from_json(json) -# print the JSON string representation of the object -print(LeanDeployedContractResponseDto.to_json()) - -# convert the object into a dict -lean_deployed_contract_response_dto_dict = lean_deployed_contract_response_dto_instance.to_dict() -# create an instance of LeanDeployedContractResponseDto from a dict -lean_deployed_contract_response_dto_from_dict = LeanDeployedContractResponseDto.from_dict(lean_deployed_contract_response_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWFuRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgVGhlIGRlcGxveWVkIGNvbnRyYWN0IGRhdGEgaWRlbnRpZmllciB8IAoqKmNvbnRyYWN0X2FkZHJlc3MqKiB8ICoqc3RyKiogfCBUaGUgY29udHJhY3QmIzM5O3Mgb25jaGFpbiBhZGRyZXNzIHwgCioqY29udHJhY3RfdGVtcGxhdGVfaWQqKiB8ICoqc3RyKiogfCBUaGUgY29udHJhY3QgdGVtcGxhdGUgaWRlbnRpZmllciB8IAoqKmJsb2NrY2hhaW5faWQqKiB8ICoqc3RyKiogfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlYW5fZGVwbG95ZWRfY29udHJhY3RfcmVzcG9uc2VfZHRvIGltcG9ydCBMZWFuRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWFuRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvIGZyb20gYSBKU09OIHN0cmluZwpsZWFuX2RlcGxveWVkX2NvbnRyYWN0X3Jlc3BvbnNlX2R0b19pbnN0YW5jZSA9IExlYW5EZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoTGVhbkRlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0by50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApsZWFuX2RlcGxveWVkX2NvbnRyYWN0X3Jlc3BvbnNlX2R0b19kaWN0ID0gbGVhbl9kZXBsb3llZF9jb250cmFjdF9yZXNwb25zZV9kdG9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExlYW5EZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8gZnJvbSBhIGRpY3QKbGVhbl9kZXBsb3llZF9jb250cmFjdF9yZXNwb25zZV9kdG9fZnJvbV9kaWN0ID0gTGVhbkRlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0by5mcm9tX2RpY3QobGVhbl9kZXBsb3llZF9jb250cmFjdF9yZXNwb25zZV9kdG9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/LegacyAmountAggregationTimePeriodMethod.md b/docs/LegacyAmountAggregationTimePeriodMethod.md index 46f595a0..44913d74 100644 --- a/docs/LegacyAmountAggregationTimePeriodMethod.md +++ b/docs/LegacyAmountAggregationTimePeriodMethod.md @@ -1,13 +1 @@ -# LegacyAmountAggregationTimePeriodMethod - -* PER_SINGLE_MATCH - Apply the limit to each listed entity * ACROSS_ALL_MATCHES - Apply the limit to the sum of all listed entities - -## Enum - -* `PER_SINGLE_MATCH` (value: `'PER_SINGLE_MATCH'`) - -* `ACROSS_ALL_MATCHES` (value: `'ACROSS_ALL_MATCHES'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lBbW91bnRBZ2dyZWdhdGlvblRpbWVQZXJpb2RNZXRob2QKCiogUEVSX1NJTkdMRV9NQVRDSCAtIEFwcGx5IHRoZSBsaW1pdCB0byBlYWNoIGxpc3RlZCBlbnRpdHkgKiBBQ1JPU1NfQUxMX01BVENIRVMgLSBBcHBseSB0aGUgbGltaXQgdG8gdGhlIHN1bSBvZiBhbGwgbGlzdGVkIGVudGl0aWVzIAoKIyMgRW51bQoKKiBgUEVSX1NJTkdMRV9NQVRDSGAgKHZhbHVlOiBgJ1BFUl9TSU5HTEVfTUFUQ0gnYCkKCiogYEFDUk9TU19BTExfTUFUQ0hFU2AgKHZhbHVlOiBgJ0FDUk9TU19BTExfTUFUQ0hFUydgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/LegacyDraftResponse.md b/docs/LegacyDraftResponse.md index b036ebda..00cfbdbc 100644 --- a/docs/LegacyDraftResponse.md +++ b/docs/LegacyDraftResponse.md @@ -1,33 +1 @@ -# LegacyDraftResponse - -Response object for draft operations - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status** | **str** | Operation status | -**rules** | [**List[LegacyPolicyRule]**](LegacyPolicyRule.md) | Draft rules | -**draft_id** | **str** | Draft unique id | -**metadata** | [**LegacyPolicyMetadata**](LegacyPolicyMetadata.md) | | - -## Example - -```python -from fireblocks.models.legacy_draft_response import LegacyDraftResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyDraftResponse from a JSON string -legacy_draft_response_instance = LegacyDraftResponse.from_json(json) -# print the JSON string representation of the object -print(LegacyDraftResponse.to_json()) - -# convert the object into a dict -legacy_draft_response_dict = legacy_draft_response_instance.to_dict() -# create an instance of LegacyDraftResponse from a dict -legacy_draft_response_from_dict = LegacyDraftResponse.from_dict(legacy_draft_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lEcmFmdFJlc3BvbnNlCgpSZXNwb25zZSBvYmplY3QgZm9yIGRyYWZ0IG9wZXJhdGlvbnMKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzdGF0dXMqKiB8ICoqc3RyKiogfCBPcGVyYXRpb24gc3RhdHVzIHwgCioqcnVsZXMqKiB8IFsqKkxpc3RbTGVnYWN5UG9saWN5UnVsZV0qKl0oTGVnYWN5UG9saWN5UnVsZS5tZCkgfCBEcmFmdCBydWxlcyB8IAoqKmRyYWZ0X2lkKiogfCAqKnN0cioqIHwgRHJhZnQgdW5pcXVlIGlkIHwgCioqbWV0YWRhdGEqKiB8IFsqKkxlZ2FjeVBvbGljeU1ldGFkYXRhKipdKExlZ2FjeVBvbGljeU1ldGFkYXRhLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X2RyYWZ0X3Jlc3BvbnNlIGltcG9ydCBMZWdhY3lEcmFmdFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lEcmFmdFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpsZWdhY3lfZHJhZnRfcmVzcG9uc2VfaW5zdGFuY2UgPSBMZWdhY3lEcmFmdFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KExlZ2FjeURyYWZ0UmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbGVnYWN5X2RyYWZ0X3Jlc3BvbnNlX2RpY3QgPSBsZWdhY3lfZHJhZnRfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeURyYWZ0UmVzcG9uc2UgZnJvbSBhIGRpY3QKbGVnYWN5X2RyYWZ0X3Jlc3BvbnNlX2Zyb21fZGljdCA9IExlZ2FjeURyYWZ0UmVzcG9uc2UuZnJvbV9kaWN0KGxlZ2FjeV9kcmFmdF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/LegacyDraftReviewAndValidationResponse.md b/docs/LegacyDraftReviewAndValidationResponse.md index 53dfa809..1bdd3374 100644 --- a/docs/LegacyDraftReviewAndValidationResponse.md +++ b/docs/LegacyDraftReviewAndValidationResponse.md @@ -1,31 +1 @@ -# LegacyDraftReviewAndValidationResponse - -Draft validation - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**draft_response** | [**LegacyDraftResponse**](LegacyDraftResponse.md) | | -**validation** | [**LegacyPolicyValidation**](LegacyPolicyValidation.md) | | - -## Example - -```python -from fireblocks.models.legacy_draft_review_and_validation_response import LegacyDraftReviewAndValidationResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyDraftReviewAndValidationResponse from a JSON string -legacy_draft_review_and_validation_response_instance = LegacyDraftReviewAndValidationResponse.from_json(json) -# print the JSON string representation of the object -print(LegacyDraftReviewAndValidationResponse.to_json()) - -# convert the object into a dict -legacy_draft_review_and_validation_response_dict = legacy_draft_review_and_validation_response_instance.to_dict() -# create an instance of LegacyDraftReviewAndValidationResponse from a dict -legacy_draft_review_and_validation_response_from_dict = LegacyDraftReviewAndValidationResponse.from_dict(legacy_draft_review_and_validation_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZQoKRHJhZnQgdmFsaWRhdGlvbgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmRyYWZ0X3Jlc3BvbnNlKiogfCBbKipMZWdhY3lEcmFmdFJlc3BvbnNlKipdKExlZ2FjeURyYWZ0UmVzcG9uc2UubWQpIHwgIHwgCioqdmFsaWRhdGlvbioqIHwgWyoqTGVnYWN5UG9saWN5VmFsaWRhdGlvbioqXShMZWdhY3lQb2xpY3lWYWxpZGF0aW9uLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X2RyYWZ0X3Jldmlld19hbmRfdmFsaWRhdGlvbl9yZXNwb25zZSBpbXBvcnQgTGVnYWN5RHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeURyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpsZWdhY3lfZHJhZnRfcmV2aWV3X2FuZF92YWxpZGF0aW9uX3Jlc3BvbnNlX2luc3RhbmNlID0gTGVnYWN5RHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoTGVnYWN5RHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbGVnYWN5X2RyYWZ0X3Jldmlld19hbmRfdmFsaWRhdGlvbl9yZXNwb25zZV9kaWN0ID0gbGVnYWN5X2RyYWZ0X3Jldmlld19hbmRfdmFsaWRhdGlvbl9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5RHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UgZnJvbSBhIGRpY3QKbGVnYWN5X2RyYWZ0X3Jldmlld19hbmRfdmFsaWRhdGlvbl9yZXNwb25zZV9mcm9tX2RpY3QgPSBMZWdhY3lEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZS5mcm9tX2RpY3QobGVnYWN5X2RyYWZ0X3Jldmlld19hbmRfdmFsaWRhdGlvbl9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/LegacyPolicyAndValidationResponse.md b/docs/LegacyPolicyAndValidationResponse.md index 3332dba4..22af112f 100644 --- a/docs/LegacyPolicyAndValidationResponse.md +++ b/docs/LegacyPolicyAndValidationResponse.md @@ -1,31 +1 @@ -# LegacyPolicyAndValidationResponse - -Policy validation - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**policy** | [**LegacyPolicyResponse**](LegacyPolicyResponse.md) | | -**validation** | [**LegacyPolicyValidation**](LegacyPolicyValidation.md) | | - -## Example - -```python -from fireblocks.models.legacy_policy_and_validation_response import LegacyPolicyAndValidationResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyPolicyAndValidationResponse from a JSON string -legacy_policy_and_validation_response_instance = LegacyPolicyAndValidationResponse.from_json(json) -# print the JSON string representation of the object -print(LegacyPolicyAndValidationResponse.to_json()) - -# convert the object into a dict -legacy_policy_and_validation_response_dict = legacy_policy_and_validation_response_instance.to_dict() -# create an instance of LegacyPolicyAndValidationResponse from a dict -legacy_policy_and_validation_response_from_dict = LegacyPolicyAndValidationResponse.from_dict(legacy_policy_and_validation_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2UKClBvbGljeSB2YWxpZGF0aW9uCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcG9saWN5KiogfCBbKipMZWdhY3lQb2xpY3lSZXNwb25zZSoqXShMZWdhY3lQb2xpY3lSZXNwb25zZS5tZCkgfCAgfCAKKip2YWxpZGF0aW9uKiogfCBbKipMZWdhY3lQb2xpY3lWYWxpZGF0aW9uKipdKExlZ2FjeVBvbGljeVZhbGlkYXRpb24ubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X2FuZF92YWxpZGF0aW9uX3Jlc3BvbnNlIGltcG9ydCBMZWdhY3lQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVBvbGljeUFuZFZhbGlkYXRpb25SZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKbGVnYWN5X3BvbGljeV9hbmRfdmFsaWRhdGlvbl9yZXNwb25zZV9pbnN0YW5jZSA9IExlZ2FjeVBvbGljeUFuZFZhbGlkYXRpb25SZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChMZWdhY3lQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbGVnYWN5X3BvbGljeV9hbmRfdmFsaWRhdGlvbl9yZXNwb25zZV9kaWN0ID0gbGVnYWN5X3BvbGljeV9hbmRfdmFsaWRhdGlvbl9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlIGZyb20gYSBkaWN0CmxlZ2FjeV9wb2xpY3lfYW5kX3ZhbGlkYXRpb25fcmVzcG9uc2VfZnJvbV9kaWN0ID0gTGVnYWN5UG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlLmZyb21fZGljdChsZWdhY3lfcG9saWN5X2FuZF92YWxpZGF0aW9uX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/LegacyPolicyCheckResult.md b/docs/LegacyPolicyCheckResult.md index 79b2c404..2fb00f5c 100644 --- a/docs/LegacyPolicyCheckResult.md +++ b/docs/LegacyPolicyCheckResult.md @@ -1,31 +1 @@ -# LegacyPolicyCheckResult - -Policy rules validation result - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**errors** | **float** | Number of errors | -**results** | [**List[LegacyPolicyRuleCheckResult]**](LegacyPolicyRuleCheckResult.md) | A set of validation results | - -## Example - -```python -from fireblocks.models.legacy_policy_check_result import LegacyPolicyCheckResult - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyPolicyCheckResult from a JSON string -legacy_policy_check_result_instance = LegacyPolicyCheckResult.from_json(json) -# print the JSON string representation of the object -print(LegacyPolicyCheckResult.to_json()) - -# convert the object into a dict -legacy_policy_check_result_dict = legacy_policy_check_result_instance.to_dict() -# create an instance of LegacyPolicyCheckResult from a dict -legacy_policy_check_result_from_dict = LegacyPolicyCheckResult.from_dict(legacy_policy_check_result_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lDaGVja1Jlc3VsdAoKUG9saWN5IHJ1bGVzIHZhbGlkYXRpb24gcmVzdWx0CgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZXJyb3JzKiogfCAqKmZsb2F0KiogfCBOdW1iZXIgb2YgZXJyb3JzIHwgCioqcmVzdWx0cyoqIHwgWyoqTGlzdFtMZWdhY3lQb2xpY3lSdWxlQ2hlY2tSZXN1bHRdKipdKExlZ2FjeVBvbGljeVJ1bGVDaGVja1Jlc3VsdC5tZCkgfCBBIHNldCBvZiB2YWxpZGF0aW9uIHJlc3VsdHMgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfY2hlY2tfcmVzdWx0IGltcG9ydCBMZWdhY3lQb2xpY3lDaGVja1Jlc3VsdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5Q2hlY2tSZXN1bHQgZnJvbSBhIEpTT04gc3RyaW5nCmxlZ2FjeV9wb2xpY3lfY2hlY2tfcmVzdWx0X2luc3RhbmNlID0gTGVnYWN5UG9saWN5Q2hlY2tSZXN1bHQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoTGVnYWN5UG9saWN5Q2hlY2tSZXN1bHQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbGVnYWN5X3BvbGljeV9jaGVja19yZXN1bHRfZGljdCA9IGxlZ2FjeV9wb2xpY3lfY2hlY2tfcmVzdWx0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lDaGVja1Jlc3VsdCBmcm9tIGEgZGljdApsZWdhY3lfcG9saWN5X2NoZWNrX3Jlc3VsdF9mcm9tX2RpY3QgPSBMZWdhY3lQb2xpY3lDaGVja1Jlc3VsdC5mcm9tX2RpY3QobGVnYWN5X3BvbGljeV9jaGVja19yZXN1bHRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/LegacyPolicyMetadata.md b/docs/LegacyPolicyMetadata.md index 6dd4f984..da383b9a 100644 --- a/docs/LegacyPolicyMetadata.md +++ b/docs/LegacyPolicyMetadata.md @@ -1,33 +1 @@ -# LegacyPolicyMetadata - -Policy related metadata - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**edited_by** | **str** | The user id of the user who last edited the policy | [optional] -**edited_at** | **str** | The timestamp of the last edit of the policy | [optional] -**published_by** | **str** | The user id of the user who last published the policy | [optional] -**published_at** | **str** | The timestamp of the last publish of the policy | [optional] - -## Example - -```python -from fireblocks.models.legacy_policy_metadata import LegacyPolicyMetadata - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyPolicyMetadata from a JSON string -legacy_policy_metadata_instance = LegacyPolicyMetadata.from_json(json) -# print the JSON string representation of the object -print(LegacyPolicyMetadata.to_json()) - -# convert the object into a dict -legacy_policy_metadata_dict = legacy_policy_metadata_instance.to_dict() -# create an instance of LegacyPolicyMetadata from a dict -legacy_policy_metadata_from_dict = LegacyPolicyMetadata.from_dict(legacy_policy_metadata_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lNZXRhZGF0YQoKUG9saWN5IHJlbGF0ZWQgbWV0YWRhdGEKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiplZGl0ZWRfYnkqKiB8ICoqc3RyKiogfCBUaGUgdXNlciBpZCBvZiB0aGUgdXNlciB3aG8gbGFzdCBlZGl0ZWQgdGhlIHBvbGljeSB8IFtvcHRpb25hbF0gCioqZWRpdGVkX2F0KiogfCAqKnN0cioqIHwgVGhlIHRpbWVzdGFtcCBvZiB0aGUgbGFzdCBlZGl0IG9mIHRoZSBwb2xpY3kgfCBbb3B0aW9uYWxdIAoqKnB1Ymxpc2hlZF9ieSoqIHwgKipzdHIqKiB8IFRoZSB1c2VyIGlkIG9mIHRoZSB1c2VyIHdobyBsYXN0IHB1Ymxpc2hlZCB0aGUgcG9saWN5IHwgW29wdGlvbmFsXSAKKipwdWJsaXNoZWRfYXQqKiB8ICoqc3RyKiogfCBUaGUgdGltZXN0YW1wIG9mIHRoZSBsYXN0IHB1Ymxpc2ggb2YgdGhlIHBvbGljeSB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X21ldGFkYXRhIGltcG9ydCBMZWdhY3lQb2xpY3lNZXRhZGF0YQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5TWV0YWRhdGEgZnJvbSBhIEpTT04gc3RyaW5nCmxlZ2FjeV9wb2xpY3lfbWV0YWRhdGFfaW5zdGFuY2UgPSBMZWdhY3lQb2xpY3lNZXRhZGF0YS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChMZWdhY3lQb2xpY3lNZXRhZGF0YS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApsZWdhY3lfcG9saWN5X21ldGFkYXRhX2RpY3QgPSBsZWdhY3lfcG9saWN5X21ldGFkYXRhX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lNZXRhZGF0YSBmcm9tIGEgZGljdApsZWdhY3lfcG9saWN5X21ldGFkYXRhX2Zyb21fZGljdCA9IExlZ2FjeVBvbGljeU1ldGFkYXRhLmZyb21fZGljdChsZWdhY3lfcG9saWN5X21ldGFkYXRhX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/LegacyPolicyResponse.md b/docs/LegacyPolicyResponse.md index 8d78ea86..7759d29b 100644 --- a/docs/LegacyPolicyResponse.md +++ b/docs/LegacyPolicyResponse.md @@ -1,31 +1 @@ -# LegacyPolicyResponse - -Response object for policy operations - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**rules** | [**List[LegacyPolicyRule]**](LegacyPolicyRule.md) | A set of policy rules | -**metadata** | [**LegacyPolicyMetadata**](LegacyPolicyMetadata.md) | | - -## Example - -```python -from fireblocks.models.legacy_policy_response import LegacyPolicyResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyPolicyResponse from a JSON string -legacy_policy_response_instance = LegacyPolicyResponse.from_json(json) -# print the JSON string representation of the object -print(LegacyPolicyResponse.to_json()) - -# convert the object into a dict -legacy_policy_response_dict = legacy_policy_response_instance.to_dict() -# create an instance of LegacyPolicyResponse from a dict -legacy_policy_response_from_dict = LegacyPolicyResponse.from_dict(legacy_policy_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lSZXNwb25zZQoKUmVzcG9uc2Ugb2JqZWN0IGZvciBwb2xpY3kgb3BlcmF0aW9ucwoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnJ1bGVzKiogfCBbKipMaXN0W0xlZ2FjeVBvbGljeVJ1bGVdKipdKExlZ2FjeVBvbGljeVJ1bGUubWQpIHwgQSBzZXQgb2YgcG9saWN5IHJ1bGVzIHwgCioqbWV0YWRhdGEqKiB8IFsqKkxlZ2FjeVBvbGljeU1ldGFkYXRhKipdKExlZ2FjeVBvbGljeU1ldGFkYXRhLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9yZXNwb25zZSBpbXBvcnQgTGVnYWN5UG9saWN5UmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVBvbGljeVJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpsZWdhY3lfcG9saWN5X3Jlc3BvbnNlX2luc3RhbmNlID0gTGVnYWN5UG9saWN5UmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoTGVnYWN5UG9saWN5UmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbGVnYWN5X3BvbGljeV9yZXNwb25zZV9kaWN0ID0gbGVnYWN5X3BvbGljeV9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5UmVzcG9uc2UgZnJvbSBhIGRpY3QKbGVnYWN5X3BvbGljeV9yZXNwb25zZV9mcm9tX2RpY3QgPSBMZWdhY3lQb2xpY3lSZXNwb25zZS5mcm9tX2RpY3QobGVnYWN5X3BvbGljeV9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/LegacyPolicyRule.md b/docs/LegacyPolicyRule.md index 54809a39..76f59c51 100644 --- a/docs/LegacyPolicyRule.md +++ b/docs/LegacyPolicyRule.md @@ -1,58 +1 @@ -# LegacyPolicyRule - -Policy rule which is enforced on transactions - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**operator** | **str** | (deprecated - replaced by \"operators\") | Defines users who can initiate the type of transaction to which the rule applies. options are * \"*\" - All users are allowed * Specific User id | [optional] -**operators** | [**LegacyPolicyRuleOperators**](LegacyPolicyRuleOperators.md) | | [optional] -**transaction_type** | **str** | Defines the type of transaction to which the rule applies. * TRANSFER - Default. Transfers funds from one account to another * CONTRACT_CALL - Calls a smart contract, mainly for DeFi operations. * APPROVE - Allows a smart contract to withdraw from a designated wallet. * MINT - Perform a mint operation (increase supply) on a supported token * BURN - Perform a burn operation (reduce supply) on a supported token * SUPPLY - Use for DeFi to lend assets * REDEEM - Use for DeFi to get lending back * STAKE - Allows you to allocate and lock certain assets for earning staking rewards. * RAW - An off-chain message with no predefined format, use it to sign any message with your private key. * TYPED_MESSAGE - An off-chain message type that follows a predefined format, used to sign specific messages that are not actual transactions. * PROGRAM_CALL - In Solana refers to invoking on-chain programs (smart contracts) to execute transactions and interact with the blockchain. | [optional] -**designated_signer** | **str** | (deprecated - replaced by \"designatedSigners\") Id representing the user who signs transactions that match a specific rule | [optional] -**designated_signers** | [**LegacyPolicyRuleDesignatedSigners**](LegacyPolicyRuleDesignatedSigners.md) | | [optional] -**type** | **str** | Policy rule type | -**action** | **str** | Defines what occurs when a transaction meets the rule's criteria * ALLOW - The transaction goes through and can be signed without requiring additional approvals * BLOCK - The transaction is automatically blocked * 2-TIER - Only these users or user groups can approve If any of them reject the transaction before the required approval threshold is met, the transaction doesn't go through The list of entities are set is \"authorizationGroups\" field | -**asset** | **str** | Defines the type of asset being transacted, options are * \"*\" - All assets * Specific asset | -**src_type** | [**LegacyPolicySrcOrDestType**](LegacyPolicySrcOrDestType.md) | (deprecated - replaced by \"src\") source account type | [optional] -**src_sub_type** | [**LegacyPolicySrcOrDestSubType**](LegacyPolicySrcOrDestSubType.md) | (deprecated - replaced by \"src\") source sub account type | [optional] -**src_id** | **str** | (deprecated - replaced by \"src\") source account id | [optional] -**src** | [**LegacyPolicyRuleSrc**](LegacyPolicyRuleSrc.md) | | [optional] -**dst_type** | [**LegacyPolicySrcOrDestType**](LegacyPolicySrcOrDestType.md) | (deprecated - replaced by \"dst\") destination account type | [optional] -**dst_sub_type** | [**LegacyPolicySrcOrDestSubType**](LegacyPolicySrcOrDestSubType.md) | (deprecated - replaced by \"dst\") destination sub account type | [optional] -**dst_id** | **str** | (deprecated - replaced by \"dst\") destination account id | [optional] -**dst** | [**LegacyPolicyRuleDst**](LegacyPolicyRuleDst.md) | | [optional] -**dst_address_type** | **str** | Defines whether the destination to which you are sending funds must be whitelisted, to allow one-time transfers to non-whitelisted external addresses, or both. By default, you can only transfer to an external address after it’s whitelisted. * WHITELISTED - Can only be sent to whitelisted addresses. * ONE_TIME - Can only be sent to non-whitelisted external addresses. * \"*\" - can be sent to whitelisted addresses or non-whitelisted external | [optional] -**amount_currency** | **str** | * USD - Limits the amount of any asset users can transfer based on the USD equivalent of the asset. * EUR - Limits the amount of any asset users can transfer based on the EURO equivalent of the asset. * NATIVE - Limits the amount of an asset a user can transfer when using a specific asset. | -**amount_scope** | **str** | * SINGLE_TX - limit applies to a single transaction * TIMEFRAME - limit applies to all transactions within the defined time period | -**amount** | [**LegacyPolicyRuleAmount**](LegacyPolicyRuleAmount.md) | | -**period_sec** | **float** | Time period in seconds applied by the amountScope field to accumulate transferred amounts in transactions that match the rule, until the total exceeds the value you specify under Minimum. When the specified amount is reached within that period, whether by one or many transactions, further transactions in that period either fail or require more approvals. | -**authorizers** | **List[str]** | (deprecated - replaced by \"authorizationGroups\") Allowed entities which can approves a transaction | [optional] -**authorizers_count** | **float** | (deprecated - replaced by \"authorizationGroups\") Min amount of entities which are needed to approve a transaction | [optional] -**authorization_groups** | [**LegacyPolicyRuleAuthorizationGroups**](LegacyPolicyRuleAuthorizationGroups.md) | | [optional] -**amount_aggregation** | [**LegacyPolicyRuleAmountAggregation**](LegacyPolicyRuleAmountAggregation.md) | | [optional] -**raw_message_signing** | [**LegacyPolicyRuleRawMessageSigning**](LegacyPolicyRuleRawMessageSigning.md) | | [optional] -**apply_for_approve** | **bool** | Applying this rule over APPROVE type transactions (can only be enabled when rule's transaction type is TRANSFER) | [optional] -**apply_for_typed_message** | **bool** | Applying this rule over TYPED_MESSAGE type transactions (can only be enabled when rule's transaction type is CONTRACT_CALL) | [optional] -**external_descriptor** | **str** | A unique id identifying the rule | [optional] - -## Example - -```python -from fireblocks.models.legacy_policy_rule import LegacyPolicyRule - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyPolicyRule from a JSON string -legacy_policy_rule_instance = LegacyPolicyRule.from_json(json) -# print the JSON string representation of the object -print(LegacyPolicyRule.to_json()) - -# convert the object into a dict -legacy_policy_rule_dict = legacy_policy_rule_instance.to_dict() -# create an instance of LegacyPolicyRule from a dict -legacy_policy_rule_from_dict = LegacyPolicyRule.from_dict(legacy_policy_rule_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lSdWxlCgpQb2xpY3kgcnVsZSB3aGljaCBpcyBlbmZvcmNlZCBvbiB0cmFuc2FjdGlvbnMKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipvcGVyYXRvcioqIHwgKipzdHIqKiB8IChkZXByZWNhdGVkIC0gcmVwbGFjZWQgYnkgXCZxdW90O29wZXJhdG9yc1wmcXVvdDspICB8IERlZmluZXMgdXNlcnMgd2hvIGNhbiBpbml0aWF0ZSB0aGUgdHlwZSBvZiB0cmFuc2FjdGlvbiB0byB3aGljaCB0aGUgcnVsZSBhcHBsaWVzLiBvcHRpb25zIGFyZSAqIFwmcXVvdDsqXCZxdW90OyAtIEFsbCB1c2VycyBhcmUgYWxsb3dlZCAqIFNwZWNpZmljIFVzZXIgaWQgfCBbb3B0aW9uYWxdIAoqKm9wZXJhdG9ycyoqIHwgWyoqTGVnYWN5UG9saWN5UnVsZU9wZXJhdG9ycyoqXShMZWdhY3lQb2xpY3lSdWxlT3BlcmF0b3JzLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqdHJhbnNhY3Rpb25fdHlwZSoqIHwgKipzdHIqKiB8IERlZmluZXMgdGhlIHR5cGUgb2YgdHJhbnNhY3Rpb24gdG8gd2hpY2ggdGhlIHJ1bGUgYXBwbGllcy4gICAqIFRSQU5TRkVSIC0gRGVmYXVsdC4gVHJhbnNmZXJzIGZ1bmRzIGZyb20gb25lIGFjY291bnQgdG8gYW5vdGhlciAgICogQ09OVFJBQ1RfQ0FMTCAtIENhbGxzIGEgc21hcnQgY29udHJhY3QsIG1haW5seSBmb3IgRGVGaSBvcGVyYXRpb25zLiAgICogQVBQUk9WRSAtIEFsbG93cyBhIHNtYXJ0IGNvbnRyYWN0IHRvIHdpdGhkcmF3IGZyb20gYSBkZXNpZ25hdGVkIHdhbGxldC4gICAqIE1JTlQgLSBQZXJmb3JtIGEgbWludCBvcGVyYXRpb24gKGluY3JlYXNlIHN1cHBseSkgb24gYSBzdXBwb3J0ZWQgdG9rZW4gICAqIEJVUk4gLSBQZXJmb3JtIGEgYnVybiBvcGVyYXRpb24gKHJlZHVjZSBzdXBwbHkpIG9uIGEgc3VwcG9ydGVkIHRva2VuICAgKiBTVVBQTFkgLSBVc2UgZm9yIERlRmkgdG8gbGVuZCBhc3NldHMgICAqIFJFREVFTSAtIFVzZSBmb3IgRGVGaSB0byBnZXQgbGVuZGluZyBiYWNrICAgKiBTVEFLRSAtIEFsbG93cyB5b3UgdG8gYWxsb2NhdGUgYW5kIGxvY2sgY2VydGFpbiBhc3NldHMgZm9yIGVhcm5pbmcgc3Rha2luZyByZXdhcmRzLiAgICogUkFXIC0gQW4gb2ZmLWNoYWluIG1lc3NhZ2Ugd2l0aCBubyBwcmVkZWZpbmVkIGZvcm1hdCwgdXNlIGl0IHRvIHNpZ24gYW55IG1lc3NhZ2Ugd2l0aCB5b3VyIHByaXZhdGUga2V5LiAgICogVFlQRURfTUVTU0FHRSAtIEFuIG9mZi1jaGFpbiBtZXNzYWdlIHR5cGUgdGhhdCBmb2xsb3dzIGEgcHJlZGVmaW5lZCBmb3JtYXQsIHVzZWQgdG8gc2lnbiBzcGVjaWZpYyBtZXNzYWdlcyB0aGF0IGFyZSBub3QgYWN0dWFsIHRyYW5zYWN0aW9ucy4gICAqIFBST0dSQU1fQ0FMTCAtIEluIFNvbGFuYSByZWZlcnMgdG8gaW52b2tpbmcgb24tY2hhaW4gcHJvZ3JhbXMgKHNtYXJ0IGNvbnRyYWN0cykgdG8gZXhlY3V0ZSB0cmFuc2FjdGlvbnMgYW5kIGludGVyYWN0IHdpdGggdGhlIGJsb2NrY2hhaW4uICB8IFtvcHRpb25hbF0gCioqZGVzaWduYXRlZF9zaWduZXIqKiB8ICoqc3RyKiogfCAoZGVwcmVjYXRlZCAtIHJlcGxhY2VkIGJ5IFwmcXVvdDtkZXNpZ25hdGVkU2lnbmVyc1wmcXVvdDspIElkIHJlcHJlc2VudGluZyB0aGUgdXNlciB3aG8gc2lnbnMgdHJhbnNhY3Rpb25zIHRoYXQgbWF0Y2ggYSBzcGVjaWZpYyBydWxlIHwgW29wdGlvbmFsXSAKKipkZXNpZ25hdGVkX3NpZ25lcnMqKiB8IFsqKkxlZ2FjeVBvbGljeVJ1bGVEZXNpZ25hdGVkU2lnbmVycyoqXShMZWdhY3lQb2xpY3lSdWxlRGVzaWduYXRlZFNpZ25lcnMubWQpIHwgIHwgW29wdGlvbmFsXSAKKip0eXBlKiogfCAqKnN0cioqIHwgUG9saWN5IHJ1bGUgdHlwZSB8IAoqKmFjdGlvbioqIHwgKipzdHIqKiB8IERlZmluZXMgd2hhdCBvY2N1cnMgd2hlbiBhIHRyYW5zYWN0aW9uIG1lZXRzIHRoZSBydWxlJiMzOTtzIGNyaXRlcmlhICogQUxMT1cgLSBUaGUgdHJhbnNhY3Rpb24gZ29lcyB0aHJvdWdoIGFuZCBjYW4gYmUgc2lnbmVkIHdpdGhvdXQgcmVxdWlyaW5nIGFkZGl0aW9uYWwgYXBwcm92YWxzICogQkxPQ0sgLSBUaGUgdHJhbnNhY3Rpb24gaXMgYXV0b21hdGljYWxseSBibG9ja2VkICogMi1USUVSIC0gT25seSB0aGVzZSB1c2VycyBvciB1c2VyIGdyb3VwcyBjYW4gYXBwcm92ZSAgICAgICAgICAgICBJZiBhbnkgb2YgdGhlbSByZWplY3QgdGhlIHRyYW5zYWN0aW9uIGJlZm9yZSB0aGUgcmVxdWlyZWQgYXBwcm92YWwgdGhyZXNob2xkIGlzIG1ldCwgdGhlIHRyYW5zYWN0aW9uIGRvZXNuJiMzOTt0IGdvIHRocm91Z2ggICAgICAgICAgICBUaGUgbGlzdCBvZiBlbnRpdGllcyBhcmUgc2V0IGlzIFwmcXVvdDthdXRob3JpemF0aW9uR3JvdXBzXCZxdW90OyBmaWVsZCAgfCAKKiphc3NldCoqIHwgKipzdHIqKiB8IERlZmluZXMgdGhlIHR5cGUgb2YgYXNzZXQgYmVpbmcgdHJhbnNhY3RlZCwgb3B0aW9ucyBhcmUgKiBcJnF1b3Q7KlwmcXVvdDsgLSBBbGwgYXNzZXRzICogU3BlY2lmaWMgYXNzZXQgIHwgCioqc3JjX3R5cGUqKiB8IFsqKkxlZ2FjeVBvbGljeVNyY09yRGVzdFR5cGUqKl0oTGVnYWN5UG9saWN5U3JjT3JEZXN0VHlwZS5tZCkgfCAoZGVwcmVjYXRlZCAtIHJlcGxhY2VkIGJ5IFwmcXVvdDtzcmNcJnF1b3Q7KSBzb3VyY2UgYWNjb3VudCB0eXBlIHwgW29wdGlvbmFsXSAKKipzcmNfc3ViX3R5cGUqKiB8IFsqKkxlZ2FjeVBvbGljeVNyY09yRGVzdFN1YlR5cGUqKl0oTGVnYWN5UG9saWN5U3JjT3JEZXN0U3ViVHlwZS5tZCkgfCAoZGVwcmVjYXRlZCAtIHJlcGxhY2VkIGJ5IFwmcXVvdDtzcmNcJnF1b3Q7KSBzb3VyY2Ugc3ViIGFjY291bnQgdHlwZSB8IFtvcHRpb25hbF0gCioqc3JjX2lkKiogfCAqKnN0cioqIHwgKGRlcHJlY2F0ZWQgLSByZXBsYWNlZCBieSBcJnF1b3Q7c3JjXCZxdW90Oykgc291cmNlIGFjY291bnQgaWQgfCBbb3B0aW9uYWxdIAoqKnNyYyoqIHwgWyoqTGVnYWN5UG9saWN5UnVsZVNyYyoqXShMZWdhY3lQb2xpY3lSdWxlU3JjLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZHN0X3R5cGUqKiB8IFsqKkxlZ2FjeVBvbGljeVNyY09yRGVzdFR5cGUqKl0oTGVnYWN5UG9saWN5U3JjT3JEZXN0VHlwZS5tZCkgfCAoZGVwcmVjYXRlZCAtIHJlcGxhY2VkIGJ5IFwmcXVvdDtkc3RcJnF1b3Q7KSBkZXN0aW5hdGlvbiBhY2NvdW50IHR5cGUgfCBbb3B0aW9uYWxdIAoqKmRzdF9zdWJfdHlwZSoqIHwgWyoqTGVnYWN5UG9saWN5U3JjT3JEZXN0U3ViVHlwZSoqXShMZWdhY3lQb2xpY3lTcmNPckRlc3RTdWJUeXBlLm1kKSB8IChkZXByZWNhdGVkIC0gcmVwbGFjZWQgYnkgXCZxdW90O2RzdFwmcXVvdDspIGRlc3RpbmF0aW9uIHN1YiBhY2NvdW50IHR5cGUgfCBbb3B0aW9uYWxdIAoqKmRzdF9pZCoqIHwgKipzdHIqKiB8IChkZXByZWNhdGVkIC0gcmVwbGFjZWQgYnkgXCZxdW90O2RzdFwmcXVvdDspIGRlc3RpbmF0aW9uIGFjY291bnQgaWQgfCBbb3B0aW9uYWxdIAoqKmRzdCoqIHwgWyoqTGVnYWN5UG9saWN5UnVsZURzdCoqXShMZWdhY3lQb2xpY3lSdWxlRHN0Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZHN0X2FkZHJlc3NfdHlwZSoqIHwgKipzdHIqKiB8IERlZmluZXMgd2hldGhlciB0aGUgZGVzdGluYXRpb24gdG8gd2hpY2ggeW91IGFyZSBzZW5kaW5nIGZ1bmRzIG11c3QgYmUgd2hpdGVsaXN0ZWQsIHRvIGFsbG93IG9uZS10aW1lIHRyYW5zZmVycyB0byBub24td2hpdGVsaXN0ZWQgZXh0ZXJuYWwgYWRkcmVzc2VzLCBvciBib3RoLiBCeSBkZWZhdWx0LCB5b3UgY2FuIG9ubHkgdHJhbnNmZXIgdG8gYW4gZXh0ZXJuYWwgYWRkcmVzcyBhZnRlciBpdOKAmXMgd2hpdGVsaXN0ZWQuICAgKiBXSElURUxJU1RFRCAtIENhbiBvbmx5IGJlIHNlbnQgdG8gd2hpdGVsaXN0ZWQgYWRkcmVzc2VzLiAgICogT05FX1RJTUUgLSBDYW4gb25seSBiZSBzZW50IHRvIG5vbi13aGl0ZWxpc3RlZCBleHRlcm5hbCBhZGRyZXNzZXMuICAgKiBcJnF1b3Q7KlwmcXVvdDsgLSBjYW4gYmUgc2VudCB0byB3aGl0ZWxpc3RlZCBhZGRyZXNzZXMgb3Igbm9uLXdoaXRlbGlzdGVkIGV4dGVybmFsICB8IFtvcHRpb25hbF0gCioqYW1vdW50X2N1cnJlbmN5KiogfCAqKnN0cioqIHwgKiBVU0QgLSBMaW1pdHMgdGhlIGFtb3VudCBvZiBhbnkgYXNzZXQgdXNlcnMgY2FuIHRyYW5zZmVyIGJhc2VkIG9uIHRoZSBVU0QgZXF1aXZhbGVudCBvZiB0aGUgYXNzZXQuICogRVVSIC0gTGltaXRzIHRoZSBhbW91bnQgb2YgYW55IGFzc2V0IHVzZXJzIGNhbiB0cmFuc2ZlciBiYXNlZCBvbiB0aGUgRVVSTyBlcXVpdmFsZW50IG9mIHRoZSBhc3NldC4gKiBOQVRJVkUgLSBMaW1pdHMgdGhlIGFtb3VudCBvZiBhbiBhc3NldCBhIHVzZXIgY2FuIHRyYW5zZmVyIHdoZW4gdXNpbmcgYSBzcGVjaWZpYyBhc3NldC4gIHwgCioqYW1vdW50X3Njb3BlKiogfCAqKnN0cioqIHwgKiBTSU5HTEVfVFggLSBsaW1pdCBhcHBsaWVzIHRvIGEgc2luZ2xlIHRyYW5zYWN0aW9uICogVElNRUZSQU1FIC0gbGltaXQgYXBwbGllcyB0byBhbGwgdHJhbnNhY3Rpb25zIHdpdGhpbiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZCAgfCAKKiphbW91bnQqKiB8IFsqKkxlZ2FjeVBvbGljeVJ1bGVBbW91bnQqKl0oTGVnYWN5UG9saWN5UnVsZUFtb3VudC5tZCkgfCAgfCAKKipwZXJpb2Rfc2VjKiogfCAqKmZsb2F0KiogfCBUaW1lIHBlcmlvZCBpbiBzZWNvbmRzIGFwcGxpZWQgYnkgdGhlIGFtb3VudFNjb3BlIGZpZWxkIHRvIGFjY3VtdWxhdGUgdHJhbnNmZXJyZWQgYW1vdW50cyBpbiB0cmFuc2FjdGlvbnMgdGhhdCBtYXRjaCB0aGUgcnVsZSwgdW50aWwgdGhlIHRvdGFsIGV4Y2VlZHMgdGhlIHZhbHVlIHlvdSBzcGVjaWZ5IHVuZGVyIE1pbmltdW0uIFdoZW4gdGhlIHNwZWNpZmllZCBhbW91bnQgaXMgcmVhY2hlZCB3aXRoaW4gdGhhdCBwZXJpb2QsIHdoZXRoZXIgYnkgb25lIG9yIG1hbnkgdHJhbnNhY3Rpb25zLCBmdXJ0aGVyIHRyYW5zYWN0aW9ucyBpbiB0aGF0IHBlcmlvZCBlaXRoZXIgZmFpbCBvciByZXF1aXJlIG1vcmUgYXBwcm92YWxzLiAgfCAKKiphdXRob3JpemVycyoqIHwgKipMaXN0W3N0cl0qKiB8IChkZXByZWNhdGVkIC0gcmVwbGFjZWQgYnkgXCZxdW90O2F1dGhvcml6YXRpb25Hcm91cHNcJnF1b3Q7KSBBbGxvd2VkIGVudGl0aWVzIHdoaWNoIGNhbiBhcHByb3ZlcyBhIHRyYW5zYWN0aW9uIHwgW29wdGlvbmFsXSAKKiphdXRob3JpemVyc19jb3VudCoqIHwgKipmbG9hdCoqIHwgKGRlcHJlY2F0ZWQgLSByZXBsYWNlZCBieSBcJnF1b3Q7YXV0aG9yaXphdGlvbkdyb3Vwc1wmcXVvdDspIE1pbiBhbW91bnQgb2YgZW50aXRpZXMgd2hpY2ggYXJlIG5lZWRlZCB0byBhcHByb3ZlIGEgdHJhbnNhY3Rpb24gfCBbb3B0aW9uYWxdIAoqKmF1dGhvcml6YXRpb25fZ3JvdXBzKiogfCBbKipMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3VwcyoqXShMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3Vwcy5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmFtb3VudF9hZ2dyZWdhdGlvbioqIHwgWyoqTGVnYWN5UG9saWN5UnVsZUFtb3VudEFnZ3JlZ2F0aW9uKipdKExlZ2FjeVBvbGljeVJ1bGVBbW91bnRBZ2dyZWdhdGlvbi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnJhd19tZXNzYWdlX3NpZ25pbmcqKiB8IFsqKkxlZ2FjeVBvbGljeVJ1bGVSYXdNZXNzYWdlU2lnbmluZyoqXShMZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmcubWQpIHwgIHwgW29wdGlvbmFsXSAKKiphcHBseV9mb3JfYXBwcm92ZSoqIHwgKipib29sKiogfCBBcHBseWluZyB0aGlzIHJ1bGUgb3ZlciBBUFBST1ZFIHR5cGUgdHJhbnNhY3Rpb25zIChjYW4gb25seSBiZSBlbmFibGVkIHdoZW4gcnVsZSYjMzk7cyB0cmFuc2FjdGlvbiB0eXBlIGlzIFRSQU5TRkVSKSB8IFtvcHRpb25hbF0gCioqYXBwbHlfZm9yX3R5cGVkX21lc3NhZ2UqKiB8ICoqYm9vbCoqIHwgQXBwbHlpbmcgdGhpcyBydWxlIG92ZXIgVFlQRURfTUVTU0FHRSB0eXBlIHRyYW5zYWN0aW9ucyAoY2FuIG9ubHkgYmUgZW5hYmxlZCB3aGVuIHJ1bGUmIzM5O3MgdHJhbnNhY3Rpb24gdHlwZSBpcyBDT05UUkFDVF9DQUxMKSB8IFtvcHRpb25hbF0gCioqZXh0ZXJuYWxfZGVzY3JpcHRvcioqIHwgKipzdHIqKiB8IEEgdW5pcXVlIGlkIGlkZW50aWZ5aW5nIHRoZSBydWxlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZSBpbXBvcnQgTGVnYWN5UG9saWN5UnVsZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5UnVsZSBmcm9tIGEgSlNPTiBzdHJpbmcKbGVnYWN5X3BvbGljeV9ydWxlX2luc3RhbmNlID0gTGVnYWN5UG9saWN5UnVsZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChMZWdhY3lQb2xpY3lSdWxlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmxlZ2FjeV9wb2xpY3lfcnVsZV9kaWN0ID0gbGVnYWN5X3BvbGljeV9ydWxlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlIGZyb20gYSBkaWN0CmxlZ2FjeV9wb2xpY3lfcnVsZV9mcm9tX2RpY3QgPSBMZWdhY3lQb2xpY3lSdWxlLmZyb21fZGljdChsZWdhY3lfcG9saWN5X3J1bGVfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/LegacyPolicyRuleAmount.md b/docs/LegacyPolicyRuleAmount.md index 4595ac30..f35eb55a 100644 --- a/docs/LegacyPolicyRuleAmount.md +++ b/docs/LegacyPolicyRuleAmount.md @@ -1,29 +1 @@ -# LegacyPolicyRuleAmount - -Defines the value a transaction must exceed for the rule to apply to it (according to the amountCurrency field) - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - -## Example - -```python -from fireblocks.models.legacy_policy_rule_amount import LegacyPolicyRuleAmount - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyPolicyRuleAmount from a JSON string -legacy_policy_rule_amount_instance = LegacyPolicyRuleAmount.from_json(json) -# print the JSON string representation of the object -print(LegacyPolicyRuleAmount.to_json()) - -# convert the object into a dict -legacy_policy_rule_amount_dict = legacy_policy_rule_amount_instance.to_dict() -# create an instance of LegacyPolicyRuleAmount from a dict -legacy_policy_rule_amount_from_dict = LegacyPolicyRuleAmount.from_dict(legacy_policy_rule_amount_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lSdWxlQW1vdW50CgpEZWZpbmVzIHRoZSB2YWx1ZSBhIHRyYW5zYWN0aW9uIG11c3QgZXhjZWVkIGZvciB0aGUgcnVsZSB0byBhcHBseSB0byBpdCAoYWNjb3JkaW5nIHRvIHRoZSBhbW91bnRDdXJyZW5jeSBmaWVsZCkKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hbW91bnQgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVBbW91bnQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVBvbGljeVJ1bGVBbW91bnQgZnJvbSBhIEpTT04gc3RyaW5nCmxlZ2FjeV9wb2xpY3lfcnVsZV9hbW91bnRfaW5zdGFuY2UgPSBMZWdhY3lQb2xpY3lSdWxlQW1vdW50LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KExlZ2FjeVBvbGljeVJ1bGVBbW91bnQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbGVnYWN5X3BvbGljeV9ydWxlX2Ftb3VudF9kaWN0ID0gbGVnYWN5X3BvbGljeV9ydWxlX2Ftb3VudF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5UnVsZUFtb3VudCBmcm9tIGEgZGljdApsZWdhY3lfcG9saWN5X3J1bGVfYW1vdW50X2Zyb21fZGljdCA9IExlZ2FjeVBvbGljeVJ1bGVBbW91bnQuZnJvbV9kaWN0KGxlZ2FjeV9wb2xpY3lfcnVsZV9hbW91bnRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/LegacyPolicyRuleAmountAggregation.md b/docs/LegacyPolicyRuleAmountAggregation.md index ab3292d8..7f35062a 100644 --- a/docs/LegacyPolicyRuleAmountAggregation.md +++ b/docs/LegacyPolicyRuleAmountAggregation.md @@ -1,32 +1 @@ -# LegacyPolicyRuleAmountAggregation - -Defines the method by which the Policy Engine calculates accumulation. It uses the Initiator, Source, and Destination to calculate accumulation toward the value under Minimum, for the time under Time Period. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**operators** | [**LegacyAmountAggregationTimePeriodMethod**](LegacyAmountAggregationTimePeriodMethod.md) | | [optional] -**src_transfer_peers** | [**LegacyAmountAggregationTimePeriodMethod**](LegacyAmountAggregationTimePeriodMethod.md) | | [optional] -**dst_transfer_peers** | [**LegacyAmountAggregationTimePeriodMethod**](LegacyAmountAggregationTimePeriodMethod.md) | | [optional] - -## Example - -```python -from fireblocks.models.legacy_policy_rule_amount_aggregation import LegacyPolicyRuleAmountAggregation - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyPolicyRuleAmountAggregation from a JSON string -legacy_policy_rule_amount_aggregation_instance = LegacyPolicyRuleAmountAggregation.from_json(json) -# print the JSON string representation of the object -print(LegacyPolicyRuleAmountAggregation.to_json()) - -# convert the object into a dict -legacy_policy_rule_amount_aggregation_dict = legacy_policy_rule_amount_aggregation_instance.to_dict() -# create an instance of LegacyPolicyRuleAmountAggregation from a dict -legacy_policy_rule_amount_aggregation_from_dict = LegacyPolicyRuleAmountAggregation.from_dict(legacy_policy_rule_amount_aggregation_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lSdWxlQW1vdW50QWdncmVnYXRpb24KCkRlZmluZXMgdGhlIG1ldGhvZCBieSB3aGljaCB0aGUgUG9saWN5IEVuZ2luZSBjYWxjdWxhdGVzIGFjY3VtdWxhdGlvbi4gSXQgdXNlcyB0aGUgSW5pdGlhdG9yLCBTb3VyY2UsIGFuZCBEZXN0aW5hdGlvbiB0byBjYWxjdWxhdGUgYWNjdW11bGF0aW9uIHRvd2FyZCB0aGUgdmFsdWUgdW5kZXIgTWluaW11bSwgZm9yIHRoZSB0aW1lIHVuZGVyIFRpbWUgUGVyaW9kLiAKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipvcGVyYXRvcnMqKiB8IFsqKkxlZ2FjeUFtb3VudEFnZ3JlZ2F0aW9uVGltZVBlcmlvZE1ldGhvZCoqXShMZWdhY3lBbW91bnRBZ2dyZWdhdGlvblRpbWVQZXJpb2RNZXRob2QubWQpIHwgIHwgW29wdGlvbmFsXSAKKipzcmNfdHJhbnNmZXJfcGVlcnMqKiB8IFsqKkxlZ2FjeUFtb3VudEFnZ3JlZ2F0aW9uVGltZVBlcmlvZE1ldGhvZCoqXShMZWdhY3lBbW91bnRBZ2dyZWdhdGlvblRpbWVQZXJpb2RNZXRob2QubWQpIHwgIHwgW29wdGlvbmFsXSAKKipkc3RfdHJhbnNmZXJfcGVlcnMqKiB8IFsqKkxlZ2FjeUFtb3VudEFnZ3JlZ2F0aW9uVGltZVBlcmlvZE1ldGhvZCoqXShMZWdhY3lBbW91bnRBZ2dyZWdhdGlvblRpbWVQZXJpb2RNZXRob2QubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hbW91bnRfYWdncmVnYXRpb24gaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVBbW91bnRBZ2dyZWdhdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5UnVsZUFtb3VudEFnZ3JlZ2F0aW9uIGZyb20gYSBKU09OIHN0cmluZwpsZWdhY3lfcG9saWN5X3J1bGVfYW1vdW50X2FnZ3JlZ2F0aW9uX2luc3RhbmNlID0gTGVnYWN5UG9saWN5UnVsZUFtb3VudEFnZ3JlZ2F0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KExlZ2FjeVBvbGljeVJ1bGVBbW91bnRBZ2dyZWdhdGlvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApsZWdhY3lfcG9saWN5X3J1bGVfYW1vdW50X2FnZ3JlZ2F0aW9uX2RpY3QgPSBsZWdhY3lfcG9saWN5X3J1bGVfYW1vdW50X2FnZ3JlZ2F0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlQW1vdW50QWdncmVnYXRpb24gZnJvbSBhIGRpY3QKbGVnYWN5X3BvbGljeV9ydWxlX2Ftb3VudF9hZ2dyZWdhdGlvbl9mcm9tX2RpY3QgPSBMZWdhY3lQb2xpY3lSdWxlQW1vdW50QWdncmVnYXRpb24uZnJvbV9kaWN0KGxlZ2FjeV9wb2xpY3lfcnVsZV9hbW91bnRfYWdncmVnYXRpb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/LegacyPolicyRuleAuthorizationGroups.md b/docs/LegacyPolicyRuleAuthorizationGroups.md index a7cd1432..36448bd4 100644 --- a/docs/LegacyPolicyRuleAuthorizationGroups.md +++ b/docs/LegacyPolicyRuleAuthorizationGroups.md @@ -1,32 +1 @@ -# LegacyPolicyRuleAuthorizationGroups - -Defines the transaction approval terms - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**logic** | **str** | * AND - requires approval of all authorization groups * OR - requires approval of at least one of the authorization groups | [optional] -**allow_operator_as_authorizer** | **bool** | Defines whether the user who initiates a transaction can approve their own transaction and count toward the approval threshold for their transaction | [optional] -**groups** | [**List[LegacyPolicyRuleAuthorizationGroupsGroupsInner]**](LegacyPolicyRuleAuthorizationGroupsGroupsInner.md) | Groups of entities which can approve the transaction | [optional] - -## Example - -```python -from fireblocks.models.legacy_policy_rule_authorization_groups import LegacyPolicyRuleAuthorizationGroups - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyPolicyRuleAuthorizationGroups from a JSON string -legacy_policy_rule_authorization_groups_instance = LegacyPolicyRuleAuthorizationGroups.from_json(json) -# print the JSON string representation of the object -print(LegacyPolicyRuleAuthorizationGroups.to_json()) - -# convert the object into a dict -legacy_policy_rule_authorization_groups_dict = legacy_policy_rule_authorization_groups_instance.to_dict() -# create an instance of LegacyPolicyRuleAuthorizationGroups from a dict -legacy_policy_rule_authorization_groups_from_dict = LegacyPolicyRuleAuthorizationGroups.from_dict(legacy_policy_rule_authorization_groups_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3VwcwoKRGVmaW5lcyB0aGUgdHJhbnNhY3Rpb24gYXBwcm92YWwgdGVybXMKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipsb2dpYyoqIHwgKipzdHIqKiB8ICogQU5EIC0gcmVxdWlyZXMgYXBwcm92YWwgb2YgYWxsIGF1dGhvcml6YXRpb24gZ3JvdXBzICogT1IgLSByZXF1aXJlcyBhcHByb3ZhbCBvZiBhdCBsZWFzdCBvbmUgb2YgdGhlIGF1dGhvcml6YXRpb24gZ3JvdXBzICB8IFtvcHRpb25hbF0gCioqYWxsb3dfb3BlcmF0b3JfYXNfYXV0aG9yaXplcioqIHwgKipib29sKiogfCBEZWZpbmVzIHdoZXRoZXIgdGhlIHVzZXIgd2hvIGluaXRpYXRlcyBhIHRyYW5zYWN0aW9uIGNhbiBhcHByb3ZlIHRoZWlyIG93biB0cmFuc2FjdGlvbiBhbmQgY291bnQgdG93YXJkIHRoZSBhcHByb3ZhbCB0aHJlc2hvbGQgZm9yIHRoZWlyIHRyYW5zYWN0aW9uIHwgW29wdGlvbmFsXSAKKipncm91cHMqKiB8IFsqKkxpc3RbTGVnYWN5UG9saWN5UnVsZUF1dGhvcml6YXRpb25Hcm91cHNHcm91cHNJbm5lcl0qKl0oTGVnYWN5UG9saWN5UnVsZUF1dGhvcml6YXRpb25Hcm91cHNHcm91cHNJbm5lci5tZCkgfCBHcm91cHMgb2YgZW50aXRpZXMgd2hpY2ggY2FuIGFwcHJvdmUgdGhlIHRyYW5zYWN0aW9uIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hdXRob3JpemF0aW9uX2dyb3VwcyBpbXBvcnQgTGVnYWN5UG9saWN5UnVsZUF1dGhvcml6YXRpb25Hcm91cHMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVBvbGljeVJ1bGVBdXRob3JpemF0aW9uR3JvdXBzIGZyb20gYSBKU09OIHN0cmluZwpsZWdhY3lfcG9saWN5X3J1bGVfYXV0aG9yaXphdGlvbl9ncm91cHNfaW5zdGFuY2UgPSBMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3Vwcy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3Vwcy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApsZWdhY3lfcG9saWN5X3J1bGVfYXV0aG9yaXphdGlvbl9ncm91cHNfZGljdCA9IGxlZ2FjeV9wb2xpY3lfcnVsZV9hdXRob3JpemF0aW9uX2dyb3Vwc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5UnVsZUF1dGhvcml6YXRpb25Hcm91cHMgZnJvbSBhIGRpY3QKbGVnYWN5X3BvbGljeV9ydWxlX2F1dGhvcml6YXRpb25fZ3JvdXBzX2Zyb21fZGljdCA9IExlZ2FjeVBvbGljeVJ1bGVBdXRob3JpemF0aW9uR3JvdXBzLmZyb21fZGljdChsZWdhY3lfcG9saWN5X3J1bGVfYXV0aG9yaXphdGlvbl9ncm91cHNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/LegacyPolicyRuleAuthorizationGroupsGroupsInner.md b/docs/LegacyPolicyRuleAuthorizationGroupsGroupsInner.md index 9cc33927..3cf9e438 100644 --- a/docs/LegacyPolicyRuleAuthorizationGroupsGroupsInner.md +++ b/docs/LegacyPolicyRuleAuthorizationGroupsGroupsInner.md @@ -1,31 +1 @@ -# LegacyPolicyRuleAuthorizationGroupsGroupsInner - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**users** | **List[str]** | User ids | [optional] -**users_groups** | **List[str]** | Group ids | [optional] -**th** | **float** | Represents the min amount of entities which are required to approve the transaction, default is 1. | [optional] - -## Example - -```python -from fireblocks.models.legacy_policy_rule_authorization_groups_groups_inner import LegacyPolicyRuleAuthorizationGroupsGroupsInner - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyPolicyRuleAuthorizationGroupsGroupsInner from a JSON string -legacy_policy_rule_authorization_groups_groups_inner_instance = LegacyPolicyRuleAuthorizationGroupsGroupsInner.from_json(json) -# print the JSON string representation of the object -print(LegacyPolicyRuleAuthorizationGroupsGroupsInner.to_json()) - -# convert the object into a dict -legacy_policy_rule_authorization_groups_groups_inner_dict = legacy_policy_rule_authorization_groups_groups_inner_instance.to_dict() -# create an instance of LegacyPolicyRuleAuthorizationGroupsGroupsInner from a dict -legacy_policy_rule_authorization_groups_groups_inner_from_dict = LegacyPolicyRuleAuthorizationGroupsGroupsInner.from_dict(legacy_policy_rule_authorization_groups_groups_inner_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3Vwc0dyb3Vwc0lubmVyCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnVzZXJzKiogfCAqKkxpc3Rbc3RyXSoqIHwgVXNlciBpZHMgfCBbb3B0aW9uYWxdIAoqKnVzZXJzX2dyb3VwcyoqIHwgKipMaXN0W3N0cl0qKiB8IEdyb3VwIGlkcyB8IFtvcHRpb25hbF0gCioqdGgqKiB8ICoqZmxvYXQqKiB8IFJlcHJlc2VudHMgdGhlIG1pbiBhbW91bnQgb2YgZW50aXRpZXMgd2hpY2ggYXJlIHJlcXVpcmVkIHRvIGFwcHJvdmUgdGhlIHRyYW5zYWN0aW9uLCBkZWZhdWx0IGlzIDEuIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hdXRob3JpemF0aW9uX2dyb3Vwc19ncm91cHNfaW5uZXIgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVBdXRob3JpemF0aW9uR3JvdXBzR3JvdXBzSW5uZXIKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVBvbGljeVJ1bGVBdXRob3JpemF0aW9uR3JvdXBzR3JvdXBzSW5uZXIgZnJvbSBhIEpTT04gc3RyaW5nCmxlZ2FjeV9wb2xpY3lfcnVsZV9hdXRob3JpemF0aW9uX2dyb3Vwc19ncm91cHNfaW5uZXJfaW5zdGFuY2UgPSBMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3Vwc0dyb3Vwc0lubmVyLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KExlZ2FjeVBvbGljeVJ1bGVBdXRob3JpemF0aW9uR3JvdXBzR3JvdXBzSW5uZXIudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbGVnYWN5X3BvbGljeV9ydWxlX2F1dGhvcml6YXRpb25fZ3JvdXBzX2dyb3Vwc19pbm5lcl9kaWN0ID0gbGVnYWN5X3BvbGljeV9ydWxlX2F1dGhvcml6YXRpb25fZ3JvdXBzX2dyb3Vwc19pbm5lcl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5UnVsZUF1dGhvcml6YXRpb25Hcm91cHNHcm91cHNJbm5lciBmcm9tIGEgZGljdApsZWdhY3lfcG9saWN5X3J1bGVfYXV0aG9yaXphdGlvbl9ncm91cHNfZ3JvdXBzX2lubmVyX2Zyb21fZGljdCA9IExlZ2FjeVBvbGljeVJ1bGVBdXRob3JpemF0aW9uR3JvdXBzR3JvdXBzSW5uZXIuZnJvbV9kaWN0KGxlZ2FjeV9wb2xpY3lfcnVsZV9hdXRob3JpemF0aW9uX2dyb3Vwc19ncm91cHNfaW5uZXJfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/LegacyPolicyRuleCheckResult.md b/docs/LegacyPolicyRuleCheckResult.md index 69f12222..4d932742 100644 --- a/docs/LegacyPolicyRuleCheckResult.md +++ b/docs/LegacyPolicyRuleCheckResult.md @@ -1,32 +1 @@ -# LegacyPolicyRuleCheckResult - -The rule validation result - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**index** | **float** | Rule index number in the policy | -**status** | **str** | Validation status | -**errors** | [**List[LegacyPolicyRuleError]**](LegacyPolicyRuleError.md) | A set of rule validation error objects | - -## Example - -```python -from fireblocks.models.legacy_policy_rule_check_result import LegacyPolicyRuleCheckResult - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyPolicyRuleCheckResult from a JSON string -legacy_policy_rule_check_result_instance = LegacyPolicyRuleCheckResult.from_json(json) -# print the JSON string representation of the object -print(LegacyPolicyRuleCheckResult.to_json()) - -# convert the object into a dict -legacy_policy_rule_check_result_dict = legacy_policy_rule_check_result_instance.to_dict() -# create an instance of LegacyPolicyRuleCheckResult from a dict -legacy_policy_rule_check_result_from_dict = LegacyPolicyRuleCheckResult.from_dict(legacy_policy_rule_check_result_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lSdWxlQ2hlY2tSZXN1bHQKClRoZSBydWxlIHZhbGlkYXRpb24gcmVzdWx0CgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaW5kZXgqKiB8ICoqZmxvYXQqKiB8IFJ1bGUgaW5kZXggbnVtYmVyIGluIHRoZSBwb2xpY3kgfCAKKipzdGF0dXMqKiB8ICoqc3RyKiogfCBWYWxpZGF0aW9uIHN0YXR1cyB8IAoqKmVycm9ycyoqIHwgWyoqTGlzdFtMZWdhY3lQb2xpY3lSdWxlRXJyb3JdKipdKExlZ2FjeVBvbGljeVJ1bGVFcnJvci5tZCkgfCBBIHNldCBvZiBydWxlIHZhbGlkYXRpb24gZXJyb3Igb2JqZWN0cyB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2NoZWNrX3Jlc3VsdCBpbXBvcnQgTGVnYWN5UG9saWN5UnVsZUNoZWNrUmVzdWx0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlQ2hlY2tSZXN1bHQgZnJvbSBhIEpTT04gc3RyaW5nCmxlZ2FjeV9wb2xpY3lfcnVsZV9jaGVja19yZXN1bHRfaW5zdGFuY2UgPSBMZWdhY3lQb2xpY3lSdWxlQ2hlY2tSZXN1bHQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoTGVnYWN5UG9saWN5UnVsZUNoZWNrUmVzdWx0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmxlZ2FjeV9wb2xpY3lfcnVsZV9jaGVja19yZXN1bHRfZGljdCA9IGxlZ2FjeV9wb2xpY3lfcnVsZV9jaGVja19yZXN1bHRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVBvbGljeVJ1bGVDaGVja1Jlc3VsdCBmcm9tIGEgZGljdApsZWdhY3lfcG9saWN5X3J1bGVfY2hlY2tfcmVzdWx0X2Zyb21fZGljdCA9IExlZ2FjeVBvbGljeVJ1bGVDaGVja1Jlc3VsdC5mcm9tX2RpY3QobGVnYWN5X3BvbGljeV9ydWxlX2NoZWNrX3Jlc3VsdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/LegacyPolicyRuleDesignatedSigners.md b/docs/LegacyPolicyRuleDesignatedSigners.md index f575d546..f0b6485a 100644 --- a/docs/LegacyPolicyRuleDesignatedSigners.md +++ b/docs/LegacyPolicyRuleDesignatedSigners.md @@ -1,31 +1 @@ -# LegacyPolicyRuleDesignatedSigners - -Set of ids representing the users who signs transactions that match a specific rule - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**users** | **List[str]** | Set of users ids | [optional] -**users_groups** | **List[str]** | Set of group ids | [optional] - -## Example - -```python -from fireblocks.models.legacy_policy_rule_designated_signers import LegacyPolicyRuleDesignatedSigners - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyPolicyRuleDesignatedSigners from a JSON string -legacy_policy_rule_designated_signers_instance = LegacyPolicyRuleDesignatedSigners.from_json(json) -# print the JSON string representation of the object -print(LegacyPolicyRuleDesignatedSigners.to_json()) - -# convert the object into a dict -legacy_policy_rule_designated_signers_dict = legacy_policy_rule_designated_signers_instance.to_dict() -# create an instance of LegacyPolicyRuleDesignatedSigners from a dict -legacy_policy_rule_designated_signers_from_dict = LegacyPolicyRuleDesignatedSigners.from_dict(legacy_policy_rule_designated_signers_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lSdWxlRGVzaWduYXRlZFNpZ25lcnMKClNldCBvZiBpZHMgcmVwcmVzZW50aW5nIHRoZSB1c2VycyB3aG8gc2lnbnMgdHJhbnNhY3Rpb25zIHRoYXQgbWF0Y2ggYSBzcGVjaWZpYyBydWxlCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdXNlcnMqKiB8ICoqTGlzdFtzdHJdKiogfCBTZXQgb2YgdXNlcnMgaWRzIHwgW29wdGlvbmFsXSAKKip1c2Vyc19ncm91cHMqKiB8ICoqTGlzdFtzdHJdKiogfCBTZXQgb2YgZ3JvdXAgaWRzIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9kZXNpZ25hdGVkX3NpZ25lcnMgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVEZXNpZ25hdGVkU2lnbmVycwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5UnVsZURlc2lnbmF0ZWRTaWduZXJzIGZyb20gYSBKU09OIHN0cmluZwpsZWdhY3lfcG9saWN5X3J1bGVfZGVzaWduYXRlZF9zaWduZXJzX2luc3RhbmNlID0gTGVnYWN5UG9saWN5UnVsZURlc2lnbmF0ZWRTaWduZXJzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KExlZ2FjeVBvbGljeVJ1bGVEZXNpZ25hdGVkU2lnbmVycy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApsZWdhY3lfcG9saWN5X3J1bGVfZGVzaWduYXRlZF9zaWduZXJzX2RpY3QgPSBsZWdhY3lfcG9saWN5X3J1bGVfZGVzaWduYXRlZF9zaWduZXJzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlRGVzaWduYXRlZFNpZ25lcnMgZnJvbSBhIGRpY3QKbGVnYWN5X3BvbGljeV9ydWxlX2Rlc2lnbmF0ZWRfc2lnbmVyc19mcm9tX2RpY3QgPSBMZWdhY3lQb2xpY3lSdWxlRGVzaWduYXRlZFNpZ25lcnMuZnJvbV9kaWN0KGxlZ2FjeV9wb2xpY3lfcnVsZV9kZXNpZ25hdGVkX3NpZ25lcnNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/LegacyPolicyRuleDst.md b/docs/LegacyPolicyRuleDst.md index ec0eb5db..fbf98f2e 100644 --- a/docs/LegacyPolicyRuleDst.md +++ b/docs/LegacyPolicyRuleDst.md @@ -1,30 +1 @@ -# LegacyPolicyRuleDst - -Defines the destination accounts the rule allows transfers to - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**ids** | **List[List[LegacySrcOrDestAttributesInner]]** | A set of ids in a tuple format | [optional] - -## Example - -```python -from fireblocks.models.legacy_policy_rule_dst import LegacyPolicyRuleDst - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyPolicyRuleDst from a JSON string -legacy_policy_rule_dst_instance = LegacyPolicyRuleDst.from_json(json) -# print the JSON string representation of the object -print(LegacyPolicyRuleDst.to_json()) - -# convert the object into a dict -legacy_policy_rule_dst_dict = legacy_policy_rule_dst_instance.to_dict() -# create an instance of LegacyPolicyRuleDst from a dict -legacy_policy_rule_dst_from_dict = LegacyPolicyRuleDst.from_dict(legacy_policy_rule_dst_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lSdWxlRHN0CgpEZWZpbmVzIHRoZSBkZXN0aW5hdGlvbiBhY2NvdW50cyB0aGUgcnVsZSBhbGxvd3MgdHJhbnNmZXJzIHRvCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWRzKiogfCAqKkxpc3RbTGlzdFtMZWdhY3lTcmNPckRlc3RBdHRyaWJ1dGVzSW5uZXJdXSoqIHwgQSBzZXQgb2YgaWRzIGluIGEgdHVwbGUgZm9ybWF0IHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9kc3QgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVEc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVBvbGljeVJ1bGVEc3QgZnJvbSBhIEpTT04gc3RyaW5nCmxlZ2FjeV9wb2xpY3lfcnVsZV9kc3RfaW5zdGFuY2UgPSBMZWdhY3lQb2xpY3lSdWxlRHN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KExlZ2FjeVBvbGljeVJ1bGVEc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbGVnYWN5X3BvbGljeV9ydWxlX2RzdF9kaWN0ID0gbGVnYWN5X3BvbGljeV9ydWxlX2RzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5UnVsZURzdCBmcm9tIGEgZGljdApsZWdhY3lfcG9saWN5X3J1bGVfZHN0X2Zyb21fZGljdCA9IExlZ2FjeVBvbGljeVJ1bGVEc3QuZnJvbV9kaWN0KGxlZ2FjeV9wb2xpY3lfcnVsZV9kc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/LegacyPolicyRuleError.md b/docs/LegacyPolicyRuleError.md index 10a52666..68c2ba40 100644 --- a/docs/LegacyPolicyRuleError.md +++ b/docs/LegacyPolicyRuleError.md @@ -1,33 +1 @@ -# LegacyPolicyRuleError - -Rule validation result error - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**error_message** | **str** | Error message | -**error_code** | **float** | error code | -**error_code_name** | **str** | error code name | -**error_field** | **str** | The field which the error relates to * operator - transaction initiator * operators - transaction initiators * authorizationGroups - transaction authorizer groups * designatedSigner - transaction signer * designatedSigners - transaction signers * contractMethods - contract methods * amountAggregation - transaction amount aggregation configuration * src - transaction source asset configuration * dst - transaction destination asset configuration | - -## Example - -```python -from fireblocks.models.legacy_policy_rule_error import LegacyPolicyRuleError - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyPolicyRuleError from a JSON string -legacy_policy_rule_error_instance = LegacyPolicyRuleError.from_json(json) -# print the JSON string representation of the object -print(LegacyPolicyRuleError.to_json()) - -# convert the object into a dict -legacy_policy_rule_error_dict = legacy_policy_rule_error_instance.to_dict() -# create an instance of LegacyPolicyRuleError from a dict -legacy_policy_rule_error_from_dict = LegacyPolicyRuleError.from_dict(legacy_policy_rule_error_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lSdWxlRXJyb3IKClJ1bGUgdmFsaWRhdGlvbiByZXN1bHQgZXJyb3IKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiplcnJvcl9tZXNzYWdlKiogfCAqKnN0cioqIHwgRXJyb3IgbWVzc2FnZSB8IAoqKmVycm9yX2NvZGUqKiB8ICoqZmxvYXQqKiB8IGVycm9yIGNvZGUgfCAKKiplcnJvcl9jb2RlX25hbWUqKiB8ICoqc3RyKiogfCBlcnJvciBjb2RlIG5hbWUgfCAKKiplcnJvcl9maWVsZCoqIHwgKipzdHIqKiB8IFRoZSBmaWVsZCB3aGljaCB0aGUgZXJyb3IgcmVsYXRlcyB0byAqIG9wZXJhdG9yIC0gdHJhbnNhY3Rpb24gaW5pdGlhdG9yICogb3BlcmF0b3JzIC0gdHJhbnNhY3Rpb24gaW5pdGlhdG9ycyAqIGF1dGhvcml6YXRpb25Hcm91cHMgLSB0cmFuc2FjdGlvbiBhdXRob3JpemVyIGdyb3VwcyAqIGRlc2lnbmF0ZWRTaWduZXIgLSB0cmFuc2FjdGlvbiBzaWduZXIgKiBkZXNpZ25hdGVkU2lnbmVycyAtIHRyYW5zYWN0aW9uIHNpZ25lcnMgKiBjb250cmFjdE1ldGhvZHMgLSBjb250cmFjdCBtZXRob2RzICogYW1vdW50QWdncmVnYXRpb24gLSB0cmFuc2FjdGlvbiBhbW91bnQgYWdncmVnYXRpb24gY29uZmlndXJhdGlvbiAqIHNyYyAtIHRyYW5zYWN0aW9uIHNvdXJjZSBhc3NldCBjb25maWd1cmF0aW9uICogZHN0IC0gdHJhbnNhY3Rpb24gZGVzdGluYXRpb24gYXNzZXQgY29uZmlndXJhdGlvbiAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9lcnJvciBpbXBvcnQgTGVnYWN5UG9saWN5UnVsZUVycm9yCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlRXJyb3IgZnJvbSBhIEpTT04gc3RyaW5nCmxlZ2FjeV9wb2xpY3lfcnVsZV9lcnJvcl9pbnN0YW5jZSA9IExlZ2FjeVBvbGljeVJ1bGVFcnJvci5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChMZWdhY3lQb2xpY3lSdWxlRXJyb3IudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbGVnYWN5X3BvbGljeV9ydWxlX2Vycm9yX2RpY3QgPSBsZWdhY3lfcG9saWN5X3J1bGVfZXJyb3JfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVBvbGljeVJ1bGVFcnJvciBmcm9tIGEgZGljdApsZWdhY3lfcG9saWN5X3J1bGVfZXJyb3JfZnJvbV9kaWN0ID0gTGVnYWN5UG9saWN5UnVsZUVycm9yLmZyb21fZGljdChsZWdhY3lfcG9saWN5X3J1bGVfZXJyb3JfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/LegacyPolicyRuleOperators.md b/docs/LegacyPolicyRuleOperators.md index 593d03d4..6088c6c6 100644 --- a/docs/LegacyPolicyRuleOperators.md +++ b/docs/LegacyPolicyRuleOperators.md @@ -1,33 +1 @@ -# LegacyPolicyRuleOperators - -Defines users/groups who can initiate the type of transaction to which the rule applies. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**wildcard** | **str** | If used then this property should appear as the only child property * \"*\" - All users are allowed | [optional] -**users** | **List[str]** | Set of users ids | [optional] -**users_groups** | **List[str]** | Set of group ids | [optional] -**services** | **List[str]** | set of services to initiate transactions | [optional] - -## Example - -```python -from fireblocks.models.legacy_policy_rule_operators import LegacyPolicyRuleOperators - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyPolicyRuleOperators from a JSON string -legacy_policy_rule_operators_instance = LegacyPolicyRuleOperators.from_json(json) -# print the JSON string representation of the object -print(LegacyPolicyRuleOperators.to_json()) - -# convert the object into a dict -legacy_policy_rule_operators_dict = legacy_policy_rule_operators_instance.to_dict() -# create an instance of LegacyPolicyRuleOperators from a dict -legacy_policy_rule_operators_from_dict = LegacyPolicyRuleOperators.from_dict(legacy_policy_rule_operators_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lSdWxlT3BlcmF0b3JzCgpEZWZpbmVzIHVzZXJzL2dyb3VwcyB3aG8gY2FuIGluaXRpYXRlIHRoZSB0eXBlIG9mIHRyYW5zYWN0aW9uIHRvIHdoaWNoIHRoZSBydWxlIGFwcGxpZXMuCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqd2lsZGNhcmQqKiB8ICoqc3RyKiogfCBJZiB1c2VkIHRoZW4gdGhpcyBwcm9wZXJ0eSBzaG91bGQgYXBwZWFyIGFzIHRoZSBvbmx5IGNoaWxkIHByb3BlcnR5ICogXCZxdW90OypcJnF1b3Q7IC0gQWxsIHVzZXJzIGFyZSBhbGxvd2VkICB8IFtvcHRpb25hbF0gCioqdXNlcnMqKiB8ICoqTGlzdFtzdHJdKiogfCBTZXQgb2YgdXNlcnMgaWRzIHwgW29wdGlvbmFsXSAKKip1c2Vyc19ncm91cHMqKiB8ICoqTGlzdFtzdHJdKiogfCBTZXQgb2YgZ3JvdXAgaWRzIHwgW29wdGlvbmFsXSAKKipzZXJ2aWNlcyoqIHwgKipMaXN0W3N0cl0qKiB8IHNldCBvZiBzZXJ2aWNlcyB0byBpbml0aWF0ZSB0cmFuc2FjdGlvbnMgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX29wZXJhdG9ycyBpbXBvcnQgTGVnYWN5UG9saWN5UnVsZU9wZXJhdG9ycwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5UnVsZU9wZXJhdG9ycyBmcm9tIGEgSlNPTiBzdHJpbmcKbGVnYWN5X3BvbGljeV9ydWxlX29wZXJhdG9yc19pbnN0YW5jZSA9IExlZ2FjeVBvbGljeVJ1bGVPcGVyYXRvcnMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoTGVnYWN5UG9saWN5UnVsZU9wZXJhdG9ycy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApsZWdhY3lfcG9saWN5X3J1bGVfb3BlcmF0b3JzX2RpY3QgPSBsZWdhY3lfcG9saWN5X3J1bGVfb3BlcmF0b3JzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlT3BlcmF0b3JzIGZyb20gYSBkaWN0CmxlZ2FjeV9wb2xpY3lfcnVsZV9vcGVyYXRvcnNfZnJvbV9kaWN0ID0gTGVnYWN5UG9saWN5UnVsZU9wZXJhdG9ycy5mcm9tX2RpY3QobGVnYWN5X3BvbGljeV9ydWxlX29wZXJhdG9yc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/LegacyPolicyRuleRawMessageSigning.md b/docs/LegacyPolicyRuleRawMessageSigning.md index 32440fa8..67d53ee8 100644 --- a/docs/LegacyPolicyRuleRawMessageSigning.md +++ b/docs/LegacyPolicyRuleRawMessageSigning.md @@ -1,31 +1 @@ -# LegacyPolicyRuleRawMessageSigning - -Raw message signing configuration - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**algorithm** | **str** | | [optional] -**derivation_path** | [**LegacyPolicyRuleRawMessageSigningDerivationPath**](LegacyPolicyRuleRawMessageSigningDerivationPath.md) | | [optional] - -## Example - -```python -from fireblocks.models.legacy_policy_rule_raw_message_signing import LegacyPolicyRuleRawMessageSigning - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyPolicyRuleRawMessageSigning from a JSON string -legacy_policy_rule_raw_message_signing_instance = LegacyPolicyRuleRawMessageSigning.from_json(json) -# print the JSON string representation of the object -print(LegacyPolicyRuleRawMessageSigning.to_json()) - -# convert the object into a dict -legacy_policy_rule_raw_message_signing_dict = legacy_policy_rule_raw_message_signing_instance.to_dict() -# create an instance of LegacyPolicyRuleRawMessageSigning from a dict -legacy_policy_rule_raw_message_signing_from_dict = LegacyPolicyRuleRawMessageSigning.from_dict(legacy_policy_rule_raw_message_signing_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmcKClJhdyBtZXNzYWdlIHNpZ25pbmcgY29uZmlndXJhdGlvbgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFsZ29yaXRobSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqZGVyaXZhdGlvbl9wYXRoKiogfCBbKipMZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmdEZXJpdmF0aW9uUGF0aCoqXShMZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmdEZXJpdmF0aW9uUGF0aC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX3Jhd19tZXNzYWdlX3NpZ25pbmcgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVSYXdNZXNzYWdlU2lnbmluZwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nIGZyb20gYSBKU09OIHN0cmluZwpsZWdhY3lfcG9saWN5X3J1bGVfcmF3X21lc3NhZ2Vfc2lnbmluZ19pbnN0YW5jZSA9IExlZ2FjeVBvbGljeVJ1bGVSYXdNZXNzYWdlU2lnbmluZy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChMZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmcudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbGVnYWN5X3BvbGljeV9ydWxlX3Jhd19tZXNzYWdlX3NpZ25pbmdfZGljdCA9IGxlZ2FjeV9wb2xpY3lfcnVsZV9yYXdfbWVzc2FnZV9zaWduaW5nX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmcgZnJvbSBhIGRpY3QKbGVnYWN5X3BvbGljeV9ydWxlX3Jhd19tZXNzYWdlX3NpZ25pbmdfZnJvbV9kaWN0ID0gTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nLmZyb21fZGljdChsZWdhY3lfcG9saWN5X3J1bGVfcmF3X21lc3NhZ2Vfc2lnbmluZ19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/LegacyPolicyRuleRawMessageSigningDerivationPath.md b/docs/LegacyPolicyRuleRawMessageSigningDerivationPath.md index fa5e840e..d5abb311 100644 --- a/docs/LegacyPolicyRuleRawMessageSigningDerivationPath.md +++ b/docs/LegacyPolicyRuleRawMessageSigningDerivationPath.md @@ -1,29 +1 @@ -# LegacyPolicyRuleRawMessageSigningDerivationPath - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**path** | **List[float]** | | [optional] - -## Example - -```python -from fireblocks.models.legacy_policy_rule_raw_message_signing_derivation_path import LegacyPolicyRuleRawMessageSigningDerivationPath - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyPolicyRuleRawMessageSigningDerivationPath from a JSON string -legacy_policy_rule_raw_message_signing_derivation_path_instance = LegacyPolicyRuleRawMessageSigningDerivationPath.from_json(json) -# print the JSON string representation of the object -print(LegacyPolicyRuleRawMessageSigningDerivationPath.to_json()) - -# convert the object into a dict -legacy_policy_rule_raw_message_signing_derivation_path_dict = legacy_policy_rule_raw_message_signing_derivation_path_instance.to_dict() -# create an instance of LegacyPolicyRuleRawMessageSigningDerivationPath from a dict -legacy_policy_rule_raw_message_signing_derivation_path_from_dict = LegacyPolicyRuleRawMessageSigningDerivationPath.from_dict(legacy_policy_rule_raw_message_signing_derivation_path_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmdEZXJpdmF0aW9uUGF0aAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipwYXRoKiogfCAqKkxpc3RbZmxvYXRdKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX3Jhd19tZXNzYWdlX3NpZ25pbmdfZGVyaXZhdGlvbl9wYXRoIGltcG9ydCBMZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmdEZXJpdmF0aW9uUGF0aAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nRGVyaXZhdGlvblBhdGggZnJvbSBhIEpTT04gc3RyaW5nCmxlZ2FjeV9wb2xpY3lfcnVsZV9yYXdfbWVzc2FnZV9zaWduaW5nX2Rlcml2YXRpb25fcGF0aF9pbnN0YW5jZSA9IExlZ2FjeVBvbGljeVJ1bGVSYXdNZXNzYWdlU2lnbmluZ0Rlcml2YXRpb25QYXRoLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KExlZ2FjeVBvbGljeVJ1bGVSYXdNZXNzYWdlU2lnbmluZ0Rlcml2YXRpb25QYXRoLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmxlZ2FjeV9wb2xpY3lfcnVsZV9yYXdfbWVzc2FnZV9zaWduaW5nX2Rlcml2YXRpb25fcGF0aF9kaWN0ID0gbGVnYWN5X3BvbGljeV9ydWxlX3Jhd19tZXNzYWdlX3NpZ25pbmdfZGVyaXZhdGlvbl9wYXRoX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmdEZXJpdmF0aW9uUGF0aCBmcm9tIGEgZGljdApsZWdhY3lfcG9saWN5X3J1bGVfcmF3X21lc3NhZ2Vfc2lnbmluZ19kZXJpdmF0aW9uX3BhdGhfZnJvbV9kaWN0ID0gTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nRGVyaXZhdGlvblBhdGguZnJvbV9kaWN0KGxlZ2FjeV9wb2xpY3lfcnVsZV9yYXdfbWVzc2FnZV9zaWduaW5nX2Rlcml2YXRpb25fcGF0aF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/LegacyPolicyRuleSrc.md b/docs/LegacyPolicyRuleSrc.md index 37584893..b6df6164 100644 --- a/docs/LegacyPolicyRuleSrc.md +++ b/docs/LegacyPolicyRuleSrc.md @@ -1,30 +1 @@ -# LegacyPolicyRuleSrc - -Defines source accounts the rule allows transfers to originate from - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**ids** | **List[List[LegacySrcOrDestAttributesInner]]** | A set of ids in a tuple format | [optional] - -## Example - -```python -from fireblocks.models.legacy_policy_rule_src import LegacyPolicyRuleSrc - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyPolicyRuleSrc from a JSON string -legacy_policy_rule_src_instance = LegacyPolicyRuleSrc.from_json(json) -# print the JSON string representation of the object -print(LegacyPolicyRuleSrc.to_json()) - -# convert the object into a dict -legacy_policy_rule_src_dict = legacy_policy_rule_src_instance.to_dict() -# create an instance of LegacyPolicyRuleSrc from a dict -legacy_policy_rule_src_from_dict = LegacyPolicyRuleSrc.from_dict(legacy_policy_rule_src_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lSdWxlU3JjCgpEZWZpbmVzIHNvdXJjZSBhY2NvdW50cyB0aGUgcnVsZSBhbGxvd3MgdHJhbnNmZXJzIHRvIG9yaWdpbmF0ZSBmcm9tCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWRzKiogfCAqKkxpc3RbTGlzdFtMZWdhY3lTcmNPckRlc3RBdHRyaWJ1dGVzSW5uZXJdXSoqIHwgQSBzZXQgb2YgaWRzIGluIGEgdHVwbGUgZm9ybWF0IHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9zcmMgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVTcmMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVBvbGljeVJ1bGVTcmMgZnJvbSBhIEpTT04gc3RyaW5nCmxlZ2FjeV9wb2xpY3lfcnVsZV9zcmNfaW5zdGFuY2UgPSBMZWdhY3lQb2xpY3lSdWxlU3JjLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KExlZ2FjeVBvbGljeVJ1bGVTcmMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbGVnYWN5X3BvbGljeV9ydWxlX3NyY19kaWN0ID0gbGVnYWN5X3BvbGljeV9ydWxlX3NyY19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5UnVsZVNyYyBmcm9tIGEgZGljdApsZWdhY3lfcG9saWN5X3J1bGVfc3JjX2Zyb21fZGljdCA9IExlZ2FjeVBvbGljeVJ1bGVTcmMuZnJvbV9kaWN0KGxlZ2FjeV9wb2xpY3lfcnVsZV9zcmNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/LegacyPolicyRules.md b/docs/LegacyPolicyRules.md index 34749c8c..d1435a44 100644 --- a/docs/LegacyPolicyRules.md +++ b/docs/LegacyPolicyRules.md @@ -1,29 +1 @@ -# LegacyPolicyRules - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**rules** | [**List[LegacyPolicyRule]**](LegacyPolicyRule.md) | Policy rules | [optional] - -## Example - -```python -from fireblocks.models.legacy_policy_rules import LegacyPolicyRules - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyPolicyRules from a JSON string -legacy_policy_rules_instance = LegacyPolicyRules.from_json(json) -# print the JSON string representation of the object -print(LegacyPolicyRules.to_json()) - -# convert the object into a dict -legacy_policy_rules_dict = legacy_policy_rules_instance.to_dict() -# create an instance of LegacyPolicyRules from a dict -legacy_policy_rules_from_dict = LegacyPolicyRules.from_dict(legacy_policy_rules_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lSdWxlcwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipydWxlcyoqIHwgWyoqTGlzdFtMZWdhY3lQb2xpY3lSdWxlXSoqXShMZWdhY3lQb2xpY3lSdWxlLm1kKSB8IFBvbGljeSBydWxlcyB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVzIGltcG9ydCBMZWdhY3lQb2xpY3lSdWxlcwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5UnVsZXMgZnJvbSBhIEpTT04gc3RyaW5nCmxlZ2FjeV9wb2xpY3lfcnVsZXNfaW5zdGFuY2UgPSBMZWdhY3lQb2xpY3lSdWxlcy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChMZWdhY3lQb2xpY3lSdWxlcy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApsZWdhY3lfcG9saWN5X3J1bGVzX2RpY3QgPSBsZWdhY3lfcG9saWN5X3J1bGVzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlcyBmcm9tIGEgZGljdApsZWdhY3lfcG9saWN5X3J1bGVzX2Zyb21fZGljdCA9IExlZ2FjeVBvbGljeVJ1bGVzLmZyb21fZGljdChsZWdhY3lfcG9saWN5X3J1bGVzX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/LegacyPolicySrcOrDestSubType.md b/docs/LegacyPolicySrcOrDestSubType.md index c7d814cc..adf669dc 100644 --- a/docs/LegacyPolicySrcOrDestSubType.md +++ b/docs/LegacyPolicySrcOrDestSubType.md @@ -1,19 +1 @@ -# LegacyPolicySrcOrDestSubType - -* EXTERNAL - A whitelisted wallet assigned as external is typically used for addresses managed by your clients and counterparties * INTERNAL - A whitelisted wallet assigned as internal, is typically used for addresses that you control outside of your Fireblocks workspace * CONTRACT - A whitelisted wallet assigned as contract is for identifying and managing external smart contracts * EXCHANGETEST - Exchanges which operate only on testnet assets * \"*\" - All subtypes - -## Enum - -* `EXTERNAL` (value: `'EXTERNAL'`) - -* `INTERNAL` (value: `'INTERNAL'`) - -* `CONTRACT` (value: `'CONTRACT'`) - -* `EXCHANGETEST` (value: `'EXCHANGETEST'`) - -* `STAR` (value: `'*'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lTcmNPckRlc3RTdWJUeXBlCgoqIEVYVEVSTkFMIC0gQSB3aGl0ZWxpc3RlZCB3YWxsZXQgYXNzaWduZWQgYXMgZXh0ZXJuYWwgaXMgdHlwaWNhbGx5IHVzZWQgZm9yIGFkZHJlc3NlcyBtYW5hZ2VkIGJ5IHlvdXIgY2xpZW50cyBhbmQgY291bnRlcnBhcnRpZXMgKiBJTlRFUk5BTCAtIEEgd2hpdGVsaXN0ZWQgd2FsbGV0IGFzc2lnbmVkIGFzIGludGVybmFsLCBpcyB0eXBpY2FsbHkgdXNlZCBmb3IgYWRkcmVzc2VzIHRoYXQgeW91IGNvbnRyb2wgb3V0c2lkZSBvZiB5b3VyIEZpcmVibG9ja3Mgd29ya3NwYWNlICogQ09OVFJBQ1QgLSBBIHdoaXRlbGlzdGVkIHdhbGxldCBhc3NpZ25lZCBhcyBjb250cmFjdCBpcyBmb3IgaWRlbnRpZnlpbmcgYW5kIG1hbmFnaW5nIGV4dGVybmFsIHNtYXJ0IGNvbnRyYWN0cyAqIEVYQ0hBTkdFVEVTVCAtIEV4Y2hhbmdlcyB3aGljaCBvcGVyYXRlIG9ubHkgb24gdGVzdG5ldCBhc3NldHMgKiBcIipcIiAtIEFsbCBzdWJ0eXBlcyAKCiMjIEVudW0KCiogYEVYVEVSTkFMYCAodmFsdWU6IGAnRVhURVJOQUwnYCkKCiogYElOVEVSTkFMYCAodmFsdWU6IGAnSU5URVJOQUwnYCkKCiogYENPTlRSQUNUYCAodmFsdWU6IGAnQ09OVFJBQ1QnYCkKCiogYEVYQ0hBTkdFVEVTVGAgKHZhbHVlOiBgJ0VYQ0hBTkdFVEVTVCdgKQoKKiBgU1RBUmAgKHZhbHVlOiBgJyonYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/LegacyPolicySrcOrDestType.md b/docs/LegacyPolicySrcOrDestType.md index 28e4cbd1..a5081412 100644 --- a/docs/LegacyPolicySrcOrDestType.md +++ b/docs/LegacyPolicySrcOrDestType.md @@ -1,25 +1 @@ -# LegacyPolicySrcOrDestType - -* EXCHANGE - A third-party exchange account connected to your workspace * UNMANAGED - A unmanaged wallet outside of Fireblocks workspace * VAULT - An account in your Fireblocks Vault * NETWORK_CONNECTION - A connection in your Fireblocks network * COMPOUND - (deprecated) An asset retrieved by using the Compound DeFI protocol * FIAT_ACCOUNT - A third-party fiat account connected to your workspace * ONE_TIME_ADDRESS - A non-whitelisted asset from your Fireblocks Workspace * \"*\" - All types - -## Enum - -* `EXCHANGE` (value: `'EXCHANGE'`) - -* `UNMANAGED` (value: `'UNMANAGED'`) - -* `VAULT` (value: `'VAULT'`) - -* `NETWORK_CONNECTION` (value: `'NETWORK_CONNECTION'`) - -* `COMPOUND` (value: `'COMPOUND'`) - -* `FIAT_ACCOUNT` (value: `'FIAT_ACCOUNT'`) - -* `ONE_TIME_ADDRESS` (value: `'ONE_TIME_ADDRESS'`) - -* `STAR` (value: `'*'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lTcmNPckRlc3RUeXBlCgoqIEVYQ0hBTkdFIC0gQSB0aGlyZC1wYXJ0eSBleGNoYW5nZSBhY2NvdW50IGNvbm5lY3RlZCB0byB5b3VyIHdvcmtzcGFjZSAqIFVOTUFOQUdFRCAtIEEgdW5tYW5hZ2VkIHdhbGxldCBvdXRzaWRlIG9mIEZpcmVibG9ja3Mgd29ya3NwYWNlICogVkFVTFQgLSBBbiBhY2NvdW50IGluIHlvdXIgRmlyZWJsb2NrcyBWYXVsdCAqIE5FVFdPUktfQ09OTkVDVElPTiAtIEEgY29ubmVjdGlvbiBpbiB5b3VyIEZpcmVibG9ja3MgbmV0d29yayAqIENPTVBPVU5EIC0gKGRlcHJlY2F0ZWQpIEFuIGFzc2V0IHJldHJpZXZlZCBieSB1c2luZyB0aGUgQ29tcG91bmQgRGVGSSBwcm90b2NvbCAqIEZJQVRfQUNDT1VOVCAtIEEgdGhpcmQtcGFydHkgZmlhdCBhY2NvdW50IGNvbm5lY3RlZCB0byB5b3VyIHdvcmtzcGFjZSAqIE9ORV9USU1FX0FERFJFU1MgLSBBIG5vbi13aGl0ZWxpc3RlZCBhc3NldCBmcm9tIHlvdXIgRmlyZWJsb2NrcyBXb3Jrc3BhY2UgKiBcIipcIiAtIEFsbCB0eXBlcyAKCiMjIEVudW0KCiogYEVYQ0hBTkdFYCAodmFsdWU6IGAnRVhDSEFOR0UnYCkKCiogYFVOTUFOQUdFRGAgKHZhbHVlOiBgJ1VOTUFOQUdFRCdgKQoKKiBgVkFVTFRgICh2YWx1ZTogYCdWQVVMVCdgKQoKKiBgTkVUV09SS19DT05ORUNUSU9OYCAodmFsdWU6IGAnTkVUV09SS19DT05ORUNUSU9OJ2ApCgoqIGBDT01QT1VORGAgKHZhbHVlOiBgJ0NPTVBPVU5EJ2ApCgoqIGBGSUFUX0FDQ09VTlRgICh2YWx1ZTogYCdGSUFUX0FDQ09VTlQnYCkKCiogYE9ORV9USU1FX0FERFJFU1NgICh2YWx1ZTogYCdPTkVfVElNRV9BRERSRVNTJ2ApCgoqIGBTVEFSYCAodmFsdWU6IGAnKidgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/LegacyPolicyStatus.md b/docs/LegacyPolicyStatus.md index 75a8c8eb..1738e92a 100644 --- a/docs/LegacyPolicyStatus.md +++ b/docs/LegacyPolicyStatus.md @@ -1,23 +1 @@ -# LegacyPolicyStatus - -* SUCCESS - success * UNVALIDATED - not validated yet * INVALID_CONFIGURATION - at least one rule is invalid * PENDING - pending approval * PENDING_CONSOLE_APPROVAL - pending approval from the console app * AWAITING_QUORUM - pending quorum approval * UNHANDLED_ERROR - unhandled error - -## Enum - -* `SUCCESS` (value: `'SUCCESS'`) - -* `UNVALIDATED` (value: `'UNVALIDATED'`) - -* `INVALID_CONFIGURATION` (value: `'INVALID_CONFIGURATION'`) - -* `PENDING` (value: `'PENDING'`) - -* `PENDING_CONSOLE_APPROVAL` (value: `'PENDING_CONSOLE_APPROVAL'`) - -* `AWAITING_QUORUM` (value: `'AWAITING_QUORUM'`) - -* `UNHANDLED_ERROR` (value: `'UNHANDLED_ERROR'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lTdGF0dXMKCiogU1VDQ0VTUyAtIHN1Y2Nlc3MgKiBVTlZBTElEQVRFRCAtIG5vdCB2YWxpZGF0ZWQgeWV0ICogSU5WQUxJRF9DT05GSUdVUkFUSU9OIC0gYXQgbGVhc3Qgb25lIHJ1bGUgaXMgaW52YWxpZCAqIFBFTkRJTkcgLSBwZW5kaW5nIGFwcHJvdmFsICogUEVORElOR19DT05TT0xFX0FQUFJPVkFMIC0gcGVuZGluZyBhcHByb3ZhbCBmcm9tIHRoZSBjb25zb2xlIGFwcCAqIEFXQUlUSU5HX1FVT1JVTSAtIHBlbmRpbmcgcXVvcnVtIGFwcHJvdmFsICogVU5IQU5ETEVEX0VSUk9SIC0gdW5oYW5kbGVkIGVycm9yIAoKIyMgRW51bQoKKiBgU1VDQ0VTU2AgKHZhbHVlOiBgJ1NVQ0NFU1MnYCkKCiogYFVOVkFMSURBVEVEYCAodmFsdWU6IGAnVU5WQUxJREFURUQnYCkKCiogYElOVkFMSURfQ09ORklHVVJBVElPTmAgKHZhbHVlOiBgJ0lOVkFMSURfQ09ORklHVVJBVElPTidgKQoKKiBgUEVORElOR2AgKHZhbHVlOiBgJ1BFTkRJTkcnYCkKCiogYFBFTkRJTkdfQ09OU09MRV9BUFBST1ZBTGAgKHZhbHVlOiBgJ1BFTkRJTkdfQ09OU09MRV9BUFBST1ZBTCdgKQoKKiBgQVdBSVRJTkdfUVVPUlVNYCAodmFsdWU6IGAnQVdBSVRJTkdfUVVPUlVNJ2ApCgoqIGBVTkhBTkRMRURfRVJST1JgICh2YWx1ZTogYCdVTkhBTkRMRURfRVJST1InYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/LegacyPolicyValidation.md b/docs/LegacyPolicyValidation.md index 0b148199..9daa55da 100644 --- a/docs/LegacyPolicyValidation.md +++ b/docs/LegacyPolicyValidation.md @@ -1,31 +1 @@ -# LegacyPolicyValidation - -Policy validation object - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status** | **str** | Validation status | -**check_result** | [**LegacyPolicyCheckResult**](LegacyPolicyCheckResult.md) | | - -## Example - -```python -from fireblocks.models.legacy_policy_validation import LegacyPolicyValidation - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyPolicyValidation from a JSON string -legacy_policy_validation_instance = LegacyPolicyValidation.from_json(json) -# print the JSON string representation of the object -print(LegacyPolicyValidation.to_json()) - -# convert the object into a dict -legacy_policy_validation_dict = legacy_policy_validation_instance.to_dict() -# create an instance of LegacyPolicyValidation from a dict -legacy_policy_validation_from_dict = LegacyPolicyValidation.from_dict(legacy_policy_validation_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQb2xpY3lWYWxpZGF0aW9uCgpQb2xpY3kgdmFsaWRhdGlvbiBvYmplY3QKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzdGF0dXMqKiB8ICoqc3RyKiogfCBWYWxpZGF0aW9uIHN0YXR1cyB8IAoqKmNoZWNrX3Jlc3VsdCoqIHwgWyoqTGVnYWN5UG9saWN5Q2hlY2tSZXN1bHQqKl0oTGVnYWN5UG9saWN5Q2hlY2tSZXN1bHQubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3ZhbGlkYXRpb24gaW1wb3J0IExlZ2FjeVBvbGljeVZhbGlkYXRpb24KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVBvbGljeVZhbGlkYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCmxlZ2FjeV9wb2xpY3lfdmFsaWRhdGlvbl9pbnN0YW5jZSA9IExlZ2FjeVBvbGljeVZhbGlkYXRpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoTGVnYWN5UG9saWN5VmFsaWRhdGlvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApsZWdhY3lfcG9saWN5X3ZhbGlkYXRpb25fZGljdCA9IGxlZ2FjeV9wb2xpY3lfdmFsaWRhdGlvbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5VmFsaWRhdGlvbiBmcm9tIGEgZGljdApsZWdhY3lfcG9saWN5X3ZhbGlkYXRpb25fZnJvbV9kaWN0ID0gTGVnYWN5UG9saWN5VmFsaWRhdGlvbi5mcm9tX2RpY3QobGVnYWN5X3BvbGljeV92YWxpZGF0aW9uX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/LegacyPublishDraftRequest.md b/docs/LegacyPublishDraftRequest.md index 08a69e45..45cce248 100644 --- a/docs/LegacyPublishDraftRequest.md +++ b/docs/LegacyPublishDraftRequest.md @@ -1,29 +1 @@ -# LegacyPublishDraftRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**draft_id** | **str** | draft unique identifier | [optional] - -## Example - -```python -from fireblocks.models.legacy_publish_draft_request import LegacyPublishDraftRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyPublishDraftRequest from a JSON string -legacy_publish_draft_request_instance = LegacyPublishDraftRequest.from_json(json) -# print the JSON string representation of the object -print(LegacyPublishDraftRequest.to_json()) - -# convert the object into a dict -legacy_publish_draft_request_dict = legacy_publish_draft_request_instance.to_dict() -# create an instance of LegacyPublishDraftRequest from a dict -legacy_publish_draft_request_from_dict = LegacyPublishDraftRequest.from_dict(legacy_publish_draft_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQdWJsaXNoRHJhZnRSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmRyYWZ0X2lkKiogfCAqKnN0cioqIHwgZHJhZnQgdW5pcXVlIGlkZW50aWZpZXIgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3B1Ymxpc2hfZHJhZnRfcmVxdWVzdCBpbXBvcnQgTGVnYWN5UHVibGlzaERyYWZ0UmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UHVibGlzaERyYWZ0UmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKbGVnYWN5X3B1Ymxpc2hfZHJhZnRfcmVxdWVzdF9pbnN0YW5jZSA9IExlZ2FjeVB1Ymxpc2hEcmFmdFJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoTGVnYWN5UHVibGlzaERyYWZ0UmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApsZWdhY3lfcHVibGlzaF9kcmFmdF9yZXF1ZXN0X2RpY3QgPSBsZWdhY3lfcHVibGlzaF9kcmFmdF9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQdWJsaXNoRHJhZnRSZXF1ZXN0IGZyb20gYSBkaWN0CmxlZ2FjeV9wdWJsaXNoX2RyYWZ0X3JlcXVlc3RfZnJvbV9kaWN0ID0gTGVnYWN5UHVibGlzaERyYWZ0UmVxdWVzdC5mcm9tX2RpY3QobGVnYWN5X3B1Ymxpc2hfZHJhZnRfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/LegacyPublishResult.md b/docs/LegacyPublishResult.md index 055824a7..7f51687f 100644 --- a/docs/LegacyPublishResult.md +++ b/docs/LegacyPublishResult.md @@ -1,33 +1 @@ -# LegacyPublishResult - -Response object of the publish policy operation - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status** | [**LegacyPolicyStatus**](LegacyPolicyStatus.md) | | -**rules** | [**List[LegacyPolicyRule]**](LegacyPolicyRule.md) | | -**check_result** | [**LegacyPolicyCheckResult**](LegacyPolicyCheckResult.md) | | -**metadata** | [**LegacyPolicyMetadata**](LegacyPolicyMetadata.md) | | - -## Example - -```python -from fireblocks.models.legacy_publish_result import LegacyPublishResult - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacyPublishResult from a JSON string -legacy_publish_result_instance = LegacyPublishResult.from_json(json) -# print the JSON string representation of the object -print(LegacyPublishResult.to_json()) - -# convert the object into a dict -legacy_publish_result_dict = legacy_publish_result_instance.to_dict() -# create an instance of LegacyPublishResult from a dict -legacy_publish_result_from_dict = LegacyPublishResult.from_dict(legacy_publish_result_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lQdWJsaXNoUmVzdWx0CgpSZXNwb25zZSBvYmplY3Qgb2YgdGhlIHB1Ymxpc2ggcG9saWN5IG9wZXJhdGlvbgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnN0YXR1cyoqIHwgWyoqTGVnYWN5UG9saWN5U3RhdHVzKipdKExlZ2FjeVBvbGljeVN0YXR1cy5tZCkgfCAgfCAKKipydWxlcyoqIHwgWyoqTGlzdFtMZWdhY3lQb2xpY3lSdWxlXSoqXShMZWdhY3lQb2xpY3lSdWxlLm1kKSB8ICB8IAoqKmNoZWNrX3Jlc3VsdCoqIHwgWyoqTGVnYWN5UG9saWN5Q2hlY2tSZXN1bHQqKl0oTGVnYWN5UG9saWN5Q2hlY2tSZXN1bHQubWQpIHwgIHwgCioqbWV0YWRhdGEqKiB8IFsqKkxlZ2FjeVBvbGljeU1ldGFkYXRhKipdKExlZ2FjeVBvbGljeU1ldGFkYXRhLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3B1Ymxpc2hfcmVzdWx0IGltcG9ydCBMZWdhY3lQdWJsaXNoUmVzdWx0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQdWJsaXNoUmVzdWx0IGZyb20gYSBKU09OIHN0cmluZwpsZWdhY3lfcHVibGlzaF9yZXN1bHRfaW5zdGFuY2UgPSBMZWdhY3lQdWJsaXNoUmVzdWx0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KExlZ2FjeVB1Ymxpc2hSZXN1bHQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbGVnYWN5X3B1Ymxpc2hfcmVzdWx0X2RpY3QgPSBsZWdhY3lfcHVibGlzaF9yZXN1bHRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVB1Ymxpc2hSZXN1bHQgZnJvbSBhIGRpY3QKbGVnYWN5X3B1Ymxpc2hfcmVzdWx0X2Zyb21fZGljdCA9IExlZ2FjeVB1Ymxpc2hSZXN1bHQuZnJvbV9kaWN0KGxlZ2FjeV9wdWJsaXNoX3Jlc3VsdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/LegacySrcOrDestAttributesInner.md b/docs/LegacySrcOrDestAttributesInner.md index 654ef34f..8cd393d1 100644 --- a/docs/LegacySrcOrDestAttributesInner.md +++ b/docs/LegacySrcOrDestAttributesInner.md @@ -1,28 +1 @@ -# LegacySrcOrDestAttributesInner - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - -## Example - -```python -from fireblocks.models.legacy_src_or_dest_attributes_inner import LegacySrcOrDestAttributesInner - -# TODO update the JSON string below -json = "{}" -# create an instance of LegacySrcOrDestAttributesInner from a JSON string -legacy_src_or_dest_attributes_inner_instance = LegacySrcOrDestAttributesInner.from_json(json) -# print the JSON string representation of the object -print(LegacySrcOrDestAttributesInner.to_json()) - -# convert the object into a dict -legacy_src_or_dest_attributes_inner_dict = legacy_src_or_dest_attributes_inner_instance.to_dict() -# create an instance of LegacySrcOrDestAttributesInner from a dict -legacy_src_or_dest_attributes_inner_from_dict = LegacySrcOrDestAttributesInner.from_dict(legacy_src_or_dest_attributes_inner_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMZWdhY3lTcmNPckRlc3RBdHRyaWJ1dGVzSW5uZXIKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfc3JjX29yX2Rlc3RfYXR0cmlidXRlc19pbm5lciBpbXBvcnQgTGVnYWN5U3JjT3JEZXN0QXR0cmlidXRlc0lubmVyCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lTcmNPckRlc3RBdHRyaWJ1dGVzSW5uZXIgZnJvbSBhIEpTT04gc3RyaW5nCmxlZ2FjeV9zcmNfb3JfZGVzdF9hdHRyaWJ1dGVzX2lubmVyX2luc3RhbmNlID0gTGVnYWN5U3JjT3JEZXN0QXR0cmlidXRlc0lubmVyLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KExlZ2FjeVNyY09yRGVzdEF0dHJpYnV0ZXNJbm5lci50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApsZWdhY3lfc3JjX29yX2Rlc3RfYXR0cmlidXRlc19pbm5lcl9kaWN0ID0gbGVnYWN5X3NyY19vcl9kZXN0X2F0dHJpYnV0ZXNfaW5uZXJfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVNyY09yRGVzdEF0dHJpYnV0ZXNJbm5lciBmcm9tIGEgZGljdApsZWdhY3lfc3JjX29yX2Rlc3RfYXR0cmlidXRlc19pbm5lcl9mcm9tX2RpY3QgPSBMZWdhY3lTcmNPckRlc3RBdHRyaWJ1dGVzSW5uZXIuZnJvbV9kaWN0KGxlZ2FjeV9zcmNfb3JfZGVzdF9hdHRyaWJ1dGVzX2lubmVyX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/LinkedTokensCount.md b/docs/LinkedTokensCount.md index e18cbe3f..ac6d03d0 100644 --- a/docs/LinkedTokensCount.md +++ b/docs/LinkedTokensCount.md @@ -1,29 +1 @@ -# LinkedTokensCount - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**count** | **float** | The total count of linked tokens | - -## Example - -```python -from fireblocks.models.linked_tokens_count import LinkedTokensCount - -# TODO update the JSON string below -json = "{}" -# create an instance of LinkedTokensCount from a JSON string -linked_tokens_count_instance = LinkedTokensCount.from_json(json) -# print the JSON string representation of the object -print(LinkedTokensCount.to_json()) - -# convert the object into a dict -linked_tokens_count_dict = linked_tokens_count_instance.to_dict() -# create an instance of LinkedTokensCount from a dict -linked_tokens_count_from_dict = LinkedTokensCount.from_dict(linked_tokens_count_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMaW5rZWRUb2tlbnNDb3VudAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipjb3VudCoqIHwgKipmbG9hdCoqIHwgVGhlIHRvdGFsIGNvdW50IG9mIGxpbmtlZCB0b2tlbnMgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxpbmtlZF90b2tlbnNfY291bnQgaW1wb3J0IExpbmtlZFRva2Vuc0NvdW50CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMaW5rZWRUb2tlbnNDb3VudCBmcm9tIGEgSlNPTiBzdHJpbmcKbGlua2VkX3Rva2Vuc19jb3VudF9pbnN0YW5jZSA9IExpbmtlZFRva2Vuc0NvdW50LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KExpbmtlZFRva2Vuc0NvdW50LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmxpbmtlZF90b2tlbnNfY291bnRfZGljdCA9IGxpbmtlZF90b2tlbnNfY291bnRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExpbmtlZFRva2Vuc0NvdW50IGZyb20gYSBkaWN0CmxpbmtlZF90b2tlbnNfY291bnRfZnJvbV9kaWN0ID0gTGlua2VkVG9rZW5zQ291bnQuZnJvbV9kaWN0KGxpbmtlZF90b2tlbnNfY291bnRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ListAssetsResponse.md b/docs/ListAssetsResponse.md index 6cd85650..f23964a1 100644 --- a/docs/ListAssetsResponse.md +++ b/docs/ListAssetsResponse.md @@ -1,30 +1 @@ -# ListAssetsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[Asset]**](Asset.md) | The data of the current page | -**next** | **str** | Cursor to the next page | - -## Example - -```python -from fireblocks.models.list_assets_response import ListAssetsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ListAssetsResponse from a JSON string -list_assets_response_instance = ListAssetsResponse.from_json(json) -# print the JSON string representation of the object -print(ListAssetsResponse.to_json()) - -# convert the object into a dict -list_assets_response_dict = list_assets_response_instance.to_dict() -# create an instance of ListAssetsResponse from a dict -list_assets_response_from_dict = ListAssetsResponse.from_dict(list_assets_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMaXN0QXNzZXRzUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZGF0YSoqIHwgWyoqTGlzdFtBc3NldF0qKl0oQXNzZXQubWQpIHwgVGhlIGRhdGEgb2YgdGhlIGN1cnJlbnQgcGFnZSB8IAoqKm5leHQqKiB8ICoqc3RyKiogfCBDdXJzb3IgdG8gdGhlIG5leHQgcGFnZSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGlzdF9hc3NldHNfcmVzcG9uc2UgaW1wb3J0IExpc3RBc3NldHNSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGlzdEFzc2V0c1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpsaXN0X2Fzc2V0c19yZXNwb25zZV9pbnN0YW5jZSA9IExpc3RBc3NldHNSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChMaXN0QXNzZXRzUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbGlzdF9hc3NldHNfcmVzcG9uc2VfZGljdCA9IGxpc3RfYXNzZXRzX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMaXN0QXNzZXRzUmVzcG9uc2UgZnJvbSBhIGRpY3QKbGlzdF9hc3NldHNfcmVzcG9uc2VfZnJvbV9kaWN0ID0gTGlzdEFzc2V0c1Jlc3BvbnNlLmZyb21fZGljdChsaXN0X2Fzc2V0c19yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ListBlockchainsResponse.md b/docs/ListBlockchainsResponse.md index 317c98c3..c503cd65 100644 --- a/docs/ListBlockchainsResponse.md +++ b/docs/ListBlockchainsResponse.md @@ -1,30 +1 @@ -# ListBlockchainsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[BlockchainResponse]**](BlockchainResponse.md) | The data of the current page | -**next** | **str** | Cursor to the next page | - -## Example - -```python -from fireblocks.models.list_blockchains_response import ListBlockchainsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ListBlockchainsResponse from a JSON string -list_blockchains_response_instance = ListBlockchainsResponse.from_json(json) -# print the JSON string representation of the object -print(ListBlockchainsResponse.to_json()) - -# convert the object into a dict -list_blockchains_response_dict = list_blockchains_response_instance.to_dict() -# create an instance of ListBlockchainsResponse from a dict -list_blockchains_response_from_dict = ListBlockchainsResponse.from_dict(list_blockchains_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMaXN0QmxvY2tjaGFpbnNSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkYXRhKiogfCBbKipMaXN0W0Jsb2NrY2hhaW5SZXNwb25zZV0qKl0oQmxvY2tjaGFpblJlc3BvbnNlLm1kKSB8IFRoZSBkYXRhIG9mIHRoZSBjdXJyZW50IHBhZ2UgfCAKKipuZXh0KiogfCAqKnN0cioqIHwgQ3Vyc29yIHRvIHRoZSBuZXh0IHBhZ2UgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxpc3RfYmxvY2tjaGFpbnNfcmVzcG9uc2UgaW1wb3J0IExpc3RCbG9ja2NoYWluc1Jlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMaXN0QmxvY2tjaGFpbnNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKbGlzdF9ibG9ja2NoYWluc19yZXNwb25zZV9pbnN0YW5jZSA9IExpc3RCbG9ja2NoYWluc1Jlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KExpc3RCbG9ja2NoYWluc1Jlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cmxpc3RfYmxvY2tjaGFpbnNfcmVzcG9uc2VfZGljdCA9IGxpc3RfYmxvY2tjaGFpbnNfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExpc3RCbG9ja2NoYWluc1Jlc3BvbnNlIGZyb20gYSBkaWN0Cmxpc3RfYmxvY2tjaGFpbnNfcmVzcG9uc2VfZnJvbV9kaWN0ID0gTGlzdEJsb2NrY2hhaW5zUmVzcG9uc2UuZnJvbV9kaWN0KGxpc3RfYmxvY2tjaGFpbnNfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ListOwnedCollectionsResponse.md b/docs/ListOwnedCollectionsResponse.md index 002300f0..f687897c 100644 --- a/docs/ListOwnedCollectionsResponse.md +++ b/docs/ListOwnedCollectionsResponse.md @@ -1,30 +1 @@ -# ListOwnedCollectionsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**paging** | [**Paging**](Paging.md) | | [optional] -**data** | [**List[CollectionOwnershipResponse]**](CollectionOwnershipResponse.md) | | [optional] - -## Example - -```python -from fireblocks.models.list_owned_collections_response import ListOwnedCollectionsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ListOwnedCollectionsResponse from a JSON string -list_owned_collections_response_instance = ListOwnedCollectionsResponse.from_json(json) -# print the JSON string representation of the object -print(ListOwnedCollectionsResponse.to_json()) - -# convert the object into a dict -list_owned_collections_response_dict = list_owned_collections_response_instance.to_dict() -# create an instance of ListOwnedCollectionsResponse from a dict -list_owned_collections_response_from_dict = ListOwnedCollectionsResponse.from_dict(list_owned_collections_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMaXN0T3duZWRDb2xsZWN0aW9uc1Jlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnBhZ2luZyoqIHwgWyoqUGFnaW5nKipdKFBhZ2luZy5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRhdGEqKiB8IFsqKkxpc3RbQ29sbGVjdGlvbk93bmVyc2hpcFJlc3BvbnNlXSoqXShDb2xsZWN0aW9uT3duZXJzaGlwUmVzcG9uc2UubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxpc3Rfb3duZWRfY29sbGVjdGlvbnNfcmVzcG9uc2UgaW1wb3J0IExpc3RPd25lZENvbGxlY3Rpb25zUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExpc3RPd25lZENvbGxlY3Rpb25zUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmxpc3Rfb3duZWRfY29sbGVjdGlvbnNfcmVzcG9uc2VfaW5zdGFuY2UgPSBMaXN0T3duZWRDb2xsZWN0aW9uc1Jlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KExpc3RPd25lZENvbGxlY3Rpb25zUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbGlzdF9vd25lZF9jb2xsZWN0aW9uc19yZXNwb25zZV9kaWN0ID0gbGlzdF9vd25lZF9jb2xsZWN0aW9uc19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGlzdE93bmVkQ29sbGVjdGlvbnNSZXNwb25zZSBmcm9tIGEgZGljdApsaXN0X293bmVkX2NvbGxlY3Rpb25zX3Jlc3BvbnNlX2Zyb21fZGljdCA9IExpc3RPd25lZENvbGxlY3Rpb25zUmVzcG9uc2UuZnJvbV9kaWN0KGxpc3Rfb3duZWRfY29sbGVjdGlvbnNfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ListOwnedTokensResponse.md b/docs/ListOwnedTokensResponse.md index d7911d0e..564dbc3f 100644 --- a/docs/ListOwnedTokensResponse.md +++ b/docs/ListOwnedTokensResponse.md @@ -1,30 +1 @@ -# ListOwnedTokensResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**paging** | [**Paging**](Paging.md) | | [optional] -**data** | [**List[TokenResponse]**](TokenResponse.md) | | [optional] - -## Example - -```python -from fireblocks.models.list_owned_tokens_response import ListOwnedTokensResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ListOwnedTokensResponse from a JSON string -list_owned_tokens_response_instance = ListOwnedTokensResponse.from_json(json) -# print the JSON string representation of the object -print(ListOwnedTokensResponse.to_json()) - -# convert the object into a dict -list_owned_tokens_response_dict = list_owned_tokens_response_instance.to_dict() -# create an instance of ListOwnedTokensResponse from a dict -list_owned_tokens_response_from_dict = ListOwnedTokensResponse.from_dict(list_owned_tokens_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMaXN0T3duZWRUb2tlbnNSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipwYWdpbmcqKiB8IFsqKlBhZ2luZyoqXShQYWdpbmcubWQpIHwgIHwgW29wdGlvbmFsXSAKKipkYXRhKiogfCBbKipMaXN0W1Rva2VuUmVzcG9uc2VdKipdKFRva2VuUmVzcG9uc2UubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxpc3Rfb3duZWRfdG9rZW5zX3Jlc3BvbnNlIGltcG9ydCBMaXN0T3duZWRUb2tlbnNSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGlzdE93bmVkVG9rZW5zUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCmxpc3Rfb3duZWRfdG9rZW5zX3Jlc3BvbnNlX2luc3RhbmNlID0gTGlzdE93bmVkVG9rZW5zUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoTGlzdE93bmVkVG9rZW5zUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbGlzdF9vd25lZF90b2tlbnNfcmVzcG9uc2VfZGljdCA9IGxpc3Rfb3duZWRfdG9rZW5zX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMaXN0T3duZWRUb2tlbnNSZXNwb25zZSBmcm9tIGEgZGljdApsaXN0X293bmVkX3Rva2Vuc19yZXNwb25zZV9mcm9tX2RpY3QgPSBMaXN0T3duZWRUb2tlbnNSZXNwb25zZS5mcm9tX2RpY3QobGlzdF9vd25lZF90b2tlbnNfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/LocalBankTransferAfricaAddress.md b/docs/LocalBankTransferAfricaAddress.md index 6d68c49d..e43c1f18 100644 --- a/docs/LocalBankTransferAfricaAddress.md +++ b/docs/LocalBankTransferAfricaAddress.md @@ -1,34 +1 @@ -# LocalBankTransferAfricaAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | | -**account_number** | **str** | | -**bank_name** | **str** | Name of the bank | -**bank_code** | **str** | Internal bank identifier | -**success_payment_instruction_redirect_url** | **str** | The URL to redirect to after the payment instruction is successful | [optional] -**payment_redirect** | [**PaymentRedirect**](PaymentRedirect.md) | | [optional] - -## Example - -```python -from fireblocks.models.local_bank_transfer_africa_address import LocalBankTransferAfricaAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of LocalBankTransferAfricaAddress from a JSON string -local_bank_transfer_africa_address_instance = LocalBankTransferAfricaAddress.from_json(json) -# print the JSON string representation of the object -print(LocalBankTransferAfricaAddress.to_json()) - -# convert the object into a dict -local_bank_transfer_africa_address_dict = local_bank_transfer_africa_address_instance.to_dict() -# create an instance of LocalBankTransferAfricaAddress from a dict -local_bank_transfer_africa_address_from_dict = LocalBankTransferAfricaAddress.from_dict(local_bank_transfer_africa_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMb2NhbEJhbmtUcmFuc2ZlckFmcmljYUFkZHJlc3MKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYWNjb3VudF9ob2xkZXIqKiB8IFsqKkFjY291bnRIb2xkZXJEZXRhaWxzKipdKEFjY291bnRIb2xkZXJEZXRhaWxzLm1kKSB8ICB8IAoqKmFjY291bnRfbnVtYmVyKiogfCAqKnN0cioqIHwgIHwgCioqYmFua19uYW1lKiogfCAqKnN0cioqIHwgTmFtZSBvZiB0aGUgYmFuayB8IAoqKmJhbmtfY29kZSoqIHwgKipzdHIqKiB8IEludGVybmFsIGJhbmsgaWRlbnRpZmllciB8IAoqKnN1Y2Nlc3NfcGF5bWVudF9pbnN0cnVjdGlvbl9yZWRpcmVjdF91cmwqKiB8ICoqc3RyKiogfCBUaGUgVVJMIHRvIHJlZGlyZWN0IHRvIGFmdGVyIHRoZSBwYXltZW50IGluc3RydWN0aW9uIGlzIHN1Y2Nlc3NmdWwgfCBbb3B0aW9uYWxdIAoqKnBheW1lbnRfcmVkaXJlY3QqKiB8IFsqKlBheW1lbnRSZWRpcmVjdCoqXShQYXltZW50UmVkaXJlY3QubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxvY2FsX2JhbmtfdHJhbnNmZXJfYWZyaWNhX2FkZHJlc3MgaW1wb3J0IExvY2FsQmFua1RyYW5zZmVyQWZyaWNhQWRkcmVzcwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FBZGRyZXNzIGZyb20gYSBKU09OIHN0cmluZwpsb2NhbF9iYW5rX3RyYW5zZmVyX2FmcmljYV9hZGRyZXNzX2luc3RhbmNlID0gTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FBZGRyZXNzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KExvY2FsQmFua1RyYW5zZmVyQWZyaWNhQWRkcmVzcy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApsb2NhbF9iYW5rX3RyYW5zZmVyX2FmcmljYV9hZGRyZXNzX2RpY3QgPSBsb2NhbF9iYW5rX3RyYW5zZmVyX2FmcmljYV9hZGRyZXNzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMb2NhbEJhbmtUcmFuc2ZlckFmcmljYUFkZHJlc3MgZnJvbSBhIGRpY3QKbG9jYWxfYmFua190cmFuc2Zlcl9hZnJpY2FfYWRkcmVzc19mcm9tX2RpY3QgPSBMb2NhbEJhbmtUcmFuc2ZlckFmcmljYUFkZHJlc3MuZnJvbV9kaWN0KGxvY2FsX2JhbmtfdHJhbnNmZXJfYWZyaWNhX2FkZHJlc3NfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/LocalBankTransferAfricaDestination.md b/docs/LocalBankTransferAfricaDestination.md index 2a96f127..187294a8 100644 --- a/docs/LocalBankTransferAfricaDestination.md +++ b/docs/LocalBankTransferAfricaDestination.md @@ -1,30 +1 @@ -# LocalBankTransferAfricaDestination - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | -**address** | [**LocalBankTransferAfricaAddress**](LocalBankTransferAfricaAddress.md) | | - -## Example - -```python -from fireblocks.models.local_bank_transfer_africa_destination import LocalBankTransferAfricaDestination - -# TODO update the JSON string below -json = "{}" -# create an instance of LocalBankTransferAfricaDestination from a JSON string -local_bank_transfer_africa_destination_instance = LocalBankTransferAfricaDestination.from_json(json) -# print the JSON string representation of the object -print(LocalBankTransferAfricaDestination.to_json()) - -# convert the object into a dict -local_bank_transfer_africa_destination_dict = local_bank_transfer_africa_destination_instance.to_dict() -# create an instance of LocalBankTransferAfricaDestination from a dict -local_bank_transfer_africa_destination_from_dict = LocalBankTransferAfricaDestination.from_dict(local_bank_transfer_africa_destination_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBMb2NhbEJhbmtUcmFuc2ZlckFmcmljYURlc3RpbmF0aW9uCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8ICoqc3RyKiogfCAgfCAKKiphZGRyZXNzKiogfCBbKipMb2NhbEJhbmtUcmFuc2ZlckFmcmljYUFkZHJlc3MqKl0oTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FBZGRyZXNzLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubG9jYWxfYmFua190cmFuc2Zlcl9hZnJpY2FfZGVzdGluYXRpb24gaW1wb3J0IExvY2FsQmFua1RyYW5zZmVyQWZyaWNhRGVzdGluYXRpb24KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIExvY2FsQmFua1RyYW5zZmVyQWZyaWNhRGVzdGluYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCmxvY2FsX2JhbmtfdHJhbnNmZXJfYWZyaWNhX2Rlc3RpbmF0aW9uX2luc3RhbmNlID0gTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FEZXN0aW5hdGlvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChMb2NhbEJhbmtUcmFuc2ZlckFmcmljYURlc3RpbmF0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CmxvY2FsX2JhbmtfdHJhbnNmZXJfYWZyaWNhX2Rlc3RpbmF0aW9uX2RpY3QgPSBsb2NhbF9iYW5rX3RyYW5zZmVyX2FmcmljYV9kZXN0aW5hdGlvbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FEZXN0aW5hdGlvbiBmcm9tIGEgZGljdApsb2NhbF9iYW5rX3RyYW5zZmVyX2FmcmljYV9kZXN0aW5hdGlvbl9mcm9tX2RpY3QgPSBMb2NhbEJhbmtUcmFuc2ZlckFmcmljYURlc3RpbmF0aW9uLmZyb21fZGljdChsb2NhbF9iYW5rX3RyYW5zZmVyX2FmcmljYV9kZXN0aW5hdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/Manifest.md b/docs/Manifest.md index ed5df2f2..9e223605 100644 --- a/docs/Manifest.md +++ b/docs/Manifest.md @@ -1,30 +1 @@ -# Manifest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**asset_types** | [**List[AssetTypeEnum]**](AssetTypeEnum.md) | | -**capabilities** | [**List[Capability]**](Capability.md) | | - -## Example - -```python -from fireblocks.models.manifest import Manifest - -# TODO update the JSON string below -json = "{}" -# create an instance of Manifest from a JSON string -manifest_instance = Manifest.from_json(json) -# print the JSON string representation of the object -print(Manifest.to_json()) - -# convert the object into a dict -manifest_dict = manifest_instance.to_dict() -# create an instance of Manifest from a dict -manifest_from_dict = Manifest.from_dict(manifest_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBNYW5pZmVzdAoKVGhlIG1hbmlmZXN0IG9mIHRoZSBwcm92aWRlciwgZGVzY3JpYmluZyBpdHMgc3VwcG9ydGVkIG9yZGVyLCBxdW90ZSwgYW5kIHJhdGUgcmVxdWlyZW1lbnRzLgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm9yZGVyKiogfCBbKipNYW5pZmVzdE9yZGVyKipdKE1hbmlmZXN0T3JkZXIubWQpIHwgIHwgCioqcXVvdGUqKiB8IFsqKk1hbmlmZXN0UXVvdGUqKl0oTWFuaWZlc3RRdW90ZS5tZCkgfCAgfCAKKipyYXRlKiogfCBbKipNYW5pZmVzdEJhc2UqKl0oTWFuaWZlc3RCYXNlLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubWFuaWZlc3QgaW1wb3J0IE1hbmlmZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNYW5pZmVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKbWFuaWZlc3RfaW5zdGFuY2UgPSBNYW5pZmVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChNYW5pZmVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAptYW5pZmVzdF9kaWN0ID0gbWFuaWZlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE1hbmlmZXN0IGZyb20gYSBkaWN0Cm1hbmlmZXN0X2Zyb21fZGljdCA9IE1hbmlmZXN0LmZyb21fZGljdChtYW5pZmVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ManifestBase.md b/docs/ManifestBase.md new file mode 100644 index 00000000..f0ab7a2f --- /dev/null +++ b/docs/ManifestBase.md @@ -0,0 +1 @@ +IyBNYW5pZmVzdEJhc2UKCkJhc2UgbWFuaWZlc3Qgc2NoZW1hIHdpdGggY29tbW9uIHByb3BlcnRpZXMKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzdXBwb3J0ZWQqKiB8ICoqYm9vbCoqIHwgSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGVuZHBvaW50IGlzIHN1cHBvcnRlZCBieSB0aGUgcHJvdmlkZXIgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hbmlmZXN0X2Jhc2UgaW1wb3J0IE1hbmlmZXN0QmFzZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTWFuaWZlc3RCYXNlIGZyb20gYSBKU09OIHN0cmluZwptYW5pZmVzdF9iYXNlX2luc3RhbmNlID0gTWFuaWZlc3RCYXNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KE1hbmlmZXN0QmFzZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAptYW5pZmVzdF9iYXNlX2RpY3QgPSBtYW5pZmVzdF9iYXNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNYW5pZmVzdEJhc2UgZnJvbSBhIGRpY3QKbWFuaWZlc3RfYmFzZV9mcm9tX2RpY3QgPSBNYW5pZmVzdEJhc2UuZnJvbV9kaWN0KG1hbmlmZXN0X2Jhc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ManifestOrder.md b/docs/ManifestOrder.md new file mode 100644 index 00000000..bf8d5638 --- /dev/null +++ b/docs/ManifestOrder.md @@ -0,0 +1 @@ +IyBNYW5pZmVzdE9yZGVyCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnN1cHBvcnRlZCoqIHwgKipib29sKiogfCBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZW5kcG9pbnQgaXMgc3VwcG9ydGVkIGJ5IHRoZSBwcm92aWRlciB8IAoqKnNldHRsZW1lbnRfdHlwZXMqKiB8IFsqKkxpc3RbU2V0dGxlbWVudFR5cGVFbnVtXSoqXShTZXR0bGVtZW50VHlwZUVudW0ubWQpIHwgU3VwcG9ydGVkIHNldHRsZW1lbnQgdHlwZXMgd2hlbiBjcmVhdGluZyBhbiBvcmRlci4gSWYgcHJlc2VudCAtIHNldHRsZW1lbnQgaXMgcmVxdWlyZWQuIElmIGFic2VudCAtIG5vIG5lZWQgdG8gcHJvdmlkZSBzZXR0bGVtZW50LiAgfCBbb3B0aW9uYWxdIAoqKmV4ZWN1dGlvbl90eXBlcyoqIHwgWyoqTGlzdFtFeGVjdXRpb25SZXF1ZXN0RGV0YWlsc1R5cGVdKipdKEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzVHlwZS5tZCkgfCBTdXBwb3J0ZWQgZXhlY3V0aW9uIHR5cGVzIHdoZW4gY3JlYXRpbmcgYW4gb3JkZXIuIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tYW5pZmVzdF9vcmRlciBpbXBvcnQgTWFuaWZlc3RPcmRlcgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTWFuaWZlc3RPcmRlciBmcm9tIGEgSlNPTiBzdHJpbmcKbWFuaWZlc3Rfb3JkZXJfaW5zdGFuY2UgPSBNYW5pZmVzdE9yZGVyLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KE1hbmlmZXN0T3JkZXIudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbWFuaWZlc3Rfb3JkZXJfZGljdCA9IG1hbmlmZXN0X29yZGVyX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNYW5pZmVzdE9yZGVyIGZyb20gYSBkaWN0Cm1hbmlmZXN0X29yZGVyX2Zyb21fZGljdCA9IE1hbmlmZXN0T3JkZXIuZnJvbV9kaWN0KG1hbmlmZXN0X29yZGVyX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ManifestOrderInfo.md b/docs/ManifestOrderInfo.md new file mode 100644 index 00000000..51b5539b --- /dev/null +++ b/docs/ManifestOrderInfo.md @@ -0,0 +1 @@ +IyBNYW5pZmVzdE9yZGVySW5mbwoKRGVmaW5lcyByZXF1aXJlbWVudHMgZm9yIHRoZSBQT1NUIC9vcmRlcnMgZW5kcG9pbnQuCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc2V0dGxlbWVudF90eXBlcyoqIHwgWyoqTGlzdFtTZXR0bGVtZW50VHlwZUVudW1dKipdKFNldHRsZW1lbnRUeXBlRW51bS5tZCkgfCBTdXBwb3J0ZWQgc2V0dGxlbWVudCB0eXBlcyB3aGVuIGNyZWF0aW5nIGFuIG9yZGVyLiBJZiBwcmVzZW50IC0gc2V0dGxlbWVudCBpcyByZXF1aXJlZC4gSWYgYWJzZW50IC0gbm8gbmVlZCB0byBwcm92aWRlIHNldHRsZW1lbnQuICB8IFtvcHRpb25hbF0gCioqZXhlY3V0aW9uX3R5cGVzKiogfCBbKipMaXN0W0V4ZWN1dGlvblJlcXVlc3REZXRhaWxzVHlwZV0qKl0oRXhlY3V0aW9uUmVxdWVzdERldGFpbHNUeXBlLm1kKSB8IFN1cHBvcnRlZCBleGVjdXRpb24gdHlwZXMgd2hlbiBjcmVhdGluZyBhbiBvcmRlci4gfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hbmlmZXN0X29yZGVyX2luZm8gaW1wb3J0IE1hbmlmZXN0T3JkZXJJbmZvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNYW5pZmVzdE9yZGVySW5mbyBmcm9tIGEgSlNPTiBzdHJpbmcKbWFuaWZlc3Rfb3JkZXJfaW5mb19pbnN0YW5jZSA9IE1hbmlmZXN0T3JkZXJJbmZvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KE1hbmlmZXN0T3JkZXJJbmZvLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cm1hbmlmZXN0X29yZGVyX2luZm9fZGljdCA9IG1hbmlmZXN0X29yZGVyX2luZm9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE1hbmlmZXN0T3JkZXJJbmZvIGZyb20gYSBkaWN0Cm1hbmlmZXN0X29yZGVyX2luZm9fZnJvbV9kaWN0ID0gTWFuaWZlc3RPcmRlckluZm8uZnJvbV9kaWN0KG1hbmlmZXN0X29yZGVyX2luZm9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ManifestQuote.md b/docs/ManifestQuote.md new file mode 100644 index 00000000..c7060a03 --- /dev/null +++ b/docs/ManifestQuote.md @@ -0,0 +1 @@ +IyBNYW5pZmVzdFF1b3RlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnN1cHBvcnRlZCoqIHwgKipib29sKiogfCBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZW5kcG9pbnQgaXMgc3VwcG9ydGVkIGJ5IHRoZSBwcm92aWRlciB8IAoqKnNldHRsZW1lbnRfdHlwZXMqKiB8IFsqKkxpc3RbRFZQU2V0dGxlbWVudFR5cGVdKipdKERWUFNldHRsZW1lbnRUeXBlLm1kKSB8IFN1cHBvcnRlZCBzZXR0bGVtZW50IHR5cGVzIHdoZW4gcmVxdWVzdGluZyBhIHF1b3RlLiBJZiBwcmVzZW50IC0gc2V0dGxlbWVudCBpcyByZXF1aXJlZC4gSWYgYWJzZW50IC0gbm8gbmVlZCB0byBwcm92aWRlIHNldHRsZW1lbnQuICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tYW5pZmVzdF9xdW90ZSBpbXBvcnQgTWFuaWZlc3RRdW90ZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTWFuaWZlc3RRdW90ZSBmcm9tIGEgSlNPTiBzdHJpbmcKbWFuaWZlc3RfcXVvdGVfaW5zdGFuY2UgPSBNYW5pZmVzdFF1b3RlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KE1hbmlmZXN0UXVvdGUudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbWFuaWZlc3RfcXVvdGVfZGljdCA9IG1hbmlmZXN0X3F1b3RlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNYW5pZmVzdFF1b3RlIGZyb20gYSBkaWN0Cm1hbmlmZXN0X3F1b3RlX2Zyb21fZGljdCA9IE1hbmlmZXN0UXVvdGUuZnJvbV9kaWN0KG1hbmlmZXN0X3F1b3RlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ManifestQuoteInfo.md b/docs/ManifestQuoteInfo.md new file mode 100644 index 00000000..a786f926 --- /dev/null +++ b/docs/ManifestQuoteInfo.md @@ -0,0 +1 @@ +IyBNYW5pZmVzdFF1b3RlSW5mbwoKRGVmaW5lcyByZXF1aXJlbWVudHMgZm9yIHRoZSBQT1NUIC9xdW90ZXMgZW5kcG9pbnQuCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc2V0dGxlbWVudF90eXBlcyoqIHwgWyoqTGlzdFtEVlBTZXR0bGVtZW50VHlwZV0qKl0oRFZQU2V0dGxlbWVudFR5cGUubWQpIHwgU3VwcG9ydGVkIHNldHRsZW1lbnQgdHlwZXMgd2hlbiByZXF1ZXN0aW5nIGEgcXVvdGUuIElmIHByZXNlbnQgLSBzZXR0bGVtZW50IGlzIHJlcXVpcmVkLiBJZiBhYnNlbnQgLSBubyBuZWVkIHRvIHByb3ZpZGUgc2V0dGxlbWVudC4gIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hbmlmZXN0X3F1b3RlX2luZm8gaW1wb3J0IE1hbmlmZXN0UXVvdGVJbmZvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNYW5pZmVzdFF1b3RlSW5mbyBmcm9tIGEgSlNPTiBzdHJpbmcKbWFuaWZlc3RfcXVvdGVfaW5mb19pbnN0YW5jZSA9IE1hbmlmZXN0UXVvdGVJbmZvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KE1hbmlmZXN0UXVvdGVJbmZvLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cm1hbmlmZXN0X3F1b3RlX2luZm9fZGljdCA9IG1hbmlmZXN0X3F1b3RlX2luZm9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE1hbmlmZXN0UXVvdGVJbmZvIGZyb20gYSBkaWN0Cm1hbmlmZXN0X3F1b3RlX2luZm9fZnJvbV9kaWN0ID0gTWFuaWZlc3RRdW90ZUluZm8uZnJvbV9kaWN0KG1hbmlmZXN0X3F1b3RlX2luZm9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/MarketExecutionRequestDetails.md b/docs/MarketExecutionRequestDetails.md index 508bb1e7..d8c67d8b 100644 --- a/docs/MarketExecutionRequestDetails.md +++ b/docs/MarketExecutionRequestDetails.md @@ -1,35 +1 @@ -# MarketExecutionRequestDetails - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**MarketTypeEnum**](MarketTypeEnum.md) | | -**side** | [**Side**](Side.md) | | -**base_amount** | **str** | Amount in baseAssetId. BUY = base amount to receive; SELL = base amount to sell. | -**base_asset_id** | **str** | The asset you receive on BUY / give on SELL. | -**base_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional] -**quote_asset_id** | **str** | Counter asset used to pay/receive | -**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional] - -## Example - -```python -from fireblocks.models.market_execution_request_details import MarketExecutionRequestDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of MarketExecutionRequestDetails from a JSON string -market_execution_request_details_instance = MarketExecutionRequestDetails.from_json(json) -# print the JSON string representation of the object -print(MarketExecutionRequestDetails.to_json()) - -# convert the object into a dict -market_execution_request_details_dict = market_execution_request_details_instance.to_dict() -# create an instance of MarketExecutionRequestDetails from a dict -market_execution_request_details_from_dict = MarketExecutionRequestDetails.from_dict(market_execution_request_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBNYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlscwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eXBlKiogfCBbKipNYXJrZXRUeXBlRW51bSoqXShNYXJrZXRUeXBlRW51bS5tZCkgfCAgfCAKKipzaWRlKiogfCBbKipTaWRlKipdKFNpZGUubWQpIHwgIHwgCioqYmFzZV9hbW91bnQqKiB8ICoqc3RyKiogfCBBbW91bnQgaW4gYmFzZUFzc2V0SWQuIEJVWSAmI3gzRDsgYmFzZSBhbW91bnQgdG8gcmVjZWl2ZTsgU0VMTCAmI3gzRDsgYmFzZSBhbW91bnQgdG8gc2VsbC4gfCAKKipiYXNlX2Fzc2V0X2lkKiogfCAqKnN0cioqIHwgVGhlIGFzc2V0IHlvdSByZWNlaXZlIG9uIEJVWSAvIGdpdmUgb24gU0VMTC4gfCAKKipiYXNlX2Fzc2V0X3JhaWwqKiB8IFsqKlRyYW5zZmVyUmFpbCoqXShUcmFuc2ZlclJhaWwubWQpIHwgIHwgW29wdGlvbmFsXSAKKipxdW90ZV9hc3NldF9pZCoqIHwgKipzdHIqKiB8IENvdW50ZXIgYXNzZXQgdXNlZCB0byBwYXkvcmVjZWl2ZSB8IAoqKnF1b3RlX2Fzc2V0X3JhaWwqKiB8IFsqKlRyYW5zZmVyUmFpbCoqXShUcmFuc2ZlclJhaWwubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hcmtldF9leGVjdXRpb25fcmVxdWVzdF9kZXRhaWxzIGltcG9ydCBNYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlscwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTWFya2V0RXhlY3V0aW9uUmVxdWVzdERldGFpbHMgZnJvbSBhIEpTT04gc3RyaW5nCm1hcmtldF9leGVjdXRpb25fcmVxdWVzdF9kZXRhaWxzX2luc3RhbmNlID0gTWFya2V0RXhlY3V0aW9uUmVxdWVzdERldGFpbHMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoTWFya2V0RXhlY3V0aW9uUmVxdWVzdERldGFpbHMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbWFya2V0X2V4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHNfZGljdCA9IG1hcmtldF9leGVjdXRpb25fcmVxdWVzdF9kZXRhaWxzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlscyBmcm9tIGEgZGljdAptYXJrZXRfZXhlY3V0aW9uX3JlcXVlc3RfZGV0YWlsc19mcm9tX2RpY3QgPSBNYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlscy5mcm9tX2RpY3QobWFya2V0X2V4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/MarketExecutionResponseDetails.md b/docs/MarketExecutionResponseDetails.md index ab4f7fd0..22d2c9ad 100644 --- a/docs/MarketExecutionResponseDetails.md +++ b/docs/MarketExecutionResponseDetails.md @@ -1,35 +1 @@ -# MarketExecutionResponseDetails - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**MarketTypeEnum**](MarketTypeEnum.md) | | -**side** | [**Side**](Side.md) | | -**base_amount** | **str** | Amount to convert | -**base_asset_id** | **str** | Source asset identifier | -**base_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional] -**quote_asset_id** | **str** | Target asset identifier | -**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional] - -## Example - -```python -from fireblocks.models.market_execution_response_details import MarketExecutionResponseDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of MarketExecutionResponseDetails from a JSON string -market_execution_response_details_instance = MarketExecutionResponseDetails.from_json(json) -# print the JSON string representation of the object -print(MarketExecutionResponseDetails.to_json()) - -# convert the object into a dict -market_execution_response_details_dict = market_execution_response_details_instance.to_dict() -# create an instance of MarketExecutionResponseDetails from a dict -market_execution_response_details_from_dict = MarketExecutionResponseDetails.from_dict(market_execution_response_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBNYXJrZXRFeGVjdXRpb25SZXNwb25zZURldGFpbHMKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgWyoqTWFya2V0VHlwZUVudW0qKl0oTWFya2V0VHlwZUVudW0ubWQpIHwgIHwgCioqc2lkZSoqIHwgWyoqU2lkZSoqXShTaWRlLm1kKSB8ICB8IAoqKmJhc2VfYW1vdW50KiogfCAqKnN0cioqIHwgQW1vdW50IHRvIGNvbnZlcnQgfCAKKipiYXNlX2Fzc2V0X2lkKiogfCAqKnN0cioqIHwgU291cmNlIGFzc2V0IGlkZW50aWZpZXIgfCAKKipiYXNlX2Fzc2V0X3JhaWwqKiB8IFsqKlRyYW5zZmVyUmFpbCoqXShUcmFuc2ZlclJhaWwubWQpIHwgIHwgW29wdGlvbmFsXSAKKipxdW90ZV9hc3NldF9pZCoqIHwgKipzdHIqKiB8IFRhcmdldCBhc3NldCBpZGVudGlmaWVyIHwgCioqcXVvdGVfYXNzZXRfcmFpbCoqIHwgWyoqVHJhbnNmZXJSYWlsKipdKFRyYW5zZmVyUmFpbC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubWFya2V0X2V4ZWN1dGlvbl9yZXNwb25zZV9kZXRhaWxzIGltcG9ydCBNYXJrZXRFeGVjdXRpb25SZXNwb25zZURldGFpbHMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE1hcmtldEV4ZWN1dGlvblJlc3BvbnNlRGV0YWlscyBmcm9tIGEgSlNPTiBzdHJpbmcKbWFya2V0X2V4ZWN1dGlvbl9yZXNwb25zZV9kZXRhaWxzX2luc3RhbmNlID0gTWFya2V0RXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KE1hcmtldEV4ZWN1dGlvblJlc3BvbnNlRGV0YWlscy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAptYXJrZXRfZXhlY3V0aW9uX3Jlc3BvbnNlX2RldGFpbHNfZGljdCA9IG1hcmtldF9leGVjdXRpb25fcmVzcG9uc2VfZGV0YWlsc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTWFya2V0RXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzIGZyb20gYSBkaWN0Cm1hcmtldF9leGVjdXRpb25fcmVzcG9uc2VfZGV0YWlsc19mcm9tX2RpY3QgPSBNYXJrZXRFeGVjdXRpb25SZXNwb25zZURldGFpbHMuZnJvbV9kaWN0KG1hcmtldF9leGVjdXRpb25fcmVzcG9uc2VfZGV0YWlsc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/MarketRequoteRequestDetails.md b/docs/MarketRequoteRequestDetails.md index 9476fd4f..3c7cff5f 100644 --- a/docs/MarketRequoteRequestDetails.md +++ b/docs/MarketRequoteRequestDetails.md @@ -1,29 +1 @@ -# MarketRequoteRequestDetails - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**MarketRequoteTypeEnum**](MarketRequoteTypeEnum.md) | | - -## Example - -```python -from fireblocks.models.market_requote_request_details import MarketRequoteRequestDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of MarketRequoteRequestDetails from a JSON string -market_requote_request_details_instance = MarketRequoteRequestDetails.from_json(json) -# print the JSON string representation of the object -print(MarketRequoteRequestDetails.to_json()) - -# convert the object into a dict -market_requote_request_details_dict = market_requote_request_details_instance.to_dict() -# create an instance of MarketRequoteRequestDetails from a dict -market_requote_request_details_from_dict = MarketRequoteRequestDetails.from_dict(market_requote_request_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBNYXJrZXRSZXF1b3RlUmVxdWVzdERldGFpbHMKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgWyoqTWFya2V0UmVxdW90ZVR5cGVFbnVtKipdKE1hcmtldFJlcXVvdGVUeXBlRW51bS5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hcmtldF9yZXF1b3RlX3JlcXVlc3RfZGV0YWlscyBpbXBvcnQgTWFya2V0UmVxdW90ZVJlcXVlc3REZXRhaWxzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNYXJrZXRSZXF1b3RlUmVxdWVzdERldGFpbHMgZnJvbSBhIEpTT04gc3RyaW5nCm1hcmtldF9yZXF1b3RlX3JlcXVlc3RfZGV0YWlsc19pbnN0YW5jZSA9IE1hcmtldFJlcXVvdGVSZXF1ZXN0RGV0YWlscy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChNYXJrZXRSZXF1b3RlUmVxdWVzdERldGFpbHMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbWFya2V0X3JlcXVvdGVfcmVxdWVzdF9kZXRhaWxzX2RpY3QgPSBtYXJrZXRfcmVxdW90ZV9yZXF1ZXN0X2RldGFpbHNfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE1hcmtldFJlcXVvdGVSZXF1ZXN0RGV0YWlscyBmcm9tIGEgZGljdAptYXJrZXRfcmVxdW90ZV9yZXF1ZXN0X2RldGFpbHNfZnJvbV9kaWN0ID0gTWFya2V0UmVxdW90ZVJlcXVlc3REZXRhaWxzLmZyb21fZGljdChtYXJrZXRfcmVxdW90ZV9yZXF1ZXN0X2RldGFpbHNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/MarketRequoteTypeEnum.md b/docs/MarketRequoteTypeEnum.md index 0cfac52d..b48f7d9d 100644 --- a/docs/MarketRequoteTypeEnum.md +++ b/docs/MarketRequoteTypeEnum.md @@ -1,11 +1 @@ -# MarketRequoteTypeEnum - -Indicates that the order should be re-quoted if the original quote is expired. This will lead to a market order. - -## Enum - -* `MARKET` (value: `'MARKET'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBNYXJrZXRSZXF1b3RlVHlwZUVudW0KCkluZGljYXRlcyB0aGF0IHRoZSBvcmRlciBzaG91bGQgYmUgcmUtcXVvdGVkIGlmIHRoZSBvcmlnaW5hbCBxdW90ZSBpcyBleHBpcmVkLiBUaGlzIHdpbGwgbGVhZCB0byBhIG1hcmtldCBvcmRlci4KCiMjIEVudW0KCiogYE1BUktFVGAgKHZhbHVlOiBgJ01BUktFVCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/MarketTypeDetails.md b/docs/MarketTypeDetails.md index 9699a1dd..ce9f1bd9 100644 --- a/docs/MarketTypeDetails.md +++ b/docs/MarketTypeDetails.md @@ -1,29 +1 @@ -# MarketTypeDetails - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**MarketTypeEnum**](MarketTypeEnum.md) | | - -## Example - -```python -from fireblocks.models.market_type_details import MarketTypeDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of MarketTypeDetails from a JSON string -market_type_details_instance = MarketTypeDetails.from_json(json) -# print the JSON string representation of the object -print(MarketTypeDetails.to_json()) - -# convert the object into a dict -market_type_details_dict = market_type_details_instance.to_dict() -# create an instance of MarketTypeDetails from a dict -market_type_details_from_dict = MarketTypeDetails.from_dict(market_type_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBNYXJrZXRUeXBlRGV0YWlscwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eXBlKiogfCBbKipNYXJrZXRUeXBlRW51bSoqXShNYXJrZXRUeXBlRW51bS5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hcmtldF90eXBlX2RldGFpbHMgaW1wb3J0IE1hcmtldFR5cGVEZXRhaWxzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNYXJrZXRUeXBlRGV0YWlscyBmcm9tIGEgSlNPTiBzdHJpbmcKbWFya2V0X3R5cGVfZGV0YWlsc19pbnN0YW5jZSA9IE1hcmtldFR5cGVEZXRhaWxzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KE1hcmtldFR5cGVEZXRhaWxzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cm1hcmtldF90eXBlX2RldGFpbHNfZGljdCA9IG1hcmtldF90eXBlX2RldGFpbHNfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE1hcmtldFR5cGVEZXRhaWxzIGZyb20gYSBkaWN0Cm1hcmtldF90eXBlX2RldGFpbHNfZnJvbV9kaWN0ID0gTWFya2V0VHlwZURldGFpbHMuZnJvbV9kaWN0KG1hcmtldF90eXBlX2RldGFpbHNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/MarketTypeEnum.md b/docs/MarketTypeEnum.md index 7b80058e..c87d6049 100644 --- a/docs/MarketTypeEnum.md +++ b/docs/MarketTypeEnum.md @@ -1,11 +1 @@ -# MarketTypeEnum - -Order type for market orders - -## Enum - -* `MARKET` (value: `'MARKET'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBNYXJrZXRUeXBlRW51bQoKT3JkZXIgdHlwZSBmb3IgbWFya2V0IG9yZGVycwoKIyMgRW51bQoKKiBgTUFSS0VUYCAodmFsdWU6IGAnTUFSS0VUJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/MediaEntityResponse.md b/docs/MediaEntityResponse.md index 300015cb..39375303 100644 --- a/docs/MediaEntityResponse.md +++ b/docs/MediaEntityResponse.md @@ -1,30 +1 @@ -# MediaEntityResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**url** | **str** | Cached accessible URL | -**content_type** | **str** | Media type | - -## Example - -```python -from fireblocks.models.media_entity_response import MediaEntityResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of MediaEntityResponse from a JSON string -media_entity_response_instance = MediaEntityResponse.from_json(json) -# print the JSON string representation of the object -print(MediaEntityResponse.to_json()) - -# convert the object into a dict -media_entity_response_dict = media_entity_response_instance.to_dict() -# create an instance of MediaEntityResponse from a dict -media_entity_response_from_dict = MediaEntityResponse.from_dict(media_entity_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBNZWRpYUVudGl0eVJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnVybCoqIHwgKipzdHIqKiB8IENhY2hlZCBhY2Nlc3NpYmxlIFVSTCB8IAoqKmNvbnRlbnRfdHlwZSoqIHwgKipzdHIqKiB8IE1lZGlhIHR5cGUgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1lZGlhX2VudGl0eV9yZXNwb25zZSBpbXBvcnQgTWVkaWFFbnRpdHlSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTWVkaWFFbnRpdHlSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKbWVkaWFfZW50aXR5X3Jlc3BvbnNlX2luc3RhbmNlID0gTWVkaWFFbnRpdHlSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChNZWRpYUVudGl0eVJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cm1lZGlhX2VudGl0eV9yZXNwb25zZV9kaWN0ID0gbWVkaWFfZW50aXR5X3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNZWRpYUVudGl0eVJlc3BvbnNlIGZyb20gYSBkaWN0Cm1lZGlhX2VudGl0eV9yZXNwb25zZV9mcm9tX2RpY3QgPSBNZWRpYUVudGl0eVJlc3BvbnNlLmZyb21fZGljdChtZWRpYV9lbnRpdHlfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/MergeStakeAccountsRequest.md b/docs/MergeStakeAccountsRequest.md index fd491c07..e5f35285 100644 --- a/docs/MergeStakeAccountsRequest.md +++ b/docs/MergeStakeAccountsRequest.md @@ -1,33 +1 @@ -# MergeStakeAccountsRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**source_id** | **str** | Id of the source position to merge from | -**destination_id** | **str** | Id of the destination position to merge into | -**fee** | **str** | Represents the fee for a transaction, which can be specified as a percentage value. Only one of fee/feeLevel is required. | [optional] -**fee_level** | [**FeeLevel**](FeeLevel.md) | | [optional] -**tx_note** | **str** | The note to associate with the merge transaction. | [optional] - -## Example - -```python -from fireblocks.models.merge_stake_accounts_request import MergeStakeAccountsRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of MergeStakeAccountsRequest from a JSON string -merge_stake_accounts_request_instance = MergeStakeAccountsRequest.from_json(json) -# print the JSON string representation of the object -print(MergeStakeAccountsRequest.to_json()) - -# convert the object into a dict -merge_stake_accounts_request_dict = merge_stake_accounts_request_instance.to_dict() -# create an instance of MergeStakeAccountsRequest from a dict -merge_stake_accounts_request_from_dict = MergeStakeAccountsRequest.from_dict(merge_stake_accounts_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBNZXJnZVN0YWtlQWNjb3VudHNSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnNvdXJjZV9pZCoqIHwgKipzdHIqKiB8IElkIG9mIHRoZSBzb3VyY2UgcG9zaXRpb24gdG8gbWVyZ2UgZnJvbSB8IAoqKmRlc3RpbmF0aW9uX2lkKiogfCAqKnN0cioqIHwgSWQgb2YgdGhlIGRlc3RpbmF0aW9uIHBvc2l0aW9uIHRvIG1lcmdlIGludG8gfCAKKipmZWUqKiB8ICoqc3RyKiogfCBSZXByZXNlbnRzIHRoZSBmZWUgZm9yIGEgdHJhbnNhY3Rpb24sIHdoaWNoIGNhbiBiZSBzcGVjaWZpZWQgYXMgYSBwZXJjZW50YWdlIHZhbHVlLiBPbmx5IG9uZSBvZiBmZWUvZmVlTGV2ZWwgaXMgcmVxdWlyZWQuIHwgW29wdGlvbmFsXSAKKipmZWVfbGV2ZWwqKiB8IFsqKkZlZUxldmVsKipdKEZlZUxldmVsLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqdHhfbm90ZSoqIHwgKipzdHIqKiB8IFRoZSBub3RlIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBtZXJnZSB0cmFuc2FjdGlvbi4gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubWVyZ2Vfc3Rha2VfYWNjb3VudHNfcmVxdWVzdCBpbXBvcnQgTWVyZ2VTdGFrZUFjY291bnRzUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTWVyZ2VTdGFrZUFjY291bnRzUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKbWVyZ2Vfc3Rha2VfYWNjb3VudHNfcmVxdWVzdF9pbnN0YW5jZSA9IE1lcmdlU3Rha2VBY2NvdW50c1JlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoTWVyZ2VTdGFrZUFjY291bnRzUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAptZXJnZV9zdGFrZV9hY2NvdW50c19yZXF1ZXN0X2RpY3QgPSBtZXJnZV9zdGFrZV9hY2NvdW50c19yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNZXJnZVN0YWtlQWNjb3VudHNSZXF1ZXN0IGZyb20gYSBkaWN0Cm1lcmdlX3N0YWtlX2FjY291bnRzX3JlcXVlc3RfZnJvbV9kaWN0ID0gTWVyZ2VTdGFrZUFjY291bnRzUmVxdWVzdC5mcm9tX2RpY3QobWVyZ2Vfc3Rha2VfYWNjb3VudHNfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/MergeStakeAccountsResponse.md b/docs/MergeStakeAccountsResponse.md index 2561dee6..456244a4 100644 --- a/docs/MergeStakeAccountsResponse.md +++ b/docs/MergeStakeAccountsResponse.md @@ -1,29 +1 @@ -# MergeStakeAccountsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The unique identifier of the merge position (the id of the destination position) | - -## Example - -```python -from fireblocks.models.merge_stake_accounts_response import MergeStakeAccountsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of MergeStakeAccountsResponse from a JSON string -merge_stake_accounts_response_instance = MergeStakeAccountsResponse.from_json(json) -# print the JSON string representation of the object -print(MergeStakeAccountsResponse.to_json()) - -# convert the object into a dict -merge_stake_accounts_response_dict = merge_stake_accounts_response_instance.to_dict() -# create an instance of MergeStakeAccountsResponse from a dict -merge_stake_accounts_response_from_dict = MergeStakeAccountsResponse.from_dict(merge_stake_accounts_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBNZXJnZVN0YWtlQWNjb3VudHNSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgbWVyZ2UgcG9zaXRpb24gKHRoZSBpZCBvZiB0aGUgZGVzdGluYXRpb24gcG9zaXRpb24pIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tZXJnZV9zdGFrZV9hY2NvdW50c19yZXNwb25zZSBpbXBvcnQgTWVyZ2VTdGFrZUFjY291bnRzUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE1lcmdlU3Rha2VBY2NvdW50c1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwptZXJnZV9zdGFrZV9hY2NvdW50c19yZXNwb25zZV9pbnN0YW5jZSA9IE1lcmdlU3Rha2VBY2NvdW50c1Jlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KE1lcmdlU3Rha2VBY2NvdW50c1Jlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cm1lcmdlX3N0YWtlX2FjY291bnRzX3Jlc3BvbnNlX2RpY3QgPSBtZXJnZV9zdGFrZV9hY2NvdW50c19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTWVyZ2VTdGFrZUFjY291bnRzUmVzcG9uc2UgZnJvbSBhIGRpY3QKbWVyZ2Vfc3Rha2VfYWNjb3VudHNfcmVzcG9uc2VfZnJvbV9kaWN0ID0gTWVyZ2VTdGFrZUFjY291bnRzUmVzcG9uc2UuZnJvbV9kaWN0KG1lcmdlX3N0YWtlX2FjY291bnRzX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/MobileMoneyAddress.md b/docs/MobileMoneyAddress.md index fdb34182..0e1c96b9 100644 --- a/docs/MobileMoneyAddress.md +++ b/docs/MobileMoneyAddress.md @@ -1,35 +1 @@ -# MobileMoneyAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | | -**mobile_phone_number** | **str** | Mobile phone number in E.164 format | -**provider** | **str** | Mobile money provider | -**beneficiary_document_id** | **str** | Beneficiary document identification (may be required) | [optional] -**beneficiary_relationship** | **str** | Relationship to beneficiary for AML purposes | [optional] -**success_payment_instruction_redirect_url** | **str** | The URL to redirect to after the payment instruction is successful | [optional] -**payment_redirect** | [**PaymentRedirect**](PaymentRedirect.md) | | [optional] - -## Example - -```python -from fireblocks.models.mobile_money_address import MobileMoneyAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of MobileMoneyAddress from a JSON string -mobile_money_address_instance = MobileMoneyAddress.from_json(json) -# print the JSON string representation of the object -print(MobileMoneyAddress.to_json()) - -# convert the object into a dict -mobile_money_address_dict = mobile_money_address_instance.to_dict() -# create an instance of MobileMoneyAddress from a dict -mobile_money_address_from_dict = MobileMoneyAddress.from_dict(mobile_money_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBNb2JpbGVNb25leUFkZHJlc3MKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYWNjb3VudF9ob2xkZXIqKiB8IFsqKkFjY291bnRIb2xkZXJEZXRhaWxzKipdKEFjY291bnRIb2xkZXJEZXRhaWxzLm1kKSB8ICB8IAoqKm1vYmlsZV9waG9uZV9udW1iZXIqKiB8ICoqc3RyKiogfCBNb2JpbGUgcGhvbmUgbnVtYmVyIGluIEUuMTY0IGZvcm1hdCB8IAoqKnByb3ZpZGVyKiogfCAqKnN0cioqIHwgTW9iaWxlIG1vbmV5IHByb3ZpZGVyIHwgCioqYmVuZWZpY2lhcnlfZG9jdW1lbnRfaWQqKiB8ICoqc3RyKiogfCBCZW5lZmljaWFyeSBkb2N1bWVudCBpZGVudGlmaWNhdGlvbiAobWF5IGJlIHJlcXVpcmVkKSB8IFtvcHRpb25hbF0gCioqYmVuZWZpY2lhcnlfcmVsYXRpb25zaGlwKiogfCAqKnN0cioqIHwgUmVsYXRpb25zaGlwIHRvIGJlbmVmaWNpYXJ5IGZvciBBTUwgcHVycG9zZXMgfCBbb3B0aW9uYWxdIAoqKnN1Y2Nlc3NfcGF5bWVudF9pbnN0cnVjdGlvbl9yZWRpcmVjdF91cmwqKiB8ICoqc3RyKiogfCBUaGUgVVJMIHRvIHJlZGlyZWN0IHRvIGFmdGVyIHRoZSBwYXltZW50IGluc3RydWN0aW9uIGlzIHN1Y2Nlc3NmdWwgfCBbb3B0aW9uYWxdIAoqKnBheW1lbnRfcmVkaXJlY3QqKiB8IFsqKlBheW1lbnRSZWRpcmVjdCoqXShQYXltZW50UmVkaXJlY3QubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1vYmlsZV9tb25leV9hZGRyZXNzIGltcG9ydCBNb2JpbGVNb25leUFkZHJlc3MKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE1vYmlsZU1vbmV5QWRkcmVzcyBmcm9tIGEgSlNPTiBzdHJpbmcKbW9iaWxlX21vbmV5X2FkZHJlc3NfaW5zdGFuY2UgPSBNb2JpbGVNb25leUFkZHJlc3MuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoTW9iaWxlTW9uZXlBZGRyZXNzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cm1vYmlsZV9tb25leV9hZGRyZXNzX2RpY3QgPSBtb2JpbGVfbW9uZXlfYWRkcmVzc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTW9iaWxlTW9uZXlBZGRyZXNzIGZyb20gYSBkaWN0Cm1vYmlsZV9tb25leV9hZGRyZXNzX2Zyb21fZGljdCA9IE1vYmlsZU1vbmV5QWRkcmVzcy5mcm9tX2RpY3QobW9iaWxlX21vbmV5X2FkZHJlc3NfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/MobileMoneyDestination.md b/docs/MobileMoneyDestination.md index c023c51f..3fc86155 100644 --- a/docs/MobileMoneyDestination.md +++ b/docs/MobileMoneyDestination.md @@ -1,30 +1 @@ -# MobileMoneyDestination - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | -**address** | [**MobileMoneyAddress**](MobileMoneyAddress.md) | | - -## Example - -```python -from fireblocks.models.mobile_money_destination import MobileMoneyDestination - -# TODO update the JSON string below -json = "{}" -# create an instance of MobileMoneyDestination from a JSON string -mobile_money_destination_instance = MobileMoneyDestination.from_json(json) -# print the JSON string representation of the object -print(MobileMoneyDestination.to_json()) - -# convert the object into a dict -mobile_money_destination_dict = mobile_money_destination_instance.to_dict() -# create an instance of MobileMoneyDestination from a dict -mobile_money_destination_from_dict = MobileMoneyDestination.from_dict(mobile_money_destination_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBNb2JpbGVNb25leURlc3RpbmF0aW9uCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8ICoqc3RyKiogfCAgfCAKKiphZGRyZXNzKiogfCBbKipNb2JpbGVNb25leUFkZHJlc3MqKl0oTW9iaWxlTW9uZXlBZGRyZXNzLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubW9iaWxlX21vbmV5X2Rlc3RpbmF0aW9uIGltcG9ydCBNb2JpbGVNb25leURlc3RpbmF0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNb2JpbGVNb25leURlc3RpbmF0aW9uIGZyb20gYSBKU09OIHN0cmluZwptb2JpbGVfbW9uZXlfZGVzdGluYXRpb25faW5zdGFuY2UgPSBNb2JpbGVNb25leURlc3RpbmF0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KE1vYmlsZU1vbmV5RGVzdGluYXRpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbW9iaWxlX21vbmV5X2Rlc3RpbmF0aW9uX2RpY3QgPSBtb2JpbGVfbW9uZXlfZGVzdGluYXRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE1vYmlsZU1vbmV5RGVzdGluYXRpb24gZnJvbSBhIGRpY3QKbW9iaWxlX21vbmV5X2Rlc3RpbmF0aW9uX2Zyb21fZGljdCA9IE1vYmlsZU1vbmV5RGVzdGluYXRpb24uZnJvbV9kaWN0KG1vYmlsZV9tb25leV9kZXN0aW5hdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ModifySigningKeyAgentIdDto.md b/docs/ModifySigningKeyAgentIdDto.md index 973e59b6..c1ecf7d3 100644 --- a/docs/ModifySigningKeyAgentIdDto.md +++ b/docs/ModifySigningKeyAgentIdDto.md @@ -1,29 +1 @@ -# ModifySigningKeyAgentIdDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**agent_user_id** | **str** | Id of user that represent agent servers which signs with the key | - -## Example - -```python -from fireblocks.models.modify_signing_key_agent_id_dto import ModifySigningKeyAgentIdDto - -# TODO update the JSON string below -json = "{}" -# create an instance of ModifySigningKeyAgentIdDto from a JSON string -modify_signing_key_agent_id_dto_instance = ModifySigningKeyAgentIdDto.from_json(json) -# print the JSON string representation of the object -print(ModifySigningKeyAgentIdDto.to_json()) - -# convert the object into a dict -modify_signing_key_agent_id_dto_dict = modify_signing_key_agent_id_dto_instance.to_dict() -# create an instance of ModifySigningKeyAgentIdDto from a dict -modify_signing_key_agent_id_dto_from_dict = ModifySigningKeyAgentIdDto.from_dict(modify_signing_key_agent_id_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBNb2RpZnlTaWduaW5nS2V5QWdlbnRJZER0bwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphZ2VudF91c2VyX2lkKiogfCAqKnN0cioqIHwgSWQgb2YgdXNlciB0aGF0IHJlcHJlc2VudCBhZ2VudCBzZXJ2ZXJzIHdoaWNoIHNpZ25zIHdpdGggdGhlIGtleSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubW9kaWZ5X3NpZ25pbmdfa2V5X2FnZW50X2lkX2R0byBpbXBvcnQgTW9kaWZ5U2lnbmluZ0tleUFnZW50SWREdG8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE1vZGlmeVNpZ25pbmdLZXlBZ2VudElkRHRvIGZyb20gYSBKU09OIHN0cmluZwptb2RpZnlfc2lnbmluZ19rZXlfYWdlbnRfaWRfZHRvX2luc3RhbmNlID0gTW9kaWZ5U2lnbmluZ0tleUFnZW50SWREdG8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoTW9kaWZ5U2lnbmluZ0tleUFnZW50SWREdG8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbW9kaWZ5X3NpZ25pbmdfa2V5X2FnZW50X2lkX2R0b19kaWN0ID0gbW9kaWZ5X3NpZ25pbmdfa2V5X2FnZW50X2lkX2R0b19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTW9kaWZ5U2lnbmluZ0tleUFnZW50SWREdG8gZnJvbSBhIGRpY3QKbW9kaWZ5X3NpZ25pbmdfa2V5X2FnZW50X2lkX2R0b19mcm9tX2RpY3QgPSBNb2RpZnlTaWduaW5nS2V5QWdlbnRJZER0by5mcm9tX2RpY3QobW9kaWZ5X3NpZ25pbmdfa2V5X2FnZW50X2lkX2R0b19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ModifySigningKeyDto.md b/docs/ModifySigningKeyDto.md index a8773afb..c53d011b 100644 --- a/docs/ModifySigningKeyDto.md +++ b/docs/ModifySigningKeyDto.md @@ -1,29 +1 @@ -# ModifySigningKeyDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vault_account_id** | **float** | | - -## Example - -```python -from fireblocks.models.modify_signing_key_dto import ModifySigningKeyDto - -# TODO update the JSON string below -json = "{}" -# create an instance of ModifySigningKeyDto from a JSON string -modify_signing_key_dto_instance = ModifySigningKeyDto.from_json(json) -# print the JSON string representation of the object -print(ModifySigningKeyDto.to_json()) - -# convert the object into a dict -modify_signing_key_dto_dict = modify_signing_key_dto_instance.to_dict() -# create an instance of ModifySigningKeyDto from a dict -modify_signing_key_dto_from_dict = ModifySigningKeyDto.from_dict(modify_signing_key_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBNb2RpZnlTaWduaW5nS2V5RHRvCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnZhdWx0X2FjY291bnRfaWQqKiB8ICoqZmxvYXQqKiB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubW9kaWZ5X3NpZ25pbmdfa2V5X2R0byBpbXBvcnQgTW9kaWZ5U2lnbmluZ0tleUR0bwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTW9kaWZ5U2lnbmluZ0tleUR0byBmcm9tIGEgSlNPTiBzdHJpbmcKbW9kaWZ5X3NpZ25pbmdfa2V5X2R0b19pbnN0YW5jZSA9IE1vZGlmeVNpZ25pbmdLZXlEdG8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoTW9kaWZ5U2lnbmluZ0tleUR0by50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAptb2RpZnlfc2lnbmluZ19rZXlfZHRvX2RpY3QgPSBtb2RpZnlfc2lnbmluZ19rZXlfZHRvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNb2RpZnlTaWduaW5nS2V5RHRvIGZyb20gYSBkaWN0Cm1vZGlmeV9zaWduaW5nX2tleV9kdG9fZnJvbV9kaWN0ID0gTW9kaWZ5U2lnbmluZ0tleUR0by5mcm9tX2RpY3QobW9kaWZ5X3NpZ25pbmdfa2V5X2R0b19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ModifyValidationKeyDto.md b/docs/ModifyValidationKeyDto.md index 8e926cb1..be31afc4 100644 --- a/docs/ModifyValidationKeyDto.md +++ b/docs/ModifyValidationKeyDto.md @@ -1,29 +1 @@ -# ModifyValidationKeyDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**enabled** | **bool** | Disable validation key | - -## Example - -```python -from fireblocks.models.modify_validation_key_dto import ModifyValidationKeyDto - -# TODO update the JSON string below -json = "{}" -# create an instance of ModifyValidationKeyDto from a JSON string -modify_validation_key_dto_instance = ModifyValidationKeyDto.from_json(json) -# print the JSON string representation of the object -print(ModifyValidationKeyDto.to_json()) - -# convert the object into a dict -modify_validation_key_dto_dict = modify_validation_key_dto_instance.to_dict() -# create an instance of ModifyValidationKeyDto from a dict -modify_validation_key_dto_from_dict = ModifyValidationKeyDto.from_dict(modify_validation_key_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBNb2RpZnlWYWxpZGF0aW9uS2V5RHRvCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmVuYWJsZWQqKiB8ICoqYm9vbCoqIHwgRGlzYWJsZSB2YWxpZGF0aW9uIGtleSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubW9kaWZ5X3ZhbGlkYXRpb25fa2V5X2R0byBpbXBvcnQgTW9kaWZ5VmFsaWRhdGlvbktleUR0bwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTW9kaWZ5VmFsaWRhdGlvbktleUR0byBmcm9tIGEgSlNPTiBzdHJpbmcKbW9kaWZ5X3ZhbGlkYXRpb25fa2V5X2R0b19pbnN0YW5jZSA9IE1vZGlmeVZhbGlkYXRpb25LZXlEdG8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoTW9kaWZ5VmFsaWRhdGlvbktleUR0by50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAptb2RpZnlfdmFsaWRhdGlvbl9rZXlfZHRvX2RpY3QgPSBtb2RpZnlfdmFsaWRhdGlvbl9rZXlfZHRvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNb2RpZnlWYWxpZGF0aW9uS2V5RHRvIGZyb20gYSBkaWN0Cm1vZGlmeV92YWxpZGF0aW9uX2tleV9kdG9fZnJvbV9kaWN0ID0gTW9kaWZ5VmFsaWRhdGlvbktleUR0by5mcm9tX2RpY3QobW9kaWZ5X3ZhbGlkYXRpb25fa2V5X2R0b19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/MomoPaymentInfo.md b/docs/MomoPaymentInfo.md index eba4ceb4..3c582971 100644 --- a/docs/MomoPaymentInfo.md +++ b/docs/MomoPaymentInfo.md @@ -1,38 +1 @@ -# MomoPaymentInfo - -Mobile Money (MOMO) payment information for African mobile payment services - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**rail** | **str** | The payment rail type for mobile money transfers | -**addressing_system** | **str** | The addressing system used for mobile money transfers | -**account_holder_given_name** | **str** | The given name (first name) of the account holder | -**account_holder_surname** | **str** | The surname (last name) of the account holder | -**country** | **str** | The country for the transfer (ISO 3166-1 alpha-2 code) | -**mobile_phone_number** | **str** | The mobile phone number associated with the mobile money account | -**provider** | **str** | The mobile money service provider | -**beneficiary_document_id** | **str** | The document ID of the beneficiary | [optional] -**beneficiary_relationship** | **str** | The relationship between sender and beneficiary | [optional] - -## Example - -```python -from fireblocks.models.momo_payment_info import MomoPaymentInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of MomoPaymentInfo from a JSON string -momo_payment_info_instance = MomoPaymentInfo.from_json(json) -# print the JSON string representation of the object -print(MomoPaymentInfo.to_json()) - -# convert the object into a dict -momo_payment_info_dict = momo_payment_info_instance.to_dict() -# create an instance of MomoPaymentInfo from a dict -momo_payment_info_from_dict = MomoPaymentInfo.from_dict(momo_payment_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBNb21vUGF5bWVudEluZm8KCk1vYmlsZSBNb25leSAoTU9NTykgcGF5bWVudCBpbmZvcm1hdGlvbiBmb3IgQWZyaWNhbiBtb2JpbGUgcGF5bWVudCBzZXJ2aWNlcwoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnJhaWwqKiB8ICoqc3RyKiogfCBUaGUgcGF5bWVudCByYWlsIHR5cGUgZm9yIG1vYmlsZSBtb25leSB0cmFuc2ZlcnMgfCAKKiphZGRyZXNzaW5nX3N5c3RlbSoqIHwgKipzdHIqKiB8IFRoZSBhZGRyZXNzaW5nIHN5c3RlbSB1c2VkIGZvciBtb2JpbGUgbW9uZXkgdHJhbnNmZXJzIHwgCioqYWNjb3VudF9ob2xkZXJfZ2l2ZW5fbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBnaXZlbiBuYW1lIChmaXJzdCBuYW1lKSBvZiB0aGUgYWNjb3VudCBob2xkZXIgfCAKKiphY2NvdW50X2hvbGRlcl9zdXJuYW1lKiogfCAqKnN0cioqIHwgVGhlIHN1cm5hbWUgKGxhc3QgbmFtZSkgb2YgdGhlIGFjY291bnQgaG9sZGVyIHwgCioqY291bnRyeSoqIHwgKipzdHIqKiB8IFRoZSBjb3VudHJ5IGZvciB0aGUgdHJhbnNmZXIgKElTTyAzMTY2LTEgYWxwaGEtMiBjb2RlKSB8IAoqKm1vYmlsZV9waG9uZV9udW1iZXIqKiB8ICoqc3RyKiogfCBUaGUgbW9iaWxlIHBob25lIG51bWJlciBhc3NvY2lhdGVkIHdpdGggdGhlIG1vYmlsZSBtb25leSBhY2NvdW50IHwgCioqcHJvdmlkZXIqKiB8ICoqc3RyKiogfCBUaGUgbW9iaWxlIG1vbmV5IHNlcnZpY2UgcHJvdmlkZXIgfCAKKipiZW5lZmljaWFyeV9kb2N1bWVudF9pZCoqIHwgKipzdHIqKiB8IFRoZSBkb2N1bWVudCBJRCBvZiB0aGUgYmVuZWZpY2lhcnkgfCBbb3B0aW9uYWxdIAoqKmJlbmVmaWNpYXJ5X3JlbGF0aW9uc2hpcCoqIHwgKipzdHIqKiB8IFRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBzZW5kZXIgYW5kIGJlbmVmaWNpYXJ5IHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1vbW9fcGF5bWVudF9pbmZvIGltcG9ydCBNb21vUGF5bWVudEluZm8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE1vbW9QYXltZW50SW5mbyBmcm9tIGEgSlNPTiBzdHJpbmcKbW9tb19wYXltZW50X2luZm9faW5zdGFuY2UgPSBNb21vUGF5bWVudEluZm8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoTW9tb1BheW1lbnRJbmZvLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cm1vbW9fcGF5bWVudF9pbmZvX2RpY3QgPSBtb21vX3BheW1lbnRfaW5mb19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTW9tb1BheW1lbnRJbmZvIGZyb20gYSBkaWN0Cm1vbW9fcGF5bWVudF9pbmZvX2Zyb21fZGljdCA9IE1vbW9QYXltZW50SW5mby5mcm9tX2RpY3QobW9tb19wYXltZW50X2luZm9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/MpcKey.md b/docs/MpcKey.md index 1ad0f0f6..d0fd25d9 100644 --- a/docs/MpcKey.md +++ b/docs/MpcKey.md @@ -1,33 +1 @@ -# MpcKey - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**key_id** | **str** | | -**user_id** | **str** | The user id that owns the key | -**algorithm** | **float** | The algorithm of the key | -**players** | [**List[Players]**](Players.md) | The players that are associated with the key | -**last_preprocessed_index** | **float** | The last index used on this key | [optional] - -## Example - -```python -from fireblocks.models.mpc_key import MpcKey - -# TODO update the JSON string below -json = "{}" -# create an instance of MpcKey from a JSON string -mpc_key_instance = MpcKey.from_json(json) -# print the JSON string representation of the object -print(MpcKey.to_json()) - -# convert the object into a dict -mpc_key_dict = mpc_key_instance.to_dict() -# create an instance of MpcKey from a dict -mpc_key_from_dict = MpcKey.from_dict(mpc_key_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBNcGNLZXkKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqa2V5X2lkKiogfCAqKnN0cioqIHwgIHwgCioqdXNlcl9pZCoqIHwgKipzdHIqKiB8IFRoZSB1c2VyIGlkIHRoYXQgb3ducyB0aGUga2V5IHwgCioqYWxnb3JpdGhtKiogfCAqKmZsb2F0KiogfCBUaGUgYWxnb3JpdGhtIG9mIHRoZSBrZXkgfCAKKipwbGF5ZXJzKiogfCBbKipMaXN0W1BsYXllcnNdKipdKFBsYXllcnMubWQpIHwgVGhlIHBsYXllcnMgdGhhdCBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBrZXkgfCAKKipsYXN0X3ByZXByb2Nlc3NlZF9pbmRleCoqIHwgKipmbG9hdCoqIHwgVGhlIGxhc3QgaW5kZXggdXNlZCBvbiB0aGlzIGtleSB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tcGNfa2V5IGltcG9ydCBNcGNLZXkKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE1wY0tleSBmcm9tIGEgSlNPTiBzdHJpbmcKbXBjX2tleV9pbnN0YW5jZSA9IE1wY0tleS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChNcGNLZXkudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbXBjX2tleV9kaWN0ID0gbXBjX2tleV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTXBjS2V5IGZyb20gYSBkaWN0Cm1wY19rZXlfZnJvbV9kaWN0ID0gTXBjS2V5LmZyb21fZGljdChtcGNfa2V5X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/MultichainDeploymentMetadata.md b/docs/MultichainDeploymentMetadata.md index bedfc896..a70ddb13 100644 --- a/docs/MultichainDeploymentMetadata.md +++ b/docs/MultichainDeploymentMetadata.md @@ -1,35 +1 @@ -# MultichainDeploymentMetadata - -The multichain deployment metadata - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The unique identifier of the deployment metadata | [optional] -**address** | **str** | The address of the deployed contract | [optional] -**template_id** | **str** | The unique identifier of the contract template | [optional] -**deployment_salt** | **str** | The salt used for the deployment | [optional] -**init_params** | [**List[ParameterWithValue]**](ParameterWithValue.md) | | [optional] -**encoded_init_params** | **str** | The encoded init params | [optional] - -## Example - -```python -from fireblocks.models.multichain_deployment_metadata import MultichainDeploymentMetadata - -# TODO update the JSON string below -json = "{}" -# create an instance of MultichainDeploymentMetadata from a JSON string -multichain_deployment_metadata_instance = MultichainDeploymentMetadata.from_json(json) -# print the JSON string representation of the object -print(MultichainDeploymentMetadata.to_json()) - -# convert the object into a dict -multichain_deployment_metadata_dict = multichain_deployment_metadata_instance.to_dict() -# create an instance of MultichainDeploymentMetadata from a dict -multichain_deployment_metadata_from_dict = MultichainDeploymentMetadata.from_dict(multichain_deployment_metadata_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBNdWx0aWNoYWluRGVwbG95bWVudE1ldGFkYXRhCgpUaGUgbXVsdGljaGFpbiBkZXBsb3ltZW50IG1ldGFkYXRhCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGRlcGxveW1lbnQgbWV0YWRhdGEgfCBbb3B0aW9uYWxdIAoqKmFkZHJlc3MqKiB8ICoqc3RyKiogfCBUaGUgYWRkcmVzcyBvZiB0aGUgZGVwbG95ZWQgY29udHJhY3QgfCBbb3B0aW9uYWxdIAoqKnRlbXBsYXRlX2lkKiogfCAqKnN0cioqIHwgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb250cmFjdCB0ZW1wbGF0ZSB8IFtvcHRpb25hbF0gCioqZGVwbG95bWVudF9zYWx0KiogfCAqKnN0cioqIHwgVGhlIHNhbHQgdXNlZCBmb3IgdGhlIGRlcGxveW1lbnQgfCBbb3B0aW9uYWxdIAoqKmluaXRfcGFyYW1zKiogfCBbKipMaXN0W1BhcmFtZXRlcldpdGhWYWx1ZV0qKl0oUGFyYW1ldGVyV2l0aFZhbHVlLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZW5jb2RlZF9pbml0X3BhcmFtcyoqIHwgKipzdHIqKiB8IFRoZSBlbmNvZGVkIGluaXQgcGFyYW1zIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm11bHRpY2hhaW5fZGVwbG95bWVudF9tZXRhZGF0YSBpbXBvcnQgTXVsdGljaGFpbkRlcGxveW1lbnRNZXRhZGF0YQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTXVsdGljaGFpbkRlcGxveW1lbnRNZXRhZGF0YSBmcm9tIGEgSlNPTiBzdHJpbmcKbXVsdGljaGFpbl9kZXBsb3ltZW50X21ldGFkYXRhX2luc3RhbmNlID0gTXVsdGljaGFpbkRlcGxveW1lbnRNZXRhZGF0YS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChNdWx0aWNoYWluRGVwbG95bWVudE1ldGFkYXRhLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cm11bHRpY2hhaW5fZGVwbG95bWVudF9tZXRhZGF0YV9kaWN0ID0gbXVsdGljaGFpbl9kZXBsb3ltZW50X21ldGFkYXRhX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNdWx0aWNoYWluRGVwbG95bWVudE1ldGFkYXRhIGZyb20gYSBkaWN0Cm11bHRpY2hhaW5fZGVwbG95bWVudF9tZXRhZGF0YV9mcm9tX2RpY3QgPSBNdWx0aWNoYWluRGVwbG95bWVudE1ldGFkYXRhLmZyb21fZGljdChtdWx0aWNoYWluX2RlcGxveW1lbnRfbWV0YWRhdGFfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/NFTsApi.md b/docs/NFTsApi.md index ef3f3a9a..ff0f15ae 100644 --- a/docs/NFTsApi.md +++ b/docs/NFTsApi.md @@ -1,831 +1 @@ -# fireblocks.NFTsApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**get_nft**](NFTsApi.md#get_nft) | **GET** /nfts/tokens/{id} | List token data by ID -[**get_nfts**](NFTsApi.md#get_nfts) | **GET** /nfts/tokens | List tokens by IDs -[**get_ownership_tokens**](NFTsApi.md#get_ownership_tokens) | **GET** /nfts/ownership/tokens | List all owned tokens (paginated) -[**list_owned_collections**](NFTsApi.md#list_owned_collections) | **GET** /nfts/ownership/collections | List owned collections (paginated) -[**list_owned_tokens**](NFTsApi.md#list_owned_tokens) | **GET** /nfts/ownership/assets | List all distinct owned tokens (paginated) -[**refresh_nft_metadata**](NFTsApi.md#refresh_nft_metadata) | **PUT** /nfts/tokens/{id} | Refresh token metadata -[**update_ownership_tokens**](NFTsApi.md#update_ownership_tokens) | **PUT** /nfts/ownership/tokens | Refresh vault account tokens -[**update_token_ownership_status**](NFTsApi.md#update_token_ownership_status) | **PUT** /nfts/ownership/tokens/{id}/status | Update token ownership status -[**update_tokens_ownership_spam**](NFTsApi.md#update_tokens_ownership_spam) | **PUT** /nfts/ownership/tokens/spam | Update tokens ownership spam property -[**update_tokens_ownership_status**](NFTsApi.md#update_tokens_ownership_status) | **PUT** /nfts/ownership/tokens/status | Update tokens ownership status - - -# **get_nft** -> TokenResponse get_nft(id) - -List token data by ID - -Returns the requested token data. - - -### Example - - -```python -from fireblocks.models.token_response import TokenResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - id = 'NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd' # str | NFT ID - - try: - # List token data by ID - api_response = fireblocks.nfts.get_nft(id).result() - print("The response of NFTsApi->get_nft:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling NFTsApi->get_nft: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **id** | **str**| NFT ID | - -### Return type - -[**TokenResponse**](TokenResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_nfts** -> GetNFTsResponse get_nfts(ids, page_cursor=page_cursor, page_size=page_size, sort=sort, order=order) - -List tokens by IDs - -Returns the requested tokens data. - - -### Example - - -```python -from fireblocks.models.get_nfts_response import GetNFTsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - ids = 'ids_example' # str | A comma separated list of NFT IDs. Up to 100 are allowed in a single request. - page_cursor = 'page_cursor_example' # str | Page cursor to fetch (optional) - page_size = 3.4 # float | Items per page (max 100) (optional) - sort = ['sort_example'] # List[str] | Sort by param, it can be one param or a list of params separated by comma (optional) - order = ASC # str | Order direction, it can be `ASC` for ascending or `DESC` for descending (optional) (default to ASC) - - try: - # List tokens by IDs - api_response = fireblocks.nfts.get_nfts(ids, page_cursor=page_cursor, page_size=page_size, sort=sort, order=order).result() - print("The response of NFTsApi->get_nfts:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling NFTsApi->get_nfts: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ids** | **str**| A comma separated list of NFT IDs. Up to 100 are allowed in a single request. | - **page_cursor** | **str**| Page cursor to fetch | [optional] - **page_size** | **float**| Items per page (max 100) | [optional] - **sort** | [**List[str]**](str.md)| Sort by param, it can be one param or a list of params separated by comma | [optional] - **order** | **str**| Order direction, it can be `ASC` for ascending or `DESC` for descending | [optional] [default to ASC] - -### Return type - -[**GetNFTsResponse**](GetNFTsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_ownership_tokens** -> GetOwnershipTokensResponse get_ownership_tokens(blockchain_descriptor=blockchain_descriptor, vault_account_ids=vault_account_ids, ncw_id=ncw_id, ncw_account_ids=ncw_account_ids, wallet_type=wallet_type, ids=ids, collection_ids=collection_ids, page_cursor=page_cursor, page_size=page_size, sort=sort, order=order, status=status, search=search, spam=spam) - -List all owned tokens (paginated) - -Returns all tokens and their data in your workspace. - - -### Example - - -```python -from fireblocks.models.get_ownership_tokens_response import GetOwnershipTokensResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - blockchain_descriptor = 'blockchain_descriptor_example' # str | Blockchain descriptor filter (optional) - vault_account_ids = 'vault_account_ids_example' # str | A comma separated list of Vault Account IDs. Up to 100 are allowed in a single request. This field will be ignored when walletType=END_USER_WALLET or ncwId is provided. (optional) - ncw_id = 'ncw_id_example' # str | Tenant's Non-Custodial Wallet ID (optional) - ncw_account_ids = 'ncw_account_ids_example' # str | A comma separated list of Non-Custodial account IDs. Up to 100 are allowed in a single request. This field will be ignored when walletType=VAULT_ACCOUNT or ncwId is not provided. (optional) - wallet_type = VAULT_ACCOUNT # str | Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET` (optional) (default to VAULT_ACCOUNT) - ids = 'ids_example' # str | A comma separated list of NFT IDs. Up to 100 are allowed in a single request. (optional) - collection_ids = 'collection_ids_example' # str | A comma separated list of collection IDs. Up to 100 are allowed in a single request. (optional) - page_cursor = 'page_cursor_example' # str | Page cursor to fetch (optional) - page_size = 3.4 # float | Items per page (max 100) (optional) - sort = ['sort_example'] # List[str] | Sort by param, it can be one param or a list of params separated by comma (optional) - order = ASC # str | Order direction, it can be `ASC` for ascending or `DESC` for descending (optional) (default to ASC) - status = LISTED # str | Token ownership status (optional) (default to LISTED) - search = 'search_example' # str | Search owned tokens and their collections. Possible criteria for search: token name and id within the contract/collection, collection name, blockchain descriptor and name. (optional) - spam = 'spam_example' # str | Token ownership spam status. (optional) - - try: - # List all owned tokens (paginated) - api_response = fireblocks.nfts.get_ownership_tokens(blockchain_descriptor=blockchain_descriptor, vault_account_ids=vault_account_ids, ncw_id=ncw_id, ncw_account_ids=ncw_account_ids, wallet_type=wallet_type, ids=ids, collection_ids=collection_ids, page_cursor=page_cursor, page_size=page_size, sort=sort, order=order, status=status, search=search, spam=spam).result() - print("The response of NFTsApi->get_ownership_tokens:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling NFTsApi->get_ownership_tokens: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **blockchain_descriptor** | **str**| Blockchain descriptor filter | [optional] - **vault_account_ids** | **str**| A comma separated list of Vault Account IDs. Up to 100 are allowed in a single request. This field will be ignored when walletType=END_USER_WALLET or ncwId is provided. | [optional] - **ncw_id** | **str**| Tenant's Non-Custodial Wallet ID | [optional] - **ncw_account_ids** | **str**| A comma separated list of Non-Custodial account IDs. Up to 100 are allowed in a single request. This field will be ignored when walletType=VAULT_ACCOUNT or ncwId is not provided. | [optional] - **wallet_type** | **str**| Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET` | [optional] [default to VAULT_ACCOUNT] - **ids** | **str**| A comma separated list of NFT IDs. Up to 100 are allowed in a single request. | [optional] - **collection_ids** | **str**| A comma separated list of collection IDs. Up to 100 are allowed in a single request. | [optional] - **page_cursor** | **str**| Page cursor to fetch | [optional] - **page_size** | **float**| Items per page (max 100) | [optional] - **sort** | [**List[str]**](str.md)| Sort by param, it can be one param or a list of params separated by comma | [optional] - **order** | **str**| Order direction, it can be `ASC` for ascending or `DESC` for descending | [optional] [default to ASC] - **status** | **str**| Token ownership status | [optional] [default to LISTED] - **search** | **str**| Search owned tokens and their collections. Possible criteria for search: token name and id within the contract/collection, collection name, blockchain descriptor and name. | [optional] - **spam** | **str**| Token ownership spam status. | [optional] - -### Return type - -[**GetOwnershipTokensResponse**](GetOwnershipTokensResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **list_owned_collections** -> ListOwnedCollectionsResponse list_owned_collections(ncw_id=ncw_id, wallet_type=wallet_type, search=search, page_cursor=page_cursor, page_size=page_size, sort=sort, order=order, status=status) - -List owned collections (paginated) - -Returns all collections in your workspace - - -### Example - - -```python -from fireblocks.models.list_owned_collections_response import ListOwnedCollectionsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - ncw_id = 'ncw_id_example' # str | Tenant's Non-Custodial Wallet ID (optional) - wallet_type = VAULT_ACCOUNT # str | Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET` (optional) (default to VAULT_ACCOUNT) - search = 'search_example' # str | Search owned collections. Possible criteria for search: collection name, collection contract address. (optional) - page_cursor = 'page_cursor_example' # str | Page cursor to fetch (optional) - page_size = 3.4 # float | Items per page (max 100) (optional) - sort = ['sort_example'] # List[str] | Sort by param, it can be one param or a list of params separated by comma (optional) - order = ASC # str | Order direction, it can be `ASC` for ascending or `DESC` for descending (optional) (default to ASC) - status = LISTED # str | Token ownership status (optional) (default to LISTED) - - try: - # List owned collections (paginated) - api_response = fireblocks.nfts.list_owned_collections(ncw_id=ncw_id, wallet_type=wallet_type, search=search, page_cursor=page_cursor, page_size=page_size, sort=sort, order=order, status=status).result() - print("The response of NFTsApi->list_owned_collections:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling NFTsApi->list_owned_collections: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ncw_id** | **str**| Tenant's Non-Custodial Wallet ID | [optional] - **wallet_type** | **str**| Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET` | [optional] [default to VAULT_ACCOUNT] - **search** | **str**| Search owned collections. Possible criteria for search: collection name, collection contract address. | [optional] - **page_cursor** | **str**| Page cursor to fetch | [optional] - **page_size** | **float**| Items per page (max 100) | [optional] - **sort** | [**List[str]**](str.md)| Sort by param, it can be one param or a list of params separated by comma | [optional] - **order** | **str**| Order direction, it can be `ASC` for ascending or `DESC` for descending | [optional] [default to ASC] - **status** | **str**| Token ownership status | [optional] [default to LISTED] - -### Return type - -[**ListOwnedCollectionsResponse**](ListOwnedCollectionsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **list_owned_tokens** -> ListOwnedTokensResponse list_owned_tokens(ncw_id=ncw_id, wallet_type=wallet_type, page_cursor=page_cursor, page_size=page_size, sort=sort, order=order, status=status, search=search, spam=spam) - -List all distinct owned tokens (paginated) - -Returns all owned distinct tokens (for your tenant) and their data in your workspace. - - -### Example - - -```python -from fireblocks.models.list_owned_tokens_response import ListOwnedTokensResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - ncw_id = 'ncw_id_example' # str | Tenant's Non-Custodial Wallet ID (optional) - wallet_type = VAULT_ACCOUNT # str | Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET` (optional) (default to VAULT_ACCOUNT) - page_cursor = 'page_cursor_example' # str | Page cursor to fetch (optional) - page_size = 3.4 # float | Items per page (max 100) (optional) - sort = ['sort_example'] # List[str] | Sort by param, it can be one param or a list of params separated by comma (optional) - order = ASC # str | Order direction, it can be `ASC` for ascending or `DESC` for descending (optional) (default to ASC) - status = LISTED # str | Token ownership status (optional) (default to LISTED) - search = 'search_example' # str | Search owned tokens by token name (optional) - spam = 'spam_example' # str | Token ownership spam status. (optional) - - try: - # List all distinct owned tokens (paginated) - api_response = fireblocks.nfts.list_owned_tokens(ncw_id=ncw_id, wallet_type=wallet_type, page_cursor=page_cursor, page_size=page_size, sort=sort, order=order, status=status, search=search, spam=spam).result() - print("The response of NFTsApi->list_owned_tokens:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling NFTsApi->list_owned_tokens: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ncw_id** | **str**| Tenant's Non-Custodial Wallet ID | [optional] - **wallet_type** | **str**| Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET` | [optional] [default to VAULT_ACCOUNT] - **page_cursor** | **str**| Page cursor to fetch | [optional] - **page_size** | **float**| Items per page (max 100) | [optional] - **sort** | [**List[str]**](str.md)| Sort by param, it can be one param or a list of params separated by comma | [optional] - **order** | **str**| Order direction, it can be `ASC` for ascending or `DESC` for descending | [optional] [default to ASC] - **status** | **str**| Token ownership status | [optional] [default to LISTED] - **search** | **str**| Search owned tokens by token name | [optional] - **spam** | **str**| Token ownership spam status. | [optional] - -### Return type - -[**ListOwnedTokensResponse**](ListOwnedTokensResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **refresh_nft_metadata** -> refresh_nft_metadata(id, x_end_user_wallet_id=x_end_user_wallet_id, idempotency_key=idempotency_key) - -Refresh token metadata - -Updates the latest token metadata. - - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - id = 'NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd' # str | NFT ID - x_end_user_wallet_id = 'x_end_user_wallet_id_example' # str | Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. (optional) - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Refresh token metadata - fireblocks.nfts.refresh_nft_metadata(id, x_end_user_wallet_id=x_end_user_wallet_id, idempotency_key=idempotency_key).result() - except Exception as e: - print("Exception when calling NFTsApi->refresh_nft_metadata: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **id** | **str**| NFT ID | - **x_end_user_wallet_id** | **str**| Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. | [optional] - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: Not defined - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**202** | | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_ownership_tokens** -> update_ownership_tokens(blockchain_descriptor, vault_account_id, idempotency_key=idempotency_key) - -Refresh vault account tokens - -Updates all tokens and balances per blockchain and vault account. -Learn more about Fireblocks NFT management in the following [guide](https://developers.fireblocks.com/reference/deploy-an-nft-collection). - -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - blockchain_descriptor = 'blockchain_descriptor_example' # str | Blockchain descriptor filter - vault_account_id = 'vault_account_id_example' # str | Vault account filter - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Refresh vault account tokens - fireblocks.nfts.update_ownership_tokens(blockchain_descriptor, vault_account_id, idempotency_key=idempotency_key).result() - except Exception as e: - print("Exception when calling NFTsApi->update_ownership_tokens: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **blockchain_descriptor** | **str**| Blockchain descriptor filter | - **vault_account_id** | **str**| Vault account filter | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: Not defined - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**202** | | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_token_ownership_status** -> update_token_ownership_status(id, update_token_ownership_status_dto, x_end_user_wallet_id=x_end_user_wallet_id, idempotency_key=idempotency_key) - -Update token ownership status - -Updates token status for a tenant, in all tenant vaults. - - -### Example - - -```python -from fireblocks.models.update_token_ownership_status_dto import UpdateTokenOwnershipStatusDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - id = 'NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd' # str | NFT ID - update_token_ownership_status_dto = fireblocks.UpdateTokenOwnershipStatusDto() # UpdateTokenOwnershipStatusDto | - x_end_user_wallet_id = 'x_end_user_wallet_id_example' # str | Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. (optional) - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Update token ownership status - fireblocks.nfts.update_token_ownership_status(id, update_token_ownership_status_dto, x_end_user_wallet_id=x_end_user_wallet_id, idempotency_key=idempotency_key).result() - except Exception as e: - print("Exception when calling NFTsApi->update_token_ownership_status: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **id** | **str**| NFT ID | - **update_token_ownership_status_dto** | [**UpdateTokenOwnershipStatusDto**](UpdateTokenOwnershipStatusDto.md)| | - **x_end_user_wallet_id** | **str**| Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. | [optional] - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: Not defined - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_tokens_ownership_spam** -> update_tokens_ownership_spam(token_ownership_spam_update_payload, x_end_user_wallet_id=x_end_user_wallet_id, idempotency_key=idempotency_key) - -Update tokens ownership spam property - -Updates tokens spam property for a tenant's token ownerships, in all tenant vaults. - -### Example - - -```python -from fireblocks.models.token_ownership_spam_update_payload import TokenOwnershipSpamUpdatePayload -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - token_ownership_spam_update_payload = [fireblocks.TokenOwnershipSpamUpdatePayload()] # List[TokenOwnershipSpamUpdatePayload] | - x_end_user_wallet_id = 'x_end_user_wallet_id_example' # str | Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. (optional) - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Update tokens ownership spam property - fireblocks.nfts.update_tokens_ownership_spam(token_ownership_spam_update_payload, x_end_user_wallet_id=x_end_user_wallet_id, idempotency_key=idempotency_key).result() - except Exception as e: - print("Exception when calling NFTsApi->update_tokens_ownership_spam: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **token_ownership_spam_update_payload** | [**List[TokenOwnershipSpamUpdatePayload]**](TokenOwnershipSpamUpdatePayload.md)| | - **x_end_user_wallet_id** | **str**| Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. | [optional] - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: Not defined - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | All token spam properties have been updated | * X-Request-ID -
| -**400** | Invalid data sent | * X-Request-ID -
| -**404** | When ownership for token ID is not found | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_tokens_ownership_status** -> update_tokens_ownership_status(token_ownership_status_update_payload, x_end_user_wallet_id=x_end_user_wallet_id, idempotency_key=idempotency_key) - -Update tokens ownership status - -Updates tokens status for a tenant, in all tenant vaults. - -### Example - - -```python -from fireblocks.models.token_ownership_status_update_payload import TokenOwnershipStatusUpdatePayload -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - token_ownership_status_update_payload = [fireblocks.TokenOwnershipStatusUpdatePayload()] # List[TokenOwnershipStatusUpdatePayload] | - x_end_user_wallet_id = 'x_end_user_wallet_id_example' # str | Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. (optional) - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Update tokens ownership status - fireblocks.nfts.update_tokens_ownership_status(token_ownership_status_update_payload, x_end_user_wallet_id=x_end_user_wallet_id, idempotency_key=idempotency_key).result() - except Exception as e: - print("Exception when calling NFTsApi->update_tokens_ownership_status: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **token_ownership_status_update_payload** | [**List[TokenOwnershipStatusUpdatePayload]**](TokenOwnershipStatusUpdatePayload.md)| | - **x_end_user_wallet_id** | **str**| Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. | [optional] - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: Not defined - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | All token statuses have been updated | * X-Request-ID -
| -**400** | Invalid data sent | * X-Request-ID -
| -**404** | When ownership for token ID is not found | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLk5GVHNBcGkKCkFsbCBVUklzIGFyZSByZWxhdGl2ZSB0byAqaHR0cHM6Ly9hcGkuZmlyZWJsb2Nrcy5pby92MSoKCk1ldGhvZCB8IEhUVFAgcmVxdWVzdCB8IERlc2NyaXB0aW9uCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQpbKipnZXRfbmZ0KipdKE5GVHNBcGkubWQjZ2V0X25mdCkgfCAqKkdFVCoqIC9uZnRzL3Rva2Vucy97aWR9IHwgTGlzdCB0b2tlbiBkYXRhIGJ5IElEClsqKmdldF9uZnRzKipdKE5GVHNBcGkubWQjZ2V0X25mdHMpIHwgKipHRVQqKiAvbmZ0cy90b2tlbnMgfCBMaXN0IHRva2VucyBieSBJRHMKWyoqZ2V0X293bmVyc2hpcF90b2tlbnMqKl0oTkZUc0FwaS5tZCNnZXRfb3duZXJzaGlwX3Rva2VucykgfCAqKkdFVCoqIC9uZnRzL293bmVyc2hpcC90b2tlbnMgfCBMaXN0IGFsbCBvd25lZCB0b2tlbnMgKHBhZ2luYXRlZCkKWyoqbGlzdF9vd25lZF9jb2xsZWN0aW9ucyoqXShORlRzQXBpLm1kI2xpc3Rfb3duZWRfY29sbGVjdGlvbnMpIHwgKipHRVQqKiAvbmZ0cy9vd25lcnNoaXAvY29sbGVjdGlvbnMgfCBMaXN0IG93bmVkIGNvbGxlY3Rpb25zIChwYWdpbmF0ZWQpClsqKmxpc3Rfb3duZWRfdG9rZW5zKipdKE5GVHNBcGkubWQjbGlzdF9vd25lZF90b2tlbnMpIHwgKipHRVQqKiAvbmZ0cy9vd25lcnNoaXAvYXNzZXRzIHwgTGlzdCBhbGwgZGlzdGluY3Qgb3duZWQgdG9rZW5zIChwYWdpbmF0ZWQpClsqKnJlZnJlc2hfbmZ0X21ldGFkYXRhKipdKE5GVHNBcGkubWQjcmVmcmVzaF9uZnRfbWV0YWRhdGEpIHwgKipQVVQqKiAvbmZ0cy90b2tlbnMve2lkfSB8IFJlZnJlc2ggdG9rZW4gbWV0YWRhdGEKWyoqdXBkYXRlX293bmVyc2hpcF90b2tlbnMqKl0oTkZUc0FwaS5tZCN1cGRhdGVfb3duZXJzaGlwX3Rva2VucykgfCAqKlBVVCoqIC9uZnRzL293bmVyc2hpcC90b2tlbnMgfCBSZWZyZXNoIHZhdWx0IGFjY291bnQgdG9rZW5zClsqKnVwZGF0ZV90b2tlbl9vd25lcnNoaXBfc3RhdHVzKipdKE5GVHNBcGkubWQjdXBkYXRlX3Rva2VuX293bmVyc2hpcF9zdGF0dXMpIHwgKipQVVQqKiAvbmZ0cy9vd25lcnNoaXAvdG9rZW5zL3tpZH0vc3RhdHVzIHwgVXBkYXRlIHRva2VuIG93bmVyc2hpcCBzdGF0dXMKWyoqdXBkYXRlX3Rva2Vuc19vd25lcnNoaXBfc3BhbSoqXShORlRzQXBpLm1kI3VwZGF0ZV90b2tlbnNfb3duZXJzaGlwX3NwYW0pIHwgKipQVVQqKiAvbmZ0cy9vd25lcnNoaXAvdG9rZW5zL3NwYW0gfCBVcGRhdGUgdG9rZW5zIG93bmVyc2hpcCBzcGFtIHByb3BlcnR5ClsqKnVwZGF0ZV90b2tlbnNfb3duZXJzaGlwX3N0YXR1cyoqXShORlRzQXBpLm1kI3VwZGF0ZV90b2tlbnNfb3duZXJzaGlwX3N0YXR1cykgfCAqKlBVVCoqIC9uZnRzL293bmVyc2hpcC90b2tlbnMvc3RhdHVzIHwgVXBkYXRlIHRva2VucyBvd25lcnNoaXAgc3RhdHVzCgoKIyAqKmdldF9uZnQqKgo+IFRva2VuUmVzcG9uc2UgZ2V0X25mdChpZCkKCkxpc3QgdG9rZW4gZGF0YSBieSBJRAoKUmV0dXJucyB0aGUgcmVxdWVzdGVkIHRva2VuIGRhdGEuCgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b2tlbl9yZXNwb25zZSBpbXBvcnQgVG9rZW5SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBpZCA9ICdORlQtYWJjZGVmYWJjZGVmYWJjZGVmYWJjZGVmYWJjZGVmYWJjZGVmYWJjZCcgIyBzdHIgfCBORlQgSUQKCiAgICB0cnk6CiAgICAgICAgIyBMaXN0IHRva2VuIGRhdGEgYnkgSUQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLm5mdHMuZ2V0X25mdChpZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIE5GVHNBcGktPmdldF9uZnQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgTkZUc0FwaS0+Z2V0X25mdDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqaWQqKiB8ICoqc3RyKip8IE5GVCBJRCB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipUb2tlblJlc3BvbnNlKipdKFRva2VuUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCAgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X25mdHMqKgo+IEdldE5GVHNSZXNwb25zZSBnZXRfbmZ0cyhpZHMsIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplLCBzb3J0PXNvcnQsIG9yZGVyPW9yZGVyKQoKTGlzdCB0b2tlbnMgYnkgSURzCgpSZXR1cm5zIHRoZSByZXF1ZXN0ZWQgdG9rZW5zIGRhdGEuCgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfbmZ0c19yZXNwb25zZSBpbXBvcnQgR2V0TkZUc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGlkcyA9ICdpZHNfZXhhbXBsZScgIyBzdHIgfCBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIE5GVCBJRHMuIFVwIHRvIDEwMCBhcmUgYWxsb3dlZCBpbiBhIHNpbmdsZSByZXF1ZXN0LgogICAgcGFnZV9jdXJzb3IgPSAncGFnZV9jdXJzb3JfZXhhbXBsZScgIyBzdHIgfCBQYWdlIGN1cnNvciB0byBmZXRjaCAob3B0aW9uYWwpCiAgICBwYWdlX3NpemUgPSAzLjQgIyBmbG9hdCB8IEl0ZW1zIHBlciBwYWdlIChtYXggMTAwKSAob3B0aW9uYWwpCiAgICBzb3J0ID0gWydzb3J0X2V4YW1wbGUnXSAjIExpc3Rbc3RyXSB8IFNvcnQgYnkgcGFyYW0sIGl0IGNhbiBiZSBvbmUgcGFyYW0gb3IgYSBsaXN0IG9mIHBhcmFtcyBzZXBhcmF0ZWQgYnkgY29tbWEgKG9wdGlvbmFsKQogICAgb3JkZXIgPSBBU0MgIyBzdHIgfCBPcmRlciBkaXJlY3Rpb24sIGl0IGNhbiBiZSBgQVNDYCBmb3IgYXNjZW5kaW5nIG9yIGBERVNDYCBmb3IgZGVzY2VuZGluZyAob3B0aW9uYWwpIChkZWZhdWx0IHRvIEFTQykKCiAgICB0cnk6CiAgICAgICAgIyBMaXN0IHRva2VucyBieSBJRHMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLm5mdHMuZ2V0X25mdHMoaWRzLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwgc29ydD1zb3J0LCBvcmRlcj1vcmRlcikucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIE5GVHNBcGktPmdldF9uZnRzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIE5GVHNBcGktPmdldF9uZnRzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKippZHMqKiB8ICoqc3RyKip8IEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgTkZUIElEcy4gVXAgdG8gMTAwIGFyZSBhbGxvd2VkIGluIGEgc2luZ2xlIHJlcXVlc3QuIHwgCiAqKnBhZ2VfY3Vyc29yKiogfCAqKnN0cioqfCBQYWdlIGN1cnNvciB0byBmZXRjaCB8IFtvcHRpb25hbF0gCiAqKnBhZ2Vfc2l6ZSoqIHwgKipmbG9hdCoqfCBJdGVtcyBwZXIgcGFnZSAobWF4IDEwMCkgfCBbb3B0aW9uYWxdIAogKipzb3J0KiogfCBbKipMaXN0W3N0cl0qKl0oc3RyLm1kKXwgU29ydCBieSBwYXJhbSwgaXQgY2FuIGJlIG9uZSBwYXJhbSBvciBhIGxpc3Qgb2YgcGFyYW1zIHNlcGFyYXRlZCBieSBjb21tYSB8IFtvcHRpb25hbF0gCiAqKm9yZGVyKiogfCAqKnN0cioqfCBPcmRlciBkaXJlY3Rpb24sIGl0IGNhbiBiZSAmI3g2MDtBU0MmI3g2MDsgZm9yIGFzY2VuZGluZyBvciAmI3g2MDtERVNDJiN4NjA7IGZvciBkZXNjZW5kaW5nIHwgW29wdGlvbmFsXSBbZGVmYXVsdCB0byBBU0NdCgojIyMgUmV0dXJuIHR5cGUKClsqKkdldE5GVHNSZXNwb25zZSoqXShHZXRORlRzUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCAgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X293bmVyc2hpcF90b2tlbnMqKgo+IEdldE93bmVyc2hpcFRva2Vuc1Jlc3BvbnNlIGdldF9vd25lcnNoaXBfdG9rZW5zKGJsb2NrY2hhaW5fZGVzY3JpcHRvcj1ibG9ja2NoYWluX2Rlc2NyaXB0b3IsIHZhdWx0X2FjY291bnRfaWRzPXZhdWx0X2FjY291bnRfaWRzLCBuY3dfaWQ9bmN3X2lkLCBuY3dfYWNjb3VudF9pZHM9bmN3X2FjY291bnRfaWRzLCB3YWxsZXRfdHlwZT13YWxsZXRfdHlwZSwgaWRzPWlkcywgY29sbGVjdGlvbl9pZHM9Y29sbGVjdGlvbl9pZHMsIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplLCBzb3J0PXNvcnQsIG9yZGVyPW9yZGVyLCBzdGF0dXM9c3RhdHVzLCBzZWFyY2g9c2VhcmNoLCBzcGFtPXNwYW0pCgpMaXN0IGFsbCBvd25lZCB0b2tlbnMgKHBhZ2luYXRlZCkKClJldHVybnMgYWxsIHRva2VucyBhbmQgdGhlaXIgZGF0YSBpbiB5b3VyIHdvcmtzcGFjZS4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9vd25lcnNoaXBfdG9rZW5zX3Jlc3BvbnNlIGltcG9ydCBHZXRPd25lcnNoaXBUb2tlbnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBibG9ja2NoYWluX2Rlc2NyaXB0b3IgPSAnYmxvY2tjaGFpbl9kZXNjcmlwdG9yX2V4YW1wbGUnICMgc3RyIHwgQmxvY2tjaGFpbiBkZXNjcmlwdG9yIGZpbHRlciAob3B0aW9uYWwpCiAgICB2YXVsdF9hY2NvdW50X2lkcyA9ICd2YXVsdF9hY2NvdW50X2lkc19leGFtcGxlJyAjIHN0ciB8IEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgVmF1bHQgQWNjb3VudCBJRHMuIFVwIHRvIDEwMCBhcmUgYWxsb3dlZCBpbiBhIHNpbmdsZSByZXF1ZXN0LiAgVGhpcyBmaWVsZCB3aWxsIGJlIGlnbm9yZWQgd2hlbiB3YWxsZXRUeXBlPUVORF9VU0VSX1dBTExFVCBvciBuY3dJZCBpcyBwcm92aWRlZC4gKG9wdGlvbmFsKQogICAgbmN3X2lkID0gJ25jd19pZF9leGFtcGxlJyAjIHN0ciB8IFRlbmFudCdzIE5vbi1DdXN0b2RpYWwgV2FsbGV0IElEIChvcHRpb25hbCkKICAgIG5jd19hY2NvdW50X2lkcyA9ICduY3dfYWNjb3VudF9pZHNfZXhhbXBsZScgIyBzdHIgfCBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIE5vbi1DdXN0b2RpYWwgYWNjb3VudCBJRHMuIFVwIHRvIDEwMCBhcmUgYWxsb3dlZCBpbiBhIHNpbmdsZSByZXF1ZXN0LiBUaGlzIGZpZWxkIHdpbGwgYmUgaWdub3JlZCB3aGVuIHdhbGxldFR5cGU9VkFVTFRfQUNDT1VOVCBvciBuY3dJZCBpcyBub3QgcHJvdmlkZWQuIChvcHRpb25hbCkKICAgIHdhbGxldF90eXBlID0gVkFVTFRfQUNDT1VOVCAjIHN0ciB8IFdhbGxldCB0eXBlLCBpdCBjYW4gYmUgYFZBVUxUX0FDQ09VTlRgIG9yIGBFTkRfVVNFUl9XQUxMRVRgIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gVkFVTFRfQUNDT1VOVCkKICAgIGlkcyA9ICdpZHNfZXhhbXBsZScgIyBzdHIgfCBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIE5GVCBJRHMuIFVwIHRvIDEwMCBhcmUgYWxsb3dlZCBpbiBhIHNpbmdsZSByZXF1ZXN0LiAob3B0aW9uYWwpCiAgICBjb2xsZWN0aW9uX2lkcyA9ICdjb2xsZWN0aW9uX2lkc19leGFtcGxlJyAjIHN0ciB8IEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgY29sbGVjdGlvbiBJRHMuIFVwIHRvIDEwMCBhcmUgYWxsb3dlZCBpbiBhIHNpbmdsZSByZXF1ZXN0LiAob3B0aW9uYWwpCiAgICBwYWdlX2N1cnNvciA9ICdwYWdlX2N1cnNvcl9leGFtcGxlJyAjIHN0ciB8IFBhZ2UgY3Vyc29yIHRvIGZldGNoIChvcHRpb25hbCkKICAgIHBhZ2Vfc2l6ZSA9IDMuNCAjIGZsb2F0IHwgSXRlbXMgcGVyIHBhZ2UgKG1heCAxMDApIChvcHRpb25hbCkKICAgIHNvcnQgPSBbJ3NvcnRfZXhhbXBsZSddICMgTGlzdFtzdHJdIHwgU29ydCBieSBwYXJhbSwgaXQgY2FuIGJlIG9uZSBwYXJhbSBvciBhIGxpc3Qgb2YgcGFyYW1zIHNlcGFyYXRlZCBieSBjb21tYSAob3B0aW9uYWwpCiAgICBvcmRlciA9IEFTQyAjIHN0ciB8IE9yZGVyIGRpcmVjdGlvbiwgaXQgY2FuIGJlIGBBU0NgIGZvciBhc2NlbmRpbmcgb3IgYERFU0NgIGZvciBkZXNjZW5kaW5nIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gQVNDKQogICAgc3RhdHVzID0gTElTVEVEICMgc3RyIHwgVG9rZW4gb3duZXJzaGlwIHN0YXR1cyAob3B0aW9uYWwpIChkZWZhdWx0IHRvIExJU1RFRCkKICAgIHNlYXJjaCA9ICdzZWFyY2hfZXhhbXBsZScgIyBzdHIgfCBTZWFyY2ggb3duZWQgdG9rZW5zIGFuZCB0aGVpciBjb2xsZWN0aW9ucy4gUG9zc2libGUgY3JpdGVyaWEgZm9yIHNlYXJjaDogIHRva2VuIG5hbWUgYW5kIGlkIHdpdGhpbiB0aGUgY29udHJhY3QvY29sbGVjdGlvbiwgY29sbGVjdGlvbiBuYW1lLCBibG9ja2NoYWluIGRlc2NyaXB0b3IgYW5kIG5hbWUuIChvcHRpb25hbCkKICAgIHNwYW0gPSAnc3BhbV9leGFtcGxlJyAjIHN0ciB8IFRva2VuIG93bmVyc2hpcCBzcGFtIHN0YXR1cy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIExpc3QgYWxsIG93bmVkIHRva2VucyAocGFnaW5hdGVkKQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MubmZ0cy5nZXRfb3duZXJzaGlwX3Rva2VucyhibG9ja2NoYWluX2Rlc2NyaXB0b3I9YmxvY2tjaGFpbl9kZXNjcmlwdG9yLCB2YXVsdF9hY2NvdW50X2lkcz12YXVsdF9hY2NvdW50X2lkcywgbmN3X2lkPW5jd19pZCwgbmN3X2FjY291bnRfaWRzPW5jd19hY2NvdW50X2lkcywgd2FsbGV0X3R5cGU9d2FsbGV0X3R5cGUsIGlkcz1pZHMsIGNvbGxlY3Rpb25faWRzPWNvbGxlY3Rpb25faWRzLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwgc29ydD1zb3J0LCBvcmRlcj1vcmRlciwgc3RhdHVzPXN0YXR1cywgc2VhcmNoPXNlYXJjaCwgc3BhbT1zcGFtKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgTkZUc0FwaS0+Z2V0X293bmVyc2hpcF90b2tlbnM6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgTkZUc0FwaS0+Z2V0X293bmVyc2hpcF90b2tlbnM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmJsb2NrY2hhaW5fZGVzY3JpcHRvcioqIHwgKipzdHIqKnwgQmxvY2tjaGFpbiBkZXNjcmlwdG9yIGZpbHRlciB8IFtvcHRpb25hbF0gCiAqKnZhdWx0X2FjY291bnRfaWRzKiogfCAqKnN0cioqfCBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIFZhdWx0IEFjY291bnQgSURzLiBVcCB0byAxMDAgYXJlIGFsbG93ZWQgaW4gYSBzaW5nbGUgcmVxdWVzdC4gIFRoaXMgZmllbGQgd2lsbCBiZSBpZ25vcmVkIHdoZW4gd2FsbGV0VHlwZSYjeDNEO0VORF9VU0VSX1dBTExFVCBvciBuY3dJZCBpcyBwcm92aWRlZC4gfCBbb3B0aW9uYWxdIAogKipuY3dfaWQqKiB8ICoqc3RyKip8IFRlbmFudCYjMzk7cyBOb24tQ3VzdG9kaWFsIFdhbGxldCBJRCB8IFtvcHRpb25hbF0gCiAqKm5jd19hY2NvdW50X2lkcyoqIHwgKipzdHIqKnwgQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBOb24tQ3VzdG9kaWFsIGFjY291bnQgSURzLiBVcCB0byAxMDAgYXJlIGFsbG93ZWQgaW4gYSBzaW5nbGUgcmVxdWVzdC4gVGhpcyBmaWVsZCB3aWxsIGJlIGlnbm9yZWQgd2hlbiB3YWxsZXRUeXBlJiN4M0Q7VkFVTFRfQUNDT1VOVCBvciBuY3dJZCBpcyBub3QgcHJvdmlkZWQuIHwgW29wdGlvbmFsXSAKICoqd2FsbGV0X3R5cGUqKiB8ICoqc3RyKip8IFdhbGxldCB0eXBlLCBpdCBjYW4gYmUgJiN4NjA7VkFVTFRfQUNDT1VOVCYjeDYwOyBvciAmI3g2MDtFTkRfVVNFUl9XQUxMRVQmI3g2MDsgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIFZBVUxUX0FDQ09VTlRdCiAqKmlkcyoqIHwgKipzdHIqKnwgQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBORlQgSURzLiBVcCB0byAxMDAgYXJlIGFsbG93ZWQgaW4gYSBzaW5nbGUgcmVxdWVzdC4gfCBbb3B0aW9uYWxdIAogKipjb2xsZWN0aW9uX2lkcyoqIHwgKipzdHIqKnwgQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBjb2xsZWN0aW9uIElEcy4gVXAgdG8gMTAwIGFyZSBhbGxvd2VkIGluIGEgc2luZ2xlIHJlcXVlc3QuIHwgW29wdGlvbmFsXSAKICoqcGFnZV9jdXJzb3IqKiB8ICoqc3RyKip8IFBhZ2UgY3Vyc29yIHRvIGZldGNoIHwgW29wdGlvbmFsXSAKICoqcGFnZV9zaXplKiogfCAqKmZsb2F0Kip8IEl0ZW1zIHBlciBwYWdlIChtYXggMTAwKSB8IFtvcHRpb25hbF0gCiAqKnNvcnQqKiB8IFsqKkxpc3Rbc3RyXSoqXShzdHIubWQpfCBTb3J0IGJ5IHBhcmFtLCBpdCBjYW4gYmUgb25lIHBhcmFtIG9yIGEgbGlzdCBvZiBwYXJhbXMgc2VwYXJhdGVkIGJ5IGNvbW1hIHwgW29wdGlvbmFsXSAKICoqb3JkZXIqKiB8ICoqc3RyKip8IE9yZGVyIGRpcmVjdGlvbiwgaXQgY2FuIGJlICYjeDYwO0FTQyYjeDYwOyBmb3IgYXNjZW5kaW5nIG9yICYjeDYwO0RFU0MmI3g2MDsgZm9yIGRlc2NlbmRpbmcgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIEFTQ10KICoqc3RhdHVzKiogfCAqKnN0cioqfCBUb2tlbiBvd25lcnNoaXAgc3RhdHVzIHwgW29wdGlvbmFsXSBbZGVmYXVsdCB0byBMSVNURURdCiAqKnNlYXJjaCoqIHwgKipzdHIqKnwgU2VhcmNoIG93bmVkIHRva2VucyBhbmQgdGhlaXIgY29sbGVjdGlvbnMuIFBvc3NpYmxlIGNyaXRlcmlhIGZvciBzZWFyY2g6ICB0b2tlbiBuYW1lIGFuZCBpZCB3aXRoaW4gdGhlIGNvbnRyYWN0L2NvbGxlY3Rpb24sIGNvbGxlY3Rpb24gbmFtZSwgYmxvY2tjaGFpbiBkZXNjcmlwdG9yIGFuZCBuYW1lLiB8IFtvcHRpb25hbF0gCiAqKnNwYW0qKiB8ICoqc3RyKip8IFRva2VuIG93bmVyc2hpcCBzcGFtIHN0YXR1cy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipHZXRPd25lcnNoaXBUb2tlbnNSZXNwb25zZSoqXShHZXRPd25lcnNoaXBUb2tlbnNSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8ICB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipsaXN0X293bmVkX2NvbGxlY3Rpb25zKioKPiBMaXN0T3duZWRDb2xsZWN0aW9uc1Jlc3BvbnNlIGxpc3Rfb3duZWRfY29sbGVjdGlvbnMobmN3X2lkPW5jd19pZCwgd2FsbGV0X3R5cGU9d2FsbGV0X3R5cGUsIHNlYXJjaD1zZWFyY2gsIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplLCBzb3J0PXNvcnQsIG9yZGVyPW9yZGVyLCBzdGF0dXM9c3RhdHVzKQoKTGlzdCBvd25lZCBjb2xsZWN0aW9ucyAocGFnaW5hdGVkKQoKUmV0dXJucyBhbGwgY29sbGVjdGlvbnMgaW4geW91ciB3b3Jrc3BhY2UKCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxpc3Rfb3duZWRfY29sbGVjdGlvbnNfcmVzcG9uc2UgaW1wb3J0IExpc3RPd25lZENvbGxlY3Rpb25zUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgbmN3X2lkID0gJ25jd19pZF9leGFtcGxlJyAjIHN0ciB8IFRlbmFudCdzIE5vbi1DdXN0b2RpYWwgV2FsbGV0IElEIChvcHRpb25hbCkKICAgIHdhbGxldF90eXBlID0gVkFVTFRfQUNDT1VOVCAjIHN0ciB8IFdhbGxldCB0eXBlLCBpdCBjYW4gYmUgYFZBVUxUX0FDQ09VTlRgIG9yIGBFTkRfVVNFUl9XQUxMRVRgIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gVkFVTFRfQUNDT1VOVCkKICAgIHNlYXJjaCA9ICdzZWFyY2hfZXhhbXBsZScgIyBzdHIgfCBTZWFyY2ggb3duZWQgY29sbGVjdGlvbnMuIFBvc3NpYmxlIGNyaXRlcmlhIGZvciBzZWFyY2g6IGNvbGxlY3Rpb24gbmFtZSwgY29sbGVjdGlvbiBjb250cmFjdCBhZGRyZXNzLiAob3B0aW9uYWwpCiAgICBwYWdlX2N1cnNvciA9ICdwYWdlX2N1cnNvcl9leGFtcGxlJyAjIHN0ciB8IFBhZ2UgY3Vyc29yIHRvIGZldGNoIChvcHRpb25hbCkKICAgIHBhZ2Vfc2l6ZSA9IDMuNCAjIGZsb2F0IHwgSXRlbXMgcGVyIHBhZ2UgKG1heCAxMDApIChvcHRpb25hbCkKICAgIHNvcnQgPSBbJ3NvcnRfZXhhbXBsZSddICMgTGlzdFtzdHJdIHwgU29ydCBieSBwYXJhbSwgaXQgY2FuIGJlIG9uZSBwYXJhbSBvciBhIGxpc3Qgb2YgcGFyYW1zIHNlcGFyYXRlZCBieSBjb21tYSAob3B0aW9uYWwpCiAgICBvcmRlciA9IEFTQyAjIHN0ciB8IE9yZGVyIGRpcmVjdGlvbiwgaXQgY2FuIGJlIGBBU0NgIGZvciBhc2NlbmRpbmcgb3IgYERFU0NgIGZvciBkZXNjZW5kaW5nIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gQVNDKQogICAgc3RhdHVzID0gTElTVEVEICMgc3RyIHwgVG9rZW4gb3duZXJzaGlwIHN0YXR1cyAob3B0aW9uYWwpIChkZWZhdWx0IHRvIExJU1RFRCkKCiAgICB0cnk6CiAgICAgICAgIyBMaXN0IG93bmVkIGNvbGxlY3Rpb25zIChwYWdpbmF0ZWQpCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5uZnRzLmxpc3Rfb3duZWRfY29sbGVjdGlvbnMobmN3X2lkPW5jd19pZCwgd2FsbGV0X3R5cGU9d2FsbGV0X3R5cGUsIHNlYXJjaD1zZWFyY2gsIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplLCBzb3J0PXNvcnQsIG9yZGVyPW9yZGVyLCBzdGF0dXM9c3RhdHVzKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgTkZUc0FwaS0+bGlzdF9vd25lZF9jb2xsZWN0aW9uczpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBORlRzQXBpLT5saXN0X293bmVkX2NvbGxlY3Rpb25zOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipuY3dfaWQqKiB8ICoqc3RyKip8IFRlbmFudCYjMzk7cyBOb24tQ3VzdG9kaWFsIFdhbGxldCBJRCB8IFtvcHRpb25hbF0gCiAqKndhbGxldF90eXBlKiogfCAqKnN0cioqfCBXYWxsZXQgdHlwZSwgaXQgY2FuIGJlICYjeDYwO1ZBVUxUX0FDQ09VTlQmI3g2MDsgb3IgJiN4NjA7RU5EX1VTRVJfV0FMTEVUJiN4NjA7IHwgW29wdGlvbmFsXSBbZGVmYXVsdCB0byBWQVVMVF9BQ0NPVU5UXQogKipzZWFyY2gqKiB8ICoqc3RyKip8IFNlYXJjaCBvd25lZCBjb2xsZWN0aW9ucy4gUG9zc2libGUgY3JpdGVyaWEgZm9yIHNlYXJjaDogY29sbGVjdGlvbiBuYW1lLCBjb2xsZWN0aW9uIGNvbnRyYWN0IGFkZHJlc3MuIHwgW29wdGlvbmFsXSAKICoqcGFnZV9jdXJzb3IqKiB8ICoqc3RyKip8IFBhZ2UgY3Vyc29yIHRvIGZldGNoIHwgW29wdGlvbmFsXSAKICoqcGFnZV9zaXplKiogfCAqKmZsb2F0Kip8IEl0ZW1zIHBlciBwYWdlIChtYXggMTAwKSB8IFtvcHRpb25hbF0gCiAqKnNvcnQqKiB8IFsqKkxpc3Rbc3RyXSoqXShzdHIubWQpfCBTb3J0IGJ5IHBhcmFtLCBpdCBjYW4gYmUgb25lIHBhcmFtIG9yIGEgbGlzdCBvZiBwYXJhbXMgc2VwYXJhdGVkIGJ5IGNvbW1hIHwgW29wdGlvbmFsXSAKICoqb3JkZXIqKiB8ICoqc3RyKip8IE9yZGVyIGRpcmVjdGlvbiwgaXQgY2FuIGJlICYjeDYwO0FTQyYjeDYwOyBmb3IgYXNjZW5kaW5nIG9yICYjeDYwO0RFU0MmI3g2MDsgZm9yIGRlc2NlbmRpbmcgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIEFTQ10KICoqc3RhdHVzKiogfCAqKnN0cioqfCBUb2tlbiBvd25lcnNoaXAgc3RhdHVzIHwgW29wdGlvbmFsXSBbZGVmYXVsdCB0byBMSVNURURdCgojIyMgUmV0dXJuIHR5cGUKClsqKkxpc3RPd25lZENvbGxlY3Rpb25zUmVzcG9uc2UqKl0oTGlzdE93bmVkQ29sbGVjdGlvbnNSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8ICB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipsaXN0X293bmVkX3Rva2VucyoqCj4gTGlzdE93bmVkVG9rZW5zUmVzcG9uc2UgbGlzdF9vd25lZF90b2tlbnMobmN3X2lkPW5jd19pZCwgd2FsbGV0X3R5cGU9d2FsbGV0X3R5cGUsIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplLCBzb3J0PXNvcnQsIG9yZGVyPW9yZGVyLCBzdGF0dXM9c3RhdHVzLCBzZWFyY2g9c2VhcmNoLCBzcGFtPXNwYW0pCgpMaXN0IGFsbCBkaXN0aW5jdCBvd25lZCB0b2tlbnMgKHBhZ2luYXRlZCkKClJldHVybnMgYWxsIG93bmVkIGRpc3RpbmN0IHRva2VucyAoZm9yIHlvdXIgdGVuYW50KSBhbmQgdGhlaXIgZGF0YSBpbiB5b3VyIHdvcmtzcGFjZS4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxpc3Rfb3duZWRfdG9rZW5zX3Jlc3BvbnNlIGltcG9ydCBMaXN0T3duZWRUb2tlbnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBuY3dfaWQgPSAnbmN3X2lkX2V4YW1wbGUnICMgc3RyIHwgVGVuYW50J3MgTm9uLUN1c3RvZGlhbCBXYWxsZXQgSUQgKG9wdGlvbmFsKQogICAgd2FsbGV0X3R5cGUgPSBWQVVMVF9BQ0NPVU5UICMgc3RyIHwgV2FsbGV0IHR5cGUsIGl0IGNhbiBiZSBgVkFVTFRfQUNDT1VOVGAgb3IgYEVORF9VU0VSX1dBTExFVGAgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byBWQVVMVF9BQ0NPVU5UKQogICAgcGFnZV9jdXJzb3IgPSAncGFnZV9jdXJzb3JfZXhhbXBsZScgIyBzdHIgfCBQYWdlIGN1cnNvciB0byBmZXRjaCAob3B0aW9uYWwpCiAgICBwYWdlX3NpemUgPSAzLjQgIyBmbG9hdCB8IEl0ZW1zIHBlciBwYWdlIChtYXggMTAwKSAob3B0aW9uYWwpCiAgICBzb3J0ID0gWydzb3J0X2V4YW1wbGUnXSAjIExpc3Rbc3RyXSB8IFNvcnQgYnkgcGFyYW0sIGl0IGNhbiBiZSBvbmUgcGFyYW0gb3IgYSBsaXN0IG9mIHBhcmFtcyBzZXBhcmF0ZWQgYnkgY29tbWEgKG9wdGlvbmFsKQogICAgb3JkZXIgPSBBU0MgIyBzdHIgfCBPcmRlciBkaXJlY3Rpb24sIGl0IGNhbiBiZSBgQVNDYCBmb3IgYXNjZW5kaW5nIG9yIGBERVNDYCBmb3IgZGVzY2VuZGluZyAob3B0aW9uYWwpIChkZWZhdWx0IHRvIEFTQykKICAgIHN0YXR1cyA9IExJU1RFRCAjIHN0ciB8IFRva2VuIG93bmVyc2hpcCBzdGF0dXMgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byBMSVNURUQpCiAgICBzZWFyY2ggPSAnc2VhcmNoX2V4YW1wbGUnICMgc3RyIHwgU2VhcmNoIG93bmVkIHRva2VucyBieSB0b2tlbiBuYW1lIChvcHRpb25hbCkKICAgIHNwYW0gPSAnc3BhbV9leGFtcGxlJyAjIHN0ciB8IFRva2VuIG93bmVyc2hpcCBzcGFtIHN0YXR1cy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIExpc3QgYWxsIGRpc3RpbmN0IG93bmVkIHRva2VucyAocGFnaW5hdGVkKQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MubmZ0cy5saXN0X293bmVkX3Rva2VucyhuY3dfaWQ9bmN3X2lkLCB3YWxsZXRfdHlwZT13YWxsZXRfdHlwZSwgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsIHNvcnQ9c29ydCwgb3JkZXI9b3JkZXIsIHN0YXR1cz1zdGF0dXMsIHNlYXJjaD1zZWFyY2gsIHNwYW09c3BhbSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIE5GVHNBcGktPmxpc3Rfb3duZWRfdG9rZW5zOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIE5GVHNBcGktPmxpc3Rfb3duZWRfdG9rZW5zOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipuY3dfaWQqKiB8ICoqc3RyKip8IFRlbmFudCYjMzk7cyBOb24tQ3VzdG9kaWFsIFdhbGxldCBJRCB8IFtvcHRpb25hbF0gCiAqKndhbGxldF90eXBlKiogfCAqKnN0cioqfCBXYWxsZXQgdHlwZSwgaXQgY2FuIGJlICYjeDYwO1ZBVUxUX0FDQ09VTlQmI3g2MDsgb3IgJiN4NjA7RU5EX1VTRVJfV0FMTEVUJiN4NjA7IHwgW29wdGlvbmFsXSBbZGVmYXVsdCB0byBWQVVMVF9BQ0NPVU5UXQogKipwYWdlX2N1cnNvcioqIHwgKipzdHIqKnwgUGFnZSBjdXJzb3IgdG8gZmV0Y2ggfCBbb3B0aW9uYWxdIAogKipwYWdlX3NpemUqKiB8ICoqZmxvYXQqKnwgSXRlbXMgcGVyIHBhZ2UgKG1heCAxMDApIHwgW29wdGlvbmFsXSAKICoqc29ydCoqIHwgWyoqTGlzdFtzdHJdKipdKHN0ci5tZCl8IFNvcnQgYnkgcGFyYW0sIGl0IGNhbiBiZSBvbmUgcGFyYW0gb3IgYSBsaXN0IG9mIHBhcmFtcyBzZXBhcmF0ZWQgYnkgY29tbWEgfCBbb3B0aW9uYWxdIAogKipvcmRlcioqIHwgKipzdHIqKnwgT3JkZXIgZGlyZWN0aW9uLCBpdCBjYW4gYmUgJiN4NjA7QVNDJiN4NjA7IGZvciBhc2NlbmRpbmcgb3IgJiN4NjA7REVTQyYjeDYwOyBmb3IgZGVzY2VuZGluZyB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gQVNDXQogKipzdGF0dXMqKiB8ICoqc3RyKip8IFRva2VuIG93bmVyc2hpcCBzdGF0dXMgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIExJU1RFRF0KICoqc2VhcmNoKiogfCAqKnN0cioqfCBTZWFyY2ggb3duZWQgdG9rZW5zIGJ5IHRva2VuIG5hbWUgfCBbb3B0aW9uYWxdIAogKipzcGFtKiogfCAqKnN0cioqfCBUb2tlbiBvd25lcnNoaXAgc3BhbSBzdGF0dXMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqTGlzdE93bmVkVG9rZW5zUmVzcG9uc2UqKl0oTGlzdE93bmVkVG9rZW5zUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCAgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqcmVmcmVzaF9uZnRfbWV0YWRhdGEqKgo+IHJlZnJlc2hfbmZ0X21ldGFkYXRhKGlkLCB4X2VuZF91c2VyX3dhbGxldF9pZD14X2VuZF91c2VyX3dhbGxldF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKClJlZnJlc2ggdG9rZW4gbWV0YWRhdGEKClVwZGF0ZXMgdGhlIGxhdGVzdCB0b2tlbiBtZXRhZGF0YS4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgaWQgPSAnTkZULWFiY2RlZmFiY2RlZmFiY2RlZmFiY2RlZmFiY2RlZmFiY2RlZmFiY2QnICMgc3RyIHwgTkZUIElECiAgICB4X2VuZF91c2VyX3dhbGxldF9pZCA9ICd4X2VuZF91c2VyX3dhbGxldF9pZF9leGFtcGxlJyAjIHN0ciB8IFVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLiAob3B0aW9uYWwpCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgUmVmcmVzaCB0b2tlbiBtZXRhZGF0YQogICAgICAgIGZpcmVibG9ja3MubmZ0cy5yZWZyZXNoX25mdF9tZXRhZGF0YShpZCwgeF9lbmRfdXNlcl93YWxsZXRfaWQ9eF9lbmRfdXNlcl93YWxsZXRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgTkZUc0FwaS0+cmVmcmVzaF9uZnRfbWV0YWRhdGE6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmlkKiogfCAqKnN0cioqfCBORlQgSUQgfCAKICoqeF9lbmRfdXNlcl93YWxsZXRfaWQqKiB8ICoqc3RyKip8IFVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLiB8IFtvcHRpb25hbF0gCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKCnZvaWQgKGVtcHR5IHJlc3BvbnNlIGJvZHkpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBOb3QgZGVmaW5lZAoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMioqIHwgIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnVwZGF0ZV9vd25lcnNoaXBfdG9rZW5zKioKPiB1cGRhdGVfb3duZXJzaGlwX3Rva2VucyhibG9ja2NoYWluX2Rlc2NyaXB0b3IsIHZhdWx0X2FjY291bnRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpSZWZyZXNoIHZhdWx0IGFjY291bnQgdG9rZW5zCgpVcGRhdGVzIGFsbCB0b2tlbnMgYW5kIGJhbGFuY2VzIHBlciBibG9ja2NoYWluIGFuZCB2YXVsdCBhY2NvdW50LgpMZWFybiBtb3JlIGFib3V0IEZpcmVibG9ja3MgTkZUIG1hbmFnZW1lbnQgaW4gdGhlIGZvbGxvd2luZyBbZ3VpZGVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9yZWZlcmVuY2UvZGVwbG95LWFuLW5mdC1jb2xsZWN0aW9uKS4KCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgYmxvY2tjaGFpbl9kZXNjcmlwdG9yID0gJ2Jsb2NrY2hhaW5fZGVzY3JpcHRvcl9leGFtcGxlJyAjIHN0ciB8IEJsb2NrY2hhaW4gZGVzY3JpcHRvciBmaWx0ZXIKICAgIHZhdWx0X2FjY291bnRfaWQgPSAndmF1bHRfYWNjb3VudF9pZF9leGFtcGxlJyAjIHN0ciB8IFZhdWx0IGFjY291bnQgZmlsdGVyCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgUmVmcmVzaCB2YXVsdCBhY2NvdW50IHRva2VucwogICAgICAgIGZpcmVibG9ja3MubmZ0cy51cGRhdGVfb3duZXJzaGlwX3Rva2VucyhibG9ja2NoYWluX2Rlc2NyaXB0b3IsIHZhdWx0X2FjY291bnRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgTkZUc0FwaS0+dXBkYXRlX293bmVyc2hpcF90b2tlbnM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmJsb2NrY2hhaW5fZGVzY3JpcHRvcioqIHwgKipzdHIqKnwgQmxvY2tjaGFpbiBkZXNjcmlwdG9yIGZpbHRlciB8IAogKip2YXVsdF9hY2NvdW50X2lkKiogfCAqKnN0cioqfCBWYXVsdCBhY2NvdW50IGZpbHRlciB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgp2b2lkIChlbXB0eSByZXNwb25zZSBib2R5KQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogTm90IGRlZmluZWQKCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDIqKiB8ICB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKip1cGRhdGVfdG9rZW5fb3duZXJzaGlwX3N0YXR1cyoqCj4gdXBkYXRlX3Rva2VuX293bmVyc2hpcF9zdGF0dXMoaWQsIHVwZGF0ZV90b2tlbl9vd25lcnNoaXBfc3RhdHVzX2R0bywgeF9lbmRfdXNlcl93YWxsZXRfaWQ9eF9lbmRfdXNlcl93YWxsZXRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpVcGRhdGUgdG9rZW4gb3duZXJzaGlwIHN0YXR1cwoKVXBkYXRlcyB0b2tlbiBzdGF0dXMgZm9yIGEgdGVuYW50LCBpbiBhbGwgdGVuYW50IHZhdWx0cy4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV90b2tlbl9vd25lcnNoaXBfc3RhdHVzX2R0byBpbXBvcnQgVXBkYXRlVG9rZW5Pd25lcnNoaXBTdGF0dXNEdG8KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGlkID0gJ05GVC1hYmNkZWZhYmNkZWZhYmNkZWZhYmNkZWZhYmNkZWZhYmNkZWZhYmNkJyAjIHN0ciB8IE5GVCBJRAogICAgdXBkYXRlX3Rva2VuX293bmVyc2hpcF9zdGF0dXNfZHRvID0gZmlyZWJsb2Nrcy5VcGRhdGVUb2tlbk93bmVyc2hpcFN0YXR1c0R0bygpICMgVXBkYXRlVG9rZW5Pd25lcnNoaXBTdGF0dXNEdG8gfCAKICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkID0gJ3hfZW5kX3VzZXJfd2FsbGV0X2lkX2V4YW1wbGUnICMgc3RyIHwgVW5pcXVlIElEIG9mIHRoZSBFbmQtVXNlciB3YWxsZXQgdG8gdGhlIEFQSSByZXF1ZXN0LiBSZXF1aXJlZCBmb3IgZW5kLXVzZXIgd2FsbGV0IG9wZXJhdGlvbnMuIChvcHRpb25hbCkKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBVcGRhdGUgdG9rZW4gb3duZXJzaGlwIHN0YXR1cwogICAgICAgIGZpcmVibG9ja3MubmZ0cy51cGRhdGVfdG9rZW5fb3duZXJzaGlwX3N0YXR1cyhpZCwgdXBkYXRlX3Rva2VuX293bmVyc2hpcF9zdGF0dXNfZHRvLCB4X2VuZF91c2VyX3dhbGxldF9pZD14X2VuZF91c2VyX3dhbGxldF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBORlRzQXBpLT51cGRhdGVfdG9rZW5fb3duZXJzaGlwX3N0YXR1czogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqaWQqKiB8ICoqc3RyKip8IE5GVCBJRCB8IAogKip1cGRhdGVfdG9rZW5fb3duZXJzaGlwX3N0YXR1c19kdG8qKiB8IFsqKlVwZGF0ZVRva2VuT3duZXJzaGlwU3RhdHVzRHRvKipdKFVwZGF0ZVRva2VuT3duZXJzaGlwU3RhdHVzRHRvLm1kKXwgIHwgCiAqKnhfZW5kX3VzZXJfd2FsbGV0X2lkKiogfCAqKnN0cioqfCBVbmlxdWUgSUQgb2YgdGhlIEVuZC1Vc2VyIHdhbGxldCB0byB0aGUgQVBJIHJlcXVlc3QuIFJlcXVpcmVkIGZvciBlbmQtdXNlciB3YWxsZXQgb3BlcmF0aW9ucy4gfCBbb3B0aW9uYWxdIAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgp2b2lkIChlbXB0eSByZXNwb25zZSBib2R5KQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBOb3QgZGVmaW5lZAoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnVwZGF0ZV90b2tlbnNfb3duZXJzaGlwX3NwYW0qKgo+IHVwZGF0ZV90b2tlbnNfb3duZXJzaGlwX3NwYW0odG9rZW5fb3duZXJzaGlwX3NwYW1fdXBkYXRlX3BheWxvYWQsIHhfZW5kX3VzZXJfd2FsbGV0X2lkPXhfZW5kX3VzZXJfd2FsbGV0X2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKVXBkYXRlIHRva2VucyBvd25lcnNoaXAgc3BhbSBwcm9wZXJ0eQoKVXBkYXRlcyB0b2tlbnMgc3BhbSBwcm9wZXJ0eSBmb3IgYSB0ZW5hbnQncyB0b2tlbiBvd25lcnNoaXBzLCBpbiBhbGwgdGVuYW50IHZhdWx0cy4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fb3duZXJzaGlwX3NwYW1fdXBkYXRlX3BheWxvYWQgaW1wb3J0IFRva2VuT3duZXJzaGlwU3BhbVVwZGF0ZVBheWxvYWQKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHRva2VuX293bmVyc2hpcF9zcGFtX3VwZGF0ZV9wYXlsb2FkID0gW2ZpcmVibG9ja3MuVG9rZW5Pd25lcnNoaXBTcGFtVXBkYXRlUGF5bG9hZCgpXSAjIExpc3RbVG9rZW5Pd25lcnNoaXBTcGFtVXBkYXRlUGF5bG9hZF0gfCAKICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkID0gJ3hfZW5kX3VzZXJfd2FsbGV0X2lkX2V4YW1wbGUnICMgc3RyIHwgVW5pcXVlIElEIG9mIHRoZSBFbmQtVXNlciB3YWxsZXQgdG8gdGhlIEFQSSByZXF1ZXN0LiBSZXF1aXJlZCBmb3IgZW5kLXVzZXIgd2FsbGV0IG9wZXJhdGlvbnMuIChvcHRpb25hbCkKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBVcGRhdGUgdG9rZW5zIG93bmVyc2hpcCBzcGFtIHByb3BlcnR5CiAgICAgICAgZmlyZWJsb2Nrcy5uZnRzLnVwZGF0ZV90b2tlbnNfb3duZXJzaGlwX3NwYW0odG9rZW5fb3duZXJzaGlwX3NwYW1fdXBkYXRlX3BheWxvYWQsIHhfZW5kX3VzZXJfd2FsbGV0X2lkPXhfZW5kX3VzZXJfd2FsbGV0X2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIE5GVHNBcGktPnVwZGF0ZV90b2tlbnNfb3duZXJzaGlwX3NwYW06ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnRva2VuX293bmVyc2hpcF9zcGFtX3VwZGF0ZV9wYXlsb2FkKiogfCBbKipMaXN0W1Rva2VuT3duZXJzaGlwU3BhbVVwZGF0ZVBheWxvYWRdKipdKFRva2VuT3duZXJzaGlwU3BhbVVwZGF0ZVBheWxvYWQubWQpfCAgfCAKICoqeF9lbmRfdXNlcl93YWxsZXRfaWQqKiB8ICoqc3RyKip8IFVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLiB8IFtvcHRpb25hbF0gCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKCnZvaWQgKGVtcHR5IHJlc3BvbnNlIGJvZHkpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IE5vdCBkZWZpbmVkCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBbGwgdG9rZW4gc3BhbSBwcm9wZXJ0aWVzIGhhdmUgYmVlbiB1cGRhdGVkIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDAqKiB8IEludmFsaWQgZGF0YSBzZW50IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDQqKiB8IFdoZW4gb3duZXJzaGlwIGZvciB0b2tlbiBJRCBpcyBub3QgZm91bmQgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqdXBkYXRlX3Rva2Vuc19vd25lcnNoaXBfc3RhdHVzKioKPiB1cGRhdGVfdG9rZW5zX293bmVyc2hpcF9zdGF0dXModG9rZW5fb3duZXJzaGlwX3N0YXR1c191cGRhdGVfcGF5bG9hZCwgeF9lbmRfdXNlcl93YWxsZXRfaWQ9eF9lbmRfdXNlcl93YWxsZXRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpVcGRhdGUgdG9rZW5zIG93bmVyc2hpcCBzdGF0dXMKClVwZGF0ZXMgdG9rZW5zIHN0YXR1cyBmb3IgYSB0ZW5hbnQsIGluIGFsbCB0ZW5hbnQgdmF1bHRzLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b2tlbl9vd25lcnNoaXBfc3RhdHVzX3VwZGF0ZV9wYXlsb2FkIGltcG9ydCBUb2tlbk93bmVyc2hpcFN0YXR1c1VwZGF0ZVBheWxvYWQKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHRva2VuX293bmVyc2hpcF9zdGF0dXNfdXBkYXRlX3BheWxvYWQgPSBbZmlyZWJsb2Nrcy5Ub2tlbk93bmVyc2hpcFN0YXR1c1VwZGF0ZVBheWxvYWQoKV0gIyBMaXN0W1Rva2VuT3duZXJzaGlwU3RhdHVzVXBkYXRlUGF5bG9hZF0gfCAKICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkID0gJ3hfZW5kX3VzZXJfd2FsbGV0X2lkX2V4YW1wbGUnICMgc3RyIHwgVW5pcXVlIElEIG9mIHRoZSBFbmQtVXNlciB3YWxsZXQgdG8gdGhlIEFQSSByZXF1ZXN0LiBSZXF1aXJlZCBmb3IgZW5kLXVzZXIgd2FsbGV0IG9wZXJhdGlvbnMuIChvcHRpb25hbCkKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBVcGRhdGUgdG9rZW5zIG93bmVyc2hpcCBzdGF0dXMKICAgICAgICBmaXJlYmxvY2tzLm5mdHMudXBkYXRlX3Rva2Vuc19vd25lcnNoaXBfc3RhdHVzKHRva2VuX293bmVyc2hpcF9zdGF0dXNfdXBkYXRlX3BheWxvYWQsIHhfZW5kX3VzZXJfd2FsbGV0X2lkPXhfZW5kX3VzZXJfd2FsbGV0X2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIE5GVHNBcGktPnVwZGF0ZV90b2tlbnNfb3duZXJzaGlwX3N0YXR1czogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqdG9rZW5fb3duZXJzaGlwX3N0YXR1c191cGRhdGVfcGF5bG9hZCoqIHwgWyoqTGlzdFtUb2tlbk93bmVyc2hpcFN0YXR1c1VwZGF0ZVBheWxvYWRdKipdKFRva2VuT3duZXJzaGlwU3RhdHVzVXBkYXRlUGF5bG9hZC5tZCl8ICB8IAogKip4X2VuZF91c2VyX3dhbGxldF9pZCoqIHwgKipzdHIqKnwgVW5pcXVlIElEIG9mIHRoZSBFbmQtVXNlciB3YWxsZXQgdG8gdGhlIEFQSSByZXF1ZXN0LiBSZXF1aXJlZCBmb3IgZW5kLXVzZXIgd2FsbGV0IG9wZXJhdGlvbnMuIHwgW29wdGlvbmFsXSAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKdm9pZCAoZW1wdHkgcmVzcG9uc2UgYm9keSkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogTm90IGRlZmluZWQKCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEFsbCB0b2tlbiBzdGF0dXNlcyBoYXZlIGJlZW4gdXBkYXRlZCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDAwKiogfCBJbnZhbGlkIGRhdGEgc2VudCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDA0KiogfCBXaGVuIG93bmVyc2hpcCBmb3IgdG9rZW4gSUQgaXMgbm90IGZvdW5kIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoK \ No newline at end of file diff --git a/docs/NetworkChannel.md b/docs/NetworkChannel.md index 0d7e4f1f..e7d45ee0 100644 --- a/docs/NetworkChannel.md +++ b/docs/NetworkChannel.md @@ -1,31 +1 @@ -# NetworkChannel - -Deprecated in the only used reference - NetworkConnectionResponse - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**network_id** | **str** | | [optional] -**name** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.network_channel import NetworkChannel - -# TODO update the JSON string below -json = "{}" -# create an instance of NetworkChannel from a JSON string -network_channel_instance = NetworkChannel.from_json(json) -# print the JSON string representation of the object -print(NetworkChannel.to_json()) - -# convert the object into a dict -network_channel_dict = network_channel_instance.to_dict() -# create an instance of NetworkChannel from a dict -network_channel_from_dict = NetworkChannel.from_dict(network_channel_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBOZXR3b3JrQ2hhbm5lbAoKRGVwcmVjYXRlZCBpbiB0aGUgb25seSB1c2VkIHJlZmVyZW5jZSAtIE5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2UKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipuZXR3b3JrX2lkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipuYW1lKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfY2hhbm5lbCBpbXBvcnQgTmV0d29ya0NoYW5uZWwKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE5ldHdvcmtDaGFubmVsIGZyb20gYSBKU09OIHN0cmluZwpuZXR3b3JrX2NoYW5uZWxfaW5zdGFuY2UgPSBOZXR3b3JrQ2hhbm5lbC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChOZXR3b3JrQ2hhbm5lbC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApuZXR3b3JrX2NoYW5uZWxfZGljdCA9IG5ldHdvcmtfY2hhbm5lbF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTmV0d29ya0NoYW5uZWwgZnJvbSBhIGRpY3QKbmV0d29ya19jaGFubmVsX2Zyb21fZGljdCA9IE5ldHdvcmtDaGFubmVsLmZyb21fZGljdChuZXR3b3JrX2NoYW5uZWxfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/NetworkConnection.md b/docs/NetworkConnection.md index 1de23489..4e2eeb88 100644 --- a/docs/NetworkConnection.md +++ b/docs/NetworkConnection.md @@ -1,31 +1 @@ -# NetworkConnection - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**local_network_id** | **str** | The network ID of the profile trying to create the connection. | -**remote_network_id** | **str** | The network ID the profile is attempting to connect to. | -**routing_policy** | [**Dict[str, NetworkConnectionRoutingPolicyValue]**](NetworkConnectionRoutingPolicyValue.md) | | [optional] - -## Example - -```python -from fireblocks.models.network_connection import NetworkConnection - -# TODO update the JSON string below -json = "{}" -# create an instance of NetworkConnection from a JSON string -network_connection_instance = NetworkConnection.from_json(json) -# print the JSON string representation of the object -print(NetworkConnection.to_json()) - -# convert the object into a dict -network_connection_dict = network_connection_instance.to_dict() -# create an instance of NetworkConnection from a dict -network_connection_from_dict = NetworkConnection.from_dict(network_connection_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBOZXR3b3JrQ29ubmVjdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipsb2NhbF9uZXR3b3JrX2lkKiogfCAqKnN0cioqIHwgVGhlIG5ldHdvcmsgSUQgb2YgdGhlIHByb2ZpbGUgdHJ5aW5nIHRvIGNyZWF0ZSB0aGUgY29ubmVjdGlvbi4gfCAKKipyZW1vdGVfbmV0d29ya19pZCoqIHwgKipzdHIqKiB8IFRoZSBuZXR3b3JrIElEIHRoZSBwcm9maWxlIGlzIGF0dGVtcHRpbmcgdG8gY29ubmVjdCB0by4gfCAKKipyb3V0aW5nX3BvbGljeSoqIHwgWyoqRGljdFtzdHIsIE5ldHdvcmtDb25uZWN0aW9uUm91dGluZ1BvbGljeVZhbHVlXSoqXShOZXR3b3JrQ29ubmVjdGlvblJvdXRpbmdQb2xpY3lWYWx1ZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19jb25uZWN0aW9uIGltcG9ydCBOZXR3b3JrQ29ubmVjdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTmV0d29ya0Nvbm5lY3Rpb24gZnJvbSBhIEpTT04gc3RyaW5nCm5ldHdvcmtfY29ubmVjdGlvbl9pbnN0YW5jZSA9IE5ldHdvcmtDb25uZWN0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KE5ldHdvcmtDb25uZWN0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cm5ldHdvcmtfY29ubmVjdGlvbl9kaWN0ID0gbmV0d29ya19jb25uZWN0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOZXR3b3JrQ29ubmVjdGlvbiBmcm9tIGEgZGljdApuZXR3b3JrX2Nvbm5lY3Rpb25fZnJvbV9kaWN0ID0gTmV0d29ya0Nvbm5lY3Rpb24uZnJvbV9kaWN0KG5ldHdvcmtfY29ubmVjdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/NetworkConnectionResponse.md b/docs/NetworkConnectionResponse.md index ca646fb9..04256c09 100644 --- a/docs/NetworkConnectionResponse.md +++ b/docs/NetworkConnectionResponse.md @@ -1,35 +1 @@ -# NetworkConnectionResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | -**local_channel** | [**NetworkChannel**](NetworkChannel.md) | Deprecated - Replaced by `localNetworkId` | [optional] -**remote_channel** | [**NetworkChannel**](NetworkChannel.md) | Deprecated - Replaced by `remoteNetworkId` | [optional] -**status** | [**NetworkConnectionStatus**](NetworkConnectionStatus.md) | | -**local_network_id** | [**NetworkId**](NetworkId.md) | | -**remote_network_id** | [**NetworkId**](NetworkId.md) | | -**routing_policy** | [**Dict[str, NetworkConnectionRoutingPolicyValue]**](NetworkConnectionRoutingPolicyValue.md) | | - -## Example - -```python -from fireblocks.models.network_connection_response import NetworkConnectionResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of NetworkConnectionResponse from a JSON string -network_connection_response_instance = NetworkConnectionResponse.from_json(json) -# print the JSON string representation of the object -print(NetworkConnectionResponse.to_json()) - -# convert the object into a dict -network_connection_response_dict = network_connection_response_instance.to_dict() -# create an instance of NetworkConnectionResponse from a dict -network_connection_response_from_dict = NetworkConnectionResponse.from_dict(network_connection_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgIHwgCioqbG9jYWxfY2hhbm5lbCoqIHwgWyoqTmV0d29ya0NoYW5uZWwqKl0oTmV0d29ya0NoYW5uZWwubWQpIHwgRGVwcmVjYXRlZCAtIFJlcGxhY2VkIGJ5ICYjeDYwO2xvY2FsTmV0d29ya0lkJiN4NjA7IHwgW29wdGlvbmFsXSAKKipyZW1vdGVfY2hhbm5lbCoqIHwgWyoqTmV0d29ya0NoYW5uZWwqKl0oTmV0d29ya0NoYW5uZWwubWQpIHwgRGVwcmVjYXRlZCAtIFJlcGxhY2VkIGJ5ICYjeDYwO3JlbW90ZU5ldHdvcmtJZCYjeDYwOyB8IFtvcHRpb25hbF0gCioqc3RhdHVzKiogfCBbKipOZXR3b3JrQ29ubmVjdGlvblN0YXR1cyoqXShOZXR3b3JrQ29ubmVjdGlvblN0YXR1cy5tZCkgfCAgfCAKKipsb2NhbF9uZXR3b3JrX2lkKiogfCBbKipOZXR3b3JrSWQqKl0oTmV0d29ya0lkLm1kKSB8ICB8IAoqKnJlbW90ZV9uZXR3b3JrX2lkKiogfCBbKipOZXR3b3JrSWQqKl0oTmV0d29ya0lkLm1kKSB8ICB8IAoqKnJvdXRpbmdfcG9saWN5KiogfCBbKipEaWN0W3N0ciwgTmV0d29ya0Nvbm5lY3Rpb25Sb3V0aW5nUG9saWN5VmFsdWVdKipdKE5ldHdvcmtDb25uZWN0aW9uUm91dGluZ1BvbGljeVZhbHVlLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19jb25uZWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpuZXR3b3JrX2Nvbm5lY3Rpb25fcmVzcG9uc2VfaW5zdGFuY2UgPSBOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KE5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbmV0d29ya19jb25uZWN0aW9uX3Jlc3BvbnNlX2RpY3QgPSBuZXR3b3JrX2Nvbm5lY3Rpb25fcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2UgZnJvbSBhIGRpY3QKbmV0d29ya19jb25uZWN0aW9uX3Jlc3BvbnNlX2Zyb21fZGljdCA9IE5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2UuZnJvbV9kaWN0KG5ldHdvcmtfY29ubmVjdGlvbl9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/NetworkConnectionRoutingPolicyValue.md b/docs/NetworkConnectionRoutingPolicyValue.md index eebef9dc..9f356e94 100644 --- a/docs/NetworkConnectionRoutingPolicyValue.md +++ b/docs/NetworkConnectionRoutingPolicyValue.md @@ -1,31 +1 @@ -# NetworkConnectionRoutingPolicyValue - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**scheme** | **str** | No network routing logic. | -**dst_type** | **str** | The account the funds are being sent to. | -**dst_id** | **str** | The ID of the account the funds are being sent to. | - -## Example - -```python -from fireblocks.models.network_connection_routing_policy_value import NetworkConnectionRoutingPolicyValue - -# TODO update the JSON string below -json = "{}" -# create an instance of NetworkConnectionRoutingPolicyValue from a JSON string -network_connection_routing_policy_value_instance = NetworkConnectionRoutingPolicyValue.from_json(json) -# print the JSON string representation of the object -print(NetworkConnectionRoutingPolicyValue.to_json()) - -# convert the object into a dict -network_connection_routing_policy_value_dict = network_connection_routing_policy_value_instance.to_dict() -# create an instance of NetworkConnectionRoutingPolicyValue from a dict -network_connection_routing_policy_value_from_dict = NetworkConnectionRoutingPolicyValue.from_dict(network_connection_routing_policy_value_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBOZXR3b3JrQ29ubmVjdGlvblJvdXRpbmdQb2xpY3lWYWx1ZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzY2hlbWUqKiB8ICoqc3RyKiogfCBObyBuZXR3b3JrIHJvdXRpbmcgbG9naWMuIHwgCioqZHN0X3R5cGUqKiB8ICoqc3RyKiogfCBUaGUgYWNjb3VudCB0aGUgZnVuZHMgYXJlIGJlaW5nIHNlbnQgdG8uIHwgCioqZHN0X2lkKiogfCAqKnN0cioqIHwgVGhlIElEIG9mIHRoZSBhY2NvdW50IHRoZSBmdW5kcyBhcmUgYmVpbmcgc2VudCB0by4gfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfY29ubmVjdGlvbl9yb3V0aW5nX3BvbGljeV92YWx1ZSBpbXBvcnQgTmV0d29ya0Nvbm5lY3Rpb25Sb3V0aW5nUG9saWN5VmFsdWUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE5ldHdvcmtDb25uZWN0aW9uUm91dGluZ1BvbGljeVZhbHVlIGZyb20gYSBKU09OIHN0cmluZwpuZXR3b3JrX2Nvbm5lY3Rpb25fcm91dGluZ19wb2xpY3lfdmFsdWVfaW5zdGFuY2UgPSBOZXR3b3JrQ29ubmVjdGlvblJvdXRpbmdQb2xpY3lWYWx1ZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChOZXR3b3JrQ29ubmVjdGlvblJvdXRpbmdQb2xpY3lWYWx1ZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApuZXR3b3JrX2Nvbm5lY3Rpb25fcm91dGluZ19wb2xpY3lfdmFsdWVfZGljdCA9IG5ldHdvcmtfY29ubmVjdGlvbl9yb3V0aW5nX3BvbGljeV92YWx1ZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTmV0d29ya0Nvbm5lY3Rpb25Sb3V0aW5nUG9saWN5VmFsdWUgZnJvbSBhIGRpY3QKbmV0d29ya19jb25uZWN0aW9uX3JvdXRpbmdfcG9saWN5X3ZhbHVlX2Zyb21fZGljdCA9IE5ldHdvcmtDb25uZWN0aW9uUm91dGluZ1BvbGljeVZhbHVlLmZyb21fZGljdChuZXR3b3JrX2Nvbm5lY3Rpb25fcm91dGluZ19wb2xpY3lfdmFsdWVfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/NetworkConnectionStatus.md b/docs/NetworkConnectionStatus.md index 733ef6c7..a766d9f9 100644 --- a/docs/NetworkConnectionStatus.md +++ b/docs/NetworkConnectionStatus.md @@ -1,26 +1 @@ -# NetworkConnectionStatus - - -## Enum - -* `WAITING_FOR_APPROVAL` (value: `'WAITING_FOR_APPROVAL'`) - -* `WAITING_FOR_PEER_APPROVAL` (value: `'WAITING_FOR_PEER_APPROVAL'`) - -* `APPROVED` (value: `'APPROVED'`) - -* `CANCELLED` (value: `'CANCELLED'`) - -* `FAILED` (value: `'FAILED'`) - -* `REJECTED` (value: `'REJECTED'`) - -* `REJECTED_BY_PEER` (value: `'REJECTED_BY_PEER'`) - -* `REMOVED` (value: `'REMOVED'`) - -* `REMOVED_BY_PEER` (value: `'REMOVED_BY_PEER'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBOZXR3b3JrQ29ubmVjdGlvblN0YXR1cwoKCiMjIEVudW0KCiogYFdBSVRJTkdfRk9SX0FQUFJPVkFMYCAodmFsdWU6IGAnV0FJVElOR19GT1JfQVBQUk9WQUwnYCkKCiogYFdBSVRJTkdfRk9SX1BFRVJfQVBQUk9WQUxgICh2YWx1ZTogYCdXQUlUSU5HX0ZPUl9QRUVSX0FQUFJPVkFMJ2ApCgoqIGBBUFBST1ZFRGAgKHZhbHVlOiBgJ0FQUFJPVkVEJ2ApCgoqIGBDQU5DRUxMRURgICh2YWx1ZTogYCdDQU5DRUxMRUQnYCkKCiogYEZBSUxFRGAgKHZhbHVlOiBgJ0ZBSUxFRCdgKQoKKiBgUkVKRUNURURgICh2YWx1ZTogYCdSRUpFQ1RFRCdgKQoKKiBgUkVKRUNURURfQllfUEVFUmAgKHZhbHVlOiBgJ1JFSkVDVEVEX0JZX1BFRVInYCkKCiogYFJFTU9WRURgICh2YWx1ZTogYCdSRU1PVkVEJ2ApCgoqIGBSRU1PVkVEX0JZX1BFRVJgICh2YWx1ZTogYCdSRU1PVkVEX0JZX1BFRVInYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/NetworkConnectionsApi.md b/docs/NetworkConnectionsApi.md index 2154e6ee..ec623c5f 100644 --- a/docs/NetworkConnectionsApi.md +++ b/docs/NetworkConnectionsApi.md @@ -1,1183 +1 @@ -# fireblocks.NetworkConnectionsApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**check_third_party_routing**](NetworkConnectionsApi.md#check_third_party_routing) | **GET** /network_connections/{connectionId}/is_third_party_routing/{assetType} | Retrieve third-party network routing validation -[**create_network_connection**](NetworkConnectionsApi.md#create_network_connection) | **POST** /network_connections | Create a new network connection -[**create_network_id**](NetworkConnectionsApi.md#create_network_id) | **POST** /network_ids | Creates a new Network ID -[**delete_network_connection**](NetworkConnectionsApi.md#delete_network_connection) | **DELETE** /network_connections/{connectionId} | Delete a network connection by ID -[**delete_network_id**](NetworkConnectionsApi.md#delete_network_id) | **DELETE** /network_ids/{networkId} | Delete specific network ID. -[**get_network**](NetworkConnectionsApi.md#get_network) | **GET** /network_connections/{connectionId} | Get a network connection -[**get_network_connections**](NetworkConnectionsApi.md#get_network_connections) | **GET** /network_connections | List network connections -[**get_network_id**](NetworkConnectionsApi.md#get_network_id) | **GET** /network_ids/{networkId} | Return specific network ID. -[**get_network_ids**](NetworkConnectionsApi.md#get_network_ids) | **GET** /network_ids | Get all network IDs -[**get_routing_policy_asset_groups**](NetworkConnectionsApi.md#get_routing_policy_asset_groups) | **GET** /network_ids/routing_policy_asset_groups | Return all enabled routing policy asset groups -[**search_network_ids**](NetworkConnectionsApi.md#search_network_ids) | **GET** /network_ids/search | Get both local IDs and discoverable remote IDs -[**set_network_id_discoverability**](NetworkConnectionsApi.md#set_network_id_discoverability) | **PATCH** /network_ids/{networkId}/set_discoverability | Update network ID's discoverability. -[**set_network_id_name**](NetworkConnectionsApi.md#set_network_id_name) | **PATCH** /network_ids/{networkId}/set_name | Update network ID's name. -[**set_network_id_routing_policy**](NetworkConnectionsApi.md#set_network_id_routing_policy) | **PATCH** /network_ids/{networkId}/set_routing_policy | Update network id routing policy. -[**set_routing_policy**](NetworkConnectionsApi.md#set_routing_policy) | **PATCH** /network_connections/{connectionId}/set_routing_policy | Update network connection routing policy. - - -# **check_third_party_routing** -> ThirdPartyRouting check_third_party_routing(connection_id, asset_type) - -Retrieve third-party network routing validation - -The Fireblocks Network allows for flexibility around incoming deposits. A receiver can receive network deposits to locations other than Fireblocks. This endpoint validates whether future transactions are routed to the displayed recipient or to a 3rd party. - -### Example - - -```python -from fireblocks.models.third_party_routing import ThirdPartyRouting -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - connection_id = 'connection_id_example' # str | The ID of the network connection - asset_type = 'asset_type_example' # str | The destination asset type - - try: - # Retrieve third-party network routing validation - api_response = fireblocks.network_connections.check_third_party_routing(connection_id, asset_type).result() - print("The response of NetworkConnectionsApi->check_third_party_routing:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling NetworkConnectionsApi->check_third_party_routing: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **connection_id** | **str**| The ID of the network connection | - **asset_type** | **str**| The destination asset type | - -### Return type - -[**ThirdPartyRouting**](ThirdPartyRouting.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | result for the validation | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_network_connection** -> NetworkConnectionResponse create_network_connection(idempotency_key=idempotency_key, network_connection=network_connection) - -Create a new network connection - -Initiates a new network connection. -**Note:** This API call is subject to Flexible Routing Schemes. - -Your routing policy defines how your transactions are routed. -You can choose 1 of the 3 different schemes mentioned below for each asset type: - - **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail. - - **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one. - - **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing" - -Default Workspace Presets: - - Network Profile Crypto → **Custom** - - Network Profile FIAT → **None** - - Network Connection Crypto → **Default** - - Network Connection FIAT → **Default** - -Supported asset groups for routing police can be found at `/network_ids/routing_policy_asset_groups` - - - **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`). - - -### Example - - -```python -from fireblocks.models.network_connection import NetworkConnection -from fireblocks.models.network_connection_response import NetworkConnectionResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - network_connection = fireblocks.NetworkConnection() # NetworkConnection | (optional) - - try: - # Create a new network connection - api_response = fireblocks.network_connections.create_network_connection(idempotency_key=idempotency_key, network_connection=network_connection).result() - print("The response of NetworkConnectionsApi->create_network_connection:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling NetworkConnectionsApi->create_network_connection: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **network_connection** | [**NetworkConnection**](NetworkConnection.md)| | [optional] - -### Return type - -[**NetworkConnectionResponse**](NetworkConnectionResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | A Network Connection object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_network_id** -> NetworkIdResponse create_network_id(idempotency_key=idempotency_key, create_network_id_request=create_network_id_request) - -Creates a new Network ID - -Create a new Network ID. - -### Example - - -```python -from fireblocks.models.create_network_id_request import CreateNetworkIdRequest -from fireblocks.models.network_id_response import NetworkIdResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - create_network_id_request = fireblocks.CreateNetworkIdRequest() # CreateNetworkIdRequest | (optional) - - try: - # Creates a new Network ID - api_response = fireblocks.network_connections.create_network_id(idempotency_key=idempotency_key, create_network_id_request=create_network_id_request).result() - print("The response of NetworkConnectionsApi->create_network_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling NetworkConnectionsApi->create_network_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **create_network_id_request** | [**CreateNetworkIdRequest**](CreateNetworkIdRequest.md)| | [optional] - -### Return type - -[**NetworkIdResponse**](NetworkIdResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Returns the new network ID in your workspace | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **delete_network_connection** -> DeleteNetworkConnectionResponse delete_network_connection(connection_id) - -Delete a network connection by ID - -Deletes an existing network connection specified by its connection ID. - -### Example - - -```python -from fireblocks.models.delete_network_connection_response import DeleteNetworkConnectionResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - connection_id = 'connection_id_example' # str | The ID of the network connection to delete - - try: - # Delete a network connection by ID - api_response = fireblocks.network_connections.delete_network_connection(connection_id).result() - print("The response of NetworkConnectionsApi->delete_network_connection:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling NetworkConnectionsApi->delete_network_connection: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **connection_id** | **str**| The ID of the network connection to delete | - -### Return type - -[**DeleteNetworkConnectionResponse**](DeleteNetworkConnectionResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Network ID | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **delete_network_id** -> DeleteNetworkIdResponse delete_network_id(network_id) - -Delete specific network ID. - -Deletes a network by its ID. - -### Example - - -```python -from fireblocks.models.delete_network_id_response import DeleteNetworkIdResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - network_id = 'network_id_example' # str | The ID of the network - - try: - # Delete specific network ID. - api_response = fireblocks.network_connections.delete_network_id(network_id).result() - print("The response of NetworkConnectionsApi->delete_network_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling NetworkConnectionsApi->delete_network_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **network_id** | **str**| The ID of the network | - -### Return type - -[**DeleteNetworkIdResponse**](DeleteNetworkIdResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Network ID | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_network** -> NetworkConnectionResponse get_network(connection_id) - -Get a network connection - -Gets a network connection by ID. - -### Example - - -```python -from fireblocks.models.network_connection_response import NetworkConnectionResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - connection_id = 'connection_id_example' # str | The ID of the connection - - try: - # Get a network connection - api_response = fireblocks.network_connections.get_network(connection_id).result() - print("The response of NetworkConnectionsApi->get_network:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling NetworkConnectionsApi->get_network: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **connection_id** | **str**| The ID of the connection | - -### Return type - -[**NetworkConnectionResponse**](NetworkConnectionResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A network connection | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_network_connections** -> List[NetworkConnectionResponse] get_network_connections() - -List network connections - -Returns all network connections. - -**Note:** This API call is subject to Flexible Routing Schemes. - -Your routing policy defines how your transactions are routed. -You can choose 1 of the 3 different schemes mentioned below for each asset type: - - **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail. - - **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one. - - **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing" - -Default Workspace Presets: - - Network Profile Crypto → **Custom** - - Network Profile FIAT → **None** - - Network Connection Crypto → **Default** - - Network Connection FIAT → **Default** - -### Example - - -```python -from fireblocks.models.network_connection_response import NetworkConnectionResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # List network connections - api_response = fireblocks.network_connections.get_network_connections().result() - print("The response of NetworkConnectionsApi->get_network_connections:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling NetworkConnectionsApi->get_network_connections: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**List[NetworkConnectionResponse]**](NetworkConnectionResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A list of network connections | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_network_id** -> NetworkIdResponse get_network_id(network_id) - -Return specific network ID. - -Returns specific network ID. - -### Example - - -```python -from fireblocks.models.network_id_response import NetworkIdResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - network_id = 'network_id_example' # str | The ID of the network - - try: - # Return specific network ID. - api_response = fireblocks.network_connections.get_network_id(network_id).result() - print("The response of NetworkConnectionsApi->get_network_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling NetworkConnectionsApi->get_network_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **network_id** | **str**| The ID of the network | - -### Return type - -[**NetworkIdResponse**](NetworkIdResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Network ID | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_network_ids** -> List[NetworkIdResponse] get_network_ids() - -Get all network IDs - -Retrieves a list of all local and discoverable remote network IDs. - -### Example - - -```python -from fireblocks.models.network_id_response import NetworkIdResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Get all network IDs - api_response = fireblocks.network_connections.get_network_ids().result() - print("The response of NetworkConnectionsApi->get_network_ids:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling NetworkConnectionsApi->get_network_ids: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**List[NetworkIdResponse]**](NetworkIdResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A list of network IDs | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_routing_policy_asset_groups** -> List[str] get_routing_policy_asset_groups() - -Return all enabled routing policy asset groups - -Returns all enabled routing policy asset groups - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Return all enabled routing policy asset groups - api_response = fireblocks.network_connections.get_routing_policy_asset_groups().result() - print("The response of NetworkConnectionsApi->get_routing_policy_asset_groups:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling NetworkConnectionsApi->get_routing_policy_asset_groups: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -**List[str]** - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A list of enabled routing policy asset groups | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **search_network_ids** -> SearchNetworkIdsResponse search_network_ids(search=search, exclude_self=exclude_self, only_self=only_self, exclude_connected=exclude_connected, page_cursor=page_cursor, page_size=page_size) - -Get both local IDs and discoverable remote IDs - -Retrieves a list of all local and discoverable remote network IDs. Can be filtered. - - -### Example - - -```python -from fireblocks.models.search_network_ids_response import SearchNetworkIdsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - search = 'search_example' # str | Search string - displayName networkId. Optional (optional) - exclude_self = True # bool | Exclude your networkIds. Optional, default false (optional) - only_self = True # bool | Include just your networkIds. Optional, default false (optional) - exclude_connected = True # bool | Exclude connected networkIds. Optional, default false (optional) - page_cursor = 'page_cursor_example' # str | ID of the record after which to fetch $limit records (optional) - page_size = 50 # float | Number of records to fetch. By default, it is 50 (optional) (default to 50) - - try: - # Get both local IDs and discoverable remote IDs - api_response = fireblocks.network_connections.search_network_ids(search=search, exclude_self=exclude_self, only_self=only_self, exclude_connected=exclude_connected, page_cursor=page_cursor, page_size=page_size).result() - print("The response of NetworkConnectionsApi->search_network_ids:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling NetworkConnectionsApi->search_network_ids: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **search** | **str**| Search string - displayName networkId. Optional | [optional] - **exclude_self** | **bool**| Exclude your networkIds. Optional, default false | [optional] - **only_self** | **bool**| Include just your networkIds. Optional, default false | [optional] - **exclude_connected** | **bool**| Exclude connected networkIds. Optional, default false | [optional] - **page_cursor** | **str**| ID of the record after which to fetch $limit records | [optional] - **page_size** | **float**| Number of records to fetch. By default, it is 50 | [optional] [default to 50] - -### Return type - -[**SearchNetworkIdsResponse**](SearchNetworkIdsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A list of network IDs | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_network_id_discoverability** -> SetNetworkIdResponse set_network_id_discoverability(network_id, set_network_id_discoverability_request) - -Update network ID's discoverability. - -Update whether or not the network ID is discoverable by others. - -### Example - - -```python -from fireblocks.models.set_network_id_discoverability_request import SetNetworkIdDiscoverabilityRequest -from fireblocks.models.set_network_id_response import SetNetworkIdResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - network_id = 'network_id_example' # str | The ID of the network - set_network_id_discoverability_request = fireblocks.SetNetworkIdDiscoverabilityRequest() # SetNetworkIdDiscoverabilityRequest | - - try: - # Update network ID's discoverability. - api_response = fireblocks.network_connections.set_network_id_discoverability(network_id, set_network_id_discoverability_request).result() - print("The response of NetworkConnectionsApi->set_network_id_discoverability:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling NetworkConnectionsApi->set_network_id_discoverability: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **network_id** | **str**| The ID of the network | - **set_network_id_discoverability_request** | [**SetNetworkIdDiscoverabilityRequest**](SetNetworkIdDiscoverabilityRequest.md)| | - -### Return type - -[**SetNetworkIdResponse**](SetNetworkIdResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Network ID | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_network_id_name** -> SetNetworkIdResponse set_network_id_name(network_id, set_network_id_name_request) - -Update network ID's name. - -Updates name of a specified network ID. - -### Example - - -```python -from fireblocks.models.set_network_id_name_request import SetNetworkIdNameRequest -from fireblocks.models.set_network_id_response import SetNetworkIdResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - network_id = 'network_id_example' # str | The ID of the network - set_network_id_name_request = fireblocks.SetNetworkIdNameRequest() # SetNetworkIdNameRequest | - - try: - # Update network ID's name. - api_response = fireblocks.network_connections.set_network_id_name(network_id, set_network_id_name_request).result() - print("The response of NetworkConnectionsApi->set_network_id_name:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling NetworkConnectionsApi->set_network_id_name: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **network_id** | **str**| The ID of the network | - **set_network_id_name_request** | [**SetNetworkIdNameRequest**](SetNetworkIdNameRequest.md)| | - -### Return type - -[**SetNetworkIdResponse**](SetNetworkIdResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Network ID | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_network_id_routing_policy** -> SetNetworkIdResponse set_network_id_routing_policy(network_id, set_network_id_routing_policy_request=set_network_id_routing_policy_request) - -Update network id routing policy. - -Updates the routing policy of a specified network ID. - -### Example - - -```python -from fireblocks.models.set_network_id_response import SetNetworkIdResponse -from fireblocks.models.set_network_id_routing_policy_request import SetNetworkIdRoutingPolicyRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - network_id = 'network_id_example' # str | The ID of the network - set_network_id_routing_policy_request = fireblocks.SetNetworkIdRoutingPolicyRequest() # SetNetworkIdRoutingPolicyRequest | (optional) - - try: - # Update network id routing policy. - api_response = fireblocks.network_connections.set_network_id_routing_policy(network_id, set_network_id_routing_policy_request=set_network_id_routing_policy_request).result() - print("The response of NetworkConnectionsApi->set_network_id_routing_policy:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling NetworkConnectionsApi->set_network_id_routing_policy: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **network_id** | **str**| The ID of the network | - **set_network_id_routing_policy_request** | [**SetNetworkIdRoutingPolicyRequest**](SetNetworkIdRoutingPolicyRequest.md)| | [optional] - -### Return type - -[**SetNetworkIdResponse**](SetNetworkIdResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Network ID | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_routing_policy** -> SetRoutingPolicyResponse set_routing_policy(connection_id, set_routing_policy_request=set_routing_policy_request) - -Update network connection routing policy. - -Updates an existing network connection's routing policy. - -### Example - - -```python -from fireblocks.models.set_routing_policy_request import SetRoutingPolicyRequest -from fireblocks.models.set_routing_policy_response import SetRoutingPolicyResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - connection_id = 'connection_id_example' # str | The ID of the network connection - set_routing_policy_request = fireblocks.SetRoutingPolicyRequest() # SetRoutingPolicyRequest | (optional) - - try: - # Update network connection routing policy. - api_response = fireblocks.network_connections.set_routing_policy(connection_id, set_routing_policy_request=set_routing_policy_request).result() - print("The response of NetworkConnectionsApi->set_routing_policy:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling NetworkConnectionsApi->set_routing_policy: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **connection_id** | **str**| The ID of the network connection | - **set_routing_policy_request** | [**SetRoutingPolicyRequest**](SetRoutingPolicyRequest.md)| | [optional] - -### Return type - -[**SetRoutingPolicyResponse**](SetRoutingPolicyResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Network ID | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLk5ldHdvcmtDb25uZWN0aW9uc0FwaQoKQWxsIFVSSXMgYXJlIHJlbGF0aXZlIHRvICpodHRwczovL2FwaS5maXJlYmxvY2tzLmlvL3YxKgoKTWV0aG9kIHwgSFRUUCByZXF1ZXN0IHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tClsqKmNoZWNrX3RoaXJkX3BhcnR5X3JvdXRpbmcqKl0oTmV0d29ya0Nvbm5lY3Rpb25zQXBpLm1kI2NoZWNrX3RoaXJkX3BhcnR5X3JvdXRpbmcpIHwgKipHRVQqKiAvbmV0d29ya19jb25uZWN0aW9ucy97Y29ubmVjdGlvbklkfS9pc190aGlyZF9wYXJ0eV9yb3V0aW5nL3thc3NldFR5cGV9IHwgUmV0cmlldmUgdGhpcmQtcGFydHkgbmV0d29yayByb3V0aW5nIHZhbGlkYXRpb24KWyoqY3JlYXRlX25ldHdvcmtfY29ubmVjdGlvbioqXShOZXR3b3JrQ29ubmVjdGlvbnNBcGkubWQjY3JlYXRlX25ldHdvcmtfY29ubmVjdGlvbikgfCAqKlBPU1QqKiAvbmV0d29ya19jb25uZWN0aW9ucyB8IENyZWF0ZSBhIG5ldyBuZXR3b3JrIGNvbm5lY3Rpb24KWyoqY3JlYXRlX25ldHdvcmtfaWQqKl0oTmV0d29ya0Nvbm5lY3Rpb25zQXBpLm1kI2NyZWF0ZV9uZXR3b3JrX2lkKSB8ICoqUE9TVCoqIC9uZXR3b3JrX2lkcyB8IENyZWF0ZXMgYSBuZXcgTmV0d29yayBJRApbKipkZWxldGVfbmV0d29ya19jb25uZWN0aW9uKipdKE5ldHdvcmtDb25uZWN0aW9uc0FwaS5tZCNkZWxldGVfbmV0d29ya19jb25uZWN0aW9uKSB8ICoqREVMRVRFKiogL25ldHdvcmtfY29ubmVjdGlvbnMve2Nvbm5lY3Rpb25JZH0gfCBEZWxldGUgYSBuZXR3b3JrIGNvbm5lY3Rpb24gYnkgSUQKWyoqZGVsZXRlX25ldHdvcmtfaWQqKl0oTmV0d29ya0Nvbm5lY3Rpb25zQXBpLm1kI2RlbGV0ZV9uZXR3b3JrX2lkKSB8ICoqREVMRVRFKiogL25ldHdvcmtfaWRzL3tuZXR3b3JrSWR9IHwgRGVsZXRlIHNwZWNpZmljIG5ldHdvcmsgSUQuClsqKmdldF9uZXR3b3JrKipdKE5ldHdvcmtDb25uZWN0aW9uc0FwaS5tZCNnZXRfbmV0d29yaykgfCAqKkdFVCoqIC9uZXR3b3JrX2Nvbm5lY3Rpb25zL3tjb25uZWN0aW9uSWR9IHwgR2V0IGEgbmV0d29yayBjb25uZWN0aW9uClsqKmdldF9uZXR3b3JrX2Nvbm5lY3Rpb25zKipdKE5ldHdvcmtDb25uZWN0aW9uc0FwaS5tZCNnZXRfbmV0d29ya19jb25uZWN0aW9ucykgfCAqKkdFVCoqIC9uZXR3b3JrX2Nvbm5lY3Rpb25zIHwgTGlzdCBuZXR3b3JrIGNvbm5lY3Rpb25zClsqKmdldF9uZXR3b3JrX2lkKipdKE5ldHdvcmtDb25uZWN0aW9uc0FwaS5tZCNnZXRfbmV0d29ya19pZCkgfCAqKkdFVCoqIC9uZXR3b3JrX2lkcy97bmV0d29ya0lkfSB8IFJldHVybiBzcGVjaWZpYyBuZXR3b3JrIElELgpbKipnZXRfbmV0d29ya19pZHMqKl0oTmV0d29ya0Nvbm5lY3Rpb25zQXBpLm1kI2dldF9uZXR3b3JrX2lkcykgfCAqKkdFVCoqIC9uZXR3b3JrX2lkcyB8IEdldCBhbGwgbmV0d29yayBJRHMKWyoqZ2V0X3JvdXRpbmdfcG9saWN5X2Fzc2V0X2dyb3VwcyoqXShOZXR3b3JrQ29ubmVjdGlvbnNBcGkubWQjZ2V0X3JvdXRpbmdfcG9saWN5X2Fzc2V0X2dyb3VwcykgfCAqKkdFVCoqIC9uZXR3b3JrX2lkcy9yb3V0aW5nX3BvbGljeV9hc3NldF9ncm91cHMgfCBSZXR1cm4gYWxsIGVuYWJsZWQgcm91dGluZyBwb2xpY3kgYXNzZXQgZ3JvdXBzClsqKnNlYXJjaF9uZXR3b3JrX2lkcyoqXShOZXR3b3JrQ29ubmVjdGlvbnNBcGkubWQjc2VhcmNoX25ldHdvcmtfaWRzKSB8ICoqR0VUKiogL25ldHdvcmtfaWRzL3NlYXJjaCB8IEdldCBib3RoIGxvY2FsIElEcyBhbmQgZGlzY292ZXJhYmxlIHJlbW90ZSBJRHMKWyoqc2V0X25ldHdvcmtfaWRfZGlzY292ZXJhYmlsaXR5KipdKE5ldHdvcmtDb25uZWN0aW9uc0FwaS5tZCNzZXRfbmV0d29ya19pZF9kaXNjb3ZlcmFiaWxpdHkpIHwgKipQQVRDSCoqIC9uZXR3b3JrX2lkcy97bmV0d29ya0lkfS9zZXRfZGlzY292ZXJhYmlsaXR5IHwgVXBkYXRlIG5ldHdvcmsgSUQmIzM5O3MgZGlzY292ZXJhYmlsaXR5LgpbKipzZXRfbmV0d29ya19pZF9uYW1lKipdKE5ldHdvcmtDb25uZWN0aW9uc0FwaS5tZCNzZXRfbmV0d29ya19pZF9uYW1lKSB8ICoqUEFUQ0gqKiAvbmV0d29ya19pZHMve25ldHdvcmtJZH0vc2V0X25hbWUgfCBVcGRhdGUgbmV0d29yayBJRCYjMzk7cyBuYW1lLgpbKipzZXRfbmV0d29ya19pZF9yb3V0aW5nX3BvbGljeSoqXShOZXR3b3JrQ29ubmVjdGlvbnNBcGkubWQjc2V0X25ldHdvcmtfaWRfcm91dGluZ19wb2xpY3kpIHwgKipQQVRDSCoqIC9uZXR3b3JrX2lkcy97bmV0d29ya0lkfS9zZXRfcm91dGluZ19wb2xpY3kgfCBVcGRhdGUgbmV0d29yayBpZCByb3V0aW5nIHBvbGljeS4KWyoqc2V0X3JvdXRpbmdfcG9saWN5KipdKE5ldHdvcmtDb25uZWN0aW9uc0FwaS5tZCNzZXRfcm91dGluZ19wb2xpY3kpIHwgKipQQVRDSCoqIC9uZXR3b3JrX2Nvbm5lY3Rpb25zL3tjb25uZWN0aW9uSWR9L3NldF9yb3V0aW5nX3BvbGljeSB8IFVwZGF0ZSBuZXR3b3JrIGNvbm5lY3Rpb24gcm91dGluZyBwb2xpY3kuCgoKIyAqKmNoZWNrX3RoaXJkX3BhcnR5X3JvdXRpbmcqKgo+IFRoaXJkUGFydHlSb3V0aW5nIGNoZWNrX3RoaXJkX3BhcnR5X3JvdXRpbmcoY29ubmVjdGlvbl9pZCwgYXNzZXRfdHlwZSkKClJldHJpZXZlIHRoaXJkLXBhcnR5IG5ldHdvcmsgcm91dGluZyB2YWxpZGF0aW9uCgpUaGUgRmlyZWJsb2NrcyBOZXR3b3JrIGFsbG93cyBmb3IgZmxleGliaWxpdHkgYXJvdW5kIGluY29taW5nIGRlcG9zaXRzLiBBIHJlY2VpdmVyIGNhbiByZWNlaXZlIG5ldHdvcmsgZGVwb3NpdHMgdG8gbG9jYXRpb25zIG90aGVyIHRoYW4gRmlyZWJsb2Nrcy4gVGhpcyBlbmRwb2ludCB2YWxpZGF0ZXMgd2hldGhlciBmdXR1cmUgdHJhbnNhY3Rpb25zIGFyZSByb3V0ZWQgdG8gdGhlIGRpc3BsYXllZCByZWNpcGllbnQgb3IgdG8gYSAzcmQgcGFydHkuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRoaXJkX3BhcnR5X3JvdXRpbmcgaW1wb3J0IFRoaXJkUGFydHlSb3V0aW5nCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGNvbm5lY3Rpb25faWQgPSAnY29ubmVjdGlvbl9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgbmV0d29yayBjb25uZWN0aW9uCiAgICBhc3NldF90eXBlID0gJ2Fzc2V0X3R5cGVfZXhhbXBsZScgIyBzdHIgfCBUaGUgZGVzdGluYXRpb24gYXNzZXQgdHlwZQoKICAgIHRyeToKICAgICAgICAjIFJldHJpZXZlIHRoaXJkLXBhcnR5IG5ldHdvcmsgcm91dGluZyB2YWxpZGF0aW9uCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5uZXR3b3JrX2Nvbm5lY3Rpb25zLmNoZWNrX3RoaXJkX3BhcnR5X3JvdXRpbmcoY29ubmVjdGlvbl9pZCwgYXNzZXRfdHlwZSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIE5ldHdvcmtDb25uZWN0aW9uc0FwaS0+Y2hlY2tfdGhpcmRfcGFydHlfcm91dGluZzpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBOZXR3b3JrQ29ubmVjdGlvbnNBcGktPmNoZWNrX3RoaXJkX3BhcnR5X3JvdXRpbmc6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmNvbm5lY3Rpb25faWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgbmV0d29yayBjb25uZWN0aW9uIHwgCiAqKmFzc2V0X3R5cGUqKiB8ICoqc3RyKip8IFRoZSBkZXN0aW5hdGlvbiBhc3NldCB0eXBlIHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKlRoaXJkUGFydHlSb3V0aW5nKipdKFRoaXJkUGFydHlSb3V0aW5nLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgcmVzdWx0IGZvciB0aGUgdmFsaWRhdGlvbiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqY3JlYXRlX25ldHdvcmtfY29ubmVjdGlvbioqCj4gTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZSBjcmVhdGVfbmV0d29ya19jb25uZWN0aW9uKGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksIG5ldHdvcmtfY29ubmVjdGlvbj1uZXR3b3JrX2Nvbm5lY3Rpb24pCgpDcmVhdGUgYSBuZXcgbmV0d29yayBjb25uZWN0aW9uCgpJbml0aWF0ZXMgYSBuZXcgbmV0d29yayBjb25uZWN0aW9uLgoqKk5vdGU6KiogVGhpcyBBUEkgY2FsbCBpcyBzdWJqZWN0IHRvIEZsZXhpYmxlIFJvdXRpbmcgU2NoZW1lcy4KCllvdXIgcm91dGluZyBwb2xpY3kgZGVmaW5lcyBob3cgeW91ciB0cmFuc2FjdGlvbnMgYXJlIHJvdXRlZC4KWW91IGNhbiBjaG9vc2UgMSBvZiB0aGUgMyBkaWZmZXJlbnQgc2NoZW1lcyBtZW50aW9uZWQgYmVsb3cgZm9yIGVhY2ggYXNzZXQgdHlwZToKICAtICoqTm9uZSoqOyBEZWZpbmVzIHRoZSBwcm9maWxlIHJvdXRpbmcgdG8gbm8gZGVzdGluYXRpb24gZm9yIHRoYXQgYXNzZXQgdHlwZS4gSW5jb21pbmcgdHJhbnNhY3Rpb25zIHRvIGFzc2V0IHR5cGVzIHJvdXRlZCB0byBgTm9uZWAgd2lsbCBmYWlsLgogIC0gKipDdXN0b20qKjsgUm91dGUgdG8gYW4gYWNjb3VudCB0aGF0IHlvdSBjaG9vc2UuIElmIHlvdSByZW1vdmUgdGhlIGFjY291bnQsIGluY29taW5nIHRyYW5zYWN0aW9ucyB3aWxsIGZhaWwgdW50aWwgeW91IGNob29zZSBhbm90aGVyIG9uZS4KICAtICoqRGVmYXVsdCoqOyBVc2UgdGhlIHJvdXRpbmcgc3BlY2lmaWVkIGJ5IHRoZSBuZXR3b3JrIHByb2ZpbGUgdGhlIGNvbm5lY3Rpb24gaXMgY29ubmVjdGVkIHRvLiBUaGlzIHNjaGVtZSBpcyBhbHNvIHJlZmVycmVkIHRvIGFzICJQcm9maWxlIFJvdXRpbmciCgpEZWZhdWx0IFdvcmtzcGFjZSBQcmVzZXRzOgogIC0gTmV0d29yayBQcm9maWxlIENyeXB0byDihpIgKipDdXN0b20qKgogIC0gTmV0d29yayBQcm9maWxlIEZJQVQg4oaSICoqTm9uZSoqCiAgLSBOZXR3b3JrIENvbm5lY3Rpb24gQ3J5cHRvIOKGkiAqKkRlZmF1bHQqKgogIC0gTmV0d29yayBDb25uZWN0aW9uIEZJQVQg4oaSICoqRGVmYXVsdCoqCgpTdXBwb3J0ZWQgYXNzZXQgZ3JvdXBzIGZvciByb3V0aW5nIHBvbGljZSBjYW4gYmUgZm91bmQgYXQgYC9uZXR3b3JrX2lkcy9yb3V0aW5nX3BvbGljeV9hc3NldF9ncm91cHNgCgogICAgLSAqKk5vdGUqKjogQnkgZGVmYXVsdCwgQ3VzdG9tIHJvdXRpbmcgc2NoZW1lIHVzZXMgKGBkc3RJZGAgPSBgMGAsIGBkc3RUeXBlYCA9IGBWQVVMVGApLgoKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19jb25uZWN0aW9uIGltcG9ydCBOZXR3b3JrQ29ubmVjdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfY29ubmVjdGlvbl9yZXNwb25zZSBpbXBvcnQgTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCiAgICBuZXR3b3JrX2Nvbm5lY3Rpb24gPSBmaXJlYmxvY2tzLk5ldHdvcmtDb25uZWN0aW9uKCkgIyBOZXR3b3JrQ29ubmVjdGlvbiB8ICAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ3JlYXRlIGEgbmV3IG5ldHdvcmsgY29ubmVjdGlvbgogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MubmV0d29ya19jb25uZWN0aW9ucy5jcmVhdGVfbmV0d29ya19jb25uZWN0aW9uKGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksIG5ldHdvcmtfY29ubmVjdGlvbj1uZXR3b3JrX2Nvbm5lY3Rpb24pLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBOZXR3b3JrQ29ubmVjdGlvbnNBcGktPmNyZWF0ZV9uZXR3b3JrX2Nvbm5lY3Rpb246XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgTmV0d29ya0Nvbm5lY3Rpb25zQXBpLT5jcmVhdGVfbmV0d29ya19jb25uZWN0aW9uOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAogKipuZXR3b3JrX2Nvbm5lY3Rpb24qKiB8IFsqKk5ldHdvcmtDb25uZWN0aW9uKipdKE5ldHdvcmtDb25uZWN0aW9uLm1kKXwgIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZSoqXShOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBBIE5ldHdvcmsgQ29ubmVjdGlvbiBvYmplY3QgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmNyZWF0ZV9uZXR3b3JrX2lkKioKPiBOZXR3b3JrSWRSZXNwb25zZSBjcmVhdGVfbmV0d29ya19pZChpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCBjcmVhdGVfbmV0d29ya19pZF9yZXF1ZXN0PWNyZWF0ZV9uZXR3b3JrX2lkX3JlcXVlc3QpCgpDcmVhdGVzIGEgbmV3IE5ldHdvcmsgSUQKCkNyZWF0ZSBhIG5ldyBOZXR3b3JrIElELgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfbmV0d29ya19pZF9yZXF1ZXN0IGltcG9ydCBDcmVhdGVOZXR3b3JrSWRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19pZF9yZXNwb25zZSBpbXBvcnQgTmV0d29ya0lkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQogICAgY3JlYXRlX25ldHdvcmtfaWRfcmVxdWVzdCA9IGZpcmVibG9ja3MuQ3JlYXRlTmV0d29ya0lkUmVxdWVzdCgpICMgQ3JlYXRlTmV0d29ya0lkUmVxdWVzdCB8ICAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ3JlYXRlcyBhIG5ldyBOZXR3b3JrIElECiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5uZXR3b3JrX2Nvbm5lY3Rpb25zLmNyZWF0ZV9uZXR3b3JrX2lkKGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksIGNyZWF0ZV9uZXR3b3JrX2lkX3JlcXVlc3Q9Y3JlYXRlX25ldHdvcmtfaWRfcmVxdWVzdCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIE5ldHdvcmtDb25uZWN0aW9uc0FwaS0+Y3JlYXRlX25ldHdvcmtfaWQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgTmV0d29ya0Nvbm5lY3Rpb25zQXBpLT5jcmVhdGVfbmV0d29ya19pZDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKICoqY3JlYXRlX25ldHdvcmtfaWRfcmVxdWVzdCoqIHwgWyoqQ3JlYXRlTmV0d29ya0lkUmVxdWVzdCoqXShDcmVhdGVOZXR3b3JrSWRSZXF1ZXN0Lm1kKXwgIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqTmV0d29ya0lkUmVzcG9uc2UqKl0oTmV0d29ya0lkUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDEqKiB8IFJldHVybnMgdGhlIG5ldyBuZXR3b3JrIElEIGluIHlvdXIgd29ya3NwYWNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipkZWxldGVfbmV0d29ya19jb25uZWN0aW9uKioKPiBEZWxldGVOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlIGRlbGV0ZV9uZXR3b3JrX2Nvbm5lY3Rpb24oY29ubmVjdGlvbl9pZCkKCkRlbGV0ZSBhIG5ldHdvcmsgY29ubmVjdGlvbiBieSBJRAoKRGVsZXRlcyBhbiBleGlzdGluZyBuZXR3b3JrIGNvbm5lY3Rpb24gc3BlY2lmaWVkIGJ5IGl0cyBjb25uZWN0aW9uIElELgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZWxldGVfbmV0d29ya19jb25uZWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBEZWxldGVOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGNvbm5lY3Rpb25faWQgPSAnY29ubmVjdGlvbl9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgbmV0d29yayBjb25uZWN0aW9uIHRvIGRlbGV0ZQoKICAgIHRyeToKICAgICAgICAjIERlbGV0ZSBhIG5ldHdvcmsgY29ubmVjdGlvbiBieSBJRAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MubmV0d29ya19jb25uZWN0aW9ucy5kZWxldGVfbmV0d29ya19jb25uZWN0aW9uKGNvbm5lY3Rpb25faWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBOZXR3b3JrQ29ubmVjdGlvbnNBcGktPmRlbGV0ZV9uZXR3b3JrX2Nvbm5lY3Rpb246XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgTmV0d29ya0Nvbm5lY3Rpb25zQXBpLT5kZWxldGVfbmV0d29ya19jb25uZWN0aW9uOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjb25uZWN0aW9uX2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIG5ldHdvcmsgY29ubmVjdGlvbiB0byBkZWxldGUgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqRGVsZXRlTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZSoqXShEZWxldGVOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgTmV0d29yayBJRCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZGVsZXRlX25ldHdvcmtfaWQqKgo+IERlbGV0ZU5ldHdvcmtJZFJlc3BvbnNlIGRlbGV0ZV9uZXR3b3JrX2lkKG5ldHdvcmtfaWQpCgpEZWxldGUgc3BlY2lmaWMgbmV0d29yayBJRC4KCkRlbGV0ZXMgYSBuZXR3b3JrIGJ5IGl0cyBJRC4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVsZXRlX25ldHdvcmtfaWRfcmVzcG9uc2UgaW1wb3J0IERlbGV0ZU5ldHdvcmtJZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIG5ldHdvcmtfaWQgPSAnbmV0d29ya19pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgbmV0d29yawoKICAgIHRyeToKICAgICAgICAjIERlbGV0ZSBzcGVjaWZpYyBuZXR3b3JrIElELgogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MubmV0d29ya19jb25uZWN0aW9ucy5kZWxldGVfbmV0d29ya19pZChuZXR3b3JrX2lkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgTmV0d29ya0Nvbm5lY3Rpb25zQXBpLT5kZWxldGVfbmV0d29ya19pZDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBOZXR3b3JrQ29ubmVjdGlvbnNBcGktPmRlbGV0ZV9uZXR3b3JrX2lkOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipuZXR3b3JrX2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIG5ldHdvcmsgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqRGVsZXRlTmV0d29ya0lkUmVzcG9uc2UqKl0oRGVsZXRlTmV0d29ya0lkUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBOZXR3b3JrIElEIHwgIC0gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfbmV0d29yayoqCj4gTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZSBnZXRfbmV0d29yayhjb25uZWN0aW9uX2lkKQoKR2V0IGEgbmV0d29yayBjb25uZWN0aW9uCgpHZXRzIGEgbmV0d29yayBjb25uZWN0aW9uIGJ5IElELgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5uZXR3b3JrX2Nvbm5lY3Rpb25fcmVzcG9uc2UgaW1wb3J0IE5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY29ubmVjdGlvbl9pZCA9ICdjb25uZWN0aW9uX2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBjb25uZWN0aW9uCgogICAgdHJ5OgogICAgICAgICMgR2V0IGEgbmV0d29yayBjb25uZWN0aW9uCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5uZXR3b3JrX2Nvbm5lY3Rpb25zLmdldF9uZXR3b3JrKGNvbm5lY3Rpb25faWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBOZXR3b3JrQ29ubmVjdGlvbnNBcGktPmdldF9uZXR3b3JrOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIE5ldHdvcmtDb25uZWN0aW9uc0FwaS0+Z2V0X25ldHdvcms6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmNvbm5lY3Rpb25faWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgY29ubmVjdGlvbiB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlKipdKE5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBIG5ldHdvcmsgY29ubmVjdGlvbiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X25ldHdvcmtfY29ubmVjdGlvbnMqKgo+IExpc3RbTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZV0gZ2V0X25ldHdvcmtfY29ubmVjdGlvbnMoKQoKTGlzdCBuZXR3b3JrIGNvbm5lY3Rpb25zCgpSZXR1cm5zIGFsbCBuZXR3b3JrIGNvbm5lY3Rpb25zLgoKKipOb3RlOioqIFRoaXMgQVBJIGNhbGwgaXMgc3ViamVjdCB0byBGbGV4aWJsZSBSb3V0aW5nIFNjaGVtZXMuCgpZb3VyIHJvdXRpbmcgcG9saWN5IGRlZmluZXMgaG93IHlvdXIgdHJhbnNhY3Rpb25zIGFyZSByb3V0ZWQuCllvdSBjYW4gY2hvb3NlIDEgb2YgdGhlIDMgZGlmZmVyZW50IHNjaGVtZXMgbWVudGlvbmVkIGJlbG93IGZvciBlYWNoIGFzc2V0IHR5cGU6CiAgLSAqKk5vbmUqKjsgRGVmaW5lcyB0aGUgcHJvZmlsZSByb3V0aW5nIHRvIG5vIGRlc3RpbmF0aW9uIGZvciB0aGF0IGFzc2V0IHR5cGUuIEluY29taW5nIHRyYW5zYWN0aW9ucyB0byBhc3NldCB0eXBlcyByb3V0ZWQgdG8gYE5vbmVgIHdpbGwgZmFpbC4KICAtICoqQ3VzdG9tKio7IFJvdXRlIHRvIGFuIGFjY291bnQgdGhhdCB5b3UgY2hvb3NlLiBJZiB5b3UgcmVtb3ZlIHRoZSBhY2NvdW50LCBpbmNvbWluZyB0cmFuc2FjdGlvbnMgd2lsbCBmYWlsIHVudGlsIHlvdSBjaG9vc2UgYW5vdGhlciBvbmUuCiAgLSAqKkRlZmF1bHQqKjsgVXNlIHRoZSByb3V0aW5nIHNwZWNpZmllZCBieSB0aGUgbmV0d29yayBwcm9maWxlIHRoZSBjb25uZWN0aW9uIGlzIGNvbm5lY3RlZCB0by4gVGhpcyBzY2hlbWUgaXMgYWxzbyByZWZlcnJlZCB0byBhcyAiUHJvZmlsZSBSb3V0aW5nIgoKRGVmYXVsdCBXb3Jrc3BhY2UgUHJlc2V0czoKICAtIE5ldHdvcmsgUHJvZmlsZSBDcnlwdG8g4oaSICoqQ3VzdG9tKioKICAtIE5ldHdvcmsgUHJvZmlsZSBGSUFUIOKGkiAqKk5vbmUqKgogIC0gTmV0d29yayBDb25uZWN0aW9uIENyeXB0byDihpIgKipEZWZhdWx0KioKICAtIE5ldHdvcmsgQ29ubmVjdGlvbiBGSUFUIOKGkiAqKkRlZmF1bHQqKgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5uZXR3b3JrX2Nvbm5lY3Rpb25fcmVzcG9uc2UgaW1wb3J0IE5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgoKICAgIHRyeToKICAgICAgICAjIExpc3QgbmV0d29yayBjb25uZWN0aW9ucwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MubmV0d29ya19jb25uZWN0aW9ucy5nZXRfbmV0d29ya19jb25uZWN0aW9ucygpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBOZXR3b3JrQ29ubmVjdGlvbnNBcGktPmdldF9uZXR3b3JrX2Nvbm5lY3Rpb25zOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIE5ldHdvcmtDb25uZWN0aW9uc0FwaS0+Z2V0X25ldHdvcmtfY29ubmVjdGlvbnM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgpUaGlzIGVuZHBvaW50IGRvZXMgbm90IG5lZWQgYW55IHBhcmFtZXRlci4KCiMjIyBSZXR1cm4gdHlwZQoKWyoqTGlzdFtOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlXSoqXShOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQSBsaXN0IG9mIG5ldHdvcmsgY29ubmVjdGlvbnMgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9uZXR3b3JrX2lkKioKPiBOZXR3b3JrSWRSZXNwb25zZSBnZXRfbmV0d29ya19pZChuZXR3b3JrX2lkKQoKUmV0dXJuIHNwZWNpZmljIG5ldHdvcmsgSUQuCgpSZXR1cm5zIHNwZWNpZmljIG5ldHdvcmsgSUQuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfaWRfcmVzcG9uc2UgaW1wb3J0IE5ldHdvcmtJZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIG5ldHdvcmtfaWQgPSAnbmV0d29ya19pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgbmV0d29yawoKICAgIHRyeToKICAgICAgICAjIFJldHVybiBzcGVjaWZpYyBuZXR3b3JrIElELgogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MubmV0d29ya19jb25uZWN0aW9ucy5nZXRfbmV0d29ya19pZChuZXR3b3JrX2lkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgTmV0d29ya0Nvbm5lY3Rpb25zQXBpLT5nZXRfbmV0d29ya19pZDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBOZXR3b3JrQ29ubmVjdGlvbnNBcGktPmdldF9uZXR3b3JrX2lkOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipuZXR3b3JrX2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIG5ldHdvcmsgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqTmV0d29ya0lkUmVzcG9uc2UqKl0oTmV0d29ya0lkUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBOZXR3b3JrIElEIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfbmV0d29ya19pZHMqKgo+IExpc3RbTmV0d29ya0lkUmVzcG9uc2VdIGdldF9uZXR3b3JrX2lkcygpCgpHZXQgYWxsIG5ldHdvcmsgSURzCgpSZXRyaWV2ZXMgYSBsaXN0IG9mIGFsbCBsb2NhbCBhbmQgZGlzY292ZXJhYmxlIHJlbW90ZSBuZXR3b3JrIElEcy4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19pZF9yZXNwb25zZSBpbXBvcnQgTmV0d29ya0lkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgoKICAgIHRyeToKICAgICAgICAjIEdldCBhbGwgbmV0d29yayBJRHMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLm5ldHdvcmtfY29ubmVjdGlvbnMuZ2V0X25ldHdvcmtfaWRzKCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIE5ldHdvcmtDb25uZWN0aW9uc0FwaS0+Z2V0X25ldHdvcmtfaWRzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIE5ldHdvcmtDb25uZWN0aW9uc0FwaS0+Z2V0X25ldHdvcmtfaWRzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKVGhpcyBlbmRwb2ludCBkb2VzIG5vdCBuZWVkIGFueSBwYXJhbWV0ZXIuCgojIyMgUmV0dXJuIHR5cGUKClsqKkxpc3RbTmV0d29ya0lkUmVzcG9uc2VdKipdKE5ldHdvcmtJZFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQSBsaXN0IG9mIG5ldHdvcmsgSURzIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfcm91dGluZ19wb2xpY3lfYXNzZXRfZ3JvdXBzKioKPiBMaXN0W3N0cl0gZ2V0X3JvdXRpbmdfcG9saWN5X2Fzc2V0X2dyb3VwcygpCgpSZXR1cm4gYWxsIGVuYWJsZWQgcm91dGluZyBwb2xpY3kgYXNzZXQgZ3JvdXBzCgpSZXR1cm5zIGFsbCBlbmFibGVkIHJvdXRpbmcgcG9saWN5IGFzc2V0IGdyb3VwcwoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgoKICAgIHRyeToKICAgICAgICAjIFJldHVybiBhbGwgZW5hYmxlZCByb3V0aW5nIHBvbGljeSBhc3NldCBncm91cHMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLm5ldHdvcmtfY29ubmVjdGlvbnMuZ2V0X3JvdXRpbmdfcG9saWN5X2Fzc2V0X2dyb3VwcygpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBOZXR3b3JrQ29ubmVjdGlvbnNBcGktPmdldF9yb3V0aW5nX3BvbGljeV9hc3NldF9ncm91cHM6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgTmV0d29ya0Nvbm5lY3Rpb25zQXBpLT5nZXRfcm91dGluZ19wb2xpY3lfYXNzZXRfZ3JvdXBzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKVGhpcyBlbmRwb2ludCBkb2VzIG5vdCBuZWVkIGFueSBwYXJhbWV0ZXIuCgojIyMgUmV0dXJuIHR5cGUKCioqTGlzdFtzdHJdKioKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgbGlzdCBvZiBlbmFibGVkIHJvdXRpbmcgcG9saWN5IGFzc2V0IGdyb3VwcyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqc2VhcmNoX25ldHdvcmtfaWRzKioKPiBTZWFyY2hOZXR3b3JrSWRzUmVzcG9uc2Ugc2VhcmNoX25ldHdvcmtfaWRzKHNlYXJjaD1zZWFyY2gsIGV4Y2x1ZGVfc2VsZj1leGNsdWRlX3NlbGYsIG9ubHlfc2VsZj1vbmx5X3NlbGYsIGV4Y2x1ZGVfY29ubmVjdGVkPWV4Y2x1ZGVfY29ubmVjdGVkLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSkKCkdldCBib3RoIGxvY2FsIElEcyBhbmQgZGlzY292ZXJhYmxlIHJlbW90ZSBJRHMKClJldHJpZXZlcyBhIGxpc3Qgb2YgYWxsIGxvY2FsIGFuZCBkaXNjb3ZlcmFibGUgcmVtb3RlIG5ldHdvcmsgSURzLiBDYW4gYmUgZmlsdGVyZWQuCgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZWFyY2hfbmV0d29ya19pZHNfcmVzcG9uc2UgaW1wb3J0IFNlYXJjaE5ldHdvcmtJZHNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBzZWFyY2ggPSAnc2VhcmNoX2V4YW1wbGUnICMgc3RyIHwgU2VhcmNoIHN0cmluZyAtIGRpc3BsYXlOYW1lIG5ldHdvcmtJZC4gT3B0aW9uYWwgKG9wdGlvbmFsKQogICAgZXhjbHVkZV9zZWxmID0gVHJ1ZSAjIGJvb2wgfCBFeGNsdWRlIHlvdXIgbmV0d29ya0lkcy4gT3B0aW9uYWwsIGRlZmF1bHQgZmFsc2UgKG9wdGlvbmFsKQogICAgb25seV9zZWxmID0gVHJ1ZSAjIGJvb2wgfCBJbmNsdWRlIGp1c3QgeW91ciBuZXR3b3JrSWRzLiBPcHRpb25hbCwgZGVmYXVsdCBmYWxzZSAob3B0aW9uYWwpCiAgICBleGNsdWRlX2Nvbm5lY3RlZCA9IFRydWUgIyBib29sIHwgRXhjbHVkZSBjb25uZWN0ZWQgbmV0d29ya0lkcy4gT3B0aW9uYWwsIGRlZmF1bHQgZmFsc2UgKG9wdGlvbmFsKQogICAgcGFnZV9jdXJzb3IgPSAncGFnZV9jdXJzb3JfZXhhbXBsZScgIyBzdHIgfCBJRCBvZiB0aGUgcmVjb3JkIGFmdGVyIHdoaWNoIHRvIGZldGNoICRsaW1pdCByZWNvcmRzIChvcHRpb25hbCkKICAgIHBhZ2Vfc2l6ZSA9IDUwICMgZmxvYXQgfCBOdW1iZXIgb2YgcmVjb3JkcyB0byBmZXRjaC4gQnkgZGVmYXVsdCwgaXQgaXMgNTAgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byA1MCkKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgYm90aCBsb2NhbCBJRHMgYW5kIGRpc2NvdmVyYWJsZSByZW1vdGUgSURzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5uZXR3b3JrX2Nvbm5lY3Rpb25zLnNlYXJjaF9uZXR3b3JrX2lkcyhzZWFyY2g9c2VhcmNoLCBleGNsdWRlX3NlbGY9ZXhjbHVkZV9zZWxmLCBvbmx5X3NlbGY9b25seV9zZWxmLCBleGNsdWRlX2Nvbm5lY3RlZD1leGNsdWRlX2Nvbm5lY3RlZCwgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBOZXR3b3JrQ29ubmVjdGlvbnNBcGktPnNlYXJjaF9uZXR3b3JrX2lkczpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBOZXR3b3JrQ29ubmVjdGlvbnNBcGktPnNlYXJjaF9uZXR3b3JrX2lkczogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqc2VhcmNoKiogfCAqKnN0cioqfCBTZWFyY2ggc3RyaW5nIC0gZGlzcGxheU5hbWUgbmV0d29ya0lkLiBPcHRpb25hbCB8IFtvcHRpb25hbF0gCiAqKmV4Y2x1ZGVfc2VsZioqIHwgKipib29sKip8IEV4Y2x1ZGUgeW91ciBuZXR3b3JrSWRzLiBPcHRpb25hbCwgZGVmYXVsdCBmYWxzZSB8IFtvcHRpb25hbF0gCiAqKm9ubHlfc2VsZioqIHwgKipib29sKip8IEluY2x1ZGUganVzdCB5b3VyIG5ldHdvcmtJZHMuIE9wdGlvbmFsLCBkZWZhdWx0IGZhbHNlIHwgW29wdGlvbmFsXSAKICoqZXhjbHVkZV9jb25uZWN0ZWQqKiB8ICoqYm9vbCoqfCBFeGNsdWRlIGNvbm5lY3RlZCBuZXR3b3JrSWRzLiBPcHRpb25hbCwgZGVmYXVsdCBmYWxzZSB8IFtvcHRpb25hbF0gCiAqKnBhZ2VfY3Vyc29yKiogfCAqKnN0cioqfCBJRCBvZiB0aGUgcmVjb3JkIGFmdGVyIHdoaWNoIHRvIGZldGNoICRsaW1pdCByZWNvcmRzIHwgW29wdGlvbmFsXSAKICoqcGFnZV9zaXplKiogfCAqKmZsb2F0Kip8IE51bWJlciBvZiByZWNvcmRzIHRvIGZldGNoLiBCeSBkZWZhdWx0LCBpdCBpcyA1MCB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gNTBdCgojIyMgUmV0dXJuIHR5cGUKClsqKlNlYXJjaE5ldHdvcmtJZHNSZXNwb25zZSoqXShTZWFyY2hOZXR3b3JrSWRzUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBIGxpc3Qgb2YgbmV0d29yayBJRHMgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnNldF9uZXR3b3JrX2lkX2Rpc2NvdmVyYWJpbGl0eSoqCj4gU2V0TmV0d29ya0lkUmVzcG9uc2Ugc2V0X25ldHdvcmtfaWRfZGlzY292ZXJhYmlsaXR5KG5ldHdvcmtfaWQsIHNldF9uZXR3b3JrX2lkX2Rpc2NvdmVyYWJpbGl0eV9yZXF1ZXN0KQoKVXBkYXRlIG5ldHdvcmsgSUQncyBkaXNjb3ZlcmFiaWxpdHkuCgpVcGRhdGUgd2hldGhlciBvciBub3QgdGhlIG5ldHdvcmsgSUQgaXMgZGlzY292ZXJhYmxlIGJ5IG90aGVycy4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X25ldHdvcmtfaWRfZGlzY292ZXJhYmlsaXR5X3JlcXVlc3QgaW1wb3J0IFNldE5ldHdvcmtJZERpc2NvdmVyYWJpbGl0eVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfbmV0d29ya19pZF9yZXNwb25zZSBpbXBvcnQgU2V0TmV0d29ya0lkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgbmV0d29ya19pZCA9ICduZXR3b3JrX2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBuZXR3b3JrCiAgICBzZXRfbmV0d29ya19pZF9kaXNjb3ZlcmFiaWxpdHlfcmVxdWVzdCA9IGZpcmVibG9ja3MuU2V0TmV0d29ya0lkRGlzY292ZXJhYmlsaXR5UmVxdWVzdCgpICMgU2V0TmV0d29ya0lkRGlzY292ZXJhYmlsaXR5UmVxdWVzdCB8IAoKICAgIHRyeToKICAgICAgICAjIFVwZGF0ZSBuZXR3b3JrIElEJ3MgZGlzY292ZXJhYmlsaXR5LgogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MubmV0d29ya19jb25uZWN0aW9ucy5zZXRfbmV0d29ya19pZF9kaXNjb3ZlcmFiaWxpdHkobmV0d29ya19pZCwgc2V0X25ldHdvcmtfaWRfZGlzY292ZXJhYmlsaXR5X3JlcXVlc3QpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBOZXR3b3JrQ29ubmVjdGlvbnNBcGktPnNldF9uZXR3b3JrX2lkX2Rpc2NvdmVyYWJpbGl0eTpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBOZXR3b3JrQ29ubmVjdGlvbnNBcGktPnNldF9uZXR3b3JrX2lkX2Rpc2NvdmVyYWJpbGl0eTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqbmV0d29ya19pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSBuZXR3b3JrIHwgCiAqKnNldF9uZXR3b3JrX2lkX2Rpc2NvdmVyYWJpbGl0eV9yZXF1ZXN0KiogfCBbKipTZXROZXR3b3JrSWREaXNjb3ZlcmFiaWxpdHlSZXF1ZXN0KipdKFNldE5ldHdvcmtJZERpc2NvdmVyYWJpbGl0eVJlcXVlc3QubWQpfCAgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqU2V0TmV0d29ya0lkUmVzcG9uc2UqKl0oU2V0TmV0d29ya0lkUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IE5ldHdvcmsgSUQgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnNldF9uZXR3b3JrX2lkX25hbWUqKgo+IFNldE5ldHdvcmtJZFJlc3BvbnNlIHNldF9uZXR3b3JrX2lkX25hbWUobmV0d29ya19pZCwgc2V0X25ldHdvcmtfaWRfbmFtZV9yZXF1ZXN0KQoKVXBkYXRlIG5ldHdvcmsgSUQncyBuYW1lLgoKVXBkYXRlcyBuYW1lIG9mIGEgc3BlY2lmaWVkIG5ldHdvcmsgSUQuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9uZXR3b3JrX2lkX25hbWVfcmVxdWVzdCBpbXBvcnQgU2V0TmV0d29ya0lkTmFtZVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfbmV0d29ya19pZF9yZXNwb25zZSBpbXBvcnQgU2V0TmV0d29ya0lkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgbmV0d29ya19pZCA9ICduZXR3b3JrX2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBuZXR3b3JrCiAgICBzZXRfbmV0d29ya19pZF9uYW1lX3JlcXVlc3QgPSBmaXJlYmxvY2tzLlNldE5ldHdvcmtJZE5hbWVSZXF1ZXN0KCkgIyBTZXROZXR3b3JrSWROYW1lUmVxdWVzdCB8IAoKICAgIHRyeToKICAgICAgICAjIFVwZGF0ZSBuZXR3b3JrIElEJ3MgbmFtZS4KICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLm5ldHdvcmtfY29ubmVjdGlvbnMuc2V0X25ldHdvcmtfaWRfbmFtZShuZXR3b3JrX2lkLCBzZXRfbmV0d29ya19pZF9uYW1lX3JlcXVlc3QpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBOZXR3b3JrQ29ubmVjdGlvbnNBcGktPnNldF9uZXR3b3JrX2lkX25hbWU6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgTmV0d29ya0Nvbm5lY3Rpb25zQXBpLT5zZXRfbmV0d29ya19pZF9uYW1lOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipuZXR3b3JrX2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIG5ldHdvcmsgfCAKICoqc2V0X25ldHdvcmtfaWRfbmFtZV9yZXF1ZXN0KiogfCBbKipTZXROZXR3b3JrSWROYW1lUmVxdWVzdCoqXShTZXROZXR3b3JrSWROYW1lUmVxdWVzdC5tZCl8ICB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipTZXROZXR3b3JrSWRSZXNwb25zZSoqXShTZXROZXR3b3JrSWRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgTmV0d29yayBJRCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqc2V0X25ldHdvcmtfaWRfcm91dGluZ19wb2xpY3kqKgo+IFNldE5ldHdvcmtJZFJlc3BvbnNlIHNldF9uZXR3b3JrX2lkX3JvdXRpbmdfcG9saWN5KG5ldHdvcmtfaWQsIHNldF9uZXR3b3JrX2lkX3JvdXRpbmdfcG9saWN5X3JlcXVlc3Q9c2V0X25ldHdvcmtfaWRfcm91dGluZ19wb2xpY3lfcmVxdWVzdCkKClVwZGF0ZSBuZXR3b3JrIGlkIHJvdXRpbmcgcG9saWN5LgoKVXBkYXRlcyB0aGUgcm91dGluZyBwb2xpY3kgb2YgYSBzcGVjaWZpZWQgbmV0d29yayBJRC4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X25ldHdvcmtfaWRfcmVzcG9uc2UgaW1wb3J0IFNldE5ldHdvcmtJZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X25ldHdvcmtfaWRfcm91dGluZ19wb2xpY3lfcmVxdWVzdCBpbXBvcnQgU2V0TmV0d29ya0lkUm91dGluZ1BvbGljeVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgbmV0d29ya19pZCA9ICduZXR3b3JrX2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBuZXR3b3JrCiAgICBzZXRfbmV0d29ya19pZF9yb3V0aW5nX3BvbGljeV9yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5TZXROZXR3b3JrSWRSb3V0aW5nUG9saWN5UmVxdWVzdCgpICMgU2V0TmV0d29ya0lkUm91dGluZ1BvbGljeVJlcXVlc3QgfCAgKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIFVwZGF0ZSBuZXR3b3JrIGlkIHJvdXRpbmcgcG9saWN5LgogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MubmV0d29ya19jb25uZWN0aW9ucy5zZXRfbmV0d29ya19pZF9yb3V0aW5nX3BvbGljeShuZXR3b3JrX2lkLCBzZXRfbmV0d29ya19pZF9yb3V0aW5nX3BvbGljeV9yZXF1ZXN0PXNldF9uZXR3b3JrX2lkX3JvdXRpbmdfcG9saWN5X3JlcXVlc3QpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBOZXR3b3JrQ29ubmVjdGlvbnNBcGktPnNldF9uZXR3b3JrX2lkX3JvdXRpbmdfcG9saWN5OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIE5ldHdvcmtDb25uZWN0aW9uc0FwaS0+c2V0X25ldHdvcmtfaWRfcm91dGluZ19wb2xpY3k6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKm5ldHdvcmtfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgbmV0d29yayB8IAogKipzZXRfbmV0d29ya19pZF9yb3V0aW5nX3BvbGljeV9yZXF1ZXN0KiogfCBbKipTZXROZXR3b3JrSWRSb3V0aW5nUG9saWN5UmVxdWVzdCoqXShTZXROZXR3b3JrSWRSb3V0aW5nUG9saWN5UmVxdWVzdC5tZCl8ICB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlNldE5ldHdvcmtJZFJlc3BvbnNlKipdKFNldE5ldHdvcmtJZFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBOZXR3b3JrIElEIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipzZXRfcm91dGluZ19wb2xpY3kqKgo+IFNldFJvdXRpbmdQb2xpY3lSZXNwb25zZSBzZXRfcm91dGluZ19wb2xpY3koY29ubmVjdGlvbl9pZCwgc2V0X3JvdXRpbmdfcG9saWN5X3JlcXVlc3Q9c2V0X3JvdXRpbmdfcG9saWN5X3JlcXVlc3QpCgpVcGRhdGUgbmV0d29yayBjb25uZWN0aW9uIHJvdXRpbmcgcG9saWN5LgoKVXBkYXRlcyBhbiBleGlzdGluZyBuZXR3b3JrIGNvbm5lY3Rpb24ncyByb3V0aW5nIHBvbGljeS4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X3JvdXRpbmdfcG9saWN5X3JlcXVlc3QgaW1wb3J0IFNldFJvdXRpbmdQb2xpY3lSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X3JvdXRpbmdfcG9saWN5X3Jlc3BvbnNlIGltcG9ydCBTZXRSb3V0aW5nUG9saWN5UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY29ubmVjdGlvbl9pZCA9ICdjb25uZWN0aW9uX2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBuZXR3b3JrIGNvbm5lY3Rpb24KICAgIHNldF9yb3V0aW5nX3BvbGljeV9yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5TZXRSb3V0aW5nUG9saWN5UmVxdWVzdCgpICMgU2V0Um91dGluZ1BvbGljeVJlcXVlc3QgfCAgKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIFVwZGF0ZSBuZXR3b3JrIGNvbm5lY3Rpb24gcm91dGluZyBwb2xpY3kuCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5uZXR3b3JrX2Nvbm5lY3Rpb25zLnNldF9yb3V0aW5nX3BvbGljeShjb25uZWN0aW9uX2lkLCBzZXRfcm91dGluZ19wb2xpY3lfcmVxdWVzdD1zZXRfcm91dGluZ19wb2xpY3lfcmVxdWVzdCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIE5ldHdvcmtDb25uZWN0aW9uc0FwaS0+c2V0X3JvdXRpbmdfcG9saWN5OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIE5ldHdvcmtDb25uZWN0aW9uc0FwaS0+c2V0X3JvdXRpbmdfcG9saWN5OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjb25uZWN0aW9uX2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIG5ldHdvcmsgY29ubmVjdGlvbiB8IAogKipzZXRfcm91dGluZ19wb2xpY3lfcmVxdWVzdCoqIHwgWyoqU2V0Um91dGluZ1BvbGljeVJlcXVlc3QqKl0oU2V0Um91dGluZ1BvbGljeVJlcXVlc3QubWQpfCAgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipTZXRSb3V0aW5nUG9saWN5UmVzcG9uc2UqKl0oU2V0Um91dGluZ1BvbGljeVJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBOZXR3b3JrIElEIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCg== \ No newline at end of file diff --git a/docs/NetworkFee.md b/docs/NetworkFee.md index 1c8abf47..dcadb958 100644 --- a/docs/NetworkFee.md +++ b/docs/NetworkFee.md @@ -1,33 +1 @@ -# NetworkFee - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**fee_per_byte** | **str** | | [optional] -**gas_price** | **str** | | [optional] -**network_fee** | **str** | | [optional] -**base_fee** | **str** | (optional) Base Fee according to EIP-1559 (ETH assets) | [optional] -**priority_fee** | **str** | (optional) Priority Fee according to EIP-1559 (ETH assets) | [optional] - -## Example - -```python -from fireblocks.models.network_fee import NetworkFee - -# TODO update the JSON string below -json = "{}" -# create an instance of NetworkFee from a JSON string -network_fee_instance = NetworkFee.from_json(json) -# print the JSON string representation of the object -print(NetworkFee.to_json()) - -# convert the object into a dict -network_fee_dict = network_fee_instance.to_dict() -# create an instance of NetworkFee from a dict -network_fee_from_dict = NetworkFee.from_dict(network_fee_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBOZXR3b3JrRmVlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmZlZV9wZXJfYnl0ZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqZ2FzX3ByaWNlKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipuZXR3b3JrX2ZlZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqYmFzZV9mZWUqKiB8ICoqc3RyKiogfCAob3B0aW9uYWwpIEJhc2UgRmVlIGFjY29yZGluZyB0byBFSVAtMTU1OSAoRVRIIGFzc2V0cykgfCBbb3B0aW9uYWxdIAoqKnByaW9yaXR5X2ZlZSoqIHwgKipzdHIqKiB8IChvcHRpb25hbCkgUHJpb3JpdHkgRmVlIGFjY29yZGluZyB0byBFSVAtMTU1OSAoRVRIIGFzc2V0cykgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19mZWUgaW1wb3J0IE5ldHdvcmtGZWUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE5ldHdvcmtGZWUgZnJvbSBhIEpTT04gc3RyaW5nCm5ldHdvcmtfZmVlX2luc3RhbmNlID0gTmV0d29ya0ZlZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChOZXR3b3JrRmVlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cm5ldHdvcmtfZmVlX2RpY3QgPSBuZXR3b3JrX2ZlZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTmV0d29ya0ZlZSBmcm9tIGEgZGljdApuZXR3b3JrX2ZlZV9mcm9tX2RpY3QgPSBOZXR3b3JrRmVlLmZyb21fZGljdChuZXR3b3JrX2ZlZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/NetworkId.md b/docs/NetworkId.md index 6a548746..00bea690 100644 --- a/docs/NetworkId.md +++ b/docs/NetworkId.md @@ -1,30 +1 @@ -# NetworkId - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | -**name** | **str** | | - -## Example - -```python -from fireblocks.models.network_id import NetworkId - -# TODO update the JSON string below -json = "{}" -# create an instance of NetworkId from a JSON string -network_id_instance = NetworkId.from_json(json) -# print the JSON string representation of the object -print(NetworkId.to_json()) - -# convert the object into a dict -network_id_dict = network_id_instance.to_dict() -# create an instance of NetworkId from a dict -network_id_from_dict = NetworkId.from_dict(network_id_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBOZXR3b3JrSWQKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCAgfCAKKipuYW1lKiogfCAqKnN0cioqIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5uZXR3b3JrX2lkIGltcG9ydCBOZXR3b3JrSWQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE5ldHdvcmtJZCBmcm9tIGEgSlNPTiBzdHJpbmcKbmV0d29ya19pZF9pbnN0YW5jZSA9IE5ldHdvcmtJZC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChOZXR3b3JrSWQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbmV0d29ya19pZF9kaWN0ID0gbmV0d29ya19pZF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTmV0d29ya0lkIGZyb20gYSBkaWN0Cm5ldHdvcmtfaWRfZnJvbV9kaWN0ID0gTmV0d29ya0lkLmZyb21fZGljdChuZXR3b3JrX2lkX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/NetworkIdResponse.md b/docs/NetworkIdResponse.md index 906bcab9..6d57b620 100644 --- a/docs/NetworkIdResponse.md +++ b/docs/NetworkIdResponse.md @@ -1,32 +1 @@ -# NetworkIdResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**routing_policy** | [**Dict[str, NetworkIdRoutingPolicyValue]**](NetworkIdRoutingPolicyValue.md) | | [optional] -**is_discoverable** | **bool** | The specific network is discoverable. | [optional] -**id** | **str** | The specific network id | [optional] -**name** | **str** | The specific network name | [optional] - -## Example - -```python -from fireblocks.models.network_id_response import NetworkIdResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of NetworkIdResponse from a JSON string -network_id_response_instance = NetworkIdResponse.from_json(json) -# print the JSON string representation of the object -print(NetworkIdResponse.to_json()) - -# convert the object into a dict -network_id_response_dict = network_id_response_instance.to_dict() -# create an instance of NetworkIdResponse from a dict -network_id_response_from_dict = NetworkIdResponse.from_dict(network_id_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBOZXR3b3JrSWRSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipyb3V0aW5nX3BvbGljeSoqIHwgWyoqRGljdFtzdHIsIE5ldHdvcmtJZFJvdXRpbmdQb2xpY3lWYWx1ZV0qKl0oTmV0d29ya0lkUm91dGluZ1BvbGljeVZhbHVlLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqaXNfZGlzY292ZXJhYmxlKiogfCAqKmJvb2wqKiB8IFRoZSBzcGVjaWZpYyBuZXR3b3JrIGlzIGRpc2NvdmVyYWJsZS4gfCBbb3B0aW9uYWxdIAoqKmlkKiogfCAqKnN0cioqIHwgVGhlIHNwZWNpZmljIG5ldHdvcmsgaWQgfCBbb3B0aW9uYWxdIAoqKm5hbWUqKiB8ICoqc3RyKiogfCBUaGUgc3BlY2lmaWMgbmV0d29yayBuYW1lIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfaWRfcmVzcG9uc2UgaW1wb3J0IE5ldHdvcmtJZFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOZXR3b3JrSWRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKbmV0d29ya19pZF9yZXNwb25zZV9pbnN0YW5jZSA9IE5ldHdvcmtJZFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KE5ldHdvcmtJZFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cm5ldHdvcmtfaWRfcmVzcG9uc2VfZGljdCA9IG5ldHdvcmtfaWRfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE5ldHdvcmtJZFJlc3BvbnNlIGZyb20gYSBkaWN0Cm5ldHdvcmtfaWRfcmVzcG9uc2VfZnJvbV9kaWN0ID0gTmV0d29ya0lkUmVzcG9uc2UuZnJvbV9kaWN0KG5ldHdvcmtfaWRfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/NetworkIdRoutingPolicyValue.md b/docs/NetworkIdRoutingPolicyValue.md index 94428b14..f4563ee7 100644 --- a/docs/NetworkIdRoutingPolicyValue.md +++ b/docs/NetworkIdRoutingPolicyValue.md @@ -1,31 +1 @@ -# NetworkIdRoutingPolicyValue - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**scheme** | **str** | No network routing logic. | -**dst_type** | **str** | The account the funds are being sent to. | -**dst_id** | **str** | The ID of the account the funds are being sent to. | - -## Example - -```python -from fireblocks.models.network_id_routing_policy_value import NetworkIdRoutingPolicyValue - -# TODO update the JSON string below -json = "{}" -# create an instance of NetworkIdRoutingPolicyValue from a JSON string -network_id_routing_policy_value_instance = NetworkIdRoutingPolicyValue.from_json(json) -# print the JSON string representation of the object -print(NetworkIdRoutingPolicyValue.to_json()) - -# convert the object into a dict -network_id_routing_policy_value_dict = network_id_routing_policy_value_instance.to_dict() -# create an instance of NetworkIdRoutingPolicyValue from a dict -network_id_routing_policy_value_from_dict = NetworkIdRoutingPolicyValue.from_dict(network_id_routing_policy_value_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBOZXR3b3JrSWRSb3V0aW5nUG9saWN5VmFsdWUKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc2NoZW1lKiogfCAqKnN0cioqIHwgTm8gbmV0d29yayByb3V0aW5nIGxvZ2ljLiB8IAoqKmRzdF90eXBlKiogfCAqKnN0cioqIHwgVGhlIGFjY291bnQgdGhlIGZ1bmRzIGFyZSBiZWluZyBzZW50IHRvLiB8IAoqKmRzdF9pZCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgYWNjb3VudCB0aGUgZnVuZHMgYXJlIGJlaW5nIHNlbnQgdG8uIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5uZXR3b3JrX2lkX3JvdXRpbmdfcG9saWN5X3ZhbHVlIGltcG9ydCBOZXR3b3JrSWRSb3V0aW5nUG9saWN5VmFsdWUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE5ldHdvcmtJZFJvdXRpbmdQb2xpY3lWYWx1ZSBmcm9tIGEgSlNPTiBzdHJpbmcKbmV0d29ya19pZF9yb3V0aW5nX3BvbGljeV92YWx1ZV9pbnN0YW5jZSA9IE5ldHdvcmtJZFJvdXRpbmdQb2xpY3lWYWx1ZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChOZXR3b3JrSWRSb3V0aW5nUG9saWN5VmFsdWUudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbmV0d29ya19pZF9yb3V0aW5nX3BvbGljeV92YWx1ZV9kaWN0ID0gbmV0d29ya19pZF9yb3V0aW5nX3BvbGljeV92YWx1ZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTmV0d29ya0lkUm91dGluZ1BvbGljeVZhbHVlIGZyb20gYSBkaWN0Cm5ldHdvcmtfaWRfcm91dGluZ19wb2xpY3lfdmFsdWVfZnJvbV9kaWN0ID0gTmV0d29ya0lkUm91dGluZ1BvbGljeVZhbHVlLmZyb21fZGljdChuZXR3b3JrX2lkX3JvdXRpbmdfcG9saWN5X3ZhbHVlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/NetworkRecord.md b/docs/NetworkRecord.md index f0225056..156def87 100644 --- a/docs/NetworkRecord.md +++ b/docs/NetworkRecord.md @@ -1,39 +1 @@ -# NetworkRecord - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**source** | [**SourceTransferPeerPathResponse**](SourceTransferPeerPathResponse.md) | | [optional] -**destination** | [**DestinationTransferPeerPathResponse**](DestinationTransferPeerPathResponse.md) | | [optional] -**tx_hash** | **str** | | [optional] -**network_fee** | **str** | | [optional] -**asset_id** | **str** | | [optional] -**net_amount** | **str** | The net amount of the transaction, after fee deduction | [optional] -**is_dropped** | **bool** | | [optional] -**type** | **str** | | [optional] -**destination_address** | **str** | | [optional] -**amount_usd** | **str** | | [optional] -**reward_info** | [**RewardInfo**](RewardInfo.md) | | [optional] - -## Example - -```python -from fireblocks.models.network_record import NetworkRecord - -# TODO update the JSON string below -json = "{}" -# create an instance of NetworkRecord from a JSON string -network_record_instance = NetworkRecord.from_json(json) -# print the JSON string representation of the object -print(NetworkRecord.to_json()) - -# convert the object into a dict -network_record_dict = network_record_instance.to_dict() -# create an instance of NetworkRecord from a dict -network_record_from_dict = NetworkRecord.from_dict(network_record_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBOZXR3b3JrUmVjb3JkCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnNvdXJjZSoqIHwgWyoqU291cmNlVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlKipdKFNvdXJjZVRyYW5zZmVyUGVlclBhdGhSZXNwb25zZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRlc3RpbmF0aW9uKiogfCBbKipEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGhSZXNwb25zZSoqXShEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGhSZXNwb25zZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnR4X2hhc2gqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKm5ldHdvcmtfZmVlKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKiphc3NldF9pZCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqbmV0X2Ftb3VudCoqIHwgKipzdHIqKiB8IFRoZSBuZXQgYW1vdW50IG9mIHRoZSB0cmFuc2FjdGlvbiwgYWZ0ZXIgZmVlIGRlZHVjdGlvbiB8IFtvcHRpb25hbF0gCioqaXNfZHJvcHBlZCoqIHwgKipib29sKiogfCAgfCBbb3B0aW9uYWxdIAoqKnR5cGUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmRlc3RpbmF0aW9uX2FkZHJlc3MqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFtb3VudF91c2QqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKnJld2FyZF9pbmZvKiogfCBbKipSZXdhcmRJbmZvKipdKFJld2FyZEluZm8ubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfcmVjb3JkIGltcG9ydCBOZXR3b3JrUmVjb3JkCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOZXR3b3JrUmVjb3JkIGZyb20gYSBKU09OIHN0cmluZwpuZXR3b3JrX3JlY29yZF9pbnN0YW5jZSA9IE5ldHdvcmtSZWNvcmQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoTmV0d29ya1JlY29yZC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApuZXR3b3JrX3JlY29yZF9kaWN0ID0gbmV0d29ya19yZWNvcmRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE5ldHdvcmtSZWNvcmQgZnJvbSBhIGRpY3QKbmV0d29ya19yZWNvcmRfZnJvbV9kaWN0ID0gTmV0d29ya1JlY29yZC5mcm9tX2RpY3QobmV0d29ya19yZWNvcmRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/NewAddress.md b/docs/NewAddress.md index fe288a79..bef3efb2 100644 --- a/docs/NewAddress.md +++ b/docs/NewAddress.md @@ -1,31 +1 @@ -# NewAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**address** | **str** | The address string. | -**index** | **int** | The index of the address in the list. | -**description** | **str** | A description of the address. | - -## Example - -```python -from fireblocks.models.new_address import NewAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of NewAddress from a JSON string -new_address_instance = NewAddress.from_json(json) -# print the JSON string representation of the object -print(NewAddress.to_json()) - -# convert the object into a dict -new_address_dict = new_address_instance.to_dict() -# create an instance of NewAddress from a dict -new_address_from_dict = NewAddress.from_dict(new_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBOZXdBZGRyZXNzCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFkZHJlc3MqKiB8ICoqc3RyKiogfCBUaGUgYWRkcmVzcyBzdHJpbmcuIHwgCioqaW5kZXgqKiB8ICoqaW50KiogfCBUaGUgaW5kZXggb2YgdGhlIGFkZHJlc3MgaW4gdGhlIGxpc3QuIHwgCioqZGVzY3JpcHRpb24qKiB8ICoqc3RyKiogfCBBIGRlc2NyaXB0aW9uIG9mIHRoZSBhZGRyZXNzLiB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubmV3X2FkZHJlc3MgaW1wb3J0IE5ld0FkZHJlc3MKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE5ld0FkZHJlc3MgZnJvbSBhIEpTT04gc3RyaW5nCm5ld19hZGRyZXNzX2luc3RhbmNlID0gTmV3QWRkcmVzcy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChOZXdBZGRyZXNzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cm5ld19hZGRyZXNzX2RpY3QgPSBuZXdfYWRkcmVzc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTmV3QWRkcmVzcyBmcm9tIGEgZGljdApuZXdfYWRkcmVzc19mcm9tX2RpY3QgPSBOZXdBZGRyZXNzLmZyb21fZGljdChuZXdfYWRkcmVzc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/NoneNetworkRoutingDest.md b/docs/NoneNetworkRoutingDest.md index c483c7c6..8cde6fa8 100644 --- a/docs/NoneNetworkRoutingDest.md +++ b/docs/NoneNetworkRoutingDest.md @@ -1,29 +1 @@ -# NoneNetworkRoutingDest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**scheme** | **str** | No network routing logic. | - -## Example - -```python -from fireblocks.models.none_network_routing_dest import NoneNetworkRoutingDest - -# TODO update the JSON string below -json = "{}" -# create an instance of NoneNetworkRoutingDest from a JSON string -none_network_routing_dest_instance = NoneNetworkRoutingDest.from_json(json) -# print the JSON string representation of the object -print(NoneNetworkRoutingDest.to_json()) - -# convert the object into a dict -none_network_routing_dest_dict = none_network_routing_dest_instance.to_dict() -# create an instance of NoneNetworkRoutingDest from a dict -none_network_routing_dest_from_dict = NoneNetworkRoutingDest.from_dict(none_network_routing_dest_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBOb25lTmV0d29ya1JvdXRpbmdEZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnNjaGVtZSoqIHwgKipzdHIqKiB8IE5vIG5ldHdvcmsgcm91dGluZyBsb2dpYy4gfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vbmVfbmV0d29ya19yb3V0aW5nX2Rlc3QgaW1wb3J0IE5vbmVOZXR3b3JrUm91dGluZ0Rlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE5vbmVOZXR3b3JrUm91dGluZ0Rlc3QgZnJvbSBhIEpTT04gc3RyaW5nCm5vbmVfbmV0d29ya19yb3V0aW5nX2Rlc3RfaW5zdGFuY2UgPSBOb25lTmV0d29ya1JvdXRpbmdEZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KE5vbmVOZXR3b3JrUm91dGluZ0Rlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbm9uZV9uZXR3b3JrX3JvdXRpbmdfZGVzdF9kaWN0ID0gbm9uZV9uZXR3b3JrX3JvdXRpbmdfZGVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTm9uZU5ldHdvcmtSb3V0aW5nRGVzdCBmcm9tIGEgZGljdApub25lX25ldHdvcmtfcm91dGluZ19kZXN0X2Zyb21fZGljdCA9IE5vbmVOZXR3b3JrUm91dGluZ0Rlc3QuZnJvbV9kaWN0KG5vbmVfbmV0d29ya19yb3V0aW5nX2Rlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/NotFoundException.md b/docs/NotFoundException.md index fe422fdf..1b11bbed 100644 --- a/docs/NotFoundException.md +++ b/docs/NotFoundException.md @@ -1,31 +1 @@ -# NotFoundException - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status_code** | **int** | HTTP status code | [optional] -**message** | **str** | Error message | [optional] -**error** | **str** | Short description of the HTTP error | [optional] - -## Example - -```python -from fireblocks.models.not_found_exception import NotFoundException - -# TODO update the JSON string below -json = "{}" -# create an instance of NotFoundException from a JSON string -not_found_exception_instance = NotFoundException.from_json(json) -# print the JSON string representation of the object -print(NotFoundException.to_json()) - -# convert the object into a dict -not_found_exception_dict = not_found_exception_instance.to_dict() -# create an instance of NotFoundException from a dict -not_found_exception_from_dict = NotFoundException.from_dict(not_found_exception_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBOb3RGb3VuZEV4Y2VwdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzdGF0dXNfY29kZSoqIHwgKippbnQqKiB8IEhUVFAgc3RhdHVzIGNvZGUgfCBbb3B0aW9uYWxdIAoqKm1lc3NhZ2UqKiB8ICoqc3RyKiogfCBFcnJvciBtZXNzYWdlIHwgW29wdGlvbmFsXSAKKiplcnJvcioqIHwgKipzdHIqKiB8IFNob3J0IGRlc2NyaXB0aW9uIG9mIHRoZSBIVFRQIGVycm9yIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vdF9mb3VuZF9leGNlcHRpb24gaW1wb3J0IE5vdEZvdW5kRXhjZXB0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOb3RGb3VuZEV4Y2VwdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmcKbm90X2ZvdW5kX2V4Y2VwdGlvbl9pbnN0YW5jZSA9IE5vdEZvdW5kRXhjZXB0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KE5vdEZvdW5kRXhjZXB0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cm5vdF9mb3VuZF9leGNlcHRpb25fZGljdCA9IG5vdF9mb3VuZF9leGNlcHRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE5vdEZvdW5kRXhjZXB0aW9uIGZyb20gYSBkaWN0Cm5vdF9mb3VuZF9leGNlcHRpb25fZnJvbV9kaWN0ID0gTm90Rm91bmRFeGNlcHRpb24uZnJvbV9kaWN0KG5vdF9mb3VuZF9leGNlcHRpb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/Notification.md b/docs/Notification.md index b04eeaa3..ca39bdad 100644 --- a/docs/Notification.md +++ b/docs/Notification.md @@ -1,34 +1 @@ -# Notification - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The id of the Notification | -**created_at** | **int** | The creation date of the notification in milliseconds | -**updated_at** | **int** | The date when the notification was updated in milliseconds | -**status** | [**NotificationStatus**](NotificationStatus.md) | | -**event_type** | [**WebhookEvent**](WebhookEvent.md) | | -**resource_id** | **str** | The resource id of the event which the Notification is listen to | [optional] - -## Example - -```python -from fireblocks.models.notification import Notification - -# TODO update the JSON string below -json = "{}" -# create an instance of Notification from a JSON string -notification_instance = Notification.from_json(json) -# print the JSON string representation of the object -print(Notification.to_json()) - -# convert the object into a dict -notification_dict = notification_instance.to_dict() -# create an instance of Notification from a dict -notification_from_dict = Notification.from_dict(notification_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBOb3RpZmljYXRpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBUaGUgaWQgb2YgdGhlIE5vdGlmaWNhdGlvbiB8IAoqKmNyZWF0ZWRfYXQqKiB8ICoqaW50KiogfCBUaGUgY3JlYXRpb24gZGF0ZSBvZiB0aGUgbm90aWZpY2F0aW9uIGluIG1pbGxpc2Vjb25kcyB8IAoqKnVwZGF0ZWRfYXQqKiB8ICoqaW50KiogfCBUaGUgZGF0ZSB3aGVuIHRoZSBub3RpZmljYXRpb24gd2FzIHVwZGF0ZWQgaW4gbWlsbGlzZWNvbmRzIHwgCioqc3RhdHVzKiogfCBbKipOb3RpZmljYXRpb25TdGF0dXMqKl0oTm90aWZpY2F0aW9uU3RhdHVzLm1kKSB8ICB8IAoqKmV2ZW50X3R5cGUqKiB8IFsqKldlYmhvb2tFdmVudCoqXShXZWJob29rRXZlbnQubWQpIHwgIHwgCioqcmVzb3VyY2VfaWQqKiB8ICoqc3RyKiogfCBUaGUgcmVzb3VyY2UgaWQgb2YgdGhlIGV2ZW50IHdoaWNoIHRoZSBOb3RpZmljYXRpb24gaXMgbGlzdGVuIHRvIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vdGlmaWNhdGlvbiBpbXBvcnQgTm90aWZpY2F0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOb3RpZmljYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCm5vdGlmaWNhdGlvbl9pbnN0YW5jZSA9IE5vdGlmaWNhdGlvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChOb3RpZmljYXRpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbm90aWZpY2F0aW9uX2RpY3QgPSBub3RpZmljYXRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE5vdGlmaWNhdGlvbiBmcm9tIGEgZGljdApub3RpZmljYXRpb25fZnJvbV9kaWN0ID0gTm90aWZpY2F0aW9uLmZyb21fZGljdChub3RpZmljYXRpb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/NotificationAttempt.md b/docs/NotificationAttempt.md index b79350e0..7f08ab64 100644 --- a/docs/NotificationAttempt.md +++ b/docs/NotificationAttempt.md @@ -1,32 +1 @@ -# NotificationAttempt - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**sent_time** | **int** | The time when the attempt was sent in milliseconds. | -**duration** | **int** | The duration of the attempt in milliseconds. | -**response_code** | **int** | The response code of the attempt, when missing refer to failureReason. | [optional] -**failure_reason** | **str** | The request failure reason in case responseCode is missing. | [optional] - -## Example - -```python -from fireblocks.models.notification_attempt import NotificationAttempt - -# TODO update the JSON string below -json = "{}" -# create an instance of NotificationAttempt from a JSON string -notification_attempt_instance = NotificationAttempt.from_json(json) -# print the JSON string representation of the object -print(NotificationAttempt.to_json()) - -# convert the object into a dict -notification_attempt_dict = notification_attempt_instance.to_dict() -# create an instance of NotificationAttempt from a dict -notification_attempt_from_dict = NotificationAttempt.from_dict(notification_attempt_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBOb3RpZmljYXRpb25BdHRlbXB0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnNlbnRfdGltZSoqIHwgKippbnQqKiB8IFRoZSB0aW1lIHdoZW4gdGhlIGF0dGVtcHQgd2FzIHNlbnQgaW4gbWlsbGlzZWNvbmRzLiB8IAoqKmR1cmF0aW9uKiogfCAqKmludCoqIHwgVGhlIGR1cmF0aW9uIG9mIHRoZSBhdHRlbXB0IGluIG1pbGxpc2Vjb25kcy4gfCAKKipyZXNwb25zZV9jb2RlKiogfCAqKmludCoqIHwgVGhlIHJlc3BvbnNlIGNvZGUgb2YgdGhlIGF0dGVtcHQsIHdoZW4gbWlzc2luZyByZWZlciB0byBmYWlsdXJlUmVhc29uLiB8IFtvcHRpb25hbF0gCioqZmFpbHVyZV9yZWFzb24qKiB8ICoqc3RyKiogfCBUaGUgcmVxdWVzdCBmYWlsdXJlIHJlYXNvbiBpbiBjYXNlIHJlc3BvbnNlQ29kZSBpcyBtaXNzaW5nLiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ub3RpZmljYXRpb25fYXR0ZW1wdCBpbXBvcnQgTm90aWZpY2F0aW9uQXR0ZW1wdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTm90aWZpY2F0aW9uQXR0ZW1wdCBmcm9tIGEgSlNPTiBzdHJpbmcKbm90aWZpY2F0aW9uX2F0dGVtcHRfaW5zdGFuY2UgPSBOb3RpZmljYXRpb25BdHRlbXB0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KE5vdGlmaWNhdGlvbkF0dGVtcHQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbm90aWZpY2F0aW9uX2F0dGVtcHRfZGljdCA9IG5vdGlmaWNhdGlvbl9hdHRlbXB0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOb3RpZmljYXRpb25BdHRlbXB0IGZyb20gYSBkaWN0Cm5vdGlmaWNhdGlvbl9hdHRlbXB0X2Zyb21fZGljdCA9IE5vdGlmaWNhdGlvbkF0dGVtcHQuZnJvbV9kaWN0KG5vdGlmaWNhdGlvbl9hdHRlbXB0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/NotificationAttemptsPaginatedResponse.md b/docs/NotificationAttemptsPaginatedResponse.md index 38b50547..82e1ed37 100644 --- a/docs/NotificationAttemptsPaginatedResponse.md +++ b/docs/NotificationAttemptsPaginatedResponse.md @@ -1,30 +1 @@ -# NotificationAttemptsPaginatedResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[NotificationAttempt]**](NotificationAttempt.md) | The data of the current page | -**next** | **str** | The ID of the next page | [optional] - -## Example - -```python -from fireblocks.models.notification_attempts_paginated_response import NotificationAttemptsPaginatedResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of NotificationAttemptsPaginatedResponse from a JSON string -notification_attempts_paginated_response_instance = NotificationAttemptsPaginatedResponse.from_json(json) -# print the JSON string representation of the object -print(NotificationAttemptsPaginatedResponse.to_json()) - -# convert the object into a dict -notification_attempts_paginated_response_dict = notification_attempts_paginated_response_instance.to_dict() -# create an instance of NotificationAttemptsPaginatedResponse from a dict -notification_attempts_paginated_response_from_dict = NotificationAttemptsPaginatedResponse.from_dict(notification_attempts_paginated_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBOb3RpZmljYXRpb25BdHRlbXB0c1BhZ2luYXRlZFJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmRhdGEqKiB8IFsqKkxpc3RbTm90aWZpY2F0aW9uQXR0ZW1wdF0qKl0oTm90aWZpY2F0aW9uQXR0ZW1wdC5tZCkgfCBUaGUgZGF0YSBvZiB0aGUgY3VycmVudCBwYWdlIHwgCioqbmV4dCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgbmV4dCBwYWdlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vdGlmaWNhdGlvbl9hdHRlbXB0c19wYWdpbmF0ZWRfcmVzcG9uc2UgaW1wb3J0IE5vdGlmaWNhdGlvbkF0dGVtcHRzUGFnaW5hdGVkUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE5vdGlmaWNhdGlvbkF0dGVtcHRzUGFnaW5hdGVkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCm5vdGlmaWNhdGlvbl9hdHRlbXB0c19wYWdpbmF0ZWRfcmVzcG9uc2VfaW5zdGFuY2UgPSBOb3RpZmljYXRpb25BdHRlbXB0c1BhZ2luYXRlZFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KE5vdGlmaWNhdGlvbkF0dGVtcHRzUGFnaW5hdGVkUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbm90aWZpY2F0aW9uX2F0dGVtcHRzX3BhZ2luYXRlZF9yZXNwb25zZV9kaWN0ID0gbm90aWZpY2F0aW9uX2F0dGVtcHRzX3BhZ2luYXRlZF9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTm90aWZpY2F0aW9uQXR0ZW1wdHNQYWdpbmF0ZWRSZXNwb25zZSBmcm9tIGEgZGljdApub3RpZmljYXRpb25fYXR0ZW1wdHNfcGFnaW5hdGVkX3Jlc3BvbnNlX2Zyb21fZGljdCA9IE5vdGlmaWNhdGlvbkF0dGVtcHRzUGFnaW5hdGVkUmVzcG9uc2UuZnJvbV9kaWN0KG5vdGlmaWNhdGlvbl9hdHRlbXB0c19wYWdpbmF0ZWRfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/NotificationPaginatedResponse.md b/docs/NotificationPaginatedResponse.md index c6a21467..8491a308 100644 --- a/docs/NotificationPaginatedResponse.md +++ b/docs/NotificationPaginatedResponse.md @@ -1,31 +1 @@ -# NotificationPaginatedResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[Notification]**](Notification.md) | The data of the current page | -**total** | **float** | The total number of notifications after all filters applied (not returned when 'pageCursor' parameter is used) | [optional] -**next** | **str** | The ID of the next page | [optional] - -## Example - -```python -from fireblocks.models.notification_paginated_response import NotificationPaginatedResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of NotificationPaginatedResponse from a JSON string -notification_paginated_response_instance = NotificationPaginatedResponse.from_json(json) -# print the JSON string representation of the object -print(NotificationPaginatedResponse.to_json()) - -# convert the object into a dict -notification_paginated_response_dict = notification_paginated_response_instance.to_dict() -# create an instance of NotificationPaginatedResponse from a dict -notification_paginated_response_from_dict = NotificationPaginatedResponse.from_dict(notification_paginated_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBOb3RpZmljYXRpb25QYWdpbmF0ZWRSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkYXRhKiogfCBbKipMaXN0W05vdGlmaWNhdGlvbl0qKl0oTm90aWZpY2F0aW9uLm1kKSB8IFRoZSBkYXRhIG9mIHRoZSBjdXJyZW50IHBhZ2UgfCAKKip0b3RhbCoqIHwgKipmbG9hdCoqIHwgVGhlIHRvdGFsIG51bWJlciBvZiBub3RpZmljYXRpb25zIGFmdGVyIGFsbCBmaWx0ZXJzIGFwcGxpZWQgKG5vdCByZXR1cm5lZCB3aGVuICYjMzk7cGFnZUN1cnNvciYjMzk7IHBhcmFtZXRlciBpcyB1c2VkKSB8IFtvcHRpb25hbF0gCioqbmV4dCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgbmV4dCBwYWdlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vdGlmaWNhdGlvbl9wYWdpbmF0ZWRfcmVzcG9uc2UgaW1wb3J0IE5vdGlmaWNhdGlvblBhZ2luYXRlZFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOb3RpZmljYXRpb25QYWdpbmF0ZWRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKbm90aWZpY2F0aW9uX3BhZ2luYXRlZF9yZXNwb25zZV9pbnN0YW5jZSA9IE5vdGlmaWNhdGlvblBhZ2luYXRlZFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KE5vdGlmaWNhdGlvblBhZ2luYXRlZFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cm5vdGlmaWNhdGlvbl9wYWdpbmF0ZWRfcmVzcG9uc2VfZGljdCA9IG5vdGlmaWNhdGlvbl9wYWdpbmF0ZWRfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE5vdGlmaWNhdGlvblBhZ2luYXRlZFJlc3BvbnNlIGZyb20gYSBkaWN0Cm5vdGlmaWNhdGlvbl9wYWdpbmF0ZWRfcmVzcG9uc2VfZnJvbV9kaWN0ID0gTm90aWZpY2F0aW9uUGFnaW5hdGVkUmVzcG9uc2UuZnJvbV9kaWN0KG5vdGlmaWNhdGlvbl9wYWdpbmF0ZWRfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/NotificationStatus.md b/docs/NotificationStatus.md index 31777872..46295166 100644 --- a/docs/NotificationStatus.md +++ b/docs/NotificationStatus.md @@ -1,17 +1 @@ -# NotificationStatus - -The status of the Notification - -## Enum - -* `COMPLETED` (value: `'COMPLETED'`) - -* `FAILED` (value: `'FAILED'`) - -* `IN_PROGRESS` (value: `'IN_PROGRESS'`) - -* `ON_HOLD` (value: `'ON_HOLD'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBOb3RpZmljYXRpb25TdGF0dXMKClRoZSBzdGF0dXMgb2YgdGhlIE5vdGlmaWNhdGlvbgoKIyMgRW51bQoKKiBgQ09NUExFVEVEYCAodmFsdWU6IGAnQ09NUExFVEVEJ2ApCgoqIGBGQUlMRURgICh2YWx1ZTogYCdGQUlMRUQnYCkKCiogYElOX1BST0dSRVNTYCAodmFsdWU6IGAnSU5fUFJPR1JFU1MnYCkKCiogYE9OX0hPTERgICh2YWx1ZTogYCdPTl9IT0xEJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/NotificationWithData.md b/docs/NotificationWithData.md index 0df76c37..935823fa 100644 --- a/docs/NotificationWithData.md +++ b/docs/NotificationWithData.md @@ -1,35 +1 @@ -# NotificationWithData - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | -**created_at** | **int** | The creation date of the notification in milliseconds | -**updated_at** | **int** | The date when the notification was updated in milliseconds | -**status** | [**NotificationStatus**](NotificationStatus.md) | | -**event_type** | [**WebhookEvent**](WebhookEvent.md) | | -**resource_id** | **str** | The resource id of the event which the Notification is listen to | [optional] -**data** | **object** | notification data | [optional] - -## Example - -```python -from fireblocks.models.notification_with_data import NotificationWithData - -# TODO update the JSON string below -json = "{}" -# create an instance of NotificationWithData from a JSON string -notification_with_data_instance = NotificationWithData.from_json(json) -# print the JSON string representation of the object -print(NotificationWithData.to_json()) - -# convert the object into a dict -notification_with_data_dict = notification_with_data_instance.to_dict() -# create an instance of NotificationWithData from a dict -notification_with_data_from_dict = NotificationWithData.from_dict(notification_with_data_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBOb3RpZmljYXRpb25XaXRoRGF0YQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8ICB8IAoqKmNyZWF0ZWRfYXQqKiB8ICoqaW50KiogfCBUaGUgY3JlYXRpb24gZGF0ZSBvZiB0aGUgbm90aWZpY2F0aW9uIGluIG1pbGxpc2Vjb25kcyB8IAoqKnVwZGF0ZWRfYXQqKiB8ICoqaW50KiogfCBUaGUgZGF0ZSB3aGVuIHRoZSBub3RpZmljYXRpb24gd2FzIHVwZGF0ZWQgaW4gbWlsbGlzZWNvbmRzIHwgCioqc3RhdHVzKiogfCBbKipOb3RpZmljYXRpb25TdGF0dXMqKl0oTm90aWZpY2F0aW9uU3RhdHVzLm1kKSB8ICB8IAoqKmV2ZW50X3R5cGUqKiB8IFsqKldlYmhvb2tFdmVudCoqXShXZWJob29rRXZlbnQubWQpIHwgIHwgCioqcmVzb3VyY2VfaWQqKiB8ICoqc3RyKiogfCBUaGUgcmVzb3VyY2UgaWQgb2YgdGhlIGV2ZW50IHdoaWNoIHRoZSBOb3RpZmljYXRpb24gaXMgbGlzdGVuIHRvIHwgW29wdGlvbmFsXSAKKipkYXRhKiogfCAqKm9iamVjdCoqIHwgbm90aWZpY2F0aW9uIGRhdGEgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubm90aWZpY2F0aW9uX3dpdGhfZGF0YSBpbXBvcnQgTm90aWZpY2F0aW9uV2l0aERhdGEKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE5vdGlmaWNhdGlvbldpdGhEYXRhIGZyb20gYSBKU09OIHN0cmluZwpub3RpZmljYXRpb25fd2l0aF9kYXRhX2luc3RhbmNlID0gTm90aWZpY2F0aW9uV2l0aERhdGEuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoTm90aWZpY2F0aW9uV2l0aERhdGEudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKbm90aWZpY2F0aW9uX3dpdGhfZGF0YV9kaWN0ID0gbm90aWZpY2F0aW9uX3dpdGhfZGF0YV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTm90aWZpY2F0aW9uV2l0aERhdGEgZnJvbSBhIGRpY3QKbm90aWZpY2F0aW9uX3dpdGhfZGF0YV9mcm9tX2RpY3QgPSBOb3RpZmljYXRpb25XaXRoRGF0YS5mcm9tX2RpY3Qobm90aWZpY2F0aW9uX3dpdGhfZGF0YV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/OTABetaApi.md b/docs/OTABetaApi.md index 97926168..adff256e 100644 --- a/docs/OTABetaApi.md +++ b/docs/OTABetaApi.md @@ -1,160 +1 @@ -# fireblocks.OTABetaApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**get_ota_status**](OTABetaApi.md#get_ota_status) | **GET** /management/ota | Returns current OTA status -[**set_ota_status**](OTABetaApi.md#set_ota_status) | **PUT** /management/ota | Enable or disable transactions to OTA - - -# **get_ota_status** -> GetOtaStatusResponse get_ota_status() - -Returns current OTA status - -Returns current OTA status - -### Example - - -```python -from fireblocks.models.get_ota_status_response import GetOtaStatusResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Returns current OTA status - api_response = fireblocks.ota_beta.get_ota_status().result() - print("The response of OTABetaApi->get_ota_status:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling OTABetaApi->get_ota_status: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**GetOtaStatusResponse**](GetOtaStatusResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Current OTA status | - | -**404** | Configuration not found for tenant | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_ota_status** -> SetOtaStatusResponse set_ota_status(set_ota_status_request, idempotency_key=idempotency_key) - -Enable or disable transactions to OTA - -Enable or disable transactions to One Time Addresses (Non Whitelisted addresses). -Learn more about [One Time Addresses](https://support.fireblocks.io/hc/en-us/articles/4409104568338-One-Time-Address-OTA-feature) - -### Example - - -```python -from fireblocks.models.set_ota_status_request import SetOtaStatusRequest -from fireblocks.models.set_ota_status_response import SetOtaStatusResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - set_ota_status_request = fireblocks.SetOtaStatusRequest() # SetOtaStatusRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Enable or disable transactions to OTA - api_response = fireblocks.ota_beta.set_ota_status(set_ota_status_request, idempotency_key=idempotency_key).result() - print("The response of OTABetaApi->set_ota_status:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling OTABetaApi->set_ota_status: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **set_ota_status_request** | [**SetOtaStatusRequest**](SetOtaStatusRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**SetOtaStatusResponse**](SetOtaStatusResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**202** | Successfully updated OTA status | * X-Request-ID -
| -**400** | Bad request | - | -**409** | Similar request already pending | - | -**500** | Internal server error | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLk9UQUJldGFBcGkKCkFsbCBVUklzIGFyZSByZWxhdGl2ZSB0byAqaHR0cHM6Ly9hcGkuZmlyZWJsb2Nrcy5pby92MSoKCk1ldGhvZCB8IEhUVFAgcmVxdWVzdCB8IERlc2NyaXB0aW9uCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQpbKipnZXRfb3RhX3N0YXR1cyoqXShPVEFCZXRhQXBpLm1kI2dldF9vdGFfc3RhdHVzKSB8ICoqR0VUKiogL21hbmFnZW1lbnQvb3RhIHwgUmV0dXJucyBjdXJyZW50IE9UQSBzdGF0dXMKWyoqc2V0X290YV9zdGF0dXMqKl0oT1RBQmV0YUFwaS5tZCNzZXRfb3RhX3N0YXR1cykgfCAqKlBVVCoqIC9tYW5hZ2VtZW50L290YSB8IEVuYWJsZSBvciBkaXNhYmxlIHRyYW5zYWN0aW9ucyB0byBPVEEKCgojICoqZ2V0X290YV9zdGF0dXMqKgo+IEdldE90YVN0YXR1c1Jlc3BvbnNlIGdldF9vdGFfc3RhdHVzKCkKClJldHVybnMgY3VycmVudCBPVEEgc3RhdHVzCgpSZXR1cm5zIGN1cnJlbnQgT1RBIHN0YXR1cwoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfb3RhX3N0YXR1c19yZXNwb25zZSBpbXBvcnQgR2V0T3RhU3RhdHVzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgoKICAgIHRyeToKICAgICAgICAjIFJldHVybnMgY3VycmVudCBPVEEgc3RhdHVzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5vdGFfYmV0YS5nZXRfb3RhX3N0YXR1cygpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBPVEFCZXRhQXBpLT5nZXRfb3RhX3N0YXR1czpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBPVEFCZXRhQXBpLT5nZXRfb3RhX3N0YXR1czogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKClRoaXMgZW5kcG9pbnQgZG9lcyBub3QgbmVlZCBhbnkgcGFyYW1ldGVyLgoKIyMjIFJldHVybiB0eXBlCgpbKipHZXRPdGFTdGF0dXNSZXNwb25zZSoqXShHZXRPdGFTdGF0dXNSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEN1cnJlbnQgT1RBIHN0YXR1cyB8ICAtICB8CioqNDA0KiogfCBDb25maWd1cmF0aW9uIG5vdCBmb3VuZCBmb3IgdGVuYW50IHwgIC0gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnNldF9vdGFfc3RhdHVzKioKPiBTZXRPdGFTdGF0dXNSZXNwb25zZSBzZXRfb3RhX3N0YXR1cyhzZXRfb3RhX3N0YXR1c19yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKRW5hYmxlIG9yIGRpc2FibGUgdHJhbnNhY3Rpb25zIHRvIE9UQQoKRW5hYmxlIG9yIGRpc2FibGUgdHJhbnNhY3Rpb25zIHRvIE9uZSBUaW1lIEFkZHJlc3NlcyAoTm9uIFdoaXRlbGlzdGVkIGFkZHJlc3NlcykuCkxlYXJuIG1vcmUgYWJvdXQgW09uZSBUaW1lIEFkZHJlc3Nlc10oaHR0cHM6Ly9zdXBwb3J0LmZpcmVibG9ja3MuaW8vaGMvZW4tdXMvYXJ0aWNsZXMvNDQwOTEwNDU2ODMzOC1PbmUtVGltZS1BZGRyZXNzLU9UQS1mZWF0dXJlKQoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfb3RhX3N0YXR1c19yZXF1ZXN0IGltcG9ydCBTZXRPdGFTdGF0dXNSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X290YV9zdGF0dXNfcmVzcG9uc2UgaW1wb3J0IFNldE90YVN0YXR1c1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHNldF9vdGFfc3RhdHVzX3JlcXVlc3QgPSBmaXJlYmxvY2tzLlNldE90YVN0YXR1c1JlcXVlc3QoKSAjIFNldE90YVN0YXR1c1JlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBFbmFibGUgb3IgZGlzYWJsZSB0cmFuc2FjdGlvbnMgdG8gT1RBCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5vdGFfYmV0YS5zZXRfb3RhX3N0YXR1cyhzZXRfb3RhX3N0YXR1c19yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgT1RBQmV0YUFwaS0+c2V0X290YV9zdGF0dXM6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgT1RBQmV0YUFwaS0+c2V0X290YV9zdGF0dXM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnNldF9vdGFfc3RhdHVzX3JlcXVlc3QqKiB8IFsqKlNldE90YVN0YXR1c1JlcXVlc3QqKl0oU2V0T3RhU3RhdHVzUmVxdWVzdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipTZXRPdGFTdGF0dXNSZXNwb25zZSoqXShTZXRPdGFTdGF0dXNSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMioqIHwgU3VjY2Vzc2Z1bGx5IHVwZGF0ZWQgT1RBIHN0YXR1cyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDAwKiogfCBCYWQgcmVxdWVzdCB8ICAtICB8CioqNDA5KiogfCBTaW1pbGFyIHJlcXVlc3QgYWxyZWFkeSBwZW5kaW5nIHwgIC0gIHwKKio1MDAqKiB8IEludGVybmFsIHNlcnZlciBlcnJvciB8ICAtICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCg== \ No newline at end of file diff --git a/docs/OffExchangesApi.md b/docs/OffExchangesApi.md index aa61a22a..06c17aba 100644 --- a/docs/OffExchangesApi.md +++ b/docs/OffExchangesApi.md @@ -1,402 +1 @@ -# fireblocks.OffExchangesApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**add_off_exchange**](OffExchangesApi.md#add_off_exchange) | **POST** /off_exchange/add | Add Collateral -[**get_off_exchange_collateral_accounts**](OffExchangesApi.md#get_off_exchange_collateral_accounts) | **GET** /off_exchange/collateral_accounts/{mainExchangeAccountId} | Find a specific collateral exchange account -[**get_off_exchange_settlement_transactions**](OffExchangesApi.md#get_off_exchange_settlement_transactions) | **GET** /off_exchange/settlements/transactions | Get Settlements Transactions -[**remove_off_exchange**](OffExchangesApi.md#remove_off_exchange) | **POST** /off_exchange/remove | Remove Collateral -[**settle_off_exchange_trades**](OffExchangesApi.md#settle_off_exchange_trades) | **POST** /off_exchange/settlements/trader | Create Settlement for a Trader - - -# **add_off_exchange** -> CreateTransactionResponse add_off_exchange(idempotency_key=idempotency_key, add_collateral_request_body=add_collateral_request_body) - -Add Collateral - -Add collateral and create deposit request. -Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.add_collateral_request_body import AddCollateralRequestBody -from fireblocks.models.create_transaction_response import CreateTransactionResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - add_collateral_request_body = fireblocks.AddCollateralRequestBody() # AddCollateralRequestBody | (optional) - - try: - # Add Collateral - api_response = fireblocks.off_exchanges.add_off_exchange(idempotency_key=idempotency_key, add_collateral_request_body=add_collateral_request_body).result() - print("The response of OffExchangesApi->add_off_exchange:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling OffExchangesApi->add_off_exchange: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **add_collateral_request_body** | [**AddCollateralRequestBody**](AddCollateralRequestBody.md)| | [optional] - -### Return type - -[**CreateTransactionResponse**](CreateTransactionResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A transaction object | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_off_exchange_collateral_accounts** -> ExchangeAccount get_off_exchange_collateral_accounts(main_exchange_account_id) - -Find a specific collateral exchange account - -Returns a collateral account by mainExchangeAccountId. -Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.exchange_account import ExchangeAccount -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - main_exchange_account_id = 'main_exchange_account_id_example' # str | The id of the main exchange account for which the requested collateral account is associated with - - try: - # Find a specific collateral exchange account - api_response = fireblocks.off_exchanges.get_off_exchange_collateral_accounts(main_exchange_account_id).result() - print("The response of OffExchangesApi->get_off_exchange_collateral_accounts:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling OffExchangesApi->get_off_exchange_collateral_accounts: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **main_exchange_account_id** | **str**| The id of the main exchange account for which the requested collateral account is associated with | - -### Return type - -[**ExchangeAccount**](ExchangeAccount.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | An ExchangeAccount object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_off_exchange_settlement_transactions** -> ExchangeSettlementTransactionsResponse get_off_exchange_settlement_transactions(main_exchange_account_id) - -Get Settlements Transactions - -Get settlements transactions from exchange. -Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.exchange_settlement_transactions_response import ExchangeSettlementTransactionsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - main_exchange_account_id = 'main_exchange_account_id_example' # str | - - try: - # Get Settlements Transactions - api_response = fireblocks.off_exchanges.get_off_exchange_settlement_transactions(main_exchange_account_id).result() - print("The response of OffExchangesApi->get_off_exchange_settlement_transactions:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling OffExchangesApi->get_off_exchange_settlement_transactions: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **main_exchange_account_id** | **str**| | - -### Return type - -[**ExchangeSettlementTransactionsResponse**](ExchangeSettlementTransactionsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A settlement transactions | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **remove_off_exchange** -> CreateTransactionResponse remove_off_exchange(idempotency_key=idempotency_key, remove_collateral_request_body=remove_collateral_request_body) - -Remove Collateral - -Remove collateral, create withdraw request. -Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.create_transaction_response import CreateTransactionResponse -from fireblocks.models.remove_collateral_request_body import RemoveCollateralRequestBody -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - remove_collateral_request_body = fireblocks.RemoveCollateralRequestBody() # RemoveCollateralRequestBody | (optional) - - try: - # Remove Collateral - api_response = fireblocks.off_exchanges.remove_off_exchange(idempotency_key=idempotency_key, remove_collateral_request_body=remove_collateral_request_body).result() - print("The response of OffExchangesApi->remove_off_exchange:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling OffExchangesApi->remove_off_exchange: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **remove_collateral_request_body** | [**RemoveCollateralRequestBody**](RemoveCollateralRequestBody.md)| | [optional] - -### Return type - -[**CreateTransactionResponse**](CreateTransactionResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A transaction object | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **settle_off_exchange_trades** -> SettlementResponse settle_off_exchange_trades(idempotency_key=idempotency_key, settlement_request_body=settlement_request_body) - -Create Settlement for a Trader - -Create settlement for a trader. -Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.settlement_request_body import SettlementRequestBody -from fireblocks.models.settlement_response import SettlementResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - settlement_request_body = fireblocks.SettlementRequestBody() # SettlementRequestBody | (optional) - - try: - # Create Settlement for a Trader - api_response = fireblocks.off_exchanges.settle_off_exchange_trades(idempotency_key=idempotency_key, settlement_request_body=settlement_request_body).result() - print("The response of OffExchangesApi->settle_off_exchange_trades:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling OffExchangesApi->settle_off_exchange_trades: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **settlement_request_body** | [**SettlementRequestBody**](SettlementRequestBody.md)| | [optional] - -### Return type - -[**SettlementResponse**](SettlementResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | A settlement object | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLk9mZkV4Y2hhbmdlc0FwaQoKQWxsIFVSSXMgYXJlIHJlbGF0aXZlIHRvICpodHRwczovL2FwaS5maXJlYmxvY2tzLmlvL3YxKgoKTWV0aG9kIHwgSFRUUCByZXF1ZXN0IHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tClsqKmFkZF9vZmZfZXhjaGFuZ2UqKl0oT2ZmRXhjaGFuZ2VzQXBpLm1kI2FkZF9vZmZfZXhjaGFuZ2UpIHwgKipQT1NUKiogL29mZl9leGNoYW5nZS9hZGQgfCBBZGQgQ29sbGF0ZXJhbApbKipnZXRfb2ZmX2V4Y2hhbmdlX2NvbGxhdGVyYWxfYWNjb3VudHMqKl0oT2ZmRXhjaGFuZ2VzQXBpLm1kI2dldF9vZmZfZXhjaGFuZ2VfY29sbGF0ZXJhbF9hY2NvdW50cykgfCAqKkdFVCoqIC9vZmZfZXhjaGFuZ2UvY29sbGF0ZXJhbF9hY2NvdW50cy97bWFpbkV4Y2hhbmdlQWNjb3VudElkfSB8IEZpbmQgYSBzcGVjaWZpYyBjb2xsYXRlcmFsIGV4Y2hhbmdlIGFjY291bnQKWyoqZ2V0X29mZl9leGNoYW5nZV9zZXR0bGVtZW50X3RyYW5zYWN0aW9ucyoqXShPZmZFeGNoYW5nZXNBcGkubWQjZ2V0X29mZl9leGNoYW5nZV9zZXR0bGVtZW50X3RyYW5zYWN0aW9ucykgfCAqKkdFVCoqIC9vZmZfZXhjaGFuZ2Uvc2V0dGxlbWVudHMvdHJhbnNhY3Rpb25zIHwgR2V0IFNldHRsZW1lbnRzIFRyYW5zYWN0aW9ucwpbKipyZW1vdmVfb2ZmX2V4Y2hhbmdlKipdKE9mZkV4Y2hhbmdlc0FwaS5tZCNyZW1vdmVfb2ZmX2V4Y2hhbmdlKSB8ICoqUE9TVCoqIC9vZmZfZXhjaGFuZ2UvcmVtb3ZlIHwgUmVtb3ZlIENvbGxhdGVyYWwKWyoqc2V0dGxlX29mZl9leGNoYW5nZV90cmFkZXMqKl0oT2ZmRXhjaGFuZ2VzQXBpLm1kI3NldHRsZV9vZmZfZXhjaGFuZ2VfdHJhZGVzKSB8ICoqUE9TVCoqIC9vZmZfZXhjaGFuZ2Uvc2V0dGxlbWVudHMvdHJhZGVyIHwgQ3JlYXRlIFNldHRsZW1lbnQgZm9yIGEgVHJhZGVyCgoKIyAqKmFkZF9vZmZfZXhjaGFuZ2UqKgo+IENyZWF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UgYWRkX29mZl9leGNoYW5nZShpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCBhZGRfY29sbGF0ZXJhbF9yZXF1ZXN0X2JvZHk9YWRkX2NvbGxhdGVyYWxfcmVxdWVzdF9ib2R5KQoKQWRkIENvbGxhdGVyYWwKCkFkZCBjb2xsYXRlcmFsIGFuZCBjcmVhdGUgZGVwb3NpdCByZXF1ZXN0LgpMZWFybiBtb3JlIGFib3V0IEZpcmVibG9ja3MgT2ZmIEV4Y2hhbmdlIGluIHRoZSBmb2xsb3dpbmcgW2d1aWRlXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vZG9jcy9vZmYtZXhjaGFuZ2UpLgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hZGRfY29sbGF0ZXJhbF9yZXF1ZXN0X2JvZHkgaW1wb3J0IEFkZENvbGxhdGVyYWxSZXF1ZXN0Qm9keQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV90cmFuc2FjdGlvbl9yZXNwb25zZSBpbXBvcnQgQ3JlYXRlVHJhbnNhY3Rpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCiAgICBhZGRfY29sbGF0ZXJhbF9yZXF1ZXN0X2JvZHkgPSBmaXJlYmxvY2tzLkFkZENvbGxhdGVyYWxSZXF1ZXN0Qm9keSgpICMgQWRkQ29sbGF0ZXJhbFJlcXVlc3RCb2R5IHwgIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBBZGQgQ29sbGF0ZXJhbAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Mub2ZmX2V4Y2hhbmdlcy5hZGRfb2ZmX2V4Y2hhbmdlKGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksIGFkZF9jb2xsYXRlcmFsX3JlcXVlc3RfYm9keT1hZGRfY29sbGF0ZXJhbF9yZXF1ZXN0X2JvZHkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBPZmZFeGNoYW5nZXNBcGktPmFkZF9vZmZfZXhjaGFuZ2U6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgT2ZmRXhjaGFuZ2VzQXBpLT5hZGRfb2ZmX2V4Y2hhbmdlOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAogKiphZGRfY29sbGF0ZXJhbF9yZXF1ZXN0X2JvZHkqKiB8IFsqKkFkZENvbGxhdGVyYWxSZXF1ZXN0Qm9keSoqXShBZGRDb2xsYXRlcmFsUmVxdWVzdEJvZHkubWQpfCAgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipDcmVhdGVUcmFuc2FjdGlvblJlc3BvbnNlKipdKENyZWF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgdHJhbnNhY3Rpb24gb2JqZWN0IHwgIC0gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfb2ZmX2V4Y2hhbmdlX2NvbGxhdGVyYWxfYWNjb3VudHMqKgo+IEV4Y2hhbmdlQWNjb3VudCBnZXRfb2ZmX2V4Y2hhbmdlX2NvbGxhdGVyYWxfYWNjb3VudHMobWFpbl9leGNoYW5nZV9hY2NvdW50X2lkKQoKRmluZCBhIHNwZWNpZmljIGNvbGxhdGVyYWwgZXhjaGFuZ2UgYWNjb3VudAoKUmV0dXJucyBhIGNvbGxhdGVyYWwgYWNjb3VudCBieSBtYWluRXhjaGFuZ2VBY2NvdW50SWQuCkxlYXJuIG1vcmUgYWJvdXQgRmlyZWJsb2NrcyBPZmYgRXhjaGFuZ2UgaW4gdGhlIGZvbGxvd2luZyBbZ3VpZGVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL29mZi1leGNoYW5nZSkuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4Y2hhbmdlX2FjY291bnQgaW1wb3J0IEV4Y2hhbmdlQWNjb3VudApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBtYWluX2V4Y2hhbmdlX2FjY291bnRfaWQgPSAnbWFpbl9leGNoYW5nZV9hY2NvdW50X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIGlkIG9mIHRoZSBtYWluIGV4Y2hhbmdlIGFjY291bnQgZm9yIHdoaWNoIHRoZSByZXF1ZXN0ZWQgY29sbGF0ZXJhbCBhY2NvdW50IGlzIGFzc29jaWF0ZWQgd2l0aAoKICAgIHRyeToKICAgICAgICAjIEZpbmQgYSBzcGVjaWZpYyBjb2xsYXRlcmFsIGV4Y2hhbmdlIGFjY291bnQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLm9mZl9leGNoYW5nZXMuZ2V0X29mZl9leGNoYW5nZV9jb2xsYXRlcmFsX2FjY291bnRzKG1haW5fZXhjaGFuZ2VfYWNjb3VudF9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIE9mZkV4Y2hhbmdlc0FwaS0+Z2V0X29mZl9leGNoYW5nZV9jb2xsYXRlcmFsX2FjY291bnRzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIE9mZkV4Y2hhbmdlc0FwaS0+Z2V0X29mZl9leGNoYW5nZV9jb2xsYXRlcmFsX2FjY291bnRzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKiptYWluX2V4Y2hhbmdlX2FjY291bnRfaWQqKiB8ICoqc3RyKip8IFRoZSBpZCBvZiB0aGUgbWFpbiBleGNoYW5nZSBhY2NvdW50IGZvciB3aGljaCB0aGUgcmVxdWVzdGVkIGNvbGxhdGVyYWwgYWNjb3VudCBpcyBhc3NvY2lhdGVkIHdpdGggfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqRXhjaGFuZ2VBY2NvdW50KipdKEV4Y2hhbmdlQWNjb3VudC5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEFuIEV4Y2hhbmdlQWNjb3VudCBvYmplY3QgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9vZmZfZXhjaGFuZ2Vfc2V0dGxlbWVudF90cmFuc2FjdGlvbnMqKgo+IEV4Y2hhbmdlU2V0dGxlbWVudFRyYW5zYWN0aW9uc1Jlc3BvbnNlIGdldF9vZmZfZXhjaGFuZ2Vfc2V0dGxlbWVudF90cmFuc2FjdGlvbnMobWFpbl9leGNoYW5nZV9hY2NvdW50X2lkKQoKR2V0IFNldHRsZW1lbnRzIFRyYW5zYWN0aW9ucwoKR2V0IHNldHRsZW1lbnRzIHRyYW5zYWN0aW9ucyBmcm9tIGV4Y2hhbmdlLgpMZWFybiBtb3JlIGFib3V0IEZpcmVibG9ja3MgT2ZmIEV4Y2hhbmdlIGluIHRoZSBmb2xsb3dpbmcgW2d1aWRlXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vZG9jcy9vZmYtZXhjaGFuZ2UpLgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGNoYW5nZV9zZXR0bGVtZW50X3RyYW5zYWN0aW9uc19yZXNwb25zZSBpbXBvcnQgRXhjaGFuZ2VTZXR0bGVtZW50VHJhbnNhY3Rpb25zUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgbWFpbl9leGNoYW5nZV9hY2NvdW50X2lkID0gJ21haW5fZXhjaGFuZ2VfYWNjb3VudF9pZF9leGFtcGxlJyAjIHN0ciB8IAoKICAgIHRyeToKICAgICAgICAjIEdldCBTZXR0bGVtZW50cyBUcmFuc2FjdGlvbnMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLm9mZl9leGNoYW5nZXMuZ2V0X29mZl9leGNoYW5nZV9zZXR0bGVtZW50X3RyYW5zYWN0aW9ucyhtYWluX2V4Y2hhbmdlX2FjY291bnRfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBPZmZFeGNoYW5nZXNBcGktPmdldF9vZmZfZXhjaGFuZ2Vfc2V0dGxlbWVudF90cmFuc2FjdGlvbnM6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgT2ZmRXhjaGFuZ2VzQXBpLT5nZXRfb2ZmX2V4Y2hhbmdlX3NldHRsZW1lbnRfdHJhbnNhY3Rpb25zOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKiptYWluX2V4Y2hhbmdlX2FjY291bnRfaWQqKiB8ICoqc3RyKip8ICB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipFeGNoYW5nZVNldHRsZW1lbnRUcmFuc2FjdGlvbnNSZXNwb25zZSoqXShFeGNoYW5nZVNldHRsZW1lbnRUcmFuc2FjdGlvbnNSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgc2V0dGxlbWVudCB0cmFuc2FjdGlvbnMgfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnJlbW92ZV9vZmZfZXhjaGFuZ2UqKgo+IENyZWF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UgcmVtb3ZlX29mZl9leGNoYW5nZShpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCByZW1vdmVfY29sbGF0ZXJhbF9yZXF1ZXN0X2JvZHk9cmVtb3ZlX2NvbGxhdGVyYWxfcmVxdWVzdF9ib2R5KQoKUmVtb3ZlIENvbGxhdGVyYWwKClJlbW92ZSBjb2xsYXRlcmFsLCBjcmVhdGUgd2l0aGRyYXcgcmVxdWVzdC4KTGVhcm4gbW9yZSBhYm91dCBGaXJlYmxvY2tzIE9mZiBFeGNoYW5nZSBpbiB0aGUgZm9sbG93aW5nIFtndWlkZV0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL2RvY3Mvb2ZmLWV4Y2hhbmdlKS4KPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3RyYW5zYWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBDcmVhdGVUcmFuc2FjdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVtb3ZlX2NvbGxhdGVyYWxfcmVxdWVzdF9ib2R5IGltcG9ydCBSZW1vdmVDb2xsYXRlcmFsUmVxdWVzdEJvZHkKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQogICAgcmVtb3ZlX2NvbGxhdGVyYWxfcmVxdWVzdF9ib2R5ID0gZmlyZWJsb2Nrcy5SZW1vdmVDb2xsYXRlcmFsUmVxdWVzdEJvZHkoKSAjIFJlbW92ZUNvbGxhdGVyYWxSZXF1ZXN0Qm9keSB8ICAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgUmVtb3ZlIENvbGxhdGVyYWwKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLm9mZl9leGNoYW5nZXMucmVtb3ZlX29mZl9leGNoYW5nZShpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCByZW1vdmVfY29sbGF0ZXJhbF9yZXF1ZXN0X2JvZHk9cmVtb3ZlX2NvbGxhdGVyYWxfcmVxdWVzdF9ib2R5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgT2ZmRXhjaGFuZ2VzQXBpLT5yZW1vdmVfb2ZmX2V4Y2hhbmdlOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIE9mZkV4Y2hhbmdlc0FwaS0+cmVtb3ZlX29mZl9leGNoYW5nZTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKICoqcmVtb3ZlX2NvbGxhdGVyYWxfcmVxdWVzdF9ib2R5KiogfCBbKipSZW1vdmVDb2xsYXRlcmFsUmVxdWVzdEJvZHkqKl0oUmVtb3ZlQ29sbGF0ZXJhbFJlcXVlc3RCb2R5Lm1kKXwgIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqQ3JlYXRlVHJhbnNhY3Rpb25SZXNwb25zZSoqXShDcmVhdGVUcmFuc2FjdGlvblJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBIHRyYW5zYWN0aW9uIG9iamVjdCB8ICAtICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqc2V0dGxlX29mZl9leGNoYW5nZV90cmFkZXMqKgo+IFNldHRsZW1lbnRSZXNwb25zZSBzZXR0bGVfb2ZmX2V4Y2hhbmdlX3RyYWRlcyhpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCBzZXR0bGVtZW50X3JlcXVlc3RfYm9keT1zZXR0bGVtZW50X3JlcXVlc3RfYm9keSkKCkNyZWF0ZSBTZXR0bGVtZW50IGZvciBhIFRyYWRlcgoKQ3JlYXRlIHNldHRsZW1lbnQgZm9yIGEgdHJhZGVyLgpMZWFybiBtb3JlIGFib3V0IEZpcmVibG9ja3MgT2ZmIEV4Y2hhbmdlIGluIHRoZSBmb2xsb3dpbmcgW2d1aWRlXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vZG9jcy9vZmYtZXhjaGFuZ2UpLgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXR0bGVtZW50X3JlcXVlc3RfYm9keSBpbXBvcnQgU2V0dGxlbWVudFJlcXVlc3RCb2R5CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0dGxlbWVudF9yZXNwb25zZSBpbXBvcnQgU2V0dGxlbWVudFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKICAgIHNldHRsZW1lbnRfcmVxdWVzdF9ib2R5ID0gZmlyZWJsb2Nrcy5TZXR0bGVtZW50UmVxdWVzdEJvZHkoKSAjIFNldHRsZW1lbnRSZXF1ZXN0Qm9keSB8ICAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ3JlYXRlIFNldHRsZW1lbnQgZm9yIGEgVHJhZGVyCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5vZmZfZXhjaGFuZ2VzLnNldHRsZV9vZmZfZXhjaGFuZ2VfdHJhZGVzKGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksIHNldHRsZW1lbnRfcmVxdWVzdF9ib2R5PXNldHRsZW1lbnRfcmVxdWVzdF9ib2R5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgT2ZmRXhjaGFuZ2VzQXBpLT5zZXR0bGVfb2ZmX2V4Y2hhbmdlX3RyYWRlczpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBPZmZFeGNoYW5nZXNBcGktPnNldHRsZV9vZmZfZXhjaGFuZ2VfdHJhZGVzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAogKipzZXR0bGVtZW50X3JlcXVlc3RfYm9keSoqIHwgWyoqU2V0dGxlbWVudFJlcXVlc3RCb2R5KipdKFNldHRsZW1lbnRSZXF1ZXN0Qm9keS5tZCl8ICB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlNldHRsZW1lbnRSZXNwb25zZSoqXShTZXR0bGVtZW50UmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDEqKiB8IEEgc2V0dGxlbWVudCBvYmplY3QgfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoK \ No newline at end of file diff --git a/docs/OnchainDataApi.md b/docs/OnchainDataApi.md index a3a5e289..af692bf4 100644 --- a/docs/OnchainDataApi.md +++ b/docs/OnchainDataApi.md @@ -1,684 +1 @@ -# fireblocks.OnchainDataApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**get_access_registry_current_state**](OnchainDataApi.md#get_access_registry_current_state) | **GET** /onchain_data/base_asset_id/{baseAssetId}/access_registry_address/{accessRegistryAddress}/list | Get the current state of addresses in an access registry -[**get_access_registry_summary**](OnchainDataApi.md#get_access_registry_summary) | **GET** /onchain_data/base_asset_id/{baseAssetId}/access_registry_address/{accessRegistryAddress}/summary | Summary of access registry state -[**get_active_roles_for_contract**](OnchainDataApi.md#get_active_roles_for_contract) | **GET** /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/roles | List of active roles for a given contract address and base asset ID -[**get_contract_balance_history**](OnchainDataApi.md#get_contract_balance_history) | **GET** /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/account_address/{accountAddress}/balance_history | Get historical balance data for a specific account in a contract -[**get_contract_balances_summary**](OnchainDataApi.md#get_contract_balances_summary) | **GET** /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/summary | Get summary for the token contract -[**get_contract_total_supply**](OnchainDataApi.md#get_contract_total_supply) | **GET** /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/total_supply | Get historical total supply data for a contract -[**get_latest_balances_for_contract**](OnchainDataApi.md#get_latest_balances_for_contract) | **GET** /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/balances | Get latest balances for all addresses holding tokens from a contract -[**get_onchain_transactions**](OnchainDataApi.md#get_onchain_transactions) | **GET** /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/transactions | Fetch onchain transactions for a contract - - -# **get_access_registry_current_state** -> AccessRegistryCurrentStateResponse get_access_registry_current_state(base_asset_id, access_registry_address, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order) - -Get the current state of addresses in an access registry - -Returns the current state of addresses in the specified access registry. Only addresses that are currently active (added but not removed) are included. - -### Example - - -```python -from fireblocks.models.access_registry_current_state_response import AccessRegistryCurrentStateResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - base_asset_id = 'ETH_TEST3' # str | The blockchain base assetId - access_registry_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66' # str | The access registry address - page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Page cursor to get the next page\" (optional) - page_size = 10 # int | Number of items per page (max 100), requesting more then 100 will return 100 items (optional) - sort_by = dateAdded # str | Sorting field (enum). (optional) (default to dateAdded) - order = DESC # str | ASC / DESC ordering (default DESC) (optional) (default to DESC) - - try: - # Get the current state of addresses in an access registry - api_response = fireblocks.onchain_data.get_access_registry_current_state(base_asset_id, access_registry_address, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order).result() - print("The response of OnchainDataApi->get_access_registry_current_state:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling OnchainDataApi->get_access_registry_current_state: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **base_asset_id** | **str**| The blockchain base assetId | - **access_registry_address** | **str**| The access registry address | - **page_cursor** | **str**| Page cursor to get the next page\" | [optional] - **page_size** | **int**| Number of items per page (max 100), requesting more then 100 will return 100 items | [optional] - **sort_by** | **str**| Sorting field (enum). | [optional] [default to dateAdded] - **order** | **str**| ASC / DESC ordering (default DESC) | [optional] [default to DESC] - -### Return type - -[**AccessRegistryCurrentStateResponse**](AccessRegistryCurrentStateResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Access registry current state retrieved successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_access_registry_summary** -> AccessRegistrySummaryResponse get_access_registry_summary(base_asset_id, access_registry_address) - -Summary of access registry state - -Returns a summary of the current state of the access registry for the specified baseAssetId and accessRegistryAddress. - -### Example - - -```python -from fireblocks.models.access_registry_summary_response import AccessRegistrySummaryResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - base_asset_id = 'ETH_TEST3' # str | The blockchain base assetId - access_registry_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66' # str | The access registry address - - try: - # Summary of access registry state - api_response = fireblocks.onchain_data.get_access_registry_summary(base_asset_id, access_registry_address).result() - print("The response of OnchainDataApi->get_access_registry_summary:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling OnchainDataApi->get_access_registry_summary: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **base_asset_id** | **str**| The blockchain base assetId | - **access_registry_address** | **str**| The access registry address | - -### Return type - -[**AccessRegistrySummaryResponse**](AccessRegistrySummaryResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successfully retrieved the summary of the access registry state | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_active_roles_for_contract** -> Dict[str, RoleDetails] get_active_roles_for_contract(base_asset_id, contract_address) - -List of active roles for a given contract address and base asset ID - -Returns a list of currently active roles for the specified baseAssetId and contractAddress. - -### Example - - -```python -from fireblocks.models.role_details import RoleDetails -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - base_asset_id = 'ETH_TEST3' # str | The blockchain base assetId - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66' # str | The contract address - - try: - # List of active roles for a given contract address and base asset ID - api_response = fireblocks.onchain_data.get_active_roles_for_contract(base_asset_id, contract_address).result() - print("The response of OnchainDataApi->get_active_roles_for_contract:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling OnchainDataApi->get_active_roles_for_contract: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **base_asset_id** | **str**| The blockchain base assetId | - **contract_address** | **str**| The contract address | - -### Return type - -[**Dict[str, RoleDetails]**](RoleDetails.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successfully retrieved the list of active roles | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_contract_balance_history** -> BalanceHistoryPagedResponse get_contract_balance_history(base_asset_id, contract_address, account_address, start_date=start_date, end_date=end_date, interval=interval, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order) - -Get historical balance data for a specific account in a contract - -Returns the paginated balance history of the specified account in a contract with optional date range and interval filtering. - -### Example - - -```python -from fireblocks.models.balance_history_paged_response import BalanceHistoryPagedResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - base_asset_id = 'ETH_TEST3' # str | The blockchain base assetId - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66' # str | The contract address - account_address = '0x1234567890abcdef1234567890abcdef12345678' # str | The account address to get balance history for - start_date = '2025-01-16T15:45:00Z' # datetime | Start date of the time range in ISO 8601 format (optional) - end_date = '2025-01-16T15:45:00Z' # datetime | End date of the time range in ISO 8601 format (optional) - interval = day # str | Time interval for grouping data (optional) (default to day) - page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Page cursor to get the next page\" (optional) - page_size = 10 # int | Number of items per page (max 100), requesting more then 100 will return 100 items (optional) - sort_by = blockTimestamp # str | Sorting field (enum). Sorting only supported by 'blockTimestamp' (optional) (default to blockTimestamp) - order = DESC # str | ASC / DESC ordering (default DESC) (optional) (default to DESC) - - try: - # Get historical balance data for a specific account in a contract - api_response = fireblocks.onchain_data.get_contract_balance_history(base_asset_id, contract_address, account_address, start_date=start_date, end_date=end_date, interval=interval, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order).result() - print("The response of OnchainDataApi->get_contract_balance_history:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling OnchainDataApi->get_contract_balance_history: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **base_asset_id** | **str**| The blockchain base assetId | - **contract_address** | **str**| The contract address | - **account_address** | **str**| The account address to get balance history for | - **start_date** | **datetime**| Start date of the time range in ISO 8601 format | [optional] - **end_date** | **datetime**| End date of the time range in ISO 8601 format | [optional] - **interval** | **str**| Time interval for grouping data | [optional] [default to day] - **page_cursor** | **str**| Page cursor to get the next page\" | [optional] - **page_size** | **int**| Number of items per page (max 100), requesting more then 100 will return 100 items | [optional] - **sort_by** | **str**| Sorting field (enum). Sorting only supported by 'blockTimestamp' | [optional] [default to blockTimestamp] - **order** | **str**| ASC / DESC ordering (default DESC) | [optional] [default to DESC] - -### Return type - -[**BalanceHistoryPagedResponse**](BalanceHistoryPagedResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successfully retrieved the contract balance history | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_contract_balances_summary** -> TokenContractSummaryResponse get_contract_balances_summary(base_asset_id, contract_address) - -Get summary for the token contract - -Returns the total number of unique addresses holding balances and the total supply for the specified contract. - -### Example - - -```python -from fireblocks.models.token_contract_summary_response import TokenContractSummaryResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - base_asset_id = 'ETH_TEST3' # str | The blockchain base assetId - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66' # str | The contract address - - try: - # Get summary for the token contract - api_response = fireblocks.onchain_data.get_contract_balances_summary(base_asset_id, contract_address).result() - print("The response of OnchainDataApi->get_contract_balances_summary:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling OnchainDataApi->get_contract_balances_summary: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **base_asset_id** | **str**| The blockchain base assetId | - **contract_address** | **str**| The contract address | - -### Return type - -[**TokenContractSummaryResponse**](TokenContractSummaryResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successfully retrieved the summary for the token contract | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_contract_total_supply** -> TotalSupplyPagedResponse get_contract_total_supply(base_asset_id, contract_address, start_date=start_date, end_date=end_date, interval=interval, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order) - -Get historical total supply data for a contract - -Returns the paginated total supply history of the specified contract with optional date range and interval filtering. - -### Example - - -```python -from fireblocks.models.total_supply_paged_response import TotalSupplyPagedResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - base_asset_id = 'ETH_TEST3' # str | The blockchain base assetId - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66' # str | The contract address - start_date = '2025-01-16T15:45:00Z' # datetime | Start date of the time range in ISO 8601 format (optional) - end_date = '2025-01-16T15:45:00Z' # datetime | End date of the time range in ISO 8601 format (optional) - interval = day # str | Time interval for grouping data (optional) (default to day) - page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Page cursor to get the next page\" (optional) - page_size = 10 # int | Number of items per page (max 100), requesting more then 100 will return 100 items (optional) - sort_by = blockTimestamp # str | Sorting field (enum). Sorting only supported by 'blockTimestamp' (optional) (default to blockTimestamp) - order = DESC # str | ASC / DESC ordering (default DESC) (optional) (default to DESC) - - try: - # Get historical total supply data for a contract - api_response = fireblocks.onchain_data.get_contract_total_supply(base_asset_id, contract_address, start_date=start_date, end_date=end_date, interval=interval, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order).result() - print("The response of OnchainDataApi->get_contract_total_supply:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling OnchainDataApi->get_contract_total_supply: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **base_asset_id** | **str**| The blockchain base assetId | - **contract_address** | **str**| The contract address | - **start_date** | **datetime**| Start date of the time range in ISO 8601 format | [optional] - **end_date** | **datetime**| End date of the time range in ISO 8601 format | [optional] - **interval** | **str**| Time interval for grouping data | [optional] [default to day] - **page_cursor** | **str**| Page cursor to get the next page\" | [optional] - **page_size** | **int**| Number of items per page (max 100), requesting more then 100 will return 100 items | [optional] - **sort_by** | **str**| Sorting field (enum). Sorting only supported by 'blockTimestamp' | [optional] [default to blockTimestamp] - **order** | **str**| ASC / DESC ordering (default DESC) | [optional] [default to DESC] - -### Return type - -[**TotalSupplyPagedResponse**](TotalSupplyPagedResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successfully retrieved the contract total supply history | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_latest_balances_for_contract** -> AddressBalancePagedResponse get_latest_balances_for_contract(base_asset_id, contract_address, account_address=account_address, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order) - -Get latest balances for all addresses holding tokens from a contract - -Returns the latest balance for each unique address with support for numeric balance sorting. The `prev` cursor is reserved for future support. - -### Example - - -```python -from fireblocks.models.address_balance_paged_response import AddressBalancePagedResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - base_asset_id = 'ETH_TEST3' # str | The blockchain base assetId - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66' # str | The contract address - account_address = '0x1234567890abcdef1234567890abcdef12345678' # str | Optional filter to get balance for a specific account address (optional) - page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Page cursor to get the next page\" (optional) - page_size = 10 # int | Number of items per page (max 100), requesting more then 100 will return 100 items (optional) - sort_by = blockTimestamp # str | Sorting field for balances (optional) (default to blockTimestamp) - order = DESC # str | ASC / DESC ordering (default DESC) (optional) (default to DESC) - - try: - # Get latest balances for all addresses holding tokens from a contract - api_response = fireblocks.onchain_data.get_latest_balances_for_contract(base_asset_id, contract_address, account_address=account_address, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order).result() - print("The response of OnchainDataApi->get_latest_balances_for_contract:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling OnchainDataApi->get_latest_balances_for_contract: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **base_asset_id** | **str**| The blockchain base assetId | - **contract_address** | **str**| The contract address | - **account_address** | **str**| Optional filter to get balance for a specific account address | [optional] - **page_cursor** | **str**| Page cursor to get the next page\" | [optional] - **page_size** | **int**| Number of items per page (max 100), requesting more then 100 will return 100 items | [optional] - **sort_by** | **str**| Sorting field for balances | [optional] [default to blockTimestamp] - **order** | **str**| ASC / DESC ordering (default DESC) | [optional] [default to DESC] - -### Return type - -[**AddressBalancePagedResponse**](AddressBalancePagedResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successfully retrieved the latest balances for the contract | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_onchain_transactions** -> OnchainTransactionsPagedResponse get_onchain_transactions(base_asset_id, contract_address, start_date=start_date, end_date=end_date, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order) - -Fetch onchain transactions for a contract - -Returns a paginated list of onchain transactions for the specified contract address and base asset ID, optionally filtered by date range. - -### Example - - -```python -from fireblocks.models.onchain_transactions_paged_response import OnchainTransactionsPagedResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - base_asset_id = 'ETH_TEST3' # str | The blockchain base assetId - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66' # str | The contract address - start_date = '2025-01-16T15:45:00Z' # datetime | Start date of the time range in ISO 8601 format (optional) - end_date = '2025-01-16T15:45:00Z' # datetime | End date of the time range in ISO 8601 format (optional) - page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Page cursor to get the next page\" (optional) - page_size = 10 # int | Number of items per page (max 100), requesting more then 100 will return 100 items (optional) - sort_by = blockTimestamp # str | Sorting field (enum). (optional) (default to blockTimestamp) - order = DESC # str | ASC / DESC ordering (default DESC) (optional) (default to DESC) - - try: - # Fetch onchain transactions for a contract - api_response = fireblocks.onchain_data.get_onchain_transactions(base_asset_id, contract_address, start_date=start_date, end_date=end_date, page_cursor=page_cursor, page_size=page_size, sort_by=sort_by, order=order).result() - print("The response of OnchainDataApi->get_onchain_transactions:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling OnchainDataApi->get_onchain_transactions: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **base_asset_id** | **str**| The blockchain base assetId | - **contract_address** | **str**| The contract address | - **start_date** | **datetime**| Start date of the time range in ISO 8601 format | [optional] - **end_date** | **datetime**| End date of the time range in ISO 8601 format | [optional] - **page_cursor** | **str**| Page cursor to get the next page\" | [optional] - **page_size** | **int**| Number of items per page (max 100), requesting more then 100 will return 100 items | [optional] - **sort_by** | **str**| Sorting field (enum). | [optional] [default to blockTimestamp] - **order** | **str**| ASC / DESC ordering (default DESC) | [optional] [default to DESC] - -### Return type - -[**OnchainTransactionsPagedResponse**](OnchainTransactionsPagedResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Onchain transactions fetched successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLk9uY2hhaW5EYXRhQXBpCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gKmh0dHBzOi8vYXBpLmZpcmVibG9ja3MuaW8vdjEqCgpNZXRob2QgfCBIVFRQIHJlcXVlc3QgfCBEZXNjcmlwdGlvbgotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KWyoqZ2V0X2FjY2Vzc19yZWdpc3RyeV9jdXJyZW50X3N0YXRlKipdKE9uY2hhaW5EYXRhQXBpLm1kI2dldF9hY2Nlc3NfcmVnaXN0cnlfY3VycmVudF9zdGF0ZSkgfCAqKkdFVCoqIC9vbmNoYWluX2RhdGEvYmFzZV9hc3NldF9pZC97YmFzZUFzc2V0SWR9L2FjY2Vzc19yZWdpc3RyeV9hZGRyZXNzL3thY2Nlc3NSZWdpc3RyeUFkZHJlc3N9L2xpc3QgfCBHZXQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYWRkcmVzc2VzIGluIGFuIGFjY2VzcyByZWdpc3RyeQpbKipnZXRfYWNjZXNzX3JlZ2lzdHJ5X3N1bW1hcnkqKl0oT25jaGFpbkRhdGFBcGkubWQjZ2V0X2FjY2Vzc19yZWdpc3RyeV9zdW1tYXJ5KSB8ICoqR0VUKiogL29uY2hhaW5fZGF0YS9iYXNlX2Fzc2V0X2lkL3tiYXNlQXNzZXRJZH0vYWNjZXNzX3JlZ2lzdHJ5X2FkZHJlc3Mve2FjY2Vzc1JlZ2lzdHJ5QWRkcmVzc30vc3VtbWFyeSB8IFN1bW1hcnkgb2YgYWNjZXNzIHJlZ2lzdHJ5IHN0YXRlClsqKmdldF9hY3RpdmVfcm9sZXNfZm9yX2NvbnRyYWN0KipdKE9uY2hhaW5EYXRhQXBpLm1kI2dldF9hY3RpdmVfcm9sZXNfZm9yX2NvbnRyYWN0KSB8ICoqR0VUKiogL29uY2hhaW5fZGF0YS9iYXNlX2Fzc2V0X2lkL3tiYXNlQXNzZXRJZH0vY29udHJhY3RfYWRkcmVzcy97Y29udHJhY3RBZGRyZXNzfS9yb2xlcyB8IExpc3Qgb2YgYWN0aXZlIHJvbGVzIGZvciBhIGdpdmVuIGNvbnRyYWN0IGFkZHJlc3MgYW5kIGJhc2UgYXNzZXQgSUQKWyoqZ2V0X2NvbnRyYWN0X2JhbGFuY2VfaGlzdG9yeSoqXShPbmNoYWluRGF0YUFwaS5tZCNnZXRfY29udHJhY3RfYmFsYW5jZV9oaXN0b3J5KSB8ICoqR0VUKiogL29uY2hhaW5fZGF0YS9iYXNlX2Fzc2V0X2lkL3tiYXNlQXNzZXRJZH0vY29udHJhY3RfYWRkcmVzcy97Y29udHJhY3RBZGRyZXNzfS9hY2NvdW50X2FkZHJlc3Mve2FjY291bnRBZGRyZXNzfS9iYWxhbmNlX2hpc3RvcnkgfCBHZXQgaGlzdG9yaWNhbCBiYWxhbmNlIGRhdGEgZm9yIGEgc3BlY2lmaWMgYWNjb3VudCBpbiBhIGNvbnRyYWN0ClsqKmdldF9jb250cmFjdF9iYWxhbmNlc19zdW1tYXJ5KipdKE9uY2hhaW5EYXRhQXBpLm1kI2dldF9jb250cmFjdF9iYWxhbmNlc19zdW1tYXJ5KSB8ICoqR0VUKiogL29uY2hhaW5fZGF0YS9iYXNlX2Fzc2V0X2lkL3tiYXNlQXNzZXRJZH0vY29udHJhY3RfYWRkcmVzcy97Y29udHJhY3RBZGRyZXNzfS9zdW1tYXJ5IHwgR2V0IHN1bW1hcnkgZm9yIHRoZSB0b2tlbiBjb250cmFjdApbKipnZXRfY29udHJhY3RfdG90YWxfc3VwcGx5KipdKE9uY2hhaW5EYXRhQXBpLm1kI2dldF9jb250cmFjdF90b3RhbF9zdXBwbHkpIHwgKipHRVQqKiAvb25jaGFpbl9kYXRhL2Jhc2VfYXNzZXRfaWQve2Jhc2VBc3NldElkfS9jb250cmFjdF9hZGRyZXNzL3tjb250cmFjdEFkZHJlc3N9L3RvdGFsX3N1cHBseSB8IEdldCBoaXN0b3JpY2FsIHRvdGFsIHN1cHBseSBkYXRhIGZvciBhIGNvbnRyYWN0ClsqKmdldF9sYXRlc3RfYmFsYW5jZXNfZm9yX2NvbnRyYWN0KipdKE9uY2hhaW5EYXRhQXBpLm1kI2dldF9sYXRlc3RfYmFsYW5jZXNfZm9yX2NvbnRyYWN0KSB8ICoqR0VUKiogL29uY2hhaW5fZGF0YS9iYXNlX2Fzc2V0X2lkL3tiYXNlQXNzZXRJZH0vY29udHJhY3RfYWRkcmVzcy97Y29udHJhY3RBZGRyZXNzfS9iYWxhbmNlcyB8IEdldCBsYXRlc3QgYmFsYW5jZXMgZm9yIGFsbCBhZGRyZXNzZXMgaG9sZGluZyB0b2tlbnMgZnJvbSBhIGNvbnRyYWN0ClsqKmdldF9vbmNoYWluX3RyYW5zYWN0aW9ucyoqXShPbmNoYWluRGF0YUFwaS5tZCNnZXRfb25jaGFpbl90cmFuc2FjdGlvbnMpIHwgKipHRVQqKiAvb25jaGFpbl9kYXRhL2Jhc2VfYXNzZXRfaWQve2Jhc2VBc3NldElkfS9jb250cmFjdF9hZGRyZXNzL3tjb250cmFjdEFkZHJlc3N9L3RyYW5zYWN0aW9ucyB8IEZldGNoIG9uY2hhaW4gdHJhbnNhY3Rpb25zIGZvciBhIGNvbnRyYWN0CgoKIyAqKmdldF9hY2Nlc3NfcmVnaXN0cnlfY3VycmVudF9zdGF0ZSoqCj4gQWNjZXNzUmVnaXN0cnlDdXJyZW50U3RhdGVSZXNwb25zZSBnZXRfYWNjZXNzX3JlZ2lzdHJ5X2N1cnJlbnRfc3RhdGUoYmFzZV9hc3NldF9pZCwgYWNjZXNzX3JlZ2lzdHJ5X2FkZHJlc3MsIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplLCBzb3J0X2J5PXNvcnRfYnksIG9yZGVyPW9yZGVyKQoKR2V0IHRoZSBjdXJyZW50IHN0YXRlIG9mIGFkZHJlc3NlcyBpbiBhbiBhY2Nlc3MgcmVnaXN0cnkKClJldHVybnMgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYWRkcmVzc2VzIGluIHRoZSBzcGVjaWZpZWQgYWNjZXNzIHJlZ2lzdHJ5LiBPbmx5IGFkZHJlc3NlcyB0aGF0IGFyZSBjdXJyZW50bHkgYWN0aXZlIChhZGRlZCBidXQgbm90IHJlbW92ZWQpIGFyZSBpbmNsdWRlZC4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjZXNzX3JlZ2lzdHJ5X2N1cnJlbnRfc3RhdGVfcmVzcG9uc2UgaW1wb3J0IEFjY2Vzc1JlZ2lzdHJ5Q3VycmVudFN0YXRlUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgYmFzZV9hc3NldF9pZCA9ICdFVEhfVEVTVDMnICMgc3RyIHwgVGhlIGJsb2NrY2hhaW4gYmFzZSBhc3NldElkCiAgICBhY2Nlc3NfcmVnaXN0cnlfYWRkcmVzcyA9ICcweEMyYzRlMURiNDFGMGJCOTc5OTZEMGVEMDU0MkQyMTcwZDE0NkZCNjYnICMgc3RyIHwgVGhlIGFjY2VzcyByZWdpc3RyeSBhZGRyZXNzCiAgICBwYWdlX2N1cnNvciA9ICdNakF5TXkweE1pMHhNeUF5TURvek5qb3dPQzR6TURJPTpNVEV3TUE9PScgIyBzdHIgfCBQYWdlIGN1cnNvciB0byBnZXQgdGhlIG5leHQgcGFnZVwiIChvcHRpb25hbCkKICAgIHBhZ2Vfc2l6ZSA9IDEwICMgaW50IHwgTnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlIChtYXggMTAwKSwgcmVxdWVzdGluZyBtb3JlIHRoZW4gMTAwIHdpbGwgcmV0dXJuIDEwMCBpdGVtcyAob3B0aW9uYWwpCiAgICBzb3J0X2J5ID0gZGF0ZUFkZGVkICMgc3RyIHwgU29ydGluZyBmaWVsZCAoZW51bSkuIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gZGF0ZUFkZGVkKQogICAgb3JkZXIgPSBERVNDICMgc3RyIHwgQVNDIC8gREVTQyBvcmRlcmluZyAoZGVmYXVsdCBERVNDKSAob3B0aW9uYWwpIChkZWZhdWx0IHRvIERFU0MpCgogICAgdHJ5OgogICAgICAgICMgR2V0IHRoZSBjdXJyZW50IHN0YXRlIG9mIGFkZHJlc3NlcyBpbiBhbiBhY2Nlc3MgcmVnaXN0cnkKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLm9uY2hhaW5fZGF0YS5nZXRfYWNjZXNzX3JlZ2lzdHJ5X2N1cnJlbnRfc3RhdGUoYmFzZV9hc3NldF9pZCwgYWNjZXNzX3JlZ2lzdHJ5X2FkZHJlc3MsIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplLCBzb3J0X2J5PXNvcnRfYnksIG9yZGVyPW9yZGVyKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgT25jaGFpbkRhdGFBcGktPmdldF9hY2Nlc3NfcmVnaXN0cnlfY3VycmVudF9zdGF0ZTpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBPbmNoYWluRGF0YUFwaS0+Z2V0X2FjY2Vzc19yZWdpc3RyeV9jdXJyZW50X3N0YXRlOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipiYXNlX2Fzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQgfCAKICoqYWNjZXNzX3JlZ2lzdHJ5X2FkZHJlc3MqKiB8ICoqc3RyKip8IFRoZSBhY2Nlc3MgcmVnaXN0cnkgYWRkcmVzcyB8IAogKipwYWdlX2N1cnNvcioqIHwgKipzdHIqKnwgUGFnZSBjdXJzb3IgdG8gZ2V0IHRoZSBuZXh0IHBhZ2VcJnF1b3Q7IHwgW29wdGlvbmFsXSAKICoqcGFnZV9zaXplKiogfCAqKmludCoqfCBOdW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UgKG1heCAxMDApLCByZXF1ZXN0aW5nIG1vcmUgdGhlbiAxMDAgd2lsbCByZXR1cm4gMTAwIGl0ZW1zIHwgW29wdGlvbmFsXSAKICoqc29ydF9ieSoqIHwgKipzdHIqKnwgU29ydGluZyBmaWVsZCAoZW51bSkuIHwgW29wdGlvbmFsXSBbZGVmYXVsdCB0byBkYXRlQWRkZWRdCiAqKm9yZGVyKiogfCAqKnN0cioqfCBBU0MgLyBERVNDIG9yZGVyaW5nIChkZWZhdWx0IERFU0MpIHwgW29wdGlvbmFsXSBbZGVmYXVsdCB0byBERVNDXQoKIyMjIFJldHVybiB0eXBlCgpbKipBY2Nlc3NSZWdpc3RyeUN1cnJlbnRTdGF0ZVJlc3BvbnNlKipdKEFjY2Vzc1JlZ2lzdHJ5Q3VycmVudFN0YXRlUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBY2Nlc3MgcmVnaXN0cnkgY3VycmVudCBzdGF0ZSByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5IHwgIC0gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfYWNjZXNzX3JlZ2lzdHJ5X3N1bW1hcnkqKgo+IEFjY2Vzc1JlZ2lzdHJ5U3VtbWFyeVJlc3BvbnNlIGdldF9hY2Nlc3NfcmVnaXN0cnlfc3VtbWFyeShiYXNlX2Fzc2V0X2lkLCBhY2Nlc3NfcmVnaXN0cnlfYWRkcmVzcykKClN1bW1hcnkgb2YgYWNjZXNzIHJlZ2lzdHJ5IHN0YXRlCgpSZXR1cm5zIGEgc3VtbWFyeSBvZiB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYWNjZXNzIHJlZ2lzdHJ5IGZvciB0aGUgc3BlY2lmaWVkIGJhc2VBc3NldElkIGFuZCBhY2Nlc3NSZWdpc3RyeUFkZHJlc3MuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY2Vzc19yZWdpc3RyeV9zdW1tYXJ5X3Jlc3BvbnNlIGltcG9ydCBBY2Nlc3NSZWdpc3RyeVN1bW1hcnlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBiYXNlX2Fzc2V0X2lkID0gJ0VUSF9URVNUMycgIyBzdHIgfCBUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQKICAgIGFjY2Vzc19yZWdpc3RyeV9hZGRyZXNzID0gJzB4QzJjNGUxRGI0MUYwYkI5Nzk5NkQwZUQwNTQyRDIxNzBkMTQ2RkI2NicgIyBzdHIgfCBUaGUgYWNjZXNzIHJlZ2lzdHJ5IGFkZHJlc3MKCiAgICB0cnk6CiAgICAgICAgIyBTdW1tYXJ5IG9mIGFjY2VzcyByZWdpc3RyeSBzdGF0ZQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Mub25jaGFpbl9kYXRhLmdldF9hY2Nlc3NfcmVnaXN0cnlfc3VtbWFyeShiYXNlX2Fzc2V0X2lkLCBhY2Nlc3NfcmVnaXN0cnlfYWRkcmVzcykucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIE9uY2hhaW5EYXRhQXBpLT5nZXRfYWNjZXNzX3JlZ2lzdHJ5X3N1bW1hcnk6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgT25jaGFpbkRhdGFBcGktPmdldF9hY2Nlc3NfcmVnaXN0cnlfc3VtbWFyeTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqYmFzZV9hc3NldF9pZCoqIHwgKipzdHIqKnwgVGhlIGJsb2NrY2hhaW4gYmFzZSBhc3NldElkIHwgCiAqKmFjY2Vzc19yZWdpc3RyeV9hZGRyZXNzKiogfCAqKnN0cioqfCBUaGUgYWNjZXNzIHJlZ2lzdHJ5IGFkZHJlc3MgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqQWNjZXNzUmVnaXN0cnlTdW1tYXJ5UmVzcG9uc2UqKl0oQWNjZXNzUmVnaXN0cnlTdW1tYXJ5UmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTdWNjZXNzZnVsbHkgcmV0cmlldmVkIHRoZSBzdW1tYXJ5IG9mIHRoZSBhY2Nlc3MgcmVnaXN0cnkgc3RhdGUgfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9hY3RpdmVfcm9sZXNfZm9yX2NvbnRyYWN0KioKPiBEaWN0W3N0ciwgUm9sZURldGFpbHNdIGdldF9hY3RpdmVfcm9sZXNfZm9yX2NvbnRyYWN0KGJhc2VfYXNzZXRfaWQsIGNvbnRyYWN0X2FkZHJlc3MpCgpMaXN0IG9mIGFjdGl2ZSByb2xlcyBmb3IgYSBnaXZlbiBjb250cmFjdCBhZGRyZXNzIGFuZCBiYXNlIGFzc2V0IElECgpSZXR1cm5zIGEgbGlzdCBvZiBjdXJyZW50bHkgYWN0aXZlIHJvbGVzIGZvciB0aGUgc3BlY2lmaWVkIGJhc2VBc3NldElkIGFuZCBjb250cmFjdEFkZHJlc3MuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJvbGVfZGV0YWlscyBpbXBvcnQgUm9sZURldGFpbHMKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgYmFzZV9hc3NldF9pZCA9ICdFVEhfVEVTVDMnICMgc3RyIHwgVGhlIGJsb2NrY2hhaW4gYmFzZSBhc3NldElkCiAgICBjb250cmFjdF9hZGRyZXNzID0gJzB4QzJjNGUxRGI0MUYwYkI5Nzk5NkQwZUQwNTQyRDIxNzBkMTQ2RkI2NicgIyBzdHIgfCBUaGUgY29udHJhY3QgYWRkcmVzcwoKICAgIHRyeToKICAgICAgICAjIExpc3Qgb2YgYWN0aXZlIHJvbGVzIGZvciBhIGdpdmVuIGNvbnRyYWN0IGFkZHJlc3MgYW5kIGJhc2UgYXNzZXQgSUQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLm9uY2hhaW5fZGF0YS5nZXRfYWN0aXZlX3JvbGVzX2Zvcl9jb250cmFjdChiYXNlX2Fzc2V0X2lkLCBjb250cmFjdF9hZGRyZXNzKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgT25jaGFpbkRhdGFBcGktPmdldF9hY3RpdmVfcm9sZXNfZm9yX2NvbnRyYWN0OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIE9uY2hhaW5EYXRhQXBpLT5nZXRfYWN0aXZlX3JvbGVzX2Zvcl9jb250cmFjdDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqYmFzZV9hc3NldF9pZCoqIHwgKipzdHIqKnwgVGhlIGJsb2NrY2hhaW4gYmFzZSBhc3NldElkIHwgCiAqKmNvbnRyYWN0X2FkZHJlc3MqKiB8ICoqc3RyKip8IFRoZSBjb250cmFjdCBhZGRyZXNzIHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKkRpY3Rbc3RyLCBSb2xlRGV0YWlsc10qKl0oUm9sZURldGFpbHMubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTdWNjZXNzZnVsbHkgcmV0cmlldmVkIHRoZSBsaXN0IG9mIGFjdGl2ZSByb2xlcyB8ICAtICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2NvbnRyYWN0X2JhbGFuY2VfaGlzdG9yeSoqCj4gQmFsYW5jZUhpc3RvcnlQYWdlZFJlc3BvbnNlIGdldF9jb250cmFjdF9iYWxhbmNlX2hpc3RvcnkoYmFzZV9hc3NldF9pZCwgY29udHJhY3RfYWRkcmVzcywgYWNjb3VudF9hZGRyZXNzLCBzdGFydF9kYXRlPXN0YXJ0X2RhdGUsIGVuZF9kYXRlPWVuZF9kYXRlLCBpbnRlcnZhbD1pbnRlcnZhbCwgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsIHNvcnRfYnk9c29ydF9ieSwgb3JkZXI9b3JkZXIpCgpHZXQgaGlzdG9yaWNhbCBiYWxhbmNlIGRhdGEgZm9yIGEgc3BlY2lmaWMgYWNjb3VudCBpbiBhIGNvbnRyYWN0CgpSZXR1cm5zIHRoZSBwYWdpbmF0ZWQgYmFsYW5jZSBoaXN0b3J5IG9mIHRoZSBzcGVjaWZpZWQgYWNjb3VudCBpbiBhIGNvbnRyYWN0IHdpdGggb3B0aW9uYWwgZGF0ZSByYW5nZSBhbmQgaW50ZXJ2YWwgZmlsdGVyaW5nLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5iYWxhbmNlX2hpc3RvcnlfcGFnZWRfcmVzcG9uc2UgaW1wb3J0IEJhbGFuY2VIaXN0b3J5UGFnZWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBiYXNlX2Fzc2V0X2lkID0gJ0VUSF9URVNUMycgIyBzdHIgfCBUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQKICAgIGNvbnRyYWN0X2FkZHJlc3MgPSAnMHhDMmM0ZTFEYjQxRjBiQjk3OTk2RDBlRDA1NDJEMjE3MGQxNDZGQjY2JyAjIHN0ciB8IFRoZSBjb250cmFjdCBhZGRyZXNzCiAgICBhY2NvdW50X2FkZHJlc3MgPSAnMHgxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4JyAjIHN0ciB8IFRoZSBhY2NvdW50IGFkZHJlc3MgdG8gZ2V0IGJhbGFuY2UgaGlzdG9yeSBmb3IKICAgIHN0YXJ0X2RhdGUgPSAnMjAyNS0wMS0xNlQxNTo0NTowMFonICMgZGF0ZXRpbWUgfCBTdGFydCBkYXRlIG9mIHRoZSB0aW1lIHJhbmdlIGluIElTTyA4NjAxIGZvcm1hdCAob3B0aW9uYWwpCiAgICBlbmRfZGF0ZSA9ICcyMDI1LTAxLTE2VDE1OjQ1OjAwWicgIyBkYXRldGltZSB8IEVuZCBkYXRlIG9mIHRoZSB0aW1lIHJhbmdlIGluIElTTyA4NjAxIGZvcm1hdCAob3B0aW9uYWwpCiAgICBpbnRlcnZhbCA9IGRheSAjIHN0ciB8IFRpbWUgaW50ZXJ2YWwgZm9yIGdyb3VwaW5nIGRhdGEgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byBkYXkpCiAgICBwYWdlX2N1cnNvciA9ICdNakF5TXkweE1pMHhNeUF5TURvek5qb3dPQzR6TURJPTpNVEV3TUE9PScgIyBzdHIgfCBQYWdlIGN1cnNvciB0byBnZXQgdGhlIG5leHQgcGFnZVwiIChvcHRpb25hbCkKICAgIHBhZ2Vfc2l6ZSA9IDEwICMgaW50IHwgTnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlIChtYXggMTAwKSwgcmVxdWVzdGluZyBtb3JlIHRoZW4gMTAwIHdpbGwgcmV0dXJuIDEwMCBpdGVtcyAob3B0aW9uYWwpCiAgICBzb3J0X2J5ID0gYmxvY2tUaW1lc3RhbXAgIyBzdHIgfCBTb3J0aW5nIGZpZWxkIChlbnVtKS4gU29ydGluZyBvbmx5IHN1cHBvcnRlZCBieSAnYmxvY2tUaW1lc3RhbXAnIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gYmxvY2tUaW1lc3RhbXApCiAgICBvcmRlciA9IERFU0MgIyBzdHIgfCBBU0MgLyBERVNDIG9yZGVyaW5nIChkZWZhdWx0IERFU0MpIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gREVTQykKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgaGlzdG9yaWNhbCBiYWxhbmNlIGRhdGEgZm9yIGEgc3BlY2lmaWMgYWNjb3VudCBpbiBhIGNvbnRyYWN0CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5vbmNoYWluX2RhdGEuZ2V0X2NvbnRyYWN0X2JhbGFuY2VfaGlzdG9yeShiYXNlX2Fzc2V0X2lkLCBjb250cmFjdF9hZGRyZXNzLCBhY2NvdW50X2FkZHJlc3MsIHN0YXJ0X2RhdGU9c3RhcnRfZGF0ZSwgZW5kX2RhdGU9ZW5kX2RhdGUsIGludGVydmFsPWludGVydmFsLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwgc29ydF9ieT1zb3J0X2J5LCBvcmRlcj1vcmRlcikucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIE9uY2hhaW5EYXRhQXBpLT5nZXRfY29udHJhY3RfYmFsYW5jZV9oaXN0b3J5OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIE9uY2hhaW5EYXRhQXBpLT5nZXRfY29udHJhY3RfYmFsYW5jZV9oaXN0b3J5OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipiYXNlX2Fzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQgfCAKICoqY29udHJhY3RfYWRkcmVzcyoqIHwgKipzdHIqKnwgVGhlIGNvbnRyYWN0IGFkZHJlc3MgfCAKICoqYWNjb3VudF9hZGRyZXNzKiogfCAqKnN0cioqfCBUaGUgYWNjb3VudCBhZGRyZXNzIHRvIGdldCBiYWxhbmNlIGhpc3RvcnkgZm9yIHwgCiAqKnN0YXJ0X2RhdGUqKiB8ICoqZGF0ZXRpbWUqKnwgU3RhcnQgZGF0ZSBvZiB0aGUgdGltZSByYW5nZSBpbiBJU08gODYwMSBmb3JtYXQgfCBbb3B0aW9uYWxdIAogKiplbmRfZGF0ZSoqIHwgKipkYXRldGltZSoqfCBFbmQgZGF0ZSBvZiB0aGUgdGltZSByYW5nZSBpbiBJU08gODYwMSBmb3JtYXQgfCBbb3B0aW9uYWxdIAogKippbnRlcnZhbCoqIHwgKipzdHIqKnwgVGltZSBpbnRlcnZhbCBmb3IgZ3JvdXBpbmcgZGF0YSB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gZGF5XQogKipwYWdlX2N1cnNvcioqIHwgKipzdHIqKnwgUGFnZSBjdXJzb3IgdG8gZ2V0IHRoZSBuZXh0IHBhZ2VcJnF1b3Q7IHwgW29wdGlvbmFsXSAKICoqcGFnZV9zaXplKiogfCAqKmludCoqfCBOdW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UgKG1heCAxMDApLCByZXF1ZXN0aW5nIG1vcmUgdGhlbiAxMDAgd2lsbCByZXR1cm4gMTAwIGl0ZW1zIHwgW29wdGlvbmFsXSAKICoqc29ydF9ieSoqIHwgKipzdHIqKnwgU29ydGluZyBmaWVsZCAoZW51bSkuIFNvcnRpbmcgb25seSBzdXBwb3J0ZWQgYnkgJiMzOTtibG9ja1RpbWVzdGFtcCYjMzk7IHwgW29wdGlvbmFsXSBbZGVmYXVsdCB0byBibG9ja1RpbWVzdGFtcF0KICoqb3JkZXIqKiB8ICoqc3RyKip8IEFTQyAvIERFU0Mgb3JkZXJpbmcgKGRlZmF1bHQgREVTQykgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIERFU0NdCgojIyMgUmV0dXJuIHR5cGUKClsqKkJhbGFuY2VIaXN0b3J5UGFnZWRSZXNwb25zZSoqXShCYWxhbmNlSGlzdG9yeVBhZ2VkUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTdWNjZXNzZnVsbHkgcmV0cmlldmVkIHRoZSBjb250cmFjdCBiYWxhbmNlIGhpc3RvcnkgfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9jb250cmFjdF9iYWxhbmNlc19zdW1tYXJ5KioKPiBUb2tlbkNvbnRyYWN0U3VtbWFyeVJlc3BvbnNlIGdldF9jb250cmFjdF9iYWxhbmNlc19zdW1tYXJ5KGJhc2VfYXNzZXRfaWQsIGNvbnRyYWN0X2FkZHJlc3MpCgpHZXQgc3VtbWFyeSBmb3IgdGhlIHRva2VuIGNvbnRyYWN0CgpSZXR1cm5zIHRoZSB0b3RhbCBudW1iZXIgb2YgdW5pcXVlIGFkZHJlc3NlcyBob2xkaW5nIGJhbGFuY2VzIGFuZCB0aGUgdG90YWwgc3VwcGx5IGZvciB0aGUgc3BlY2lmaWVkIGNvbnRyYWN0LgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b2tlbl9jb250cmFjdF9zdW1tYXJ5X3Jlc3BvbnNlIGltcG9ydCBUb2tlbkNvbnRyYWN0U3VtbWFyeVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGJhc2VfYXNzZXRfaWQgPSAnRVRIX1RFU1QzJyAjIHN0ciB8IFRoZSBibG9ja2NoYWluIGJhc2UgYXNzZXRJZAogICAgY29udHJhY3RfYWRkcmVzcyA9ICcweEMyYzRlMURiNDFGMGJCOTc5OTZEMGVEMDU0MkQyMTcwZDE0NkZCNjYnICMgc3RyIHwgVGhlIGNvbnRyYWN0IGFkZHJlc3MKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgc3VtbWFyeSBmb3IgdGhlIHRva2VuIGNvbnRyYWN0CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5vbmNoYWluX2RhdGEuZ2V0X2NvbnRyYWN0X2JhbGFuY2VzX3N1bW1hcnkoYmFzZV9hc3NldF9pZCwgY29udHJhY3RfYWRkcmVzcykucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIE9uY2hhaW5EYXRhQXBpLT5nZXRfY29udHJhY3RfYmFsYW5jZXNfc3VtbWFyeTpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBPbmNoYWluRGF0YUFwaS0+Z2V0X2NvbnRyYWN0X2JhbGFuY2VzX3N1bW1hcnk6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmJhc2VfYXNzZXRfaWQqKiB8ICoqc3RyKip8IFRoZSBibG9ja2NoYWluIGJhc2UgYXNzZXRJZCB8IAogKipjb250cmFjdF9hZGRyZXNzKiogfCAqKnN0cioqfCBUaGUgY29udHJhY3QgYWRkcmVzcyB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipUb2tlbkNvbnRyYWN0U3VtbWFyeVJlc3BvbnNlKipdKFRva2VuQ29udHJhY3RTdW1tYXJ5UmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTdWNjZXNzZnVsbHkgcmV0cmlldmVkIHRoZSBzdW1tYXJ5IGZvciB0aGUgdG9rZW4gY29udHJhY3QgfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9jb250cmFjdF90b3RhbF9zdXBwbHkqKgo+IFRvdGFsU3VwcGx5UGFnZWRSZXNwb25zZSBnZXRfY29udHJhY3RfdG90YWxfc3VwcGx5KGJhc2VfYXNzZXRfaWQsIGNvbnRyYWN0X2FkZHJlc3MsIHN0YXJ0X2RhdGU9c3RhcnRfZGF0ZSwgZW5kX2RhdGU9ZW5kX2RhdGUsIGludGVydmFsPWludGVydmFsLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwgc29ydF9ieT1zb3J0X2J5LCBvcmRlcj1vcmRlcikKCkdldCBoaXN0b3JpY2FsIHRvdGFsIHN1cHBseSBkYXRhIGZvciBhIGNvbnRyYWN0CgpSZXR1cm5zIHRoZSBwYWdpbmF0ZWQgdG90YWwgc3VwcGx5IGhpc3Rvcnkgb2YgdGhlIHNwZWNpZmllZCBjb250cmFjdCB3aXRoIG9wdGlvbmFsIGRhdGUgcmFuZ2UgYW5kIGludGVydmFsIGZpbHRlcmluZy4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG90YWxfc3VwcGx5X3BhZ2VkX3Jlc3BvbnNlIGltcG9ydCBUb3RhbFN1cHBseVBhZ2VkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgYmFzZV9hc3NldF9pZCA9ICdFVEhfVEVTVDMnICMgc3RyIHwgVGhlIGJsb2NrY2hhaW4gYmFzZSBhc3NldElkCiAgICBjb250cmFjdF9hZGRyZXNzID0gJzB4QzJjNGUxRGI0MUYwYkI5Nzk5NkQwZUQwNTQyRDIxNzBkMTQ2RkI2NicgIyBzdHIgfCBUaGUgY29udHJhY3QgYWRkcmVzcwogICAgc3RhcnRfZGF0ZSA9ICcyMDI1LTAxLTE2VDE1OjQ1OjAwWicgIyBkYXRldGltZSB8IFN0YXJ0IGRhdGUgb2YgdGhlIHRpbWUgcmFuZ2UgaW4gSVNPIDg2MDEgZm9ybWF0IChvcHRpb25hbCkKICAgIGVuZF9kYXRlID0gJzIwMjUtMDEtMTZUMTU6NDU6MDBaJyAjIGRhdGV0aW1lIHwgRW5kIGRhdGUgb2YgdGhlIHRpbWUgcmFuZ2UgaW4gSVNPIDg2MDEgZm9ybWF0IChvcHRpb25hbCkKICAgIGludGVydmFsID0gZGF5ICMgc3RyIHwgVGltZSBpbnRlcnZhbCBmb3IgZ3JvdXBpbmcgZGF0YSAob3B0aW9uYWwpIChkZWZhdWx0IHRvIGRheSkKICAgIHBhZ2VfY3Vyc29yID0gJ01qQXlNeTB4TWkweE15QXlNRG96Tmpvd09DNHpNREk9Ok1URXdNQT09JyAjIHN0ciB8IFBhZ2UgY3Vyc29yIHRvIGdldCB0aGUgbmV4dCBwYWdlXCIgKG9wdGlvbmFsKQogICAgcGFnZV9zaXplID0gMTAgIyBpbnQgfCBOdW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UgKG1heCAxMDApLCByZXF1ZXN0aW5nIG1vcmUgdGhlbiAxMDAgd2lsbCByZXR1cm4gMTAwIGl0ZW1zIChvcHRpb25hbCkKICAgIHNvcnRfYnkgPSBibG9ja1RpbWVzdGFtcCAjIHN0ciB8IFNvcnRpbmcgZmllbGQgKGVudW0pLiBTb3J0aW5nIG9ubHkgc3VwcG9ydGVkIGJ5ICdibG9ja1RpbWVzdGFtcCcgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byBibG9ja1RpbWVzdGFtcCkKICAgIG9yZGVyID0gREVTQyAjIHN0ciB8IEFTQyAvIERFU0Mgb3JkZXJpbmcgKGRlZmF1bHQgREVTQykgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byBERVNDKQoKICAgIHRyeToKICAgICAgICAjIEdldCBoaXN0b3JpY2FsIHRvdGFsIHN1cHBseSBkYXRhIGZvciBhIGNvbnRyYWN0CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5vbmNoYWluX2RhdGEuZ2V0X2NvbnRyYWN0X3RvdGFsX3N1cHBseShiYXNlX2Fzc2V0X2lkLCBjb250cmFjdF9hZGRyZXNzLCBzdGFydF9kYXRlPXN0YXJ0X2RhdGUsIGVuZF9kYXRlPWVuZF9kYXRlLCBpbnRlcnZhbD1pbnRlcnZhbCwgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsIHNvcnRfYnk9c29ydF9ieSwgb3JkZXI9b3JkZXIpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBPbmNoYWluRGF0YUFwaS0+Z2V0X2NvbnRyYWN0X3RvdGFsX3N1cHBseTpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBPbmNoYWluRGF0YUFwaS0+Z2V0X2NvbnRyYWN0X3RvdGFsX3N1cHBseTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqYmFzZV9hc3NldF9pZCoqIHwgKipzdHIqKnwgVGhlIGJsb2NrY2hhaW4gYmFzZSBhc3NldElkIHwgCiAqKmNvbnRyYWN0X2FkZHJlc3MqKiB8ICoqc3RyKip8IFRoZSBjb250cmFjdCBhZGRyZXNzIHwgCiAqKnN0YXJ0X2RhdGUqKiB8ICoqZGF0ZXRpbWUqKnwgU3RhcnQgZGF0ZSBvZiB0aGUgdGltZSByYW5nZSBpbiBJU08gODYwMSBmb3JtYXQgfCBbb3B0aW9uYWxdIAogKiplbmRfZGF0ZSoqIHwgKipkYXRldGltZSoqfCBFbmQgZGF0ZSBvZiB0aGUgdGltZSByYW5nZSBpbiBJU08gODYwMSBmb3JtYXQgfCBbb3B0aW9uYWxdIAogKippbnRlcnZhbCoqIHwgKipzdHIqKnwgVGltZSBpbnRlcnZhbCBmb3IgZ3JvdXBpbmcgZGF0YSB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gZGF5XQogKipwYWdlX2N1cnNvcioqIHwgKipzdHIqKnwgUGFnZSBjdXJzb3IgdG8gZ2V0IHRoZSBuZXh0IHBhZ2VcJnF1b3Q7IHwgW29wdGlvbmFsXSAKICoqcGFnZV9zaXplKiogfCAqKmludCoqfCBOdW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UgKG1heCAxMDApLCByZXF1ZXN0aW5nIG1vcmUgdGhlbiAxMDAgd2lsbCByZXR1cm4gMTAwIGl0ZW1zIHwgW29wdGlvbmFsXSAKICoqc29ydF9ieSoqIHwgKipzdHIqKnwgU29ydGluZyBmaWVsZCAoZW51bSkuIFNvcnRpbmcgb25seSBzdXBwb3J0ZWQgYnkgJiMzOTtibG9ja1RpbWVzdGFtcCYjMzk7IHwgW29wdGlvbmFsXSBbZGVmYXVsdCB0byBibG9ja1RpbWVzdGFtcF0KICoqb3JkZXIqKiB8ICoqc3RyKip8IEFTQyAvIERFU0Mgb3JkZXJpbmcgKGRlZmF1bHQgREVTQykgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIERFU0NdCgojIyMgUmV0dXJuIHR5cGUKClsqKlRvdGFsU3VwcGx5UGFnZWRSZXNwb25zZSoqXShUb3RhbFN1cHBseVBhZ2VkUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTdWNjZXNzZnVsbHkgcmV0cmlldmVkIHRoZSBjb250cmFjdCB0b3RhbCBzdXBwbHkgaGlzdG9yeSB8ICAtICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2xhdGVzdF9iYWxhbmNlc19mb3JfY29udHJhY3QqKgo+IEFkZHJlc3NCYWxhbmNlUGFnZWRSZXNwb25zZSBnZXRfbGF0ZXN0X2JhbGFuY2VzX2Zvcl9jb250cmFjdChiYXNlX2Fzc2V0X2lkLCBjb250cmFjdF9hZGRyZXNzLCBhY2NvdW50X2FkZHJlc3M9YWNjb3VudF9hZGRyZXNzLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwgc29ydF9ieT1zb3J0X2J5LCBvcmRlcj1vcmRlcikKCkdldCBsYXRlc3QgYmFsYW5jZXMgZm9yIGFsbCBhZGRyZXNzZXMgaG9sZGluZyB0b2tlbnMgZnJvbSBhIGNvbnRyYWN0CgpSZXR1cm5zIHRoZSBsYXRlc3QgYmFsYW5jZSBmb3IgZWFjaCB1bmlxdWUgYWRkcmVzcyB3aXRoIHN1cHBvcnQgZm9yIG51bWVyaWMgYmFsYW5jZSBzb3J0aW5nLiBUaGUgYHByZXZgIGN1cnNvciBpcyByZXNlcnZlZCBmb3IgZnV0dXJlIHN1cHBvcnQuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZHJlc3NfYmFsYW5jZV9wYWdlZF9yZXNwb25zZSBpbXBvcnQgQWRkcmVzc0JhbGFuY2VQYWdlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGJhc2VfYXNzZXRfaWQgPSAnRVRIX1RFU1QzJyAjIHN0ciB8IFRoZSBibG9ja2NoYWluIGJhc2UgYXNzZXRJZAogICAgY29udHJhY3RfYWRkcmVzcyA9ICcweEMyYzRlMURiNDFGMGJCOTc5OTZEMGVEMDU0MkQyMTcwZDE0NkZCNjYnICMgc3RyIHwgVGhlIGNvbnRyYWN0IGFkZHJlc3MKICAgIGFjY291bnRfYWRkcmVzcyA9ICcweDEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2NzgnICMgc3RyIHwgT3B0aW9uYWwgZmlsdGVyIHRvIGdldCBiYWxhbmNlIGZvciBhIHNwZWNpZmljIGFjY291bnQgYWRkcmVzcyAob3B0aW9uYWwpCiAgICBwYWdlX2N1cnNvciA9ICdNakF5TXkweE1pMHhNeUF5TURvek5qb3dPQzR6TURJPTpNVEV3TUE9PScgIyBzdHIgfCBQYWdlIGN1cnNvciB0byBnZXQgdGhlIG5leHQgcGFnZVwiIChvcHRpb25hbCkKICAgIHBhZ2Vfc2l6ZSA9IDEwICMgaW50IHwgTnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlIChtYXggMTAwKSwgcmVxdWVzdGluZyBtb3JlIHRoZW4gMTAwIHdpbGwgcmV0dXJuIDEwMCBpdGVtcyAob3B0aW9uYWwpCiAgICBzb3J0X2J5ID0gYmxvY2tUaW1lc3RhbXAgIyBzdHIgfCBTb3J0aW5nIGZpZWxkIGZvciBiYWxhbmNlcyAob3B0aW9uYWwpIChkZWZhdWx0IHRvIGJsb2NrVGltZXN0YW1wKQogICAgb3JkZXIgPSBERVNDICMgc3RyIHwgQVNDIC8gREVTQyBvcmRlcmluZyAoZGVmYXVsdCBERVNDKSAob3B0aW9uYWwpIChkZWZhdWx0IHRvIERFU0MpCgogICAgdHJ5OgogICAgICAgICMgR2V0IGxhdGVzdCBiYWxhbmNlcyBmb3IgYWxsIGFkZHJlc3NlcyBob2xkaW5nIHRva2VucyBmcm9tIGEgY29udHJhY3QKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLm9uY2hhaW5fZGF0YS5nZXRfbGF0ZXN0X2JhbGFuY2VzX2Zvcl9jb250cmFjdChiYXNlX2Fzc2V0X2lkLCBjb250cmFjdF9hZGRyZXNzLCBhY2NvdW50X2FkZHJlc3M9YWNjb3VudF9hZGRyZXNzLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwgc29ydF9ieT1zb3J0X2J5LCBvcmRlcj1vcmRlcikucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIE9uY2hhaW5EYXRhQXBpLT5nZXRfbGF0ZXN0X2JhbGFuY2VzX2Zvcl9jb250cmFjdDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBPbmNoYWluRGF0YUFwaS0+Z2V0X2xhdGVzdF9iYWxhbmNlc19mb3JfY29udHJhY3Q6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmJhc2VfYXNzZXRfaWQqKiB8ICoqc3RyKip8IFRoZSBibG9ja2NoYWluIGJhc2UgYXNzZXRJZCB8IAogKipjb250cmFjdF9hZGRyZXNzKiogfCAqKnN0cioqfCBUaGUgY29udHJhY3QgYWRkcmVzcyB8IAogKiphY2NvdW50X2FkZHJlc3MqKiB8ICoqc3RyKip8IE9wdGlvbmFsIGZpbHRlciB0byBnZXQgYmFsYW5jZSBmb3IgYSBzcGVjaWZpYyBhY2NvdW50IGFkZHJlc3MgfCBbb3B0aW9uYWxdIAogKipwYWdlX2N1cnNvcioqIHwgKipzdHIqKnwgUGFnZSBjdXJzb3IgdG8gZ2V0IHRoZSBuZXh0IHBhZ2VcJnF1b3Q7IHwgW29wdGlvbmFsXSAKICoqcGFnZV9zaXplKiogfCAqKmludCoqfCBOdW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UgKG1heCAxMDApLCByZXF1ZXN0aW5nIG1vcmUgdGhlbiAxMDAgd2lsbCByZXR1cm4gMTAwIGl0ZW1zIHwgW29wdGlvbmFsXSAKICoqc29ydF9ieSoqIHwgKipzdHIqKnwgU29ydGluZyBmaWVsZCBmb3IgYmFsYW5jZXMgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIGJsb2NrVGltZXN0YW1wXQogKipvcmRlcioqIHwgKipzdHIqKnwgQVNDIC8gREVTQyBvcmRlcmluZyAoZGVmYXVsdCBERVNDKSB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gREVTQ10KCiMjIyBSZXR1cm4gdHlwZQoKWyoqQWRkcmVzc0JhbGFuY2VQYWdlZFJlc3BvbnNlKipdKEFkZHJlc3NCYWxhbmNlUGFnZWRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFN1Y2Nlc3NmdWxseSByZXRyaWV2ZWQgdGhlIGxhdGVzdCBiYWxhbmNlcyBmb3IgdGhlIGNvbnRyYWN0IHwgIC0gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfb25jaGFpbl90cmFuc2FjdGlvbnMqKgo+IE9uY2hhaW5UcmFuc2FjdGlvbnNQYWdlZFJlc3BvbnNlIGdldF9vbmNoYWluX3RyYW5zYWN0aW9ucyhiYXNlX2Fzc2V0X2lkLCBjb250cmFjdF9hZGRyZXNzLCBzdGFydF9kYXRlPXN0YXJ0X2RhdGUsIGVuZF9kYXRlPWVuZF9kYXRlLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwgc29ydF9ieT1zb3J0X2J5LCBvcmRlcj1vcmRlcikKCkZldGNoIG9uY2hhaW4gdHJhbnNhY3Rpb25zIGZvciBhIGNvbnRyYWN0CgpSZXR1cm5zIGEgcGFnaW5hdGVkIGxpc3Qgb2Ygb25jaGFpbiB0cmFuc2FjdGlvbnMgZm9yIHRoZSBzcGVjaWZpZWQgY29udHJhY3QgYWRkcmVzcyBhbmQgYmFzZSBhc3NldCBJRCwgb3B0aW9uYWxseSBmaWx0ZXJlZCBieSBkYXRlIHJhbmdlLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5vbmNoYWluX3RyYW5zYWN0aW9uc19wYWdlZF9yZXNwb25zZSBpbXBvcnQgT25jaGFpblRyYW5zYWN0aW9uc1BhZ2VkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgYmFzZV9hc3NldF9pZCA9ICdFVEhfVEVTVDMnICMgc3RyIHwgVGhlIGJsb2NrY2hhaW4gYmFzZSBhc3NldElkCiAgICBjb250cmFjdF9hZGRyZXNzID0gJzB4QzJjNGUxRGI0MUYwYkI5Nzk5NkQwZUQwNTQyRDIxNzBkMTQ2RkI2NicgIyBzdHIgfCBUaGUgY29udHJhY3QgYWRkcmVzcwogICAgc3RhcnRfZGF0ZSA9ICcyMDI1LTAxLTE2VDE1OjQ1OjAwWicgIyBkYXRldGltZSB8IFN0YXJ0IGRhdGUgb2YgdGhlIHRpbWUgcmFuZ2UgaW4gSVNPIDg2MDEgZm9ybWF0IChvcHRpb25hbCkKICAgIGVuZF9kYXRlID0gJzIwMjUtMDEtMTZUMTU6NDU6MDBaJyAjIGRhdGV0aW1lIHwgRW5kIGRhdGUgb2YgdGhlIHRpbWUgcmFuZ2UgaW4gSVNPIDg2MDEgZm9ybWF0IChvcHRpb25hbCkKICAgIHBhZ2VfY3Vyc29yID0gJ01qQXlNeTB4TWkweE15QXlNRG96Tmpvd09DNHpNREk9Ok1URXdNQT09JyAjIHN0ciB8IFBhZ2UgY3Vyc29yIHRvIGdldCB0aGUgbmV4dCBwYWdlXCIgKG9wdGlvbmFsKQogICAgcGFnZV9zaXplID0gMTAgIyBpbnQgfCBOdW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UgKG1heCAxMDApLCByZXF1ZXN0aW5nIG1vcmUgdGhlbiAxMDAgd2lsbCByZXR1cm4gMTAwIGl0ZW1zIChvcHRpb25hbCkKICAgIHNvcnRfYnkgPSBibG9ja1RpbWVzdGFtcCAjIHN0ciB8IFNvcnRpbmcgZmllbGQgKGVudW0pLiAob3B0aW9uYWwpIChkZWZhdWx0IHRvIGJsb2NrVGltZXN0YW1wKQogICAgb3JkZXIgPSBERVNDICMgc3RyIHwgQVNDIC8gREVTQyBvcmRlcmluZyAoZGVmYXVsdCBERVNDKSAob3B0aW9uYWwpIChkZWZhdWx0IHRvIERFU0MpCgogICAgdHJ5OgogICAgICAgICMgRmV0Y2ggb25jaGFpbiB0cmFuc2FjdGlvbnMgZm9yIGEgY29udHJhY3QKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLm9uY2hhaW5fZGF0YS5nZXRfb25jaGFpbl90cmFuc2FjdGlvbnMoYmFzZV9hc3NldF9pZCwgY29udHJhY3RfYWRkcmVzcywgc3RhcnRfZGF0ZT1zdGFydF9kYXRlLCBlbmRfZGF0ZT1lbmRfZGF0ZSwgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsIHNvcnRfYnk9c29ydF9ieSwgb3JkZXI9b3JkZXIpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBPbmNoYWluRGF0YUFwaS0+Z2V0X29uY2hhaW5fdHJhbnNhY3Rpb25zOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIE9uY2hhaW5EYXRhQXBpLT5nZXRfb25jaGFpbl90cmFuc2FjdGlvbnM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmJhc2VfYXNzZXRfaWQqKiB8ICoqc3RyKip8IFRoZSBibG9ja2NoYWluIGJhc2UgYXNzZXRJZCB8IAogKipjb250cmFjdF9hZGRyZXNzKiogfCAqKnN0cioqfCBUaGUgY29udHJhY3QgYWRkcmVzcyB8IAogKipzdGFydF9kYXRlKiogfCAqKmRhdGV0aW1lKip8IFN0YXJ0IGRhdGUgb2YgdGhlIHRpbWUgcmFuZ2UgaW4gSVNPIDg2MDEgZm9ybWF0IHwgW29wdGlvbmFsXSAKICoqZW5kX2RhdGUqKiB8ICoqZGF0ZXRpbWUqKnwgRW5kIGRhdGUgb2YgdGhlIHRpbWUgcmFuZ2UgaW4gSVNPIDg2MDEgZm9ybWF0IHwgW29wdGlvbmFsXSAKICoqcGFnZV9jdXJzb3IqKiB8ICoqc3RyKip8IFBhZ2UgY3Vyc29yIHRvIGdldCB0aGUgbmV4dCBwYWdlXCZxdW90OyB8IFtvcHRpb25hbF0gCiAqKnBhZ2Vfc2l6ZSoqIHwgKippbnQqKnwgTnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlIChtYXggMTAwKSwgcmVxdWVzdGluZyBtb3JlIHRoZW4gMTAwIHdpbGwgcmV0dXJuIDEwMCBpdGVtcyB8IFtvcHRpb25hbF0gCiAqKnNvcnRfYnkqKiB8ICoqc3RyKip8IFNvcnRpbmcgZmllbGQgKGVudW0pLiB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gYmxvY2tUaW1lc3RhbXBdCiAqKm9yZGVyKiogfCAqKnN0cioqfCBBU0MgLyBERVNDIG9yZGVyaW5nIChkZWZhdWx0IERFU0MpIHwgW29wdGlvbmFsXSBbZGVmYXVsdCB0byBERVNDXQoKIyMjIFJldHVybiB0eXBlCgpbKipPbmNoYWluVHJhbnNhY3Rpb25zUGFnZWRSZXNwb25zZSoqXShPbmNoYWluVHJhbnNhY3Rpb25zUGFnZWRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IE9uY2hhaW4gdHJhbnNhY3Rpb25zIGZldGNoZWQgc3VjY2Vzc2Z1bGx5IHwgIC0gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCg== \ No newline at end of file diff --git a/docs/OnchainTransaction.md b/docs/OnchainTransaction.md index 533fdcb0..56f192fb 100644 --- a/docs/OnchainTransaction.md +++ b/docs/OnchainTransaction.md @@ -1,45 +1 @@ -# OnchainTransaction - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | Unique identifier for the transaction | -**base_asset_id** | **str** | The blockchain base asset identifier | -**block_hash** | **str** | Hash of the block containing this transaction | -**block_number** | **int** | Block number containing this transaction | -**block_timestamp** | **datetime** | Timestamp when the block was mined | -**chain_id** | **int** | Chain ID of the blockchain | -**contract_address** | **str** | Contract address if this is a contract transaction | [optional] -**cumulative_gas_used** | **str** | Cumulative gas used in the block up to this transaction | -**decoded_logs** | [**DecodedLog**](DecodedLog.md) | | [optional] -**effective_gas_price** | **str** | Effective gas price paid for the transaction | -**from_address** | **str** | Address that initiated the transaction | -**gas_used** | **str** | Amount of gas used by this transaction | -**status** | **str** | Transaction status | -**to_address** | **str** | Address that received the transaction | [optional] -**transaction_hash** | **str** | Hash of the transaction | -**transaction_index** | **str** | Index of the transaction in the block | -**type** | **str** | Transaction type | - -## Example - -```python -from fireblocks.models.onchain_transaction import OnchainTransaction - -# TODO update the JSON string below -json = "{}" -# create an instance of OnchainTransaction from a JSON string -onchain_transaction_instance = OnchainTransaction.from_json(json) -# print the JSON string representation of the object -print(OnchainTransaction.to_json()) - -# convert the object into a dict -onchain_transaction_dict = onchain_transaction_instance.to_dict() -# create an instance of OnchainTransaction from a dict -onchain_transaction_from_dict = OnchainTransaction.from_dict(onchain_transaction_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBPbmNoYWluVHJhbnNhY3Rpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHRyYW5zYWN0aW9uIHwgCioqYmFzZV9hc3NldF9pZCoqIHwgKipzdHIqKiB8IFRoZSBibG9ja2NoYWluIGJhc2UgYXNzZXQgaWRlbnRpZmllciB8IAoqKmJsb2NrX2hhc2gqKiB8ICoqc3RyKiogfCBIYXNoIG9mIHRoZSBibG9jayBjb250YWluaW5nIHRoaXMgdHJhbnNhY3Rpb24gfCAKKipibG9ja19udW1iZXIqKiB8ICoqaW50KiogfCBCbG9jayBudW1iZXIgY29udGFpbmluZyB0aGlzIHRyYW5zYWN0aW9uIHwgCioqYmxvY2tfdGltZXN0YW1wKiogfCAqKmRhdGV0aW1lKiogfCBUaW1lc3RhbXAgd2hlbiB0aGUgYmxvY2sgd2FzIG1pbmVkIHwgCioqY2hhaW5faWQqKiB8ICoqaW50KiogfCBDaGFpbiBJRCBvZiB0aGUgYmxvY2tjaGFpbiB8IAoqKmNvbnRyYWN0X2FkZHJlc3MqKiB8ICoqc3RyKiogfCBDb250cmFjdCBhZGRyZXNzIGlmIHRoaXMgaXMgYSBjb250cmFjdCB0cmFuc2FjdGlvbiB8IFtvcHRpb25hbF0gCioqY3VtdWxhdGl2ZV9nYXNfdXNlZCoqIHwgKipzdHIqKiB8IEN1bXVsYXRpdmUgZ2FzIHVzZWQgaW4gdGhlIGJsb2NrIHVwIHRvIHRoaXMgdHJhbnNhY3Rpb24gfCAKKipkZWNvZGVkX2xvZ3MqKiB8IFsqKkRlY29kZWRMb2cqKl0oRGVjb2RlZExvZy5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmVmZmVjdGl2ZV9nYXNfcHJpY2UqKiB8ICoqc3RyKiogfCBFZmZlY3RpdmUgZ2FzIHByaWNlIHBhaWQgZm9yIHRoZSB0cmFuc2FjdGlvbiB8IAoqKmZyb21fYWRkcmVzcyoqIHwgKipzdHIqKiB8IEFkZHJlc3MgdGhhdCBpbml0aWF0ZWQgdGhlIHRyYW5zYWN0aW9uIHwgCioqZ2FzX3VzZWQqKiB8ICoqc3RyKiogfCBBbW91bnQgb2YgZ2FzIHVzZWQgYnkgdGhpcyB0cmFuc2FjdGlvbiB8IAoqKnN0YXR1cyoqIHwgKipzdHIqKiB8IFRyYW5zYWN0aW9uIHN0YXR1cyB8IAoqKnRvX2FkZHJlc3MqKiB8ICoqc3RyKiogfCBBZGRyZXNzIHRoYXQgcmVjZWl2ZWQgdGhlIHRyYW5zYWN0aW9uIHwgW29wdGlvbmFsXSAKKip0cmFuc2FjdGlvbl9oYXNoKiogfCAqKnN0cioqIHwgSGFzaCBvZiB0aGUgdHJhbnNhY3Rpb24gfCAKKip0cmFuc2FjdGlvbl9pbmRleCoqIHwgKipzdHIqKiB8IEluZGV4IG9mIHRoZSB0cmFuc2FjdGlvbiBpbiB0aGUgYmxvY2sgfCAKKip0eXBlKiogfCAqKnN0cioqIHwgVHJhbnNhY3Rpb24gdHlwZSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMub25jaGFpbl90cmFuc2FjdGlvbiBpbXBvcnQgT25jaGFpblRyYW5zYWN0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBPbmNoYWluVHJhbnNhY3Rpb24gZnJvbSBhIEpTT04gc3RyaW5nCm9uY2hhaW5fdHJhbnNhY3Rpb25faW5zdGFuY2UgPSBPbmNoYWluVHJhbnNhY3Rpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoT25jaGFpblRyYW5zYWN0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cm9uY2hhaW5fdHJhbnNhY3Rpb25fZGljdCA9IG9uY2hhaW5fdHJhbnNhY3Rpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE9uY2hhaW5UcmFuc2FjdGlvbiBmcm9tIGEgZGljdApvbmNoYWluX3RyYW5zYWN0aW9uX2Zyb21fZGljdCA9IE9uY2hhaW5UcmFuc2FjdGlvbi5mcm9tX2RpY3Qob25jaGFpbl90cmFuc2FjdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/OnchainTransactionsPagedResponse.md b/docs/OnchainTransactionsPagedResponse.md index ab3ed974..71b2e755 100644 --- a/docs/OnchainTransactionsPagedResponse.md +++ b/docs/OnchainTransactionsPagedResponse.md @@ -1,32 +1 @@ -# OnchainTransactionsPagedResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[OnchainTransaction]**](OnchainTransaction.md) | Array of onchain transactions | -**next** | **str** | Cursor for next page | [optional] -**prev** | **str** | Cursor for previous page | [optional] -**total** | **float** | Total count of items | [optional] - -## Example - -```python -from fireblocks.models.onchain_transactions_paged_response import OnchainTransactionsPagedResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of OnchainTransactionsPagedResponse from a JSON string -onchain_transactions_paged_response_instance = OnchainTransactionsPagedResponse.from_json(json) -# print the JSON string representation of the object -print(OnchainTransactionsPagedResponse.to_json()) - -# convert the object into a dict -onchain_transactions_paged_response_dict = onchain_transactions_paged_response_instance.to_dict() -# create an instance of OnchainTransactionsPagedResponse from a dict -onchain_transactions_paged_response_from_dict = OnchainTransactionsPagedResponse.from_dict(onchain_transactions_paged_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBPbmNoYWluVHJhbnNhY3Rpb25zUGFnZWRSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkYXRhKiogfCBbKipMaXN0W09uY2hhaW5UcmFuc2FjdGlvbl0qKl0oT25jaGFpblRyYW5zYWN0aW9uLm1kKSB8IEFycmF5IG9mIG9uY2hhaW4gdHJhbnNhY3Rpb25zIHwgCioqbmV4dCoqIHwgKipzdHIqKiB8IEN1cnNvciBmb3IgbmV4dCBwYWdlIHwgW29wdGlvbmFsXSAKKipwcmV2KiogfCAqKnN0cioqIHwgQ3Vyc29yIGZvciBwcmV2aW91cyBwYWdlIHwgW29wdGlvbmFsXSAKKip0b3RhbCoqIHwgKipmbG9hdCoqIHwgVG90YWwgY291bnQgb2YgaXRlbXMgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMub25jaGFpbl90cmFuc2FjdGlvbnNfcGFnZWRfcmVzcG9uc2UgaW1wb3J0IE9uY2hhaW5UcmFuc2FjdGlvbnNQYWdlZFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBPbmNoYWluVHJhbnNhY3Rpb25zUGFnZWRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKb25jaGFpbl90cmFuc2FjdGlvbnNfcGFnZWRfcmVzcG9uc2VfaW5zdGFuY2UgPSBPbmNoYWluVHJhbnNhY3Rpb25zUGFnZWRSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChPbmNoYWluVHJhbnNhY3Rpb25zUGFnZWRSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApvbmNoYWluX3RyYW5zYWN0aW9uc19wYWdlZF9yZXNwb25zZV9kaWN0ID0gb25jaGFpbl90cmFuc2FjdGlvbnNfcGFnZWRfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE9uY2hhaW5UcmFuc2FjdGlvbnNQYWdlZFJlc3BvbnNlIGZyb20gYSBkaWN0Cm9uY2hhaW5fdHJhbnNhY3Rpb25zX3BhZ2VkX3Jlc3BvbnNlX2Zyb21fZGljdCA9IE9uY2hhaW5UcmFuc2FjdGlvbnNQYWdlZFJlc3BvbnNlLmZyb21fZGljdChvbmNoYWluX3RyYW5zYWN0aW9uc19wYWdlZF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/OneTimeAddress.md b/docs/OneTimeAddress.md index 805b515e..7b8f308b 100644 --- a/docs/OneTimeAddress.md +++ b/docs/OneTimeAddress.md @@ -1,30 +1 @@ -# OneTimeAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**address** | **str** | | -**tag** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.one_time_address import OneTimeAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of OneTimeAddress from a JSON string -one_time_address_instance = OneTimeAddress.from_json(json) -# print the JSON string representation of the object -print(OneTimeAddress.to_json()) - -# convert the object into a dict -one_time_address_dict = one_time_address_instance.to_dict() -# create an instance of OneTimeAddress from a dict -one_time_address_from_dict = OneTimeAddress.from_dict(one_time_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBPbmVUaW1lQWRkcmVzcwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphZGRyZXNzKiogfCAqKnN0cioqIHwgIHwgCioqdGFnKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9uZV90aW1lX2FkZHJlc3MgaW1wb3J0IE9uZVRpbWVBZGRyZXNzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBPbmVUaW1lQWRkcmVzcyBmcm9tIGEgSlNPTiBzdHJpbmcKb25lX3RpbWVfYWRkcmVzc19pbnN0YW5jZSA9IE9uZVRpbWVBZGRyZXNzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KE9uZVRpbWVBZGRyZXNzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cm9uZV90aW1lX2FkZHJlc3NfZGljdCA9IG9uZV90aW1lX2FkZHJlc3NfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE9uZVRpbWVBZGRyZXNzIGZyb20gYSBkaWN0Cm9uZV90aW1lX2FkZHJlc3NfZnJvbV9kaWN0ID0gT25lVGltZUFkZHJlc3MuZnJvbV9kaWN0KG9uZV90aW1lX2FkZHJlc3NfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/OneTimeAddressAccount.md b/docs/OneTimeAddressAccount.md index a8cfc62b..2fe5ec75 100644 --- a/docs/OneTimeAddressAccount.md +++ b/docs/OneTimeAddressAccount.md @@ -1,30 +1 @@ -# OneTimeAddressAccount - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**one_time_address** | **str** | | -**tag** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.one_time_address_account import OneTimeAddressAccount - -# TODO update the JSON string below -json = "{}" -# create an instance of OneTimeAddressAccount from a JSON string -one_time_address_account_instance = OneTimeAddressAccount.from_json(json) -# print the JSON string representation of the object -print(OneTimeAddressAccount.to_json()) - -# convert the object into a dict -one_time_address_account_dict = one_time_address_account_instance.to_dict() -# create an instance of OneTimeAddressAccount from a dict -one_time_address_account_from_dict = OneTimeAddressAccount.from_dict(one_time_address_account_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBPbmVUaW1lQWRkcmVzc0FjY291bnQKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqb25lX3RpbWVfYWRkcmVzcyoqIHwgKipzdHIqKiB8ICB8IAoqKnRhZyoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5vbmVfdGltZV9hZGRyZXNzX2FjY291bnQgaW1wb3J0IE9uZVRpbWVBZGRyZXNzQWNjb3VudAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgT25lVGltZUFkZHJlc3NBY2NvdW50IGZyb20gYSBKU09OIHN0cmluZwpvbmVfdGltZV9hZGRyZXNzX2FjY291bnRfaW5zdGFuY2UgPSBPbmVUaW1lQWRkcmVzc0FjY291bnQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoT25lVGltZUFkZHJlc3NBY2NvdW50LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cm9uZV90aW1lX2FkZHJlc3NfYWNjb3VudF9kaWN0ID0gb25lX3RpbWVfYWRkcmVzc19hY2NvdW50X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBPbmVUaW1lQWRkcmVzc0FjY291bnQgZnJvbSBhIGRpY3QKb25lX3RpbWVfYWRkcmVzc19hY2NvdW50X2Zyb21fZGljdCA9IE9uZVRpbWVBZGRyZXNzQWNjb3VudC5mcm9tX2RpY3Qob25lX3RpbWVfYWRkcmVzc19hY2NvdW50X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/OneTimeAddressPeerType.md b/docs/OneTimeAddressPeerType.md index 51322539..4b2d4b07 100644 --- a/docs/OneTimeAddressPeerType.md +++ b/docs/OneTimeAddressPeerType.md @@ -1,10 +1 @@ -# OneTimeAddressPeerType - - -## Enum - -* `ONE_TIME_ADDRESS` (value: `'ONE_TIME_ADDRESS'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBPbmVUaW1lQWRkcmVzc1BlZXJUeXBlCgoKIyMgRW51bQoKKiBgT05FX1RJTUVfQUREUkVTU2AgKHZhbHVlOiBgJ09ORV9USU1FX0FERFJFU1MnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/OneTimeAddressReference.md b/docs/OneTimeAddressReference.md index 31910169..a5c438d4 100644 --- a/docs/OneTimeAddressReference.md +++ b/docs/OneTimeAddressReference.md @@ -1,31 +1 @@ -# OneTimeAddressReference - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**OneTimeAddressPeerType**](OneTimeAddressPeerType.md) | | -**address** | **str** | | -**tag** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.one_time_address_reference import OneTimeAddressReference - -# TODO update the JSON string below -json = "{}" -# create an instance of OneTimeAddressReference from a JSON string -one_time_address_reference_instance = OneTimeAddressReference.from_json(json) -# print the JSON string representation of the object -print(OneTimeAddressReference.to_json()) - -# convert the object into a dict -one_time_address_reference_dict = one_time_address_reference_instance.to_dict() -# create an instance of OneTimeAddressReference from a dict -one_time_address_reference_from_dict = OneTimeAddressReference.from_dict(one_time_address_reference_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBPbmVUaW1lQWRkcmVzc1JlZmVyZW5jZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eXBlKiogfCBbKipPbmVUaW1lQWRkcmVzc1BlZXJUeXBlKipdKE9uZVRpbWVBZGRyZXNzUGVlclR5cGUubWQpIHwgIHwgCioqYWRkcmVzcyoqIHwgKipzdHIqKiB8ICB8IAoqKnRhZyoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5vbmVfdGltZV9hZGRyZXNzX3JlZmVyZW5jZSBpbXBvcnQgT25lVGltZUFkZHJlc3NSZWZlcmVuY2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE9uZVRpbWVBZGRyZXNzUmVmZXJlbmNlIGZyb20gYSBKU09OIHN0cmluZwpvbmVfdGltZV9hZGRyZXNzX3JlZmVyZW5jZV9pbnN0YW5jZSA9IE9uZVRpbWVBZGRyZXNzUmVmZXJlbmNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KE9uZVRpbWVBZGRyZXNzUmVmZXJlbmNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cm9uZV90aW1lX2FkZHJlc3NfcmVmZXJlbmNlX2RpY3QgPSBvbmVfdGltZV9hZGRyZXNzX3JlZmVyZW5jZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgT25lVGltZUFkZHJlc3NSZWZlcmVuY2UgZnJvbSBhIGRpY3QKb25lX3RpbWVfYWRkcmVzc19yZWZlcmVuY2VfZnJvbV9kaWN0ID0gT25lVGltZUFkZHJlc3NSZWZlcmVuY2UuZnJvbV9kaWN0KG9uZV90aW1lX2FkZHJlc3NfcmVmZXJlbmNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/OperationExecutionFailure.md b/docs/OperationExecutionFailure.md index f67c034e..50f8e183 100644 --- a/docs/OperationExecutionFailure.md +++ b/docs/OperationExecutionFailure.md @@ -1,30 +1 @@ -# OperationExecutionFailure - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**reason** | **str** | | -**data** | **Dict[str, object]** | | [optional] - -## Example - -```python -from fireblocks.models.operation_execution_failure import OperationExecutionFailure - -# TODO update the JSON string below -json = "{}" -# create an instance of OperationExecutionFailure from a JSON string -operation_execution_failure_instance = OperationExecutionFailure.from_json(json) -# print the JSON string representation of the object -print(OperationExecutionFailure.to_json()) - -# convert the object into a dict -operation_execution_failure_dict = operation_execution_failure_instance.to_dict() -# create an instance of OperationExecutionFailure from a dict -operation_execution_failure_from_dict = OperationExecutionFailure.from_dict(operation_execution_failure_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBPcGVyYXRpb25FeGVjdXRpb25GYWlsdXJlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnJlYXNvbioqIHwgKipzdHIqKiB8ICB8IAoqKmRhdGEqKiB8ICoqRGljdFtzdHIsIG9iamVjdF0qKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5vcGVyYXRpb25fZXhlY3V0aW9uX2ZhaWx1cmUgaW1wb3J0IE9wZXJhdGlvbkV4ZWN1dGlvbkZhaWx1cmUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE9wZXJhdGlvbkV4ZWN1dGlvbkZhaWx1cmUgZnJvbSBhIEpTT04gc3RyaW5nCm9wZXJhdGlvbl9leGVjdXRpb25fZmFpbHVyZV9pbnN0YW5jZSA9IE9wZXJhdGlvbkV4ZWN1dGlvbkZhaWx1cmUuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoT3BlcmF0aW9uRXhlY3V0aW9uRmFpbHVyZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApvcGVyYXRpb25fZXhlY3V0aW9uX2ZhaWx1cmVfZGljdCA9IG9wZXJhdGlvbl9leGVjdXRpb25fZmFpbHVyZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgT3BlcmF0aW9uRXhlY3V0aW9uRmFpbHVyZSBmcm9tIGEgZGljdApvcGVyYXRpb25fZXhlY3V0aW9uX2ZhaWx1cmVfZnJvbV9kaWN0ID0gT3BlcmF0aW9uRXhlY3V0aW9uRmFpbHVyZS5mcm9tX2RpY3Qob3BlcmF0aW9uX2V4ZWN1dGlvbl9mYWlsdXJlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/OrderDetails.md b/docs/OrderDetails.md index afef4a91..6d7f1fd2 100644 --- a/docs/OrderDetails.md +++ b/docs/OrderDetails.md @@ -1,45 +1 @@ -# OrderDetails - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | -**via** | [**AccessType**](AccessType.md) | | -**status** | [**OrderStatus**](OrderStatus.md) | | -**created_at** | **datetime** | | -**updated_at** | **datetime** | | [optional] -**receipt** | [**TransferReceipt**](TransferReceipt.md) | | [optional] -**general_fees** | [**List[Fee]**](Fee.md) | | [optional] -**execution_steps** | [**List[OrderExecutionStep]**](OrderExecutionStep.md) | | -**execution_response_details** | [**ExecutionResponseDetails**](ExecutionResponseDetails.md) | | -**settlement** | [**Settlement**](Settlement.md) | | -**participants_identification** | [**ParticipantsIdentification**](ParticipantsIdentification.md) | | [optional] -**payment_instructions** | [**List[PaymentInstructions]**](PaymentInstructions.md) | Payment instructions for the order, the client can use one of these to pay the order. | [optional] -**created_by** | **str** | The ID of the user who created the order | -**customer_internal_reference_id** | **str** | Internal reference ID for the customer | [optional] -**note** | **str** | Optional note for the Order | [optional] -**expires_at** | **datetime** | | [optional] -**failure** | [**Failure**](Failure.md) | | [optional] - -## Example - -```python -from fireblocks.models.order_details import OrderDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of OrderDetails from a JSON string -order_details_instance = OrderDetails.from_json(json) -# print the JSON string representation of the object -print(OrderDetails.to_json()) - -# convert the object into a dict -order_details_dict = order_details_instance.to_dict() -# create an instance of OrderDetails from a dict -order_details_from_dict = OrderDetails.from_dict(order_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBPcmRlckRldGFpbHMKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCAgfCAKKip2aWEqKiB8IFsqKkFjY2Vzc1R5cGUqKl0oQWNjZXNzVHlwZS5tZCkgfCAgfCAKKipzdGF0dXMqKiB8IFsqKk9yZGVyU3RhdHVzKipdKE9yZGVyU3RhdHVzLm1kKSB8ICB8IAoqKmNyZWF0ZWRfYXQqKiB8ICoqZGF0ZXRpbWUqKiB8ICB8IAoqKnVwZGF0ZWRfYXQqKiB8ICoqZGF0ZXRpbWUqKiB8ICB8IFtvcHRpb25hbF0gCioqcmVjZWlwdCoqIHwgWyoqVHJhbnNmZXJSZWNlaXB0KipdKFRyYW5zZmVyUmVjZWlwdC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmdlbmVyYWxfZmVlcyoqIHwgWyoqTGlzdFtGZWVdKipdKEZlZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmV4ZWN1dGlvbl9zdGVwcyoqIHwgWyoqTGlzdFtPcmRlckV4ZWN1dGlvblN0ZXBdKipdKE9yZGVyRXhlY3V0aW9uU3RlcC5tZCkgfCAgfCAKKipleGVjdXRpb25fcmVzcG9uc2VfZGV0YWlscyoqIHwgWyoqRXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzKipdKEV4ZWN1dGlvblJlc3BvbnNlRGV0YWlscy5tZCkgfCAgfCAKKipzZXR0bGVtZW50KiogfCBbKipTZXR0bGVtZW50KipdKFNldHRsZW1lbnQubWQpIHwgIHwgCioqcGFydGljaXBhbnRzX2lkZW50aWZpY2F0aW9uKiogfCBbKipQYXJ0aWNpcGFudHNJZGVudGlmaWNhdGlvbioqXShQYXJ0aWNpcGFudHNJZGVudGlmaWNhdGlvbi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnBheW1lbnRfaW5zdHJ1Y3Rpb25zKiogfCBbKipMaXN0W1BheW1lbnRJbnN0cnVjdGlvbnNdKipdKFBheW1lbnRJbnN0cnVjdGlvbnMubWQpIHwgUGF5bWVudCBpbnN0cnVjdGlvbnMgZm9yIHRoZSBvcmRlciwgdGhlIGNsaWVudCBjYW4gdXNlIG9uZSBvZiB0aGVzZSB0byBwYXkgdGhlIG9yZGVyLiB8IFtvcHRpb25hbF0gCioqY3JlYXRlZF9ieSoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgdXNlciB3aG8gY3JlYXRlZCB0aGUgb3JkZXIgfCAKKipjdXN0b21lcl9pbnRlcm5hbF9yZWZlcmVuY2VfaWQqKiB8ICoqc3RyKiogfCBJbnRlcm5hbCByZWZlcmVuY2UgSUQgZm9yIHRoZSBjdXN0b21lciB8IFtvcHRpb25hbF0gCioqbm90ZSoqIHwgKipzdHIqKiB8IE9wdGlvbmFsIG5vdGUgZm9yIHRoZSBPcmRlciB8IFtvcHRpb25hbF0gCioqZXhwaXJlc19hdCoqIHwgKipkYXRldGltZSoqIHwgIHwgW29wdGlvbmFsXSAKKipmYWlsdXJlKiogfCBbKipGYWlsdXJlKipdKEZhaWx1cmUubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9yZGVyX2RldGFpbHMgaW1wb3J0IE9yZGVyRGV0YWlscwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgT3JkZXJEZXRhaWxzIGZyb20gYSBKU09OIHN0cmluZwpvcmRlcl9kZXRhaWxzX2luc3RhbmNlID0gT3JkZXJEZXRhaWxzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KE9yZGVyRGV0YWlscy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApvcmRlcl9kZXRhaWxzX2RpY3QgPSBvcmRlcl9kZXRhaWxzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBPcmRlckRldGFpbHMgZnJvbSBhIGRpY3QKb3JkZXJfZGV0YWlsc19mcm9tX2RpY3QgPSBPcmRlckRldGFpbHMuZnJvbV9kaWN0KG9yZGVyX2RldGFpbHNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/OrderExecutionStep.md b/docs/OrderExecutionStep.md index 46b695a0..acb2cd02 100644 --- a/docs/OrderExecutionStep.md +++ b/docs/OrderExecutionStep.md @@ -1,34 +1 @@ -# OrderExecutionStep - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**ExecutionStepType**](ExecutionStepType.md) | | -**status** | [**ExecutionStepStatusEnum**](ExecutionStepStatusEnum.md) | | -**fee** | [**Fee**](Fee.md) | | [optional] -**tx_id** | **str** | | [optional] -**tx_hash** | **str** | | [optional] -**error** | [**ExecutionStepError**](ExecutionStepError.md) | | [optional] - -## Example - -```python -from fireblocks.models.order_execution_step import OrderExecutionStep - -# TODO update the JSON string below -json = "{}" -# create an instance of OrderExecutionStep from a JSON string -order_execution_step_instance = OrderExecutionStep.from_json(json) -# print the JSON string representation of the object -print(OrderExecutionStep.to_json()) - -# convert the object into a dict -order_execution_step_dict = order_execution_step_instance.to_dict() -# create an instance of OrderExecutionStep from a dict -order_execution_step_from_dict = OrderExecutionStep.from_dict(order_execution_step_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBPcmRlckV4ZWN1dGlvblN0ZXAKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgWyoqRXhlY3V0aW9uU3RlcFR5cGUqKl0oRXhlY3V0aW9uU3RlcFR5cGUubWQpIHwgIHwgCioqc3RhdHVzKiogfCBbKipFeGVjdXRpb25TdGVwU3RhdHVzRW51bSoqXShFeGVjdXRpb25TdGVwU3RhdHVzRW51bS5tZCkgfCAgfCAKKipmZWUqKiB8IFsqKkZlZSoqXShGZWUubWQpIHwgIHwgW29wdGlvbmFsXSAKKip0eF9pZCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqdHhfaGFzaCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqZXJyb3IqKiB8IFsqKkV4ZWN1dGlvblN0ZXBFcnJvcioqXShFeGVjdXRpb25TdGVwRXJyb3IubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9yZGVyX2V4ZWN1dGlvbl9zdGVwIGltcG9ydCBPcmRlckV4ZWN1dGlvblN0ZXAKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE9yZGVyRXhlY3V0aW9uU3RlcCBmcm9tIGEgSlNPTiBzdHJpbmcKb3JkZXJfZXhlY3V0aW9uX3N0ZXBfaW5zdGFuY2UgPSBPcmRlckV4ZWN1dGlvblN0ZXAuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoT3JkZXJFeGVjdXRpb25TdGVwLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0Cm9yZGVyX2V4ZWN1dGlvbl9zdGVwX2RpY3QgPSBvcmRlcl9leGVjdXRpb25fc3RlcF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgT3JkZXJFeGVjdXRpb25TdGVwIGZyb20gYSBkaWN0Cm9yZGVyX2V4ZWN1dGlvbl9zdGVwX2Zyb21fZGljdCA9IE9yZGVyRXhlY3V0aW9uU3RlcC5mcm9tX2RpY3Qob3JkZXJfZXhlY3V0aW9uX3N0ZXBfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/OrderSide.md b/docs/OrderSide.md index 58fb022b..d1755557 100644 --- a/docs/OrderSide.md +++ b/docs/OrderSide.md @@ -1,15 +1 @@ -# OrderSide - -Order side for trading operations - -## Enum - -* `BUY` (value: `'BUY'`) - -* `SELL` (value: `'SELL'`) - -* `ANY` (value: `'ANY'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBPcmRlclNpZGUKCk9yZGVyIHNpZGUgZm9yIHRyYWRpbmcgb3BlcmF0aW9ucwoKIyMgRW51bQoKKiBgQlVZYCAodmFsdWU6IGAnQlVZJ2ApCgoqIGBTRUxMYCAodmFsdWU6IGAnU0VMTCdgKQoKKiBgQU5ZYCAodmFsdWU6IGAnQU5ZJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/OrderStatus.md b/docs/OrderStatus.md index 47f0cddf..823ec6bc 100644 --- a/docs/OrderStatus.md +++ b/docs/OrderStatus.md @@ -1,22 +1 @@ -# OrderStatus - - -## Enum - -* `CREATED` (value: `'CREATED'`) - -* `AWAITING_PAYMENT` (value: `'AWAITING_PAYMENT'`) - -* `PENDING_USER_ACTION` (value: `'PENDING_USER_ACTION'`) - -* `PROCESSING` (value: `'PROCESSING'`) - -* `CANCELED` (value: `'CANCELED'`) - -* `COMPLETED` (value: `'COMPLETED'`) - -* `FAILED` (value: `'FAILED'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBPcmRlclN0YXR1cwoKCiMjIEVudW0KCiogYENSRUFURURgICh2YWx1ZTogYCdDUkVBVEVEJ2ApCgoqIGBBV0FJVElOR19QQVlNRU5UYCAodmFsdWU6IGAnQVdBSVRJTkdfUEFZTUVOVCdgKQoKKiBgUEVORElOR19VU0VSX0FDVElPTmAgKHZhbHVlOiBgJ1BFTkRJTkdfVVNFUl9BQ1RJT04nYCkKCiogYFBST0NFU1NJTkdgICh2YWx1ZTogYCdQUk9DRVNTSU5HJ2ApCgoqIGBDQU5DRUxFRGAgKHZhbHVlOiBgJ0NBTkNFTEVEJ2ApCgoqIGBDT01QTEVURURgICh2YWx1ZTogYCdDT01QTEVURUQnYCkKCiogYEZBSUxFRGAgKHZhbHVlOiBgJ0ZBSUxFRCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/OrderSummary.md b/docs/OrderSummary.md index dbd2faf6..c370a215 100644 --- a/docs/OrderSummary.md +++ b/docs/OrderSummary.md @@ -1,39 +1 @@ -# OrderSummary - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | -**via** | [**AccessType**](AccessType.md) | | -**side** | [**Side**](Side.md) | | -**base_amount** | **str** | | -**quote_amount** | **str** | | [optional] -**base_asset_id** | **str** | | -**quote_asset_id** | **str** | | -**status** | [**OrderStatus**](OrderStatus.md) | | -**destination** | [**AccountReference**](AccountReference.md) | | -**source** | [**SettlementSourceAccount**](SettlementSourceAccount.md) | | [optional] -**created_at** | **datetime** | | - -## Example - -```python -from fireblocks.models.order_summary import OrderSummary - -# TODO update the JSON string below -json = "{}" -# create an instance of OrderSummary from a JSON string -order_summary_instance = OrderSummary.from_json(json) -# print the JSON string representation of the object -print(OrderSummary.to_json()) - -# convert the object into a dict -order_summary_dict = order_summary_instance.to_dict() -# create an instance of OrderSummary from a dict -order_summary_from_dict = OrderSummary.from_dict(order_summary_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBPcmRlclN1bW1hcnkKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCAgfCAKKip2aWEqKiB8IFsqKkFjY2Vzc1R5cGUqKl0oQWNjZXNzVHlwZS5tZCkgfCAgfCAKKipzaWRlKiogfCBbKipTaWRlKipdKFNpZGUubWQpIHwgIHwgCioqYmFzZV9hbW91bnQqKiB8ICoqc3RyKiogfCAgfCAKKipxdW90ZV9hbW91bnQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmJhc2VfYXNzZXRfaWQqKiB8ICoqc3RyKiogfCAgfCAKKipxdW90ZV9hc3NldF9pZCoqIHwgKipzdHIqKiB8ICB8IAoqKnN0YXR1cyoqIHwgWyoqT3JkZXJTdGF0dXMqKl0oT3JkZXJTdGF0dXMubWQpIHwgIHwgCioqZGVzdGluYXRpb24qKiB8IFsqKkFjY291bnRSZWZlcmVuY2UqKl0oQWNjb3VudFJlZmVyZW5jZS5tZCkgfCAgfCAKKipzb3VyY2UqKiB8IFsqKlNldHRsZW1lbnRTb3VyY2VBY2NvdW50KipdKFNldHRsZW1lbnRTb3VyY2VBY2NvdW50Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqY3JlYXRlZF9hdCoqIHwgKipkYXRldGltZSoqIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5vcmRlcl9zdW1tYXJ5IGltcG9ydCBPcmRlclN1bW1hcnkKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIE9yZGVyU3VtbWFyeSBmcm9tIGEgSlNPTiBzdHJpbmcKb3JkZXJfc3VtbWFyeV9pbnN0YW5jZSA9IE9yZGVyU3VtbWFyeS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChPcmRlclN1bW1hcnkudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKb3JkZXJfc3VtbWFyeV9kaWN0ID0gb3JkZXJfc3VtbWFyeV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgT3JkZXJTdW1tYXJ5IGZyb20gYSBkaWN0Cm9yZGVyX3N1bW1hcnlfZnJvbV9kaWN0ID0gT3JkZXJTdW1tYXJ5LmZyb21fZGljdChvcmRlcl9zdW1tYXJ5X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/PaginatedAddressResponse.md b/docs/PaginatedAddressResponse.md index 063c1f74..db8bb0bd 100644 --- a/docs/PaginatedAddressResponse.md +++ b/docs/PaginatedAddressResponse.md @@ -1,30 +1 @@ -# PaginatedAddressResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**addresses** | [**List[VaultWalletAddress]**](VaultWalletAddress.md) | | [optional] -**paging** | [**PaginatedAddressResponsePaging**](PaginatedAddressResponsePaging.md) | | [optional] - -## Example - -```python -from fireblocks.models.paginated_address_response import PaginatedAddressResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of PaginatedAddressResponse from a JSON string -paginated_address_response_instance = PaginatedAddressResponse.from_json(json) -# print the JSON string representation of the object -print(PaginatedAddressResponse.to_json()) - -# convert the object into a dict -paginated_address_response_dict = paginated_address_response_instance.to_dict() -# create an instance of PaginatedAddressResponse from a dict -paginated_address_response_from_dict = PaginatedAddressResponse.from_dict(paginated_address_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYWRkcmVzc2VzKiogfCBbKipMaXN0W1ZhdWx0V2FsbGV0QWRkcmVzc10qKl0oVmF1bHRXYWxsZXRBZGRyZXNzLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqcGFnaW5nKiogfCBbKipQYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2VQYWdpbmcqKl0oUGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlUGFnaW5nLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYWdpbmF0ZWRfYWRkcmVzc19yZXNwb25zZSBpbXBvcnQgUGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnBhZ2luYXRlZF9hZGRyZXNzX3Jlc3BvbnNlX2luc3RhbmNlID0gUGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFBhZ2luYXRlZEFkZHJlc3NSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApwYWdpbmF0ZWRfYWRkcmVzc19yZXNwb25zZV9kaWN0ID0gcGFnaW5hdGVkX2FkZHJlc3NfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBhZ2luYXRlZEFkZHJlc3NSZXNwb25zZSBmcm9tIGEgZGljdApwYWdpbmF0ZWRfYWRkcmVzc19yZXNwb25zZV9mcm9tX2RpY3QgPSBQYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2UuZnJvbV9kaWN0KHBhZ2luYXRlZF9hZGRyZXNzX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/PaginatedAddressResponsePaging.md b/docs/PaginatedAddressResponsePaging.md index 3ae3c13f..6bebecc7 100644 --- a/docs/PaginatedAddressResponsePaging.md +++ b/docs/PaginatedAddressResponsePaging.md @@ -1,30 +1 @@ -# PaginatedAddressResponsePaging - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**before** | **str** | A string representing a cursor. Users can use this with a new request to this API endpoint as the “before” request parameter to fetch the previous page of results. | [optional] -**after** | **str** | A string representing a cursor. Users can use this with a new request to this API endpoint as the “after” request parameter to fetch the next page of results. | [optional] - -## Example - -```python -from fireblocks.models.paginated_address_response_paging import PaginatedAddressResponsePaging - -# TODO update the JSON string below -json = "{}" -# create an instance of PaginatedAddressResponsePaging from a JSON string -paginated_address_response_paging_instance = PaginatedAddressResponsePaging.from_json(json) -# print the JSON string representation of the object -print(PaginatedAddressResponsePaging.to_json()) - -# convert the object into a dict -paginated_address_response_paging_dict = paginated_address_response_paging_instance.to_dict() -# create an instance of PaginatedAddressResponsePaging from a dict -paginated_address_response_paging_from_dict = PaginatedAddressResponsePaging.from_dict(paginated_address_response_paging_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2VQYWdpbmcKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYmVmb3JlKiogfCAqKnN0cioqIHwgQSBzdHJpbmcgcmVwcmVzZW50aW5nIGEgY3Vyc29yLiBVc2VycyBjYW4gdXNlIHRoaXMgd2l0aCBhIG5ldyByZXF1ZXN0IHRvIHRoaXMgQVBJIGVuZHBvaW50IGFzIHRoZSDigJxiZWZvcmXigJ0gcmVxdWVzdCBwYXJhbWV0ZXIgdG8gZmV0Y2ggdGhlIHByZXZpb3VzIHBhZ2Ugb2YgcmVzdWx0cy4gfCBbb3B0aW9uYWxdIAoqKmFmdGVyKiogfCAqKnN0cioqIHwgQSBzdHJpbmcgcmVwcmVzZW50aW5nIGEgY3Vyc29yLiBVc2VycyBjYW4gdXNlIHRoaXMgd2l0aCBhIG5ldyByZXF1ZXN0IHRvIHRoaXMgQVBJIGVuZHBvaW50IGFzIHRoZSDigJxhZnRlcuKAnSByZXF1ZXN0IHBhcmFtZXRlciB0byBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMuIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhZ2luYXRlZF9hZGRyZXNzX3Jlc3BvbnNlX3BhZ2luZyBpbXBvcnQgUGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlUGFnaW5nCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2VQYWdpbmcgZnJvbSBhIEpTT04gc3RyaW5nCnBhZ2luYXRlZF9hZGRyZXNzX3Jlc3BvbnNlX3BhZ2luZ19pbnN0YW5jZSA9IFBhZ2luYXRlZEFkZHJlc3NSZXNwb25zZVBhZ2luZy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChQYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2VQYWdpbmcudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcGFnaW5hdGVkX2FkZHJlc3NfcmVzcG9uc2VfcGFnaW5nX2RpY3QgPSBwYWdpbmF0ZWRfYWRkcmVzc19yZXNwb25zZV9wYWdpbmdfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBhZ2luYXRlZEFkZHJlc3NSZXNwb25zZVBhZ2luZyBmcm9tIGEgZGljdApwYWdpbmF0ZWRfYWRkcmVzc19yZXNwb25zZV9wYWdpbmdfZnJvbV9kaWN0ID0gUGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlUGFnaW5nLmZyb21fZGljdChwYWdpbmF0ZWRfYWRkcmVzc19yZXNwb25zZV9wYWdpbmdfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PaginatedAssetWalletResponse.md b/docs/PaginatedAssetWalletResponse.md index 9a61d8d7..39d1248a 100644 --- a/docs/PaginatedAssetWalletResponse.md +++ b/docs/PaginatedAssetWalletResponse.md @@ -1,30 +1 @@ -# PaginatedAssetWalletResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**asset_wallets** | [**List[AssetWallet]**](AssetWallet.md) | | [optional] -**paging** | [**PaginatedAssetWalletResponsePaging**](PaginatedAssetWalletResponsePaging.md) | | [optional] - -## Example - -```python -from fireblocks.models.paginated_asset_wallet_response import PaginatedAssetWalletResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of PaginatedAssetWalletResponse from a JSON string -paginated_asset_wallet_response_instance = PaginatedAssetWalletResponse.from_json(json) -# print the JSON string representation of the object -print(PaginatedAssetWalletResponse.to_json()) - -# convert the object into a dict -paginated_asset_wallet_response_dict = paginated_asset_wallet_response_instance.to_dict() -# create an instance of PaginatedAssetWalletResponse from a dict -paginated_asset_wallet_response_from_dict = PaginatedAssetWalletResponse.from_dict(paginated_asset_wallet_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFzc2V0X3dhbGxldHMqKiB8IFsqKkxpc3RbQXNzZXRXYWxsZXRdKipdKEFzc2V0V2FsbGV0Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqcGFnaW5nKiogfCBbKipQYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlUGFnaW5nKipdKFBhZ2luYXRlZEFzc2V0V2FsbGV0UmVzcG9uc2VQYWdpbmcubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhZ2luYXRlZF9hc3NldF93YWxsZXRfcmVzcG9uc2UgaW1wb3J0IFBhZ2luYXRlZEFzc2V0V2FsbGV0UmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBhZ2luYXRlZEFzc2V0V2FsbGV0UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnBhZ2luYXRlZF9hc3NldF93YWxsZXRfcmVzcG9uc2VfaW5zdGFuY2UgPSBQYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFBhZ2luYXRlZEFzc2V0V2FsbGV0UmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcGFnaW5hdGVkX2Fzc2V0X3dhbGxldF9yZXNwb25zZV9kaWN0ID0gcGFnaW5hdGVkX2Fzc2V0X3dhbGxldF9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZSBmcm9tIGEgZGljdApwYWdpbmF0ZWRfYXNzZXRfd2FsbGV0X3Jlc3BvbnNlX2Zyb21fZGljdCA9IFBhZ2luYXRlZEFzc2V0V2FsbGV0UmVzcG9uc2UuZnJvbV9kaWN0KHBhZ2luYXRlZF9hc3NldF93YWxsZXRfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PaginatedAssetWalletResponsePaging.md b/docs/PaginatedAssetWalletResponsePaging.md index efc045c6..4daa76e9 100644 --- a/docs/PaginatedAssetWalletResponsePaging.md +++ b/docs/PaginatedAssetWalletResponsePaging.md @@ -1,30 +1 @@ -# PaginatedAssetWalletResponsePaging - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**before** | **str** | A string representing a cursor. Users can use this with a new request to this API endpoint as the “before” request parameter to fetch the previous page of results. | [optional] -**after** | **str** | A string representing a cursor. Users can use this with a new request to this API endpoint as the “before” request parameter to fetch the next page of results. | [optional] - -## Example - -```python -from fireblocks.models.paginated_asset_wallet_response_paging import PaginatedAssetWalletResponsePaging - -# TODO update the JSON string below -json = "{}" -# create an instance of PaginatedAssetWalletResponsePaging from a JSON string -paginated_asset_wallet_response_paging_instance = PaginatedAssetWalletResponsePaging.from_json(json) -# print the JSON string representation of the object -print(PaginatedAssetWalletResponsePaging.to_json()) - -# convert the object into a dict -paginated_asset_wallet_response_paging_dict = paginated_asset_wallet_response_paging_instance.to_dict() -# create an instance of PaginatedAssetWalletResponsePaging from a dict -paginated_asset_wallet_response_paging_from_dict = PaginatedAssetWalletResponsePaging.from_dict(paginated_asset_wallet_response_paging_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlUGFnaW5nCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmJlZm9yZSoqIHwgKipzdHIqKiB8IEEgc3RyaW5nIHJlcHJlc2VudGluZyBhIGN1cnNvci4gVXNlcnMgY2FuIHVzZSB0aGlzIHdpdGggYSBuZXcgcmVxdWVzdCB0byB0aGlzIEFQSSBlbmRwb2ludCBhcyB0aGUg4oCcYmVmb3Jl4oCdIHJlcXVlc3QgcGFyYW1ldGVyIHRvIGZldGNoIHRoZSBwcmV2aW91cyBwYWdlIG9mIHJlc3VsdHMuIHwgW29wdGlvbmFsXSAKKiphZnRlcioqIHwgKipzdHIqKiB8IEEgc3RyaW5nIHJlcHJlc2VudGluZyBhIGN1cnNvci4gVXNlcnMgY2FuIHVzZSB0aGlzIHdpdGggYSBuZXcgcmVxdWVzdCB0byB0aGlzIEFQSSBlbmRwb2ludCBhcyB0aGUg4oCcYmVmb3Jl4oCdIHJlcXVlc3QgcGFyYW1ldGVyIHRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cy4gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFnaW5hdGVkX2Fzc2V0X3dhbGxldF9yZXNwb25zZV9wYWdpbmcgaW1wb3J0IFBhZ2luYXRlZEFzc2V0V2FsbGV0UmVzcG9uc2VQYWdpbmcKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBhZ2luYXRlZEFzc2V0V2FsbGV0UmVzcG9uc2VQYWdpbmcgZnJvbSBhIEpTT04gc3RyaW5nCnBhZ2luYXRlZF9hc3NldF93YWxsZXRfcmVzcG9uc2VfcGFnaW5nX2luc3RhbmNlID0gUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZVBhZ2luZy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChQYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlUGFnaW5nLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnBhZ2luYXRlZF9hc3NldF93YWxsZXRfcmVzcG9uc2VfcGFnaW5nX2RpY3QgPSBwYWdpbmF0ZWRfYXNzZXRfd2FsbGV0X3Jlc3BvbnNlX3BhZ2luZ19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZVBhZ2luZyBmcm9tIGEgZGljdApwYWdpbmF0ZWRfYXNzZXRfd2FsbGV0X3Jlc3BvbnNlX3BhZ2luZ19mcm9tX2RpY3QgPSBQYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlUGFnaW5nLmZyb21fZGljdChwYWdpbmF0ZWRfYXNzZXRfd2FsbGV0X3Jlc3BvbnNlX3BhZ2luZ19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/PaginatedAssetsResponse.md b/docs/PaginatedAssetsResponse.md index 90bdd79b..76250933 100644 --- a/docs/PaginatedAssetsResponse.md +++ b/docs/PaginatedAssetsResponse.md @@ -1,31 +1 @@ -# PaginatedAssetsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**total** | **float** | Total number of assets in the internal wallet | [optional] -**data** | [**UnmanagedWallet**](UnmanagedWallet.md) | | -**next** | **str** | Cursor for the next page of results | [optional] - -## Example - -```python -from fireblocks.models.paginated_assets_response import PaginatedAssetsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of PaginatedAssetsResponse from a JSON string -paginated_assets_response_instance = PaginatedAssetsResponse.from_json(json) -# print the JSON string representation of the object -print(PaginatedAssetsResponse.to_json()) - -# convert the object into a dict -paginated_assets_response_dict = paginated_assets_response_instance.to_dict() -# create an instance of PaginatedAssetsResponse from a dict -paginated_assets_response_from_dict = PaginatedAssetsResponse.from_dict(paginated_assets_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYWdpbmF0ZWRBc3NldHNSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0b3RhbCoqIHwgKipmbG9hdCoqIHwgVG90YWwgbnVtYmVyIG9mIGFzc2V0cyBpbiB0aGUgaW50ZXJuYWwgd2FsbGV0IHwgW29wdGlvbmFsXSAKKipkYXRhKiogfCBbKipVbm1hbmFnZWRXYWxsZXQqKl0oVW5tYW5hZ2VkV2FsbGV0Lm1kKSB8ICB8IAoqKm5leHQqKiB8ICoqc3RyKiogfCBDdXJzb3IgZm9yIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cyB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYWdpbmF0ZWRfYXNzZXRzX3Jlc3BvbnNlIGltcG9ydCBQYWdpbmF0ZWRBc3NldHNSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGFnaW5hdGVkQXNzZXRzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnBhZ2luYXRlZF9hc3NldHNfcmVzcG9uc2VfaW5zdGFuY2UgPSBQYWdpbmF0ZWRBc3NldHNSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChQYWdpbmF0ZWRBc3NldHNSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApwYWdpbmF0ZWRfYXNzZXRzX3Jlc3BvbnNlX2RpY3QgPSBwYWdpbmF0ZWRfYXNzZXRzX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYWdpbmF0ZWRBc3NldHNSZXNwb25zZSBmcm9tIGEgZGljdApwYWdpbmF0ZWRfYXNzZXRzX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlLmZyb21fZGljdChwYWdpbmF0ZWRfYXNzZXRzX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/Paging.md b/docs/Paging.md index 0267917d..db4bd26f 100644 --- a/docs/Paging.md +++ b/docs/Paging.md @@ -1,29 +1 @@ -# Paging - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**next** | **str** | Cursor to the next page | - -## Example - -```python -from fireblocks.models.paging import Paging - -# TODO update the JSON string below -json = "{}" -# create an instance of Paging from a JSON string -paging_instance = Paging.from_json(json) -# print the JSON string representation of the object -print(Paging.to_json()) - -# convert the object into a dict -paging_dict = paging_instance.to_dict() -# create an instance of Paging from a dict -paging_from_dict = Paging.from_dict(paging_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYWdpbmcKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbmV4dCoqIHwgKipzdHIqKiB8IEN1cnNvciB0byB0aGUgbmV4dCBwYWdlIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYWdpbmcgaW1wb3J0IFBhZ2luZwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGFnaW5nIGZyb20gYSBKU09OIHN0cmluZwpwYWdpbmdfaW5zdGFuY2UgPSBQYWdpbmcuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUGFnaW5nLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnBhZ2luZ19kaWN0ID0gcGFnaW5nX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYWdpbmcgZnJvbSBhIGRpY3QKcGFnaW5nX2Zyb21fZGljdCA9IFBhZ2luZy5mcm9tX2RpY3QocGFnaW5nX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/PairApiKeyRequest.md b/docs/PairApiKeyRequest.md index 881c598d..fef1d7ad 100644 --- a/docs/PairApiKeyRequest.md +++ b/docs/PairApiKeyRequest.md @@ -1,29 +1 @@ -# PairApiKeyRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**callback_handler** | [**CallbackHandlerRequest**](CallbackHandlerRequest.md) | | [optional] - -## Example - -```python -from fireblocks.models.pair_api_key_request import PairApiKeyRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of PairApiKeyRequest from a JSON string -pair_api_key_request_instance = PairApiKeyRequest.from_json(json) -# print the JSON string representation of the object -print(PairApiKeyRequest.to_json()) - -# convert the object into a dict -pair_api_key_request_dict = pair_api_key_request_instance.to_dict() -# create an instance of PairApiKeyRequest from a dict -pair_api_key_request_from_dict = PairApiKeyRequest.from_dict(pair_api_key_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYWlyQXBpS2V5UmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipjYWxsYmFja19oYW5kbGVyKiogfCBbKipDYWxsYmFja0hhbmRsZXJSZXF1ZXN0KipdKENhbGxiYWNrSGFuZGxlclJlcXVlc3QubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhaXJfYXBpX2tleV9yZXF1ZXN0IGltcG9ydCBQYWlyQXBpS2V5UmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGFpckFwaUtleVJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCnBhaXJfYXBpX2tleV9yZXF1ZXN0X2luc3RhbmNlID0gUGFpckFwaUtleVJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUGFpckFwaUtleVJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcGFpcl9hcGlfa2V5X3JlcXVlc3RfZGljdCA9IHBhaXJfYXBpX2tleV9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYWlyQXBpS2V5UmVxdWVzdCBmcm9tIGEgZGljdApwYWlyX2FwaV9rZXlfcmVxdWVzdF9mcm9tX2RpY3QgPSBQYWlyQXBpS2V5UmVxdWVzdC5mcm9tX2RpY3QocGFpcl9hcGlfa2V5X3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PairApiKeyResponse.md b/docs/PairApiKeyResponse.md index d01f84c9..b29aa916 100644 --- a/docs/PairApiKeyResponse.md +++ b/docs/PairApiKeyResponse.md @@ -1,30 +1 @@ -# PairApiKeyResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The unique identifier of the API key | -**callback_handler** | [**CallbackHandlerRequest**](CallbackHandlerRequest.md) | | [optional] - -## Example - -```python -from fireblocks.models.pair_api_key_response import PairApiKeyResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of PairApiKeyResponse from a JSON string -pair_api_key_response_instance = PairApiKeyResponse.from_json(json) -# print the JSON string representation of the object -print(PairApiKeyResponse.to_json()) - -# convert the object into a dict -pair_api_key_response_dict = pair_api_key_response_instance.to_dict() -# create an instance of PairApiKeyResponse from a dict -pair_api_key_response_from_dict = PairApiKeyResponse.from_dict(pair_api_key_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYWlyQXBpS2V5UmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIEFQSSBrZXkgfCAKKipjYWxsYmFja19oYW5kbGVyKiogfCBbKipDYWxsYmFja0hhbmRsZXJSZXF1ZXN0KipdKENhbGxiYWNrSGFuZGxlclJlcXVlc3QubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhaXJfYXBpX2tleV9yZXNwb25zZSBpbXBvcnQgUGFpckFwaUtleVJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYWlyQXBpS2V5UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnBhaXJfYXBpX2tleV9yZXNwb25zZV9pbnN0YW5jZSA9IFBhaXJBcGlLZXlSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChQYWlyQXBpS2V5UmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcGFpcl9hcGlfa2V5X3Jlc3BvbnNlX2RpY3QgPSBwYWlyX2FwaV9rZXlfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBhaXJBcGlLZXlSZXNwb25zZSBmcm9tIGEgZGljdApwYWlyX2FwaV9rZXlfcmVzcG9uc2VfZnJvbV9kaWN0ID0gUGFpckFwaUtleVJlc3BvbnNlLmZyb21fZGljdChwYWlyX2FwaV9rZXlfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/Parameter.md b/docs/Parameter.md index 8299e446..9fead617 100644 --- a/docs/Parameter.md +++ b/docs/Parameter.md @@ -1,33 +1 @@ -# Parameter - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | The name of the parameter as it appears in the ABI | -**description** | **str** | A description of the parameter, fetched from the devdoc of this contract | [optional] -**internal_type** | **str** | The internal type of the parameter as it appears in the ABI | [optional] -**type** | **str** | The type of the parameter as it appears in the ABI | -**components** | [**List[Parameter]**](Parameter.md) | | [optional] - -## Example - -```python -from fireblocks.models.parameter import Parameter - -# TODO update the JSON string below -json = "{}" -# create an instance of Parameter from a JSON string -parameter_instance = Parameter.from_json(json) -# print the JSON string representation of the object -print(Parameter.to_json()) - -# convert the object into a dict -parameter_dict = parameter_instance.to_dict() -# create an instance of Parameter from a dict -parameter_from_dict = Parameter.from_dict(parameter_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXJhbWV0ZXIKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgYXMgaXQgYXBwZWFycyBpbiB0aGUgQUJJIHwgCioqZGVzY3JpcHRpb24qKiB8ICoqc3RyKiogfCBBIGRlc2NyaXB0aW9uIG9mIHRoZSBwYXJhbWV0ZXIsIGZldGNoZWQgZnJvbSB0aGUgZGV2ZG9jIG9mIHRoaXMgY29udHJhY3QgfCBbb3B0aW9uYWxdIAoqKmludGVybmFsX3R5cGUqKiB8ICoqc3RyKiogfCBUaGUgaW50ZXJuYWwgdHlwZSBvZiB0aGUgcGFyYW1ldGVyIGFzIGl0IGFwcGVhcnMgaW4gdGhlIEFCSSB8IFtvcHRpb25hbF0gCioqdHlwZSoqIHwgKipzdHIqKiB8IFRoZSB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIgYXMgaXQgYXBwZWFycyBpbiB0aGUgQUJJIHwgCioqY29tcG9uZW50cyoqIHwgWyoqTGlzdFtQYXJhbWV0ZXJdKipdKFBhcmFtZXRlci5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyIGltcG9ydCBQYXJhbWV0ZXIKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBhcmFtZXRlciBmcm9tIGEgSlNPTiBzdHJpbmcKcGFyYW1ldGVyX2luc3RhbmNlID0gUGFyYW1ldGVyLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFBhcmFtZXRlci50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApwYXJhbWV0ZXJfZGljdCA9IHBhcmFtZXRlcl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGFyYW1ldGVyIGZyb20gYSBkaWN0CnBhcmFtZXRlcl9mcm9tX2RpY3QgPSBQYXJhbWV0ZXIuZnJvbV9kaWN0KHBhcmFtZXRlcl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ParameterWithValue.md b/docs/ParameterWithValue.md index f0f33f6d..7dba8237 100644 --- a/docs/ParameterWithValue.md +++ b/docs/ParameterWithValue.md @@ -1,35 +1 @@ -# ParameterWithValue - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | The name of the parameter as it appears in the ABI | -**description** | **str** | A description of the parameter, fetched from the devdoc of this contract | [optional] -**internal_type** | **str** | The internal type of the parameter as it appears in the ABI | [optional] -**type** | **str** | The type of the parameter as it appears in the ABI | -**components** | [**List[Parameter]**](Parameter.md) | | [optional] -**value** | **str** | The value of the parameter. can also be ParameterWithValue | [optional] -**function_value** | [**LeanAbiFunction**](LeanAbiFunction.md) | The function value of this param (if has one). If this is set, the `value` shouldn`t be. Used for proxies | [optional] - -## Example - -```python -from fireblocks.models.parameter_with_value import ParameterWithValue - -# TODO update the JSON string below -json = "{}" -# create an instance of ParameterWithValue from a JSON string -parameter_with_value_instance = ParameterWithValue.from_json(json) -# print the JSON string representation of the object -print(ParameterWithValue.to_json()) - -# convert the object into a dict -parameter_with_value_dict = parameter_with_value_instance.to_dict() -# create an instance of ParameterWithValue from a dict -parameter_with_value_from_dict = ParameterWithValue.from_dict(parameter_with_value_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXJhbWV0ZXJXaXRoVmFsdWUKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgYXMgaXQgYXBwZWFycyBpbiB0aGUgQUJJIHwgCioqZGVzY3JpcHRpb24qKiB8ICoqc3RyKiogfCBBIGRlc2NyaXB0aW9uIG9mIHRoZSBwYXJhbWV0ZXIsIGZldGNoZWQgZnJvbSB0aGUgZGV2ZG9jIG9mIHRoaXMgY29udHJhY3QgfCBbb3B0aW9uYWxdIAoqKmludGVybmFsX3R5cGUqKiB8ICoqc3RyKiogfCBUaGUgIGludGVybmFsIHR5cGUgb2YgdGhlIHBhcmFtZXRlciBhcyBpdCBhcHBlYXJzIGluIHRoZSBBQkkgfCBbb3B0aW9uYWxdIAoqKnR5cGUqKiB8ICoqc3RyKiogfCBUaGUgdHlwZSBvZiB0aGUgcGFyYW1ldGVyIGFzIGl0IGFwcGVhcnMgaW4gdGhlIEFCSSB8IAoqKmNvbXBvbmVudHMqKiB8IFsqKkxpc3RbUGFyYW1ldGVyXSoqXShQYXJhbWV0ZXIubWQpIHwgIHwgW29wdGlvbmFsXSAKKip2YWx1ZSoqIHwgKipzdHIqKiB8IFRoZSB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyLiBjYW4gYWxzbyBiZSBQYXJhbWV0ZXJXaXRoVmFsdWUgfCBbb3B0aW9uYWxdIAoqKmZ1bmN0aW9uX3ZhbHVlKiogfCBbKipMZWFuQWJpRnVuY3Rpb24qKl0oTGVhbkFiaUZ1bmN0aW9uLm1kKSB8IFRoZSBmdW5jdGlvbiB2YWx1ZSBvZiB0aGlzIHBhcmFtIChpZiBoYXMgb25lKS4gSWYgdGhpcyBpcyBzZXQsIHRoZSAmI3g2MDt2YWx1ZSYjeDYwOyBzaG91bGRuJiN4NjA7dCBiZS4gVXNlZCBmb3IgcHJveGllcyB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXJfd2l0aF92YWx1ZSBpbXBvcnQgUGFyYW1ldGVyV2l0aFZhbHVlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXJhbWV0ZXJXaXRoVmFsdWUgZnJvbSBhIEpTT04gc3RyaW5nCnBhcmFtZXRlcl93aXRoX3ZhbHVlX2luc3RhbmNlID0gUGFyYW1ldGVyV2l0aFZhbHVlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFBhcmFtZXRlcldpdGhWYWx1ZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApwYXJhbWV0ZXJfd2l0aF92YWx1ZV9kaWN0ID0gcGFyYW1ldGVyX3dpdGhfdmFsdWVfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBhcmFtZXRlcldpdGhWYWx1ZSBmcm9tIGEgZGljdApwYXJhbWV0ZXJfd2l0aF92YWx1ZV9mcm9tX2RpY3QgPSBQYXJhbWV0ZXJXaXRoVmFsdWUuZnJvbV9kaWN0KHBhcmFtZXRlcl93aXRoX3ZhbHVlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ParticipantRelationshipType.md b/docs/ParticipantRelationshipType.md index 7973762e..90aa7eb8 100644 --- a/docs/ParticipantRelationshipType.md +++ b/docs/ParticipantRelationshipType.md @@ -1,14 +1 @@ -# ParticipantRelationshipType - - -## Enum - -* `FIRSTPARTY` (value: `'FirstParty'`) - -* `SECONDPARTY` (value: `'SecondParty'`) - -* `THIRDPARTY` (value: `'ThirdParty'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXJ0aWNpcGFudFJlbGF0aW9uc2hpcFR5cGUKCgojIyBFbnVtCgoqIGBGSVJTVFBBUlRZYCAodmFsdWU6IGAnRmlyc3RQYXJ0eSdgKQoKKiBgU0VDT05EUEFSVFlgICh2YWx1ZTogYCdTZWNvbmRQYXJ0eSdgKQoKKiBgVEhJUkRQQVJUWWAgKHZhbHVlOiBgJ1RoaXJkUGFydHknYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ParticipantsIdentification.md b/docs/ParticipantsIdentification.md index 5cdb0112..b4715750 100644 --- a/docs/ParticipantsIdentification.md +++ b/docs/ParticipantsIdentification.md @@ -1,31 +1 @@ -# ParticipantsIdentification - -KYC/AML participant identification - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**originator** | [**Identification**](Identification.md) | | [optional] -**beneficiary** | [**Identification**](Identification.md) | | [optional] - -## Example - -```python -from fireblocks.models.participants_identification import ParticipantsIdentification - -# TODO update the JSON string below -json = "{}" -# create an instance of ParticipantsIdentification from a JSON string -participants_identification_instance = ParticipantsIdentification.from_json(json) -# print the JSON string representation of the object -print(ParticipantsIdentification.to_json()) - -# convert the object into a dict -participants_identification_dict = participants_identification_instance.to_dict() -# create an instance of ParticipantsIdentification from a dict -participants_identification_from_dict = ParticipantsIdentification.from_dict(participants_identification_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXJ0aWNpcGFudHNJZGVudGlmaWNhdGlvbgoKS1lDL0FNTCBwYXJ0aWNpcGFudCBpZGVudGlmaWNhdGlvbgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm9yaWdpbmF0b3IqKiB8IFsqKklkZW50aWZpY2F0aW9uKipdKElkZW50aWZpY2F0aW9uLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqYmVuZWZpY2lhcnkqKiB8IFsqKklkZW50aWZpY2F0aW9uKipdKElkZW50aWZpY2F0aW9uLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXJ0aWNpcGFudHNfaWRlbnRpZmljYXRpb24gaW1wb3J0IFBhcnRpY2lwYW50c0lkZW50aWZpY2F0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXJ0aWNpcGFudHNJZGVudGlmaWNhdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmcKcGFydGljaXBhbnRzX2lkZW50aWZpY2F0aW9uX2luc3RhbmNlID0gUGFydGljaXBhbnRzSWRlbnRpZmljYXRpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUGFydGljaXBhbnRzSWRlbnRpZmljYXRpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcGFydGljaXBhbnRzX2lkZW50aWZpY2F0aW9uX2RpY3QgPSBwYXJ0aWNpcGFudHNfaWRlbnRpZmljYXRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBhcnRpY2lwYW50c0lkZW50aWZpY2F0aW9uIGZyb20gYSBkaWN0CnBhcnRpY2lwYW50c19pZGVudGlmaWNhdGlvbl9mcm9tX2RpY3QgPSBQYXJ0aWNpcGFudHNJZGVudGlmaWNhdGlvbi5mcm9tX2RpY3QocGFydGljaXBhbnRzX2lkZW50aWZpY2F0aW9uX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/PayeeAccount.md b/docs/PayeeAccount.md index 926d5ecb..b8fb142a 100644 --- a/docs/PayeeAccount.md +++ b/docs/PayeeAccount.md @@ -1,30 +1 @@ -# PayeeAccount - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | -**type** | [**PayeeAccountType**](PayeeAccountType.md) | | - -## Example - -```python -from fireblocks.models.payee_account import PayeeAccount - -# TODO update the JSON string below -json = "{}" -# create an instance of PayeeAccount from a JSON string -payee_account_instance = PayeeAccount.from_json(json) -# print the JSON string representation of the object -print(PayeeAccount.to_json()) - -# convert the object into a dict -payee_account_dict = payee_account_instance.to_dict() -# create an instance of PayeeAccount from a dict -payee_account_from_dict = PayeeAccount.from_dict(payee_account_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXllZUFjY291bnQKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCAgfCAKKip0eXBlKiogfCBbKipQYXllZUFjY291bnRUeXBlKipdKFBheWVlQWNjb3VudFR5cGUubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXllZV9hY2NvdW50IGltcG9ydCBQYXllZUFjY291bnQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBheWVlQWNjb3VudCBmcm9tIGEgSlNPTiBzdHJpbmcKcGF5ZWVfYWNjb3VudF9pbnN0YW5jZSA9IFBheWVlQWNjb3VudC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChQYXllZUFjY291bnQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcGF5ZWVfYWNjb3VudF9kaWN0ID0gcGF5ZWVfYWNjb3VudF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGF5ZWVBY2NvdW50IGZyb20gYSBkaWN0CnBheWVlX2FjY291bnRfZnJvbV9kaWN0ID0gUGF5ZWVBY2NvdW50LmZyb21fZGljdChwYXllZV9hY2NvdW50X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/PayeeAccountResponse.md b/docs/PayeeAccountResponse.md index d99c7f2c..9e35d01d 100644 --- a/docs/PayeeAccountResponse.md +++ b/docs/PayeeAccountResponse.md @@ -1,30 +1 @@ -# PayeeAccountResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | [optional] -**type** | [**PayeeAccountType**](PayeeAccountType.md) | | [optional] - -## Example - -```python -from fireblocks.models.payee_account_response import PayeeAccountResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of PayeeAccountResponse from a JSON string -payee_account_response_instance = PayeeAccountResponse.from_json(json) -# print the JSON string representation of the object -print(PayeeAccountResponse.to_json()) - -# convert the object into a dict -payee_account_response_dict = payee_account_response_instance.to_dict() -# create an instance of PayeeAccountResponse from a dict -payee_account_response_from_dict = PayeeAccountResponse.from_dict(payee_account_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXllZUFjY291bnRSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqdHlwZSoqIHwgWyoqUGF5ZWVBY2NvdW50VHlwZSoqXShQYXllZUFjY291bnRUeXBlLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXllZV9hY2NvdW50X3Jlc3BvbnNlIGltcG9ydCBQYXllZUFjY291bnRSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGF5ZWVBY2NvdW50UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnBheWVlX2FjY291bnRfcmVzcG9uc2VfaW5zdGFuY2UgPSBQYXllZUFjY291bnRSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChQYXllZUFjY291bnRSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApwYXllZV9hY2NvdW50X3Jlc3BvbnNlX2RpY3QgPSBwYXllZV9hY2NvdW50X3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXllZUFjY291bnRSZXNwb25zZSBmcm9tIGEgZGljdApwYXllZV9hY2NvdW50X3Jlc3BvbnNlX2Zyb21fZGljdCA9IFBheWVlQWNjb3VudFJlc3BvbnNlLmZyb21fZGljdChwYXllZV9hY2NvdW50X3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/PayeeAccountType.md b/docs/PayeeAccountType.md index ad05d80e..90d3256f 100644 --- a/docs/PayeeAccountType.md +++ b/docs/PayeeAccountType.md @@ -1,21 +1 @@ -# PayeeAccountType - -- VAULT_ACCOUNT a native Fireblocks vault account - EXCHANGE_ACCOUNT a third-party exchange account - INTERNAL_WALLET a whitelisted address marked as internal to the workspace/organization - EXTERNAL_WALLET a whitelisted address marked as external - NETWORK_CONNECTION a member of the Fireblocks network - FIAT_ACCOUNT a third-party account of a fiat bank (Signature, BCB, etc) - -## Enum - -* `VAULT_ACCOUNT` (value: `'VAULT_ACCOUNT'`) - -* `EXCHANGE_ACCOUNT` (value: `'EXCHANGE_ACCOUNT'`) - -* `INTERNAL_WALLET` (value: `'INTERNAL_WALLET'`) - -* `EXTERNAL_WALLET` (value: `'EXTERNAL_WALLET'`) - -* `NETWORK_CONNECTION` (value: `'NETWORK_CONNECTION'`) - -* `FIAT_ACCOUNT` (value: `'FIAT_ACCOUNT'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXllZUFjY291bnRUeXBlCgotIFZBVUxUX0FDQ09VTlQgICBhIG5hdGl2ZSBGaXJlYmxvY2tzIHZhdWx0IGFjY291bnQgLSBFWENIQU5HRV9BQ0NPVU5UICBhIHRoaXJkLXBhcnR5IGV4Y2hhbmdlIGFjY291bnQgLSBJTlRFUk5BTF9XQUxMRVQgIGEgd2hpdGVsaXN0ZWQgYWRkcmVzcyBtYXJrZWQgYXMgaW50ZXJuYWwgdG8gdGhlIHdvcmtzcGFjZS9vcmdhbml6YXRpb24gLSBFWFRFUk5BTF9XQUxMRVQgYSB3aGl0ZWxpc3RlZCBhZGRyZXNzIG1hcmtlZCBhcyBleHRlcm5hbCAtIE5FVFdPUktfQ09OTkVDVElPTiBhIG1lbWJlciBvZiB0aGUgRmlyZWJsb2NrcyBuZXR3b3JrIC0gRklBVF9BQ0NPVU5UIGEgdGhpcmQtcGFydHkgYWNjb3VudCBvZiBhIGZpYXQgYmFuayAoU2lnbmF0dXJlLCBCQ0IsIGV0YykgCgojIyBFbnVtCgoqIGBWQVVMVF9BQ0NPVU5UYCAodmFsdWU6IGAnVkFVTFRfQUNDT1VOVCdgKQoKKiBgRVhDSEFOR0VfQUNDT1VOVGAgKHZhbHVlOiBgJ0VYQ0hBTkdFX0FDQ09VTlQnYCkKCiogYElOVEVSTkFMX1dBTExFVGAgKHZhbHVlOiBgJ0lOVEVSTkFMX1dBTExFVCdgKQoKKiBgRVhURVJOQUxfV0FMTEVUYCAodmFsdWU6IGAnRVhURVJOQUxfV0FMTEVUJ2ApCgoqIGBORVRXT1JLX0NPTk5FQ1RJT05gICh2YWx1ZTogYCdORVRXT1JLX0NPTk5FQ1RJT04nYCkKCiogYEZJQVRfQUNDT1VOVGAgKHZhbHVlOiBgJ0ZJQVRfQUNDT1VOVCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/PayidAddress.md b/docs/PayidAddress.md index cb6b0dae..4272231e 100644 --- a/docs/PayidAddress.md +++ b/docs/PayidAddress.md @@ -1,33 +1 @@ -# PayidAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | | -**value** | **str** | The PayID identifier (email, phone, ABN, or organization ID) | -**type** | **str** | The type of PayID being used | -**bsb** | **str** | Bank State Branch (BSB) number (6 digits, format XXX-XXX) | [optional] -**account_number** | **str** | Australian bank account number | - -## Example - -```python -from fireblocks.models.payid_address import PayidAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of PayidAddress from a JSON string -payid_address_instance = PayidAddress.from_json(json) -# print the JSON string representation of the object -print(PayidAddress.to_json()) - -# convert the object into a dict -payid_address_dict = payid_address_instance.to_dict() -# create an instance of PayidAddress from a dict -payid_address_from_dict = PayidAddress.from_dict(payid_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXlpZEFkZHJlc3MKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYWNjb3VudF9ob2xkZXIqKiB8IFsqKkFjY291bnRIb2xkZXJEZXRhaWxzKipdKEFjY291bnRIb2xkZXJEZXRhaWxzLm1kKSB8ICB8IAoqKnZhbHVlKiogfCAqKnN0cioqIHwgVGhlIFBheUlEIGlkZW50aWZpZXIgKGVtYWlsLCBwaG9uZSwgQUJOLCBvciBvcmdhbml6YXRpb24gSUQpIHwgCioqdHlwZSoqIHwgKipzdHIqKiB8IFRoZSB0eXBlIG9mIFBheUlEIGJlaW5nIHVzZWQgfCAKKipic2IqKiB8ICoqc3RyKiogfCBCYW5rIFN0YXRlIEJyYW5jaCAoQlNCKSBudW1iZXIgKDYgZGlnaXRzLCBmb3JtYXQgWFhYLVhYWCkgfCBbb3B0aW9uYWxdIAoqKmFjY291bnRfbnVtYmVyKiogfCAqKnN0cioqIHwgQXVzdHJhbGlhbiBiYW5rIGFjY291bnQgbnVtYmVyIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXlpZF9hZGRyZXNzIGltcG9ydCBQYXlpZEFkZHJlc3MKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBheWlkQWRkcmVzcyBmcm9tIGEgSlNPTiBzdHJpbmcKcGF5aWRfYWRkcmVzc19pbnN0YW5jZSA9IFBheWlkQWRkcmVzcy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChQYXlpZEFkZHJlc3MudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcGF5aWRfYWRkcmVzc19kaWN0ID0gcGF5aWRfYWRkcmVzc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGF5aWRBZGRyZXNzIGZyb20gYSBkaWN0CnBheWlkX2FkZHJlc3NfZnJvbV9kaWN0ID0gUGF5aWRBZGRyZXNzLmZyb21fZGljdChwYXlpZF9hZGRyZXNzX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/PayidDestination.md b/docs/PayidDestination.md index 73fb8c1b..e91d7bb8 100644 --- a/docs/PayidDestination.md +++ b/docs/PayidDestination.md @@ -1,30 +1 @@ -# PayidDestination - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | -**address** | [**PayidAddress**](PayidAddress.md) | | - -## Example - -```python -from fireblocks.models.payid_destination import PayidDestination - -# TODO update the JSON string below -json = "{}" -# create an instance of PayidDestination from a JSON string -payid_destination_instance = PayidDestination.from_json(json) -# print the JSON string representation of the object -print(PayidDestination.to_json()) - -# convert the object into a dict -payid_destination_dict = payid_destination_instance.to_dict() -# create an instance of PayidDestination from a dict -payid_destination_from_dict = PayidDestination.from_dict(payid_destination_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXlpZERlc3RpbmF0aW9uCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8ICoqc3RyKiogfCAgfCAKKiphZGRyZXNzKiogfCBbKipQYXlpZEFkZHJlc3MqKl0oUGF5aWRBZGRyZXNzLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5aWRfZGVzdGluYXRpb24gaW1wb3J0IFBheWlkRGVzdGluYXRpb24KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBheWlkRGVzdGluYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCnBheWlkX2Rlc3RpbmF0aW9uX2luc3RhbmNlID0gUGF5aWREZXN0aW5hdGlvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChQYXlpZERlc3RpbmF0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnBheWlkX2Rlc3RpbmF0aW9uX2RpY3QgPSBwYXlpZF9kZXN0aW5hdGlvbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGF5aWREZXN0aW5hdGlvbiBmcm9tIGEgZGljdApwYXlpZF9kZXN0aW5hdGlvbl9mcm9tX2RpY3QgPSBQYXlpZERlc3RpbmF0aW9uLmZyb21fZGljdChwYXlpZF9kZXN0aW5hdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/PayidPaymentInfo.md b/docs/PayidPaymentInfo.md index 16b6a1e6..c70c6502 100644 --- a/docs/PayidPaymentInfo.md +++ b/docs/PayidPaymentInfo.md @@ -1,38 +1 @@ -# PayidPaymentInfo - -PayID payment information for Australian dollar transfers - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**rail** | **str** | The payment rail type for PayID transfers | -**addressing_system** | **str** | The addressing system used for PayID transfers | -**account_holder_given_name** | **str** | The given name (first name) of the account holder | -**account_holder_surname** | **str** | The surname (last name) of the account holder | -**country** | **str** | The country for the transfer (ISO 3166-1 alpha-2 code) | -**value** | **str** | The PayID identifier (email, phone, ABN, or organization ID) | -**type** | **str** | The type of PayID being used | -**bsb** | **str** | Bank State Branch (BSB) number (6 digits, format XXX-XXX) | [optional] -**account_number** | **str** | Australian bank account number | - -## Example - -```python -from fireblocks.models.payid_payment_info import PayidPaymentInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of PayidPaymentInfo from a JSON string -payid_payment_info_instance = PayidPaymentInfo.from_json(json) -# print the JSON string representation of the object -print(PayidPaymentInfo.to_json()) - -# convert the object into a dict -payid_payment_info_dict = payid_payment_info_instance.to_dict() -# create an instance of PayidPaymentInfo from a dict -payid_payment_info_from_dict = PayidPaymentInfo.from_dict(payid_payment_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXlpZFBheW1lbnRJbmZvCgpQYXlJRCBwYXltZW50IGluZm9ybWF0aW9uIGZvciBBdXN0cmFsaWFuIGRvbGxhciB0cmFuc2ZlcnMKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipyYWlsKiogfCAqKnN0cioqIHwgVGhlIHBheW1lbnQgcmFpbCB0eXBlIGZvciBQYXlJRCB0cmFuc2ZlcnMgfCAKKiphZGRyZXNzaW5nX3N5c3RlbSoqIHwgKipzdHIqKiB8IFRoZSBhZGRyZXNzaW5nIHN5c3RlbSB1c2VkIGZvciBQYXlJRCB0cmFuc2ZlcnMgfCAKKiphY2NvdW50X2hvbGRlcl9naXZlbl9uYW1lKiogfCAqKnN0cioqIHwgVGhlIGdpdmVuIG5hbWUgKGZpcnN0IG5hbWUpIG9mIHRoZSBhY2NvdW50IGhvbGRlciB8IAoqKmFjY291bnRfaG9sZGVyX3N1cm5hbWUqKiB8ICoqc3RyKiogfCBUaGUgc3VybmFtZSAobGFzdCBuYW1lKSBvZiB0aGUgYWNjb3VudCBob2xkZXIgfCAKKipjb3VudHJ5KiogfCAqKnN0cioqIHwgVGhlIGNvdW50cnkgZm9yIHRoZSB0cmFuc2ZlciAoSVNPIDMxNjYtMSBhbHBoYS0yIGNvZGUpIHwgCioqdmFsdWUqKiB8ICoqc3RyKiogfCBUaGUgUGF5SUQgaWRlbnRpZmllciAoZW1haWwsIHBob25lLCBBQk4sIG9yIG9yZ2FuaXphdGlvbiBJRCkgfCAKKip0eXBlKiogfCAqKnN0cioqIHwgVGhlIHR5cGUgb2YgUGF5SUQgYmVpbmcgdXNlZCB8IAoqKmJzYioqIHwgKipzdHIqKiB8IEJhbmsgU3RhdGUgQnJhbmNoIChCU0IpIG51bWJlciAoNiBkaWdpdHMsIGZvcm1hdCBYWFgtWFhYKSB8IFtvcHRpb25hbF0gCioqYWNjb3VudF9udW1iZXIqKiB8ICoqc3RyKiogfCBBdXN0cmFsaWFuIGJhbmsgYWNjb3VudCBudW1iZXIgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheWlkX3BheW1lbnRfaW5mbyBpbXBvcnQgUGF5aWRQYXltZW50SW5mbwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGF5aWRQYXltZW50SW5mbyBmcm9tIGEgSlNPTiBzdHJpbmcKcGF5aWRfcGF5bWVudF9pbmZvX2luc3RhbmNlID0gUGF5aWRQYXltZW50SW5mby5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChQYXlpZFBheW1lbnRJbmZvLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnBheWlkX3BheW1lbnRfaW5mb19kaWN0ID0gcGF5aWRfcGF5bWVudF9pbmZvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXlpZFBheW1lbnRJbmZvIGZyb20gYSBkaWN0CnBheWlkX3BheW1lbnRfaW5mb19mcm9tX2RpY3QgPSBQYXlpZFBheW1lbnRJbmZvLmZyb21fZGljdChwYXlpZF9wYXltZW50X2luZm9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PaymentAccount.md b/docs/PaymentAccount.md index 311df754..665d9905 100644 --- a/docs/PaymentAccount.md +++ b/docs/PaymentAccount.md @@ -1,30 +1 @@ -# PaymentAccount - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | -**type** | [**PaymentAccountType**](PaymentAccountType.md) | | - -## Example - -```python -from fireblocks.models.payment_account import PaymentAccount - -# TODO update the JSON string below -json = "{}" -# create an instance of PaymentAccount from a JSON string -payment_account_instance = PaymentAccount.from_json(json) -# print the JSON string representation of the object -print(PaymentAccount.to_json()) - -# convert the object into a dict -payment_account_dict = payment_account_instance.to_dict() -# create an instance of PaymentAccount from a dict -payment_account_from_dict = PaymentAccount.from_dict(payment_account_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXltZW50QWNjb3VudAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8ICB8IAoqKnR5cGUqKiB8IFsqKlBheW1lbnRBY2NvdW50VHlwZSoqXShQYXltZW50QWNjb3VudFR5cGUubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXltZW50X2FjY291bnQgaW1wb3J0IFBheW1lbnRBY2NvdW50CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXltZW50QWNjb3VudCBmcm9tIGEgSlNPTiBzdHJpbmcKcGF5bWVudF9hY2NvdW50X2luc3RhbmNlID0gUGF5bWVudEFjY291bnQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUGF5bWVudEFjY291bnQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcGF5bWVudF9hY2NvdW50X2RpY3QgPSBwYXltZW50X2FjY291bnRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBheW1lbnRBY2NvdW50IGZyb20gYSBkaWN0CnBheW1lbnRfYWNjb3VudF9mcm9tX2RpY3QgPSBQYXltZW50QWNjb3VudC5mcm9tX2RpY3QocGF5bWVudF9hY2NvdW50X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/PaymentAccountResponse.md b/docs/PaymentAccountResponse.md index 2a9f38a0..16eb2fdf 100644 --- a/docs/PaymentAccountResponse.md +++ b/docs/PaymentAccountResponse.md @@ -1,30 +1 @@ -# PaymentAccountResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | [optional] -**type** | [**PaymentAccountType**](PaymentAccountType.md) | | [optional] - -## Example - -```python -from fireblocks.models.payment_account_response import PaymentAccountResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of PaymentAccountResponse from a JSON string -payment_account_response_instance = PaymentAccountResponse.from_json(json) -# print the JSON string representation of the object -print(PaymentAccountResponse.to_json()) - -# convert the object into a dict -payment_account_response_dict = payment_account_response_instance.to_dict() -# create an instance of PaymentAccountResponse from a dict -payment_account_response_from_dict = PaymentAccountResponse.from_dict(payment_account_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXltZW50QWNjb3VudFJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKip0eXBlKiogfCBbKipQYXltZW50QWNjb3VudFR5cGUqKl0oUGF5bWVudEFjY291bnRUeXBlLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXltZW50X2FjY291bnRfcmVzcG9uc2UgaW1wb3J0IFBheW1lbnRBY2NvdW50UmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBheW1lbnRBY2NvdW50UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnBheW1lbnRfYWNjb3VudF9yZXNwb25zZV9pbnN0YW5jZSA9IFBheW1lbnRBY2NvdW50UmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUGF5bWVudEFjY291bnRSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApwYXltZW50X2FjY291bnRfcmVzcG9uc2VfZGljdCA9IHBheW1lbnRfYWNjb3VudF9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGF5bWVudEFjY291bnRSZXNwb25zZSBmcm9tIGEgZGljdApwYXltZW50X2FjY291bnRfcmVzcG9uc2VfZnJvbV9kaWN0ID0gUGF5bWVudEFjY291bnRSZXNwb25zZS5mcm9tX2RpY3QocGF5bWVudF9hY2NvdW50X3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/PaymentAccountType.md b/docs/PaymentAccountType.md index 745fc830..b039d686 100644 --- a/docs/PaymentAccountType.md +++ b/docs/PaymentAccountType.md @@ -1,14 +1 @@ -# PaymentAccountType - - -## Enum - -* `VAULT_ACCOUNT` (value: `'VAULT_ACCOUNT'`) - -* `EXCHANGE_ACCOUNT` (value: `'EXCHANGE_ACCOUNT'`) - -* `FIAT_ACCOUNT` (value: `'FIAT_ACCOUNT'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXltZW50QWNjb3VudFR5cGUKCgojIyBFbnVtCgoqIGBWQVVMVF9BQ0NPVU5UYCAodmFsdWU6IGAnVkFVTFRfQUNDT1VOVCdgKQoKKiBgRVhDSEFOR0VfQUNDT1VOVGAgKHZhbHVlOiBgJ0VYQ0hBTkdFX0FDQ09VTlQnYCkKCiogYEZJQVRfQUNDT1VOVGAgKHZhbHVlOiBgJ0ZJQVRfQUNDT1VOVCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/PaymentInstructions.md b/docs/PaymentInstructions.md index d25655d4..e79e0f00 100644 --- a/docs/PaymentInstructions.md +++ b/docs/PaymentInstructions.md @@ -1,31 +1 @@ -# PaymentInstructions - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | The type of destination. Use \"BLOCKCHAIN\" for blockchain address destinations. | -**address** | [**InternalTransferAddress**](InternalTransferAddress.md) | | -**reference_id** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.payment_instructions import PaymentInstructions - -# TODO update the JSON string below -json = "{}" -# create an instance of PaymentInstructions from a JSON string -payment_instructions_instance = PaymentInstructions.from_json(json) -# print the JSON string representation of the object -print(PaymentInstructions.to_json()) - -# convert the object into a dict -payment_instructions_dict = payment_instructions_instance.to_dict() -# create an instance of PaymentInstructions from a dict -payment_instructions_from_dict = PaymentInstructions.from_dict(payment_instructions_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXltZW50SW5zdHJ1Y3Rpb25zCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8ICoqc3RyKiogfCBUaGUgdHlwZSBvZiBkZXN0aW5hdGlvbi4gVXNlIFwmcXVvdDtCTE9DS0NIQUlOXCZxdW90OyBmb3IgYmxvY2tjaGFpbiBhZGRyZXNzIGRlc3RpbmF0aW9ucy4gfCAKKiphZGRyZXNzKiogfCBbKipJbnRlcm5hbFRyYW5zZmVyQWRkcmVzcyoqXShJbnRlcm5hbFRyYW5zZmVyQWRkcmVzcy5tZCkgfCAgfCAKKipyZWZlcmVuY2VfaWQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5bWVudF9pbnN0cnVjdGlvbnMgaW1wb3J0IFBheW1lbnRJbnN0cnVjdGlvbnMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBheW1lbnRJbnN0cnVjdGlvbnMgZnJvbSBhIEpTT04gc3RyaW5nCnBheW1lbnRfaW5zdHJ1Y3Rpb25zX2luc3RhbmNlID0gUGF5bWVudEluc3RydWN0aW9ucy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChQYXltZW50SW5zdHJ1Y3Rpb25zLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnBheW1lbnRfaW5zdHJ1Y3Rpb25zX2RpY3QgPSBwYXltZW50X2luc3RydWN0aW9uc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGF5bWVudEluc3RydWN0aW9ucyBmcm9tIGEgZGljdApwYXltZW50X2luc3RydWN0aW9uc19mcm9tX2RpY3QgPSBQYXltZW50SW5zdHJ1Y3Rpb25zLmZyb21fZGljdChwYXltZW50X2luc3RydWN0aW9uc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/PaymentInstructionsOneOf.md b/docs/PaymentInstructionsOneOf.md index 40ccef8e..1cbc4a33 100644 --- a/docs/PaymentInstructionsOneOf.md +++ b/docs/PaymentInstructionsOneOf.md @@ -1,31 +1 @@ -# PaymentInstructionsOneOf - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | -**address** | [**InternalTransferAddress**](InternalTransferAddress.md) | | -**reference_id** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.payment_instructions_one_of import PaymentInstructionsOneOf - -# TODO update the JSON string below -json = "{}" -# create an instance of PaymentInstructionsOneOf from a JSON string -payment_instructions_one_of_instance = PaymentInstructionsOneOf.from_json(json) -# print the JSON string representation of the object -print(PaymentInstructionsOneOf.to_json()) - -# convert the object into a dict -payment_instructions_one_of_dict = payment_instructions_one_of_instance.to_dict() -# create an instance of PaymentInstructionsOneOf from a dict -payment_instructions_one_of_from_dict = PaymentInstructionsOneOf.from_dict(payment_instructions_one_of_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXltZW50SW5zdHJ1Y3Rpb25zT25lT2YKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgKipzdHIqKiB8ICB8IAoqKmFkZHJlc3MqKiB8IFsqKkludGVybmFsVHJhbnNmZXJBZGRyZXNzKipdKEludGVybmFsVHJhbnNmZXJBZGRyZXNzLm1kKSB8ICB8IAoqKnJlZmVyZW5jZV9pZCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXltZW50X2luc3RydWN0aW9uc19vbmVfb2YgaW1wb3J0IFBheW1lbnRJbnN0cnVjdGlvbnNPbmVPZgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGF5bWVudEluc3RydWN0aW9uc09uZU9mIGZyb20gYSBKU09OIHN0cmluZwpwYXltZW50X2luc3RydWN0aW9uc19vbmVfb2ZfaW5zdGFuY2UgPSBQYXltZW50SW5zdHJ1Y3Rpb25zT25lT2YuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUGF5bWVudEluc3RydWN0aW9uc09uZU9mLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnBheW1lbnRfaW5zdHJ1Y3Rpb25zX29uZV9vZl9kaWN0ID0gcGF5bWVudF9pbnN0cnVjdGlvbnNfb25lX29mX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXltZW50SW5zdHJ1Y3Rpb25zT25lT2YgZnJvbSBhIGRpY3QKcGF5bWVudF9pbnN0cnVjdGlvbnNfb25lX29mX2Zyb21fZGljdCA9IFBheW1lbnRJbnN0cnVjdGlvbnNPbmVPZi5mcm9tX2RpY3QocGF5bWVudF9pbnN0cnVjdGlvbnNfb25lX29mX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/PaymentRedirect.md b/docs/PaymentRedirect.md index 76c6f9c1..be0655a3 100644 --- a/docs/PaymentRedirect.md +++ b/docs/PaymentRedirect.md @@ -1,31 +1 @@ -# PaymentRedirect - -URL returned by the provider that the end user will be redirected to in order to complete the payment on the bank/mobile provider page. After completion, the bank/mobile provider redirects the end user back to successRedirectUrl (provided in the RAMP request) - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**url** | **str** | URL to redirect to | [optional] -**expires_at** | **str** | Expiration date of the redirect | [optional] - -## Example - -```python -from fireblocks.models.payment_redirect import PaymentRedirect - -# TODO update the JSON string below -json = "{}" -# create an instance of PaymentRedirect from a JSON string -payment_redirect_instance = PaymentRedirect.from_json(json) -# print the JSON string representation of the object -print(PaymentRedirect.to_json()) - -# convert the object into a dict -payment_redirect_dict = payment_redirect_instance.to_dict() -# create an instance of PaymentRedirect from a dict -payment_redirect_from_dict = PaymentRedirect.from_dict(payment_redirect_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXltZW50UmVkaXJlY3QKClVSTCByZXR1cm5lZCBieSB0aGUgcHJvdmlkZXIgdGhhdCB0aGUgZW5kIHVzZXIgd2lsbCBiZSByZWRpcmVjdGVkIHRvIGluIG9yZGVyIHRvIGNvbXBsZXRlIHRoZSBwYXltZW50IG9uIHRoZSBiYW5rL21vYmlsZSBwcm92aWRlciBwYWdlLiBBZnRlciBjb21wbGV0aW9uLCB0aGUgYmFuay9tb2JpbGUgcHJvdmlkZXIgcmVkaXJlY3RzIHRoZSBlbmQgdXNlciBiYWNrIHRvIHN1Y2Nlc3NSZWRpcmVjdFVybCAocHJvdmlkZWQgaW4gdGhlIFJBTVAgcmVxdWVzdCkKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip1cmwqKiB8ICoqc3RyKiogfCBVUkwgdG8gcmVkaXJlY3QgdG8gfCBbb3B0aW9uYWxdIAoqKmV4cGlyZXNfYXQqKiB8ICoqc3RyKiogfCBFeHBpcmF0aW9uIGRhdGUgb2YgdGhlIHJlZGlyZWN0IHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW1lbnRfcmVkaXJlY3QgaW1wb3J0IFBheW1lbnRSZWRpcmVjdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGF5bWVudFJlZGlyZWN0IGZyb20gYSBKU09OIHN0cmluZwpwYXltZW50X3JlZGlyZWN0X2luc3RhbmNlID0gUGF5bWVudFJlZGlyZWN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFBheW1lbnRSZWRpcmVjdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApwYXltZW50X3JlZGlyZWN0X2RpY3QgPSBwYXltZW50X3JlZGlyZWN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXltZW50UmVkaXJlY3QgZnJvbSBhIGRpY3QKcGF5bWVudF9yZWRpcmVjdF9mcm9tX2RpY3QgPSBQYXltZW50UmVkaXJlY3QuZnJvbV9kaWN0KHBheW1lbnRfcmVkaXJlY3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PaymentsPayoutApi.md b/docs/PaymentsPayoutApi.md index fcebdc27..95ea7f11 100644 --- a/docs/PaymentsPayoutApi.md +++ b/docs/PaymentsPayoutApi.md @@ -1,268 +1 @@ -# fireblocks.PaymentsPayoutApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**create_payout**](PaymentsPayoutApi.md#create_payout) | **POST** /payments/payout | Create a payout instruction set -[**execute_payout_action**](PaymentsPayoutApi.md#execute_payout_action) | **POST** /payments/payout/{payoutId}/actions/execute | Execute a payout instruction set -[**get_payout**](PaymentsPayoutApi.md#get_payout) | **GET** /payments/payout/{payoutId} | Get the status of a payout instruction set - - -# **create_payout** -> PayoutResponse create_payout(idempotency_key=idempotency_key, create_payout_request=create_payout_request) - -Create a payout instruction set - -**Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.
-
These endpoints are currently in beta and might be subject to changes.
-
If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.
-
Create a payout instruction set.
-A payout instruction set is a set of instructions for distributing payments from a single payment account to a list of payee accounts.
-The instruction set defines:
-
    -
  • the payment account and its account type (vault, exchange, or fiat).
  • -
  • the account type (vault account, exchange account, whitelisted address, network connection, fiat account, or merchant account), the amount, and the asset of payment for each payee account.
  • -
-Learn more about Fireblocks Payments - Payouts in the following [guide](https://developers.fireblocks.com/docs/create-payouts). -
Endpoint Permission: Admin, Non-Signing Admin. - - -### Example - - -```python -from fireblocks.models.create_payout_request import CreatePayoutRequest -from fireblocks.models.payout_response import PayoutResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - create_payout_request = {"paymentAccount":{"id":"EX_SUB1","type":"EXCHANGE_ACCOUNT"},"instructionSet":[{"payeeAccount":{"id":"bef85a1c-b605-4b2e-bdb5-2d400f4d0bf3","type":"EXTERNAL_WALLET"},"amount":{"amount":"43","assetId":"USDC"}},{"payeeAccount":{"id":"3adc1f92-e791-44a8-9aee-7f31c2108b78","type":"NETWORK_CONNECTION"},"amount":{"amount":"4423","assetId":"USDC"}}]} # CreatePayoutRequest | (optional) - - try: - # Create a payout instruction set - api_response = fireblocks.payments_payout.create_payout(idempotency_key=idempotency_key, create_payout_request=create_payout_request).result() - print("The response of PaymentsPayoutApi->create_payout:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling PaymentsPayoutApi->create_payout: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **create_payout_request** | [**CreatePayoutRequest**](CreatePayoutRequest.md)| | [optional] - -### Return type - -[**PayoutResponse**](PayoutResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | The payout instruction set creation succeeded and returns the generated instruction set with a unique payout IDThe payout ID will be used for executing the payout and checking the payout status. | - | -**400** | Bad request | - | -**401** | Unauthorized. Missing / invalid JWT token in Authorization header. | - | -**5XX** | Internal error. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **execute_payout_action** -> DispatchPayoutResponse execute_payout_action(payout_id, idempotency_key=idempotency_key) - -Execute a payout instruction set - -**Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.
-
These endpoints are currently in beta and might be subject to changes.
-
If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.
-
Execute a payout instruction set.
-
The instruction set will be verified and executed.
-Source locking
-If you are executing a payout instruction set from a payment account with an already active payout the active payout will complete before the new payout instruction set can be executed.
-You cannot execute the same payout instruction set more than once. - - -### Example - - -```python -from fireblocks.models.dispatch_payout_response import DispatchPayoutResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - payout_id = '1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7' # str | the payout id received from the creation of the payout instruction set - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Execute a payout instruction set - api_response = fireblocks.payments_payout.execute_payout_action(payout_id, idempotency_key=idempotency_key).result() - print("The response of PaymentsPayoutApi->execute_payout_action:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling PaymentsPayoutApi->execute_payout_action: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **payout_id** | **str**| the payout id received from the creation of the payout instruction set | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**DispatchPayoutResponse**](DispatchPayoutResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Executed the payout instruction set | - | -**400** | Bad request | - | -**401** | Unauthorized. Missing / invalid JWT token in Authorization header. | - | -**5XX** | Internal error. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_payout** -> PayoutResponse get_payout(payout_id) - -Get the status of a payout instruction set - -**Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.
-
These endpoints are currently in beta and might be subject to changes.
-
If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.
-
Endpoint Permission: Admin, Non-Signing Admin. - - -### Example - - -```python -from fireblocks.models.payout_response import PayoutResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - payout_id = '1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7' # str | the payout id received from the creation of the payout instruction set - - try: - # Get the status of a payout instruction set - api_response = fireblocks.payments_payout.get_payout(payout_id).result() - print("The response of PaymentsPayoutApi->get_payout:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling PaymentsPayoutApi->get_payout: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **payout_id** | **str**| the payout id received from the creation of the payout instruction set | - -### Return type - -[**PayoutResponse**](PayoutResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Returns the current status of the payout instruction set, including the status of each payout instruction and the transactions created in the process. | - | -**401** | Unauthorized. Missing / invalid JWT token in Authorization header. | - | -**404** | No payout with the given payout ID exists. | - | -**5XX** | Internal error. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLlBheW1lbnRzUGF5b3V0QXBpCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gKmh0dHBzOi8vYXBpLmZpcmVibG9ja3MuaW8vdjEqCgpNZXRob2QgfCBIVFRQIHJlcXVlc3QgfCBEZXNjcmlwdGlvbgotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KWyoqY3JlYXRlX3BheW91dCoqXShQYXltZW50c1BheW91dEFwaS5tZCNjcmVhdGVfcGF5b3V0KSB8ICoqUE9TVCoqIC9wYXltZW50cy9wYXlvdXQgfCBDcmVhdGUgYSBwYXlvdXQgaW5zdHJ1Y3Rpb24gc2V0ClsqKmV4ZWN1dGVfcGF5b3V0X2FjdGlvbioqXShQYXltZW50c1BheW91dEFwaS5tZCNleGVjdXRlX3BheW91dF9hY3Rpb24pIHwgKipQT1NUKiogL3BheW1lbnRzL3BheW91dC97cGF5b3V0SWR9L2FjdGlvbnMvZXhlY3V0ZSB8IEV4ZWN1dGUgYSBwYXlvdXQgaW5zdHJ1Y3Rpb24gc2V0ClsqKmdldF9wYXlvdXQqKl0oUGF5bWVudHNQYXlvdXRBcGkubWQjZ2V0X3BheW91dCkgfCAqKkdFVCoqIC9wYXltZW50cy9wYXlvdXQve3BheW91dElkfSB8IEdldCB0aGUgc3RhdHVzIG9mIGEgcGF5b3V0IGluc3RydWN0aW9uIHNldAoKCiMgKipjcmVhdGVfcGF5b3V0KioKPiBQYXlvdXRSZXNwb25zZSBjcmVhdGVfcGF5b3V0KGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksIGNyZWF0ZV9wYXlvdXRfcmVxdWVzdD1jcmVhdGVfcGF5b3V0X3JlcXVlc3QpCgpDcmVhdGUgYSBwYXlvdXQgaW5zdHJ1Y3Rpb24gc2V0CgoqKk5vdGU6KiogVGhlIHJlZmVyZW5jZSBjb250ZW50IGluIHRoaXMgc2VjdGlvbiBkb2N1bWVudHMgdGhlIFBheW1lbnRzIEVuZ2luZSBlbmRwb2ludC4gVGhlIFBheW1lbnRzIEVuZ2luZSBlbmRwb2ludHMgaW5jbHVkZSBBUElzIGF2YWlsYWJsZSBvbmx5IGZvciBjdXN0b21lcnMgd2l0aCBQYXltZW50cyBFbmdpbmUgZW5hYmxlZCBvbiB0aGVpciBhY2NvdW50cy4gPC9icj4KPC9icj5UaGVzZSBlbmRwb2ludHMgYXJlIGN1cnJlbnRseSBpbiBiZXRhIGFuZCBtaWdodCBiZSBzdWJqZWN0IHRvIGNoYW5nZXMuPC9icj4KPC9icj5JZiB5b3Ugd2FudCB0byBsZWFybiBtb3JlIGFib3V0IEZpcmVibG9ja3MgUGF5bWVudHMgRW5naW5lLCBwbGVhc2UgY29udGFjdCB5b3VyIEZpcmVibG9ja3MgQ3VzdG9tZXIgU3VjY2VzcyBNYW5hZ2VyIG9yIGVtYWlsIENTTUBmaXJlYmxvY2tzLmNvbS4gPC9icj4KPC9icj4gPGIgdT5DcmVhdGUgYSBwYXlvdXQgaW5zdHJ1Y3Rpb24gc2V0LjwvYj4gPC91PjwvYnI+CkEgcGF5b3V0IGluc3RydWN0aW9uIHNldCBpcyBhIHNldCBvZiBpbnN0cnVjdGlvbnMgZm9yIGRpc3RyaWJ1dGluZyBwYXltZW50cyBmcm9tIGEgc2luZ2xlIHBheW1lbnQgYWNjb3VudCB0byBhIGxpc3Qgb2YgcGF5ZWUgYWNjb3VudHMuIDwvYnI+ClRoZSBpbnN0cnVjdGlvbiBzZXQgZGVmaW5lczogPC9icj4KPHVsPgo8bGk+dGhlIHBheW1lbnQgYWNjb3VudCBhbmQgaXRzIGFjY291bnQgdHlwZSAodmF1bHQsIGV4Y2hhbmdlLCBvciBmaWF0KS4gPC9saT4KPGxpPnRoZSBhY2NvdW50IHR5cGUgKHZhdWx0IGFjY291bnQsIGV4Y2hhbmdlIGFjY291bnQsIHdoaXRlbGlzdGVkIGFkZHJlc3MsIG5ldHdvcmsgY29ubmVjdGlvbiwgZmlhdCBhY2NvdW50LCBvciBtZXJjaGFudCBhY2NvdW50KSwgdGhlIGFtb3VudCwgYW5kIHRoZSBhc3NldCBvZiBwYXltZW50IGZvciBlYWNoIHBheWVlIGFjY291bnQuPC9saT4KPC91bD4KTGVhcm4gbW9yZSBhYm91dCBGaXJlYmxvY2tzIFBheW1lbnRzIC0gUGF5b3V0cyBpbiB0aGUgZm9sbG93aW5nIFtndWlkZV0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL2RvY3MvY3JlYXRlLXBheW91dHMpLgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbi4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9wYXlvdXRfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlUGF5b3V0UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW91dF9yZXNwb25zZSBpbXBvcnQgUGF5b3V0UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQogICAgY3JlYXRlX3BheW91dF9yZXF1ZXN0ID0geyJwYXltZW50QWNjb3VudCI6eyJpZCI6IkVYX1NVQjEiLCJ0eXBlIjoiRVhDSEFOR0VfQUNDT1VOVCJ9LCJpbnN0cnVjdGlvblNldCI6W3sicGF5ZWVBY2NvdW50Ijp7ImlkIjoiYmVmODVhMWMtYjYwNS00YjJlLWJkYjUtMmQ0MDBmNGQwYmYzIiwidHlwZSI6IkVYVEVSTkFMX1dBTExFVCJ9LCJhbW91bnQiOnsiYW1vdW50IjoiNDMiLCJhc3NldElkIjoiVVNEQyJ9fSx7InBheWVlQWNjb3VudCI6eyJpZCI6IjNhZGMxZjkyLWU3OTEtNDRhOC05YWVlLTdmMzFjMjEwOGI3OCIsInR5cGUiOiJORVRXT1JLX0NPTk5FQ1RJT04ifSwiYW1vdW50Ijp7ImFtb3VudCI6IjQ0MjMiLCJhc3NldElkIjoiVVNEQyJ9fV19ICMgQ3JlYXRlUGF5b3V0UmVxdWVzdCB8ICAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ3JlYXRlIGEgcGF5b3V0IGluc3RydWN0aW9uIHNldAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MucGF5bWVudHNfcGF5b3V0LmNyZWF0ZV9wYXlvdXQoaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwgY3JlYXRlX3BheW91dF9yZXF1ZXN0PWNyZWF0ZV9wYXlvdXRfcmVxdWVzdCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFBheW1lbnRzUGF5b3V0QXBpLT5jcmVhdGVfcGF5b3V0OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFBheW1lbnRzUGF5b3V0QXBpLT5jcmVhdGVfcGF5b3V0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAogKipjcmVhdGVfcGF5b3V0X3JlcXVlc3QqKiB8IFsqKkNyZWF0ZVBheW91dFJlcXVlc3QqKl0oQ3JlYXRlUGF5b3V0UmVxdWVzdC5tZCl8ICB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlBheW91dFJlc3BvbnNlKipdKFBheW91dFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBUaGUgcGF5b3V0IGluc3RydWN0aW9uIHNldCBjcmVhdGlvbiBzdWNjZWVkZWQgYW5kIHJldHVybnMgdGhlIGdlbmVyYXRlZCBpbnN0cnVjdGlvbiBzZXQgd2l0aCBhIHVuaXF1ZSBwYXlvdXQgSURUaGUgcGF5b3V0IElEIHdpbGwgYmUgdXNlZCBmb3IgZXhlY3V0aW5nIHRoZSBwYXlvdXQgYW5kIGNoZWNraW5nIHRoZSBwYXlvdXQgc3RhdHVzLiB8ICAtICB8CioqNDAwKiogfCBCYWQgcmVxdWVzdCB8ICAtICB8CioqNDAxKiogfCBVbmF1dGhvcml6ZWQuIE1pc3NpbmcgLyBpbnZhbGlkIEpXVCB0b2tlbiBpbiBBdXRob3JpemF0aW9uIGhlYWRlci4gfCAgLSAgfAoqKjVYWCoqIHwgSW50ZXJuYWwgZXJyb3IuIHwgIC0gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmV4ZWN1dGVfcGF5b3V0X2FjdGlvbioqCj4gRGlzcGF0Y2hQYXlvdXRSZXNwb25zZSBleGVjdXRlX3BheW91dF9hY3Rpb24ocGF5b3V0X2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKRXhlY3V0ZSBhIHBheW91dCBpbnN0cnVjdGlvbiBzZXQKCioqTm90ZToqKiBUaGUgcmVmZXJlbmNlIGNvbnRlbnQgaW4gdGhpcyBzZWN0aW9uIGRvY3VtZW50cyB0aGUgUGF5bWVudHMgRW5naW5lIGVuZHBvaW50LiBUaGUgUGF5bWVudHMgRW5naW5lIGVuZHBvaW50cyBpbmNsdWRlIEFQSXMgYXZhaWxhYmxlIG9ubHkgZm9yIGN1c3RvbWVycyB3aXRoIFBheW1lbnRzIEVuZ2luZSBlbmFibGVkIG9uIHRoZWlyIGFjY291bnRzLiA8L2JyPgo8L2JyPlRoZXNlIGVuZHBvaW50cyBhcmUgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy48L2JyPgo8L2JyPklmIHlvdSB3YW50IHRvIGxlYXJuIG1vcmUgYWJvdXQgRmlyZWJsb2NrcyBQYXltZW50cyBFbmdpbmUsIHBsZWFzZSBjb250YWN0IHlvdXIgRmlyZWJsb2NrcyBDdXN0b21lciBTdWNjZXNzIE1hbmFnZXIgb3IgZW1haWwgQ1NNQGZpcmVibG9ja3MuY29tLiA8L2JyPgo8L2JyPjxiIHU+RXhlY3V0ZSBhIHBheW91dCBpbnN0cnVjdGlvbiBzZXQuPC9iPiA8L3U+IDwvYnI+CjwvYnI+VGhlIGluc3RydWN0aW9uIHNldCB3aWxsIGJlIHZlcmlmaWVkIGFuZCBleGVjdXRlZC48L2JyPgo8Yj48dT5Tb3VyY2UgbG9ja2luZzwvYnI+PC9iPiA8L3U+CklmIHlvdSBhcmUgZXhlY3V0aW5nIGEgcGF5b3V0IGluc3RydWN0aW9uIHNldCBmcm9tIGEgcGF5bWVudCBhY2NvdW50IHdpdGggYW4gYWxyZWFkeSBhY3RpdmUgcGF5b3V0IHRoZSBhY3RpdmUgcGF5b3V0IHdpbGwgY29tcGxldGUgYmVmb3JlIHRoZSBuZXcgcGF5b3V0IGluc3RydWN0aW9uIHNldCBjYW4gYmUgZXhlY3V0ZWQuIDwvYnI+CllvdSBjYW5ub3QgZXhlY3V0ZSB0aGUgc2FtZSBwYXlvdXQgaW5zdHJ1Y3Rpb24gc2V0IG1vcmUgdGhhbiBvbmNlLgoKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzcGF0Y2hfcGF5b3V0X3Jlc3BvbnNlIGltcG9ydCBEaXNwYXRjaFBheW91dFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHBheW91dF9pZCA9ICcxZmUzYjYxZi03ZTFmLTRhMTktYWZmMC00ZjBhNTI0ZDQ0ZDcnICMgc3RyIHwgdGhlIHBheW91dCBpZCByZWNlaXZlZCBmcm9tIHRoZSBjcmVhdGlvbiBvZiB0aGUgcGF5b3V0IGluc3RydWN0aW9uIHNldAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIEV4ZWN1dGUgYSBwYXlvdXQgaW5zdHJ1Y3Rpb24gc2V0CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5wYXltZW50c19wYXlvdXQuZXhlY3V0ZV9wYXlvdXRfYWN0aW9uKHBheW91dF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFBheW1lbnRzUGF5b3V0QXBpLT5leGVjdXRlX3BheW91dF9hY3Rpb246XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgUGF5bWVudHNQYXlvdXRBcGktPmV4ZWN1dGVfcGF5b3V0X2FjdGlvbjogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqcGF5b3V0X2lkKiogfCAqKnN0cioqfCB0aGUgcGF5b3V0IGlkIHJlY2VpdmVkIGZyb20gdGhlIGNyZWF0aW9uIG9mIHRoZSBwYXlvdXQgaW5zdHJ1Y3Rpb24gc2V0IHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkRpc3BhdGNoUGF5b3V0UmVzcG9uc2UqKl0oRGlzcGF0Y2hQYXlvdXRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEV4ZWN1dGVkIHRoZSBwYXlvdXQgaW5zdHJ1Y3Rpb24gc2V0IHwgIC0gIHwKKio0MDAqKiB8IEJhZCByZXF1ZXN0IHwgIC0gIHwKKio0MDEqKiB8IFVuYXV0aG9yaXplZC4gTWlzc2luZyAvIGludmFsaWQgSldUIHRva2VuIGluIEF1dGhvcml6YXRpb24gaGVhZGVyLiB8ICAtICB8CioqNVhYKiogfCBJbnRlcm5hbCBlcnJvci4gfCAgLSAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X3BheW91dCoqCj4gUGF5b3V0UmVzcG9uc2UgZ2V0X3BheW91dChwYXlvdXRfaWQpCgpHZXQgdGhlIHN0YXR1cyBvZiBhIHBheW91dCBpbnN0cnVjdGlvbiBzZXQKCioqTm90ZToqKiBUaGUgcmVmZXJlbmNlIGNvbnRlbnQgaW4gdGhpcyBzZWN0aW9uIGRvY3VtZW50cyB0aGUgUGF5bWVudHMgRW5naW5lIGVuZHBvaW50LiBUaGUgUGF5bWVudHMgRW5naW5lIGVuZHBvaW50cyBpbmNsdWRlIEFQSXMgYXZhaWxhYmxlIG9ubHkgZm9yIGN1c3RvbWVycyB3aXRoIFBheW1lbnRzIEVuZ2luZSBlbmFibGVkIG9uIHRoZWlyIGFjY291bnRzLiA8L2JyPgo8L2JyPlRoZXNlIGVuZHBvaW50cyBhcmUgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy48L2JyPgo8L2JyPklmIHlvdSB3YW50IHRvIGxlYXJuIG1vcmUgYWJvdXQgRmlyZWJsb2NrcyBQYXltZW50cyBFbmdpbmUsIHBsZWFzZSBjb250YWN0IHlvdXIgRmlyZWJsb2NrcyBDdXN0b21lciBTdWNjZXNzIE1hbmFnZXIgb3IgZW1haWwgQ1NNQGZpcmVibG9ja3MuY29tLiA8L2JyPgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbi4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW91dF9yZXNwb25zZSBpbXBvcnQgUGF5b3V0UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgcGF5b3V0X2lkID0gJzFmZTNiNjFmLTdlMWYtNGExOS1hZmYwLTRmMGE1MjRkNDRkNycgIyBzdHIgfCB0aGUgcGF5b3V0IGlkIHJlY2VpdmVkIGZyb20gdGhlIGNyZWF0aW9uIG9mIHRoZSBwYXlvdXQgaW5zdHJ1Y3Rpb24gc2V0CgogICAgdHJ5OgogICAgICAgICMgR2V0IHRoZSBzdGF0dXMgb2YgYSBwYXlvdXQgaW5zdHJ1Y3Rpb24gc2V0CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5wYXltZW50c19wYXlvdXQuZ2V0X3BheW91dChwYXlvdXRfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBQYXltZW50c1BheW91dEFwaS0+Z2V0X3BheW91dDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBQYXltZW50c1BheW91dEFwaS0+Z2V0X3BheW91dDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqcGF5b3V0X2lkKiogfCAqKnN0cioqfCB0aGUgcGF5b3V0IGlkIHJlY2VpdmVkIGZyb20gdGhlIGNyZWF0aW9uIG9mIHRoZSBwYXlvdXQgaW5zdHJ1Y3Rpb24gc2V0IHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKlBheW91dFJlc3BvbnNlKipdKFBheW91dFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgUmV0dXJucyB0aGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIHBheW91dCBpbnN0cnVjdGlvbiBzZXQsIGluY2x1ZGluZyB0aGUgc3RhdHVzIG9mIGVhY2ggcGF5b3V0IGluc3RydWN0aW9uIGFuZCB0aGUgdHJhbnNhY3Rpb25zIGNyZWF0ZWQgaW4gdGhlIHByb2Nlc3MuIHwgIC0gIHwKKio0MDEqKiB8IFVuYXV0aG9yaXplZC4gTWlzc2luZyAvIGludmFsaWQgSldUIHRva2VuIGluIEF1dGhvcml6YXRpb24gaGVhZGVyLiB8ICAtICB8CioqNDA0KiogfCBObyBwYXlvdXQgd2l0aCB0aGUgZ2l2ZW4gcGF5b3V0IElEIGV4aXN0cy4gfCAgLSAgfAoqKjVYWCoqIHwgSW50ZXJuYWwgZXJyb3IuIHwgIC0gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoK \ No newline at end of file diff --git a/docs/PayoutInitMethod.md b/docs/PayoutInitMethod.md index 32a7bd20..e32add43 100644 --- a/docs/PayoutInitMethod.md +++ b/docs/PayoutInitMethod.md @@ -1,12 +1 @@ -# PayoutInitMethod - - -## Enum - -* `FILE` (value: `'FILE'`) - -* `API` (value: `'API'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXlvdXRJbml0TWV0aG9kCgoKIyMgRW51bQoKKiBgRklMRWAgKHZhbHVlOiBgJ0ZJTEUnYCkKCiogYEFQSWAgKHZhbHVlOiBgJ0FQSSdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/PayoutInstruction.md b/docs/PayoutInstruction.md index d13e6a21..771b66f0 100644 --- a/docs/PayoutInstruction.md +++ b/docs/PayoutInstruction.md @@ -1,31 +1 @@ -# PayoutInstruction - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | [optional] -**payee_account** | [**PayeeAccount**](PayeeAccount.md) | | -**amount** | [**InstructionAmount**](InstructionAmount.md) | | - -## Example - -```python -from fireblocks.models.payout_instruction import PayoutInstruction - -# TODO update the JSON string below -json = "{}" -# create an instance of PayoutInstruction from a JSON string -payout_instruction_instance = PayoutInstruction.from_json(json) -# print the JSON string representation of the object -print(PayoutInstruction.to_json()) - -# convert the object into a dict -payout_instruction_dict = payout_instruction_instance.to_dict() -# create an instance of PayoutInstruction from a dict -payout_instruction_from_dict = PayoutInstruction.from_dict(payout_instruction_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXlvdXRJbnN0cnVjdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqcGF5ZWVfYWNjb3VudCoqIHwgWyoqUGF5ZWVBY2NvdW50KipdKFBheWVlQWNjb3VudC5tZCkgfCAgfCAKKiphbW91bnQqKiB8IFsqKkluc3RydWN0aW9uQW1vdW50KipdKEluc3RydWN0aW9uQW1vdW50Lm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5b3V0X2luc3RydWN0aW9uIGltcG9ydCBQYXlvdXRJbnN0cnVjdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGF5b3V0SW5zdHJ1Y3Rpb24gZnJvbSBhIEpTT04gc3RyaW5nCnBheW91dF9pbnN0cnVjdGlvbl9pbnN0YW5jZSA9IFBheW91dEluc3RydWN0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFBheW91dEluc3RydWN0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnBheW91dF9pbnN0cnVjdGlvbl9kaWN0ID0gcGF5b3V0X2luc3RydWN0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXlvdXRJbnN0cnVjdGlvbiBmcm9tIGEgZGljdApwYXlvdXRfaW5zdHJ1Y3Rpb25fZnJvbV9kaWN0ID0gUGF5b3V0SW5zdHJ1Y3Rpb24uZnJvbV9kaWN0KHBheW91dF9pbnN0cnVjdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/PayoutInstructionResponse.md b/docs/PayoutInstructionResponse.md index aede982a..569afeb3 100644 --- a/docs/PayoutInstructionResponse.md +++ b/docs/PayoutInstructionResponse.md @@ -1,33 +1 @@ -# PayoutInstructionResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | [optional] -**payee_account** | [**PayeeAccountResponse**](PayeeAccountResponse.md) | | -**amount** | [**InstructionAmount**](InstructionAmount.md) | | -**state** | [**PayoutInstructionState**](PayoutInstructionState.md) | | -**transactions** | [**List[Transaction]**](Transaction.md) | | - -## Example - -```python -from fireblocks.models.payout_instruction_response import PayoutInstructionResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of PayoutInstructionResponse from a JSON string -payout_instruction_response_instance = PayoutInstructionResponse.from_json(json) -# print the JSON string representation of the object -print(PayoutInstructionResponse.to_json()) - -# convert the object into a dict -payout_instruction_response_dict = payout_instruction_response_instance.to_dict() -# create an instance of PayoutInstructionResponse from a dict -payout_instruction_response_from_dict = PayoutInstructionResponse.from_dict(payout_instruction_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXlvdXRJbnN0cnVjdGlvblJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipwYXllZV9hY2NvdW50KiogfCBbKipQYXllZUFjY291bnRSZXNwb25zZSoqXShQYXllZUFjY291bnRSZXNwb25zZS5tZCkgfCAgfCAKKiphbW91bnQqKiB8IFsqKkluc3RydWN0aW9uQW1vdW50KipdKEluc3RydWN0aW9uQW1vdW50Lm1kKSB8ICB8IAoqKnN0YXRlKiogfCBbKipQYXlvdXRJbnN0cnVjdGlvblN0YXRlKipdKFBheW91dEluc3RydWN0aW9uU3RhdGUubWQpIHwgIHwgCioqdHJhbnNhY3Rpb25zKiogfCBbKipMaXN0W1RyYW5zYWN0aW9uXSoqXShUcmFuc2FjdGlvbi5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW91dF9pbnN0cnVjdGlvbl9yZXNwb25zZSBpbXBvcnQgUGF5b3V0SW5zdHJ1Y3Rpb25SZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGF5b3V0SW5zdHJ1Y3Rpb25SZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKcGF5b3V0X2luc3RydWN0aW9uX3Jlc3BvbnNlX2luc3RhbmNlID0gUGF5b3V0SW5zdHJ1Y3Rpb25SZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChQYXlvdXRJbnN0cnVjdGlvblJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnBheW91dF9pbnN0cnVjdGlvbl9yZXNwb25zZV9kaWN0ID0gcGF5b3V0X2luc3RydWN0aW9uX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXlvdXRJbnN0cnVjdGlvblJlc3BvbnNlIGZyb20gYSBkaWN0CnBheW91dF9pbnN0cnVjdGlvbl9yZXNwb25zZV9mcm9tX2RpY3QgPSBQYXlvdXRJbnN0cnVjdGlvblJlc3BvbnNlLmZyb21fZGljdChwYXlvdXRfaW5zdHJ1Y3Rpb25fcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PayoutInstructionState.md b/docs/PayoutInstructionState.md index 3e7a5233..62e6be36 100644 --- a/docs/PayoutInstructionState.md +++ b/docs/PayoutInstructionState.md @@ -1,21 +1 @@ -# PayoutInstructionState - -- NOT_STARTED - waiting to start - TRANSACTION_SENT - an underlying transaction was sent - COMPLETED - completed successfully - FAILED - failed - TRANSLATION_ERROR -lookup of the destination failed (due to changes in the underlying whitelisted external wallet or similar) - SKIPPED- no transaction(s) created for this instruction - -## Enum - -* `NOT_STARTED` (value: `'NOT_STARTED'`) - -* `TRANSACTION_SENT` (value: `'TRANSACTION_SENT'`) - -* `COMPLETED` (value: `'COMPLETED'`) - -* `FAILED` (value: `'FAILED'`) - -* `TRANSLATION_ERROR` (value: `'TRANSLATION_ERROR'`) - -* `SKIPPED` (value: `'SKIPPED'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXlvdXRJbnN0cnVjdGlvblN0YXRlCgotIE5PVF9TVEFSVEVEIC0gd2FpdGluZyB0byBzdGFydCAtIFRSQU5TQUNUSU9OX1NFTlQgLSBhbiB1bmRlcmx5aW5nIHRyYW5zYWN0aW9uIHdhcyBzZW50IC0gQ09NUExFVEVEIC0gY29tcGxldGVkIHN1Y2Nlc3NmdWxseSAtIEZBSUxFRCAtIGZhaWxlZCAtIFRSQU5TTEFUSU9OX0VSUk9SIC1sb29rdXAgb2YgdGhlIGRlc3RpbmF0aW9uIGZhaWxlZCAoZHVlIHRvIGNoYW5nZXMgaW4gdGhlIHVuZGVybHlpbmcgd2hpdGVsaXN0ZWQgZXh0ZXJuYWwgd2FsbGV0IG9yIHNpbWlsYXIpIC0gU0tJUFBFRC0gbm8gdHJhbnNhY3Rpb24ocykgY3JlYXRlZCBmb3IgdGhpcyBpbnN0cnVjdGlvbiAKCiMjIEVudW0KCiogYE5PVF9TVEFSVEVEYCAodmFsdWU6IGAnTk9UX1NUQVJURUQnYCkKCiogYFRSQU5TQUNUSU9OX1NFTlRgICh2YWx1ZTogYCdUUkFOU0FDVElPTl9TRU5UJ2ApCgoqIGBDT01QTEVURURgICh2YWx1ZTogYCdDT01QTEVURUQnYCkKCiogYEZBSUxFRGAgKHZhbHVlOiBgJ0ZBSUxFRCdgKQoKKiBgVFJBTlNMQVRJT05fRVJST1JgICh2YWx1ZTogYCdUUkFOU0xBVElPTl9FUlJPUidgKQoKKiBgU0tJUFBFRGAgKHZhbHVlOiBgJ1NLSVBQRUQnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PayoutResponse.md b/docs/PayoutResponse.md index 6bf0bfe8..8c07ab53 100644 --- a/docs/PayoutResponse.md +++ b/docs/PayoutResponse.md @@ -1,37 +1 @@ -# PayoutResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**payout_id** | **str** | | -**payment_account** | [**PaymentAccountResponse**](PaymentAccountResponse.md) | | -**created_at** | **float** | | -**state** | [**PayoutState**](PayoutState.md) | | -**status** | [**PayoutStatus**](PayoutStatus.md) | | -**reason_of_failure** | **str** | <ul> <li> INSUFFICIENT_BALANCE</li> <li> SOURCE_TRANSLATION</li> <li> SOURCE_NOT_UNIQUE</li> <li> SOURCE_NOT_FOUND</li> <li> SOURCE_TYPE_NOT_SUPPORTED</li> <li> EMPTY_SOURCE</li> <li> DESTINATION_TRANSLATION</li> <li> DESTINATION_NOT_UNIQUE</li> <li> DESTINATION_NOT_FOUND</li> <li> EMPTY_DESTINATION</li> <li> PARSING </li> <li> UNKNOWN</li> <li> FIREBLOCKS_CLIENT</li> <li> TRANSACTION_SUBMISSION</li> </ul> | [optional] -**init_method** | [**PayoutInitMethod**](PayoutInitMethod.md) | | [optional] -**instruction_set** | [**List[PayoutInstructionResponse]**](PayoutInstructionResponse.md) | | -**report_url** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.payout_response import PayoutResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of PayoutResponse from a JSON string -payout_response_instance = PayoutResponse.from_json(json) -# print the JSON string representation of the object -print(PayoutResponse.to_json()) - -# convert the object into a dict -payout_response_dict = payout_response_instance.to_dict() -# create an instance of PayoutResponse from a dict -payout_response_from_dict = PayoutResponse.from_dict(payout_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXlvdXRSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipwYXlvdXRfaWQqKiB8ICoqc3RyKiogfCAgfCAKKipwYXltZW50X2FjY291bnQqKiB8IFsqKlBheW1lbnRBY2NvdW50UmVzcG9uc2UqKl0oUGF5bWVudEFjY291bnRSZXNwb25zZS5tZCkgfCAgfCAKKipjcmVhdGVkX2F0KiogfCAqKmZsb2F0KiogfCAgfCAKKipzdGF0ZSoqIHwgWyoqUGF5b3V0U3RhdGUqKl0oUGF5b3V0U3RhdGUubWQpIHwgIHwgCioqc3RhdHVzKiogfCBbKipQYXlvdXRTdGF0dXMqKl0oUGF5b3V0U3RhdHVzLm1kKSB8ICB8IAoqKnJlYXNvbl9vZl9mYWlsdXJlKiogfCAqKnN0cioqIHwgJmx0O3VsJmd0OyAgJmx0O2xpJmd0OyBJTlNVRkZJQ0lFTlRfQkFMQU5DRSZsdDsvbGkmZ3Q7ICZsdDtsaSZndDsgU09VUkNFX1RSQU5TTEFUSU9OJmx0Oy9saSZndDsgJmx0O2xpJmd0OyBTT1VSQ0VfTk9UX1VOSVFVRSZsdDsvbGkmZ3Q7ICZsdDtsaSZndDsgU09VUkNFX05PVF9GT1VORCZsdDsvbGkmZ3Q7ICZsdDtsaSZndDsgU09VUkNFX1RZUEVfTk9UX1NVUFBPUlRFRCZsdDsvbGkmZ3Q7ICZsdDtsaSZndDsgRU1QVFlfU09VUkNFJmx0Oy9saSZndDsgJmx0O2xpJmd0OyBERVNUSU5BVElPTl9UUkFOU0xBVElPTiZsdDsvbGkmZ3Q7ICZsdDtsaSZndDsgREVTVElOQVRJT05fTk9UX1VOSVFVRSZsdDsvbGkmZ3Q7ICZsdDtsaSZndDsgREVTVElOQVRJT05fTk9UX0ZPVU5EJmx0Oy9saSZndDsgJmx0O2xpJmd0OyBFTVBUWV9ERVNUSU5BVElPTiZsdDsvbGkmZ3Q7ICZsdDtsaSZndDsgUEFSU0lORyAmbHQ7L2xpJmd0OyAmbHQ7bGkmZ3Q7IFVOS05PV04mbHQ7L2xpJmd0OyAmbHQ7bGkmZ3Q7IEZJUkVCTE9DS1NfQ0xJRU5UJmx0Oy9saSZndDsgJmx0O2xpJmd0OyBUUkFOU0FDVElPTl9TVUJNSVNTSU9OJmx0Oy9saSZndDsgJmx0Oy91bCZndDsgIHwgW29wdGlvbmFsXSAKKippbml0X21ldGhvZCoqIHwgWyoqUGF5b3V0SW5pdE1ldGhvZCoqXShQYXlvdXRJbml0TWV0aG9kLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqaW5zdHJ1Y3Rpb25fc2V0KiogfCBbKipMaXN0W1BheW91dEluc3RydWN0aW9uUmVzcG9uc2VdKipdKFBheW91dEluc3RydWN0aW9uUmVzcG9uc2UubWQpIHwgIHwgCioqcmVwb3J0X3VybCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXlvdXRfcmVzcG9uc2UgaW1wb3J0IFBheW91dFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXlvdXRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKcGF5b3V0X3Jlc3BvbnNlX2luc3RhbmNlID0gUGF5b3V0UmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUGF5b3V0UmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcGF5b3V0X3Jlc3BvbnNlX2RpY3QgPSBwYXlvdXRfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBheW91dFJlc3BvbnNlIGZyb20gYSBkaWN0CnBheW91dF9yZXNwb25zZV9mcm9tX2RpY3QgPSBQYXlvdXRSZXNwb25zZS5mcm9tX2RpY3QocGF5b3V0X3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/PayoutState.md b/docs/PayoutState.md index f0f7309a..75d54b09 100644 --- a/docs/PayoutState.md +++ b/docs/PayoutState.md @@ -1,27 +1 @@ -# PayoutState - -- CREATED - payout instruction set created with all its details - FILE_FOUND - new file found in the FTP - REQUESTED - payout requested with all its details - TRANSLATED - payout instruction account IDs identified and translated - PROCESSING - payout instruction set executed and is processing - SUBMITTED - transactions submitted for payout instructions - FINALIZED - payout finished processing, all transactions processed successfully - INSUFFICIENT_BALANCE - insufficient balance in the payment account (can be a temporary state) - FAILED - one or more of the payout instructions failed - -## Enum - -* `CREATED` (value: `'CREATED'`) - -* `FILE_FOUND` (value: `'FILE_FOUND'`) - -* `REQUESTED` (value: `'REQUESTED'`) - -* `TRANSLATED` (value: `'TRANSLATED'`) - -* `PROCESSING` (value: `'PROCESSING'`) - -* `SUBMITTED` (value: `'SUBMITTED'`) - -* `FINALIZED` (value: `'FINALIZED'`) - -* `INSUFFICIENT_BALANCE` (value: `'INSUFFICIENT_BALANCE'`) - -* `FAILED` (value: `'FAILED'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXlvdXRTdGF0ZQoKLSBDUkVBVEVEIC0gcGF5b3V0IGluc3RydWN0aW9uIHNldCBjcmVhdGVkIHdpdGggYWxsIGl0cyBkZXRhaWxzIC0gRklMRV9GT1VORCAtIG5ldyBmaWxlIGZvdW5kIGluIHRoZSBGVFAgLSBSRVFVRVNURUQgLSBwYXlvdXQgcmVxdWVzdGVkIHdpdGggYWxsIGl0cyBkZXRhaWxzIC0gVFJBTlNMQVRFRCAtIHBheW91dCBpbnN0cnVjdGlvbiBhY2NvdW50IElEcyBpZGVudGlmaWVkIGFuZCB0cmFuc2xhdGVkIC0gUFJPQ0VTU0lORyAtIHBheW91dCBpbnN0cnVjdGlvbiBzZXQgZXhlY3V0ZWQgYW5kIGlzIHByb2Nlc3NpbmcgLSBTVUJNSVRURUQgLSB0cmFuc2FjdGlvbnMgc3VibWl0dGVkIGZvciBwYXlvdXQgaW5zdHJ1Y3Rpb25zIC0gRklOQUxJWkVEIC0gcGF5b3V0IGZpbmlzaGVkIHByb2Nlc3NpbmcsIGFsbCB0cmFuc2FjdGlvbnMgcHJvY2Vzc2VkIHN1Y2Nlc3NmdWxseSAtIElOU1VGRklDSUVOVF9CQUxBTkNFIC0gaW5zdWZmaWNpZW50IGJhbGFuY2UgaW4gdGhlIHBheW1lbnQgYWNjb3VudCAoY2FuIGJlIGEgdGVtcG9yYXJ5IHN0YXRlKSAtIEZBSUxFRCAtIG9uZSBvciBtb3JlIG9mIHRoZSBwYXlvdXQgaW5zdHJ1Y3Rpb25zIGZhaWxlZCAKCiMjIEVudW0KCiogYENSRUFURURgICh2YWx1ZTogYCdDUkVBVEVEJ2ApCgoqIGBGSUxFX0ZPVU5EYCAodmFsdWU6IGAnRklMRV9GT1VORCdgKQoKKiBgUkVRVUVTVEVEYCAodmFsdWU6IGAnUkVRVUVTVEVEJ2ApCgoqIGBUUkFOU0xBVEVEYCAodmFsdWU6IGAnVFJBTlNMQVRFRCdgKQoKKiBgUFJPQ0VTU0lOR2AgKHZhbHVlOiBgJ1BST0NFU1NJTkcnYCkKCiogYFNVQk1JVFRFRGAgKHZhbHVlOiBgJ1NVQk1JVFRFRCdgKQoKKiBgRklOQUxJWkVEYCAodmFsdWU6IGAnRklOQUxJWkVEJ2ApCgoqIGBJTlNVRkZJQ0lFTlRfQkFMQU5DRWAgKHZhbHVlOiBgJ0lOU1VGRklDSUVOVF9CQUxBTkNFJ2ApCgoqIGBGQUlMRURgICh2YWx1ZTogYCdGQUlMRUQnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PayoutStatus.md b/docs/PayoutStatus.md index 7e8eedda..fc9f5017 100644 --- a/docs/PayoutStatus.md +++ b/docs/PayoutStatus.md @@ -1,21 +1 @@ -# PayoutStatus - -- REQUESTED payout requested with all its details - VERIFIED payout instruction set details were verified - PROCESSING payout instruction set executed and is processing - FINALIZED payout done (all payout instructions completed successfully) - INSUFFICIENT_BALANCE insufficient balance in the payment account (can be a temporary state) - FAILED one or more of the payout instructions failed - -## Enum - -* `REGISTERED` (value: `'REGISTERED'`) - -* `VERIFYING` (value: `'VERIFYING'`) - -* `IN_PROGRESS` (value: `'IN_PROGRESS'`) - -* `DONE` (value: `'DONE'`) - -* `INSUFFICIENT_BALANCE` (value: `'INSUFFICIENT_BALANCE'`) - -* `FAILED` (value: `'FAILED'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQYXlvdXRTdGF0dXMKCi0gUkVRVUVTVEVEIHBheW91dCByZXF1ZXN0ZWQgd2l0aCBhbGwgaXRzIGRldGFpbHMgLSBWRVJJRklFRCBwYXlvdXQgaW5zdHJ1Y3Rpb24gc2V0IGRldGFpbHMgd2VyZSB2ZXJpZmllZCAtIFBST0NFU1NJTkcgcGF5b3V0IGluc3RydWN0aW9uIHNldCBleGVjdXRlZCBhbmQgaXMgcHJvY2Vzc2luZyAtIEZJTkFMSVpFRCBwYXlvdXQgZG9uZSAoYWxsIHBheW91dCBpbnN0cnVjdGlvbnMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSkgLSBJTlNVRkZJQ0lFTlRfQkFMQU5DRSBpbnN1ZmZpY2llbnQgYmFsYW5jZSBpbiB0aGUgcGF5bWVudCBhY2NvdW50IChjYW4gYmUgYSB0ZW1wb3Jhcnkgc3RhdGUpIC0gRkFJTEVEIG9uZSBvciBtb3JlIG9mIHRoZSBwYXlvdXQgaW5zdHJ1Y3Rpb25zIGZhaWxlZCAKCiMjIEVudW0KCiogYFJFR0lTVEVSRURgICh2YWx1ZTogYCdSRUdJU1RFUkVEJ2ApCgoqIGBWRVJJRllJTkdgICh2YWx1ZTogYCdWRVJJRllJTkcnYCkKCiogYElOX1BST0dSRVNTYCAodmFsdWU6IGAnSU5fUFJPR1JFU1MnYCkKCiogYERPTkVgICh2YWx1ZTogYCdET05FJ2ApCgoqIGBJTlNVRkZJQ0lFTlRfQkFMQU5DRWAgKHZhbHVlOiBgJ0lOU1VGRklDSUVOVF9CQUxBTkNFJ2ApCgoqIGBGQUlMRURgICh2YWx1ZTogYCdGQUlMRUQnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PeerAdapterInfo.md b/docs/PeerAdapterInfo.md index 485e4b8a..87bb2892 100644 --- a/docs/PeerAdapterInfo.md +++ b/docs/PeerAdapterInfo.md @@ -1,31 +1 @@ -# PeerAdapterInfo - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**adapter_token_link_id** | **str** | The token link id of the adapter | -**adapter_address** | **str** | The adapter address | -**base_asset_id** | **str** | The base asset id for the base asset that the adapter is deployed on | - -## Example - -```python -from fireblocks.models.peer_adapter_info import PeerAdapterInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of PeerAdapterInfo from a JSON string -peer_adapter_info_instance = PeerAdapterInfo.from_json(json) -# print the JSON string representation of the object -print(PeerAdapterInfo.to_json()) - -# convert the object into a dict -peer_adapter_info_dict = peer_adapter_info_instance.to_dict() -# create an instance of PeerAdapterInfo from a dict -peer_adapter_info_from_dict = PeerAdapterInfo.from_dict(peer_adapter_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQZWVyQWRhcHRlckluZm8KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYWRhcHRlcl90b2tlbl9saW5rX2lkKiogfCAqKnN0cioqIHwgVGhlIHRva2VuIGxpbmsgaWQgb2YgdGhlIGFkYXB0ZXIgfCAKKiphZGFwdGVyX2FkZHJlc3MqKiB8ICoqc3RyKiogfCBUaGUgYWRhcHRlciBhZGRyZXNzIHwgCioqYmFzZV9hc3NldF9pZCoqIHwgKipzdHIqKiB8IFRoZSBiYXNlIGFzc2V0IGlkIGZvciB0aGUgYmFzZSBhc3NldCB0aGF0IHRoZSBhZGFwdGVyIGlzIGRlcGxveWVkIG9uIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wZWVyX2FkYXB0ZXJfaW5mbyBpbXBvcnQgUGVlckFkYXB0ZXJJbmZvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQZWVyQWRhcHRlckluZm8gZnJvbSBhIEpTT04gc3RyaW5nCnBlZXJfYWRhcHRlcl9pbmZvX2luc3RhbmNlID0gUGVlckFkYXB0ZXJJbmZvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFBlZXJBZGFwdGVySW5mby50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApwZWVyX2FkYXB0ZXJfaW5mb19kaWN0ID0gcGVlcl9hZGFwdGVyX2luZm9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBlZXJBZGFwdGVySW5mbyBmcm9tIGEgZGljdApwZWVyX2FkYXB0ZXJfaW5mb19mcm9tX2RpY3QgPSBQZWVyQWRhcHRlckluZm8uZnJvbV9kaWN0KHBlZXJfYWRhcHRlcl9pbmZvX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/PeerType.md b/docs/PeerType.md index c6ec247b..bdc9d096 100644 --- a/docs/PeerType.md +++ b/docs/PeerType.md @@ -1,18 +1 @@ -# PeerType - - -## Enum - -* `VAULT_ACCOUNT` (value: `'VAULT_ACCOUNT'`) - -* `EXCHANGE_ACCOUNT` (value: `'EXCHANGE_ACCOUNT'`) - -* `UNMANAGED_WALLET` (value: `'UNMANAGED_WALLET'`) - -* `FIAT_ACCOUNT` (value: `'FIAT_ACCOUNT'`) - -* `CONNECTED_ACCOUNT` (value: `'CONNECTED_ACCOUNT'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQZWVyVHlwZQoKCiMjIEVudW0KCiogYFZBVUxUX0FDQ09VTlRgICh2YWx1ZTogYCdWQVVMVF9BQ0NPVU5UJ2ApCgoqIGBFWENIQU5HRV9BQ0NPVU5UYCAodmFsdWU6IGAnRVhDSEFOR0VfQUNDT1VOVCdgKQoKKiBgVU5NQU5BR0VEX1dBTExFVGAgKHZhbHVlOiBgJ1VOTUFOQUdFRF9XQUxMRVQnYCkKCiogYEZJQVRfQUNDT1VOVGAgKHZhbHVlOiBgJ0ZJQVRfQUNDT1VOVCdgKQoKKiBgQ09OTkVDVEVEX0FDQ09VTlRgICh2YWx1ZTogYCdDT05ORUNURURfQUNDT1VOVCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/PersonalEntityTypeEnum.md b/docs/PersonalEntityTypeEnum.md index 2b4b5a85..a99cfa83 100644 --- a/docs/PersonalEntityTypeEnum.md +++ b/docs/PersonalEntityTypeEnum.md @@ -1,10 +1 @@ -# PersonalEntityTypeEnum - - -## Enum - -* `INDIVIDUAL` (value: `'INDIVIDUAL'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQZXJzb25hbEVudGl0eVR5cGVFbnVtCgoKIyMgRW51bQoKKiBgSU5ESVZJRFVBTGAgKHZhbHVlOiBgJ0lORElWSURVQUwnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PersonalIdentification.md b/docs/PersonalIdentification.md index 75f84c88..e9ab7af8 100644 --- a/docs/PersonalIdentification.md +++ b/docs/PersonalIdentification.md @@ -1,40 +1 @@ -# PersonalIdentification - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**external_reference_id** | **str** | | -**entity_type** | [**PersonalEntityTypeEnum**](PersonalEntityTypeEnum.md) | | -**participant_relationship_type** | [**ParticipantRelationshipType**](ParticipantRelationshipType.md) | | -**full_name** | [**PersonalIdentificationFullName**](PersonalIdentificationFullName.md) | | -**date_of_birth** | **date** | | -**postal_address** | [**PostalAddress**](PostalAddress.md) | | -**email** | **str** | | [optional] -**phone** | **str** | Mobile phone number in E.164 format | [optional] -**id_number** | **str** | The identification number corresponding to the primary identification document type specified in idType | [optional] -**id_type** | [**PersonalIdentificationType**](PersonalIdentificationType.md) | | [optional] -**additional_id_number** | **str** | The identification number corresponding to the additional identification document type specified in additionalIdType | [optional] -**additional_id_type** | [**PersonalIdentificationType**](PersonalIdentificationType.md) | | [optional] - -## Example - -```python -from fireblocks.models.personal_identification import PersonalIdentification - -# TODO update the JSON string below -json = "{}" -# create an instance of PersonalIdentification from a JSON string -personal_identification_instance = PersonalIdentification.from_json(json) -# print the JSON string representation of the object -print(PersonalIdentification.to_json()) - -# convert the object into a dict -personal_identification_dict = personal_identification_instance.to_dict() -# create an instance of PersonalIdentification from a dict -personal_identification_from_dict = PersonalIdentification.from_dict(personal_identification_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQZXJzb25hbElkZW50aWZpY2F0aW9uCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmV4dGVybmFsX3JlZmVyZW5jZV9pZCoqIHwgKipzdHIqKiB8ICB8IAoqKmVudGl0eV90eXBlKiogfCBbKipQZXJzb25hbEVudGl0eVR5cGVFbnVtKipdKFBlcnNvbmFsRW50aXR5VHlwZUVudW0ubWQpIHwgIHwgCioqcGFydGljaXBhbnRfcmVsYXRpb25zaGlwX3R5cGUqKiB8IFsqKlBhcnRpY2lwYW50UmVsYXRpb25zaGlwVHlwZSoqXShQYXJ0aWNpcGFudFJlbGF0aW9uc2hpcFR5cGUubWQpIHwgIHwgCioqZnVsbF9uYW1lKiogfCBbKipQZXJzb25hbElkZW50aWZpY2F0aW9uRnVsbE5hbWUqKl0oUGVyc29uYWxJZGVudGlmaWNhdGlvbkZ1bGxOYW1lLm1kKSB8ICB8IAoqKmRhdGVfb2ZfYmlydGgqKiB8ICoqZGF0ZSoqIHwgIHwgCioqcG9zdGFsX2FkZHJlc3MqKiB8IFsqKlBvc3RhbEFkZHJlc3MqKl0oUG9zdGFsQWRkcmVzcy5tZCkgfCAgfCAKKiplbWFpbCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqcGhvbmUqKiB8ICoqc3RyKiogfCBNb2JpbGUgcGhvbmUgbnVtYmVyIGluIEUuMTY0IGZvcm1hdCB8IFtvcHRpb25hbF0gCioqaWRfbnVtYmVyKiogfCAqKnN0cioqIHwgVGhlIGlkZW50aWZpY2F0aW9uIG51bWJlciBjb3JyZXNwb25kaW5nIHRvIHRoZSBwcmltYXJ5IGlkZW50aWZpY2F0aW9uIGRvY3VtZW50IHR5cGUgc3BlY2lmaWVkIGluIGlkVHlwZSB8IFtvcHRpb25hbF0gCioqaWRfdHlwZSoqIHwgWyoqUGVyc29uYWxJZGVudGlmaWNhdGlvblR5cGUqKl0oUGVyc29uYWxJZGVudGlmaWNhdGlvblR5cGUubWQpIHwgIHwgW29wdGlvbmFsXSAKKiphZGRpdGlvbmFsX2lkX251bWJlcioqIHwgKipzdHIqKiB8IFRoZSBpZGVudGlmaWNhdGlvbiBudW1iZXIgY29ycmVzcG9uZGluZyB0byB0aGUgYWRkaXRpb25hbCBpZGVudGlmaWNhdGlvbiBkb2N1bWVudCB0eXBlIHNwZWNpZmllZCBpbiBhZGRpdGlvbmFsSWRUeXBlIHwgW29wdGlvbmFsXSAKKiphZGRpdGlvbmFsX2lkX3R5cGUqKiB8IFsqKlBlcnNvbmFsSWRlbnRpZmljYXRpb25UeXBlKipdKFBlcnNvbmFsSWRlbnRpZmljYXRpb25UeXBlLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wZXJzb25hbF9pZGVudGlmaWNhdGlvbiBpbXBvcnQgUGVyc29uYWxJZGVudGlmaWNhdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGVyc29uYWxJZGVudGlmaWNhdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmcKcGVyc29uYWxfaWRlbnRpZmljYXRpb25faW5zdGFuY2UgPSBQZXJzb25hbElkZW50aWZpY2F0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFBlcnNvbmFsSWRlbnRpZmljYXRpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcGVyc29uYWxfaWRlbnRpZmljYXRpb25fZGljdCA9IHBlcnNvbmFsX2lkZW50aWZpY2F0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQZXJzb25hbElkZW50aWZpY2F0aW9uIGZyb20gYSBkaWN0CnBlcnNvbmFsX2lkZW50aWZpY2F0aW9uX2Zyb21fZGljdCA9IFBlcnNvbmFsSWRlbnRpZmljYXRpb24uZnJvbV9kaWN0KHBlcnNvbmFsX2lkZW50aWZpY2F0aW9uX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/PersonalIdentificationFullName.md b/docs/PersonalIdentificationFullName.md index 0ebcfa44..8ccc2d18 100644 --- a/docs/PersonalIdentificationFullName.md +++ b/docs/PersonalIdentificationFullName.md @@ -1,30 +1 @@ -# PersonalIdentificationFullName - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**first_name** | **str** | | -**last_name** | **str** | | - -## Example - -```python -from fireblocks.models.personal_identification_full_name import PersonalIdentificationFullName - -# TODO update the JSON string below -json = "{}" -# create an instance of PersonalIdentificationFullName from a JSON string -personal_identification_full_name_instance = PersonalIdentificationFullName.from_json(json) -# print the JSON string representation of the object -print(PersonalIdentificationFullName.to_json()) - -# convert the object into a dict -personal_identification_full_name_dict = personal_identification_full_name_instance.to_dict() -# create an instance of PersonalIdentificationFullName from a dict -personal_identification_full_name_from_dict = PersonalIdentificationFullName.from_dict(personal_identification_full_name_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQZXJzb25hbElkZW50aWZpY2F0aW9uRnVsbE5hbWUKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZmlyc3RfbmFtZSoqIHwgKipzdHIqKiB8ICB8IAoqKmxhc3RfbmFtZSoqIHwgKipzdHIqKiB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGVyc29uYWxfaWRlbnRpZmljYXRpb25fZnVsbF9uYW1lIGltcG9ydCBQZXJzb25hbElkZW50aWZpY2F0aW9uRnVsbE5hbWUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBlcnNvbmFsSWRlbnRpZmljYXRpb25GdWxsTmFtZSBmcm9tIGEgSlNPTiBzdHJpbmcKcGVyc29uYWxfaWRlbnRpZmljYXRpb25fZnVsbF9uYW1lX2luc3RhbmNlID0gUGVyc29uYWxJZGVudGlmaWNhdGlvbkZ1bGxOYW1lLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFBlcnNvbmFsSWRlbnRpZmljYXRpb25GdWxsTmFtZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApwZXJzb25hbF9pZGVudGlmaWNhdGlvbl9mdWxsX25hbWVfZGljdCA9IHBlcnNvbmFsX2lkZW50aWZpY2F0aW9uX2Z1bGxfbmFtZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGVyc29uYWxJZGVudGlmaWNhdGlvbkZ1bGxOYW1lIGZyb20gYSBkaWN0CnBlcnNvbmFsX2lkZW50aWZpY2F0aW9uX2Z1bGxfbmFtZV9mcm9tX2RpY3QgPSBQZXJzb25hbElkZW50aWZpY2F0aW9uRnVsbE5hbWUuZnJvbV9kaWN0KHBlcnNvbmFsX2lkZW50aWZpY2F0aW9uX2Z1bGxfbmFtZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/PersonalIdentificationType.md b/docs/PersonalIdentificationType.md index d84edca7..145ba86f 100644 --- a/docs/PersonalIdentificationType.md +++ b/docs/PersonalIdentificationType.md @@ -1,45 +1 @@ -# PersonalIdentificationType - -Type of identification document. Acceptable values are: - 'NIN_SLIP_CARD': National Identification Number (NIN) Slip Card - temporary identification card issued in Nigeria - 'BVN': Bank Verification Number - unique identity number for bank account holders in Nigeria - 'ID_CARD': General national identity card - 'ID_BOOK': Identity book or booklet format identification document - 'NATIONAL_ID': National identity document issued by government authorities - 'ALIEN_CARD': Alien registration card for foreign nationals - 'PASSPORT': International travel document and proof of identity - 'ECOWAS_CARD': Economic Community of West African States identification card - 'RWANDA_CARD': Rwandan national identification card - 'DRIVERS_LICENSE': Driver's license or driving permit - 'RESIDENT_CARD': Resident permit or permanent resident card - 'VOTER_ID': Voter identification card used for electoral registration - 'HEALTH_INSURANCE_ID': Health insurance identification card - 'GHANA_CARD': Ghana Card - national identification card issued in Ghana - 'REFUGEE_ID': Refugee identification document - 'SSNIT': Social Security and National Insurance Trust ID - social security number in Ghana - 'NON_CITIZEN_ID': Identification document for non-citizens or foreign residents - 'NATIONAL_REGISTRATION_CARD': National registration card issued by national registration authority - -## Enum - -* `NIN_SLIP_CARD` (value: `'NIN_SLIP_CARD'`) - -* `BVN` (value: `'BVN'`) - -* `ID_CARD` (value: `'ID_CARD'`) - -* `ID_BOOK` (value: `'ID_BOOK'`) - -* `NATIONAL_ID` (value: `'NATIONAL_ID'`) - -* `ALIEN_CARD` (value: `'ALIEN_CARD'`) - -* `PASSPORT` (value: `'PASSPORT'`) - -* `ECOWAS_CARD` (value: `'ECOWAS_CARD'`) - -* `RWANDA_CARD` (value: `'RWANDA_CARD'`) - -* `DRIVERS_LICENSE` (value: `'DRIVERS_LICENSE'`) - -* `RESIDENT_CARD` (value: `'RESIDENT_CARD'`) - -* `VOTER_ID` (value: `'VOTER_ID'`) - -* `HEALTH_INSURANCE_ID` (value: `'HEALTH_INSURANCE_ID'`) - -* `GHANA_CARD` (value: `'GHANA_CARD'`) - -* `REFUGEE_ID` (value: `'REFUGEE_ID'`) - -* `SSNIT` (value: `'SSNIT'`) - -* `NON_CITIZEN_ID` (value: `'NON_CITIZEN_ID'`) - -* `NATIONAL_REGISTRATION_CARD` (value: `'NATIONAL_REGISTRATION_CARD'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQZXJzb25hbElkZW50aWZpY2F0aW9uVHlwZQoKVHlwZSBvZiBpZGVudGlmaWNhdGlvbiBkb2N1bWVudC4gQWNjZXB0YWJsZSB2YWx1ZXMgYXJlOiAtICdOSU5fU0xJUF9DQVJEJzogTmF0aW9uYWwgSWRlbnRpZmljYXRpb24gTnVtYmVyIChOSU4pIFNsaXAgQ2FyZCAtIHRlbXBvcmFyeSBpZGVudGlmaWNhdGlvbiBjYXJkIGlzc3VlZCBpbiBOaWdlcmlhIC0gJ0JWTic6IEJhbmsgVmVyaWZpY2F0aW9uIE51bWJlciAtIHVuaXF1ZSBpZGVudGl0eSBudW1iZXIgZm9yIGJhbmsgYWNjb3VudCBob2xkZXJzIGluIE5pZ2VyaWEgLSAnSURfQ0FSRCc6IEdlbmVyYWwgbmF0aW9uYWwgaWRlbnRpdHkgY2FyZCAtICdJRF9CT09LJzogSWRlbnRpdHkgYm9vayBvciBib29rbGV0IGZvcm1hdCBpZGVudGlmaWNhdGlvbiBkb2N1bWVudCAtICdOQVRJT05BTF9JRCc6IE5hdGlvbmFsIGlkZW50aXR5IGRvY3VtZW50IGlzc3VlZCBieSBnb3Zlcm5tZW50IGF1dGhvcml0aWVzIC0gJ0FMSUVOX0NBUkQnOiBBbGllbiByZWdpc3RyYXRpb24gY2FyZCBmb3IgZm9yZWlnbiBuYXRpb25hbHMgLSAnUEFTU1BPUlQnOiBJbnRlcm5hdGlvbmFsIHRyYXZlbCBkb2N1bWVudCBhbmQgcHJvb2Ygb2YgaWRlbnRpdHkgLSAnRUNPV0FTX0NBUkQnOiBFY29ub21pYyBDb21tdW5pdHkgb2YgV2VzdCBBZnJpY2FuIFN0YXRlcyBpZGVudGlmaWNhdGlvbiBjYXJkIC0gJ1JXQU5EQV9DQVJEJzogUndhbmRhbiBuYXRpb25hbCBpZGVudGlmaWNhdGlvbiBjYXJkIC0gJ0RSSVZFUlNfTElDRU5TRSc6IERyaXZlcidzIGxpY2Vuc2Ugb3IgZHJpdmluZyBwZXJtaXQgLSAnUkVTSURFTlRfQ0FSRCc6IFJlc2lkZW50IHBlcm1pdCBvciBwZXJtYW5lbnQgcmVzaWRlbnQgY2FyZCAtICdWT1RFUl9JRCc6IFZvdGVyIGlkZW50aWZpY2F0aW9uIGNhcmQgdXNlZCBmb3IgZWxlY3RvcmFsIHJlZ2lzdHJhdGlvbiAtICdIRUFMVEhfSU5TVVJBTkNFX0lEJzogSGVhbHRoIGluc3VyYW5jZSBpZGVudGlmaWNhdGlvbiBjYXJkIC0gJ0dIQU5BX0NBUkQnOiBHaGFuYSBDYXJkIC0gbmF0aW9uYWwgaWRlbnRpZmljYXRpb24gY2FyZCBpc3N1ZWQgaW4gR2hhbmEgLSAnUkVGVUdFRV9JRCc6IFJlZnVnZWUgaWRlbnRpZmljYXRpb24gZG9jdW1lbnQgLSAnU1NOSVQnOiBTb2NpYWwgU2VjdXJpdHkgYW5kIE5hdGlvbmFsIEluc3VyYW5jZSBUcnVzdCBJRCAtIHNvY2lhbCBzZWN1cml0eSBudW1iZXIgaW4gR2hhbmEgLSAnTk9OX0NJVElaRU5fSUQnOiBJZGVudGlmaWNhdGlvbiBkb2N1bWVudCBmb3Igbm9uLWNpdGl6ZW5zIG9yIGZvcmVpZ24gcmVzaWRlbnRzIC0gJ05BVElPTkFMX1JFR0lTVFJBVElPTl9DQVJEJzogTmF0aW9uYWwgcmVnaXN0cmF0aW9uIGNhcmQgaXNzdWVkIGJ5IG5hdGlvbmFsIHJlZ2lzdHJhdGlvbiBhdXRob3JpdHkKCiMjIEVudW0KCiogYE5JTl9TTElQX0NBUkRgICh2YWx1ZTogYCdOSU5fU0xJUF9DQVJEJ2ApCgoqIGBCVk5gICh2YWx1ZTogYCdCVk4nYCkKCiogYElEX0NBUkRgICh2YWx1ZTogYCdJRF9DQVJEJ2ApCgoqIGBJRF9CT09LYCAodmFsdWU6IGAnSURfQk9PSydgKQoKKiBgTkFUSU9OQUxfSURgICh2YWx1ZTogYCdOQVRJT05BTF9JRCdgKQoKKiBgQUxJRU5fQ0FSRGAgKHZhbHVlOiBgJ0FMSUVOX0NBUkQnYCkKCiogYFBBU1NQT1JUYCAodmFsdWU6IGAnUEFTU1BPUlQnYCkKCiogYEVDT1dBU19DQVJEYCAodmFsdWU6IGAnRUNPV0FTX0NBUkQnYCkKCiogYFJXQU5EQV9DQVJEYCAodmFsdWU6IGAnUldBTkRBX0NBUkQnYCkKCiogYERSSVZFUlNfTElDRU5TRWAgKHZhbHVlOiBgJ0RSSVZFUlNfTElDRU5TRSdgKQoKKiBgUkVTSURFTlRfQ0FSRGAgKHZhbHVlOiBgJ1JFU0lERU5UX0NBUkQnYCkKCiogYFZPVEVSX0lEYCAodmFsdWU6IGAnVk9URVJfSUQnYCkKCiogYEhFQUxUSF9JTlNVUkFOQ0VfSURgICh2YWx1ZTogYCdIRUFMVEhfSU5TVVJBTkNFX0lEJ2ApCgoqIGBHSEFOQV9DQVJEYCAodmFsdWU6IGAnR0hBTkFfQ0FSRCdgKQoKKiBgUkVGVUdFRV9JRGAgKHZhbHVlOiBgJ1JFRlVHRUVfSUQnYCkKCiogYFNTTklUYCAodmFsdWU6IGAnU1NOSVQnYCkKCiogYE5PTl9DSVRJWkVOX0lEYCAodmFsdWU6IGAnTk9OX0NJVElaRU5fSUQnYCkKCiogYE5BVElPTkFMX1JFR0lTVFJBVElPTl9DQVJEYCAodmFsdWU6IGAnTkFUSU9OQUxfUkVHSVNUUkFUSU9OX0NBUkQnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PixAddress.md b/docs/PixAddress.md index a847ed2c..90a38730 100644 --- a/docs/PixAddress.md +++ b/docs/PixAddress.md @@ -1,35 +1 @@ -# PixAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | | -**pix_key** | **str** | | -**key_type** | **str** | | -**bank_name** | **str** | | [optional] -**bank_code** | **str** | | [optional] -**qr_code** | **str** | The QR code to be used for the transfer | [optional] -**expiration_date** | **str** | The expiration date of the QR code | [optional] - -## Example - -```python -from fireblocks.models.pix_address import PixAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of PixAddress from a JSON string -pix_address_instance = PixAddress.from_json(json) -# print the JSON string representation of the object -print(PixAddress.to_json()) - -# convert the object into a dict -pix_address_dict = pix_address_instance.to_dict() -# create an instance of PixAddress from a dict -pix_address_from_dict = PixAddress.from_dict(pix_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQaXhBZGRyZXNzCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFjY291bnRfaG9sZGVyKiogfCBbKipBY2NvdW50SG9sZGVyRGV0YWlscyoqXShBY2NvdW50SG9sZGVyRGV0YWlscy5tZCkgfCAgfCAKKipwaXhfa2V5KiogfCAqKnN0cioqIHwgIHwgCioqa2V5X3R5cGUqKiB8ICoqc3RyKiogfCAgfCAKKipiYW5rX25hbWUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmJhbmtfY29kZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqcXJfY29kZSoqIHwgKipzdHIqKiB8IFRoZSBRUiBjb2RlIHRvIGJlIHVzZWQgZm9yIHRoZSB0cmFuc2ZlciB8IFtvcHRpb25hbF0gCioqZXhwaXJhdGlvbl9kYXRlKiogfCAqKnN0cioqIHwgVGhlIGV4cGlyYXRpb24gZGF0ZSBvZiB0aGUgUVIgY29kZSB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5waXhfYWRkcmVzcyBpbXBvcnQgUGl4QWRkcmVzcwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGl4QWRkcmVzcyBmcm9tIGEgSlNPTiBzdHJpbmcKcGl4X2FkZHJlc3NfaW5zdGFuY2UgPSBQaXhBZGRyZXNzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFBpeEFkZHJlc3MudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcGl4X2FkZHJlc3NfZGljdCA9IHBpeF9hZGRyZXNzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQaXhBZGRyZXNzIGZyb20gYSBkaWN0CnBpeF9hZGRyZXNzX2Zyb21fZGljdCA9IFBpeEFkZHJlc3MuZnJvbV9kaWN0KHBpeF9hZGRyZXNzX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/PixDestination.md b/docs/PixDestination.md index c2df7d9b..71f02654 100644 --- a/docs/PixDestination.md +++ b/docs/PixDestination.md @@ -1,30 +1 @@ -# PixDestination - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | -**address** | [**PixAddress**](PixAddress.md) | | - -## Example - -```python -from fireblocks.models.pix_destination import PixDestination - -# TODO update the JSON string below -json = "{}" -# create an instance of PixDestination from a JSON string -pix_destination_instance = PixDestination.from_json(json) -# print the JSON string representation of the object -print(PixDestination.to_json()) - -# convert the object into a dict -pix_destination_dict = pix_destination_instance.to_dict() -# create an instance of PixDestination from a dict -pix_destination_from_dict = PixDestination.from_dict(pix_destination_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQaXhEZXN0aW5hdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eXBlKiogfCAqKnN0cioqIHwgIHwgCioqYWRkcmVzcyoqIHwgWyoqUGl4QWRkcmVzcyoqXShQaXhBZGRyZXNzLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGl4X2Rlc3RpbmF0aW9uIGltcG9ydCBQaXhEZXN0aW5hdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGl4RGVzdGluYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCnBpeF9kZXN0aW5hdGlvbl9pbnN0YW5jZSA9IFBpeERlc3RpbmF0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFBpeERlc3RpbmF0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnBpeF9kZXN0aW5hdGlvbl9kaWN0ID0gcGl4X2Rlc3RpbmF0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQaXhEZXN0aW5hdGlvbiBmcm9tIGEgZGljdApwaXhfZGVzdGluYXRpb25fZnJvbV9kaWN0ID0gUGl4RGVzdGluYXRpb24uZnJvbV9kaWN0KHBpeF9kZXN0aW5hdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/PixPaymentInfo.md b/docs/PixPaymentInfo.md index a97aa12c..94502f2a 100644 --- a/docs/PixPaymentInfo.md +++ b/docs/PixPaymentInfo.md @@ -1,38 +1 @@ -# PixPaymentInfo - -PIX payment information for Brazilian instant payments - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**rail** | **str** | The payment rail type for PIX transfers | -**addressing_system** | **str** | The addressing system used for PIX transfers | -**account_holder_given_name** | **str** | The given name (first name) of the account holder | -**account_holder_surname** | **str** | The surname (last name) of the account holder | -**country** | **str** | The country for the transfer (ISO 3166-1 alpha-2 code) | -**pix_key** | **str** | The PIX key used for the transfer | -**bank_name** | **str** | The name of the bank | [optional] -**bank_code** | **str** | The bank code (ISPB - Identificador do Sistema de Pagamentos Brasileiros) | [optional] -**key_type** | **str** | The type of PIX key being used | - -## Example - -```python -from fireblocks.models.pix_payment_info import PixPaymentInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of PixPaymentInfo from a JSON string -pix_payment_info_instance = PixPaymentInfo.from_json(json) -# print the JSON string representation of the object -print(PixPaymentInfo.to_json()) - -# convert the object into a dict -pix_payment_info_dict = pix_payment_info_instance.to_dict() -# create an instance of PixPaymentInfo from a dict -pix_payment_info_from_dict = PixPaymentInfo.from_dict(pix_payment_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQaXhQYXltZW50SW5mbwoKUElYIHBheW1lbnQgaW5mb3JtYXRpb24gZm9yIEJyYXppbGlhbiBpbnN0YW50IHBheW1lbnRzCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcmFpbCoqIHwgKipzdHIqKiB8IFRoZSBwYXltZW50IHJhaWwgdHlwZSBmb3IgUElYIHRyYW5zZmVycyB8IAoqKmFkZHJlc3Npbmdfc3lzdGVtKiogfCAqKnN0cioqIHwgVGhlIGFkZHJlc3Npbmcgc3lzdGVtIHVzZWQgZm9yIFBJWCB0cmFuc2ZlcnMgfCAKKiphY2NvdW50X2hvbGRlcl9naXZlbl9uYW1lKiogfCAqKnN0cioqIHwgVGhlIGdpdmVuIG5hbWUgKGZpcnN0IG5hbWUpIG9mIHRoZSBhY2NvdW50IGhvbGRlciB8IAoqKmFjY291bnRfaG9sZGVyX3N1cm5hbWUqKiB8ICoqc3RyKiogfCBUaGUgc3VybmFtZSAobGFzdCBuYW1lKSBvZiB0aGUgYWNjb3VudCBob2xkZXIgfCAKKipjb3VudHJ5KiogfCAqKnN0cioqIHwgVGhlIGNvdW50cnkgZm9yIHRoZSB0cmFuc2ZlciAoSVNPIDMxNjYtMSBhbHBoYS0yIGNvZGUpIHwgCioqcGl4X2tleSoqIHwgKipzdHIqKiB8IFRoZSBQSVgga2V5IHVzZWQgZm9yIHRoZSB0cmFuc2ZlciB8IAoqKmJhbmtfbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBuYW1lIG9mIHRoZSBiYW5rIHwgW29wdGlvbmFsXSAKKipiYW5rX2NvZGUqKiB8ICoqc3RyKiogfCBUaGUgYmFuayBjb2RlIChJU1BCIC0gSWRlbnRpZmljYWRvciBkbyBTaXN0ZW1hIGRlIFBhZ2FtZW50b3MgQnJhc2lsZWlyb3MpIHwgW29wdGlvbmFsXSAKKiprZXlfdHlwZSoqIHwgKipzdHIqKiB8IFRoZSB0eXBlIG9mIFBJWCBrZXkgYmVpbmcgdXNlZCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGl4X3BheW1lbnRfaW5mbyBpbXBvcnQgUGl4UGF5bWVudEluZm8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBpeFBheW1lbnRJbmZvIGZyb20gYSBKU09OIHN0cmluZwpwaXhfcGF5bWVudF9pbmZvX2luc3RhbmNlID0gUGl4UGF5bWVudEluZm8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUGl4UGF5bWVudEluZm8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcGl4X3BheW1lbnRfaW5mb19kaWN0ID0gcGl4X3BheW1lbnRfaW5mb19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGl4UGF5bWVudEluZm8gZnJvbSBhIGRpY3QKcGl4X3BheW1lbnRfaW5mb19mcm9tX2RpY3QgPSBQaXhQYXltZW50SW5mby5mcm9tX2RpY3QocGl4X3BheW1lbnRfaW5mb19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/PlatformAccount.md b/docs/PlatformAccount.md index f60934d8..30cfcb18 100644 --- a/docs/PlatformAccount.md +++ b/docs/PlatformAccount.md @@ -1,30 +1 @@ -# PlatformAccount - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**PlatformPeerType**](PlatformPeerType.md) | | -**account_id** | **str** | | - -## Example - -```python -from fireblocks.models.platform_account import PlatformAccount - -# TODO update the JSON string below -json = "{}" -# create an instance of PlatformAccount from a JSON string -platform_account_instance = PlatformAccount.from_json(json) -# print the JSON string representation of the object -print(PlatformAccount.to_json()) - -# convert the object into a dict -platform_account_dict = platform_account_instance.to_dict() -# create an instance of PlatformAccount from a dict -platform_account_from_dict = PlatformAccount.from_dict(platform_account_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQbGF0Zm9ybUFjY291bnQKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgWyoqUGxhdGZvcm1QZWVyVHlwZSoqXShQbGF0Zm9ybVBlZXJUeXBlLm1kKSB8ICB8IAoqKmFjY291bnRfaWQqKiB8ICoqc3RyKiogfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBsYXRmb3JtX2FjY291bnQgaW1wb3J0IFBsYXRmb3JtQWNjb3VudAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGxhdGZvcm1BY2NvdW50IGZyb20gYSBKU09OIHN0cmluZwpwbGF0Zm9ybV9hY2NvdW50X2luc3RhbmNlID0gUGxhdGZvcm1BY2NvdW50LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFBsYXRmb3JtQWNjb3VudC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApwbGF0Zm9ybV9hY2NvdW50X2RpY3QgPSBwbGF0Zm9ybV9hY2NvdW50X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQbGF0Zm9ybUFjY291bnQgZnJvbSBhIGRpY3QKcGxhdGZvcm1fYWNjb3VudF9mcm9tX2RpY3QgPSBQbGF0Zm9ybUFjY291bnQuZnJvbV9kaWN0KHBsYXRmb3JtX2FjY291bnRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PlatformPeerType.md b/docs/PlatformPeerType.md index a54a1a0d..48df25dc 100644 --- a/docs/PlatformPeerType.md +++ b/docs/PlatformPeerType.md @@ -1,14 +1 @@ -# PlatformPeerType - - -## Enum - -* `VAULT_ACCOUNT` (value: `'VAULT_ACCOUNT'`) - -* `CONNECTED_ACCOUNT` (value: `'CONNECTED_ACCOUNT'`) - -* `FIAT_ACCOUNT` (value: `'FIAT_ACCOUNT'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQbGF0Zm9ybVBlZXJUeXBlCgoKIyMgRW51bQoKKiBgVkFVTFRfQUNDT1VOVGAgKHZhbHVlOiBgJ1ZBVUxUX0FDQ09VTlQnYCkKCiogYENPTk5FQ1RFRF9BQ0NPVU5UYCAodmFsdWU6IGAnQ09OTkVDVEVEX0FDQ09VTlQnYCkKCiogYEZJQVRfQUNDT1VOVGAgKHZhbHVlOiBgJ0ZJQVRfQUNDT1VOVCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/Players.md b/docs/Players.md index 13bf0f05..7bb72712 100644 --- a/docs/Players.md +++ b/docs/Players.md @@ -1,30 +1 @@ -# Players - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | id of the player | -**type** | **str** | Type of the player | - -## Example - -```python -from fireblocks.models.players import Players - -# TODO update the JSON string below -json = "{}" -# create an instance of Players from a JSON string -players_instance = Players.from_json(json) -# print the JSON string representation of the object -print(Players.to_json()) - -# convert the object into a dict -players_dict = players_instance.to_dict() -# create an instance of Players from a dict -players_from_dict = Players.from_dict(players_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQbGF5ZXJzCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgaWQgb2YgdGhlIHBsYXllciB8IAoqKnR5cGUqKiB8ICoqc3RyKiogfCBUeXBlIG9mIHRoZSBwbGF5ZXIgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBsYXllcnMgaW1wb3J0IFBsYXllcnMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBsYXllcnMgZnJvbSBhIEpTT04gc3RyaW5nCnBsYXllcnNfaW5zdGFuY2UgPSBQbGF5ZXJzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFBsYXllcnMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcGxheWVyc19kaWN0ID0gcGxheWVyc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGxheWVycyBmcm9tIGEgZGljdApwbGF5ZXJzX2Zyb21fZGljdCA9IFBsYXllcnMuZnJvbV9kaWN0KHBsYXllcnNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PolicyAndValidationResponse.md b/docs/PolicyAndValidationResponse.md index e397c26b..e93740bb 100644 --- a/docs/PolicyAndValidationResponse.md +++ b/docs/PolicyAndValidationResponse.md @@ -1,31 +1 @@ -# PolicyAndValidationResponse - -Policy validation - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**policy** | [**PolicyResponse**](PolicyResponse.md) | | -**validation** | [**PolicyValidation**](PolicyValidation.md) | | - -## Example - -```python -from fireblocks.models.policy_and_validation_response import PolicyAndValidationResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of PolicyAndValidationResponse from a JSON string -policy_and_validation_response_instance = PolicyAndValidationResponse.from_json(json) -# print the JSON string representation of the object -print(PolicyAndValidationResponse.to_json()) - -# convert the object into a dict -policy_and_validation_response_dict = policy_and_validation_response_instance.to_dict() -# create an instance of PolicyAndValidationResponse from a dict -policy_and_validation_response_from_dict = PolicyAndValidationResponse.from_dict(policy_and_validation_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2UKClBvbGljeSB2YWxpZGF0aW9uCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcG9saWN5KiogfCBbKipQb2xpY3lSZXNwb25zZSoqXShQb2xpY3lSZXNwb25zZS5tZCkgfCAgfCAKKip2YWxpZGF0aW9uKiogfCBbKipQb2xpY3lWYWxpZGF0aW9uKipdKFBvbGljeVZhbGlkYXRpb24ubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfYW5kX3ZhbGlkYXRpb25fcmVzcG9uc2UgaW1wb3J0IFBvbGljeUFuZFZhbGlkYXRpb25SZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpwb2xpY3lfYW5kX3ZhbGlkYXRpb25fcmVzcG9uc2VfaW5zdGFuY2UgPSBQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnBvbGljeV9hbmRfdmFsaWRhdGlvbl9yZXNwb25zZV9kaWN0ID0gcG9saWN5X2FuZF92YWxpZGF0aW9uX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2UgZnJvbSBhIGRpY3QKcG9saWN5X2FuZF92YWxpZGF0aW9uX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFBvbGljeUFuZFZhbGlkYXRpb25SZXNwb25zZS5mcm9tX2RpY3QocG9saWN5X2FuZF92YWxpZGF0aW9uX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/PolicyCheckResult.md b/docs/PolicyCheckResult.md index 9b90cae0..17bfdc42 100644 --- a/docs/PolicyCheckResult.md +++ b/docs/PolicyCheckResult.md @@ -1,31 +1 @@ -# PolicyCheckResult - -Policy rules validation result - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**errors** | **float** | Number of errors | -**results** | [**List[PolicyRuleCheckResult]**](PolicyRuleCheckResult.md) | A set of validation results | - -## Example - -```python -from fireblocks.models.policy_check_result import PolicyCheckResult - -# TODO update the JSON string below -json = "{}" -# create an instance of PolicyCheckResult from a JSON string -policy_check_result_instance = PolicyCheckResult.from_json(json) -# print the JSON string representation of the object -print(PolicyCheckResult.to_json()) - -# convert the object into a dict -policy_check_result_dict = policy_check_result_instance.to_dict() -# create an instance of PolicyCheckResult from a dict -policy_check_result_from_dict = PolicyCheckResult.from_dict(policy_check_result_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQb2xpY3lDaGVja1Jlc3VsdAoKUG9saWN5IHJ1bGVzIHZhbGlkYXRpb24gcmVzdWx0CgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZXJyb3JzKiogfCAqKmZsb2F0KiogfCBOdW1iZXIgb2YgZXJyb3JzIHwgCioqcmVzdWx0cyoqIHwgWyoqTGlzdFtQb2xpY3lSdWxlQ2hlY2tSZXN1bHRdKipdKFBvbGljeVJ1bGVDaGVja1Jlc3VsdC5tZCkgfCBBIHNldCBvZiB2YWxpZGF0aW9uIHJlc3VsdHMgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9jaGVja19yZXN1bHQgaW1wb3J0IFBvbGljeUNoZWNrUmVzdWx0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQb2xpY3lDaGVja1Jlc3VsdCBmcm9tIGEgSlNPTiBzdHJpbmcKcG9saWN5X2NoZWNrX3Jlc3VsdF9pbnN0YW5jZSA9IFBvbGljeUNoZWNrUmVzdWx0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFBvbGljeUNoZWNrUmVzdWx0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnBvbGljeV9jaGVja19yZXN1bHRfZGljdCA9IHBvbGljeV9jaGVja19yZXN1bHRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBvbGljeUNoZWNrUmVzdWx0IGZyb20gYSBkaWN0CnBvbGljeV9jaGVja19yZXN1bHRfZnJvbV9kaWN0ID0gUG9saWN5Q2hlY2tSZXN1bHQuZnJvbV9kaWN0KHBvbGljeV9jaGVja19yZXN1bHRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PolicyCurrency.md b/docs/PolicyCurrency.md index 8df99662..ad73ab78 100644 --- a/docs/PolicyCurrency.md +++ b/docs/PolicyCurrency.md @@ -1,15 +1 @@ -# PolicyCurrency - -Currency for the amount - -## Enum - -* `NATIVE` (value: `'NATIVE'`) - -* `USD` (value: `'USD'`) - -* `EUR` (value: `'EUR'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQb2xpY3lDdXJyZW5jeQoKQ3VycmVuY3kgZm9yIHRoZSBhbW91bnQKCiMjIEVudW0KCiogYE5BVElWRWAgKHZhbHVlOiBgJ05BVElWRSdgKQoKKiBgVVNEYCAodmFsdWU6IGAnVVNEJ2ApCgoqIGBFVVJgICh2YWx1ZTogYCdFVVInYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PolicyEditorBetaApi.md b/docs/PolicyEditorBetaApi.md index 90b181f2..8d91cbbd 100644 --- a/docs/PolicyEditorBetaApi.md +++ b/docs/PolicyEditorBetaApi.md @@ -1,403 +1 @@ -# fireblocks.PolicyEditorBetaApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**get_active_policy_legacy**](PolicyEditorBetaApi.md#get_active_policy_legacy) | **GET** /tap/active_policy | Get the active policy and its validation -[**get_draft_legacy**](PolicyEditorBetaApi.md#get_draft_legacy) | **GET** /tap/draft | Get the active draft -[**publish_draft_legacy**](PolicyEditorBetaApi.md#publish_draft_legacy) | **POST** /tap/draft | Send publish request for a certain draft id -[**publish_policy_rules**](PolicyEditorBetaApi.md#publish_policy_rules) | **POST** /tap/publish | Send publish request for a set of policy rules -[**update_draft_legacy**](PolicyEditorBetaApi.md#update_draft_legacy) | **PUT** /tap/draft | Update the draft with a new set of rules - - -# **get_active_policy_legacy** -> LegacyPolicyAndValidationResponse get_active_policy_legacy() - -Get the active policy and its validation - -Legacy Endpoint – Returns the active policy and its validation.
-**Note:** -- This endpoint will remain available for the foreseeable future and is not deprecated.
- The `getActivePolicy` endpoint under policy/paths provides policy type-specific operations and improved functionality.
- These endpoints are currently in beta and might be subject to changes.
-If you want to participate and learn more about the Fireblocks TAP, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - - -### Example - - -```python -from fireblocks.models.legacy_policy_and_validation_response import LegacyPolicyAndValidationResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Get the active policy and its validation - api_response = fireblocks.policy_editor_beta.get_active_policy_legacy().result() - print("The response of PolicyEditorBetaApi->get_active_policy_legacy:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling PolicyEditorBetaApi->get_active_policy_legacy: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**LegacyPolicyAndValidationResponse**](LegacyPolicyAndValidationResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A policy object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_draft_legacy** -> LegacyDraftReviewAndValidationResponse get_draft_legacy() - -Get the active draft - -Legacy Endpoint – Returns the active draft and its validation.
-**Note:** -- This endpoint will remain available for the foreseeable future and is not deprecated.
- The `getDraft` endpoint under policy/paths provides policy type-specific operations and improved functionality.
- These endpoints are currently in beta and might be subject to changes.
-If you want to participate and learn more about the Fireblocks TAP, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - - -### Example - - -```python -from fireblocks.models.legacy_draft_review_and_validation_response import LegacyDraftReviewAndValidationResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Get the active draft - api_response = fireblocks.policy_editor_beta.get_draft_legacy().result() - print("The response of PolicyEditorBetaApi->get_draft_legacy:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling PolicyEditorBetaApi->get_draft_legacy: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**LegacyDraftReviewAndValidationResponse**](LegacyDraftReviewAndValidationResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A draft validation response object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **publish_draft_legacy** -> LegacyPublishResult publish_draft_legacy(legacy_publish_draft_request, idempotency_key=idempotency_key) - -Send publish request for a certain draft id - -Legacy Endpoint – Send publish request of certain draft id and returns the response.
-**Note:** -- This endpoint will remain available for the foreseeable future and is not deprecated.
- The `publishDraft` endpoint under policy/paths provides improved functionality and better performance.
- These endpoints are currently in beta and might be subject to changes.
-If you want to participate and learn more about the Fireblocks TAP, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - - -### Example - - -```python -from fireblocks.models.legacy_publish_draft_request import LegacyPublishDraftRequest -from fireblocks.models.legacy_publish_result import LegacyPublishResult -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - legacy_publish_draft_request = fireblocks.LegacyPublishDraftRequest() # LegacyPublishDraftRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Send publish request for a certain draft id - api_response = fireblocks.policy_editor_beta.publish_draft_legacy(legacy_publish_draft_request, idempotency_key=idempotency_key).result() - print("The response of PolicyEditorBetaApi->publish_draft_legacy:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling PolicyEditorBetaApi->publish_draft_legacy: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **legacy_publish_draft_request** | [**LegacyPublishDraftRequest**](LegacyPublishDraftRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**LegacyPublishResult**](LegacyPublishResult.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | A policy publish result object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **publish_policy_rules** -> LegacyPublishResult publish_policy_rules(legacy_policy_rules, idempotency_key=idempotency_key) - -Send publish request for a set of policy rules - -Send publish request of set of policy rules and returns the response.
-**Note:** These endpoints are currently in beta and might be subject to changes. -If you want to participate and learn more about the Fireblocks TAP, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - - -### Example - - -```python -from fireblocks.models.legacy_policy_rules import LegacyPolicyRules -from fireblocks.models.legacy_publish_result import LegacyPublishResult -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - legacy_policy_rules = fireblocks.LegacyPolicyRules() # LegacyPolicyRules | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Send publish request for a set of policy rules - api_response = fireblocks.policy_editor_beta.publish_policy_rules(legacy_policy_rules, idempotency_key=idempotency_key).result() - print("The response of PolicyEditorBetaApi->publish_policy_rules:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling PolicyEditorBetaApi->publish_policy_rules: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **legacy_policy_rules** | [**LegacyPolicyRules**](LegacyPolicyRules.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**LegacyPublishResult**](LegacyPublishResult.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | A policy publish result object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_draft_legacy** -> LegacyDraftReviewAndValidationResponse update_draft_legacy(legacy_policy_rules, idempotency_key=idempotency_key) - -Update the draft with a new set of rules - -Legacy Endpoint – Update the draft and return its validation.
-**Note:** -- This endpoint will remain available for the foreseeable future and is not deprecated.
- The `updateDraft` endpoint under policy/paths provides policy type-specific operations and improved functionality.
- These endpoints are currently in beta and might be subject to changes.
-If you want to participate and learn more about the Fireblocks TAP, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - - -### Example - - -```python -from fireblocks.models.legacy_draft_review_and_validation_response import LegacyDraftReviewAndValidationResponse -from fireblocks.models.legacy_policy_rules import LegacyPolicyRules -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - legacy_policy_rules = fireblocks.LegacyPolicyRules() # LegacyPolicyRules | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Update the draft with a new set of rules - api_response = fireblocks.policy_editor_beta.update_draft_legacy(legacy_policy_rules, idempotency_key=idempotency_key).result() - print("The response of PolicyEditorBetaApi->update_draft_legacy:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling PolicyEditorBetaApi->update_draft_legacy: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **legacy_policy_rules** | [**LegacyPolicyRules**](LegacyPolicyRules.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**LegacyDraftReviewAndValidationResponse**](LegacyDraftReviewAndValidationResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A draft validation response object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLlBvbGljeUVkaXRvckJldGFBcGkKCkFsbCBVUklzIGFyZSByZWxhdGl2ZSB0byAqaHR0cHM6Ly9hcGkuZmlyZWJsb2Nrcy5pby92MSoKCk1ldGhvZCB8IEhUVFAgcmVxdWVzdCB8IERlc2NyaXB0aW9uCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQpbKipnZXRfYWN0aXZlX3BvbGljeV9sZWdhY3kqKl0oUG9saWN5RWRpdG9yQmV0YUFwaS5tZCNnZXRfYWN0aXZlX3BvbGljeV9sZWdhY3kpIHwgKipHRVQqKiAvdGFwL2FjdGl2ZV9wb2xpY3kgfCBHZXQgdGhlIGFjdGl2ZSBwb2xpY3kgYW5kIGl0cyB2YWxpZGF0aW9uClsqKmdldF9kcmFmdF9sZWdhY3kqKl0oUG9saWN5RWRpdG9yQmV0YUFwaS5tZCNnZXRfZHJhZnRfbGVnYWN5KSB8ICoqR0VUKiogL3RhcC9kcmFmdCB8IEdldCB0aGUgYWN0aXZlIGRyYWZ0ClsqKnB1Ymxpc2hfZHJhZnRfbGVnYWN5KipdKFBvbGljeUVkaXRvckJldGFBcGkubWQjcHVibGlzaF9kcmFmdF9sZWdhY3kpIHwgKipQT1NUKiogL3RhcC9kcmFmdCB8IFNlbmQgcHVibGlzaCByZXF1ZXN0IGZvciBhIGNlcnRhaW4gZHJhZnQgaWQKWyoqcHVibGlzaF9wb2xpY3lfcnVsZXMqKl0oUG9saWN5RWRpdG9yQmV0YUFwaS5tZCNwdWJsaXNoX3BvbGljeV9ydWxlcykgfCAqKlBPU1QqKiAvdGFwL3B1Ymxpc2ggfCBTZW5kIHB1Ymxpc2ggcmVxdWVzdCBmb3IgYSBzZXQgb2YgcG9saWN5IHJ1bGVzClsqKnVwZGF0ZV9kcmFmdF9sZWdhY3kqKl0oUG9saWN5RWRpdG9yQmV0YUFwaS5tZCN1cGRhdGVfZHJhZnRfbGVnYWN5KSB8ICoqUFVUKiogL3RhcC9kcmFmdCB8IFVwZGF0ZSB0aGUgZHJhZnQgd2l0aCBhIG5ldyBzZXQgb2YgcnVsZXMKCgojICoqZ2V0X2FjdGl2ZV9wb2xpY3lfbGVnYWN5KioKPiBMZWdhY3lQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2UgZ2V0X2FjdGl2ZV9wb2xpY3lfbGVnYWN5KCkKCkdldCB0aGUgYWN0aXZlIHBvbGljeSBhbmQgaXRzIHZhbGlkYXRpb24KCkxlZ2FjeSBFbmRwb2ludCDigJMgUmV0dXJucyB0aGUgYWN0aXZlIHBvbGljeSBhbmQgaXRzIHZhbGlkYXRpb24uIDwvYnI+CioqTm90ZToqKiAKLSBUaGlzIGVuZHBvaW50IHdpbGwgcmVtYWluIGF2YWlsYWJsZSBmb3IgdGhlIGZvcmVzZWVhYmxlIGZ1dHVyZSBhbmQgaXMgbm90IGRlcHJlY2F0ZWQuPC9icj4gLSBUaGUgYGdldEFjdGl2ZVBvbGljeWAgZW5kcG9pbnQgdW5kZXIgcG9saWN5L3BhdGhzIHByb3ZpZGVzIHBvbGljeSB0eXBlLXNwZWNpZmljIG9wZXJhdGlvbnMgYW5kIGltcHJvdmVkIGZ1bmN0aW9uYWxpdHkuPC9icj4gLSBUaGVzZSBlbmRwb2ludHMgYXJlIGN1cnJlbnRseSBpbiBiZXRhIGFuZCBtaWdodCBiZSBzdWJqZWN0IHRvIGNoYW5nZXMuPC9icj4KSWYgeW91IHdhbnQgdG8gcGFydGljaXBhdGUgYW5kIGxlYXJuIG1vcmUgYWJvdXQgdGhlIEZpcmVibG9ja3MgVEFQLCBwbGVhc2UgY29udGFjdCB5b3VyIEZpcmVibG9ja3MgQ3VzdG9tZXIgU3VjY2VzcyBNYW5hZ2VyIG9yIHNlbmQgYW4gZW1haWwgdG8gQ1NNQGZpcmVibG9ja3MuY29tLgoKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9hbmRfdmFsaWRhdGlvbl9yZXNwb25zZSBpbXBvcnQgTGVnYWN5UG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgdGhlIGFjdGl2ZSBwb2xpY3kgYW5kIGl0cyB2YWxpZGF0aW9uCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5wb2xpY3lfZWRpdG9yX2JldGEuZ2V0X2FjdGl2ZV9wb2xpY3lfbGVnYWN5KCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFBvbGljeUVkaXRvckJldGFBcGktPmdldF9hY3RpdmVfcG9saWN5X2xlZ2FjeTpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBQb2xpY3lFZGl0b3JCZXRhQXBpLT5nZXRfYWN0aXZlX3BvbGljeV9sZWdhY3k6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgpUaGlzIGVuZHBvaW50IGRvZXMgbm90IG5lZWQgYW55IHBhcmFtZXRlci4KCiMjIyBSZXR1cm4gdHlwZQoKWyoqTGVnYWN5UG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlKipdKExlZ2FjeVBvbGljeUFuZFZhbGlkYXRpb25SZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgcG9saWN5IG9iamVjdCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2RyYWZ0X2xlZ2FjeSoqCj4gTGVnYWN5RHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UgZ2V0X2RyYWZ0X2xlZ2FjeSgpCgpHZXQgdGhlIGFjdGl2ZSBkcmFmdAoKTGVnYWN5IEVuZHBvaW50IOKAkyBSZXR1cm5zIHRoZSBhY3RpdmUgZHJhZnQgYW5kIGl0cyB2YWxpZGF0aW9uLiA8L2JyPgoqKk5vdGU6KiogCi0gVGhpcyBlbmRwb2ludCB3aWxsIHJlbWFpbiBhdmFpbGFibGUgZm9yIHRoZSBmb3Jlc2VlYWJsZSBmdXR1cmUgYW5kIGlzIG5vdCBkZXByZWNhdGVkLjwvYnI+IC0gVGhlIGBnZXREcmFmdGAgZW5kcG9pbnQgdW5kZXIgcG9saWN5L3BhdGhzIHByb3ZpZGVzIHBvbGljeSB0eXBlLXNwZWNpZmljIG9wZXJhdGlvbnMgYW5kIGltcHJvdmVkIGZ1bmN0aW9uYWxpdHkuPC9icj4gLSBUaGVzZSBlbmRwb2ludHMgYXJlIGN1cnJlbnRseSBpbiBiZXRhIGFuZCBtaWdodCBiZSBzdWJqZWN0IHRvIGNoYW5nZXMuPC9icj4KSWYgeW91IHdhbnQgdG8gcGFydGljaXBhdGUgYW5kIGxlYXJuIG1vcmUgYWJvdXQgdGhlIEZpcmVibG9ja3MgVEFQLCBwbGVhc2UgY29udGFjdCB5b3VyIEZpcmVibG9ja3MgQ3VzdG9tZXIgU3VjY2VzcyBNYW5hZ2VyIG9yIHNlbmQgYW4gZW1haWwgdG8gQ1NNQGZpcmVibG9ja3MuY29tLgoKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X2RyYWZ0X3Jldmlld19hbmRfdmFsaWRhdGlvbl9yZXNwb25zZSBpbXBvcnQgTGVnYWN5RHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgoKICAgIHRyeToKICAgICAgICAjIEdldCB0aGUgYWN0aXZlIGRyYWZ0CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5wb2xpY3lfZWRpdG9yX2JldGEuZ2V0X2RyYWZ0X2xlZ2FjeSgpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBQb2xpY3lFZGl0b3JCZXRhQXBpLT5nZXRfZHJhZnRfbGVnYWN5OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFBvbGljeUVkaXRvckJldGFBcGktPmdldF9kcmFmdF9sZWdhY3k6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgpUaGlzIGVuZHBvaW50IGRvZXMgbm90IG5lZWQgYW55IHBhcmFtZXRlci4KCiMjIyBSZXR1cm4gdHlwZQoKWyoqTGVnYWN5RHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UqKl0oTGVnYWN5RHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBIGRyYWZ0IHZhbGlkYXRpb24gcmVzcG9uc2Ugb2JqZWN0IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipwdWJsaXNoX2RyYWZ0X2xlZ2FjeSoqCj4gTGVnYWN5UHVibGlzaFJlc3VsdCBwdWJsaXNoX2RyYWZ0X2xlZ2FjeShsZWdhY3lfcHVibGlzaF9kcmFmdF9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKU2VuZCBwdWJsaXNoIHJlcXVlc3QgZm9yIGEgY2VydGFpbiBkcmFmdCBpZAoKTGVnYWN5IEVuZHBvaW50IOKAkyBTZW5kIHB1Ymxpc2ggcmVxdWVzdCBvZiBjZXJ0YWluIGRyYWZ0IGlkIGFuZCByZXR1cm5zIHRoZSByZXNwb25zZS4gPC9icj4KKipOb3RlOioqIAotIFRoaXMgZW5kcG9pbnQgd2lsbCByZW1haW4gYXZhaWxhYmxlIGZvciB0aGUgZm9yZXNlZWFibGUgZnV0dXJlIGFuZCBpcyBub3QgZGVwcmVjYXRlZC48L2JyPiAtIFRoZSBgcHVibGlzaERyYWZ0YCBlbmRwb2ludCB1bmRlciBwb2xpY3kvcGF0aHMgcHJvdmlkZXMgaW1wcm92ZWQgZnVuY3Rpb25hbGl0eSBhbmQgYmV0dGVyIHBlcmZvcm1hbmNlLjwvYnI+IC0gVGhlc2UgZW5kcG9pbnRzIGFyZSBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLjwvYnI+CklmIHlvdSB3YW50IHRvIHBhcnRpY2lwYXRlIGFuZCBsZWFybiBtb3JlIGFib3V0IHRoZSBGaXJlYmxvY2tzIFRBUCwgcGxlYXNlIGNvbnRhY3QgeW91ciBGaXJlYmxvY2tzIEN1c3RvbWVyIFN1Y2Nlc3MgTWFuYWdlciBvciBzZW5kIGFuIGVtYWlsIHRvIENTTUBmaXJlYmxvY2tzLmNvbS4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wdWJsaXNoX2RyYWZ0X3JlcXVlc3QgaW1wb3J0IExlZ2FjeVB1Ymxpc2hEcmFmdFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcHVibGlzaF9yZXN1bHQgaW1wb3J0IExlZ2FjeVB1Ymxpc2hSZXN1bHQKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgbGVnYWN5X3B1Ymxpc2hfZHJhZnRfcmVxdWVzdCA9IGZpcmVibG9ja3MuTGVnYWN5UHVibGlzaERyYWZ0UmVxdWVzdCgpICMgTGVnYWN5UHVibGlzaERyYWZ0UmVxdWVzdCB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIFNlbmQgcHVibGlzaCByZXF1ZXN0IGZvciBhIGNlcnRhaW4gZHJhZnQgaWQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnBvbGljeV9lZGl0b3JfYmV0YS5wdWJsaXNoX2RyYWZ0X2xlZ2FjeShsZWdhY3lfcHVibGlzaF9kcmFmdF9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgUG9saWN5RWRpdG9yQmV0YUFwaS0+cHVibGlzaF9kcmFmdF9sZWdhY3k6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgUG9saWN5RWRpdG9yQmV0YUFwaS0+cHVibGlzaF9kcmFmdF9sZWdhY3k6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmxlZ2FjeV9wdWJsaXNoX2RyYWZ0X3JlcXVlc3QqKiB8IFsqKkxlZ2FjeVB1Ymxpc2hEcmFmdFJlcXVlc3QqKl0oTGVnYWN5UHVibGlzaERyYWZ0UmVxdWVzdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipMZWdhY3lQdWJsaXNoUmVzdWx0KipdKExlZ2FjeVB1Ymxpc2hSZXN1bHQubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDEqKiB8IEEgcG9saWN5IHB1Ymxpc2ggcmVzdWx0IG9iamVjdCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqcHVibGlzaF9wb2xpY3lfcnVsZXMqKgo+IExlZ2FjeVB1Ymxpc2hSZXN1bHQgcHVibGlzaF9wb2xpY3lfcnVsZXMobGVnYWN5X3BvbGljeV9ydWxlcywgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKClNlbmQgcHVibGlzaCByZXF1ZXN0IGZvciBhIHNldCBvZiBwb2xpY3kgcnVsZXMKClNlbmQgcHVibGlzaCByZXF1ZXN0IG9mIHNldCBvZiBwb2xpY3kgcnVsZXMgYW5kIHJldHVybnMgdGhlIHJlc3BvbnNlLiA8L2JyPgoqKk5vdGU6KiogVGhlc2UgZW5kcG9pbnRzIGFyZSBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLgpJZiB5b3Ugd2FudCB0byBwYXJ0aWNpcGF0ZSBhbmQgbGVhcm4gbW9yZSBhYm91dCB0aGUgRmlyZWJsb2NrcyBUQVAsIHBsZWFzZSBjb250YWN0IHlvdXIgRmlyZWJsb2NrcyBDdXN0b21lciBTdWNjZXNzIE1hbmFnZXIgb3Igc2VuZCBhbiBlbWFpbCB0byBDU01AZmlyZWJsb2Nrcy5jb20uCgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVzIGltcG9ydCBMZWdhY3lQb2xpY3lSdWxlcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wdWJsaXNoX3Jlc3VsdCBpbXBvcnQgTGVnYWN5UHVibGlzaFJlc3VsdApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBsZWdhY3lfcG9saWN5X3J1bGVzID0gZmlyZWJsb2Nrcy5MZWdhY3lQb2xpY3lSdWxlcygpICMgTGVnYWN5UG9saWN5UnVsZXMgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBTZW5kIHB1Ymxpc2ggcmVxdWVzdCBmb3IgYSBzZXQgb2YgcG9saWN5IHJ1bGVzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5wb2xpY3lfZWRpdG9yX2JldGEucHVibGlzaF9wb2xpY3lfcnVsZXMobGVnYWN5X3BvbGljeV9ydWxlcywgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFBvbGljeUVkaXRvckJldGFBcGktPnB1Ymxpc2hfcG9saWN5X3J1bGVzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFBvbGljeUVkaXRvckJldGFBcGktPnB1Ymxpc2hfcG9saWN5X3J1bGVzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipsZWdhY3lfcG9saWN5X3J1bGVzKiogfCBbKipMZWdhY3lQb2xpY3lSdWxlcyoqXShMZWdhY3lQb2xpY3lSdWxlcy5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipMZWdhY3lQdWJsaXNoUmVzdWx0KipdKExlZ2FjeVB1Ymxpc2hSZXN1bHQubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDEqKiB8IEEgcG9saWN5IHB1Ymxpc2ggcmVzdWx0IG9iamVjdCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqdXBkYXRlX2RyYWZ0X2xlZ2FjeSoqCj4gTGVnYWN5RHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UgdXBkYXRlX2RyYWZ0X2xlZ2FjeShsZWdhY3lfcG9saWN5X3J1bGVzLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKVXBkYXRlIHRoZSBkcmFmdCB3aXRoIGEgbmV3IHNldCBvZiBydWxlcwoKTGVnYWN5IEVuZHBvaW50IOKAkyBVcGRhdGUgdGhlIGRyYWZ0IGFuZCByZXR1cm4gaXRzIHZhbGlkYXRpb24uIDwvYnI+CioqTm90ZToqKiAKLSBUaGlzIGVuZHBvaW50IHdpbGwgcmVtYWluIGF2YWlsYWJsZSBmb3IgdGhlIGZvcmVzZWVhYmxlIGZ1dHVyZSBhbmQgaXMgbm90IGRlcHJlY2F0ZWQuPC9icj4gLSBUaGUgYHVwZGF0ZURyYWZ0YCBlbmRwb2ludCB1bmRlciBwb2xpY3kvcGF0aHMgcHJvdmlkZXMgcG9saWN5IHR5cGUtc3BlY2lmaWMgb3BlcmF0aW9ucyBhbmQgaW1wcm92ZWQgZnVuY3Rpb25hbGl0eS48L2JyPiAtIFRoZXNlIGVuZHBvaW50cyBhcmUgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy48L2JyPgpJZiB5b3Ugd2FudCB0byBwYXJ0aWNpcGF0ZSBhbmQgbGVhcm4gbW9yZSBhYm91dCB0aGUgRmlyZWJsb2NrcyBUQVAsIHBsZWFzZSBjb250YWN0IHlvdXIgRmlyZWJsb2NrcyBDdXN0b21lciBTdWNjZXNzIE1hbmFnZXIgb3Igc2VuZCBhbiBlbWFpbCB0byBDU01AZmlyZWJsb2Nrcy5jb20uCgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfZHJhZnRfcmV2aWV3X2FuZF92YWxpZGF0aW9uX3Jlc3BvbnNlIGltcG9ydCBMZWdhY3lEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZXMgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGxlZ2FjeV9wb2xpY3lfcnVsZXMgPSBmaXJlYmxvY2tzLkxlZ2FjeVBvbGljeVJ1bGVzKCkgIyBMZWdhY3lQb2xpY3lSdWxlcyB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIFVwZGF0ZSB0aGUgZHJhZnQgd2l0aCBhIG5ldyBzZXQgb2YgcnVsZXMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnBvbGljeV9lZGl0b3JfYmV0YS51cGRhdGVfZHJhZnRfbGVnYWN5KGxlZ2FjeV9wb2xpY3lfcnVsZXMsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBQb2xpY3lFZGl0b3JCZXRhQXBpLT51cGRhdGVfZHJhZnRfbGVnYWN5OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFBvbGljeUVkaXRvckJldGFBcGktPnVwZGF0ZV9kcmFmdF9sZWdhY3k6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmxlZ2FjeV9wb2xpY3lfcnVsZXMqKiB8IFsqKkxlZ2FjeVBvbGljeVJ1bGVzKipdKExlZ2FjeVBvbGljeVJ1bGVzLm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkxlZ2FjeURyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlKipdKExlZ2FjeURyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBIGRyYWZ0IHZhbGlkYXRpb24gcmVzcG9uc2Ugb2JqZWN0IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCg== \ No newline at end of file diff --git a/docs/PolicyEditorV2BetaApi.md b/docs/PolicyEditorV2BetaApi.md index 9236683e..527d1af8 100644 --- a/docs/PolicyEditorV2BetaApi.md +++ b/docs/PolicyEditorV2BetaApi.md @@ -1,328 +1 @@ -# fireblocks.PolicyEditorV2BetaApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**get_active_policy**](PolicyEditorV2BetaApi.md#get_active_policy) | **GET** /policy/active_policy | Get the active policy and its validation by policy type -[**get_draft**](PolicyEditorV2BetaApi.md#get_draft) | **GET** /policy/draft | Get the active draft by policy type -[**publish_draft**](PolicyEditorV2BetaApi.md#publish_draft) | **POST** /policy/draft | Send publish request for a certain draft id -[**update_draft**](PolicyEditorV2BetaApi.md#update_draft) | **PUT** /policy/draft | Update the draft with a new set of rules by policy types - - -# **get_active_policy** -> PolicyAndValidationResponse get_active_policy(policy_type) - -Get the active policy and its validation by policy type - -Returns the active policy and its validation for a specific policy type. - -**Note:** This endpoint is currently in beta and subject to change. If you want to participate in the Policies beta, contact your Fireblocks Customer Success Manager or send an email to csm@fireblocks.com. - -Endpoint Permissions: Owner, Admin, Non-Signing Admin. - - -### Example - - -```python -from fireblocks.models.policy_and_validation_response import PolicyAndValidationResponse -from fireblocks.models.policy_type import PolicyType -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - policy_type = fireblocks.PolicyType() # PolicyType | The policy type(s) to retrieve. Can be a single type or multiple types by repeating the parameter (e.g., ?policyType=TRANSFER&policyType=MINT). - - try: - # Get the active policy and its validation by policy type - api_response = fireblocks.policy_editor_v2_beta.get_active_policy(policy_type).result() - print("The response of PolicyEditorV2BetaApi->get_active_policy:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling PolicyEditorV2BetaApi->get_active_policy: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **policy_type** | [**PolicyType**](.md)| The policy type(s) to retrieve. Can be a single type or multiple types by repeating the parameter (e.g., ?policyType=TRANSFER&policyType=MINT). | - -### Return type - -[**PolicyAndValidationResponse**](PolicyAndValidationResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A policy object with validation | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_draft** -> DraftReviewAndValidationResponse get_draft(policy_type) - -Get the active draft by policy type - -Returns the active draft and its validation for a specific policy type.
-**Note:** These endpoints are currently in beta and might be subject to changes. - - -### Example - - -```python -from fireblocks.models.draft_review_and_validation_response import DraftReviewAndValidationResponse -from fireblocks.models.policy_type import PolicyType -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - policy_type = fireblocks.PolicyType() # PolicyType | The policy type(s) to retrieve. Can be a single type or multiple types by repeating the parameter (e.g., ?policyType=TRANSFER&policyType=MINT). - - try: - # Get the active draft by policy type - api_response = fireblocks.policy_editor_v2_beta.get_draft(policy_type).result() - print("The response of PolicyEditorV2BetaApi->get_draft:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling PolicyEditorV2BetaApi->get_draft: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **policy_type** | [**PolicyType**](.md)| The policy type(s) to retrieve. Can be a single type or multiple types by repeating the parameter (e.g., ?policyType=TRANSFER&policyType=MINT). | - -### Return type - -[**DraftReviewAndValidationResponse**](DraftReviewAndValidationResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A draft validation response object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **publish_draft** -> PublishResult publish_draft(publish_draft_request, idempotency_key=idempotency_key) - -Send publish request for a certain draft id - -Send publish request of certain draft id and returns the response.
-**Note:** These endpoints are currently in beta and might be subject to changes. -If you want to participate and learn more about the Fireblocks Policy Editor, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - - -### Example - - -```python -from fireblocks.models.publish_draft_request import PublishDraftRequest -from fireblocks.models.publish_result import PublishResult -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - publish_draft_request = fireblocks.PublishDraftRequest() # PublishDraftRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Send publish request for a certain draft id - api_response = fireblocks.policy_editor_v2_beta.publish_draft(publish_draft_request, idempotency_key=idempotency_key).result() - print("The response of PolicyEditorV2BetaApi->publish_draft:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling PolicyEditorV2BetaApi->publish_draft: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **publish_draft_request** | [**PublishDraftRequest**](PublishDraftRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**PublishResult**](PublishResult.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | A policy publish result object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_draft** -> DraftReviewAndValidationResponse update_draft(update_draft_request, idempotency_key=idempotency_key) - -Update the draft with a new set of rules by policy types - -Update the draft and return its validation for specific policy types.
-**Note:** These endpoints are currently in beta and might be subject to changes. - - -### Example - - -```python -from fireblocks.models.draft_review_and_validation_response import DraftReviewAndValidationResponse -from fireblocks.models.update_draft_request import UpdateDraftRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - update_draft_request = fireblocks.UpdateDraftRequest() # UpdateDraftRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Update the draft with a new set of rules by policy types - api_response = fireblocks.policy_editor_v2_beta.update_draft(update_draft_request, idempotency_key=idempotency_key).result() - print("The response of PolicyEditorV2BetaApi->update_draft:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling PolicyEditorV2BetaApi->update_draft: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **update_draft_request** | [**UpdateDraftRequest**](UpdateDraftRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**DraftReviewAndValidationResponse**](DraftReviewAndValidationResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A draft validation response object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLlBvbGljeUVkaXRvclYyQmV0YUFwaQoKQWxsIFVSSXMgYXJlIHJlbGF0aXZlIHRvICpodHRwczovL2FwaS5maXJlYmxvY2tzLmlvL3YxKgoKTWV0aG9kIHwgSFRUUCByZXF1ZXN0IHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tClsqKmdldF9hY3RpdmVfcG9saWN5KipdKFBvbGljeUVkaXRvclYyQmV0YUFwaS5tZCNnZXRfYWN0aXZlX3BvbGljeSkgfCAqKkdFVCoqIC9wb2xpY3kvYWN0aXZlX3BvbGljeSB8IEdldCB0aGUgYWN0aXZlIHBvbGljeSBhbmQgaXRzIHZhbGlkYXRpb24gYnkgcG9saWN5IHR5cGUKWyoqZ2V0X2RyYWZ0KipdKFBvbGljeUVkaXRvclYyQmV0YUFwaS5tZCNnZXRfZHJhZnQpIHwgKipHRVQqKiAvcG9saWN5L2RyYWZ0IHwgR2V0IHRoZSBhY3RpdmUgZHJhZnQgYnkgcG9saWN5IHR5cGUKWyoqcHVibGlzaF9kcmFmdCoqXShQb2xpY3lFZGl0b3JWMkJldGFBcGkubWQjcHVibGlzaF9kcmFmdCkgfCAqKlBPU1QqKiAvcG9saWN5L2RyYWZ0IHwgU2VuZCBwdWJsaXNoIHJlcXVlc3QgZm9yIGEgY2VydGFpbiBkcmFmdCBpZApbKip1cGRhdGVfZHJhZnQqKl0oUG9saWN5RWRpdG9yVjJCZXRhQXBpLm1kI3VwZGF0ZV9kcmFmdCkgfCAqKlBVVCoqIC9wb2xpY3kvZHJhZnQgfCBVcGRhdGUgdGhlIGRyYWZ0IHdpdGggYSBuZXcgc2V0IG9mIHJ1bGVzIGJ5IHBvbGljeSB0eXBlcwoKCiMgKipnZXRfYWN0aXZlX3BvbGljeSoqCj4gUG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlIGdldF9hY3RpdmVfcG9saWN5KHBvbGljeV90eXBlKQoKR2V0IHRoZSBhY3RpdmUgcG9saWN5IGFuZCBpdHMgdmFsaWRhdGlvbiBieSBwb2xpY3kgdHlwZQoKUmV0dXJucyB0aGUgYWN0aXZlIHBvbGljeSBhbmQgaXRzIHZhbGlkYXRpb24gZm9yIGEgc3BlY2lmaWMgcG9saWN5IHR5cGUuCgoqKk5vdGU6KiogVGhpcyBlbmRwb2ludCBpcyBjdXJyZW50bHkgaW4gYmV0YSBhbmQgc3ViamVjdCB0byBjaGFuZ2UuIElmIHlvdSB3YW50IHRvIHBhcnRpY2lwYXRlIGluIHRoZSBQb2xpY2llcyBiZXRhLCBjb250YWN0IHlvdXIgRmlyZWJsb2NrcyBDdXN0b21lciBTdWNjZXNzIE1hbmFnZXIgb3Igc2VuZCBhbiBlbWFpbCB0byBjc21AZmlyZWJsb2Nrcy5jb20uCgpFbmRwb2ludCBQZXJtaXNzaW9uczogT3duZXIsIEFkbWluLCBOb24tU2lnbmluZyBBZG1pbi4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9hbmRfdmFsaWRhdGlvbl9yZXNwb25zZSBpbXBvcnQgUG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3R5cGUgaW1wb3J0IFBvbGljeVR5cGUKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgcG9saWN5X3R5cGUgPSBmaXJlYmxvY2tzLlBvbGljeVR5cGUoKSAjIFBvbGljeVR5cGUgfCBUaGUgcG9saWN5IHR5cGUocykgdG8gcmV0cmlldmUuIENhbiBiZSBhIHNpbmdsZSB0eXBlIG9yIG11bHRpcGxlIHR5cGVzIGJ5IHJlcGVhdGluZyB0aGUgcGFyYW1ldGVyIChlLmcuLCA/cG9saWN5VHlwZT1UUkFOU0ZFUiZwb2xpY3lUeXBlPU1JTlQpLgoKICAgIHRyeToKICAgICAgICAjIEdldCB0aGUgYWN0aXZlIHBvbGljeSBhbmQgaXRzIHZhbGlkYXRpb24gYnkgcG9saWN5IHR5cGUKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnBvbGljeV9lZGl0b3JfdjJfYmV0YS5nZXRfYWN0aXZlX3BvbGljeShwb2xpY3lfdHlwZSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFBvbGljeUVkaXRvclYyQmV0YUFwaS0+Z2V0X2FjdGl2ZV9wb2xpY3k6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgUG9saWN5RWRpdG9yVjJCZXRhQXBpLT5nZXRfYWN0aXZlX3BvbGljeTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqcG9saWN5X3R5cGUqKiB8IFsqKlBvbGljeVR5cGUqKl0oLm1kKXwgVGhlIHBvbGljeSB0eXBlKHMpIHRvIHJldHJpZXZlLiBDYW4gYmUgYSBzaW5nbGUgdHlwZSBvciBtdWx0aXBsZSB0eXBlcyBieSByZXBlYXRpbmcgdGhlIHBhcmFtZXRlciAoZS5nLiwgP3BvbGljeVR5cGUmI3gzRDtUUkFOU0ZFUiZhbXA7cG9saWN5VHlwZSYjeDNEO01JTlQpLiB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2UqKl0oUG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQSBwb2xpY3kgb2JqZWN0IHdpdGggdmFsaWRhdGlvbiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2RyYWZ0KioKPiBEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZSBnZXRfZHJhZnQocG9saWN5X3R5cGUpCgpHZXQgdGhlIGFjdGl2ZSBkcmFmdCBieSBwb2xpY3kgdHlwZQoKUmV0dXJucyB0aGUgYWN0aXZlIGRyYWZ0IGFuZCBpdHMgdmFsaWRhdGlvbiBmb3IgYSBzcGVjaWZpYyBwb2xpY3kgdHlwZS4gPC9icj4KKipOb3RlOioqIFRoZXNlIGVuZHBvaW50cyBhcmUgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRyYWZ0X3Jldmlld19hbmRfdmFsaWRhdGlvbl9yZXNwb25zZSBpbXBvcnQgRHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfdHlwZSBpbXBvcnQgUG9saWN5VHlwZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBwb2xpY3lfdHlwZSA9IGZpcmVibG9ja3MuUG9saWN5VHlwZSgpICMgUG9saWN5VHlwZSB8IFRoZSBwb2xpY3kgdHlwZShzKSB0byByZXRyaWV2ZS4gQ2FuIGJlIGEgc2luZ2xlIHR5cGUgb3IgbXVsdGlwbGUgdHlwZXMgYnkgcmVwZWF0aW5nIHRoZSBwYXJhbWV0ZXIgKGUuZy4sID9wb2xpY3lUeXBlPVRSQU5TRkVSJnBvbGljeVR5cGU9TUlOVCkuCgogICAgdHJ5OgogICAgICAgICMgR2V0IHRoZSBhY3RpdmUgZHJhZnQgYnkgcG9saWN5IHR5cGUKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnBvbGljeV9lZGl0b3JfdjJfYmV0YS5nZXRfZHJhZnQocG9saWN5X3R5cGUpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBQb2xpY3lFZGl0b3JWMkJldGFBcGktPmdldF9kcmFmdDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBQb2xpY3lFZGl0b3JWMkJldGFBcGktPmdldF9kcmFmdDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqcG9saWN5X3R5cGUqKiB8IFsqKlBvbGljeVR5cGUqKl0oLm1kKXwgVGhlIHBvbGljeSB0eXBlKHMpIHRvIHJldHJpZXZlLiBDYW4gYmUgYSBzaW5nbGUgdHlwZSBvciBtdWx0aXBsZSB0eXBlcyBieSByZXBlYXRpbmcgdGhlIHBhcmFtZXRlciAoZS5nLiwgP3BvbGljeVR5cGUmI3gzRDtUUkFOU0ZFUiZhbXA7cG9saWN5VHlwZSYjeDNEO01JTlQpLiB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZSoqXShEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgZHJhZnQgdmFsaWRhdGlvbiByZXNwb25zZSBvYmplY3QgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnB1Ymxpc2hfZHJhZnQqKgo+IFB1Ymxpc2hSZXN1bHQgcHVibGlzaF9kcmFmdChwdWJsaXNoX2RyYWZ0X3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpTZW5kIHB1Ymxpc2ggcmVxdWVzdCBmb3IgYSBjZXJ0YWluIGRyYWZ0IGlkCgpTZW5kIHB1Ymxpc2ggcmVxdWVzdCBvZiBjZXJ0YWluIGRyYWZ0IGlkIGFuZCByZXR1cm5zIHRoZSByZXNwb25zZS4gPC9icj4KKipOb3RlOioqIFRoZXNlIGVuZHBvaW50cyBhcmUgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy4KSWYgeW91IHdhbnQgdG8gcGFydGljaXBhdGUgYW5kIGxlYXJuIG1vcmUgYWJvdXQgdGhlIEZpcmVibG9ja3MgUG9saWN5IEVkaXRvciwgcGxlYXNlIGNvbnRhY3QgeW91ciBGaXJlYmxvY2tzIEN1c3RvbWVyIFN1Y2Nlc3MgTWFuYWdlciBvciBzZW5kIGFuIGVtYWlsIHRvIENTTUBmaXJlYmxvY2tzLmNvbS4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnB1Ymxpc2hfZHJhZnRfcmVxdWVzdCBpbXBvcnQgUHVibGlzaERyYWZ0UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnB1Ymxpc2hfcmVzdWx0IGltcG9ydCBQdWJsaXNoUmVzdWx0CmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHB1Ymxpc2hfZHJhZnRfcmVxdWVzdCA9IGZpcmVibG9ja3MuUHVibGlzaERyYWZ0UmVxdWVzdCgpICMgUHVibGlzaERyYWZ0UmVxdWVzdCB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIFNlbmQgcHVibGlzaCByZXF1ZXN0IGZvciBhIGNlcnRhaW4gZHJhZnQgaWQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnBvbGljeV9lZGl0b3JfdjJfYmV0YS5wdWJsaXNoX2RyYWZ0KHB1Ymxpc2hfZHJhZnRfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFBvbGljeUVkaXRvclYyQmV0YUFwaS0+cHVibGlzaF9kcmFmdDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBQb2xpY3lFZGl0b3JWMkJldGFBcGktPnB1Ymxpc2hfZHJhZnQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnB1Ymxpc2hfZHJhZnRfcmVxdWVzdCoqIHwgWyoqUHVibGlzaERyYWZ0UmVxdWVzdCoqXShQdWJsaXNoRHJhZnRSZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlB1Ymxpc2hSZXN1bHQqKl0oUHVibGlzaFJlc3VsdC5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgQSBwb2xpY3kgcHVibGlzaCByZXN1bHQgb2JqZWN0IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKip1cGRhdGVfZHJhZnQqKgo+IERyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlIHVwZGF0ZV9kcmFmdCh1cGRhdGVfZHJhZnRfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKClVwZGF0ZSB0aGUgZHJhZnQgd2l0aCBhIG5ldyBzZXQgb2YgcnVsZXMgYnkgcG9saWN5IHR5cGVzCgpVcGRhdGUgdGhlIGRyYWZ0IGFuZCByZXR1cm4gaXRzIHZhbGlkYXRpb24gZm9yIHNwZWNpZmljIHBvbGljeSB0eXBlcy4gPC9icj4KKipOb3RlOioqIFRoZXNlIGVuZHBvaW50cyBhcmUgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRyYWZ0X3Jldmlld19hbmRfdmFsaWRhdGlvbl9yZXNwb25zZSBpbXBvcnQgRHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51cGRhdGVfZHJhZnRfcmVxdWVzdCBpbXBvcnQgVXBkYXRlRHJhZnRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHVwZGF0ZV9kcmFmdF9yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5VcGRhdGVEcmFmdFJlcXVlc3QoKSAjIFVwZGF0ZURyYWZ0UmVxdWVzdCB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIFVwZGF0ZSB0aGUgZHJhZnQgd2l0aCBhIG5ldyBzZXQgb2YgcnVsZXMgYnkgcG9saWN5IHR5cGVzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5wb2xpY3lfZWRpdG9yX3YyX2JldGEudXBkYXRlX2RyYWZ0KHVwZGF0ZV9kcmFmdF9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgUG9saWN5RWRpdG9yVjJCZXRhQXBpLT51cGRhdGVfZHJhZnQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgUG9saWN5RWRpdG9yVjJCZXRhQXBpLT51cGRhdGVfZHJhZnQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnVwZGF0ZV9kcmFmdF9yZXF1ZXN0KiogfCBbKipVcGRhdGVEcmFmdFJlcXVlc3QqKl0oVXBkYXRlRHJhZnRSZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkRyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlKipdKERyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBIGRyYWZ0IHZhbGlkYXRpb24gcmVzcG9uc2Ugb2JqZWN0IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCg== \ No newline at end of file diff --git a/docs/PolicyMetadata.md b/docs/PolicyMetadata.md index 17c00648..6618a94e 100644 --- a/docs/PolicyMetadata.md +++ b/docs/PolicyMetadata.md @@ -1,34 +1 @@ -# PolicyMetadata - -Policy metadata - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**edited_by** | **str** | The user ID of the user who last edited the policy | [optional] -**edited_at** | **str** | The timestamp of the last edit of the policy | [optional] -**published_by** | **str** | The user ID of the user who last published the policy | [optional] -**published_at** | **str** | The timestamp of the last publish of the policy | [optional] -**policy_type** | [**PolicyType**](PolicyType.md) | | - -## Example - -```python -from fireblocks.models.policy_metadata import PolicyMetadata - -# TODO update the JSON string below -json = "{}" -# create an instance of PolicyMetadata from a JSON string -policy_metadata_instance = PolicyMetadata.from_json(json) -# print the JSON string representation of the object -print(PolicyMetadata.to_json()) - -# convert the object into a dict -policy_metadata_dict = policy_metadata_instance.to_dict() -# create an instance of PolicyMetadata from a dict -policy_metadata_from_dict = PolicyMetadata.from_dict(policy_metadata_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQb2xpY3lNZXRhZGF0YQoKUG9saWN5IG1ldGFkYXRhCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZWRpdGVkX2J5KiogfCAqKnN0cioqIHwgVGhlIHVzZXIgSUQgb2YgdGhlIHVzZXIgd2hvIGxhc3QgZWRpdGVkIHRoZSBwb2xpY3kgfCBbb3B0aW9uYWxdIAoqKmVkaXRlZF9hdCoqIHwgKipzdHIqKiB8IFRoZSB0aW1lc3RhbXAgb2YgdGhlIGxhc3QgZWRpdCBvZiB0aGUgcG9saWN5IHwgW29wdGlvbmFsXSAKKipwdWJsaXNoZWRfYnkqKiB8ICoqc3RyKiogfCBUaGUgdXNlciBJRCBvZiB0aGUgdXNlciB3aG8gbGFzdCBwdWJsaXNoZWQgdGhlIHBvbGljeSB8IFtvcHRpb25hbF0gCioqcHVibGlzaGVkX2F0KiogfCAqKnN0cioqIHwgVGhlIHRpbWVzdGFtcCBvZiB0aGUgbGFzdCBwdWJsaXNoIG9mIHRoZSBwb2xpY3kgfCBbb3B0aW9uYWxdIAoqKnBvbGljeV90eXBlKiogfCBbKipQb2xpY3lUeXBlKipdKFBvbGljeVR5cGUubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfbWV0YWRhdGEgaW1wb3J0IFBvbGljeU1ldGFkYXRhCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQb2xpY3lNZXRhZGF0YSBmcm9tIGEgSlNPTiBzdHJpbmcKcG9saWN5X21ldGFkYXRhX2luc3RhbmNlID0gUG9saWN5TWV0YWRhdGEuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUG9saWN5TWV0YWRhdGEudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcG9saWN5X21ldGFkYXRhX2RpY3QgPSBwb2xpY3lfbWV0YWRhdGFfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBvbGljeU1ldGFkYXRhIGZyb20gYSBkaWN0CnBvbGljeV9tZXRhZGF0YV9mcm9tX2RpY3QgPSBQb2xpY3lNZXRhZGF0YS5mcm9tX2RpY3QocG9saWN5X21ldGFkYXRhX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/PolicyOperator.md b/docs/PolicyOperator.md index c32bbddd..f5e1e78e 100644 --- a/docs/PolicyOperator.md +++ b/docs/PolicyOperator.md @@ -1,11 +1 @@ -# PolicyOperator - -Operator for selection - -## Enum - -* `INCLUDES` (value: `'INCLUDES'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQb2xpY3lPcGVyYXRvcgoKT3BlcmF0b3IgZm9yIHNlbGVjdGlvbgoKIyMgRW51bQoKKiBgSU5DTFVERVNgICh2YWx1ZTogYCdJTkNMVURFUydgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/PolicyResponse.md b/docs/PolicyResponse.md index 4724e07d..83366ac4 100644 --- a/docs/PolicyResponse.md +++ b/docs/PolicyResponse.md @@ -1,31 +1 @@ -# PolicyResponse - -Response object for policy operations - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**rules** | [**List[PolicyRule]**](PolicyRule.md) | A set of policy rules | -**metadata** | [**PolicyMetadata**](PolicyMetadata.md) | | - -## Example - -```python -from fireblocks.models.policy_response import PolicyResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of PolicyResponse from a JSON string -policy_response_instance = PolicyResponse.from_json(json) -# print the JSON string representation of the object -print(PolicyResponse.to_json()) - -# convert the object into a dict -policy_response_dict = policy_response_instance.to_dict() -# create an instance of PolicyResponse from a dict -policy_response_from_dict = PolicyResponse.from_dict(policy_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQb2xpY3lSZXNwb25zZQoKUmVzcG9uc2Ugb2JqZWN0IGZvciBwb2xpY3kgb3BlcmF0aW9ucwoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnJ1bGVzKiogfCBbKipMaXN0W1BvbGljeVJ1bGVdKipdKFBvbGljeVJ1bGUubWQpIHwgQSBzZXQgb2YgcG9saWN5IHJ1bGVzIHwgCioqbWV0YWRhdGEqKiB8IFsqKlBvbGljeU1ldGFkYXRhKipdKFBvbGljeU1ldGFkYXRhLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3Jlc3BvbnNlIGltcG9ydCBQb2xpY3lSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUG9saWN5UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnBvbGljeV9yZXNwb25zZV9pbnN0YW5jZSA9IFBvbGljeVJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFBvbGljeVJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnBvbGljeV9yZXNwb25zZV9kaWN0ID0gcG9saWN5X3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQb2xpY3lSZXNwb25zZSBmcm9tIGEgZGljdApwb2xpY3lfcmVzcG9uc2VfZnJvbV9kaWN0ID0gUG9saWN5UmVzcG9uc2UuZnJvbV9kaWN0KHBvbGljeV9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/PolicyRule.md b/docs/PolicyRule.md index fd927741..fd856880 100644 --- a/docs/PolicyRule.md +++ b/docs/PolicyRule.md @@ -1,55 +1 @@ -# PolicyRule - -V2 Policy rule which is enforced on transactions - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | Name of the policy rule | -**id** | **str** | Unique identifier for the policy rule | -**policy_engine_version** | **str** | Policy engine version | -**type** | [**PolicyType**](PolicyType.md) | | -**sub_type** | [**PolicyType**](PolicyType.md) | | [optional] -**initiator** | [**InitiatorConfigPattern**](InitiatorConfigPattern.md) | | -**asset** | [**AssetConfig**](AssetConfig.md) | | [optional] -**source** | [**SourceConfig**](SourceConfig.md) | | -**destination** | [**DestinationConfig**](DestinationConfig.md) | | [optional] -**account** | [**AccountConfig**](AccountConfig.md) | | [optional] -**side** | [**OrderSide**](OrderSide.md) | | [optional] -**verdict** | [**VerdictConfig**](VerdictConfig.md) | | -**amount_over_time** | [**AmountOverTimeConfig**](AmountOverTimeConfig.md) | | [optional] -**amount** | [**AmountConfig**](AmountConfig.md) | | [optional] -**external_descriptor** | **str** | External descriptor for the rule | [optional] -**method** | [**ContractMethodPattern**](ContractMethodPattern.md) | | [optional] -**is_global_policy** | **bool** | Whether this is a global policy | [optional] -**program_call** | [**ProgramCallConfig**](ProgramCallConfig.md) | | [optional] -**screening_metadata** | [**ScreeningMetadataConfig**](ScreeningMetadataConfig.md) | | [optional] -**quote_asset** | [**AssetConfig**](AssetConfig.md) | | [optional] -**base_asset** | [**AssetConfig**](AssetConfig.md) | | [optional] -**quote_amount** | [**AmountRange**](AmountRange.md) | | [optional] -**base_amount** | [**AmountRange**](AmountRange.md) | | [optional] -**d_app_address** | [**DAppAddressConfig**](DAppAddressConfig.md) | | [optional] -**derivation_path** | [**DerivationPathConfig**](DerivationPathConfig.md) | | [optional] -**index** | **float** | Index for the policy rule | [optional] - -## Example - -```python -from fireblocks.models.policy_rule import PolicyRule - -# TODO update the JSON string below -json = "{}" -# create an instance of PolicyRule from a JSON string -policy_rule_instance = PolicyRule.from_json(json) -# print the JSON string representation of the object -print(PolicyRule.to_json()) - -# convert the object into a dict -policy_rule_dict = policy_rule_instance.to_dict() -# create an instance of PolicyRule from a dict -policy_rule_from_dict = PolicyRule.from_dict(policy_rule_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQb2xpY3lSdWxlCgpWMiBQb2xpY3kgcnVsZSB3aGljaCBpcyBlbmZvcmNlZCBvbiB0cmFuc2FjdGlvbnMKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipuYW1lKiogfCAqKnN0cioqIHwgTmFtZSBvZiB0aGUgcG9saWN5IHJ1bGUgfCAKKippZCoqIHwgKipzdHIqKiB8IFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcG9saWN5IHJ1bGUgfCAKKipwb2xpY3lfZW5naW5lX3ZlcnNpb24qKiB8ICoqc3RyKiogfCBQb2xpY3kgZW5naW5lIHZlcnNpb24gfCAKKip0eXBlKiogfCBbKipQb2xpY3lUeXBlKipdKFBvbGljeVR5cGUubWQpIHwgIHwgCioqc3ViX3R5cGUqKiB8IFsqKlBvbGljeVR5cGUqKl0oUG9saWN5VHlwZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmluaXRpYXRvcioqIHwgWyoqSW5pdGlhdG9yQ29uZmlnUGF0dGVybioqXShJbml0aWF0b3JDb25maWdQYXR0ZXJuLm1kKSB8ICB8IAoqKmFzc2V0KiogfCBbKipBc3NldENvbmZpZyoqXShBc3NldENvbmZpZy5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZSoqIHwgWyoqU291cmNlQ29uZmlnKipdKFNvdXJjZUNvbmZpZy5tZCkgfCAgfCAKKipkZXN0aW5hdGlvbioqIHwgWyoqRGVzdGluYXRpb25Db25maWcqKl0oRGVzdGluYXRpb25Db25maWcubWQpIHwgIHwgW29wdGlvbmFsXSAKKiphY2NvdW50KiogfCBbKipBY2NvdW50Q29uZmlnKipdKEFjY291bnRDb25maWcubWQpIHwgIHwgW29wdGlvbmFsXSAKKipzaWRlKiogfCBbKipPcmRlclNpZGUqKl0oT3JkZXJTaWRlLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqdmVyZGljdCoqIHwgWyoqVmVyZGljdENvbmZpZyoqXShWZXJkaWN0Q29uZmlnLm1kKSB8ICB8IAoqKmFtb3VudF9vdmVyX3RpbWUqKiB8IFsqKkFtb3VudE92ZXJUaW1lQ29uZmlnKipdKEFtb3VudE92ZXJUaW1lQ29uZmlnLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqYW1vdW50KiogfCBbKipBbW91bnRDb25maWcqKl0oQW1vdW50Q29uZmlnLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZXh0ZXJuYWxfZGVzY3JpcHRvcioqIHwgKipzdHIqKiB8IEV4dGVybmFsIGRlc2NyaXB0b3IgZm9yIHRoZSBydWxlIHwgW29wdGlvbmFsXSAKKiptZXRob2QqKiB8IFsqKkNvbnRyYWN0TWV0aG9kUGF0dGVybioqXShDb250cmFjdE1ldGhvZFBhdHRlcm4ubWQpIHwgIHwgW29wdGlvbmFsXSAKKippc19nbG9iYWxfcG9saWN5KiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgdGhpcyBpcyBhIGdsb2JhbCBwb2xpY3kgfCBbb3B0aW9uYWxdIAoqKnByb2dyYW1fY2FsbCoqIHwgWyoqUHJvZ3JhbUNhbGxDb25maWcqKl0oUHJvZ3JhbUNhbGxDb25maWcubWQpIHwgIHwgW29wdGlvbmFsXSAKKipzY3JlZW5pbmdfbWV0YWRhdGEqKiB8IFsqKlNjcmVlbmluZ01ldGFkYXRhQ29uZmlnKipdKFNjcmVlbmluZ01ldGFkYXRhQ29uZmlnLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqcXVvdGVfYXNzZXQqKiB8IFsqKkFzc2V0Q29uZmlnKipdKEFzc2V0Q29uZmlnLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqYmFzZV9hc3NldCoqIHwgWyoqQXNzZXRDb25maWcqKl0oQXNzZXRDb25maWcubWQpIHwgIHwgW29wdGlvbmFsXSAKKipxdW90ZV9hbW91bnQqKiB8IFsqKkFtb3VudFJhbmdlKipdKEFtb3VudFJhbmdlLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqYmFzZV9hbW91bnQqKiB8IFsqKkFtb3VudFJhbmdlKipdKEFtb3VudFJhbmdlLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZF9hcHBfYWRkcmVzcyoqIHwgWyoqREFwcEFkZHJlc3NDb25maWcqKl0oREFwcEFkZHJlc3NDb25maWcubWQpIHwgIHwgW29wdGlvbmFsXSAKKipkZXJpdmF0aW9uX3BhdGgqKiB8IFsqKkRlcml2YXRpb25QYXRoQ29uZmlnKipdKERlcml2YXRpb25QYXRoQ29uZmlnLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqaW5kZXgqKiB8ICoqZmxvYXQqKiB8IEluZGV4IGZvciB0aGUgcG9saWN5IHJ1bGUgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3J1bGUgaW1wb3J0IFBvbGljeVJ1bGUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBvbGljeVJ1bGUgZnJvbSBhIEpTT04gc3RyaW5nCnBvbGljeV9ydWxlX2luc3RhbmNlID0gUG9saWN5UnVsZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChQb2xpY3lSdWxlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnBvbGljeV9ydWxlX2RpY3QgPSBwb2xpY3lfcnVsZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUG9saWN5UnVsZSBmcm9tIGEgZGljdApwb2xpY3lfcnVsZV9mcm9tX2RpY3QgPSBQb2xpY3lSdWxlLmZyb21fZGljdChwb2xpY3lfcnVsZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/PolicyRuleCheckResult.md b/docs/PolicyRuleCheckResult.md index e9a3b2d0..af297f97 100644 --- a/docs/PolicyRuleCheckResult.md +++ b/docs/PolicyRuleCheckResult.md @@ -1,32 +1 @@ -# PolicyRuleCheckResult - -The rule validation result - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**index** | **float** | Rule index number in the policy | -**status** | **str** | Validation status | -**errors** | [**List[PolicyRuleError]**](PolicyRuleError.md) | A set of rule validation error objects | - -## Example - -```python -from fireblocks.models.policy_rule_check_result import PolicyRuleCheckResult - -# TODO update the JSON string below -json = "{}" -# create an instance of PolicyRuleCheckResult from a JSON string -policy_rule_check_result_instance = PolicyRuleCheckResult.from_json(json) -# print the JSON string representation of the object -print(PolicyRuleCheckResult.to_json()) - -# convert the object into a dict -policy_rule_check_result_dict = policy_rule_check_result_instance.to_dict() -# create an instance of PolicyRuleCheckResult from a dict -policy_rule_check_result_from_dict = PolicyRuleCheckResult.from_dict(policy_rule_check_result_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQb2xpY3lSdWxlQ2hlY2tSZXN1bHQKClRoZSBydWxlIHZhbGlkYXRpb24gcmVzdWx0CgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaW5kZXgqKiB8ICoqZmxvYXQqKiB8IFJ1bGUgaW5kZXggbnVtYmVyIGluIHRoZSBwb2xpY3kgfCAKKipzdGF0dXMqKiB8ICoqc3RyKiogfCBWYWxpZGF0aW9uIHN0YXR1cyB8IAoqKmVycm9ycyoqIHwgWyoqTGlzdFtQb2xpY3lSdWxlRXJyb3JdKipdKFBvbGljeVJ1bGVFcnJvci5tZCkgfCBBIHNldCBvZiBydWxlIHZhbGlkYXRpb24gZXJyb3Igb2JqZWN0cyB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3J1bGVfY2hlY2tfcmVzdWx0IGltcG9ydCBQb2xpY3lSdWxlQ2hlY2tSZXN1bHQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBvbGljeVJ1bGVDaGVja1Jlc3VsdCBmcm9tIGEgSlNPTiBzdHJpbmcKcG9saWN5X3J1bGVfY2hlY2tfcmVzdWx0X2luc3RhbmNlID0gUG9saWN5UnVsZUNoZWNrUmVzdWx0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFBvbGljeVJ1bGVDaGVja1Jlc3VsdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApwb2xpY3lfcnVsZV9jaGVja19yZXN1bHRfZGljdCA9IHBvbGljeV9ydWxlX2NoZWNrX3Jlc3VsdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUG9saWN5UnVsZUNoZWNrUmVzdWx0IGZyb20gYSBkaWN0CnBvbGljeV9ydWxlX2NoZWNrX3Jlc3VsdF9mcm9tX2RpY3QgPSBQb2xpY3lSdWxlQ2hlY2tSZXN1bHQuZnJvbV9kaWN0KHBvbGljeV9ydWxlX2NoZWNrX3Jlc3VsdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/PolicyRuleError.md b/docs/PolicyRuleError.md index 5d1eee16..47e9dfa2 100644 --- a/docs/PolicyRuleError.md +++ b/docs/PolicyRuleError.md @@ -1,33 +1 @@ -# PolicyRuleError - -Rule validation result error - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**error_message** | **str** | Error message | -**error_code** | **float** | error code | -**error_code_name** | **str** | error code name | -**error_field** | **str** | The field which the error relates to * operator - transaction initiator * operators - transaction initiators * authorizationGroups - transaction authorizer groups * designatedSigner - transaction signer * designatedSigners - transaction signers * contractMethods - contract methods * amountAggregation - transaction amount aggregation configuration * src - transaction source asset configuration * dst - transaction destination asset configuration | - -## Example - -```python -from fireblocks.models.policy_rule_error import PolicyRuleError - -# TODO update the JSON string below -json = "{}" -# create an instance of PolicyRuleError from a JSON string -policy_rule_error_instance = PolicyRuleError.from_json(json) -# print the JSON string representation of the object -print(PolicyRuleError.to_json()) - -# convert the object into a dict -policy_rule_error_dict = policy_rule_error_instance.to_dict() -# create an instance of PolicyRuleError from a dict -policy_rule_error_from_dict = PolicyRuleError.from_dict(policy_rule_error_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQb2xpY3lSdWxlRXJyb3IKClJ1bGUgdmFsaWRhdGlvbiByZXN1bHQgZXJyb3IKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiplcnJvcl9tZXNzYWdlKiogfCAqKnN0cioqIHwgRXJyb3IgbWVzc2FnZSB8IAoqKmVycm9yX2NvZGUqKiB8ICoqZmxvYXQqKiB8IGVycm9yIGNvZGUgfCAKKiplcnJvcl9jb2RlX25hbWUqKiB8ICoqc3RyKiogfCBlcnJvciBjb2RlIG5hbWUgfCAKKiplcnJvcl9maWVsZCoqIHwgKipzdHIqKiB8IFRoZSBmaWVsZCB3aGljaCB0aGUgZXJyb3IgcmVsYXRlcyB0byAqIG9wZXJhdG9yIC0gdHJhbnNhY3Rpb24gaW5pdGlhdG9yICogb3BlcmF0b3JzIC0gdHJhbnNhY3Rpb24gaW5pdGlhdG9ycyAqIGF1dGhvcml6YXRpb25Hcm91cHMgLSB0cmFuc2FjdGlvbiBhdXRob3JpemVyIGdyb3VwcyAqIGRlc2lnbmF0ZWRTaWduZXIgLSB0cmFuc2FjdGlvbiBzaWduZXIgKiBkZXNpZ25hdGVkU2lnbmVycyAtIHRyYW5zYWN0aW9uIHNpZ25lcnMgKiBjb250cmFjdE1ldGhvZHMgLSBjb250cmFjdCBtZXRob2RzICogYW1vdW50QWdncmVnYXRpb24gLSB0cmFuc2FjdGlvbiBhbW91bnQgYWdncmVnYXRpb24gY29uZmlndXJhdGlvbiAqIHNyYyAtIHRyYW5zYWN0aW9uIHNvdXJjZSBhc3NldCBjb25maWd1cmF0aW9uICogZHN0IC0gdHJhbnNhY3Rpb24gZGVzdGluYXRpb24gYXNzZXQgY29uZmlndXJhdGlvbiAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9ydWxlX2Vycm9yIGltcG9ydCBQb2xpY3lSdWxlRXJyb3IKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBvbGljeVJ1bGVFcnJvciBmcm9tIGEgSlNPTiBzdHJpbmcKcG9saWN5X3J1bGVfZXJyb3JfaW5zdGFuY2UgPSBQb2xpY3lSdWxlRXJyb3IuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUG9saWN5UnVsZUVycm9yLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnBvbGljeV9ydWxlX2Vycm9yX2RpY3QgPSBwb2xpY3lfcnVsZV9lcnJvcl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUG9saWN5UnVsZUVycm9yIGZyb20gYSBkaWN0CnBvbGljeV9ydWxlX2Vycm9yX2Zyb21fZGljdCA9IFBvbGljeVJ1bGVFcnJvci5mcm9tX2RpY3QocG9saWN5X3J1bGVfZXJyb3JfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PolicyStatus.md b/docs/PolicyStatus.md index 36295da9..8421ee99 100644 --- a/docs/PolicyStatus.md +++ b/docs/PolicyStatus.md @@ -1,23 +1 @@ -# PolicyStatus - -* SUCCESS - success * UNVALIDATED - not validated yet * INVALID_CONFIGURATION - at least one rule is invalid * PENDING - pending approval * PENDING_CONSOLE_APPROVAL - pending approval from the console app * AWAITING_QUORUM - pending quorum approval * UNHANDLED_ERROR - unhandled error - -## Enum - -* `SUCCESS` (value: `'SUCCESS'`) - -* `UNVALIDATED` (value: `'UNVALIDATED'`) - -* `INVALID_CONFIGURATION` (value: `'INVALID_CONFIGURATION'`) - -* `PENDING` (value: `'PENDING'`) - -* `PENDING_CONSOLE_APPROVAL` (value: `'PENDING_CONSOLE_APPROVAL'`) - -* `AWAITING_QUORUM` (value: `'AWAITING_QUORUM'`) - -* `UNHANDLED_ERROR` (value: `'UNHANDLED_ERROR'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQb2xpY3lTdGF0dXMKCiogU1VDQ0VTUyAtIHN1Y2Nlc3MgKiBVTlZBTElEQVRFRCAtIG5vdCB2YWxpZGF0ZWQgeWV0ICogSU5WQUxJRF9DT05GSUdVUkFUSU9OIC0gYXQgbGVhc3Qgb25lIHJ1bGUgaXMgaW52YWxpZCAqIFBFTkRJTkcgLSBwZW5kaW5nIGFwcHJvdmFsICogUEVORElOR19DT05TT0xFX0FQUFJPVkFMIC0gcGVuZGluZyBhcHByb3ZhbCBmcm9tIHRoZSBjb25zb2xlIGFwcCAqIEFXQUlUSU5HX1FVT1JVTSAtIHBlbmRpbmcgcXVvcnVtIGFwcHJvdmFsICogVU5IQU5ETEVEX0VSUk9SIC0gdW5oYW5kbGVkIGVycm9yIAoKIyMgRW51bQoKKiBgU1VDQ0VTU2AgKHZhbHVlOiBgJ1NVQ0NFU1MnYCkKCiogYFVOVkFMSURBVEVEYCAodmFsdWU6IGAnVU5WQUxJREFURUQnYCkKCiogYElOVkFMSURfQ09ORklHVVJBVElPTmAgKHZhbHVlOiBgJ0lOVkFMSURfQ09ORklHVVJBVElPTidgKQoKKiBgUEVORElOR2AgKHZhbHVlOiBgJ1BFTkRJTkcnYCkKCiogYFBFTkRJTkdfQ09OU09MRV9BUFBST1ZBTGAgKHZhbHVlOiBgJ1BFTkRJTkdfQ09OU09MRV9BUFBST1ZBTCdgKQoKKiBgQVdBSVRJTkdfUVVPUlVNYCAodmFsdWU6IGAnQVdBSVRJTkdfUVVPUlVNJ2ApCgoqIGBVTkhBTkRMRURfRVJST1JgICh2YWx1ZTogYCdVTkhBTkRMRURfRVJST1InYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PolicyTag.md b/docs/PolicyTag.md index 44f94bcf..52fa7057 100644 --- a/docs/PolicyTag.md +++ b/docs/PolicyTag.md @@ -1,30 +1 @@ -# PolicyTag - -Policy tag for matching - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | Tag identifier | - -## Example - -```python -from fireblocks.models.policy_tag import PolicyTag - -# TODO update the JSON string below -json = "{}" -# create an instance of PolicyTag from a JSON string -policy_tag_instance = PolicyTag.from_json(json) -# print the JSON string representation of the object -print(PolicyTag.to_json()) - -# convert the object into a dict -policy_tag_dict = policy_tag_instance.to_dict() -# create an instance of PolicyTag from a dict -policy_tag_from_dict = PolicyTag.from_dict(policy_tag_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQb2xpY3lUYWcKClBvbGljeSB0YWcgZm9yIG1hdGNoaW5nCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBUYWcgaWRlbnRpZmllciB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3RhZyBpbXBvcnQgUG9saWN5VGFnCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQb2xpY3lUYWcgZnJvbSBhIEpTT04gc3RyaW5nCnBvbGljeV90YWdfaW5zdGFuY2UgPSBQb2xpY3lUYWcuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUG9saWN5VGFnLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnBvbGljeV90YWdfZGljdCA9IHBvbGljeV90YWdfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBvbGljeVRhZyBmcm9tIGEgZGljdApwb2xpY3lfdGFnX2Zyb21fZGljdCA9IFBvbGljeVRhZy5mcm9tX2RpY3QocG9saWN5X3RhZ19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/PolicyType.md b/docs/PolicyType.md index 7db4ef54..9ac28d00 100644 --- a/docs/PolicyType.md +++ b/docs/PolicyType.md @@ -1,49 +1 @@ -# PolicyType - -Policy type enumeration - -## Enum - -* `TRANSFER` (value: `'TRANSFER'`) - -* `STAKE` (value: `'STAKE'`) - -* `CONTRACT_CALL` (value: `'CONTRACT_CALL'`) - -* `TYPED_MESSAGE` (value: `'TYPED_MESSAGE'`) - -* `APPROVE` (value: `'APPROVE'`) - -* `MINT` (value: `'MINT'`) - -* `BURN` (value: `'BURN'`) - -* `RAW` (value: `'RAW'`) - -* `COMPLIANCE` (value: `'COMPLIANCE'`) - -* `DEPLOYMENT` (value: `'DEPLOYMENT'`) - -* `PROGRAM_CALL` (value: `'PROGRAM_CALL'`) - -* `DAPP_CONNECTION` (value: `'DAPP_CONNECTION'`) - -* `UPGRADE` (value: `'UPGRADE'`) - -* `ORDER` (value: `'ORDER'`) - -* `AML_CHAINALYSIS_V2_SCREENING` (value: `'AML_CHAINALYSIS_V2_SCREENING'`) - -* `AML_CHAINALYSIS_V2_POST_SCREENING` (value: `'AML_CHAINALYSIS_V2_POST_SCREENING'`) - -* `AML_ELLIPTIC_HOLISTIC_SCREENING` (value: `'AML_ELLIPTIC_HOLISTIC_SCREENING'`) - -* `AML_ELLIPTIC_HOLISTIC_POST_SCREENING` (value: `'AML_ELLIPTIC_HOLISTIC_POST_SCREENING'`) - -* `TR_NOTABENE_SCREENING` (value: `'TR_NOTABENE_SCREENING'`) - -* `TR_NOTABENE_POST_SCREENING` (value: `'TR_NOTABENE_POST_SCREENING'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQb2xpY3lUeXBlCgpQb2xpY3kgdHlwZSBlbnVtZXJhdGlvbgoKIyMgRW51bQoKKiBgVFJBTlNGRVJgICh2YWx1ZTogYCdUUkFOU0ZFUidgKQoKKiBgU1RBS0VgICh2YWx1ZTogYCdTVEFLRSdgKQoKKiBgQ09OVFJBQ1RfQ0FMTGAgKHZhbHVlOiBgJ0NPTlRSQUNUX0NBTEwnYCkKCiogYFRZUEVEX01FU1NBR0VgICh2YWx1ZTogYCdUWVBFRF9NRVNTQUdFJ2ApCgoqIGBBUFBST1ZFYCAodmFsdWU6IGAnQVBQUk9WRSdgKQoKKiBgTUlOVGAgKHZhbHVlOiBgJ01JTlQnYCkKCiogYEJVUk5gICh2YWx1ZTogYCdCVVJOJ2ApCgoqIGBSQVdgICh2YWx1ZTogYCdSQVcnYCkKCiogYENPTVBMSUFOQ0VgICh2YWx1ZTogYCdDT01QTElBTkNFJ2ApCgoqIGBERVBMT1lNRU5UYCAodmFsdWU6IGAnREVQTE9ZTUVOVCdgKQoKKiBgUFJPR1JBTV9DQUxMYCAodmFsdWU6IGAnUFJPR1JBTV9DQUxMJ2ApCgoqIGBEQVBQX0NPTk5FQ1RJT05gICh2YWx1ZTogYCdEQVBQX0NPTk5FQ1RJT04nYCkKCiogYFVQR1JBREVgICh2YWx1ZTogYCdVUEdSQURFJ2ApCgoqIGBPUkRFUmAgKHZhbHVlOiBgJ09SREVSJ2ApCgoqIGBBTUxfQ0hBSU5BTFlTSVNfVjJfU0NSRUVOSU5HYCAodmFsdWU6IGAnQU1MX0NIQUlOQUxZU0lTX1YyX1NDUkVFTklORydgKQoKKiBgQU1MX0NIQUlOQUxZU0lTX1YyX1BPU1RfU0NSRUVOSU5HYCAodmFsdWU6IGAnQU1MX0NIQUlOQUxZU0lTX1YyX1BPU1RfU0NSRUVOSU5HJ2ApCgoqIGBBTUxfRUxMSVBUSUNfSE9MSVNUSUNfU0NSRUVOSU5HYCAodmFsdWU6IGAnQU1MX0VMTElQVElDX0hPTElTVElDX1NDUkVFTklORydgKQoKKiBgQU1MX0VMTElQVElDX0hPTElTVElDX1BPU1RfU0NSRUVOSU5HYCAodmFsdWU6IGAnQU1MX0VMTElQVElDX0hPTElTVElDX1BPU1RfU0NSRUVOSU5HJ2ApCgoqIGBUUl9OT1RBQkVORV9TQ1JFRU5JTkdgICh2YWx1ZTogYCdUUl9OT1RBQkVORV9TQ1JFRU5JTkcnYCkKCiogYFRSX05PVEFCRU5FX1BPU1RfU0NSRUVOSU5HYCAodmFsdWU6IGAnVFJfTk9UQUJFTkVfUE9TVF9TQ1JFRU5JTkcnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PolicyValidation.md b/docs/PolicyValidation.md index 260ddb3d..27f62ca4 100644 --- a/docs/PolicyValidation.md +++ b/docs/PolicyValidation.md @@ -1,31 +1 @@ -# PolicyValidation - -Policy validation object - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status** | **str** | Validation status | -**check_result** | [**PolicyCheckResult**](PolicyCheckResult.md) | | - -## Example - -```python -from fireblocks.models.policy_validation import PolicyValidation - -# TODO update the JSON string below -json = "{}" -# create an instance of PolicyValidation from a JSON string -policy_validation_instance = PolicyValidation.from_json(json) -# print the JSON string representation of the object -print(PolicyValidation.to_json()) - -# convert the object into a dict -policy_validation_dict = policy_validation_instance.to_dict() -# create an instance of PolicyValidation from a dict -policy_validation_from_dict = PolicyValidation.from_dict(policy_validation_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQb2xpY3lWYWxpZGF0aW9uCgpQb2xpY3kgdmFsaWRhdGlvbiBvYmplY3QKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzdGF0dXMqKiB8ICoqc3RyKiogfCBWYWxpZGF0aW9uIHN0YXR1cyB8IAoqKmNoZWNrX3Jlc3VsdCoqIHwgWyoqUG9saWN5Q2hlY2tSZXN1bHQqKl0oUG9saWN5Q2hlY2tSZXN1bHQubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfdmFsaWRhdGlvbiBpbXBvcnQgUG9saWN5VmFsaWRhdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUG9saWN5VmFsaWRhdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmcKcG9saWN5X3ZhbGlkYXRpb25faW5zdGFuY2UgPSBQb2xpY3lWYWxpZGF0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFBvbGljeVZhbGlkYXRpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcG9saWN5X3ZhbGlkYXRpb25fZGljdCA9IHBvbGljeV92YWxpZGF0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQb2xpY3lWYWxpZGF0aW9uIGZyb20gYSBkaWN0CnBvbGljeV92YWxpZGF0aW9uX2Zyb21fZGljdCA9IFBvbGljeVZhbGlkYXRpb24uZnJvbV9kaWN0KHBvbGljeV92YWxpZGF0aW9uX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/PolicyVerdictActionEnum.md b/docs/PolicyVerdictActionEnum.md index b14a73e8..5c351f16 100644 --- a/docs/PolicyVerdictActionEnum.md +++ b/docs/PolicyVerdictActionEnum.md @@ -1,29 +1 @@ -# PolicyVerdictActionEnum - -Policy verdict action - -## Enum - -* `ALLOW` (value: `'ALLOW'`) - -* `BLOCK` (value: `'BLOCK'`) - -* `ENUM_2_MINUS_TIER` (value: `'2-TIER'`) - -* `SCREEN` (value: `'SCREEN'`) - -* `ACCEPT` (value: `'ACCEPT'`) - -* `REJECT` (value: `'REJECT'`) - -* `ALERT` (value: `'ALERT'`) - -* `WAIT` (value: `'WAIT'`) - -* `FREEZE` (value: `'FREEZE'`) - -* `CANCEL` (value: `'CANCEL'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQb2xpY3lWZXJkaWN0QWN0aW9uRW51bQoKUG9saWN5IHZlcmRpY3QgYWN0aW9uCgojIyBFbnVtCgoqIGBBTExPV2AgKHZhbHVlOiBgJ0FMTE9XJ2ApCgoqIGBCTE9DS2AgKHZhbHVlOiBgJ0JMT0NLJ2ApCgoqIGBFTlVNXzJfTUlOVVNfVElFUmAgKHZhbHVlOiBgJzItVElFUidgKQoKKiBgU0NSRUVOYCAodmFsdWU6IGAnU0NSRUVOJ2ApCgoqIGBBQ0NFUFRgICh2YWx1ZTogYCdBQ0NFUFQnYCkKCiogYFJFSkVDVGAgKHZhbHVlOiBgJ1JFSkVDVCdgKQoKKiBgQUxFUlRgICh2YWx1ZTogYCdBTEVSVCdgKQoKKiBgV0FJVGAgKHZhbHVlOiBgJ1dBSVQnYCkKCiogYEZSRUVaRWAgKHZhbHVlOiBgJ0ZSRUVaRSdgKQoKKiBgQ0FOQ0VMYCAodmFsdWU6IGAnQ0FOQ0VMJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/PolicyVerdictActionEnum2.md b/docs/PolicyVerdictActionEnum2.md index 2234a3f3..cfd4fd85 100644 --- a/docs/PolicyVerdictActionEnum2.md +++ b/docs/PolicyVerdictActionEnum2.md @@ -1,27 +1 @@ -# PolicyVerdictActionEnum2 - -Policy verdict action - -## Enum - -* `ALLOW` (value: `'ALLOW'`) - -* `BLOCK` (value: `'BLOCK'`) - -* `SCREEN` (value: `'SCREEN'`) - -* `ACCEPT` (value: `'ACCEPT'`) - -* `REJECT` (value: `'REJECT'`) - -* `ALERT` (value: `'ALERT'`) - -* `WAIT` (value: `'WAIT'`) - -* `FREEZE` (value: `'FREEZE'`) - -* `CANCEL` (value: `'CANCEL'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQb2xpY3lWZXJkaWN0QWN0aW9uRW51bTIKClBvbGljeSB2ZXJkaWN0IGFjdGlvbgoKIyMgRW51bQoKKiBgQUxMT1dgICh2YWx1ZTogYCdBTExPVydgKQoKKiBgQkxPQ0tgICh2YWx1ZTogYCdCTE9DSydgKQoKKiBgU0NSRUVOYCAodmFsdWU6IGAnU0NSRUVOJ2ApCgoqIGBBQ0NFUFRgICh2YWx1ZTogYCdBQ0NFUFQnYCkKCiogYFJFSkVDVGAgKHZhbHVlOiBgJ1JFSkVDVCdgKQoKKiBgQUxFUlRgICh2YWx1ZTogYCdBTEVSVCdgKQoKKiBgV0FJVGAgKHZhbHVlOiBgJ1dBSVQnYCkKCiogYEZSRUVaRWAgKHZhbHVlOiBgJ0ZSRUVaRSdgKQoKKiBgQ0FOQ0VMYCAodmFsdWU6IGAnQ0FOQ0VMJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/Position.md b/docs/Position.md new file mode 100644 index 00000000..fe32e6ff --- /dev/null +++ b/docs/Position.md @@ -0,0 +1 @@ +IyBQb3NpdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgc3Rha2luZyBwb3NpdGlvbiB8IAoqKnZhdWx0X2FjY291bnRfaWQqKiB8ICoqc3RyKiogfCBUaGUgc291cmNlIHZhdWx0IGFjY291bnQgdG8gc3Rha2UgZnJvbSB8IAoqKnZhbGlkYXRvcl9uYW1lKiogfCAqKnN0cioqIHwgVGhlIGRlc3RpbmF0aW9uIHZhbGlkYXRvciBhZGRyZXNzIG5hbWUgfCAKKipwcm92aWRlcl9uYW1lKiogfCAqKnN0cioqIHwgVGhlIGRlc3RpbmF0aW9uIHZhbGlkYXRvciBwcm92aWRlciBuYW1lIHwgCioqY2hhaW5fZGVzY3JpcHRvcioqIHwgKipzdHIqKiB8IFRoZSBwcm90b2NvbCBpZGVudGlmaWVyIChlLmcuIFwmcXVvdDtFVEhcJnF1b3Q7LyBcJnF1b3Q7U09MXCZxdW90OykgdG8gdXNlIHwgCioqYW1vdW50KiogfCAqKnN0cioqIHwgVG90YWwgdmFsdWUgb2YgdGhlIHN0YWtpbmcgcG9zaXRpb24uIEZvciBTb2xhbmEsIExpZG8gYW5kIEV0aGVyZXVtIChjb21wb3VuZGluZyB2YWxpZGF0b3IpOiBpbmNsdWRlcyB0aGUgb3JpZ2luYWwgc3Rha2UgcGx1cyBhY2N1bXVsYXRlZCByZXdhcmRzLiBGb3IgTUFUSUMsIENvc21vcyBhbmQgRXRoZXJldW0gKGxlZ2FjeSB2YWxpZGF0b3IpOiByZWZlcnMgdG8gdGhlIGFtb3VudCBjdXJyZW50bHkgc3Rha2VkLiB8IAoqKnJld2FyZHNfYW1vdW50KiogfCAqKnN0cioqIHwgVGhlIGFtb3VudCBzdGFrZWQgaW4gdGhlIHBvc2l0aW9uLCBtZWFzdXJlZCBpbiB0aGUgc3Rha2VkIGFzc2V0IHVuaXQuIHwgCioqZGF0ZV9jcmVhdGVkKiogfCAqKmRhdGV0aW1lKiogfCBXaGVuIHdhcyB0aGUgcmVxdWVzdCBtYWRlIChJU08gRGF0ZSkuIHwgCioqZGF0ZV91cGRhdGVkKiogfCAqKmRhdGV0aW1lKiogfCBXaGVuIGhhcyB0aGUgcG9zaXRpb24gbGFzdCBjaGFuZ2VkIChJU08gRGF0ZSkuIHwgCioqc3RhdHVzKiogfCAqKnN0cioqIHwgVGhlIGN1cnJlbnQgc3RhdHVzLiB8IAoqKnZhbGlkYXRvcl9hZGRyZXNzKiogfCAqKnN0cioqIHwgVGhlIGRlc3RpbmF0aW9uIGFkZHJlc3Mgb2YgdGhlIHN0YWtpbmcgdHJhbnNhY3Rpb24uIHwgCioqcHJvdmlkZXJfaWQqKiB8IFsqKlN0YWtpbmdQcm92aWRlcioqXShTdGFraW5nUHJvdmlkZXIubWQpIHwgIHwgCioqYXZhaWxhYmxlX2FjdGlvbnMqKiB8ICoqTGlzdFtzdHJdKiogfCBBbiBhcnJheSBvZiBhdmFpbGFibGUgYWN0aW9ucyB0aGF0IGNhbiBiZSBwZXJmb3JtZWQuIGZvciBleGFtcGxlLCBhY3Rpb25zIGxpa2UgXCZxdW90O1VOU1RBS0VcJnF1b3Q7IG9yIFwmcXVvdDtXSVRIRFJBV1wmcXVvdDsuIHwgCioqaW5fcHJvZ3Jlc3MqKiB8ICoqYm9vbCoqIHwgSW5kaWNhdGVzIHdoZXRoZXIgdGhlcmUgaXMgYW4gb25nb2luZyBhY3Rpb24gZm9yIHRoaXMgcG9zaXRpb24gcmVsYXRlZCB0byB0aGlzIHJlcXVlc3QgfCAKKippbl9wcm9ncmVzc190eF9pZCoqIHwgKipzdHIqKiB8IFRoZSB0cmFuc2FjdGlvbiBJRCBvZiB0aGUgaW5pdGlhbCBzdGFrZSBwb3NpdGlvbiByZXF1ZXN0IG9ubHkuIE9ubHkgcHJlc2VudCB3aGVuIHRoZXJlIGlzIGFuIGFjdGl2ZSBpbml0aWFsIHN0YWtlIHRyYW5zYWN0aW9uLiB8IFtvcHRpb25hbF0gCioqYmxvY2tjaGFpbl9wb3NpdGlvbl9pbmZvKiogfCBbKipEZWxlZ2F0aW9uQmxvY2tjaGFpblBvc2l0aW9uSW5mbyoqXShEZWxlZ2F0aW9uQmxvY2tjaGFpblBvc2l0aW9uSW5mby5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvc2l0aW9uIGltcG9ydCBQb3NpdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUG9zaXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCnBvc2l0aW9uX2luc3RhbmNlID0gUG9zaXRpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUG9zaXRpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcG9zaXRpb25fZGljdCA9IHBvc2l0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQb3NpdGlvbiBmcm9tIGEgZGljdApwb3NpdGlvbl9mcm9tX2RpY3QgPSBQb3NpdGlvbi5mcm9tX2RpY3QocG9zaXRpb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PostalAddress.md b/docs/PostalAddress.md index 2763242d..f1444a00 100644 --- a/docs/PostalAddress.md +++ b/docs/PostalAddress.md @@ -1,35 +1 @@ -# PostalAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**street_name** | **str** | | -**building_number** | **str** | | -**postal_code** | **str** | | -**city** | **str** | | -**subdivision** | **str** | | -**district** | **str** | | -**country** | **str** | | - -## Example - -```python -from fireblocks.models.postal_address import PostalAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of PostalAddress from a JSON string -postal_address_instance = PostalAddress.from_json(json) -# print the JSON string representation of the object -print(PostalAddress.to_json()) - -# convert the object into a dict -postal_address_dict = postal_address_instance.to_dict() -# create an instance of PostalAddress from a dict -postal_address_from_dict = PostalAddress.from_dict(postal_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQb3N0YWxBZGRyZXNzCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnN0cmVldF9uYW1lKiogfCAqKnN0cioqIHwgIHwgCioqYnVpbGRpbmdfbnVtYmVyKiogfCAqKnN0cioqIHwgIHwgCioqcG9zdGFsX2NvZGUqKiB8ICoqc3RyKiogfCAgfCAKKipjaXR5KiogfCAqKnN0cioqIHwgIHwgCioqc3ViZGl2aXNpb24qKiB8ICoqc3RyKiogfCAgfCAKKipkaXN0cmljdCoqIHwgKipzdHIqKiB8ICB8IAoqKmNvdW50cnkqKiB8ICoqc3RyKiogfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvc3RhbF9hZGRyZXNzIGltcG9ydCBQb3N0YWxBZGRyZXNzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQb3N0YWxBZGRyZXNzIGZyb20gYSBKU09OIHN0cmluZwpwb3N0YWxfYWRkcmVzc19pbnN0YW5jZSA9IFBvc3RhbEFkZHJlc3MuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUG9zdGFsQWRkcmVzcy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApwb3N0YWxfYWRkcmVzc19kaWN0ID0gcG9zdGFsX2FkZHJlc3NfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFBvc3RhbEFkZHJlc3MgZnJvbSBhIGRpY3QKcG9zdGFsX2FkZHJlc3NfZnJvbV9kaWN0ID0gUG9zdGFsQWRkcmVzcy5mcm9tX2RpY3QocG9zdGFsX2FkZHJlc3NfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PreScreening.md b/docs/PreScreening.md index 4bf25e8c..97c52c5b 100644 --- a/docs/PreScreening.md +++ b/docs/PreScreening.md @@ -1,29 +1 @@ -# PreScreening - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**enabled** | **bool** | | - -## Example - -```python -from fireblocks.models.pre_screening import PreScreening - -# TODO update the JSON string below -json = "{}" -# create an instance of PreScreening from a JSON string -pre_screening_instance = PreScreening.from_json(json) -# print the JSON string representation of the object -print(PreScreening.to_json()) - -# convert the object into a dict -pre_screening_dict = pre_screening_instance.to_dict() -# create an instance of PreScreening from a dict -pre_screening_from_dict = PreScreening.from_dict(pre_screening_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQcmVTY3JlZW5pbmcKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZW5hYmxlZCoqIHwgKipib29sKiogfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnByZV9zY3JlZW5pbmcgaW1wb3J0IFByZVNjcmVlbmluZwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUHJlU2NyZWVuaW5nIGZyb20gYSBKU09OIHN0cmluZwpwcmVfc2NyZWVuaW5nX2luc3RhbmNlID0gUHJlU2NyZWVuaW5nLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFByZVNjcmVlbmluZy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApwcmVfc2NyZWVuaW5nX2RpY3QgPSBwcmVfc2NyZWVuaW5nX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQcmVTY3JlZW5pbmcgZnJvbSBhIGRpY3QKcHJlX3NjcmVlbmluZ19mcm9tX2RpY3QgPSBQcmVTY3JlZW5pbmcuZnJvbV9kaWN0KHByZV9zY3JlZW5pbmdfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PrefundedSettlement.md b/docs/PrefundedSettlement.md index 44fb1cf5..59237e8b 100644 --- a/docs/PrefundedSettlement.md +++ b/docs/PrefundedSettlement.md @@ -1,30 +1 @@ -# PrefundedSettlement - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**PrefundedSettlementType**](PrefundedSettlementType.md) | | -**destination_account** | [**AccountReference**](AccountReference.md) | | - -## Example - -```python -from fireblocks.models.prefunded_settlement import PrefundedSettlement - -# TODO update the JSON string below -json = "{}" -# create an instance of PrefundedSettlement from a JSON string -prefunded_settlement_instance = PrefundedSettlement.from_json(json) -# print the JSON string representation of the object -print(PrefundedSettlement.to_json()) - -# convert the object into a dict -prefunded_settlement_dict = prefunded_settlement_instance.to_dict() -# create an instance of PrefundedSettlement from a dict -prefunded_settlement_from_dict = PrefundedSettlement.from_dict(prefunded_settlement_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQcmVmdW5kZWRTZXR0bGVtZW50CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8IFsqKlByZWZ1bmRlZFNldHRsZW1lbnRUeXBlKipdKFByZWZ1bmRlZFNldHRsZW1lbnRUeXBlLm1kKSB8ICB8IAoqKmRlc3RpbmF0aW9uX2FjY291bnQqKiB8IFsqKkFjY291bnRSZWZlcmVuY2UqKl0oQWNjb3VudFJlZmVyZW5jZS5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnByZWZ1bmRlZF9zZXR0bGVtZW50IGltcG9ydCBQcmVmdW5kZWRTZXR0bGVtZW50CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQcmVmdW5kZWRTZXR0bGVtZW50IGZyb20gYSBKU09OIHN0cmluZwpwcmVmdW5kZWRfc2V0dGxlbWVudF9pbnN0YW5jZSA9IFByZWZ1bmRlZFNldHRsZW1lbnQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUHJlZnVuZGVkU2V0dGxlbWVudC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApwcmVmdW5kZWRfc2V0dGxlbWVudF9kaWN0ID0gcHJlZnVuZGVkX3NldHRsZW1lbnRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFByZWZ1bmRlZFNldHRsZW1lbnQgZnJvbSBhIGRpY3QKcHJlZnVuZGVkX3NldHRsZW1lbnRfZnJvbV9kaWN0ID0gUHJlZnVuZGVkU2V0dGxlbWVudC5mcm9tX2RpY3QocHJlZnVuZGVkX3NldHRsZW1lbnRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PrefundedSettlementType.md b/docs/PrefundedSettlementType.md index d173c2eb..0398691d 100644 --- a/docs/PrefundedSettlementType.md +++ b/docs/PrefundedSettlementType.md @@ -1,10 +1 @@ -# PrefundedSettlementType - - -## Enum - -* `PREFUNDED` (value: `'PREFUNDED'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQcmVmdW5kZWRTZXR0bGVtZW50VHlwZQoKCiMjIEVudW0KCiogYFBSRUZVTkRFRGAgKHZhbHVlOiBgJ1BSRUZVTkRFRCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ProgramCallConfig.md b/docs/ProgramCallConfig.md index 1044754c..a0feab19 100644 --- a/docs/ProgramCallConfig.md +++ b/docs/ProgramCallConfig.md @@ -1,30 +1 @@ -# ProgramCallConfig - -Program call configuration - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**allowed_solana_program_calls** | **str** | Whether Solana program calls are allowed | - -## Example - -```python -from fireblocks.models.program_call_config import ProgramCallConfig - -# TODO update the JSON string below -json = "{}" -# create an instance of ProgramCallConfig from a JSON string -program_call_config_instance = ProgramCallConfig.from_json(json) -# print the JSON string representation of the object -print(ProgramCallConfig.to_json()) - -# convert the object into a dict -program_call_config_dict = program_call_config_instance.to_dict() -# create an instance of ProgramCallConfig from a dict -program_call_config_from_dict = ProgramCallConfig.from_dict(program_call_config_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQcm9ncmFtQ2FsbENvbmZpZwoKUHJvZ3JhbSBjYWxsIGNvbmZpZ3VyYXRpb24KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphbGxvd2VkX3NvbGFuYV9wcm9ncmFtX2NhbGxzKiogfCAqKnN0cioqIHwgV2hldGhlciBTb2xhbmEgcHJvZ3JhbSBjYWxscyBhcmUgYWxsb3dlZCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucHJvZ3JhbV9jYWxsX2NvbmZpZyBpbXBvcnQgUHJvZ3JhbUNhbGxDb25maWcKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFByb2dyYW1DYWxsQ29uZmlnIGZyb20gYSBKU09OIHN0cmluZwpwcm9ncmFtX2NhbGxfY29uZmlnX2luc3RhbmNlID0gUHJvZ3JhbUNhbGxDb25maWcuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUHJvZ3JhbUNhbGxDb25maWcudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcHJvZ3JhbV9jYWxsX2NvbmZpZ19kaWN0ID0gcHJvZ3JhbV9jYWxsX2NvbmZpZ19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUHJvZ3JhbUNhbGxDb25maWcgZnJvbSBhIGRpY3QKcHJvZ3JhbV9jYWxsX2NvbmZpZ19mcm9tX2RpY3QgPSBQcm9ncmFtQ2FsbENvbmZpZy5mcm9tX2RpY3QocHJvZ3JhbV9jYWxsX2NvbmZpZ19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/Provider.md b/docs/Provider.md index a4034c07..a928a468 100644 --- a/docs/Provider.md +++ b/docs/Provider.md @@ -1,36 +1 @@ -# Provider - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The ID of the provider | -**provider_name** | **str** | Name of the provider | -**validators** | [**List[Validator]**](Validator.md) | An array of objects that includes chain descriptors and the corresponding fee percentages for validators supported by the provider | -**icon_url** | **str** | URL to the validator's icon | [optional] -**terms_of_service_url** | **str** | URL to the terms of service | [optional] -**is_terms_of_service_approved** | **bool** | Indicates whether the terms of service are approved | -**is_private** | **bool** | Is the provider private, i.e created by the user | [optional] -**is_liquid_staking** | **bool** | Is the provider a liquid staking provider | - -## Example - -```python -from fireblocks.models.provider import Provider - -# TODO update the JSON string below -json = "{}" -# create an instance of Provider from a JSON string -provider_instance = Provider.from_json(json) -# print the JSON string representation of the object -print(Provider.to_json()) - -# convert the object into a dict -provider_dict = provider_instance.to_dict() -# create an instance of Provider from a dict -provider_from_dict = Provider.from_dict(provider_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQcm92aWRlcgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgcHJvdmlkZXIgfCAKKipwcm92aWRlcl9uYW1lKiogfCAqKnN0cioqIHwgTmFtZSBvZiB0aGUgcHJvdmlkZXIgfCAKKip2YWxpZGF0b3JzKiogfCBbKipMaXN0W1ZhbGlkYXRvcl0qKl0oVmFsaWRhdG9yLm1kKSB8IEFuIGFycmF5IG9mIG9iamVjdHMgdGhhdCBpbmNsdWRlcyBjaGFpbiBkZXNjcmlwdG9ycyBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgZmVlIHBlcmNlbnRhZ2VzIGZvciB2YWxpZGF0b3JzIHN1cHBvcnRlZCBieSB0aGUgcHJvdmlkZXIgfCAKKippY29uX3VybCoqIHwgKipzdHIqKiB8IFVSTCB0byB0aGUgdmFsaWRhdG9yJiMzOTtzIGljb24gfCBbb3B0aW9uYWxdIAoqKnRlcm1zX29mX3NlcnZpY2VfdXJsKiogfCAqKnN0cioqIHwgVVJMIHRvIHRoZSB0ZXJtcyBvZiBzZXJ2aWNlIHwgW29wdGlvbmFsXSAKKippc190ZXJtc19vZl9zZXJ2aWNlX2FwcHJvdmVkKiogfCAqKmJvb2wqKiB8IEluZGljYXRlcyB3aGV0aGVyIHRoZSB0ZXJtcyBvZiBzZXJ2aWNlIGFyZSBhcHByb3ZlZCB8IAoqKmlzX3ByaXZhdGUqKiB8ICoqYm9vbCoqIHwgSXMgdGhlIHByb3ZpZGVyIHByaXZhdGUsIGkuZSBjcmVhdGVkIGJ5IHRoZSB1c2VyIHwgW29wdGlvbmFsXSAKKippc19saXF1aWRfc3Rha2luZyoqIHwgKipib29sKiogfCBJcyB0aGUgcHJvdmlkZXIgYSBsaXF1aWQgc3Rha2luZyBwcm92aWRlciB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucHJvdmlkZXIgaW1wb3J0IFByb3ZpZGVyCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQcm92aWRlciBmcm9tIGEgSlNPTiBzdHJpbmcKcHJvdmlkZXJfaW5zdGFuY2UgPSBQcm92aWRlci5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChQcm92aWRlci50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApwcm92aWRlcl9kaWN0ID0gcHJvdmlkZXJfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFByb3ZpZGVyIGZyb20gYSBkaWN0CnByb3ZpZGVyX2Zyb21fZGljdCA9IFByb3ZpZGVyLmZyb21fZGljdChwcm92aWRlcl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ProvidersListResponse.md b/docs/ProvidersListResponse.md index 01a33fd0..6beb63cc 100644 --- a/docs/ProvidersListResponse.md +++ b/docs/ProvidersListResponse.md @@ -1,31 +1 @@ -# ProvidersListResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[TradingProvider]**](TradingProvider.md) | List of available providers | -**total** | **int** | Total number of providers matching the query. | -**next** | **str** | A cursor for the next page of results, if available. | [optional] - -## Example - -```python -from fireblocks.models.providers_list_response import ProvidersListResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ProvidersListResponse from a JSON string -providers_list_response_instance = ProvidersListResponse.from_json(json) -# print the JSON string representation of the object -print(ProvidersListResponse.to_json()) - -# convert the object into a dict -providers_list_response_dict = providers_list_response_instance.to_dict() -# create an instance of ProvidersListResponse from a dict -providers_list_response_from_dict = ProvidersListResponse.from_dict(providers_list_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQcm92aWRlcnNMaXN0UmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZGF0YSoqIHwgWyoqTGlzdFtUcmFkaW5nUHJvdmlkZXJdKipdKFRyYWRpbmdQcm92aWRlci5tZCkgfCBMaXN0IG9mIGF2YWlsYWJsZSBwcm92aWRlcnMgfCAKKip0b3RhbCoqIHwgKippbnQqKiB8IFRvdGFsIG51bWJlciBvZiBwcm92aWRlcnMgbWF0Y2hpbmcgdGhlIHF1ZXJ5LiB8IAoqKm5leHQqKiB8ICoqc3RyKiogfCBBIGN1cnNvciBmb3IgdGhlIG5leHQgcGFnZSBvZiByZXN1bHRzLCBpZiBhdmFpbGFibGUuIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnByb3ZpZGVyc19saXN0X3Jlc3BvbnNlIGltcG9ydCBQcm92aWRlcnNMaXN0UmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFByb3ZpZGVyc0xpc3RSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKcHJvdmlkZXJzX2xpc3RfcmVzcG9uc2VfaW5zdGFuY2UgPSBQcm92aWRlcnNMaXN0UmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUHJvdmlkZXJzTGlzdFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnByb3ZpZGVyc19saXN0X3Jlc3BvbnNlX2RpY3QgPSBwcm92aWRlcnNfbGlzdF9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUHJvdmlkZXJzTGlzdFJlc3BvbnNlIGZyb20gYSBkaWN0CnByb3ZpZGVyc19saXN0X3Jlc3BvbnNlX2Zyb21fZGljdCA9IFByb3ZpZGVyc0xpc3RSZXNwb25zZS5mcm9tX2RpY3QocHJvdmlkZXJzX2xpc3RfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/PublicKeyInformation.md b/docs/PublicKeyInformation.md index 54188078..091dd8ac 100644 --- a/docs/PublicKeyInformation.md +++ b/docs/PublicKeyInformation.md @@ -1,31 +1 @@ -# PublicKeyInformation - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**algorithm** | **str** | Elliptic Curve | [optional] -**derivation_path** | **List[int]** | BIP44 derivation path | [optional] -**public_key** | **str** | Compressed/Uncompressed public key value in hex representation | [optional] - -## Example - -```python -from fireblocks.models.public_key_information import PublicKeyInformation - -# TODO update the JSON string below -json = "{}" -# create an instance of PublicKeyInformation from a JSON string -public_key_information_instance = PublicKeyInformation.from_json(json) -# print the JSON string representation of the object -print(PublicKeyInformation.to_json()) - -# convert the object into a dict -public_key_information_dict = public_key_information_instance.to_dict() -# create an instance of PublicKeyInformation from a dict -public_key_information_from_dict = PublicKeyInformation.from_dict(public_key_information_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQdWJsaWNLZXlJbmZvcm1hdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphbGdvcml0aG0qKiB8ICoqc3RyKiogfCBFbGxpcHRpYyBDdXJ2ZSB8IFtvcHRpb25hbF0gCioqZGVyaXZhdGlvbl9wYXRoKiogfCAqKkxpc3RbaW50XSoqIHwgQklQNDQgZGVyaXZhdGlvbiBwYXRoIHwgW29wdGlvbmFsXSAKKipwdWJsaWNfa2V5KiogfCAqKnN0cioqIHwgQ29tcHJlc3NlZC9VbmNvbXByZXNzZWQgcHVibGljIGtleSB2YWx1ZSBpbiBoZXggcmVwcmVzZW50YXRpb24gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucHVibGljX2tleV9pbmZvcm1hdGlvbiBpbXBvcnQgUHVibGljS2V5SW5mb3JtYXRpb24KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFB1YmxpY0tleUluZm9ybWF0aW9uIGZyb20gYSBKU09OIHN0cmluZwpwdWJsaWNfa2V5X2luZm9ybWF0aW9uX2luc3RhbmNlID0gUHVibGljS2V5SW5mb3JtYXRpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUHVibGljS2V5SW5mb3JtYXRpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcHVibGljX2tleV9pbmZvcm1hdGlvbl9kaWN0ID0gcHVibGljX2tleV9pbmZvcm1hdGlvbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUHVibGljS2V5SW5mb3JtYXRpb24gZnJvbSBhIGRpY3QKcHVibGljX2tleV9pbmZvcm1hdGlvbl9mcm9tX2RpY3QgPSBQdWJsaWNLZXlJbmZvcm1hdGlvbi5mcm9tX2RpY3QocHVibGljX2tleV9pbmZvcm1hdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/PublishDraftRequest.md b/docs/PublishDraftRequest.md index 3917ada4..3f83a5a2 100644 --- a/docs/PublishDraftRequest.md +++ b/docs/PublishDraftRequest.md @@ -1,31 +1 @@ -# PublishDraftRequest - -Request schema for publishing draft with policy types and draft ID - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**policy_types** | [**List[PolicyType]**](PolicyType.md) | | -**draft_id** | **str** | The ID of the draft to publish | - -## Example - -```python -from fireblocks.models.publish_draft_request import PublishDraftRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of PublishDraftRequest from a JSON string -publish_draft_request_instance = PublishDraftRequest.from_json(json) -# print the JSON string representation of the object -print(PublishDraftRequest.to_json()) - -# convert the object into a dict -publish_draft_request_dict = publish_draft_request_instance.to_dict() -# create an instance of PublishDraftRequest from a dict -publish_draft_request_from_dict = PublishDraftRequest.from_dict(publish_draft_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQdWJsaXNoRHJhZnRSZXF1ZXN0CgpSZXF1ZXN0IHNjaGVtYSBmb3IgcHVibGlzaGluZyBkcmFmdCB3aXRoIHBvbGljeSB0eXBlcyBhbmQgZHJhZnQgSUQKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipwb2xpY3lfdHlwZXMqKiB8IFsqKkxpc3RbUG9saWN5VHlwZV0qKl0oUG9saWN5VHlwZS5tZCkgfCAgfCAKKipkcmFmdF9pZCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgZHJhZnQgdG8gcHVibGlzaCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucHVibGlzaF9kcmFmdF9yZXF1ZXN0IGltcG9ydCBQdWJsaXNoRHJhZnRSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQdWJsaXNoRHJhZnRSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpwdWJsaXNoX2RyYWZ0X3JlcXVlc3RfaW5zdGFuY2UgPSBQdWJsaXNoRHJhZnRSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFB1Ymxpc2hEcmFmdFJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcHVibGlzaF9kcmFmdF9yZXF1ZXN0X2RpY3QgPSBwdWJsaXNoX2RyYWZ0X3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFB1Ymxpc2hEcmFmdFJlcXVlc3QgZnJvbSBhIGRpY3QKcHVibGlzaF9kcmFmdF9yZXF1ZXN0X2Zyb21fZGljdCA9IFB1Ymxpc2hEcmFmdFJlcXVlc3QuZnJvbV9kaWN0KHB1Ymxpc2hfZHJhZnRfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/PublishResult.md b/docs/PublishResult.md index 38a79853..37059a64 100644 --- a/docs/PublishResult.md +++ b/docs/PublishResult.md @@ -1,33 +1 @@ -# PublishResult - -Response object of the publish policy operation - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status** | [**PolicyStatus**](PolicyStatus.md) | | -**rules** | [**List[PolicyRule]**](PolicyRule.md) | | -**check_result** | [**PolicyCheckResult**](PolicyCheckResult.md) | | -**metadata** | [**PolicyMetadata**](PolicyMetadata.md) | | - -## Example - -```python -from fireblocks.models.publish_result import PublishResult - -# TODO update the JSON string below -json = "{}" -# create an instance of PublishResult from a JSON string -publish_result_instance = PublishResult.from_json(json) -# print the JSON string representation of the object -print(PublishResult.to_json()) - -# convert the object into a dict -publish_result_dict = publish_result_instance.to_dict() -# create an instance of PublishResult from a dict -publish_result_from_dict = PublishResult.from_dict(publish_result_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBQdWJsaXNoUmVzdWx0CgpSZXNwb25zZSBvYmplY3Qgb2YgdGhlIHB1Ymxpc2ggcG9saWN5IG9wZXJhdGlvbgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnN0YXR1cyoqIHwgWyoqUG9saWN5U3RhdHVzKipdKFBvbGljeVN0YXR1cy5tZCkgfCAgfCAKKipydWxlcyoqIHwgWyoqTGlzdFtQb2xpY3lSdWxlXSoqXShQb2xpY3lSdWxlLm1kKSB8ICB8IAoqKmNoZWNrX3Jlc3VsdCoqIHwgWyoqUG9saWN5Q2hlY2tSZXN1bHQqKl0oUG9saWN5Q2hlY2tSZXN1bHQubWQpIHwgIHwgCioqbWV0YWRhdGEqKiB8IFsqKlBvbGljeU1ldGFkYXRhKipdKFBvbGljeU1ldGFkYXRhLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucHVibGlzaF9yZXN1bHQgaW1wb3J0IFB1Ymxpc2hSZXN1bHQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFB1Ymxpc2hSZXN1bHQgZnJvbSBhIEpTT04gc3RyaW5nCnB1Ymxpc2hfcmVzdWx0X2luc3RhbmNlID0gUHVibGlzaFJlc3VsdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChQdWJsaXNoUmVzdWx0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnB1Ymxpc2hfcmVzdWx0X2RpY3QgPSBwdWJsaXNoX3Jlc3VsdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUHVibGlzaFJlc3VsdCBmcm9tIGEgZGljdApwdWJsaXNoX3Jlc3VsdF9mcm9tX2RpY3QgPSBQdWJsaXNoUmVzdWx0LmZyb21fZGljdChwdWJsaXNoX3Jlc3VsdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/Quote.md b/docs/Quote.md index 2fa8ef6c..d8eba1e4 100644 --- a/docs/Quote.md +++ b/docs/Quote.md @@ -1,41 +1 @@ -# Quote - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**via** | [**AccessType**](AccessType.md) | | -**id** | **str** | | -**quote_asset_id** | **str** | | -**base_asset_id** | **str** | | -**base_amount** | **str** | | -**quote_amount** | **str** | | -**price_impact** | **float** | | [optional] -**quote_min_amount** | **str** | | [optional] -**execution_steps** | [**List[QuoteExecutionStep]**](QuoteExecutionStep.md) | | [optional] -**general_fees** | [**List[Fee]**](Fee.md) | | [optional] -**side** | [**Side**](Side.md) | | -**expires_at** | **str** | The expiration time of the quote in ISO format. | -**type** | [**IndicativeQuoteEnum**](IndicativeQuoteEnum.md) | | - -## Example - -```python -from fireblocks.models.quote import Quote - -# TODO update the JSON string below -json = "{}" -# create an instance of Quote from a JSON string -quote_instance = Quote.from_json(json) -# print the JSON string representation of the object -print(Quote.to_json()) - -# convert the object into a dict -quote_dict = quote_instance.to_dict() -# create an instance of Quote from a dict -quote_from_dict = Quote.from_dict(quote_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBRdW90ZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip2aWEqKiB8IFsqKkFjY2Vzc1R5cGUqKl0oQWNjZXNzVHlwZS5tZCkgfCAgfCAKKippZCoqIHwgKipzdHIqKiB8ICB8IAoqKnF1b3RlX2Fzc2V0X2lkKiogfCAqKnN0cioqIHwgIHwgCioqYmFzZV9hc3NldF9pZCoqIHwgKipzdHIqKiB8ICB8IAoqKmJhc2VfYW1vdW50KiogfCAqKnN0cioqIHwgIHwgCioqcXVvdGVfYW1vdW50KiogfCAqKnN0cioqIHwgIHwgCioqcHJpY2VfaW1wYWN0KiogfCAqKmZsb2F0KiogfCAgfCBbb3B0aW9uYWxdIAoqKnF1b3RlX21pbl9hbW91bnQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmV4ZWN1dGlvbl9zdGVwcyoqIHwgWyoqTGlzdFtRdW90ZUV4ZWN1dGlvblN0ZXBdKipdKFF1b3RlRXhlY3V0aW9uU3RlcC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmdlbmVyYWxfZmVlcyoqIHwgWyoqTGlzdFtGZWVdKipdKEZlZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnNpZGUqKiB8IFsqKlNpZGUqKl0oU2lkZS5tZCkgfCAgfCAKKipleHBpcmVzX2F0KiogfCAqKnN0cioqIHwgVGhlIGV4cGlyYXRpb24gdGltZSBvZiB0aGUgcXVvdGUgaW4gSVNPIGZvcm1hdC4gfCAKKip0eXBlKiogfCBbKipJbmRpY2F0aXZlUXVvdGVFbnVtKipdKEluZGljYXRpdmVRdW90ZUVudW0ubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5xdW90ZSBpbXBvcnQgUXVvdGUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFF1b3RlIGZyb20gYSBKU09OIHN0cmluZwpxdW90ZV9pbnN0YW5jZSA9IFF1b3RlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFF1b3RlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnF1b3RlX2RpY3QgPSBxdW90ZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUXVvdGUgZnJvbSBhIGRpY3QKcXVvdGVfZnJvbV9kaWN0ID0gUXVvdGUuZnJvbV9kaWN0KHF1b3RlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/QuoteExecutionRequestDetails.md b/docs/QuoteExecutionRequestDetails.md index 72f5cc5d..2ed614eb 100644 --- a/docs/QuoteExecutionRequestDetails.md +++ b/docs/QuoteExecutionRequestDetails.md @@ -1,30 +1 @@ -# QuoteExecutionRequestDetails - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**QuoteTypeEnum**](QuoteTypeEnum.md) | | -**quote_id** | **str** | Quote ID for quote orders | - -## Example - -```python -from fireblocks.models.quote_execution_request_details import QuoteExecutionRequestDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of QuoteExecutionRequestDetails from a JSON string -quote_execution_request_details_instance = QuoteExecutionRequestDetails.from_json(json) -# print the JSON string representation of the object -print(QuoteExecutionRequestDetails.to_json()) - -# convert the object into a dict -quote_execution_request_details_dict = quote_execution_request_details_instance.to_dict() -# create an instance of QuoteExecutionRequestDetails from a dict -quote_execution_request_details_from_dict = QuoteExecutionRequestDetails.from_dict(quote_execution_request_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBRdW90ZUV4ZWN1dGlvblJlcXVlc3REZXRhaWxzCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8IFsqKlF1b3RlVHlwZUVudW0qKl0oUXVvdGVUeXBlRW51bS5tZCkgfCAgfCAKKipxdW90ZV9pZCoqIHwgKipzdHIqKiB8IFF1b3RlIElEIGZvciBxdW90ZSBvcmRlcnMgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnF1b3RlX2V4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHMgaW1wb3J0IFF1b3RlRXhlY3V0aW9uUmVxdWVzdERldGFpbHMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFF1b3RlRXhlY3V0aW9uUmVxdWVzdERldGFpbHMgZnJvbSBhIEpTT04gc3RyaW5nCnF1b3RlX2V4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHNfaW5zdGFuY2UgPSBRdW90ZUV4ZWN1dGlvblJlcXVlc3REZXRhaWxzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFF1b3RlRXhlY3V0aW9uUmVxdWVzdERldGFpbHMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcXVvdGVfZXhlY3V0aW9uX3JlcXVlc3RfZGV0YWlsc19kaWN0ID0gcXVvdGVfZXhlY3V0aW9uX3JlcXVlc3RfZGV0YWlsc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUXVvdGVFeGVjdXRpb25SZXF1ZXN0RGV0YWlscyBmcm9tIGEgZGljdApxdW90ZV9leGVjdXRpb25fcmVxdWVzdF9kZXRhaWxzX2Zyb21fZGljdCA9IFF1b3RlRXhlY3V0aW9uUmVxdWVzdERldGFpbHMuZnJvbV9kaWN0KHF1b3RlX2V4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/QuoteExecutionStep.md b/docs/QuoteExecutionStep.md index d39be636..b71ff53e 100644 --- a/docs/QuoteExecutionStep.md +++ b/docs/QuoteExecutionStep.md @@ -1,30 +1 @@ -# QuoteExecutionStep - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**ExecutionStepType**](ExecutionStepType.md) | | -**fee** | [**Fee**](Fee.md) | | [optional] - -## Example - -```python -from fireblocks.models.quote_execution_step import QuoteExecutionStep - -# TODO update the JSON string below -json = "{}" -# create an instance of QuoteExecutionStep from a JSON string -quote_execution_step_instance = QuoteExecutionStep.from_json(json) -# print the JSON string representation of the object -print(QuoteExecutionStep.to_json()) - -# convert the object into a dict -quote_execution_step_dict = quote_execution_step_instance.to_dict() -# create an instance of QuoteExecutionStep from a dict -quote_execution_step_from_dict = QuoteExecutionStep.from_dict(quote_execution_step_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBRdW90ZUV4ZWN1dGlvblN0ZXAKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgWyoqRXhlY3V0aW9uU3RlcFR5cGUqKl0oRXhlY3V0aW9uU3RlcFR5cGUubWQpIHwgIHwgCioqZmVlKiogfCBbKipGZWUqKl0oRmVlLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5xdW90ZV9leGVjdXRpb25fc3RlcCBpbXBvcnQgUXVvdGVFeGVjdXRpb25TdGVwCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBRdW90ZUV4ZWN1dGlvblN0ZXAgZnJvbSBhIEpTT04gc3RyaW5nCnF1b3RlX2V4ZWN1dGlvbl9zdGVwX2luc3RhbmNlID0gUXVvdGVFeGVjdXRpb25TdGVwLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFF1b3RlRXhlY3V0aW9uU3RlcC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApxdW90ZV9leGVjdXRpb25fc3RlcF9kaWN0ID0gcXVvdGVfZXhlY3V0aW9uX3N0ZXBfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFF1b3RlRXhlY3V0aW9uU3RlcCBmcm9tIGEgZGljdApxdW90ZV9leGVjdXRpb25fc3RlcF9mcm9tX2RpY3QgPSBRdW90ZUV4ZWN1dGlvblN0ZXAuZnJvbV9kaWN0KHF1b3RlX2V4ZWN1dGlvbl9zdGVwX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/QuoteExecutionTypeDetails.md b/docs/QuoteExecutionTypeDetails.md index 417db5b1..a83391d2 100644 --- a/docs/QuoteExecutionTypeDetails.md +++ b/docs/QuoteExecutionTypeDetails.md @@ -1,31 +1 @@ -# QuoteExecutionTypeDetails - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**QuoteTypeEnum**](QuoteTypeEnum.md) | | -**quote_id** | **str** | Quote ID for quote orders | -**quote_amount** | **str** | Quote amount for quote orders | - -## Example - -```python -from fireblocks.models.quote_execution_type_details import QuoteExecutionTypeDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of QuoteExecutionTypeDetails from a JSON string -quote_execution_type_details_instance = QuoteExecutionTypeDetails.from_json(json) -# print the JSON string representation of the object -print(QuoteExecutionTypeDetails.to_json()) - -# convert the object into a dict -quote_execution_type_details_dict = quote_execution_type_details_instance.to_dict() -# create an instance of QuoteExecutionTypeDetails from a dict -quote_execution_type_details_from_dict = QuoteExecutionTypeDetails.from_dict(quote_execution_type_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBRdW90ZUV4ZWN1dGlvblR5cGVEZXRhaWxzCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8IFsqKlF1b3RlVHlwZUVudW0qKl0oUXVvdGVUeXBlRW51bS5tZCkgfCAgfCAKKipxdW90ZV9pZCoqIHwgKipzdHIqKiB8IFF1b3RlIElEIGZvciBxdW90ZSBvcmRlcnMgfCAKKipxdW90ZV9hbW91bnQqKiB8ICoqc3RyKiogfCBRdW90ZSBhbW91bnQgZm9yIHF1b3RlIG9yZGVycyB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucXVvdGVfZXhlY3V0aW9uX3R5cGVfZGV0YWlscyBpbXBvcnQgUXVvdGVFeGVjdXRpb25UeXBlRGV0YWlscwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUXVvdGVFeGVjdXRpb25UeXBlRGV0YWlscyBmcm9tIGEgSlNPTiBzdHJpbmcKcXVvdGVfZXhlY3V0aW9uX3R5cGVfZGV0YWlsc19pbnN0YW5jZSA9IFF1b3RlRXhlY3V0aW9uVHlwZURldGFpbHMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUXVvdGVFeGVjdXRpb25UeXBlRGV0YWlscy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApxdW90ZV9leGVjdXRpb25fdHlwZV9kZXRhaWxzX2RpY3QgPSBxdW90ZV9leGVjdXRpb25fdHlwZV9kZXRhaWxzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBRdW90ZUV4ZWN1dGlvblR5cGVEZXRhaWxzIGZyb20gYSBkaWN0CnF1b3RlX2V4ZWN1dGlvbl90eXBlX2RldGFpbHNfZnJvbV9kaWN0ID0gUXVvdGVFeGVjdXRpb25UeXBlRGV0YWlscy5mcm9tX2RpY3QocXVvdGVfZXhlY3V0aW9uX3R5cGVfZGV0YWlsc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/QuoteExecutionWithRequoteRequestDetails.md b/docs/QuoteExecutionWithRequoteRequestDetails.md index 02419f37..41387942 100644 --- a/docs/QuoteExecutionWithRequoteRequestDetails.md +++ b/docs/QuoteExecutionWithRequoteRequestDetails.md @@ -1,31 +1 @@ -# QuoteExecutionWithRequoteRequestDetails - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**QuoteTypeEnum**](QuoteTypeEnum.md) | | -**quote_id** | **str** | Quote ID for quote orders | -**re_quote** | [**ReQuoteDetailsReQuote**](ReQuoteDetailsReQuote.md) | | [optional] - -## Example - -```python -from fireblocks.models.quote_execution_with_requote_request_details import QuoteExecutionWithRequoteRequestDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of QuoteExecutionWithRequoteRequestDetails from a JSON string -quote_execution_with_requote_request_details_instance = QuoteExecutionWithRequoteRequestDetails.from_json(json) -# print the JSON string representation of the object -print(QuoteExecutionWithRequoteRequestDetails.to_json()) - -# convert the object into a dict -quote_execution_with_requote_request_details_dict = quote_execution_with_requote_request_details_instance.to_dict() -# create an instance of QuoteExecutionWithRequoteRequestDetails from a dict -quote_execution_with_requote_request_details_from_dict = QuoteExecutionWithRequoteRequestDetails.from_dict(quote_execution_with_requote_request_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVxdWVzdERldGFpbHMKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgWyoqUXVvdGVUeXBlRW51bSoqXShRdW90ZVR5cGVFbnVtLm1kKSB8ICB8IAoqKnF1b3RlX2lkKiogfCAqKnN0cioqIHwgUXVvdGUgSUQgZm9yIHF1b3RlIG9yZGVycyB8IAoqKnJlX3F1b3RlKiogfCBbKipSZVF1b3RlRGV0YWlsc1JlUXVvdGUqKl0oUmVRdW90ZURldGFpbHNSZVF1b3RlLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5xdW90ZV9leGVjdXRpb25fd2l0aF9yZXF1b3RlX3JlcXVlc3RfZGV0YWlscyBpbXBvcnQgUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlcXVlc3REZXRhaWxzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVxdWVzdERldGFpbHMgZnJvbSBhIEpTT04gc3RyaW5nCnF1b3RlX2V4ZWN1dGlvbl93aXRoX3JlcXVvdGVfcmVxdWVzdF9kZXRhaWxzX2luc3RhbmNlID0gUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlcXVlc3REZXRhaWxzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFF1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXF1ZXN0RGV0YWlscy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApxdW90ZV9leGVjdXRpb25fd2l0aF9yZXF1b3RlX3JlcXVlc3RfZGV0YWlsc19kaWN0ID0gcXVvdGVfZXhlY3V0aW9uX3dpdGhfcmVxdW90ZV9yZXF1ZXN0X2RldGFpbHNfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFF1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXF1ZXN0RGV0YWlscyBmcm9tIGEgZGljdApxdW90ZV9leGVjdXRpb25fd2l0aF9yZXF1b3RlX3JlcXVlc3RfZGV0YWlsc19mcm9tX2RpY3QgPSBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVxdWVzdERldGFpbHMuZnJvbV9kaWN0KHF1b3RlX2V4ZWN1dGlvbl93aXRoX3JlcXVvdGVfcmVxdWVzdF9kZXRhaWxzX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/QuoteExecutionWithRequoteResponseDetails.md b/docs/QuoteExecutionWithRequoteResponseDetails.md index 58cd0944..b6de1736 100644 --- a/docs/QuoteExecutionWithRequoteResponseDetails.md +++ b/docs/QuoteExecutionWithRequoteResponseDetails.md @@ -1,38 +1 @@ -# QuoteExecutionWithRequoteResponseDetails - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**QuoteTypeEnum**](QuoteTypeEnum.md) | | -**quote_id** | **str** | Quote ID for quote orders | -**quote_amount** | **str** | Quote amount for quote orders | -**side** | [**Side**](Side.md) | | -**base_amount** | **str** | Amount to convert | -**base_asset_id** | **str** | Source asset identifier | -**base_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional] -**quote_asset_id** | **str** | Target asset identifier | -**quote_asset_rail** | [**TransferRail**](TransferRail.md) | | [optional] -**re_quote** | [**ReQuoteDetailsReQuote**](ReQuoteDetailsReQuote.md) | | [optional] - -## Example - -```python -from fireblocks.models.quote_execution_with_requote_response_details import QuoteExecutionWithRequoteResponseDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of QuoteExecutionWithRequoteResponseDetails from a JSON string -quote_execution_with_requote_response_details_instance = QuoteExecutionWithRequoteResponseDetails.from_json(json) -# print the JSON string representation of the object -print(QuoteExecutionWithRequoteResponseDetails.to_json()) - -# convert the object into a dict -quote_execution_with_requote_response_details_dict = quote_execution_with_requote_response_details_instance.to_dict() -# create an instance of QuoteExecutionWithRequoteResponseDetails from a dict -quote_execution_with_requote_response_details_from_dict = QuoteExecutionWithRequoteResponseDetails.from_dict(quote_execution_with_requote_response_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVzcG9uc2VEZXRhaWxzCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8IFsqKlF1b3RlVHlwZUVudW0qKl0oUXVvdGVUeXBlRW51bS5tZCkgfCAgfCAKKipxdW90ZV9pZCoqIHwgKipzdHIqKiB8IFF1b3RlIElEIGZvciBxdW90ZSBvcmRlcnMgfCAKKipxdW90ZV9hbW91bnQqKiB8ICoqc3RyKiogfCBRdW90ZSBhbW91bnQgZm9yIHF1b3RlIG9yZGVycyB8IAoqKnNpZGUqKiB8IFsqKlNpZGUqKl0oU2lkZS5tZCkgfCAgfCAKKipiYXNlX2Ftb3VudCoqIHwgKipzdHIqKiB8IEFtb3VudCB0byBjb252ZXJ0IHwgCioqYmFzZV9hc3NldF9pZCoqIHwgKipzdHIqKiB8IFNvdXJjZSBhc3NldCBpZGVudGlmaWVyIHwgCioqYmFzZV9hc3NldF9yYWlsKiogfCBbKipUcmFuc2ZlclJhaWwqKl0oVHJhbnNmZXJSYWlsLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqcXVvdGVfYXNzZXRfaWQqKiB8ICoqc3RyKiogfCBUYXJnZXQgYXNzZXQgaWRlbnRpZmllciB8IAoqKnF1b3RlX2Fzc2V0X3JhaWwqKiB8IFsqKlRyYW5zZmVyUmFpbCoqXShUcmFuc2ZlclJhaWwubWQpIHwgIHwgW29wdGlvbmFsXSAKKipyZV9xdW90ZSoqIHwgWyoqUmVRdW90ZURldGFpbHNSZVF1b3RlKipdKFJlUXVvdGVEZXRhaWxzUmVRdW90ZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucXVvdGVfZXhlY3V0aW9uX3dpdGhfcmVxdW90ZV9yZXNwb25zZV9kZXRhaWxzIGltcG9ydCBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVzcG9uc2VEZXRhaWxzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVzcG9uc2VEZXRhaWxzIGZyb20gYSBKU09OIHN0cmluZwpxdW90ZV9leGVjdXRpb25fd2l0aF9yZXF1b3RlX3Jlc3BvbnNlX2RldGFpbHNfaW5zdGFuY2UgPSBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVzcG9uc2VEZXRhaWxzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFF1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXNwb25zZURldGFpbHMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcXVvdGVfZXhlY3V0aW9uX3dpdGhfcmVxdW90ZV9yZXNwb25zZV9kZXRhaWxzX2RpY3QgPSBxdW90ZV9leGVjdXRpb25fd2l0aF9yZXF1b3RlX3Jlc3BvbnNlX2RldGFpbHNfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFF1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXNwb25zZURldGFpbHMgZnJvbSBhIGRpY3QKcXVvdGVfZXhlY3V0aW9uX3dpdGhfcmVxdW90ZV9yZXNwb25zZV9kZXRhaWxzX2Zyb21fZGljdCA9IFF1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXNwb25zZURldGFpbHMuZnJvbV9kaWN0KHF1b3RlX2V4ZWN1dGlvbl93aXRoX3JlcXVvdGVfcmVzcG9uc2VfZGV0YWlsc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/QuoteFailure.md b/docs/QuoteFailure.md index 6f8cb18c..e583e6d3 100644 --- a/docs/QuoteFailure.md +++ b/docs/QuoteFailure.md @@ -1,31 +1 @@ -# QuoteFailure - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**provider_id** | **str** | Identifier of the provider for which the quote request failed. | -**account_id** | **str** | Identifier of the account for which the quote request failed (optional). | [optional] -**error** | [**TradingErrorSchema**](TradingErrorSchema.md) | | - -## Example - -```python -from fireblocks.models.quote_failure import QuoteFailure - -# TODO update the JSON string below -json = "{}" -# create an instance of QuoteFailure from a JSON string -quote_failure_instance = QuoteFailure.from_json(json) -# print the JSON string representation of the object -print(QuoteFailure.to_json()) - -# convert the object into a dict -quote_failure_dict = quote_failure_instance.to_dict() -# create an instance of QuoteFailure from a dict -quote_failure_from_dict = QuoteFailure.from_dict(quote_failure_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBRdW90ZUZhaWx1cmUKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcHJvdmlkZXJfaWQqKiB8ICoqc3RyKiogfCBJZGVudGlmaWVyIG9mIHRoZSBwcm92aWRlciBmb3Igd2hpY2ggdGhlIHF1b3RlIHJlcXVlc3QgZmFpbGVkLiB8IAoqKmFjY291bnRfaWQqKiB8ICoqc3RyKiogfCBJZGVudGlmaWVyIG9mIHRoZSBhY2NvdW50IGZvciB3aGljaCB0aGUgcXVvdGUgcmVxdWVzdCBmYWlsZWQgKG9wdGlvbmFsKS4gfCBbb3B0aW9uYWxdIAoqKmVycm9yKiogfCBbKipUcmFkaW5nRXJyb3JTY2hlbWEqKl0oVHJhZGluZ0Vycm9yU2NoZW1hLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucXVvdGVfZmFpbHVyZSBpbXBvcnQgUXVvdGVGYWlsdXJlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBRdW90ZUZhaWx1cmUgZnJvbSBhIEpTT04gc3RyaW5nCnF1b3RlX2ZhaWx1cmVfaW5zdGFuY2UgPSBRdW90ZUZhaWx1cmUuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUXVvdGVGYWlsdXJlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnF1b3RlX2ZhaWx1cmVfZGljdCA9IHF1b3RlX2ZhaWx1cmVfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFF1b3RlRmFpbHVyZSBmcm9tIGEgZGljdApxdW90ZV9mYWlsdXJlX2Zyb21fZGljdCA9IFF1b3RlRmFpbHVyZS5mcm9tX2RpY3QocXVvdGVfZmFpbHVyZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/QuotePropertiesDetails.md b/docs/QuotePropertiesDetails.md index b5452849..dcea387a 100644 --- a/docs/QuotePropertiesDetails.md +++ b/docs/QuotePropertiesDetails.md @@ -1,40 +1 @@ -# QuotePropertiesDetails - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**via** | [**AccessType**](AccessType.md) | | -**id** | **str** | | -**quote_asset_id** | **str** | | -**base_asset_id** | **str** | | -**base_amount** | **str** | | -**quote_amount** | **str** | | -**price_impact** | **float** | | [optional] -**quote_min_amount** | **str** | | [optional] -**execution_steps** | [**List[QuoteExecutionStep]**](QuoteExecutionStep.md) | | [optional] -**general_fees** | [**List[Fee]**](Fee.md) | | [optional] -**side** | [**Side**](Side.md) | | -**expires_at** | **str** | The expiration time of the quote in ISO format. | - -## Example - -```python -from fireblocks.models.quote_properties_details import QuotePropertiesDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of QuotePropertiesDetails from a JSON string -quote_properties_details_instance = QuotePropertiesDetails.from_json(json) -# print the JSON string representation of the object -print(QuotePropertiesDetails.to_json()) - -# convert the object into a dict -quote_properties_details_dict = quote_properties_details_instance.to_dict() -# create an instance of QuotePropertiesDetails from a dict -quote_properties_details_from_dict = QuotePropertiesDetails.from_dict(quote_properties_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBRdW90ZVByb3BlcnRpZXNEZXRhaWxzCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnZpYSoqIHwgWyoqQWNjZXNzVHlwZSoqXShBY2Nlc3NUeXBlLm1kKSB8ICB8IAoqKmlkKiogfCAqKnN0cioqIHwgIHwgCioqcXVvdGVfYXNzZXRfaWQqKiB8ICoqc3RyKiogfCAgfCAKKipiYXNlX2Fzc2V0X2lkKiogfCAqKnN0cioqIHwgIHwgCioqYmFzZV9hbW91bnQqKiB8ICoqc3RyKiogfCAgfCAKKipxdW90ZV9hbW91bnQqKiB8ICoqc3RyKiogfCAgfCAKKipwcmljZV9pbXBhY3QqKiB8ICoqZmxvYXQqKiB8ICB8IFtvcHRpb25hbF0gCioqcXVvdGVfbWluX2Ftb3VudCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqZXhlY3V0aW9uX3N0ZXBzKiogfCBbKipMaXN0W1F1b3RlRXhlY3V0aW9uU3RlcF0qKl0oUXVvdGVFeGVjdXRpb25TdGVwLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZ2VuZXJhbF9mZWVzKiogfCBbKipMaXN0W0ZlZV0qKl0oRmVlLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc2lkZSoqIHwgWyoqU2lkZSoqXShTaWRlLm1kKSB8ICB8IAoqKmV4cGlyZXNfYXQqKiB8ICoqc3RyKiogfCBUaGUgZXhwaXJhdGlvbiB0aW1lIG9mIHRoZSBxdW90ZSBpbiBJU08gZm9ybWF0LiB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucXVvdGVfcHJvcGVydGllc19kZXRhaWxzIGltcG9ydCBRdW90ZVByb3BlcnRpZXNEZXRhaWxzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBRdW90ZVByb3BlcnRpZXNEZXRhaWxzIGZyb20gYSBKU09OIHN0cmluZwpxdW90ZV9wcm9wZXJ0aWVzX2RldGFpbHNfaW5zdGFuY2UgPSBRdW90ZVByb3BlcnRpZXNEZXRhaWxzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFF1b3RlUHJvcGVydGllc0RldGFpbHMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcXVvdGVfcHJvcGVydGllc19kZXRhaWxzX2RpY3QgPSBxdW90ZV9wcm9wZXJ0aWVzX2RldGFpbHNfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFF1b3RlUHJvcGVydGllc0RldGFpbHMgZnJvbSBhIGRpY3QKcXVvdGVfcHJvcGVydGllc19kZXRhaWxzX2Zyb21fZGljdCA9IFF1b3RlUHJvcGVydGllc0RldGFpbHMuZnJvbV9kaWN0KHF1b3RlX3Byb3BlcnRpZXNfZGV0YWlsc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/QuoteTypeEnum.md b/docs/QuoteTypeEnum.md index a926c86a..024d7e97 100644 --- a/docs/QuoteTypeEnum.md +++ b/docs/QuoteTypeEnum.md @@ -1,11 +1 @@ -# QuoteTypeEnum - -Order type for quote orders - -## Enum - -* `QUOTE` (value: `'QUOTE'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBRdW90ZVR5cGVFbnVtCgpPcmRlciB0eXBlIGZvciBxdW90ZSBvcmRlcnMKCiMjIEVudW0KCiogYFFVT1RFYCAodmFsdWU6IGAnUVVPVEUnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/QuotesResponse.md b/docs/QuotesResponse.md index 30acd49a..ff2e8cea 100644 --- a/docs/QuotesResponse.md +++ b/docs/QuotesResponse.md @@ -1,30 +1 @@ -# QuotesResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**quotes** | [**List[Quote]**](Quote.md) | | -**quote_failures** | [**List[QuoteFailure]**](QuoteFailure.md) | List of partial failures encountered while requesting quotes. Empty when all quote attempts succeed. | - -## Example - -```python -from fireblocks.models.quotes_response import QuotesResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of QuotesResponse from a JSON string -quotes_response_instance = QuotesResponse.from_json(json) -# print the JSON string representation of the object -print(QuotesResponse.to_json()) - -# convert the object into a dict -quotes_response_dict = quotes_response_instance.to_dict() -# create an instance of QuotesResponse from a dict -quotes_response_from_dict = QuotesResponse.from_dict(quotes_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBRdW90ZXNSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipxdW90ZXMqKiB8IFsqKkxpc3RbUXVvdGVdKipdKFF1b3RlLm1kKSB8ICB8IAoqKnF1b3RlX2ZhaWx1cmVzKiogfCBbKipMaXN0W1F1b3RlRmFpbHVyZV0qKl0oUXVvdGVGYWlsdXJlLm1kKSB8IExpc3Qgb2YgcGFydGlhbCBmYWlsdXJlcyBlbmNvdW50ZXJlZCB3aGlsZSByZXF1ZXN0aW5nIHF1b3Rlcy4gRW1wdHkgd2hlbiBhbGwgcXVvdGUgYXR0ZW1wdHMgc3VjY2VlZC4gfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnF1b3Rlc19yZXNwb25zZSBpbXBvcnQgUXVvdGVzUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFF1b3Rlc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpxdW90ZXNfcmVzcG9uc2VfaW5zdGFuY2UgPSBRdW90ZXNSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChRdW90ZXNSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApxdW90ZXNfcmVzcG9uc2VfZGljdCA9IHF1b3Rlc19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUXVvdGVzUmVzcG9uc2UgZnJvbSBhIGRpY3QKcXVvdGVzX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFF1b3Rlc1Jlc3BvbnNlLmZyb21fZGljdChxdW90ZXNfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ReQuoteDetails.md b/docs/ReQuoteDetails.md index ab834584..a6cd3df2 100644 --- a/docs/ReQuoteDetails.md +++ b/docs/ReQuoteDetails.md @@ -1,29 +1 @@ -# ReQuoteDetails - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**re_quote** | [**ReQuoteDetailsReQuote**](ReQuoteDetailsReQuote.md) | | [optional] - -## Example - -```python -from fireblocks.models.re_quote_details import ReQuoteDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of ReQuoteDetails from a JSON string -re_quote_details_instance = ReQuoteDetails.from_json(json) -# print the JSON string representation of the object -print(ReQuoteDetails.to_json()) - -# convert the object into a dict -re_quote_details_dict = re_quote_details_instance.to_dict() -# create an instance of ReQuoteDetails from a dict -re_quote_details_from_dict = ReQuoteDetails.from_dict(re_quote_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZVF1b3RlRGV0YWlscwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipyZV9xdW90ZSoqIHwgWyoqUmVRdW90ZURldGFpbHNSZVF1b3RlKipdKFJlUXVvdGVEZXRhaWxzUmVRdW90ZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVfcXVvdGVfZGV0YWlscyBpbXBvcnQgUmVRdW90ZURldGFpbHMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlUXVvdGVEZXRhaWxzIGZyb20gYSBKU09OIHN0cmluZwpyZV9xdW90ZV9kZXRhaWxzX2luc3RhbmNlID0gUmVRdW90ZURldGFpbHMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUmVRdW90ZURldGFpbHMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcmVfcXVvdGVfZGV0YWlsc19kaWN0ID0gcmVfcXVvdGVfZGV0YWlsc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVRdW90ZURldGFpbHMgZnJvbSBhIGRpY3QKcmVfcXVvdGVfZGV0YWlsc19mcm9tX2RpY3QgPSBSZVF1b3RlRGV0YWlscy5mcm9tX2RpY3QocmVfcXVvdGVfZGV0YWlsc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ReQuoteDetailsReQuote.md b/docs/ReQuoteDetailsReQuote.md index f2a9213c..072124ea 100644 --- a/docs/ReQuoteDetailsReQuote.md +++ b/docs/ReQuoteDetailsReQuote.md @@ -1,31 +1 @@ -# ReQuoteDetailsReQuote - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**RetryRequoteTypeEnum**](RetryRequoteTypeEnum.md) | | -**count** | **int** | If quote is expired, how many times to re-generate new quotes to try having the order executed as in the original quote. | -**slippage_bps** | **int** | Slippage tolerance in basis points (bps) for quote orders - 1 is 0.01% and 10000 is 100% | [optional] - -## Example - -```python -from fireblocks.models.re_quote_details_re_quote import ReQuoteDetailsReQuote - -# TODO update the JSON string below -json = "{}" -# create an instance of ReQuoteDetailsReQuote from a JSON string -re_quote_details_re_quote_instance = ReQuoteDetailsReQuote.from_json(json) -# print the JSON string representation of the object -print(ReQuoteDetailsReQuote.to_json()) - -# convert the object into a dict -re_quote_details_re_quote_dict = re_quote_details_re_quote_instance.to_dict() -# create an instance of ReQuoteDetailsReQuote from a dict -re_quote_details_re_quote_from_dict = ReQuoteDetailsReQuote.from_dict(re_quote_details_re_quote_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZVF1b3RlRGV0YWlsc1JlUXVvdGUKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgWyoqUmV0cnlSZXF1b3RlVHlwZUVudW0qKl0oUmV0cnlSZXF1b3RlVHlwZUVudW0ubWQpIHwgIHwgCioqY291bnQqKiB8ICoqaW50KiogfCBJZiBxdW90ZSBpcyBleHBpcmVkLCBob3cgbWFueSB0aW1lcyB0byByZS1nZW5lcmF0ZSBuZXcgcXVvdGVzIHRvIHRyeSBoYXZpbmcgdGhlIG9yZGVyIGV4ZWN1dGVkIGFzIGluIHRoZSBvcmlnaW5hbCBxdW90ZS4gfCAKKipzbGlwcGFnZV9icHMqKiB8ICoqaW50KiogfCBTbGlwcGFnZSB0b2xlcmFuY2UgaW4gYmFzaXMgcG9pbnRzIChicHMpIGZvciBxdW90ZSBvcmRlcnMgLSAxIGlzIDAuMDElIGFuZCAxMDAwMCBpcyAxMDAlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlX3F1b3RlX2RldGFpbHNfcmVfcXVvdGUgaW1wb3J0IFJlUXVvdGVEZXRhaWxzUmVRdW90ZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVRdW90ZURldGFpbHNSZVF1b3RlIGZyb20gYSBKU09OIHN0cmluZwpyZV9xdW90ZV9kZXRhaWxzX3JlX3F1b3RlX2luc3RhbmNlID0gUmVRdW90ZURldGFpbHNSZVF1b3RlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFJlUXVvdGVEZXRhaWxzUmVRdW90ZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApyZV9xdW90ZV9kZXRhaWxzX3JlX3F1b3RlX2RpY3QgPSByZV9xdW90ZV9kZXRhaWxzX3JlX3F1b3RlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZVF1b3RlRGV0YWlsc1JlUXVvdGUgZnJvbSBhIGRpY3QKcmVfcXVvdGVfZGV0YWlsc19yZV9xdW90ZV9mcm9tX2RpY3QgPSBSZVF1b3RlRGV0YWlsc1JlUXVvdGUuZnJvbV9kaWN0KHJlX3F1b3RlX2RldGFpbHNfcmVfcXVvdGVfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ReadAbiFunction.md b/docs/ReadAbiFunction.md index 4218f789..ea4569f0 100644 --- a/docs/ReadAbiFunction.md +++ b/docs/ReadAbiFunction.md @@ -1,34 +1 @@ -# ReadAbiFunction - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**state_mutability** | **str** | | -**outputs** | [**List[Parameter]**](Parameter.md) | | [optional] -**name** | **str** | | [optional] -**type** | **str** | | -**inputs** | [**List[ParameterWithValue]**](ParameterWithValue.md) | | -**description** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.read_abi_function import ReadAbiFunction - -# TODO update the JSON string below -json = "{}" -# create an instance of ReadAbiFunction from a JSON string -read_abi_function_instance = ReadAbiFunction.from_json(json) -# print the JSON string representation of the object -print(ReadAbiFunction.to_json()) - -# convert the object into a dict -read_abi_function_dict = read_abi_function_instance.to_dict() -# create an instance of ReadAbiFunction from a dict -read_abi_function_from_dict = ReadAbiFunction.from_dict(read_abi_function_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZWFkQWJpRnVuY3Rpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3RhdGVfbXV0YWJpbGl0eSoqIHwgKipzdHIqKiB8ICB8IAoqKm91dHB1dHMqKiB8IFsqKkxpc3RbUGFyYW1ldGVyXSoqXShQYXJhbWV0ZXIubWQpIHwgIHwgW29wdGlvbmFsXSAKKipuYW1lKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKip0eXBlKiogfCAqKnN0cioqIHwgIHwgCioqaW5wdXRzKiogfCBbKipMaXN0W1BhcmFtZXRlcldpdGhWYWx1ZV0qKl0oUGFyYW1ldGVyV2l0aFZhbHVlLm1kKSB8ICB8IAoqKmRlc2NyaXB0aW9uKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlYWRfYWJpX2Z1bmN0aW9uIGltcG9ydCBSZWFkQWJpRnVuY3Rpb24KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlYWRBYmlGdW5jdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmcKcmVhZF9hYmlfZnVuY3Rpb25faW5zdGFuY2UgPSBSZWFkQWJpRnVuY3Rpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUmVhZEFiaUZ1bmN0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnJlYWRfYWJpX2Z1bmN0aW9uX2RpY3QgPSByZWFkX2FiaV9mdW5jdGlvbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVhZEFiaUZ1bmN0aW9uIGZyb20gYSBkaWN0CnJlYWRfYWJpX2Z1bmN0aW9uX2Zyb21fZGljdCA9IFJlYWRBYmlGdW5jdGlvbi5mcm9tX2RpY3QocmVhZF9hYmlfZnVuY3Rpb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ReadCallFunctionDto.md b/docs/ReadCallFunctionDto.md index cd46ba0a..eedc7eed 100644 --- a/docs/ReadCallFunctionDto.md +++ b/docs/ReadCallFunctionDto.md @@ -1,29 +1 @@ -# ReadCallFunctionDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**abi_function** | [**ReadCallFunctionDtoAbiFunction**](ReadCallFunctionDtoAbiFunction.md) | | - -## Example - -```python -from fireblocks.models.read_call_function_dto import ReadCallFunctionDto - -# TODO update the JSON string below -json = "{}" -# create an instance of ReadCallFunctionDto from a JSON string -read_call_function_dto_instance = ReadCallFunctionDto.from_json(json) -# print the JSON string representation of the object -print(ReadCallFunctionDto.to_json()) - -# convert the object into a dict -read_call_function_dto_dict = read_call_function_dto_instance.to_dict() -# create an instance of ReadCallFunctionDto from a dict -read_call_function_dto_from_dict = ReadCallFunctionDto.from_dict(read_call_function_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZWFkQ2FsbEZ1bmN0aW9uRHRvCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFiaV9mdW5jdGlvbioqIHwgWyoqUmVhZENhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uKipdKFJlYWRDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbi5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlYWRfY2FsbF9mdW5jdGlvbl9kdG8gaW1wb3J0IFJlYWRDYWxsRnVuY3Rpb25EdG8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlYWRDYWxsRnVuY3Rpb25EdG8gZnJvbSBhIEpTT04gc3RyaW5nCnJlYWRfY2FsbF9mdW5jdGlvbl9kdG9faW5zdGFuY2UgPSBSZWFkQ2FsbEZ1bmN0aW9uRHRvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFJlYWRDYWxsRnVuY3Rpb25EdG8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcmVhZF9jYWxsX2Z1bmN0aW9uX2R0b19kaWN0ID0gcmVhZF9jYWxsX2Z1bmN0aW9uX2R0b19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVhZENhbGxGdW5jdGlvbkR0byBmcm9tIGEgZGljdApyZWFkX2NhbGxfZnVuY3Rpb25fZHRvX2Zyb21fZGljdCA9IFJlYWRDYWxsRnVuY3Rpb25EdG8uZnJvbV9kaWN0KHJlYWRfY2FsbF9mdW5jdGlvbl9kdG9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ReadCallFunctionDtoAbiFunction.md b/docs/ReadCallFunctionDtoAbiFunction.md index 055d2caf..26812b02 100644 --- a/docs/ReadCallFunctionDtoAbiFunction.md +++ b/docs/ReadCallFunctionDtoAbiFunction.md @@ -1,37 +1 @@ -# ReadCallFunctionDtoAbiFunction - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**state_mutability** | **str** | | -**outputs** | [**List[Parameter]**](Parameter.md) | | [optional] -**name** | **str** | The name of the instruction | -**type** | **str** | | -**inputs** | [**List[ParameterWithValue]**](ParameterWithValue.md) | | -**description** | **str** | | [optional] -**discriminator** | **List[float]** | The discriminator for the instruction. Acts as a function selector | -**accounts** | [**List[SOLAccountWithValue]**](SOLAccountWithValue.md) | | -**args** | [**List[SolParameterWithValue]**](SolParameterWithValue.md) | The arguments of the instruction | - -## Example - -```python -from fireblocks.models.read_call_function_dto_abi_function import ReadCallFunctionDtoAbiFunction - -# TODO update the JSON string below -json = "{}" -# create an instance of ReadCallFunctionDtoAbiFunction from a JSON string -read_call_function_dto_abi_function_instance = ReadCallFunctionDtoAbiFunction.from_json(json) -# print the JSON string representation of the object -print(ReadCallFunctionDtoAbiFunction.to_json()) - -# convert the object into a dict -read_call_function_dto_abi_function_dict = read_call_function_dto_abi_function_instance.to_dict() -# create an instance of ReadCallFunctionDtoAbiFunction from a dict -read_call_function_dto_abi_function_from_dict = ReadCallFunctionDtoAbiFunction.from_dict(read_call_function_dto_abi_function_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZWFkQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3RhdGVfbXV0YWJpbGl0eSoqIHwgKipzdHIqKiB8ICB8IAoqKm91dHB1dHMqKiB8IFsqKkxpc3RbUGFyYW1ldGVyXSoqXShQYXJhbWV0ZXIubWQpIHwgIHwgW29wdGlvbmFsXSAKKipuYW1lKiogfCAqKnN0cioqIHwgVGhlIG5hbWUgb2YgdGhlIGluc3RydWN0aW9uIHwgCioqdHlwZSoqIHwgKipzdHIqKiB8ICB8IAoqKmlucHV0cyoqIHwgWyoqTGlzdFtQYXJhbWV0ZXJXaXRoVmFsdWVdKipdKFBhcmFtZXRlcldpdGhWYWx1ZS5tZCkgfCAgfCAKKipkZXNjcmlwdGlvbioqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqZGlzY3JpbWluYXRvcioqIHwgKipMaXN0W2Zsb2F0XSoqIHwgVGhlIGRpc2NyaW1pbmF0b3IgZm9yIHRoZSBpbnN0cnVjdGlvbi4gQWN0cyBhcyBhIGZ1bmN0aW9uIHNlbGVjdG9yIHwgCioqYWNjb3VudHMqKiB8IFsqKkxpc3RbU09MQWNjb3VudFdpdGhWYWx1ZV0qKl0oU09MQWNjb3VudFdpdGhWYWx1ZS5tZCkgfCAgfCAKKiphcmdzKiogfCBbKipMaXN0W1NvbFBhcmFtZXRlcldpdGhWYWx1ZV0qKl0oU29sUGFyYW1ldGVyV2l0aFZhbHVlLm1kKSB8IFRoZSBhcmd1bWVudHMgb2YgdGhlIGluc3RydWN0aW9uIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZWFkX2NhbGxfZnVuY3Rpb25fZHRvX2FiaV9mdW5jdGlvbiBpbXBvcnQgUmVhZENhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZWFkQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb24gZnJvbSBhIEpTT04gc3RyaW5nCnJlYWRfY2FsbF9mdW5jdGlvbl9kdG9fYWJpX2Z1bmN0aW9uX2luc3RhbmNlID0gUmVhZENhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFJlYWRDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApyZWFkX2NhbGxfZnVuY3Rpb25fZHRvX2FiaV9mdW5jdGlvbl9kaWN0ID0gcmVhZF9jYWxsX2Z1bmN0aW9uX2R0b19hYmlfZnVuY3Rpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlYWRDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbiBmcm9tIGEgZGljdApyZWFkX2NhbGxfZnVuY3Rpb25fZHRvX2FiaV9mdW5jdGlvbl9mcm9tX2RpY3QgPSBSZWFkQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb24uZnJvbV9kaWN0KHJlYWRfY2FsbF9mdW5jdGlvbl9kdG9fYWJpX2Z1bmN0aW9uX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/RecipientHandle.md b/docs/RecipientHandle.md index 3629eea4..e9ce5ae5 100644 --- a/docs/RecipientHandle.md +++ b/docs/RecipientHandle.md @@ -1,30 +1 @@ -# RecipientHandle - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | -**value** | **str** | The value of the recipient handle | - -## Example - -```python -from fireblocks.models.recipient_handle import RecipientHandle - -# TODO update the JSON string below -json = "{}" -# create an instance of RecipientHandle from a JSON string -recipient_handle_instance = RecipientHandle.from_json(json) -# print the JSON string representation of the object -print(RecipientHandle.to_json()) - -# convert the object into a dict -recipient_handle_dict = recipient_handle_instance.to_dict() -# create an instance of RecipientHandle from a dict -recipient_handle_from_dict = RecipientHandle.from_dict(recipient_handle_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZWNpcGllbnRIYW5kbGUKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgKipzdHIqKiB8ICB8IAoqKnZhbHVlKiogfCAqKnN0cioqIHwgVGhlIHZhbHVlIG9mIHRoZSByZWNpcGllbnQgaGFuZGxlIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZWNpcGllbnRfaGFuZGxlIGltcG9ydCBSZWNpcGllbnRIYW5kbGUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlY2lwaWVudEhhbmRsZSBmcm9tIGEgSlNPTiBzdHJpbmcKcmVjaXBpZW50X2hhbmRsZV9pbnN0YW5jZSA9IFJlY2lwaWVudEhhbmRsZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChSZWNpcGllbnRIYW5kbGUudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcmVjaXBpZW50X2hhbmRsZV9kaWN0ID0gcmVjaXBpZW50X2hhbmRsZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVjaXBpZW50SGFuZGxlIGZyb20gYSBkaWN0CnJlY2lwaWVudF9oYW5kbGVfZnJvbV9kaWN0ID0gUmVjaXBpZW50SGFuZGxlLmZyb21fZGljdChyZWNpcGllbnRfaGFuZGxlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/RedeemFundsToLinkedDDAResponse.md b/docs/RedeemFundsToLinkedDDAResponse.md index d3db15f1..4b6bd2f5 100644 --- a/docs/RedeemFundsToLinkedDDAResponse.md +++ b/docs/RedeemFundsToLinkedDDAResponse.md @@ -1,29 +1 @@ -# RedeemFundsToLinkedDDAResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**success** | **bool** | Indicates whether the funds were successfully redeemed to the linked DDA | - -## Example - -```python -from fireblocks.models.redeem_funds_to_linked_dda_response import RedeemFundsToLinkedDDAResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of RedeemFundsToLinkedDDAResponse from a JSON string -redeem_funds_to_linked_dda_response_instance = RedeemFundsToLinkedDDAResponse.from_json(json) -# print the JSON string representation of the object -print(RedeemFundsToLinkedDDAResponse.to_json()) - -# convert the object into a dict -redeem_funds_to_linked_dda_response_dict = redeem_funds_to_linked_dda_response_instance.to_dict() -# create an instance of RedeemFundsToLinkedDDAResponse from a dict -redeem_funds_to_linked_dda_response_from_dict = RedeemFundsToLinkedDDAResponse.from_dict(redeem_funds_to_linked_dda_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZWRlZW1GdW5kc1RvTGlua2VkRERBUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3VjY2VzcyoqIHwgKipib29sKiogfCBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZnVuZHMgd2VyZSBzdWNjZXNzZnVsbHkgcmVkZWVtZWQgdG8gdGhlIGxpbmtlZCBEREEgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlZGVlbV9mdW5kc190b19saW5rZWRfZGRhX3Jlc3BvbnNlIGltcG9ydCBSZWRlZW1GdW5kc1RvTGlua2VkRERBUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlZGVlbUZ1bmRzVG9MaW5rZWREREFSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKcmVkZWVtX2Z1bmRzX3RvX2xpbmtlZF9kZGFfcmVzcG9uc2VfaW5zdGFuY2UgPSBSZWRlZW1GdW5kc1RvTGlua2VkRERBUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUmVkZWVtRnVuZHNUb0xpbmtlZEREQVJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnJlZGVlbV9mdW5kc190b19saW5rZWRfZGRhX3Jlc3BvbnNlX2RpY3QgPSByZWRlZW1fZnVuZHNfdG9fbGlua2VkX2RkYV9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVkZWVtRnVuZHNUb0xpbmtlZEREQVJlc3BvbnNlIGZyb20gYSBkaWN0CnJlZGVlbV9mdW5kc190b19saW5rZWRfZGRhX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFJlZGVlbUZ1bmRzVG9MaW5rZWREREFSZXNwb25zZS5mcm9tX2RpY3QocmVkZWVtX2Z1bmRzX3RvX2xpbmtlZF9kZGFfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/RegisterNewAssetRequest.md b/docs/RegisterNewAssetRequest.md index d119d981..05b73a49 100644 --- a/docs/RegisterNewAssetRequest.md +++ b/docs/RegisterNewAssetRequest.md @@ -1,31 +1 @@ -# RegisterNewAssetRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**blockchain_id** | **str** | Native asset ID of the blockchain | -**address** | **str** | Asset address. - EVM-based chains: token contract address - Stellar (XLM): issuer address - Algorand (ALGO): asset ID - TRON (TRX): token contract address - NEAR: token address - Solana: token's mint account address - Sui: token's type - TON: token's address | -**symbol** | **str** | Required for Stellar only, asset code is expected. | [optional] - -## Example - -```python -from fireblocks.models.register_new_asset_request import RegisterNewAssetRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of RegisterNewAssetRequest from a JSON string -register_new_asset_request_instance = RegisterNewAssetRequest.from_json(json) -# print the JSON string representation of the object -print(RegisterNewAssetRequest.to_json()) - -# convert the object into a dict -register_new_asset_request_dict = register_new_asset_request_instance.to_dict() -# create an instance of RegisterNewAssetRequest from a dict -register_new_asset_request_from_dict = RegisterNewAssetRequest.from_dict(register_new_asset_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZWdpc3Rlck5ld0Fzc2V0UmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipibG9ja2NoYWluX2lkKiogfCAqKnN0cioqIHwgTmF0aXZlIGFzc2V0IElEIG9mIHRoZSBibG9ja2NoYWluIHwgCioqYWRkcmVzcyoqIHwgKipzdHIqKiB8IEFzc2V0IGFkZHJlc3MuIC0gRVZNLWJhc2VkIGNoYWluczogdG9rZW4gY29udHJhY3QgYWRkcmVzcyAtIFN0ZWxsYXIgKFhMTSk6IGlzc3VlciBhZGRyZXNzIC0gQWxnb3JhbmQgKEFMR08pOiBhc3NldCBJRCAtIFRST04gKFRSWCk6IHRva2VuIGNvbnRyYWN0IGFkZHJlc3MgLSBORUFSOiB0b2tlbiBhZGRyZXNzIC0gU29sYW5hOiB0b2tlbiYjMzk7cyBtaW50IGFjY291bnQgYWRkcmVzcyAtIFN1aTogdG9rZW4mIzM5O3MgdHlwZSAtIFRPTjogdG9rZW4mIzM5O3MgYWRkcmVzcyAgfCAKKipzeW1ib2wqKiB8ICoqc3RyKiogfCBSZXF1aXJlZCBmb3IgU3RlbGxhciBvbmx5LCBhc3NldCBjb2RlIGlzIGV4cGVjdGVkLiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZWdpc3Rlcl9uZXdfYXNzZXRfcmVxdWVzdCBpbXBvcnQgUmVnaXN0ZXJOZXdBc3NldFJlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlZ2lzdGVyTmV3QXNzZXRSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpyZWdpc3Rlcl9uZXdfYXNzZXRfcmVxdWVzdF9pbnN0YW5jZSA9IFJlZ2lzdGVyTmV3QXNzZXRSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFJlZ2lzdGVyTmV3QXNzZXRSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnJlZ2lzdGVyX25ld19hc3NldF9yZXF1ZXN0X2RpY3QgPSByZWdpc3Rlcl9uZXdfYXNzZXRfcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVnaXN0ZXJOZXdBc3NldFJlcXVlc3QgZnJvbSBhIGRpY3QKcmVnaXN0ZXJfbmV3X2Fzc2V0X3JlcXVlc3RfZnJvbV9kaWN0ID0gUmVnaXN0ZXJOZXdBc3NldFJlcXVlc3QuZnJvbV9kaWN0KHJlZ2lzdGVyX25ld19hc3NldF9yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ReissueMultichainTokenRequest.md b/docs/ReissueMultichainTokenRequest.md index a77c74bc..84684b2d 100644 --- a/docs/ReissueMultichainTokenRequest.md +++ b/docs/ReissueMultichainTokenRequest.md @@ -1,33 +1 @@ -# ReissueMultichainTokenRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vault_account_id** | **str** | The id of the vault account that initiated the request to issue the token | -**chains** | **List[str]** | The base asset identifiers of the blockchains you want to deploy to | -**use_gasless** | **bool** | Whether to use gasless deployment or not | [optional] -**fee** | **str** | Max fee amount for the deploy request. Interchangeable with the 'feeLevel' field | [optional] -**fee_level** | **str** | Fee level for the deploy request. Interchangeable with the 'fee' field | [optional] - -## Example - -```python -from fireblocks.models.reissue_multichain_token_request import ReissueMultichainTokenRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of ReissueMultichainTokenRequest from a JSON string -reissue_multichain_token_request_instance = ReissueMultichainTokenRequest.from_json(json) -# print the JSON string representation of the object -print(ReissueMultichainTokenRequest.to_json()) - -# convert the object into a dict -reissue_multichain_token_request_dict = reissue_multichain_token_request_instance.to_dict() -# create an instance of ReissueMultichainTokenRequest from a dict -reissue_multichain_token_request_from_dict = ReissueMultichainTokenRequest.from_dict(reissue_multichain_token_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZWlzc3VlTXVsdGljaGFpblRva2VuUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip2YXVsdF9hY2NvdW50X2lkKiogfCAqKnN0cioqIHwgVGhlIGlkIG9mIHRoZSB2YXVsdCBhY2NvdW50IHRoYXQgaW5pdGlhdGVkIHRoZSByZXF1ZXN0IHRvIGlzc3VlIHRoZSB0b2tlbiB8IAoqKmNoYWlucyoqIHwgKipMaXN0W3N0cl0qKiB8IFRoZSBiYXNlIGFzc2V0IGlkZW50aWZpZXJzIG9mIHRoZSBibG9ja2NoYWlucyB5b3Ugd2FudCB0byBkZXBsb3kgdG8gfCAKKip1c2VfZ2FzbGVzcyoqIHwgKipib29sKiogfCBXaGV0aGVyIHRvIHVzZSBnYXNsZXNzIGRlcGxveW1lbnQgb3Igbm90IHwgW29wdGlvbmFsXSAKKipmZWUqKiB8ICoqc3RyKiogfCBNYXggZmVlIGFtb3VudCBmb3IgdGhlIGRlcGxveSByZXF1ZXN0LiBJbnRlcmNoYW5nZWFibGUgd2l0aCB0aGUgJiMzOTtmZWVMZXZlbCYjMzk7IGZpZWxkIHwgW29wdGlvbmFsXSAKKipmZWVfbGV2ZWwqKiB8ICoqc3RyKiogfCBGZWUgbGV2ZWwgZm9yIHRoZSBkZXBsb3kgcmVxdWVzdC4gSW50ZXJjaGFuZ2VhYmxlIHdpdGggdGhlICYjMzk7ZmVlJiMzOTsgZmllbGQgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVpc3N1ZV9tdWx0aWNoYWluX3Rva2VuX3JlcXVlc3QgaW1wb3J0IFJlaXNzdWVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZWlzc3VlTXVsdGljaGFpblRva2VuUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKcmVpc3N1ZV9tdWx0aWNoYWluX3Rva2VuX3JlcXVlc3RfaW5zdGFuY2UgPSBSZWlzc3VlTXVsdGljaGFpblRva2VuUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChSZWlzc3VlTXVsdGljaGFpblRva2VuUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApyZWlzc3VlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdF9kaWN0ID0gcmVpc3N1ZV9tdWx0aWNoYWluX3Rva2VuX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlaXNzdWVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0IGZyb20gYSBkaWN0CnJlaXNzdWVfbXVsdGljaGFpbl90b2tlbl9yZXF1ZXN0X2Zyb21fZGljdCA9IFJlaXNzdWVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0LmZyb21fZGljdChyZWlzc3VlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/RelatedRequest.md b/docs/RelatedRequest.md index 49866fc9..adcce6aa 100644 --- a/docs/RelatedRequest.md +++ b/docs/RelatedRequest.md @@ -1,32 +1 @@ -# RelatedRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status** | **str** | The status of the request | -**in_progress** | **bool** | Indicates whether there is an ongoing action for this position related to this request | -**amount** | **str** | Amount of tokens | -**tx_id** | **str** | The transaction ID of the ongoing request | - -## Example - -```python -from fireblocks.models.related_request import RelatedRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of RelatedRequest from a JSON string -related_request_instance = RelatedRequest.from_json(json) -# print the JSON string representation of the object -print(RelatedRequest.to_json()) - -# convert the object into a dict -related_request_dict = related_request_instance.to_dict() -# create an instance of RelatedRequest from a dict -related_request_from_dict = RelatedRequest.from_dict(related_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZWxhdGVkUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzdGF0dXMqKiB8ICoqc3RyKiogfCBUaGUgc3RhdHVzIG9mIHRoZSByZXF1ZXN0IHwgCioqaW5fcHJvZ3Jlc3MqKiB8ICoqYm9vbCoqIHwgSW5kaWNhdGVzIHdoZXRoZXIgdGhlcmUgaXMgYW4gb25nb2luZyBhY3Rpb24gZm9yIHRoaXMgcG9zaXRpb24gcmVsYXRlZCB0byB0aGlzIHJlcXVlc3QgfCAKKiphbW91bnQqKiB8ICoqc3RyKiogfCBBbW91bnQgb2YgdG9rZW5zIHwgCioqdHhfaWQqKiB8ICoqc3RyKiogfCBUaGUgdHJhbnNhY3Rpb24gSUQgb2YgdGhlIG9uZ29pbmcgcmVxdWVzdCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVsYXRlZF9yZXF1ZXN0IGltcG9ydCBSZWxhdGVkUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVsYXRlZFJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCnJlbGF0ZWRfcmVxdWVzdF9pbnN0YW5jZSA9IFJlbGF0ZWRSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFJlbGF0ZWRSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnJlbGF0ZWRfcmVxdWVzdF9kaWN0ID0gcmVsYXRlZF9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZWxhdGVkUmVxdWVzdCBmcm9tIGEgZGljdApyZWxhdGVkX3JlcXVlc3RfZnJvbV9kaWN0ID0gUmVsYXRlZFJlcXVlc3QuZnJvbV9kaWN0KHJlbGF0ZWRfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/RelatedTransaction.md b/docs/RelatedTransaction.md index dc070fad..db52c025 100644 --- a/docs/RelatedTransaction.md +++ b/docs/RelatedTransaction.md @@ -1,30 +1 @@ -# RelatedTransaction - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**tx_id** | **str** | The transaction ID | -**completed** | **bool** | Is the transaction completed or not | - -## Example - -```python -from fireblocks.models.related_transaction import RelatedTransaction - -# TODO update the JSON string below -json = "{}" -# create an instance of RelatedTransaction from a JSON string -related_transaction_instance = RelatedTransaction.from_json(json) -# print the JSON string representation of the object -print(RelatedTransaction.to_json()) - -# convert the object into a dict -related_transaction_dict = related_transaction_instance.to_dict() -# create an instance of RelatedTransaction from a dict -related_transaction_from_dict = RelatedTransaction.from_dict(related_transaction_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZWxhdGVkVHJhbnNhY3Rpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHhfaWQqKiB8ICoqc3RyKiogfCBUaGUgdHJhbnNhY3Rpb24gSUQgfCAKKipjb21wbGV0ZWQqKiB8ICoqYm9vbCoqIHwgSXMgdGhlIHRyYW5zYWN0aW9uIGNvbXBsZXRlZCBvciBub3QgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbGF0ZWRfdHJhbnNhY3Rpb24gaW1wb3J0IFJlbGF0ZWRUcmFuc2FjdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVsYXRlZFRyYW5zYWN0aW9uIGZyb20gYSBKU09OIHN0cmluZwpyZWxhdGVkX3RyYW5zYWN0aW9uX2luc3RhbmNlID0gUmVsYXRlZFRyYW5zYWN0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFJlbGF0ZWRUcmFuc2FjdGlvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApyZWxhdGVkX3RyYW5zYWN0aW9uX2RpY3QgPSByZWxhdGVkX3RyYW5zYWN0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZWxhdGVkVHJhbnNhY3Rpb24gZnJvbSBhIGRpY3QKcmVsYXRlZF90cmFuc2FjdGlvbl9mcm9tX2RpY3QgPSBSZWxhdGVkVHJhbnNhY3Rpb24uZnJvbV9kaWN0KHJlbGF0ZWRfdHJhbnNhY3Rpb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/RemoveCollateralRequestBody.md b/docs/RemoveCollateralRequestBody.md index b844a75e..4166c38c 100644 --- a/docs/RemoveCollateralRequestBody.md +++ b/docs/RemoveCollateralRequestBody.md @@ -1,30 +1 @@ -# RemoveCollateralRequestBody - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**transaction_request** | [**TransactionRequest**](TransactionRequest.md) | | [optional] -**is_dst_collateral** | **bool** | optional | [optional] - -## Example - -```python -from fireblocks.models.remove_collateral_request_body import RemoveCollateralRequestBody - -# TODO update the JSON string below -json = "{}" -# create an instance of RemoveCollateralRequestBody from a JSON string -remove_collateral_request_body_instance = RemoveCollateralRequestBody.from_json(json) -# print the JSON string representation of the object -print(RemoveCollateralRequestBody.to_json()) - -# convert the object into a dict -remove_collateral_request_body_dict = remove_collateral_request_body_instance.to_dict() -# create an instance of RemoveCollateralRequestBody from a dict -remove_collateral_request_body_from_dict = RemoveCollateralRequestBody.from_dict(remove_collateral_request_body_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZW1vdmVDb2xsYXRlcmFsUmVxdWVzdEJvZHkKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHJhbnNhY3Rpb25fcmVxdWVzdCoqIHwgWyoqVHJhbnNhY3Rpb25SZXF1ZXN0KipdKFRyYW5zYWN0aW9uUmVxdWVzdC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmlzX2RzdF9jb2xsYXRlcmFsKiogfCAqKmJvb2wqKiB8IG9wdGlvbmFsIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbW92ZV9jb2xsYXRlcmFsX3JlcXVlc3RfYm9keSBpbXBvcnQgUmVtb3ZlQ29sbGF0ZXJhbFJlcXVlc3RCb2R5CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZW1vdmVDb2xsYXRlcmFsUmVxdWVzdEJvZHkgZnJvbSBhIEpTT04gc3RyaW5nCnJlbW92ZV9jb2xsYXRlcmFsX3JlcXVlc3RfYm9keV9pbnN0YW5jZSA9IFJlbW92ZUNvbGxhdGVyYWxSZXF1ZXN0Qm9keS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChSZW1vdmVDb2xsYXRlcmFsUmVxdWVzdEJvZHkudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcmVtb3ZlX2NvbGxhdGVyYWxfcmVxdWVzdF9ib2R5X2RpY3QgPSByZW1vdmVfY29sbGF0ZXJhbF9yZXF1ZXN0X2JvZHlfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlbW92ZUNvbGxhdGVyYWxSZXF1ZXN0Qm9keSBmcm9tIGEgZGljdApyZW1vdmVfY29sbGF0ZXJhbF9yZXF1ZXN0X2JvZHlfZnJvbV9kaWN0ID0gUmVtb3ZlQ29sbGF0ZXJhbFJlcXVlc3RCb2R5LmZyb21fZGljdChyZW1vdmVfY29sbGF0ZXJhbF9yZXF1ZXN0X2JvZHlfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/RemoveLayerZeroAdapterFailedResult.md b/docs/RemoveLayerZeroAdapterFailedResult.md index 9a0ef68b..48321b3e 100644 --- a/docs/RemoveLayerZeroAdapterFailedResult.md +++ b/docs/RemoveLayerZeroAdapterFailedResult.md @@ -1,29 +1 @@ -# RemoveLayerZeroAdapterFailedResult - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**adapter_token_link_id** | **str** | The adapter token link ID that failed to be removed | - -## Example - -```python -from fireblocks.models.remove_layer_zero_adapter_failed_result import RemoveLayerZeroAdapterFailedResult - -# TODO update the JSON string below -json = "{}" -# create an instance of RemoveLayerZeroAdapterFailedResult from a JSON string -remove_layer_zero_adapter_failed_result_instance = RemoveLayerZeroAdapterFailedResult.from_json(json) -# print the JSON string representation of the object -print(RemoveLayerZeroAdapterFailedResult.to_json()) - -# convert the object into a dict -remove_layer_zero_adapter_failed_result_dict = remove_layer_zero_adapter_failed_result_instance.to_dict() -# create an instance of RemoveLayerZeroAdapterFailedResult from a dict -remove_layer_zero_adapter_failed_result_from_dict = RemoveLayerZeroAdapterFailedResult.from_dict(remove_layer_zero_adapter_failed_result_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZW1vdmVMYXllclplcm9BZGFwdGVyRmFpbGVkUmVzdWx0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFkYXB0ZXJfdG9rZW5fbGlua19pZCoqIHwgKipzdHIqKiB8IFRoZSBhZGFwdGVyIHRva2VuIGxpbmsgSUQgdGhhdCBmYWlsZWQgdG8gYmUgcmVtb3ZlZCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVtb3ZlX2xheWVyX3plcm9fYWRhcHRlcl9mYWlsZWRfcmVzdWx0IGltcG9ydCBSZW1vdmVMYXllclplcm9BZGFwdGVyRmFpbGVkUmVzdWx0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZW1vdmVMYXllclplcm9BZGFwdGVyRmFpbGVkUmVzdWx0IGZyb20gYSBKU09OIHN0cmluZwpyZW1vdmVfbGF5ZXJfemVyb19hZGFwdGVyX2ZhaWxlZF9yZXN1bHRfaW5zdGFuY2UgPSBSZW1vdmVMYXllclplcm9BZGFwdGVyRmFpbGVkUmVzdWx0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJGYWlsZWRSZXN1bHQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcmVtb3ZlX2xheWVyX3plcm9fYWRhcHRlcl9mYWlsZWRfcmVzdWx0X2RpY3QgPSByZW1vdmVfbGF5ZXJfemVyb19hZGFwdGVyX2ZhaWxlZF9yZXN1bHRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJGYWlsZWRSZXN1bHQgZnJvbSBhIGRpY3QKcmVtb3ZlX2xheWVyX3plcm9fYWRhcHRlcl9mYWlsZWRfcmVzdWx0X2Zyb21fZGljdCA9IFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJGYWlsZWRSZXN1bHQuZnJvbV9kaWN0KHJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJfZmFpbGVkX3Jlc3VsdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/RemoveLayerZeroAdaptersRequest.md b/docs/RemoveLayerZeroAdaptersRequest.md index c2411349..bc3c8769 100644 --- a/docs/RemoveLayerZeroAdaptersRequest.md +++ b/docs/RemoveLayerZeroAdaptersRequest.md @@ -1,30 +1 @@ -# RemoveLayerZeroAdaptersRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vault_account_id** | **str** | The vault account ID to use for signing the role revocation transactions. | -**adapter_token_link_ids** | **List[str]** | A list of adapter token link IDs to be deactivated and unlinked. | - -## Example - -```python -from fireblocks.models.remove_layer_zero_adapters_request import RemoveLayerZeroAdaptersRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of RemoveLayerZeroAdaptersRequest from a JSON string -remove_layer_zero_adapters_request_instance = RemoveLayerZeroAdaptersRequest.from_json(json) -# print the JSON string representation of the object -print(RemoveLayerZeroAdaptersRequest.to_json()) - -# convert the object into a dict -remove_layer_zero_adapters_request_dict = remove_layer_zero_adapters_request_instance.to_dict() -# create an instance of RemoveLayerZeroAdaptersRequest from a dict -remove_layer_zero_adapters_request_from_dict = RemoveLayerZeroAdaptersRequest.from_dict(remove_layer_zero_adapters_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZW1vdmVMYXllclplcm9BZGFwdGVyc1JlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8IFRoZSB2YXVsdCBhY2NvdW50IElEIHRvIHVzZSBmb3Igc2lnbmluZyB0aGUgcm9sZSByZXZvY2F0aW9uIHRyYW5zYWN0aW9ucy4gfCAKKiphZGFwdGVyX3Rva2VuX2xpbmtfaWRzKiogfCAqKkxpc3Rbc3RyXSoqIHwgQSBsaXN0IG9mIGFkYXB0ZXIgdG9rZW4gbGluayBJRHMgdG8gYmUgZGVhY3RpdmF0ZWQgYW5kIHVubGlua2VkLiB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVtb3ZlX2xheWVyX3plcm9fYWRhcHRlcnNfcmVxdWVzdCBpbXBvcnQgUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZW1vdmVMYXllclplcm9BZGFwdGVyc1JlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCnJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJzX3JlcXVlc3RfaW5zdGFuY2UgPSBSZW1vdmVMYXllclplcm9BZGFwdGVyc1JlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJzX3JlcXVlc3RfZGljdCA9IHJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJzX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdCBmcm9tIGEgZGljdApyZW1vdmVfbGF5ZXJfemVyb19hZGFwdGVyc19yZXF1ZXN0X2Zyb21fZGljdCA9IFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdC5mcm9tX2RpY3QocmVtb3ZlX2xheWVyX3plcm9fYWRhcHRlcnNfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/RemoveLayerZeroAdaptersResponse.md b/docs/RemoveLayerZeroAdaptersResponse.md index 5fde3a01..4065980d 100644 --- a/docs/RemoveLayerZeroAdaptersResponse.md +++ b/docs/RemoveLayerZeroAdaptersResponse.md @@ -1,30 +1 @@ -# RemoveLayerZeroAdaptersResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**deactivated** | **List[str]** | List of successfully deactivated adapter token link IDs | -**failed** | [**List[RemoveLayerZeroAdapterFailedResult]**](RemoveLayerZeroAdapterFailedResult.md) | List of adapter token link IDs that failed to be removed | - -## Example - -```python -from fireblocks.models.remove_layer_zero_adapters_response import RemoveLayerZeroAdaptersResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of RemoveLayerZeroAdaptersResponse from a JSON string -remove_layer_zero_adapters_response_instance = RemoveLayerZeroAdaptersResponse.from_json(json) -# print the JSON string representation of the object -print(RemoveLayerZeroAdaptersResponse.to_json()) - -# convert the object into a dict -remove_layer_zero_adapters_response_dict = remove_layer_zero_adapters_response_instance.to_dict() -# create an instance of RemoveLayerZeroAdaptersResponse from a dict -remove_layer_zero_adapters_response_from_dict = RemoveLayerZeroAdaptersResponse.from_dict(remove_layer_zero_adapters_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZW1vdmVMYXllclplcm9BZGFwdGVyc1Jlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmRlYWN0aXZhdGVkKiogfCAqKkxpc3Rbc3RyXSoqIHwgTGlzdCBvZiBzdWNjZXNzZnVsbHkgZGVhY3RpdmF0ZWQgYWRhcHRlciB0b2tlbiBsaW5rIElEcyB8IAoqKmZhaWxlZCoqIHwgWyoqTGlzdFtSZW1vdmVMYXllclplcm9BZGFwdGVyRmFpbGVkUmVzdWx0XSoqXShSZW1vdmVMYXllclplcm9BZGFwdGVyRmFpbGVkUmVzdWx0Lm1kKSB8IExpc3Qgb2YgYWRhcHRlciB0b2tlbiBsaW5rIElEcyB0aGF0IGZhaWxlZCB0byBiZSByZW1vdmVkIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZW1vdmVfbGF5ZXJfemVyb19hZGFwdGVyc19yZXNwb25zZSBpbXBvcnQgUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKcmVtb3ZlX2xheWVyX3plcm9fYWRhcHRlcnNfcmVzcG9uc2VfaW5zdGFuY2UgPSBSZW1vdmVMYXllclplcm9BZGFwdGVyc1Jlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJzUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcmVtb3ZlX2xheWVyX3plcm9fYWRhcHRlcnNfcmVzcG9uc2VfZGljdCA9IHJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJzX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZW1vdmVMYXllclplcm9BZGFwdGVyc1Jlc3BvbnNlIGZyb20gYSBkaWN0CnJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJzX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJzUmVzcG9uc2UuZnJvbV9kaWN0KHJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJzX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/RemoveLayerZeroPeersRequest.md b/docs/RemoveLayerZeroPeersRequest.md index 967e462d..c29fbe7e 100644 --- a/docs/RemoveLayerZeroPeersRequest.md +++ b/docs/RemoveLayerZeroPeersRequest.md @@ -1,32 +1 @@ -# RemoveLayerZeroPeersRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vault_account_id** | **str** | The id of the vault account that will be used to inititate transactions ot set peers | -**source_adapter_token_link_id** | **str** | `token_link` ID of the source adapter contract | -**destination_adapter_token_link_ids** | **List[str]** | Array of `token_link` IDs for destination adapter contracts | -**bidirectional** | **bool** | If true, also sets peers from destination(s) back to source | - -## Example - -```python -from fireblocks.models.remove_layer_zero_peers_request import RemoveLayerZeroPeersRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of RemoveLayerZeroPeersRequest from a JSON string -remove_layer_zero_peers_request_instance = RemoveLayerZeroPeersRequest.from_json(json) -# print the JSON string representation of the object -print(RemoveLayerZeroPeersRequest.to_json()) - -# convert the object into a dict -remove_layer_zero_peers_request_dict = remove_layer_zero_peers_request_instance.to_dict() -# create an instance of RemoveLayerZeroPeersRequest from a dict -remove_layer_zero_peers_request_from_dict = RemoveLayerZeroPeersRequest.from_dict(remove_layer_zero_peers_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZW1vdmVMYXllclplcm9QZWVyc1JlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8IFRoZSBpZCBvZiB0aGUgdmF1bHQgYWNjb3VudCB0aGF0IHdpbGwgYmUgdXNlZCB0byBpbml0aXRhdGUgdHJhbnNhY3Rpb25zIG90IHNldCBwZWVycyB8IAoqKnNvdXJjZV9hZGFwdGVyX3Rva2VuX2xpbmtfaWQqKiB8ICoqc3RyKiogfCAmI3g2MDt0b2tlbl9saW5rJiN4NjA7IElEIG9mIHRoZSBzb3VyY2UgYWRhcHRlciBjb250cmFjdCB8IAoqKmRlc3RpbmF0aW9uX2FkYXB0ZXJfdG9rZW5fbGlua19pZHMqKiB8ICoqTGlzdFtzdHJdKiogfCBBcnJheSBvZiAmI3g2MDt0b2tlbl9saW5rJiN4NjA7IElEcyBmb3IgZGVzdGluYXRpb24gYWRhcHRlciBjb250cmFjdHMgfCAKKipiaWRpcmVjdGlvbmFsKiogfCAqKmJvb2wqKiB8IElmIHRydWUsIGFsc28gc2V0cyBwZWVycyBmcm9tIGRlc3RpbmF0aW9uKHMpIGJhY2sgdG8gc291cmNlIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZW1vdmVfbGF5ZXJfemVyb19wZWVyc19yZXF1ZXN0IGltcG9ydCBSZW1vdmVMYXllclplcm9QZWVyc1JlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlbW92ZUxheWVyWmVyb1BlZXJzUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKcmVtb3ZlX2xheWVyX3plcm9fcGVlcnNfcmVxdWVzdF9pbnN0YW5jZSA9IFJlbW92ZUxheWVyWmVyb1BlZXJzUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChSZW1vdmVMYXllclplcm9QZWVyc1JlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcmVtb3ZlX2xheWVyX3plcm9fcGVlcnNfcmVxdWVzdF9kaWN0ID0gcmVtb3ZlX2xheWVyX3plcm9fcGVlcnNfcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXF1ZXN0IGZyb20gYSBkaWN0CnJlbW92ZV9sYXllcl96ZXJvX3BlZXJzX3JlcXVlc3RfZnJvbV9kaWN0ID0gUmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXF1ZXN0LmZyb21fZGljdChyZW1vdmVfbGF5ZXJfemVyb19wZWVyc19yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/RemoveLayerZeroPeersResponse.md b/docs/RemoveLayerZeroPeersResponse.md index 43404e28..f28486b5 100644 --- a/docs/RemoveLayerZeroPeersResponse.md +++ b/docs/RemoveLayerZeroPeersResponse.md @@ -1,29 +1 @@ -# RemoveLayerZeroPeersResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**txn_ids** | **List[str]** | Array of fireblocks transaction IDs, each corresponding to an on-chain transaction to set peers | - -## Example - -```python -from fireblocks.models.remove_layer_zero_peers_response import RemoveLayerZeroPeersResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of RemoveLayerZeroPeersResponse from a JSON string -remove_layer_zero_peers_response_instance = RemoveLayerZeroPeersResponse.from_json(json) -# print the JSON string representation of the object -print(RemoveLayerZeroPeersResponse.to_json()) - -# convert the object into a dict -remove_layer_zero_peers_response_dict = remove_layer_zero_peers_response_instance.to_dict() -# create an instance of RemoveLayerZeroPeersResponse from a dict -remove_layer_zero_peers_response_from_dict = RemoveLayerZeroPeersResponse.from_dict(remove_layer_zero_peers_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZW1vdmVMYXllclplcm9QZWVyc1Jlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR4bl9pZHMqKiB8ICoqTGlzdFtzdHJdKiogfCBBcnJheSBvZiBmaXJlYmxvY2tzIHRyYW5zYWN0aW9uIElEcywgZWFjaCBjb3JyZXNwb25kaW5nIHRvIGFuIG9uLWNoYWluIHRyYW5zYWN0aW9uIHRvIHNldCBwZWVycyB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVtb3ZlX2xheWVyX3plcm9fcGVlcnNfcmVzcG9uc2UgaW1wb3J0IFJlbW92ZUxheWVyWmVyb1BlZXJzUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlbW92ZUxheWVyWmVyb1BlZXJzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnJlbW92ZV9sYXllcl96ZXJvX3BlZXJzX3Jlc3BvbnNlX2luc3RhbmNlID0gUmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChSZW1vdmVMYXllclplcm9QZWVyc1Jlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnJlbW92ZV9sYXllcl96ZXJvX3BlZXJzX3Jlc3BvbnNlX2RpY3QgPSByZW1vdmVfbGF5ZXJfemVyb19wZWVyc19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXNwb25zZSBmcm9tIGEgZGljdApyZW1vdmVfbGF5ZXJfemVyb19wZWVyc19yZXNwb25zZV9mcm9tX2RpY3QgPSBSZW1vdmVMYXllclplcm9QZWVyc1Jlc3BvbnNlLmZyb21fZGljdChyZW1vdmVfbGF5ZXJfemVyb19wZWVyc19yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/RenameConnectedAccountRequest.md b/docs/RenameConnectedAccountRequest.md index 13f65d96..4b88a37d 100644 --- a/docs/RenameConnectedAccountRequest.md +++ b/docs/RenameConnectedAccountRequest.md @@ -1,29 +1 @@ -# RenameConnectedAccountRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_name** | **str** | The new name for the connected account | - -## Example - -```python -from fireblocks.models.rename_connected_account_request import RenameConnectedAccountRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of RenameConnectedAccountRequest from a JSON string -rename_connected_account_request_instance = RenameConnectedAccountRequest.from_json(json) -# print the JSON string representation of the object -print(RenameConnectedAccountRequest.to_json()) - -# convert the object into a dict -rename_connected_account_request_dict = rename_connected_account_request_instance.to_dict() -# create an instance of RenameConnectedAccountRequest from a dict -rename_connected_account_request_from_dict = RenameConnectedAccountRequest.from_dict(rename_connected_account_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphY2NvdW50X25hbWUqKiB8ICoqc3RyKiogfCBUaGUgbmV3IG5hbWUgZm9yIHRoZSBjb25uZWN0ZWQgYWNjb3VudCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVuYW1lX2Nvbm5lY3RlZF9hY2NvdW50X3JlcXVlc3QgaW1wb3J0IFJlbmFtZUNvbm5lY3RlZEFjY291bnRSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKcmVuYW1lX2Nvbm5lY3RlZF9hY2NvdW50X3JlcXVlc3RfaW5zdGFuY2UgPSBSZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChSZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApyZW5hbWVfY29ubmVjdGVkX2FjY291bnRfcmVxdWVzdF9kaWN0ID0gcmVuYW1lX2Nvbm5lY3RlZF9hY2NvdW50X3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlbmFtZUNvbm5lY3RlZEFjY291bnRSZXF1ZXN0IGZyb20gYSBkaWN0CnJlbmFtZV9jb25uZWN0ZWRfYWNjb3VudF9yZXF1ZXN0X2Zyb21fZGljdCA9IFJlbmFtZUNvbm5lY3RlZEFjY291bnRSZXF1ZXN0LmZyb21fZGljdChyZW5hbWVfY29ubmVjdGVkX2FjY291bnRfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/RenameConnectedAccountResponse.md b/docs/RenameConnectedAccountResponse.md index 7176b5e0..c162f1f1 100644 --- a/docs/RenameConnectedAccountResponse.md +++ b/docs/RenameConnectedAccountResponse.md @@ -1,81 +1 @@ -# RenameConnectedAccountResponse - -Status of the rename operation - -## Enum - -* `SUCCESS` (value: `'SUCCESS'`) - -* `UNAUTHORISED__USER` (value: `'UNAUTHORISED__USER'`) - -* `UNAUTHORISED__DEVICE` (value: `'UNAUTHORISED__DEVICE'`) - -* `INVALID_UNMANAGED_WALLET` (value: `'INVALID_UNMANAGED_WALLET'`) - -* `INVALID_EXCHANGE_ACCOUNT` (value: `'INVALID_EXCHANGE_ACCOUNT'`) - -* `NO_ACTIVE_ADMINS` (value: `'NO_ACTIVE_ADMINS'`) - -* `TIMEOUT` (value: `'TIMEOUT'`) - -* `INVALID_PARAMETERS` (value: `'INVALID_PARAMETERS'`) - -* `INTERNAL_ERROR` (value: `'INTERNAL_ERROR'`) - -* `INVALID_CREDENTIALS` (value: `'INVALID_CREDENTIALS'`) - -* `INVALID_OTP` (value: `'INVALID_OTP'`) - -* `INVALID_OTP_METHOD` (value: `'INVALID_OTP_METHOD'`) - -* `INVALID_NETWORK_CONNECTION` (value: `'INVALID_NETWORK_CONNECTION'`) - -* `NETWORK_CONNECTION_EXISTS` (value: `'NETWORK_CONNECTION_EXISTS'`) - -* `INVALID_CREDENTIALS__UNSUPPORTED_PROVIDER` (value: `'INVALID_CREDENTIALS__UNSUPPORTED_PROVIDER'`) - -* `UNSUPPORTED_ALGORITHM` (value: `'UNSUPPORTED_ALGORITHM'`) - -* `INVALID_CREDENTIALS__IP_WHITELISTING` (value: `'INVALID_CREDENTIALS__IP_WHITELISTING'`) - -* `INVALID_CREDENTIALS__OTP_FAILED` (value: `'INVALID_CREDENTIALS__OTP_FAILED'`) - -* `UNSUPPORTED_ASSET` (value: `'UNSUPPORTED_ASSET'`) - -* `ASSET_ALREADY_EXISTS` (value: `'ASSET_ALREADY_EXISTS'`) - -* `ENV_UNSUPPORTED_ASSET` (value: `'ENV_UNSUPPORTED_ASSET'`) - -* `NO_CONFIG_CHANGE_NEEDED` (value: `'NO_CONFIG_CHANGE_NEEDED'`) - -* `SIMILAR_REQUEST_ALREADY_PENDING` (value: `'SIMILAR_REQUEST_ALREADY_PENDING'`) - -* `CLOUD_COSIGNER_ALREADY_EXISTS` (value: `'CLOUD_COSIGNER_ALREADY_EXISTS'`) - -* `ILLEGAL_OPERATION` (value: `'ILLEGAL_OPERATION'`) - -* `OVERRIDING_PENDING_REQUEST` (value: `'OVERRIDING_PENDING_REQUEST'`) - -* `OWNER_NOT_IN_GROUP` (value: `'OWNER_NOT_IN_GROUP'`) - -* `INVALID_THIRD_PARTY_ACCOUNT_HIERARCHY` (value: `'INVALID_THIRD_PARTY_ACCOUNT_HIERARCHY'`) - -* `EXTERNAL_KEY_VALIDATION_FAILED` (value: `'EXTERNAL_KEY_VALIDATION_FAILED'`) - -* `NO_AVAILABLE_EXTERNAL_KEYS` (value: `'NO_AVAILABLE_EXTERNAL_KEYS'`) - -* `INVALID_PROOF_OF_OWNERSHIP_SIGNATURE` (value: `'INVALID_PROOF_OF_OWNERSHIP_SIGNATURE'`) - -* `USER_HAS_EXTERNAL_KEYS` (value: `'USER_HAS_EXTERNAL_KEYS'`) - -* `SCHEMA_ALREADY_EXISTS` (value: `'SCHEMA_ALREADY_EXISTS'`) - -* `SCHEMA_ID_OUT_OF_RANGE` (value: `'SCHEMA_ID_OUT_OF_RANGE'`) - -* `FORBIDDEN_SSO_IDP_DOMAIN` (value: `'FORBIDDEN_SSO_IDP_DOMAIN'`) - -* `UNKNOWN_ERROR` (value: `'UNKNOWN_ERROR'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVzcG9uc2UKClN0YXR1cyBvZiB0aGUgcmVuYW1lIG9wZXJhdGlvbgoKIyMgRW51bQoKKiBgU1VDQ0VTU2AgKHZhbHVlOiBgJ1NVQ0NFU1MnYCkKCiogYFVOQVVUSE9SSVNFRF9fVVNFUmAgKHZhbHVlOiBgJ1VOQVVUSE9SSVNFRF9fVVNFUidgKQoKKiBgVU5BVVRIT1JJU0VEX19ERVZJQ0VgICh2YWx1ZTogYCdVTkFVVEhPUklTRURfX0RFVklDRSdgKQoKKiBgSU5WQUxJRF9VTk1BTkFHRURfV0FMTEVUYCAodmFsdWU6IGAnSU5WQUxJRF9VTk1BTkFHRURfV0FMTEVUJ2ApCgoqIGBJTlZBTElEX0VYQ0hBTkdFX0FDQ09VTlRgICh2YWx1ZTogYCdJTlZBTElEX0VYQ0hBTkdFX0FDQ09VTlQnYCkKCiogYE5PX0FDVElWRV9BRE1JTlNgICh2YWx1ZTogYCdOT19BQ1RJVkVfQURNSU5TJ2ApCgoqIGBUSU1FT1VUYCAodmFsdWU6IGAnVElNRU9VVCdgKQoKKiBgSU5WQUxJRF9QQVJBTUVURVJTYCAodmFsdWU6IGAnSU5WQUxJRF9QQVJBTUVURVJTJ2ApCgoqIGBJTlRFUk5BTF9FUlJPUmAgKHZhbHVlOiBgJ0lOVEVSTkFMX0VSUk9SJ2ApCgoqIGBJTlZBTElEX0NSRURFTlRJQUxTYCAodmFsdWU6IGAnSU5WQUxJRF9DUkVERU5USUFMUydgKQoKKiBgSU5WQUxJRF9PVFBgICh2YWx1ZTogYCdJTlZBTElEX09UUCdgKQoKKiBgSU5WQUxJRF9PVFBfTUVUSE9EYCAodmFsdWU6IGAnSU5WQUxJRF9PVFBfTUVUSE9EJ2ApCgoqIGBJTlZBTElEX05FVFdPUktfQ09OTkVDVElPTmAgKHZhbHVlOiBgJ0lOVkFMSURfTkVUV09SS19DT05ORUNUSU9OJ2ApCgoqIGBORVRXT1JLX0NPTk5FQ1RJT05fRVhJU1RTYCAodmFsdWU6IGAnTkVUV09SS19DT05ORUNUSU9OX0VYSVNUUydgKQoKKiBgSU5WQUxJRF9DUkVERU5USUFMU19fVU5TVVBQT1JURURfUFJPVklERVJgICh2YWx1ZTogYCdJTlZBTElEX0NSRURFTlRJQUxTX19VTlNVUFBPUlRFRF9QUk9WSURFUidgKQoKKiBgVU5TVVBQT1JURURfQUxHT1JJVEhNYCAodmFsdWU6IGAnVU5TVVBQT1JURURfQUxHT1JJVEhNJ2ApCgoqIGBJTlZBTElEX0NSRURFTlRJQUxTX19JUF9XSElURUxJU1RJTkdgICh2YWx1ZTogYCdJTlZBTElEX0NSRURFTlRJQUxTX19JUF9XSElURUxJU1RJTkcnYCkKCiogYElOVkFMSURfQ1JFREVOVElBTFNfX09UUF9GQUlMRURgICh2YWx1ZTogYCdJTlZBTElEX0NSRURFTlRJQUxTX19PVFBfRkFJTEVEJ2ApCgoqIGBVTlNVUFBPUlRFRF9BU1NFVGAgKHZhbHVlOiBgJ1VOU1VQUE9SVEVEX0FTU0VUJ2ApCgoqIGBBU1NFVF9BTFJFQURZX0VYSVNUU2AgKHZhbHVlOiBgJ0FTU0VUX0FMUkVBRFlfRVhJU1RTJ2ApCgoqIGBFTlZfVU5TVVBQT1JURURfQVNTRVRgICh2YWx1ZTogYCdFTlZfVU5TVVBQT1JURURfQVNTRVQnYCkKCiogYE5PX0NPTkZJR19DSEFOR0VfTkVFREVEYCAodmFsdWU6IGAnTk9fQ09ORklHX0NIQU5HRV9ORUVERUQnYCkKCiogYFNJTUlMQVJfUkVRVUVTVF9BTFJFQURZX1BFTkRJTkdgICh2YWx1ZTogYCdTSU1JTEFSX1JFUVVFU1RfQUxSRUFEWV9QRU5ESU5HJ2ApCgoqIGBDTE9VRF9DT1NJR05FUl9BTFJFQURZX0VYSVNUU2AgKHZhbHVlOiBgJ0NMT1VEX0NPU0lHTkVSX0FMUkVBRFlfRVhJU1RTJ2ApCgoqIGBJTExFR0FMX09QRVJBVElPTmAgKHZhbHVlOiBgJ0lMTEVHQUxfT1BFUkFUSU9OJ2ApCgoqIGBPVkVSUklESU5HX1BFTkRJTkdfUkVRVUVTVGAgKHZhbHVlOiBgJ09WRVJSSURJTkdfUEVORElOR19SRVFVRVNUJ2ApCgoqIGBPV05FUl9OT1RfSU5fR1JPVVBgICh2YWx1ZTogYCdPV05FUl9OT1RfSU5fR1JPVVAnYCkKCiogYElOVkFMSURfVEhJUkRfUEFSVFlfQUNDT1VOVF9ISUVSQVJDSFlgICh2YWx1ZTogYCdJTlZBTElEX1RISVJEX1BBUlRZX0FDQ09VTlRfSElFUkFSQ0hZJ2ApCgoqIGBFWFRFUk5BTF9LRVlfVkFMSURBVElPTl9GQUlMRURgICh2YWx1ZTogYCdFWFRFUk5BTF9LRVlfVkFMSURBVElPTl9GQUlMRUQnYCkKCiogYE5PX0FWQUlMQUJMRV9FWFRFUk5BTF9LRVlTYCAodmFsdWU6IGAnTk9fQVZBSUxBQkxFX0VYVEVSTkFMX0tFWVMnYCkKCiogYElOVkFMSURfUFJPT0ZfT0ZfT1dORVJTSElQX1NJR05BVFVSRWAgKHZhbHVlOiBgJ0lOVkFMSURfUFJPT0ZfT0ZfT1dORVJTSElQX1NJR05BVFVSRSdgKQoKKiBgVVNFUl9IQVNfRVhURVJOQUxfS0VZU2AgKHZhbHVlOiBgJ1VTRVJfSEFTX0VYVEVSTkFMX0tFWVMnYCkKCiogYFNDSEVNQV9BTFJFQURZX0VYSVNUU2AgKHZhbHVlOiBgJ1NDSEVNQV9BTFJFQURZX0VYSVNUUydgKQoKKiBgU0NIRU1BX0lEX09VVF9PRl9SQU5HRWAgKHZhbHVlOiBgJ1NDSEVNQV9JRF9PVVRfT0ZfUkFOR0UnYCkKCiogYEZPUkJJRERFTl9TU09fSURQX0RPTUFJTmAgKHZhbHVlOiBgJ0ZPUkJJRERFTl9TU09fSURQX0RPTUFJTidgKQoKKiBgVU5LTk9XTl9FUlJPUmAgKHZhbHVlOiBgJ1VOS05PV05fRVJST1InYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/RenameCosigner.md b/docs/RenameCosigner.md index 14958542..aeb1359c 100644 --- a/docs/RenameCosigner.md +++ b/docs/RenameCosigner.md @@ -1,29 +1 @@ -# RenameCosigner - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | The new name of the cosigner | [optional] - -## Example - -```python -from fireblocks.models.rename_cosigner import RenameCosigner - -# TODO update the JSON string below -json = "{}" -# create an instance of RenameCosigner from a JSON string -rename_cosigner_instance = RenameCosigner.from_json(json) -# print the JSON string representation of the object -print(RenameCosigner.to_json()) - -# convert the object into a dict -rename_cosigner_dict = rename_cosigner_instance.to_dict() -# create an instance of RenameCosigner from a dict -rename_cosigner_from_dict = RenameCosigner.from_dict(rename_cosigner_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZW5hbWVDb3NpZ25lcgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipuYW1lKiogfCAqKnN0cioqIHwgVGhlIG5ldyBuYW1lIG9mIHRoZSBjb3NpZ25lciB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZW5hbWVfY29zaWduZXIgaW1wb3J0IFJlbmFtZUNvc2lnbmVyCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZW5hbWVDb3NpZ25lciBmcm9tIGEgSlNPTiBzdHJpbmcKcmVuYW1lX2Nvc2lnbmVyX2luc3RhbmNlID0gUmVuYW1lQ29zaWduZXIuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUmVuYW1lQ29zaWduZXIudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcmVuYW1lX2Nvc2lnbmVyX2RpY3QgPSByZW5hbWVfY29zaWduZXJfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlbmFtZUNvc2lnbmVyIGZyb20gYSBkaWN0CnJlbmFtZV9jb3NpZ25lcl9mcm9tX2RpY3QgPSBSZW5hbWVDb3NpZ25lci5mcm9tX2RpY3QocmVuYW1lX2Nvc2lnbmVyX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/RenameVaultAccountResponse.md b/docs/RenameVaultAccountResponse.md index f6f13fbc..ba55756b 100644 --- a/docs/RenameVaultAccountResponse.md +++ b/docs/RenameVaultAccountResponse.md @@ -1,30 +1 @@ -# RenameVaultAccountResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | The new name of the vault account | [optional] -**id** | **str** | The ID of the vault account | [optional] - -## Example - -```python -from fireblocks.models.rename_vault_account_response import RenameVaultAccountResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of RenameVaultAccountResponse from a JSON string -rename_vault_account_response_instance = RenameVaultAccountResponse.from_json(json) -# print the JSON string representation of the object -print(RenameVaultAccountResponse.to_json()) - -# convert the object into a dict -rename_vault_account_response_dict = rename_vault_account_response_instance.to_dict() -# create an instance of RenameVaultAccountResponse from a dict -rename_vault_account_response_from_dict = RenameVaultAccountResponse.from_dict(rename_vault_account_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZW5hbWVWYXVsdEFjY291bnRSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipuYW1lKiogfCAqKnN0cioqIHwgVGhlIG5ldyBuYW1lIG9mIHRoZSB2YXVsdCBhY2NvdW50IHwgW29wdGlvbmFsXSAKKippZCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudCB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZW5hbWVfdmF1bHRfYWNjb3VudF9yZXNwb25zZSBpbXBvcnQgUmVuYW1lVmF1bHRBY2NvdW50UmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlbmFtZVZhdWx0QWNjb3VudFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpyZW5hbWVfdmF1bHRfYWNjb3VudF9yZXNwb25zZV9pbnN0YW5jZSA9IFJlbmFtZVZhdWx0QWNjb3VudFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFJlbmFtZVZhdWx0QWNjb3VudFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnJlbmFtZV92YXVsdF9hY2NvdW50X3Jlc3BvbnNlX2RpY3QgPSByZW5hbWVfdmF1bHRfYWNjb3VudF9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVuYW1lVmF1bHRBY2NvdW50UmVzcG9uc2UgZnJvbSBhIGRpY3QKcmVuYW1lX3ZhdWx0X2FjY291bnRfcmVzcG9uc2VfZnJvbV9kaWN0ID0gUmVuYW1lVmF1bHRBY2NvdW50UmVzcG9uc2UuZnJvbV9kaWN0KHJlbmFtZV92YXVsdF9hY2NvdW50X3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ResendFailedNotificationsJobStatusResponse.md b/docs/ResendFailedNotificationsJobStatusResponse.md index 612b6945..7bf78bcb 100644 --- a/docs/ResendFailedNotificationsJobStatusResponse.md +++ b/docs/ResendFailedNotificationsJobStatusResponse.md @@ -1,32 +1 @@ -# ResendFailedNotificationsJobStatusResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**job_id** | **str** | Bulk resend job ID | -**status** | **str** | Bulk resend job status | -**processed** | **float** | Number of notifications processed | -**total** | **float** | Total number of notifications to process | - -## Example - -```python -from fireblocks.models.resend_failed_notifications_job_status_response import ResendFailedNotificationsJobStatusResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ResendFailedNotificationsJobStatusResponse from a JSON string -resend_failed_notifications_job_status_response_instance = ResendFailedNotificationsJobStatusResponse.from_json(json) -# print the JSON string representation of the object -print(ResendFailedNotificationsJobStatusResponse.to_json()) - -# convert the object into a dict -resend_failed_notifications_job_status_response_dict = resend_failed_notifications_job_status_response_instance.to_dict() -# create an instance of ResendFailedNotificationsJobStatusResponse from a dict -resend_failed_notifications_job_status_response_from_dict = ResendFailedNotificationsJobStatusResponse.from_dict(resend_failed_notifications_job_status_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zSm9iU3RhdHVzUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqam9iX2lkKiogfCAqKnN0cioqIHwgQnVsayByZXNlbmQgam9iIElEIHwgCioqc3RhdHVzKiogfCAqKnN0cioqIHwgQnVsayByZXNlbmQgam9iIHN0YXR1cyB8IAoqKnByb2Nlc3NlZCoqIHwgKipmbG9hdCoqIHwgTnVtYmVyIG9mIG5vdGlmaWNhdGlvbnMgcHJvY2Vzc2VkIHwgCioqdG90YWwqKiB8ICoqZmxvYXQqKiB8IFRvdGFsIG51bWJlciBvZiBub3RpZmljYXRpb25zIHRvIHByb2Nlc3MgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19qb2Jfc3RhdHVzX3Jlc3BvbnNlIGltcG9ydCBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zSm9iU3RhdHVzUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNKb2JTdGF0dXNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKcmVzZW5kX2ZhaWxlZF9ub3RpZmljYXRpb25zX2pvYl9zdGF0dXNfcmVzcG9uc2VfaW5zdGFuY2UgPSBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zSm9iU3RhdHVzUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc0pvYlN0YXR1c1Jlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19qb2Jfc3RhdHVzX3Jlc3BvbnNlX2RpY3QgPSByZXNlbmRfZmFpbGVkX25vdGlmaWNhdGlvbnNfam9iX3N0YXR1c19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc0pvYlN0YXR1c1Jlc3BvbnNlIGZyb20gYSBkaWN0CnJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19qb2Jfc3RhdHVzX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNKb2JTdGF0dXNSZXNwb25zZS5mcm9tX2RpY3QocmVzZW5kX2ZhaWxlZF9ub3RpZmljYXRpb25zX2pvYl9zdGF0dXNfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ResendFailedNotificationsRequest.md b/docs/ResendFailedNotificationsRequest.md index a120f772..a59ac64c 100644 --- a/docs/ResendFailedNotificationsRequest.md +++ b/docs/ResendFailedNotificationsRequest.md @@ -1,30 +1 @@ -# ResendFailedNotificationsRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**start_time** | **float** | (optional) Start time for the resend window in milliseconds since epoch up to 24 hours before the current time - Default if missing means 24 hours before the current time in milliseconds since epoch - Maximum value is current time in milliseconds since epoch - Minimum value is 24 hours before the current time in milliseconds since epoch | [optional] -**events** | [**List[WebhookEvent]**](WebhookEvent.md) | (optional) Event types to resend, default is all event types - Default if missing means all events will be included - Empty array means all events will be included | [optional] - -## Example - -```python -from fireblocks.models.resend_failed_notifications_request import ResendFailedNotificationsRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of ResendFailedNotificationsRequest from a JSON string -resend_failed_notifications_request_instance = ResendFailedNotificationsRequest.from_json(json) -# print the JSON string representation of the object -print(ResendFailedNotificationsRequest.to_json()) - -# convert the object into a dict -resend_failed_notifications_request_dict = resend_failed_notifications_request_instance.to_dict() -# create an instance of ResendFailedNotificationsRequest from a dict -resend_failed_notifications_request_from_dict = ResendFailedNotificationsRequest.from_dict(resend_failed_notifications_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzdGFydF90aW1lKiogfCAqKmZsb2F0KiogfCAob3B0aW9uYWwpIFN0YXJ0IHRpbWUgZm9yIHRoZSByZXNlbmQgd2luZG93IGluIG1pbGxpc2Vjb25kcyBzaW5jZSBlcG9jaCB1cCB0byAyNCBob3VycyBiZWZvcmUgdGhlIGN1cnJlbnQgdGltZSAtIERlZmF1bHQgaWYgbWlzc2luZyBtZWFucyAyNCBob3VycyBiZWZvcmUgdGhlIGN1cnJlbnQgdGltZSBpbiBtaWxsaXNlY29uZHMgc2luY2UgZXBvY2ggLSBNYXhpbXVtIHZhbHVlIGlzIGN1cnJlbnQgdGltZSBpbiBtaWxsaXNlY29uZHMgc2luY2UgZXBvY2ggLSBNaW5pbXVtIHZhbHVlIGlzIDI0IGhvdXJzIGJlZm9yZSB0aGUgY3VycmVudCB0aW1lIGluIG1pbGxpc2Vjb25kcyBzaW5jZSBlcG9jaCAgfCBbb3B0aW9uYWxdIAoqKmV2ZW50cyoqIHwgWyoqTGlzdFtXZWJob29rRXZlbnRdKipdKFdlYmhvb2tFdmVudC5tZCkgfCAob3B0aW9uYWwpIEV2ZW50IHR5cGVzIHRvIHJlc2VuZCwgZGVmYXVsdCBpcyBhbGwgZXZlbnQgdHlwZXMgICAgIC0gRGVmYXVsdCBpZiBtaXNzaW5nIG1lYW5zIGFsbCBldmVudHMgd2lsbCBiZSBpbmNsdWRlZCAgICAgLSBFbXB0eSBhcnJheSBtZWFucyBhbGwgZXZlbnRzIHdpbGwgYmUgaW5jbHVkZWQgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19yZXF1ZXN0IGltcG9ydCBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc1JlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCnJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19yZXF1ZXN0X2luc3RhbmNlID0gUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc1JlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc1JlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcmVzZW5kX2ZhaWxlZF9ub3RpZmljYXRpb25zX3JlcXVlc3RfZGljdCA9IHJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVxdWVzdCBmcm9tIGEgZGljdApyZXNlbmRfZmFpbGVkX25vdGlmaWNhdGlvbnNfcmVxdWVzdF9mcm9tX2RpY3QgPSBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVxdWVzdC5mcm9tX2RpY3QocmVzZW5kX2ZhaWxlZF9ub3RpZmljYXRpb25zX3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ResendFailedNotificationsResponse.md b/docs/ResendFailedNotificationsResponse.md index 0fca387e..55b1103f 100644 --- a/docs/ResendFailedNotificationsResponse.md +++ b/docs/ResendFailedNotificationsResponse.md @@ -1,29 +1 @@ -# ResendFailedNotificationsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**total** | **float** | The total number of failed notifications that are scheduled to be resent. | [optional] - -## Example - -```python -from fireblocks.models.resend_failed_notifications_response import ResendFailedNotificationsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ResendFailedNotificationsResponse from a JSON string -resend_failed_notifications_response_instance = ResendFailedNotificationsResponse.from_json(json) -# print the JSON string representation of the object -print(ResendFailedNotificationsResponse.to_json()) - -# convert the object into a dict -resend_failed_notifications_response_dict = resend_failed_notifications_response_instance.to_dict() -# create an instance of ResendFailedNotificationsResponse from a dict -resend_failed_notifications_response_from_dict = ResendFailedNotificationsResponse.from_dict(resend_failed_notifications_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdG90YWwqKiB8ICoqZmxvYXQqKiB8IFRoZSB0b3RhbCBudW1iZXIgb2YgZmFpbGVkIG5vdGlmaWNhdGlvbnMgdGhhdCBhcmUgc2NoZWR1bGVkIHRvIGJlIHJlc2VudC4gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVzZW5kX2ZhaWxlZF9ub3RpZmljYXRpb25zX3Jlc3BvbnNlIGltcG9ydCBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKcmVzZW5kX2ZhaWxlZF9ub3RpZmljYXRpb25zX3Jlc3BvbnNlX2luc3RhbmNlID0gUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc1Jlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApyZXNlbmRfZmFpbGVkX25vdGlmaWNhdGlvbnNfcmVzcG9uc2VfZGljdCA9IHJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc1Jlc3BvbnNlIGZyb20gYSBkaWN0CnJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19yZXNwb25zZV9mcm9tX2RpY3QgPSBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVzcG9uc2UuZnJvbV9kaWN0KHJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ResendNotificationsByResourceIdRequest.md b/docs/ResendNotificationsByResourceIdRequest.md index 92414b88..45a7a995 100644 --- a/docs/ResendNotificationsByResourceIdRequest.md +++ b/docs/ResendNotificationsByResourceIdRequest.md @@ -1,30 +1 @@ -# ResendNotificationsByResourceIdRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**resource_id** | **str** | The resource id to resend notifications for | -**exclude_statuses** | [**List[NotificationStatus]**](NotificationStatus.md) | (optional) List of notification statuses to exclude from the resend operation - Empty array means all statuses will be included - If you want to exclude some statuses, you can use the following example: [ IN_PROGRESS, FAILED ] - Default if missing, means all statuses other than \"COMPLETED\" will be included | [optional] - -## Example - -```python -from fireblocks.models.resend_notifications_by_resource_id_request import ResendNotificationsByResourceIdRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of ResendNotificationsByResourceIdRequest from a JSON string -resend_notifications_by_resource_id_request_instance = ResendNotificationsByResourceIdRequest.from_json(json) -# print the JSON string representation of the object -print(ResendNotificationsByResourceIdRequest.to_json()) - -# convert the object into a dict -resend_notifications_by_resource_id_request_dict = resend_notifications_by_resource_id_request_instance.to_dict() -# create an instance of ResendNotificationsByResourceIdRequest from a dict -resend_notifications_by_resource_id_request_from_dict = ResendNotificationsByResourceIdRequest.from_dict(resend_notifications_by_resource_id_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZXNlbmROb3RpZmljYXRpb25zQnlSZXNvdXJjZUlkUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipyZXNvdXJjZV9pZCoqIHwgKipzdHIqKiB8IFRoZSByZXNvdXJjZSBpZCB0byByZXNlbmQgbm90aWZpY2F0aW9ucyBmb3IgfCAKKipleGNsdWRlX3N0YXR1c2VzKiogfCBbKipMaXN0W05vdGlmaWNhdGlvblN0YXR1c10qKl0oTm90aWZpY2F0aW9uU3RhdHVzLm1kKSB8IChvcHRpb25hbCkgTGlzdCBvZiBub3RpZmljYXRpb24gc3RhdHVzZXMgdG8gZXhjbHVkZSBmcm9tIHRoZSByZXNlbmQgb3BlcmF0aW9uICAgICAtIEVtcHR5IGFycmF5IG1lYW5zIGFsbCBzdGF0dXNlcyB3aWxsIGJlIGluY2x1ZGVkICAgICAtIElmIHlvdSB3YW50IHRvIGV4Y2x1ZGUgc29tZSBzdGF0dXNlcywgeW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZyBleGFtcGxlOiBbIElOX1BST0dSRVNTLCBGQUlMRUQgXSAgICAgLSBEZWZhdWx0IGlmIG1pc3NpbmcsIG1lYW5zIGFsbCBzdGF0dXNlcyBvdGhlciB0aGFuIFwmcXVvdDtDT01QTEVURURcJnF1b3Q7IHdpbGwgYmUgaW5jbHVkZWQgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc2VuZF9ub3RpZmljYXRpb25zX2J5X3Jlc291cmNlX2lkX3JlcXVlc3QgaW1wb3J0IFJlc2VuZE5vdGlmaWNhdGlvbnNCeVJlc291cmNlSWRSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZXNlbmROb3RpZmljYXRpb25zQnlSZXNvdXJjZUlkUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKcmVzZW5kX25vdGlmaWNhdGlvbnNfYnlfcmVzb3VyY2VfaWRfcmVxdWVzdF9pbnN0YW5jZSA9IFJlc2VuZE5vdGlmaWNhdGlvbnNCeVJlc291cmNlSWRSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFJlc2VuZE5vdGlmaWNhdGlvbnNCeVJlc291cmNlSWRSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnJlc2VuZF9ub3RpZmljYXRpb25zX2J5X3Jlc291cmNlX2lkX3JlcXVlc3RfZGljdCA9IHJlc2VuZF9ub3RpZmljYXRpb25zX2J5X3Jlc291cmNlX2lkX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlc2VuZE5vdGlmaWNhdGlvbnNCeVJlc291cmNlSWRSZXF1ZXN0IGZyb20gYSBkaWN0CnJlc2VuZF9ub3RpZmljYXRpb25zX2J5X3Jlc291cmNlX2lkX3JlcXVlc3RfZnJvbV9kaWN0ID0gUmVzZW5kTm90aWZpY2F0aW9uc0J5UmVzb3VyY2VJZFJlcXVlc3QuZnJvbV9kaWN0KHJlc2VuZF9ub3RpZmljYXRpb25zX2J5X3Jlc291cmNlX2lkX3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ResendTransactionWebhooksRequest.md b/docs/ResendTransactionWebhooksRequest.md index dc4ec892..bf25a0d5 100644 --- a/docs/ResendTransactionWebhooksRequest.md +++ b/docs/ResendTransactionWebhooksRequest.md @@ -1,30 +1 @@ -# ResendTransactionWebhooksRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**resend_created** | **bool** | | [optional] -**resend_status_updated** | **bool** | | [optional] - -## Example - -```python -from fireblocks.models.resend_transaction_webhooks_request import ResendTransactionWebhooksRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of ResendTransactionWebhooksRequest from a JSON string -resend_transaction_webhooks_request_instance = ResendTransactionWebhooksRequest.from_json(json) -# print the JSON string representation of the object -print(ResendTransactionWebhooksRequest.to_json()) - -# convert the object into a dict -resend_transaction_webhooks_request_dict = resend_transaction_webhooks_request_instance.to_dict() -# create an instance of ResendTransactionWebhooksRequest from a dict -resend_transaction_webhooks_request_from_dict = ResendTransactionWebhooksRequest.from_dict(resend_transaction_webhooks_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZXNlbmRUcmFuc2FjdGlvbldlYmhvb2tzUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipyZXNlbmRfY3JlYXRlZCoqIHwgKipib29sKiogfCAgfCBbb3B0aW9uYWxdIAoqKnJlc2VuZF9zdGF0dXNfdXBkYXRlZCoqIHwgKipib29sKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVzZW5kX3RyYW5zYWN0aW9uX3dlYmhvb2tzX3JlcXVlc3QgaW1wb3J0IFJlc2VuZFRyYW5zYWN0aW9uV2ViaG9va3NSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZXNlbmRUcmFuc2FjdGlvbldlYmhvb2tzUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKcmVzZW5kX3RyYW5zYWN0aW9uX3dlYmhvb2tzX3JlcXVlc3RfaW5zdGFuY2UgPSBSZXNlbmRUcmFuc2FjdGlvbldlYmhvb2tzUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChSZXNlbmRUcmFuc2FjdGlvbldlYmhvb2tzUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApyZXNlbmRfdHJhbnNhY3Rpb25fd2ViaG9va3NfcmVxdWVzdF9kaWN0ID0gcmVzZW5kX3RyYW5zYWN0aW9uX3dlYmhvb2tzX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlc2VuZFRyYW5zYWN0aW9uV2ViaG9va3NSZXF1ZXN0IGZyb20gYSBkaWN0CnJlc2VuZF90cmFuc2FjdGlvbl93ZWJob29rc19yZXF1ZXN0X2Zyb21fZGljdCA9IFJlc2VuZFRyYW5zYWN0aW9uV2ViaG9va3NSZXF1ZXN0LmZyb21fZGljdChyZXNlbmRfdHJhbnNhY3Rpb25fd2ViaG9va3NfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ResendWebhooksByTransactionIdResponse.md b/docs/ResendWebhooksByTransactionIdResponse.md index d5f1af76..69fd15e9 100644 --- a/docs/ResendWebhooksByTransactionIdResponse.md +++ b/docs/ResendWebhooksByTransactionIdResponse.md @@ -1,29 +1 @@ -# ResendWebhooksByTransactionIdResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**success** | **bool** | Indicates whether the webhooks were successfully resent | - -## Example - -```python -from fireblocks.models.resend_webhooks_by_transaction_id_response import ResendWebhooksByTransactionIdResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ResendWebhooksByTransactionIdResponse from a JSON string -resend_webhooks_by_transaction_id_response_instance = ResendWebhooksByTransactionIdResponse.from_json(json) -# print the JSON string representation of the object -print(ResendWebhooksByTransactionIdResponse.to_json()) - -# convert the object into a dict -resend_webhooks_by_transaction_id_response_dict = resend_webhooks_by_transaction_id_response_instance.to_dict() -# create an instance of ResendWebhooksByTransactionIdResponse from a dict -resend_webhooks_by_transaction_id_response_from_dict = ResendWebhooksByTransactionIdResponse.from_dict(resend_webhooks_by_transaction_id_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZXNlbmRXZWJob29rc0J5VHJhbnNhY3Rpb25JZFJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnN1Y2Nlc3MqKiB8ICoqYm9vbCoqIHwgSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHdlYmhvb2tzIHdlcmUgc3VjY2Vzc2Z1bGx5IHJlc2VudCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVzZW5kX3dlYmhvb2tzX2J5X3RyYW5zYWN0aW9uX2lkX3Jlc3BvbnNlIGltcG9ydCBSZXNlbmRXZWJob29rc0J5VHJhbnNhY3Rpb25JZFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZXNlbmRXZWJob29rc0J5VHJhbnNhY3Rpb25JZFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpyZXNlbmRfd2ViaG9va3NfYnlfdHJhbnNhY3Rpb25faWRfcmVzcG9uc2VfaW5zdGFuY2UgPSBSZXNlbmRXZWJob29rc0J5VHJhbnNhY3Rpb25JZFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFJlc2VuZFdlYmhvb2tzQnlUcmFuc2FjdGlvbklkUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcmVzZW5kX3dlYmhvb2tzX2J5X3RyYW5zYWN0aW9uX2lkX3Jlc3BvbnNlX2RpY3QgPSByZXNlbmRfd2ViaG9va3NfYnlfdHJhbnNhY3Rpb25faWRfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlc2VuZFdlYmhvb2tzQnlUcmFuc2FjdGlvbklkUmVzcG9uc2UgZnJvbSBhIGRpY3QKcmVzZW5kX3dlYmhvb2tzX2J5X3RyYW5zYWN0aW9uX2lkX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFJlc2VuZFdlYmhvb2tzQnlUcmFuc2FjdGlvbklkUmVzcG9uc2UuZnJvbV9kaWN0KHJlc2VuZF93ZWJob29rc19ieV90cmFuc2FjdGlvbl9pZF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ResendWebhooksResponse.md b/docs/ResendWebhooksResponse.md index 7a743dc4..e14fca86 100644 --- a/docs/ResendWebhooksResponse.md +++ b/docs/ResendWebhooksResponse.md @@ -1,29 +1 @@ -# ResendWebhooksResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**messages_count** | **float** | | [optional] - -## Example - -```python -from fireblocks.models.resend_webhooks_response import ResendWebhooksResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ResendWebhooksResponse from a JSON string -resend_webhooks_response_instance = ResendWebhooksResponse.from_json(json) -# print the JSON string representation of the object -print(ResendWebhooksResponse.to_json()) - -# convert the object into a dict -resend_webhooks_response_dict = resend_webhooks_response_instance.to_dict() -# create an instance of ResendWebhooksResponse from a dict -resend_webhooks_response_from_dict = ResendWebhooksResponse.from_dict(resend_webhooks_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZXNlbmRXZWJob29rc1Jlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm1lc3NhZ2VzX2NvdW50KiogfCAqKmZsb2F0KiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVzZW5kX3dlYmhvb2tzX3Jlc3BvbnNlIGltcG9ydCBSZXNlbmRXZWJob29rc1Jlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZXNlbmRXZWJob29rc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpyZXNlbmRfd2ViaG9va3NfcmVzcG9uc2VfaW5zdGFuY2UgPSBSZXNlbmRXZWJob29rc1Jlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFJlc2VuZFdlYmhvb2tzUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKcmVzZW5kX3dlYmhvb2tzX3Jlc3BvbnNlX2RpY3QgPSByZXNlbmRfd2ViaG9va3NfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlc2VuZFdlYmhvb2tzUmVzcG9uc2UgZnJvbSBhIGRpY3QKcmVzZW5kX3dlYmhvb2tzX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFJlc2VuZFdlYmhvb2tzUmVzcG9uc2UuZnJvbV9kaWN0KHJlc2VuZF93ZWJob29rc19yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ResetDeviceApi.md b/docs/ResetDeviceApi.md index 9d609f7f..1796b536 100644 --- a/docs/ResetDeviceApi.md +++ b/docs/ResetDeviceApi.md @@ -1,86 +1 @@ -# fireblocks.ResetDeviceApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**reset_device**](ResetDeviceApi.md#reset_device) | **POST** /management/users/{id}/reset_device | Resets device - - -# **reset_device** -> reset_device(id, idempotency_key=idempotency_key) - -Resets device - -Resets mobile device for given console user, that user will need to do mobile onboarding again. -- Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - id = 'id_example' # str | The ID of the console user - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Resets device - fireblocks.reset_device.reset_device(id, idempotency_key=idempotency_key).result() - except Exception as e: - print("Exception when calling ResetDeviceApi->reset_device: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **id** | **str**| The ID of the console user | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Reset device approval request has been sent | * X-Request-ID -
| -**401** | Unauthorized. Missing / invalid JWT token in Authorization header. | * X-Request-ID -
| -**403** | Lacking permissions. | * X-Request-ID -
| -**5XX** | Internal error. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLlJlc2V0RGV2aWNlQXBpCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gKmh0dHBzOi8vYXBpLmZpcmVibG9ja3MuaW8vdjEqCgpNZXRob2QgfCBIVFRQIHJlcXVlc3QgfCBEZXNjcmlwdGlvbgotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KWyoqcmVzZXRfZGV2aWNlKipdKFJlc2V0RGV2aWNlQXBpLm1kI3Jlc2V0X2RldmljZSkgfCAqKlBPU1QqKiAvbWFuYWdlbWVudC91c2Vycy97aWR9L3Jlc2V0X2RldmljZSB8IFJlc2V0cyBkZXZpY2UKCgojICoqcmVzZXRfZGV2aWNlKioKPiByZXNldF9kZXZpY2UoaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpSZXNldHMgZGV2aWNlCgpSZXNldHMgbW9iaWxlIGRldmljZSBmb3IgZ2l2ZW4gY29uc29sZSB1c2VyLCB0aGF0IHVzZXIgd2lsbCBuZWVkIHRvIGRvIG1vYmlsZSBvbmJvYXJkaW5nIGFnYWluLgotIFBsZWFzZSBub3RlIHRoYXQgdGhpcyBlbmRwb2ludCBpcyBhdmFpbGFibGUgb25seSBmb3IgQVBJIGtleXMgd2l0aCBBZG1pbi9Ob24gU2lnbmluZyBBZG1pbiBwZXJtaXNzaW9ucy4KPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4uCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgaWQgPSAnaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGNvbnNvbGUgdXNlcgogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIFJlc2V0cyBkZXZpY2UKICAgICAgICBmaXJlYmxvY2tzLnJlc2V0X2RldmljZS5yZXNldF9kZXZpY2UoaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgUmVzZXREZXZpY2VBcGktPnJlc2V0X2RldmljZTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgY29uc29sZSB1c2VyIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKCnZvaWQgKGVtcHR5IHJlc3BvbnNlIGJvZHkpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBSZXNldCBkZXZpY2UgYXBwcm92YWwgcmVxdWVzdCBoYXMgYmVlbiBzZW50IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDEqKiB8IFVuYXV0aG9yaXplZC4gTWlzc2luZyAvIGludmFsaWQgSldUIHRva2VuIGluIEF1dGhvcml6YXRpb24gaGVhZGVyLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDAzKiogfCBMYWNraW5nIHBlcm1pc3Npb25zLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNVhYKiogfCBJbnRlcm5hbCBlcnJvci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoK \ No newline at end of file diff --git a/docs/RespondToConnectionRequest.md b/docs/RespondToConnectionRequest.md index e843069b..dfb31032 100644 --- a/docs/RespondToConnectionRequest.md +++ b/docs/RespondToConnectionRequest.md @@ -1,29 +1 @@ -# RespondToConnectionRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**approve** | **bool** | Approval of the initiated Web3 connection. | - -## Example - -```python -from fireblocks.models.respond_to_connection_request import RespondToConnectionRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of RespondToConnectionRequest from a JSON string -respond_to_connection_request_instance = RespondToConnectionRequest.from_json(json) -# print the JSON string representation of the object -print(RespondToConnectionRequest.to_json()) - -# convert the object into a dict -respond_to_connection_request_dict = respond_to_connection_request_instance.to_dict() -# create an instance of RespondToConnectionRequest from a dict -respond_to_connection_request_from_dict = RespondToConnectionRequest.from_dict(respond_to_connection_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZXNwb25kVG9Db25uZWN0aW9uUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphcHByb3ZlKiogfCAqKmJvb2wqKiB8IEFwcHJvdmFsIG9mIHRoZSBpbml0aWF0ZWQgV2ViMyBjb25uZWN0aW9uLiB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVzcG9uZF90b19jb25uZWN0aW9uX3JlcXVlc3QgaW1wb3J0IFJlc3BvbmRUb0Nvbm5lY3Rpb25SZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZXNwb25kVG9Db25uZWN0aW9uUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKcmVzcG9uZF90b19jb25uZWN0aW9uX3JlcXVlc3RfaW5zdGFuY2UgPSBSZXNwb25kVG9Db25uZWN0aW9uUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChSZXNwb25kVG9Db25uZWN0aW9uUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApyZXNwb25kX3RvX2Nvbm5lY3Rpb25fcmVxdWVzdF9kaWN0ID0gcmVzcG9uZF90b19jb25uZWN0aW9uX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlc3BvbmRUb0Nvbm5lY3Rpb25SZXF1ZXN0IGZyb20gYSBkaWN0CnJlc3BvbmRfdG9fY29ubmVjdGlvbl9yZXF1ZXN0X2Zyb21fZGljdCA9IFJlc3BvbmRUb0Nvbm5lY3Rpb25SZXF1ZXN0LmZyb21fZGljdChyZXNwb25kX3RvX2Nvbm5lY3Rpb25fcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/RetryRequoteRequestDetails.md b/docs/RetryRequoteRequestDetails.md index 2c1d1d9e..904f2bce 100644 --- a/docs/RetryRequoteRequestDetails.md +++ b/docs/RetryRequoteRequestDetails.md @@ -1,31 +1 @@ -# RetryRequoteRequestDetails - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**RetryRequoteTypeEnum**](RetryRequoteTypeEnum.md) | | -**count** | **int** | If quote is expired, how many times to re-generate new quotes to try having the order executed as in the original quote. | -**slippage_bps** | **int** | Slippage tolerance in basis points (bps) for quote orders - 1 is 0.01% and 10000 is 100% | [optional] - -## Example - -```python -from fireblocks.models.retry_requote_request_details import RetryRequoteRequestDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of RetryRequoteRequestDetails from a JSON string -retry_requote_request_details_instance = RetryRequoteRequestDetails.from_json(json) -# print the JSON string representation of the object -print(RetryRequoteRequestDetails.to_json()) - -# convert the object into a dict -retry_requote_request_details_dict = retry_requote_request_details_instance.to_dict() -# create an instance of RetryRequoteRequestDetails from a dict -retry_requote_request_details_from_dict = RetryRequoteRequestDetails.from_dict(retry_requote_request_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZXRyeVJlcXVvdGVSZXF1ZXN0RGV0YWlscwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eXBlKiogfCBbKipSZXRyeVJlcXVvdGVUeXBlRW51bSoqXShSZXRyeVJlcXVvdGVUeXBlRW51bS5tZCkgfCAgfCAKKipjb3VudCoqIHwgKippbnQqKiB8IElmIHF1b3RlIGlzIGV4cGlyZWQsIGhvdyBtYW55IHRpbWVzIHRvIHJlLWdlbmVyYXRlIG5ldyBxdW90ZXMgdG8gdHJ5IGhhdmluZyB0aGUgb3JkZXIgZXhlY3V0ZWQgYXMgaW4gdGhlIG9yaWdpbmFsIHF1b3RlLiB8IAoqKnNsaXBwYWdlX2JwcyoqIHwgKippbnQqKiB8IFNsaXBwYWdlIHRvbGVyYW5jZSBpbiBiYXNpcyBwb2ludHMgKGJwcykgZm9yIHF1b3RlIG9yZGVycyAtIDEgaXMgMC4wMSUgYW5kIDEwMDAwIGlzIDEwMCUgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmV0cnlfcmVxdW90ZV9yZXF1ZXN0X2RldGFpbHMgaW1wb3J0IFJldHJ5UmVxdW90ZVJlcXVlc3REZXRhaWxzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZXRyeVJlcXVvdGVSZXF1ZXN0RGV0YWlscyBmcm9tIGEgSlNPTiBzdHJpbmcKcmV0cnlfcmVxdW90ZV9yZXF1ZXN0X2RldGFpbHNfaW5zdGFuY2UgPSBSZXRyeVJlcXVvdGVSZXF1ZXN0RGV0YWlscy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChSZXRyeVJlcXVvdGVSZXF1ZXN0RGV0YWlscy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApyZXRyeV9yZXF1b3RlX3JlcXVlc3RfZGV0YWlsc19kaWN0ID0gcmV0cnlfcmVxdW90ZV9yZXF1ZXN0X2RldGFpbHNfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJldHJ5UmVxdW90ZVJlcXVlc3REZXRhaWxzIGZyb20gYSBkaWN0CnJldHJ5X3JlcXVvdGVfcmVxdWVzdF9kZXRhaWxzX2Zyb21fZGljdCA9IFJldHJ5UmVxdW90ZVJlcXVlc3REZXRhaWxzLmZyb21fZGljdChyZXRyeV9yZXF1b3RlX3JlcXVlc3RfZGV0YWlsc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/RetryRequoteTypeEnum.md b/docs/RetryRequoteTypeEnum.md index 82a1e8fb..62262c6f 100644 --- a/docs/RetryRequoteTypeEnum.md +++ b/docs/RetryRequoteTypeEnum.md @@ -1,11 +1 @@ -# RetryRequoteTypeEnum - -Indicates that the order should be re-quoted if the original quote is expired, trying to match the original quote. - -## Enum - -* `RETRY` (value: `'RETRY'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZXRyeVJlcXVvdGVUeXBlRW51bQoKSW5kaWNhdGVzIHRoYXQgdGhlIG9yZGVyIHNob3VsZCBiZSByZS1xdW90ZWQgaWYgdGhlIG9yaWdpbmFsIHF1b3RlIGlzIGV4cGlyZWQsIHRyeWluZyB0byBtYXRjaCB0aGUgb3JpZ2luYWwgcXVvdGUuCgojIyBFbnVtCgoqIGBSRVRSWWAgKHZhbHVlOiBgJ1JFVFJZJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/RewardInfo.md b/docs/RewardInfo.md index 04cf90f2..b56d7aaf 100644 --- a/docs/RewardInfo.md +++ b/docs/RewardInfo.md @@ -1,31 +1 @@ -# RewardInfo - -This field is relevant only for Algorand transactions. Both `srcRewards` and `destRewards` will appear only for Vault to Vault transactions, otherwise you will receive only the Fireblocks’ side of the transaction. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**src_rewards** | **str** | | [optional] -**dest_rewards** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.reward_info import RewardInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of RewardInfo from a JSON string -reward_info_instance = RewardInfo.from_json(json) -# print the JSON string representation of the object -print(RewardInfo.to_json()) - -# convert the object into a dict -reward_info_dict = reward_info_instance.to_dict() -# create an instance of RewardInfo from a dict -reward_info_from_dict = RewardInfo.from_dict(reward_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZXdhcmRJbmZvCgpUaGlzIGZpZWxkIGlzIHJlbGV2YW50IG9ubHkgZm9yIEFsZ29yYW5kIHRyYW5zYWN0aW9ucy4gQm90aCBgc3JjUmV3YXJkc2AgYW5kIGBkZXN0UmV3YXJkc2Agd2lsbCBhcHBlYXIgb25seSBmb3IgVmF1bHQgdG8gVmF1bHQgdHJhbnNhY3Rpb25zLCBvdGhlcndpc2UgeW91IHdpbGwgcmVjZWl2ZSBvbmx5IHRoZSBGaXJlYmxvY2tz4oCZIHNpZGUgb2YgdGhlIHRyYW5zYWN0aW9uLgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnNyY19yZXdhcmRzKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipkZXN0X3Jld2FyZHMqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmV3YXJkX2luZm8gaW1wb3J0IFJld2FyZEluZm8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJld2FyZEluZm8gZnJvbSBhIEpTT04gc3RyaW5nCnJld2FyZF9pbmZvX2luc3RhbmNlID0gUmV3YXJkSW5mby5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChSZXdhcmRJbmZvLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnJld2FyZF9pbmZvX2RpY3QgPSByZXdhcmRfaW5mb19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmV3YXJkSW5mbyBmcm9tIGEgZGljdApyZXdhcmRfaW5mb19mcm9tX2RpY3QgPSBSZXdhcmRJbmZvLmZyb21fZGljdChyZXdhcmRfaW5mb19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/RewardsInfo.md b/docs/RewardsInfo.md index 5f3869e6..79ac254d 100644 --- a/docs/RewardsInfo.md +++ b/docs/RewardsInfo.md @@ -1,29 +1 @@ -# RewardsInfo - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**pending_rewards** | **str** | Amount that is pending for rewards | [optional] - -## Example - -```python -from fireblocks.models.rewards_info import RewardsInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of RewardsInfo from a JSON string -rewards_info_instance = RewardsInfo.from_json(json) -# print the JSON string representation of the object -print(RewardsInfo.to_json()) - -# convert the object into a dict -rewards_info_dict = rewards_info_instance.to_dict() -# create an instance of RewardsInfo from a dict -rewards_info_from_dict = RewardsInfo.from_dict(rewards_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSZXdhcmRzSW5mbwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipwZW5kaW5nX3Jld2FyZHMqKiB8ICoqc3RyKiogfCBBbW91bnQgdGhhdCBpcyBwZW5kaW5nIGZvciByZXdhcmRzIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJld2FyZHNfaW5mbyBpbXBvcnQgUmV3YXJkc0luZm8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJld2FyZHNJbmZvIGZyb20gYSBKU09OIHN0cmluZwpyZXdhcmRzX2luZm9faW5zdGFuY2UgPSBSZXdhcmRzSW5mby5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChSZXdhcmRzSW5mby50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApyZXdhcmRzX2luZm9fZGljdCA9IHJld2FyZHNfaW5mb19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmV3YXJkc0luZm8gZnJvbSBhIGRpY3QKcmV3YXJkc19pbmZvX2Zyb21fZGljdCA9IFJld2FyZHNJbmZvLmZyb21fZGljdChyZXdhcmRzX2luZm9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/RoleDetails.md b/docs/RoleDetails.md index dbd24199..71184fd5 100644 --- a/docs/RoleDetails.md +++ b/docs/RoleDetails.md @@ -1,31 +1 @@ -# RoleDetails - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**role_hash** | **str** | The role hash identifier | -**description** | **str** | Human-readable description of the role | -**accounts** | [**List[RoleGrantee]**](RoleGrantee.md) | List of accounts that have been granted this role | - -## Example - -```python -from fireblocks.models.role_details import RoleDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of RoleDetails from a JSON string -role_details_instance = RoleDetails.from_json(json) -# print the JSON string representation of the object -print(RoleDetails.to_json()) - -# convert the object into a dict -role_details_dict = role_details_instance.to_dict() -# create an instance of RoleDetails from a dict -role_details_from_dict = RoleDetails.from_dict(role_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSb2xlRGV0YWlscwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipyb2xlX2hhc2gqKiB8ICoqc3RyKiogfCBUaGUgcm9sZSBoYXNoIGlkZW50aWZpZXIgfCAKKipkZXNjcmlwdGlvbioqIHwgKipzdHIqKiB8IEh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHRoZSByb2xlIHwgCioqYWNjb3VudHMqKiB8IFsqKkxpc3RbUm9sZUdyYW50ZWVdKipdKFJvbGVHcmFudGVlLm1kKSB8IExpc3Qgb2YgYWNjb3VudHMgdGhhdCBoYXZlIGJlZW4gZ3JhbnRlZCB0aGlzIHJvbGUgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJvbGVfZGV0YWlscyBpbXBvcnQgUm9sZURldGFpbHMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFJvbGVEZXRhaWxzIGZyb20gYSBKU09OIHN0cmluZwpyb2xlX2RldGFpbHNfaW5zdGFuY2UgPSBSb2xlRGV0YWlscy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChSb2xlRGV0YWlscy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApyb2xlX2RldGFpbHNfZGljdCA9IHJvbGVfZGV0YWlsc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUm9sZURldGFpbHMgZnJvbSBhIGRpY3QKcm9sZV9kZXRhaWxzX2Zyb21fZGljdCA9IFJvbGVEZXRhaWxzLmZyb21fZGljdChyb2xlX2RldGFpbHNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/RoleGrantee.md b/docs/RoleGrantee.md index cd16345a..ed74bd83 100644 --- a/docs/RoleGrantee.md +++ b/docs/RoleGrantee.md @@ -1,30 +1 @@ -# RoleGrantee - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_address** | **str** | The address of the account that has been granted the role | -**date_of_grant** | **datetime** | The date when the role was granted to this account | - -## Example - -```python -from fireblocks.models.role_grantee import RoleGrantee - -# TODO update the JSON string below -json = "{}" -# create an instance of RoleGrantee from a JSON string -role_grantee_instance = RoleGrantee.from_json(json) -# print the JSON string representation of the object -print(RoleGrantee.to_json()) - -# convert the object into a dict -role_grantee_dict = role_grantee_instance.to_dict() -# create an instance of RoleGrantee from a dict -role_grantee_from_dict = RoleGrantee.from_dict(role_grantee_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBSb2xlR3JhbnRlZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphY2NvdW50X2FkZHJlc3MqKiB8ICoqc3RyKiogfCBUaGUgYWRkcmVzcyBvZiB0aGUgYWNjb3VudCB0aGF0IGhhcyBiZWVuIGdyYW50ZWQgdGhlIHJvbGUgfCAKKipkYXRlX29mX2dyYW50KiogfCAqKmRhdGV0aW1lKiogfCBUaGUgZGF0ZSB3aGVuIHRoZSByb2xlIHdhcyBncmFudGVkIHRvIHRoaXMgYWNjb3VudCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucm9sZV9ncmFudGVlIGltcG9ydCBSb2xlR3JhbnRlZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUm9sZUdyYW50ZWUgZnJvbSBhIEpTT04gc3RyaW5nCnJvbGVfZ3JhbnRlZV9pbnN0YW5jZSA9IFJvbGVHcmFudGVlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFJvbGVHcmFudGVlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnJvbGVfZ3JhbnRlZV9kaWN0ID0gcm9sZV9ncmFudGVlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSb2xlR3JhbnRlZSBmcm9tIGEgZGljdApyb2xlX2dyYW50ZWVfZnJvbV9kaWN0ID0gUm9sZUdyYW50ZWUuZnJvbV9kaWN0KHJvbGVfZ3JhbnRlZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SEPAAddress.md b/docs/SEPAAddress.md index e6e7c535..4983132d 100644 --- a/docs/SEPAAddress.md +++ b/docs/SEPAAddress.md @@ -1,36 +1 @@ -# SEPAAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | | -**iban** | **str** | | -**bic** | **str** | Bank Identifier Code (SWIFT/BIC) | [optional] -**bank_name** | **str** | | [optional] -**bank_branch** | **str** | | [optional] -**bank_address** | **str** | | [optional] -**purpose_code** | **str** | ISO purpose code for the transfer | [optional] -**tax_id** | **str** | Beneficiary tax identification number | [optional] - -## Example - -```python -from fireblocks.models.sepa_address import SEPAAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of SEPAAddress from a JSON string -sepa_address_instance = SEPAAddress.from_json(json) -# print the JSON string representation of the object -print(SEPAAddress.to_json()) - -# convert the object into a dict -sepa_address_dict = sepa_address_instance.to_dict() -# create an instance of SEPAAddress from a dict -sepa_address_from_dict = SEPAAddress.from_dict(sepa_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTRVBBQWRkcmVzcwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphY2NvdW50X2hvbGRlcioqIHwgWyoqQWNjb3VudEhvbGRlckRldGFpbHMqKl0oQWNjb3VudEhvbGRlckRldGFpbHMubWQpIHwgIHwgCioqaWJhbioqIHwgKipzdHIqKiB8ICB8IAoqKmJpYyoqIHwgKipzdHIqKiB8IEJhbmsgSWRlbnRpZmllciBDb2RlIChTV0lGVC9CSUMpIHwgW29wdGlvbmFsXSAKKipiYW5rX25hbWUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmJhbmtfYnJhbmNoKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipiYW5rX2FkZHJlc3MqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKnB1cnBvc2VfY29kZSoqIHwgKipzdHIqKiB8IElTTyBwdXJwb3NlIGNvZGUgZm9yIHRoZSB0cmFuc2ZlciB8IFtvcHRpb25hbF0gCioqdGF4X2lkKiogfCAqKnN0cioqIHwgQmVuZWZpY2lhcnkgdGF4IGlkZW50aWZpY2F0aW9uIG51bWJlciB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXBhX2FkZHJlc3MgaW1wb3J0IFNFUEFBZGRyZXNzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTRVBBQWRkcmVzcyBmcm9tIGEgSlNPTiBzdHJpbmcKc2VwYV9hZGRyZXNzX2luc3RhbmNlID0gU0VQQUFkZHJlc3MuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU0VQQUFkZHJlc3MudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2VwYV9hZGRyZXNzX2RpY3QgPSBzZXBhX2FkZHJlc3NfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNFUEFBZGRyZXNzIGZyb20gYSBkaWN0CnNlcGFfYWRkcmVzc19mcm9tX2RpY3QgPSBTRVBBQWRkcmVzcy5mcm9tX2RpY3Qoc2VwYV9hZGRyZXNzX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SEPADestination.md b/docs/SEPADestination.md index ba753cb7..ab29e861 100644 --- a/docs/SEPADestination.md +++ b/docs/SEPADestination.md @@ -1,30 +1 @@ -# SEPADestination - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | -**address** | [**SEPAAddress**](SEPAAddress.md) | | - -## Example - -```python -from fireblocks.models.sepa_destination import SEPADestination - -# TODO update the JSON string below -json = "{}" -# create an instance of SEPADestination from a JSON string -sepa_destination_instance = SEPADestination.from_json(json) -# print the JSON string representation of the object -print(SEPADestination.to_json()) - -# convert the object into a dict -sepa_destination_dict = sepa_destination_instance.to_dict() -# create an instance of SEPADestination from a dict -sepa_destination_from_dict = SEPADestination.from_dict(sepa_destination_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTRVBBRGVzdGluYXRpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgKipzdHIqKiB8ICB8IAoqKmFkZHJlc3MqKiB8IFsqKlNFUEFBZGRyZXNzKipdKFNFUEFBZGRyZXNzLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2VwYV9kZXN0aW5hdGlvbiBpbXBvcnQgU0VQQURlc3RpbmF0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTRVBBRGVzdGluYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCnNlcGFfZGVzdGluYXRpb25faW5zdGFuY2UgPSBTRVBBRGVzdGluYXRpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU0VQQURlc3RpbmF0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNlcGFfZGVzdGluYXRpb25fZGljdCA9IHNlcGFfZGVzdGluYXRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNFUEFEZXN0aW5hdGlvbiBmcm9tIGEgZGljdApzZXBhX2Rlc3RpbmF0aW9uX2Zyb21fZGljdCA9IFNFUEFEZXN0aW5hdGlvbi5mcm9tX2RpY3Qoc2VwYV9kZXN0aW5hdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SOLAccount.md b/docs/SOLAccount.md index 92e39f87..cd5e40f2 100644 --- a/docs/SOLAccount.md +++ b/docs/SOLAccount.md @@ -1,33 +1 @@ -# SOLAccount - -The accounts involved in the instruction - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | The name of the account | -**signer** | **bool** | Indicates if the account needs to sign the instruction. If true a signature for this account must be provided | [optional] -**writable** | **bool** | Indicates if the account's data can be changed by the instruction. | [optional] -**address** | **str** | The address of the account | [optional] - -## Example - -```python -from fireblocks.models.sol_account import SOLAccount - -# TODO update the JSON string below -json = "{}" -# create an instance of SOLAccount from a JSON string -sol_account_instance = SOLAccount.from_json(json) -# print the JSON string representation of the object -print(SOLAccount.to_json()) - -# convert the object into a dict -sol_account_dict = sol_account_instance.to_dict() -# create an instance of SOLAccount from a dict -sol_account_from_dict = SOLAccount.from_dict(sol_account_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTT0xBY2NvdW50CgpUaGUgYWNjb3VudHMgaW52b2x2ZWQgaW4gdGhlIGluc3RydWN0aW9uCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBuYW1lIG9mIHRoZSBhY2NvdW50IHwgCioqc2lnbmVyKiogfCAqKmJvb2wqKiB8IEluZGljYXRlcyBpZiB0aGUgYWNjb3VudCBuZWVkcyB0byBzaWduIHRoZSBpbnN0cnVjdGlvbi4gSWYgdHJ1ZSBhIHNpZ25hdHVyZSBmb3IgdGhpcyBhY2NvdW50IG11c3QgYmUgcHJvdmlkZWQgfCBbb3B0aW9uYWxdIAoqKndyaXRhYmxlKiogfCAqKmJvb2wqKiB8IEluZGljYXRlcyBpZiB0aGUgYWNjb3VudCYjMzk7cyBkYXRhIGNhbiBiZSBjaGFuZ2VkIGJ5IHRoZSBpbnN0cnVjdGlvbi4gfCBbb3B0aW9uYWxdIAoqKmFkZHJlc3MqKiB8ICoqc3RyKiogfCBUaGUgYWRkcmVzcyBvZiB0aGUgYWNjb3VudCB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zb2xfYWNjb3VudCBpbXBvcnQgU09MQWNjb3VudAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU09MQWNjb3VudCBmcm9tIGEgSlNPTiBzdHJpbmcKc29sX2FjY291bnRfaW5zdGFuY2UgPSBTT0xBY2NvdW50LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNPTEFjY291bnQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc29sX2FjY291bnRfZGljdCA9IHNvbF9hY2NvdW50X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTT0xBY2NvdW50IGZyb20gYSBkaWN0CnNvbF9hY2NvdW50X2Zyb21fZGljdCA9IFNPTEFjY291bnQuZnJvbV9kaWN0KHNvbF9hY2NvdW50X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SOLAccountWithValue.md b/docs/SOLAccountWithValue.md index c62ee989..f443a0c9 100644 --- a/docs/SOLAccountWithValue.md +++ b/docs/SOLAccountWithValue.md @@ -1,32 +1 @@ -# SOLAccountWithValue - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | The name of the account | -**signer** | **bool** | Indicates if the account needs to sign the instruction. If true a signature for this account must be provided | [optional] -**writable** | **bool** | Indicates if the account's data can be changed by the instruction. | [optional] -**address** | **str** | The address of the account | - -## Example - -```python -from fireblocks.models.sol_account_with_value import SOLAccountWithValue - -# TODO update the JSON string below -json = "{}" -# create an instance of SOLAccountWithValue from a JSON string -sol_account_with_value_instance = SOLAccountWithValue.from_json(json) -# print the JSON string representation of the object -print(SOLAccountWithValue.to_json()) - -# convert the object into a dict -sol_account_with_value_dict = sol_account_with_value_instance.to_dict() -# create an instance of SOLAccountWithValue from a dict -sol_account_with_value_from_dict = SOLAccountWithValue.from_dict(sol_account_with_value_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTT0xBY2NvdW50V2l0aFZhbHVlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm5hbWUqKiB8ICoqc3RyKiogfCBUaGUgbmFtZSBvZiB0aGUgYWNjb3VudCB8IAoqKnNpZ25lcioqIHwgKipib29sKiogfCBJbmRpY2F0ZXMgaWYgdGhlIGFjY291bnQgbmVlZHMgdG8gc2lnbiB0aGUgaW5zdHJ1Y3Rpb24uIElmIHRydWUgYSBzaWduYXR1cmUgZm9yIHRoaXMgYWNjb3VudCBtdXN0IGJlIHByb3ZpZGVkIHwgW29wdGlvbmFsXSAKKip3cml0YWJsZSoqIHwgKipib29sKiogfCBJbmRpY2F0ZXMgaWYgdGhlIGFjY291bnQmIzM5O3MgZGF0YSBjYW4gYmUgY2hhbmdlZCBieSB0aGUgaW5zdHJ1Y3Rpb24uIHwgW29wdGlvbmFsXSAKKiphZGRyZXNzKiogfCAqKnN0cioqIHwgVGhlIGFkZHJlc3Mgb2YgdGhlIGFjY291bnQgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvbF9hY2NvdW50X3dpdGhfdmFsdWUgaW1wb3J0IFNPTEFjY291bnRXaXRoVmFsdWUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNPTEFjY291bnRXaXRoVmFsdWUgZnJvbSBhIEpTT04gc3RyaW5nCnNvbF9hY2NvdW50X3dpdGhfdmFsdWVfaW5zdGFuY2UgPSBTT0xBY2NvdW50V2l0aFZhbHVlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNPTEFjY291bnRXaXRoVmFsdWUudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc29sX2FjY291bnRfd2l0aF92YWx1ZV9kaWN0ID0gc29sX2FjY291bnRfd2l0aF92YWx1ZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU09MQWNjb3VudFdpdGhWYWx1ZSBmcm9tIGEgZGljdApzb2xfYWNjb3VudF93aXRoX3ZhbHVlX2Zyb21fZGljdCA9IFNPTEFjY291bnRXaXRoVmFsdWUuZnJvbV9kaWN0KHNvbF9hY2NvdW50X3dpdGhfdmFsdWVfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ScopeItem.md b/docs/ScopeItem.md index 6c5f9958..a33f2d3d 100644 --- a/docs/ScopeItem.md +++ b/docs/ScopeItem.md @@ -1,30 +1 @@ -# ScopeItem - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**provider_id** | **str** | The ID of the provider associated with the account. | -**account_id** | **str** | The ID of the account associated with the provider. | [optional] - -## Example - -```python -from fireblocks.models.scope_item import ScopeItem - -# TODO update the JSON string below -json = "{}" -# create an instance of ScopeItem from a JSON string -scope_item_instance = ScopeItem.from_json(json) -# print the JSON string representation of the object -print(ScopeItem.to_json()) - -# convert the object into a dict -scope_item_dict = scope_item_instance.to_dict() -# create an instance of ScopeItem from a dict -scope_item_from_dict = ScopeItem.from_dict(scope_item_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY29wZUl0ZW0KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcHJvdmlkZXJfaWQqKiB8ICoqc3RyKiogfCBUaGUgSUQgb2YgdGhlIHByb3ZpZGVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgYWNjb3VudC4gfCAKKiphY2NvdW50X2lkKiogfCAqKnN0cioqIHwgVGhlIElEIG9mIHRoZSBhY2NvdW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJvdmlkZXIuIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjb3BlX2l0ZW0gaW1wb3J0IFNjb3BlSXRlbQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NvcGVJdGVtIGZyb20gYSBKU09OIHN0cmluZwpzY29wZV9pdGVtX2luc3RhbmNlID0gU2NvcGVJdGVtLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNjb3BlSXRlbS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzY29wZV9pdGVtX2RpY3QgPSBzY29wZV9pdGVtX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY29wZUl0ZW0gZnJvbSBhIGRpY3QKc2NvcGVfaXRlbV9mcm9tX2RpY3QgPSBTY29wZUl0ZW0uZnJvbV9kaWN0KHNjb3BlX2l0ZW1fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ScreeningAlertExposureTypeEnum.md b/docs/ScreeningAlertExposureTypeEnum.md index e1de9823..d947cdec 100644 --- a/docs/ScreeningAlertExposureTypeEnum.md +++ b/docs/ScreeningAlertExposureTypeEnum.md @@ -1,13 +1 @@ -# ScreeningAlertExposureTypeEnum - -Alert exposure type - -## Enum - -* `DIRECT` (value: `'DIRECT'`) - -* `INDIRECT` (value: `'INDIRECT'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdBbGVydEV4cG9zdXJlVHlwZUVudW0KCkFsZXJ0IGV4cG9zdXJlIHR5cGUKCiMjIEVudW0KCiogYERJUkVDVGAgKHZhbHVlOiBgJ0RJUkVDVCdgKQoKKiBgSU5ESVJFQ1RgICh2YWx1ZTogYCdJTkRJUkVDVCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ScreeningAmlAlert.md b/docs/ScreeningAmlAlert.md index c5795311..31c5b612 100644 --- a/docs/ScreeningAmlAlert.md +++ b/docs/ScreeningAmlAlert.md @@ -1,38 +1 @@ -# ScreeningAmlAlert - -AML alert information - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**alert_level** | [**AlertLevelEnum**](AlertLevelEnum.md) | | -**alert_name** | **str** | Name or type of the alert | [optional] -**category** | **str** | Alert category | [optional] -**service** | **str** | Service that generated the alert | [optional] -**external_id** | **str** | External identifier for the alert | -**alert_amount** | **float** | Amount associated with the alert | -**exposure_type** | [**ScreeningAlertExposureTypeEnum**](ScreeningAlertExposureTypeEnum.md) | | -**policy_action** | **str** | Recommended action based on policy | [optional] -**category_id** | **float** | Category identifier | [optional] - -## Example - -```python -from fireblocks.models.screening_aml_alert import ScreeningAmlAlert - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningAmlAlert from a JSON string -screening_aml_alert_instance = ScreeningAmlAlert.from_json(json) -# print the JSON string representation of the object -print(ScreeningAmlAlert.to_json()) - -# convert the object into a dict -screening_aml_alert_dict = screening_aml_alert_instance.to_dict() -# create an instance of ScreeningAmlAlert from a dict -screening_aml_alert_from_dict = ScreeningAmlAlert.from_dict(screening_aml_alert_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdBbWxBbGVydAoKQU1MIGFsZXJ0IGluZm9ybWF0aW9uCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYWxlcnRfbGV2ZWwqKiB8IFsqKkFsZXJ0TGV2ZWxFbnVtKipdKEFsZXJ0TGV2ZWxFbnVtLm1kKSB8ICB8IAoqKmFsZXJ0X25hbWUqKiB8ICoqc3RyKiogfCBOYW1lIG9yIHR5cGUgb2YgdGhlIGFsZXJ0IHwgW29wdGlvbmFsXSAKKipjYXRlZ29yeSoqIHwgKipzdHIqKiB8IEFsZXJ0IGNhdGVnb3J5IHwgW29wdGlvbmFsXSAKKipzZXJ2aWNlKiogfCAqKnN0cioqIHwgU2VydmljZSB0aGF0IGdlbmVyYXRlZCB0aGUgYWxlcnQgfCBbb3B0aW9uYWxdIAoqKmV4dGVybmFsX2lkKiogfCAqKnN0cioqIHwgRXh0ZXJuYWwgaWRlbnRpZmllciBmb3IgdGhlIGFsZXJ0IHwgCioqYWxlcnRfYW1vdW50KiogfCAqKmZsb2F0KiogfCBBbW91bnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBhbGVydCB8IAoqKmV4cG9zdXJlX3R5cGUqKiB8IFsqKlNjcmVlbmluZ0FsZXJ0RXhwb3N1cmVUeXBlRW51bSoqXShTY3JlZW5pbmdBbGVydEV4cG9zdXJlVHlwZUVudW0ubWQpIHwgIHwgCioqcG9saWN5X2FjdGlvbioqIHwgKipzdHIqKiB8IFJlY29tbWVuZGVkIGFjdGlvbiBiYXNlZCBvbiBwb2xpY3kgfCBbb3B0aW9uYWxdIAoqKmNhdGVnb3J5X2lkKiogfCAqKmZsb2F0KiogfCBDYXRlZ29yeSBpZGVudGlmaWVyIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19hbWxfYWxlcnQgaW1wb3J0IFNjcmVlbmluZ0FtbEFsZXJ0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdBbWxBbGVydCBmcm9tIGEgSlNPTiBzdHJpbmcKc2NyZWVuaW5nX2FtbF9hbGVydF9pbnN0YW5jZSA9IFNjcmVlbmluZ0FtbEFsZXJ0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNjcmVlbmluZ0FtbEFsZXJ0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNjcmVlbmluZ19hbWxfYWxlcnRfZGljdCA9IHNjcmVlbmluZ19hbWxfYWxlcnRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ0FtbEFsZXJ0IGZyb20gYSBkaWN0CnNjcmVlbmluZ19hbWxfYWxlcnRfZnJvbV9kaWN0ID0gU2NyZWVuaW5nQW1sQWxlcnQuZnJvbV9kaWN0KHNjcmVlbmluZ19hbWxfYWxlcnRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ScreeningAmlMatchedRule.md b/docs/ScreeningAmlMatchedRule.md index b51c160e..90bee20d 100644 --- a/docs/ScreeningAmlMatchedRule.md +++ b/docs/ScreeningAmlMatchedRule.md @@ -1,32 +1 @@ -# ScreeningAmlMatchedRule - -AML matched rule information - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**rule_id** | **str** | Identifier of the matched rule | [optional] -**rule_name** | **str** | Name of the matched rule | [optional] -**action** | [**PolicyVerdictActionEnum2**](PolicyVerdictActionEnum2.md) | | [optional] - -## Example - -```python -from fireblocks.models.screening_aml_matched_rule import ScreeningAmlMatchedRule - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningAmlMatchedRule from a JSON string -screening_aml_matched_rule_instance = ScreeningAmlMatchedRule.from_json(json) -# print the JSON string representation of the object -print(ScreeningAmlMatchedRule.to_json()) - -# convert the object into a dict -screening_aml_matched_rule_dict = screening_aml_matched_rule_instance.to_dict() -# create an instance of ScreeningAmlMatchedRule from a dict -screening_aml_matched_rule_from_dict = ScreeningAmlMatchedRule.from_dict(screening_aml_matched_rule_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdBbWxNYXRjaGVkUnVsZQoKQU1MIG1hdGNoZWQgcnVsZSBpbmZvcm1hdGlvbgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnJ1bGVfaWQqKiB8ICoqc3RyKiogfCBJZGVudGlmaWVyIG9mIHRoZSBtYXRjaGVkIHJ1bGUgfCBbb3B0aW9uYWxdIAoqKnJ1bGVfbmFtZSoqIHwgKipzdHIqKiB8IE5hbWUgb2YgdGhlIG1hdGNoZWQgcnVsZSB8IFtvcHRpb25hbF0gCioqYWN0aW9uKiogfCBbKipQb2xpY3lWZXJkaWN0QWN0aW9uRW51bTIqKl0oUG9saWN5VmVyZGljdEFjdGlvbkVudW0yLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfYW1sX21hdGNoZWRfcnVsZSBpbXBvcnQgU2NyZWVuaW5nQW1sTWF0Y2hlZFJ1bGUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ0FtbE1hdGNoZWRSdWxlIGZyb20gYSBKU09OIHN0cmluZwpzY3JlZW5pbmdfYW1sX21hdGNoZWRfcnVsZV9pbnN0YW5jZSA9IFNjcmVlbmluZ0FtbE1hdGNoZWRSdWxlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNjcmVlbmluZ0FtbE1hdGNoZWRSdWxlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNjcmVlbmluZ19hbWxfbWF0Y2hlZF9ydWxlX2RpY3QgPSBzY3JlZW5pbmdfYW1sX21hdGNoZWRfcnVsZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nQW1sTWF0Y2hlZFJ1bGUgZnJvbSBhIGRpY3QKc2NyZWVuaW5nX2FtbF9tYXRjaGVkX3J1bGVfZnJvbV9kaWN0ID0gU2NyZWVuaW5nQW1sTWF0Y2hlZFJ1bGUuZnJvbV9kaWN0KHNjcmVlbmluZ19hbWxfbWF0Y2hlZF9ydWxlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ScreeningAmlResult.md b/docs/ScreeningAmlResult.md index ea61c52d..ce16269b 100644 --- a/docs/ScreeningAmlResult.md +++ b/docs/ScreeningAmlResult.md @@ -1,33 +1 @@ -# ScreeningAmlResult - -Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**alerts** | [**List[ScreeningAmlAlert]**](ScreeningAmlAlert.md) | List of AML alerts triggered during screening | [optional] -**provider_response** | **Dict[str, object]** | Complete response from the AML provider. This is a dynamic object that varies significantly between different AML providers (Chainalysis, Elliptic, etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - Chainalysis: Contains cluster info, risk scores, sanctions data - Elliptic: Includes risk assessment, entity types, compliance flags The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. | [optional] -**matched_rule** | [**ScreeningAmlMatchedRule**](ScreeningAmlMatchedRule.md) | | [optional] -**matched_alert** | [**ScreeningAmlAlert**](ScreeningAmlAlert.md) | | [optional] - -## Example - -```python -from fireblocks.models.screening_aml_result import ScreeningAmlResult - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningAmlResult from a JSON string -screening_aml_result_instance = ScreeningAmlResult.from_json(json) -# print the JSON string representation of the object -print(ScreeningAmlResult.to_json()) - -# convert the object into a dict -screening_aml_result_dict = screening_aml_result_instance.to_dict() -# create an instance of ScreeningAmlResult from a dict -screening_aml_result_from_dict = ScreeningAmlResult.from_dict(screening_aml_result_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdBbWxSZXN1bHQKCkRlcHJlY2F0ZWQ6IFRoaXMgZmllbGQgaXMgbm90IGN1cnJlbnRseSByZXR1cm5lZCBpbiB0aGUgQVBJIHJlc3BvbnNlLiBEZXRhaWxlZCBBTUwgc2NyZWVuaW5nIHJlc3VsdCBpbmZvcm1hdGlvbi4gQ29udGFpbnMgYWxlcnRzLCByaXNrIHNjb3JlcywgYW5kIG90aGVyIEFNTC1zcGVjaWZpYyBkYXRhIGZyb20gcHJvdmlkZXItc3BlY2lmaWMgcmVzcG9uc2VzLiAKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphbGVydHMqKiB8IFsqKkxpc3RbU2NyZWVuaW5nQW1sQWxlcnRdKipdKFNjcmVlbmluZ0FtbEFsZXJ0Lm1kKSB8IExpc3Qgb2YgQU1MIGFsZXJ0cyB0cmlnZ2VyZWQgZHVyaW5nIHNjcmVlbmluZyB8IFtvcHRpb25hbF0gCioqcHJvdmlkZXJfcmVzcG9uc2UqKiB8ICoqRGljdFtzdHIsIG9iamVjdF0qKiB8IENvbXBsZXRlIHJlc3BvbnNlIGZyb20gdGhlIEFNTCBwcm92aWRlci4gVGhpcyBpcyBhIGR5bmFtaWMgb2JqZWN0IHRoYXQgdmFyaWVzIHNpZ25pZmljYW50bHkgYmV0d2VlbiBkaWZmZXJlbnQgQU1MIHByb3ZpZGVycyAoQ2hhaW5hbHlzaXMsIEVsbGlwdGljLCBldGMuKS4gRWFjaCBwcm92aWRlciBoYXMgdGhlaXIgb3duIHByb3ByaWV0YXJ5IHJlc3BvbnNlIGZvcm1hdCBhbmQgc2NoZW1hLiAgRXhhbXBsZXMgb2YgcHJvdmlkZXItc3BlY2lmaWMgc3RydWN0dXJlczogLSBDaGFpbmFseXNpczogQ29udGFpbnMgY2x1c3RlciBpbmZvLCByaXNrIHNjb3Jlcywgc2FuY3Rpb25zIGRhdGEgLSBFbGxpcHRpYzogSW5jbHVkZXMgcmlzayBhc3Nlc3NtZW50LCBlbnRpdHkgdHlwZXMsIGNvbXBsaWFuY2UgZmxhZ3MgIFRoZSBzdHJ1Y3R1cmUgaXMgcHJvdmlkZXItZGVwZW5kZW50IGFuZCBjYW5ub3QgYmUgc3RhbmRhcmRpemVkIGFzIGVhY2ggdmVuZG9yIGltcGxlbWVudHMgdGhlaXIgb3duIHByb3ByaWV0YXJ5IGRhdGEgbW9kZWxzIGFuZCByZXNwb25zZSBmb3JtYXRzLiAgfCBbb3B0aW9uYWxdIAoqKm1hdGNoZWRfcnVsZSoqIHwgWyoqU2NyZWVuaW5nQW1sTWF0Y2hlZFJ1bGUqKl0oU2NyZWVuaW5nQW1sTWF0Y2hlZFJ1bGUubWQpIHwgIHwgW29wdGlvbmFsXSAKKiptYXRjaGVkX2FsZXJ0KiogfCBbKipTY3JlZW5pbmdBbWxBbGVydCoqXShTY3JlZW5pbmdBbWxBbGVydC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX2FtbF9yZXN1bHQgaW1wb3J0IFNjcmVlbmluZ0FtbFJlc3VsdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nQW1sUmVzdWx0IGZyb20gYSBKU09OIHN0cmluZwpzY3JlZW5pbmdfYW1sX3Jlc3VsdF9pbnN0YW5jZSA9IFNjcmVlbmluZ0FtbFJlc3VsdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTY3JlZW5pbmdBbWxSZXN1bHQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2NyZWVuaW5nX2FtbF9yZXN1bHRfZGljdCA9IHNjcmVlbmluZ19hbWxfcmVzdWx0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdBbWxSZXN1bHQgZnJvbSBhIGRpY3QKc2NyZWVuaW5nX2FtbF9yZXN1bHRfZnJvbV9kaWN0ID0gU2NyZWVuaW5nQW1sUmVzdWx0LmZyb21fZGljdChzY3JlZW5pbmdfYW1sX3Jlc3VsdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ScreeningConfigurationsRequest.md b/docs/ScreeningConfigurationsRequest.md index 08cf6169..7beac797 100644 --- a/docs/ScreeningConfigurationsRequest.md +++ b/docs/ScreeningConfigurationsRequest.md @@ -1,31 +1 @@ -# ScreeningConfigurationsRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**bypass_screening_during_service_outages** | **bool** | Flag to enable or disable bypass screening during service outages. | [optional] -**inbound_transaction_delay** | **float** | Inbound transaction delay in seconds. | [optional] -**outbound_transaction_delay** | **float** | Outbound transaction delay in seconds. | [optional] - -## Example - -```python -from fireblocks.models.screening_configurations_request import ScreeningConfigurationsRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningConfigurationsRequest from a JSON string -screening_configurations_request_instance = ScreeningConfigurationsRequest.from_json(json) -# print the JSON string representation of the object -print(ScreeningConfigurationsRequest.to_json()) - -# convert the object into a dict -screening_configurations_request_dict = screening_configurations_request_instance.to_dict() -# create an instance of ScreeningConfigurationsRequest from a dict -screening_configurations_request_from_dict = ScreeningConfigurationsRequest.from_dict(screening_configurations_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdDb25maWd1cmF0aW9uc1JlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYnlwYXNzX3NjcmVlbmluZ19kdXJpbmdfc2VydmljZV9vdXRhZ2VzKiogfCAqKmJvb2wqKiB8IEZsYWcgdG8gZW5hYmxlIG9yIGRpc2FibGUgYnlwYXNzIHNjcmVlbmluZyBkdXJpbmcgc2VydmljZSBvdXRhZ2VzLiB8IFtvcHRpb25hbF0gCioqaW5ib3VuZF90cmFuc2FjdGlvbl9kZWxheSoqIHwgKipmbG9hdCoqIHwgSW5ib3VuZCB0cmFuc2FjdGlvbiBkZWxheSBpbiBzZWNvbmRzLiB8IFtvcHRpb25hbF0gCioqb3V0Ym91bmRfdHJhbnNhY3Rpb25fZGVsYXkqKiB8ICoqZmxvYXQqKiB8IE91dGJvdW5kIHRyYW5zYWN0aW9uIGRlbGF5IGluIHNlY29uZHMuIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19jb25maWd1cmF0aW9uc19yZXF1ZXN0IGltcG9ydCBTY3JlZW5pbmdDb25maWd1cmF0aW9uc1JlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ0NvbmZpZ3VyYXRpb25zUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb25zX3JlcXVlc3RfaW5zdGFuY2UgPSBTY3JlZW5pbmdDb25maWd1cmF0aW9uc1JlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU2NyZWVuaW5nQ29uZmlndXJhdGlvbnNSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNjcmVlbmluZ19jb25maWd1cmF0aW9uc19yZXF1ZXN0X2RpY3QgPSBzY3JlZW5pbmdfY29uZmlndXJhdGlvbnNfcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nQ29uZmlndXJhdGlvbnNSZXF1ZXN0IGZyb20gYSBkaWN0CnNjcmVlbmluZ19jb25maWd1cmF0aW9uc19yZXF1ZXN0X2Zyb21fZGljdCA9IFNjcmVlbmluZ0NvbmZpZ3VyYXRpb25zUmVxdWVzdC5mcm9tX2RpY3Qoc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb25zX3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ScreeningMetadataConfig.md b/docs/ScreeningMetadataConfig.md index 156bd61b..d0ff1a39 100644 --- a/docs/ScreeningMetadataConfig.md +++ b/docs/ScreeningMetadataConfig.md @@ -1,40 +1 @@ -# ScreeningMetadataConfig - -Screening metadata configuration - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**direction** | **str** | Direction of transaction | [optional] -**provider** | **str** | Screening provider | [optional] -**risk_rating** | **str** | Risk rating threshold | [optional] -**risk_score** | **str** | Risk score threshold | [optional] -**exposure_type** | **str** | Exposure type | [optional] -**category** | **List[str]** | | [optional] -**name** | **List[str]** | | [optional] -**category_id** | **List[str]** | | [optional] -**status** | **str** | Transaction status | [optional] -**source_address** | **str** | Source address | [optional] -**dest_address** | **str** | Destination address | [optional] - -## Example - -```python -from fireblocks.models.screening_metadata_config import ScreeningMetadataConfig - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningMetadataConfig from a JSON string -screening_metadata_config_instance = ScreeningMetadataConfig.from_json(json) -# print the JSON string representation of the object -print(ScreeningMetadataConfig.to_json()) - -# convert the object into a dict -screening_metadata_config_dict = screening_metadata_config_instance.to_dict() -# create an instance of ScreeningMetadataConfig from a dict -screening_metadata_config_from_dict = ScreeningMetadataConfig.from_dict(screening_metadata_config_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdNZXRhZGF0YUNvbmZpZwoKU2NyZWVuaW5nIG1ldGFkYXRhIGNvbmZpZ3VyYXRpb24KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkaXJlY3Rpb24qKiB8ICoqc3RyKiogfCBEaXJlY3Rpb24gb2YgdHJhbnNhY3Rpb24gfCBbb3B0aW9uYWxdIAoqKnByb3ZpZGVyKiogfCAqKnN0cioqIHwgU2NyZWVuaW5nIHByb3ZpZGVyIHwgW29wdGlvbmFsXSAKKipyaXNrX3JhdGluZyoqIHwgKipzdHIqKiB8IFJpc2sgcmF0aW5nIHRocmVzaG9sZCB8IFtvcHRpb25hbF0gCioqcmlza19zY29yZSoqIHwgKipzdHIqKiB8IFJpc2sgc2NvcmUgdGhyZXNob2xkIHwgW29wdGlvbmFsXSAKKipleHBvc3VyZV90eXBlKiogfCAqKnN0cioqIHwgRXhwb3N1cmUgdHlwZSB8IFtvcHRpb25hbF0gCioqY2F0ZWdvcnkqKiB8ICoqTGlzdFtzdHJdKiogfCAgfCBbb3B0aW9uYWxdIAoqKm5hbWUqKiB8ICoqTGlzdFtzdHJdKiogfCAgfCBbb3B0aW9uYWxdIAoqKmNhdGVnb3J5X2lkKiogfCAqKkxpc3Rbc3RyXSoqIHwgIHwgW29wdGlvbmFsXSAKKipzdGF0dXMqKiB8ICoqc3RyKiogfCBUcmFuc2FjdGlvbiBzdGF0dXMgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9hZGRyZXNzKiogfCAqKnN0cioqIHwgU291cmNlIGFkZHJlc3MgfCBbb3B0aW9uYWxdIAoqKmRlc3RfYWRkcmVzcyoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIGFkZHJlc3MgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX21ldGFkYXRhX2NvbmZpZyBpbXBvcnQgU2NyZWVuaW5nTWV0YWRhdGFDb25maWcKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ01ldGFkYXRhQ29uZmlnIGZyb20gYSBKU09OIHN0cmluZwpzY3JlZW5pbmdfbWV0YWRhdGFfY29uZmlnX2luc3RhbmNlID0gU2NyZWVuaW5nTWV0YWRhdGFDb25maWcuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU2NyZWVuaW5nTWV0YWRhdGFDb25maWcudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2NyZWVuaW5nX21ldGFkYXRhX2NvbmZpZ19kaWN0ID0gc2NyZWVuaW5nX21ldGFkYXRhX2NvbmZpZ19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nTWV0YWRhdGFDb25maWcgZnJvbSBhIGRpY3QKc2NyZWVuaW5nX21ldGFkYXRhX2NvbmZpZ19mcm9tX2RpY3QgPSBTY3JlZW5pbmdNZXRhZGF0YUNvbmZpZy5mcm9tX2RpY3Qoc2NyZWVuaW5nX21ldGFkYXRhX2NvbmZpZ19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ScreeningOperationExecution.md b/docs/ScreeningOperationExecution.md index d1acc9c7..7aea2f12 100644 --- a/docs/ScreeningOperationExecution.md +++ b/docs/ScreeningOperationExecution.md @@ -1,32 +1 @@ -# ScreeningOperationExecution - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**output** | [**ScreeningOperationExecutionOutput**](ScreeningOperationExecutionOutput.md) | | [optional] -**started_at** | **float** | | -**finished_at** | **float** | | [optional] -**failure** | [**ScreeningOperationFailure**](ScreeningOperationFailure.md) | | [optional] - -## Example - -```python -from fireblocks.models.screening_operation_execution import ScreeningOperationExecution - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningOperationExecution from a JSON string -screening_operation_execution_instance = ScreeningOperationExecution.from_json(json) -# print the JSON string representation of the object -print(ScreeningOperationExecution.to_json()) - -# convert the object into a dict -screening_operation_execution_dict = screening_operation_execution_instance.to_dict() -# create an instance of ScreeningOperationExecution from a dict -screening_operation_execution_from_dict = ScreeningOperationExecution.from_dict(screening_operation_execution_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqb3V0cHV0KiogfCBbKipTY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQqKl0oU2NyZWVuaW5nT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc3RhcnRlZF9hdCoqIHwgKipmbG9hdCoqIHwgIHwgCioqZmluaXNoZWRfYXQqKiB8ICoqZmxvYXQqKiB8ICB8IFtvcHRpb25hbF0gCioqZmFpbHVyZSoqIHwgWyoqU2NyZWVuaW5nT3BlcmF0aW9uRmFpbHVyZSoqXShTY3JlZW5pbmdPcGVyYXRpb25GYWlsdXJlLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfb3BlcmF0aW9uX2V4ZWN1dGlvbiBpbXBvcnQgU2NyZWVuaW5nT3BlcmF0aW9uRXhlY3V0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCnNjcmVlbmluZ19vcGVyYXRpb25fZXhlY3V0aW9uX2luc3RhbmNlID0gU2NyZWVuaW5nT3BlcmF0aW9uRXhlY3V0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzY3JlZW5pbmdfb3BlcmF0aW9uX2V4ZWN1dGlvbl9kaWN0ID0gc2NyZWVuaW5nX29wZXJhdGlvbl9leGVjdXRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbiBmcm9tIGEgZGljdApzY3JlZW5pbmdfb3BlcmF0aW9uX2V4ZWN1dGlvbl9mcm9tX2RpY3QgPSBTY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb24uZnJvbV9kaWN0KHNjcmVlbmluZ19vcGVyYXRpb25fZXhlY3V0aW9uX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ScreeningOperationExecutionOutput.md b/docs/ScreeningOperationExecutionOutput.md index c6c65694..7167397b 100644 --- a/docs/ScreeningOperationExecutionOutput.md +++ b/docs/ScreeningOperationExecutionOutput.md @@ -1,29 +1 @@ -# ScreeningOperationExecutionOutput - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**verdicts** | [**List[ScreeningVerdict]**](ScreeningVerdict.md) | | - -## Example - -```python -from fireblocks.models.screening_operation_execution_output import ScreeningOperationExecutionOutput - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningOperationExecutionOutput from a JSON string -screening_operation_execution_output_instance = ScreeningOperationExecutionOutput.from_json(json) -# print the JSON string representation of the object -print(ScreeningOperationExecutionOutput.to_json()) - -# convert the object into a dict -screening_operation_execution_output_dict = screening_operation_execution_output_instance.to_dict() -# create an instance of ScreeningOperationExecutionOutput from a dict -screening_operation_execution_output_from_dict = ScreeningOperationExecutionOutput.from_dict(screening_operation_execution_output_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdmVyZGljdHMqKiB8IFsqKkxpc3RbU2NyZWVuaW5nVmVyZGljdF0qKl0oU2NyZWVuaW5nVmVyZGljdC5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dCBpbXBvcnQgU2NyZWVuaW5nT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQgZnJvbSBhIEpTT04gc3RyaW5nCnNjcmVlbmluZ19vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dF9pbnN0YW5jZSA9IFNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2NyZWVuaW5nX29wZXJhdGlvbl9leGVjdXRpb25fb3V0cHV0X2RpY3QgPSBzY3JlZW5pbmdfb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCBmcm9tIGEgZGljdApzY3JlZW5pbmdfb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXRfZnJvbV9kaWN0ID0gU2NyZWVuaW5nT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0LmZyb21fZGljdChzY3JlZW5pbmdfb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ScreeningOperationFailure.md b/docs/ScreeningOperationFailure.md index fff0bd09..122d933d 100644 --- a/docs/ScreeningOperationFailure.md +++ b/docs/ScreeningOperationFailure.md @@ -1,30 +1 @@ -# ScreeningOperationFailure - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**reason** | **str** | | -**data** | [**ScreeningOperationExecutionOutput**](ScreeningOperationExecutionOutput.md) | | [optional] - -## Example - -```python -from fireblocks.models.screening_operation_failure import ScreeningOperationFailure - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningOperationFailure from a JSON string -screening_operation_failure_instance = ScreeningOperationFailure.from_json(json) -# print the JSON string representation of the object -print(ScreeningOperationFailure.to_json()) - -# convert the object into a dict -screening_operation_failure_dict = screening_operation_failure_instance.to_dict() -# create an instance of ScreeningOperationFailure from a dict -screening_operation_failure_from_dict = ScreeningOperationFailure.from_dict(screening_operation_failure_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdPcGVyYXRpb25GYWlsdXJlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnJlYXNvbioqIHwgKipzdHIqKiB8ICB8IAoqKmRhdGEqKiB8IFsqKlNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCoqXShTY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19vcGVyYXRpb25fZmFpbHVyZSBpbXBvcnQgU2NyZWVuaW5nT3BlcmF0aW9uRmFpbHVyZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nT3BlcmF0aW9uRmFpbHVyZSBmcm9tIGEgSlNPTiBzdHJpbmcKc2NyZWVuaW5nX29wZXJhdGlvbl9mYWlsdXJlX2luc3RhbmNlID0gU2NyZWVuaW5nT3BlcmF0aW9uRmFpbHVyZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTY3JlZW5pbmdPcGVyYXRpb25GYWlsdXJlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNjcmVlbmluZ19vcGVyYXRpb25fZmFpbHVyZV9kaWN0ID0gc2NyZWVuaW5nX29wZXJhdGlvbl9mYWlsdXJlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdPcGVyYXRpb25GYWlsdXJlIGZyb20gYSBkaWN0CnNjcmVlbmluZ19vcGVyYXRpb25fZmFpbHVyZV9mcm9tX2RpY3QgPSBTY3JlZW5pbmdPcGVyYXRpb25GYWlsdXJlLmZyb21fZGljdChzY3JlZW5pbmdfb3BlcmF0aW9uX2ZhaWx1cmVfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ScreeningOperationType.md b/docs/ScreeningOperationType.md index 0ed95b96..16e16816 100644 --- a/docs/ScreeningOperationType.md +++ b/docs/ScreeningOperationType.md @@ -1,10 +1 @@ -# ScreeningOperationType - - -## Enum - -* `SCREENING` (value: `'SCREENING'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdPcGVyYXRpb25UeXBlCgoKIyMgRW51bQoKKiBgU0NSRUVOSU5HYCAodmFsdWU6IGAnU0NSRUVOSU5HJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ScreeningPolicyResponse.md b/docs/ScreeningPolicyResponse.md index 49490f84..fc9b2a76 100644 --- a/docs/ScreeningPolicyResponse.md +++ b/docs/ScreeningPolicyResponse.md @@ -1,33 +1 @@ -# ScreeningPolicyResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**policy** | [**TravelRulePolicyRuleResponse**](TravelRulePolicyRuleResponse.md) | | -**policy_status** | **str** | | [optional] -**is_default** | **bool** | | -**create_date** | **datetime** | | [optional] -**last_update** | **datetime** | | - -## Example - -```python -from fireblocks.models.screening_policy_response import ScreeningPolicyResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningPolicyResponse from a JSON string -screening_policy_response_instance = ScreeningPolicyResponse.from_json(json) -# print the JSON string representation of the object -print(ScreeningPolicyResponse.to_json()) - -# convert the object into a dict -screening_policy_response_dict = screening_policy_response_instance.to_dict() -# create an instance of ScreeningPolicyResponse from a dict -screening_policy_response_from_dict = ScreeningPolicyResponse.from_dict(screening_policy_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdQb2xpY3lSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipwb2xpY3kqKiB8IFsqKlRyYXZlbFJ1bGVQb2xpY3lSdWxlUmVzcG9uc2UqKl0oVHJhdmVsUnVsZVBvbGljeVJ1bGVSZXNwb25zZS5tZCkgfCAgfCAKKipwb2xpY3lfc3RhdHVzKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKippc19kZWZhdWx0KiogfCAqKmJvb2wqKiB8ICB8IAoqKmNyZWF0ZV9kYXRlKiogfCAqKmRhdGV0aW1lKiogfCAgfCBbb3B0aW9uYWxdIAoqKmxhc3RfdXBkYXRlKiogfCAqKmRhdGV0aW1lKiogfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19wb2xpY3lfcmVzcG9uc2UgaW1wb3J0IFNjcmVlbmluZ1BvbGljeVJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdQb2xpY3lSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKc2NyZWVuaW5nX3BvbGljeV9yZXNwb25zZV9pbnN0YW5jZSA9IFNjcmVlbmluZ1BvbGljeVJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNjcmVlbmluZ1BvbGljeVJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNjcmVlbmluZ19wb2xpY3lfcmVzcG9uc2VfZGljdCA9IHNjcmVlbmluZ19wb2xpY3lfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ1BvbGljeVJlc3BvbnNlIGZyb20gYSBkaWN0CnNjcmVlbmluZ19wb2xpY3lfcmVzcG9uc2VfZnJvbV9kaWN0ID0gU2NyZWVuaW5nUG9saWN5UmVzcG9uc2UuZnJvbV9kaWN0KHNjcmVlbmluZ19wb2xpY3lfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ScreeningProviderRulesConfigurationResponse.md b/docs/ScreeningProviderRulesConfigurationResponse.md index 18f0837e..1da55835 100644 --- a/docs/ScreeningProviderRulesConfigurationResponse.md +++ b/docs/ScreeningProviderRulesConfigurationResponse.md @@ -1,34 +1 @@ -# ScreeningProviderRulesConfigurationResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**direction** | **str** | | [optional] -**status** | **str** | | [optional] -**amount_usd** | **float** | | [optional] -**amount** | **float** | | [optional] -**asset** | **str** | | [optional] -**action** | **str** | | - -## Example - -```python -from fireblocks.models.screening_provider_rules_configuration_response import ScreeningProviderRulesConfigurationResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningProviderRulesConfigurationResponse from a JSON string -screening_provider_rules_configuration_response_instance = ScreeningProviderRulesConfigurationResponse.from_json(json) -# print the JSON string representation of the object -print(ScreeningProviderRulesConfigurationResponse.to_json()) - -# convert the object into a dict -screening_provider_rules_configuration_response_dict = screening_provider_rules_configuration_response_instance.to_dict() -# create an instance of ScreeningProviderRulesConfigurationResponse from a dict -screening_provider_rules_configuration_response_from_dict = ScreeningProviderRulesConfigurationResponse.from_dict(screening_provider_rules_configuration_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdQcm92aWRlclJ1bGVzQ29uZmlndXJhdGlvblJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmRpcmVjdGlvbioqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqc3RhdHVzKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKiphbW91bnRfdXNkKiogfCAqKmZsb2F0KiogfCAgfCBbb3B0aW9uYWxdIAoqKmFtb3VudCoqIHwgKipmbG9hdCoqIHwgIHwgW29wdGlvbmFsXSAKKiphc3NldCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqYWN0aW9uKiogfCAqKnN0cioqIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfcHJvdmlkZXJfcnVsZXNfY29uZmlndXJhdGlvbl9yZXNwb25zZSBpbXBvcnQgU2NyZWVuaW5nUHJvdmlkZXJSdWxlc0NvbmZpZ3VyYXRpb25SZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nUHJvdmlkZXJSdWxlc0NvbmZpZ3VyYXRpb25SZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKc2NyZWVuaW5nX3Byb3ZpZGVyX3J1bGVzX2NvbmZpZ3VyYXRpb25fcmVzcG9uc2VfaW5zdGFuY2UgPSBTY3JlZW5pbmdQcm92aWRlclJ1bGVzQ29uZmlndXJhdGlvblJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNjcmVlbmluZ1Byb3ZpZGVyUnVsZXNDb25maWd1cmF0aW9uUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2NyZWVuaW5nX3Byb3ZpZGVyX3J1bGVzX2NvbmZpZ3VyYXRpb25fcmVzcG9uc2VfZGljdCA9IHNjcmVlbmluZ19wcm92aWRlcl9ydWxlc19jb25maWd1cmF0aW9uX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdQcm92aWRlclJ1bGVzQ29uZmlndXJhdGlvblJlc3BvbnNlIGZyb20gYSBkaWN0CnNjcmVlbmluZ19wcm92aWRlcl9ydWxlc19jb25maWd1cmF0aW9uX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFNjcmVlbmluZ1Byb3ZpZGVyUnVsZXNDb25maWd1cmF0aW9uUmVzcG9uc2UuZnJvbV9kaWN0KHNjcmVlbmluZ19wcm92aWRlcl9ydWxlc19jb25maWd1cmF0aW9uX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ScreeningTRLinkAmount.md b/docs/ScreeningTRLinkAmount.md index bb0835b3..53367bf0 100644 --- a/docs/ScreeningTRLinkAmount.md +++ b/docs/ScreeningTRLinkAmount.md @@ -1,31 +1 @@ -# ScreeningTRLinkAmount - -TRLink amount definition with range and currency, compatible with TAP format from Policy Engine V2 - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**range** | [**AmountRangeMinMax**](AmountRangeMinMax.md) | | [optional] -**currency** | **str** | Currency type | [optional] - -## Example - -```python -from fireblocks.models.screening_tr_link_amount import ScreeningTRLinkAmount - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningTRLinkAmount from a JSON string -screening_tr_link_amount_instance = ScreeningTRLinkAmount.from_json(json) -# print the JSON string representation of the object -print(ScreeningTRLinkAmount.to_json()) - -# convert the object into a dict -screening_tr_link_amount_dict = screening_tr_link_amount_instance.to_dict() -# create an instance of ScreeningTRLinkAmount from a dict -screening_tr_link_amount_from_dict = ScreeningTRLinkAmount.from_dict(screening_tr_link_amount_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdUUkxpbmtBbW91bnQKClRSTGluayBhbW91bnQgZGVmaW5pdGlvbiB3aXRoIHJhbmdlIGFuZCBjdXJyZW5jeSwgY29tcGF0aWJsZSB3aXRoIFRBUCBmb3JtYXQgZnJvbSBQb2xpY3kgRW5naW5lIFYyCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcmFuZ2UqKiB8IFsqKkFtb3VudFJhbmdlTWluTWF4KipdKEFtb3VudFJhbmdlTWluTWF4Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqY3VycmVuY3kqKiB8ICoqc3RyKiogfCBDdXJyZW5jeSB0eXBlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cl9saW5rX2Ftb3VudCBpbXBvcnQgU2NyZWVuaW5nVFJMaW5rQW1vdW50CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdUUkxpbmtBbW91bnQgZnJvbSBhIEpTT04gc3RyaW5nCnNjcmVlbmluZ190cl9saW5rX2Ftb3VudF9pbnN0YW5jZSA9IFNjcmVlbmluZ1RSTGlua0Ftb3VudC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTY3JlZW5pbmdUUkxpbmtBbW91bnQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2NyZWVuaW5nX3RyX2xpbmtfYW1vdW50X2RpY3QgPSBzY3JlZW5pbmdfdHJfbGlua19hbW91bnRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ1RSTGlua0Ftb3VudCBmcm9tIGEgZGljdApzY3JlZW5pbmdfdHJfbGlua19hbW91bnRfZnJvbV9kaWN0ID0gU2NyZWVuaW5nVFJMaW5rQW1vdW50LmZyb21fZGljdChzY3JlZW5pbmdfdHJfbGlua19hbW91bnRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ScreeningTRLinkMissingTrmDecision.md b/docs/ScreeningTRLinkMissingTrmDecision.md index b6ff764d..11c6cb34 100644 --- a/docs/ScreeningTRLinkMissingTrmDecision.md +++ b/docs/ScreeningTRLinkMissingTrmDecision.md @@ -1,52 +1 @@ -# ScreeningTRLinkMissingTrmDecision - -Interface for reporting missing TRM screening decisions in ITRLinkResult - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**customer_id** | **str** | Reference to TRLinkCustomer.id | [optional] -**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional] -**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**source_address** | **str** | Source address | [optional] -**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**dest_address** | **str** | Destination address | [optional] -**source_id** | **str** | Source ID | [optional] -**dest_id** | **str** | Destination ID | [optional] -**asset** | **str** | Asset symbol | [optional] -**base_asset** | **str** | Base asset symbol | [optional] -**amount** | [**ScreeningTRLinkAmount**](ScreeningTRLinkAmount.md) | | [optional] -**network_protocol** | **str** | Network protocol | [optional] -**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional] -**description** | **str** | Rule description | [optional] -**is_default** | **bool** | Whether this is a default rule | [optional] [default to False] -**valid_before** | **float** | Unix timestamp when rule expires | [optional] -**valid_after** | **float** | Unix timestamp when rule becomes valid | [optional] -**action** | [**TRLinkMissingTrmActionEnum**](TRLinkMissingTrmActionEnum.md) | | -**source** | **str** | TRLink missing TRM source | -**timestamp** | **datetime** | Timestamp of the decision | [optional] -**reason** | **str** | Reason for the decision | [optional] - -## Example - -```python -from fireblocks.models.screening_tr_link_missing_trm_decision import ScreeningTRLinkMissingTrmDecision - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningTRLinkMissingTrmDecision from a JSON string -screening_tr_link_missing_trm_decision_instance = ScreeningTRLinkMissingTrmDecision.from_json(json) -# print the JSON string representation of the object -print(ScreeningTRLinkMissingTrmDecision.to_json()) - -# convert the object into a dict -screening_tr_link_missing_trm_decision_dict = screening_tr_link_missing_trm_decision_instance.to_dict() -# create an instance of ScreeningTRLinkMissingTrmDecision from a dict -screening_tr_link_missing_trm_decision_from_dict = ScreeningTRLinkMissingTrmDecision.from_dict(screening_tr_link_missing_trm_decision_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdUUkxpbmtNaXNzaW5nVHJtRGVjaXNpb24KCkludGVyZmFjZSBmb3IgcmVwb3J0aW5nIG1pc3NpbmcgVFJNIHNjcmVlbmluZyBkZWNpc2lvbnMgaW4gSVRSTGlua1Jlc3VsdAoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmN1c3RvbWVyX2lkKiogfCAqKnN0cioqIHwgUmVmZXJlbmNlIHRvIFRSTGlua0N1c3RvbWVyLmlkIHwgW29wdGlvbmFsXSAKKipkaXJlY3Rpb24qKiB8IFsqKlRyYXZlbFJ1bGVEaXJlY3Rpb25FbnVtKipdKFRyYXZlbFJ1bGVEaXJlY3Rpb25FbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc291cmNlX3R5cGUqKiB8IFsqKlRyYW5zZmVyUGVlclR5cGVFbnVtKipdKFRyYW5zZmVyUGVlclR5cGVFbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc291cmNlX3N1Yl90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJTdWJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJTdWJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9hZGRyZXNzKiogfCAqKnN0cioqIHwgU291cmNlIGFkZHJlc3MgfCBbb3B0aW9uYWxdIAoqKmRlc3RfdHlwZSoqIHwgWyoqVHJhbnNmZXJQZWVyVHlwZUVudW0qKl0oVHJhbnNmZXJQZWVyVHlwZUVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipkZXN0X3N1Yl90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJTdWJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJTdWJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRlc3RfYWRkcmVzcyoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIGFkZHJlc3MgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9pZCoqIHwgKipzdHIqKiB8IFNvdXJjZSBJRCB8IFtvcHRpb25hbF0gCioqZGVzdF9pZCoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIElEIHwgW29wdGlvbmFsXSAKKiphc3NldCoqIHwgKipzdHIqKiB8IEFzc2V0IHN5bWJvbCB8IFtvcHRpb25hbF0gCioqYmFzZV9hc3NldCoqIHwgKipzdHIqKiB8IEJhc2UgYXNzZXQgc3ltYm9sIHwgW29wdGlvbmFsXSAKKiphbW91bnQqKiB8IFsqKlNjcmVlbmluZ1RSTGlua0Ftb3VudCoqXShTY3JlZW5pbmdUUkxpbmtBbW91bnQubWQpIHwgIHwgW29wdGlvbmFsXSAKKipuZXR3b3JrX3Byb3RvY29sKiogfCAqKnN0cioqIHwgTmV0d29yayBwcm90b2NvbCB8IFtvcHRpb25hbF0gCioqb3BlcmF0aW9uKiogfCBbKipUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0qKl0oVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZGVzY3JpcHRpb24qKiB8ICoqc3RyKiogfCBSdWxlIGRlc2NyaXB0aW9uIHwgW29wdGlvbmFsXSAKKippc19kZWZhdWx0KiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgdGhpcyBpcyBhIGRlZmF1bHQgcnVsZSB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gRmFsc2VdCioqdmFsaWRfYmVmb3JlKiogfCAqKmZsb2F0KiogfCBVbml4IHRpbWVzdGFtcCB3aGVuIHJ1bGUgZXhwaXJlcyB8IFtvcHRpb25hbF0gCioqdmFsaWRfYWZ0ZXIqKiB8ICoqZmxvYXQqKiB8IFVuaXggdGltZXN0YW1wIHdoZW4gcnVsZSBiZWNvbWVzIHZhbGlkIHwgW29wdGlvbmFsXSAKKiphY3Rpb24qKiB8IFsqKlRSTGlua01pc3NpbmdUcm1BY3Rpb25FbnVtKipdKFRSTGlua01pc3NpbmdUcm1BY3Rpb25FbnVtLm1kKSB8ICB8IAoqKnNvdXJjZSoqIHwgKipzdHIqKiB8IFRSTGluayBtaXNzaW5nIFRSTSBzb3VyY2UgfCAKKip0aW1lc3RhbXAqKiB8ICoqZGF0ZXRpbWUqKiB8IFRpbWVzdGFtcCBvZiB0aGUgZGVjaXNpb24gfCBbb3B0aW9uYWxdIAoqKnJlYXNvbioqIHwgKipzdHIqKiB8IFJlYXNvbiBmb3IgdGhlIGRlY2lzaW9uIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cl9saW5rX21pc3NpbmdfdHJtX2RlY2lzaW9uIGltcG9ydCBTY3JlZW5pbmdUUkxpbmtNaXNzaW5nVHJtRGVjaXNpb24KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ1RSTGlua01pc3NpbmdUcm1EZWNpc2lvbiBmcm9tIGEgSlNPTiBzdHJpbmcKc2NyZWVuaW5nX3RyX2xpbmtfbWlzc2luZ190cm1fZGVjaXNpb25faW5zdGFuY2UgPSBTY3JlZW5pbmdUUkxpbmtNaXNzaW5nVHJtRGVjaXNpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNjcmVlbmluZ190cl9saW5rX21pc3NpbmdfdHJtX2RlY2lzaW9uX2RpY3QgPSBzY3JlZW5pbmdfdHJfbGlua19taXNzaW5nX3RybV9kZWNpc2lvbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uIGZyb20gYSBkaWN0CnNjcmVlbmluZ190cl9saW5rX21pc3NpbmdfdHJtX2RlY2lzaW9uX2Zyb21fZGljdCA9IFNjcmVlbmluZ1RSTGlua01pc3NpbmdUcm1EZWNpc2lvbi5mcm9tX2RpY3Qoc2NyZWVuaW5nX3RyX2xpbmtfbWlzc2luZ190cm1fZGVjaXNpb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ScreeningTRLinkMissingTrmRule.md b/docs/ScreeningTRLinkMissingTrmRule.md index 6c70742f..125c814d 100644 --- a/docs/ScreeningTRLinkMissingTrmRule.md +++ b/docs/ScreeningTRLinkMissingTrmRule.md @@ -1,49 +1 @@ -# ScreeningTRLinkMissingTrmRule - -TRLink missing TRM rule definition - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**customer_id** | **str** | Reference to TRLinkCustomer.id | [optional] -**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional] -**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**source_address** | **str** | Source address | [optional] -**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**dest_address** | **str** | Destination address | [optional] -**source_id** | **str** | Source ID | [optional] -**dest_id** | **str** | Destination ID | [optional] -**asset** | **str** | Asset symbol | [optional] -**base_asset** | **str** | Base asset symbol | [optional] -**amount** | [**ScreeningTRLinkAmount**](ScreeningTRLinkAmount.md) | | [optional] -**network_protocol** | **str** | Network protocol | [optional] -**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional] -**description** | **str** | Rule description | [optional] -**is_default** | **bool** | Whether this is a default rule | [optional] [default to False] -**valid_before** | **float** | Unix timestamp when rule expires | [optional] -**valid_after** | **float** | Unix timestamp when rule becomes valid | [optional] -**action** | [**TRLinkMissingTrmActionEnum**](TRLinkMissingTrmActionEnum.md) | | - -## Example - -```python -from fireblocks.models.screening_tr_link_missing_trm_rule import ScreeningTRLinkMissingTrmRule - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningTRLinkMissingTrmRule from a JSON string -screening_tr_link_missing_trm_rule_instance = ScreeningTRLinkMissingTrmRule.from_json(json) -# print the JSON string representation of the object -print(ScreeningTRLinkMissingTrmRule.to_json()) - -# convert the object into a dict -screening_tr_link_missing_trm_rule_dict = screening_tr_link_missing_trm_rule_instance.to_dict() -# create an instance of ScreeningTRLinkMissingTrmRule from a dict -screening_tr_link_missing_trm_rule_from_dict = ScreeningTRLinkMissingTrmRule.from_dict(screening_tr_link_missing_trm_rule_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdUUkxpbmtNaXNzaW5nVHJtUnVsZQoKVFJMaW5rIG1pc3NpbmcgVFJNIHJ1bGUgZGVmaW5pdGlvbgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmN1c3RvbWVyX2lkKiogfCAqKnN0cioqIHwgUmVmZXJlbmNlIHRvIFRSTGlua0N1c3RvbWVyLmlkIHwgW29wdGlvbmFsXSAKKipkaXJlY3Rpb24qKiB8IFsqKlRyYXZlbFJ1bGVEaXJlY3Rpb25FbnVtKipdKFRyYXZlbFJ1bGVEaXJlY3Rpb25FbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc291cmNlX3R5cGUqKiB8IFsqKlRyYW5zZmVyUGVlclR5cGVFbnVtKipdKFRyYW5zZmVyUGVlclR5cGVFbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc291cmNlX3N1Yl90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJTdWJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJTdWJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9hZGRyZXNzKiogfCAqKnN0cioqIHwgU291cmNlIGFkZHJlc3MgfCBbb3B0aW9uYWxdIAoqKmRlc3RfdHlwZSoqIHwgWyoqVHJhbnNmZXJQZWVyVHlwZUVudW0qKl0oVHJhbnNmZXJQZWVyVHlwZUVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipkZXN0X3N1Yl90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJTdWJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJTdWJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRlc3RfYWRkcmVzcyoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIGFkZHJlc3MgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9pZCoqIHwgKipzdHIqKiB8IFNvdXJjZSBJRCB8IFtvcHRpb25hbF0gCioqZGVzdF9pZCoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIElEIHwgW29wdGlvbmFsXSAKKiphc3NldCoqIHwgKipzdHIqKiB8IEFzc2V0IHN5bWJvbCB8IFtvcHRpb25hbF0gCioqYmFzZV9hc3NldCoqIHwgKipzdHIqKiB8IEJhc2UgYXNzZXQgc3ltYm9sIHwgW29wdGlvbmFsXSAKKiphbW91bnQqKiB8IFsqKlNjcmVlbmluZ1RSTGlua0Ftb3VudCoqXShTY3JlZW5pbmdUUkxpbmtBbW91bnQubWQpIHwgIHwgW29wdGlvbmFsXSAKKipuZXR3b3JrX3Byb3RvY29sKiogfCAqKnN0cioqIHwgTmV0d29yayBwcm90b2NvbCB8IFtvcHRpb25hbF0gCioqb3BlcmF0aW9uKiogfCBbKipUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0qKl0oVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZGVzY3JpcHRpb24qKiB8ICoqc3RyKiogfCBSdWxlIGRlc2NyaXB0aW9uIHwgW29wdGlvbmFsXSAKKippc19kZWZhdWx0KiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgdGhpcyBpcyBhIGRlZmF1bHQgcnVsZSB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gRmFsc2VdCioqdmFsaWRfYmVmb3JlKiogfCAqKmZsb2F0KiogfCBVbml4IHRpbWVzdGFtcCB3aGVuIHJ1bGUgZXhwaXJlcyB8IFtvcHRpb25hbF0gCioqdmFsaWRfYWZ0ZXIqKiB8ICoqZmxvYXQqKiB8IFVuaXggdGltZXN0YW1wIHdoZW4gcnVsZSBiZWNvbWVzIHZhbGlkIHwgW29wdGlvbmFsXSAKKiphY3Rpb24qKiB8IFsqKlRSTGlua01pc3NpbmdUcm1BY3Rpb25FbnVtKipdKFRSTGlua01pc3NpbmdUcm1BY3Rpb25FbnVtLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyX2xpbmtfbWlzc2luZ190cm1fcnVsZSBpbXBvcnQgU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybVJ1bGUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ1RSTGlua01pc3NpbmdUcm1SdWxlIGZyb20gYSBKU09OIHN0cmluZwpzY3JlZW5pbmdfdHJfbGlua19taXNzaW5nX3RybV9ydWxlX2luc3RhbmNlID0gU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybVJ1bGUuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybVJ1bGUudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2NyZWVuaW5nX3RyX2xpbmtfbWlzc2luZ190cm1fcnVsZV9kaWN0ID0gc2NyZWVuaW5nX3RyX2xpbmtfbWlzc2luZ190cm1fcnVsZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybVJ1bGUgZnJvbSBhIGRpY3QKc2NyZWVuaW5nX3RyX2xpbmtfbWlzc2luZ190cm1fcnVsZV9mcm9tX2RpY3QgPSBTY3JlZW5pbmdUUkxpbmtNaXNzaW5nVHJtUnVsZS5mcm9tX2RpY3Qoc2NyZWVuaW5nX3RyX2xpbmtfbWlzc2luZ190cm1fcnVsZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ScreeningTRLinkPostScreeningRule.md b/docs/ScreeningTRLinkPostScreeningRule.md index cab6c676..ee5bcfe4 100644 --- a/docs/ScreeningTRLinkPostScreeningRule.md +++ b/docs/ScreeningTRLinkPostScreeningRule.md @@ -1,51 +1 @@ -# ScreeningTRLinkPostScreeningRule - -TRLink post-screening rule definition - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**customer_id** | **str** | Reference to TRLinkCustomer.id | [optional] -**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional] -**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**source_address** | **str** | Source address | [optional] -**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**dest_address** | **str** | Destination address | [optional] -**source_id** | **str** | Source ID | [optional] -**dest_id** | **str** | Destination ID | [optional] -**asset** | **str** | Asset symbol | [optional] -**base_asset** | **str** | Base asset symbol | [optional] -**amount** | [**ScreeningTRLinkAmount**](ScreeningTRLinkAmount.md) | | [optional] -**network_protocol** | **str** | Network protocol | [optional] -**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional] -**description** | **str** | Rule description | [optional] -**is_default** | **bool** | Whether this is a default rule | [optional] [default to False] -**provider_ident** | **str** | Provider identifier | [optional] -**trm_status** | [**TRLinkTrmScreeningStatusEnum**](TRLinkTrmScreeningStatusEnum.md) | | [optional] -**valid_before** | **float** | Unix timestamp when rule expires | [optional] -**valid_after** | **float** | Unix timestamp when rule becomes valid | [optional] -**action** | [**TRLinkVerdictEnum**](TRLinkVerdictEnum.md) | | - -## Example - -```python -from fireblocks.models.screening_tr_link_post_screening_rule import ScreeningTRLinkPostScreeningRule - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningTRLinkPostScreeningRule from a JSON string -screening_tr_link_post_screening_rule_instance = ScreeningTRLinkPostScreeningRule.from_json(json) -# print the JSON string representation of the object -print(ScreeningTRLinkPostScreeningRule.to_json()) - -# convert the object into a dict -screening_tr_link_post_screening_rule_dict = screening_tr_link_post_screening_rule_instance.to_dict() -# create an instance of ScreeningTRLinkPostScreeningRule from a dict -screening_tr_link_post_screening_rule_from_dict = ScreeningTRLinkPostScreeningRule.from_dict(screening_tr_link_post_screening_rule_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZQoKVFJMaW5rIHBvc3Qtc2NyZWVuaW5nIHJ1bGUgZGVmaW5pdGlvbgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmN1c3RvbWVyX2lkKiogfCAqKnN0cioqIHwgUmVmZXJlbmNlIHRvIFRSTGlua0N1c3RvbWVyLmlkIHwgW29wdGlvbmFsXSAKKipkaXJlY3Rpb24qKiB8IFsqKlRyYXZlbFJ1bGVEaXJlY3Rpb25FbnVtKipdKFRyYXZlbFJ1bGVEaXJlY3Rpb25FbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc291cmNlX3R5cGUqKiB8IFsqKlRyYW5zZmVyUGVlclR5cGVFbnVtKipdKFRyYW5zZmVyUGVlclR5cGVFbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc291cmNlX3N1Yl90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJTdWJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJTdWJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9hZGRyZXNzKiogfCAqKnN0cioqIHwgU291cmNlIGFkZHJlc3MgfCBbb3B0aW9uYWxdIAoqKmRlc3RfdHlwZSoqIHwgWyoqVHJhbnNmZXJQZWVyVHlwZUVudW0qKl0oVHJhbnNmZXJQZWVyVHlwZUVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipkZXN0X3N1Yl90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJTdWJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJTdWJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRlc3RfYWRkcmVzcyoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIGFkZHJlc3MgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9pZCoqIHwgKipzdHIqKiB8IFNvdXJjZSBJRCB8IFtvcHRpb25hbF0gCioqZGVzdF9pZCoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIElEIHwgW29wdGlvbmFsXSAKKiphc3NldCoqIHwgKipzdHIqKiB8IEFzc2V0IHN5bWJvbCB8IFtvcHRpb25hbF0gCioqYmFzZV9hc3NldCoqIHwgKipzdHIqKiB8IEJhc2UgYXNzZXQgc3ltYm9sIHwgW29wdGlvbmFsXSAKKiphbW91bnQqKiB8IFsqKlNjcmVlbmluZ1RSTGlua0Ftb3VudCoqXShTY3JlZW5pbmdUUkxpbmtBbW91bnQubWQpIHwgIHwgW29wdGlvbmFsXSAKKipuZXR3b3JrX3Byb3RvY29sKiogfCAqKnN0cioqIHwgTmV0d29yayBwcm90b2NvbCB8IFtvcHRpb25hbF0gCioqb3BlcmF0aW9uKiogfCBbKipUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0qKl0oVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZGVzY3JpcHRpb24qKiB8ICoqc3RyKiogfCBSdWxlIGRlc2NyaXB0aW9uIHwgW29wdGlvbmFsXSAKKippc19kZWZhdWx0KiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgdGhpcyBpcyBhIGRlZmF1bHQgcnVsZSB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gRmFsc2VdCioqcHJvdmlkZXJfaWRlbnQqKiB8ICoqc3RyKiogfCBQcm92aWRlciBpZGVudGlmaWVyIHwgW29wdGlvbmFsXSAKKip0cm1fc3RhdHVzKiogfCBbKipUUkxpbmtUcm1TY3JlZW5pbmdTdGF0dXNFbnVtKipdKFRSTGlua1RybVNjcmVlbmluZ1N0YXR1c0VudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKip2YWxpZF9iZWZvcmUqKiB8ICoqZmxvYXQqKiB8IFVuaXggdGltZXN0YW1wIHdoZW4gcnVsZSBleHBpcmVzIHwgW29wdGlvbmFsXSAKKip2YWxpZF9hZnRlcioqIHwgKipmbG9hdCoqIHwgVW5peCB0aW1lc3RhbXAgd2hlbiBydWxlIGJlY29tZXMgdmFsaWQgfCBbb3B0aW9uYWxdIAoqKmFjdGlvbioqIHwgWyoqVFJMaW5rVmVyZGljdEVudW0qKl0oVFJMaW5rVmVyZGljdEVudW0ubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdHJfbGlua19wb3N0X3NjcmVlbmluZ19ydWxlIGltcG9ydCBTY3JlZW5pbmdUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUgZnJvbSBhIEpTT04gc3RyaW5nCnNjcmVlbmluZ190cl9saW5rX3Bvc3Rfc2NyZWVuaW5nX3J1bGVfaW5zdGFuY2UgPSBTY3JlZW5pbmdUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTY3JlZW5pbmdUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzY3JlZW5pbmdfdHJfbGlua19wb3N0X3NjcmVlbmluZ19ydWxlX2RpY3QgPSBzY3JlZW5pbmdfdHJfbGlua19wb3N0X3NjcmVlbmluZ19ydWxlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZSBmcm9tIGEgZGljdApzY3JlZW5pbmdfdHJfbGlua19wb3N0X3NjcmVlbmluZ19ydWxlX2Zyb21fZGljdCA9IFNjcmVlbmluZ1RSTGlua1Bvc3RTY3JlZW5pbmdSdWxlLmZyb21fZGljdChzY3JlZW5pbmdfdHJfbGlua19wb3N0X3NjcmVlbmluZ19ydWxlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ScreeningTRLinkPrescreeningRule.md b/docs/ScreeningTRLinkPrescreeningRule.md index cfa43ff4..9b31600f 100644 --- a/docs/ScreeningTRLinkPrescreeningRule.md +++ b/docs/ScreeningTRLinkPrescreeningRule.md @@ -1,47 +1 @@ -# ScreeningTRLinkPrescreeningRule - -TRLink pre-screening rule definition - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**customer_id** | **str** | Reference to TRLinkCustomer.id | [optional] -**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional] -**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**source_address** | **str** | Source address | [optional] -**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**dest_address** | **str** | Destination address | [optional] -**source_id** | **str** | Source ID | [optional] -**dest_id** | **str** | Destination ID | [optional] -**asset** | **str** | Asset symbol | [optional] -**base_asset** | **str** | Base asset symbol | [optional] -**amount** | [**ScreeningTRLinkAmount**](ScreeningTRLinkAmount.md) | | [optional] -**network_protocol** | **str** | Network protocol | [optional] -**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional] -**description** | **str** | Rule description | [optional] -**is_default** | **bool** | Whether this is a default rule | [optional] [default to False] -**action** | [**TRLinkPreScreeningActionEnum**](TRLinkPreScreeningActionEnum.md) | | - -## Example - -```python -from fireblocks.models.screening_tr_link_prescreening_rule import ScreeningTRLinkPrescreeningRule - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningTRLinkPrescreeningRule from a JSON string -screening_tr_link_prescreening_rule_instance = ScreeningTRLinkPrescreeningRule.from_json(json) -# print the JSON string representation of the object -print(ScreeningTRLinkPrescreeningRule.to_json()) - -# convert the object into a dict -screening_tr_link_prescreening_rule_dict = screening_tr_link_prescreening_rule_instance.to_dict() -# create an instance of ScreeningTRLinkPrescreeningRule from a dict -screening_tr_link_prescreening_rule_from_dict = ScreeningTRLinkPrescreeningRule.from_dict(screening_tr_link_prescreening_rule_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdUUkxpbmtQcmVzY3JlZW5pbmdSdWxlCgpUUkxpbmsgcHJlLXNjcmVlbmluZyBydWxlIGRlZmluaXRpb24KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipjdXN0b21lcl9pZCoqIHwgKipzdHIqKiB8IFJlZmVyZW5jZSB0byBUUkxpbmtDdXN0b21lci5pZCB8IFtvcHRpb25hbF0gCioqZGlyZWN0aW9uKiogfCBbKipUcmF2ZWxSdWxlRGlyZWN0aW9uRW51bSoqXShUcmF2ZWxSdWxlRGlyZWN0aW9uRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9zdWJfdHlwZSoqIHwgWyoqVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0qKl0oVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipzb3VyY2VfYWRkcmVzcyoqIHwgKipzdHIqKiB8IFNvdXJjZSBhZGRyZXNzIHwgW29wdGlvbmFsXSAKKipkZXN0X3R5cGUqKiB8IFsqKlRyYW5zZmVyUGVlclR5cGVFbnVtKipdKFRyYW5zZmVyUGVlclR5cGVFbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZGVzdF9zdWJfdHlwZSoqIHwgWyoqVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0qKl0oVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipkZXN0X2FkZHJlc3MqKiB8ICoqc3RyKiogfCBEZXN0aW5hdGlvbiBhZGRyZXNzIHwgW29wdGlvbmFsXSAKKipzb3VyY2VfaWQqKiB8ICoqc3RyKiogfCBTb3VyY2UgSUQgfCBbb3B0aW9uYWxdIAoqKmRlc3RfaWQqKiB8ICoqc3RyKiogfCBEZXN0aW5hdGlvbiBJRCB8IFtvcHRpb25hbF0gCioqYXNzZXQqKiB8ICoqc3RyKiogfCBBc3NldCBzeW1ib2wgfCBbb3B0aW9uYWxdIAoqKmJhc2VfYXNzZXQqKiB8ICoqc3RyKiogfCBCYXNlIGFzc2V0IHN5bWJvbCB8IFtvcHRpb25hbF0gCioqYW1vdW50KiogfCBbKipTY3JlZW5pbmdUUkxpbmtBbW91bnQqKl0oU2NyZWVuaW5nVFJMaW5rQW1vdW50Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqbmV0d29ya19wcm90b2NvbCoqIHwgKipzdHIqKiB8IE5ldHdvcmsgcHJvdG9jb2wgfCBbb3B0aW9uYWxdIAoqKm9wZXJhdGlvbioqIHwgWyoqVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtKipdKFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRlc2NyaXB0aW9uKiogfCAqKnN0cioqIHwgUnVsZSBkZXNjcmlwdGlvbiB8IFtvcHRpb25hbF0gCioqaXNfZGVmYXVsdCoqIHwgKipib29sKiogfCBXaGV0aGVyIHRoaXMgaXMgYSBkZWZhdWx0IHJ1bGUgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIEZhbHNlXQoqKmFjdGlvbioqIHwgWyoqVFJMaW5rUHJlU2NyZWVuaW5nQWN0aW9uRW51bSoqXShUUkxpbmtQcmVTY3JlZW5pbmdBY3Rpb25FbnVtLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyX2xpbmtfcHJlc2NyZWVuaW5nX3J1bGUgaW1wb3J0IFNjcmVlbmluZ1RSTGlua1ByZXNjcmVlbmluZ1J1bGUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ1RSTGlua1ByZXNjcmVlbmluZ1J1bGUgZnJvbSBhIEpTT04gc3RyaW5nCnNjcmVlbmluZ190cl9saW5rX3ByZXNjcmVlbmluZ19ydWxlX2luc3RhbmNlID0gU2NyZWVuaW5nVFJMaW5rUHJlc2NyZWVuaW5nUnVsZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTY3JlZW5pbmdUUkxpbmtQcmVzY3JlZW5pbmdSdWxlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNjcmVlbmluZ190cl9saW5rX3ByZXNjcmVlbmluZ19ydWxlX2RpY3QgPSBzY3JlZW5pbmdfdHJfbGlua19wcmVzY3JlZW5pbmdfcnVsZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVFJMaW5rUHJlc2NyZWVuaW5nUnVsZSBmcm9tIGEgZGljdApzY3JlZW5pbmdfdHJfbGlua19wcmVzY3JlZW5pbmdfcnVsZV9mcm9tX2RpY3QgPSBTY3JlZW5pbmdUUkxpbmtQcmVzY3JlZW5pbmdSdWxlLmZyb21fZGljdChzY3JlZW5pbmdfdHJfbGlua19wcmVzY3JlZW5pbmdfcnVsZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ScreeningTRLinkRuleBase.md b/docs/ScreeningTRLinkRuleBase.md index ed656382..df7eac8e 100644 --- a/docs/ScreeningTRLinkRuleBase.md +++ b/docs/ScreeningTRLinkRuleBase.md @@ -1,46 +1 @@ -# ScreeningTRLinkRuleBase - -Base interface for TRLink policy rules - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**customer_id** | **str** | Reference to TRLinkCustomer.id | [optional] -**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional] -**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**source_address** | **str** | Source address | [optional] -**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**dest_address** | **str** | Destination address | [optional] -**source_id** | **str** | Source ID | [optional] -**dest_id** | **str** | Destination ID | [optional] -**asset** | **str** | Asset symbol | [optional] -**base_asset** | **str** | Base asset symbol | [optional] -**amount** | [**ScreeningTRLinkAmount**](ScreeningTRLinkAmount.md) | | [optional] -**network_protocol** | **str** | Network protocol | [optional] -**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional] -**description** | **str** | Rule description | [optional] -**is_default** | **bool** | Whether this is a default rule | [optional] [default to False] - -## Example - -```python -from fireblocks.models.screening_tr_link_rule_base import ScreeningTRLinkRuleBase - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningTRLinkRuleBase from a JSON string -screening_tr_link_rule_base_instance = ScreeningTRLinkRuleBase.from_json(json) -# print the JSON string representation of the object -print(ScreeningTRLinkRuleBase.to_json()) - -# convert the object into a dict -screening_tr_link_rule_base_dict = screening_tr_link_rule_base_instance.to_dict() -# create an instance of ScreeningTRLinkRuleBase from a dict -screening_tr_link_rule_base_from_dict = ScreeningTRLinkRuleBase.from_dict(screening_tr_link_rule_base_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdUUkxpbmtSdWxlQmFzZQoKQmFzZSBpbnRlcmZhY2UgZm9yIFRSTGluayBwb2xpY3kgcnVsZXMKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipjdXN0b21lcl9pZCoqIHwgKipzdHIqKiB8IFJlZmVyZW5jZSB0byBUUkxpbmtDdXN0b21lci5pZCB8IFtvcHRpb25hbF0gCioqZGlyZWN0aW9uKiogfCBbKipUcmF2ZWxSdWxlRGlyZWN0aW9uRW51bSoqXShUcmF2ZWxSdWxlRGlyZWN0aW9uRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9zdWJfdHlwZSoqIHwgWyoqVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0qKl0oVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipzb3VyY2VfYWRkcmVzcyoqIHwgKipzdHIqKiB8IFNvdXJjZSBhZGRyZXNzIHwgW29wdGlvbmFsXSAKKipkZXN0X3R5cGUqKiB8IFsqKlRyYW5zZmVyUGVlclR5cGVFbnVtKipdKFRyYW5zZmVyUGVlclR5cGVFbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZGVzdF9zdWJfdHlwZSoqIHwgWyoqVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0qKl0oVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipkZXN0X2FkZHJlc3MqKiB8ICoqc3RyKiogfCBEZXN0aW5hdGlvbiBhZGRyZXNzIHwgW29wdGlvbmFsXSAKKipzb3VyY2VfaWQqKiB8ICoqc3RyKiogfCBTb3VyY2UgSUQgfCBbb3B0aW9uYWxdIAoqKmRlc3RfaWQqKiB8ICoqc3RyKiogfCBEZXN0aW5hdGlvbiBJRCB8IFtvcHRpb25hbF0gCioqYXNzZXQqKiB8ICoqc3RyKiogfCBBc3NldCBzeW1ib2wgfCBbb3B0aW9uYWxdIAoqKmJhc2VfYXNzZXQqKiB8ICoqc3RyKiogfCBCYXNlIGFzc2V0IHN5bWJvbCB8IFtvcHRpb25hbF0gCioqYW1vdW50KiogfCBbKipTY3JlZW5pbmdUUkxpbmtBbW91bnQqKl0oU2NyZWVuaW5nVFJMaW5rQW1vdW50Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqbmV0d29ya19wcm90b2NvbCoqIHwgKipzdHIqKiB8IE5ldHdvcmsgcHJvdG9jb2wgfCBbb3B0aW9uYWxdIAoqKm9wZXJhdGlvbioqIHwgWyoqVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtKipdKFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRlc2NyaXB0aW9uKiogfCAqKnN0cioqIHwgUnVsZSBkZXNjcmlwdGlvbiB8IFtvcHRpb25hbF0gCioqaXNfZGVmYXVsdCoqIHwgKipib29sKiogfCBXaGV0aGVyIHRoaXMgaXMgYSBkZWZhdWx0IHJ1bGUgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIEZhbHNlXQoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyX2xpbmtfcnVsZV9iYXNlIGltcG9ydCBTY3JlZW5pbmdUUkxpbmtSdWxlQmFzZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVFJMaW5rUnVsZUJhc2UgZnJvbSBhIEpTT04gc3RyaW5nCnNjcmVlbmluZ190cl9saW5rX3J1bGVfYmFzZV9pbnN0YW5jZSA9IFNjcmVlbmluZ1RSTGlua1J1bGVCYXNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNjcmVlbmluZ1RSTGlua1J1bGVCYXNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNjcmVlbmluZ190cl9saW5rX3J1bGVfYmFzZV9kaWN0ID0gc2NyZWVuaW5nX3RyX2xpbmtfcnVsZV9iYXNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdUUkxpbmtSdWxlQmFzZSBmcm9tIGEgZGljdApzY3JlZW5pbmdfdHJfbGlua19ydWxlX2Jhc2VfZnJvbV9kaWN0ID0gU2NyZWVuaW5nVFJMaW5rUnVsZUJhc2UuZnJvbV9kaWN0KHNjcmVlbmluZ190cl9saW5rX3J1bGVfYmFzZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ScreeningTravelRuleMatchedRule.md b/docs/ScreeningTravelRuleMatchedRule.md index 838a8c31..41913403 100644 --- a/docs/ScreeningTravelRuleMatchedRule.md +++ b/docs/ScreeningTravelRuleMatchedRule.md @@ -1,35 +1 @@ -# ScreeningTravelRuleMatchedRule - -The travel rule configuration that was matched - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional] -**status** | [**TravelRuleStatusEnum**](TravelRuleStatusEnum.md) | | [optional] -**amount_usd** | **float** | Amount in USD | [optional] -**amount** | **float** | Amount in base currency | [optional] -**asset** | **str** | Asset identifier | [optional] -**action** | [**TravelRuleVerdictEnum**](TravelRuleVerdictEnum.md) | | [optional] - -## Example - -```python -from fireblocks.models.screening_travel_rule_matched_rule import ScreeningTravelRuleMatchedRule - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningTravelRuleMatchedRule from a JSON string -screening_travel_rule_matched_rule_instance = ScreeningTravelRuleMatchedRule.from_json(json) -# print the JSON string representation of the object -print(ScreeningTravelRuleMatchedRule.to_json()) - -# convert the object into a dict -screening_travel_rule_matched_rule_dict = screening_travel_rule_matched_rule_instance.to_dict() -# create an instance of ScreeningTravelRuleMatchedRule from a dict -screening_travel_rule_matched_rule_from_dict = ScreeningTravelRuleMatchedRule.from_dict(screening_travel_rule_matched_rule_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGUKClRoZSB0cmF2ZWwgcnVsZSBjb25maWd1cmF0aW9uIHRoYXQgd2FzIG1hdGNoZWQKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkaXJlY3Rpb24qKiB8IFsqKlRyYXZlbFJ1bGVEaXJlY3Rpb25FbnVtKipdKFRyYXZlbFJ1bGVEaXJlY3Rpb25FbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc3RhdHVzKiogfCBbKipUcmF2ZWxSdWxlU3RhdHVzRW51bSoqXShUcmF2ZWxSdWxlU3RhdHVzRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmFtb3VudF91c2QqKiB8ICoqZmxvYXQqKiB8IEFtb3VudCBpbiBVU0QgfCBbb3B0aW9uYWxdIAoqKmFtb3VudCoqIHwgKipmbG9hdCoqIHwgQW1vdW50IGluIGJhc2UgY3VycmVuY3kgfCBbb3B0aW9uYWxdIAoqKmFzc2V0KiogfCAqKnN0cioqIHwgQXNzZXQgaWRlbnRpZmllciB8IFtvcHRpb25hbF0gCioqYWN0aW9uKiogfCBbKipUcmF2ZWxSdWxlVmVyZGljdEVudW0qKl0oVHJhdmVsUnVsZVZlcmRpY3RFbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdHJhdmVsX3J1bGVfbWF0Y2hlZF9ydWxlIGltcG9ydCBTY3JlZW5pbmdUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ1RyYXZlbFJ1bGVNYXRjaGVkUnVsZSBmcm9tIGEgSlNPTiBzdHJpbmcKc2NyZWVuaW5nX3RyYXZlbF9ydWxlX21hdGNoZWRfcnVsZV9pbnN0YW5jZSA9IFNjcmVlbmluZ1RyYXZlbFJ1bGVNYXRjaGVkUnVsZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTY3JlZW5pbmdUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGUudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2NyZWVuaW5nX3RyYXZlbF9ydWxlX21hdGNoZWRfcnVsZV9kaWN0ID0gc2NyZWVuaW5nX3RyYXZlbF9ydWxlX21hdGNoZWRfcnVsZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVHJhdmVsUnVsZU1hdGNoZWRSdWxlIGZyb20gYSBkaWN0CnNjcmVlbmluZ190cmF2ZWxfcnVsZV9tYXRjaGVkX3J1bGVfZnJvbV9kaWN0ID0gU2NyZWVuaW5nVHJhdmVsUnVsZU1hdGNoZWRSdWxlLmZyb21fZGljdChzY3JlZW5pbmdfdHJhdmVsX3J1bGVfbWF0Y2hlZF9ydWxlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ScreeningTravelRulePrescreeningRule.md b/docs/ScreeningTravelRulePrescreeningRule.md index 3ebf1da8..f8207d77 100644 --- a/docs/ScreeningTravelRulePrescreeningRule.md +++ b/docs/ScreeningTravelRulePrescreeningRule.md @@ -1,46 +1 @@ -# ScreeningTravelRulePrescreeningRule - -Matched prescreening rule details. Prescreening rules are evaluated before the main screening to determine if screening is necessary or should be bypassed. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**bypass_reason** | **str** | Reason for bypass if prescreening rule triggered a bypass | [optional] -**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**transfer_peer_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**transfer_peer_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**dest_address** | **str** | Destination address | [optional] -**source_id** | **str** | Source ID | [optional] -**dest_id** | **str** | Destination ID | [optional] -**asset** | **str** | Asset identifier | [optional] -**base_asset** | **str** | Base asset | [optional] -**amount** | **float** | Amount | [optional] -**amount_usd** | **float** | Amount in USD | [optional] -**network_protocol** | **str** | Network protocol | [optional] -**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional] -**action** | [**TravelRuleActionEnum**](TravelRuleActionEnum.md) | | [optional] - -## Example - -```python -from fireblocks.models.screening_travel_rule_prescreening_rule import ScreeningTravelRulePrescreeningRule - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningTravelRulePrescreeningRule from a JSON string -screening_travel_rule_prescreening_rule_instance = ScreeningTravelRulePrescreeningRule.from_json(json) -# print the JSON string representation of the object -print(ScreeningTravelRulePrescreeningRule.to_json()) - -# convert the object into a dict -screening_travel_rule_prescreening_rule_dict = screening_travel_rule_prescreening_rule_instance.to_dict() -# create an instance of ScreeningTravelRulePrescreeningRule from a dict -screening_travel_rule_prescreening_rule_from_dict = ScreeningTravelRulePrescreeningRule.from_dict(screening_travel_rule_prescreening_rule_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZQoKTWF0Y2hlZCBwcmVzY3JlZW5pbmcgcnVsZSBkZXRhaWxzLiBQcmVzY3JlZW5pbmcgcnVsZXMgYXJlIGV2YWx1YXRlZCBiZWZvcmUgdGhlIG1haW4gc2NyZWVuaW5nIHRvIGRldGVybWluZSBpZiBzY3JlZW5pbmcgaXMgbmVjZXNzYXJ5IG9yIHNob3VsZCBiZSBieXBhc3NlZC4gCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYnlwYXNzX3JlYXNvbioqIHwgKipzdHIqKiB8IFJlYXNvbiBmb3IgYnlwYXNzIGlmIHByZXNjcmVlbmluZyBydWxlIHRyaWdnZXJlZCBhIGJ5cGFzcyB8IFtvcHRpb25hbF0gCioqc291cmNlX3R5cGUqKiB8IFsqKlRyYW5zZmVyUGVlclR5cGVFbnVtKipdKFRyYW5zZmVyUGVlclR5cGVFbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc291cmNlX3N1Yl90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJTdWJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJTdWJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRlc3RfdHlwZSoqIHwgWyoqVHJhbnNmZXJQZWVyVHlwZUVudW0qKl0oVHJhbnNmZXJQZWVyVHlwZUVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipkZXN0X3N1Yl90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJTdWJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJTdWJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnRyYW5zZmVyX3BlZXJfdHlwZSoqIHwgWyoqVHJhbnNmZXJQZWVyVHlwZUVudW0qKl0oVHJhbnNmZXJQZWVyVHlwZUVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKip0cmFuc2Zlcl9wZWVyX3N1Yl90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJTdWJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJTdWJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRlc3RfYWRkcmVzcyoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIGFkZHJlc3MgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9pZCoqIHwgKipzdHIqKiB8IFNvdXJjZSBJRCB8IFtvcHRpb25hbF0gCioqZGVzdF9pZCoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIElEIHwgW29wdGlvbmFsXSAKKiphc3NldCoqIHwgKipzdHIqKiB8IEFzc2V0IGlkZW50aWZpZXIgfCBbb3B0aW9uYWxdIAoqKmJhc2VfYXNzZXQqKiB8ICoqc3RyKiogfCBCYXNlIGFzc2V0IHwgW29wdGlvbmFsXSAKKiphbW91bnQqKiB8ICoqZmxvYXQqKiB8IEFtb3VudCB8IFtvcHRpb25hbF0gCioqYW1vdW50X3VzZCoqIHwgKipmbG9hdCoqIHwgQW1vdW50IGluIFVTRCB8IFtvcHRpb25hbF0gCioqbmV0d29ya19wcm90b2NvbCoqIHwgKipzdHIqKiB8IE5ldHdvcmsgcHJvdG9jb2wgfCBbb3B0aW9uYWxdIAoqKm9wZXJhdGlvbioqIHwgWyoqVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtKipdKFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmFjdGlvbioqIHwgWyoqVHJhdmVsUnVsZUFjdGlvbkVudW0qKl0oVHJhdmVsUnVsZUFjdGlvbkVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cmF2ZWxfcnVsZV9wcmVzY3JlZW5pbmdfcnVsZSBpbXBvcnQgU2NyZWVuaW5nVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ1RyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlIGZyb20gYSBKU09OIHN0cmluZwpzY3JlZW5pbmdfdHJhdmVsX3J1bGVfcHJlc2NyZWVuaW5nX3J1bGVfaW5zdGFuY2UgPSBTY3JlZW5pbmdUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTY3JlZW5pbmdUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzY3JlZW5pbmdfdHJhdmVsX3J1bGVfcHJlc2NyZWVuaW5nX3J1bGVfZGljdCA9IHNjcmVlbmluZ190cmF2ZWxfcnVsZV9wcmVzY3JlZW5pbmdfcnVsZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGUgZnJvbSBhIGRpY3QKc2NyZWVuaW5nX3RyYXZlbF9ydWxlX3ByZXNjcmVlbmluZ19ydWxlX2Zyb21fZGljdCA9IFNjcmVlbmluZ1RyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlLmZyb21fZGljdChzY3JlZW5pbmdfdHJhdmVsX3J1bGVfcHJlc2NyZWVuaW5nX3J1bGVfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ScreeningTravelRuleResult.md b/docs/ScreeningTravelRuleResult.md index 5da79c13..d04dcafa 100644 --- a/docs/ScreeningTravelRuleResult.md +++ b/docs/ScreeningTravelRuleResult.md @@ -1,34 +1 @@ -# ScreeningTravelRuleResult - -Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional] -**is_verified** | **bool** | Whether the travel rule information was verified | [optional] -**action** | [**TravelRuleVerdictEnum**](TravelRuleVerdictEnum.md) | | [optional] -**provider_response** | **Dict[str, object]** | Complete response from the travel rule provider. This is a dynamic object that varies significantly between different travel rule providers (NOTABENE etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - NOTABENE: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. | [optional] -**matched_rule** | [**ScreeningTravelRuleMatchedRule**](ScreeningTravelRuleMatchedRule.md) | | [optional] - -## Example - -```python -from fireblocks.models.screening_travel_rule_result import ScreeningTravelRuleResult - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningTravelRuleResult from a JSON string -screening_travel_rule_result_instance = ScreeningTravelRuleResult.from_json(json) -# print the JSON string representation of the object -print(ScreeningTravelRuleResult.to_json()) - -# convert the object into a dict -screening_travel_rule_result_dict = screening_travel_rule_result_instance.to_dict() -# create an instance of ScreeningTravelRuleResult from a dict -screening_travel_rule_result_from_dict = ScreeningTravelRuleResult.from_dict(screening_travel_rule_result_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdUcmF2ZWxSdWxlUmVzdWx0CgpEZXByZWNhdGVkOiBUaGlzIGZpZWxkIGlzIG5vdCBjdXJyZW50bHkgcmV0dXJuZWQgaW4gdGhlIEFQSSByZXNwb25zZS4gRGV0YWlsZWQgVHJhdmVsIFJ1bGUgc2NyZWVuaW5nIHJlc3VsdCBjb250YWluaW5nIHByb3ZpZGVyLXNwZWNpZmljIGRhdGEuIENvbnRhaW5zIFRyYXZlbCBSdWxlIHNwZWNpZmljIGluZm9ybWF0aW9uIGxpa2UgdmVyaWZpZWQgc3RhdHVzLCBydWxlIHR5cGUsIGFuZCBhY3Rpb25zLiAKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkaXJlY3Rpb24qKiB8IFsqKlRyYXZlbFJ1bGVEaXJlY3Rpb25FbnVtKipdKFRyYXZlbFJ1bGVEaXJlY3Rpb25FbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqaXNfdmVyaWZpZWQqKiB8ICoqYm9vbCoqIHwgV2hldGhlciB0aGUgdHJhdmVsIHJ1bGUgaW5mb3JtYXRpb24gd2FzIHZlcmlmaWVkIHwgW29wdGlvbmFsXSAKKiphY3Rpb24qKiB8IFsqKlRyYXZlbFJ1bGVWZXJkaWN0RW51bSoqXShUcmF2ZWxSdWxlVmVyZGljdEVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipwcm92aWRlcl9yZXNwb25zZSoqIHwgKipEaWN0W3N0ciwgb2JqZWN0XSoqIHwgQ29tcGxldGUgcmVzcG9uc2UgZnJvbSB0aGUgdHJhdmVsIHJ1bGUgcHJvdmlkZXIuIFRoaXMgaXMgYSBkeW5hbWljIG9iamVjdCB0aGF0IHZhcmllcyBzaWduaWZpY2FudGx5IGJldHdlZW4gZGlmZmVyZW50IHRyYXZlbCBydWxlIHByb3ZpZGVycyAoTk9UQUJFTkUgZXRjLikuIEVhY2ggcHJvdmlkZXIgaGFzIHRoZWlyIG93biBwcm9wcmlldGFyeSByZXNwb25zZSBmb3JtYXQgYW5kIHNjaGVtYS4gIEV4YW1wbGVzIG9mIHByb3ZpZGVyLXNwZWNpZmljIHN0cnVjdHVyZXM6IC0gTk9UQUJFTkU6IENvbnRhaW5zIFZBU1AgaW5mb3JtYXRpb24sIFBJSSBkYXRhLCBwcm90b2NvbC1zcGVjaWZpYyBmaWVsZHMgIFRoZSBzdHJ1Y3R1cmUgaXMgcHJvdmlkZXItZGVwZW5kZW50IGFuZCBjYW5ub3QgYmUgc3RhbmRhcmRpemVkIGFzIGVhY2ggdmVuZG9yIGltcGxlbWVudHMgdGhlaXIgb3duIHByb3ByaWV0YXJ5IGRhdGEgbW9kZWxzIGFuZCByZXNwb25zZSBmb3JtYXRzLiAgfCBbb3B0aW9uYWxdIAoqKm1hdGNoZWRfcnVsZSoqIHwgWyoqU2NyZWVuaW5nVHJhdmVsUnVsZU1hdGNoZWRSdWxlKipdKFNjcmVlbmluZ1RyYXZlbFJ1bGVNYXRjaGVkUnVsZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyYXZlbF9ydWxlX3Jlc3VsdCBpbXBvcnQgU2NyZWVuaW5nVHJhdmVsUnVsZVJlc3VsdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVHJhdmVsUnVsZVJlc3VsdCBmcm9tIGEgSlNPTiBzdHJpbmcKc2NyZWVuaW5nX3RyYXZlbF9ydWxlX3Jlc3VsdF9pbnN0YW5jZSA9IFNjcmVlbmluZ1RyYXZlbFJ1bGVSZXN1bHQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU2NyZWVuaW5nVHJhdmVsUnVsZVJlc3VsdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzY3JlZW5pbmdfdHJhdmVsX3J1bGVfcmVzdWx0X2RpY3QgPSBzY3JlZW5pbmdfdHJhdmVsX3J1bGVfcmVzdWx0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdUcmF2ZWxSdWxlUmVzdWx0IGZyb20gYSBkaWN0CnNjcmVlbmluZ190cmF2ZWxfcnVsZV9yZXN1bHRfZnJvbV9kaWN0ID0gU2NyZWVuaW5nVHJhdmVsUnVsZVJlc3VsdC5mcm9tX2RpY3Qoc2NyZWVuaW5nX3RyYXZlbF9ydWxlX3Jlc3VsdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ScreeningUpdateConfigurations.md b/docs/ScreeningUpdateConfigurations.md index 8feed264..6bd4b7ff 100644 --- a/docs/ScreeningUpdateConfigurations.md +++ b/docs/ScreeningUpdateConfigurations.md @@ -1,30 +1 @@ -# ScreeningUpdateConfigurations - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**disable_bypass** | **bool** | Flag to enable or disable bypass screening on tenant configuration. | [optional] -**disable_unfreeze** | **bool** | Flag to enable or disable unfreeze of transaction frozen by policy rule on tenant configuration. | [optional] - -## Example - -```python -from fireblocks.models.screening_update_configurations import ScreeningUpdateConfigurations - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningUpdateConfigurations from a JSON string -screening_update_configurations_instance = ScreeningUpdateConfigurations.from_json(json) -# print the JSON string representation of the object -print(ScreeningUpdateConfigurations.to_json()) - -# convert the object into a dict -screening_update_configurations_dict = screening_update_configurations_instance.to_dict() -# create an instance of ScreeningUpdateConfigurations from a dict -screening_update_configurations_from_dict = ScreeningUpdateConfigurations.from_dict(screening_update_configurations_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdVcGRhdGVDb25maWd1cmF0aW9ucwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkaXNhYmxlX2J5cGFzcyoqIHwgKipib29sKiogfCBGbGFnIHRvIGVuYWJsZSBvciBkaXNhYmxlIGJ5cGFzcyBzY3JlZW5pbmcgb24gdGVuYW50IGNvbmZpZ3VyYXRpb24uIHwgW29wdGlvbmFsXSAKKipkaXNhYmxlX3VuZnJlZXplKiogfCAqKmJvb2wqKiB8IEZsYWcgdG8gZW5hYmxlIG9yIGRpc2FibGUgdW5mcmVlemUgb2YgdHJhbnNhY3Rpb24gZnJvemVuIGJ5IHBvbGljeSBydWxlIG9uIHRlbmFudCBjb25maWd1cmF0aW9uLiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdXBkYXRlX2NvbmZpZ3VyYXRpb25zIGltcG9ydCBTY3JlZW5pbmdVcGRhdGVDb25maWd1cmF0aW9ucwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVXBkYXRlQ29uZmlndXJhdGlvbnMgZnJvbSBhIEpTT04gc3RyaW5nCnNjcmVlbmluZ191cGRhdGVfY29uZmlndXJhdGlvbnNfaW5zdGFuY2UgPSBTY3JlZW5pbmdVcGRhdGVDb25maWd1cmF0aW9ucy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTY3JlZW5pbmdVcGRhdGVDb25maWd1cmF0aW9ucy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzY3JlZW5pbmdfdXBkYXRlX2NvbmZpZ3VyYXRpb25zX2RpY3QgPSBzY3JlZW5pbmdfdXBkYXRlX2NvbmZpZ3VyYXRpb25zX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdVcGRhdGVDb25maWd1cmF0aW9ucyBmcm9tIGEgZGljdApzY3JlZW5pbmdfdXBkYXRlX2NvbmZpZ3VyYXRpb25zX2Zyb21fZGljdCA9IFNjcmVlbmluZ1VwZGF0ZUNvbmZpZ3VyYXRpb25zLmZyb21fZGljdChzY3JlZW5pbmdfdXBkYXRlX2NvbmZpZ3VyYXRpb25zX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ScreeningValidationFailure.md b/docs/ScreeningValidationFailure.md index e632915d..22f9b8ce 100644 --- a/docs/ScreeningValidationFailure.md +++ b/docs/ScreeningValidationFailure.md @@ -1,30 +1 @@ -# ScreeningValidationFailure - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**reason** | **str** | | -**data** | **Dict[str, object]** | | [optional] - -## Example - -```python -from fireblocks.models.screening_validation_failure import ScreeningValidationFailure - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningValidationFailure from a JSON string -screening_validation_failure_instance = ScreeningValidationFailure.from_json(json) -# print the JSON string representation of the object -print(ScreeningValidationFailure.to_json()) - -# convert the object into a dict -screening_validation_failure_dict = screening_validation_failure_instance.to_dict() -# create an instance of ScreeningValidationFailure from a dict -screening_validation_failure_from_dict = ScreeningValidationFailure.from_dict(screening_validation_failure_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdWYWxpZGF0aW9uRmFpbHVyZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipyZWFzb24qKiB8ICoqc3RyKiogfCAgfCAKKipkYXRhKiogfCAqKkRpY3Rbc3RyLCBvYmplY3RdKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3ZhbGlkYXRpb25fZmFpbHVyZSBpbXBvcnQgU2NyZWVuaW5nVmFsaWRhdGlvbkZhaWx1cmUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ1ZhbGlkYXRpb25GYWlsdXJlIGZyb20gYSBKU09OIHN0cmluZwpzY3JlZW5pbmdfdmFsaWRhdGlvbl9mYWlsdXJlX2luc3RhbmNlID0gU2NyZWVuaW5nVmFsaWRhdGlvbkZhaWx1cmUuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU2NyZWVuaW5nVmFsaWRhdGlvbkZhaWx1cmUudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2NyZWVuaW5nX3ZhbGlkYXRpb25fZmFpbHVyZV9kaWN0ID0gc2NyZWVuaW5nX3ZhbGlkYXRpb25fZmFpbHVyZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVmFsaWRhdGlvbkZhaWx1cmUgZnJvbSBhIGRpY3QKc2NyZWVuaW5nX3ZhbGlkYXRpb25fZmFpbHVyZV9mcm9tX2RpY3QgPSBTY3JlZW5pbmdWYWxpZGF0aW9uRmFpbHVyZS5mcm9tX2RpY3Qoc2NyZWVuaW5nX3ZhbGlkYXRpb25fZmFpbHVyZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ScreeningVerdict.md b/docs/ScreeningVerdict.md index 4696c37b..19459aac 100644 --- a/docs/ScreeningVerdict.md +++ b/docs/ScreeningVerdict.md @@ -1,34 +1 @@ -# ScreeningVerdict - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**verdict** | **str** | | -**execution_operation_id** | **str** | | -**account** | [**Destination**](Destination.md) | | -**asset_id** | **str** | | -**amount** | **str** | | -**matched_rule** | [**ScreeningVerdictMatchedRule**](ScreeningVerdictMatchedRule.md) | | [optional] - -## Example - -```python -from fireblocks.models.screening_verdict import ScreeningVerdict - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningVerdict from a JSON string -screening_verdict_instance = ScreeningVerdict.from_json(json) -# print the JSON string representation of the object -print(ScreeningVerdict.to_json()) - -# convert the object into a dict -screening_verdict_dict = screening_verdict_instance.to_dict() -# create an instance of ScreeningVerdict from a dict -screening_verdict_from_dict = ScreeningVerdict.from_dict(screening_verdict_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdWZXJkaWN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnZlcmRpY3QqKiB8ICoqc3RyKiogfCAgfCAKKipleGVjdXRpb25fb3BlcmF0aW9uX2lkKiogfCAqKnN0cioqIHwgIHwgCioqYWNjb3VudCoqIHwgWyoqRGVzdGluYXRpb24qKl0oRGVzdGluYXRpb24ubWQpIHwgIHwgCioqYXNzZXRfaWQqKiB8ICoqc3RyKiogfCAgfCAKKiphbW91bnQqKiB8ICoqc3RyKiogfCAgfCAKKiptYXRjaGVkX3J1bGUqKiB8IFsqKlNjcmVlbmluZ1ZlcmRpY3RNYXRjaGVkUnVsZSoqXShTY3JlZW5pbmdWZXJkaWN0TWF0Y2hlZFJ1bGUubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ192ZXJkaWN0IGltcG9ydCBTY3JlZW5pbmdWZXJkaWN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdWZXJkaWN0IGZyb20gYSBKU09OIHN0cmluZwpzY3JlZW5pbmdfdmVyZGljdF9pbnN0YW5jZSA9IFNjcmVlbmluZ1ZlcmRpY3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU2NyZWVuaW5nVmVyZGljdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzY3JlZW5pbmdfdmVyZGljdF9kaWN0ID0gc2NyZWVuaW5nX3ZlcmRpY3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ1ZlcmRpY3QgZnJvbSBhIGRpY3QKc2NyZWVuaW5nX3ZlcmRpY3RfZnJvbV9kaWN0ID0gU2NyZWVuaW5nVmVyZGljdC5mcm9tX2RpY3Qoc2NyZWVuaW5nX3ZlcmRpY3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/ScreeningVerdictEnum.md b/docs/ScreeningVerdictEnum.md index 78f8cbd5..4cfa44a8 100644 --- a/docs/ScreeningVerdictEnum.md +++ b/docs/ScreeningVerdictEnum.md @@ -1,25 +1 @@ -# ScreeningVerdictEnum - -The final verdict of the screening (unified for AML, Travel Rule, and TRLink). Different providers may return different verdict values: - AML: PASS, FAIL, ALERT - Travel Rule: PASS, FAIL, TRAVEL_RULE_REQUIRED - TRLink: PASS, REJECT, WARN - -## Enum - -* `PASS` (value: `'PASS'`) - -* `FAIL` (value: `'FAIL'`) - -* `ALERT` (value: `'ALERT'`) - -* `REJECT` (value: `'REJECT'`) - -* `WARN` (value: `'WARN'`) - -* `TRAVEL_RULE_REQUIRED` (value: `'TRAVEL_RULE_REQUIRED'`) - -* `ACCEPT` (value: `'ACCEPT'`) - -* `REVIEW` (value: `'REVIEW'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdWZXJkaWN0RW51bQoKVGhlIGZpbmFsIHZlcmRpY3Qgb2YgdGhlIHNjcmVlbmluZyAodW5pZmllZCBmb3IgQU1MLCBUcmF2ZWwgUnVsZSwgYW5kIFRSTGluaykuIERpZmZlcmVudCBwcm92aWRlcnMgbWF5IHJldHVybiBkaWZmZXJlbnQgdmVyZGljdCB2YWx1ZXM6IC0gQU1MOiBQQVNTLCBGQUlMLCBBTEVSVCAtIFRyYXZlbCBSdWxlOiBQQVNTLCBGQUlMLCBUUkFWRUxfUlVMRV9SRVFVSVJFRCAtIFRSTGluazogUEFTUywgUkVKRUNULCBXQVJOIAoKIyMgRW51bQoKKiBgUEFTU2AgKHZhbHVlOiBgJ1BBU1MnYCkKCiogYEZBSUxgICh2YWx1ZTogYCdGQUlMJ2ApCgoqIGBBTEVSVGAgKHZhbHVlOiBgJ0FMRVJUJ2ApCgoqIGBSRUpFQ1RgICh2YWx1ZTogYCdSRUpFQ1QnYCkKCiogYFdBUk5gICh2YWx1ZTogYCdXQVJOJ2ApCgoqIGBUUkFWRUxfUlVMRV9SRVFVSVJFRGAgKHZhbHVlOiBgJ1RSQVZFTF9SVUxFX1JFUVVJUkVEJ2ApCgoqIGBBQ0NFUFRgICh2YWx1ZTogYCdBQ0NFUFQnYCkKCiogYFJFVklFV2AgKHZhbHVlOiBgJ1JFVklFVydgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ScreeningVerdictMatchedRule.md b/docs/ScreeningVerdictMatchedRule.md index 42266980..a87889c9 100644 --- a/docs/ScreeningVerdictMatchedRule.md +++ b/docs/ScreeningVerdictMatchedRule.md @@ -1,30 +1 @@ -# ScreeningVerdictMatchedRule - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**action** | **str** | | [optional] -**category** | **List[str]** | | [optional] - -## Example - -```python -from fireblocks.models.screening_verdict_matched_rule import ScreeningVerdictMatchedRule - -# TODO update the JSON string below -json = "{}" -# create an instance of ScreeningVerdictMatchedRule from a JSON string -screening_verdict_matched_rule_instance = ScreeningVerdictMatchedRule.from_json(json) -# print the JSON string representation of the object -print(ScreeningVerdictMatchedRule.to_json()) - -# convert the object into a dict -screening_verdict_matched_rule_dict = screening_verdict_matched_rule_instance.to_dict() -# create an instance of ScreeningVerdictMatchedRule from a dict -screening_verdict_matched_rule_from_dict = ScreeningVerdictMatchedRule.from_dict(screening_verdict_matched_rule_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTY3JlZW5pbmdWZXJkaWN0TWF0Y2hlZFJ1bGUKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYWN0aW9uKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipjYXRlZ29yeSoqIHwgKipMaXN0W3N0cl0qKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdmVyZGljdF9tYXRjaGVkX3J1bGUgaW1wb3J0IFNjcmVlbmluZ1ZlcmRpY3RNYXRjaGVkUnVsZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVmVyZGljdE1hdGNoZWRSdWxlIGZyb20gYSBKU09OIHN0cmluZwpzY3JlZW5pbmdfdmVyZGljdF9tYXRjaGVkX3J1bGVfaW5zdGFuY2UgPSBTY3JlZW5pbmdWZXJkaWN0TWF0Y2hlZFJ1bGUuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU2NyZWVuaW5nVmVyZGljdE1hdGNoZWRSdWxlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNjcmVlbmluZ192ZXJkaWN0X21hdGNoZWRfcnVsZV9kaWN0ID0gc2NyZWVuaW5nX3ZlcmRpY3RfbWF0Y2hlZF9ydWxlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdWZXJkaWN0TWF0Y2hlZFJ1bGUgZnJvbSBhIGRpY3QKc2NyZWVuaW5nX3ZlcmRpY3RfbWF0Y2hlZF9ydWxlX2Zyb21fZGljdCA9IFNjcmVlbmluZ1ZlcmRpY3RNYXRjaGVkUnVsZS5mcm9tX2RpY3Qoc2NyZWVuaW5nX3ZlcmRpY3RfbWF0Y2hlZF9ydWxlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SearchNetworkIdsResponse.md b/docs/SearchNetworkIdsResponse.md index d2e7a3c3..66d99f9e 100644 --- a/docs/SearchNetworkIdsResponse.md +++ b/docs/SearchNetworkIdsResponse.md @@ -1,30 +1 @@ -# SearchNetworkIdsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[NetworkIdResponse]**](NetworkIdResponse.md) | | [optional] -**next** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.search_network_ids_response import SearchNetworkIdsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of SearchNetworkIdsResponse from a JSON string -search_network_ids_response_instance = SearchNetworkIdsResponse.from_json(json) -# print the JSON string representation of the object -print(SearchNetworkIdsResponse.to_json()) - -# convert the object into a dict -search_network_ids_response_dict = search_network_ids_response_instance.to_dict() -# create an instance of SearchNetworkIdsResponse from a dict -search_network_ids_response_from_dict = SearchNetworkIdsResponse.from_dict(search_network_ids_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZWFyY2hOZXR3b3JrSWRzUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZGF0YSoqIHwgWyoqTGlzdFtOZXR3b3JrSWRSZXNwb25zZV0qKl0oTmV0d29ya0lkUmVzcG9uc2UubWQpIHwgIHwgW29wdGlvbmFsXSAKKipuZXh0KiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNlYXJjaF9uZXR3b3JrX2lkc19yZXNwb25zZSBpbXBvcnQgU2VhcmNoTmV0d29ya0lkc1Jlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZWFyY2hOZXR3b3JrSWRzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnNlYXJjaF9uZXR3b3JrX2lkc19yZXNwb25zZV9pbnN0YW5jZSA9IFNlYXJjaE5ldHdvcmtJZHNSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTZWFyY2hOZXR3b3JrSWRzUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2VhcmNoX25ldHdvcmtfaWRzX3Jlc3BvbnNlX2RpY3QgPSBzZWFyY2hfbmV0d29ya19pZHNfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNlYXJjaE5ldHdvcmtJZHNSZXNwb25zZSBmcm9tIGEgZGljdApzZWFyY2hfbmV0d29ya19pZHNfcmVzcG9uc2VfZnJvbV9kaWN0ID0gU2VhcmNoTmV0d29ya0lkc1Jlc3BvbnNlLmZyb21fZGljdChzZWFyY2hfbmV0d29ya19pZHNfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SepaPaymentInfo.md b/docs/SepaPaymentInfo.md index 7761348a..35d40941 100644 --- a/docs/SepaPaymentInfo.md +++ b/docs/SepaPaymentInfo.md @@ -1,43 +1 @@ -# SepaPaymentInfo - -SEPA payment information for European Single Euro Payments Area transfers - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**rail** | **str** | The payment rail type for SEPA transfers | -**addressing_system** | **str** | The addressing system used for SEPA transfers | -**account_holder_given_name** | **str** | The given name (first name) of the account holder | -**account_holder_surname** | **str** | The surname (last name) of the account holder | -**account_holder_country** | **str** | The country where the account holder resides (ISO 3166-1 alpha-2 code) | [optional] -**account_holder_address** | **str** | The address of the account holder | [optional] -**iban** | **str** | The International Bank Account Number (IBAN) | -**country** | **str** | The country for the transfer (ISO 3166-1 alpha-2 code) | -**bic** | **str** | The Bank Identifier Code (BIC/SWIFT code) | [optional] -**bank_name** | **str** | The name of the bank | [optional] -**bank_branch** | **str** | The bank branch information | [optional] -**bank_address** | **str** | The address of the bank | [optional] -**purpose_code** | **str** | The purpose code for the transfer | [optional] -**tax_id** | **str** | The tax identification number | [optional] - -## Example - -```python -from fireblocks.models.sepa_payment_info import SepaPaymentInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of SepaPaymentInfo from a JSON string -sepa_payment_info_instance = SepaPaymentInfo.from_json(json) -# print the JSON string representation of the object -print(SepaPaymentInfo.to_json()) - -# convert the object into a dict -sepa_payment_info_dict = sepa_payment_info_instance.to_dict() -# create an instance of SepaPaymentInfo from a dict -sepa_payment_info_from_dict = SepaPaymentInfo.from_dict(sepa_payment_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXBhUGF5bWVudEluZm8KClNFUEEgcGF5bWVudCBpbmZvcm1hdGlvbiBmb3IgRXVyb3BlYW4gU2luZ2xlIEV1cm8gUGF5bWVudHMgQXJlYSB0cmFuc2ZlcnMKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipyYWlsKiogfCAqKnN0cioqIHwgVGhlIHBheW1lbnQgcmFpbCB0eXBlIGZvciBTRVBBIHRyYW5zZmVycyB8IAoqKmFkZHJlc3Npbmdfc3lzdGVtKiogfCAqKnN0cioqIHwgVGhlIGFkZHJlc3Npbmcgc3lzdGVtIHVzZWQgZm9yIFNFUEEgdHJhbnNmZXJzIHwgCioqYWNjb3VudF9ob2xkZXJfZ2l2ZW5fbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBnaXZlbiBuYW1lIChmaXJzdCBuYW1lKSBvZiB0aGUgYWNjb3VudCBob2xkZXIgfCAKKiphY2NvdW50X2hvbGRlcl9zdXJuYW1lKiogfCAqKnN0cioqIHwgVGhlIHN1cm5hbWUgKGxhc3QgbmFtZSkgb2YgdGhlIGFjY291bnQgaG9sZGVyIHwgCioqYWNjb3VudF9ob2xkZXJfY291bnRyeSoqIHwgKipzdHIqKiB8IFRoZSBjb3VudHJ5IHdoZXJlIHRoZSBhY2NvdW50IGhvbGRlciByZXNpZGVzIChJU08gMzE2Ni0xIGFscGhhLTIgY29kZSkgfCBbb3B0aW9uYWxdIAoqKmFjY291bnRfaG9sZGVyX2FkZHJlc3MqKiB8ICoqc3RyKiogfCBUaGUgYWRkcmVzcyBvZiB0aGUgYWNjb3VudCBob2xkZXIgfCBbb3B0aW9uYWxdIAoqKmliYW4qKiB8ICoqc3RyKiogfCBUaGUgSW50ZXJuYXRpb25hbCBCYW5rIEFjY291bnQgTnVtYmVyIChJQkFOKSB8IAoqKmNvdW50cnkqKiB8ICoqc3RyKiogfCBUaGUgY291bnRyeSBmb3IgdGhlIHRyYW5zZmVyIChJU08gMzE2Ni0xIGFscGhhLTIgY29kZSkgfCAKKipiaWMqKiB8ICoqc3RyKiogfCBUaGUgQmFuayBJZGVudGlmaWVyIENvZGUgKEJJQy9TV0lGVCBjb2RlKSB8IFtvcHRpb25hbF0gCioqYmFua19uYW1lKiogfCAqKnN0cioqIHwgVGhlIG5hbWUgb2YgdGhlIGJhbmsgfCBbb3B0aW9uYWxdIAoqKmJhbmtfYnJhbmNoKiogfCAqKnN0cioqIHwgVGhlIGJhbmsgYnJhbmNoIGluZm9ybWF0aW9uIHwgW29wdGlvbmFsXSAKKipiYW5rX2FkZHJlc3MqKiB8ICoqc3RyKiogfCBUaGUgYWRkcmVzcyBvZiB0aGUgYmFuayB8IFtvcHRpb25hbF0gCioqcHVycG9zZV9jb2RlKiogfCAqKnN0cioqIHwgVGhlIHB1cnBvc2UgY29kZSBmb3IgdGhlIHRyYW5zZmVyIHwgW29wdGlvbmFsXSAKKip0YXhfaWQqKiB8ICoqc3RyKiogfCBUaGUgdGF4IGlkZW50aWZpY2F0aW9uIG51bWJlciB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXBhX3BheW1lbnRfaW5mbyBpbXBvcnQgU2VwYVBheW1lbnRJbmZvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXBhUGF5bWVudEluZm8gZnJvbSBhIEpTT04gc3RyaW5nCnNlcGFfcGF5bWVudF9pbmZvX2luc3RhbmNlID0gU2VwYVBheW1lbnRJbmZvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNlcGFQYXltZW50SW5mby50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzZXBhX3BheW1lbnRfaW5mb19kaWN0ID0gc2VwYV9wYXltZW50X2luZm9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNlcGFQYXltZW50SW5mbyBmcm9tIGEgZGljdApzZXBhX3BheW1lbnRfaW5mb19mcm9tX2RpY3QgPSBTZXBhUGF5bWVudEluZm8uZnJvbV9kaWN0KHNlcGFfcGF5bWVudF9pbmZvX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SessionDTO.md b/docs/SessionDTO.md index 76966ad4..b6f02fec 100644 --- a/docs/SessionDTO.md +++ b/docs/SessionDTO.md @@ -1,37 +1 @@ -# SessionDTO - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | Id of the connection | -**user_id** | **str** | Id of the user that created the connection | -**session_metadata** | [**SessionMetadata**](SessionMetadata.md) | Metadata of the connection (provided by the dapp) | -**vault_account_id** | **float** | The vault to connect | -**fee_level** | **str** | The default fee level | -**chain_ids** | **List[str]** | The chains approved for the connection | -**connection_type** | **str** | The connection's type | -**connection_method** | **str** | The method through which the connection was established | -**creation_date** | **datetime** | Timestamp of the session's creation | - -## Example - -```python -from fireblocks.models.session_dto import SessionDTO - -# TODO update the JSON string below -json = "{}" -# create an instance of SessionDTO from a JSON string -session_dto_instance = SessionDTO.from_json(json) -# print the JSON string representation of the object -print(SessionDTO.to_json()) - -# convert the object into a dict -session_dto_dict = session_dto_instance.to_dict() -# create an instance of SessionDTO from a dict -session_dto_from_dict = SessionDTO.from_dict(session_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXNzaW9uRFRPCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgSWQgb2YgdGhlIGNvbm5lY3Rpb24gfCAKKip1c2VyX2lkKiogfCAqKnN0cioqIHwgSWQgb2YgdGhlIHVzZXIgdGhhdCBjcmVhdGVkIHRoZSBjb25uZWN0aW9uIHwgCioqc2Vzc2lvbl9tZXRhZGF0YSoqIHwgWyoqU2Vzc2lvbk1ldGFkYXRhKipdKFNlc3Npb25NZXRhZGF0YS5tZCkgfCBNZXRhZGF0YSBvZiB0aGUgY29ubmVjdGlvbiAocHJvdmlkZWQgYnkgdGhlIGRhcHApIHwgCioqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipmbG9hdCoqIHwgVGhlIHZhdWx0IHRvIGNvbm5lY3QgfCAKKipmZWVfbGV2ZWwqKiB8ICoqc3RyKiogfCBUaGUgZGVmYXVsdCBmZWUgbGV2ZWwgfCAKKipjaGFpbl9pZHMqKiB8ICoqTGlzdFtzdHJdKiogfCBUaGUgY2hhaW5zIGFwcHJvdmVkIGZvciB0aGUgY29ubmVjdGlvbiB8IAoqKmNvbm5lY3Rpb25fdHlwZSoqIHwgKipzdHIqKiB8IFRoZSBjb25uZWN0aW9uJiMzOTtzIHR5cGUgfCAKKipjb25uZWN0aW9uX21ldGhvZCoqIHwgKipzdHIqKiB8IFRoZSBtZXRob2QgdGhyb3VnaCB3aGljaCB0aGUgY29ubmVjdGlvbiB3YXMgZXN0YWJsaXNoZWQgfCAKKipjcmVhdGlvbl9kYXRlKiogfCAqKmRhdGV0aW1lKiogfCBUaW1lc3RhbXAgb2YgdGhlIHNlc3Npb24mIzM5O3MgY3JlYXRpb24gfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNlc3Npb25fZHRvIGltcG9ydCBTZXNzaW9uRFRPCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXNzaW9uRFRPIGZyb20gYSBKU09OIHN0cmluZwpzZXNzaW9uX2R0b19pbnN0YW5jZSA9IFNlc3Npb25EVE8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU2Vzc2lvbkRUTy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzZXNzaW9uX2R0b19kaWN0ID0gc2Vzc2lvbl9kdG9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNlc3Npb25EVE8gZnJvbSBhIGRpY3QKc2Vzc2lvbl9kdG9fZnJvbV9kaWN0ID0gU2Vzc2lvbkRUTy5mcm9tX2RpY3Qoc2Vzc2lvbl9kdG9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SessionMetadata.md b/docs/SessionMetadata.md index d49301d4..47308b07 100644 --- a/docs/SessionMetadata.md +++ b/docs/SessionMetadata.md @@ -1,32 +1 @@ -# SessionMetadata - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**app_url** | **str** | | -**app_name** | **str** | | [optional] -**app_description** | **str** | | [optional] -**app_icon** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.session_metadata import SessionMetadata - -# TODO update the JSON string below -json = "{}" -# create an instance of SessionMetadata from a JSON string -session_metadata_instance = SessionMetadata.from_json(json) -# print the JSON string representation of the object -print(SessionMetadata.to_json()) - -# convert the object into a dict -session_metadata_dict = session_metadata_instance.to_dict() -# create an instance of SessionMetadata from a dict -session_metadata_from_dict = SessionMetadata.from_dict(session_metadata_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXNzaW9uTWV0YWRhdGEKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYXBwX3VybCoqIHwgKipzdHIqKiB8ICB8IAoqKmFwcF9uYW1lKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKiphcHBfZGVzY3JpcHRpb24qKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFwcF9pY29uKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNlc3Npb25fbWV0YWRhdGEgaW1wb3J0IFNlc3Npb25NZXRhZGF0YQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2Vzc2lvbk1ldGFkYXRhIGZyb20gYSBKU09OIHN0cmluZwpzZXNzaW9uX21ldGFkYXRhX2luc3RhbmNlID0gU2Vzc2lvbk1ldGFkYXRhLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNlc3Npb25NZXRhZGF0YS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzZXNzaW9uX21ldGFkYXRhX2RpY3QgPSBzZXNzaW9uX21ldGFkYXRhX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXNzaW9uTWV0YWRhdGEgZnJvbSBhIGRpY3QKc2Vzc2lvbl9tZXRhZGF0YV9mcm9tX2RpY3QgPSBTZXNzaW9uTWV0YWRhdGEuZnJvbV9kaWN0KHNlc3Npb25fbWV0YWRhdGFfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SetAdminQuorumThresholdRequest.md b/docs/SetAdminQuorumThresholdRequest.md index 044a07f9..0df87719 100644 --- a/docs/SetAdminQuorumThresholdRequest.md +++ b/docs/SetAdminQuorumThresholdRequest.md @@ -1,29 +1 @@ -# SetAdminQuorumThresholdRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**admin_quorum_threshold** | **float** | The number of admins that will requires to approve an operation | [optional] - -## Example - -```python -from fireblocks.models.set_admin_quorum_threshold_request import SetAdminQuorumThresholdRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of SetAdminQuorumThresholdRequest from a JSON string -set_admin_quorum_threshold_request_instance = SetAdminQuorumThresholdRequest.from_json(json) -# print the JSON string representation of the object -print(SetAdminQuorumThresholdRequest.to_json()) - -# convert the object into a dict -set_admin_quorum_threshold_request_dict = set_admin_quorum_threshold_request_instance.to_dict() -# create an instance of SetAdminQuorumThresholdRequest from a dict -set_admin_quorum_threshold_request_from_dict = SetAdminQuorumThresholdRequest.from_dict(set_admin_quorum_threshold_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXRBZG1pblF1b3J1bVRocmVzaG9sZFJlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYWRtaW5fcXVvcnVtX3RocmVzaG9sZCoqIHwgKipmbG9hdCoqIHwgVGhlIG51bWJlciBvZiBhZG1pbnMgdGhhdCB3aWxsIHJlcXVpcmVzIHRvIGFwcHJvdmUgYW4gb3BlcmF0aW9uIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9hZG1pbl9xdW9ydW1fdGhyZXNob2xkX3JlcXVlc3QgaW1wb3J0IFNldEFkbWluUXVvcnVtVGhyZXNob2xkUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0QWRtaW5RdW9ydW1UaHJlc2hvbGRSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpzZXRfYWRtaW5fcXVvcnVtX3RocmVzaG9sZF9yZXF1ZXN0X2luc3RhbmNlID0gU2V0QWRtaW5RdW9ydW1UaHJlc2hvbGRSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNldEFkbWluUXVvcnVtVGhyZXNob2xkUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzZXRfYWRtaW5fcXVvcnVtX3RocmVzaG9sZF9yZXF1ZXN0X2RpY3QgPSBzZXRfYWRtaW5fcXVvcnVtX3RocmVzaG9sZF9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRBZG1pblF1b3J1bVRocmVzaG9sZFJlcXVlc3QgZnJvbSBhIGRpY3QKc2V0X2FkbWluX3F1b3J1bV90aHJlc2hvbGRfcmVxdWVzdF9mcm9tX2RpY3QgPSBTZXRBZG1pblF1b3J1bVRocmVzaG9sZFJlcXVlc3QuZnJvbV9kaWN0KHNldF9hZG1pbl9xdW9ydW1fdGhyZXNob2xkX3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SetAdminQuorumThresholdResponse.md b/docs/SetAdminQuorumThresholdResponse.md index 60299b78..9aa16a82 100644 --- a/docs/SetAdminQuorumThresholdResponse.md +++ b/docs/SetAdminQuorumThresholdResponse.md @@ -1,29 +1 @@ -# SetAdminQuorumThresholdResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | The message which indicates the result of the operation. | - -## Example - -```python -from fireblocks.models.set_admin_quorum_threshold_response import SetAdminQuorumThresholdResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of SetAdminQuorumThresholdResponse from a JSON string -set_admin_quorum_threshold_response_instance = SetAdminQuorumThresholdResponse.from_json(json) -# print the JSON string representation of the object -print(SetAdminQuorumThresholdResponse.to_json()) - -# convert the object into a dict -set_admin_quorum_threshold_response_dict = set_admin_quorum_threshold_response_instance.to_dict() -# create an instance of SetAdminQuorumThresholdResponse from a dict -set_admin_quorum_threshold_response_from_dict = SetAdminQuorumThresholdResponse.from_dict(set_admin_quorum_threshold_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXRBZG1pblF1b3J1bVRocmVzaG9sZFJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm1lc3NhZ2UqKiB8ICoqc3RyKiogfCBUaGUgbWVzc2FnZSB3aGljaCBpbmRpY2F0ZXMgdGhlIHJlc3VsdCBvZiB0aGUgb3BlcmF0aW9uLiB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2FkbWluX3F1b3J1bV90aHJlc2hvbGRfcmVzcG9uc2UgaW1wb3J0IFNldEFkbWluUXVvcnVtVGhyZXNob2xkUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldEFkbWluUXVvcnVtVGhyZXNob2xkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnNldF9hZG1pbl9xdW9ydW1fdGhyZXNob2xkX3Jlc3BvbnNlX2luc3RhbmNlID0gU2V0QWRtaW5RdW9ydW1UaHJlc2hvbGRSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTZXRBZG1pblF1b3J1bVRocmVzaG9sZFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNldF9hZG1pbl9xdW9ydW1fdGhyZXNob2xkX3Jlc3BvbnNlX2RpY3QgPSBzZXRfYWRtaW5fcXVvcnVtX3RocmVzaG9sZF9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0QWRtaW5RdW9ydW1UaHJlc2hvbGRSZXNwb25zZSBmcm9tIGEgZGljdApzZXRfYWRtaW5fcXVvcnVtX3RocmVzaG9sZF9yZXNwb25zZV9mcm9tX2RpY3QgPSBTZXRBZG1pblF1b3J1bVRocmVzaG9sZFJlc3BvbnNlLmZyb21fZGljdChzZXRfYWRtaW5fcXVvcnVtX3RocmVzaG9sZF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SetAssetPriceRequest.md b/docs/SetAssetPriceRequest.md index eefd3499..cad7b5a3 100644 --- a/docs/SetAssetPriceRequest.md +++ b/docs/SetAssetPriceRequest.md @@ -1,30 +1 @@ -# SetAssetPriceRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**currency** | **str** | Currency (according to ISO 4217 currency codes) | -**price** | **float** | Price in currency | - -## Example - -```python -from fireblocks.models.set_asset_price_request import SetAssetPriceRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of SetAssetPriceRequest from a JSON string -set_asset_price_request_instance = SetAssetPriceRequest.from_json(json) -# print the JSON string representation of the object -print(SetAssetPriceRequest.to_json()) - -# convert the object into a dict -set_asset_price_request_dict = set_asset_price_request_instance.to_dict() -# create an instance of SetAssetPriceRequest from a dict -set_asset_price_request_from_dict = SetAssetPriceRequest.from_dict(set_asset_price_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXRBc3NldFByaWNlUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipjdXJyZW5jeSoqIHwgKipzdHIqKiB8IEN1cnJlbmN5IChhY2NvcmRpbmcgdG8gSVNPIDQyMTcgY3VycmVuY3kgY29kZXMpIHwgCioqcHJpY2UqKiB8ICoqZmxvYXQqKiB8IFByaWNlIGluIGN1cnJlbmN5IHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfYXNzZXRfcHJpY2VfcmVxdWVzdCBpbXBvcnQgU2V0QXNzZXRQcmljZVJlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldEFzc2V0UHJpY2VSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpzZXRfYXNzZXRfcHJpY2VfcmVxdWVzdF9pbnN0YW5jZSA9IFNldEFzc2V0UHJpY2VSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNldEFzc2V0UHJpY2VSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNldF9hc3NldF9wcmljZV9yZXF1ZXN0X2RpY3QgPSBzZXRfYXNzZXRfcHJpY2VfcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0QXNzZXRQcmljZVJlcXVlc3QgZnJvbSBhIGRpY3QKc2V0X2Fzc2V0X3ByaWNlX3JlcXVlc3RfZnJvbV9kaWN0ID0gU2V0QXNzZXRQcmljZVJlcXVlc3QuZnJvbV9kaWN0KHNldF9hc3NldF9wcmljZV9yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SetAutoFuelRequest.md b/docs/SetAutoFuelRequest.md index 402cc232..3dd57f82 100644 --- a/docs/SetAutoFuelRequest.md +++ b/docs/SetAutoFuelRequest.md @@ -1,29 +1 @@ -# SetAutoFuelRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**auto_fuel** | **bool** | Auto Fuel | [optional] - -## Example - -```python -from fireblocks.models.set_auto_fuel_request import SetAutoFuelRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of SetAutoFuelRequest from a JSON string -set_auto_fuel_request_instance = SetAutoFuelRequest.from_json(json) -# print the JSON string representation of the object -print(SetAutoFuelRequest.to_json()) - -# convert the object into a dict -set_auto_fuel_request_dict = set_auto_fuel_request_instance.to_dict() -# create an instance of SetAutoFuelRequest from a dict -set_auto_fuel_request_from_dict = SetAutoFuelRequest.from_dict(set_auto_fuel_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXRBdXRvRnVlbFJlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYXV0b19mdWVsKiogfCAqKmJvb2wqKiB8IEF1dG8gRnVlbCB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfYXV0b19mdWVsX3JlcXVlc3QgaW1wb3J0IFNldEF1dG9GdWVsUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0QXV0b0Z1ZWxSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpzZXRfYXV0b19mdWVsX3JlcXVlc3RfaW5zdGFuY2UgPSBTZXRBdXRvRnVlbFJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU2V0QXV0b0Z1ZWxSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNldF9hdXRvX2Z1ZWxfcmVxdWVzdF9kaWN0ID0gc2V0X2F1dG9fZnVlbF9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRBdXRvRnVlbFJlcXVlc3QgZnJvbSBhIGRpY3QKc2V0X2F1dG9fZnVlbF9yZXF1ZXN0X2Zyb21fZGljdCA9IFNldEF1dG9GdWVsUmVxdWVzdC5mcm9tX2RpY3Qoc2V0X2F1dG9fZnVlbF9yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SetConfirmationsThresholdRequest.md b/docs/SetConfirmationsThresholdRequest.md index edeb2fab..515e909c 100644 --- a/docs/SetConfirmationsThresholdRequest.md +++ b/docs/SetConfirmationsThresholdRequest.md @@ -1,29 +1 @@ -# SetConfirmationsThresholdRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**num_of_confirmations** | **float** | | [optional] - -## Example - -```python -from fireblocks.models.set_confirmations_threshold_request import SetConfirmationsThresholdRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of SetConfirmationsThresholdRequest from a JSON string -set_confirmations_threshold_request_instance = SetConfirmationsThresholdRequest.from_json(json) -# print the JSON string representation of the object -print(SetConfirmationsThresholdRequest.to_json()) - -# convert the object into a dict -set_confirmations_threshold_request_dict = set_confirmations_threshold_request_instance.to_dict() -# create an instance of SetConfirmationsThresholdRequest from a dict -set_confirmations_threshold_request_from_dict = SetConfirmationsThresholdRequest.from_dict(set_confirmations_threshold_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipudW1fb2ZfY29uZmlybWF0aW9ucyoqIHwgKipmbG9hdCoqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9jb25maXJtYXRpb25zX3RocmVzaG9sZF9yZXF1ZXN0IGltcG9ydCBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0Q29uZmlybWF0aW9uc1RocmVzaG9sZFJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCnNldF9jb25maXJtYXRpb25zX3RocmVzaG9sZF9yZXF1ZXN0X2luc3RhbmNlID0gU2V0Q29uZmlybWF0aW9uc1RocmVzaG9sZFJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU2V0Q29uZmlybWF0aW9uc1RocmVzaG9sZFJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2V0X2NvbmZpcm1hdGlvbnNfdGhyZXNob2xkX3JlcXVlc3RfZGljdCA9IHNldF9jb25maXJtYXRpb25zX3RocmVzaG9sZF9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdCBmcm9tIGEgZGljdApzZXRfY29uZmlybWF0aW9uc190aHJlc2hvbGRfcmVxdWVzdF9mcm9tX2RpY3QgPSBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdC5mcm9tX2RpY3Qoc2V0X2NvbmZpcm1hdGlvbnNfdGhyZXNob2xkX3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SetConfirmationsThresholdResponse.md b/docs/SetConfirmationsThresholdResponse.md index 4f3a550d..8de00376 100644 --- a/docs/SetConfirmationsThresholdResponse.md +++ b/docs/SetConfirmationsThresholdResponse.md @@ -1,30 +1 @@ -# SetConfirmationsThresholdResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**success** | **bool** | | [optional] -**transactions** | **List[str]** | | [optional] - -## Example - -```python -from fireblocks.models.set_confirmations_threshold_response import SetConfirmationsThresholdResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of SetConfirmationsThresholdResponse from a JSON string -set_confirmations_threshold_response_instance = SetConfirmationsThresholdResponse.from_json(json) -# print the JSON string representation of the object -print(SetConfirmationsThresholdResponse.to_json()) - -# convert the object into a dict -set_confirmations_threshold_response_dict = set_confirmations_threshold_response_instance.to_dict() -# create an instance of SetConfirmationsThresholdResponse from a dict -set_confirmations_threshold_response_from_dict = SetConfirmationsThresholdResponse.from_dict(set_confirmations_threshold_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3VjY2VzcyoqIHwgKipib29sKiogfCAgfCBbb3B0aW9uYWxdIAoqKnRyYW5zYWN0aW9ucyoqIHwgKipMaXN0W3N0cl0qKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfY29uZmlybWF0aW9uc190aHJlc2hvbGRfcmVzcG9uc2UgaW1wb3J0IFNldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0Q29uZmlybWF0aW9uc1RocmVzaG9sZFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpzZXRfY29uZmlybWF0aW9uc190aHJlc2hvbGRfcmVzcG9uc2VfaW5zdGFuY2UgPSBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU2V0Q29uZmlybWF0aW9uc1RocmVzaG9sZFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNldF9jb25maXJtYXRpb25zX3RocmVzaG9sZF9yZXNwb25zZV9kaWN0ID0gc2V0X2NvbmZpcm1hdGlvbnNfdGhyZXNob2xkX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVzcG9uc2UgZnJvbSBhIGRpY3QKc2V0X2NvbmZpcm1hdGlvbnNfdGhyZXNob2xkX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFNldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXNwb25zZS5mcm9tX2RpY3Qoc2V0X2NvbmZpcm1hdGlvbnNfdGhyZXNob2xkX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SetCustomerRefIdForAddressRequest.md b/docs/SetCustomerRefIdForAddressRequest.md index fd40cd94..87e0304e 100644 --- a/docs/SetCustomerRefIdForAddressRequest.md +++ b/docs/SetCustomerRefIdForAddressRequest.md @@ -1,29 +1 @@ -# SetCustomerRefIdForAddressRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**customer_ref_id** | **str** | Customer reference ID | [optional] - -## Example - -```python -from fireblocks.models.set_customer_ref_id_for_address_request import SetCustomerRefIdForAddressRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of SetCustomerRefIdForAddressRequest from a JSON string -set_customer_ref_id_for_address_request_instance = SetCustomerRefIdForAddressRequest.from_json(json) -# print the JSON string representation of the object -print(SetCustomerRefIdForAddressRequest.to_json()) - -# convert the object into a dict -set_customer_ref_id_for_address_request_dict = set_customer_ref_id_for_address_request_instance.to_dict() -# create an instance of SetCustomerRefIdForAddressRequest from a dict -set_customer_ref_id_for_address_request_from_dict = SetCustomerRefIdForAddressRequest.from_dict(set_customer_ref_id_for_address_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXRDdXN0b21lclJlZklkRm9yQWRkcmVzc1JlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqY3VzdG9tZXJfcmVmX2lkKiogfCAqKnN0cioqIHwgQ3VzdG9tZXIgcmVmZXJlbmNlIElEIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9jdXN0b21lcl9yZWZfaWRfZm9yX2FkZHJlc3NfcmVxdWVzdCBpbXBvcnQgU2V0Q3VzdG9tZXJSZWZJZEZvckFkZHJlc3NSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRDdXN0b21lclJlZklkRm9yQWRkcmVzc1JlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCnNldF9jdXN0b21lcl9yZWZfaWRfZm9yX2FkZHJlc3NfcmVxdWVzdF9pbnN0YW5jZSA9IFNldEN1c3RvbWVyUmVmSWRGb3JBZGRyZXNzUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTZXRDdXN0b21lclJlZklkRm9yQWRkcmVzc1JlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2V0X2N1c3RvbWVyX3JlZl9pZF9mb3JfYWRkcmVzc19yZXF1ZXN0X2RpY3QgPSBzZXRfY3VzdG9tZXJfcmVmX2lkX2Zvcl9hZGRyZXNzX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldEN1c3RvbWVyUmVmSWRGb3JBZGRyZXNzUmVxdWVzdCBmcm9tIGEgZGljdApzZXRfY3VzdG9tZXJfcmVmX2lkX2Zvcl9hZGRyZXNzX3JlcXVlc3RfZnJvbV9kaWN0ID0gU2V0Q3VzdG9tZXJSZWZJZEZvckFkZHJlc3NSZXF1ZXN0LmZyb21fZGljdChzZXRfY3VzdG9tZXJfcmVmX2lkX2Zvcl9hZGRyZXNzX3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SetCustomerRefIdRequest.md b/docs/SetCustomerRefIdRequest.md index 8c3bb23a..f2ca013d 100644 --- a/docs/SetCustomerRefIdRequest.md +++ b/docs/SetCustomerRefIdRequest.md @@ -1,29 +1 @@ -# SetCustomerRefIdRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**customer_ref_id** | **str** | Customer reference ID | [optional] - -## Example - -```python -from fireblocks.models.set_customer_ref_id_request import SetCustomerRefIdRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of SetCustomerRefIdRequest from a JSON string -set_customer_ref_id_request_instance = SetCustomerRefIdRequest.from_json(json) -# print the JSON string representation of the object -print(SetCustomerRefIdRequest.to_json()) - -# convert the object into a dict -set_customer_ref_id_request_dict = set_customer_ref_id_request_instance.to_dict() -# create an instance of SetCustomerRefIdRequest from a dict -set_customer_ref_id_request_from_dict = SetCustomerRefIdRequest.from_dict(set_customer_ref_id_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXRDdXN0b21lclJlZklkUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipjdXN0b21lcl9yZWZfaWQqKiB8ICoqc3RyKiogfCBDdXN0b21lciByZWZlcmVuY2UgSUQgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2N1c3RvbWVyX3JlZl9pZF9yZXF1ZXN0IGltcG9ydCBTZXRDdXN0b21lclJlZklkUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0Q3VzdG9tZXJSZWZJZFJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCnNldF9jdXN0b21lcl9yZWZfaWRfcmVxdWVzdF9pbnN0YW5jZSA9IFNldEN1c3RvbWVyUmVmSWRSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNldEN1c3RvbWVyUmVmSWRSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNldF9jdXN0b21lcl9yZWZfaWRfcmVxdWVzdF9kaWN0ID0gc2V0X2N1c3RvbWVyX3JlZl9pZF9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRDdXN0b21lclJlZklkUmVxdWVzdCBmcm9tIGEgZGljdApzZXRfY3VzdG9tZXJfcmVmX2lkX3JlcXVlc3RfZnJvbV9kaWN0ID0gU2V0Q3VzdG9tZXJSZWZJZFJlcXVlc3QuZnJvbV9kaWN0KHNldF9jdXN0b21lcl9yZWZfaWRfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SetLayerZeroDvnConfigRequest.md b/docs/SetLayerZeroDvnConfigRequest.md index 23fb7120..7f473935 100644 --- a/docs/SetLayerZeroDvnConfigRequest.md +++ b/docs/SetLayerZeroDvnConfigRequest.md @@ -1,33 +1 @@ -# SetLayerZeroDvnConfigRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vault_account_id** | **str** | Vault account that pays gas | -**source_adapter_token_link_id** | **str** | Source adapter TokenLink ID | -**destination_adapter_token_link_id** | **str** | Destination adapter TokenLink ID | -**send_config** | [**DvnConfig**](DvnConfig.md) | | -**receive_config** | [**DvnConfig**](DvnConfig.md) | | - -## Example - -```python -from fireblocks.models.set_layer_zero_dvn_config_request import SetLayerZeroDvnConfigRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of SetLayerZeroDvnConfigRequest from a JSON string -set_layer_zero_dvn_config_request_instance = SetLayerZeroDvnConfigRequest.from_json(json) -# print the JSON string representation of the object -print(SetLayerZeroDvnConfigRequest.to_json()) - -# convert the object into a dict -set_layer_zero_dvn_config_request_dict = set_layer_zero_dvn_config_request_instance.to_dict() -# create an instance of SetLayerZeroDvnConfigRequest from a dict -set_layer_zero_dvn_config_request_from_dict = SetLayerZeroDvnConfigRequest.from_dict(set_layer_zero_dvn_config_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXRMYXllclplcm9Edm5Db25maWdSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnZhdWx0X2FjY291bnRfaWQqKiB8ICoqc3RyKiogfCBWYXVsdCBhY2NvdW50IHRoYXQgcGF5cyBnYXMgfCAKKipzb3VyY2VfYWRhcHRlcl90b2tlbl9saW5rX2lkKiogfCAqKnN0cioqIHwgU291cmNlIGFkYXB0ZXIgVG9rZW5MaW5rIElEIHwgCioqZGVzdGluYXRpb25fYWRhcHRlcl90b2tlbl9saW5rX2lkKiogfCAqKnN0cioqIHwgRGVzdGluYXRpb24gYWRhcHRlciBUb2tlbkxpbmsgSUQgfCAKKipzZW5kX2NvbmZpZyoqIHwgWyoqRHZuQ29uZmlnKipdKER2bkNvbmZpZy5tZCkgfCAgfCAKKipyZWNlaXZlX2NvbmZpZyoqIHwgWyoqRHZuQ29uZmlnKipdKER2bkNvbmZpZy5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9sYXllcl96ZXJvX2R2bl9jb25maWdfcmVxdWVzdCBpbXBvcnQgU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXF1ZXN0X2luc3RhbmNlID0gU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTZXRMYXllclplcm9Edm5Db25maWdSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNldF9sYXllcl96ZXJvX2R2bl9jb25maWdfcmVxdWVzdF9kaWN0ID0gc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRMYXllclplcm9Edm5Db25maWdSZXF1ZXN0IGZyb20gYSBkaWN0CnNldF9sYXllcl96ZXJvX2R2bl9jb25maWdfcmVxdWVzdF9mcm9tX2RpY3QgPSBTZXRMYXllclplcm9Edm5Db25maWdSZXF1ZXN0LmZyb21fZGljdChzZXRfbGF5ZXJfemVyb19kdm5fY29uZmlnX3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SetLayerZeroDvnConfigResponse.md b/docs/SetLayerZeroDvnConfigResponse.md index 166b70ee..39188b37 100644 --- a/docs/SetLayerZeroDvnConfigResponse.md +++ b/docs/SetLayerZeroDvnConfigResponse.md @@ -1,29 +1 @@ -# SetLayerZeroDvnConfigResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**txn_ids** | **List[str]** | Transaction IDs submitted to the network | - -## Example - -```python -from fireblocks.models.set_layer_zero_dvn_config_response import SetLayerZeroDvnConfigResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of SetLayerZeroDvnConfigResponse from a JSON string -set_layer_zero_dvn_config_response_instance = SetLayerZeroDvnConfigResponse.from_json(json) -# print the JSON string representation of the object -print(SetLayerZeroDvnConfigResponse.to_json()) - -# convert the object into a dict -set_layer_zero_dvn_config_response_dict = set_layer_zero_dvn_config_response_instance.to_dict() -# create an instance of SetLayerZeroDvnConfigResponse from a dict -set_layer_zero_dvn_config_response_from_dict = SetLayerZeroDvnConfigResponse.from_dict(set_layer_zero_dvn_config_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXRMYXllclplcm9Edm5Db25maWdSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eG5faWRzKiogfCAqKkxpc3Rbc3RyXSoqIHwgVHJhbnNhY3Rpb24gSURzIHN1Ym1pdHRlZCB0byB0aGUgbmV0d29yayB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXNwb25zZSBpbXBvcnQgU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpzZXRfbGF5ZXJfemVyb19kdm5fY29uZmlnX3Jlc3BvbnNlX2luc3RhbmNlID0gU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXNwb25zZV9kaWN0ID0gc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UgZnJvbSBhIGRpY3QKc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXNwb25zZV9mcm9tX2RpY3QgPSBTZXRMYXllclplcm9Edm5Db25maWdSZXNwb25zZS5mcm9tX2RpY3Qoc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SetLayerZeroPeersRequest.md b/docs/SetLayerZeroPeersRequest.md index 5e869117..581b5e2e 100644 --- a/docs/SetLayerZeroPeersRequest.md +++ b/docs/SetLayerZeroPeersRequest.md @@ -1,32 +1 @@ -# SetLayerZeroPeersRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vault_account_id** | **str** | The id of the vault account that will be used to inititate transactions ot set peers | -**source_adapter_token_link_id** | **str** | `token_link` ID of the source adapter contract | -**destination_adapter_token_link_ids** | **List[str]** | Array of `token_link` IDs for destination adapter contracts | -**bidirectional** | **bool** | If true, also sets peers from destination(s) back to source | - -## Example - -```python -from fireblocks.models.set_layer_zero_peers_request import SetLayerZeroPeersRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of SetLayerZeroPeersRequest from a JSON string -set_layer_zero_peers_request_instance = SetLayerZeroPeersRequest.from_json(json) -# print the JSON string representation of the object -print(SetLayerZeroPeersRequest.to_json()) - -# convert the object into a dict -set_layer_zero_peers_request_dict = set_layer_zero_peers_request_instance.to_dict() -# create an instance of SetLayerZeroPeersRequest from a dict -set_layer_zero_peers_request_from_dict = SetLayerZeroPeersRequest.from_dict(set_layer_zero_peers_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXRMYXllclplcm9QZWVyc1JlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8IFRoZSBpZCBvZiB0aGUgdmF1bHQgYWNjb3VudCB0aGF0IHdpbGwgYmUgdXNlZCB0byBpbml0aXRhdGUgdHJhbnNhY3Rpb25zIG90IHNldCBwZWVycyB8IAoqKnNvdXJjZV9hZGFwdGVyX3Rva2VuX2xpbmtfaWQqKiB8ICoqc3RyKiogfCAmI3g2MDt0b2tlbl9saW5rJiN4NjA7IElEIG9mIHRoZSBzb3VyY2UgYWRhcHRlciBjb250cmFjdCB8IAoqKmRlc3RpbmF0aW9uX2FkYXB0ZXJfdG9rZW5fbGlua19pZHMqKiB8ICoqTGlzdFtzdHJdKiogfCBBcnJheSBvZiAmI3g2MDt0b2tlbl9saW5rJiN4NjA7IElEcyBmb3IgZGVzdGluYXRpb24gYWRhcHRlciBjb250cmFjdHMgfCAKKipiaWRpcmVjdGlvbmFsKiogfCAqKmJvb2wqKiB8IElmIHRydWUsIGFsc28gc2V0cyBwZWVycyBmcm9tIGRlc3RpbmF0aW9uKHMpIGJhY2sgdG8gc291cmNlIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfbGF5ZXJfemVyb19wZWVyc19yZXF1ZXN0IGltcG9ydCBTZXRMYXllclplcm9QZWVyc1JlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldExheWVyWmVyb1BlZXJzUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKc2V0X2xheWVyX3plcm9fcGVlcnNfcmVxdWVzdF9pbnN0YW5jZSA9IFNldExheWVyWmVyb1BlZXJzUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTZXRMYXllclplcm9QZWVyc1JlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2V0X2xheWVyX3plcm9fcGVlcnNfcmVxdWVzdF9kaWN0ID0gc2V0X2xheWVyX3plcm9fcGVlcnNfcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0TGF5ZXJaZXJvUGVlcnNSZXF1ZXN0IGZyb20gYSBkaWN0CnNldF9sYXllcl96ZXJvX3BlZXJzX3JlcXVlc3RfZnJvbV9kaWN0ID0gU2V0TGF5ZXJaZXJvUGVlcnNSZXF1ZXN0LmZyb21fZGljdChzZXRfbGF5ZXJfemVyb19wZWVyc19yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SetLayerZeroPeersResponse.md b/docs/SetLayerZeroPeersResponse.md index a3a87d57..b007627c 100644 --- a/docs/SetLayerZeroPeersResponse.md +++ b/docs/SetLayerZeroPeersResponse.md @@ -1,29 +1 @@ -# SetLayerZeroPeersResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**txn_ids** | **List[str]** | Array of fireblocks transaction IDs, each corresponding to an on-chain transaction to set peers | - -## Example - -```python -from fireblocks.models.set_layer_zero_peers_response import SetLayerZeroPeersResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of SetLayerZeroPeersResponse from a JSON string -set_layer_zero_peers_response_instance = SetLayerZeroPeersResponse.from_json(json) -# print the JSON string representation of the object -print(SetLayerZeroPeersResponse.to_json()) - -# convert the object into a dict -set_layer_zero_peers_response_dict = set_layer_zero_peers_response_instance.to_dict() -# create an instance of SetLayerZeroPeersResponse from a dict -set_layer_zero_peers_response_from_dict = SetLayerZeroPeersResponse.from_dict(set_layer_zero_peers_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR4bl9pZHMqKiB8ICoqTGlzdFtzdHJdKiogfCBBcnJheSBvZiBmaXJlYmxvY2tzIHRyYW5zYWN0aW9uIElEcywgZWFjaCBjb3JyZXNwb25kaW5nIHRvIGFuIG9uLWNoYWluIHRyYW5zYWN0aW9uIHRvIHNldCBwZWVycyB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2xheWVyX3plcm9fcGVlcnNfcmVzcG9uc2UgaW1wb3J0IFNldExheWVyWmVyb1BlZXJzUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldExheWVyWmVyb1BlZXJzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnNldF9sYXllcl96ZXJvX3BlZXJzX3Jlc3BvbnNlX2luc3RhbmNlID0gU2V0TGF5ZXJaZXJvUGVlcnNSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNldF9sYXllcl96ZXJvX3BlZXJzX3Jlc3BvbnNlX2RpY3QgPSBzZXRfbGF5ZXJfemVyb19wZWVyc19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0TGF5ZXJaZXJvUGVlcnNSZXNwb25zZSBmcm9tIGEgZGljdApzZXRfbGF5ZXJfemVyb19wZWVyc19yZXNwb25zZV9mcm9tX2RpY3QgPSBTZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlLmZyb21fZGljdChzZXRfbGF5ZXJfemVyb19wZWVyc19yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SetNetworkIdDiscoverabilityRequest.md b/docs/SetNetworkIdDiscoverabilityRequest.md index 29953ebf..df588882 100644 --- a/docs/SetNetworkIdDiscoverabilityRequest.md +++ b/docs/SetNetworkIdDiscoverabilityRequest.md @@ -1,29 +1 @@ -# SetNetworkIdDiscoverabilityRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**is_discoverable** | **bool** | | - -## Example - -```python -from fireblocks.models.set_network_id_discoverability_request import SetNetworkIdDiscoverabilityRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of SetNetworkIdDiscoverabilityRequest from a JSON string -set_network_id_discoverability_request_instance = SetNetworkIdDiscoverabilityRequest.from_json(json) -# print the JSON string representation of the object -print(SetNetworkIdDiscoverabilityRequest.to_json()) - -# convert the object into a dict -set_network_id_discoverability_request_dict = set_network_id_discoverability_request_instance.to_dict() -# create an instance of SetNetworkIdDiscoverabilityRequest from a dict -set_network_id_discoverability_request_from_dict = SetNetworkIdDiscoverabilityRequest.from_dict(set_network_id_discoverability_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXROZXR3b3JrSWREaXNjb3ZlcmFiaWxpdHlSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlzX2Rpc2NvdmVyYWJsZSoqIHwgKipib29sKiogfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9uZXR3b3JrX2lkX2Rpc2NvdmVyYWJpbGl0eV9yZXF1ZXN0IGltcG9ydCBTZXROZXR3b3JrSWREaXNjb3ZlcmFiaWxpdHlSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXROZXR3b3JrSWREaXNjb3ZlcmFiaWxpdHlSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpzZXRfbmV0d29ya19pZF9kaXNjb3ZlcmFiaWxpdHlfcmVxdWVzdF9pbnN0YW5jZSA9IFNldE5ldHdvcmtJZERpc2NvdmVyYWJpbGl0eVJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU2V0TmV0d29ya0lkRGlzY292ZXJhYmlsaXR5UmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzZXRfbmV0d29ya19pZF9kaXNjb3ZlcmFiaWxpdHlfcmVxdWVzdF9kaWN0ID0gc2V0X25ldHdvcmtfaWRfZGlzY292ZXJhYmlsaXR5X3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldE5ldHdvcmtJZERpc2NvdmVyYWJpbGl0eVJlcXVlc3QgZnJvbSBhIGRpY3QKc2V0X25ldHdvcmtfaWRfZGlzY292ZXJhYmlsaXR5X3JlcXVlc3RfZnJvbV9kaWN0ID0gU2V0TmV0d29ya0lkRGlzY292ZXJhYmlsaXR5UmVxdWVzdC5mcm9tX2RpY3Qoc2V0X25ldHdvcmtfaWRfZGlzY292ZXJhYmlsaXR5X3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SetNetworkIdNameRequest.md b/docs/SetNetworkIdNameRequest.md index f849d923..f7d7782b 100644 --- a/docs/SetNetworkIdNameRequest.md +++ b/docs/SetNetworkIdNameRequest.md @@ -1,29 +1 @@ -# SetNetworkIdNameRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | | - -## Example - -```python -from fireblocks.models.set_network_id_name_request import SetNetworkIdNameRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of SetNetworkIdNameRequest from a JSON string -set_network_id_name_request_instance = SetNetworkIdNameRequest.from_json(json) -# print the JSON string representation of the object -print(SetNetworkIdNameRequest.to_json()) - -# convert the object into a dict -set_network_id_name_request_dict = set_network_id_name_request_instance.to_dict() -# create an instance of SetNetworkIdNameRequest from a dict -set_network_id_name_request_from_dict = SetNetworkIdNameRequest.from_dict(set_network_id_name_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXROZXR3b3JrSWROYW1lUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipuYW1lKiogfCAqKnN0cioqIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfbmV0d29ya19pZF9uYW1lX3JlcXVlc3QgaW1wb3J0IFNldE5ldHdvcmtJZE5hbWVSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXROZXR3b3JrSWROYW1lUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKc2V0X25ldHdvcmtfaWRfbmFtZV9yZXF1ZXN0X2luc3RhbmNlID0gU2V0TmV0d29ya0lkTmFtZVJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU2V0TmV0d29ya0lkTmFtZVJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2V0X25ldHdvcmtfaWRfbmFtZV9yZXF1ZXN0X2RpY3QgPSBzZXRfbmV0d29ya19pZF9uYW1lX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldE5ldHdvcmtJZE5hbWVSZXF1ZXN0IGZyb20gYSBkaWN0CnNldF9uZXR3b3JrX2lkX25hbWVfcmVxdWVzdF9mcm9tX2RpY3QgPSBTZXROZXR3b3JrSWROYW1lUmVxdWVzdC5mcm9tX2RpY3Qoc2V0X25ldHdvcmtfaWRfbmFtZV9yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SetNetworkIdResponse.md b/docs/SetNetworkIdResponse.md index 6e8f6c9c..12991bbc 100644 --- a/docs/SetNetworkIdResponse.md +++ b/docs/SetNetworkIdResponse.md @@ -1,29 +1 @@ -# SetNetworkIdResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**success** | **bool** | | - -## Example - -```python -from fireblocks.models.set_network_id_response import SetNetworkIdResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of SetNetworkIdResponse from a JSON string -set_network_id_response_instance = SetNetworkIdResponse.from_json(json) -# print the JSON string representation of the object -print(SetNetworkIdResponse.to_json()) - -# convert the object into a dict -set_network_id_response_dict = set_network_id_response_instance.to_dict() -# create an instance of SetNetworkIdResponse from a dict -set_network_id_response_from_dict = SetNetworkIdResponse.from_dict(set_network_id_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXROZXR3b3JrSWRSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzdWNjZXNzKiogfCAqKmJvb2wqKiB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X25ldHdvcmtfaWRfcmVzcG9uc2UgaW1wb3J0IFNldE5ldHdvcmtJZFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXROZXR3b3JrSWRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKc2V0X25ldHdvcmtfaWRfcmVzcG9uc2VfaW5zdGFuY2UgPSBTZXROZXR3b3JrSWRSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTZXROZXR3b3JrSWRSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzZXRfbmV0d29ya19pZF9yZXNwb25zZV9kaWN0ID0gc2V0X25ldHdvcmtfaWRfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldE5ldHdvcmtJZFJlc3BvbnNlIGZyb20gYSBkaWN0CnNldF9uZXR3b3JrX2lkX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFNldE5ldHdvcmtJZFJlc3BvbnNlLmZyb21fZGljdChzZXRfbmV0d29ya19pZF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SetNetworkIdRoutingPolicyRequest.md b/docs/SetNetworkIdRoutingPolicyRequest.md index 249842db..a64d6daf 100644 --- a/docs/SetNetworkIdRoutingPolicyRequest.md +++ b/docs/SetNetworkIdRoutingPolicyRequest.md @@ -1,29 +1 @@ -# SetNetworkIdRoutingPolicyRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**routing_policy** | [**Dict[str, NetworkIdRoutingPolicyValue]**](NetworkIdRoutingPolicyValue.md) | | - -## Example - -```python -from fireblocks.models.set_network_id_routing_policy_request import SetNetworkIdRoutingPolicyRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of SetNetworkIdRoutingPolicyRequest from a JSON string -set_network_id_routing_policy_request_instance = SetNetworkIdRoutingPolicyRequest.from_json(json) -# print the JSON string representation of the object -print(SetNetworkIdRoutingPolicyRequest.to_json()) - -# convert the object into a dict -set_network_id_routing_policy_request_dict = set_network_id_routing_policy_request_instance.to_dict() -# create an instance of SetNetworkIdRoutingPolicyRequest from a dict -set_network_id_routing_policy_request_from_dict = SetNetworkIdRoutingPolicyRequest.from_dict(set_network_id_routing_policy_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXROZXR3b3JrSWRSb3V0aW5nUG9saWN5UmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipyb3V0aW5nX3BvbGljeSoqIHwgWyoqRGljdFtzdHIsIE5ldHdvcmtJZFJvdXRpbmdQb2xpY3lWYWx1ZV0qKl0oTmV0d29ya0lkUm91dGluZ1BvbGljeVZhbHVlLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X25ldHdvcmtfaWRfcm91dGluZ19wb2xpY3lfcmVxdWVzdCBpbXBvcnQgU2V0TmV0d29ya0lkUm91dGluZ1BvbGljeVJlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldE5ldHdvcmtJZFJvdXRpbmdQb2xpY3lSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpzZXRfbmV0d29ya19pZF9yb3V0aW5nX3BvbGljeV9yZXF1ZXN0X2luc3RhbmNlID0gU2V0TmV0d29ya0lkUm91dGluZ1BvbGljeVJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU2V0TmV0d29ya0lkUm91dGluZ1BvbGljeVJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2V0X25ldHdvcmtfaWRfcm91dGluZ19wb2xpY3lfcmVxdWVzdF9kaWN0ID0gc2V0X25ldHdvcmtfaWRfcm91dGluZ19wb2xpY3lfcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0TmV0d29ya0lkUm91dGluZ1BvbGljeVJlcXVlc3QgZnJvbSBhIGRpY3QKc2V0X25ldHdvcmtfaWRfcm91dGluZ19wb2xpY3lfcmVxdWVzdF9mcm9tX2RpY3QgPSBTZXROZXR3b3JrSWRSb3V0aW5nUG9saWN5UmVxdWVzdC5mcm9tX2RpY3Qoc2V0X25ldHdvcmtfaWRfcm91dGluZ19wb2xpY3lfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SetOtaStatusRequest.md b/docs/SetOtaStatusRequest.md index 9ce82bcc..e4b198f0 100644 --- a/docs/SetOtaStatusRequest.md +++ b/docs/SetOtaStatusRequest.md @@ -1,29 +1 @@ -# SetOtaStatusRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**enabled** | **bool** | Set true or false to enable or disable OTA transactions | [optional] - -## Example - -```python -from fireblocks.models.set_ota_status_request import SetOtaStatusRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of SetOtaStatusRequest from a JSON string -set_ota_status_request_instance = SetOtaStatusRequest.from_json(json) -# print the JSON string representation of the object -print(SetOtaStatusRequest.to_json()) - -# convert the object into a dict -set_ota_status_request_dict = set_ota_status_request_instance.to_dict() -# create an instance of SetOtaStatusRequest from a dict -set_ota_status_request_from_dict = SetOtaStatusRequest.from_dict(set_ota_status_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXRPdGFTdGF0dXNSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmVuYWJsZWQqKiB8ICoqYm9vbCoqIHwgU2V0IHRydWUgb3IgZmFsc2UgdG8gZW5hYmxlIG9yIGRpc2FibGUgT1RBIHRyYW5zYWN0aW9ucyB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfb3RhX3N0YXR1c19yZXF1ZXN0IGltcG9ydCBTZXRPdGFTdGF0dXNSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRPdGFTdGF0dXNSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwpzZXRfb3RhX3N0YXR1c19yZXF1ZXN0X2luc3RhbmNlID0gU2V0T3RhU3RhdHVzUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTZXRPdGFTdGF0dXNSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNldF9vdGFfc3RhdHVzX3JlcXVlc3RfZGljdCA9IHNldF9vdGFfc3RhdHVzX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldE90YVN0YXR1c1JlcXVlc3QgZnJvbSBhIGRpY3QKc2V0X290YV9zdGF0dXNfcmVxdWVzdF9mcm9tX2RpY3QgPSBTZXRPdGFTdGF0dXNSZXF1ZXN0LmZyb21fZGljdChzZXRfb3RhX3N0YXR1c19yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SetOtaStatusResponse.md b/docs/SetOtaStatusResponse.md index bcbeb8d1..b9f4b6f0 100644 --- a/docs/SetOtaStatusResponse.md +++ b/docs/SetOtaStatusResponse.md @@ -1,29 +1 @@ -# SetOtaStatusResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Message indicating the result of the operation for example when no config change is needed | [optional] - -## Example - -```python -from fireblocks.models.set_ota_status_response import SetOtaStatusResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of SetOtaStatusResponse from a JSON string -set_ota_status_response_instance = SetOtaStatusResponse.from_json(json) -# print the JSON string representation of the object -print(SetOtaStatusResponse.to_json()) - -# convert the object into a dict -set_ota_status_response_dict = set_ota_status_response_instance.to_dict() -# create an instance of SetOtaStatusResponse from a dict -set_ota_status_response_from_dict = SetOtaStatusResponse.from_dict(set_ota_status_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXRPdGFTdGF0dXNSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiptZXNzYWdlKiogfCAqKnN0cioqIHwgTWVzc2FnZSBpbmRpY2F0aW5nIHRoZSByZXN1bHQgb2YgdGhlIG9wZXJhdGlvbiBmb3IgZXhhbXBsZSB3aGVuIG5vIGNvbmZpZyBjaGFuZ2UgaXMgbmVlZGVkIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9vdGFfc3RhdHVzX3Jlc3BvbnNlIGltcG9ydCBTZXRPdGFTdGF0dXNSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0T3RhU3RhdHVzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnNldF9vdGFfc3RhdHVzX3Jlc3BvbnNlX2luc3RhbmNlID0gU2V0T3RhU3RhdHVzUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU2V0T3RhU3RhdHVzUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2V0X290YV9zdGF0dXNfcmVzcG9uc2VfZGljdCA9IHNldF9vdGFfc3RhdHVzX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRPdGFTdGF0dXNSZXNwb25zZSBmcm9tIGEgZGljdApzZXRfb3RhX3N0YXR1c19yZXNwb25zZV9mcm9tX2RpY3QgPSBTZXRPdGFTdGF0dXNSZXNwb25zZS5mcm9tX2RpY3Qoc2V0X290YV9zdGF0dXNfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SetOtaStatusResponseOneOf.md b/docs/SetOtaStatusResponseOneOf.md index 779df08d..68f6bba5 100644 --- a/docs/SetOtaStatusResponseOneOf.md +++ b/docs/SetOtaStatusResponseOneOf.md @@ -1,29 +1 @@ -# SetOtaStatusResponseOneOf - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Message indicating the result of the operation for example when no config change is needed | [optional] - -## Example - -```python -from fireblocks.models.set_ota_status_response_one_of import SetOtaStatusResponseOneOf - -# TODO update the JSON string below -json = "{}" -# create an instance of SetOtaStatusResponseOneOf from a JSON string -set_ota_status_response_one_of_instance = SetOtaStatusResponseOneOf.from_json(json) -# print the JSON string representation of the object -print(SetOtaStatusResponseOneOf.to_json()) - -# convert the object into a dict -set_ota_status_response_one_of_dict = set_ota_status_response_one_of_instance.to_dict() -# create an instance of SetOtaStatusResponseOneOf from a dict -set_ota_status_response_one_of_from_dict = SetOtaStatusResponseOneOf.from_dict(set_ota_status_response_one_of_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXRPdGFTdGF0dXNSZXNwb25zZU9uZU9mCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm1lc3NhZ2UqKiB8ICoqc3RyKiogfCBNZXNzYWdlIGluZGljYXRpbmcgdGhlIHJlc3VsdCBvZiB0aGUgb3BlcmF0aW9uIGZvciBleGFtcGxlIHdoZW4gbm8gY29uZmlnIGNoYW5nZSBpcyBuZWVkZWQgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X290YV9zdGF0dXNfcmVzcG9uc2Vfb25lX29mIGltcG9ydCBTZXRPdGFTdGF0dXNSZXNwb25zZU9uZU9mCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRPdGFTdGF0dXNSZXNwb25zZU9uZU9mIGZyb20gYSBKU09OIHN0cmluZwpzZXRfb3RhX3N0YXR1c19yZXNwb25zZV9vbmVfb2ZfaW5zdGFuY2UgPSBTZXRPdGFTdGF0dXNSZXNwb25zZU9uZU9mLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNldE90YVN0YXR1c1Jlc3BvbnNlT25lT2YudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2V0X290YV9zdGF0dXNfcmVzcG9uc2Vfb25lX29mX2RpY3QgPSBzZXRfb3RhX3N0YXR1c19yZXNwb25zZV9vbmVfb2ZfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldE90YVN0YXR1c1Jlc3BvbnNlT25lT2YgZnJvbSBhIGRpY3QKc2V0X290YV9zdGF0dXNfcmVzcG9uc2Vfb25lX29mX2Zyb21fZGljdCA9IFNldE90YVN0YXR1c1Jlc3BvbnNlT25lT2YuZnJvbV9kaWN0KHNldF9vdGFfc3RhdHVzX3Jlc3BvbnNlX29uZV9vZl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SetRoutingPolicyRequest.md b/docs/SetRoutingPolicyRequest.md index 2280760b..264c686d 100644 --- a/docs/SetRoutingPolicyRequest.md +++ b/docs/SetRoutingPolicyRequest.md @@ -1,29 +1 @@ -# SetRoutingPolicyRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**routing_policy** | [**Dict[str, NetworkConnectionRoutingPolicyValue]**](NetworkConnectionRoutingPolicyValue.md) | | - -## Example - -```python -from fireblocks.models.set_routing_policy_request import SetRoutingPolicyRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of SetRoutingPolicyRequest from a JSON string -set_routing_policy_request_instance = SetRoutingPolicyRequest.from_json(json) -# print the JSON string representation of the object -print(SetRoutingPolicyRequest.to_json()) - -# convert the object into a dict -set_routing_policy_request_dict = set_routing_policy_request_instance.to_dict() -# create an instance of SetRoutingPolicyRequest from a dict -set_routing_policy_request_from_dict = SetRoutingPolicyRequest.from_dict(set_routing_policy_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXRSb3V0aW5nUG9saWN5UmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipyb3V0aW5nX3BvbGljeSoqIHwgWyoqRGljdFtzdHIsIE5ldHdvcmtDb25uZWN0aW9uUm91dGluZ1BvbGljeVZhbHVlXSoqXShOZXR3b3JrQ29ubmVjdGlvblJvdXRpbmdQb2xpY3lWYWx1ZS5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9yb3V0aW5nX3BvbGljeV9yZXF1ZXN0IGltcG9ydCBTZXRSb3V0aW5nUG9saWN5UmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0Um91dGluZ1BvbGljeVJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCnNldF9yb3V0aW5nX3BvbGljeV9yZXF1ZXN0X2luc3RhbmNlID0gU2V0Um91dGluZ1BvbGljeVJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU2V0Um91dGluZ1BvbGljeVJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2V0X3JvdXRpbmdfcG9saWN5X3JlcXVlc3RfZGljdCA9IHNldF9yb3V0aW5nX3BvbGljeV9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRSb3V0aW5nUG9saWN5UmVxdWVzdCBmcm9tIGEgZGljdApzZXRfcm91dGluZ19wb2xpY3lfcmVxdWVzdF9mcm9tX2RpY3QgPSBTZXRSb3V0aW5nUG9saWN5UmVxdWVzdC5mcm9tX2RpY3Qoc2V0X3JvdXRpbmdfcG9saWN5X3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SetRoutingPolicyResponse.md b/docs/SetRoutingPolicyResponse.md index f3978506..67c7bead 100644 --- a/docs/SetRoutingPolicyResponse.md +++ b/docs/SetRoutingPolicyResponse.md @@ -1,29 +1 @@ -# SetRoutingPolicyResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**success** | **bool** | | - -## Example - -```python -from fireblocks.models.set_routing_policy_response import SetRoutingPolicyResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of SetRoutingPolicyResponse from a JSON string -set_routing_policy_response_instance = SetRoutingPolicyResponse.from_json(json) -# print the JSON string representation of the object -print(SetRoutingPolicyResponse.to_json()) - -# convert the object into a dict -set_routing_policy_response_dict = set_routing_policy_response_instance.to_dict() -# create an instance of SetRoutingPolicyResponse from a dict -set_routing_policy_response_from_dict = SetRoutingPolicyResponse.from_dict(set_routing_policy_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXRSb3V0aW5nUG9saWN5UmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3VjY2VzcyoqIHwgKipib29sKiogfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9yb3V0aW5nX3BvbGljeV9yZXNwb25zZSBpbXBvcnQgU2V0Um91dGluZ1BvbGljeVJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRSb3V0aW5nUG9saWN5UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnNldF9yb3V0aW5nX3BvbGljeV9yZXNwb25zZV9pbnN0YW5jZSA9IFNldFJvdXRpbmdQb2xpY3lSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTZXRSb3V0aW5nUG9saWN5UmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2V0X3JvdXRpbmdfcG9saWN5X3Jlc3BvbnNlX2RpY3QgPSBzZXRfcm91dGluZ19wb2xpY3lfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldFJvdXRpbmdQb2xpY3lSZXNwb25zZSBmcm9tIGEgZGljdApzZXRfcm91dGluZ19wb2xpY3lfcmVzcG9uc2VfZnJvbV9kaWN0ID0gU2V0Um91dGluZ1BvbGljeVJlc3BvbnNlLmZyb21fZGljdChzZXRfcm91dGluZ19wb2xpY3lfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/Settlement.md b/docs/Settlement.md index 9e7aed99..544d8a42 100644 --- a/docs/Settlement.md +++ b/docs/Settlement.md @@ -1,32 +1 @@ -# Settlement - -Settlement configuration for the order - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**DVPSettlementType**](DVPSettlementType.md) | | -**destination_account** | [**AccountReference**](AccountReference.md) | | -**source_account** | [**SettlementSourceAccount**](SettlementSourceAccount.md) | | - -## Example - -```python -from fireblocks.models.settlement import Settlement - -# TODO update the JSON string below -json = "{}" -# create an instance of Settlement from a JSON string -settlement_instance = Settlement.from_json(json) -# print the JSON string representation of the object -print(Settlement.to_json()) - -# convert the object into a dict -settlement_dict = settlement_instance.to_dict() -# create an instance of Settlement from a dict -settlement_from_dict = Settlement.from_dict(settlement_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXR0bGVtZW50CgpTZXR0bGVtZW50IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBvcmRlcgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8IFsqKkRWUFNldHRsZW1lbnRUeXBlKipdKERWUFNldHRsZW1lbnRUeXBlLm1kKSB8ICB8IAoqKmRlc3RpbmF0aW9uX2FjY291bnQqKiB8IFsqKkFjY291bnRSZWZlcmVuY2UqKl0oQWNjb3VudFJlZmVyZW5jZS5tZCkgfCAgfCAKKipzb3VyY2VfYWNjb3VudCoqIHwgWyoqU2V0dGxlbWVudFNvdXJjZUFjY291bnQqKl0oU2V0dGxlbWVudFNvdXJjZUFjY291bnQubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXR0bGVtZW50IGltcG9ydCBTZXR0bGVtZW50CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXR0bGVtZW50IGZyb20gYSBKU09OIHN0cmluZwpzZXR0bGVtZW50X2luc3RhbmNlID0gU2V0dGxlbWVudC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTZXR0bGVtZW50LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNldHRsZW1lbnRfZGljdCA9IHNldHRsZW1lbnRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldHRsZW1lbnQgZnJvbSBhIGRpY3QKc2V0dGxlbWVudF9mcm9tX2RpY3QgPSBTZXR0bGVtZW50LmZyb21fZGljdChzZXR0bGVtZW50X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SettlementRequestBody.md b/docs/SettlementRequestBody.md index 88351870..63545bb4 100644 --- a/docs/SettlementRequestBody.md +++ b/docs/SettlementRequestBody.md @@ -1,29 +1 @@ -# SettlementRequestBody - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**main_exchange_account_id** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.settlement_request_body import SettlementRequestBody - -# TODO update the JSON string below -json = "{}" -# create an instance of SettlementRequestBody from a JSON string -settlement_request_body_instance = SettlementRequestBody.from_json(json) -# print the JSON string representation of the object -print(SettlementRequestBody.to_json()) - -# convert the object into a dict -settlement_request_body_dict = settlement_request_body_instance.to_dict() -# create an instance of SettlementRequestBody from a dict -settlement_request_body_from_dict = SettlementRequestBody.from_dict(settlement_request_body_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXR0bGVtZW50UmVxdWVzdEJvZHkKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbWFpbl9leGNoYW5nZV9hY2NvdW50X2lkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldHRsZW1lbnRfcmVxdWVzdF9ib2R5IGltcG9ydCBTZXR0bGVtZW50UmVxdWVzdEJvZHkKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldHRsZW1lbnRSZXF1ZXN0Qm9keSBmcm9tIGEgSlNPTiBzdHJpbmcKc2V0dGxlbWVudF9yZXF1ZXN0X2JvZHlfaW5zdGFuY2UgPSBTZXR0bGVtZW50UmVxdWVzdEJvZHkuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU2V0dGxlbWVudFJlcXVlc3RCb2R5LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNldHRsZW1lbnRfcmVxdWVzdF9ib2R5X2RpY3QgPSBzZXR0bGVtZW50X3JlcXVlc3RfYm9keV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0dGxlbWVudFJlcXVlc3RCb2R5IGZyb20gYSBkaWN0CnNldHRsZW1lbnRfcmVxdWVzdF9ib2R5X2Zyb21fZGljdCA9IFNldHRsZW1lbnRSZXF1ZXN0Qm9keS5mcm9tX2RpY3Qoc2V0dGxlbWVudF9yZXF1ZXN0X2JvZHlfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SettlementResponse.md b/docs/SettlementResponse.md index f5a24d4e..cc94708f 100644 --- a/docs/SettlementResponse.md +++ b/docs/SettlementResponse.md @@ -1,33 +1 @@ -# SettlementResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | [optional] -**initiator** | **str** | | [optional] -**exchange_reply** | **str** | | [optional] -**fireblocks_initiated_transactions** | **object** | | [optional] -**exchange_requested_transactions** | [**ExchangeSettlementTransactionsResponse**](ExchangeSettlementTransactionsResponse.md) | | [optional] - -## Example - -```python -from fireblocks.models.settlement_response import SettlementResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of SettlementResponse from a JSON string -settlement_response_instance = SettlementResponse.from_json(json) -# print the JSON string representation of the object -print(SettlementResponse.to_json()) - -# convert the object into a dict -settlement_response_dict = settlement_response_instance.to_dict() -# create an instance of SettlementResponse from a dict -settlement_response_from_dict = SettlementResponse.from_dict(settlement_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXR0bGVtZW50UmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmluaXRpYXRvcioqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqZXhjaGFuZ2VfcmVwbHkqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmZpcmVibG9ja3NfaW5pdGlhdGVkX3RyYW5zYWN0aW9ucyoqIHwgKipvYmplY3QqKiB8ICB8IFtvcHRpb25hbF0gCioqZXhjaGFuZ2VfcmVxdWVzdGVkX3RyYW5zYWN0aW9ucyoqIHwgWyoqRXhjaGFuZ2VTZXR0bGVtZW50VHJhbnNhY3Rpb25zUmVzcG9uc2UqKl0oRXhjaGFuZ2VTZXR0bGVtZW50VHJhbnNhY3Rpb25zUmVzcG9uc2UubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldHRsZW1lbnRfcmVzcG9uc2UgaW1wb3J0IFNldHRsZW1lbnRSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0dGxlbWVudFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpzZXR0bGVtZW50X3Jlc3BvbnNlX2luc3RhbmNlID0gU2V0dGxlbWVudFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNldHRsZW1lbnRSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzZXR0bGVtZW50X3Jlc3BvbnNlX2RpY3QgPSBzZXR0bGVtZW50X3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXR0bGVtZW50UmVzcG9uc2UgZnJvbSBhIGRpY3QKc2V0dGxlbWVudF9yZXNwb25zZV9mcm9tX2RpY3QgPSBTZXR0bGVtZW50UmVzcG9uc2UuZnJvbV9kaWN0KHNldHRsZW1lbnRfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SettlementSourceAccount.md b/docs/SettlementSourceAccount.md index 204917f7..f0efcf5d 100644 --- a/docs/SettlementSourceAccount.md +++ b/docs/SettlementSourceAccount.md @@ -1,31 +1 @@ -# SettlementSourceAccount - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**ExternalAccountType**](ExternalAccountType.md) | | -**account_id** | **str** | | -**sender_information** | [**ExternalAccountSenderInformation**](ExternalAccountSenderInformation.md) | | [optional] - -## Example - -```python -from fireblocks.models.settlement_source_account import SettlementSourceAccount - -# TODO update the JSON string below -json = "{}" -# create an instance of SettlementSourceAccount from a JSON string -settlement_source_account_instance = SettlementSourceAccount.from_json(json) -# print the JSON string representation of the object -print(SettlementSourceAccount.to_json()) - -# convert the object into a dict -settlement_source_account_dict = settlement_source_account_instance.to_dict() -# create an instance of SettlementSourceAccount from a dict -settlement_source_account_from_dict = SettlementSourceAccount.from_dict(settlement_source_account_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTZXR0bGVtZW50U291cmNlQWNjb3VudAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eXBlKiogfCBbKipFeHRlcm5hbEFjY291bnRUeXBlKipdKEV4dGVybmFsQWNjb3VudFR5cGUubWQpIHwgIHwgCioqYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8ICB8IAoqKnNlbmRlcl9pbmZvcm1hdGlvbioqIHwgWyoqRXh0ZXJuYWxBY2NvdW50U2VuZGVySW5mb3JtYXRpb24qKl0oRXh0ZXJuYWxBY2NvdW50U2VuZGVySW5mb3JtYXRpb24ubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldHRsZW1lbnRfc291cmNlX2FjY291bnQgaW1wb3J0IFNldHRsZW1lbnRTb3VyY2VBY2NvdW50CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXR0bGVtZW50U291cmNlQWNjb3VudCBmcm9tIGEgSlNPTiBzdHJpbmcKc2V0dGxlbWVudF9zb3VyY2VfYWNjb3VudF9pbnN0YW5jZSA9IFNldHRsZW1lbnRTb3VyY2VBY2NvdW50LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNldHRsZW1lbnRTb3VyY2VBY2NvdW50LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNldHRsZW1lbnRfc291cmNlX2FjY291bnRfZGljdCA9IHNldHRsZW1lbnRfc291cmNlX2FjY291bnRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldHRsZW1lbnRTb3VyY2VBY2NvdW50IGZyb20gYSBkaWN0CnNldHRsZW1lbnRfc291cmNlX2FjY291bnRfZnJvbV9kaWN0ID0gU2V0dGxlbWVudFNvdXJjZUFjY291bnQuZnJvbV9kaWN0KHNldHRsZW1lbnRfc291cmNlX2FjY291bnRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SettlementTypeEnum.md b/docs/SettlementTypeEnum.md new file mode 100644 index 00000000..1b1a2316 --- /dev/null +++ b/docs/SettlementTypeEnum.md @@ -0,0 +1 @@ +IyBTZXR0bGVtZW50VHlwZUVudW0KClNldHRsZW1lbnQgdHlwZSBzdXBwb3J0ZWQgYnkgdGhlIHByb3ZpZGVyCgojIyBFbnVtCgoqIGBEVlBgICh2YWx1ZTogYCdEVlAnYCkKCiogYFBSRUZVTkRFRGAgKHZhbHVlOiBgJ1BSRUZVTkRFRCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/Side.md b/docs/Side.md index 03eeb7d8..cebb2821 100644 --- a/docs/Side.md +++ b/docs/Side.md @@ -1,13 +1 @@ -# Side - -BUY: receive base / pay quote; SELL: give base / receive quote. - -## Enum - -* `BUY` (value: `'BUY'`) - -* `SELL` (value: `'SELL'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTaWRlCgpCVVk6IHJlY2VpdmUgYmFzZSAvIHBheSBxdW90ZTsgU0VMTDogZ2l2ZSBiYXNlIC8gcmVjZWl2ZSBxdW90ZS4KCiMjIEVudW0KCiogYEJVWWAgKHZhbHVlOiBgJ0JVWSdgKQoKKiBgU0VMTGAgKHZhbHVlOiBgJ1NFTEwnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SignedMessage.md b/docs/SignedMessage.md index 61dc6d36..7d3fd26b 100644 --- a/docs/SignedMessage.md +++ b/docs/SignedMessage.md @@ -1,34 +1 @@ -# SignedMessage - -A list of signed messages returned for raw signing. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**content** | **str** | | [optional] -**algorithm** | **str** | | [optional] -**derivation_path** | **List[float]** | | [optional] -**signature** | [**SignedMessageSignature**](SignedMessageSignature.md) | | [optional] -**public_key** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.signed_message import SignedMessage - -# TODO update the JSON string below -json = "{}" -# create an instance of SignedMessage from a JSON string -signed_message_instance = SignedMessage.from_json(json) -# print the JSON string representation of the object -print(SignedMessage.to_json()) - -# convert the object into a dict -signed_message_dict = signed_message_instance.to_dict() -# create an instance of SignedMessage from a dict -signed_message_from_dict = SignedMessage.from_dict(signed_message_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTaWduZWRNZXNzYWdlCgpBIGxpc3Qgb2Ygc2lnbmVkIG1lc3NhZ2VzIHJldHVybmVkIGZvciByYXcgc2lnbmluZy4KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipjb250ZW50KiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKiphbGdvcml0aG0qKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmRlcml2YXRpb25fcGF0aCoqIHwgKipMaXN0W2Zsb2F0XSoqIHwgIHwgW29wdGlvbmFsXSAKKipzaWduYXR1cmUqKiB8IFsqKlNpZ25lZE1lc3NhZ2VTaWduYXR1cmUqKl0oU2lnbmVkTWVzc2FnZVNpZ25hdHVyZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnB1YmxpY19rZXkqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2lnbmVkX21lc3NhZ2UgaW1wb3J0IFNpZ25lZE1lc3NhZ2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNpZ25lZE1lc3NhZ2UgZnJvbSBhIEpTT04gc3RyaW5nCnNpZ25lZF9tZXNzYWdlX2luc3RhbmNlID0gU2lnbmVkTWVzc2FnZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTaWduZWRNZXNzYWdlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNpZ25lZF9tZXNzYWdlX2RpY3QgPSBzaWduZWRfbWVzc2FnZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2lnbmVkTWVzc2FnZSBmcm9tIGEgZGljdApzaWduZWRfbWVzc2FnZV9mcm9tX2RpY3QgPSBTaWduZWRNZXNzYWdlLmZyb21fZGljdChzaWduZWRfbWVzc2FnZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SignedMessageSignature.md b/docs/SignedMessageSignature.md index 02425c6c..97b4afb3 100644 --- a/docs/SignedMessageSignature.md +++ b/docs/SignedMessageSignature.md @@ -1,32 +1 @@ -# SignedMessageSignature - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**full_sig** | **str** | | [optional] -**r** | **str** | | [optional] -**s** | **str** | | [optional] -**v** | **float** | | [optional] - -## Example - -```python -from fireblocks.models.signed_message_signature import SignedMessageSignature - -# TODO update the JSON string below -json = "{}" -# create an instance of SignedMessageSignature from a JSON string -signed_message_signature_instance = SignedMessageSignature.from_json(json) -# print the JSON string representation of the object -print(SignedMessageSignature.to_json()) - -# convert the object into a dict -signed_message_signature_dict = signed_message_signature_instance.to_dict() -# create an instance of SignedMessageSignature from a dict -signed_message_signature_from_dict = SignedMessageSignature.from_dict(signed_message_signature_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTaWduZWRNZXNzYWdlU2lnbmF0dXJlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmZ1bGxfc2lnKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipyKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipzKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKip2KiogfCAqKmZsb2F0KiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2lnbmVkX21lc3NhZ2Vfc2lnbmF0dXJlIGltcG9ydCBTaWduZWRNZXNzYWdlU2lnbmF0dXJlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTaWduZWRNZXNzYWdlU2lnbmF0dXJlIGZyb20gYSBKU09OIHN0cmluZwpzaWduZWRfbWVzc2FnZV9zaWduYXR1cmVfaW5zdGFuY2UgPSBTaWduZWRNZXNzYWdlU2lnbmF0dXJlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNpZ25lZE1lc3NhZ2VTaWduYXR1cmUudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2lnbmVkX21lc3NhZ2Vfc2lnbmF0dXJlX2RpY3QgPSBzaWduZWRfbWVzc2FnZV9zaWduYXR1cmVfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNpZ25lZE1lc3NhZ2VTaWduYXR1cmUgZnJvbSBhIGRpY3QKc2lnbmVkX21lc3NhZ2Vfc2lnbmF0dXJlX2Zyb21fZGljdCA9IFNpZ25lZE1lc3NhZ2VTaWduYXR1cmUuZnJvbV9kaWN0KHNpZ25lZF9tZXNzYWdlX3NpZ25hdHVyZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SigningKeyDto.md b/docs/SigningKeyDto.md index 7fa63aa0..9e0974a6 100644 --- a/docs/SigningKeyDto.md +++ b/docs/SigningKeyDto.md @@ -1,36 +1 @@ -# SigningKeyDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**key_id** | **str** | External signing key id set by Fireblocks. | -**signing_device_key_id** | **str** | The ID, name or label of the key specified on the customer's signing device. | -**public_key_pem** | **str** | PEM encoded public key | -**algorithm** | **str** | Algorithm and curve used for the signature. Can be: ECDSA_SECP256K1 or EDDSA_ED25519 | -**enabled** | **bool** | True if the signing key is enabled | -**vault_account_id** | **float** | Id of the vault account which this key is linked to | -**agent_user_id** | **str** | Id of user that represent agent servers that can sign with the key | -**created_at** | **float** | Creation date (timestamp) in milliseconds. | - -## Example - -```python -from fireblocks.models.signing_key_dto import SigningKeyDto - -# TODO update the JSON string below -json = "{}" -# create an instance of SigningKeyDto from a JSON string -signing_key_dto_instance = SigningKeyDto.from_json(json) -# print the JSON string representation of the object -print(SigningKeyDto.to_json()) - -# convert the object into a dict -signing_key_dto_dict = signing_key_dto_instance.to_dict() -# create an instance of SigningKeyDto from a dict -signing_key_dto_from_dict = SigningKeyDto.from_dict(signing_key_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTaWduaW5nS2V5RHRvCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmtleV9pZCoqIHwgKipzdHIqKiB8IEV4dGVybmFsIHNpZ25pbmcga2V5IGlkIHNldCBieSBGaXJlYmxvY2tzLiB8IAoqKnNpZ25pbmdfZGV2aWNlX2tleV9pZCoqIHwgKipzdHIqKiB8IFRoZSBJRCwgbmFtZSBvciBsYWJlbCBvZiB0aGUga2V5IHNwZWNpZmllZCBvbiB0aGUgY3VzdG9tZXImIzM5O3Mgc2lnbmluZyBkZXZpY2UuIHwgCioqcHVibGljX2tleV9wZW0qKiB8ICoqc3RyKiogfCBQRU0gZW5jb2RlZCBwdWJsaWMga2V5IHwgCioqYWxnb3JpdGhtKiogfCAqKnN0cioqIHwgQWxnb3JpdGhtIGFuZCBjdXJ2ZSB1c2VkIGZvciB0aGUgc2lnbmF0dXJlLiBDYW4gYmU6IEVDRFNBX1NFQ1AyNTZLMSBvciBFRERTQV9FRDI1NTE5IHwgCioqZW5hYmxlZCoqIHwgKipib29sKiogfCBUcnVlIGlmIHRoZSBzaWduaW5nIGtleSBpcyBlbmFibGVkIHwgCioqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipmbG9hdCoqIHwgSWQgb2YgdGhlIHZhdWx0IGFjY291bnQgd2hpY2ggdGhpcyBrZXkgaXMgbGlua2VkIHRvIHwgCioqYWdlbnRfdXNlcl9pZCoqIHwgKipzdHIqKiB8IElkIG9mIHVzZXIgdGhhdCByZXByZXNlbnQgYWdlbnQgc2VydmVycyB0aGF0IGNhbiBzaWduIHdpdGggdGhlIGtleSB8IAoqKmNyZWF0ZWRfYXQqKiB8ICoqZmxvYXQqKiB8IENyZWF0aW9uIGRhdGUgKHRpbWVzdGFtcCkgaW4gbWlsbGlzZWNvbmRzLiB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2lnbmluZ19rZXlfZHRvIGltcG9ydCBTaWduaW5nS2V5RHRvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTaWduaW5nS2V5RHRvIGZyb20gYSBKU09OIHN0cmluZwpzaWduaW5nX2tleV9kdG9faW5zdGFuY2UgPSBTaWduaW5nS2V5RHRvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNpZ25pbmdLZXlEdG8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc2lnbmluZ19rZXlfZHRvX2RpY3QgPSBzaWduaW5nX2tleV9kdG9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNpZ25pbmdLZXlEdG8gZnJvbSBhIGRpY3QKc2lnbmluZ19rZXlfZHRvX2Zyb21fZGljdCA9IFNpZ25pbmdLZXlEdG8uZnJvbV9kaWN0KHNpZ25pbmdfa2V5X2R0b19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SmartTransferApi.md b/docs/SmartTransferApi.md index 343a87be..cffd4ac1 100644 --- a/docs/SmartTransferApi.md +++ b/docs/SmartTransferApi.md @@ -1,1546 +1 @@ -# fireblocks.SmartTransferApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**approve_dv_p_ticket_term**](SmartTransferApi.md#approve_dv_p_ticket_term) | **PUT** /smart_transfers/{ticketId}/terms/{termId}/dvp/approve | Set funding source and approval -[**cancel_ticket**](SmartTransferApi.md#cancel_ticket) | **PUT** /smart-transfers/{ticketId}/cancel | Cancel Ticket -[**create_ticket**](SmartTransferApi.md#create_ticket) | **POST** /smart-transfers | Create Ticket -[**create_ticket_term**](SmartTransferApi.md#create_ticket_term) | **POST** /smart-transfers/{ticketId}/terms | Create leg (term) -[**find_ticket_by_id**](SmartTransferApi.md#find_ticket_by_id) | **GET** /smart-transfers/{ticketId} | Search Ticket by ID -[**find_ticket_term_by_id**](SmartTransferApi.md#find_ticket_term_by_id) | **GET** /smart-transfers/{ticketId}/terms/{termId} | Get Smart Transfer ticket term -[**fulfill_ticket**](SmartTransferApi.md#fulfill_ticket) | **PUT** /smart-transfers/{ticketId}/fulfill | Fund ticket manually -[**fund_dvp_ticket**](SmartTransferApi.md#fund_dvp_ticket) | **PUT** /smart_transfers/{ticketId}/dvp/fund | Fund dvp ticket -[**fund_ticket_term**](SmartTransferApi.md#fund_ticket_term) | **PUT** /smart-transfers/{ticketId}/terms/{termId}/fund | Define funding source -[**get_smart_transfer_statistic**](SmartTransferApi.md#get_smart_transfer_statistic) | **GET** /smart_transfers/statistic | Get smart transfers statistic -[**get_smart_transfer_user_groups**](SmartTransferApi.md#get_smart_transfer_user_groups) | **GET** /smart-transfers/settings/user-groups | Get user group -[**manually_fund_ticket_term**](SmartTransferApi.md#manually_fund_ticket_term) | **PUT** /smart-transfers/{ticketId}/terms/{termId}/manually-fund | Manually add term transaction -[**remove_ticket_term**](SmartTransferApi.md#remove_ticket_term) | **DELETE** /smart-transfers/{ticketId}/terms/{termId} | Delete ticket leg (term) -[**search_tickets**](SmartTransferApi.md#search_tickets) | **GET** /smart-transfers | Find Ticket -[**set_external_ref_id**](SmartTransferApi.md#set_external_ref_id) | **PUT** /smart-transfers/{ticketId}/external-id | Add external ref. ID -[**set_ticket_expiration**](SmartTransferApi.md#set_ticket_expiration) | **PUT** /smart-transfers/{ticketId}/expires-in | Set expiration -[**set_user_groups**](SmartTransferApi.md#set_user_groups) | **POST** /smart-transfers/settings/user-groups | Set user group -[**submit_ticket**](SmartTransferApi.md#submit_ticket) | **PUT** /smart-transfers/{ticketId}/submit | Submit ticket -[**update_ticket_term**](SmartTransferApi.md#update_ticket_term) | **PUT** /smart-transfers/{ticketId}/terms/{termId} | Update ticket leg (term) - - -# **approve_dv_p_ticket_term** -> SmartTransferTicketTermResponse approve_dv_p_ticket_term(ticket_id, term_id, smart_transfer_approve_term, idempotency_key=idempotency_key) - -Set funding source and approval - -Set funding source for ticket term and creating approving transaction for contract to transfer asset - -### Example - - -```python -from fireblocks.models.smart_transfer_approve_term import SmartTransferApproveTerm -from fireblocks.models.smart_transfer_ticket_term_response import SmartTransferTicketTermResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - ticket_id = 'ticket_id_example' # str | - term_id = 'term_id_example' # str | - smart_transfer_approve_term = fireblocks.SmartTransferApproveTerm() # SmartTransferApproveTerm | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Set funding source and approval - api_response = fireblocks.smart_transfer.approve_dv_p_ticket_term(ticket_id, term_id, smart_transfer_approve_term, idempotency_key=idempotency_key).result() - print("The response of SmartTransferApi->approve_dv_p_ticket_term:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling SmartTransferApi->approve_dv_p_ticket_term: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ticket_id** | **str**| | - **term_id** | **str**| | - **smart_transfer_approve_term** | [**SmartTransferApproveTerm**](SmartTransferApproveTerm.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**SmartTransferTicketTermResponse**](SmartTransferTicketTermResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Creating approval transaction started | - | -**403** | Unauthorized | - | -**404** | Not found | - | -**422** | Bad Request | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **cancel_ticket** -> SmartTransferTicketResponse cancel_ticket(ticket_id, idempotency_key=idempotency_key) - -Cancel Ticket - -Cancel Smart Transfer ticket.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.smart_transfer_ticket_response import SmartTransferTicketResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - ticket_id = 'ticket_id_example' # str | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Cancel Ticket - api_response = fireblocks.smart_transfer.cancel_ticket(ticket_id, idempotency_key=idempotency_key).result() - print("The response of SmartTransferApi->cancel_ticket:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling SmartTransferApi->cancel_ticket: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ticket_id** | **str**| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**SmartTransferTicketResponse**](SmartTransferTicketResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Smart Transfer ticket successfully canceled | - | -**403** | Unauthorized | - | -**404** | Not found | - | -**422** | Bad Request | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_ticket** -> SmartTransferTicketResponse create_ticket(smart_transfer_create_ticket, idempotency_key=idempotency_key) - -Create Ticket - -Creates a new Smart Transfer ticket. Learn more about Fireblocks Smart Transfers [here](https://developers.fireblocks.com/docs/execute-smart-transfers). - -**Note:** The `DVP` value is in Early Access and should only be used if Fireblocks has enabled it in your workspace. Contact your Customer Success Manager for more information. - -**Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor. - - -### Example - - -```python -from fireblocks.models.smart_transfer_create_ticket import SmartTransferCreateTicket -from fireblocks.models.smart_transfer_ticket_response import SmartTransferTicketResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - smart_transfer_create_ticket = fireblocks.SmartTransferCreateTicket() # SmartTransferCreateTicket | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Create Ticket - api_response = fireblocks.smart_transfer.create_ticket(smart_transfer_create_ticket, idempotency_key=idempotency_key).result() - print("The response of SmartTransferApi->create_ticket:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling SmartTransferApi->create_ticket: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **smart_transfer_create_ticket** | [**SmartTransferCreateTicket**](SmartTransferCreateTicket.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**SmartTransferTicketResponse**](SmartTransferTicketResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Smart Transfer ticket was created successfully | - | -**403** | Unauthorized | - | -**422** | Bad Request | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_ticket_term** -> SmartTransferTicketTermResponse create_ticket_term(ticket_id, smart_transfer_create_ticket_term, idempotency_key=idempotency_key) - -Create leg (term) - -Creates new smart transfer ticket term (when the ticket status is DRAFT). Learn more about Fireblocks Smart Transfers in the following [guide](https://developers.fireblocks.com/docs/execute-smart-transfers).
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.smart_transfer_create_ticket_term import SmartTransferCreateTicketTerm -from fireblocks.models.smart_transfer_ticket_term_response import SmartTransferTicketTermResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - ticket_id = 'ticket_id_example' # str | - smart_transfer_create_ticket_term = fireblocks.SmartTransferCreateTicketTerm() # SmartTransferCreateTicketTerm | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Create leg (term) - api_response = fireblocks.smart_transfer.create_ticket_term(ticket_id, smart_transfer_create_ticket_term, idempotency_key=idempotency_key).result() - print("The response of SmartTransferApi->create_ticket_term:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling SmartTransferApi->create_ticket_term: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ticket_id** | **str**| | - **smart_transfer_create_ticket_term** | [**SmartTransferCreateTicketTerm**](SmartTransferCreateTicketTerm.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**SmartTransferTicketTermResponse**](SmartTransferTicketTermResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Smart Transfer ticket term was created successfully | - | -**403** | Unauthorized | - | -**422** | Bad Request | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **find_ticket_by_id** -> SmartTransferTicketResponse find_ticket_by_id(ticket_id) - -Search Ticket by ID - -Find Smart Transfer ticket by id.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -### Example - - -```python -from fireblocks.models.smart_transfer_ticket_response import SmartTransferTicketResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - ticket_id = 'ticket_id_example' # str | - - try: - # Search Ticket by ID - api_response = fireblocks.smart_transfer.find_ticket_by_id(ticket_id).result() - print("The response of SmartTransferApi->find_ticket_by_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling SmartTransferApi->find_ticket_by_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ticket_id** | **str**| | - -### Return type - -[**SmartTransferTicketResponse**](SmartTransferTicketResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Smart Transfer ticket returned successfully | - | -**403** | Unauthorized | - | -**404** | Not found | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **find_ticket_term_by_id** -> SmartTransferTicketTermResponse find_ticket_term_by_id(ticket_id, term_id) - -Get Smart Transfer ticket term - -Find a specific term of a specific Smart Transfer ticket.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -### Example - - -```python -from fireblocks.models.smart_transfer_ticket_term_response import SmartTransferTicketTermResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - ticket_id = 'ticket_id_example' # str | - term_id = 'term_id_example' # str | - - try: - # Get Smart Transfer ticket term - api_response = fireblocks.smart_transfer.find_ticket_term_by_id(ticket_id, term_id).result() - print("The response of SmartTransferApi->find_ticket_term_by_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling SmartTransferApi->find_ticket_term_by_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ticket_id** | **str**| | - **term_id** | **str**| | - -### Return type - -[**SmartTransferTicketTermResponse**](SmartTransferTicketTermResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Smart Transfer ticket term returned successfully | - | -**403** | Unauthorized | - | -**404** | Not found | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **fulfill_ticket** -> SmartTransferTicketResponse fulfill_ticket(ticket_id, idempotency_key=idempotency_key) - -Fund ticket manually - -Manually fulfill ticket, in case when all terms (legs) are funded manually.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.smart_transfer_ticket_response import SmartTransferTicketResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - ticket_id = 'ticket_id_example' # str | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Fund ticket manually - api_response = fireblocks.smart_transfer.fulfill_ticket(ticket_id, idempotency_key=idempotency_key).result() - print("The response of SmartTransferApi->fulfill_ticket:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling SmartTransferApi->fulfill_ticket: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ticket_id** | **str**| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**SmartTransferTicketResponse**](SmartTransferTicketResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successfully fulfilled on Smart Transfer ticket | - | -**403** | Unauthorized | - | -**404** | Not found | - | -**422** | Bad Request | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **fund_dvp_ticket** -> SmartTransferTicketResponse fund_dvp_ticket(ticket_id, smart_transfer_fund_dvp_ticket, idempotency_key=idempotency_key) - -Fund dvp ticket - -Create or fulfill dvp ticket order - -### Example - - -```python -from fireblocks.models.smart_transfer_fund_dvp_ticket import SmartTransferFundDvpTicket -from fireblocks.models.smart_transfer_ticket_response import SmartTransferTicketResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - ticket_id = 'ticket_id_example' # str | - smart_transfer_fund_dvp_ticket = fireblocks.SmartTransferFundDvpTicket() # SmartTransferFundDvpTicket | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Fund dvp ticket - api_response = fireblocks.smart_transfer.fund_dvp_ticket(ticket_id, smart_transfer_fund_dvp_ticket, idempotency_key=idempotency_key).result() - print("The response of SmartTransferApi->fund_dvp_ticket:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling SmartTransferApi->fund_dvp_ticket: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ticket_id** | **str**| | - **smart_transfer_fund_dvp_ticket** | [**SmartTransferFundDvpTicket**](SmartTransferFundDvpTicket.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**SmartTransferTicketResponse**](SmartTransferTicketResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successfully started creating or fulfilling order on dvp Smart Transfer ticket | - | -**403** | Unauthorized | - | -**404** | Not found | - | -**422** | Bad Request | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **fund_ticket_term** -> SmartTransferTicketTermResponse fund_ticket_term(ticket_id, term_id, smart_transfer_fund_term, idempotency_key=idempotency_key) - -Define funding source - -Set funding source for ticket term (in case of ASYNC tickets, this will execute transfer immediately).
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.smart_transfer_fund_term import SmartTransferFundTerm -from fireblocks.models.smart_transfer_ticket_term_response import SmartTransferTicketTermResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - ticket_id = 'ticket_id_example' # str | - term_id = 'term_id_example' # str | - smart_transfer_fund_term = fireblocks.SmartTransferFundTerm() # SmartTransferFundTerm | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Define funding source - api_response = fireblocks.smart_transfer.fund_ticket_term(ticket_id, term_id, smart_transfer_fund_term, idempotency_key=idempotency_key).result() - print("The response of SmartTransferApi->fund_ticket_term:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling SmartTransferApi->fund_ticket_term: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ticket_id** | **str**| | - **term_id** | **str**| | - **smart_transfer_fund_term** | [**SmartTransferFundTerm**](SmartTransferFundTerm.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**SmartTransferTicketTermResponse**](SmartTransferTicketTermResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Funding source for ticket term successfully done | - | -**403** | Unauthorized | - | -**404** | Not found | - | -**422** | Bad Request | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_smart_transfer_statistic** -> SmartTransferStatistic get_smart_transfer_statistic() - -Get smart transfers statistic - -Get smart transfer statistic - -### Example - - -```python -from fireblocks.models.smart_transfer_statistic import SmartTransferStatistic -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Get smart transfers statistic - api_response = fireblocks.smart_transfer.get_smart_transfer_statistic().result() - print("The response of SmartTransferApi->get_smart_transfer_statistic:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling SmartTransferApi->get_smart_transfer_statistic: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**SmartTransferStatistic**](SmartTransferStatistic.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Smart Transfer ticket statistic returned successfully | - | -**403** | Unauthorized | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_smart_transfer_user_groups** -> SmartTransferUserGroupsResponse get_smart_transfer_user_groups() - -Get user group - -Get Smart Transfer user groups. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -### Example - - -```python -from fireblocks.models.smart_transfer_user_groups_response import SmartTransferUserGroupsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Get user group - api_response = fireblocks.smart_transfer.get_smart_transfer_user_groups().result() - print("The response of SmartTransferApi->get_smart_transfer_user_groups:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling SmartTransferApi->get_smart_transfer_user_groups: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**SmartTransferUserGroupsResponse**](SmartTransferUserGroupsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | User group settings were returned successfully | - | -**403** | Unauthorized | - | -**422** | Bad Request | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **manually_fund_ticket_term** -> SmartTransferTicketTermResponse manually_fund_ticket_term(ticket_id, term_id, smart_transfer_manually_fund_term, idempotency_key=idempotency_key) - -Manually add term transaction - -Manually set ticket term transaction. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.smart_transfer_manually_fund_term import SmartTransferManuallyFundTerm -from fireblocks.models.smart_transfer_ticket_term_response import SmartTransferTicketTermResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - ticket_id = 'ticket_id_example' # str | - term_id = 'term_id_example' # str | - smart_transfer_manually_fund_term = fireblocks.SmartTransferManuallyFundTerm() # SmartTransferManuallyFundTerm | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Manually add term transaction - api_response = fireblocks.smart_transfer.manually_fund_ticket_term(ticket_id, term_id, smart_transfer_manually_fund_term, idempotency_key=idempotency_key).result() - print("The response of SmartTransferApi->manually_fund_ticket_term:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling SmartTransferApi->manually_fund_ticket_term: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ticket_id** | **str**| | - **term_id** | **str**| | - **smart_transfer_manually_fund_term** | [**SmartTransferManuallyFundTerm**](SmartTransferManuallyFundTerm.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**SmartTransferTicketTermResponse**](SmartTransferTicketTermResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Successfully manually set ticket term transaction | - | -**403** | Unauthorized | - | -**404** | Not found | - | -**422** | Bad Request | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **remove_ticket_term** -> remove_ticket_term(ticket_id, term_id) - -Delete ticket leg (term) - -Delete ticket term when ticket is in DRAFT status - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - ticket_id = 'ticket_id_example' # str | - term_id = 'term_id_example' # str | - - try: - # Delete ticket leg (term) - fireblocks.smart_transfer.remove_ticket_term(ticket_id, term_id).result() - except Exception as e: - print("Exception when calling SmartTransferApi->remove_ticket_term: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ticket_id** | **str**| | - **term_id** | **str**| | - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**204** | Smart Transfer ticket term successfully removed | - | -**403** | Unauthorized | - | -**404** | Not found | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **search_tickets** -> SmartTransferTicketFilteredResponse search_tickets(q=q, statuses=statuses, network_id=network_id, created_by_me=created_by_me, expires_after=expires_after, expires_before=expires_before, type=type, external_ref_id=external_ref_id, after=after, limit=limit, sort_by=sort_by, order=order) - -Find Ticket - -Find tickets by their title or ticker. You can also query all tickets without filters by not providing any input parameters. -**Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -### Example - - -```python -from fireblocks.models.smart_transfer_ticket_filtered_response import SmartTransferTicketFilteredResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - q = 'q_example' # str | Search string - counterparty name or asset or ticketId. Optional (optional) - statuses = [] # List[str] | Ticket statuses for Smart Transfer tickets. Optional (optional) (default to []) - network_id = 'network_id_example' # str | NetworkId that is used in the ticket . Optional (optional) - created_by_me = True # bool | Filter created tickets by created by self or by others. Optional (optional) - expires_after = '2013-10-20T19:20:30+01:00' # datetime | Lower bound of search range. Optional (optional) - expires_before = '2013-10-20T19:20:30+01:00' # datetime | Upper bound of search range. Optional (optional) - type = 'type_example' # str | Type of transfer. ASYNC executes transfers as they are funded, DVP executes all terms (legs) as one dvp transfer (optional) - external_ref_id = 'external_ref_id_example' # str | External ref. ID that workspace can use to identify ticket outside of Fireblocks system. (optional) - after = 'after_example' # str | ID of the record after which to fetch $limit records (optional) - limit = 3.4 # float | Number of records to fetch. By default, it is 100 (optional) - sort_by = createdAt # str | Sort by field (optional) (default to createdAt) - order = DESC # str | ASC / DESC ordering (default DESC) (optional) (default to DESC) - - try: - # Find Ticket - api_response = fireblocks.smart_transfer.search_tickets(q=q, statuses=statuses, network_id=network_id, created_by_me=created_by_me, expires_after=expires_after, expires_before=expires_before, type=type, external_ref_id=external_ref_id, after=after, limit=limit, sort_by=sort_by, order=order).result() - print("The response of SmartTransferApi->search_tickets:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling SmartTransferApi->search_tickets: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **q** | **str**| Search string - counterparty name or asset or ticketId. Optional | [optional] - **statuses** | [**List[str]**](str.md)| Ticket statuses for Smart Transfer tickets. Optional | [optional] [default to []] - **network_id** | **str**| NetworkId that is used in the ticket . Optional | [optional] - **created_by_me** | **bool**| Filter created tickets by created by self or by others. Optional | [optional] - **expires_after** | **datetime**| Lower bound of search range. Optional | [optional] - **expires_before** | **datetime**| Upper bound of search range. Optional | [optional] - **type** | **str**| Type of transfer. ASYNC executes transfers as they are funded, DVP executes all terms (legs) as one dvp transfer | [optional] - **external_ref_id** | **str**| External ref. ID that workspace can use to identify ticket outside of Fireblocks system. | [optional] - **after** | **str**| ID of the record after which to fetch $limit records | [optional] - **limit** | **float**| Number of records to fetch. By default, it is 100 | [optional] - **sort_by** | **str**| Sort by field | [optional] [default to createdAt] - **order** | **str**| ASC / DESC ordering (default DESC) | [optional] [default to DESC] - -### Return type - -[**SmartTransferTicketFilteredResponse**](SmartTransferTicketFilteredResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Smart Transfer tickets were returned successfully | - | -**403** | Unauthorized | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_external_ref_id** -> SmartTransferTicketResponse set_external_ref_id(ticket_id, smart_transfer_set_ticket_external_id, idempotency_key=idempotency_key) - -Add external ref. ID - -Set external id Smart Transfer ticket.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.smart_transfer_set_ticket_external_id import SmartTransferSetTicketExternalId -from fireblocks.models.smart_transfer_ticket_response import SmartTransferTicketResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - ticket_id = 'ticket_id_example' # str | - smart_transfer_set_ticket_external_id = fireblocks.SmartTransferSetTicketExternalId() # SmartTransferSetTicketExternalId | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Add external ref. ID - api_response = fireblocks.smart_transfer.set_external_ref_id(ticket_id, smart_transfer_set_ticket_external_id, idempotency_key=idempotency_key).result() - print("The response of SmartTransferApi->set_external_ref_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling SmartTransferApi->set_external_ref_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ticket_id** | **str**| | - **smart_transfer_set_ticket_external_id** | [**SmartTransferSetTicketExternalId**](SmartTransferSetTicketExternalId.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**SmartTransferTicketResponse**](SmartTransferTicketResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successfully set external id on Smart Transfer ticket | - | -**403** | Unauthorized | - | -**404** | Not found | - | -**422** | Bad Request | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_ticket_expiration** -> SmartTransferTicketResponse set_ticket_expiration(ticket_id, smart_transfer_set_ticket_expiration, idempotency_key=idempotency_key) - -Set expiration - -Set expiration date on Smart Transfer ticket.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.smart_transfer_set_ticket_expiration import SmartTransferSetTicketExpiration -from fireblocks.models.smart_transfer_ticket_response import SmartTransferTicketResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - ticket_id = 'ticket_id_example' # str | - smart_transfer_set_ticket_expiration = fireblocks.SmartTransferSetTicketExpiration() # SmartTransferSetTicketExpiration | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Set expiration - api_response = fireblocks.smart_transfer.set_ticket_expiration(ticket_id, smart_transfer_set_ticket_expiration, idempotency_key=idempotency_key).result() - print("The response of SmartTransferApi->set_ticket_expiration:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling SmartTransferApi->set_ticket_expiration: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ticket_id** | **str**| | - **smart_transfer_set_ticket_expiration** | [**SmartTransferSetTicketExpiration**](SmartTransferSetTicketExpiration.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**SmartTransferTicketResponse**](SmartTransferTicketResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successfully set expiration date on Smart Transfer ticket | - | -**403** | Unauthorized | - | -**404** | Not found | - | -**422** | Bad Request | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_user_groups** -> SmartTransferUserGroupsResponse set_user_groups(smart_transfer_set_user_groups, idempotency_key=idempotency_key) - -Set user group - -Set Smart Transfers user group to receive email notifications for Smart Transfers. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.smart_transfer_set_user_groups import SmartTransferSetUserGroups -from fireblocks.models.smart_transfer_user_groups_response import SmartTransferUserGroupsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - smart_transfer_set_user_groups = fireblocks.SmartTransferSetUserGroups() # SmartTransferSetUserGroups | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Set user group - api_response = fireblocks.smart_transfer.set_user_groups(smart_transfer_set_user_groups, idempotency_key=idempotency_key).result() - print("The response of SmartTransferApi->set_user_groups:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling SmartTransferApi->set_user_groups: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **smart_transfer_set_user_groups** | [**SmartTransferSetUserGroups**](SmartTransferSetUserGroups.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**SmartTransferUserGroupsResponse**](SmartTransferUserGroupsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | User group settings were set successfully | - | -**403** | Unauthorized | - | -**422** | Bad Request | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **submit_ticket** -> SmartTransferTicketResponse submit_ticket(ticket_id, smart_transfer_submit_ticket, idempotency_key=idempotency_key) - -Submit ticket - -Submit Smart Transfer ticket - change status into ready for approval if auto approval is not turned on, or OPEN if auto approval is on.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.smart_transfer_submit_ticket import SmartTransferSubmitTicket -from fireblocks.models.smart_transfer_ticket_response import SmartTransferTicketResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - ticket_id = 'ticket_id_example' # str | - smart_transfer_submit_ticket = fireblocks.SmartTransferSubmitTicket() # SmartTransferSubmitTicket | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Submit ticket - api_response = fireblocks.smart_transfer.submit_ticket(ticket_id, smart_transfer_submit_ticket, idempotency_key=idempotency_key).result() - print("The response of SmartTransferApi->submit_ticket:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling SmartTransferApi->submit_ticket: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ticket_id** | **str**| | - **smart_transfer_submit_ticket** | [**SmartTransferSubmitTicket**](SmartTransferSubmitTicket.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**SmartTransferTicketResponse**](SmartTransferTicketResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Successfully submitted Smart Transfer ticket | - | -**403** | Unauthorized | - | -**404** | Not found | - | -**422** | Bad Request | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_ticket_term** -> SmartTransferTicketTermResponse update_ticket_term(ticket_id, term_id, smart_transfer_update_ticket_term, idempotency_key=idempotency_key) - -Update ticket leg (term) - -Update ticket term (when ticket status is DRAFT) - -### Example - - -```python -from fireblocks.models.smart_transfer_ticket_term_response import SmartTransferTicketTermResponse -from fireblocks.models.smart_transfer_update_ticket_term import SmartTransferUpdateTicketTerm -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - ticket_id = 'ticket_id_example' # str | - term_id = 'term_id_example' # str | - smart_transfer_update_ticket_term = fireblocks.SmartTransferUpdateTicketTerm() # SmartTransferUpdateTicketTerm | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Update ticket leg (term) - api_response = fireblocks.smart_transfer.update_ticket_term(ticket_id, term_id, smart_transfer_update_ticket_term, idempotency_key=idempotency_key).result() - print("The response of SmartTransferApi->update_ticket_term:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling SmartTransferApi->update_ticket_term: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ticket_id** | **str**| | - **term_id** | **str**| | - **smart_transfer_update_ticket_term** | [**SmartTransferUpdateTicketTerm**](SmartTransferUpdateTicketTerm.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**SmartTransferTicketTermResponse**](SmartTransferTicketTermResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Smart Transfer ticket term updated successfully | - | -**403** | Unauthorized | - | -**404** | Not found | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLlNtYXJ0VHJhbnNmZXJBcGkKCkFsbCBVUklzIGFyZSByZWxhdGl2ZSB0byAqaHR0cHM6Ly9hcGkuZmlyZWJsb2Nrcy5pby92MSoKCk1ldGhvZCB8IEhUVFAgcmVxdWVzdCB8IERlc2NyaXB0aW9uCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQpbKiphcHByb3ZlX2R2X3BfdGlja2V0X3Rlcm0qKl0oU21hcnRUcmFuc2ZlckFwaS5tZCNhcHByb3ZlX2R2X3BfdGlja2V0X3Rlcm0pIHwgKipQVVQqKiAvc21hcnRfdHJhbnNmZXJzL3t0aWNrZXRJZH0vdGVybXMve3Rlcm1JZH0vZHZwL2FwcHJvdmUgfCBTZXQgZnVuZGluZyBzb3VyY2UgYW5kIGFwcHJvdmFsClsqKmNhbmNlbF90aWNrZXQqKl0oU21hcnRUcmFuc2ZlckFwaS5tZCNjYW5jZWxfdGlja2V0KSB8ICoqUFVUKiogL3NtYXJ0LXRyYW5zZmVycy97dGlja2V0SWR9L2NhbmNlbCB8IENhbmNlbCBUaWNrZXQKWyoqY3JlYXRlX3RpY2tldCoqXShTbWFydFRyYW5zZmVyQXBpLm1kI2NyZWF0ZV90aWNrZXQpIHwgKipQT1NUKiogL3NtYXJ0LXRyYW5zZmVycyB8IENyZWF0ZSBUaWNrZXQKWyoqY3JlYXRlX3RpY2tldF90ZXJtKipdKFNtYXJ0VHJhbnNmZXJBcGkubWQjY3JlYXRlX3RpY2tldF90ZXJtKSB8ICoqUE9TVCoqIC9zbWFydC10cmFuc2ZlcnMve3RpY2tldElkfS90ZXJtcyB8IENyZWF0ZSBsZWcgKHRlcm0pClsqKmZpbmRfdGlja2V0X2J5X2lkKipdKFNtYXJ0VHJhbnNmZXJBcGkubWQjZmluZF90aWNrZXRfYnlfaWQpIHwgKipHRVQqKiAvc21hcnQtdHJhbnNmZXJzL3t0aWNrZXRJZH0gfCBTZWFyY2ggVGlja2V0IGJ5IElEClsqKmZpbmRfdGlja2V0X3Rlcm1fYnlfaWQqKl0oU21hcnRUcmFuc2ZlckFwaS5tZCNmaW5kX3RpY2tldF90ZXJtX2J5X2lkKSB8ICoqR0VUKiogL3NtYXJ0LXRyYW5zZmVycy97dGlja2V0SWR9L3Rlcm1zL3t0ZXJtSWR9IHwgR2V0IFNtYXJ0IFRyYW5zZmVyIHRpY2tldCB0ZXJtClsqKmZ1bGZpbGxfdGlja2V0KipdKFNtYXJ0VHJhbnNmZXJBcGkubWQjZnVsZmlsbF90aWNrZXQpIHwgKipQVVQqKiAvc21hcnQtdHJhbnNmZXJzL3t0aWNrZXRJZH0vZnVsZmlsbCB8IEZ1bmQgdGlja2V0IG1hbnVhbGx5ClsqKmZ1bmRfZHZwX3RpY2tldCoqXShTbWFydFRyYW5zZmVyQXBpLm1kI2Z1bmRfZHZwX3RpY2tldCkgfCAqKlBVVCoqIC9zbWFydF90cmFuc2ZlcnMve3RpY2tldElkfS9kdnAvZnVuZCB8IEZ1bmQgZHZwIHRpY2tldApbKipmdW5kX3RpY2tldF90ZXJtKipdKFNtYXJ0VHJhbnNmZXJBcGkubWQjZnVuZF90aWNrZXRfdGVybSkgfCAqKlBVVCoqIC9zbWFydC10cmFuc2ZlcnMve3RpY2tldElkfS90ZXJtcy97dGVybUlkfS9mdW5kIHwgRGVmaW5lIGZ1bmRpbmcgc291cmNlClsqKmdldF9zbWFydF90cmFuc2Zlcl9zdGF0aXN0aWMqKl0oU21hcnRUcmFuc2ZlckFwaS5tZCNnZXRfc21hcnRfdHJhbnNmZXJfc3RhdGlzdGljKSB8ICoqR0VUKiogL3NtYXJ0X3RyYW5zZmVycy9zdGF0aXN0aWMgfCBHZXQgc21hcnQgdHJhbnNmZXJzIHN0YXRpc3RpYwpbKipnZXRfc21hcnRfdHJhbnNmZXJfdXNlcl9ncm91cHMqKl0oU21hcnRUcmFuc2ZlckFwaS5tZCNnZXRfc21hcnRfdHJhbnNmZXJfdXNlcl9ncm91cHMpIHwgKipHRVQqKiAvc21hcnQtdHJhbnNmZXJzL3NldHRpbmdzL3VzZXItZ3JvdXBzIHwgR2V0IHVzZXIgZ3JvdXAKWyoqbWFudWFsbHlfZnVuZF90aWNrZXRfdGVybSoqXShTbWFydFRyYW5zZmVyQXBpLm1kI21hbnVhbGx5X2Z1bmRfdGlja2V0X3Rlcm0pIHwgKipQVVQqKiAvc21hcnQtdHJhbnNmZXJzL3t0aWNrZXRJZH0vdGVybXMve3Rlcm1JZH0vbWFudWFsbHktZnVuZCB8IE1hbnVhbGx5IGFkZCB0ZXJtIHRyYW5zYWN0aW9uClsqKnJlbW92ZV90aWNrZXRfdGVybSoqXShTbWFydFRyYW5zZmVyQXBpLm1kI3JlbW92ZV90aWNrZXRfdGVybSkgfCAqKkRFTEVURSoqIC9zbWFydC10cmFuc2ZlcnMve3RpY2tldElkfS90ZXJtcy97dGVybUlkfSB8IERlbGV0ZSB0aWNrZXQgbGVnICh0ZXJtKQpbKipzZWFyY2hfdGlja2V0cyoqXShTbWFydFRyYW5zZmVyQXBpLm1kI3NlYXJjaF90aWNrZXRzKSB8ICoqR0VUKiogL3NtYXJ0LXRyYW5zZmVycyB8IEZpbmQgVGlja2V0ClsqKnNldF9leHRlcm5hbF9yZWZfaWQqKl0oU21hcnRUcmFuc2ZlckFwaS5tZCNzZXRfZXh0ZXJuYWxfcmVmX2lkKSB8ICoqUFVUKiogL3NtYXJ0LXRyYW5zZmVycy97dGlja2V0SWR9L2V4dGVybmFsLWlkIHwgQWRkIGV4dGVybmFsIHJlZi4gSUQKWyoqc2V0X3RpY2tldF9leHBpcmF0aW9uKipdKFNtYXJ0VHJhbnNmZXJBcGkubWQjc2V0X3RpY2tldF9leHBpcmF0aW9uKSB8ICoqUFVUKiogL3NtYXJ0LXRyYW5zZmVycy97dGlja2V0SWR9L2V4cGlyZXMtaW4gfCBTZXQgZXhwaXJhdGlvbgpbKipzZXRfdXNlcl9ncm91cHMqKl0oU21hcnRUcmFuc2ZlckFwaS5tZCNzZXRfdXNlcl9ncm91cHMpIHwgKipQT1NUKiogL3NtYXJ0LXRyYW5zZmVycy9zZXR0aW5ncy91c2VyLWdyb3VwcyB8IFNldCB1c2VyIGdyb3VwClsqKnN1Ym1pdF90aWNrZXQqKl0oU21hcnRUcmFuc2ZlckFwaS5tZCNzdWJtaXRfdGlja2V0KSB8ICoqUFVUKiogL3NtYXJ0LXRyYW5zZmVycy97dGlja2V0SWR9L3N1Ym1pdCB8IFN1Ym1pdCB0aWNrZXQKWyoqdXBkYXRlX3RpY2tldF90ZXJtKipdKFNtYXJ0VHJhbnNmZXJBcGkubWQjdXBkYXRlX3RpY2tldF90ZXJtKSB8ICoqUFVUKiogL3NtYXJ0LXRyYW5zZmVycy97dGlja2V0SWR9L3Rlcm1zL3t0ZXJtSWR9IHwgVXBkYXRlIHRpY2tldCBsZWcgKHRlcm0pCgoKIyAqKmFwcHJvdmVfZHZfcF90aWNrZXRfdGVybSoqCj4gU21hcnRUcmFuc2ZlclRpY2tldFRlcm1SZXNwb25zZSBhcHByb3ZlX2R2X3BfdGlja2V0X3Rlcm0odGlja2V0X2lkLCB0ZXJtX2lkLCBzbWFydF90cmFuc2Zlcl9hcHByb3ZlX3Rlcm0sIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpTZXQgZnVuZGluZyBzb3VyY2UgYW5kIGFwcHJvdmFsCgpTZXQgZnVuZGluZyBzb3VyY2UgZm9yIHRpY2tldCB0ZXJtIGFuZCBjcmVhdGluZyBhcHByb3ZpbmcgdHJhbnNhY3Rpb24gZm9yIGNvbnRyYWN0IHRvIHRyYW5zZmVyIGFzc2V0CgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2FwcHJvdmVfdGVybSBpbXBvcnQgU21hcnRUcmFuc2ZlckFwcHJvdmVUZXJtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfdGlja2V0X3Rlcm1fcmVzcG9uc2UgaW1wb3J0IFNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdGlja2V0X2lkID0gJ3RpY2tldF9pZF9leGFtcGxlJyAjIHN0ciB8IAogICAgdGVybV9pZCA9ICd0ZXJtX2lkX2V4YW1wbGUnICMgc3RyIHwgCiAgICBzbWFydF90cmFuc2Zlcl9hcHByb3ZlX3Rlcm0gPSBmaXJlYmxvY2tzLlNtYXJ0VHJhbnNmZXJBcHByb3ZlVGVybSgpICMgU21hcnRUcmFuc2ZlckFwcHJvdmVUZXJtIHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgU2V0IGZ1bmRpbmcgc291cmNlIGFuZCBhcHByb3ZhbAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Muc21hcnRfdHJhbnNmZXIuYXBwcm92ZV9kdl9wX3RpY2tldF90ZXJtKHRpY2tldF9pZCwgdGVybV9pZCwgc21hcnRfdHJhbnNmZXJfYXBwcm92ZV90ZXJtLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgU21hcnRUcmFuc2ZlckFwaS0+YXBwcm92ZV9kdl9wX3RpY2tldF90ZXJtOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFNtYXJ0VHJhbnNmZXJBcGktPmFwcHJvdmVfZHZfcF90aWNrZXRfdGVybTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqdGlja2V0X2lkKiogfCAqKnN0cioqfCAgfCAKICoqdGVybV9pZCoqIHwgKipzdHIqKnwgIHwgCiAqKnNtYXJ0X3RyYW5zZmVyX2FwcHJvdmVfdGVybSoqIHwgWyoqU21hcnRUcmFuc2ZlckFwcHJvdmVUZXJtKipdKFNtYXJ0VHJhbnNmZXJBcHByb3ZlVGVybS5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlKipdKFNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDEqKiB8IENyZWF0aW5nIGFwcHJvdmFsIHRyYW5zYWN0aW9uIHN0YXJ0ZWQgfCAgLSAgfAoqKjQwMyoqIHwgVW5hdXRob3JpemVkIHwgIC0gIHwKKio0MDQqKiB8IE5vdCBmb3VuZCB8ICAtICB8CioqNDIyKiogfCBCYWQgUmVxdWVzdCB8ICAtICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipjYW5jZWxfdGlja2V0KioKPiBTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UgY2FuY2VsX3RpY2tldCh0aWNrZXRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpDYW5jZWwgVGlja2V0CgpDYW5jZWwgU21hcnQgVHJhbnNmZXIgdGlja2V0LiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl90aWNrZXRfcmVzcG9uc2UgaW1wb3J0IFNtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB0aWNrZXRfaWQgPSAndGlja2V0X2lkX2V4YW1wbGUnICMgc3RyIHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ2FuY2VsIFRpY2tldAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Muc21hcnRfdHJhbnNmZXIuY2FuY2VsX3RpY2tldCh0aWNrZXRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBTbWFydFRyYW5zZmVyQXBpLT5jYW5jZWxfdGlja2V0OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFNtYXJ0VHJhbnNmZXJBcGktPmNhbmNlbF90aWNrZXQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnRpY2tldF9pZCoqIHwgKipzdHIqKnwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlNtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZSoqXShTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTbWFydCBUcmFuc2ZlciB0aWNrZXQgc3VjY2Vzc2Z1bGx5IGNhbmNlbGVkIHwgIC0gIHwKKio0MDMqKiB8IFVuYXV0aG9yaXplZCB8ICAtICB8CioqNDA0KiogfCBOb3QgZm91bmQgfCAgLSAgfAoqKjQyMioqIHwgQmFkIFJlcXVlc3QgfCAgLSAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqY3JlYXRlX3RpY2tldCoqCj4gU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlIGNyZWF0ZV90aWNrZXQoc21hcnRfdHJhbnNmZXJfY3JlYXRlX3RpY2tldCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCkNyZWF0ZSBUaWNrZXQKCkNyZWF0ZXMgYSBuZXcgU21hcnQgVHJhbnNmZXIgdGlja2V0LiBMZWFybiBtb3JlIGFib3V0IEZpcmVibG9ja3MgU21hcnQgVHJhbnNmZXJzIFtoZXJlXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vZG9jcy9leGVjdXRlLXNtYXJ0LXRyYW5zZmVycykuCgoqKk5vdGU6KiogVGhlIGBEVlBgIHZhbHVlIGlzIGluIEVhcmx5IEFjY2VzcyBhbmQgc2hvdWxkIG9ubHkgYmUgdXNlZCBpZiBGaXJlYmxvY2tzIGhhcyBlbmFibGVkIGl0IGluIHlvdXIgd29ya3NwYWNlLiBDb250YWN0IHlvdXIgQ3VzdG9tZXIgU3VjY2VzcyBNYW5hZ2VyIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKKipFbmRwb2ludCBQZXJtaXNzaW9uczoqKiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2NyZWF0ZV90aWNrZXQgaW1wb3J0IFNtYXJ0VHJhbnNmZXJDcmVhdGVUaWNrZXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl90aWNrZXRfcmVzcG9uc2UgaW1wb3J0IFNtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBzbWFydF90cmFuc2Zlcl9jcmVhdGVfdGlja2V0ID0gZmlyZWJsb2Nrcy5TbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0KCkgIyBTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ3JlYXRlIFRpY2tldAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Muc21hcnRfdHJhbnNmZXIuY3JlYXRlX3RpY2tldChzbWFydF90cmFuc2Zlcl9jcmVhdGVfdGlja2V0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgU21hcnRUcmFuc2ZlckFwaS0+Y3JlYXRlX3RpY2tldDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBTbWFydFRyYW5zZmVyQXBpLT5jcmVhdGVfdGlja2V0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipzbWFydF90cmFuc2Zlcl9jcmVhdGVfdGlja2V0KiogfCBbKipTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0KipdKFNtYXJ0VHJhbnNmZXJDcmVhdGVUaWNrZXQubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlKipdKFNtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgU21hcnQgVHJhbnNmZXIgdGlja2V0IHdhcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseSB8ICAtICB8CioqNDAzKiogfCBVbmF1dGhvcml6ZWQgfCAgLSAgfAoqKjQyMioqIHwgQmFkIFJlcXVlc3QgfCAgLSAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqY3JlYXRlX3RpY2tldF90ZXJtKioKPiBTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlIGNyZWF0ZV90aWNrZXRfdGVybSh0aWNrZXRfaWQsIHNtYXJ0X3RyYW5zZmVyX2NyZWF0ZV90aWNrZXRfdGVybSwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCkNyZWF0ZSBsZWcgKHRlcm0pCgpDcmVhdGVzIG5ldyBzbWFydCB0cmFuc2ZlciB0aWNrZXQgdGVybSAod2hlbiB0aGUgdGlja2V0IHN0YXR1cyBpcyBEUkFGVCkuIExlYXJuIG1vcmUgYWJvdXQgRmlyZWJsb2NrcyBTbWFydCBUcmFuc2ZlcnMgaW4gdGhlIGZvbGxvd2luZyBbZ3VpZGVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL2V4ZWN1dGUtc21hcnQtdHJhbnNmZXJzKS4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfY3JlYXRlX3RpY2tldF90ZXJtIGltcG9ydCBTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0VGVybQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldF90ZXJtX3Jlc3BvbnNlIGltcG9ydCBTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHRpY2tldF9pZCA9ICd0aWNrZXRfaWRfZXhhbXBsZScgIyBzdHIgfCAKICAgIHNtYXJ0X3RyYW5zZmVyX2NyZWF0ZV90aWNrZXRfdGVybSA9IGZpcmVibG9ja3MuU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldFRlcm0oKSAjIFNtYXJ0VHJhbnNmZXJDcmVhdGVUaWNrZXRUZXJtIHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ3JlYXRlIGxlZyAodGVybSkKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnNtYXJ0X3RyYW5zZmVyLmNyZWF0ZV90aWNrZXRfdGVybSh0aWNrZXRfaWQsIHNtYXJ0X3RyYW5zZmVyX2NyZWF0ZV90aWNrZXRfdGVybSwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFNtYXJ0VHJhbnNmZXJBcGktPmNyZWF0ZV90aWNrZXRfdGVybTpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBTbWFydFRyYW5zZmVyQXBpLT5jcmVhdGVfdGlja2V0X3Rlcm06ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnRpY2tldF9pZCoqIHwgKipzdHIqKnwgIHwgCiAqKnNtYXJ0X3RyYW5zZmVyX2NyZWF0ZV90aWNrZXRfdGVybSoqIHwgWyoqU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldFRlcm0qKl0oU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldFRlcm0ubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqU21hcnRUcmFuc2ZlclRpY2tldFRlcm1SZXNwb25zZSoqXShTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBTbWFydCBUcmFuc2ZlciB0aWNrZXQgdGVybSB3YXMgY3JlYXRlZCBzdWNjZXNzZnVsbHkgfCAgLSAgfAoqKjQwMyoqIHwgVW5hdXRob3JpemVkIHwgIC0gIHwKKio0MjIqKiB8IEJhZCBSZXF1ZXN0IHwgIC0gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmZpbmRfdGlja2V0X2J5X2lkKioKPiBTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UgZmluZF90aWNrZXRfYnlfaWQodGlja2V0X2lkKQoKU2VhcmNoIFRpY2tldCBieSBJRAoKRmluZCBTbWFydCBUcmFuc2ZlciB0aWNrZXQgYnkgaWQuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIFZpZXdlci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfdGlja2V0X3Jlc3BvbnNlIGltcG9ydCBTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdGlja2V0X2lkID0gJ3RpY2tldF9pZF9leGFtcGxlJyAjIHN0ciB8IAoKICAgIHRyeToKICAgICAgICAjIFNlYXJjaCBUaWNrZXQgYnkgSUQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnNtYXJ0X3RyYW5zZmVyLmZpbmRfdGlja2V0X2J5X2lkKHRpY2tldF9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFNtYXJ0VHJhbnNmZXJBcGktPmZpbmRfdGlja2V0X2J5X2lkOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFNtYXJ0VHJhbnNmZXJBcGktPmZpbmRfdGlja2V0X2J5X2lkOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip0aWNrZXRfaWQqKiB8ICoqc3RyKip8ICB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UqKl0oU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgU21hcnQgVHJhbnNmZXIgdGlja2V0IHJldHVybmVkIHN1Y2Nlc3NmdWxseSB8ICAtICB8CioqNDAzKiogfCBVbmF1dGhvcml6ZWQgfCAgLSAgfAoqKjQwNCoqIHwgTm90IGZvdW5kIHwgIC0gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmZpbmRfdGlja2V0X3Rlcm1fYnlfaWQqKgo+IFNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2UgZmluZF90aWNrZXRfdGVybV9ieV9pZCh0aWNrZXRfaWQsIHRlcm1faWQpCgpHZXQgU21hcnQgVHJhbnNmZXIgdGlja2V0IHRlcm0KCkZpbmQgYSBzcGVjaWZpYyB0ZXJtIG9mIGEgc3BlY2lmaWMgU21hcnQgVHJhbnNmZXIgdGlja2V0LiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLCBWaWV3ZXIuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldF90ZXJtX3Jlc3BvbnNlIGltcG9ydCBTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHRpY2tldF9pZCA9ICd0aWNrZXRfaWRfZXhhbXBsZScgIyBzdHIgfCAKICAgIHRlcm1faWQgPSAndGVybV9pZF9leGFtcGxlJyAjIHN0ciB8IAoKICAgIHRyeToKICAgICAgICAjIEdldCBTbWFydCBUcmFuc2ZlciB0aWNrZXQgdGVybQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Muc21hcnRfdHJhbnNmZXIuZmluZF90aWNrZXRfdGVybV9ieV9pZCh0aWNrZXRfaWQsIHRlcm1faWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBTbWFydFRyYW5zZmVyQXBpLT5maW5kX3RpY2tldF90ZXJtX2J5X2lkOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFNtYXJ0VHJhbnNmZXJBcGktPmZpbmRfdGlja2V0X3Rlcm1fYnlfaWQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnRpY2tldF9pZCoqIHwgKipzdHIqKnwgIHwgCiAqKnRlcm1faWQqKiB8ICoqc3RyKip8ICB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlKipdKFNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTbWFydCBUcmFuc2ZlciB0aWNrZXQgdGVybSByZXR1cm5lZCBzdWNjZXNzZnVsbHkgfCAgLSAgfAoqKjQwMyoqIHwgVW5hdXRob3JpemVkIHwgIC0gIHwKKio0MDQqKiB8IE5vdCBmb3VuZCB8ICAtICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipmdWxmaWxsX3RpY2tldCoqCj4gU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlIGZ1bGZpbGxfdGlja2V0KHRpY2tldF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCkZ1bmQgdGlja2V0IG1hbnVhbGx5CgpNYW51YWxseSBmdWxmaWxsIHRpY2tldCwgaW4gY2FzZSB3aGVuIGFsbCB0ZXJtcyAobGVncykgYXJlIGZ1bmRlZCBtYW51YWxseS4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfdGlja2V0X3Jlc3BvbnNlIGltcG9ydCBTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdGlja2V0X2lkID0gJ3RpY2tldF9pZF9leGFtcGxlJyAjIHN0ciB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIEZ1bmQgdGlja2V0IG1hbnVhbGx5CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5zbWFydF90cmFuc2Zlci5mdWxmaWxsX3RpY2tldCh0aWNrZXRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBTbWFydFRyYW5zZmVyQXBpLT5mdWxmaWxsX3RpY2tldDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBTbWFydFRyYW5zZmVyQXBpLT5mdWxmaWxsX3RpY2tldDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqdGlja2V0X2lkKiogfCAqKnN0cioqfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlKipdKFNtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFN1Y2Nlc3NmdWxseSBmdWxmaWxsZWQgb24gU21hcnQgVHJhbnNmZXIgdGlja2V0IHwgIC0gIHwKKio0MDMqKiB8IFVuYXV0aG9yaXplZCB8ICAtICB8CioqNDA0KiogfCBOb3QgZm91bmQgfCAgLSAgfAoqKjQyMioqIHwgQmFkIFJlcXVlc3QgfCAgLSAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZnVuZF9kdnBfdGlja2V0KioKPiBTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UgZnVuZF9kdnBfdGlja2V0KHRpY2tldF9pZCwgc21hcnRfdHJhbnNmZXJfZnVuZF9kdnBfdGlja2V0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKRnVuZCBkdnAgdGlja2V0CgpDcmVhdGUgb3IgZnVsZmlsbCBkdnAgdGlja2V0IG9yZGVyCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2Z1bmRfZHZwX3RpY2tldCBpbXBvcnQgU21hcnRUcmFuc2ZlckZ1bmREdnBUaWNrZXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl90aWNrZXRfcmVzcG9uc2UgaW1wb3J0IFNtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB0aWNrZXRfaWQgPSAndGlja2V0X2lkX2V4YW1wbGUnICMgc3RyIHwgCiAgICBzbWFydF90cmFuc2Zlcl9mdW5kX2R2cF90aWNrZXQgPSBmaXJlYmxvY2tzLlNtYXJ0VHJhbnNmZXJGdW5kRHZwVGlja2V0KCkgIyBTbWFydFRyYW5zZmVyRnVuZER2cFRpY2tldCB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIEZ1bmQgZHZwIHRpY2tldAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Muc21hcnRfdHJhbnNmZXIuZnVuZF9kdnBfdGlja2V0KHRpY2tldF9pZCwgc21hcnRfdHJhbnNmZXJfZnVuZF9kdnBfdGlja2V0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgU21hcnRUcmFuc2ZlckFwaS0+ZnVuZF9kdnBfdGlja2V0OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFNtYXJ0VHJhbnNmZXJBcGktPmZ1bmRfZHZwX3RpY2tldDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqdGlja2V0X2lkKiogfCAqKnN0cioqfCAgfCAKICoqc21hcnRfdHJhbnNmZXJfZnVuZF9kdnBfdGlja2V0KiogfCBbKipTbWFydFRyYW5zZmVyRnVuZER2cFRpY2tldCoqXShTbWFydFRyYW5zZmVyRnVuZER2cFRpY2tldC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UqKl0oU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTdWNjZXNzZnVsbHkgc3RhcnRlZCBjcmVhdGluZyBvciBmdWxmaWxsaW5nIG9yZGVyIG9uIGR2cCBTbWFydCBUcmFuc2ZlciB0aWNrZXQgfCAgLSAgfAoqKjQwMyoqIHwgVW5hdXRob3JpemVkIHwgIC0gIHwKKio0MDQqKiB8IE5vdCBmb3VuZCB8ICAtICB8CioqNDIyKiogfCBCYWQgUmVxdWVzdCB8ICAtICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipmdW5kX3RpY2tldF90ZXJtKioKPiBTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlIGZ1bmRfdGlja2V0X3Rlcm0odGlja2V0X2lkLCB0ZXJtX2lkLCBzbWFydF90cmFuc2Zlcl9mdW5kX3Rlcm0sIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpEZWZpbmUgZnVuZGluZyBzb3VyY2UKClNldCBmdW5kaW5nIHNvdXJjZSBmb3IgdGlja2V0IHRlcm0gKGluIGNhc2Ugb2YgQVNZTkMgdGlja2V0cywgdGhpcyB3aWxsIGV4ZWN1dGUgdHJhbnNmZXIgaW1tZWRpYXRlbHkpLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9mdW5kX3Rlcm0gaW1wb3J0IFNtYXJ0VHJhbnNmZXJGdW5kVGVybQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldF90ZXJtX3Jlc3BvbnNlIGltcG9ydCBTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHRpY2tldF9pZCA9ICd0aWNrZXRfaWRfZXhhbXBsZScgIyBzdHIgfCAKICAgIHRlcm1faWQgPSAndGVybV9pZF9leGFtcGxlJyAjIHN0ciB8IAogICAgc21hcnRfdHJhbnNmZXJfZnVuZF90ZXJtID0gZmlyZWJsb2Nrcy5TbWFydFRyYW5zZmVyRnVuZFRlcm0oKSAjIFNtYXJ0VHJhbnNmZXJGdW5kVGVybSB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIERlZmluZSBmdW5kaW5nIHNvdXJjZQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Muc21hcnRfdHJhbnNmZXIuZnVuZF90aWNrZXRfdGVybSh0aWNrZXRfaWQsIHRlcm1faWQsIHNtYXJ0X3RyYW5zZmVyX2Z1bmRfdGVybSwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFNtYXJ0VHJhbnNmZXJBcGktPmZ1bmRfdGlja2V0X3Rlcm06XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgU21hcnRUcmFuc2ZlckFwaS0+ZnVuZF90aWNrZXRfdGVybTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqdGlja2V0X2lkKiogfCAqKnN0cioqfCAgfCAKICoqdGVybV9pZCoqIHwgKipzdHIqKnwgIHwgCiAqKnNtYXJ0X3RyYW5zZmVyX2Z1bmRfdGVybSoqIHwgWyoqU21hcnRUcmFuc2ZlckZ1bmRUZXJtKipdKFNtYXJ0VHJhbnNmZXJGdW5kVGVybS5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlKipdKFNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDEqKiB8IEZ1bmRpbmcgc291cmNlIGZvciB0aWNrZXQgdGVybSBzdWNjZXNzZnVsbHkgZG9uZSB8ICAtICB8CioqNDAzKiogfCBVbmF1dGhvcml6ZWQgfCAgLSAgfAoqKjQwNCoqIHwgTm90IGZvdW5kIHwgIC0gIHwKKio0MjIqKiB8IEJhZCBSZXF1ZXN0IHwgIC0gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9zbWFydF90cmFuc2Zlcl9zdGF0aXN0aWMqKgo+IFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWMgZ2V0X3NtYXJ0X3RyYW5zZmVyX3N0YXRpc3RpYygpCgpHZXQgc21hcnQgdHJhbnNmZXJzIHN0YXRpc3RpYwoKR2V0IHNtYXJ0IHRyYW5zZmVyIHN0YXRpc3RpYwoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9zdGF0aXN0aWMgaW1wb3J0IFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWMKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgoKICAgIHRyeToKICAgICAgICAjIEdldCBzbWFydCB0cmFuc2ZlcnMgc3RhdGlzdGljCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5zbWFydF90cmFuc2Zlci5nZXRfc21hcnRfdHJhbnNmZXJfc3RhdGlzdGljKCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFNtYXJ0VHJhbnNmZXJBcGktPmdldF9zbWFydF90cmFuc2Zlcl9zdGF0aXN0aWM6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgU21hcnRUcmFuc2ZlckFwaS0+Z2V0X3NtYXJ0X3RyYW5zZmVyX3N0YXRpc3RpYzogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKClRoaXMgZW5kcG9pbnQgZG9lcyBub3QgbmVlZCBhbnkgcGFyYW1ldGVyLgoKIyMjIFJldHVybiB0eXBlCgpbKipTbWFydFRyYW5zZmVyU3RhdGlzdGljKipdKFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWMubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTbWFydCBUcmFuc2ZlciB0aWNrZXQgc3RhdGlzdGljIHJldHVybmVkIHN1Y2Nlc3NmdWxseSB8ICAtICB8CioqNDAzKiogfCBVbmF1dGhvcml6ZWQgfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9zbWFydF90cmFuc2Zlcl91c2VyX2dyb3VwcyoqCj4gU21hcnRUcmFuc2ZlclVzZXJHcm91cHNSZXNwb25zZSBnZXRfc21hcnRfdHJhbnNmZXJfdXNlcl9ncm91cHMoKQoKR2V0IHVzZXIgZ3JvdXAKCkdldCBTbWFydCBUcmFuc2ZlciB1c2VyIGdyb3Vwcy4KPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgVmlld2VyLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl91c2VyX2dyb3Vwc19yZXNwb25zZSBpbXBvcnQgU21hcnRUcmFuc2ZlclVzZXJHcm91cHNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CgogICAgdHJ5OgogICAgICAgICMgR2V0IHVzZXIgZ3JvdXAKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnNtYXJ0X3RyYW5zZmVyLmdldF9zbWFydF90cmFuc2Zlcl91c2VyX2dyb3VwcygpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBTbWFydFRyYW5zZmVyQXBpLT5nZXRfc21hcnRfdHJhbnNmZXJfdXNlcl9ncm91cHM6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgU21hcnRUcmFuc2ZlckFwaS0+Z2V0X3NtYXJ0X3RyYW5zZmVyX3VzZXJfZ3JvdXBzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKVGhpcyBlbmRwb2ludCBkb2VzIG5vdCBuZWVkIGFueSBwYXJhbWV0ZXIuCgojIyMgUmV0dXJuIHR5cGUKClsqKlNtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzUmVzcG9uc2UqKl0oU21hcnRUcmFuc2ZlclVzZXJHcm91cHNSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFVzZXIgZ3JvdXAgc2V0dGluZ3Mgd2VyZSByZXR1cm5lZCBzdWNjZXNzZnVsbHkgfCAgLSAgfAoqKjQwMyoqIHwgVW5hdXRob3JpemVkIHwgIC0gIHwKKio0MjIqKiB8IEJhZCBSZXF1ZXN0IHwgIC0gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKm1hbnVhbGx5X2Z1bmRfdGlja2V0X3Rlcm0qKgo+IFNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2UgbWFudWFsbHlfZnVuZF90aWNrZXRfdGVybSh0aWNrZXRfaWQsIHRlcm1faWQsIHNtYXJ0X3RyYW5zZmVyX21hbnVhbGx5X2Z1bmRfdGVybSwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCk1hbnVhbGx5IGFkZCB0ZXJtIHRyYW5zYWN0aW9uCgpNYW51YWxseSBzZXQgdGlja2V0IHRlcm0gdHJhbnNhY3Rpb24uCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX21hbnVhbGx5X2Z1bmRfdGVybSBpbXBvcnQgU21hcnRUcmFuc2Zlck1hbnVhbGx5RnVuZFRlcm0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl90aWNrZXRfdGVybV9yZXNwb25zZSBpbXBvcnQgU21hcnRUcmFuc2ZlclRpY2tldFRlcm1SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB0aWNrZXRfaWQgPSAndGlja2V0X2lkX2V4YW1wbGUnICMgc3RyIHwgCiAgICB0ZXJtX2lkID0gJ3Rlcm1faWRfZXhhbXBsZScgIyBzdHIgfCAKICAgIHNtYXJ0X3RyYW5zZmVyX21hbnVhbGx5X2Z1bmRfdGVybSA9IGZpcmVibG9ja3MuU21hcnRUcmFuc2Zlck1hbnVhbGx5RnVuZFRlcm0oKSAjIFNtYXJ0VHJhbnNmZXJNYW51YWxseUZ1bmRUZXJtIHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgTWFudWFsbHkgYWRkIHRlcm0gdHJhbnNhY3Rpb24KICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnNtYXJ0X3RyYW5zZmVyLm1hbnVhbGx5X2Z1bmRfdGlja2V0X3Rlcm0odGlja2V0X2lkLCB0ZXJtX2lkLCBzbWFydF90cmFuc2Zlcl9tYW51YWxseV9mdW5kX3Rlcm0sIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBTbWFydFRyYW5zZmVyQXBpLT5tYW51YWxseV9mdW5kX3RpY2tldF90ZXJtOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFNtYXJ0VHJhbnNmZXJBcGktPm1hbnVhbGx5X2Z1bmRfdGlja2V0X3Rlcm06ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnRpY2tldF9pZCoqIHwgKipzdHIqKnwgIHwgCiAqKnRlcm1faWQqKiB8ICoqc3RyKip8ICB8IAogKipzbWFydF90cmFuc2Zlcl9tYW51YWxseV9mdW5kX3Rlcm0qKiB8IFsqKlNtYXJ0VHJhbnNmZXJNYW51YWxseUZ1bmRUZXJtKipdKFNtYXJ0VHJhbnNmZXJNYW51YWxseUZ1bmRUZXJtLm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2UqKl0oU21hcnRUcmFuc2ZlclRpY2tldFRlcm1SZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgU3VjY2Vzc2Z1bGx5IG1hbnVhbGx5IHNldCB0aWNrZXQgdGVybSB0cmFuc2FjdGlvbiB8ICAtICB8CioqNDAzKiogfCBVbmF1dGhvcml6ZWQgfCAgLSAgfAoqKjQwNCoqIHwgTm90IGZvdW5kIHwgIC0gIHwKKio0MjIqKiB8IEJhZCBSZXF1ZXN0IHwgIC0gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnJlbW92ZV90aWNrZXRfdGVybSoqCj4gcmVtb3ZlX3RpY2tldF90ZXJtKHRpY2tldF9pZCwgdGVybV9pZCkKCkRlbGV0ZSB0aWNrZXQgbGVnICh0ZXJtKQoKRGVsZXRlIHRpY2tldCB0ZXJtIHdoZW4gdGlja2V0IGlzIGluIERSQUZUIHN0YXR1cwoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHRpY2tldF9pZCA9ICd0aWNrZXRfaWRfZXhhbXBsZScgIyBzdHIgfCAKICAgIHRlcm1faWQgPSAndGVybV9pZF9leGFtcGxlJyAjIHN0ciB8IAoKICAgIHRyeToKICAgICAgICAjIERlbGV0ZSB0aWNrZXQgbGVnICh0ZXJtKQogICAgICAgIGZpcmVibG9ja3Muc21hcnRfdHJhbnNmZXIucmVtb3ZlX3RpY2tldF90ZXJtKHRpY2tldF9pZCwgdGVybV9pZCkucmVzdWx0KCkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBTbWFydFRyYW5zZmVyQXBpLT5yZW1vdmVfdGlja2V0X3Rlcm06ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnRpY2tldF9pZCoqIHwgKipzdHIqKnwgIHwgCiAqKnRlcm1faWQqKiB8ICoqc3RyKip8ICB8IAoKIyMjIFJldHVybiB0eXBlCgp2b2lkIChlbXB0eSByZXNwb25zZSBib2R5KQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwNCoqIHwgU21hcnQgVHJhbnNmZXIgdGlja2V0IHRlcm0gc3VjY2Vzc2Z1bGx5IHJlbW92ZWQgfCAgLSAgfAoqKjQwMyoqIHwgVW5hdXRob3JpemVkIHwgIC0gIHwKKio0MDQqKiB8IE5vdCBmb3VuZCB8ICAtICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipzZWFyY2hfdGlja2V0cyoqCj4gU21hcnRUcmFuc2ZlclRpY2tldEZpbHRlcmVkUmVzcG9uc2Ugc2VhcmNoX3RpY2tldHMocT1xLCBzdGF0dXNlcz1zdGF0dXNlcywgbmV0d29ya19pZD1uZXR3b3JrX2lkLCBjcmVhdGVkX2J5X21lPWNyZWF0ZWRfYnlfbWUsIGV4cGlyZXNfYWZ0ZXI9ZXhwaXJlc19hZnRlciwgZXhwaXJlc19iZWZvcmU9ZXhwaXJlc19iZWZvcmUsIHR5cGU9dHlwZSwgZXh0ZXJuYWxfcmVmX2lkPWV4dGVybmFsX3JlZl9pZCwgYWZ0ZXI9YWZ0ZXIsIGxpbWl0PWxpbWl0LCBzb3J0X2J5PXNvcnRfYnksIG9yZGVyPW9yZGVyKQoKRmluZCBUaWNrZXQKCkZpbmQgdGlja2V0cyBieSB0aGVpciB0aXRsZSBvciB0aWNrZXIuIFlvdSBjYW4gYWxzbyBxdWVyeSBhbGwgdGlja2V0cyB3aXRob3V0IGZpbHRlcnMgYnkgbm90IHByb3ZpZGluZyBhbnkgaW5wdXQgcGFyYW1ldGVycy4KKipFbmRwb2ludCBQZXJtaXNzaW9uczoqKiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgVmlld2VyLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl90aWNrZXRfZmlsdGVyZWRfcmVzcG9uc2UgaW1wb3J0IFNtYXJ0VHJhbnNmZXJUaWNrZXRGaWx0ZXJlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHEgPSAncV9leGFtcGxlJyAjIHN0ciB8IFNlYXJjaCBzdHJpbmcgLSBjb3VudGVycGFydHkgbmFtZSBvciBhc3NldCBvciB0aWNrZXRJZC4gT3B0aW9uYWwgKG9wdGlvbmFsKQogICAgc3RhdHVzZXMgPSBbXSAjIExpc3Rbc3RyXSB8IFRpY2tldCBzdGF0dXNlcyBmb3IgU21hcnQgVHJhbnNmZXIgdGlja2V0cy4gT3B0aW9uYWwgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byBbXSkKICAgIG5ldHdvcmtfaWQgPSAnbmV0d29ya19pZF9leGFtcGxlJyAjIHN0ciB8IE5ldHdvcmtJZCB0aGF0IGlzIHVzZWQgaW4gdGhlIHRpY2tldCAuIE9wdGlvbmFsIChvcHRpb25hbCkKICAgIGNyZWF0ZWRfYnlfbWUgPSBUcnVlICMgYm9vbCB8IEZpbHRlciBjcmVhdGVkIHRpY2tldHMgYnkgY3JlYXRlZCBieSBzZWxmIG9yIGJ5IG90aGVycy4gT3B0aW9uYWwgKG9wdGlvbmFsKQogICAgZXhwaXJlc19hZnRlciA9ICcyMDEzLTEwLTIwVDE5OjIwOjMwKzAxOjAwJyAjIGRhdGV0aW1lIHwgTG93ZXIgYm91bmQgb2Ygc2VhcmNoIHJhbmdlLiBPcHRpb25hbCAob3B0aW9uYWwpCiAgICBleHBpcmVzX2JlZm9yZSA9ICcyMDEzLTEwLTIwVDE5OjIwOjMwKzAxOjAwJyAjIGRhdGV0aW1lIHwgVXBwZXIgYm91bmQgb2Ygc2VhcmNoIHJhbmdlLiBPcHRpb25hbCAob3B0aW9uYWwpCiAgICB0eXBlID0gJ3R5cGVfZXhhbXBsZScgIyBzdHIgfCBUeXBlIG9mIHRyYW5zZmVyLiBBU1lOQyBleGVjdXRlcyB0cmFuc2ZlcnMgYXMgdGhleSBhcmUgZnVuZGVkLCBEVlAgZXhlY3V0ZXMgYWxsIHRlcm1zIChsZWdzKSBhcyBvbmUgZHZwIHRyYW5zZmVyIChvcHRpb25hbCkKICAgIGV4dGVybmFsX3JlZl9pZCA9ICdleHRlcm5hbF9yZWZfaWRfZXhhbXBsZScgIyBzdHIgfCBFeHRlcm5hbCByZWYuIElEIHRoYXQgd29ya3NwYWNlIGNhbiB1c2UgdG8gaWRlbnRpZnkgdGlja2V0IG91dHNpZGUgb2YgRmlyZWJsb2NrcyBzeXN0ZW0uIChvcHRpb25hbCkKICAgIGFmdGVyID0gJ2FmdGVyX2V4YW1wbGUnICMgc3RyIHwgSUQgb2YgdGhlIHJlY29yZCBhZnRlciB3aGljaCB0byBmZXRjaCAkbGltaXQgcmVjb3JkcyAob3B0aW9uYWwpCiAgICBsaW1pdCA9IDMuNCAjIGZsb2F0IHwgTnVtYmVyIG9mIHJlY29yZHMgdG8gZmV0Y2guIEJ5IGRlZmF1bHQsIGl0IGlzIDEwMCAob3B0aW9uYWwpCiAgICBzb3J0X2J5ID0gY3JlYXRlZEF0ICMgc3RyIHwgU29ydCBieSBmaWVsZCAob3B0aW9uYWwpIChkZWZhdWx0IHRvIGNyZWF0ZWRBdCkKICAgIG9yZGVyID0gREVTQyAjIHN0ciB8IEFTQyAvIERFU0Mgb3JkZXJpbmcgKGRlZmF1bHQgREVTQykgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byBERVNDKQoKICAgIHRyeToKICAgICAgICAjIEZpbmQgVGlja2V0CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5zbWFydF90cmFuc2Zlci5zZWFyY2hfdGlja2V0cyhxPXEsIHN0YXR1c2VzPXN0YXR1c2VzLCBuZXR3b3JrX2lkPW5ldHdvcmtfaWQsIGNyZWF0ZWRfYnlfbWU9Y3JlYXRlZF9ieV9tZSwgZXhwaXJlc19hZnRlcj1leHBpcmVzX2FmdGVyLCBleHBpcmVzX2JlZm9yZT1leHBpcmVzX2JlZm9yZSwgdHlwZT10eXBlLCBleHRlcm5hbF9yZWZfaWQ9ZXh0ZXJuYWxfcmVmX2lkLCBhZnRlcj1hZnRlciwgbGltaXQ9bGltaXQsIHNvcnRfYnk9c29ydF9ieSwgb3JkZXI9b3JkZXIpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBTbWFydFRyYW5zZmVyQXBpLT5zZWFyY2hfdGlja2V0czpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBTbWFydFRyYW5zZmVyQXBpLT5zZWFyY2hfdGlja2V0czogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqcSoqIHwgKipzdHIqKnwgU2VhcmNoIHN0cmluZyAtIGNvdW50ZXJwYXJ0eSBuYW1lIG9yIGFzc2V0IG9yIHRpY2tldElkLiBPcHRpb25hbCB8IFtvcHRpb25hbF0gCiAqKnN0YXR1c2VzKiogfCBbKipMaXN0W3N0cl0qKl0oc3RyLm1kKXwgVGlja2V0IHN0YXR1c2VzIGZvciBTbWFydCBUcmFuc2ZlciB0aWNrZXRzLiBPcHRpb25hbCB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gW11dCiAqKm5ldHdvcmtfaWQqKiB8ICoqc3RyKip8IE5ldHdvcmtJZCB0aGF0IGlzIHVzZWQgaW4gdGhlIHRpY2tldCAuIE9wdGlvbmFsIHwgW29wdGlvbmFsXSAKICoqY3JlYXRlZF9ieV9tZSoqIHwgKipib29sKip8IEZpbHRlciBjcmVhdGVkIHRpY2tldHMgYnkgY3JlYXRlZCBieSBzZWxmIG9yIGJ5IG90aGVycy4gT3B0aW9uYWwgfCBbb3B0aW9uYWxdIAogKipleHBpcmVzX2FmdGVyKiogfCAqKmRhdGV0aW1lKip8IExvd2VyIGJvdW5kIG9mIHNlYXJjaCByYW5nZS4gT3B0aW9uYWwgfCBbb3B0aW9uYWxdIAogKipleHBpcmVzX2JlZm9yZSoqIHwgKipkYXRldGltZSoqfCBVcHBlciBib3VuZCBvZiBzZWFyY2ggcmFuZ2UuIE9wdGlvbmFsIHwgW29wdGlvbmFsXSAKICoqdHlwZSoqIHwgKipzdHIqKnwgVHlwZSBvZiB0cmFuc2Zlci4gQVNZTkMgZXhlY3V0ZXMgdHJhbnNmZXJzIGFzIHRoZXkgYXJlIGZ1bmRlZCwgRFZQIGV4ZWN1dGVzIGFsbCB0ZXJtcyAobGVncykgYXMgb25lIGR2cCB0cmFuc2ZlciB8IFtvcHRpb25hbF0gCiAqKmV4dGVybmFsX3JlZl9pZCoqIHwgKipzdHIqKnwgRXh0ZXJuYWwgcmVmLiBJRCB0aGF0IHdvcmtzcGFjZSBjYW4gdXNlIHRvIGlkZW50aWZ5IHRpY2tldCBvdXRzaWRlIG9mIEZpcmVibG9ja3Mgc3lzdGVtLiB8IFtvcHRpb25hbF0gCiAqKmFmdGVyKiogfCAqKnN0cioqfCBJRCBvZiB0aGUgcmVjb3JkIGFmdGVyIHdoaWNoIHRvIGZldGNoICRsaW1pdCByZWNvcmRzIHwgW29wdGlvbmFsXSAKICoqbGltaXQqKiB8ICoqZmxvYXQqKnwgTnVtYmVyIG9mIHJlY29yZHMgdG8gZmV0Y2guIEJ5IGRlZmF1bHQsIGl0IGlzIDEwMCB8IFtvcHRpb25hbF0gCiAqKnNvcnRfYnkqKiB8ICoqc3RyKip8IFNvcnQgYnkgZmllbGQgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIGNyZWF0ZWRBdF0KICoqb3JkZXIqKiB8ICoqc3RyKip8IEFTQyAvIERFU0Mgb3JkZXJpbmcgKGRlZmF1bHQgREVTQykgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIERFU0NdCgojIyMgUmV0dXJuIHR5cGUKClsqKlNtYXJ0VHJhbnNmZXJUaWNrZXRGaWx0ZXJlZFJlc3BvbnNlKipdKFNtYXJ0VHJhbnNmZXJUaWNrZXRGaWx0ZXJlZFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgU21hcnQgVHJhbnNmZXIgdGlja2V0cyB3ZXJlIHJldHVybmVkIHN1Y2Nlc3NmdWxseSB8ICAtICB8CioqNDAzKiogfCBVbmF1dGhvcml6ZWQgfCAgLSAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqc2V0X2V4dGVybmFsX3JlZl9pZCoqCj4gU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlIHNldF9leHRlcm5hbF9yZWZfaWQodGlja2V0X2lkLCBzbWFydF90cmFuc2Zlcl9zZXRfdGlja2V0X2V4dGVybmFsX2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKQWRkIGV4dGVybmFsIHJlZi4gSUQKClNldCBleHRlcm5hbCBpZCBTbWFydCBUcmFuc2ZlciB0aWNrZXQuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXh0ZXJuYWxfaWQgaW1wb3J0IFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHRlcm5hbElkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfdGlja2V0X3Jlc3BvbnNlIGltcG9ydCBTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdGlja2V0X2lkID0gJ3RpY2tldF9pZF9leGFtcGxlJyAjIHN0ciB8IAogICAgc21hcnRfdHJhbnNmZXJfc2V0X3RpY2tldF9leHRlcm5hbF9pZCA9IGZpcmVibG9ja3MuU21hcnRUcmFuc2ZlclNldFRpY2tldEV4dGVybmFsSWQoKSAjIFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHRlcm5hbElkIHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQWRkIGV4dGVybmFsIHJlZi4gSUQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnNtYXJ0X3RyYW5zZmVyLnNldF9leHRlcm5hbF9yZWZfaWQodGlja2V0X2lkLCBzbWFydF90cmFuc2Zlcl9zZXRfdGlja2V0X2V4dGVybmFsX2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgU21hcnRUcmFuc2ZlckFwaS0+c2V0X2V4dGVybmFsX3JlZl9pZDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBTbWFydFRyYW5zZmVyQXBpLT5zZXRfZXh0ZXJuYWxfcmVmX2lkOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip0aWNrZXRfaWQqKiB8ICoqc3RyKip8ICB8IAogKipzbWFydF90cmFuc2Zlcl9zZXRfdGlja2V0X2V4dGVybmFsX2lkKiogfCBbKipTbWFydFRyYW5zZmVyU2V0VGlja2V0RXh0ZXJuYWxJZCoqXShTbWFydFRyYW5zZmVyU2V0VGlja2V0RXh0ZXJuYWxJZC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UqKl0oU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTdWNjZXNzZnVsbHkgc2V0IGV4dGVybmFsIGlkIG9uIFNtYXJ0IFRyYW5zZmVyIHRpY2tldCB8ICAtICB8CioqNDAzKiogfCBVbmF1dGhvcml6ZWQgfCAgLSAgfAoqKjQwNCoqIHwgTm90IGZvdW5kIHwgIC0gIHwKKio0MjIqKiB8IEJhZCBSZXF1ZXN0IHwgIC0gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnNldF90aWNrZXRfZXhwaXJhdGlvbioqCj4gU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlIHNldF90aWNrZXRfZXhwaXJhdGlvbih0aWNrZXRfaWQsIHNtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXhwaXJhdGlvbiwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKClNldCBleHBpcmF0aW9uCgpTZXQgZXhwaXJhdGlvbiBkYXRlIG9uIFNtYXJ0IFRyYW5zZmVyIHRpY2tldC4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfc2V0X3RpY2tldF9leHBpcmF0aW9uIGltcG9ydCBTbWFydFRyYW5zZmVyU2V0VGlja2V0RXhwaXJhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldF9yZXNwb25zZSBpbXBvcnQgU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHRpY2tldF9pZCA9ICd0aWNrZXRfaWRfZXhhbXBsZScgIyBzdHIgfCAKICAgIHNtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXhwaXJhdGlvbiA9IGZpcmVibG9ja3MuU21hcnRUcmFuc2ZlclNldFRpY2tldEV4cGlyYXRpb24oKSAjIFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHBpcmF0aW9uIHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgU2V0IGV4cGlyYXRpb24KICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnNtYXJ0X3RyYW5zZmVyLnNldF90aWNrZXRfZXhwaXJhdGlvbih0aWNrZXRfaWQsIHNtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXhwaXJhdGlvbiwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFNtYXJ0VHJhbnNmZXJBcGktPnNldF90aWNrZXRfZXhwaXJhdGlvbjpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBTbWFydFRyYW5zZmVyQXBpLT5zZXRfdGlja2V0X2V4cGlyYXRpb246ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnRpY2tldF9pZCoqIHwgKipzdHIqKnwgIHwgCiAqKnNtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXhwaXJhdGlvbioqIHwgWyoqU21hcnRUcmFuc2ZlclNldFRpY2tldEV4cGlyYXRpb24qKl0oU21hcnRUcmFuc2ZlclNldFRpY2tldEV4cGlyYXRpb24ubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlKipdKFNtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgU3VjY2Vzc2Z1bGx5IHNldCBleHBpcmF0aW9uIGRhdGUgb24gU21hcnQgVHJhbnNmZXIgdGlja2V0IHwgIC0gIHwKKio0MDMqKiB8IFVuYXV0aG9yaXplZCB8ICAtICB8CioqNDA0KiogfCBOb3QgZm91bmQgfCAgLSAgfAoqKjQyMioqIHwgQmFkIFJlcXVlc3QgfCAgLSAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqc2V0X3VzZXJfZ3JvdXBzKioKPiBTbWFydFRyYW5zZmVyVXNlckdyb3Vwc1Jlc3BvbnNlIHNldF91c2VyX2dyb3VwcyhzbWFydF90cmFuc2Zlcl9zZXRfdXNlcl9ncm91cHMsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpTZXQgdXNlciBncm91cAoKU2V0IFNtYXJ0IFRyYW5zZmVycyB1c2VyIGdyb3VwIHRvIHJlY2VpdmUgZW1haWwgbm90aWZpY2F0aW9ucyBmb3IgU21hcnQgVHJhbnNmZXJzLgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9zZXRfdXNlcl9ncm91cHMgaW1wb3J0IFNtYXJ0VHJhbnNmZXJTZXRVc2VyR3JvdXBzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfdXNlcl9ncm91cHNfcmVzcG9uc2UgaW1wb3J0IFNtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgc21hcnRfdHJhbnNmZXJfc2V0X3VzZXJfZ3JvdXBzID0gZmlyZWJsb2Nrcy5TbWFydFRyYW5zZmVyU2V0VXNlckdyb3VwcygpICMgU21hcnRUcmFuc2ZlclNldFVzZXJHcm91cHMgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBTZXQgdXNlciBncm91cAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Muc21hcnRfdHJhbnNmZXIuc2V0X3VzZXJfZ3JvdXBzKHNtYXJ0X3RyYW5zZmVyX3NldF91c2VyX2dyb3VwcywgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFNtYXJ0VHJhbnNmZXJBcGktPnNldF91c2VyX2dyb3VwczpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBTbWFydFRyYW5zZmVyQXBpLT5zZXRfdXNlcl9ncm91cHM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnNtYXJ0X3RyYW5zZmVyX3NldF91c2VyX2dyb3VwcyoqIHwgWyoqU21hcnRUcmFuc2ZlclNldFVzZXJHcm91cHMqKl0oU21hcnRUcmFuc2ZlclNldFVzZXJHcm91cHMubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqU21hcnRUcmFuc2ZlclVzZXJHcm91cHNSZXNwb25zZSoqXShTbWFydFRyYW5zZmVyVXNlckdyb3Vwc1Jlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBVc2VyIGdyb3VwIHNldHRpbmdzIHdlcmUgc2V0IHN1Y2Nlc3NmdWxseSB8ICAtICB8CioqNDAzKiogfCBVbmF1dGhvcml6ZWQgfCAgLSAgfAoqKjQyMioqIHwgQmFkIFJlcXVlc3QgfCAgLSAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqc3VibWl0X3RpY2tldCoqCj4gU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlIHN1Ym1pdF90aWNrZXQodGlja2V0X2lkLCBzbWFydF90cmFuc2Zlcl9zdWJtaXRfdGlja2V0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKU3VibWl0IHRpY2tldAoKU3VibWl0IFNtYXJ0IFRyYW5zZmVyIHRpY2tldCAtIGNoYW5nZSBzdGF0dXMgaW50byByZWFkeSBmb3IgYXBwcm92YWwgaWYgYXV0byBhcHByb3ZhbCBpcyBub3QgdHVybmVkIG9uLCBvciBPUEVOIGlmIGF1dG8gYXBwcm92YWwgaXMgb24uIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3N1Ym1pdF90aWNrZXQgaW1wb3J0IFNtYXJ0VHJhbnNmZXJTdWJtaXRUaWNrZXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl90aWNrZXRfcmVzcG9uc2UgaW1wb3J0IFNtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB0aWNrZXRfaWQgPSAndGlja2V0X2lkX2V4YW1wbGUnICMgc3RyIHwgCiAgICBzbWFydF90cmFuc2Zlcl9zdWJtaXRfdGlja2V0ID0gZmlyZWJsb2Nrcy5TbWFydFRyYW5zZmVyU3VibWl0VGlja2V0KCkgIyBTbWFydFRyYW5zZmVyU3VibWl0VGlja2V0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgU3VibWl0IHRpY2tldAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Muc21hcnRfdHJhbnNmZXIuc3VibWl0X3RpY2tldCh0aWNrZXRfaWQsIHNtYXJ0X3RyYW5zZmVyX3N1Ym1pdF90aWNrZXQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBTbWFydFRyYW5zZmVyQXBpLT5zdWJtaXRfdGlja2V0OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFNtYXJ0VHJhbnNmZXJBcGktPnN1Ym1pdF90aWNrZXQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnRpY2tldF9pZCoqIHwgKipzdHIqKnwgIHwgCiAqKnNtYXJ0X3RyYW5zZmVyX3N1Ym1pdF90aWNrZXQqKiB8IFsqKlNtYXJ0VHJhbnNmZXJTdWJtaXRUaWNrZXQqKl0oU21hcnRUcmFuc2ZlclN1Ym1pdFRpY2tldC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UqKl0oU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTdWNjZXNzZnVsbHkgc3VibWl0dGVkIFNtYXJ0IFRyYW5zZmVyIHRpY2tldCB8ICAtICB8CioqNDAzKiogfCBVbmF1dGhvcml6ZWQgfCAgLSAgfAoqKjQwNCoqIHwgTm90IGZvdW5kIHwgIC0gIHwKKio0MjIqKiB8IEJhZCBSZXF1ZXN0IHwgIC0gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnVwZGF0ZV90aWNrZXRfdGVybSoqCj4gU21hcnRUcmFuc2ZlclRpY2tldFRlcm1SZXNwb25zZSB1cGRhdGVfdGlja2V0X3Rlcm0odGlja2V0X2lkLCB0ZXJtX2lkLCBzbWFydF90cmFuc2Zlcl91cGRhdGVfdGlja2V0X3Rlcm0sIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpVcGRhdGUgdGlja2V0IGxlZyAodGVybSkKClVwZGF0ZSB0aWNrZXQgdGVybSAod2hlbiB0aWNrZXQgc3RhdHVzIGlzIERSQUZUKQoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl90aWNrZXRfdGVybV9yZXNwb25zZSBpbXBvcnQgU21hcnRUcmFuc2ZlclRpY2tldFRlcm1SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3VwZGF0ZV90aWNrZXRfdGVybSBpbXBvcnQgU21hcnRUcmFuc2ZlclVwZGF0ZVRpY2tldFRlcm0KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdGlja2V0X2lkID0gJ3RpY2tldF9pZF9leGFtcGxlJyAjIHN0ciB8IAogICAgdGVybV9pZCA9ICd0ZXJtX2lkX2V4YW1wbGUnICMgc3RyIHwgCiAgICBzbWFydF90cmFuc2Zlcl91cGRhdGVfdGlja2V0X3Rlcm0gPSBmaXJlYmxvY2tzLlNtYXJ0VHJhbnNmZXJVcGRhdGVUaWNrZXRUZXJtKCkgIyBTbWFydFRyYW5zZmVyVXBkYXRlVGlja2V0VGVybSB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIFVwZGF0ZSB0aWNrZXQgbGVnICh0ZXJtKQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Muc21hcnRfdHJhbnNmZXIudXBkYXRlX3RpY2tldF90ZXJtKHRpY2tldF9pZCwgdGVybV9pZCwgc21hcnRfdHJhbnNmZXJfdXBkYXRlX3RpY2tldF90ZXJtLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgU21hcnRUcmFuc2ZlckFwaS0+dXBkYXRlX3RpY2tldF90ZXJtOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFNtYXJ0VHJhbnNmZXJBcGktPnVwZGF0ZV90aWNrZXRfdGVybTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqdGlja2V0X2lkKiogfCAqKnN0cioqfCAgfCAKICoqdGVybV9pZCoqIHwgKipzdHIqKnwgIHwgCiAqKnNtYXJ0X3RyYW5zZmVyX3VwZGF0ZV90aWNrZXRfdGVybSoqIHwgWyoqU21hcnRUcmFuc2ZlclVwZGF0ZVRpY2tldFRlcm0qKl0oU21hcnRUcmFuc2ZlclVwZGF0ZVRpY2tldFRlcm0ubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqU21hcnRUcmFuc2ZlclRpY2tldFRlcm1SZXNwb25zZSoqXShTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTbWFydCBUcmFuc2ZlciB0aWNrZXQgdGVybSB1cGRhdGVkIHN1Y2Nlc3NmdWxseSB8ICAtICB8CioqNDAzKiogfCBVbmF1dGhvcml6ZWQgfCAgLSAgfAoqKjQwNCoqIHwgTm90IGZvdW5kIHwgIC0gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoK \ No newline at end of file diff --git a/docs/SmartTransferApproveTerm.md b/docs/SmartTransferApproveTerm.md index c4748762..0cb64d75 100644 --- a/docs/SmartTransferApproveTerm.md +++ b/docs/SmartTransferApproveTerm.md @@ -1,34 +1 @@ -# SmartTransferApproveTerm - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**asset** | **str** | Asset name | -**amount** | **str** | Amount | -**src_id** | **str** | Id of the vault that is used as the source of the asset. | -**fee** | **str** | Transaction fee | [optional] -**fee_level** | **str** | Transaction fee level. | [optional] -**note** | **str** | Transaction note | [optional] - -## Example - -```python -from fireblocks.models.smart_transfer_approve_term import SmartTransferApproveTerm - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferApproveTerm from a JSON string -smart_transfer_approve_term_instance = SmartTransferApproveTerm.from_json(json) -# print the JSON string representation of the object -print(SmartTransferApproveTerm.to_json()) - -# convert the object into a dict -smart_transfer_approve_term_dict = smart_transfer_approve_term_instance.to_dict() -# create an instance of SmartTransferApproveTerm from a dict -smart_transfer_approve_term_from_dict = SmartTransferApproveTerm.from_dict(smart_transfer_approve_term_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyQXBwcm92ZVRlcm0KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYXNzZXQqKiB8ICoqc3RyKiogfCBBc3NldCBuYW1lIHwgCioqYW1vdW50KiogfCAqKnN0cioqIHwgQW1vdW50IHwgCioqc3JjX2lkKiogfCAqKnN0cioqIHwgSWQgb2YgdGhlIHZhdWx0IHRoYXQgaXMgdXNlZCBhcyB0aGUgc291cmNlIG9mIHRoZSBhc3NldC4gfCAKKipmZWUqKiB8ICoqc3RyKiogfCBUcmFuc2FjdGlvbiBmZWUgfCBbb3B0aW9uYWxdIAoqKmZlZV9sZXZlbCoqIHwgKipzdHIqKiB8IFRyYW5zYWN0aW9uIGZlZSBsZXZlbC4gfCBbb3B0aW9uYWxdIAoqKm5vdGUqKiB8ICoqc3RyKiogfCBUcmFuc2FjdGlvbiBub3RlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2FwcHJvdmVfdGVybSBpbXBvcnQgU21hcnRUcmFuc2ZlckFwcHJvdmVUZXJtCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyQXBwcm92ZVRlcm0gZnJvbSBhIEpTT04gc3RyaW5nCnNtYXJ0X3RyYW5zZmVyX2FwcHJvdmVfdGVybV9pbnN0YW5jZSA9IFNtYXJ0VHJhbnNmZXJBcHByb3ZlVGVybS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTbWFydFRyYW5zZmVyQXBwcm92ZVRlcm0udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc21hcnRfdHJhbnNmZXJfYXBwcm92ZV90ZXJtX2RpY3QgPSBzbWFydF90cmFuc2Zlcl9hcHByb3ZlX3Rlcm1faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJBcHByb3ZlVGVybSBmcm9tIGEgZGljdApzbWFydF90cmFuc2Zlcl9hcHByb3ZlX3Rlcm1fZnJvbV9kaWN0ID0gU21hcnRUcmFuc2ZlckFwcHJvdmVUZXJtLmZyb21fZGljdChzbWFydF90cmFuc2Zlcl9hcHByb3ZlX3Rlcm1fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SmartTransferBadRequestResponse.md b/docs/SmartTransferBadRequestResponse.md index c15c24dd..ce44d8c2 100644 --- a/docs/SmartTransferBadRequestResponse.md +++ b/docs/SmartTransferBadRequestResponse.md @@ -1,30 +1 @@ -# SmartTransferBadRequestResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Bad request error message | -**code** | **str** | Bad request error code | - -## Example - -```python -from fireblocks.models.smart_transfer_bad_request_response import SmartTransferBadRequestResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferBadRequestResponse from a JSON string -smart_transfer_bad_request_response_instance = SmartTransferBadRequestResponse.from_json(json) -# print the JSON string representation of the object -print(SmartTransferBadRequestResponse.to_json()) - -# convert the object into a dict -smart_transfer_bad_request_response_dict = smart_transfer_bad_request_response_instance.to_dict() -# create an instance of SmartTransferBadRequestResponse from a dict -smart_transfer_bad_request_response_from_dict = SmartTransferBadRequestResponse.from_dict(smart_transfer_bad_request_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyQmFkUmVxdWVzdFJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm1lc3NhZ2UqKiB8ICoqc3RyKiogfCBCYWQgcmVxdWVzdCBlcnJvciBtZXNzYWdlIHwgCioqY29kZSoqIHwgKipzdHIqKiB8IEJhZCByZXF1ZXN0IGVycm9yIGNvZGUgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2JhZF9yZXF1ZXN0X3Jlc3BvbnNlIGltcG9ydCBTbWFydFRyYW5zZmVyQmFkUmVxdWVzdFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyQmFkUmVxdWVzdFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpzbWFydF90cmFuc2Zlcl9iYWRfcmVxdWVzdF9yZXNwb25zZV9pbnN0YW5jZSA9IFNtYXJ0VHJhbnNmZXJCYWRSZXF1ZXN0UmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU21hcnRUcmFuc2ZlckJhZFJlcXVlc3RSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzbWFydF90cmFuc2Zlcl9iYWRfcmVxdWVzdF9yZXNwb25zZV9kaWN0ID0gc21hcnRfdHJhbnNmZXJfYmFkX3JlcXVlc3RfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJCYWRSZXF1ZXN0UmVzcG9uc2UgZnJvbSBhIGRpY3QKc21hcnRfdHJhbnNmZXJfYmFkX3JlcXVlc3RfcmVzcG9uc2VfZnJvbV9kaWN0ID0gU21hcnRUcmFuc2ZlckJhZFJlcXVlc3RSZXNwb25zZS5mcm9tX2RpY3Qoc21hcnRfdHJhbnNmZXJfYmFkX3JlcXVlc3RfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SmartTransferCoinStatistic.md b/docs/SmartTransferCoinStatistic.md index 7595be86..aba4c639 100644 --- a/docs/SmartTransferCoinStatistic.md +++ b/docs/SmartTransferCoinStatistic.md @@ -1,31 +1 @@ -# SmartTransferCoinStatistic - -Smart transfer coin statistic - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**asset** | **str** | | [optional] -**amount** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.smart_transfer_coin_statistic import SmartTransferCoinStatistic - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferCoinStatistic from a JSON string -smart_transfer_coin_statistic_instance = SmartTransferCoinStatistic.from_json(json) -# print the JSON string representation of the object -print(SmartTransferCoinStatistic.to_json()) - -# convert the object into a dict -smart_transfer_coin_statistic_dict = smart_transfer_coin_statistic_instance.to_dict() -# create an instance of SmartTransferCoinStatistic from a dict -smart_transfer_coin_statistic_from_dict = SmartTransferCoinStatistic.from_dict(smart_transfer_coin_statistic_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyQ29pblN0YXRpc3RpYwoKU21hcnQgdHJhbnNmZXIgY29pbiBzdGF0aXN0aWMKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphc3NldCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqYW1vdW50KiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2NvaW5fc3RhdGlzdGljIGltcG9ydCBTbWFydFRyYW5zZmVyQ29pblN0YXRpc3RpYwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlckNvaW5TdGF0aXN0aWMgZnJvbSBhIEpTT04gc3RyaW5nCnNtYXJ0X3RyYW5zZmVyX2NvaW5fc3RhdGlzdGljX2luc3RhbmNlID0gU21hcnRUcmFuc2ZlckNvaW5TdGF0aXN0aWMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU21hcnRUcmFuc2ZlckNvaW5TdGF0aXN0aWMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc21hcnRfdHJhbnNmZXJfY29pbl9zdGF0aXN0aWNfZGljdCA9IHNtYXJ0X3RyYW5zZmVyX2NvaW5fc3RhdGlzdGljX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyQ29pblN0YXRpc3RpYyBmcm9tIGEgZGljdApzbWFydF90cmFuc2Zlcl9jb2luX3N0YXRpc3RpY19mcm9tX2RpY3QgPSBTbWFydFRyYW5zZmVyQ29pblN0YXRpc3RpYy5mcm9tX2RpY3Qoc21hcnRfdHJhbnNmZXJfY29pbl9zdGF0aXN0aWNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SmartTransferCreateTicket.md b/docs/SmartTransferCreateTicket.md index 1bb72db1..b923e180 100644 --- a/docs/SmartTransferCreateTicket.md +++ b/docs/SmartTransferCreateTicket.md @@ -1,35 +1 @@ -# SmartTransferCreateTicket - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**created_by_network_id** | **str** | | -**type** | **str** | | -**expires_in** | **float** | Number of hours after which an OPEN ticket will expire if no term is funded. | [optional] -**terms** | [**List[SmartTransferCreateTicketTerm]**](SmartTransferCreateTicketTerm.md) | | [optional] -**external_ref_id** | **str** | | [optional] -**note** | **str** | | [optional] -**submit** | **bool** | | [optional] - -## Example - -```python -from fireblocks.models.smart_transfer_create_ticket import SmartTransferCreateTicket - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferCreateTicket from a JSON string -smart_transfer_create_ticket_instance = SmartTransferCreateTicket.from_json(json) -# print the JSON string representation of the object -print(SmartTransferCreateTicket.to_json()) - -# convert the object into a dict -smart_transfer_create_ticket_dict = smart_transfer_create_ticket_instance.to_dict() -# create an instance of SmartTransferCreateTicket from a dict -smart_transfer_create_ticket_from_dict = SmartTransferCreateTicket.from_dict(smart_transfer_create_ticket_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmNyZWF0ZWRfYnlfbmV0d29ya19pZCoqIHwgKipzdHIqKiB8ICB8IAoqKnR5cGUqKiB8ICoqc3RyKiogfCAgfCAKKipleHBpcmVzX2luKiogfCAqKmZsb2F0KiogfCBOdW1iZXIgb2YgaG91cnMgYWZ0ZXIgd2hpY2ggYW4gT1BFTiB0aWNrZXQgd2lsbCBleHBpcmUgaWYgbm8gdGVybSBpcyBmdW5kZWQuIHwgW29wdGlvbmFsXSAKKip0ZXJtcyoqIHwgWyoqTGlzdFtTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0VGVybV0qKl0oU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldFRlcm0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipleHRlcm5hbF9yZWZfaWQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKm5vdGUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKnN1Ym1pdCoqIHwgKipib29sKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfY3JlYXRlX3RpY2tldCBpbXBvcnQgU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldCBmcm9tIGEgSlNPTiBzdHJpbmcKc21hcnRfdHJhbnNmZXJfY3JlYXRlX3RpY2tldF9pbnN0YW5jZSA9IFNtYXJ0VHJhbnNmZXJDcmVhdGVUaWNrZXQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzbWFydF90cmFuc2Zlcl9jcmVhdGVfdGlja2V0X2RpY3QgPSBzbWFydF90cmFuc2Zlcl9jcmVhdGVfdGlja2V0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0IGZyb20gYSBkaWN0CnNtYXJ0X3RyYW5zZmVyX2NyZWF0ZV90aWNrZXRfZnJvbV9kaWN0ID0gU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldC5mcm9tX2RpY3Qoc21hcnRfdHJhbnNmZXJfY3JlYXRlX3RpY2tldF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SmartTransferCreateTicketTerm.md b/docs/SmartTransferCreateTicketTerm.md index 52adaab7..81c874a6 100644 --- a/docs/SmartTransferCreateTicketTerm.md +++ b/docs/SmartTransferCreateTicketTerm.md @@ -1,32 +1 @@ -# SmartTransferCreateTicketTerm - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**asset** | **str** | Asset name | -**amount** | **str** | Amount | -**from_network_id** | **str** | Identifier of the origination Network Profile | -**to_network_id** | **str** | Identifier of the destination Network Profile | - -## Example - -```python -from fireblocks.models.smart_transfer_create_ticket_term import SmartTransferCreateTicketTerm - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferCreateTicketTerm from a JSON string -smart_transfer_create_ticket_term_instance = SmartTransferCreateTicketTerm.from_json(json) -# print the JSON string representation of the object -print(SmartTransferCreateTicketTerm.to_json()) - -# convert the object into a dict -smart_transfer_create_ticket_term_dict = smart_transfer_create_ticket_term_instance.to_dict() -# create an instance of SmartTransferCreateTicketTerm from a dict -smart_transfer_create_ticket_term_from_dict = SmartTransferCreateTicketTerm.from_dict(smart_transfer_create_ticket_term_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0VGVybQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphc3NldCoqIHwgKipzdHIqKiB8IEFzc2V0IG5hbWUgfCAKKiphbW91bnQqKiB8ICoqc3RyKiogfCBBbW91bnQgfCAKKipmcm9tX25ldHdvcmtfaWQqKiB8ICoqc3RyKiogfCBJZGVudGlmaWVyIG9mIHRoZSBvcmlnaW5hdGlvbiBOZXR3b3JrIFByb2ZpbGUgfCAKKip0b19uZXR3b3JrX2lkKiogfCAqKnN0cioqIHwgSWRlbnRpZmllciBvZiB0aGUgZGVzdGluYXRpb24gTmV0d29yayBQcm9maWxlIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9jcmVhdGVfdGlja2V0X3Rlcm0gaW1wb3J0IFNtYXJ0VHJhbnNmZXJDcmVhdGVUaWNrZXRUZXJtCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0VGVybSBmcm9tIGEgSlNPTiBzdHJpbmcKc21hcnRfdHJhbnNmZXJfY3JlYXRlX3RpY2tldF90ZXJtX2luc3RhbmNlID0gU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldFRlcm0uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldFRlcm0udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc21hcnRfdHJhbnNmZXJfY3JlYXRlX3RpY2tldF90ZXJtX2RpY3QgPSBzbWFydF90cmFuc2Zlcl9jcmVhdGVfdGlja2V0X3Rlcm1faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJDcmVhdGVUaWNrZXRUZXJtIGZyb20gYSBkaWN0CnNtYXJ0X3RyYW5zZmVyX2NyZWF0ZV90aWNrZXRfdGVybV9mcm9tX2RpY3QgPSBTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0VGVybS5mcm9tX2RpY3Qoc21hcnRfdHJhbnNmZXJfY3JlYXRlX3RpY2tldF90ZXJtX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SmartTransferForbiddenResponse.md b/docs/SmartTransferForbiddenResponse.md index 674b4499..08a31301 100644 --- a/docs/SmartTransferForbiddenResponse.md +++ b/docs/SmartTransferForbiddenResponse.md @@ -1,30 +1 @@ -# SmartTransferForbiddenResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Forbidden error code | -**code** | **str** | Error code | - -## Example - -```python -from fireblocks.models.smart_transfer_forbidden_response import SmartTransferForbiddenResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferForbiddenResponse from a JSON string -smart_transfer_forbidden_response_instance = SmartTransferForbiddenResponse.from_json(json) -# print the JSON string representation of the object -print(SmartTransferForbiddenResponse.to_json()) - -# convert the object into a dict -smart_transfer_forbidden_response_dict = smart_transfer_forbidden_response_instance.to_dict() -# create an instance of SmartTransferForbiddenResponse from a dict -smart_transfer_forbidden_response_from_dict = SmartTransferForbiddenResponse.from_dict(smart_transfer_forbidden_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyRm9yYmlkZGVuUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbWVzc2FnZSoqIHwgKipzdHIqKiB8IEZvcmJpZGRlbiBlcnJvciBjb2RlIHwgCioqY29kZSoqIHwgKipzdHIqKiB8IEVycm9yIGNvZGUgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2ZvcmJpZGRlbl9yZXNwb25zZSBpbXBvcnQgU21hcnRUcmFuc2ZlckZvcmJpZGRlblJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyRm9yYmlkZGVuUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnNtYXJ0X3RyYW5zZmVyX2ZvcmJpZGRlbl9yZXNwb25zZV9pbnN0YW5jZSA9IFNtYXJ0VHJhbnNmZXJGb3JiaWRkZW5SZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTbWFydFRyYW5zZmVyRm9yYmlkZGVuUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc21hcnRfdHJhbnNmZXJfZm9yYmlkZGVuX3Jlc3BvbnNlX2RpY3QgPSBzbWFydF90cmFuc2Zlcl9mb3JiaWRkZW5fcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJGb3JiaWRkZW5SZXNwb25zZSBmcm9tIGEgZGljdApzbWFydF90cmFuc2Zlcl9mb3JiaWRkZW5fcmVzcG9uc2VfZnJvbV9kaWN0ID0gU21hcnRUcmFuc2ZlckZvcmJpZGRlblJlc3BvbnNlLmZyb21fZGljdChzbWFydF90cmFuc2Zlcl9mb3JiaWRkZW5fcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SmartTransferFundDvpTicket.md b/docs/SmartTransferFundDvpTicket.md index 7853a683..17e5d009 100644 --- a/docs/SmartTransferFundDvpTicket.md +++ b/docs/SmartTransferFundDvpTicket.md @@ -1,31 +1 @@ -# SmartTransferFundDvpTicket - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**fee** | **str** | Transaction fee | [optional] -**fee_level** | **str** | Transaction fee level. | [optional] -**note** | **str** | Transaction note | [optional] - -## Example - -```python -from fireblocks.models.smart_transfer_fund_dvp_ticket import SmartTransferFundDvpTicket - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferFundDvpTicket from a JSON string -smart_transfer_fund_dvp_ticket_instance = SmartTransferFundDvpTicket.from_json(json) -# print the JSON string representation of the object -print(SmartTransferFundDvpTicket.to_json()) - -# convert the object into a dict -smart_transfer_fund_dvp_ticket_dict = smart_transfer_fund_dvp_ticket_instance.to_dict() -# create an instance of SmartTransferFundDvpTicket from a dict -smart_transfer_fund_dvp_ticket_from_dict = SmartTransferFundDvpTicket.from_dict(smart_transfer_fund_dvp_ticket_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyRnVuZER2cFRpY2tldAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipmZWUqKiB8ICoqc3RyKiogfCBUcmFuc2FjdGlvbiBmZWUgfCBbb3B0aW9uYWxdIAoqKmZlZV9sZXZlbCoqIHwgKipzdHIqKiB8IFRyYW5zYWN0aW9uIGZlZSBsZXZlbC4gfCBbb3B0aW9uYWxdIAoqKm5vdGUqKiB8ICoqc3RyKiogfCBUcmFuc2FjdGlvbiBub3RlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2Z1bmRfZHZwX3RpY2tldCBpbXBvcnQgU21hcnRUcmFuc2ZlckZ1bmREdnBUaWNrZXQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJGdW5kRHZwVGlja2V0IGZyb20gYSBKU09OIHN0cmluZwpzbWFydF90cmFuc2Zlcl9mdW5kX2R2cF90aWNrZXRfaW5zdGFuY2UgPSBTbWFydFRyYW5zZmVyRnVuZER2cFRpY2tldC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTbWFydFRyYW5zZmVyRnVuZER2cFRpY2tldC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzbWFydF90cmFuc2Zlcl9mdW5kX2R2cF90aWNrZXRfZGljdCA9IHNtYXJ0X3RyYW5zZmVyX2Z1bmRfZHZwX3RpY2tldF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlckZ1bmREdnBUaWNrZXQgZnJvbSBhIGRpY3QKc21hcnRfdHJhbnNmZXJfZnVuZF9kdnBfdGlja2V0X2Zyb21fZGljdCA9IFNtYXJ0VHJhbnNmZXJGdW5kRHZwVGlja2V0LmZyb21fZGljdChzbWFydF90cmFuc2Zlcl9mdW5kX2R2cF90aWNrZXRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SmartTransferFundTerm.md b/docs/SmartTransferFundTerm.md index 69641927..733cc9ae 100644 --- a/docs/SmartTransferFundTerm.md +++ b/docs/SmartTransferFundTerm.md @@ -1,36 +1 @@ -# SmartTransferFundTerm - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**asset** | **str** | Asset name | -**amount** | **str** | Amount | -**network_connection_id** | **str** | Id of the network connection used. | -**src_id** | **str** | Id of the vault that is used as the source of the asset. | -**src_type** | **str** | Source of the asset. | -**fee** | **str** | Transaction fee | [optional] -**fee_level** | **str** | Transaction fee level. | [optional] -**note** | **str** | Transaction note | [optional] - -## Example - -```python -from fireblocks.models.smart_transfer_fund_term import SmartTransferFundTerm - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferFundTerm from a JSON string -smart_transfer_fund_term_instance = SmartTransferFundTerm.from_json(json) -# print the JSON string representation of the object -print(SmartTransferFundTerm.to_json()) - -# convert the object into a dict -smart_transfer_fund_term_dict = smart_transfer_fund_term_instance.to_dict() -# create an instance of SmartTransferFundTerm from a dict -smart_transfer_fund_term_from_dict = SmartTransferFundTerm.from_dict(smart_transfer_fund_term_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyRnVuZFRlcm0KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYXNzZXQqKiB8ICoqc3RyKiogfCBBc3NldCBuYW1lIHwgCioqYW1vdW50KiogfCAqKnN0cioqIHwgQW1vdW50IHwgCioqbmV0d29ya19jb25uZWN0aW9uX2lkKiogfCAqKnN0cioqIHwgSWQgb2YgdGhlIG5ldHdvcmsgY29ubmVjdGlvbiB1c2VkLiB8IAoqKnNyY19pZCoqIHwgKipzdHIqKiB8IElkIG9mIHRoZSB2YXVsdCB0aGF0IGlzIHVzZWQgYXMgdGhlIHNvdXJjZSBvZiB0aGUgYXNzZXQuIHwgCioqc3JjX3R5cGUqKiB8ICoqc3RyKiogfCBTb3VyY2Ugb2YgdGhlIGFzc2V0LiB8IAoqKmZlZSoqIHwgKipzdHIqKiB8IFRyYW5zYWN0aW9uIGZlZSB8IFtvcHRpb25hbF0gCioqZmVlX2xldmVsKiogfCAqKnN0cioqIHwgVHJhbnNhY3Rpb24gZmVlIGxldmVsLiB8IFtvcHRpb25hbF0gCioqbm90ZSoqIHwgKipzdHIqKiB8IFRyYW5zYWN0aW9uIG5vdGUgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfZnVuZF90ZXJtIGltcG9ydCBTbWFydFRyYW5zZmVyRnVuZFRlcm0KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJGdW5kVGVybSBmcm9tIGEgSlNPTiBzdHJpbmcKc21hcnRfdHJhbnNmZXJfZnVuZF90ZXJtX2luc3RhbmNlID0gU21hcnRUcmFuc2ZlckZ1bmRUZXJtLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNtYXJ0VHJhbnNmZXJGdW5kVGVybS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzbWFydF90cmFuc2Zlcl9mdW5kX3Rlcm1fZGljdCA9IHNtYXJ0X3RyYW5zZmVyX2Z1bmRfdGVybV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlckZ1bmRUZXJtIGZyb20gYSBkaWN0CnNtYXJ0X3RyYW5zZmVyX2Z1bmRfdGVybV9mcm9tX2RpY3QgPSBTbWFydFRyYW5zZmVyRnVuZFRlcm0uZnJvbV9kaWN0KHNtYXJ0X3RyYW5zZmVyX2Z1bmRfdGVybV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SmartTransferManuallyFundTerm.md b/docs/SmartTransferManuallyFundTerm.md index f44b52ae..e2c8535f 100644 --- a/docs/SmartTransferManuallyFundTerm.md +++ b/docs/SmartTransferManuallyFundTerm.md @@ -1,29 +1 @@ -# SmartTransferManuallyFundTerm - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**tx_hash** | **str** | | - -## Example - -```python -from fireblocks.models.smart_transfer_manually_fund_term import SmartTransferManuallyFundTerm - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferManuallyFundTerm from a JSON string -smart_transfer_manually_fund_term_instance = SmartTransferManuallyFundTerm.from_json(json) -# print the JSON string representation of the object -print(SmartTransferManuallyFundTerm.to_json()) - -# convert the object into a dict -smart_transfer_manually_fund_term_dict = smart_transfer_manually_fund_term_instance.to_dict() -# create an instance of SmartTransferManuallyFundTerm from a dict -smart_transfer_manually_fund_term_from_dict = SmartTransferManuallyFundTerm.from_dict(smart_transfer_manually_fund_term_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyTWFudWFsbHlGdW5kVGVybQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eF9oYXNoKiogfCAqKnN0cioqIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9tYW51YWxseV9mdW5kX3Rlcm0gaW1wb3J0IFNtYXJ0VHJhbnNmZXJNYW51YWxseUZ1bmRUZXJtCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyTWFudWFsbHlGdW5kVGVybSBmcm9tIGEgSlNPTiBzdHJpbmcKc21hcnRfdHJhbnNmZXJfbWFudWFsbHlfZnVuZF90ZXJtX2luc3RhbmNlID0gU21hcnRUcmFuc2Zlck1hbnVhbGx5RnVuZFRlcm0uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU21hcnRUcmFuc2Zlck1hbnVhbGx5RnVuZFRlcm0udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc21hcnRfdHJhbnNmZXJfbWFudWFsbHlfZnVuZF90ZXJtX2RpY3QgPSBzbWFydF90cmFuc2Zlcl9tYW51YWxseV9mdW5kX3Rlcm1faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJNYW51YWxseUZ1bmRUZXJtIGZyb20gYSBkaWN0CnNtYXJ0X3RyYW5zZmVyX21hbnVhbGx5X2Z1bmRfdGVybV9mcm9tX2RpY3QgPSBTbWFydFRyYW5zZmVyTWFudWFsbHlGdW5kVGVybS5mcm9tX2RpY3Qoc21hcnRfdHJhbnNmZXJfbWFudWFsbHlfZnVuZF90ZXJtX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SmartTransferNotFoundResponse.md b/docs/SmartTransferNotFoundResponse.md index 4e0f33f7..52544f62 100644 --- a/docs/SmartTransferNotFoundResponse.md +++ b/docs/SmartTransferNotFoundResponse.md @@ -1,30 +1 @@ -# SmartTransferNotFoundResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Not found error message | -**code** | **str** | Error code | - -## Example - -```python -from fireblocks.models.smart_transfer_not_found_response import SmartTransferNotFoundResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferNotFoundResponse from a JSON string -smart_transfer_not_found_response_instance = SmartTransferNotFoundResponse.from_json(json) -# print the JSON string representation of the object -print(SmartTransferNotFoundResponse.to_json()) - -# convert the object into a dict -smart_transfer_not_found_response_dict = smart_transfer_not_found_response_instance.to_dict() -# create an instance of SmartTransferNotFoundResponse from a dict -smart_transfer_not_found_response_from_dict = SmartTransferNotFoundResponse.from_dict(smart_transfer_not_found_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyTm90Rm91bmRSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiptZXNzYWdlKiogfCAqKnN0cioqIHwgTm90IGZvdW5kIGVycm9yIG1lc3NhZ2UgfCAKKipjb2RlKiogfCAqKnN0cioqIHwgRXJyb3IgY29kZSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfbm90X2ZvdW5kX3Jlc3BvbnNlIGltcG9ydCBTbWFydFRyYW5zZmVyTm90Rm91bmRSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2Zlck5vdEZvdW5kUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnNtYXJ0X3RyYW5zZmVyX25vdF9mb3VuZF9yZXNwb25zZV9pbnN0YW5jZSA9IFNtYXJ0VHJhbnNmZXJOb3RGb3VuZFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNtYXJ0VHJhbnNmZXJOb3RGb3VuZFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNtYXJ0X3RyYW5zZmVyX25vdF9mb3VuZF9yZXNwb25zZV9kaWN0ID0gc21hcnRfdHJhbnNmZXJfbm90X2ZvdW5kX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyTm90Rm91bmRSZXNwb25zZSBmcm9tIGEgZGljdApzbWFydF90cmFuc2Zlcl9ub3RfZm91bmRfcmVzcG9uc2VfZnJvbV9kaWN0ID0gU21hcnRUcmFuc2Zlck5vdEZvdW5kUmVzcG9uc2UuZnJvbV9kaWN0KHNtYXJ0X3RyYW5zZmVyX25vdF9mb3VuZF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SmartTransferSetTicketExpiration.md b/docs/SmartTransferSetTicketExpiration.md index eed8c133..7385eeb5 100644 --- a/docs/SmartTransferSetTicketExpiration.md +++ b/docs/SmartTransferSetTicketExpiration.md @@ -1,29 +1 @@ -# SmartTransferSetTicketExpiration - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**expires_in** | **float** | Sets ticket expiration time (in hours) after a ticket is submitted. If no funding source is set to any term, the ticket will automatically expire after given time. | - -## Example - -```python -from fireblocks.models.smart_transfer_set_ticket_expiration import SmartTransferSetTicketExpiration - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferSetTicketExpiration from a JSON string -smart_transfer_set_ticket_expiration_instance = SmartTransferSetTicketExpiration.from_json(json) -# print the JSON string representation of the object -print(SmartTransferSetTicketExpiration.to_json()) - -# convert the object into a dict -smart_transfer_set_ticket_expiration_dict = smart_transfer_set_ticket_expiration_instance.to_dict() -# create an instance of SmartTransferSetTicketExpiration from a dict -smart_transfer_set_ticket_expiration_from_dict = SmartTransferSetTicketExpiration.from_dict(smart_transfer_set_ticket_expiration_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyU2V0VGlja2V0RXhwaXJhdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipleHBpcmVzX2luKiogfCAqKmZsb2F0KiogfCBTZXRzIHRpY2tldCBleHBpcmF0aW9uIHRpbWUgKGluIGhvdXJzKSBhZnRlciBhIHRpY2tldCBpcyBzdWJtaXR0ZWQuIElmIG5vIGZ1bmRpbmcgc291cmNlIGlzIHNldCB0byBhbnkgdGVybSwgdGhlIHRpY2tldCB3aWxsIGF1dG9tYXRpY2FsbHkgZXhwaXJlIGFmdGVyIGdpdmVuIHRpbWUuIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9zZXRfdGlja2V0X2V4cGlyYXRpb24gaW1wb3J0IFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHBpcmF0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyU2V0VGlja2V0RXhwaXJhdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmcKc21hcnRfdHJhbnNmZXJfc2V0X3RpY2tldF9leHBpcmF0aW9uX2luc3RhbmNlID0gU21hcnRUcmFuc2ZlclNldFRpY2tldEV4cGlyYXRpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU21hcnRUcmFuc2ZlclNldFRpY2tldEV4cGlyYXRpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc21hcnRfdHJhbnNmZXJfc2V0X3RpY2tldF9leHBpcmF0aW9uX2RpY3QgPSBzbWFydF90cmFuc2Zlcl9zZXRfdGlja2V0X2V4cGlyYXRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHBpcmF0aW9uIGZyb20gYSBkaWN0CnNtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXhwaXJhdGlvbl9mcm9tX2RpY3QgPSBTbWFydFRyYW5zZmVyU2V0VGlja2V0RXhwaXJhdGlvbi5mcm9tX2RpY3Qoc21hcnRfdHJhbnNmZXJfc2V0X3RpY2tldF9leHBpcmF0aW9uX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SmartTransferSetTicketExternalId.md b/docs/SmartTransferSetTicketExternalId.md index 1271cf94..f5df2ed0 100644 --- a/docs/SmartTransferSetTicketExternalId.md +++ b/docs/SmartTransferSetTicketExternalId.md @@ -1,29 +1 @@ -# SmartTransferSetTicketExternalId - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**external_ref_id** | **str** | Each workspace can set their own external id they want to refer to this Ticket | - -## Example - -```python -from fireblocks.models.smart_transfer_set_ticket_external_id import SmartTransferSetTicketExternalId - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferSetTicketExternalId from a JSON string -smart_transfer_set_ticket_external_id_instance = SmartTransferSetTicketExternalId.from_json(json) -# print the JSON string representation of the object -print(SmartTransferSetTicketExternalId.to_json()) - -# convert the object into a dict -smart_transfer_set_ticket_external_id_dict = smart_transfer_set_ticket_external_id_instance.to_dict() -# create an instance of SmartTransferSetTicketExternalId from a dict -smart_transfer_set_ticket_external_id_from_dict = SmartTransferSetTicketExternalId.from_dict(smart_transfer_set_ticket_external_id_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyU2V0VGlja2V0RXh0ZXJuYWxJZAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipleHRlcm5hbF9yZWZfaWQqKiB8ICoqc3RyKiogfCBFYWNoIHdvcmtzcGFjZSBjYW4gc2V0IHRoZWlyIG93biBleHRlcm5hbCBpZCB0aGV5IHdhbnQgdG8gcmVmZXIgdG8gdGhpcyBUaWNrZXQgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXh0ZXJuYWxfaWQgaW1wb3J0IFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHRlcm5hbElkCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyU2V0VGlja2V0RXh0ZXJuYWxJZCBmcm9tIGEgSlNPTiBzdHJpbmcKc21hcnRfdHJhbnNmZXJfc2V0X3RpY2tldF9leHRlcm5hbF9pZF9pbnN0YW5jZSA9IFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHRlcm5hbElkLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHRlcm5hbElkLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXh0ZXJuYWxfaWRfZGljdCA9IHNtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXh0ZXJuYWxfaWRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHRlcm5hbElkIGZyb20gYSBkaWN0CnNtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXh0ZXJuYWxfaWRfZnJvbV9kaWN0ID0gU21hcnRUcmFuc2ZlclNldFRpY2tldEV4dGVybmFsSWQuZnJvbV9kaWN0KHNtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXh0ZXJuYWxfaWRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SmartTransferSetUserGroups.md b/docs/SmartTransferSetUserGroups.md index 899509fa..cf546e40 100644 --- a/docs/SmartTransferSetUserGroups.md +++ b/docs/SmartTransferSetUserGroups.md @@ -1,29 +1 @@ -# SmartTransferSetUserGroups - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**user_group_ids** | **List[str]** | | - -## Example - -```python -from fireblocks.models.smart_transfer_set_user_groups import SmartTransferSetUserGroups - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferSetUserGroups from a JSON string -smart_transfer_set_user_groups_instance = SmartTransferSetUserGroups.from_json(json) -# print the JSON string representation of the object -print(SmartTransferSetUserGroups.to_json()) - -# convert the object into a dict -smart_transfer_set_user_groups_dict = smart_transfer_set_user_groups_instance.to_dict() -# create an instance of SmartTransferSetUserGroups from a dict -smart_transfer_set_user_groups_from_dict = SmartTransferSetUserGroups.from_dict(smart_transfer_set_user_groups_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyU2V0VXNlckdyb3VwcwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip1c2VyX2dyb3VwX2lkcyoqIHwgKipMaXN0W3N0cl0qKiB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfc2V0X3VzZXJfZ3JvdXBzIGltcG9ydCBTbWFydFRyYW5zZmVyU2V0VXNlckdyb3VwcwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclNldFVzZXJHcm91cHMgZnJvbSBhIEpTT04gc3RyaW5nCnNtYXJ0X3RyYW5zZmVyX3NldF91c2VyX2dyb3Vwc19pbnN0YW5jZSA9IFNtYXJ0VHJhbnNmZXJTZXRVc2VyR3JvdXBzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNtYXJ0VHJhbnNmZXJTZXRVc2VyR3JvdXBzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNtYXJ0X3RyYW5zZmVyX3NldF91c2VyX2dyb3Vwc19kaWN0ID0gc21hcnRfdHJhbnNmZXJfc2V0X3VzZXJfZ3JvdXBzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyU2V0VXNlckdyb3VwcyBmcm9tIGEgZGljdApzbWFydF90cmFuc2Zlcl9zZXRfdXNlcl9ncm91cHNfZnJvbV9kaWN0ID0gU21hcnRUcmFuc2ZlclNldFVzZXJHcm91cHMuZnJvbV9kaWN0KHNtYXJ0X3RyYW5zZmVyX3NldF91c2VyX2dyb3Vwc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SmartTransferStatistic.md b/docs/SmartTransferStatistic.md index b82b28d0..a045fe32 100644 --- a/docs/SmartTransferStatistic.md +++ b/docs/SmartTransferStatistic.md @@ -1,33 +1 @@ -# SmartTransferStatistic - -Smart transfers statistic - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**inflow** | [**SmartTransferStatisticInflow**](SmartTransferStatisticInflow.md) | | -**outflow** | [**SmartTransferStatisticOutflow**](SmartTransferStatisticOutflow.md) | | -**total_active_tickets** | **int** | Number of total active tickets | -**total_inactive_tickets** | **int** | Number of total inactive tickets (expired, canceled, completed) | - -## Example - -```python -from fireblocks.models.smart_transfer_statistic import SmartTransferStatistic - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferStatistic from a JSON string -smart_transfer_statistic_instance = SmartTransferStatistic.from_json(json) -# print the JSON string representation of the object -print(SmartTransferStatistic.to_json()) - -# convert the object into a dict -smart_transfer_statistic_dict = smart_transfer_statistic_instance.to_dict() -# create an instance of SmartTransferStatistic from a dict -smart_transfer_statistic_from_dict = SmartTransferStatistic.from_dict(smart_transfer_statistic_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyU3RhdGlzdGljCgpTbWFydCB0cmFuc2ZlcnMgc3RhdGlzdGljCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaW5mbG93KiogfCBbKipTbWFydFRyYW5zZmVyU3RhdGlzdGljSW5mbG93KipdKFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWNJbmZsb3cubWQpIHwgIHwgCioqb3V0ZmxvdyoqIHwgWyoqU21hcnRUcmFuc2ZlclN0YXRpc3RpY091dGZsb3cqKl0oU21hcnRUcmFuc2ZlclN0YXRpc3RpY091dGZsb3cubWQpIHwgIHwgCioqdG90YWxfYWN0aXZlX3RpY2tldHMqKiB8ICoqaW50KiogfCBOdW1iZXIgb2YgdG90YWwgYWN0aXZlIHRpY2tldHMgfCAKKip0b3RhbF9pbmFjdGl2ZV90aWNrZXRzKiogfCAqKmludCoqIHwgTnVtYmVyIG9mIHRvdGFsIGluYWN0aXZlIHRpY2tldHMgKGV4cGlyZWQsIGNhbmNlbGVkLCBjb21wbGV0ZWQpIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9zdGF0aXN0aWMgaW1wb3J0IFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWMgZnJvbSBhIEpTT04gc3RyaW5nCnNtYXJ0X3RyYW5zZmVyX3N0YXRpc3RpY19pbnN0YW5jZSA9IFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU21hcnRUcmFuc2ZlclN0YXRpc3RpYy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzbWFydF90cmFuc2Zlcl9zdGF0aXN0aWNfZGljdCA9IHNtYXJ0X3RyYW5zZmVyX3N0YXRpc3RpY19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclN0YXRpc3RpYyBmcm9tIGEgZGljdApzbWFydF90cmFuc2Zlcl9zdGF0aXN0aWNfZnJvbV9kaWN0ID0gU21hcnRUcmFuc2ZlclN0YXRpc3RpYy5mcm9tX2RpY3Qoc21hcnRfdHJhbnNmZXJfc3RhdGlzdGljX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SmartTransferStatisticInflow.md b/docs/SmartTransferStatisticInflow.md index a1b1b6ea..954c6052 100644 --- a/docs/SmartTransferStatisticInflow.md +++ b/docs/SmartTransferStatisticInflow.md @@ -1,31 +1 @@ -# SmartTransferStatisticInflow - -Inflow tickets data - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**coins** | [**List[SmartTransferCoinStatistic]**](SmartTransferCoinStatistic.md) | | [optional] -**ticket_count** | **int** | | [optional] - -## Example - -```python -from fireblocks.models.smart_transfer_statistic_inflow import SmartTransferStatisticInflow - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferStatisticInflow from a JSON string -smart_transfer_statistic_inflow_instance = SmartTransferStatisticInflow.from_json(json) -# print the JSON string representation of the object -print(SmartTransferStatisticInflow.to_json()) - -# convert the object into a dict -smart_transfer_statistic_inflow_dict = smart_transfer_statistic_inflow_instance.to_dict() -# create an instance of SmartTransferStatisticInflow from a dict -smart_transfer_statistic_inflow_from_dict = SmartTransferStatisticInflow.from_dict(smart_transfer_statistic_inflow_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyU3RhdGlzdGljSW5mbG93CgpJbmZsb3cgdGlja2V0cyBkYXRhCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqY29pbnMqKiB8IFsqKkxpc3RbU21hcnRUcmFuc2ZlckNvaW5TdGF0aXN0aWNdKipdKFNtYXJ0VHJhbnNmZXJDb2luU3RhdGlzdGljLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqdGlja2V0X2NvdW50KiogfCAqKmludCoqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3N0YXRpc3RpY19pbmZsb3cgaW1wb3J0IFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWNJbmZsb3cKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWNJbmZsb3cgZnJvbSBhIEpTT04gc3RyaW5nCnNtYXJ0X3RyYW5zZmVyX3N0YXRpc3RpY19pbmZsb3dfaW5zdGFuY2UgPSBTbWFydFRyYW5zZmVyU3RhdGlzdGljSW5mbG93LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWNJbmZsb3cudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc21hcnRfdHJhbnNmZXJfc3RhdGlzdGljX2luZmxvd19kaWN0ID0gc21hcnRfdHJhbnNmZXJfc3RhdGlzdGljX2luZmxvd19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclN0YXRpc3RpY0luZmxvdyBmcm9tIGEgZGljdApzbWFydF90cmFuc2Zlcl9zdGF0aXN0aWNfaW5mbG93X2Zyb21fZGljdCA9IFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWNJbmZsb3cuZnJvbV9kaWN0KHNtYXJ0X3RyYW5zZmVyX3N0YXRpc3RpY19pbmZsb3dfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SmartTransferStatisticOutflow.md b/docs/SmartTransferStatisticOutflow.md index 2ef76d5e..9bb427b5 100644 --- a/docs/SmartTransferStatisticOutflow.md +++ b/docs/SmartTransferStatisticOutflow.md @@ -1,31 +1 @@ -# SmartTransferStatisticOutflow - -Outflow tickets data - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**coins** | [**List[SmartTransferCoinStatistic]**](SmartTransferCoinStatistic.md) | | [optional] -**ticket_count** | **int** | | [optional] - -## Example - -```python -from fireblocks.models.smart_transfer_statistic_outflow import SmartTransferStatisticOutflow - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferStatisticOutflow from a JSON string -smart_transfer_statistic_outflow_instance = SmartTransferStatisticOutflow.from_json(json) -# print the JSON string representation of the object -print(SmartTransferStatisticOutflow.to_json()) - -# convert the object into a dict -smart_transfer_statistic_outflow_dict = smart_transfer_statistic_outflow_instance.to_dict() -# create an instance of SmartTransferStatisticOutflow from a dict -smart_transfer_statistic_outflow_from_dict = SmartTransferStatisticOutflow.from_dict(smart_transfer_statistic_outflow_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyU3RhdGlzdGljT3V0ZmxvdwoKT3V0ZmxvdyB0aWNrZXRzIGRhdGEKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipjb2lucyoqIHwgWyoqTGlzdFtTbWFydFRyYW5zZmVyQ29pblN0YXRpc3RpY10qKl0oU21hcnRUcmFuc2ZlckNvaW5TdGF0aXN0aWMubWQpIHwgIHwgW29wdGlvbmFsXSAKKip0aWNrZXRfY291bnQqKiB8ICoqaW50KiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfc3RhdGlzdGljX291dGZsb3cgaW1wb3J0IFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWNPdXRmbG93CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyU3RhdGlzdGljT3V0ZmxvdyBmcm9tIGEgSlNPTiBzdHJpbmcKc21hcnRfdHJhbnNmZXJfc3RhdGlzdGljX291dGZsb3dfaW5zdGFuY2UgPSBTbWFydFRyYW5zZmVyU3RhdGlzdGljT3V0Zmxvdy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTbWFydFRyYW5zZmVyU3RhdGlzdGljT3V0Zmxvdy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzbWFydF90cmFuc2Zlcl9zdGF0aXN0aWNfb3V0Zmxvd19kaWN0ID0gc21hcnRfdHJhbnNmZXJfc3RhdGlzdGljX291dGZsb3dfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWNPdXRmbG93IGZyb20gYSBkaWN0CnNtYXJ0X3RyYW5zZmVyX3N0YXRpc3RpY19vdXRmbG93X2Zyb21fZGljdCA9IFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWNPdXRmbG93LmZyb21fZGljdChzbWFydF90cmFuc2Zlcl9zdGF0aXN0aWNfb3V0Zmxvd19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SmartTransferSubmitTicket.md b/docs/SmartTransferSubmitTicket.md index d8c4dae5..c131754b 100644 --- a/docs/SmartTransferSubmitTicket.md +++ b/docs/SmartTransferSubmitTicket.md @@ -1,29 +1 @@ -# SmartTransferSubmitTicket - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**expires_in** | **float** | Sets the ticket expiration time (in hours) after the ticket is submitted. If no funding source is set for any term, the ticket will automatically expire after given time. If expiresIn is not sent ticket will not expire. | [optional] - -## Example - -```python -from fireblocks.models.smart_transfer_submit_ticket import SmartTransferSubmitTicket - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferSubmitTicket from a JSON string -smart_transfer_submit_ticket_instance = SmartTransferSubmitTicket.from_json(json) -# print the JSON string representation of the object -print(SmartTransferSubmitTicket.to_json()) - -# convert the object into a dict -smart_transfer_submit_ticket_dict = smart_transfer_submit_ticket_instance.to_dict() -# create an instance of SmartTransferSubmitTicket from a dict -smart_transfer_submit_ticket_from_dict = SmartTransferSubmitTicket.from_dict(smart_transfer_submit_ticket_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyU3VibWl0VGlja2V0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmV4cGlyZXNfaW4qKiB8ICoqZmxvYXQqKiB8IFNldHMgdGhlIHRpY2tldCBleHBpcmF0aW9uIHRpbWUgKGluIGhvdXJzKSBhZnRlciB0aGUgdGlja2V0IGlzIHN1Ym1pdHRlZC4gSWYgbm8gZnVuZGluZyBzb3VyY2UgaXMgc2V0IGZvciBhbnkgdGVybSwgdGhlIHRpY2tldCB3aWxsIGF1dG9tYXRpY2FsbHkgZXhwaXJlIGFmdGVyIGdpdmVuIHRpbWUuIElmIGV4cGlyZXNJbiBpcyBub3Qgc2VudCB0aWNrZXQgd2lsbCBub3QgZXhwaXJlLiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9zdWJtaXRfdGlja2V0IGltcG9ydCBTbWFydFRyYW5zZmVyU3VibWl0VGlja2V0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyU3VibWl0VGlja2V0IGZyb20gYSBKU09OIHN0cmluZwpzbWFydF90cmFuc2Zlcl9zdWJtaXRfdGlja2V0X2luc3RhbmNlID0gU21hcnRUcmFuc2ZlclN1Ym1pdFRpY2tldC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTbWFydFRyYW5zZmVyU3VibWl0VGlja2V0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNtYXJ0X3RyYW5zZmVyX3N1Ym1pdF90aWNrZXRfZGljdCA9IHNtYXJ0X3RyYW5zZmVyX3N1Ym1pdF90aWNrZXRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJTdWJtaXRUaWNrZXQgZnJvbSBhIGRpY3QKc21hcnRfdHJhbnNmZXJfc3VibWl0X3RpY2tldF9mcm9tX2RpY3QgPSBTbWFydFRyYW5zZmVyU3VibWl0VGlja2V0LmZyb21fZGljdChzbWFydF90cmFuc2Zlcl9zdWJtaXRfdGlja2V0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SmartTransferTicket.md b/docs/SmartTransferTicket.md index 4c7e8284..6493fd66 100644 --- a/docs/SmartTransferTicket.md +++ b/docs/SmartTransferTicket.md @@ -1,51 +1 @@ -# SmartTransferTicket - -Data object with result data - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | Unique id of Smart Transfer ticket | -**type** | **str** | Kind of Smart Transfer. Can be either `ASYNC` or `DVP` | -**direction** | **str** | Direction of Smart Transfer. | [optional] -**status** | **str** | Current status of Smart Transfer ticket | -**dvp_execution_status** | **str** | Current status of DVP execution | [optional] -**order_created_by_network_id** | **str** | ID of network profile that created order | [optional] -**terms** | [**List[SmartTransferTicketTerm]**](SmartTransferTicketTerm.md) | Ticket terms (legs) | [optional] -**expires_in** | **float** | Number of hours for expiration.This data is valid only it ticket not in DRAFT state and it will be used to calculate expiresAt value | [optional] -**expires_at** | **datetime** | Date and time at which the ticket will expire if no funding is performed. | [optional] -**submitted_at** | **datetime** | Date and time when ticket is submitted. | [optional] -**expired_at** | **datetime** | Date and time when ticket is expired. | [optional] -**canceled_at** | **datetime** | Date and time when ticket is canceled. | [optional] -**fulfilled_at** | **datetime** | Date and time when ticket is fulfilled. | [optional] -**external_ref_id** | **str** | External Ref ID for Smart Transfer ticket. | [optional] -**note** | **str** | Note | [optional] -**created_by_network_id** | **str** | ID of network profile that created ticket | -**created_by_network_id_name** | **str** | Name of network profile that created ticket | -**canceled_by_network_id_name** | **str** | Name of network profile that canceled ticket | [optional] -**created_at** | **datetime** | Date and time at which the ticket is created. | -**updated_at** | **datetime** | Date and time of last ticket update. | -**canceled_by_me** | **bool** | | [optional] -**created_by_me** | **bool** | | [optional] - -## Example - -```python -from fireblocks.models.smart_transfer_ticket import SmartTransferTicket - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferTicket from a JSON string -smart_transfer_ticket_instance = SmartTransferTicket.from_json(json) -# print the JSON string representation of the object -print(SmartTransferTicket.to_json()) - -# convert the object into a dict -smart_transfer_ticket_dict = smart_transfer_ticket_instance.to_dict() -# create an instance of SmartTransferTicket from a dict -smart_transfer_ticket_from_dict = SmartTransferTicket.from_dict(smart_transfer_ticket_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyVGlja2V0CgpEYXRhIG9iamVjdCB3aXRoIHJlc3VsdCBkYXRhCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBVbmlxdWUgaWQgb2YgU21hcnQgVHJhbnNmZXIgdGlja2V0IHwgCioqdHlwZSoqIHwgKipzdHIqKiB8IEtpbmQgb2YgU21hcnQgVHJhbnNmZXIuIENhbiBiZSBlaXRoZXIgJiN4NjA7QVNZTkMmI3g2MDsgb3IgJiN4NjA7RFZQJiN4NjA7IHwgCioqZGlyZWN0aW9uKiogfCAqKnN0cioqIHwgRGlyZWN0aW9uIG9mIFNtYXJ0IFRyYW5zZmVyLiB8IFtvcHRpb25hbF0gCioqc3RhdHVzKiogfCAqKnN0cioqIHwgQ3VycmVudCBzdGF0dXMgb2YgU21hcnQgVHJhbnNmZXIgdGlja2V0IHwgCioqZHZwX2V4ZWN1dGlvbl9zdGF0dXMqKiB8ICoqc3RyKiogfCBDdXJyZW50IHN0YXR1cyBvZiBEVlAgZXhlY3V0aW9uIHwgW29wdGlvbmFsXSAKKipvcmRlcl9jcmVhdGVkX2J5X25ldHdvcmtfaWQqKiB8ICoqc3RyKiogfCBJRCBvZiBuZXR3b3JrIHByb2ZpbGUgdGhhdCBjcmVhdGVkIG9yZGVyIHwgW29wdGlvbmFsXSAKKip0ZXJtcyoqIHwgWyoqTGlzdFtTbWFydFRyYW5zZmVyVGlja2V0VGVybV0qKl0oU21hcnRUcmFuc2ZlclRpY2tldFRlcm0ubWQpIHwgVGlja2V0IHRlcm1zIChsZWdzKSB8IFtvcHRpb25hbF0gCioqZXhwaXJlc19pbioqIHwgKipmbG9hdCoqIHwgTnVtYmVyIG9mIGhvdXJzIGZvciBleHBpcmF0aW9uLlRoaXMgZGF0YSBpcyB2YWxpZCBvbmx5IGl0IHRpY2tldCBub3QgaW4gRFJBRlQgc3RhdGUgYW5kIGl0IHdpbGwgYmUgdXNlZCB0byBjYWxjdWxhdGUgZXhwaXJlc0F0IHZhbHVlIHwgW29wdGlvbmFsXSAKKipleHBpcmVzX2F0KiogfCAqKmRhdGV0aW1lKiogfCBEYXRlIGFuZCB0aW1lIGF0IHdoaWNoIHRoZSB0aWNrZXQgd2lsbCBleHBpcmUgaWYgbm8gZnVuZGluZyBpcyBwZXJmb3JtZWQuIHwgW29wdGlvbmFsXSAKKipzdWJtaXR0ZWRfYXQqKiB8ICoqZGF0ZXRpbWUqKiB8IERhdGUgYW5kIHRpbWUgd2hlbiB0aWNrZXQgaXMgc3VibWl0dGVkLiB8IFtvcHRpb25hbF0gCioqZXhwaXJlZF9hdCoqIHwgKipkYXRldGltZSoqIHwgRGF0ZSBhbmQgdGltZSB3aGVuIHRpY2tldCBpcyBleHBpcmVkLiB8IFtvcHRpb25hbF0gCioqY2FuY2VsZWRfYXQqKiB8ICoqZGF0ZXRpbWUqKiB8IERhdGUgYW5kIHRpbWUgd2hlbiB0aWNrZXQgaXMgY2FuY2VsZWQuIHwgW29wdGlvbmFsXSAKKipmdWxmaWxsZWRfYXQqKiB8ICoqZGF0ZXRpbWUqKiB8IERhdGUgYW5kIHRpbWUgd2hlbiB0aWNrZXQgaXMgZnVsZmlsbGVkLiB8IFtvcHRpb25hbF0gCioqZXh0ZXJuYWxfcmVmX2lkKiogfCAqKnN0cioqIHwgRXh0ZXJuYWwgUmVmIElEIGZvciBTbWFydCBUcmFuc2ZlciB0aWNrZXQuIHwgW29wdGlvbmFsXSAKKipub3RlKiogfCAqKnN0cioqIHwgTm90ZSB8IFtvcHRpb25hbF0gCioqY3JlYXRlZF9ieV9uZXR3b3JrX2lkKiogfCAqKnN0cioqIHwgSUQgb2YgbmV0d29yayBwcm9maWxlIHRoYXQgY3JlYXRlZCB0aWNrZXQgfCAKKipjcmVhdGVkX2J5X25ldHdvcmtfaWRfbmFtZSoqIHwgKipzdHIqKiB8IE5hbWUgb2YgbmV0d29yayBwcm9maWxlIHRoYXQgY3JlYXRlZCB0aWNrZXQgfCAKKipjYW5jZWxlZF9ieV9uZXR3b3JrX2lkX25hbWUqKiB8ICoqc3RyKiogfCBOYW1lIG9mIG5ldHdvcmsgcHJvZmlsZSB0aGF0IGNhbmNlbGVkIHRpY2tldCB8IFtvcHRpb25hbF0gCioqY3JlYXRlZF9hdCoqIHwgKipkYXRldGltZSoqIHwgRGF0ZSBhbmQgdGltZSBhdCB3aGljaCB0aGUgdGlja2V0IGlzIGNyZWF0ZWQuIHwgCioqdXBkYXRlZF9hdCoqIHwgKipkYXRldGltZSoqIHwgRGF0ZSBhbmQgdGltZSBvZiBsYXN0IHRpY2tldCB1cGRhdGUuIHwgCioqY2FuY2VsZWRfYnlfbWUqKiB8ICoqYm9vbCoqIHwgIHwgW29wdGlvbmFsXSAKKipjcmVhdGVkX2J5X21lKiogfCAqKmJvb2wqKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl90aWNrZXQgaW1wb3J0IFNtYXJ0VHJhbnNmZXJUaWNrZXQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJUaWNrZXQgZnJvbSBhIEpTT04gc3RyaW5nCnNtYXJ0X3RyYW5zZmVyX3RpY2tldF9pbnN0YW5jZSA9IFNtYXJ0VHJhbnNmZXJUaWNrZXQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU21hcnRUcmFuc2ZlclRpY2tldC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzbWFydF90cmFuc2Zlcl90aWNrZXRfZGljdCA9IHNtYXJ0X3RyYW5zZmVyX3RpY2tldF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclRpY2tldCBmcm9tIGEgZGljdApzbWFydF90cmFuc2Zlcl90aWNrZXRfZnJvbV9kaWN0ID0gU21hcnRUcmFuc2ZlclRpY2tldC5mcm9tX2RpY3Qoc21hcnRfdHJhbnNmZXJfdGlja2V0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SmartTransferTicketFilteredResponse.md b/docs/SmartTransferTicketFilteredResponse.md index cb171311..4b74f9ba 100644 --- a/docs/SmartTransferTicketFilteredResponse.md +++ b/docs/SmartTransferTicketFilteredResponse.md @@ -1,31 +1 @@ -# SmartTransferTicketFilteredResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Result message | -**after** | **str** | Unique id of next filtered result | -**data** | [**List[SmartTransferTicket]**](SmartTransferTicket.md) | Result that match given query criteria | - -## Example - -```python -from fireblocks.models.smart_transfer_ticket_filtered_response import SmartTransferTicketFilteredResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferTicketFilteredResponse from a JSON string -smart_transfer_ticket_filtered_response_instance = SmartTransferTicketFilteredResponse.from_json(json) -# print the JSON string representation of the object -print(SmartTransferTicketFilteredResponse.to_json()) - -# convert the object into a dict -smart_transfer_ticket_filtered_response_dict = smart_transfer_ticket_filtered_response_instance.to_dict() -# create an instance of SmartTransferTicketFilteredResponse from a dict -smart_transfer_ticket_filtered_response_from_dict = SmartTransferTicketFilteredResponse.from_dict(smart_transfer_ticket_filtered_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyVGlja2V0RmlsdGVyZWRSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiptZXNzYWdlKiogfCAqKnN0cioqIHwgUmVzdWx0IG1lc3NhZ2UgfCAKKiphZnRlcioqIHwgKipzdHIqKiB8IFVuaXF1ZSBpZCBvZiBuZXh0IGZpbHRlcmVkIHJlc3VsdCB8IAoqKmRhdGEqKiB8IFsqKkxpc3RbU21hcnRUcmFuc2ZlclRpY2tldF0qKl0oU21hcnRUcmFuc2ZlclRpY2tldC5tZCkgfCBSZXN1bHQgdGhhdCBtYXRjaCBnaXZlbiBxdWVyeSBjcml0ZXJpYSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfdGlja2V0X2ZpbHRlcmVkX3Jlc3BvbnNlIGltcG9ydCBTbWFydFRyYW5zZmVyVGlja2V0RmlsdGVyZWRSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclRpY2tldEZpbHRlcmVkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnNtYXJ0X3RyYW5zZmVyX3RpY2tldF9maWx0ZXJlZF9yZXNwb25zZV9pbnN0YW5jZSA9IFNtYXJ0VHJhbnNmZXJUaWNrZXRGaWx0ZXJlZFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNtYXJ0VHJhbnNmZXJUaWNrZXRGaWx0ZXJlZFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNtYXJ0X3RyYW5zZmVyX3RpY2tldF9maWx0ZXJlZF9yZXNwb25zZV9kaWN0ID0gc21hcnRfdHJhbnNmZXJfdGlja2V0X2ZpbHRlcmVkX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyVGlja2V0RmlsdGVyZWRSZXNwb25zZSBmcm9tIGEgZGljdApzbWFydF90cmFuc2Zlcl90aWNrZXRfZmlsdGVyZWRfcmVzcG9uc2VfZnJvbV9kaWN0ID0gU21hcnRUcmFuc2ZlclRpY2tldEZpbHRlcmVkUmVzcG9uc2UuZnJvbV9kaWN0KHNtYXJ0X3RyYW5zZmVyX3RpY2tldF9maWx0ZXJlZF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SmartTransferTicketResponse.md b/docs/SmartTransferTicketResponse.md index c2512725..5c69f313 100644 --- a/docs/SmartTransferTicketResponse.md +++ b/docs/SmartTransferTicketResponse.md @@ -1,30 +1 @@ -# SmartTransferTicketResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Result message | -**data** | [**SmartTransferTicket**](SmartTransferTicket.md) | | [optional] - -## Example - -```python -from fireblocks.models.smart_transfer_ticket_response import SmartTransferTicketResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferTicketResponse from a JSON string -smart_transfer_ticket_response_instance = SmartTransferTicketResponse.from_json(json) -# print the JSON string representation of the object -print(SmartTransferTicketResponse.to_json()) - -# convert the object into a dict -smart_transfer_ticket_response_dict = smart_transfer_ticket_response_instance.to_dict() -# create an instance of SmartTransferTicketResponse from a dict -smart_transfer_ticket_response_from_dict = SmartTransferTicketResponse.from_dict(smart_transfer_ticket_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbWVzc2FnZSoqIHwgKipzdHIqKiB8IFJlc3VsdCBtZXNzYWdlIHwgCioqZGF0YSoqIHwgWyoqU21hcnRUcmFuc2ZlclRpY2tldCoqXShTbWFydFRyYW5zZmVyVGlja2V0Lm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl90aWNrZXRfcmVzcG9uc2UgaW1wb3J0IFNtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwpzbWFydF90cmFuc2Zlcl90aWNrZXRfcmVzcG9uc2VfaW5zdGFuY2UgPSBTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNtYXJ0X3RyYW5zZmVyX3RpY2tldF9yZXNwb25zZV9kaWN0ID0gc21hcnRfdHJhbnNmZXJfdGlja2V0X3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UgZnJvbSBhIGRpY3QKc21hcnRfdHJhbnNmZXJfdGlja2V0X3Jlc3BvbnNlX2Zyb21fZGljdCA9IFNtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZS5mcm9tX2RpY3Qoc21hcnRfdHJhbnNmZXJfdGlja2V0X3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SmartTransferTicketTerm.md b/docs/SmartTransferTicketTerm.md index 263bd76a..9b19d95c 100644 --- a/docs/SmartTransferTicketTerm.md +++ b/docs/SmartTransferTicketTerm.md @@ -1,45 +1 @@ -# SmartTransferTicketTerm - -Data object with result data - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | Unique id of Smart Transfer ticket term | -**ticket_id** | **str** | Unique id of Smart Transfer ticket | -**asset** | **str** | Asset name | -**amount** | **str** | Amount | -**dvp_src_dst_vault_id** | **str** | Identifier of the source and destination vault for DVP execution | [optional] -**amount_usd** | **str** | Amount USD | [optional] -**from_network_id** | **str** | Identifier of the origination Network Profile | -**from_network_id_name** | **str** | Source network name | -**to_network_id** | **str** | Identifier of the destination Network Profile | -**to_network_id_name** | **str** | Destination network name | -**tx_hash** | **str** | Blockchain TX hash | -**fb_tx_id** | **str** | Fireblocks transaction ID. It is set when the funding transaction is created. | -**tx_status** | **str** | Ticket term transaction status | -**status** | **str** | Ticket term status | -**created_at** | **datetime** | Date and time when the term is created. | -**updated_at** | **datetime** | Date and time of last term update. | - -## Example - -```python -from fireblocks.models.smart_transfer_ticket_term import SmartTransferTicketTerm - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferTicketTerm from a JSON string -smart_transfer_ticket_term_instance = SmartTransferTicketTerm.from_json(json) -# print the JSON string representation of the object -print(SmartTransferTicketTerm.to_json()) - -# convert the object into a dict -smart_transfer_ticket_term_dict = smart_transfer_ticket_term_instance.to_dict() -# create an instance of SmartTransferTicketTerm from a dict -smart_transfer_ticket_term_from_dict = SmartTransferTicketTerm.from_dict(smart_transfer_ticket_term_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyVGlja2V0VGVybQoKRGF0YSBvYmplY3Qgd2l0aCByZXN1bHQgZGF0YQoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgVW5pcXVlIGlkIG9mIFNtYXJ0IFRyYW5zZmVyIHRpY2tldCB0ZXJtIHwgCioqdGlja2V0X2lkKiogfCAqKnN0cioqIHwgVW5pcXVlIGlkIG9mIFNtYXJ0IFRyYW5zZmVyIHRpY2tldCB8IAoqKmFzc2V0KiogfCAqKnN0cioqIHwgQXNzZXQgbmFtZSB8IAoqKmFtb3VudCoqIHwgKipzdHIqKiB8IEFtb3VudCB8IAoqKmR2cF9zcmNfZHN0X3ZhdWx0X2lkKiogfCAqKnN0cioqIHwgSWRlbnRpZmllciBvZiB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiB2YXVsdCBmb3IgRFZQIGV4ZWN1dGlvbiB8IFtvcHRpb25hbF0gCioqYW1vdW50X3VzZCoqIHwgKipzdHIqKiB8IEFtb3VudCBVU0QgfCBbb3B0aW9uYWxdIAoqKmZyb21fbmV0d29ya19pZCoqIHwgKipzdHIqKiB8IElkZW50aWZpZXIgb2YgdGhlIG9yaWdpbmF0aW9uIE5ldHdvcmsgUHJvZmlsZSB8IAoqKmZyb21fbmV0d29ya19pZF9uYW1lKiogfCAqKnN0cioqIHwgU291cmNlIG5ldHdvcmsgbmFtZSB8IAoqKnRvX25ldHdvcmtfaWQqKiB8ICoqc3RyKiogfCBJZGVudGlmaWVyIG9mIHRoZSBkZXN0aW5hdGlvbiBOZXR3b3JrIFByb2ZpbGUgfCAKKip0b19uZXR3b3JrX2lkX25hbWUqKiB8ICoqc3RyKiogfCBEZXN0aW5hdGlvbiBuZXR3b3JrIG5hbWUgfCAKKip0eF9oYXNoKiogfCAqKnN0cioqIHwgQmxvY2tjaGFpbiBUWCBoYXNoIHwgCioqZmJfdHhfaWQqKiB8ICoqc3RyKiogfCBGaXJlYmxvY2tzIHRyYW5zYWN0aW9uIElELiBJdCBpcyBzZXQgd2hlbiB0aGUgZnVuZGluZyB0cmFuc2FjdGlvbiBpcyBjcmVhdGVkLiB8IAoqKnR4X3N0YXR1cyoqIHwgKipzdHIqKiB8IFRpY2tldCB0ZXJtIHRyYW5zYWN0aW9uIHN0YXR1cyB8IAoqKnN0YXR1cyoqIHwgKipzdHIqKiB8IFRpY2tldCB0ZXJtIHN0YXR1cyB8IAoqKmNyZWF0ZWRfYXQqKiB8ICoqZGF0ZXRpbWUqKiB8IERhdGUgYW5kIHRpbWUgd2hlbiB0aGUgdGVybSBpcyBjcmVhdGVkLiB8IAoqKnVwZGF0ZWRfYXQqKiB8ICoqZGF0ZXRpbWUqKiB8IERhdGUgYW5kIHRpbWUgb2YgbGFzdCB0ZXJtIHVwZGF0ZS4gfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldF90ZXJtIGltcG9ydCBTbWFydFRyYW5zZmVyVGlja2V0VGVybQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclRpY2tldFRlcm0gZnJvbSBhIEpTT04gc3RyaW5nCnNtYXJ0X3RyYW5zZmVyX3RpY2tldF90ZXJtX2luc3RhbmNlID0gU21hcnRUcmFuc2ZlclRpY2tldFRlcm0uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU21hcnRUcmFuc2ZlclRpY2tldFRlcm0udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc21hcnRfdHJhbnNmZXJfdGlja2V0X3Rlcm1fZGljdCA9IHNtYXJ0X3RyYW5zZmVyX3RpY2tldF90ZXJtX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyVGlja2V0VGVybSBmcm9tIGEgZGljdApzbWFydF90cmFuc2Zlcl90aWNrZXRfdGVybV9mcm9tX2RpY3QgPSBTbWFydFRyYW5zZmVyVGlja2V0VGVybS5mcm9tX2RpY3Qoc21hcnRfdHJhbnNmZXJfdGlja2V0X3Rlcm1fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SmartTransferTicketTermResponse.md b/docs/SmartTransferTicketTermResponse.md index 5e425ab8..3f33c564 100644 --- a/docs/SmartTransferTicketTermResponse.md +++ b/docs/SmartTransferTicketTermResponse.md @@ -1,30 +1 @@ -# SmartTransferTicketTermResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Result message | -**data** | [**SmartTransferTicketTerm**](SmartTransferTicketTerm.md) | | [optional] - -## Example - -```python -from fireblocks.models.smart_transfer_ticket_term_response import SmartTransferTicketTermResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferTicketTermResponse from a JSON string -smart_transfer_ticket_term_response_instance = SmartTransferTicketTermResponse.from_json(json) -# print the JSON string representation of the object -print(SmartTransferTicketTermResponse.to_json()) - -# convert the object into a dict -smart_transfer_ticket_term_response_dict = smart_transfer_ticket_term_response_instance.to_dict() -# create an instance of SmartTransferTicketTermResponse from a dict -smart_transfer_ticket_term_response_from_dict = SmartTransferTicketTermResponse.from_dict(smart_transfer_ticket_term_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm1lc3NhZ2UqKiB8ICoqc3RyKiogfCBSZXN1bHQgbWVzc2FnZSB8IAoqKmRhdGEqKiB8IFsqKlNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtKipdKFNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl90aWNrZXRfdGVybV9yZXNwb25zZSBpbXBvcnQgU21hcnRUcmFuc2ZlclRpY2tldFRlcm1SZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclRpY2tldFRlcm1SZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKc21hcnRfdHJhbnNmZXJfdGlja2V0X3Rlcm1fcmVzcG9uc2VfaW5zdGFuY2UgPSBTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc21hcnRfdHJhbnNmZXJfdGlja2V0X3Rlcm1fcmVzcG9uc2VfZGljdCA9IHNtYXJ0X3RyYW5zZmVyX3RpY2tldF90ZXJtX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlIGZyb20gYSBkaWN0CnNtYXJ0X3RyYW5zZmVyX3RpY2tldF90ZXJtX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2UuZnJvbV9kaWN0KHNtYXJ0X3RyYW5zZmVyX3RpY2tldF90ZXJtX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SmartTransferUpdateTicketTerm.md b/docs/SmartTransferUpdateTicketTerm.md index a6edfde1..dcf3a4f1 100644 --- a/docs/SmartTransferUpdateTicketTerm.md +++ b/docs/SmartTransferUpdateTicketTerm.md @@ -1,32 +1 @@ -# SmartTransferUpdateTicketTerm - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**asset** | **str** | Asset name | -**amount** | **str** | Amount | -**from_network_id** | **str** | Identifier of the origination Network Profile | -**to_network_id** | **str** | Identifier of the destination Network Profile | - -## Example - -```python -from fireblocks.models.smart_transfer_update_ticket_term import SmartTransferUpdateTicketTerm - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferUpdateTicketTerm from a JSON string -smart_transfer_update_ticket_term_instance = SmartTransferUpdateTicketTerm.from_json(json) -# print the JSON string representation of the object -print(SmartTransferUpdateTicketTerm.to_json()) - -# convert the object into a dict -smart_transfer_update_ticket_term_dict = smart_transfer_update_ticket_term_instance.to_dict() -# create an instance of SmartTransferUpdateTicketTerm from a dict -smart_transfer_update_ticket_term_from_dict = SmartTransferUpdateTicketTerm.from_dict(smart_transfer_update_ticket_term_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyVXBkYXRlVGlja2V0VGVybQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphc3NldCoqIHwgKipzdHIqKiB8IEFzc2V0IG5hbWUgfCAKKiphbW91bnQqKiB8ICoqc3RyKiogfCBBbW91bnQgfCAKKipmcm9tX25ldHdvcmtfaWQqKiB8ICoqc3RyKiogfCBJZGVudGlmaWVyIG9mIHRoZSBvcmlnaW5hdGlvbiBOZXR3b3JrIFByb2ZpbGUgfCAKKip0b19uZXR3b3JrX2lkKiogfCAqKnN0cioqIHwgSWRlbnRpZmllciBvZiB0aGUgZGVzdGluYXRpb24gTmV0d29yayBQcm9maWxlIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl91cGRhdGVfdGlja2V0X3Rlcm0gaW1wb3J0IFNtYXJ0VHJhbnNmZXJVcGRhdGVUaWNrZXRUZXJtCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyVXBkYXRlVGlja2V0VGVybSBmcm9tIGEgSlNPTiBzdHJpbmcKc21hcnRfdHJhbnNmZXJfdXBkYXRlX3RpY2tldF90ZXJtX2luc3RhbmNlID0gU21hcnRUcmFuc2ZlclVwZGF0ZVRpY2tldFRlcm0uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU21hcnRUcmFuc2ZlclVwZGF0ZVRpY2tldFRlcm0udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc21hcnRfdHJhbnNmZXJfdXBkYXRlX3RpY2tldF90ZXJtX2RpY3QgPSBzbWFydF90cmFuc2Zlcl91cGRhdGVfdGlja2V0X3Rlcm1faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJVcGRhdGVUaWNrZXRUZXJtIGZyb20gYSBkaWN0CnNtYXJ0X3RyYW5zZmVyX3VwZGF0ZV90aWNrZXRfdGVybV9mcm9tX2RpY3QgPSBTbWFydFRyYW5zZmVyVXBkYXRlVGlja2V0VGVybS5mcm9tX2RpY3Qoc21hcnRfdHJhbnNmZXJfdXBkYXRlX3RpY2tldF90ZXJtX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SmartTransferUserGroups.md b/docs/SmartTransferUserGroups.md index f20c9e25..fa182a97 100644 --- a/docs/SmartTransferUserGroups.md +++ b/docs/SmartTransferUserGroups.md @@ -1,30 +1 @@ -# SmartTransferUserGroups - -Data object with result data - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**user_group_ids** | **List[str]** | Data object with result data | - -## Example - -```python -from fireblocks.models.smart_transfer_user_groups import SmartTransferUserGroups - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferUserGroups from a JSON string -smart_transfer_user_groups_instance = SmartTransferUserGroups.from_json(json) -# print the JSON string representation of the object -print(SmartTransferUserGroups.to_json()) - -# convert the object into a dict -smart_transfer_user_groups_dict = smart_transfer_user_groups_instance.to_dict() -# create an instance of SmartTransferUserGroups from a dict -smart_transfer_user_groups_from_dict = SmartTransferUserGroups.from_dict(smart_transfer_user_groups_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyVXNlckdyb3VwcwoKRGF0YSBvYmplY3Qgd2l0aCByZXN1bHQgZGF0YQoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnVzZXJfZ3JvdXBfaWRzKiogfCAqKkxpc3Rbc3RyXSoqIHwgRGF0YSBvYmplY3Qgd2l0aCByZXN1bHQgZGF0YSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfdXNlcl9ncm91cHMgaW1wb3J0IFNtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyVXNlckdyb3VwcyBmcm9tIGEgSlNPTiBzdHJpbmcKc21hcnRfdHJhbnNmZXJfdXNlcl9ncm91cHNfaW5zdGFuY2UgPSBTbWFydFRyYW5zZmVyVXNlckdyb3Vwcy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTbWFydFRyYW5zZmVyVXNlckdyb3Vwcy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzbWFydF90cmFuc2Zlcl91c2VyX2dyb3Vwc19kaWN0ID0gc21hcnRfdHJhbnNmZXJfdXNlcl9ncm91cHNfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzIGZyb20gYSBkaWN0CnNtYXJ0X3RyYW5zZmVyX3VzZXJfZ3JvdXBzX2Zyb21fZGljdCA9IFNtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzLmZyb21fZGljdChzbWFydF90cmFuc2Zlcl91c2VyX2dyb3Vwc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SmartTransferUserGroupsResponse.md b/docs/SmartTransferUserGroupsResponse.md index 40ba3b82..44ebc6be 100644 --- a/docs/SmartTransferUserGroupsResponse.md +++ b/docs/SmartTransferUserGroupsResponse.md @@ -1,30 +1 @@ -# SmartTransferUserGroupsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Result message | -**data** | [**SmartTransferUserGroups**](SmartTransferUserGroups.md) | | [optional] - -## Example - -```python -from fireblocks.models.smart_transfer_user_groups_response import SmartTransferUserGroupsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of SmartTransferUserGroupsResponse from a JSON string -smart_transfer_user_groups_response_instance = SmartTransferUserGroupsResponse.from_json(json) -# print the JSON string representation of the object -print(SmartTransferUserGroupsResponse.to_json()) - -# convert the object into a dict -smart_transfer_user_groups_response_dict = smart_transfer_user_groups_response_instance.to_dict() -# create an instance of SmartTransferUserGroupsResponse from a dict -smart_transfer_user_groups_response_from_dict = SmartTransferUserGroupsResponse.from_dict(smart_transfer_user_groups_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTbWFydFRyYW5zZmVyVXNlckdyb3Vwc1Jlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm1lc3NhZ2UqKiB8ICoqc3RyKiogfCBSZXN1bHQgbWVzc2FnZSB8IAoqKmRhdGEqKiB8IFsqKlNtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzKipdKFNtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl91c2VyX2dyb3Vwc19yZXNwb25zZSBpbXBvcnQgU21hcnRUcmFuc2ZlclVzZXJHcm91cHNSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclVzZXJHcm91cHNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKc21hcnRfdHJhbnNmZXJfdXNlcl9ncm91cHNfcmVzcG9uc2VfaW5zdGFuY2UgPSBTbWFydFRyYW5zZmVyVXNlckdyb3Vwc1Jlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc21hcnRfdHJhbnNmZXJfdXNlcl9ncm91cHNfcmVzcG9uc2VfZGljdCA9IHNtYXJ0X3RyYW5zZmVyX3VzZXJfZ3JvdXBzX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyVXNlckdyb3Vwc1Jlc3BvbnNlIGZyb20gYSBkaWN0CnNtYXJ0X3RyYW5zZmVyX3VzZXJfZ3JvdXBzX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFNtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzUmVzcG9uc2UuZnJvbV9kaWN0KHNtYXJ0X3RyYW5zZmVyX3VzZXJfZ3JvdXBzX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SolParameter.md b/docs/SolParameter.md index 59cb72f8..c3805bd9 100644 --- a/docs/SolParameter.md +++ b/docs/SolParameter.md @@ -1,31 +1 @@ -# SolParameter - -The arguments of the instruction - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | The name of the parameter | -**type** | [**IdlType**](IdlType.md) | | - -## Example - -```python -from fireblocks.models.sol_parameter import SolParameter - -# TODO update the JSON string below -json = "{}" -# create an instance of SolParameter from a JSON string -sol_parameter_instance = SolParameter.from_json(json) -# print the JSON string representation of the object -print(SolParameter.to_json()) - -# convert the object into a dict -sol_parameter_dict = sol_parameter_instance.to_dict() -# create an instance of SolParameter from a dict -sol_parameter_from_dict = SolParameter.from_dict(sol_parameter_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTb2xQYXJhbWV0ZXIKClRoZSBhcmd1bWVudHMgb2YgdGhlIGluc3RydWN0aW9uCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgfCAKKip0eXBlKiogfCBbKipJZGxUeXBlKipdKElkbFR5cGUubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zb2xfcGFyYW1ldGVyIGltcG9ydCBTb2xQYXJhbWV0ZXIKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNvbFBhcmFtZXRlciBmcm9tIGEgSlNPTiBzdHJpbmcKc29sX3BhcmFtZXRlcl9pbnN0YW5jZSA9IFNvbFBhcmFtZXRlci5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTb2xQYXJhbWV0ZXIudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc29sX3BhcmFtZXRlcl9kaWN0ID0gc29sX3BhcmFtZXRlcl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU29sUGFyYW1ldGVyIGZyb20gYSBkaWN0CnNvbF9wYXJhbWV0ZXJfZnJvbV9kaWN0ID0gU29sUGFyYW1ldGVyLmZyb21fZGljdChzb2xfcGFyYW1ldGVyX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SolParameterWithValue.md b/docs/SolParameterWithValue.md index afa2f422..2156e856 100644 --- a/docs/SolParameterWithValue.md +++ b/docs/SolParameterWithValue.md @@ -1,31 +1 @@ -# SolParameterWithValue - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**value** | **str** | The value of the parameter | -**name** | **str** | The name of the parameter | -**type** | [**IdlType**](IdlType.md) | | - -## Example - -```python -from fireblocks.models.sol_parameter_with_value import SolParameterWithValue - -# TODO update the JSON string below -json = "{}" -# create an instance of SolParameterWithValue from a JSON string -sol_parameter_with_value_instance = SolParameterWithValue.from_json(json) -# print the JSON string representation of the object -print(SolParameterWithValue.to_json()) - -# convert the object into a dict -sol_parameter_with_value_dict = sol_parameter_with_value_instance.to_dict() -# create an instance of SolParameterWithValue from a dict -sol_parameter_with_value_from_dict = SolParameterWithValue.from_dict(sol_parameter_with_value_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTb2xQYXJhbWV0ZXJXaXRoVmFsdWUKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdmFsdWUqKiB8ICoqc3RyKiogfCBUaGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlciB8IAoqKm5hbWUqKiB8ICoqc3RyKiogfCBUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIHwgCioqdHlwZSoqIHwgWyoqSWRsVHlwZSoqXShJZGxUeXBlLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc29sX3BhcmFtZXRlcl93aXRoX3ZhbHVlIGltcG9ydCBTb2xQYXJhbWV0ZXJXaXRoVmFsdWUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNvbFBhcmFtZXRlcldpdGhWYWx1ZSBmcm9tIGEgSlNPTiBzdHJpbmcKc29sX3BhcmFtZXRlcl93aXRoX3ZhbHVlX2luc3RhbmNlID0gU29sUGFyYW1ldGVyV2l0aFZhbHVlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNvbFBhcmFtZXRlcldpdGhWYWx1ZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzb2xfcGFyYW1ldGVyX3dpdGhfdmFsdWVfZGljdCA9IHNvbF9wYXJhbWV0ZXJfd2l0aF92YWx1ZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU29sUGFyYW1ldGVyV2l0aFZhbHVlIGZyb20gYSBkaWN0CnNvbF9wYXJhbWV0ZXJfd2l0aF92YWx1ZV9mcm9tX2RpY3QgPSBTb2xQYXJhbWV0ZXJXaXRoVmFsdWUuZnJvbV9kaWN0KHNvbF9wYXJhbWV0ZXJfd2l0aF92YWx1ZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SolanaBlockchainData.md b/docs/SolanaBlockchainData.md index e95969f8..1162e17d 100644 --- a/docs/SolanaBlockchainData.md +++ b/docs/SolanaBlockchainData.md @@ -1,31 +1 @@ -# SolanaBlockchainData - -Additional fields per blockchain - can be empty or missing if not initialized or no additional info exists. The type depends on the chainDescriptor value. For Solana (SOL), stake account address. For Ethereum (ETH), an empty object is returned as no specific data is available. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**stake_account_address** | **str** | The stake account address matching the stakeAccountId. | -**stake_account_derivation_change_value** | **float** | The value of the change level in the BIP32 path which was used to derive the stake account address. | - -## Example - -```python -from fireblocks.models.solana_blockchain_data import SolanaBlockchainData - -# TODO update the JSON string below -json = "{}" -# create an instance of SolanaBlockchainData from a JSON string -solana_blockchain_data_instance = SolanaBlockchainData.from_json(json) -# print the JSON string representation of the object -print(SolanaBlockchainData.to_json()) - -# convert the object into a dict -solana_blockchain_data_dict = solana_blockchain_data_instance.to_dict() -# create an instance of SolanaBlockchainData from a dict -solana_blockchain_data_from_dict = SolanaBlockchainData.from_dict(solana_blockchain_data_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTb2xhbmFCbG9ja2NoYWluRGF0YQoKQWRkaXRpb25hbCBmaWVsZHMgcGVyIGJsb2NrY2hhaW4gLSBjYW4gYmUgZW1wdHkgb3IgbWlzc2luZyBpZiBub3QgaW5pdGlhbGl6ZWQgb3Igbm8gYWRkaXRpb25hbCBpbmZvIGV4aXN0cy4gVGhlIHR5cGUgZGVwZW5kcyBvbiB0aGUgY2hhaW5EZXNjcmlwdG9yIHZhbHVlLiBGb3IgU29sYW5hIChTT0wpLCBzdGFrZSBhY2NvdW50IGFkZHJlc3MuIEZvciBFdGhlcmV1bSAoRVRIKSwgYW4gZW1wdHkgb2JqZWN0IGlzIHJldHVybmVkIGFzIG5vIHNwZWNpZmljIGRhdGEgaXMgYXZhaWxhYmxlLgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnN0YWtlX2FjY291bnRfYWRkcmVzcyoqIHwgKipzdHIqKiB8IFRoZSBzdGFrZSBhY2NvdW50IGFkZHJlc3MgbWF0Y2hpbmcgdGhlIHN0YWtlQWNjb3VudElkLiB8IAoqKnN0YWtlX2FjY291bnRfZGVyaXZhdGlvbl9jaGFuZ2VfdmFsdWUqKiB8ICoqZmxvYXQqKiB8IFRoZSB2YWx1ZSBvZiB0aGUgY2hhbmdlIGxldmVsIGluIHRoZSBCSVAzMiBwYXRoIHdoaWNoIHdhcyB1c2VkIHRvIGRlcml2ZSB0aGUgc3Rha2UgYWNjb3VudCBhZGRyZXNzLiB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc29sYW5hX2Jsb2NrY2hhaW5fZGF0YSBpbXBvcnQgU29sYW5hQmxvY2tjaGFpbkRhdGEKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNvbGFuYUJsb2NrY2hhaW5EYXRhIGZyb20gYSBKU09OIHN0cmluZwpzb2xhbmFfYmxvY2tjaGFpbl9kYXRhX2luc3RhbmNlID0gU29sYW5hQmxvY2tjaGFpbkRhdGEuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU29sYW5hQmxvY2tjaGFpbkRhdGEudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc29sYW5hX2Jsb2NrY2hhaW5fZGF0YV9kaWN0ID0gc29sYW5hX2Jsb2NrY2hhaW5fZGF0YV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU29sYW5hQmxvY2tjaGFpbkRhdGEgZnJvbSBhIGRpY3QKc29sYW5hX2Jsb2NrY2hhaW5fZGF0YV9mcm9tX2RpY3QgPSBTb2xhbmFCbG9ja2NoYWluRGF0YS5mcm9tX2RpY3Qoc29sYW5hX2Jsb2NrY2hhaW5fZGF0YV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SolanaConfig.md b/docs/SolanaConfig.md index e1d0fc97..c10e9de8 100644 --- a/docs/SolanaConfig.md +++ b/docs/SolanaConfig.md @@ -1,31 +1 @@ -# SolanaConfig - -The Solana configuration of the contract - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**extensions** | **List[str]** | The extensions that the contract implements. | [optional] -**type** | **str** | The type of the contract. | [optional] - -## Example - -```python -from fireblocks.models.solana_config import SolanaConfig - -# TODO update the JSON string below -json = "{}" -# create an instance of SolanaConfig from a JSON string -solana_config_instance = SolanaConfig.from_json(json) -# print the JSON string representation of the object -print(SolanaConfig.to_json()) - -# convert the object into a dict -solana_config_dict = solana_config_instance.to_dict() -# create an instance of SolanaConfig from a dict -solana_config_from_dict = SolanaConfig.from_dict(solana_config_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTb2xhbmFDb25maWcKClRoZSBTb2xhbmEgY29uZmlndXJhdGlvbiBvZiB0aGUgY29udHJhY3QKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipleHRlbnNpb25zKiogfCAqKkxpc3Rbc3RyXSoqIHwgVGhlIGV4dGVuc2lvbnMgdGhhdCB0aGUgY29udHJhY3QgaW1wbGVtZW50cy4gfCBbb3B0aW9uYWxdIAoqKnR5cGUqKiB8ICoqc3RyKiogfCBUaGUgdHlwZSBvZiB0aGUgY29udHJhY3QuIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvbGFuYV9jb25maWcgaW1wb3J0IFNvbGFuYUNvbmZpZwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU29sYW5hQ29uZmlnIGZyb20gYSBKU09OIHN0cmluZwpzb2xhbmFfY29uZmlnX2luc3RhbmNlID0gU29sYW5hQ29uZmlnLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNvbGFuYUNvbmZpZy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzb2xhbmFfY29uZmlnX2RpY3QgPSBzb2xhbmFfY29uZmlnX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTb2xhbmFDb25maWcgZnJvbSBhIGRpY3QKc29sYW5hX2NvbmZpZ19mcm9tX2RpY3QgPSBTb2xhbmFDb25maWcuZnJvbV9kaWN0KHNvbGFuYV9jb25maWdfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SolanaInstruction.md b/docs/SolanaInstruction.md index 9442553c..e74a4537 100644 --- a/docs/SolanaInstruction.md +++ b/docs/SolanaInstruction.md @@ -1,32 +1 @@ -# SolanaInstruction - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | The name of the instruction | -**discriminator** | **List[float]** | The discriminator for the instruction. Acts as a function selector | -**accounts** | [**List[SOLAccount]**](SOLAccount.md) | | -**args** | [**List[SolParameter]**](SolParameter.md) | | - -## Example - -```python -from fireblocks.models.solana_instruction import SolanaInstruction - -# TODO update the JSON string below -json = "{}" -# create an instance of SolanaInstruction from a JSON string -solana_instruction_instance = SolanaInstruction.from_json(json) -# print the JSON string representation of the object -print(SolanaInstruction.to_json()) - -# convert the object into a dict -solana_instruction_dict = solana_instruction_instance.to_dict() -# create an instance of SolanaInstruction from a dict -solana_instruction_from_dict = SolanaInstruction.from_dict(solana_instruction_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTb2xhbmFJbnN0cnVjdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipuYW1lKiogfCAqKnN0cioqIHwgVGhlIG5hbWUgb2YgdGhlIGluc3RydWN0aW9uIHwgCioqZGlzY3JpbWluYXRvcioqIHwgKipMaXN0W2Zsb2F0XSoqIHwgVGhlIGRpc2NyaW1pbmF0b3IgZm9yIHRoZSBpbnN0cnVjdGlvbi4gQWN0cyBhcyBhIGZ1bmN0aW9uIHNlbGVjdG9yIHwgCioqYWNjb3VudHMqKiB8IFsqKkxpc3RbU09MQWNjb3VudF0qKl0oU09MQWNjb3VudC5tZCkgfCAgfCAKKiphcmdzKiogfCBbKipMaXN0W1NvbFBhcmFtZXRlcl0qKl0oU29sUGFyYW1ldGVyLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc29sYW5hX2luc3RydWN0aW9uIGltcG9ydCBTb2xhbmFJbnN0cnVjdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU29sYW5hSW5zdHJ1Y3Rpb24gZnJvbSBhIEpTT04gc3RyaW5nCnNvbGFuYV9pbnN0cnVjdGlvbl9pbnN0YW5jZSA9IFNvbGFuYUluc3RydWN0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNvbGFuYUluc3RydWN0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNvbGFuYV9pbnN0cnVjdGlvbl9kaWN0ID0gc29sYW5hX2luc3RydWN0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTb2xhbmFJbnN0cnVjdGlvbiBmcm9tIGEgZGljdApzb2xhbmFfaW5zdHJ1Y3Rpb25fZnJvbV9kaWN0ID0gU29sYW5hSW5zdHJ1Y3Rpb24uZnJvbV9kaWN0KHNvbGFuYV9pbnN0cnVjdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SolanaInstructionWithValue.md b/docs/SolanaInstructionWithValue.md index 199c8c65..1186b37f 100644 --- a/docs/SolanaInstructionWithValue.md +++ b/docs/SolanaInstructionWithValue.md @@ -1,32 +1 @@ -# SolanaInstructionWithValue - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | The name of the instruction | -**discriminator** | **List[float]** | The discriminator for the instruction. Acts as a function selector | -**accounts** | [**List[SOLAccountWithValue]**](SOLAccountWithValue.md) | | -**args** | [**List[SolParameterWithValue]**](SolParameterWithValue.md) | The arguments of the instruction | - -## Example - -```python -from fireblocks.models.solana_instruction_with_value import SolanaInstructionWithValue - -# TODO update the JSON string below -json = "{}" -# create an instance of SolanaInstructionWithValue from a JSON string -solana_instruction_with_value_instance = SolanaInstructionWithValue.from_json(json) -# print the JSON string representation of the object -print(SolanaInstructionWithValue.to_json()) - -# convert the object into a dict -solana_instruction_with_value_dict = solana_instruction_with_value_instance.to_dict() -# create an instance of SolanaInstructionWithValue from a dict -solana_instruction_with_value_from_dict = SolanaInstructionWithValue.from_dict(solana_instruction_with_value_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTb2xhbmFJbnN0cnVjdGlvbldpdGhWYWx1ZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipuYW1lKiogfCAqKnN0cioqIHwgVGhlIG5hbWUgb2YgdGhlIGluc3RydWN0aW9uIHwgCioqZGlzY3JpbWluYXRvcioqIHwgKipMaXN0W2Zsb2F0XSoqIHwgVGhlIGRpc2NyaW1pbmF0b3IgZm9yIHRoZSBpbnN0cnVjdGlvbi4gQWN0cyBhcyBhIGZ1bmN0aW9uIHNlbGVjdG9yIHwgCioqYWNjb3VudHMqKiB8IFsqKkxpc3RbU09MQWNjb3VudFdpdGhWYWx1ZV0qKl0oU09MQWNjb3VudFdpdGhWYWx1ZS5tZCkgfCAgfCAKKiphcmdzKiogfCBbKipMaXN0W1NvbFBhcmFtZXRlcldpdGhWYWx1ZV0qKl0oU29sUGFyYW1ldGVyV2l0aFZhbHVlLm1kKSB8IFRoZSBhcmd1bWVudHMgb2YgdGhlIGluc3RydWN0aW9uIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zb2xhbmFfaW5zdHJ1Y3Rpb25fd2l0aF92YWx1ZSBpbXBvcnQgU29sYW5hSW5zdHJ1Y3Rpb25XaXRoVmFsdWUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNvbGFuYUluc3RydWN0aW9uV2l0aFZhbHVlIGZyb20gYSBKU09OIHN0cmluZwpzb2xhbmFfaW5zdHJ1Y3Rpb25fd2l0aF92YWx1ZV9pbnN0YW5jZSA9IFNvbGFuYUluc3RydWN0aW9uV2l0aFZhbHVlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNvbGFuYUluc3RydWN0aW9uV2l0aFZhbHVlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNvbGFuYV9pbnN0cnVjdGlvbl93aXRoX3ZhbHVlX2RpY3QgPSBzb2xhbmFfaW5zdHJ1Y3Rpb25fd2l0aF92YWx1ZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU29sYW5hSW5zdHJ1Y3Rpb25XaXRoVmFsdWUgZnJvbSBhIGRpY3QKc29sYW5hX2luc3RydWN0aW9uX3dpdGhfdmFsdWVfZnJvbV9kaWN0ID0gU29sYW5hSW5zdHJ1Y3Rpb25XaXRoVmFsdWUuZnJvbV9kaWN0KHNvbGFuYV9pbnN0cnVjdGlvbl93aXRoX3ZhbHVlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SolanaSimpleCreateParams.md b/docs/SolanaSimpleCreateParams.md index cb130a04..af6bbd75 100644 --- a/docs/SolanaSimpleCreateParams.md +++ b/docs/SolanaSimpleCreateParams.md @@ -1,31 +1 @@ -# SolanaSimpleCreateParams - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | The name of the token or asset being created. | -**symbol** | **str** | The symbol for the token, typically an abbreviated representation. | -**decimals** | **int** | The number of decimal places the token supports (e.g., 9 for typical Solana tokens). | - -## Example - -```python -from fireblocks.models.solana_simple_create_params import SolanaSimpleCreateParams - -# TODO update the JSON string below -json = "{}" -# create an instance of SolanaSimpleCreateParams from a JSON string -solana_simple_create_params_instance = SolanaSimpleCreateParams.from_json(json) -# print the JSON string representation of the object -print(SolanaSimpleCreateParams.to_json()) - -# convert the object into a dict -solana_simple_create_params_dict = solana_simple_create_params_instance.to_dict() -# create an instance of SolanaSimpleCreateParams from a dict -solana_simple_create_params_from_dict = SolanaSimpleCreateParams.from_dict(solana_simple_create_params_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTb2xhbmFTaW1wbGVDcmVhdGVQYXJhbXMKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBuYW1lIG9mIHRoZSB0b2tlbiBvciBhc3NldCBiZWluZyBjcmVhdGVkLiB8IAoqKnN5bWJvbCoqIHwgKipzdHIqKiB8IFRoZSBzeW1ib2wgZm9yIHRoZSB0b2tlbiwgdHlwaWNhbGx5IGFuIGFiYnJldmlhdGVkIHJlcHJlc2VudGF0aW9uLiB8IAoqKmRlY2ltYWxzKiogfCAqKmludCoqIHwgVGhlIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyB0aGUgdG9rZW4gc3VwcG9ydHMgKGUuZy4sIDkgZm9yIHR5cGljYWwgU29sYW5hIHRva2VucykuIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zb2xhbmFfc2ltcGxlX2NyZWF0ZV9wYXJhbXMgaW1wb3J0IFNvbGFuYVNpbXBsZUNyZWF0ZVBhcmFtcwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU29sYW5hU2ltcGxlQ3JlYXRlUGFyYW1zIGZyb20gYSBKU09OIHN0cmluZwpzb2xhbmFfc2ltcGxlX2NyZWF0ZV9wYXJhbXNfaW5zdGFuY2UgPSBTb2xhbmFTaW1wbGVDcmVhdGVQYXJhbXMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU29sYW5hU2ltcGxlQ3JlYXRlUGFyYW1zLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNvbGFuYV9zaW1wbGVfY3JlYXRlX3BhcmFtc19kaWN0ID0gc29sYW5hX3NpbXBsZV9jcmVhdGVfcGFyYW1zX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTb2xhbmFTaW1wbGVDcmVhdGVQYXJhbXMgZnJvbSBhIGRpY3QKc29sYW5hX3NpbXBsZV9jcmVhdGVfcGFyYW1zX2Zyb21fZGljdCA9IFNvbGFuYVNpbXBsZUNyZWF0ZVBhcmFtcy5mcm9tX2RpY3Qoc29sYW5hX3NpbXBsZV9jcmVhdGVfcGFyYW1zX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SourceConfig.md b/docs/SourceConfig.md index dae1a67f..1c6b70be 100644 --- a/docs/SourceConfig.md +++ b/docs/SourceConfig.md @@ -1,35 +1 @@ -# SourceConfig - -Source account configuration for policy rules - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**List[AccountType2]**](AccountType2.md) | Source account types | [optional] -**sub_type** | [**List[AccountIdentifier]**](AccountIdentifier.md) | Source account subtypes | [optional] -**ids** | [**List[AccountIdentifier]**](AccountIdentifier.md) | Source account identifiers | [optional] -**tags** | [**List[PolicyTag]**](PolicyTag.md) | Tags for source matching | [optional] -**operator** | [**PolicyOperator**](PolicyOperator.md) | | -**match_from** | **str** | Whether to match from account (relevant only for ORDER policy type) | [optional] - -## Example - -```python -from fireblocks.models.source_config import SourceConfig - -# TODO update the JSON string below -json = "{}" -# create an instance of SourceConfig from a JSON string -source_config_instance = SourceConfig.from_json(json) -# print the JSON string representation of the object -print(SourceConfig.to_json()) - -# convert the object into a dict -source_config_dict = source_config_instance.to_dict() -# create an instance of SourceConfig from a dict -source_config_from_dict = SourceConfig.from_dict(source_config_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTb3VyY2VDb25maWcKClNvdXJjZSBhY2NvdW50IGNvbmZpZ3VyYXRpb24gZm9yIHBvbGljeSBydWxlcwoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8IFsqKkxpc3RbQWNjb3VudFR5cGUyXSoqXShBY2NvdW50VHlwZTIubWQpIHwgU291cmNlIGFjY291bnQgdHlwZXMgfCBbb3B0aW9uYWxdIAoqKnN1Yl90eXBlKiogfCBbKipMaXN0W0FjY291bnRJZGVudGlmaWVyXSoqXShBY2NvdW50SWRlbnRpZmllci5tZCkgfCBTb3VyY2UgYWNjb3VudCBzdWJ0eXBlcyB8IFtvcHRpb25hbF0gCioqaWRzKiogfCBbKipMaXN0W0FjY291bnRJZGVudGlmaWVyXSoqXShBY2NvdW50SWRlbnRpZmllci5tZCkgfCBTb3VyY2UgYWNjb3VudCBpZGVudGlmaWVycyB8IFtvcHRpb25hbF0gCioqdGFncyoqIHwgWyoqTGlzdFtQb2xpY3lUYWddKipdKFBvbGljeVRhZy5tZCkgfCBUYWdzIGZvciBzb3VyY2UgbWF0Y2hpbmcgfCBbb3B0aW9uYWxdIAoqKm9wZXJhdG9yKiogfCBbKipQb2xpY3lPcGVyYXRvcioqXShQb2xpY3lPcGVyYXRvci5tZCkgfCAgfCAKKiptYXRjaF9mcm9tKiogfCAqKnN0cioqIHwgV2hldGhlciB0byBtYXRjaCBmcm9tIGFjY291bnQgKHJlbGV2YW50IG9ubHkgZm9yIE9SREVSIHBvbGljeSB0eXBlKSB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zb3VyY2VfY29uZmlnIGltcG9ydCBTb3VyY2VDb25maWcKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNvdXJjZUNvbmZpZyBmcm9tIGEgSlNPTiBzdHJpbmcKc291cmNlX2NvbmZpZ19pbnN0YW5jZSA9IFNvdXJjZUNvbmZpZy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTb3VyY2VDb25maWcudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc291cmNlX2NvbmZpZ19kaWN0ID0gc291cmNlX2NvbmZpZ19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU291cmNlQ29uZmlnIGZyb20gYSBkaWN0CnNvdXJjZV9jb25maWdfZnJvbV9kaWN0ID0gU291cmNlQ29uZmlnLmZyb21fZGljdChzb3VyY2VfY29uZmlnX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SourceTransferPeerPath.md b/docs/SourceTransferPeerPath.md index 133622a2..f4fc96e8 100644 --- a/docs/SourceTransferPeerPath.md +++ b/docs/SourceTransferPeerPath.md @@ -1,35 +1 @@ -# SourceTransferPeerPath - -The source of the transaction. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**TransferPeerPathType**](TransferPeerPathType.md) | | -**sub_type** | [**TransferPeerPathSubType**](TransferPeerPathSubType.md) | | [optional] -**id** | **str** | | [optional] -**name** | **str** | | [optional] -**wallet_id** | **str** | | [optional] -**is_collateral** | **bool** | indicate if the source is collateral account | [optional] - -## Example - -```python -from fireblocks.models.source_transfer_peer_path import SourceTransferPeerPath - -# TODO update the JSON string below -json = "{}" -# create an instance of SourceTransferPeerPath from a JSON string -source_transfer_peer_path_instance = SourceTransferPeerPath.from_json(json) -# print the JSON string representation of the object -print(SourceTransferPeerPath.to_json()) - -# convert the object into a dict -source_transfer_peer_path_dict = source_transfer_peer_path_instance.to_dict() -# create an instance of SourceTransferPeerPath from a dict -source_transfer_peer_path_from_dict = SourceTransferPeerPath.from_dict(source_transfer_peer_path_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTb3VyY2VUcmFuc2ZlclBlZXJQYXRoCgpUaGUgc291cmNlIG9mIHRoZSB0cmFuc2FjdGlvbi4KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eXBlKiogfCBbKipUcmFuc2ZlclBlZXJQYXRoVHlwZSoqXShUcmFuc2ZlclBlZXJQYXRoVHlwZS5tZCkgfCAgfCAKKipzdWJfdHlwZSoqIHwgWyoqVHJhbnNmZXJQZWVyUGF0aFN1YlR5cGUqKl0oVHJhbnNmZXJQZWVyUGF0aFN1YlR5cGUubWQpIHwgIHwgW29wdGlvbmFsXSAKKippZCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqbmFtZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqd2FsbGV0X2lkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKippc19jb2xsYXRlcmFsKiogfCAqKmJvb2wqKiB8IGluZGljYXRlIGlmIHRoZSBzb3VyY2UgaXMgY29sbGF0ZXJhbCBhY2NvdW50IHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvdXJjZV90cmFuc2Zlcl9wZWVyX3BhdGggaW1wb3J0IFNvdXJjZVRyYW5zZmVyUGVlclBhdGgKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNvdXJjZVRyYW5zZmVyUGVlclBhdGggZnJvbSBhIEpTT04gc3RyaW5nCnNvdXJjZV90cmFuc2Zlcl9wZWVyX3BhdGhfaW5zdGFuY2UgPSBTb3VyY2VUcmFuc2ZlclBlZXJQYXRoLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNvdXJjZVRyYW5zZmVyUGVlclBhdGgudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc291cmNlX3RyYW5zZmVyX3BlZXJfcGF0aF9kaWN0ID0gc291cmNlX3RyYW5zZmVyX3BlZXJfcGF0aF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU291cmNlVHJhbnNmZXJQZWVyUGF0aCBmcm9tIGEgZGljdApzb3VyY2VfdHJhbnNmZXJfcGVlcl9wYXRoX2Zyb21fZGljdCA9IFNvdXJjZVRyYW5zZmVyUGVlclBhdGguZnJvbV9kaWN0KHNvdXJjZV90cmFuc2Zlcl9wZWVyX3BhdGhfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SourceTransferPeerPathResponse.md b/docs/SourceTransferPeerPathResponse.md index 714ef1b1..fb0c5d16 100644 --- a/docs/SourceTransferPeerPathResponse.md +++ b/docs/SourceTransferPeerPathResponse.md @@ -1,35 +1 @@ -# SourceTransferPeerPathResponse - -Source of the transaction. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | [**TransferPeerPathType**](TransferPeerPathType.md) | | -**sub_type** | **str** | In case the type is set to `EXCHANGE_ACCOUNT` or `FIAT_ACCOUNT`, the specific exchange vendor name or fiat vendor name. In case the type is set to `INTERNAL_WALLET` or `EXTERNAL_WALLET`, the subType is set to `Internal` or `External`. | [optional] -**id** | **str** | The ID of the peer. You can retrieve the ID of each venue object using the endpoints for [listing vault accounts](https://developers.fireblocks.com/reference/getpagedvaultaccounts), [listing exchange account](https://developers.fireblocks.com/reference/getexchangeaccounts), [listing fiat accounts](https://developers.fireblocks.com/reference/getfiataccounts), [listing internal wallets](https://developers.fireblocks.com/reference/getinternalwallets), [listing external wallets](https://developers.fireblocks.com/reference/getexternalwallets), [listing network connections](https://developers.fireblocks.com/reference/getnetworkconnections). For the other types, this parameter is not needed. | [optional] -**name** | **str** | The name of the peer. | [optional] -**wallet_id** | **str** | | [optional] -**trading_account** | **str** | If this transaction is an exchange internal transfer, this field will be populated with the type of that trading account. | [optional] - -## Example - -```python -from fireblocks.models.source_transfer_peer_path_response import SourceTransferPeerPathResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of SourceTransferPeerPathResponse from a JSON string -source_transfer_peer_path_response_instance = SourceTransferPeerPathResponse.from_json(json) -# print the JSON string representation of the object -print(SourceTransferPeerPathResponse.to_json()) - -# convert the object into a dict -source_transfer_peer_path_response_dict = source_transfer_peer_path_response_instance.to_dict() -# create an instance of SourceTransferPeerPathResponse from a dict -source_transfer_peer_path_response_from_dict = SourceTransferPeerPathResponse.from_dict(source_transfer_peer_path_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTb3VyY2VUcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UKClNvdXJjZSBvZiB0aGUgdHJhbnNhY3Rpb24uCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgWyoqVHJhbnNmZXJQZWVyUGF0aFR5cGUqKl0oVHJhbnNmZXJQZWVyUGF0aFR5cGUubWQpIHwgIHwgCioqc3ViX3R5cGUqKiB8ICoqc3RyKiogfCBJbiBjYXNlIHRoZSB0eXBlIGlzIHNldCB0byAmI3g2MDtFWENIQU5HRV9BQ0NPVU5UJiN4NjA7IG9yICYjeDYwO0ZJQVRfQUNDT1VOVCYjeDYwOywgdGhlIHNwZWNpZmljIGV4Y2hhbmdlIHZlbmRvciBuYW1lIG9yIGZpYXQgdmVuZG9yIG5hbWUuIEluIGNhc2UgdGhlIHR5cGUgaXMgc2V0IHRvICYjeDYwO0lOVEVSTkFMX1dBTExFVCYjeDYwOyBvciAmI3g2MDtFWFRFUk5BTF9XQUxMRVQmI3g2MDssIHRoZSBzdWJUeXBlIGlzIHNldCB0byAmI3g2MDtJbnRlcm5hbCYjeDYwOyBvciAmI3g2MDtFeHRlcm5hbCYjeDYwOy4gfCBbb3B0aW9uYWxdIAoqKmlkKiogfCAqKnN0cioqIHwgVGhlIElEIG9mIHRoZSBwZWVyLiBZb3UgY2FuIHJldHJpZXZlIHRoZSBJRCBvZiBlYWNoIHZlbnVlIG9iamVjdCB1c2luZyB0aGUgZW5kcG9pbnRzIGZvciBbbGlzdGluZyB2YXVsdCBhY2NvdW50c10oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS9nZXRwYWdlZHZhdWx0YWNjb3VudHMpLCBbbGlzdGluZyBleGNoYW5nZSBhY2NvdW50XShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2dldGV4Y2hhbmdlYWNjb3VudHMpLCBbbGlzdGluZyBmaWF0IGFjY291bnRzXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2dldGZpYXRhY2NvdW50cyksIFtsaXN0aW5nIGludGVybmFsIHdhbGxldHNdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9yZWZlcmVuY2UvZ2V0aW50ZXJuYWx3YWxsZXRzKSwgW2xpc3RpbmcgZXh0ZXJuYWwgd2FsbGV0c10oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS9nZXRleHRlcm5hbHdhbGxldHMpLCBbbGlzdGluZyBuZXR3b3JrIGNvbm5lY3Rpb25zXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2dldG5ldHdvcmtjb25uZWN0aW9ucykuIEZvciB0aGUgb3RoZXIgdHlwZXMsIHRoaXMgcGFyYW1ldGVyIGlzIG5vdCBuZWVkZWQuIHwgW29wdGlvbmFsXSAKKipuYW1lKiogfCAqKnN0cioqIHwgVGhlIG5hbWUgb2YgdGhlIHBlZXIuIHwgW29wdGlvbmFsXSAKKip3YWxsZXRfaWQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKnRyYWRpbmdfYWNjb3VudCoqIHwgKipzdHIqKiB8IElmIHRoaXMgdHJhbnNhY3Rpb24gaXMgYW4gZXhjaGFuZ2UgaW50ZXJuYWwgdHJhbnNmZXIsIHRoaXMgZmllbGQgd2lsbCBiZSBwb3B1bGF0ZWQgd2l0aCB0aGUgdHlwZSBvZiB0aGF0IHRyYWRpbmcgYWNjb3VudC4gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc291cmNlX3RyYW5zZmVyX3BlZXJfcGF0aF9yZXNwb25zZSBpbXBvcnQgU291cmNlVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTb3VyY2VUcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnNvdXJjZV90cmFuc2Zlcl9wZWVyX3BhdGhfcmVzcG9uc2VfaW5zdGFuY2UgPSBTb3VyY2VUcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU291cmNlVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNvdXJjZV90cmFuc2Zlcl9wZWVyX3BhdGhfcmVzcG9uc2VfZGljdCA9IHNvdXJjZV90cmFuc2Zlcl9wZWVyX3BhdGhfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNvdXJjZVRyYW5zZmVyUGVlclBhdGhSZXNwb25zZSBmcm9tIGEgZGljdApzb3VyY2VfdHJhbnNmZXJfcGVlcl9wYXRoX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFNvdXJjZVRyYW5zZmVyUGVlclBhdGhSZXNwb25zZS5mcm9tX2RpY3Qoc291cmNlX3RyYW5zZmVyX3BlZXJfcGF0aF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SpamOwnershipResponse.md b/docs/SpamOwnershipResponse.md index 8ea2c3bb..82e63020 100644 --- a/docs/SpamOwnershipResponse.md +++ b/docs/SpamOwnershipResponse.md @@ -1,30 +1 @@ -# SpamOwnershipResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**result** | **bool** | Token spam result | -**source** | **str** | Source of Token's Spam status value | - -## Example - -```python -from fireblocks.models.spam_ownership_response import SpamOwnershipResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of SpamOwnershipResponse from a JSON string -spam_ownership_response_instance = SpamOwnershipResponse.from_json(json) -# print the JSON string representation of the object -print(SpamOwnershipResponse.to_json()) - -# convert the object into a dict -spam_ownership_response_dict = spam_ownership_response_instance.to_dict() -# create an instance of SpamOwnershipResponse from a dict -spam_ownership_response_from_dict = SpamOwnershipResponse.from_dict(spam_ownership_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTcGFtT3duZXJzaGlwUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcmVzdWx0KiogfCAqKmJvb2wqKiB8IFRva2VuIHNwYW0gcmVzdWx0IHwgCioqc291cmNlKiogfCAqKnN0cioqIHwgU291cmNlIG9mIFRva2VuJiMzOTtzIFNwYW0gc3RhdHVzIHZhbHVlIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zcGFtX293bmVyc2hpcF9yZXNwb25zZSBpbXBvcnQgU3BhbU93bmVyc2hpcFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTcGFtT3duZXJzaGlwUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnNwYW1fb3duZXJzaGlwX3Jlc3BvbnNlX2luc3RhbmNlID0gU3BhbU93bmVyc2hpcFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNwYW1Pd25lcnNoaXBSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzcGFtX293bmVyc2hpcF9yZXNwb25zZV9kaWN0ID0gc3BhbV9vd25lcnNoaXBfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNwYW1Pd25lcnNoaXBSZXNwb25zZSBmcm9tIGEgZGljdApzcGFtX293bmVyc2hpcF9yZXNwb25zZV9mcm9tX2RpY3QgPSBTcGFtT3duZXJzaGlwUmVzcG9uc2UuZnJvbV9kaWN0KHNwYW1fb3duZXJzaGlwX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SpamTokenResponse.md b/docs/SpamTokenResponse.md index e84672b9..555e7218 100644 --- a/docs/SpamTokenResponse.md +++ b/docs/SpamTokenResponse.md @@ -1,29 +1 @@ -# SpamTokenResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**result** | **bool** | Token spam result | - -## Example - -```python -from fireblocks.models.spam_token_response import SpamTokenResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of SpamTokenResponse from a JSON string -spam_token_response_instance = SpamTokenResponse.from_json(json) -# print the JSON string representation of the object -print(SpamTokenResponse.to_json()) - -# convert the object into a dict -spam_token_response_dict = spam_token_response_instance.to_dict() -# create an instance of SpamTokenResponse from a dict -spam_token_response_from_dict = SpamTokenResponse.from_dict(spam_token_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTcGFtVG9rZW5SZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipyZXN1bHQqKiB8ICoqYm9vbCoqIHwgVG9rZW4gc3BhbSByZXN1bHQgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwYW1fdG9rZW5fcmVzcG9uc2UgaW1wb3J0IFNwYW1Ub2tlblJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTcGFtVG9rZW5SZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKc3BhbV90b2tlbl9yZXNwb25zZV9pbnN0YW5jZSA9IFNwYW1Ub2tlblJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFNwYW1Ub2tlblJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNwYW1fdG9rZW5fcmVzcG9uc2VfZGljdCA9IHNwYW1fdG9rZW5fcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNwYW1Ub2tlblJlc3BvbnNlIGZyb20gYSBkaWN0CnNwYW1fdG9rZW5fcmVzcG9uc2VfZnJvbV9kaWN0ID0gU3BhbVRva2VuUmVzcG9uc2UuZnJvbV9kaWN0KHNwYW1fdG9rZW5fcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SpeiAddress.md b/docs/SpeiAddress.md index 4ec9e7c4..dfb286c4 100644 --- a/docs/SpeiAddress.md +++ b/docs/SpeiAddress.md @@ -1,31 +1 @@ -# SpeiAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | | -**bank_name** | **str** | Name of the bank. | [optional] -**bank_account_number** | **str** | The bank account number for the SPEI transfer. | - -## Example - -```python -from fireblocks.models.spei_address import SpeiAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of SpeiAddress from a JSON string -spei_address_instance = SpeiAddress.from_json(json) -# print the JSON string representation of the object -print(SpeiAddress.to_json()) - -# convert the object into a dict -spei_address_dict = spei_address_instance.to_dict() -# create an instance of SpeiAddress from a dict -spei_address_from_dict = SpeiAddress.from_dict(spei_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTcGVpQWRkcmVzcwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphY2NvdW50X2hvbGRlcioqIHwgWyoqQWNjb3VudEhvbGRlckRldGFpbHMqKl0oQWNjb3VudEhvbGRlckRldGFpbHMubWQpIHwgIHwgCioqYmFua19uYW1lKiogfCAqKnN0cioqIHwgTmFtZSBvZiB0aGUgYmFuay4gfCBbb3B0aW9uYWxdIAoqKmJhbmtfYWNjb3VudF9udW1iZXIqKiB8ICoqc3RyKiogfCBUaGUgYmFuayBhY2NvdW50IG51bWJlciBmb3IgdGhlIFNQRUkgdHJhbnNmZXIuIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zcGVpX2FkZHJlc3MgaW1wb3J0IFNwZWlBZGRyZXNzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTcGVpQWRkcmVzcyBmcm9tIGEgSlNPTiBzdHJpbmcKc3BlaV9hZGRyZXNzX2luc3RhbmNlID0gU3BlaUFkZHJlc3MuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU3BlaUFkZHJlc3MudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc3BlaV9hZGRyZXNzX2RpY3QgPSBzcGVpX2FkZHJlc3NfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNwZWlBZGRyZXNzIGZyb20gYSBkaWN0CnNwZWlfYWRkcmVzc19mcm9tX2RpY3QgPSBTcGVpQWRkcmVzcy5mcm9tX2RpY3Qoc3BlaV9hZGRyZXNzX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SpeiAdvancedPaymentInfo.md b/docs/SpeiAdvancedPaymentInfo.md index 07d93f81..f1e45c9c 100644 --- a/docs/SpeiAdvancedPaymentInfo.md +++ b/docs/SpeiAdvancedPaymentInfo.md @@ -1,38 +1 @@ -# SpeiAdvancedPaymentInfo - -Advanced SPEI payment information for Mexican bank transfers with full details - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**rail** | **str** | The payment rail type for SPEI transfers | -**addressing_system** | **str** | The addressing system used for SPEI transfers | -**account_holder_given_name** | **str** | The given name (first name) of the account holder | -**account_holder_surname** | **str** | The surname (last name) of the account holder | -**country** | **str** | The country for the transfer (ISO 3166-1 alpha-2 code) | -**bank_name** | **str** | The name of the bank | [optional] -**beneficiary_rfc** | **str** | The RFC (Registro Federal de Contribuyentes) of the beneficiary | [optional] -**sender_document_id** | **str** | The document ID of the sender | [optional] -**clabe** | **str** | The CLABE (Clave Bancaria Estandarizada) number | - -## Example - -```python -from fireblocks.models.spei_advanced_payment_info import SpeiAdvancedPaymentInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of SpeiAdvancedPaymentInfo from a JSON string -spei_advanced_payment_info_instance = SpeiAdvancedPaymentInfo.from_json(json) -# print the JSON string representation of the object -print(SpeiAdvancedPaymentInfo.to_json()) - -# convert the object into a dict -spei_advanced_payment_info_dict = spei_advanced_payment_info_instance.to_dict() -# create an instance of SpeiAdvancedPaymentInfo from a dict -spei_advanced_payment_info_from_dict = SpeiAdvancedPaymentInfo.from_dict(spei_advanced_payment_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTcGVpQWR2YW5jZWRQYXltZW50SW5mbwoKQWR2YW5jZWQgU1BFSSBwYXltZW50IGluZm9ybWF0aW9uIGZvciBNZXhpY2FuIGJhbmsgdHJhbnNmZXJzIHdpdGggZnVsbCBkZXRhaWxzCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcmFpbCoqIHwgKipzdHIqKiB8IFRoZSBwYXltZW50IHJhaWwgdHlwZSBmb3IgU1BFSSB0cmFuc2ZlcnMgfCAKKiphZGRyZXNzaW5nX3N5c3RlbSoqIHwgKipzdHIqKiB8IFRoZSBhZGRyZXNzaW5nIHN5c3RlbSB1c2VkIGZvciBTUEVJIHRyYW5zZmVycyB8IAoqKmFjY291bnRfaG9sZGVyX2dpdmVuX25hbWUqKiB8ICoqc3RyKiogfCBUaGUgZ2l2ZW4gbmFtZSAoZmlyc3QgbmFtZSkgb2YgdGhlIGFjY291bnQgaG9sZGVyIHwgCioqYWNjb3VudF9ob2xkZXJfc3VybmFtZSoqIHwgKipzdHIqKiB8IFRoZSBzdXJuYW1lIChsYXN0IG5hbWUpIG9mIHRoZSBhY2NvdW50IGhvbGRlciB8IAoqKmNvdW50cnkqKiB8ICoqc3RyKiogfCBUaGUgY291bnRyeSBmb3IgdGhlIHRyYW5zZmVyIChJU08gMzE2Ni0xIGFscGhhLTIgY29kZSkgfCAKKipiYW5rX25hbWUqKiB8ICoqc3RyKiogfCBUaGUgbmFtZSBvZiB0aGUgYmFuayB8IFtvcHRpb25hbF0gCioqYmVuZWZpY2lhcnlfcmZjKiogfCAqKnN0cioqIHwgVGhlIFJGQyAoUmVnaXN0cm8gRmVkZXJhbCBkZSBDb250cmlidXllbnRlcykgb2YgdGhlIGJlbmVmaWNpYXJ5IHwgW29wdGlvbmFsXSAKKipzZW5kZXJfZG9jdW1lbnRfaWQqKiB8ICoqc3RyKiogfCBUaGUgZG9jdW1lbnQgSUQgb2YgdGhlIHNlbmRlciB8IFtvcHRpb25hbF0gCioqY2xhYmUqKiB8ICoqc3RyKiogfCBUaGUgQ0xBQkUgKENsYXZlIEJhbmNhcmlhIEVzdGFuZGFyaXphZGEpIG51bWJlciB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3BlaV9hZHZhbmNlZF9wYXltZW50X2luZm8gaW1wb3J0IFNwZWlBZHZhbmNlZFBheW1lbnRJbmZvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTcGVpQWR2YW5jZWRQYXltZW50SW5mbyBmcm9tIGEgSlNPTiBzdHJpbmcKc3BlaV9hZHZhbmNlZF9wYXltZW50X2luZm9faW5zdGFuY2UgPSBTcGVpQWR2YW5jZWRQYXltZW50SW5mby5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTcGVpQWR2YW5jZWRQYXltZW50SW5mby50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzcGVpX2FkdmFuY2VkX3BheW1lbnRfaW5mb19kaWN0ID0gc3BlaV9hZHZhbmNlZF9wYXltZW50X2luZm9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNwZWlBZHZhbmNlZFBheW1lbnRJbmZvIGZyb20gYSBkaWN0CnNwZWlfYWR2YW5jZWRfcGF5bWVudF9pbmZvX2Zyb21fZGljdCA9IFNwZWlBZHZhbmNlZFBheW1lbnRJbmZvLmZyb21fZGljdChzcGVpX2FkdmFuY2VkX3BheW1lbnRfaW5mb19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SpeiBasicPaymentInfo.md b/docs/SpeiBasicPaymentInfo.md index 9fccdea3..13fbeb53 100644 --- a/docs/SpeiBasicPaymentInfo.md +++ b/docs/SpeiBasicPaymentInfo.md @@ -1,31 +1 @@ -# SpeiBasicPaymentInfo - -Basic SPEI payment information for Mexican bank transfers - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**spei_clabe** | **str** | The CLABE (Clave Bancaria Estandarizada) number for SPEI transfers | -**spei_name** | **str** | The name associated with the SPEI account | [optional] - -## Example - -```python -from fireblocks.models.spei_basic_payment_info import SpeiBasicPaymentInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of SpeiBasicPaymentInfo from a JSON string -spei_basic_payment_info_instance = SpeiBasicPaymentInfo.from_json(json) -# print the JSON string representation of the object -print(SpeiBasicPaymentInfo.to_json()) - -# convert the object into a dict -spei_basic_payment_info_dict = spei_basic_payment_info_instance.to_dict() -# create an instance of SpeiBasicPaymentInfo from a dict -spei_basic_payment_info_from_dict = SpeiBasicPaymentInfo.from_dict(spei_basic_payment_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTcGVpQmFzaWNQYXltZW50SW5mbwoKQmFzaWMgU1BFSSBwYXltZW50IGluZm9ybWF0aW9uIGZvciBNZXhpY2FuIGJhbmsgdHJhbnNmZXJzCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3BlaV9jbGFiZSoqIHwgKipzdHIqKiB8IFRoZSBDTEFCRSAoQ2xhdmUgQmFuY2FyaWEgRXN0YW5kYXJpemFkYSkgbnVtYmVyIGZvciBTUEVJIHRyYW5zZmVycyB8IAoqKnNwZWlfbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgU1BFSSBhY2NvdW50IHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwZWlfYmFzaWNfcGF5bWVudF9pbmZvIGltcG9ydCBTcGVpQmFzaWNQYXltZW50SW5mbwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3BlaUJhc2ljUGF5bWVudEluZm8gZnJvbSBhIEpTT04gc3RyaW5nCnNwZWlfYmFzaWNfcGF5bWVudF9pbmZvX2luc3RhbmNlID0gU3BlaUJhc2ljUGF5bWVudEluZm8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU3BlaUJhc2ljUGF5bWVudEluZm8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc3BlaV9iYXNpY19wYXltZW50X2luZm9fZGljdCA9IHNwZWlfYmFzaWNfcGF5bWVudF9pbmZvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTcGVpQmFzaWNQYXltZW50SW5mbyBmcm9tIGEgZGljdApzcGVpX2Jhc2ljX3BheW1lbnRfaW5mb19mcm9tX2RpY3QgPSBTcGVpQmFzaWNQYXltZW50SW5mby5mcm9tX2RpY3Qoc3BlaV9iYXNpY19wYXltZW50X2luZm9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SpeiDestination.md b/docs/SpeiDestination.md index 14e1f024..e715d52e 100644 --- a/docs/SpeiDestination.md +++ b/docs/SpeiDestination.md @@ -1,30 +1 @@ -# SpeiDestination - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | -**address** | [**SpeiAddress**](SpeiAddress.md) | | - -## Example - -```python -from fireblocks.models.spei_destination import SpeiDestination - -# TODO update the JSON string below -json = "{}" -# create an instance of SpeiDestination from a JSON string -spei_destination_instance = SpeiDestination.from_json(json) -# print the JSON string representation of the object -print(SpeiDestination.to_json()) - -# convert the object into a dict -spei_destination_dict = spei_destination_instance.to_dict() -# create an instance of SpeiDestination from a dict -spei_destination_from_dict = SpeiDestination.from_dict(spei_destination_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTcGVpRGVzdGluYXRpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgKipzdHIqKiB8ICB8IAoqKmFkZHJlc3MqKiB8IFsqKlNwZWlBZGRyZXNzKipdKFNwZWlBZGRyZXNzLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3BlaV9kZXN0aW5hdGlvbiBpbXBvcnQgU3BlaURlc3RpbmF0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTcGVpRGVzdGluYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCnNwZWlfZGVzdGluYXRpb25faW5zdGFuY2UgPSBTcGVpRGVzdGluYXRpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU3BlaURlc3RpbmF0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNwZWlfZGVzdGluYXRpb25fZGljdCA9IHNwZWlfZGVzdGluYXRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNwZWlEZXN0aW5hdGlvbiBmcm9tIGEgZGljdApzcGVpX2Rlc3RpbmF0aW9uX2Zyb21fZGljdCA9IFNwZWlEZXN0aW5hdGlvbi5mcm9tX2RpY3Qoc3BlaV9kZXN0aW5hdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SplitRequest.md b/docs/SplitRequest.md index 1105b716..3c43e128 100644 --- a/docs/SplitRequest.md +++ b/docs/SplitRequest.md @@ -1,33 +1 @@ -# SplitRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | id of position to split | -**amount** | **str** | Amount of tokens to be transferred to the new stake account. | -**fee** | **str** | Represents the fee for a transaction, which can be specified as a percentage value. Only one of fee/feeLevel is required. | [optional] -**fee_level** | [**FeeLevel**](FeeLevel.md) | | [optional] -**tx_note** | **str** | The note to associate with the split transactions. | [optional] - -## Example - -```python -from fireblocks.models.split_request import SplitRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of SplitRequest from a JSON string -split_request_instance = SplitRequest.from_json(json) -# print the JSON string representation of the object -print(SplitRequest.to_json()) - -# convert the object into a dict -split_request_dict = split_request_instance.to_dict() -# create an instance of SplitRequest from a dict -split_request_from_dict = SplitRequest.from_dict(split_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTcGxpdFJlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBpZCBvZiBwb3NpdGlvbiB0byBzcGxpdCB8IAoqKmFtb3VudCoqIHwgKipzdHIqKiB8IEFtb3VudCBvZiB0b2tlbnMgdG8gYmUgdHJhbnNmZXJyZWQgdG8gdGhlIG5ldyBzdGFrZSBhY2NvdW50LiB8IAoqKmZlZSoqIHwgKipzdHIqKiB8IFJlcHJlc2VudHMgdGhlIGZlZSBmb3IgYSB0cmFuc2FjdGlvbiwgd2hpY2ggY2FuIGJlIHNwZWNpZmllZCBhcyBhIHBlcmNlbnRhZ2UgdmFsdWUuIE9ubHkgb25lIG9mIGZlZS9mZWVMZXZlbCBpcyByZXF1aXJlZC4gfCBbb3B0aW9uYWxdIAoqKmZlZV9sZXZlbCoqIHwgWyoqRmVlTGV2ZWwqKl0oRmVlTGV2ZWwubWQpIHwgIHwgW29wdGlvbmFsXSAKKip0eF9ub3RlKiogfCAqKnN0cioqIHwgVGhlIG5vdGUgdG8gYXNzb2NpYXRlIHdpdGggdGhlIHNwbGl0IHRyYW5zYWN0aW9ucy4gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3BsaXRfcmVxdWVzdCBpbXBvcnQgU3BsaXRSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTcGxpdFJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCnNwbGl0X3JlcXVlc3RfaW5zdGFuY2UgPSBTcGxpdFJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU3BsaXRSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNwbGl0X3JlcXVlc3RfZGljdCA9IHNwbGl0X3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNwbGl0UmVxdWVzdCBmcm9tIGEgZGljdApzcGxpdF9yZXF1ZXN0X2Zyb21fZGljdCA9IFNwbGl0UmVxdWVzdC5mcm9tX2RpY3Qoc3BsaXRfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SplitResponse.md b/docs/SplitResponse.md index 5686e9d6..cc029ede 100644 --- a/docs/SplitResponse.md +++ b/docs/SplitResponse.md @@ -1,29 +1 @@ -# SplitResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The unique identifier of the new staking position | - -## Example - -```python -from fireblocks.models.split_response import SplitResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of SplitResponse from a JSON string -split_response_instance = SplitResponse.from_json(json) -# print the JSON string representation of the object -print(SplitResponse.to_json()) - -# convert the object into a dict -split_response_dict = split_response_instance.to_dict() -# create an instance of SplitResponse from a dict -split_response_from_dict = SplitResponse.from_dict(split_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTcGxpdFJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBuZXcgc3Rha2luZyBwb3NpdGlvbiB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3BsaXRfcmVzcG9uc2UgaW1wb3J0IFNwbGl0UmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFNwbGl0UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnNwbGl0X3Jlc3BvbnNlX2luc3RhbmNlID0gU3BsaXRSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTcGxpdFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnNwbGl0X3Jlc3BvbnNlX2RpY3QgPSBzcGxpdF9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3BsaXRSZXNwb25zZSBmcm9tIGEgZGljdApzcGxpdF9yZXNwb25zZV9mcm9tX2RpY3QgPSBTcGxpdFJlc3BvbnNlLmZyb21fZGljdChzcGxpdF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/StEthBlockchainData.md b/docs/StEthBlockchainData.md index 777c7649..ef660c6d 100644 --- a/docs/StEthBlockchainData.md +++ b/docs/StEthBlockchainData.md @@ -1,31 +1 @@ -# StEthBlockchainData - -Additional fields per blockchain for Staked Ethereum (STETH_ETH) - can be empty or missing if not initialized or no additional info exists. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**total_withdrawable_amount** | **str** | The total amount available for withdrawal. | -**total_inactive_amount** | **str** | The total inactive amount. | - -## Example - -```python -from fireblocks.models.st_eth_blockchain_data import StEthBlockchainData - -# TODO update the JSON string below -json = "{}" -# create an instance of StEthBlockchainData from a JSON string -st_eth_blockchain_data_instance = StEthBlockchainData.from_json(json) -# print the JSON string representation of the object -print(StEthBlockchainData.to_json()) - -# convert the object into a dict -st_eth_blockchain_data_dict = st_eth_blockchain_data_instance.to_dict() -# create an instance of StEthBlockchainData from a dict -st_eth_blockchain_data_from_dict = StEthBlockchainData.from_dict(st_eth_blockchain_data_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTdEV0aEJsb2NrY2hhaW5EYXRhCgpBZGRpdGlvbmFsIGZpZWxkcyBwZXIgYmxvY2tjaGFpbiBmb3IgU3Rha2VkIEV0aGVyZXVtIChTVEVUSF9FVEgpIC0gY2FuIGJlIGVtcHR5IG9yIG1pc3NpbmcgaWYgbm90IGluaXRpYWxpemVkIG9yIG5vIGFkZGl0aW9uYWwgaW5mbyBleGlzdHMuCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdG90YWxfd2l0aGRyYXdhYmxlX2Ftb3VudCoqIHwgKipzdHIqKiB8IFRoZSB0b3RhbCBhbW91bnQgYXZhaWxhYmxlIGZvciB3aXRoZHJhd2FsLiB8IAoqKnRvdGFsX2luYWN0aXZlX2Ftb3VudCoqIHwgKipzdHIqKiB8IFRoZSB0b3RhbCBpbmFjdGl2ZSBhbW91bnQuIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zdF9ldGhfYmxvY2tjaGFpbl9kYXRhIGltcG9ydCBTdEV0aEJsb2NrY2hhaW5EYXRhCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTdEV0aEJsb2NrY2hhaW5EYXRhIGZyb20gYSBKU09OIHN0cmluZwpzdF9ldGhfYmxvY2tjaGFpbl9kYXRhX2luc3RhbmNlID0gU3RFdGhCbG9ja2NoYWluRGF0YS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTdEV0aEJsb2NrY2hhaW5EYXRhLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnN0X2V0aF9ibG9ja2NoYWluX2RhdGFfZGljdCA9IHN0X2V0aF9ibG9ja2NoYWluX2RhdGFfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFN0RXRoQmxvY2tjaGFpbkRhdGEgZnJvbSBhIGRpY3QKc3RfZXRoX2Jsb2NrY2hhaW5fZGF0YV9mcm9tX2RpY3QgPSBTdEV0aEJsb2NrY2hhaW5EYXRhLmZyb21fZGljdChzdF9ldGhfYmxvY2tjaGFpbl9kYXRhX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/StakeRequest.md b/docs/StakeRequest.md index 7a688cab..65904183 100644 --- a/docs/StakeRequest.md +++ b/docs/StakeRequest.md @@ -1,37 +1 @@ -# StakeRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vault_account_id** | **str** | The Fireblocks vault account ID that will source the funds for staking. | -**provider_id** | [**StakingProvider**](StakingProvider.md) | | -**stake_amount** | **str** | The amount of tokens to stake. The amount may be truncated to match the chain's decimal precision requirements. | -**tx_note** | **str** | Optional note or comment to associate with the stake transaction. This note will be included in transaction records and can be used for tracking or audit purposes. | [optional] -**fee** | **str** | Optional transaction fee. Controls the priority and cost of the blockchain transaction. Only one of 'fee' or 'feeLevel' should be provided; if both are specified, 'feeLevel' takes precedence. | [optional] -**fee_level** | [**FeeLevel**](FeeLevel.md) | | [optional] -**chain_descriptor** | **str** | Protocol identifier for the staking operation | [optional] -**id** | **str** | Applies only to Ethereum compounding validator staking (Pectra/EIP-7251). The ID of an existing staking position to add additional stake to. When provided, adds stake to the specified position instead of creating a new one. Requires 'isCompoundingValidator' to be true. | [optional] -**is_compounding_validator** | **bool** | Applies only to Ethereum staking. Indicates whether to use a compounding validator (see Pectra/EIP-7251). When true, creates a position that supports adding additional stake via the 'id' parameter. If not provided, defaults to false and a legacy (non-compounding) validator will be used. | [optional] - -## Example - -```python -from fireblocks.models.stake_request import StakeRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of StakeRequest from a JSON string -stake_request_instance = StakeRequest.from_json(json) -# print the JSON string representation of the object -print(StakeRequest.to_json()) - -# convert the object into a dict -stake_request_dict = stake_request_instance.to_dict() -# create an instance of StakeRequest from a dict -stake_request_from_dict = StakeRequest.from_dict(stake_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTdGFrZVJlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8IFRoZSBGaXJlYmxvY2tzIHZhdWx0IGFjY291bnQgSUQgdGhhdCB3aWxsIHNvdXJjZSB0aGUgZnVuZHMgZm9yIHN0YWtpbmcuIHwgCioqcHJvdmlkZXJfaWQqKiB8IFsqKlN0YWtpbmdQcm92aWRlcioqXShTdGFraW5nUHJvdmlkZXIubWQpIHwgIHwgCioqc3Rha2VfYW1vdW50KiogfCAqKnN0cioqIHwgVGhlIGFtb3VudCBvZiB0b2tlbnMgdG8gc3Rha2UuIFRoZSBhbW91bnQgbWF5IGJlIHRydW5jYXRlZCB0byBtYXRjaCB0aGUgY2hhaW4mIzM5O3MgZGVjaW1hbCBwcmVjaXNpb24gcmVxdWlyZW1lbnRzLiB8IAoqKnR4X25vdGUqKiB8ICoqc3RyKiogfCBPcHRpb25hbCBub3RlIG9yIGNvbW1lbnQgdG8gYXNzb2NpYXRlIHdpdGggdGhlIHN0YWtlIHRyYW5zYWN0aW9uLiBUaGlzIG5vdGUgd2lsbCBiZSBpbmNsdWRlZCBpbiB0cmFuc2FjdGlvbiByZWNvcmRzIGFuZCBjYW4gYmUgdXNlZCBmb3IgdHJhY2tpbmcgb3IgYXVkaXQgcHVycG9zZXMuIHwgW29wdGlvbmFsXSAKKipmZWUqKiB8ICoqc3RyKiogfCBPcHRpb25hbCB0cmFuc2FjdGlvbiBmZWUuIENvbnRyb2xzIHRoZSBwcmlvcml0eSBhbmQgY29zdCBvZiB0aGUgYmxvY2tjaGFpbiB0cmFuc2FjdGlvbi4gT25seSBvbmUgb2YgJiMzOTtmZWUmIzM5OyBvciAmIzM5O2ZlZUxldmVsJiMzOTsgc2hvdWxkIGJlIHByb3ZpZGVkOyBpZiBib3RoIGFyZSBzcGVjaWZpZWQsICYjMzk7ZmVlTGV2ZWwmIzM5OyB0YWtlcyBwcmVjZWRlbmNlLiB8IFtvcHRpb25hbF0gCioqZmVlX2xldmVsKiogfCBbKipGZWVMZXZlbCoqXShGZWVMZXZlbC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmNoYWluX2Rlc2NyaXB0b3IqKiB8ICoqc3RyKiogfCBQcm90b2NvbCBpZGVudGlmaWVyIGZvciB0aGUgc3Rha2luZyBvcGVyYXRpb24gfCBbb3B0aW9uYWxdIAoqKmlkKiogfCAqKnN0cioqIHwgQXBwbGllcyBvbmx5IHRvIEV0aGVyZXVtIGNvbXBvdW5kaW5nIHZhbGlkYXRvciBzdGFraW5nIChQZWN0cmEvRUlQLTcyNTEpLiBUaGUgSUQgb2YgYW4gZXhpc3Rpbmcgc3Rha2luZyBwb3NpdGlvbiB0byBhZGQgYWRkaXRpb25hbCBzdGFrZSB0by4gV2hlbiBwcm92aWRlZCwgYWRkcyBzdGFrZSB0byB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgb25lLiBSZXF1aXJlcyAmIzM5O2lzQ29tcG91bmRpbmdWYWxpZGF0b3ImIzM5OyB0byBiZSB0cnVlLiB8IFtvcHRpb25hbF0gCioqaXNfY29tcG91bmRpbmdfdmFsaWRhdG9yKiogfCAqKmJvb2wqKiB8IEFwcGxpZXMgb25seSB0byBFdGhlcmV1bSBzdGFraW5nLiBJbmRpY2F0ZXMgd2hldGhlciB0byB1c2UgYSBjb21wb3VuZGluZyB2YWxpZGF0b3IgKHNlZSBQZWN0cmEvRUlQLTcyNTEpLiBXaGVuIHRydWUsIGNyZWF0ZXMgYSBwb3NpdGlvbiB0aGF0IHN1cHBvcnRzIGFkZGluZyBhZGRpdGlvbmFsIHN0YWtlIHZpYSB0aGUgJiMzOTtpZCYjMzk7IHBhcmFtZXRlci4gSWYgbm90IHByb3ZpZGVkLCBkZWZhdWx0cyB0byBmYWxzZSBhbmQgYSBsZWdhY3kgKG5vbi1jb21wb3VuZGluZykgdmFsaWRhdG9yIHdpbGwgYmUgdXNlZC4gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3Rha2VfcmVxdWVzdCBpbXBvcnQgU3Rha2VSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTdGFrZVJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCnN0YWtlX3JlcXVlc3RfaW5zdGFuY2UgPSBTdGFrZVJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU3Rha2VSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnN0YWtlX3JlcXVlc3RfZGljdCA9IHN0YWtlX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFN0YWtlUmVxdWVzdCBmcm9tIGEgZGljdApzdGFrZV9yZXF1ZXN0X2Zyb21fZGljdCA9IFN0YWtlUmVxdWVzdC5mcm9tX2RpY3Qoc3Rha2VfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/StakeResponse.md b/docs/StakeResponse.md index 486ac674..75dbe303 100644 --- a/docs/StakeResponse.md +++ b/docs/StakeResponse.md @@ -1,29 +1 @@ -# StakeResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The unique identifier of the staking position | - -## Example - -```python -from fireblocks.models.stake_response import StakeResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of StakeResponse from a JSON string -stake_response_instance = StakeResponse.from_json(json) -# print the JSON string representation of the object -print(StakeResponse.to_json()) - -# convert the object into a dict -stake_response_dict = stake_response_instance.to_dict() -# create an instance of StakeResponse from a dict -stake_response_from_dict = StakeResponse.from_dict(stake_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTdGFrZVJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBzdGFraW5nIHBvc2l0aW9uIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zdGFrZV9yZXNwb25zZSBpbXBvcnQgU3Rha2VSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3Rha2VSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKc3Rha2VfcmVzcG9uc2VfaW5zdGFuY2UgPSBTdGFrZVJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFN0YWtlUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc3Rha2VfcmVzcG9uc2VfZGljdCA9IHN0YWtlX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTdGFrZVJlc3BvbnNlIGZyb20gYSBkaWN0CnN0YWtlX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFN0YWtlUmVzcG9uc2UuZnJvbV9kaWN0KHN0YWtlX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/StakingApi.md b/docs/StakingApi.md index de0371ea..ef0702fe 100644 --- a/docs/StakingApi.md +++ b/docs/StakingApi.md @@ -1,1220 +1 @@ -# fireblocks.StakingApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**approve_terms_of_service_by_provider_id**](StakingApi.md#approve_terms_of_service_by_provider_id) | **POST** /staking/providers/{providerId}/approveTermsOfService | Approve provider terms of service -[**claim_rewards**](StakingApi.md#claim_rewards) | **POST** /staking/chains/{chainDescriptor}/claim_rewards | Claim accrued rewards -[**consolidate**](StakingApi.md#consolidate) | **POST** /staking/chains/{chainDescriptor}/consolidate | Consolidate staking positions (ETH validator consolidation) -[**get_all_delegations**](StakingApi.md#get_all_delegations) | **GET** /staking/positions | List staking positions -[**get_chain_info**](StakingApi.md#get_chain_info) | **GET** /staking/chains/{chainDescriptor}/chainInfo | Get chain-level staking parameters -[**get_chains**](StakingApi.md#get_chains) | **GET** /staking/chains | List supported staking chains -[**get_delegation_by_id**](StakingApi.md#get_delegation_by_id) | **GET** /staking/positions/{id} | Get position details -[**get_providers**](StakingApi.md#get_providers) | **GET** /staking/providers | List staking providers -[**get_summary**](StakingApi.md#get_summary) | **GET** /staking/positions/summary | Get positions summary -[**get_summary_by_vault**](StakingApi.md#get_summary_by_vault) | **GET** /staking/positions/summary/vaults | Get positions summary by vault -[**merge_stake_accounts**](StakingApi.md#merge_stake_accounts) | **POST** /staking/chains/{chainDescriptor}/merge | Merge staking positions -[**split**](StakingApi.md#split) | **POST** /staking/chains/{chainDescriptor}/split | Split a staking position -[**stake**](StakingApi.md#stake) | **POST** /staking/chains/{chainDescriptor}/stake | Initiate or add to existing stake -[**unstake**](StakingApi.md#unstake) | **POST** /staking/chains/{chainDescriptor}/unstake | Initiate unstake -[**withdraw**](StakingApi.md#withdraw) | **POST** /staking/chains/{chainDescriptor}/withdraw | Withdraw staked funds - - -# **approve_terms_of_service_by_provider_id** -> approve_terms_of_service_by_provider_id(provider_id, idempotency_key=idempotency_key) - -Approve provider terms of service - -Approves the provider's terms of service. Must be called once before performing any staking operation with this provider. - -### Example - - -```python -from fireblocks.models.staking_provider import StakingProvider -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - provider_id = fireblocks.StakingProvider() # StakingProvider | Unique identifier of the staking provider. - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Approve provider terms of service - fireblocks.staking.approve_terms_of_service_by_provider_id(provider_id, idempotency_key=idempotency_key).result() - except Exception as e: - print("Exception when calling StakingApi->approve_terms_of_service_by_provider_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **provider_id** | [**StakingProvider**](.md)| Unique identifier of the staking provider. | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Terms of service accepted. | * X-Request-ID -
| -**400** | Bad request: missing/invalid fields, unsupported amount, or malformed payload. | * X-Request-ID -
| -**403** | Forbidden: insufficient permissions, disabled feature, or restricted provider/validator. | * X-Request-ID -
| -**404** | Not found: requested resource does not exist (e.g., position, validator, provider, or wallet). | * X-Request-ID -
| -**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| -**500** | Internal error while processing the request. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **claim_rewards** -> claim_rewards(chain_descriptor, claim_rewards_request, idempotency_key=idempotency_key) - -Claim accrued rewards - -Claims available staking rewards for the specified chain and vault. Supported chains: Solana and Polygon (Matic). Behavior depends on protocol reward distribution. - -### Example - - -```python -from fireblocks.models.claim_rewards_request import ClaimRewardsRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - chain_descriptor = 'SOL' # str | Protocol identifier for the claim rewards staking operation (e.g., MATIC/SOL). - claim_rewards_request = fireblocks.ClaimRewardsRequest() # ClaimRewardsRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Claim accrued rewards - fireblocks.staking.claim_rewards(chain_descriptor, claim_rewards_request, idempotency_key=idempotency_key).result() - except Exception as e: - print("Exception when calling StakingApi->claim_rewards: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **chain_descriptor** | **str**| Protocol identifier for the claim rewards staking operation (e.g., MATIC/SOL). | - **claim_rewards_request** | [**ClaimRewardsRequest**](ClaimRewardsRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Claim-rewards request accepted and created. | * X-Request-ID -
| -**400** | Bad request: missing/invalid fields, unsupported amount, or malformed payload. | * X-Request-ID -
| -**403** | Forbidden: insufficient permissions, disabled feature, or restricted provider/validator. | * X-Request-ID -
| -**404** | Not found: requested resource does not exist (e.g., position, validator, provider, or wallet). | * X-Request-ID -
| -**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| -**500** | Internal error while processing the request. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **consolidate** -> MergeStakeAccountsResponse consolidate(chain_descriptor, merge_stake_accounts_request, idempotency_key=idempotency_key) - -Consolidate staking positions (ETH validator consolidation) - -Consolidates the source staking position into the destination, merging the balance into the destination and closing the source position once complete. Both positions must be from the same validator provider and same vault account. On chain, this translates into a consolidation transaction, where the source validator is consolidated into the destination validator. Supported chains: Ethereum (ETH) only. -
Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.merge_stake_accounts_request import MergeStakeAccountsRequest -from fireblocks.models.merge_stake_accounts_response import MergeStakeAccountsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - chain_descriptor = 'ETH' # str | Protocol identifier for the staking operation (e.g., ETH). - merge_stake_accounts_request = fireblocks.MergeStakeAccountsRequest() # MergeStakeAccountsRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Consolidate staking positions (ETH validator consolidation) - api_response = fireblocks.staking.consolidate(chain_descriptor, merge_stake_accounts_request, idempotency_key=idempotency_key).result() - print("The response of StakingApi->consolidate:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling StakingApi->consolidate: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **chain_descriptor** | **str**| Protocol identifier for the staking operation (e.g., ETH). | - **merge_stake_accounts_request** | [**MergeStakeAccountsRequest**](MergeStakeAccountsRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**MergeStakeAccountsResponse**](MergeStakeAccountsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Merge request accepted and created. | * X-Request-ID -
| -**400** | Bad request: missing/invalid fields, unsupported amount, or malformed payload. | * X-Request-ID -
| -**403** | Forbidden: insufficient permissions, disabled feature, or restricted provider/validator. | * X-Request-ID -
| -**404** | Not found: requested resource does not exist (e.g., position, validator, provider, or wallet). | * X-Request-ID -
| -**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| -**500** | Internal error while processing the request. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_all_delegations** -> List[Delegation] get_all_delegations(chain_descriptor=chain_descriptor) - -List staking positions - -Returns all staking positions with core details: amounts, rewards, status, chain, and vault. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.chain_descriptor import ChainDescriptor -from fireblocks.models.delegation import Delegation -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - chain_descriptor = fireblocks.ChainDescriptor() # ChainDescriptor | Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned. (optional) - - try: - # List staking positions - api_response = fireblocks.staking.get_all_delegations(chain_descriptor=chain_descriptor).result() - print("The response of StakingApi->get_all_delegations:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling StakingApi->get_all_delegations: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **chain_descriptor** | [**ChainDescriptor**](.md)| Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned. | [optional] - -### Return type - -[**List[Delegation]**](Delegation.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Positions retrieved successfully. | * X-Request-ID -
| -**400** | Bad request: missing/invalid fields, unsupported amount, or malformed payload. | * X-Request-ID -
| -**403** | Forbidden: insufficient permissions, disabled feature, or restricted provider/validator. | * X-Request-ID -
| -**404** | Not found: requested resource does not exist (e.g., position, validator, provider, or wallet). | * X-Request-ID -
| -**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| -**500** | Internal error while processing the request. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_chain_info** -> ChainInfoResponse get_chain_info(chain_descriptor) - -Get chain-level staking parameters - -Returns chain-specific staking information such as epoch/slot cadence, lockup or unbonding periods, fee/reward mechanics, and other operational constraints. - -### Example - - -```python -from fireblocks.models.chain_descriptor import ChainDescriptor -from fireblocks.models.chain_info_response import ChainInfoResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - chain_descriptor = fireblocks.ChainDescriptor() # ChainDescriptor | Protocol identifier for the chain info staking operation (e.g., ETH/MATIC/SOL). - - try: - # Get chain-level staking parameters - api_response = fireblocks.staking.get_chain_info(chain_descriptor).result() - print("The response of StakingApi->get_chain_info:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling StakingApi->get_chain_info: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **chain_descriptor** | [**ChainDescriptor**](.md)| Protocol identifier for the chain info staking operation (e.g., ETH/MATIC/SOL). | - -### Return type - -[**ChainInfoResponse**](ChainInfoResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Chain-specific staking information returned successfully. | * X-Request-ID -
| -**400** | Bad request: missing/invalid fields, unsupported amount, or malformed payload. | * X-Request-ID -
| -**403** | Forbidden: insufficient permissions, disabled feature, or restricted provider/validator. | * X-Request-ID -
| -**404** | Not found: requested resource does not exist (e.g., position, validator, provider, or wallet). | * X-Request-ID -
| -**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| -**500** | Internal error while processing the request. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_chains** -> List[ChainDescriptor] get_chains() - -List supported staking chains - -Returns an alphabetical list of blockchains supported for staking by the current workspace context. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.chain_descriptor import ChainDescriptor -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # List supported staking chains - api_response = fireblocks.staking.get_chains().result() - print("The response of StakingApi->get_chains:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling StakingApi->get_chains: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**List[ChainDescriptor]**](ChainDescriptor.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | An array of supported chains was returned successfully. | * X-Request-ID -
| -**403** | Forbidden: insufficient permissions, disabled feature, or restricted provider/validator. | * X-Request-ID -
| -**404** | Not found: requested resource does not exist (e.g., position, validator, provider, or wallet). | * X-Request-ID -
| -**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| -**500** | Internal error while processing the request. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_delegation_by_id** -> Delegation get_delegation_by_id(id) - -Get position details - -Returns full details for a single staking position: amounts, rewards, status, chain, and vault. - -### Example - - -```python -from fireblocks.models.delegation import Delegation -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - id = 'id_example' # str | Unique identifier of the staking position. - - try: - # Get position details - api_response = fireblocks.staking.get_delegation_by_id(id).result() - print("The response of StakingApi->get_delegation_by_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling StakingApi->get_delegation_by_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **id** | **str**| Unique identifier of the staking position. | - -### Return type - -[**Delegation**](Delegation.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Position retrieved successfully. | * X-Request-ID -
| -**400** | Bad request: missing/invalid fields, unsupported amount, or malformed payload. | * X-Request-ID -
| -**403** | Forbidden: insufficient permissions, disabled feature, or restricted provider/validator. | * X-Request-ID -
| -**404** | Not found: requested resource does not exist (e.g., position, validator, provider, or wallet). | * X-Request-ID -
| -**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| -**500** | Internal error while processing the request. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_providers** -> List[Provider] get_providers() - -List staking providers - -Returns all available staking providers with metadata such as name, ID, and supported chains. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.provider import Provider -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # List staking providers - api_response = fireblocks.staking.get_providers().result() - print("The response of StakingApi->get_providers:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling StakingApi->get_providers: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**List[Provider]**](Provider.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Supported providers retrieved successfully. | * X-Request-ID -
| -**403** | Forbidden: insufficient permissions, disabled feature, or restricted provider/validator. | * X-Request-ID -
| -**404** | Not found: requested resource does not exist (e.g., position, validator, provider, or wallet). | * X-Request-ID -
| -**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| -**500** | Internal error while processing the request. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_summary** -> DelegationSummary get_summary() - -Get positions summary - -Returns an aggregated cross-vault summary: active/inactive counts, total staked, and total rewards per chain. - -### Example - - -```python -from fireblocks.models.delegation_summary import DelegationSummary -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Get positions summary - api_response = fireblocks.staking.get_summary().result() - print("The response of StakingApi->get_summary:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling StakingApi->get_summary: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**DelegationSummary**](DelegationSummary.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Summary across all vaults returned successfully. | * X-Request-ID -
| -**403** | Forbidden: insufficient permissions, disabled feature, or restricted provider/validator. | * X-Request-ID -
| -**404** | Not found: requested resource does not exist (e.g., position, validator, provider, or wallet). | * X-Request-ID -
| -**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| -**500** | Internal error while processing the request. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_summary_by_vault** -> Dict[str, DelegationSummary] get_summary_by_vault() - -Get positions summary by vault - -Returns per-vault aggregates: status breakdown, total staked, and total rewards per chain. - -### Example - - -```python -from fireblocks.models.delegation_summary import DelegationSummary -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Get positions summary by vault - api_response = fireblocks.staking.get_summary_by_vault().result() - print("The response of StakingApi->get_summary_by_vault:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling StakingApi->get_summary_by_vault: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**Dict[str, DelegationSummary]**](DelegationSummary.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Per-vault summary returned successfully. | * X-Request-ID -
| -**403** | Forbidden: insufficient permissions, disabled feature, or restricted provider/validator. | * X-Request-ID -
| -**404** | Not found: requested resource does not exist (e.g., position, validator, provider, or wallet). | * X-Request-ID -
| -**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| -**500** | Internal error while processing the request. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **merge_stake_accounts** -> MergeStakeAccountsResponse merge_stake_accounts(chain_descriptor, merge_stake_accounts_request, idempotency_key=idempotency_key) - -Merge staking positions - -Merges the source stake account into the destination, consolidating the balance into the destination and closing the source account once complete. Both accounts must be from the same validator provider and of same vault account.. Supported chains: Solana (SOL). -
Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.merge_stake_accounts_request import MergeStakeAccountsRequest -from fireblocks.models.merge_stake_accounts_response import MergeStakeAccountsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - chain_descriptor = 'SOL' # str | Protocol identifier for the merge staking operation (e.g., SOL). - merge_stake_accounts_request = fireblocks.MergeStakeAccountsRequest() # MergeStakeAccountsRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Merge staking positions - api_response = fireblocks.staking.merge_stake_accounts(chain_descriptor, merge_stake_accounts_request, idempotency_key=idempotency_key).result() - print("The response of StakingApi->merge_stake_accounts:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling StakingApi->merge_stake_accounts: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **chain_descriptor** | **str**| Protocol identifier for the merge staking operation (e.g., SOL). | - **merge_stake_accounts_request** | [**MergeStakeAccountsRequest**](MergeStakeAccountsRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**MergeStakeAccountsResponse**](MergeStakeAccountsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Merge request accepted and created. | * X-Request-ID -
| -**400** | Bad request: missing/invalid fields, unsupported amount, or malformed payload. | * X-Request-ID -
| -**403** | Forbidden: insufficient permissions, disabled feature, or restricted provider/validator. | * X-Request-ID -
| -**404** | Not found: requested resource does not exist (e.g., position, validator, provider, or wallet). | * X-Request-ID -
| -**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| -**500** | Internal error while processing the request. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **split** -> SplitResponse split(chain_descriptor, split_request, idempotency_key=idempotency_key) - -Split a staking position - -Splits a staking position by creating a new stake account with the requested amount, while keeping the original account with the remaining balance. Supported chains: Solana (SOL). - -### Example - - -```python -from fireblocks.models.split_request import SplitRequest -from fireblocks.models.split_response import SplitResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - chain_descriptor = 'SOL' # str | Protocol identifier for the staking operation (e.g., SOL). - split_request = fireblocks.SplitRequest() # SplitRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Split a staking position - api_response = fireblocks.staking.split(chain_descriptor, split_request, idempotency_key=idempotency_key).result() - print("The response of StakingApi->split:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling StakingApi->split: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **chain_descriptor** | **str**| Protocol identifier for the staking operation (e.g., SOL). | - **split_request** | [**SplitRequest**](SplitRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**SplitResponse**](SplitResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Split request accepted and created. | * X-Request-ID -
| -**400** | Bad request: missing/invalid fields, unsupported amount, or malformed payload. | * X-Request-ID -
| -**403** | Forbidden: insufficient permissions, disabled feature, or restricted provider/validator. | * X-Request-ID -
| -**404** | Not found: requested resource does not exist (e.g., position, validator, provider, or wallet). | * X-Request-ID -
| -**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| -**500** | Internal error while processing the request. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **stake** -> StakeResponse stake(chain_descriptor, stake_request, idempotency_key=idempotency_key) - -Initiate or add to existing stake - -Creates a new staking position and returns its unique ID. For Ethereum compounding validator (EIP-7251): when the 'id' of an existing compounding validator position is provided, adds to that position; otherwise creates a new position. For Ethereum legacy validator: creates a new position regardless of existing delegations. For Cosmos chains and Ethereum liquid staking (Lido): automatically add to existing positions for the same validator provider and same vault account if one exists, otherwise create a new position. For Solana and Polygon: always create new positions regardless of existing delegations. - -### Example - - -```python -from fireblocks.models.chain_descriptor import ChainDescriptor -from fireblocks.models.stake_request import StakeRequest -from fireblocks.models.stake_response import StakeResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - chain_descriptor = fireblocks.ChainDescriptor() # ChainDescriptor | Protocol identifier for the stake staking operation (e.g., ATOM_COS/AXL/CELESTIA). - stake_request = fireblocks.StakeRequest() # StakeRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Initiate or add to existing stake - api_response = fireblocks.staking.stake(chain_descriptor, stake_request, idempotency_key=idempotency_key).result() - print("The response of StakingApi->stake:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling StakingApi->stake: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **chain_descriptor** | [**ChainDescriptor**](.md)| Protocol identifier for the stake staking operation (e.g., ATOM_COS/AXL/CELESTIA). | - **stake_request** | [**StakeRequest**](StakeRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**StakeResponse**](StakeResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Stake request accepted and created. | * X-Request-ID -
| -**400** | Bad request: missing/invalid fields, unsupported amount, or malformed payload. | * X-Request-ID -
| -**403** | Forbidden: insufficient permissions, disabled feature, or restricted provider/validator. | * X-Request-ID -
| -**404** | Not found: requested resource does not exist (e.g., position, validator, provider, or wallet). | * X-Request-ID -
| -**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| -**500** | Internal error while processing the request. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **unstake** -> unstake(chain_descriptor, unstake_request, idempotency_key=idempotency_key) - -Initiate unstake - -Submits a chain-specific unstake request. - -### Example - - -```python -from fireblocks.models.chain_descriptor import ChainDescriptor -from fireblocks.models.unstake_request import UnstakeRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - chain_descriptor = fireblocks.ChainDescriptor() # ChainDescriptor | Protocol identifier for the unstake staking operation (e.g., SOL/SOL_TEST/MATIC). - unstake_request = fireblocks.UnstakeRequest() # UnstakeRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Initiate unstake - fireblocks.staking.unstake(chain_descriptor, unstake_request, idempotency_key=idempotency_key).result() - except Exception as e: - print("Exception when calling StakingApi->unstake: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **chain_descriptor** | [**ChainDescriptor**](.md)| Protocol identifier for the unstake staking operation (e.g., SOL/SOL_TEST/MATIC). | - **unstake_request** | [**UnstakeRequest**](UnstakeRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Unstake request accepted and created. | * X-Request-ID -
| -**400** | Bad request: missing/invalid fields, unsupported amount, or malformed payload. | * X-Request-ID -
| -**403** | Forbidden: insufficient permissions, disabled feature, or restricted provider/validator. | * X-Request-ID -
| -**404** | Not found: requested resource does not exist (e.g., position, validator, provider, or wallet). | * X-Request-ID -
| -**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| -**500** | Internal error while processing the request. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **withdraw** -> withdraw(chain_descriptor, withdraw_request, idempotency_key=idempotency_key) - -Withdraw staked funds - -Withdraws funds that have completed the unbonding period. Typically requires the position to be deactivated first (unstake → unbond → withdraw). Amount and timing vary by chain protocol. - -### Example - - -```python -from fireblocks.models.chain_descriptor import ChainDescriptor -from fireblocks.models.withdraw_request import WithdrawRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - chain_descriptor = fireblocks.ChainDescriptor() # ChainDescriptor | Protocol identifier for the withdraw staking operation (e.g., ATOM_COS/ETH/STETH_ETH). - withdraw_request = fireblocks.WithdrawRequest() # WithdrawRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Withdraw staked funds - fireblocks.staking.withdraw(chain_descriptor, withdraw_request, idempotency_key=idempotency_key).result() - except Exception as e: - print("Exception when calling StakingApi->withdraw: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **chain_descriptor** | [**ChainDescriptor**](.md)| Protocol identifier for the withdraw staking operation (e.g., ATOM_COS/ETH/STETH_ETH). | - **withdraw_request** | [**WithdrawRequest**](WithdrawRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Withdraw request accepted and created. | * X-Request-ID -
| -**400** | Bad request: missing/invalid fields, unsupported amount, or malformed payload. | * X-Request-ID -
| -**403** | Forbidden: insufficient permissions, disabled feature, or restricted provider/validator. | * X-Request-ID -
| -**404** | Not found: requested resource does not exist (e.g., position, validator, provider, or wallet). | * X-Request-ID -
| -**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| -**500** | Internal error while processing the request. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLlN0YWtpbmdBcGkKCkFsbCBVUklzIGFyZSByZWxhdGl2ZSB0byAqaHR0cHM6Ly9hcGkuZmlyZWJsb2Nrcy5pby92MSoKCk1ldGhvZCB8IEhUVFAgcmVxdWVzdCB8IERlc2NyaXB0aW9uCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQpbKiphcHByb3ZlX3Rlcm1zX29mX3NlcnZpY2VfYnlfcHJvdmlkZXJfaWQqKl0oU3Rha2luZ0FwaS5tZCNhcHByb3ZlX3Rlcm1zX29mX3NlcnZpY2VfYnlfcHJvdmlkZXJfaWQpIHwgKipQT1NUKiogL3N0YWtpbmcvcHJvdmlkZXJzL3twcm92aWRlcklkfS9hcHByb3ZlVGVybXNPZlNlcnZpY2UgfCBBcHByb3ZlIHByb3ZpZGVyIHRlcm1zIG9mIHNlcnZpY2UKWyoqY2xhaW1fcmV3YXJkcyoqXShTdGFraW5nQXBpLm1kI2NsYWltX3Jld2FyZHMpIHwgKipQT1NUKiogL3N0YWtpbmcvY2hhaW5zL3tjaGFpbkRlc2NyaXB0b3J9L2NsYWltX3Jld2FyZHMgfCBDbGFpbSBhY2NydWVkIHJld2FyZHMKWyoqY29uc29saWRhdGUqKl0oU3Rha2luZ0FwaS5tZCNjb25zb2xpZGF0ZSkgfCAqKlBPU1QqKiAvc3Rha2luZy9jaGFpbnMve2NoYWluRGVzY3JpcHRvcn0vY29uc29saWRhdGUgfCBDb25zb2xpZGF0ZSBzdGFraW5nIHBvc2l0aW9ucyAoRVRIIHZhbGlkYXRvciBjb25zb2xpZGF0aW9uKQpbKipnZXRfYWxsX2RlbGVnYXRpb25zKipdKFN0YWtpbmdBcGkubWQjZ2V0X2FsbF9kZWxlZ2F0aW9ucykgfCAqKkdFVCoqIC9zdGFraW5nL3Bvc2l0aW9ucyB8IExpc3Qgc3Rha2luZyBwb3NpdGlvbnMKWyoqZ2V0X2NoYWluX2luZm8qKl0oU3Rha2luZ0FwaS5tZCNnZXRfY2hhaW5faW5mbykgfCAqKkdFVCoqIC9zdGFraW5nL2NoYWlucy97Y2hhaW5EZXNjcmlwdG9yfS9jaGFpbkluZm8gfCBHZXQgY2hhaW4tbGV2ZWwgc3Rha2luZyBwYXJhbWV0ZXJzClsqKmdldF9jaGFpbnMqKl0oU3Rha2luZ0FwaS5tZCNnZXRfY2hhaW5zKSB8ICoqR0VUKiogL3N0YWtpbmcvY2hhaW5zIHwgTGlzdCBzdXBwb3J0ZWQgc3Rha2luZyBjaGFpbnMKWyoqZ2V0X2RlbGVnYXRpb25fYnlfaWQqKl0oU3Rha2luZ0FwaS5tZCNnZXRfZGVsZWdhdGlvbl9ieV9pZCkgfCAqKkdFVCoqIC9zdGFraW5nL3Bvc2l0aW9ucy97aWR9IHwgR2V0IHBvc2l0aW9uIGRldGFpbHMKWyoqZ2V0X3Bvc2l0aW9ucyoqXShTdGFraW5nQXBpLm1kI2dldF9wb3NpdGlvbnMpIHwgKipHRVQqKiAvc3Rha2luZy9wb3NpdGlvbnNfcGFnaW5hdGVkIHwgTGlzdCBzdGFraW5nIHBvc2l0aW9ucyAoUGFnaW5hdGVkKQpbKipnZXRfcHJvdmlkZXJzKipdKFN0YWtpbmdBcGkubWQjZ2V0X3Byb3ZpZGVycykgfCAqKkdFVCoqIC9zdGFraW5nL3Byb3ZpZGVycyB8IExpc3Qgc3Rha2luZyBwcm92aWRlcnMKWyoqZ2V0X3N1bW1hcnkqKl0oU3Rha2luZ0FwaS5tZCNnZXRfc3VtbWFyeSkgfCAqKkdFVCoqIC9zdGFraW5nL3Bvc2l0aW9ucy9zdW1tYXJ5IHwgR2V0IHBvc2l0aW9ucyBzdW1tYXJ5ClsqKmdldF9zdW1tYXJ5X2J5X3ZhdWx0KipdKFN0YWtpbmdBcGkubWQjZ2V0X3N1bW1hcnlfYnlfdmF1bHQpIHwgKipHRVQqKiAvc3Rha2luZy9wb3NpdGlvbnMvc3VtbWFyeS92YXVsdHMgfCBHZXQgcG9zaXRpb25zIHN1bW1hcnkgYnkgdmF1bHQKWyoqbWVyZ2Vfc3Rha2VfYWNjb3VudHMqKl0oU3Rha2luZ0FwaS5tZCNtZXJnZV9zdGFrZV9hY2NvdW50cykgfCAqKlBPU1QqKiAvc3Rha2luZy9jaGFpbnMve2NoYWluRGVzY3JpcHRvcn0vbWVyZ2UgfCBNZXJnZSBzdGFraW5nIHBvc2l0aW9ucwpbKipzcGxpdCoqXShTdGFraW5nQXBpLm1kI3NwbGl0KSB8ICoqUE9TVCoqIC9zdGFraW5nL2NoYWlucy97Y2hhaW5EZXNjcmlwdG9yfS9zcGxpdCB8IFNwbGl0IGEgc3Rha2luZyBwb3NpdGlvbgpbKipzdGFrZSoqXShTdGFraW5nQXBpLm1kI3N0YWtlKSB8ICoqUE9TVCoqIC9zdGFraW5nL2NoYWlucy97Y2hhaW5EZXNjcmlwdG9yfS9zdGFrZSB8IEluaXRpYXRlIG9yIGFkZCB0byBleGlzdGluZyBzdGFrZQpbKip1bnN0YWtlKipdKFN0YWtpbmdBcGkubWQjdW5zdGFrZSkgfCAqKlBPU1QqKiAvc3Rha2luZy9jaGFpbnMve2NoYWluRGVzY3JpcHRvcn0vdW5zdGFrZSB8IEluaXRpYXRlIHVuc3Rha2UKWyoqd2l0aGRyYXcqKl0oU3Rha2luZ0FwaS5tZCN3aXRoZHJhdykgfCAqKlBPU1QqKiAvc3Rha2luZy9jaGFpbnMve2NoYWluRGVzY3JpcHRvcn0vd2l0aGRyYXcgfCBXaXRoZHJhdyBzdGFrZWQgZnVuZHMKCgojICoqYXBwcm92ZV90ZXJtc19vZl9zZXJ2aWNlX2J5X3Byb3ZpZGVyX2lkKioKPiBhcHByb3ZlX3Rlcm1zX29mX3NlcnZpY2VfYnlfcHJvdmlkZXJfaWQocHJvdmlkZXJfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpBcHByb3ZlIHByb3ZpZGVyIHRlcm1zIG9mIHNlcnZpY2UKCkFwcHJvdmVzIHRoZSBwcm92aWRlcidzIHRlcm1zIG9mIHNlcnZpY2UuIE11c3QgYmUgY2FsbGVkIG9uY2UgYmVmb3JlIHBlcmZvcm1pbmcgYW55IHN0YWtpbmcgb3BlcmF0aW9uIHdpdGggdGhpcyBwcm92aWRlci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3Rha2luZ19wcm92aWRlciBpbXBvcnQgU3Rha2luZ1Byb3ZpZGVyCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBwcm92aWRlcl9pZCA9IGZpcmVibG9ja3MuU3Rha2luZ1Byb3ZpZGVyKCkgIyBTdGFraW5nUHJvdmlkZXIgfCBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgc3Rha2luZyBwcm92aWRlci4KICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBBcHByb3ZlIHByb3ZpZGVyIHRlcm1zIG9mIHNlcnZpY2UKICAgICAgICBmaXJlYmxvY2tzLnN0YWtpbmcuYXBwcm92ZV90ZXJtc19vZl9zZXJ2aWNlX2J5X3Byb3ZpZGVyX2lkKHByb3ZpZGVyX2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFN0YWtpbmdBcGktPmFwcHJvdmVfdGVybXNfb2Zfc2VydmljZV9ieV9wcm92aWRlcl9pZDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqcHJvdmlkZXJfaWQqKiB8IFsqKlN0YWtpbmdQcm92aWRlcioqXSgubWQpfCBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgc3Rha2luZyBwcm92aWRlci4gfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKdm9pZCAoZW1wdHkgcmVzcG9uc2UgYm9keSkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDEqKiB8IFRlcm1zIG9mIHNlcnZpY2UgYWNjZXB0ZWQuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDAqKiB8IEJhZCByZXF1ZXN0OiBtaXNzaW5nL2ludmFsaWQgZmllbGRzLCB1bnN1cHBvcnRlZCBhbW91bnQsIG9yIG1hbGZvcm1lZCBwYXlsb2FkLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDAzKiogfCBGb3JiaWRkZW46IGluc3VmZmljaWVudCBwZXJtaXNzaW9ucywgZGlzYWJsZWQgZmVhdHVyZSwgb3IgcmVzdHJpY3RlZCBwcm92aWRlci92YWxpZGF0b3IuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDQqKiB8IE5vdCBmb3VuZDogcmVxdWVzdGVkIHJlc291cmNlIGRvZXMgbm90IGV4aXN0IChlLmcuLCBwb3NpdGlvbiwgdmFsaWRhdG9yLCBwcm92aWRlciwgb3Igd2FsbGV0KS4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQyOSoqIHwgUmF0ZSBsaW1pdCBleGNlZWRlZDogc2xvdyBkb3duIGFuZCByZXRyeSBsYXRlci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjUwMCoqIHwgSW50ZXJuYWwgZXJyb3Igd2hpbGUgcHJvY2Vzc2luZyB0aGUgcmVxdWVzdC4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmNsYWltX3Jld2FyZHMqKgo+IGNsYWltX3Jld2FyZHMoY2hhaW5fZGVzY3JpcHRvciwgY2xhaW1fcmV3YXJkc19yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKQ2xhaW0gYWNjcnVlZCByZXdhcmRzCgpDbGFpbXMgYXZhaWxhYmxlIHN0YWtpbmcgcmV3YXJkcyBmb3IgdGhlIHNwZWNpZmllZCBjaGFpbiBhbmQgdmF1bHQuIFN1cHBvcnRlZCBjaGFpbnM6IFNvbGFuYSBhbmQgUG9seWdvbiAoTWF0aWMpLiBCZWhhdmlvciBkZXBlbmRzIG9uIHByb3RvY29sIHJld2FyZCBkaXN0cmlidXRpb24uCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNsYWltX3Jld2FyZHNfcmVxdWVzdCBpbXBvcnQgQ2xhaW1SZXdhcmRzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY2hhaW5fZGVzY3JpcHRvciA9ICdTT0wnICMgc3RyIHwgUHJvdG9jb2wgaWRlbnRpZmllciBmb3IgdGhlIGNsYWltIHJld2FyZHMgc3Rha2luZyBvcGVyYXRpb24gKGUuZy4sIE1BVElDL1NPTCkuCiAgICBjbGFpbV9yZXdhcmRzX3JlcXVlc3QgPSBmaXJlYmxvY2tzLkNsYWltUmV3YXJkc1JlcXVlc3QoKSAjIENsYWltUmV3YXJkc1JlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBDbGFpbSBhY2NydWVkIHJld2FyZHMKICAgICAgICBmaXJlYmxvY2tzLnN0YWtpbmcuY2xhaW1fcmV3YXJkcyhjaGFpbl9kZXNjcmlwdG9yLCBjbGFpbV9yZXdhcmRzX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgU3Rha2luZ0FwaS0+Y2xhaW1fcmV3YXJkczogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqY2hhaW5fZGVzY3JpcHRvcioqIHwgKipzdHIqKnwgUHJvdG9jb2wgaWRlbnRpZmllciBmb3IgdGhlIGNsYWltIHJld2FyZHMgc3Rha2luZyBvcGVyYXRpb24gKGUuZy4sIE1BVElDL1NPTCkuIHwgCiAqKmNsYWltX3Jld2FyZHNfcmVxdWVzdCoqIHwgWyoqQ2xhaW1SZXdhcmRzUmVxdWVzdCoqXShDbGFpbVJld2FyZHNSZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKCnZvaWQgKGVtcHR5IHJlc3BvbnNlIGJvZHkpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDEqKiB8IENsYWltLXJld2FyZHMgcmVxdWVzdCBhY2NlcHRlZCBhbmQgY3JlYXRlZC4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMCoqIHwgQmFkIHJlcXVlc3Q6IG1pc3NpbmcvaW52YWxpZCBmaWVsZHMsIHVuc3VwcG9ydGVkIGFtb3VudCwgb3IgbWFsZm9ybWVkIHBheWxvYWQuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDMqKiB8IEZvcmJpZGRlbjogaW5zdWZmaWNpZW50IHBlcm1pc3Npb25zLCBkaXNhYmxlZCBmZWF0dXJlLCBvciByZXN0cmljdGVkIHByb3ZpZGVyL3ZhbGlkYXRvci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwNCoqIHwgTm90IGZvdW5kOiByZXF1ZXN0ZWQgcmVzb3VyY2UgZG9lcyBub3QgZXhpc3QgKGUuZy4sIHBvc2l0aW9uLCB2YWxpZGF0b3IsIHByb3ZpZGVyLCBvciB3YWxsZXQpLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDI5KiogfCBSYXRlIGxpbWl0IGV4Y2VlZGVkOiBzbG93IGRvd24gYW5kIHJldHJ5IGxhdGVyLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNTAwKiogfCBJbnRlcm5hbCBlcnJvciB3aGlsZSBwcm9jZXNzaW5nIHRoZSByZXF1ZXN0LiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqY29uc29saWRhdGUqKgo+IE1lcmdlU3Rha2VBY2NvdW50c1Jlc3BvbnNlIGNvbnNvbGlkYXRlKGNoYWluX2Rlc2NyaXB0b3IsIG1lcmdlX3N0YWtlX2FjY291bnRzX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpDb25zb2xpZGF0ZSBzdGFraW5nIHBvc2l0aW9ucyAoRVRIIHZhbGlkYXRvciBjb25zb2xpZGF0aW9uKQoKQ29uc29saWRhdGVzIHRoZSBzb3VyY2Ugc3Rha2luZyBwb3NpdGlvbiBpbnRvIHRoZSBkZXN0aW5hdGlvbiwgbWVyZ2luZyB0aGUgYmFsYW5jZSBpbnRvIHRoZSBkZXN0aW5hdGlvbiBhbmQgY2xvc2luZyB0aGUgc291cmNlIHBvc2l0aW9uIG9uY2UgY29tcGxldGUuIEJvdGggcG9zaXRpb25zIG11c3QgYmUgZnJvbSB0aGUgc2FtZSBmdW5kaW5nIHZhdWx0cyBhY2NvdW50IChpLmUuIHNhbWUgd2l0aGRyYXdhbHMgY3JlZGVudGlhbHMpLiAgT24gY2hhaW4sIHRoaXMgdHJhbnNsYXRlcyBpbnRvIGEgY29uc29saWRhdGlvbiB0cmFuc2FjdGlvbiwgd2hlcmUgdGhlICBzb3VyY2UgdmFsaWRhdG9yIGlzIGNvbnNvbGlkYXRlZCBpbnRvIHRoZSBkZXN0aW5hdGlvbiB2YWxpZGF0b3IuICBTdXBwb3J0ZWQgY2hhaW5zOiBFdGhlcmV1bSAoRVRIKSBvbmx5Lgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KKipOb3RlOioqIFRoaXMgZW5kcG9pbnQgaXMgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubWVyZ2Vfc3Rha2VfYWNjb3VudHNfcmVxdWVzdCBpbXBvcnQgTWVyZ2VTdGFrZUFjY291bnRzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1lcmdlX3N0YWtlX2FjY291bnRzX3Jlc3BvbnNlIGltcG9ydCBNZXJnZVN0YWtlQWNjb3VudHNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjaGFpbl9kZXNjcmlwdG9yID0gJ0VUSCcgIyBzdHIgfCBQcm90b2NvbCBpZGVudGlmaWVyIGZvciB0aGUgc3Rha2luZyBvcGVyYXRpb24gKGUuZy4sIEVUSCkuCiAgICBtZXJnZV9zdGFrZV9hY2NvdW50c19yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5NZXJnZVN0YWtlQWNjb3VudHNSZXF1ZXN0KCkgIyBNZXJnZVN0YWtlQWNjb3VudHNSZXF1ZXN0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ29uc29saWRhdGUgc3Rha2luZyBwb3NpdGlvbnMgKEVUSCB2YWxpZGF0b3IgY29uc29saWRhdGlvbikKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnN0YWtpbmcuY29uc29saWRhdGUoY2hhaW5fZGVzY3JpcHRvciwgbWVyZ2Vfc3Rha2VfYWNjb3VudHNfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFN0YWtpbmdBcGktPmNvbnNvbGlkYXRlOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFN0YWtpbmdBcGktPmNvbnNvbGlkYXRlOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjaGFpbl9kZXNjcmlwdG9yKiogfCAqKnN0cioqfCBQcm90b2NvbCBpZGVudGlmaWVyIGZvciB0aGUgc3Rha2luZyBvcGVyYXRpb24gKGUuZy4sIEVUSCkuIHwgCiAqKm1lcmdlX3N0YWtlX2FjY291bnRzX3JlcXVlc3QqKiB8IFsqKk1lcmdlU3Rha2VBY2NvdW50c1JlcXVlc3QqKl0oTWVyZ2VTdGFrZUFjY291bnRzUmVxdWVzdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipNZXJnZVN0YWtlQWNjb3VudHNSZXNwb25zZSoqXShNZXJnZVN0YWtlQWNjb3VudHNSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgTWVyZ2UgcmVxdWVzdCBhY2NlcHRlZCBhbmQgY3JlYXRlZC4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMCoqIHwgQmFkIHJlcXVlc3Q6IG1pc3NpbmcvaW52YWxpZCBmaWVsZHMsIHVuc3VwcG9ydGVkIGFtb3VudCwgb3IgbWFsZm9ybWVkIHBheWxvYWQuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDMqKiB8IEZvcmJpZGRlbjogaW5zdWZmaWNpZW50IHBlcm1pc3Npb25zLCBkaXNhYmxlZCBmZWF0dXJlLCBvciByZXN0cmljdGVkIHByb3ZpZGVyL3ZhbGlkYXRvci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwNCoqIHwgTm90IGZvdW5kOiByZXF1ZXN0ZWQgcmVzb3VyY2UgZG9lcyBub3QgZXhpc3QgKGUuZy4sIHBvc2l0aW9uLCB2YWxpZGF0b3IsIHByb3ZpZGVyLCBvciB3YWxsZXQpLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDI5KiogfCBSYXRlIGxpbWl0IGV4Y2VlZGVkOiBzbG93IGRvd24gYW5kIHJldHJ5IGxhdGVyLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNTAwKiogfCBJbnRlcm5hbCBlcnJvciB3aGlsZSBwcm9jZXNzaW5nIHRoZSByZXF1ZXN0LiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2FsbF9kZWxlZ2F0aW9ucyoqCj4gTGlzdFtEZWxlZ2F0aW9uXSBnZXRfYWxsX2RlbGVnYXRpb25zKGNoYWluX2Rlc2NyaXB0b3I9Y2hhaW5fZGVzY3JpcHRvciwgdmF1bHRfYWNjb3VudF9pZD12YXVsdF9hY2NvdW50X2lkKQoKTGlzdCBzdGFraW5nIHBvc2l0aW9ucwoKUmV0dXJucyBhbGwgc3Rha2luZyBwb3NpdGlvbnMgd2l0aCBjb3JlIGRldGFpbHM6IGFtb3VudHMsIHJld2FyZHMsIHN0YXR1cywgY2hhaW4sIGFuZCB2YXVsdC4KPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY2hhaW5fZGVzY3JpcHRvciBpbXBvcnQgQ2hhaW5EZXNjcmlwdG9yCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVsZWdhdGlvbiBpbXBvcnQgRGVsZWdhdGlvbgpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjaGFpbl9kZXNjcmlwdG9yID0gZmlyZWJsb2Nrcy5DaGFpbkRlc2NyaXB0b3IoKSAjIENoYWluRGVzY3JpcHRvciB8IFByb3RvY29sIGlkZW50aWZpZXIgdG8gZmlsdGVyIHBvc2l0aW9ucyAoZS5nLiwgQVRPTV9DT1MvQVhML0NFTEVTVElBfSkuIElmIG9taXR0ZWQsIHBvc2l0aW9ucyBhY3Jvc3MgYWxsIHN1cHBvcnRlZCBjaGFpbnMgYXJlIHJldHVybmVkLiAob3B0aW9uYWwpCiAgICB2YXVsdF9hY2NvdW50X2lkID0gJzEnICMgc3RyIHwgRmlsdGVyIHBvc2l0aW9ucyBieSB2YXVsdCBhY2NvdW50IElELiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgTGlzdCBzdGFraW5nIHBvc2l0aW9ucwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Muc3Rha2luZy5nZXRfYWxsX2RlbGVnYXRpb25zKGNoYWluX2Rlc2NyaXB0b3I9Y2hhaW5fZGVzY3JpcHRvciwgdmF1bHRfYWNjb3VudF9pZD12YXVsdF9hY2NvdW50X2lkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgU3Rha2luZ0FwaS0+Z2V0X2FsbF9kZWxlZ2F0aW9uczpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBTdGFraW5nQXBpLT5nZXRfYWxsX2RlbGVnYXRpb25zOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjaGFpbl9kZXNjcmlwdG9yKiogfCBbKipDaGFpbkRlc2NyaXB0b3IqKl0oLm1kKXwgUHJvdG9jb2wgaWRlbnRpZmllciB0byBmaWx0ZXIgcG9zaXRpb25zIChlLmcuLCBBVE9NX0NPUy9BWEwvQ0VMRVNUSUF9KS4gSWYgb21pdHRlZCwgcG9zaXRpb25zIGFjcm9zcyBhbGwgc3VwcG9ydGVkIGNoYWlucyBhcmUgcmV0dXJuZWQuIHwgW29wdGlvbmFsXSAKICoqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKnwgRmlsdGVyIHBvc2l0aW9ucyBieSB2YXVsdCBhY2NvdW50IElELiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkxpc3RbRGVsZWdhdGlvbl0qKl0oRGVsZWdhdGlvbi5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFBvc2l0aW9ucyByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5LiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDAwKiogfCBCYWQgcmVxdWVzdDogbWlzc2luZy9pbnZhbGlkIGZpZWxkcywgdW5zdXBwb3J0ZWQgYW1vdW50LCBvciBtYWxmb3JtZWQgcGF5bG9hZC4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMyoqIHwgRm9yYmlkZGVuOiBpbnN1ZmZpY2llbnQgcGVybWlzc2lvbnMsIGRpc2FibGVkIGZlYXR1cmUsIG9yIHJlc3RyaWN0ZWQgcHJvdmlkZXIvdmFsaWRhdG9yLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDA0KiogfCBOb3QgZm91bmQ6IHJlcXVlc3RlZCByZXNvdXJjZSBkb2VzIG5vdCBleGlzdCAoZS5nLiwgcG9zaXRpb24sIHZhbGlkYXRvciwgcHJvdmlkZXIsIG9yIHdhbGxldCkuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MjkqKiB8IFJhdGUgbGltaXQgZXhjZWVkZWQ6IHNsb3cgZG93biBhbmQgcmV0cnkgbGF0ZXIuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio1MDAqKiB8IEludGVybmFsIGVycm9yIHdoaWxlIHByb2Nlc3NpbmcgdGhlIHJlcXVlc3QuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfY2hhaW5faW5mbyoqCj4gQ2hhaW5JbmZvUmVzcG9uc2UgZ2V0X2NoYWluX2luZm8oY2hhaW5fZGVzY3JpcHRvcikKCkdldCBjaGFpbi1sZXZlbCBzdGFraW5nIHBhcmFtZXRlcnMKClJldHVybnMgY2hhaW4tc3BlY2lmaWMgc3Rha2luZyBpbmZvcm1hdGlvbiBzdWNoIGFzIGVwb2NoL3Nsb3QgY2FkZW5jZSwgbG9ja3VwIG9yIHVuYm9uZGluZyBwZXJpb2RzLCBmZWUvcmV3YXJkIG1lY2hhbmljcywgYW5kIG90aGVyIG9wZXJhdGlvbmFsIGNvbnN0cmFpbnRzLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jaGFpbl9kZXNjcmlwdG9yIGltcG9ydCBDaGFpbkRlc2NyaXB0b3IKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jaGFpbl9pbmZvX3Jlc3BvbnNlIGltcG9ydCBDaGFpbkluZm9SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjaGFpbl9kZXNjcmlwdG9yID0gZmlyZWJsb2Nrcy5DaGFpbkRlc2NyaXB0b3IoKSAjIENoYWluRGVzY3JpcHRvciB8IFByb3RvY29sIGlkZW50aWZpZXIgZm9yIHRoZSBjaGFpbiBpbmZvIHN0YWtpbmcgb3BlcmF0aW9uIChlLmcuLCBFVEgvTUFUSUMvU09MKS4KCiAgICB0cnk6CiAgICAgICAgIyBHZXQgY2hhaW4tbGV2ZWwgc3Rha2luZyBwYXJhbWV0ZXJzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5zdGFraW5nLmdldF9jaGFpbl9pbmZvKGNoYWluX2Rlc2NyaXB0b3IpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBTdGFraW5nQXBpLT5nZXRfY2hhaW5faW5mbzpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBTdGFraW5nQXBpLT5nZXRfY2hhaW5faW5mbzogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqY2hhaW5fZGVzY3JpcHRvcioqIHwgWyoqQ2hhaW5EZXNjcmlwdG9yKipdKC5tZCl8IFByb3RvY29sIGlkZW50aWZpZXIgZm9yIHRoZSBjaGFpbiBpbmZvIHN0YWtpbmcgb3BlcmF0aW9uIChlLmcuLCBFVEgvTUFUSUMvU09MKS4gfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqQ2hhaW5JbmZvUmVzcG9uc2UqKl0oQ2hhaW5JbmZvUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBDaGFpbi1zcGVjaWZpYyBzdGFraW5nIGluZm9ybWF0aW9uIHJldHVybmVkIHN1Y2Nlc3NmdWxseS4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMCoqIHwgQmFkIHJlcXVlc3Q6IG1pc3NpbmcvaW52YWxpZCBmaWVsZHMsIHVuc3VwcG9ydGVkIGFtb3VudCwgb3IgbWFsZm9ybWVkIHBheWxvYWQuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDMqKiB8IEZvcmJpZGRlbjogaW5zdWZmaWNpZW50IHBlcm1pc3Npb25zLCBkaXNhYmxlZCBmZWF0dXJlLCBvciByZXN0cmljdGVkIHByb3ZpZGVyL3ZhbGlkYXRvci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwNCoqIHwgTm90IGZvdW5kOiByZXF1ZXN0ZWQgcmVzb3VyY2UgZG9lcyBub3QgZXhpc3QgKGUuZy4sIHBvc2l0aW9uLCB2YWxpZGF0b3IsIHByb3ZpZGVyLCBvciB3YWxsZXQpLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDI5KiogfCBSYXRlIGxpbWl0IGV4Y2VlZGVkOiBzbG93IGRvd24gYW5kIHJldHJ5IGxhdGVyLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNTAwKiogfCBJbnRlcm5hbCBlcnJvciB3aGlsZSBwcm9jZXNzaW5nIHRoZSByZXF1ZXN0LiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2NoYWlucyoqCj4gTGlzdFtDaGFpbkRlc2NyaXB0b3JdIGdldF9jaGFpbnMoKQoKTGlzdCBzdXBwb3J0ZWQgc3Rha2luZyBjaGFpbnMKClJldHVybnMgYW4gYWxwaGFiZXRpY2FsIGxpc3Qgb2YgYmxvY2tjaGFpbnMgc3VwcG9ydGVkIGZvciBzdGFraW5nIGJ5IHRoZSBjdXJyZW50IHdvcmtzcGFjZSBjb250ZXh0Lgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jaGFpbl9kZXNjcmlwdG9yIGltcG9ydCBDaGFpbkRlc2NyaXB0b3IKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgoKICAgIHRyeToKICAgICAgICAjIExpc3Qgc3VwcG9ydGVkIHN0YWtpbmcgY2hhaW5zCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5zdGFraW5nLmdldF9jaGFpbnMoKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgU3Rha2luZ0FwaS0+Z2V0X2NoYWluczpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBTdGFraW5nQXBpLT5nZXRfY2hhaW5zOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKVGhpcyBlbmRwb2ludCBkb2VzIG5vdCBuZWVkIGFueSBwYXJhbWV0ZXIuCgojIyMgUmV0dXJuIHR5cGUKClsqKkxpc3RbQ2hhaW5EZXNjcmlwdG9yXSoqXShDaGFpbkRlc2NyaXB0b3IubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBbiBhcnJheSBvZiBzdXBwb3J0ZWQgY2hhaW5zIHdhcyByZXR1cm5lZCBzdWNjZXNzZnVsbHkuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDMqKiB8IEZvcmJpZGRlbjogaW5zdWZmaWNpZW50IHBlcm1pc3Npb25zLCBkaXNhYmxlZCBmZWF0dXJlLCBvciByZXN0cmljdGVkIHByb3ZpZGVyL3ZhbGlkYXRvci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwNCoqIHwgTm90IGZvdW5kOiByZXF1ZXN0ZWQgcmVzb3VyY2UgZG9lcyBub3QgZXhpc3QgKGUuZy4sIHBvc2l0aW9uLCB2YWxpZGF0b3IsIHByb3ZpZGVyLCBvciB3YWxsZXQpLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDI5KiogfCBSYXRlIGxpbWl0IGV4Y2VlZGVkOiBzbG93IGRvd24gYW5kIHJldHJ5IGxhdGVyLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNTAwKiogfCBJbnRlcm5hbCBlcnJvciB3aGlsZSBwcm9jZXNzaW5nIHRoZSByZXF1ZXN0LiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2RlbGVnYXRpb25fYnlfaWQqKgo+IERlbGVnYXRpb24gZ2V0X2RlbGVnYXRpb25fYnlfaWQoaWQpCgpHZXQgcG9zaXRpb24gZGV0YWlscwoKUmV0dXJucyBmdWxsIGRldGFpbHMgZm9yIGEgc2luZ2xlIHN0YWtpbmcgcG9zaXRpb246IGFtb3VudHMsIHJld2FyZHMsIHN0YXR1cywgY2hhaW4sIGFuZCB2YXVsdC4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVsZWdhdGlvbiBpbXBvcnQgRGVsZWdhdGlvbgpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBpZCA9ICdpZF9leGFtcGxlJyAjIHN0ciB8IFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBzdGFraW5nIHBvc2l0aW9uLgoKICAgIHRyeToKICAgICAgICAjIEdldCBwb3NpdGlvbiBkZXRhaWxzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5zdGFraW5nLmdldF9kZWxlZ2F0aW9uX2J5X2lkKGlkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgU3Rha2luZ0FwaS0+Z2V0X2RlbGVnYXRpb25fYnlfaWQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgU3Rha2luZ0FwaS0+Z2V0X2RlbGVnYXRpb25fYnlfaWQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmlkKiogfCAqKnN0cioqfCBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgc3Rha2luZyBwb3NpdGlvbi4gfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqRGVsZWdhdGlvbioqXShEZWxlZ2F0aW9uLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgUG9zaXRpb24gcmV0cmlldmVkIHN1Y2Nlc3NmdWxseS4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMCoqIHwgQmFkIHJlcXVlc3Q6IG1pc3NpbmcvaW52YWxpZCBmaWVsZHMsIHVuc3VwcG9ydGVkIGFtb3VudCwgb3IgbWFsZm9ybWVkIHBheWxvYWQuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDMqKiB8IEZvcmJpZGRlbjogaW5zdWZmaWNpZW50IHBlcm1pc3Npb25zLCBkaXNhYmxlZCBmZWF0dXJlLCBvciByZXN0cmljdGVkIHByb3ZpZGVyL3ZhbGlkYXRvci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwNCoqIHwgTm90IGZvdW5kOiByZXF1ZXN0ZWQgcmVzb3VyY2UgZG9lcyBub3QgZXhpc3QgKGUuZy4sIHBvc2l0aW9uLCB2YWxpZGF0b3IsIHByb3ZpZGVyLCBvciB3YWxsZXQpLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDI5KiogfCBSYXRlIGxpbWl0IGV4Y2VlZGVkOiBzbG93IGRvd24gYW5kIHJldHJ5IGxhdGVyLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNTAwKiogfCBJbnRlcm5hbCBlcnJvciB3aGlsZSBwcm9jZXNzaW5nIHRoZSByZXF1ZXN0LiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X3Bvc2l0aW9ucyoqCj4gU3Rha2luZ1Bvc2l0aW9uc1BhZ2luYXRlZFJlc3BvbnNlIGdldF9wb3NpdGlvbnMocGFnZV9zaXplLCBjaGFpbl9kZXNjcmlwdG9yPWNoYWluX2Rlc2NyaXB0b3IsIHZhdWx0X2FjY291bnRfaWQ9dmF1bHRfYWNjb3VudF9pZCwgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsIG9yZGVyPW9yZGVyKQoKTGlzdCBzdGFraW5nIHBvc2l0aW9ucyAoUGFnaW5hdGVkKQoKUmV0dXJucyBzdGFraW5nIHBvc2l0aW9ucyB3aXRoIGNvcmUgZGV0YWlsczogYW1vdW50cywgcmV3YXJkcywgc3RhdHVzLCBjaGFpbiwgYW5kIHZhdWx0LiBJdCBzdXBwb3J0cyBjdXJzb3ItYmFzZWQgcGFnaW5hdGlvbiBmb3IgZWZmaWNpZW50IGRhdGEgcmV0cmlldmFsLiBUaGlzIGVuZHBvaW50IGFsd2F5cyByZXR1cm5zIGEgcGFnaW5hdGVkIHJlc3BvbnNlIHdpdGgge2RhdGEsIG5leHR9IHN0cnVjdHVyZS4KPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY2hhaW5fZGVzY3JpcHRvciBpbXBvcnQgQ2hhaW5EZXNjcmlwdG9yCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3Rha2luZ19wb3NpdGlvbnNfcGFnaW5hdGVkX3Jlc3BvbnNlIGltcG9ydCBTdGFraW5nUG9zaXRpb25zUGFnaW5hdGVkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgcGFnZV9zaXplID0gMTAgIyBpbnQgfCBOdW1iZXIgb2YgcmVzdWx0cyBwZXIgcGFnZS4gV2hlbiBwcm92aWRlZCwgdGhlIHJlc3BvbnNlIHJldHVybnMgYSBwYWdpbmF0ZWQgb2JqZWN0IHdpdGgge2RhdGEsIG5leHR9LiBJZiBvbWl0dGVkLCBhbGwgcmVzdWx0cyBhcmUgcmV0dXJuZWQgYXMgYW4gYXJyYXkuIChkZWZhdWx0IHRvIDEwKQogICAgY2hhaW5fZGVzY3JpcHRvciA9IGZpcmVibG9ja3MuQ2hhaW5EZXNjcmlwdG9yKCkgIyBDaGFpbkRlc2NyaXB0b3IgfCBQcm90b2NvbCBpZGVudGlmaWVyIHRvIGZpbHRlciBwb3NpdGlvbnMgKGUuZy4sIEFUT01fQ09TL0FYTC9DRUxFU1RJQX0pLiBJZiBvbWl0dGVkLCBwb3NpdGlvbnMgYWNyb3NzIGFsbCBzdXBwb3J0ZWQgY2hhaW5zIGFyZSByZXR1cm5lZC4gKG9wdGlvbmFsKQogICAgdmF1bHRfYWNjb3VudF9pZCA9ICcxMCcgIyBzdHIgfCBGaWx0ZXIgcG9zaXRpb25zIGJ5IEZpcmVibG9ja3MgdmF1bHQgYWNjb3VudCBJRC4gSWYgb21pdHRlZCwgcG9zaXRpb25zIGFjcm9zcyBhbGwgdmF1bHQgYWNjb3VudHMgYXJlIHJldHVybmVkLiAob3B0aW9uYWwpCiAgICBwYWdlX2N1cnNvciA9ICdlSjBlWEFpT2lKS1YxUWlMQ0poYkdjT2lKSVV6STFOaUo5JyAjIHN0ciB8IEN1cnNvciBmb3IgdGhlIG5leHQgcGFnZSBvZiByZXN1bHRzLiBVc2UgdGhlIHZhbHVlIGZyb20gdGhlICduZXh0JyBmaWVsZCBpbiB0aGUgcHJldmlvdXMgcmVzcG9uc2UuIChvcHRpb25hbCkKICAgIG9yZGVyID0gREVTQyAjIHN0ciB8IEFTQyAvIERFU0Mgb3JkZXJpbmcgKGRlZmF1bHQgREVTQykgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byBERVNDKQoKICAgIHRyeToKICAgICAgICAjIExpc3Qgc3Rha2luZyBwb3NpdGlvbnMgKFBhZ2luYXRlZCkKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnN0YWtpbmcuZ2V0X3Bvc2l0aW9ucyhwYWdlX3NpemUsIGNoYWluX2Rlc2NyaXB0b3I9Y2hhaW5fZGVzY3JpcHRvciwgdmF1bHRfYWNjb3VudF9pZD12YXVsdF9hY2NvdW50X2lkLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwgb3JkZXI9b3JkZXIpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBTdGFraW5nQXBpLT5nZXRfcG9zaXRpb25zOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFN0YWtpbmdBcGktPmdldF9wb3NpdGlvbnM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnBhZ2Vfc2l6ZSoqIHwgKippbnQqKnwgTnVtYmVyIG9mIHJlc3VsdHMgcGVyIHBhZ2UuIFdoZW4gcHJvdmlkZWQsIHRoZSByZXNwb25zZSByZXR1cm5zIGEgcGFnaW5hdGVkIG9iamVjdCB3aXRoIHtkYXRhLCBuZXh0fS4gSWYgb21pdHRlZCwgYWxsIHJlc3VsdHMgYXJlIHJldHVybmVkIGFzIGFuIGFycmF5LiB8IFtkZWZhdWx0IHRvIDEwXQogKipjaGFpbl9kZXNjcmlwdG9yKiogfCBbKipDaGFpbkRlc2NyaXB0b3IqKl0oLm1kKXwgUHJvdG9jb2wgaWRlbnRpZmllciB0byBmaWx0ZXIgcG9zaXRpb25zIChlLmcuLCBBVE9NX0NPUy9BWEwvQ0VMRVNUSUF9KS4gSWYgb21pdHRlZCwgcG9zaXRpb25zIGFjcm9zcyBhbGwgc3VwcG9ydGVkIGNoYWlucyBhcmUgcmV0dXJuZWQuIHwgW29wdGlvbmFsXSAKICoqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKnwgRmlsdGVyIHBvc2l0aW9ucyBieSBGaXJlYmxvY2tzIHZhdWx0IGFjY291bnQgSUQuIElmIG9taXR0ZWQsIHBvc2l0aW9ucyBhY3Jvc3MgYWxsIHZhdWx0IGFjY291bnRzIGFyZSByZXR1cm5lZC4gfCBbb3B0aW9uYWxdIAogKipwYWdlX2N1cnNvcioqIHwgKipzdHIqKnwgQ3Vyc29yIGZvciB0aGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMuIFVzZSB0aGUgdmFsdWUgZnJvbSB0aGUgJiMzOTtuZXh0JiMzOTsgZmllbGQgaW4gdGhlIHByZXZpb3VzIHJlc3BvbnNlLiB8IFtvcHRpb25hbF0gCiAqKm9yZGVyKiogfCAqKnN0cioqfCBBU0MgLyBERVNDIG9yZGVyaW5nIChkZWZhdWx0IERFU0MpIHwgW29wdGlvbmFsXSBbZGVmYXVsdCB0byBERVNDXQoKIyMjIFJldHVybiB0eXBlCgpbKipTdGFraW5nUG9zaXRpb25zUGFnaW5hdGVkUmVzcG9uc2UqKl0oU3Rha2luZ1Bvc2l0aW9uc1BhZ2luYXRlZFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgUG9zaXRpb25zIHJldHJpZXZlZCBzdWNjZXNzZnVsbHkgd2l0aCBwYWdpbmF0aW9uLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDAwKiogfCBCYWQgcmVxdWVzdDogbWlzc2luZy9pbnZhbGlkIGZpZWxkcywgdW5zdXBwb3J0ZWQgYW1vdW50LCBvciBtYWxmb3JtZWQgcGF5bG9hZC4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMyoqIHwgRm9yYmlkZGVuOiBpbnN1ZmZpY2llbnQgcGVybWlzc2lvbnMsIGRpc2FibGVkIGZlYXR1cmUsIG9yIHJlc3RyaWN0ZWQgcHJvdmlkZXIvdmFsaWRhdG9yLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDA0KiogfCBOb3QgZm91bmQ6IHJlcXVlc3RlZCByZXNvdXJjZSBkb2VzIG5vdCBleGlzdCAoZS5nLiwgcG9zaXRpb24sIHZhbGlkYXRvciwgcHJvdmlkZXIsIG9yIHdhbGxldCkuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MjkqKiB8IFJhdGUgbGltaXQgZXhjZWVkZWQ6IHNsb3cgZG93biBhbmQgcmV0cnkgbGF0ZXIuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio1MDAqKiB8IEludGVybmFsIGVycm9yIHdoaWxlIHByb2Nlc3NpbmcgdGhlIHJlcXVlc3QuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfcHJvdmlkZXJzKioKPiBMaXN0W1Byb3ZpZGVyXSBnZXRfcHJvdmlkZXJzKCkKCkxpc3Qgc3Rha2luZyBwcm92aWRlcnMKClJldHVybnMgYWxsIGF2YWlsYWJsZSBzdGFraW5nIHByb3ZpZGVycyB3aXRoIG1ldGFkYXRhIHN1Y2ggYXMgbmFtZSwgSUQsIGFuZCBzdXBwb3J0ZWQgY2hhaW5zLgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wcm92aWRlciBpbXBvcnQgUHJvdmlkZXIKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgoKICAgIHRyeToKICAgICAgICAjIExpc3Qgc3Rha2luZyBwcm92aWRlcnMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnN0YWtpbmcuZ2V0X3Byb3ZpZGVycygpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBTdGFraW5nQXBpLT5nZXRfcHJvdmlkZXJzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFN0YWtpbmdBcGktPmdldF9wcm92aWRlcnM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgpUaGlzIGVuZHBvaW50IGRvZXMgbm90IG5lZWQgYW55IHBhcmFtZXRlci4KCiMjIyBSZXR1cm4gdHlwZQoKWyoqTGlzdFtQcm92aWRlcl0qKl0oUHJvdmlkZXIubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTdXBwb3J0ZWQgcHJvdmlkZXJzIHJldHJpZXZlZCBzdWNjZXNzZnVsbHkuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDMqKiB8IEZvcmJpZGRlbjogaW5zdWZmaWNpZW50IHBlcm1pc3Npb25zLCBkaXNhYmxlZCBmZWF0dXJlLCBvciByZXN0cmljdGVkIHByb3ZpZGVyL3ZhbGlkYXRvci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwNCoqIHwgTm90IGZvdW5kOiByZXF1ZXN0ZWQgcmVzb3VyY2UgZG9lcyBub3QgZXhpc3QgKGUuZy4sIHBvc2l0aW9uLCB2YWxpZGF0b3IsIHByb3ZpZGVyLCBvciB3YWxsZXQpLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDI5KiogfCBSYXRlIGxpbWl0IGV4Y2VlZGVkOiBzbG93IGRvd24gYW5kIHJldHJ5IGxhdGVyLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNTAwKiogfCBJbnRlcm5hbCBlcnJvciB3aGlsZSBwcm9jZXNzaW5nIHRoZSByZXF1ZXN0LiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X3N1bW1hcnkqKgo+IERlbGVnYXRpb25TdW1tYXJ5IGdldF9zdW1tYXJ5KCkKCkdldCBwb3NpdGlvbnMgc3VtbWFyeQoKUmV0dXJucyBhbiBhZ2dyZWdhdGVkIGNyb3NzLXZhdWx0IHN1bW1hcnk6IGFjdGl2ZS9pbmFjdGl2ZSBjb3VudHMsIHRvdGFsIHN0YWtlZCwgYW5kIHRvdGFsIHJld2FyZHMgcGVyIGNoYWluLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZWxlZ2F0aW9uX3N1bW1hcnkgaW1wb3J0IERlbGVnYXRpb25TdW1tYXJ5CmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgcG9zaXRpb25zIHN1bW1hcnkKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnN0YWtpbmcuZ2V0X3N1bW1hcnkoKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgU3Rha2luZ0FwaS0+Z2V0X3N1bW1hcnk6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgU3Rha2luZ0FwaS0+Z2V0X3N1bW1hcnk6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgpUaGlzIGVuZHBvaW50IGRvZXMgbm90IG5lZWQgYW55IHBhcmFtZXRlci4KCiMjIyBSZXR1cm4gdHlwZQoKWyoqRGVsZWdhdGlvblN1bW1hcnkqKl0oRGVsZWdhdGlvblN1bW1hcnkubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBTdW1tYXJ5IGFjcm9zcyBhbGwgdmF1bHRzIHJldHVybmVkIHN1Y2Nlc3NmdWxseS4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMyoqIHwgRm9yYmlkZGVuOiBpbnN1ZmZpY2llbnQgcGVybWlzc2lvbnMsIGRpc2FibGVkIGZlYXR1cmUsIG9yIHJlc3RyaWN0ZWQgcHJvdmlkZXIvdmFsaWRhdG9yLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDA0KiogfCBOb3QgZm91bmQ6IHJlcXVlc3RlZCByZXNvdXJjZSBkb2VzIG5vdCBleGlzdCAoZS5nLiwgcG9zaXRpb24sIHZhbGlkYXRvciwgcHJvdmlkZXIsIG9yIHdhbGxldCkuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MjkqKiB8IFJhdGUgbGltaXQgZXhjZWVkZWQ6IHNsb3cgZG93biBhbmQgcmV0cnkgbGF0ZXIuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio1MDAqKiB8IEludGVybmFsIGVycm9yIHdoaWxlIHByb2Nlc3NpbmcgdGhlIHJlcXVlc3QuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfc3VtbWFyeV9ieV92YXVsdCoqCj4gRGljdFtzdHIsIERlbGVnYXRpb25TdW1tYXJ5XSBnZXRfc3VtbWFyeV9ieV92YXVsdCgpCgpHZXQgcG9zaXRpb25zIHN1bW1hcnkgYnkgdmF1bHQKClJldHVybnMgcGVyLXZhdWx0IGFnZ3JlZ2F0ZXM6IHN0YXR1cyBicmVha2Rvd24sIHRvdGFsIHN0YWtlZCwgYW5kIHRvdGFsIHJld2FyZHMgcGVyIGNoYWluLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZWxlZ2F0aW9uX3N1bW1hcnkgaW1wb3J0IERlbGVnYXRpb25TdW1tYXJ5CmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgcG9zaXRpb25zIHN1bW1hcnkgYnkgdmF1bHQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnN0YWtpbmcuZ2V0X3N1bW1hcnlfYnlfdmF1bHQoKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgU3Rha2luZ0FwaS0+Z2V0X3N1bW1hcnlfYnlfdmF1bHQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgU3Rha2luZ0FwaS0+Z2V0X3N1bW1hcnlfYnlfdmF1bHQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgpUaGlzIGVuZHBvaW50IGRvZXMgbm90IG5lZWQgYW55IHBhcmFtZXRlci4KCiMjIyBSZXR1cm4gdHlwZQoKWyoqRGljdFtzdHIsIERlbGVnYXRpb25TdW1tYXJ5XSoqXShEZWxlZ2F0aW9uU3VtbWFyeS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFBlci12YXVsdCBzdW1tYXJ5IHJldHVybmVkIHN1Y2Nlc3NmdWxseS4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMyoqIHwgRm9yYmlkZGVuOiBpbnN1ZmZpY2llbnQgcGVybWlzc2lvbnMsIGRpc2FibGVkIGZlYXR1cmUsIG9yIHJlc3RyaWN0ZWQgcHJvdmlkZXIvdmFsaWRhdG9yLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDA0KiogfCBOb3QgZm91bmQ6IHJlcXVlc3RlZCByZXNvdXJjZSBkb2VzIG5vdCBleGlzdCAoZS5nLiwgcG9zaXRpb24sIHZhbGlkYXRvciwgcHJvdmlkZXIsIG9yIHdhbGxldCkuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MjkqKiB8IFJhdGUgbGltaXQgZXhjZWVkZWQ6IHNsb3cgZG93biBhbmQgcmV0cnkgbGF0ZXIuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio1MDAqKiB8IEludGVybmFsIGVycm9yIHdoaWxlIHByb2Nlc3NpbmcgdGhlIHJlcXVlc3QuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKiptZXJnZV9zdGFrZV9hY2NvdW50cyoqCj4gTWVyZ2VTdGFrZUFjY291bnRzUmVzcG9uc2UgbWVyZ2Vfc3Rha2VfYWNjb3VudHMoY2hhaW5fZGVzY3JpcHRvciwgbWVyZ2Vfc3Rha2VfYWNjb3VudHNfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCk1lcmdlIHN0YWtpbmcgcG9zaXRpb25zCgpNZXJnZXMgdGhlIHNvdXJjZSBzdGFrZSBhY2NvdW50IGludG8gdGhlIGRlc3RpbmF0aW9uLCBjb25zb2xpZGF0aW5nIHRoZSBiYWxhbmNlIGludG8gdGhlIGRlc3RpbmF0aW9uIGFuZCBjbG9zaW5nIHRoZSBzb3VyY2UgYWNjb3VudCBvbmNlIGNvbXBsZXRlLiBCb3RoIGFjY291bnRzIG11c3QgYmUgZnJvbSB0aGUgc2FtZSB2YWxpZGF0b3IgcHJvdmlkZXIgYW5kIG9mIHNhbWUgdmF1bHQgYWNjb3VudC4uIFN1cHBvcnRlZCBjaGFpbnM6IFNvbGFuYSAoU09MKS4KPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBPd25lciwgQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1lcmdlX3N0YWtlX2FjY291bnRzX3JlcXVlc3QgaW1wb3J0IE1lcmdlU3Rha2VBY2NvdW50c1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tZXJnZV9zdGFrZV9hY2NvdW50c19yZXNwb25zZSBpbXBvcnQgTWVyZ2VTdGFrZUFjY291bnRzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY2hhaW5fZGVzY3JpcHRvciA9ICdTT0wnICMgc3RyIHwgUHJvdG9jb2wgaWRlbnRpZmllciBmb3IgdGhlIG1lcmdlIHN0YWtpbmcgb3BlcmF0aW9uIChlLmcuLCBTT0wpLgogICAgbWVyZ2Vfc3Rha2VfYWNjb3VudHNfcmVxdWVzdCA9IGZpcmVibG9ja3MuTWVyZ2VTdGFrZUFjY291bnRzUmVxdWVzdCgpICMgTWVyZ2VTdGFrZUFjY291bnRzUmVxdWVzdCB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIE1lcmdlIHN0YWtpbmcgcG9zaXRpb25zCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5zdGFraW5nLm1lcmdlX3N0YWtlX2FjY291bnRzKGNoYWluX2Rlc2NyaXB0b3IsIG1lcmdlX3N0YWtlX2FjY291bnRzX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBTdGFraW5nQXBpLT5tZXJnZV9zdGFrZV9hY2NvdW50czpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBTdGFraW5nQXBpLT5tZXJnZV9zdGFrZV9hY2NvdW50czogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqY2hhaW5fZGVzY3JpcHRvcioqIHwgKipzdHIqKnwgUHJvdG9jb2wgaWRlbnRpZmllciBmb3IgdGhlIG1lcmdlIHN0YWtpbmcgb3BlcmF0aW9uIChlLmcuLCBTT0wpLiB8IAogKiptZXJnZV9zdGFrZV9hY2NvdW50c19yZXF1ZXN0KiogfCBbKipNZXJnZVN0YWtlQWNjb3VudHNSZXF1ZXN0KipdKE1lcmdlU3Rha2VBY2NvdW50c1JlcXVlc3QubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqTWVyZ2VTdGFrZUFjY291bnRzUmVzcG9uc2UqKl0oTWVyZ2VTdGFrZUFjY291bnRzUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDEqKiB8IE1lcmdlIHJlcXVlc3QgYWNjZXB0ZWQgYW5kIGNyZWF0ZWQuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDAqKiB8IEJhZCByZXF1ZXN0OiBtaXNzaW5nL2ludmFsaWQgZmllbGRzLCB1bnN1cHBvcnRlZCBhbW91bnQsIG9yIG1hbGZvcm1lZCBwYXlsb2FkLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDAzKiogfCBGb3JiaWRkZW46IGluc3VmZmljaWVudCBwZXJtaXNzaW9ucywgZGlzYWJsZWQgZmVhdHVyZSwgb3IgcmVzdHJpY3RlZCBwcm92aWRlci92YWxpZGF0b3IuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDQqKiB8IE5vdCBmb3VuZDogcmVxdWVzdGVkIHJlc291cmNlIGRvZXMgbm90IGV4aXN0IChlLmcuLCBwb3NpdGlvbiwgdmFsaWRhdG9yLCBwcm92aWRlciwgb3Igd2FsbGV0KS4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQyOSoqIHwgUmF0ZSBsaW1pdCBleGNlZWRlZDogc2xvdyBkb3duIGFuZCByZXRyeSBsYXRlci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjUwMCoqIHwgSW50ZXJuYWwgZXJyb3Igd2hpbGUgcHJvY2Vzc2luZyB0aGUgcmVxdWVzdC4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnNwbGl0KioKPiBTcGxpdFJlc3BvbnNlIHNwbGl0KGNoYWluX2Rlc2NyaXB0b3IsIHNwbGl0X3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpTcGxpdCBhIHN0YWtpbmcgcG9zaXRpb24KClNwbGl0cyBhIHN0YWtpbmcgcG9zaXRpb24gYnkgY3JlYXRpbmcgYSBuZXcgc3Rha2UgYWNjb3VudCB3aXRoIHRoZSByZXF1ZXN0ZWQgYW1vdW50LCB3aGlsZSBrZWVwaW5nIHRoZSBvcmlnaW5hbCBhY2NvdW50IHdpdGggdGhlIHJlbWFpbmluZyBiYWxhbmNlLiBTdXBwb3J0ZWQgY2hhaW5zOiBTb2xhbmEgKFNPTCkuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwbGl0X3JlcXVlc3QgaW1wb3J0IFNwbGl0UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwbGl0X3Jlc3BvbnNlIGltcG9ydCBTcGxpdFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGNoYWluX2Rlc2NyaXB0b3IgPSAnU09MJyAjIHN0ciB8IFByb3RvY29sIGlkZW50aWZpZXIgZm9yIHRoZSBzdGFraW5nIG9wZXJhdGlvbiAoZS5nLiwgU09MKS4KICAgIHNwbGl0X3JlcXVlc3QgPSBmaXJlYmxvY2tzLlNwbGl0UmVxdWVzdCgpICMgU3BsaXRSZXF1ZXN0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgU3BsaXQgYSBzdGFraW5nIHBvc2l0aW9uCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5zdGFraW5nLnNwbGl0KGNoYWluX2Rlc2NyaXB0b3IsIHNwbGl0X3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBTdGFraW5nQXBpLT5zcGxpdDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBTdGFraW5nQXBpLT5zcGxpdDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqY2hhaW5fZGVzY3JpcHRvcioqIHwgKipzdHIqKnwgUHJvdG9jb2wgaWRlbnRpZmllciBmb3IgdGhlIHN0YWtpbmcgb3BlcmF0aW9uIChlLmcuLCBTT0wpLiB8IAogKipzcGxpdF9yZXF1ZXN0KiogfCBbKipTcGxpdFJlcXVlc3QqKl0oU3BsaXRSZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlNwbGl0UmVzcG9uc2UqKl0oU3BsaXRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgU3BsaXQgcmVxdWVzdCBhY2NlcHRlZCBhbmQgY3JlYXRlZC4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMCoqIHwgQmFkIHJlcXVlc3Q6IG1pc3NpbmcvaW52YWxpZCBmaWVsZHMsIHVuc3VwcG9ydGVkIGFtb3VudCwgb3IgbWFsZm9ybWVkIHBheWxvYWQuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDMqKiB8IEZvcmJpZGRlbjogaW5zdWZmaWNpZW50IHBlcm1pc3Npb25zLCBkaXNhYmxlZCBmZWF0dXJlLCBvciByZXN0cmljdGVkIHByb3ZpZGVyL3ZhbGlkYXRvci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwNCoqIHwgTm90IGZvdW5kOiByZXF1ZXN0ZWQgcmVzb3VyY2UgZG9lcyBub3QgZXhpc3QgKGUuZy4sIHBvc2l0aW9uLCB2YWxpZGF0b3IsIHByb3ZpZGVyLCBvciB3YWxsZXQpLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDI5KiogfCBSYXRlIGxpbWl0IGV4Y2VlZGVkOiBzbG93IGRvd24gYW5kIHJldHJ5IGxhdGVyLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNTAwKiogfCBJbnRlcm5hbCBlcnJvciB3aGlsZSBwcm9jZXNzaW5nIHRoZSByZXF1ZXN0LiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqc3Rha2UqKgo+IFN0YWtlUmVzcG9uc2Ugc3Rha2UoY2hhaW5fZGVzY3JpcHRvciwgc3Rha2VfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCkluaXRpYXRlIG9yIGFkZCB0byBleGlzdGluZyBzdGFrZQoKQ3JlYXRlcyBhIG5ldyBzdGFraW5nIHBvc2l0aW9uIGFuZCByZXR1cm5zIGl0cyB1bmlxdWUgSUQuIEZvciBFdGhlcmV1bSBjb21wb3VuZGluZyB2YWxpZGF0b3IgKEVJUC03MjUxKTogd2hlbiB0aGUgJ2lkJyBvZiBhbiBleGlzdGluZyBjb21wb3VuZGluZyB2YWxpZGF0b3IgcG9zaXRpb24gaXMgcHJvdmlkZWQsIGFkZHMgdG8gdGhhdCBwb3NpdGlvbjsgb3RoZXJ3aXNlIGNyZWF0ZXMgYSBuZXcgcG9zaXRpb24uIEZvciBFdGhlcmV1bSBsZWdhY3kgdmFsaWRhdG9yOiBjcmVhdGVzIGEgbmV3IHBvc2l0aW9uIHJlZ2FyZGxlc3Mgb2YgZXhpc3RpbmcgZGVsZWdhdGlvbnMuIEZvciBDb3Ntb3MgY2hhaW5zIGFuZCBFdGhlcmV1bSBsaXF1aWQgc3Rha2luZyAoTGlkbyk6IGF1dG9tYXRpY2FsbHkgYWRkIHRvIGV4aXN0aW5nIHBvc2l0aW9ucyBmb3IgdGhlIHNhbWUgdmFsaWRhdG9yIHByb3ZpZGVyIGFuZCBzYW1lIHZhdWx0IGFjY291bnQgaWYgb25lIGV4aXN0cywgb3RoZXJ3aXNlIGNyZWF0ZSBhIG5ldyBwb3NpdGlvbi4gRm9yIFNvbGFuYSBhbmQgUG9seWdvbjogYWx3YXlzIGNyZWF0ZSBuZXcgcG9zaXRpb25zIHJlZ2FyZGxlc3Mgb2YgZXhpc3RpbmcgZGVsZWdhdGlvbnMuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYWluX2Rlc2NyaXB0b3IgaW1wb3J0IENoYWluRGVzY3JpcHRvcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN0YWtlX3JlcXVlc3QgaW1wb3J0IFN0YWtlUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN0YWtlX3Jlc3BvbnNlIGltcG9ydCBTdGFrZVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGNoYWluX2Rlc2NyaXB0b3IgPSBmaXJlYmxvY2tzLkNoYWluRGVzY3JpcHRvcigpICMgQ2hhaW5EZXNjcmlwdG9yIHwgUHJvdG9jb2wgaWRlbnRpZmllciBmb3IgdGhlIHN0YWtlIHN0YWtpbmcgb3BlcmF0aW9uIChlLmcuLCBBVE9NX0NPUy9BWEwvQ0VMRVNUSUEpLgogICAgc3Rha2VfcmVxdWVzdCA9IGZpcmVibG9ja3MuU3Rha2VSZXF1ZXN0KCkgIyBTdGFrZVJlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBJbml0aWF0ZSBvciBhZGQgdG8gZXhpc3Rpbmcgc3Rha2UKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnN0YWtpbmcuc3Rha2UoY2hhaW5fZGVzY3JpcHRvciwgc3Rha2VfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFN0YWtpbmdBcGktPnN0YWtlOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFN0YWtpbmdBcGktPnN0YWtlOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjaGFpbl9kZXNjcmlwdG9yKiogfCBbKipDaGFpbkRlc2NyaXB0b3IqKl0oLm1kKXwgUHJvdG9jb2wgaWRlbnRpZmllciBmb3IgdGhlIHN0YWtlIHN0YWtpbmcgb3BlcmF0aW9uIChlLmcuLCBBVE9NX0NPUy9BWEwvQ0VMRVNUSUEpLiB8IAogKipzdGFrZV9yZXF1ZXN0KiogfCBbKipTdGFrZVJlcXVlc3QqKl0oU3Rha2VSZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlN0YWtlUmVzcG9uc2UqKl0oU3Rha2VSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgU3Rha2UgcmVxdWVzdCBhY2NlcHRlZCBhbmQgY3JlYXRlZC4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMCoqIHwgQmFkIHJlcXVlc3Q6IG1pc3NpbmcvaW52YWxpZCBmaWVsZHMsIHVuc3VwcG9ydGVkIGFtb3VudCwgb3IgbWFsZm9ybWVkIHBheWxvYWQuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDMqKiB8IEZvcmJpZGRlbjogaW5zdWZmaWNpZW50IHBlcm1pc3Npb25zLCBkaXNhYmxlZCBmZWF0dXJlLCBvciByZXN0cmljdGVkIHByb3ZpZGVyL3ZhbGlkYXRvci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwNCoqIHwgTm90IGZvdW5kOiByZXF1ZXN0ZWQgcmVzb3VyY2UgZG9lcyBub3QgZXhpc3QgKGUuZy4sIHBvc2l0aW9uLCB2YWxpZGF0b3IsIHByb3ZpZGVyLCBvciB3YWxsZXQpLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDI5KiogfCBSYXRlIGxpbWl0IGV4Y2VlZGVkOiBzbG93IGRvd24gYW5kIHJldHJ5IGxhdGVyLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNTAwKiogfCBJbnRlcm5hbCBlcnJvciB3aGlsZSBwcm9jZXNzaW5nIHRoZSByZXF1ZXN0LiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqdW5zdGFrZSoqCj4gdW5zdGFrZShjaGFpbl9kZXNjcmlwdG9yLCB1bnN0YWtlX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpJbml0aWF0ZSB1bnN0YWtlCgpTdWJtaXRzIGEgY2hhaW4tc3BlY2lmaWMgdW5zdGFrZSByZXF1ZXN0LgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jaGFpbl9kZXNjcmlwdG9yIGltcG9ydCBDaGFpbkRlc2NyaXB0b3IKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51bnN0YWtlX3JlcXVlc3QgaW1wb3J0IFVuc3Rha2VSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjaGFpbl9kZXNjcmlwdG9yID0gZmlyZWJsb2Nrcy5DaGFpbkRlc2NyaXB0b3IoKSAjIENoYWluRGVzY3JpcHRvciB8IFByb3RvY29sIGlkZW50aWZpZXIgZm9yIHRoZSB1bnN0YWtlIHN0YWtpbmcgb3BlcmF0aW9uIChlLmcuLCBTT0wvU09MX1RFU1QvTUFUSUMpLgogICAgdW5zdGFrZV9yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5VbnN0YWtlUmVxdWVzdCgpICMgVW5zdGFrZVJlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBJbml0aWF0ZSB1bnN0YWtlCiAgICAgICAgZmlyZWJsb2Nrcy5zdGFraW5nLnVuc3Rha2UoY2hhaW5fZGVzY3JpcHRvciwgdW5zdGFrZV9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFN0YWtpbmdBcGktPnVuc3Rha2U6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmNoYWluX2Rlc2NyaXB0b3IqKiB8IFsqKkNoYWluRGVzY3JpcHRvcioqXSgubWQpfCBQcm90b2NvbCBpZGVudGlmaWVyIGZvciB0aGUgdW5zdGFrZSBzdGFraW5nIG9wZXJhdGlvbiAoZS5nLiwgU09ML1NPTF9URVNUL01BVElDKS4gfCAKICoqdW5zdGFrZV9yZXF1ZXN0KiogfCBbKipVbnN0YWtlUmVxdWVzdCoqXShVbnN0YWtlUmVxdWVzdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgp2b2lkIChlbXB0eSByZXNwb25zZSBib2R5KQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBVbnN0YWtlIHJlcXVlc3QgYWNjZXB0ZWQgYW5kIGNyZWF0ZWQuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDAqKiB8IEJhZCByZXF1ZXN0OiBtaXNzaW5nL2ludmFsaWQgZmllbGRzLCB1bnN1cHBvcnRlZCBhbW91bnQsIG9yIG1hbGZvcm1lZCBwYXlsb2FkLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDAzKiogfCBGb3JiaWRkZW46IGluc3VmZmljaWVudCBwZXJtaXNzaW9ucywgZGlzYWJsZWQgZmVhdHVyZSwgb3IgcmVzdHJpY3RlZCBwcm92aWRlci92YWxpZGF0b3IuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDQqKiB8IE5vdCBmb3VuZDogcmVxdWVzdGVkIHJlc291cmNlIGRvZXMgbm90IGV4aXN0IChlLmcuLCBwb3NpdGlvbiwgdmFsaWRhdG9yLCBwcm92aWRlciwgb3Igd2FsbGV0KS4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQyOSoqIHwgUmF0ZSBsaW1pdCBleGNlZWRlZDogc2xvdyBkb3duIGFuZCByZXRyeSBsYXRlci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjUwMCoqIHwgSW50ZXJuYWwgZXJyb3Igd2hpbGUgcHJvY2Vzc2luZyB0aGUgcmVxdWVzdC4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKndpdGhkcmF3KioKPiB3aXRoZHJhdyhjaGFpbl9kZXNjcmlwdG9yLCB3aXRoZHJhd19yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKV2l0aGRyYXcgc3Rha2VkIGZ1bmRzCgpXaXRoZHJhd3MgZnVuZHMgdGhhdCBoYXZlIGNvbXBsZXRlZCB0aGUgdW5ib25kaW5nIHBlcmlvZC4gVHlwaWNhbGx5IHJlcXVpcmVzIHRoZSBwb3NpdGlvbiB0byBiZSBkZWFjdGl2YXRlZCBmaXJzdCAodW5zdGFrZSDihpIgdW5ib25kIOKGkiB3aXRoZHJhdykuIEFtb3VudCBhbmQgdGltaW5nIHZhcnkgYnkgY2hhaW4gcHJvdG9jb2wuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYWluX2Rlc2NyaXB0b3IgaW1wb3J0IENoYWluRGVzY3JpcHRvcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndpdGhkcmF3X3JlcXVlc3QgaW1wb3J0IFdpdGhkcmF3UmVxdWVzdApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY2hhaW5fZGVzY3JpcHRvciA9IGZpcmVibG9ja3MuQ2hhaW5EZXNjcmlwdG9yKCkgIyBDaGFpbkRlc2NyaXB0b3IgfCBQcm90b2NvbCBpZGVudGlmaWVyIGZvciB0aGUgd2l0aGRyYXcgc3Rha2luZyBvcGVyYXRpb24gKGUuZy4sIEFUT01fQ09TL0VUSC9TVEVUSF9FVEgpLgogICAgd2l0aGRyYXdfcmVxdWVzdCA9IGZpcmVibG9ja3MuV2l0aGRyYXdSZXF1ZXN0KCkgIyBXaXRoZHJhd1JlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBXaXRoZHJhdyBzdGFrZWQgZnVuZHMKICAgICAgICBmaXJlYmxvY2tzLnN0YWtpbmcud2l0aGRyYXcoY2hhaW5fZGVzY3JpcHRvciwgd2l0aGRyYXdfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBTdGFraW5nQXBpLT53aXRoZHJhdzogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqY2hhaW5fZGVzY3JpcHRvcioqIHwgWyoqQ2hhaW5EZXNjcmlwdG9yKipdKC5tZCl8IFByb3RvY29sIGlkZW50aWZpZXIgZm9yIHRoZSB3aXRoZHJhdyBzdGFraW5nIG9wZXJhdGlvbiAoZS5nLiwgQVRPTV9DT1MvRVRIL1NURVRIX0VUSCkuIHwgCiAqKndpdGhkcmF3X3JlcXVlc3QqKiB8IFsqKldpdGhkcmF3UmVxdWVzdCoqXShXaXRoZHJhd1JlcXVlc3QubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKdm9pZCAoZW1wdHkgcmVzcG9uc2UgYm9keSkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgV2l0aGRyYXcgcmVxdWVzdCBhY2NlcHRlZCBhbmQgY3JlYXRlZC4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMCoqIHwgQmFkIHJlcXVlc3Q6IG1pc3NpbmcvaW52YWxpZCBmaWVsZHMsIHVuc3VwcG9ydGVkIGFtb3VudCwgb3IgbWFsZm9ybWVkIHBheWxvYWQuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDMqKiB8IEZvcmJpZGRlbjogaW5zdWZmaWNpZW50IHBlcm1pc3Npb25zLCBkaXNhYmxlZCBmZWF0dXJlLCBvciByZXN0cmljdGVkIHByb3ZpZGVyL3ZhbGlkYXRvci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwNCoqIHwgTm90IGZvdW5kOiByZXF1ZXN0ZWQgcmVzb3VyY2UgZG9lcyBub3QgZXhpc3QgKGUuZy4sIHBvc2l0aW9uLCB2YWxpZGF0b3IsIHByb3ZpZGVyLCBvciB3YWxsZXQpLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDI5KiogfCBSYXRlIGxpbWl0IGV4Y2VlZGVkOiBzbG93IGRvd24gYW5kIHJldHJ5IGxhdGVyLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNTAwKiogfCBJbnRlcm5hbCBlcnJvciB3aGlsZSBwcm9jZXNzaW5nIHRoZSByZXF1ZXN0LiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgo= \ No newline at end of file diff --git a/docs/StakingPositionsPaginatedResponse.md b/docs/StakingPositionsPaginatedResponse.md new file mode 100644 index 00000000..77b91ad1 --- /dev/null +++ b/docs/StakingPositionsPaginatedResponse.md @@ -0,0 +1 @@ +IyBTdGFraW5nUG9zaXRpb25zUGFnaW5hdGVkUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZGF0YSoqIHwgWyoqTGlzdFtQb3NpdGlvbl0qKl0oUG9zaXRpb24ubWQpIHwgVGhlIGRhdGEgb2YgdGhlIGN1cnJlbnQgcGFnZSBvZiBzdGFraW5nIHBvc2l0aW9ucyB8IAoqKm5leHQqKiB8ICoqc3RyKiogfCBUaGUgY3Vyc29yIGZvciB0aGUgbmV4dCBwYWdlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN0YWtpbmdfcG9zaXRpb25zX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgU3Rha2luZ1Bvc2l0aW9uc1BhZ2luYXRlZFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTdGFraW5nUG9zaXRpb25zUGFnaW5hdGVkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnN0YWtpbmdfcG9zaXRpb25zX3BhZ2luYXRlZF9yZXNwb25zZV9pbnN0YW5jZSA9IFN0YWtpbmdQb3NpdGlvbnNQYWdpbmF0ZWRSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTdGFraW5nUG9zaXRpb25zUGFnaW5hdGVkUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc3Rha2luZ19wb3NpdGlvbnNfcGFnaW5hdGVkX3Jlc3BvbnNlX2RpY3QgPSBzdGFraW5nX3Bvc2l0aW9uc19wYWdpbmF0ZWRfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFN0YWtpbmdQb3NpdGlvbnNQYWdpbmF0ZWRSZXNwb25zZSBmcm9tIGEgZGljdApzdGFraW5nX3Bvc2l0aW9uc19wYWdpbmF0ZWRfcmVzcG9uc2VfZnJvbV9kaWN0ID0gU3Rha2luZ1Bvc2l0aW9uc1BhZ2luYXRlZFJlc3BvbnNlLmZyb21fZGljdChzdGFraW5nX3Bvc2l0aW9uc19wYWdpbmF0ZWRfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/StakingProvider.md b/docs/StakingProvider.md index 2a76e698..5787d594 100644 --- a/docs/StakingProvider.md +++ b/docs/StakingProvider.md @@ -1,25 +1 @@ -# StakingProvider - -The unique identifier of the staking provider - -## Enum - -* `KILN` (value: `'kiln'`) - -* `FIGMENT` (value: `'figment'`) - -* `LIDO` (value: `'lido'`) - -* `P2P` (value: `'p2p'`) - -* `BLOCKDAEMON` (value: `'blockdaemon'`) - -* `GALAXY` (value: `'galaxy'`) - -* `PIERTWO` (value: `'pierTwo'`) - -* `KRAKEN` (value: `'kraken'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTdGFraW5nUHJvdmlkZXIKClRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgc3Rha2luZyBwcm92aWRlcgoKIyMgRW51bQoKKiBgS0lMTmAgKHZhbHVlOiBgJ2tpbG4nYCkKCiogYEZJR01FTlRgICh2YWx1ZTogYCdmaWdtZW50J2ApCgoqIGBMSURPYCAodmFsdWU6IGAnbGlkbydgKQoKKiBgUDJQYCAodmFsdWU6IGAncDJwJ2ApCgoqIGBCTE9DS0RBRU1PTmAgKHZhbHVlOiBgJ2Jsb2NrZGFlbW9uJ2ApCgoqIGBHQUxBWFlgICh2YWx1ZTogYCdnYWxheHknYCkKCiogYFBJRVJUV09gICh2YWx1ZTogYCdwaWVyVHdvJ2ApCgoqIGBLUkFLRU5gICh2YWx1ZTogYCdrcmFrZW4nYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/Status.md b/docs/Status.md index 5427db0a..ac38a38b 100644 --- a/docs/Status.md +++ b/docs/Status.md @@ -1,30 +1 @@ -# Status - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status** | **str** | The status of the command | -**type** | **str** | The type of the command | - -## Example - -```python -from fireblocks.models.status import Status - -# TODO update the JSON string below -json = "{}" -# create an instance of Status from a JSON string -status_instance = Status.from_json(json) -# print the JSON string representation of the object -print(Status.to_json()) - -# convert the object into a dict -status_dict = status_instance.to_dict() -# create an instance of Status from a dict -status_from_dict = Status.from_dict(status_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTdGF0dXMKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3RhdHVzKiogfCAqKnN0cioqIHwgVGhlIHN0YXR1cyBvZiB0aGUgY29tbWFuZCB8IAoqKnR5cGUqKiB8ICoqc3RyKiogfCBUaGUgdHlwZSBvZiB0aGUgY29tbWFuZCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3RhdHVzIGltcG9ydCBTdGF0dXMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFN0YXR1cyBmcm9tIGEgSlNPTiBzdHJpbmcKc3RhdHVzX2luc3RhbmNlID0gU3RhdHVzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFN0YXR1cy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzdGF0dXNfZGljdCA9IHN0YXR1c19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3RhdHVzIGZyb20gYSBkaWN0CnN0YXR1c19mcm9tX2RpY3QgPSBTdGF0dXMuZnJvbV9kaWN0KHN0YXR1c19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/StellarRippleCreateParamsDto.md b/docs/StellarRippleCreateParamsDto.md index 380e312a..9f21f72f 100644 --- a/docs/StellarRippleCreateParamsDto.md +++ b/docs/StellarRippleCreateParamsDto.md @@ -1,31 +1 @@ -# StellarRippleCreateParamsDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**symbol** | **str** | The symbol of the token | -**name** | **str** | The name of the token | -**issuer_address** | **str** | The address of the issuer of this token. Will be part of the identifier of this token on chain. | - -## Example - -```python -from fireblocks.models.stellar_ripple_create_params_dto import StellarRippleCreateParamsDto - -# TODO update the JSON string below -json = "{}" -# create an instance of StellarRippleCreateParamsDto from a JSON string -stellar_ripple_create_params_dto_instance = StellarRippleCreateParamsDto.from_json(json) -# print the JSON string representation of the object -print(StellarRippleCreateParamsDto.to_json()) - -# convert the object into a dict -stellar_ripple_create_params_dto_dict = stellar_ripple_create_params_dto_instance.to_dict() -# create an instance of StellarRippleCreateParamsDto from a dict -stellar_ripple_create_params_dto_from_dict = StellarRippleCreateParamsDto.from_dict(stellar_ripple_create_params_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTdGVsbGFyUmlwcGxlQ3JlYXRlUGFyYW1zRHRvCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnN5bWJvbCoqIHwgKipzdHIqKiB8IFRoZSBzeW1ib2wgb2YgdGhlIHRva2VuIHwgCioqbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBuYW1lIG9mIHRoZSB0b2tlbiB8IAoqKmlzc3Vlcl9hZGRyZXNzKiogfCAqKnN0cioqIHwgVGhlIGFkZHJlc3Mgb2YgdGhlIGlzc3VlciBvZiB0aGlzIHRva2VuLiBXaWxsIGJlIHBhcnQgb2YgdGhlIGlkZW50aWZpZXIgb2YgdGhpcyB0b2tlbiBvbiBjaGFpbi4gfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN0ZWxsYXJfcmlwcGxlX2NyZWF0ZV9wYXJhbXNfZHRvIGltcG9ydCBTdGVsbGFyUmlwcGxlQ3JlYXRlUGFyYW1zRHRvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTdGVsbGFyUmlwcGxlQ3JlYXRlUGFyYW1zRHRvIGZyb20gYSBKU09OIHN0cmluZwpzdGVsbGFyX3JpcHBsZV9jcmVhdGVfcGFyYW1zX2R0b19pbnN0YW5jZSA9IFN0ZWxsYXJSaXBwbGVDcmVhdGVQYXJhbXNEdG8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU3RlbGxhclJpcHBsZUNyZWF0ZVBhcmFtc0R0by50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdApzdGVsbGFyX3JpcHBsZV9jcmVhdGVfcGFyYW1zX2R0b19kaWN0ID0gc3RlbGxhcl9yaXBwbGVfY3JlYXRlX3BhcmFtc19kdG9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFN0ZWxsYXJSaXBwbGVDcmVhdGVQYXJhbXNEdG8gZnJvbSBhIGRpY3QKc3RlbGxhcl9yaXBwbGVfY3JlYXRlX3BhcmFtc19kdG9fZnJvbV9kaWN0ID0gU3RlbGxhclJpcHBsZUNyZWF0ZVBhcmFtc0R0by5mcm9tX2RpY3Qoc3RlbGxhcl9yaXBwbGVfY3JlYXRlX3BhcmFtc19kdG9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SupportedBlockChainsResponse.md b/docs/SupportedBlockChainsResponse.md index 9b6438b3..63ae2460 100644 --- a/docs/SupportedBlockChainsResponse.md +++ b/docs/SupportedBlockChainsResponse.md @@ -1,30 +1 @@ -# SupportedBlockChainsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**supports_all_blockchains** | **bool** | Boolean representing if all blockchains are supported | -**supported_blockchains** | [**List[SupportedBlockchain]**](SupportedBlockchain.md) | List of supported blockchains | [optional] - -## Example - -```python -from fireblocks.models.supported_block_chains_response import SupportedBlockChainsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of SupportedBlockChainsResponse from a JSON string -supported_block_chains_response_instance = SupportedBlockChainsResponse.from_json(json) -# print the JSON string representation of the object -print(SupportedBlockChainsResponse.to_json()) - -# convert the object into a dict -supported_block_chains_response_dict = supported_block_chains_response_instance.to_dict() -# create an instance of SupportedBlockChainsResponse from a dict -supported_block_chains_response_from_dict = SupportedBlockChainsResponse.from_dict(supported_block_chains_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTdXBwb3J0ZWRCbG9ja0NoYWluc1Jlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnN1cHBvcnRzX2FsbF9ibG9ja2NoYWlucyoqIHwgKipib29sKiogfCBCb29sZWFuIHJlcHJlc2VudGluZyBpZiBhbGwgYmxvY2tjaGFpbnMgYXJlIHN1cHBvcnRlZCB8IAoqKnN1cHBvcnRlZF9ibG9ja2NoYWlucyoqIHwgWyoqTGlzdFtTdXBwb3J0ZWRCbG9ja2NoYWluXSoqXShTdXBwb3J0ZWRCbG9ja2NoYWluLm1kKSB8IExpc3Qgb2Ygc3VwcG9ydGVkIGJsb2NrY2hhaW5zIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN1cHBvcnRlZF9ibG9ja19jaGFpbnNfcmVzcG9uc2UgaW1wb3J0IFN1cHBvcnRlZEJsb2NrQ2hhaW5zUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFN1cHBvcnRlZEJsb2NrQ2hhaW5zUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnN1cHBvcnRlZF9ibG9ja19jaGFpbnNfcmVzcG9uc2VfaW5zdGFuY2UgPSBTdXBwb3J0ZWRCbG9ja0NoYWluc1Jlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFN1cHBvcnRlZEJsb2NrQ2hhaW5zUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc3VwcG9ydGVkX2Jsb2NrX2NoYWluc19yZXNwb25zZV9kaWN0ID0gc3VwcG9ydGVkX2Jsb2NrX2NoYWluc19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3VwcG9ydGVkQmxvY2tDaGFpbnNSZXNwb25zZSBmcm9tIGEgZGljdApzdXBwb3J0ZWRfYmxvY2tfY2hhaW5zX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFN1cHBvcnRlZEJsb2NrQ2hhaW5zUmVzcG9uc2UuZnJvbV9kaWN0KHN1cHBvcnRlZF9ibG9ja19jaGFpbnNfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/SupportedBlockchain.md b/docs/SupportedBlockchain.md index a5f76d06..59d29be8 100644 --- a/docs/SupportedBlockchain.md +++ b/docs/SupportedBlockchain.md @@ -1,32 +1 @@ -# SupportedBlockchain - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The ID of the blockchain | -**legacy_id** | **str** | The old blockchain ID representation of the blockchain | -**display_name** | **str** | The name of the blockchain | -**native_asset_id** | **str** | Native asset ID of this blockchain | - -## Example - -```python -from fireblocks.models.supported_blockchain import SupportedBlockchain - -# TODO update the JSON string below -json = "{}" -# create an instance of SupportedBlockchain from a JSON string -supported_blockchain_instance = SupportedBlockchain.from_json(json) -# print the JSON string representation of the object -print(SupportedBlockchain.to_json()) - -# convert the object into a dict -supported_blockchain_dict = supported_blockchain_instance.to_dict() -# create an instance of SupportedBlockchain from a dict -supported_blockchain_from_dict = SupportedBlockchain.from_dict(supported_blockchain_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTdXBwb3J0ZWRCbG9ja2NoYWluCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgVGhlIElEIG9mIHRoZSBibG9ja2NoYWluIHwgCioqbGVnYWN5X2lkKiogfCAqKnN0cioqIHwgVGhlIG9sZCBibG9ja2NoYWluIElEIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBibG9ja2NoYWluIHwgCioqZGlzcGxheV9uYW1lKiogfCAqKnN0cioqIHwgVGhlIG5hbWUgb2YgdGhlIGJsb2NrY2hhaW4gfCAKKipuYXRpdmVfYXNzZXRfaWQqKiB8ICoqc3RyKiogfCBOYXRpdmUgYXNzZXQgSUQgb2YgdGhpcyBibG9ja2NoYWluIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zdXBwb3J0ZWRfYmxvY2tjaGFpbiBpbXBvcnQgU3VwcG9ydGVkQmxvY2tjaGFpbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3VwcG9ydGVkQmxvY2tjaGFpbiBmcm9tIGEgSlNPTiBzdHJpbmcKc3VwcG9ydGVkX2Jsb2NrY2hhaW5faW5zdGFuY2UgPSBTdXBwb3J0ZWRCbG9ja2NoYWluLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFN1cHBvcnRlZEJsb2NrY2hhaW4udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc3VwcG9ydGVkX2Jsb2NrY2hhaW5fZGljdCA9IHN1cHBvcnRlZF9ibG9ja2NoYWluX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTdXBwb3J0ZWRCbG9ja2NoYWluIGZyb20gYSBkaWN0CnN1cHBvcnRlZF9ibG9ja2NoYWluX2Zyb21fZGljdCA9IFN1cHBvcnRlZEJsb2NrY2hhaW4uZnJvbV9kaWN0KHN1cHBvcnRlZF9ibG9ja2NoYWluX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SwiftAddress.md b/docs/SwiftAddress.md index 764a0ad8..27de9bcc 100644 --- a/docs/SwiftAddress.md +++ b/docs/SwiftAddress.md @@ -1,31 +1 @@ -# SwiftAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | | -**swift_code** | **str** | | -**routing_number** | **str** | Routing number identifying the bank account. | - -## Example - -```python -from fireblocks.models.swift_address import SwiftAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of SwiftAddress from a JSON string -swift_address_instance = SwiftAddress.from_json(json) -# print the JSON string representation of the object -print(SwiftAddress.to_json()) - -# convert the object into a dict -swift_address_dict = swift_address_instance.to_dict() -# create an instance of SwiftAddress from a dict -swift_address_from_dict = SwiftAddress.from_dict(swift_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTd2lmdEFkZHJlc3MKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYWNjb3VudF9ob2xkZXIqKiB8IFsqKkFjY291bnRIb2xkZXJEZXRhaWxzKipdKEFjY291bnRIb2xkZXJEZXRhaWxzLm1kKSB8ICB8IAoqKnN3aWZ0X2NvZGUqKiB8ICoqc3RyKiogfCAgfCAKKipyb3V0aW5nX251bWJlcioqIHwgKipzdHIqKiB8IFJvdXRpbmcgbnVtYmVyIGlkZW50aWZ5aW5nIHRoZSBiYW5rIGFjY291bnQuIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zd2lmdF9hZGRyZXNzIGltcG9ydCBTd2lmdEFkZHJlc3MKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFN3aWZ0QWRkcmVzcyBmcm9tIGEgSlNPTiBzdHJpbmcKc3dpZnRfYWRkcmVzc19pbnN0YW5jZSA9IFN3aWZ0QWRkcmVzcy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTd2lmdEFkZHJlc3MudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc3dpZnRfYWRkcmVzc19kaWN0ID0gc3dpZnRfYWRkcmVzc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3dpZnRBZGRyZXNzIGZyb20gYSBkaWN0CnN3aWZ0X2FkZHJlc3NfZnJvbV9kaWN0ID0gU3dpZnRBZGRyZXNzLmZyb21fZGljdChzd2lmdF9hZGRyZXNzX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/SwiftDestination.md b/docs/SwiftDestination.md index dd97184c..7e2c082f 100644 --- a/docs/SwiftDestination.md +++ b/docs/SwiftDestination.md @@ -1,30 +1 @@ -# SwiftDestination - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | -**address** | [**SwiftAddress**](SwiftAddress.md) | | - -## Example - -```python -from fireblocks.models.swift_destination import SwiftDestination - -# TODO update the JSON string below -json = "{}" -# create an instance of SwiftDestination from a JSON string -swift_destination_instance = SwiftDestination.from_json(json) -# print the JSON string representation of the object -print(SwiftDestination.to_json()) - -# convert the object into a dict -swift_destination_dict = swift_destination_instance.to_dict() -# create an instance of SwiftDestination from a dict -swift_destination_from_dict = SwiftDestination.from_dict(swift_destination_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTd2lmdERlc3RpbmF0aW9uCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8ICoqc3RyKiogfCAgfCAKKiphZGRyZXNzKiogfCBbKipTd2lmdEFkZHJlc3MqKl0oU3dpZnRBZGRyZXNzLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3dpZnRfZGVzdGluYXRpb24gaW1wb3J0IFN3aWZ0RGVzdGluYXRpb24KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFN3aWZ0RGVzdGluYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCnN3aWZ0X2Rlc3RpbmF0aW9uX2luc3RhbmNlID0gU3dpZnREZXN0aW5hdGlvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChTd2lmdERlc3RpbmF0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnN3aWZ0X2Rlc3RpbmF0aW9uX2RpY3QgPSBzd2lmdF9kZXN0aW5hdGlvbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3dpZnREZXN0aW5hdGlvbiBmcm9tIGEgZGljdApzd2lmdF9kZXN0aW5hdGlvbl9mcm9tX2RpY3QgPSBTd2lmdERlc3RpbmF0aW9uLmZyb21fZGljdChzd2lmdF9kZXN0aW5hdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/SystemMessageInfo.md b/docs/SystemMessageInfo.md index 891e5bc9..141f9804 100644 --- a/docs/SystemMessageInfo.md +++ b/docs/SystemMessageInfo.md @@ -1,30 +1 @@ -# SystemMessageInfo - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | [optional] -**message** | **str** | A response from Fireblocks that communicates a message about the health of the process being performed. If this object is returned with data, you should expect potential delays or incomplete transaction statuses. | [optional] - -## Example - -```python -from fireblocks.models.system_message_info import SystemMessageInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of SystemMessageInfo from a JSON string -system_message_info_instance = SystemMessageInfo.from_json(json) -# print the JSON string representation of the object -print(SystemMessageInfo.to_json()) - -# convert the object into a dict -system_message_info_dict = system_message_info_instance.to_dict() -# create an instance of SystemMessageInfo from a dict -system_message_info_from_dict = SystemMessageInfo.from_dict(system_message_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBTeXN0ZW1NZXNzYWdlSW5mbwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eXBlKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKiptZXNzYWdlKiogfCAqKnN0cioqIHwgQSByZXNwb25zZSBmcm9tIEZpcmVibG9ja3MgdGhhdCBjb21tdW5pY2F0ZXMgYSBtZXNzYWdlIGFib3V0IHRoZSBoZWFsdGggb2YgdGhlIHByb2Nlc3MgYmVpbmcgcGVyZm9ybWVkLiBJZiB0aGlzIG9iamVjdCBpcyByZXR1cm5lZCB3aXRoIGRhdGEsIHlvdSBzaG91bGQgZXhwZWN0IHBvdGVudGlhbCBkZWxheXMgb3IgaW5jb21wbGV0ZSB0cmFuc2FjdGlvbiBzdGF0dXNlcy4gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3lzdGVtX21lc3NhZ2VfaW5mbyBpbXBvcnQgU3lzdGVtTWVzc2FnZUluZm8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFN5c3RlbU1lc3NhZ2VJbmZvIGZyb20gYSBKU09OIHN0cmluZwpzeXN0ZW1fbWVzc2FnZV9pbmZvX2luc3RhbmNlID0gU3lzdGVtTWVzc2FnZUluZm8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoU3lzdGVtTWVzc2FnZUluZm8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKc3lzdGVtX21lc3NhZ2VfaW5mb19kaWN0ID0gc3lzdGVtX21lc3NhZ2VfaW5mb19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3lzdGVtTWVzc2FnZUluZm8gZnJvbSBhIGRpY3QKc3lzdGVtX21lc3NhZ2VfaW5mb19mcm9tX2RpY3QgPSBTeXN0ZW1NZXNzYWdlSW5mby5mcm9tX2RpY3Qoc3lzdGVtX21lc3NhZ2VfaW5mb19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkAPIPagedResponse.md b/docs/TRLinkAPIPagedResponse.md index 4bd05e09..970bfb0e 100644 --- a/docs/TRLinkAPIPagedResponse.md +++ b/docs/TRLinkAPIPagedResponse.md @@ -1,31 +1 @@ -# TRLinkAPIPagedResponse - -Generic paginated response wrapper with cursor-based pagination - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[TRLinkVaspListDto]**](TRLinkVaspListDto.md) | Array of result items | -**paging** | [**TRLinkPaging**](TRLinkPaging.md) | | [optional] - -## Example - -```python -from fireblocks.models.tr_link_api_paged_response import TRLinkAPIPagedResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkAPIPagedResponse from a JSON string -tr_link_api_paged_response_instance = TRLinkAPIPagedResponse.from_json(json) -# print the JSON string representation of the object -print(TRLinkAPIPagedResponse.to_json()) - -# convert the object into a dict -tr_link_api_paged_response_dict = tr_link_api_paged_response_instance.to_dict() -# create an instance of TRLinkAPIPagedResponse from a dict -tr_link_api_paged_response_from_dict = TRLinkAPIPagedResponse.from_dict(tr_link_api_paged_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtBUElQYWdlZFJlc3BvbnNlCgpHZW5lcmljIHBhZ2luYXRlZCByZXNwb25zZSB3cmFwcGVyIHdpdGggY3Vyc29yLWJhc2VkIHBhZ2luYXRpb24KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkYXRhKiogfCBbKipMaXN0W1RSTGlua1Zhc3BMaXN0RHRvXSoqXShUUkxpbmtWYXNwTGlzdER0by5tZCkgfCBBcnJheSBvZiByZXN1bHQgaXRlbXMgfCAKKipwYWdpbmcqKiB8IFsqKlRSTGlua1BhZ2luZyoqXShUUkxpbmtQYWdpbmcubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXBpX3BhZ2VkX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtBUElQYWdlZFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtBUElQYWdlZFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX2FwaV9wYWdlZF9yZXNwb25zZV9pbnN0YW5jZSA9IFRSTGlua0FQSVBhZ2VkUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVFJMaW5rQVBJUGFnZWRSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX2FwaV9wYWdlZF9yZXNwb25zZV9kaWN0ID0gdHJfbGlua19hcGlfcGFnZWRfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0FQSVBhZ2VkUmVzcG9uc2UgZnJvbSBhIGRpY3QKdHJfbGlua19hcGlfcGFnZWRfcmVzcG9uc2VfZnJvbV9kaWN0ID0gVFJMaW5rQVBJUGFnZWRSZXNwb25zZS5mcm9tX2RpY3QodHJfbGlua19hcGlfcGFnZWRfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkAmount.md b/docs/TRLinkAmount.md index c785b557..0fcaf375 100644 --- a/docs/TRLinkAmount.md +++ b/docs/TRLinkAmount.md @@ -1,31 +1 @@ -# TRLinkAmount - -TRLink amount definition with range and currency, compatible with TAP format from Policy Engine V2 - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**range** | [**AmountRangeMinMax**](AmountRangeMinMax.md) | | [optional] -**currency** | **str** | Currency type | [optional] - -## Example - -```python -from fireblocks.models.tr_link_amount import TRLinkAmount - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkAmount from a JSON string -tr_link_amount_instance = TRLinkAmount.from_json(json) -# print the JSON string representation of the object -print(TRLinkAmount.to_json()) - -# convert the object into a dict -tr_link_amount_dict = tr_link_amount_instance.to_dict() -# create an instance of TRLinkAmount from a dict -tr_link_amount_from_dict = TRLinkAmount.from_dict(tr_link_amount_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtBbW91bnQKClRSTGluayBhbW91bnQgZGVmaW5pdGlvbiB3aXRoIHJhbmdlIGFuZCBjdXJyZW5jeSwgY29tcGF0aWJsZSB3aXRoIFRBUCBmb3JtYXQgZnJvbSBQb2xpY3kgRW5naW5lIFYyCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcmFuZ2UqKiB8IFsqKkFtb3VudFJhbmdlTWluTWF4KipdKEFtb3VudFJhbmdlTWluTWF4Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqY3VycmVuY3kqKiB8ICoqc3RyKiogfCBDdXJyZW5jeSB0eXBlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYW1vdW50IGltcG9ydCBUUkxpbmtBbW91bnQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0Ftb3VudCBmcm9tIGEgSlNPTiBzdHJpbmcKdHJfbGlua19hbW91bnRfaW5zdGFuY2UgPSBUUkxpbmtBbW91bnQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVFJMaW5rQW1vdW50LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyX2xpbmtfYW1vdW50X2RpY3QgPSB0cl9saW5rX2Ftb3VudF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQW1vdW50IGZyb20gYSBkaWN0CnRyX2xpbmtfYW1vdW50X2Zyb21fZGljdCA9IFRSTGlua0Ftb3VudC5mcm9tX2RpY3QodHJfbGlua19hbW91bnRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkAmount2.md b/docs/TRLinkAmount2.md index c5bda031..f74b7d6b 100644 --- a/docs/TRLinkAmount2.md +++ b/docs/TRLinkAmount2.md @@ -1,31 +1 @@ -# TRLinkAmount2 - -Amount specification with range and currency type - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**range** | [**TRLinkAmountRange**](TRLinkAmountRange.md) | | -**currency** | [**TRLinkCurrency**](TRLinkCurrency.md) | | - -## Example - -```python -from fireblocks.models.tr_link_amount2 import TRLinkAmount2 - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkAmount2 from a JSON string -tr_link_amount2_instance = TRLinkAmount2.from_json(json) -# print the JSON string representation of the object -print(TRLinkAmount2.to_json()) - -# convert the object into a dict -tr_link_amount2_dict = tr_link_amount2_instance.to_dict() -# create an instance of TRLinkAmount2 from a dict -tr_link_amount2_from_dict = TRLinkAmount2.from_dict(tr_link_amount2_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtBbW91bnQyCgpBbW91bnQgc3BlY2lmaWNhdGlvbiB3aXRoIHJhbmdlIGFuZCBjdXJyZW5jeSB0eXBlCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcmFuZ2UqKiB8IFsqKlRSTGlua0Ftb3VudFJhbmdlKipdKFRSTGlua0Ftb3VudFJhbmdlLm1kKSB8ICB8IAoqKmN1cnJlbmN5KiogfCBbKipUUkxpbmtDdXJyZW5jeSoqXShUUkxpbmtDdXJyZW5jeS5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYW1vdW50MiBpbXBvcnQgVFJMaW5rQW1vdW50MgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQW1vdW50MiBmcm9tIGEgSlNPTiBzdHJpbmcKdHJfbGlua19hbW91bnQyX2luc3RhbmNlID0gVFJMaW5rQW1vdW50Mi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtBbW91bnQyLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyX2xpbmtfYW1vdW50Ml9kaWN0ID0gdHJfbGlua19hbW91bnQyX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtBbW91bnQyIGZyb20gYSBkaWN0CnRyX2xpbmtfYW1vdW50Ml9mcm9tX2RpY3QgPSBUUkxpbmtBbW91bnQyLmZyb21fZGljdCh0cl9saW5rX2Ftb3VudDJfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkAmountRange.md b/docs/TRLinkAmountRange.md index 2a5ea8ff..9a37b344 100644 --- a/docs/TRLinkAmountRange.md +++ b/docs/TRLinkAmountRange.md @@ -1,31 +1 @@ -# TRLinkAmountRange - -Minimum and maximum amount range specification - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**min** | **str** | Minimum amount (inclusive) | [optional] -**max** | **str** | Maximum amount (inclusive) | [optional] - -## Example - -```python -from fireblocks.models.tr_link_amount_range import TRLinkAmountRange - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkAmountRange from a JSON string -tr_link_amount_range_instance = TRLinkAmountRange.from_json(json) -# print the JSON string representation of the object -print(TRLinkAmountRange.to_json()) - -# convert the object into a dict -tr_link_amount_range_dict = tr_link_amount_range_instance.to_dict() -# create an instance of TRLinkAmountRange from a dict -tr_link_amount_range_from_dict = TRLinkAmountRange.from_dict(tr_link_amount_range_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtBbW91bnRSYW5nZQoKTWluaW11bSBhbmQgbWF4aW11bSBhbW91bnQgcmFuZ2Ugc3BlY2lmaWNhdGlvbgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm1pbioqIHwgKipzdHIqKiB8IE1pbmltdW0gYW1vdW50IChpbmNsdXNpdmUpIHwgW29wdGlvbmFsXSAKKiptYXgqKiB8ICoqc3RyKiogfCBNYXhpbXVtIGFtb3VudCAoaW5jbHVzaXZlKSB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Ftb3VudF9yYW5nZSBpbXBvcnQgVFJMaW5rQW1vdW50UmFuZ2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0Ftb3VudFJhbmdlIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX2Ftb3VudF9yYW5nZV9pbnN0YW5jZSA9IFRSTGlua0Ftb3VudFJhbmdlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRSTGlua0Ftb3VudFJhbmdlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyX2xpbmtfYW1vdW50X3JhbmdlX2RpY3QgPSB0cl9saW5rX2Ftb3VudF9yYW5nZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQW1vdW50UmFuZ2UgZnJvbSBhIGRpY3QKdHJfbGlua19hbW91bnRfcmFuZ2VfZnJvbV9kaWN0ID0gVFJMaW5rQW1vdW50UmFuZ2UuZnJvbV9kaWN0KHRyX2xpbmtfYW1vdW50X3JhbmdlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkApi.md b/docs/TRLinkApi.md index 2c714e99..ccef646a 100644 --- a/docs/TRLinkApi.md +++ b/docs/TRLinkApi.md @@ -1,1931 +1 @@ -# fireblocks.TRLinkApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**assess_tr_link_travel_rule_requirement**](TRLinkApi.md#assess_tr_link_travel_rule_requirement) | **POST** /screening/trlink/customers/integration/{customerIntegrationId}/trm/assess | Assess Travel Rule requirement -[**cancel_tr_link_trm**](TRLinkApi.md#cancel_tr_link_trm) | **POST** /screening/trlink/customers/integration/{customerIntegrationId}/trm/{trmId}/cancel | Cancel Travel Rule Message -[**connect_tr_link_integration**](TRLinkApi.md#connect_tr_link_integration) | **PUT** /screening/trlink/customers/integration/{customerIntegrationId} | Connect customer integration -[**create_tr_link_customer**](TRLinkApi.md#create_tr_link_customer) | **POST** /screening/trlink/customers | Create customer -[**create_tr_link_integration**](TRLinkApi.md#create_tr_link_integration) | **POST** /screening/trlink/customers/integration | Create customer integration -[**create_tr_link_trm**](TRLinkApi.md#create_tr_link_trm) | **POST** /screening/trlink/customers/integration/{customerIntegrationId}/trm | Create Travel Rule Message -[**delete_tr_link_customer**](TRLinkApi.md#delete_tr_link_customer) | **DELETE** /screening/trlink/customers/{customerId} | Delete customer -[**disconnect_tr_link_integration**](TRLinkApi.md#disconnect_tr_link_integration) | **DELETE** /screening/trlink/customers/integration/{customerIntegrationId} | Disconnect customer integration -[**get_tr_link_customer_by_id**](TRLinkApi.md#get_tr_link_customer_by_id) | **GET** /screening/trlink/customers/{customerId} | Get customer by ID -[**get_tr_link_customer_integration_by_id**](TRLinkApi.md#get_tr_link_customer_integration_by_id) | **GET** /screening/trlink/customers/{customerId}/integrations/{customerIntegrationId} | Get customer integration by ID -[**get_tr_link_customer_integrations**](TRLinkApi.md#get_tr_link_customer_integrations) | **GET** /screening/trlink/customers/{customerId}/integrations | Get customer integrations -[**get_tr_link_customers**](TRLinkApi.md#get_tr_link_customers) | **GET** /screening/trlink/customers | Get all customers -[**get_tr_link_integration_public_key**](TRLinkApi.md#get_tr_link_integration_public_key) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/public_key | Get public key for PII encryption -[**get_tr_link_partners**](TRLinkApi.md#get_tr_link_partners) | **GET** /screening/trlink/partners | List available TRSupport partners -[**get_tr_link_policy**](TRLinkApi.md#get_tr_link_policy) | **GET** /screening/trlink/policy | Get TRLink policy -[**get_tr_link_supported_asset**](TRLinkApi.md#get_tr_link_supported_asset) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/assets/{assetId} | Get supported asset by ID -[**get_tr_link_trm_by_id**](TRLinkApi.md#get_tr_link_trm_by_id) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/trm/{trmId} | Get TRM by ID -[**get_tr_link_vasp_by_id**](TRLinkApi.md#get_tr_link_vasp_by_id) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/vasps/{vaspId} | Get VASP by ID -[**list_tr_link_supported_assets**](TRLinkApi.md#list_tr_link_supported_assets) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/assets | List supported assets -[**list_tr_link_vasps**](TRLinkApi.md#list_tr_link_vasps) | **GET** /screening/trlink/customers/integration/{customerIntegrationId}/vasps | List VASPs -[**redirect_tr_link_trm**](TRLinkApi.md#redirect_tr_link_trm) | **POST** /screening/trlink/customers/integration/{customerIntegrationId}/trm/{trmId}/redirect | Redirect Travel Rule Message -[**set_tr_link_destination_travel_rule_message_id**](TRLinkApi.md#set_tr_link_destination_travel_rule_message_id) | **POST** /screening/trlink/transaction/{txId}/destination/travel_rule_message_id | Set destination travel rule message ID -[**set_tr_link_transaction_travel_rule_message_id**](TRLinkApi.md#set_tr_link_transaction_travel_rule_message_id) | **POST** /screening/trlink/transaction/{txId}/travel_rule_message_id | Set transaction travel rule message ID -[**test_tr_link_integration_connection**](TRLinkApi.md#test_tr_link_integration_connection) | **POST** /screening/trlink/customers/integration/{customerIntegrationId}/test_connection | Test connection -[**update_tr_link_customer**](TRLinkApi.md#update_tr_link_customer) | **PUT** /screening/trlink/customers/{customerId} | Update customer - - -# **assess_tr_link_travel_rule_requirement** -> TRLinkAssessTravelRuleResponse assess_tr_link_travel_rule_requirement(customer_integration_id, tr_link_assess_travel_rule_request, idempotency_key=idempotency_key) - -Assess Travel Rule requirement - -Assesses travel rule requirement for a transaction by validating stored credentials and determining whether Travel Rule compliance is required based on amount, jurisdiction, and partner thresholds. - -### Example - - -```python -from fireblocks.models.tr_link_assess_travel_rule_request import TRLinkAssessTravelRuleRequest -from fireblocks.models.tr_link_assess_travel_rule_response import TRLinkAssessTravelRuleResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - customer_integration_id = 'customer_integration_id_example' # str | Customer integration unique identifier - tr_link_assess_travel_rule_request = fireblocks.TRLinkAssessTravelRuleRequest() # TRLinkAssessTravelRuleRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Assess Travel Rule requirement - api_response = fireblocks.tr_link.assess_tr_link_travel_rule_requirement(customer_integration_id, tr_link_assess_travel_rule_request, idempotency_key=idempotency_key).result() - print("The response of TRLinkApi->assess_tr_link_travel_rule_requirement:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->assess_tr_link_travel_rule_requirement: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **customer_integration_id** | **str**| Customer integration unique identifier | - **tr_link_assess_travel_rule_request** | [**TRLinkAssessTravelRuleRequest**](TRLinkAssessTravelRuleRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**TRLinkAssessTravelRuleResponse**](TRLinkAssessTravelRuleResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Travel rule assessment completed | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **cancel_tr_link_trm** -> TRLinkTrmInfoResponse cancel_tr_link_trm(customer_integration_id, trm_id, tr_link_cancel_trm_request, idempotency_key=idempotency_key) - -Cancel Travel Rule Message - -Cancels a travel rule message. The TRM status will be updated to cancelled and the partner will be notified. - -### Example - - -```python -from fireblocks.models.tr_link_cancel_trm_request import TRLinkCancelTrmRequest -from fireblocks.models.tr_link_trm_info_response import TRLinkTrmInfoResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - customer_integration_id = 'customer_integration_id_example' # str | Customer integration unique identifier - trm_id = 'trm_id_example' # str | Travel Rule Message unique identifier - tr_link_cancel_trm_request = fireblocks.TRLinkCancelTrmRequest() # TRLinkCancelTrmRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Cancel Travel Rule Message - api_response = fireblocks.tr_link.cancel_tr_link_trm(customer_integration_id, trm_id, tr_link_cancel_trm_request, idempotency_key=idempotency_key).result() - print("The response of TRLinkApi->cancel_tr_link_trm:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->cancel_tr_link_trm: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **customer_integration_id** | **str**| Customer integration unique identifier | - **trm_id** | **str**| Travel Rule Message unique identifier | - **tr_link_cancel_trm_request** | [**TRLinkCancelTrmRequest**](TRLinkCancelTrmRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**TRLinkTrmInfoResponse**](TRLinkTrmInfoResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**202** | Transaction cancellation request accepted | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **connect_tr_link_integration** -> TRLinkCustomerIntegrationResponse connect_tr_link_integration(customer_integration_id, tr_link_connect_integration_request, idempotency_key=idempotency_key) - -Connect customer integration - -Connects a customer integration by providing API credentials. Stores encrypted credentials and enables the integration for use. - -### Example - - -```python -from fireblocks.models.tr_link_connect_integration_request import TRLinkConnectIntegrationRequest -from fireblocks.models.tr_link_customer_integration_response import TRLinkCustomerIntegrationResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - customer_integration_id = '123e4567-e89b-12d3-a456-426614174000' # str | Customer integration unique identifier - tr_link_connect_integration_request = fireblocks.TRLinkConnectIntegrationRequest() # TRLinkConnectIntegrationRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Connect customer integration - api_response = fireblocks.tr_link.connect_tr_link_integration(customer_integration_id, tr_link_connect_integration_request, idempotency_key=idempotency_key).result() - print("The response of TRLinkApi->connect_tr_link_integration:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->connect_tr_link_integration: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **customer_integration_id** | **str**| Customer integration unique identifier | - **tr_link_connect_integration_request** | [**TRLinkConnectIntegrationRequest**](TRLinkConnectIntegrationRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**TRLinkCustomerIntegrationResponse**](TRLinkCustomerIntegrationResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Customer integration connected successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_tr_link_customer** -> TRLinkCustomerResponse create_tr_link_customer(tr_link_create_customer_request, idempotency_key=idempotency_key) - -Create customer - -Creates a new customer (legal entity/VASP) for TRSupport Travel Rule compliance operations. The customer represents your organization in the Travel Rule network and contains IVMS101-compliant identity information. - -### Example - - -```python -from fireblocks.models.tr_link_create_customer_request import TRLinkCreateCustomerRequest -from fireblocks.models.tr_link_customer_response import TRLinkCustomerResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - tr_link_create_customer_request = fireblocks.TRLinkCreateCustomerRequest() # TRLinkCreateCustomerRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Create customer - api_response = fireblocks.tr_link.create_tr_link_customer(tr_link_create_customer_request, idempotency_key=idempotency_key).result() - print("The response of TRLinkApi->create_tr_link_customer:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->create_tr_link_customer: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **tr_link_create_customer_request** | [**TRLinkCreateCustomerRequest**](TRLinkCreateCustomerRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**TRLinkCustomerResponse**](TRLinkCustomerResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Customer created successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_tr_link_integration** -> TRLinkCustomerIntegrationResponse create_tr_link_integration(tr_link_create_integration_request, idempotency_key=idempotency_key) - -Create customer integration - -Creates a new TRSupport integration for a customer. This establishes a connection placeholder between a customer and a Travel Rule partner. Use the connect endpoint to provide credentials after creation. - -### Example - - -```python -from fireblocks.models.tr_link_create_integration_request import TRLinkCreateIntegrationRequest -from fireblocks.models.tr_link_customer_integration_response import TRLinkCustomerIntegrationResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - tr_link_create_integration_request = fireblocks.TRLinkCreateIntegrationRequest() # TRLinkCreateIntegrationRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Create customer integration - api_response = fireblocks.tr_link.create_tr_link_integration(tr_link_create_integration_request, idempotency_key=idempotency_key).result() - print("The response of TRLinkApi->create_tr_link_integration:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->create_tr_link_integration: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **tr_link_create_integration_request** | [**TRLinkCreateIntegrationRequest**](TRLinkCreateIntegrationRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**TRLinkCustomerIntegrationResponse**](TRLinkCustomerIntegrationResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Customer integration created successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_tr_link_trm** -> TRLinkTrmInfoResponse create_tr_link_trm(customer_integration_id, tr_link_create_trm_request, idempotency_key=idempotency_key) - -Create Travel Rule Message - -Creates a new travel rule message with IVMS101-compliant PII data. Encrypts sensitive originator and beneficiary information before sending to partner. - -### Example - - -```python -from fireblocks.models.tr_link_create_trm_request import TRLinkCreateTrmRequest -from fireblocks.models.tr_link_trm_info_response import TRLinkTrmInfoResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - customer_integration_id = 'customer_integration_id_example' # str | Customer integration unique identifier - tr_link_create_trm_request = fireblocks.TRLinkCreateTrmRequest() # TRLinkCreateTrmRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Create Travel Rule Message - api_response = fireblocks.tr_link.create_tr_link_trm(customer_integration_id, tr_link_create_trm_request, idempotency_key=idempotency_key).result() - print("The response of TRLinkApi->create_tr_link_trm:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->create_tr_link_trm: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **customer_integration_id** | **str**| Customer integration unique identifier | - **tr_link_create_trm_request** | [**TRLinkCreateTrmRequest**](TRLinkCreateTrmRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**TRLinkTrmInfoResponse**](TRLinkTrmInfoResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | TRM created successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **delete_tr_link_customer** -> delete_tr_link_customer(customer_id) - -Delete customer - -Deletes a customer and all associated integrations. This action cannot be undone. - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - customer_id = '550e8400-e29b-41d4-a716-446655440001' # str | Customer unique identifier - - try: - # Delete customer - fireblocks.tr_link.delete_tr_link_customer(customer_id).result() - except Exception as e: - print("Exception when calling TRLinkApi->delete_tr_link_customer: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **customer_id** | **str**| Customer unique identifier | - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**204** | Customer deleted successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **disconnect_tr_link_integration** -> disconnect_tr_link_integration(customer_integration_id) - -Disconnect customer integration - -Disconnects a customer integration by removing stored credentials. The integration record is deleted and cannot be recovered. - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - customer_integration_id = '123e4567-e89b-12d3-a456-426614174000' # str | Customer integration unique identifier - - try: - # Disconnect customer integration - fireblocks.tr_link.disconnect_tr_link_integration(customer_integration_id).result() - except Exception as e: - print("Exception when calling TRLinkApi->disconnect_tr_link_integration: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **customer_integration_id** | **str**| Customer integration unique identifier | - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**204** | Customer integration disconnected successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_tr_link_customer_by_id** -> TRLinkCustomerResponse get_tr_link_customer_by_id(customer_id) - -Get customer by ID - -Retrieves detailed information about a specific customer by their unique identifier. - -### Example - - -```python -from fireblocks.models.tr_link_customer_response import TRLinkCustomerResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - customer_id = '550e8400-e29b-41d4-a716-446655440001' # str | Customer unique identifier - - try: - # Get customer by ID - api_response = fireblocks.tr_link.get_tr_link_customer_by_id(customer_id).result() - print("The response of TRLinkApi->get_tr_link_customer_by_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->get_tr_link_customer_by_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **customer_id** | **str**| Customer unique identifier | - -### Return type - -[**TRLinkCustomerResponse**](TRLinkCustomerResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Customer retrieved successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_tr_link_customer_integration_by_id** -> TRLinkCustomerIntegrationResponse get_tr_link_customer_integration_by_id(customer_id, customer_integration_id) - -Get customer integration by ID - -Retrieves detailed information about a specific customer integration. - -### Example - - -```python -from fireblocks.models.tr_link_customer_integration_response import TRLinkCustomerIntegrationResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - customer_id = '550e8400-e29b-41d4-a716-446655440001' # str | Customer unique identifier - customer_integration_id = '123e4567-e89b-12d3-a456-426614174000' # str | Customer integration unique identifier - - try: - # Get customer integration by ID - api_response = fireblocks.tr_link.get_tr_link_customer_integration_by_id(customer_id, customer_integration_id).result() - print("The response of TRLinkApi->get_tr_link_customer_integration_by_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->get_tr_link_customer_integration_by_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **customer_id** | **str**| Customer unique identifier | - **customer_integration_id** | **str**| Customer integration unique identifier | - -### Return type - -[**TRLinkCustomerIntegrationResponse**](TRLinkCustomerIntegrationResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Customer integration retrieved successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_tr_link_customer_integrations** -> List[TRLinkCustomerIntegrationResponse] get_tr_link_customer_integrations(customer_id) - -Get customer integrations - -Retrieves all TRSupport integrations for a specific customer. Returns a list of partner integrations configured for Travel Rule compliance. - -### Example - - -```python -from fireblocks.models.tr_link_customer_integration_response import TRLinkCustomerIntegrationResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - customer_id = '550e8400-e29b-41d4-a716-446655440001' # str | Customer unique identifier - - try: - # Get customer integrations - api_response = fireblocks.tr_link.get_tr_link_customer_integrations(customer_id).result() - print("The response of TRLinkApi->get_tr_link_customer_integrations:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->get_tr_link_customer_integrations: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **customer_id** | **str**| Customer unique identifier | - -### Return type - -[**List[TRLinkCustomerIntegrationResponse]**](TRLinkCustomerIntegrationResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Customer integrations retrieved successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_tr_link_customers** -> List[TRLinkCustomerResponse] get_tr_link_customers() - -Get all customers - -Retrieves all customers associated with the authenticated tenant. Returns a list of legal entities configured for Travel Rule compliance. - -### Example - - -```python -from fireblocks.models.tr_link_customer_response import TRLinkCustomerResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Get all customers - api_response = fireblocks.tr_link.get_tr_link_customers().result() - print("The response of TRLinkApi->get_tr_link_customers:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->get_tr_link_customers: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**List[TRLinkCustomerResponse]**](TRLinkCustomerResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Customers retrieved successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_tr_link_integration_public_key** -> TRLinkPublicKeyResponse get_tr_link_integration_public_key(customer_integration_id) - -Get public key for PII encryption - -Retrieves the partner's public key in JWK format for encrypting PII data in Travel Rule Messages. Use this key to encrypt sensitive originator and beneficiary information before sending Travel Rule messages. - -### Example - - -```python -from fireblocks.models.tr_link_public_key_response import TRLinkPublicKeyResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - customer_integration_id = '123e4567-e89b-12d3-a456-426614174000' # str | Customer integration unique identifier - - try: - # Get public key for PII encryption - api_response = fireblocks.tr_link.get_tr_link_integration_public_key(customer_integration_id).result() - print("The response of TRLinkApi->get_tr_link_integration_public_key:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->get_tr_link_integration_public_key: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **customer_integration_id** | **str**| Customer integration unique identifier | - -### Return type - -[**TRLinkPublicKeyResponse**](TRLinkPublicKeyResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Public key retrieved successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_tr_link_partners** -> List[TRLinkPartnerResponse] get_tr_link_partners() - -List available TRSupport partners - -Retrieves a list of all available Travel Rule Support integration partners. Partners provide Travel Rule compliance services such as VASP discovery, TRM exchange, and PII encryption. - -### Example - - -```python -from fireblocks.models.tr_link_partner_response import TRLinkPartnerResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # List available TRSupport partners - api_response = fireblocks.tr_link.get_tr_link_partners().result() - print("The response of TRLinkApi->get_tr_link_partners:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->get_tr_link_partners: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**List[TRLinkPartnerResponse]**](TRLinkPartnerResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | List of partners retrieved successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_tr_link_policy** -> TRLinkPolicyResponse get_tr_link_policy() - -Get TRLink policy - -Retrieves the complete TRSupport policy for the authenticated tenant, including pre-screening rules, post-screening rules, and missing TRM rules. Pre-screening rules determine whether transactions should be screened. Post-screening rules determine actions based on screening results. Missing TRM rules handle cases when screening data is unavailable. - -### Example - - -```python -from fireblocks.models.tr_link_policy_response import TRLinkPolicyResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Get TRLink policy - api_response = fireblocks.tr_link.get_tr_link_policy().result() - print("The response of TRLinkApi->get_tr_link_policy:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->get_tr_link_policy: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**TRLinkPolicyResponse**](TRLinkPolicyResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Policy retrieved successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_tr_link_supported_asset** -> TRLinkGetSupportedAssetResponse get_tr_link_supported_asset(customer_integration_id, asset_id) - -Get supported asset by ID - -Retrieves detailed information about a specific asset by its Fireblocks asset ID. Returns the transformed Fireblocks asset data, raw partner response, and support status. - -### Example - - -```python -from fireblocks.models.tr_link_get_supported_asset_response import TRLinkGetSupportedAssetResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - customer_integration_id = 'customer_integration_id_example' # str | Customer integration unique identifier - asset_id = 'asset_id_example' # str | Fireblocks asset ID - - try: - # Get supported asset by ID - api_response = fireblocks.tr_link.get_tr_link_supported_asset(customer_integration_id, asset_id).result() - print("The response of TRLinkApi->get_tr_link_supported_asset:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->get_tr_link_supported_asset: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **customer_integration_id** | **str**| Customer integration unique identifier | - **asset_id** | **str**| Fireblocks asset ID | - -### Return type - -[**TRLinkGetSupportedAssetResponse**](TRLinkGetSupportedAssetResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Asset retrieved successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_tr_link_trm_by_id** -> TRLinkTrmInfoResponse get_tr_link_trm_by_id(customer_integration_id, trm_id) - -Get TRM by ID - -Retrieves a Travel Rule Message by its unique identifier from the partner provider. Returns full TRM details including status, IVMS101 data, and transaction information. - -### Example - - -```python -from fireblocks.models.tr_link_trm_info_response import TRLinkTrmInfoResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - customer_integration_id = 'customer_integration_id_example' # str | Customer integration unique identifier - trm_id = 'trm_id_example' # str | Travel Rule Message unique identifier - - try: - # Get TRM by ID - api_response = fireblocks.tr_link.get_tr_link_trm_by_id(customer_integration_id, trm_id).result() - print("The response of TRLinkApi->get_tr_link_trm_by_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->get_tr_link_trm_by_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **customer_integration_id** | **str**| Customer integration unique identifier | - **trm_id** | **str**| Travel Rule Message unique identifier | - -### Return type - -[**TRLinkTrmInfoResponse**](TRLinkTrmInfoResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | TRM retrieved successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_tr_link_vasp_by_id** -> TRLinkVaspDto get_tr_link_vasp_by_id(customer_integration_id, vasp_id) - -Get VASP by ID - -Retrieves detailed information about a specific VASP by its unique identifier. Returns VASP details including public key if available. - -### Example - - -```python -from fireblocks.models.tr_link_vasp_dto import TRLinkVaspDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - customer_integration_id = 'customer_integration_id_example' # str | Customer integration unique identifier - vasp_id = 'vasp_id_example' # str | VASP unique identifier (DID format) - - try: - # Get VASP by ID - api_response = fireblocks.tr_link.get_tr_link_vasp_by_id(customer_integration_id, vasp_id).result() - print("The response of TRLinkApi->get_tr_link_vasp_by_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->get_tr_link_vasp_by_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **customer_integration_id** | **str**| Customer integration unique identifier | - **vasp_id** | **str**| VASP unique identifier (DID format) | - -### Return type - -[**TRLinkVaspDto**](TRLinkVaspDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | VASP retrieved successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **list_tr_link_supported_assets** -> TRLinkAssetsListPagedResponse list_tr_link_supported_assets(customer_integration_id, page_size=page_size, page_cursor=page_cursor) - -List supported assets - -Retrieves a paginated list of assets supported by the partner integration. Includes a flag indicating whether the partner can handle assets not explicitly listed. Supports cursor-based pagination. - -### Example - - -```python -from fireblocks.models.tr_link_assets_list_paged_response import TRLinkAssetsListPagedResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - customer_integration_id = 'customer_integration_id_example' # str | Customer integration unique identifier - page_size = 100 # int | Number of results per page (max 100) (optional) (default to 100) - page_cursor = 'page_cursor_example' # str | Cursor for pagination (from previous response) (optional) - - try: - # List supported assets - api_response = fireblocks.tr_link.list_tr_link_supported_assets(customer_integration_id, page_size=page_size, page_cursor=page_cursor).result() - print("The response of TRLinkApi->list_tr_link_supported_assets:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->list_tr_link_supported_assets: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **customer_integration_id** | **str**| Customer integration unique identifier | - **page_size** | **int**| Number of results per page (max 100) | [optional] [default to 100] - **page_cursor** | **str**| Cursor for pagination (from previous response) | [optional] - -### Return type - -[**TRLinkAssetsListPagedResponse**](TRLinkAssetsListPagedResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Supported assets retrieved successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **list_tr_link_vasps** -> TRLinkAPIPagedResponse list_tr_link_vasps(customer_integration_id, page_size=page_size, page_cursor=page_cursor) - -List VASPs - -Retrieves a paginated list of VASPs (Virtual Asset Service Providers) available through the partner integration. Supports cursor-based pagination. - -### Example - - -```python -from fireblocks.models.tr_link_api_paged_response import TRLinkAPIPagedResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - customer_integration_id = 'customer_integration_id_example' # str | Customer integration unique identifier - page_size = 100 # int | Number of results per page (max 100) (optional) (default to 100) - page_cursor = 'page_cursor_example' # str | Cursor for pagination (from previous response) (optional) - - try: - # List VASPs - api_response = fireblocks.tr_link.list_tr_link_vasps(customer_integration_id, page_size=page_size, page_cursor=page_cursor).result() - print("The response of TRLinkApi->list_tr_link_vasps:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->list_tr_link_vasps: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **customer_integration_id** | **str**| Customer integration unique identifier | - **page_size** | **int**| Number of results per page (max 100) | [optional] [default to 100] - **page_cursor** | **str**| Cursor for pagination (from previous response) | [optional] - -### Return type - -[**TRLinkAPIPagedResponse**](TRLinkAPIPagedResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | VASPs retrieved successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **redirect_tr_link_trm** -> TRLinkTrmInfoResponse redirect_tr_link_trm(customer_integration_id, trm_id, tr_link_redirect_trm_request, idempotency_key=idempotency_key) - -Redirect Travel Rule Message - -Redirects a Travel Rule Message to a subsidiary VASP. This operation requires the partner to support nested VASPs functionality. - -### Example - - -```python -from fireblocks.models.tr_link_redirect_trm_request import TRLinkRedirectTrmRequest -from fireblocks.models.tr_link_trm_info_response import TRLinkTrmInfoResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - customer_integration_id = 'customer_integration_id_example' # str | Customer integration unique identifier - trm_id = 'trm_id_example' # str | Travel Rule Message unique identifier - tr_link_redirect_trm_request = fireblocks.TRLinkRedirectTrmRequest() # TRLinkRedirectTrmRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Redirect Travel Rule Message - api_response = fireblocks.tr_link.redirect_tr_link_trm(customer_integration_id, trm_id, tr_link_redirect_trm_request, idempotency_key=idempotency_key).result() - print("The response of TRLinkApi->redirect_tr_link_trm:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->redirect_tr_link_trm: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **customer_integration_id** | **str**| Customer integration unique identifier | - **trm_id** | **str**| Travel Rule Message unique identifier | - **tr_link_redirect_trm_request** | [**TRLinkRedirectTrmRequest**](TRLinkRedirectTrmRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**TRLinkTrmInfoResponse**](TRLinkTrmInfoResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**202** | Transaction redirect request accepted | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_tr_link_destination_travel_rule_message_id** -> TRLinkSetDestinationTravelRuleMessageIdResponse set_tr_link_destination_travel_rule_message_id(tx_id, tr_link_set_destination_travel_rule_message_id_request, idempotency_key=idempotency_key) - -Set destination travel rule message ID - -Associates a Travel Rule Message ID with a specific destination in a multi-destination Fireblocks transaction. Matches destinations by amount and peer path. - -### Example - - -```python -from fireblocks.models.tr_link_set_destination_travel_rule_message_id_request import TRLinkSetDestinationTravelRuleMessageIdRequest -from fireblocks.models.tr_link_set_destination_travel_rule_message_id_response import TRLinkSetDestinationTravelRuleMessageIdResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - tx_id = 'tx_id_example' # str | Fireblocks transaction unique identifier - tr_link_set_destination_travel_rule_message_id_request = fireblocks.TRLinkSetDestinationTravelRuleMessageIdRequest() # TRLinkSetDestinationTravelRuleMessageIdRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Set destination travel rule message ID - api_response = fireblocks.tr_link.set_tr_link_destination_travel_rule_message_id(tx_id, tr_link_set_destination_travel_rule_message_id_request, idempotency_key=idempotency_key).result() - print("The response of TRLinkApi->set_tr_link_destination_travel_rule_message_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->set_tr_link_destination_travel_rule_message_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **tx_id** | **str**| Fireblocks transaction unique identifier | - **tr_link_set_destination_travel_rule_message_id_request** | [**TRLinkSetDestinationTravelRuleMessageIdRequest**](TRLinkSetDestinationTravelRuleMessageIdRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**TRLinkSetDestinationTravelRuleMessageIdResponse**](TRLinkSetDestinationTravelRuleMessageIdResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Destination travel rule message ID set successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_tr_link_transaction_travel_rule_message_id** -> TRLinkSetTransactionTravelRuleMessageIdResponse set_tr_link_transaction_travel_rule_message_id(tx_id, tr_link_set_transaction_travel_rule_message_id_request, idempotency_key=idempotency_key) - -Set transaction travel rule message ID - -Associates a Travel Rule Message ID with a Fireblocks transaction. This links the TRM compliance data to the blockchain transaction. - -### Example - - -```python -from fireblocks.models.tr_link_set_transaction_travel_rule_message_id_request import TRLinkSetTransactionTravelRuleMessageIdRequest -from fireblocks.models.tr_link_set_transaction_travel_rule_message_id_response import TRLinkSetTransactionTravelRuleMessageIdResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - tx_id = 'tx_id_example' # str | Fireblocks transaction unique identifier - tr_link_set_transaction_travel_rule_message_id_request = fireblocks.TRLinkSetTransactionTravelRuleMessageIdRequest() # TRLinkSetTransactionTravelRuleMessageIdRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Set transaction travel rule message ID - api_response = fireblocks.tr_link.set_tr_link_transaction_travel_rule_message_id(tx_id, tr_link_set_transaction_travel_rule_message_id_request, idempotency_key=idempotency_key).result() - print("The response of TRLinkApi->set_tr_link_transaction_travel_rule_message_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->set_tr_link_transaction_travel_rule_message_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **tx_id** | **str**| Fireblocks transaction unique identifier | - **tr_link_set_transaction_travel_rule_message_id_request** | [**TRLinkSetTransactionTravelRuleMessageIdRequest**](TRLinkSetTransactionTravelRuleMessageIdRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**TRLinkSetTransactionTravelRuleMessageIdResponse**](TRLinkSetTransactionTravelRuleMessageIdResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Travel rule message ID set successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **test_tr_link_integration_connection** -> TRLinkTestConnectionResponse test_tr_link_integration_connection(customer_integration_id, idempotency_key=idempotency_key) - -Test connection - -Tests the connection to a customer integration by validating stored credentials and attempting communication with the Travel Rule partner. Returns connection status and any error messages. - -### Example - - -```python -from fireblocks.models.tr_link_test_connection_response import TRLinkTestConnectionResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - customer_integration_id = '123e4567-e89b-12d3-a456-426614174000' # str | Customer integration unique identifier - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Test connection - api_response = fireblocks.tr_link.test_tr_link_integration_connection(customer_integration_id, idempotency_key=idempotency_key).result() - print("The response of TRLinkApi->test_tr_link_integration_connection:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->test_tr_link_integration_connection: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **customer_integration_id** | **str**| Customer integration unique identifier | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**TRLinkTestConnectionResponse**](TRLinkTestConnectionResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Connection test completed (success or failure details in response body) | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_tr_link_customer** -> TRLinkCustomerResponse update_tr_link_customer(customer_id, tr_link_update_customer_request, idempotency_key=idempotency_key) - -Update customer - -Updates an existing customer's information. All fields are optional - only provided fields will be updated. - -### Example - - -```python -from fireblocks.models.tr_link_customer_response import TRLinkCustomerResponse -from fireblocks.models.tr_link_update_customer_request import TRLinkUpdateCustomerRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - customer_id = '550e8400-e29b-41d4-a716-446655440001' # str | Customer unique identifier - tr_link_update_customer_request = fireblocks.TRLinkUpdateCustomerRequest() # TRLinkUpdateCustomerRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Update customer - api_response = fireblocks.tr_link.update_tr_link_customer(customer_id, tr_link_update_customer_request, idempotency_key=idempotency_key).result() - print("The response of TRLinkApi->update_tr_link_customer:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TRLinkApi->update_tr_link_customer: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **customer_id** | **str**| Customer unique identifier | - **tr_link_update_customer_request** | [**TRLinkUpdateCustomerRequest**](TRLinkUpdateCustomerRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**TRLinkCustomerResponse**](TRLinkCustomerResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Customer updated successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLlRSTGlua0FwaQoKQWxsIFVSSXMgYXJlIHJlbGF0aXZlIHRvICpodHRwczovL2FwaS5maXJlYmxvY2tzLmlvL3YxKgoKTWV0aG9kIHwgSFRUUCByZXF1ZXN0IHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tClsqKmFzc2Vzc190cl9saW5rX3RyYXZlbF9ydWxlX3JlcXVpcmVtZW50KipdKFRSTGlua0FwaS5tZCNhc3Nlc3NfdHJfbGlua190cmF2ZWxfcnVsZV9yZXF1aXJlbWVudCkgfCAqKlBPU1QqKiAvc2NyZWVuaW5nL3RybGluay9jdXN0b21lcnMvaW50ZWdyYXRpb24ve2N1c3RvbWVySW50ZWdyYXRpb25JZH0vdHJtL2Fzc2VzcyB8IEFzc2VzcyBUcmF2ZWwgUnVsZSByZXF1aXJlbWVudApbKipjYW5jZWxfdHJfbGlua190cm0qKl0oVFJMaW5rQXBpLm1kI2NhbmNlbF90cl9saW5rX3RybSkgfCAqKlBPU1QqKiAvc2NyZWVuaW5nL3RybGluay9jdXN0b21lcnMvaW50ZWdyYXRpb24ve2N1c3RvbWVySW50ZWdyYXRpb25JZH0vdHJtL3t0cm1JZH0vY2FuY2VsIHwgQ2FuY2VsIFRyYXZlbCBSdWxlIE1lc3NhZ2UKWyoqY29ubmVjdF90cl9saW5rX2ludGVncmF0aW9uKipdKFRSTGlua0FwaS5tZCNjb25uZWN0X3RyX2xpbmtfaW50ZWdyYXRpb24pIHwgKipQVVQqKiAvc2NyZWVuaW5nL3RybGluay9jdXN0b21lcnMvaW50ZWdyYXRpb24ve2N1c3RvbWVySW50ZWdyYXRpb25JZH0gfCBDb25uZWN0IGN1c3RvbWVyIGludGVncmF0aW9uClsqKmNyZWF0ZV90cl9saW5rX2N1c3RvbWVyKipdKFRSTGlua0FwaS5tZCNjcmVhdGVfdHJfbGlua19jdXN0b21lcikgfCAqKlBPU1QqKiAvc2NyZWVuaW5nL3RybGluay9jdXN0b21lcnMgfCBDcmVhdGUgY3VzdG9tZXIKWyoqY3JlYXRlX3RyX2xpbmtfaW50ZWdyYXRpb24qKl0oVFJMaW5rQXBpLm1kI2NyZWF0ZV90cl9saW5rX2ludGVncmF0aW9uKSB8ICoqUE9TVCoqIC9zY3JlZW5pbmcvdHJsaW5rL2N1c3RvbWVycy9pbnRlZ3JhdGlvbiB8IENyZWF0ZSBjdXN0b21lciBpbnRlZ3JhdGlvbgpbKipjcmVhdGVfdHJfbGlua190cm0qKl0oVFJMaW5rQXBpLm1kI2NyZWF0ZV90cl9saW5rX3RybSkgfCAqKlBPU1QqKiAvc2NyZWVuaW5nL3RybGluay9jdXN0b21lcnMvaW50ZWdyYXRpb24ve2N1c3RvbWVySW50ZWdyYXRpb25JZH0vdHJtIHwgQ3JlYXRlIFRyYXZlbCBSdWxlIE1lc3NhZ2UKWyoqZGVsZXRlX3RyX2xpbmtfY3VzdG9tZXIqKl0oVFJMaW5rQXBpLm1kI2RlbGV0ZV90cl9saW5rX2N1c3RvbWVyKSB8ICoqREVMRVRFKiogL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL3tjdXN0b21lcklkfSB8IERlbGV0ZSBjdXN0b21lcgpbKipkaXNjb25uZWN0X3RyX2xpbmtfaW50ZWdyYXRpb24qKl0oVFJMaW5rQXBpLm1kI2Rpc2Nvbm5lY3RfdHJfbGlua19pbnRlZ3JhdGlvbikgfCAqKkRFTEVURSoqIC9zY3JlZW5pbmcvdHJsaW5rL2N1c3RvbWVycy9pbnRlZ3JhdGlvbi97Y3VzdG9tZXJJbnRlZ3JhdGlvbklkfSB8IERpc2Nvbm5lY3QgY3VzdG9tZXIgaW50ZWdyYXRpb24KWyoqZ2V0X3RyX2xpbmtfY3VzdG9tZXJfYnlfaWQqKl0oVFJMaW5rQXBpLm1kI2dldF90cl9saW5rX2N1c3RvbWVyX2J5X2lkKSB8ICoqR0VUKiogL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL3tjdXN0b21lcklkfSB8IEdldCBjdXN0b21lciBieSBJRApbKipnZXRfdHJfbGlua19jdXN0b21lcl9pbnRlZ3JhdGlvbl9ieV9pZCoqXShUUkxpbmtBcGkubWQjZ2V0X3RyX2xpbmtfY3VzdG9tZXJfaW50ZWdyYXRpb25fYnlfaWQpIHwgKipHRVQqKiAvc2NyZWVuaW5nL3RybGluay9jdXN0b21lcnMve2N1c3RvbWVySWR9L2ludGVncmF0aW9ucy97Y3VzdG9tZXJJbnRlZ3JhdGlvbklkfSB8IEdldCBjdXN0b21lciBpbnRlZ3JhdGlvbiBieSBJRApbKipnZXRfdHJfbGlua19jdXN0b21lcl9pbnRlZ3JhdGlvbnMqKl0oVFJMaW5rQXBpLm1kI2dldF90cl9saW5rX2N1c3RvbWVyX2ludGVncmF0aW9ucykgfCAqKkdFVCoqIC9zY3JlZW5pbmcvdHJsaW5rL2N1c3RvbWVycy97Y3VzdG9tZXJJZH0vaW50ZWdyYXRpb25zIHwgR2V0IGN1c3RvbWVyIGludGVncmF0aW9ucwpbKipnZXRfdHJfbGlua19jdXN0b21lcnMqKl0oVFJMaW5rQXBpLm1kI2dldF90cl9saW5rX2N1c3RvbWVycykgfCAqKkdFVCoqIC9zY3JlZW5pbmcvdHJsaW5rL2N1c3RvbWVycyB8IEdldCBhbGwgY3VzdG9tZXJzClsqKmdldF90cl9saW5rX2ludGVncmF0aW9uX3B1YmxpY19rZXkqKl0oVFJMaW5rQXBpLm1kI2dldF90cl9saW5rX2ludGVncmF0aW9uX3B1YmxpY19rZXkpIHwgKipHRVQqKiAvc2NyZWVuaW5nL3RybGluay9jdXN0b21lcnMvaW50ZWdyYXRpb24ve2N1c3RvbWVySW50ZWdyYXRpb25JZH0vcHVibGljX2tleSB8IEdldCBwdWJsaWMga2V5IGZvciBQSUkgZW5jcnlwdGlvbgpbKipnZXRfdHJfbGlua19wYXJ0bmVycyoqXShUUkxpbmtBcGkubWQjZ2V0X3RyX2xpbmtfcGFydG5lcnMpIHwgKipHRVQqKiAvc2NyZWVuaW5nL3RybGluay9wYXJ0bmVycyB8IExpc3QgYXZhaWxhYmxlIFRSU3VwcG9ydCBwYXJ0bmVycwpbKipnZXRfdHJfbGlua19wb2xpY3kqKl0oVFJMaW5rQXBpLm1kI2dldF90cl9saW5rX3BvbGljeSkgfCAqKkdFVCoqIC9zY3JlZW5pbmcvdHJsaW5rL3BvbGljeSB8IEdldCBUUkxpbmsgcG9saWN5ClsqKmdldF90cl9saW5rX3N1cHBvcnRlZF9hc3NldCoqXShUUkxpbmtBcGkubWQjZ2V0X3RyX2xpbmtfc3VwcG9ydGVkX2Fzc2V0KSB8ICoqR0VUKiogL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL2ludGVncmF0aW9uL3tjdXN0b21lckludGVncmF0aW9uSWR9L2Fzc2V0cy97YXNzZXRJZH0gfCBHZXQgc3VwcG9ydGVkIGFzc2V0IGJ5IElEClsqKmdldF90cl9saW5rX3RybV9ieV9pZCoqXShUUkxpbmtBcGkubWQjZ2V0X3RyX2xpbmtfdHJtX2J5X2lkKSB8ICoqR0VUKiogL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL2ludGVncmF0aW9uL3tjdXN0b21lckludGVncmF0aW9uSWR9L3RybS97dHJtSWR9IHwgR2V0IFRSTSBieSBJRApbKipnZXRfdHJfbGlua192YXNwX2J5X2lkKipdKFRSTGlua0FwaS5tZCNnZXRfdHJfbGlua192YXNwX2J5X2lkKSB8ICoqR0VUKiogL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL2ludGVncmF0aW9uL3tjdXN0b21lckludGVncmF0aW9uSWR9L3Zhc3BzL3t2YXNwSWR9IHwgR2V0IFZBU1AgYnkgSUQKWyoqbGlzdF90cl9saW5rX3N1cHBvcnRlZF9hc3NldHMqKl0oVFJMaW5rQXBpLm1kI2xpc3RfdHJfbGlua19zdXBwb3J0ZWRfYXNzZXRzKSB8ICoqR0VUKiogL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL2ludGVncmF0aW9uL3tjdXN0b21lckludGVncmF0aW9uSWR9L2Fzc2V0cyB8IExpc3Qgc3VwcG9ydGVkIGFzc2V0cwpbKipsaXN0X3RyX2xpbmtfdmFzcHMqKl0oVFJMaW5rQXBpLm1kI2xpc3RfdHJfbGlua192YXNwcykgfCAqKkdFVCoqIC9zY3JlZW5pbmcvdHJsaW5rL2N1c3RvbWVycy9pbnRlZ3JhdGlvbi97Y3VzdG9tZXJJbnRlZ3JhdGlvbklkfS92YXNwcyB8IExpc3QgVkFTUHMKWyoqcmVkaXJlY3RfdHJfbGlua190cm0qKl0oVFJMaW5rQXBpLm1kI3JlZGlyZWN0X3RyX2xpbmtfdHJtKSB8ICoqUE9TVCoqIC9zY3JlZW5pbmcvdHJsaW5rL2N1c3RvbWVycy9pbnRlZ3JhdGlvbi97Y3VzdG9tZXJJbnRlZ3JhdGlvbklkfS90cm0ve3RybUlkfS9yZWRpcmVjdCB8IFJlZGlyZWN0IFRyYXZlbCBSdWxlIE1lc3NhZ2UKWyoqc2V0X3RyX2xpbmtfZGVzdGluYXRpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCoqXShUUkxpbmtBcGkubWQjc2V0X3RyX2xpbmtfZGVzdGluYXRpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCkgfCAqKlBPU1QqKiAvc2NyZWVuaW5nL3RybGluay90cmFuc2FjdGlvbi97dHhJZH0vZGVzdGluYXRpb24vdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCB8IFNldCBkZXN0aW5hdGlvbiB0cmF2ZWwgcnVsZSBtZXNzYWdlIElEClsqKnNldF90cl9saW5rX3RyYW5zYWN0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWQqKl0oVFJMaW5rQXBpLm1kI3NldF90cl9saW5rX3RyYW5zYWN0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWQpIHwgKipQT1NUKiogL3NjcmVlbmluZy90cmxpbmsvdHJhbnNhY3Rpb24ve3R4SWR9L3RyYXZlbF9ydWxlX21lc3NhZ2VfaWQgfCBTZXQgdHJhbnNhY3Rpb24gdHJhdmVsIHJ1bGUgbWVzc2FnZSBJRApbKip0ZXN0X3RyX2xpbmtfaW50ZWdyYXRpb25fY29ubmVjdGlvbioqXShUUkxpbmtBcGkubWQjdGVzdF90cl9saW5rX2ludGVncmF0aW9uX2Nvbm5lY3Rpb24pIHwgKipQT1NUKiogL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL2ludGVncmF0aW9uL3tjdXN0b21lckludGVncmF0aW9uSWR9L3Rlc3RfY29ubmVjdGlvbiB8IFRlc3QgY29ubmVjdGlvbgpbKip1cGRhdGVfdHJfbGlua19jdXN0b21lcioqXShUUkxpbmtBcGkubWQjdXBkYXRlX3RyX2xpbmtfY3VzdG9tZXIpIHwgKipQVVQqKiAvc2NyZWVuaW5nL3RybGluay9jdXN0b21lcnMve2N1c3RvbWVySWR9IHwgVXBkYXRlIGN1c3RvbWVyCgoKIyAqKmFzc2Vzc190cl9saW5rX3RyYXZlbF9ydWxlX3JlcXVpcmVtZW50KioKPiBUUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVzcG9uc2UgYXNzZXNzX3RyX2xpbmtfdHJhdmVsX3J1bGVfcmVxdWlyZW1lbnQoY3VzdG9tZXJfaW50ZWdyYXRpb25faWQsIHRyX2xpbmtfYXNzZXNzX3RyYXZlbF9ydWxlX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpBc3Nlc3MgVHJhdmVsIFJ1bGUgcmVxdWlyZW1lbnQKCkFzc2Vzc2VzIHRyYXZlbCBydWxlIHJlcXVpcmVtZW50IGZvciBhIHRyYW5zYWN0aW9uIGJ5IHZhbGlkYXRpbmcgc3RvcmVkIGNyZWRlbnRpYWxzIGFuZCBkZXRlcm1pbmluZyB3aGV0aGVyIFRyYXZlbCBSdWxlIGNvbXBsaWFuY2UgaXMgcmVxdWlyZWQgYmFzZWQgb24gYW1vdW50LCBqdXJpc2RpY3Rpb24sIGFuZCBwYXJ0bmVyIHRocmVzaG9sZHMuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXNzZXNzX3RyYXZlbF9ydWxlX3JlcXVlc3QgaW1wb3J0IFRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hc3Nlc3NfdHJhdmVsX3J1bGVfcmVzcG9uc2UgaW1wb3J0IFRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCA9ICdjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZF9leGFtcGxlJyAjIHN0ciB8IEN1c3RvbWVyIGludGVncmF0aW9uIHVuaXF1ZSBpZGVudGlmaWVyCiAgICB0cl9saW5rX2Fzc2Vzc190cmF2ZWxfcnVsZV9yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5UUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVxdWVzdCgpICMgVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBBc3Nlc3MgVHJhdmVsIFJ1bGUgcmVxdWlyZW1lbnQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRyX2xpbmsuYXNzZXNzX3RyX2xpbmtfdHJhdmVsX3J1bGVfcmVxdWlyZW1lbnQoY3VzdG9tZXJfaW50ZWdyYXRpb25faWQsIHRyX2xpbmtfYXNzZXNzX3RyYXZlbF9ydWxlX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUUkxpbmtBcGktPmFzc2Vzc190cl9saW5rX3RyYXZlbF9ydWxlX3JlcXVpcmVtZW50OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRSTGlua0FwaS0+YXNzZXNzX3RyX2xpbmtfdHJhdmVsX3J1bGVfcmVxdWlyZW1lbnQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmN1c3RvbWVyX2ludGVncmF0aW9uX2lkKiogfCAqKnN0cioqfCBDdXN0b21lciBpbnRlZ3JhdGlvbiB1bmlxdWUgaWRlbnRpZmllciB8IAogKip0cl9saW5rX2Fzc2Vzc190cmF2ZWxfcnVsZV9yZXF1ZXN0KiogfCBbKipUUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVxdWVzdCoqXShUUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVxdWVzdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipUUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVzcG9uc2UqKl0oVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBUcmF2ZWwgcnVsZSBhc3Nlc3NtZW50IGNvbXBsZXRlZCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqY2FuY2VsX3RyX2xpbmtfdHJtKioKPiBUUkxpbmtUcm1JbmZvUmVzcG9uc2UgY2FuY2VsX3RyX2xpbmtfdHJtKGN1c3RvbWVyX2ludGVncmF0aW9uX2lkLCB0cm1faWQsIHRyX2xpbmtfY2FuY2VsX3RybV9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKQ2FuY2VsIFRyYXZlbCBSdWxlIE1lc3NhZ2UKCkNhbmNlbHMgYSB0cmF2ZWwgcnVsZSBtZXNzYWdlLiBUaGUgVFJNIHN0YXR1cyB3aWxsIGJlIHVwZGF0ZWQgdG8gY2FuY2VsbGVkIGFuZCB0aGUgcGFydG5lciB3aWxsIGJlIG5vdGlmaWVkLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2NhbmNlbF90cm1fcmVxdWVzdCBpbXBvcnQgVFJMaW5rQ2FuY2VsVHJtUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdHJtX2luZm9fcmVzcG9uc2UgaW1wb3J0IFRSTGlua1RybUluZm9SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCA9ICdjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZF9leGFtcGxlJyAjIHN0ciB8IEN1c3RvbWVyIGludGVncmF0aW9uIHVuaXF1ZSBpZGVudGlmaWVyCiAgICB0cm1faWQgPSAndHJtX2lkX2V4YW1wbGUnICMgc3RyIHwgVHJhdmVsIFJ1bGUgTWVzc2FnZSB1bmlxdWUgaWRlbnRpZmllcgogICAgdHJfbGlua19jYW5jZWxfdHJtX3JlcXVlc3QgPSBmaXJlYmxvY2tzLlRSTGlua0NhbmNlbFRybVJlcXVlc3QoKSAjIFRSTGlua0NhbmNlbFRybVJlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBDYW5jZWwgVHJhdmVsIFJ1bGUgTWVzc2FnZQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudHJfbGluay5jYW5jZWxfdHJfbGlua190cm0oY3VzdG9tZXJfaW50ZWdyYXRpb25faWQsIHRybV9pZCwgdHJfbGlua19jYW5jZWxfdHJtX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUUkxpbmtBcGktPmNhbmNlbF90cl9saW5rX3RybTpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUUkxpbmtBcGktPmNhbmNlbF90cl9saW5rX3RybTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqY3VzdG9tZXJfaW50ZWdyYXRpb25faWQqKiB8ICoqc3RyKip8IEN1c3RvbWVyIGludGVncmF0aW9uIHVuaXF1ZSBpZGVudGlmaWVyIHwgCiAqKnRybV9pZCoqIHwgKipzdHIqKnwgVHJhdmVsIFJ1bGUgTWVzc2FnZSB1bmlxdWUgaWRlbnRpZmllciB8IAogKip0cl9saW5rX2NhbmNlbF90cm1fcmVxdWVzdCoqIHwgWyoqVFJMaW5rQ2FuY2VsVHJtUmVxdWVzdCoqXShUUkxpbmtDYW5jZWxUcm1SZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlRSTGlua1RybUluZm9SZXNwb25zZSoqXShUUkxpbmtUcm1JbmZvUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDIqKiB8IFRyYW5zYWN0aW9uIGNhbmNlbGxhdGlvbiByZXF1ZXN0IGFjY2VwdGVkIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipjb25uZWN0X3RyX2xpbmtfaW50ZWdyYXRpb24qKgo+IFRSTGlua0N1c3RvbWVySW50ZWdyYXRpb25SZXNwb25zZSBjb25uZWN0X3RyX2xpbmtfaW50ZWdyYXRpb24oY3VzdG9tZXJfaW50ZWdyYXRpb25faWQsIHRyX2xpbmtfY29ubmVjdF9pbnRlZ3JhdGlvbl9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKQ29ubmVjdCBjdXN0b21lciBpbnRlZ3JhdGlvbgoKQ29ubmVjdHMgYSBjdXN0b21lciBpbnRlZ3JhdGlvbiBieSBwcm92aWRpbmcgQVBJIGNyZWRlbnRpYWxzLiBTdG9yZXMgZW5jcnlwdGVkIGNyZWRlbnRpYWxzIGFuZCBlbmFibGVzIHRoZSBpbnRlZ3JhdGlvbiBmb3IgdXNlLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Nvbm5lY3RfaW50ZWdyYXRpb25fcmVxdWVzdCBpbXBvcnQgVFJMaW5rQ29ubmVjdEludGVncmF0aW9uUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY3VzdG9tZXJfaW50ZWdyYXRpb25fcmVzcG9uc2UgaW1wb3J0IFRSTGlua0N1c3RvbWVySW50ZWdyYXRpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCA9ICcxMjNlNDU2Ny1lODliLTEyZDMtYTQ1Ni00MjY2MTQxNzQwMDAnICMgc3RyIHwgQ3VzdG9tZXIgaW50ZWdyYXRpb24gdW5pcXVlIGlkZW50aWZpZXIKICAgIHRyX2xpbmtfY29ubmVjdF9pbnRlZ3JhdGlvbl9yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5UUkxpbmtDb25uZWN0SW50ZWdyYXRpb25SZXF1ZXN0KCkgIyBUUkxpbmtDb25uZWN0SW50ZWdyYXRpb25SZXF1ZXN0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ29ubmVjdCBjdXN0b21lciBpbnRlZ3JhdGlvbgogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudHJfbGluay5jb25uZWN0X3RyX2xpbmtfaW50ZWdyYXRpb24oY3VzdG9tZXJfaW50ZWdyYXRpb25faWQsIHRyX2xpbmtfY29ubmVjdF9pbnRlZ3JhdGlvbl9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVFJMaW5rQXBpLT5jb25uZWN0X3RyX2xpbmtfaW50ZWdyYXRpb246XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVFJMaW5rQXBpLT5jb25uZWN0X3RyX2xpbmtfaW50ZWdyYXRpb246ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmN1c3RvbWVyX2ludGVncmF0aW9uX2lkKiogfCAqKnN0cioqfCBDdXN0b21lciBpbnRlZ3JhdGlvbiB1bmlxdWUgaWRlbnRpZmllciB8IAogKip0cl9saW5rX2Nvbm5lY3RfaW50ZWdyYXRpb25fcmVxdWVzdCoqIHwgWyoqVFJMaW5rQ29ubmVjdEludGVncmF0aW9uUmVxdWVzdCoqXShUUkxpbmtDb25uZWN0SW50ZWdyYXRpb25SZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlRSTGlua0N1c3RvbWVySW50ZWdyYXRpb25SZXNwb25zZSoqXShUUkxpbmtDdXN0b21lckludGVncmF0aW9uUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEN1c3RvbWVyIGludGVncmF0aW9uIGNvbm5lY3RlZCBzdWNjZXNzZnVsbHkgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmNyZWF0ZV90cl9saW5rX2N1c3RvbWVyKioKPiBUUkxpbmtDdXN0b21lclJlc3BvbnNlIGNyZWF0ZV90cl9saW5rX2N1c3RvbWVyKHRyX2xpbmtfY3JlYXRlX2N1c3RvbWVyX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpDcmVhdGUgY3VzdG9tZXIKCkNyZWF0ZXMgYSBuZXcgY3VzdG9tZXIgKGxlZ2FsIGVudGl0eS9WQVNQKSBmb3IgVFJTdXBwb3J0IFRyYXZlbCBSdWxlIGNvbXBsaWFuY2Ugb3BlcmF0aW9ucy4gVGhlIGN1c3RvbWVyIHJlcHJlc2VudHMgeW91ciBvcmdhbml6YXRpb24gaW4gdGhlIFRyYXZlbCBSdWxlIG5ldHdvcmsgYW5kIGNvbnRhaW5zIElWTVMxMDEtY29tcGxpYW50IGlkZW50aXR5IGluZm9ybWF0aW9uLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2NyZWF0ZV9jdXN0b21lcl9yZXF1ZXN0IGltcG9ydCBUUkxpbmtDcmVhdGVDdXN0b21lclJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2N1c3RvbWVyX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtDdXN0b21lclJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHRyX2xpbmtfY3JlYXRlX2N1c3RvbWVyX3JlcXVlc3QgPSBmaXJlYmxvY2tzLlRSTGlua0NyZWF0ZUN1c3RvbWVyUmVxdWVzdCgpICMgVFJMaW5rQ3JlYXRlQ3VzdG9tZXJSZXF1ZXN0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ3JlYXRlIGN1c3RvbWVyCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50cl9saW5rLmNyZWF0ZV90cl9saW5rX2N1c3RvbWVyKHRyX2xpbmtfY3JlYXRlX2N1c3RvbWVyX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUUkxpbmtBcGktPmNyZWF0ZV90cl9saW5rX2N1c3RvbWVyOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRSTGlua0FwaS0+Y3JlYXRlX3RyX2xpbmtfY3VzdG9tZXI6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnRyX2xpbmtfY3JlYXRlX2N1c3RvbWVyX3JlcXVlc3QqKiB8IFsqKlRSTGlua0NyZWF0ZUN1c3RvbWVyUmVxdWVzdCoqXShUUkxpbmtDcmVhdGVDdXN0b21lclJlcXVlc3QubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqVFJMaW5rQ3VzdG9tZXJSZXNwb25zZSoqXShUUkxpbmtDdXN0b21lclJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBDdXN0b21lciBjcmVhdGVkIHN1Y2Nlc3NmdWxseSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqY3JlYXRlX3RyX2xpbmtfaW50ZWdyYXRpb24qKgo+IFRSTGlua0N1c3RvbWVySW50ZWdyYXRpb25SZXNwb25zZSBjcmVhdGVfdHJfbGlua19pbnRlZ3JhdGlvbih0cl9saW5rX2NyZWF0ZV9pbnRlZ3JhdGlvbl9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKQ3JlYXRlIGN1c3RvbWVyIGludGVncmF0aW9uCgpDcmVhdGVzIGEgbmV3IFRSU3VwcG9ydCBpbnRlZ3JhdGlvbiBmb3IgYSBjdXN0b21lci4gVGhpcyBlc3RhYmxpc2hlcyBhIGNvbm5lY3Rpb24gcGxhY2Vob2xkZXIgYmV0d2VlbiBhIGN1c3RvbWVyIGFuZCBhIFRyYXZlbCBSdWxlIHBhcnRuZXIuIFVzZSB0aGUgY29ubmVjdCBlbmRwb2ludCB0byBwcm92aWRlIGNyZWRlbnRpYWxzIGFmdGVyIGNyZWF0aW9uLiBZb3UgbWF5IG9wdGlvbmFsbHkgc3VwcGx5IGBjdXN0b21lckludGVncmF0aW9uSWRgIGluIHRoZSByZXF1ZXN0IGJvZHkgd2hlbiB5b3VyIHRlbmFudCBpcyBlbmFibGVkIGZvciBjbGllbnQtcHJvdmlkZWQgaW50ZWdyYXRpb24gaWRzLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2NyZWF0ZV9pbnRlZ3JhdGlvbl9yZXF1ZXN0IGltcG9ydCBUUkxpbmtDcmVhdGVJbnRlZ3JhdGlvblJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2N1c3RvbWVyX2ludGVncmF0aW9uX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtDdXN0b21lckludGVncmF0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdHJfbGlua19jcmVhdGVfaW50ZWdyYXRpb25fcmVxdWVzdCA9IGZpcmVibG9ja3MuVFJMaW5rQ3JlYXRlSW50ZWdyYXRpb25SZXF1ZXN0KCkgIyBUUkxpbmtDcmVhdGVJbnRlZ3JhdGlvblJlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBDcmVhdGUgY3VzdG9tZXIgaW50ZWdyYXRpb24KICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRyX2xpbmsuY3JlYXRlX3RyX2xpbmtfaW50ZWdyYXRpb24odHJfbGlua19jcmVhdGVfaW50ZWdyYXRpb25fcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRSTGlua0FwaS0+Y3JlYXRlX3RyX2xpbmtfaW50ZWdyYXRpb246XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVFJMaW5rQXBpLT5jcmVhdGVfdHJfbGlua19pbnRlZ3JhdGlvbjogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqdHJfbGlua19jcmVhdGVfaW50ZWdyYXRpb25fcmVxdWVzdCoqIHwgWyoqVFJMaW5rQ3JlYXRlSW50ZWdyYXRpb25SZXF1ZXN0KipdKFRSTGlua0NyZWF0ZUludGVncmF0aW9uUmVxdWVzdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipUUkxpbmtDdXN0b21lckludGVncmF0aW9uUmVzcG9uc2UqKl0oVFJMaW5rQ3VzdG9tZXJJbnRlZ3JhdGlvblJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBDdXN0b21lciBpbnRlZ3JhdGlvbiBjcmVhdGVkIHN1Y2Nlc3NmdWxseSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqY3JlYXRlX3RyX2xpbmtfdHJtKioKPiBUUkxpbmtUcm1JbmZvUmVzcG9uc2UgY3JlYXRlX3RyX2xpbmtfdHJtKGN1c3RvbWVyX2ludGVncmF0aW9uX2lkLCB0cl9saW5rX2NyZWF0ZV90cm1fcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCkNyZWF0ZSBUcmF2ZWwgUnVsZSBNZXNzYWdlCgpDcmVhdGVzIGEgbmV3IHRyYXZlbCBydWxlIG1lc3NhZ2Ugd2l0aCBJVk1TMTAxLWNvbXBsaWFudCBQSUkgZGF0YS4gRW5jcnlwdHMgc2Vuc2l0aXZlIG9yaWdpbmF0b3IgYW5kIGJlbmVmaWNpYXJ5IGluZm9ybWF0aW9uIGJlZm9yZSBzZW5kaW5nIHRvIHBhcnRuZXIuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY3JlYXRlX3RybV9yZXF1ZXN0IGltcG9ydCBUUkxpbmtDcmVhdGVUcm1SZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua190cm1faW5mb19yZXNwb25zZSBpbXBvcnQgVFJMaW5rVHJtSW5mb1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkID0gJ2N1c3RvbWVyX2ludGVncmF0aW9uX2lkX2V4YW1wbGUnICMgc3RyIHwgQ3VzdG9tZXIgaW50ZWdyYXRpb24gdW5pcXVlIGlkZW50aWZpZXIKICAgIHRyX2xpbmtfY3JlYXRlX3RybV9yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5UUkxpbmtDcmVhdGVUcm1SZXF1ZXN0KCkgIyBUUkxpbmtDcmVhdGVUcm1SZXF1ZXN0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ3JlYXRlIFRyYXZlbCBSdWxlIE1lc3NhZ2UKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRyX2xpbmsuY3JlYXRlX3RyX2xpbmtfdHJtKGN1c3RvbWVyX2ludGVncmF0aW9uX2lkLCB0cl9saW5rX2NyZWF0ZV90cm1fcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRSTGlua0FwaS0+Y3JlYXRlX3RyX2xpbmtfdHJtOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRSTGlua0FwaS0+Y3JlYXRlX3RyX2xpbmtfdHJtOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCoqIHwgKipzdHIqKnwgQ3VzdG9tZXIgaW50ZWdyYXRpb24gdW5pcXVlIGlkZW50aWZpZXIgfCAKICoqdHJfbGlua19jcmVhdGVfdHJtX3JlcXVlc3QqKiB8IFsqKlRSTGlua0NyZWF0ZVRybVJlcXVlc3QqKl0oVFJMaW5rQ3JlYXRlVHJtUmVxdWVzdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipUUkxpbmtUcm1JbmZvUmVzcG9uc2UqKl0oVFJMaW5rVHJtSW5mb1Jlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBUUk0gY3JlYXRlZCBzdWNjZXNzZnVsbHkgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmRlbGV0ZV90cl9saW5rX2N1c3RvbWVyKioKPiBkZWxldGVfdHJfbGlua19jdXN0b21lcihjdXN0b21lcl9pZCkKCkRlbGV0ZSBjdXN0b21lcgoKRGVsZXRlcyBhIGN1c3RvbWVyIGFuZCBhbGwgYXNzb2NpYXRlZCBpbnRlZ3JhdGlvbnMuIFRoaXMgYWN0aW9uIGNhbm5vdCBiZSB1bmRvbmUuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY3VzdG9tZXJfaWQgPSAnNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAxJyAjIHN0ciB8IEN1c3RvbWVyIHVuaXF1ZSBpZGVudGlmaWVyCgogICAgdHJ5OgogICAgICAgICMgRGVsZXRlIGN1c3RvbWVyCiAgICAgICAgZmlyZWJsb2Nrcy50cl9saW5rLmRlbGV0ZV90cl9saW5rX2N1c3RvbWVyKGN1c3RvbWVyX2lkKS5yZXN1bHQoKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRSTGlua0FwaS0+ZGVsZXRlX3RyX2xpbmtfY3VzdG9tZXI6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmN1c3RvbWVyX2lkKiogfCAqKnN0cioqfCBDdXN0b21lciB1bmlxdWUgaWRlbnRpZmllciB8IAoKIyMjIFJldHVybiB0eXBlCgp2b2lkIChlbXB0eSByZXNwb25zZSBib2R5KQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwNCoqIHwgQ3VzdG9tZXIgZGVsZXRlZCBzdWNjZXNzZnVsbHkgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmRpc2Nvbm5lY3RfdHJfbGlua19pbnRlZ3JhdGlvbioqCj4gZGlzY29ubmVjdF90cl9saW5rX2ludGVncmF0aW9uKGN1c3RvbWVyX2ludGVncmF0aW9uX2lkKQoKRGlzY29ubmVjdCBjdXN0b21lciBpbnRlZ3JhdGlvbgoKRGlzY29ubmVjdHMgdGhlIGludGVncmF0aW9uIGZvciB0aGUgYXV0aGVudGljYXRlZCB3b3Jrc3BhY2UgKHRlbmFudCk6IHJlbW92ZXMgc3RvcmVkIGNyZWRlbnRpYWxzIGFuZCBkZWxldGVzIHRoaXMgdGVuYW50J3MgaW50ZWdyYXRpb24gcmVjb3JkLiBUaGUgb3BlcmF0aW9uIGlzIHNjb3BlZCB0byB0aGUgY2FsbGVyJ3MgdGVuYW50OyBpdCBkb2VzIG5vdCByZW1vdmUgcGFydG5lci1zaWRlIHN0YXRlIGZvciBvdGhlciB3b3Jrc3BhY2VzIHRoYXQgcmV1c2UgdGhlIHNhbWUgbG9naWNhbCBjdXN0b21lciBpbnRlZ3JhdGlvbi4gVGhlIHJlY29yZCBjYW5ub3QgYmUgcmVjb3ZlcmVkIGFmdGVyIGRlbGV0ZS4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCA9ICcxMjNlNDU2Ny1lODliLTEyZDMtYTQ1Ni00MjY2MTQxNzQwMDAnICMgc3RyIHwgQ3VzdG9tZXIgaW50ZWdyYXRpb24gdW5pcXVlIGlkZW50aWZpZXIKCiAgICB0cnk6CiAgICAgICAgIyBEaXNjb25uZWN0IGN1c3RvbWVyIGludGVncmF0aW9uCiAgICAgICAgZmlyZWJsb2Nrcy50cl9saW5rLmRpc2Nvbm5lY3RfdHJfbGlua19pbnRlZ3JhdGlvbihjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCkucmVzdWx0KCkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUUkxpbmtBcGktPmRpc2Nvbm5lY3RfdHJfbGlua19pbnRlZ3JhdGlvbjogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqY3VzdG9tZXJfaW50ZWdyYXRpb25faWQqKiB8ICoqc3RyKip8IEN1c3RvbWVyIGludGVncmF0aW9uIHVuaXF1ZSBpZGVudGlmaWVyIHwgCgojIyMgUmV0dXJuIHR5cGUKCnZvaWQgKGVtcHR5IHJlc3BvbnNlIGJvZHkpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjA0KiogfCBDdXN0b21lciBpbnRlZ3JhdGlvbiBkaXNjb25uZWN0ZWQgc3VjY2Vzc2Z1bGx5IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfdHJfbGlua19jdXN0b21lcl9ieV9pZCoqCj4gVFJMaW5rQ3VzdG9tZXJSZXNwb25zZSBnZXRfdHJfbGlua19jdXN0b21lcl9ieV9pZChjdXN0b21lcl9pZCkKCkdldCBjdXN0b21lciBieSBJRAoKUmV0cmlldmVzIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgY3VzdG9tZXIgYnkgdGhlaXIgdW5pcXVlIGlkZW50aWZpZXIuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY3VzdG9tZXJfcmVzcG9uc2UgaW1wb3J0IFRSTGlua0N1c3RvbWVyUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY3VzdG9tZXJfaWQgPSAnNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAxJyAjIHN0ciB8IEN1c3RvbWVyIHVuaXF1ZSBpZGVudGlmaWVyCgogICAgdHJ5OgogICAgICAgICMgR2V0IGN1c3RvbWVyIGJ5IElECiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50cl9saW5rLmdldF90cl9saW5rX2N1c3RvbWVyX2J5X2lkKGN1c3RvbWVyX2lkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVFJMaW5rQXBpLT5nZXRfdHJfbGlua19jdXN0b21lcl9ieV9pZDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUUkxpbmtBcGktPmdldF90cl9saW5rX2N1c3RvbWVyX2J5X2lkOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjdXN0b21lcl9pZCoqIHwgKipzdHIqKnwgQ3VzdG9tZXIgdW5pcXVlIGlkZW50aWZpZXIgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqVFJMaW5rQ3VzdG9tZXJSZXNwb25zZSoqXShUUkxpbmtDdXN0b21lclJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQ3VzdG9tZXIgcmV0cmlldmVkIHN1Y2Nlc3NmdWxseSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X3RyX2xpbmtfY3VzdG9tZXJfaW50ZWdyYXRpb25fYnlfaWQqKgo+IFRSTGlua0N1c3RvbWVySW50ZWdyYXRpb25SZXNwb25zZSBnZXRfdHJfbGlua19jdXN0b21lcl9pbnRlZ3JhdGlvbl9ieV9pZChjdXN0b21lcl9pZCwgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQpCgpHZXQgY3VzdG9tZXIgaW50ZWdyYXRpb24gYnkgSUQKClJldHJpZXZlcyBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGN1c3RvbWVyIGludGVncmF0aW9uLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2N1c3RvbWVyX2ludGVncmF0aW9uX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtDdXN0b21lckludGVncmF0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY3VzdG9tZXJfaWQgPSAnNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAxJyAjIHN0ciB8IEN1c3RvbWVyIHVuaXF1ZSBpZGVudGlmaWVyCiAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCA9ICcxMjNlNDU2Ny1lODliLTEyZDMtYTQ1Ni00MjY2MTQxNzQwMDAnICMgc3RyIHwgQ3VzdG9tZXIgaW50ZWdyYXRpb24gdW5pcXVlIGlkZW50aWZpZXIKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgY3VzdG9tZXIgaW50ZWdyYXRpb24gYnkgSUQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRyX2xpbmsuZ2V0X3RyX2xpbmtfY3VzdG9tZXJfaW50ZWdyYXRpb25fYnlfaWQoY3VzdG9tZXJfaWQsIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVFJMaW5rQXBpLT5nZXRfdHJfbGlua19jdXN0b21lcl9pbnRlZ3JhdGlvbl9ieV9pZDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUUkxpbmtBcGktPmdldF90cl9saW5rX2N1c3RvbWVyX2ludGVncmF0aW9uX2J5X2lkOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjdXN0b21lcl9pZCoqIHwgKipzdHIqKnwgQ3VzdG9tZXIgdW5pcXVlIGlkZW50aWZpZXIgfCAKICoqY3VzdG9tZXJfaW50ZWdyYXRpb25faWQqKiB8ICoqc3RyKip8IEN1c3RvbWVyIGludGVncmF0aW9uIHVuaXF1ZSBpZGVudGlmaWVyIHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKlRSTGlua0N1c3RvbWVySW50ZWdyYXRpb25SZXNwb25zZSoqXShUUkxpbmtDdXN0b21lckludGVncmF0aW9uUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBDdXN0b21lciBpbnRlZ3JhdGlvbiByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfdHJfbGlua19jdXN0b21lcl9pbnRlZ3JhdGlvbnMqKgo+IExpc3RbVFJMaW5rQ3VzdG9tZXJJbnRlZ3JhdGlvblJlc3BvbnNlXSBnZXRfdHJfbGlua19jdXN0b21lcl9pbnRlZ3JhdGlvbnMoY3VzdG9tZXJfaWQpCgpHZXQgY3VzdG9tZXIgaW50ZWdyYXRpb25zCgpSZXRyaWV2ZXMgYWxsIFRSU3VwcG9ydCBpbnRlZ3JhdGlvbnMgZm9yIGEgc3BlY2lmaWMgY3VzdG9tZXIuIFJldHVybnMgYSBsaXN0IG9mIHBhcnRuZXIgaW50ZWdyYXRpb25zIGNvbmZpZ3VyZWQgZm9yIFRyYXZlbCBSdWxlIGNvbXBsaWFuY2UuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY3VzdG9tZXJfaW50ZWdyYXRpb25fcmVzcG9uc2UgaW1wb3J0IFRSTGlua0N1c3RvbWVySW50ZWdyYXRpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjdXN0b21lcl9pZCA9ICc1NTBlODQwMC1lMjliLTQxZDQtYTcxNi00NDY2NTU0NDAwMDEnICMgc3RyIHwgQ3VzdG9tZXIgdW5pcXVlIGlkZW50aWZpZXIKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgY3VzdG9tZXIgaW50ZWdyYXRpb25zCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50cl9saW5rLmdldF90cl9saW5rX2N1c3RvbWVyX2ludGVncmF0aW9ucyhjdXN0b21lcl9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRSTGlua0FwaS0+Z2V0X3RyX2xpbmtfY3VzdG9tZXJfaW50ZWdyYXRpb25zOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRSTGlua0FwaS0+Z2V0X3RyX2xpbmtfY3VzdG9tZXJfaW50ZWdyYXRpb25zOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjdXN0b21lcl9pZCoqIHwgKipzdHIqKnwgQ3VzdG9tZXIgdW5pcXVlIGlkZW50aWZpZXIgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqTGlzdFtUUkxpbmtDdXN0b21lckludGVncmF0aW9uUmVzcG9uc2VdKipdKFRSTGlua0N1c3RvbWVySW50ZWdyYXRpb25SZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEN1c3RvbWVyIGludGVncmF0aW9ucyByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfdHJfbGlua19jdXN0b21lcnMqKgo+IExpc3RbVFJMaW5rQ3VzdG9tZXJSZXNwb25zZV0gZ2V0X3RyX2xpbmtfY3VzdG9tZXJzKCkKCkdldCBhbGwgY3VzdG9tZXJzCgpSZXRyaWV2ZXMgYWxsIGN1c3RvbWVycyBhc3NvY2lhdGVkIHdpdGggdGhlIGF1dGhlbnRpY2F0ZWQgdGVuYW50LiBSZXR1cm5zIGEgbGlzdCBvZiBsZWdhbCBlbnRpdGllcyBjb25maWd1cmVkIGZvciBUcmF2ZWwgUnVsZSBjb21wbGlhbmNlLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2N1c3RvbWVyX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtDdXN0b21lclJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgYWxsIGN1c3RvbWVycwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudHJfbGluay5nZXRfdHJfbGlua19jdXN0b21lcnMoKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVFJMaW5rQXBpLT5nZXRfdHJfbGlua19jdXN0b21lcnM6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVFJMaW5rQXBpLT5nZXRfdHJfbGlua19jdXN0b21lcnM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgpUaGlzIGVuZHBvaW50IGRvZXMgbm90IG5lZWQgYW55IHBhcmFtZXRlci4KCiMjIyBSZXR1cm4gdHlwZQoKWyoqTGlzdFtUUkxpbmtDdXN0b21lclJlc3BvbnNlXSoqXShUUkxpbmtDdXN0b21lclJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQ3VzdG9tZXJzIHJldHJpZXZlZCBzdWNjZXNzZnVsbHkgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF90cl9saW5rX2ludGVncmF0aW9uX3B1YmxpY19rZXkqKgo+IFRSTGlua1B1YmxpY0tleVJlc3BvbnNlIGdldF90cl9saW5rX2ludGVncmF0aW9uX3B1YmxpY19rZXkoY3VzdG9tZXJfaW50ZWdyYXRpb25faWQpCgpHZXQgcHVibGljIGtleSBmb3IgUElJIGVuY3J5cHRpb24KClJldHJpZXZlcyB0aGUgcGFydG5lcidzIHB1YmxpYyBrZXkgaW4gSldLIGZvcm1hdCBmb3IgZW5jcnlwdGluZyBQSUkgZGF0YSBpbiBUcmF2ZWwgUnVsZSBNZXNzYWdlcy4gVXNlIHRoaXMga2V5IHRvIGVuY3J5cHQgc2Vuc2l0aXZlIG9yaWdpbmF0b3IgYW5kIGJlbmVmaWNpYXJ5IGluZm9ybWF0aW9uIGJlZm9yZSBzZW5kaW5nIFRyYXZlbCBSdWxlIG1lc3NhZ2VzLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3B1YmxpY19rZXlfcmVzcG9uc2UgaW1wb3J0IFRSTGlua1B1YmxpY0tleVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkID0gJzEyM2U0NTY3LWU4OWItMTJkMy1hNDU2LTQyNjYxNDE3NDAwMCcgIyBzdHIgfCBDdXN0b21lciBpbnRlZ3JhdGlvbiB1bmlxdWUgaWRlbnRpZmllcgoKICAgIHRyeToKICAgICAgICAjIEdldCBwdWJsaWMga2V5IGZvciBQSUkgZW5jcnlwdGlvbgogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudHJfbGluay5nZXRfdHJfbGlua19pbnRlZ3JhdGlvbl9wdWJsaWNfa2V5KGN1c3RvbWVyX2ludGVncmF0aW9uX2lkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVFJMaW5rQXBpLT5nZXRfdHJfbGlua19pbnRlZ3JhdGlvbl9wdWJsaWNfa2V5OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRSTGlua0FwaS0+Z2V0X3RyX2xpbmtfaW50ZWdyYXRpb25fcHVibGljX2tleTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqY3VzdG9tZXJfaW50ZWdyYXRpb25faWQqKiB8ICoqc3RyKip8IEN1c3RvbWVyIGludGVncmF0aW9uIHVuaXF1ZSBpZGVudGlmaWVyIHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKlRSTGlua1B1YmxpY0tleVJlc3BvbnNlKipdKFRSTGlua1B1YmxpY0tleVJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgUHVibGljIGtleSByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfdHJfbGlua19wYXJ0bmVycyoqCj4gTGlzdFtUUkxpbmtQYXJ0bmVyUmVzcG9uc2VdIGdldF90cl9saW5rX3BhcnRuZXJzKCkKCkxpc3QgYXZhaWxhYmxlIFRSU3VwcG9ydCBwYXJ0bmVycwoKUmV0cmlldmVzIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIFRyYXZlbCBSdWxlIFN1cHBvcnQgaW50ZWdyYXRpb24gcGFydG5lcnMuIFBhcnRuZXJzIHByb3ZpZGUgVHJhdmVsIFJ1bGUgY29tcGxpYW5jZSBzZXJ2aWNlcyBzdWNoIGFzIFZBU1AgZGlzY292ZXJ5LCBUUk0gZXhjaGFuZ2UsIGFuZCBQSUkgZW5jcnlwdGlvbi4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wYXJ0bmVyX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtQYXJ0bmVyUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgoKICAgIHRyeToKICAgICAgICAjIExpc3QgYXZhaWxhYmxlIFRSU3VwcG9ydCBwYXJ0bmVycwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudHJfbGluay5nZXRfdHJfbGlua19wYXJ0bmVycygpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUUkxpbmtBcGktPmdldF90cl9saW5rX3BhcnRuZXJzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRSTGlua0FwaS0+Z2V0X3RyX2xpbmtfcGFydG5lcnM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgpUaGlzIGVuZHBvaW50IGRvZXMgbm90IG5lZWQgYW55IHBhcmFtZXRlci4KCiMjIyBSZXR1cm4gdHlwZQoKWyoqTGlzdFtUUkxpbmtQYXJ0bmVyUmVzcG9uc2VdKipdKFRSTGlua1BhcnRuZXJSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IExpc3Qgb2YgcGFydG5lcnMgcmV0cmlldmVkIHN1Y2Nlc3NmdWxseSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X3RyX2xpbmtfcG9saWN5KioKPiBUUkxpbmtQb2xpY3lSZXNwb25zZSBnZXRfdHJfbGlua19wb2xpY3koKQoKR2V0IFRSTGluayBwb2xpY3kKClJldHJpZXZlcyB0aGUgY29tcGxldGUgVFJTdXBwb3J0IHBvbGljeSBmb3IgdGhlIGF1dGhlbnRpY2F0ZWQgdGVuYW50LCBpbmNsdWRpbmcgcHJlLXNjcmVlbmluZyBydWxlcywgcG9zdC1zY3JlZW5pbmcgcnVsZXMsIGFuZCBtaXNzaW5nIFRSTSBydWxlcy4gUHJlLXNjcmVlbmluZyBydWxlcyBkZXRlcm1pbmUgd2hldGhlciB0cmFuc2FjdGlvbnMgc2hvdWxkIGJlIHNjcmVlbmVkLiBQb3N0LXNjcmVlbmluZyBydWxlcyBkZXRlcm1pbmUgYWN0aW9ucyBiYXNlZCBvbiBzY3JlZW5pbmcgcmVzdWx0cy4gTWlzc2luZyBUUk0gcnVsZXMgaGFuZGxlIGNhc2VzIHdoZW4gc2NyZWVuaW5nIGRhdGEgaXMgdW5hdmFpbGFibGUuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcG9saWN5X3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtQb2xpY3lSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CgogICAgdHJ5OgogICAgICAgICMgR2V0IFRSTGluayBwb2xpY3kKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRyX2xpbmsuZ2V0X3RyX2xpbmtfcG9saWN5KCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRSTGlua0FwaS0+Z2V0X3RyX2xpbmtfcG9saWN5OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRSTGlua0FwaS0+Z2V0X3RyX2xpbmtfcG9saWN5OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKVGhpcyBlbmRwb2ludCBkb2VzIG5vdCBuZWVkIGFueSBwYXJhbWV0ZXIuCgojIyMgUmV0dXJuIHR5cGUKClsqKlRSTGlua1BvbGljeVJlc3BvbnNlKipdKFRSTGlua1BvbGljeVJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgUG9saWN5IHJldHJpZXZlZCBzdWNjZXNzZnVsbHkgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF90cl9saW5rX3N1cHBvcnRlZF9hc3NldCoqCj4gVFJMaW5rR2V0U3VwcG9ydGVkQXNzZXRSZXNwb25zZSBnZXRfdHJfbGlua19zdXBwb3J0ZWRfYXNzZXQoY3VzdG9tZXJfaW50ZWdyYXRpb25faWQsIGFzc2V0X2lkKQoKR2V0IHN1cHBvcnRlZCBhc3NldCBieSBJRAoKUmV0cmlldmVzIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgYXNzZXQgYnkgaXRzIEZpcmVibG9ja3MgYXNzZXQgSUQuIFJldHVybnMgdGhlIHRyYW5zZm9ybWVkIEZpcmVibG9ja3MgYXNzZXQgZGF0YSwgcmF3IHBhcnRuZXIgcmVzcG9uc2UsIGFuZCBzdXBwb3J0IHN0YXR1cy4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19nZXRfc3VwcG9ydGVkX2Fzc2V0X3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtHZXRTdXBwb3J0ZWRBc3NldFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkID0gJ2N1c3RvbWVyX2ludGVncmF0aW9uX2lkX2V4YW1wbGUnICMgc3RyIHwgQ3VzdG9tZXIgaW50ZWdyYXRpb24gdW5pcXVlIGlkZW50aWZpZXIKICAgIGFzc2V0X2lkID0gJ2Fzc2V0X2lkX2V4YW1wbGUnICMgc3RyIHwgRmlyZWJsb2NrcyBhc3NldCBJRAoKICAgIHRyeToKICAgICAgICAjIEdldCBzdXBwb3J0ZWQgYXNzZXQgYnkgSUQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRyX2xpbmsuZ2V0X3RyX2xpbmtfc3VwcG9ydGVkX2Fzc2V0KGN1c3RvbWVyX2ludGVncmF0aW9uX2lkLCBhc3NldF9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRSTGlua0FwaS0+Z2V0X3RyX2xpbmtfc3VwcG9ydGVkX2Fzc2V0OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRSTGlua0FwaS0+Z2V0X3RyX2xpbmtfc3VwcG9ydGVkX2Fzc2V0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCoqIHwgKipzdHIqKnwgQ3VzdG9tZXIgaW50ZWdyYXRpb24gdW5pcXVlIGlkZW50aWZpZXIgfCAKICoqYXNzZXRfaWQqKiB8ICoqc3RyKip8IEZpcmVibG9ja3MgYXNzZXQgSUQgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqVFJMaW5rR2V0U3VwcG9ydGVkQXNzZXRSZXNwb25zZSoqXShUUkxpbmtHZXRTdXBwb3J0ZWRBc3NldFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQXNzZXQgcmV0cmlldmVkIHN1Y2Nlc3NmdWxseSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X3RyX2xpbmtfdHJtX2J5X2lkKioKPiBUUkxpbmtUcm1JbmZvUmVzcG9uc2UgZ2V0X3RyX2xpbmtfdHJtX2J5X2lkKGN1c3RvbWVyX2ludGVncmF0aW9uX2lkLCB0cm1faWQpCgpHZXQgVFJNIGJ5IElECgpSZXRyaWV2ZXMgYSBUcmF2ZWwgUnVsZSBNZXNzYWdlIGJ5IGl0cyB1bmlxdWUgaWRlbnRpZmllciBmcm9tIHRoZSBwYXJ0bmVyIHByb3ZpZGVyLiBSZXR1cm5zIGZ1bGwgVFJNIGRldGFpbHMgaW5jbHVkaW5nIHN0YXR1cywgSVZNUzEwMSBkYXRhLCBhbmQgdHJhbnNhY3Rpb24gaW5mb3JtYXRpb24uCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdHJtX2luZm9fcmVzcG9uc2UgaW1wb3J0IFRSTGlua1RybUluZm9SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCA9ICdjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZF9leGFtcGxlJyAjIHN0ciB8IEN1c3RvbWVyIGludGVncmF0aW9uIHVuaXF1ZSBpZGVudGlmaWVyCiAgICB0cm1faWQgPSAndHJtX2lkX2V4YW1wbGUnICMgc3RyIHwgVHJhdmVsIFJ1bGUgTWVzc2FnZSB1bmlxdWUgaWRlbnRpZmllcgoKICAgIHRyeToKICAgICAgICAjIEdldCBUUk0gYnkgSUQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRyX2xpbmsuZ2V0X3RyX2xpbmtfdHJtX2J5X2lkKGN1c3RvbWVyX2ludGVncmF0aW9uX2lkLCB0cm1faWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUUkxpbmtBcGktPmdldF90cl9saW5rX3RybV9ieV9pZDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUUkxpbmtBcGktPmdldF90cl9saW5rX3RybV9ieV9pZDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqY3VzdG9tZXJfaW50ZWdyYXRpb25faWQqKiB8ICoqc3RyKip8IEN1c3RvbWVyIGludGVncmF0aW9uIHVuaXF1ZSBpZGVudGlmaWVyIHwgCiAqKnRybV9pZCoqIHwgKipzdHIqKnwgVHJhdmVsIFJ1bGUgTWVzc2FnZSB1bmlxdWUgaWRlbnRpZmllciB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipUUkxpbmtUcm1JbmZvUmVzcG9uc2UqKl0oVFJMaW5rVHJtSW5mb1Jlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgVFJNIHJldHJpZXZlZCBzdWNjZXNzZnVsbHkgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF90cl9saW5rX3Zhc3BfYnlfaWQqKgo+IFRSTGlua1Zhc3BEdG8gZ2V0X3RyX2xpbmtfdmFzcF9ieV9pZChjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCwgdmFzcF9pZCkKCkdldCBWQVNQIGJ5IElECgpSZXRyaWV2ZXMgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBWQVNQIGJ5IGl0cyB1bmlxdWUgaWRlbnRpZmllci4gUmV0dXJucyBWQVNQIGRldGFpbHMgaW5jbHVkaW5nIHB1YmxpYyBrZXkgaWYgYXZhaWxhYmxlLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3Zhc3BfZHRvIGltcG9ydCBUUkxpbmtWYXNwRHRvCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkID0gJ2N1c3RvbWVyX2ludGVncmF0aW9uX2lkX2V4YW1wbGUnICMgc3RyIHwgQ3VzdG9tZXIgaW50ZWdyYXRpb24gdW5pcXVlIGlkZW50aWZpZXIKICAgIHZhc3BfaWQgPSAndmFzcF9pZF9leGFtcGxlJyAjIHN0ciB8IFZBU1AgdW5pcXVlIGlkZW50aWZpZXIgKERJRCBmb3JtYXQpCgogICAgdHJ5OgogICAgICAgICMgR2V0IFZBU1AgYnkgSUQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRyX2xpbmsuZ2V0X3RyX2xpbmtfdmFzcF9ieV9pZChjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCwgdmFzcF9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRSTGlua0FwaS0+Z2V0X3RyX2xpbmtfdmFzcF9ieV9pZDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUUkxpbmtBcGktPmdldF90cl9saW5rX3Zhc3BfYnlfaWQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmN1c3RvbWVyX2ludGVncmF0aW9uX2lkKiogfCAqKnN0cioqfCBDdXN0b21lciBpbnRlZ3JhdGlvbiB1bmlxdWUgaWRlbnRpZmllciB8IAogKip2YXNwX2lkKiogfCAqKnN0cioqfCBWQVNQIHVuaXF1ZSBpZGVudGlmaWVyIChESUQgZm9ybWF0KSB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipUUkxpbmtWYXNwRHRvKipdKFRSTGlua1Zhc3BEdG8ubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBWQVNQIHJldHJpZXZlZCBzdWNjZXNzZnVsbHkgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmxpc3RfdHJfbGlua19zdXBwb3J0ZWRfYXNzZXRzKioKPiBUUkxpbmtBc3NldHNMaXN0UGFnZWRSZXNwb25zZSBsaXN0X3RyX2xpbmtfc3VwcG9ydGVkX2Fzc2V0cyhjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IpCgpMaXN0IHN1cHBvcnRlZCBhc3NldHMKClJldHJpZXZlcyBhIHBhZ2luYXRlZCBsaXN0IG9mIGFzc2V0cyBzdXBwb3J0ZWQgYnkgdGhlIHBhcnRuZXIgaW50ZWdyYXRpb24uIEluY2x1ZGVzIGEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHBhcnRuZXIgY2FuIGhhbmRsZSBhc3NldHMgbm90IGV4cGxpY2l0bHkgbGlzdGVkLiBTdXBwb3J0cyBjdXJzb3ItYmFzZWQgcGFnaW5hdGlvbi4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hc3NldHNfbGlzdF9wYWdlZF9yZXNwb25zZSBpbXBvcnQgVFJMaW5rQXNzZXRzTGlzdFBhZ2VkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQgPSAnY3VzdG9tZXJfaW50ZWdyYXRpb25faWRfZXhhbXBsZScgIyBzdHIgfCBDdXN0b21lciBpbnRlZ3JhdGlvbiB1bmlxdWUgaWRlbnRpZmllcgogICAgcGFnZV9zaXplID0gMTAwICMgaW50IHwgTnVtYmVyIG9mIHJlc3VsdHMgcGVyIHBhZ2UgKG1heCAxMDApIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gMTAwKQogICAgcGFnZV9jdXJzb3IgPSAncGFnZV9jdXJzb3JfZXhhbXBsZScgIyBzdHIgfCBDdXJzb3IgZm9yIHBhZ2luYXRpb24gKGZyb20gcHJldmlvdXMgcmVzcG9uc2UpIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBMaXN0IHN1cHBvcnRlZCBhc3NldHMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRyX2xpbmsubGlzdF90cl9saW5rX3N1cHBvcnRlZF9hc3NldHMoY3VzdG9tZXJfaW50ZWdyYXRpb25faWQsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVFJMaW5rQXBpLT5saXN0X3RyX2xpbmtfc3VwcG9ydGVkX2Fzc2V0czpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUUkxpbmtBcGktPmxpc3RfdHJfbGlua19zdXBwb3J0ZWRfYXNzZXRzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCoqIHwgKipzdHIqKnwgQ3VzdG9tZXIgaW50ZWdyYXRpb24gdW5pcXVlIGlkZW50aWZpZXIgfCAKICoqcGFnZV9zaXplKiogfCAqKmludCoqfCBOdW1iZXIgb2YgcmVzdWx0cyBwZXIgcGFnZSAobWF4IDEwMCkgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIDEwMF0KICoqcGFnZV9jdXJzb3IqKiB8ICoqc3RyKip8IEN1cnNvciBmb3IgcGFnaW5hdGlvbiAoZnJvbSBwcmV2aW91cyByZXNwb25zZSkgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipUUkxpbmtBc3NldHNMaXN0UGFnZWRSZXNwb25zZSoqXShUUkxpbmtBc3NldHNMaXN0UGFnZWRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFN1cHBvcnRlZCBhc3NldHMgcmV0cmlldmVkIHN1Y2Nlc3NmdWxseSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqbGlzdF90cl9saW5rX3Zhc3BzKioKPiBUUkxpbmtBUElQYWdlZFJlc3BvbnNlIGxpc3RfdHJfbGlua192YXNwcyhjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IpCgpMaXN0IFZBU1BzCgpSZXRyaWV2ZXMgYSBwYWdpbmF0ZWQgbGlzdCBvZiBWQVNQcyAoVmlydHVhbCBBc3NldCBTZXJ2aWNlIFByb3ZpZGVycykgYXZhaWxhYmxlIHRocm91Z2ggdGhlIHBhcnRuZXIgaW50ZWdyYXRpb24uIFN1cHBvcnRzIGN1cnNvci1iYXNlZCBwYWdpbmF0aW9uLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2FwaV9wYWdlZF9yZXNwb25zZSBpbXBvcnQgVFJMaW5rQVBJUGFnZWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCA9ICdjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZF9leGFtcGxlJyAjIHN0ciB8IEN1c3RvbWVyIGludGVncmF0aW9uIHVuaXF1ZSBpZGVudGlmaWVyCiAgICBwYWdlX3NpemUgPSAxMDAgIyBpbnQgfCBOdW1iZXIgb2YgcmVzdWx0cyBwZXIgcGFnZSAobWF4IDEwMCkgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byAxMDApCiAgICBwYWdlX2N1cnNvciA9ICdwYWdlX2N1cnNvcl9leGFtcGxlJyAjIHN0ciB8IEN1cnNvciBmb3IgcGFnaW5hdGlvbiAoZnJvbSBwcmV2aW91cyByZXNwb25zZSkgKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIExpc3QgVkFTUHMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRyX2xpbmsubGlzdF90cl9saW5rX3Zhc3BzKGN1c3RvbWVyX2ludGVncmF0aW9uX2lkLCBwYWdlX3NpemU9cGFnZV9zaXplLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvcikucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRSTGlua0FwaS0+bGlzdF90cl9saW5rX3Zhc3BzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRSTGlua0FwaS0+bGlzdF90cl9saW5rX3Zhc3BzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCoqIHwgKipzdHIqKnwgQ3VzdG9tZXIgaW50ZWdyYXRpb24gdW5pcXVlIGlkZW50aWZpZXIgfCAKICoqcGFnZV9zaXplKiogfCAqKmludCoqfCBOdW1iZXIgb2YgcmVzdWx0cyBwZXIgcGFnZSAobWF4IDEwMCkgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIDEwMF0KICoqcGFnZV9jdXJzb3IqKiB8ICoqc3RyKip8IEN1cnNvciBmb3IgcGFnaW5hdGlvbiAoZnJvbSBwcmV2aW91cyByZXNwb25zZSkgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipUUkxpbmtBUElQYWdlZFJlc3BvbnNlKipdKFRSTGlua0FQSVBhZ2VkUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBWQVNQcyByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipyZWRpcmVjdF90cl9saW5rX3RybSoqCj4gVFJMaW5rVHJtSW5mb1Jlc3BvbnNlIHJlZGlyZWN0X3RyX2xpbmtfdHJtKGN1c3RvbWVyX2ludGVncmF0aW9uX2lkLCB0cm1faWQsIHRyX2xpbmtfcmVkaXJlY3RfdHJtX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpSZWRpcmVjdCBUcmF2ZWwgUnVsZSBNZXNzYWdlCgpSZWRpcmVjdHMgYSBUcmF2ZWwgUnVsZSBNZXNzYWdlIHRvIGEgc3Vic2lkaWFyeSBWQVNQLiBUaGlzIG9wZXJhdGlvbiByZXF1aXJlcyB0aGUgcGFydG5lciB0byBzdXBwb3J0IG5lc3RlZCBWQVNQcyBmdW5jdGlvbmFsaXR5LgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3JlZGlyZWN0X3RybV9yZXF1ZXN0IGltcG9ydCBUUkxpbmtSZWRpcmVjdFRybVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3RybV9pbmZvX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtUcm1JbmZvUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQgPSAnY3VzdG9tZXJfaW50ZWdyYXRpb25faWRfZXhhbXBsZScgIyBzdHIgfCBDdXN0b21lciBpbnRlZ3JhdGlvbiB1bmlxdWUgaWRlbnRpZmllcgogICAgdHJtX2lkID0gJ3RybV9pZF9leGFtcGxlJyAjIHN0ciB8IFRyYXZlbCBSdWxlIE1lc3NhZ2UgdW5pcXVlIGlkZW50aWZpZXIKICAgIHRyX2xpbmtfcmVkaXJlY3RfdHJtX3JlcXVlc3QgPSBmaXJlYmxvY2tzLlRSTGlua1JlZGlyZWN0VHJtUmVxdWVzdCgpICMgVFJMaW5rUmVkaXJlY3RUcm1SZXF1ZXN0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgUmVkaXJlY3QgVHJhdmVsIFJ1bGUgTWVzc2FnZQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudHJfbGluay5yZWRpcmVjdF90cl9saW5rX3RybShjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCwgdHJtX2lkLCB0cl9saW5rX3JlZGlyZWN0X3RybV9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVFJMaW5rQXBpLT5yZWRpcmVjdF90cl9saW5rX3RybTpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUUkxpbmtBcGktPnJlZGlyZWN0X3RyX2xpbmtfdHJtOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCoqIHwgKipzdHIqKnwgQ3VzdG9tZXIgaW50ZWdyYXRpb24gdW5pcXVlIGlkZW50aWZpZXIgfCAKICoqdHJtX2lkKiogfCAqKnN0cioqfCBUcmF2ZWwgUnVsZSBNZXNzYWdlIHVuaXF1ZSBpZGVudGlmaWVyIHwgCiAqKnRyX2xpbmtfcmVkaXJlY3RfdHJtX3JlcXVlc3QqKiB8IFsqKlRSTGlua1JlZGlyZWN0VHJtUmVxdWVzdCoqXShUUkxpbmtSZWRpcmVjdFRybVJlcXVlc3QubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqVFJMaW5rVHJtSW5mb1Jlc3BvbnNlKipdKFRSTGlua1RybUluZm9SZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMioqIHwgVHJhbnNhY3Rpb24gcmVkaXJlY3QgcmVxdWVzdCBhY2NlcHRlZCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqc2V0X3RyX2xpbmtfZGVzdGluYXRpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCoqCj4gVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2Ugc2V0X3RyX2xpbmtfZGVzdGluYXRpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCh0eF9pZCwgdHJfbGlua19zZXRfZGVzdGluYXRpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKU2V0IGRlc3RpbmF0aW9uIHRyYXZlbCBydWxlIG1lc3NhZ2UgSUQKCkFzc29jaWF0ZXMgYSBUcmF2ZWwgUnVsZSBNZXNzYWdlIElEIHdpdGggYSBzcGVjaWZpYyBkZXN0aW5hdGlvbiBpbiBhIG11bHRpLWRlc3RpbmF0aW9uIEZpcmVibG9ja3MgdHJhbnNhY3Rpb24uIE1hdGNoZXMgZGVzdGluYXRpb25zIGJ5IGFtb3VudCBhbmQgcGVlciBwYXRoLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3NldF9kZXN0aW5hdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3JlcXVlc3QgaW1wb3J0IFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3NldF9kZXN0aW5hdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtTZXREZXN0aW5hdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB0eF9pZCA9ICd0eF9pZF9leGFtcGxlJyAjIHN0ciB8IEZpcmVibG9ja3MgdHJhbnNhY3Rpb24gdW5pcXVlIGlkZW50aWZpZXIKICAgIHRyX2xpbmtfc2V0X2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVxdWVzdCA9IGZpcmVibG9ja3MuVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVxdWVzdCgpICMgVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVxdWVzdCB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIFNldCBkZXN0aW5hdGlvbiB0cmF2ZWwgcnVsZSBtZXNzYWdlIElECiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50cl9saW5rLnNldF90cl9saW5rX2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWQodHhfaWQsIHRyX2xpbmtfc2V0X2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRSTGlua0FwaS0+c2V0X3RyX2xpbmtfZGVzdGluYXRpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUUkxpbmtBcGktPnNldF90cl9saW5rX2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnR4X2lkKiogfCAqKnN0cioqfCBGaXJlYmxvY2tzIHRyYW5zYWN0aW9uIHVuaXF1ZSBpZGVudGlmaWVyIHwgCiAqKnRyX2xpbmtfc2V0X2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVxdWVzdCoqIHwgWyoqVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVxdWVzdCoqXShUUkxpbmtTZXREZXN0aW5hdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlKipdKFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBEZXN0aW5hdGlvbiB0cmF2ZWwgcnVsZSBtZXNzYWdlIElEIHNldCBzdWNjZXNzZnVsbHkgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnNldF90cl9saW5rX3RyYW5zYWN0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWQqKgo+IFRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlIHNldF90cl9saW5rX3RyYW5zYWN0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWQodHhfaWQsIHRyX2xpbmtfc2V0X3RyYW5zYWN0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKClNldCB0cmFuc2FjdGlvbiB0cmF2ZWwgcnVsZSBtZXNzYWdlIElECgpBc3NvY2lhdGVzIGEgVHJhdmVsIFJ1bGUgTWVzc2FnZSBJRCB3aXRoIGEgRmlyZWJsb2NrcyB0cmFuc2FjdGlvbi4gVGhpcyBsaW5rcyB0aGUgVFJNIGNvbXBsaWFuY2UgZGF0YSB0byB0aGUgYmxvY2tjaGFpbiB0cmFuc2FjdGlvbi4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19zZXRfdHJhbnNhY3Rpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXF1ZXN0IGltcG9ydCBUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19zZXRfdHJhbnNhY3Rpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXNwb25zZSBpbXBvcnQgVFJMaW5rU2V0VHJhbnNhY3Rpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdHhfaWQgPSAndHhfaWRfZXhhbXBsZScgIyBzdHIgfCBGaXJlYmxvY2tzIHRyYW5zYWN0aW9uIHVuaXF1ZSBpZGVudGlmaWVyCiAgICB0cl9saW5rX3NldF90cmFuc2FjdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3JlcXVlc3QgPSBmaXJlYmxvY2tzLlRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QoKSAjIFRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBTZXQgdHJhbnNhY3Rpb24gdHJhdmVsIHJ1bGUgbWVzc2FnZSBJRAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudHJfbGluay5zZXRfdHJfbGlua190cmFuc2FjdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkKHR4X2lkLCB0cl9saW5rX3NldF90cmFuc2FjdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUUkxpbmtBcGktPnNldF90cl9saW5rX3RyYW5zYWN0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVFJMaW5rQXBpLT5zZXRfdHJfbGlua190cmFuc2FjdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip0eF9pZCoqIHwgKipzdHIqKnwgRmlyZWJsb2NrcyB0cmFuc2FjdGlvbiB1bmlxdWUgaWRlbnRpZmllciB8IAogKip0cl9saW5rX3NldF90cmFuc2FjdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3JlcXVlc3QqKiB8IFsqKlRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QqKl0oVFJMaW5rU2V0VHJhbnNhY3Rpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVxdWVzdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXNwb25zZSoqXShUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgVHJhdmVsIHJ1bGUgbWVzc2FnZSBJRCBzZXQgc3VjY2Vzc2Z1bGx5IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKip0ZXN0X3RyX2xpbmtfaW50ZWdyYXRpb25fY29ubmVjdGlvbioqCj4gVFJMaW5rVGVzdENvbm5lY3Rpb25SZXNwb25zZSB0ZXN0X3RyX2xpbmtfaW50ZWdyYXRpb25fY29ubmVjdGlvbihjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKClRlc3QgY29ubmVjdGlvbgoKVGVzdHMgdGhlIGNvbm5lY3Rpb24gdG8gYSBjdXN0b21lciBpbnRlZ3JhdGlvbiBieSB2YWxpZGF0aW5nIHN0b3JlZCBjcmVkZW50aWFscyBhbmQgYXR0ZW1wdGluZyBjb21tdW5pY2F0aW9uIHdpdGggdGhlIFRyYXZlbCBSdWxlIHBhcnRuZXIuIFJldHVybnMgY29ubmVjdGlvbiBzdGF0dXMgYW5kIGFueSBlcnJvciBtZXNzYWdlcy4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua190ZXN0X2Nvbm5lY3Rpb25fcmVzcG9uc2UgaW1wb3J0IFRSTGlua1Rlc3RDb25uZWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQgPSAnMTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDAwJyAjIHN0ciB8IEN1c3RvbWVyIGludGVncmF0aW9uIHVuaXF1ZSBpZGVudGlmaWVyCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgVGVzdCBjb25uZWN0aW9uCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50cl9saW5rLnRlc3RfdHJfbGlua19pbnRlZ3JhdGlvbl9jb25uZWN0aW9uKGN1c3RvbWVyX2ludGVncmF0aW9uX2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVFJMaW5rQXBpLT50ZXN0X3RyX2xpbmtfaW50ZWdyYXRpb25fY29ubmVjdGlvbjpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUUkxpbmtBcGktPnRlc3RfdHJfbGlua19pbnRlZ3JhdGlvbl9jb25uZWN0aW9uOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCoqIHwgKipzdHIqKnwgQ3VzdG9tZXIgaW50ZWdyYXRpb24gdW5pcXVlIGlkZW50aWZpZXIgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqVFJMaW5rVGVzdENvbm5lY3Rpb25SZXNwb25zZSoqXShUUkxpbmtUZXN0Q29ubmVjdGlvblJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQ29ubmVjdGlvbiB0ZXN0IGNvbXBsZXRlZCAoc3VjY2VzcyBvciBmYWlsdXJlIGRldGFpbHMgaW4gcmVzcG9uc2UgYm9keSkgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnVwZGF0ZV90cl9saW5rX2N1c3RvbWVyKioKPiBUUkxpbmtDdXN0b21lclJlc3BvbnNlIHVwZGF0ZV90cl9saW5rX2N1c3RvbWVyKGN1c3RvbWVyX2lkLCB0cl9saW5rX3VwZGF0ZV9jdXN0b21lcl9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKVXBkYXRlIGN1c3RvbWVyCgpVcGRhdGVzIGFuIGV4aXN0aW5nIGN1c3RvbWVyJ3MgaW5mb3JtYXRpb24uIEFsbCBmaWVsZHMgYXJlIG9wdGlvbmFsIC0gb25seSBwcm92aWRlZCBmaWVsZHMgd2lsbCBiZSB1cGRhdGVkLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2N1c3RvbWVyX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtDdXN0b21lclJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua191cGRhdGVfY3VzdG9tZXJfcmVxdWVzdCBpbXBvcnQgVFJMaW5rVXBkYXRlQ3VzdG9tZXJSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGN1c3RvbWVyX2lkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMScgIyBzdHIgfCBDdXN0b21lciB1bmlxdWUgaWRlbnRpZmllcgogICAgdHJfbGlua191cGRhdGVfY3VzdG9tZXJfcmVxdWVzdCA9IGZpcmVibG9ja3MuVFJMaW5rVXBkYXRlQ3VzdG9tZXJSZXF1ZXN0KCkgIyBUUkxpbmtVcGRhdGVDdXN0b21lclJlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBVcGRhdGUgY3VzdG9tZXIKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRyX2xpbmsudXBkYXRlX3RyX2xpbmtfY3VzdG9tZXIoY3VzdG9tZXJfaWQsIHRyX2xpbmtfdXBkYXRlX2N1c3RvbWVyX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUUkxpbmtBcGktPnVwZGF0ZV90cl9saW5rX2N1c3RvbWVyOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRSTGlua0FwaS0+dXBkYXRlX3RyX2xpbmtfY3VzdG9tZXI6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmN1c3RvbWVyX2lkKiogfCAqKnN0cioqfCBDdXN0b21lciB1bmlxdWUgaWRlbnRpZmllciB8IAogKip0cl9saW5rX3VwZGF0ZV9jdXN0b21lcl9yZXF1ZXN0KiogfCBbKipUUkxpbmtVcGRhdGVDdXN0b21lclJlcXVlc3QqKl0oVFJMaW5rVXBkYXRlQ3VzdG9tZXJSZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlRSTGlua0N1c3RvbWVyUmVzcG9uc2UqKl0oVFJMaW5rQ3VzdG9tZXJSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQ3VzdG9tZXIgdXBkYXRlZCBzdWNjZXNzZnVsbHkgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoK \ No newline at end of file diff --git a/docs/TRLinkAssessTravelRuleRequest.md b/docs/TRLinkAssessTravelRuleRequest.md index 0f6cafdf..c0e46e17 100644 --- a/docs/TRLinkAssessTravelRuleRequest.md +++ b/docs/TRLinkAssessTravelRuleRequest.md @@ -1,42 +1 @@ -# TRLinkAssessTravelRuleRequest - -Request to assess whether Travel Rule compliance is required for a transaction - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**tx_id** | **str** | Fireblocks transaction ID (optional) - RECOMMENDED for inbound transactions | [optional] -**amount** | **str** | Transaction amount (required when txId not provided) | [optional] -**amount_usd** | **str** | Transaction amount in USD (optional) | [optional] -**destination** | [**TRLinkDestinationTransferPeerPath**](TRLinkDestinationTransferPeerPath.md) | | [optional] -**dest_address** | **str** | Destination address (optional) | [optional] -**dest_tag** | **str** | Destination tag (optional) | [optional] -**source** | [**TRLinkSourceTransferPeerPath**](TRLinkSourceTransferPeerPath.md) | | [optional] -**src_address** | **str** | Source address (optional) | [optional] -**asset_id** | **str** | Asset identifier (e.g., ETH, BTC, USDC) | [optional] -**direction** | [**TRLinkTransactionDirection**](TRLinkTransactionDirection.md) | | [optional] -**tx_hash** | **str** | Transaction hash (optional) | [optional] -**originator_vasp_id** | **str** | Originator VASP identifier - required for inbound transactions | [optional] -**beneficiary_vasp_id** | **str** | Beneficiary VASP identifier - required for outbound transactions | [optional] - -## Example - -```python -from fireblocks.models.tr_link_assess_travel_rule_request import TRLinkAssessTravelRuleRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkAssessTravelRuleRequest from a JSON string -tr_link_assess_travel_rule_request_instance = TRLinkAssessTravelRuleRequest.from_json(json) -# print the JSON string representation of the object -print(TRLinkAssessTravelRuleRequest.to_json()) - -# convert the object into a dict -tr_link_assess_travel_rule_request_dict = tr_link_assess_travel_rule_request_instance.to_dict() -# create an instance of TRLinkAssessTravelRuleRequest from a dict -tr_link_assess_travel_rule_request_from_dict = TRLinkAssessTravelRuleRequest.from_dict(tr_link_assess_travel_rule_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVxdWVzdAoKUmVxdWVzdCB0byBhc3Nlc3Mgd2hldGhlciBUcmF2ZWwgUnVsZSBjb21wbGlhbmNlIGlzIHJlcXVpcmVkIGZvciBhIHRyYW5zYWN0aW9uCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHhfaWQqKiB8ICoqc3RyKiogfCBGaXJlYmxvY2tzIHRyYW5zYWN0aW9uIElEIChvcHRpb25hbCkgLSBSRUNPTU1FTkRFRCBmb3IgaW5ib3VuZCB0cmFuc2FjdGlvbnMgfCBbb3B0aW9uYWxdIAoqKmFtb3VudCoqIHwgKipzdHIqKiB8IFRyYW5zYWN0aW9uIGFtb3VudCAocmVxdWlyZWQgd2hlbiB0eElkIG5vdCBwcm92aWRlZCkgfCBbb3B0aW9uYWxdIAoqKmFtb3VudF91c2QqKiB8ICoqc3RyKiogfCBUcmFuc2FjdGlvbiBhbW91bnQgaW4gVVNEIChvcHRpb25hbCkgfCBbb3B0aW9uYWxdIAoqKmRlc3RpbmF0aW9uKiogfCBbKipUUkxpbmtEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgqKl0oVFJMaW5rRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZGVzdF9hZGRyZXNzKiogfCAqKnN0cioqIHwgRGVzdGluYXRpb24gYWRkcmVzcyAob3B0aW9uYWwpIHwgW29wdGlvbmFsXSAKKipkZXN0X3RhZyoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIHRhZyAob3B0aW9uYWwpIHwgW29wdGlvbmFsXSAKKipzb3VyY2UqKiB8IFsqKlRSTGlua1NvdXJjZVRyYW5zZmVyUGVlclBhdGgqKl0oVFJMaW5rU291cmNlVHJhbnNmZXJQZWVyUGF0aC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnNyY19hZGRyZXNzKiogfCAqKnN0cioqIHwgU291cmNlIGFkZHJlc3MgKG9wdGlvbmFsKSB8IFtvcHRpb25hbF0gCioqYXNzZXRfaWQqKiB8ICoqc3RyKiogfCBBc3NldCBpZGVudGlmaWVyIChlLmcuLCBFVEgsIEJUQywgVVNEQykgfCBbb3B0aW9uYWxdIAoqKmRpcmVjdGlvbioqIHwgWyoqVFJMaW5rVHJhbnNhY3Rpb25EaXJlY3Rpb24qKl0oVFJMaW5rVHJhbnNhY3Rpb25EaXJlY3Rpb24ubWQpIHwgIHwgW29wdGlvbmFsXSAKKip0eF9oYXNoKiogfCAqKnN0cioqIHwgVHJhbnNhY3Rpb24gaGFzaCAob3B0aW9uYWwpIHwgW29wdGlvbmFsXSAKKipvcmlnaW5hdG9yX3Zhc3BfaWQqKiB8ICoqc3RyKiogfCBPcmlnaW5hdG9yIFZBU1AgaWRlbnRpZmllciAtIHJlcXVpcmVkIGZvciBpbmJvdW5kIHRyYW5zYWN0aW9ucyB8IFtvcHRpb25hbF0gCioqYmVuZWZpY2lhcnlfdmFzcF9pZCoqIHwgKipzdHIqKiB8IEJlbmVmaWNpYXJ5IFZBU1AgaWRlbnRpZmllciAtIHJlcXVpcmVkIGZvciBvdXRib3VuZCB0cmFuc2FjdGlvbnMgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hc3Nlc3NfdHJhdmVsX3J1bGVfcmVxdWVzdCBpbXBvcnQgVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX2Fzc2Vzc190cmF2ZWxfcnVsZV9yZXF1ZXN0X2luc3RhbmNlID0gVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua19hc3Nlc3NfdHJhdmVsX3J1bGVfcmVxdWVzdF9kaWN0ID0gdHJfbGlua19hc3Nlc3NfdHJhdmVsX3J1bGVfcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlcXVlc3QgZnJvbSBhIGRpY3QKdHJfbGlua19hc3Nlc3NfdHJhdmVsX3J1bGVfcmVxdWVzdF9mcm9tX2RpY3QgPSBUUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVxdWVzdC5mcm9tX2RpY3QodHJfbGlua19hc3Nlc3NfdHJhdmVsX3J1bGVfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkAssessTravelRuleResponse.md b/docs/TRLinkAssessTravelRuleResponse.md index f6e45a81..233eaa42 100644 --- a/docs/TRLinkAssessTravelRuleResponse.md +++ b/docs/TRLinkAssessTravelRuleResponse.md @@ -1,34 +1 @@ -# TRLinkAssessTravelRuleResponse - -Response indicating whether Travel Rule compliance is required - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**decision** | [**TRLinkAssessmentDecision**](TRLinkAssessmentDecision.md) | | -**reason** | **str** | Explanation of the decision | -**required_fields** | **List[str]** | List of required fields if Travel Rule is required | [optional] -**missing_info** | **List[str]** | List of missing fields if more information is needed | [optional] -**thresholds** | [**TRLinkThresholds**](TRLinkThresholds.md) | | [optional] - -## Example - -```python -from fireblocks.models.tr_link_assess_travel_rule_response import TRLinkAssessTravelRuleResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkAssessTravelRuleResponse from a JSON string -tr_link_assess_travel_rule_response_instance = TRLinkAssessTravelRuleResponse.from_json(json) -# print the JSON string representation of the object -print(TRLinkAssessTravelRuleResponse.to_json()) - -# convert the object into a dict -tr_link_assess_travel_rule_response_dict = tr_link_assess_travel_rule_response_instance.to_dict() -# create an instance of TRLinkAssessTravelRuleResponse from a dict -tr_link_assess_travel_rule_response_from_dict = TRLinkAssessTravelRuleResponse.from_dict(tr_link_assess_travel_rule_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVzcG9uc2UKClJlc3BvbnNlIGluZGljYXRpbmcgd2hldGhlciBUcmF2ZWwgUnVsZSBjb21wbGlhbmNlIGlzIHJlcXVpcmVkCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZGVjaXNpb24qKiB8IFsqKlRSTGlua0Fzc2Vzc21lbnREZWNpc2lvbioqXShUUkxpbmtBc3Nlc3NtZW50RGVjaXNpb24ubWQpIHwgIHwgCioqcmVhc29uKiogfCAqKnN0cioqIHwgRXhwbGFuYXRpb24gb2YgdGhlIGRlY2lzaW9uIHwgCioqcmVxdWlyZWRfZmllbGRzKiogfCAqKkxpc3Rbc3RyXSoqIHwgTGlzdCBvZiByZXF1aXJlZCBmaWVsZHMgaWYgVHJhdmVsIFJ1bGUgaXMgcmVxdWlyZWQgfCBbb3B0aW9uYWxdIAoqKm1pc3NpbmdfaW5mbyoqIHwgKipMaXN0W3N0cl0qKiB8IExpc3Qgb2YgbWlzc2luZyBmaWVsZHMgaWYgbW9yZSBpbmZvcm1hdGlvbiBpcyBuZWVkZWQgfCBbb3B0aW9uYWxdIAoqKnRocmVzaG9sZHMqKiB8IFsqKlRSTGlua1RocmVzaG9sZHMqKl0oVFJMaW5rVGhyZXNob2xkcy5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hc3Nlc3NfdHJhdmVsX3J1bGVfcmVzcG9uc2UgaW1wb3J0IFRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX2Fzc2Vzc190cmF2ZWxfcnVsZV9yZXNwb25zZV9pbnN0YW5jZSA9IFRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua19hc3Nlc3NfdHJhdmVsX3J1bGVfcmVzcG9uc2VfZGljdCA9IHRyX2xpbmtfYXNzZXNzX3RyYXZlbF9ydWxlX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVzcG9uc2UgZnJvbSBhIGRpY3QKdHJfbGlua19hc3Nlc3NfdHJhdmVsX3J1bGVfcmVzcG9uc2VfZnJvbV9kaWN0ID0gVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlc3BvbnNlLmZyb21fZGljdCh0cl9saW5rX2Fzc2Vzc190cmF2ZWxfcnVsZV9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkAssessmentDecision.md b/docs/TRLinkAssessmentDecision.md index 49bb2e52..cb56dfb0 100644 --- a/docs/TRLinkAssessmentDecision.md +++ b/docs/TRLinkAssessmentDecision.md @@ -1,15 +1 @@ -# TRLinkAssessmentDecision - -Decision about Travel Rule applicability - -## Enum - -* `REQUIRED` (value: `'REQUIRED'`) - -* `NOT_REQUIRED` (value: `'NOT_REQUIRED'`) - -* `NEED_MORE_INFO` (value: `'NEED_MORE_INFO'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtBc3Nlc3NtZW50RGVjaXNpb24KCkRlY2lzaW9uIGFib3V0IFRyYXZlbCBSdWxlIGFwcGxpY2FiaWxpdHkKCiMjIEVudW0KCiogYFJFUVVJUkVEYCAodmFsdWU6IGAnUkVRVUlSRUQnYCkKCiogYE5PVF9SRVFVSVJFRGAgKHZhbHVlOiBgJ05PVF9SRVFVSVJFRCdgKQoKKiBgTkVFRF9NT1JFX0lORk9gICh2YWx1ZTogYCdORUVEX01PUkVfSU5GTydgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkAsset.md b/docs/TRLinkAsset.md index 6725ac42..dafe5f5d 100644 --- a/docs/TRLinkAsset.md +++ b/docs/TRLinkAsset.md @@ -1,30 +1 @@ -# TRLinkAsset - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**format** | [**TRLinkAssetFormat**](TRLinkAssetFormat.md) | | -**data** | [**TRLinkAssetData**](TRLinkAssetData.md) | | - -## Example - -```python -from fireblocks.models.tr_link_asset import TRLinkAsset - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkAsset from a JSON string -tr_link_asset_instance = TRLinkAsset.from_json(json) -# print the JSON string representation of the object -print(TRLinkAsset.to_json()) - -# convert the object into a dict -tr_link_asset_dict = tr_link_asset_instance.to_dict() -# create an instance of TRLinkAsset from a dict -tr_link_asset_from_dict = TRLinkAsset.from_dict(tr_link_asset_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtBc3NldAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipmb3JtYXQqKiB8IFsqKlRSTGlua0Fzc2V0Rm9ybWF0KipdKFRSTGlua0Fzc2V0Rm9ybWF0Lm1kKSB8ICB8IAoqKmRhdGEqKiB8IFsqKlRSTGlua0Fzc2V0RGF0YSoqXShUUkxpbmtBc3NldERhdGEubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Fzc2V0IGltcG9ydCBUUkxpbmtBc3NldAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQXNzZXQgZnJvbSBhIEpTT04gc3RyaW5nCnRyX2xpbmtfYXNzZXRfaW5zdGFuY2UgPSBUUkxpbmtBc3NldC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtBc3NldC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX2Fzc2V0X2RpY3QgPSB0cl9saW5rX2Fzc2V0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtBc3NldCBmcm9tIGEgZGljdAp0cl9saW5rX2Fzc2V0X2Zyb21fZGljdCA9IFRSTGlua0Fzc2V0LmZyb21fZGljdCh0cl9saW5rX2Fzc2V0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkAssetData.md b/docs/TRLinkAssetData.md index 48cfd8ec..3bfdecfc 100644 --- a/docs/TRLinkAssetData.md +++ b/docs/TRLinkAssetData.md @@ -1,33 +1 @@ -# TRLinkAssetData - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**ticker** | **str** | Asset ticker symbol (e.g., BTC, ETH, USDT) | [optional] -**network** | **str** | Network identifier from Fireblocks (e.g., ETH, BTC) | -**ucid** | **float** | CoinMarketCap unique coin ID | [optional] -**contract_address** | **str** | Contract address for tokens | [optional] -**id** | **str** | Fireblocks asset ID | [optional] - -## Example - -```python -from fireblocks.models.tr_link_asset_data import TRLinkAssetData - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkAssetData from a JSON string -tr_link_asset_data_instance = TRLinkAssetData.from_json(json) -# print the JSON string representation of the object -print(TRLinkAssetData.to_json()) - -# convert the object into a dict -tr_link_asset_data_dict = tr_link_asset_data_instance.to_dict() -# create an instance of TRLinkAssetData from a dict -tr_link_asset_data_from_dict = TRLinkAssetData.from_dict(tr_link_asset_data_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtBc3NldERhdGEKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdGlja2VyKiogfCAqKnN0cioqIHwgQXNzZXQgdGlja2VyIHN5bWJvbCAoZS5nLiwgQlRDLCBFVEgsIFVTRFQpIHwgW29wdGlvbmFsXSAKKipuZXR3b3JrKiogfCAqKnN0cioqIHwgTmV0d29yayBpZGVudGlmaWVyIGZyb20gRmlyZWJsb2NrcyAoZS5nLiwgRVRILCBCVEMpIHwgCioqdWNpZCoqIHwgKipmbG9hdCoqIHwgQ29pbk1hcmtldENhcCB1bmlxdWUgY29pbiBJRCB8IFtvcHRpb25hbF0gCioqY29udHJhY3RfYWRkcmVzcyoqIHwgKipzdHIqKiB8IENvbnRyYWN0IGFkZHJlc3MgZm9yIHRva2VucyB8IFtvcHRpb25hbF0gCioqaWQqKiB8ICoqc3RyKiogfCBGaXJlYmxvY2tzIGFzc2V0IElEIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXNzZXRfZGF0YSBpbXBvcnQgVFJMaW5rQXNzZXREYXRhCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtBc3NldERhdGEgZnJvbSBhIEpTT04gc3RyaW5nCnRyX2xpbmtfYXNzZXRfZGF0YV9pbnN0YW5jZSA9IFRSTGlua0Fzc2V0RGF0YS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtBc3NldERhdGEudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua19hc3NldF9kYXRhX2RpY3QgPSB0cl9saW5rX2Fzc2V0X2RhdGFfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0Fzc2V0RGF0YSBmcm9tIGEgZGljdAp0cl9saW5rX2Fzc2V0X2RhdGFfZnJvbV9kaWN0ID0gVFJMaW5rQXNzZXREYXRhLmZyb21fZGljdCh0cl9saW5rX2Fzc2V0X2RhdGFfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkAssetFormat.md b/docs/TRLinkAssetFormat.md index a2d77a5f..7a436f3c 100644 --- a/docs/TRLinkAssetFormat.md +++ b/docs/TRLinkAssetFormat.md @@ -1,15 +1 @@ -# TRLinkAssetFormat - -Asset format type - -## Enum - -* `FIREBLOCKS` (value: `'fireblocks'`) - -* `COINMARKETCAP` (value: `'coinmarketcap'`) - -* `SLIP44` (value: `'slip44'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtBc3NldEZvcm1hdAoKQXNzZXQgZm9ybWF0IHR5cGUKCiMjIEVudW0KCiogYEZJUkVCTE9DS1NgICh2YWx1ZTogYCdmaXJlYmxvY2tzJ2ApCgoqIGBDT0lOTUFSS0VUQ0FQYCAodmFsdWU6IGAnY29pbm1hcmtldGNhcCdgKQoKKiBgU0xJUDQ0YCAodmFsdWU6IGAnc2xpcDQ0J2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkAssetsListPagedResponse.md b/docs/TRLinkAssetsListPagedResponse.md index 82f7c87c..f33cb770 100644 --- a/docs/TRLinkAssetsListPagedResponse.md +++ b/docs/TRLinkAssetsListPagedResponse.md @@ -1,33 +1 @@ -# TRLinkAssetsListPagedResponse - -Paginated list of supported assets with partner capability flag - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[TRLinkPublicAssetInfo]**](TRLinkPublicAssetInfo.md) | List of supported assets | -**paging** | [**TRLinkPaging**](TRLinkPaging.md) | | [optional] -**partner_can_handle_any_asset** | **bool** | Whether partner can handle any asset (not just explicitly listed ones) | -**note** | **str** | Note about asset support capabilities | - -## Example - -```python -from fireblocks.models.tr_link_assets_list_paged_response import TRLinkAssetsListPagedResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkAssetsListPagedResponse from a JSON string -tr_link_assets_list_paged_response_instance = TRLinkAssetsListPagedResponse.from_json(json) -# print the JSON string representation of the object -print(TRLinkAssetsListPagedResponse.to_json()) - -# convert the object into a dict -tr_link_assets_list_paged_response_dict = tr_link_assets_list_paged_response_instance.to_dict() -# create an instance of TRLinkAssetsListPagedResponse from a dict -tr_link_assets_list_paged_response_from_dict = TRLinkAssetsListPagedResponse.from_dict(tr_link_assets_list_paged_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtBc3NldHNMaXN0UGFnZWRSZXNwb25zZQoKUGFnaW5hdGVkIGxpc3Qgb2Ygc3VwcG9ydGVkIGFzc2V0cyB3aXRoIHBhcnRuZXIgY2FwYWJpbGl0eSBmbGFnCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZGF0YSoqIHwgWyoqTGlzdFtUUkxpbmtQdWJsaWNBc3NldEluZm9dKipdKFRSTGlua1B1YmxpY0Fzc2V0SW5mby5tZCkgfCBMaXN0IG9mIHN1cHBvcnRlZCBhc3NldHMgfCAKKipwYWdpbmcqKiB8IFsqKlRSTGlua1BhZ2luZyoqXShUUkxpbmtQYWdpbmcubWQpIHwgIHwgW29wdGlvbmFsXSAKKipwYXJ0bmVyX2Nhbl9oYW5kbGVfYW55X2Fzc2V0KiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgcGFydG5lciBjYW4gaGFuZGxlIGFueSBhc3NldCAobm90IGp1c3QgZXhwbGljaXRseSBsaXN0ZWQgb25lcykgfCAKKipub3RlKiogfCAqKnN0cioqIHwgTm90ZSBhYm91dCBhc3NldCBzdXBwb3J0IGNhcGFiaWxpdGllcyB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hc3NldHNfbGlzdF9wYWdlZF9yZXNwb25zZSBpbXBvcnQgVFJMaW5rQXNzZXRzTGlzdFBhZ2VkUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0Fzc2V0c0xpc3RQYWdlZFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX2Fzc2V0c19saXN0X3BhZ2VkX3Jlc3BvbnNlX2luc3RhbmNlID0gVFJMaW5rQXNzZXRzTGlzdFBhZ2VkUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVFJMaW5rQXNzZXRzTGlzdFBhZ2VkUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua19hc3NldHNfbGlzdF9wYWdlZF9yZXNwb25zZV9kaWN0ID0gdHJfbGlua19hc3NldHNfbGlzdF9wYWdlZF9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQXNzZXRzTGlzdFBhZ2VkUmVzcG9uc2UgZnJvbSBhIGRpY3QKdHJfbGlua19hc3NldHNfbGlzdF9wYWdlZF9yZXNwb25zZV9mcm9tX2RpY3QgPSBUUkxpbmtBc3NldHNMaXN0UGFnZWRSZXNwb25zZS5mcm9tX2RpY3QodHJfbGlua19hc3NldHNfbGlzdF9wYWdlZF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkCancelTrmRequest.md b/docs/TRLinkCancelTrmRequest.md index 5b47a8b1..7f6fd81e 100644 --- a/docs/TRLinkCancelTrmRequest.md +++ b/docs/TRLinkCancelTrmRequest.md @@ -1,30 +1 @@ -# TRLinkCancelTrmRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**reason** | **str** | Reason for cancellation | [optional] -**cancelled_by** | **str** | User ID who cancelled the TRM | [optional] - -## Example - -```python -from fireblocks.models.tr_link_cancel_trm_request import TRLinkCancelTrmRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkCancelTrmRequest from a JSON string -tr_link_cancel_trm_request_instance = TRLinkCancelTrmRequest.from_json(json) -# print the JSON string representation of the object -print(TRLinkCancelTrmRequest.to_json()) - -# convert the object into a dict -tr_link_cancel_trm_request_dict = tr_link_cancel_trm_request_instance.to_dict() -# create an instance of TRLinkCancelTrmRequest from a dict -tr_link_cancel_trm_request_from_dict = TRLinkCancelTrmRequest.from_dict(tr_link_cancel_trm_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtDYW5jZWxUcm1SZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnJlYXNvbioqIHwgKipzdHIqKiB8IFJlYXNvbiBmb3IgY2FuY2VsbGF0aW9uIHwgW29wdGlvbmFsXSAKKipjYW5jZWxsZWRfYnkqKiB8ICoqc3RyKiogfCBVc2VyIElEIHdobyBjYW5jZWxsZWQgdGhlIFRSTSB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2NhbmNlbF90cm1fcmVxdWVzdCBpbXBvcnQgVFJMaW5rQ2FuY2VsVHJtUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQ2FuY2VsVHJtUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKdHJfbGlua19jYW5jZWxfdHJtX3JlcXVlc3RfaW5zdGFuY2UgPSBUUkxpbmtDYW5jZWxUcm1SZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRSTGlua0NhbmNlbFRybVJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua19jYW5jZWxfdHJtX3JlcXVlc3RfZGljdCA9IHRyX2xpbmtfY2FuY2VsX3RybV9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtDYW5jZWxUcm1SZXF1ZXN0IGZyb20gYSBkaWN0CnRyX2xpbmtfY2FuY2VsX3RybV9yZXF1ZXN0X2Zyb21fZGljdCA9IFRSTGlua0NhbmNlbFRybVJlcXVlc3QuZnJvbV9kaWN0KHRyX2xpbmtfY2FuY2VsX3RybV9yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkConnectIntegrationRequest.md b/docs/TRLinkConnectIntegrationRequest.md index 4d2015e7..47dca1c1 100644 --- a/docs/TRLinkConnectIntegrationRequest.md +++ b/docs/TRLinkConnectIntegrationRequest.md @@ -1,30 +1 @@ -# TRLinkConnectIntegrationRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**api_key** | **str** | API key provided by the Travel Rule partner | -**secret** | **str** | Secret/password provided by the Travel Rule partner (optional) | [optional] - -## Example - -```python -from fireblocks.models.tr_link_connect_integration_request import TRLinkConnectIntegrationRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkConnectIntegrationRequest from a JSON string -tr_link_connect_integration_request_instance = TRLinkConnectIntegrationRequest.from_json(json) -# print the JSON string representation of the object -print(TRLinkConnectIntegrationRequest.to_json()) - -# convert the object into a dict -tr_link_connect_integration_request_dict = tr_link_connect_integration_request_instance.to_dict() -# create an instance of TRLinkConnectIntegrationRequest from a dict -tr_link_connect_integration_request_from_dict = TRLinkConnectIntegrationRequest.from_dict(tr_link_connect_integration_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtDb25uZWN0SW50ZWdyYXRpb25SZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFwaV9rZXkqKiB8ICoqc3RyKiogfCBBUEkga2V5IHByb3ZpZGVkIGJ5IHRoZSBUcmF2ZWwgUnVsZSBwYXJ0bmVyIHwgCioqc2VjcmV0KiogfCAqKnN0cioqIHwgU2VjcmV0L3Bhc3N3b3JkIHByb3ZpZGVkIGJ5IHRoZSBUcmF2ZWwgUnVsZSBwYXJ0bmVyIChvcHRpb25hbCkgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19jb25uZWN0X2ludGVncmF0aW9uX3JlcXVlc3QgaW1wb3J0IFRSTGlua0Nvbm5lY3RJbnRlZ3JhdGlvblJlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0Nvbm5lY3RJbnRlZ3JhdGlvblJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCnRyX2xpbmtfY29ubmVjdF9pbnRlZ3JhdGlvbl9yZXF1ZXN0X2luc3RhbmNlID0gVFJMaW5rQ29ubmVjdEludGVncmF0aW9uUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtDb25uZWN0SW50ZWdyYXRpb25SZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyX2xpbmtfY29ubmVjdF9pbnRlZ3JhdGlvbl9yZXF1ZXN0X2RpY3QgPSB0cl9saW5rX2Nvbm5lY3RfaW50ZWdyYXRpb25fcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQ29ubmVjdEludGVncmF0aW9uUmVxdWVzdCBmcm9tIGEgZGljdAp0cl9saW5rX2Nvbm5lY3RfaW50ZWdyYXRpb25fcmVxdWVzdF9mcm9tX2RpY3QgPSBUUkxpbmtDb25uZWN0SW50ZWdyYXRpb25SZXF1ZXN0LmZyb21fZGljdCh0cl9saW5rX2Nvbm5lY3RfaW50ZWdyYXRpb25fcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkCreateCustomerRequest.md b/docs/TRLinkCreateCustomerRequest.md index 7170774a..4192eb08 100644 --- a/docs/TRLinkCreateCustomerRequest.md +++ b/docs/TRLinkCreateCustomerRequest.md @@ -1,37 +1 @@ -# TRLinkCreateCustomerRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**discoverable** | [**TRLinkDiscoverableStatus**](TRLinkDiscoverableStatus.md) | | [optional] -**short_name** | **str** | Short display name (required) | -**full_legal_name** | **str** | Full legal entity name | [optional] -**geographic_address** | [**TRLinkGeographicAddressRequest**](TRLinkGeographicAddressRequest.md) | | [optional] -**country_of_registration** | **str** | ISO 3166-1 alpha-2 country code where the entity is registered | [optional] -**national_identification** | **str** | National identification as JSON string | [optional] -**date_of_incorporation** | **date** | Date of entity incorporation (ISO 8601 format: YYYY-MM-DD) | [optional] -**vaults** | **List[int]** | Associated Fireblocks vault account IDs | [optional] -**tr_primary_purpose** | **str** | Primary purpose for Travel Rule compliance (enum value) | [optional] - -## Example - -```python -from fireblocks.models.tr_link_create_customer_request import TRLinkCreateCustomerRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkCreateCustomerRequest from a JSON string -tr_link_create_customer_request_instance = TRLinkCreateCustomerRequest.from_json(json) -# print the JSON string representation of the object -print(TRLinkCreateCustomerRequest.to_json()) - -# convert the object into a dict -tr_link_create_customer_request_dict = tr_link_create_customer_request_instance.to_dict() -# create an instance of TRLinkCreateCustomerRequest from a dict -tr_link_create_customer_request_from_dict = TRLinkCreateCustomerRequest.from_dict(tr_link_create_customer_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtDcmVhdGVDdXN0b21lclJlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZGlzY292ZXJhYmxlKiogfCBbKipUUkxpbmtEaXNjb3ZlcmFibGVTdGF0dXMqKl0oVFJMaW5rRGlzY292ZXJhYmxlU3RhdHVzLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc2hvcnRfbmFtZSoqIHwgKipzdHIqKiB8IFNob3J0IGRpc3BsYXkgbmFtZSAocmVxdWlyZWQpIHwgCioqZnVsbF9sZWdhbF9uYW1lKiogfCAqKnN0cioqIHwgRnVsbCBsZWdhbCBlbnRpdHkgbmFtZSB8IFtvcHRpb25hbF0gCioqZ2VvZ3JhcGhpY19hZGRyZXNzKiogfCBbKipUUkxpbmtHZW9ncmFwaGljQWRkcmVzc1JlcXVlc3QqKl0oVFJMaW5rR2VvZ3JhcGhpY0FkZHJlc3NSZXF1ZXN0Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqY291bnRyeV9vZl9yZWdpc3RyYXRpb24qKiB8ICoqc3RyKiogfCBJU08gMzE2Ni0xIGFscGhhLTIgY291bnRyeSBjb2RlIHdoZXJlIHRoZSBlbnRpdHkgaXMgcmVnaXN0ZXJlZCB8IFtvcHRpb25hbF0gCioqbmF0aW9uYWxfaWRlbnRpZmljYXRpb24qKiB8ICoqc3RyKiogfCBOYXRpb25hbCBpZGVudGlmaWNhdGlvbiBhcyBKU09OIHN0cmluZyB8IFtvcHRpb25hbF0gCioqZGF0ZV9vZl9pbmNvcnBvcmF0aW9uKiogfCAqKmRhdGUqKiB8IERhdGUgb2YgZW50aXR5IGluY29ycG9yYXRpb24gKElTTyA4NjAxIGZvcm1hdDogWVlZWS1NTS1ERCkgfCBbb3B0aW9uYWxdIAoqKnZhdWx0cyoqIHwgKipMaXN0W2ludF0qKiB8IEFzc29jaWF0ZWQgRmlyZWJsb2NrcyB2YXVsdCBhY2NvdW50IElEcyB8IFtvcHRpb25hbF0gCioqdHJfcHJpbWFyeV9wdXJwb3NlKiogfCAqKnN0cioqIHwgUHJpbWFyeSBwdXJwb3NlIGZvciBUcmF2ZWwgUnVsZSBjb21wbGlhbmNlIChlbnVtIHZhbHVlKSB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2NyZWF0ZV9jdXN0b21lcl9yZXF1ZXN0IGltcG9ydCBUUkxpbmtDcmVhdGVDdXN0b21lclJlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0NyZWF0ZUN1c3RvbWVyUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKdHJfbGlua19jcmVhdGVfY3VzdG9tZXJfcmVxdWVzdF9pbnN0YW5jZSA9IFRSTGlua0NyZWF0ZUN1c3RvbWVyUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtDcmVhdGVDdXN0b21lclJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua19jcmVhdGVfY3VzdG9tZXJfcmVxdWVzdF9kaWN0ID0gdHJfbGlua19jcmVhdGVfY3VzdG9tZXJfcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQ3JlYXRlQ3VzdG9tZXJSZXF1ZXN0IGZyb20gYSBkaWN0CnRyX2xpbmtfY3JlYXRlX2N1c3RvbWVyX3JlcXVlc3RfZnJvbV9kaWN0ID0gVFJMaW5rQ3JlYXRlQ3VzdG9tZXJSZXF1ZXN0LmZyb21fZGljdCh0cl9saW5rX2NyZWF0ZV9jdXN0b21lcl9yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkCreateIntegrationRequest.md b/docs/TRLinkCreateIntegrationRequest.md index 18e9b890..cecb5da4 100644 --- a/docs/TRLinkCreateIntegrationRequest.md +++ b/docs/TRLinkCreateIntegrationRequest.md @@ -1,30 +1 @@ -# TRLinkCreateIntegrationRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**customer_id** | **str** | Customer unique identifier | -**partner_ident** | **str** | Partner identification code (e.g., \"sumsub\", \"notabene\") | - -## Example - -```python -from fireblocks.models.tr_link_create_integration_request import TRLinkCreateIntegrationRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkCreateIntegrationRequest from a JSON string -tr_link_create_integration_request_instance = TRLinkCreateIntegrationRequest.from_json(json) -# print the JSON string representation of the object -print(TRLinkCreateIntegrationRequest.to_json()) - -# convert the object into a dict -tr_link_create_integration_request_dict = tr_link_create_integration_request_instance.to_dict() -# create an instance of TRLinkCreateIntegrationRequest from a dict -tr_link_create_integration_request_from_dict = TRLinkCreateIntegrationRequest.from_dict(tr_link_create_integration_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtDcmVhdGVJbnRlZ3JhdGlvblJlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqY3VzdG9tZXJfaWQqKiB8ICoqc3RyKiogfCBDdXN0b21lciB1bmlxdWUgaWRlbnRpZmllciB8IAoqKnBhcnRuZXJfaWRlbnQqKiB8ICoqc3RyKiogfCBQYXJ0bmVyIGlkZW50aWZpY2F0aW9uIGNvZGUgKGUuZy4sIFwmcXVvdDtzdW1zdWJcJnF1b3Q7LCBcJnF1b3Q7bm90YWJlbmVcJnF1b3Q7KSB8IAoqKmN1c3RvbWVyX2ludGVncmF0aW9uX2lkKiogfCAqKnN0cioqIHwgT3B0aW9uYWwuIFdoZW4gc3VwcGxpZWQgYW5kIHBlcm1pdHRlZCBmb3IgdGhlIHRlbmFudCAoZmVhdHVyZSBmbGFnIC8gQ1NNIGFycmFuZ2VtZW50KSwgdGhpcyB2YWx1ZSBpcyB1c2VkIGFzIHRoZSBUUkxpbmsgaW50ZWdyYXRpb24gaWRlbnRpZmllciBpbnN0ZWFkIG9mIGEgc2VydmVyLWdlbmVyYXRlZCBVVUlELiBJZiBvbWl0dGVkLCB0aGUgQVBJIGdlbmVyYXRlcyBhIFVVSUQuIElmIHN1cHBsaWVkIHdoZW4gdGhlIHRlbmFudCBpcyBub3QgcGVybWl0dGVkIHRvIHNldCBhIGN1c3RvbSBpZCwgdGhlIHJlcXVlc3QgZmFpbHMgd2l0aCA0MDAuIENvbnRhY3QgeW91ciBDU00gaWYgeW91IG5lZWQgYSBjdXN0b20gaW50ZWdyYXRpb24gaWQuIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY3JlYXRlX2ludGVncmF0aW9uX3JlcXVlc3QgaW1wb3J0IFRSTGlua0NyZWF0ZUludGVncmF0aW9uUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQ3JlYXRlSW50ZWdyYXRpb25SZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX2NyZWF0ZV9pbnRlZ3JhdGlvbl9yZXF1ZXN0X2luc3RhbmNlID0gVFJMaW5rQ3JlYXRlSW50ZWdyYXRpb25SZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRSTGlua0NyZWF0ZUludGVncmF0aW9uUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX2NyZWF0ZV9pbnRlZ3JhdGlvbl9yZXF1ZXN0X2RpY3QgPSB0cl9saW5rX2NyZWF0ZV9pbnRlZ3JhdGlvbl9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtDcmVhdGVJbnRlZ3JhdGlvblJlcXVlc3QgZnJvbSBhIGRpY3QKdHJfbGlua19jcmVhdGVfaW50ZWdyYXRpb25fcmVxdWVzdF9mcm9tX2RpY3QgPSBUUkxpbmtDcmVhdGVJbnRlZ3JhdGlvblJlcXVlc3QuZnJvbV9kaWN0KHRyX2xpbmtfY3JlYXRlX2ludGVncmF0aW9uX3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkCreateTrmRequest.md b/docs/TRLinkCreateTrmRequest.md index 1d903de7..b2973663 100644 --- a/docs/TRLinkCreateTrmRequest.md +++ b/docs/TRLinkCreateTrmRequest.md @@ -1,43 +1 @@ -# TRLinkCreateTrmRequest - -Request to create a Travel Rule Message with IVMS101 PII data - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**asset_id** | **str** | Asset identifier (required when txId not provided) | [optional] -**amount** | **str** | Transaction amount (required when txId not provided) | [optional] -**amount_usd** | **str** | Amount in USD (optional) | [optional] -**source** | [**TRLinkSourceTransferPeerPath**](TRLinkSourceTransferPeerPath.md) | | [optional] -**src_address** | **str** | Source address (optional) | [optional] -**destination** | [**TRLinkDestinationTransferPeerPath**](TRLinkDestinationTransferPeerPath.md) | | [optional] -**dest_address** | **str** | Destination address (optional) | [optional] -**dest_tag** | **str** | Destination tag (optional) | [optional] -**tx_id** | **str** | Fireblocks transaction ID (optional) - RECOMMENDED for inbound transactions | [optional] -**tx_hash** | **str** | Transaction hash (optional) | [optional] -**direction** | [**TRLinkTransactionDirection**](TRLinkTransactionDirection.md) | | [optional] -**originator_vasp_id** | **str** | Originator VASP identifier - required for inbound transactions | [optional] -**beneficiary_vasp_id** | **str** | Beneficiary VASP identifier - required for outbound transactions | [optional] -**ivms101** | [**TRLinkIvms**](TRLinkIvms.md) | | - -## Example - -```python -from fireblocks.models.tr_link_create_trm_request import TRLinkCreateTrmRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkCreateTrmRequest from a JSON string -tr_link_create_trm_request_instance = TRLinkCreateTrmRequest.from_json(json) -# print the JSON string representation of the object -print(TRLinkCreateTrmRequest.to_json()) - -# convert the object into a dict -tr_link_create_trm_request_dict = tr_link_create_trm_request_instance.to_dict() -# create an instance of TRLinkCreateTrmRequest from a dict -tr_link_create_trm_request_from_dict = TRLinkCreateTrmRequest.from_dict(tr_link_create_trm_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtDcmVhdGVUcm1SZXF1ZXN0CgpSZXF1ZXN0IHRvIGNyZWF0ZSBhIFRyYXZlbCBSdWxlIE1lc3NhZ2Ugd2l0aCBJVk1TMTAxIFBJSSBkYXRhCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYXNzZXRfaWQqKiB8ICoqc3RyKiogfCBBc3NldCBpZGVudGlmaWVyIChyZXF1aXJlZCB3aGVuIHR4SWQgbm90IHByb3ZpZGVkKSB8IFtvcHRpb25hbF0gCioqYW1vdW50KiogfCAqKnN0cioqIHwgVHJhbnNhY3Rpb24gYW1vdW50IChyZXF1aXJlZCB3aGVuIHR4SWQgbm90IHByb3ZpZGVkKSB8IFtvcHRpb25hbF0gCioqYW1vdW50X3VzZCoqIHwgKipzdHIqKiB8IEFtb3VudCBpbiBVU0QgKG9wdGlvbmFsKSB8IFtvcHRpb25hbF0gCioqc291cmNlKiogfCBbKipUUkxpbmtTb3VyY2VUcmFuc2ZlclBlZXJQYXRoKipdKFRSTGlua1NvdXJjZVRyYW5zZmVyUGVlclBhdGgubWQpIHwgIHwgW29wdGlvbmFsXSAKKipzcmNfYWRkcmVzcyoqIHwgKipzdHIqKiB8IFNvdXJjZSBhZGRyZXNzIChvcHRpb25hbCkgfCBbb3B0aW9uYWxdIAoqKmRlc3RpbmF0aW9uKiogfCBbKipUUkxpbmtEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgqKl0oVFJMaW5rRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZGVzdF9hZGRyZXNzKiogfCAqKnN0cioqIHwgRGVzdGluYXRpb24gYWRkcmVzcyAob3B0aW9uYWwpIHwgW29wdGlvbmFsXSAKKipkZXN0X3RhZyoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIHRhZyAob3B0aW9uYWwpIHwgW29wdGlvbmFsXSAKKip0eF9pZCoqIHwgKipzdHIqKiB8IEZpcmVibG9ja3MgdHJhbnNhY3Rpb24gSUQgKG9wdGlvbmFsKSAtIFJFQ09NTUVOREVEIGZvciBpbmJvdW5kIHRyYW5zYWN0aW9ucyB8IFtvcHRpb25hbF0gCioqdHhfaGFzaCoqIHwgKipzdHIqKiB8IFRyYW5zYWN0aW9uIGhhc2ggKG9wdGlvbmFsKSB8IFtvcHRpb25hbF0gCioqZGlyZWN0aW9uKiogfCBbKipUUkxpbmtUcmFuc2FjdGlvbkRpcmVjdGlvbioqXShUUkxpbmtUcmFuc2FjdGlvbkRpcmVjdGlvbi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKm9yaWdpbmF0b3JfdmFzcF9pZCoqIHwgKipzdHIqKiB8IE9yaWdpbmF0b3IgVkFTUCBpZGVudGlmaWVyIC0gcmVxdWlyZWQgZm9yIGluYm91bmQgdHJhbnNhY3Rpb25zIHwgW29wdGlvbmFsXSAKKipiZW5lZmljaWFyeV92YXNwX2lkKiogfCAqKnN0cioqIHwgQmVuZWZpY2lhcnkgVkFTUCBpZGVudGlmaWVyIC0gcmVxdWlyZWQgZm9yIG91dGJvdW5kIHRyYW5zYWN0aW9ucyB8IFtvcHRpb25hbF0gCioqaXZtczEwMSoqIHwgWyoqVFJMaW5rSXZtcyoqXShUUkxpbmtJdm1zLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19jcmVhdGVfdHJtX3JlcXVlc3QgaW1wb3J0IFRSTGlua0NyZWF0ZVRybVJlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0NyZWF0ZVRybVJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCnRyX2xpbmtfY3JlYXRlX3RybV9yZXF1ZXN0X2luc3RhbmNlID0gVFJMaW5rQ3JlYXRlVHJtUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtDcmVhdGVUcm1SZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyX2xpbmtfY3JlYXRlX3RybV9yZXF1ZXN0X2RpY3QgPSB0cl9saW5rX2NyZWF0ZV90cm1fcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQ3JlYXRlVHJtUmVxdWVzdCBmcm9tIGEgZGljdAp0cl9saW5rX2NyZWF0ZV90cm1fcmVxdWVzdF9mcm9tX2RpY3QgPSBUUkxpbmtDcmVhdGVUcm1SZXF1ZXN0LmZyb21fZGljdCh0cl9saW5rX2NyZWF0ZV90cm1fcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkCurrency.md b/docs/TRLinkCurrency.md index a64b9465..a0e26e5d 100644 --- a/docs/TRLinkCurrency.md +++ b/docs/TRLinkCurrency.md @@ -1,12 +1 @@ -# TRLinkCurrency - - -## Enum - -* `USD` (value: `'USD'`) - -* `NATIVE` (value: `'NATIVE'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtDdXJyZW5jeQoKCiMjIEVudW0KCiogYFVTRGAgKHZhbHVlOiBgJ1VTRCdgKQoKKiBgTkFUSVZFYCAodmFsdWU6IGAnTkFUSVZFJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkCustomerIntegrationResponse.md b/docs/TRLinkCustomerIntegrationResponse.md index 2eb39216..ddf1aaa3 100644 --- a/docs/TRLinkCustomerIntegrationResponse.md +++ b/docs/TRLinkCustomerIntegrationResponse.md @@ -1,35 +1 @@ -# TRLinkCustomerIntegrationResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**customer_integration_id** | **str** | Customer integration unique identifier | -**api_key** | **str** | API key for partner integration (censored for security) | [optional] -**secret** | **str** | Secret for partner integration (censored for security) | [optional] -**create_date** | **datetime** | Timestamp when the integration was created (ISO 8601 format) | -**last_update** | **datetime** | Timestamp when the integration was last updated (ISO 8601 format) | -**partner** | [**TRLinkPartnerResponse**](TRLinkPartnerResponse.md) | | -**customer** | [**TRLinkCustomerResponse**](TRLinkCustomerResponse.md) | | - -## Example - -```python -from fireblocks.models.tr_link_customer_integration_response import TRLinkCustomerIntegrationResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkCustomerIntegrationResponse from a JSON string -tr_link_customer_integration_response_instance = TRLinkCustomerIntegrationResponse.from_json(json) -# print the JSON string representation of the object -print(TRLinkCustomerIntegrationResponse.to_json()) - -# convert the object into a dict -tr_link_customer_integration_response_dict = tr_link_customer_integration_response_instance.to_dict() -# create an instance of TRLinkCustomerIntegrationResponse from a dict -tr_link_customer_integration_response_from_dict = TRLinkCustomerIntegrationResponse.from_dict(tr_link_customer_integration_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtDdXN0b21lckludGVncmF0aW9uUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqY3VzdG9tZXJfaW50ZWdyYXRpb25faWQqKiB8ICoqc3RyKiogfCBDdXN0b21lciBpbnRlZ3JhdGlvbiB1bmlxdWUgaWRlbnRpZmllciB8IAoqKmFwaV9rZXkqKiB8ICoqc3RyKiogfCBBUEkga2V5IGZvciBwYXJ0bmVyIGludGVncmF0aW9uIChjZW5zb3JlZCBmb3Igc2VjdXJpdHkpIHwgW29wdGlvbmFsXSAKKipzZWNyZXQqKiB8ICoqc3RyKiogfCBTZWNyZXQgZm9yIHBhcnRuZXIgaW50ZWdyYXRpb24gKGNlbnNvcmVkIGZvciBzZWN1cml0eSkgfCBbb3B0aW9uYWxdIAoqKmNyZWF0ZV9kYXRlKiogfCAqKmRhdGV0aW1lKiogfCBUaW1lc3RhbXAgd2hlbiB0aGUgaW50ZWdyYXRpb24gd2FzIGNyZWF0ZWQgKElTTyA4NjAxIGZvcm1hdCkgfCAKKipsYXN0X3VwZGF0ZSoqIHwgKipkYXRldGltZSoqIHwgVGltZXN0YW1wIHdoZW4gdGhlIGludGVncmF0aW9uIHdhcyBsYXN0IHVwZGF0ZWQgKElTTyA4NjAxIGZvcm1hdCkgfCAKKipwYXJ0bmVyKiogfCBbKipUUkxpbmtQYXJ0bmVyUmVzcG9uc2UqKl0oVFJMaW5rUGFydG5lclJlc3BvbnNlLm1kKSB8ICB8IAoqKmN1c3RvbWVyKiogfCBbKipUUkxpbmtDdXN0b21lclJlc3BvbnNlKipdKFRSTGlua0N1c3RvbWVyUmVzcG9uc2UubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2N1c3RvbWVyX2ludGVncmF0aW9uX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtDdXN0b21lckludGVncmF0aW9uUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0N1c3RvbWVySW50ZWdyYXRpb25SZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKdHJfbGlua19jdXN0b21lcl9pbnRlZ3JhdGlvbl9yZXNwb25zZV9pbnN0YW5jZSA9IFRSTGlua0N1c3RvbWVySW50ZWdyYXRpb25SZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtDdXN0b21lckludGVncmF0aW9uUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua19jdXN0b21lcl9pbnRlZ3JhdGlvbl9yZXNwb25zZV9kaWN0ID0gdHJfbGlua19jdXN0b21lcl9pbnRlZ3JhdGlvbl9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQ3VzdG9tZXJJbnRlZ3JhdGlvblJlc3BvbnNlIGZyb20gYSBkaWN0CnRyX2xpbmtfY3VzdG9tZXJfaW50ZWdyYXRpb25fcmVzcG9uc2VfZnJvbV9kaWN0ID0gVFJMaW5rQ3VzdG9tZXJJbnRlZ3JhdGlvblJlc3BvbnNlLmZyb21fZGljdCh0cl9saW5rX2N1c3RvbWVyX2ludGVncmF0aW9uX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkCustomerResponse.md b/docs/TRLinkCustomerResponse.md index 122100f3..21f31491 100644 --- a/docs/TRLinkCustomerResponse.md +++ b/docs/TRLinkCustomerResponse.md @@ -1,41 +1 @@ -# TRLinkCustomerResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | Customer unique identifier | -**tenant_id** | **str** | Fireblocks tenant ID | -**discoverable** | [**TRLinkDiscoverableStatus**](TRLinkDiscoverableStatus.md) | | -**short_name** | **str** | Short display name | -**full_legal_name** | **str** | Full legal entity name | -**geographic_address** | [**TRLinkGeographicAddressRequest**](TRLinkGeographicAddressRequest.md) | | [optional] -**country_of_registration** | **str** | ISO 3166-1 alpha-2 country code where the entity is registered | -**national_identification** | **str** | National identification (serialized as string) | [optional] -**date_of_incorporation** | **date** | Date of entity incorporation (ISO 8601 format) | [optional] -**vaults** | **List[int]** | Associated Fireblocks vault account IDs | [optional] -**tr_primary_purpose** | **str** | Primary purpose for Travel Rule compliance | [optional] -**create_date** | **datetime** | Timestamp when the customer was created (ISO 8601 format) | -**last_update** | **datetime** | Timestamp when the customer was last updated (ISO 8601 format) | - -## Example - -```python -from fireblocks.models.tr_link_customer_response import TRLinkCustomerResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkCustomerResponse from a JSON string -tr_link_customer_response_instance = TRLinkCustomerResponse.from_json(json) -# print the JSON string representation of the object -print(TRLinkCustomerResponse.to_json()) - -# convert the object into a dict -tr_link_customer_response_dict = tr_link_customer_response_instance.to_dict() -# create an instance of TRLinkCustomerResponse from a dict -tr_link_customer_response_from_dict = TRLinkCustomerResponse.from_dict(tr_link_customer_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtDdXN0b21lclJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgQ3VzdG9tZXIgdW5pcXVlIGlkZW50aWZpZXIgfCAKKip0ZW5hbnRfaWQqKiB8ICoqc3RyKiogfCBGaXJlYmxvY2tzIHRlbmFudCBJRCB8IAoqKmRpc2NvdmVyYWJsZSoqIHwgWyoqVFJMaW5rRGlzY292ZXJhYmxlU3RhdHVzKipdKFRSTGlua0Rpc2NvdmVyYWJsZVN0YXR1cy5tZCkgfCAgfCAKKipzaG9ydF9uYW1lKiogfCAqKnN0cioqIHwgU2hvcnQgZGlzcGxheSBuYW1lIHwgCioqZnVsbF9sZWdhbF9uYW1lKiogfCAqKnN0cioqIHwgRnVsbCBsZWdhbCBlbnRpdHkgbmFtZSB8IAoqKmdlb2dyYXBoaWNfYWRkcmVzcyoqIHwgWyoqVFJMaW5rR2VvZ3JhcGhpY0FkZHJlc3NSZXF1ZXN0KipdKFRSTGlua0dlb2dyYXBoaWNBZGRyZXNzUmVxdWVzdC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmNvdW50cnlfb2ZfcmVnaXN0cmF0aW9uKiogfCAqKnN0cioqIHwgSVNPIDMxNjYtMSBhbHBoYS0yIGNvdW50cnkgY29kZSB3aGVyZSB0aGUgZW50aXR5IGlzIHJlZ2lzdGVyZWQgfCAKKipuYXRpb25hbF9pZGVudGlmaWNhdGlvbioqIHwgKipzdHIqKiB8IE5hdGlvbmFsIGlkZW50aWZpY2F0aW9uIChzZXJpYWxpemVkIGFzIHN0cmluZykgfCBbb3B0aW9uYWxdIAoqKmRhdGVfb2ZfaW5jb3Jwb3JhdGlvbioqIHwgKipkYXRlKiogfCBEYXRlIG9mIGVudGl0eSBpbmNvcnBvcmF0aW9uIChJU08gODYwMSBmb3JtYXQpIHwgW29wdGlvbmFsXSAKKip2YXVsdHMqKiB8ICoqTGlzdFtpbnRdKiogfCBBc3NvY2lhdGVkIEZpcmVibG9ja3MgdmF1bHQgYWNjb3VudCBJRHMgfCBbb3B0aW9uYWxdIAoqKnRyX3ByaW1hcnlfcHVycG9zZSoqIHwgKipzdHIqKiB8IFByaW1hcnkgcHVycG9zZSBmb3IgVHJhdmVsIFJ1bGUgY29tcGxpYW5jZSB8IFtvcHRpb25hbF0gCioqY3JlYXRlX2RhdGUqKiB8ICoqZGF0ZXRpbWUqKiB8IFRpbWVzdGFtcCB3aGVuIHRoZSBjdXN0b21lciB3YXMgY3JlYXRlZCAoSVNPIDg2MDEgZm9ybWF0KSB8IAoqKmxhc3RfdXBkYXRlKiogfCAqKmRhdGV0aW1lKiogfCBUaW1lc3RhbXAgd2hlbiB0aGUgY3VzdG9tZXIgd2FzIGxhc3QgdXBkYXRlZCAoSVNPIDg2MDEgZm9ybWF0KSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19jdXN0b21lcl9yZXNwb25zZSBpbXBvcnQgVFJMaW5rQ3VzdG9tZXJSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQ3VzdG9tZXJSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKdHJfbGlua19jdXN0b21lcl9yZXNwb25zZV9pbnN0YW5jZSA9IFRSTGlua0N1c3RvbWVyUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVFJMaW5rQ3VzdG9tZXJSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX2N1c3RvbWVyX3Jlc3BvbnNlX2RpY3QgPSB0cl9saW5rX2N1c3RvbWVyX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtDdXN0b21lclJlc3BvbnNlIGZyb20gYSBkaWN0CnRyX2xpbmtfY3VzdG9tZXJfcmVzcG9uc2VfZnJvbV9kaWN0ID0gVFJMaW5rQ3VzdG9tZXJSZXNwb25zZS5mcm9tX2RpY3QodHJfbGlua19jdXN0b21lcl9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkDestinationTransferPeerPath.md b/docs/TRLinkDestinationTransferPeerPath.md index dd8cd1ad..852f55fe 100644 --- a/docs/TRLinkDestinationTransferPeerPath.md +++ b/docs/TRLinkDestinationTransferPeerPath.md @@ -1,33 +1 @@ -# TRLinkDestinationTransferPeerPath - -Destination peer path for transaction - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | Destination peer type (e.g., ONE_TIME_ADDRESS, VAULT_ACCOUNT) | -**id** | **str** | Destination peer ID | [optional] -**wallet_id** | **str** | Destination wallet ID | [optional] -**one_time_address** | [**TRLinkOneTimeAddress**](TRLinkOneTimeAddress.md) | | [optional] - -## Example - -```python -from fireblocks.models.tr_link_destination_transfer_peer_path import TRLinkDestinationTransferPeerPath - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkDestinationTransferPeerPath from a JSON string -tr_link_destination_transfer_peer_path_instance = TRLinkDestinationTransferPeerPath.from_json(json) -# print the JSON string representation of the object -print(TRLinkDestinationTransferPeerPath.to_json()) - -# convert the object into a dict -tr_link_destination_transfer_peer_path_dict = tr_link_destination_transfer_peer_path_instance.to_dict() -# create an instance of TRLinkDestinationTransferPeerPath from a dict -tr_link_destination_transfer_peer_path_from_dict = TRLinkDestinationTransferPeerPath.from_dict(tr_link_destination_transfer_peer_path_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgKCkRlc3RpbmF0aW9uIHBlZXIgcGF0aCBmb3IgdHJhbnNhY3Rpb24KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eXBlKiogfCAqKnN0cioqIHwgRGVzdGluYXRpb24gcGVlciB0eXBlIChlLmcuLCBPTkVfVElNRV9BRERSRVNTLCBWQVVMVF9BQ0NPVU5UKSB8IAoqKmlkKiogfCAqKnN0cioqIHwgRGVzdGluYXRpb24gcGVlciBJRCB8IFtvcHRpb25hbF0gCioqd2FsbGV0X2lkKiogfCAqKnN0cioqIHwgRGVzdGluYXRpb24gd2FsbGV0IElEIHwgW29wdGlvbmFsXSAKKipvbmVfdGltZV9hZGRyZXNzKiogfCBbKipUUkxpbmtPbmVUaW1lQWRkcmVzcyoqXShUUkxpbmtPbmVUaW1lQWRkcmVzcy5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19kZXN0aW5hdGlvbl90cmFuc2Zlcl9wZWVyX3BhdGggaW1wb3J0IFRSTGlua0Rlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX2Rlc3RpbmF0aW9uX3RyYW5zZmVyX3BlZXJfcGF0aF9pbnN0YW5jZSA9IFRSTGlua0Rlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua19kZXN0aW5hdGlvbl90cmFuc2Zlcl9wZWVyX3BhdGhfZGljdCA9IHRyX2xpbmtfZGVzdGluYXRpb25fdHJhbnNmZXJfcGVlcl9wYXRoX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGggZnJvbSBhIGRpY3QKdHJfbGlua19kZXN0aW5hdGlvbl90cmFuc2Zlcl9wZWVyX3BhdGhfZnJvbV9kaWN0ID0gVFJMaW5rRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoLmZyb21fZGljdCh0cl9saW5rX2Rlc3RpbmF0aW9uX3RyYW5zZmVyX3BlZXJfcGF0aF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkDiscoverableStatus.md b/docs/TRLinkDiscoverableStatus.md index e202a839..7587617f 100644 --- a/docs/TRLinkDiscoverableStatus.md +++ b/docs/TRLinkDiscoverableStatus.md @@ -1,15 +1 @@ -# TRLinkDiscoverableStatus - -Customer discoverability status in the Travel Rule network - -## Enum - -* `ANONYMOUS` (value: `'anonymous'`) - -* `HIDDEN` (value: `'hidden'`) - -* `DISCOVERABLE` (value: `'discoverable'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtEaXNjb3ZlcmFibGVTdGF0dXMKCkN1c3RvbWVyIGRpc2NvdmVyYWJpbGl0eSBzdGF0dXMgaW4gdGhlIFRyYXZlbCBSdWxlIG5ldHdvcmsKCiMjIEVudW0KCiogYEFOT05ZTU9VU2AgKHZhbHVlOiBgJ2Fub255bW91cydgKQoKKiBgSElEREVOYCAodmFsdWU6IGAnaGlkZGVuJ2ApCgoqIGBESVNDT1ZFUkFCTEVgICh2YWx1ZTogYCdkaXNjb3ZlcmFibGUnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkFiatValue.md b/docs/TRLinkFiatValue.md index b24073e0..ee2994da 100644 --- a/docs/TRLinkFiatValue.md +++ b/docs/TRLinkFiatValue.md @@ -1,30 +1 @@ -# TRLinkFiatValue - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | **str** | Fiat amount | -**currency** | **str** | Fiat currency code | - -## Example - -```python -from fireblocks.models.tr_link_fiat_value import TRLinkFiatValue - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkFiatValue from a JSON string -tr_link_fiat_value_instance = TRLinkFiatValue.from_json(json) -# print the JSON string representation of the object -print(TRLinkFiatValue.to_json()) - -# convert the object into a dict -tr_link_fiat_value_dict = tr_link_fiat_value_instance.to_dict() -# create an instance of TRLinkFiatValue from a dict -tr_link_fiat_value_from_dict = TRLinkFiatValue.from_dict(tr_link_fiat_value_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtGaWF0VmFsdWUKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYW1vdW50KiogfCAqKnN0cioqIHwgRmlhdCBhbW91bnQgfCAKKipjdXJyZW5jeSoqIHwgKipzdHIqKiB8IEZpYXQgY3VycmVuY3kgY29kZSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19maWF0X3ZhbHVlIGltcG9ydCBUUkxpbmtGaWF0VmFsdWUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0ZpYXRWYWx1ZSBmcm9tIGEgSlNPTiBzdHJpbmcKdHJfbGlua19maWF0X3ZhbHVlX2luc3RhbmNlID0gVFJMaW5rRmlhdFZhbHVlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRSTGlua0ZpYXRWYWx1ZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX2ZpYXRfdmFsdWVfZGljdCA9IHRyX2xpbmtfZmlhdF92YWx1ZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rRmlhdFZhbHVlIGZyb20gYSBkaWN0CnRyX2xpbmtfZmlhdF92YWx1ZV9mcm9tX2RpY3QgPSBUUkxpbmtGaWF0VmFsdWUuZnJvbV9kaWN0KHRyX2xpbmtfZmlhdF92YWx1ZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkGeographicAddressRequest.md b/docs/TRLinkGeographicAddressRequest.md index 094e2bc9..e11ca410 100644 --- a/docs/TRLinkGeographicAddressRequest.md +++ b/docs/TRLinkGeographicAddressRequest.md @@ -1,39 +1 @@ -# TRLinkGeographicAddressRequest - -Geographic address following IVMS101 standard - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**address_line** | **List[str]** | Address lines (max 3, each up to 70 characters) | [optional] -**street_name** | **str** | Street name (required if buildingNumber is provided) | [optional] -**building_number** | **str** | Building number | [optional] -**floor** | **str** | Floor number | [optional] -**post_box** | **str** | Post box number | [optional] -**post_code** | **str** | Postal code (required if townName is provided) | [optional] -**town_name** | **str** | City or town name (required if postCode is provided) | [optional] -**district_name** | **str** | District name | [optional] -**country_sub_division** | **str** | State or province (validated against country) | [optional] -**country** | **str** | ISO 3166-1 alpha-2 country code (required if town, district, or sub-division provided) | [optional] - -## Example - -```python -from fireblocks.models.tr_link_geographic_address_request import TRLinkGeographicAddressRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkGeographicAddressRequest from a JSON string -tr_link_geographic_address_request_instance = TRLinkGeographicAddressRequest.from_json(json) -# print the JSON string representation of the object -print(TRLinkGeographicAddressRequest.to_json()) - -# convert the object into a dict -tr_link_geographic_address_request_dict = tr_link_geographic_address_request_instance.to_dict() -# create an instance of TRLinkGeographicAddressRequest from a dict -tr_link_geographic_address_request_from_dict = TRLinkGeographicAddressRequest.from_dict(tr_link_geographic_address_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtHZW9ncmFwaGljQWRkcmVzc1JlcXVlc3QKCkdlb2dyYXBoaWMgYWRkcmVzcyBmb2xsb3dpbmcgSVZNUzEwMSBzdGFuZGFyZAoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFkZHJlc3NfbGluZSoqIHwgKipMaXN0W3N0cl0qKiB8IEFkZHJlc3MgbGluZXMgKG1heCAzLCBlYWNoIHVwIHRvIDcwIGNoYXJhY3RlcnMpIHwgW29wdGlvbmFsXSAKKipzdHJlZXRfbmFtZSoqIHwgKipzdHIqKiB8IFN0cmVldCBuYW1lIChyZXF1aXJlZCBpZiBidWlsZGluZ051bWJlciBpcyBwcm92aWRlZCkgfCBbb3B0aW9uYWxdIAoqKmJ1aWxkaW5nX251bWJlcioqIHwgKipzdHIqKiB8IEJ1aWxkaW5nIG51bWJlciB8IFtvcHRpb25hbF0gCioqZmxvb3IqKiB8ICoqc3RyKiogfCBGbG9vciBudW1iZXIgfCBbb3B0aW9uYWxdIAoqKnBvc3RfYm94KiogfCAqKnN0cioqIHwgUG9zdCBib3ggbnVtYmVyIHwgW29wdGlvbmFsXSAKKipwb3N0X2NvZGUqKiB8ICoqc3RyKiogfCBQb3N0YWwgY29kZSAocmVxdWlyZWQgaWYgdG93bk5hbWUgaXMgcHJvdmlkZWQpIHwgW29wdGlvbmFsXSAKKip0b3duX25hbWUqKiB8ICoqc3RyKiogfCBDaXR5IG9yIHRvd24gbmFtZSAocmVxdWlyZWQgaWYgcG9zdENvZGUgaXMgcHJvdmlkZWQpIHwgW29wdGlvbmFsXSAKKipkaXN0cmljdF9uYW1lKiogfCAqKnN0cioqIHwgRGlzdHJpY3QgbmFtZSB8IFtvcHRpb25hbF0gCioqY291bnRyeV9zdWJfZGl2aXNpb24qKiB8ICoqc3RyKiogfCBTdGF0ZSBvciBwcm92aW5jZSAodmFsaWRhdGVkIGFnYWluc3QgY291bnRyeSkgfCBbb3B0aW9uYWxdIAoqKmNvdW50cnkqKiB8ICoqc3RyKiogfCBJU08gMzE2Ni0xIGFscGhhLTIgY291bnRyeSBjb2RlIChyZXF1aXJlZCBpZiB0b3duLCBkaXN0cmljdCwgb3Igc3ViLWRpdmlzaW9uIHByb3ZpZGVkKSB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2dlb2dyYXBoaWNfYWRkcmVzc19yZXF1ZXN0IGltcG9ydCBUUkxpbmtHZW9ncmFwaGljQWRkcmVzc1JlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0dlb2dyYXBoaWNBZGRyZXNzUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKdHJfbGlua19nZW9ncmFwaGljX2FkZHJlc3NfcmVxdWVzdF9pbnN0YW5jZSA9IFRSTGlua0dlb2dyYXBoaWNBZGRyZXNzUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtHZW9ncmFwaGljQWRkcmVzc1JlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua19nZW9ncmFwaGljX2FkZHJlc3NfcmVxdWVzdF9kaWN0ID0gdHJfbGlua19nZW9ncmFwaGljX2FkZHJlc3NfcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rR2VvZ3JhcGhpY0FkZHJlc3NSZXF1ZXN0IGZyb20gYSBkaWN0CnRyX2xpbmtfZ2VvZ3JhcGhpY19hZGRyZXNzX3JlcXVlc3RfZnJvbV9kaWN0ID0gVFJMaW5rR2VvZ3JhcGhpY0FkZHJlc3NSZXF1ZXN0LmZyb21fZGljdCh0cl9saW5rX2dlb2dyYXBoaWNfYWRkcmVzc19yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkGetSupportedAssetResponse.md b/docs/TRLinkGetSupportedAssetResponse.md index 437aace8..b16dcad9 100644 --- a/docs/TRLinkGetSupportedAssetResponse.md +++ b/docs/TRLinkGetSupportedAssetResponse.md @@ -1,34 +1 @@ -# TRLinkGetSupportedAssetResponse - -Response for getting a single supported asset by ID - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**fireblocks_asset** | [**TRLinkPublicAssetInfo**](TRLinkPublicAssetInfo.md) | | -**partner_response** | **Dict[str, object]** | Raw partner response data | -**partner_can_handle_any_asset** | **bool** | Whether partner can handle any asset (not just explicitly listed ones) | -**note** | **str** | Note about asset support capabilities | -**supported** | **bool** | Whether the asset is supported by the partner | - -## Example - -```python -from fireblocks.models.tr_link_get_supported_asset_response import TRLinkGetSupportedAssetResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkGetSupportedAssetResponse from a JSON string -tr_link_get_supported_asset_response_instance = TRLinkGetSupportedAssetResponse.from_json(json) -# print the JSON string representation of the object -print(TRLinkGetSupportedAssetResponse.to_json()) - -# convert the object into a dict -tr_link_get_supported_asset_response_dict = tr_link_get_supported_asset_response_instance.to_dict() -# create an instance of TRLinkGetSupportedAssetResponse from a dict -tr_link_get_supported_asset_response_from_dict = TRLinkGetSupportedAssetResponse.from_dict(tr_link_get_supported_asset_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtHZXRTdXBwb3J0ZWRBc3NldFJlc3BvbnNlCgpSZXNwb25zZSBmb3IgZ2V0dGluZyBhIHNpbmdsZSBzdXBwb3J0ZWQgYXNzZXQgYnkgSUQKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipmaXJlYmxvY2tzX2Fzc2V0KiogfCBbKipUUkxpbmtQdWJsaWNBc3NldEluZm8qKl0oVFJMaW5rUHVibGljQXNzZXRJbmZvLm1kKSB8ICB8IAoqKnBhcnRuZXJfcmVzcG9uc2UqKiB8ICoqRGljdFtzdHIsIG9iamVjdF0qKiB8IFJhdyBwYXJ0bmVyIHJlc3BvbnNlIGRhdGEgfCAKKipwYXJ0bmVyX2Nhbl9oYW5kbGVfYW55X2Fzc2V0KiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgcGFydG5lciBjYW4gaGFuZGxlIGFueSBhc3NldCAobm90IGp1c3QgZXhwbGljaXRseSBsaXN0ZWQgb25lcykgfCAKKipub3RlKiogfCAqKnN0cioqIHwgTm90ZSBhYm91dCBhc3NldCBzdXBwb3J0IGNhcGFiaWxpdGllcyB8IAoqKnN1cHBvcnRlZCoqIHwgKipib29sKiogfCBXaGV0aGVyIHRoZSBhc3NldCBpcyBzdXBwb3J0ZWQgYnkgdGhlIHBhcnRuZXIgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfZ2V0X3N1cHBvcnRlZF9hc3NldF9yZXNwb25zZSBpbXBvcnQgVFJMaW5rR2V0U3VwcG9ydGVkQXNzZXRSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rR2V0U3VwcG9ydGVkQXNzZXRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKdHJfbGlua19nZXRfc3VwcG9ydGVkX2Fzc2V0X3Jlc3BvbnNlX2luc3RhbmNlID0gVFJMaW5rR2V0U3VwcG9ydGVkQXNzZXRSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtHZXRTdXBwb3J0ZWRBc3NldFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyX2xpbmtfZ2V0X3N1cHBvcnRlZF9hc3NldF9yZXNwb25zZV9kaWN0ID0gdHJfbGlua19nZXRfc3VwcG9ydGVkX2Fzc2V0X3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtHZXRTdXBwb3J0ZWRBc3NldFJlc3BvbnNlIGZyb20gYSBkaWN0CnRyX2xpbmtfZ2V0X3N1cHBvcnRlZF9hc3NldF9yZXNwb25zZV9mcm9tX2RpY3QgPSBUUkxpbmtHZXRTdXBwb3J0ZWRBc3NldFJlc3BvbnNlLmZyb21fZGljdCh0cl9saW5rX2dldF9zdXBwb3J0ZWRfYXNzZXRfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkIvms.md b/docs/TRLinkIvms.md index 2d568bc3..ee3a050a 100644 --- a/docs/TRLinkIvms.md +++ b/docs/TRLinkIvms.md @@ -1,32 +1 @@ -# TRLinkIvms - -IVMS101 data structure containing encrypted PII - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**version** | **str** | IVMS version | -**data** | **str** | Encrypted IVMS101 data containing originator and beneficiary information | -**filled_fields** | **List[str]** | List of fields that are filled in the IVMS data | - -## Example - -```python -from fireblocks.models.tr_link_ivms import TRLinkIvms - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkIvms from a JSON string -tr_link_ivms_instance = TRLinkIvms.from_json(json) -# print the JSON string representation of the object -print(TRLinkIvms.to_json()) - -# convert the object into a dict -tr_link_ivms_dict = tr_link_ivms_instance.to_dict() -# create an instance of TRLinkIvms from a dict -tr_link_ivms_from_dict = TRLinkIvms.from_dict(tr_link_ivms_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtJdm1zCgpJVk1TMTAxIGRhdGEgc3RydWN0dXJlIGNvbnRhaW5pbmcgZW5jcnlwdGVkIFBJSQoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnZlcnNpb24qKiB8ICoqc3RyKiogfCBJVk1TIHZlcnNpb24gfCAKKipkYXRhKiogfCAqKnN0cioqIHwgRW5jcnlwdGVkIElWTVMxMDEgZGF0YSBjb250YWluaW5nIG9yaWdpbmF0b3IgYW5kIGJlbmVmaWNpYXJ5IGluZm9ybWF0aW9uIHwgCioqZmlsbGVkX2ZpZWxkcyoqIHwgKipMaXN0W3N0cl0qKiB8IExpc3Qgb2YgZmllbGRzIHRoYXQgYXJlIGZpbGxlZCBpbiB0aGUgSVZNUyBkYXRhIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2l2bXMgaW1wb3J0IFRSTGlua0l2bXMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0l2bXMgZnJvbSBhIEpTT04gc3RyaW5nCnRyX2xpbmtfaXZtc19pbnN0YW5jZSA9IFRSTGlua0l2bXMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVFJMaW5rSXZtcy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX2l2bXNfZGljdCA9IHRyX2xpbmtfaXZtc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rSXZtcyBmcm9tIGEgZGljdAp0cl9saW5rX2l2bXNfZnJvbV9kaWN0ID0gVFJMaW5rSXZtcy5mcm9tX2RpY3QodHJfbGlua19pdm1zX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkIvmsResponse.md b/docs/TRLinkIvmsResponse.md index e6e19c6d..c3cdc354 100644 --- a/docs/TRLinkIvmsResponse.md +++ b/docs/TRLinkIvmsResponse.md @@ -1,32 +1 @@ -# TRLinkIvmsResponse - -IVMS101 data in response format - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**version** | **str** | IVMS101 version | -**data** | **str** | Base64 encoded IVMS101 data containing originator and beneficiary information | -**filled_fields** | **List[str]** | List of fields that are filled in the IVMS101 data | - -## Example - -```python -from fireblocks.models.tr_link_ivms_response import TRLinkIvmsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkIvmsResponse from a JSON string -tr_link_ivms_response_instance = TRLinkIvmsResponse.from_json(json) -# print the JSON string representation of the object -print(TRLinkIvmsResponse.to_json()) - -# convert the object into a dict -tr_link_ivms_response_dict = tr_link_ivms_response_instance.to_dict() -# create an instance of TRLinkIvmsResponse from a dict -tr_link_ivms_response_from_dict = TRLinkIvmsResponse.from_dict(tr_link_ivms_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtJdm1zUmVzcG9uc2UKCklWTVMxMDEgZGF0YSBpbiByZXNwb25zZSBmb3JtYXQKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip2ZXJzaW9uKiogfCAqKnN0cioqIHwgSVZNUzEwMSB2ZXJzaW9uIHwgCioqZGF0YSoqIHwgKipzdHIqKiB8IEJhc2U2NCBlbmNvZGVkIElWTVMxMDEgZGF0YSBjb250YWluaW5nIG9yaWdpbmF0b3IgYW5kIGJlbmVmaWNpYXJ5IGluZm9ybWF0aW9uIHwgCioqZmlsbGVkX2ZpZWxkcyoqIHwgKipMaXN0W3N0cl0qKiB8IExpc3Qgb2YgZmllbGRzIHRoYXQgYXJlIGZpbGxlZCBpbiB0aGUgSVZNUzEwMSBkYXRhIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2l2bXNfcmVzcG9uc2UgaW1wb3J0IFRSTGlua0l2bXNSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rSXZtc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX2l2bXNfcmVzcG9uc2VfaW5zdGFuY2UgPSBUUkxpbmtJdm1zUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVFJMaW5rSXZtc1Jlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyX2xpbmtfaXZtc19yZXNwb25zZV9kaWN0ID0gdHJfbGlua19pdm1zX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtJdm1zUmVzcG9uc2UgZnJvbSBhIGRpY3QKdHJfbGlua19pdm1zX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFRSTGlua0l2bXNSZXNwb25zZS5mcm9tX2RpY3QodHJfbGlua19pdm1zX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkJwkPublicKey.md b/docs/TRLinkJwkPublicKey.md index addaf233..8efaa5b7 100644 --- a/docs/TRLinkJwkPublicKey.md +++ b/docs/TRLinkJwkPublicKey.md @@ -1,34 +1 @@ -# TRLinkJwkPublicKey - -JSON Web Key (JWK) format public key - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**kty** | **str** | Key type | -**e** | **str** | RSA public exponent | -**use** | **str** | Public key use (encryption) | -**kid** | **str** | Key ID | -**n** | **str** | RSA modulus | - -## Example - -```python -from fireblocks.models.tr_link_jwk_public_key import TRLinkJwkPublicKey - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkJwkPublicKey from a JSON string -tr_link_jwk_public_key_instance = TRLinkJwkPublicKey.from_json(json) -# print the JSON string representation of the object -print(TRLinkJwkPublicKey.to_json()) - -# convert the object into a dict -tr_link_jwk_public_key_dict = tr_link_jwk_public_key_instance.to_dict() -# create an instance of TRLinkJwkPublicKey from a dict -tr_link_jwk_public_key_from_dict = TRLinkJwkPublicKey.from_dict(tr_link_jwk_public_key_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtKd2tQdWJsaWNLZXkKCkpTT04gV2ViIEtleSAoSldLKSBmb3JtYXQgcHVibGljIGtleQoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmt0eSoqIHwgKipzdHIqKiB8IEtleSB0eXBlIHwgCioqZSoqIHwgKipzdHIqKiB8IFJTQSBwdWJsaWMgZXhwb25lbnQgfCAKKip1c2UqKiB8ICoqc3RyKiogfCBQdWJsaWMga2V5IHVzZSAoZW5jcnlwdGlvbikgfCAKKipraWQqKiB8ICoqc3RyKiogfCBLZXkgSUQgfCAKKipuKiogfCAqKnN0cioqIHwgUlNBIG1vZHVsdXMgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfandrX3B1YmxpY19rZXkgaW1wb3J0IFRSTGlua0p3a1B1YmxpY0tleQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rSndrUHVibGljS2V5IGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX2p3a19wdWJsaWNfa2V5X2luc3RhbmNlID0gVFJMaW5rSndrUHVibGljS2V5LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRSTGlua0p3a1B1YmxpY0tleS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX2p3a19wdWJsaWNfa2V5X2RpY3QgPSB0cl9saW5rX2p3a19wdWJsaWNfa2V5X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtKd2tQdWJsaWNLZXkgZnJvbSBhIGRpY3QKdHJfbGlua19qd2tfcHVibGljX2tleV9mcm9tX2RpY3QgPSBUUkxpbmtKd2tQdWJsaWNLZXkuZnJvbV9kaWN0KHRyX2xpbmtfandrX3B1YmxpY19rZXlfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkMissingTrmAction.md b/docs/TRLinkMissingTrmAction.md index 0e564fa8..7a51d0aa 100644 --- a/docs/TRLinkMissingTrmAction.md +++ b/docs/TRLinkMissingTrmAction.md @@ -1,17 +1 @@ -# TRLinkMissingTrmAction - -TRLink missing TRM action - -## Enum - -* `WAIT` (value: `'WAIT'`) - -* `REJECT` (value: `'REJECT'`) - -* `ACCEPT` (value: `'ACCEPT'`) - -* `INITIATE_TRM` (value: `'INITIATE_TRM'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtNaXNzaW5nVHJtQWN0aW9uCgpUUkxpbmsgbWlzc2luZyBUUk0gYWN0aW9uCgojIyBFbnVtCgoqIGBXQUlUYCAodmFsdWU6IGAnV0FJVCdgKQoKKiBgUkVKRUNUYCAodmFsdWU6IGAnUkVKRUNUJ2ApCgoqIGBBQ0NFUFRgICh2YWx1ZTogYCdBQ0NFUFQnYCkKCiogYElOSVRJQVRFX1RSTWAgKHZhbHVlOiBgJ0lOSVRJQVRFX1RSTSdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkMissingTrmAction2.md b/docs/TRLinkMissingTrmAction2.md index 5049913a..0ab10931 100644 --- a/docs/TRLinkMissingTrmAction2.md +++ b/docs/TRLinkMissingTrmAction2.md @@ -1,14 +1 @@ -# TRLinkMissingTrmAction2 - - -## Enum - -* `WAIT` (value: `'WAIT'`) - -* `REJECT` (value: `'REJECT'`) - -* `ACCEPT` (value: `'ACCEPT'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtNaXNzaW5nVHJtQWN0aW9uMgoKCiMjIEVudW0KCiogYFdBSVRgICh2YWx1ZTogYCdXQUlUJ2ApCgoqIGBSRUpFQ1RgICh2YWx1ZTogYCdSRUpFQ1QnYCkKCiogYEFDQ0VQVGAgKHZhbHVlOiBgJ0FDQ0VQVCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkMissingTrmActionEnum.md b/docs/TRLinkMissingTrmActionEnum.md index 4cc2db4b..6489e4f2 100644 --- a/docs/TRLinkMissingTrmActionEnum.md +++ b/docs/TRLinkMissingTrmActionEnum.md @@ -1,17 +1 @@ -# TRLinkMissingTrmActionEnum - -TRLink missing TRM action - -## Enum - -* `WAIT` (value: `'WAIT'`) - -* `REJECT` (value: `'REJECT'`) - -* `ACCEPT` (value: `'ACCEPT'`) - -* `INITIATE_TRM` (value: `'INITIATE_TRM'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtNaXNzaW5nVHJtQWN0aW9uRW51bQoKVFJMaW5rIG1pc3NpbmcgVFJNIGFjdGlvbgoKIyMgRW51bQoKKiBgV0FJVGAgKHZhbHVlOiBgJ1dBSVQnYCkKCiogYFJFSkVDVGAgKHZhbHVlOiBgJ1JFSkVDVCdgKQoKKiBgQUNDRVBUYCAodmFsdWU6IGAnQUNDRVBUJ2ApCgoqIGBJTklUSUFURV9UUk1gICh2YWx1ZTogYCdJTklUSUFURV9UUk0nYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkMissingTrmDecision.md b/docs/TRLinkMissingTrmDecision.md index 6a00646c..5d4a3451 100644 --- a/docs/TRLinkMissingTrmDecision.md +++ b/docs/TRLinkMissingTrmDecision.md @@ -1,52 +1 @@ -# TRLinkMissingTrmDecision - -Interface for reporting missing TRM screening decisions in ITRLinkResult - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**customer_id** | **str** | Reference to TrlinkCustomer.id | [optional] -**direction** | [**TransactionDirection**](TransactionDirection.md) | | [optional] -**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**source_address** | **str** | Source address | [optional] -**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**dest_address** | **str** | Destination address | [optional] -**source_id** | **str** | Source ID | [optional] -**dest_id** | **str** | Destination ID | [optional] -**asset** | **str** | Asset symbol | [optional] -**base_asset** | **str** | Base asset symbol | [optional] -**amount** | [**TRLinkAmount**](TRLinkAmount.md) | | [optional] -**network_protocol** | **str** | Network protocol | [optional] -**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional] -**description** | **str** | Rule description | [optional] -**is_default** | **bool** | Whether this is a default rule | [optional] [default to False] -**valid_before** | **float** | Unix timestamp when rule expires | [optional] -**valid_after** | **float** | Unix timestamp when rule becomes valid | [optional] -**action** | [**TRLinkMissingTrmAction**](TRLinkMissingTrmAction.md) | | -**source** | **str** | TRLink missing TRM source | -**timestamp** | **datetime** | Timestamp of the decision | [optional] -**reason** | **str** | Reason for the decision | [optional] - -## Example - -```python -from fireblocks.models.tr_link_missing_trm_decision import TRLinkMissingTrmDecision - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkMissingTrmDecision from a JSON string -tr_link_missing_trm_decision_instance = TRLinkMissingTrmDecision.from_json(json) -# print the JSON string representation of the object -print(TRLinkMissingTrmDecision.to_json()) - -# convert the object into a dict -tr_link_missing_trm_decision_dict = tr_link_missing_trm_decision_instance.to_dict() -# create an instance of TRLinkMissingTrmDecision from a dict -tr_link_missing_trm_decision_from_dict = TRLinkMissingTrmDecision.from_dict(tr_link_missing_trm_decision_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtNaXNzaW5nVHJtRGVjaXNpb24KCkludGVyZmFjZSBmb3IgcmVwb3J0aW5nIG1pc3NpbmcgVFJNIHNjcmVlbmluZyBkZWNpc2lvbnMgaW4gSVRSTGlua1Jlc3VsdAoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmN1c3RvbWVyX2lkKiogfCAqKnN0cioqIHwgUmVmZXJlbmNlIHRvIFRybGlua0N1c3RvbWVyLmlkIHwgW29wdGlvbmFsXSAKKipkaXJlY3Rpb24qKiB8IFsqKlRyYW5zYWN0aW9uRGlyZWN0aW9uKipdKFRyYW5zYWN0aW9uRGlyZWN0aW9uLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc291cmNlX3R5cGUqKiB8IFsqKlRyYW5zZmVyUGVlclR5cGVFbnVtKipdKFRyYW5zZmVyUGVlclR5cGVFbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc291cmNlX3N1Yl90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJTdWJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJTdWJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9hZGRyZXNzKiogfCAqKnN0cioqIHwgU291cmNlIGFkZHJlc3MgfCBbb3B0aW9uYWxdIAoqKmRlc3RfdHlwZSoqIHwgWyoqVHJhbnNmZXJQZWVyVHlwZUVudW0qKl0oVHJhbnNmZXJQZWVyVHlwZUVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipkZXN0X3N1Yl90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJTdWJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJTdWJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRlc3RfYWRkcmVzcyoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIGFkZHJlc3MgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9pZCoqIHwgKipzdHIqKiB8IFNvdXJjZSBJRCB8IFtvcHRpb25hbF0gCioqZGVzdF9pZCoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIElEIHwgW29wdGlvbmFsXSAKKiphc3NldCoqIHwgKipzdHIqKiB8IEFzc2V0IHN5bWJvbCB8IFtvcHRpb25hbF0gCioqYmFzZV9hc3NldCoqIHwgKipzdHIqKiB8IEJhc2UgYXNzZXQgc3ltYm9sIHwgW29wdGlvbmFsXSAKKiphbW91bnQqKiB8IFsqKlRSTGlua0Ftb3VudCoqXShUUkxpbmtBbW91bnQubWQpIHwgIHwgW29wdGlvbmFsXSAKKipuZXR3b3JrX3Byb3RvY29sKiogfCAqKnN0cioqIHwgTmV0d29yayBwcm90b2NvbCB8IFtvcHRpb25hbF0gCioqb3BlcmF0aW9uKiogfCBbKipUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0qKl0oVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZGVzY3JpcHRpb24qKiB8ICoqc3RyKiogfCBSdWxlIGRlc2NyaXB0aW9uIHwgW29wdGlvbmFsXSAKKippc19kZWZhdWx0KiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgdGhpcyBpcyBhIGRlZmF1bHQgcnVsZSB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gRmFsc2VdCioqdmFsaWRfYmVmb3JlKiogfCAqKmZsb2F0KiogfCBVbml4IHRpbWVzdGFtcCB3aGVuIHJ1bGUgZXhwaXJlcyB8IFtvcHRpb25hbF0gCioqdmFsaWRfYWZ0ZXIqKiB8ICoqZmxvYXQqKiB8IFVuaXggdGltZXN0YW1wIHdoZW4gcnVsZSBiZWNvbWVzIHZhbGlkIHwgW29wdGlvbmFsXSAKKiphY3Rpb24qKiB8IFsqKlRSTGlua01pc3NpbmdUcm1BY3Rpb24qKl0oVFJMaW5rTWlzc2luZ1RybUFjdGlvbi5tZCkgfCAgfCAKKipzb3VyY2UqKiB8ICoqc3RyKiogfCBUUkxpbmsgbWlzc2luZyBUUk0gc291cmNlIHwgCioqdGltZXN0YW1wKiogfCAqKmRhdGV0aW1lKiogfCBUaW1lc3RhbXAgb2YgdGhlIGRlY2lzaW9uIHwgW29wdGlvbmFsXSAKKipyZWFzb24qKiB8ICoqc3RyKiogfCBSZWFzb24gZm9yIHRoZSBkZWNpc2lvbiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX21pc3NpbmdfdHJtX2RlY2lzaW9uIGltcG9ydCBUUkxpbmtNaXNzaW5nVHJtRGVjaXNpb24KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua01pc3NpbmdUcm1EZWNpc2lvbiBmcm9tIGEgSlNPTiBzdHJpbmcKdHJfbGlua19taXNzaW5nX3RybV9kZWNpc2lvbl9pbnN0YW5jZSA9IFRSTGlua01pc3NpbmdUcm1EZWNpc2lvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtNaXNzaW5nVHJtRGVjaXNpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua19taXNzaW5nX3RybV9kZWNpc2lvbl9kaWN0ID0gdHJfbGlua19taXNzaW5nX3RybV9kZWNpc2lvbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uIGZyb20gYSBkaWN0CnRyX2xpbmtfbWlzc2luZ190cm1fZGVjaXNpb25fZnJvbV9kaWN0ID0gVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uLmZyb21fZGljdCh0cl9saW5rX21pc3NpbmdfdHJtX2RlY2lzaW9uX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkMissingTrmRule.md b/docs/TRLinkMissingTrmRule.md index ee79847a..e0e36bc4 100644 --- a/docs/TRLinkMissingTrmRule.md +++ b/docs/TRLinkMissingTrmRule.md @@ -1,49 +1 @@ -# TRLinkMissingTrmRule - -TRLink missing TRM rule definition - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**customer_id** | **str** | Reference to TrlinkCustomer.id | [optional] -**direction** | [**TransactionDirection**](TransactionDirection.md) | | [optional] -**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**source_address** | **str** | Source address | [optional] -**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**dest_address** | **str** | Destination address | [optional] -**source_id** | **str** | Source ID | [optional] -**dest_id** | **str** | Destination ID | [optional] -**asset** | **str** | Asset symbol | [optional] -**base_asset** | **str** | Base asset symbol | [optional] -**amount** | [**TRLinkAmount**](TRLinkAmount.md) | | [optional] -**network_protocol** | **str** | Network protocol | [optional] -**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional] -**description** | **str** | Rule description | [optional] -**is_default** | **bool** | Whether this is a default rule | [optional] [default to False] -**valid_before** | **float** | Unix timestamp when rule expires | [optional] -**valid_after** | **float** | Unix timestamp when rule becomes valid | [optional] -**action** | [**TRLinkMissingTrmAction**](TRLinkMissingTrmAction.md) | | - -## Example - -```python -from fireblocks.models.tr_link_missing_trm_rule import TRLinkMissingTrmRule - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkMissingTrmRule from a JSON string -tr_link_missing_trm_rule_instance = TRLinkMissingTrmRule.from_json(json) -# print the JSON string representation of the object -print(TRLinkMissingTrmRule.to_json()) - -# convert the object into a dict -tr_link_missing_trm_rule_dict = tr_link_missing_trm_rule_instance.to_dict() -# create an instance of TRLinkMissingTrmRule from a dict -tr_link_missing_trm_rule_from_dict = TRLinkMissingTrmRule.from_dict(tr_link_missing_trm_rule_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtNaXNzaW5nVHJtUnVsZQoKVFJMaW5rIG1pc3NpbmcgVFJNIHJ1bGUgZGVmaW5pdGlvbgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmN1c3RvbWVyX2lkKiogfCAqKnN0cioqIHwgUmVmZXJlbmNlIHRvIFRybGlua0N1c3RvbWVyLmlkIHwgW29wdGlvbmFsXSAKKipkaXJlY3Rpb24qKiB8IFsqKlRyYW5zYWN0aW9uRGlyZWN0aW9uKipdKFRyYW5zYWN0aW9uRGlyZWN0aW9uLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc291cmNlX3R5cGUqKiB8IFsqKlRyYW5zZmVyUGVlclR5cGVFbnVtKipdKFRyYW5zZmVyUGVlclR5cGVFbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc291cmNlX3N1Yl90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJTdWJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJTdWJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9hZGRyZXNzKiogfCAqKnN0cioqIHwgU291cmNlIGFkZHJlc3MgfCBbb3B0aW9uYWxdIAoqKmRlc3RfdHlwZSoqIHwgWyoqVHJhbnNmZXJQZWVyVHlwZUVudW0qKl0oVHJhbnNmZXJQZWVyVHlwZUVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipkZXN0X3N1Yl90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJTdWJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJTdWJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRlc3RfYWRkcmVzcyoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIGFkZHJlc3MgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9pZCoqIHwgKipzdHIqKiB8IFNvdXJjZSBJRCB8IFtvcHRpb25hbF0gCioqZGVzdF9pZCoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIElEIHwgW29wdGlvbmFsXSAKKiphc3NldCoqIHwgKipzdHIqKiB8IEFzc2V0IHN5bWJvbCB8IFtvcHRpb25hbF0gCioqYmFzZV9hc3NldCoqIHwgKipzdHIqKiB8IEJhc2UgYXNzZXQgc3ltYm9sIHwgW29wdGlvbmFsXSAKKiphbW91bnQqKiB8IFsqKlRSTGlua0Ftb3VudCoqXShUUkxpbmtBbW91bnQubWQpIHwgIHwgW29wdGlvbmFsXSAKKipuZXR3b3JrX3Byb3RvY29sKiogfCAqKnN0cioqIHwgTmV0d29yayBwcm90b2NvbCB8IFtvcHRpb25hbF0gCioqb3BlcmF0aW9uKiogfCBbKipUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0qKl0oVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZGVzY3JpcHRpb24qKiB8ICoqc3RyKiogfCBSdWxlIGRlc2NyaXB0aW9uIHwgW29wdGlvbmFsXSAKKippc19kZWZhdWx0KiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgdGhpcyBpcyBhIGRlZmF1bHQgcnVsZSB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gRmFsc2VdCioqdmFsaWRfYmVmb3JlKiogfCAqKmZsb2F0KiogfCBVbml4IHRpbWVzdGFtcCB3aGVuIHJ1bGUgZXhwaXJlcyB8IFtvcHRpb25hbF0gCioqdmFsaWRfYWZ0ZXIqKiB8ICoqZmxvYXQqKiB8IFVuaXggdGltZXN0YW1wIHdoZW4gcnVsZSBiZWNvbWVzIHZhbGlkIHwgW29wdGlvbmFsXSAKKiphY3Rpb24qKiB8IFsqKlRSTGlua01pc3NpbmdUcm1BY3Rpb24qKl0oVFJMaW5rTWlzc2luZ1RybUFjdGlvbi5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfbWlzc2luZ190cm1fcnVsZSBpbXBvcnQgVFJMaW5rTWlzc2luZ1RybVJ1bGUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua01pc3NpbmdUcm1SdWxlIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX21pc3NpbmdfdHJtX3J1bGVfaW5zdGFuY2UgPSBUUkxpbmtNaXNzaW5nVHJtUnVsZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtNaXNzaW5nVHJtUnVsZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX21pc3NpbmdfdHJtX3J1bGVfZGljdCA9IHRyX2xpbmtfbWlzc2luZ190cm1fcnVsZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rTWlzc2luZ1RybVJ1bGUgZnJvbSBhIGRpY3QKdHJfbGlua19taXNzaW5nX3RybV9ydWxlX2Zyb21fZGljdCA9IFRSTGlua01pc3NpbmdUcm1SdWxlLmZyb21fZGljdCh0cl9saW5rX21pc3NpbmdfdHJtX3J1bGVfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkMissingTrmRule2.md b/docs/TRLinkMissingTrmRule2.md index 53693fe3..0585218b 100644 --- a/docs/TRLinkMissingTrmRule2.md +++ b/docs/TRLinkMissingTrmRule2.md @@ -1,49 +1 @@ -# TRLinkMissingTrmRule2 - -Rule for handling transactions when TRM screening data is missing or unavailable - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**customer_id** | **str** | Customer identifier | [optional] -**direction** | [**TRLinkTransactionDirection**](TRLinkTransactionDirection.md) | | [optional] -**source_type** | **str** | Source entity type | [optional] -**source_sub_type** | **str** | Source entity subtype | [optional] -**source_address** | **str** | Source blockchain address | [optional] -**dest_type** | **str** | Destination entity type | [optional] -**dest_sub_type** | **str** | Destination entity subtype | [optional] -**dest_address** | **str** | Destination blockchain address | [optional] -**source_id** | **str** | Source identifier | [optional] -**dest_id** | **str** | Destination identifier | [optional] -**asset** | **str** | Asset or cryptocurrency type | [optional] -**base_asset** | **str** | Base asset for derivatives | [optional] -**amount** | [**TRLinkAmount2**](TRLinkAmount2.md) | | [optional] -**network_protocol** | **str** | Network protocol identifier | [optional] -**operation** | **str** | Operation type | [optional] -**description** | **str** | Rule description | [optional] -**is_default** | **bool** | Whether this is a default rule | [optional] -**valid_before** | **int** | Rule is valid before this timestamp (milliseconds) | [optional] -**valid_after** | **int** | Rule is valid after this timestamp (milliseconds) | [optional] -**action** | [**TRLinkMissingTrmAction2**](TRLinkMissingTrmAction2.md) | | - -## Example - -```python -from fireblocks.models.tr_link_missing_trm_rule2 import TRLinkMissingTrmRule2 - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkMissingTrmRule2 from a JSON string -tr_link_missing_trm_rule2_instance = TRLinkMissingTrmRule2.from_json(json) -# print the JSON string representation of the object -print(TRLinkMissingTrmRule2.to_json()) - -# convert the object into a dict -tr_link_missing_trm_rule2_dict = tr_link_missing_trm_rule2_instance.to_dict() -# create an instance of TRLinkMissingTrmRule2 from a dict -tr_link_missing_trm_rule2_from_dict = TRLinkMissingTrmRule2.from_dict(tr_link_missing_trm_rule2_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtNaXNzaW5nVHJtUnVsZTIKClJ1bGUgZm9yIGhhbmRsaW5nIHRyYW5zYWN0aW9ucyB3aGVuIFRSTSBzY3JlZW5pbmcgZGF0YSBpcyBtaXNzaW5nIG9yIHVuYXZhaWxhYmxlCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqY3VzdG9tZXJfaWQqKiB8ICoqc3RyKiogfCBDdXN0b21lciBpZGVudGlmaWVyIHwgW29wdGlvbmFsXSAKKipkaXJlY3Rpb24qKiB8IFsqKlRSTGlua1RyYW5zYWN0aW9uRGlyZWN0aW9uKipdKFRSTGlua1RyYW5zYWN0aW9uRGlyZWN0aW9uLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc291cmNlX3R5cGUqKiB8ICoqc3RyKiogfCBTb3VyY2UgZW50aXR5IHR5cGUgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9zdWJfdHlwZSoqIHwgKipzdHIqKiB8IFNvdXJjZSBlbnRpdHkgc3VidHlwZSB8IFtvcHRpb25hbF0gCioqc291cmNlX2FkZHJlc3MqKiB8ICoqc3RyKiogfCBTb3VyY2UgYmxvY2tjaGFpbiBhZGRyZXNzIHwgW29wdGlvbmFsXSAKKipkZXN0X3R5cGUqKiB8ICoqc3RyKiogfCBEZXN0aW5hdGlvbiBlbnRpdHkgdHlwZSB8IFtvcHRpb25hbF0gCioqZGVzdF9zdWJfdHlwZSoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIGVudGl0eSBzdWJ0eXBlIHwgW29wdGlvbmFsXSAKKipkZXN0X2FkZHJlc3MqKiB8ICoqc3RyKiogfCBEZXN0aW5hdGlvbiBibG9ja2NoYWluIGFkZHJlc3MgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9pZCoqIHwgKipzdHIqKiB8IFNvdXJjZSBpZGVudGlmaWVyIHwgW29wdGlvbmFsXSAKKipkZXN0X2lkKiogfCAqKnN0cioqIHwgRGVzdGluYXRpb24gaWRlbnRpZmllciB8IFtvcHRpb25hbF0gCioqYXNzZXQqKiB8ICoqc3RyKiogfCBBc3NldCBvciBjcnlwdG9jdXJyZW5jeSB0eXBlIHwgW29wdGlvbmFsXSAKKipiYXNlX2Fzc2V0KiogfCAqKnN0cioqIHwgQmFzZSBhc3NldCBmb3IgZGVyaXZhdGl2ZXMgfCBbb3B0aW9uYWxdIAoqKmFtb3VudCoqIHwgWyoqVFJMaW5rQW1vdW50MioqXShUUkxpbmtBbW91bnQyLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqbmV0d29ya19wcm90b2NvbCoqIHwgKipzdHIqKiB8IE5ldHdvcmsgcHJvdG9jb2wgaWRlbnRpZmllciB8IFtvcHRpb25hbF0gCioqb3BlcmF0aW9uKiogfCAqKnN0cioqIHwgT3BlcmF0aW9uIHR5cGUgfCBbb3B0aW9uYWxdIAoqKmRlc2NyaXB0aW9uKiogfCAqKnN0cioqIHwgUnVsZSBkZXNjcmlwdGlvbiB8IFtvcHRpb25hbF0gCioqaXNfZGVmYXVsdCoqIHwgKipib29sKiogfCBXaGV0aGVyIHRoaXMgaXMgYSBkZWZhdWx0IHJ1bGUgfCBbb3B0aW9uYWxdIAoqKnZhbGlkX2JlZm9yZSoqIHwgKippbnQqKiB8IFJ1bGUgaXMgdmFsaWQgYmVmb3JlIHRoaXMgdGltZXN0YW1wIChtaWxsaXNlY29uZHMpIHwgW29wdGlvbmFsXSAKKip2YWxpZF9hZnRlcioqIHwgKippbnQqKiB8IFJ1bGUgaXMgdmFsaWQgYWZ0ZXIgdGhpcyB0aW1lc3RhbXAgKG1pbGxpc2Vjb25kcykgfCBbb3B0aW9uYWxdIAoqKmFjdGlvbioqIHwgWyoqVFJMaW5rTWlzc2luZ1RybUFjdGlvbjIqKl0oVFJMaW5rTWlzc2luZ1RybUFjdGlvbjIubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX21pc3NpbmdfdHJtX3J1bGUyIGltcG9ydCBUUkxpbmtNaXNzaW5nVHJtUnVsZTIKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua01pc3NpbmdUcm1SdWxlMiBmcm9tIGEgSlNPTiBzdHJpbmcKdHJfbGlua19taXNzaW5nX3RybV9ydWxlMl9pbnN0YW5jZSA9IFRSTGlua01pc3NpbmdUcm1SdWxlMi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtNaXNzaW5nVHJtUnVsZTIudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua19taXNzaW5nX3RybV9ydWxlMl9kaWN0ID0gdHJfbGlua19taXNzaW5nX3RybV9ydWxlMl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rTWlzc2luZ1RybVJ1bGUyIGZyb20gYSBkaWN0CnRyX2xpbmtfbWlzc2luZ190cm1fcnVsZTJfZnJvbV9kaWN0ID0gVFJMaW5rTWlzc2luZ1RybVJ1bGUyLmZyb21fZGljdCh0cl9saW5rX21pc3NpbmdfdHJtX3J1bGUyX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkOneTimeAddress.md b/docs/TRLinkOneTimeAddress.md index 26350872..82bf08f3 100644 --- a/docs/TRLinkOneTimeAddress.md +++ b/docs/TRLinkOneTimeAddress.md @@ -1,30 +1 @@ -# TRLinkOneTimeAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**address** | **str** | Blockchain address | -**tag** | **str** | Destination tag (memo, memo ID, etc.) | [optional] - -## Example - -```python -from fireblocks.models.tr_link_one_time_address import TRLinkOneTimeAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkOneTimeAddress from a JSON string -tr_link_one_time_address_instance = TRLinkOneTimeAddress.from_json(json) -# print the JSON string representation of the object -print(TRLinkOneTimeAddress.to_json()) - -# convert the object into a dict -tr_link_one_time_address_dict = tr_link_one_time_address_instance.to_dict() -# create an instance of TRLinkOneTimeAddress from a dict -tr_link_one_time_address_from_dict = TRLinkOneTimeAddress.from_dict(tr_link_one_time_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtPbmVUaW1lQWRkcmVzcwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphZGRyZXNzKiogfCAqKnN0cioqIHwgQmxvY2tjaGFpbiBhZGRyZXNzIHwgCioqdGFnKiogfCAqKnN0cioqIHwgRGVzdGluYXRpb24gdGFnIChtZW1vLCBtZW1vIElELCBldGMuKSB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX29uZV90aW1lX2FkZHJlc3MgaW1wb3J0IFRSTGlua09uZVRpbWVBZGRyZXNzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtPbmVUaW1lQWRkcmVzcyBmcm9tIGEgSlNPTiBzdHJpbmcKdHJfbGlua19vbmVfdGltZV9hZGRyZXNzX2luc3RhbmNlID0gVFJMaW5rT25lVGltZUFkZHJlc3MuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVFJMaW5rT25lVGltZUFkZHJlc3MudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua19vbmVfdGltZV9hZGRyZXNzX2RpY3QgPSB0cl9saW5rX29uZV90aW1lX2FkZHJlc3NfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua09uZVRpbWVBZGRyZXNzIGZyb20gYSBkaWN0CnRyX2xpbmtfb25lX3RpbWVfYWRkcmVzc19mcm9tX2RpY3QgPSBUUkxpbmtPbmVUaW1lQWRkcmVzcy5mcm9tX2RpY3QodHJfbGlua19vbmVfdGltZV9hZGRyZXNzX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkPaging.md b/docs/TRLinkPaging.md index d5333617..cc1f5ad0 100644 --- a/docs/TRLinkPaging.md +++ b/docs/TRLinkPaging.md @@ -1,29 +1 @@ -# TRLinkPaging - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**next** | **str** | Cursor for next page | - -## Example - -```python -from fireblocks.models.tr_link_paging import TRLinkPaging - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkPaging from a JSON string -tr_link_paging_instance = TRLinkPaging.from_json(json) -# print the JSON string representation of the object -print(TRLinkPaging.to_json()) - -# convert the object into a dict -tr_link_paging_dict = tr_link_paging_instance.to_dict() -# create an instance of TRLinkPaging from a dict -tr_link_paging_from_dict = TRLinkPaging.from_dict(tr_link_paging_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtQYWdpbmcKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbmV4dCoqIHwgKipzdHIqKiB8IEN1cnNvciBmb3IgbmV4dCBwYWdlIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3BhZ2luZyBpbXBvcnQgVFJMaW5rUGFnaW5nCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtQYWdpbmcgZnJvbSBhIEpTT04gc3RyaW5nCnRyX2xpbmtfcGFnaW5nX2luc3RhbmNlID0gVFJMaW5rUGFnaW5nLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRSTGlua1BhZ2luZy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX3BhZ2luZ19kaWN0ID0gdHJfbGlua19wYWdpbmdfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1BhZ2luZyBmcm9tIGEgZGljdAp0cl9saW5rX3BhZ2luZ19mcm9tX2RpY3QgPSBUUkxpbmtQYWdpbmcuZnJvbV9kaWN0KHRyX2xpbmtfcGFnaW5nX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkPartnerResponse.md b/docs/TRLinkPartnerResponse.md index 8cb9ecdf..2170c66b 100644 --- a/docs/TRLinkPartnerResponse.md +++ b/docs/TRLinkPartnerResponse.md @@ -1,35 +1 @@ -# TRLinkPartnerResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | Partner unique identifier | -**ident** | **str** | Partner identification code | -**name** | **str** | Partner display name | -**description** | **str** | Partner description | [optional] -**base_url** | **str** | Partner API base URL | -**active** | **bool** | Whether the partner is active | -**is_test** | **bool** | Whether this is a test/sandbox partner | - -## Example - -```python -from fireblocks.models.tr_link_partner_response import TRLinkPartnerResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkPartnerResponse from a JSON string -tr_link_partner_response_instance = TRLinkPartnerResponse.from_json(json) -# print the JSON string representation of the object -print(TRLinkPartnerResponse.to_json()) - -# convert the object into a dict -tr_link_partner_response_dict = tr_link_partner_response_instance.to_dict() -# create an instance of TRLinkPartnerResponse from a dict -tr_link_partner_response_from_dict = TRLinkPartnerResponse.from_dict(tr_link_partner_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtQYXJ0bmVyUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBQYXJ0bmVyIHVuaXF1ZSBpZGVudGlmaWVyIHwgCioqaWRlbnQqKiB8ICoqc3RyKiogfCBQYXJ0bmVyIGlkZW50aWZpY2F0aW9uIGNvZGUgfCAKKipuYW1lKiogfCAqKnN0cioqIHwgUGFydG5lciBkaXNwbGF5IG5hbWUgfCAKKipkZXNjcmlwdGlvbioqIHwgKipzdHIqKiB8IFBhcnRuZXIgZGVzY3JpcHRpb24gfCBbb3B0aW9uYWxdIAoqKmJhc2VfdXJsKiogfCAqKnN0cioqIHwgUGFydG5lciBBUEkgYmFzZSBVUkwgfCAKKiphY3RpdmUqKiB8ICoqYm9vbCoqIHwgV2hldGhlciB0aGUgcGFydG5lciBpcyBhY3RpdmUgfCAKKippc190ZXN0KiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgdGhpcyBpcyBhIHRlc3Qvc2FuZGJveCBwYXJ0bmVyIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3BhcnRuZXJfcmVzcG9uc2UgaW1wb3J0IFRSTGlua1BhcnRuZXJSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUGFydG5lclJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX3BhcnRuZXJfcmVzcG9uc2VfaW5zdGFuY2UgPSBUUkxpbmtQYXJ0bmVyUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVFJMaW5rUGFydG5lclJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyX2xpbmtfcGFydG5lcl9yZXNwb25zZV9kaWN0ID0gdHJfbGlua19wYXJ0bmVyX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtQYXJ0bmVyUmVzcG9uc2UgZnJvbSBhIGRpY3QKdHJfbGlua19wYXJ0bmVyX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFRSTGlua1BhcnRuZXJSZXNwb25zZS5mcm9tX2RpY3QodHJfbGlua19wYXJ0bmVyX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkPolicyResponse.md b/docs/TRLinkPolicyResponse.md index 197ad0a2..8efcfdf6 100644 --- a/docs/TRLinkPolicyResponse.md +++ b/docs/TRLinkPolicyResponse.md @@ -1,32 +1 @@ -# TRLinkPolicyResponse - -TRLink policy response containing pre-screening, post-screening, and missing TRM rules - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**pre_screening_rules** | [**List[TRLinkPreScreeningRule2]**](TRLinkPreScreeningRule2.md) | Pre-screening rules that determine whether transactions should be screened | -**post_screening_rules** | [**List[TRLinkPostScreeningRule2]**](TRLinkPostScreeningRule2.md) | Post-screening rules that determine actions based on screening results | -**missing_trm_rules** | [**List[TRLinkMissingTrmRule2]**](TRLinkMissingTrmRule2.md) | Rules for handling transactions when TRM screening data is unavailable | - -## Example - -```python -from fireblocks.models.tr_link_policy_response import TRLinkPolicyResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkPolicyResponse from a JSON string -tr_link_policy_response_instance = TRLinkPolicyResponse.from_json(json) -# print the JSON string representation of the object -print(TRLinkPolicyResponse.to_json()) - -# convert the object into a dict -tr_link_policy_response_dict = tr_link_policy_response_instance.to_dict() -# create an instance of TRLinkPolicyResponse from a dict -tr_link_policy_response_from_dict = TRLinkPolicyResponse.from_dict(tr_link_policy_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtQb2xpY3lSZXNwb25zZQoKVFJMaW5rIHBvbGljeSByZXNwb25zZSBjb250YWluaW5nIHByZS1zY3JlZW5pbmcsIHBvc3Qtc2NyZWVuaW5nLCBhbmQgbWlzc2luZyBUUk0gcnVsZXMKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipwcmVfc2NyZWVuaW5nX3J1bGVzKiogfCBbKipMaXN0W1RSTGlua1ByZVNjcmVlbmluZ1J1bGUyXSoqXShUUkxpbmtQcmVTY3JlZW5pbmdSdWxlMi5tZCkgfCBQcmUtc2NyZWVuaW5nIHJ1bGVzIHRoYXQgZGV0ZXJtaW5lIHdoZXRoZXIgdHJhbnNhY3Rpb25zIHNob3VsZCBiZSBzY3JlZW5lZCB8IAoqKnBvc3Rfc2NyZWVuaW5nX3J1bGVzKiogfCBbKipMaXN0W1RSTGlua1Bvc3RTY3JlZW5pbmdSdWxlMl0qKl0oVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUyLm1kKSB8IFBvc3Qtc2NyZWVuaW5nIHJ1bGVzIHRoYXQgZGV0ZXJtaW5lIGFjdGlvbnMgYmFzZWQgb24gc2NyZWVuaW5nIHJlc3VsdHMgfCAKKiptaXNzaW5nX3RybV9ydWxlcyoqIHwgWyoqTGlzdFtUUkxpbmtNaXNzaW5nVHJtUnVsZTJdKipdKFRSTGlua01pc3NpbmdUcm1SdWxlMi5tZCkgfCBSdWxlcyBmb3IgaGFuZGxpbmcgdHJhbnNhY3Rpb25zIHdoZW4gVFJNIHNjcmVlbmluZyBkYXRhIGlzIHVuYXZhaWxhYmxlIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3BvbGljeV9yZXNwb25zZSBpbXBvcnQgVFJMaW5rUG9saWN5UmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1BvbGljeVJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX3BvbGljeV9yZXNwb25zZV9pbnN0YW5jZSA9IFRSTGlua1BvbGljeVJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRSTGlua1BvbGljeVJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyX2xpbmtfcG9saWN5X3Jlc3BvbnNlX2RpY3QgPSB0cl9saW5rX3BvbGljeV9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUG9saWN5UmVzcG9uc2UgZnJvbSBhIGRpY3QKdHJfbGlua19wb2xpY3lfcmVzcG9uc2VfZnJvbV9kaWN0ID0gVFJMaW5rUG9saWN5UmVzcG9uc2UuZnJvbV9kaWN0KHRyX2xpbmtfcG9saWN5X3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkPostScreeningAction.md b/docs/TRLinkPostScreeningAction.md index d5c60b4c..dff0305b 100644 --- a/docs/TRLinkPostScreeningAction.md +++ b/docs/TRLinkPostScreeningAction.md @@ -1,16 +1 @@ -# TRLinkPostScreeningAction - - -## Enum - -* `ACCEPT` (value: `'ACCEPT'`) - -* `ALERT` (value: `'ALERT'`) - -* `REJECT` (value: `'REJECT'`) - -* `WAIT` (value: `'WAIT'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtQb3N0U2NyZWVuaW5nQWN0aW9uCgoKIyMgRW51bQoKKiBgQUNDRVBUYCAodmFsdWU6IGAnQUNDRVBUJ2ApCgoqIGBBTEVSVGAgKHZhbHVlOiBgJ0FMRVJUJ2ApCgoqIGBSRUpFQ1RgICh2YWx1ZTogYCdSRUpFQ1QnYCkKCiogYFdBSVRgICh2YWx1ZTogYCdXQUlUJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkPostScreeningRule.md b/docs/TRLinkPostScreeningRule.md index 055e5b46..ff8b4fe8 100644 --- a/docs/TRLinkPostScreeningRule.md +++ b/docs/TRLinkPostScreeningRule.md @@ -1,51 +1 @@ -# TRLinkPostScreeningRule - -TRLink post-screening rule definition - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**customer_id** | **str** | Reference to TrlinkCustomer.id | [optional] -**direction** | [**TransactionDirection**](TransactionDirection.md) | | [optional] -**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**source_address** | **str** | Source address | [optional] -**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**dest_address** | **str** | Destination address | [optional] -**source_id** | **str** | Source ID | [optional] -**dest_id** | **str** | Destination ID | [optional] -**asset** | **str** | Asset symbol | [optional] -**base_asset** | **str** | Base asset symbol | [optional] -**amount** | [**TRLinkAmount**](TRLinkAmount.md) | | [optional] -**network_protocol** | **str** | Network protocol | [optional] -**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional] -**description** | **str** | Rule description | [optional] -**is_default** | **bool** | Whether this is a default rule | [optional] [default to False] -**provider_ident** | **str** | Provider identifier | [optional] -**trm_status** | [**TRLinkTrmScreeningStatus**](TRLinkTrmScreeningStatus.md) | | [optional] -**valid_before** | **float** | Unix timestamp when rule expires | [optional] -**valid_after** | **float** | Unix timestamp when rule becomes valid | [optional] -**action** | [**TRLinkVerdict**](TRLinkVerdict.md) | | - -## Example - -```python -from fireblocks.models.tr_link_post_screening_rule import TRLinkPostScreeningRule - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkPostScreeningRule from a JSON string -tr_link_post_screening_rule_instance = TRLinkPostScreeningRule.from_json(json) -# print the JSON string representation of the object -print(TRLinkPostScreeningRule.to_json()) - -# convert the object into a dict -tr_link_post_screening_rule_dict = tr_link_post_screening_rule_instance.to_dict() -# create an instance of TRLinkPostScreeningRule from a dict -tr_link_post_screening_rule_from_dict = TRLinkPostScreeningRule.from_dict(tr_link_post_screening_rule_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZQoKVFJMaW5rIHBvc3Qtc2NyZWVuaW5nIHJ1bGUgZGVmaW5pdGlvbgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmN1c3RvbWVyX2lkKiogfCAqKnN0cioqIHwgUmVmZXJlbmNlIHRvIFRybGlua0N1c3RvbWVyLmlkIHwgW29wdGlvbmFsXSAKKipkaXJlY3Rpb24qKiB8IFsqKlRyYW5zYWN0aW9uRGlyZWN0aW9uKipdKFRyYW5zYWN0aW9uRGlyZWN0aW9uLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc291cmNlX3R5cGUqKiB8IFsqKlRyYW5zZmVyUGVlclR5cGVFbnVtKipdKFRyYW5zZmVyUGVlclR5cGVFbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc291cmNlX3N1Yl90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJTdWJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJTdWJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9hZGRyZXNzKiogfCAqKnN0cioqIHwgU291cmNlIGFkZHJlc3MgfCBbb3B0aW9uYWxdIAoqKmRlc3RfdHlwZSoqIHwgWyoqVHJhbnNmZXJQZWVyVHlwZUVudW0qKl0oVHJhbnNmZXJQZWVyVHlwZUVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipkZXN0X3N1Yl90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJTdWJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJTdWJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRlc3RfYWRkcmVzcyoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIGFkZHJlc3MgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9pZCoqIHwgKipzdHIqKiB8IFNvdXJjZSBJRCB8IFtvcHRpb25hbF0gCioqZGVzdF9pZCoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIElEIHwgW29wdGlvbmFsXSAKKiphc3NldCoqIHwgKipzdHIqKiB8IEFzc2V0IHN5bWJvbCB8IFtvcHRpb25hbF0gCioqYmFzZV9hc3NldCoqIHwgKipzdHIqKiB8IEJhc2UgYXNzZXQgc3ltYm9sIHwgW29wdGlvbmFsXSAKKiphbW91bnQqKiB8IFsqKlRSTGlua0Ftb3VudCoqXShUUkxpbmtBbW91bnQubWQpIHwgIHwgW29wdGlvbmFsXSAKKipuZXR3b3JrX3Byb3RvY29sKiogfCAqKnN0cioqIHwgTmV0d29yayBwcm90b2NvbCB8IFtvcHRpb25hbF0gCioqb3BlcmF0aW9uKiogfCBbKipUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0qKl0oVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZGVzY3JpcHRpb24qKiB8ICoqc3RyKiogfCBSdWxlIGRlc2NyaXB0aW9uIHwgW29wdGlvbmFsXSAKKippc19kZWZhdWx0KiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgdGhpcyBpcyBhIGRlZmF1bHQgcnVsZSB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gRmFsc2VdCioqcHJvdmlkZXJfaWRlbnQqKiB8ICoqc3RyKiogfCBQcm92aWRlciBpZGVudGlmaWVyIHwgW29wdGlvbmFsXSAKKip0cm1fc3RhdHVzKiogfCBbKipUUkxpbmtUcm1TY3JlZW5pbmdTdGF0dXMqKl0oVFJMaW5rVHJtU2NyZWVuaW5nU3RhdHVzLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqdmFsaWRfYmVmb3JlKiogfCAqKmZsb2F0KiogfCBVbml4IHRpbWVzdGFtcCB3aGVuIHJ1bGUgZXhwaXJlcyB8IFtvcHRpb25hbF0gCioqdmFsaWRfYWZ0ZXIqKiB8ICoqZmxvYXQqKiB8IFVuaXggdGltZXN0YW1wIHdoZW4gcnVsZSBiZWNvbWVzIHZhbGlkIHwgW29wdGlvbmFsXSAKKiphY3Rpb24qKiB8IFsqKlRSTGlua1ZlcmRpY3QqKl0oVFJMaW5rVmVyZGljdC5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcG9zdF9zY3JlZW5pbmdfcnVsZSBpbXBvcnQgVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX3Bvc3Rfc2NyZWVuaW5nX3J1bGVfaW5zdGFuY2UgPSBUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX3Bvc3Rfc2NyZWVuaW5nX3J1bGVfZGljdCA9IHRyX2xpbmtfcG9zdF9zY3JlZW5pbmdfcnVsZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUgZnJvbSBhIGRpY3QKdHJfbGlua19wb3N0X3NjcmVlbmluZ19ydWxlX2Zyb21fZGljdCA9IFRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlLmZyb21fZGljdCh0cl9saW5rX3Bvc3Rfc2NyZWVuaW5nX3J1bGVfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkPostScreeningRule2.md b/docs/TRLinkPostScreeningRule2.md index 3ce40448..2cefab74 100644 --- a/docs/TRLinkPostScreeningRule2.md +++ b/docs/TRLinkPostScreeningRule2.md @@ -1,51 +1 @@ -# TRLinkPostScreeningRule2 - -Post-screening rule that determines the verdict based on screening results - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**customer_id** | **str** | Customer identifier | [optional] -**direction** | [**TRLinkTransactionDirection**](TRLinkTransactionDirection.md) | | [optional] -**source_type** | **str** | Source entity type | [optional] -**source_sub_type** | **str** | Source entity subtype | [optional] -**source_address** | **str** | Source blockchain address | [optional] -**dest_type** | **str** | Destination entity type | [optional] -**dest_sub_type** | **str** | Destination entity subtype | [optional] -**dest_address** | **str** | Destination blockchain address | [optional] -**source_id** | **str** | Source identifier | [optional] -**dest_id** | **str** | Destination identifier | [optional] -**asset** | **str** | Asset or cryptocurrency type | [optional] -**base_asset** | **str** | Base asset for derivatives | [optional] -**amount** | [**TRLinkAmount2**](TRLinkAmount2.md) | | [optional] -**network_protocol** | **str** | Network protocol identifier | [optional] -**operation** | **str** | Operation type | [optional] -**description** | **str** | Rule description | [optional] -**is_default** | **bool** | Whether this is a default rule | [optional] -**provider_ident** | **str** | TRP provider identifier | [optional] -**trm_status** | [**TRLinkTrmStatus**](TRLinkTrmStatus.md) | | [optional] -**valid_before** | **int** | Rule is valid before this timestamp (milliseconds) | [optional] -**valid_after** | **int** | Rule is valid after this timestamp (milliseconds) | [optional] -**action** | [**TRLinkPostScreeningAction**](TRLinkPostScreeningAction.md) | | - -## Example - -```python -from fireblocks.models.tr_link_post_screening_rule2 import TRLinkPostScreeningRule2 - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkPostScreeningRule2 from a JSON string -tr_link_post_screening_rule2_instance = TRLinkPostScreeningRule2.from_json(json) -# print the JSON string representation of the object -print(TRLinkPostScreeningRule2.to_json()) - -# convert the object into a dict -tr_link_post_screening_rule2_dict = tr_link_post_screening_rule2_instance.to_dict() -# create an instance of TRLinkPostScreeningRule2 from a dict -tr_link_post_screening_rule2_from_dict = TRLinkPostScreeningRule2.from_dict(tr_link_post_screening_rule2_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZTIKClBvc3Qtc2NyZWVuaW5nIHJ1bGUgdGhhdCBkZXRlcm1pbmVzIHRoZSB2ZXJkaWN0IGJhc2VkIG9uIHNjcmVlbmluZyByZXN1bHRzCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqY3VzdG9tZXJfaWQqKiB8ICoqc3RyKiogfCBDdXN0b21lciBpZGVudGlmaWVyIHwgW29wdGlvbmFsXSAKKipkaXJlY3Rpb24qKiB8IFsqKlRSTGlua1RyYW5zYWN0aW9uRGlyZWN0aW9uKipdKFRSTGlua1RyYW5zYWN0aW9uRGlyZWN0aW9uLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc291cmNlX3R5cGUqKiB8ICoqc3RyKiogfCBTb3VyY2UgZW50aXR5IHR5cGUgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9zdWJfdHlwZSoqIHwgKipzdHIqKiB8IFNvdXJjZSBlbnRpdHkgc3VidHlwZSB8IFtvcHRpb25hbF0gCioqc291cmNlX2FkZHJlc3MqKiB8ICoqc3RyKiogfCBTb3VyY2UgYmxvY2tjaGFpbiBhZGRyZXNzIHwgW29wdGlvbmFsXSAKKipkZXN0X3R5cGUqKiB8ICoqc3RyKiogfCBEZXN0aW5hdGlvbiBlbnRpdHkgdHlwZSB8IFtvcHRpb25hbF0gCioqZGVzdF9zdWJfdHlwZSoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIGVudGl0eSBzdWJ0eXBlIHwgW29wdGlvbmFsXSAKKipkZXN0X2FkZHJlc3MqKiB8ICoqc3RyKiogfCBEZXN0aW5hdGlvbiBibG9ja2NoYWluIGFkZHJlc3MgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9pZCoqIHwgKipzdHIqKiB8IFNvdXJjZSBpZGVudGlmaWVyIHwgW29wdGlvbmFsXSAKKipkZXN0X2lkKiogfCAqKnN0cioqIHwgRGVzdGluYXRpb24gaWRlbnRpZmllciB8IFtvcHRpb25hbF0gCioqYXNzZXQqKiB8ICoqc3RyKiogfCBBc3NldCBvciBjcnlwdG9jdXJyZW5jeSB0eXBlIHwgW29wdGlvbmFsXSAKKipiYXNlX2Fzc2V0KiogfCAqKnN0cioqIHwgQmFzZSBhc3NldCBmb3IgZGVyaXZhdGl2ZXMgfCBbb3B0aW9uYWxdIAoqKmFtb3VudCoqIHwgWyoqVFJMaW5rQW1vdW50MioqXShUUkxpbmtBbW91bnQyLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqbmV0d29ya19wcm90b2NvbCoqIHwgKipzdHIqKiB8IE5ldHdvcmsgcHJvdG9jb2wgaWRlbnRpZmllciB8IFtvcHRpb25hbF0gCioqb3BlcmF0aW9uKiogfCAqKnN0cioqIHwgT3BlcmF0aW9uIHR5cGUgfCBbb3B0aW9uYWxdIAoqKmRlc2NyaXB0aW9uKiogfCAqKnN0cioqIHwgUnVsZSBkZXNjcmlwdGlvbiB8IFtvcHRpb25hbF0gCioqaXNfZGVmYXVsdCoqIHwgKipib29sKiogfCBXaGV0aGVyIHRoaXMgaXMgYSBkZWZhdWx0IHJ1bGUgfCBbb3B0aW9uYWxdIAoqKnByb3ZpZGVyX2lkZW50KiogfCAqKnN0cioqIHwgVFJQIHByb3ZpZGVyIGlkZW50aWZpZXIgfCBbb3B0aW9uYWxdIAoqKnRybV9zdGF0dXMqKiB8IFsqKlRSTGlua1RybVN0YXR1cyoqXShUUkxpbmtUcm1TdGF0dXMubWQpIHwgIHwgW29wdGlvbmFsXSAKKip2YWxpZF9iZWZvcmUqKiB8ICoqaW50KiogfCBSdWxlIGlzIHZhbGlkIGJlZm9yZSB0aGlzIHRpbWVzdGFtcCAobWlsbGlzZWNvbmRzKSB8IFtvcHRpb25hbF0gCioqdmFsaWRfYWZ0ZXIqKiB8ICoqaW50KiogfCBSdWxlIGlzIHZhbGlkIGFmdGVyIHRoaXMgdGltZXN0YW1wIChtaWxsaXNlY29uZHMpIHwgW29wdGlvbmFsXSAKKiphY3Rpb24qKiB8IFsqKlRSTGlua1Bvc3RTY3JlZW5pbmdBY3Rpb24qKl0oVFJMaW5rUG9zdFNjcmVlbmluZ0FjdGlvbi5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcG9zdF9zY3JlZW5pbmdfcnVsZTIgaW1wb3J0IFRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlMgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUyIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX3Bvc3Rfc2NyZWVuaW5nX3J1bGUyX2luc3RhbmNlID0gVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUyLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlMi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX3Bvc3Rfc2NyZWVuaW5nX3J1bGUyX2RpY3QgPSB0cl9saW5rX3Bvc3Rfc2NyZWVuaW5nX3J1bGUyX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZTIgZnJvbSBhIGRpY3QKdHJfbGlua19wb3N0X3NjcmVlbmluZ19ydWxlMl9mcm9tX2RpY3QgPSBUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZTIuZnJvbV9kaWN0KHRyX2xpbmtfcG9zdF9zY3JlZW5pbmdfcnVsZTJfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkPreScreeningAction.md b/docs/TRLinkPreScreeningAction.md index 386b1242..92e2ce2c 100644 --- a/docs/TRLinkPreScreeningAction.md +++ b/docs/TRLinkPreScreeningAction.md @@ -1,13 +1 @@ -# TRLinkPreScreeningAction - -TRLink pre-screening action - -## Enum - -* `SCREEN` (value: `'SCREEN'`) - -* `PASS` (value: `'PASS'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtQcmVTY3JlZW5pbmdBY3Rpb24KClRSTGluayBwcmUtc2NyZWVuaW5nIGFjdGlvbgoKIyMgRW51bQoKKiBgU0NSRUVOYCAodmFsdWU6IGAnU0NSRUVOJ2ApCgoqIGBQQVNTYCAodmFsdWU6IGAnUEFTUydgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkPreScreeningAction2.md b/docs/TRLinkPreScreeningAction2.md index f26ffdf0..80997d40 100644 --- a/docs/TRLinkPreScreeningAction2.md +++ b/docs/TRLinkPreScreeningAction2.md @@ -1,12 +1 @@ -# TRLinkPreScreeningAction2 - - -## Enum - -* `SCREEN` (value: `'SCREEN'`) - -* `PASS` (value: `'PASS'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtQcmVTY3JlZW5pbmdBY3Rpb24yCgoKIyMgRW51bQoKKiBgU0NSRUVOYCAodmFsdWU6IGAnU0NSRUVOJ2ApCgoqIGBQQVNTYCAodmFsdWU6IGAnUEFTUydgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkPreScreeningActionEnum.md b/docs/TRLinkPreScreeningActionEnum.md index 74c987eb..c7dbb540 100644 --- a/docs/TRLinkPreScreeningActionEnum.md +++ b/docs/TRLinkPreScreeningActionEnum.md @@ -1,13 +1 @@ -# TRLinkPreScreeningActionEnum - -TRLink pre-screening action - -## Enum - -* `SCREEN` (value: `'SCREEN'`) - -* `PASS` (value: `'PASS'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtQcmVTY3JlZW5pbmdBY3Rpb25FbnVtCgpUUkxpbmsgcHJlLXNjcmVlbmluZyBhY3Rpb24KCiMjIEVudW0KCiogYFNDUkVFTmAgKHZhbHVlOiBgJ1NDUkVFTidgKQoKKiBgUEFTU2AgKHZhbHVlOiBgJ1BBU1MnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkPreScreeningRule.md b/docs/TRLinkPreScreeningRule.md index 080c74dd..b3aedc46 100644 --- a/docs/TRLinkPreScreeningRule.md +++ b/docs/TRLinkPreScreeningRule.md @@ -1,47 +1 @@ -# TRLinkPreScreeningRule - -TRLink pre-screening rule definition - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**customer_id** | **str** | Reference to TrlinkCustomer.id | [optional] -**direction** | [**TransactionDirection**](TransactionDirection.md) | | [optional] -**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**source_address** | **str** | Source address | [optional] -**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**dest_address** | **str** | Destination address | [optional] -**source_id** | **str** | Source ID | [optional] -**dest_id** | **str** | Destination ID | [optional] -**asset** | **str** | Asset symbol | [optional] -**base_asset** | **str** | Base asset symbol | [optional] -**amount** | [**TRLinkAmount**](TRLinkAmount.md) | | [optional] -**network_protocol** | **str** | Network protocol | [optional] -**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional] -**description** | **str** | Rule description | [optional] -**is_default** | **bool** | Whether this is a default rule | [optional] [default to False] -**action** | [**TRLinkPreScreeningAction**](TRLinkPreScreeningAction.md) | | - -## Example - -```python -from fireblocks.models.tr_link_pre_screening_rule import TRLinkPreScreeningRule - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkPreScreeningRule from a JSON string -tr_link_pre_screening_rule_instance = TRLinkPreScreeningRule.from_json(json) -# print the JSON string representation of the object -print(TRLinkPreScreeningRule.to_json()) - -# convert the object into a dict -tr_link_pre_screening_rule_dict = tr_link_pre_screening_rule_instance.to_dict() -# create an instance of TRLinkPreScreeningRule from a dict -tr_link_pre_screening_rule_from_dict = TRLinkPreScreeningRule.from_dict(tr_link_pre_screening_rule_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtQcmVTY3JlZW5pbmdSdWxlCgpUUkxpbmsgcHJlLXNjcmVlbmluZyBydWxlIGRlZmluaXRpb24KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipjdXN0b21lcl9pZCoqIHwgKipzdHIqKiB8IFJlZmVyZW5jZSB0byBUcmxpbmtDdXN0b21lci5pZCB8IFtvcHRpb25hbF0gCioqZGlyZWN0aW9uKiogfCBbKipUcmFuc2FjdGlvbkRpcmVjdGlvbioqXShUcmFuc2FjdGlvbkRpcmVjdGlvbi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9zdWJfdHlwZSoqIHwgWyoqVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0qKl0oVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipzb3VyY2VfYWRkcmVzcyoqIHwgKipzdHIqKiB8IFNvdXJjZSBhZGRyZXNzIHwgW29wdGlvbmFsXSAKKipkZXN0X3R5cGUqKiB8IFsqKlRyYW5zZmVyUGVlclR5cGVFbnVtKipdKFRyYW5zZmVyUGVlclR5cGVFbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZGVzdF9zdWJfdHlwZSoqIHwgWyoqVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0qKl0oVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipkZXN0X2FkZHJlc3MqKiB8ICoqc3RyKiogfCBEZXN0aW5hdGlvbiBhZGRyZXNzIHwgW29wdGlvbmFsXSAKKipzb3VyY2VfaWQqKiB8ICoqc3RyKiogfCBTb3VyY2UgSUQgfCBbb3B0aW9uYWxdIAoqKmRlc3RfaWQqKiB8ICoqc3RyKiogfCBEZXN0aW5hdGlvbiBJRCB8IFtvcHRpb25hbF0gCioqYXNzZXQqKiB8ICoqc3RyKiogfCBBc3NldCBzeW1ib2wgfCBbb3B0aW9uYWxdIAoqKmJhc2VfYXNzZXQqKiB8ICoqc3RyKiogfCBCYXNlIGFzc2V0IHN5bWJvbCB8IFtvcHRpb25hbF0gCioqYW1vdW50KiogfCBbKipUUkxpbmtBbW91bnQqKl0oVFJMaW5rQW1vdW50Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqbmV0d29ya19wcm90b2NvbCoqIHwgKipzdHIqKiB8IE5ldHdvcmsgcHJvdG9jb2wgfCBbb3B0aW9uYWxdIAoqKm9wZXJhdGlvbioqIHwgWyoqVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtKipdKFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRlc2NyaXB0aW9uKiogfCAqKnN0cioqIHwgUnVsZSBkZXNjcmlwdGlvbiB8IFtvcHRpb25hbF0gCioqaXNfZGVmYXVsdCoqIHwgKipib29sKiogfCBXaGV0aGVyIHRoaXMgaXMgYSBkZWZhdWx0IHJ1bGUgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIEZhbHNlXQoqKmFjdGlvbioqIHwgWyoqVFJMaW5rUHJlU2NyZWVuaW5nQWN0aW9uKipdKFRSTGlua1ByZVNjcmVlbmluZ0FjdGlvbi5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJlX3NjcmVlbmluZ19ydWxlIGltcG9ydCBUUkxpbmtQcmVTY3JlZW5pbmdSdWxlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtQcmVTY3JlZW5pbmdSdWxlIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX3ByZV9zY3JlZW5pbmdfcnVsZV9pbnN0YW5jZSA9IFRSTGlua1ByZVNjcmVlbmluZ1J1bGUuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVFJMaW5rUHJlU2NyZWVuaW5nUnVsZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX3ByZV9zY3JlZW5pbmdfcnVsZV9kaWN0ID0gdHJfbGlua19wcmVfc2NyZWVuaW5nX3J1bGVfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1ByZVNjcmVlbmluZ1J1bGUgZnJvbSBhIGRpY3QKdHJfbGlua19wcmVfc2NyZWVuaW5nX3J1bGVfZnJvbV9kaWN0ID0gVFJMaW5rUHJlU2NyZWVuaW5nUnVsZS5mcm9tX2RpY3QodHJfbGlua19wcmVfc2NyZWVuaW5nX3J1bGVfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkPreScreeningRule2.md b/docs/TRLinkPreScreeningRule2.md index b263cea2..9573466d 100644 --- a/docs/TRLinkPreScreeningRule2.md +++ b/docs/TRLinkPreScreeningRule2.md @@ -1,47 +1 @@ -# TRLinkPreScreeningRule2 - -Pre-screening rule that determines if a transaction should be screened - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**customer_id** | **str** | Customer identifier | [optional] -**direction** | [**TRLinkTransactionDirection**](TRLinkTransactionDirection.md) | | [optional] -**source_type** | **str** | Source entity type | [optional] -**source_sub_type** | **str** | Source entity subtype | [optional] -**source_address** | **str** | Source blockchain address | [optional] -**dest_type** | **str** | Destination entity type | [optional] -**dest_sub_type** | **str** | Destination entity subtype | [optional] -**dest_address** | **str** | Destination blockchain address | [optional] -**source_id** | **str** | Source identifier | [optional] -**dest_id** | **str** | Destination identifier | [optional] -**asset** | **str** | Asset or cryptocurrency type | [optional] -**base_asset** | **str** | Base asset for derivatives | [optional] -**amount** | [**TRLinkAmount2**](TRLinkAmount2.md) | | [optional] -**network_protocol** | **str** | Network protocol identifier | [optional] -**operation** | **str** | Operation type | [optional] -**description** | **str** | Rule description | [optional] -**is_default** | **bool** | Whether this is a default rule | [optional] -**action** | [**TRLinkPreScreeningAction2**](TRLinkPreScreeningAction2.md) | | - -## Example - -```python -from fireblocks.models.tr_link_pre_screening_rule2 import TRLinkPreScreeningRule2 - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkPreScreeningRule2 from a JSON string -tr_link_pre_screening_rule2_instance = TRLinkPreScreeningRule2.from_json(json) -# print the JSON string representation of the object -print(TRLinkPreScreeningRule2.to_json()) - -# convert the object into a dict -tr_link_pre_screening_rule2_dict = tr_link_pre_screening_rule2_instance.to_dict() -# create an instance of TRLinkPreScreeningRule2 from a dict -tr_link_pre_screening_rule2_from_dict = TRLinkPreScreeningRule2.from_dict(tr_link_pre_screening_rule2_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtQcmVTY3JlZW5pbmdSdWxlMgoKUHJlLXNjcmVlbmluZyBydWxlIHRoYXQgZGV0ZXJtaW5lcyBpZiBhIHRyYW5zYWN0aW9uIHNob3VsZCBiZSBzY3JlZW5lZAoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmN1c3RvbWVyX2lkKiogfCAqKnN0cioqIHwgQ3VzdG9tZXIgaWRlbnRpZmllciB8IFtvcHRpb25hbF0gCioqZGlyZWN0aW9uKiogfCBbKipUUkxpbmtUcmFuc2FjdGlvbkRpcmVjdGlvbioqXShUUkxpbmtUcmFuc2FjdGlvbkRpcmVjdGlvbi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV90eXBlKiogfCAqKnN0cioqIHwgU291cmNlIGVudGl0eSB0eXBlIHwgW29wdGlvbmFsXSAKKipzb3VyY2Vfc3ViX3R5cGUqKiB8ICoqc3RyKiogfCBTb3VyY2UgZW50aXR5IHN1YnR5cGUgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9hZGRyZXNzKiogfCAqKnN0cioqIHwgU291cmNlIGJsb2NrY2hhaW4gYWRkcmVzcyB8IFtvcHRpb25hbF0gCioqZGVzdF90eXBlKiogfCAqKnN0cioqIHwgRGVzdGluYXRpb24gZW50aXR5IHR5cGUgfCBbb3B0aW9uYWxdIAoqKmRlc3Rfc3ViX3R5cGUqKiB8ICoqc3RyKiogfCBEZXN0aW5hdGlvbiBlbnRpdHkgc3VidHlwZSB8IFtvcHRpb25hbF0gCioqZGVzdF9hZGRyZXNzKiogfCAqKnN0cioqIHwgRGVzdGluYXRpb24gYmxvY2tjaGFpbiBhZGRyZXNzIHwgW29wdGlvbmFsXSAKKipzb3VyY2VfaWQqKiB8ICoqc3RyKiogfCBTb3VyY2UgaWRlbnRpZmllciB8IFtvcHRpb25hbF0gCioqZGVzdF9pZCoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIGlkZW50aWZpZXIgfCBbb3B0aW9uYWxdIAoqKmFzc2V0KiogfCAqKnN0cioqIHwgQXNzZXQgb3IgY3J5cHRvY3VycmVuY3kgdHlwZSB8IFtvcHRpb25hbF0gCioqYmFzZV9hc3NldCoqIHwgKipzdHIqKiB8IEJhc2UgYXNzZXQgZm9yIGRlcml2YXRpdmVzIHwgW29wdGlvbmFsXSAKKiphbW91bnQqKiB8IFsqKlRSTGlua0Ftb3VudDIqKl0oVFJMaW5rQW1vdW50Mi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKm5ldHdvcmtfcHJvdG9jb2wqKiB8ICoqc3RyKiogfCBOZXR3b3JrIHByb3RvY29sIGlkZW50aWZpZXIgfCBbb3B0aW9uYWxdIAoqKm9wZXJhdGlvbioqIHwgKipzdHIqKiB8IE9wZXJhdGlvbiB0eXBlIHwgW29wdGlvbmFsXSAKKipkZXNjcmlwdGlvbioqIHwgKipzdHIqKiB8IFJ1bGUgZGVzY3JpcHRpb24gfCBbb3B0aW9uYWxdIAoqKmlzX2RlZmF1bHQqKiB8ICoqYm9vbCoqIHwgV2hldGhlciB0aGlzIGlzIGEgZGVmYXVsdCBydWxlIHwgW29wdGlvbmFsXSAKKiphY3Rpb24qKiB8IFsqKlRSTGlua1ByZVNjcmVlbmluZ0FjdGlvbjIqKl0oVFJMaW5rUHJlU2NyZWVuaW5nQWN0aW9uMi5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJlX3NjcmVlbmluZ19ydWxlMiBpbXBvcnQgVFJMaW5rUHJlU2NyZWVuaW5nUnVsZTIKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1ByZVNjcmVlbmluZ1J1bGUyIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX3ByZV9zY3JlZW5pbmdfcnVsZTJfaW5zdGFuY2UgPSBUUkxpbmtQcmVTY3JlZW5pbmdSdWxlMi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtQcmVTY3JlZW5pbmdSdWxlMi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX3ByZV9zY3JlZW5pbmdfcnVsZTJfZGljdCA9IHRyX2xpbmtfcHJlX3NjcmVlbmluZ19ydWxlMl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUHJlU2NyZWVuaW5nUnVsZTIgZnJvbSBhIGRpY3QKdHJfbGlua19wcmVfc2NyZWVuaW5nX3J1bGUyX2Zyb21fZGljdCA9IFRSTGlua1ByZVNjcmVlbmluZ1J1bGUyLmZyb21fZGljdCh0cl9saW5rX3ByZV9zY3JlZW5pbmdfcnVsZTJfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkProviderData.md b/docs/TRLinkProviderData.md index e3b89b9b..56409df7 100644 --- a/docs/TRLinkProviderData.md +++ b/docs/TRLinkProviderData.md @@ -1,30 +1 @@ -# TRLinkProviderData - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**provider** | **str** | Provider name | [optional] -**data** | **Dict[str, object]** | Provider-specific data | [optional] - -## Example - -```python -from fireblocks.models.tr_link_provider_data import TRLinkProviderData - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkProviderData from a JSON string -tr_link_provider_data_instance = TRLinkProviderData.from_json(json) -# print the JSON string representation of the object -print(TRLinkProviderData.to_json()) - -# convert the object into a dict -tr_link_provider_data_dict = tr_link_provider_data_instance.to_dict() -# create an instance of TRLinkProviderData from a dict -tr_link_provider_data_from_dict = TRLinkProviderData.from_dict(tr_link_provider_data_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtQcm92aWRlckRhdGEKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcHJvdmlkZXIqKiB8ICoqc3RyKiogfCBQcm92aWRlciBuYW1lIHwgW29wdGlvbmFsXSAKKipkYXRhKiogfCAqKkRpY3Rbc3RyLCBvYmplY3RdKiogfCBQcm92aWRlci1zcGVjaWZpYyBkYXRhIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJvdmlkZXJfZGF0YSBpbXBvcnQgVFJMaW5rUHJvdmlkZXJEYXRhCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtQcm92aWRlckRhdGEgZnJvbSBhIEpTT04gc3RyaW5nCnRyX2xpbmtfcHJvdmlkZXJfZGF0YV9pbnN0YW5jZSA9IFRSTGlua1Byb3ZpZGVyRGF0YS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtQcm92aWRlckRhdGEudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua19wcm92aWRlcl9kYXRhX2RpY3QgPSB0cl9saW5rX3Byb3ZpZGVyX2RhdGFfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1Byb3ZpZGVyRGF0YSBmcm9tIGEgZGljdAp0cl9saW5rX3Byb3ZpZGVyX2RhdGFfZnJvbV9kaWN0ID0gVFJMaW5rUHJvdmlkZXJEYXRhLmZyb21fZGljdCh0cl9saW5rX3Byb3ZpZGVyX2RhdGFfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkProviderResult.md b/docs/TRLinkProviderResult.md index 3ebe816c..82412f4f 100644 --- a/docs/TRLinkProviderResult.md +++ b/docs/TRLinkProviderResult.md @@ -1,30 +1 @@ -# TRLinkProviderResult - -Provider-specific response data wrapper - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**provider_response** | **object** | Raw provider response | [optional] - -## Example - -```python -from fireblocks.models.tr_link_provider_result import TRLinkProviderResult - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkProviderResult from a JSON string -tr_link_provider_result_instance = TRLinkProviderResult.from_json(json) -# print the JSON string representation of the object -print(TRLinkProviderResult.to_json()) - -# convert the object into a dict -tr_link_provider_result_dict = tr_link_provider_result_instance.to_dict() -# create an instance of TRLinkProviderResult from a dict -tr_link_provider_result_from_dict = TRLinkProviderResult.from_dict(tr_link_provider_result_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtQcm92aWRlclJlc3VsdAoKUHJvdmlkZXItc3BlY2lmaWMgcmVzcG9uc2UgZGF0YSB3cmFwcGVyCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcHJvdmlkZXJfcmVzcG9uc2UqKiB8ICoqb2JqZWN0KiogfCBSYXcgcHJvdmlkZXIgcmVzcG9uc2UgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wcm92aWRlcl9yZXN1bHQgaW1wb3J0IFRSTGlua1Byb3ZpZGVyUmVzdWx0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtQcm92aWRlclJlc3VsdCBmcm9tIGEgSlNPTiBzdHJpbmcKdHJfbGlua19wcm92aWRlcl9yZXN1bHRfaW5zdGFuY2UgPSBUUkxpbmtQcm92aWRlclJlc3VsdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtQcm92aWRlclJlc3VsdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX3Byb3ZpZGVyX3Jlc3VsdF9kaWN0ID0gdHJfbGlua19wcm92aWRlcl9yZXN1bHRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1Byb3ZpZGVyUmVzdWx0IGZyb20gYSBkaWN0CnRyX2xpbmtfcHJvdmlkZXJfcmVzdWx0X2Zyb21fZGljdCA9IFRSTGlua1Byb3ZpZGVyUmVzdWx0LmZyb21fZGljdCh0cl9saW5rX3Byb3ZpZGVyX3Jlc3VsdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkProviderResultWithRule.md b/docs/TRLinkProviderResultWithRule.md index 2293f21a..7cfd5b11 100644 --- a/docs/TRLinkProviderResultWithRule.md +++ b/docs/TRLinkProviderResultWithRule.md @@ -1,31 +1 @@ -# TRLinkProviderResultWithRule - -Provider response and matched rule wrapper for TRLink screening results - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**provider_response** | **object** | Raw provider response | [optional] -**matched_rule** | [**TRLinkPostScreeningRule**](TRLinkPostScreeningRule.md) | | [optional] - -## Example - -```python -from fireblocks.models.tr_link_provider_result_with_rule import TRLinkProviderResultWithRule - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkProviderResultWithRule from a JSON string -tr_link_provider_result_with_rule_instance = TRLinkProviderResultWithRule.from_json(json) -# print the JSON string representation of the object -print(TRLinkProviderResultWithRule.to_json()) - -# convert the object into a dict -tr_link_provider_result_with_rule_dict = tr_link_provider_result_with_rule_instance.to_dict() -# create an instance of TRLinkProviderResultWithRule from a dict -tr_link_provider_result_with_rule_from_dict = TRLinkProviderResultWithRule.from_dict(tr_link_provider_result_with_rule_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtQcm92aWRlclJlc3VsdFdpdGhSdWxlCgpQcm92aWRlciByZXNwb25zZSBhbmQgbWF0Y2hlZCBydWxlIHdyYXBwZXIgZm9yIFRSTGluayBzY3JlZW5pbmcgcmVzdWx0cwoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnByb3ZpZGVyX3Jlc3BvbnNlKiogfCAqKm9iamVjdCoqIHwgUmF3IHByb3ZpZGVyIHJlc3BvbnNlIHwgW29wdGlvbmFsXSAKKiptYXRjaGVkX3J1bGUqKiB8IFsqKlRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlKipdKFRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3Byb3ZpZGVyX3Jlc3VsdF93aXRoX3J1bGUgaW1wb3J0IFRSTGlua1Byb3ZpZGVyUmVzdWx0V2l0aFJ1bGUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1Byb3ZpZGVyUmVzdWx0V2l0aFJ1bGUgZnJvbSBhIEpTT04gc3RyaW5nCnRyX2xpbmtfcHJvdmlkZXJfcmVzdWx0X3dpdGhfcnVsZV9pbnN0YW5jZSA9IFRSTGlua1Byb3ZpZGVyUmVzdWx0V2l0aFJ1bGUuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX3Byb3ZpZGVyX3Jlc3VsdF93aXRoX3J1bGVfZGljdCA9IHRyX2xpbmtfcHJvdmlkZXJfcmVzdWx0X3dpdGhfcnVsZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZSBmcm9tIGEgZGljdAp0cl9saW5rX3Byb3ZpZGVyX3Jlc3VsdF93aXRoX3J1bGVfZnJvbV9kaWN0ID0gVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZS5mcm9tX2RpY3QodHJfbGlua19wcm92aWRlcl9yZXN1bHRfd2l0aF9ydWxlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkProviderResultWithRule2.md b/docs/TRLinkProviderResultWithRule2.md index 95b5f39f..f42c458c 100644 --- a/docs/TRLinkProviderResultWithRule2.md +++ b/docs/TRLinkProviderResultWithRule2.md @@ -1,31 +1 @@ -# TRLinkProviderResultWithRule2 - -Provider response and matched rule wrapper for TRLink screening results - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**provider_response** | **object** | Raw provider response | [optional] -**matched_rule** | [**ScreeningTRLinkPostScreeningRule**](ScreeningTRLinkPostScreeningRule.md) | | [optional] - -## Example - -```python -from fireblocks.models.tr_link_provider_result_with_rule2 import TRLinkProviderResultWithRule2 - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkProviderResultWithRule2 from a JSON string -tr_link_provider_result_with_rule2_instance = TRLinkProviderResultWithRule2.from_json(json) -# print the JSON string representation of the object -print(TRLinkProviderResultWithRule2.to_json()) - -# convert the object into a dict -tr_link_provider_result_with_rule2_dict = tr_link_provider_result_with_rule2_instance.to_dict() -# create an instance of TRLinkProviderResultWithRule2 from a dict -tr_link_provider_result_with_rule2_from_dict = TRLinkProviderResultWithRule2.from_dict(tr_link_provider_result_with_rule2_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtQcm92aWRlclJlc3VsdFdpdGhSdWxlMgoKUHJvdmlkZXIgcmVzcG9uc2UgYW5kIG1hdGNoZWQgcnVsZSB3cmFwcGVyIGZvciBUUkxpbmsgc2NyZWVuaW5nIHJlc3VsdHMKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipwcm92aWRlcl9yZXNwb25zZSoqIHwgKipvYmplY3QqKiB8IFJhdyBwcm92aWRlciByZXNwb25zZSB8IFtvcHRpb25hbF0gCioqbWF0Y2hlZF9ydWxlKiogfCBbKipTY3JlZW5pbmdUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZSoqXShTY3JlZW5pbmdUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wcm92aWRlcl9yZXN1bHRfd2l0aF9ydWxlMiBpbXBvcnQgVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZTIKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1Byb3ZpZGVyUmVzdWx0V2l0aFJ1bGUyIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX3Byb3ZpZGVyX3Jlc3VsdF93aXRoX3J1bGUyX2luc3RhbmNlID0gVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZTIuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZTIudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua19wcm92aWRlcl9yZXN1bHRfd2l0aF9ydWxlMl9kaWN0ID0gdHJfbGlua19wcm92aWRlcl9yZXN1bHRfd2l0aF9ydWxlMl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZTIgZnJvbSBhIGRpY3QKdHJfbGlua19wcm92aWRlcl9yZXN1bHRfd2l0aF9ydWxlMl9mcm9tX2RpY3QgPSBUUkxpbmtQcm92aWRlclJlc3VsdFdpdGhSdWxlMi5mcm9tX2RpY3QodHJfbGlua19wcm92aWRlcl9yZXN1bHRfd2l0aF9ydWxlMl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkPublicAssetInfo.md b/docs/TRLinkPublicAssetInfo.md index 7b7c2a28..7c8af786 100644 --- a/docs/TRLinkPublicAssetInfo.md +++ b/docs/TRLinkPublicAssetInfo.md @@ -1,36 +1 @@ -# TRLinkPublicAssetInfo - -Public asset information with limited properties for API consumption - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The unique ID of the asset (e.g., Fireblocks asset ID) | -**name** | **str** | The name of the asset | -**type** | **str** | The type of the asset (e.g., BASE_ASSET, ERC20) | -**contract_address** | **str** | The contract address of the asset (for tokenized assets) | -**native_asset** | **str** | The native asset of the network (e.g., ETH for ERC20 tokens) | -**decimals** | **float** | The number of decimal places for the asset | -**issuer_address** | **str** | The issuer address of the asset (optional) | [optional] - -## Example - -```python -from fireblocks.models.tr_link_public_asset_info import TRLinkPublicAssetInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkPublicAssetInfo from a JSON string -tr_link_public_asset_info_instance = TRLinkPublicAssetInfo.from_json(json) -# print the JSON string representation of the object -print(TRLinkPublicAssetInfo.to_json()) - -# convert the object into a dict -tr_link_public_asset_info_dict = tr_link_public_asset_info_instance.to_dict() -# create an instance of TRLinkPublicAssetInfo from a dict -tr_link_public_asset_info_from_dict = TRLinkPublicAssetInfo.from_dict(tr_link_public_asset_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtQdWJsaWNBc3NldEluZm8KClB1YmxpYyBhc3NldCBpbmZvcm1hdGlvbiB3aXRoIGxpbWl0ZWQgcHJvcGVydGllcyBmb3IgQVBJIGNvbnN1bXB0aW9uCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBUaGUgdW5pcXVlIElEIG9mIHRoZSBhc3NldCAoZS5nLiwgRmlyZWJsb2NrcyBhc3NldCBJRCkgfCAKKipuYW1lKiogfCAqKnN0cioqIHwgVGhlIG5hbWUgb2YgdGhlIGFzc2V0IHwgCioqdHlwZSoqIHwgKipzdHIqKiB8IFRoZSB0eXBlIG9mIHRoZSBhc3NldCAoZS5nLiwgQkFTRV9BU1NFVCwgRVJDMjApIHwgCioqY29udHJhY3RfYWRkcmVzcyoqIHwgKipzdHIqKiB8IFRoZSBjb250cmFjdCBhZGRyZXNzIG9mIHRoZSBhc3NldCAoZm9yIHRva2VuaXplZCBhc3NldHMpIHwgCioqbmF0aXZlX2Fzc2V0KiogfCAqKnN0cioqIHwgVGhlIG5hdGl2ZSBhc3NldCBvZiB0aGUgbmV0d29yayAoZS5nLiwgRVRIIGZvciBFUkMyMCB0b2tlbnMpIHwgCioqZGVjaW1hbHMqKiB8ICoqZmxvYXQqKiB8IFRoZSBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgZm9yIHRoZSBhc3NldCB8IAoqKmlzc3Vlcl9hZGRyZXNzKiogfCAqKnN0cioqIHwgVGhlIGlzc3VlciBhZGRyZXNzIG9mIHRoZSBhc3NldCAob3B0aW9uYWwpIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHVibGljX2Fzc2V0X2luZm8gaW1wb3J0IFRSTGlua1B1YmxpY0Fzc2V0SW5mbwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUHVibGljQXNzZXRJbmZvIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX3B1YmxpY19hc3NldF9pbmZvX2luc3RhbmNlID0gVFJMaW5rUHVibGljQXNzZXRJbmZvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRSTGlua1B1YmxpY0Fzc2V0SW5mby50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX3B1YmxpY19hc3NldF9pbmZvX2RpY3QgPSB0cl9saW5rX3B1YmxpY19hc3NldF9pbmZvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtQdWJsaWNBc3NldEluZm8gZnJvbSBhIGRpY3QKdHJfbGlua19wdWJsaWNfYXNzZXRfaW5mb19mcm9tX2RpY3QgPSBUUkxpbmtQdWJsaWNBc3NldEluZm8uZnJvbV9kaWN0KHRyX2xpbmtfcHVibGljX2Fzc2V0X2luZm9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkPublicKeyResponse.md b/docs/TRLinkPublicKeyResponse.md index 42dbc329..6a5c9db2 100644 --- a/docs/TRLinkPublicKeyResponse.md +++ b/docs/TRLinkPublicKeyResponse.md @@ -1,30 +1 @@ -# TRLinkPublicKeyResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**issuer** | **str** | Partner issuer identifier | -**public_key** | [**TRLinkJwkPublicKey**](TRLinkJwkPublicKey.md) | | - -## Example - -```python -from fireblocks.models.tr_link_public_key_response import TRLinkPublicKeyResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkPublicKeyResponse from a JSON string -tr_link_public_key_response_instance = TRLinkPublicKeyResponse.from_json(json) -# print the JSON string representation of the object -print(TRLinkPublicKeyResponse.to_json()) - -# convert the object into a dict -tr_link_public_key_response_dict = tr_link_public_key_response_instance.to_dict() -# create an instance of TRLinkPublicKeyResponse from a dict -tr_link_public_key_response_from_dict = TRLinkPublicKeyResponse.from_dict(tr_link_public_key_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtQdWJsaWNLZXlSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippc3N1ZXIqKiB8ICoqc3RyKiogfCBQYXJ0bmVyIGlzc3VlciBpZGVudGlmaWVyIHwgCioqcHVibGljX2tleSoqIHwgWyoqVFJMaW5rSndrUHVibGljS2V5KipdKFRSTGlua0p3a1B1YmxpY0tleS5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHVibGljX2tleV9yZXNwb25zZSBpbXBvcnQgVFJMaW5rUHVibGljS2V5UmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1B1YmxpY0tleVJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX3B1YmxpY19rZXlfcmVzcG9uc2VfaW5zdGFuY2UgPSBUUkxpbmtQdWJsaWNLZXlSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtQdWJsaWNLZXlSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX3B1YmxpY19rZXlfcmVzcG9uc2VfZGljdCA9IHRyX2xpbmtfcHVibGljX2tleV9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUHVibGljS2V5UmVzcG9uc2UgZnJvbSBhIGRpY3QKdHJfbGlua19wdWJsaWNfa2V5X3Jlc3BvbnNlX2Zyb21fZGljdCA9IFRSTGlua1B1YmxpY0tleVJlc3BvbnNlLmZyb21fZGljdCh0cl9saW5rX3B1YmxpY19rZXlfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkRedirectTrmRequest.md b/docs/TRLinkRedirectTrmRequest.md index 0d79d42f..69a86c08 100644 --- a/docs/TRLinkRedirectTrmRequest.md +++ b/docs/TRLinkRedirectTrmRequest.md @@ -1,29 +1 @@ -# TRLinkRedirectTrmRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**subsidiary_vasp_id** | **str** | ID of the subsidiary VASP to redirect the TRM to | - -## Example - -```python -from fireblocks.models.tr_link_redirect_trm_request import TRLinkRedirectTrmRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkRedirectTrmRequest from a JSON string -tr_link_redirect_trm_request_instance = TRLinkRedirectTrmRequest.from_json(json) -# print the JSON string representation of the object -print(TRLinkRedirectTrmRequest.to_json()) - -# convert the object into a dict -tr_link_redirect_trm_request_dict = tr_link_redirect_trm_request_instance.to_dict() -# create an instance of TRLinkRedirectTrmRequest from a dict -tr_link_redirect_trm_request_from_dict = TRLinkRedirectTrmRequest.from_dict(tr_link_redirect_trm_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtSZWRpcmVjdFRybVJlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3Vic2lkaWFyeV92YXNwX2lkKiogfCAqKnN0cioqIHwgSUQgb2YgdGhlIHN1YnNpZGlhcnkgVkFTUCB0byByZWRpcmVjdCB0aGUgVFJNIHRvIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3JlZGlyZWN0X3RybV9yZXF1ZXN0IGltcG9ydCBUUkxpbmtSZWRpcmVjdFRybVJlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1JlZGlyZWN0VHJtUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKdHJfbGlua19yZWRpcmVjdF90cm1fcmVxdWVzdF9pbnN0YW5jZSA9IFRSTGlua1JlZGlyZWN0VHJtUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtSZWRpcmVjdFRybVJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua19yZWRpcmVjdF90cm1fcmVxdWVzdF9kaWN0ID0gdHJfbGlua19yZWRpcmVjdF90cm1fcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUmVkaXJlY3RUcm1SZXF1ZXN0IGZyb20gYSBkaWN0CnRyX2xpbmtfcmVkaXJlY3RfdHJtX3JlcXVlc3RfZnJvbV9kaWN0ID0gVFJMaW5rUmVkaXJlY3RUcm1SZXF1ZXN0LmZyb21fZGljdCh0cl9saW5rX3JlZGlyZWN0X3RybV9yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkRegistrationResult.md b/docs/TRLinkRegistrationResult.md index 8f24cee1..9b460381 100644 --- a/docs/TRLinkRegistrationResult.md +++ b/docs/TRLinkRegistrationResult.md @@ -1,39 +1 @@ -# TRLinkRegistrationResult - -TRLink registration result containing status and metadata - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status** | [**TRLinkRegistrationStatus**](TRLinkRegistrationStatus.md) | | -**provider** | **str** | The TRLink provider name | [optional] -**success** | **bool** | Whether the registration was successful | [optional] -**timestamp** | **float** | Unix timestamp of the registration | -**dest_record_id** | **str** | Destination record identifier | [optional] -**travel_rule_message_id** | **str** | Travel rule message identifier for linking | [optional] -**customer_integration_id** | **str** | Customer integration identifier | [optional] -**customer_short_name** | **str** | Customer short name | [optional] -**result** | [**TRLinkProviderResult**](TRLinkProviderResult.md) | | [optional] -**matched_prescreening_rule** | [**TRLinkPreScreeningRule**](TRLinkPreScreeningRule.md) | | [optional] - -## Example - -```python -from fireblocks.models.tr_link_registration_result import TRLinkRegistrationResult - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkRegistrationResult from a JSON string -tr_link_registration_result_instance = TRLinkRegistrationResult.from_json(json) -# print the JSON string representation of the object -print(TRLinkRegistrationResult.to_json()) - -# convert the object into a dict -tr_link_registration_result_dict = tr_link_registration_result_instance.to_dict() -# create an instance of TRLinkRegistrationResult from a dict -tr_link_registration_result_from_dict = TRLinkRegistrationResult.from_dict(tr_link_registration_result_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHQKClRSTGluayByZWdpc3RyYXRpb24gcmVzdWx0IGNvbnRhaW5pbmcgc3RhdHVzIGFuZCBtZXRhZGF0YQoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnN0YXR1cyoqIHwgWyoqVFJMaW5rUmVnaXN0cmF0aW9uU3RhdHVzKipdKFRSTGlua1JlZ2lzdHJhdGlvblN0YXR1cy5tZCkgfCAgfCAKKipwcm92aWRlcioqIHwgKipzdHIqKiB8IFRoZSBUUkxpbmsgcHJvdmlkZXIgbmFtZSB8IFtvcHRpb25hbF0gCioqc3VjY2VzcyoqIHwgKipib29sKiogfCBXaGV0aGVyIHRoZSByZWdpc3RyYXRpb24gd2FzIHN1Y2Nlc3NmdWwgfCBbb3B0aW9uYWxdIAoqKnRpbWVzdGFtcCoqIHwgKipmbG9hdCoqIHwgVW5peCB0aW1lc3RhbXAgb2YgdGhlIHJlZ2lzdHJhdGlvbiB8IAoqKmRlc3RfcmVjb3JkX2lkKiogfCAqKnN0cioqIHwgRGVzdGluYXRpb24gcmVjb3JkIGlkZW50aWZpZXIgfCBbb3B0aW9uYWxdIAoqKnRyYXZlbF9ydWxlX21lc3NhZ2VfaWQqKiB8ICoqc3RyKiogfCBUcmF2ZWwgcnVsZSBtZXNzYWdlIGlkZW50aWZpZXIgZm9yIGxpbmtpbmcgfCBbb3B0aW9uYWxdIAoqKmN1c3RvbWVyX2ludGVncmF0aW9uX2lkKiogfCAqKnN0cioqIHwgQ3VzdG9tZXIgaW50ZWdyYXRpb24gaWRlbnRpZmllciB8IFtvcHRpb25hbF0gCioqY3VzdG9tZXJfc2hvcnRfbmFtZSoqIHwgKipzdHIqKiB8IEN1c3RvbWVyIHNob3J0IG5hbWUgfCBbb3B0aW9uYWxdIAoqKnJlc3VsdCoqIHwgWyoqVFJMaW5rUHJvdmlkZXJSZXN1bHQqKl0oVFJMaW5rUHJvdmlkZXJSZXN1bHQubWQpIHwgIHwgW29wdGlvbmFsXSAKKiptYXRjaGVkX3ByZXNjcmVlbmluZ19ydWxlKiogfCBbKipUUkxpbmtQcmVTY3JlZW5pbmdSdWxlKipdKFRSTGlua1ByZVNjcmVlbmluZ1J1bGUubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcmVnaXN0cmF0aW9uX3Jlc3VsdCBpbXBvcnQgVFJMaW5rUmVnaXN0cmF0aW9uUmVzdWx0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHQgZnJvbSBhIEpTT04gc3RyaW5nCnRyX2xpbmtfcmVnaXN0cmF0aW9uX3Jlc3VsdF9pbnN0YW5jZSA9IFRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua19yZWdpc3RyYXRpb25fcmVzdWx0X2RpY3QgPSB0cl9saW5rX3JlZ2lzdHJhdGlvbl9yZXN1bHRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdCBmcm9tIGEgZGljdAp0cl9saW5rX3JlZ2lzdHJhdGlvbl9yZXN1bHRfZnJvbV9kaWN0ID0gVFJMaW5rUmVnaXN0cmF0aW9uUmVzdWx0LmZyb21fZGljdCh0cl9saW5rX3JlZ2lzdHJhdGlvbl9yZXN1bHRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkRegistrationResultFullPayload.md b/docs/TRLinkRegistrationResultFullPayload.md index 712af8d8..33f66491 100644 --- a/docs/TRLinkRegistrationResultFullPayload.md +++ b/docs/TRLinkRegistrationResultFullPayload.md @@ -1,39 +1 @@ -# TRLinkRegistrationResultFullPayload - -TRLink registration result containing status and metadata - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status** | [**TRLinkRegistrationStatusEnum**](TRLinkRegistrationStatusEnum.md) | | -**provider** | **str** | The TRLink provider name | [optional] -**success** | **bool** | Whether the registration was successful | [optional] -**timestamp** | **float** | Unix timestamp of the registration | -**dest_record_id** | **str** | Destination record identifier | [optional] -**travel_rule_message_id** | **str** | Travel rule message identifier for linking | [optional] -**customer_integration_id** | **str** | Customer integration identifier | [optional] -**customer_short_name** | **str** | Customer short name | [optional] -**result** | [**TRLinkProviderResult**](TRLinkProviderResult.md) | | [optional] -**matched_prescreening_rule** | [**ScreeningTRLinkPrescreeningRule**](ScreeningTRLinkPrescreeningRule.md) | | [optional] - -## Example - -```python -from fireblocks.models.tr_link_registration_result_full_payload import TRLinkRegistrationResultFullPayload - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkRegistrationResultFullPayload from a JSON string -tr_link_registration_result_full_payload_instance = TRLinkRegistrationResultFullPayload.from_json(json) -# print the JSON string representation of the object -print(TRLinkRegistrationResultFullPayload.to_json()) - -# convert the object into a dict -tr_link_registration_result_full_payload_dict = tr_link_registration_result_full_payload_instance.to_dict() -# create an instance of TRLinkRegistrationResultFullPayload from a dict -tr_link_registration_result_full_payload_from_dict = TRLinkRegistrationResultFullPayload.from_dict(tr_link_registration_result_full_payload_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZAoKVFJMaW5rIHJlZ2lzdHJhdGlvbiByZXN1bHQgY29udGFpbmluZyBzdGF0dXMgYW5kIG1ldGFkYXRhCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3RhdHVzKiogfCBbKipUUkxpbmtSZWdpc3RyYXRpb25TdGF0dXNFbnVtKipdKFRSTGlua1JlZ2lzdHJhdGlvblN0YXR1c0VudW0ubWQpIHwgIHwgCioqcHJvdmlkZXIqKiB8ICoqc3RyKiogfCBUaGUgVFJMaW5rIHByb3ZpZGVyIG5hbWUgfCBbb3B0aW9uYWxdIAoqKnN1Y2Nlc3MqKiB8ICoqYm9vbCoqIHwgV2hldGhlciB0aGUgcmVnaXN0cmF0aW9uIHdhcyBzdWNjZXNzZnVsIHwgW29wdGlvbmFsXSAKKip0aW1lc3RhbXAqKiB8ICoqZmxvYXQqKiB8IFVuaXggdGltZXN0YW1wIG9mIHRoZSByZWdpc3RyYXRpb24gfCAKKipkZXN0X3JlY29yZF9pZCoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIHJlY29yZCBpZGVudGlmaWVyIHwgW29wdGlvbmFsXSAKKip0cmF2ZWxfcnVsZV9tZXNzYWdlX2lkKiogfCAqKnN0cioqIHwgVHJhdmVsIHJ1bGUgbWVzc2FnZSBpZGVudGlmaWVyIGZvciBsaW5raW5nIHwgW29wdGlvbmFsXSAKKipjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCoqIHwgKipzdHIqKiB8IEN1c3RvbWVyIGludGVncmF0aW9uIGlkZW50aWZpZXIgfCBbb3B0aW9uYWxdIAoqKmN1c3RvbWVyX3Nob3J0X25hbWUqKiB8ICoqc3RyKiogfCBDdXN0b21lciBzaG9ydCBuYW1lIHwgW29wdGlvbmFsXSAKKipyZXN1bHQqKiB8IFsqKlRSTGlua1Byb3ZpZGVyUmVzdWx0KipdKFRSTGlua1Byb3ZpZGVyUmVzdWx0Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqbWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZSoqIHwgWyoqU2NyZWVuaW5nVFJMaW5rUHJlc2NyZWVuaW5nUnVsZSoqXShTY3JlZW5pbmdUUkxpbmtQcmVzY3JlZW5pbmdSdWxlLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3JlZ2lzdHJhdGlvbl9yZXN1bHRfZnVsbF9wYXlsb2FkIGltcG9ydCBUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUmVnaXN0cmF0aW9uUmVzdWx0RnVsbFBheWxvYWQgZnJvbSBhIEpTT04gc3RyaW5nCnRyX2xpbmtfcmVnaXN0cmF0aW9uX3Jlc3VsdF9mdWxsX3BheWxvYWRfaW5zdGFuY2UgPSBUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX3JlZ2lzdHJhdGlvbl9yZXN1bHRfZnVsbF9wYXlsb2FkX2RpY3QgPSB0cl9saW5rX3JlZ2lzdHJhdGlvbl9yZXN1bHRfZnVsbF9wYXlsb2FkX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZCBmcm9tIGEgZGljdAp0cl9saW5rX3JlZ2lzdHJhdGlvbl9yZXN1bHRfZnVsbF9wYXlsb2FkX2Zyb21fZGljdCA9IFRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkLmZyb21fZGljdCh0cl9saW5rX3JlZ2lzdHJhdGlvbl9yZXN1bHRfZnVsbF9wYXlsb2FkX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkRegistrationStatus.md b/docs/TRLinkRegistrationStatus.md index 915b4393..0505ce45 100644 --- a/docs/TRLinkRegistrationStatus.md +++ b/docs/TRLinkRegistrationStatus.md @@ -1,19 +1 @@ -# TRLinkRegistrationStatus - -TRLink registration status - -## Enum - -* `STARTING` (value: `'STARTING'`) - -* `PRESCREENED` (value: `'PRESCREENED'`) - -* `COMPLETED` (value: `'COMPLETED'`) - -* `FAILED` (value: `'FAILED'`) - -* `VOID` (value: `'VOID'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtSZWdpc3RyYXRpb25TdGF0dXMKClRSTGluayByZWdpc3RyYXRpb24gc3RhdHVzCgojIyBFbnVtCgoqIGBTVEFSVElOR2AgKHZhbHVlOiBgJ1NUQVJUSU5HJ2ApCgoqIGBQUkVTQ1JFRU5FRGAgKHZhbHVlOiBgJ1BSRVNDUkVFTkVEJ2ApCgoqIGBDT01QTEVURURgICh2YWx1ZTogYCdDT01QTEVURUQnYCkKCiogYEZBSUxFRGAgKHZhbHVlOiBgJ0ZBSUxFRCdgKQoKKiBgVk9JRGAgKHZhbHVlOiBgJ1ZPSUQnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkRegistrationStatusEnum.md b/docs/TRLinkRegistrationStatusEnum.md index 7762f710..f5d8850f 100644 --- a/docs/TRLinkRegistrationStatusEnum.md +++ b/docs/TRLinkRegistrationStatusEnum.md @@ -1,19 +1 @@ -# TRLinkRegistrationStatusEnum - -TRLink registration status - -## Enum - -* `STARTING` (value: `'STARTING'`) - -* `PRESCREENED` (value: `'PRESCREENED'`) - -* `COMPLETED` (value: `'COMPLETED'`) - -* `FAILED` (value: `'FAILED'`) - -* `VOID` (value: `'VOID'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtSZWdpc3RyYXRpb25TdGF0dXNFbnVtCgpUUkxpbmsgcmVnaXN0cmF0aW9uIHN0YXR1cwoKIyMgRW51bQoKKiBgU1RBUlRJTkdgICh2YWx1ZTogYCdTVEFSVElORydgKQoKKiBgUFJFU0NSRUVORURgICh2YWx1ZTogYCdQUkVTQ1JFRU5FRCdgKQoKKiBgQ09NUExFVEVEYCAodmFsdWU6IGAnQ09NUExFVEVEJ2ApCgoqIGBGQUlMRURgICh2YWx1ZTogYCdGQUlMRUQnYCkKCiogYFZPSURgICh2YWx1ZTogYCdWT0lEJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkResult.md b/docs/TRLinkResult.md index ccb05044..e71e7f45 100644 --- a/docs/TRLinkResult.md +++ b/docs/TRLinkResult.md @@ -1,43 +1 @@ -# TRLinkResult - -TRLink screening result - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**provider** | **str** | The TRLink provider name | -**timestamp** | **float** | Unix timestamp of the screening result | -**status** | **str** | Status of the TRLink screening | -**verdict** | [**TRLinkVerdict**](TRLinkVerdict.md) | | [optional] -**dest_address** | **str** | The destination address associated with the TRLink screening | [optional] -**dest_tag** | **str** | Destination tag for the screening | [optional] -**bypass_reason** | **str** | Reason for bypassing the TRLink screening | [optional] -**details_message** | **str** | Additional details message about the screening result | [optional] -**customer_integration_id** | **str** | Customer integration identifier | [optional] -**customer_short_name** | **str** | Customer short name | [optional] -**travel_rule_message_id** | **str** | Travel rule message identifier for linking | [optional] -**result** | [**TRLinkProviderResultWithRule**](TRLinkProviderResultWithRule.md) | | [optional] -**matched_prescreening_rule** | [**TRLinkPreScreeningRule**](TRLinkPreScreeningRule.md) | | [optional] -**matched_no_trm_screening_rule** | [**TRLinkMissingTrmDecision**](TRLinkMissingTrmDecision.md) | | [optional] - -## Example - -```python -from fireblocks.models.tr_link_result import TRLinkResult - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkResult from a JSON string -tr_link_result_instance = TRLinkResult.from_json(json) -# print the JSON string representation of the object -print(TRLinkResult.to_json()) - -# convert the object into a dict -tr_link_result_dict = tr_link_result_instance.to_dict() -# create an instance of TRLinkResult from a dict -tr_link_result_from_dict = TRLinkResult.from_dict(tr_link_result_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtSZXN1bHQKClRSTGluayBzY3JlZW5pbmcgcmVzdWx0CgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcHJvdmlkZXIqKiB8ICoqc3RyKiogfCBUaGUgVFJMaW5rIHByb3ZpZGVyIG5hbWUgfCAKKip0aW1lc3RhbXAqKiB8ICoqZmxvYXQqKiB8IFVuaXggdGltZXN0YW1wIG9mIHRoZSBzY3JlZW5pbmcgcmVzdWx0IHwgCioqc3RhdHVzKiogfCAqKnN0cioqIHwgU3RhdHVzIG9mIHRoZSBUUkxpbmsgc2NyZWVuaW5nIHwgCioqdmVyZGljdCoqIHwgWyoqVFJMaW5rVmVyZGljdCoqXShUUkxpbmtWZXJkaWN0Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZGVzdF9hZGRyZXNzKiogfCAqKnN0cioqIHwgVGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBUUkxpbmsgc2NyZWVuaW5nIHwgW29wdGlvbmFsXSAKKipkZXN0X3RhZyoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIHRhZyBmb3IgdGhlIHNjcmVlbmluZyB8IFtvcHRpb25hbF0gCioqYnlwYXNzX3JlYXNvbioqIHwgKipzdHIqKiB8IFJlYXNvbiBmb3IgYnlwYXNzaW5nIHRoZSBUUkxpbmsgc2NyZWVuaW5nIHwgW29wdGlvbmFsXSAKKipkZXRhaWxzX21lc3NhZ2UqKiB8ICoqc3RyKiogfCBBZGRpdGlvbmFsIGRldGFpbHMgbWVzc2FnZSBhYm91dCB0aGUgc2NyZWVuaW5nIHJlc3VsdCB8IFtvcHRpb25hbF0gCioqY3VzdG9tZXJfaW50ZWdyYXRpb25faWQqKiB8ICoqc3RyKiogfCBDdXN0b21lciBpbnRlZ3JhdGlvbiBpZGVudGlmaWVyIHwgW29wdGlvbmFsXSAKKipjdXN0b21lcl9zaG9ydF9uYW1lKiogfCAqKnN0cioqIHwgQ3VzdG9tZXIgc2hvcnQgbmFtZSB8IFtvcHRpb25hbF0gCioqdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCoqIHwgKipzdHIqKiB8IFRyYXZlbCBydWxlIG1lc3NhZ2UgaWRlbnRpZmllciBmb3IgbGlua2luZyB8IFtvcHRpb25hbF0gCioqcmVzdWx0KiogfCBbKipUUkxpbmtQcm92aWRlclJlc3VsdFdpdGhSdWxlKipdKFRSTGlua1Byb3ZpZGVyUmVzdWx0V2l0aFJ1bGUubWQpIHwgIHwgW29wdGlvbmFsXSAKKiptYXRjaGVkX3ByZXNjcmVlbmluZ19ydWxlKiogfCBbKipUUkxpbmtQcmVTY3JlZW5pbmdSdWxlKipdKFRSTGlua1ByZVNjcmVlbmluZ1J1bGUubWQpIHwgIHwgW29wdGlvbmFsXSAKKiptYXRjaGVkX25vX3RybV9zY3JlZW5pbmdfcnVsZSoqIHwgWyoqVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uKipdKFRSTGlua01pc3NpbmdUcm1EZWNpc2lvbi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19yZXN1bHQgaW1wb3J0IFRSTGlua1Jlc3VsdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUmVzdWx0IGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX3Jlc3VsdF9pbnN0YW5jZSA9IFRSTGlua1Jlc3VsdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtSZXN1bHQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua19yZXN1bHRfZGljdCA9IHRyX2xpbmtfcmVzdWx0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtSZXN1bHQgZnJvbSBhIGRpY3QKdHJfbGlua19yZXN1bHRfZnJvbV9kaWN0ID0gVFJMaW5rUmVzdWx0LmZyb21fZGljdCh0cl9saW5rX3Jlc3VsdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkResultFullPayload.md b/docs/TRLinkResultFullPayload.md index 98683c27..052bfdf1 100644 --- a/docs/TRLinkResultFullPayload.md +++ b/docs/TRLinkResultFullPayload.md @@ -1,43 +1 @@ -# TRLinkResultFullPayload - -TRLink screening result - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**provider** | **str** | The TRLink provider name | -**timestamp** | **float** | Unix timestamp of the screening result | -**status** | **str** | Status of the TRLink screening | -**verdict** | [**TRLinkVerdictEnum**](TRLinkVerdictEnum.md) | | [optional] -**dest_address** | **str** | The destination address associated with the TRLink screening | [optional] -**dest_tag** | **str** | Destination tag for the screening | [optional] -**bypass_reason** | **str** | Reason for bypassing the TRLink screening | [optional] -**details_message** | **str** | Additional details message about the screening result | [optional] -**customer_integration_id** | **str** | Customer integration identifier | [optional] -**customer_short_name** | **str** | Customer short name | [optional] -**travel_rule_message_id** | **str** | Travel rule message identifier for linking | [optional] -**result** | [**TRLinkProviderResultWithRule2**](TRLinkProviderResultWithRule2.md) | | [optional] -**matched_prescreening_rule** | [**ScreeningTRLinkPrescreeningRule**](ScreeningTRLinkPrescreeningRule.md) | | [optional] -**matched_no_trm_screening_rule** | [**ScreeningTRLinkMissingTrmDecision**](ScreeningTRLinkMissingTrmDecision.md) | | [optional] - -## Example - -```python -from fireblocks.models.tr_link_result_full_payload import TRLinkResultFullPayload - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkResultFullPayload from a JSON string -tr_link_result_full_payload_instance = TRLinkResultFullPayload.from_json(json) -# print the JSON string representation of the object -print(TRLinkResultFullPayload.to_json()) - -# convert the object into a dict -tr_link_result_full_payload_dict = tr_link_result_full_payload_instance.to_dict() -# create an instance of TRLinkResultFullPayload from a dict -tr_link_result_full_payload_from_dict = TRLinkResultFullPayload.from_dict(tr_link_result_full_payload_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtSZXN1bHRGdWxsUGF5bG9hZAoKVFJMaW5rIHNjcmVlbmluZyByZXN1bHQKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipwcm92aWRlcioqIHwgKipzdHIqKiB8IFRoZSBUUkxpbmsgcHJvdmlkZXIgbmFtZSB8IAoqKnRpbWVzdGFtcCoqIHwgKipmbG9hdCoqIHwgVW5peCB0aW1lc3RhbXAgb2YgdGhlIHNjcmVlbmluZyByZXN1bHQgfCAKKipzdGF0dXMqKiB8ICoqc3RyKiogfCBTdGF0dXMgb2YgdGhlIFRSTGluayBzY3JlZW5pbmcgfCAKKip2ZXJkaWN0KiogfCBbKipUUkxpbmtWZXJkaWN0RW51bSoqXShUUkxpbmtWZXJkaWN0RW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRlc3RfYWRkcmVzcyoqIHwgKipzdHIqKiB8IFRoZSBkZXN0aW5hdGlvbiBhZGRyZXNzIGFzc29jaWF0ZWQgd2l0aCB0aGUgVFJMaW5rIHNjcmVlbmluZyB8IFtvcHRpb25hbF0gCioqZGVzdF90YWcqKiB8ICoqc3RyKiogfCBEZXN0aW5hdGlvbiB0YWcgZm9yIHRoZSBzY3JlZW5pbmcgfCBbb3B0aW9uYWxdIAoqKmJ5cGFzc19yZWFzb24qKiB8ICoqc3RyKiogfCBSZWFzb24gZm9yIGJ5cGFzc2luZyB0aGUgVFJMaW5rIHNjcmVlbmluZyB8IFtvcHRpb25hbF0gCioqZGV0YWlsc19tZXNzYWdlKiogfCAqKnN0cioqIHwgQWRkaXRpb25hbCBkZXRhaWxzIG1lc3NhZ2UgYWJvdXQgdGhlIHNjcmVlbmluZyByZXN1bHQgfCBbb3B0aW9uYWxdIAoqKmN1c3RvbWVyX2ludGVncmF0aW9uX2lkKiogfCAqKnN0cioqIHwgQ3VzdG9tZXIgaW50ZWdyYXRpb24gaWRlbnRpZmllciB8IFtvcHRpb25hbF0gCioqY3VzdG9tZXJfc2hvcnRfbmFtZSoqIHwgKipzdHIqKiB8IEN1c3RvbWVyIHNob3J0IG5hbWUgfCBbb3B0aW9uYWxdIAoqKnRyYXZlbF9ydWxlX21lc3NhZ2VfaWQqKiB8ICoqc3RyKiogfCBUcmF2ZWwgcnVsZSBtZXNzYWdlIGlkZW50aWZpZXIgZm9yIGxpbmtpbmcgfCBbb3B0aW9uYWxdIAoqKnJlc3VsdCoqIHwgWyoqVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZTIqKl0oVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZTIubWQpIHwgIHwgW29wdGlvbmFsXSAKKiptYXRjaGVkX3ByZXNjcmVlbmluZ19ydWxlKiogfCBbKipTY3JlZW5pbmdUUkxpbmtQcmVzY3JlZW5pbmdSdWxlKipdKFNjcmVlbmluZ1RSTGlua1ByZXNjcmVlbmluZ1J1bGUubWQpIHwgIHwgW29wdGlvbmFsXSAKKiptYXRjaGVkX25vX3RybV9zY3JlZW5pbmdfcnVsZSoqIHwgWyoqU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uKipdKFNjcmVlbmluZ1RSTGlua01pc3NpbmdUcm1EZWNpc2lvbi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19yZXN1bHRfZnVsbF9wYXlsb2FkIGltcG9ydCBUUkxpbmtSZXN1bHRGdWxsUGF5bG9hZAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUmVzdWx0RnVsbFBheWxvYWQgZnJvbSBhIEpTT04gc3RyaW5nCnRyX2xpbmtfcmVzdWx0X2Z1bGxfcGF5bG9hZF9pbnN0YW5jZSA9IFRSTGlua1Jlc3VsdEZ1bGxQYXlsb2FkLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRSTGlua1Jlc3VsdEZ1bGxQYXlsb2FkLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyX2xpbmtfcmVzdWx0X2Z1bGxfcGF5bG9hZF9kaWN0ID0gdHJfbGlua19yZXN1bHRfZnVsbF9wYXlsb2FkX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtSZXN1bHRGdWxsUGF5bG9hZCBmcm9tIGEgZGljdAp0cl9saW5rX3Jlc3VsdF9mdWxsX3BheWxvYWRfZnJvbV9kaWN0ID0gVFJMaW5rUmVzdWx0RnVsbFBheWxvYWQuZnJvbV9kaWN0KHRyX2xpbmtfcmVzdWx0X2Z1bGxfcGF5bG9hZF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkRuleBase.md b/docs/TRLinkRuleBase.md index e0249806..19b1a83d 100644 --- a/docs/TRLinkRuleBase.md +++ b/docs/TRLinkRuleBase.md @@ -1,46 +1 @@ -# TRLinkRuleBase - -Base interface for TRLink policy rules - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**customer_id** | **str** | Reference to TrlinkCustomer.id | [optional] -**direction** | [**TransactionDirection**](TransactionDirection.md) | | [optional] -**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**source_address** | **str** | Source address | [optional] -**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**dest_address** | **str** | Destination address | [optional] -**source_id** | **str** | Source ID | [optional] -**dest_id** | **str** | Destination ID | [optional] -**asset** | **str** | Asset symbol | [optional] -**base_asset** | **str** | Base asset symbol | [optional] -**amount** | [**TRLinkAmount**](TRLinkAmount.md) | | [optional] -**network_protocol** | **str** | Network protocol | [optional] -**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional] -**description** | **str** | Rule description | [optional] -**is_default** | **bool** | Whether this is a default rule | [optional] [default to False] - -## Example - -```python -from fireblocks.models.tr_link_rule_base import TRLinkRuleBase - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkRuleBase from a JSON string -tr_link_rule_base_instance = TRLinkRuleBase.from_json(json) -# print the JSON string representation of the object -print(TRLinkRuleBase.to_json()) - -# convert the object into a dict -tr_link_rule_base_dict = tr_link_rule_base_instance.to_dict() -# create an instance of TRLinkRuleBase from a dict -tr_link_rule_base_from_dict = TRLinkRuleBase.from_dict(tr_link_rule_base_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtSdWxlQmFzZQoKQmFzZSBpbnRlcmZhY2UgZm9yIFRSTGluayBwb2xpY3kgcnVsZXMKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipjdXN0b21lcl9pZCoqIHwgKipzdHIqKiB8IFJlZmVyZW5jZSB0byBUcmxpbmtDdXN0b21lci5pZCB8IFtvcHRpb25hbF0gCioqZGlyZWN0aW9uKiogfCBbKipUcmFuc2FjdGlvbkRpcmVjdGlvbioqXShUcmFuc2FjdGlvbkRpcmVjdGlvbi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9zdWJfdHlwZSoqIHwgWyoqVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0qKl0oVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipzb3VyY2VfYWRkcmVzcyoqIHwgKipzdHIqKiB8IFNvdXJjZSBhZGRyZXNzIHwgW29wdGlvbmFsXSAKKipkZXN0X3R5cGUqKiB8IFsqKlRyYW5zZmVyUGVlclR5cGVFbnVtKipdKFRyYW5zZmVyUGVlclR5cGVFbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZGVzdF9zdWJfdHlwZSoqIHwgWyoqVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0qKl0oVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipkZXN0X2FkZHJlc3MqKiB8ICoqc3RyKiogfCBEZXN0aW5hdGlvbiBhZGRyZXNzIHwgW29wdGlvbmFsXSAKKipzb3VyY2VfaWQqKiB8ICoqc3RyKiogfCBTb3VyY2UgSUQgfCBbb3B0aW9uYWxdIAoqKmRlc3RfaWQqKiB8ICoqc3RyKiogfCBEZXN0aW5hdGlvbiBJRCB8IFtvcHRpb25hbF0gCioqYXNzZXQqKiB8ICoqc3RyKiogfCBBc3NldCBzeW1ib2wgfCBbb3B0aW9uYWxdIAoqKmJhc2VfYXNzZXQqKiB8ICoqc3RyKiogfCBCYXNlIGFzc2V0IHN5bWJvbCB8IFtvcHRpb25hbF0gCioqYW1vdW50KiogfCBbKipUUkxpbmtBbW91bnQqKl0oVFJMaW5rQW1vdW50Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqbmV0d29ya19wcm90b2NvbCoqIHwgKipzdHIqKiB8IE5ldHdvcmsgcHJvdG9jb2wgfCBbb3B0aW9uYWxdIAoqKm9wZXJhdGlvbioqIHwgWyoqVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtKipdKFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRlc2NyaXB0aW9uKiogfCAqKnN0cioqIHwgUnVsZSBkZXNjcmlwdGlvbiB8IFtvcHRpb25hbF0gCioqaXNfZGVmYXVsdCoqIHwgKipib29sKiogfCBXaGV0aGVyIHRoaXMgaXMgYSBkZWZhdWx0IHJ1bGUgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIEZhbHNlXQoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19ydWxlX2Jhc2UgaW1wb3J0IFRSTGlua1J1bGVCYXNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtSdWxlQmFzZSBmcm9tIGEgSlNPTiBzdHJpbmcKdHJfbGlua19ydWxlX2Jhc2VfaW5zdGFuY2UgPSBUUkxpbmtSdWxlQmFzZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtSdWxlQmFzZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX3J1bGVfYmFzZV9kaWN0ID0gdHJfbGlua19ydWxlX2Jhc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1J1bGVCYXNlIGZyb20gYSBkaWN0CnRyX2xpbmtfcnVsZV9iYXNlX2Zyb21fZGljdCA9IFRSTGlua1J1bGVCYXNlLmZyb21fZGljdCh0cl9saW5rX3J1bGVfYmFzZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkSetDestinationTravelRuleMessageIdRequest.md b/docs/TRLinkSetDestinationTravelRuleMessageIdRequest.md index 52650195..add9e9bf 100644 --- a/docs/TRLinkSetDestinationTravelRuleMessageIdRequest.md +++ b/docs/TRLinkSetDestinationTravelRuleMessageIdRequest.md @@ -1,32 +1 @@ -# TRLinkSetDestinationTravelRuleMessageIdRequest - -Request to set TRM ID for specific transaction destination - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | **str** | Destination amount for matching | -**destination** | [**TRLinkTransferPeerPath**](TRLinkTransferPeerPath.md) | | -**travel_rule_message_id** | **str** | Travel Rule Message ID to associate with destination (null to unset) | - -## Example - -```python -from fireblocks.models.tr_link_set_destination_travel_rule_message_id_request import TRLinkSetDestinationTravelRuleMessageIdRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkSetDestinationTravelRuleMessageIdRequest from a JSON string -tr_link_set_destination_travel_rule_message_id_request_instance = TRLinkSetDestinationTravelRuleMessageIdRequest.from_json(json) -# print the JSON string representation of the object -print(TRLinkSetDestinationTravelRuleMessageIdRequest.to_json()) - -# convert the object into a dict -tr_link_set_destination_travel_rule_message_id_request_dict = tr_link_set_destination_travel_rule_message_id_request_instance.to_dict() -# create an instance of TRLinkSetDestinationTravelRuleMessageIdRequest from a dict -tr_link_set_destination_travel_rule_message_id_request_from_dict = TRLinkSetDestinationTravelRuleMessageIdRequest.from_dict(tr_link_set_destination_travel_rule_message_id_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtTZXREZXN0aW5hdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXF1ZXN0CgpSZXF1ZXN0IHRvIHNldCBUUk0gSUQgZm9yIHNwZWNpZmljIHRyYW5zYWN0aW9uIGRlc3RpbmF0aW9uCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYW1vdW50KiogfCAqKnN0cioqIHwgRGVzdGluYXRpb24gYW1vdW50IGZvciBtYXRjaGluZyB8IAoqKmRlc3RpbmF0aW9uKiogfCBbKipUUkxpbmtUcmFuc2ZlclBlZXJQYXRoKipdKFRSTGlua1RyYW5zZmVyUGVlclBhdGgubWQpIHwgIHwgCioqdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCoqIHwgKipzdHIqKiB8IFRyYXZlbCBSdWxlIE1lc3NhZ2UgSUQgdG8gYXNzb2NpYXRlIHdpdGggZGVzdGluYXRpb24gKG51bGwgdG8gdW5zZXQpIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3NldF9kZXN0aW5hdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3JlcXVlc3QgaW1wb3J0IFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCnRyX2xpbmtfc2V0X2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVxdWVzdF9pbnN0YW5jZSA9IFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX3NldF9kZXN0aW5hdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3JlcXVlc3RfZGljdCA9IHRyX2xpbmtfc2V0X2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVxdWVzdCBmcm9tIGEgZGljdAp0cl9saW5rX3NldF9kZXN0aW5hdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3JlcXVlc3RfZnJvbV9kaWN0ID0gVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVxdWVzdC5mcm9tX2RpY3QodHJfbGlua19zZXRfZGVzdGluYXRpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkSetDestinationTravelRuleMessageIdResponse.md b/docs/TRLinkSetDestinationTravelRuleMessageIdResponse.md index 9546f6e5..42320924 100644 --- a/docs/TRLinkSetDestinationTravelRuleMessageIdResponse.md +++ b/docs/TRLinkSetDestinationTravelRuleMessageIdResponse.md @@ -1,32 +1 @@ -# TRLinkSetDestinationTravelRuleMessageIdResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**success** | **bool** | Whether the operation was successful | -**updated_destinations** | **float** | Number of destinations updated | -**failed_destinations** | **float** | Number of destinations that failed to update | -**errors** | **List[str]** | List of errors (if any) | [optional] - -## Example - -```python -from fireblocks.models.tr_link_set_destination_travel_rule_message_id_response import TRLinkSetDestinationTravelRuleMessageIdResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkSetDestinationTravelRuleMessageIdResponse from a JSON string -tr_link_set_destination_travel_rule_message_id_response_instance = TRLinkSetDestinationTravelRuleMessageIdResponse.from_json(json) -# print the JSON string representation of the object -print(TRLinkSetDestinationTravelRuleMessageIdResponse.to_json()) - -# convert the object into a dict -tr_link_set_destination_travel_rule_message_id_response_dict = tr_link_set_destination_travel_rule_message_id_response_instance.to_dict() -# create an instance of TRLinkSetDestinationTravelRuleMessageIdResponse from a dict -tr_link_set_destination_travel_rule_message_id_response_from_dict = TRLinkSetDestinationTravelRuleMessageIdResponse.from_dict(tr_link_set_destination_travel_rule_message_id_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtTZXREZXN0aW5hdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzdWNjZXNzKiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgdGhlIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bCB8IAoqKnVwZGF0ZWRfZGVzdGluYXRpb25zKiogfCAqKmZsb2F0KiogfCBOdW1iZXIgb2YgZGVzdGluYXRpb25zIHVwZGF0ZWQgfCAKKipmYWlsZWRfZGVzdGluYXRpb25zKiogfCAqKmZsb2F0KiogfCBOdW1iZXIgb2YgZGVzdGluYXRpb25zIHRoYXQgZmFpbGVkIHRvIHVwZGF0ZSB8IAoqKmVycm9ycyoqIHwgKipMaXN0W3N0cl0qKiB8IExpc3Qgb2YgZXJyb3JzIChpZiBhbnkpIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfc2V0X2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVzcG9uc2UgaW1wb3J0IFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtTZXREZXN0aW5hdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKdHJfbGlua19zZXRfZGVzdGluYXRpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXNwb25zZV9pbnN0YW5jZSA9IFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyX2xpbmtfc2V0X2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVzcG9uc2VfZGljdCA9IHRyX2xpbmtfc2V0X2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlIGZyb20gYSBkaWN0CnRyX2xpbmtfc2V0X2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVzcG9uc2VfZnJvbV9kaWN0ID0gVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2UuZnJvbV9kaWN0KHRyX2xpbmtfc2V0X2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkSetTransactionTravelRuleMessageIdRequest.md b/docs/TRLinkSetTransactionTravelRuleMessageIdRequest.md index 778c7917..d1c0494c 100644 --- a/docs/TRLinkSetTransactionTravelRuleMessageIdRequest.md +++ b/docs/TRLinkSetTransactionTravelRuleMessageIdRequest.md @@ -1,29 +1 @@ -# TRLinkSetTransactionTravelRuleMessageIdRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**travel_rule_message_id** | **str** | Travel Rule Message ID to associate with transaction (null to unset) | - -## Example - -```python -from fireblocks.models.tr_link_set_transaction_travel_rule_message_id_request import TRLinkSetTransactionTravelRuleMessageIdRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkSetTransactionTravelRuleMessageIdRequest from a JSON string -tr_link_set_transaction_travel_rule_message_id_request_instance = TRLinkSetTransactionTravelRuleMessageIdRequest.from_json(json) -# print the JSON string representation of the object -print(TRLinkSetTransactionTravelRuleMessageIdRequest.to_json()) - -# convert the object into a dict -tr_link_set_transaction_travel_rule_message_id_request_dict = tr_link_set_transaction_travel_rule_message_id_request_instance.to_dict() -# create an instance of TRLinkSetTransactionTravelRuleMessageIdRequest from a dict -tr_link_set_transaction_travel_rule_message_id_request_from_dict = TRLinkSetTransactionTravelRuleMessageIdRequest.from_dict(tr_link_set_transaction_travel_rule_message_id_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnRyYXZlbF9ydWxlX21lc3NhZ2VfaWQqKiB8ICoqc3RyKiogfCBUcmF2ZWwgUnVsZSBNZXNzYWdlIElEIHRvIGFzc29jaWF0ZSB3aXRoIHRyYW5zYWN0aW9uIChudWxsIHRvIHVuc2V0KSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19zZXRfdHJhbnNhY3Rpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXF1ZXN0IGltcG9ydCBUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX3NldF90cmFuc2FjdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3JlcXVlc3RfaW5zdGFuY2UgPSBUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua19zZXRfdHJhbnNhY3Rpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXF1ZXN0X2RpY3QgPSB0cl9saW5rX3NldF90cmFuc2FjdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QgZnJvbSBhIGRpY3QKdHJfbGlua19zZXRfdHJhbnNhY3Rpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXF1ZXN0X2Zyb21fZGljdCA9IFRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QuZnJvbV9kaWN0KHRyX2xpbmtfc2V0X3RyYW5zYWN0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkSetTransactionTravelRuleMessageIdResponse.md b/docs/TRLinkSetTransactionTravelRuleMessageIdResponse.md index 3280d43a..d443d536 100644 --- a/docs/TRLinkSetTransactionTravelRuleMessageIdResponse.md +++ b/docs/TRLinkSetTransactionTravelRuleMessageIdResponse.md @@ -1,29 +1 @@ -# TRLinkSetTransactionTravelRuleMessageIdResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**success** | **bool** | Whether the operation was successful | - -## Example - -```python -from fireblocks.models.tr_link_set_transaction_travel_rule_message_id_response import TRLinkSetTransactionTravelRuleMessageIdResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkSetTransactionTravelRuleMessageIdResponse from a JSON string -tr_link_set_transaction_travel_rule_message_id_response_instance = TRLinkSetTransactionTravelRuleMessageIdResponse.from_json(json) -# print the JSON string representation of the object -print(TRLinkSetTransactionTravelRuleMessageIdResponse.to_json()) - -# convert the object into a dict -tr_link_set_transaction_travel_rule_message_id_response_dict = tr_link_set_transaction_travel_rule_message_id_response_instance.to_dict() -# create an instance of TRLinkSetTransactionTravelRuleMessageIdResponse from a dict -tr_link_set_transaction_travel_rule_message_id_response_from_dict = TRLinkSetTransactionTravelRuleMessageIdResponse.from_dict(tr_link_set_transaction_travel_rule_message_id_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzdWNjZXNzKiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgdGhlIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19zZXRfdHJhbnNhY3Rpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXNwb25zZSBpbXBvcnQgVFJMaW5rU2V0VHJhbnNhY3Rpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX3NldF90cmFuc2FjdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3Jlc3BvbnNlX2luc3RhbmNlID0gVFJMaW5rU2V0VHJhbnNhY3Rpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVFJMaW5rU2V0VHJhbnNhY3Rpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua19zZXRfdHJhbnNhY3Rpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXNwb25zZV9kaWN0ID0gdHJfbGlua19zZXRfdHJhbnNhY3Rpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rU2V0VHJhbnNhY3Rpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2UgZnJvbSBhIGRpY3QKdHJfbGlua19zZXRfdHJhbnNhY3Rpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXNwb25zZV9mcm9tX2RpY3QgPSBUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXNwb25zZS5mcm9tX2RpY3QodHJfbGlua19zZXRfdHJhbnNhY3Rpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkSourceTransferPeerPath.md b/docs/TRLinkSourceTransferPeerPath.md index 91f79bab..fca379c2 100644 --- a/docs/TRLinkSourceTransferPeerPath.md +++ b/docs/TRLinkSourceTransferPeerPath.md @@ -1,32 +1 @@ -# TRLinkSourceTransferPeerPath - -Source peer path for transaction - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | Source peer type (e.g., VAULT_ACCOUNT, UNKNOWN) | -**id** | **str** | Source peer ID | [optional] -**wallet_id** | **str** | Source wallet ID | [optional] - -## Example - -```python -from fireblocks.models.tr_link_source_transfer_peer_path import TRLinkSourceTransferPeerPath - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkSourceTransferPeerPath from a JSON string -tr_link_source_transfer_peer_path_instance = TRLinkSourceTransferPeerPath.from_json(json) -# print the JSON string representation of the object -print(TRLinkSourceTransferPeerPath.to_json()) - -# convert the object into a dict -tr_link_source_transfer_peer_path_dict = tr_link_source_transfer_peer_path_instance.to_dict() -# create an instance of TRLinkSourceTransferPeerPath from a dict -tr_link_source_transfer_peer_path_from_dict = TRLinkSourceTransferPeerPath.from_dict(tr_link_source_transfer_peer_path_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtTb3VyY2VUcmFuc2ZlclBlZXJQYXRoCgpTb3VyY2UgcGVlciBwYXRoIGZvciB0cmFuc2FjdGlvbgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8ICoqc3RyKiogfCBTb3VyY2UgcGVlciB0eXBlIChlLmcuLCBWQVVMVF9BQ0NPVU5ULCBVTktOT1dOKSB8IAoqKmlkKiogfCAqKnN0cioqIHwgU291cmNlIHBlZXIgSUQgfCBbb3B0aW9uYWxdIAoqKndhbGxldF9pZCoqIHwgKipzdHIqKiB8IFNvdXJjZSB3YWxsZXQgSUQgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19zb3VyY2VfdHJhbnNmZXJfcGVlcl9wYXRoIGltcG9ydCBUUkxpbmtTb3VyY2VUcmFuc2ZlclBlZXJQYXRoCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtTb3VyY2VUcmFuc2ZlclBlZXJQYXRoIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX3NvdXJjZV90cmFuc2Zlcl9wZWVyX3BhdGhfaW5zdGFuY2UgPSBUUkxpbmtTb3VyY2VUcmFuc2ZlclBlZXJQYXRoLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRSTGlua1NvdXJjZVRyYW5zZmVyUGVlclBhdGgudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua19zb3VyY2VfdHJhbnNmZXJfcGVlcl9wYXRoX2RpY3QgPSB0cl9saW5rX3NvdXJjZV90cmFuc2Zlcl9wZWVyX3BhdGhfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1NvdXJjZVRyYW5zZmVyUGVlclBhdGggZnJvbSBhIGRpY3QKdHJfbGlua19zb3VyY2VfdHJhbnNmZXJfcGVlcl9wYXRoX2Zyb21fZGljdCA9IFRSTGlua1NvdXJjZVRyYW5zZmVyUGVlclBhdGguZnJvbV9kaWN0KHRyX2xpbmtfc291cmNlX3RyYW5zZmVyX3BlZXJfcGF0aF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkTestConnectionResponse.md b/docs/TRLinkTestConnectionResponse.md index 4390b342..51e70447 100644 --- a/docs/TRLinkTestConnectionResponse.md +++ b/docs/TRLinkTestConnectionResponse.md @@ -1,33 +1 @@ -# TRLinkTestConnectionResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**success** | **bool** | Whether the connection test was successful | -**message** | **str** | Additional message about the connection test (present when success is false) | [optional] -**timestamp** | **datetime** | Timestamp when the test was performed (ISO 8601 format) | -**partner_ident** | **str** | Partner identification code | [optional] -**partner_name** | **str** | Partner display name | [optional] - -## Example - -```python -from fireblocks.models.tr_link_test_connection_response import TRLinkTestConnectionResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkTestConnectionResponse from a JSON string -tr_link_test_connection_response_instance = TRLinkTestConnectionResponse.from_json(json) -# print the JSON string representation of the object -print(TRLinkTestConnectionResponse.to_json()) - -# convert the object into a dict -tr_link_test_connection_response_dict = tr_link_test_connection_response_instance.to_dict() -# create an instance of TRLinkTestConnectionResponse from a dict -tr_link_test_connection_response_from_dict = TRLinkTestConnectionResponse.from_dict(tr_link_test_connection_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtUZXN0Q29ubmVjdGlvblJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnN1Y2Nlc3MqKiB8ICoqYm9vbCoqIHwgV2hldGhlciB0aGUgY29ubmVjdGlvbiB0ZXN0IHdhcyBzdWNjZXNzZnVsIHwgCioqbWVzc2FnZSoqIHwgKipzdHIqKiB8IEFkZGl0aW9uYWwgbWVzc2FnZSBhYm91dCB0aGUgY29ubmVjdGlvbiB0ZXN0IChwcmVzZW50IHdoZW4gc3VjY2VzcyBpcyBmYWxzZSkgfCBbb3B0aW9uYWxdIAoqKnRpbWVzdGFtcCoqIHwgKipkYXRldGltZSoqIHwgVGltZXN0YW1wIHdoZW4gdGhlIHRlc3Qgd2FzIHBlcmZvcm1lZCAoSVNPIDg2MDEgZm9ybWF0KSB8IAoqKnBhcnRuZXJfaWRlbnQqKiB8ICoqc3RyKiogfCBQYXJ0bmVyIGlkZW50aWZpY2F0aW9uIGNvZGUgfCBbb3B0aW9uYWxdIAoqKnBhcnRuZXJfbmFtZSoqIHwgKipzdHIqKiB8IFBhcnRuZXIgZGlzcGxheSBuYW1lIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdGVzdF9jb25uZWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtUZXN0Q29ubmVjdGlvblJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtUZXN0Q29ubmVjdGlvblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX3Rlc3RfY29ubmVjdGlvbl9yZXNwb25zZV9pbnN0YW5jZSA9IFRSTGlua1Rlc3RDb25uZWN0aW9uUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVFJMaW5rVGVzdENvbm5lY3Rpb25SZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX3Rlc3RfY29ubmVjdGlvbl9yZXNwb25zZV9kaWN0ID0gdHJfbGlua190ZXN0X2Nvbm5lY3Rpb25fcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1Rlc3RDb25uZWN0aW9uUmVzcG9uc2UgZnJvbSBhIGRpY3QKdHJfbGlua190ZXN0X2Nvbm5lY3Rpb25fcmVzcG9uc2VfZnJvbV9kaWN0ID0gVFJMaW5rVGVzdENvbm5lY3Rpb25SZXNwb25zZS5mcm9tX2RpY3QodHJfbGlua190ZXN0X2Nvbm5lY3Rpb25fcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkThresholds.md b/docs/TRLinkThresholds.md index e566d202..725352c9 100644 --- a/docs/TRLinkThresholds.md +++ b/docs/TRLinkThresholds.md @@ -1,30 +1 @@ -# TRLinkThresholds - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | **str** | Threshold amount | [optional] -**currency** | **str** | Currency code | [optional] - -## Example - -```python -from fireblocks.models.tr_link_thresholds import TRLinkThresholds - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkThresholds from a JSON string -tr_link_thresholds_instance = TRLinkThresholds.from_json(json) -# print the JSON string representation of the object -print(TRLinkThresholds.to_json()) - -# convert the object into a dict -tr_link_thresholds_dict = tr_link_thresholds_instance.to_dict() -# create an instance of TRLinkThresholds from a dict -tr_link_thresholds_from_dict = TRLinkThresholds.from_dict(tr_link_thresholds_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtUaHJlc2hvbGRzCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFtb3VudCoqIHwgKipzdHIqKiB8IFRocmVzaG9sZCBhbW91bnQgfCBbb3B0aW9uYWxdIAoqKmN1cnJlbmN5KiogfCAqKnN0cioqIHwgQ3VycmVuY3kgY29kZSB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3RocmVzaG9sZHMgaW1wb3J0IFRSTGlua1RocmVzaG9sZHMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1RocmVzaG9sZHMgZnJvbSBhIEpTT04gc3RyaW5nCnRyX2xpbmtfdGhyZXNob2xkc19pbnN0YW5jZSA9IFRSTGlua1RocmVzaG9sZHMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVFJMaW5rVGhyZXNob2xkcy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX3RocmVzaG9sZHNfZGljdCA9IHRyX2xpbmtfdGhyZXNob2xkc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rVGhyZXNob2xkcyBmcm9tIGEgZGljdAp0cl9saW5rX3RocmVzaG9sZHNfZnJvbV9kaWN0ID0gVFJMaW5rVGhyZXNob2xkcy5mcm9tX2RpY3QodHJfbGlua190aHJlc2hvbGRzX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkTransactionDirection.md b/docs/TRLinkTransactionDirection.md index 2a2723c7..70ac0bef 100644 --- a/docs/TRLinkTransactionDirection.md +++ b/docs/TRLinkTransactionDirection.md @@ -1,13 +1 @@ -# TRLinkTransactionDirection - -Transaction direction from workspace perspective - -## Enum - -* `INBOUND` (value: `'INBOUND'`) - -* `OUTBOUND` (value: `'OUTBOUND'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtUcmFuc2FjdGlvbkRpcmVjdGlvbgoKVHJhbnNhY3Rpb24gZGlyZWN0aW9uIGZyb20gd29ya3NwYWNlIHBlcnNwZWN0aXZlCgojIyBFbnVtCgoqIGBJTkJPVU5EYCAodmFsdWU6IGAnSU5CT1VORCdgKQoKKiBgT1VUQk9VTkRgICh2YWx1ZTogYCdPVVRCT1VORCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkTransferPeerPath.md b/docs/TRLinkTransferPeerPath.md index 2337ef71..c45d13ff 100644 --- a/docs/TRLinkTransferPeerPath.md +++ b/docs/TRLinkTransferPeerPath.md @@ -1,33 +1 @@ -# TRLinkTransferPeerPath - -Transfer peer path for destination matching - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | Peer type | [optional] -**id** | **str** | Peer ID | [optional] -**sub_type** | **str** | Peer subtype | [optional] -**address** | **str** | Peer address | [optional] - -## Example - -```python -from fireblocks.models.tr_link_transfer_peer_path import TRLinkTransferPeerPath - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkTransferPeerPath from a JSON string -tr_link_transfer_peer_path_instance = TRLinkTransferPeerPath.from_json(json) -# print the JSON string representation of the object -print(TRLinkTransferPeerPath.to_json()) - -# convert the object into a dict -tr_link_transfer_peer_path_dict = tr_link_transfer_peer_path_instance.to_dict() -# create an instance of TRLinkTransferPeerPath from a dict -tr_link_transfer_peer_path_from_dict = TRLinkTransferPeerPath.from_dict(tr_link_transfer_peer_path_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtUcmFuc2ZlclBlZXJQYXRoCgpUcmFuc2ZlciBwZWVyIHBhdGggZm9yIGRlc3RpbmF0aW9uIG1hdGNoaW5nCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgKipzdHIqKiB8IFBlZXIgdHlwZSB8IFtvcHRpb25hbF0gCioqaWQqKiB8ICoqc3RyKiogfCBQZWVyIElEIHwgW29wdGlvbmFsXSAKKipzdWJfdHlwZSoqIHwgKipzdHIqKiB8IFBlZXIgc3VidHlwZSB8IFtvcHRpb25hbF0gCioqYWRkcmVzcyoqIHwgKipzdHIqKiB8IFBlZXIgYWRkcmVzcyB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3RyYW5zZmVyX3BlZXJfcGF0aCBpbXBvcnQgVFJMaW5rVHJhbnNmZXJQZWVyUGF0aAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rVHJhbnNmZXJQZWVyUGF0aCBmcm9tIGEgSlNPTiBzdHJpbmcKdHJfbGlua190cmFuc2Zlcl9wZWVyX3BhdGhfaW5zdGFuY2UgPSBUUkxpbmtUcmFuc2ZlclBlZXJQYXRoLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRSTGlua1RyYW5zZmVyUGVlclBhdGgudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua190cmFuc2Zlcl9wZWVyX3BhdGhfZGljdCA9IHRyX2xpbmtfdHJhbnNmZXJfcGVlcl9wYXRoX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtUcmFuc2ZlclBlZXJQYXRoIGZyb20gYSBkaWN0CnRyX2xpbmtfdHJhbnNmZXJfcGVlcl9wYXRoX2Zyb21fZGljdCA9IFRSTGlua1RyYW5zZmVyUGVlclBhdGguZnJvbV9kaWN0KHRyX2xpbmtfdHJhbnNmZXJfcGVlcl9wYXRoX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkTrmDirection.md b/docs/TRLinkTrmDirection.md index ef660b68..4defb74f 100644 --- a/docs/TRLinkTrmDirection.md +++ b/docs/TRLinkTrmDirection.md @@ -1,13 +1 @@ -# TRLinkTrmDirection - -Transaction direction for TRM (in = inbound, out = outbound) - -## Enum - -* `IN` (value: `'in'`) - -* `OUT` (value: `'out'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtUcm1EaXJlY3Rpb24KClRyYW5zYWN0aW9uIGRpcmVjdGlvbiBmb3IgVFJNIChpbiA9IGluYm91bmQsIG91dCA9IG91dGJvdW5kKQoKIyMgRW51bQoKKiBgSU5gICh2YWx1ZTogYCdpbidgKQoKKiBgT1VUYCAodmFsdWU6IGAnb3V0J2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkTrmInfoResponse.md b/docs/TRLinkTrmInfoResponse.md index 3c45d7e3..ccfef6ed 100644 --- a/docs/TRLinkTrmInfoResponse.md +++ b/docs/TRLinkTrmInfoResponse.md @@ -1,43 +1 @@ -# TRLinkTrmInfoResponse - -Travel Rule Message information - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | TRM message ID | -**version** | **str** | TRM version | [optional] -**status** | [**TRLinkTrmStatus**](TRLinkTrmStatus.md) | | [optional] -**reason** | **str** | Human readable reason for the current status | [optional] -**external_id** | **str** | External ID (e.g., Fireblocks ID) | -**asset** | [**TRLinkAsset**](TRLinkAsset.md) | | -**amount** | **str** | Transaction amount in asset units | -**fiat_value** | [**TRLinkFiatValue**](TRLinkFiatValue.md) | | [optional] -**direction** | [**TRLinkTrmDirection**](TRLinkTrmDirection.md) | | -**originator_vasp_id** | **str** | ID of the originator VASP | [optional] -**beneficiary_vasp_id** | **str** | ID of the beneficiary VASP | [optional] -**txn_info** | [**TRLinkTxnInfo**](TRLinkTxnInfo.md) | | -**ivms101** | [**TRLinkIvmsResponse**](TRLinkIvmsResponse.md) | | -**provider_data** | [**TRLinkProviderData**](TRLinkProviderData.md) | | [optional] - -## Example - -```python -from fireblocks.models.tr_link_trm_info_response import TRLinkTrmInfoResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkTrmInfoResponse from a JSON string -tr_link_trm_info_response_instance = TRLinkTrmInfoResponse.from_json(json) -# print the JSON string representation of the object -print(TRLinkTrmInfoResponse.to_json()) - -# convert the object into a dict -tr_link_trm_info_response_dict = tr_link_trm_info_response_instance.to_dict() -# create an instance of TRLinkTrmInfoResponse from a dict -tr_link_trm_info_response_from_dict = TRLinkTrmInfoResponse.from_dict(tr_link_trm_info_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtUcm1JbmZvUmVzcG9uc2UKClRyYXZlbCBSdWxlIE1lc3NhZ2UgaW5mb3JtYXRpb24KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8IFRSTSBtZXNzYWdlIElEIHwgCioqdmVyc2lvbioqIHwgKipzdHIqKiB8IFRSTSB2ZXJzaW9uIHwgW29wdGlvbmFsXSAKKipzdGF0dXMqKiB8IFsqKlRSTGlua1RybVN0YXR1cyoqXShUUkxpbmtUcm1TdGF0dXMubWQpIHwgIHwgW29wdGlvbmFsXSAKKipyZWFzb24qKiB8ICoqc3RyKiogfCBIdW1hbiByZWFkYWJsZSByZWFzb24gZm9yIHRoZSBjdXJyZW50IHN0YXR1cyB8IFtvcHRpb25hbF0gCioqZXh0ZXJuYWxfaWQqKiB8ICoqc3RyKiogfCBFeHRlcm5hbCBJRCAoZS5nLiwgRmlyZWJsb2NrcyBJRCkgfCAKKiphc3NldCoqIHwgWyoqVFJMaW5rQXNzZXQqKl0oVFJMaW5rQXNzZXQubWQpIHwgIHwgCioqYW1vdW50KiogfCAqKnN0cioqIHwgVHJhbnNhY3Rpb24gYW1vdW50IGluIGFzc2V0IHVuaXRzIHwgCioqZmlhdF92YWx1ZSoqIHwgWyoqVFJMaW5rRmlhdFZhbHVlKipdKFRSTGlua0ZpYXRWYWx1ZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRpcmVjdGlvbioqIHwgWyoqVFJMaW5rVHJtRGlyZWN0aW9uKipdKFRSTGlua1RybURpcmVjdGlvbi5tZCkgfCAgfCAKKipvcmlnaW5hdG9yX3Zhc3BfaWQqKiB8ICoqc3RyKiogfCBJRCBvZiB0aGUgb3JpZ2luYXRvciBWQVNQIHwgW29wdGlvbmFsXSAKKipiZW5lZmljaWFyeV92YXNwX2lkKiogfCAqKnN0cioqIHwgSUQgb2YgdGhlIGJlbmVmaWNpYXJ5IFZBU1AgfCBbb3B0aW9uYWxdIAoqKnR4bl9pbmZvKiogfCBbKipUUkxpbmtUeG5JbmZvKipdKFRSTGlua1R4bkluZm8ubWQpIHwgIHwgCioqaXZtczEwMSoqIHwgWyoqVFJMaW5rSXZtc1Jlc3BvbnNlKipdKFRSTGlua0l2bXNSZXNwb25zZS5tZCkgfCAgfCAKKipwcm92aWRlcl9kYXRhKiogfCBbKipUUkxpbmtQcm92aWRlckRhdGEqKl0oVFJMaW5rUHJvdmlkZXJEYXRhLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3RybV9pbmZvX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtUcm1JbmZvUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1RybUluZm9SZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKdHJfbGlua190cm1faW5mb19yZXNwb25zZV9pbnN0YW5jZSA9IFRSTGlua1RybUluZm9SZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtUcm1JbmZvUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJfbGlua190cm1faW5mb19yZXNwb25zZV9kaWN0ID0gdHJfbGlua190cm1faW5mb19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rVHJtSW5mb1Jlc3BvbnNlIGZyb20gYSBkaWN0CnRyX2xpbmtfdHJtX2luZm9fcmVzcG9uc2VfZnJvbV9kaWN0ID0gVFJMaW5rVHJtSW5mb1Jlc3BvbnNlLmZyb21fZGljdCh0cl9saW5rX3RybV9pbmZvX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkTrmScreeningStatus.md b/docs/TRLinkTrmScreeningStatus.md index 35e51d45..5582ed18 100644 --- a/docs/TRLinkTrmScreeningStatus.md +++ b/docs/TRLinkTrmScreeningStatus.md @@ -1,17 +1 @@ -# TRLinkTrmScreeningStatus - -TRLink TRM screening status - -## Enum - -* `PENDING` (value: `'PENDING'`) - -* `ACCEPTED` (value: `'ACCEPTED'`) - -* `REJECTED` (value: `'REJECTED'`) - -* `FAILED` (value: `'FAILED'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtUcm1TY3JlZW5pbmdTdGF0dXMKClRSTGluayBUUk0gc2NyZWVuaW5nIHN0YXR1cwoKIyMgRW51bQoKKiBgUEVORElOR2AgKHZhbHVlOiBgJ1BFTkRJTkcnYCkKCiogYEFDQ0VQVEVEYCAodmFsdWU6IGAnQUNDRVBURUQnYCkKCiogYFJFSkVDVEVEYCAodmFsdWU6IGAnUkVKRUNURUQnYCkKCiogYEZBSUxFRGAgKHZhbHVlOiBgJ0ZBSUxFRCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkTrmScreeningStatusEnum.md b/docs/TRLinkTrmScreeningStatusEnum.md index 1d572b6e..f9070914 100644 --- a/docs/TRLinkTrmScreeningStatusEnum.md +++ b/docs/TRLinkTrmScreeningStatusEnum.md @@ -1,17 +1 @@ -# TRLinkTrmScreeningStatusEnum - -TRLink TRM screening status - -## Enum - -* `PENDING` (value: `'PENDING'`) - -* `ACCEPTED` (value: `'ACCEPTED'`) - -* `REJECTED` (value: `'REJECTED'`) - -* `FAILED` (value: `'FAILED'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtUcm1TY3JlZW5pbmdTdGF0dXNFbnVtCgpUUkxpbmsgVFJNIHNjcmVlbmluZyBzdGF0dXMKCiMjIEVudW0KCiogYFBFTkRJTkdgICh2YWx1ZTogYCdQRU5ESU5HJ2ApCgoqIGBBQ0NFUFRFRGAgKHZhbHVlOiBgJ0FDQ0VQVEVEJ2ApCgoqIGBSRUpFQ1RFRGAgKHZhbHVlOiBgJ1JFSkVDVEVEJ2ApCgoqIGBGQUlMRURgICh2YWx1ZTogYCdGQUlMRUQnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkTrmStatus.md b/docs/TRLinkTrmStatus.md index b8c208cd..e2dd75e6 100644 --- a/docs/TRLinkTrmStatus.md +++ b/docs/TRLinkTrmStatus.md @@ -1,17 +1 @@ -# TRLinkTrmStatus - -Current status of the Travel Rule Message - -## Enum - -* `PENDING` (value: `'PENDING'`) - -* `ACCEPTED` (value: `'ACCEPTED'`) - -* `REJECTED` (value: `'REJECTED'`) - -* `FAILED` (value: `'FAILED'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtUcm1TdGF0dXMKCkN1cnJlbnQgc3RhdHVzIG9mIHRoZSBUcmF2ZWwgUnVsZSBNZXNzYWdlCgojIyBFbnVtCgoqIGBQRU5ESU5HYCAodmFsdWU6IGAnUEVORElORydgKQoKKiBgQUNDRVBURURgICh2YWx1ZTogYCdBQ0NFUFRFRCdgKQoKKiBgUkVKRUNURURgICh2YWx1ZTogYCdSRUpFQ1RFRCdgKQoKKiBgRkFJTEVEYCAodmFsdWU6IGAnRkFJTEVEJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkTxnInfo.md b/docs/TRLinkTxnInfo.md index 3404fb93..290f6f85 100644 --- a/docs/TRLinkTxnInfo.md +++ b/docs/TRLinkTxnInfo.md @@ -1,31 +1 @@ -# TRLinkTxnInfo - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**originator_wallet_address** | **str** | Originator's blockchain wallet address | -**beneficiary_wallet_address** | **str** | Beneficiary's blockchain wallet address | -**tx_hash** | **str** | Blockchain transaction hash | - -## Example - -```python -from fireblocks.models.tr_link_txn_info import TRLinkTxnInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkTxnInfo from a JSON string -tr_link_txn_info_instance = TRLinkTxnInfo.from_json(json) -# print the JSON string representation of the object -print(TRLinkTxnInfo.to_json()) - -# convert the object into a dict -tr_link_txn_info_dict = tr_link_txn_info_instance.to_dict() -# create an instance of TRLinkTxnInfo from a dict -tr_link_txn_info_from_dict = TRLinkTxnInfo.from_dict(tr_link_txn_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtUeG5JbmZvCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm9yaWdpbmF0b3Jfd2FsbGV0X2FkZHJlc3MqKiB8ICoqc3RyKiogfCBPcmlnaW5hdG9yJiMzOTtzIGJsb2NrY2hhaW4gd2FsbGV0IGFkZHJlc3MgfCAKKipiZW5lZmljaWFyeV93YWxsZXRfYWRkcmVzcyoqIHwgKipzdHIqKiB8IEJlbmVmaWNpYXJ5JiMzOTtzIGJsb2NrY2hhaW4gd2FsbGV0IGFkZHJlc3MgfCAKKip0eF9oYXNoKiogfCAqKnN0cioqIHwgQmxvY2tjaGFpbiB0cmFuc2FjdGlvbiBoYXNoIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3R4bl9pbmZvIGltcG9ydCBUUkxpbmtUeG5JbmZvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtUeG5JbmZvIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX3R4bl9pbmZvX2luc3RhbmNlID0gVFJMaW5rVHhuSW5mby5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtUeG5JbmZvLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyX2xpbmtfdHhuX2luZm9fZGljdCA9IHRyX2xpbmtfdHhuX2luZm9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1R4bkluZm8gZnJvbSBhIGRpY3QKdHJfbGlua190eG5faW5mb19mcm9tX2RpY3QgPSBUUkxpbmtUeG5JbmZvLmZyb21fZGljdCh0cl9saW5rX3R4bl9pbmZvX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TRLinkUpdateCustomerRequest.md b/docs/TRLinkUpdateCustomerRequest.md index 36beeadb..4771d956 100644 --- a/docs/TRLinkUpdateCustomerRequest.md +++ b/docs/TRLinkUpdateCustomerRequest.md @@ -1,37 +1 @@ -# TRLinkUpdateCustomerRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**discoverable** | [**TRLinkDiscoverableStatus**](TRLinkDiscoverableStatus.md) | | [optional] -**short_name** | **str** | Short display name | [optional] -**full_legal_name** | **str** | Full legal entity name | [optional] -**geographic_address** | [**TRLinkGeographicAddressRequest**](TRLinkGeographicAddressRequest.md) | | [optional] -**country_of_registration** | **str** | ISO 3166-1 alpha-2 country code where the entity is registered | [optional] -**national_identification** | **str** | National identification as JSON string | [optional] -**date_of_incorporation** | **date** | Date of entity incorporation (ISO 8601 format: YYYY-MM-DD) | [optional] -**vaults** | **List[int]** | Associated Fireblocks vault account IDs | [optional] -**tr_primary_purpose** | **str** | Primary purpose for Travel Rule compliance | [optional] - -## Example - -```python -from fireblocks.models.tr_link_update_customer_request import TRLinkUpdateCustomerRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkUpdateCustomerRequest from a JSON string -tr_link_update_customer_request_instance = TRLinkUpdateCustomerRequest.from_json(json) -# print the JSON string representation of the object -print(TRLinkUpdateCustomerRequest.to_json()) - -# convert the object into a dict -tr_link_update_customer_request_dict = tr_link_update_customer_request_instance.to_dict() -# create an instance of TRLinkUpdateCustomerRequest from a dict -tr_link_update_customer_request_from_dict = TRLinkUpdateCustomerRequest.from_dict(tr_link_update_customer_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtVcGRhdGVDdXN0b21lclJlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZGlzY292ZXJhYmxlKiogfCBbKipUUkxpbmtEaXNjb3ZlcmFibGVTdGF0dXMqKl0oVFJMaW5rRGlzY292ZXJhYmxlU3RhdHVzLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc2hvcnRfbmFtZSoqIHwgKipzdHIqKiB8IFNob3J0IGRpc3BsYXkgbmFtZSB8IFtvcHRpb25hbF0gCioqZnVsbF9sZWdhbF9uYW1lKiogfCAqKnN0cioqIHwgRnVsbCBsZWdhbCBlbnRpdHkgbmFtZSB8IFtvcHRpb25hbF0gCioqZ2VvZ3JhcGhpY19hZGRyZXNzKiogfCBbKipUUkxpbmtHZW9ncmFwaGljQWRkcmVzc1JlcXVlc3QqKl0oVFJMaW5rR2VvZ3JhcGhpY0FkZHJlc3NSZXF1ZXN0Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqY291bnRyeV9vZl9yZWdpc3RyYXRpb24qKiB8ICoqc3RyKiogfCBJU08gMzE2Ni0xIGFscGhhLTIgY291bnRyeSBjb2RlIHdoZXJlIHRoZSBlbnRpdHkgaXMgcmVnaXN0ZXJlZCB8IFtvcHRpb25hbF0gCioqbmF0aW9uYWxfaWRlbnRpZmljYXRpb24qKiB8ICoqc3RyKiogfCBOYXRpb25hbCBpZGVudGlmaWNhdGlvbiBhcyBKU09OIHN0cmluZyB8IFtvcHRpb25hbF0gCioqZGF0ZV9vZl9pbmNvcnBvcmF0aW9uKiogfCAqKmRhdGUqKiB8IERhdGUgb2YgZW50aXR5IGluY29ycG9yYXRpb24gKElTTyA4NjAxIGZvcm1hdDogWVlZWS1NTS1ERCkgfCBbb3B0aW9uYWxdIAoqKnZhdWx0cyoqIHwgKipMaXN0W2ludF0qKiB8IEFzc29jaWF0ZWQgRmlyZWJsb2NrcyB2YXVsdCBhY2NvdW50IElEcyB8IFtvcHRpb25hbF0gCioqdHJfcHJpbWFyeV9wdXJwb3NlKiogfCAqKnN0cioqIHwgUHJpbWFyeSBwdXJwb3NlIGZvciBUcmF2ZWwgUnVsZSBjb21wbGlhbmNlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdXBkYXRlX2N1c3RvbWVyX3JlcXVlc3QgaW1wb3J0IFRSTGlua1VwZGF0ZUN1c3RvbWVyUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rVXBkYXRlQ3VzdG9tZXJSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX3VwZGF0ZV9jdXN0b21lcl9yZXF1ZXN0X2luc3RhbmNlID0gVFJMaW5rVXBkYXRlQ3VzdG9tZXJSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRSTGlua1VwZGF0ZUN1c3RvbWVyUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX3VwZGF0ZV9jdXN0b21lcl9yZXF1ZXN0X2RpY3QgPSB0cl9saW5rX3VwZGF0ZV9jdXN0b21lcl9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtVcGRhdGVDdXN0b21lclJlcXVlc3QgZnJvbSBhIGRpY3QKdHJfbGlua191cGRhdGVfY3VzdG9tZXJfcmVxdWVzdF9mcm9tX2RpY3QgPSBUUkxpbmtVcGRhdGVDdXN0b21lclJlcXVlc3QuZnJvbV9kaWN0KHRyX2xpbmtfdXBkYXRlX2N1c3RvbWVyX3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkVaspDto.md b/docs/TRLinkVaspDto.md index 7f03b8ce..96ea546a 100644 --- a/docs/TRLinkVaspDto.md +++ b/docs/TRLinkVaspDto.md @@ -1,34 +1 @@ -# TRLinkVaspDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | VASP unique identifier (DID format) | -**name** | **str** | VASP display name | -**legal_name** | **str** | Legal entity name | [optional] -**national_identification** | [**TRLinkVaspNationalIdentification**](TRLinkVaspNationalIdentification.md) | | [optional] -**geographic_address** | [**TRLinkVaspGeographicAddress**](TRLinkVaspGeographicAddress.md) | | [optional] -**public_key** | **str** | VASP public key for encryption | [optional] - -## Example - -```python -from fireblocks.models.tr_link_vasp_dto import TRLinkVaspDto - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkVaspDto from a JSON string -tr_link_vasp_dto_instance = TRLinkVaspDto.from_json(json) -# print the JSON string representation of the object -print(TRLinkVaspDto.to_json()) - -# convert the object into a dict -tr_link_vasp_dto_dict = tr_link_vasp_dto_instance.to_dict() -# create an instance of TRLinkVaspDto from a dict -tr_link_vasp_dto_from_dict = TRLinkVaspDto.from_dict(tr_link_vasp_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtWYXNwRHRvCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgVkFTUCB1bmlxdWUgaWRlbnRpZmllciAoRElEIGZvcm1hdCkgfCAKKipuYW1lKiogfCAqKnN0cioqIHwgVkFTUCBkaXNwbGF5IG5hbWUgfCAKKipsZWdhbF9uYW1lKiogfCAqKnN0cioqIHwgTGVnYWwgZW50aXR5IG5hbWUgfCBbb3B0aW9uYWxdIAoqKm5hdGlvbmFsX2lkZW50aWZpY2F0aW9uKiogfCBbKipUUkxpbmtWYXNwTmF0aW9uYWxJZGVudGlmaWNhdGlvbioqXShUUkxpbmtWYXNwTmF0aW9uYWxJZGVudGlmaWNhdGlvbi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmdlb2dyYXBoaWNfYWRkcmVzcyoqIHwgWyoqVFJMaW5rVmFzcEdlb2dyYXBoaWNBZGRyZXNzKipdKFRSTGlua1Zhc3BHZW9ncmFwaGljQWRkcmVzcy5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnB1YmxpY19rZXkqKiB8ICoqc3RyKiogfCBWQVNQIHB1YmxpYyBrZXkgZm9yIGVuY3J5cHRpb24gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua192YXNwX2R0byBpbXBvcnQgVFJMaW5rVmFzcER0bwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rVmFzcER0byBmcm9tIGEgSlNPTiBzdHJpbmcKdHJfbGlua192YXNwX2R0b19pbnN0YW5jZSA9IFRSTGlua1Zhc3BEdG8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVFJMaW5rVmFzcER0by50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX3Zhc3BfZHRvX2RpY3QgPSB0cl9saW5rX3Zhc3BfZHRvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtWYXNwRHRvIGZyb20gYSBkaWN0CnRyX2xpbmtfdmFzcF9kdG9fZnJvbV9kaWN0ID0gVFJMaW5rVmFzcER0by5mcm9tX2RpY3QodHJfbGlua192YXNwX2R0b19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkVaspGeographicAddress.md b/docs/TRLinkVaspGeographicAddress.md index 7894cd64..c24697c4 100644 --- a/docs/TRLinkVaspGeographicAddress.md +++ b/docs/TRLinkVaspGeographicAddress.md @@ -1,34 +1 @@ -# TRLinkVaspGeographicAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**formatted_address** | **str** | Complete formatted address | [optional] -**country** | **str** | Country code or name | [optional] -**street_name** | **str** | Street name | [optional] -**building_number** | **str** | Building number | [optional] -**city** | **str** | City name | [optional] -**postal_code** | **str** | Postal/ZIP code | [optional] - -## Example - -```python -from fireblocks.models.tr_link_vasp_geographic_address import TRLinkVaspGeographicAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkVaspGeographicAddress from a JSON string -tr_link_vasp_geographic_address_instance = TRLinkVaspGeographicAddress.from_json(json) -# print the JSON string representation of the object -print(TRLinkVaspGeographicAddress.to_json()) - -# convert the object into a dict -tr_link_vasp_geographic_address_dict = tr_link_vasp_geographic_address_instance.to_dict() -# create an instance of TRLinkVaspGeographicAddress from a dict -tr_link_vasp_geographic_address_from_dict = TRLinkVaspGeographicAddress.from_dict(tr_link_vasp_geographic_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtWYXNwR2VvZ3JhcGhpY0FkZHJlc3MKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZm9ybWF0dGVkX2FkZHJlc3MqKiB8ICoqc3RyKiogfCBDb21wbGV0ZSBmb3JtYXR0ZWQgYWRkcmVzcyB8IFtvcHRpb25hbF0gCioqY291bnRyeSoqIHwgKipzdHIqKiB8IENvdW50cnkgY29kZSBvciBuYW1lIHwgW29wdGlvbmFsXSAKKipzdHJlZXRfbmFtZSoqIHwgKipzdHIqKiB8IFN0cmVldCBuYW1lIHwgW29wdGlvbmFsXSAKKipidWlsZGluZ19udW1iZXIqKiB8ICoqc3RyKiogfCBCdWlsZGluZyBudW1iZXIgfCBbb3B0aW9uYWxdIAoqKmNpdHkqKiB8ICoqc3RyKiogfCBDaXR5IG5hbWUgfCBbb3B0aW9uYWxdIAoqKnBvc3RhbF9jb2RlKiogfCAqKnN0cioqIHwgUG9zdGFsL1pJUCBjb2RlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdmFzcF9nZW9ncmFwaGljX2FkZHJlc3MgaW1wb3J0IFRSTGlua1Zhc3BHZW9ncmFwaGljQWRkcmVzcwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rVmFzcEdlb2dyYXBoaWNBZGRyZXNzIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX3Zhc3BfZ2VvZ3JhcGhpY19hZGRyZXNzX2luc3RhbmNlID0gVFJMaW5rVmFzcEdlb2dyYXBoaWNBZGRyZXNzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRSTGlua1Zhc3BHZW9ncmFwaGljQWRkcmVzcy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX3Zhc3BfZ2VvZ3JhcGhpY19hZGRyZXNzX2RpY3QgPSB0cl9saW5rX3Zhc3BfZ2VvZ3JhcGhpY19hZGRyZXNzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtWYXNwR2VvZ3JhcGhpY0FkZHJlc3MgZnJvbSBhIGRpY3QKdHJfbGlua192YXNwX2dlb2dyYXBoaWNfYWRkcmVzc19mcm9tX2RpY3QgPSBUUkxpbmtWYXNwR2VvZ3JhcGhpY0FkZHJlc3MuZnJvbV9kaWN0KHRyX2xpbmtfdmFzcF9nZW9ncmFwaGljX2FkZHJlc3NfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkVaspListDto.md b/docs/TRLinkVaspListDto.md index 2302b4be..c51831de 100644 --- a/docs/TRLinkVaspListDto.md +++ b/docs/TRLinkVaspListDto.md @@ -1,33 +1 @@ -# TRLinkVaspListDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | VASP unique identifier (DID format) | -**name** | **str** | VASP display name | -**legal_name** | **str** | Legal entity name | [optional] -**national_identification** | [**TRLinkVaspNationalIdentification**](TRLinkVaspNationalIdentification.md) | | [optional] -**geographic_address** | [**TRLinkVaspGeographicAddress**](TRLinkVaspGeographicAddress.md) | | [optional] - -## Example - -```python -from fireblocks.models.tr_link_vasp_list_dto import TRLinkVaspListDto - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkVaspListDto from a JSON string -tr_link_vasp_list_dto_instance = TRLinkVaspListDto.from_json(json) -# print the JSON string representation of the object -print(TRLinkVaspListDto.to_json()) - -# convert the object into a dict -tr_link_vasp_list_dto_dict = tr_link_vasp_list_dto_instance.to_dict() -# create an instance of TRLinkVaspListDto from a dict -tr_link_vasp_list_dto_from_dict = TRLinkVaspListDto.from_dict(tr_link_vasp_list_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtWYXNwTGlzdER0bwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8IFZBU1AgdW5pcXVlIGlkZW50aWZpZXIgKERJRCBmb3JtYXQpIHwgCioqbmFtZSoqIHwgKipzdHIqKiB8IFZBU1AgZGlzcGxheSBuYW1lIHwgCioqbGVnYWxfbmFtZSoqIHwgKipzdHIqKiB8IExlZ2FsIGVudGl0eSBuYW1lIHwgW29wdGlvbmFsXSAKKipuYXRpb25hbF9pZGVudGlmaWNhdGlvbioqIHwgWyoqVFJMaW5rVmFzcE5hdGlvbmFsSWRlbnRpZmljYXRpb24qKl0oVFJMaW5rVmFzcE5hdGlvbmFsSWRlbnRpZmljYXRpb24ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipnZW9ncmFwaGljX2FkZHJlc3MqKiB8IFsqKlRSTGlua1Zhc3BHZW9ncmFwaGljQWRkcmVzcyoqXShUUkxpbmtWYXNwR2VvZ3JhcGhpY0FkZHJlc3MubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdmFzcF9saXN0X2R0byBpbXBvcnQgVFJMaW5rVmFzcExpc3REdG8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1Zhc3BMaXN0RHRvIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX3Zhc3BfbGlzdF9kdG9faW5zdGFuY2UgPSBUUkxpbmtWYXNwTGlzdER0by5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtWYXNwTGlzdER0by50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX3Zhc3BfbGlzdF9kdG9fZGljdCA9IHRyX2xpbmtfdmFzcF9saXN0X2R0b19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rVmFzcExpc3REdG8gZnJvbSBhIGRpY3QKdHJfbGlua192YXNwX2xpc3RfZHRvX2Zyb21fZGljdCA9IFRSTGlua1Zhc3BMaXN0RHRvLmZyb21fZGljdCh0cl9saW5rX3Zhc3BfbGlzdF9kdG9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkVaspNationalIdentification.md b/docs/TRLinkVaspNationalIdentification.md index 3277e385..e5896188 100644 --- a/docs/TRLinkVaspNationalIdentification.md +++ b/docs/TRLinkVaspNationalIdentification.md @@ -1,31 +1 @@ -# TRLinkVaspNationalIdentification - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**identifier** | **str** | National identification number | -**type** | **str** | Type of national identification | [optional] -**authority** | **str** | Issuing authority | [optional] - -## Example - -```python -from fireblocks.models.tr_link_vasp_national_identification import TRLinkVaspNationalIdentification - -# TODO update the JSON string below -json = "{}" -# create an instance of TRLinkVaspNationalIdentification from a JSON string -tr_link_vasp_national_identification_instance = TRLinkVaspNationalIdentification.from_json(json) -# print the JSON string representation of the object -print(TRLinkVaspNationalIdentification.to_json()) - -# convert the object into a dict -tr_link_vasp_national_identification_dict = tr_link_vasp_national_identification_instance.to_dict() -# create an instance of TRLinkVaspNationalIdentification from a dict -tr_link_vasp_national_identification_from_dict = TRLinkVaspNationalIdentification.from_dict(tr_link_vasp_national_identification_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtWYXNwTmF0aW9uYWxJZGVudGlmaWNhdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZGVudGlmaWVyKiogfCAqKnN0cioqIHwgTmF0aW9uYWwgaWRlbnRpZmljYXRpb24gbnVtYmVyIHwgCioqdHlwZSoqIHwgKipzdHIqKiB8IFR5cGUgb2YgbmF0aW9uYWwgaWRlbnRpZmljYXRpb24gfCBbb3B0aW9uYWxdIAoqKmF1dGhvcml0eSoqIHwgKipzdHIqKiB8IElzc3VpbmcgYXV0aG9yaXR5IHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdmFzcF9uYXRpb25hbF9pZGVudGlmaWNhdGlvbiBpbXBvcnQgVFJMaW5rVmFzcE5hdGlvbmFsSWRlbnRpZmljYXRpb24KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1Zhc3BOYXRpb25hbElkZW50aWZpY2F0aW9uIGZyb20gYSBKU09OIHN0cmluZwp0cl9saW5rX3Zhc3BfbmF0aW9uYWxfaWRlbnRpZmljYXRpb25faW5zdGFuY2UgPSBUUkxpbmtWYXNwTmF0aW9uYWxJZGVudGlmaWNhdGlvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUUkxpbmtWYXNwTmF0aW9uYWxJZGVudGlmaWNhdGlvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cl9saW5rX3Zhc3BfbmF0aW9uYWxfaWRlbnRpZmljYXRpb25fZGljdCA9IHRyX2xpbmtfdmFzcF9uYXRpb25hbF9pZGVudGlmaWNhdGlvbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rVmFzcE5hdGlvbmFsSWRlbnRpZmljYXRpb24gZnJvbSBhIGRpY3QKdHJfbGlua192YXNwX25hdGlvbmFsX2lkZW50aWZpY2F0aW9uX2Zyb21fZGljdCA9IFRSTGlua1Zhc3BOYXRpb25hbElkZW50aWZpY2F0aW9uLmZyb21fZGljdCh0cl9saW5rX3Zhc3BfbmF0aW9uYWxfaWRlbnRpZmljYXRpb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TRLinkVerdict.md b/docs/TRLinkVerdict.md index d2d760dc..7d959ca9 100644 --- a/docs/TRLinkVerdict.md +++ b/docs/TRLinkVerdict.md @@ -1,17 +1 @@ -# TRLinkVerdict - -TRLink verdict after screening - -## Enum - -* `ACCEPT` (value: `'ACCEPT'`) - -* `ALERT` (value: `'ALERT'`) - -* `REJECT` (value: `'REJECT'`) - -* `WAIT` (value: `'WAIT'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtWZXJkaWN0CgpUUkxpbmsgdmVyZGljdCBhZnRlciBzY3JlZW5pbmcKCiMjIEVudW0KCiogYEFDQ0VQVGAgKHZhbHVlOiBgJ0FDQ0VQVCdgKQoKKiBgQUxFUlRgICh2YWx1ZTogYCdBTEVSVCdgKQoKKiBgUkVKRUNUYCAodmFsdWU6IGAnUkVKRUNUJ2ApCgoqIGBXQUlUYCAodmFsdWU6IGAnV0FJVCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TRLinkVerdictEnum.md b/docs/TRLinkVerdictEnum.md index 2f0b4942..10fcaa3e 100644 --- a/docs/TRLinkVerdictEnum.md +++ b/docs/TRLinkVerdictEnum.md @@ -1,17 +1 @@ -# TRLinkVerdictEnum - -TRLink verdict after screening - -## Enum - -* `ACCEPT` (value: `'ACCEPT'`) - -* `ALERT` (value: `'ALERT'`) - -* `REJECT` (value: `'REJECT'`) - -* `WAIT` (value: `'WAIT'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUUkxpbmtWZXJkaWN0RW51bQoKVFJMaW5rIHZlcmRpY3QgYWZ0ZXIgc2NyZWVuaW5nCgojIyBFbnVtCgoqIGBBQ0NFUFRgICh2YWx1ZTogYCdBQ0NFUFQnYCkKCiogYEFMRVJUYCAodmFsdWU6IGAnQUxFUlQnYCkKCiogYFJFSkVDVGAgKHZhbHVlOiBgJ1JFSkVDVCdgKQoKKiBgV0FJVGAgKHZhbHVlOiBgJ1dBSVQnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/Tag.md b/docs/Tag.md index 9519d8c5..34936018 100644 --- a/docs/Tag.md +++ b/docs/Tag.md @@ -1,35 +1 @@ -# Tag - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The unique identifier of the tag | -**label** | **str** | The tag label | -**description** | **str** | Description for the tag | [optional] -**color** | **str** | The tag color in hex format | [optional] -**is_protected** | **bool** | Indication if the tag is a protected tag | [default to False] -**updated_at** | **float** | The date and time the tag was last updated | -**pending_approval_request** | [**ApprovalRequest**](ApprovalRequest.md) | | [optional] - -## Example - -```python -from fireblocks.models.tag import Tag - -# TODO update the JSON string below -json = "{}" -# create an instance of Tag from a JSON string -tag_instance = Tag.from_json(json) -# print the JSON string representation of the object -print(Tag.to_json()) - -# convert the object into a dict -tag_dict = tag_instance.to_dict() -# create an instance of Tag from a dict -tag_from_dict = Tag.from_dict(tag_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUYWcKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHRhZyB8IAoqKmxhYmVsKiogfCAqKnN0cioqIHwgVGhlIHRhZyBsYWJlbCB8IAoqKmRlc2NyaXB0aW9uKiogfCAqKnN0cioqIHwgRGVzY3JpcHRpb24gZm9yIHRoZSB0YWcgfCBbb3B0aW9uYWxdIAoqKmNvbG9yKiogfCAqKnN0cioqIHwgVGhlIHRhZyBjb2xvciBpbiBoZXggZm9ybWF0IHwgW29wdGlvbmFsXSAKKippc19wcm90ZWN0ZWQqKiB8ICoqYm9vbCoqIHwgSW5kaWNhdGlvbiBpZiB0aGUgdGFnIGlzIGEgcHJvdGVjdGVkIHRhZyB8IFtkZWZhdWx0IHRvIEZhbHNlXQoqKnVwZGF0ZWRfYXQqKiB8ICoqZmxvYXQqKiB8IFRoZSBkYXRlIGFuZCB0aW1lIHRoZSB0YWcgd2FzIGxhc3QgdXBkYXRlZCB8IAoqKnBlbmRpbmdfYXBwcm92YWxfcmVxdWVzdCoqIHwgWyoqQXBwcm92YWxSZXF1ZXN0KipdKEFwcHJvdmFsUmVxdWVzdC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudGFnIGltcG9ydCBUYWcKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRhZyBmcm9tIGEgSlNPTiBzdHJpbmcKdGFnX2luc3RhbmNlID0gVGFnLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRhZy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0YWdfZGljdCA9IHRhZ19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVGFnIGZyb20gYSBkaWN0CnRhZ19mcm9tX2RpY3QgPSBUYWcuZnJvbV9kaWN0KHRhZ19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TagAttachmentOperationAction.md b/docs/TagAttachmentOperationAction.md index 60315f2f..e65ae771 100644 --- a/docs/TagAttachmentOperationAction.md +++ b/docs/TagAttachmentOperationAction.md @@ -1,12 +1 @@ -# TagAttachmentOperationAction - - -## Enum - -* `ATTACH` (value: `'ATTACH'`) - -* `DETACH` (value: `'DETACH'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUYWdBdHRhY2htZW50T3BlcmF0aW9uQWN0aW9uCgoKIyMgRW51bQoKKiBgQVRUQUNIYCAodmFsdWU6IGAnQVRUQUNIJ2ApCgoqIGBERVRBQ0hgICh2YWx1ZTogYCdERVRBQ0gnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TagsApi.md b/docs/TagsApi.md index 7332b199..9d19877b 100644 --- a/docs/TagsApi.md +++ b/docs/TagsApi.md @@ -1,548 +1 @@ -# fireblocks.TagsApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**cancel_approval_request**](TagsApi.md#cancel_approval_request) | **POST** /tags/approval_requests/{id}/cancel | Cancel an approval request by id -[**create_tag**](TagsApi.md#create_tag) | **POST** /tags | Create a new tag -[**delete_tag**](TagsApi.md#delete_tag) | **DELETE** /tags/{tagId} | Delete a tag -[**get_approval_request**](TagsApi.md#get_approval_request) | **GET** /tags/approval_requests/{id} | Get an approval request by id -[**get_tag**](TagsApi.md#get_tag) | **GET** /tags/{tagId} | Get a tag -[**get_tags**](TagsApi.md#get_tags) | **GET** /tags | Get list of tags -[**update_tag**](TagsApi.md#update_tag) | **PATCH** /tags/{tagId} | Update a tag - - -# **cancel_approval_request** -> cancel_approval_request(id, idempotency_key=idempotency_key) - -Cancel an approval request by id - -Cancel an approval request by id. Can only cancel requests in PENDING status. Returns 202 Accepted when the cancellation is processed. - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - id = '12345' # str | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Cancel an approval request by id - fireblocks.tags.cancel_approval_request(id, idempotency_key=idempotency_key).result() - except Exception as e: - print("Exception when calling TagsApi->cancel_approval_request: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **id** | **str**| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**202** | Approval request cancellation processed | * X-Request-ID -
| -**401** | Unauthorized | * X-Request-ID -
| -**404** | Approval request not found | * X-Request-ID -
| -**409** | Invalid approval request state - cannot cancel request that is not in PENDING status | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_tag** -> Tag create_tag(create_tag_request, idempotency_key=idempotency_key) - -Create a new tag - -Create a new tag. -Endpoint Permissions: For protected tags: ADMIN,NON_SIGNING_ADMIN,OWNER. For non protected tags: ADMIN,NON_SIGNING_ADMIN,OWNER,SIGNER,EDITOR,APPROVER. - -### Example - - -```python -from fireblocks.models.create_tag_request import CreateTagRequest -from fireblocks.models.tag import Tag -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - create_tag_request = fireblocks.CreateTagRequest() # CreateTagRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Create a new tag - api_response = fireblocks.tags.create_tag(create_tag_request, idempotency_key=idempotency_key).result() - print("The response of TagsApi->create_tag:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TagsApi->create_tag: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **create_tag_request** | [**CreateTagRequest**](CreateTagRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**Tag**](Tag.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Tag created successfully | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **delete_tag** -> delete_tag(tag_id) - -Delete a tag - -Delete the specified tag. -Endpoint Permission: For protected tags: Owner, Admin, Non-Signing Admin. For non protected tags: Owner, Admin, Non-Signing Admin, Signer, Editor, Approver. - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - tag_id = 'tag_id_example' # str | The ID of the tag to retrieve - - try: - # Delete a tag - fireblocks.tags.delete_tag(tag_id).result() - except Exception as e: - print("Exception when calling TagsApi->delete_tag: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **tag_id** | **str**| The ID of the tag to retrieve | - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: Not defined - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**204** | Tag was deleted successfully | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_approval_request** -> ApprovalRequest get_approval_request(id) - -Get an approval request by id - -Get an approval request by id - -### Example - - -```python -from fireblocks.models.approval_request import ApprovalRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - id = '12345' # str | - - try: - # Get an approval request by id - api_response = fireblocks.tags.get_approval_request(id).result() - print("The response of TagsApi->get_approval_request:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TagsApi->get_approval_request: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **id** | **str**| | - -### Return type - -[**ApprovalRequest**](ApprovalRequest.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Approval request fetched successfully | * X-Request-ID -
| -**401** | Unauthorized | * X-Request-ID -
| -**404** | Approval request not found | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_tag** -> Tag get_tag(tag_id) - -Get a tag - -Retrieve an existing tag by ID. - -### Example - - -```python -from fireblocks.models.tag import Tag -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - tag_id = 'tag_id_example' # str | The ID of the tag to retrieve - - try: - # Get a tag - api_response = fireblocks.tags.get_tag(tag_id).result() - print("The response of TagsApi->get_tag:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TagsApi->get_tag: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **tag_id** | **str**| The ID of the tag to retrieve | - -### Return type - -[**Tag**](Tag.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A tag object | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_tags** -> TagsPagedResponse get_tags(page_cursor=page_cursor, page_size=page_size, label=label, tag_ids=tag_ids, include_pending_approvals_info=include_pending_approvals_info, is_protected=is_protected) - -Get list of tags - -Retrieve a paged list of all tags according to filters. - -### Example - - -```python -from fireblocks.models.tags_paged_response import TagsPagedResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Page cursor to get the next page. (optional) - page_size = 100 # float | Maximum number of items in the page (optional) (default to 100) - label = 'VIP' # str | Label prefix to filter by. (optional) - tag_ids = ['tag_ids_example'] # List[str] | List of tag IDs to filter by. (optional) - include_pending_approvals_info = False # bool | Whether to include pending approval requests info. (optional) (default to False) - is_protected = True # bool | (optional) - - try: - # Get list of tags - api_response = fireblocks.tags.get_tags(page_cursor=page_cursor, page_size=page_size, label=label, tag_ids=tag_ids, include_pending_approvals_info=include_pending_approvals_info, is_protected=is_protected).result() - print("The response of TagsApi->get_tags:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TagsApi->get_tags: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **page_cursor** | **str**| Page cursor to get the next page. | [optional] - **page_size** | **float**| Maximum number of items in the page | [optional] [default to 100] - **label** | **str**| Label prefix to filter by. | [optional] - **tag_ids** | [**List[str]**](str.md)| List of tag IDs to filter by. | [optional] - **include_pending_approvals_info** | **bool**| Whether to include pending approval requests info. | [optional] [default to False] - **is_protected** | **bool**| | [optional] - -### Return type - -[**TagsPagedResponse**](TagsPagedResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Tags fetched successfully | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_tag** -> Tag update_tag(tag_id, update_tag_request, idempotency_key=idempotency_key) - -Update a tag - -Update an existing specified tag. -Endpoint Permission: For protected tags: Owner, Admin, Non-Signing Admin. For non protected tags: Owner, Admin, Non-Signing Admin, Signer, Editor, Approver. - -### Example - - -```python -from fireblocks.models.tag import Tag -from fireblocks.models.update_tag_request import UpdateTagRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - tag_id = 'tag_id_example' # str | The ID of the tag to update - update_tag_request = fireblocks.UpdateTagRequest() # UpdateTagRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Update a tag - api_response = fireblocks.tags.update_tag(tag_id, update_tag_request, idempotency_key=idempotency_key).result() - print("The response of TagsApi->update_tag:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TagsApi->update_tag: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **tag_id** | **str**| The ID of the tag to update | - **update_tag_request** | [**UpdateTagRequest**](UpdateTagRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**Tag**](Tag.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A tag object | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLlRhZ3NBcGkKCkFsbCBVUklzIGFyZSByZWxhdGl2ZSB0byAqaHR0cHM6Ly9hcGkuZmlyZWJsb2Nrcy5pby92MSoKCk1ldGhvZCB8IEhUVFAgcmVxdWVzdCB8IERlc2NyaXB0aW9uCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQpbKipjYW5jZWxfYXBwcm92YWxfcmVxdWVzdCoqXShUYWdzQXBpLm1kI2NhbmNlbF9hcHByb3ZhbF9yZXF1ZXN0KSB8ICoqUE9TVCoqIC90YWdzL2FwcHJvdmFsX3JlcXVlc3RzL3tpZH0vY2FuY2VsIHwgQ2FuY2VsIGFuIGFwcHJvdmFsIHJlcXVlc3QgYnkgaWQKWyoqY3JlYXRlX3RhZyoqXShUYWdzQXBpLm1kI2NyZWF0ZV90YWcpIHwgKipQT1NUKiogL3RhZ3MgfCBDcmVhdGUgYSBuZXcgdGFnClsqKmRlbGV0ZV90YWcqKl0oVGFnc0FwaS5tZCNkZWxldGVfdGFnKSB8ICoqREVMRVRFKiogL3RhZ3Mve3RhZ0lkfSB8IERlbGV0ZSBhIHRhZwpbKipnZXRfYXBwcm92YWxfcmVxdWVzdCoqXShUYWdzQXBpLm1kI2dldF9hcHByb3ZhbF9yZXF1ZXN0KSB8ICoqR0VUKiogL3RhZ3MvYXBwcm92YWxfcmVxdWVzdHMve2lkfSB8IEdldCBhbiBhcHByb3ZhbCByZXF1ZXN0IGJ5IGlkClsqKmdldF90YWcqKl0oVGFnc0FwaS5tZCNnZXRfdGFnKSB8ICoqR0VUKiogL3RhZ3Mve3RhZ0lkfSB8IEdldCBhIHRhZwpbKipnZXRfdGFncyoqXShUYWdzQXBpLm1kI2dldF90YWdzKSB8ICoqR0VUKiogL3RhZ3MgfCBHZXQgbGlzdCBvZiB0YWdzClsqKnVwZGF0ZV90YWcqKl0oVGFnc0FwaS5tZCN1cGRhdGVfdGFnKSB8ICoqUEFUQ0gqKiAvdGFncy97dGFnSWR9IHwgVXBkYXRlIGEgdGFnCgoKIyAqKmNhbmNlbF9hcHByb3ZhbF9yZXF1ZXN0KioKPiBjYW5jZWxfYXBwcm92YWxfcmVxdWVzdChpZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCkNhbmNlbCBhbiBhcHByb3ZhbCByZXF1ZXN0IGJ5IGlkCgpDYW5jZWwgYW4gYXBwcm92YWwgcmVxdWVzdCBieSBpZC4gQ2FuIG9ubHkgY2FuY2VsIHJlcXVlc3RzIGluIFBFTkRJTkcgc3RhdHVzLiBSZXR1cm5zIDIwMiBBY2NlcHRlZCB3aGVuIHRoZSBjYW5jZWxsYXRpb24gaXMgcHJvY2Vzc2VkLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGlkID0gJzEyMzQ1JyAjIHN0ciB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIENhbmNlbCBhbiBhcHByb3ZhbCByZXF1ZXN0IGJ5IGlkCiAgICAgICAgZmlyZWJsb2Nrcy50YWdzLmNhbmNlbF9hcHByb3ZhbF9yZXF1ZXN0KGlkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRhZ3NBcGktPmNhbmNlbF9hcHByb3ZhbF9yZXF1ZXN0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKippZCoqIHwgKipzdHIqKnwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKCnZvaWQgKGVtcHR5IHJlc3BvbnNlIGJvZHkpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAyKiogfCBBcHByb3ZhbCByZXF1ZXN0IGNhbmNlbGxhdGlvbiBwcm9jZXNzZWQgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMSoqIHwgVW5hdXRob3JpemVkIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDQqKiB8IEFwcHJvdmFsIHJlcXVlc3Qgbm90IGZvdW5kIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDkqKiB8IEludmFsaWQgYXBwcm92YWwgcmVxdWVzdCBzdGF0ZSAtIGNhbm5vdCBjYW5jZWwgcmVxdWVzdCB0aGF0IGlzIG5vdCBpbiBQRU5ESU5HIHN0YXR1cyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqY3JlYXRlX3RhZyoqCj4gVGFnIGNyZWF0ZV90YWcoY3JlYXRlX3RhZ19yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKQ3JlYXRlIGEgbmV3IHRhZwoKQ3JlYXRlIGEgbmV3IHRhZy4KRW5kcG9pbnQgUGVybWlzc2lvbnM6IEZvciBwcm90ZWN0ZWQgdGFnczogQURNSU4sTk9OX1NJR05JTkdfQURNSU4sT1dORVIuIEZvciBub24gcHJvdGVjdGVkIHRhZ3M6IEFETUlOLE5PTl9TSUdOSU5HX0FETUlOLE9XTkVSLFNJR05FUixFRElUT1IsQVBQUk9WRVIuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV90YWdfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlVGFnUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRhZyBpbXBvcnQgVGFnCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGNyZWF0ZV90YWdfcmVxdWVzdCA9IGZpcmVibG9ja3MuQ3JlYXRlVGFnUmVxdWVzdCgpICMgQ3JlYXRlVGFnUmVxdWVzdCB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIENyZWF0ZSBhIG5ldyB0YWcKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRhZ3MuY3JlYXRlX3RhZyhjcmVhdGVfdGFnX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUYWdzQXBpLT5jcmVhdGVfdGFnOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRhZ3NBcGktPmNyZWF0ZV90YWc6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmNyZWF0ZV90YWdfcmVxdWVzdCoqIHwgWyoqQ3JlYXRlVGFnUmVxdWVzdCoqXShDcmVhdGVUYWdSZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlRhZyoqXShUYWcubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDEqKiB8IFRhZyBjcmVhdGVkIHN1Y2Nlc3NmdWxseSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipkZWxldGVfdGFnKioKPiBkZWxldGVfdGFnKHRhZ19pZCkKCkRlbGV0ZSBhIHRhZwoKRGVsZXRlIHRoZSBzcGVjaWZpZWQgdGFnLgpFbmRwb2ludCBQZXJtaXNzaW9uOiBGb3IgcHJvdGVjdGVkIHRhZ3M6IE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4uIEZvciBub24gcHJvdGVjdGVkIHRhZ3M6IE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgRWRpdG9yLCBBcHByb3Zlci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB0YWdfaWQgPSAndGFnX2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSB0YWcgdG8gcmV0cmlldmUKCiAgICB0cnk6CiAgICAgICAgIyBEZWxldGUgYSB0YWcKICAgICAgICBmaXJlYmxvY2tzLnRhZ3MuZGVsZXRlX3RhZyh0YWdfaWQpLnJlc3VsdCgpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVGFnc0FwaS0+ZGVsZXRlX3RhZzogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqdGFnX2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIHRhZyB0byByZXRyaWV2ZSB8IAoKIyMjIFJldHVybiB0eXBlCgp2b2lkIChlbXB0eSByZXNwb25zZSBib2R5KQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogTm90IGRlZmluZWQKCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDQqKiB8IFRhZyB3YXMgZGVsZXRlZCBzdWNjZXNzZnVsbHkgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2FwcHJvdmFsX3JlcXVlc3QqKgo+IEFwcHJvdmFsUmVxdWVzdCBnZXRfYXBwcm92YWxfcmVxdWVzdChpZCkKCkdldCBhbiBhcHByb3ZhbCByZXF1ZXN0IGJ5IGlkCgpHZXQgYW4gYXBwcm92YWwgcmVxdWVzdCBieSBpZAoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hcHByb3ZhbF9yZXF1ZXN0IGltcG9ydCBBcHByb3ZhbFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgaWQgPSAnMTIzNDUnICMgc3RyIHwgCgogICAgdHJ5OgogICAgICAgICMgR2V0IGFuIGFwcHJvdmFsIHJlcXVlc3QgYnkgaWQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRhZ3MuZ2V0X2FwcHJvdmFsX3JlcXVlc3QoaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUYWdzQXBpLT5nZXRfYXBwcm92YWxfcmVxdWVzdDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUYWdzQXBpLT5nZXRfYXBwcm92YWxfcmVxdWVzdDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqaWQqKiB8ICoqc3RyKip8ICB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipBcHByb3ZhbFJlcXVlc3QqKl0oQXBwcm92YWxSZXF1ZXN0Lm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQXBwcm92YWwgcmVxdWVzdCBmZXRjaGVkIHN1Y2Nlc3NmdWxseSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDAxKiogfCBVbmF1dGhvcml6ZWQgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwNCoqIHwgQXBwcm92YWwgcmVxdWVzdCBub3QgZm91bmQgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF90YWcqKgo+IFRhZyBnZXRfdGFnKHRhZ19pZCkKCkdldCBhIHRhZwoKUmV0cmlldmUgYW4gZXhpc3RpbmcgdGFnIGJ5IElELgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50YWcgaW1wb3J0IFRhZwpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB0YWdfaWQgPSAndGFnX2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSB0YWcgdG8gcmV0cmlldmUKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgYSB0YWcKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRhZ3MuZ2V0X3RhZyh0YWdfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUYWdzQXBpLT5nZXRfdGFnOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRhZ3NBcGktPmdldF90YWc6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnRhZ19pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSB0YWcgdG8gcmV0cmlldmUgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqVGFnKipdKFRhZy5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgdGFnIG9iamVjdCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfdGFncyoqCj4gVGFnc1BhZ2VkUmVzcG9uc2UgZ2V0X3RhZ3MocGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsIGxhYmVsPWxhYmVsLCB0YWdfaWRzPXRhZ19pZHMsIGluY2x1ZGVfcGVuZGluZ19hcHByb3ZhbHNfaW5mbz1pbmNsdWRlX3BlbmRpbmdfYXBwcm92YWxzX2luZm8sIGlzX3Byb3RlY3RlZD1pc19wcm90ZWN0ZWQpCgpHZXQgbGlzdCBvZiB0YWdzCgpSZXRyaWV2ZSBhIHBhZ2VkIGxpc3Qgb2YgYWxsIHRhZ3MgYWNjb3JkaW5nIHRvIGZpbHRlcnMuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRhZ3NfcGFnZWRfcmVzcG9uc2UgaW1wb3J0IFRhZ3NQYWdlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHBhZ2VfY3Vyc29yID0gJ01qQXlNeTB4TWkweE15QXlNRG96Tmpvd09DNHpNREk9Ok1URXdNQT09JyAjIHN0ciB8IFBhZ2UgY3Vyc29yIHRvIGdldCB0aGUgbmV4dCBwYWdlLiAob3B0aW9uYWwpCiAgICBwYWdlX3NpemUgPSAxMDAgIyBmbG9hdCB8IE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBwYWdlIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gMTAwKQogICAgbGFiZWwgPSAnVklQJyAjIHN0ciB8IExhYmVsIHByZWZpeCB0byBmaWx0ZXIgYnkuIChvcHRpb25hbCkKICAgIHRhZ19pZHMgPSBbJ3RhZ19pZHNfZXhhbXBsZSddICMgTGlzdFtzdHJdIHwgTGlzdCBvZiB0YWcgSURzIHRvIGZpbHRlciBieS4gKG9wdGlvbmFsKQogICAgaW5jbHVkZV9wZW5kaW5nX2FwcHJvdmFsc19pbmZvID0gRmFsc2UgIyBib29sIHwgV2hldGhlciB0byBpbmNsdWRlIHBlbmRpbmcgYXBwcm92YWwgcmVxdWVzdHMgaW5mby4gKG9wdGlvbmFsKSAoZGVmYXVsdCB0byBGYWxzZSkKICAgIGlzX3Byb3RlY3RlZCA9IFRydWUgIyBib29sIHwgIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgbGlzdCBvZiB0YWdzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50YWdzLmdldF90YWdzKHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplLCBsYWJlbD1sYWJlbCwgdGFnX2lkcz10YWdfaWRzLCBpbmNsdWRlX3BlbmRpbmdfYXBwcm92YWxzX2luZm89aW5jbHVkZV9wZW5kaW5nX2FwcHJvdmFsc19pbmZvLCBpc19wcm90ZWN0ZWQ9aXNfcHJvdGVjdGVkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVGFnc0FwaS0+Z2V0X3RhZ3M6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVGFnc0FwaS0+Z2V0X3RhZ3M6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnBhZ2VfY3Vyc29yKiogfCAqKnN0cioqfCBQYWdlIGN1cnNvciB0byBnZXQgdGhlIG5leHQgcGFnZS4gfCBbb3B0aW9uYWxdIAogKipwYWdlX3NpemUqKiB8ICoqZmxvYXQqKnwgTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgaW4gdGhlIHBhZ2UgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIDEwMF0KICoqbGFiZWwqKiB8ICoqc3RyKip8IExhYmVsIHByZWZpeCB0byBmaWx0ZXIgYnkuIHwgW29wdGlvbmFsXSAKICoqdGFnX2lkcyoqIHwgWyoqTGlzdFtzdHJdKipdKHN0ci5tZCl8IExpc3Qgb2YgdGFnIElEcyB0byBmaWx0ZXIgYnkuIHwgW29wdGlvbmFsXSAKICoqaW5jbHVkZV9wZW5kaW5nX2FwcHJvdmFsc19pbmZvKiogfCAqKmJvb2wqKnwgV2hldGhlciB0byBpbmNsdWRlIHBlbmRpbmcgYXBwcm92YWwgcmVxdWVzdHMgaW5mby4gfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIEZhbHNlXQogKippc19wcm90ZWN0ZWQqKiB8ICoqYm9vbCoqfCAgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipUYWdzUGFnZWRSZXNwb25zZSoqXShUYWdzUGFnZWRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFRhZ3MgZmV0Y2hlZCBzdWNjZXNzZnVsbHkgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqdXBkYXRlX3RhZyoqCj4gVGFnIHVwZGF0ZV90YWcodGFnX2lkLCB1cGRhdGVfdGFnX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpVcGRhdGUgYSB0YWcKClVwZGF0ZSBhbiBleGlzdGluZyBzcGVjaWZpZWQgdGFnLgpFbmRwb2ludCBQZXJtaXNzaW9uOiBGb3IgcHJvdGVjdGVkIHRhZ3M6IE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4uIEZvciBub24gcHJvdGVjdGVkIHRhZ3M6IE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgRWRpdG9yLCBBcHByb3Zlci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudGFnIGltcG9ydCBUYWcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51cGRhdGVfdGFnX3JlcXVlc3QgaW1wb3J0IFVwZGF0ZVRhZ1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdGFnX2lkID0gJ3RhZ19pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgdGFnIHRvIHVwZGF0ZQogICAgdXBkYXRlX3RhZ19yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5VcGRhdGVUYWdSZXF1ZXN0KCkgIyBVcGRhdGVUYWdSZXF1ZXN0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgVXBkYXRlIGEgdGFnCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50YWdzLnVwZGF0ZV90YWcodGFnX2lkLCB1cGRhdGVfdGFnX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUYWdzQXBpLT51cGRhdGVfdGFnOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRhZ3NBcGktPnVwZGF0ZV90YWc6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnRhZ19pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSB0YWcgdG8gdXBkYXRlIHwgCiAqKnVwZGF0ZV90YWdfcmVxdWVzdCoqIHwgWyoqVXBkYXRlVGFnUmVxdWVzdCoqXShVcGRhdGVUYWdSZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlRhZyoqXShUYWcubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgdGFnIG9iamVjdCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCg== \ No newline at end of file diff --git a/docs/TagsPagedResponse.md b/docs/TagsPagedResponse.md index ed26aff5..c07bcc22 100644 --- a/docs/TagsPagedResponse.md +++ b/docs/TagsPagedResponse.md @@ -1,30 +1 @@ -# TagsPagedResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[Tag]**](Tag.md) | | -**next** | **str** | Cursor to the next page | - -## Example - -```python -from fireblocks.models.tags_paged_response import TagsPagedResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TagsPagedResponse from a JSON string -tags_paged_response_instance = TagsPagedResponse.from_json(json) -# print the JSON string representation of the object -print(TagsPagedResponse.to_json()) - -# convert the object into a dict -tags_paged_response_dict = tags_paged_response_instance.to_dict() -# create an instance of TagsPagedResponse from a dict -tags_paged_response_from_dict = TagsPagedResponse.from_dict(tags_paged_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUYWdzUGFnZWRSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkYXRhKiogfCBbKipMaXN0W1RhZ10qKl0oVGFnLm1kKSB8ICB8IAoqKm5leHQqKiB8ICoqc3RyKiogfCBDdXJzb3IgdG8gdGhlIG5leHQgcGFnZSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudGFnc19wYWdlZF9yZXNwb25zZSBpbXBvcnQgVGFnc1BhZ2VkUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRhZ3NQYWdlZFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwp0YWdzX3BhZ2VkX3Jlc3BvbnNlX2luc3RhbmNlID0gVGFnc1BhZ2VkUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVGFnc1BhZ2VkUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdGFnc19wYWdlZF9yZXNwb25zZV9kaWN0ID0gdGFnc19wYWdlZF9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVGFnc1BhZ2VkUmVzcG9uc2UgZnJvbSBhIGRpY3QKdGFnc19wYWdlZF9yZXNwb25zZV9mcm9tX2RpY3QgPSBUYWdzUGFnZWRSZXNwb25zZS5mcm9tX2RpY3QodGFnc19wYWdlZF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TemplatesPaginatedResponse.md b/docs/TemplatesPaginatedResponse.md index 154987b7..5fd1c4f0 100644 --- a/docs/TemplatesPaginatedResponse.md +++ b/docs/TemplatesPaginatedResponse.md @@ -1,30 +1 @@ -# TemplatesPaginatedResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[LeanContractDto]**](LeanContractDto.md) | The data of the current page | -**next** | **str** | The ID of the next page | [optional] - -## Example - -```python -from fireblocks.models.templates_paginated_response import TemplatesPaginatedResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TemplatesPaginatedResponse from a JSON string -templates_paginated_response_instance = TemplatesPaginatedResponse.from_json(json) -# print the JSON string representation of the object -print(TemplatesPaginatedResponse.to_json()) - -# convert the object into a dict -templates_paginated_response_dict = templates_paginated_response_instance.to_dict() -# create an instance of TemplatesPaginatedResponse from a dict -templates_paginated_response_from_dict = TemplatesPaginatedResponse.from_dict(templates_paginated_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUZW1wbGF0ZXNQYWdpbmF0ZWRSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkYXRhKiogfCBbKipMaXN0W0xlYW5Db250cmFjdER0b10qKl0oTGVhbkNvbnRyYWN0RHRvLm1kKSB8IFRoZSBkYXRhIG9mIHRoZSBjdXJyZW50IHBhZ2UgfCAKKipuZXh0KiogfCAqKnN0cioqIHwgVGhlIElEIG9mIHRoZSBuZXh0IHBhZ2UgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudGVtcGxhdGVzX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgVGVtcGxhdGVzUGFnaW5hdGVkUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRlbXBsYXRlc1BhZ2luYXRlZFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwp0ZW1wbGF0ZXNfcGFnaW5hdGVkX3Jlc3BvbnNlX2luc3RhbmNlID0gVGVtcGxhdGVzUGFnaW5hdGVkUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVGVtcGxhdGVzUGFnaW5hdGVkUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdGVtcGxhdGVzX3BhZ2luYXRlZF9yZXNwb25zZV9kaWN0ID0gdGVtcGxhdGVzX3BhZ2luYXRlZF9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVGVtcGxhdGVzUGFnaW5hdGVkUmVzcG9uc2UgZnJvbSBhIGRpY3QKdGVtcGxhdGVzX3BhZ2luYXRlZF9yZXNwb25zZV9mcm9tX2RpY3QgPSBUZW1wbGF0ZXNQYWdpbmF0ZWRSZXNwb25zZS5mcm9tX2RpY3QodGVtcGxhdGVzX3BhZ2luYXRlZF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ThirdPartyRouting.md b/docs/ThirdPartyRouting.md index f3919c30..7a932942 100644 --- a/docs/ThirdPartyRouting.md +++ b/docs/ThirdPartyRouting.md @@ -1,30 +1 @@ -# ThirdPartyRouting - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**is_third_party_routing** | **bool** | | [optional] -**description** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.third_party_routing import ThirdPartyRouting - -# TODO update the JSON string below -json = "{}" -# create an instance of ThirdPartyRouting from a JSON string -third_party_routing_instance = ThirdPartyRouting.from_json(json) -# print the JSON string representation of the object -print(ThirdPartyRouting.to_json()) - -# convert the object into a dict -third_party_routing_dict = third_party_routing_instance.to_dict() -# create an instance of ThirdPartyRouting from a dict -third_party_routing_from_dict = ThirdPartyRouting.from_dict(third_party_routing_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUaGlyZFBhcnR5Um91dGluZwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippc190aGlyZF9wYXJ0eV9yb3V0aW5nKiogfCAqKmJvb2wqKiB8ICB8IFtvcHRpb25hbF0gCioqZGVzY3JpcHRpb24qKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudGhpcmRfcGFydHlfcm91dGluZyBpbXBvcnQgVGhpcmRQYXJ0eVJvdXRpbmcKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRoaXJkUGFydHlSb3V0aW5nIGZyb20gYSBKU09OIHN0cmluZwp0aGlyZF9wYXJ0eV9yb3V0aW5nX2luc3RhbmNlID0gVGhpcmRQYXJ0eVJvdXRpbmcuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVGhpcmRQYXJ0eVJvdXRpbmcudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdGhpcmRfcGFydHlfcm91dGluZ19kaWN0ID0gdGhpcmRfcGFydHlfcm91dGluZ19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVGhpcmRQYXJ0eVJvdXRpbmcgZnJvbSBhIGRpY3QKdGhpcmRfcGFydHlfcm91dGluZ19mcm9tX2RpY3QgPSBUaGlyZFBhcnR5Um91dGluZy5mcm9tX2RpY3QodGhpcmRfcGFydHlfcm91dGluZ19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TimePeriodConfig.md b/docs/TimePeriodConfig.md index a55d0815..58d5df3d 100644 --- a/docs/TimePeriodConfig.md +++ b/docs/TimePeriodConfig.md @@ -1,33 +1 @@ -# TimePeriodConfig - -Time period configuration - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**seconds** | **str** | Time period in seconds | -**initiator** | [**TimePeriodMatchType**](TimePeriodMatchType.md) | | -**source** | [**TimePeriodMatchType**](TimePeriodMatchType.md) | | -**destination** | [**TimePeriodMatchType**](TimePeriodMatchType.md) | | - -## Example - -```python -from fireblocks.models.time_period_config import TimePeriodConfig - -# TODO update the JSON string below -json = "{}" -# create an instance of TimePeriodConfig from a JSON string -time_period_config_instance = TimePeriodConfig.from_json(json) -# print the JSON string representation of the object -print(TimePeriodConfig.to_json()) - -# convert the object into a dict -time_period_config_dict = time_period_config_instance.to_dict() -# create an instance of TimePeriodConfig from a dict -time_period_config_from_dict = TimePeriodConfig.from_dict(time_period_config_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUaW1lUGVyaW9kQ29uZmlnCgpUaW1lIHBlcmlvZCBjb25maWd1cmF0aW9uCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc2Vjb25kcyoqIHwgKipzdHIqKiB8IFRpbWUgcGVyaW9kIGluIHNlY29uZHMgfCAKKippbml0aWF0b3IqKiB8IFsqKlRpbWVQZXJpb2RNYXRjaFR5cGUqKl0oVGltZVBlcmlvZE1hdGNoVHlwZS5tZCkgfCAgfCAKKipzb3VyY2UqKiB8IFsqKlRpbWVQZXJpb2RNYXRjaFR5cGUqKl0oVGltZVBlcmlvZE1hdGNoVHlwZS5tZCkgfCAgfCAKKipkZXN0aW5hdGlvbioqIHwgWyoqVGltZVBlcmlvZE1hdGNoVHlwZSoqXShUaW1lUGVyaW9kTWF0Y2hUeXBlLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudGltZV9wZXJpb2RfY29uZmlnIGltcG9ydCBUaW1lUGVyaW9kQ29uZmlnCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUaW1lUGVyaW9kQ29uZmlnIGZyb20gYSBKU09OIHN0cmluZwp0aW1lX3BlcmlvZF9jb25maWdfaW5zdGFuY2UgPSBUaW1lUGVyaW9kQ29uZmlnLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRpbWVQZXJpb2RDb25maWcudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdGltZV9wZXJpb2RfY29uZmlnX2RpY3QgPSB0aW1lX3BlcmlvZF9jb25maWdfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRpbWVQZXJpb2RDb25maWcgZnJvbSBhIGRpY3QKdGltZV9wZXJpb2RfY29uZmlnX2Zyb21fZGljdCA9IFRpbWVQZXJpb2RDb25maWcuZnJvbV9kaWN0KHRpbWVfcGVyaW9kX2NvbmZpZ19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TimePeriodMatchType.md b/docs/TimePeriodMatchType.md index 4838a398..a33de548 100644 --- a/docs/TimePeriodMatchType.md +++ b/docs/TimePeriodMatchType.md @@ -1,13 +1 @@ -# TimePeriodMatchType - -Type of match for time period application - -## Enum - -* `PER_SINGLE_MATCH` (value: `'PER_SINGLE_MATCH'`) - -* `ACROSS_ALL_MATCHES` (value: `'ACROSS_ALL_MATCHES'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUaW1lUGVyaW9kTWF0Y2hUeXBlCgpUeXBlIG9mIG1hdGNoIGZvciB0aW1lIHBlcmlvZCBhcHBsaWNhdGlvbgoKIyMgRW51bQoKKiBgUEVSX1NJTkdMRV9NQVRDSGAgKHZhbHVlOiBgJ1BFUl9TSU5HTEVfTUFUQ0gnYCkKCiogYEFDUk9TU19BTExfTUFUQ0hFU2AgKHZhbHVlOiBgJ0FDUk9TU19BTExfTUFUQ0hFUydgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ToCollateralTransaction.md b/docs/ToCollateralTransaction.md index 5732035d..82c4fc3c 100644 --- a/docs/ToCollateralTransaction.md +++ b/docs/ToCollateralTransaction.md @@ -1,33 +1 @@ -# ToCollateralTransaction - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**asset** | **str** | | [optional] -**amount** | **str** | | [optional] -**src_address** | **str** | | [optional] -**src_tag** | **str** | optional | [optional] -**fee** | **str** | optional | [optional] - -## Example - -```python -from fireblocks.models.to_collateral_transaction import ToCollateralTransaction - -# TODO update the JSON string below -json = "{}" -# create an instance of ToCollateralTransaction from a JSON string -to_collateral_transaction_instance = ToCollateralTransaction.from_json(json) -# print the JSON string representation of the object -print(ToCollateralTransaction.to_json()) - -# convert the object into a dict -to_collateral_transaction_dict = to_collateral_transaction_instance.to_dict() -# create an instance of ToCollateralTransaction from a dict -to_collateral_transaction_from_dict = ToCollateralTransaction.from_dict(to_collateral_transaction_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUb0NvbGxhdGVyYWxUcmFuc2FjdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphc3NldCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqYW1vdW50KiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipzcmNfYWRkcmVzcyoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqc3JjX3RhZyoqIHwgKipzdHIqKiB8IG9wdGlvbmFsIHwgW29wdGlvbmFsXSAKKipmZWUqKiB8ICoqc3RyKiogfCBvcHRpb25hbCB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b19jb2xsYXRlcmFsX3RyYW5zYWN0aW9uIGltcG9ydCBUb0NvbGxhdGVyYWxUcmFuc2FjdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9Db2xsYXRlcmFsVHJhbnNhY3Rpb24gZnJvbSBhIEpTT04gc3RyaW5nCnRvX2NvbGxhdGVyYWxfdHJhbnNhY3Rpb25faW5zdGFuY2UgPSBUb0NvbGxhdGVyYWxUcmFuc2FjdGlvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUb0NvbGxhdGVyYWxUcmFuc2FjdGlvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0b19jb2xsYXRlcmFsX3RyYW5zYWN0aW9uX2RpY3QgPSB0b19jb2xsYXRlcmFsX3RyYW5zYWN0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUb0NvbGxhdGVyYWxUcmFuc2FjdGlvbiBmcm9tIGEgZGljdAp0b19jb2xsYXRlcmFsX3RyYW5zYWN0aW9uX2Zyb21fZGljdCA9IFRvQ29sbGF0ZXJhbFRyYW5zYWN0aW9uLmZyb21fZGljdCh0b19jb2xsYXRlcmFsX3RyYW5zYWN0aW9uX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/ToExchangeTransaction.md b/docs/ToExchangeTransaction.md index 9a06dc03..85f09cac 100644 --- a/docs/ToExchangeTransaction.md +++ b/docs/ToExchangeTransaction.md @@ -1,32 +1 @@ -# ToExchangeTransaction - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**asset_id** | **str** | | [optional] -**amount** | **str** | | [optional] -**dst_address** | **str** | | [optional] -**dst_tag** | **str** | optional | [optional] - -## Example - -```python -from fireblocks.models.to_exchange_transaction import ToExchangeTransaction - -# TODO update the JSON string below -json = "{}" -# create an instance of ToExchangeTransaction from a JSON string -to_exchange_transaction_instance = ToExchangeTransaction.from_json(json) -# print the JSON string representation of the object -print(ToExchangeTransaction.to_json()) - -# convert the object into a dict -to_exchange_transaction_dict = to_exchange_transaction_instance.to_dict() -# create an instance of ToExchangeTransaction from a dict -to_exchange_transaction_from_dict = ToExchangeTransaction.from_dict(to_exchange_transaction_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUb0V4Y2hhbmdlVHJhbnNhY3Rpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYXNzZXRfaWQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFtb3VudCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqZHN0X2FkZHJlc3MqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmRzdF90YWcqKiB8ICoqc3RyKiogfCBvcHRpb25hbCB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b19leGNoYW5nZV90cmFuc2FjdGlvbiBpbXBvcnQgVG9FeGNoYW5nZVRyYW5zYWN0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUb0V4Y2hhbmdlVHJhbnNhY3Rpb24gZnJvbSBhIEpTT04gc3RyaW5nCnRvX2V4Y2hhbmdlX3RyYW5zYWN0aW9uX2luc3RhbmNlID0gVG9FeGNoYW5nZVRyYW5zYWN0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRvRXhjaGFuZ2VUcmFuc2FjdGlvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0b19leGNoYW5nZV90cmFuc2FjdGlvbl9kaWN0ID0gdG9fZXhjaGFuZ2VfdHJhbnNhY3Rpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRvRXhjaGFuZ2VUcmFuc2FjdGlvbiBmcm9tIGEgZGljdAp0b19leGNoYW5nZV90cmFuc2FjdGlvbl9mcm9tX2RpY3QgPSBUb0V4Y2hhbmdlVHJhbnNhY3Rpb24uZnJvbV9kaWN0KHRvX2V4Y2hhbmdlX3RyYW5zYWN0aW9uX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TokenCollectionResponse.md b/docs/TokenCollectionResponse.md index 714cf1fb..84f6ba50 100644 --- a/docs/TokenCollectionResponse.md +++ b/docs/TokenCollectionResponse.md @@ -1,31 +1 @@ -# TokenCollectionResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | -**name** | **str** | | [optional] -**symbol** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.token_collection_response import TokenCollectionResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TokenCollectionResponse from a JSON string -token_collection_response_instance = TokenCollectionResponse.from_json(json) -# print the JSON string representation of the object -print(TokenCollectionResponse.to_json()) - -# convert the object into a dict -token_collection_response_dict = token_collection_response_instance.to_dict() -# create an instance of TokenCollectionResponse from a dict -token_collection_response_from_dict = TokenCollectionResponse.from_dict(token_collection_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUb2tlbkNvbGxlY3Rpb25SZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8ICB8IAoqKm5hbWUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKnN5bWJvbCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b2tlbl9jb2xsZWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBUb2tlbkNvbGxlY3Rpb25SZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5Db2xsZWN0aW9uUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnRva2VuX2NvbGxlY3Rpb25fcmVzcG9uc2VfaW5zdGFuY2UgPSBUb2tlbkNvbGxlY3Rpb25SZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUb2tlbkNvbGxlY3Rpb25SZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0b2tlbl9jb2xsZWN0aW9uX3Jlc3BvbnNlX2RpY3QgPSB0b2tlbl9jb2xsZWN0aW9uX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUb2tlbkNvbGxlY3Rpb25SZXNwb25zZSBmcm9tIGEgZGljdAp0b2tlbl9jb2xsZWN0aW9uX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFRva2VuQ29sbGVjdGlvblJlc3BvbnNlLmZyb21fZGljdCh0b2tlbl9jb2xsZWN0aW9uX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TokenContractSummaryResponse.md b/docs/TokenContractSummaryResponse.md index 5fe67a93..40c4d3c4 100644 --- a/docs/TokenContractSummaryResponse.md +++ b/docs/TokenContractSummaryResponse.md @@ -1,32 +1 @@ -# TokenContractSummaryResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**base_asset_id** | **str** | The base asset ID | -**contract_address** | **str** | The contract address | -**total_addresses** | **float** | Total number of addresses with balances | -**total_supply** | **str** | The total supply of the token | - -## Example - -```python -from fireblocks.models.token_contract_summary_response import TokenContractSummaryResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TokenContractSummaryResponse from a JSON string -token_contract_summary_response_instance = TokenContractSummaryResponse.from_json(json) -# print the JSON string representation of the object -print(TokenContractSummaryResponse.to_json()) - -# convert the object into a dict -token_contract_summary_response_dict = token_contract_summary_response_instance.to_dict() -# create an instance of TokenContractSummaryResponse from a dict -token_contract_summary_response_from_dict = TokenContractSummaryResponse.from_dict(token_contract_summary_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUb2tlbkNvbnRyYWN0U3VtbWFyeVJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmJhc2VfYXNzZXRfaWQqKiB8ICoqc3RyKiogfCBUaGUgYmFzZSBhc3NldCBJRCB8IAoqKmNvbnRyYWN0X2FkZHJlc3MqKiB8ICoqc3RyKiogfCBUaGUgY29udHJhY3QgYWRkcmVzcyB8IAoqKnRvdGFsX2FkZHJlc3NlcyoqIHwgKipmbG9hdCoqIHwgVG90YWwgbnVtYmVyIG9mIGFkZHJlc3NlcyB3aXRoIGJhbGFuY2VzIHwgCioqdG90YWxfc3VwcGx5KiogfCAqKnN0cioqIHwgVGhlIHRvdGFsIHN1cHBseSBvZiB0aGUgdG9rZW4gfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2NvbnRyYWN0X3N1bW1hcnlfcmVzcG9uc2UgaW1wb3J0IFRva2VuQ29udHJhY3RTdW1tYXJ5UmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRva2VuQ29udHJhY3RTdW1tYXJ5UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnRva2VuX2NvbnRyYWN0X3N1bW1hcnlfcmVzcG9uc2VfaW5zdGFuY2UgPSBUb2tlbkNvbnRyYWN0U3VtbWFyeVJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRva2VuQ29udHJhY3RTdW1tYXJ5UmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdG9rZW5fY29udHJhY3Rfc3VtbWFyeV9yZXNwb25zZV9kaWN0ID0gdG9rZW5fY29udHJhY3Rfc3VtbWFyeV9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5Db250cmFjdFN1bW1hcnlSZXNwb25zZSBmcm9tIGEgZGljdAp0b2tlbl9jb250cmFjdF9zdW1tYXJ5X3Jlc3BvbnNlX2Zyb21fZGljdCA9IFRva2VuQ29udHJhY3RTdW1tYXJ5UmVzcG9uc2UuZnJvbV9kaWN0KHRva2VuX2NvbnRyYWN0X3N1bW1hcnlfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TokenInfoNotFoundErrorResponse.md b/docs/TokenInfoNotFoundErrorResponse.md index 9048ac22..d1865538 100644 --- a/docs/TokenInfoNotFoundErrorResponse.md +++ b/docs/TokenInfoNotFoundErrorResponse.md @@ -1,30 +1 @@ -# TokenInfoNotFoundErrorResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Not found error code | -**code** | **float** | Error code | - -## Example - -```python -from fireblocks.models.token_info_not_found_error_response import TokenInfoNotFoundErrorResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TokenInfoNotFoundErrorResponse from a JSON string -token_info_not_found_error_response_instance = TokenInfoNotFoundErrorResponse.from_json(json) -# print the JSON string representation of the object -print(TokenInfoNotFoundErrorResponse.to_json()) - -# convert the object into a dict -token_info_not_found_error_response_dict = token_info_not_found_error_response_instance.to_dict() -# create an instance of TokenInfoNotFoundErrorResponse from a dict -token_info_not_found_error_response_from_dict = TokenInfoNotFoundErrorResponse.from_dict(token_info_not_found_error_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUb2tlbkluZm9Ob3RGb3VuZEVycm9yUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbWVzc2FnZSoqIHwgKipzdHIqKiB8IE5vdCBmb3VuZCBlcnJvciBjb2RlIHwgCioqY29kZSoqIHwgKipmbG9hdCoqIHwgRXJyb3IgY29kZSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5faW5mb19ub3RfZm91bmRfZXJyb3JfcmVzcG9uc2UgaW1wb3J0IFRva2VuSW5mb05vdEZvdW5kRXJyb3JSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5JbmZvTm90Rm91bmRFcnJvclJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwp0b2tlbl9pbmZvX25vdF9mb3VuZF9lcnJvcl9yZXNwb25zZV9pbnN0YW5jZSA9IFRva2VuSW5mb05vdEZvdW5kRXJyb3JSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUb2tlbkluZm9Ob3RGb3VuZEVycm9yUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdG9rZW5faW5mb19ub3RfZm91bmRfZXJyb3JfcmVzcG9uc2VfZGljdCA9IHRva2VuX2luZm9fbm90X2ZvdW5kX2Vycm9yX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUb2tlbkluZm9Ob3RGb3VuZEVycm9yUmVzcG9uc2UgZnJvbSBhIGRpY3QKdG9rZW5faW5mb19ub3RfZm91bmRfZXJyb3JfcmVzcG9uc2VfZnJvbV9kaWN0ID0gVG9rZW5JbmZvTm90Rm91bmRFcnJvclJlc3BvbnNlLmZyb21fZGljdCh0b2tlbl9pbmZvX25vdF9mb3VuZF9lcnJvcl9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TokenLinkDto.md b/docs/TokenLinkDto.md index 527ae633..485ca4ee 100644 --- a/docs/TokenLinkDto.md +++ b/docs/TokenLinkDto.md @@ -1,34 +1 @@ -# TokenLinkDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The token link id | -**status** | **str** | The token status | -**type** | **str** | The type of token | [optional] -**ref_id** | **str** | The Fireblocks' reference id | [optional] -**display_name** | **str** | The token display name. If was not provided, would be taken from the contract template | [optional] -**token_metadata** | [**TokenLinkDtoTokenMetadata**](TokenLinkDtoTokenMetadata.md) | | [optional] - -## Example - -```python -from fireblocks.models.token_link_dto import TokenLinkDto - -# TODO update the JSON string below -json = "{}" -# create an instance of TokenLinkDto from a JSON string -token_link_dto_instance = TokenLinkDto.from_json(json) -# print the JSON string representation of the object -print(TokenLinkDto.to_json()) - -# convert the object into a dict -token_link_dto_dict = token_link_dto_instance.to_dict() -# create an instance of TokenLinkDto from a dict -token_link_dto_from_dict = TokenLinkDto.from_dict(token_link_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUb2tlbkxpbmtEdG8KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBUaGUgdG9rZW4gbGluayBpZCB8IAoqKnN0YXR1cyoqIHwgKipzdHIqKiB8IFRoZSB0b2tlbiBzdGF0dXMgfCAKKip0eXBlKiogfCAqKnN0cioqIHwgVGhlIHR5cGUgb2YgdG9rZW4gfCBbb3B0aW9uYWxdIAoqKnJlZl9pZCoqIHwgKipzdHIqKiB8IFRoZSBGaXJlYmxvY2tzJiMzOTsgcmVmZXJlbmNlIGlkIHwgW29wdGlvbmFsXSAKKipkaXNwbGF5X25hbWUqKiB8ICoqc3RyKiogfCBUaGUgdG9rZW4gZGlzcGxheSBuYW1lLiBJZiB3YXMgbm90IHByb3ZpZGVkLCB3b3VsZCBiZSB0YWtlbiBmcm9tIHRoZSBjb250cmFjdCB0ZW1wbGF0ZSB8IFtvcHRpb25hbF0gCioqdG9rZW5fbWV0YWRhdGEqKiB8IFsqKlRva2VuTGlua0R0b1Rva2VuTWV0YWRhdGEqKl0oVG9rZW5MaW5rRHRvVG9rZW5NZXRhZGF0YS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fbGlua19kdG8gaW1wb3J0IFRva2VuTGlua0R0bwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5MaW5rRHRvIGZyb20gYSBKU09OIHN0cmluZwp0b2tlbl9saW5rX2R0b19pbnN0YW5jZSA9IFRva2VuTGlua0R0by5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUb2tlbkxpbmtEdG8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdG9rZW5fbGlua19kdG9fZGljdCA9IHRva2VuX2xpbmtfZHRvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUb2tlbkxpbmtEdG8gZnJvbSBhIGRpY3QKdG9rZW5fbGlua19kdG9fZnJvbV9kaWN0ID0gVG9rZW5MaW5rRHRvLmZyb21fZGljdCh0b2tlbl9saW5rX2R0b19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TokenLinkDtoTokenMetadata.md b/docs/TokenLinkDtoTokenMetadata.md index 0e0a11bc..c05e99c8 100644 --- a/docs/TokenLinkDtoTokenMetadata.md +++ b/docs/TokenLinkDtoTokenMetadata.md @@ -1,48 +1 @@ -# TokenLinkDtoTokenMetadata - -The token's metadata - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**asset_id** | **str** | The Fireblocks` asset id | -**name** | **str** | Collection name | [optional] -**symbol** | **str** | Collection symbol | [optional] -**network_protocol** | **str** | The network protocol of the token | [optional] -**total_supply** | **str** | The total supply of the token | [optional] -**holders_count** | **float** | The number of holders of the token | [optional] -**type** | **str** | The type of the token | [optional] -**contract_address** | **str** | The address of the token contract | -**issuer_address** | **str** | In case of Stellar or Ripple, the address of the issuer of the token | [optional] -**testnet** | **bool** | Is it deployed on testnet or to mainnet | [optional] -**blockchain** | **str** | The blockchain native asset id which the token is deployed on | [optional] -**decimals** | **float** | The number of decimals of the token | [optional] -**vault_account_id** | **str** | The vault account ID that initiated the request to issue the token | [optional] -**fb_collection_id** | **str** | Fireblocks collection id | -**standard** | **str** | Collection contract standard | [optional] -**blockchain_descriptor** | **str** | Collection's blockchain | -**id** | **str** | The deployed contract ID | -**blockchain_id** | **str** | The blockchain ID | -**contract_template_id** | **str** | The contract template ID | - -## Example - -```python -from fireblocks.models.token_link_dto_token_metadata import TokenLinkDtoTokenMetadata - -# TODO update the JSON string below -json = "{}" -# create an instance of TokenLinkDtoTokenMetadata from a JSON string -token_link_dto_token_metadata_instance = TokenLinkDtoTokenMetadata.from_json(json) -# print the JSON string representation of the object -print(TokenLinkDtoTokenMetadata.to_json()) - -# convert the object into a dict -token_link_dto_token_metadata_dict = token_link_dto_token_metadata_instance.to_dict() -# create an instance of TokenLinkDtoTokenMetadata from a dict -token_link_dto_token_metadata_from_dict = TokenLinkDtoTokenMetadata.from_dict(token_link_dto_token_metadata_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUb2tlbkxpbmtEdG9Ub2tlbk1ldGFkYXRhCgpUaGUgdG9rZW4ncyBtZXRhZGF0YQoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFzc2V0X2lkKiogfCAqKnN0cioqIHwgVGhlIEZpcmVibG9ja3MmI3g2MDsgYXNzZXQgaWQgfCAKKipuYW1lKiogfCAqKnN0cioqIHwgQ29sbGVjdGlvbiBuYW1lIHwgW29wdGlvbmFsXSAKKipzeW1ib2wqKiB8ICoqc3RyKiogfCBDb2xsZWN0aW9uIHN5bWJvbCB8IFtvcHRpb25hbF0gCioqbmV0d29ya19wcm90b2NvbCoqIHwgKipzdHIqKiB8IFRoZSBuZXR3b3JrIHByb3RvY29sIG9mIHRoZSB0b2tlbiB8IFtvcHRpb25hbF0gCioqdG90YWxfc3VwcGx5KiogfCAqKnN0cioqIHwgVGhlIHRvdGFsIHN1cHBseSBvZiB0aGUgdG9rZW4gfCBbb3B0aW9uYWxdIAoqKmhvbGRlcnNfY291bnQqKiB8ICoqZmxvYXQqKiB8IFRoZSBudW1iZXIgb2YgaG9sZGVycyBvZiB0aGUgdG9rZW4gfCBbb3B0aW9uYWxdIAoqKnR5cGUqKiB8ICoqc3RyKiogfCBUaGUgdHlwZSBvZiB0aGUgdG9rZW4gfCBbb3B0aW9uYWxdIAoqKmNvbnRyYWN0X2FkZHJlc3MqKiB8ICoqc3RyKiogfCBUaGUgYWRkcmVzcyBvZiB0aGUgdG9rZW4gY29udHJhY3QgfCAKKippc3N1ZXJfYWRkcmVzcyoqIHwgKipzdHIqKiB8IEluIGNhc2Ugb2YgU3RlbGxhciBvciBSaXBwbGUsIHRoZSBhZGRyZXNzIG9mIHRoZSBpc3N1ZXIgb2YgdGhlIHRva2VuIHwgW29wdGlvbmFsXSAKKip0ZXN0bmV0KiogfCAqKmJvb2wqKiB8IElzIGl0IGRlcGxveWVkIG9uIHRlc3RuZXQgb3IgdG8gbWFpbm5ldCB8IFtvcHRpb25hbF0gCioqYmxvY2tjaGFpbioqIHwgKipzdHIqKiB8IFRoZSBibG9ja2NoYWluIG5hdGl2ZSBhc3NldCBpZCB3aGljaCB0aGUgdG9rZW4gaXMgZGVwbG95ZWQgb24gfCBbb3B0aW9uYWxdIAoqKmRlY2ltYWxzKiogfCAqKmZsb2F0KiogfCBUaGUgbnVtYmVyIG9mIGRlY2ltYWxzIG9mIHRoZSB0b2tlbiB8IFtvcHRpb25hbF0gCioqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8IFRoZSB2YXVsdCBhY2NvdW50IElEIHRoYXQgaW5pdGlhdGVkIHRoZSByZXF1ZXN0IHRvIGlzc3VlIHRoZSB0b2tlbiB8IFtvcHRpb25hbF0gCioqZmJfY29sbGVjdGlvbl9pZCoqIHwgKipzdHIqKiB8IEZpcmVibG9ja3MgY29sbGVjdGlvbiBpZCB8IAoqKnN0YW5kYXJkKiogfCAqKnN0cioqIHwgQ29sbGVjdGlvbiBjb250cmFjdCBzdGFuZGFyZCB8IFtvcHRpb25hbF0gCioqYmxvY2tjaGFpbl9kZXNjcmlwdG9yKiogfCAqKnN0cioqIHwgQ29sbGVjdGlvbiYjMzk7cyBibG9ja2NoYWluIHwgCioqaWQqKiB8ICoqc3RyKiogfCBUaGUgZGVwbG95ZWQgY29udHJhY3QgSUQgfCAKKipibG9ja2NoYWluX2lkKiogfCAqKnN0cioqIHwgVGhlIGJsb2NrY2hhaW4gSUQgfCAKKipjb250cmFjdF90ZW1wbGF0ZV9pZCoqIHwgKipzdHIqKiB8IFRoZSBjb250cmFjdCB0ZW1wbGF0ZSBJRCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fbGlua19kdG9fdG9rZW5fbWV0YWRhdGEgaW1wb3J0IFRva2VuTGlua0R0b1Rva2VuTWV0YWRhdGEKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRva2VuTGlua0R0b1Rva2VuTWV0YWRhdGEgZnJvbSBhIEpTT04gc3RyaW5nCnRva2VuX2xpbmtfZHRvX3Rva2VuX21ldGFkYXRhX2luc3RhbmNlID0gVG9rZW5MaW5rRHRvVG9rZW5NZXRhZGF0YS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUb2tlbkxpbmtEdG9Ub2tlbk1ldGFkYXRhLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRva2VuX2xpbmtfZHRvX3Rva2VuX21ldGFkYXRhX2RpY3QgPSB0b2tlbl9saW5rX2R0b190b2tlbl9tZXRhZGF0YV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5MaW5rRHRvVG9rZW5NZXRhZGF0YSBmcm9tIGEgZGljdAp0b2tlbl9saW5rX2R0b190b2tlbl9tZXRhZGF0YV9mcm9tX2RpY3QgPSBUb2tlbkxpbmtEdG9Ub2tlbk1ldGFkYXRhLmZyb21fZGljdCh0b2tlbl9saW5rX2R0b190b2tlbl9tZXRhZGF0YV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TokenLinkExistsHttpError.md b/docs/TokenLinkExistsHttpError.md index 1965b080..78c8d345 100644 --- a/docs/TokenLinkExistsHttpError.md +++ b/docs/TokenLinkExistsHttpError.md @@ -1,31 +1 @@ -# TokenLinkExistsHttpError - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status_code** | **int** | HTTP status code | [optional] -**message** | **str** | Error message | [optional] -**error** | **str** | Short description of the HTTP error | [optional] - -## Example - -```python -from fireblocks.models.token_link_exists_http_error import TokenLinkExistsHttpError - -# TODO update the JSON string below -json = "{}" -# create an instance of TokenLinkExistsHttpError from a JSON string -token_link_exists_http_error_instance = TokenLinkExistsHttpError.from_json(json) -# print the JSON string representation of the object -print(TokenLinkExistsHttpError.to_json()) - -# convert the object into a dict -token_link_exists_http_error_dict = token_link_exists_http_error_instance.to_dict() -# create an instance of TokenLinkExistsHttpError from a dict -token_link_exists_http_error_from_dict = TokenLinkExistsHttpError.from_dict(token_link_exists_http_error_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUb2tlbkxpbmtFeGlzdHNIdHRwRXJyb3IKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3RhdHVzX2NvZGUqKiB8ICoqaW50KiogfCBIVFRQIHN0YXR1cyBjb2RlIHwgW29wdGlvbmFsXSAKKiptZXNzYWdlKiogfCAqKnN0cioqIHwgRXJyb3IgbWVzc2FnZSB8IFtvcHRpb25hbF0gCioqZXJyb3IqKiB8ICoqc3RyKiogfCBTaG9ydCBkZXNjcmlwdGlvbiBvZiB0aGUgSFRUUCBlcnJvciB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b2tlbl9saW5rX2V4aXN0c19odHRwX2Vycm9yIGltcG9ydCBUb2tlbkxpbmtFeGlzdHNIdHRwRXJyb3IKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRva2VuTGlua0V4aXN0c0h0dHBFcnJvciBmcm9tIGEgSlNPTiBzdHJpbmcKdG9rZW5fbGlua19leGlzdHNfaHR0cF9lcnJvcl9pbnN0YW5jZSA9IFRva2VuTGlua0V4aXN0c0h0dHBFcnJvci5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUb2tlbkxpbmtFeGlzdHNIdHRwRXJyb3IudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdG9rZW5fbGlua19leGlzdHNfaHR0cF9lcnJvcl9kaWN0ID0gdG9rZW5fbGlua19leGlzdHNfaHR0cF9lcnJvcl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5MaW5rRXhpc3RzSHR0cEVycm9yIGZyb20gYSBkaWN0CnRva2VuX2xpbmtfZXhpc3RzX2h0dHBfZXJyb3JfZnJvbV9kaWN0ID0gVG9rZW5MaW5rRXhpc3RzSHR0cEVycm9yLmZyb21fZGljdCh0b2tlbl9saW5rX2V4aXN0c19odHRwX2Vycm9yX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TokenLinkNotMultichainCompatibleHttpError.md b/docs/TokenLinkNotMultichainCompatibleHttpError.md index f9c5da54..38ea5215 100644 --- a/docs/TokenLinkNotMultichainCompatibleHttpError.md +++ b/docs/TokenLinkNotMultichainCompatibleHttpError.md @@ -1,30 +1 @@ -# TokenLinkNotMultichainCompatibleHttpError - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | Bad request error message | -**code** | **float** | Error code | - -## Example - -```python -from fireblocks.models.token_link_not_multichain_compatible_http_error import TokenLinkNotMultichainCompatibleHttpError - -# TODO update the JSON string below -json = "{}" -# create an instance of TokenLinkNotMultichainCompatibleHttpError from a JSON string -token_link_not_multichain_compatible_http_error_instance = TokenLinkNotMultichainCompatibleHttpError.from_json(json) -# print the JSON string representation of the object -print(TokenLinkNotMultichainCompatibleHttpError.to_json()) - -# convert the object into a dict -token_link_not_multichain_compatible_http_error_dict = token_link_not_multichain_compatible_http_error_instance.to_dict() -# create an instance of TokenLinkNotMultichainCompatibleHttpError from a dict -token_link_not_multichain_compatible_http_error_from_dict = TokenLinkNotMultichainCompatibleHttpError.from_dict(token_link_not_multichain_compatible_http_error_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUb2tlbkxpbmtOb3RNdWx0aWNoYWluQ29tcGF0aWJsZUh0dHBFcnJvcgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiptZXNzYWdlKiogfCAqKnN0cioqIHwgQmFkIHJlcXVlc3QgZXJyb3IgbWVzc2FnZSB8IAoqKmNvZGUqKiB8ICoqZmxvYXQqKiB8IEVycm9yIGNvZGUgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2xpbmtfbm90X211bHRpY2hhaW5fY29tcGF0aWJsZV9odHRwX2Vycm9yIGltcG9ydCBUb2tlbkxpbmtOb3RNdWx0aWNoYWluQ29tcGF0aWJsZUh0dHBFcnJvcgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5MaW5rTm90TXVsdGljaGFpbkNvbXBhdGlibGVIdHRwRXJyb3IgZnJvbSBhIEpTT04gc3RyaW5nCnRva2VuX2xpbmtfbm90X211bHRpY2hhaW5fY29tcGF0aWJsZV9odHRwX2Vycm9yX2luc3RhbmNlID0gVG9rZW5MaW5rTm90TXVsdGljaGFpbkNvbXBhdGlibGVIdHRwRXJyb3IuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVG9rZW5MaW5rTm90TXVsdGljaGFpbkNvbXBhdGlibGVIdHRwRXJyb3IudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdG9rZW5fbGlua19ub3RfbXVsdGljaGFpbl9jb21wYXRpYmxlX2h0dHBfZXJyb3JfZGljdCA9IHRva2VuX2xpbmtfbm90X211bHRpY2hhaW5fY29tcGF0aWJsZV9odHRwX2Vycm9yX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUb2tlbkxpbmtOb3RNdWx0aWNoYWluQ29tcGF0aWJsZUh0dHBFcnJvciBmcm9tIGEgZGljdAp0b2tlbl9saW5rX25vdF9tdWx0aWNoYWluX2NvbXBhdGlibGVfaHR0cF9lcnJvcl9mcm9tX2RpY3QgPSBUb2tlbkxpbmtOb3RNdWx0aWNoYWluQ29tcGF0aWJsZUh0dHBFcnJvci5mcm9tX2RpY3QodG9rZW5fbGlua19ub3RfbXVsdGljaGFpbl9jb21wYXRpYmxlX2h0dHBfZXJyb3JfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TokenLinkRequestDto.md b/docs/TokenLinkRequestDto.md index f70435f8..41ca6826 100644 --- a/docs/TokenLinkRequestDto.md +++ b/docs/TokenLinkRequestDto.md @@ -1,33 +1 @@ -# TokenLinkRequestDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | The type of token being linked | -**ref_id** | **str** | The Fireblocks' token link reference id. For example, 'BQ5R_BDESC_ABC' if it's a fungible asset | [optional] -**display_name** | **str** | The token display name | [optional] -**base_asset_id** | **str** | The blockchain base assetId | [optional] -**contract_address** | **str** | The contract's onchain address | [optional] - -## Example - -```python -from fireblocks.models.token_link_request_dto import TokenLinkRequestDto - -# TODO update the JSON string below -json = "{}" -# create an instance of TokenLinkRequestDto from a JSON string -token_link_request_dto_instance = TokenLinkRequestDto.from_json(json) -# print the JSON string representation of the object -print(TokenLinkRequestDto.to_json()) - -# convert the object into a dict -token_link_request_dto_dict = token_link_request_dto_instance.to_dict() -# create an instance of TokenLinkRequestDto from a dict -token_link_request_dto_from_dict = TokenLinkRequestDto.from_dict(token_link_request_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUb2tlbkxpbmtSZXF1ZXN0RHRvCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR5cGUqKiB8ICoqc3RyKiogfCBUaGUgdHlwZSBvZiB0b2tlbiBiZWluZyBsaW5rZWQgfCAKKipyZWZfaWQqKiB8ICoqc3RyKiogfCBUaGUgRmlyZWJsb2NrcyYjMzk7IHRva2VuIGxpbmsgcmVmZXJlbmNlIGlkLiBGb3IgZXhhbXBsZSwgJiMzOTtCUTVSX0JERVNDX0FCQyYjMzk7IGlmIGl0JiMzOTtzIGEgZnVuZ2libGUgICAgICAgYXNzZXQgfCBbb3B0aW9uYWxdIAoqKmRpc3BsYXlfbmFtZSoqIHwgKipzdHIqKiB8IFRoZSB0b2tlbiBkaXNwbGF5IG5hbWUgfCBbb3B0aW9uYWxdIAoqKmJhc2VfYXNzZXRfaWQqKiB8ICoqc3RyKiogfCBUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQgfCBbb3B0aW9uYWxdIAoqKmNvbnRyYWN0X2FkZHJlc3MqKiB8ICoqc3RyKiogfCBUaGUgY29udHJhY3QmIzM5O3Mgb25jaGFpbiBhZGRyZXNzIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2xpbmtfcmVxdWVzdF9kdG8gaW1wb3J0IFRva2VuTGlua1JlcXVlc3REdG8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRva2VuTGlua1JlcXVlc3REdG8gZnJvbSBhIEpTT04gc3RyaW5nCnRva2VuX2xpbmtfcmVxdWVzdF9kdG9faW5zdGFuY2UgPSBUb2tlbkxpbmtSZXF1ZXN0RHRvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRva2VuTGlua1JlcXVlc3REdG8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdG9rZW5fbGlua19yZXF1ZXN0X2R0b19kaWN0ID0gdG9rZW5fbGlua19yZXF1ZXN0X2R0b19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5MaW5rUmVxdWVzdER0byBmcm9tIGEgZGljdAp0b2tlbl9saW5rX3JlcXVlc3RfZHRvX2Zyb21fZGljdCA9IFRva2VuTGlua1JlcXVlc3REdG8uZnJvbV9kaWN0KHRva2VuX2xpbmtfcmVxdWVzdF9kdG9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TokenOwnershipResponse.md b/docs/TokenOwnershipResponse.md index d3ac32f7..0bc00e0d 100644 --- a/docs/TokenOwnershipResponse.md +++ b/docs/TokenOwnershipResponse.md @@ -1,46 +1 @@ -# TokenOwnershipResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The Fireblocks NFT asset id | -**token_id** | **str** | Token id within the contract/collection | -**standard** | **str** | ERC721 / ERC1155 | -**metadata_uri** | **str** | URL of the original token JSON metadata | [optional] -**cached_metadata_uri** | **str** | URL of the cached token JSON metadata | [optional] -**media** | [**List[MediaEntityResponse]**](MediaEntityResponse.md) | Media items extracted from metadata JSON | [optional] -**spam** | [**SpamOwnershipResponse**](SpamOwnershipResponse.md) | Owned Token's Spam status | [optional] -**collection** | [**TokenCollectionResponse**](TokenCollectionResponse.md) | Parent collection information | [optional] -**balance** | **str** | | -**vault_account_id** | **str** | | [optional] -**ownership_start_time** | **float** | | -**ownership_last_update_time** | **float** | | -**blockchain_descriptor** | **str** | | -**description** | **str** | | [optional] -**name** | **str** | | [optional] -**ncw_id** | **str** | Ownership Non-Custodial Wallet ID | [optional] -**ncw_account_id** | **str** | Ownership Non-Custodial Wallet's account ID | [optional] -**status** | **str** | Owned Token's status | - -## Example - -```python -from fireblocks.models.token_ownership_response import TokenOwnershipResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TokenOwnershipResponse from a JSON string -token_ownership_response_instance = TokenOwnershipResponse.from_json(json) -# print the JSON string representation of the object -print(TokenOwnershipResponse.to_json()) - -# convert the object into a dict -token_ownership_response_dict = token_ownership_response_instance.to_dict() -# create an instance of TokenOwnershipResponse from a dict -token_ownership_response_from_dict = TokenOwnershipResponse.from_dict(token_ownership_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUb2tlbk93bmVyc2hpcFJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgVGhlIEZpcmVibG9ja3MgTkZUIGFzc2V0IGlkIHwgCioqdG9rZW5faWQqKiB8ICoqc3RyKiogfCBUb2tlbiBpZCB3aXRoaW4gdGhlIGNvbnRyYWN0L2NvbGxlY3Rpb24gfCAKKipzdGFuZGFyZCoqIHwgKipzdHIqKiB8IEVSQzcyMSAvIEVSQzExNTUgfCAKKiptZXRhZGF0YV91cmkqKiB8ICoqc3RyKiogfCBVUkwgb2YgdGhlIG9yaWdpbmFsIHRva2VuIEpTT04gbWV0YWRhdGEgfCBbb3B0aW9uYWxdIAoqKmNhY2hlZF9tZXRhZGF0YV91cmkqKiB8ICoqc3RyKiogfCBVUkwgb2YgdGhlIGNhY2hlZCB0b2tlbiBKU09OIG1ldGFkYXRhIHwgW29wdGlvbmFsXSAKKiptZWRpYSoqIHwgWyoqTGlzdFtNZWRpYUVudGl0eVJlc3BvbnNlXSoqXShNZWRpYUVudGl0eVJlc3BvbnNlLm1kKSB8IE1lZGlhIGl0ZW1zIGV4dHJhY3RlZCBmcm9tIG1ldGFkYXRhIEpTT04gfCBbb3B0aW9uYWxdIAoqKnNwYW0qKiB8IFsqKlNwYW1Pd25lcnNoaXBSZXNwb25zZSoqXShTcGFtT3duZXJzaGlwUmVzcG9uc2UubWQpIHwgT3duZWQgVG9rZW4mIzM5O3MgU3BhbSBzdGF0dXMgfCBbb3B0aW9uYWxdIAoqKmNvbGxlY3Rpb24qKiB8IFsqKlRva2VuQ29sbGVjdGlvblJlc3BvbnNlKipdKFRva2VuQ29sbGVjdGlvblJlc3BvbnNlLm1kKSB8IFBhcmVudCBjb2xsZWN0aW9uIGluZm9ybWF0aW9uIHwgW29wdGlvbmFsXSAKKipiYWxhbmNlKiogfCAqKnN0cioqIHwgIHwgCioqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqb3duZXJzaGlwX3N0YXJ0X3RpbWUqKiB8ICoqZmxvYXQqKiB8ICB8IAoqKm93bmVyc2hpcF9sYXN0X3VwZGF0ZV90aW1lKiogfCAqKmZsb2F0KiogfCAgfCAKKipibG9ja2NoYWluX2Rlc2NyaXB0b3IqKiB8ICoqc3RyKiogfCAgfCAKKipkZXNjcmlwdGlvbioqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqbmFtZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqbmN3X2lkKiogfCAqKnN0cioqIHwgT3duZXJzaGlwIE5vbi1DdXN0b2RpYWwgV2FsbGV0IElEIHwgW29wdGlvbmFsXSAKKipuY3dfYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8IE93bmVyc2hpcCBOb24tQ3VzdG9kaWFsIFdhbGxldCYjMzk7cyBhY2NvdW50IElEIHwgW29wdGlvbmFsXSAKKipzdGF0dXMqKiB8ICoqc3RyKiogfCBPd25lZCBUb2tlbiYjMzk7cyBzdGF0dXMgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX293bmVyc2hpcF9yZXNwb25zZSBpbXBvcnQgVG9rZW5Pd25lcnNoaXBSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5Pd25lcnNoaXBSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKdG9rZW5fb3duZXJzaGlwX3Jlc3BvbnNlX2luc3RhbmNlID0gVG9rZW5Pd25lcnNoaXBSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUb2tlbk93bmVyc2hpcFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRva2VuX293bmVyc2hpcF9yZXNwb25zZV9kaWN0ID0gdG9rZW5fb3duZXJzaGlwX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUb2tlbk93bmVyc2hpcFJlc3BvbnNlIGZyb20gYSBkaWN0CnRva2VuX293bmVyc2hpcF9yZXNwb25zZV9mcm9tX2RpY3QgPSBUb2tlbk93bmVyc2hpcFJlc3BvbnNlLmZyb21fZGljdCh0b2tlbl9vd25lcnNoaXBfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TokenOwnershipSpamUpdatePayload.md b/docs/TokenOwnershipSpamUpdatePayload.md index a4da4070..b08a41d7 100644 --- a/docs/TokenOwnershipSpamUpdatePayload.md +++ b/docs/TokenOwnershipSpamUpdatePayload.md @@ -1,30 +1 @@ -# TokenOwnershipSpamUpdatePayload - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**asset_id** | **str** | Token's asset id | -**spam** | **bool** | Token's ownership new spam value | - -## Example - -```python -from fireblocks.models.token_ownership_spam_update_payload import TokenOwnershipSpamUpdatePayload - -# TODO update the JSON string below -json = "{}" -# create an instance of TokenOwnershipSpamUpdatePayload from a JSON string -token_ownership_spam_update_payload_instance = TokenOwnershipSpamUpdatePayload.from_json(json) -# print the JSON string representation of the object -print(TokenOwnershipSpamUpdatePayload.to_json()) - -# convert the object into a dict -token_ownership_spam_update_payload_dict = token_ownership_spam_update_payload_instance.to_dict() -# create an instance of TokenOwnershipSpamUpdatePayload from a dict -token_ownership_spam_update_payload_from_dict = TokenOwnershipSpamUpdatePayload.from_dict(token_ownership_spam_update_payload_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUb2tlbk93bmVyc2hpcFNwYW1VcGRhdGVQYXlsb2FkCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFzc2V0X2lkKiogfCAqKnN0cioqIHwgVG9rZW4mIzM5O3MgYXNzZXQgaWQgfCAKKipzcGFtKiogfCAqKmJvb2wqKiB8IFRva2VuJiMzOTtzIG93bmVyc2hpcCBuZXcgc3BhbSB2YWx1ZSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fb3duZXJzaGlwX3NwYW1fdXBkYXRlX3BheWxvYWQgaW1wb3J0IFRva2VuT3duZXJzaGlwU3BhbVVwZGF0ZVBheWxvYWQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRva2VuT3duZXJzaGlwU3BhbVVwZGF0ZVBheWxvYWQgZnJvbSBhIEpTT04gc3RyaW5nCnRva2VuX293bmVyc2hpcF9zcGFtX3VwZGF0ZV9wYXlsb2FkX2luc3RhbmNlID0gVG9rZW5Pd25lcnNoaXBTcGFtVXBkYXRlUGF5bG9hZC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUb2tlbk93bmVyc2hpcFNwYW1VcGRhdGVQYXlsb2FkLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRva2VuX293bmVyc2hpcF9zcGFtX3VwZGF0ZV9wYXlsb2FkX2RpY3QgPSB0b2tlbl9vd25lcnNoaXBfc3BhbV91cGRhdGVfcGF5bG9hZF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5Pd25lcnNoaXBTcGFtVXBkYXRlUGF5bG9hZCBmcm9tIGEgZGljdAp0b2tlbl9vd25lcnNoaXBfc3BhbV91cGRhdGVfcGF5bG9hZF9mcm9tX2RpY3QgPSBUb2tlbk93bmVyc2hpcFNwYW1VcGRhdGVQYXlsb2FkLmZyb21fZGljdCh0b2tlbl9vd25lcnNoaXBfc3BhbV91cGRhdGVfcGF5bG9hZF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TokenOwnershipStatusUpdatePayload.md b/docs/TokenOwnershipStatusUpdatePayload.md index 31bc15de..cf1e9f60 100644 --- a/docs/TokenOwnershipStatusUpdatePayload.md +++ b/docs/TokenOwnershipStatusUpdatePayload.md @@ -1,30 +1 @@ -# TokenOwnershipStatusUpdatePayload - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**asset_id** | **str** | Token's asset id | -**status** | **str** | Token's ownership new status | - -## Example - -```python -from fireblocks.models.token_ownership_status_update_payload import TokenOwnershipStatusUpdatePayload - -# TODO update the JSON string below -json = "{}" -# create an instance of TokenOwnershipStatusUpdatePayload from a JSON string -token_ownership_status_update_payload_instance = TokenOwnershipStatusUpdatePayload.from_json(json) -# print the JSON string representation of the object -print(TokenOwnershipStatusUpdatePayload.to_json()) - -# convert the object into a dict -token_ownership_status_update_payload_dict = token_ownership_status_update_payload_instance.to_dict() -# create an instance of TokenOwnershipStatusUpdatePayload from a dict -token_ownership_status_update_payload_from_dict = TokenOwnershipStatusUpdatePayload.from_dict(token_ownership_status_update_payload_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUb2tlbk93bmVyc2hpcFN0YXR1c1VwZGF0ZVBheWxvYWQKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYXNzZXRfaWQqKiB8ICoqc3RyKiogfCBUb2tlbiYjMzk7cyBhc3NldCBpZCB8IAoqKnN0YXR1cyoqIHwgKipzdHIqKiB8IFRva2VuJiMzOTtzIG93bmVyc2hpcCBuZXcgc3RhdHVzIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b2tlbl9vd25lcnNoaXBfc3RhdHVzX3VwZGF0ZV9wYXlsb2FkIGltcG9ydCBUb2tlbk93bmVyc2hpcFN0YXR1c1VwZGF0ZVBheWxvYWQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRva2VuT3duZXJzaGlwU3RhdHVzVXBkYXRlUGF5bG9hZCBmcm9tIGEgSlNPTiBzdHJpbmcKdG9rZW5fb3duZXJzaGlwX3N0YXR1c191cGRhdGVfcGF5bG9hZF9pbnN0YW5jZSA9IFRva2VuT3duZXJzaGlwU3RhdHVzVXBkYXRlUGF5bG9hZC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUb2tlbk93bmVyc2hpcFN0YXR1c1VwZGF0ZVBheWxvYWQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdG9rZW5fb3duZXJzaGlwX3N0YXR1c191cGRhdGVfcGF5bG9hZF9kaWN0ID0gdG9rZW5fb3duZXJzaGlwX3N0YXR1c191cGRhdGVfcGF5bG9hZF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5Pd25lcnNoaXBTdGF0dXNVcGRhdGVQYXlsb2FkIGZyb20gYSBkaWN0CnRva2VuX293bmVyc2hpcF9zdGF0dXNfdXBkYXRlX3BheWxvYWRfZnJvbV9kaWN0ID0gVG9rZW5Pd25lcnNoaXBTdGF0dXNVcGRhdGVQYXlsb2FkLmZyb21fZGljdCh0b2tlbl9vd25lcnNoaXBfc3RhdHVzX3VwZGF0ZV9wYXlsb2FkX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TokenResponse.md b/docs/TokenResponse.md index d165a16c..12139976 100644 --- a/docs/TokenResponse.md +++ b/docs/TokenResponse.md @@ -1,39 +1 @@ -# TokenResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The Fireblocks NFT asset id | -**token_id** | **str** | Token id within the contract/collection | -**standard** | **str** | ERC721 / ERC1155 | -**metadata_uri** | **str** | URL of the original token JSON metadata | [optional] -**cached_metadata_uri** | **str** | URL of the cached token JSON metadata | [optional] -**media** | [**List[MediaEntityResponse]**](MediaEntityResponse.md) | Media items extracted from metadata JSON | [optional] -**spam** | [**SpamTokenResponse**](SpamTokenResponse.md) | Token spam status | [optional] -**collection** | [**TokenCollectionResponse**](TokenCollectionResponse.md) | Parent collection information | [optional] -**blockchain_descriptor** | **str** | | -**description** | **str** | | [optional] -**name** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.token_response import TokenResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TokenResponse from a JSON string -token_response_instance = TokenResponse.from_json(json) -# print the JSON string representation of the object -print(TokenResponse.to_json()) - -# convert the object into a dict -token_response_dict = token_response_instance.to_dict() -# create an instance of TokenResponse from a dict -token_response_from_dict = TokenResponse.from_dict(token_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUb2tlblJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgVGhlIEZpcmVibG9ja3MgTkZUIGFzc2V0IGlkIHwgCioqdG9rZW5faWQqKiB8ICoqc3RyKiogfCBUb2tlbiBpZCB3aXRoaW4gdGhlIGNvbnRyYWN0L2NvbGxlY3Rpb24gfCAKKipzdGFuZGFyZCoqIHwgKipzdHIqKiB8IEVSQzcyMSAvIEVSQzExNTUgfCAKKiptZXRhZGF0YV91cmkqKiB8ICoqc3RyKiogfCBVUkwgb2YgdGhlIG9yaWdpbmFsIHRva2VuIEpTT04gbWV0YWRhdGEgfCBbb3B0aW9uYWxdIAoqKmNhY2hlZF9tZXRhZGF0YV91cmkqKiB8ICoqc3RyKiogfCBVUkwgb2YgdGhlIGNhY2hlZCB0b2tlbiBKU09OIG1ldGFkYXRhIHwgW29wdGlvbmFsXSAKKiptZWRpYSoqIHwgWyoqTGlzdFtNZWRpYUVudGl0eVJlc3BvbnNlXSoqXShNZWRpYUVudGl0eVJlc3BvbnNlLm1kKSB8IE1lZGlhIGl0ZW1zIGV4dHJhY3RlZCBmcm9tIG1ldGFkYXRhIEpTT04gfCBbb3B0aW9uYWxdIAoqKnNwYW0qKiB8IFsqKlNwYW1Ub2tlblJlc3BvbnNlKipdKFNwYW1Ub2tlblJlc3BvbnNlLm1kKSB8IFRva2VuIHNwYW0gc3RhdHVzIHwgW29wdGlvbmFsXSAKKipjb2xsZWN0aW9uKiogfCBbKipUb2tlbkNvbGxlY3Rpb25SZXNwb25zZSoqXShUb2tlbkNvbGxlY3Rpb25SZXNwb25zZS5tZCkgfCBQYXJlbnQgY29sbGVjdGlvbiBpbmZvcm1hdGlvbiB8IFtvcHRpb25hbF0gCioqYmxvY2tjaGFpbl9kZXNjcmlwdG9yKiogfCAqKnN0cioqIHwgIHwgCioqZGVzY3JpcHRpb24qKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKm5hbWUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fcmVzcG9uc2UgaW1wb3J0IFRva2VuUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRva2VuUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnRva2VuX3Jlc3BvbnNlX2luc3RhbmNlID0gVG9rZW5SZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUb2tlblJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRva2VuX3Jlc3BvbnNlX2RpY3QgPSB0b2tlbl9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5SZXNwb25zZSBmcm9tIGEgZGljdAp0b2tlbl9yZXNwb25zZV9mcm9tX2RpY3QgPSBUb2tlblJlc3BvbnNlLmZyb21fZGljdCh0b2tlbl9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TokenizationApi.md b/docs/TokenizationApi.md index b11698fb..49d86334 100644 --- a/docs/TokenizationApi.md +++ b/docs/TokenizationApi.md @@ -1,1895 +1 @@ -# fireblocks.TokenizationApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**burn_collection_token**](TokenizationApi.md#burn_collection_token) | **POST** /tokenization/collections/{id}/tokens/burn | Burn tokens -[**create_new_collection**](TokenizationApi.md#create_new_collection) | **POST** /tokenization/collections | Create a new collection -[**deactivate_and_unlink_adapters**](TokenizationApi.md#deactivate_and_unlink_adapters) | **DELETE** /tokenization/multichain/bridge/layerzero | Remove LayerZero adapters -[**deploy_and_link_adapters**](TokenizationApi.md#deploy_and_link_adapters) | **POST** /tokenization/multichain/bridge/layerzero | Deploy LayerZero adapters -[**fetch_collection_token_details**](TokenizationApi.md#fetch_collection_token_details) | **GET** /tokenization/collections/{id}/tokens/{tokenId} | Get collection token details -[**get_collection_by_id**](TokenizationApi.md#get_collection_by_id) | **GET** /tokenization/collections/{id} | Get a collection by id -[**get_deployable_address**](TokenizationApi.md#get_deployable_address) | **POST** /tokenization/multichain/deterministic_address | Get deterministic address for contract deployment -[**get_layer_zero_dvn_config**](TokenizationApi.md#get_layer_zero_dvn_config) | **GET** /tokenization/multichain/bridge/layerzero/config/{adapterTokenLinkId}/dvns | Get LayerZero DVN configuration -[**get_layer_zero_peers**](TokenizationApi.md#get_layer_zero_peers) | **GET** /tokenization/multichain/bridge/layerzero/config/{adapterTokenLinkId}/peers | Get LayerZero peers -[**get_linked_collections**](TokenizationApi.md#get_linked_collections) | **GET** /tokenization/collections | Get collections -[**get_linked_token**](TokenizationApi.md#get_linked_token) | **GET** /tokenization/tokens/{id} | Return a linked token -[**get_linked_tokens**](TokenizationApi.md#get_linked_tokens) | **GET** /tokenization/tokens | List all linked tokens -[**get_linked_tokens_count**](TokenizationApi.md#get_linked_tokens_count) | **GET** /tokenization/tokens/count | Get the total count of linked tokens -[**issue_new_token**](TokenizationApi.md#issue_new_token) | **POST** /tokenization/tokens | Issue a new token -[**issue_token_multi_chain**](TokenizationApi.md#issue_token_multi_chain) | **POST** /tokenization/multichain/tokens | Issue a token on one or more blockchains -[**link**](TokenizationApi.md#link) | **POST** /tokenization/tokens/link | Link a contract -[**mint_collection_token**](TokenizationApi.md#mint_collection_token) | **POST** /tokenization/collections/{id}/tokens/mint | Mint tokens -[**re_issue_token_multi_chain**](TokenizationApi.md#re_issue_token_multi_chain) | **POST** /tokenization/multichain/reissue/token/{tokenLinkId} | Reissue a multichain token -[**remove_layer_zero_peers**](TokenizationApi.md#remove_layer_zero_peers) | **DELETE** /tokenization/multichain/bridge/layerzero/config/peers | Remove LayerZero peers -[**set_layer_zero_dvn_config**](TokenizationApi.md#set_layer_zero_dvn_config) | **POST** /tokenization/multichain/bridge/layerzero/config/dvns | Set LayerZero DVN configuration -[**set_layer_zero_peers**](TokenizationApi.md#set_layer_zero_peers) | **POST** /tokenization/multichain/bridge/layerzero/config/peers | Set LayerZero peers -[**unlink**](TokenizationApi.md#unlink) | **DELETE** /tokenization/tokens/{id} | Unlink a token -[**unlink_collection**](TokenizationApi.md#unlink_collection) | **DELETE** /tokenization/collections/{id} | Delete a collection link -[**validate_layer_zero_channel_config**](TokenizationApi.md#validate_layer_zero_channel_config) | **GET** /tokenization/multichain/bridge/layerzero/validate | Validate LayerZero channel configuration - - -# **burn_collection_token** -> CollectionBurnResponseDto burn_collection_token(id, collection_burn_request_dto, idempotency_key=idempotency_key) - -Burn tokens - -Burn tokens in a collection - -### Example - - -```python -from fireblocks.models.collection_burn_request_dto import CollectionBurnRequestDto -from fireblocks.models.collection_burn_response_dto import CollectionBurnResponseDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb' # str | The collection link id - collection_burn_request_dto = fireblocks.CollectionBurnRequestDto() # CollectionBurnRequestDto | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Burn tokens - api_response = fireblocks.tokenization.burn_collection_token(id, collection_burn_request_dto, idempotency_key=idempotency_key).result() - print("The response of TokenizationApi->burn_collection_token:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->burn_collection_token: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **id** | **str**| The collection link id | - **collection_burn_request_dto** | [**CollectionBurnRequestDto**](CollectionBurnRequestDto.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**CollectionBurnResponseDto**](CollectionBurnResponseDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**202** | Tokens burned successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_new_collection** -> CollectionLinkDto create_new_collection(collection_deploy_request_dto, idempotency_key=idempotency_key) - -Create a new collection - -Create a new collection and link it as a token. -
Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, and Editor. - -### Example - - -```python -from fireblocks.models.collection_deploy_request_dto import CollectionDeployRequestDto -from fireblocks.models.collection_link_dto import CollectionLinkDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - collection_deploy_request_dto = fireblocks.CollectionDeployRequestDto() # CollectionDeployRequestDto | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Create a new collection - api_response = fireblocks.tokenization.create_new_collection(collection_deploy_request_dto, idempotency_key=idempotency_key).result() - print("The response of TokenizationApi->create_new_collection:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->create_new_collection: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **collection_deploy_request_dto** | [**CollectionDeployRequestDto**](CollectionDeployRequestDto.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**CollectionLinkDto**](CollectionLinkDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Collection was created successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **deactivate_and_unlink_adapters** -> RemoveLayerZeroAdaptersResponse deactivate_and_unlink_adapters(remove_layer_zero_adapters_request, idempotency_key=idempotency_key) - -Remove LayerZero adapters - -Remove LayerZero adapters by deactivating and unlinking them. This endpoint revokes roles and deactivates the specified adapter contracts. - -### Example - - -```python -from fireblocks.models.remove_layer_zero_adapters_request import RemoveLayerZeroAdaptersRequest -from fireblocks.models.remove_layer_zero_adapters_response import RemoveLayerZeroAdaptersResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - remove_layer_zero_adapters_request = fireblocks.RemoveLayerZeroAdaptersRequest() # RemoveLayerZeroAdaptersRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Remove LayerZero adapters - api_response = fireblocks.tokenization.deactivate_and_unlink_adapters(remove_layer_zero_adapters_request, idempotency_key=idempotency_key).result() - print("The response of TokenizationApi->deactivate_and_unlink_adapters:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->deactivate_and_unlink_adapters: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **remove_layer_zero_adapters_request** | [**RemoveLayerZeroAdaptersRequest**](RemoveLayerZeroAdaptersRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**RemoveLayerZeroAdaptersResponse**](RemoveLayerZeroAdaptersResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | LayerZero adapters removal process completed | - | -**400** | Bad request, invalid input data or parameters | - | -**404** | Token link not found | - | -**409** | Token link processing error | - | -**500** | Internal server error | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **deploy_and_link_adapters** -> List[AdapterProcessingResult] deploy_and_link_adapters(deploy_layer_zero_adapters_request, idempotency_key=idempotency_key) - -Deploy LayerZero adapters - -Deploy LayerZero adapters for multichain token bridging functionality. This endpoint creates adapter contracts that enable cross-chain token transfers. - -### Example - - -```python -from fireblocks.models.adapter_processing_result import AdapterProcessingResult -from fireblocks.models.deploy_layer_zero_adapters_request import DeployLayerZeroAdaptersRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - deploy_layer_zero_adapters_request = fireblocks.DeployLayerZeroAdaptersRequest() # DeployLayerZeroAdaptersRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Deploy LayerZero adapters - api_response = fireblocks.tokenization.deploy_and_link_adapters(deploy_layer_zero_adapters_request, idempotency_key=idempotency_key).result() - print("The response of TokenizationApi->deploy_and_link_adapters:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->deploy_and_link_adapters: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **deploy_layer_zero_adapters_request** | [**DeployLayerZeroAdaptersRequest**](DeployLayerZeroAdaptersRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**List[AdapterProcessingResult]**](AdapterProcessingResult.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | LayerZero adapters deployed successfully | - | -**400** | Bad request, invalid input data or parameters | - | -**404** | Token link not found | - | -**409** | Token link preparation error | - | -**422** | Token link is not fungible | - | -**500** | Internal server error | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **fetch_collection_token_details** -> CollectionLinkDto fetch_collection_token_details(id, token_id) - -Get collection token details - -Get collection token details by id - -### Example - - -```python -from fireblocks.models.collection_link_dto import CollectionLinkDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb' # str | The collection link id - token_id = '1' # str | The tokenId as it appears on the blockchain - - try: - # Get collection token details - api_response = fireblocks.tokenization.fetch_collection_token_details(id, token_id).result() - print("The response of TokenizationApi->fetch_collection_token_details:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->fetch_collection_token_details: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **id** | **str**| The collection link id | - **token_id** | **str**| The tokenId as it appears on the blockchain | - -### Return type - -[**CollectionLinkDto**](CollectionLinkDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Collection token details were fetched successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_collection_by_id** -> CollectionLinkDto get_collection_by_id(id) - -Get a collection by id - -Get a collection by id - -### Example - - -```python -from fireblocks.models.collection_link_dto import CollectionLinkDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb' # str | The token link id - - try: - # Get a collection by id - api_response = fireblocks.tokenization.get_collection_by_id(id).result() - print("The response of TokenizationApi->get_collection_by_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->get_collection_by_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **id** | **str**| The token link id | - -### Return type - -[**CollectionLinkDto**](CollectionLinkDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Collection fetched successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_deployable_address** -> DeployableAddressResponse get_deployable_address(get_deployable_address_request, idempotency_key=idempotency_key) - -Get deterministic address for contract deployment - -Get a deterministic address for contract deployment. The address is derived from the contract's bytecode and provided salt. This endpoint is used to get the address of a contract that will be deployed in the future. - -### Example - - -```python -from fireblocks.models.deployable_address_response import DeployableAddressResponse -from fireblocks.models.get_deployable_address_request import GetDeployableAddressRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - get_deployable_address_request = fireblocks.GetDeployableAddressRequest() # GetDeployableAddressRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Get deterministic address for contract deployment - api_response = fireblocks.tokenization.get_deployable_address(get_deployable_address_request, idempotency_key=idempotency_key).result() - print("The response of TokenizationApi->get_deployable_address:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->get_deployable_address: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **get_deployable_address_request** | [**GetDeployableAddressRequest**](GetDeployableAddressRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**DeployableAddressResponse**](DeployableAddressResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Deterministic address for contract deployment | - | -**400** | Invalid parameters or template has no bytecode | - | -**409** | Address is already taken | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_layer_zero_dvn_config** -> GetLayerZeroDvnConfigResponse get_layer_zero_dvn_config(adapter_token_link_id, peer_adapter_token_link_id=peer_adapter_token_link_id) - -Get LayerZero DVN configuration - -Retrieve the DVN (Data Verification Network) configuration for a specific adapter. Returns DVN configurations for channels between the source adapter and its peers. - -### Example - - -```python -from fireblocks.models.get_layer_zero_dvn_config_response import GetLayerZeroDvnConfigResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - adapter_token_link_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d' # str | The token link id of the adapter token link - peer_adapter_token_link_id = '6add4f2a-b206-4114-8f94-2882618ffbb4' # str | Optional peer adapter token link ID to filter results (optional) - - try: - # Get LayerZero DVN configuration - api_response = fireblocks.tokenization.get_layer_zero_dvn_config(adapter_token_link_id, peer_adapter_token_link_id=peer_adapter_token_link_id).result() - print("The response of TokenizationApi->get_layer_zero_dvn_config:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->get_layer_zero_dvn_config: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **adapter_token_link_id** | **str**| The token link id of the adapter token link | - **peer_adapter_token_link_id** | **str**| Optional peer adapter token link ID to filter results | [optional] - -### Return type - -[**GetLayerZeroDvnConfigResponse**](GetLayerZeroDvnConfigResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | LayerZero DVN configuration retrieved successfully | - | -**400** | Bad request, invalid input data or parameters | - | -**404** | Token link not found | - | -**500** | Internal server error | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_layer_zero_peers** -> GetLayerZeroPeersResponse get_layer_zero_peers(adapter_token_link_id) - -Get LayerZero peers - -Retrieve the LayerZero peers configured for a specific adapter. Returns information about peer relationships for cross-chain communication. - -### Example - - -```python -from fireblocks.models.get_layer_zero_peers_response import GetLayerZeroPeersResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - adapter_token_link_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d' # str | The token link id of the adapter token link - - try: - # Get LayerZero peers - api_response = fireblocks.tokenization.get_layer_zero_peers(adapter_token_link_id).result() - print("The response of TokenizationApi->get_layer_zero_peers:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->get_layer_zero_peers: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **adapter_token_link_id** | **str**| The token link id of the adapter token link | - -### Return type - -[**GetLayerZeroPeersResponse**](GetLayerZeroPeersResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | LayerZero peers retrieved successfully | - | -**400** | Bad request, invalid input data or parameters | - | -**404** | Token link not found | - | -**500** | Internal server error | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_linked_collections** -> GetLinkedCollectionsPaginatedResponse get_linked_collections(page_cursor=page_cursor, page_size=page_size, status=status) - -Get collections - -Get collections (paginated). -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -### Example - - -```python -from fireblocks.models.get_linked_collections_paginated_response import GetLinkedCollectionsPaginatedResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - page_cursor = 'page_cursor_example' # str | Page cursor to get the next page, for example - \"MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==\" (optional) - page_size = 100 # float | Number of items per page (max 100), requesting more then 100 will return 100 items (optional) (default to 100) - status = COMPLETED # object | A comma separated list of statuses to filter. Default is \"COMPLETED\" (optional) - - try: - # Get collections - api_response = fireblocks.tokenization.get_linked_collections(page_cursor=page_cursor, page_size=page_size, status=status).result() - print("The response of TokenizationApi->get_linked_collections:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->get_linked_collections: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **page_cursor** | **str**| Page cursor to get the next page, for example - \"MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==\" | [optional] - **page_size** | **float**| Number of items per page (max 100), requesting more then 100 will return 100 items | [optional] [default to 100] - **status** | [**object**](.md)| A comma separated list of statuses to filter. Default is \"COMPLETED\" | [optional] - -### Return type - -[**GetLinkedCollectionsPaginatedResponse**](GetLinkedCollectionsPaginatedResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Collection fetched successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_linked_token** -> TokenLinkDto get_linked_token(id) - -Return a linked token - -Return a linked token, with its status and metadata. - -### Example - - -```python -from fireblocks.models.token_link_dto import TokenLinkDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb' # str | The token link id - - try: - # Return a linked token - api_response = fireblocks.tokenization.get_linked_token(id).result() - print("The response of TokenizationApi->get_linked_token:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->get_linked_token: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **id** | **str**| The token link id | - -### Return type - -[**TokenLinkDto**](TokenLinkDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Token fetched successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_linked_tokens** -> TokensPaginatedResponse get_linked_tokens(page_cursor=page_cursor, page_size=page_size, status=status) - -List all linked tokens - -Return all linked tokens (paginated) - -### Example - - -```python -from fireblocks.models.tokens_paginated_response import TokensPaginatedResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - page_cursor = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==' # str | Page cursor to get the next page (optional) - page_size = 10 # float | Number of items per page, requesting more then max will return max items (optional) - status = COMPLETED # object | A comma separated list of statuses to filter. Default is \"COMPLETED\" (optional) - - try: - # List all linked tokens - api_response = fireblocks.tokenization.get_linked_tokens(page_cursor=page_cursor, page_size=page_size, status=status).result() - print("The response of TokenizationApi->get_linked_tokens:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->get_linked_tokens: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **page_cursor** | **str**| Page cursor to get the next page | [optional] - **page_size** | **float**| Number of items per page, requesting more then max will return max items | [optional] - **status** | [**object**](.md)| A comma separated list of statuses to filter. Default is \"COMPLETED\" | [optional] - -### Return type - -[**TokensPaginatedResponse**](TokensPaginatedResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_linked_tokens_count** -> LinkedTokensCount get_linked_tokens_count() - -Get the total count of linked tokens - -Get the total count of linked tokens - -### Example - - -```python -from fireblocks.models.linked_tokens_count import LinkedTokensCount -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Get the total count of linked tokens - api_response = fireblocks.tokenization.get_linked_tokens_count().result() - print("The response of TokenizationApi->get_linked_tokens_count:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->get_linked_tokens_count: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**LinkedTokensCount**](LinkedTokensCount.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Count fetched successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **issue_new_token** -> TokenLinkDto issue_new_token(create_token_request_dto, idempotency_key=idempotency_key) - -Issue a new token - -Facilitates the creation of a new token, supporting both EVM-based and Stellar/Ripple platforms. For EVM, it deploys the corresponding contract template to the blockchain and links the token to the workspace. For Stellar/Ripple, it links a newly created token directly to the workspace without deploying a contract. Returns the token link with status "PENDING" until the token is deployed or "SUCCESS" if no deployment is needed. -
Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, and Editor. - -### Example - - -```python -from fireblocks.models.create_token_request_dto import CreateTokenRequestDto -from fireblocks.models.token_link_dto import TokenLinkDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - create_token_request_dto = fireblocks.CreateTokenRequestDto() # CreateTokenRequestDto | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Issue a new token - api_response = fireblocks.tokenization.issue_new_token(create_token_request_dto, idempotency_key=idempotency_key).result() - print("The response of TokenizationApi->issue_new_token:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->issue_new_token: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **create_token_request_dto** | [**CreateTokenRequestDto**](CreateTokenRequestDto.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**TokenLinkDto**](TokenLinkDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Token was created successfully | - | -**409** | Asset already exists | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **issue_token_multi_chain** -> List[TokenLinkDto] issue_token_multi_chain(create_multichain_token_request, idempotency_key=idempotency_key) - -Issue a token on one or more blockchains - -Facilitates the creation of a new token on one or more blockchains. - -### Example - - -```python -from fireblocks.models.create_multichain_token_request import CreateMultichainTokenRequest -from fireblocks.models.token_link_dto import TokenLinkDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - create_multichain_token_request = fireblocks.CreateMultichainTokenRequest() # CreateMultichainTokenRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Issue a token on one or more blockchains - api_response = fireblocks.tokenization.issue_token_multi_chain(create_multichain_token_request, idempotency_key=idempotency_key).result() - print("The response of TokenizationApi->issue_token_multi_chain:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->issue_token_multi_chain: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **create_multichain_token_request** | [**CreateMultichainTokenRequest**](CreateMultichainTokenRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**List[TokenLinkDto]**](TokenLinkDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Tokens were created successfully | - | -**400** | Invalid input. | - | -**409** | Address is already taken. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **link** -> TokenLinkDto link(token_link_request_dto, idempotency_key=idempotency_key) - -Link a contract - -Link an a contract - -### Example - - -```python -from fireblocks.models.token_link_dto import TokenLinkDto -from fireblocks.models.token_link_request_dto import TokenLinkRequestDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - token_link_request_dto = fireblocks.TokenLinkRequestDto() # TokenLinkRequestDto | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Link a contract - api_response = fireblocks.tokenization.link(token_link_request_dto, idempotency_key=idempotency_key).result() - print("The response of TokenizationApi->link:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->link: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **token_link_request_dto** | [**TokenLinkRequestDto**](TokenLinkRequestDto.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**TokenLinkDto**](TokenLinkDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Token linked successfully | - | -**201** | | - | -**404** | Could not find the underlying contract to link to | - | -**409** | Token link for {refId} already exists | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **mint_collection_token** -> CollectionMintResponseDto mint_collection_token(id, collection_mint_request_dto, idempotency_key=idempotency_key) - -Mint tokens - -Mint tokens and upload metadata - -### Example - - -```python -from fireblocks.models.collection_mint_request_dto import CollectionMintRequestDto -from fireblocks.models.collection_mint_response_dto import CollectionMintResponseDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb' # str | The collection link id - collection_mint_request_dto = fireblocks.CollectionMintRequestDto() # CollectionMintRequestDto | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Mint tokens - api_response = fireblocks.tokenization.mint_collection_token(id, collection_mint_request_dto, idempotency_key=idempotency_key).result() - print("The response of TokenizationApi->mint_collection_token:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->mint_collection_token: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **id** | **str**| The collection link id | - **collection_mint_request_dto** | [**CollectionMintRequestDto**](CollectionMintRequestDto.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**CollectionMintResponseDto**](CollectionMintResponseDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**202** | Tokens minted successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **re_issue_token_multi_chain** -> List[TokenLinkDto] re_issue_token_multi_chain(token_link_id, reissue_multichain_token_request, idempotency_key=idempotency_key) - -Reissue a multichain token - -Reissue a multichain token. This endpoint allows you to reissue a token on one or more blockchains. The token must be initially issued using the issueTokenMultiChain endpoint. - -### Example - - -```python -from fireblocks.models.reissue_multichain_token_request import ReissueMultichainTokenRequest -from fireblocks.models.token_link_dto import TokenLinkDto -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - token_link_id = 'token_link_id_example' # str | The ID of the token link - reissue_multichain_token_request = fireblocks.ReissueMultichainTokenRequest() # ReissueMultichainTokenRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Reissue a multichain token - api_response = fireblocks.tokenization.re_issue_token_multi_chain(token_link_id, reissue_multichain_token_request, idempotency_key=idempotency_key).result() - print("The response of TokenizationApi->re_issue_token_multi_chain:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->re_issue_token_multi_chain: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **token_link_id** | **str**| The ID of the token link | - **reissue_multichain_token_request** | [**ReissueMultichainTokenRequest**](ReissueMultichainTokenRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**List[TokenLinkDto]**](TokenLinkDto.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Successfully reissued multichain token | - | -**400** | Invalid input | - | -**404** | Deployed contract not found | - | -**409** | Address is already taken | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **remove_layer_zero_peers** -> RemoveLayerZeroPeersResponse remove_layer_zero_peers(remove_layer_zero_peers_request, idempotency_key=idempotency_key) - -Remove LayerZero peers - -Remove LayerZero peers to disconnect adapter contracts. This endpoint removes peer relationships between LayerZero adapters. - -### Example - - -```python -from fireblocks.models.remove_layer_zero_peers_request import RemoveLayerZeroPeersRequest -from fireblocks.models.remove_layer_zero_peers_response import RemoveLayerZeroPeersResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - remove_layer_zero_peers_request = fireblocks.RemoveLayerZeroPeersRequest() # RemoveLayerZeroPeersRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Remove LayerZero peers - api_response = fireblocks.tokenization.remove_layer_zero_peers(remove_layer_zero_peers_request, idempotency_key=idempotency_key).result() - print("The response of TokenizationApi->remove_layer_zero_peers:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->remove_layer_zero_peers: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **remove_layer_zero_peers_request** | [**RemoveLayerZeroPeersRequest**](RemoveLayerZeroPeersRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**RemoveLayerZeroPeersResponse**](RemoveLayerZeroPeersResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | LayerZero peers removal process completed | - | -**400** | Bad request, invalid input data or parameters | - | -**404** | Token link not found | - | -**409** | Token link processing error | - | -**500** | Internal server error | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_layer_zero_dvn_config** -> SetLayerZeroDvnConfigResponse set_layer_zero_dvn_config(set_layer_zero_dvn_config_request, idempotency_key=idempotency_key) - -Set LayerZero DVN configuration - -Configure DVN settings for LayerZero adapters. This endpoint sets up the DVN configuration for message verification between source and destination adapters. - -### Example - - -```python -from fireblocks.models.set_layer_zero_dvn_config_request import SetLayerZeroDvnConfigRequest -from fireblocks.models.set_layer_zero_dvn_config_response import SetLayerZeroDvnConfigResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - set_layer_zero_dvn_config_request = fireblocks.SetLayerZeroDvnConfigRequest() # SetLayerZeroDvnConfigRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Set LayerZero DVN configuration - api_response = fireblocks.tokenization.set_layer_zero_dvn_config(set_layer_zero_dvn_config_request, idempotency_key=idempotency_key).result() - print("The response of TokenizationApi->set_layer_zero_dvn_config:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->set_layer_zero_dvn_config: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **set_layer_zero_dvn_config_request** | [**SetLayerZeroDvnConfigRequest**](SetLayerZeroDvnConfigRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**SetLayerZeroDvnConfigResponse**](SetLayerZeroDvnConfigResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | LayerZero DVN configuration set successfully | - | -**400** | Bad request, invalid input data or parameters | - | -**404** | Token link not found | - | -**409** | Token link preparation error | - | -**422** | Bridging protocol blockchain metadata not found | - | -**500** | Internal server error | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_layer_zero_peers** -> SetLayerZeroPeersResponse set_layer_zero_peers(set_layer_zero_peers_request, idempotency_key=idempotency_key) - -Set LayerZero peers - -Set LayerZero peers to establish connections between adapter contracts. This endpoint creates peer relationships that enable cross-chain communication. It sets the destination adapter as a peer of the source adapter. If `bidirectional` is true, it also sets the source adapter as a peer of the destination adapter(s). - -### Example - - -```python -from fireblocks.models.set_layer_zero_peers_request import SetLayerZeroPeersRequest -from fireblocks.models.set_layer_zero_peers_response import SetLayerZeroPeersResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - set_layer_zero_peers_request = fireblocks.SetLayerZeroPeersRequest() # SetLayerZeroPeersRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Set LayerZero peers - api_response = fireblocks.tokenization.set_layer_zero_peers(set_layer_zero_peers_request, idempotency_key=idempotency_key).result() - print("The response of TokenizationApi->set_layer_zero_peers:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->set_layer_zero_peers: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **set_layer_zero_peers_request** | [**SetLayerZeroPeersRequest**](SetLayerZeroPeersRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**SetLayerZeroPeersResponse**](SetLayerZeroPeersResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | LayerZero peers set successfully | - | -**400** | Bad request, invalid input data or parameters | - | -**404** | Token link not found | - | -**409** | Token link preparation error | - | -**422** | Token link is not fungible | - | -**500** | Internal server error | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **unlink** -> unlink(id) - -Unlink a token - -Unlink a token. The token will be unlinked from the workspace. The token will not be deleted on chain nor the refId, only the link to the workspace will be removed. - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb' # str | The token link id - - try: - # Unlink a token - fireblocks.tokenization.unlink(id).result() - except Exception as e: - print("Exception when calling TokenizationApi->unlink: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **id** | **str**| The token link id | - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Token unlinked successfully | - | -**204** | | - | -**404** | Link did not exist | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **unlink_collection** -> unlink_collection(id) - -Delete a collection link - -Delete a collection link - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb' # str | The token link id - - try: - # Delete a collection link - fireblocks.tokenization.unlink_collection(id).result() - except Exception as e: - print("Exception when calling TokenizationApi->unlink_collection: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **id** | **str**| The token link id | - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**204** | Collection unlinked successfully | - | -**404** | Link for collection does not exist | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **validate_layer_zero_channel_config** -> ValidateLayerZeroChannelResponse validate_layer_zero_channel_config(adapter_token_link_id, peer_adapter_token_link_id) - -Validate LayerZero channel configuration - -Validate the LayerZero channel configuration between adapters. This endpoint checks if the channel configuration is correct and returns any validation errors. - -### Example - - -```python -from fireblocks.models.validate_layer_zero_channel_response import ValidateLayerZeroChannelResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - adapter_token_link_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d' # str | The token link ID of the adapter - peer_adapter_token_link_id = '6add4f2a-b206-4114-8f94-2882618ffbb4' # str | Peer adapter token link ID to validate against - - try: - # Validate LayerZero channel configuration - api_response = fireblocks.tokenization.validate_layer_zero_channel_config(adapter_token_link_id, peer_adapter_token_link_id).result() - print("The response of TokenizationApi->validate_layer_zero_channel_config:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TokenizationApi->validate_layer_zero_channel_config: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **adapter_token_link_id** | **str**| The token link ID of the adapter | - **peer_adapter_token_link_id** | **str**| Peer adapter token link ID to validate against | - -### Return type - -[**ValidateLayerZeroChannelResponse**](ValidateLayerZeroChannelResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | LayerZero channel configuration validation completed | - | -**400** | Bad request, invalid input data or parameters | - | -**404** | Token link not found | - | -**422** | Bridging protocol blockchain metadata not found | - | -**500** | Internal server error | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLlRva2VuaXphdGlvbkFwaQoKQWxsIFVSSXMgYXJlIHJlbGF0aXZlIHRvICpodHRwczovL2FwaS5maXJlYmxvY2tzLmlvL3YxKgoKTWV0aG9kIHwgSFRUUCByZXF1ZXN0IHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tClsqKmJ1cm5fY29sbGVjdGlvbl90b2tlbioqXShUb2tlbml6YXRpb25BcGkubWQjYnVybl9jb2xsZWN0aW9uX3Rva2VuKSB8ICoqUE9TVCoqIC90b2tlbml6YXRpb24vY29sbGVjdGlvbnMve2lkfS90b2tlbnMvYnVybiB8IEJ1cm4gdG9rZW5zClsqKmNyZWF0ZV9uZXdfY29sbGVjdGlvbioqXShUb2tlbml6YXRpb25BcGkubWQjY3JlYXRlX25ld19jb2xsZWN0aW9uKSB8ICoqUE9TVCoqIC90b2tlbml6YXRpb24vY29sbGVjdGlvbnMgfCBDcmVhdGUgYSBuZXcgY29sbGVjdGlvbgpbKipkZWFjdGl2YXRlX2FuZF91bmxpbmtfYWRhcHRlcnMqKl0oVG9rZW5pemF0aW9uQXBpLm1kI2RlYWN0aXZhdGVfYW5kX3VubGlua19hZGFwdGVycykgfCAqKkRFTEVURSoqIC90b2tlbml6YXRpb24vbXVsdGljaGFpbi9icmlkZ2UvbGF5ZXJ6ZXJvIHwgUmVtb3ZlIExheWVyWmVybyBhZGFwdGVycwpbKipkZXBsb3lfYW5kX2xpbmtfYWRhcHRlcnMqKl0oVG9rZW5pemF0aW9uQXBpLm1kI2RlcGxveV9hbmRfbGlua19hZGFwdGVycykgfCAqKlBPU1QqKiAvdG9rZW5pemF0aW9uL211bHRpY2hhaW4vYnJpZGdlL2xheWVyemVybyB8IERlcGxveSBMYXllclplcm8gYWRhcHRlcnMKWyoqZmV0Y2hfY29sbGVjdGlvbl90b2tlbl9kZXRhaWxzKipdKFRva2VuaXphdGlvbkFwaS5tZCNmZXRjaF9jb2xsZWN0aW9uX3Rva2VuX2RldGFpbHMpIHwgKipHRVQqKiAvdG9rZW5pemF0aW9uL2NvbGxlY3Rpb25zL3tpZH0vdG9rZW5zL3t0b2tlbklkfSB8IEdldCBjb2xsZWN0aW9uIHRva2VuIGRldGFpbHMKWyoqZ2V0X2NvbGxlY3Rpb25fYnlfaWQqKl0oVG9rZW5pemF0aW9uQXBpLm1kI2dldF9jb2xsZWN0aW9uX2J5X2lkKSB8ICoqR0VUKiogL3Rva2VuaXphdGlvbi9jb2xsZWN0aW9ucy97aWR9IHwgR2V0IGEgY29sbGVjdGlvbiBieSBpZApbKipnZXRfZGVwbG95YWJsZV9hZGRyZXNzKipdKFRva2VuaXphdGlvbkFwaS5tZCNnZXRfZGVwbG95YWJsZV9hZGRyZXNzKSB8ICoqUE9TVCoqIC90b2tlbml6YXRpb24vbXVsdGljaGFpbi9kZXRlcm1pbmlzdGljX2FkZHJlc3MgfCBHZXQgZGV0ZXJtaW5pc3RpYyBhZGRyZXNzIGZvciBjb250cmFjdCBkZXBsb3ltZW50ClsqKmdldF9sYXllcl96ZXJvX2R2bl9jb25maWcqKl0oVG9rZW5pemF0aW9uQXBpLm1kI2dldF9sYXllcl96ZXJvX2R2bl9jb25maWcpIHwgKipHRVQqKiAvdG9rZW5pemF0aW9uL211bHRpY2hhaW4vYnJpZGdlL2xheWVyemVyby9jb25maWcve2FkYXB0ZXJUb2tlbkxpbmtJZH0vZHZucyB8IEdldCBMYXllclplcm8gRFZOIGNvbmZpZ3VyYXRpb24KWyoqZ2V0X2xheWVyX3plcm9fcGVlcnMqKl0oVG9rZW5pemF0aW9uQXBpLm1kI2dldF9sYXllcl96ZXJvX3BlZXJzKSB8ICoqR0VUKiogL3Rva2VuaXphdGlvbi9tdWx0aWNoYWluL2JyaWRnZS9sYXllcnplcm8vY29uZmlnL3thZGFwdGVyVG9rZW5MaW5rSWR9L3BlZXJzIHwgR2V0IExheWVyWmVybyBwZWVycwpbKipnZXRfbGlua2VkX2NvbGxlY3Rpb25zKipdKFRva2VuaXphdGlvbkFwaS5tZCNnZXRfbGlua2VkX2NvbGxlY3Rpb25zKSB8ICoqR0VUKiogL3Rva2VuaXphdGlvbi9jb2xsZWN0aW9ucyB8IEdldCBjb2xsZWN0aW9ucwpbKipnZXRfbGlua2VkX3Rva2VuKipdKFRva2VuaXphdGlvbkFwaS5tZCNnZXRfbGlua2VkX3Rva2VuKSB8ICoqR0VUKiogL3Rva2VuaXphdGlvbi90b2tlbnMve2lkfSB8IFJldHVybiBhIGxpbmtlZCB0b2tlbgpbKipnZXRfbGlua2VkX3Rva2VucyoqXShUb2tlbml6YXRpb25BcGkubWQjZ2V0X2xpbmtlZF90b2tlbnMpIHwgKipHRVQqKiAvdG9rZW5pemF0aW9uL3Rva2VucyB8IExpc3QgYWxsIGxpbmtlZCB0b2tlbnMKWyoqZ2V0X2xpbmtlZF90b2tlbnNfY291bnQqKl0oVG9rZW5pemF0aW9uQXBpLm1kI2dldF9saW5rZWRfdG9rZW5zX2NvdW50KSB8ICoqR0VUKiogL3Rva2VuaXphdGlvbi90b2tlbnMvY291bnQgfCBHZXQgdGhlIHRvdGFsIGNvdW50IG9mIGxpbmtlZCB0b2tlbnMKWyoqaXNzdWVfbmV3X3Rva2VuKipdKFRva2VuaXphdGlvbkFwaS5tZCNpc3N1ZV9uZXdfdG9rZW4pIHwgKipQT1NUKiogL3Rva2VuaXphdGlvbi90b2tlbnMgfCBJc3N1ZSBhIG5ldyB0b2tlbgpbKippc3N1ZV90b2tlbl9tdWx0aV9jaGFpbioqXShUb2tlbml6YXRpb25BcGkubWQjaXNzdWVfdG9rZW5fbXVsdGlfY2hhaW4pIHwgKipQT1NUKiogL3Rva2VuaXphdGlvbi9tdWx0aWNoYWluL3Rva2VucyB8IElzc3VlIGEgdG9rZW4gb24gb25lIG9yIG1vcmUgYmxvY2tjaGFpbnMKWyoqbGluayoqXShUb2tlbml6YXRpb25BcGkubWQjbGluaykgfCAqKlBPU1QqKiAvdG9rZW5pemF0aW9uL3Rva2Vucy9saW5rIHwgTGluayBhIGNvbnRyYWN0ClsqKm1pbnRfY29sbGVjdGlvbl90b2tlbioqXShUb2tlbml6YXRpb25BcGkubWQjbWludF9jb2xsZWN0aW9uX3Rva2VuKSB8ICoqUE9TVCoqIC90b2tlbml6YXRpb24vY29sbGVjdGlvbnMve2lkfS90b2tlbnMvbWludCB8IE1pbnQgdG9rZW5zClsqKnJlX2lzc3VlX3Rva2VuX211bHRpX2NoYWluKipdKFRva2VuaXphdGlvbkFwaS5tZCNyZV9pc3N1ZV90b2tlbl9tdWx0aV9jaGFpbikgfCAqKlBPU1QqKiAvdG9rZW5pemF0aW9uL211bHRpY2hhaW4vcmVpc3N1ZS90b2tlbi97dG9rZW5MaW5rSWR9IHwgUmVpc3N1ZSBhIG11bHRpY2hhaW4gdG9rZW4KWyoqcmVtb3ZlX2xheWVyX3plcm9fcGVlcnMqKl0oVG9rZW5pemF0aW9uQXBpLm1kI3JlbW92ZV9sYXllcl96ZXJvX3BlZXJzKSB8ICoqREVMRVRFKiogL3Rva2VuaXphdGlvbi9tdWx0aWNoYWluL2JyaWRnZS9sYXllcnplcm8vY29uZmlnL3BlZXJzIHwgUmVtb3ZlIExheWVyWmVybyBwZWVycwpbKipzZXRfbGF5ZXJfemVyb19kdm5fY29uZmlnKipdKFRva2VuaXphdGlvbkFwaS5tZCNzZXRfbGF5ZXJfemVyb19kdm5fY29uZmlnKSB8ICoqUE9TVCoqIC90b2tlbml6YXRpb24vbXVsdGljaGFpbi9icmlkZ2UvbGF5ZXJ6ZXJvL2NvbmZpZy9kdm5zIHwgU2V0IExheWVyWmVybyBEVk4gY29uZmlndXJhdGlvbgpbKipzZXRfbGF5ZXJfemVyb19wZWVycyoqXShUb2tlbml6YXRpb25BcGkubWQjc2V0X2xheWVyX3plcm9fcGVlcnMpIHwgKipQT1NUKiogL3Rva2VuaXphdGlvbi9tdWx0aWNoYWluL2JyaWRnZS9sYXllcnplcm8vY29uZmlnL3BlZXJzIHwgU2V0IExheWVyWmVybyBwZWVycwpbKip1bmxpbmsqKl0oVG9rZW5pemF0aW9uQXBpLm1kI3VubGluaykgfCAqKkRFTEVURSoqIC90b2tlbml6YXRpb24vdG9rZW5zL3tpZH0gfCBVbmxpbmsgYSB0b2tlbgpbKip1bmxpbmtfY29sbGVjdGlvbioqXShUb2tlbml6YXRpb25BcGkubWQjdW5saW5rX2NvbGxlY3Rpb24pIHwgKipERUxFVEUqKiAvdG9rZW5pemF0aW9uL2NvbGxlY3Rpb25zL3tpZH0gfCBEZWxldGUgYSBjb2xsZWN0aW9uIGxpbmsKWyoqdmFsaWRhdGVfbGF5ZXJfemVyb19jaGFubmVsX2NvbmZpZyoqXShUb2tlbml6YXRpb25BcGkubWQjdmFsaWRhdGVfbGF5ZXJfemVyb19jaGFubmVsX2NvbmZpZykgfCAqKkdFVCoqIC90b2tlbml6YXRpb24vbXVsdGljaGFpbi9icmlkZ2UvbGF5ZXJ6ZXJvL3ZhbGlkYXRlIHwgVmFsaWRhdGUgTGF5ZXJaZXJvIGNoYW5uZWwgY29uZmlndXJhdGlvbgoKCiMgKipidXJuX2NvbGxlY3Rpb25fdG9rZW4qKgo+IENvbGxlY3Rpb25CdXJuUmVzcG9uc2VEdG8gYnVybl9jb2xsZWN0aW9uX3Rva2VuKGlkLCBjb2xsZWN0aW9uX2J1cm5fcmVxdWVzdF9kdG8sIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpCdXJuIHRva2VucwoKQnVybiB0b2tlbnMgaW4gYSBjb2xsZWN0aW9uCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fYnVybl9yZXF1ZXN0X2R0byBpbXBvcnQgQ29sbGVjdGlvbkJ1cm5SZXF1ZXN0RHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29sbGVjdGlvbl9idXJuX3Jlc3BvbnNlX2R0byBpbXBvcnQgQ29sbGVjdGlvbkJ1cm5SZXNwb25zZUR0bwpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBpZCA9ICdmYmZiZmJmYi1mYmZiLWZiZmItZmJmYi1mYmZiZmJmYmZiZmInICMgc3RyIHwgVGhlIGNvbGxlY3Rpb24gbGluayBpZAogICAgY29sbGVjdGlvbl9idXJuX3JlcXVlc3RfZHRvID0gZmlyZWJsb2Nrcy5Db2xsZWN0aW9uQnVyblJlcXVlc3REdG8oKSAjIENvbGxlY3Rpb25CdXJuUmVxdWVzdER0byB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIEJ1cm4gdG9rZW5zCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50b2tlbml6YXRpb24uYnVybl9jb2xsZWN0aW9uX3Rva2VuKGlkLCBjb2xsZWN0aW9uX2J1cm5fcmVxdWVzdF9kdG8sIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUb2tlbml6YXRpb25BcGktPmJ1cm5fY29sbGVjdGlvbl90b2tlbjpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUb2tlbml6YXRpb25BcGktPmJ1cm5fY29sbGVjdGlvbl90b2tlbjogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqaWQqKiB8ICoqc3RyKip8IFRoZSBjb2xsZWN0aW9uIGxpbmsgaWQgfCAKICoqY29sbGVjdGlvbl9idXJuX3JlcXVlc3RfZHRvKiogfCBbKipDb2xsZWN0aW9uQnVyblJlcXVlc3REdG8qKl0oQ29sbGVjdGlvbkJ1cm5SZXF1ZXN0RHRvLm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkNvbGxlY3Rpb25CdXJuUmVzcG9uc2VEdG8qKl0oQ29sbGVjdGlvbkJ1cm5SZXNwb25zZUR0by5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMioqIHwgVG9rZW5zIGJ1cm5lZCBzdWNjZXNzZnVsbHkgfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmNyZWF0ZV9uZXdfY29sbGVjdGlvbioqCj4gQ29sbGVjdGlvbkxpbmtEdG8gY3JlYXRlX25ld19jb2xsZWN0aW9uKGNvbGxlY3Rpb25fZGVwbG95X3JlcXVlc3RfZHRvLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKQ3JlYXRlIGEgbmV3IGNvbGxlY3Rpb24KCkNyZWF0ZSBhIG5ldyBjb2xsZWN0aW9uIGFuZCBsaW5rIGl0IGFzIGEgdG9rZW4uCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogT3duZXIsIEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBhbmQgRWRpdG9yLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb2xsZWN0aW9uX2RlcGxveV9yZXF1ZXN0X2R0byBpbXBvcnQgQ29sbGVjdGlvbkRlcGxveVJlcXVlc3REdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb2xsZWN0aW9uX2xpbmtfZHRvIGltcG9ydCBDb2xsZWN0aW9uTGlua0R0bwpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjb2xsZWN0aW9uX2RlcGxveV9yZXF1ZXN0X2R0byA9IGZpcmVibG9ja3MuQ29sbGVjdGlvbkRlcGxveVJlcXVlc3REdG8oKSAjIENvbGxlY3Rpb25EZXBsb3lSZXF1ZXN0RHRvIHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ3JlYXRlIGEgbmV3IGNvbGxlY3Rpb24KICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRva2VuaXphdGlvbi5jcmVhdGVfbmV3X2NvbGxlY3Rpb24oY29sbGVjdGlvbl9kZXBsb3lfcmVxdWVzdF9kdG8sIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUb2tlbml6YXRpb25BcGktPmNyZWF0ZV9uZXdfY29sbGVjdGlvbjpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUb2tlbml6YXRpb25BcGktPmNyZWF0ZV9uZXdfY29sbGVjdGlvbjogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqY29sbGVjdGlvbl9kZXBsb3lfcmVxdWVzdF9kdG8qKiB8IFsqKkNvbGxlY3Rpb25EZXBsb3lSZXF1ZXN0RHRvKipdKENvbGxlY3Rpb25EZXBsb3lSZXF1ZXN0RHRvLm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkNvbGxlY3Rpb25MaW5rRHRvKipdKENvbGxlY3Rpb25MaW5rRHRvLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBDb2xsZWN0aW9uIHdhcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseSB8ICAtICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZGVhY3RpdmF0ZV9hbmRfdW5saW5rX2FkYXB0ZXJzKioKPiBSZW1vdmVMYXllclplcm9BZGFwdGVyc1Jlc3BvbnNlIGRlYWN0aXZhdGVfYW5kX3VubGlua19hZGFwdGVycyhyZW1vdmVfbGF5ZXJfemVyb19hZGFwdGVyc19yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKUmVtb3ZlIExheWVyWmVybyBhZGFwdGVycwoKUmVtb3ZlIExheWVyWmVybyBhZGFwdGVycyBieSBkZWFjdGl2YXRpbmcgYW5kIHVubGlua2luZyB0aGVtLiBUaGlzIGVuZHBvaW50IHJldm9rZXMgcm9sZXMgYW5kIGRlYWN0aXZhdGVzIHRoZSBzcGVjaWZpZWQgYWRhcHRlciBjb250cmFjdHMuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJzX3JlcXVlc3QgaW1wb3J0IFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJzX3Jlc3BvbnNlIGltcG9ydCBSZW1vdmVMYXllclplcm9BZGFwdGVyc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJzX3JlcXVlc3QgPSBmaXJlYmxvY2tzLlJlbW92ZUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdCgpICMgUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgUmVtb3ZlIExheWVyWmVybyBhZGFwdGVycwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudG9rZW5pemF0aW9uLmRlYWN0aXZhdGVfYW5kX3VubGlua19hZGFwdGVycyhyZW1vdmVfbGF5ZXJfemVyb19hZGFwdGVyc19yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVG9rZW5pemF0aW9uQXBpLT5kZWFjdGl2YXRlX2FuZF91bmxpbmtfYWRhcHRlcnM6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVG9rZW5pemF0aW9uQXBpLT5kZWFjdGl2YXRlX2FuZF91bmxpbmtfYWRhcHRlcnM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJzX3JlcXVlc3QqKiB8IFsqKlJlbW92ZUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdCoqXShSZW1vdmVMYXllclplcm9BZGFwdGVyc1JlcXVlc3QubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXNwb25zZSoqXShSZW1vdmVMYXllclplcm9BZGFwdGVyc1Jlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBMYXllclplcm8gYWRhcHRlcnMgcmVtb3ZhbCBwcm9jZXNzIGNvbXBsZXRlZCB8ICAtICB8CioqNDAwKiogfCBCYWQgcmVxdWVzdCwgaW52YWxpZCBpbnB1dCBkYXRhIG9yIHBhcmFtZXRlcnMgfCAgLSAgfAoqKjQwNCoqIHwgVG9rZW4gbGluayBub3QgZm91bmQgfCAgLSAgfAoqKjQwOSoqIHwgVG9rZW4gbGluayBwcm9jZXNzaW5nIGVycm9yIHwgIC0gIHwKKio1MDAqKiB8IEludGVybmFsIHNlcnZlciBlcnJvciB8ICAtICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipkZXBsb3lfYW5kX2xpbmtfYWRhcHRlcnMqKgo+IExpc3RbQWRhcHRlclByb2Nlc3NpbmdSZXN1bHRdIGRlcGxveV9hbmRfbGlua19hZGFwdGVycyhkZXBsb3lfbGF5ZXJfemVyb19hZGFwdGVyc19yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKRGVwbG95IExheWVyWmVybyBhZGFwdGVycwoKRGVwbG95IExheWVyWmVybyBhZGFwdGVycyBmb3IgbXVsdGljaGFpbiB0b2tlbiBicmlkZ2luZyBmdW5jdGlvbmFsaXR5LiBUaGlzIGVuZHBvaW50IGNyZWF0ZXMgYWRhcHRlciBjb250cmFjdHMgdGhhdCBlbmFibGUgY3Jvc3MtY2hhaW4gdG9rZW4gdHJhbnNmZXJzLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hZGFwdGVyX3Byb2Nlc3NpbmdfcmVzdWx0IGltcG9ydCBBZGFwdGVyUHJvY2Vzc2luZ1Jlc3VsdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlcGxveV9sYXllcl96ZXJvX2FkYXB0ZXJzX3JlcXVlc3QgaW1wb3J0IERlcGxveUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBkZXBsb3lfbGF5ZXJfemVyb19hZGFwdGVyc19yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5EZXBsb3lMYXllclplcm9BZGFwdGVyc1JlcXVlc3QoKSAjIERlcGxveUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdCB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIERlcGxveSBMYXllclplcm8gYWRhcHRlcnMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRva2VuaXphdGlvbi5kZXBsb3lfYW5kX2xpbmtfYWRhcHRlcnMoZGVwbG95X2xheWVyX3plcm9fYWRhcHRlcnNfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRva2VuaXphdGlvbkFwaS0+ZGVwbG95X2FuZF9saW5rX2FkYXB0ZXJzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRva2VuaXphdGlvbkFwaS0+ZGVwbG95X2FuZF9saW5rX2FkYXB0ZXJzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipkZXBsb3lfbGF5ZXJfemVyb19hZGFwdGVyc19yZXF1ZXN0KiogfCBbKipEZXBsb3lMYXllclplcm9BZGFwdGVyc1JlcXVlc3QqKl0oRGVwbG95TGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkxpc3RbQWRhcHRlclByb2Nlc3NpbmdSZXN1bHRdKipdKEFkYXB0ZXJQcm9jZXNzaW5nUmVzdWx0Lm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBMYXllclplcm8gYWRhcHRlcnMgZGVwbG95ZWQgc3VjY2Vzc2Z1bGx5IHwgIC0gIHwKKio0MDAqKiB8IEJhZCByZXF1ZXN0LCBpbnZhbGlkIGlucHV0IGRhdGEgb3IgcGFyYW1ldGVycyB8ICAtICB8CioqNDA0KiogfCBUb2tlbiBsaW5rIG5vdCBmb3VuZCB8ICAtICB8CioqNDA5KiogfCBUb2tlbiBsaW5rIHByZXBhcmF0aW9uIGVycm9yIHwgIC0gIHwKKio0MjIqKiB8IFRva2VuIGxpbmsgaXMgbm90IGZ1bmdpYmxlIHwgIC0gIHwKKio1MDAqKiB8IEludGVybmFsIHNlcnZlciBlcnJvciB8ICAtICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipmZXRjaF9jb2xsZWN0aW9uX3Rva2VuX2RldGFpbHMqKgo+IENvbGxlY3Rpb25MaW5rRHRvIGZldGNoX2NvbGxlY3Rpb25fdG9rZW5fZGV0YWlscyhpZCwgdG9rZW5faWQpCgpHZXQgY29sbGVjdGlvbiB0b2tlbiBkZXRhaWxzCgpHZXQgY29sbGVjdGlvbiB0b2tlbiBkZXRhaWxzIGJ5IGlkCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fbGlua19kdG8gaW1wb3J0IENvbGxlY3Rpb25MaW5rRHRvCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGlkID0gJ2ZiZmJmYmZiLWZiZmItZmJmYi1mYmZiLWZiZmJmYmZiZmJmYicgIyBzdHIgfCBUaGUgY29sbGVjdGlvbiBsaW5rIGlkCiAgICB0b2tlbl9pZCA9ICcxJyAjIHN0ciB8IFRoZSB0b2tlbklkIGFzIGl0IGFwcGVhcnMgb24gdGhlIGJsb2NrY2hhaW4KCiAgICB0cnk6CiAgICAgICAgIyBHZXQgY29sbGVjdGlvbiB0b2tlbiBkZXRhaWxzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50b2tlbml6YXRpb24uZmV0Y2hfY29sbGVjdGlvbl90b2tlbl9kZXRhaWxzKGlkLCB0b2tlbl9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRva2VuaXphdGlvbkFwaS0+ZmV0Y2hfY29sbGVjdGlvbl90b2tlbl9kZXRhaWxzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRva2VuaXphdGlvbkFwaS0+ZmV0Y2hfY29sbGVjdGlvbl90b2tlbl9kZXRhaWxzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKippZCoqIHwgKipzdHIqKnwgVGhlIGNvbGxlY3Rpb24gbGluayBpZCB8IAogKip0b2tlbl9pZCoqIHwgKipzdHIqKnwgVGhlIHRva2VuSWQgYXMgaXQgYXBwZWFycyBvbiB0aGUgYmxvY2tjaGFpbiB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipDb2xsZWN0aW9uTGlua0R0byoqXShDb2xsZWN0aW9uTGlua0R0by5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IENvbGxlY3Rpb24gdG9rZW4gZGV0YWlscyB3ZXJlIGZldGNoZWQgc3VjY2Vzc2Z1bGx5IHwgIC0gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfY29sbGVjdGlvbl9ieV9pZCoqCj4gQ29sbGVjdGlvbkxpbmtEdG8gZ2V0X2NvbGxlY3Rpb25fYnlfaWQoaWQpCgpHZXQgYSBjb2xsZWN0aW9uIGJ5IGlkCgpHZXQgYSBjb2xsZWN0aW9uIGJ5IGlkCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fbGlua19kdG8gaW1wb3J0IENvbGxlY3Rpb25MaW5rRHRvCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGlkID0gJ2ZiZmJmYmZiLWZiZmItZmJmYi1mYmZiLWZiZmJmYmZiZmJmYicgIyBzdHIgfCBUaGUgdG9rZW4gbGluayBpZAoKICAgIHRyeToKICAgICAgICAjIEdldCBhIGNvbGxlY3Rpb24gYnkgaWQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRva2VuaXphdGlvbi5nZXRfY29sbGVjdGlvbl9ieV9pZChpZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRva2VuaXphdGlvbkFwaS0+Z2V0X2NvbGxlY3Rpb25fYnlfaWQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVG9rZW5pemF0aW9uQXBpLT5nZXRfY29sbGVjdGlvbl9ieV9pZDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqaWQqKiB8ICoqc3RyKip8IFRoZSB0b2tlbiBsaW5rIGlkIHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKkNvbGxlY3Rpb25MaW5rRHRvKipdKENvbGxlY3Rpb25MaW5rRHRvLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQ29sbGVjdGlvbiBmZXRjaGVkIHN1Y2Nlc3NmdWxseSB8ICAtICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2RlcGxveWFibGVfYWRkcmVzcyoqCj4gRGVwbG95YWJsZUFkZHJlc3NSZXNwb25zZSBnZXRfZGVwbG95YWJsZV9hZGRyZXNzKGdldF9kZXBsb3lhYmxlX2FkZHJlc3NfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCkdldCBkZXRlcm1pbmlzdGljIGFkZHJlc3MgZm9yIGNvbnRyYWN0IGRlcGxveW1lbnQKCkdldCBhIGRldGVybWluaXN0aWMgYWRkcmVzcyBmb3IgY29udHJhY3QgZGVwbG95bWVudC4gVGhlIGFkZHJlc3MgaXMgZGVyaXZlZCBmcm9tIHRoZSBjb250cmFjdCdzIGJ5dGVjb2RlIGFuZCAgcHJvdmlkZWQgc2FsdC4gVGhpcyBlbmRwb2ludCBpcyB1c2VkIHRvIGdldCB0aGUgYWRkcmVzcyBvZiBhIGNvbnRyYWN0IHRoYXQgd2lsbCBiZSBkZXBsb3llZCBpbiB0aGUgZnV0dXJlLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZXBsb3lhYmxlX2FkZHJlc3NfcmVzcG9uc2UgaW1wb3J0IERlcGxveWFibGVBZGRyZXNzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfZGVwbG95YWJsZV9hZGRyZXNzX3JlcXVlc3QgaW1wb3J0IEdldERlcGxveWFibGVBZGRyZXNzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBnZXRfZGVwbG95YWJsZV9hZGRyZXNzX3JlcXVlc3QgPSBmaXJlYmxvY2tzLkdldERlcGxveWFibGVBZGRyZXNzUmVxdWVzdCgpICMgR2V0RGVwbG95YWJsZUFkZHJlc3NSZXF1ZXN0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgR2V0IGRldGVybWluaXN0aWMgYWRkcmVzcyBmb3IgY29udHJhY3QgZGVwbG95bWVudAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudG9rZW5pemF0aW9uLmdldF9kZXBsb3lhYmxlX2FkZHJlc3MoZ2V0X2RlcGxveWFibGVfYWRkcmVzc19yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVG9rZW5pemF0aW9uQXBpLT5nZXRfZGVwbG95YWJsZV9hZGRyZXNzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRva2VuaXphdGlvbkFwaS0+Z2V0X2RlcGxveWFibGVfYWRkcmVzczogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqZ2V0X2RlcGxveWFibGVfYWRkcmVzc19yZXF1ZXN0KiogfCBbKipHZXREZXBsb3lhYmxlQWRkcmVzc1JlcXVlc3QqKl0oR2V0RGVwbG95YWJsZUFkZHJlc3NSZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkRlcGxveWFibGVBZGRyZXNzUmVzcG9uc2UqKl0oRGVwbG95YWJsZUFkZHJlc3NSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgRGV0ZXJtaW5pc3RpYyBhZGRyZXNzIGZvciBjb250cmFjdCBkZXBsb3ltZW50IHwgIC0gIHwKKio0MDAqKiB8IEludmFsaWQgcGFyYW1ldGVycyBvciB0ZW1wbGF0ZSBoYXMgbm8gYnl0ZWNvZGUgfCAgLSAgfAoqKjQwOSoqIHwgQWRkcmVzcyBpcyBhbHJlYWR5IHRha2VuIHwgIC0gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfbGF5ZXJfemVyb19kdm5fY29uZmlnKioKPiBHZXRMYXllclplcm9Edm5Db25maWdSZXNwb25zZSBnZXRfbGF5ZXJfemVyb19kdm5fY29uZmlnKGFkYXB0ZXJfdG9rZW5fbGlua19pZCwgcGVlcl9hZGFwdGVyX3Rva2VuX2xpbmtfaWQ9cGVlcl9hZGFwdGVyX3Rva2VuX2xpbmtfaWQpCgpHZXQgTGF5ZXJaZXJvIERWTiBjb25maWd1cmF0aW9uCgpSZXRyaWV2ZSB0aGUgRFZOIChEYXRhIFZlcmlmaWNhdGlvbiBOZXR3b3JrKSBjb25maWd1cmF0aW9uIGZvciBhIHNwZWNpZmljIGFkYXB0ZXIuIFJldHVybnMgRFZOIGNvbmZpZ3VyYXRpb25zIGZvciBjaGFubmVscyBiZXR3ZWVuIHRoZSBzb3VyY2UgYWRhcHRlciBhbmQgaXRzIHBlZXJzLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfbGF5ZXJfemVyb19kdm5fY29uZmlnX3Jlc3BvbnNlIGltcG9ydCBHZXRMYXllclplcm9Edm5Db25maWdSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBhZGFwdGVyX3Rva2VuX2xpbmtfaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJyAjIHN0ciB8IFRoZSB0b2tlbiBsaW5rIGlkIG9mIHRoZSBhZGFwdGVyIHRva2VuIGxpbmsKICAgIHBlZXJfYWRhcHRlcl90b2tlbl9saW5rX2lkID0gJzZhZGQ0ZjJhLWIyMDYtNDExNC04Zjk0LTI4ODI2MThmZmJiNCcgIyBzdHIgfCBPcHRpb25hbCBwZWVyIGFkYXB0ZXIgdG9rZW4gbGluayBJRCB0byBmaWx0ZXIgcmVzdWx0cyAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgR2V0IExheWVyWmVybyBEVk4gY29uZmlndXJhdGlvbgogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudG9rZW5pemF0aW9uLmdldF9sYXllcl96ZXJvX2R2bl9jb25maWcoYWRhcHRlcl90b2tlbl9saW5rX2lkLCBwZWVyX2FkYXB0ZXJfdG9rZW5fbGlua19pZD1wZWVyX2FkYXB0ZXJfdG9rZW5fbGlua19pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRva2VuaXphdGlvbkFwaS0+Z2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZzpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUb2tlbml6YXRpb25BcGktPmdldF9sYXllcl96ZXJvX2R2bl9jb25maWc6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmFkYXB0ZXJfdG9rZW5fbGlua19pZCoqIHwgKipzdHIqKnwgVGhlIHRva2VuIGxpbmsgaWQgb2YgdGhlIGFkYXB0ZXIgdG9rZW4gbGluayB8IAogKipwZWVyX2FkYXB0ZXJfdG9rZW5fbGlua19pZCoqIHwgKipzdHIqKnwgT3B0aW9uYWwgcGVlciBhZGFwdGVyIHRva2VuIGxpbmsgSUQgdG8gZmlsdGVyIHJlc3VsdHMgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipHZXRMYXllclplcm9Edm5Db25maWdSZXNwb25zZSoqXShHZXRMYXllclplcm9Edm5Db25maWdSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IExheWVyWmVybyBEVk4gY29uZmlndXJhdGlvbiByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5IHwgIC0gIHwKKio0MDAqKiB8IEJhZCByZXF1ZXN0LCBpbnZhbGlkIGlucHV0IGRhdGEgb3IgcGFyYW1ldGVycyB8ICAtICB8CioqNDA0KiogfCBUb2tlbiBsaW5rIG5vdCBmb3VuZCB8ICAtICB8CioqNTAwKiogfCBJbnRlcm5hbCBzZXJ2ZXIgZXJyb3IgfCAgLSAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2xheWVyX3plcm9fcGVlcnMqKgo+IEdldExheWVyWmVyb1BlZXJzUmVzcG9uc2UgZ2V0X2xheWVyX3plcm9fcGVlcnMoYWRhcHRlcl90b2tlbl9saW5rX2lkKQoKR2V0IExheWVyWmVybyBwZWVycwoKUmV0cmlldmUgdGhlIExheWVyWmVybyBwZWVycyBjb25maWd1cmVkIGZvciBhIHNwZWNpZmljIGFkYXB0ZXIuIFJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgcGVlciByZWxhdGlvbnNoaXBzIGZvciBjcm9zcy1jaGFpbiBjb21tdW5pY2F0aW9uLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfbGF5ZXJfemVyb19wZWVyc19yZXNwb25zZSBpbXBvcnQgR2V0TGF5ZXJaZXJvUGVlcnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBhZGFwdGVyX3Rva2VuX2xpbmtfaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJyAjIHN0ciB8IFRoZSB0b2tlbiBsaW5rIGlkIG9mIHRoZSBhZGFwdGVyIHRva2VuIGxpbmsKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgTGF5ZXJaZXJvIHBlZXJzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50b2tlbml6YXRpb24uZ2V0X2xheWVyX3plcm9fcGVlcnMoYWRhcHRlcl90b2tlbl9saW5rX2lkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVG9rZW5pemF0aW9uQXBpLT5nZXRfbGF5ZXJfemVyb19wZWVyczpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUb2tlbml6YXRpb25BcGktPmdldF9sYXllcl96ZXJvX3BlZXJzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKiphZGFwdGVyX3Rva2VuX2xpbmtfaWQqKiB8ICoqc3RyKip8IFRoZSB0b2tlbiBsaW5rIGlkIG9mIHRoZSBhZGFwdGVyIHRva2VuIGxpbmsgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqR2V0TGF5ZXJaZXJvUGVlcnNSZXNwb25zZSoqXShHZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgTGF5ZXJaZXJvIHBlZXJzIHJldHJpZXZlZCBzdWNjZXNzZnVsbHkgfCAgLSAgfAoqKjQwMCoqIHwgQmFkIHJlcXVlc3QsIGludmFsaWQgaW5wdXQgZGF0YSBvciBwYXJhbWV0ZXJzIHwgIC0gIHwKKio0MDQqKiB8IFRva2VuIGxpbmsgbm90IGZvdW5kIHwgIC0gIHwKKio1MDAqKiB8IEludGVybmFsIHNlcnZlciBlcnJvciB8ICAtICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfbGlua2VkX2NvbGxlY3Rpb25zKioKPiBHZXRMaW5rZWRDb2xsZWN0aW9uc1BhZ2luYXRlZFJlc3BvbnNlIGdldF9saW5rZWRfY29sbGVjdGlvbnMocGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsIHN0YXR1cz1zdGF0dXMpCgpHZXQgY29sbGVjdGlvbnMKCkdldCBjb2xsZWN0aW9ucyAocGFnaW5hdGVkKS4KPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgVmlld2VyLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfbGlua2VkX2NvbGxlY3Rpb25zX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgR2V0TGlua2VkQ29sbGVjdGlvbnNQYWdpbmF0ZWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBwYWdlX2N1cnNvciA9ICdwYWdlX2N1cnNvcl9leGFtcGxlJyAjIHN0ciB8IFBhZ2UgY3Vyc29yIHRvIGdldCB0aGUgbmV4dCBwYWdlLCBmb3IgZXhhbXBsZSAtIFwiTWpBeU15MHhNaTB4TXlBeU1Eb3pOam93T0M0ek1EST06TVRFd01BPT1cIiAob3B0aW9uYWwpCiAgICBwYWdlX3NpemUgPSAxMDAgIyBmbG9hdCB8IE51bWJlciBvZiBpdGVtcyBwZXIgcGFnZSAobWF4IDEwMCksIHJlcXVlc3RpbmcgbW9yZSB0aGVuIDEwMCB3aWxsIHJldHVybiAxMDAgaXRlbXMgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byAxMDApCiAgICBzdGF0dXMgPSBDT01QTEVURUQgIyBvYmplY3QgfCBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHN0YXR1c2VzIHRvIGZpbHRlci4gRGVmYXVsdCBpcyBcIkNPTVBMRVRFRFwiIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgY29sbGVjdGlvbnMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRva2VuaXphdGlvbi5nZXRfbGlua2VkX2NvbGxlY3Rpb25zKHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplLCBzdGF0dXM9c3RhdHVzKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVG9rZW5pemF0aW9uQXBpLT5nZXRfbGlua2VkX2NvbGxlY3Rpb25zOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRva2VuaXphdGlvbkFwaS0+Z2V0X2xpbmtlZF9jb2xsZWN0aW9uczogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqcGFnZV9jdXJzb3IqKiB8ICoqc3RyKip8IFBhZ2UgY3Vyc29yIHRvIGdldCB0aGUgbmV4dCBwYWdlLCBmb3IgZXhhbXBsZSAtIFwmcXVvdDtNakF5TXkweE1pMHhNeUF5TURvek5qb3dPQzR6TURJJiN4M0Q7Ok1URXdNQSYjeDNEOyYjeDNEO1wmcXVvdDsgfCBbb3B0aW9uYWxdIAogKipwYWdlX3NpemUqKiB8ICoqZmxvYXQqKnwgTnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlIChtYXggMTAwKSwgcmVxdWVzdGluZyBtb3JlIHRoZW4gMTAwIHdpbGwgcmV0dXJuIDEwMCBpdGVtcyB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gMTAwXQogKipzdGF0dXMqKiB8IFsqKm9iamVjdCoqXSgubWQpfCBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHN0YXR1c2VzIHRvIGZpbHRlci4gRGVmYXVsdCBpcyBcJnF1b3Q7Q09NUExFVEVEXCZxdW90OyB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkdldExpbmtlZENvbGxlY3Rpb25zUGFnaW5hdGVkUmVzcG9uc2UqKl0oR2V0TGlua2VkQ29sbGVjdGlvbnNQYWdpbmF0ZWRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IENvbGxlY3Rpb24gZmV0Y2hlZCBzdWNjZXNzZnVsbHkgfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9saW5rZWRfdG9rZW4qKgo+IFRva2VuTGlua0R0byBnZXRfbGlua2VkX3Rva2VuKGlkKQoKUmV0dXJuIGEgbGlua2VkIHRva2VuCgpSZXR1cm4gYSBsaW5rZWQgdG9rZW4sIHdpdGggaXRzIHN0YXR1cyBhbmQgbWV0YWRhdGEuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2xpbmtfZHRvIGltcG9ydCBUb2tlbkxpbmtEdG8KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgaWQgPSAnZmJmYmZiZmItZmJmYi1mYmZiLWZiZmItZmJmYmZiZmJmYmZiJyAjIHN0ciB8IFRoZSB0b2tlbiBsaW5rIGlkCgogICAgdHJ5OgogICAgICAgICMgUmV0dXJuIGEgbGlua2VkIHRva2VuCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50b2tlbml6YXRpb24uZ2V0X2xpbmtlZF90b2tlbihpZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRva2VuaXphdGlvbkFwaS0+Z2V0X2xpbmtlZF90b2tlbjpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUb2tlbml6YXRpb25BcGktPmdldF9saW5rZWRfdG9rZW46ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmlkKiogfCAqKnN0cioqfCBUaGUgdG9rZW4gbGluayBpZCB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipUb2tlbkxpbmtEdG8qKl0oVG9rZW5MaW5rRHRvLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgVG9rZW4gZmV0Y2hlZCBzdWNjZXNzZnVsbHkgfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9saW5rZWRfdG9rZW5zKioKPiBUb2tlbnNQYWdpbmF0ZWRSZXNwb25zZSBnZXRfbGlua2VkX3Rva2VucyhwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwgc3RhdHVzPXN0YXR1cykKCkxpc3QgYWxsIGxpbmtlZCB0b2tlbnMKClJldHVybiBhbGwgbGlua2VkIHRva2VucyAocGFnaW5hdGVkKQoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b2tlbnNfcGFnaW5hdGVkX3Jlc3BvbnNlIGltcG9ydCBUb2tlbnNQYWdpbmF0ZWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBwYWdlX2N1cnNvciA9ICdNakF5TXkweE1pMHhNeUF5TURvek5qb3dPQzR6TURJPTpNVEV3TUE9PScgIyBzdHIgfCBQYWdlIGN1cnNvciB0byBnZXQgdGhlIG5leHQgcGFnZSAob3B0aW9uYWwpCiAgICBwYWdlX3NpemUgPSAxMCAjIGZsb2F0IHwgTnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlLCByZXF1ZXN0aW5nIG1vcmUgdGhlbiBtYXggd2lsbCByZXR1cm4gbWF4IGl0ZW1zIChvcHRpb25hbCkKICAgIHN0YXR1cyA9IENPTVBMRVRFRCAjIG9iamVjdCB8IEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2Ygc3RhdHVzZXMgdG8gZmlsdGVyLiBEZWZhdWx0IGlzIFwiQ09NUExFVEVEXCIgKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIExpc3QgYWxsIGxpbmtlZCB0b2tlbnMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRva2VuaXphdGlvbi5nZXRfbGlua2VkX3Rva2VucyhwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwgc3RhdHVzPXN0YXR1cykucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRva2VuaXphdGlvbkFwaS0+Z2V0X2xpbmtlZF90b2tlbnM6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVG9rZW5pemF0aW9uQXBpLT5nZXRfbGlua2VkX3Rva2VuczogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqcGFnZV9jdXJzb3IqKiB8ICoqc3RyKip8IFBhZ2UgY3Vyc29yIHRvIGdldCB0aGUgbmV4dCBwYWdlIHwgW29wdGlvbmFsXSAKICoqcGFnZV9zaXplKiogfCAqKmZsb2F0Kip8IE51bWJlciBvZiBpdGVtcyBwZXIgcGFnZSwgcmVxdWVzdGluZyBtb3JlIHRoZW4gbWF4IHdpbGwgcmV0dXJuIG1heCBpdGVtcyB8IFtvcHRpb25hbF0gCiAqKnN0YXR1cyoqIHwgWyoqb2JqZWN0KipdKC5tZCl8IEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2Ygc3RhdHVzZXMgdG8gZmlsdGVyLiBEZWZhdWx0IGlzIFwmcXVvdDtDT01QTEVURURcJnF1b3Q7IHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqVG9rZW5zUGFnaW5hdGVkUmVzcG9uc2UqKl0oVG9rZW5zUGFnaW5hdGVkUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCAgfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9saW5rZWRfdG9rZW5zX2NvdW50KioKPiBMaW5rZWRUb2tlbnNDb3VudCBnZXRfbGlua2VkX3Rva2Vuc19jb3VudCgpCgpHZXQgdGhlIHRvdGFsIGNvdW50IG9mIGxpbmtlZCB0b2tlbnMKCkdldCB0aGUgdG90YWwgY291bnQgb2YgbGlua2VkIHRva2VucwoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5saW5rZWRfdG9rZW5zX2NvdW50IGltcG9ydCBMaW5rZWRUb2tlbnNDb3VudApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CgogICAgdHJ5OgogICAgICAgICMgR2V0IHRoZSB0b3RhbCBjb3VudCBvZiBsaW5rZWQgdG9rZW5zCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50b2tlbml6YXRpb24uZ2V0X2xpbmtlZF90b2tlbnNfY291bnQoKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVG9rZW5pemF0aW9uQXBpLT5nZXRfbGlua2VkX3Rva2Vuc19jb3VudDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUb2tlbml6YXRpb25BcGktPmdldF9saW5rZWRfdG9rZW5zX2NvdW50OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKVGhpcyBlbmRwb2ludCBkb2VzIG5vdCBuZWVkIGFueSBwYXJhbWV0ZXIuCgojIyMgUmV0dXJuIHR5cGUKClsqKkxpbmtlZFRva2Vuc0NvdW50KipdKExpbmtlZFRva2Vuc0NvdW50Lm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQ291bnQgZmV0Y2hlZCBzdWNjZXNzZnVsbHkgfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmlzc3VlX25ld190b2tlbioqCj4gVG9rZW5MaW5rRHRvIGlzc3VlX25ld190b2tlbihjcmVhdGVfdG9rZW5fcmVxdWVzdF9kdG8sIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpJc3N1ZSBhIG5ldyB0b2tlbgoKRmFjaWxpdGF0ZXMgdGhlIGNyZWF0aW9uIG9mIGEgbmV3IHRva2VuLCBzdXBwb3J0aW5nIGJvdGggRVZNLWJhc2VkIGFuZCBTdGVsbGFyL1JpcHBsZSBwbGF0Zm9ybXMuIEZvciBFVk0sIGl0IGRlcGxveXMgdGhlIGNvcnJlc3BvbmRpbmcgY29udHJhY3QgdGVtcGxhdGUgdG8gdGhlIGJsb2NrY2hhaW4gYW5kIGxpbmtzIHRoZSB0b2tlbiB0byB0aGUgd29ya3NwYWNlLiBGb3IgU3RlbGxhci9SaXBwbGUsIGl0IGxpbmtzIGEgbmV3bHkgY3JlYXRlZCB0b2tlbiBkaXJlY3RseSB0byB0aGUgd29ya3NwYWNlIHdpdGhvdXQgZGVwbG95aW5nIGEgY29udHJhY3QuIFJldHVybnMgdGhlIHRva2VuIGxpbmsgd2l0aCBzdGF0dXMgIlBFTkRJTkciIHVudGlsIHRoZSB0b2tlbiBpcyBkZXBsb3llZCBvciAiU1VDQ0VTUyIgaWYgbm8gZGVwbG95bWVudCBpcyBuZWVkZWQuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogT3duZXIsIEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBhbmQgRWRpdG9yLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfdG9rZW5fcmVxdWVzdF9kdG8gaW1wb3J0IENyZWF0ZVRva2VuUmVxdWVzdER0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2xpbmtfZHRvIGltcG9ydCBUb2tlbkxpbmtEdG8KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY3JlYXRlX3Rva2VuX3JlcXVlc3RfZHRvID0gZmlyZWJsb2Nrcy5DcmVhdGVUb2tlblJlcXVlc3REdG8oKSAjIENyZWF0ZVRva2VuUmVxdWVzdER0byB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIElzc3VlIGEgbmV3IHRva2VuCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50b2tlbml6YXRpb24uaXNzdWVfbmV3X3Rva2VuKGNyZWF0ZV90b2tlbl9yZXF1ZXN0X2R0bywgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRva2VuaXphdGlvbkFwaS0+aXNzdWVfbmV3X3Rva2VuOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRva2VuaXphdGlvbkFwaS0+aXNzdWVfbmV3X3Rva2VuOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjcmVhdGVfdG9rZW5fcmVxdWVzdF9kdG8qKiB8IFsqKkNyZWF0ZVRva2VuUmVxdWVzdER0byoqXShDcmVhdGVUb2tlblJlcXVlc3REdG8ubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqVG9rZW5MaW5rRHRvKipdKFRva2VuTGlua0R0by5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgVG9rZW4gd2FzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5IHwgIC0gIHwKKio0MDkqKiB8IEFzc2V0IGFscmVhZHkgZXhpc3RzIHwgIC0gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmlzc3VlX3Rva2VuX211bHRpX2NoYWluKioKPiBMaXN0W1Rva2VuTGlua0R0b10gaXNzdWVfdG9rZW5fbXVsdGlfY2hhaW4oY3JlYXRlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCklzc3VlIGEgdG9rZW4gb24gb25lIG9yIG1vcmUgYmxvY2tjaGFpbnMKCkZhY2lsaXRhdGVzIHRoZSBjcmVhdGlvbiBvZiBhIG5ldyB0b2tlbiBvbiBvbmUgb3IgbW9yZSBibG9ja2NoYWlucy4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdCBpbXBvcnQgQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2xpbmtfZHRvIGltcG9ydCBUb2tlbkxpbmtEdG8KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY3JlYXRlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdCA9IGZpcmVibG9ja3MuQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdCgpICMgQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdCB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIElzc3VlIGEgdG9rZW4gb24gb25lIG9yIG1vcmUgYmxvY2tjaGFpbnMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRva2VuaXphdGlvbi5pc3N1ZV90b2tlbl9tdWx0aV9jaGFpbihjcmVhdGVfbXVsdGljaGFpbl90b2tlbl9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVG9rZW5pemF0aW9uQXBpLT5pc3N1ZV90b2tlbl9tdWx0aV9jaGFpbjpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUb2tlbml6YXRpb25BcGktPmlzc3VlX3Rva2VuX211bHRpX2NoYWluOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjcmVhdGVfbXVsdGljaGFpbl90b2tlbl9yZXF1ZXN0KiogfCBbKipDcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0KipdKENyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3QubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqTGlzdFtUb2tlbkxpbmtEdG9dKipdKFRva2VuTGlua0R0by5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgVG9rZW5zIHdlcmUgY3JlYXRlZCBzdWNjZXNzZnVsbHkgfCAgLSAgfAoqKjQwMCoqIHwgSW52YWxpZCBpbnB1dC4gfCAgLSAgfAoqKjQwOSoqIHwgQWRkcmVzcyBpcyBhbHJlYWR5IHRha2VuLiB8ICAtICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipsaW5rKioKPiBUb2tlbkxpbmtEdG8gbGluayh0b2tlbl9saW5rX3JlcXVlc3RfZHRvLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKTGluayBhIGNvbnRyYWN0CgpMaW5rIGFuIGEgY29udHJhY3QKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fbGlua19kdG8gaW1wb3J0IFRva2VuTGlua0R0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2xpbmtfcmVxdWVzdF9kdG8gaW1wb3J0IFRva2VuTGlua1JlcXVlc3REdG8KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdG9rZW5fbGlua19yZXF1ZXN0X2R0byA9IGZpcmVibG9ja3MuVG9rZW5MaW5rUmVxdWVzdER0bygpICMgVG9rZW5MaW5rUmVxdWVzdER0byB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIExpbmsgYSBjb250cmFjdAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudG9rZW5pemF0aW9uLmxpbmsodG9rZW5fbGlua19yZXF1ZXN0X2R0bywgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRva2VuaXphdGlvbkFwaS0+bGluazpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUb2tlbml6YXRpb25BcGktPmxpbms6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnRva2VuX2xpbmtfcmVxdWVzdF9kdG8qKiB8IFsqKlRva2VuTGlua1JlcXVlc3REdG8qKl0oVG9rZW5MaW5rUmVxdWVzdER0by5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipUb2tlbkxpbmtEdG8qKl0oVG9rZW5MaW5rRHRvLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBUb2tlbiBsaW5rZWQgc3VjY2Vzc2Z1bGx5IHwgIC0gIHwKKioyMDEqKiB8ICB8ICAtICB8CioqNDA0KiogfCBDb3VsZCBub3QgZmluZCB0aGUgdW5kZXJseWluZyBjb250cmFjdCB0byBsaW5rIHRvIHwgIC0gIHwKKio0MDkqKiB8IFRva2VuIGxpbmsgZm9yIHtyZWZJZH0gYWxyZWFkeSBleGlzdHMgfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKm1pbnRfY29sbGVjdGlvbl90b2tlbioqCj4gQ29sbGVjdGlvbk1pbnRSZXNwb25zZUR0byBtaW50X2NvbGxlY3Rpb25fdG9rZW4oaWQsIGNvbGxlY3Rpb25fbWludF9yZXF1ZXN0X2R0bywgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCk1pbnQgdG9rZW5zCgpNaW50IHRva2VucyBhbmQgdXBsb2FkIG1ldGFkYXRhCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fbWludF9yZXF1ZXN0X2R0byBpbXBvcnQgQ29sbGVjdGlvbk1pbnRSZXF1ZXN0RHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29sbGVjdGlvbl9taW50X3Jlc3BvbnNlX2R0byBpbXBvcnQgQ29sbGVjdGlvbk1pbnRSZXNwb25zZUR0bwpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBpZCA9ICdmYmZiZmJmYi1mYmZiLWZiZmItZmJmYi1mYmZiZmJmYmZiZmInICMgc3RyIHwgVGhlIGNvbGxlY3Rpb24gbGluayBpZAogICAgY29sbGVjdGlvbl9taW50X3JlcXVlc3RfZHRvID0gZmlyZWJsb2Nrcy5Db2xsZWN0aW9uTWludFJlcXVlc3REdG8oKSAjIENvbGxlY3Rpb25NaW50UmVxdWVzdER0byB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIE1pbnQgdG9rZW5zCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50b2tlbml6YXRpb24ubWludF9jb2xsZWN0aW9uX3Rva2VuKGlkLCBjb2xsZWN0aW9uX21pbnRfcmVxdWVzdF9kdG8sIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUb2tlbml6YXRpb25BcGktPm1pbnRfY29sbGVjdGlvbl90b2tlbjpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUb2tlbml6YXRpb25BcGktPm1pbnRfY29sbGVjdGlvbl90b2tlbjogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqaWQqKiB8ICoqc3RyKip8IFRoZSBjb2xsZWN0aW9uIGxpbmsgaWQgfCAKICoqY29sbGVjdGlvbl9taW50X3JlcXVlc3RfZHRvKiogfCBbKipDb2xsZWN0aW9uTWludFJlcXVlc3REdG8qKl0oQ29sbGVjdGlvbk1pbnRSZXF1ZXN0RHRvLm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkNvbGxlY3Rpb25NaW50UmVzcG9uc2VEdG8qKl0oQ29sbGVjdGlvbk1pbnRSZXNwb25zZUR0by5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMioqIHwgVG9rZW5zIG1pbnRlZCBzdWNjZXNzZnVsbHkgfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnJlX2lzc3VlX3Rva2VuX211bHRpX2NoYWluKioKPiBMaXN0W1Rva2VuTGlua0R0b10gcmVfaXNzdWVfdG9rZW5fbXVsdGlfY2hhaW4odG9rZW5fbGlua19pZCwgcmVpc3N1ZV9tdWx0aWNoYWluX3Rva2VuX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpSZWlzc3VlIGEgbXVsdGljaGFpbiB0b2tlbgoKUmVpc3N1ZSBhIG11bHRpY2hhaW4gdG9rZW4uIFRoaXMgZW5kcG9pbnQgYWxsb3dzIHlvdSB0byByZWlzc3VlIGEgdG9rZW4gb24gb25lIG9yIG1vcmUgYmxvY2tjaGFpbnMuIFRoZSB0b2tlbiBtdXN0IGJlIGluaXRpYWxseSBpc3N1ZWQgdXNpbmcgdGhlIGlzc3VlVG9rZW5NdWx0aUNoYWluIGVuZHBvaW50LgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZWlzc3VlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdCBpbXBvcnQgUmVpc3N1ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b2tlbl9saW5rX2R0byBpbXBvcnQgVG9rZW5MaW5rRHRvCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHRva2VuX2xpbmtfaWQgPSAndG9rZW5fbGlua19pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgdG9rZW4gbGluawogICAgcmVpc3N1ZV9tdWx0aWNoYWluX3Rva2VuX3JlcXVlc3QgPSBmaXJlYmxvY2tzLlJlaXNzdWVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0KCkgIyBSZWlzc3VlTXVsdGljaGFpblRva2VuUmVxdWVzdCB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIFJlaXNzdWUgYSBtdWx0aWNoYWluIHRva2VuCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50b2tlbml6YXRpb24ucmVfaXNzdWVfdG9rZW5fbXVsdGlfY2hhaW4odG9rZW5fbGlua19pZCwgcmVpc3N1ZV9tdWx0aWNoYWluX3Rva2VuX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUb2tlbml6YXRpb25BcGktPnJlX2lzc3VlX3Rva2VuX211bHRpX2NoYWluOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRva2VuaXphdGlvbkFwaS0+cmVfaXNzdWVfdG9rZW5fbXVsdGlfY2hhaW46ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnRva2VuX2xpbmtfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgdG9rZW4gbGluayB8IAogKipyZWlzc3VlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdCoqIHwgWyoqUmVpc3N1ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3QqKl0oUmVpc3N1ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3QubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqTGlzdFtUb2tlbkxpbmtEdG9dKipdKFRva2VuTGlua0R0by5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgU3VjY2Vzc2Z1bGx5IHJlaXNzdWVkIG11bHRpY2hhaW4gdG9rZW4gfCAgLSAgfAoqKjQwMCoqIHwgSW52YWxpZCBpbnB1dCB8ICAtICB8CioqNDA0KiogfCBEZXBsb3llZCBjb250cmFjdCBub3QgZm91bmQgfCAgLSAgfAoqKjQwOSoqIHwgQWRkcmVzcyBpcyBhbHJlYWR5IHRha2VuIHwgIC0gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipyZW1vdmVfbGF5ZXJfemVyb19wZWVycyoqCj4gUmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXNwb25zZSByZW1vdmVfbGF5ZXJfemVyb19wZWVycyhyZW1vdmVfbGF5ZXJfemVyb19wZWVyc19yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKUmVtb3ZlIExheWVyWmVybyBwZWVycwoKUmVtb3ZlIExheWVyWmVybyBwZWVycyB0byBkaXNjb25uZWN0IGFkYXB0ZXIgY29udHJhY3RzLiBUaGlzIGVuZHBvaW50IHJlbW92ZXMgcGVlciByZWxhdGlvbnNoaXBzIGJldHdlZW4gTGF5ZXJaZXJvIGFkYXB0ZXJzLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZW1vdmVfbGF5ZXJfemVyb19wZWVyc19yZXF1ZXN0IGltcG9ydCBSZW1vdmVMYXllclplcm9QZWVyc1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZW1vdmVfbGF5ZXJfemVyb19wZWVyc19yZXNwb25zZSBpbXBvcnQgUmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICByZW1vdmVfbGF5ZXJfemVyb19wZWVyc19yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5SZW1vdmVMYXllclplcm9QZWVyc1JlcXVlc3QoKSAjIFJlbW92ZUxheWVyWmVyb1BlZXJzUmVxdWVzdCB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIFJlbW92ZSBMYXllclplcm8gcGVlcnMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRva2VuaXphdGlvbi5yZW1vdmVfbGF5ZXJfemVyb19wZWVycyhyZW1vdmVfbGF5ZXJfemVyb19wZWVyc19yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVG9rZW5pemF0aW9uQXBpLT5yZW1vdmVfbGF5ZXJfemVyb19wZWVyczpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUb2tlbml6YXRpb25BcGktPnJlbW92ZV9sYXllcl96ZXJvX3BlZXJzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipyZW1vdmVfbGF5ZXJfemVyb19wZWVyc19yZXF1ZXN0KiogfCBbKipSZW1vdmVMYXllclplcm9QZWVyc1JlcXVlc3QqKl0oUmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlJlbW92ZUxheWVyWmVyb1BlZXJzUmVzcG9uc2UqKl0oUmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgTGF5ZXJaZXJvIHBlZXJzIHJlbW92YWwgcHJvY2VzcyBjb21wbGV0ZWQgfCAgLSAgfAoqKjQwMCoqIHwgQmFkIHJlcXVlc3QsIGludmFsaWQgaW5wdXQgZGF0YSBvciBwYXJhbWV0ZXJzIHwgIC0gIHwKKio0MDQqKiB8IFRva2VuIGxpbmsgbm90IGZvdW5kIHwgIC0gIHwKKio0MDkqKiB8IFRva2VuIGxpbmsgcHJvY2Vzc2luZyBlcnJvciB8ICAtICB8CioqNTAwKiogfCBJbnRlcm5hbCBzZXJ2ZXIgZXJyb3IgfCAgLSAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZyoqCj4gU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2Ugc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZyhzZXRfbGF5ZXJfemVyb19kdm5fY29uZmlnX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpTZXQgTGF5ZXJaZXJvIERWTiBjb25maWd1cmF0aW9uCgpDb25maWd1cmUgRFZOIHNldHRpbmdzIGZvciBMYXllclplcm8gYWRhcHRlcnMuIFRoaXMgZW5kcG9pbnQgc2V0cyB1cCB0aGUgRFZOIGNvbmZpZ3VyYXRpb24gZm9yIG1lc3NhZ2UgdmVyaWZpY2F0aW9uIGJldHdlZW4gc291cmNlIGFuZCBkZXN0aW5hdGlvbiBhZGFwdGVycy4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXF1ZXN0IGltcG9ydCBTZXRMYXllclplcm9Edm5Db25maWdSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXNwb25zZSBpbXBvcnQgU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5TZXRMYXllclplcm9Edm5Db25maWdSZXF1ZXN0KCkgIyBTZXRMYXllclplcm9Edm5Db25maWdSZXF1ZXN0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgU2V0IExheWVyWmVybyBEVk4gY29uZmlndXJhdGlvbgogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudG9rZW5pemF0aW9uLnNldF9sYXllcl96ZXJvX2R2bl9jb25maWcoc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVG9rZW5pemF0aW9uQXBpLT5zZXRfbGF5ZXJfemVyb19kdm5fY29uZmlnOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRva2VuaXphdGlvbkFwaS0+c2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZzogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXF1ZXN0KiogfCBbKipTZXRMYXllclplcm9Edm5Db25maWdSZXF1ZXN0KipdKFNldExheWVyWmVyb0R2bkNvbmZpZ1JlcXVlc3QubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UqKl0oU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IExheWVyWmVybyBEVk4gY29uZmlndXJhdGlvbiBzZXQgc3VjY2Vzc2Z1bGx5IHwgIC0gIHwKKio0MDAqKiB8IEJhZCByZXF1ZXN0LCBpbnZhbGlkIGlucHV0IGRhdGEgb3IgcGFyYW1ldGVycyB8ICAtICB8CioqNDA0KiogfCBUb2tlbiBsaW5rIG5vdCBmb3VuZCB8ICAtICB8CioqNDA5KiogfCBUb2tlbiBsaW5rIHByZXBhcmF0aW9uIGVycm9yIHwgIC0gIHwKKio0MjIqKiB8IEJyaWRnaW5nIHByb3RvY29sIGJsb2NrY2hhaW4gbWV0YWRhdGEgbm90IGZvdW5kIHwgIC0gIHwKKio1MDAqKiB8IEludGVybmFsIHNlcnZlciBlcnJvciB8ICAtICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipzZXRfbGF5ZXJfemVyb19wZWVycyoqCj4gU2V0TGF5ZXJaZXJvUGVlcnNSZXNwb25zZSBzZXRfbGF5ZXJfemVyb19wZWVycyhzZXRfbGF5ZXJfemVyb19wZWVyc19yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKU2V0IExheWVyWmVybyBwZWVycwoKU2V0IExheWVyWmVybyBwZWVycyB0byBlc3RhYmxpc2ggY29ubmVjdGlvbnMgYmV0d2VlbiBhZGFwdGVyIGNvbnRyYWN0cy4gVGhpcyBlbmRwb2ludCBjcmVhdGVzIHBlZXIgcmVsYXRpb25zaGlwcyB0aGF0IGVuYWJsZSBjcm9zcy1jaGFpbiBjb21tdW5pY2F0aW9uLiBJdCBzZXRzIHRoZSBkZXN0aW5hdGlvbiBhZGFwdGVyIGFzIGEgcGVlciBvZiB0aGUgc291cmNlIGFkYXB0ZXIuIElmIGBiaWRpcmVjdGlvbmFsYCBpcyB0cnVlLCBpdCBhbHNvIHNldHMgdGhlIHNvdXJjZSBhZGFwdGVyIGFzIGEgcGVlciBvZiB0aGUgZGVzdGluYXRpb24gYWRhcHRlcihzKS4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2xheWVyX3plcm9fcGVlcnNfcmVxdWVzdCBpbXBvcnQgU2V0TGF5ZXJaZXJvUGVlcnNSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2xheWVyX3plcm9fcGVlcnNfcmVzcG9uc2UgaW1wb3J0IFNldExheWVyWmVyb1BlZXJzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgc2V0X2xheWVyX3plcm9fcGVlcnNfcmVxdWVzdCA9IGZpcmVibG9ja3MuU2V0TGF5ZXJaZXJvUGVlcnNSZXF1ZXN0KCkgIyBTZXRMYXllclplcm9QZWVyc1JlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBTZXQgTGF5ZXJaZXJvIHBlZXJzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50b2tlbml6YXRpb24uc2V0X2xheWVyX3plcm9fcGVlcnMoc2V0X2xheWVyX3plcm9fcGVlcnNfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRva2VuaXphdGlvbkFwaS0+c2V0X2xheWVyX3plcm9fcGVlcnM6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVG9rZW5pemF0aW9uQXBpLT5zZXRfbGF5ZXJfemVyb19wZWVyczogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqc2V0X2xheWVyX3plcm9fcGVlcnNfcmVxdWVzdCoqIHwgWyoqU2V0TGF5ZXJaZXJvUGVlcnNSZXF1ZXN0KipdKFNldExheWVyWmVyb1BlZXJzUmVxdWVzdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipTZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlKipdKFNldExheWVyWmVyb1BlZXJzUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IExheWVyWmVybyBwZWVycyBzZXQgc3VjY2Vzc2Z1bGx5IHwgIC0gIHwKKio0MDAqKiB8IEJhZCByZXF1ZXN0LCBpbnZhbGlkIGlucHV0IGRhdGEgb3IgcGFyYW1ldGVycyB8ICAtICB8CioqNDA0KiogfCBUb2tlbiBsaW5rIG5vdCBmb3VuZCB8ICAtICB8CioqNDA5KiogfCBUb2tlbiBsaW5rIHByZXBhcmF0aW9uIGVycm9yIHwgIC0gIHwKKio0MjIqKiB8IFRva2VuIGxpbmsgaXMgbm90IGZ1bmdpYmxlIHwgIC0gIHwKKio1MDAqKiB8IEludGVybmFsIHNlcnZlciBlcnJvciB8ICAtICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKip1bmxpbmsqKgo+IHVubGluayhpZCkKClVubGluayBhIHRva2VuCgpVbmxpbmsgYSB0b2tlbi4gVGhlIHRva2VuIHdpbGwgYmUgdW5saW5rZWQgZnJvbSB0aGUgd29ya3NwYWNlLiBUaGUgdG9rZW4gd2lsbCBub3QgYmUgZGVsZXRlZCBvbiBjaGFpbiBub3IgdGhlIHJlZklkLCBvbmx5IHRoZSBsaW5rIHRvIHRoZSB3b3Jrc3BhY2Ugd2lsbCBiZSByZW1vdmVkLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGlkID0gJ2ZiZmJmYmZiLWZiZmItZmJmYi1mYmZiLWZiZmJmYmZiZmJmYicgIyBzdHIgfCBUaGUgdG9rZW4gbGluayBpZAoKICAgIHRyeToKICAgICAgICAjIFVubGluayBhIHRva2VuCiAgICAgICAgZmlyZWJsb2Nrcy50b2tlbml6YXRpb24udW5saW5rKGlkKS5yZXN1bHQoKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRva2VuaXphdGlvbkFwaS0+dW5saW5rOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKippZCoqIHwgKipzdHIqKnwgVGhlIHRva2VuIGxpbmsgaWQgfCAKCiMjIyBSZXR1cm4gdHlwZQoKdm9pZCAoZW1wdHkgcmVzcG9uc2UgYm9keSkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFRva2VuIHVubGlua2VkIHN1Y2Nlc3NmdWxseSB8ICAtICB8CioqMjA0KiogfCAgfCAgLSAgfAoqKjQwNCoqIHwgTGluayBkaWQgbm90IGV4aXN0IHwgIC0gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKip1bmxpbmtfY29sbGVjdGlvbioqCj4gdW5saW5rX2NvbGxlY3Rpb24oaWQpCgpEZWxldGUgYSBjb2xsZWN0aW9uIGxpbmsKCkRlbGV0ZSBhIGNvbGxlY3Rpb24gbGluawoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGlkID0gJ2ZiZmJmYmZiLWZiZmItZmJmYi1mYmZiLWZiZmJmYmZiZmJmYicgIyBzdHIgfCBUaGUgdG9rZW4gbGluayBpZAoKICAgIHRyeToKICAgICAgICAjIERlbGV0ZSBhIGNvbGxlY3Rpb24gbGluawogICAgICAgIGZpcmVibG9ja3MudG9rZW5pemF0aW9uLnVubGlua19jb2xsZWN0aW9uKGlkKS5yZXN1bHQoKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRva2VuaXphdGlvbkFwaS0+dW5saW5rX2NvbGxlY3Rpb246ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmlkKiogfCAqKnN0cioqfCBUaGUgdG9rZW4gbGluayBpZCB8IAoKIyMjIFJldHVybiB0eXBlCgp2b2lkIChlbXB0eSByZXNwb25zZSBib2R5KQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwNCoqIHwgQ29sbGVjdGlvbiB1bmxpbmtlZCBzdWNjZXNzZnVsbHkgfCAgLSAgfAoqKjQwNCoqIHwgTGluayBmb3IgY29sbGVjdGlvbiBkb2VzIG5vdCBleGlzdCB8ICAtICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqdmFsaWRhdGVfbGF5ZXJfemVyb19jaGFubmVsX2NvbmZpZyoqCj4gVmFsaWRhdGVMYXllclplcm9DaGFubmVsUmVzcG9uc2UgdmFsaWRhdGVfbGF5ZXJfemVyb19jaGFubmVsX2NvbmZpZyhhZGFwdGVyX3Rva2VuX2xpbmtfaWQsIHBlZXJfYWRhcHRlcl90b2tlbl9saW5rX2lkKQoKVmFsaWRhdGUgTGF5ZXJaZXJvIGNoYW5uZWwgY29uZmlndXJhdGlvbgoKVmFsaWRhdGUgdGhlIExheWVyWmVybyBjaGFubmVsIGNvbmZpZ3VyYXRpb24gYmV0d2VlbiBhZGFwdGVycy4gVGhpcyBlbmRwb2ludCBjaGVja3MgaWYgdGhlIGNoYW5uZWwgY29uZmlndXJhdGlvbiBpcyBjb3JyZWN0IGFuZCByZXR1cm5zIGFueSB2YWxpZGF0aW9uIGVycm9ycy4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmFsaWRhdGVfbGF5ZXJfemVyb19jaGFubmVsX3Jlc3BvbnNlIGltcG9ydCBWYWxpZGF0ZUxheWVyWmVyb0NoYW5uZWxSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBhZGFwdGVyX3Rva2VuX2xpbmtfaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJyAjIHN0ciB8IFRoZSB0b2tlbiBsaW5rIElEIG9mIHRoZSBhZGFwdGVyCiAgICBwZWVyX2FkYXB0ZXJfdG9rZW5fbGlua19pZCA9ICc2YWRkNGYyYS1iMjA2LTQxMTQtOGY5NC0yODgyNjE4ZmZiYjQnICMgc3RyIHwgUGVlciBhZGFwdGVyIHRva2VuIGxpbmsgSUQgdG8gdmFsaWRhdGUgYWdhaW5zdAoKICAgIHRyeToKICAgICAgICAjIFZhbGlkYXRlIExheWVyWmVybyBjaGFubmVsIGNvbmZpZ3VyYXRpb24KICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRva2VuaXphdGlvbi52YWxpZGF0ZV9sYXllcl96ZXJvX2NoYW5uZWxfY29uZmlnKGFkYXB0ZXJfdG9rZW5fbGlua19pZCwgcGVlcl9hZGFwdGVyX3Rva2VuX2xpbmtfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUb2tlbml6YXRpb25BcGktPnZhbGlkYXRlX2xheWVyX3plcm9fY2hhbm5lbF9jb25maWc6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVG9rZW5pemF0aW9uQXBpLT52YWxpZGF0ZV9sYXllcl96ZXJvX2NoYW5uZWxfY29uZmlnOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKiphZGFwdGVyX3Rva2VuX2xpbmtfaWQqKiB8ICoqc3RyKip8IFRoZSB0b2tlbiBsaW5rIElEIG9mIHRoZSBhZGFwdGVyIHwgCiAqKnBlZXJfYWRhcHRlcl90b2tlbl9saW5rX2lkKiogfCAqKnN0cioqfCBQZWVyIGFkYXB0ZXIgdG9rZW4gbGluayBJRCB0byB2YWxpZGF0ZSBhZ2FpbnN0IHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKlZhbGlkYXRlTGF5ZXJaZXJvQ2hhbm5lbFJlc3BvbnNlKipdKFZhbGlkYXRlTGF5ZXJaZXJvQ2hhbm5lbFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgTGF5ZXJaZXJvIGNoYW5uZWwgY29uZmlndXJhdGlvbiB2YWxpZGF0aW9uIGNvbXBsZXRlZCB8ICAtICB8CioqNDAwKiogfCBCYWQgcmVxdWVzdCwgaW52YWxpZCBpbnB1dCBkYXRhIG9yIHBhcmFtZXRlcnMgfCAgLSAgfAoqKjQwNCoqIHwgVG9rZW4gbGluayBub3QgZm91bmQgfCAgLSAgfAoqKjQyMioqIHwgQnJpZGdpbmcgcHJvdG9jb2wgYmxvY2tjaGFpbiBtZXRhZGF0YSBub3QgZm91bmQgfCAgLSAgfAoqKjUwMCoqIHwgSW50ZXJuYWwgc2VydmVyIGVycm9yIHwgIC0gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoK \ No newline at end of file diff --git a/docs/TokensPaginatedResponse.md b/docs/TokensPaginatedResponse.md index 3039aeb9..a6051128 100644 --- a/docs/TokensPaginatedResponse.md +++ b/docs/TokensPaginatedResponse.md @@ -1,30 +1 @@ -# TokensPaginatedResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[TokenLinkDto]**](TokenLinkDto.md) | The data of the current page | -**next** | **str** | The ID of the next page | [optional] - -## Example - -```python -from fireblocks.models.tokens_paginated_response import TokensPaginatedResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TokensPaginatedResponse from a JSON string -tokens_paginated_response_instance = TokensPaginatedResponse.from_json(json) -# print the JSON string representation of the object -print(TokensPaginatedResponse.to_json()) - -# convert the object into a dict -tokens_paginated_response_dict = tokens_paginated_response_instance.to_dict() -# create an instance of TokensPaginatedResponse from a dict -tokens_paginated_response_from_dict = TokensPaginatedResponse.from_dict(tokens_paginated_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUb2tlbnNQYWdpbmF0ZWRSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkYXRhKiogfCBbKipMaXN0W1Rva2VuTGlua0R0b10qKl0oVG9rZW5MaW5rRHRvLm1kKSB8IFRoZSBkYXRhIG9mIHRoZSBjdXJyZW50IHBhZ2UgfCAKKipuZXh0KiogfCAqKnN0cioqIHwgVGhlIElEIG9mIHRoZSBuZXh0IHBhZ2UgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5zX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgVG9rZW5zUGFnaW5hdGVkUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRva2Vuc1BhZ2luYXRlZFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwp0b2tlbnNfcGFnaW5hdGVkX3Jlc3BvbnNlX2luc3RhbmNlID0gVG9rZW5zUGFnaW5hdGVkUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVG9rZW5zUGFnaW5hdGVkUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdG9rZW5zX3BhZ2luYXRlZF9yZXNwb25zZV9kaWN0ID0gdG9rZW5zX3BhZ2luYXRlZF9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5zUGFnaW5hdGVkUmVzcG9uc2UgZnJvbSBhIGRpY3QKdG9rZW5zX3BhZ2luYXRlZF9yZXNwb25zZV9mcm9tX2RpY3QgPSBUb2tlbnNQYWdpbmF0ZWRSZXNwb25zZS5mcm9tX2RpY3QodG9rZW5zX3BhZ2luYXRlZF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TotalSupplyItemDto.md b/docs/TotalSupplyItemDto.md index f321217e..5c947038 100644 --- a/docs/TotalSupplyItemDto.md +++ b/docs/TotalSupplyItemDto.md @@ -1,30 +1 @@ -# TotalSupplyItemDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**timestamp** | **datetime** | Timestamp of the data point | -**total_supply** | **str** | Total supply at the given timestamp | - -## Example - -```python -from fireblocks.models.total_supply_item_dto import TotalSupplyItemDto - -# TODO update the JSON string below -json = "{}" -# create an instance of TotalSupplyItemDto from a JSON string -total_supply_item_dto_instance = TotalSupplyItemDto.from_json(json) -# print the JSON string representation of the object -print(TotalSupplyItemDto.to_json()) - -# convert the object into a dict -total_supply_item_dto_dict = total_supply_item_dto_instance.to_dict() -# create an instance of TotalSupplyItemDto from a dict -total_supply_item_dto_from_dict = TotalSupplyItemDto.from_dict(total_supply_item_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUb3RhbFN1cHBseUl0ZW1EdG8KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdGltZXN0YW1wKiogfCAqKmRhdGV0aW1lKiogfCBUaW1lc3RhbXAgb2YgdGhlIGRhdGEgcG9pbnQgfCAKKip0b3RhbF9zdXBwbHkqKiB8ICoqc3RyKiogfCBUb3RhbCBzdXBwbHkgYXQgdGhlIGdpdmVuIHRpbWVzdGFtcCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG90YWxfc3VwcGx5X2l0ZW1fZHRvIGltcG9ydCBUb3RhbFN1cHBseUl0ZW1EdG8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRvdGFsU3VwcGx5SXRlbUR0byBmcm9tIGEgSlNPTiBzdHJpbmcKdG90YWxfc3VwcGx5X2l0ZW1fZHRvX2luc3RhbmNlID0gVG90YWxTdXBwbHlJdGVtRHRvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRvdGFsU3VwcGx5SXRlbUR0by50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0b3RhbF9zdXBwbHlfaXRlbV9kdG9fZGljdCA9IHRvdGFsX3N1cHBseV9pdGVtX2R0b19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG90YWxTdXBwbHlJdGVtRHRvIGZyb20gYSBkaWN0CnRvdGFsX3N1cHBseV9pdGVtX2R0b19mcm9tX2RpY3QgPSBUb3RhbFN1cHBseUl0ZW1EdG8uZnJvbV9kaWN0KHRvdGFsX3N1cHBseV9pdGVtX2R0b19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TotalSupplyPagedResponse.md b/docs/TotalSupplyPagedResponse.md index 42518c45..48ec64fd 100644 --- a/docs/TotalSupplyPagedResponse.md +++ b/docs/TotalSupplyPagedResponse.md @@ -1,32 +1 @@ -# TotalSupplyPagedResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[TotalSupplyItemDto]**](TotalSupplyItemDto.md) | Array of total supply data points | -**next** | **str** | Cursor for next page | [optional] -**prev** | **str** | Cursor for previous page | [optional] -**total** | **float** | Total count of items | [optional] - -## Example - -```python -from fireblocks.models.total_supply_paged_response import TotalSupplyPagedResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TotalSupplyPagedResponse from a JSON string -total_supply_paged_response_instance = TotalSupplyPagedResponse.from_json(json) -# print the JSON string representation of the object -print(TotalSupplyPagedResponse.to_json()) - -# convert the object into a dict -total_supply_paged_response_dict = total_supply_paged_response_instance.to_dict() -# create an instance of TotalSupplyPagedResponse from a dict -total_supply_paged_response_from_dict = TotalSupplyPagedResponse.from_dict(total_supply_paged_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUb3RhbFN1cHBseVBhZ2VkUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZGF0YSoqIHwgWyoqTGlzdFtUb3RhbFN1cHBseUl0ZW1EdG9dKipdKFRvdGFsU3VwcGx5SXRlbUR0by5tZCkgfCBBcnJheSBvZiB0b3RhbCBzdXBwbHkgZGF0YSBwb2ludHMgfCAKKipuZXh0KiogfCAqKnN0cioqIHwgQ3Vyc29yIGZvciBuZXh0IHBhZ2UgfCBbb3B0aW9uYWxdIAoqKnByZXYqKiB8ICoqc3RyKiogfCBDdXJzb3IgZm9yIHByZXZpb3VzIHBhZ2UgfCBbb3B0aW9uYWxdIAoqKnRvdGFsKiogfCAqKmZsb2F0KiogfCBUb3RhbCBjb3VudCBvZiBpdGVtcyB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b3RhbF9zdXBwbHlfcGFnZWRfcmVzcG9uc2UgaW1wb3J0IFRvdGFsU3VwcGx5UGFnZWRSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG90YWxTdXBwbHlQYWdlZFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwp0b3RhbF9zdXBwbHlfcGFnZWRfcmVzcG9uc2VfaW5zdGFuY2UgPSBUb3RhbFN1cHBseVBhZ2VkUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVG90YWxTdXBwbHlQYWdlZFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRvdGFsX3N1cHBseV9wYWdlZF9yZXNwb25zZV9kaWN0ID0gdG90YWxfc3VwcGx5X3BhZ2VkX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUb3RhbFN1cHBseVBhZ2VkUmVzcG9uc2UgZnJvbSBhIGRpY3QKdG90YWxfc3VwcGx5X3BhZ2VkX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFRvdGFsU3VwcGx5UGFnZWRSZXNwb25zZS5mcm9tX2RpY3QodG90YWxfc3VwcGx5X3BhZ2VkX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TradingAccountType.md b/docs/TradingAccountType.md index 5e62f50d..c4f705f2 100644 --- a/docs/TradingAccountType.md +++ b/docs/TradingAccountType.md @@ -1,58 +1 @@ -# TradingAccountType - - -## Enum - -* `COIN_FUTURES` (value: `'COIN_FUTURES'`) - -* `COIN_MARGINED_SWAP` (value: `'COIN_MARGINED_SWAP'`) - -* `EXCHANGE` (value: `'EXCHANGE'`) - -* `FUNDING` (value: `'FUNDING'`) - -* `FUNDABLE` (value: `'FUNDABLE'`) - -* `FUTURES` (value: `'FUTURES'`) - -* `FUTURES_CROSS` (value: `'FUTURES_CROSS'`) - -* `MARGIN` (value: `'MARGIN'`) - -* `MARGIN_CROSS` (value: `'MARGIN_CROSS'`) - -* `OPTIONS` (value: `'OPTIONS'`) - -* `SPOT` (value: `'SPOT'`) - -* `USDT_MARGINED_SWAP_CROSS` (value: `'USDT_MARGINED_SWAP_CROSS'`) - -* `USDT_FUTURES` (value: `'USDT_FUTURES'`) - -* `UNIFIED` (value: `'UNIFIED'`) - -* `INTERNAL_BALANCE_1` (value: `'INTERNAL_BALANCE_1'`) - -* `INTERNAL_BALANCE_2` (value: `'INTERNAL_BALANCE_2'`) - -* `INTERNAL_BALANCE_3` (value: `'INTERNAL_BALANCE_3'`) - -* `INTERNAL_BALANCE_4` (value: `'INTERNAL_BALANCE_4'`) - -* `INTERNAL_BALANCE_5` (value: `'INTERNAL_BALANCE_5'`) - -* `INTERNAL_BALANCE_6` (value: `'INTERNAL_BALANCE_6'`) - -* `INTERNAL_BALANCE_7` (value: `'INTERNAL_BALANCE_7'`) - -* `INTERNAL_BALANCE_8` (value: `'INTERNAL_BALANCE_8'`) - -* `INTERNAL_BALANCE_9` (value: `'INTERNAL_BALANCE_9'`) - -* `INTERNAL_BALANCE_10` (value: `'INTERNAL_BALANCE_10'`) - -* `INTERNAL_BALANCE_11` (value: `'INTERNAL_BALANCE_11'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFkaW5nQWNjb3VudFR5cGUKCgojIyBFbnVtCgoqIGBDT0lOX0ZVVFVSRVNgICh2YWx1ZTogYCdDT0lOX0ZVVFVSRVMnYCkKCiogYENPSU5fTUFSR0lORURfU1dBUGAgKHZhbHVlOiBgJ0NPSU5fTUFSR0lORURfU1dBUCdgKQoKKiBgRVhDSEFOR0VgICh2YWx1ZTogYCdFWENIQU5HRSdgKQoKKiBgRlVORElOR2AgKHZhbHVlOiBgJ0ZVTkRJTkcnYCkKCiogYEZVTkRBQkxFYCAodmFsdWU6IGAnRlVOREFCTEUnYCkKCiogYEZVVFVSRVNgICh2YWx1ZTogYCdGVVRVUkVTJ2ApCgoqIGBGVVRVUkVTX0NST1NTYCAodmFsdWU6IGAnRlVUVVJFU19DUk9TUydgKQoKKiBgTUFSR0lOYCAodmFsdWU6IGAnTUFSR0lOJ2ApCgoqIGBNQVJHSU5fQ1JPU1NgICh2YWx1ZTogYCdNQVJHSU5fQ1JPU1MnYCkKCiogYE9QVElPTlNgICh2YWx1ZTogYCdPUFRJT05TJ2ApCgoqIGBTUE9UYCAodmFsdWU6IGAnU1BPVCdgKQoKKiBgVVNEVF9NQVJHSU5FRF9TV0FQX0NST1NTYCAodmFsdWU6IGAnVVNEVF9NQVJHSU5FRF9TV0FQX0NST1NTJ2ApCgoqIGBVU0RUX0ZVVFVSRVNgICh2YWx1ZTogYCdVU0RUX0ZVVFVSRVMnYCkKCiogYFVOSUZJRURgICh2YWx1ZTogYCdVTklGSUVEJ2ApCgoqIGBJTlRFUk5BTF9CQUxBTkNFXzFgICh2YWx1ZTogYCdJTlRFUk5BTF9CQUxBTkNFXzEnYCkKCiogYElOVEVSTkFMX0JBTEFOQ0VfMmAgKHZhbHVlOiBgJ0lOVEVSTkFMX0JBTEFOQ0VfMidgKQoKKiBgSU5URVJOQUxfQkFMQU5DRV8zYCAodmFsdWU6IGAnSU5URVJOQUxfQkFMQU5DRV8zJ2ApCgoqIGBJTlRFUk5BTF9CQUxBTkNFXzRgICh2YWx1ZTogYCdJTlRFUk5BTF9CQUxBTkNFXzQnYCkKCiogYElOVEVSTkFMX0JBTEFOQ0VfNWAgKHZhbHVlOiBgJ0lOVEVSTkFMX0JBTEFOQ0VfNSdgKQoKKiBgSU5URVJOQUxfQkFMQU5DRV82YCAodmFsdWU6IGAnSU5URVJOQUxfQkFMQU5DRV82J2ApCgoqIGBJTlRFUk5BTF9CQUxBTkNFXzdgICh2YWx1ZTogYCdJTlRFUk5BTF9CQUxBTkNFXzcnYCkKCiogYElOVEVSTkFMX0JBTEFOQ0VfOGAgKHZhbHVlOiBgJ0lOVEVSTkFMX0JBTEFOQ0VfOCdgKQoKKiBgSU5URVJOQUxfQkFMQU5DRV85YCAodmFsdWU6IGAnSU5URVJOQUxfQkFMQU5DRV85J2ApCgoqIGBJTlRFUk5BTF9CQUxBTkNFXzEwYCAodmFsdWU6IGAnSU5URVJOQUxfQkFMQU5DRV8xMCdgKQoKKiBgSU5URVJOQUxfQkFMQU5DRV8xMWAgKHZhbHVlOiBgJ0lOVEVSTkFMX0JBTEFOQ0VfMTEnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TradingBetaApi.md b/docs/TradingBetaApi.md index 56b0fced..c0905a09 100644 --- a/docs/TradingBetaApi.md +++ b/docs/TradingBetaApi.md @@ -1,470 +1 @@ -# fireblocks.TradingBetaApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**create_order**](TradingBetaApi.md#create_order) | **POST** /trading/orders | Create an order -[**create_quote**](TradingBetaApi.md#create_quote) | **POST** /trading/quotes | Create a quote -[**get_order**](TradingBetaApi.md#get_order) | **GET** /trading/orders/{orderId} | Get order details -[**get_orders**](TradingBetaApi.md#get_orders) | **GET** /trading/orders | Get orders -[**get_trading_providers**](TradingBetaApi.md#get_trading_providers) | **GET** /trading/providers | Get providers - - -# **create_order** -> OrderDetails create_order(create_order_request, idempotency_key=idempotency_key) - -Create an order - -Create an order to buy or sell an asset. If no source is given, an external source will be use. - -Note: These endpoints are currently in beta and might be subject to changes. - -If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - -Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Editor. - -For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). - -### Example - - -```python -from fireblocks.models.create_order_request import CreateOrderRequest -from fireblocks.models.order_details import OrderDetails -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - create_order_request = fireblocks.CreateOrderRequest() # CreateOrderRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Create an order - api_response = fireblocks.trading_beta.create_order(create_order_request, idempotency_key=idempotency_key).result() - print("The response of TradingBetaApi->create_order:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TradingBetaApi->create_order: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **create_order_request** | [**CreateOrderRequest**](CreateOrderRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**OrderDetails**](OrderDetails.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**202** | Order creation response | * X-Request-ID -
| -**400** | Bad request: invalid input parameters, malformed request body, or validation failure. | * X-Request-ID -
| -**401** | Unauthorized. Missing / invalid JWT token in Authorization header. | * X-Request-ID -
| -**403** | Forbidden: insufficient permissions, disabled feature, or restricted access. | * X-Request-ID -
| -**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| -**5XX** | Internal error while processing the request. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_quote** -> QuotesResponse create_quote(create_quote, idempotency_key=idempotency_key) - -Create a quote - -Generate a time-limited quote for asset conversion, providing exchange rate and amount calculations. - -Note: These endpoints are currently in beta and might be subject to changes. - -If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - -Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Editor. - -For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). - -### Example - - -```python -from fireblocks.models.create_quote import CreateQuote -from fireblocks.models.quotes_response import QuotesResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - create_quote = fireblocks.CreateQuote() # CreateQuote | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Create a quote - api_response = fireblocks.trading_beta.create_quote(create_quote, idempotency_key=idempotency_key).result() - print("The response of TradingBetaApi->create_quote:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TradingBetaApi->create_quote: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **create_quote** | [**CreateQuote**](CreateQuote.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**QuotesResponse**](QuotesResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Quote created | * X-Request-ID -
| -**400** | Bad request: invalid input parameters, malformed request body, or validation failure. | * X-Request-ID -
| -**401** | Unauthorized. Missing / invalid JWT token in Authorization header. | * X-Request-ID -
| -**403** | Forbidden: insufficient permissions, disabled feature, or restricted access. | * X-Request-ID -
| -**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| -**5XX** | Internal error while processing the request. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_order** -> OrderDetails get_order(order_id) - -Get order details - -Retrieve detailed information about a specific order by its ID. - -Note:These endpoints are currently in beta and might be subject to changes. - -If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - -Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). - -### Example - - -```python -from fireblocks.models.order_details import OrderDetails -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - order_id = 'order_id_example' # str | The ID of the order to fetch. - - try: - # Get order details - api_response = fireblocks.trading_beta.get_order(order_id).result() - print("The response of TradingBetaApi->get_order:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TradingBetaApi->get_order: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **order_id** | **str**| The ID of the order to fetch. | - -### Return type - -[**OrderDetails**](OrderDetails.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Order response | * X-Request-ID -
| -**401** | Unauthorized. Missing / invalid JWT token in Authorization header. | * X-Request-ID -
| -**403** | Forbidden: insufficient permissions, disabled feature, or restricted access. | * X-Request-ID -
| -**404** | Not found: requested resource does not exist (e.g., order). | * X-Request-ID -
| -**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| -**5XX** | Internal error while processing the request. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_orders** -> GetOrdersResponse get_orders(page_size, page_cursor=page_cursor, order=order, account_id=account_id, provider_id=provider_id, statuses=statuses, start_time=start_time, end_time=end_time, asset_conversion_type=asset_conversion_type) - -Get orders - -Retrieve a paginated list of orders with optional filtering by account, provider, status, and time range. - -Note:These endpoints are currently in beta and might be subject to changes. - -If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - -Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). - -### Example - - -```python -from fireblocks.models.get_orders_response import GetOrdersResponse -from fireblocks.models.order_status import OrderStatus -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - page_size = 56 # int | pageSize for pagination. - page_cursor = 'page_cursor_example' # str | (optional) - order = DESC # str | ASC / DESC ordering (default DESC) (optional) (default to DESC) - account_id = ['account_id_example'] # List[str] | Filter by accountId. (optional) - provider_id = ['provider_id_example'] # List[str] | Filter by providerId. (optional) - statuses = [fireblocks.OrderStatus()] # List[OrderStatus] | Filter by order status. (optional) - start_time = 56 # int | (optional) - end_time = 56 # int | (optional) - asset_conversion_type = 'asset_conversion_type_example' # str | (optional) - - try: - # Get orders - api_response = fireblocks.trading_beta.get_orders(page_size, page_cursor=page_cursor, order=order, account_id=account_id, provider_id=provider_id, statuses=statuses, start_time=start_time, end_time=end_time, asset_conversion_type=asset_conversion_type).result() - print("The response of TradingBetaApi->get_orders:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TradingBetaApi->get_orders: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **page_size** | **int**| pageSize for pagination. | - **page_cursor** | **str**| | [optional] - **order** | **str**| ASC / DESC ordering (default DESC) | [optional] [default to DESC] - **account_id** | [**List[str]**](str.md)| Filter by accountId. | [optional] - **provider_id** | [**List[str]**](str.md)| Filter by providerId. | [optional] - **statuses** | [**List[OrderStatus]**](OrderStatus.md)| Filter by order status. | [optional] - **start_time** | **int**| | [optional] - **end_time** | **int**| | [optional] - **asset_conversion_type** | **str**| | [optional] - -### Return type - -[**GetOrdersResponse**](GetOrdersResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Orders response | * X-Request-ID -
| -**401** | Unauthorized. Missing / invalid JWT token in Authorization header. | * X-Request-ID -
| -**403** | Forbidden: insufficient permissions, disabled feature, or restricted access. | * X-Request-ID -
| -**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| -**5XX** | Internal error while processing the request. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_trading_providers** -> ProvidersListResponse get_trading_providers(page_size=page_size, page_cursor=page_cursor) - -Get providers - -Retrieve a list of all available external providers supporting trading activities through the platform. - -**Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - -**Endpoint Permission:** Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). - - -### Example - - -```python -from fireblocks.models.providers_list_response import ProvidersListResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - page_size = 20 # int | Page size for pagination. (optional) (default to 20) - page_cursor = 'page_cursor_example' # str | Page cursor for pagination. (optional) - - try: - # Get providers - api_response = fireblocks.trading_beta.get_trading_providers(page_size=page_size, page_cursor=page_cursor).result() - print("The response of TradingBetaApi->get_trading_providers:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TradingBetaApi->get_trading_providers: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **page_size** | **int**| Page size for pagination. | [optional] [default to 20] - **page_cursor** | **str**| Page cursor for pagination. | [optional] - -### Return type - -[**ProvidersListResponse**](ProvidersListResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Providers response | * X-Request-ID -
| -**401** | Unauthorized. Missing / invalid JWT token in Authorization header. | * X-Request-ID -
| -**403** | Forbidden: insufficient permissions, disabled feature, or restricted access. | * X-Request-ID -
| -**429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
| -**5XX** | Internal error while processing the request. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLlRyYWRpbmdCZXRhQXBpCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gKmh0dHBzOi8vYXBpLmZpcmVibG9ja3MuaW8vdjEqCgpNZXRob2QgfCBIVFRQIHJlcXVlc3QgfCBEZXNjcmlwdGlvbgotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KWyoqY3JlYXRlX29yZGVyKipdKFRyYWRpbmdCZXRhQXBpLm1kI2NyZWF0ZV9vcmRlcikgfCAqKlBPU1QqKiAvdHJhZGluZy9vcmRlcnMgfCBDcmVhdGUgYW4gb3JkZXIKWyoqY3JlYXRlX3F1b3RlKipdKFRyYWRpbmdCZXRhQXBpLm1kI2NyZWF0ZV9xdW90ZSkgfCAqKlBPU1QqKiAvdHJhZGluZy9xdW90ZXMgfCBDcmVhdGUgYSBxdW90ZQpbKipnZXRfb3JkZXIqKl0oVHJhZGluZ0JldGFBcGkubWQjZ2V0X29yZGVyKSB8ICoqR0VUKiogL3RyYWRpbmcvb3JkZXJzL3tvcmRlcklkfSB8IEdldCBvcmRlciBkZXRhaWxzClsqKmdldF9vcmRlcnMqKl0oVHJhZGluZ0JldGFBcGkubWQjZ2V0X29yZGVycykgfCAqKkdFVCoqIC90cmFkaW5nL29yZGVycyB8IEdldCBvcmRlcnMKWyoqZ2V0X3RyYWRpbmdfcHJvdmlkZXJfYnlfaWQqKl0oVHJhZGluZ0JldGFBcGkubWQjZ2V0X3RyYWRpbmdfcHJvdmlkZXJfYnlfaWQpIHwgKipHRVQqKiAvdHJhZGluZy9wcm92aWRlcnMve3Byb3ZpZGVySWR9IHwgR2V0IHRyYWRpbmcgcHJvdmlkZXIgYnkgSUQKWyoqZ2V0X3RyYWRpbmdfcHJvdmlkZXJzKipdKFRyYWRpbmdCZXRhQXBpLm1kI2dldF90cmFkaW5nX3Byb3ZpZGVycykgfCAqKkdFVCoqIC90cmFkaW5nL3Byb3ZpZGVycyB8IEdldCBwcm92aWRlcnMKCgojICoqY3JlYXRlX29yZGVyKioKPiBPcmRlckRldGFpbHMgY3JlYXRlX29yZGVyKGNyZWF0ZV9vcmRlcl9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKQ3JlYXRlIGFuIG9yZGVyCgpDcmVhdGUgYW4gb3JkZXIgdG8gYnV5IG9yIHNlbGwgYW4gYXNzZXQuIElmIG5vIHNvdXJjZSBpcyBnaXZlbiwgYW4gZXh0ZXJuYWwgc291cmNlIHdpbGwgYmUgdXNlLgoKTm90ZTogVGhlc2UgZW5kcG9pbnRzIGFyZSBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLgoKSWYgeW91IHdhbnQgdG8gcGFydGljaXBhdGUgYW5kIGxlYXJuIG1vcmUgYWJvdXQgdGhlIEZpcmVibG9ja3MgVHJhZGluZywgcGxlYXNlIGNvbnRhY3QgeW91ciBGaXJlYmxvY2tzIEN1c3RvbWVyIFN1Y2Nlc3MgTWFuYWdlciBvciBzZW5kIGFuIGVtYWlsIHRvIENTTUBmaXJlYmxvY2tzLmNvbS4KCkVuZHBvaW50IFBlcm1pc3Npb246IE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgRWRpdG9yLgoKRm9yIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGVycm9yIGNvZGVzIGFuZCB0cm91Ymxlc2hvb3RpbmcsIHBsZWFzZSByZWZlciB0byBvdXIgW0FQSSBFcnJvciBDb2RlcyBkb2N1bWVudGF0aW9uXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2FwaS1lcnJvci1jb2RlcykuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9vcmRlcl9yZXF1ZXN0IGltcG9ydCBDcmVhdGVPcmRlclJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5vcmRlcl9kZXRhaWxzIGltcG9ydCBPcmRlckRldGFpbHMKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY3JlYXRlX29yZGVyX3JlcXVlc3QgPSBmaXJlYmxvY2tzLkNyZWF0ZU9yZGVyUmVxdWVzdCgpICMgQ3JlYXRlT3JkZXJSZXF1ZXN0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ3JlYXRlIGFuIG9yZGVyCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50cmFkaW5nX2JldGEuY3JlYXRlX29yZGVyKGNyZWF0ZV9vcmRlcl9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVHJhZGluZ0JldGFBcGktPmNyZWF0ZV9vcmRlcjpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUcmFkaW5nQmV0YUFwaS0+Y3JlYXRlX29yZGVyOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjcmVhdGVfb3JkZXJfcmVxdWVzdCoqIHwgWyoqQ3JlYXRlT3JkZXJSZXF1ZXN0KipdKENyZWF0ZU9yZGVyUmVxdWVzdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipPcmRlckRldGFpbHMqKl0oT3JkZXJEZXRhaWxzLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAyKiogfCBPcmRlciBjcmVhdGlvbiByZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDAwKiogfCBCYWQgcmVxdWVzdDogaW52YWxpZCBpbnB1dCBwYXJhbWV0ZXJzLCBtYWxmb3JtZWQgcmVxdWVzdCBib2R5LCBvciB2YWxpZGF0aW9uIGZhaWx1cmUuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDEqKiB8IFVuYXV0aG9yaXplZC4gTWlzc2luZyAvIGludmFsaWQgSldUIHRva2VuIGluIEF1dGhvcml6YXRpb24gaGVhZGVyLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDAzKiogfCBGb3JiaWRkZW46IGluc3VmZmljaWVudCBwZXJtaXNzaW9ucywgZGlzYWJsZWQgZmVhdHVyZSwgb3IgcmVzdHJpY3RlZCBhY2Nlc3MuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MjkqKiB8IFJhdGUgbGltaXQgZXhjZWVkZWQ6IHNsb3cgZG93biBhbmQgcmV0cnkgbGF0ZXIuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio1WFgqKiB8IEludGVybmFsIGVycm9yIHdoaWxlIHByb2Nlc3NpbmcgdGhlIHJlcXVlc3QuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipjcmVhdGVfcXVvdGUqKgo+IFF1b3Rlc1Jlc3BvbnNlIGNyZWF0ZV9xdW90ZShjcmVhdGVfcXVvdGUsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpDcmVhdGUgYSBxdW90ZQoKR2VuZXJhdGUgYSB0aW1lLWxpbWl0ZWQgcXVvdGUgZm9yIGFzc2V0IGNvbnZlcnNpb24sIHByb3ZpZGluZyBleGNoYW5nZSByYXRlIGFuZCBhbW91bnQgY2FsY3VsYXRpb25zLgoKTm90ZTogVGhlc2UgZW5kcG9pbnRzIGFyZSBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLgoKSWYgeW91IHdhbnQgdG8gcGFydGljaXBhdGUgYW5kIGxlYXJuIG1vcmUgYWJvdXQgdGhlIEZpcmVibG9ja3MgVHJhZGluZywgcGxlYXNlIGNvbnRhY3QgeW91ciBGaXJlYmxvY2tzIEN1c3RvbWVyIFN1Y2Nlc3MgTWFuYWdlciBvciBzZW5kIGFuIGVtYWlsIHRvIENTTUBmaXJlYmxvY2tzLmNvbS4KCkVuZHBvaW50IFBlcm1pc3Npb246IE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgRWRpdG9yLgoKRm9yIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGVycm9yIGNvZGVzIGFuZCB0cm91Ymxlc2hvb3RpbmcsIHBsZWFzZSByZWZlciB0byBvdXIgW0FQSSBFcnJvciBDb2RlcyBkb2N1bWVudGF0aW9uXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2FwaS1lcnJvci1jb2RlcykuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9xdW90ZSBpbXBvcnQgQ3JlYXRlUXVvdGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5xdW90ZXNfcmVzcG9uc2UgaW1wb3J0IFF1b3Rlc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGNyZWF0ZV9xdW90ZSA9IGZpcmVibG9ja3MuQ3JlYXRlUXVvdGUoKSAjIENyZWF0ZVF1b3RlIHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ3JlYXRlIGEgcXVvdGUKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRyYWRpbmdfYmV0YS5jcmVhdGVfcXVvdGUoY3JlYXRlX3F1b3RlLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVHJhZGluZ0JldGFBcGktPmNyZWF0ZV9xdW90ZTpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUcmFkaW5nQmV0YUFwaS0+Y3JlYXRlX3F1b3RlOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjcmVhdGVfcXVvdGUqKiB8IFsqKkNyZWF0ZVF1b3RlKipdKENyZWF0ZVF1b3RlLm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlF1b3Rlc1Jlc3BvbnNlKipdKFF1b3Rlc1Jlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBRdW90ZSBjcmVhdGVkIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDAqKiB8IEJhZCByZXF1ZXN0OiBpbnZhbGlkIGlucHV0IHBhcmFtZXRlcnMsIG1hbGZvcm1lZCByZXF1ZXN0IGJvZHksIG9yIHZhbGlkYXRpb24gZmFpbHVyZS4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMSoqIHwgVW5hdXRob3JpemVkLiBNaXNzaW5nIC8gaW52YWxpZCBKV1QgdG9rZW4gaW4gQXV0aG9yaXphdGlvbiBoZWFkZXIuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDMqKiB8IEZvcmJpZGRlbjogaW5zdWZmaWNpZW50IHBlcm1pc3Npb25zLCBkaXNhYmxlZCBmZWF0dXJlLCBvciByZXN0cmljdGVkIGFjY2Vzcy4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQyOSoqIHwgUmF0ZSBsaW1pdCBleGNlZWRlZDogc2xvdyBkb3duIGFuZCByZXRyeSBsYXRlci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjVYWCoqIHwgSW50ZXJuYWwgZXJyb3Igd2hpbGUgcHJvY2Vzc2luZyB0aGUgcmVxdWVzdC4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9vcmRlcioqCj4gT3JkZXJEZXRhaWxzIGdldF9vcmRlcihvcmRlcl9pZCkKCkdldCBvcmRlciBkZXRhaWxzCgpSZXRyaWV2ZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIG9yZGVyIGJ5IGl0cyBJRC4KCk5vdGU6VGhlc2UgZW5kcG9pbnRzIGFyZSBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLgoKSWYgeW91IHdhbnQgdG8gcGFydGljaXBhdGUgYW5kIGxlYXJuIG1vcmUgYWJvdXQgdGhlIEZpcmVibG9ja3MgVHJhZGluZywgcGxlYXNlIGNvbnRhY3QgeW91ciBGaXJlYmxvY2tzIEN1c3RvbWVyIFN1Y2Nlc3MgTWFuYWdlciBvciBzZW5kIGFuIGVtYWlsIHRvIENTTUBmaXJlYmxvY2tzLmNvbS4KCkVuZHBvaW50IFBlcm1pc3Npb246IE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgVmlld2VyLgoKRm9yIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGVycm9yIGNvZGVzIGFuZCB0cm91Ymxlc2hvb3RpbmcsIHBsZWFzZSByZWZlciB0byBvdXIgW0FQSSBFcnJvciBDb2RlcyBkb2N1bWVudGF0aW9uXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2FwaS1lcnJvci1jb2RlcykuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9yZGVyX2RldGFpbHMgaW1wb3J0IE9yZGVyRGV0YWlscwpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBvcmRlcl9pZCA9ICdvcmRlcl9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgb3JkZXIgdG8gZmV0Y2guCgogICAgdHJ5OgogICAgICAgICMgR2V0IG9yZGVyIGRldGFpbHMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRyYWRpbmdfYmV0YS5nZXRfb3JkZXIob3JkZXJfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUcmFkaW5nQmV0YUFwaS0+Z2V0X29yZGVyOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRyYWRpbmdCZXRhQXBpLT5nZXRfb3JkZXI6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKm9yZGVyX2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIG9yZGVyIHRvIGZldGNoLiB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipPcmRlckRldGFpbHMqKl0oT3JkZXJEZXRhaWxzLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgT3JkZXIgcmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMSoqIHwgVW5hdXRob3JpemVkLiBNaXNzaW5nIC8gaW52YWxpZCBKV1QgdG9rZW4gaW4gQXV0aG9yaXphdGlvbiBoZWFkZXIuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDMqKiB8IEZvcmJpZGRlbjogaW5zdWZmaWNpZW50IHBlcm1pc3Npb25zLCBkaXNhYmxlZCBmZWF0dXJlLCBvciByZXN0cmljdGVkIGFjY2Vzcy4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwNCoqIHwgTm90IGZvdW5kOiByZXF1ZXN0ZWQgcmVzb3VyY2UgZG9lcyBub3QgZXhpc3QgKGUuZy4sIG9yZGVyKS4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQyOSoqIHwgUmF0ZSBsaW1pdCBleGNlZWRlZDogc2xvdyBkb3duIGFuZCByZXRyeSBsYXRlci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjVYWCoqIHwgSW50ZXJuYWwgZXJyb3Igd2hpbGUgcHJvY2Vzc2luZyB0aGUgcmVxdWVzdC4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9vcmRlcnMqKgo+IEdldE9yZGVyc1Jlc3BvbnNlIGdldF9vcmRlcnMocGFnZV9zaXplLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwgb3JkZXI9b3JkZXIsIGFjY291bnRfaWQ9YWNjb3VudF9pZCwgcHJvdmlkZXJfaWQ9cHJvdmlkZXJfaWQsIHN0YXR1c2VzPXN0YXR1c2VzLCBzdGFydF90aW1lPXN0YXJ0X3RpbWUsIGVuZF90aW1lPWVuZF90aW1lLCBhc3NldF9jb252ZXJzaW9uX3R5cGU9YXNzZXRfY29udmVyc2lvbl90eXBlKQoKR2V0IG9yZGVycwoKUmV0cmlldmUgYSBwYWdpbmF0ZWQgbGlzdCBvZiBvcmRlcnMgd2l0aCBvcHRpb25hbCBmaWx0ZXJpbmcgYnkgYWNjb3VudCwgcHJvdmlkZXIsIHN0YXR1cywgYW5kIHRpbWUgcmFuZ2UuCgpOb3RlOlRoZXNlIGVuZHBvaW50cyBhcmUgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy4KCklmIHlvdSB3YW50IHRvIHBhcnRpY2lwYXRlIGFuZCBsZWFybiBtb3JlIGFib3V0IHRoZSBGaXJlYmxvY2tzIFRyYWRpbmcsIHBsZWFzZSBjb250YWN0IHlvdXIgRmlyZWJsb2NrcyBDdXN0b21lciBTdWNjZXNzIE1hbmFnZXIgb3Igc2VuZCBhbiBlbWFpbCB0byBDU01AZmlyZWJsb2Nrcy5jb20uCgpFbmRwb2ludCBQZXJtaXNzaW9uOiBPd25lciwgQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIFZpZXdlci4KCkZvciBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCBlcnJvciBjb2RlcyBhbmQgdHJvdWJsZXNob290aW5nLCBwbGVhc2UgcmVmZXIgdG8gb3VyIFtBUEkgRXJyb3IgQ29kZXMgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS9hcGktZXJyb3ItY29kZXMpLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfb3JkZXJzX3Jlc3BvbnNlIGltcG9ydCBHZXRPcmRlcnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9yZGVyX3N0YXR1cyBpbXBvcnQgT3JkZXJTdGF0dXMKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgcGFnZV9zaXplID0gNTYgIyBpbnQgfCBwYWdlU2l6ZSBmb3IgcGFnaW5hdGlvbi4KICAgIHBhZ2VfY3Vyc29yID0gJ3BhZ2VfY3Vyc29yX2V4YW1wbGUnICMgc3RyIHwgIChvcHRpb25hbCkKICAgIG9yZGVyID0gREVTQyAjIHN0ciB8IEFTQyAvIERFU0Mgb3JkZXJpbmcgKGRlZmF1bHQgREVTQykgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byBERVNDKQogICAgYWNjb3VudF9pZCA9IFsnYWNjb3VudF9pZF9leGFtcGxlJ10gIyBMaXN0W3N0cl0gfCBGaWx0ZXIgYnkgYWNjb3VudElkLiAob3B0aW9uYWwpCiAgICBwcm92aWRlcl9pZCA9IFsncHJvdmlkZXJfaWRfZXhhbXBsZSddICMgTGlzdFtzdHJdIHwgRmlsdGVyIGJ5IHByb3ZpZGVySWQuIChvcHRpb25hbCkKICAgIHN0YXR1c2VzID0gW2ZpcmVibG9ja3MuT3JkZXJTdGF0dXMoKV0gIyBMaXN0W09yZGVyU3RhdHVzXSB8IEZpbHRlciBieSBvcmRlciBzdGF0dXMuIChvcHRpb25hbCkKICAgIHN0YXJ0X3RpbWUgPSA1NiAjIGludCB8ICAob3B0aW9uYWwpCiAgICBlbmRfdGltZSA9IDU2ICMgaW50IHwgIChvcHRpb25hbCkKICAgIGFzc2V0X2NvbnZlcnNpb25fdHlwZSA9ICdhc3NldF9jb252ZXJzaW9uX3R5cGVfZXhhbXBsZScgIyBzdHIgfCAgKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIEdldCBvcmRlcnMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRyYWRpbmdfYmV0YS5nZXRfb3JkZXJzKHBhZ2Vfc2l6ZSwgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsIG9yZGVyPW9yZGVyLCBhY2NvdW50X2lkPWFjY291bnRfaWQsIHByb3ZpZGVyX2lkPXByb3ZpZGVyX2lkLCBzdGF0dXNlcz1zdGF0dXNlcywgc3RhcnRfdGltZT1zdGFydF90aW1lLCBlbmRfdGltZT1lbmRfdGltZSwgYXNzZXRfY29udmVyc2lvbl90eXBlPWFzc2V0X2NvbnZlcnNpb25fdHlwZSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRyYWRpbmdCZXRhQXBpLT5nZXRfb3JkZXJzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRyYWRpbmdCZXRhQXBpLT5nZXRfb3JkZXJzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipwYWdlX3NpemUqKiB8ICoqaW50Kip8IHBhZ2VTaXplIGZvciBwYWdpbmF0aW9uLiB8IAogKipwYWdlX2N1cnNvcioqIHwgKipzdHIqKnwgIHwgW29wdGlvbmFsXSAKICoqb3JkZXIqKiB8ICoqc3RyKip8IEFTQyAvIERFU0Mgb3JkZXJpbmcgKGRlZmF1bHQgREVTQykgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIERFU0NdCiAqKmFjY291bnRfaWQqKiB8IFsqKkxpc3Rbc3RyXSoqXShzdHIubWQpfCBGaWx0ZXIgYnkgYWNjb3VudElkLiB8IFtvcHRpb25hbF0gCiAqKnByb3ZpZGVyX2lkKiogfCBbKipMaXN0W3N0cl0qKl0oc3RyLm1kKXwgRmlsdGVyIGJ5IHByb3ZpZGVySWQuIHwgW29wdGlvbmFsXSAKICoqc3RhdHVzZXMqKiB8IFsqKkxpc3RbT3JkZXJTdGF0dXNdKipdKE9yZGVyU3RhdHVzLm1kKXwgRmlsdGVyIGJ5IG9yZGVyIHN0YXR1cy4gfCBbb3B0aW9uYWxdIAogKipzdGFydF90aW1lKiogfCAqKmludCoqfCAgfCBbb3B0aW9uYWxdIAogKiplbmRfdGltZSoqIHwgKippbnQqKnwgIHwgW29wdGlvbmFsXSAKICoqYXNzZXRfY29udmVyc2lvbl90eXBlKiogfCAqKnN0cioqfCAgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipHZXRPcmRlcnNSZXNwb25zZSoqXShHZXRPcmRlcnNSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IE9yZGVycyByZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDAxKiogfCBVbmF1dGhvcml6ZWQuIE1pc3NpbmcgLyBpbnZhbGlkIEpXVCB0b2tlbiBpbiBBdXRob3JpemF0aW9uIGhlYWRlci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMyoqIHwgRm9yYmlkZGVuOiBpbnN1ZmZpY2llbnQgcGVybWlzc2lvbnMsIGRpc2FibGVkIGZlYXR1cmUsIG9yIHJlc3RyaWN0ZWQgYWNjZXNzLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDI5KiogfCBSYXRlIGxpbWl0IGV4Y2VlZGVkOiBzbG93IGRvd24gYW5kIHJldHJ5IGxhdGVyLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNVhYKiogfCBJbnRlcm5hbCBlcnJvciB3aGlsZSBwcm9jZXNzaW5nIHRoZSByZXF1ZXN0LiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X3RyYWRpbmdfcHJvdmlkZXJfYnlfaWQqKgo+IFRyYWRpbmdQcm92aWRlckRldGFpbHMgZ2V0X3RyYWRpbmdfcHJvdmlkZXJfYnlfaWQocHJvdmlkZXJfaWQpCgpHZXQgdHJhZGluZyBwcm92aWRlciBieSBJRAoKUmV0cmlldmUgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBwcm92aWRlciBpbmNsdWRpbmcgaXRzIGZ1bGwgbWFuaWZlc3Qgd2l0aCBvcmRlci9xdW90ZSByZXF1aXJlbWVudHMuCgoqKk5vdGU6KiogVGhlc2UgZW5kcG9pbnRzIGFyZSBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLiBJZiB5b3Ugd2FudCB0byBwYXJ0aWNpcGF0ZSBhbmQgbGVhcm4gbW9yZSBhYm91dCB0aGUgRmlyZWJsb2NrcyBUcmFkaW5nLCBwbGVhc2UgY29udGFjdCB5b3VyIEZpcmVibG9ja3MgQ3VzdG9tZXIgU3VjY2VzcyBNYW5hZ2VyIG9yIHNlbmQgYW4gZW1haWwgdG8gQ1NNQGZpcmVibG9ja3MuY29tLgoKKipFbmRwb2ludCBQZXJtaXNzaW9uOioqIE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgVmlld2VyLgoKRm9yIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGVycm9yIGNvZGVzIGFuZCB0cm91Ymxlc2hvb3RpbmcsIHBsZWFzZSByZWZlciB0byBvdXIgW0FQSSBFcnJvciBDb2RlcyBkb2N1bWVudGF0aW9uXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2FwaS1lcnJvci1jb2RlcykuCgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFkaW5nX3Byb3ZpZGVyX2RldGFpbHMgaW1wb3J0IFRyYWRpbmdQcm92aWRlckRldGFpbHMKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgcHJvdmlkZXJfaWQgPSAncHJvdmlkZXJfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHByb3ZpZGVyLgoKICAgIHRyeToKICAgICAgICAjIEdldCB0cmFkaW5nIHByb3ZpZGVyIGJ5IElECiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50cmFkaW5nX2JldGEuZ2V0X3RyYWRpbmdfcHJvdmlkZXJfYnlfaWQocHJvdmlkZXJfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUcmFkaW5nQmV0YUFwaS0+Z2V0X3RyYWRpbmdfcHJvdmlkZXJfYnlfaWQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVHJhZGluZ0JldGFBcGktPmdldF90cmFkaW5nX3Byb3ZpZGVyX2J5X2lkOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipwcm92aWRlcl9pZCoqIHwgKipzdHIqKnwgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBwcm92aWRlci4gfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqVHJhZGluZ1Byb3ZpZGVyRGV0YWlscyoqXShUcmFkaW5nUHJvdmlkZXJEZXRhaWxzLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgUHJvdmlkZXIgZGV0YWlscyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDAxKiogfCBVbmF1dGhvcml6ZWQuIE1pc3NpbmcgLyBpbnZhbGlkIEpXVCB0b2tlbiBpbiBBdXRob3JpemF0aW9uIGhlYWRlci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMyoqIHwgRm9yYmlkZGVuIC0gaW5zdWZmaWNpZW50IHBlcm1pc3Npb25zLCBkaXNhYmxlZCBmZWF0dXJlLCBvciByZXN0cmljdGVkIGFjY2Vzcy4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwNCoqIHwgUHJvdmlkZXIgbm90IGZvdW5kLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDI5KiogfCBSYXRlIGxpbWl0IGV4Y2VlZGVkIC0gc2xvdyBkb3duIGFuZCByZXRyeSBsYXRlci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjVYWCoqIHwgSW50ZXJuYWwgZXJyb3Igd2hpbGUgcHJvY2Vzc2luZyB0aGUgcmVxdWVzdC4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF90cmFkaW5nX3Byb3ZpZGVycyoqCj4gUHJvdmlkZXJzTGlzdFJlc3BvbnNlIGdldF90cmFkaW5nX3Byb3ZpZGVycyhwYWdlX3NpemU9cGFnZV9zaXplLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvcikKCkdldCBwcm92aWRlcnMKClJldHJpZXZlIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGV4dGVybmFsIHByb3ZpZGVycyBzdXBwb3J0aW5nIHRyYWRpbmcgYWN0aXZpdGllcyB0aHJvdWdoIHRoZSBwbGF0Zm9ybS4KCioqTm90ZToqKiBUaGVzZSBlbmRwb2ludHMgYXJlIGN1cnJlbnRseSBpbiBiZXRhIGFuZCBtaWdodCBiZSBzdWJqZWN0IHRvIGNoYW5nZXMuIElmIHlvdSB3YW50IHRvIHBhcnRpY2lwYXRlIGFuZCBsZWFybiBtb3JlIGFib3V0IHRoZSBGaXJlYmxvY2tzIFRyYWRpbmcsIHBsZWFzZSBjb250YWN0IHlvdXIgRmlyZWJsb2NrcyBDdXN0b21lciBTdWNjZXNzIE1hbmFnZXIgb3Igc2VuZCBhbiBlbWFpbCB0byBDU01AZmlyZWJsb2Nrcy5jb20uCgoqKkVuZHBvaW50IFBlcm1pc3Npb246KiogT3duZXIsIEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLCBWaWV3ZXIuCgpGb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgZXJyb3IgY29kZXMgYW5kIHRyb3VibGVzaG9vdGluZywgcGxlYXNlIHJlZmVyIHRvIG91ciBbQVBJIEVycm9yIENvZGVzIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9yZWZlcmVuY2UvYXBpLWVycm9yLWNvZGVzKS4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnByb3ZpZGVyc19saXN0X3Jlc3BvbnNlIGltcG9ydCBQcm92aWRlcnNMaXN0UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgcGFnZV9zaXplID0gMjAgIyBpbnQgfCBQYWdlIHNpemUgZm9yIHBhZ2luYXRpb24uIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gMjApCiAgICBwYWdlX2N1cnNvciA9ICdwYWdlX2N1cnNvcl9leGFtcGxlJyAjIHN0ciB8IFBhZ2UgY3Vyc29yIGZvciBwYWdpbmF0aW9uLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgR2V0IHByb3ZpZGVycwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudHJhZGluZ19iZXRhLmdldF90cmFkaW5nX3Byb3ZpZGVycyhwYWdlX3NpemU9cGFnZV9zaXplLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvcikucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRyYWRpbmdCZXRhQXBpLT5nZXRfdHJhZGluZ19wcm92aWRlcnM6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVHJhZGluZ0JldGFBcGktPmdldF90cmFkaW5nX3Byb3ZpZGVyczogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqcGFnZV9zaXplKiogfCAqKmludCoqfCBQYWdlIHNpemUgZm9yIHBhZ2luYXRpb24uIHwgW29wdGlvbmFsXSBbZGVmYXVsdCB0byAyMF0KICoqcGFnZV9jdXJzb3IqKiB8ICoqc3RyKip8IFBhZ2UgY3Vyc29yIGZvciBwYWdpbmF0aW9uLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlByb3ZpZGVyc0xpc3RSZXNwb25zZSoqXShQcm92aWRlcnNMaXN0UmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBQcm92aWRlcnMgcmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMSoqIHwgVW5hdXRob3JpemVkLiBNaXNzaW5nIC8gaW52YWxpZCBKV1QgdG9rZW4gaW4gQXV0aG9yaXphdGlvbiBoZWFkZXIuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDMqKiB8IEZvcmJpZGRlbjogaW5zdWZmaWNpZW50IHBlcm1pc3Npb25zLCBkaXNhYmxlZCBmZWF0dXJlLCBvciByZXN0cmljdGVkIGFjY2Vzcy4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQyOSoqIHwgUmF0ZSBsaW1pdCBleGNlZWRlZDogc2xvdyBkb3duIGFuZCByZXRyeSBsYXRlci4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjVYWCoqIHwgSW50ZXJuYWwgZXJyb3Igd2hpbGUgcHJvY2Vzc2luZyB0aGUgcmVxdWVzdC4gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoK \ No newline at end of file diff --git a/docs/TradingErrorSchema.md b/docs/TradingErrorSchema.md index 58e280c2..cc2fdb69 100644 --- a/docs/TradingErrorSchema.md +++ b/docs/TradingErrorSchema.md @@ -1,31 +1 @@ -# TradingErrorSchema - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**message** | **str** | | -**code** | **float** | | -**descriptor** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.trading_error_schema import TradingErrorSchema - -# TODO update the JSON string below -json = "{}" -# create an instance of TradingErrorSchema from a JSON string -trading_error_schema_instance = TradingErrorSchema.from_json(json) -# print the JSON string representation of the object -print(TradingErrorSchema.to_json()) - -# convert the object into a dict -trading_error_schema_dict = trading_error_schema_instance.to_dict() -# create an instance of TradingErrorSchema from a dict -trading_error_schema_from_dict = TradingErrorSchema.from_dict(trading_error_schema_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFkaW5nRXJyb3JTY2hlbWEKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbWVzc2FnZSoqIHwgKipzdHIqKiB8ICB8IAoqKmNvZGUqKiB8ICoqZmxvYXQqKiB8ICB8IAoqKmRlc2NyaXB0b3IqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhZGluZ19lcnJvcl9zY2hlbWEgaW1wb3J0IFRyYWRpbmdFcnJvclNjaGVtYQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhZGluZ0Vycm9yU2NoZW1hIGZyb20gYSBKU09OIHN0cmluZwp0cmFkaW5nX2Vycm9yX3NjaGVtYV9pbnN0YW5jZSA9IFRyYWRpbmdFcnJvclNjaGVtYS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmFkaW5nRXJyb3JTY2hlbWEudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJhZGluZ19lcnJvcl9zY2hlbWFfZGljdCA9IHRyYWRpbmdfZXJyb3Jfc2NoZW1hX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFkaW5nRXJyb3JTY2hlbWEgZnJvbSBhIGRpY3QKdHJhZGluZ19lcnJvcl9zY2hlbWFfZnJvbV9kaWN0ID0gVHJhZGluZ0Vycm9yU2NoZW1hLmZyb21fZGljdCh0cmFkaW5nX2Vycm9yX3NjaGVtYV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TradingProvider.md b/docs/TradingProvider.md index bc61aef1..814e8bad 100644 --- a/docs/TradingProvider.md +++ b/docs/TradingProvider.md @@ -1,38 +1 @@ -# TradingProvider - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | Unique identifier for the provider | -**name** | **str** | Display name of the provider | -**logo** | **str** | URL to the logo image of the provider | [optional] -**account_based** | **bool** | Indicates whether the provider access model is through accounts or directly | -**manifest** | [**Manifest**](Manifest.md) | | -**connected** | **bool** | Whether the provider is currently connected | -**accounts** | [**List[AccountBase]**](AccountBase.md) | | [optional] -**approved** | **bool** | Whether the provider was approved for use | [optional] -**has_terms_of_service** | **bool** | Whether the provider has terms of service | -**terms_of_service_url** | **str** | URL to the terms of service document | [optional] - -## Example - -```python -from fireblocks.models.trading_provider import TradingProvider - -# TODO update the JSON string below -json = "{}" -# create an instance of TradingProvider from a JSON string -trading_provider_instance = TradingProvider.from_json(json) -# print the JSON string representation of the object -print(TradingProvider.to_json()) - -# convert the object into a dict -trading_provider_dict = trading_provider_instance.to_dict() -# create an instance of TradingProvider from a dict -trading_provider_from_dict = TradingProvider.from_dict(trading_provider_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFkaW5nUHJvdmlkZXIKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHByb3ZpZGVyIHwgCioqbmFtZSoqIHwgKipzdHIqKiB8IERpc3BsYXkgbmFtZSBvZiB0aGUgcHJvdmlkZXIgfCAKKipsb2dvKiogfCAqKnN0cioqIHwgVVJMIHRvIHRoZSBsb2dvIGltYWdlIG9mIHRoZSBwcm92aWRlciB8IFtvcHRpb25hbF0gCioqYWNjb3VudF9iYXNlZCoqIHwgKipib29sKiogfCBJbmRpY2F0ZXMgd2hldGhlciB0aGUgcHJvdmlkZXIgYWNjZXNzIG1vZGVsIGlzIHRocm91Z2ggYWNjb3VudHMgb3IgZGlyZWN0bHkgfCAKKiptYW5pZmVzdCoqIHwgWyoqTWFuaWZlc3QqKl0oTWFuaWZlc3QubWQpIHwgIHwgCioqY29ubmVjdGVkKiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgdGhlIHByb3ZpZGVyIGlzIGN1cnJlbnRseSBjb25uZWN0ZWQgfCAKKiphY2NvdW50cyoqIHwgWyoqTGlzdFtBY2NvdW50QmFzZV0qKl0oQWNjb3VudEJhc2UubWQpIHwgIHwgCioqYXBwcm92ZWQqKiB8ICoqYm9vbCoqIHwgV2hldGhlciB0aGUgcHJvdmlkZXIgd2FzIGFwcHJvdmVkIGZvciB1c2UgfCBbb3B0aW9uYWxdIAoqKmhhc190ZXJtc19vZl9zZXJ2aWNlKiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgdGhlIHByb3ZpZGVyIGhhcyB0ZXJtcyBvZiBzZXJ2aWNlIHwgCioqdGVybXNfb2Zfc2VydmljZV91cmwqKiB8ICoqc3RyKiogfCBVUkwgdG8gdGhlIHRlcm1zIG9mIHNlcnZpY2UgZG9jdW1lbnQgfCBbb3B0aW9uYWxdIAoqKnByaXZhY3lfcG9saWN5X3VybCoqIHwgKipzdHIqKiB8IFVSTCB0byB0aGUgcHJpdmFjeSBwb2xpY3kgZG9jdW1lbnQgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhZGluZ19wcm92aWRlciBpbXBvcnQgVHJhZGluZ1Byb3ZpZGVyCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFkaW5nUHJvdmlkZXIgZnJvbSBhIEpTT04gc3RyaW5nCnRyYWRpbmdfcHJvdmlkZXJfaW5zdGFuY2UgPSBUcmFkaW5nUHJvdmlkZXIuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhZGluZ1Byb3ZpZGVyLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYWRpbmdfcHJvdmlkZXJfZGljdCA9IHRyYWRpbmdfcHJvdmlkZXJfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYWRpbmdQcm92aWRlciBmcm9tIGEgZGljdAp0cmFkaW5nX3Byb3ZpZGVyX2Zyb21fZGljdCA9IFRyYWRpbmdQcm92aWRlci5mcm9tX2RpY3QodHJhZGluZ19wcm92aWRlcl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TradingProviderDetails.md b/docs/TradingProviderDetails.md new file mode 100644 index 00000000..096db522 --- /dev/null +++ b/docs/TradingProviderDetails.md @@ -0,0 +1 @@ +IyBUcmFkaW5nUHJvdmlkZXJEZXRhaWxzCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBwcm92aWRlciB8IAoqKm5hbWUqKiB8ICoqc3RyKiogfCBEaXNwbGF5IG5hbWUgb2YgdGhlIHByb3ZpZGVyIHwgCioqbG9nbyoqIHwgKipzdHIqKiB8IFVSTCB0byB0aGUgbG9nbyBpbWFnZSBvZiB0aGUgcHJvdmlkZXIgfCBbb3B0aW9uYWxdIAoqKmFjY291bnRfYmFzZWQqKiB8ICoqYm9vbCoqIHwgSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHByb3ZpZGVyIGFjY2VzcyBtb2RlbCBpcyB0aHJvdWdoIGFjY291bnRzIG9yIGRpcmVjdGx5IHwgCioqbWFuaWZlc3QqKiB8IFsqKk1hbmlmZXN0KipdKE1hbmlmZXN0Lm1kKSB8ICB8IAoqKmNvbm5lY3RlZCoqIHwgKipib29sKiogfCBXaGV0aGVyIHRoZSBwcm92aWRlciBpcyBjdXJyZW50bHkgY29ubmVjdGVkIHwgCioqYWNjb3VudHMqKiB8IFsqKkxpc3RbQWNjb3VudEJhc2VdKipdKEFjY291bnRCYXNlLm1kKSB8ICB8IAoqKmFwcHJvdmVkKiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgdGhlIHByb3ZpZGVyIHdhcyBhcHByb3ZlZCBmb3IgdXNlIHwgW29wdGlvbmFsXSAKKipoYXNfdGVybXNfb2Zfc2VydmljZSoqIHwgKipib29sKiogfCBXaGV0aGVyIHRoZSBwcm92aWRlciBoYXMgdGVybXMgb2Ygc2VydmljZSB8IAoqKnRlcm1zX29mX3NlcnZpY2VfdXJsKiogfCAqKnN0cioqIHwgVVJMIHRvIHRoZSB0ZXJtcyBvZiBzZXJ2aWNlIGRvY3VtZW50IHwgW29wdGlvbmFsXSAKKipwcml2YWN5X3BvbGljeV91cmwqKiB8ICoqc3RyKiogfCBVUkwgdG8gdGhlIHByaXZhY3kgcG9saWN5IGRvY3VtZW50IHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYWRpbmdfcHJvdmlkZXJfZGV0YWlscyBpbXBvcnQgVHJhZGluZ1Byb3ZpZGVyRGV0YWlscwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhZGluZ1Byb3ZpZGVyRGV0YWlscyBmcm9tIGEgSlNPTiBzdHJpbmcKdHJhZGluZ19wcm92aWRlcl9kZXRhaWxzX2luc3RhbmNlID0gVHJhZGluZ1Byb3ZpZGVyRGV0YWlscy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmFkaW5nUHJvdmlkZXJEZXRhaWxzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYWRpbmdfcHJvdmlkZXJfZGV0YWlsc19kaWN0ID0gdHJhZGluZ19wcm92aWRlcl9kZXRhaWxzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFkaW5nUHJvdmlkZXJEZXRhaWxzIGZyb20gYSBkaWN0CnRyYWRpbmdfcHJvdmlkZXJfZGV0YWlsc19mcm9tX2RpY3QgPSBUcmFkaW5nUHJvdmlkZXJEZXRhaWxzLmZyb21fZGljdCh0cmFkaW5nX3Byb3ZpZGVyX2RldGFpbHNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/Transaction.md b/docs/Transaction.md index 78e503b1..f9b21ae0 100644 --- a/docs/Transaction.md +++ b/docs/Transaction.md @@ -1,32 +1 @@ -# Transaction - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | -**state** | **str** | | -**timestamp** | **float** | | [optional] -**instruction_id** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.transaction import Transaction - -# TODO update the JSON string below -json = "{}" -# create an instance of Transaction from a JSON string -transaction_instance = Transaction.from_json(json) -# print the JSON string representation of the object -print(Transaction.to_json()) - -# convert the object into a dict -transaction_dict = transaction_instance.to_dict() -# create an instance of Transaction from a dict -transaction_from_dict = Transaction.from_dict(transaction_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2FjdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8ICB8IAoqKnN0YXRlKiogfCAqKnN0cioqIHwgIHwgCioqdGltZXN0YW1wKiogfCAqKmZsb2F0KiogfCAgfCBbb3B0aW9uYWxdIAoqKmluc3RydWN0aW9uX2lkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uIGltcG9ydCBUcmFuc2FjdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNhY3Rpb24gZnJvbSBhIEpTT04gc3RyaW5nCnRyYW5zYWN0aW9uX2luc3RhbmNlID0gVHJhbnNhY3Rpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhbnNhY3Rpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJhbnNhY3Rpb25fZGljdCA9IHRyYW5zYWN0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2FjdGlvbiBmcm9tIGEgZGljdAp0cmFuc2FjdGlvbl9mcm9tX2RpY3QgPSBUcmFuc2FjdGlvbi5mcm9tX2RpY3QodHJhbnNhY3Rpb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TransactionDirection.md b/docs/TransactionDirection.md index f04ca14a..c4810f63 100644 --- a/docs/TransactionDirection.md +++ b/docs/TransactionDirection.md @@ -1,13 +1 @@ -# TransactionDirection - -Transaction direction - -## Enum - -* `INBOUND` (value: `'INBOUND'`) - -* `OUTBOUND` (value: `'OUTBOUND'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2FjdGlvbkRpcmVjdGlvbgoKVHJhbnNhY3Rpb24gZGlyZWN0aW9uCgojIyBFbnVtCgoqIGBJTkJPVU5EYCAodmFsdWU6IGAnSU5CT1VORCdgKQoKKiBgT1VUQk9VTkRgICh2YWx1ZTogYCdPVVRCT1VORCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TransactionFee.md b/docs/TransactionFee.md index dabc033a..ee3cafd4 100644 --- a/docs/TransactionFee.md +++ b/docs/TransactionFee.md @@ -1,36 +1 @@ -# TransactionFee - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**fee_per_byte** | **str** | | [optional] -**gas_price** | **float** | | [optional] -**gas_limit** | **str** | | [optional] -**network_fee** | **str** | | [optional] -**base_fee** | **float** | (optional) Base Fee according to EIP-1559 (ETH assets) | [optional] -**priority_fee** | **float** | (optional) Priority Fee according to EIP-1559 (ETH assets) | [optional] -**max_fee_per_gas_delta** | **str** | Max Fee Per Gas Delta added only for EIP-1559 (ETH assets) | [optional] -**l1_fee** | **str** | Layer 1 fee for Layer 2 chains | [optional] - -## Example - -```python -from fireblocks.models.transaction_fee import TransactionFee - -# TODO update the JSON string below -json = "{}" -# create an instance of TransactionFee from a JSON string -transaction_fee_instance = TransactionFee.from_json(json) -# print the JSON string representation of the object -print(TransactionFee.to_json()) - -# convert the object into a dict -transaction_fee_dict = transaction_fee_instance.to_dict() -# create an instance of TransactionFee from a dict -transaction_fee_from_dict = TransactionFee.from_dict(transaction_fee_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2FjdGlvbkZlZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipmZWVfcGVyX2J5dGUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmdhc19wcmljZSoqIHwgKipmbG9hdCoqIHwgIHwgW29wdGlvbmFsXSAKKipnYXNfbGltaXQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKm5ldHdvcmtfZmVlKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipiYXNlX2ZlZSoqIHwgKipmbG9hdCoqIHwgKG9wdGlvbmFsKSBCYXNlIEZlZSBhY2NvcmRpbmcgdG8gRUlQLTE1NTkgKEVUSCBhc3NldHMpIHwgW29wdGlvbmFsXSAKKipwcmlvcml0eV9mZWUqKiB8ICoqZmxvYXQqKiB8IChvcHRpb25hbCkgUHJpb3JpdHkgRmVlIGFjY29yZGluZyB0byBFSVAtMTU1OSAoRVRIIGFzc2V0cykgfCBbb3B0aW9uYWxdIAoqKm1heF9mZWVfcGVyX2dhc19kZWx0YSoqIHwgKipzdHIqKiB8IE1heCBGZWUgUGVyIEdhcyBEZWx0YSBhZGRlZCBvbmx5IGZvciBFSVAtMTU1OSAoRVRIIGFzc2V0cykgfCBbb3B0aW9uYWxdIAoqKmwxX2ZlZSoqIHwgKipzdHIqKiB8IExheWVyIDEgZmVlIGZvciBMYXllciAyIGNoYWlucyB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9mZWUgaW1wb3J0IFRyYW5zYWN0aW9uRmVlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2FjdGlvbkZlZSBmcm9tIGEgSlNPTiBzdHJpbmcKdHJhbnNhY3Rpb25fZmVlX2luc3RhbmNlID0gVHJhbnNhY3Rpb25GZWUuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhbnNhY3Rpb25GZWUudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJhbnNhY3Rpb25fZmVlX2RpY3QgPSB0cmFuc2FjdGlvbl9mZWVfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zYWN0aW9uRmVlIGZyb20gYSBkaWN0CnRyYW5zYWN0aW9uX2ZlZV9mcm9tX2RpY3QgPSBUcmFuc2FjdGlvbkZlZS5mcm9tX2RpY3QodHJhbnNhY3Rpb25fZmVlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TransactionOperation.md b/docs/TransactionOperation.md index 907b7a61..0d762d7d 100644 --- a/docs/TransactionOperation.md +++ b/docs/TransactionOperation.md @@ -1,27 +1 @@ -# TransactionOperation - -* `TRANSFER` - The default value for an operation. Transfers funds from one account to another. UTXO blockchains allow multi-input and multi-output transfers. All other blockchains allow transfers with one source address and one destination address. * `MINT` - Mints new tokens. Supported for Stellar, Ripple and EVM-based blockchains. * `BURN` - Burns tokens. Supported for Stellar, Ripple and EVM-based blockchains. * `CONTRACT_CALL` - Calls a smart contract method for web3 operations on any EVM blockchain. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions. * `PROGRAM_CALL` - Execute multiple instructions on Solana blockchain. The @solana/web3.js library is recommended for building program call transactions. * `TYPED_MESSAGE` - An off-chain message in either Ethereum Personal Message or EIP712 format. Use it to sign specific readable messages that are not actual transactions. [Learn more about typed messages](https://developers.fireblocks.com/docs/typed-message-signing). * `RAW` - An off-chain message with no predefined format. Use it to sign any message with your private key, including protocols such as blockchains and custom transaction types that are not natively supported by Fireblocks. [Learn more about raw signing transactions.](https://developers.fireblocks.com/docs/raw-message-signing) * `APPROVE` - Enables the approve function for a smart contract or wallet to withdraw from a designated wallet. [Learn more](https://support.fireblocks.io/hc/en-us/articles/4404616097426-Amount-Cap-for-Approve-transactions). * `ENABLE_ASSET` - Algorand, DigitalBits, Solana, and Stellar require an on-chain transaction to create an asset wallet and enable the deposit address. This transaction is automatically created when adding assets on these blockchains at a vault account. - -## Enum - -* `TRANSFER` (value: `'TRANSFER'`) - -* `BURN` (value: `'BURN'`) - -* `CONTRACT_CALL` (value: `'CONTRACT_CALL'`) - -* `PROGRAM_CALL` (value: `'PROGRAM_CALL'`) - -* `MINT` (value: `'MINT'`) - -* `RAW` (value: `'RAW'`) - -* `TYPED_MESSAGE` (value: `'TYPED_MESSAGE'`) - -* `APPROVE` (value: `'APPROVE'`) - -* `ENABLE_ASSET` (value: `'ENABLE_ASSET'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2FjdGlvbk9wZXJhdGlvbgoKKiBgVFJBTlNGRVJgIC0gVGhlIGRlZmF1bHQgdmFsdWUgZm9yIGFuIG9wZXJhdGlvbi4gVHJhbnNmZXJzIGZ1bmRzIGZyb20gb25lIGFjY291bnQgdG8gYW5vdGhlci4gVVRYTyBibG9ja2NoYWlucyBhbGxvdyBtdWx0aS1pbnB1dCBhbmQgbXVsdGktb3V0cHV0IHRyYW5zZmVycy4gQWxsIG90aGVyIGJsb2NrY2hhaW5zIGFsbG93IHRyYW5zZmVycyB3aXRoIG9uZSBzb3VyY2UgYWRkcmVzcyBhbmQgb25lIGRlc3RpbmF0aW9uIGFkZHJlc3MuICogYE1JTlRgIC0gTWludHMgbmV3IHRva2Vucy4gU3VwcG9ydGVkIGZvciBTdGVsbGFyLCBSaXBwbGUgYW5kIEVWTS1iYXNlZCBibG9ja2NoYWlucy4gKiBgQlVSTmAgLSBCdXJucyB0b2tlbnMuIFN1cHBvcnRlZCBmb3IgU3RlbGxhciwgUmlwcGxlIGFuZCBFVk0tYmFzZWQgYmxvY2tjaGFpbnMuICogYENPTlRSQUNUX0NBTExgIC0gQ2FsbHMgYSBzbWFydCBjb250cmFjdCBtZXRob2QgZm9yIHdlYjMgb3BlcmF0aW9ucyBvbiBhbnkgRVZNIGJsb2NrY2hhaW4uIFRoZSBGaXJlYmxvY2tzIFtkZXZlbG9wbWVudCBsaWJyYXJpZXNdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL2V0aGVyZXVtLWRldmVsb3BtZW50I2NvbnZlbmllbmNlLWxpYnJhcmllcykgYXJlIHJlY29tbWVuZGVkIGZvciBidWlsZGluZyBjb250cmFjdCBjYWxsIHRyYW5zYWN0aW9ucy4gKiBgUFJPR1JBTV9DQUxMYCAtIEV4ZWN1dGUgbXVsdGlwbGUgaW5zdHJ1Y3Rpb25zIG9uIFNvbGFuYSBibG9ja2NoYWluLiBUaGUgQHNvbGFuYS93ZWIzLmpzIGxpYnJhcnkgaXMgcmVjb21tZW5kZWQgZm9yIGJ1aWxkaW5nIHByb2dyYW0gY2FsbCB0cmFuc2FjdGlvbnMuICAqIGBUWVBFRF9NRVNTQUdFYCAtIEFuIG9mZi1jaGFpbiBtZXNzYWdlIGluIGVpdGhlciBFdGhlcmV1bSBQZXJzb25hbCBNZXNzYWdlIG9yIEVJUDcxMiBmb3JtYXQuIFVzZSBpdCB0byBzaWduIHNwZWNpZmljIHJlYWRhYmxlIG1lc3NhZ2VzIHRoYXQgYXJlIG5vdCBhY3R1YWwgdHJhbnNhY3Rpb25zLiBbTGVhcm4gbW9yZSBhYm91dCB0eXBlZCBtZXNzYWdlc10oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL2RvY3MvdHlwZWQtbWVzc2FnZS1zaWduaW5nKS4gKiBgUkFXYCAtIEFuIG9mZi1jaGFpbiBtZXNzYWdlIHdpdGggbm8gcHJlZGVmaW5lZCBmb3JtYXQuIFVzZSBpdCB0byBzaWduIGFueSBtZXNzYWdlIHdpdGggeW91ciBwcml2YXRlIGtleSwgaW5jbHVkaW5nIHByb3RvY29scyBzdWNoIGFzIGJsb2NrY2hhaW5zIGFuZCBjdXN0b20gdHJhbnNhY3Rpb24gdHlwZXMgdGhhdCBhcmUgbm90IG5hdGl2ZWx5IHN1cHBvcnRlZCBieSBGaXJlYmxvY2tzLiBbTGVhcm4gbW9yZSBhYm91dCByYXcgc2lnbmluZyB0cmFuc2FjdGlvbnMuXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vZG9jcy9yYXctbWVzc2FnZS1zaWduaW5nKSAqIGBBUFBST1ZFYCAtIEVuYWJsZXMgdGhlIGFwcHJvdmUgZnVuY3Rpb24gZm9yIGEgc21hcnQgY29udHJhY3Qgb3Igd2FsbGV0IHRvICB3aXRoZHJhdyBmcm9tIGEgZGVzaWduYXRlZCB3YWxsZXQuIFtMZWFybiBtb3JlXShodHRwczovL3N1cHBvcnQuZmlyZWJsb2Nrcy5pby9oYy9lbi11cy9hcnRpY2xlcy80NDA0NjE2MDk3NDI2LUFtb3VudC1DYXAtZm9yLUFwcHJvdmUtdHJhbnNhY3Rpb25zKS4gKiBgRU5BQkxFX0FTU0VUYCAtIEFsZ29yYW5kLCBEaWdpdGFsQml0cywgU29sYW5hLCBhbmQgU3RlbGxhciByZXF1aXJlIGFuIG9uLWNoYWluIHRyYW5zYWN0aW9uIHRvIGNyZWF0ZSBhbiBhc3NldCB3YWxsZXQgYW5kIGVuYWJsZSB0aGUgZGVwb3NpdCBhZGRyZXNzLiBUaGlzIHRyYW5zYWN0aW9uIGlzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB3aGVuIGFkZGluZyBhc3NldHMgb24gdGhlc2UgYmxvY2tjaGFpbnMgYXQgYSB2YXVsdCBhY2NvdW50LiAKCiMjIEVudW0KCiogYFRSQU5TRkVSYCAodmFsdWU6IGAnVFJBTlNGRVInYCkKCiogYEJVUk5gICh2YWx1ZTogYCdCVVJOJ2ApCgoqIGBDT05UUkFDVF9DQUxMYCAodmFsdWU6IGAnQ09OVFJBQ1RfQ0FMTCdgKQoKKiBgUFJPR1JBTV9DQUxMYCAodmFsdWU6IGAnUFJPR1JBTV9DQUxMJ2ApCgoqIGBNSU5UYCAodmFsdWU6IGAnTUlOVCdgKQoKKiBgUkFXYCAodmFsdWU6IGAnUkFXJ2ApCgoqIGBUWVBFRF9NRVNTQUdFYCAodmFsdWU6IGAnVFlQRURfTUVTU0FHRSdgKQoKKiBgQVBQUk9WRWAgKHZhbHVlOiBgJ0FQUFJPVkUnYCkKCiogYEVOQUJMRV9BU1NFVGAgKHZhbHVlOiBgJ0VOQUJMRV9BU1NFVCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TransactionOperationEnum.md b/docs/TransactionOperationEnum.md index 5faa05f1..e27a2bdf 100644 --- a/docs/TransactionOperationEnum.md +++ b/docs/TransactionOperationEnum.md @@ -1,37 +1 @@ -# TransactionOperationEnum - -Transaction operation type - -## Enum - -* `TRANSFER` (value: `'TRANSFER'`) - -* `BURN` (value: `'BURN'`) - -* `CONTRACT_CALL` (value: `'CONTRACT_CALL'`) - -* `MINT` (value: `'MINT'`) - -* `RAW` (value: `'RAW'`) - -* `TYPED_MESSAGE` (value: `'TYPED_MESSAGE'`) - -* `ENABLE_ASSET` (value: `'ENABLE_ASSET'`) - -* `STAKE` (value: `'STAKE'`) - -* `UNSTAKE` (value: `'UNSTAKE'`) - -* `WITHDRAW` (value: `'WITHDRAW'`) - -* `REDEEM_FROM_COMPOUND` (value: `'REDEEM_FROM_COMPOUND'`) - -* `SUPPLY_TO_COMPOUND` (value: `'SUPPLY_TO_COMPOUND'`) - -* `PROGRAM_CALL` (value: `'PROGRAM_CALL'`) - -* `APPROVE` (value: `'APPROVE'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0KClRyYW5zYWN0aW9uIG9wZXJhdGlvbiB0eXBlCgojIyBFbnVtCgoqIGBUUkFOU0ZFUmAgKHZhbHVlOiBgJ1RSQU5TRkVSJ2ApCgoqIGBCVVJOYCAodmFsdWU6IGAnQlVSTidgKQoKKiBgQ09OVFJBQ1RfQ0FMTGAgKHZhbHVlOiBgJ0NPTlRSQUNUX0NBTEwnYCkKCiogYE1JTlRgICh2YWx1ZTogYCdNSU5UJ2ApCgoqIGBSQVdgICh2YWx1ZTogYCdSQVcnYCkKCiogYFRZUEVEX01FU1NBR0VgICh2YWx1ZTogYCdUWVBFRF9NRVNTQUdFJ2ApCgoqIGBFTkFCTEVfQVNTRVRgICh2YWx1ZTogYCdFTkFCTEVfQVNTRVQnYCkKCiogYFNUQUtFYCAodmFsdWU6IGAnU1RBS0UnYCkKCiogYFVOU1RBS0VgICh2YWx1ZTogYCdVTlNUQUtFJ2ApCgoqIGBXSVRIRFJBV2AgKHZhbHVlOiBgJ1dJVEhEUkFXJ2ApCgoqIGBSRURFRU1fRlJPTV9DT01QT1VORGAgKHZhbHVlOiBgJ1JFREVFTV9GUk9NX0NPTVBPVU5EJ2ApCgoqIGBTVVBQTFlfVE9fQ09NUE9VTkRgICh2YWx1ZTogYCdTVVBQTFlfVE9fQ09NUE9VTkQnYCkKCiogYFBST0dSQU1fQ0FMTGAgKHZhbHVlOiBgJ1BST0dSQU1fQ0FMTCdgKQoKKiBgQVBQUk9WRWAgKHZhbHVlOiBgJ0FQUFJPVkUnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TransactionReceiptResponse.md b/docs/TransactionReceiptResponse.md index c76458f0..fd22de07 100644 --- a/docs/TransactionReceiptResponse.md +++ b/docs/TransactionReceiptResponse.md @@ -1,42 +1 @@ -# TransactionReceiptResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**block_hash** | **str** | The block hash | -**block_number** | **int** | The block number | -**contract_address** | **str** | The address of deployed contract | [optional] -**cumulative_gas_used** | **int** | The cumulative gas used in the transaction | -**effective_gas_price** | **int** | The effective gas price | -**var_from** | **str** | Sender address | -**gas_used** | **int** | Gas used by the transaction | -**logs** | [**List[TxLog]**](TxLog.md) | Array of transaction logs | -**logs_bloom** | **str** | Logs bloom filter | -**status** | **int** | Transaction status (1 for success, 0 for failure) | -**to** | **str** | Recipient address | [optional] -**transaction_hash** | **str** | The transaction hash | -**transaction_index** | **int** | Transaction index in the block | -**type** | **str** | Type of transaction | - -## Example - -```python -from fireblocks.models.transaction_receipt_response import TransactionReceiptResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TransactionReceiptResponse from a JSON string -transaction_receipt_response_instance = TransactionReceiptResponse.from_json(json) -# print the JSON string representation of the object -print(TransactionReceiptResponse.to_json()) - -# convert the object into a dict -transaction_receipt_response_dict = transaction_receipt_response_instance.to_dict() -# create an instance of TransactionReceiptResponse from a dict -transaction_receipt_response_from_dict = TransactionReceiptResponse.from_dict(transaction_receipt_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2FjdGlvblJlY2VpcHRSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipibG9ja19oYXNoKiogfCAqKnN0cioqIHwgVGhlIGJsb2NrIGhhc2ggfCAKKipibG9ja19udW1iZXIqKiB8ICoqaW50KiogfCBUaGUgYmxvY2sgbnVtYmVyIHwgCioqY29udHJhY3RfYWRkcmVzcyoqIHwgKipzdHIqKiB8IFRoZSBhZGRyZXNzIG9mIGRlcGxveWVkIGNvbnRyYWN0IHwgW29wdGlvbmFsXSAKKipjdW11bGF0aXZlX2dhc191c2VkKiogfCAqKmludCoqIHwgVGhlIGN1bXVsYXRpdmUgZ2FzIHVzZWQgaW4gdGhlIHRyYW5zYWN0aW9uIHwgCioqZWZmZWN0aXZlX2dhc19wcmljZSoqIHwgKippbnQqKiB8IFRoZSBlZmZlY3RpdmUgZ2FzIHByaWNlIHwgCioqdmFyX2Zyb20qKiB8ICoqc3RyKiogfCBTZW5kZXIgYWRkcmVzcyB8IAoqKmdhc191c2VkKiogfCAqKmludCoqIHwgR2FzIHVzZWQgYnkgdGhlIHRyYW5zYWN0aW9uIHwgCioqbG9ncyoqIHwgWyoqTGlzdFtUeExvZ10qKl0oVHhMb2cubWQpIHwgQXJyYXkgb2YgdHJhbnNhY3Rpb24gbG9ncyB8IAoqKmxvZ3NfYmxvb20qKiB8ICoqc3RyKiogfCBMb2dzIGJsb29tIGZpbHRlciB8IAoqKnN0YXR1cyoqIHwgKippbnQqKiB8IFRyYW5zYWN0aW9uIHN0YXR1cyAoMSBmb3Igc3VjY2VzcywgMCBmb3IgZmFpbHVyZSkgfCAKKip0byoqIHwgKipzdHIqKiB8IFJlY2lwaWVudCBhZGRyZXNzIHwgW29wdGlvbmFsXSAKKip0cmFuc2FjdGlvbl9oYXNoKiogfCAqKnN0cioqIHwgVGhlIHRyYW5zYWN0aW9uIGhhc2ggfCAKKip0cmFuc2FjdGlvbl9pbmRleCoqIHwgKippbnQqKiB8IFRyYW5zYWN0aW9uIGluZGV4IGluIHRoZSBibG9jayB8IAoqKnR5cGUqKiB8ICoqc3RyKiogfCBUeXBlIG9mIHRyYW5zYWN0aW9uIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZWNlaXB0X3Jlc3BvbnNlIGltcG9ydCBUcmFuc2FjdGlvblJlY2VpcHRSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNhY3Rpb25SZWNlaXB0UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnRyYW5zYWN0aW9uX3JlY2VpcHRfcmVzcG9uc2VfaW5zdGFuY2UgPSBUcmFuc2FjdGlvblJlY2VpcHRSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmFuc2FjdGlvblJlY2VpcHRSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmFuc2FjdGlvbl9yZWNlaXB0X3Jlc3BvbnNlX2RpY3QgPSB0cmFuc2FjdGlvbl9yZWNlaXB0X3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2FjdGlvblJlY2VpcHRSZXNwb25zZSBmcm9tIGEgZGljdAp0cmFuc2FjdGlvbl9yZWNlaXB0X3Jlc3BvbnNlX2Zyb21fZGljdCA9IFRyYW5zYWN0aW9uUmVjZWlwdFJlc3BvbnNlLmZyb21fZGljdCh0cmFuc2FjdGlvbl9yZWNlaXB0X3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TransactionRequest.md b/docs/TransactionRequest.md index 2dfbbc3b..d86c90f0 100644 --- a/docs/TransactionRequest.md +++ b/docs/TransactionRequest.md @@ -1,56 +1 @@ -# TransactionRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**operation** | [**TransactionOperation**](TransactionOperation.md) | | [optional] [default to TransactionOperation.TRANSFER] -**note** | **str** | Custom note, not sent to the blockchain, to describe the transaction at your Fireblocks workspace. | [optional] -**external_tx_id** | **str** | This parameter allows you to add a unique ID of your own to help prevent duplicate transactions. No specific format is required for this parameter. After you submit a transaction with an external ID, Fireblocks will automatically reject all future transactions with the same ID. Using an external ID primarily helps in situations where, even though a submitted transaction responds with an error due to an internet outage, the transaction was still sent to and processed on the blockchain. Use the [Get a specific transaction by external transaction ID](https://developers.fireblocks.com/reference/gettransactionbyexternalid) endpoint to validate whether these transactions have been processed. | [optional] -**asset_id** | **str** | The ID of the asset to transfer, for `TRANSFER`, `MINT` or `BURN` operations. [See the list of supported assets and their IDs on Fireblocks.](https://developers.fireblocks.com/reference/gettrlinksupportedasset#/) | [optional] -**source** | [**SourceTransferPeerPath**](SourceTransferPeerPath.md) | | [optional] -**destination** | [**DestinationTransferPeerPath**](DestinationTransferPeerPath.md) | | [optional] -**destinations** | [**List[TransactionRequestDestination]**](TransactionRequestDestination.md) | For UTXO based blockchains, you can send a single transaction to multiple destinations. | [optional] -**amount** | [**TransactionRequestAmount**](TransactionRequestAmount.md) | | [optional] -**treat_as_gross_amount** | **bool** | \"When set to `true`, the fee will be deducted from the requested amount.\" **Note**: This parameter can only be considered if a transaction’s asset is a base asset, such as ETH or MATIC. If the asset can’t be used for transaction fees, like USDC, this parameter is ignored and the fee is deducted from the relevant base asset wallet in the source account. | [optional] -**force_sweep** | **bool** | For Polkadot, Kusama and Westend transactions only. When set to true, Fireblocks will empty the asset wallet. **Note:** If set to true when the source account is exactly 1 DOT, the transaction will fail. Any amount more or less than 1 DOT succeeds. This is a Polkadot blockchain limitation. | [optional] -**fee_level** | **str** | For UTXO, EVM-based, or Solana blockchains only. Defines the blockchain fee level which will be payed for the transaction. Alternatively, specific fee estimation parameters exist below. | [optional] -**fee** | [**TransactionRequestFee**](TransactionRequestFee.md) | | [optional] -**priority_fee** | [**TransactionRequestPriorityFee**](TransactionRequestPriorityFee.md) | | [optional] -**fail_on_low_fee** | **bool** | When set to `true`, in case the current `MEDIUM` fee level is higher than the one specified in the transaction, the transaction will fail to avoid getting stuck with no confirmations. | [optional] -**max_fee** | **str** | The maximum fee (gas price or fee per byte) that should be payed for the transaction. In case the current value of the requested `feeLevel` is higher than this requested maximum fee. Represented by a numeric string for accurate precision. | [optional] -**max_total_fee** | **str** | For BTC-based blockchains only. The maximum fee (in the units of the fee-paying asset) that should be paid for the transaction. | [optional] -**gas_limit** | [**TransactionRequestGasLimit**](TransactionRequestGasLimit.md) | | [optional] -**gas_price** | [**TransactionRequestGasPrice**](TransactionRequestGasPrice.md) | | [optional] -**network_fee** | [**TransactionRequestNetworkFee**](TransactionRequestNetworkFee.md) | | [optional] -**replace_tx_by_hash** | **str** | For EVM-based blockchains only. In case a transaction is stuck, specify the hash of the stuck transaction to replace it by this transaction with a higher fee, or to replace it with this transaction with a zero fee and drop it from the blockchain. | [optional] -**extra_parameters** | [**ExtraParameters**](ExtraParameters.md) | | [optional] -**customer_ref_id** | **str** | The ID for AML providers to associate the owner of funds with transactions. | [optional] -**travel_rule_message** | [**TravelRuleCreateTransactionRequest**](TravelRuleCreateTransactionRequest.md) | | [optional] -**travel_rule_message_id** | **str** | The ID of the travel rule message from any travel rule provider. Used for travel rule supporting functionality to associate transactions with existing travel rule messages. | [optional] -**auto_staking** | **bool** | This feature is no longer supported. | [optional] -**network_staking** | [**TransactionRequestNetworkStaking**](TransactionRequestNetworkStaking.md) | | [optional] -**cpu_staking** | [**TransactionRequestNetworkStaking**](TransactionRequestNetworkStaking.md) | | [optional] -**use_gasless** | **bool** | - Override the default gasless configuration by sending true\\false | [optional] - -## Example - -```python -from fireblocks.models.transaction_request import TransactionRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of TransactionRequest from a JSON string -transaction_request_instance = TransactionRequest.from_json(json) -# print the JSON string representation of the object -print(TransactionRequest.to_json()) - -# convert the object into a dict -transaction_request_dict = transaction_request_instance.to_dict() -# create an instance of TransactionRequest from a dict -transaction_request_from_dict = TransactionRequest.from_dict(transaction_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2FjdGlvblJlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqb3BlcmF0aW9uKiogfCBbKipUcmFuc2FjdGlvbk9wZXJhdGlvbioqXShUcmFuc2FjdGlvbk9wZXJhdGlvbi5tZCkgfCAgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIFRyYW5zYWN0aW9uT3BlcmF0aW9uLlRSQU5TRkVSXQoqKm5vdGUqKiB8ICoqc3RyKiogfCBDdXN0b20gbm90ZSwgbm90IHNlbnQgdG8gdGhlIGJsb2NrY2hhaW4sIHRvIGRlc2NyaWJlIHRoZSB0cmFuc2FjdGlvbiBhdCB5b3VyIEZpcmVibG9ja3Mgd29ya3NwYWNlLiB8IFtvcHRpb25hbF0gCioqZXh0ZXJuYWxfdHhfaWQqKiB8ICoqc3RyKiogfCBUaGlzIHBhcmFtZXRlciBhbGxvd3MgeW91IHRvIGFkZCBhIHVuaXF1ZSBJRCBvZiB5b3VyIG93biB0byBoZWxwIHByZXZlbnQgZHVwbGljYXRlIHRyYW5zYWN0aW9ucy4gTm8gc3BlY2lmaWMgZm9ybWF0IGlzIHJlcXVpcmVkIGZvciB0aGlzIHBhcmFtZXRlci4gQWZ0ZXIgeW91IHN1Ym1pdCBhIHRyYW5zYWN0aW9uIHdpdGggYW4gZXh0ZXJuYWwgSUQsIEZpcmVibG9ja3Mgd2lsbCBhdXRvbWF0aWNhbGx5IHJlamVjdCBhbGwgZnV0dXJlIHRyYW5zYWN0aW9ucyB3aXRoIHRoZSBzYW1lIElELiBVc2luZyBhbiBleHRlcm5hbCBJRCBwcmltYXJpbHkgaGVscHMgaW4gc2l0dWF0aW9ucyB3aGVyZSwgZXZlbiB0aG91Z2ggYSBzdWJtaXR0ZWQgdHJhbnNhY3Rpb24gcmVzcG9uZHMgd2l0aCBhbiBlcnJvciBkdWUgdG8gYW4gaW50ZXJuZXQgb3V0YWdlLCAgdGhlIHRyYW5zYWN0aW9uIHdhcyBzdGlsbCBzZW50IHRvIGFuZCBwcm9jZXNzZWQgb24gdGhlIGJsb2NrY2hhaW4uICBVc2UgdGhlIFtHZXQgYSBzcGVjaWZpYyB0cmFuc2FjdGlvbiBieSBleHRlcm5hbCB0cmFuc2FjdGlvbiBJRF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS9nZXR0cmFuc2FjdGlvbmJ5ZXh0ZXJuYWxpZCkgIGVuZHBvaW50IHRvIHZhbGlkYXRlIHdoZXRoZXIgdGhlc2UgdHJhbnNhY3Rpb25zIGhhdmUgYmVlbiBwcm9jZXNzZWQuIHwgW29wdGlvbmFsXSAKKiphc3NldF9pZCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgYXNzZXQgdG8gdHJhbnNmZXIsIGZvciAmI3g2MDtUUkFOU0ZFUiYjeDYwOywgJiN4NjA7TUlOVCYjeDYwOyBvciAmI3g2MDtCVVJOJiN4NjA7IG9wZXJhdGlvbnMuIFtTZWUgdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIGFzc2V0cyBhbmQgdGhlaXIgSURzIG9uIEZpcmVibG9ja3MuXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2dldHRybGlua3N1cHBvcnRlZGFzc2V0Iy8pIHwgW29wdGlvbmFsXSAKKipzb3VyY2UqKiB8IFsqKlNvdXJjZVRyYW5zZmVyUGVlclBhdGgqKl0oU291cmNlVHJhbnNmZXJQZWVyUGF0aC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRlc3RpbmF0aW9uKiogfCBbKipEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgqKl0oRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZGVzdGluYXRpb25zKiogfCBbKipMaXN0W1RyYW5zYWN0aW9uUmVxdWVzdERlc3RpbmF0aW9uXSoqXShUcmFuc2FjdGlvblJlcXVlc3REZXN0aW5hdGlvbi5tZCkgfCBGb3IgVVRYTyBiYXNlZCBibG9ja2NoYWlucywgeW91IGNhbiBzZW5kIGEgc2luZ2xlIHRyYW5zYWN0aW9uIHRvIG11bHRpcGxlIGRlc3RpbmF0aW9ucy4gfCBbb3B0aW9uYWxdIAoqKmFtb3VudCoqIHwgWyoqVHJhbnNhY3Rpb25SZXF1ZXN0QW1vdW50KipdKFRyYW5zYWN0aW9uUmVxdWVzdEFtb3VudC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnRyZWF0X2FzX2dyb3NzX2Ftb3VudCoqIHwgKipib29sKiogfCBcJnF1b3Q7V2hlbiBzZXQgdG8gJiN4NjA7dHJ1ZSYjeDYwOywgdGhlIGZlZSB3aWxsIGJlIGRlZHVjdGVkIGZyb20gdGhlIHJlcXVlc3RlZCBhbW91bnQuXCZxdW90OyAgKipOb3RlKio6IFRoaXMgcGFyYW1ldGVyIGNhbiBvbmx5IGJlIGNvbnNpZGVyZWQgaWYgYSB0cmFuc2FjdGlvbuKAmXMgYXNzZXQgaXMgYSBiYXNlIGFzc2V0LCBzdWNoIGFzIEVUSCBvciBNQVRJQy4gSWYgdGhlIGFzc2V0IGNhbuKAmXQgYmUgdXNlZCBmb3IgdHJhbnNhY3Rpb24gZmVlcywgbGlrZSBVU0RDLCB0aGlzIHBhcmFtZXRlciBpcyBpZ25vcmVkIGFuZCB0aGUgZmVlIGlzIGRlZHVjdGVkIGZyb20gdGhlIHJlbGV2YW50IGJhc2UgYXNzZXQgd2FsbGV0IGluIHRoZSBzb3VyY2UgYWNjb3VudC4gfCBbb3B0aW9uYWxdIAoqKmZvcmNlX3N3ZWVwKiogfCAqKmJvb2wqKiB8IEZvciBQb2xrYWRvdCwgS3VzYW1hIGFuZCBXZXN0ZW5kIHRyYW5zYWN0aW9ucyBvbmx5LiBXaGVuIHNldCB0byB0cnVlLCBGaXJlYmxvY2tzIHdpbGwgZW1wdHkgdGhlIGFzc2V0IHdhbGxldC4gICAgICoqTm90ZToqKiBJZiBzZXQgdG8gdHJ1ZSB3aGVuIHRoZSBzb3VyY2UgYWNjb3VudCBpcyBleGFjdGx5IDEgRE9ULCB0aGUgdHJhbnNhY3Rpb24gd2lsbCBmYWlsLiBBbnkgYW1vdW50IG1vcmUgb3IgbGVzcyB0aGFuIDEgRE9UIHN1Y2NlZWRzLiBUaGlzIGlzIGEgUG9sa2Fkb3QgYmxvY2tjaGFpbiBsaW1pdGF0aW9uLiB8IFtvcHRpb25hbF0gCioqZmVlX2xldmVsKiogfCAqKnN0cioqIHwgRm9yIFVUWE8sIEVWTS1iYXNlZCwgb3IgU29sYW5hIGJsb2NrY2hhaW5zIG9ubHkuIERlZmluZXMgdGhlIGJsb2NrY2hhaW4gZmVlIGxldmVsIHdoaWNoIHdpbGwgYmUgcGF5ZWQgZm9yIHRoZSB0cmFuc2FjdGlvbi4gQWx0ZXJuYXRpdmVseSwgc3BlY2lmaWMgZmVlIGVzdGltYXRpb24gcGFyYW1ldGVycyBleGlzdCBiZWxvdy4gfCBbb3B0aW9uYWxdIAoqKmZlZSoqIHwgWyoqVHJhbnNhY3Rpb25SZXF1ZXN0RmVlKipdKFRyYW5zYWN0aW9uUmVxdWVzdEZlZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnByaW9yaXR5X2ZlZSoqIHwgWyoqVHJhbnNhY3Rpb25SZXF1ZXN0UHJpb3JpdHlGZWUqKl0oVHJhbnNhY3Rpb25SZXF1ZXN0UHJpb3JpdHlGZWUubWQpIHwgIHwgW29wdGlvbmFsXSAKKipmYWlsX29uX2xvd19mZWUqKiB8ICoqYm9vbCoqIHwgV2hlbiBzZXQgdG8gJiN4NjA7dHJ1ZSYjeDYwOywgaW4gY2FzZSB0aGUgY3VycmVudCAmI3g2MDtNRURJVU0mI3g2MDsgZmVlIGxldmVsIGlzIGhpZ2hlciB0aGFuIHRoZSBvbmUgc3BlY2lmaWVkIGluIHRoZSB0cmFuc2FjdGlvbiwgdGhlIHRyYW5zYWN0aW9uIHdpbGwgZmFpbCB0byBhdm9pZCBnZXR0aW5nIHN0dWNrIHdpdGggbm8gY29uZmlybWF0aW9ucy4gfCBbb3B0aW9uYWxdIAoqKm1heF9mZWUqKiB8ICoqc3RyKiogfCBUaGUgbWF4aW11bSBmZWUgKGdhcyBwcmljZSBvciBmZWUgcGVyIGJ5dGUpIHRoYXQgc2hvdWxkIGJlIHBheWVkIGZvciB0aGUgdHJhbnNhY3Rpb24uICBJbiBjYXNlIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSByZXF1ZXN0ZWQgJiN4NjA7ZmVlTGV2ZWwmI3g2MDsgaXMgaGlnaGVyIHRoYW4gdGhpcyByZXF1ZXN0ZWQgbWF4aW11bSBmZWUuICBSZXByZXNlbnRlZCBieSBhIG51bWVyaWMgc3RyaW5nIGZvciBhY2N1cmF0ZSBwcmVjaXNpb24uIHwgW29wdGlvbmFsXSAKKiptYXhfdG90YWxfZmVlKiogfCAqKnN0cioqIHwgRm9yIEJUQy1iYXNlZCBibG9ja2NoYWlucyBvbmx5LiBUaGUgbWF4aW11bSBmZWUgKGluIHRoZSB1bml0cyBvZiB0aGUgZmVlLXBheWluZyBhc3NldCkgdGhhdCBzaG91bGQgYmUgcGFpZCBmb3IgdGhlIHRyYW5zYWN0aW9uLiB8IFtvcHRpb25hbF0gCioqZ2FzX2xpbWl0KiogfCBbKipUcmFuc2FjdGlvblJlcXVlc3RHYXNMaW1pdCoqXShUcmFuc2FjdGlvblJlcXVlc3RHYXNMaW1pdC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmdhc19wcmljZSoqIHwgWyoqVHJhbnNhY3Rpb25SZXF1ZXN0R2FzUHJpY2UqKl0oVHJhbnNhY3Rpb25SZXF1ZXN0R2FzUHJpY2UubWQpIHwgIHwgW29wdGlvbmFsXSAKKipuZXR3b3JrX2ZlZSoqIHwgWyoqVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya0ZlZSoqXShUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrRmVlLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqcmVwbGFjZV90eF9ieV9oYXNoKiogfCAqKnN0cioqIHwgRm9yIEVWTS1iYXNlZCBibG9ja2NoYWlucyBvbmx5LiBJbiBjYXNlIGEgdHJhbnNhY3Rpb24gaXMgc3R1Y2ssIHNwZWNpZnkgdGhlIGhhc2ggb2YgdGhlIHN0dWNrIHRyYW5zYWN0aW9uIHRvIHJlcGxhY2UgaXQgYnkgdGhpcyB0cmFuc2FjdGlvbiB3aXRoIGEgaGlnaGVyIGZlZSwgb3IgdG8gcmVwbGFjZSBpdCB3aXRoIHRoaXMgdHJhbnNhY3Rpb24gd2l0aCBhIHplcm8gZmVlIGFuZCBkcm9wIGl0IGZyb20gdGhlIGJsb2NrY2hhaW4uIHwgW29wdGlvbmFsXSAKKipleHRyYV9wYXJhbWV0ZXJzKiogfCBbKipFeHRyYVBhcmFtZXRlcnMqKl0oRXh0cmFQYXJhbWV0ZXJzLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqY3VzdG9tZXJfcmVmX2lkKiogfCAqKnN0cioqIHwgVGhlIElEIGZvciBBTUwgcHJvdmlkZXJzIHRvIGFzc29jaWF0ZSB0aGUgb3duZXIgb2YgZnVuZHMgd2l0aCB0cmFuc2FjdGlvbnMuIHwgW29wdGlvbmFsXSAKKip0cmF2ZWxfcnVsZV9tZXNzYWdlKiogfCBbKipUcmF2ZWxSdWxlQ3JlYXRlVHJhbnNhY3Rpb25SZXF1ZXN0KipdKFRyYXZlbFJ1bGVDcmVhdGVUcmFuc2FjdGlvblJlcXVlc3QubWQpIHwgIHwgW29wdGlvbmFsXSAKKip0cmF2ZWxfcnVsZV9tZXNzYWdlX2lkKiogfCAqKnN0cioqIHwgVGhlIElEIG9mIHRoZSB0cmF2ZWwgcnVsZSBtZXNzYWdlIGZyb20gYW55IHRyYXZlbCBydWxlIHByb3ZpZGVyLiBVc2VkIGZvciB0cmF2ZWwgcnVsZSBzdXBwb3J0aW5nIGZ1bmN0aW9uYWxpdHkgdG8gYXNzb2NpYXRlIHRyYW5zYWN0aW9ucyB3aXRoIGV4aXN0aW5nIHRyYXZlbCBydWxlIG1lc3NhZ2VzLiB8IFtvcHRpb25hbF0gCioqYXV0b19zdGFraW5nKiogfCAqKmJvb2wqKiB8IFRoaXMgZmVhdHVyZSBpcyBubyBsb25nZXIgc3VwcG9ydGVkLiB8IFtvcHRpb25hbF0gCioqbmV0d29ya19zdGFraW5nKiogfCBbKipUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrU3Rha2luZyoqXShUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrU3Rha2luZy5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmNwdV9zdGFraW5nKiogfCBbKipUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrU3Rha2luZyoqXShUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrU3Rha2luZy5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnVzZV9nYXNsZXNzKiogfCAqKmJvb2wqKiB8IC0gT3ZlcnJpZGUgdGhlIGRlZmF1bHQgZ2FzbGVzcyBjb25maWd1cmF0aW9uIGJ5IHNlbmRpbmcgdHJ1ZVxcZmFsc2UgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVxdWVzdCBpbXBvcnQgVHJhbnNhY3Rpb25SZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2FjdGlvblJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCnRyYW5zYWN0aW9uX3JlcXVlc3RfaW5zdGFuY2UgPSBUcmFuc2FjdGlvblJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhbnNhY3Rpb25SZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYW5zYWN0aW9uX3JlcXVlc3RfZGljdCA9IHRyYW5zYWN0aW9uX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zYWN0aW9uUmVxdWVzdCBmcm9tIGEgZGljdAp0cmFuc2FjdGlvbl9yZXF1ZXN0X2Zyb21fZGljdCA9IFRyYW5zYWN0aW9uUmVxdWVzdC5mcm9tX2RpY3QodHJhbnNhY3Rpb25fcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TransactionRequestAmount.md b/docs/TransactionRequestAmount.md index ba4bdea5..e21bef03 100644 --- a/docs/TransactionRequestAmount.md +++ b/docs/TransactionRequestAmount.md @@ -1,29 +1 @@ -# TransactionRequestAmount - -For `TRANSFER` operations, the requested amount to transfer, in the asset’s unit. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - -## Example - -```python -from fireblocks.models.transaction_request_amount import TransactionRequestAmount - -# TODO update the JSON string below -json = "{}" -# create an instance of TransactionRequestAmount from a JSON string -transaction_request_amount_instance = TransactionRequestAmount.from_json(json) -# print the JSON string representation of the object -print(TransactionRequestAmount.to_json()) - -# convert the object into a dict -transaction_request_amount_dict = transaction_request_amount_instance.to_dict() -# create an instance of TransactionRequestAmount from a dict -transaction_request_amount_from_dict = TransactionRequestAmount.from_dict(transaction_request_amount_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2FjdGlvblJlcXVlc3RBbW91bnQKCkZvciBgVFJBTlNGRVJgIG9wZXJhdGlvbnMsIHRoZSByZXF1ZXN0ZWQgYW1vdW50IHRvIHRyYW5zZmVyLCBpbiB0aGUgYXNzZXTigJlzIHVuaXQuIEZpcmVibG9ja3MgcmVjb21tZW5kcyB1c2luZyBhIG51bWVyaWMgc3RyaW5nIGZvciBhY2N1cmF0ZSBwcmVjaXNpb24uIEFsdGhvdWdoIGEgbnVtYmVyIGlucHV0IGV4aXN0cywgaXQgaXMgZGVwcmVjYXRlZC4KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlcXVlc3RfYW1vdW50IGltcG9ydCBUcmFuc2FjdGlvblJlcXVlc3RBbW91bnQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zYWN0aW9uUmVxdWVzdEFtb3VudCBmcm9tIGEgSlNPTiBzdHJpbmcKdHJhbnNhY3Rpb25fcmVxdWVzdF9hbW91bnRfaW5zdGFuY2UgPSBUcmFuc2FjdGlvblJlcXVlc3RBbW91bnQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhbnNhY3Rpb25SZXF1ZXN0QW1vdW50LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYW5zYWN0aW9uX3JlcXVlc3RfYW1vdW50X2RpY3QgPSB0cmFuc2FjdGlvbl9yZXF1ZXN0X2Ftb3VudF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNhY3Rpb25SZXF1ZXN0QW1vdW50IGZyb20gYSBkaWN0CnRyYW5zYWN0aW9uX3JlcXVlc3RfYW1vdW50X2Zyb21fZGljdCA9IFRyYW5zYWN0aW9uUmVxdWVzdEFtb3VudC5mcm9tX2RpY3QodHJhbnNhY3Rpb25fcmVxdWVzdF9hbW91bnRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TransactionRequestDestination.md b/docs/TransactionRequestDestination.md index 92ebdbc8..59b266a7 100644 --- a/docs/TransactionRequestDestination.md +++ b/docs/TransactionRequestDestination.md @@ -1,32 +1 @@ -# TransactionRequestDestination - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | **str** | | [optional] -**destination** | [**DestinationTransferPeerPath**](DestinationTransferPeerPath.md) | | [optional] -**travel_rule_message_id** | **str** | The ID of the travel rule message from any travel rule provider. Used for travel rule supporting functionality to associate transactions with existing travel rule messages. | [optional] -**customer_ref_id** | **str** | The ID for AML providers to associate the owner of funds with transactions. | [optional] - -## Example - -```python -from fireblocks.models.transaction_request_destination import TransactionRequestDestination - -# TODO update the JSON string below -json = "{}" -# create an instance of TransactionRequestDestination from a JSON string -transaction_request_destination_instance = TransactionRequestDestination.from_json(json) -# print the JSON string representation of the object -print(TransactionRequestDestination.to_json()) - -# convert the object into a dict -transaction_request_destination_dict = transaction_request_destination_instance.to_dict() -# create an instance of TransactionRequestDestination from a dict -transaction_request_destination_from_dict = TransactionRequestDestination.from_dict(transaction_request_destination_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2FjdGlvblJlcXVlc3REZXN0aW5hdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphbW91bnQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmRlc3RpbmF0aW9uKiogfCBbKipEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgqKl0oRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgdHJhdmVsIHJ1bGUgbWVzc2FnZSBmcm9tIGFueSB0cmF2ZWwgcnVsZSBwcm92aWRlci4gVXNlZCBmb3IgdHJhdmVsIHJ1bGUgc3VwcG9ydGluZyBmdW5jdGlvbmFsaXR5IHRvIGFzc29jaWF0ZSB0cmFuc2FjdGlvbnMgd2l0aCBleGlzdGluZyB0cmF2ZWwgcnVsZSBtZXNzYWdlcy4gfCBbb3B0aW9uYWxdIAoqKmN1c3RvbWVyX3JlZl9pZCoqIHwgKipzdHIqKiB8IFRoZSBJRCBmb3IgQU1MIHByb3ZpZGVycyB0byBhc3NvY2lhdGUgdGhlIG93bmVyIG9mIGZ1bmRzIHdpdGggdHJhbnNhY3Rpb25zLiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZXF1ZXN0X2Rlc3RpbmF0aW9uIGltcG9ydCBUcmFuc2FjdGlvblJlcXVlc3REZXN0aW5hdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNhY3Rpb25SZXF1ZXN0RGVzdGluYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCnRyYW5zYWN0aW9uX3JlcXVlc3RfZGVzdGluYXRpb25faW5zdGFuY2UgPSBUcmFuc2FjdGlvblJlcXVlc3REZXN0aW5hdGlvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmFuc2FjdGlvblJlcXVlc3REZXN0aW5hdGlvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmFuc2FjdGlvbl9yZXF1ZXN0X2Rlc3RpbmF0aW9uX2RpY3QgPSB0cmFuc2FjdGlvbl9yZXF1ZXN0X2Rlc3RpbmF0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2FjdGlvblJlcXVlc3REZXN0aW5hdGlvbiBmcm9tIGEgZGljdAp0cmFuc2FjdGlvbl9yZXF1ZXN0X2Rlc3RpbmF0aW9uX2Zyb21fZGljdCA9IFRyYW5zYWN0aW9uUmVxdWVzdERlc3RpbmF0aW9uLmZyb21fZGljdCh0cmFuc2FjdGlvbl9yZXF1ZXN0X2Rlc3RpbmF0aW9uX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TransactionRequestFee.md b/docs/TransactionRequestFee.md index c8fe342e..6d6bdb84 100644 --- a/docs/TransactionRequestFee.md +++ b/docs/TransactionRequestFee.md @@ -1,29 +1 @@ -# TransactionRequestFee - -For UTXO-based blockchains, the fee per bytes in the asset’s smallest unit (Satoshi, Latoshi, etc.). For Ripple, the fee for the transaction. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - -## Example - -```python -from fireblocks.models.transaction_request_fee import TransactionRequestFee - -# TODO update the JSON string below -json = "{}" -# create an instance of TransactionRequestFee from a JSON string -transaction_request_fee_instance = TransactionRequestFee.from_json(json) -# print the JSON string representation of the object -print(TransactionRequestFee.to_json()) - -# convert the object into a dict -transaction_request_fee_dict = transaction_request_fee_instance.to_dict() -# create an instance of TransactionRequestFee from a dict -transaction_request_fee_from_dict = TransactionRequestFee.from_dict(transaction_request_fee_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2FjdGlvblJlcXVlc3RGZWUKCkZvciBVVFhPLWJhc2VkIGJsb2NrY2hhaW5zLCB0aGUgZmVlIHBlciBieXRlcyBpbiB0aGUgYXNzZXTigJlzIHNtYWxsZXN0IHVuaXQgKFNhdG9zaGksIExhdG9zaGksIGV0Yy4pLiAgRm9yIFJpcHBsZSwgdGhlIGZlZSBmb3IgdGhlIHRyYW5zYWN0aW9uLiBGaXJlYmxvY2tzIHJlY29tbWVuZHMgdXNpbmcgYSBudW1lcmljIHN0cmluZyBmb3IgYWNjdXJhdGUgcHJlY2lzaW9uLiBBbHRob3VnaCBhIG51bWJlciBpbnB1dCBleGlzdHMsIGl0IGlzIGRlcHJlY2F0ZWQuCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZXF1ZXN0X2ZlZSBpbXBvcnQgVHJhbnNhY3Rpb25SZXF1ZXN0RmVlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2FjdGlvblJlcXVlc3RGZWUgZnJvbSBhIEpTT04gc3RyaW5nCnRyYW5zYWN0aW9uX3JlcXVlc3RfZmVlX2luc3RhbmNlID0gVHJhbnNhY3Rpb25SZXF1ZXN0RmVlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRyYW5zYWN0aW9uUmVxdWVzdEZlZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmFuc2FjdGlvbl9yZXF1ZXN0X2ZlZV9kaWN0ID0gdHJhbnNhY3Rpb25fcmVxdWVzdF9mZWVfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zYWN0aW9uUmVxdWVzdEZlZSBmcm9tIGEgZGljdAp0cmFuc2FjdGlvbl9yZXF1ZXN0X2ZlZV9mcm9tX2RpY3QgPSBUcmFuc2FjdGlvblJlcXVlc3RGZWUuZnJvbV9kaWN0KHRyYW5zYWN0aW9uX3JlcXVlc3RfZmVlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TransactionRequestGasLimit.md b/docs/TransactionRequestGasLimit.md index 70e79b54..598963df 100644 --- a/docs/TransactionRequestGasLimit.md +++ b/docs/TransactionRequestGasLimit.md @@ -1,29 +1 @@ -# TransactionRequestGasLimit - -For EVM-based blockchains only. Units of gas required to process the transaction. Note: Only two of the three arguments can be specified in a single transaction: `gasLimit`, `gasPrice` and `networkFee`. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - -## Example - -```python -from fireblocks.models.transaction_request_gas_limit import TransactionRequestGasLimit - -# TODO update the JSON string below -json = "{}" -# create an instance of TransactionRequestGasLimit from a JSON string -transaction_request_gas_limit_instance = TransactionRequestGasLimit.from_json(json) -# print the JSON string representation of the object -print(TransactionRequestGasLimit.to_json()) - -# convert the object into a dict -transaction_request_gas_limit_dict = transaction_request_gas_limit_instance.to_dict() -# create an instance of TransactionRequestGasLimit from a dict -transaction_request_gas_limit_from_dict = TransactionRequestGasLimit.from_dict(transaction_request_gas_limit_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2FjdGlvblJlcXVlc3RHYXNMaW1pdAoKRm9yIEVWTS1iYXNlZCBibG9ja2NoYWlucyBvbmx5LiBVbml0cyBvZiBnYXMgcmVxdWlyZWQgdG8gcHJvY2VzcyB0aGUgdHJhbnNhY3Rpb24uIE5vdGU6IE9ubHkgdHdvIG9mIHRoZSB0aHJlZSBhcmd1bWVudHMgY2FuIGJlIHNwZWNpZmllZCBpbiBhIHNpbmdsZSB0cmFuc2FjdGlvbjogYGdhc0xpbWl0YCwgYGdhc1ByaWNlYCBhbmQgYG5ldHdvcmtGZWVgLiBGaXJlYmxvY2tzIHJlY29tbWVuZHMgdXNpbmcgYSBudW1lcmljIHN0cmluZyBmb3IgYWNjdXJhdGUgcHJlY2lzaW9uLiBBbHRob3VnaCBhIG51bWJlciBpbnB1dCBleGlzdHMsIGl0IGlzIGRlcHJlY2F0ZWQuCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZXF1ZXN0X2dhc19saW1pdCBpbXBvcnQgVHJhbnNhY3Rpb25SZXF1ZXN0R2FzTGltaXQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zYWN0aW9uUmVxdWVzdEdhc0xpbWl0IGZyb20gYSBKU09OIHN0cmluZwp0cmFuc2FjdGlvbl9yZXF1ZXN0X2dhc19saW1pdF9pbnN0YW5jZSA9IFRyYW5zYWN0aW9uUmVxdWVzdEdhc0xpbWl0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRyYW5zYWN0aW9uUmVxdWVzdEdhc0xpbWl0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYW5zYWN0aW9uX3JlcXVlc3RfZ2FzX2xpbWl0X2RpY3QgPSB0cmFuc2FjdGlvbl9yZXF1ZXN0X2dhc19saW1pdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNhY3Rpb25SZXF1ZXN0R2FzTGltaXQgZnJvbSBhIGRpY3QKdHJhbnNhY3Rpb25fcmVxdWVzdF9nYXNfbGltaXRfZnJvbV9kaWN0ID0gVHJhbnNhY3Rpb25SZXF1ZXN0R2FzTGltaXQuZnJvbV9kaWN0KHRyYW5zYWN0aW9uX3JlcXVlc3RfZ2FzX2xpbWl0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TransactionRequestGasPrice.md b/docs/TransactionRequestGasPrice.md index 90b8fa93..7b89621e 100644 --- a/docs/TransactionRequestGasPrice.md +++ b/docs/TransactionRequestGasPrice.md @@ -1,29 +1 @@ -# TransactionRequestGasPrice - -For non-EIP-1559, EVM-based transactions. Price per gas unit (in Ethereum this is specified in Gwei). Note: Only two of the three arguments can be specified in a single transaction: `gasLimit`, `gasPrice` and `networkFee`. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - -## Example - -```python -from fireblocks.models.transaction_request_gas_price import TransactionRequestGasPrice - -# TODO update the JSON string below -json = "{}" -# create an instance of TransactionRequestGasPrice from a JSON string -transaction_request_gas_price_instance = TransactionRequestGasPrice.from_json(json) -# print the JSON string representation of the object -print(TransactionRequestGasPrice.to_json()) - -# convert the object into a dict -transaction_request_gas_price_dict = transaction_request_gas_price_instance.to_dict() -# create an instance of TransactionRequestGasPrice from a dict -transaction_request_gas_price_from_dict = TransactionRequestGasPrice.from_dict(transaction_request_gas_price_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2FjdGlvblJlcXVlc3RHYXNQcmljZQoKRm9yIG5vbi1FSVAtMTU1OSwgRVZNLWJhc2VkIHRyYW5zYWN0aW9ucy4gUHJpY2UgcGVyIGdhcyB1bml0IChpbiBFdGhlcmV1bSB0aGlzIGlzIHNwZWNpZmllZCBpbiBHd2VpKS4gIE5vdGU6IE9ubHkgdHdvIG9mIHRoZSB0aHJlZSBhcmd1bWVudHMgY2FuIGJlIHNwZWNpZmllZCBpbiBhIHNpbmdsZSB0cmFuc2FjdGlvbjogYGdhc0xpbWl0YCwgYGdhc1ByaWNlYCBhbmQgYG5ldHdvcmtGZWVgLiBGaXJlYmxvY2tzIHJlY29tbWVuZHMgdXNpbmcgYSBudW1lcmljIHN0cmluZyBmb3IgYWNjdXJhdGUgcHJlY2lzaW9uLiAgQWx0aG91Z2ggYSBudW1iZXIgaW5wdXQgZXhpc3RzLCBpdCBpcyBkZXByZWNhdGVkLgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVxdWVzdF9nYXNfcHJpY2UgaW1wb3J0IFRyYW5zYWN0aW9uUmVxdWVzdEdhc1ByaWNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2FjdGlvblJlcXVlc3RHYXNQcmljZSBmcm9tIGEgSlNPTiBzdHJpbmcKdHJhbnNhY3Rpb25fcmVxdWVzdF9nYXNfcHJpY2VfaW5zdGFuY2UgPSBUcmFuc2FjdGlvblJlcXVlc3RHYXNQcmljZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmFuc2FjdGlvblJlcXVlc3RHYXNQcmljZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmFuc2FjdGlvbl9yZXF1ZXN0X2dhc19wcmljZV9kaWN0ID0gdHJhbnNhY3Rpb25fcmVxdWVzdF9nYXNfcHJpY2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zYWN0aW9uUmVxdWVzdEdhc1ByaWNlIGZyb20gYSBkaWN0CnRyYW5zYWN0aW9uX3JlcXVlc3RfZ2FzX3ByaWNlX2Zyb21fZGljdCA9IFRyYW5zYWN0aW9uUmVxdWVzdEdhc1ByaWNlLmZyb21fZGljdCh0cmFuc2FjdGlvbl9yZXF1ZXN0X2dhc19wcmljZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TransactionRequestNetworkFee.md b/docs/TransactionRequestNetworkFee.md index a56f0837..477c24cf 100644 --- a/docs/TransactionRequestNetworkFee.md +++ b/docs/TransactionRequestNetworkFee.md @@ -1,29 +1 @@ -# TransactionRequestNetworkFee - -For EVM-based blockchains only. The total transaction fee in the blockchain’s largest unit. Note: Only two of the three arguments can be specified in a single transaction: `gasLimit`, `gasPrice` and `networkFee`. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated. - The transaction blockchain fee. - For Ethereum, you can't pass gasPrice, gasLimit and networkFee all together. - A numeric value representation is required. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - -## Example - -```python -from fireblocks.models.transaction_request_network_fee import TransactionRequestNetworkFee - -# TODO update the JSON string below -json = "{}" -# create an instance of TransactionRequestNetworkFee from a JSON string -transaction_request_network_fee_instance = TransactionRequestNetworkFee.from_json(json) -# print the JSON string representation of the object -print(TransactionRequestNetworkFee.to_json()) - -# convert the object into a dict -transaction_request_network_fee_dict = transaction_request_network_fee_instance.to_dict() -# create an instance of TransactionRequestNetworkFee from a dict -transaction_request_network_fee_from_dict = TransactionRequestNetworkFee.from_dict(transaction_request_network_fee_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrRmVlCgpGb3IgRVZNLWJhc2VkIGJsb2NrY2hhaW5zIG9ubHkuIFRoZSB0b3RhbCB0cmFuc2FjdGlvbiBmZWUgaW4gdGhlIGJsb2NrY2hhaW7igJlzIGxhcmdlc3QgdW5pdC4gTm90ZTogT25seSB0d28gb2YgdGhlIHRocmVlIGFyZ3VtZW50cyBjYW4gYmUgc3BlY2lmaWVkIGluIGEgc2luZ2xlIHRyYW5zYWN0aW9uOiBgZ2FzTGltaXRgLCBgZ2FzUHJpY2VgIGFuZCBgbmV0d29ya0ZlZWAuIEZpcmVibG9ja3MgcmVjb21tZW5kcyB1c2luZyBhIG51bWVyaWMgc3RyaW5nIGZvciBhY2N1cmF0ZSBwcmVjaXNpb24uIEFsdGhvdWdoIGEgbnVtYmVyIGlucHV0IGV4aXN0cywgaXQgaXMgZGVwcmVjYXRlZC4gLSBUaGUgdHJhbnNhY3Rpb24gYmxvY2tjaGFpbiBmZWUuIC0gRm9yIEV0aGVyZXVtLCB5b3UgY2FuJ3QgcGFzcyBnYXNQcmljZSwgZ2FzTGltaXQgYW5kIG5ldHdvcmtGZWUgYWxsIHRvZ2V0aGVyLiAtIEEgbnVtZXJpYyB2YWx1ZSByZXByZXNlbnRhdGlvbiBpcyByZXF1aXJlZC4KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlcXVlc3RfbmV0d29ya19mZWUgaW1wb3J0IFRyYW5zYWN0aW9uUmVxdWVzdE5ldHdvcmtGZWUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zYWN0aW9uUmVxdWVzdE5ldHdvcmtGZWUgZnJvbSBhIEpTT04gc3RyaW5nCnRyYW5zYWN0aW9uX3JlcXVlc3RfbmV0d29ya19mZWVfaW5zdGFuY2UgPSBUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrRmVlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRyYW5zYWN0aW9uUmVxdWVzdE5ldHdvcmtGZWUudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJhbnNhY3Rpb25fcmVxdWVzdF9uZXR3b3JrX2ZlZV9kaWN0ID0gdHJhbnNhY3Rpb25fcmVxdWVzdF9uZXR3b3JrX2ZlZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya0ZlZSBmcm9tIGEgZGljdAp0cmFuc2FjdGlvbl9yZXF1ZXN0X25ldHdvcmtfZmVlX2Zyb21fZGljdCA9IFRyYW5zYWN0aW9uUmVxdWVzdE5ldHdvcmtGZWUuZnJvbV9kaWN0KHRyYW5zYWN0aW9uX3JlcXVlc3RfbmV0d29ya19mZWVfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TransactionRequestNetworkStaking.md b/docs/TransactionRequestNetworkStaking.md index f3bcabcf..b8cc214f 100644 --- a/docs/TransactionRequestNetworkStaking.md +++ b/docs/TransactionRequestNetworkStaking.md @@ -1,29 +1 @@ -# TransactionRequestNetworkStaking - -This feature is no longer supported. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - -## Example - -```python -from fireblocks.models.transaction_request_network_staking import TransactionRequestNetworkStaking - -# TODO update the JSON string below -json = "{}" -# create an instance of TransactionRequestNetworkStaking from a JSON string -transaction_request_network_staking_instance = TransactionRequestNetworkStaking.from_json(json) -# print the JSON string representation of the object -print(TransactionRequestNetworkStaking.to_json()) - -# convert the object into a dict -transaction_request_network_staking_dict = transaction_request_network_staking_instance.to_dict() -# create an instance of TransactionRequestNetworkStaking from a dict -transaction_request_network_staking_from_dict = TransactionRequestNetworkStaking.from_dict(transaction_request_network_staking_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrU3Rha2luZwoKVGhpcyBmZWF0dXJlIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZXF1ZXN0X25ldHdvcmtfc3Rha2luZyBpbXBvcnQgVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya1N0YWtpbmcKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zYWN0aW9uUmVxdWVzdE5ldHdvcmtTdGFraW5nIGZyb20gYSBKU09OIHN0cmluZwp0cmFuc2FjdGlvbl9yZXF1ZXN0X25ldHdvcmtfc3Rha2luZ19pbnN0YW5jZSA9IFRyYW5zYWN0aW9uUmVxdWVzdE5ldHdvcmtTdGFraW5nLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRyYW5zYWN0aW9uUmVxdWVzdE5ldHdvcmtTdGFraW5nLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYW5zYWN0aW9uX3JlcXVlc3RfbmV0d29ya19zdGFraW5nX2RpY3QgPSB0cmFuc2FjdGlvbl9yZXF1ZXN0X25ldHdvcmtfc3Rha2luZ19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya1N0YWtpbmcgZnJvbSBhIGRpY3QKdHJhbnNhY3Rpb25fcmVxdWVzdF9uZXR3b3JrX3N0YWtpbmdfZnJvbV9kaWN0ID0gVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya1N0YWtpbmcuZnJvbV9kaWN0KHRyYW5zYWN0aW9uX3JlcXVlc3RfbmV0d29ya19zdGFraW5nX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TransactionRequestPriorityFee.md b/docs/TransactionRequestPriorityFee.md index 5413825b..515eae5d 100644 --- a/docs/TransactionRequestPriorityFee.md +++ b/docs/TransactionRequestPriorityFee.md @@ -1,29 +1 @@ -# TransactionRequestPriorityFee - -For Ethereum-based blockchains only, the fee for EIP-1559 transaction pricing mechanism. Value is in Gwei. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - -## Example - -```python -from fireblocks.models.transaction_request_priority_fee import TransactionRequestPriorityFee - -# TODO update the JSON string below -json = "{}" -# create an instance of TransactionRequestPriorityFee from a JSON string -transaction_request_priority_fee_instance = TransactionRequestPriorityFee.from_json(json) -# print the JSON string representation of the object -print(TransactionRequestPriorityFee.to_json()) - -# convert the object into a dict -transaction_request_priority_fee_dict = transaction_request_priority_fee_instance.to_dict() -# create an instance of TransactionRequestPriorityFee from a dict -transaction_request_priority_fee_from_dict = TransactionRequestPriorityFee.from_dict(transaction_request_priority_fee_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2FjdGlvblJlcXVlc3RQcmlvcml0eUZlZQoKRm9yIEV0aGVyZXVtLWJhc2VkIGJsb2NrY2hhaW5zIG9ubHksIHRoZSBmZWUgZm9yIEVJUC0xNTU5IHRyYW5zYWN0aW9uIHByaWNpbmcgbWVjaGFuaXNtLiBWYWx1ZSBpcyBpbiBHd2VpLiAgRmlyZWJsb2NrcyByZWNvbW1lbmRzIHVzaW5nIGEgbnVtZXJpYyBzdHJpbmcgZm9yIGFjY3VyYXRlIHByZWNpc2lvbi4gQWx0aG91Z2ggYSBudW1iZXIgaW5wdXQgZXhpc3RzLCBpdCBpcyBkZXByZWNhdGVkLgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVxdWVzdF9wcmlvcml0eV9mZWUgaW1wb3J0IFRyYW5zYWN0aW9uUmVxdWVzdFByaW9yaXR5RmVlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2FjdGlvblJlcXVlc3RQcmlvcml0eUZlZSBmcm9tIGEgSlNPTiBzdHJpbmcKdHJhbnNhY3Rpb25fcmVxdWVzdF9wcmlvcml0eV9mZWVfaW5zdGFuY2UgPSBUcmFuc2FjdGlvblJlcXVlc3RQcmlvcml0eUZlZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmFuc2FjdGlvblJlcXVlc3RQcmlvcml0eUZlZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmFuc2FjdGlvbl9yZXF1ZXN0X3ByaW9yaXR5X2ZlZV9kaWN0ID0gdHJhbnNhY3Rpb25fcmVxdWVzdF9wcmlvcml0eV9mZWVfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zYWN0aW9uUmVxdWVzdFByaW9yaXR5RmVlIGZyb20gYSBkaWN0CnRyYW5zYWN0aW9uX3JlcXVlc3RfcHJpb3JpdHlfZmVlX2Zyb21fZGljdCA9IFRyYW5zYWN0aW9uUmVxdWVzdFByaW9yaXR5RmVlLmZyb21fZGljdCh0cmFuc2FjdGlvbl9yZXF1ZXN0X3ByaW9yaXR5X2ZlZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TransactionResponse.md b/docs/TransactionResponse.md index 201a8708..08f075ec 100644 --- a/docs/TransactionResponse.md +++ b/docs/TransactionResponse.md @@ -1,87 +1 @@ -# TransactionResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | ID of the transaction. | [optional] -**external_tx_id** | **str** | Unique transaction ID provided by the user. Fireblocks highly recommends setting an `externalTxId` for every transaction created, to avoid submitting the same transaction twice. | [optional] -**status** | **str** | The primary status of the transaction. For details, see [Primary transaction statuses](https://developers.fireblocks.com/reference/primary-transaction-statuses). | [optional] -**sub_status** | **str** | See [Transaction substatuses](https://developers.fireblocks.com/reference/transaction-substatuses) for the list of transaction sub statuses. | [optional] -**tx_hash** | **str** | The hash of the transaction on the blockchain. * This parameter exists if at least one of the following conditions is met: 1. The transaction’s source type is `UNKNOWN`, `WHITELISTED_ADDRESS`, `NETWORK_CONNECTION`, `ONE_TIME_ADDRESS`, `FIAT_ACCOUNT` or `GAS_STATION`. 2. The transaction’s source type is `VAULT` and the status is either: `CONFIRMING`, `COMPLETED`, or was in any of these statuses prior to changing to `FAILED` or `REJECTED`. In some instances, transactions in status `BROADCASTING` will include the txHash as well. 3. The transaction’s source type is `EXCHANGE_ACCOUNT` and the transaction’s destination type is `VAULT`, and the status is either: `CONFIRMING`, `COMPLETED`, or was in any of these status prior to changing to `FAILED`. * In addition, the following conditions must be met: 1. The asset is a crypto asset (not fiat). 2. The transaction operation is not RAW or `TYPED_MESSAGE`. | [optional] -**operation** | [**GetTransactionOperation**](GetTransactionOperation.md) | | [optional] -**note** | **str** | Custom note, not sent to the blockchain, that describes the transaction at your Fireblocks workspace. | [optional] -**asset_id** | **str** | The ID of the asset to transfer, for `TRANSFER`, `MINT`, `BURN`, `ENABLE_ASSET`,`STAKE` ,`UNSTAKE` or `WITHDRAW` operations. [See the list of supported assets and their IDs on Fireblocks.](https://developers.fireblocks.com/reference/get_supported-assets) | [optional] -**asset_type** | **str** | Type classification of the asset | [optional] -**source** | [**SourceTransferPeerPathResponse**](SourceTransferPeerPathResponse.md) | | [optional] -**source_address** | **str** | For account based assets only, the source address of the transaction. **Note:** If the status is `CONFIRMING`, `COMPLETED`, or has been `CONFIRMING`; then moved forward to `FAILED` or `REJECTED`, then this parameter will contain the source address. In any other case, this parameter will be empty. | [optional] -**tag** | **str** | Source address tag for XRP, used as memo for EOS/XLM, or Bank Transfer Description for the fiat provider BLINC (by BCB Group). | [optional] -**destination** | [**DestinationTransferPeerPathResponse**](DestinationTransferPeerPathResponse.md) | | [optional] -**destinations** | [**List[TransactionResponseDestination]**](TransactionResponseDestination.md) | The transaction’s destinations. **Note:** In case the transaction is sent to a single destination, the `destination` parameter is used instead of this. | [optional] -**destination_address** | **str** | Address where the asset were transferred. Notes: - For [Multi destination transactions](https://support.fireblocks.io/hc/en-us/articles/360018447980-Multi-destination-transactions), this parameter will be empty. In this case, you should refer to the destinations field. - If the status is `CONFIRMING`, `COMPLETED`, or has been `CONFIRMING`; then moved forward to `FAILED` or `REJECTED`, then this parameter will contain the destination address. In any other case, this parameter will be empty. | [optional] -**destination_address_description** | **str** | Description of the address. | [optional] -**destination_tag** | **str** | Destination address tag for XRP, used as memo for EOS/XLM, or Bank Transfer Description for the fiat provider BLINC (by BCB Group). | [optional] -**contract_call_decoded_data** | [**TransactionResponseContractCallDecodedData**](TransactionResponseContractCallDecodedData.md) | | [optional] -**amount_info** | [**AmountInfo**](AmountInfo.md) | | [optional] -**treat_as_gross_amount** | **bool** | For transactions initiated via this Fireblocks workspace, when set to `true`, the fee is deducted from the requested amount. **Note**: This parameter can only be considered if a transaction's asset is a base asset, such as ETH or MATIC. If the asset can't be used for transaction fees, like USDC, this parameter is ignored and the fee is deducted from the relevant base asset wallet in the source account. | [optional] -**fee_info** | [**FeeInfo**](FeeInfo.md) | | [optional] -**fee_currency** | **str** | The asset which was withdrawn to pay the transaction fee, for example ETH for EVM-based blockchains, BTC for Tether Omni. | [optional] -**network_records** | [**List[NetworkRecord]**](NetworkRecord.md) | In case a single transaction resulted with multiple transfers, for example a result of a contract call, then this parameter specifies each transfer that took place on the blockchain. In case of a single transfer transaction, this parameter is empty. | [optional] -**created_at** | **float** | The transaction’s creation date and time, in unix timestamp. | [optional] -**last_updated** | **float** | The transaction’s last update date and time, in unix timestamp. | [optional] -**created_by** | **str** | User ID of the initiator of the transaction. | [optional] -**signed_by** | **List[str]** | User ID’s of the signers of the transaction. | [optional] -**rejected_by** | **str** | User ID of the user that rejected the transaction (in case it was rejected). | [optional] -**authorization_info** | [**AuthorizationInfo**](AuthorizationInfo.md) | | [optional] -**exchange_tx_id** | **str** | If the transaction originated from an exchange, this is the ID of this transaction at the exchange. | [optional] -**customer_ref_id** | **str** | The ID for AML providers to associate the owner of funds with transactions. | [optional] -**travel_rule_message_id** | **str** | The ID of the travel rule message from any travel rule provider. Used for travel rule supporting functionality to associate transactions with existing travel rule messages. | [optional] -**aml_screening_result** | [**AmlScreeningResult**](AmlScreeningResult.md) | | [optional] -**compliance_results** | [**ComplianceResults**](ComplianceResults.md) | | [optional] -**not_broadcast_by_fireblocks** | **bool** | Indicates the transaction was not broadcast by Fireblocks | [optional] -**dapp_url** | **str** | DApp URL for Web3 transactions | [optional] -**gas_limit** | **str** | Gas limit for EVM-based blockchain transactions | [optional] -**blockchain_index** | **str** | Blockchain-specific index or identifier for the transaction | [optional] -**paid_rent** | **str** | Solana rent payment amount | [optional] -**extra_parameters** | [**ExtraParameters**](ExtraParameters.md) | | [optional] -**signed_messages** | [**List[SignedMessage]**](SignedMessage.md) | | [optional] -**num_of_confirmations** | **float** | The number of confirmations of the transaction. The number will increase until the transaction will be considered completed according to the confirmation policy. | [optional] -**block_info** | [**BlockInfo**](BlockInfo.md) | | [optional] -**index** | **float** | For UTXO based assets this is the vOut, for Ethereum based, this is the index of the event of the contract call. **Note:** This field is not returned if a transaction uses the `destinations` object with more than one value. | [optional] -**reward_info** | [**RewardInfo**](RewardInfo.md) | | [optional] -**fee_payer_info** | [**FeePayerInfo**](FeePayerInfo.md) | | [optional] -**system_messages** | [**List[SystemMessageInfo]**](SystemMessageInfo.md) | | [optional] -**address_type** | **str** | | [optional] -**requested_amount** | **float** | The amount requested by the user. Deprecated - please use the `amountInfo` field for accuracy. | [optional] -**amount** | **float** | If the transfer is a withdrawal from an exchange, the actual amount that was requested to be transferred. Otherwise, the requested amount. Deprecated - please use the `amountInfo` field for accuracy. | [optional] -**net_amount** | **float** | The net amount of the transaction, after fee deduction. Deprecated - please use the `amountInfo` field for accuracy. | [optional] -**amount_usd** | **float** | The USD value of the requested amount. Deprecated - please use the `amountInfo` field for accuracy. | [optional] -**service_fee** | **float** | The total fee deducted by the exchange from the actual requested amount (`serviceFee` = `amount` - `netAmount`). Deprecated - please use the `feeInfo` field for accuracy. | [optional] -**fee** | **float** | Deprecated - please use the `feeInfo` field for accuracy. | [optional] -**network_fee** | **float** | The fee paid to the network. Deprecated - please use the `feeInfo` field for accuracy. | [optional] -**error_description** | **str** | The transaction's revert reason. This field will be returned when `subStatus` = 'SMART_CONTRACT_EXECUTION_FAILED'. | [optional] -**replaced_tx_hash** | **str** | if the transaction is a replace by fee (RBF) transaction, this is the hash of the transsaction that was replaced | [optional] -**nonce** | **str** | blockchain nonce for the transaction | [optional] -**blockchain_info** | **object** | A JSON used to store additional data that is blockchain-specific. | [optional] - -## Example - -```python -from fireblocks.models.transaction_response import TransactionResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TransactionResponse from a JSON string -transaction_response_instance = TransactionResponse.from_json(json) -# print the JSON string representation of the object -print(TransactionResponse.to_json()) - -# convert the object into a dict -transaction_response_dict = transaction_response_instance.to_dict() -# create an instance of TransactionResponse from a dict -transaction_response_from_dict = TransactionResponse.from_dict(transaction_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2FjdGlvblJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgSUQgb2YgdGhlIHRyYW5zYWN0aW9uLiB8IFtvcHRpb25hbF0gCioqZXh0ZXJuYWxfdHhfaWQqKiB8ICoqc3RyKiogfCBVbmlxdWUgdHJhbnNhY3Rpb24gSUQgcHJvdmlkZWQgYnkgdGhlIHVzZXIuIEZpcmVibG9ja3MgaGlnaGx5IHJlY29tbWVuZHMgc2V0dGluZyBhbiAmI3g2MDtleHRlcm5hbFR4SWQmI3g2MDsgZm9yIGV2ZXJ5IHRyYW5zYWN0aW9uIGNyZWF0ZWQsIHRvIGF2b2lkIHN1Ym1pdHRpbmcgdGhlIHNhbWUgdHJhbnNhY3Rpb24gdHdpY2UuIHwgW29wdGlvbmFsXSAKKipzdGF0dXMqKiB8ICoqc3RyKiogfCBUaGUgcHJpbWFyeSBzdGF0dXMgb2YgdGhlIHRyYW5zYWN0aW9uLiBGb3IgZGV0YWlscywgc2VlIFtQcmltYXJ5IHRyYW5zYWN0aW9uIHN0YXR1c2VzXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL3ByaW1hcnktdHJhbnNhY3Rpb24tc3RhdHVzZXMpLiB8IFtvcHRpb25hbF0gCioqc3ViX3N0YXR1cyoqIHwgKipzdHIqKiB8IFNlZSBbVHJhbnNhY3Rpb24gc3Vic3RhdHVzZXNdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9yZWZlcmVuY2UvdHJhbnNhY3Rpb24tc3Vic3RhdHVzZXMpIGZvciB0aGUgbGlzdCBvZiB0cmFuc2FjdGlvbiBzdWIgc3RhdHVzZXMuIHwgW29wdGlvbmFsXSAKKip0eF9oYXNoKiogfCAqKnN0cioqIHwgVGhlIGhhc2ggb2YgdGhlIHRyYW5zYWN0aW9uIG9uIHRoZSBibG9ja2NoYWluLiAgKiBUaGlzIHBhcmFtZXRlciBleGlzdHMgaWYgYXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBpcyBtZXQ6ICAgICAgIDEuIFRoZSB0cmFuc2FjdGlvbuKAmXMgc291cmNlIHR5cGUgaXMgJiN4NjA7VU5LTk9XTiYjeDYwOywgJiN4NjA7V0hJVEVMSVNURURfQUREUkVTUyYjeDYwOywgJiN4NjA7TkVUV09SS19DT05ORUNUSU9OJiN4NjA7LCAmI3g2MDtPTkVfVElNRV9BRERSRVNTJiN4NjA7LCAmI3g2MDtGSUFUX0FDQ09VTlQmI3g2MDsgb3IgJiN4NjA7R0FTX1NUQVRJT04mI3g2MDsuICAgICAgIDIuIFRoZSB0cmFuc2FjdGlvbuKAmXMgc291cmNlIHR5cGUgaXMgJiN4NjA7VkFVTFQmI3g2MDsgYW5kIHRoZSBzdGF0dXMgaXMgZWl0aGVyOiAmI3g2MDtDT05GSVJNSU5HJiN4NjA7LCAmI3g2MDtDT01QTEVURUQmI3g2MDssIG9yIHdhcyBpbiBhbnkgb2YgdGhlc2Ugc3RhdHVzZXMgcHJpb3IgdG8gY2hhbmdpbmcgdG8gJiN4NjA7RkFJTEVEJiN4NjA7IG9yICYjeDYwO1JFSkVDVEVEJiN4NjA7LiBJbiBzb21lIGluc3RhbmNlcywgdHJhbnNhY3Rpb25zIGluIHN0YXR1cyAmI3g2MDtCUk9BRENBU1RJTkcmI3g2MDsgd2lsbCBpbmNsdWRlIHRoZSB0eEhhc2ggYXMgd2VsbC4gICAgICAgMy4gVGhlIHRyYW5zYWN0aW9u4oCZcyBzb3VyY2UgdHlwZSBpcyAmI3g2MDtFWENIQU5HRV9BQ0NPVU5UJiN4NjA7IGFuZCB0aGUgdHJhbnNhY3Rpb27igJlzIGRlc3RpbmF0aW9uIHR5cGUgaXMgJiN4NjA7VkFVTFQmI3g2MDssIGFuZCB0aGUgc3RhdHVzIGlzIGVpdGhlcjogJiN4NjA7Q09ORklSTUlORyYjeDYwOywgJiN4NjA7Q09NUExFVEVEJiN4NjA7LCBvciB3YXMgaW4gYW55IG9mIHRoZXNlIHN0YXR1cyBwcmlvciB0byBjaGFuZ2luZyB0byAmI3g2MDtGQUlMRUQmI3g2MDsuICAgKiBJbiBhZGRpdGlvbiwgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIG11c3QgYmUgbWV0OiAgICAgIDEuIFRoZSBhc3NldCBpcyBhIGNyeXB0byBhc3NldCAobm90IGZpYXQpLiAgICAgIDIuIFRoZSB0cmFuc2FjdGlvbiBvcGVyYXRpb24gaXMgbm90IFJBVyBvciAmI3g2MDtUWVBFRF9NRVNTQUdFJiN4NjA7LiB8IFtvcHRpb25hbF0gCioqb3BlcmF0aW9uKiogfCBbKipHZXRUcmFuc2FjdGlvbk9wZXJhdGlvbioqXShHZXRUcmFuc2FjdGlvbk9wZXJhdGlvbi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKm5vdGUqKiB8ICoqc3RyKiogfCBDdXN0b20gbm90ZSwgbm90IHNlbnQgdG8gdGhlIGJsb2NrY2hhaW4sIHRoYXQgZGVzY3JpYmVzIHRoZSB0cmFuc2FjdGlvbiBhdCB5b3VyIEZpcmVibG9ja3Mgd29ya3NwYWNlLiB8IFtvcHRpb25hbF0gCioqYXNzZXRfaWQqKiB8ICoqc3RyKiogfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIHRyYW5zZmVyLCBmb3IgJiN4NjA7VFJBTlNGRVImI3g2MDssICYjeDYwO01JTlQmI3g2MDssICYjeDYwO0JVUk4mI3g2MDssICYjeDYwO0VOQUJMRV9BU1NFVCYjeDYwOywmI3g2MDtTVEFLRSYjeDYwOyAsJiN4NjA7VU5TVEFLRSYjeDYwOyBvciAmI3g2MDtXSVRIRFJBVyYjeDYwOyBvcGVyYXRpb25zLiBbU2VlIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBhc3NldHMgYW5kIHRoZWlyIElEcyBvbiBGaXJlYmxvY2tzLl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS9nZXRfc3VwcG9ydGVkLWFzc2V0cykgfCBbb3B0aW9uYWxdIAoqKmFzc2V0X3R5cGUqKiB8ICoqc3RyKiogfCBUeXBlIGNsYXNzaWZpY2F0aW9uIG9mIHRoZSBhc3NldCB8IFtvcHRpb25hbF0gCioqc291cmNlKiogfCBbKipTb3VyY2VUcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UqKl0oU291cmNlVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc291cmNlX2FkZHJlc3MqKiB8ICoqc3RyKiogfCBGb3IgYWNjb3VudCBiYXNlZCBhc3NldHMgb25seSwgdGhlIHNvdXJjZSBhZGRyZXNzIG9mIHRoZSB0cmFuc2FjdGlvbi4gKipOb3RlOioqIElmIHRoZSBzdGF0dXMgaXMgJiN4NjA7Q09ORklSTUlORyYjeDYwOywgJiN4NjA7Q09NUExFVEVEJiN4NjA7LCBvciBoYXMgYmVlbiAmI3g2MDtDT05GSVJNSU5HJiN4NjA7OyB0aGVuIG1vdmVkIGZvcndhcmQgdG8gJiN4NjA7RkFJTEVEJiN4NjA7IG9yICYjeDYwO1JFSkVDVEVEJiN4NjA7LCB0aGVuIHRoaXMgcGFyYW1ldGVyIHdpbGwgY29udGFpbiB0aGUgc291cmNlIGFkZHJlc3MuIEluIGFueSBvdGhlciBjYXNlLCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIGVtcHR5LiB8IFtvcHRpb25hbF0gCioqdGFnKiogfCAqKnN0cioqIHwgU291cmNlIGFkZHJlc3MgdGFnIGZvciBYUlAsIHVzZWQgYXMgbWVtbyBmb3IgRU9TL1hMTSwgb3IgQmFuayBUcmFuc2ZlciBEZXNjcmlwdGlvbiBmb3IgdGhlIGZpYXQgcHJvdmlkZXIgQkxJTkMgKGJ5IEJDQiBHcm91cCkuIHwgW29wdGlvbmFsXSAKKipkZXN0aW5hdGlvbioqIHwgWyoqRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UqKl0oRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UubWQpIHwgIHwgW29wdGlvbmFsXSAKKipkZXN0aW5hdGlvbnMqKiB8IFsqKkxpc3RbVHJhbnNhY3Rpb25SZXNwb25zZURlc3RpbmF0aW9uXSoqXShUcmFuc2FjdGlvblJlc3BvbnNlRGVzdGluYXRpb24ubWQpIHwgVGhlIHRyYW5zYWN0aW9u4oCZcyBkZXN0aW5hdGlvbnMuICoqTm90ZToqKiBJbiBjYXNlIHRoZSB0cmFuc2FjdGlvbiBpcyBzZW50IHRvIGEgc2luZ2xlIGRlc3RpbmF0aW9uLCB0aGUgJiN4NjA7ZGVzdGluYXRpb24mI3g2MDsgcGFyYW1ldGVyIGlzIHVzZWQgaW5zdGVhZCBvZiB0aGlzLiB8IFtvcHRpb25hbF0gCioqZGVzdGluYXRpb25fYWRkcmVzcyoqIHwgKipzdHIqKiB8IEFkZHJlc3Mgd2hlcmUgdGhlIGFzc2V0IHdlcmUgdHJhbnNmZXJyZWQuIE5vdGVzOiAgIC0gRm9yIFtNdWx0aSBkZXN0aW5hdGlvbiB0cmFuc2FjdGlvbnNdKGh0dHBzOi8vc3VwcG9ydC5maXJlYmxvY2tzLmlvL2hjL2VuLXVzL2FydGljbGVzLzM2MDAxODQ0Nzk4MC1NdWx0aS1kZXN0aW5hdGlvbi10cmFuc2FjdGlvbnMpLCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIGVtcHR5LiBJbiB0aGlzIGNhc2UsIHlvdSBzaG91bGQgcmVmZXIgdG8gdGhlIGRlc3RpbmF0aW9ucyBmaWVsZC4gICAtIElmIHRoZSBzdGF0dXMgaXMgJiN4NjA7Q09ORklSTUlORyYjeDYwOywgJiN4NjA7Q09NUExFVEVEJiN4NjA7LCBvciBoYXMgYmVlbiAmI3g2MDtDT05GSVJNSU5HJiN4NjA7OyB0aGVuIG1vdmVkIGZvcndhcmQgdG8gJiN4NjA7RkFJTEVEJiN4NjA7IG9yICYjeDYwO1JFSkVDVEVEJiN4NjA7LCB0aGVuIHRoaXMgcGFyYW1ldGVyIHdpbGwgY29udGFpbiB0aGUgZGVzdGluYXRpb24gYWRkcmVzcy4gSW4gYW55IG90aGVyIGNhc2UsIHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgZW1wdHkuIHwgW29wdGlvbmFsXSAKKipkZXN0aW5hdGlvbl9hZGRyZXNzX2Rlc2NyaXB0aW9uKiogfCAqKnN0cioqIHwgRGVzY3JpcHRpb24gb2YgdGhlIGFkZHJlc3MuIHwgW29wdGlvbmFsXSAKKipkZXN0aW5hdGlvbl90YWcqKiB8ICoqc3RyKiogfCBEZXN0aW5hdGlvbiBhZGRyZXNzIHRhZyBmb3IgWFJQLCB1c2VkIGFzIG1lbW8gZm9yIEVPUy9YTE0sIG9yIEJhbmsgVHJhbnNmZXIgRGVzY3JpcHRpb24gZm9yIHRoZSBmaWF0IHByb3ZpZGVyIEJMSU5DIChieSBCQ0IgR3JvdXApLiB8IFtvcHRpb25hbF0gCioqY29udHJhY3RfY2FsbF9kZWNvZGVkX2RhdGEqKiB8IFsqKlRyYW5zYWN0aW9uUmVzcG9uc2VDb250cmFjdENhbGxEZWNvZGVkRGF0YSoqXShUcmFuc2FjdGlvblJlc3BvbnNlQ29udHJhY3RDYWxsRGVjb2RlZERhdGEubWQpIHwgIHwgW29wdGlvbmFsXSAKKiphbW91bnRfaW5mbyoqIHwgWyoqQW1vdW50SW5mbyoqXShBbW91bnRJbmZvLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqdHJlYXRfYXNfZ3Jvc3NfYW1vdW50KiogfCAqKmJvb2wqKiB8IEZvciB0cmFuc2FjdGlvbnMgaW5pdGlhdGVkIHZpYSB0aGlzIEZpcmVibG9ja3Mgd29ya3NwYWNlLCB3aGVuIHNldCB0byAmI3g2MDt0cnVlJiN4NjA7LCB0aGUgZmVlIGlzIGRlZHVjdGVkIGZyb20gdGhlIHJlcXVlc3RlZCBhbW91bnQuICAqKk5vdGUqKjogVGhpcyBwYXJhbWV0ZXIgY2FuIG9ubHkgYmUgY29uc2lkZXJlZCBpZiBhIHRyYW5zYWN0aW9uJiMzOTtzIGFzc2V0IGlzIGEgYmFzZSBhc3NldCwgc3VjaCBhcyBFVEggb3IgTUFUSUMuIElmIHRoZSBhc3NldCBjYW4mIzM5O3QgYmUgdXNlZCBmb3IgdHJhbnNhY3Rpb24gZmVlcywgbGlrZSBVU0RDLCB0aGlzIHBhcmFtZXRlciBpcyBpZ25vcmVkIGFuZCB0aGUgZmVlIGlzIGRlZHVjdGVkIGZyb20gdGhlIHJlbGV2YW50IGJhc2UgYXNzZXQgd2FsbGV0IGluIHRoZSBzb3VyY2UgYWNjb3VudC4gfCBbb3B0aW9uYWxdIAoqKmZlZV9pbmZvKiogfCBbKipGZWVJbmZvKipdKEZlZUluZm8ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipmZWVfY3VycmVuY3kqKiB8ICoqc3RyKiogfCBUaGUgYXNzZXQgd2hpY2ggd2FzIHdpdGhkcmF3biB0byBwYXkgdGhlIHRyYW5zYWN0aW9uIGZlZSwgZm9yIGV4YW1wbGUgRVRIIGZvciBFVk0tYmFzZWQgYmxvY2tjaGFpbnMsIEJUQyBmb3IgVGV0aGVyIE9tbmkuIHwgW29wdGlvbmFsXSAKKipuZXR3b3JrX3JlY29yZHMqKiB8IFsqKkxpc3RbTmV0d29ya1JlY29yZF0qKl0oTmV0d29ya1JlY29yZC5tZCkgfCBJbiBjYXNlIGEgc2luZ2xlIHRyYW5zYWN0aW9uIHJlc3VsdGVkIHdpdGggbXVsdGlwbGUgdHJhbnNmZXJzLCBmb3IgZXhhbXBsZSBhIHJlc3VsdCBvZiBhIGNvbnRyYWN0IGNhbGwsIHRoZW4gdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGVhY2ggdHJhbnNmZXIgdGhhdCB0b29rIHBsYWNlIG9uIHRoZSBibG9ja2NoYWluLiBJbiBjYXNlIG9mIGEgc2luZ2xlIHRyYW5zZmVyIHRyYW5zYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpcyBlbXB0eS4gfCBbb3B0aW9uYWxdIAoqKmNyZWF0ZWRfYXQqKiB8ICoqZmxvYXQqKiB8IFRoZSB0cmFuc2FjdGlvbuKAmXMgY3JlYXRpb24gZGF0ZSBhbmQgdGltZSwgaW4gdW5peCB0aW1lc3RhbXAuIHwgW29wdGlvbmFsXSAKKipsYXN0X3VwZGF0ZWQqKiB8ICoqZmxvYXQqKiB8IFRoZSB0cmFuc2FjdGlvbuKAmXMgbGFzdCB1cGRhdGUgZGF0ZSBhbmQgdGltZSwgaW4gdW5peCB0aW1lc3RhbXAuIHwgW29wdGlvbmFsXSAKKipjcmVhdGVkX2J5KiogfCAqKnN0cioqIHwgVXNlciBJRCBvZiB0aGUgaW5pdGlhdG9yIG9mIHRoZSB0cmFuc2FjdGlvbi4gfCBbb3B0aW9uYWxdIAoqKnNpZ25lZF9ieSoqIHwgKipMaXN0W3N0cl0qKiB8IFVzZXIgSUTigJlzIG9mIHRoZSBzaWduZXJzIG9mIHRoZSB0cmFuc2FjdGlvbi4gfCBbb3B0aW9uYWxdIAoqKnJlamVjdGVkX2J5KiogfCAqKnN0cioqIHwgVXNlciBJRCBvZiB0aGUgdXNlciB0aGF0IHJlamVjdGVkIHRoZSB0cmFuc2FjdGlvbiAoaW4gY2FzZSBpdCB3YXMgcmVqZWN0ZWQpLiB8IFtvcHRpb25hbF0gCioqYXV0aG9yaXphdGlvbl9pbmZvKiogfCBbKipBdXRob3JpemF0aW9uSW5mbyoqXShBdXRob3JpemF0aW9uSW5mby5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmV4Y2hhbmdlX3R4X2lkKiogfCAqKnN0cioqIHwgSWYgdGhlIHRyYW5zYWN0aW9uIG9yaWdpbmF0ZWQgZnJvbSBhbiBleGNoYW5nZSwgdGhpcyBpcyB0aGUgSUQgb2YgdGhpcyB0cmFuc2FjdGlvbiBhdCB0aGUgZXhjaGFuZ2UuIHwgW29wdGlvbmFsXSAKKipjdXN0b21lcl9yZWZfaWQqKiB8ICoqc3RyKiogfCBUaGUgSUQgZm9yIEFNTCBwcm92aWRlcnMgdG8gYXNzb2NpYXRlIHRoZSBvd25lciBvZiBmdW5kcyB3aXRoIHRyYW5zYWN0aW9ucy4gfCBbb3B0aW9uYWxdIAoqKnRyYXZlbF9ydWxlX21lc3NhZ2VfaWQqKiB8ICoqc3RyKiogfCBUaGUgSUQgb2YgdGhlIHRyYXZlbCBydWxlIG1lc3NhZ2UgZnJvbSBhbnkgdHJhdmVsIHJ1bGUgcHJvdmlkZXIuIFVzZWQgZm9yICB0cmF2ZWwgcnVsZSBzdXBwb3J0aW5nIGZ1bmN0aW9uYWxpdHkgdG8gYXNzb2NpYXRlIHRyYW5zYWN0aW9ucyB3aXRoIGV4aXN0aW5nICB0cmF2ZWwgcnVsZSBtZXNzYWdlcy4gfCBbb3B0aW9uYWxdIAoqKmFtbF9zY3JlZW5pbmdfcmVzdWx0KiogfCBbKipBbWxTY3JlZW5pbmdSZXN1bHQqKl0oQW1sU2NyZWVuaW5nUmVzdWx0Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqY29tcGxpYW5jZV9yZXN1bHRzKiogfCBbKipDb21wbGlhbmNlUmVzdWx0cyoqXShDb21wbGlhbmNlUmVzdWx0cy5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKm5vdF9icm9hZGNhc3RfYnlfZmlyZWJsb2NrcyoqIHwgKipib29sKiogfCBJbmRpY2F0ZXMgdGhlIHRyYW5zYWN0aW9uIHdhcyBub3QgYnJvYWRjYXN0IGJ5IEZpcmVibG9ja3MgfCBbb3B0aW9uYWxdIAoqKmRhcHBfdXJsKiogfCAqKnN0cioqIHwgREFwcCBVUkwgZm9yIFdlYjMgdHJhbnNhY3Rpb25zIHwgW29wdGlvbmFsXSAKKipnYXNfbGltaXQqKiB8ICoqc3RyKiogfCBHYXMgbGltaXQgZm9yIEVWTS1iYXNlZCBibG9ja2NoYWluIHRyYW5zYWN0aW9ucyB8IFtvcHRpb25hbF0gCioqYmxvY2tjaGFpbl9pbmRleCoqIHwgKipzdHIqKiB8IEJsb2NrY2hhaW4tc3BlY2lmaWMgaW5kZXggb3IgaWRlbnRpZmllciBmb3IgdGhlIHRyYW5zYWN0aW9uIHwgW29wdGlvbmFsXSAKKipwYWlkX3JlbnQqKiB8ICoqc3RyKiogfCBTb2xhbmEgcmVudCBwYXltZW50IGFtb3VudCB8IFtvcHRpb25hbF0gCioqZXh0cmFfcGFyYW1ldGVycyoqIHwgWyoqRXh0cmFQYXJhbWV0ZXJzKipdKEV4dHJhUGFyYW1ldGVycy5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnNpZ25lZF9tZXNzYWdlcyoqIHwgWyoqTGlzdFtTaWduZWRNZXNzYWdlXSoqXShTaWduZWRNZXNzYWdlLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqbnVtX29mX2NvbmZpcm1hdGlvbnMqKiB8ICoqZmxvYXQqKiB8IFRoZSBudW1iZXIgb2YgY29uZmlybWF0aW9ucyBvZiB0aGUgdHJhbnNhY3Rpb24uIFRoZSBudW1iZXIgd2lsbCBpbmNyZWFzZSB1bnRpbCB0aGUgdHJhbnNhY3Rpb24gd2lsbCBiZSBjb25zaWRlcmVkIGNvbXBsZXRlZCBhY2NvcmRpbmcgdG8gdGhlIGNvbmZpcm1hdGlvbiBwb2xpY3kuIHwgW29wdGlvbmFsXSAKKipibG9ja19pbmZvKiogfCBbKipCbG9ja0luZm8qKl0oQmxvY2tJbmZvLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqaW5kZXgqKiB8ICoqZmxvYXQqKiB8IEZvciBVVFhPIGJhc2VkIGFzc2V0cyB0aGlzIGlzIHRoZSB2T3V0LCBmb3IgRXRoZXJldW0gYmFzZWQsIHRoaXMgaXMgdGhlIGluZGV4IG9mIHRoZSBldmVudCBvZiB0aGUgY29udHJhY3QgY2FsbC4gICoqTm90ZToqKiBUaGlzIGZpZWxkIGlzIG5vdCByZXR1cm5lZCBpZiBhIHRyYW5zYWN0aW9uIHVzZXMgdGhlICYjeDYwO2Rlc3RpbmF0aW9ucyYjeDYwOyBvYmplY3Qgd2l0aCBtb3JlIHRoYW4gb25lIHZhbHVlLiB8IFtvcHRpb25hbF0gCioqcmV3YXJkX2luZm8qKiB8IFsqKlJld2FyZEluZm8qKl0oUmV3YXJkSW5mby5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmZlZV9wYXllcl9pbmZvKiogfCBbKipGZWVQYXllckluZm8qKl0oRmVlUGF5ZXJJbmZvLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc3lzdGVtX21lc3NhZ2VzKiogfCBbKipMaXN0W1N5c3RlbU1lc3NhZ2VJbmZvXSoqXShTeXN0ZW1NZXNzYWdlSW5mby5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmFkZHJlc3NfdHlwZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqcmVxdWVzdGVkX2Ftb3VudCoqIHwgKipmbG9hdCoqIHwgVGhlIGFtb3VudCByZXF1ZXN0ZWQgYnkgdGhlIHVzZXIuIERlcHJlY2F0ZWQgLSBwbGVhc2UgdXNlIHRoZSAmI3g2MDthbW91bnRJbmZvJiN4NjA7IGZpZWxkIGZvciBhY2N1cmFjeS4gfCBbb3B0aW9uYWxdIAoqKmFtb3VudCoqIHwgKipmbG9hdCoqIHwgSWYgdGhlIHRyYW5zZmVyIGlzIGEgd2l0aGRyYXdhbCBmcm9tIGFuIGV4Y2hhbmdlLCB0aGUgYWN0dWFsIGFtb3VudCB0aGF0IHdhcyByZXF1ZXN0ZWQgdG8gYmUgdHJhbnNmZXJyZWQuIE90aGVyd2lzZSwgdGhlIHJlcXVlc3RlZCBhbW91bnQuIERlcHJlY2F0ZWQgLSBwbGVhc2UgdXNlIHRoZSAmI3g2MDthbW91bnRJbmZvJiN4NjA7IGZpZWxkIGZvciBhY2N1cmFjeS4gfCBbb3B0aW9uYWxdIAoqKm5ldF9hbW91bnQqKiB8ICoqZmxvYXQqKiB8IFRoZSBuZXQgYW1vdW50IG9mIHRoZSB0cmFuc2FjdGlvbiwgYWZ0ZXIgZmVlIGRlZHVjdGlvbi4gRGVwcmVjYXRlZCAtIHBsZWFzZSB1c2UgdGhlICYjeDYwO2Ftb3VudEluZm8mI3g2MDsgZmllbGQgZm9yIGFjY3VyYWN5LiB8IFtvcHRpb25hbF0gCioqYW1vdW50X3VzZCoqIHwgKipmbG9hdCoqIHwgVGhlIFVTRCB2YWx1ZSBvZiB0aGUgcmVxdWVzdGVkIGFtb3VudC4gRGVwcmVjYXRlZCAtIHBsZWFzZSB1c2UgdGhlICYjeDYwO2Ftb3VudEluZm8mI3g2MDsgZmllbGQgZm9yIGFjY3VyYWN5LiB8IFtvcHRpb25hbF0gCioqc2VydmljZV9mZWUqKiB8ICoqZmxvYXQqKiB8IFRoZSB0b3RhbCBmZWUgZGVkdWN0ZWQgYnkgdGhlIGV4Y2hhbmdlIGZyb20gdGhlIGFjdHVhbCByZXF1ZXN0ZWQgYW1vdW50ICgmI3g2MDtzZXJ2aWNlRmVlJiN4NjA7ICYjeDNEOyAmI3g2MDthbW91bnQmI3g2MDsgLSAmI3g2MDtuZXRBbW91bnQmI3g2MDspLiBEZXByZWNhdGVkIC0gcGxlYXNlIHVzZSB0aGUgJiN4NjA7ZmVlSW5mbyYjeDYwOyBmaWVsZCBmb3IgYWNjdXJhY3kuIHwgW29wdGlvbmFsXSAKKipmZWUqKiB8ICoqZmxvYXQqKiB8IERlcHJlY2F0ZWQgLSBwbGVhc2UgdXNlIHRoZSAmI3g2MDtmZWVJbmZvJiN4NjA7IGZpZWxkIGZvciBhY2N1cmFjeS4gfCBbb3B0aW9uYWxdIAoqKm5ldHdvcmtfZmVlKiogfCAqKmZsb2F0KiogfCBUaGUgZmVlIHBhaWQgdG8gdGhlIG5ldHdvcmsuIERlcHJlY2F0ZWQgLSBwbGVhc2UgdXNlIHRoZSAmI3g2MDtmZWVJbmZvJiN4NjA7IGZpZWxkIGZvciBhY2N1cmFjeS4gfCBbb3B0aW9uYWxdIAoqKmVycm9yX2Rlc2NyaXB0aW9uKiogfCAqKnN0cioqIHwgVGhlIHRyYW5zYWN0aW9uJiMzOTtzIHJldmVydCByZWFzb24uIFRoaXMgZmllbGQgd2lsbCBiZSByZXR1cm5lZCB3aGVuICAmI3g2MDtzdWJTdGF0dXMmI3g2MDsgJiN4M0Q7ICAmIzM5O1NNQVJUX0NPTlRSQUNUX0VYRUNVVElPTl9GQUlMRUQmIzM5Oy4gfCBbb3B0aW9uYWxdIAoqKnJlcGxhY2VkX3R4X2hhc2gqKiB8ICoqc3RyKiogfCBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgYSByZXBsYWNlIGJ5IGZlZSAoUkJGKSB0cmFuc2FjdGlvbiwgdGhpcyBpcyB0aGUgaGFzaCBvZiB0aGUgdHJhbnNzYWN0aW9uIHRoYXQgd2FzIHJlcGxhY2VkIHwgW29wdGlvbmFsXSAKKipub25jZSoqIHwgKipzdHIqKiB8IGJsb2NrY2hhaW4gbm9uY2UgZm9yIHRoZSB0cmFuc2FjdGlvbiB8IFtvcHRpb25hbF0gCioqYmxvY2tjaGFpbl9pbmZvKiogfCAqKm9iamVjdCoqIHwgQSBKU09OIHVzZWQgdG8gc3RvcmUgYWRkaXRpb25hbCBkYXRhIHRoYXQgaXMgYmxvY2tjaGFpbi1zcGVjaWZpYy4gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVzcG9uc2UgaW1wb3J0IFRyYW5zYWN0aW9uUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zYWN0aW9uUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnRyYW5zYWN0aW9uX3Jlc3BvbnNlX2luc3RhbmNlID0gVHJhbnNhY3Rpb25SZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmFuc2FjdGlvblJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYW5zYWN0aW9uX3Jlc3BvbnNlX2RpY3QgPSB0cmFuc2FjdGlvbl9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNhY3Rpb25SZXNwb25zZSBmcm9tIGEgZGljdAp0cmFuc2FjdGlvbl9yZXNwb25zZV9mcm9tX2RpY3QgPSBUcmFuc2FjdGlvblJlc3BvbnNlLmZyb21fZGljdCh0cmFuc2FjdGlvbl9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TransactionResponseContractCallDecodedData.md b/docs/TransactionResponseContractCallDecodedData.md index f360c5e6..e9b05bce 100644 --- a/docs/TransactionResponseContractCallDecodedData.md +++ b/docs/TransactionResponseContractCallDecodedData.md @@ -1,31 +1 @@ -# TransactionResponseContractCallDecodedData - -Decoded data for `CONTRACT_CALL` operations. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for setting this parameter's value. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**contract_name** | **str** | | [optional] -**function_calls** | **List[object]** | | [optional] - -## Example - -```python -from fireblocks.models.transaction_response_contract_call_decoded_data import TransactionResponseContractCallDecodedData - -# TODO update the JSON string below -json = "{}" -# create an instance of TransactionResponseContractCallDecodedData from a JSON string -transaction_response_contract_call_decoded_data_instance = TransactionResponseContractCallDecodedData.from_json(json) -# print the JSON string representation of the object -print(TransactionResponseContractCallDecodedData.to_json()) - -# convert the object into a dict -transaction_response_contract_call_decoded_data_dict = transaction_response_contract_call_decoded_data_instance.to_dict() -# create an instance of TransactionResponseContractCallDecodedData from a dict -transaction_response_contract_call_decoded_data_from_dict = TransactionResponseContractCallDecodedData.from_dict(transaction_response_contract_call_decoded_data_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2FjdGlvblJlc3BvbnNlQ29udHJhY3RDYWxsRGVjb2RlZERhdGEKCkRlY29kZWQgZGF0YSBmb3IgYENPTlRSQUNUX0NBTExgIG9wZXJhdGlvbnMuIFRoZSBGaXJlYmxvY2tzIFtkZXZlbG9wbWVudCBsaWJyYXJpZXNdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL2V0aGVyZXVtLWRldmVsb3BtZW50I2NvbnZlbmllbmNlLWxpYnJhcmllcykgYXJlIHJlY29tbWVuZGVkIGZvciBzZXR0aW5nIHRoaXMgcGFyYW1ldGVyJ3MgdmFsdWUuCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqY29udHJhY3RfbmFtZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqZnVuY3Rpb25fY2FsbHMqKiB8ICoqTGlzdFtvYmplY3RdKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVzcG9uc2VfY29udHJhY3RfY2FsbF9kZWNvZGVkX2RhdGEgaW1wb3J0IFRyYW5zYWN0aW9uUmVzcG9uc2VDb250cmFjdENhbGxEZWNvZGVkRGF0YQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNhY3Rpb25SZXNwb25zZUNvbnRyYWN0Q2FsbERlY29kZWREYXRhIGZyb20gYSBKU09OIHN0cmluZwp0cmFuc2FjdGlvbl9yZXNwb25zZV9jb250cmFjdF9jYWxsX2RlY29kZWRfZGF0YV9pbnN0YW5jZSA9IFRyYW5zYWN0aW9uUmVzcG9uc2VDb250cmFjdENhbGxEZWNvZGVkRGF0YS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmFuc2FjdGlvblJlc3BvbnNlQ29udHJhY3RDYWxsRGVjb2RlZERhdGEudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJhbnNhY3Rpb25fcmVzcG9uc2VfY29udHJhY3RfY2FsbF9kZWNvZGVkX2RhdGFfZGljdCA9IHRyYW5zYWN0aW9uX3Jlc3BvbnNlX2NvbnRyYWN0X2NhbGxfZGVjb2RlZF9kYXRhX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2FjdGlvblJlc3BvbnNlQ29udHJhY3RDYWxsRGVjb2RlZERhdGEgZnJvbSBhIGRpY3QKdHJhbnNhY3Rpb25fcmVzcG9uc2VfY29udHJhY3RfY2FsbF9kZWNvZGVkX2RhdGFfZnJvbV9kaWN0ID0gVHJhbnNhY3Rpb25SZXNwb25zZUNvbnRyYWN0Q2FsbERlY29kZWREYXRhLmZyb21fZGljdCh0cmFuc2FjdGlvbl9yZXNwb25zZV9jb250cmFjdF9jYWxsX2RlY29kZWRfZGF0YV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TransactionResponseDestination.md b/docs/TransactionResponseDestination.md index 8476480d..6ae4466c 100644 --- a/docs/TransactionResponseDestination.md +++ b/docs/TransactionResponseDestination.md @@ -1,34 +1 @@ -# TransactionResponseDestination - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | **str** | The amount to be sent to this destination. | [optional] -**amount_usd** | **str** | The USD value of the requested amount. | [optional] -**travel_rule_message_id** | **str** | The ID of the travel rule message from any travel rule provider. Used for travel rule supporting functionality to associate transactions with existing travel rule messages. | [optional] -**aml_screening_result** | [**AmlScreeningResult**](AmlScreeningResult.md) | | [optional] -**destination** | [**DestinationTransferPeerPathResponse**](DestinationTransferPeerPathResponse.md) | | [optional] -**authorization_info** | [**AuthorizationInfo**](AuthorizationInfo.md) | | [optional] - -## Example - -```python -from fireblocks.models.transaction_response_destination import TransactionResponseDestination - -# TODO update the JSON string below -json = "{}" -# create an instance of TransactionResponseDestination from a JSON string -transaction_response_destination_instance = TransactionResponseDestination.from_json(json) -# print the JSON string representation of the object -print(TransactionResponseDestination.to_json()) - -# convert the object into a dict -transaction_response_destination_dict = transaction_response_destination_instance.to_dict() -# create an instance of TransactionResponseDestination from a dict -transaction_response_destination_from_dict = TransactionResponseDestination.from_dict(transaction_response_destination_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2FjdGlvblJlc3BvbnNlRGVzdGluYXRpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYW1vdW50KiogfCAqKnN0cioqIHwgVGhlIGFtb3VudCB0byBiZSBzZW50IHRvIHRoaXMgZGVzdGluYXRpb24uIHwgW29wdGlvbmFsXSAKKiphbW91bnRfdXNkKiogfCAqKnN0cioqIHwgVGhlIFVTRCB2YWx1ZSBvZiB0aGUgcmVxdWVzdGVkIGFtb3VudC4gfCBbb3B0aW9uYWxdIAoqKnRyYXZlbF9ydWxlX21lc3NhZ2VfaWQqKiB8ICoqc3RyKiogfCBUaGUgSUQgb2YgdGhlIHRyYXZlbCBydWxlIG1lc3NhZ2UgZnJvbSBhbnkgdHJhdmVsIHJ1bGUgcHJvdmlkZXIuIFVzZWQgZm9yICB0cmF2ZWwgcnVsZSBzdXBwb3J0aW5nIGZ1bmN0aW9uYWxpdHkgdG8gYXNzb2NpYXRlIHRyYW5zYWN0aW9ucyB3aXRoIGV4aXN0aW5nICB0cmF2ZWwgcnVsZSBtZXNzYWdlcy4gfCBbb3B0aW9uYWxdIAoqKmFtbF9zY3JlZW5pbmdfcmVzdWx0KiogfCBbKipBbWxTY3JlZW5pbmdSZXN1bHQqKl0oQW1sU2NyZWVuaW5nUmVzdWx0Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZGVzdGluYXRpb24qKiB8IFsqKkRlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlKipdKERlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqYXV0aG9yaXphdGlvbl9pbmZvKiogfCBbKipBdXRob3JpemF0aW9uSW5mbyoqXShBdXRob3JpemF0aW9uSW5mby5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVzcG9uc2VfZGVzdGluYXRpb24gaW1wb3J0IFRyYW5zYWN0aW9uUmVzcG9uc2VEZXN0aW5hdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNhY3Rpb25SZXNwb25zZURlc3RpbmF0aW9uIGZyb20gYSBKU09OIHN0cmluZwp0cmFuc2FjdGlvbl9yZXNwb25zZV9kZXN0aW5hdGlvbl9pbnN0YW5jZSA9IFRyYW5zYWN0aW9uUmVzcG9uc2VEZXN0aW5hdGlvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmFuc2FjdGlvblJlc3BvbnNlRGVzdGluYXRpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJhbnNhY3Rpb25fcmVzcG9uc2VfZGVzdGluYXRpb25fZGljdCA9IHRyYW5zYWN0aW9uX3Jlc3BvbnNlX2Rlc3RpbmF0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2FjdGlvblJlc3BvbnNlRGVzdGluYXRpb24gZnJvbSBhIGRpY3QKdHJhbnNhY3Rpb25fcmVzcG9uc2VfZGVzdGluYXRpb25fZnJvbV9kaWN0ID0gVHJhbnNhY3Rpb25SZXNwb25zZURlc3RpbmF0aW9uLmZyb21fZGljdCh0cmFuc2FjdGlvbl9yZXNwb25zZV9kZXN0aW5hdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TransactionsApi.md b/docs/TransactionsApi.md index 4479492f..c31c496c 100644 --- a/docs/TransactionsApi.md +++ b/docs/TransactionsApi.md @@ -1,1087 +1 @@ -# fireblocks.TransactionsApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**cancel_transaction**](TransactionsApi.md#cancel_transaction) | **POST** /transactions/{txId}/cancel | Cancel a transaction -[**create_transaction**](TransactionsApi.md#create_transaction) | **POST** /transactions | Create a new transaction -[**drop_transaction**](TransactionsApi.md#drop_transaction) | **POST** /transactions/{txId}/drop | Drop ETH (EVM) transaction by ID -[**estimate_network_fee**](TransactionsApi.md#estimate_network_fee) | **GET** /estimate_network_fee | Estimate the required fee for an asset -[**estimate_transaction_fee**](TransactionsApi.md#estimate_transaction_fee) | **POST** /transactions/estimate_fee | Estimate transaction fee -[**freeze_transaction**](TransactionsApi.md#freeze_transaction) | **POST** /transactions/{txId}/freeze | Freeze a transaction -[**get_transaction**](TransactionsApi.md#get_transaction) | **GET** /transactions/{txId} | Get a specific transaction by Fireblocks transaction ID -[**get_transaction_by_external_id**](TransactionsApi.md#get_transaction_by_external_id) | **GET** /transactions/external_tx_id/{externalTxId} | Get a specific transaction by external transaction ID -[**get_transactions**](TransactionsApi.md#get_transactions) | **GET** /transactions | Get transaction history -[**set_confirmation_threshold_by_transaction_hash**](TransactionsApi.md#set_confirmation_threshold_by_transaction_hash) | **POST** /txHash/{txHash}/set_confirmation_threshold | Set confirmation threshold by transaction hash -[**set_transaction_confirmation_threshold**](TransactionsApi.md#set_transaction_confirmation_threshold) | **POST** /transactions/{txId}/set_confirmation_threshold | Set confirmation threshold by Fireblocks Transaction ID -[**unfreeze_transaction**](TransactionsApi.md#unfreeze_transaction) | **POST** /transactions/{txId}/unfreeze | Unfreeze a transaction -[**validate_address**](TransactionsApi.md#validate_address) | **GET** /transactions/validate_address/{assetId}/{address} | Validate destination address - - -# **cancel_transaction** -> CancelTransactionResponse cancel_transaction(tx_id, x_end_user_wallet_id=x_end_user_wallet_id, idempotency_key=idempotency_key) - -Cancel a transaction - -Cancels a transaction by Fireblocks Transaction ID. - -Can be used only for transactions that did not get to the BROADCASTING state. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.cancel_transaction_response import CancelTransactionResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - tx_id = 'tx_id_example' # str | The ID of the transaction to cancel - x_end_user_wallet_id = 'x_end_user_wallet_id_example' # str | Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. (optional) - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Cancel a transaction - api_response = fireblocks.transactions.cancel_transaction(tx_id, x_end_user_wallet_id=x_end_user_wallet_id, idempotency_key=idempotency_key).result() - print("The response of TransactionsApi->cancel_transaction:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TransactionsApi->cancel_transaction: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **tx_id** | **str**| The ID of the transaction to cancel | - **x_end_user_wallet_id** | **str**| Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. | [optional] - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**CancelTransactionResponse**](CancelTransactionResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | An Transaction object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_transaction** -> CreateTransactionResponse create_transaction(x_end_user_wallet_id=x_end_user_wallet_id, idempotency_key=idempotency_key, transaction_request=transaction_request) - -Create a new transaction - -Creates a new transaction. This endpoint can be used for regular Transfers, Contract Calls, Raw & Typed message signing. - For Transfers, the required parameters are: `assetId`, `source`, `destination` and `amount`. - For Contract Calls, the required parameters are: `operation.CONTRACT_CALL`, `assetId` (Base Asset), `source`, - -### Example - - -```python -from fireblocks.models.create_transaction_response import CreateTransactionResponse -from fireblocks.models.transaction_request import TransactionRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - x_end_user_wallet_id = 'x_end_user_wallet_id_example' # str | Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. (optional) - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - transaction_request = fireblocks.TransactionRequest() # TransactionRequest | (optional) - - try: - # Create a new transaction - api_response = fireblocks.transactions.create_transaction(x_end_user_wallet_id=x_end_user_wallet_id, idempotency_key=idempotency_key, transaction_request=transaction_request).result() - print("The response of TransactionsApi->create_transaction:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TransactionsApi->create_transaction: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **x_end_user_wallet_id** | **str**| Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. | [optional] - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **transaction_request** | [**TransactionRequest**](TransactionRequest.md)| | [optional] - -### Return type - -[**CreateTransactionResponse**](CreateTransactionResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A transaction object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **drop_transaction** -> DropTransactionResponse drop_transaction(tx_id, x_end_user_wallet_id=x_end_user_wallet_id, idempotency_key=idempotency_key, drop_transaction_request=drop_transaction_request) - -Drop ETH (EVM) transaction by ID - -Drops a stuck ETH (EVM) transaction and creates a replacement transaction with 0 amount. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.drop_transaction_request import DropTransactionRequest -from fireblocks.models.drop_transaction_response import DropTransactionResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - tx_id = 'tx_id_example' # str | The ID of the transaction - x_end_user_wallet_id = 'x_end_user_wallet_id_example' # str | Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. (optional) - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - drop_transaction_request = fireblocks.DropTransactionRequest() # DropTransactionRequest | (optional) - - try: - # Drop ETH (EVM) transaction by ID - api_response = fireblocks.transactions.drop_transaction(tx_id, x_end_user_wallet_id=x_end_user_wallet_id, idempotency_key=idempotency_key, drop_transaction_request=drop_transaction_request).result() - print("The response of TransactionsApi->drop_transaction:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TransactionsApi->drop_transaction: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **tx_id** | **str**| The ID of the transaction | - **x_end_user_wallet_id** | **str**| Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. | [optional] - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **drop_transaction_request** | [**DropTransactionRequest**](DropTransactionRequest.md)| | [optional] - -### Return type - -[**DropTransactionResponse**](DropTransactionResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Operation completed successfully | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **estimate_network_fee** -> EstimatedNetworkFeeResponse estimate_network_fee(asset_id) - -Estimate the required fee for an asset - -Gets the estimated required fee for an asset. -Fireblocks fetches, calculates and caches the result every 30 seconds. -Customers should query this API while taking the caching interval into consideration. -Notes: -- The `networkFee` parameter is the `gasPrice` with a given delta added, multiplied by the gasLimit plus the delta. - The estimation provided depends on the asset type. - - For UTXO-based assets, the response contains the `feePerByte` parameter - - For ETH-based and all EVM based assets, the response will contain `gasPrice` parameter. This is calculated by adding the `baseFee` to the `actualPriority` based on the latest 12 blocks. The response for ETH-based contains the `baseFee`, `gasPrice`, and `priorityFee` parameters. - - For ADA-based assets, the response will contain the parameter `networkFee` and `feePerByte` parameters. - - For XRP and XLM, the response will contain the transaction fee. - - For other assets, the response will contain the `networkFee` parameter. - -Learn more about Fireblocks Fee Management in the following [guide](https://developers.fireblocks.com/reference/estimate-transaction-fee). -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.estimated_network_fee_response import EstimatedNetworkFeeResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - asset_id = 'asset_id_example' # str | The asset for which to estimate the fee - - try: - # Estimate the required fee for an asset - api_response = fireblocks.transactions.estimate_network_fee(asset_id).result() - print("The response of TransactionsApi->estimate_network_fee:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TransactionsApi->estimate_network_fee: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **asset_id** | **str**| The asset for which to estimate the fee | - -### Return type - -[**EstimatedNetworkFeeResponse**](EstimatedNetworkFeeResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Estimated fees response | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **estimate_transaction_fee** -> EstimatedTransactionFeeResponse estimate_transaction_fee(idempotency_key=idempotency_key, transaction_request=transaction_request) - -Estimate transaction fee - -Estimates the transaction fee for a specific transaction request. -This endpoint simulates a transaction which means that the system will expect to have the requested asset and balance in the specified wallet. - - -**Note**: Supports all Fireblocks assets except ZCash (ZEC). -Learn more about Fireblocks Fee Management in the following [guide](https://developers.fireblocks.com/reference/estimate-transaction-fee). -
Endpoint Permission: Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.estimated_transaction_fee_response import EstimatedTransactionFeeResponse -from fireblocks.models.transaction_request import TransactionRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - transaction_request = fireblocks.TransactionRequest() # TransactionRequest | (optional) - - try: - # Estimate transaction fee - api_response = fireblocks.transactions.estimate_transaction_fee(idempotency_key=idempotency_key, transaction_request=transaction_request).result() - print("The response of TransactionsApi->estimate_transaction_fee:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TransactionsApi->estimate_transaction_fee: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **transaction_request** | [**TransactionRequest**](TransactionRequest.md)| | [optional] - -### Return type - -[**EstimatedTransactionFeeResponse**](EstimatedTransactionFeeResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Estimated fees response | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **freeze_transaction** -> FreezeTransactionResponse freeze_transaction(tx_id, x_end_user_wallet_id=x_end_user_wallet_id, idempotency_key=idempotency_key) - -Freeze a transaction - -Freezes a transaction by ID. - -Usually used for AML integrations when the incoming funds should be quarantined. -For account based assets - the entire amount of the transaction is frozen -For UTXO based assets - all UTXOs of the specified transaction are frozen -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.freeze_transaction_response import FreezeTransactionResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - tx_id = 'tx_id_example' # str | The ID of the transaction to freeze - x_end_user_wallet_id = 'x_end_user_wallet_id_example' # str | Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. (optional) - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Freeze a transaction - api_response = fireblocks.transactions.freeze_transaction(tx_id, x_end_user_wallet_id=x_end_user_wallet_id, idempotency_key=idempotency_key).result() - print("The response of TransactionsApi->freeze_transaction:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TransactionsApi->freeze_transaction: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **tx_id** | **str**| The ID of the transaction to freeze | - **x_end_user_wallet_id** | **str**| Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. | [optional] - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**FreezeTransactionResponse**](FreezeTransactionResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | freeze response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_transaction** -> TransactionResponse get_transaction(tx_id) - -Get a specific transaction by Fireblocks transaction ID - -Get a specific transaction data by Fireblocks Transaction ID -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -### Example - - -```python -from fireblocks.models.transaction_response import TransactionResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - tx_id = '00000000-0000-0000-0000-000000000000' # str | The ID of the transaction to return - - try: - # Get a specific transaction by Fireblocks transaction ID - api_response = fireblocks.transactions.get_transaction(tx_id).result() - print("The response of TransactionsApi->get_transaction:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TransactionsApi->get_transaction: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **tx_id** | **str**| The ID of the transaction to return | - -### Return type - -[**TransactionResponse**](TransactionResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | An Transaction object | * X-Request-ID -
| -**400** | Error Response | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_transaction_by_external_id** -> TransactionResponse get_transaction_by_external_id(external_tx_id) - -Get a specific transaction by external transaction ID - -Returns transaction by external transaction ID. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -### Example - - -```python -from fireblocks.models.transaction_response import TransactionResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - external_tx_id = '00000000-0000-0000-0000-000000000000' # str | The external ID of the transaction to return - - try: - # Get a specific transaction by external transaction ID - api_response = fireblocks.transactions.get_transaction_by_external_id(external_tx_id).result() - print("The response of TransactionsApi->get_transaction_by_external_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TransactionsApi->get_transaction_by_external_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **external_tx_id** | **str**| The external ID of the transaction to return | - -### Return type - -[**TransactionResponse**](TransactionResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | An Transaction object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_transactions** -> List[TransactionResponse] get_transactions(next=next, prev=prev, before=before, after=after, status=status, order_by=order_by, sort=sort, limit=limit, source_type=source_type, source_id=source_id, dest_type=dest_type, dest_id=dest_id, assets=assets, tx_hash=tx_hash, source_wallet_id=source_wallet_id, dest_wallet_id=dest_wallet_id) - -Get transaction history - -Get the transaction history for your workspace. - -**Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - -### Example - - -```python -from fireblocks.models.transaction_response import TransactionResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - next = 'next_example' # str | Cursor returned in next-page header that can be used to fetch the next page of results (optional) - prev = 'prev_example' # str | Cursor returned in prev-page header that can be used to fetch the previous page of results (optional) - before = 'before_example' # str | Unix timestamp in milliseconds. Returns only transactions created before the specified date. Provides an explicit end time. If not provided, default value will be applied, and may change over time. The current default value is the past 90 days. (optional) - after = 'after_example' # str | Unix timestamp in milliseconds. Returns only transactions created after the specified date. Provides an explicit start time. If not provided, default value will be applied, and may change over time. The current default value is the past 90 days. (optional) - status = 'status_example' # str | You can filter by one of the statuses. (optional) - order_by = 'order_by_example' # str | The field to order the results by. **Note:** Ordering by a field that is not `createdAt` may result in transactions that receive updates as you request the next or previous pages of results, resulting in missing those transactions. (optional) - sort = 'sort_example' # str | The direction to order the results by (optional) - limit = 200 # int | Limits the number of results. If not provided, a limit of 200 will be used. The maximum allowed limit is 500 (optional) (default to 200) - source_type = 'source_type_example' # str | The source type of the transaction (optional) - source_id = 'source_id_example' # str | The source ID of the transaction (optional) - dest_type = 'dest_type_example' # str | The destination type of the transaction (optional) - dest_id = 'dest_id_example' # str | The destination ID of the transaction (optional) - assets = 'assets_example' # str | A list of assets to filter by, seperated by commas (optional) - tx_hash = 'tx_hash_example' # str | Returns only results with a specified txHash (optional) - source_wallet_id = 'source_wallet_id_example' # str | Returns only results where the source is a specific end user wallet (optional) - dest_wallet_id = 'dest_wallet_id_example' # str | Returns only results where the destination is a specific end user wallet (optional) - - try: - # Get transaction history - api_response = fireblocks.transactions.get_transactions(next=next, prev=prev, before=before, after=after, status=status, order_by=order_by, sort=sort, limit=limit, source_type=source_type, source_id=source_id, dest_type=dest_type, dest_id=dest_id, assets=assets, tx_hash=tx_hash, source_wallet_id=source_wallet_id, dest_wallet_id=dest_wallet_id).result() - print("The response of TransactionsApi->get_transactions:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TransactionsApi->get_transactions: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **next** | **str**| Cursor returned in next-page header that can be used to fetch the next page of results | [optional] - **prev** | **str**| Cursor returned in prev-page header that can be used to fetch the previous page of results | [optional] - **before** | **str**| Unix timestamp in milliseconds. Returns only transactions created before the specified date. Provides an explicit end time. If not provided, default value will be applied, and may change over time. The current default value is the past 90 days. | [optional] - **after** | **str**| Unix timestamp in milliseconds. Returns only transactions created after the specified date. Provides an explicit start time. If not provided, default value will be applied, and may change over time. The current default value is the past 90 days. | [optional] - **status** | **str**| You can filter by one of the statuses. | [optional] - **order_by** | **str**| The field to order the results by. **Note:** Ordering by a field that is not `createdAt` may result in transactions that receive updates as you request the next or previous pages of results, resulting in missing those transactions. | [optional] - **sort** | **str**| The direction to order the results by | [optional] - **limit** | **int**| Limits the number of results. If not provided, a limit of 200 will be used. The maximum allowed limit is 500 | [optional] [default to 200] - **source_type** | **str**| The source type of the transaction | [optional] - **source_id** | **str**| The source ID of the transaction | [optional] - **dest_type** | **str**| The destination type of the transaction | [optional] - **dest_id** | **str**| The destination ID of the transaction | [optional] - **assets** | **str**| A list of assets to filter by, seperated by commas | [optional] - **tx_hash** | **str**| Returns only results with a specified txHash | [optional] - **source_wallet_id** | **str**| Returns only results where the source is a specific end user wallet | [optional] - **dest_wallet_id** | **str**| Returns only results where the destination is a specific end user wallet | [optional] - -### Return type - -[**List[TransactionResponse]**](TransactionResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A list of transactions | * X-Request-ID -
* next-page -
* prev-page -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_confirmation_threshold_by_transaction_hash** -> SetConfirmationsThresholdResponse set_confirmation_threshold_by_transaction_hash(tx_hash, idempotency_key=idempotency_key, set_confirmations_threshold_request=set_confirmations_threshold_request) - -Set confirmation threshold by transaction hash - -Overrides the required number of confirmations for transaction completion by transaction hash. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.set_confirmations_threshold_request import SetConfirmationsThresholdRequest -from fireblocks.models.set_confirmations_threshold_response import SetConfirmationsThresholdResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - tx_hash = 'tx_hash_example' # str | The TxHash - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - set_confirmations_threshold_request = fireblocks.SetConfirmationsThresholdRequest() # SetConfirmationsThresholdRequest | (optional) - - try: - # Set confirmation threshold by transaction hash - api_response = fireblocks.transactions.set_confirmation_threshold_by_transaction_hash(tx_hash, idempotency_key=idempotency_key, set_confirmations_threshold_request=set_confirmations_threshold_request).result() - print("The response of TransactionsApi->set_confirmation_threshold_by_transaction_hash:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TransactionsApi->set_confirmation_threshold_by_transaction_hash: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **tx_hash** | **str**| The TxHash | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **set_confirmations_threshold_request** | [**SetConfirmationsThresholdRequest**](SetConfirmationsThresholdRequest.md)| | [optional] - -### Return type - -[**SetConfirmationsThresholdResponse**](SetConfirmationsThresholdResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A list of transactions affected by the change | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_transaction_confirmation_threshold** -> SetConfirmationsThresholdResponse set_transaction_confirmation_threshold(tx_id, idempotency_key=idempotency_key, set_confirmations_threshold_request=set_confirmations_threshold_request) - -Set confirmation threshold by Fireblocks Transaction ID - -Overrides the required number of confirmations for transaction completion Fireblocks Transaction ID. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.set_confirmations_threshold_request import SetConfirmationsThresholdRequest -from fireblocks.models.set_confirmations_threshold_response import SetConfirmationsThresholdResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - tx_id = 'tx_id_example' # str | The ID of the transaction - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - set_confirmations_threshold_request = fireblocks.SetConfirmationsThresholdRequest() # SetConfirmationsThresholdRequest | (optional) - - try: - # Set confirmation threshold by Fireblocks Transaction ID - api_response = fireblocks.transactions.set_transaction_confirmation_threshold(tx_id, idempotency_key=idempotency_key, set_confirmations_threshold_request=set_confirmations_threshold_request).result() - print("The response of TransactionsApi->set_transaction_confirmation_threshold:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TransactionsApi->set_transaction_confirmation_threshold: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **tx_id** | **str**| The ID of the transaction | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **set_confirmations_threshold_request** | [**SetConfirmationsThresholdRequest**](SetConfirmationsThresholdRequest.md)| | [optional] - -### Return type - -[**SetConfirmationsThresholdResponse**](SetConfirmationsThresholdResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Set successfully | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **unfreeze_transaction** -> UnfreezeTransactionResponse unfreeze_transaction(tx_id, x_end_user_wallet_id=x_end_user_wallet_id, idempotency_key=idempotency_key) - -Unfreeze a transaction - -Unfreezes a transaction by Fireblocks Transaction ID and makes the transaction available again. -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.unfreeze_transaction_response import UnfreezeTransactionResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - tx_id = 'tx_id_example' # str | The ID of the transaction to unfreeze - x_end_user_wallet_id = 'x_end_user_wallet_id_example' # str | Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. (optional) - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Unfreeze a transaction - api_response = fireblocks.transactions.unfreeze_transaction(tx_id, x_end_user_wallet_id=x_end_user_wallet_id, idempotency_key=idempotency_key).result() - print("The response of TransactionsApi->unfreeze_transaction:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TransactionsApi->unfreeze_transaction: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **tx_id** | **str**| The ID of the transaction to unfreeze | - **x_end_user_wallet_id** | **str**| Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. | [optional] - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**UnfreezeTransactionResponse**](UnfreezeTransactionResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Unfreeze response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **validate_address** -> ValidateAddressResponse validate_address(asset_id, address) - -Validate destination address - -Checks if an address is valid and active (for XRP, DOT, XLM, and EOS). -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.validate_address_response import ValidateAddressResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - asset_id = 'asset_id_example' # str | The asset of the address - address = 'address_example' # str | The address to validate - - try: - # Validate destination address - api_response = fireblocks.transactions.validate_address(asset_id, address).result() - print("The response of TransactionsApi->validate_address:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TransactionsApi->validate_address: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **asset_id** | **str**| The asset of the address | - **address** | **str**| The address to validate | - -### Return type - -[**ValidateAddressResponse**](ValidateAddressResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | An Transaction object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLlRyYW5zYWN0aW9uc0FwaQoKQWxsIFVSSXMgYXJlIHJlbGF0aXZlIHRvICpodHRwczovL2FwaS5maXJlYmxvY2tzLmlvL3YxKgoKTWV0aG9kIHwgSFRUUCByZXF1ZXN0IHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tClsqKmNhbmNlbF90cmFuc2FjdGlvbioqXShUcmFuc2FjdGlvbnNBcGkubWQjY2FuY2VsX3RyYW5zYWN0aW9uKSB8ICoqUE9TVCoqIC90cmFuc2FjdGlvbnMve3R4SWR9L2NhbmNlbCB8IENhbmNlbCBhIHRyYW5zYWN0aW9uClsqKmNyZWF0ZV90cmFuc2FjdGlvbioqXShUcmFuc2FjdGlvbnNBcGkubWQjY3JlYXRlX3RyYW5zYWN0aW9uKSB8ICoqUE9TVCoqIC90cmFuc2FjdGlvbnMgfCBDcmVhdGUgYSBuZXcgdHJhbnNhY3Rpb24KWyoqZHJvcF90cmFuc2FjdGlvbioqXShUcmFuc2FjdGlvbnNBcGkubWQjZHJvcF90cmFuc2FjdGlvbikgfCAqKlBPU1QqKiAvdHJhbnNhY3Rpb25zL3t0eElkfS9kcm9wIHwgRHJvcCBFVEggKEVWTSkgdHJhbnNhY3Rpb24gYnkgSUQKWyoqZXN0aW1hdGVfbmV0d29ya19mZWUqKl0oVHJhbnNhY3Rpb25zQXBpLm1kI2VzdGltYXRlX25ldHdvcmtfZmVlKSB8ICoqR0VUKiogL2VzdGltYXRlX25ldHdvcmtfZmVlIHwgRXN0aW1hdGUgdGhlIHJlcXVpcmVkIGZlZSBmb3IgYW4gYXNzZXQKWyoqZXN0aW1hdGVfdHJhbnNhY3Rpb25fZmVlKipdKFRyYW5zYWN0aW9uc0FwaS5tZCNlc3RpbWF0ZV90cmFuc2FjdGlvbl9mZWUpIHwgKipQT1NUKiogL3RyYW5zYWN0aW9ucy9lc3RpbWF0ZV9mZWUgfCBFc3RpbWF0ZSB0cmFuc2FjdGlvbiBmZWUKWyoqZnJlZXplX3RyYW5zYWN0aW9uKipdKFRyYW5zYWN0aW9uc0FwaS5tZCNmcmVlemVfdHJhbnNhY3Rpb24pIHwgKipQT1NUKiogL3RyYW5zYWN0aW9ucy97dHhJZH0vZnJlZXplIHwgRnJlZXplIGEgdHJhbnNhY3Rpb24KWyoqZ2V0X3RyYW5zYWN0aW9uKipdKFRyYW5zYWN0aW9uc0FwaS5tZCNnZXRfdHJhbnNhY3Rpb24pIHwgKipHRVQqKiAvdHJhbnNhY3Rpb25zL3t0eElkfSB8IEdldCBhIHNwZWNpZmljIHRyYW5zYWN0aW9uIGJ5IEZpcmVibG9ja3MgdHJhbnNhY3Rpb24gSUQKWyoqZ2V0X3RyYW5zYWN0aW9uX2J5X2V4dGVybmFsX2lkKipdKFRyYW5zYWN0aW9uc0FwaS5tZCNnZXRfdHJhbnNhY3Rpb25fYnlfZXh0ZXJuYWxfaWQpIHwgKipHRVQqKiAvdHJhbnNhY3Rpb25zL2V4dGVybmFsX3R4X2lkL3tleHRlcm5hbFR4SWR9IHwgR2V0IGEgc3BlY2lmaWMgdHJhbnNhY3Rpb24gYnkgZXh0ZXJuYWwgdHJhbnNhY3Rpb24gSUQKWyoqZ2V0X3RyYW5zYWN0aW9ucyoqXShUcmFuc2FjdGlvbnNBcGkubWQjZ2V0X3RyYW5zYWN0aW9ucykgfCAqKkdFVCoqIC90cmFuc2FjdGlvbnMgfCBHZXQgdHJhbnNhY3Rpb24gaGlzdG9yeQpbKipzZXRfY29uZmlybWF0aW9uX3RocmVzaG9sZF9ieV90cmFuc2FjdGlvbl9oYXNoKipdKFRyYW5zYWN0aW9uc0FwaS5tZCNzZXRfY29uZmlybWF0aW9uX3RocmVzaG9sZF9ieV90cmFuc2FjdGlvbl9oYXNoKSB8ICoqUE9TVCoqIC90eEhhc2gve3R4SGFzaH0vc2V0X2NvbmZpcm1hdGlvbl90aHJlc2hvbGQgfCBTZXQgY29uZmlybWF0aW9uIHRocmVzaG9sZCBieSB0cmFuc2FjdGlvbiBoYXNoClsqKnNldF90cmFuc2FjdGlvbl9jb25maXJtYXRpb25fdGhyZXNob2xkKipdKFRyYW5zYWN0aW9uc0FwaS5tZCNzZXRfdHJhbnNhY3Rpb25fY29uZmlybWF0aW9uX3RocmVzaG9sZCkgfCAqKlBPU1QqKiAvdHJhbnNhY3Rpb25zL3t0eElkfS9zZXRfY29uZmlybWF0aW9uX3RocmVzaG9sZCB8IFNldCBjb25maXJtYXRpb24gdGhyZXNob2xkIGJ5IEZpcmVibG9ja3MgVHJhbnNhY3Rpb24gSUQKWyoqdW5mcmVlemVfdHJhbnNhY3Rpb24qKl0oVHJhbnNhY3Rpb25zQXBpLm1kI3VuZnJlZXplX3RyYW5zYWN0aW9uKSB8ICoqUE9TVCoqIC90cmFuc2FjdGlvbnMve3R4SWR9L3VuZnJlZXplIHwgVW5mcmVlemUgYSB0cmFuc2FjdGlvbgpbKip2YWxpZGF0ZV9hZGRyZXNzKipdKFRyYW5zYWN0aW9uc0FwaS5tZCN2YWxpZGF0ZV9hZGRyZXNzKSB8ICoqR0VUKiogL3RyYW5zYWN0aW9ucy92YWxpZGF0ZV9hZGRyZXNzL3thc3NldElkfS97YWRkcmVzc30gfCBWYWxpZGF0ZSBkZXN0aW5hdGlvbiBhZGRyZXNzCgoKIyAqKmNhbmNlbF90cmFuc2FjdGlvbioqCj4gQ2FuY2VsVHJhbnNhY3Rpb25SZXNwb25zZSBjYW5jZWxfdHJhbnNhY3Rpb24odHhfaWQsIHhfZW5kX3VzZXJfd2FsbGV0X2lkPXhfZW5kX3VzZXJfd2FsbGV0X2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKQ2FuY2VsIGEgdHJhbnNhY3Rpb24KCkNhbmNlbHMgYSB0cmFuc2FjdGlvbiBieSBGaXJlYmxvY2tzIFRyYW5zYWN0aW9uIElELgoKQ2FuIGJlIHVzZWQgb25seSBmb3IgdHJhbnNhY3Rpb25zIHRoYXQgZGlkIG5vdCBnZXQgdG8gdGhlIEJST0FEQ0FTVElORyBzdGF0ZS4KPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY2FuY2VsX3RyYW5zYWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBDYW5jZWxUcmFuc2FjdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHR4X2lkID0gJ3R4X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSB0cmFuc2FjdGlvbiB0byBjYW5jZWwKICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkID0gJ3hfZW5kX3VzZXJfd2FsbGV0X2lkX2V4YW1wbGUnICMgc3RyIHwgVW5pcXVlIElEIG9mIHRoZSBFbmQtVXNlciB3YWxsZXQgdG8gdGhlIEFQSSByZXF1ZXN0LiBSZXF1aXJlZCBmb3IgZW5kLXVzZXIgd2FsbGV0IG9wZXJhdGlvbnMuIChvcHRpb25hbCkKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBDYW5jZWwgYSB0cmFuc2FjdGlvbgogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudHJhbnNhY3Rpb25zLmNhbmNlbF90cmFuc2FjdGlvbih0eF9pZCwgeF9lbmRfdXNlcl93YWxsZXRfaWQ9eF9lbmRfdXNlcl93YWxsZXRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUcmFuc2FjdGlvbnNBcGktPmNhbmNlbF90cmFuc2FjdGlvbjpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUcmFuc2FjdGlvbnNBcGktPmNhbmNlbF90cmFuc2FjdGlvbjogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqdHhfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgdHJhbnNhY3Rpb24gdG8gY2FuY2VsIHwgCiAqKnhfZW5kX3VzZXJfd2FsbGV0X2lkKiogfCAqKnN0cioqfCBVbmlxdWUgSUQgb2YgdGhlIEVuZC1Vc2VyIHdhbGxldCB0byB0aGUgQVBJIHJlcXVlc3QuIFJlcXVpcmVkIGZvciBlbmQtdXNlciB3YWxsZXQgb3BlcmF0aW9ucy4gfCBbb3B0aW9uYWxdIAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipDYW5jZWxUcmFuc2FjdGlvblJlc3BvbnNlKipdKENhbmNlbFRyYW5zYWN0aW9uUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBbiBUcmFuc2FjdGlvbiBvYmplY3QgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmNyZWF0ZV90cmFuc2FjdGlvbioqCj4gQ3JlYXRlVHJhbnNhY3Rpb25SZXNwb25zZSBjcmVhdGVfdHJhbnNhY3Rpb24oeF9lbmRfdXNlcl93YWxsZXRfaWQ9eF9lbmRfdXNlcl93YWxsZXRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksIHRyYW5zYWN0aW9uX3JlcXVlc3Q9dHJhbnNhY3Rpb25fcmVxdWVzdCkKCkNyZWF0ZSBhIG5ldyB0cmFuc2FjdGlvbgoKQ3JlYXRlcyBhIG5ldyB0cmFuc2FjdGlvbi4gVGhpcyBlbmRwb2ludCBjYW4gYmUgdXNlZCBmb3IgcmVndWxhciBUcmFuc2ZlcnMsIENvbnRyYWN0IENhbGxzLCBSYXcgJiBUeXBlZCBtZXNzYWdlIHNpZ25pbmcuIC0gRm9yIFRyYW5zZmVycywgdGhlIHJlcXVpcmVkIHBhcmFtZXRlcnMgYXJlOiBgYXNzZXRJZGAsIGBzb3VyY2VgLCBgZGVzdGluYXRpb25gIGFuZCBgYW1vdW50YC4gLSBGb3IgQ29udHJhY3QgQ2FsbHMsIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXJzIGFyZTogYG9wZXJhdGlvbi5DT05UUkFDVF9DQUxMYCwgYGFzc2V0SWRgIChCYXNlIEFzc2V0KSwgYHNvdXJjZWAsCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV90cmFuc2FjdGlvbl9yZXNwb25zZSBpbXBvcnQgQ3JlYXRlVHJhbnNhY3Rpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlcXVlc3QgaW1wb3J0IFRyYW5zYWN0aW9uUmVxdWVzdApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB4X2VuZF91c2VyX3dhbGxldF9pZCA9ICd4X2VuZF91c2VyX3dhbGxldF9pZF9leGFtcGxlJyAjIHN0ciB8IFVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLiAob3B0aW9uYWwpCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCiAgICB0cmFuc2FjdGlvbl9yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5UcmFuc2FjdGlvblJlcXVlc3QoKSAjIFRyYW5zYWN0aW9uUmVxdWVzdCB8ICAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ3JlYXRlIGEgbmV3IHRyYW5zYWN0aW9uCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50cmFuc2FjdGlvbnMuY3JlYXRlX3RyYW5zYWN0aW9uKHhfZW5kX3VzZXJfd2FsbGV0X2lkPXhfZW5kX3VzZXJfd2FsbGV0X2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCB0cmFuc2FjdGlvbl9yZXF1ZXN0PXRyYW5zYWN0aW9uX3JlcXVlc3QpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUcmFuc2FjdGlvbnNBcGktPmNyZWF0ZV90cmFuc2FjdGlvbjpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUcmFuc2FjdGlvbnNBcGktPmNyZWF0ZV90cmFuc2FjdGlvbjogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqeF9lbmRfdXNlcl93YWxsZXRfaWQqKiB8ICoqc3RyKip8IFVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLiB8IFtvcHRpb25hbF0gCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCiAqKnRyYW5zYWN0aW9uX3JlcXVlc3QqKiB8IFsqKlRyYW5zYWN0aW9uUmVxdWVzdCoqXShUcmFuc2FjdGlvblJlcXVlc3QubWQpfCAgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipDcmVhdGVUcmFuc2FjdGlvblJlc3BvbnNlKipdKENyZWF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgdHJhbnNhY3Rpb24gb2JqZWN0IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipkcm9wX3RyYW5zYWN0aW9uKioKPiBEcm9wVHJhbnNhY3Rpb25SZXNwb25zZSBkcm9wX3RyYW5zYWN0aW9uKHR4X2lkLCB4X2VuZF91c2VyX3dhbGxldF9pZD14X2VuZF91c2VyX3dhbGxldF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwgZHJvcF90cmFuc2FjdGlvbl9yZXF1ZXN0PWRyb3BfdHJhbnNhY3Rpb25fcmVxdWVzdCkKCkRyb3AgRVRIIChFVk0pIHRyYW5zYWN0aW9uIGJ5IElECgpEcm9wcyBhIHN0dWNrIEVUSCAoRVZNKSB0cmFuc2FjdGlvbiBhbmQgY3JlYXRlcyBhIHJlcGxhY2VtZW50IHRyYW5zYWN0aW9uIHdpdGggMCBhbW91bnQuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRyb3BfdHJhbnNhY3Rpb25fcmVxdWVzdCBpbXBvcnQgRHJvcFRyYW5zYWN0aW9uUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRyb3BfdHJhbnNhY3Rpb25fcmVzcG9uc2UgaW1wb3J0IERyb3BUcmFuc2FjdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHR4X2lkID0gJ3R4X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSB0cmFuc2FjdGlvbgogICAgeF9lbmRfdXNlcl93YWxsZXRfaWQgPSAneF9lbmRfdXNlcl93YWxsZXRfaWRfZXhhbXBsZScgIyBzdHIgfCBVbmlxdWUgSUQgb2YgdGhlIEVuZC1Vc2VyIHdhbGxldCB0byB0aGUgQVBJIHJlcXVlc3QuIFJlcXVpcmVkIGZvciBlbmQtdXNlciB3YWxsZXQgb3BlcmF0aW9ucy4gKG9wdGlvbmFsKQogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQogICAgZHJvcF90cmFuc2FjdGlvbl9yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5Ecm9wVHJhbnNhY3Rpb25SZXF1ZXN0KCkgIyBEcm9wVHJhbnNhY3Rpb25SZXF1ZXN0IHwgIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBEcm9wIEVUSCAoRVZNKSB0cmFuc2FjdGlvbiBieSBJRAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudHJhbnNhY3Rpb25zLmRyb3BfdHJhbnNhY3Rpb24odHhfaWQsIHhfZW5kX3VzZXJfd2FsbGV0X2lkPXhfZW5kX3VzZXJfd2FsbGV0X2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCBkcm9wX3RyYW5zYWN0aW9uX3JlcXVlc3Q9ZHJvcF90cmFuc2FjdGlvbl9yZXF1ZXN0KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVHJhbnNhY3Rpb25zQXBpLT5kcm9wX3RyYW5zYWN0aW9uOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRyYW5zYWN0aW9uc0FwaS0+ZHJvcF90cmFuc2FjdGlvbjogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqdHhfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgdHJhbnNhY3Rpb24gfCAKICoqeF9lbmRfdXNlcl93YWxsZXRfaWQqKiB8ICoqc3RyKip8IFVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLiB8IFtvcHRpb25hbF0gCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCiAqKmRyb3BfdHJhbnNhY3Rpb25fcmVxdWVzdCoqIHwgWyoqRHJvcFRyYW5zYWN0aW9uUmVxdWVzdCoqXShEcm9wVHJhbnNhY3Rpb25SZXF1ZXN0Lm1kKXwgIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqRHJvcFRyYW5zYWN0aW9uUmVzcG9uc2UqKl0oRHJvcFRyYW5zYWN0aW9uUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IE9wZXJhdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKiplc3RpbWF0ZV9uZXR3b3JrX2ZlZSoqCj4gRXN0aW1hdGVkTmV0d29ya0ZlZVJlc3BvbnNlIGVzdGltYXRlX25ldHdvcmtfZmVlKGFzc2V0X2lkKQoKRXN0aW1hdGUgdGhlIHJlcXVpcmVkIGZlZSBmb3IgYW4gYXNzZXQKCkdldHMgdGhlIGVzdGltYXRlZCByZXF1aXJlZCBmZWUgZm9yIGFuIGFzc2V0LgpGaXJlYmxvY2tzIGZldGNoZXMsIGNhbGN1bGF0ZXMgYW5kIGNhY2hlcyB0aGUgcmVzdWx0IGV2ZXJ5IDMwIHNlY29uZHMuCkN1c3RvbWVycyBzaG91bGQgcXVlcnkgdGhpcyBBUEkgd2hpbGUgdGFraW5nIHRoZSBjYWNoaW5nIGludGVydmFsIGludG8gY29uc2lkZXJhdGlvbi4KTm90ZXM6Ci0gVGhlIGBuZXR3b3JrRmVlYCBwYXJhbWV0ZXIgaXMgdGhlIGBnYXNQcmljZWAgd2l0aCBhIGdpdmVuIGRlbHRhIGFkZGVkLCBtdWx0aXBsaWVkIGJ5IHRoZSBnYXNMaW1pdCBwbHVzIHRoZSBkZWx0YS4gLSBUaGUgZXN0aW1hdGlvbiBwcm92aWRlZCBkZXBlbmRzIG9uIHRoZSBhc3NldCB0eXBlLgogICAgLSBGb3IgVVRYTy1iYXNlZCBhc3NldHMsIHRoZSByZXNwb25zZSBjb250YWlucyB0aGUgYGZlZVBlckJ5dGVgIHBhcmFtZXRlcgogICAgLSBGb3IgRVRILWJhc2VkIGFuZCBhbGwgRVZNIGJhc2VkIGFzc2V0cywgdGhlIHJlc3BvbnNlIHdpbGwgY29udGFpbiBgZ2FzUHJpY2VgIHBhcmFtZXRlci4gVGhpcyBpcyBjYWxjdWxhdGVkIGJ5IGFkZGluZyB0aGUgYGJhc2VGZWVgIHRvIHRoZSBgYWN0dWFsUHJpb3JpdHlgIGJhc2VkIG9uIHRoZSBsYXRlc3QgMTIgYmxvY2tzLiBUaGUgcmVzcG9uc2UgZm9yIEVUSC1iYXNlZCAgY29udGFpbnMgdGhlIGBiYXNlRmVlYCwgYGdhc1ByaWNlYCwgYW5kIGBwcmlvcml0eUZlZWAgcGFyYW1ldGVycy4KICAgIC0gRm9yIEFEQS1iYXNlZCBhc3NldHMsIHRoZSByZXNwb25zZSB3aWxsIGNvbnRhaW4gdGhlIHBhcmFtZXRlciBgbmV0d29ya0ZlZWAgYW5kIGBmZWVQZXJCeXRlYCBwYXJhbWV0ZXJzLgogICAgLSBGb3IgWFJQIGFuZCBYTE0sIHRoZSByZXNwb25zZSB3aWxsIGNvbnRhaW4gdGhlIHRyYW5zYWN0aW9uIGZlZS4KICAgIC0gRm9yIG90aGVyIGFzc2V0cywgdGhlIHJlc3BvbnNlIHdpbGwgY29udGFpbiB0aGUgYG5ldHdvcmtGZWVgIHBhcmFtZXRlci4KCkxlYXJuIG1vcmUgYWJvdXQgRmlyZWJsb2NrcyBGZWUgTWFuYWdlbWVudCBpbiB0aGUgZm9sbG93aW5nIFtndWlkZV0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS9lc3RpbWF0ZS10cmFuc2FjdGlvbi1mZWUpLgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lc3RpbWF0ZWRfbmV0d29ya19mZWVfcmVzcG9uc2UgaW1wb3J0IEVzdGltYXRlZE5ldHdvcmtGZWVSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBhc3NldF9pZCA9ICdhc3NldF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBhc3NldCBmb3Igd2hpY2ggdG8gZXN0aW1hdGUgdGhlIGZlZQoKICAgIHRyeToKICAgICAgICAjIEVzdGltYXRlIHRoZSByZXF1aXJlZCBmZWUgZm9yIGFuIGFzc2V0CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50cmFuc2FjdGlvbnMuZXN0aW1hdGVfbmV0d29ya19mZWUoYXNzZXRfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUcmFuc2FjdGlvbnNBcGktPmVzdGltYXRlX25ldHdvcmtfZmVlOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRyYW5zYWN0aW9uc0FwaS0+ZXN0aW1hdGVfbmV0d29ya19mZWU6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmFzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgYXNzZXQgZm9yIHdoaWNoIHRvIGVzdGltYXRlIHRoZSBmZWUgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqRXN0aW1hdGVkTmV0d29ya0ZlZVJlc3BvbnNlKipdKEVzdGltYXRlZE5ldHdvcmtGZWVSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEVzdGltYXRlZCBmZWVzIHJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKiplc3RpbWF0ZV90cmFuc2FjdGlvbl9mZWUqKgo+IEVzdGltYXRlZFRyYW5zYWN0aW9uRmVlUmVzcG9uc2UgZXN0aW1hdGVfdHJhbnNhY3Rpb25fZmVlKGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksIHRyYW5zYWN0aW9uX3JlcXVlc3Q9dHJhbnNhY3Rpb25fcmVxdWVzdCkKCkVzdGltYXRlIHRyYW5zYWN0aW9uIGZlZQoKRXN0aW1hdGVzIHRoZSB0cmFuc2FjdGlvbiBmZWUgZm9yIGEgc3BlY2lmaWMgdHJhbnNhY3Rpb24gcmVxdWVzdC4KVGhpcyBlbmRwb2ludCBzaW11bGF0ZXMgYSB0cmFuc2FjdGlvbiB3aGljaCBtZWFucyB0aGF0IHRoZSBzeXN0ZW0gd2lsbCBleHBlY3QgdG8gaGF2ZSB0aGUgcmVxdWVzdGVkIGFzc2V0IGFuZCBiYWxhbmNlIGluIHRoZSBzcGVjaWZpZWQgd2FsbGV0LgoKCioqTm90ZSoqOiBTdXBwb3J0cyBhbGwgRmlyZWJsb2NrcyBhc3NldHMgZXhjZXB0IFpDYXNoIChaRUMpLgpMZWFybiBtb3JlIGFib3V0IEZpcmVibG9ja3MgRmVlIE1hbmFnZW1lbnQgaW4gdGhlIGZvbGxvd2luZyBbZ3VpZGVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9yZWZlcmVuY2UvZXN0aW1hdGUtdHJhbnNhY3Rpb24tZmVlKS4KPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lc3RpbWF0ZWRfdHJhbnNhY3Rpb25fZmVlX3Jlc3BvbnNlIGltcG9ydCBFc3RpbWF0ZWRUcmFuc2FjdGlvbkZlZVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVxdWVzdCBpbXBvcnQgVHJhbnNhY3Rpb25SZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKICAgIHRyYW5zYWN0aW9uX3JlcXVlc3QgPSBmaXJlYmxvY2tzLlRyYW5zYWN0aW9uUmVxdWVzdCgpICMgVHJhbnNhY3Rpb25SZXF1ZXN0IHwgIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBFc3RpbWF0ZSB0cmFuc2FjdGlvbiBmZWUKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRyYW5zYWN0aW9ucy5lc3RpbWF0ZV90cmFuc2FjdGlvbl9mZWUoaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwgdHJhbnNhY3Rpb25fcmVxdWVzdD10cmFuc2FjdGlvbl9yZXF1ZXN0KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVHJhbnNhY3Rpb25zQXBpLT5lc3RpbWF0ZV90cmFuc2FjdGlvbl9mZWU6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVHJhbnNhY3Rpb25zQXBpLT5lc3RpbWF0ZV90cmFuc2FjdGlvbl9mZWU6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCiAqKnRyYW5zYWN0aW9uX3JlcXVlc3QqKiB8IFsqKlRyYW5zYWN0aW9uUmVxdWVzdCoqXShUcmFuc2FjdGlvblJlcXVlc3QubWQpfCAgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipFc3RpbWF0ZWRUcmFuc2FjdGlvbkZlZVJlc3BvbnNlKipdKEVzdGltYXRlZFRyYW5zYWN0aW9uRmVlUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEVzdGltYXRlZCBmZWVzIHJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipmcmVlemVfdHJhbnNhY3Rpb24qKgo+IEZyZWV6ZVRyYW5zYWN0aW9uUmVzcG9uc2UgZnJlZXplX3RyYW5zYWN0aW9uKHR4X2lkLCB4X2VuZF91c2VyX3dhbGxldF9pZD14X2VuZF91c2VyX3dhbGxldF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCkZyZWV6ZSBhIHRyYW5zYWN0aW9uCgpGcmVlemVzIGEgdHJhbnNhY3Rpb24gYnkgSUQuCgpVc3VhbGx5IHVzZWQgZm9yIEFNTCBpbnRlZ3JhdGlvbnMgd2hlbiB0aGUgaW5jb21pbmcgZnVuZHMgc2hvdWxkIGJlIHF1YXJhbnRpbmVkLgpGb3IgYWNjb3VudCBiYXNlZCBhc3NldHMgLSB0aGUgZW50aXJlIGFtb3VudCBvZiB0aGUgdHJhbnNhY3Rpb24gaXMgZnJvemVuIApGb3IgVVRYTyBiYXNlZCBhc3NldHMgLSBhbGwgVVRYT3Mgb2YgdGhlIHNwZWNpZmllZCB0cmFuc2FjdGlvbiBhcmUgZnJvemVuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5mcmVlemVfdHJhbnNhY3Rpb25fcmVzcG9uc2UgaW1wb3J0IEZyZWV6ZVRyYW5zYWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdHhfaWQgPSAndHhfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIHRyYW5zYWN0aW9uIHRvIGZyZWV6ZQogICAgeF9lbmRfdXNlcl93YWxsZXRfaWQgPSAneF9lbmRfdXNlcl93YWxsZXRfaWRfZXhhbXBsZScgIyBzdHIgfCBVbmlxdWUgSUQgb2YgdGhlIEVuZC1Vc2VyIHdhbGxldCB0byB0aGUgQVBJIHJlcXVlc3QuIFJlcXVpcmVkIGZvciBlbmQtdXNlciB3YWxsZXQgb3BlcmF0aW9ucy4gKG9wdGlvbmFsKQogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIEZyZWV6ZSBhIHRyYW5zYWN0aW9uCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50cmFuc2FjdGlvbnMuZnJlZXplX3RyYW5zYWN0aW9uKHR4X2lkLCB4X2VuZF91c2VyX3dhbGxldF9pZD14X2VuZF91c2VyX3dhbGxldF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRyYW5zYWN0aW9uc0FwaS0+ZnJlZXplX3RyYW5zYWN0aW9uOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRyYW5zYWN0aW9uc0FwaS0+ZnJlZXplX3RyYW5zYWN0aW9uOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip0eF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSB0cmFuc2FjdGlvbiB0byBmcmVlemUgfCAKICoqeF9lbmRfdXNlcl93YWxsZXRfaWQqKiB8ICoqc3RyKip8IFVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLiB8IFtvcHRpb25hbF0gCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkZyZWV6ZVRyYW5zYWN0aW9uUmVzcG9uc2UqKl0oRnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IGZyZWV6ZSByZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfdHJhbnNhY3Rpb24qKgo+IFRyYW5zYWN0aW9uUmVzcG9uc2UgZ2V0X3RyYW5zYWN0aW9uKHR4X2lkKQoKR2V0IGEgc3BlY2lmaWMgdHJhbnNhY3Rpb24gYnkgRmlyZWJsb2NrcyB0cmFuc2FjdGlvbiBJRAoKR2V0IGEgc3BlY2lmaWMgdHJhbnNhY3Rpb24gZGF0YSBieSBGaXJlYmxvY2tzIFRyYW5zYWN0aW9uIElECjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIFZpZXdlci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVzcG9uc2UgaW1wb3J0IFRyYW5zYWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdHhfaWQgPSAnMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgdHJhbnNhY3Rpb24gdG8gcmV0dXJuCgogICAgdHJ5OgogICAgICAgICMgR2V0IGEgc3BlY2lmaWMgdHJhbnNhY3Rpb24gYnkgRmlyZWJsb2NrcyB0cmFuc2FjdGlvbiBJRAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudHJhbnNhY3Rpb25zLmdldF90cmFuc2FjdGlvbih0eF9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRyYW5zYWN0aW9uc0FwaS0+Z2V0X3RyYW5zYWN0aW9uOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRyYW5zYWN0aW9uc0FwaS0+Z2V0X3RyYW5zYWN0aW9uOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip0eF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSB0cmFuc2FjdGlvbiB0byByZXR1cm4gfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqVHJhbnNhY3Rpb25SZXNwb25zZSoqXShUcmFuc2FjdGlvblJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQW4gVHJhbnNhY3Rpb24gb2JqZWN0IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfdHJhbnNhY3Rpb25fYnlfZXh0ZXJuYWxfaWQqKgo+IFRyYW5zYWN0aW9uUmVzcG9uc2UgZ2V0X3RyYW5zYWN0aW9uX2J5X2V4dGVybmFsX2lkKGV4dGVybmFsX3R4X2lkKQoKR2V0IGEgc3BlY2lmaWMgdHJhbnNhY3Rpb24gYnkgZXh0ZXJuYWwgdHJhbnNhY3Rpb24gSUQKClJldHVybnMgdHJhbnNhY3Rpb24gYnkgZXh0ZXJuYWwgdHJhbnNhY3Rpb24gSUQuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIFZpZXdlci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVzcG9uc2UgaW1wb3J0IFRyYW5zYWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgZXh0ZXJuYWxfdHhfaWQgPSAnMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwJyAjIHN0ciB8IFRoZSBleHRlcm5hbCBJRCBvZiB0aGUgdHJhbnNhY3Rpb24gdG8gcmV0dXJuCgogICAgdHJ5OgogICAgICAgICMgR2V0IGEgc3BlY2lmaWMgdHJhbnNhY3Rpb24gYnkgZXh0ZXJuYWwgdHJhbnNhY3Rpb24gSUQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRyYW5zYWN0aW9ucy5nZXRfdHJhbnNhY3Rpb25fYnlfZXh0ZXJuYWxfaWQoZXh0ZXJuYWxfdHhfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUcmFuc2FjdGlvbnNBcGktPmdldF90cmFuc2FjdGlvbl9ieV9leHRlcm5hbF9pZDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUcmFuc2FjdGlvbnNBcGktPmdldF90cmFuc2FjdGlvbl9ieV9leHRlcm5hbF9pZDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqZXh0ZXJuYWxfdHhfaWQqKiB8ICoqc3RyKip8IFRoZSBleHRlcm5hbCBJRCBvZiB0aGUgdHJhbnNhY3Rpb24gdG8gcmV0dXJuIHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKlRyYW5zYWN0aW9uUmVzcG9uc2UqKl0oVHJhbnNhY3Rpb25SZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEFuIFRyYW5zYWN0aW9uIG9iamVjdCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X3RyYW5zYWN0aW9ucyoqCj4gTGlzdFtUcmFuc2FjdGlvblJlc3BvbnNlXSBnZXRfdHJhbnNhY3Rpb25zKG5leHQ9bmV4dCwgcHJldj1wcmV2LCBiZWZvcmU9YmVmb3JlLCBhZnRlcj1hZnRlciwgc3RhdHVzPXN0YXR1cywgb3JkZXJfYnk9b3JkZXJfYnksIHNvcnQ9c29ydCwgbGltaXQ9bGltaXQsIHNvdXJjZV90eXBlPXNvdXJjZV90eXBlLCBzb3VyY2VfaWQ9c291cmNlX2lkLCBkZXN0X3R5cGU9ZGVzdF90eXBlLCBkZXN0X2lkPWRlc3RfaWQsIGFzc2V0cz1hc3NldHMsIHR4X2hhc2g9dHhfaGFzaCwgc291cmNlX3dhbGxldF9pZD1zb3VyY2Vfd2FsbGV0X2lkLCBkZXN0X3dhbGxldF9pZD1kZXN0X3dhbGxldF9pZCkKCkdldCB0cmFuc2FjdGlvbiBoaXN0b3J5CgpHZXQgdGhlIHRyYW5zYWN0aW9uIGhpc3RvcnkgZm9yIHlvdXIgd29ya3NwYWNlLgoKKipFbmRwb2ludCBQZXJtaXNzaW9uczoqKiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgVmlld2VyLgoKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVzcG9uc2UgaW1wb3J0IFRyYW5zYWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgbmV4dCA9ICduZXh0X2V4YW1wbGUnICMgc3RyIHwgQ3Vyc29yIHJldHVybmVkIGluIG5leHQtcGFnZSBoZWFkZXIgdGhhdCBjYW4gYmUgdXNlZCB0byBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMgKG9wdGlvbmFsKQogICAgcHJldiA9ICdwcmV2X2V4YW1wbGUnICMgc3RyIHwgQ3Vyc29yIHJldHVybmVkIGluIHByZXYtcGFnZSBoZWFkZXIgdGhhdCBjYW4gYmUgdXNlZCB0byBmZXRjaCB0aGUgcHJldmlvdXMgcGFnZSBvZiByZXN1bHRzIChvcHRpb25hbCkKICAgIGJlZm9yZSA9ICdiZWZvcmVfZXhhbXBsZScgIyBzdHIgfCBVbml4IHRpbWVzdGFtcCBpbiBtaWxsaXNlY29uZHMuIFJldHVybnMgb25seSB0cmFuc2FjdGlvbnMgY3JlYXRlZCBiZWZvcmUgdGhlIHNwZWNpZmllZCBkYXRlLiBQcm92aWRlcyBhbiBleHBsaWNpdCBlbmQgdGltZS4gSWYgbm90IHByb3ZpZGVkLCBkZWZhdWx0IHZhbHVlIHdpbGwgYmUgYXBwbGllZCwgYW5kIG1heSBjaGFuZ2Ugb3ZlciB0aW1lLiAgVGhlIGN1cnJlbnQgZGVmYXVsdCB2YWx1ZSBpcyB0aGUgcGFzdCA5MCBkYXlzLiAgKG9wdGlvbmFsKQogICAgYWZ0ZXIgPSAnYWZ0ZXJfZXhhbXBsZScgIyBzdHIgfCBVbml4IHRpbWVzdGFtcCBpbiBtaWxsaXNlY29uZHMuIFJldHVybnMgb25seSB0cmFuc2FjdGlvbnMgY3JlYXRlZCBhZnRlciB0aGUgc3BlY2lmaWVkIGRhdGUuIFByb3ZpZGVzIGFuIGV4cGxpY2l0IHN0YXJ0IHRpbWUuIElmIG5vdCBwcm92aWRlZCwgZGVmYXVsdCB2YWx1ZSB3aWxsIGJlIGFwcGxpZWQsIGFuZCBtYXkgY2hhbmdlIG92ZXIgdGltZS4gIFRoZSBjdXJyZW50IGRlZmF1bHQgdmFsdWUgaXMgdGhlIHBhc3QgOTAgZGF5cy4gIChvcHRpb25hbCkKICAgIHN0YXR1cyA9ICdzdGF0dXNfZXhhbXBsZScgIyBzdHIgfCBZb3UgY2FuIGZpbHRlciBieSBvbmUgb2YgdGhlIHN0YXR1c2VzLiAob3B0aW9uYWwpCiAgICBvcmRlcl9ieSA9ICdvcmRlcl9ieV9leGFtcGxlJyAjIHN0ciB8IFRoZSBmaWVsZCB0byBvcmRlciB0aGUgcmVzdWx0cyBieS4gICoqTm90ZToqKiBPcmRlcmluZyBieSBhIGZpZWxkIHRoYXQgaXMgbm90IGBjcmVhdGVkQXRgIG1heSByZXN1bHQgaW4gdHJhbnNhY3Rpb25zIHRoYXQgcmVjZWl2ZSB1cGRhdGVzIGFzIHlvdSByZXF1ZXN0IHRoZSBuZXh0IG9yIHByZXZpb3VzIHBhZ2VzIG9mIHJlc3VsdHMsIHJlc3VsdGluZyBpbiBtaXNzaW5nIHRob3NlIHRyYW5zYWN0aW9ucy4gIChvcHRpb25hbCkKICAgIHNvcnQgPSAnc29ydF9leGFtcGxlJyAjIHN0ciB8IFRoZSBkaXJlY3Rpb24gdG8gb3JkZXIgdGhlIHJlc3VsdHMgYnkgKG9wdGlvbmFsKQogICAgbGltaXQgPSAyMDAgIyBpbnQgfCBMaW1pdHMgdGhlIG51bWJlciBvZiByZXN1bHRzLiBJZiBub3QgcHJvdmlkZWQsIGEgbGltaXQgb2YgMjAwIHdpbGwgYmUgdXNlZC4gVGhlIG1heGltdW0gYWxsb3dlZCBsaW1pdCBpcyA1MDAgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byAyMDApCiAgICBzb3VyY2VfdHlwZSA9ICdzb3VyY2VfdHlwZV9leGFtcGxlJyAjIHN0ciB8IFRoZSBzb3VyY2UgdHlwZSBvZiB0aGUgdHJhbnNhY3Rpb24gKG9wdGlvbmFsKQogICAgc291cmNlX2lkID0gJ3NvdXJjZV9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBzb3VyY2UgSUQgb2YgdGhlIHRyYW5zYWN0aW9uIChvcHRpb25hbCkKICAgIGRlc3RfdHlwZSA9ICdkZXN0X3R5cGVfZXhhbXBsZScgIyBzdHIgfCBUaGUgZGVzdGluYXRpb24gdHlwZSBvZiB0aGUgdHJhbnNhY3Rpb24gKG9wdGlvbmFsKQogICAgZGVzdF9pZCA9ICdkZXN0X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIGRlc3RpbmF0aW9uIElEIG9mIHRoZSB0cmFuc2FjdGlvbiAob3B0aW9uYWwpCiAgICBhc3NldHMgPSAnYXNzZXRzX2V4YW1wbGUnICMgc3RyIHwgQSBsaXN0IG9mIGFzc2V0cyB0byBmaWx0ZXIgYnksIHNlcGVyYXRlZCBieSBjb21tYXMgKG9wdGlvbmFsKQogICAgdHhfaGFzaCA9ICd0eF9oYXNoX2V4YW1wbGUnICMgc3RyIHwgUmV0dXJucyBvbmx5IHJlc3VsdHMgd2l0aCBhIHNwZWNpZmllZCB0eEhhc2ggKG9wdGlvbmFsKQogICAgc291cmNlX3dhbGxldF9pZCA9ICdzb3VyY2Vfd2FsbGV0X2lkX2V4YW1wbGUnICMgc3RyIHwgUmV0dXJucyBvbmx5IHJlc3VsdHMgd2hlcmUgdGhlIHNvdXJjZSBpcyBhIHNwZWNpZmljIGVuZCB1c2VyIHdhbGxldCAob3B0aW9uYWwpCiAgICBkZXN0X3dhbGxldF9pZCA9ICdkZXN0X3dhbGxldF9pZF9leGFtcGxlJyAjIHN0ciB8IFJldHVybnMgb25seSByZXN1bHRzIHdoZXJlIHRoZSBkZXN0aW5hdGlvbiBpcyBhIHNwZWNpZmljIGVuZCB1c2VyIHdhbGxldCAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgR2V0IHRyYW5zYWN0aW9uIGhpc3RvcnkKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRyYW5zYWN0aW9ucy5nZXRfdHJhbnNhY3Rpb25zKG5leHQ9bmV4dCwgcHJldj1wcmV2LCBiZWZvcmU9YmVmb3JlLCBhZnRlcj1hZnRlciwgc3RhdHVzPXN0YXR1cywgb3JkZXJfYnk9b3JkZXJfYnksIHNvcnQ9c29ydCwgbGltaXQ9bGltaXQsIHNvdXJjZV90eXBlPXNvdXJjZV90eXBlLCBzb3VyY2VfaWQ9c291cmNlX2lkLCBkZXN0X3R5cGU9ZGVzdF90eXBlLCBkZXN0X2lkPWRlc3RfaWQsIGFzc2V0cz1hc3NldHMsIHR4X2hhc2g9dHhfaGFzaCwgc291cmNlX3dhbGxldF9pZD1zb3VyY2Vfd2FsbGV0X2lkLCBkZXN0X3dhbGxldF9pZD1kZXN0X3dhbGxldF9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRyYW5zYWN0aW9uc0FwaS0+Z2V0X3RyYW5zYWN0aW9uczpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUcmFuc2FjdGlvbnNBcGktPmdldF90cmFuc2FjdGlvbnM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKm5leHQqKiB8ICoqc3RyKip8IEN1cnNvciByZXR1cm5lZCBpbiBuZXh0LXBhZ2UgaGVhZGVyIHRoYXQgY2FuIGJlIHVzZWQgdG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiByZXN1bHRzIHwgW29wdGlvbmFsXSAKICoqcHJldioqIHwgKipzdHIqKnwgQ3Vyc29yIHJldHVybmVkIGluIHByZXYtcGFnZSBoZWFkZXIgdGhhdCBjYW4gYmUgdXNlZCB0byBmZXRjaCB0aGUgcHJldmlvdXMgcGFnZSBvZiByZXN1bHRzIHwgW29wdGlvbmFsXSAKICoqYmVmb3JlKiogfCAqKnN0cioqfCBVbml4IHRpbWVzdGFtcCBpbiBtaWxsaXNlY29uZHMuIFJldHVybnMgb25seSB0cmFuc2FjdGlvbnMgY3JlYXRlZCBiZWZvcmUgdGhlIHNwZWNpZmllZCBkYXRlLiBQcm92aWRlcyBhbiBleHBsaWNpdCBlbmQgdGltZS4gSWYgbm90IHByb3ZpZGVkLCBkZWZhdWx0IHZhbHVlIHdpbGwgYmUgYXBwbGllZCwgYW5kIG1heSBjaGFuZ2Ugb3ZlciB0aW1lLiAgVGhlIGN1cnJlbnQgZGVmYXVsdCB2YWx1ZSBpcyB0aGUgcGFzdCA5MCBkYXlzLiAgfCBbb3B0aW9uYWxdIAogKiphZnRlcioqIHwgKipzdHIqKnwgVW5peCB0aW1lc3RhbXAgaW4gbWlsbGlzZWNvbmRzLiBSZXR1cm5zIG9ubHkgdHJhbnNhY3Rpb25zIGNyZWF0ZWQgYWZ0ZXIgdGhlIHNwZWNpZmllZCBkYXRlLiBQcm92aWRlcyBhbiBleHBsaWNpdCBzdGFydCB0aW1lLiBJZiBub3QgcHJvdmlkZWQsIGRlZmF1bHQgdmFsdWUgd2lsbCBiZSBhcHBsaWVkLCBhbmQgbWF5IGNoYW5nZSBvdmVyIHRpbWUuICBUaGUgY3VycmVudCBkZWZhdWx0IHZhbHVlIGlzIHRoZSBwYXN0IDkwIGRheXMuICB8IFtvcHRpb25hbF0gCiAqKnN0YXR1cyoqIHwgKipzdHIqKnwgWW91IGNhbiBmaWx0ZXIgYnkgb25lIG9mIHRoZSBzdGF0dXNlcy4gfCBbb3B0aW9uYWxdIAogKipvcmRlcl9ieSoqIHwgKipzdHIqKnwgVGhlIGZpZWxkIHRvIG9yZGVyIHRoZSByZXN1bHRzIGJ5LiAgKipOb3RlOioqIE9yZGVyaW5nIGJ5IGEgZmllbGQgdGhhdCBpcyBub3QgJiN4NjA7Y3JlYXRlZEF0JiN4NjA7IG1heSByZXN1bHQgaW4gdHJhbnNhY3Rpb25zIHRoYXQgcmVjZWl2ZSB1cGRhdGVzIGFzIHlvdSByZXF1ZXN0IHRoZSBuZXh0IG9yIHByZXZpb3VzIHBhZ2VzIG9mIHJlc3VsdHMsIHJlc3VsdGluZyBpbiBtaXNzaW5nIHRob3NlIHRyYW5zYWN0aW9ucy4gIHwgW29wdGlvbmFsXSAKICoqc29ydCoqIHwgKipzdHIqKnwgVGhlIGRpcmVjdGlvbiB0byBvcmRlciB0aGUgcmVzdWx0cyBieSB8IFtvcHRpb25hbF0gCiAqKmxpbWl0KiogfCAqKmludCoqfCBMaW1pdHMgdGhlIG51bWJlciBvZiByZXN1bHRzLiBJZiBub3QgcHJvdmlkZWQsIGEgbGltaXQgb2YgMjAwIHdpbGwgYmUgdXNlZC4gVGhlIG1heGltdW0gYWxsb3dlZCBsaW1pdCBpcyA1MDAgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIDIwMF0KICoqc291cmNlX3R5cGUqKiB8ICoqc3RyKip8IFRoZSBzb3VyY2UgdHlwZSBvZiB0aGUgdHJhbnNhY3Rpb24gfCBbb3B0aW9uYWxdIAogKipzb3VyY2VfaWQqKiB8ICoqc3RyKip8IFRoZSBzb3VyY2UgSUQgb2YgdGhlIHRyYW5zYWN0aW9uIHwgW29wdGlvbmFsXSAKICoqZGVzdF90eXBlKiogfCAqKnN0cioqfCBUaGUgZGVzdGluYXRpb24gdHlwZSBvZiB0aGUgdHJhbnNhY3Rpb24gfCBbb3B0aW9uYWxdIAogKipkZXN0X2lkKiogfCAqKnN0cioqfCBUaGUgZGVzdGluYXRpb24gSUQgb2YgdGhlIHRyYW5zYWN0aW9uIHwgW29wdGlvbmFsXSAKICoqYXNzZXRzKiogfCAqKnN0cioqfCBBIGxpc3Qgb2YgYXNzZXRzIHRvIGZpbHRlciBieSwgc2VwZXJhdGVkIGJ5IGNvbW1hcyB8IFtvcHRpb25hbF0gCiAqKnR4X2hhc2gqKiB8ICoqc3RyKip8IFJldHVybnMgb25seSByZXN1bHRzIHdpdGggYSBzcGVjaWZpZWQgdHhIYXNoIHwgW29wdGlvbmFsXSAKICoqc291cmNlX3dhbGxldF9pZCoqIHwgKipzdHIqKnwgUmV0dXJucyBvbmx5IHJlc3VsdHMgd2hlcmUgdGhlIHNvdXJjZSBpcyBhIHNwZWNpZmljIGVuZCB1c2VyIHdhbGxldCB8IFtvcHRpb25hbF0gCiAqKmRlc3Rfd2FsbGV0X2lkKiogfCAqKnN0cioqfCBSZXR1cm5zIG9ubHkgcmVzdWx0cyB3aGVyZSB0aGUgZGVzdGluYXRpb24gaXMgYSBzcGVjaWZpYyBlbmQgdXNlciB3YWxsZXQgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipMaXN0W1RyYW5zYWN0aW9uUmVzcG9uc2VdKipdKFRyYW5zYWN0aW9uUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBIGxpc3Qgb2YgdHJhbnNhY3Rpb25zIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gICogbmV4dC1wYWdlIC0gIDxicj4gICogcHJldi1wYWdlIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipzZXRfY29uZmlybWF0aW9uX3RocmVzaG9sZF9ieV90cmFuc2FjdGlvbl9oYXNoKioKPiBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVzcG9uc2Ugc2V0X2NvbmZpcm1hdGlvbl90aHJlc2hvbGRfYnlfdHJhbnNhY3Rpb25faGFzaCh0eF9oYXNoLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCBzZXRfY29uZmlybWF0aW9uc190aHJlc2hvbGRfcmVxdWVzdD1zZXRfY29uZmlybWF0aW9uc190aHJlc2hvbGRfcmVxdWVzdCkKClNldCBjb25maXJtYXRpb24gdGhyZXNob2xkIGJ5IHRyYW5zYWN0aW9uIGhhc2gKCk92ZXJyaWRlcyB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mIGNvbmZpcm1hdGlvbnMgZm9yIHRyYW5zYWN0aW9uIGNvbXBsZXRpb24gYnkgdHJhbnNhY3Rpb24gaGFzaC4KPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2NvbmZpcm1hdGlvbnNfdGhyZXNob2xkX3JlcXVlc3QgaW1wb3J0IFNldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2NvbmZpcm1hdGlvbnNfdGhyZXNob2xkX3Jlc3BvbnNlIGltcG9ydCBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdHhfaGFzaCA9ICd0eF9oYXNoX2V4YW1wbGUnICMgc3RyIHwgVGhlIFR4SGFzaAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQogICAgc2V0X2NvbmZpcm1hdGlvbnNfdGhyZXNob2xkX3JlcXVlc3QgPSBmaXJlYmxvY2tzLlNldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXF1ZXN0KCkgIyBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdCB8ICAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgU2V0IGNvbmZpcm1hdGlvbiB0aHJlc2hvbGQgYnkgdHJhbnNhY3Rpb24gaGFzaAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudHJhbnNhY3Rpb25zLnNldF9jb25maXJtYXRpb25fdGhyZXNob2xkX2J5X3RyYW5zYWN0aW9uX2hhc2godHhfaGFzaCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwgc2V0X2NvbmZpcm1hdGlvbnNfdGhyZXNob2xkX3JlcXVlc3Q9c2V0X2NvbmZpcm1hdGlvbnNfdGhyZXNob2xkX3JlcXVlc3QpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUcmFuc2FjdGlvbnNBcGktPnNldF9jb25maXJtYXRpb25fdGhyZXNob2xkX2J5X3RyYW5zYWN0aW9uX2hhc2g6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVHJhbnNhY3Rpb25zQXBpLT5zZXRfY29uZmlybWF0aW9uX3RocmVzaG9sZF9ieV90cmFuc2FjdGlvbl9oYXNoOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip0eF9oYXNoKiogfCAqKnN0cioqfCBUaGUgVHhIYXNoIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCiAqKnNldF9jb25maXJtYXRpb25zX3RocmVzaG9sZF9yZXF1ZXN0KiogfCBbKipTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdCoqXShTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdC5tZCl8ICB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlNldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXNwb25zZSoqXShTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgbGlzdCBvZiB0cmFuc2FjdGlvbnMgYWZmZWN0ZWQgYnkgdGhlIGNoYW5nZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqc2V0X3RyYW5zYWN0aW9uX2NvbmZpcm1hdGlvbl90aHJlc2hvbGQqKgo+IFNldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXNwb25zZSBzZXRfdHJhbnNhY3Rpb25fY29uZmlybWF0aW9uX3RocmVzaG9sZCh0eF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwgc2V0X2NvbmZpcm1hdGlvbnNfdGhyZXNob2xkX3JlcXVlc3Q9c2V0X2NvbmZpcm1hdGlvbnNfdGhyZXNob2xkX3JlcXVlc3QpCgpTZXQgY29uZmlybWF0aW9uIHRocmVzaG9sZCBieSBGaXJlYmxvY2tzIFRyYW5zYWN0aW9uIElECgpPdmVycmlkZXMgdGhlIHJlcXVpcmVkIG51bWJlciBvZiBjb25maXJtYXRpb25zIGZvciB0cmFuc2FjdGlvbiBjb21wbGV0aW9uIEZpcmVibG9ja3MgVHJhbnNhY3Rpb24gSUQuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9jb25maXJtYXRpb25zX3RocmVzaG9sZF9yZXF1ZXN0IGltcG9ydCBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9jb25maXJtYXRpb25zX3RocmVzaG9sZF9yZXNwb25zZSBpbXBvcnQgU2V0Q29uZmlybWF0aW9uc1RocmVzaG9sZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHR4X2lkID0gJ3R4X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSB0cmFuc2FjdGlvbgogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQogICAgc2V0X2NvbmZpcm1hdGlvbnNfdGhyZXNob2xkX3JlcXVlc3QgPSBmaXJlYmxvY2tzLlNldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXF1ZXN0KCkgIyBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdCB8ICAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgU2V0IGNvbmZpcm1hdGlvbiB0aHJlc2hvbGQgYnkgRmlyZWJsb2NrcyBUcmFuc2FjdGlvbiBJRAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudHJhbnNhY3Rpb25zLnNldF90cmFuc2FjdGlvbl9jb25maXJtYXRpb25fdGhyZXNob2xkKHR4X2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCBzZXRfY29uZmlybWF0aW9uc190aHJlc2hvbGRfcmVxdWVzdD1zZXRfY29uZmlybWF0aW9uc190aHJlc2hvbGRfcmVxdWVzdCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRyYW5zYWN0aW9uc0FwaS0+c2V0X3RyYW5zYWN0aW9uX2NvbmZpcm1hdGlvbl90aHJlc2hvbGQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVHJhbnNhY3Rpb25zQXBpLT5zZXRfdHJhbnNhY3Rpb25fY29uZmlybWF0aW9uX3RocmVzaG9sZDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqdHhfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgdHJhbnNhY3Rpb24gfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKICoqc2V0X2NvbmZpcm1hdGlvbnNfdGhyZXNob2xkX3JlcXVlc3QqKiB8IFsqKlNldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXF1ZXN0KipdKFNldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXF1ZXN0Lm1kKXwgIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqU2V0Q29uZmlybWF0aW9uc1RocmVzaG9sZFJlc3BvbnNlKipdKFNldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgU2V0IHN1Y2Nlc3NmdWxseSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqdW5mcmVlemVfdHJhbnNhY3Rpb24qKgo+IFVuZnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZSB1bmZyZWV6ZV90cmFuc2FjdGlvbih0eF9pZCwgeF9lbmRfdXNlcl93YWxsZXRfaWQ9eF9lbmRfdXNlcl93YWxsZXRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpVbmZyZWV6ZSBhIHRyYW5zYWN0aW9uCgpVbmZyZWV6ZXMgYSB0cmFuc2FjdGlvbiBieSBGaXJlYmxvY2tzIFRyYW5zYWN0aW9uIElEIGFuZCBtYWtlcyB0aGUgdHJhbnNhY3Rpb24gYXZhaWxhYmxlIGFnYWluLgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbi4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudW5mcmVlemVfdHJhbnNhY3Rpb25fcmVzcG9uc2UgaW1wb3J0IFVuZnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB0eF9pZCA9ICd0eF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgdHJhbnNhY3Rpb24gdG8gdW5mcmVlemUKICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkID0gJ3hfZW5kX3VzZXJfd2FsbGV0X2lkX2V4YW1wbGUnICMgc3RyIHwgVW5pcXVlIElEIG9mIHRoZSBFbmQtVXNlciB3YWxsZXQgdG8gdGhlIEFQSSByZXF1ZXN0LiBSZXF1aXJlZCBmb3IgZW5kLXVzZXIgd2FsbGV0IG9wZXJhdGlvbnMuIChvcHRpb25hbCkKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBVbmZyZWV6ZSBhIHRyYW5zYWN0aW9uCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50cmFuc2FjdGlvbnMudW5mcmVlemVfdHJhbnNhY3Rpb24odHhfaWQsIHhfZW5kX3VzZXJfd2FsbGV0X2lkPXhfZW5kX3VzZXJfd2FsbGV0X2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVHJhbnNhY3Rpb25zQXBpLT51bmZyZWV6ZV90cmFuc2FjdGlvbjpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUcmFuc2FjdGlvbnNBcGktPnVuZnJlZXplX3RyYW5zYWN0aW9uOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip0eF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSB0cmFuc2FjdGlvbiB0byB1bmZyZWV6ZSB8IAogKip4X2VuZF91c2VyX3dhbGxldF9pZCoqIHwgKipzdHIqKnwgVW5pcXVlIElEIG9mIHRoZSBFbmQtVXNlciB3YWxsZXQgdG8gdGhlIEFQSSByZXF1ZXN0LiBSZXF1aXJlZCBmb3IgZW5kLXVzZXIgd2FsbGV0IG9wZXJhdGlvbnMuIHwgW29wdGlvbmFsXSAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqVW5mcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlKipdKFVuZnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFVuZnJlZXplIHJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnZhbGlkYXRlX2FkZHJlc3MqKgo+IFZhbGlkYXRlQWRkcmVzc1Jlc3BvbnNlIHZhbGlkYXRlX2FkZHJlc3MoYXNzZXRfaWQsIGFkZHJlc3MpCgpWYWxpZGF0ZSBkZXN0aW5hdGlvbiBhZGRyZXNzCgpDaGVja3MgaWYgYW4gYWRkcmVzcyBpcyB2YWxpZCBhbmQgYWN0aXZlIChmb3IgWFJQLCBET1QsIFhMTSwgYW5kIEVPUykuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhbGlkYXRlX2FkZHJlc3NfcmVzcG9uc2UgaW1wb3J0IFZhbGlkYXRlQWRkcmVzc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGFzc2V0X2lkID0gJ2Fzc2V0X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIGFzc2V0IG9mIHRoZSBhZGRyZXNzCiAgICBhZGRyZXNzID0gJ2FkZHJlc3NfZXhhbXBsZScgIyBzdHIgfCBUaGUgYWRkcmVzcyB0byB2YWxpZGF0ZQoKICAgIHRyeToKICAgICAgICAjIFZhbGlkYXRlIGRlc3RpbmF0aW9uIGFkZHJlc3MKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRyYW5zYWN0aW9ucy52YWxpZGF0ZV9hZGRyZXNzKGFzc2V0X2lkLCBhZGRyZXNzKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVHJhbnNhY3Rpb25zQXBpLT52YWxpZGF0ZV9hZGRyZXNzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRyYW5zYWN0aW9uc0FwaS0+dmFsaWRhdGVfYWRkcmVzczogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqYXNzZXRfaWQqKiB8ICoqc3RyKip8IFRoZSBhc3NldCBvZiB0aGUgYWRkcmVzcyB8IAogKiphZGRyZXNzKiogfCAqKnN0cioqfCBUaGUgYWRkcmVzcyB0byB2YWxpZGF0ZSB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipWYWxpZGF0ZUFkZHJlc3NSZXNwb25zZSoqXShWYWxpZGF0ZUFkZHJlc3NSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEFuIFRyYW5zYWN0aW9uIG9iamVjdCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgo= \ No newline at end of file diff --git a/docs/TransferConfigOperation.md b/docs/TransferConfigOperation.md index e4237d46..7e6827d9 100644 --- a/docs/TransferConfigOperation.md +++ b/docs/TransferConfigOperation.md @@ -1,33 +1 @@ -# TransferConfigOperation - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**operation_id** | **str** | | -**type** | [**TransferOperationType**](TransferOperationType.md) | | -**params** | [**TransferOperationConfigParams**](TransferOperationConfigParams.md) | | -**status** | [**ConfigOperationStatus**](ConfigOperationStatus.md) | | -**validation_failure** | [**TransferValidationFailure**](TransferValidationFailure.md) | | [optional] - -## Example - -```python -from fireblocks.models.transfer_config_operation import TransferConfigOperation - -# TODO update the JSON string below -json = "{}" -# create an instance of TransferConfigOperation from a JSON string -transfer_config_operation_instance = TransferConfigOperation.from_json(json) -# print the JSON string representation of the object -print(TransferConfigOperation.to_json()) - -# convert the object into a dict -transfer_config_operation_dict = transfer_config_operation_instance.to_dict() -# create an instance of TransferConfigOperation from a dict -transfer_config_operation_from_dict = TransferConfigOperation.from_dict(transfer_config_operation_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2ZlckNvbmZpZ09wZXJhdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipvcGVyYXRpb25faWQqKiB8ICoqc3RyKiogfCAgfCAKKip0eXBlKiogfCBbKipUcmFuc2Zlck9wZXJhdGlvblR5cGUqKl0oVHJhbnNmZXJPcGVyYXRpb25UeXBlLm1kKSB8ICB8IAoqKnBhcmFtcyoqIHwgWyoqVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMqKl0oVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMubWQpIHwgIHwgCioqc3RhdHVzKiogfCBbKipDb25maWdPcGVyYXRpb25TdGF0dXMqKl0oQ29uZmlnT3BlcmF0aW9uU3RhdHVzLm1kKSB8ICB8IAoqKnZhbGlkYXRpb25fZmFpbHVyZSoqIHwgWyoqVHJhbnNmZXJWYWxpZGF0aW9uRmFpbHVyZSoqXShUcmFuc2ZlclZhbGlkYXRpb25GYWlsdXJlLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9jb25maWdfb3BlcmF0aW9uIGltcG9ydCBUcmFuc2ZlckNvbmZpZ09wZXJhdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNmZXJDb25maWdPcGVyYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCnRyYW5zZmVyX2NvbmZpZ19vcGVyYXRpb25faW5zdGFuY2UgPSBUcmFuc2ZlckNvbmZpZ09wZXJhdGlvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmFuc2ZlckNvbmZpZ09wZXJhdGlvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmFuc2Zlcl9jb25maWdfb3BlcmF0aW9uX2RpY3QgPSB0cmFuc2Zlcl9jb25maWdfb3BlcmF0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2ZlckNvbmZpZ09wZXJhdGlvbiBmcm9tIGEgZGljdAp0cmFuc2Zlcl9jb25maWdfb3BlcmF0aW9uX2Zyb21fZGljdCA9IFRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uLmZyb21fZGljdCh0cmFuc2Zlcl9jb25maWdfb3BlcmF0aW9uX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TransferOperationConfigParams.md b/docs/TransferOperationConfigParams.md index cb0bb7b4..9a44b775 100644 --- a/docs/TransferOperationConfigParams.md +++ b/docs/TransferOperationConfigParams.md @@ -1,32 +1 @@ -# TransferOperationConfigParams - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | **str** | | [optional] -**asset_id** | **str** | | [optional] -**source** | [**Account**](Account.md) | | [optional] -**destination** | [**Destination**](Destination.md) | | - -## Example - -```python -from fireblocks.models.transfer_operation_config_params import TransferOperationConfigParams - -# TODO update the JSON string below -json = "{}" -# create an instance of TransferOperationConfigParams from a JSON string -transfer_operation_config_params_instance = TransferOperationConfigParams.from_json(json) -# print the JSON string representation of the object -print(TransferOperationConfigParams.to_json()) - -# convert the object into a dict -transfer_operation_config_params_dict = transfer_operation_config_params_instance.to_dict() -# create an instance of TransferOperationConfigParams from a dict -transfer_operation_config_params_from_dict = TransferOperationConfigParams.from_dict(transfer_operation_config_params_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphbW91bnQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFzc2V0X2lkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipzb3VyY2UqKiB8IFsqKkFjY291bnQqKl0oQWNjb3VudC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRlc3RpbmF0aW9uKiogfCBbKipEZXN0aW5hdGlvbioqXShEZXN0aW5hdGlvbi5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9jb25maWdfcGFyYW1zIGltcG9ydCBUcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMgZnJvbSBhIEpTT04gc3RyaW5nCnRyYW5zZmVyX29wZXJhdGlvbl9jb25maWdfcGFyYW1zX2luc3RhbmNlID0gVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJhbnNmZXJfb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXNfZGljdCA9IHRyYW5zZmVyX29wZXJhdGlvbl9jb25maWdfcGFyYW1zX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcyBmcm9tIGEgZGljdAp0cmFuc2Zlcl9vcGVyYXRpb25fY29uZmlnX3BhcmFtc19mcm9tX2RpY3QgPSBUcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcy5mcm9tX2RpY3QodHJhbnNmZXJfb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TransferOperationExecution.md b/docs/TransferOperationExecution.md index c00edf63..fa53c53e 100644 --- a/docs/TransferOperationExecution.md +++ b/docs/TransferOperationExecution.md @@ -1,34 +1 @@ -# TransferOperationExecution - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**input** | [**TransferOperationConfigParams**](TransferOperationConfigParams.md) | | -**output** | [**TransferOperationExecutionOutput**](TransferOperationExecutionOutput.md) | | [optional] -**tx_id** | **str** | | [optional] -**started_at** | **float** | | -**finished_at** | **float** | | [optional] -**failure** | [**TransferOperationFailure**](TransferOperationFailure.md) | | [optional] - -## Example - -```python -from fireblocks.models.transfer_operation_execution import TransferOperationExecution - -# TODO update the JSON string below -json = "{}" -# create an instance of TransferOperationExecution from a JSON string -transfer_operation_execution_instance = TransferOperationExecution.from_json(json) -# print the JSON string representation of the object -print(TransferOperationExecution.to_json()) - -# convert the object into a dict -transfer_operation_execution_dict = transfer_operation_execution_instance.to_dict() -# create an instance of TransferOperationExecution from a dict -transfer_operation_execution_from_dict = TransferOperationExecution.from_dict(transfer_operation_execution_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippbnB1dCoqIHwgWyoqVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMqKl0oVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMubWQpIHwgIHwgCioqb3V0cHV0KiogfCBbKipUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCoqXShUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnR4X2lkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipzdGFydGVkX2F0KiogfCAqKmZsb2F0KiogfCAgfCAKKipmaW5pc2hlZF9hdCoqIHwgKipmbG9hdCoqIHwgIHwgW29wdGlvbmFsXSAKKipmYWlsdXJlKiogfCBbKipUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmUqKl0oVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fZXhlY3V0aW9uIGltcG9ydCBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCnRyYW5zZmVyX29wZXJhdGlvbl9leGVjdXRpb25faW5zdGFuY2UgPSBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmFuc2Zlcl9vcGVyYXRpb25fZXhlY3V0aW9uX2RpY3QgPSB0cmFuc2Zlcl9vcGVyYXRpb25fZXhlY3V0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbiBmcm9tIGEgZGljdAp0cmFuc2Zlcl9vcGVyYXRpb25fZXhlY3V0aW9uX2Zyb21fZGljdCA9IFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uLmZyb21fZGljdCh0cmFuc2Zlcl9vcGVyYXRpb25fZXhlY3V0aW9uX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TransferOperationExecutionOutput.md b/docs/TransferOperationExecutionOutput.md index 538a022c..87e24ca4 100644 --- a/docs/TransferOperationExecutionOutput.md +++ b/docs/TransferOperationExecutionOutput.md @@ -1,30 +1 @@ -# TransferOperationExecutionOutput - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | [**AssetAmount**](AssetAmount.md) | | -**fee** | [**AssetAmount**](AssetAmount.md) | | - -## Example - -```python -from fireblocks.models.transfer_operation_execution_output import TransferOperationExecutionOutput - -# TODO update the JSON string below -json = "{}" -# create an instance of TransferOperationExecutionOutput from a JSON string -transfer_operation_execution_output_instance = TransferOperationExecutionOutput.from_json(json) -# print the JSON string representation of the object -print(TransferOperationExecutionOutput.to_json()) - -# convert the object into a dict -transfer_operation_execution_output_dict = transfer_operation_execution_output_instance.to_dict() -# create an instance of TransferOperationExecutionOutput from a dict -transfer_operation_execution_output_from_dict = TransferOperationExecutionOutput.from_dict(transfer_operation_execution_output_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphbW91bnQqKiB8IFsqKkFzc2V0QW1vdW50KipdKEFzc2V0QW1vdW50Lm1kKSB8ICB8IAoqKmZlZSoqIHwgWyoqQXNzZXRBbW91bnQqKl0oQXNzZXRBbW91bnQubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dCBpbXBvcnQgVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0IGZyb20gYSBKU09OIHN0cmluZwp0cmFuc2Zlcl9vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dF9pbnN0YW5jZSA9IFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYW5zZmVyX29wZXJhdGlvbl9leGVjdXRpb25fb3V0cHV0X2RpY3QgPSB0cmFuc2Zlcl9vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQgZnJvbSBhIGRpY3QKdHJhbnNmZXJfb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXRfZnJvbV9kaWN0ID0gVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQuZnJvbV9kaWN0KHRyYW5zZmVyX29wZXJhdGlvbl9leGVjdXRpb25fb3V0cHV0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TransferOperationExecutionParams.md b/docs/TransferOperationExecutionParams.md index 9b8ca531..485a995d 100644 --- a/docs/TransferOperationExecutionParams.md +++ b/docs/TransferOperationExecutionParams.md @@ -1,30 +1 @@ -# TransferOperationExecutionParams - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**config_operation_id** | **str** | | -**execution_params** | [**TransferOperationExecutionParamsExecutionParams**](TransferOperationExecutionParamsExecutionParams.md) | | [optional] - -## Example - -```python -from fireblocks.models.transfer_operation_execution_params import TransferOperationExecutionParams - -# TODO update the JSON string below -json = "{}" -# create an instance of TransferOperationExecutionParams from a JSON string -transfer_operation_execution_params_instance = TransferOperationExecutionParams.from_json(json) -# print the JSON string representation of the object -print(TransferOperationExecutionParams.to_json()) - -# convert the object into a dict -transfer_operation_execution_params_dict = transfer_operation_execution_params_instance.to_dict() -# create an instance of TransferOperationExecutionParams from a dict -transfer_operation_execution_params_from_dict = TransferOperationExecutionParams.from_dict(transfer_operation_execution_params_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipjb25maWdfb3BlcmF0aW9uX2lkKiogfCAqKnN0cioqIHwgIHwgCioqZXhlY3V0aW9uX3BhcmFtcyoqIHwgWyoqVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMqKl0oVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9leGVjdXRpb25fcGFyYW1zIGltcG9ydCBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXMgZnJvbSBhIEpTT04gc3RyaW5nCnRyYW5zZmVyX29wZXJhdGlvbl9leGVjdXRpb25fcGFyYW1zX2luc3RhbmNlID0gVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJhbnNmZXJfb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXNfZGljdCA9IHRyYW5zZmVyX29wZXJhdGlvbl9leGVjdXRpb25fcGFyYW1zX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcyBmcm9tIGEgZGljdAp0cmFuc2Zlcl9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtc19mcm9tX2RpY3QgPSBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcy5mcm9tX2RpY3QodHJhbnNmZXJfb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TransferOperationExecutionParamsExecutionParams.md b/docs/TransferOperationExecutionParamsExecutionParams.md index 983cae42..9d25e30a 100644 --- a/docs/TransferOperationExecutionParamsExecutionParams.md +++ b/docs/TransferOperationExecutionParamsExecutionParams.md @@ -1,32 +1 @@ -# TransferOperationExecutionParamsExecutionParams - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | **str** | | [optional] -**asset_id** | **str** | | [optional] -**source** | [**Account**](Account.md) | | [optional] -**destination** | [**Destination**](Destination.md) | | [optional] - -## Example - -```python -from fireblocks.models.transfer_operation_execution_params_execution_params import TransferOperationExecutionParamsExecutionParams - -# TODO update the JSON string below -json = "{}" -# create an instance of TransferOperationExecutionParamsExecutionParams from a JSON string -transfer_operation_execution_params_execution_params_instance = TransferOperationExecutionParamsExecutionParams.from_json(json) -# print the JSON string representation of the object -print(TransferOperationExecutionParamsExecutionParams.to_json()) - -# convert the object into a dict -transfer_operation_execution_params_execution_params_dict = transfer_operation_execution_params_execution_params_instance.to_dict() -# create an instance of TransferOperationExecutionParamsExecutionParams from a dict -transfer_operation_execution_params_execution_params_from_dict = TransferOperationExecutionParamsExecutionParams.from_dict(transfer_operation_execution_params_execution_params_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtcwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphbW91bnQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFzc2V0X2lkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipzb3VyY2UqKiB8IFsqKkFjY291bnQqKl0oQWNjb3VudC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRlc3RpbmF0aW9uKiogfCBbKipEZXN0aW5hdGlvbioqXShEZXN0aW5hdGlvbi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXNfZXhlY3V0aW9uX3BhcmFtcyBpbXBvcnQgVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zIGZyb20gYSBKU09OIHN0cmluZwp0cmFuc2Zlcl9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtc19leGVjdXRpb25fcGFyYW1zX2luc3RhbmNlID0gVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJhbnNmZXJfb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXNfZXhlY3V0aW9uX3BhcmFtc19kaWN0ID0gdHJhbnNmZXJfb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXNfZXhlY3V0aW9uX3BhcmFtc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMgZnJvbSBhIGRpY3QKdHJhbnNmZXJfb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXNfZXhlY3V0aW9uX3BhcmFtc19mcm9tX2RpY3QgPSBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtcy5mcm9tX2RpY3QodHJhbnNmZXJfb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXNfZXhlY3V0aW9uX3BhcmFtc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TransferOperationFailure.md b/docs/TransferOperationFailure.md index d3783cd5..83999f4b 100644 --- a/docs/TransferOperationFailure.md +++ b/docs/TransferOperationFailure.md @@ -1,30 +1 @@ -# TransferOperationFailure - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**reason** | **str** | | -**data** | [**TransferOperationFailureData**](TransferOperationFailureData.md) | | [optional] - -## Example - -```python -from fireblocks.models.transfer_operation_failure import TransferOperationFailure - -# TODO update the JSON string below -json = "{}" -# create an instance of TransferOperationFailure from a JSON string -transfer_operation_failure_instance = TransferOperationFailure.from_json(json) -# print the JSON string representation of the object -print(TransferOperationFailure.to_json()) - -# convert the object into a dict -transfer_operation_failure_dict = transfer_operation_failure_instance.to_dict() -# create an instance of TransferOperationFailure from a dict -transfer_operation_failure_from_dict = TransferOperationFailure.from_dict(transfer_operation_failure_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmUKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcmVhc29uKiogfCAqKnN0cioqIHwgIHwgCioqZGF0YSoqIHwgWyoqVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlRGF0YSoqXShUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmVEYXRhLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fZmFpbHVyZSBpbXBvcnQgVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmUgZnJvbSBhIEpTT04gc3RyaW5nCnRyYW5zZmVyX29wZXJhdGlvbl9mYWlsdXJlX2luc3RhbmNlID0gVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRyYW5zZmVyT3BlcmF0aW9uRmFpbHVyZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmFuc2Zlcl9vcGVyYXRpb25fZmFpbHVyZV9kaWN0ID0gdHJhbnNmZXJfb3BlcmF0aW9uX2ZhaWx1cmVfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zZmVyT3BlcmF0aW9uRmFpbHVyZSBmcm9tIGEgZGljdAp0cmFuc2Zlcl9vcGVyYXRpb25fZmFpbHVyZV9mcm9tX2RpY3QgPSBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmUuZnJvbV9kaWN0KHRyYW5zZmVyX29wZXJhdGlvbl9mYWlsdXJlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TransferOperationFailureData.md b/docs/TransferOperationFailureData.md index 375d46ca..7ad22d09 100644 --- a/docs/TransferOperationFailureData.md +++ b/docs/TransferOperationFailureData.md @@ -1,31 +1 @@ -# TransferOperationFailureData - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**tx_id** | **str** | | -**tx_status** | **str** | | -**tx_sub_status** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.transfer_operation_failure_data import TransferOperationFailureData - -# TODO update the JSON string below -json = "{}" -# create an instance of TransferOperationFailureData from a JSON string -transfer_operation_failure_data_instance = TransferOperationFailureData.from_json(json) -# print the JSON string representation of the object -print(TransferOperationFailureData.to_json()) - -# convert the object into a dict -transfer_operation_failure_data_dict = transfer_operation_failure_data_instance.to_dict() -# create an instance of TransferOperationFailureData from a dict -transfer_operation_failure_data_from_dict = TransferOperationFailureData.from_dict(transfer_operation_failure_data_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmVEYXRhCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR4X2lkKiogfCAqKnN0cioqIHwgIHwgCioqdHhfc3RhdHVzKiogfCAqKnN0cioqIHwgIHwgCioqdHhfc3ViX3N0YXR1cyoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fZmFpbHVyZV9kYXRhIGltcG9ydCBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmVEYXRhCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmVEYXRhIGZyb20gYSBKU09OIHN0cmluZwp0cmFuc2Zlcl9vcGVyYXRpb25fZmFpbHVyZV9kYXRhX2luc3RhbmNlID0gVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlRGF0YS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmVEYXRhLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYW5zZmVyX29wZXJhdGlvbl9mYWlsdXJlX2RhdGFfZGljdCA9IHRyYW5zZmVyX29wZXJhdGlvbl9mYWlsdXJlX2RhdGFfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zZmVyT3BlcmF0aW9uRmFpbHVyZURhdGEgZnJvbSBhIGRpY3QKdHJhbnNmZXJfb3BlcmF0aW9uX2ZhaWx1cmVfZGF0YV9mcm9tX2RpY3QgPSBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmVEYXRhLmZyb21fZGljdCh0cmFuc2Zlcl9vcGVyYXRpb25fZmFpbHVyZV9kYXRhX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TransferOperationPreview.md b/docs/TransferOperationPreview.md index fabaaff9..d918f0af 100644 --- a/docs/TransferOperationPreview.md +++ b/docs/TransferOperationPreview.md @@ -1,31 +1 @@ -# TransferOperationPreview - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**input** | [**TransferOperationConfigParams**](TransferOperationConfigParams.md) | | -**output** | [**TransferOperationPreviewOutput**](TransferOperationPreviewOutput.md) | | [optional] -**failure** | [**TransferOperationFailure**](TransferOperationFailure.md) | | [optional] - -## Example - -```python -from fireblocks.models.transfer_operation_preview import TransferOperationPreview - -# TODO update the JSON string below -json = "{}" -# create an instance of TransferOperationPreview from a JSON string -transfer_operation_preview_instance = TransferOperationPreview.from_json(json) -# print the JSON string representation of the object -print(TransferOperationPreview.to_json()) - -# convert the object into a dict -transfer_operation_preview_dict = transfer_operation_preview_instance.to_dict() -# create an instance of TransferOperationPreview from a dict -transfer_operation_preview_from_dict = TransferOperationPreview.from_dict(transfer_operation_preview_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2Zlck9wZXJhdGlvblByZXZpZXcKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaW5wdXQqKiB8IFsqKlRyYW5zZmVyT3BlcmF0aW9uQ29uZmlnUGFyYW1zKipdKFRyYW5zZmVyT3BlcmF0aW9uQ29uZmlnUGFyYW1zLm1kKSB8ICB8IAoqKm91dHB1dCoqIHwgWyoqVHJhbnNmZXJPcGVyYXRpb25QcmV2aWV3T3V0cHV0KipdKFRyYW5zZmVyT3BlcmF0aW9uUHJldmlld091dHB1dC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmZhaWx1cmUqKiB8IFsqKlRyYW5zZmVyT3BlcmF0aW9uRmFpbHVyZSoqXShUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmUubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9wcmV2aWV3IGltcG9ydCBUcmFuc2Zlck9wZXJhdGlvblByZXZpZXcKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zZmVyT3BlcmF0aW9uUHJldmlldyBmcm9tIGEgSlNPTiBzdHJpbmcKdHJhbnNmZXJfb3BlcmF0aW9uX3ByZXZpZXdfaW5zdGFuY2UgPSBUcmFuc2Zlck9wZXJhdGlvblByZXZpZXcuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhbnNmZXJPcGVyYXRpb25QcmV2aWV3LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYW5zZmVyX29wZXJhdGlvbl9wcmV2aWV3X2RpY3QgPSB0cmFuc2Zlcl9vcGVyYXRpb25fcHJldmlld19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNmZXJPcGVyYXRpb25QcmV2aWV3IGZyb20gYSBkaWN0CnRyYW5zZmVyX29wZXJhdGlvbl9wcmV2aWV3X2Zyb21fZGljdCA9IFRyYW5zZmVyT3BlcmF0aW9uUHJldmlldy5mcm9tX2RpY3QodHJhbnNmZXJfb3BlcmF0aW9uX3ByZXZpZXdfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TransferOperationPreviewOutput.md b/docs/TransferOperationPreviewOutput.md index c76fa253..6b3987a5 100644 --- a/docs/TransferOperationPreviewOutput.md +++ b/docs/TransferOperationPreviewOutput.md @@ -1,32 +1 @@ -# TransferOperationPreviewOutput - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**amount** | [**AssetAmount**](AssetAmount.md) | | -**fee** | [**AssetAmount**](AssetAmount.md) | | -**is_sign_required** | **bool** | | -**time_seconds** | **float** | | - -## Example - -```python -from fireblocks.models.transfer_operation_preview_output import TransferOperationPreviewOutput - -# TODO update the JSON string below -json = "{}" -# create an instance of TransferOperationPreviewOutput from a JSON string -transfer_operation_preview_output_instance = TransferOperationPreviewOutput.from_json(json) -# print the JSON string representation of the object -print(TransferOperationPreviewOutput.to_json()) - -# convert the object into a dict -transfer_operation_preview_output_dict = transfer_operation_preview_output_instance.to_dict() -# create an instance of TransferOperationPreviewOutput from a dict -transfer_operation_preview_output_from_dict = TransferOperationPreviewOutput.from_dict(transfer_operation_preview_output_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2Zlck9wZXJhdGlvblByZXZpZXdPdXRwdXQKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYW1vdW50KiogfCBbKipBc3NldEFtb3VudCoqXShBc3NldEFtb3VudC5tZCkgfCAgfCAKKipmZWUqKiB8IFsqKkFzc2V0QW1vdW50KipdKEFzc2V0QW1vdW50Lm1kKSB8ICB8IAoqKmlzX3NpZ25fcmVxdWlyZWQqKiB8ICoqYm9vbCoqIHwgIHwgCioqdGltZV9zZWNvbmRzKiogfCAqKmZsb2F0KiogfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9wcmV2aWV3X291dHB1dCBpbXBvcnQgVHJhbnNmZXJPcGVyYXRpb25QcmV2aWV3T3V0cHV0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2Zlck9wZXJhdGlvblByZXZpZXdPdXRwdXQgZnJvbSBhIEpTT04gc3RyaW5nCnRyYW5zZmVyX29wZXJhdGlvbl9wcmV2aWV3X291dHB1dF9pbnN0YW5jZSA9IFRyYW5zZmVyT3BlcmF0aW9uUHJldmlld091dHB1dC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmFuc2Zlck9wZXJhdGlvblByZXZpZXdPdXRwdXQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJhbnNmZXJfb3BlcmF0aW9uX3ByZXZpZXdfb3V0cHV0X2RpY3QgPSB0cmFuc2Zlcl9vcGVyYXRpb25fcHJldmlld19vdXRwdXRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zZmVyT3BlcmF0aW9uUHJldmlld091dHB1dCBmcm9tIGEgZGljdAp0cmFuc2Zlcl9vcGVyYXRpb25fcHJldmlld19vdXRwdXRfZnJvbV9kaWN0ID0gVHJhbnNmZXJPcGVyYXRpb25QcmV2aWV3T3V0cHV0LmZyb21fZGljdCh0cmFuc2Zlcl9vcGVyYXRpb25fcHJldmlld19vdXRwdXRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TransferOperationType.md b/docs/TransferOperationType.md index 68727b53..d6e16549 100644 --- a/docs/TransferOperationType.md +++ b/docs/TransferOperationType.md @@ -1,10 +1 @@ -# TransferOperationType - - -## Enum - -* `TRANSFER` (value: `'TRANSFER'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2Zlck9wZXJhdGlvblR5cGUKCgojIyBFbnVtCgoqIGBUUkFOU0ZFUmAgKHZhbHVlOiBgJ1RSQU5TRkVSJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TransferPeerPathSubType.md b/docs/TransferPeerPathSubType.md index 59a3dd2f..104a0f40 100644 --- a/docs/TransferPeerPathSubType.md +++ b/docs/TransferPeerPathSubType.md @@ -1,72 +1 @@ -# TransferPeerPathSubType - - -## Enum - -* `BINANCE` (value: `'BINANCE'`) - -* `BINANCEUS` (value: `'BINANCEUS'`) - -* `BITFINEX` (value: `'BITFINEX'`) - -* `BITHUMB` (value: `'BITHUMB'`) - -* `BITMEX` (value: `'BITMEX'`) - -* `BITSO` (value: `'BITSO'`) - -* `BITSTAMP` (value: `'BITSTAMP'`) - -* `BITTREX` (value: `'BITTREX'`) - -* `BLINC` (value: `'BLINC'`) - -* `BYBIT` (value: `'BYBIT'`) - -* `CIRCLE` (value: `'CIRCLE'`) - -* `COINBASEEXCHANGE` (value: `'COINBASEEXCHANGE'`) - -* `COINBASEPRO` (value: `'COINBASEPRO'`) - -* `COINMETRO` (value: `'COINMETRO'`) - -* `COINSPRO` (value: `'COINSPRO'`) - -* `CRYPTOCOM` (value: `'CRYPTOCOM'`) - -* `DERIBIT` (value: `'DERIBIT'`) - -* `GEMINI` (value: `'GEMINI'`) - -* `HITBTC` (value: `'HITBTC'`) - -* `HUOBI` (value: `'HUOBI'`) - -* `INDEPENDENTRESERVE` (value: `'INDEPENDENTRESERVE'`) - -* `KORBIT` (value: `'KORBIT'`) - -* `KRAKEN` (value: `'KRAKEN'`) - -* `KRAKENINTL` (value: `'KRAKENINTL'`) - -* `KUCOIN` (value: `'KUCOIN'`) - -* `LIQUID` (value: `'LIQUID'`) - -* `OKCOIN` (value: `'OKCOIN'`) - -* `OKEX` (value: `'OKEX'`) - -* `PAXOS` (value: `'PAXOS'`) - -* `POLONIEX` (value: `'POLONIEX'`) - -* `EXTERNAL` (value: `'External'`) - -* `INTERNAL` (value: `'Internal'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2ZlclBlZXJQYXRoU3ViVHlwZQoKCiMjIEVudW0KCiogYEJJTkFOQ0VgICh2YWx1ZTogYCdCSU5BTkNFJ2ApCgoqIGBCSU5BTkNFVVNgICh2YWx1ZTogYCdCSU5BTkNFVVMnYCkKCiogYEJJVEZJTkVYYCAodmFsdWU6IGAnQklURklORVgnYCkKCiogYEJJVEhVTUJgICh2YWx1ZTogYCdCSVRIVU1CJ2ApCgoqIGBCSVRNRVhgICh2YWx1ZTogYCdCSVRNRVgnYCkKCiogYEJJVFNPYCAodmFsdWU6IGAnQklUU08nYCkKCiogYEJJVFNUQU1QYCAodmFsdWU6IGAnQklUU1RBTVAnYCkKCiogYEJJVFRSRVhgICh2YWx1ZTogYCdCSVRUUkVYJ2ApCgoqIGBCTElOQ2AgKHZhbHVlOiBgJ0JMSU5DJ2ApCgoqIGBCWUJJVGAgKHZhbHVlOiBgJ0JZQklUJ2ApCgoqIGBDSVJDTEVgICh2YWx1ZTogYCdDSVJDTEUnYCkKCiogYENPSU5CQVNFRVhDSEFOR0VgICh2YWx1ZTogYCdDT0lOQkFTRUVYQ0hBTkdFJ2ApCgoqIGBDT0lOQkFTRVBST2AgKHZhbHVlOiBgJ0NPSU5CQVNFUFJPJ2ApCgoqIGBDT0lOTUVUUk9gICh2YWx1ZTogYCdDT0lOTUVUUk8nYCkKCiogYENPSU5TUFJPYCAodmFsdWU6IGAnQ09JTlNQUk8nYCkKCiogYENSWVBUT0NPTWAgKHZhbHVlOiBgJ0NSWVBUT0NPTSdgKQoKKiBgREVSSUJJVGAgKHZhbHVlOiBgJ0RFUklCSVQnYCkKCiogYEdFTUlOSWAgKHZhbHVlOiBgJ0dFTUlOSSdgKQoKKiBgSElUQlRDYCAodmFsdWU6IGAnSElUQlRDJ2ApCgoqIGBIVU9CSWAgKHZhbHVlOiBgJ0hVT0JJJ2ApCgoqIGBJTkRFUEVOREVOVFJFU0VSVkVgICh2YWx1ZTogYCdJTkRFUEVOREVOVFJFU0VSVkUnYCkKCiogYEtPUkJJVGAgKHZhbHVlOiBgJ0tPUkJJVCdgKQoKKiBgS1JBS0VOYCAodmFsdWU6IGAnS1JBS0VOJ2ApCgoqIGBLUkFLRU5JTlRMYCAodmFsdWU6IGAnS1JBS0VOSU5UTCdgKQoKKiBgS1VDT0lOYCAodmFsdWU6IGAnS1VDT0lOJ2ApCgoqIGBMSVFVSURgICh2YWx1ZTogYCdMSVFVSUQnYCkKCiogYE9LQ09JTmAgKHZhbHVlOiBgJ09LQ09JTidgKQoKKiBgT0tFWGAgKHZhbHVlOiBgJ09LRVgnYCkKCiogYFBBWE9TYCAodmFsdWU6IGAnUEFYT1MnYCkKCiogYFBPTE9OSUVYYCAodmFsdWU6IGAnUE9MT05JRVgnYCkKCiogYEVYVEVSTkFMYCAodmFsdWU6IGAnRXh0ZXJuYWwnYCkKCiogYElOVEVSTkFMYCAodmFsdWU6IGAnSW50ZXJuYWwnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TransferPeerPathType.md b/docs/TransferPeerPathType.md index 70c457c1..5064ccb7 100644 --- a/docs/TransferPeerPathType.md +++ b/docs/TransferPeerPathType.md @@ -1,38 +1 @@ -# TransferPeerPathType - - -## Enum - -* `VAULT_ACCOUNT` (value: `'VAULT_ACCOUNT'`) - -* `EXCHANGE_ACCOUNT` (value: `'EXCHANGE_ACCOUNT'`) - -* `INTERNAL_WALLET` (value: `'INTERNAL_WALLET'`) - -* `EXTERNAL_WALLET` (value: `'EXTERNAL_WALLET'`) - -* `CONTRACT` (value: `'CONTRACT'`) - -* `NETWORK_CONNECTION` (value: `'NETWORK_CONNECTION'`) - -* `FIAT_ACCOUNT` (value: `'FIAT_ACCOUNT'`) - -* `COMPOUND` (value: `'COMPOUND'`) - -* `GAS_STATION` (value: `'GAS_STATION'`) - -* `ONE_TIME_ADDRESS` (value: `'ONE_TIME_ADDRESS'`) - -* `UNKNOWN` (value: `'UNKNOWN'`) - -* `END_USER_WALLET` (value: `'END_USER_WALLET'`) - -* `PROGRAM_CALL` (value: `'PROGRAM_CALL'`) - -* `MULTI_DESTINATION` (value: `'MULTI_DESTINATION'`) - -* `OEC_PARTNER` (value: `'OEC_PARTNER'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2ZlclBlZXJQYXRoVHlwZQoKCiMjIEVudW0KCiogYFZBVUxUX0FDQ09VTlRgICh2YWx1ZTogYCdWQVVMVF9BQ0NPVU5UJ2ApCgoqIGBFWENIQU5HRV9BQ0NPVU5UYCAodmFsdWU6IGAnRVhDSEFOR0VfQUNDT1VOVCdgKQoKKiBgSU5URVJOQUxfV0FMTEVUYCAodmFsdWU6IGAnSU5URVJOQUxfV0FMTEVUJ2ApCgoqIGBFWFRFUk5BTF9XQUxMRVRgICh2YWx1ZTogYCdFWFRFUk5BTF9XQUxMRVQnYCkKCiogYENPTlRSQUNUYCAodmFsdWU6IGAnQ09OVFJBQ1QnYCkKCiogYE5FVFdPUktfQ09OTkVDVElPTmAgKHZhbHVlOiBgJ05FVFdPUktfQ09OTkVDVElPTidgKQoKKiBgRklBVF9BQ0NPVU5UYCAodmFsdWU6IGAnRklBVF9BQ0NPVU5UJ2ApCgoqIGBDT01QT1VORGAgKHZhbHVlOiBgJ0NPTVBPVU5EJ2ApCgoqIGBHQVNfU1RBVElPTmAgKHZhbHVlOiBgJ0dBU19TVEFUSU9OJ2ApCgoqIGBPTkVfVElNRV9BRERSRVNTYCAodmFsdWU6IGAnT05FX1RJTUVfQUREUkVTUydgKQoKKiBgVU5LTk9XTmAgKHZhbHVlOiBgJ1VOS05PV04nYCkKCiogYEVORF9VU0VSX1dBTExFVGAgKHZhbHVlOiBgJ0VORF9VU0VSX1dBTExFVCdgKQoKKiBgUFJPR1JBTV9DQUxMYCAodmFsdWU6IGAnUFJPR1JBTV9DQUxMJ2ApCgoqIGBNVUxUSV9ERVNUSU5BVElPTmAgKHZhbHVlOiBgJ01VTFRJX0RFU1RJTkFUSU9OJ2ApCgoqIGBPRUNfUEFSVE5FUmAgKHZhbHVlOiBgJ09FQ19QQVJUTkVSJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TransferPeerSubTypeEnum.md b/docs/TransferPeerSubTypeEnum.md index 570d7d30..3813ff53 100644 --- a/docs/TransferPeerSubTypeEnum.md +++ b/docs/TransferPeerSubTypeEnum.md @@ -1,17 +1 @@ -# TransferPeerSubTypeEnum - -Transfer peer sub-type for prescreening rules - -## Enum - -* `EXTERNAL` (value: `'EXTERNAL'`) - -* `INTERNAL` (value: `'INTERNAL'`) - -* `CONTRACT` (value: `'CONTRACT'`) - -* `EXCHANGETEST` (value: `'EXCHANGETEST'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2ZlclBlZXJTdWJUeXBlRW51bQoKVHJhbnNmZXIgcGVlciBzdWItdHlwZSBmb3IgcHJlc2NyZWVuaW5nIHJ1bGVzCgojIyBFbnVtCgoqIGBFWFRFUk5BTGAgKHZhbHVlOiBgJ0VYVEVSTkFMJ2ApCgoqIGBJTlRFUk5BTGAgKHZhbHVlOiBgJ0lOVEVSTkFMJ2ApCgoqIGBDT05UUkFDVGAgKHZhbHVlOiBgJ0NPTlRSQUNUJ2ApCgoqIGBFWENIQU5HRVRFU1RgICh2YWx1ZTogYCdFWENIQU5HRVRFU1QnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TransferPeerTypeEnum.md b/docs/TransferPeerTypeEnum.md index a5c2c776..43e270ac 100644 --- a/docs/TransferPeerTypeEnum.md +++ b/docs/TransferPeerTypeEnum.md @@ -1,37 +1 @@ -# TransferPeerTypeEnum - -Transfer peer type (source or destination) - -## Enum - -* `VAULT_ACCOUNT` (value: `'VAULT_ACCOUNT'`) - -* `EXCHANGE_ACCOUNT` (value: `'EXCHANGE_ACCOUNT'`) - -* `INTERNAL_WALLET` (value: `'INTERNAL_WALLET'`) - -* `EXTERNAL_WALLET` (value: `'EXTERNAL_WALLET'`) - -* `CONTRACT` (value: `'CONTRACT'`) - -* `NETWORK_CONNECTION` (value: `'NETWORK_CONNECTION'`) - -* `FIAT_ACCOUNT` (value: `'FIAT_ACCOUNT'`) - -* `COMPOUND` (value: `'COMPOUND'`) - -* `GAS_STATION` (value: `'GAS_STATION'`) - -* `ONE_TIME_ADDRESS` (value: `'ONE_TIME_ADDRESS'`) - -* `UNKNOWN` (value: `'UNKNOWN'`) - -* `END_USER_WALLET` (value: `'END_USER_WALLET'`) - -* `PROGRAM_CALL` (value: `'PROGRAM_CALL'`) - -* `MULTI_DESTINATION` (value: `'MULTI_DESTINATION'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2ZlclBlZXJUeXBlRW51bQoKVHJhbnNmZXIgcGVlciB0eXBlIChzb3VyY2Ugb3IgZGVzdGluYXRpb24pCgojIyBFbnVtCgoqIGBWQVVMVF9BQ0NPVU5UYCAodmFsdWU6IGAnVkFVTFRfQUNDT1VOVCdgKQoKKiBgRVhDSEFOR0VfQUNDT1VOVGAgKHZhbHVlOiBgJ0VYQ0hBTkdFX0FDQ09VTlQnYCkKCiogYElOVEVSTkFMX1dBTExFVGAgKHZhbHVlOiBgJ0lOVEVSTkFMX1dBTExFVCdgKQoKKiBgRVhURVJOQUxfV0FMTEVUYCAodmFsdWU6IGAnRVhURVJOQUxfV0FMTEVUJ2ApCgoqIGBDT05UUkFDVGAgKHZhbHVlOiBgJ0NPTlRSQUNUJ2ApCgoqIGBORVRXT1JLX0NPTk5FQ1RJT05gICh2YWx1ZTogYCdORVRXT1JLX0NPTk5FQ1RJT04nYCkKCiogYEZJQVRfQUNDT1VOVGAgKHZhbHVlOiBgJ0ZJQVRfQUNDT1VOVCdgKQoKKiBgQ09NUE9VTkRgICh2YWx1ZTogYCdDT01QT1VORCdgKQoKKiBgR0FTX1NUQVRJT05gICh2YWx1ZTogYCdHQVNfU1RBVElPTidgKQoKKiBgT05FX1RJTUVfQUREUkVTU2AgKHZhbHVlOiBgJ09ORV9USU1FX0FERFJFU1MnYCkKCiogYFVOS05PV05gICh2YWx1ZTogYCdVTktOT1dOJ2ApCgoqIGBFTkRfVVNFUl9XQUxMRVRgICh2YWx1ZTogYCdFTkRfVVNFUl9XQUxMRVQnYCkKCiogYFBST0dSQU1fQ0FMTGAgKHZhbHVlOiBgJ1BST0dSQU1fQ0FMTCdgKQoKKiBgTVVMVElfREVTVElOQVRJT05gICh2YWx1ZTogYCdNVUxUSV9ERVNUSU5BVElPTidgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TransferRail.md b/docs/TransferRail.md index 9343dd6e..0d34c74a 100644 --- a/docs/TransferRail.md +++ b/docs/TransferRail.md @@ -1,41 +1 @@ -# TransferRail - -Transfer rail: * **BLOCKCHAIN** - Transfer over the public blockchain * **INTERNAL** - Internal transfer within the same account (e.g. sub-accounts or same api key) * **PEER** - Peer transfer within the same provider network * **SWIFT** - International wire transfer * **IBAN** - International Bank Account Number transfer * **US_WIRE** - Domestic wire transfer within the United States (e.g. FedWire) * **ACH** - Automated Clearing House transfer, typically takes longer but not as expensive as wire transfers * **SEPA** - Euro transfers within the SEPA zone * **SPEI** - Mexican interbank electronic payment system * **PIX** - Brazilian instant payment system * **LOCAL_BANK_TRANSFER_AFRICA** - Local bank transfers within Africa * **MOBILE_MONEY** - Mobile money transfers (e.g. M-Pesa) * **INTERNAL_TRANSFER** - Internal transfer within the same account * **INTERAC** - Canadian interbank transfer system * **PAYID** - Australian PayID payment system * **CHAPS** - The Clearing House Automated Payment System (CHAPS) is a real-time gross settlement payment system used for transactions in the United Kingdom - -## Enum - -* `BLOCKCHAIN` (value: `'BLOCKCHAIN'`) - -* `INTERNAL` (value: `'INTERNAL'`) - -* `PEER` (value: `'PEER'`) - -* `SWIFT` (value: `'SWIFT'`) - -* `IBAN` (value: `'IBAN'`) - -* `US_WIRE` (value: `'US_WIRE'`) - -* `ACH` (value: `'ACH'`) - -* `SEPA` (value: `'SEPA'`) - -* `SPEI` (value: `'SPEI'`) - -* `PIX` (value: `'PIX'`) - -* `LOCAL_BANK_TRANSFER_AFRICA` (value: `'LOCAL_BANK_TRANSFER_AFRICA'`) - -* `MOBILE_MONEY` (value: `'MOBILE_MONEY'`) - -* `INTERNAL_TRANSFER` (value: `'INTERNAL_TRANSFER'`) - -* `INTERAC` (value: `'INTERAC'`) - -* `PAYID` (value: `'PAYID'`) - -* `CHAPS` (value: `'CHAPS'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2ZlclJhaWwKClRyYW5zZmVyIHJhaWw6ICAqICoqQkxPQ0tDSEFJTioqIC0gVHJhbnNmZXIgb3ZlciB0aGUgcHVibGljIGJsb2NrY2hhaW4gKiAqKklOVEVSTkFMKiogLSBJbnRlcm5hbCB0cmFuc2ZlciB3aXRoaW4gdGhlIHNhbWUgYWNjb3VudCAoZS5nLiBzdWItYWNjb3VudHMgb3Igc2FtZSBhcGkga2V5KSAqICoqUEVFUioqIC0gUGVlciB0cmFuc2ZlciB3aXRoaW4gdGhlIHNhbWUgcHJvdmlkZXIgbmV0d29yayAqICoqU1dJRlQqKiAtIEludGVybmF0aW9uYWwgd2lyZSB0cmFuc2ZlciAqICoqSUJBTioqIC0gSW50ZXJuYXRpb25hbCBCYW5rIEFjY291bnQgTnVtYmVyIHRyYW5zZmVyICogKipVU19XSVJFKiogLSBEb21lc3RpYyB3aXJlIHRyYW5zZmVyIHdpdGhpbiB0aGUgVW5pdGVkIFN0YXRlcyAoZS5nLiBGZWRXaXJlKSAqICoqQUNIKiogLSBBdXRvbWF0ZWQgQ2xlYXJpbmcgSG91c2UgdHJhbnNmZXIsIHR5cGljYWxseSB0YWtlcyBsb25nZXIgYnV0IG5vdCBhcyBleHBlbnNpdmUgYXMgd2lyZSB0cmFuc2ZlcnMgKiAqKlNFUEEqKiAtIEV1cm8gdHJhbnNmZXJzIHdpdGhpbiB0aGUgU0VQQSB6b25lICogKipTUEVJKiogLSBNZXhpY2FuIGludGVyYmFuayBlbGVjdHJvbmljIHBheW1lbnQgc3lzdGVtICogKipQSVgqKiAtIEJyYXppbGlhbiBpbnN0YW50IHBheW1lbnQgc3lzdGVtICogKipMT0NBTF9CQU5LX1RSQU5TRkVSX0FGUklDQSoqIC0gTG9jYWwgYmFuayB0cmFuc2ZlcnMgd2l0aGluIEFmcmljYSAqICoqTU9CSUxFX01PTkVZKiogLSBNb2JpbGUgbW9uZXkgdHJhbnNmZXJzIChlLmcuIE0tUGVzYSkgKiAqKklOVEVSTkFMX1RSQU5TRkVSKiogLSBJbnRlcm5hbCB0cmFuc2ZlciB3aXRoaW4gdGhlIHNhbWUgYWNjb3VudCAqICoqSU5URVJBQyoqIC0gQ2FuYWRpYW4gaW50ZXJiYW5rIHRyYW5zZmVyIHN5c3RlbSAqICoqUEFZSUQqKiAtIEF1c3RyYWxpYW4gUGF5SUQgcGF5bWVudCBzeXN0ZW0gKiAqKkNIQVBTKiogLSBUaGUgQ2xlYXJpbmcgSG91c2UgQXV0b21hdGVkIFBheW1lbnQgU3lzdGVtIChDSEFQUykgaXMgYSByZWFsLXRpbWUgZ3Jvc3Mgc2V0dGxlbWVudCBwYXltZW50IHN5c3RlbSB1c2VkIGZvciB0cmFuc2FjdGlvbnMgaW4gdGhlIFVuaXRlZCBLaW5nZG9tIAoKIyMgRW51bQoKKiBgQkxPQ0tDSEFJTmAgKHZhbHVlOiBgJ0JMT0NLQ0hBSU4nYCkKCiogYElOVEVSTkFMYCAodmFsdWU6IGAnSU5URVJOQUwnYCkKCiogYFBFRVJgICh2YWx1ZTogYCdQRUVSJ2ApCgoqIGBTV0lGVGAgKHZhbHVlOiBgJ1NXSUZUJ2ApCgoqIGBJQkFOYCAodmFsdWU6IGAnSUJBTidgKQoKKiBgVVNfV0lSRWAgKHZhbHVlOiBgJ1VTX1dJUkUnYCkKCiogYEFDSGAgKHZhbHVlOiBgJ0FDSCdgKQoKKiBgU0VQQWAgKHZhbHVlOiBgJ1NFUEEnYCkKCiogYFNQRUlgICh2YWx1ZTogYCdTUEVJJ2ApCgoqIGBQSVhgICh2YWx1ZTogYCdQSVgnYCkKCiogYExPQ0FMX0JBTktfVFJBTlNGRVJfQUZSSUNBYCAodmFsdWU6IGAnTE9DQUxfQkFOS19UUkFOU0ZFUl9BRlJJQ0EnYCkKCiogYE1PQklMRV9NT05FWWAgKHZhbHVlOiBgJ01PQklMRV9NT05FWSdgKQoKKiBgSU5URVJOQUxfVFJBTlNGRVJgICh2YWx1ZTogYCdJTlRFUk5BTF9UUkFOU0ZFUidgKQoKKiBgSU5URVJBQ2AgKHZhbHVlOiBgJ0lOVEVSQUMnYCkKCiogYFBBWUlEYCAodmFsdWU6IGAnUEFZSUQnYCkKCiogYENIQVBTYCAodmFsdWU6IGAnQ0hBUFMnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TransferReceipt.md b/docs/TransferReceipt.md index 5ea42825..4a1f7ea3 100644 --- a/docs/TransferReceipt.md +++ b/docs/TransferReceipt.md @@ -1,32 +1 @@ -# TransferReceipt - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | [optional] -**tx_hash** | **str** | The hash of the transaction on the blockchain. | [optional] -**amount** | **str** | The amount of the fiat transfer. | -**reference_id** | **str** | The reference ID for the fiat transfer. | [optional] - -## Example - -```python -from fireblocks.models.transfer_receipt import TransferReceipt - -# TODO update the JSON string below -json = "{}" -# create an instance of TransferReceipt from a JSON string -transfer_receipt_instance = TransferReceipt.from_json(json) -# print the JSON string representation of the object -print(TransferReceipt.to_json()) - -# convert the object into a dict -transfer_receipt_dict = transfer_receipt_instance.to_dict() -# create an instance of TransferReceipt from a dict -transfer_receipt_from_dict = TransferReceipt.from_dict(transfer_receipt_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2ZlclJlY2VpcHQKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHlwZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqdHhfaGFzaCoqIHwgKipzdHIqKiB8IFRoZSBoYXNoIG9mIHRoZSB0cmFuc2FjdGlvbiBvbiB0aGUgYmxvY2tjaGFpbi4gfCBbb3B0aW9uYWxdIAoqKmFtb3VudCoqIHwgKipzdHIqKiB8IFRoZSBhbW91bnQgb2YgdGhlIGZpYXQgdHJhbnNmZXIuIHwgCioqcmVmZXJlbmNlX2lkKiogfCAqKnN0cioqIHwgVGhlIHJlZmVyZW5jZSBJRCBmb3IgdGhlIGZpYXQgdHJhbnNmZXIuIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3JlY2VpcHQgaW1wb3J0IFRyYW5zZmVyUmVjZWlwdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNmZXJSZWNlaXB0IGZyb20gYSBKU09OIHN0cmluZwp0cmFuc2Zlcl9yZWNlaXB0X2luc3RhbmNlID0gVHJhbnNmZXJSZWNlaXB0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRyYW5zZmVyUmVjZWlwdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmFuc2Zlcl9yZWNlaXB0X2RpY3QgPSB0cmFuc2Zlcl9yZWNlaXB0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2ZlclJlY2VpcHQgZnJvbSBhIGRpY3QKdHJhbnNmZXJfcmVjZWlwdF9mcm9tX2RpY3QgPSBUcmFuc2ZlclJlY2VpcHQuZnJvbV9kaWN0KHRyYW5zZmVyX3JlY2VpcHRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TransferValidationFailure.md b/docs/TransferValidationFailure.md index 87492897..9b299f4e 100644 --- a/docs/TransferValidationFailure.md +++ b/docs/TransferValidationFailure.md @@ -1,30 +1 @@ -# TransferValidationFailure - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**reason** | **str** | | -**data** | **Dict[str, object]** | | [optional] - -## Example - -```python -from fireblocks.models.transfer_validation_failure import TransferValidationFailure - -# TODO update the JSON string below -json = "{}" -# create an instance of TransferValidationFailure from a JSON string -transfer_validation_failure_instance = TransferValidationFailure.from_json(json) -# print the JSON string representation of the object -print(TransferValidationFailure.to_json()) - -# convert the object into a dict -transfer_validation_failure_dict = transfer_validation_failure_instance.to_dict() -# create an instance of TransferValidationFailure from a dict -transfer_validation_failure_from_dict = TransferValidationFailure.from_dict(transfer_validation_failure_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmFuc2ZlclZhbGlkYXRpb25GYWlsdXJlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnJlYXNvbioqIHwgKipzdHIqKiB8ICB8IAoqKmRhdGEqKiB8ICoqRGljdFtzdHIsIG9iamVjdF0qKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl92YWxpZGF0aW9uX2ZhaWx1cmUgaW1wb3J0IFRyYW5zZmVyVmFsaWRhdGlvbkZhaWx1cmUKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zZmVyVmFsaWRhdGlvbkZhaWx1cmUgZnJvbSBhIEpTT04gc3RyaW5nCnRyYW5zZmVyX3ZhbGlkYXRpb25fZmFpbHVyZV9pbnN0YW5jZSA9IFRyYW5zZmVyVmFsaWRhdGlvbkZhaWx1cmUuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhbnNmZXJWYWxpZGF0aW9uRmFpbHVyZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmFuc2Zlcl92YWxpZGF0aW9uX2ZhaWx1cmVfZGljdCA9IHRyYW5zZmVyX3ZhbGlkYXRpb25fZmFpbHVyZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNmZXJWYWxpZGF0aW9uRmFpbHVyZSBmcm9tIGEgZGljdAp0cmFuc2Zlcl92YWxpZGF0aW9uX2ZhaWx1cmVfZnJvbV9kaWN0ID0gVHJhbnNmZXJWYWxpZGF0aW9uRmFpbHVyZS5mcm9tX2RpY3QodHJhbnNmZXJfdmFsaWRhdGlvbl9mYWlsdXJlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TravelRuleActionEnum.md b/docs/TravelRuleActionEnum.md index 01e82b18..97a73870 100644 --- a/docs/TravelRuleActionEnum.md +++ b/docs/TravelRuleActionEnum.md @@ -1,15 +1 @@ -# TravelRuleActionEnum - -Travel rule action - -## Enum - -* `SCREEN` (value: `'SCREEN'`) - -* `BYPASS` (value: `'BYPASS'`) - -* `BLOCK` (value: `'BLOCK'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlQWN0aW9uRW51bQoKVHJhdmVsIHJ1bGUgYWN0aW9uCgojIyBFbnVtCgoqIGBTQ1JFRU5gICh2YWx1ZTogYCdTQ1JFRU4nYCkKCiogYEJZUEFTU2AgKHZhbHVlOiBgJ0JZUEFTUydgKQoKKiBgQkxPQ0tgICh2YWx1ZTogYCdCTE9DSydgKQoKKiBgUEFTU2AgKHZhbHVlOiBgJ1BBU1MnYCkKCiogYEZSRUVaRWAgKHZhbHVlOiBgJ0ZSRUVaRSdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TravelRuleAddress.md b/docs/TravelRuleAddress.md index 9c3263eb..54a9525a 100644 --- a/docs/TravelRuleAddress.md +++ b/docs/TravelRuleAddress.md @@ -1,32 +1 @@ -# TravelRuleAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**street** | **str** | Street address | [optional] -**city** | **str** | City | [optional] -**state** | **str** | State or province | [optional] -**postal_code** | **str** | Postal or ZIP code | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_address import TravelRuleAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleAddress from a JSON string -travel_rule_address_instance = TravelRuleAddress.from_json(json) -# print the JSON string representation of the object -print(TravelRuleAddress.to_json()) - -# convert the object into a dict -travel_rule_address_dict = travel_rule_address_instance.to_dict() -# create an instance of TravelRuleAddress from a dict -travel_rule_address_from_dict = TravelRuleAddress.from_dict(travel_rule_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlQWRkcmVzcwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzdHJlZXQqKiB8ICoqc3RyKiogfCBTdHJlZXQgYWRkcmVzcyB8IFtvcHRpb25hbF0gCioqY2l0eSoqIHwgKipzdHIqKiB8IENpdHkgfCBbb3B0aW9uYWxdIAoqKnN0YXRlKiogfCAqKnN0cioqIHwgU3RhdGUgb3IgcHJvdmluY2UgfCBbb3B0aW9uYWxdIAoqKnBvc3RhbF9jb2RlKiogfCAqKnN0cioqIHwgUG9zdGFsIG9yIFpJUCBjb2RlIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2FkZHJlc3MgaW1wb3J0IFRyYXZlbFJ1bGVBZGRyZXNzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlQWRkcmVzcyBmcm9tIGEgSlNPTiBzdHJpbmcKdHJhdmVsX3J1bGVfYWRkcmVzc19pbnN0YW5jZSA9IFRyYXZlbFJ1bGVBZGRyZXNzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRyYXZlbFJ1bGVBZGRyZXNzLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYXZlbF9ydWxlX2FkZHJlc3NfZGljdCA9IHRyYXZlbF9ydWxlX2FkZHJlc3NfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVBZGRyZXNzIGZyb20gYSBkaWN0CnRyYXZlbF9ydWxlX2FkZHJlc3NfZnJvbV9kaWN0ID0gVHJhdmVsUnVsZUFkZHJlc3MuZnJvbV9kaWN0KHRyYXZlbF9ydWxlX2FkZHJlc3NfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TravelRuleApi.md b/docs/TravelRuleApi.md index 5903f013..17735723 100644 --- a/docs/TravelRuleApi.md +++ b/docs/TravelRuleApi.md @@ -1,644 +1 @@ -# fireblocks.TravelRuleApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**create_trust_proof_of_address**](TravelRuleApi.md#create_trust_proof_of_address) | **POST** /screening/travel_rule/providers/trust/proof_of_address | Create Trust Network Proof of Address -[**get_trust_proof_of_address**](TravelRuleApi.md#get_trust_proof_of_address) | **GET** /screening/travel_rule/providers/trust/proof_of_address/{transactionId} | Retrieve Trust Network Proof of Address Signature -[**get_vasp_for_vault**](TravelRuleApi.md#get_vasp_for_vault) | **GET** /screening/travel_rule/vault/{vaultAccountId}/vasp | Get assigned VASP to vault -[**get_vaspby_did**](TravelRuleApi.md#get_vaspby_did) | **GET** /screening/travel_rule/vasp/{did} | Get VASP details -[**get_vasps**](TravelRuleApi.md#get_vasps) | **GET** /screening/travel_rule/vasp | Get All VASPs -[**set_vasp_for_vault**](TravelRuleApi.md#set_vasp_for_vault) | **POST** /screening/travel_rule/vault/{vaultAccountId}/vasp | Assign VASP to vault -[**update_vasp**](TravelRuleApi.md#update_vasp) | **PUT** /screening/travel_rule/vasp/update | Add jsonDidKey to VASP details -[**validate_full_travel_rule_transaction**](TravelRuleApi.md#validate_full_travel_rule_transaction) | **POST** /screening/travel_rule/transaction/validate/full | Validate Full Travel Rule Transaction - - -# **create_trust_proof_of_address** -> TrustProofOfAddressCreateResponse create_trust_proof_of_address(trust_proof_of_address_request, idempotency_key=idempotency_key) - -Create Trust Network Proof of Address - -Creates a cryptographic proof of address ownership for TRUST network. - -### Example - - -```python -from fireblocks.models.trust_proof_of_address_create_response import TrustProofOfAddressCreateResponse -from fireblocks.models.trust_proof_of_address_request import TrustProofOfAddressRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - trust_proof_of_address_request = fireblocks.TrustProofOfAddressRequest() # TrustProofOfAddressRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Create Trust Network Proof of Address - api_response = fireblocks.travel_rule.create_trust_proof_of_address(trust_proof_of_address_request, idempotency_key=idempotency_key).result() - print("The response of TravelRuleApi->create_trust_proof_of_address:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TravelRuleApi->create_trust_proof_of_address: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **trust_proof_of_address_request** | [**TrustProofOfAddressRequest**](TrustProofOfAddressRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**TrustProofOfAddressCreateResponse**](TrustProofOfAddressCreateResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Proof of address transaction created successfully | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_trust_proof_of_address** -> TrustProofOfAddressResponse get_trust_proof_of_address(transaction_id) - -Retrieve Trust Network Proof of Address Signature - -Retrieves the TRUST-compatible encoded signature for a proof of address transaction. Send this signature directly to TRUST for verification. - -### Example - - -```python -from fireblocks.models.trust_proof_of_address_response import TrustProofOfAddressResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - transaction_id = '550e8400-e29b-41d4-a716-446655440000' # str | Fireblocks transaction ID (UUID format) - - try: - # Retrieve Trust Network Proof of Address Signature - api_response = fireblocks.travel_rule.get_trust_proof_of_address(transaction_id).result() - print("The response of TravelRuleApi->get_trust_proof_of_address:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TravelRuleApi->get_trust_proof_of_address: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **transaction_id** | **str**| Fireblocks transaction ID (UUID format) | - -### Return type - -[**TrustProofOfAddressResponse**](TrustProofOfAddressResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Encoded signature retrieved successfully | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_vasp_for_vault** -> TravelRuleVaspForVault get_vasp_for_vault(vault_account_id) - -Get assigned VASP to vault - -Get assigned VASP Did for a specific vault. Returns empty string vaspDid value in response if none assigned. - -### Example - - -```python -from fireblocks.models.travel_rule_vasp_for_vault import TravelRuleVaspForVault -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_account_id = '1' # str | The ID of the vault account - - try: - # Get assigned VASP to vault - api_response = fireblocks.travel_rule.get_vasp_for_vault(vault_account_id).result() - print("The response of TravelRuleApi->get_vasp_for_vault:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TravelRuleApi->get_vasp_for_vault: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| The ID of the vault account | - -### Return type - -[**TravelRuleVaspForVault**](TravelRuleVaspForVault.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_vaspby_did** -> TravelRuleVASP get_vaspby_did(did, fields=fields) - -Get VASP details - -Get VASP Details. - -Returns information about a VASP that has the specified DID. - -### Example - - -```python -from fireblocks.models.travel_rule_vasp import TravelRuleVASP -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - did = 'did_example' # str | - fields = ['fields_example'] # List[str] | A CSV of fields to return. Choose from the following options: (optional) - - try: - # Get VASP details - api_response = fireblocks.travel_rule.get_vaspby_did(did, fields=fields).result() - print("The response of TravelRuleApi->get_vaspby_did:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TravelRuleApi->get_vaspby_did: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **did** | **str**| | - **fields** | [**List[str]**](str.md)| A CSV of fields to return. Choose from the following options: | [optional] - -### Return type - -[**TravelRuleVASP**](TravelRuleVASP.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Transaction validated successfully | - | -**400** | Invalid request body | - | -**500** | Internal server error | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_vasps** -> TravelRuleGetAllVASPsResponse get_vasps(order=order, page_size=page_size, fields=fields, search=search, review_value=review_value, page_cursor=page_cursor) - -Get All VASPs - -Get All VASPs. - -Returns a list of VASPs. VASPs can be searched and sorted. - -### Example - - -```python -from fireblocks.models.travel_rule_get_all_vasps_response import TravelRuleGetAllVASPsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - order = 'ASC' # str | Field to order by (optional) - page_size = 500 # float | Records per page (optional) (default to 500) - fields = ['fields_example'] # List[str] | CSV of fields to return (all, \"blank\" or see list of all field names below) (optional) - search = 'Fireblocks' # str | Search query (optional) - review_value = 'TRUSTED' # str | Filter by the VASP's review status. Possible values include: \"TRUSTED\", \"BLOCKED\", \"MANUAL\", or \"NULL\". When provided, only VASPs that match the specified reviewValue will be returned (i.e., VASPs that have already been reviewed to this status). (optional) - page_cursor = '100' # str | Cursor for pagination. When provided, the response will include the next page of results. (optional) - - try: - # Get All VASPs - api_response = fireblocks.travel_rule.get_vasps(order=order, page_size=page_size, fields=fields, search=search, review_value=review_value, page_cursor=page_cursor).result() - print("The response of TravelRuleApi->get_vasps:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TravelRuleApi->get_vasps: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **order** | **str**| Field to order by | [optional] - **page_size** | **float**| Records per page | [optional] [default to 500] - **fields** | [**List[str]**](str.md)| CSV of fields to return (all, \"blank\" or see list of all field names below) | [optional] - **search** | **str**| Search query | [optional] - **review_value** | **str**| Filter by the VASP's review status. Possible values include: \"TRUSTED\", \"BLOCKED\", \"MANUAL\", or \"NULL\". When provided, only VASPs that match the specified reviewValue will be returned (i.e., VASPs that have already been reviewed to this status). | [optional] - **page_cursor** | **str**| Cursor for pagination. When provided, the response will include the next page of results. | [optional] - -### Return type - -[**TravelRuleGetAllVASPsResponse**](TravelRuleGetAllVASPsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Get all VASPs | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_vasp_for_vault** -> TravelRuleVaspForVault set_vasp_for_vault(vault_account_id, travel_rule_vasp_for_vault, idempotency_key=idempotency_key) - -Assign VASP to vault - -Sets the VASP Did for a specific vault. Pass empty string to remove existing one. - -### Example - - -```python -from fireblocks.models.travel_rule_vasp_for_vault import TravelRuleVaspForVault -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_account_id = 'vault_account_id_example' # str | The ID of the vault account - travel_rule_vasp_for_vault = fireblocks.TravelRuleVaspForVault() # TravelRuleVaspForVault | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Assign VASP to vault - api_response = fireblocks.travel_rule.set_vasp_for_vault(vault_account_id, travel_rule_vasp_for_vault, idempotency_key=idempotency_key).result() - print("The response of TravelRuleApi->set_vasp_for_vault:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TravelRuleApi->set_vasp_for_vault: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| The ID of the vault account | - **travel_rule_vasp_for_vault** | [**TravelRuleVaspForVault**](TravelRuleVaspForVault.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**TravelRuleVaspForVault**](TravelRuleVaspForVault.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_vasp** -> TravelRuleUpdateVASPDetails update_vasp(travel_rule_update_vasp_details, idempotency_key=idempotency_key) - -Add jsonDidKey to VASP details - -Update VASP Details. - -Updates a VASP with the provided parameters. Use this endpoint to add your public jsonDIDkey generated by Notabene. - -### Example - - -```python -from fireblocks.models.travel_rule_update_vasp_details import TravelRuleUpdateVASPDetails -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - travel_rule_update_vasp_details = fireblocks.TravelRuleUpdateVASPDetails() # TravelRuleUpdateVASPDetails | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Add jsonDidKey to VASP details - api_response = fireblocks.travel_rule.update_vasp(travel_rule_update_vasp_details, idempotency_key=idempotency_key).result() - print("The response of TravelRuleApi->update_vasp:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TravelRuleApi->update_vasp: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **travel_rule_update_vasp_details** | [**TravelRuleUpdateVASPDetails**](TravelRuleUpdateVASPDetails.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**TravelRuleUpdateVASPDetails**](TravelRuleUpdateVASPDetails.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | VASP updated successfully | - | -**400** | Invalid request body | - | -**500** | Internal server error | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **validate_full_travel_rule_transaction** -> TravelRuleValidateTransactionResponse validate_full_travel_rule_transaction(travel_rule_validate_full_transaction_request, notation=notation, idempotency_key=idempotency_key) - -Validate Full Travel Rule Transaction - -Validate Full Travel Rule transactions. - -Checks for all required information on the originator and beneficiary VASPs. - -### Example - - -```python -from fireblocks.models.travel_rule_validate_full_transaction_request import TravelRuleValidateFullTransactionRequest -from fireblocks.models.travel_rule_validate_transaction_response import TravelRuleValidateTransactionResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - travel_rule_validate_full_transaction_request = fireblocks.TravelRuleValidateFullTransactionRequest() # TravelRuleValidateFullTransactionRequest | - notation = ['notation_example'] # List[str] | Specifies the notation of the transaction. Possible values are: - `notabene`: Uses Notabene notation (default behavior). - `fireblocks`: Uses Fireblocks notation, with automatic translation of asset tickers and amounts. - ``: Defaults to `notabene` for backward compatibility. **Note:** The default value for the `notation` parameter will change from `notabene` to `fireblocks` Update your integrations accordingly. (optional) - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Validate Full Travel Rule Transaction - api_response = fireblocks.travel_rule.validate_full_travel_rule_transaction(travel_rule_validate_full_transaction_request, notation=notation, idempotency_key=idempotency_key).result() - print("The response of TravelRuleApi->validate_full_travel_rule_transaction:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling TravelRuleApi->validate_full_travel_rule_transaction: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **travel_rule_validate_full_transaction_request** | [**TravelRuleValidateFullTransactionRequest**](TravelRuleValidateFullTransactionRequest.md)| | - **notation** | [**List[str]**](str.md)| Specifies the notation of the transaction. Possible values are: - `notabene`: Uses Notabene notation (default behavior). - `fireblocks`: Uses Fireblocks notation, with automatic translation of asset tickers and amounts. - `<none>`: Defaults to `notabene` for backward compatibility. **Note:** The default value for the `notation` parameter will change from `notabene` to `fireblocks` Update your integrations accordingly. | [optional] - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**TravelRuleValidateTransactionResponse**](TravelRuleValidateTransactionResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Transaction validated successfully | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLlRyYXZlbFJ1bGVBcGkKCkFsbCBVUklzIGFyZSByZWxhdGl2ZSB0byAqaHR0cHM6Ly9hcGkuZmlyZWJsb2Nrcy5pby92MSoKCk1ldGhvZCB8IEhUVFAgcmVxdWVzdCB8IERlc2NyaXB0aW9uCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQpbKipjcmVhdGVfdHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzcyoqXShUcmF2ZWxSdWxlQXBpLm1kI2NyZWF0ZV90cnVzdF9wcm9vZl9vZl9hZGRyZXNzKSB8ICoqUE9TVCoqIC9zY3JlZW5pbmcvdHJhdmVsX3J1bGUvcHJvdmlkZXJzL3RydXN0L3Byb29mX29mX2FkZHJlc3MgfCBDcmVhdGUgVHJ1c3QgTmV0d29yayBQcm9vZiBvZiBBZGRyZXNzClsqKmdldF90cnVzdF9wcm9vZl9vZl9hZGRyZXNzKipdKFRyYXZlbFJ1bGVBcGkubWQjZ2V0X3RydXN0X3Byb29mX29mX2FkZHJlc3MpIHwgKipHRVQqKiAvc2NyZWVuaW5nL3RyYXZlbF9ydWxlL3Byb3ZpZGVycy90cnVzdC9wcm9vZl9vZl9hZGRyZXNzL3t0cmFuc2FjdGlvbklkfSB8IFJldHJpZXZlIFRydXN0IE5ldHdvcmsgUHJvb2Ygb2YgQWRkcmVzcyBTaWduYXR1cmUKWyoqZ2V0X3Zhc3BfZm9yX3ZhdWx0KipdKFRyYXZlbFJ1bGVBcGkubWQjZ2V0X3Zhc3BfZm9yX3ZhdWx0KSB8ICoqR0VUKiogL3NjcmVlbmluZy90cmF2ZWxfcnVsZS92YXVsdC97dmF1bHRBY2NvdW50SWR9L3Zhc3AgfCBHZXQgYXNzaWduZWQgVkFTUCB0byB2YXVsdApbKipnZXRfdmFzcGJ5X2RpZCoqXShUcmF2ZWxSdWxlQXBpLm1kI2dldF92YXNwYnlfZGlkKSB8ICoqR0VUKiogL3NjcmVlbmluZy90cmF2ZWxfcnVsZS92YXNwL3tkaWR9IHwgR2V0IFZBU1AgZGV0YWlscwpbKipnZXRfdmFzcHMqKl0oVHJhdmVsUnVsZUFwaS5tZCNnZXRfdmFzcHMpIHwgKipHRVQqKiAvc2NyZWVuaW5nL3RyYXZlbF9ydWxlL3Zhc3AgfCBHZXQgQWxsIFZBU1BzClsqKnNldF92YXNwX2Zvcl92YXVsdCoqXShUcmF2ZWxSdWxlQXBpLm1kI3NldF92YXNwX2Zvcl92YXVsdCkgfCAqKlBPU1QqKiAvc2NyZWVuaW5nL3RyYXZlbF9ydWxlL3ZhdWx0L3t2YXVsdEFjY291bnRJZH0vdmFzcCB8IEFzc2lnbiBWQVNQIHRvIHZhdWx0ClsqKnVwZGF0ZV92YXNwKipdKFRyYXZlbFJ1bGVBcGkubWQjdXBkYXRlX3Zhc3ApIHwgKipQVVQqKiAvc2NyZWVuaW5nL3RyYXZlbF9ydWxlL3Zhc3AvdXBkYXRlIHwgQWRkIGpzb25EaWRLZXkgdG8gVkFTUCBkZXRhaWxzClsqKnZhbGlkYXRlX2Z1bGxfdHJhdmVsX3J1bGVfdHJhbnNhY3Rpb24qKl0oVHJhdmVsUnVsZUFwaS5tZCN2YWxpZGF0ZV9mdWxsX3RyYXZlbF9ydWxlX3RyYW5zYWN0aW9uKSB8ICoqUE9TVCoqIC9zY3JlZW5pbmcvdHJhdmVsX3J1bGUvdHJhbnNhY3Rpb24vdmFsaWRhdGUvZnVsbCB8IFZhbGlkYXRlIEZ1bGwgVHJhdmVsIFJ1bGUgVHJhbnNhY3Rpb24KCgojICoqY3JlYXRlX3RydXN0X3Byb29mX29mX2FkZHJlc3MqKgo+IFRydXN0UHJvb2ZPZkFkZHJlc3NDcmVhdGVSZXNwb25zZSBjcmVhdGVfdHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzcyh0cnVzdF9wcm9vZl9vZl9hZGRyZXNzX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpDcmVhdGUgVHJ1c3QgTmV0d29yayBQcm9vZiBvZiBBZGRyZXNzCgpDcmVhdGVzIGEgY3J5cHRvZ3JhcGhpYyBwcm9vZiBvZiBhZGRyZXNzIG93bmVyc2hpcCBmb3IgVFJVU1QgbmV0d29yay4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzc19jcmVhdGVfcmVzcG9uc2UgaW1wb3J0IFRydXN0UHJvb2ZPZkFkZHJlc3NDcmVhdGVSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRydXN0X3Byb29mX29mX2FkZHJlc3NfcmVxdWVzdCBpbXBvcnQgVHJ1c3RQcm9vZk9mQWRkcmVzc1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzc19yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5UcnVzdFByb29mT2ZBZGRyZXNzUmVxdWVzdCgpICMgVHJ1c3RQcm9vZk9mQWRkcmVzc1JlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBDcmVhdGUgVHJ1c3QgTmV0d29yayBQcm9vZiBvZiBBZGRyZXNzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50cmF2ZWxfcnVsZS5jcmVhdGVfdHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzcyh0cnVzdF9wcm9vZl9vZl9hZGRyZXNzX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUcmF2ZWxSdWxlQXBpLT5jcmVhdGVfdHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzczpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBUcmF2ZWxSdWxlQXBpLT5jcmVhdGVfdHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzczogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqdHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzc19yZXF1ZXN0KiogfCBbKipUcnVzdFByb29mT2ZBZGRyZXNzUmVxdWVzdCoqXShUcnVzdFByb29mT2ZBZGRyZXNzUmVxdWVzdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipUcnVzdFByb29mT2ZBZGRyZXNzQ3JlYXRlUmVzcG9uc2UqKl0oVHJ1c3RQcm9vZk9mQWRkcmVzc0NyZWF0ZVJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBQcm9vZiBvZiBhZGRyZXNzIHRyYW5zYWN0aW9uIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfdHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzcyoqCj4gVHJ1c3RQcm9vZk9mQWRkcmVzc1Jlc3BvbnNlIGdldF90cnVzdF9wcm9vZl9vZl9hZGRyZXNzKHRyYW5zYWN0aW9uX2lkKQoKUmV0cmlldmUgVHJ1c3QgTmV0d29yayBQcm9vZiBvZiBBZGRyZXNzIFNpZ25hdHVyZQoKUmV0cmlldmVzIHRoZSBUUlVTVC1jb21wYXRpYmxlIGVuY29kZWQgc2lnbmF0dXJlIGZvciBhIHByb29mIG9mIGFkZHJlc3MgdHJhbnNhY3Rpb24uIFNlbmQgdGhpcyBzaWduYXR1cmUgZGlyZWN0bHkgdG8gVFJVU1QgZm9yIHZlcmlmaWNhdGlvbi4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzc19yZXNwb25zZSBpbXBvcnQgVHJ1c3RQcm9vZk9mQWRkcmVzc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHRyYW5zYWN0aW9uX2lkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCcgIyBzdHIgfCBGaXJlYmxvY2tzIHRyYW5zYWN0aW9uIElEIChVVUlEIGZvcm1hdCkKCiAgICB0cnk6CiAgICAgICAgIyBSZXRyaWV2ZSBUcnVzdCBOZXR3b3JrIFByb29mIG9mIEFkZHJlc3MgU2lnbmF0dXJlCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50cmF2ZWxfcnVsZS5nZXRfdHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzcyh0cmFuc2FjdGlvbl9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRyYXZlbFJ1bGVBcGktPmdldF90cnVzdF9wcm9vZl9vZl9hZGRyZXNzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRyYXZlbFJ1bGVBcGktPmdldF90cnVzdF9wcm9vZl9vZl9hZGRyZXNzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip0cmFuc2FjdGlvbl9pZCoqIHwgKipzdHIqKnwgRmlyZWJsb2NrcyB0cmFuc2FjdGlvbiBJRCAoVVVJRCBmb3JtYXQpIHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKlRydXN0UHJvb2ZPZkFkZHJlc3NSZXNwb25zZSoqXShUcnVzdFByb29mT2ZBZGRyZXNzUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBFbmNvZGVkIHNpZ25hdHVyZSByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfdmFzcF9mb3JfdmF1bHQqKgo+IFRyYXZlbFJ1bGVWYXNwRm9yVmF1bHQgZ2V0X3Zhc3BfZm9yX3ZhdWx0KHZhdWx0X2FjY291bnRfaWQpCgpHZXQgYXNzaWduZWQgVkFTUCB0byB2YXVsdAoKR2V0IGFzc2lnbmVkIFZBU1AgRGlkIGZvciBhIHNwZWNpZmljIHZhdWx0LiBSZXR1cm5zIGVtcHR5IHN0cmluZyB2YXNwRGlkIHZhbHVlIGluIHJlc3BvbnNlIGlmIG5vbmUgYXNzaWduZWQuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3Zhc3BfZm9yX3ZhdWx0IGltcG9ydCBUcmF2ZWxSdWxlVmFzcEZvclZhdWx0CmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHZhdWx0X2FjY291bnRfaWQgPSAnMScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgYXNzaWduZWQgVkFTUCB0byB2YXVsdAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudHJhdmVsX3J1bGUuZ2V0X3Zhc3BfZm9yX3ZhdWx0KHZhdWx0X2FjY291bnRfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUcmF2ZWxSdWxlQXBpLT5nZXRfdmFzcF9mb3JfdmF1bHQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVHJhdmVsUnVsZUFwaS0+Z2V0X3Zhc3BfZm9yX3ZhdWx0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip2YXVsdF9hY2NvdW50X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqVHJhdmVsUnVsZVZhc3BGb3JWYXVsdCoqXShUcmF2ZWxSdWxlVmFzcEZvclZhdWx0Lm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgT0sgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF92YXNwYnlfZGlkKioKPiBUcmF2ZWxSdWxlVkFTUCBnZXRfdmFzcGJ5X2RpZChkaWQsIGZpZWxkcz1maWVsZHMpCgpHZXQgVkFTUCBkZXRhaWxzCgpHZXQgVkFTUCBEZXRhaWxzLgoKUmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIFZBU1AgdGhhdCBoYXMgdGhlIHNwZWNpZmllZCBESUQuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3Zhc3AgaW1wb3J0IFRyYXZlbFJ1bGVWQVNQCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGRpZCA9ICdkaWRfZXhhbXBsZScgIyBzdHIgfCAKICAgIGZpZWxkcyA9IFsnZmllbGRzX2V4YW1wbGUnXSAjIExpc3Rbc3RyXSB8IEEgQ1NWIG9mIGZpZWxkcyB0byByZXR1cm4uIENob29zZSBmcm9tIHRoZSBmb2xsb3dpbmcgb3B0aW9uczogKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIEdldCBWQVNQIGRldGFpbHMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRyYXZlbF9ydWxlLmdldF92YXNwYnlfZGlkKGRpZCwgZmllbGRzPWZpZWxkcykucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRyYXZlbFJ1bGVBcGktPmdldF92YXNwYnlfZGlkOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRyYXZlbFJ1bGVBcGktPmdldF92YXNwYnlfZGlkOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipkaWQqKiB8ICoqc3RyKip8ICB8IAogKipmaWVsZHMqKiB8IFsqKkxpc3Rbc3RyXSoqXShzdHIubWQpfCBBIENTViBvZiBmaWVsZHMgdG8gcmV0dXJuLiBDaG9vc2UgZnJvbSB0aGUgZm9sbG93aW5nIG9wdGlvbnM6IHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqVHJhdmVsUnVsZVZBU1AqKl0oVHJhdmVsUnVsZVZBU1AubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBUcmFuc2FjdGlvbiB2YWxpZGF0ZWQgc3VjY2Vzc2Z1bGx5IHwgIC0gIHwKKio0MDAqKiB8IEludmFsaWQgcmVxdWVzdCBib2R5IHwgIC0gIHwKKio1MDAqKiB8IEludGVybmFsIHNlcnZlciBlcnJvciB8ICAtICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfdmFzcHMqKgo+IFRyYXZlbFJ1bGVHZXRBbGxWQVNQc1Jlc3BvbnNlIGdldF92YXNwcyhvcmRlcj1vcmRlciwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwgZmllbGRzPWZpZWxkcywgc2VhcmNoPXNlYXJjaCwgcmV2aWV3X3ZhbHVlPXJldmlld192YWx1ZSwgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IpCgpHZXQgQWxsIFZBU1BzCgpHZXQgQWxsIFZBU1BzLgoKUmV0dXJucyBhIGxpc3Qgb2YgVkFTUHMuIFZBU1BzIGNhbiBiZSBzZWFyY2hlZCBhbmQgc29ydGVkLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9nZXRfYWxsX3Zhc3BzX3Jlc3BvbnNlIGltcG9ydCBUcmF2ZWxSdWxlR2V0QWxsVkFTUHNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBvcmRlciA9ICdBU0MnICMgc3RyIHwgRmllbGQgdG8gb3JkZXIgYnkgKG9wdGlvbmFsKQogICAgcGFnZV9zaXplID0gNTAwICMgZmxvYXQgfCBSZWNvcmRzIHBlciBwYWdlIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gNTAwKQogICAgZmllbGRzID0gWydmaWVsZHNfZXhhbXBsZSddICMgTGlzdFtzdHJdIHwgQ1NWIG9mIGZpZWxkcyB0byByZXR1cm4gKGFsbCwgXCJibGFua1wiIG9yIHNlZSBsaXN0IG9mIGFsbCBmaWVsZCBuYW1lcyBiZWxvdykgKG9wdGlvbmFsKQogICAgc2VhcmNoID0gJ0ZpcmVibG9ja3MnICMgc3RyIHwgU2VhcmNoIHF1ZXJ5IChvcHRpb25hbCkKICAgIHJldmlld192YWx1ZSA9ICdUUlVTVEVEJyAjIHN0ciB8IEZpbHRlciBieSB0aGUgVkFTUCdzIHJldmlldyBzdGF0dXMuIFBvc3NpYmxlIHZhbHVlcyBpbmNsdWRlOiBcIlRSVVNURURcIiwgXCJCTE9DS0VEXCIsIFwiTUFOVUFMXCIsIG9yIFwiTlVMTFwiLiBXaGVuIHByb3ZpZGVkLCBvbmx5IFZBU1BzIHRoYXQgbWF0Y2ggdGhlIHNwZWNpZmllZCByZXZpZXdWYWx1ZSB3aWxsIGJlIHJldHVybmVkIChpLmUuLCBWQVNQcyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHJldmlld2VkIHRvIHRoaXMgc3RhdHVzKS4gKG9wdGlvbmFsKQogICAgcGFnZV9jdXJzb3IgPSAnMTAwJyAjIHN0ciB8IEN1cnNvciBmb3IgcGFnaW5hdGlvbi4gV2hlbiBwcm92aWRlZCwgdGhlIHJlc3BvbnNlIHdpbGwgaW5jbHVkZSB0aGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgQWxsIFZBU1BzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50cmF2ZWxfcnVsZS5nZXRfdmFzcHMob3JkZXI9b3JkZXIsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsIGZpZWxkcz1maWVsZHMsIHNlYXJjaD1zZWFyY2gsIHJldmlld192YWx1ZT1yZXZpZXdfdmFsdWUsIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVHJhdmVsUnVsZUFwaS0+Z2V0X3Zhc3BzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRyYXZlbFJ1bGVBcGktPmdldF92YXNwczogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqb3JkZXIqKiB8ICoqc3RyKip8IEZpZWxkIHRvIG9yZGVyIGJ5IHwgW29wdGlvbmFsXSAKICoqcGFnZV9zaXplKiogfCAqKmZsb2F0Kip8IFJlY29yZHMgcGVyIHBhZ2UgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIDUwMF0KICoqZmllbGRzKiogfCBbKipMaXN0W3N0cl0qKl0oc3RyLm1kKXwgQ1NWIG9mIGZpZWxkcyB0byByZXR1cm4gKGFsbCwgXCZxdW90O2JsYW5rXCZxdW90OyBvciBzZWUgbGlzdCBvZiBhbGwgZmllbGQgbmFtZXMgYmVsb3cpIHwgW29wdGlvbmFsXSAKICoqc2VhcmNoKiogfCAqKnN0cioqfCBTZWFyY2ggcXVlcnkgfCBbb3B0aW9uYWxdIAogKipyZXZpZXdfdmFsdWUqKiB8ICoqc3RyKip8IEZpbHRlciBieSB0aGUgVkFTUCYjMzk7cyByZXZpZXcgc3RhdHVzLiBQb3NzaWJsZSB2YWx1ZXMgaW5jbHVkZTogXCZxdW90O1RSVVNURURcJnF1b3Q7LCBcJnF1b3Q7QkxPQ0tFRFwmcXVvdDssIFwmcXVvdDtNQU5VQUxcJnF1b3Q7LCBvciBcJnF1b3Q7TlVMTFwmcXVvdDsuIFdoZW4gcHJvdmlkZWQsIG9ubHkgVkFTUHMgdGhhdCBtYXRjaCB0aGUgc3BlY2lmaWVkIHJldmlld1ZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgKGkuZS4sIFZBU1BzIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gcmV2aWV3ZWQgdG8gdGhpcyBzdGF0dXMpLiB8IFtvcHRpb25hbF0gCiAqKnBhZ2VfY3Vyc29yKiogfCAqKnN0cioqfCBDdXJzb3IgZm9yIHBhZ2luYXRpb24uIFdoZW4gcHJvdmlkZWQsIHRoZSByZXNwb25zZSB3aWxsIGluY2x1ZGUgdGhlIG5leHQgcGFnZSBvZiByZXN1bHRzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlRyYXZlbFJ1bGVHZXRBbGxWQVNQc1Jlc3BvbnNlKipdKFRyYXZlbFJ1bGVHZXRBbGxWQVNQc1Jlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgR2V0IGFsbCBWQVNQcyB8ICAtICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqc2V0X3Zhc3BfZm9yX3ZhdWx0KioKPiBUcmF2ZWxSdWxlVmFzcEZvclZhdWx0IHNldF92YXNwX2Zvcl92YXVsdCh2YXVsdF9hY2NvdW50X2lkLCB0cmF2ZWxfcnVsZV92YXNwX2Zvcl92YXVsdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCkFzc2lnbiBWQVNQIHRvIHZhdWx0CgpTZXRzIHRoZSBWQVNQIERpZCBmb3IgYSBzcGVjaWZpYyB2YXVsdC4gUGFzcyBlbXB0eSBzdHJpbmcgdG8gcmVtb3ZlIGV4aXN0aW5nIG9uZS4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFzcF9mb3JfdmF1bHQgaW1wb3J0IFRyYXZlbFJ1bGVWYXNwRm9yVmF1bHQKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdmF1bHRfYWNjb3VudF9pZCA9ICd2YXVsdF9hY2NvdW50X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSB2YXVsdCBhY2NvdW50CiAgICB0cmF2ZWxfcnVsZV92YXNwX2Zvcl92YXVsdCA9IGZpcmVibG9ja3MuVHJhdmVsUnVsZVZhc3BGb3JWYXVsdCgpICMgVHJhdmVsUnVsZVZhc3BGb3JWYXVsdCB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIEFzc2lnbiBWQVNQIHRvIHZhdWx0CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy50cmF2ZWxfcnVsZS5zZXRfdmFzcF9mb3JfdmF1bHQodmF1bHRfYWNjb3VudF9pZCwgdHJhdmVsX3J1bGVfdmFzcF9mb3JfdmF1bHQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBUcmF2ZWxSdWxlQXBpLT5zZXRfdmFzcF9mb3JfdmF1bHQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVHJhdmVsUnVsZUFwaS0+c2V0X3Zhc3BfZm9yX3ZhdWx0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip2YXVsdF9hY2NvdW50X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgfCAKICoqdHJhdmVsX3J1bGVfdmFzcF9mb3JfdmF1bHQqKiB8IFsqKlRyYXZlbFJ1bGVWYXNwRm9yVmF1bHQqKl0oVHJhdmVsUnVsZVZhc3BGb3JWYXVsdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipUcmF2ZWxSdWxlVmFzcEZvclZhdWx0KipdKFRyYXZlbFJ1bGVWYXNwRm9yVmF1bHQubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDEqKiB8IE9LIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKip1cGRhdGVfdmFzcCoqCj4gVHJhdmVsUnVsZVVwZGF0ZVZBU1BEZXRhaWxzIHVwZGF0ZV92YXNwKHRyYXZlbF9ydWxlX3VwZGF0ZV92YXNwX2RldGFpbHMsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpBZGQganNvbkRpZEtleSB0byBWQVNQIGRldGFpbHMKClVwZGF0ZSBWQVNQIERldGFpbHMuCgpVcGRhdGVzIGEgVkFTUCB3aXRoIHRoZSBwcm92aWRlZCBwYXJhbWV0ZXJzLiBVc2UgdGhpcyBlbmRwb2ludCB0byBhZGQgeW91ciBwdWJsaWMganNvbkRJRGtleSBnZW5lcmF0ZWQgYnkgTm90YWJlbmUuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3VwZGF0ZV92YXNwX2RldGFpbHMgaW1wb3J0IFRyYXZlbFJ1bGVVcGRhdGVWQVNQRGV0YWlscwpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB0cmF2ZWxfcnVsZV91cGRhdGVfdmFzcF9kZXRhaWxzID0gZmlyZWJsb2Nrcy5UcmF2ZWxSdWxlVXBkYXRlVkFTUERldGFpbHMoKSAjIFRyYXZlbFJ1bGVVcGRhdGVWQVNQRGV0YWlscyB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIEFkZCBqc29uRGlkS2V5IHRvIFZBU1AgZGV0YWlscwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudHJhdmVsX3J1bGUudXBkYXRlX3Zhc3AodHJhdmVsX3J1bGVfdXBkYXRlX3Zhc3BfZGV0YWlscywgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRyYXZlbFJ1bGVBcGktPnVwZGF0ZV92YXNwOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFRyYXZlbFJ1bGVBcGktPnVwZGF0ZV92YXNwOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip0cmF2ZWxfcnVsZV91cGRhdGVfdmFzcF9kZXRhaWxzKiogfCBbKipUcmF2ZWxSdWxlVXBkYXRlVkFTUERldGFpbHMqKl0oVHJhdmVsUnVsZVVwZGF0ZVZBU1BEZXRhaWxzLm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlRyYXZlbFJ1bGVVcGRhdGVWQVNQRGV0YWlscyoqXShUcmF2ZWxSdWxlVXBkYXRlVkFTUERldGFpbHMubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFZBU1AgdXBkYXRlZCBzdWNjZXNzZnVsbHkgfCAgLSAgfAoqKjQwMCoqIHwgSW52YWxpZCByZXF1ZXN0IGJvZHkgfCAgLSAgfAoqKjUwMCoqIHwgSW50ZXJuYWwgc2VydmVyIGVycm9yIHwgIC0gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnZhbGlkYXRlX2Z1bGxfdHJhdmVsX3J1bGVfdHJhbnNhY3Rpb24qKgo+IFRyYXZlbFJ1bGVWYWxpZGF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UgdmFsaWRhdGVfZnVsbF90cmF2ZWxfcnVsZV90cmFuc2FjdGlvbih0cmF2ZWxfcnVsZV92YWxpZGF0ZV9mdWxsX3RyYW5zYWN0aW9uX3JlcXVlc3QsIG5vdGF0aW9uPW5vdGF0aW9uLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKVmFsaWRhdGUgRnVsbCBUcmF2ZWwgUnVsZSBUcmFuc2FjdGlvbgoKVmFsaWRhdGUgRnVsbCBUcmF2ZWwgUnVsZSB0cmFuc2FjdGlvbnMuCgpDaGVja3MgZm9yIGFsbCByZXF1aXJlZCBpbmZvcm1hdGlvbiBvbiB0aGUgb3JpZ2luYXRvciBhbmQgYmVuZWZpY2lhcnkgVkFTUHMuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2Z1bGxfdHJhbnNhY3Rpb25fcmVxdWVzdCBpbXBvcnQgVHJhdmVsUnVsZVZhbGlkYXRlRnVsbFRyYW5zYWN0aW9uUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX3RyYW5zYWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBUcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHRyYXZlbF9ydWxlX3ZhbGlkYXRlX2Z1bGxfdHJhbnNhY3Rpb25fcmVxdWVzdCA9IGZpcmVibG9ja3MuVHJhdmVsUnVsZVZhbGlkYXRlRnVsbFRyYW5zYWN0aW9uUmVxdWVzdCgpICMgVHJhdmVsUnVsZVZhbGlkYXRlRnVsbFRyYW5zYWN0aW9uUmVxdWVzdCB8IAogICAgbm90YXRpb24gPSBbJ25vdGF0aW9uX2V4YW1wbGUnXSAjIExpc3Rbc3RyXSB8IFNwZWNpZmllcyB0aGUgbm90YXRpb24gb2YgdGhlIHRyYW5zYWN0aW9uLiBQb3NzaWJsZSB2YWx1ZXMgYXJlOiAtIGBub3RhYmVuZWA6IFVzZXMgTm90YWJlbmUgbm90YXRpb24gKGRlZmF1bHQgYmVoYXZpb3IpLiAtIGBmaXJlYmxvY2tzYDogVXNlcyBGaXJlYmxvY2tzIG5vdGF0aW9uLCB3aXRoIGF1dG9tYXRpYyB0cmFuc2xhdGlvbiBvZiBhc3NldCB0aWNrZXJzIGFuZCBhbW91bnRzLiAtIGA8bm9uZT5gOiBEZWZhdWx0cyB0byBgbm90YWJlbmVgIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiAqKk5vdGU6KiogVGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBgbm90YXRpb25gIHBhcmFtZXRlciB3aWxsIGNoYW5nZSBmcm9tIGBub3RhYmVuZWAgdG8gYGZpcmVibG9ja3NgIFVwZGF0ZSB5b3VyIGludGVncmF0aW9ucyBhY2NvcmRpbmdseS4gKG9wdGlvbmFsKQogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIFZhbGlkYXRlIEZ1bGwgVHJhdmVsIFJ1bGUgVHJhbnNhY3Rpb24KICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnRyYXZlbF9ydWxlLnZhbGlkYXRlX2Z1bGxfdHJhdmVsX3J1bGVfdHJhbnNhY3Rpb24odHJhdmVsX3J1bGVfdmFsaWRhdGVfZnVsbF90cmFuc2FjdGlvbl9yZXF1ZXN0LCBub3RhdGlvbj1ub3RhdGlvbiwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFRyYXZlbFJ1bGVBcGktPnZhbGlkYXRlX2Z1bGxfdHJhdmVsX3J1bGVfdHJhbnNhY3Rpb246XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVHJhdmVsUnVsZUFwaS0+dmFsaWRhdGVfZnVsbF90cmF2ZWxfcnVsZV90cmFuc2FjdGlvbjogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqdHJhdmVsX3J1bGVfdmFsaWRhdGVfZnVsbF90cmFuc2FjdGlvbl9yZXF1ZXN0KiogfCBbKipUcmF2ZWxSdWxlVmFsaWRhdGVGdWxsVHJhbnNhY3Rpb25SZXF1ZXN0KipdKFRyYXZlbFJ1bGVWYWxpZGF0ZUZ1bGxUcmFuc2FjdGlvblJlcXVlc3QubWQpfCAgfCAKICoqbm90YXRpb24qKiB8IFsqKkxpc3Rbc3RyXSoqXShzdHIubWQpfCBTcGVjaWZpZXMgdGhlIG5vdGF0aW9uIG9mIHRoZSB0cmFuc2FjdGlvbi4gUG9zc2libGUgdmFsdWVzIGFyZTogLSAmI3g2MDtub3RhYmVuZSYjeDYwOzogVXNlcyBOb3RhYmVuZSBub3RhdGlvbiAoZGVmYXVsdCBiZWhhdmlvcikuIC0gJiN4NjA7ZmlyZWJsb2NrcyYjeDYwOzogVXNlcyBGaXJlYmxvY2tzIG5vdGF0aW9uLCB3aXRoIGF1dG9tYXRpYyB0cmFuc2xhdGlvbiBvZiBhc3NldCB0aWNrZXJzIGFuZCBhbW91bnRzLiAtICYjeDYwOyZsdDtub25lJmd0OyYjeDYwOzogRGVmYXVsdHMgdG8gJiN4NjA7bm90YWJlbmUmI3g2MDsgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuICoqTm90ZToqKiBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlICYjeDYwO25vdGF0aW9uJiN4NjA7IHBhcmFtZXRlciB3aWxsIGNoYW5nZSBmcm9tICYjeDYwO25vdGFiZW5lJiN4NjA7IHRvICYjeDYwO2ZpcmVibG9ja3MmI3g2MDsgVXBkYXRlIHlvdXIgaW50ZWdyYXRpb25zIGFjY29yZGluZ2x5LiB8IFtvcHRpb25hbF0gCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlRyYXZlbFJ1bGVWYWxpZGF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UqKl0oVHJhdmVsUnVsZVZhbGlkYXRlVHJhbnNhY3Rpb25SZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgVHJhbnNhY3Rpb24gdmFsaWRhdGVkIHN1Y2Nlc3NmdWxseSB8ICAtICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgo= \ No newline at end of file diff --git a/docs/TravelRuleCreateTransactionRequest.md b/docs/TravelRuleCreateTransactionRequest.md index 715e4c09..50870984 100644 --- a/docs/TravelRuleCreateTransactionRequest.md +++ b/docs/TravelRuleCreateTransactionRequest.md @@ -1,49 +1 @@ -# TravelRuleCreateTransactionRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**originator_vas_pdid** | **str** | The Decentralized Identifier (DID) of the exchange (VASP) that is sending the virtual assets. This identifier is unique to the exchange and is generated when the exchange's account is created in the Notabene network. | [optional] -**beneficiary_vas_pdid** | **str** | The Decentralized Identifier (DID) of the exchange (VASP) that is receiving the virtual assets. This identifier is unique to the exchange and is generated when the exchange's account is created in the Notabene network. | [optional] -**originator_vas_pname** | **str** | The name of the VASP acting as the transaction originator. | [optional] -**beneficiary_vas_pname** | **str** | The name of the VASP acting as the transaction beneficiary. | [optional] -**beneficiary_vas_pwebsite** | **str** | The website of the VASP acting as the transaction beneficiary. | [optional] -**transaction_blockchain_info** | [**TravelRuleTransactionBlockchainInfo**](TravelRuleTransactionBlockchainInfo.md) | | [optional] -**originator** | [**TravelRulePiiIVMS**](TravelRulePiiIVMS.md) | | -**beneficiary** | [**TravelRulePiiIVMS**](TravelRulePiiIVMS.md) | | -**encrypted** | **str** | Encrypted data related to the transaction. | [optional] -**protocol** | **str** | The protocol used to perform the travel rule. | [optional] -**target_protocol** | **str** | The target protocol for GTR (Global Travel Rule) transfers. | [optional] -**skip_beneficiary_data_validation** | **bool** | Whether to skip validation of beneficiary data. | [optional] -**travel_rule_behavior** | **bool** | Whether to check if the transaction complies with the travel rule in the beneficiary VASP's jurisdiction. | [optional] -**originator_ref** | **str** | A reference ID related to the originator of the transaction. | [optional] -**beneficiary_ref** | **str** | A reference ID related to the beneficiary of the transaction. | [optional] -**travel_rule_behavior_ref** | **str** | A reference ID related to the travel rule behavior. | [optional] -**originator_proof** | [**TravelRuleOwnershipProof**](TravelRuleOwnershipProof.md) | | [optional] -**beneficiary_proof** | [**TravelRuleOwnershipProof**](TravelRuleOwnershipProof.md) | | [optional] -**beneficiary_did** | **str** | The Decentralized Identifier (DID) of the person at the receiving exchange (VASP). This identifier is generated when the customer is registered in the Notabene network, or automatically created based on the `beneficiaryRef`. - If neither `beneficiaryRef` nor `beneficiaryDid` is provided in the `txCreate` payload, a new random DID is generated for every transaction. | [optional] -**originator_did** | **str** | The Decentralized Identifier (DID) of the person at the exchange (VASP) who is requesting the withdrawal. This identifier is generated when the customer is registered in the Notabene network or automatically created based on the `originatorRef`. - If neither `originatorRef` nor `originatorDid` is provided in the `txCreate` payload, a new random DID is generated for every transaction. | [optional] -**is_non_custodial** | **bool** | Indicates if the transaction involves a non-custodial wallet. | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_create_transaction_request import TravelRuleCreateTransactionRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleCreateTransactionRequest from a JSON string -travel_rule_create_transaction_request_instance = TravelRuleCreateTransactionRequest.from_json(json) -# print the JSON string representation of the object -print(TravelRuleCreateTransactionRequest.to_json()) - -# convert the object into a dict -travel_rule_create_transaction_request_dict = travel_rule_create_transaction_request_instance.to_dict() -# create an instance of TravelRuleCreateTransactionRequest from a dict -travel_rule_create_transaction_request_from_dict = TravelRuleCreateTransactionRequest.from_dict(travel_rule_create_transaction_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlQ3JlYXRlVHJhbnNhY3Rpb25SZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm9yaWdpbmF0b3JfdmFzX3BkaWQqKiB8ICoqc3RyKiogfCBUaGUgRGVjZW50cmFsaXplZCBJZGVudGlmaWVyIChESUQpIG9mIHRoZSBleGNoYW5nZSAoVkFTUCkgdGhhdCBpcyBzZW5kaW5nIHRoZSB2aXJ0dWFsIGFzc2V0cy4gVGhpcyBpZGVudGlmaWVyIGlzIHVuaXF1ZSB0byB0aGUgZXhjaGFuZ2UgYW5kIGlzIGdlbmVyYXRlZCB3aGVuIHRoZSBleGNoYW5nZSYjMzk7cyBhY2NvdW50IGlzICBjcmVhdGVkIGluIHRoZSBOb3RhYmVuZSBuZXR3b3JrLiB8IFtvcHRpb25hbF0gCioqYmVuZWZpY2lhcnlfdmFzX3BkaWQqKiB8ICoqc3RyKiogfCBUaGUgRGVjZW50cmFsaXplZCBJZGVudGlmaWVyIChESUQpIG9mIHRoZSBleGNoYW5nZSAoVkFTUCkgdGhhdCBpcyByZWNlaXZpbmcgdGhlIHZpcnR1YWwgYXNzZXRzLiBUaGlzIGlkZW50aWZpZXIgaXMgdW5pcXVlIHRvIHRoZSBleGNoYW5nZSBhbmQgaXMgZ2VuZXJhdGVkIHdoZW4gdGhlIGV4Y2hhbmdlJiMzOTtzIGFjY291bnQgaXMgIGNyZWF0ZWQgaW4gdGhlIE5vdGFiZW5lIG5ldHdvcmsuIHwgW29wdGlvbmFsXSAKKipvcmlnaW5hdG9yX3Zhc19wbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBuYW1lIG9mIHRoZSBWQVNQIGFjdGluZyBhcyB0aGUgdHJhbnNhY3Rpb24gb3JpZ2luYXRvci4gfCBbb3B0aW9uYWxdIAoqKmJlbmVmaWNpYXJ5X3Zhc19wbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBuYW1lIG9mIHRoZSBWQVNQIGFjdGluZyBhcyB0aGUgdHJhbnNhY3Rpb24gYmVuZWZpY2lhcnkuIHwgW29wdGlvbmFsXSAKKipiZW5lZmljaWFyeV92YXNfcHdlYnNpdGUqKiB8ICoqc3RyKiogfCBUaGUgd2Vic2l0ZSBvZiB0aGUgVkFTUCBhY3RpbmcgYXMgdGhlIHRyYW5zYWN0aW9uIGJlbmVmaWNpYXJ5LiB8IFtvcHRpb25hbF0gCioqdHJhbnNhY3Rpb25fYmxvY2tjaGFpbl9pbmZvKiogfCBbKipUcmF2ZWxSdWxlVHJhbnNhY3Rpb25CbG9ja2NoYWluSW5mbyoqXShUcmF2ZWxSdWxlVHJhbnNhY3Rpb25CbG9ja2NoYWluSW5mby5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKm9yaWdpbmF0b3IqKiB8IFsqKlRyYXZlbFJ1bGVQaWlJVk1TKipdKFRyYXZlbFJ1bGVQaWlJVk1TLm1kKSB8ICB8IAoqKmJlbmVmaWNpYXJ5KiogfCBbKipUcmF2ZWxSdWxlUGlpSVZNUyoqXShUcmF2ZWxSdWxlUGlpSVZNUy5tZCkgfCAgfCAKKiplbmNyeXB0ZWQqKiB8ICoqc3RyKiogfCBFbmNyeXB0ZWQgZGF0YSByZWxhdGVkIHRvIHRoZSB0cmFuc2FjdGlvbi4gfCBbb3B0aW9uYWxdIAoqKnByb3RvY29sKiogfCAqKnN0cioqIHwgVGhlIHByb3RvY29sIHVzZWQgdG8gcGVyZm9ybSB0aGUgdHJhdmVsIHJ1bGUuIHwgW29wdGlvbmFsXSAKKip0YXJnZXRfcHJvdG9jb2wqKiB8ICoqc3RyKiogfCBUaGUgdGFyZ2V0IHByb3RvY29sIGZvciBHVFIgKEdsb2JhbCBUcmF2ZWwgUnVsZSkgdHJhbnNmZXJzLiB8IFtvcHRpb25hbF0gCioqc2tpcF9iZW5lZmljaWFyeV9kYXRhX3ZhbGlkYXRpb24qKiB8ICoqYm9vbCoqIHwgV2hldGhlciB0byBza2lwIHZhbGlkYXRpb24gb2YgYmVuZWZpY2lhcnkgZGF0YS4gfCBbb3B0aW9uYWxdIAoqKnRyYXZlbF9ydWxlX2JlaGF2aW9yKiogfCAqKmJvb2wqKiB8IFdoZXRoZXIgdG8gY2hlY2sgaWYgdGhlIHRyYW5zYWN0aW9uIGNvbXBsaWVzIHdpdGggdGhlIHRyYXZlbCBydWxlIGluIHRoZSBiZW5lZmljaWFyeSBWQVNQJiMzOTtzIGp1cmlzZGljdGlvbi4gfCBbb3B0aW9uYWxdIAoqKm9yaWdpbmF0b3JfcmVmKiogfCAqKnN0cioqIHwgQSByZWZlcmVuY2UgSUQgcmVsYXRlZCB0byB0aGUgb3JpZ2luYXRvciBvZiB0aGUgdHJhbnNhY3Rpb24uIHwgW29wdGlvbmFsXSAKKipiZW5lZmljaWFyeV9yZWYqKiB8ICoqc3RyKiogfCBBIHJlZmVyZW5jZSBJRCByZWxhdGVkIHRvIHRoZSBiZW5lZmljaWFyeSBvZiB0aGUgdHJhbnNhY3Rpb24uIHwgW29wdGlvbmFsXSAKKip0cmF2ZWxfcnVsZV9iZWhhdmlvcl9yZWYqKiB8ICoqc3RyKiogfCBBIHJlZmVyZW5jZSBJRCByZWxhdGVkIHRvIHRoZSB0cmF2ZWwgcnVsZSBiZWhhdmlvci4gfCBbb3B0aW9uYWxdIAoqKm9yaWdpbmF0b3JfcHJvb2YqKiB8IFsqKlRyYXZlbFJ1bGVPd25lcnNoaXBQcm9vZioqXShUcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2YubWQpIHwgIHwgW29wdGlvbmFsXSAKKipiZW5lZmljaWFyeV9wcm9vZioqIHwgWyoqVHJhdmVsUnVsZU93bmVyc2hpcFByb29mKipdKFRyYXZlbFJ1bGVPd25lcnNoaXBQcm9vZi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmJlbmVmaWNpYXJ5X2RpZCoqIHwgKipzdHIqKiB8IFRoZSBEZWNlbnRyYWxpemVkIElkZW50aWZpZXIgKERJRCkgb2YgdGhlIHBlcnNvbiBhdCB0aGUgcmVjZWl2aW5nIGV4Y2hhbmdlIChWQVNQKS4gIFRoaXMgaWRlbnRpZmllciBpcyBnZW5lcmF0ZWQgd2hlbiB0aGUgY3VzdG9tZXIgaXMgcmVnaXN0ZXJlZCBpbiB0aGUgTm90YWJlbmUgbmV0d29yaywgIG9yIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBiYXNlZCBvbiB0aGUgJiN4NjA7YmVuZWZpY2lhcnlSZWYmI3g2MDsuICAtIElmIG5laXRoZXIgJiN4NjA7YmVuZWZpY2lhcnlSZWYmI3g2MDsgbm9yICYjeDYwO2JlbmVmaWNpYXJ5RGlkJiN4NjA7IGlzIHByb3ZpZGVkIGluIHRoZSAmI3g2MDt0eENyZWF0ZSYjeDYwOyBwYXlsb2FkLCAgICBhIG5ldyByYW5kb20gRElEIGlzIGdlbmVyYXRlZCBmb3IgZXZlcnkgdHJhbnNhY3Rpb24uIHwgW29wdGlvbmFsXSAKKipvcmlnaW5hdG9yX2RpZCoqIHwgKipzdHIqKiB8IFRoZSBEZWNlbnRyYWxpemVkIElkZW50aWZpZXIgKERJRCkgb2YgdGhlIHBlcnNvbiBhdCB0aGUgZXhjaGFuZ2UgKFZBU1ApIHdobyBpcyByZXF1ZXN0aW5nIHRoZSB3aXRoZHJhd2FsLiBUaGlzIGlkZW50aWZpZXIgaXMgZ2VuZXJhdGVkIHdoZW4gdGhlIGN1c3RvbWVyIGlzIHJlZ2lzdGVyZWQgaW4gdGhlIE5vdGFiZW5lIG5ldHdvcmsgb3IgYXV0b21hdGljYWxseSBjcmVhdGVkIGJhc2VkIG9uIHRoZSAmI3g2MDtvcmlnaW5hdG9yUmVmJiN4NjA7LiAgLSBJZiBuZWl0aGVyICYjeDYwO29yaWdpbmF0b3JSZWYmI3g2MDsgbm9yICYjeDYwO29yaWdpbmF0b3JEaWQmI3g2MDsgaXMgcHJvdmlkZWQgaW4gdGhlICYjeDYwO3R4Q3JlYXRlJiN4NjA7IHBheWxvYWQsICAgIGEgbmV3IHJhbmRvbSBESUQgaXMgZ2VuZXJhdGVkIGZvciBldmVyeSB0cmFuc2FjdGlvbi4gfCBbb3B0aW9uYWxdIAoqKmlzX25vbl9jdXN0b2RpYWwqKiB8ICoqYm9vbCoqIHwgSW5kaWNhdGVzIGlmIHRoZSB0cmFuc2FjdGlvbiBpbnZvbHZlcyBhIG5vbi1jdXN0b2RpYWwgd2FsbGV0LiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9jcmVhdGVfdHJhbnNhY3Rpb25fcmVxdWVzdCBpbXBvcnQgVHJhdmVsUnVsZUNyZWF0ZVRyYW5zYWN0aW9uUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZUNyZWF0ZVRyYW5zYWN0aW9uUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKdHJhdmVsX3J1bGVfY3JlYXRlX3RyYW5zYWN0aW9uX3JlcXVlc3RfaW5zdGFuY2UgPSBUcmF2ZWxSdWxlQ3JlYXRlVHJhbnNhY3Rpb25SZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRyYXZlbFJ1bGVDcmVhdGVUcmFuc2FjdGlvblJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJhdmVsX3J1bGVfY3JlYXRlX3RyYW5zYWN0aW9uX3JlcXVlc3RfZGljdCA9IHRyYXZlbF9ydWxlX2NyZWF0ZV90cmFuc2FjdGlvbl9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlQ3JlYXRlVHJhbnNhY3Rpb25SZXF1ZXN0IGZyb20gYSBkaWN0CnRyYXZlbF9ydWxlX2NyZWF0ZV90cmFuc2FjdGlvbl9yZXF1ZXN0X2Zyb21fZGljdCA9IFRyYXZlbFJ1bGVDcmVhdGVUcmFuc2FjdGlvblJlcXVlc3QuZnJvbV9kaWN0KHRyYXZlbF9ydWxlX2NyZWF0ZV90cmFuc2FjdGlvbl9yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TravelRuleDateAndPlaceOfBirth.md b/docs/TravelRuleDateAndPlaceOfBirth.md index 8dec0b67..193a595e 100644 --- a/docs/TravelRuleDateAndPlaceOfBirth.md +++ b/docs/TravelRuleDateAndPlaceOfBirth.md @@ -1,31 +1 @@ -# TravelRuleDateAndPlaceOfBirth - -Represents the date and place of birth for a natural person - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**date_of_birth** | **str** | Date of birth. The value must be encrypted. | [optional] -**place_of_birth** | **str** | Place of birth. The value must be encrypted. | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_date_and_place_of_birth import TravelRuleDateAndPlaceOfBirth - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleDateAndPlaceOfBirth from a JSON string -travel_rule_date_and_place_of_birth_instance = TravelRuleDateAndPlaceOfBirth.from_json(json) -# print the JSON string representation of the object -print(TravelRuleDateAndPlaceOfBirth.to_json()) - -# convert the object into a dict -travel_rule_date_and_place_of_birth_dict = travel_rule_date_and_place_of_birth_instance.to_dict() -# create an instance of TravelRuleDateAndPlaceOfBirth from a dict -travel_rule_date_and_place_of_birth_from_dict = TravelRuleDateAndPlaceOfBirth.from_dict(travel_rule_date_and_place_of_birth_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlRGF0ZUFuZFBsYWNlT2ZCaXJ0aAoKUmVwcmVzZW50cyB0aGUgZGF0ZSBhbmQgcGxhY2Ugb2YgYmlydGggZm9yIGEgbmF0dXJhbCBwZXJzb24KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkYXRlX29mX2JpcnRoKiogfCAqKnN0cioqIHwgRGF0ZSBvZiBiaXJ0aC4gVGhlIHZhbHVlIG11c3QgYmUgZW5jcnlwdGVkLiB8IFtvcHRpb25hbF0gCioqcGxhY2Vfb2ZfYmlydGgqKiB8ICoqc3RyKiogfCBQbGFjZSBvZiBiaXJ0aC4gVGhlIHZhbHVlIG11c3QgYmUgZW5jcnlwdGVkLiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9kYXRlX2FuZF9wbGFjZV9vZl9iaXJ0aCBpbXBvcnQgVHJhdmVsUnVsZURhdGVBbmRQbGFjZU9mQmlydGgKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVEYXRlQW5kUGxhY2VPZkJpcnRoIGZyb20gYSBKU09OIHN0cmluZwp0cmF2ZWxfcnVsZV9kYXRlX2FuZF9wbGFjZV9vZl9iaXJ0aF9pbnN0YW5jZSA9IFRyYXZlbFJ1bGVEYXRlQW5kUGxhY2VPZkJpcnRoLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRyYXZlbFJ1bGVEYXRlQW5kUGxhY2VPZkJpcnRoLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYXZlbF9ydWxlX2RhdGVfYW5kX3BsYWNlX29mX2JpcnRoX2RpY3QgPSB0cmF2ZWxfcnVsZV9kYXRlX2FuZF9wbGFjZV9vZl9iaXJ0aF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZURhdGVBbmRQbGFjZU9mQmlydGggZnJvbSBhIGRpY3QKdHJhdmVsX3J1bGVfZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGhfZnJvbV9kaWN0ID0gVHJhdmVsUnVsZURhdGVBbmRQbGFjZU9mQmlydGguZnJvbV9kaWN0KHRyYXZlbF9ydWxlX2RhdGVfYW5kX3BsYWNlX29mX2JpcnRoX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TravelRuleDirectionEnum.md b/docs/TravelRuleDirectionEnum.md index 4a71097f..7bce771b 100644 --- a/docs/TravelRuleDirectionEnum.md +++ b/docs/TravelRuleDirectionEnum.md @@ -1,13 +1 @@ -# TravelRuleDirectionEnum - -Travel rule direction - -## Enum - -* `INBOUND` (value: `'INBOUND'`) - -* `OUTBOUND` (value: `'OUTBOUND'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlRGlyZWN0aW9uRW51bQoKVHJhdmVsIHJ1bGUgZGlyZWN0aW9uCgojIyBFbnVtCgoqIGBJTkJPVU5EYCAodmFsdWU6IGAnSU5CT1VORCdgKQoKKiBgT1VUQk9VTkRgICh2YWx1ZTogYCdPVVRCT1VORCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TravelRuleGeographicAddress.md b/docs/TravelRuleGeographicAddress.md index aefb3682..407748f7 100644 --- a/docs/TravelRuleGeographicAddress.md +++ b/docs/TravelRuleGeographicAddress.md @@ -1,44 +1 @@ -# TravelRuleGeographicAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**street_name** | **str** | Name of a street or thoroughfare. The value must be encrypted. | [optional] -**town_name** | **str** | Name of a built-up area, with defined boundaries, and a local government. The value must be encrypted. | [optional] -**country** | **str** | Nation with its own government (ISO-3166 Alpha-2 country code). The value must be encrypted. | [optional] -**building_number** | **str** | Number that identifies the position of a building on a street. The value must be encrypted. | [optional] -**post_code** | **str** | Identifier consisting of a group of letters and/or numbers added to a postal address to assist the sorting of mail. The value must be encrypted. | [optional] -**address_type** | **str** | Specifies the type of address. Acceptable values are: - 'HOME': Residential, the home address - 'BIZZ': Business, the business address - 'GEOG': Geographic, an unspecified physical (geographical) address The value must be encrypted. | [optional] -**department** | **str** | Identification of a division of a large organisation or building. The value must be encrypted. | [optional] -**sub_department** | **str** | Identification of a sub-division of a large organisation or building. The value must be encrypted. | [optional] -**building_name** | **str** | Name of the building or house. The value must be encrypted. | [optional] -**floor** | **str** | Floor or storey within a building. The value must be encrypted. | [optional] -**post_box** | **str** | Numbered box in a post office. The value must be encrypted. | [optional] -**room** | **str** | Building room number. The value must be encrypted. | [optional] -**town_location_name** | **str** | Specific location name within the town. The value must be encrypted. | [optional] -**district_name** | **str** | Identifies a subdivision within a country subdivision. The value must be encrypted. | [optional] -**country_sub_division** | **str** | Identifies a subdivision of a country such as state, region, or province. The value must be encrypted. | [optional] -**address_line** | **List[str]** | Information that locates and identifies a specific address, presented in free format text. Each item must be encrypted. | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_geographic_address import TravelRuleGeographicAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleGeographicAddress from a JSON string -travel_rule_geographic_address_instance = TravelRuleGeographicAddress.from_json(json) -# print the JSON string representation of the object -print(TravelRuleGeographicAddress.to_json()) - -# convert the object into a dict -travel_rule_geographic_address_dict = travel_rule_geographic_address_instance.to_dict() -# create an instance of TravelRuleGeographicAddress from a dict -travel_rule_geographic_address_from_dict = TravelRuleGeographicAddress.from_dict(travel_rule_geographic_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlR2VvZ3JhcGhpY0FkZHJlc3MKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3RyZWV0X25hbWUqKiB8ICoqc3RyKiogfCBOYW1lIG9mIGEgc3RyZWV0IG9yIHRob3JvdWdoZmFyZS4gVGhlIHZhbHVlIG11c3QgYmUgZW5jcnlwdGVkLiB8IFtvcHRpb25hbF0gCioqdG93bl9uYW1lKiogfCAqKnN0cioqIHwgTmFtZSBvZiBhIGJ1aWx0LXVwIGFyZWEsIHdpdGggZGVmaW5lZCBib3VuZGFyaWVzLCBhbmQgYSBsb2NhbCBnb3Zlcm5tZW50LiBUaGUgdmFsdWUgbXVzdCBiZSBlbmNyeXB0ZWQuIHwgW29wdGlvbmFsXSAKKipjb3VudHJ5KiogfCAqKnN0cioqIHwgTmF0aW9uIHdpdGggaXRzIG93biBnb3Zlcm5tZW50IChJU08tMzE2NiBBbHBoYS0yIGNvdW50cnkgY29kZSkuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4gfCBbb3B0aW9uYWxdIAoqKmJ1aWxkaW5nX251bWJlcioqIHwgKipzdHIqKiB8IE51bWJlciB0aGF0IGlkZW50aWZpZXMgdGhlIHBvc2l0aW9uIG9mIGEgYnVpbGRpbmcgb24gYSBzdHJlZXQuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4gfCBbb3B0aW9uYWxdIAoqKnBvc3RfY29kZSoqIHwgKipzdHIqKiB8IElkZW50aWZpZXIgY29uc2lzdGluZyBvZiBhIGdyb3VwIG9mIGxldHRlcnMgYW5kL29yIG51bWJlcnMgYWRkZWQgdG8gYSBwb3N0YWwgYWRkcmVzcyB0byBhc3Npc3QgdGhlIHNvcnRpbmcgb2YgbWFpbC4gVGhlIHZhbHVlIG11c3QgYmUgZW5jcnlwdGVkLiB8IFtvcHRpb25hbF0gCioqYWRkcmVzc190eXBlKiogfCAqKnN0cioqIHwgU3BlY2lmaWVzIHRoZSB0eXBlIG9mIGFkZHJlc3MuIEFjY2VwdGFibGUgdmFsdWVzIGFyZTogLSAmIzM5O0hPTUUmIzM5OzogUmVzaWRlbnRpYWwsIHRoZSBob21lIGFkZHJlc3MgLSAmIzM5O0JJWlomIzM5OzogQnVzaW5lc3MsIHRoZSBidXNpbmVzcyBhZGRyZXNzIC0gJiMzOTtHRU9HJiMzOTs6IEdlb2dyYXBoaWMsIGFuIHVuc3BlY2lmaWVkIHBoeXNpY2FsIChnZW9ncmFwaGljYWwpIGFkZHJlc3MgVGhlIHZhbHVlIG11c3QgYmUgZW5jcnlwdGVkLiB8IFtvcHRpb25hbF0gCioqZGVwYXJ0bWVudCoqIHwgKipzdHIqKiB8IElkZW50aWZpY2F0aW9uIG9mIGEgZGl2aXNpb24gb2YgYSBsYXJnZSBvcmdhbmlzYXRpb24gb3IgYnVpbGRpbmcuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4gfCBbb3B0aW9uYWxdIAoqKnN1Yl9kZXBhcnRtZW50KiogfCAqKnN0cioqIHwgSWRlbnRpZmljYXRpb24gb2YgYSBzdWItZGl2aXNpb24gb2YgYSBsYXJnZSBvcmdhbmlzYXRpb24gb3IgYnVpbGRpbmcuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4gfCBbb3B0aW9uYWxdIAoqKmJ1aWxkaW5nX25hbWUqKiB8ICoqc3RyKiogfCBOYW1lIG9mIHRoZSBidWlsZGluZyBvciBob3VzZS4gVGhlIHZhbHVlIG11c3QgYmUgZW5jcnlwdGVkLiB8IFtvcHRpb25hbF0gCioqZmxvb3IqKiB8ICoqc3RyKiogfCBGbG9vciBvciBzdG9yZXkgd2l0aGluIGEgYnVpbGRpbmcuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4gfCBbb3B0aW9uYWxdIAoqKnBvc3RfYm94KiogfCAqKnN0cioqIHwgTnVtYmVyZWQgYm94IGluIGEgcG9zdCBvZmZpY2UuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4gfCBbb3B0aW9uYWxdIAoqKnJvb20qKiB8ICoqc3RyKiogfCBCdWlsZGluZyByb29tIG51bWJlci4gVGhlIHZhbHVlIG11c3QgYmUgZW5jcnlwdGVkLiB8IFtvcHRpb25hbF0gCioqdG93bl9sb2NhdGlvbl9uYW1lKiogfCAqKnN0cioqIHwgU3BlY2lmaWMgbG9jYXRpb24gbmFtZSB3aXRoaW4gdGhlIHRvd24uIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4gfCBbb3B0aW9uYWxdIAoqKmRpc3RyaWN0X25hbWUqKiB8ICoqc3RyKiogfCBJZGVudGlmaWVzIGEgc3ViZGl2aXNpb24gd2l0aGluIGEgY291bnRyeSBzdWJkaXZpc2lvbi4gVGhlIHZhbHVlIG11c3QgYmUgZW5jcnlwdGVkLiB8IFtvcHRpb25hbF0gCioqY291bnRyeV9zdWJfZGl2aXNpb24qKiB8ICoqc3RyKiogfCBJZGVudGlmaWVzIGEgc3ViZGl2aXNpb24gb2YgYSBjb3VudHJ5IHN1Y2ggYXMgc3RhdGUsIHJlZ2lvbiwgb3IgcHJvdmluY2UuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4gfCBbb3B0aW9uYWxdIAoqKmFkZHJlc3NfbGluZSoqIHwgKipMaXN0W3N0cl0qKiB8IEluZm9ybWF0aW9uIHRoYXQgbG9jYXRlcyBhbmQgaWRlbnRpZmllcyBhIHNwZWNpZmljIGFkZHJlc3MsIHByZXNlbnRlZCBpbiBmcmVlIGZvcm1hdCB0ZXh0LiBFYWNoIGl0ZW0gbXVzdCBiZSBlbmNyeXB0ZWQuIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2dlb2dyYXBoaWNfYWRkcmVzcyBpbXBvcnQgVHJhdmVsUnVsZUdlb2dyYXBoaWNBZGRyZXNzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlR2VvZ3JhcGhpY0FkZHJlc3MgZnJvbSBhIEpTT04gc3RyaW5nCnRyYXZlbF9ydWxlX2dlb2dyYXBoaWNfYWRkcmVzc19pbnN0YW5jZSA9IFRyYXZlbFJ1bGVHZW9ncmFwaGljQWRkcmVzcy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmF2ZWxSdWxlR2VvZ3JhcGhpY0FkZHJlc3MudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJhdmVsX3J1bGVfZ2VvZ3JhcGhpY19hZGRyZXNzX2RpY3QgPSB0cmF2ZWxfcnVsZV9nZW9ncmFwaGljX2FkZHJlc3NfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVHZW9ncmFwaGljQWRkcmVzcyBmcm9tIGEgZGljdAp0cmF2ZWxfcnVsZV9nZW9ncmFwaGljX2FkZHJlc3NfZnJvbV9kaWN0ID0gVHJhdmVsUnVsZUdlb2dyYXBoaWNBZGRyZXNzLmZyb21fZGljdCh0cmF2ZWxfcnVsZV9nZW9ncmFwaGljX2FkZHJlc3NfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TravelRuleGetAllVASPsResponse.md b/docs/TravelRuleGetAllVASPsResponse.md index 9749dff6..3649da40 100644 --- a/docs/TravelRuleGetAllVASPsResponse.md +++ b/docs/TravelRuleGetAllVASPsResponse.md @@ -1,31 +1 @@ -# TravelRuleGetAllVASPsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[TravelRuleVASP]**](TravelRuleVASP.md) | An array of VASP objects, referencing the TravelRuleVASP schema. | -**total** | **int** | The total number of VASPs. | [optional] -**next** | **str** | The URL for the next page of results. | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_get_all_vasps_response import TravelRuleGetAllVASPsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleGetAllVASPsResponse from a JSON string -travel_rule_get_all_vasps_response_instance = TravelRuleGetAllVASPsResponse.from_json(json) -# print the JSON string representation of the object -print(TravelRuleGetAllVASPsResponse.to_json()) - -# convert the object into a dict -travel_rule_get_all_vasps_response_dict = travel_rule_get_all_vasps_response_instance.to_dict() -# create an instance of TravelRuleGetAllVASPsResponse from a dict -travel_rule_get_all_vasps_response_from_dict = TravelRuleGetAllVASPsResponse.from_dict(travel_rule_get_all_vasps_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlR2V0QWxsVkFTUHNSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkYXRhKiogfCBbKipMaXN0W1RyYXZlbFJ1bGVWQVNQXSoqXShUcmF2ZWxSdWxlVkFTUC5tZCkgfCBBbiBhcnJheSBvZiBWQVNQIG9iamVjdHMsIHJlZmVyZW5jaW5nIHRoZSBUcmF2ZWxSdWxlVkFTUCBzY2hlbWEuIHwgCioqdG90YWwqKiB8ICoqaW50KiogfCBUaGUgdG90YWwgbnVtYmVyIG9mIFZBU1BzLiB8IFtvcHRpb25hbF0gCioqbmV4dCoqIHwgKipzdHIqKiB8IFRoZSBVUkwgZm9yIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cy4gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfZ2V0X2FsbF92YXNwc19yZXNwb25zZSBpbXBvcnQgVHJhdmVsUnVsZUdldEFsbFZBU1BzUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVHZXRBbGxWQVNQc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwp0cmF2ZWxfcnVsZV9nZXRfYWxsX3Zhc3BzX3Jlc3BvbnNlX2luc3RhbmNlID0gVHJhdmVsUnVsZUdldEFsbFZBU1BzUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhdmVsUnVsZUdldEFsbFZBU1BzUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJhdmVsX3J1bGVfZ2V0X2FsbF92YXNwc19yZXNwb25zZV9kaWN0ID0gdHJhdmVsX3J1bGVfZ2V0X2FsbF92YXNwc19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZUdldEFsbFZBU1BzUmVzcG9uc2UgZnJvbSBhIGRpY3QKdHJhdmVsX3J1bGVfZ2V0X2FsbF92YXNwc19yZXNwb25zZV9mcm9tX2RpY3QgPSBUcmF2ZWxSdWxlR2V0QWxsVkFTUHNSZXNwb25zZS5mcm9tX2RpY3QodHJhdmVsX3J1bGVfZ2V0X2FsbF92YXNwc19yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TravelRuleIssuer.md b/docs/TravelRuleIssuer.md index c351ba7f..848b4536 100644 --- a/docs/TravelRuleIssuer.md +++ b/docs/TravelRuleIssuer.md @@ -1,29 +1 @@ -# TravelRuleIssuer - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**issuer_did** | **str** | | - -## Example - -```python -from fireblocks.models.travel_rule_issuer import TravelRuleIssuer - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleIssuer from a JSON string -travel_rule_issuer_instance = TravelRuleIssuer.from_json(json) -# print the JSON string representation of the object -print(TravelRuleIssuer.to_json()) - -# convert the object into a dict -travel_rule_issuer_dict = travel_rule_issuer_instance.to_dict() -# create an instance of TravelRuleIssuer from a dict -travel_rule_issuer_from_dict = TravelRuleIssuer.from_dict(travel_rule_issuer_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlSXNzdWVyCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlzc3Vlcl9kaWQqKiB8ICoqc3RyKiogfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2lzc3VlciBpbXBvcnQgVHJhdmVsUnVsZUlzc3VlcgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZUlzc3VlciBmcm9tIGEgSlNPTiBzdHJpbmcKdHJhdmVsX3J1bGVfaXNzdWVyX2luc3RhbmNlID0gVHJhdmVsUnVsZUlzc3Vlci5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmF2ZWxSdWxlSXNzdWVyLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYXZlbF9ydWxlX2lzc3Vlcl9kaWN0ID0gdHJhdmVsX3J1bGVfaXNzdWVyX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlSXNzdWVyIGZyb20gYSBkaWN0CnRyYXZlbF9ydWxlX2lzc3Vlcl9mcm9tX2RpY3QgPSBUcmF2ZWxSdWxlSXNzdWVyLmZyb21fZGljdCh0cmF2ZWxfcnVsZV9pc3N1ZXJfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TravelRuleIssuers.md b/docs/TravelRuleIssuers.md index 6430a06a..ef39e438 100644 --- a/docs/TravelRuleIssuers.md +++ b/docs/TravelRuleIssuers.md @@ -1,42 +1 @@ -# TravelRuleIssuers - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**year_founded** | [**TravelRuleIssuer**](TravelRuleIssuer.md) | | -**is_regulated** | [**TravelRuleIssuer**](TravelRuleIssuer.md) | | -**regulatory_authorities** | [**TravelRuleIssuer**](TravelRuleIssuer.md) | | -**name** | [**TravelRuleIssuer**](TravelRuleIssuer.md) | | -**logo** | [**TravelRuleIssuer**](TravelRuleIssuer.md) | | -**website** | [**TravelRuleIssuer**](TravelRuleIssuer.md) | | -**legal_name** | [**TravelRuleIssuer**](TravelRuleIssuer.md) | | -**legal_structure** | [**TravelRuleIssuer**](TravelRuleIssuer.md) | | -**incorporation_country** | [**TravelRuleIssuer**](TravelRuleIssuer.md) | | -**business_number** | [**TravelRuleIssuer**](TravelRuleIssuer.md) | | -**address_line1** | [**TravelRuleIssuer**](TravelRuleIssuer.md) | | -**city** | [**TravelRuleIssuer**](TravelRuleIssuer.md) | | -**country** | [**TravelRuleIssuer**](TravelRuleIssuer.md) | | -**description** | [**TravelRuleIssuer**](TravelRuleIssuer.md) | | - -## Example - -```python -from fireblocks.models.travel_rule_issuers import TravelRuleIssuers - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleIssuers from a JSON string -travel_rule_issuers_instance = TravelRuleIssuers.from_json(json) -# print the JSON string representation of the object -print(TravelRuleIssuers.to_json()) - -# convert the object into a dict -travel_rule_issuers_dict = travel_rule_issuers_instance.to_dict() -# create an instance of TravelRuleIssuers from a dict -travel_rule_issuers_from_dict = TravelRuleIssuers.from_dict(travel_rule_issuers_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlSXNzdWVycwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip5ZWFyX2ZvdW5kZWQqKiB8IFsqKlRyYXZlbFJ1bGVJc3N1ZXIqKl0oVHJhdmVsUnVsZUlzc3Vlci5tZCkgfCAgfCAKKippc19yZWd1bGF0ZWQqKiB8IFsqKlRyYXZlbFJ1bGVJc3N1ZXIqKl0oVHJhdmVsUnVsZUlzc3Vlci5tZCkgfCAgfCAKKipyZWd1bGF0b3J5X2F1dGhvcml0aWVzKiogfCBbKipUcmF2ZWxSdWxlSXNzdWVyKipdKFRyYXZlbFJ1bGVJc3N1ZXIubWQpIHwgIHwgCioqbmFtZSoqIHwgWyoqVHJhdmVsUnVsZUlzc3VlcioqXShUcmF2ZWxSdWxlSXNzdWVyLm1kKSB8ICB8IAoqKmxvZ28qKiB8IFsqKlRyYXZlbFJ1bGVJc3N1ZXIqKl0oVHJhdmVsUnVsZUlzc3Vlci5tZCkgfCAgfCAKKip3ZWJzaXRlKiogfCBbKipUcmF2ZWxSdWxlSXNzdWVyKipdKFRyYXZlbFJ1bGVJc3N1ZXIubWQpIHwgIHwgCioqbGVnYWxfbmFtZSoqIHwgWyoqVHJhdmVsUnVsZUlzc3VlcioqXShUcmF2ZWxSdWxlSXNzdWVyLm1kKSB8ICB8IAoqKmxlZ2FsX3N0cnVjdHVyZSoqIHwgWyoqVHJhdmVsUnVsZUlzc3VlcioqXShUcmF2ZWxSdWxlSXNzdWVyLm1kKSB8ICB8IAoqKmluY29ycG9yYXRpb25fY291bnRyeSoqIHwgWyoqVHJhdmVsUnVsZUlzc3VlcioqXShUcmF2ZWxSdWxlSXNzdWVyLm1kKSB8ICB8IAoqKmJ1c2luZXNzX251bWJlcioqIHwgWyoqVHJhdmVsUnVsZUlzc3VlcioqXShUcmF2ZWxSdWxlSXNzdWVyLm1kKSB8ICB8IAoqKmFkZHJlc3NfbGluZTEqKiB8IFsqKlRyYXZlbFJ1bGVJc3N1ZXIqKl0oVHJhdmVsUnVsZUlzc3Vlci5tZCkgfCAgfCAKKipjaXR5KiogfCBbKipUcmF2ZWxSdWxlSXNzdWVyKipdKFRyYXZlbFJ1bGVJc3N1ZXIubWQpIHwgIHwgCioqY291bnRyeSoqIHwgWyoqVHJhdmVsUnVsZUlzc3VlcioqXShUcmF2ZWxSdWxlSXNzdWVyLm1kKSB8ICB8IAoqKmRlc2NyaXB0aW9uKiogfCBbKipUcmF2ZWxSdWxlSXNzdWVyKipdKFRyYXZlbFJ1bGVJc3N1ZXIubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9pc3N1ZXJzIGltcG9ydCBUcmF2ZWxSdWxlSXNzdWVycwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZUlzc3VlcnMgZnJvbSBhIEpTT04gc3RyaW5nCnRyYXZlbF9ydWxlX2lzc3VlcnNfaW5zdGFuY2UgPSBUcmF2ZWxSdWxlSXNzdWVycy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmF2ZWxSdWxlSXNzdWVycy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmF2ZWxfcnVsZV9pc3N1ZXJzX2RpY3QgPSB0cmF2ZWxfcnVsZV9pc3N1ZXJzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlSXNzdWVycyBmcm9tIGEgZGljdAp0cmF2ZWxfcnVsZV9pc3N1ZXJzX2Zyb21fZGljdCA9IFRyYXZlbFJ1bGVJc3N1ZXJzLmZyb21fZGljdCh0cmF2ZWxfcnVsZV9pc3N1ZXJzX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TravelRuleLegalPerson.md b/docs/TravelRuleLegalPerson.md index bab23d66..4b27a3e0 100644 --- a/docs/TravelRuleLegalPerson.md +++ b/docs/TravelRuleLegalPerson.md @@ -1,34 +1 @@ -# TravelRuleLegalPerson - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | [**TravelRuleLegalPersonNameIdentifier**](TravelRuleLegalPersonNameIdentifier.md) | | [optional] -**geographic_address** | [**List[TravelRuleGeographicAddress]**](TravelRuleGeographicAddress.md) | The array of geographic addresses associated with the legal person. | [optional] -**national_identification** | [**TravelRuleNationalIdentification**](TravelRuleNationalIdentification.md) | | [optional] -**customer_identification** | **str** | A unique identifier that identifies the customer in the organization's context. The value must be encrypted. | [optional] -**customer_number** | **str** | A distinct identifier that uniquely identifies the customer within the organization. The value must be encrypted. | [optional] -**country_of_registration** | **str** | The ISO-3166 Alpha-2 country code where the legal person is registered. The value must be encrypted. | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_legal_person import TravelRuleLegalPerson - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleLegalPerson from a JSON string -travel_rule_legal_person_instance = TravelRuleLegalPerson.from_json(json) -# print the JSON string representation of the object -print(TravelRuleLegalPerson.to_json()) - -# convert the object into a dict -travel_rule_legal_person_dict = travel_rule_legal_person_instance.to_dict() -# create an instance of TravelRuleLegalPerson from a dict -travel_rule_legal_person_from_dict = TravelRuleLegalPerson.from_dict(travel_rule_legal_person_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlTGVnYWxQZXJzb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbmFtZSoqIHwgWyoqVHJhdmVsUnVsZUxlZ2FsUGVyc29uTmFtZUlkZW50aWZpZXIqKl0oVHJhdmVsUnVsZUxlZ2FsUGVyc29uTmFtZUlkZW50aWZpZXIubWQpIHwgIHwgW29wdGlvbmFsXSAKKipnZW9ncmFwaGljX2FkZHJlc3MqKiB8IFsqKkxpc3RbVHJhdmVsUnVsZUdlb2dyYXBoaWNBZGRyZXNzXSoqXShUcmF2ZWxSdWxlR2VvZ3JhcGhpY0FkZHJlc3MubWQpIHwgVGhlIGFycmF5IG9mIGdlb2dyYXBoaWMgYWRkcmVzc2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGVnYWwgcGVyc29uLiB8IFtvcHRpb25hbF0gCioqbmF0aW9uYWxfaWRlbnRpZmljYXRpb24qKiB8IFsqKlRyYXZlbFJ1bGVOYXRpb25hbElkZW50aWZpY2F0aW9uKipdKFRyYXZlbFJ1bGVOYXRpb25hbElkZW50aWZpY2F0aW9uLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqY3VzdG9tZXJfaWRlbnRpZmljYXRpb24qKiB8ICoqc3RyKiogfCBBIHVuaXF1ZSBpZGVudGlmaWVyIHRoYXQgaWRlbnRpZmllcyB0aGUgY3VzdG9tZXIgaW4gdGhlIG9yZ2FuaXphdGlvbiYjMzk7cyBjb250ZXh0LiBUaGUgdmFsdWUgbXVzdCBiZSBlbmNyeXB0ZWQuIHwgW29wdGlvbmFsXSAKKipjdXN0b21lcl9udW1iZXIqKiB8ICoqc3RyKiogfCBBIGRpc3RpbmN0IGlkZW50aWZpZXIgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBjdXN0b21lciB3aXRoaW4gdGhlIG9yZ2FuaXphdGlvbi4gVGhlIHZhbHVlIG11c3QgYmUgZW5jcnlwdGVkLiB8IFtvcHRpb25hbF0gCioqY291bnRyeV9vZl9yZWdpc3RyYXRpb24qKiB8ICoqc3RyKiogfCBUaGUgSVNPLTMxNjYgQWxwaGEtMiBjb3VudHJ5IGNvZGUgd2hlcmUgdGhlIGxlZ2FsIHBlcnNvbiBpcyByZWdpc3RlcmVkLiBUaGUgdmFsdWUgbXVzdCBiZSBlbmNyeXB0ZWQuIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2xlZ2FsX3BlcnNvbiBpbXBvcnQgVHJhdmVsUnVsZUxlZ2FsUGVyc29uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlTGVnYWxQZXJzb24gZnJvbSBhIEpTT04gc3RyaW5nCnRyYXZlbF9ydWxlX2xlZ2FsX3BlcnNvbl9pbnN0YW5jZSA9IFRyYXZlbFJ1bGVMZWdhbFBlcnNvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmF2ZWxSdWxlTGVnYWxQZXJzb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJhdmVsX3J1bGVfbGVnYWxfcGVyc29uX2RpY3QgPSB0cmF2ZWxfcnVsZV9sZWdhbF9wZXJzb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVMZWdhbFBlcnNvbiBmcm9tIGEgZGljdAp0cmF2ZWxfcnVsZV9sZWdhbF9wZXJzb25fZnJvbV9kaWN0ID0gVHJhdmVsUnVsZUxlZ2FsUGVyc29uLmZyb21fZGljdCh0cmF2ZWxfcnVsZV9sZWdhbF9wZXJzb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TravelRuleLegalPersonNameIdentifier.md b/docs/TravelRuleLegalPersonNameIdentifier.md index cdeabd27..b015690a 100644 --- a/docs/TravelRuleLegalPersonNameIdentifier.md +++ b/docs/TravelRuleLegalPersonNameIdentifier.md @@ -1,30 +1 @@ -# TravelRuleLegalPersonNameIdentifier - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**legal_person_name** | **str** | Name by which the legal person is known. The value must be encrypted. | [optional] -**legal_person_name_identifier_type** | **str** | Specifies the type of name for a legal person. Acceptable values are: - 'REGISTERED': The official registered name. - 'TRADE': A trading name or DBA (Doing Business As) name. - 'OTHER': Any other type of name. The value must be encrypted. | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_legal_person_name_identifier import TravelRuleLegalPersonNameIdentifier - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleLegalPersonNameIdentifier from a JSON string -travel_rule_legal_person_name_identifier_instance = TravelRuleLegalPersonNameIdentifier.from_json(json) -# print the JSON string representation of the object -print(TravelRuleLegalPersonNameIdentifier.to_json()) - -# convert the object into a dict -travel_rule_legal_person_name_identifier_dict = travel_rule_legal_person_name_identifier_instance.to_dict() -# create an instance of TravelRuleLegalPersonNameIdentifier from a dict -travel_rule_legal_person_name_identifier_from_dict = TravelRuleLegalPersonNameIdentifier.from_dict(travel_rule_legal_person_name_identifier_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllcgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipsZWdhbF9wZXJzb25fbmFtZSoqIHwgKipzdHIqKiB8IE5hbWUgYnkgd2hpY2ggdGhlIGxlZ2FsIHBlcnNvbiBpcyBrbm93bi4gVGhlIHZhbHVlIG11c3QgYmUgZW5jcnlwdGVkLiB8IFtvcHRpb25hbF0gCioqbGVnYWxfcGVyc29uX25hbWVfaWRlbnRpZmllcl90eXBlKiogfCAqKnN0cioqIHwgU3BlY2lmaWVzIHRoZSB0eXBlIG9mIG5hbWUgZm9yIGEgbGVnYWwgcGVyc29uLiBBY2NlcHRhYmxlIHZhbHVlcyBhcmU6IC0gJiMzOTtSRUdJU1RFUkVEJiMzOTs6IFRoZSBvZmZpY2lhbCByZWdpc3RlcmVkIG5hbWUuIC0gJiMzOTtUUkFERSYjMzk7OiBBIHRyYWRpbmcgbmFtZSBvciBEQkEgKERvaW5nIEJ1c2luZXNzIEFzKSBuYW1lLiAtICYjMzk7T1RIRVImIzM5OzogQW55IG90aGVyIHR5cGUgb2YgbmFtZS4gVGhlIHZhbHVlIG11c3QgYmUgZW5jcnlwdGVkLiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9sZWdhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyIGltcG9ydCBUcmF2ZWxSdWxlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllcgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZUxlZ2FsUGVyc29uTmFtZUlkZW50aWZpZXIgZnJvbSBhIEpTT04gc3RyaW5nCnRyYXZlbF9ydWxlX2xlZ2FsX3BlcnNvbl9uYW1lX2lkZW50aWZpZXJfaW5zdGFuY2UgPSBUcmF2ZWxSdWxlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllci5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmF2ZWxSdWxlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllci50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmF2ZWxfcnVsZV9sZWdhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyX2RpY3QgPSB0cmF2ZWxfcnVsZV9sZWdhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllciBmcm9tIGEgZGljdAp0cmF2ZWxfcnVsZV9sZWdhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyX2Zyb21fZGljdCA9IFRyYXZlbFJ1bGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyLmZyb21fZGljdCh0cmF2ZWxfcnVsZV9sZWdhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TravelRuleMatchedRule.md b/docs/TravelRuleMatchedRule.md index 775a92b2..f432f677 100644 --- a/docs/TravelRuleMatchedRule.md +++ b/docs/TravelRuleMatchedRule.md @@ -1,35 +1 @@ -# TravelRuleMatchedRule - -The travel rule configuration that was matched - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional] -**status** | [**TravelRuleStatusEnum**](TravelRuleStatusEnum.md) | | [optional] -**amount_usd** | **float** | Amount in USD | [optional] -**amount** | **float** | Amount in base currency | [optional] -**asset** | **str** | Asset identifier | [optional] -**action** | [**TravelRuleVerdictEnum**](TravelRuleVerdictEnum.md) | | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_matched_rule import TravelRuleMatchedRule - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleMatchedRule from a JSON string -travel_rule_matched_rule_instance = TravelRuleMatchedRule.from_json(json) -# print the JSON string representation of the object -print(TravelRuleMatchedRule.to_json()) - -# convert the object into a dict -travel_rule_matched_rule_dict = travel_rule_matched_rule_instance.to_dict() -# create an instance of TravelRuleMatchedRule from a dict -travel_rule_matched_rule_from_dict = TravelRuleMatchedRule.from_dict(travel_rule_matched_rule_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGUKClRoZSB0cmF2ZWwgcnVsZSBjb25maWd1cmF0aW9uIHRoYXQgd2FzIG1hdGNoZWQKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkaXJlY3Rpb24qKiB8IFsqKlRyYXZlbFJ1bGVEaXJlY3Rpb25FbnVtKipdKFRyYXZlbFJ1bGVEaXJlY3Rpb25FbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc3RhdHVzKiogfCBbKipUcmF2ZWxSdWxlU3RhdHVzRW51bSoqXShUcmF2ZWxSdWxlU3RhdHVzRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmFtb3VudF91c2QqKiB8ICoqZmxvYXQqKiB8IEFtb3VudCBpbiBVU0QgfCBbb3B0aW9uYWxdIAoqKmFtb3VudCoqIHwgKipmbG9hdCoqIHwgQW1vdW50IGluIGJhc2UgY3VycmVuY3kgfCBbb3B0aW9uYWxdIAoqKmFzc2V0KiogfCAqKnN0cioqIHwgQXNzZXQgaWRlbnRpZmllciB8IFtvcHRpb25hbF0gCioqYWN0aW9uKiogfCBbKipUcmF2ZWxSdWxlVmVyZGljdEVudW0qKl0oVHJhdmVsUnVsZVZlcmRpY3RFbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9tYXRjaGVkX3J1bGUgaW1wb3J0IFRyYXZlbFJ1bGVNYXRjaGVkUnVsZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZU1hdGNoZWRSdWxlIGZyb20gYSBKU09OIHN0cmluZwp0cmF2ZWxfcnVsZV9tYXRjaGVkX3J1bGVfaW5zdGFuY2UgPSBUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGUuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhdmVsUnVsZU1hdGNoZWRSdWxlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYXZlbF9ydWxlX21hdGNoZWRfcnVsZV9kaWN0ID0gdHJhdmVsX3J1bGVfbWF0Y2hlZF9ydWxlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGUgZnJvbSBhIGRpY3QKdHJhdmVsX3J1bGVfbWF0Y2hlZF9ydWxlX2Zyb21fZGljdCA9IFRyYXZlbFJ1bGVNYXRjaGVkUnVsZS5mcm9tX2RpY3QodHJhdmVsX3J1bGVfbWF0Y2hlZF9ydWxlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TravelRuleNationalIdentification.md b/docs/TravelRuleNationalIdentification.md index 9bef13c7..4ee0e3c1 100644 --- a/docs/TravelRuleNationalIdentification.md +++ b/docs/TravelRuleNationalIdentification.md @@ -1,33 +1 @@ -# TravelRuleNationalIdentification - -Represents a national identifier for a person or entity - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**country_of_issue** | **str** | Country that issued the national identifier (ISO-3166 Alpha-2 country code). The value must be encrypted. | [optional] -**national_identifier** | **str** | National identifier (max 35 characters). The value must be encrypted. | [optional] -**national_identifier_type** | **str** | Type of national identifier. Acceptable values include: - 'PASSPORT': Passport number - 'NATIONAL_ID': National identification number - 'TAX_ID': Tax identification number - 'SOCIAL_SECURITY': Social security number The value must be encrypted. | [optional] -**registration_authority** | **str** | Registration authority (format -> RA followed by 6 digits). The value must be encrypted. | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_national_identification import TravelRuleNationalIdentification - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleNationalIdentification from a JSON string -travel_rule_national_identification_instance = TravelRuleNationalIdentification.from_json(json) -# print the JSON string representation of the object -print(TravelRuleNationalIdentification.to_json()) - -# convert the object into a dict -travel_rule_national_identification_dict = travel_rule_national_identification_instance.to_dict() -# create an instance of TravelRuleNationalIdentification from a dict -travel_rule_national_identification_from_dict = TravelRuleNationalIdentification.from_dict(travel_rule_national_identification_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlTmF0aW9uYWxJZGVudGlmaWNhdGlvbgoKUmVwcmVzZW50cyBhIG5hdGlvbmFsIGlkZW50aWZpZXIgZm9yIGEgcGVyc29uIG9yIGVudGl0eQoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmNvdW50cnlfb2ZfaXNzdWUqKiB8ICoqc3RyKiogfCBDb3VudHJ5IHRoYXQgaXNzdWVkIHRoZSBuYXRpb25hbCBpZGVudGlmaWVyIChJU08tMzE2NiBBbHBoYS0yIGNvdW50cnkgY29kZSkuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4gfCBbb3B0aW9uYWxdIAoqKm5hdGlvbmFsX2lkZW50aWZpZXIqKiB8ICoqc3RyKiogfCBOYXRpb25hbCBpZGVudGlmaWVyIChtYXggMzUgY2hhcmFjdGVycykuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4gfCBbb3B0aW9uYWxdIAoqKm5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSoqIHwgKipzdHIqKiB8IFR5cGUgb2YgbmF0aW9uYWwgaWRlbnRpZmllci4gQWNjZXB0YWJsZSB2YWx1ZXMgaW5jbHVkZTogLSAmIzM5O1BBU1NQT1JUJiMzOTs6IFBhc3Nwb3J0IG51bWJlciAtICYjMzk7TkFUSU9OQUxfSUQmIzM5OzogTmF0aW9uYWwgaWRlbnRpZmljYXRpb24gbnVtYmVyIC0gJiMzOTtUQVhfSUQmIzM5OzogVGF4IGlkZW50aWZpY2F0aW9uIG51bWJlciAtICYjMzk7U09DSUFMX1NFQ1VSSVRZJiMzOTs6IFNvY2lhbCBzZWN1cml0eSBudW1iZXIgVGhlIHZhbHVlIG11c3QgYmUgZW5jcnlwdGVkLiB8IFtvcHRpb25hbF0gCioqcmVnaXN0cmF0aW9uX2F1dGhvcml0eSoqIHwgKipzdHIqKiB8IFJlZ2lzdHJhdGlvbiBhdXRob3JpdHkgKGZvcm1hdCAtJmd0OyBSQSBmb2xsb3dlZCBieSA2IGRpZ2l0cykuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0aW9uYWxfaWRlbnRpZmljYXRpb24gaW1wb3J0IFRyYXZlbFJ1bGVOYXRpb25hbElkZW50aWZpY2F0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlTmF0aW9uYWxJZGVudGlmaWNhdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmcKdHJhdmVsX3J1bGVfbmF0aW9uYWxfaWRlbnRpZmljYXRpb25faW5zdGFuY2UgPSBUcmF2ZWxSdWxlTmF0aW9uYWxJZGVudGlmaWNhdGlvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmF2ZWxSdWxlTmF0aW9uYWxJZGVudGlmaWNhdGlvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmF2ZWxfcnVsZV9uYXRpb25hbF9pZGVudGlmaWNhdGlvbl9kaWN0ID0gdHJhdmVsX3J1bGVfbmF0aW9uYWxfaWRlbnRpZmljYXRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVOYXRpb25hbElkZW50aWZpY2F0aW9uIGZyb20gYSBkaWN0CnRyYXZlbF9ydWxlX25hdGlvbmFsX2lkZW50aWZpY2F0aW9uX2Zyb21fZGljdCA9IFRyYXZlbFJ1bGVOYXRpb25hbElkZW50aWZpY2F0aW9uLmZyb21fZGljdCh0cmF2ZWxfcnVsZV9uYXRpb25hbF9pZGVudGlmaWNhdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TravelRuleNaturalNameIdentifier.md b/docs/TravelRuleNaturalNameIdentifier.md index 265df50a..fda9045b 100644 --- a/docs/TravelRuleNaturalNameIdentifier.md +++ b/docs/TravelRuleNaturalNameIdentifier.md @@ -1,31 +1 @@ -# TravelRuleNaturalNameIdentifier - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**primary_identifier** | **str** | The primary identifier of the name. The value must be encrypted. | [optional] -**secondary_identifier** | **str** | The secondary identifier of the name. The value must be encrypted. | [optional] -**name_identifier_type** | **str** | The type of the name identifier. The value must be encrypted. The value must be one of the following: [LEGL, DBA, TRAD, NICK, ALIA, MAID, FORM, PREV, BORN, OTHR]. | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_natural_name_identifier import TravelRuleNaturalNameIdentifier - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleNaturalNameIdentifier from a JSON string -travel_rule_natural_name_identifier_instance = TravelRuleNaturalNameIdentifier.from_json(json) -# print the JSON string representation of the object -print(TravelRuleNaturalNameIdentifier.to_json()) - -# convert the object into a dict -travel_rule_natural_name_identifier_dict = travel_rule_natural_name_identifier_instance.to_dict() -# create an instance of TravelRuleNaturalNameIdentifier from a dict -travel_rule_natural_name_identifier_from_dict = TravelRuleNaturalNameIdentifier.from_dict(travel_rule_natural_name_identifier_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnByaW1hcnlfaWRlbnRpZmllcioqIHwgKipzdHIqKiB8IFRoZSBwcmltYXJ5IGlkZW50aWZpZXIgb2YgdGhlIG5hbWUuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4gfCBbb3B0aW9uYWxdIAoqKnNlY29uZGFyeV9pZGVudGlmaWVyKiogfCAqKnN0cioqIHwgVGhlIHNlY29uZGFyeSBpZGVudGlmaWVyIG9mIHRoZSBuYW1lLiBUaGUgdmFsdWUgbXVzdCBiZSBlbmNyeXB0ZWQuIHwgW29wdGlvbmFsXSAKKipuYW1lX2lkZW50aWZpZXJfdHlwZSoqIHwgKipzdHIqKiB8IFRoZSB0eXBlIG9mIHRoZSBuYW1lIGlkZW50aWZpZXIuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4gVGhlIHZhbHVlIG11c3QgYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6IFtMRUdMLCBEQkEsIFRSQUQsIE5JQ0ssIEFMSUEsIE1BSUQsIEZPUk0sIFBSRVYsIEJPUk4sIE9USFJdLiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllciBpbXBvcnQgVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllcgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllciBmcm9tIGEgSlNPTiBzdHJpbmcKdHJhdmVsX3J1bGVfbmF0dXJhbF9uYW1lX2lkZW50aWZpZXJfaW5zdGFuY2UgPSBUcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRyYXZlbFJ1bGVOYXR1cmFsTmFtZUlkZW50aWZpZXIudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJhdmVsX3J1bGVfbmF0dXJhbF9uYW1lX2lkZW50aWZpZXJfZGljdCA9IHRyYXZlbF9ydWxlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyIGZyb20gYSBkaWN0CnRyYXZlbF9ydWxlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyX2Zyb21fZGljdCA9IFRyYXZlbFJ1bGVOYXR1cmFsTmFtZUlkZW50aWZpZXIuZnJvbV9kaWN0KHRyYXZlbF9ydWxlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TravelRuleNaturalPerson.md b/docs/TravelRuleNaturalPerson.md index 8d6fdf63..d6a613d9 100644 --- a/docs/TravelRuleNaturalPerson.md +++ b/docs/TravelRuleNaturalPerson.md @@ -1,35 +1 @@ -# TravelRuleNaturalPerson - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | [**List[TravelRuleNaturalPersonNameIdentifier]**](TravelRuleNaturalPersonNameIdentifier.md) | An array of structured name identifiers for the natural person, referencing the TravelRuleNaturalPersonNameIdentifier schema. | [optional] -**geographic_address** | [**List[TravelRuleGeographicAddress]**](TravelRuleGeographicAddress.md) | An array of geographic addresses associated with the natural person, referencing the TravelRuleGeographicAddress schema. | [optional] -**national_identification** | [**TravelRuleNationalIdentification**](TravelRuleNationalIdentification.md) | | [optional] -**date_and_place_of_birth** | [**TravelRuleDateAndPlaceOfBirth**](TravelRuleDateAndPlaceOfBirth.md) | | [optional] -**customer_identification** | **str** | A unique identifier for the customer within the organization's context. The value must be encrypted. | [optional] -**country_of_residence** | **str** | The ISO-3166 Alpha-2 country code of the natural person's residence. The value must be encrypted. | [optional] -**customer_number** | **str** | A distinct identifier that uniquely identifies the customer within the organization. The value must be encrypted. | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_natural_person import TravelRuleNaturalPerson - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleNaturalPerson from a JSON string -travel_rule_natural_person_instance = TravelRuleNaturalPerson.from_json(json) -# print the JSON string representation of the object -print(TravelRuleNaturalPerson.to_json()) - -# convert the object into a dict -travel_rule_natural_person_dict = travel_rule_natural_person_instance.to_dict() -# create an instance of TravelRuleNaturalPerson from a dict -travel_rule_natural_person_from_dict = TravelRuleNaturalPerson.from_dict(travel_rule_natural_person_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipuYW1lKiogfCBbKipMaXN0W1RyYXZlbFJ1bGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXJdKipdKFRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIubWQpIHwgQW4gYXJyYXkgb2Ygc3RydWN0dXJlZCBuYW1lIGlkZW50aWZpZXJzIGZvciB0aGUgbmF0dXJhbCBwZXJzb24sIHJlZmVyZW5jaW5nIHRoZSBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyIHNjaGVtYS4gfCBbb3B0aW9uYWxdIAoqKmdlb2dyYXBoaWNfYWRkcmVzcyoqIHwgWyoqTGlzdFtUcmF2ZWxSdWxlR2VvZ3JhcGhpY0FkZHJlc3NdKipdKFRyYXZlbFJ1bGVHZW9ncmFwaGljQWRkcmVzcy5tZCkgfCBBbiBhcnJheSBvZiBnZW9ncmFwaGljIGFkZHJlc3NlcyBhc3NvY2lhdGVkIHdpdGggdGhlIG5hdHVyYWwgcGVyc29uLCByZWZlcmVuY2luZyB0aGUgVHJhdmVsUnVsZUdlb2dyYXBoaWNBZGRyZXNzIHNjaGVtYS4gfCBbb3B0aW9uYWxdIAoqKm5hdGlvbmFsX2lkZW50aWZpY2F0aW9uKiogfCBbKipUcmF2ZWxSdWxlTmF0aW9uYWxJZGVudGlmaWNhdGlvbioqXShUcmF2ZWxSdWxlTmF0aW9uYWxJZGVudGlmaWNhdGlvbi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRhdGVfYW5kX3BsYWNlX29mX2JpcnRoKiogfCBbKipUcmF2ZWxSdWxlRGF0ZUFuZFBsYWNlT2ZCaXJ0aCoqXShUcmF2ZWxSdWxlRGF0ZUFuZFBsYWNlT2ZCaXJ0aC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmN1c3RvbWVyX2lkZW50aWZpY2F0aW9uKiogfCAqKnN0cioqIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGN1c3RvbWVyIHdpdGhpbiB0aGUgb3JnYW5pemF0aW9uJiMzOTtzIGNvbnRleHQuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4gfCBbb3B0aW9uYWxdIAoqKmNvdW50cnlfb2ZfcmVzaWRlbmNlKiogfCAqKnN0cioqIHwgVGhlIElTTy0zMTY2IEFscGhhLTIgY291bnRyeSBjb2RlIG9mIHRoZSBuYXR1cmFsIHBlcnNvbiYjMzk7cyByZXNpZGVuY2UuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4gfCBbb3B0aW9uYWxdIAoqKmN1c3RvbWVyX251bWJlcioqIHwgKipzdHIqKiB8IEEgZGlzdGluY3QgaWRlbnRpZmllciB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIGN1c3RvbWVyIHdpdGhpbiB0aGUgb3JnYW5pemF0aW9uLiBUaGUgdmFsdWUgbXVzdCBiZSBlbmNyeXB0ZWQuIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uIGltcG9ydCBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZU5hdHVyYWxQZXJzb24gZnJvbSBhIEpTT04gc3RyaW5nCnRyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uX2luc3RhbmNlID0gVHJhdmVsUnVsZU5hdHVyYWxQZXJzb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhdmVsUnVsZU5hdHVyYWxQZXJzb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJhdmVsX3J1bGVfbmF0dXJhbF9wZXJzb25fZGljdCA9IHRyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbiBmcm9tIGEgZGljdAp0cmF2ZWxfcnVsZV9uYXR1cmFsX3BlcnNvbl9mcm9tX2RpY3QgPSBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbi5mcm9tX2RpY3QodHJhdmVsX3J1bGVfbmF0dXJhbF9wZXJzb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TravelRuleNaturalPersonNameIdentifier.md b/docs/TravelRuleNaturalPersonNameIdentifier.md index 5768a161..d3ba47ef 100644 --- a/docs/TravelRuleNaturalPersonNameIdentifier.md +++ b/docs/TravelRuleNaturalPersonNameIdentifier.md @@ -1,31 +1 @@ -# TravelRuleNaturalPersonNameIdentifier - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name_identifier** | [**List[TravelRuleNaturalNameIdentifier]**](TravelRuleNaturalNameIdentifier.md) | | [optional] -**local_name_identifier** | [**List[TravelRuleNaturalNameIdentifier]**](TravelRuleNaturalNameIdentifier.md) | | [optional] -**phonetic_name_identifier** | [**List[TravelRuleNaturalNameIdentifier]**](TravelRuleNaturalNameIdentifier.md) | | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_natural_person_name_identifier import TravelRuleNaturalPersonNameIdentifier - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleNaturalPersonNameIdentifier from a JSON string -travel_rule_natural_person_name_identifier_instance = TravelRuleNaturalPersonNameIdentifier.from_json(json) -# print the JSON string representation of the object -print(TravelRuleNaturalPersonNameIdentifier.to_json()) - -# convert the object into a dict -travel_rule_natural_person_name_identifier_dict = travel_rule_natural_person_name_identifier_instance.to_dict() -# create an instance of TravelRuleNaturalPersonNameIdentifier from a dict -travel_rule_natural_person_name_identifier_from_dict = TravelRuleNaturalPersonNameIdentifier.from_dict(travel_rule_natural_person_name_identifier_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm5hbWVfaWRlbnRpZmllcioqIHwgWyoqTGlzdFtUcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyXSoqXShUcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqbG9jYWxfbmFtZV9pZGVudGlmaWVyKiogfCBbKipMaXN0W1RyYXZlbFJ1bGVOYXR1cmFsTmFtZUlkZW50aWZpZXJdKipdKFRyYXZlbFJ1bGVOYXR1cmFsTmFtZUlkZW50aWZpZXIubWQpIHwgIHwgW29wdGlvbmFsXSAKKipwaG9uZXRpY19uYW1lX2lkZW50aWZpZXIqKiB8IFsqKkxpc3RbVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllcl0qKl0oVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllci5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyIGltcG9ydCBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyIGZyb20gYSBKU09OIHN0cmluZwp0cmF2ZWxfcnVsZV9uYXR1cmFsX3BlcnNvbl9uYW1lX2lkZW50aWZpZXJfaW5zdGFuY2UgPSBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJhdmVsX3J1bGVfbmF0dXJhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyX2RpY3QgPSB0cmF2ZWxfcnVsZV9uYXR1cmFsX3BlcnNvbl9uYW1lX2lkZW50aWZpZXJfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIgZnJvbSBhIGRpY3QKdHJhdmVsX3J1bGVfbmF0dXJhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyX2Zyb21fZGljdCA9IFRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIuZnJvbV9kaWN0KHRyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uX25hbWVfaWRlbnRpZmllcl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TravelRuleOwnershipProof.md b/docs/TravelRuleOwnershipProof.md index 753ae5b0..d3ac799d 100644 --- a/docs/TravelRuleOwnershipProof.md +++ b/docs/TravelRuleOwnershipProof.md @@ -1,36 +1 @@ -# TravelRuleOwnershipProof - -Ownership proof related to the originator of the transaction. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | The type of ownership proof. Example values: - `eip-191`: Ethereum signature proof - `eip-712`: Ethereum typed data signature proof - `bip-137`: Bitcoin signature proof - `microtransfer`: Microtransaction (Satoshi test) - `screenshot`: Uploaded screenshot of the wallet - `self-declaration`: Checkbox attestation of ownership | [optional] -**proof** | **str** | The cryptographic signature, transaction hash, or other proof depending on the type. Examples: - For `eip-191`: `0x3dd4a17a...ce4a2bcd1b` - For `microtransfer`: The transaction hash `H3V8GXBy39Dz...tr3TSTkY=` | [optional] -**attestation** | **str** | A human-readable statement of wallet ownership. Required for signature proofs and self-declarations. Examples: - `I certify that ETH account 0x896B...0b9b belongs to me.` - `I hereby declare that the blockchain address 0xa437bEed902AF9338B7DEB23848e195d85019510 is under my control.` | [optional] -**address** | **str** | The wallet address being verified. Examples: - For Ethereum: `0x896B...0b9b` - For Bitcoin: `1442...dxhsQ` | [optional] -**wallet_provider** | **str** | The wallet provider or method used for verification. Examples: - For Metamask: `Metamask` - For manual signature: `manual` | [optional] -**url** | **str** | The URL for the uploaded screenshot (for `screenshot` proof types only). Example: `https://example.com/uploaded_image.png` | [optional] -**confirmed** | **bool** | Whether the user confirmed ownership of the wallet (for `self-declaration` proofs). Example: `true` | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_ownership_proof import TravelRuleOwnershipProof - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleOwnershipProof from a JSON string -travel_rule_ownership_proof_instance = TravelRuleOwnershipProof.from_json(json) -# print the JSON string representation of the object -print(TravelRuleOwnershipProof.to_json()) - -# convert the object into a dict -travel_rule_ownership_proof_dict = travel_rule_ownership_proof_instance.to_dict() -# create an instance of TravelRuleOwnershipProof from a dict -travel_rule_ownership_proof_from_dict = TravelRuleOwnershipProof.from_dict(travel_rule_ownership_proof_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2YKCk93bmVyc2hpcCBwcm9vZiByZWxhdGVkIHRvIHRoZSBvcmlnaW5hdG9yIG9mIHRoZSB0cmFuc2FjdGlvbi4KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eXBlKiogfCAqKnN0cioqIHwgVGhlIHR5cGUgb2Ygb3duZXJzaGlwIHByb29mLiBFeGFtcGxlIHZhbHVlczogLSAmI3g2MDtlaXAtMTkxJiN4NjA7OiBFdGhlcmV1bSBzaWduYXR1cmUgcHJvb2YgLSAmI3g2MDtlaXAtNzEyJiN4NjA7OiBFdGhlcmV1bSB0eXBlZCBkYXRhIHNpZ25hdHVyZSBwcm9vZiAtICYjeDYwO2JpcC0xMzcmI3g2MDs6IEJpdGNvaW4gc2lnbmF0dXJlIHByb29mIC0gJiN4NjA7bWljcm90cmFuc2ZlciYjeDYwOzogTWljcm90cmFuc2FjdGlvbiAoU2F0b3NoaSB0ZXN0KSAtICYjeDYwO3NjcmVlbnNob3QmI3g2MDs6IFVwbG9hZGVkIHNjcmVlbnNob3Qgb2YgdGhlIHdhbGxldCAtICYjeDYwO3NlbGYtZGVjbGFyYXRpb24mI3g2MDs6IENoZWNrYm94IGF0dGVzdGF0aW9uIG9mIG93bmVyc2hpcCB8IFtvcHRpb25hbF0gCioqcHJvb2YqKiB8ICoqc3RyKiogfCBUaGUgY3J5cHRvZ3JhcGhpYyBzaWduYXR1cmUsIHRyYW5zYWN0aW9uIGhhc2gsIG9yIG90aGVyIHByb29mIGRlcGVuZGluZyBvbiB0aGUgdHlwZS4gRXhhbXBsZXM6IC0gRm9yICYjeDYwO2VpcC0xOTEmI3g2MDs6ICYjeDYwOzB4M2RkNGExN2EuLi5jZTRhMmJjZDFiJiN4NjA7IC0gRm9yICYjeDYwO21pY3JvdHJhbnNmZXImI3g2MDs6IFRoZSB0cmFuc2FjdGlvbiBoYXNoICYjeDYwO0gzVjhHWEJ5MzlEei4uLnRyM1RTVGtZJiN4M0Q7JiN4NjA7IHwgW29wdGlvbmFsXSAKKiphdHRlc3RhdGlvbioqIHwgKipzdHIqKiB8IEEgaHVtYW4tcmVhZGFibGUgc3RhdGVtZW50IG9mIHdhbGxldCBvd25lcnNoaXAuIFJlcXVpcmVkIGZvciBzaWduYXR1cmUgcHJvb2ZzIGFuZCBzZWxmLWRlY2xhcmF0aW9ucy4gRXhhbXBsZXM6IC0gJiN4NjA7SSBjZXJ0aWZ5IHRoYXQgRVRIIGFjY291bnQgMHg4OTZCLi4uMGI5YiBiZWxvbmdzIHRvIG1lLiYjeDYwOyAtICYjeDYwO0kgaGVyZWJ5IGRlY2xhcmUgdGhhdCB0aGUgYmxvY2tjaGFpbiBhZGRyZXNzIDB4YTQzN2JFZWQ5MDJBRjkzMzhCN0RFQjIzODQ4ZTE5NWQ4NTAxOTUxMCBpcyB1bmRlciBteSBjb250cm9sLiYjeDYwOyB8IFtvcHRpb25hbF0gCioqYWRkcmVzcyoqIHwgKipzdHIqKiB8IFRoZSB3YWxsZXQgYWRkcmVzcyBiZWluZyB2ZXJpZmllZC4gRXhhbXBsZXM6IC0gRm9yIEV0aGVyZXVtOiAmI3g2MDsweDg5NkIuLi4wYjliJiN4NjA7IC0gRm9yIEJpdGNvaW46ICYjeDYwOzE0NDIuLi5keGhzUSYjeDYwOyB8IFtvcHRpb25hbF0gCioqd2FsbGV0X3Byb3ZpZGVyKiogfCAqKnN0cioqIHwgVGhlIHdhbGxldCBwcm92aWRlciBvciBtZXRob2QgdXNlZCBmb3IgdmVyaWZpY2F0aW9uLiBFeGFtcGxlczogLSBGb3IgTWV0YW1hc2s6ICYjeDYwO01ldGFtYXNrJiN4NjA7IC0gRm9yIG1hbnVhbCBzaWduYXR1cmU6ICYjeDYwO21hbnVhbCYjeDYwOyB8IFtvcHRpb25hbF0gCioqdXJsKiogfCAqKnN0cioqIHwgVGhlIFVSTCBmb3IgdGhlIHVwbG9hZGVkIHNjcmVlbnNob3QgKGZvciAmI3g2MDtzY3JlZW5zaG90JiN4NjA7IHByb29mIHR5cGVzIG9ubHkpLiBFeGFtcGxlOiAmI3g2MDtodHRwczovL2V4YW1wbGUuY29tL3VwbG9hZGVkX2ltYWdlLnBuZyYjeDYwOyB8IFtvcHRpb25hbF0gCioqZGlkKiogfCAqKnN0cioqIHwgVGhlIERlY2VudHJhbGl6ZWQgSWRlbnRpZmllciAoRElEKSBhc3NvY2lhdGVkIHdpdGggdGhlIG93bmVyc2hpcCBwcm9vZi4gfCBbb3B0aW9uYWxdIAoqKnN0YXR1cyoqIHwgKipzdHIqKiB8IFRoZSBzdGF0dXMgb2YgdGhlIG93bmVyc2hpcCBwcm9vZiB2ZXJpZmljYXRpb24uIHwgW29wdGlvbmFsXSAKKipjb25maXJtZWQqKiB8ICoqYm9vbCoqIHwgV2hldGhlciB0aGUgdXNlciBjb25maXJtZWQgb3duZXJzaGlwIG9mIHRoZSB3YWxsZXQgKGZvciAmI3g2MDtzZWxmLWRlY2xhcmF0aW9uJiN4NjA7IHByb29mcykuIEV4YW1wbGU6ICYjeDYwO3RydWUmI3g2MDsgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfb3duZXJzaGlwX3Byb29mIGltcG9ydCBUcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2YKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVPd25lcnNoaXBQcm9vZiBmcm9tIGEgSlNPTiBzdHJpbmcKdHJhdmVsX3J1bGVfb3duZXJzaGlwX3Byb29mX2luc3RhbmNlID0gVHJhdmVsUnVsZU93bmVyc2hpcFByb29mLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRyYXZlbFJ1bGVPd25lcnNoaXBQcm9vZi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmF2ZWxfcnVsZV9vd25lcnNoaXBfcHJvb2ZfZGljdCA9IHRyYXZlbF9ydWxlX293bmVyc2hpcF9wcm9vZl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZU93bmVyc2hpcFByb29mIGZyb20gYSBkaWN0CnRyYXZlbF9ydWxlX293bmVyc2hpcF9wcm9vZl9mcm9tX2RpY3QgPSBUcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2YuZnJvbV9kaWN0KHRyYXZlbF9ydWxlX293bmVyc2hpcF9wcm9vZl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TravelRulePerson.md b/docs/TravelRulePerson.md index 5d69e747..8c385235 100644 --- a/docs/TravelRulePerson.md +++ b/docs/TravelRulePerson.md @@ -1,30 +1 @@ -# TravelRulePerson - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**natural_person** | [**TravelRuleNaturalPerson**](TravelRuleNaturalPerson.md) | | [optional] -**legal_person** | [**TravelRuleLegalPerson**](TravelRuleLegalPerson.md) | | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_person import TravelRulePerson - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRulePerson from a JSON string -travel_rule_person_instance = TravelRulePerson.from_json(json) -# print the JSON string representation of the object -print(TravelRulePerson.to_json()) - -# convert the object into a dict -travel_rule_person_dict = travel_rule_person_instance.to_dict() -# create an instance of TravelRulePerson from a dict -travel_rule_person_from_dict = TravelRulePerson.from_dict(travel_rule_person_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlUGVyc29uCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm5hdHVyYWxfcGVyc29uKiogfCBbKipUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbioqXShUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmxlZ2FsX3BlcnNvbioqIHwgWyoqVHJhdmVsUnVsZUxlZ2FsUGVyc29uKipdKFRyYXZlbFJ1bGVMZWdhbFBlcnNvbi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfcGVyc29uIGltcG9ydCBUcmF2ZWxSdWxlUGVyc29uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlUGVyc29uIGZyb20gYSBKU09OIHN0cmluZwp0cmF2ZWxfcnVsZV9wZXJzb25faW5zdGFuY2UgPSBUcmF2ZWxSdWxlUGVyc29uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRyYXZlbFJ1bGVQZXJzb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJhdmVsX3J1bGVfcGVyc29uX2RpY3QgPSB0cmF2ZWxfcnVsZV9wZXJzb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVQZXJzb24gZnJvbSBhIGRpY3QKdHJhdmVsX3J1bGVfcGVyc29uX2Zyb21fZGljdCA9IFRyYXZlbFJ1bGVQZXJzb24uZnJvbV9kaWN0KHRyYXZlbF9ydWxlX3BlcnNvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TravelRulePiiIVMS.md b/docs/TravelRulePiiIVMS.md index 1b9c15cf..01cbd5a8 100644 --- a/docs/TravelRulePiiIVMS.md +++ b/docs/TravelRulePiiIVMS.md @@ -1,32 +1 @@ -# TravelRulePiiIVMS - -Personal identifiable information related to the transaction - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**originator_persons** | [**List[TravelRulePerson]**](TravelRulePerson.md) | Information about the originator of the transaction | [optional] -**beneficiary_persons** | [**List[TravelRulePerson]**](TravelRulePerson.md) | Information about the beneficiary of the transaction | [optional] -**account_number** | **List[str]** | Beneficiary account number. The value must be encrypted. | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_pii_ivms import TravelRulePiiIVMS - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRulePiiIVMS from a JSON string -travel_rule_pii_ivms_instance = TravelRulePiiIVMS.from_json(json) -# print the JSON string representation of the object -print(TravelRulePiiIVMS.to_json()) - -# convert the object into a dict -travel_rule_pii_ivms_dict = travel_rule_pii_ivms_instance.to_dict() -# create an instance of TravelRulePiiIVMS from a dict -travel_rule_pii_ivms_from_dict = TravelRulePiiIVMS.from_dict(travel_rule_pii_ivms_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlUGlpSVZNUwoKUGVyc29uYWwgaWRlbnRpZmlhYmxlIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gdGhlIHRyYW5zYWN0aW9uCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqb3JpZ2luYXRvcl9wZXJzb25zKiogfCBbKipMaXN0W1RyYXZlbFJ1bGVQZXJzb25dKipdKFRyYXZlbFJ1bGVQZXJzb24ubWQpIHwgSW5mb3JtYXRpb24gYWJvdXQgdGhlIG9yaWdpbmF0b3Igb2YgdGhlIHRyYW5zYWN0aW9uIHwgW29wdGlvbmFsXSAKKipiZW5lZmljaWFyeV9wZXJzb25zKiogfCBbKipMaXN0W1RyYXZlbFJ1bGVQZXJzb25dKipdKFRyYXZlbFJ1bGVQZXJzb24ubWQpIHwgSW5mb3JtYXRpb24gYWJvdXQgdGhlIGJlbmVmaWNpYXJ5IG9mIHRoZSB0cmFuc2FjdGlvbiB8IFtvcHRpb25hbF0gCioqYWNjb3VudF9udW1iZXIqKiB8ICoqTGlzdFtzdHJdKiogfCBCZW5lZmljaWFyeSBhY2NvdW50IG51bWJlci4gVGhlIHZhbHVlIG11c3QgYmUgZW5jcnlwdGVkLiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9waWlfaXZtcyBpbXBvcnQgVHJhdmVsUnVsZVBpaUlWTVMKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVQaWlJVk1TIGZyb20gYSBKU09OIHN0cmluZwp0cmF2ZWxfcnVsZV9waWlfaXZtc19pbnN0YW5jZSA9IFRyYXZlbFJ1bGVQaWlJVk1TLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRyYXZlbFJ1bGVQaWlJVk1TLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYXZlbF9ydWxlX3BpaV9pdm1zX2RpY3QgPSB0cmF2ZWxfcnVsZV9waWlfaXZtc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVBpaUlWTVMgZnJvbSBhIGRpY3QKdHJhdmVsX3J1bGVfcGlpX2l2bXNfZnJvbV9kaWN0ID0gVHJhdmVsUnVsZVBpaUlWTVMuZnJvbV9kaWN0KHRyYXZlbF9ydWxlX3BpaV9pdm1zX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TravelRulePolicyRuleResponse.md b/docs/TravelRulePolicyRuleResponse.md index 7c8e493a..0e1710a4 100644 --- a/docs/TravelRulePolicyRuleResponse.md +++ b/docs/TravelRulePolicyRuleResponse.md @@ -1,42 +1 @@ -# TravelRulePolicyRuleResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**source_type** | **str** | | [optional] -**source_sub_type** | **str** | | [optional] -**dest_type** | **str** | | [optional] -**dest_sub_type** | **str** | | [optional] -**dest_address** | **str** | | [optional] -**source_id** | **str** | | [optional] -**dest_id** | **str** | | [optional] -**asset** | **str** | | [optional] -**base_asset** | **str** | | [optional] -**amount** | **float** | | [optional] -**amount_usd** | **float** | | [optional] -**network_protocol** | **str** | The network protocol of the token | [optional] -**operation** | **str** | | [optional] -**action** | **str** | | - -## Example - -```python -from fireblocks.models.travel_rule_policy_rule_response import TravelRulePolicyRuleResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRulePolicyRuleResponse from a JSON string -travel_rule_policy_rule_response_instance = TravelRulePolicyRuleResponse.from_json(json) -# print the JSON string representation of the object -print(TravelRulePolicyRuleResponse.to_json()) - -# convert the object into a dict -travel_rule_policy_rule_response_dict = travel_rule_policy_rule_response_instance.to_dict() -# create an instance of TravelRulePolicyRuleResponse from a dict -travel_rule_policy_rule_response_from_dict = TravelRulePolicyRuleResponse.from_dict(travel_rule_policy_rule_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlUG9saWN5UnVsZVJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnNvdXJjZV90eXBlKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipzb3VyY2Vfc3ViX3R5cGUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmRlc3RfdHlwZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqZGVzdF9zdWJfdHlwZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqZGVzdF9hZGRyZXNzKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipzb3VyY2VfaWQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmRlc3RfaWQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFzc2V0KiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipiYXNlX2Fzc2V0KiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKiphbW91bnQqKiB8ICoqZmxvYXQqKiB8ICB8IFtvcHRpb25hbF0gCioqYW1vdW50X3VzZCoqIHwgKipmbG9hdCoqIHwgIHwgW29wdGlvbmFsXSAKKipuZXR3b3JrX3Byb3RvY29sKiogfCAqKnN0cioqIHwgVGhlIG5ldHdvcmsgcHJvdG9jb2wgb2YgdGhlIHRva2VuIHwgW29wdGlvbmFsXSAKKipvcGVyYXRpb24qKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFjdGlvbioqIHwgKipzdHIqKiB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfcG9saWN5X3J1bGVfcmVzcG9uc2UgaW1wb3J0IFRyYXZlbFJ1bGVQb2xpY3lSdWxlUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVQb2xpY3lSdWxlUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnRyYXZlbF9ydWxlX3BvbGljeV9ydWxlX3Jlc3BvbnNlX2luc3RhbmNlID0gVHJhdmVsUnVsZVBvbGljeVJ1bGVSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmF2ZWxSdWxlUG9saWN5UnVsZVJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYXZlbF9ydWxlX3BvbGljeV9ydWxlX3Jlc3BvbnNlX2RpY3QgPSB0cmF2ZWxfcnVsZV9wb2xpY3lfcnVsZV9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVBvbGljeVJ1bGVSZXNwb25zZSBmcm9tIGEgZGljdAp0cmF2ZWxfcnVsZV9wb2xpY3lfcnVsZV9yZXNwb25zZV9mcm9tX2RpY3QgPSBUcmF2ZWxSdWxlUG9saWN5UnVsZVJlc3BvbnNlLmZyb21fZGljdCh0cmF2ZWxfcnVsZV9wb2xpY3lfcnVsZV9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TravelRulePrescreeningRule.md b/docs/TravelRulePrescreeningRule.md index 89e3f001..783cc8b7 100644 --- a/docs/TravelRulePrescreeningRule.md +++ b/docs/TravelRulePrescreeningRule.md @@ -1,46 +1 @@ -# TravelRulePrescreeningRule - -Matched prescreening rule details. Prescreening rules are evaluated before the main screening to determine if screening is necessary or should be bypassed. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**bypass_reason** | **str** | Reason for bypass if prescreening rule triggered a bypass | [optional] -**source_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**source_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**dest_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**dest_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**transfer_peer_type** | [**TransferPeerTypeEnum**](TransferPeerTypeEnum.md) | | [optional] -**transfer_peer_sub_type** | [**TransferPeerSubTypeEnum**](TransferPeerSubTypeEnum.md) | | [optional] -**dest_address** | **str** | Destination address | [optional] -**source_id** | **str** | Source ID | [optional] -**dest_id** | **str** | Destination ID | [optional] -**asset** | **str** | Asset identifier | [optional] -**base_asset** | **str** | Base asset | [optional] -**amount** | **float** | Amount | [optional] -**amount_usd** | **float** | Amount in USD | [optional] -**network_protocol** | **str** | Network protocol | [optional] -**operation** | [**TransactionOperationEnum**](TransactionOperationEnum.md) | | [optional] -**action** | [**TravelRuleActionEnum**](TravelRuleActionEnum.md) | | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_prescreening_rule import TravelRulePrescreeningRule - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRulePrescreeningRule from a JSON string -travel_rule_prescreening_rule_instance = TravelRulePrescreeningRule.from_json(json) -# print the JSON string representation of the object -print(TravelRulePrescreeningRule.to_json()) - -# convert the object into a dict -travel_rule_prescreening_rule_dict = travel_rule_prescreening_rule_instance.to_dict() -# create an instance of TravelRulePrescreeningRule from a dict -travel_rule_prescreening_rule_from_dict = TravelRulePrescreeningRule.from_dict(travel_rule_prescreening_rule_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZQoKTWF0Y2hlZCBwcmVzY3JlZW5pbmcgcnVsZSBkZXRhaWxzLiBQcmVzY3JlZW5pbmcgcnVsZXMgYXJlIGV2YWx1YXRlZCBiZWZvcmUgdGhlIG1haW4gc2NyZWVuaW5nIHRvIGRldGVybWluZSBpZiBzY3JlZW5pbmcgaXMgbmVjZXNzYXJ5IG9yIHNob3VsZCBiZSBieXBhc3NlZC4gCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYnlwYXNzX3JlYXNvbioqIHwgKipzdHIqKiB8IFJlYXNvbiBmb3IgYnlwYXNzIGlmIHByZXNjcmVlbmluZyBydWxlIHRyaWdnZXJlZCBhIGJ5cGFzcyB8IFtvcHRpb25hbF0gCioqc291cmNlX3R5cGUqKiB8IFsqKlRyYW5zZmVyUGVlclR5cGVFbnVtKipdKFRyYW5zZmVyUGVlclR5cGVFbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqc291cmNlX3N1Yl90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJTdWJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJTdWJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRlc3RfdHlwZSoqIHwgWyoqVHJhbnNmZXJQZWVyVHlwZUVudW0qKl0oVHJhbnNmZXJQZWVyVHlwZUVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipkZXN0X3N1Yl90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJTdWJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJTdWJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnRyYW5zZmVyX3BlZXJfdHlwZSoqIHwgWyoqVHJhbnNmZXJQZWVyVHlwZUVudW0qKl0oVHJhbnNmZXJQZWVyVHlwZUVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKip0cmFuc2Zlcl9wZWVyX3N1Yl90eXBlKiogfCBbKipUcmFuc2ZlclBlZXJTdWJUeXBlRW51bSoqXShUcmFuc2ZlclBlZXJTdWJUeXBlRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRlc3RfYWRkcmVzcyoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIGFkZHJlc3MgfCBbb3B0aW9uYWxdIAoqKnNvdXJjZV9pZCoqIHwgKipzdHIqKiB8IFNvdXJjZSBJRCB8IFtvcHRpb25hbF0gCioqZGVzdF9pZCoqIHwgKipzdHIqKiB8IERlc3RpbmF0aW9uIElEIHwgW29wdGlvbmFsXSAKKiphc3NldCoqIHwgKipzdHIqKiB8IEFzc2V0IGlkZW50aWZpZXIgfCBbb3B0aW9uYWxdIAoqKmJhc2VfYXNzZXQqKiB8ICoqc3RyKiogfCBCYXNlIGFzc2V0IHwgW29wdGlvbmFsXSAKKiphbW91bnQqKiB8ICoqZmxvYXQqKiB8IEFtb3VudCB8IFtvcHRpb25hbF0gCioqYW1vdW50X3VzZCoqIHwgKipmbG9hdCoqIHwgQW1vdW50IGluIFVTRCB8IFtvcHRpb25hbF0gCioqbmV0d29ya19wcm90b2NvbCoqIHwgKipzdHIqKiB8IE5ldHdvcmsgcHJvdG9jb2wgfCBbb3B0aW9uYWxdIAoqKm9wZXJhdGlvbioqIHwgWyoqVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtKipdKFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmFjdGlvbioqIHwgWyoqVHJhdmVsUnVsZUFjdGlvbkVudW0qKl0oVHJhdmVsUnVsZUFjdGlvbkVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ByZXNjcmVlbmluZ19ydWxlIGltcG9ydCBUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGUgZnJvbSBhIEpTT04gc3RyaW5nCnRyYXZlbF9ydWxlX3ByZXNjcmVlbmluZ19ydWxlX2luc3RhbmNlID0gVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGUuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGUudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJhdmVsX3J1bGVfcHJlc2NyZWVuaW5nX3J1bGVfZGljdCA9IHRyYXZlbF9ydWxlX3ByZXNjcmVlbmluZ19ydWxlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZSBmcm9tIGEgZGljdAp0cmF2ZWxfcnVsZV9wcmVzY3JlZW5pbmdfcnVsZV9mcm9tX2RpY3QgPSBUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZS5mcm9tX2RpY3QodHJhdmVsX3J1bGVfcHJlc2NyZWVuaW5nX3J1bGVfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TravelRuleResult.md b/docs/TravelRuleResult.md index 6f1566c7..7bad048f 100644 --- a/docs/TravelRuleResult.md +++ b/docs/TravelRuleResult.md @@ -1,34 +1 @@ -# TravelRuleResult - -Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**direction** | [**TravelRuleDirectionEnum**](TravelRuleDirectionEnum.md) | | [optional] -**is_verified** | **bool** | Whether the travel rule information was verified | [optional] -**action** | [**TravelRuleVerdictEnum**](TravelRuleVerdictEnum.md) | | [optional] -**provider_response** | **Dict[str, object]** | Complete response from the travel rule provider. This is a dynamic object that varies significantly between different travel rule providers (NOTABENE etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - NOTABENE: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. | [optional] -**matched_rule** | [**TravelRuleMatchedRule**](TravelRuleMatchedRule.md) | | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_result import TravelRuleResult - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleResult from a JSON string -travel_rule_result_instance = TravelRuleResult.from_json(json) -# print the JSON string representation of the object -print(TravelRuleResult.to_json()) - -# convert the object into a dict -travel_rule_result_dict = travel_rule_result_instance.to_dict() -# create an instance of TravelRuleResult from a dict -travel_rule_result_from_dict = TravelRuleResult.from_dict(travel_rule_result_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlUmVzdWx0CgpEZXByZWNhdGVkOiBUaGlzIGZpZWxkIGlzIG5vdCBjdXJyZW50bHkgcmV0dXJuZWQgaW4gdGhlIEFQSSByZXNwb25zZS4gRGV0YWlsZWQgVHJhdmVsIFJ1bGUgc2NyZWVuaW5nIHJlc3VsdCBjb250YWluaW5nIHByb3ZpZGVyLXNwZWNpZmljIGRhdGEuIENvbnRhaW5zIFRyYXZlbCBSdWxlIHNwZWNpZmljIGluZm9ybWF0aW9uIGxpa2UgdmVyaWZpZWQgc3RhdHVzLCBydWxlIHR5cGUsIGFuZCBhY3Rpb25zLiAKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkaXJlY3Rpb24qKiB8IFsqKlRyYXZlbFJ1bGVEaXJlY3Rpb25FbnVtKipdKFRyYXZlbFJ1bGVEaXJlY3Rpb25FbnVtLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqaXNfdmVyaWZpZWQqKiB8ICoqYm9vbCoqIHwgV2hldGhlciB0aGUgdHJhdmVsIHJ1bGUgaW5mb3JtYXRpb24gd2FzIHZlcmlmaWVkIHwgW29wdGlvbmFsXSAKKiphY3Rpb24qKiB8IFsqKlRyYXZlbFJ1bGVWZXJkaWN0RW51bSoqXShUcmF2ZWxSdWxlVmVyZGljdEVudW0ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipwcm92aWRlcl9yZXNwb25zZSoqIHwgKipEaWN0W3N0ciwgb2JqZWN0XSoqIHwgQ29tcGxldGUgcmVzcG9uc2UgZnJvbSB0aGUgdHJhdmVsIHJ1bGUgcHJvdmlkZXIuIFRoaXMgaXMgYSBkeW5hbWljIG9iamVjdCB0aGF0IHZhcmllcyBzaWduaWZpY2FudGx5IGJldHdlZW4gZGlmZmVyZW50IHRyYXZlbCBydWxlIHByb3ZpZGVycyAoTk9UQUJFTkUgZXRjLikuIEVhY2ggcHJvdmlkZXIgaGFzIHRoZWlyIG93biBwcm9wcmlldGFyeSByZXNwb25zZSBmb3JtYXQgYW5kIHNjaGVtYS4gIEV4YW1wbGVzIG9mIHByb3ZpZGVyLXNwZWNpZmljIHN0cnVjdHVyZXM6IC0gTk9UQUJFTkU6IENvbnRhaW5zIFZBU1AgaW5mb3JtYXRpb24sIFBJSSBkYXRhLCBwcm90b2NvbC1zcGVjaWZpYyBmaWVsZHMgIFRoZSBzdHJ1Y3R1cmUgaXMgcHJvdmlkZXItZGVwZW5kZW50IGFuZCBjYW5ub3QgYmUgc3RhbmRhcmRpemVkIGFzIGVhY2ggdmVuZG9yIGltcGxlbWVudHMgdGhlaXIgb3duIHByb3ByaWV0YXJ5IGRhdGEgbW9kZWxzIGFuZCByZXNwb25zZSBmb3JtYXRzLiAgfCBbb3B0aW9uYWxdIAoqKm1hdGNoZWRfcnVsZSoqIHwgWyoqVHJhdmVsUnVsZU1hdGNoZWRSdWxlKipdKFRyYXZlbFJ1bGVNYXRjaGVkUnVsZS5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfcmVzdWx0IGltcG9ydCBUcmF2ZWxSdWxlUmVzdWx0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlUmVzdWx0IGZyb20gYSBKU09OIHN0cmluZwp0cmF2ZWxfcnVsZV9yZXN1bHRfaW5zdGFuY2UgPSBUcmF2ZWxSdWxlUmVzdWx0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRyYXZlbFJ1bGVSZXN1bHQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJhdmVsX3J1bGVfcmVzdWx0X2RpY3QgPSB0cmF2ZWxfcnVsZV9yZXN1bHRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVSZXN1bHQgZnJvbSBhIGRpY3QKdHJhdmVsX3J1bGVfcmVzdWx0X2Zyb21fZGljdCA9IFRyYXZlbFJ1bGVSZXN1bHQuZnJvbV9kaWN0KHRyYXZlbF9ydWxlX3Jlc3VsdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TravelRuleStatusEnum.md b/docs/TravelRuleStatusEnum.md index e69a93f1..c6b3aaa5 100644 --- a/docs/TravelRuleStatusEnum.md +++ b/docs/TravelRuleStatusEnum.md @@ -1,19 +1 @@ -# TravelRuleStatusEnum - -Travel rule status - -## Enum - -* `COMPLETED` (value: `'COMPLETED'`) - -* `PENDING` (value: `'PENDING'`) - -* `BYPASSED` (value: `'BYPASSED'`) - -* `FAILED` (value: `'FAILED'`) - -* `FROZEN` (value: `'FROZEN'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlU3RhdHVzRW51bQoKVHJhdmVsIHJ1bGUgc3RhdHVzCgojIyBFbnVtCgoqIGBDT01QTEVURURgICh2YWx1ZTogYCdDT01QTEVURUQnYCkKCiogYFBFTkRJTkdgICh2YWx1ZTogYCdQRU5ESU5HJ2ApCgoqIGBCWVBBU1NFRGAgKHZhbHVlOiBgJ0JZUEFTU0VEJ2ApCgoqIGBGQUlMRURgICh2YWx1ZTogYCdGQUlMRUQnYCkKCiogYEZST1pFTmAgKHZhbHVlOiBgJ0ZST1pFTidgKQoKKiBgUkVKRUNURURgICh2YWx1ZTogYCdSRUpFQ1RFRCdgKQoKKiBgQ0FOQ0VMRURgICh2YWx1ZTogYCdDQU5DRUxFRCdgKQoKKiBgQkxPQ0tJTkdfVElNRV9FWFBJUkVEYCAodmFsdWU6IGAnQkxPQ0tJTkdfVElNRV9FWFBJUkVEJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TravelRuleTransactionBlockchainInfo.md b/docs/TravelRuleTransactionBlockchainInfo.md index 98857188..b0deb102 100644 --- a/docs/TravelRuleTransactionBlockchainInfo.md +++ b/docs/TravelRuleTransactionBlockchainInfo.md @@ -1,32 +1 @@ -# TravelRuleTransactionBlockchainInfo - -Information about the blockchain transaction. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**tx_hash** | **str** | The hash of the transaction | [optional] -**origin** | **str** | The origin address of the transaction | [optional] -**destination** | **str** | The destination address of the transaction | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_transaction_blockchain_info import TravelRuleTransactionBlockchainInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleTransactionBlockchainInfo from a JSON string -travel_rule_transaction_blockchain_info_instance = TravelRuleTransactionBlockchainInfo.from_json(json) -# print the JSON string representation of the object -print(TravelRuleTransactionBlockchainInfo.to_json()) - -# convert the object into a dict -travel_rule_transaction_blockchain_info_dict = travel_rule_transaction_blockchain_info_instance.to_dict() -# create an instance of TravelRuleTransactionBlockchainInfo from a dict -travel_rule_transaction_blockchain_info_from_dict = TravelRuleTransactionBlockchainInfo.from_dict(travel_rule_transaction_blockchain_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlVHJhbnNhY3Rpb25CbG9ja2NoYWluSW5mbwoKSW5mb3JtYXRpb24gYWJvdXQgdGhlIGJsb2NrY2hhaW4gdHJhbnNhY3Rpb24uCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHhfaGFzaCoqIHwgKipzdHIqKiB8IFRoZSBoYXNoIG9mIHRoZSB0cmFuc2FjdGlvbiB8IFtvcHRpb25hbF0gCioqb3JpZ2luKiogfCAqKnN0cioqIHwgVGhlIG9yaWdpbiBhZGRyZXNzIG9mIHRoZSB0cmFuc2FjdGlvbiB8IFtvcHRpb25hbF0gCioqZGVzdGluYXRpb24qKiB8ICoqc3RyKiogfCBUaGUgZGVzdGluYXRpb24gYWRkcmVzcyBvZiB0aGUgdHJhbnNhY3Rpb24gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdHJhbnNhY3Rpb25fYmxvY2tjaGFpbl9pbmZvIGltcG9ydCBUcmF2ZWxSdWxlVHJhbnNhY3Rpb25CbG9ja2NoYWluSW5mbwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVRyYW5zYWN0aW9uQmxvY2tjaGFpbkluZm8gZnJvbSBhIEpTT04gc3RyaW5nCnRyYXZlbF9ydWxlX3RyYW5zYWN0aW9uX2Jsb2NrY2hhaW5faW5mb19pbnN0YW5jZSA9IFRyYXZlbFJ1bGVUcmFuc2FjdGlvbkJsb2NrY2hhaW5JbmZvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRyYXZlbFJ1bGVUcmFuc2FjdGlvbkJsb2NrY2hhaW5JbmZvLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYXZlbF9ydWxlX3RyYW5zYWN0aW9uX2Jsb2NrY2hhaW5faW5mb19kaWN0ID0gdHJhdmVsX3J1bGVfdHJhbnNhY3Rpb25fYmxvY2tjaGFpbl9pbmZvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVHJhbnNhY3Rpb25CbG9ja2NoYWluSW5mbyBmcm9tIGEgZGljdAp0cmF2ZWxfcnVsZV90cmFuc2FjdGlvbl9ibG9ja2NoYWluX2luZm9fZnJvbV9kaWN0ID0gVHJhdmVsUnVsZVRyYW5zYWN0aW9uQmxvY2tjaGFpbkluZm8uZnJvbV9kaWN0KHRyYXZlbF9ydWxlX3RyYW5zYWN0aW9uX2Jsb2NrY2hhaW5faW5mb19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TravelRuleUpdateVASPDetails.md b/docs/TravelRuleUpdateVASPDetails.md index 9e3bc5ab..832bd88c 100644 --- a/docs/TravelRuleUpdateVASPDetails.md +++ b/docs/TravelRuleUpdateVASPDetails.md @@ -1,30 +1 @@ -# TravelRuleUpdateVASPDetails - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**did** | **str** | The decentralized identifier of the VASP | -**pii_didkey** | **str** | The PII DID key of the VASP | - -## Example - -```python -from fireblocks.models.travel_rule_update_vasp_details import TravelRuleUpdateVASPDetails - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleUpdateVASPDetails from a JSON string -travel_rule_update_vasp_details_instance = TravelRuleUpdateVASPDetails.from_json(json) -# print the JSON string representation of the object -print(TravelRuleUpdateVASPDetails.to_json()) - -# convert the object into a dict -travel_rule_update_vasp_details_dict = travel_rule_update_vasp_details_instance.to_dict() -# create an instance of TravelRuleUpdateVASPDetails from a dict -travel_rule_update_vasp_details_from_dict = TravelRuleUpdateVASPDetails.from_dict(travel_rule_update_vasp_details_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlVXBkYXRlVkFTUERldGFpbHMKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZGlkKiogfCAqKnN0cioqIHwgVGhlIGRlY2VudHJhbGl6ZWQgaWRlbnRpZmllciBvZiB0aGUgVkFTUCB8IAoqKnBpaV9kaWRrZXkqKiB8ICoqc3RyKiogfCBUaGUgUElJIERJRCBrZXkgb2YgdGhlIFZBU1AgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3VwZGF0ZV92YXNwX2RldGFpbHMgaW1wb3J0IFRyYXZlbFJ1bGVVcGRhdGVWQVNQRGV0YWlscwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVVwZGF0ZVZBU1BEZXRhaWxzIGZyb20gYSBKU09OIHN0cmluZwp0cmF2ZWxfcnVsZV91cGRhdGVfdmFzcF9kZXRhaWxzX2luc3RhbmNlID0gVHJhdmVsUnVsZVVwZGF0ZVZBU1BEZXRhaWxzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRyYXZlbFJ1bGVVcGRhdGVWQVNQRGV0YWlscy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmF2ZWxfcnVsZV91cGRhdGVfdmFzcF9kZXRhaWxzX2RpY3QgPSB0cmF2ZWxfcnVsZV91cGRhdGVfdmFzcF9kZXRhaWxzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVXBkYXRlVkFTUERldGFpbHMgZnJvbSBhIGRpY3QKdHJhdmVsX3J1bGVfdXBkYXRlX3Zhc3BfZGV0YWlsc19mcm9tX2RpY3QgPSBUcmF2ZWxSdWxlVXBkYXRlVkFTUERldGFpbHMuZnJvbV9kaWN0KHRyYXZlbF9ydWxlX3VwZGF0ZV92YXNwX2RldGFpbHNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TravelRuleVASP.md b/docs/TravelRuleVASP.md index 818540b2..add5b695 100644 --- a/docs/TravelRuleVASP.md +++ b/docs/TravelRuleVASP.md @@ -1,74 +1 @@ -# TravelRuleVASP - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**did** | **str** | The Decentralized Identifier (DID) of the VASP. | -**name** | **str** | The name of the VASP. | -**verification_status** | **str** | The current verification status of the VASP. | -**address_line1** | **str** | The first line of the VASP's address. | -**address_line2** | **str** | The second line of the VASP's address (if applicable). | [optional] -**city** | **str** | The city where the VASP is located. | -**country** | **str** | The country where the VASP is registered (ISO-3166 Alpha-2 code). | -**email_domains** | **str** | Comma-separated list of email domains associated with the VASP. | -**website** | **str** | The official website of the VASP. | -**logo** | **str** | URL to the logo of the VASP. | [optional] -**legal_structure** | **str** | The legal structure of the VASP (e.g., Corporation, LLC). | -**legal_name** | **str** | The legal name of the VASP. | -**year_founded** | **str** | The year the VASP was founded. | -**incorporation_country** | **str** | The country where the VASP is incorporated (ISO-3166 Alpha-2 code). | -**is_regulated** | **str** | Indicates whether the VASP is regulated. | -**other_names** | **str** | Other names the VASP is known by. | [optional] -**identification_type** | **str** | The type of identification used by the VASP. | [optional] -**identification_country** | **str** | The country of identification for the VASP (ISO-3166 Alpha-2 code). | [optional] -**business_number** | **str** | The business registration number of the VASP. | [optional] -**regulatory_authorities** | **str** | The regulatory authorities overseeing the VASP. | [optional] -**jurisdictions** | **str** | The jurisdictions where the VASP operates. | -**street** | **str** | The street name where the VASP is located. | [optional] -**number** | **str** | The building number of the VASP's address. | [optional] -**unit** | **str** | The unit or suite number of the VASP's address. | [optional] -**post_code** | **str** | The postal code of the VASP's location. | [optional] -**state** | **str** | The state or region where the VASP is located. | [optional] -**certificates** | **str** | Certificates or licenses held by the VASP. | [optional] -**description** | **str** | A brief description of the VASP. | [optional] -**travel_rule_openvasp** | **str** | Travel rule compliance status for OpenVASP. | [optional] -**travel_rule_sygna** | **str** | Travel rule compliance status for Sygna. | [optional] -**travel_rule_trisa** | **str** | Travel rule compliance status for TRISA. | [optional] -**travel_rule_trlight** | **str** | Travel rule compliance status for TRLight. | -**travel_rule_email** | **str** | Travel rule compliance status for EMAIL. | [optional] -**travel_rule_trp** | **str** | Travel rule compliance status for TRP. | [optional] -**travel_rule_shyft** | **str** | Travel rule compliance status for Shyft. | [optional] -**travel_rule_ustravelrulewg** | **str** | Travel rule compliance status for US Travel Rule WG. | [optional] -**created_at** | **str** | Timestamp when the VASP record was created. | -**created_by** | **str** | User or system that created the VASP record. | [optional] -**updated_at** | **str** | Timestamp of the last update to the VASP record. | [optional] -**updated_by** | **str** | User or system that last updated the VASP record. | [optional] -**last_sent_date** | **str** | The last date a transaction was sent by the VASP. | [optional] -**last_received_date** | **str** | The last date a transaction was received by the VASP. | [optional] -**documents** | **str** | Documents associated with the VASP. | [optional] -**has_admin** | **bool** | Indicates if the VASP has an admin. | -**is_notifiable** | **bool** | Indicates if the VASP is notifiable for compliance reasons. | -**issuers** | [**TravelRuleIssuers**](TravelRuleIssuers.md) | | - -## Example - -```python -from fireblocks.models.travel_rule_vasp import TravelRuleVASP - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleVASP from a JSON string -travel_rule_vasp_instance = TravelRuleVASP.from_json(json) -# print the JSON string representation of the object -print(TravelRuleVASP.to_json()) - -# convert the object into a dict -travel_rule_vasp_dict = travel_rule_vasp_instance.to_dict() -# create an instance of TravelRuleVASP from a dict -travel_rule_vasp_from_dict = TravelRuleVASP.from_dict(travel_rule_vasp_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlVkFTUAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipkaWQqKiB8ICoqc3RyKiogfCBUaGUgRGVjZW50cmFsaXplZCBJZGVudGlmaWVyIChESUQpIG9mIHRoZSBWQVNQLiB8IAoqKm5hbWUqKiB8ICoqc3RyKiogfCBUaGUgbmFtZSBvZiB0aGUgVkFTUC4gfCAKKip2ZXJpZmljYXRpb25fc3RhdHVzKiogfCAqKnN0cioqIHwgVGhlIGN1cnJlbnQgdmVyaWZpY2F0aW9uIHN0YXR1cyBvZiB0aGUgVkFTUC4gfCAKKiphZGRyZXNzX2xpbmUxKiogfCAqKnN0cioqIHwgVGhlIGZpcnN0IGxpbmUgb2YgdGhlIFZBU1AmIzM5O3MgYWRkcmVzcy4gfCAKKiphZGRyZXNzX2xpbmUyKiogfCAqKnN0cioqIHwgVGhlIHNlY29uZCBsaW5lIG9mIHRoZSBWQVNQJiMzOTtzIGFkZHJlc3MgKGlmIGFwcGxpY2FibGUpLiB8IFtvcHRpb25hbF0gCioqY2l0eSoqIHwgKipzdHIqKiB8IFRoZSBjaXR5IHdoZXJlIHRoZSBWQVNQIGlzIGxvY2F0ZWQuIHwgCioqY291bnRyeSoqIHwgKipzdHIqKiB8IFRoZSBjb3VudHJ5IHdoZXJlIHRoZSBWQVNQIGlzIHJlZ2lzdGVyZWQgKElTTy0zMTY2IEFscGhhLTIgY29kZSkuIHwgCioqZW1haWxfZG9tYWlucyoqIHwgKipzdHIqKiB8IENvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGVtYWlsIGRvbWFpbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBWQVNQLiB8IAoqKndlYnNpdGUqKiB8ICoqc3RyKiogfCBUaGUgb2ZmaWNpYWwgd2Vic2l0ZSBvZiB0aGUgVkFTUC4gfCAKKipsb2dvKiogfCAqKnN0cioqIHwgVVJMIHRvIHRoZSBsb2dvIG9mIHRoZSBWQVNQLiB8IFtvcHRpb25hbF0gCioqbGVnYWxfc3RydWN0dXJlKiogfCAqKnN0cioqIHwgVGhlIGxlZ2FsIHN0cnVjdHVyZSBvZiB0aGUgVkFTUCAoZS5nLiwgQ29ycG9yYXRpb24sIExMQykuIHwgCioqbGVnYWxfbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBsZWdhbCBuYW1lIG9mIHRoZSBWQVNQLiB8IAoqKnllYXJfZm91bmRlZCoqIHwgKipzdHIqKiB8IFRoZSB5ZWFyIHRoZSBWQVNQIHdhcyBmb3VuZGVkLiB8IAoqKmluY29ycG9yYXRpb25fY291bnRyeSoqIHwgKipzdHIqKiB8IFRoZSBjb3VudHJ5IHdoZXJlIHRoZSBWQVNQIGlzIGluY29ycG9yYXRlZCAoSVNPLTMxNjYgQWxwaGEtMiBjb2RlKS4gfCAKKippc19yZWd1bGF0ZWQqKiB8ICoqc3RyKiogfCBJbmRpY2F0ZXMgd2hldGhlciB0aGUgVkFTUCBpcyByZWd1bGF0ZWQuIHwgCioqb3RoZXJfbmFtZXMqKiB8ICoqc3RyKiogfCBPdGhlciBuYW1lcyB0aGUgVkFTUCBpcyBrbm93biBieS4gfCBbb3B0aW9uYWxdIAoqKmlkZW50aWZpY2F0aW9uX3R5cGUqKiB8ICoqc3RyKiogfCBUaGUgdHlwZSBvZiBpZGVudGlmaWNhdGlvbiB1c2VkIGJ5IHRoZSBWQVNQLiB8IFtvcHRpb25hbF0gCioqaWRlbnRpZmljYXRpb25fY291bnRyeSoqIHwgKipzdHIqKiB8IFRoZSBjb3VudHJ5IG9mIGlkZW50aWZpY2F0aW9uIGZvciB0aGUgVkFTUCAoSVNPLTMxNjYgQWxwaGEtMiBjb2RlKS4gfCBbb3B0aW9uYWxdIAoqKmJ1c2luZXNzX251bWJlcioqIHwgKipzdHIqKiB8IFRoZSBidXNpbmVzcyByZWdpc3RyYXRpb24gbnVtYmVyIG9mIHRoZSBWQVNQLiB8IFtvcHRpb25hbF0gCioqcmVndWxhdG9yeV9hdXRob3JpdGllcyoqIHwgKipzdHIqKiB8IFRoZSByZWd1bGF0b3J5IGF1dGhvcml0aWVzIG92ZXJzZWVpbmcgdGhlIFZBU1AuIHwgW29wdGlvbmFsXSAKKipqdXJpc2RpY3Rpb25zKiogfCAqKnN0cioqIHwgVGhlIGp1cmlzZGljdGlvbnMgd2hlcmUgdGhlIFZBU1Agb3BlcmF0ZXMuIHwgCioqc3RyZWV0KiogfCAqKnN0cioqIHwgVGhlIHN0cmVldCBuYW1lIHdoZXJlIHRoZSBWQVNQIGlzIGxvY2F0ZWQuIHwgW29wdGlvbmFsXSAKKipudW1iZXIqKiB8ICoqc3RyKiogfCBUaGUgYnVpbGRpbmcgbnVtYmVyIG9mIHRoZSBWQVNQJiMzOTtzIGFkZHJlc3MuIHwgW29wdGlvbmFsXSAKKip1bml0KiogfCAqKnN0cioqIHwgVGhlIHVuaXQgb3Igc3VpdGUgbnVtYmVyIG9mIHRoZSBWQVNQJiMzOTtzIGFkZHJlc3MuIHwgW29wdGlvbmFsXSAKKipwb3N0X2NvZGUqKiB8ICoqc3RyKiogfCBUaGUgcG9zdGFsIGNvZGUgb2YgdGhlIFZBU1AmIzM5O3MgbG9jYXRpb24uIHwgW29wdGlvbmFsXSAKKipzdGF0ZSoqIHwgKipzdHIqKiB8IFRoZSBzdGF0ZSBvciByZWdpb24gd2hlcmUgdGhlIFZBU1AgaXMgbG9jYXRlZC4gfCBbb3B0aW9uYWxdIAoqKmNlcnRpZmljYXRlcyoqIHwgKipzdHIqKiB8IENlcnRpZmljYXRlcyBvciBsaWNlbnNlcyBoZWxkIGJ5IHRoZSBWQVNQLiB8IFtvcHRpb25hbF0gCioqZGVzY3JpcHRpb24qKiB8ICoqc3RyKiogfCBBIGJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSBWQVNQLiB8IFtvcHRpb25hbF0gCioqdHJhdmVsX3J1bGVfb3BlbnZhc3AqKiB8ICoqc3RyKiogfCBUcmF2ZWwgcnVsZSBjb21wbGlhbmNlIHN0YXR1cyBmb3IgT3BlblZBU1AuIHwgW29wdGlvbmFsXSAKKip0cmF2ZWxfcnVsZV9zeWduYSoqIHwgKipzdHIqKiB8IFRyYXZlbCBydWxlIGNvbXBsaWFuY2Ugc3RhdHVzIGZvciBTeWduYS4gfCBbb3B0aW9uYWxdIAoqKnRyYXZlbF9ydWxlX3RyaXNhKiogfCAqKnN0cioqIHwgVHJhdmVsIHJ1bGUgY29tcGxpYW5jZSBzdGF0dXMgZm9yIFRSSVNBLiB8IFtvcHRpb25hbF0gCioqdHJhdmVsX3J1bGVfdHJsaWdodCoqIHwgKipzdHIqKiB8IFRyYXZlbCBydWxlIGNvbXBsaWFuY2Ugc3RhdHVzIGZvciBUUkxpZ2h0LiB8IAoqKnRyYXZlbF9ydWxlX2VtYWlsKiogfCAqKnN0cioqIHwgVHJhdmVsIHJ1bGUgY29tcGxpYW5jZSBzdGF0dXMgZm9yIEVNQUlMLiB8IFtvcHRpb25hbF0gCioqdHJhdmVsX3J1bGVfdHJwKiogfCAqKnN0cioqIHwgVHJhdmVsIHJ1bGUgY29tcGxpYW5jZSBzdGF0dXMgZm9yIFRSUC4gfCBbb3B0aW9uYWxdIAoqKnRyYXZlbF9ydWxlX3NoeWZ0KiogfCAqKnN0cioqIHwgVHJhdmVsIHJ1bGUgY29tcGxpYW5jZSBzdGF0dXMgZm9yIFNoeWZ0LiB8IFtvcHRpb25hbF0gCioqdHJhdmVsX3J1bGVfdXN0cmF2ZWxydWxld2cqKiB8ICoqc3RyKiogfCBUcmF2ZWwgcnVsZSBjb21wbGlhbmNlIHN0YXR1cyBmb3IgVVMgVHJhdmVsIFJ1bGUgV0cuIHwgW29wdGlvbmFsXSAKKipjcmVhdGVkX2F0KiogfCAqKnN0cioqIHwgVGltZXN0YW1wIHdoZW4gdGhlIFZBU1AgcmVjb3JkIHdhcyBjcmVhdGVkLiB8IAoqKmNyZWF0ZWRfYnkqKiB8ICoqc3RyKiogfCBVc2VyIG9yIHN5c3RlbSB0aGF0IGNyZWF0ZWQgdGhlIFZBU1AgcmVjb3JkLiB8IFtvcHRpb25hbF0gCioqdXBkYXRlZF9hdCoqIHwgKipzdHIqKiB8IFRpbWVzdGFtcCBvZiB0aGUgbGFzdCB1cGRhdGUgdG8gdGhlIFZBU1AgcmVjb3JkLiB8IFtvcHRpb25hbF0gCioqdXBkYXRlZF9ieSoqIHwgKipzdHIqKiB8IFVzZXIgb3Igc3lzdGVtIHRoYXQgbGFzdCB1cGRhdGVkIHRoZSBWQVNQIHJlY29yZC4gfCBbb3B0aW9uYWxdIAoqKmxhc3Rfc2VudF9kYXRlKiogfCAqKnN0cioqIHwgVGhlIGxhc3QgZGF0ZSBhIHRyYW5zYWN0aW9uIHdhcyBzZW50IGJ5IHRoZSBWQVNQLiB8IFtvcHRpb25hbF0gCioqbGFzdF9yZWNlaXZlZF9kYXRlKiogfCAqKnN0cioqIHwgVGhlIGxhc3QgZGF0ZSBhIHRyYW5zYWN0aW9uIHdhcyByZWNlaXZlZCBieSB0aGUgVkFTUC4gfCBbb3B0aW9uYWxdIAoqKmRvY3VtZW50cyoqIHwgKipzdHIqKiB8IERvY3VtZW50cyBhc3NvY2lhdGVkIHdpdGggdGhlIFZBU1AuIHwgW29wdGlvbmFsXSAKKipoYXNfYWRtaW4qKiB8ICoqYm9vbCoqIHwgSW5kaWNhdGVzIGlmIHRoZSBWQVNQIGhhcyBhbiBhZG1pbi4gfCAKKippc19ub3RpZmlhYmxlKiogfCAqKmJvb2wqKiB8IEluZGljYXRlcyBpZiB0aGUgVkFTUCBpcyBub3RpZmlhYmxlIGZvciBjb21wbGlhbmNlIHJlYXNvbnMuIHwgCioqaXNzdWVycyoqIHwgWyoqVHJhdmVsUnVsZUlzc3VlcnMqKl0oVHJhdmVsUnVsZUlzc3VlcnMubWQpIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YXNwIGltcG9ydCBUcmF2ZWxSdWxlVkFTUAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVZBU1AgZnJvbSBhIEpTT04gc3RyaW5nCnRyYXZlbF9ydWxlX3Zhc3BfaW5zdGFuY2UgPSBUcmF2ZWxSdWxlVkFTUC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmF2ZWxSdWxlVkFTUC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmF2ZWxfcnVsZV92YXNwX2RpY3QgPSB0cmF2ZWxfcnVsZV92YXNwX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVkFTUCBmcm9tIGEgZGljdAp0cmF2ZWxfcnVsZV92YXNwX2Zyb21fZGljdCA9IFRyYXZlbFJ1bGVWQVNQLmZyb21fZGljdCh0cmF2ZWxfcnVsZV92YXNwX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TravelRuleValidateDateAndPlaceOfBirth.md b/docs/TravelRuleValidateDateAndPlaceOfBirth.md index aff1c595..d27049df 100644 --- a/docs/TravelRuleValidateDateAndPlaceOfBirth.md +++ b/docs/TravelRuleValidateDateAndPlaceOfBirth.md @@ -1,31 +1 @@ -# TravelRuleValidateDateAndPlaceOfBirth - -Represents the date and place of birth for a natural person - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**date_of_birth** | **str** | Date of birth in ISO 8601 format (YYYY-MM-DD) | [optional] -**place_of_birth** | **str** | Place of birth | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_validate_date_and_place_of_birth import TravelRuleValidateDateAndPlaceOfBirth - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleValidateDateAndPlaceOfBirth from a JSON string -travel_rule_validate_date_and_place_of_birth_instance = TravelRuleValidateDateAndPlaceOfBirth.from_json(json) -# print the JSON string representation of the object -print(TravelRuleValidateDateAndPlaceOfBirth.to_json()) - -# convert the object into a dict -travel_rule_validate_date_and_place_of_birth_dict = travel_rule_validate_date_and_place_of_birth_instance.to_dict() -# create an instance of TravelRuleValidateDateAndPlaceOfBirth from a dict -travel_rule_validate_date_and_place_of_birth_from_dict = TravelRuleValidateDateAndPlaceOfBirth.from_dict(travel_rule_validate_date_and_place_of_birth_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlVmFsaWRhdGVEYXRlQW5kUGxhY2VPZkJpcnRoCgpSZXByZXNlbnRzIHRoZSBkYXRlIGFuZCBwbGFjZSBvZiBiaXJ0aCBmb3IgYSBuYXR1cmFsIHBlcnNvbgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmRhdGVfb2ZfYmlydGgqKiB8ICoqc3RyKiogfCBEYXRlIG9mIGJpcnRoIGluIElTTyA4NjAxIGZvcm1hdCAoWVlZWS1NTS1ERCkgfCBbb3B0aW9uYWxdIAoqKnBsYWNlX29mX2JpcnRoKiogfCAqKnN0cioqIHwgUGxhY2Ugb2YgYmlydGggfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGggaW1wb3J0IFRyYXZlbFJ1bGVWYWxpZGF0ZURhdGVBbmRQbGFjZU9mQmlydGgKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWYWxpZGF0ZURhdGVBbmRQbGFjZU9mQmlydGggZnJvbSBhIEpTT04gc3RyaW5nCnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2RhdGVfYW5kX3BsYWNlX29mX2JpcnRoX2luc3RhbmNlID0gVHJhdmVsUnVsZVZhbGlkYXRlRGF0ZUFuZFBsYWNlT2ZCaXJ0aC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmF2ZWxSdWxlVmFsaWRhdGVEYXRlQW5kUGxhY2VPZkJpcnRoLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2RhdGVfYW5kX3BsYWNlX29mX2JpcnRoX2RpY3QgPSB0cmF2ZWxfcnVsZV92YWxpZGF0ZV9kYXRlX2FuZF9wbGFjZV9vZl9iaXJ0aF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVZhbGlkYXRlRGF0ZUFuZFBsYWNlT2ZCaXJ0aCBmcm9tIGEgZGljdAp0cmF2ZWxfcnVsZV92YWxpZGF0ZV9kYXRlX2FuZF9wbGFjZV9vZl9iaXJ0aF9mcm9tX2RpY3QgPSBUcmF2ZWxSdWxlVmFsaWRhdGVEYXRlQW5kUGxhY2VPZkJpcnRoLmZyb21fZGljdCh0cmF2ZWxfcnVsZV92YWxpZGF0ZV9kYXRlX2FuZF9wbGFjZV9vZl9iaXJ0aF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TravelRuleValidateFullTransactionRequest.md b/docs/TravelRuleValidateFullTransactionRequest.md index fae8e27c..be822ecd 100644 --- a/docs/TravelRuleValidateFullTransactionRequest.md +++ b/docs/TravelRuleValidateFullTransactionRequest.md @@ -1,52 +1 @@ -# TravelRuleValidateFullTransactionRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**originator_vas_pdid** | **str** | The Decentralized Identifier (DID) of the exchange (VASP) that is sending the virtual assets. This identifier is unique to the exchange and is generated when the exchange's account is created in the Notabene network. | [optional] -**beneficiary_vas_pdid** | **str** | The Decentralized Identifier (DID) of the exchange (VASP) that is receiving the virtual assets. This identifier is unique to the exchange and is generated when the exchange's account is created in the Notabene network. | [optional] -**transaction_asset** | **str** | Transaction asset symbol (e.g., BTC, ETH, USDC). By using the `notation` query string, users can select the type of asset notation: - `fireblocks`: Converts asset symbols to Fireblocks notation. - `notabene`: Retains the original Notabene asset symbol format. | [optional] -**transaction_amount** | **str** | Transaction amount in the transaction asset. For example, if the asset is BTC, the amount is the value in BTC units. By using the `notation` query string, users can select the type of amount notation: - `fireblocks`: Converts the amount to Fireblocks notation (e.g., adjusted for decimals). - `notabene`: Retains the original Notabene amount format. | [optional] -**originator_vas_pname** | **str** | The name of the VASP acting as the transaction originator. | [optional] -**beneficiary_vas_pname** | **str** | The name of the VASP acting as the transaction beneficiary. | [optional] -**transaction_blockchain_info** | [**TravelRuleTransactionBlockchainInfo**](TravelRuleTransactionBlockchainInfo.md) | | [optional] -**originator** | [**TravelRuleValidatePiiIVMS**](TravelRuleValidatePiiIVMS.md) | | -**beneficiary** | [**TravelRuleValidatePiiIVMS**](TravelRuleValidatePiiIVMS.md) | | -**encrypted** | **str** | Encrypted data related to the transaction. | [optional] -**protocol** | **str** | The protocol used to perform the travel rule. | [optional] -**skip_beneficiary_data_validation** | **bool** | Whether to skip validation of beneficiary data. | [optional] -**travel_rule_behavior** | **bool** | Whether to check if the transaction complies with the travel rule in the beneficiary VASP's jurisdiction. | [optional] -**originator_ref** | **str** | A reference ID related to the originator of the transaction. | [optional] -**beneficiary_ref** | **str** | A reference ID related to the beneficiary of the transaction. | [optional] -**travel_rule_behavior_ref** | **str** | A reference ID related to the travel rule behavior. | [optional] -**originator_proof** | [**TravelRuleOwnershipProof**](TravelRuleOwnershipProof.md) | | [optional] -**beneficiary_proof** | [**TravelRuleOwnershipProof**](TravelRuleOwnershipProof.md) | | [optional] -**beneficiary_did** | **str** | The Decentralized Identifier (DID) of the person at the receiving exchange (VASP). This identifier is generated when the customer is registered in the Notabene network, or automatically created based on the `beneficiaryRef`. - If neither `beneficiaryRef` nor `beneficiaryDid` is provided in the `txCreate` payload, a new random DID is generated for every transaction. | [optional] -**originator_did** | **str** | The Decentralized Identifier (DID) of the person at the exchange (VASP) who is requesting the withdrawal. This identifier is generated when the customer is registered in the Notabene network or automatically created based on the `originatorRef`. - If neither `originatorRef` nor `originatorDid` is provided in the `txCreate` payload, a new random DID is generated for every transaction. | [optional] -**is_non_custodial** | **bool** | Indicates if the transaction involves a non-custodial wallet. | [optional] -**notification_email** | **str** | The email address where a notification should be sent upon completion of the travel rule | [optional] -**pii** | [**TravelRulePiiIVMS**](TravelRulePiiIVMS.md) | | [optional] -**pii_url** | **str** | The URL of the personal identifiable information related to the transaction | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_validate_full_transaction_request import TravelRuleValidateFullTransactionRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleValidateFullTransactionRequest from a JSON string -travel_rule_validate_full_transaction_request_instance = TravelRuleValidateFullTransactionRequest.from_json(json) -# print the JSON string representation of the object -print(TravelRuleValidateFullTransactionRequest.to_json()) - -# convert the object into a dict -travel_rule_validate_full_transaction_request_dict = travel_rule_validate_full_transaction_request_instance.to_dict() -# create an instance of TravelRuleValidateFullTransactionRequest from a dict -travel_rule_validate_full_transaction_request_from_dict = TravelRuleValidateFullTransactionRequest.from_dict(travel_rule_validate_full_transaction_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlVmFsaWRhdGVGdWxsVHJhbnNhY3Rpb25SZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm9yaWdpbmF0b3JfdmFzX3BkaWQqKiB8ICoqc3RyKiogfCBUaGUgRGVjZW50cmFsaXplZCBJZGVudGlmaWVyIChESUQpIG9mIHRoZSBleGNoYW5nZSAoVkFTUCkgdGhhdCBpcyBzZW5kaW5nIHRoZSB2aXJ0dWFsIGFzc2V0cy4gVGhpcyBpZGVudGlmaWVyIGlzIHVuaXF1ZSB0byB0aGUgZXhjaGFuZ2UgYW5kIGlzIGdlbmVyYXRlZCB3aGVuIHRoZSBleGNoYW5nZSYjMzk7cyBhY2NvdW50IGlzICBjcmVhdGVkIGluIHRoZSBOb3RhYmVuZSBuZXR3b3JrLiB8IFtvcHRpb25hbF0gCioqYmVuZWZpY2lhcnlfdmFzX3BkaWQqKiB8ICoqc3RyKiogfCBUaGUgRGVjZW50cmFsaXplZCBJZGVudGlmaWVyIChESUQpIG9mIHRoZSBleGNoYW5nZSAoVkFTUCkgdGhhdCBpcyByZWNlaXZpbmcgdGhlIHZpcnR1YWwgYXNzZXRzLiBUaGlzIGlkZW50aWZpZXIgaXMgdW5pcXVlIHRvIHRoZSBleGNoYW5nZSBhbmQgaXMgZ2VuZXJhdGVkIHdoZW4gdGhlIGV4Y2hhbmdlJiMzOTtzIGFjY291bnQgaXMgIGNyZWF0ZWQgaW4gdGhlIE5vdGFiZW5lIG5ldHdvcmsuIHwgW29wdGlvbmFsXSAKKip0cmFuc2FjdGlvbl9hc3NldCoqIHwgKipzdHIqKiB8IFRyYW5zYWN0aW9uIGFzc2V0IHN5bWJvbCAoZS5nLiwgQlRDLCBFVEgsIFVTREMpLiAgQnkgdXNpbmcgdGhlICYjeDYwO25vdGF0aW9uJiN4NjA7IHF1ZXJ5IHN0cmluZywgdXNlcnMgY2FuIHNlbGVjdCB0aGUgdHlwZSBvZiBhc3NldCBub3RhdGlvbjogLSAmI3g2MDtmaXJlYmxvY2tzJiN4NjA7OiBDb252ZXJ0cyBhc3NldCBzeW1ib2xzIHRvIEZpcmVibG9ja3Mgbm90YXRpb24uIC0gJiN4NjA7bm90YWJlbmUmI3g2MDs6IFJldGFpbnMgdGhlIG9yaWdpbmFsIE5vdGFiZW5lIGFzc2V0IHN5bWJvbCBmb3JtYXQuIHwgW29wdGlvbmFsXSAKKip0cmFuc2FjdGlvbl9hbW91bnQqKiB8ICoqc3RyKiogfCBUcmFuc2FjdGlvbiBhbW91bnQgaW4gdGhlIHRyYW5zYWN0aW9uIGFzc2V0LiBGb3IgZXhhbXBsZSwgaWYgdGhlIGFzc2V0IGlzIEJUQywgdGhlIGFtb3VudCAgaXMgdGhlIHZhbHVlIGluIEJUQyB1bml0cy4gIEJ5IHVzaW5nIHRoZSAmI3g2MDtub3RhdGlvbiYjeDYwOyBxdWVyeSBzdHJpbmcsIHVzZXJzIGNhbiBzZWxlY3QgdGhlIHR5cGUgb2YgYW1vdW50IG5vdGF0aW9uOiAtICYjeDYwO2ZpcmVibG9ja3MmI3g2MDs6IENvbnZlcnRzIHRoZSBhbW91bnQgdG8gRmlyZWJsb2NrcyBub3RhdGlvbiAoZS5nLiwgYWRqdXN0ZWQgZm9yIGRlY2ltYWxzKS4gLSAmI3g2MDtub3RhYmVuZSYjeDYwOzogUmV0YWlucyB0aGUgb3JpZ2luYWwgTm90YWJlbmUgYW1vdW50IGZvcm1hdC4gfCBbb3B0aW9uYWxdIAoqKm9yaWdpbmF0b3JfdmFzX3BuYW1lKiogfCAqKnN0cioqIHwgVGhlIG5hbWUgb2YgdGhlIFZBU1AgYWN0aW5nIGFzIHRoZSB0cmFuc2FjdGlvbiBvcmlnaW5hdG9yLiB8IFtvcHRpb25hbF0gCioqYmVuZWZpY2lhcnlfdmFzX3BuYW1lKiogfCAqKnN0cioqIHwgVGhlIG5hbWUgb2YgdGhlIFZBU1AgYWN0aW5nIGFzIHRoZSB0cmFuc2FjdGlvbiBiZW5lZmljaWFyeS4gfCBbb3B0aW9uYWxdIAoqKnRyYW5zYWN0aW9uX2Jsb2NrY2hhaW5faW5mbyoqIHwgWyoqVHJhdmVsUnVsZVRyYW5zYWN0aW9uQmxvY2tjaGFpbkluZm8qKl0oVHJhdmVsUnVsZVRyYW5zYWN0aW9uQmxvY2tjaGFpbkluZm8ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipvcmlnaW5hdG9yKiogfCBbKipUcmF2ZWxSdWxlVmFsaWRhdGVQaWlJVk1TKipdKFRyYXZlbFJ1bGVWYWxpZGF0ZVBpaUlWTVMubWQpIHwgIHwgCioqYmVuZWZpY2lhcnkqKiB8IFsqKlRyYXZlbFJ1bGVWYWxpZGF0ZVBpaUlWTVMqKl0oVHJhdmVsUnVsZVZhbGlkYXRlUGlpSVZNUy5tZCkgfCAgfCAKKiplbmNyeXB0ZWQqKiB8ICoqc3RyKiogfCBFbmNyeXB0ZWQgZGF0YSByZWxhdGVkIHRvIHRoZSB0cmFuc2FjdGlvbi4gfCBbb3B0aW9uYWxdIAoqKnByb3RvY29sKiogfCAqKnN0cioqIHwgVGhlIHByb3RvY29sIHVzZWQgdG8gcGVyZm9ybSB0aGUgdHJhdmVsIHJ1bGUuIHwgW29wdGlvbmFsXSAKKipza2lwX2JlbmVmaWNpYXJ5X2RhdGFfdmFsaWRhdGlvbioqIHwgKipib29sKiogfCBXaGV0aGVyIHRvIHNraXAgdmFsaWRhdGlvbiBvZiBiZW5lZmljaWFyeSBkYXRhLiB8IFtvcHRpb25hbF0gCioqdHJhdmVsX3J1bGVfYmVoYXZpb3IqKiB8ICoqYm9vbCoqIHwgV2hldGhlciB0byBjaGVjayBpZiB0aGUgdHJhbnNhY3Rpb24gY29tcGxpZXMgd2l0aCB0aGUgdHJhdmVsIHJ1bGUgaW4gdGhlIGJlbmVmaWNpYXJ5IFZBU1AmIzM5O3MganVyaXNkaWN0aW9uLiB8IFtvcHRpb25hbF0gCioqb3JpZ2luYXRvcl9yZWYqKiB8ICoqc3RyKiogfCBBIHJlZmVyZW5jZSBJRCByZWxhdGVkIHRvIHRoZSBvcmlnaW5hdG9yIG9mIHRoZSB0cmFuc2FjdGlvbi4gfCBbb3B0aW9uYWxdIAoqKmJlbmVmaWNpYXJ5X3JlZioqIHwgKipzdHIqKiB8IEEgcmVmZXJlbmNlIElEIHJlbGF0ZWQgdG8gdGhlIGJlbmVmaWNpYXJ5IG9mIHRoZSB0cmFuc2FjdGlvbi4gfCBbb3B0aW9uYWxdIAoqKnRyYXZlbF9ydWxlX2JlaGF2aW9yX3JlZioqIHwgKipzdHIqKiB8IEEgcmVmZXJlbmNlIElEIHJlbGF0ZWQgdG8gdGhlIHRyYXZlbCBydWxlIGJlaGF2aW9yLiB8IFtvcHRpb25hbF0gCioqb3JpZ2luYXRvcl9wcm9vZioqIHwgWyoqVHJhdmVsUnVsZU93bmVyc2hpcFByb29mKipdKFRyYXZlbFJ1bGVPd25lcnNoaXBQcm9vZi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmJlbmVmaWNpYXJ5X3Byb29mKiogfCBbKipUcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2YqKl0oVHJhdmVsUnVsZU93bmVyc2hpcFByb29mLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqYmVuZWZpY2lhcnlfZGlkKiogfCAqKnN0cioqIHwgVGhlIERlY2VudHJhbGl6ZWQgSWRlbnRpZmllciAoRElEKSBvZiB0aGUgcGVyc29uIGF0IHRoZSByZWNlaXZpbmcgZXhjaGFuZ2UgKFZBU1ApLiAgVGhpcyBpZGVudGlmaWVyIGlzIGdlbmVyYXRlZCB3aGVuIHRoZSBjdXN0b21lciBpcyByZWdpc3RlcmVkIGluIHRoZSBOb3RhYmVuZSBuZXR3b3JrLCAgb3IgYXV0b21hdGljYWxseSBjcmVhdGVkIGJhc2VkIG9uIHRoZSAmI3g2MDtiZW5lZmljaWFyeVJlZiYjeDYwOy4gIC0gSWYgbmVpdGhlciAmI3g2MDtiZW5lZmljaWFyeVJlZiYjeDYwOyBub3IgJiN4NjA7YmVuZWZpY2lhcnlEaWQmI3g2MDsgaXMgcHJvdmlkZWQgaW4gdGhlICYjeDYwO3R4Q3JlYXRlJiN4NjA7IHBheWxvYWQsICAgIGEgbmV3IHJhbmRvbSBESUQgaXMgZ2VuZXJhdGVkIGZvciBldmVyeSB0cmFuc2FjdGlvbi4gfCBbb3B0aW9uYWxdIAoqKm9yaWdpbmF0b3JfZGlkKiogfCAqKnN0cioqIHwgVGhlIERlY2VudHJhbGl6ZWQgSWRlbnRpZmllciAoRElEKSBvZiB0aGUgcGVyc29uIGF0IHRoZSBleGNoYW5nZSAoVkFTUCkgd2hvIGlzIHJlcXVlc3RpbmcgdGhlIHdpdGhkcmF3YWwuIFRoaXMgaWRlbnRpZmllciBpcyBnZW5lcmF0ZWQgd2hlbiB0aGUgY3VzdG9tZXIgaXMgcmVnaXN0ZXJlZCBpbiB0aGUgTm90YWJlbmUgbmV0d29yayBvciBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgYmFzZWQgb24gdGhlICYjeDYwO29yaWdpbmF0b3JSZWYmI3g2MDsuICAtIElmIG5laXRoZXIgJiN4NjA7b3JpZ2luYXRvclJlZiYjeDYwOyBub3IgJiN4NjA7b3JpZ2luYXRvckRpZCYjeDYwOyBpcyBwcm92aWRlZCBpbiB0aGUgJiN4NjA7dHhDcmVhdGUmI3g2MDsgcGF5bG9hZCwgICAgYSBuZXcgcmFuZG9tIERJRCBpcyBnZW5lcmF0ZWQgZm9yIGV2ZXJ5IHRyYW5zYWN0aW9uLiB8IFtvcHRpb25hbF0gCioqaXNfbm9uX2N1c3RvZGlhbCoqIHwgKipib29sKiogfCBJbmRpY2F0ZXMgaWYgdGhlIHRyYW5zYWN0aW9uIGludm9sdmVzIGEgbm9uLWN1c3RvZGlhbCB3YWxsZXQuIHwgW29wdGlvbmFsXSAKKipub3RpZmljYXRpb25fZW1haWwqKiB8ICoqc3RyKiogfCBUaGUgZW1haWwgYWRkcmVzcyB3aGVyZSBhIG5vdGlmaWNhdGlvbiBzaG91bGQgYmUgc2VudCB1cG9uIGNvbXBsZXRpb24gb2YgdGhlIHRyYXZlbCBydWxlIHwgW29wdGlvbmFsXSAKKipwaWkqKiB8IFsqKlRyYXZlbFJ1bGVQaWlJVk1TKipdKFRyYXZlbFJ1bGVQaWlJVk1TLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqcGlpX3VybCoqIHwgKipzdHIqKiB8IFRoZSBVUkwgb2YgdGhlIHBlcnNvbmFsIGlkZW50aWZpYWJsZSBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIHRoZSB0cmFuc2FjdGlvbiB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9mdWxsX3RyYW5zYWN0aW9uX3JlcXVlc3QgaW1wb3J0IFRyYXZlbFJ1bGVWYWxpZGF0ZUZ1bGxUcmFuc2FjdGlvblJlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWYWxpZGF0ZUZ1bGxUcmFuc2FjdGlvblJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2Z1bGxfdHJhbnNhY3Rpb25fcmVxdWVzdF9pbnN0YW5jZSA9IFRyYXZlbFJ1bGVWYWxpZGF0ZUZ1bGxUcmFuc2FjdGlvblJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhdmVsUnVsZVZhbGlkYXRlRnVsbFRyYW5zYWN0aW9uUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmF2ZWxfcnVsZV92YWxpZGF0ZV9mdWxsX3RyYW5zYWN0aW9uX3JlcXVlc3RfZGljdCA9IHRyYXZlbF9ydWxlX3ZhbGlkYXRlX2Z1bGxfdHJhbnNhY3Rpb25fcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVZhbGlkYXRlRnVsbFRyYW5zYWN0aW9uUmVxdWVzdCBmcm9tIGEgZGljdAp0cmF2ZWxfcnVsZV92YWxpZGF0ZV9mdWxsX3RyYW5zYWN0aW9uX3JlcXVlc3RfZnJvbV9kaWN0ID0gVHJhdmVsUnVsZVZhbGlkYXRlRnVsbFRyYW5zYWN0aW9uUmVxdWVzdC5mcm9tX2RpY3QodHJhdmVsX3J1bGVfdmFsaWRhdGVfZnVsbF90cmFuc2FjdGlvbl9yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TravelRuleValidateGeographicAddress.md b/docs/TravelRuleValidateGeographicAddress.md index 44596b5b..6e41eab0 100644 --- a/docs/TravelRuleValidateGeographicAddress.md +++ b/docs/TravelRuleValidateGeographicAddress.md @@ -1,44 +1 @@ -# TravelRuleValidateGeographicAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**street_name** | **str** | Name of a street or thoroughfare | [optional] -**town_name** | **str** | Name of a built-up area, with defined boundaries, and a local government | [optional] -**country** | **str** | Nation with its own government (ISO-3166 Alpha-2 country code) | [optional] -**building_number** | **str** | Number that identifies the position of a building on a street | [optional] -**post_code** | **str** | Identifier consisting of a group of letters and/or numbers added to a postal address to assist the sorting of mail | [optional] -**address_type** | **str** | Specifies the type of address. Acceptable values are: - 'HOME': Residential, the home address - 'BIZZ': Business, the business address - 'GEOG': Geographic, an unspecified physical (geographical) address | [optional] -**department** | **str** | Identification of a division of a large organisation or building | [optional] -**sub_department** | **str** | Identification of a sub-division of a large organisation or building | [optional] -**building_name** | **str** | Name of the building or house | [optional] -**floor** | **str** | Floor or storey within a building | [optional] -**post_box** | **str** | Numbered box in a post office | [optional] -**room** | **str** | Building room number | [optional] -**town_location_name** | **str** | Specific location name within the town | [optional] -**district_name** | **str** | Identifies a subdivision within a country subdivision | [optional] -**country_sub_division** | **str** | Identifies a subdivision of a country such as state, region, or province | [optional] -**address_line** | **List[str]** | Information that locates and identifies a specific address, presented in free format text | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_validate_geographic_address import TravelRuleValidateGeographicAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleValidateGeographicAddress from a JSON string -travel_rule_validate_geographic_address_instance = TravelRuleValidateGeographicAddress.from_json(json) -# print the JSON string representation of the object -print(TravelRuleValidateGeographicAddress.to_json()) - -# convert the object into a dict -travel_rule_validate_geographic_address_dict = travel_rule_validate_geographic_address_instance.to_dict() -# create an instance of TravelRuleValidateGeographicAddress from a dict -travel_rule_validate_geographic_address_from_dict = TravelRuleValidateGeographicAddress.from_dict(travel_rule_validate_geographic_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlVmFsaWRhdGVHZW9ncmFwaGljQWRkcmVzcwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzdHJlZXRfbmFtZSoqIHwgKipzdHIqKiB8IE5hbWUgb2YgYSBzdHJlZXQgb3IgdGhvcm91Z2hmYXJlIHwgW29wdGlvbmFsXSAKKip0b3duX25hbWUqKiB8ICoqc3RyKiogfCBOYW1lIG9mIGEgYnVpbHQtdXAgYXJlYSwgd2l0aCBkZWZpbmVkIGJvdW5kYXJpZXMsIGFuZCBhIGxvY2FsIGdvdmVybm1lbnQgfCBbb3B0aW9uYWxdIAoqKmNvdW50cnkqKiB8ICoqc3RyKiogfCBOYXRpb24gd2l0aCBpdHMgb3duIGdvdmVybm1lbnQgKElTTy0zMTY2IEFscGhhLTIgY291bnRyeSBjb2RlKSB8IFtvcHRpb25hbF0gCioqYnVpbGRpbmdfbnVtYmVyKiogfCAqKnN0cioqIHwgTnVtYmVyIHRoYXQgaWRlbnRpZmllcyB0aGUgcG9zaXRpb24gb2YgYSBidWlsZGluZyBvbiBhIHN0cmVldCB8IFtvcHRpb25hbF0gCioqcG9zdF9jb2RlKiogfCAqKnN0cioqIHwgSWRlbnRpZmllciBjb25zaXN0aW5nIG9mIGEgZ3JvdXAgb2YgbGV0dGVycyBhbmQvb3IgbnVtYmVycyBhZGRlZCB0byBhIHBvc3RhbCBhZGRyZXNzIHRvIGFzc2lzdCB0aGUgc29ydGluZyBvZiBtYWlsIHwgW29wdGlvbmFsXSAKKiphZGRyZXNzX3R5cGUqKiB8ICoqc3RyKiogfCBTcGVjaWZpZXMgdGhlIHR5cGUgb2YgYWRkcmVzcy4gQWNjZXB0YWJsZSB2YWx1ZXMgYXJlOiAtICYjMzk7SE9NRSYjMzk7OiBSZXNpZGVudGlhbCwgdGhlIGhvbWUgYWRkcmVzcyAtICYjMzk7QklaWiYjMzk7OiBCdXNpbmVzcywgdGhlIGJ1c2luZXNzIGFkZHJlc3MgLSAmIzM5O0dFT0cmIzM5OzogR2VvZ3JhcGhpYywgYW4gdW5zcGVjaWZpZWQgcGh5c2ljYWwgKGdlb2dyYXBoaWNhbCkgYWRkcmVzcyB8IFtvcHRpb25hbF0gCioqZGVwYXJ0bWVudCoqIHwgKipzdHIqKiB8IElkZW50aWZpY2F0aW9uIG9mIGEgZGl2aXNpb24gb2YgYSBsYXJnZSBvcmdhbmlzYXRpb24gb3IgYnVpbGRpbmcgfCBbb3B0aW9uYWxdIAoqKnN1Yl9kZXBhcnRtZW50KiogfCAqKnN0cioqIHwgSWRlbnRpZmljYXRpb24gb2YgYSBzdWItZGl2aXNpb24gb2YgYSBsYXJnZSBvcmdhbmlzYXRpb24gb3IgYnVpbGRpbmcgfCBbb3B0aW9uYWxdIAoqKmJ1aWxkaW5nX25hbWUqKiB8ICoqc3RyKiogfCBOYW1lIG9mIHRoZSBidWlsZGluZyBvciBob3VzZSB8IFtvcHRpb25hbF0gCioqZmxvb3IqKiB8ICoqc3RyKiogfCBGbG9vciBvciBzdG9yZXkgd2l0aGluIGEgYnVpbGRpbmcgfCBbb3B0aW9uYWxdIAoqKnBvc3RfYm94KiogfCAqKnN0cioqIHwgTnVtYmVyZWQgYm94IGluIGEgcG9zdCBvZmZpY2UgfCBbb3B0aW9uYWxdIAoqKnJvb20qKiB8ICoqc3RyKiogfCBCdWlsZGluZyByb29tIG51bWJlciB8IFtvcHRpb25hbF0gCioqdG93bl9sb2NhdGlvbl9uYW1lKiogfCAqKnN0cioqIHwgU3BlY2lmaWMgbG9jYXRpb24gbmFtZSB3aXRoaW4gdGhlIHRvd24gfCBbb3B0aW9uYWxdIAoqKmRpc3RyaWN0X25hbWUqKiB8ICoqc3RyKiogfCBJZGVudGlmaWVzIGEgc3ViZGl2aXNpb24gd2l0aGluIGEgY291bnRyeSBzdWJkaXZpc2lvbiB8IFtvcHRpb25hbF0gCioqY291bnRyeV9zdWJfZGl2aXNpb24qKiB8ICoqc3RyKiogfCBJZGVudGlmaWVzIGEgc3ViZGl2aXNpb24gb2YgYSBjb3VudHJ5IHN1Y2ggYXMgc3RhdGUsIHJlZ2lvbiwgb3IgcHJvdmluY2UgfCBbb3B0aW9uYWxdIAoqKmFkZHJlc3NfbGluZSoqIHwgKipMaXN0W3N0cl0qKiB8IEluZm9ybWF0aW9uIHRoYXQgbG9jYXRlcyBhbmQgaWRlbnRpZmllcyBhIHNwZWNpZmljIGFkZHJlc3MsIHByZXNlbnRlZCBpbiBmcmVlIGZvcm1hdCB0ZXh0IHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2dlb2dyYXBoaWNfYWRkcmVzcyBpbXBvcnQgVHJhdmVsUnVsZVZhbGlkYXRlR2VvZ3JhcGhpY0FkZHJlc3MKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWYWxpZGF0ZUdlb2dyYXBoaWNBZGRyZXNzIGZyb20gYSBKU09OIHN0cmluZwp0cmF2ZWxfcnVsZV92YWxpZGF0ZV9nZW9ncmFwaGljX2FkZHJlc3NfaW5zdGFuY2UgPSBUcmF2ZWxSdWxlVmFsaWRhdGVHZW9ncmFwaGljQWRkcmVzcy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmF2ZWxSdWxlVmFsaWRhdGVHZW9ncmFwaGljQWRkcmVzcy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmF2ZWxfcnVsZV92YWxpZGF0ZV9nZW9ncmFwaGljX2FkZHJlc3NfZGljdCA9IHRyYXZlbF9ydWxlX3ZhbGlkYXRlX2dlb2dyYXBoaWNfYWRkcmVzc19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVZhbGlkYXRlR2VvZ3JhcGhpY0FkZHJlc3MgZnJvbSBhIGRpY3QKdHJhdmVsX3J1bGVfdmFsaWRhdGVfZ2VvZ3JhcGhpY19hZGRyZXNzX2Zyb21fZGljdCA9IFRyYXZlbFJ1bGVWYWxpZGF0ZUdlb2dyYXBoaWNBZGRyZXNzLmZyb21fZGljdCh0cmF2ZWxfcnVsZV92YWxpZGF0ZV9nZW9ncmFwaGljX2FkZHJlc3NfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TravelRuleValidateLegalPerson.md b/docs/TravelRuleValidateLegalPerson.md index 134a9c0f..8c02000a 100644 --- a/docs/TravelRuleValidateLegalPerson.md +++ b/docs/TravelRuleValidateLegalPerson.md @@ -1,34 +1 @@ -# TravelRuleValidateLegalPerson - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | [**TravelRuleValidateLegalPersonNameIdentifier**](TravelRuleValidateLegalPersonNameIdentifier.md) | | [optional] -**geographic_address** | [**List[TravelRuleValidateGeographicAddress]**](TravelRuleValidateGeographicAddress.md) | The array of geographic addresses associated with the legal person. | [optional] -**national_identification** | [**TravelRuleValidateNationalIdentification**](TravelRuleValidateNationalIdentification.md) | | [optional] -**customer_identification** | **str** | A unique identifier that identifies the customer in the organization's context. | [optional] -**customer_number** | **str** | A distinct identifier that uniquely identifies the customer within the organization. | [optional] -**country_of_registration** | **str** | The ISO-3166 Alpha-2 country code where the legal person is registered. | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_validate_legal_person import TravelRuleValidateLegalPerson - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleValidateLegalPerson from a JSON string -travel_rule_validate_legal_person_instance = TravelRuleValidateLegalPerson.from_json(json) -# print the JSON string representation of the object -print(TravelRuleValidateLegalPerson.to_json()) - -# convert the object into a dict -travel_rule_validate_legal_person_dict = travel_rule_validate_legal_person_instance.to_dict() -# create an instance of TravelRuleValidateLegalPerson from a dict -travel_rule_validate_legal_person_from_dict = TravelRuleValidateLegalPerson.from_dict(travel_rule_validate_legal_person_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipuYW1lKiogfCBbKipUcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyKipdKFRyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uTmFtZUlkZW50aWZpZXIubWQpIHwgIHwgW29wdGlvbmFsXSAKKipnZW9ncmFwaGljX2FkZHJlc3MqKiB8IFsqKkxpc3RbVHJhdmVsUnVsZVZhbGlkYXRlR2VvZ3JhcGhpY0FkZHJlc3NdKipdKFRyYXZlbFJ1bGVWYWxpZGF0ZUdlb2dyYXBoaWNBZGRyZXNzLm1kKSB8IFRoZSBhcnJheSBvZiBnZW9ncmFwaGljIGFkZHJlc3NlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGxlZ2FsIHBlcnNvbi4gfCBbb3B0aW9uYWxdIAoqKm5hdGlvbmFsX2lkZW50aWZpY2F0aW9uKiogfCBbKipUcmF2ZWxSdWxlVmFsaWRhdGVOYXRpb25hbElkZW50aWZpY2F0aW9uKipdKFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdGlvbmFsSWRlbnRpZmljYXRpb24ubWQpIHwgIHwgW29wdGlvbmFsXSAKKipjdXN0b21lcl9pZGVudGlmaWNhdGlvbioqIHwgKipzdHIqKiB8IEEgdW5pcXVlIGlkZW50aWZpZXIgdGhhdCBpZGVudGlmaWVzIHRoZSBjdXN0b21lciBpbiB0aGUgb3JnYW5pemF0aW9uJiMzOTtzIGNvbnRleHQuIHwgW29wdGlvbmFsXSAKKipjdXN0b21lcl9udW1iZXIqKiB8ICoqc3RyKiogfCBBIGRpc3RpbmN0IGlkZW50aWZpZXIgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBjdXN0b21lciB3aXRoaW4gdGhlIG9yZ2FuaXphdGlvbi4gfCBbb3B0aW9uYWxdIAoqKmNvdW50cnlfb2ZfcmVnaXN0cmF0aW9uKiogfCAqKnN0cioqIHwgVGhlIElTTy0zMTY2IEFscGhhLTIgY291bnRyeSBjb2RlIHdoZXJlIHRoZSBsZWdhbCBwZXJzb24gaXMgcmVnaXN0ZXJlZC4gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbGVnYWxfcGVyc29uIGltcG9ydCBUcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb24gZnJvbSBhIEpTT04gc3RyaW5nCnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2xlZ2FsX3BlcnNvbl9pbnN0YW5jZSA9IFRyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2xlZ2FsX3BlcnNvbl9kaWN0ID0gdHJhdmVsX3J1bGVfdmFsaWRhdGVfbGVnYWxfcGVyc29uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbiBmcm9tIGEgZGljdAp0cmF2ZWxfcnVsZV92YWxpZGF0ZV9sZWdhbF9wZXJzb25fZnJvbV9kaWN0ID0gVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb24uZnJvbV9kaWN0KHRyYXZlbF9ydWxlX3ZhbGlkYXRlX2xlZ2FsX3BlcnNvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TravelRuleValidateLegalPersonNameIdentifier.md b/docs/TravelRuleValidateLegalPersonNameIdentifier.md index 20d54d0b..402adbaa 100644 --- a/docs/TravelRuleValidateLegalPersonNameIdentifier.md +++ b/docs/TravelRuleValidateLegalPersonNameIdentifier.md @@ -1,30 +1 @@ -# TravelRuleValidateLegalPersonNameIdentifier - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**legal_person_name** | **str** | Name by which the legal person is known. | [optional] -**legal_person_name_identifier_type** | **str** | Specifies the type of name for a legal person. Acceptable values are: - 'REGISTERED': The official registered name. - 'TRADE': A trading name or DBA (Doing Business As) name. - 'OTHER': Any other type of name. | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_validate_legal_person_name_identifier import TravelRuleValidateLegalPersonNameIdentifier - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleValidateLegalPersonNameIdentifier from a JSON string -travel_rule_validate_legal_person_name_identifier_instance = TravelRuleValidateLegalPersonNameIdentifier.from_json(json) -# print the JSON string representation of the object -print(TravelRuleValidateLegalPersonNameIdentifier.to_json()) - -# convert the object into a dict -travel_rule_validate_legal_person_name_identifier_dict = travel_rule_validate_legal_person_name_identifier_instance.to_dict() -# create an instance of TravelRuleValidateLegalPersonNameIdentifier from a dict -travel_rule_validate_legal_person_name_identifier_from_dict = TravelRuleValidateLegalPersonNameIdentifier.from_dict(travel_rule_validate_legal_person_name_identifier_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmxlZ2FsX3BlcnNvbl9uYW1lKiogfCAqKnN0cioqIHwgTmFtZSBieSB3aGljaCB0aGUgbGVnYWwgcGVyc29uIGlzIGtub3duLiB8IFtvcHRpb25hbF0gCioqbGVnYWxfcGVyc29uX25hbWVfaWRlbnRpZmllcl90eXBlKiogfCAqKnN0cioqIHwgU3BlY2lmaWVzIHRoZSB0eXBlIG9mIG5hbWUgZm9yIGEgbGVnYWwgcGVyc29uLiBBY2NlcHRhYmxlIHZhbHVlcyBhcmU6IC0gJiMzOTtSRUdJU1RFUkVEJiMzOTs6IFRoZSBvZmZpY2lhbCByZWdpc3RlcmVkIG5hbWUuIC0gJiMzOTtUUkFERSYjMzk7OiBBIHRyYWRpbmcgbmFtZSBvciBEQkEgKERvaW5nIEJ1c2luZXNzIEFzKSBuYW1lLiAtICYjMzk7T1RIRVImIzM5OzogQW55IG90aGVyIHR5cGUgb2YgbmFtZS4gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbGVnYWxfcGVyc29uX25hbWVfaWRlbnRpZmllciBpbXBvcnQgVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllcgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllciBmcm9tIGEgSlNPTiBzdHJpbmcKdHJhdmVsX3J1bGVfdmFsaWRhdGVfbGVnYWxfcGVyc29uX25hbWVfaWRlbnRpZmllcl9pbnN0YW5jZSA9IFRyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uTmFtZUlkZW50aWZpZXIuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllci50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmF2ZWxfcnVsZV92YWxpZGF0ZV9sZWdhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyX2RpY3QgPSB0cmF2ZWxfcnVsZV92YWxpZGF0ZV9sZWdhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyIGZyb20gYSBkaWN0CnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2xlZ2FsX3BlcnNvbl9uYW1lX2lkZW50aWZpZXJfZnJvbV9kaWN0ID0gVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllci5mcm9tX2RpY3QodHJhdmVsX3J1bGVfdmFsaWRhdGVfbGVnYWxfcGVyc29uX25hbWVfaWRlbnRpZmllcl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TravelRuleValidateNationalIdentification.md b/docs/TravelRuleValidateNationalIdentification.md index 1a51b5f0..fce4f3a6 100644 --- a/docs/TravelRuleValidateNationalIdentification.md +++ b/docs/TravelRuleValidateNationalIdentification.md @@ -1,33 +1 @@ -# TravelRuleValidateNationalIdentification - -Represents a national identifier for a person or entity - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**country_of_issue** | **str** | Country that issued the national identifier (ISO-3166 Alpha-2 country code) | [optional] -**national_identifier** | **str** | National identifier (max 35 characters) | [optional] -**national_identifier_type** | **str** | Type of national identifier. Acceptable values include: - 'PASSPORT': Passport number - 'NATIONAL_ID': National identification number - 'TAX_ID': Tax identification number - 'SOCIAL_SECURITY': Social security number | [optional] -**registration_authority** | **str** | Registration authority (format -> RA followed by 6 digits) | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_validate_national_identification import TravelRuleValidateNationalIdentification - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleValidateNationalIdentification from a JSON string -travel_rule_validate_national_identification_instance = TravelRuleValidateNationalIdentification.from_json(json) -# print the JSON string representation of the object -print(TravelRuleValidateNationalIdentification.to_json()) - -# convert the object into a dict -travel_rule_validate_national_identification_dict = travel_rule_validate_national_identification_instance.to_dict() -# create an instance of TravelRuleValidateNationalIdentification from a dict -travel_rule_validate_national_identification_from_dict = TravelRuleValidateNationalIdentification.from_dict(travel_rule_validate_national_identification_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlVmFsaWRhdGVOYXRpb25hbElkZW50aWZpY2F0aW9uCgpSZXByZXNlbnRzIGEgbmF0aW9uYWwgaWRlbnRpZmllciBmb3IgYSBwZXJzb24gb3IgZW50aXR5CgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqY291bnRyeV9vZl9pc3N1ZSoqIHwgKipzdHIqKiB8IENvdW50cnkgdGhhdCBpc3N1ZWQgdGhlIG5hdGlvbmFsIGlkZW50aWZpZXIgKElTTy0zMTY2IEFscGhhLTIgY291bnRyeSBjb2RlKSB8IFtvcHRpb25hbF0gCioqbmF0aW9uYWxfaWRlbnRpZmllcioqIHwgKipzdHIqKiB8IE5hdGlvbmFsIGlkZW50aWZpZXIgKG1heCAzNSBjaGFyYWN0ZXJzKSB8IFtvcHRpb25hbF0gCioqbmF0aW9uYWxfaWRlbnRpZmllcl90eXBlKiogfCAqKnN0cioqIHwgVHlwZSBvZiBuYXRpb25hbCBpZGVudGlmaWVyLiBBY2NlcHRhYmxlIHZhbHVlcyBpbmNsdWRlOiAtICYjMzk7UEFTU1BPUlQmIzM5OzogUGFzc3BvcnQgbnVtYmVyIC0gJiMzOTtOQVRJT05BTF9JRCYjMzk7OiBOYXRpb25hbCBpZGVudGlmaWNhdGlvbiBudW1iZXIgLSAmIzM5O1RBWF9JRCYjMzk7OiBUYXggaWRlbnRpZmljYXRpb24gbnVtYmVyIC0gJiMzOTtTT0NJQUxfU0VDVVJJVFkmIzM5OzogU29jaWFsIHNlY3VyaXR5IG51bWJlciB8IFtvcHRpb25hbF0gCioqcmVnaXN0cmF0aW9uX2F1dGhvcml0eSoqIHwgKipzdHIqKiB8IFJlZ2lzdHJhdGlvbiBhdXRob3JpdHkgKGZvcm1hdCAtJmd0OyBSQSBmb2xsb3dlZCBieSA2IGRpZ2l0cykgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0aW9uYWxfaWRlbnRpZmljYXRpb24gaW1wb3J0IFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdGlvbmFsSWRlbnRpZmljYXRpb24KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdGlvbmFsSWRlbnRpZmljYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdGlvbmFsX2lkZW50aWZpY2F0aW9uX2luc3RhbmNlID0gVHJhdmVsUnVsZVZhbGlkYXRlTmF0aW9uYWxJZGVudGlmaWNhdGlvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmF2ZWxSdWxlVmFsaWRhdGVOYXRpb25hbElkZW50aWZpY2F0aW9uLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdGlvbmFsX2lkZW50aWZpY2F0aW9uX2RpY3QgPSB0cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXRpb25hbF9pZGVudGlmaWNhdGlvbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVZhbGlkYXRlTmF0aW9uYWxJZGVudGlmaWNhdGlvbiBmcm9tIGEgZGljdAp0cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXRpb25hbF9pZGVudGlmaWNhdGlvbl9mcm9tX2RpY3QgPSBUcmF2ZWxSdWxlVmFsaWRhdGVOYXRpb25hbElkZW50aWZpY2F0aW9uLmZyb21fZGljdCh0cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXRpb25hbF9pZGVudGlmaWNhdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TravelRuleValidateNaturalNameIdentifier.md b/docs/TravelRuleValidateNaturalNameIdentifier.md index fc46f7fd..28e1f0a8 100644 --- a/docs/TravelRuleValidateNaturalNameIdentifier.md +++ b/docs/TravelRuleValidateNaturalNameIdentifier.md @@ -1,31 +1 @@ -# TravelRuleValidateNaturalNameIdentifier - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**primary_identifier** | **str** | The primary identifier of the name | [optional] -**secondary_identifier** | **str** | The secondary identifier of the name | [optional] -**name_identifier_type** | **str** | Specifies the type of name for a natural person. Acceptable values are: - 'ALIA': Alias name, a name other than the legal name by which a natural person is also known. - 'BIRT': Name at birth, the name given to a natural person at birth. - 'MAID': Maiden name, the original name of a natural person who has changed their name after marriage. - 'LEGL': Legal name, the name that identifies a natural person for legal, official, or administrative purposes. - 'MISC': Unspecified, a name by which a natural person may be known but cannot otherwise be categorized. | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_validate_natural_name_identifier import TravelRuleValidateNaturalNameIdentifier - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleValidateNaturalNameIdentifier from a JSON string -travel_rule_validate_natural_name_identifier_instance = TravelRuleValidateNaturalNameIdentifier.from_json(json) -# print the JSON string representation of the object -print(TravelRuleValidateNaturalNameIdentifier.to_json()) - -# convert the object into a dict -travel_rule_validate_natural_name_identifier_dict = travel_rule_validate_natural_name_identifier_instance.to_dict() -# create an instance of TravelRuleValidateNaturalNameIdentifier from a dict -travel_rule_validate_natural_name_identifier_from_dict = TravelRuleValidateNaturalNameIdentifier.from_dict(travel_rule_validate_natural_name_identifier_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsTmFtZUlkZW50aWZpZXIKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqcHJpbWFyeV9pZGVudGlmaWVyKiogfCAqKnN0cioqIHwgVGhlIHByaW1hcnkgaWRlbnRpZmllciBvZiB0aGUgbmFtZSB8IFtvcHRpb25hbF0gCioqc2Vjb25kYXJ5X2lkZW50aWZpZXIqKiB8ICoqc3RyKiogfCBUaGUgc2Vjb25kYXJ5IGlkZW50aWZpZXIgb2YgdGhlIG5hbWUgfCBbb3B0aW9uYWxdIAoqKm5hbWVfaWRlbnRpZmllcl90eXBlKiogfCAqKnN0cioqIHwgU3BlY2lmaWVzIHRoZSB0eXBlIG9mIG5hbWUgZm9yIGEgbmF0dXJhbCBwZXJzb24uIEFjY2VwdGFibGUgdmFsdWVzIGFyZTogLSAmIzM5O0FMSUEmIzM5OzogQWxpYXMgbmFtZSwgYSBuYW1lIG90aGVyIHRoYW4gdGhlIGxlZ2FsIG5hbWUgYnkgd2hpY2ggYSBuYXR1cmFsIHBlcnNvbiBpcyBhbHNvIGtub3duLiAtICYjMzk7QklSVCYjMzk7OiBOYW1lIGF0IGJpcnRoLCB0aGUgbmFtZSBnaXZlbiB0byBhIG5hdHVyYWwgcGVyc29uIGF0IGJpcnRoLiAtICYjMzk7TUFJRCYjMzk7OiBNYWlkZW4gbmFtZSwgdGhlIG9yaWdpbmFsIG5hbWUgb2YgYSBuYXR1cmFsIHBlcnNvbiB3aG8gaGFzIGNoYW5nZWQgdGhlaXIgbmFtZSBhZnRlciBtYXJyaWFnZS4gLSAmIzM5O0xFR0wmIzM5OzogTGVnYWwgbmFtZSwgdGhlIG5hbWUgdGhhdCBpZGVudGlmaWVzIGEgbmF0dXJhbCBwZXJzb24gZm9yIGxlZ2FsLCBvZmZpY2lhbCwgb3IgYWRtaW5pc3RyYXRpdmUgcHVycG9zZXMuIC0gJiMzOTtNSVNDJiMzOTs6IFVuc3BlY2lmaWVkLCBhIG5hbWUgYnkgd2hpY2ggYSBuYXR1cmFsIHBlcnNvbiBtYXkgYmUga25vd24gYnV0IGNhbm5vdCBvdGhlcndpc2UgYmUgY2F0ZWdvcml6ZWQuIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyIGltcG9ydCBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsTmFtZUlkZW50aWZpZXIKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxOYW1lSWRlbnRpZmllciBmcm9tIGEgSlNPTiBzdHJpbmcKdHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9uYW1lX2lkZW50aWZpZXJfaW5zdGFuY2UgPSBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsTmFtZUlkZW50aWZpZXIuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbE5hbWVJZGVudGlmaWVyLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyX2RpY3QgPSB0cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllcl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbE5hbWVJZGVudGlmaWVyIGZyb20gYSBkaWN0CnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyX2Zyb21fZGljdCA9IFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxOYW1lSWRlbnRpZmllci5mcm9tX2RpY3QodHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9uYW1lX2lkZW50aWZpZXJfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TravelRuleValidateNaturalPerson.md b/docs/TravelRuleValidateNaturalPerson.md index 2f1658c2..7688cdde 100644 --- a/docs/TravelRuleValidateNaturalPerson.md +++ b/docs/TravelRuleValidateNaturalPerson.md @@ -1,35 +1 @@ -# TravelRuleValidateNaturalPerson - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | [**List[TravelRuleValidateNaturalPersonNameIdentifier]**](TravelRuleValidateNaturalPersonNameIdentifier.md) | An array of structured name identifiers for the natural person, referencing the TravelRuleNaturalPersonNameIdentifier schema. | [optional] -**geographic_address** | [**List[TravelRuleValidateGeographicAddress]**](TravelRuleValidateGeographicAddress.md) | An array of geographic addresses associated with the natural person, referencing the TravelRuleGeographicAddress schema. | [optional] -**national_identification** | [**TravelRuleValidateNationalIdentification**](TravelRuleValidateNationalIdentification.md) | | [optional] -**date_and_place_of_birth** | [**TravelRuleValidateDateAndPlaceOfBirth**](TravelRuleValidateDateAndPlaceOfBirth.md) | | [optional] -**customer_identification** | **str** | A unique identifier for the customer within the organization's context. | [optional] -**country_of_residence** | **str** | The ISO-3166 Alpha-2 country code of the natural person's residence. | [optional] -**customer_number** | **str** | A distinct identifier that uniquely identifies the customer within the organization. | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_validate_natural_person import TravelRuleValidateNaturalPerson - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleValidateNaturalPerson from a JSON string -travel_rule_validate_natural_person_instance = TravelRuleValidateNaturalPerson.from_json(json) -# print the JSON string representation of the object -print(TravelRuleValidateNaturalPerson.to_json()) - -# convert the object into a dict -travel_rule_validate_natural_person_dict = travel_rule_validate_natural_person_instance.to_dict() -# create an instance of TravelRuleValidateNaturalPerson from a dict -travel_rule_validate_natural_person_from_dict = TravelRuleValidateNaturalPerson.from_dict(travel_rule_validate_natural_person_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm5hbWUqKiB8IFsqKkxpc3RbVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyXSoqXShUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIubWQpIHwgQW4gYXJyYXkgb2Ygc3RydWN0dXJlZCBuYW1lIGlkZW50aWZpZXJzIGZvciB0aGUgbmF0dXJhbCBwZXJzb24sIHJlZmVyZW5jaW5nIHRoZSBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyIHNjaGVtYS4gfCBbb3B0aW9uYWxdIAoqKmdlb2dyYXBoaWNfYWRkcmVzcyoqIHwgWyoqTGlzdFtUcmF2ZWxSdWxlVmFsaWRhdGVHZW9ncmFwaGljQWRkcmVzc10qKl0oVHJhdmVsUnVsZVZhbGlkYXRlR2VvZ3JhcGhpY0FkZHJlc3MubWQpIHwgQW4gYXJyYXkgb2YgZ2VvZ3JhcGhpYyBhZGRyZXNzZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBuYXR1cmFsIHBlcnNvbiwgcmVmZXJlbmNpbmcgdGhlIFRyYXZlbFJ1bGVHZW9ncmFwaGljQWRkcmVzcyBzY2hlbWEuIHwgW29wdGlvbmFsXSAKKipuYXRpb25hbF9pZGVudGlmaWNhdGlvbioqIHwgWyoqVHJhdmVsUnVsZVZhbGlkYXRlTmF0aW9uYWxJZGVudGlmaWNhdGlvbioqXShUcmF2ZWxSdWxlVmFsaWRhdGVOYXRpb25hbElkZW50aWZpY2F0aW9uLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGgqKiB8IFsqKlRyYXZlbFJ1bGVWYWxpZGF0ZURhdGVBbmRQbGFjZU9mQmlydGgqKl0oVHJhdmVsUnVsZVZhbGlkYXRlRGF0ZUFuZFBsYWNlT2ZCaXJ0aC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmN1c3RvbWVyX2lkZW50aWZpY2F0aW9uKiogfCAqKnN0cioqIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGN1c3RvbWVyIHdpdGhpbiB0aGUgb3JnYW5pemF0aW9uJiMzOTtzIGNvbnRleHQuIHwgW29wdGlvbmFsXSAKKipjb3VudHJ5X29mX3Jlc2lkZW5jZSoqIHwgKipzdHIqKiB8IFRoZSBJU08tMzE2NiBBbHBoYS0yIGNvdW50cnkgY29kZSBvZiB0aGUgbmF0dXJhbCBwZXJzb24mIzM5O3MgcmVzaWRlbmNlLiB8IFtvcHRpb25hbF0gCioqY3VzdG9tZXJfbnVtYmVyKiogfCAqKnN0cioqIHwgQSBkaXN0aW5jdCBpZGVudGlmaWVyIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgY3VzdG9tZXIgd2l0aGluIHRoZSBvcmdhbml6YXRpb24uIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfcGVyc29uIGltcG9ydCBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uIGZyb20gYSBKU09OIHN0cmluZwp0cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX3BlcnNvbl9pbnN0YW5jZSA9IFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX3BlcnNvbl9kaWN0ID0gdHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9wZXJzb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb24gZnJvbSBhIGRpY3QKdHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9wZXJzb25fZnJvbV9kaWN0ID0gVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbi5mcm9tX2RpY3QodHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9wZXJzb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TravelRuleValidateNaturalPersonNameIdentifier.md b/docs/TravelRuleValidateNaturalPersonNameIdentifier.md index 865b91da..86e25ceb 100644 --- a/docs/TravelRuleValidateNaturalPersonNameIdentifier.md +++ b/docs/TravelRuleValidateNaturalPersonNameIdentifier.md @@ -1,31 +1 @@ -# TravelRuleValidateNaturalPersonNameIdentifier - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name_identifier** | [**List[TravelRuleValidateNaturalNameIdentifier]**](TravelRuleValidateNaturalNameIdentifier.md) | | [optional] -**local_name_identifier** | [**List[TravelRuleValidateNaturalNameIdentifier]**](TravelRuleValidateNaturalNameIdentifier.md) | | [optional] -**phonetic_name_identifier** | [**List[TravelRuleValidateNaturalNameIdentifier]**](TravelRuleValidateNaturalNameIdentifier.md) | | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_validate_natural_person_name_identifier import TravelRuleValidateNaturalPersonNameIdentifier - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleValidateNaturalPersonNameIdentifier from a JSON string -travel_rule_validate_natural_person_name_identifier_instance = TravelRuleValidateNaturalPersonNameIdentifier.from_json(json) -# print the JSON string representation of the object -print(TravelRuleValidateNaturalPersonNameIdentifier.to_json()) - -# convert the object into a dict -travel_rule_validate_natural_person_name_identifier_dict = travel_rule_validate_natural_person_name_identifier_instance.to_dict() -# create an instance of TravelRuleValidateNaturalPersonNameIdentifier from a dict -travel_rule_validate_natural_person_name_identifier_from_dict = TravelRuleValidateNaturalPersonNameIdentifier.from_dict(travel_rule_validate_natural_person_name_identifier_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbmFtZV9pZGVudGlmaWVyKiogfCBbKipMaXN0W1RyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxOYW1lSWRlbnRpZmllcl0qKl0oVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbE5hbWVJZGVudGlmaWVyLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqbG9jYWxfbmFtZV9pZGVudGlmaWVyKiogfCBbKipMaXN0W1RyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxOYW1lSWRlbnRpZmllcl0qKl0oVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbE5hbWVJZGVudGlmaWVyLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqcGhvbmV0aWNfbmFtZV9pZGVudGlmaWVyKiogfCBbKipMaXN0W1RyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxOYW1lSWRlbnRpZmllcl0qKl0oVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbE5hbWVJZGVudGlmaWVyLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX3BlcnNvbl9uYW1lX2lkZW50aWZpZXIgaW1wb3J0IFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllcgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyIGZyb20gYSBKU09OIHN0cmluZwp0cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX3BlcnNvbl9uYW1lX2lkZW50aWZpZXJfaW5zdGFuY2UgPSBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfcGVyc29uX25hbWVfaWRlbnRpZmllcl9kaWN0ID0gdHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIgZnJvbSBhIGRpY3QKdHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyX2Zyb21fZGljdCA9IFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllci5mcm9tX2RpY3QodHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TravelRuleValidatePerson.md b/docs/TravelRuleValidatePerson.md index d560acad..1e17f6b7 100644 --- a/docs/TravelRuleValidatePerson.md +++ b/docs/TravelRuleValidatePerson.md @@ -1,30 +1 @@ -# TravelRuleValidatePerson - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**natural_person** | [**TravelRuleValidateNaturalPerson**](TravelRuleValidateNaturalPerson.md) | | [optional] -**legal_person** | [**TravelRuleValidateLegalPerson**](TravelRuleValidateLegalPerson.md) | | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_validate_person import TravelRuleValidatePerson - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleValidatePerson from a JSON string -travel_rule_validate_person_instance = TravelRuleValidatePerson.from_json(json) -# print the JSON string representation of the object -print(TravelRuleValidatePerson.to_json()) - -# convert the object into a dict -travel_rule_validate_person_dict = travel_rule_validate_person_instance.to_dict() -# create an instance of TravelRuleValidatePerson from a dict -travel_rule_validate_person_from_dict = TravelRuleValidatePerson.from_dict(travel_rule_validate_person_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlVmFsaWRhdGVQZXJzb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbmF0dXJhbF9wZXJzb24qKiB8IFsqKlRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb24qKl0oVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbi5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmxlZ2FsX3BlcnNvbioqIHwgWyoqVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb24qKl0oVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb24ubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX3BlcnNvbiBpbXBvcnQgVHJhdmVsUnVsZVZhbGlkYXRlUGVyc29uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVmFsaWRhdGVQZXJzb24gZnJvbSBhIEpTT04gc3RyaW5nCnRyYXZlbF9ydWxlX3ZhbGlkYXRlX3BlcnNvbl9pbnN0YW5jZSA9IFRyYXZlbFJ1bGVWYWxpZGF0ZVBlcnNvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmF2ZWxSdWxlVmFsaWRhdGVQZXJzb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJhdmVsX3J1bGVfdmFsaWRhdGVfcGVyc29uX2RpY3QgPSB0cmF2ZWxfcnVsZV92YWxpZGF0ZV9wZXJzb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWYWxpZGF0ZVBlcnNvbiBmcm9tIGEgZGljdAp0cmF2ZWxfcnVsZV92YWxpZGF0ZV9wZXJzb25fZnJvbV9kaWN0ID0gVHJhdmVsUnVsZVZhbGlkYXRlUGVyc29uLmZyb21fZGljdCh0cmF2ZWxfcnVsZV92YWxpZGF0ZV9wZXJzb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TravelRuleValidatePiiIVMS.md b/docs/TravelRuleValidatePiiIVMS.md index 83937e69..f2f92c36 100644 --- a/docs/TravelRuleValidatePiiIVMS.md +++ b/docs/TravelRuleValidatePiiIVMS.md @@ -1,32 +1 @@ -# TravelRuleValidatePiiIVMS - -Information about the originator of the transaction. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**originator_persons** | [**List[TravelRuleValidatePerson]**](TravelRuleValidatePerson.md) | Information about the originator of the transaction | [optional] -**beneficiary_persons** | [**List[TravelRuleValidatePerson]**](TravelRuleValidatePerson.md) | Information about the beneficiary of the transaction | [optional] -**account_number** | **List[str]** | Beneficiary account number | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_validate_pii_ivms import TravelRuleValidatePiiIVMS - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleValidatePiiIVMS from a JSON string -travel_rule_validate_pii_ivms_instance = TravelRuleValidatePiiIVMS.from_json(json) -# print the JSON string representation of the object -print(TravelRuleValidatePiiIVMS.to_json()) - -# convert the object into a dict -travel_rule_validate_pii_ivms_dict = travel_rule_validate_pii_ivms_instance.to_dict() -# create an instance of TravelRuleValidatePiiIVMS from a dict -travel_rule_validate_pii_ivms_from_dict = TravelRuleValidatePiiIVMS.from_dict(travel_rule_validate_pii_ivms_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlVmFsaWRhdGVQaWlJVk1TCgpJbmZvcm1hdGlvbiBhYm91dCB0aGUgb3JpZ2luYXRvciBvZiB0aGUgdHJhbnNhY3Rpb24uCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqb3JpZ2luYXRvcl9wZXJzb25zKiogfCBbKipMaXN0W1RyYXZlbFJ1bGVWYWxpZGF0ZVBlcnNvbl0qKl0oVHJhdmVsUnVsZVZhbGlkYXRlUGVyc29uLm1kKSB8IEluZm9ybWF0aW9uIGFib3V0IHRoZSBvcmlnaW5hdG9yIG9mIHRoZSB0cmFuc2FjdGlvbiB8IFtvcHRpb25hbF0gCioqYmVuZWZpY2lhcnlfcGVyc29ucyoqIHwgWyoqTGlzdFtUcmF2ZWxSdWxlVmFsaWRhdGVQZXJzb25dKipdKFRyYXZlbFJ1bGVWYWxpZGF0ZVBlcnNvbi5tZCkgfCBJbmZvcm1hdGlvbiBhYm91dCB0aGUgYmVuZWZpY2lhcnkgb2YgdGhlIHRyYW5zYWN0aW9uIHwgW29wdGlvbmFsXSAKKiphY2NvdW50X251bWJlcioqIHwgKipMaXN0W3N0cl0qKiB8IEJlbmVmaWNpYXJ5IGFjY291bnQgbnVtYmVyIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX3BpaV9pdm1zIGltcG9ydCBUcmF2ZWxSdWxlVmFsaWRhdGVQaWlJVk1TCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVmFsaWRhdGVQaWlJVk1TIGZyb20gYSBKU09OIHN0cmluZwp0cmF2ZWxfcnVsZV92YWxpZGF0ZV9waWlfaXZtc19pbnN0YW5jZSA9IFRyYXZlbFJ1bGVWYWxpZGF0ZVBpaUlWTVMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhdmVsUnVsZVZhbGlkYXRlUGlpSVZNUy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmF2ZWxfcnVsZV92YWxpZGF0ZV9waWlfaXZtc19kaWN0ID0gdHJhdmVsX3J1bGVfdmFsaWRhdGVfcGlpX2l2bXNfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWYWxpZGF0ZVBpaUlWTVMgZnJvbSBhIGRpY3QKdHJhdmVsX3J1bGVfdmFsaWRhdGVfcGlpX2l2bXNfZnJvbV9kaWN0ID0gVHJhdmVsUnVsZVZhbGlkYXRlUGlpSVZNUy5mcm9tX2RpY3QodHJhdmVsX3J1bGVfdmFsaWRhdGVfcGlpX2l2bXNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TravelRuleValidateTransactionRequest.md b/docs/TravelRuleValidateTransactionRequest.md index 3fc1f7b3..c480884c 100644 --- a/docs/TravelRuleValidateTransactionRequest.md +++ b/docs/TravelRuleValidateTransactionRequest.md @@ -1,40 +1 @@ -# TravelRuleValidateTransactionRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**transaction_asset** | **str** | Transaction asset symbol (BTC,ETH) | -**destination** | **str** | Transaction destination address | -**transaction_amount** | **str** | Transaction amount in the transaction asset | -**transaction_asset_decimals** | **float** | Number of decimals in the transaction asset. This is used to convert the transaction amount to the smallest unit of the asset | [optional] -**originator_vas_pdid** | **str** | This is the identifier assigned to your VASP | -**originator_equals_beneficiary** | **bool** | \"True\" if the originator and beneficiary is the same person and you therefore do not need to collect any information. \"False\" if it is a third-party transfer. | -**travel_rule_behavior** | **bool** | This will also check if the transaction is a TRAVEL_RULE in the beneficiary VASP's jurisdiction | [optional] -**beneficiary_vas_pdid** | **str** | This is the identifier assigned to the VASP the funds are being sent to | [optional] -**beneficiary_vas_pname** | **str** | Beneficiary VASP name | [optional] -**beneficiary_name** | **str** | Beneficiary name | [optional] -**beneficiary_account_number** | **str** | Beneficiary name | [optional] -**beneficiary_address** | [**TravelRuleAddress**](TravelRuleAddress.md) | | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_validate_transaction_request import TravelRuleValidateTransactionRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleValidateTransactionRequest from a JSON string -travel_rule_validate_transaction_request_instance = TravelRuleValidateTransactionRequest.from_json(json) -# print the JSON string representation of the object -print(TravelRuleValidateTransactionRequest.to_json()) - -# convert the object into a dict -travel_rule_validate_transaction_request_dict = travel_rule_validate_transaction_request_instance.to_dict() -# create an instance of TravelRuleValidateTransactionRequest from a dict -travel_rule_validate_transaction_request_from_dict = TravelRuleValidateTransactionRequest.from_dict(travel_rule_validate_transaction_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHJhbnNhY3Rpb25fYXNzZXQqKiB8ICoqc3RyKiogfCBUcmFuc2FjdGlvbiBhc3NldCBzeW1ib2wgKEJUQyxFVEgpIHwgCioqZGVzdGluYXRpb24qKiB8ICoqc3RyKiogfCBUcmFuc2FjdGlvbiBkZXN0aW5hdGlvbiBhZGRyZXNzIHwgCioqdHJhbnNhY3Rpb25fYW1vdW50KiogfCAqKnN0cioqIHwgVHJhbnNhY3Rpb24gYW1vdW50IGluIHRoZSB0cmFuc2FjdGlvbiBhc3NldCB8IAoqKnRyYW5zYWN0aW9uX2Fzc2V0X2RlY2ltYWxzKiogfCAqKmZsb2F0KiogfCBOdW1iZXIgb2YgZGVjaW1hbHMgaW4gdGhlIHRyYW5zYWN0aW9uIGFzc2V0LiBUaGlzIGlzIHVzZWQgdG8gY29udmVydCB0aGUgdHJhbnNhY3Rpb24gYW1vdW50IHRvIHRoZSBzbWFsbGVzdCB1bml0IG9mIHRoZSBhc3NldCB8IFtvcHRpb25hbF0gCioqb3JpZ2luYXRvcl92YXNfcGRpZCoqIHwgKipzdHIqKiB8IFRoaXMgaXMgdGhlIGlkZW50aWZpZXIgYXNzaWduZWQgdG8geW91ciBWQVNQIHwgCioqb3JpZ2luYXRvcl9lcXVhbHNfYmVuZWZpY2lhcnkqKiB8ICoqYm9vbCoqIHwgXCZxdW90O1RydWVcJnF1b3Q7IGlmIHRoZSBvcmlnaW5hdG9yIGFuZCBiZW5lZmljaWFyeSBpcyB0aGUgc2FtZSBwZXJzb24gYW5kIHlvdSB0aGVyZWZvcmUgZG8gbm90IG5lZWQgdG8gY29sbGVjdCBhbnkgaW5mb3JtYXRpb24uIFwmcXVvdDtGYWxzZVwmcXVvdDsgaWYgaXQgaXMgYSB0aGlyZC1wYXJ0eSB0cmFuc2Zlci4gfCAKKip0cmF2ZWxfcnVsZV9iZWhhdmlvcioqIHwgKipib29sKiogfCBUaGlzIHdpbGwgYWxzbyBjaGVjayBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgYSBUUkFWRUxfUlVMRSBpbiB0aGUgYmVuZWZpY2lhcnkgVkFTUCYjMzk7cyBqdXJpc2RpY3Rpb24gfCBbb3B0aW9uYWxdIAoqKmJlbmVmaWNpYXJ5X3Zhc19wZGlkKiogfCAqKnN0cioqIHwgVGhpcyBpcyB0aGUgaWRlbnRpZmllciBhc3NpZ25lZCB0byB0aGUgVkFTUCB0aGUgZnVuZHMgYXJlIGJlaW5nIHNlbnQgdG8gfCBbb3B0aW9uYWxdIAoqKmJlbmVmaWNpYXJ5X3Zhc19wbmFtZSoqIHwgKipzdHIqKiB8IEJlbmVmaWNpYXJ5IFZBU1AgbmFtZSB8IFtvcHRpb25hbF0gCioqYmVuZWZpY2lhcnlfbmFtZSoqIHwgKipzdHIqKiB8IEJlbmVmaWNpYXJ5ICBuYW1lIHwgW29wdGlvbmFsXSAKKipiZW5lZmljaWFyeV9hY2NvdW50X251bWJlcioqIHwgKipzdHIqKiB8IEJlbmVmaWNpYXJ5ICBuYW1lIHwgW29wdGlvbmFsXSAKKipiZW5lZmljaWFyeV9hZGRyZXNzKiogfCBbKipUcmF2ZWxSdWxlQWRkcmVzcyoqXShUcmF2ZWxSdWxlQWRkcmVzcy5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfdHJhbnNhY3Rpb25fcmVxdWVzdCBpbXBvcnQgVHJhdmVsUnVsZVZhbGlkYXRlVHJhbnNhY3Rpb25SZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCnRyYXZlbF9ydWxlX3ZhbGlkYXRlX3RyYW5zYWN0aW9uX3JlcXVlc3RfaW5zdGFuY2UgPSBUcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhdmVsUnVsZVZhbGlkYXRlVHJhbnNhY3Rpb25SZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYXZlbF9ydWxlX3ZhbGlkYXRlX3RyYW5zYWN0aW9uX3JlcXVlc3RfZGljdCA9IHRyYXZlbF9ydWxlX3ZhbGlkYXRlX3RyYW5zYWN0aW9uX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWYWxpZGF0ZVRyYW5zYWN0aW9uUmVxdWVzdCBmcm9tIGEgZGljdAp0cmF2ZWxfcnVsZV92YWxpZGF0ZV90cmFuc2FjdGlvbl9yZXF1ZXN0X2Zyb21fZGljdCA9IFRyYXZlbFJ1bGVWYWxpZGF0ZVRyYW5zYWN0aW9uUmVxdWVzdC5mcm9tX2RpY3QodHJhdmVsX3J1bGVfdmFsaWRhdGVfdHJhbnNhY3Rpb25fcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TravelRuleValidateTransactionResponse.md b/docs/TravelRuleValidateTransactionResponse.md index 58542762..bde07189 100644 --- a/docs/TravelRuleValidateTransactionResponse.md +++ b/docs/TravelRuleValidateTransactionResponse.md @@ -1,35 +1 @@ -# TravelRuleValidateTransactionResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**is_valid** | **bool** | \"isValid\" will tell you if you have collected all the information needed for the travel rule data transfer. Once this field = \"true\", you can move on to the next step which is to transfer the front-end information to your back-end and perform Travel Rule Transaction create | -**type** | **str** | \"type\" will tell you if the virtual asset value converted to FIAT value of the withdrawal request is above (=TRAVELRULE) or below (=BELOW_THRESHOLD) the threshold in your jurisdiction. If it is to an unhosted wallet which does not require travel rule information to be sent and only collected, it will say NON_CUSTODIAL. | -**beneficiary_address_type** | **str** | \"beneficiaryAddressType\" will tell you if your blockchain analytics provider or internal address book has been able to identify the wallet address. | -**address_source** | **str** | \"addressSource\" will tell you if the address was found in your internal address book or identified by the blockchain analytics provider. | -**beneficiary_vas_pdid** | **str** | The VASP DID of the beneficiary VASP | -**beneficiary_vas_pname** | **str** | \"beneficiaryVASPname\" will tell you the name of the VASP that has been identified as the owner of the wallet address. This name is used in a subsequent call to get its DID. | -**warnings** | **List[str]** | \"errors/warnings\" will tell you what information about the beneficiary you need to collect from the sender. | - -## Example - -```python -from fireblocks.models.travel_rule_validate_transaction_response import TravelRuleValidateTransactionResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleValidateTransactionResponse from a JSON string -travel_rule_validate_transaction_response_instance = TravelRuleValidateTransactionResponse.from_json(json) -# print the JSON string representation of the object -print(TravelRuleValidateTransactionResponse.to_json()) - -# convert the object into a dict -travel_rule_validate_transaction_response_dict = travel_rule_validate_transaction_response_instance.to_dict() -# create an instance of TravelRuleValidateTransactionResponse from a dict -travel_rule_validate_transaction_response_from_dict = TravelRuleValidateTransactionResponse.from_dict(travel_rule_validate_transaction_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlc3BvbnNlCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlzX3ZhbGlkKiogfCAqKmJvb2wqKiB8IFwmcXVvdDtpc1ZhbGlkXCZxdW90OyB3aWxsIHRlbGwgeW91IGlmIHlvdSBoYXZlIGNvbGxlY3RlZCBhbGwgdGhlIGluZm9ybWF0aW9uIG5lZWRlZCBmb3IgdGhlIHRyYXZlbCBydWxlIGRhdGEgdHJhbnNmZXIuIE9uY2UgdGhpcyBmaWVsZCAmI3gzRDsgXCZxdW90O3RydWVcJnF1b3Q7LCB5b3UgY2FuIG1vdmUgb24gdG8gdGhlIG5leHQgc3RlcCB3aGljaCBpcyB0byB0cmFuc2ZlciB0aGUgZnJvbnQtZW5kIGluZm9ybWF0aW9uIHRvIHlvdXIgYmFjay1lbmQgYW5kIHBlcmZvcm0gVHJhdmVsIFJ1bGUgVHJhbnNhY3Rpb24gY3JlYXRlIHwgCioqdHlwZSoqIHwgKipzdHIqKiB8IFwmcXVvdDt0eXBlXCZxdW90OyB3aWxsIHRlbGwgeW91IGlmIHRoZSB2aXJ0dWFsIGFzc2V0IHZhbHVlIGNvbnZlcnRlZCB0byBGSUFUIHZhbHVlIG9mIHRoZSB3aXRoZHJhd2FsIHJlcXVlc3QgaXMgYWJvdmUgKCYjeDNEO1RSQVZFTFJVTEUpIG9yIGJlbG93ICgmI3gzRDtCRUxPV19USFJFU0hPTEQpIHRoZSB0aHJlc2hvbGQgaW4geW91ciBqdXJpc2RpY3Rpb24uIElmIGl0IGlzIHRvIGFuIHVuaG9zdGVkIHdhbGxldCB3aGljaCBkb2VzIG5vdCByZXF1aXJlIHRyYXZlbCBydWxlIGluZm9ybWF0aW9uIHRvIGJlIHNlbnQgYW5kIG9ubHkgY29sbGVjdGVkLCBpdCB3aWxsIHNheSBOT05fQ1VTVE9ESUFMLiB8IAoqKmJlbmVmaWNpYXJ5X2FkZHJlc3NfdHlwZSoqIHwgKipzdHIqKiB8IFwmcXVvdDtiZW5lZmljaWFyeUFkZHJlc3NUeXBlXCZxdW90OyB3aWxsIHRlbGwgeW91IGlmIHlvdXIgYmxvY2tjaGFpbiBhbmFseXRpY3MgcHJvdmlkZXIgb3IgaW50ZXJuYWwgYWRkcmVzcyBib29rIGhhcyBiZWVuIGFibGUgdG8gaWRlbnRpZnkgdGhlIHdhbGxldCBhZGRyZXNzLiB8IAoqKmFkZHJlc3Nfc291cmNlKiogfCAqKnN0cioqIHwgXCZxdW90O2FkZHJlc3NTb3VyY2VcJnF1b3Q7IHdpbGwgdGVsbCB5b3UgaWYgdGhlIGFkZHJlc3Mgd2FzIGZvdW5kIGluIHlvdXIgaW50ZXJuYWwgYWRkcmVzcyBib29rIG9yIGlkZW50aWZpZWQgYnkgdGhlIGJsb2NrY2hhaW4gYW5hbHl0aWNzIHByb3ZpZGVyLiB8IAoqKmJlbmVmaWNpYXJ5X3Zhc19wZGlkKiogfCAqKnN0cioqIHwgVGhlIFZBU1AgRElEIG9mIHRoZSBiZW5lZmljaWFyeSBWQVNQIHwgCioqYmVuZWZpY2lhcnlfdmFzX3BuYW1lKiogfCAqKnN0cioqIHwgXCZxdW90O2JlbmVmaWNpYXJ5VkFTUG5hbWVcJnF1b3Q7IHdpbGwgdGVsbCB5b3UgdGhlIG5hbWUgb2YgdGhlIFZBU1AgdGhhdCBoYXMgYmVlbiBpZGVudGlmaWVkIGFzIHRoZSBvd25lciBvZiB0aGUgd2FsbGV0IGFkZHJlc3MuIFRoaXMgbmFtZSBpcyB1c2VkIGluIGEgc3Vic2VxdWVudCBjYWxsIHRvIGdldCBpdHMgRElELiB8IAoqKndhcm5pbmdzKiogfCAqKkxpc3Rbc3RyXSoqIHwgXCZxdW90O2Vycm9ycy93YXJuaW5nc1wmcXVvdDsgd2lsbCB0ZWxsIHlvdSB3aGF0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBiZW5lZmljaWFyeSB5b3UgbmVlZCB0byBjb2xsZWN0IGZyb20gdGhlIHNlbmRlci4gfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX3RyYW5zYWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBUcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwp0cmF2ZWxfcnVsZV92YWxpZGF0ZV90cmFuc2FjdGlvbl9yZXNwb25zZV9pbnN0YW5jZSA9IFRyYXZlbFJ1bGVWYWxpZGF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJhdmVsUnVsZVZhbGlkYXRlVHJhbnNhY3Rpb25SZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cmF2ZWxfcnVsZV92YWxpZGF0ZV90cmFuc2FjdGlvbl9yZXNwb25zZV9kaWN0ID0gdHJhdmVsX3J1bGVfdmFsaWRhdGVfdHJhbnNhY3Rpb25fcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWYWxpZGF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UgZnJvbSBhIGRpY3QKdHJhdmVsX3J1bGVfdmFsaWRhdGVfdHJhbnNhY3Rpb25fcmVzcG9uc2VfZnJvbV9kaWN0ID0gVHJhdmVsUnVsZVZhbGlkYXRlVHJhbnNhY3Rpb25SZXNwb25zZS5mcm9tX2RpY3QodHJhdmVsX3J1bGVfdmFsaWRhdGVfdHJhbnNhY3Rpb25fcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TravelRuleVaspForVault.md b/docs/TravelRuleVaspForVault.md index f6cccbf8..80a44e6a 100644 --- a/docs/TravelRuleVaspForVault.md +++ b/docs/TravelRuleVaspForVault.md @@ -1,29 +1 @@ -# TravelRuleVaspForVault - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vasp_did** | **str** | VASP DID | [optional] - -## Example - -```python -from fireblocks.models.travel_rule_vasp_for_vault import TravelRuleVaspForVault - -# TODO update the JSON string below -json = "{}" -# create an instance of TravelRuleVaspForVault from a JSON string -travel_rule_vasp_for_vault_instance = TravelRuleVaspForVault.from_json(json) -# print the JSON string representation of the object -print(TravelRuleVaspForVault.to_json()) - -# convert the object into a dict -travel_rule_vasp_for_vault_dict = travel_rule_vasp_for_vault_instance.to_dict() -# create an instance of TravelRuleVaspForVault from a dict -travel_rule_vasp_for_vault_from_dict = TravelRuleVaspForVault.from_dict(travel_rule_vasp_for_vault_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlVmFzcEZvclZhdWx0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnZhc3BfZGlkKiogfCAqKnN0cioqIHwgVkFTUCBESUQgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFzcF9mb3JfdmF1bHQgaW1wb3J0IFRyYXZlbFJ1bGVWYXNwRm9yVmF1bHQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWYXNwRm9yVmF1bHQgZnJvbSBhIEpTT04gc3RyaW5nCnRyYXZlbF9ydWxlX3Zhc3BfZm9yX3ZhdWx0X2luc3RhbmNlID0gVHJhdmVsUnVsZVZhc3BGb3JWYXVsdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUcmF2ZWxSdWxlVmFzcEZvclZhdWx0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRyYXZlbF9ydWxlX3Zhc3BfZm9yX3ZhdWx0X2RpY3QgPSB0cmF2ZWxfcnVsZV92YXNwX2Zvcl92YXVsdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVZhc3BGb3JWYXVsdCBmcm9tIGEgZGljdAp0cmF2ZWxfcnVsZV92YXNwX2Zvcl92YXVsdF9mcm9tX2RpY3QgPSBUcmF2ZWxSdWxlVmFzcEZvclZhdWx0LmZyb21fZGljdCh0cmF2ZWxfcnVsZV92YXNwX2Zvcl92YXVsdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TravelRuleVerdictEnum.md b/docs/TravelRuleVerdictEnum.md index 14df8de8..8a659412 100644 --- a/docs/TravelRuleVerdictEnum.md +++ b/docs/TravelRuleVerdictEnum.md @@ -1,17 +1 @@ -# TravelRuleVerdictEnum - -The final verdict of the travel rule screening - -## Enum - -* `ACCEPT` (value: `'ACCEPT'`) - -* `REJECT` (value: `'REJECT'`) - -* `ALERT` (value: `'ALERT'`) - -* `REVIEW` (value: `'REVIEW'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcmF2ZWxSdWxlVmVyZGljdEVudW0KClRoZSBmaW5hbCB2ZXJkaWN0IG9mIHRoZSB0cmF2ZWwgcnVsZSBzY3JlZW5pbmcKCiMjIEVudW0KCiogYEFDQ0VQVGAgKHZhbHVlOiBgJ0FDQ0VQVCdgKQoKKiBgUkVKRUNUYCAodmFsdWU6IGAnUkVKRUNUJ2ApCgoqIGBBTEVSVGAgKHZhbHVlOiBgJ0FMRVJUJ2ApCgoqIGBSRVZJRVdgICh2YWx1ZTogYCdSRVZJRVcnYCkKCiogYFdBSVRgICh2YWx1ZTogYCdXQUlUJ2ApCgoqIGBGUkVFWkVgICh2YWx1ZTogYCdGUkVFWkUnYCkKCiogYENBTkNFTGAgKHZhbHVlOiBgJ0NBTkNFTCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/TrustProofOfAddressCreateResponse.md b/docs/TrustProofOfAddressCreateResponse.md index b04bad7a..7a85e08d 100644 --- a/docs/TrustProofOfAddressCreateResponse.md +++ b/docs/TrustProofOfAddressCreateResponse.md @@ -1,31 +1 @@ -# TrustProofOfAddressCreateResponse - -Response from creating a proof of address transaction - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**transaction_id** | **str** | Transaction ID from Fireblocks (UUID format) | -**status** | [**TypedMessageTransactionStatusEnum**](TypedMessageTransactionStatusEnum.md) | | - -## Example - -```python -from fireblocks.models.trust_proof_of_address_create_response import TrustProofOfAddressCreateResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TrustProofOfAddressCreateResponse from a JSON string -trust_proof_of_address_create_response_instance = TrustProofOfAddressCreateResponse.from_json(json) -# print the JSON string representation of the object -print(TrustProofOfAddressCreateResponse.to_json()) - -# convert the object into a dict -trust_proof_of_address_create_response_dict = trust_proof_of_address_create_response_instance.to_dict() -# create an instance of TrustProofOfAddressCreateResponse from a dict -trust_proof_of_address_create_response_from_dict = TrustProofOfAddressCreateResponse.from_dict(trust_proof_of_address_create_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcnVzdFByb29mT2ZBZGRyZXNzQ3JlYXRlUmVzcG9uc2UKClJlc3BvbnNlIGZyb20gY3JlYXRpbmcgYSBwcm9vZiBvZiBhZGRyZXNzIHRyYW5zYWN0aW9uCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHJhbnNhY3Rpb25faWQqKiB8ICoqc3RyKiogfCBUcmFuc2FjdGlvbiBJRCBmcm9tIEZpcmVibG9ja3MgKFVVSUQgZm9ybWF0KSB8IAoqKnN0YXR1cyoqIHwgWyoqVHlwZWRNZXNzYWdlVHJhbnNhY3Rpb25TdGF0dXNFbnVtKipdKFR5cGVkTWVzc2FnZVRyYW5zYWN0aW9uU3RhdHVzRW51bS5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRydXN0X3Byb29mX29mX2FkZHJlc3NfY3JlYXRlX3Jlc3BvbnNlIGltcG9ydCBUcnVzdFByb29mT2ZBZGRyZXNzQ3JlYXRlUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRydXN0UHJvb2ZPZkFkZHJlc3NDcmVhdGVSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKdHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzc19jcmVhdGVfcmVzcG9uc2VfaW5zdGFuY2UgPSBUcnVzdFByb29mT2ZBZGRyZXNzQ3JlYXRlUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJ1c3RQcm9vZk9mQWRkcmVzc0NyZWF0ZVJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnRydXN0X3Byb29mX29mX2FkZHJlc3NfY3JlYXRlX3Jlc3BvbnNlX2RpY3QgPSB0cnVzdF9wcm9vZl9vZl9hZGRyZXNzX2NyZWF0ZV9yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJ1c3RQcm9vZk9mQWRkcmVzc0NyZWF0ZVJlc3BvbnNlIGZyb20gYSBkaWN0CnRydXN0X3Byb29mX29mX2FkZHJlc3NfY3JlYXRlX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFRydXN0UHJvb2ZPZkFkZHJlc3NDcmVhdGVSZXNwb25zZS5mcm9tX2RpY3QodHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzc19jcmVhdGVfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TrustProofOfAddressRequest.md b/docs/TrustProofOfAddressRequest.md index a9ef5947..aee8fdf6 100644 --- a/docs/TrustProofOfAddressRequest.md +++ b/docs/TrustProofOfAddressRequest.md @@ -1,33 +1 @@ -# TrustProofOfAddressRequest - -Request to create a cryptographic proof of address ownership for TRUST network compliance - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vault_account_id** | **str** | The ID of the vault account. | -**asset** | **str** | The asset identifier for which proof of address is being created. | -**prefix** | **str** | The prefix to be used for signing messages. | -**trust_uuid** | **str** | A unique identifier (UUID) obtained from TRUST (CreateAddressOwnership) | - -## Example - -```python -from fireblocks.models.trust_proof_of_address_request import TrustProofOfAddressRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of TrustProofOfAddressRequest from a JSON string -trust_proof_of_address_request_instance = TrustProofOfAddressRequest.from_json(json) -# print the JSON string representation of the object -print(TrustProofOfAddressRequest.to_json()) - -# convert the object into a dict -trust_proof_of_address_request_dict = trust_proof_of_address_request_instance.to_dict() -# create an instance of TrustProofOfAddressRequest from a dict -trust_proof_of_address_request_from_dict = TrustProofOfAddressRequest.from_dict(trust_proof_of_address_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcnVzdFByb29mT2ZBZGRyZXNzUmVxdWVzdAoKUmVxdWVzdCB0byBjcmVhdGUgYSBjcnlwdG9ncmFwaGljIHByb29mIG9mIGFkZHJlc3Mgb3duZXJzaGlwIGZvciBUUlVTVCBuZXR3b3JrIGNvbXBsaWFuY2UKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip2YXVsdF9hY2NvdW50X2lkKiogfCAqKnN0cioqIHwgVGhlIElEIG9mIHRoZSB2YXVsdCBhY2NvdW50LiB8IAoqKmFzc2V0KiogfCAqKnN0cioqIHwgVGhlIGFzc2V0IGlkZW50aWZpZXIgZm9yIHdoaWNoIHByb29mIG9mIGFkZHJlc3MgaXMgYmVpbmcgY3JlYXRlZC4gfCAKKipwcmVmaXgqKiB8ICoqc3RyKiogfCBUaGUgcHJlZml4IHRvIGJlIHVzZWQgZm9yIHNpZ25pbmcgbWVzc2FnZXMuIHwgCioqdHJ1c3RfdXVpZCoqIHwgKipzdHIqKiB8IEEgdW5pcXVlIGlkZW50aWZpZXIgKFVVSUQpIG9idGFpbmVkIGZyb20gVFJVU1QgKENyZWF0ZUFkZHJlc3NPd25lcnNoaXApIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cnVzdF9wcm9vZl9vZl9hZGRyZXNzX3JlcXVlc3QgaW1wb3J0IFRydXN0UHJvb2ZPZkFkZHJlc3NSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcnVzdFByb29mT2ZBZGRyZXNzUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKdHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzc19yZXF1ZXN0X2luc3RhbmNlID0gVHJ1c3RQcm9vZk9mQWRkcmVzc1JlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVHJ1c3RQcm9vZk9mQWRkcmVzc1JlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzc19yZXF1ZXN0X2RpY3QgPSB0cnVzdF9wcm9vZl9vZl9hZGRyZXNzX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFRydXN0UHJvb2ZPZkFkZHJlc3NSZXF1ZXN0IGZyb20gYSBkaWN0CnRydXN0X3Byb29mX29mX2FkZHJlc3NfcmVxdWVzdF9mcm9tX2RpY3QgPSBUcnVzdFByb29mT2ZBZGRyZXNzUmVxdWVzdC5mcm9tX2RpY3QodHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzc19yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/TrustProofOfAddressResponse.md b/docs/TrustProofOfAddressResponse.md index 01dd7c67..237ae45d 100644 --- a/docs/TrustProofOfAddressResponse.md +++ b/docs/TrustProofOfAddressResponse.md @@ -1,32 +1 @@ -# TrustProofOfAddressResponse - -Response containing the TRUST-compatible encoded signature - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**transaction_id** | **str** | Transaction ID from Fireblocks (UUID format) | -**status** | [**TypedMessageTransactionStatusEnum**](TypedMessageTransactionStatusEnum.md) | | -**signature** | **str** | TRUST-compatible encoded signature for proof of address verification. | - -## Example - -```python -from fireblocks.models.trust_proof_of_address_response import TrustProofOfAddressResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of TrustProofOfAddressResponse from a JSON string -trust_proof_of_address_response_instance = TrustProofOfAddressResponse.from_json(json) -# print the JSON string representation of the object -print(TrustProofOfAddressResponse.to_json()) - -# convert the object into a dict -trust_proof_of_address_response_dict = trust_proof_of_address_response_instance.to_dict() -# create an instance of TrustProofOfAddressResponse from a dict -trust_proof_of_address_response_from_dict = TrustProofOfAddressResponse.from_dict(trust_proof_of_address_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUcnVzdFByb29mT2ZBZGRyZXNzUmVzcG9uc2UKClJlc3BvbnNlIGNvbnRhaW5pbmcgdGhlIFRSVVNULWNvbXBhdGlibGUgZW5jb2RlZCBzaWduYXR1cmUKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0cmFuc2FjdGlvbl9pZCoqIHwgKipzdHIqKiB8IFRyYW5zYWN0aW9uIElEIGZyb20gRmlyZWJsb2NrcyAoVVVJRCBmb3JtYXQpIHwgCioqc3RhdHVzKiogfCBbKipUeXBlZE1lc3NhZ2VUcmFuc2FjdGlvblN0YXR1c0VudW0qKl0oVHlwZWRNZXNzYWdlVHJhbnNhY3Rpb25TdGF0dXNFbnVtLm1kKSB8ICB8IAoqKnNpZ25hdHVyZSoqIHwgKipzdHIqKiB8IFRSVVNULWNvbXBhdGlibGUgZW5jb2RlZCBzaWduYXR1cmUgZm9yIHByb29mIG9mIGFkZHJlc3MgdmVyaWZpY2F0aW9uLiAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRydXN0X3Byb29mX29mX2FkZHJlc3NfcmVzcG9uc2UgaW1wb3J0IFRydXN0UHJvb2ZPZkFkZHJlc3NSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJ1c3RQcm9vZk9mQWRkcmVzc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwp0cnVzdF9wcm9vZl9vZl9hZGRyZXNzX3Jlc3BvbnNlX2luc3RhbmNlID0gVHJ1c3RQcm9vZk9mQWRkcmVzc1Jlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFRydXN0UHJvb2ZPZkFkZHJlc3NSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0cnVzdF9wcm9vZl9vZl9hZGRyZXNzX3Jlc3BvbnNlX2RpY3QgPSB0cnVzdF9wcm9vZl9vZl9hZGRyZXNzX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcnVzdFByb29mT2ZBZGRyZXNzUmVzcG9uc2UgZnJvbSBhIGRpY3QKdHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzc19yZXNwb25zZV9mcm9tX2RpY3QgPSBUcnVzdFByb29mT2ZBZGRyZXNzUmVzcG9uc2UuZnJvbV9kaWN0KHRydXN0X3Byb29mX29mX2FkZHJlc3NfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TxLog.md b/docs/TxLog.md index f2e8a063..822e9782 100644 --- a/docs/TxLog.md +++ b/docs/TxLog.md @@ -1,37 +1 @@ -# TxLog - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**address** | **str** | The log address | -**topics** | **List[str]** | Array of log topics | -**data** | **str** | The log data | -**block_number** | **int** | Block number where the log occurred | -**transaction_hash** | **str** | Transaction hash associated with the log | -**transaction_index** | **int** | Transaction index in the block | -**block_hash** | **str** | The hash of the block | -**log_index** | **int** | Log index in the block | -**removed** | **bool** | Indicates if the log was removed | - -## Example - -```python -from fireblocks.models.tx_log import TxLog - -# TODO update the JSON string below -json = "{}" -# create an instance of TxLog from a JSON string -tx_log_instance = TxLog.from_json(json) -# print the JSON string representation of the object -print(TxLog.to_json()) - -# convert the object into a dict -tx_log_dict = tx_log_instance.to_dict() -# create an instance of TxLog from a dict -tx_log_from_dict = TxLog.from_dict(tx_log_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUeExvZwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphZGRyZXNzKiogfCAqKnN0cioqIHwgVGhlIGxvZyBhZGRyZXNzIHwgCioqdG9waWNzKiogfCAqKkxpc3Rbc3RyXSoqIHwgQXJyYXkgb2YgbG9nIHRvcGljcyB8IAoqKmRhdGEqKiB8ICoqc3RyKiogfCBUaGUgbG9nIGRhdGEgfCAKKipibG9ja19udW1iZXIqKiB8ICoqaW50KiogfCBCbG9jayBudW1iZXIgd2hlcmUgdGhlIGxvZyBvY2N1cnJlZCB8IAoqKnRyYW5zYWN0aW9uX2hhc2gqKiB8ICoqc3RyKiogfCBUcmFuc2FjdGlvbiBoYXNoIGFzc29jaWF0ZWQgd2l0aCB0aGUgbG9nIHwgCioqdHJhbnNhY3Rpb25faW5kZXgqKiB8ICoqaW50KiogfCBUcmFuc2FjdGlvbiBpbmRleCBpbiB0aGUgYmxvY2sgfCAKKipibG9ja19oYXNoKiogfCAqKnN0cioqIHwgVGhlIGhhc2ggb2YgdGhlIGJsb2NrIHwgCioqbG9nX2luZGV4KiogfCAqKmludCoqIHwgTG9nIGluZGV4IGluIHRoZSBibG9jayB8IAoqKnJlbW92ZWQqKiB8ICoqYm9vbCoqIHwgSW5kaWNhdGVzIGlmIHRoZSBsb2cgd2FzIHJlbW92ZWQgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnR4X2xvZyBpbXBvcnQgVHhMb2cKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFR4TG9nIGZyb20gYSBKU09OIHN0cmluZwp0eF9sb2dfaW5zdGFuY2UgPSBUeExvZy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChUeExvZy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp0eF9sb2dfZGljdCA9IHR4X2xvZ19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHhMb2cgZnJvbSBhIGRpY3QKdHhfbG9nX2Zyb21fZGljdCA9IFR4TG9nLmZyb21fZGljdCh0eF9sb2dfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/TypedMessageTransactionStatusEnum.md b/docs/TypedMessageTransactionStatusEnum.md index 46eb546f..c9f078d0 100644 --- a/docs/TypedMessageTransactionStatusEnum.md +++ b/docs/TypedMessageTransactionStatusEnum.md @@ -1,41 +1 @@ -# TypedMessageTransactionStatusEnum - -Status of the typed message transaction from Fireblocks. For details, see [Primary transaction statuses](https://developers.fireblocks.com/reference/primary-transaction-statuses) - -## Enum - -* `SUBMITTED` (value: `'SUBMITTED'`) - -* `QUEUED` (value: `'QUEUED'`) - -* `PENDING_SIGNATURE` (value: `'PENDING_SIGNATURE'`) - -* `PENDING_AUTHORIZATION` (value: `'PENDING_AUTHORIZATION'`) - -* `PENDING_3_RD_PARTY_MANUAL_APPROVAL` (value: `'PENDING_3RD_PARTY_MANUAL_APPROVAL'`) - -* `PENDING_3_RD_PARTY` (value: `'PENDING_3RD_PARTY'`) - -* `BROADCASTING` (value: `'BROADCASTING'`) - -* `PENDING_AML_SCREENING` (value: `'PENDING_AML_SCREENING'`) - -* `CONFIRMING` (value: `'CONFIRMING'`) - -* `PARTIALLY_COMPLETED` (value: `'PARTIALLY_COMPLETED'`) - -* `PENDING_EMAIL_APPROVAL` (value: `'PENDING_EMAIL_APPROVAL'`) - -* `CANCELLED` (value: `'CANCELLED'`) - -* `REJECTED` (value: `'REJECTED'`) - -* `FAILED` (value: `'FAILED'`) - -* `TIMEOUT` (value: `'TIMEOUT'`) - -* `BLOCKED` (value: `'BLOCKED'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBUeXBlZE1lc3NhZ2VUcmFuc2FjdGlvblN0YXR1c0VudW0KClN0YXR1cyBvZiB0aGUgdHlwZWQgbWVzc2FnZSB0cmFuc2FjdGlvbiBmcm9tIEZpcmVibG9ja3MuIEZvciBkZXRhaWxzLCBzZWUgW1ByaW1hcnkgdHJhbnNhY3Rpb24gc3RhdHVzZXNdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9yZWZlcmVuY2UvcHJpbWFyeS10cmFuc2FjdGlvbi1zdGF0dXNlcykKCiMjIEVudW0KCiogYFNVQk1JVFRFRGAgKHZhbHVlOiBgJ1NVQk1JVFRFRCdgKQoKKiBgUVVFVUVEYCAodmFsdWU6IGAnUVVFVUVEJ2ApCgoqIGBQRU5ESU5HX1NJR05BVFVSRWAgKHZhbHVlOiBgJ1BFTkRJTkdfU0lHTkFUVVJFJ2ApCgoqIGBQRU5ESU5HX0FVVEhPUklaQVRJT05gICh2YWx1ZTogYCdQRU5ESU5HX0FVVEhPUklaQVRJT04nYCkKCiogYFBFTkRJTkdfM19SRF9QQVJUWV9NQU5VQUxfQVBQUk9WQUxgICh2YWx1ZTogYCdQRU5ESU5HXzNSRF9QQVJUWV9NQU5VQUxfQVBQUk9WQUwnYCkKCiogYFBFTkRJTkdfM19SRF9QQVJUWWAgKHZhbHVlOiBgJ1BFTkRJTkdfM1JEX1BBUlRZJ2ApCgoqIGBCUk9BRENBU1RJTkdgICh2YWx1ZTogYCdCUk9BRENBU1RJTkcnYCkKCiogYFBFTkRJTkdfQU1MX1NDUkVFTklOR2AgKHZhbHVlOiBgJ1BFTkRJTkdfQU1MX1NDUkVFTklORydgKQoKKiBgQ09ORklSTUlOR2AgKHZhbHVlOiBgJ0NPTkZJUk1JTkcnYCkKCiogYFBBUlRJQUxMWV9DT01QTEVURURgICh2YWx1ZTogYCdQQVJUSUFMTFlfQ09NUExFVEVEJ2ApCgoqIGBQRU5ESU5HX0VNQUlMX0FQUFJPVkFMYCAodmFsdWU6IGAnUEVORElOR19FTUFJTF9BUFBST1ZBTCdgKQoKKiBgQ0FOQ0VMTEVEYCAodmFsdWU6IGAnQ0FOQ0VMTEVEJ2ApCgoqIGBSRUpFQ1RFRGAgKHZhbHVlOiBgJ1JFSkVDVEVEJ2ApCgoqIGBGQUlMRURgICh2YWx1ZTogYCdGQUlMRUQnYCkKCiogYFRJTUVPVVRgICh2YWx1ZTogYCdUSU1FT1VUJ2ApCgoqIGBCTE9DS0VEYCAodmFsdWU6IGAnQkxPQ0tFRCdgKQoKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/USWireAddress.md b/docs/USWireAddress.md index f5c6f1d3..68434713 100644 --- a/docs/USWireAddress.md +++ b/docs/USWireAddress.md @@ -1,33 +1 @@ -# USWireAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_holder** | [**AccountHolderDetails**](AccountHolderDetails.md) | | -**bank_name** | **str** | Name of the bank. | [optional] -**bank_account_number** | **str** | The bank account number for the wire transfer. | -**routing_number** | **str** | Routing number identifying the bank account. | -**bank_address** | [**BankAddress**](BankAddress.md) | | [optional] - -## Example - -```python -from fireblocks.models.us_wire_address import USWireAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of USWireAddress from a JSON string -us_wire_address_instance = USWireAddress.from_json(json) -# print the JSON string representation of the object -print(USWireAddress.to_json()) - -# convert the object into a dict -us_wire_address_dict = us_wire_address_instance.to_dict() -# create an instance of USWireAddress from a dict -us_wire_address_from_dict = USWireAddress.from_dict(us_wire_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVU1dpcmVBZGRyZXNzCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFjY291bnRfaG9sZGVyKiogfCBbKipBY2NvdW50SG9sZGVyRGV0YWlscyoqXShBY2NvdW50SG9sZGVyRGV0YWlscy5tZCkgfCAgfCAKKipiYW5rX25hbWUqKiB8ICoqc3RyKiogfCBOYW1lIG9mIHRoZSBiYW5rLiB8IFtvcHRpb25hbF0gCioqYmFua19hY2NvdW50X251bWJlcioqIHwgKipzdHIqKiB8IFRoZSBiYW5rIGFjY291bnQgbnVtYmVyIGZvciB0aGUgd2lyZSB0cmFuc2Zlci4gfCAKKipyb3V0aW5nX251bWJlcioqIHwgKipzdHIqKiB8IFJvdXRpbmcgbnVtYmVyIGlkZW50aWZ5aW5nIHRoZSBiYW5rIGFjY291bnQuIHwgCioqYmFua19hZGRyZXNzKiogfCBbKipCYW5rQWRkcmVzcyoqXShCYW5rQWRkcmVzcy5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXNfd2lyZV9hZGRyZXNzIGltcG9ydCBVU1dpcmVBZGRyZXNzCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVU1dpcmVBZGRyZXNzIGZyb20gYSBKU09OIHN0cmluZwp1c193aXJlX2FkZHJlc3NfaW5zdGFuY2UgPSBVU1dpcmVBZGRyZXNzLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFVTV2lyZUFkZHJlc3MudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdXNfd2lyZV9hZGRyZXNzX2RpY3QgPSB1c193aXJlX2FkZHJlc3NfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFVTV2lyZUFkZHJlc3MgZnJvbSBhIGRpY3QKdXNfd2lyZV9hZGRyZXNzX2Zyb21fZGljdCA9IFVTV2lyZUFkZHJlc3MuZnJvbV9kaWN0KHVzX3dpcmVfYWRkcmVzc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/USWireDestination.md b/docs/USWireDestination.md index 0be078d2..82c24ff7 100644 --- a/docs/USWireDestination.md +++ b/docs/USWireDestination.md @@ -1,30 +1 @@ -# USWireDestination - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**type** | **str** | | -**address** | [**USWireAddress**](USWireAddress.md) | | - -## Example - -```python -from fireblocks.models.us_wire_destination import USWireDestination - -# TODO update the JSON string below -json = "{}" -# create an instance of USWireDestination from a JSON string -us_wire_destination_instance = USWireDestination.from_json(json) -# print the JSON string representation of the object -print(USWireDestination.to_json()) - -# convert the object into a dict -us_wire_destination_dict = us_wire_destination_instance.to_dict() -# create an instance of USWireDestination from a dict -us_wire_destination_from_dict = USWireDestination.from_dict(us_wire_destination_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVU1dpcmVEZXN0aW5hdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip0eXBlKiogfCAqKnN0cioqIHwgIHwgCioqYWRkcmVzcyoqIHwgWyoqVVNXaXJlQWRkcmVzcyoqXShVU1dpcmVBZGRyZXNzLm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXNfd2lyZV9kZXN0aW5hdGlvbiBpbXBvcnQgVVNXaXJlRGVzdGluYXRpb24KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFVTV2lyZURlc3RpbmF0aW9uIGZyb20gYSBKU09OIHN0cmluZwp1c193aXJlX2Rlc3RpbmF0aW9uX2luc3RhbmNlID0gVVNXaXJlRGVzdGluYXRpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVVNXaXJlRGVzdGluYXRpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdXNfd2lyZV9kZXN0aW5hdGlvbl9kaWN0ID0gdXNfd2lyZV9kZXN0aW5hdGlvbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVVNXaXJlRGVzdGluYXRpb24gZnJvbSBhIGRpY3QKdXNfd2lyZV9kZXN0aW5hdGlvbl9mcm9tX2RpY3QgPSBVU1dpcmVEZXN0aW5hdGlvbi5mcm9tX2RpY3QodXNfd2lyZV9kZXN0aW5hdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/UnfreezeTransactionResponse.md b/docs/UnfreezeTransactionResponse.md index 92ac7191..bfecec50 100644 --- a/docs/UnfreezeTransactionResponse.md +++ b/docs/UnfreezeTransactionResponse.md @@ -1,29 +1 @@ -# UnfreezeTransactionResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**success** | **bool** | | [optional] - -## Example - -```python -from fireblocks.models.unfreeze_transaction_response import UnfreezeTransactionResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of UnfreezeTransactionResponse from a JSON string -unfreeze_transaction_response_instance = UnfreezeTransactionResponse.from_json(json) -# print the JSON string representation of the object -print(UnfreezeTransactionResponse.to_json()) - -# convert the object into a dict -unfreeze_transaction_response_dict = unfreeze_transaction_response_instance.to_dict() -# create an instance of UnfreezeTransactionResponse from a dict -unfreeze_transaction_response_from_dict = UnfreezeTransactionResponse.from_dict(unfreeze_transaction_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVbmZyZWV6ZVRyYW5zYWN0aW9uUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqc3VjY2VzcyoqIHwgKipib29sKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudW5mcmVlemVfdHJhbnNhY3Rpb25fcmVzcG9uc2UgaW1wb3J0IFVuZnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVW5mcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwp1bmZyZWV6ZV90cmFuc2FjdGlvbl9yZXNwb25zZV9pbnN0YW5jZSA9IFVuZnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChVbmZyZWV6ZVRyYW5zYWN0aW9uUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdW5mcmVlemVfdHJhbnNhY3Rpb25fcmVzcG9uc2VfZGljdCA9IHVuZnJlZXplX3RyYW5zYWN0aW9uX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVbmZyZWV6ZVRyYW5zYWN0aW9uUmVzcG9uc2UgZnJvbSBhIGRpY3QKdW5mcmVlemVfdHJhbnNhY3Rpb25fcmVzcG9uc2VfZnJvbV9kaWN0ID0gVW5mcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlLmZyb21fZGljdCh1bmZyZWV6ZV90cmFuc2FjdGlvbl9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/UnmanagedWallet.md b/docs/UnmanagedWallet.md index e4743b37..16a95796 100644 --- a/docs/UnmanagedWallet.md +++ b/docs/UnmanagedWallet.md @@ -1,32 +1 @@ -# UnmanagedWallet - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | -**name** | **str** | | -**customer_ref_id** | **str** | | [optional] -**assets** | [**List[WalletAsset]**](WalletAsset.md) | | - -## Example - -```python -from fireblocks.models.unmanaged_wallet import UnmanagedWallet - -# TODO update the JSON string below -json = "{}" -# create an instance of UnmanagedWallet from a JSON string -unmanaged_wallet_instance = UnmanagedWallet.from_json(json) -# print the JSON string representation of the object -print(UnmanagedWallet.to_json()) - -# convert the object into a dict -unmanaged_wallet_dict = unmanaged_wallet_instance.to_dict() -# create an instance of UnmanagedWallet from a dict -unmanaged_wallet_from_dict = UnmanagedWallet.from_dict(unmanaged_wallet_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVbm1hbmFnZWRXYWxsZXQKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCAgfCAKKipuYW1lKiogfCAqKnN0cioqIHwgIHwgCioqY3VzdG9tZXJfcmVmX2lkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKiphc3NldHMqKiB8IFsqKkxpc3RbV2FsbGV0QXNzZXRdKipdKFdhbGxldEFzc2V0Lm1kKSB8ICB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudW5tYW5hZ2VkX3dhbGxldCBpbXBvcnQgVW5tYW5hZ2VkV2FsbGV0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVbm1hbmFnZWRXYWxsZXQgZnJvbSBhIEpTT04gc3RyaW5nCnVubWFuYWdlZF93YWxsZXRfaW5zdGFuY2UgPSBVbm1hbmFnZWRXYWxsZXQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVW5tYW5hZ2VkV2FsbGV0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnVubWFuYWdlZF93YWxsZXRfZGljdCA9IHVubWFuYWdlZF93YWxsZXRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFVubWFuYWdlZFdhbGxldCBmcm9tIGEgZGljdAp1bm1hbmFnZWRfd2FsbGV0X2Zyb21fZGljdCA9IFVubWFuYWdlZFdhbGxldC5mcm9tX2RpY3QodW5tYW5hZ2VkX3dhbGxldF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/UnspentInput.md b/docs/UnspentInput.md index def29019..46f00185 100644 --- a/docs/UnspentInput.md +++ b/docs/UnspentInput.md @@ -1,30 +1 @@ -# UnspentInput - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**tx_hash** | **str** | | [optional] -**index** | **float** | | [optional] - -## Example - -```python -from fireblocks.models.unspent_input import UnspentInput - -# TODO update the JSON string below -json = "{}" -# create an instance of UnspentInput from a JSON string -unspent_input_instance = UnspentInput.from_json(json) -# print the JSON string representation of the object -print(UnspentInput.to_json()) - -# convert the object into a dict -unspent_input_dict = unspent_input_instance.to_dict() -# create an instance of UnspentInput from a dict -unspent_input_from_dict = UnspentInput.from_dict(unspent_input_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVbnNwZW50SW5wdXQKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdHhfaGFzaCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqaW5kZXgqKiB8ICoqZmxvYXQqKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51bnNwZW50X2lucHV0IGltcG9ydCBVbnNwZW50SW5wdXQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFVuc3BlbnRJbnB1dCBmcm9tIGEgSlNPTiBzdHJpbmcKdW5zcGVudF9pbnB1dF9pbnN0YW5jZSA9IFVuc3BlbnRJbnB1dC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChVbnNwZW50SW5wdXQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdW5zcGVudF9pbnB1dF9kaWN0ID0gdW5zcGVudF9pbnB1dF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVW5zcGVudElucHV0IGZyb20gYSBkaWN0CnVuc3BlbnRfaW5wdXRfZnJvbV9kaWN0ID0gVW5zcGVudElucHV0LmZyb21fZGljdCh1bnNwZW50X2lucHV0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/UnspentInputsResponse.md b/docs/UnspentInputsResponse.md index 9a39e26e..c96a7cdb 100644 --- a/docs/UnspentInputsResponse.md +++ b/docs/UnspentInputsResponse.md @@ -1,33 +1 @@ -# UnspentInputsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**input** | [**UnspentInput**](UnspentInput.md) | | [optional] -**address** | **str** | | [optional] -**amount** | **str** | | [optional] -**confirmations** | **float** | | [optional] -**status** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.unspent_inputs_response import UnspentInputsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of UnspentInputsResponse from a JSON string -unspent_inputs_response_instance = UnspentInputsResponse.from_json(json) -# print the JSON string representation of the object -print(UnspentInputsResponse.to_json()) - -# convert the object into a dict -unspent_inputs_response_dict = unspent_inputs_response_instance.to_dict() -# create an instance of UnspentInputsResponse from a dict -unspent_inputs_response_from_dict = UnspentInputsResponse.from_dict(unspent_inputs_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVbnNwZW50SW5wdXRzUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaW5wdXQqKiB8IFsqKlVuc3BlbnRJbnB1dCoqXShVbnNwZW50SW5wdXQubWQpIHwgIHwgW29wdGlvbmFsXSAKKiphZGRyZXNzKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKiphbW91bnQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmNvbmZpcm1hdGlvbnMqKiB8ICoqZmxvYXQqKiB8ICB8IFtvcHRpb25hbF0gCioqc3RhdHVzKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVuc3BlbnRfaW5wdXRzX3Jlc3BvbnNlIGltcG9ydCBVbnNwZW50SW5wdXRzUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFVuc3BlbnRJbnB1dHNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKdW5zcGVudF9pbnB1dHNfcmVzcG9uc2VfaW5zdGFuY2UgPSBVbnNwZW50SW5wdXRzUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVW5zcGVudElucHV0c1Jlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnVuc3BlbnRfaW5wdXRzX3Jlc3BvbnNlX2RpY3QgPSB1bnNwZW50X2lucHV0c19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVW5zcGVudElucHV0c1Jlc3BvbnNlIGZyb20gYSBkaWN0CnVuc3BlbnRfaW5wdXRzX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFVuc3BlbnRJbnB1dHNSZXNwb25zZS5mcm9tX2RpY3QodW5zcGVudF9pbnB1dHNfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/UnstakeRequest.md b/docs/UnstakeRequest.md index 010e198d..cf98d2a0 100644 --- a/docs/UnstakeRequest.md +++ b/docs/UnstakeRequest.md @@ -1,33 +1 @@ -# UnstakeRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | id of position to unstake | -**fee** | **str** | Represents the fee for a transaction, which can be specified as a percentage value. Only one of fee/feeLevel is required. | [optional] -**fee_level** | [**FeeLevel**](FeeLevel.md) | | [optional] -**tx_note** | **str** | The note to associate with the transactions. | [optional] -**amount** | **str** | Amount of tokens to unstake. Only supported for liquid staking (Lido) to enable partial unstaking. For other chains, this field is ignored and the entire position will be unstaked. If not provided, the entire position will be unstaked. | [optional] - -## Example - -```python -from fireblocks.models.unstake_request import UnstakeRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of UnstakeRequest from a JSON string -unstake_request_instance = UnstakeRequest.from_json(json) -# print the JSON string representation of the object -print(UnstakeRequest.to_json()) - -# convert the object into a dict -unstake_request_dict = unstake_request_instance.to_dict() -# create an instance of UnstakeRequest from a dict -unstake_request_from_dict = UnstakeRequest.from_dict(unstake_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVbnN0YWtlUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8IGlkIG9mIHBvc2l0aW9uIHRvIHVuc3Rha2UgfCAKKipmZWUqKiB8ICoqc3RyKiogfCBSZXByZXNlbnRzIHRoZSBmZWUgZm9yIGEgdHJhbnNhY3Rpb24sIHdoaWNoIGNhbiBiZSBzcGVjaWZpZWQgYXMgYSBwZXJjZW50YWdlIHZhbHVlLiBPbmx5IG9uZSBvZiBmZWUvZmVlTGV2ZWwgaXMgcmVxdWlyZWQuIHwgW29wdGlvbmFsXSAKKipmZWVfbGV2ZWwqKiB8IFsqKkZlZUxldmVsKipdKEZlZUxldmVsLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqdHhfbm90ZSoqIHwgKipzdHIqKiB8IFRoZSBub3RlIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSB0cmFuc2FjdGlvbnMuIHwgW29wdGlvbmFsXSAKKiphbW91bnQqKiB8ICoqc3RyKiogfCBBbW91bnQgb2YgdG9rZW5zIHRvIHVuc3Rha2UuIE9ubHkgc3VwcG9ydGVkIGZvciBsaXF1aWQgc3Rha2luZyAoTGlkbykgdG8gZW5hYmxlIHBhcnRpYWwgdW5zdGFraW5nLiBGb3Igb3RoZXIgY2hhaW5zLCB0aGlzIGZpZWxkIGlzIGlnbm9yZWQgYW5kIHRoZSBlbnRpcmUgcG9zaXRpb24gd2lsbCBiZSB1bnN0YWtlZC4gSWYgbm90IHByb3ZpZGVkLCB0aGUgZW50aXJlIHBvc2l0aW9uIHdpbGwgYmUgdW5zdGFrZWQuIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVuc3Rha2VfcmVxdWVzdCBpbXBvcnQgVW5zdGFrZVJlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFVuc3Rha2VSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwp1bnN0YWtlX3JlcXVlc3RfaW5zdGFuY2UgPSBVbnN0YWtlUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChVbnN0YWtlUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp1bnN0YWtlX3JlcXVlc3RfZGljdCA9IHVuc3Rha2VfcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVW5zdGFrZVJlcXVlc3QgZnJvbSBhIGRpY3QKdW5zdGFrZV9yZXF1ZXN0X2Zyb21fZGljdCA9IFVuc3Rha2VSZXF1ZXN0LmZyb21fZGljdCh1bnN0YWtlX3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/UpdateAssetUserMetadataRequest.md b/docs/UpdateAssetUserMetadataRequest.md index 22d9ad06..211e1a95 100644 --- a/docs/UpdateAssetUserMetadataRequest.md +++ b/docs/UpdateAssetUserMetadataRequest.md @@ -1,29 +1 @@ -# UpdateAssetUserMetadataRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**metadata** | [**AssetMetadataRequest**](AssetMetadataRequest.md) | | [optional] - -## Example - -```python -from fireblocks.models.update_asset_user_metadata_request import UpdateAssetUserMetadataRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of UpdateAssetUserMetadataRequest from a JSON string -update_asset_user_metadata_request_instance = UpdateAssetUserMetadataRequest.from_json(json) -# print the JSON string representation of the object -print(UpdateAssetUserMetadataRequest.to_json()) - -# convert the object into a dict -update_asset_user_metadata_request_dict = update_asset_user_metadata_request_instance.to_dict() -# create an instance of UpdateAssetUserMetadataRequest from a dict -update_asset_user_metadata_request_from_dict = UpdateAssetUserMetadataRequest.from_dict(update_asset_user_metadata_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVcGRhdGVBc3NldFVzZXJNZXRhZGF0YVJlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqbWV0YWRhdGEqKiB8IFsqKkFzc2V0TWV0YWRhdGFSZXF1ZXN0KipdKEFzc2V0TWV0YWRhdGFSZXF1ZXN0Lm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51cGRhdGVfYXNzZXRfdXNlcl9tZXRhZGF0YV9yZXF1ZXN0IGltcG9ydCBVcGRhdGVBc3NldFVzZXJNZXRhZGF0YVJlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFVwZGF0ZUFzc2V0VXNlck1ldGFkYXRhUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKdXBkYXRlX2Fzc2V0X3VzZXJfbWV0YWRhdGFfcmVxdWVzdF9pbnN0YW5jZSA9IFVwZGF0ZUFzc2V0VXNlck1ldGFkYXRhUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChVcGRhdGVBc3NldFVzZXJNZXRhZGF0YVJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdXBkYXRlX2Fzc2V0X3VzZXJfbWV0YWRhdGFfcmVxdWVzdF9kaWN0ID0gdXBkYXRlX2Fzc2V0X3VzZXJfbWV0YWRhdGFfcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXBkYXRlQXNzZXRVc2VyTWV0YWRhdGFSZXF1ZXN0IGZyb20gYSBkaWN0CnVwZGF0ZV9hc3NldF91c2VyX21ldGFkYXRhX3JlcXVlc3RfZnJvbV9kaWN0ID0gVXBkYXRlQXNzZXRVc2VyTWV0YWRhdGFSZXF1ZXN0LmZyb21fZGljdCh1cGRhdGVfYXNzZXRfdXNlcl9tZXRhZGF0YV9yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/UpdateCallbackHandlerRequest.md b/docs/UpdateCallbackHandlerRequest.md index 9833bda8..b0d08a1d 100644 --- a/docs/UpdateCallbackHandlerRequest.md +++ b/docs/UpdateCallbackHandlerRequest.md @@ -1,29 +1 @@ -# UpdateCallbackHandlerRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**callback_handler** | [**CallbackHandlerRequest**](CallbackHandlerRequest.md) | | [optional] - -## Example - -```python -from fireblocks.models.update_callback_handler_request import UpdateCallbackHandlerRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of UpdateCallbackHandlerRequest from a JSON string -update_callback_handler_request_instance = UpdateCallbackHandlerRequest.from_json(json) -# print the JSON string representation of the object -print(UpdateCallbackHandlerRequest.to_json()) - -# convert the object into a dict -update_callback_handler_request_dict = update_callback_handler_request_instance.to_dict() -# create an instance of UpdateCallbackHandlerRequest from a dict -update_callback_handler_request_from_dict = UpdateCallbackHandlerRequest.from_dict(update_callback_handler_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmNhbGxiYWNrX2hhbmRsZXIqKiB8IFsqKkNhbGxiYWNrSGFuZGxlclJlcXVlc3QqKl0oQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXBkYXRlX2NhbGxiYWNrX2hhbmRsZXJfcmVxdWVzdCBpbXBvcnQgVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKdXBkYXRlX2NhbGxiYWNrX2hhbmRsZXJfcmVxdWVzdF9pbnN0YW5jZSA9IFVwZGF0ZUNhbGxiYWNrSGFuZGxlclJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp1cGRhdGVfY2FsbGJhY2tfaGFuZGxlcl9yZXF1ZXN0X2RpY3QgPSB1cGRhdGVfY2FsbGJhY2tfaGFuZGxlcl9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXF1ZXN0IGZyb20gYSBkaWN0CnVwZGF0ZV9jYWxsYmFja19oYW5kbGVyX3JlcXVlc3RfZnJvbV9kaWN0ID0gVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdC5mcm9tX2RpY3QodXBkYXRlX2NhbGxiYWNrX2hhbmRsZXJfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/UpdateCallbackHandlerResponse.md b/docs/UpdateCallbackHandlerResponse.md index bb0ede28..1838ec64 100644 --- a/docs/UpdateCallbackHandlerResponse.md +++ b/docs/UpdateCallbackHandlerResponse.md @@ -1,30 +1 @@ -# UpdateCallbackHandlerResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The unique identifier of the API key | -**callback_handler** | [**CallbackHandlerRequest**](CallbackHandlerRequest.md) | | [optional] - -## Example - -```python -from fireblocks.models.update_callback_handler_response import UpdateCallbackHandlerResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of UpdateCallbackHandlerResponse from a JSON string -update_callback_handler_response_instance = UpdateCallbackHandlerResponse.from_json(json) -# print the JSON string representation of the object -print(UpdateCallbackHandlerResponse.to_json()) - -# convert the object into a dict -update_callback_handler_response_dict = update_callback_handler_response_instance.to_dict() -# create an instance of UpdateCallbackHandlerResponse from a dict -update_callback_handler_response_from_dict = UpdateCallbackHandlerResponse.from_dict(update_callback_handler_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgQVBJIGtleSB8IAoqKmNhbGxiYWNrX2hhbmRsZXIqKiB8IFsqKkNhbGxiYWNrSGFuZGxlclJlcXVlc3QqKl0oQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXBkYXRlX2NhbGxiYWNrX2hhbmRsZXJfcmVzcG9uc2UgaW1wb3J0IFVwZGF0ZUNhbGxiYWNrSGFuZGxlclJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKdXBkYXRlX2NhbGxiYWNrX2hhbmRsZXJfcmVzcG9uc2VfaW5zdGFuY2UgPSBVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp1cGRhdGVfY2FsbGJhY2tfaGFuZGxlcl9yZXNwb25zZV9kaWN0ID0gdXBkYXRlX2NhbGxiYWNrX2hhbmRsZXJfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFVwZGF0ZUNhbGxiYWNrSGFuZGxlclJlc3BvbnNlIGZyb20gYSBkaWN0CnVwZGF0ZV9jYWxsYmFja19oYW5kbGVyX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFVwZGF0ZUNhbGxiYWNrSGFuZGxlclJlc3BvbnNlLmZyb21fZGljdCh1cGRhdGVfY2FsbGJhY2tfaGFuZGxlcl9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/UpdateDraftRequest.md b/docs/UpdateDraftRequest.md index 333ff34f..02870f91 100644 --- a/docs/UpdateDraftRequest.md +++ b/docs/UpdateDraftRequest.md @@ -1,31 +1 @@ -# UpdateDraftRequest - -Request schema for updating draft with policy types and rules - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**policy_types** | [**List[PolicyType]**](PolicyType.md) | | -**rules** | [**List[PolicyRule]**](PolicyRule.md) | Array of policy rules | - -## Example - -```python -from fireblocks.models.update_draft_request import UpdateDraftRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of UpdateDraftRequest from a JSON string -update_draft_request_instance = UpdateDraftRequest.from_json(json) -# print the JSON string representation of the object -print(UpdateDraftRequest.to_json()) - -# convert the object into a dict -update_draft_request_dict = update_draft_request_instance.to_dict() -# create an instance of UpdateDraftRequest from a dict -update_draft_request_from_dict = UpdateDraftRequest.from_dict(update_draft_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVcGRhdGVEcmFmdFJlcXVlc3QKClJlcXVlc3Qgc2NoZW1hIGZvciB1cGRhdGluZyBkcmFmdCB3aXRoIHBvbGljeSB0eXBlcyBhbmQgcnVsZXMKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipwb2xpY3lfdHlwZXMqKiB8IFsqKkxpc3RbUG9saWN5VHlwZV0qKl0oUG9saWN5VHlwZS5tZCkgfCAgfCAKKipydWxlcyoqIHwgWyoqTGlzdFtQb2xpY3lSdWxlXSoqXShQb2xpY3lSdWxlLm1kKSB8IEFycmF5IG9mIHBvbGljeSBydWxlcyB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXBkYXRlX2RyYWZ0X3JlcXVlc3QgaW1wb3J0IFVwZGF0ZURyYWZ0UmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXBkYXRlRHJhZnRSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwp1cGRhdGVfZHJhZnRfcmVxdWVzdF9pbnN0YW5jZSA9IFVwZGF0ZURyYWZ0UmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChVcGRhdGVEcmFmdFJlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdXBkYXRlX2RyYWZ0X3JlcXVlc3RfZGljdCA9IHVwZGF0ZV9kcmFmdF9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVcGRhdGVEcmFmdFJlcXVlc3QgZnJvbSBhIGRpY3QKdXBkYXRlX2RyYWZ0X3JlcXVlc3RfZnJvbV9kaWN0ID0gVXBkYXRlRHJhZnRSZXF1ZXN0LmZyb21fZGljdCh1cGRhdGVfZHJhZnRfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/UpdateTagRequest.md b/docs/UpdateTagRequest.md index 0db9506d..25889acb 100644 --- a/docs/UpdateTagRequest.md +++ b/docs/UpdateTagRequest.md @@ -1,30 +1 @@ -# UpdateTagRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**label** | **str** | The tag label | [optional] -**description** | **str** | Description for the tag | [optional] - -## Example - -```python -from fireblocks.models.update_tag_request import UpdateTagRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of UpdateTagRequest from a JSON string -update_tag_request_instance = UpdateTagRequest.from_json(json) -# print the JSON string representation of the object -print(UpdateTagRequest.to_json()) - -# convert the object into a dict -update_tag_request_dict = update_tag_request_instance.to_dict() -# create an instance of UpdateTagRequest from a dict -update_tag_request_from_dict = UpdateTagRequest.from_dict(update_tag_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVcGRhdGVUYWdSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmxhYmVsKiogfCAqKnN0cioqIHwgVGhlIHRhZyBsYWJlbCB8IFtvcHRpb25hbF0gCioqZGVzY3JpcHRpb24qKiB8ICoqc3RyKiogfCBEZXNjcmlwdGlvbiBmb3IgdGhlIHRhZyB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51cGRhdGVfdGFnX3JlcXVlc3QgaW1wb3J0IFVwZGF0ZVRhZ1JlcXVlc3QKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFVwZGF0ZVRhZ1JlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCnVwZGF0ZV90YWdfcmVxdWVzdF9pbnN0YW5jZSA9IFVwZGF0ZVRhZ1JlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVXBkYXRlVGFnUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp1cGRhdGVfdGFnX3JlcXVlc3RfZGljdCA9IHVwZGF0ZV90YWdfcmVxdWVzdF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXBkYXRlVGFnUmVxdWVzdCBmcm9tIGEgZGljdAp1cGRhdGVfdGFnX3JlcXVlc3RfZnJvbV9kaWN0ID0gVXBkYXRlVGFnUmVxdWVzdC5mcm9tX2RpY3QodXBkYXRlX3RhZ19yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/UpdateTokenOwnershipStatusDto.md b/docs/UpdateTokenOwnershipStatusDto.md index e0d41dad..fc24a9b8 100644 --- a/docs/UpdateTokenOwnershipStatusDto.md +++ b/docs/UpdateTokenOwnershipStatusDto.md @@ -1,29 +1 @@ -# UpdateTokenOwnershipStatusDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status** | **str** | | - -## Example - -```python -from fireblocks.models.update_token_ownership_status_dto import UpdateTokenOwnershipStatusDto - -# TODO update the JSON string below -json = "{}" -# create an instance of UpdateTokenOwnershipStatusDto from a JSON string -update_token_ownership_status_dto_instance = UpdateTokenOwnershipStatusDto.from_json(json) -# print the JSON string representation of the object -print(UpdateTokenOwnershipStatusDto.to_json()) - -# convert the object into a dict -update_token_ownership_status_dto_dict = update_token_ownership_status_dto_instance.to_dict() -# create an instance of UpdateTokenOwnershipStatusDto from a dict -update_token_ownership_status_dto_from_dict = UpdateTokenOwnershipStatusDto.from_dict(update_token_ownership_status_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVcGRhdGVUb2tlbk93bmVyc2hpcFN0YXR1c0R0bwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzdGF0dXMqKiB8ICoqc3RyKiogfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV90b2tlbl9vd25lcnNoaXBfc3RhdHVzX2R0byBpbXBvcnQgVXBkYXRlVG9rZW5Pd25lcnNoaXBTdGF0dXNEdG8KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFVwZGF0ZVRva2VuT3duZXJzaGlwU3RhdHVzRHRvIGZyb20gYSBKU09OIHN0cmluZwp1cGRhdGVfdG9rZW5fb3duZXJzaGlwX3N0YXR1c19kdG9faW5zdGFuY2UgPSBVcGRhdGVUb2tlbk93bmVyc2hpcFN0YXR1c0R0by5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChVcGRhdGVUb2tlbk93bmVyc2hpcFN0YXR1c0R0by50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp1cGRhdGVfdG9rZW5fb3duZXJzaGlwX3N0YXR1c19kdG9fZGljdCA9IHVwZGF0ZV90b2tlbl9vd25lcnNoaXBfc3RhdHVzX2R0b19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXBkYXRlVG9rZW5Pd25lcnNoaXBTdGF0dXNEdG8gZnJvbSBhIGRpY3QKdXBkYXRlX3Rva2VuX293bmVyc2hpcF9zdGF0dXNfZHRvX2Zyb21fZGljdCA9IFVwZGF0ZVRva2VuT3duZXJzaGlwU3RhdHVzRHRvLmZyb21fZGljdCh1cGRhdGVfdG9rZW5fb3duZXJzaGlwX3N0YXR1c19kdG9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/UpdateVaultAccountAssetAddressRequest.md b/docs/UpdateVaultAccountAssetAddressRequest.md index a46a70ce..f37cafc5 100644 --- a/docs/UpdateVaultAccountAssetAddressRequest.md +++ b/docs/UpdateVaultAccountAssetAddressRequest.md @@ -1,29 +1 @@ -# UpdateVaultAccountAssetAddressRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**description** | **str** | The address description | [optional] - -## Example - -```python -from fireblocks.models.update_vault_account_asset_address_request import UpdateVaultAccountAssetAddressRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of UpdateVaultAccountAssetAddressRequest from a JSON string -update_vault_account_asset_address_request_instance = UpdateVaultAccountAssetAddressRequest.from_json(json) -# print the JSON string representation of the object -print(UpdateVaultAccountAssetAddressRequest.to_json()) - -# convert the object into a dict -update_vault_account_asset_address_request_dict = update_vault_account_asset_address_request_instance.to_dict() -# create an instance of UpdateVaultAccountAssetAddressRequest from a dict -update_vault_account_asset_address_request_from_dict = UpdateVaultAccountAssetAddressRequest.from_dict(update_vault_account_asset_address_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVcGRhdGVWYXVsdEFjY291bnRBc3NldEFkZHJlc3NSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmRlc2NyaXB0aW9uKiogfCAqKnN0cioqIHwgVGhlIGFkZHJlc3MgZGVzY3JpcHRpb24gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzc19yZXF1ZXN0IGltcG9ydCBVcGRhdGVWYXVsdEFjY291bnRBc3NldEFkZHJlc3NSZXF1ZXN0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVcGRhdGVWYXVsdEFjY291bnRBc3NldEFkZHJlc3NSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwp1cGRhdGVfdmF1bHRfYWNjb3VudF9hc3NldF9hZGRyZXNzX3JlcXVlc3RfaW5zdGFuY2UgPSBVcGRhdGVWYXVsdEFjY291bnRBc3NldEFkZHJlc3NSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFVwZGF0ZVZhdWx0QWNjb3VudEFzc2V0QWRkcmVzc1JlcXVlc3QudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzc19yZXF1ZXN0X2RpY3QgPSB1cGRhdGVfdmF1bHRfYWNjb3VudF9hc3NldF9hZGRyZXNzX3JlcXVlc3RfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFVwZGF0ZVZhdWx0QWNjb3VudEFzc2V0QWRkcmVzc1JlcXVlc3QgZnJvbSBhIGRpY3QKdXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzc19yZXF1ZXN0X2Zyb21fZGljdCA9IFVwZGF0ZVZhdWx0QWNjb3VudEFzc2V0QWRkcmVzc1JlcXVlc3QuZnJvbV9kaWN0KHVwZGF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3NfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/UpdateVaultAccountRequest.md b/docs/UpdateVaultAccountRequest.md index 4722e413..b06bba38 100644 --- a/docs/UpdateVaultAccountRequest.md +++ b/docs/UpdateVaultAccountRequest.md @@ -1,29 +1 @@ -# UpdateVaultAccountRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | Account Name | [optional] - -## Example - -```python -from fireblocks.models.update_vault_account_request import UpdateVaultAccountRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of UpdateVaultAccountRequest from a JSON string -update_vault_account_request_instance = UpdateVaultAccountRequest.from_json(json) -# print the JSON string representation of the object -print(UpdateVaultAccountRequest.to_json()) - -# convert the object into a dict -update_vault_account_request_dict = update_vault_account_request_instance.to_dict() -# create an instance of UpdateVaultAccountRequest from a dict -update_vault_account_request_from_dict = UpdateVaultAccountRequest.from_dict(update_vault_account_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVcGRhdGVWYXVsdEFjY291bnRSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKm5hbWUqKiB8ICoqc3RyKiogfCBBY2NvdW50IE5hbWUgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXBkYXRlX3ZhdWx0X2FjY291bnRfcmVxdWVzdCBpbXBvcnQgVXBkYXRlVmF1bHRBY2NvdW50UmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXBkYXRlVmF1bHRBY2NvdW50UmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKdXBkYXRlX3ZhdWx0X2FjY291bnRfcmVxdWVzdF9pbnN0YW5jZSA9IFVwZGF0ZVZhdWx0QWNjb3VudFJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVXBkYXRlVmF1bHRBY2NvdW50UmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp1cGRhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0X2RpY3QgPSB1cGRhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVcGRhdGVWYXVsdEFjY291bnRSZXF1ZXN0IGZyb20gYSBkaWN0CnVwZGF0ZV92YXVsdF9hY2NvdW50X3JlcXVlc3RfZnJvbV9kaWN0ID0gVXBkYXRlVmF1bHRBY2NvdW50UmVxdWVzdC5mcm9tX2RpY3QodXBkYXRlX3ZhdWx0X2FjY291bnRfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/UpdateWebhookRequest.md b/docs/UpdateWebhookRequest.md index dbf9587a..f26b25b7 100644 --- a/docs/UpdateWebhookRequest.md +++ b/docs/UpdateWebhookRequest.md @@ -1,32 +1 @@ -# UpdateWebhookRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**url** | **str** | The url of the webhook where notifications will be sent. URL must be valid, unique and https. | [optional] -**description** | **str** | description of the webhook of what it is used for.should not contain special characters. | [optional] -**events** | [**List[WebhookEvent]**](WebhookEvent.md) | The events that the webhook will be subscribed to | [optional] -**enabled** | **bool** | The status of the webhook | [optional] - -## Example - -```python -from fireblocks.models.update_webhook_request import UpdateWebhookRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of UpdateWebhookRequest from a JSON string -update_webhook_request_instance = UpdateWebhookRequest.from_json(json) -# print the JSON string representation of the object -print(UpdateWebhookRequest.to_json()) - -# convert the object into a dict -update_webhook_request_dict = update_webhook_request_instance.to_dict() -# create an instance of UpdateWebhookRequest from a dict -update_webhook_request_from_dict = UpdateWebhookRequest.from_dict(update_webhook_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVcGRhdGVXZWJob29rUmVxdWVzdAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip1cmwqKiB8ICoqc3RyKiogfCBUaGUgdXJsIG9mIHRoZSB3ZWJob29rIHdoZXJlIG5vdGlmaWNhdGlvbnMgd2lsbCBiZSBzZW50LiBVUkwgbXVzdCBiZSB2YWxpZCwgdW5pcXVlIGFuZCBodHRwcy4gfCBbb3B0aW9uYWxdIAoqKmRlc2NyaXB0aW9uKiogfCAqKnN0cioqIHwgZGVzY3JpcHRpb24gb2YgdGhlIHdlYmhvb2sgb2Ygd2hhdCBpdCBpcyB1c2VkIGZvci5zaG91bGQgbm90IGNvbnRhaW4gc3BlY2lhbCBjaGFyYWN0ZXJzLiB8IFtvcHRpb25hbF0gCioqZXZlbnRzKiogfCBbKipMaXN0W1dlYmhvb2tFdmVudF0qKl0oV2ViaG9va0V2ZW50Lm1kKSB8IFRoZSBldmVudHMgdGhhdCB0aGUgd2ViaG9vayB3aWxsIGJlIHN1YnNjcmliZWQgdG8gfCBbb3B0aW9uYWxdIAoqKmVuYWJsZWQqKiB8ICoqYm9vbCoqIHwgVGhlIHN0YXR1cyBvZiB0aGUgd2ViaG9vayB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51cGRhdGVfd2ViaG9va19yZXF1ZXN0IGltcG9ydCBVcGRhdGVXZWJob29rUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXBkYXRlV2ViaG9va1JlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nCnVwZGF0ZV93ZWJob29rX3JlcXVlc3RfaW5zdGFuY2UgPSBVcGRhdGVXZWJob29rUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChVcGRhdGVXZWJob29rUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp1cGRhdGVfd2ViaG9va19yZXF1ZXN0X2RpY3QgPSB1cGRhdGVfd2ViaG9va19yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVcGRhdGVXZWJob29rUmVxdWVzdCBmcm9tIGEgZGljdAp1cGRhdGVfd2ViaG9va19yZXF1ZXN0X2Zyb21fZGljdCA9IFVwZGF0ZVdlYmhvb2tSZXF1ZXN0LmZyb21fZGljdCh1cGRhdGVfd2ViaG9va19yZXF1ZXN0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/UsWirePaymentInfo.md b/docs/UsWirePaymentInfo.md index 2b748f2c..824ceb6f 100644 --- a/docs/UsWirePaymentInfo.md +++ b/docs/UsWirePaymentInfo.md @@ -1,44 +1 @@ -# UsWirePaymentInfo - -US Wire payment information for US domestic wire transfers - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**rail** | **str** | The payment rail type for US wire transfers | -**addressing_system** | **str** | The addressing system used for US wire transfers | -**account_holder_given_name** | **str** | The given name (first name) of the account holder | -**account_holder_surname** | **str** | The surname (last name) of the account holder | -**country** | **str** | The country for the transfer (ISO 3166-1 alpha-2 code) | -**account_number** | **str** | The bank account number | -**routing_number** | **str** | The bank routing number (ABA routing number) | -**swift_code** | **str** | The SWIFT/BIC code of the bank | -**bank_name** | **str** | The name of the bank | -**bank_address_line** | **str** | The street address of the bank | -**bank_address_city** | **str** | The city where the bank is located | -**bank_address_state** | **str** | The state where the bank is located | [optional] -**bank_address_country** | **str** | The country where the bank is located (ISO 3166-1 alpha-2 code) | -**bank_address_postal_code** | **str** | The postal code of the bank's address | -**branch_number** | **str** | The branch number of the bank | [optional] - -## Example - -```python -from fireblocks.models.us_wire_payment_info import UsWirePaymentInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of UsWirePaymentInfo from a JSON string -us_wire_payment_info_instance = UsWirePaymentInfo.from_json(json) -# print the JSON string representation of the object -print(UsWirePaymentInfo.to_json()) - -# convert the object into a dict -us_wire_payment_info_dict = us_wire_payment_info_instance.to_dict() -# create an instance of UsWirePaymentInfo from a dict -us_wire_payment_info_from_dict = UsWirePaymentInfo.from_dict(us_wire_payment_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVc1dpcmVQYXltZW50SW5mbwoKVVMgV2lyZSBwYXltZW50IGluZm9ybWF0aW9uIGZvciBVUyBkb21lc3RpYyB3aXJlIHRyYW5zZmVycwoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnJhaWwqKiB8ICoqc3RyKiogfCBUaGUgcGF5bWVudCByYWlsIHR5cGUgZm9yIFVTIHdpcmUgdHJhbnNmZXJzIHwgCioqYWRkcmVzc2luZ19zeXN0ZW0qKiB8ICoqc3RyKiogfCBUaGUgYWRkcmVzc2luZyBzeXN0ZW0gdXNlZCBmb3IgVVMgd2lyZSB0cmFuc2ZlcnMgfCAKKiphY2NvdW50X2hvbGRlcl9naXZlbl9uYW1lKiogfCAqKnN0cioqIHwgVGhlIGdpdmVuIG5hbWUgKGZpcnN0IG5hbWUpIG9mIHRoZSBhY2NvdW50IGhvbGRlciB8IAoqKmFjY291bnRfaG9sZGVyX3N1cm5hbWUqKiB8ICoqc3RyKiogfCBUaGUgc3VybmFtZSAobGFzdCBuYW1lKSBvZiB0aGUgYWNjb3VudCBob2xkZXIgfCAKKipjb3VudHJ5KiogfCAqKnN0cioqIHwgVGhlIGNvdW50cnkgZm9yIHRoZSB0cmFuc2ZlciAoSVNPIDMxNjYtMSBhbHBoYS0yIGNvZGUpIHwgCioqYWNjb3VudF9udW1iZXIqKiB8ICoqc3RyKiogfCBUaGUgYmFuayBhY2NvdW50IG51bWJlciB8IAoqKnJvdXRpbmdfbnVtYmVyKiogfCAqKnN0cioqIHwgVGhlIGJhbmsgcm91dGluZyBudW1iZXIgKEFCQSByb3V0aW5nIG51bWJlcikgfCAKKipzd2lmdF9jb2RlKiogfCAqKnN0cioqIHwgVGhlIFNXSUZUL0JJQyBjb2RlIG9mIHRoZSBiYW5rIHwgCioqYmFua19uYW1lKiogfCAqKnN0cioqIHwgVGhlIG5hbWUgb2YgdGhlIGJhbmsgfCAKKipiYW5rX2FkZHJlc3NfbGluZSoqIHwgKipzdHIqKiB8IFRoZSBzdHJlZXQgYWRkcmVzcyBvZiB0aGUgYmFuayB8IAoqKmJhbmtfYWRkcmVzc19jaXR5KiogfCAqKnN0cioqIHwgVGhlIGNpdHkgd2hlcmUgdGhlIGJhbmsgaXMgbG9jYXRlZCB8IAoqKmJhbmtfYWRkcmVzc19zdGF0ZSoqIHwgKipzdHIqKiB8IFRoZSBzdGF0ZSB3aGVyZSB0aGUgYmFuayBpcyBsb2NhdGVkIHwgW29wdGlvbmFsXSAKKipiYW5rX2FkZHJlc3NfY291bnRyeSoqIHwgKipzdHIqKiB8IFRoZSBjb3VudHJ5IHdoZXJlIHRoZSBiYW5rIGlzIGxvY2F0ZWQgKElTTyAzMTY2LTEgYWxwaGEtMiBjb2RlKSB8IAoqKmJhbmtfYWRkcmVzc19wb3N0YWxfY29kZSoqIHwgKipzdHIqKiB8IFRoZSBwb3N0YWwgY29kZSBvZiB0aGUgYmFuayYjMzk7cyBhZGRyZXNzIHwgCioqYnJhbmNoX251bWJlcioqIHwgKipzdHIqKiB8IFRoZSBicmFuY2ggbnVtYmVyIG9mIHRoZSBiYW5rIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzX3dpcmVfcGF5bWVudF9pbmZvIGltcG9ydCBVc1dpcmVQYXltZW50SW5mbwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXNXaXJlUGF5bWVudEluZm8gZnJvbSBhIEpTT04gc3RyaW5nCnVzX3dpcmVfcGF5bWVudF9pbmZvX2luc3RhbmNlID0gVXNXaXJlUGF5bWVudEluZm8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVXNXaXJlUGF5bWVudEluZm8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdXNfd2lyZV9wYXltZW50X2luZm9fZGljdCA9IHVzX3dpcmVfcGF5bWVudF9pbmZvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVc1dpcmVQYXltZW50SW5mbyBmcm9tIGEgZGljdAp1c193aXJlX3BheW1lbnRfaW5mb19mcm9tX2RpY3QgPSBVc1dpcmVQYXltZW50SW5mby5mcm9tX2RpY3QodXNfd2lyZV9wYXltZW50X2luZm9fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/UserGroupCreateRequest.md b/docs/UserGroupCreateRequest.md index 38c9bdc0..a2ead211 100644 --- a/docs/UserGroupCreateRequest.md +++ b/docs/UserGroupCreateRequest.md @@ -1,30 +1 @@ -# UserGroupCreateRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**group_name** | **str** | | [optional] -**member_ids** | **List[str]** | | [optional] - -## Example - -```python -from fireblocks.models.user_group_create_request import UserGroupCreateRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of UserGroupCreateRequest from a JSON string -user_group_create_request_instance = UserGroupCreateRequest.from_json(json) -# print the JSON string representation of the object -print(UserGroupCreateRequest.to_json()) - -# convert the object into a dict -user_group_create_request_dict = user_group_create_request_instance.to_dict() -# create an instance of UserGroupCreateRequest from a dict -user_group_create_request_from_dict = UserGroupCreateRequest.from_dict(user_group_create_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVc2VyR3JvdXBDcmVhdGVSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmdyb3VwX25hbWUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKm1lbWJlcl9pZHMqKiB8ICoqTGlzdFtzdHJdKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXNlcl9ncm91cF9jcmVhdGVfcmVxdWVzdCBpbXBvcnQgVXNlckdyb3VwQ3JlYXRlUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXNlckdyb3VwQ3JlYXRlUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKdXNlcl9ncm91cF9jcmVhdGVfcmVxdWVzdF9pbnN0YW5jZSA9IFVzZXJHcm91cENyZWF0ZVJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVXNlckdyb3VwQ3JlYXRlUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp1c2VyX2dyb3VwX2NyZWF0ZV9yZXF1ZXN0X2RpY3QgPSB1c2VyX2dyb3VwX2NyZWF0ZV9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVc2VyR3JvdXBDcmVhdGVSZXF1ZXN0IGZyb20gYSBkaWN0CnVzZXJfZ3JvdXBfY3JlYXRlX3JlcXVlc3RfZnJvbV9kaWN0ID0gVXNlckdyb3VwQ3JlYXRlUmVxdWVzdC5mcm9tX2RpY3QodXNlcl9ncm91cF9jcmVhdGVfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/UserGroupCreateResponse.md b/docs/UserGroupCreateResponse.md index b14f1a20..3747f188 100644 --- a/docs/UserGroupCreateResponse.md +++ b/docs/UserGroupCreateResponse.md @@ -1,32 +1 @@ -# UserGroupCreateResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**name** | **str** | | [optional] -**id** | **str** | | [optional] -**member_ids** | **List[str]** | | [optional] -**status** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.user_group_create_response import UserGroupCreateResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of UserGroupCreateResponse from a JSON string -user_group_create_response_instance = UserGroupCreateResponse.from_json(json) -# print the JSON string representation of the object -print(UserGroupCreateResponse.to_json()) - -# convert the object into a dict -user_group_create_response_dict = user_group_create_response_instance.to_dict() -# create an instance of UserGroupCreateResponse from a dict -user_group_create_response_from_dict = UserGroupCreateResponse.from_dict(user_group_create_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVc2VyR3JvdXBDcmVhdGVSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipuYW1lKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKippZCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqbWVtYmVyX2lkcyoqIHwgKipMaXN0W3N0cl0qKiB8ICB8IFtvcHRpb25hbF0gCioqc3RhdHVzKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfZ3JvdXBfY3JlYXRlX3Jlc3BvbnNlIGltcG9ydCBVc2VyR3JvdXBDcmVhdGVSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXNlckdyb3VwQ3JlYXRlUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnVzZXJfZ3JvdXBfY3JlYXRlX3Jlc3BvbnNlX2luc3RhbmNlID0gVXNlckdyb3VwQ3JlYXRlUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVXNlckdyb3VwQ3JlYXRlUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdXNlcl9ncm91cF9jcmVhdGVfcmVzcG9uc2VfZGljdCA9IHVzZXJfZ3JvdXBfY3JlYXRlX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVc2VyR3JvdXBDcmVhdGVSZXNwb25zZSBmcm9tIGEgZGljdAp1c2VyX2dyb3VwX2NyZWF0ZV9yZXNwb25zZV9mcm9tX2RpY3QgPSBVc2VyR3JvdXBDcmVhdGVSZXNwb25zZS5mcm9tX2RpY3QodXNlcl9ncm91cF9jcmVhdGVfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/UserGroupResponse.md b/docs/UserGroupResponse.md index 025353fc..d3f8720d 100644 --- a/docs/UserGroupResponse.md +++ b/docs/UserGroupResponse.md @@ -1,32 +1 @@ -# UserGroupResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | [optional] -**name** | **str** | | [optional] -**status** | **str** | | [optional] -**member_ids** | **List[str]** | | [optional] - -## Example - -```python -from fireblocks.models.user_group_response import UserGroupResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of UserGroupResponse from a JSON string -user_group_response_instance = UserGroupResponse.from_json(json) -# print the JSON string representation of the object -print(UserGroupResponse.to_json()) - -# convert the object into a dict -user_group_response_dict = user_group_response_instance.to_dict() -# create an instance of UserGroupResponse from a dict -user_group_response_from_dict = UserGroupResponse.from_dict(user_group_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVc2VyR3JvdXBSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqbmFtZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqc3RhdHVzKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKiptZW1iZXJfaWRzKiogfCAqKkxpc3Rbc3RyXSoqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfZ3JvdXBfcmVzcG9uc2UgaW1wb3J0IFVzZXJHcm91cFJlc3BvbnNlCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVc2VyR3JvdXBSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmcKdXNlcl9ncm91cF9yZXNwb25zZV9pbnN0YW5jZSA9IFVzZXJHcm91cFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFVzZXJHcm91cFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnVzZXJfZ3JvdXBfcmVzcG9uc2VfZGljdCA9IHVzZXJfZ3JvdXBfcmVzcG9uc2VfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFVzZXJHcm91cFJlc3BvbnNlIGZyb20gYSBkaWN0CnVzZXJfZ3JvdXBfcmVzcG9uc2VfZnJvbV9kaWN0ID0gVXNlckdyb3VwUmVzcG9uc2UuZnJvbV9kaWN0KHVzZXJfZ3JvdXBfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/UserGroupUpdateRequest.md b/docs/UserGroupUpdateRequest.md index b085e38b..e689b151 100644 --- a/docs/UserGroupUpdateRequest.md +++ b/docs/UserGroupUpdateRequest.md @@ -1,30 +1 @@ -# UserGroupUpdateRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**group_name** | **str** | | [optional] -**member_ids** | **List[str]** | | [optional] - -## Example - -```python -from fireblocks.models.user_group_update_request import UserGroupUpdateRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of UserGroupUpdateRequest from a JSON string -user_group_update_request_instance = UserGroupUpdateRequest.from_json(json) -# print the JSON string representation of the object -print(UserGroupUpdateRequest.to_json()) - -# convert the object into a dict -user_group_update_request_dict = user_group_update_request_instance.to_dict() -# create an instance of UserGroupUpdateRequest from a dict -user_group_update_request_from_dict = UserGroupUpdateRequest.from_dict(user_group_update_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVc2VyR3JvdXBVcGRhdGVSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmdyb3VwX25hbWUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKm1lbWJlcl9pZHMqKiB8ICoqTGlzdFtzdHJdKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXNlcl9ncm91cF91cGRhdGVfcmVxdWVzdCBpbXBvcnQgVXNlckdyb3VwVXBkYXRlUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXNlckdyb3VwVXBkYXRlUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKdXNlcl9ncm91cF91cGRhdGVfcmVxdWVzdF9pbnN0YW5jZSA9IFVzZXJHcm91cFVwZGF0ZVJlcXVlc3QuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVXNlckdyb3VwVXBkYXRlUmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp1c2VyX2dyb3VwX3VwZGF0ZV9yZXF1ZXN0X2RpY3QgPSB1c2VyX2dyb3VwX3VwZGF0ZV9yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVc2VyR3JvdXBVcGRhdGVSZXF1ZXN0IGZyb20gYSBkaWN0CnVzZXJfZ3JvdXBfdXBkYXRlX3JlcXVlc3RfZnJvbV9kaWN0ID0gVXNlckdyb3VwVXBkYXRlUmVxdWVzdC5mcm9tX2RpY3QodXNlcl9ncm91cF91cGRhdGVfcmVxdWVzdF9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/UserGroupsBetaApi.md b/docs/UserGroupsBetaApi.md index d1ae8237..7bd4b55b 100644 --- a/docs/UserGroupsBetaApi.md +++ b/docs/UserGroupsBetaApi.md @@ -1,402 +1 @@ -# fireblocks.UserGroupsBetaApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**create_user_group**](UserGroupsBetaApi.md#create_user_group) | **POST** /management/user_groups | Create user group -[**delete_user_group**](UserGroupsBetaApi.md#delete_user_group) | **DELETE** /management/user_groups/{groupId} | Delete user group -[**get_user_group**](UserGroupsBetaApi.md#get_user_group) | **GET** /management/user_groups/{groupId} | Get user group -[**get_user_groups**](UserGroupsBetaApi.md#get_user_groups) | **GET** /management/user_groups | List user groups -[**update_user_group**](UserGroupsBetaApi.md#update_user_group) | **PUT** /management/user_groups/{groupId} | Update user group - - -# **create_user_group** -> CreateUserGroupResponse create_user_group(user_group_create_request, idempotency_key=idempotency_key) - -Create user group - -Create a new user group. Users with the Viewer role cannot be added to groups. -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.create_user_group_response import CreateUserGroupResponse -from fireblocks.models.user_group_create_request import UserGroupCreateRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - user_group_create_request = fireblocks.UserGroupCreateRequest() # UserGroupCreateRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Create user group - api_response = fireblocks.user_groups_beta.create_user_group(user_group_create_request, idempotency_key=idempotency_key).result() - print("The response of UserGroupsBetaApi->create_user_group:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling UserGroupsBetaApi->create_user_group: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **user_group_create_request** | [**UserGroupCreateRequest**](UserGroupCreateRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**CreateUserGroupResponse**](CreateUserGroupResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | User group created and pending approval | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **delete_user_group** -> delete_user_group(group_id) - -Delete user group - -Delete a user group by ID.
- -**Note**: -- This endpoint is now in Beta, disabled for general availability at this time. -- Please note that this endpoint is available only for API keys with Admin permissions. - - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - group_id = 'group_id_example' # str | The ID of the user group - - try: - # Delete user group - fireblocks.user_groups_beta.delete_user_group(group_id).result() - except Exception as e: - print("Exception when calling UserGroupsBetaApi->delete_user_group: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **group_id** | **str**| The ID of the user group | - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**204** | Request to delete user group submitted for approval | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_user_group** -> UserGroupResponse get_user_group(group_id) - -Get user group - -Get a user group by ID.
- -**Note**: -- This endpoint is now in Beta, disabled for general availability at this time. -- Please note that this endpoint is available only for API keys with Admin permissions. - - -### Example - - -```python -from fireblocks.models.user_group_response import UserGroupResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - group_id = 'group_id_example' # str | The ID of the user group - - try: - # Get user group - api_response = fireblocks.user_groups_beta.get_user_group(group_id).result() - print("The response of UserGroupsBetaApi->get_user_group:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling UserGroupsBetaApi->get_user_group: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **group_id** | **str**| The ID of the user group | - -### Return type - -[**UserGroupResponse**](UserGroupResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | User group | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_user_groups** -> List[UserGroupResponse] get_user_groups() - -List user groups - -Get all user groups in your workspace - -- Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.user_group_response import UserGroupResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # List user groups - api_response = fireblocks.user_groups_beta.get_user_groups().result() - print("The response of UserGroupsBetaApi->get_user_groups:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling UserGroupsBetaApi->get_user_groups: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**List[UserGroupResponse]**](UserGroupResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | List of the user groups in your workspace | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_user_group** -> UserGroupCreateResponse update_user_group(group_id, user_group_update_request, idempotency_key=idempotency_key) - -Update user group - -Update a user group by ID.
- -**Note**: -- This endpoint is now in Beta, disabled for general availability at this time. -- Please note that this endpoint is available only for API keys with Admin permissions. - - -### Example - - -```python -from fireblocks.models.user_group_create_response import UserGroupCreateResponse -from fireblocks.models.user_group_update_request import UserGroupUpdateRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - group_id = 'group_id_example' # str | The ID of the user group - user_group_update_request = fireblocks.UserGroupUpdateRequest() # UserGroupUpdateRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Update user group - api_response = fireblocks.user_groups_beta.update_user_group(group_id, user_group_update_request, idempotency_key=idempotency_key).result() - print("The response of UserGroupsBetaApi->update_user_group:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling UserGroupsBetaApi->update_user_group: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **group_id** | **str**| The ID of the user group | - **user_group_update_request** | [**UserGroupUpdateRequest**](UserGroupUpdateRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**UserGroupCreateResponse**](UserGroupCreateResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | User group updated and the changes are pending approval | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLlVzZXJHcm91cHNCZXRhQXBpCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gKmh0dHBzOi8vYXBpLmZpcmVibG9ja3MuaW8vdjEqCgpNZXRob2QgfCBIVFRQIHJlcXVlc3QgfCBEZXNjcmlwdGlvbgotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KWyoqY3JlYXRlX3VzZXJfZ3JvdXAqKl0oVXNlckdyb3Vwc0JldGFBcGkubWQjY3JlYXRlX3VzZXJfZ3JvdXApIHwgKipQT1NUKiogL21hbmFnZW1lbnQvdXNlcl9ncm91cHMgfCBDcmVhdGUgdXNlciBncm91cApbKipkZWxldGVfdXNlcl9ncm91cCoqXShVc2VyR3JvdXBzQmV0YUFwaS5tZCNkZWxldGVfdXNlcl9ncm91cCkgfCAqKkRFTEVURSoqIC9tYW5hZ2VtZW50L3VzZXJfZ3JvdXBzL3tncm91cElkfSB8IERlbGV0ZSB1c2VyIGdyb3VwClsqKmdldF91c2VyX2dyb3VwKipdKFVzZXJHcm91cHNCZXRhQXBpLm1kI2dldF91c2VyX2dyb3VwKSB8ICoqR0VUKiogL21hbmFnZW1lbnQvdXNlcl9ncm91cHMve2dyb3VwSWR9IHwgR2V0IHVzZXIgZ3JvdXAKWyoqZ2V0X3VzZXJfZ3JvdXBzKipdKFVzZXJHcm91cHNCZXRhQXBpLm1kI2dldF91c2VyX2dyb3VwcykgfCAqKkdFVCoqIC9tYW5hZ2VtZW50L3VzZXJfZ3JvdXBzIHwgTGlzdCB1c2VyIGdyb3VwcwpbKip1cGRhdGVfdXNlcl9ncm91cCoqXShVc2VyR3JvdXBzQmV0YUFwaS5tZCN1cGRhdGVfdXNlcl9ncm91cCkgfCAqKlBVVCoqIC9tYW5hZ2VtZW50L3VzZXJfZ3JvdXBzL3tncm91cElkfSB8IFVwZGF0ZSB1c2VyIGdyb3VwCgoKIyAqKmNyZWF0ZV91c2VyX2dyb3VwKioKPiBDcmVhdGVVc2VyR3JvdXBSZXNwb25zZSBjcmVhdGVfdXNlcl9ncm91cCh1c2VyX2dyb3VwX2NyZWF0ZV9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKQ3JlYXRlIHVzZXIgZ3JvdXAKCkNyZWF0ZSBhIG5ldyB1c2VyIGdyb3VwLiBVc2VycyB3aXRoIHRoZSBWaWV3ZXIgcm9sZSBjYW5ub3QgYmUgYWRkZWQgdG8gZ3JvdXBzLgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbi4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3VzZXJfZ3JvdXBfcmVzcG9uc2UgaW1wb3J0IENyZWF0ZVVzZXJHcm91cFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXNlcl9ncm91cF9jcmVhdGVfcmVxdWVzdCBpbXBvcnQgVXNlckdyb3VwQ3JlYXRlUmVxdWVzdApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB1c2VyX2dyb3VwX2NyZWF0ZV9yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5Vc2VyR3JvdXBDcmVhdGVSZXF1ZXN0KCkgIyBVc2VyR3JvdXBDcmVhdGVSZXF1ZXN0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ3JlYXRlIHVzZXIgZ3JvdXAKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnVzZXJfZ3JvdXBzX2JldGEuY3JlYXRlX3VzZXJfZ3JvdXAodXNlcl9ncm91cF9jcmVhdGVfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFVzZXJHcm91cHNCZXRhQXBpLT5jcmVhdGVfdXNlcl9ncm91cDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBVc2VyR3JvdXBzQmV0YUFwaS0+Y3JlYXRlX3VzZXJfZ3JvdXA6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnVzZXJfZ3JvdXBfY3JlYXRlX3JlcXVlc3QqKiB8IFsqKlVzZXJHcm91cENyZWF0ZVJlcXVlc3QqKl0oVXNlckdyb3VwQ3JlYXRlUmVxdWVzdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipDcmVhdGVVc2VyR3JvdXBSZXNwb25zZSoqXShDcmVhdGVVc2VyR3JvdXBSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgVXNlciBncm91cCBjcmVhdGVkIGFuZCBwZW5kaW5nIGFwcHJvdmFsIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipkZWxldGVfdXNlcl9ncm91cCoqCj4gZGVsZXRlX3VzZXJfZ3JvdXAoZ3JvdXBfaWQpCgpEZWxldGUgdXNlciBncm91cAoKRGVsZXRlIGEgdXNlciBncm91cCBieSBJRC48L2JyPgoKKipOb3RlKio6Ci0gVGhpcyBlbmRwb2ludCBpcyBub3cgaW4gQmV0YSwgZGlzYWJsZWQgZm9yIGdlbmVyYWwgYXZhaWxhYmlsaXR5IGF0IHRoaXMgdGltZS4KLSBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgZW5kcG9pbnQgaXMgYXZhaWxhYmxlIG9ubHkgZm9yIEFQSSBrZXlzIHdpdGggQWRtaW4gcGVybWlzc2lvbnMuCgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGdyb3VwX2lkID0gJ2dyb3VwX2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSB1c2VyIGdyb3VwCgogICAgdHJ5OgogICAgICAgICMgRGVsZXRlIHVzZXIgZ3JvdXAKICAgICAgICBmaXJlYmxvY2tzLnVzZXJfZ3JvdXBzX2JldGEuZGVsZXRlX3VzZXJfZ3JvdXAoZ3JvdXBfaWQpLnJlc3VsdCgpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVXNlckdyb3Vwc0JldGFBcGktPmRlbGV0ZV91c2VyX2dyb3VwOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipncm91cF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSB1c2VyIGdyb3VwIHwgCgojIyMgUmV0dXJuIHR5cGUKCnZvaWQgKGVtcHR5IHJlc3BvbnNlIGJvZHkpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjA0KiogfCBSZXF1ZXN0IHRvIGRlbGV0ZSB1c2VyIGdyb3VwIHN1Ym1pdHRlZCBmb3IgYXBwcm92YWwgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF91c2VyX2dyb3VwKioKPiBVc2VyR3JvdXBSZXNwb25zZSBnZXRfdXNlcl9ncm91cChncm91cF9pZCkKCkdldCB1c2VyIGdyb3VwCgpHZXQgYSB1c2VyIGdyb3VwIGJ5IElELjwvYnI+CgoqKk5vdGUqKjoKLSBUaGlzIGVuZHBvaW50IGlzIG5vdyBpbiBCZXRhLCBkaXNhYmxlZCBmb3IgZ2VuZXJhbCBhdmFpbGFiaWxpdHkgYXQgdGhpcyB0aW1lLgotIFBsZWFzZSBub3RlIHRoYXQgdGhpcyBlbmRwb2ludCBpcyBhdmFpbGFibGUgb25seSBmb3IgQVBJIGtleXMgd2l0aCBBZG1pbiBwZXJtaXNzaW9ucy4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfZ3JvdXBfcmVzcG9uc2UgaW1wb3J0IFVzZXJHcm91cFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGdyb3VwX2lkID0gJ2dyb3VwX2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSB1c2VyIGdyb3VwCgogICAgdHJ5OgogICAgICAgICMgR2V0IHVzZXIgZ3JvdXAKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnVzZXJfZ3JvdXBzX2JldGEuZ2V0X3VzZXJfZ3JvdXAoZ3JvdXBfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBVc2VyR3JvdXBzQmV0YUFwaS0+Z2V0X3VzZXJfZ3JvdXA6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVXNlckdyb3Vwc0JldGFBcGktPmdldF91c2VyX2dyb3VwOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipncm91cF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSB1c2VyIGdyb3VwIHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKlVzZXJHcm91cFJlc3BvbnNlKipdKFVzZXJHcm91cFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgVXNlciBncm91cCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X3VzZXJfZ3JvdXBzKioKPiBMaXN0W1VzZXJHcm91cFJlc3BvbnNlXSBnZXRfdXNlcl9ncm91cHMoKQoKTGlzdCB1c2VyIGdyb3VwcwoKR2V0IGFsbCB1c2VyIGdyb3VwcyBpbiB5b3VyIHdvcmtzcGFjZQoKLSBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgZW5kcG9pbnQgaXMgYXZhaWxhYmxlIG9ubHkgZm9yIEFQSSBrZXlzIHdpdGggQWRtaW4vTm9uIFNpZ25pbmcgQWRtaW4gcGVybWlzc2lvbnMuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51c2VyX2dyb3VwX3Jlc3BvbnNlIGltcG9ydCBVc2VyR3JvdXBSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CgogICAgdHJ5OgogICAgICAgICMgTGlzdCB1c2VyIGdyb3VwcwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudXNlcl9ncm91cHNfYmV0YS5nZXRfdXNlcl9ncm91cHMoKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVXNlckdyb3Vwc0JldGFBcGktPmdldF91c2VyX2dyb3VwczpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBVc2VyR3JvdXBzQmV0YUFwaS0+Z2V0X3VzZXJfZ3JvdXBzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKVGhpcyBlbmRwb2ludCBkb2VzIG5vdCBuZWVkIGFueSBwYXJhbWV0ZXIuCgojIyMgUmV0dXJuIHR5cGUKClsqKkxpc3RbVXNlckdyb3VwUmVzcG9uc2VdKipdKFVzZXJHcm91cFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgTGlzdCBvZiB0aGUgdXNlciBncm91cHMgaW4geW91ciB3b3Jrc3BhY2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnVwZGF0ZV91c2VyX2dyb3VwKioKPiBVc2VyR3JvdXBDcmVhdGVSZXNwb25zZSB1cGRhdGVfdXNlcl9ncm91cChncm91cF9pZCwgdXNlcl9ncm91cF91cGRhdGVfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKClVwZGF0ZSB1c2VyIGdyb3VwCgpVcGRhdGUgYSB1c2VyIGdyb3VwIGJ5IElELjwvYnI+CgoqKk5vdGUqKjoKLSBUaGlzIGVuZHBvaW50IGlzIG5vdyBpbiBCZXRhLCBkaXNhYmxlZCBmb3IgZ2VuZXJhbCBhdmFpbGFiaWxpdHkgYXQgdGhpcyB0aW1lLgotIFBsZWFzZSBub3RlIHRoYXQgdGhpcyBlbmRwb2ludCBpcyBhdmFpbGFibGUgb25seSBmb3IgQVBJIGtleXMgd2l0aCBBZG1pbiBwZXJtaXNzaW9ucy4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfZ3JvdXBfY3JlYXRlX3Jlc3BvbnNlIGltcG9ydCBVc2VyR3JvdXBDcmVhdGVSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfZ3JvdXBfdXBkYXRlX3JlcXVlc3QgaW1wb3J0IFVzZXJHcm91cFVwZGF0ZVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgZ3JvdXBfaWQgPSAnZ3JvdXBfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIHVzZXIgZ3JvdXAKICAgIHVzZXJfZ3JvdXBfdXBkYXRlX3JlcXVlc3QgPSBmaXJlYmxvY2tzLlVzZXJHcm91cFVwZGF0ZVJlcXVlc3QoKSAjIFVzZXJHcm91cFVwZGF0ZVJlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBVcGRhdGUgdXNlciBncm91cAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudXNlcl9ncm91cHNfYmV0YS51cGRhdGVfdXNlcl9ncm91cChncm91cF9pZCwgdXNlcl9ncm91cF91cGRhdGVfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFVzZXJHcm91cHNCZXRhQXBpLT51cGRhdGVfdXNlcl9ncm91cDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBVc2VyR3JvdXBzQmV0YUFwaS0+dXBkYXRlX3VzZXJfZ3JvdXA6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmdyb3VwX2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIHVzZXIgZ3JvdXAgfCAKICoqdXNlcl9ncm91cF91cGRhdGVfcmVxdWVzdCoqIHwgWyoqVXNlckdyb3VwVXBkYXRlUmVxdWVzdCoqXShVc2VyR3JvdXBVcGRhdGVSZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlVzZXJHcm91cENyZWF0ZVJlc3BvbnNlKipdKFVzZXJHcm91cENyZWF0ZVJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBVc2VyIGdyb3VwIHVwZGF0ZWQgYW5kIHRoZSBjaGFuZ2VzIGFyZSBwZW5kaW5nIGFwcHJvdmFsIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCg== \ No newline at end of file diff --git a/docs/UserResponse.md b/docs/UserResponse.md index 7024a02f..c328bd11 100644 --- a/docs/UserResponse.md +++ b/docs/UserResponse.md @@ -1,34 +1 @@ -# UserResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | [optional] -**first_name** | **str** | | [optional] -**last_name** | **str** | | [optional] -**role** | **str** | | [optional] -**email** | **str** | | [optional] -**enabled** | **bool** | | [optional] - -## Example - -```python -from fireblocks.models.user_response import UserResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of UserResponse from a JSON string -user_response_instance = UserResponse.from_json(json) -# print the JSON string representation of the object -print(UserResponse.to_json()) - -# convert the object into a dict -user_response_dict = user_response_instance.to_dict() -# create an instance of UserResponse from a dict -user_response_from_dict = UserResponse.from_dict(user_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVc2VyUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmZpcnN0X25hbWUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmxhc3RfbmFtZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqcm9sZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqZW1haWwqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmVuYWJsZWQqKiB8ICoqYm9vbCoqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfcmVzcG9uc2UgaW1wb3J0IFVzZXJSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXNlclJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwp1c2VyX3Jlc3BvbnNlX2luc3RhbmNlID0gVXNlclJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFVzZXJSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp1c2VyX3Jlc3BvbnNlX2RpY3QgPSB1c2VyX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVc2VyUmVzcG9uc2UgZnJvbSBhIGRpY3QKdXNlcl9yZXNwb25zZV9mcm9tX2RpY3QgPSBVc2VyUmVzcG9uc2UuZnJvbV9kaWN0KHVzZXJfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/UserRole.md b/docs/UserRole.md index 5c2827ad..9385147f 100644 --- a/docs/UserRole.md +++ b/docs/UserRole.md @@ -1,31 +1 @@ -# UserRole - -The role of the user - -## Enum - -* `OWNER` (value: `'OWNER'`) - -* `ADMIN` (value: `'ADMIN'`) - -* `SIGNER` (value: `'SIGNER'`) - -* `COLLATERALS_SIGNER` (value: `'COLLATERALS_SIGNER'`) - -* `EDITOR` (value: `'EDITOR'`) - -* `APPROVER` (value: `'APPROVER'`) - -* `VIEWER` (value: `'VIEWER'`) - -* `NON_SIGNING_ADMIN` (value: `'NON_SIGNING_ADMIN'`) - -* `AUDITOR` (value: `'AUDITOR'`) - -* `NCW_ADMIN` (value: `'NCW_ADMIN'`) - -* `NCW_SIGNER` (value: `'NCW_SIGNER'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVc2VyUm9sZQoKVGhlIHJvbGUgb2YgdGhlIHVzZXIKCiMjIEVudW0KCiogYE9XTkVSYCAodmFsdWU6IGAnT1dORVInYCkKCiogYEFETUlOYCAodmFsdWU6IGAnQURNSU4nYCkKCiogYFNJR05FUmAgKHZhbHVlOiBgJ1NJR05FUidgKQoKKiBgQ09MTEFURVJBTFNfU0lHTkVSYCAodmFsdWU6IGAnQ09MTEFURVJBTFNfU0lHTkVSJ2ApCgoqIGBFRElUT1JgICh2YWx1ZTogYCdFRElUT1InYCkKCiogYEFQUFJPVkVSYCAodmFsdWU6IGAnQVBQUk9WRVInYCkKCiogYFZJRVdFUmAgKHZhbHVlOiBgJ1ZJRVdFUidgKQoKKiBgTk9OX1NJR05JTkdfQURNSU5gICh2YWx1ZTogYCdOT05fU0lHTklOR19BRE1JTidgKQoKKiBgQVVESVRPUmAgKHZhbHVlOiBgJ0FVRElUT1InYCkKCiogYE5DV19BRE1JTmAgKHZhbHVlOiBgJ05DV19BRE1JTidgKQoKKiBgTkNXX1NJR05FUmAgKHZhbHVlOiBgJ05DV19TSUdORVInYCkKCiogYFNFQ1VSSVRZX0FETUlOYCAodmFsdWU6IGAnU0VDVVJJVFlfQURNSU4nYCkKCiogYFNFQ1VSSVRZX0FVRElUT1JgICh2YWx1ZTogYCdTRUNVUklUWV9BVURJVE9SJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/UserStatus.md b/docs/UserStatus.md index ec97de94..381f4d83 100644 --- a/docs/UserStatus.md +++ b/docs/UserStatus.md @@ -1,17 +1 @@ -# UserStatus - -The status of the user - -## Enum - -* `PENDING_ACTIVATION` (value: `'PENDING_ACTIVATION'`) - -* `PENDING_DEVICE_PAIRING` (value: `'PENDING_DEVICE_PAIRING'`) - -* `PENDING_DEVICE_SETUP` (value: `'PENDING_DEVICE_SETUP'`) - -* `READY` (value: `'READY'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVc2VyU3RhdHVzCgpUaGUgc3RhdHVzIG9mIHRoZSB1c2VyCgojIyBFbnVtCgoqIGBQRU5ESU5HX0FDVElWQVRJT05gICh2YWx1ZTogYCdQRU5ESU5HX0FDVElWQVRJT04nYCkKCiogYFBFTkRJTkdfREVWSUNFX1BBSVJJTkdgICh2YWx1ZTogYCdQRU5ESU5HX0RFVklDRV9QQUlSSU5HJ2ApCgoqIGBQRU5ESU5HX0RFVklDRV9TRVRVUGAgKHZhbHVlOiBgJ1BFTkRJTkdfREVWSUNFX1NFVFVQJ2ApCgoqIGBSRUFEWWAgKHZhbHVlOiBgJ1JFQURZJ2ApCgpbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/UserType.md b/docs/UserType.md index 47882e15..35d05726 100644 --- a/docs/UserType.md +++ b/docs/UserType.md @@ -1,13 +1 @@ -# UserType - -The type of the user - -## Enum - -* `API` (value: `'API'`) - -* `CONSOLE` (value: `'CONSOLE'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBVc2VyVHlwZQoKVGhlIHR5cGUgb2YgdGhlIHVzZXIKCiMjIEVudW0KCiogYEFQSWAgKHZhbHVlOiBgJ0FQSSdgKQoKKiBgQ09OU09MRWAgKHZhbHVlOiBgJ0NPTlNPTEUnYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/UsersApi.md b/docs/UsersApi.md index 73766e4c..9f8fd8ea 100644 --- a/docs/UsersApi.md +++ b/docs/UsersApi.md @@ -1,82 +1 @@ -# fireblocks.UsersApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**get_users**](UsersApi.md#get_users) | **GET** /users | List users - - -# **get_users** -> List[UserResponse] get_users() - -List users - -List all users for the workspace. - -Please note that this endpoint is available only for API keys with Admin permissions. - - -### Example - - -```python -from fireblocks.models.user_response import UserResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # List users - api_response = fireblocks.users.get_users().result() - print("The response of UsersApi->get_users:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling UsersApi->get_users: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**List[UserResponse]**](UserResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | List of users | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLlVzZXJzQXBpCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gKmh0dHBzOi8vYXBpLmZpcmVibG9ja3MuaW8vdjEqCgpNZXRob2QgfCBIVFRQIHJlcXVlc3QgfCBEZXNjcmlwdGlvbgotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KWyoqZ2V0X3VzZXJzKipdKFVzZXJzQXBpLm1kI2dldF91c2VycykgfCAqKkdFVCoqIC91c2VycyB8IExpc3QgdXNlcnMKCgojICoqZ2V0X3VzZXJzKioKPiBMaXN0W1VzZXJSZXNwb25zZV0gZ2V0X3VzZXJzKCkKCkxpc3QgdXNlcnMKCkxpc3QgYWxsIHVzZXJzIGZvciB0aGUgd29ya3NwYWNlLgoKUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGVuZHBvaW50IGlzIGF2YWlsYWJsZSBvbmx5IGZvciBBUEkga2V5cyB3aXRoIEFkbWluIHBlcm1pc3Npb25zLgoKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXNlcl9yZXNwb25zZSBpbXBvcnQgVXNlclJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKCiAgICB0cnk6CiAgICAgICAgIyBMaXN0IHVzZXJzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy51c2Vycy5nZXRfdXNlcnMoKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVXNlcnNBcGktPmdldF91c2VyczpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBVc2Vyc0FwaS0+Z2V0X3VzZXJzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKVGhpcyBlbmRwb2ludCBkb2VzIG5vdCBuZWVkIGFueSBwYXJhbWV0ZXIuCgojIyMgUmV0dXJuIHR5cGUKClsqKkxpc3RbVXNlclJlc3BvbnNlXSoqXShVc2VyUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBMaXN0IG9mIHVzZXJzIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCg== \ No newline at end of file diff --git a/docs/ValidateAddressResponse.md b/docs/ValidateAddressResponse.md index 33f55d0c..1e883f50 100644 --- a/docs/ValidateAddressResponse.md +++ b/docs/ValidateAddressResponse.md @@ -1,31 +1 @@ -# ValidateAddressResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**is_valid** | **bool** | | [optional] -**is_active** | **bool** | | [optional] -**requires_tag** | **bool** | | [optional] - -## Example - -```python -from fireblocks.models.validate_address_response import ValidateAddressResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ValidateAddressResponse from a JSON string -validate_address_response_instance = ValidateAddressResponse.from_json(json) -# print the JSON string representation of the object -print(ValidateAddressResponse.to_json()) - -# convert the object into a dict -validate_address_response_dict = validate_address_response_instance.to_dict() -# create an instance of ValidateAddressResponse from a dict -validate_address_response_from_dict = ValidateAddressResponse.from_dict(validate_address_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBWYWxpZGF0ZUFkZHJlc3NSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippc192YWxpZCoqIHwgKipib29sKiogfCAgfCBbb3B0aW9uYWxdIAoqKmlzX2FjdGl2ZSoqIHwgKipib29sKiogfCAgfCBbb3B0aW9uYWxdIAoqKnJlcXVpcmVzX3RhZyoqIHwgKipib29sKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmFsaWRhdGVfYWRkcmVzc19yZXNwb25zZSBpbXBvcnQgVmFsaWRhdGVBZGRyZXNzUmVzcG9uc2UKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFZhbGlkYXRlQWRkcmVzc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwp2YWxpZGF0ZV9hZGRyZXNzX3Jlc3BvbnNlX2luc3RhbmNlID0gVmFsaWRhdGVBZGRyZXNzUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVmFsaWRhdGVBZGRyZXNzUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdmFsaWRhdGVfYWRkcmVzc19yZXNwb25zZV9kaWN0ID0gdmFsaWRhdGVfYWRkcmVzc19yZXNwb25zZV9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmFsaWRhdGVBZGRyZXNzUmVzcG9uc2UgZnJvbSBhIGRpY3QKdmFsaWRhdGVfYWRkcmVzc19yZXNwb25zZV9mcm9tX2RpY3QgPSBWYWxpZGF0ZUFkZHJlc3NSZXNwb25zZS5mcm9tX2RpY3QodmFsaWRhdGVfYWRkcmVzc19yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ValidateLayerZeroChannelResponse.md b/docs/ValidateLayerZeroChannelResponse.md index 784a69aa..6b772aff 100644 --- a/docs/ValidateLayerZeroChannelResponse.md +++ b/docs/ValidateLayerZeroChannelResponse.md @@ -1,30 +1 @@ -# ValidateLayerZeroChannelResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**correct** | **bool** | Indicates whether the LayerZero channel configuration is valid. | -**errors** | **List[str]** | List of errors found during validation. An empty array indicates no errors. | - -## Example - -```python -from fireblocks.models.validate_layer_zero_channel_response import ValidateLayerZeroChannelResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of ValidateLayerZeroChannelResponse from a JSON string -validate_layer_zero_channel_response_instance = ValidateLayerZeroChannelResponse.from_json(json) -# print the JSON string representation of the object -print(ValidateLayerZeroChannelResponse.to_json()) - -# convert the object into a dict -validate_layer_zero_channel_response_dict = validate_layer_zero_channel_response_instance.to_dict() -# create an instance of ValidateLayerZeroChannelResponse from a dict -validate_layer_zero_channel_response_from_dict = ValidateLayerZeroChannelResponse.from_dict(validate_layer_zero_channel_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBWYWxpZGF0ZUxheWVyWmVyb0NoYW5uZWxSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipjb3JyZWN0KiogfCAqKmJvb2wqKiB8IEluZGljYXRlcyB3aGV0aGVyIHRoZSBMYXllclplcm8gY2hhbm5lbCBjb25maWd1cmF0aW9uIGlzIHZhbGlkLiB8IAoqKmVycm9ycyoqIHwgKipMaXN0W3N0cl0qKiB8IExpc3Qgb2YgZXJyb3JzIGZvdW5kIGR1cmluZyB2YWxpZGF0aW9uLiBBbiBlbXB0eSBhcnJheSBpbmRpY2F0ZXMgbm8gZXJyb3JzLiB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmFsaWRhdGVfbGF5ZXJfemVyb19jaGFubmVsX3Jlc3BvbnNlIGltcG9ydCBWYWxpZGF0ZUxheWVyWmVyb0NoYW5uZWxSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmFsaWRhdGVMYXllclplcm9DaGFubmVsUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnZhbGlkYXRlX2xheWVyX3plcm9fY2hhbm5lbF9yZXNwb25zZV9pbnN0YW5jZSA9IFZhbGlkYXRlTGF5ZXJaZXJvQ2hhbm5lbFJlc3BvbnNlLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFZhbGlkYXRlTGF5ZXJaZXJvQ2hhbm5lbFJlc3BvbnNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnZhbGlkYXRlX2xheWVyX3plcm9fY2hhbm5lbF9yZXNwb25zZV9kaWN0ID0gdmFsaWRhdGVfbGF5ZXJfemVyb19jaGFubmVsX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWYWxpZGF0ZUxheWVyWmVyb0NoYW5uZWxSZXNwb25zZSBmcm9tIGEgZGljdAp2YWxpZGF0ZV9sYXllcl96ZXJvX2NoYW5uZWxfcmVzcG9uc2VfZnJvbV9kaWN0ID0gVmFsaWRhdGVMYXllclplcm9DaGFubmVsUmVzcG9uc2UuZnJvbV9kaWN0KHZhbGlkYXRlX2xheWVyX3plcm9fY2hhbm5lbF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/ValidationKeyDto.md b/docs/ValidationKeyDto.md index 6e9c0f90..2f41ba49 100644 --- a/docs/ValidationKeyDto.md +++ b/docs/ValidationKeyDto.md @@ -1,33 +1 @@ -# ValidationKeyDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**key_id** | **str** | External validation key id set by Fireblocks. | -**public_key_pem** | **str** | PEM encoded public key used for the validation. | -**days_till_expired** | **float** | | -**enabled** | **bool** | True if the validation key is enabled. | -**created_at** | **float** | Creation date (timestamp) in milliseconds. | - -## Example - -```python -from fireblocks.models.validation_key_dto import ValidationKeyDto - -# TODO update the JSON string below -json = "{}" -# create an instance of ValidationKeyDto from a JSON string -validation_key_dto_instance = ValidationKeyDto.from_json(json) -# print the JSON string representation of the object -print(ValidationKeyDto.to_json()) - -# convert the object into a dict -validation_key_dto_dict = validation_key_dto_instance.to_dict() -# create an instance of ValidationKeyDto from a dict -validation_key_dto_from_dict = ValidationKeyDto.from_dict(validation_key_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBWYWxpZGF0aW9uS2V5RHRvCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmtleV9pZCoqIHwgKipzdHIqKiB8IEV4dGVybmFsIHZhbGlkYXRpb24ga2V5IGlkIHNldCBieSBGaXJlYmxvY2tzLiB8IAoqKnB1YmxpY19rZXlfcGVtKiogfCAqKnN0cioqIHwgUEVNIGVuY29kZWQgcHVibGljIGtleSB1c2VkIGZvciB0aGUgdmFsaWRhdGlvbi4gfCAKKipkYXlzX3RpbGxfZXhwaXJlZCoqIHwgKipmbG9hdCoqIHwgIHwgCioqZW5hYmxlZCoqIHwgKipib29sKiogfCBUcnVlIGlmIHRoZSB2YWxpZGF0aW9uIGtleSBpcyBlbmFibGVkLiB8IAoqKmNyZWF0ZWRfYXQqKiB8ICoqZmxvYXQqKiB8IENyZWF0aW9uIGRhdGUgKHRpbWVzdGFtcCkgaW4gbWlsbGlzZWNvbmRzLiB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmFsaWRhdGlvbl9rZXlfZHRvIGltcG9ydCBWYWxpZGF0aW9uS2V5RHRvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWYWxpZGF0aW9uS2V5RHRvIGZyb20gYSBKU09OIHN0cmluZwp2YWxpZGF0aW9uX2tleV9kdG9faW5zdGFuY2UgPSBWYWxpZGF0aW9uS2V5RHRvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFZhbGlkYXRpb25LZXlEdG8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdmFsaWRhdGlvbl9rZXlfZHRvX2RpY3QgPSB2YWxpZGF0aW9uX2tleV9kdG9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFZhbGlkYXRpb25LZXlEdG8gZnJvbSBhIGRpY3QKdmFsaWRhdGlvbl9rZXlfZHRvX2Zyb21fZGljdCA9IFZhbGlkYXRpb25LZXlEdG8uZnJvbV9kaWN0KHZhbGlkYXRpb25fa2V5X2R0b19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/Validator.md b/docs/Validator.md index dd3044c3..32ab75ae 100644 --- a/docs/Validator.md +++ b/docs/Validator.md @@ -1,31 +1 @@ -# Validator - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**chain_descriptor** | **str** | The protocol identifier (e.g. \"ETH\"/\"SOL\") of the validator | -**fee_percent** | **float** | The service fee as a percentage out of the earned rewards | -**is_private** | **bool** | Is the validator private, i.e created by the user | [optional] - -## Example - -```python -from fireblocks.models.validator import Validator - -# TODO update the JSON string below -json = "{}" -# create an instance of Validator from a JSON string -validator_instance = Validator.from_json(json) -# print the JSON string representation of the object -print(Validator.to_json()) - -# convert the object into a dict -validator_dict = validator_instance.to_dict() -# create an instance of Validator from a dict -validator_from_dict = Validator.from_dict(validator_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBWYWxpZGF0b3IKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqY2hhaW5fZGVzY3JpcHRvcioqIHwgKipzdHIqKiB8IFRoZSBwcm90b2NvbCBpZGVudGlmaWVyIChlLmcuIFwmcXVvdDtFVEhcJnF1b3Q7L1wmcXVvdDtTT0xcJnF1b3Q7KSBvZiB0aGUgdmFsaWRhdG9yIHwgCioqZmVlX3BlcmNlbnQqKiB8ICoqZmxvYXQqKiB8IFRoZSBzZXJ2aWNlIGZlZSBhcyBhIHBlcmNlbnRhZ2Ugb3V0IG9mIHRoZSBlYXJuZWQgcmV3YXJkcyB8IAoqKmlzX3ByaXZhdGUqKiB8ICoqYm9vbCoqIHwgSXMgdGhlIHZhbGlkYXRvciBwcml2YXRlLCBpLmUgY3JlYXRlZCBieSB0aGUgdXNlciB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YWxpZGF0b3IgaW1wb3J0IFZhbGlkYXRvcgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmFsaWRhdG9yIGZyb20gYSBKU09OIHN0cmluZwp2YWxpZGF0b3JfaW5zdGFuY2UgPSBWYWxpZGF0b3IuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVmFsaWRhdG9yLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnZhbGlkYXRvcl9kaWN0ID0gdmFsaWRhdG9yX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWYWxpZGF0b3IgZnJvbSBhIGRpY3QKdmFsaWRhdG9yX2Zyb21fZGljdCA9IFZhbGlkYXRvci5mcm9tX2RpY3QodmFsaWRhdG9yX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/VaultAccount.md b/docs/VaultAccount.md index 8124cbf4..1b8f0a3e 100644 --- a/docs/VaultAccount.md +++ b/docs/VaultAccount.md @@ -1,35 +1 @@ -# VaultAccount - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | [optional] -**name** | **str** | | [optional] -**assets** | [**List[VaultAsset]**](VaultAsset.md) | | [optional] -**hidden_on_ui** | **bool** | | [optional] -**customer_ref_id** | **str** | | [optional] -**auto_fuel** | **bool** | | [optional] -**tags** | [**List[Tag]**](Tag.md) | List of tags attached to the vault account | [optional] - -## Example - -```python -from fireblocks.models.vault_account import VaultAccount - -# TODO update the JSON string below -json = "{}" -# create an instance of VaultAccount from a JSON string -vault_account_instance = VaultAccount.from_json(json) -# print the JSON string representation of the object -print(VaultAccount.to_json()) - -# convert the object into a dict -vault_account_dict = vault_account_instance.to_dict() -# create an instance of VaultAccount from a dict -vault_account_from_dict = VaultAccount.from_dict(vault_account_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBWYXVsdEFjY291bnQKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKm5hbWUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFzc2V0cyoqIHwgWyoqTGlzdFtWYXVsdEFzc2V0XSoqXShWYXVsdEFzc2V0Lm1kKSB8ICB8IFtvcHRpb25hbF0gCioqaGlkZGVuX29uX3VpKiogfCAqKmJvb2wqKiB8ICB8IFtvcHRpb25hbF0gCioqY3VzdG9tZXJfcmVmX2lkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKiphdXRvX2Z1ZWwqKiB8ICoqYm9vbCoqIHwgIHwgW29wdGlvbmFsXSAKKip0YWdzKiogfCBbKipMaXN0W1RhZ10qKl0oVGFnLm1kKSB8IExpc3Qgb2YgdGFncyBhdHRhY2hlZCB0byB0aGUgdmF1bHQgYWNjb3VudCB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hY2NvdW50IGltcG9ydCBWYXVsdEFjY291bnQKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFZhdWx0QWNjb3VudCBmcm9tIGEgSlNPTiBzdHJpbmcKdmF1bHRfYWNjb3VudF9pbnN0YW5jZSA9IFZhdWx0QWNjb3VudC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChWYXVsdEFjY291bnQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdmF1bHRfYWNjb3VudF9kaWN0ID0gdmF1bHRfYWNjb3VudF9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmF1bHRBY2NvdW50IGZyb20gYSBkaWN0CnZhdWx0X2FjY291bnRfZnJvbV9kaWN0ID0gVmF1bHRBY2NvdW50LmZyb21fZGljdCh2YXVsdF9hY2NvdW50X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/VaultAccountTagAttachmentOperation.md b/docs/VaultAccountTagAttachmentOperation.md index 27577671..21026fb9 100644 --- a/docs/VaultAccountTagAttachmentOperation.md +++ b/docs/VaultAccountTagAttachmentOperation.md @@ -1,31 +1 @@ -# VaultAccountTagAttachmentOperation - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vault_account_id** | **str** | The ID of the vault account | -**tag_id** | **str** | Tag ID | -**action** | [**TagAttachmentOperationAction**](TagAttachmentOperationAction.md) | | - -## Example - -```python -from fireblocks.models.vault_account_tag_attachment_operation import VaultAccountTagAttachmentOperation - -# TODO update the JSON string below -json = "{}" -# create an instance of VaultAccountTagAttachmentOperation from a JSON string -vault_account_tag_attachment_operation_instance = VaultAccountTagAttachmentOperation.from_json(json) -# print the JSON string representation of the object -print(VaultAccountTagAttachmentOperation.to_json()) - -# convert the object into a dict -vault_account_tag_attachment_operation_dict = vault_account_tag_attachment_operation_instance.to_dict() -# create an instance of VaultAccountTagAttachmentOperation from a dict -vault_account_tag_attachment_operation_from_dict = VaultAccountTagAttachmentOperation.from_dict(vault_account_tag_attachment_operation_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50T3BlcmF0aW9uCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnZhdWx0X2FjY291bnRfaWQqKiB8ICoqc3RyKiogfCBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgfCAKKip0YWdfaWQqKiB8ICoqc3RyKiogfCBUYWcgSUQgfCAKKiphY3Rpb24qKiB8IFsqKlRhZ0F0dGFjaG1lbnRPcGVyYXRpb25BY3Rpb24qKl0oVGFnQXR0YWNobWVudE9wZXJhdGlvbkFjdGlvbi5tZCkgfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnRfdGFnX2F0dGFjaG1lbnRfb3BlcmF0aW9uIGltcG9ydCBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50T3BlcmF0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50T3BlcmF0aW9uIGZyb20gYSBKU09OIHN0cmluZwp2YXVsdF9hY2NvdW50X3RhZ19hdHRhY2htZW50X29wZXJhdGlvbl9pbnN0YW5jZSA9IFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRPcGVyYXRpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudE9wZXJhdGlvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp2YXVsdF9hY2NvdW50X3RhZ19hdHRhY2htZW50X29wZXJhdGlvbl9kaWN0ID0gdmF1bHRfYWNjb3VudF90YWdfYXR0YWNobWVudF9vcGVyYXRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRPcGVyYXRpb24gZnJvbSBhIGRpY3QKdmF1bHRfYWNjb3VudF90YWdfYXR0YWNobWVudF9vcGVyYXRpb25fZnJvbV9kaWN0ID0gVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudE9wZXJhdGlvbi5mcm9tX2RpY3QodmF1bHRfYWNjb3VudF90YWdfYXR0YWNobWVudF9vcGVyYXRpb25fZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/VaultAccountTagAttachmentPendingOperation.md b/docs/VaultAccountTagAttachmentPendingOperation.md index c4e7bbca..fb221093 100644 --- a/docs/VaultAccountTagAttachmentPendingOperation.md +++ b/docs/VaultAccountTagAttachmentPendingOperation.md @@ -1,32 +1 @@ -# VaultAccountTagAttachmentPendingOperation - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vault_account_id** | **str** | The ID of the vault account | -**tag_id** | **str** | Tag ID | -**action** | [**TagAttachmentOperationAction**](TagAttachmentOperationAction.md) | | -**approval_request_id** | **str** | Pending approval request ID | - -## Example - -```python -from fireblocks.models.vault_account_tag_attachment_pending_operation import VaultAccountTagAttachmentPendingOperation - -# TODO update the JSON string below -json = "{}" -# create an instance of VaultAccountTagAttachmentPendingOperation from a JSON string -vault_account_tag_attachment_pending_operation_instance = VaultAccountTagAttachmentPendingOperation.from_json(json) -# print the JSON string representation of the object -print(VaultAccountTagAttachmentPendingOperation.to_json()) - -# convert the object into a dict -vault_account_tag_attachment_pending_operation_dict = vault_account_tag_attachment_pending_operation_instance.to_dict() -# create an instance of VaultAccountTagAttachmentPendingOperation from a dict -vault_account_tag_attachment_pending_operation_from_dict = VaultAccountTagAttachmentPendingOperation.from_dict(vault_account_tag_attachment_pending_operation_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50UGVuZGluZ09wZXJhdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip2YXVsdF9hY2NvdW50X2lkKiogfCAqKnN0cioqIHwgVGhlIElEIG9mIHRoZSB2YXVsdCBhY2NvdW50IHwgCioqdGFnX2lkKiogfCAqKnN0cioqIHwgVGFnIElEIHwgCioqYWN0aW9uKiogfCBbKipUYWdBdHRhY2htZW50T3BlcmF0aW9uQWN0aW9uKipdKFRhZ0F0dGFjaG1lbnRPcGVyYXRpb25BY3Rpb24ubWQpIHwgIHwgCioqYXBwcm92YWxfcmVxdWVzdF9pZCoqIHwgKipzdHIqKiB8IFBlbmRpbmcgYXBwcm92YWwgcmVxdWVzdCBJRCB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmF1bHRfYWNjb3VudF90YWdfYXR0YWNobWVudF9wZW5kaW5nX29wZXJhdGlvbiBpbXBvcnQgVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudFBlbmRpbmdPcGVyYXRpb24KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRQZW5kaW5nT3BlcmF0aW9uIGZyb20gYSBKU09OIHN0cmluZwp2YXVsdF9hY2NvdW50X3RhZ19hdHRhY2htZW50X3BlbmRpbmdfb3BlcmF0aW9uX2luc3RhbmNlID0gVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudFBlbmRpbmdPcGVyYXRpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudFBlbmRpbmdPcGVyYXRpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdmF1bHRfYWNjb3VudF90YWdfYXR0YWNobWVudF9wZW5kaW5nX29wZXJhdGlvbl9kaWN0ID0gdmF1bHRfYWNjb3VudF90YWdfYXR0YWNobWVudF9wZW5kaW5nX29wZXJhdGlvbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudFBlbmRpbmdPcGVyYXRpb24gZnJvbSBhIGRpY3QKdmF1bHRfYWNjb3VudF90YWdfYXR0YWNobWVudF9wZW5kaW5nX29wZXJhdGlvbl9mcm9tX2RpY3QgPSBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50UGVuZGluZ09wZXJhdGlvbi5mcm9tX2RpY3QodmF1bHRfYWNjb3VudF90YWdfYXR0YWNobWVudF9wZW5kaW5nX29wZXJhdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/VaultAccountTagAttachmentRejectedOperation.md b/docs/VaultAccountTagAttachmentRejectedOperation.md index 9a694dc3..9b67672f 100644 --- a/docs/VaultAccountTagAttachmentRejectedOperation.md +++ b/docs/VaultAccountTagAttachmentRejectedOperation.md @@ -1,32 +1 @@ -# VaultAccountTagAttachmentRejectedOperation - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vault_account_id** | **str** | The ID of the vault account | -**tag_id** | **str** | Tag ID | -**action** | [**TagAttachmentOperationAction**](TagAttachmentOperationAction.md) | | -**reason** | **str** | Reason for rejection | - -## Example - -```python -from fireblocks.models.vault_account_tag_attachment_rejected_operation import VaultAccountTagAttachmentRejectedOperation - -# TODO update the JSON string below -json = "{}" -# create an instance of VaultAccountTagAttachmentRejectedOperation from a JSON string -vault_account_tag_attachment_rejected_operation_instance = VaultAccountTagAttachmentRejectedOperation.from_json(json) -# print the JSON string representation of the object -print(VaultAccountTagAttachmentRejectedOperation.to_json()) - -# convert the object into a dict -vault_account_tag_attachment_rejected_operation_dict = vault_account_tag_attachment_rejected_operation_instance.to_dict() -# create an instance of VaultAccountTagAttachmentRejectedOperation from a dict -vault_account_tag_attachment_rejected_operation_from_dict = VaultAccountTagAttachmentRejectedOperation.from_dict(vault_account_tag_attachment_rejected_operation_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50UmVqZWN0ZWRPcGVyYXRpb24KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKiB8IFRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudCB8IAoqKnRhZ19pZCoqIHwgKipzdHIqKiB8IFRhZyBJRCB8IAoqKmFjdGlvbioqIHwgWyoqVGFnQXR0YWNobWVudE9wZXJhdGlvbkFjdGlvbioqXShUYWdBdHRhY2htZW50T3BlcmF0aW9uQWN0aW9uLm1kKSB8ICB8IAoqKnJlYXNvbioqIHwgKipzdHIqKiB8IFJlYXNvbiBmb3IgcmVqZWN0aW9uIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hY2NvdW50X3RhZ19hdHRhY2htZW50X3JlamVjdGVkX29wZXJhdGlvbiBpbXBvcnQgVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudFJlamVjdGVkT3BlcmF0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50UmVqZWN0ZWRPcGVyYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCnZhdWx0X2FjY291bnRfdGFnX2F0dGFjaG1lbnRfcmVqZWN0ZWRfb3BlcmF0aW9uX2luc3RhbmNlID0gVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudFJlamVjdGVkT3BlcmF0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRSZWplY3RlZE9wZXJhdGlvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp2YXVsdF9hY2NvdW50X3RhZ19hdHRhY2htZW50X3JlamVjdGVkX29wZXJhdGlvbl9kaWN0ID0gdmF1bHRfYWNjb3VudF90YWdfYXR0YWNobWVudF9yZWplY3RlZF9vcGVyYXRpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRSZWplY3RlZE9wZXJhdGlvbiBmcm9tIGEgZGljdAp2YXVsdF9hY2NvdW50X3RhZ19hdHRhY2htZW50X3JlamVjdGVkX29wZXJhdGlvbl9mcm9tX2RpY3QgPSBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50UmVqZWN0ZWRPcGVyYXRpb24uZnJvbV9kaWN0KHZhdWx0X2FjY291bnRfdGFnX2F0dGFjaG1lbnRfcmVqZWN0ZWRfb3BlcmF0aW9uX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/VaultAccountsPagedResponse.md b/docs/VaultAccountsPagedResponse.md index 77dd33f1..73fbfdb4 100644 --- a/docs/VaultAccountsPagedResponse.md +++ b/docs/VaultAccountsPagedResponse.md @@ -1,32 +1 @@ -# VaultAccountsPagedResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**accounts** | [**List[VaultAccount]**](VaultAccount.md) | | [optional] -**paging** | [**VaultAccountsPagedResponsePaging**](VaultAccountsPagedResponsePaging.md) | | [optional] -**previous_url** | **str** | | [optional] -**next_url** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.vault_accounts_paged_response import VaultAccountsPagedResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of VaultAccountsPagedResponse from a JSON string -vault_accounts_paged_response_instance = VaultAccountsPagedResponse.from_json(json) -# print the JSON string representation of the object -print(VaultAccountsPagedResponse.to_json()) - -# convert the object into a dict -vault_accounts_paged_response_dict = vault_accounts_paged_response_instance.to_dict() -# create an instance of VaultAccountsPagedResponse from a dict -vault_accounts_paged_response_from_dict = VaultAccountsPagedResponse.from_dict(vault_accounts_paged_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphY2NvdW50cyoqIHwgWyoqTGlzdFtWYXVsdEFjY291bnRdKipdKFZhdWx0QWNjb3VudC5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKnBhZ2luZyoqIHwgWyoqVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2VQYWdpbmcqKl0oVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2VQYWdpbmcubWQpIHwgIHwgW29wdGlvbmFsXSAKKipwcmV2aW91c191cmwqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKm5leHRfdXJsKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnRzX3BhZ2VkX3Jlc3BvbnNlIGltcG9ydCBWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnZhdWx0X2FjY291bnRzX3BhZ2VkX3Jlc3BvbnNlX2luc3RhbmNlID0gVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdmF1bHRfYWNjb3VudHNfcGFnZWRfcmVzcG9uc2VfZGljdCA9IHZhdWx0X2FjY291bnRzX3BhZ2VkX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZSBmcm9tIGEgZGljdAp2YXVsdF9hY2NvdW50c19wYWdlZF9yZXNwb25zZV9mcm9tX2RpY3QgPSBWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZS5mcm9tX2RpY3QodmF1bHRfYWNjb3VudHNfcGFnZWRfcmVzcG9uc2VfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/VaultAccountsPagedResponsePaging.md b/docs/VaultAccountsPagedResponsePaging.md index 48908a76..b2ad073d 100644 --- a/docs/VaultAccountsPagedResponsePaging.md +++ b/docs/VaultAccountsPagedResponsePaging.md @@ -1,30 +1 @@ -# VaultAccountsPagedResponsePaging - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**before** | **str** | | [optional] -**after** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.vault_accounts_paged_response_paging import VaultAccountsPagedResponsePaging - -# TODO update the JSON string below -json = "{}" -# create an instance of VaultAccountsPagedResponsePaging from a JSON string -vault_accounts_paged_response_paging_instance = VaultAccountsPagedResponsePaging.from_json(json) -# print the JSON string representation of the object -print(VaultAccountsPagedResponsePaging.to_json()) - -# convert the object into a dict -vault_accounts_paged_response_paging_dict = vault_accounts_paged_response_paging_instance.to_dict() -# create an instance of VaultAccountsPagedResponsePaging from a dict -vault_accounts_paged_response_paging_from_dict = VaultAccountsPagedResponsePaging.from_dict(vault_accounts_paged_response_paging_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZVBhZ2luZwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipiZWZvcmUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFmdGVyKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnRzX3BhZ2VkX3Jlc3BvbnNlX3BhZ2luZyBpbXBvcnQgVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2VQYWdpbmcKCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFZhdWx0QWNjb3VudHNQYWdlZFJlc3BvbnNlUGFnaW5nIGZyb20gYSBKU09OIHN0cmluZwp2YXVsdF9hY2NvdW50c19wYWdlZF9yZXNwb25zZV9wYWdpbmdfaW5zdGFuY2UgPSBWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZVBhZ2luZy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZVBhZ2luZy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp2YXVsdF9hY2NvdW50c19wYWdlZF9yZXNwb25zZV9wYWdpbmdfZGljdCA9IHZhdWx0X2FjY291bnRzX3BhZ2VkX3Jlc3BvbnNlX3BhZ2luZ19pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2VQYWdpbmcgZnJvbSBhIGRpY3QKdmF1bHRfYWNjb3VudHNfcGFnZWRfcmVzcG9uc2VfcGFnaW5nX2Zyb21fZGljdCA9IFZhdWx0QWNjb3VudHNQYWdlZFJlc3BvbnNlUGFnaW5nLmZyb21fZGljdCh2YXVsdF9hY2NvdW50c19wYWdlZF9yZXNwb25zZV9wYWdpbmdfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/VaultAccountsTagAttachmentOperationsRequest.md b/docs/VaultAccountsTagAttachmentOperationsRequest.md index 82ecb891..c3d2be36 100644 --- a/docs/VaultAccountsTagAttachmentOperationsRequest.md +++ b/docs/VaultAccountsTagAttachmentOperationsRequest.md @@ -1,31 +1 @@ -# VaultAccountsTagAttachmentOperationsRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vault_account_ids** | **List[str]** | The IDs of the vault accounts to attach tags to | -**tag_ids_to_attach** | **List[str]** | The IDs of the tags to attach | [optional] -**tag_ids_to_detach** | **List[str]** | The IDs of the tags to detach | [optional] - -## Example - -```python -from fireblocks.models.vault_accounts_tag_attachment_operations_request import VaultAccountsTagAttachmentOperationsRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of VaultAccountsTagAttachmentOperationsRequest from a JSON string -vault_accounts_tag_attachment_operations_request_instance = VaultAccountsTagAttachmentOperationsRequest.from_json(json) -# print the JSON string representation of the object -print(VaultAccountsTagAttachmentOperationsRequest.to_json()) - -# convert the object into a dict -vault_accounts_tag_attachment_operations_request_dict = vault_accounts_tag_attachment_operations_request_instance.to_dict() -# create an instance of VaultAccountsTagAttachmentOperationsRequest from a dict -vault_accounts_tag_attachment_operations_request_from_dict = VaultAccountsTagAttachmentOperationsRequest.from_dict(vault_accounts_tag_attachment_operations_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXF1ZXN0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnZhdWx0X2FjY291bnRfaWRzKiogfCAqKkxpc3Rbc3RyXSoqIHwgVGhlIElEcyBvZiB0aGUgdmF1bHQgYWNjb3VudHMgdG8gYXR0YWNoIHRhZ3MgdG8gfCAKKip0YWdfaWRzX3RvX2F0dGFjaCoqIHwgKipMaXN0W3N0cl0qKiB8IFRoZSBJRHMgb2YgdGhlIHRhZ3MgdG8gYXR0YWNoIHwgW29wdGlvbmFsXSAKKip0YWdfaWRzX3RvX2RldGFjaCoqIHwgKipMaXN0W3N0cl0qKiB8IFRoZSBJRHMgb2YgdGhlIHRhZ3MgdG8gZGV0YWNoIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnRzX3RhZ19hdHRhY2htZW50X29wZXJhdGlvbnNfcmVxdWVzdCBpbXBvcnQgVmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmcKdmF1bHRfYWNjb3VudHNfdGFnX2F0dGFjaG1lbnRfb3BlcmF0aW9uc19yZXF1ZXN0X2luc3RhbmNlID0gVmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVxdWVzdC5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXF1ZXN0LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnZhdWx0X2FjY291bnRzX3RhZ19hdHRhY2htZW50X29wZXJhdGlvbnNfcmVxdWVzdF9kaWN0ID0gdmF1bHRfYWNjb3VudHNfdGFnX2F0dGFjaG1lbnRfb3BlcmF0aW9uc19yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXF1ZXN0IGZyb20gYSBkaWN0CnZhdWx0X2FjY291bnRzX3RhZ19hdHRhY2htZW50X29wZXJhdGlvbnNfcmVxdWVzdF9mcm9tX2RpY3QgPSBWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXF1ZXN0LmZyb21fZGljdCh2YXVsdF9hY2NvdW50c190YWdfYXR0YWNobWVudF9vcGVyYXRpb25zX3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/VaultAccountsTagAttachmentOperationsResponse.md b/docs/VaultAccountsTagAttachmentOperationsResponse.md index bd514aa1..270da60c 100644 --- a/docs/VaultAccountsTagAttachmentOperationsResponse.md +++ b/docs/VaultAccountsTagAttachmentOperationsResponse.md @@ -1,31 +1 @@ -# VaultAccountsTagAttachmentOperationsResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**applied_operations** | [**List[VaultAccountTagAttachmentOperation]**](VaultAccountTagAttachmentOperation.md) | The operations that were applied | [optional] -**pending_operations** | [**List[VaultAccountTagAttachmentPendingOperation]**](VaultAccountTagAttachmentPendingOperation.md) | The operations that are pending | [optional] -**rejected_operations** | [**List[VaultAccountTagAttachmentRejectedOperation]**](VaultAccountTagAttachmentRejectedOperation.md) | The operations that were rejected | [optional] - -## Example - -```python -from fireblocks.models.vault_accounts_tag_attachment_operations_response import VaultAccountsTagAttachmentOperationsResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of VaultAccountsTagAttachmentOperationsResponse from a JSON string -vault_accounts_tag_attachment_operations_response_instance = VaultAccountsTagAttachmentOperationsResponse.from_json(json) -# print the JSON string representation of the object -print(VaultAccountsTagAttachmentOperationsResponse.to_json()) - -# convert the object into a dict -vault_accounts_tag_attachment_operations_response_dict = vault_accounts_tag_attachment_operations_response_instance.to_dict() -# create an instance of VaultAccountsTagAttachmentOperationsResponse from a dict -vault_accounts_tag_attachment_operations_response_from_dict = VaultAccountsTagAttachmentOperationsResponse.from_dict(vault_accounts_tag_attachment_operations_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXNwb25zZQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphcHBsaWVkX29wZXJhdGlvbnMqKiB8IFsqKkxpc3RbVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudE9wZXJhdGlvbl0qKl0oVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudE9wZXJhdGlvbi5tZCkgfCBUaGUgb3BlcmF0aW9ucyB0aGF0IHdlcmUgYXBwbGllZCB8IFtvcHRpb25hbF0gCioqcGVuZGluZ19vcGVyYXRpb25zKiogfCBbKipMaXN0W1ZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRQZW5kaW5nT3BlcmF0aW9uXSoqXShWYXVsdEFjY291bnRUYWdBdHRhY2htZW50UGVuZGluZ09wZXJhdGlvbi5tZCkgfCBUaGUgb3BlcmF0aW9ucyB0aGF0IGFyZSBwZW5kaW5nIHwgW29wdGlvbmFsXSAKKipyZWplY3RlZF9vcGVyYXRpb25zKiogfCBbKipMaXN0W1ZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRSZWplY3RlZE9wZXJhdGlvbl0qKl0oVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudFJlamVjdGVkT3BlcmF0aW9uLm1kKSB8IFRoZSBvcGVyYXRpb25zIHRoYXQgd2VyZSByZWplY3RlZCB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hY2NvdW50c190YWdfYXR0YWNobWVudF9vcGVyYXRpb25zX3Jlc3BvbnNlIGltcG9ydCBWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nCnZhdWx0X2FjY291bnRzX3RhZ19hdHRhY2htZW50X29wZXJhdGlvbnNfcmVzcG9uc2VfaW5zdGFuY2UgPSBWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXNwb25zZS50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp2YXVsdF9hY2NvdW50c190YWdfYXR0YWNobWVudF9vcGVyYXRpb25zX3Jlc3BvbnNlX2RpY3QgPSB2YXVsdF9hY2NvdW50c190YWdfYXR0YWNobWVudF9vcGVyYXRpb25zX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXNwb25zZSBmcm9tIGEgZGljdAp2YXVsdF9hY2NvdW50c190YWdfYXR0YWNobWVudF9vcGVyYXRpb25zX3Jlc3BvbnNlX2Zyb21fZGljdCA9IFZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1Jlc3BvbnNlLmZyb21fZGljdCh2YXVsdF9hY2NvdW50c190YWdfYXR0YWNobWVudF9vcGVyYXRpb25zX3Jlc3BvbnNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/VaultActionStatus.md b/docs/VaultActionStatus.md index 2487c5ea..2795a4fb 100644 --- a/docs/VaultActionStatus.md +++ b/docs/VaultActionStatus.md @@ -1,29 +1 @@ -# VaultActionStatus - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**success** | **bool** | | [optional] - -## Example - -```python -from fireblocks.models.vault_action_status import VaultActionStatus - -# TODO update the JSON string below -json = "{}" -# create an instance of VaultActionStatus from a JSON string -vault_action_status_instance = VaultActionStatus.from_json(json) -# print the JSON string representation of the object -print(VaultActionStatus.to_json()) - -# convert the object into a dict -vault_action_status_dict = vault_action_status_instance.to_dict() -# create an instance of VaultActionStatus from a dict -vault_action_status_from_dict = VaultActionStatus.from_dict(vault_action_status_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBWYXVsdEFjdGlvblN0YXR1cwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipzdWNjZXNzKiogfCAqKmJvb2wqKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hY3Rpb25fc3RhdHVzIGltcG9ydCBWYXVsdEFjdGlvblN0YXR1cwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmF1bHRBY3Rpb25TdGF0dXMgZnJvbSBhIEpTT04gc3RyaW5nCnZhdWx0X2FjdGlvbl9zdGF0dXNfaW5zdGFuY2UgPSBWYXVsdEFjdGlvblN0YXR1cy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChWYXVsdEFjdGlvblN0YXR1cy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp2YXVsdF9hY3Rpb25fc3RhdHVzX2RpY3QgPSB2YXVsdF9hY3Rpb25fc3RhdHVzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWYXVsdEFjdGlvblN0YXR1cyBmcm9tIGEgZGljdAp2YXVsdF9hY3Rpb25fc3RhdHVzX2Zyb21fZGljdCA9IFZhdWx0QWN0aW9uU3RhdHVzLmZyb21fZGljdCh2YXVsdF9hY3Rpb25fc3RhdHVzX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/VaultAsset.md b/docs/VaultAsset.md index bb913480..9599f5e0 100644 --- a/docs/VaultAsset.md +++ b/docs/VaultAsset.md @@ -1,45 +1 @@ -# VaultAsset - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | [optional] -**total** | **str** | The total wallet balance. In EOS this value includes the network balance, self staking and pending refund. For all other coins it is the balance as it appears on the blockchain. | [optional] -**balance** | **str** | Deprecated - replaced by \"total\" | [optional] -**available** | **str** | Funds available for transfer. Equals the blockchain balance minus any locked amounts | [optional] -**pending** | **str** | The cumulative balance of all transactions pending to be cleared | [optional] -**frozen** | **str** | The cumulative frozen balance | [optional] -**locked_amount** | **str** | Funds in outgoing transactions that are not yet published to the network | [optional] -**staked** | **str** | Staked balance | [optional] -**total_staked_cpu** | **str** | Deprecated | [optional] -**total_staked_network** | **str** | Deprecated | [optional] -**self_staked_cpu** | **str** | Deprecated | [optional] -**self_staked_network** | **str** | Deprecated | [optional] -**pending_refund_cpu** | **str** | Deprecated | [optional] -**pending_refund_network** | **str** | Deprecated | [optional] -**block_height** | **str** | | [optional] -**block_hash** | **str** | | [optional] -**rewards_info** | [**RewardsInfo**](RewardsInfo.md) | | [optional] - -## Example - -```python -from fireblocks.models.vault_asset import VaultAsset - -# TODO update the JSON string below -json = "{}" -# create an instance of VaultAsset from a JSON string -vault_asset_instance = VaultAsset.from_json(json) -# print the JSON string representation of the object -print(VaultAsset.to_json()) - -# convert the object into a dict -vault_asset_dict = vault_asset_instance.to_dict() -# create an instance of VaultAsset from a dict -vault_asset_from_dict = VaultAsset.from_dict(vault_asset_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBWYXVsdEFzc2V0CgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKip0b3RhbCoqIHwgKipzdHIqKiB8IFRoZSB0b3RhbCB3YWxsZXQgYmFsYW5jZS4gSW4gRU9TIHRoaXMgdmFsdWUgaW5jbHVkZXMgdGhlIG5ldHdvcmsgYmFsYW5jZSwgc2VsZiBzdGFraW5nIGFuZCBwZW5kaW5nIHJlZnVuZC4gRm9yIGFsbCBvdGhlciBjb2lucyBpdCBpcyB0aGUgYmFsYW5jZSBhcyBpdCBhcHBlYXJzIG9uIHRoZSBibG9ja2NoYWluLiB8IFtvcHRpb25hbF0gCioqYmFsYW5jZSoqIHwgKipzdHIqKiB8IERlcHJlY2F0ZWQgLSByZXBsYWNlZCBieSBcJnF1b3Q7dG90YWxcJnF1b3Q7IHwgW29wdGlvbmFsXSAKKiphdmFpbGFibGUqKiB8ICoqc3RyKiogfCBGdW5kcyBhdmFpbGFibGUgZm9yIHRyYW5zZmVyLiBFcXVhbHMgdGhlIGJsb2NrY2hhaW4gYmFsYW5jZSBtaW51cyBhbnkgbG9ja2VkIGFtb3VudHMgfCBbb3B0aW9uYWxdIAoqKnBlbmRpbmcqKiB8ICoqc3RyKiogfCBUaGUgY3VtdWxhdGl2ZSBiYWxhbmNlIG9mIGFsbCB0cmFuc2FjdGlvbnMgcGVuZGluZyB0byBiZSBjbGVhcmVkIHwgW29wdGlvbmFsXSAKKipmcm96ZW4qKiB8ICoqc3RyKiogfCBUaGUgY3VtdWxhdGl2ZSBmcm96ZW4gYmFsYW5jZSB8IFtvcHRpb25hbF0gCioqbG9ja2VkX2Ftb3VudCoqIHwgKipzdHIqKiB8IEZ1bmRzIGluIG91dGdvaW5nIHRyYW5zYWN0aW9ucyB0aGF0IGFyZSBub3QgeWV0IHB1Ymxpc2hlZCB0byB0aGUgbmV0d29yayB8IFtvcHRpb25hbF0gCioqc3Rha2VkKiogfCAqKnN0cioqIHwgU3Rha2VkIGJhbGFuY2UgfCBbb3B0aW9uYWxdIAoqKnRvdGFsX3N0YWtlZF9jcHUqKiB8ICoqc3RyKiogfCBEZXByZWNhdGVkIHwgW29wdGlvbmFsXSAKKip0b3RhbF9zdGFrZWRfbmV0d29yayoqIHwgKipzdHIqKiB8IERlcHJlY2F0ZWQgfCBbb3B0aW9uYWxdIAoqKnNlbGZfc3Rha2VkX2NwdSoqIHwgKipzdHIqKiB8IERlcHJlY2F0ZWQgfCBbb3B0aW9uYWxdIAoqKnNlbGZfc3Rha2VkX25ldHdvcmsqKiB8ICoqc3RyKiogfCBEZXByZWNhdGVkIHwgW29wdGlvbmFsXSAKKipwZW5kaW5nX3JlZnVuZF9jcHUqKiB8ICoqc3RyKiogfCBEZXByZWNhdGVkIHwgW29wdGlvbmFsXSAKKipwZW5kaW5nX3JlZnVuZF9uZXR3b3JrKiogfCAqKnN0cioqIHwgRGVwcmVjYXRlZCB8IFtvcHRpb25hbF0gCioqYmxvY2tfaGVpZ2h0KiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipibG9ja19oYXNoKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipyZXdhcmRzX2luZm8qKiB8IFsqKlJld2FyZHNJbmZvKipdKFJld2FyZHNJbmZvLm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hc3NldCBpbXBvcnQgVmF1bHRBc3NldAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmF1bHRBc3NldCBmcm9tIGEgSlNPTiBzdHJpbmcKdmF1bHRfYXNzZXRfaW5zdGFuY2UgPSBWYXVsdEFzc2V0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFZhdWx0QXNzZXQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdmF1bHRfYXNzZXRfZGljdCA9IHZhdWx0X2Fzc2V0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWYXVsdEFzc2V0IGZyb20gYSBkaWN0CnZhdWx0X2Fzc2V0X2Zyb21fZGljdCA9IFZhdWx0QXNzZXQuZnJvbV9kaWN0KHZhdWx0X2Fzc2V0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/VaultWalletAddress.md b/docs/VaultWalletAddress.md index 908a3752..81979604 100644 --- a/docs/VaultWalletAddress.md +++ b/docs/VaultWalletAddress.md @@ -1,39 +1 @@ -# VaultWalletAddress - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**asset_id** | **str** | | [optional] -**address** | **str** | | [optional] -**description** | **str** | | [optional] -**tag** | **str** | | [optional] -**type** | **str** | | [optional] -**customer_ref_id** | **str** | | [optional] -**address_format** | **str** | | [optional] -**legacy_address** | **str** | | [optional] -**enterprise_address** | **str** | | [optional] -**bip44_address_index** | **int** | | [optional] -**user_defined** | **bool** | | [optional] - -## Example - -```python -from fireblocks.models.vault_wallet_address import VaultWalletAddress - -# TODO update the JSON string below -json = "{}" -# create an instance of VaultWalletAddress from a JSON string -vault_wallet_address_instance = VaultWalletAddress.from_json(json) -# print the JSON string representation of the object -print(VaultWalletAddress.to_json()) - -# convert the object into a dict -vault_wallet_address_dict = vault_wallet_address_instance.to_dict() -# create an instance of VaultWalletAddress from a dict -vault_wallet_address_from_dict = VaultWalletAddress.from_dict(vault_wallet_address_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBWYXVsdFdhbGxldEFkZHJlc3MKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqYXNzZXRfaWQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFkZHJlc3MqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmRlc2NyaXB0aW9uKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKip0YWcqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKnR5cGUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmN1c3RvbWVyX3JlZl9pZCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqYWRkcmVzc19mb3JtYXQqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmxlZ2FjeV9hZGRyZXNzKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKiplbnRlcnByaXNlX2FkZHJlc3MqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmJpcDQ0X2FkZHJlc3NfaW5kZXgqKiB8ICoqaW50KiogfCAgfCBbb3B0aW9uYWxdIAoqKnVzZXJfZGVmaW5lZCoqIHwgKipib29sKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmF1bHRfd2FsbGV0X2FkZHJlc3MgaW1wb3J0IFZhdWx0V2FsbGV0QWRkcmVzcwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmF1bHRXYWxsZXRBZGRyZXNzIGZyb20gYSBKU09OIHN0cmluZwp2YXVsdF93YWxsZXRfYWRkcmVzc19pbnN0YW5jZSA9IFZhdWx0V2FsbGV0QWRkcmVzcy5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChWYXVsdFdhbGxldEFkZHJlc3MudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKdmF1bHRfd2FsbGV0X2FkZHJlc3NfZGljdCA9IHZhdWx0X3dhbGxldF9hZGRyZXNzX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWYXVsdFdhbGxldEFkZHJlc3MgZnJvbSBhIGRpY3QKdmF1bHRfd2FsbGV0X2FkZHJlc3NfZnJvbV9kaWN0ID0gVmF1bHRXYWxsZXRBZGRyZXNzLmZyb21fZGljdCh2YXVsdF93YWxsZXRfYWRkcmVzc19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/VaultsApi.md b/docs/VaultsApi.md index 4c2232de..9e8d0f1f 100644 --- a/docs/VaultsApi.md +++ b/docs/VaultsApi.md @@ -1,2473 +1 @@ -# fireblocks.VaultsApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**activate_asset_for_vault_account**](VaultsApi.md#activate_asset_for_vault_account) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/activate | Activate a wallet in a vault account -[**attach_or_detach_tags_from_vault_accounts**](VaultsApi.md#attach_or_detach_tags_from_vault_accounts) | **POST** /vault/accounts/attached_tags | Attach or detach tags from vault accounts -[**create_legacy_address**](VaultsApi.md#create_legacy_address) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/create_legacy | Convert a segwit address to legacy format -[**create_multiple_accounts**](VaultsApi.md#create_multiple_accounts) | **POST** /vault/accounts/bulk | Bulk creation of new vault accounts -[**create_multiple_deposit_addresses**](VaultsApi.md#create_multiple_deposit_addresses) | **POST** /vault/accounts/addresses/bulk | Bulk creation of new deposit addresses -[**create_vault_account**](VaultsApi.md#create_vault_account) | **POST** /vault/accounts | Create a new vault account -[**create_vault_account_asset**](VaultsApi.md#create_vault_account_asset) | **POST** /vault/accounts/{vaultAccountId}/{assetId} | Create a new vault wallet -[**create_vault_account_asset_address**](VaultsApi.md#create_vault_account_asset_address) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses | Create new asset deposit address -[**get_asset_wallets**](VaultsApi.md#get_asset_wallets) | **GET** /vault/asset_wallets | Get vault wallets (Paginated) -[**get_create_multiple_deposit_addresses_job_status**](VaultsApi.md#get_create_multiple_deposit_addresses_job_status) | **GET** /vault/accounts/addresses/bulk/{jobId} | Get the job status of the bulk deposit address creation -[**get_create_multiple_vault_accounts_job_status**](VaultsApi.md#get_create_multiple_vault_accounts_job_status) | **GET** /vault/accounts/bulk/{jobId} | Get job status of bulk creation of new vault accounts -[**get_max_bip_index_used**](VaultsApi.md#get_max_bip_index_used) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/max_bip44_index_used | Get maximum BIP44 index used -[**get_max_spendable_amount**](VaultsApi.md#get_max_spendable_amount) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/max_spendable_amount | Get max spendable amount in a transaction -[**get_paged_vault_accounts**](VaultsApi.md#get_paged_vault_accounts) | **GET** /vault/accounts_paged | Get vault accounts (Paginated) -[**get_public_key_info**](VaultsApi.md#get_public_key_info) | **GET** /vault/public_key_info | Get the public key for a derivation path -[**get_public_key_info_for_address**](VaultsApi.md#get_public_key_info_for_address) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/{change}/{addressIndex}/public_key_info | Get an asset's public key -[**get_unspent_inputs**](VaultsApi.md#get_unspent_inputs) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/unspent_inputs | Get UTXO unspent inputs information -[**get_vault_account**](VaultsApi.md#get_vault_account) | **GET** /vault/accounts/{vaultAccountId} | Get a vault account by ID -[**get_vault_account_asset**](VaultsApi.md#get_vault_account_asset) | **GET** /vault/accounts/{vaultAccountId}/{assetId} | Get the asset balance for a vault account -[**get_vault_account_asset_addresses_paginated**](VaultsApi.md#get_vault_account_asset_addresses_paginated) | **GET** /vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated | Get addresses (Paginated) -[**get_vault_assets**](VaultsApi.md#get_vault_assets) | **GET** /vault/assets | Get asset balance for chosen assets -[**get_vault_balance_by_asset**](VaultsApi.md#get_vault_balance_by_asset) | **GET** /vault/assets/{assetId} | Get vault balance by an asset -[**hide_vault_account**](VaultsApi.md#hide_vault_account) | **POST** /vault/accounts/{vaultAccountId}/hide | Hide a vault account in the console -[**set_customer_ref_id_for_address**](VaultsApi.md#set_customer_ref_id_for_address) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/set_customer_ref_id | Assign AML customer reference ID -[**set_vault_account_auto_fuel**](VaultsApi.md#set_vault_account_auto_fuel) | **POST** /vault/accounts/{vaultAccountId}/set_auto_fuel | Set auto fueling to on or off -[**set_vault_account_customer_ref_id**](VaultsApi.md#set_vault_account_customer_ref_id) | **POST** /vault/accounts/{vaultAccountId}/set_customer_ref_id | Set an AML/KYT ID for a vault account -[**unhide_vault_account**](VaultsApi.md#unhide_vault_account) | **POST** /vault/accounts/{vaultAccountId}/unhide | Unhide a vault account in the console -[**update_vault_account**](VaultsApi.md#update_vault_account) | **PUT** /vault/accounts/{vaultAccountId} | Rename a vault account -[**update_vault_account_asset_address**](VaultsApi.md#update_vault_account_asset_address) | **PUT** /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId} | Update address description -[**update_vault_account_asset_balance**](VaultsApi.md#update_vault_account_asset_balance) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/balance | Refresh asset balance data - - -# **activate_asset_for_vault_account** -> CreateVaultAssetResponse activate_asset_for_vault_account(vault_account_id, asset_id, idempotency_key=idempotency_key, blockchain_wallet_type=blockchain_wallet_type) - -Activate a wallet in a vault account - -Initiates activation for a wallet in a vault account. -Activation is required for tokens that need an on-chain transaction for creation (XLM tokens, SOL tokens etc). -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.create_vault_asset_response import CreateVaultAssetResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_account_id = 'vault_account_id_example' # str | The ID of the vault account to return, or 'default' for the default vault account - asset_id = 'asset_id_example' # str | The ID of the asset - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - blockchain_wallet_type = 'blockchain_wallet_type_example' # str | Optional immutable blockchain wallet type to store per tenant+vault (optional) - - try: - # Activate a wallet in a vault account - api_response = fireblocks.vaults.activate_asset_for_vault_account(vault_account_id, asset_id, idempotency_key=idempotency_key, blockchain_wallet_type=blockchain_wallet_type).result() - print("The response of VaultsApi->activate_asset_for_vault_account:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->activate_asset_for_vault_account: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| The ID of the vault account to return, or 'default' for the default vault account | - **asset_id** | **str**| The ID of the asset | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **blockchain_wallet_type** | **str**| Optional immutable blockchain wallet type to store per tenant+vault | [optional] - -### Return type - -[**CreateVaultAssetResponse**](CreateVaultAssetResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **attach_or_detach_tags_from_vault_accounts** -> VaultAccountsTagAttachmentOperationsResponse attach_or_detach_tags_from_vault_accounts(vault_accounts_tag_attachment_operations_request, idempotency_key=idempotency_key) - -Attach or detach tags from vault accounts - -Attach or detach one or more tags from the requested vault accounts. -Endpoint Permission: For protected tags: Owner, Admin, Non-Signing Admin. For non protected tags: Owner, Admin, Non-Signing Admin, Signer, Editor, Approver. - -### Example - - -```python -from fireblocks.models.vault_accounts_tag_attachment_operations_request import VaultAccountsTagAttachmentOperationsRequest -from fireblocks.models.vault_accounts_tag_attachment_operations_response import VaultAccountsTagAttachmentOperationsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_accounts_tag_attachment_operations_request = fireblocks.VaultAccountsTagAttachmentOperationsRequest() # VaultAccountsTagAttachmentOperationsRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Attach or detach tags from vault accounts - api_response = fireblocks.vaults.attach_or_detach_tags_from_vault_accounts(vault_accounts_tag_attachment_operations_request, idempotency_key=idempotency_key).result() - print("The response of VaultsApi->attach_or_detach_tags_from_vault_accounts:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->attach_or_detach_tags_from_vault_accounts: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_accounts_tag_attachment_operations_request** | [**VaultAccountsTagAttachmentOperationsRequest**](VaultAccountsTagAttachmentOperationsRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**VaultAccountsTagAttachmentOperationsResponse**](VaultAccountsTagAttachmentOperationsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Tags were attached/detached successfully | * X-Request-ID -
| -**400** | - Invalid request parameters. - Same tag ID is provided in both tagIdsToAttach and tagIdsToDetach. - Vault accounts are archived. | * X-Request-ID -
| -**404** | - Tags with the requested ID not found. - Vault accounts with the requested ID not found. | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_legacy_address** -> CreateAddressResponse create_legacy_address(vault_account_id, asset_id, address_id, idempotency_key=idempotency_key) - -Convert a segwit address to legacy format - -Converts an existing segwit address to the legacy format. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.create_address_response import CreateAddressResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_account_id = 'vault_account_id_example' # str | The ID of the vault account - asset_id = 'asset_id_example' # str | The ID of the asset - address_id = 'address_id_example' # str | The segwit address to translate - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Convert a segwit address to legacy format - api_response = fireblocks.vaults.create_legacy_address(vault_account_id, asset_id, address_id, idempotency_key=idempotency_key).result() - print("The response of VaultsApi->create_legacy_address:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->create_legacy_address: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| The ID of the vault account | - **asset_id** | **str**| The ID of the asset | - **address_id** | **str**| The segwit address to translate | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**CreateAddressResponse**](CreateAddressResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | The created address | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_multiple_accounts** -> JobCreated create_multiple_accounts(create_multiple_accounts_request, idempotency_key=idempotency_key) - -Bulk creation of new vault accounts - -Create multiple vault accounts by running an async job. -- The HBAR, TON, SUI, TERRA, ALGO, and DOT blockchains are not supported. -- These endpoints are currently in beta and might be subject to changes. -- Limited to a maximum of 10,000 accounts per operation. - -**Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor. - - -### Example - - -```python -from fireblocks.models.create_multiple_accounts_request import CreateMultipleAccountsRequest -from fireblocks.models.job_created import JobCreated -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - create_multiple_accounts_request = fireblocks.CreateMultipleAccountsRequest() # CreateMultipleAccountsRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Bulk creation of new vault accounts - api_response = fireblocks.vaults.create_multiple_accounts(create_multiple_accounts_request, idempotency_key=idempotency_key).result() - print("The response of VaultsApi->create_multiple_accounts:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->create_multiple_accounts: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **create_multiple_accounts_request** | [**CreateMultipleAccountsRequest**](CreateMultipleAccountsRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**JobCreated**](JobCreated.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A JobCreated object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_multiple_deposit_addresses** -> JobCreated create_multiple_deposit_addresses(create_multiple_deposit_addresses_request, idempotency_key=idempotency_key) - -Bulk creation of new deposit addresses - -**For UTXO blockchains only.** - -Create multiple deposit addresses by running an async job. -- The target Vault account should already have a UTXO asset wallet with a permanent address. -- Limited to a maximum of 10,000 addresses per operation. Use multiple operations for the same Vault account/permanent address if needed. - -**Endpoint Permissions:** Admin, Non-Signing Admin. - - -### Example - - -```python -from fireblocks.models.create_multiple_deposit_addresses_request import CreateMultipleDepositAddressesRequest -from fireblocks.models.job_created import JobCreated -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - create_multiple_deposit_addresses_request = fireblocks.CreateMultipleDepositAddressesRequest() # CreateMultipleDepositAddressesRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Bulk creation of new deposit addresses - api_response = fireblocks.vaults.create_multiple_deposit_addresses(create_multiple_deposit_addresses_request, idempotency_key=idempotency_key).result() - print("The response of VaultsApi->create_multiple_deposit_addresses:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->create_multiple_deposit_addresses: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **create_multiple_deposit_addresses_request** | [**CreateMultipleDepositAddressesRequest**](CreateMultipleDepositAddressesRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**JobCreated**](JobCreated.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A JobCreated object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_vault_account** -> VaultAccount create_vault_account(create_vault_account_request, idempotency_key=idempotency_key) - -Create a new vault account - -Creates a new vault account with the requested name. -**Note: ** Vault account names should consist of ASCII characters only. -Learn more about Fireblocks Vault Accounts in the following [guide](https://developers.fireblocks.com/reference/create-vault-account). -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.create_vault_account_request import CreateVaultAccountRequest -from fireblocks.models.vault_account import VaultAccount -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - create_vault_account_request = fireblocks.CreateVaultAccountRequest() # CreateVaultAccountRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Create a new vault account - api_response = fireblocks.vaults.create_vault_account(create_vault_account_request, idempotency_key=idempotency_key).result() - print("The response of VaultsApi->create_vault_account:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->create_vault_account: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **create_vault_account_request** | [**CreateVaultAccountRequest**](CreateVaultAccountRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**VaultAccount**](VaultAccount.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A Vault Account object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_vault_account_asset** -> CreateVaultAssetResponse create_vault_account_asset(vault_account_id, asset_id, idempotency_key=idempotency_key, blockchain_wallet_type=blockchain_wallet_type, create_assets_request=create_assets_request) - -Create a new vault wallet - -Creates a wallet for a specific asset in a vault account. -Learn more about Fireblocks Vault Wallets in the following [guide](https://developers.fireblocks.com/reference/create-vault-wallet). -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.create_assets_request import CreateAssetsRequest -from fireblocks.models.create_vault_asset_response import CreateVaultAssetResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_account_id = 'vault_account_id_example' # str | The ID of the vault account to return, or 'default' for the default vault account - asset_id = 'asset_id_example' # str | The ID of the asset - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - blockchain_wallet_type = 'blockchain_wallet_type_example' # str | Optional immutable blockchain wallet type to store per tenant+vault (optional) - create_assets_request = fireblocks.CreateAssetsRequest() # CreateAssetsRequest | (optional) - - try: - # Create a new vault wallet - api_response = fireblocks.vaults.create_vault_account_asset(vault_account_id, asset_id, idempotency_key=idempotency_key, blockchain_wallet_type=blockchain_wallet_type, create_assets_request=create_assets_request).result() - print("The response of VaultsApi->create_vault_account_asset:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->create_vault_account_asset: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| The ID of the vault account to return, or 'default' for the default vault account | - **asset_id** | **str**| The ID of the asset | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **blockchain_wallet_type** | **str**| Optional immutable blockchain wallet type to store per tenant+vault | [optional] - **create_assets_request** | [**CreateAssetsRequest**](CreateAssetsRequest.md)| | [optional] - -### Return type - -[**CreateVaultAssetResponse**](CreateVaultAssetResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **create_vault_account_asset_address** -> CreateAddressResponse create_vault_account_asset_address(vault_account_id, asset_id, idempotency_key=idempotency_key, create_address_request=create_address_request) - -Create new asset deposit address - -Creates a new deposit address for an asset of a vault account. -Should be used for UTXO or Tag/Memo based assets ONLY. - -Requests with account based assets will fail. - -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.create_address_request import CreateAddressRequest -from fireblocks.models.create_address_response import CreateAddressResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_account_id = 'vault_account_id_example' # str | The ID of the vault account to return - asset_id = 'asset_id_example' # str | The ID of the asset - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - create_address_request = fireblocks.CreateAddressRequest() # CreateAddressRequest | (optional) - - try: - # Create new asset deposit address - api_response = fireblocks.vaults.create_vault_account_asset_address(vault_account_id, asset_id, idempotency_key=idempotency_key, create_address_request=create_address_request).result() - print("The response of VaultsApi->create_vault_account_asset_address:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->create_vault_account_asset_address: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| The ID of the vault account to return | - **asset_id** | **str**| The ID of the asset | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **create_address_request** | [**CreateAddressRequest**](CreateAddressRequest.md)| | [optional] - -### Return type - -[**CreateAddressResponse**](CreateAddressResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | The created address | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_asset_wallets** -> PaginatedAssetWalletResponse get_asset_wallets(total_amount_larger_than=total_amount_larger_than, asset_id=asset_id, order_by=order_by, before=before, after=after, limit=limit) - -Get vault wallets (Paginated) - -Get all vault wallets of the vault accounts in your workspace. -A vault wallet is an asset in a vault account. - -This method allows fast traversal of all account balances. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -### Example - - -```python -from fireblocks.models.paginated_asset_wallet_response import PaginatedAssetWalletResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - total_amount_larger_than = 3.4 # float | When specified, only vault wallets with total balance greater than this amount are returned. (optional) - asset_id = 'asset_id_example' # str | When specified, only vault wallets with the specified ID are returned. (optional) - order_by = DESC # str | (optional) (default to DESC) - before = 'before_example' # str | Fetches the next paginated response before this element. This element is a cursor and is returned at the response of the previous page. (optional) - after = 'after_example' # str | Fetches the next paginated response after this element. This element is a cursor and is returned at the response of the previous page. (optional) - limit = 200 # float | The maximum number of vault wallets in a single response. The default is 200 and the maximum is 1000. (optional) (default to 200) - - try: - # Get vault wallets (Paginated) - api_response = fireblocks.vaults.get_asset_wallets(total_amount_larger_than=total_amount_larger_than, asset_id=asset_id, order_by=order_by, before=before, after=after, limit=limit).result() - print("The response of VaultsApi->get_asset_wallets:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->get_asset_wallets: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **total_amount_larger_than** | **float**| When specified, only vault wallets with total balance greater than this amount are returned. | [optional] - **asset_id** | **str**| When specified, only vault wallets with the specified ID are returned. | [optional] - **order_by** | **str**| | [optional] [default to DESC] - **before** | **str**| Fetches the next paginated response before this element. This element is a cursor and is returned at the response of the previous page. | [optional] - **after** | **str**| Fetches the next paginated response after this element. This element is a cursor and is returned at the response of the previous page. | [optional] - **limit** | **float**| The maximum number of vault wallets in a single response. The default is 200 and the maximum is 1000. | [optional] [default to 200] - -### Return type - -[**PaginatedAssetWalletResponse**](PaginatedAssetWalletResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A PaginatedAssetWalletResponse object | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_create_multiple_deposit_addresses_job_status** -> CreateMultipleDepositAddressesJobStatus get_create_multiple_deposit_addresses_job_status(job_id) - -Get the job status of the bulk deposit address creation - -Returns the current status of (or an error for) the specified deposit addresss bulk creation job. - -**Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer. - - -### Example - - -```python -from fireblocks.models.create_multiple_deposit_addresses_job_status import CreateMultipleDepositAddressesJobStatus -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - job_id = '019681b4-107d-7243-942d-4c3c30e36fae' # str | The ID of the job to create addresses - - try: - # Get the job status of the bulk deposit address creation - api_response = fireblocks.vaults.get_create_multiple_deposit_addresses_job_status(job_id).result() - print("The response of VaultsApi->get_create_multiple_deposit_addresses_job_status:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->get_create_multiple_deposit_addresses_job_status: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **job_id** | **str**| The ID of the job to create addresses | - -### Return type - -[**CreateMultipleDepositAddressesJobStatus**](CreateMultipleDepositAddressesJobStatus.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A Job with status | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_create_multiple_vault_accounts_job_status** -> CreateMultipleVaultAccountsJobStatus get_create_multiple_vault_accounts_job_status(job_id) - -Get job status of bulk creation of new vault accounts - -Returns the current status of (or error for) the specified vault account bulk creation job. - -**Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - -### Example - - -```python -from fireblocks.models.create_multiple_vault_accounts_job_status import CreateMultipleVaultAccountsJobStatus -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - job_id = '019681b4-107d-7243-942d-4c3c30e36fae' # str | The ID of the job to create addresses - - try: - # Get job status of bulk creation of new vault accounts - api_response = fireblocks.vaults.get_create_multiple_vault_accounts_job_status(job_id).result() - print("The response of VaultsApi->get_create_multiple_vault_accounts_job_status:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->get_create_multiple_vault_accounts_job_status: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **job_id** | **str**| The ID of the job to create addresses | - -### Return type - -[**CreateMultipleVaultAccountsJobStatus**](CreateMultipleVaultAccountsJobStatus.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A Job with status | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_max_bip_index_used** -> GetMaxBipIndexUsedResponse get_max_bip_index_used(vault_account_id, asset_id) - -Get maximum BIP44 index used - -Retrieves the maximum BIP44 address index and change address index used for a specific asset in a vault account (BIP44 standard). - -### Example - - -```python -from fireblocks.models.get_max_bip_index_used_response import GetMaxBipIndexUsedResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_account_id = 'vault_account_id_example' # str | The ID of the vault account - asset_id = 'asset_id_example' # str | The ID of the asset - - try: - # Get maximum BIP44 index used - api_response = fireblocks.vaults.get_max_bip_index_used(vault_account_id, asset_id).result() - print("The response of VaultsApi->get_max_bip_index_used:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->get_max_bip_index_used: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| The ID of the vault account | - **asset_id** | **str**| The ID of the asset | - -### Return type - -[**GetMaxBipIndexUsedResponse**](GetMaxBipIndexUsedResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_max_spendable_amount** -> GetMaxSpendableAmountResponse get_max_spendable_amount(vault_account_id, asset_id, manual_signging=manual_signging) - -Get max spendable amount in a transaction - -**UTXO assets only.** - -Retrieve the maximum amount of the specified asset that can be spent in a single transaction from the specified vault account. - -**Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - -### Example - - -```python -from fireblocks.models.get_max_spendable_amount_response import GetMaxSpendableAmountResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_account_id = 'vault_account_id_example' # str | The ID of the vault account, or 'default' for the default vault account - asset_id = 'asset_id_example' # str | The ID of the asset - manual_signging = True # bool | False by default. The maximum number of inputs depends if the transaction will be signed by an automated co-signer server or on a mobile device. (optional) - - try: - # Get max spendable amount in a transaction - api_response = fireblocks.vaults.get_max_spendable_amount(vault_account_id, asset_id, manual_signging=manual_signging).result() - print("The response of VaultsApi->get_max_spendable_amount:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->get_max_spendable_amount: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| The ID of the vault account, or 'default' for the default vault account | - **asset_id** | **str**| The ID of the asset | - **manual_signging** | **bool**| False by default. The maximum number of inputs depends if the transaction will be signed by an automated co-signer server or on a mobile device. | [optional] - -### Return type - -[**GetMaxSpendableAmountResponse**](GetMaxSpendableAmountResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_paged_vault_accounts** -> VaultAccountsPagedResponse get_paged_vault_accounts(name_prefix=name_prefix, name_suffix=name_suffix, min_amount_threshold=min_amount_threshold, asset_id=asset_id, order_by=order_by, before=before, after=after, limit=limit, tag_ids=tag_ids, include_tag_ids=include_tag_ids, exclude_tag_ids=exclude_tag_ids) - -Get vault accounts (Paginated) - -Gets all vault accounts in your workspace. This endpoint returns a limited amount of results with a quick response time. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -### Example - - -```python -from fireblocks.models.vault_accounts_paged_response import VaultAccountsPagedResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - name_prefix = 'name_prefix_example' # str | (optional) - name_suffix = 'name_suffix_example' # str | (optional) - min_amount_threshold = 10 # float | Specifying minAmountThreshold will filter accounts whose total balance is greater than this value; otherwise, it returns all accounts. The amount set in this parameter represents the native asset amount, not its USD value. (optional) - asset_id = 'asset_id_example' # str | (optional) - order_by = DESC # str | (optional) (default to DESC) - before = 'before_example' # str | (optional) - after = 'after_example' # str | (optional) - limit = 200 # float | (optional) (default to 200) - tag_ids = ['tag_ids_example'] # List[str] | DEPRECATED - use includeTagIds instead (optional) - include_tag_ids = ['include_tag_ids_example'] # List[str] | List of tag IDs to include. Vault accounts with any of these tags will be included (optional) - exclude_tag_ids = ['exclude_tag_ids_example'] # List[str] | List of tag IDs to exclude. Vault accounts with any of these tags will be filtered out (optional) - - try: - # Get vault accounts (Paginated) - api_response = fireblocks.vaults.get_paged_vault_accounts(name_prefix=name_prefix, name_suffix=name_suffix, min_amount_threshold=min_amount_threshold, asset_id=asset_id, order_by=order_by, before=before, after=after, limit=limit, tag_ids=tag_ids, include_tag_ids=include_tag_ids, exclude_tag_ids=exclude_tag_ids).result() - print("The response of VaultsApi->get_paged_vault_accounts:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->get_paged_vault_accounts: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **name_prefix** | **str**| | [optional] - **name_suffix** | **str**| | [optional] - **min_amount_threshold** | **float**| Specifying minAmountThreshold will filter accounts whose total balance is greater than this value; otherwise, it returns all accounts. The amount set in this parameter represents the native asset amount, not its USD value. | [optional] - **asset_id** | **str**| | [optional] - **order_by** | **str**| | [optional] [default to DESC] - **before** | **str**| | [optional] - **after** | **str**| | [optional] - **limit** | **float**| | [optional] [default to 200] - **tag_ids** | [**List[str]**](str.md)| DEPRECATED - use includeTagIds instead | [optional] - **include_tag_ids** | [**List[str]**](str.md)| List of tag IDs to include. Vault accounts with any of these tags will be included | [optional] - **exclude_tag_ids** | [**List[str]**](str.md)| List of tag IDs to exclude. Vault accounts with any of these tags will be filtered out | [optional] - -### Return type - -[**VaultAccountsPagedResponse**](VaultAccountsPagedResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A VaultAccountsPagedResponse object | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_public_key_info** -> PublicKeyInformation get_public_key_info(derivation_path, algorithm, compressed=compressed) - -Get the public key for a derivation path - -Gets the public key information based on derivation path and signing algorithm. -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.public_key_information import PublicKeyInformation -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - derivation_path = 'derivation_path_example' # str | - algorithm = 'algorithm_example' # str | - compressed = True # bool | (optional) - - try: - # Get the public key for a derivation path - api_response = fireblocks.vaults.get_public_key_info(derivation_path, algorithm, compressed=compressed).result() - print("The response of VaultsApi->get_public_key_info:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->get_public_key_info: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **derivation_path** | **str**| | - **algorithm** | **str**| | - **compressed** | **bool**| | [optional] - -### Return type - -[**PublicKeyInformation**](PublicKeyInformation.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Public key information | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_public_key_info_for_address** -> PublicKeyInformation get_public_key_info_for_address(vault_account_id, asset_id, change, address_index, compressed=compressed) - -Get an asset's public key - -Get the public key information for a specific asset in a vault account. -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.public_key_information import PublicKeyInformation -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_account_id = 'vault_account_id_example' # str | - asset_id = 'asset_id_example' # str | - change = 3.4 # float | - address_index = 3.4 # float | - compressed = True # bool | (optional) - - try: - # Get an asset's public key - api_response = fireblocks.vaults.get_public_key_info_for_address(vault_account_id, asset_id, change, address_index, compressed=compressed).result() - print("The response of VaultsApi->get_public_key_info_for_address:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->get_public_key_info_for_address: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| | - **asset_id** | **str**| | - **change** | **float**| | - **address_index** | **float**| | - **compressed** | **bool**| | [optional] - -### Return type - -[**PublicKeyInformation**](PublicKeyInformation.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Public Key Information | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_unspent_inputs** -> List[UnspentInputsResponse] get_unspent_inputs(vault_account_id, asset_id) - -Get UTXO unspent inputs information - -Returns unspent inputs information of an UTXO asset in a vault account. - -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -### Example - - -```python -from fireblocks.models.unspent_inputs_response import UnspentInputsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_account_id = 'vault_account_id_example' # str | The ID of the vault account - asset_id = 'asset_id_example' # str | The ID of the asset - - try: - # Get UTXO unspent inputs information - api_response = fireblocks.vaults.get_unspent_inputs(vault_account_id, asset_id).result() - print("The response of VaultsApi->get_unspent_inputs:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->get_unspent_inputs: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| The ID of the vault account | - **asset_id** | **str**| The ID of the asset | - -### Return type - -[**List[UnspentInputsResponse]**](UnspentInputsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | List of Unspent information per input | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_vault_account** -> VaultAccount get_vault_account(vault_account_id) - -Get a vault account by ID - -Get a vault account by its unique ID. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -### Example - - -```python -from fireblocks.models.vault_account import VaultAccount -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_account_id = 'vault_account_id_example' # str | The ID of the vault account - - try: - # Get a vault account by ID - api_response = fireblocks.vaults.get_vault_account(vault_account_id).result() - print("The response of VaultsApi->get_vault_account:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->get_vault_account: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| The ID of the vault account | - -### Return type - -[**VaultAccount**](VaultAccount.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A Vault Account object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_vault_account_asset** -> VaultAsset get_vault_account_asset(vault_account_id, asset_id) - -Get the asset balance for a vault account - -Returns a specific vault wallet balance information for a specific asset. - -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, - Viewer. - -### Example - - -```python -from fireblocks.models.vault_asset import VaultAsset -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_account_id = 'vault_account_id_example' # str | The ID of the vault account to return - asset_id = 'asset_id_example' # str | The ID of the asset - - try: - # Get the asset balance for a vault account - api_response = fireblocks.vaults.get_vault_account_asset(vault_account_id, asset_id).result() - print("The response of VaultsApi->get_vault_account_asset:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->get_vault_account_asset: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| The ID of the vault account to return | - **asset_id** | **str**| The ID of the asset | - -### Return type - -[**VaultAsset**](VaultAsset.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A VaultAsset object | - | -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_vault_account_asset_addresses_paginated** -> PaginatedAddressResponse get_vault_account_asset_addresses_paginated(vault_account_id, asset_id, limit=limit, before=before, after=after) - -Get addresses (Paginated) - -Returns a paginated response of the addresses for a given vault account and asset. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -### Example - - -```python -from fireblocks.models.paginated_address_response import PaginatedAddressResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_account_id = 'vault_account_id_example' # str | The ID of the vault account to return - asset_id = 'asset_id_example' # str | The ID of the asset - limit = 3.4 # float | (optional) - before = 'before_example' # str | (optional) - after = 'after_example' # str | (optional) - - try: - # Get addresses (Paginated) - api_response = fireblocks.vaults.get_vault_account_asset_addresses_paginated(vault_account_id, asset_id, limit=limit, before=before, after=after).result() - print("The response of VaultsApi->get_vault_account_asset_addresses_paginated:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->get_vault_account_asset_addresses_paginated: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| The ID of the vault account to return | - **asset_id** | **str**| The ID of the asset | - **limit** | **float**| | [optional] - **before** | **str**| | [optional] - **after** | **str**| | [optional] - -### Return type - -[**PaginatedAddressResponse**](PaginatedAddressResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A paginated list of addresses, and pagination info. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_vault_assets** -> List[VaultAsset] get_vault_assets(account_name_prefix=account_name_prefix, account_name_suffix=account_name_suffix) - -Get asset balance for chosen assets - -Gets the assets amount summary for all accounts or filtered accounts. - -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -### Example - - -```python -from fireblocks.models.vault_asset import VaultAsset -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - account_name_prefix = 'account_name_prefix_example' # str | (optional) - account_name_suffix = 'account_name_suffix_example' # str | (optional) - - try: - # Get asset balance for chosen assets - api_response = fireblocks.vaults.get_vault_assets(account_name_prefix=account_name_prefix, account_name_suffix=account_name_suffix).result() - print("The response of VaultsApi->get_vault_assets:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->get_vault_assets: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **account_name_prefix** | **str**| | [optional] - **account_name_suffix** | **str**| | [optional] - -### Return type - -[**List[VaultAsset]**](VaultAsset.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Amount by asset | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_vault_balance_by_asset** -> VaultAsset get_vault_balance_by_asset(asset_id) - -Get vault balance by an asset - -Get the total balance of an asset across all the vault accounts. - -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - -### Example - - -```python -from fireblocks.models.vault_asset import VaultAsset -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - asset_id = 'asset_id_example' # str | - - try: - # Get vault balance by an asset - api_response = fireblocks.vaults.get_vault_balance_by_asset(asset_id).result() - print("The response of VaultsApi->get_vault_balance_by_asset:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->get_vault_balance_by_asset: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **asset_id** | **str**| | - -### Return type - -[**VaultAsset**](VaultAsset.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Vault amount by asset | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **hide_vault_account** -> VaultActionStatus hide_vault_account(vault_account_id, idempotency_key=idempotency_key) - -Hide a vault account in the console - -Hides the requested vault account from the web console view. -This operation is required when creating thousands of vault accounts to serve your end-users. -Used for preventing the web console to be swamped with too much vault accounts. -Learn more in the following [guide](https://developers.fireblocks.com/docs/create-direct-custody-wallets#hiding-vault-accounts). -NOTE: Hiding the vault account from the web console will also hide all the related transactions to/from this vault. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.vault_action_status import VaultActionStatus -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_account_id = 'vault_account_id_example' # str | The vault account to hide - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Hide a vault account in the console - api_response = fireblocks.vaults.hide_vault_account(vault_account_id, idempotency_key=idempotency_key).result() - print("The response of VaultsApi->hide_vault_account:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->hide_vault_account: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| The vault account to hide | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**VaultActionStatus**](VaultActionStatus.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_customer_ref_id_for_address** -> VaultActionStatus set_customer_ref_id_for_address(vault_account_id, asset_id, address_id, set_customer_ref_id_for_address_request, idempotency_key=idempotency_key) - -Assign AML customer reference ID - -Sets an AML/KYT customer reference ID for a specific address. -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.set_customer_ref_id_for_address_request import SetCustomerRefIdForAddressRequest -from fireblocks.models.vault_action_status import VaultActionStatus -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_account_id = 'vault_account_id_example' # str | The ID of the vault account - asset_id = 'asset_id_example' # str | The ID of the asset - address_id = 'address_id_example' # str | The address for which to add a description. For XRP, use
:, for all other assets, use only the address - set_customer_ref_id_for_address_request = fireblocks.SetCustomerRefIdForAddressRequest() # SetCustomerRefIdForAddressRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Assign AML customer reference ID - api_response = fireblocks.vaults.set_customer_ref_id_for_address(vault_account_id, asset_id, address_id, set_customer_ref_id_for_address_request, idempotency_key=idempotency_key).result() - print("The response of VaultsApi->set_customer_ref_id_for_address:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->set_customer_ref_id_for_address: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| The ID of the vault account | - **asset_id** | **str**| The ID of the asset | - **address_id** | **str**| The address for which to add a description. For XRP, use <address>:<tag>, for all other assets, use only the address | - **set_customer_ref_id_for_address_request** | [**SetCustomerRefIdForAddressRequest**](SetCustomerRefIdForAddressRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**VaultActionStatus**](VaultActionStatus.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_vault_account_auto_fuel** -> VaultActionStatus set_vault_account_auto_fuel(vault_account_id, set_auto_fuel_request, idempotency_key=idempotency_key) - -Set auto fueling to on or off - -Toggles the auto fueling property of the vault account to enabled or disabled. -Vault Accounts with 'autoFuel=true' are monitored and auto fueled by the Fireblocks Gas Station. -Learn more about the Fireblocks Gas Station in the following [guide](https://developers.fireblocks.com/docs/work-with-gas-station). -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.set_auto_fuel_request import SetAutoFuelRequest -from fireblocks.models.vault_action_status import VaultActionStatus -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_account_id = 'vault_account_id_example' # str | The vault account ID - set_auto_fuel_request = fireblocks.SetAutoFuelRequest() # SetAutoFuelRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Set auto fueling to on or off - api_response = fireblocks.vaults.set_vault_account_auto_fuel(vault_account_id, set_auto_fuel_request, idempotency_key=idempotency_key).result() - print("The response of VaultsApi->set_vault_account_auto_fuel:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->set_vault_account_auto_fuel: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| The vault account ID | - **set_auto_fuel_request** | [**SetAutoFuelRequest**](SetAutoFuelRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**VaultActionStatus**](VaultActionStatus.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **set_vault_account_customer_ref_id** -> VaultActionStatus set_vault_account_customer_ref_id(vault_account_id, set_customer_ref_id_request, idempotency_key=idempotency_key) - -Set an AML/KYT ID for a vault account - -Assigns an AML/KYT customer reference ID for the vault account. Learn more about Fireblocks AML management in the following [guide](https://developers.fireblocks.com/docs/define-aml-policies).
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.set_customer_ref_id_request import SetCustomerRefIdRequest -from fireblocks.models.vault_action_status import VaultActionStatus -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_account_id = 'vault_account_id_example' # str | The vault account ID - set_customer_ref_id_request = fireblocks.SetCustomerRefIdRequest() # SetCustomerRefIdRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Set an AML/KYT ID for a vault account - api_response = fireblocks.vaults.set_vault_account_customer_ref_id(vault_account_id, set_customer_ref_id_request, idempotency_key=idempotency_key).result() - print("The response of VaultsApi->set_vault_account_customer_ref_id:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->set_vault_account_customer_ref_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| The vault account ID | - **set_customer_ref_id_request** | [**SetCustomerRefIdRequest**](SetCustomerRefIdRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**VaultActionStatus**](VaultActionStatus.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **unhide_vault_account** -> VaultActionStatus unhide_vault_account(vault_account_id, idempotency_key=idempotency_key) - -Unhide a vault account in the console - -Makes a hidden vault account visible in web console view. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.vault_action_status import VaultActionStatus -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_account_id = 'vault_account_id_example' # str | The vault account to unhide - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Unhide a vault account in the console - api_response = fireblocks.vaults.unhide_vault_account(vault_account_id, idempotency_key=idempotency_key).result() - print("The response of VaultsApi->unhide_vault_account:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->unhide_vault_account: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| The vault account to unhide | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**VaultActionStatus**](VaultActionStatus.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_vault_account** -> RenameVaultAccountResponse update_vault_account(vault_account_id, update_vault_account_request, idempotency_key=idempotency_key) - -Rename a vault account - -Renames the requested vault account. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver. - -### Example - - -```python -from fireblocks.models.rename_vault_account_response import RenameVaultAccountResponse -from fireblocks.models.update_vault_account_request import UpdateVaultAccountRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_account_id = 'vault_account_id_example' # str | The ID of the vault account to edit - update_vault_account_request = fireblocks.UpdateVaultAccountRequest() # UpdateVaultAccountRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Rename a vault account - api_response = fireblocks.vaults.update_vault_account(vault_account_id, update_vault_account_request, idempotency_key=idempotency_key).result() - print("The response of VaultsApi->update_vault_account:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->update_vault_account: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| The ID of the vault account to edit | - **update_vault_account_request** | [**UpdateVaultAccountRequest**](UpdateVaultAccountRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**RenameVaultAccountResponse**](RenameVaultAccountResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_vault_account_asset_address** -> VaultActionStatus update_vault_account_asset_address(vault_account_id, asset_id, address_id, idempotency_key=idempotency_key, update_vault_account_asset_address_request=update_vault_account_asset_address_request) - -Update address description - -Updates the description of an existing address of an asset in a vault account. -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.update_vault_account_asset_address_request import UpdateVaultAccountAssetAddressRequest -from fireblocks.models.vault_action_status import VaultActionStatus -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_account_id = 'vault_account_id_example' # str | The ID of the vault account - asset_id = 'asset_id_example' # str | The ID of the asset - address_id = 'address_id_example' # str | The address for which to add a description. For XRP, use
:, for all other assets, use only the address - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - update_vault_account_asset_address_request = fireblocks.UpdateVaultAccountAssetAddressRequest() # UpdateVaultAccountAssetAddressRequest | (optional) - - try: - # Update address description - api_response = fireblocks.vaults.update_vault_account_asset_address(vault_account_id, asset_id, address_id, idempotency_key=idempotency_key, update_vault_account_asset_address_request=update_vault_account_asset_address_request).result() - print("The response of VaultsApi->update_vault_account_asset_address:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->update_vault_account_asset_address: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| The ID of the vault account | - **asset_id** | **str**| The ID of the asset | - **address_id** | **str**| The address for which to add a description. For XRP, use <address>:<tag>, for all other assets, use only the address | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **update_vault_account_asset_address_request** | [**UpdateVaultAccountAssetAddressRequest**](UpdateVaultAccountAssetAddressRequest.md)| | [optional] - -### Return type - -[**VaultActionStatus**](VaultActionStatus.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_vault_account_asset_balance** -> VaultAsset update_vault_account_asset_balance(vault_account_id, asset_id, idempotency_key=idempotency_key) - -Refresh asset balance data - -Updates the balance of a specific asset in a vault account. - -This API endpoint is subject to a strict rate limit. -Should be used by clients in very specific scenarios. - -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.vault_asset import VaultAsset -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - vault_account_id = 'vault_account_id_example' # str | The ID of the vault account to return - asset_id = 'asset_id_example' # str | The ID of the asset - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Refresh asset balance data - api_response = fireblocks.vaults.update_vault_account_asset_balance(vault_account_id, asset_id, idempotency_key=idempotency_key).result() - print("The response of VaultsApi->update_vault_account_asset_balance:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling VaultsApi->update_vault_account_asset_balance: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **vault_account_id** | **str**| The ID of the vault account to return | - **asset_id** | **str**| The ID of the asset | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**VaultAsset**](VaultAsset.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A VaultAsset object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLlZhdWx0c0FwaQoKQWxsIFVSSXMgYXJlIHJlbGF0aXZlIHRvICpodHRwczovL2FwaS5maXJlYmxvY2tzLmlvL3YxKgoKTWV0aG9kIHwgSFRUUCByZXF1ZXN0IHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tClsqKmFjdGl2YXRlX2Fzc2V0X2Zvcl92YXVsdF9hY2NvdW50KipdKFZhdWx0c0FwaS5tZCNhY3RpdmF0ZV9hc3NldF9mb3JfdmF1bHRfYWNjb3VudCkgfCAqKlBPU1QqKiAvdmF1bHQvYWNjb3VudHMve3ZhdWx0QWNjb3VudElkfS97YXNzZXRJZH0vYWN0aXZhdGUgfCBBY3RpdmF0ZSBhIHdhbGxldCBpbiBhIHZhdWx0IGFjY291bnQKWyoqYXR0YWNoX29yX2RldGFjaF90YWdzX2Zyb21fdmF1bHRfYWNjb3VudHMqKl0oVmF1bHRzQXBpLm1kI2F0dGFjaF9vcl9kZXRhY2hfdGFnc19mcm9tX3ZhdWx0X2FjY291bnRzKSB8ICoqUE9TVCoqIC92YXVsdC9hY2NvdW50cy9hdHRhY2hlZF90YWdzIHwgQXR0YWNoIG9yIGRldGFjaCB0YWdzIGZyb20gdmF1bHQgYWNjb3VudHMKWyoqY3JlYXRlX2xlZ2FjeV9hZGRyZXNzKipdKFZhdWx0c0FwaS5tZCNjcmVhdGVfbGVnYWN5X2FkZHJlc3MpIHwgKipQT1NUKiogL3ZhdWx0L2FjY291bnRzL3t2YXVsdEFjY291bnRJZH0ve2Fzc2V0SWR9L2FkZHJlc3Nlcy97YWRkcmVzc0lkfS9jcmVhdGVfbGVnYWN5IHwgQ29udmVydCBhIHNlZ3dpdCBhZGRyZXNzIHRvIGxlZ2FjeSBmb3JtYXQKWyoqY3JlYXRlX211bHRpcGxlX2FjY291bnRzKipdKFZhdWx0c0FwaS5tZCNjcmVhdGVfbXVsdGlwbGVfYWNjb3VudHMpIHwgKipQT1NUKiogL3ZhdWx0L2FjY291bnRzL2J1bGsgfCBCdWxrIGNyZWF0aW9uIG9mIG5ldyB2YXVsdCBhY2NvdW50cwpbKipjcmVhdGVfbXVsdGlwbGVfZGVwb3NpdF9hZGRyZXNzZXMqKl0oVmF1bHRzQXBpLm1kI2NyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3NlcykgfCAqKlBPU1QqKiAvdmF1bHQvYWNjb3VudHMvYWRkcmVzc2VzL2J1bGsgfCBCdWxrIGNyZWF0aW9uIG9mIG5ldyBkZXBvc2l0IGFkZHJlc3NlcwpbKipjcmVhdGVfdmF1bHRfYWNjb3VudCoqXShWYXVsdHNBcGkubWQjY3JlYXRlX3ZhdWx0X2FjY291bnQpIHwgKipQT1NUKiogL3ZhdWx0L2FjY291bnRzIHwgQ3JlYXRlIGEgbmV3IHZhdWx0IGFjY291bnQKWyoqY3JlYXRlX3ZhdWx0X2FjY291bnRfYXNzZXQqKl0oVmF1bHRzQXBpLm1kI2NyZWF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0KSB8ICoqUE9TVCoqIC92YXVsdC9hY2NvdW50cy97dmF1bHRBY2NvdW50SWR9L3thc3NldElkfSB8IENyZWF0ZSBhIG5ldyB2YXVsdCB3YWxsZXQKWyoqY3JlYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzcyoqXShWYXVsdHNBcGkubWQjY3JlYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzcykgfCAqKlBPU1QqKiAvdmF1bHQvYWNjb3VudHMve3ZhdWx0QWNjb3VudElkfS97YXNzZXRJZH0vYWRkcmVzc2VzIHwgQ3JlYXRlIG5ldyBhc3NldCBkZXBvc2l0IGFkZHJlc3MKWyoqZ2V0X2Fzc2V0X3dhbGxldHMqKl0oVmF1bHRzQXBpLm1kI2dldF9hc3NldF93YWxsZXRzKSB8ICoqR0VUKiogL3ZhdWx0L2Fzc2V0X3dhbGxldHMgfCBHZXQgdmF1bHQgd2FsbGV0cyAoUGFnaW5hdGVkKQpbKipnZXRfY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzX2pvYl9zdGF0dXMqKl0oVmF1bHRzQXBpLm1kI2dldF9jcmVhdGVfbXVsdGlwbGVfZGVwb3NpdF9hZGRyZXNzZXNfam9iX3N0YXR1cykgfCAqKkdFVCoqIC92YXVsdC9hY2NvdW50cy9hZGRyZXNzZXMvYnVsay97am9iSWR9IHwgR2V0IHRoZSBqb2Igc3RhdHVzIG9mIHRoZSBidWxrIGRlcG9zaXQgYWRkcmVzcyBjcmVhdGlvbgpbKipnZXRfY3JlYXRlX211bHRpcGxlX3ZhdWx0X2FjY291bnRzX2pvYl9zdGF0dXMqKl0oVmF1bHRzQXBpLm1kI2dldF9jcmVhdGVfbXVsdGlwbGVfdmF1bHRfYWNjb3VudHNfam9iX3N0YXR1cykgfCAqKkdFVCoqIC92YXVsdC9hY2NvdW50cy9idWxrL3tqb2JJZH0gfCBHZXQgam9iIHN0YXR1cyBvZiBidWxrIGNyZWF0aW9uIG9mIG5ldyB2YXVsdCBhY2NvdW50cwpbKipnZXRfbWF4X2JpcF9pbmRleF91c2VkKipdKFZhdWx0c0FwaS5tZCNnZXRfbWF4X2JpcF9pbmRleF91c2VkKSB8ICoqR0VUKiogL3ZhdWx0L2FjY291bnRzL3t2YXVsdEFjY291bnRJZH0ve2Fzc2V0SWR9L21heF9iaXA0NF9pbmRleF91c2VkIHwgR2V0IG1heGltdW0gQklQNDQgaW5kZXggdXNlZApbKipnZXRfbWF4X3NwZW5kYWJsZV9hbW91bnQqKl0oVmF1bHRzQXBpLm1kI2dldF9tYXhfc3BlbmRhYmxlX2Ftb3VudCkgfCAqKkdFVCoqIC92YXVsdC9hY2NvdW50cy97dmF1bHRBY2NvdW50SWR9L3thc3NldElkfS9tYXhfc3BlbmRhYmxlX2Ftb3VudCB8IEdldCBtYXggc3BlbmRhYmxlIGFtb3VudCBpbiBhIHRyYW5zYWN0aW9uClsqKmdldF9wYWdlZF92YXVsdF9hY2NvdW50cyoqXShWYXVsdHNBcGkubWQjZ2V0X3BhZ2VkX3ZhdWx0X2FjY291bnRzKSB8ICoqR0VUKiogL3ZhdWx0L2FjY291bnRzX3BhZ2VkIHwgR2V0IHZhdWx0IGFjY291bnRzIChQYWdpbmF0ZWQpClsqKmdldF9wdWJsaWNfa2V5X2luZm8qKl0oVmF1bHRzQXBpLm1kI2dldF9wdWJsaWNfa2V5X2luZm8pIHwgKipHRVQqKiAvdmF1bHQvcHVibGljX2tleV9pbmZvIHwgR2V0IHRoZSBwdWJsaWMga2V5IGZvciBhIGRlcml2YXRpb24gcGF0aApbKipnZXRfcHVibGljX2tleV9pbmZvX2Zvcl9hZGRyZXNzKipdKFZhdWx0c0FwaS5tZCNnZXRfcHVibGljX2tleV9pbmZvX2Zvcl9hZGRyZXNzKSB8ICoqR0VUKiogL3ZhdWx0L2FjY291bnRzL3t2YXVsdEFjY291bnRJZH0ve2Fzc2V0SWR9L3tjaGFuZ2V9L3thZGRyZXNzSW5kZXh9L3B1YmxpY19rZXlfaW5mbyB8IEdldCBhbiBhc3NldCYjMzk7cyBwdWJsaWMga2V5ClsqKmdldF91bnNwZW50X2lucHV0cyoqXShWYXVsdHNBcGkubWQjZ2V0X3Vuc3BlbnRfaW5wdXRzKSB8ICoqR0VUKiogL3ZhdWx0L2FjY291bnRzL3t2YXVsdEFjY291bnRJZH0ve2Fzc2V0SWR9L3Vuc3BlbnRfaW5wdXRzIHwgR2V0IFVUWE8gdW5zcGVudCBpbnB1dHMgaW5mb3JtYXRpb24KWyoqZ2V0X3ZhdWx0X2FjY291bnQqKl0oVmF1bHRzQXBpLm1kI2dldF92YXVsdF9hY2NvdW50KSB8ICoqR0VUKiogL3ZhdWx0L2FjY291bnRzL3t2YXVsdEFjY291bnRJZH0gfCBHZXQgYSB2YXVsdCBhY2NvdW50IGJ5IElEClsqKmdldF92YXVsdF9hY2NvdW50X2Fzc2V0KipdKFZhdWx0c0FwaS5tZCNnZXRfdmF1bHRfYWNjb3VudF9hc3NldCkgfCAqKkdFVCoqIC92YXVsdC9hY2NvdW50cy97dmF1bHRBY2NvdW50SWR9L3thc3NldElkfSB8IEdldCB0aGUgYXNzZXQgYmFsYW5jZSBmb3IgYSB2YXVsdCBhY2NvdW50ClsqKmdldF92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3Nlc19wYWdpbmF0ZWQqKl0oVmF1bHRzQXBpLm1kI2dldF92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3Nlc19wYWdpbmF0ZWQpIHwgKipHRVQqKiAvdmF1bHQvYWNjb3VudHMve3ZhdWx0QWNjb3VudElkfS97YXNzZXRJZH0vYWRkcmVzc2VzX3BhZ2luYXRlZCB8IEdldCBhZGRyZXNzZXMgKFBhZ2luYXRlZCkKWyoqZ2V0X3ZhdWx0X2Fzc2V0cyoqXShWYXVsdHNBcGkubWQjZ2V0X3ZhdWx0X2Fzc2V0cykgfCAqKkdFVCoqIC92YXVsdC9hc3NldHMgfCBHZXQgYXNzZXQgYmFsYW5jZSBmb3IgY2hvc2VuIGFzc2V0cwpbKipnZXRfdmF1bHRfYmFsYW5jZV9ieV9hc3NldCoqXShWYXVsdHNBcGkubWQjZ2V0X3ZhdWx0X2JhbGFuY2VfYnlfYXNzZXQpIHwgKipHRVQqKiAvdmF1bHQvYXNzZXRzL3thc3NldElkfSB8IEdldCB2YXVsdCBiYWxhbmNlIGJ5IGFuIGFzc2V0ClsqKmhpZGVfdmF1bHRfYWNjb3VudCoqXShWYXVsdHNBcGkubWQjaGlkZV92YXVsdF9hY2NvdW50KSB8ICoqUE9TVCoqIC92YXVsdC9hY2NvdW50cy97dmF1bHRBY2NvdW50SWR9L2hpZGUgfCBIaWRlIGEgdmF1bHQgYWNjb3VudCBpbiB0aGUgY29uc29sZQpbKipzZXRfY3VzdG9tZXJfcmVmX2lkX2Zvcl9hZGRyZXNzKipdKFZhdWx0c0FwaS5tZCNzZXRfY3VzdG9tZXJfcmVmX2lkX2Zvcl9hZGRyZXNzKSB8ICoqUE9TVCoqIC92YXVsdC9hY2NvdW50cy97dmF1bHRBY2NvdW50SWR9L3thc3NldElkfS9hZGRyZXNzZXMve2FkZHJlc3NJZH0vc2V0X2N1c3RvbWVyX3JlZl9pZCB8IEFzc2lnbiBBTUwgY3VzdG9tZXIgcmVmZXJlbmNlIElEClsqKnNldF92YXVsdF9hY2NvdW50X2F1dG9fZnVlbCoqXShWYXVsdHNBcGkubWQjc2V0X3ZhdWx0X2FjY291bnRfYXV0b19mdWVsKSB8ICoqUE9TVCoqIC92YXVsdC9hY2NvdW50cy97dmF1bHRBY2NvdW50SWR9L3NldF9hdXRvX2Z1ZWwgfCBTZXQgYXV0byBmdWVsaW5nIHRvIG9uIG9yIG9mZgpbKipzZXRfdmF1bHRfYWNjb3VudF9jdXN0b21lcl9yZWZfaWQqKl0oVmF1bHRzQXBpLm1kI3NldF92YXVsdF9hY2NvdW50X2N1c3RvbWVyX3JlZl9pZCkgfCAqKlBPU1QqKiAvdmF1bHQvYWNjb3VudHMve3ZhdWx0QWNjb3VudElkfS9zZXRfY3VzdG9tZXJfcmVmX2lkIHwgU2V0IGFuIEFNTC9LWVQgSUQgZm9yIGEgdmF1bHQgYWNjb3VudApbKip1bmhpZGVfdmF1bHRfYWNjb3VudCoqXShWYXVsdHNBcGkubWQjdW5oaWRlX3ZhdWx0X2FjY291bnQpIHwgKipQT1NUKiogL3ZhdWx0L2FjY291bnRzL3t2YXVsdEFjY291bnRJZH0vdW5oaWRlIHwgVW5oaWRlIGEgdmF1bHQgYWNjb3VudCBpbiB0aGUgY29uc29sZQpbKip1cGRhdGVfdmF1bHRfYWNjb3VudCoqXShWYXVsdHNBcGkubWQjdXBkYXRlX3ZhdWx0X2FjY291bnQpIHwgKipQVVQqKiAvdmF1bHQvYWNjb3VudHMve3ZhdWx0QWNjb3VudElkfSB8IFJlbmFtZSBhIHZhdWx0IGFjY291bnQKWyoqdXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzcyoqXShWYXVsdHNBcGkubWQjdXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzcykgfCAqKlBVVCoqIC92YXVsdC9hY2NvdW50cy97dmF1bHRBY2NvdW50SWR9L3thc3NldElkfS9hZGRyZXNzZXMve2FkZHJlc3NJZH0gfCBVcGRhdGUgYWRkcmVzcyBkZXNjcmlwdGlvbgpbKip1cGRhdGVfdmF1bHRfYWNjb3VudF9hc3NldF9iYWxhbmNlKipdKFZhdWx0c0FwaS5tZCN1cGRhdGVfdmF1bHRfYWNjb3VudF9hc3NldF9iYWxhbmNlKSB8ICoqUE9TVCoqIC92YXVsdC9hY2NvdW50cy97dmF1bHRBY2NvdW50SWR9L3thc3NldElkfS9iYWxhbmNlIHwgUmVmcmVzaCBhc3NldCBiYWxhbmNlIGRhdGEKCgojICoqYWN0aXZhdGVfYXNzZXRfZm9yX3ZhdWx0X2FjY291bnQqKgo+IENyZWF0ZVZhdWx0QXNzZXRSZXNwb25zZSBhY3RpdmF0ZV9hc3NldF9mb3JfdmF1bHRfYWNjb3VudCh2YXVsdF9hY2NvdW50X2lkLCBhc3NldF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwgYmxvY2tjaGFpbl93YWxsZXRfdHlwZT1ibG9ja2NoYWluX3dhbGxldF90eXBlKQoKQWN0aXZhdGUgYSB3YWxsZXQgaW4gYSB2YXVsdCBhY2NvdW50CgpJbml0aWF0ZXMgYWN0aXZhdGlvbiBmb3IgYSB3YWxsZXQgaW4gYSB2YXVsdCBhY2NvdW50LiAKQWN0aXZhdGlvbiBpcyByZXF1aXJlZCBmb3IgdG9rZW5zIHRoYXQgbmVlZCBhbiBvbi1jaGFpbiB0cmFuc2FjdGlvbiBmb3IgY3JlYXRpb24gKFhMTSB0b2tlbnMsIFNPTCB0b2tlbnMgZXRjKS4KPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3ZhdWx0X2Fzc2V0X3Jlc3BvbnNlIGltcG9ydCBDcmVhdGVWYXVsdEFzc2V0UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdmF1bHRfYWNjb3VudF9pZCA9ICd2YXVsdF9hY2NvdW50X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSB2YXVsdCBhY2NvdW50IHRvIHJldHVybiwgb3IgJ2RlZmF1bHQnIGZvciB0aGUgZGVmYXVsdCB2YXVsdCBhY2NvdW50CiAgICBhc3NldF9pZCA9ICdhc3NldF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgYXNzZXQKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKICAgIGJsb2NrY2hhaW5fd2FsbGV0X3R5cGUgPSAnYmxvY2tjaGFpbl93YWxsZXRfdHlwZV9leGFtcGxlJyAjIHN0ciB8IE9wdGlvbmFsIGltbXV0YWJsZSBibG9ja2NoYWluIHdhbGxldCB0eXBlIHRvIHN0b3JlIHBlciB0ZW5hbnQrdmF1bHQgKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIEFjdGl2YXRlIGEgd2FsbGV0IGluIGEgdmF1bHQgYWNjb3VudAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudmF1bHRzLmFjdGl2YXRlX2Fzc2V0X2Zvcl92YXVsdF9hY2NvdW50KHZhdWx0X2FjY291bnRfaWQsIGFzc2V0X2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCBibG9ja2NoYWluX3dhbGxldF90eXBlPWJsb2NrY2hhaW5fd2FsbGV0X3R5cGUpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBWYXVsdHNBcGktPmFjdGl2YXRlX2Fzc2V0X2Zvcl92YXVsdF9hY2NvdW50OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFZhdWx0c0FwaS0+YWN0aXZhdGVfYXNzZXRfZm9yX3ZhdWx0X2FjY291bnQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnZhdWx0X2FjY291bnRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudCB0byByZXR1cm4sIG9yICYjMzk7ZGVmYXVsdCYjMzk7IGZvciB0aGUgZGVmYXVsdCB2YXVsdCBhY2NvdW50IHwgCiAqKmFzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCiAqKmJsb2NrY2hhaW5fd2FsbGV0X3R5cGUqKiB8ICoqc3RyKip8IE9wdGlvbmFsIGltbXV0YWJsZSBibG9ja2NoYWluIHdhbGxldCB0eXBlIHRvIHN0b3JlIHBlciB0ZW5hbnQrdmF1bHQgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipDcmVhdGVWYXVsdEFzc2V0UmVzcG9uc2UqKl0oQ3JlYXRlVmF1bHRBc3NldFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgT0sgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmF0dGFjaF9vcl9kZXRhY2hfdGFnc19mcm9tX3ZhdWx0X2FjY291bnRzKioKPiBWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXNwb25zZSBhdHRhY2hfb3JfZGV0YWNoX3RhZ3NfZnJvbV92YXVsdF9hY2NvdW50cyh2YXVsdF9hY2NvdW50c190YWdfYXR0YWNobWVudF9vcGVyYXRpb25zX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpBdHRhY2ggb3IgZGV0YWNoIHRhZ3MgZnJvbSB2YXVsdCBhY2NvdW50cwoKQXR0YWNoIG9yIGRldGFjaCBvbmUgb3IgbW9yZSB0YWdzIGZyb20gdGhlIHJlcXVlc3RlZCB2YXVsdCBhY2NvdW50cy4KRW5kcG9pbnQgUGVybWlzc2lvbjogRm9yIHByb3RlY3RlZCB0YWdzOiBPd25lciwgQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLiBGb3Igbm9uIHByb3RlY3RlZCB0YWdzOiBPd25lciwgQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEVkaXRvciwgQXBwcm92ZXIuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnRzX3RhZ19hdHRhY2htZW50X29wZXJhdGlvbnNfcmVxdWVzdCBpbXBvcnQgVmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnRzX3RhZ19hdHRhY2htZW50X29wZXJhdGlvbnNfcmVzcG9uc2UgaW1wb3J0IFZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHZhdWx0X2FjY291bnRzX3RhZ19hdHRhY2htZW50X29wZXJhdGlvbnNfcmVxdWVzdCA9IGZpcmVibG9ja3MuVmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVxdWVzdCgpICMgVmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVxdWVzdCB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIEF0dGFjaCBvciBkZXRhY2ggdGFncyBmcm9tIHZhdWx0IGFjY291bnRzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy52YXVsdHMuYXR0YWNoX29yX2RldGFjaF90YWdzX2Zyb21fdmF1bHRfYWNjb3VudHModmF1bHRfYWNjb3VudHNfdGFnX2F0dGFjaG1lbnRfb3BlcmF0aW9uc19yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVmF1bHRzQXBpLT5hdHRhY2hfb3JfZGV0YWNoX3RhZ3NfZnJvbV92YXVsdF9hY2NvdW50czpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBWYXVsdHNBcGktPmF0dGFjaF9vcl9kZXRhY2hfdGFnc19mcm9tX3ZhdWx0X2FjY291bnRzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip2YXVsdF9hY2NvdW50c190YWdfYXR0YWNobWVudF9vcGVyYXRpb25zX3JlcXVlc3QqKiB8IFsqKlZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1JlcXVlc3QqKl0oVmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVxdWVzdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXNwb25zZSoqXShWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgVGFncyB3ZXJlIGF0dGFjaGVkL2RldGFjaGVkIHN1Y2Nlc3NmdWxseSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDAwKiogfCAtIEludmFsaWQgcmVxdWVzdCBwYXJhbWV0ZXJzLiAtIFNhbWUgdGFnIElEIGlzIHByb3ZpZGVkIGluIGJvdGggdGFnSWRzVG9BdHRhY2ggYW5kIHRhZ0lkc1RvRGV0YWNoLiAtIFZhdWx0IGFjY291bnRzIGFyZSBhcmNoaXZlZC4gIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDQqKiB8IC0gVGFncyB3aXRoIHRoZSByZXF1ZXN0ZWQgSUQgbm90IGZvdW5kLiAtIFZhdWx0IGFjY291bnRzIHdpdGggdGhlIHJlcXVlc3RlZCBJRCBub3QgZm91bmQuICB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipjcmVhdGVfbGVnYWN5X2FkZHJlc3MqKgo+IENyZWF0ZUFkZHJlc3NSZXNwb25zZSBjcmVhdGVfbGVnYWN5X2FkZHJlc3ModmF1bHRfYWNjb3VudF9pZCwgYXNzZXRfaWQsIGFkZHJlc3NfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpDb252ZXJ0IGEgc2Vnd2l0IGFkZHJlc3MgdG8gbGVnYWN5IGZvcm1hdAoKQ29udmVydHMgYW4gZXhpc3Rpbmcgc2Vnd2l0IGFkZHJlc3MgdG8gdGhlIGxlZ2FjeSBmb3JtYXQuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9hZGRyZXNzX3Jlc3BvbnNlIGltcG9ydCBDcmVhdGVBZGRyZXNzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdmF1bHRfYWNjb3VudF9pZCA9ICd2YXVsdF9hY2NvdW50X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSB2YXVsdCBhY2NvdW50CiAgICBhc3NldF9pZCA9ICdhc3NldF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgYXNzZXQKICAgIGFkZHJlc3NfaWQgPSAnYWRkcmVzc19pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBzZWd3aXQgYWRkcmVzcyB0byB0cmFuc2xhdGUKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBDb252ZXJ0IGEgc2Vnd2l0IGFkZHJlc3MgdG8gbGVnYWN5IGZvcm1hdAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudmF1bHRzLmNyZWF0ZV9sZWdhY3lfYWRkcmVzcyh2YXVsdF9hY2NvdW50X2lkLCBhc3NldF9pZCwgYWRkcmVzc19pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFZhdWx0c0FwaS0+Y3JlYXRlX2xlZ2FjeV9hZGRyZXNzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFZhdWx0c0FwaS0+Y3JlYXRlX2xlZ2FjeV9hZGRyZXNzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip2YXVsdF9hY2NvdW50X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgfCAKICoqYXNzZXRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgYXNzZXQgfCAKICoqYWRkcmVzc19pZCoqIHwgKipzdHIqKnwgVGhlIHNlZ3dpdCBhZGRyZXNzIHRvIHRyYW5zbGF0ZSB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipDcmVhdGVBZGRyZXNzUmVzcG9uc2UqKl0oQ3JlYXRlQWRkcmVzc1Jlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgVGhlIGNyZWF0ZWQgYWRkcmVzcyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqY3JlYXRlX211bHRpcGxlX2FjY291bnRzKioKPiBKb2JDcmVhdGVkIGNyZWF0ZV9tdWx0aXBsZV9hY2NvdW50cyhjcmVhdGVfbXVsdGlwbGVfYWNjb3VudHNfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCkJ1bGsgY3JlYXRpb24gb2YgbmV3IHZhdWx0IGFjY291bnRzCgpDcmVhdGUgbXVsdGlwbGUgdmF1bHQgYWNjb3VudHMgYnkgcnVubmluZyBhbiBhc3luYyBqb2IuICAgICAgCi0gVGhlIEhCQVIsIFRPTiwgU1VJLCBURVJSQSwgQUxHTywgYW5kIERPVCBibG9ja2NoYWlucyBhcmUgbm90IHN1cHBvcnRlZC4KLSBUaGVzZSBlbmRwb2ludHMgYXJlIGN1cnJlbnRseSBpbiBiZXRhIGFuZCBtaWdodCBiZSBzdWJqZWN0IHRvIGNoYW5nZXMuCi0gTGltaXRlZCB0byBhIG1heGltdW0gb2YgMTAsMDAwIGFjY291bnRzIHBlciBvcGVyYXRpb24uCgoqKkVuZHBvaW50IFBlcm1pc3Npb25zOioqIEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX211bHRpcGxlX2FjY291bnRzX3JlcXVlc3QgaW1wb3J0IENyZWF0ZU11bHRpcGxlQWNjb3VudHNSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuam9iX2NyZWF0ZWQgaW1wb3J0IEpvYkNyZWF0ZWQKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY3JlYXRlX211bHRpcGxlX2FjY291bnRzX3JlcXVlc3QgPSBmaXJlYmxvY2tzLkNyZWF0ZU11bHRpcGxlQWNjb3VudHNSZXF1ZXN0KCkgIyBDcmVhdGVNdWx0aXBsZUFjY291bnRzUmVxdWVzdCB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIEJ1bGsgY3JlYXRpb24gb2YgbmV3IHZhdWx0IGFjY291bnRzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy52YXVsdHMuY3JlYXRlX211bHRpcGxlX2FjY291bnRzKGNyZWF0ZV9tdWx0aXBsZV9hY2NvdW50c19yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVmF1bHRzQXBpLT5jcmVhdGVfbXVsdGlwbGVfYWNjb3VudHM6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVmF1bHRzQXBpLT5jcmVhdGVfbXVsdGlwbGVfYWNjb3VudHM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmNyZWF0ZV9tdWx0aXBsZV9hY2NvdW50c19yZXF1ZXN0KiogfCBbKipDcmVhdGVNdWx0aXBsZUFjY291bnRzUmVxdWVzdCoqXShDcmVhdGVNdWx0aXBsZUFjY291bnRzUmVxdWVzdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipKb2JDcmVhdGVkKipdKEpvYkNyZWF0ZWQubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgSm9iQ3JlYXRlZCBvYmplY3QgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmNyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3NlcyoqCj4gSm9iQ3JlYXRlZCBjcmVhdGVfbXVsdGlwbGVfZGVwb3NpdF9hZGRyZXNzZXMoY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpCdWxrIGNyZWF0aW9uIG9mIG5ldyBkZXBvc2l0IGFkZHJlc3NlcwoKKipGb3IgVVRYTyBibG9ja2NoYWlucyBvbmx5LioqCgpDcmVhdGUgbXVsdGlwbGUgZGVwb3NpdCBhZGRyZXNzZXMgYnkgcnVubmluZyBhbiBhc3luYyBqb2IuCi0gVGhlIHRhcmdldCBWYXVsdCBhY2NvdW50IHNob3VsZCBhbHJlYWR5IGhhdmUgYSBVVFhPIGFzc2V0IHdhbGxldCB3aXRoIGEgcGVybWFuZW50IGFkZHJlc3MuCi0gTGltaXRlZCB0byBhIG1heGltdW0gb2YgMTAsMDAwIGFkZHJlc3NlcyBwZXIgb3BlcmF0aW9uLiBVc2UgbXVsdGlwbGUgb3BlcmF0aW9ucyBmb3IgdGhlIHNhbWUgVmF1bHQgYWNjb3VudC9wZXJtYW5lbnQgYWRkcmVzcyBpZiBuZWVkZWQuCgoqKkVuZHBvaW50IFBlcm1pc3Npb25zOioqIEFkbWluLCBOb24tU2lnbmluZyBBZG1pbi4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3Nlc19yZXF1ZXN0IGltcG9ydCBDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuam9iX2NyZWF0ZWQgaW1wb3J0IEpvYkNyZWF0ZWQKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzX3JlcXVlc3QgPSBmaXJlYmxvY2tzLkNyZWF0ZU11bHRpcGxlRGVwb3NpdEFkZHJlc3Nlc1JlcXVlc3QoKSAjIENyZWF0ZU11bHRpcGxlRGVwb3NpdEFkZHJlc3Nlc1JlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBCdWxrIGNyZWF0aW9uIG9mIG5ldyBkZXBvc2l0IGFkZHJlc3NlcwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudmF1bHRzLmNyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3NlcyhjcmVhdGVfbXVsdGlwbGVfZGVwb3NpdF9hZGRyZXNzZXNfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFZhdWx0c0FwaS0+Y3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFZhdWx0c0FwaS0+Y3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjcmVhdGVfbXVsdGlwbGVfZGVwb3NpdF9hZGRyZXNzZXNfcmVxdWVzdCoqIHwgWyoqQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzUmVxdWVzdCoqXShDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNSZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkpvYkNyZWF0ZWQqKl0oSm9iQ3JlYXRlZC5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQSBKb2JDcmVhdGVkIG9iamVjdCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqY3JlYXRlX3ZhdWx0X2FjY291bnQqKgo+IFZhdWx0QWNjb3VudCBjcmVhdGVfdmF1bHRfYWNjb3VudChjcmVhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKQ3JlYXRlIGEgbmV3IHZhdWx0IGFjY291bnQKCkNyZWF0ZXMgYSBuZXcgdmF1bHQgYWNjb3VudCB3aXRoIHRoZSByZXF1ZXN0ZWQgbmFtZS4KKipOb3RlOiAqKiBWYXVsdCBhY2NvdW50IG5hbWVzIHNob3VsZCBjb25zaXN0IG9mIEFTQ0lJIGNoYXJhY3RlcnMgb25seS4KTGVhcm4gbW9yZSBhYm91dCBGaXJlYmxvY2tzIFZhdWx0IEFjY291bnRzIGluIHRoZSBmb2xsb3dpbmcgW2d1aWRlXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2NyZWF0ZS12YXVsdC1hY2NvdW50KS4KPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3ZhdWx0X2FjY291bnRfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlVmF1bHRBY2NvdW50UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnQgaW1wb3J0IFZhdWx0QWNjb3VudApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBjcmVhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5DcmVhdGVWYXVsdEFjY291bnRSZXF1ZXN0KCkgIyBDcmVhdGVWYXVsdEFjY291bnRSZXF1ZXN0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ3JlYXRlIGEgbmV3IHZhdWx0IGFjY291bnQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnZhdWx0cy5jcmVhdGVfdmF1bHRfYWNjb3VudChjcmVhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVmF1bHRzQXBpLT5jcmVhdGVfdmF1bHRfYWNjb3VudDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBWYXVsdHNBcGktPmNyZWF0ZV92YXVsdF9hY2NvdW50OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKipjcmVhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0KiogfCBbKipDcmVhdGVWYXVsdEFjY291bnRSZXF1ZXN0KipdKENyZWF0ZVZhdWx0QWNjb3VudFJlcXVlc3QubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqVmF1bHRBY2NvdW50KipdKFZhdWx0QWNjb3VudC5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQSBWYXVsdCBBY2NvdW50IG9iamVjdCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqY3JlYXRlX3ZhdWx0X2FjY291bnRfYXNzZXQqKgo+IENyZWF0ZVZhdWx0QXNzZXRSZXNwb25zZSBjcmVhdGVfdmF1bHRfYWNjb3VudF9hc3NldCh2YXVsdF9hY2NvdW50X2lkLCBhc3NldF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwgYmxvY2tjaGFpbl93YWxsZXRfdHlwZT1ibG9ja2NoYWluX3dhbGxldF90eXBlLCBjcmVhdGVfYXNzZXRzX3JlcXVlc3Q9Y3JlYXRlX2Fzc2V0c19yZXF1ZXN0KQoKQ3JlYXRlIGEgbmV3IHZhdWx0IHdhbGxldAoKQ3JlYXRlcyBhIHdhbGxldCBmb3IgYSBzcGVjaWZpYyBhc3NldCBpbiBhIHZhdWx0IGFjY291bnQuCkxlYXJuIG1vcmUgYWJvdXQgRmlyZWJsb2NrcyBWYXVsdCBXYWxsZXRzIGluIHRoZSBmb2xsb3dpbmcgW2d1aWRlXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2NyZWF0ZS12YXVsdC13YWxsZXQpLgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfYXNzZXRzX3JlcXVlc3QgaW1wb3J0IENyZWF0ZUFzc2V0c1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfdmF1bHRfYXNzZXRfcmVzcG9uc2UgaW1wb3J0IENyZWF0ZVZhdWx0QXNzZXRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB2YXVsdF9hY2NvdW50X2lkID0gJ3ZhdWx0X2FjY291bnRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgdG8gcmV0dXJuLCBvciAnZGVmYXVsdCcgZm9yIHRoZSBkZWZhdWx0IHZhdWx0IGFjY291bnQKICAgIGFzc2V0X2lkID0gJ2Fzc2V0X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBhc3NldAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQogICAgYmxvY2tjaGFpbl93YWxsZXRfdHlwZSA9ICdibG9ja2NoYWluX3dhbGxldF90eXBlX2V4YW1wbGUnICMgc3RyIHwgT3B0aW9uYWwgaW1tdXRhYmxlIGJsb2NrY2hhaW4gd2FsbGV0IHR5cGUgdG8gc3RvcmUgcGVyIHRlbmFudCt2YXVsdCAob3B0aW9uYWwpCiAgICBjcmVhdGVfYXNzZXRzX3JlcXVlc3QgPSBmaXJlYmxvY2tzLkNyZWF0ZUFzc2V0c1JlcXVlc3QoKSAjIENyZWF0ZUFzc2V0c1JlcXVlc3QgfCAgKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIENyZWF0ZSBhIG5ldyB2YXVsdCB3YWxsZXQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnZhdWx0cy5jcmVhdGVfdmF1bHRfYWNjb3VudF9hc3NldCh2YXVsdF9hY2NvdW50X2lkLCBhc3NldF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwgYmxvY2tjaGFpbl93YWxsZXRfdHlwZT1ibG9ja2NoYWluX3dhbGxldF90eXBlLCBjcmVhdGVfYXNzZXRzX3JlcXVlc3Q9Y3JlYXRlX2Fzc2V0c19yZXF1ZXN0KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVmF1bHRzQXBpLT5jcmVhdGVfdmF1bHRfYWNjb3VudF9hc3NldDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBWYXVsdHNBcGktPmNyZWF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip2YXVsdF9hY2NvdW50X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgdG8gcmV0dXJuLCBvciAmIzM5O2RlZmF1bHQmIzM5OyBmb3IgdGhlIGRlZmF1bHQgdmF1bHQgYWNjb3VudCB8IAogKiphc3NldF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSBhc3NldCB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAogKipibG9ja2NoYWluX3dhbGxldF90eXBlKiogfCAqKnN0cioqfCBPcHRpb25hbCBpbW11dGFibGUgYmxvY2tjaGFpbiB3YWxsZXQgdHlwZSB0byBzdG9yZSBwZXIgdGVuYW50K3ZhdWx0IHwgW29wdGlvbmFsXSAKICoqY3JlYXRlX2Fzc2V0c19yZXF1ZXN0KiogfCBbKipDcmVhdGVBc3NldHNSZXF1ZXN0KipdKENyZWF0ZUFzc2V0c1JlcXVlc3QubWQpfCAgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipDcmVhdGVWYXVsdEFzc2V0UmVzcG9uc2UqKl0oQ3JlYXRlVmF1bHRBc3NldFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBPSyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqY3JlYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzcyoqCj4gQ3JlYXRlQWRkcmVzc1Jlc3BvbnNlIGNyZWF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3ModmF1bHRfYWNjb3VudF9pZCwgYXNzZXRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksIGNyZWF0ZV9hZGRyZXNzX3JlcXVlc3Q9Y3JlYXRlX2FkZHJlc3NfcmVxdWVzdCkKCkNyZWF0ZSBuZXcgYXNzZXQgZGVwb3NpdCBhZGRyZXNzCgpDcmVhdGVzIGEgbmV3IGRlcG9zaXQgYWRkcmVzcyBmb3IgYW4gYXNzZXQgb2YgYSB2YXVsdCBhY2NvdW50LgpTaG91bGQgYmUgdXNlZCBmb3IgVVRYTyBvciBUYWcvTWVtbyBiYXNlZCBhc3NldHMgT05MWS4KClJlcXVlc3RzIHdpdGggYWNjb3VudCBiYXNlZCBhc3NldHMgd2lsbCBmYWlsLgoKPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4uCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9hZGRyZXNzX3JlcXVlc3QgaW1wb3J0IENyZWF0ZUFkZHJlc3NSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX2FkZHJlc3NfcmVzcG9uc2UgaW1wb3J0IENyZWF0ZUFkZHJlc3NSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB2YXVsdF9hY2NvdW50X2lkID0gJ3ZhdWx0X2FjY291bnRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgdG8gcmV0dXJuCiAgICBhc3NldF9pZCA9ICdhc3NldF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgYXNzZXQKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKICAgIGNyZWF0ZV9hZGRyZXNzX3JlcXVlc3QgPSBmaXJlYmxvY2tzLkNyZWF0ZUFkZHJlc3NSZXF1ZXN0KCkgIyBDcmVhdGVBZGRyZXNzUmVxdWVzdCB8ICAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ3JlYXRlIG5ldyBhc3NldCBkZXBvc2l0IGFkZHJlc3MKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnZhdWx0cy5jcmVhdGVfdmF1bHRfYWNjb3VudF9hc3NldF9hZGRyZXNzKHZhdWx0X2FjY291bnRfaWQsIGFzc2V0X2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LCBjcmVhdGVfYWRkcmVzc19yZXF1ZXN0PWNyZWF0ZV9hZGRyZXNzX3JlcXVlc3QpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBWYXVsdHNBcGktPmNyZWF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3M6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVmF1bHRzQXBpLT5jcmVhdGVfdmF1bHRfYWNjb3VudF9hc3NldF9hZGRyZXNzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip2YXVsdF9hY2NvdW50X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgdG8gcmV0dXJuIHwgCiAqKmFzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCiAqKmNyZWF0ZV9hZGRyZXNzX3JlcXVlc3QqKiB8IFsqKkNyZWF0ZUFkZHJlc3NSZXF1ZXN0KipdKENyZWF0ZUFkZHJlc3NSZXF1ZXN0Lm1kKXwgIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqQ3JlYXRlQWRkcmVzc1Jlc3BvbnNlKipdKENyZWF0ZUFkZHJlc3NSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgVGhlIGNyZWF0ZWQgYWRkcmVzcyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2Fzc2V0X3dhbGxldHMqKgo+IFBhZ2luYXRlZEFzc2V0V2FsbGV0UmVzcG9uc2UgZ2V0X2Fzc2V0X3dhbGxldHModG90YWxfYW1vdW50X2xhcmdlcl90aGFuPXRvdGFsX2Ftb3VudF9sYXJnZXJfdGhhbiwgYXNzZXRfaWQ9YXNzZXRfaWQsIG9yZGVyX2J5PW9yZGVyX2J5LCBiZWZvcmU9YmVmb3JlLCBhZnRlcj1hZnRlciwgbGltaXQ9bGltaXQpCgpHZXQgdmF1bHQgd2FsbGV0cyAoUGFnaW5hdGVkKQoKR2V0IGFsbCB2YXVsdCB3YWxsZXRzIG9mIHRoZSB2YXVsdCBhY2NvdW50cyBpbiB5b3VyIHdvcmtzcGFjZS4gCkEgdmF1bHQgd2FsbGV0IGlzIGFuIGFzc2V0IGluIGEgdmF1bHQgYWNjb3VudC4gCgpUaGlzIG1ldGhvZCBhbGxvd3MgZmFzdCB0cmF2ZXJzYWwgb2YgYWxsIGFjY291bnQgYmFsYW5jZXMuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIFZpZXdlci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFnaW5hdGVkX2Fzc2V0X3dhbGxldF9yZXNwb25zZSBpbXBvcnQgUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB0b3RhbF9hbW91bnRfbGFyZ2VyX3RoYW4gPSAzLjQgIyBmbG9hdCB8IFdoZW4gc3BlY2lmaWVkLCBvbmx5IHZhdWx0IHdhbGxldHMgd2l0aCB0b3RhbCBiYWxhbmNlIGdyZWF0ZXIgdGhhbiB0aGlzIGFtb3VudCBhcmUgcmV0dXJuZWQuIChvcHRpb25hbCkKICAgIGFzc2V0X2lkID0gJ2Fzc2V0X2lkX2V4YW1wbGUnICMgc3RyIHwgV2hlbiBzcGVjaWZpZWQsIG9ubHkgdmF1bHQgd2FsbGV0cyB3aXRoIHRoZSBzcGVjaWZpZWQgSUQgYXJlIHJldHVybmVkLiAob3B0aW9uYWwpCiAgICBvcmRlcl9ieSA9IERFU0MgIyBzdHIgfCAgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byBERVNDKQogICAgYmVmb3JlID0gJ2JlZm9yZV9leGFtcGxlJyAjIHN0ciB8IEZldGNoZXMgdGhlIG5leHQgcGFnaW5hdGVkIHJlc3BvbnNlIGJlZm9yZSB0aGlzIGVsZW1lbnQuICBUaGlzIGVsZW1lbnQgaXMgYSBjdXJzb3IgYW5kIGlzIHJldHVybmVkIGF0IHRoZSByZXNwb25zZSBvZiB0aGUgcHJldmlvdXMgcGFnZS4gIChvcHRpb25hbCkKICAgIGFmdGVyID0gJ2FmdGVyX2V4YW1wbGUnICMgc3RyIHwgRmV0Y2hlcyB0aGUgbmV4dCBwYWdpbmF0ZWQgcmVzcG9uc2UgYWZ0ZXIgdGhpcyBlbGVtZW50LiBUaGlzIGVsZW1lbnQgaXMgYSBjdXJzb3IgYW5kIGlzIHJldHVybmVkIGF0IHRoZSByZXNwb25zZSBvZiB0aGUgcHJldmlvdXMgcGFnZS4gKG9wdGlvbmFsKQogICAgbGltaXQgPSAyMDAgIyBmbG9hdCB8IFRoZSBtYXhpbXVtIG51bWJlciBvZiB2YXVsdCB3YWxsZXRzIGluIGEgc2luZ2xlIHJlc3BvbnNlLiAgIFRoZSBkZWZhdWx0IGlzIDIwMCBhbmQgdGhlIG1heGltdW0gaXMgMTAwMC4gIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gMjAwKQoKICAgIHRyeToKICAgICAgICAjIEdldCB2YXVsdCB3YWxsZXRzIChQYWdpbmF0ZWQpCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy52YXVsdHMuZ2V0X2Fzc2V0X3dhbGxldHModG90YWxfYW1vdW50X2xhcmdlcl90aGFuPXRvdGFsX2Ftb3VudF9sYXJnZXJfdGhhbiwgYXNzZXRfaWQ9YXNzZXRfaWQsIG9yZGVyX2J5PW9yZGVyX2J5LCBiZWZvcmU9YmVmb3JlLCBhZnRlcj1hZnRlciwgbGltaXQ9bGltaXQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBWYXVsdHNBcGktPmdldF9hc3NldF93YWxsZXRzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFZhdWx0c0FwaS0+Z2V0X2Fzc2V0X3dhbGxldHM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnRvdGFsX2Ftb3VudF9sYXJnZXJfdGhhbioqIHwgKipmbG9hdCoqfCBXaGVuIHNwZWNpZmllZCwgb25seSB2YXVsdCB3YWxsZXRzIHdpdGggdG90YWwgYmFsYW5jZSBncmVhdGVyIHRoYW4gdGhpcyBhbW91bnQgYXJlIHJldHVybmVkLiB8IFtvcHRpb25hbF0gCiAqKmFzc2V0X2lkKiogfCAqKnN0cioqfCBXaGVuIHNwZWNpZmllZCwgb25seSB2YXVsdCB3YWxsZXRzIHdpdGggdGhlIHNwZWNpZmllZCBJRCBhcmUgcmV0dXJuZWQuIHwgW29wdGlvbmFsXSAKICoqb3JkZXJfYnkqKiB8ICoqc3RyKip8ICB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gREVTQ10KICoqYmVmb3JlKiogfCAqKnN0cioqfCBGZXRjaGVzIHRoZSBuZXh0IHBhZ2luYXRlZCByZXNwb25zZSBiZWZvcmUgdGhpcyBlbGVtZW50LiAgVGhpcyBlbGVtZW50IGlzIGEgY3Vyc29yIGFuZCBpcyByZXR1cm5lZCBhdCB0aGUgcmVzcG9uc2Ugb2YgdGhlIHByZXZpb3VzIHBhZ2UuICB8IFtvcHRpb25hbF0gCiAqKmFmdGVyKiogfCAqKnN0cioqfCBGZXRjaGVzIHRoZSBuZXh0IHBhZ2luYXRlZCByZXNwb25zZSBhZnRlciB0aGlzIGVsZW1lbnQuIFRoaXMgZWxlbWVudCBpcyBhIGN1cnNvciBhbmQgaXMgcmV0dXJuZWQgYXQgdGhlIHJlc3BvbnNlIG9mIHRoZSBwcmV2aW91cyBwYWdlLiB8IFtvcHRpb25hbF0gCiAqKmxpbWl0KiogfCAqKmZsb2F0Kip8IFRoZSBtYXhpbXVtIG51bWJlciBvZiB2YXVsdCB3YWxsZXRzIGluIGEgc2luZ2xlIHJlc3BvbnNlLiAgIFRoZSBkZWZhdWx0IGlzIDIwMCBhbmQgdGhlIG1heGltdW0gaXMgMTAwMC4gIHwgW29wdGlvbmFsXSBbZGVmYXVsdCB0byAyMDBdCgojIyMgUmV0dXJuIHR5cGUKClsqKlBhZ2luYXRlZEFzc2V0V2FsbGV0UmVzcG9uc2UqKl0oUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZSBvYmplY3QgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X2NyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3Nlc19qb2Jfc3RhdHVzKioKPiBDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNKb2JTdGF0dXMgZ2V0X2NyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3Nlc19qb2Jfc3RhdHVzKGpvYl9pZCkKCkdldCB0aGUgam9iIHN0YXR1cyBvZiB0aGUgYnVsayBkZXBvc2l0IGFkZHJlc3MgY3JlYXRpb24KClJldHVybnMgdGhlIGN1cnJlbnQgc3RhdHVzIG9mIChvciBhbiBlcnJvciBmb3IpIHRoZSBzcGVjaWZpZWQgZGVwb3NpdCBhZGRyZXNzcyBidWxrIGNyZWF0aW9uIGpvYi4KCioqRW5kcG9pbnQgUGVybWlzc2lvbnM6KiogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIGFuZCBWaWV3ZXIuCgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfbXVsdGlwbGVfZGVwb3NpdF9hZGRyZXNzZXNfam9iX3N0YXR1cyBpbXBvcnQgQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzSm9iU3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIGpvYl9pZCA9ICcwMTk2ODFiNC0xMDdkLTcyNDMtOTQyZC00YzNjMzBlMzZmYWUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBqb2IgdG8gY3JlYXRlIGFkZHJlc3NlcwoKICAgIHRyeToKICAgICAgICAjIEdldCB0aGUgam9iIHN0YXR1cyBvZiB0aGUgYnVsayBkZXBvc2l0IGFkZHJlc3MgY3JlYXRpb24KICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnZhdWx0cy5nZXRfY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzX2pvYl9zdGF0dXMoam9iX2lkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVmF1bHRzQXBpLT5nZXRfY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzX2pvYl9zdGF0dXM6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVmF1bHRzQXBpLT5nZXRfY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzX2pvYl9zdGF0dXM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmpvYl9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSBqb2IgdG8gY3JlYXRlIGFkZHJlc3NlcyB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNKb2JTdGF0dXMqKl0oQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzSm9iU3RhdHVzLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQSBKb2Igd2l0aCBzdGF0dXMgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9jcmVhdGVfbXVsdGlwbGVfdmF1bHRfYWNjb3VudHNfam9iX3N0YXR1cyoqCj4gQ3JlYXRlTXVsdGlwbGVWYXVsdEFjY291bnRzSm9iU3RhdHVzIGdldF9jcmVhdGVfbXVsdGlwbGVfdmF1bHRfYWNjb3VudHNfam9iX3N0YXR1cyhqb2JfaWQpCgpHZXQgam9iIHN0YXR1cyBvZiBidWxrIGNyZWF0aW9uIG9mIG5ldyB2YXVsdCBhY2NvdW50cwoKUmV0dXJucyB0aGUgY3VycmVudCBzdGF0dXMgb2YgKG9yIGVycm9yIGZvcikgdGhlIHNwZWNpZmllZCB2YXVsdCBhY2NvdW50IGJ1bGsgY3JlYXRpb24gam9iLgoKKipFbmRwb2ludCBQZXJtaXNzaW9uczoqKiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgVmlld2VyLgoKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX211bHRpcGxlX3ZhdWx0X2FjY291bnRzX2pvYl9zdGF0dXMgaW1wb3J0IENyZWF0ZU11bHRpcGxlVmF1bHRBY2NvdW50c0pvYlN0YXR1cwpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBqb2JfaWQgPSAnMDE5NjgxYjQtMTA3ZC03MjQzLTk0MmQtNGMzYzMwZTM2ZmFlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgam9iIHRvIGNyZWF0ZSBhZGRyZXNzZXMKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgam9iIHN0YXR1cyBvZiBidWxrIGNyZWF0aW9uIG9mIG5ldyB2YXVsdCBhY2NvdW50cwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudmF1bHRzLmdldF9jcmVhdGVfbXVsdGlwbGVfdmF1bHRfYWNjb3VudHNfam9iX3N0YXR1cyhqb2JfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBWYXVsdHNBcGktPmdldF9jcmVhdGVfbXVsdGlwbGVfdmF1bHRfYWNjb3VudHNfam9iX3N0YXR1czpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBWYXVsdHNBcGktPmdldF9jcmVhdGVfbXVsdGlwbGVfdmF1bHRfYWNjb3VudHNfam9iX3N0YXR1czogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqam9iX2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGpvYiB0byBjcmVhdGUgYWRkcmVzc2VzIHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKkNyZWF0ZU11bHRpcGxlVmF1bHRBY2NvdW50c0pvYlN0YXR1cyoqXShDcmVhdGVNdWx0aXBsZVZhdWx0QWNjb3VudHNKb2JTdGF0dXMubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBIEpvYiB3aXRoIHN0YXR1cyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X21heF9iaXBfaW5kZXhfdXNlZCoqCj4gR2V0TWF4QmlwSW5kZXhVc2VkUmVzcG9uc2UgZ2V0X21heF9iaXBfaW5kZXhfdXNlZCh2YXVsdF9hY2NvdW50X2lkLCBhc3NldF9pZCkKCkdldCBtYXhpbXVtIEJJUDQ0IGluZGV4IHVzZWQKClJldHJpZXZlcyB0aGUgbWF4aW11bSBCSVA0NCBhZGRyZXNzIGluZGV4IGFuZCBjaGFuZ2UgYWRkcmVzcyBpbmRleCB1c2VkIGZvciBhIHNwZWNpZmljIGFzc2V0IGluIGEgdmF1bHQgYWNjb3VudCAoQklQNDQgc3RhbmRhcmQpLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfbWF4X2JpcF9pbmRleF91c2VkX3Jlc3BvbnNlIGltcG9ydCBHZXRNYXhCaXBJbmRleFVzZWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB2YXVsdF9hY2NvdW50X2lkID0gJ3ZhdWx0X2FjY291bnRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQKICAgIGFzc2V0X2lkID0gJ2Fzc2V0X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBhc3NldAoKICAgIHRyeToKICAgICAgICAjIEdldCBtYXhpbXVtIEJJUDQ0IGluZGV4IHVzZWQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnZhdWx0cy5nZXRfbWF4X2JpcF9pbmRleF91c2VkKHZhdWx0X2FjY291bnRfaWQsIGFzc2V0X2lkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVmF1bHRzQXBpLT5nZXRfbWF4X2JpcF9pbmRleF91c2VkOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFZhdWx0c0FwaS0+Z2V0X21heF9iaXBfaW5kZXhfdXNlZDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSB2YXVsdCBhY2NvdW50IHwgCiAqKmFzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKkdldE1heEJpcEluZGV4VXNlZFJlc3BvbnNlKipdKEdldE1heEJpcEluZGV4VXNlZFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgT0sgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9tYXhfc3BlbmRhYmxlX2Ftb3VudCoqCj4gR2V0TWF4U3BlbmRhYmxlQW1vdW50UmVzcG9uc2UgZ2V0X21heF9zcGVuZGFibGVfYW1vdW50KHZhdWx0X2FjY291bnRfaWQsIGFzc2V0X2lkLCBtYW51YWxfc2lnbmdpbmc9bWFudWFsX3NpZ25naW5nKQoKR2V0IG1heCBzcGVuZGFibGUgYW1vdW50IGluIGEgdHJhbnNhY3Rpb24KCioqVVRYTyBhc3NldHMgb25seS4qKgoKUmV0cmlldmUgdGhlIG1heGltdW0gYW1vdW50IG9mIHRoZSBzcGVjaWZpZWQgYXNzZXQgdGhhdCBjYW4gYmUgc3BlbnQgaW4gYSBzaW5nbGUgdHJhbnNhY3Rpb24gZnJvbSB0aGUgc3BlY2lmaWVkIHZhdWx0IGFjY291bnQuCgoqKkVuZHBvaW50IFBlcm1pc3Npb25zOioqIEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLCBWaWV3ZXIuCgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfbWF4X3NwZW5kYWJsZV9hbW91bnRfcmVzcG9uc2UgaW1wb3J0IEdldE1heFNwZW5kYWJsZUFtb3VudFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHZhdWx0X2FjY291bnRfaWQgPSAndmF1bHRfYWNjb3VudF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudCwgb3IgJ2RlZmF1bHQnIGZvciB0aGUgZGVmYXVsdCB2YXVsdCBhY2NvdW50CiAgICBhc3NldF9pZCA9ICdhc3NldF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgYXNzZXQKICAgIG1hbnVhbF9zaWduZ2luZyA9IFRydWUgIyBib29sIHwgRmFsc2UgYnkgZGVmYXVsdC4gVGhlIG1heGltdW0gbnVtYmVyIG9mIGlucHV0cyBkZXBlbmRzIGlmIHRoZSB0cmFuc2FjdGlvbiB3aWxsIGJlIHNpZ25lZCBieSBhbiBhdXRvbWF0ZWQgY28tc2lnbmVyIHNlcnZlciBvciBvbiBhIG1vYmlsZSBkZXZpY2UuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgbWF4IHNwZW5kYWJsZSBhbW91bnQgaW4gYSB0cmFuc2FjdGlvbgogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudmF1bHRzLmdldF9tYXhfc3BlbmRhYmxlX2Ftb3VudCh2YXVsdF9hY2NvdW50X2lkLCBhc3NldF9pZCwgbWFudWFsX3NpZ25naW5nPW1hbnVhbF9zaWduZ2luZykucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFZhdWx0c0FwaS0+Z2V0X21heF9zcGVuZGFibGVfYW1vdW50OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFZhdWx0c0FwaS0+Z2V0X21heF9zcGVuZGFibGVfYW1vdW50OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip2YXVsdF9hY2NvdW50X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQsIG9yICYjMzk7ZGVmYXVsdCYjMzk7IGZvciB0aGUgZGVmYXVsdCB2YXVsdCBhY2NvdW50IHwgCiAqKmFzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHwgCiAqKm1hbnVhbF9zaWduZ2luZyoqIHwgKipib29sKip8IEZhbHNlIGJ5IGRlZmF1bHQuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBpbnB1dHMgZGVwZW5kcyBpZiB0aGUgdHJhbnNhY3Rpb24gd2lsbCBiZSBzaWduZWQgYnkgYW4gYXV0b21hdGVkIGNvLXNpZ25lciBzZXJ2ZXIgb3Igb24gYSBtb2JpbGUgZGV2aWNlLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkdldE1heFNwZW5kYWJsZUFtb3VudFJlc3BvbnNlKipdKEdldE1heFNwZW5kYWJsZUFtb3VudFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgT0sgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9wYWdlZF92YXVsdF9hY2NvdW50cyoqCj4gVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2UgZ2V0X3BhZ2VkX3ZhdWx0X2FjY291bnRzKG5hbWVfcHJlZml4PW5hbWVfcHJlZml4LCBuYW1lX3N1ZmZpeD1uYW1lX3N1ZmZpeCwgbWluX2Ftb3VudF90aHJlc2hvbGQ9bWluX2Ftb3VudF90aHJlc2hvbGQsIGFzc2V0X2lkPWFzc2V0X2lkLCBvcmRlcl9ieT1vcmRlcl9ieSwgYmVmb3JlPWJlZm9yZSwgYWZ0ZXI9YWZ0ZXIsIGxpbWl0PWxpbWl0LCB0YWdfaWRzPXRhZ19pZHMsIGluY2x1ZGVfdGFnX2lkcz1pbmNsdWRlX3RhZ19pZHMsIGV4Y2x1ZGVfdGFnX2lkcz1leGNsdWRlX3RhZ19pZHMpCgpHZXQgdmF1bHQgYWNjb3VudHMgKFBhZ2luYXRlZCkKCkdldHMgYWxsIHZhdWx0IGFjY291bnRzIGluIHlvdXIgd29ya3NwYWNlLiBUaGlzIGVuZHBvaW50IHJldHVybnMgYSBsaW1pdGVkIGFtb3VudCBvZiByZXN1bHRzIHdpdGggYSBxdWljayByZXNwb25zZSB0aW1lLgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLCBWaWV3ZXIuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnRzX3BhZ2VkX3Jlc3BvbnNlIGltcG9ydCBWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBuYW1lX3ByZWZpeCA9ICduYW1lX3ByZWZpeF9leGFtcGxlJyAjIHN0ciB8ICAob3B0aW9uYWwpCiAgICBuYW1lX3N1ZmZpeCA9ICduYW1lX3N1ZmZpeF9leGFtcGxlJyAjIHN0ciB8ICAob3B0aW9uYWwpCiAgICBtaW5fYW1vdW50X3RocmVzaG9sZCA9IDEwICMgZmxvYXQgfCBTcGVjaWZ5aW5nIG1pbkFtb3VudFRocmVzaG9sZCB3aWxsIGZpbHRlciBhY2NvdW50cyB3aG9zZSB0b3RhbCBiYWxhbmNlIGlzIGdyZWF0ZXIgdGhhbiB0aGlzIHZhbHVlOyBvdGhlcndpc2UsIGl0IHJldHVybnMgYWxsIGFjY291bnRzLiBUaGUgYW1vdW50IHNldCBpbiB0aGlzIHBhcmFtZXRlciByZXByZXNlbnRzIHRoZSBuYXRpdmUgYXNzZXQgYW1vdW50LCBub3QgaXRzIFVTRCB2YWx1ZS4gKG9wdGlvbmFsKQogICAgYXNzZXRfaWQgPSAnYXNzZXRfaWRfZXhhbXBsZScgIyBzdHIgfCAgKG9wdGlvbmFsKQogICAgb3JkZXJfYnkgPSBERVNDICMgc3RyIHwgIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gREVTQykKICAgIGJlZm9yZSA9ICdiZWZvcmVfZXhhbXBsZScgIyBzdHIgfCAgKG9wdGlvbmFsKQogICAgYWZ0ZXIgPSAnYWZ0ZXJfZXhhbXBsZScgIyBzdHIgfCAgKG9wdGlvbmFsKQogICAgbGltaXQgPSAyMDAgIyBmbG9hdCB8ICAob3B0aW9uYWwpIChkZWZhdWx0IHRvIDIwMCkKICAgIHRhZ19pZHMgPSBbJ3RhZ19pZHNfZXhhbXBsZSddICMgTGlzdFtzdHJdIHwgREVQUkVDQVRFRCAtIHVzZSBpbmNsdWRlVGFnSWRzIGluc3RlYWQgKG9wdGlvbmFsKQogICAgaW5jbHVkZV90YWdfaWRzID0gWydpbmNsdWRlX3RhZ19pZHNfZXhhbXBsZSddICMgTGlzdFtzdHJdIHwgTGlzdCBvZiB0YWcgSURzIHRvIGluY2x1ZGUuIFZhdWx0IGFjY291bnRzIHdpdGggYW55IG9mIHRoZXNlIHRhZ3Mgd2lsbCBiZSBpbmNsdWRlZCAob3B0aW9uYWwpCiAgICBleGNsdWRlX3RhZ19pZHMgPSBbJ2V4Y2x1ZGVfdGFnX2lkc19leGFtcGxlJ10gIyBMaXN0W3N0cl0gfCBMaXN0IG9mIHRhZyBJRHMgdG8gZXhjbHVkZS4gVmF1bHQgYWNjb3VudHMgd2l0aCBhbnkgb2YgdGhlc2UgdGFncyB3aWxsIGJlIGZpbHRlcmVkIG91dCAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgR2V0IHZhdWx0IGFjY291bnRzIChQYWdpbmF0ZWQpCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy52YXVsdHMuZ2V0X3BhZ2VkX3ZhdWx0X2FjY291bnRzKG5hbWVfcHJlZml4PW5hbWVfcHJlZml4LCBuYW1lX3N1ZmZpeD1uYW1lX3N1ZmZpeCwgbWluX2Ftb3VudF90aHJlc2hvbGQ9bWluX2Ftb3VudF90aHJlc2hvbGQsIGFzc2V0X2lkPWFzc2V0X2lkLCBvcmRlcl9ieT1vcmRlcl9ieSwgYmVmb3JlPWJlZm9yZSwgYWZ0ZXI9YWZ0ZXIsIGxpbWl0PWxpbWl0LCB0YWdfaWRzPXRhZ19pZHMsIGluY2x1ZGVfdGFnX2lkcz1pbmNsdWRlX3RhZ19pZHMsIGV4Y2x1ZGVfdGFnX2lkcz1leGNsdWRlX3RhZ19pZHMpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBWYXVsdHNBcGktPmdldF9wYWdlZF92YXVsdF9hY2NvdW50czpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBWYXVsdHNBcGktPmdldF9wYWdlZF92YXVsdF9hY2NvdW50czogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqbmFtZV9wcmVmaXgqKiB8ICoqc3RyKip8ICB8IFtvcHRpb25hbF0gCiAqKm5hbWVfc3VmZml4KiogfCAqKnN0cioqfCAgfCBbb3B0aW9uYWxdIAogKiptaW5fYW1vdW50X3RocmVzaG9sZCoqIHwgKipmbG9hdCoqfCBTcGVjaWZ5aW5nIG1pbkFtb3VudFRocmVzaG9sZCB3aWxsIGZpbHRlciBhY2NvdW50cyB3aG9zZSB0b3RhbCBiYWxhbmNlIGlzIGdyZWF0ZXIgdGhhbiB0aGlzIHZhbHVlOyBvdGhlcndpc2UsIGl0IHJldHVybnMgYWxsIGFjY291bnRzLiBUaGUgYW1vdW50IHNldCBpbiB0aGlzIHBhcmFtZXRlciByZXByZXNlbnRzIHRoZSBuYXRpdmUgYXNzZXQgYW1vdW50LCBub3QgaXRzIFVTRCB2YWx1ZS4gfCBbb3B0aW9uYWxdIAogKiphc3NldF9pZCoqIHwgKipzdHIqKnwgIHwgW29wdGlvbmFsXSAKICoqb3JkZXJfYnkqKiB8ICoqc3RyKip8ICB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gREVTQ10KICoqYmVmb3JlKiogfCAqKnN0cioqfCAgfCBbb3B0aW9uYWxdIAogKiphZnRlcioqIHwgKipzdHIqKnwgIHwgW29wdGlvbmFsXSAKICoqbGltaXQqKiB8ICoqZmxvYXQqKnwgIHwgW29wdGlvbmFsXSBbZGVmYXVsdCB0byAyMDBdCiAqKnRhZ19pZHMqKiB8IFsqKkxpc3Rbc3RyXSoqXShzdHIubWQpfCBERVBSRUNBVEVEIC0gdXNlIGluY2x1ZGVUYWdJZHMgaW5zdGVhZCB8IFtvcHRpb25hbF0gCiAqKmluY2x1ZGVfdGFnX2lkcyoqIHwgWyoqTGlzdFtzdHJdKipdKHN0ci5tZCl8IExpc3Qgb2YgdGFnIElEcyB0byBpbmNsdWRlLiBWYXVsdCBhY2NvdW50cyB3aXRoIGFueSBvZiB0aGVzZSB0YWdzIHdpbGwgYmUgaW5jbHVkZWQgfCBbb3B0aW9uYWxdIAogKipleGNsdWRlX3RhZ19pZHMqKiB8IFsqKkxpc3Rbc3RyXSoqXShzdHIubWQpfCBMaXN0IG9mIHRhZyBJRHMgdG8gZXhjbHVkZS4gVmF1bHQgYWNjb3VudHMgd2l0aCBhbnkgb2YgdGhlc2UgdGFncyB3aWxsIGJlIGZpbHRlcmVkIG91dCB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlZhdWx0QWNjb3VudHNQYWdlZFJlc3BvbnNlKipdKFZhdWx0QWNjb3VudHNQYWdlZFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQSBWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZSBvYmplY3QgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X3B1YmxpY19rZXlfaW5mbyoqCj4gUHVibGljS2V5SW5mb3JtYXRpb24gZ2V0X3B1YmxpY19rZXlfaW5mbyhkZXJpdmF0aW9uX3BhdGgsIGFsZ29yaXRobSwgY29tcHJlc3NlZD1jb21wcmVzc2VkKQoKR2V0IHRoZSBwdWJsaWMga2V5IGZvciBhIGRlcml2YXRpb24gcGF0aAoKR2V0cyB0aGUgcHVibGljIGtleSBpbmZvcm1hdGlvbiBiYXNlZCBvbiBkZXJpdmF0aW9uIHBhdGggYW5kIHNpZ25pbmcgYWxnb3JpdGhtLgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbi4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucHVibGljX2tleV9pbmZvcm1hdGlvbiBpbXBvcnQgUHVibGljS2V5SW5mb3JtYXRpb24KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgZGVyaXZhdGlvbl9wYXRoID0gJ2Rlcml2YXRpb25fcGF0aF9leGFtcGxlJyAjIHN0ciB8IAogICAgYWxnb3JpdGhtID0gJ2FsZ29yaXRobV9leGFtcGxlJyAjIHN0ciB8IAogICAgY29tcHJlc3NlZCA9IFRydWUgIyBib29sIHwgIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgdGhlIHB1YmxpYyBrZXkgZm9yIGEgZGVyaXZhdGlvbiBwYXRoCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy52YXVsdHMuZ2V0X3B1YmxpY19rZXlfaW5mbyhkZXJpdmF0aW9uX3BhdGgsIGFsZ29yaXRobSwgY29tcHJlc3NlZD1jb21wcmVzc2VkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVmF1bHRzQXBpLT5nZXRfcHVibGljX2tleV9pbmZvOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFZhdWx0c0FwaS0+Z2V0X3B1YmxpY19rZXlfaW5mbzogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqZGVyaXZhdGlvbl9wYXRoKiogfCAqKnN0cioqfCAgfCAKICoqYWxnb3JpdGhtKiogfCAqKnN0cioqfCAgfCAKICoqY29tcHJlc3NlZCoqIHwgKipib29sKip8ICB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlB1YmxpY0tleUluZm9ybWF0aW9uKipdKFB1YmxpY0tleUluZm9ybWF0aW9uLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgUHVibGljIGtleSBpbmZvcm1hdGlvbiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X3B1YmxpY19rZXlfaW5mb19mb3JfYWRkcmVzcyoqCj4gUHVibGljS2V5SW5mb3JtYXRpb24gZ2V0X3B1YmxpY19rZXlfaW5mb19mb3JfYWRkcmVzcyh2YXVsdF9hY2NvdW50X2lkLCBhc3NldF9pZCwgY2hhbmdlLCBhZGRyZXNzX2luZGV4LCBjb21wcmVzc2VkPWNvbXByZXNzZWQpCgpHZXQgYW4gYXNzZXQncyBwdWJsaWMga2V5CgpHZXQgdGhlIHB1YmxpYyBrZXkgaW5mb3JtYXRpb24gZm9yIGEgc3BlY2lmaWMgYXNzZXQgaW4gYSB2YXVsdCBhY2NvdW50Lgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbi4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucHVibGljX2tleV9pbmZvcm1hdGlvbiBpbXBvcnQgUHVibGljS2V5SW5mb3JtYXRpb24KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdmF1bHRfYWNjb3VudF9pZCA9ICd2YXVsdF9hY2NvdW50X2lkX2V4YW1wbGUnICMgc3RyIHwgCiAgICBhc3NldF9pZCA9ICdhc3NldF9pZF9leGFtcGxlJyAjIHN0ciB8IAogICAgY2hhbmdlID0gMy40ICMgZmxvYXQgfCAKICAgIGFkZHJlc3NfaW5kZXggPSAzLjQgIyBmbG9hdCB8IAogICAgY29tcHJlc3NlZCA9IFRydWUgIyBib29sIHwgIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgYW4gYXNzZXQncyBwdWJsaWMga2V5CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy52YXVsdHMuZ2V0X3B1YmxpY19rZXlfaW5mb19mb3JfYWRkcmVzcyh2YXVsdF9hY2NvdW50X2lkLCBhc3NldF9pZCwgY2hhbmdlLCBhZGRyZXNzX2luZGV4LCBjb21wcmVzc2VkPWNvbXByZXNzZWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBWYXVsdHNBcGktPmdldF9wdWJsaWNfa2V5X2luZm9fZm9yX2FkZHJlc3M6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVmF1bHRzQXBpLT5nZXRfcHVibGljX2tleV9pbmZvX2Zvcl9hZGRyZXNzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip2YXVsdF9hY2NvdW50X2lkKiogfCAqKnN0cioqfCAgfCAKICoqYXNzZXRfaWQqKiB8ICoqc3RyKip8ICB8IAogKipjaGFuZ2UqKiB8ICoqZmxvYXQqKnwgIHwgCiAqKmFkZHJlc3NfaW5kZXgqKiB8ICoqZmxvYXQqKnwgIHwgCiAqKmNvbXByZXNzZWQqKiB8ICoqYm9vbCoqfCAgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipQdWJsaWNLZXlJbmZvcm1hdGlvbioqXShQdWJsaWNLZXlJbmZvcm1hdGlvbi5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFB1YmxpYyBLZXkgSW5mb3JtYXRpb24gfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF91bnNwZW50X2lucHV0cyoqCj4gTGlzdFtVbnNwZW50SW5wdXRzUmVzcG9uc2VdIGdldF91bnNwZW50X2lucHV0cyh2YXVsdF9hY2NvdW50X2lkLCBhc3NldF9pZCkKCkdldCBVVFhPIHVuc3BlbnQgaW5wdXRzIGluZm9ybWF0aW9uCgpSZXR1cm5zIHVuc3BlbnQgaW5wdXRzIGluZm9ybWF0aW9uIG9mIGFuIFVUWE8gYXNzZXQgaW4gYSB2YXVsdCBhY2NvdW50LgoKPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgVmlld2VyLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51bnNwZW50X2lucHV0c19yZXNwb25zZSBpbXBvcnQgVW5zcGVudElucHV0c1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHZhdWx0X2FjY291bnRfaWQgPSAndmF1bHRfYWNjb3VudF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudAogICAgYXNzZXRfaWQgPSAnYXNzZXRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGFzc2V0CgogICAgdHJ5OgogICAgICAgICMgR2V0IFVUWE8gdW5zcGVudCBpbnB1dHMgaW5mb3JtYXRpb24KICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnZhdWx0cy5nZXRfdW5zcGVudF9pbnB1dHModmF1bHRfYWNjb3VudF9pZCwgYXNzZXRfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBWYXVsdHNBcGktPmdldF91bnNwZW50X2lucHV0czpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBWYXVsdHNBcGktPmdldF91bnNwZW50X2lucHV0czogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSB2YXVsdCBhY2NvdW50IHwgCiAqKmFzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKkxpc3RbVW5zcGVudElucHV0c1Jlc3BvbnNlXSoqXShVbnNwZW50SW5wdXRzUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBMaXN0IG9mIFVuc3BlbnQgaW5mb3JtYXRpb24gcGVyIGlucHV0IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfdmF1bHRfYWNjb3VudCoqCj4gVmF1bHRBY2NvdW50IGdldF92YXVsdF9hY2NvdW50KHZhdWx0X2FjY291bnRfaWQpCgpHZXQgYSB2YXVsdCBhY2NvdW50IGJ5IElECgpHZXQgYSB2YXVsdCBhY2NvdW50IGJ5IGl0cyB1bmlxdWUgSUQuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIFZpZXdlci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmF1bHRfYWNjb3VudCBpbXBvcnQgVmF1bHRBY2NvdW50CmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHZhdWx0X2FjY291bnRfaWQgPSAndmF1bHRfYWNjb3VudF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudAoKICAgIHRyeToKICAgICAgICAjIEdldCBhIHZhdWx0IGFjY291bnQgYnkgSUQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnZhdWx0cy5nZXRfdmF1bHRfYWNjb3VudCh2YXVsdF9hY2NvdW50X2lkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVmF1bHRzQXBpLT5nZXRfdmF1bHRfYWNjb3VudDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBWYXVsdHNBcGktPmdldF92YXVsdF9hY2NvdW50OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip2YXVsdF9hY2NvdW50X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqVmF1bHRBY2NvdW50KipdKFZhdWx0QWNjb3VudC5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgVmF1bHQgQWNjb3VudCBvYmplY3QgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF92YXVsdF9hY2NvdW50X2Fzc2V0KioKPiBWYXVsdEFzc2V0IGdldF92YXVsdF9hY2NvdW50X2Fzc2V0KHZhdWx0X2FjY291bnRfaWQsIGFzc2V0X2lkKQoKR2V0IHRoZSBhc3NldCBiYWxhbmNlIGZvciBhIHZhdWx0IGFjY291bnQKClJldHVybnMgYSBzcGVjaWZpYyB2YXVsdCB3YWxsZXQgYmFsYW5jZSBpbmZvcm1hdGlvbiBmb3IgYSBzcGVjaWZpYyBhc3NldC4KCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsCiAgVmlld2VyLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hc3NldCBpbXBvcnQgVmF1bHRBc3NldApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB2YXVsdF9hY2NvdW50X2lkID0gJ3ZhdWx0X2FjY291bnRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgdG8gcmV0dXJuCiAgICBhc3NldF9pZCA9ICdhc3NldF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgYXNzZXQKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgdGhlIGFzc2V0IGJhbGFuY2UgZm9yIGEgdmF1bHQgYWNjb3VudAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudmF1bHRzLmdldF92YXVsdF9hY2NvdW50X2Fzc2V0KHZhdWx0X2FjY291bnRfaWQsIGFzc2V0X2lkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVmF1bHRzQXBpLT5nZXRfdmF1bHRfYWNjb3VudF9hc3NldDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBWYXVsdHNBcGktPmdldF92YXVsdF9hY2NvdW50X2Fzc2V0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip2YXVsdF9hY2NvdW50X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgdG8gcmV0dXJuIHwgCiAqKmFzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKlZhdWx0QXNzZXQqKl0oVmF1bHRBc3NldC5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgVmF1bHRBc3NldCBvYmplY3QgfCAgLSAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3Nlc19wYWdpbmF0ZWQqKgo+IFBhZ2luYXRlZEFkZHJlc3NSZXNwb25zZSBnZXRfdmF1bHRfYWNjb3VudF9hc3NldF9hZGRyZXNzZXNfcGFnaW5hdGVkKHZhdWx0X2FjY291bnRfaWQsIGFzc2V0X2lkLCBsaW1pdD1saW1pdCwgYmVmb3JlPWJlZm9yZSwgYWZ0ZXI9YWZ0ZXIpCgpHZXQgYWRkcmVzc2VzIChQYWdpbmF0ZWQpCgpSZXR1cm5zIGEgcGFnaW5hdGVkIHJlc3BvbnNlIG9mIHRoZSBhZGRyZXNzZXMgZm9yIGEgZ2l2ZW4gdmF1bHQgYWNjb3VudCBhbmQgYXNzZXQuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIFZpZXdlci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFnaW5hdGVkX2FkZHJlc3NfcmVzcG9uc2UgaW1wb3J0IFBhZ2luYXRlZEFkZHJlc3NSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB2YXVsdF9hY2NvdW50X2lkID0gJ3ZhdWx0X2FjY291bnRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgdG8gcmV0dXJuCiAgICBhc3NldF9pZCA9ICdhc3NldF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgYXNzZXQKICAgIGxpbWl0ID0gMy40ICMgZmxvYXQgfCAgKG9wdGlvbmFsKQogICAgYmVmb3JlID0gJ2JlZm9yZV9leGFtcGxlJyAjIHN0ciB8ICAob3B0aW9uYWwpCiAgICBhZnRlciA9ICdhZnRlcl9leGFtcGxlJyAjIHN0ciB8ICAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgR2V0IGFkZHJlc3NlcyAoUGFnaW5hdGVkKQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudmF1bHRzLmdldF92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3Nlc19wYWdpbmF0ZWQodmF1bHRfYWNjb3VudF9pZCwgYXNzZXRfaWQsIGxpbWl0PWxpbWl0LCBiZWZvcmU9YmVmb3JlLCBhZnRlcj1hZnRlcikucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFZhdWx0c0FwaS0+Z2V0X3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzc2VzX3BhZ2luYXRlZDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBWYXVsdHNBcGktPmdldF92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3Nlc19wYWdpbmF0ZWQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnZhdWx0X2FjY291bnRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudCB0byByZXR1cm4gfCAKICoqYXNzZXRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgYXNzZXQgfCAKICoqbGltaXQqKiB8ICoqZmxvYXQqKnwgIHwgW29wdGlvbmFsXSAKICoqYmVmb3JlKiogfCAqKnN0cioqfCAgfCBbb3B0aW9uYWxdIAogKiphZnRlcioqIHwgKipzdHIqKnwgIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqUGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlKipdKFBhZ2luYXRlZEFkZHJlc3NSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgcGFnaW5hdGVkIGxpc3Qgb2YgYWRkcmVzc2VzLCBhbmQgcGFnaW5hdGlvbiBpbmZvLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X3ZhdWx0X2Fzc2V0cyoqCj4gTGlzdFtWYXVsdEFzc2V0XSBnZXRfdmF1bHRfYXNzZXRzKGFjY291bnRfbmFtZV9wcmVmaXg9YWNjb3VudF9uYW1lX3ByZWZpeCwgYWNjb3VudF9uYW1lX3N1ZmZpeD1hY2NvdW50X25hbWVfc3VmZml4KQoKR2V0IGFzc2V0IGJhbGFuY2UgZm9yIGNob3NlbiBhc3NldHMKCkdldHMgdGhlIGFzc2V0cyBhbW91bnQgc3VtbWFyeSBmb3IgYWxsIGFjY291bnRzIG9yIGZpbHRlcmVkIGFjY291bnRzLgoKPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgVmlld2VyLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hc3NldCBpbXBvcnQgVmF1bHRBc3NldApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBhY2NvdW50X25hbWVfcHJlZml4ID0gJ2FjY291bnRfbmFtZV9wcmVmaXhfZXhhbXBsZScgIyBzdHIgfCAgKG9wdGlvbmFsKQogICAgYWNjb3VudF9uYW1lX3N1ZmZpeCA9ICdhY2NvdW50X25hbWVfc3VmZml4X2V4YW1wbGUnICMgc3RyIHwgIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgYXNzZXQgYmFsYW5jZSBmb3IgY2hvc2VuIGFzc2V0cwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudmF1bHRzLmdldF92YXVsdF9hc3NldHMoYWNjb3VudF9uYW1lX3ByZWZpeD1hY2NvdW50X25hbWVfcHJlZml4LCBhY2NvdW50X25hbWVfc3VmZml4PWFjY291bnRfbmFtZV9zdWZmaXgpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBWYXVsdHNBcGktPmdldF92YXVsdF9hc3NldHM6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVmF1bHRzQXBpLT5nZXRfdmF1bHRfYXNzZXRzOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKiphY2NvdW50X25hbWVfcHJlZml4KiogfCAqKnN0cioqfCAgfCBbb3B0aW9uYWxdIAogKiphY2NvdW50X25hbWVfc3VmZml4KiogfCAqKnN0cioqfCAgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipMaXN0W1ZhdWx0QXNzZXRdKipdKFZhdWx0QXNzZXQubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBbW91bnQgYnkgYXNzZXQgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF92YXVsdF9iYWxhbmNlX2J5X2Fzc2V0KioKPiBWYXVsdEFzc2V0IGdldF92YXVsdF9iYWxhbmNlX2J5X2Fzc2V0KGFzc2V0X2lkKQoKR2V0IHZhdWx0IGJhbGFuY2UgYnkgYW4gYXNzZXQKCkdldCB0aGUgdG90YWwgYmFsYW5jZSBvZiBhbiBhc3NldCBhY3Jvc3MgYWxsIHRoZSB2YXVsdCBhY2NvdW50cy4KCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIFZpZXdlci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmF1bHRfYXNzZXQgaW1wb3J0IFZhdWx0QXNzZXQKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgYXNzZXRfaWQgPSAnYXNzZXRfaWRfZXhhbXBsZScgIyBzdHIgfCAKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgdmF1bHQgYmFsYW5jZSBieSBhbiBhc3NldAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudmF1bHRzLmdldF92YXVsdF9iYWxhbmNlX2J5X2Fzc2V0KGFzc2V0X2lkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVmF1bHRzQXBpLT5nZXRfdmF1bHRfYmFsYW5jZV9ieV9hc3NldDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBWYXVsdHNBcGktPmdldF92YXVsdF9iYWxhbmNlX2J5X2Fzc2V0OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKiphc3NldF9pZCoqIHwgKipzdHIqKnwgIHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKlZhdWx0QXNzZXQqKl0oVmF1bHRBc3NldC5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IFZhdWx0IGFtb3VudCBieSBhc3NldCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqaGlkZV92YXVsdF9hY2NvdW50KioKPiBWYXVsdEFjdGlvblN0YXR1cyBoaWRlX3ZhdWx0X2FjY291bnQodmF1bHRfYWNjb3VudF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCkhpZGUgYSB2YXVsdCBhY2NvdW50IGluIHRoZSBjb25zb2xlCgpIaWRlcyB0aGUgcmVxdWVzdGVkIHZhdWx0IGFjY291bnQgZnJvbSB0aGUgd2ViIGNvbnNvbGUgdmlldy4KVGhpcyBvcGVyYXRpb24gaXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyB0aG91c2FuZHMgb2YgdmF1bHQgYWNjb3VudHMgdG8gc2VydmUgeW91ciBlbmQtdXNlcnMuClVzZWQgZm9yIHByZXZlbnRpbmcgdGhlIHdlYiBjb25zb2xlIHRvIGJlIHN3YW1wZWQgd2l0aCB0b28gbXVjaCB2YXVsdCBhY2NvdW50cy4KTGVhcm4gbW9yZSBpbiB0aGUgZm9sbG93aW5nIFtndWlkZV0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL2RvY3MvY3JlYXRlLWRpcmVjdC1jdXN0b2R5LXdhbGxldHMjaGlkaW5nLXZhdWx0LWFjY291bnRzKS4KTk9URTogSGlkaW5nIHRoZSB2YXVsdCBhY2NvdW50IGZyb20gdGhlIHdlYiBjb25zb2xlIHdpbGwgYWxzbyBoaWRlIGFsbCB0aGUgcmVsYXRlZCB0cmFuc2FjdGlvbnMgdG8vZnJvbSB0aGlzIHZhdWx0Lgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hY3Rpb25fc3RhdHVzIGltcG9ydCBWYXVsdEFjdGlvblN0YXR1cwpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB2YXVsdF9hY2NvdW50X2lkID0gJ3ZhdWx0X2FjY291bnRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgdmF1bHQgYWNjb3VudCB0byBoaWRlCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgSGlkZSBhIHZhdWx0IGFjY291bnQgaW4gdGhlIGNvbnNvbGUKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnZhdWx0cy5oaWRlX3ZhdWx0X2FjY291bnQodmF1bHRfYWNjb3VudF9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFZhdWx0c0FwaS0+aGlkZV92YXVsdF9hY2NvdW50OlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFZhdWx0c0FwaS0+aGlkZV92YXVsdF9hY2NvdW50OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip2YXVsdF9hY2NvdW50X2lkKiogfCAqKnN0cioqfCBUaGUgdmF1bHQgYWNjb3VudCB0byBoaWRlIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlZhdWx0QWN0aW9uU3RhdHVzKipdKFZhdWx0QWN0aW9uU3RhdHVzLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgT0sgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnNldF9jdXN0b21lcl9yZWZfaWRfZm9yX2FkZHJlc3MqKgo+IFZhdWx0QWN0aW9uU3RhdHVzIHNldF9jdXN0b21lcl9yZWZfaWRfZm9yX2FkZHJlc3ModmF1bHRfYWNjb3VudF9pZCwgYXNzZXRfaWQsIGFkZHJlc3NfaWQsIHNldF9jdXN0b21lcl9yZWZfaWRfZm9yX2FkZHJlc3NfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCkFzc2lnbiBBTUwgY3VzdG9tZXIgcmVmZXJlbmNlIElECgpTZXRzIGFuIEFNTC9LWVQgY3VzdG9tZXIgcmVmZXJlbmNlIElEIGZvciBhIHNwZWNpZmljIGFkZHJlc3MuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfY3VzdG9tZXJfcmVmX2lkX2Zvcl9hZGRyZXNzX3JlcXVlc3QgaW1wb3J0IFNldEN1c3RvbWVyUmVmSWRGb3JBZGRyZXNzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjdGlvbl9zdGF0dXMgaW1wb3J0IFZhdWx0QWN0aW9uU3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHZhdWx0X2FjY291bnRfaWQgPSAndmF1bHRfYWNjb3VudF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudAogICAgYXNzZXRfaWQgPSAnYXNzZXRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGFzc2V0CiAgICBhZGRyZXNzX2lkID0gJ2FkZHJlc3NfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgYWRkcmVzcyBmb3Igd2hpY2ggdG8gYWRkIGEgZGVzY3JpcHRpb24uIEZvciBYUlAsIHVzZSA8YWRkcmVzcz46PHRhZz4sIGZvciBhbGwgb3RoZXIgYXNzZXRzLCB1c2Ugb25seSB0aGUgYWRkcmVzcwogICAgc2V0X2N1c3RvbWVyX3JlZl9pZF9mb3JfYWRkcmVzc19yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5TZXRDdXN0b21lclJlZklkRm9yQWRkcmVzc1JlcXVlc3QoKSAjIFNldEN1c3RvbWVyUmVmSWRGb3JBZGRyZXNzUmVxdWVzdCB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIEFzc2lnbiBBTUwgY3VzdG9tZXIgcmVmZXJlbmNlIElECiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy52YXVsdHMuc2V0X2N1c3RvbWVyX3JlZl9pZF9mb3JfYWRkcmVzcyh2YXVsdF9hY2NvdW50X2lkLCBhc3NldF9pZCwgYWRkcmVzc19pZCwgc2V0X2N1c3RvbWVyX3JlZl9pZF9mb3JfYWRkcmVzc19yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVmF1bHRzQXBpLT5zZXRfY3VzdG9tZXJfcmVmX2lkX2Zvcl9hZGRyZXNzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFZhdWx0c0FwaS0+c2V0X2N1c3RvbWVyX3JlZl9pZF9mb3JfYWRkcmVzczogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSB2YXVsdCBhY2NvdW50IHwgCiAqKmFzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHwgCiAqKmFkZHJlc3NfaWQqKiB8ICoqc3RyKip8IFRoZSBhZGRyZXNzIGZvciB3aGljaCB0byBhZGQgYSBkZXNjcmlwdGlvbi4gRm9yIFhSUCwgdXNlICZsdDthZGRyZXNzJmd0OzombHQ7dGFnJmd0OywgZm9yIGFsbCBvdGhlciBhc3NldHMsIHVzZSBvbmx5IHRoZSBhZGRyZXNzIHwgCiAqKnNldF9jdXN0b21lcl9yZWZfaWRfZm9yX2FkZHJlc3NfcmVxdWVzdCoqIHwgWyoqU2V0Q3VzdG9tZXJSZWZJZEZvckFkZHJlc3NSZXF1ZXN0KipdKFNldEN1c3RvbWVyUmVmSWRGb3JBZGRyZXNzUmVxdWVzdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipWYXVsdEFjdGlvblN0YXR1cyoqXShWYXVsdEFjdGlvblN0YXR1cy5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgT0sgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnNldF92YXVsdF9hY2NvdW50X2F1dG9fZnVlbCoqCj4gVmF1bHRBY3Rpb25TdGF0dXMgc2V0X3ZhdWx0X2FjY291bnRfYXV0b19mdWVsKHZhdWx0X2FjY291bnRfaWQsIHNldF9hdXRvX2Z1ZWxfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKClNldCBhdXRvIGZ1ZWxpbmcgdG8gb24gb3Igb2ZmCgpUb2dnbGVzIHRoZSBhdXRvIGZ1ZWxpbmcgcHJvcGVydHkgb2YgdGhlIHZhdWx0IGFjY291bnQgdG8gZW5hYmxlZCBvciBkaXNhYmxlZC4KVmF1bHQgQWNjb3VudHMgd2l0aCAnYXV0b0Z1ZWw9dHJ1ZScgYXJlIG1vbml0b3JlZCBhbmQgYXV0byBmdWVsZWQgYnkgdGhlIEZpcmVibG9ja3MgR2FzIFN0YXRpb24uCkxlYXJuIG1vcmUgYWJvdXQgdGhlIEZpcmVibG9ja3MgR2FzIFN0YXRpb24gaW4gdGhlIGZvbGxvd2luZyBbZ3VpZGVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL3dvcmstd2l0aC1nYXMtc3RhdGlvbikuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9hdXRvX2Z1ZWxfcmVxdWVzdCBpbXBvcnQgU2V0QXV0b0Z1ZWxSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmF1bHRfYWN0aW9uX3N0YXR1cyBpbXBvcnQgVmF1bHRBY3Rpb25TdGF0dXMKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdmF1bHRfYWNjb3VudF9pZCA9ICd2YXVsdF9hY2NvdW50X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIHZhdWx0IGFjY291bnQgSUQKICAgIHNldF9hdXRvX2Z1ZWxfcmVxdWVzdCA9IGZpcmVibG9ja3MuU2V0QXV0b0Z1ZWxSZXF1ZXN0KCkgIyBTZXRBdXRvRnVlbFJlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBTZXQgYXV0byBmdWVsaW5nIHRvIG9uIG9yIG9mZgogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudmF1bHRzLnNldF92YXVsdF9hY2NvdW50X2F1dG9fZnVlbCh2YXVsdF9hY2NvdW50X2lkLCBzZXRfYXV0b19mdWVsX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBWYXVsdHNBcGktPnNldF92YXVsdF9hY2NvdW50X2F1dG9fZnVlbDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBWYXVsdHNBcGktPnNldF92YXVsdF9hY2NvdW50X2F1dG9fZnVlbDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKnwgVGhlIHZhdWx0IGFjY291bnQgSUQgfCAKICoqc2V0X2F1dG9fZnVlbF9yZXF1ZXN0KiogfCBbKipTZXRBdXRvRnVlbFJlcXVlc3QqKl0oU2V0QXV0b0Z1ZWxSZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlZhdWx0QWN0aW9uU3RhdHVzKipdKFZhdWx0QWN0aW9uU3RhdHVzLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBPSyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqc2V0X3ZhdWx0X2FjY291bnRfY3VzdG9tZXJfcmVmX2lkKioKPiBWYXVsdEFjdGlvblN0YXR1cyBzZXRfdmF1bHRfYWNjb3VudF9jdXN0b21lcl9yZWZfaWQodmF1bHRfYWNjb3VudF9pZCwgc2V0X2N1c3RvbWVyX3JlZl9pZF9yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKU2V0IGFuIEFNTC9LWVQgSUQgZm9yIGEgdmF1bHQgYWNjb3VudAoKQXNzaWducyBhbiBBTUwvS1lUIGN1c3RvbWVyIHJlZmVyZW5jZSBJRCBmb3IgdGhlIHZhdWx0IGFjY291bnQuIExlYXJuIG1vcmUgYWJvdXQgRmlyZWJsb2NrcyBBTUwgbWFuYWdlbWVudCBpbiB0aGUgZm9sbG93aW5nIFtndWlkZV0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL2RvY3MvZGVmaW5lLWFtbC1wb2xpY2llcykuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfY3VzdG9tZXJfcmVmX2lkX3JlcXVlc3QgaW1wb3J0IFNldEN1c3RvbWVyUmVmSWRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmF1bHRfYWN0aW9uX3N0YXR1cyBpbXBvcnQgVmF1bHRBY3Rpb25TdGF0dXMKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdmF1bHRfYWNjb3VudF9pZCA9ICd2YXVsdF9hY2NvdW50X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIHZhdWx0IGFjY291bnQgSUQKICAgIHNldF9jdXN0b21lcl9yZWZfaWRfcmVxdWVzdCA9IGZpcmVibG9ja3MuU2V0Q3VzdG9tZXJSZWZJZFJlcXVlc3QoKSAjIFNldEN1c3RvbWVyUmVmSWRSZXF1ZXN0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgU2V0IGFuIEFNTC9LWVQgSUQgZm9yIGEgdmF1bHQgYWNjb3VudAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudmF1bHRzLnNldF92YXVsdF9hY2NvdW50X2N1c3RvbWVyX3JlZl9pZCh2YXVsdF9hY2NvdW50X2lkLCBzZXRfY3VzdG9tZXJfcmVmX2lkX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBWYXVsdHNBcGktPnNldF92YXVsdF9hY2NvdW50X2N1c3RvbWVyX3JlZl9pZDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBWYXVsdHNBcGktPnNldF92YXVsdF9hY2NvdW50X2N1c3RvbWVyX3JlZl9pZDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKnwgVGhlIHZhdWx0IGFjY291bnQgSUQgfCAKICoqc2V0X2N1c3RvbWVyX3JlZl9pZF9yZXF1ZXN0KiogfCBbKipTZXRDdXN0b21lclJlZklkUmVxdWVzdCoqXShTZXRDdXN0b21lclJlZklkUmVxdWVzdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipWYXVsdEFjdGlvblN0YXR1cyoqXShWYXVsdEFjdGlvblN0YXR1cy5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IGFwcGxpY2F0aW9uL2pzb24KIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMSoqIHwgT0sgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnVuaGlkZV92YXVsdF9hY2NvdW50KioKPiBWYXVsdEFjdGlvblN0YXR1cyB1bmhpZGVfdmF1bHRfYWNjb3VudCh2YXVsdF9hY2NvdW50X2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKVW5oaWRlIGEgdmF1bHQgYWNjb3VudCBpbiB0aGUgY29uc29sZQoKTWFrZXMgYSBoaWRkZW4gdmF1bHQgYWNjb3VudCB2aXNpYmxlIGluIHdlYiBjb25zb2xlIHZpZXcuCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjdGlvbl9zdGF0dXMgaW1wb3J0IFZhdWx0QWN0aW9uU3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHZhdWx0X2FjY291bnRfaWQgPSAndmF1bHRfYWNjb3VudF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSB2YXVsdCBhY2NvdW50IHRvIHVuaGlkZQogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIFVuaGlkZSBhIHZhdWx0IGFjY291bnQgaW4gdGhlIGNvbnNvbGUKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLnZhdWx0cy51bmhpZGVfdmF1bHRfYWNjb3VudCh2YXVsdF9hY2NvdW50X2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgVmF1bHRzQXBpLT51bmhpZGVfdmF1bHRfYWNjb3VudDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBWYXVsdHNBcGktPnVuaGlkZV92YXVsdF9hY2NvdW50OiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip2YXVsdF9hY2NvdW50X2lkKiogfCAqKnN0cioqfCBUaGUgdmF1bHQgYWNjb3VudCB0byB1bmhpZGUgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqVmF1bHRBY3Rpb25TdGF0dXMqKl0oVmF1bHRBY3Rpb25TdGF0dXMubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBPSyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqdXBkYXRlX3ZhdWx0X2FjY291bnQqKgo+IFJlbmFtZVZhdWx0QWNjb3VudFJlc3BvbnNlIHVwZGF0ZV92YXVsdF9hY2NvdW50KHZhdWx0X2FjY291bnRfaWQsIHVwZGF0ZV92YXVsdF9hY2NvdW50X3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpSZW5hbWUgYSB2YXVsdCBhY2NvdW50CgpSZW5hbWVzIHRoZSByZXF1ZXN0ZWQgdmF1bHQgYWNjb3VudC4KPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbmFtZV92YXVsdF9hY2NvdW50X3Jlc3BvbnNlIGltcG9ydCBSZW5hbWVWYXVsdEFjY291bnRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV92YXVsdF9hY2NvdW50X3JlcXVlc3QgaW1wb3J0IFVwZGF0ZVZhdWx0QWNjb3VudFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdmF1bHRfYWNjb3VudF9pZCA9ICd2YXVsdF9hY2NvdW50X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSB2YXVsdCBhY2NvdW50IHRvIGVkaXQKICAgIHVwZGF0ZV92YXVsdF9hY2NvdW50X3JlcXVlc3QgPSBmaXJlYmxvY2tzLlVwZGF0ZVZhdWx0QWNjb3VudFJlcXVlc3QoKSAjIFVwZGF0ZVZhdWx0QWNjb3VudFJlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBSZW5hbWUgYSB2YXVsdCBhY2NvdW50CiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy52YXVsdHMudXBkYXRlX3ZhdWx0X2FjY291bnQodmF1bHRfYWNjb3VudF9pZCwgdXBkYXRlX3ZhdWx0X2FjY291bnRfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFZhdWx0c0FwaS0+dXBkYXRlX3ZhdWx0X2FjY291bnQ6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVmF1bHRzQXBpLT51cGRhdGVfdmF1bHRfYWNjb3VudDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqdmF1bHRfYWNjb3VudF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSB2YXVsdCBhY2NvdW50IHRvIGVkaXQgfCAKICoqdXBkYXRlX3ZhdWx0X2FjY291bnRfcmVxdWVzdCoqIHwgWyoqVXBkYXRlVmF1bHRBY2NvdW50UmVxdWVzdCoqXShVcGRhdGVWYXVsdEFjY291bnRSZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlJlbmFtZVZhdWx0QWNjb3VudFJlc3BvbnNlKipdKFJlbmFtZVZhdWx0QWNjb3VudFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBPSyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqdXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzcyoqCj4gVmF1bHRBY3Rpb25TdGF0dXMgdXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzcyh2YXVsdF9hY2NvdW50X2lkLCBhc3NldF9pZCwgYWRkcmVzc19pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwgdXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzc19yZXF1ZXN0PXVwZGF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3NfcmVxdWVzdCkKClVwZGF0ZSBhZGRyZXNzIGRlc2NyaXB0aW9uCgpVcGRhdGVzIHRoZSBkZXNjcmlwdGlvbiBvZiBhbiBleGlzdGluZyBhZGRyZXNzIG9mIGFuIGFzc2V0IGluIGEgdmF1bHQgYWNjb3VudC4KPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzc19yZXF1ZXN0IGltcG9ydCBVcGRhdGVWYXVsdEFjY291bnRBc3NldEFkZHJlc3NSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmF1bHRfYWN0aW9uX3N0YXR1cyBpbXBvcnQgVmF1bHRBY3Rpb25TdGF0dXMKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdmF1bHRfYWNjb3VudF9pZCA9ICd2YXVsdF9hY2NvdW50X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSB2YXVsdCBhY2NvdW50CiAgICBhc3NldF9pZCA9ICdhc3NldF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgYXNzZXQKICAgIGFkZHJlc3NfaWQgPSAnYWRkcmVzc19pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBhZGRyZXNzIGZvciB3aGljaCB0byBhZGQgYSBkZXNjcmlwdGlvbi4gRm9yIFhSUCwgdXNlIDxhZGRyZXNzPjo8dGFnPiwgZm9yIGFsbCBvdGhlciBhc3NldHMsIHVzZSBvbmx5IHRoZSBhZGRyZXNzCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCiAgICB1cGRhdGVfdmF1bHRfYWNjb3VudF9hc3NldF9hZGRyZXNzX3JlcXVlc3QgPSBmaXJlYmxvY2tzLlVwZGF0ZVZhdWx0QWNjb3VudEFzc2V0QWRkcmVzc1JlcXVlc3QoKSAjIFVwZGF0ZVZhdWx0QWNjb3VudEFzc2V0QWRkcmVzc1JlcXVlc3QgfCAgKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIFVwZGF0ZSBhZGRyZXNzIGRlc2NyaXB0aW9uCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy52YXVsdHMudXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzcyh2YXVsdF9hY2NvdW50X2lkLCBhc3NldF9pZCwgYWRkcmVzc19pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwgdXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzc19yZXF1ZXN0PXVwZGF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3NfcmVxdWVzdCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFZhdWx0c0FwaS0+dXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzczpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBWYXVsdHNBcGktPnVwZGF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3M6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnZhdWx0X2FjY291bnRfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudCB8IAogKiphc3NldF9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSBhc3NldCB8IAogKiphZGRyZXNzX2lkKiogfCAqKnN0cioqfCBUaGUgYWRkcmVzcyBmb3Igd2hpY2ggdG8gYWRkIGEgZGVzY3JpcHRpb24uIEZvciBYUlAsIHVzZSAmbHQ7YWRkcmVzcyZndDs6Jmx0O3RhZyZndDssIGZvciBhbGwgb3RoZXIgYXNzZXRzLCB1c2Ugb25seSB0aGUgYWRkcmVzcyB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAogKip1cGRhdGVfdmF1bHRfYWNjb3VudF9hc3NldF9hZGRyZXNzX3JlcXVlc3QqKiB8IFsqKlVwZGF0ZVZhdWx0QWNjb3VudEFzc2V0QWRkcmVzc1JlcXVlc3QqKl0oVXBkYXRlVmF1bHRBY2NvdW50QXNzZXRBZGRyZXNzUmVxdWVzdC5tZCl8ICB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlZhdWx0QWN0aW9uU3RhdHVzKipdKFZhdWx0QWN0aW9uU3RhdHVzLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBPSyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqdXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYmFsYW5jZSoqCj4gVmF1bHRBc3NldCB1cGRhdGVfdmF1bHRfYWNjb3VudF9hc3NldF9iYWxhbmNlKHZhdWx0X2FjY291bnRfaWQsIGFzc2V0X2lkLCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKUmVmcmVzaCBhc3NldCBiYWxhbmNlIGRhdGEKClVwZGF0ZXMgdGhlIGJhbGFuY2Ugb2YgYSBzcGVjaWZpYyBhc3NldCBpbiBhIHZhdWx0IGFjY291bnQuCgpUaGlzIEFQSSBlbmRwb2ludCBpcyBzdWJqZWN0IHRvIGEgc3RyaWN0IHJhdGUgbGltaXQuClNob3VsZCBiZSB1c2VkIGJ5IGNsaWVudHMgaW4gdmVyeSBzcGVjaWZpYyBzY2VuYXJpb3MuCgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hc3NldCBpbXBvcnQgVmF1bHRBc3NldApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICB2YXVsdF9hY2NvdW50X2lkID0gJ3ZhdWx0X2FjY291bnRfaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgdG8gcmV0dXJuCiAgICBhc3NldF9pZCA9ICdhc3NldF9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgYXNzZXQKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBSZWZyZXNoIGFzc2V0IGJhbGFuY2UgZGF0YQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3MudmF1bHRzLnVwZGF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2JhbGFuY2UodmF1bHRfYWNjb3VudF9pZCwgYXNzZXRfaWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBWYXVsdHNBcGktPnVwZGF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2JhbGFuY2U6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgVmF1bHRzQXBpLT51cGRhdGVfdmF1bHRfYWNjb3VudF9hc3NldF9iYWxhbmNlOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip2YXVsdF9hY2NvdW50X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgdG8gcmV0dXJuIHwgCiAqKmFzc2V0X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGFzc2V0IHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlZhdWx0QXNzZXQqKl0oVmF1bHRBc3NldC5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgVmF1bHRBc3NldCBvYmplY3QgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoK \ No newline at end of file diff --git a/docs/VendorDto.md b/docs/VendorDto.md index 1ecc0afd..aa8baad5 100644 --- a/docs/VendorDto.md +++ b/docs/VendorDto.md @@ -1,30 +1 @@ -# VendorDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The unique identifier of the vendor of this contract template | -**name** | **str** | The name of the vendor of this contract template | - -## Example - -```python -from fireblocks.models.vendor_dto import VendorDto - -# TODO update the JSON string below -json = "{}" -# create an instance of VendorDto from a JSON string -vendor_dto_instance = VendorDto.from_json(json) -# print the JSON string representation of the object -print(VendorDto.to_json()) - -# convert the object into a dict -vendor_dto_dict = vendor_dto_instance.to_dict() -# create an instance of VendorDto from a dict -vendor_dto_from_dict = VendorDto.from_dict(vendor_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBWZW5kb3JEdG8KCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHZlbmRvciBvZiB0aGlzIGNvbnRyYWN0IHRlbXBsYXRlIHwgCioqbmFtZSoqIHwgKipzdHIqKiB8IFRoZSBuYW1lIG9mIHRoZSB2ZW5kb3Igb2YgdGhpcyBjb250cmFjdCB0ZW1wbGF0ZSB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmVuZG9yX2R0byBpbXBvcnQgVmVuZG9yRHRvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWZW5kb3JEdG8gZnJvbSBhIEpTT04gc3RyaW5nCnZlbmRvcl9kdG9faW5zdGFuY2UgPSBWZW5kb3JEdG8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVmVuZG9yRHRvLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnZlbmRvcl9kdG9fZGljdCA9IHZlbmRvcl9kdG9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFZlbmRvckR0byBmcm9tIGEgZGljdAp2ZW5kb3JfZHRvX2Zyb21fZGljdCA9IFZlbmRvckR0by5mcm9tX2RpY3QodmVuZG9yX2R0b19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/VerdictConfig.md b/docs/VerdictConfig.md index 29522614..e627a390 100644 --- a/docs/VerdictConfig.md +++ b/docs/VerdictConfig.md @@ -1,32 +1 @@ -# VerdictConfig - -Verdict configuration - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**action** | **str** | Verdict action | -**approvers** | [**ApproversConfig**](ApproversConfig.md) | | [optional] -**designated_signers** | [**DesignatedSignersConfig**](DesignatedSignersConfig.md) | | [optional] - -## Example - -```python -from fireblocks.models.verdict_config import VerdictConfig - -# TODO update the JSON string below -json = "{}" -# create an instance of VerdictConfig from a JSON string -verdict_config_instance = VerdictConfig.from_json(json) -# print the JSON string representation of the object -print(VerdictConfig.to_json()) - -# convert the object into a dict -verdict_config_dict = verdict_config_instance.to_dict() -# create an instance of VerdictConfig from a dict -verdict_config_from_dict = VerdictConfig.from_dict(verdict_config_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBWZXJkaWN0Q29uZmlnCgpWZXJkaWN0IGNvbmZpZ3VyYXRpb24KCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKiphY3Rpb24qKiB8ICoqc3RyKiogfCBWZXJkaWN0IGFjdGlvbiB8IAoqKmFwcHJvdmVycyoqIHwgWyoqQXBwcm92ZXJzQ29uZmlnKipdKEFwcHJvdmVyc0NvbmZpZy5tZCkgfCAgfCBbb3B0aW9uYWxdIAoqKmRlc2lnbmF0ZWRfc2lnbmVycyoqIHwgWyoqRGVzaWduYXRlZFNpZ25lcnNDb25maWcqKl0oRGVzaWduYXRlZFNpZ25lcnNDb25maWcubWQpIHwgIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZlcmRpY3RfY29uZmlnIGltcG9ydCBWZXJkaWN0Q29uZmlnCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWZXJkaWN0Q29uZmlnIGZyb20gYSBKU09OIHN0cmluZwp2ZXJkaWN0X2NvbmZpZ19pbnN0YW5jZSA9IFZlcmRpY3RDb25maWcuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoVmVyZGljdENvbmZpZy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp2ZXJkaWN0X2NvbmZpZ19kaWN0ID0gdmVyZGljdF9jb25maWdfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFZlcmRpY3RDb25maWcgZnJvbSBhIGRpY3QKdmVyZGljdF9jb25maWdfZnJvbV9kaWN0ID0gVmVyZGljdENvbmZpZy5mcm9tX2RpY3QodmVyZGljdF9jb25maWdfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/VersionSummary.md b/docs/VersionSummary.md index c021731a..c5598ab2 100644 --- a/docs/VersionSummary.md +++ b/docs/VersionSummary.md @@ -1,30 +1 @@ -# VersionSummary - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**hash** | **str** | The version hash of the cosigner | -**name** | **str** | The name of the version | [optional] - -## Example - -```python -from fireblocks.models.version_summary import VersionSummary - -# TODO update the JSON string below -json = "{}" -# create an instance of VersionSummary from a JSON string -version_summary_instance = VersionSummary.from_json(json) -# print the JSON string representation of the object -print(VersionSummary.to_json()) - -# convert the object into a dict -version_summary_dict = version_summary_instance.to_dict() -# create an instance of VersionSummary from a dict -version_summary_from_dict = VersionSummary.from_dict(version_summary_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBWZXJzaW9uU3VtbWFyeQoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipoYXNoKiogfCAqKnN0cioqIHwgVGhlIHZlcnNpb24gaGFzaCBvZiB0aGUgY29zaWduZXIgfCAKKipuYW1lKiogfCAqKnN0cioqIHwgVGhlIG5hbWUgb2YgdGhlIHZlcnNpb24gfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmVyc2lvbl9zdW1tYXJ5IGltcG9ydCBWZXJzaW9uU3VtbWFyeQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmVyc2lvblN1bW1hcnkgZnJvbSBhIEpTT04gc3RyaW5nCnZlcnNpb25fc3VtbWFyeV9pbnN0YW5jZSA9IFZlcnNpb25TdW1tYXJ5LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFZlcnNpb25TdW1tYXJ5LnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CnZlcnNpb25fc3VtbWFyeV9kaWN0ID0gdmVyc2lvbl9zdW1tYXJ5X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWZXJzaW9uU3VtbWFyeSBmcm9tIGEgZGljdAp2ZXJzaW9uX3N1bW1hcnlfZnJvbV9kaWN0ID0gVmVyc2lvblN1bW1hcnkuZnJvbV9kaWN0KHZlcnNpb25fc3VtbWFyeV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/WalletAsset.md b/docs/WalletAsset.md index a650ca66..ac9944ab 100644 --- a/docs/WalletAsset.md +++ b/docs/WalletAsset.md @@ -1,35 +1 @@ -# WalletAsset - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | | [optional] -**balance** | **str** | | [optional] -**locked_amount** | **str** | | [optional] -**status** | [**ConfigChangeRequestStatus**](ConfigChangeRequestStatus.md) | | [optional] -**address** | **str** | | [optional] -**tag** | **str** | | [optional] -**activation_time** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.wallet_asset import WalletAsset - -# TODO update the JSON string below -json = "{}" -# create an instance of WalletAsset from a JSON string -wallet_asset_instance = WalletAsset.from_json(json) -# print the JSON string representation of the object -print(WalletAsset.to_json()) - -# convert the object into a dict -wallet_asset_dict = wallet_asset_instance.to_dict() -# create an instance of WalletAsset from a dict -wallet_asset_from_dict = WalletAsset.from_dict(wallet_asset_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBXYWxsZXRBc3NldAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKippZCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqYmFsYW5jZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqbG9ja2VkX2Ftb3VudCoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqc3RhdHVzKiogfCBbKipDb25maWdDaGFuZ2VSZXF1ZXN0U3RhdHVzKipdKENvbmZpZ0NoYW5nZVJlcXVlc3RTdGF0dXMubWQpIHwgIHwgW29wdGlvbmFsXSAKKiphZGRyZXNzKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKip0YWcqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFjdGl2YXRpb25fdGltZSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53YWxsZXRfYXNzZXQgaW1wb3J0IFdhbGxldEFzc2V0CgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBXYWxsZXRBc3NldCBmcm9tIGEgSlNPTiBzdHJpbmcKd2FsbGV0X2Fzc2V0X2luc3RhbmNlID0gV2FsbGV0QXNzZXQuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoV2FsbGV0QXNzZXQudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKd2FsbGV0X2Fzc2V0X2RpY3QgPSB3YWxsZXRfYXNzZXRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFdhbGxldEFzc2V0IGZyb20gYSBkaWN0CndhbGxldF9hc3NldF9mcm9tX2RpY3QgPSBXYWxsZXRBc3NldC5mcm9tX2RpY3Qod2FsbGV0X2Fzc2V0X2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/WalletAssetAdditionalInfo.md b/docs/WalletAssetAdditionalInfo.md index 1bd1dbb8..d2e935f3 100644 --- a/docs/WalletAssetAdditionalInfo.md +++ b/docs/WalletAssetAdditionalInfo.md @@ -1,44 +1 @@ -# WalletAssetAdditionalInfo - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**account_holder_given_name** | **str** | | [optional] -**account_holder_surname** | **str** | | [optional] -**account_holder_city** | **str** | | [optional] -**account_holder_country** | **str** | | [optional] -**account_holder_address1** | **str** | | [optional] -**account_holder_address2** | **str** | | [optional] -**account_holder_district** | **str** | | [optional] -**account_holder_postal_code** | **str** | | [optional] -**aba_routing_number** | **str** | | [optional] -**aba_account_number** | **str** | | [optional] -**aba_country** | **str** | | [optional] -**iban** | **str** | | [optional] -**iban_city** | **str** | | [optional] -**iban_country** | **str** | | [optional] -**spei_clabe** | **str** | | [optional] -**spei_name** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.wallet_asset_additional_info import WalletAssetAdditionalInfo - -# TODO update the JSON string below -json = "{}" -# create an instance of WalletAssetAdditionalInfo from a JSON string -wallet_asset_additional_info_instance = WalletAssetAdditionalInfo.from_json(json) -# print the JSON string representation of the object -print(WalletAssetAdditionalInfo.to_json()) - -# convert the object into a dict -wallet_asset_additional_info_dict = wallet_asset_additional_info_instance.to_dict() -# create an instance of WalletAssetAdditionalInfo from a dict -wallet_asset_additional_info_from_dict = WalletAssetAdditionalInfo.from_dict(wallet_asset_additional_info_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBXYWxsZXRBc3NldEFkZGl0aW9uYWxJbmZvCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmFjY291bnRfaG9sZGVyX2dpdmVuX25hbWUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFjY291bnRfaG9sZGVyX3N1cm5hbWUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFjY291bnRfaG9sZGVyX2NpdHkqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFjY291bnRfaG9sZGVyX2NvdW50cnkqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFjY291bnRfaG9sZGVyX2FkZHJlc3MxKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKiphY2NvdW50X2hvbGRlcl9hZGRyZXNzMioqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqYWNjb3VudF9ob2xkZXJfZGlzdHJpY3QqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFjY291bnRfaG9sZGVyX3Bvc3RhbF9jb2RlKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKiphYmFfcm91dGluZ19udW1iZXIqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmFiYV9hY2NvdW50X251bWJlcioqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqYWJhX2NvdW50cnkqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmliYW4qKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmliYW5fY2l0eSoqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCioqaWJhbl9jb3VudHJ5KiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipzcGVpX2NsYWJlKiogfCAqKnN0cioqIHwgIHwgW29wdGlvbmFsXSAKKipzcGVpX25hbWUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud2FsbGV0X2Fzc2V0X2FkZGl0aW9uYWxfaW5mbyBpbXBvcnQgV2FsbGV0QXNzZXRBZGRpdGlvbmFsSW5mbwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgV2FsbGV0QXNzZXRBZGRpdGlvbmFsSW5mbyBmcm9tIGEgSlNPTiBzdHJpbmcKd2FsbGV0X2Fzc2V0X2FkZGl0aW9uYWxfaW5mb19pbnN0YW5jZSA9IFdhbGxldEFzc2V0QWRkaXRpb25hbEluZm8uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoV2FsbGV0QXNzZXRBZGRpdGlvbmFsSW5mby50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp3YWxsZXRfYXNzZXRfYWRkaXRpb25hbF9pbmZvX2RpY3QgPSB3YWxsZXRfYXNzZXRfYWRkaXRpb25hbF9pbmZvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBXYWxsZXRBc3NldEFkZGl0aW9uYWxJbmZvIGZyb20gYSBkaWN0CndhbGxldF9hc3NldF9hZGRpdGlvbmFsX2luZm9fZnJvbV9kaWN0ID0gV2FsbGV0QXNzZXRBZGRpdGlvbmFsSW5mby5mcm9tX2RpY3Qod2FsbGV0X2Fzc2V0X2FkZGl0aW9uYWxfaW5mb19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/Web3ConnectionsApi.md b/docs/Web3ConnectionsApi.md index 270258ff..9b2a540c 100644 --- a/docs/Web3ConnectionsApi.md +++ b/docs/Web3ConnectionsApi.md @@ -1,335 +1 @@ -# fireblocks.Web3ConnectionsApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**create**](Web3ConnectionsApi.md#create) | **POST** /connections/wc | Create a new Web3 connection. -[**get**](Web3ConnectionsApi.md#get) | **GET** /connections | List all open Web3 connections. -[**remove**](Web3ConnectionsApi.md#remove) | **DELETE** /connections/wc/{id} | Remove an existing Web3 connection. -[**submit**](Web3ConnectionsApi.md#submit) | **PUT** /connections/wc/{id} | Respond to a pending Web3 connection request. - - -# **create** -> CreateConnectionResponse create(create_connection_request, idempotency_key=idempotency_key, x_end_user_wallet_id=x_end_user_wallet_id) - -Create a new Web3 connection. - -Initiate a new Web3 connection. - -* Note: After this succeeds, make a request to `PUT /v1/connections/wc/{id}` (below) to approve or reject the new Web3 connection. - -### Example - - -```python -from fireblocks.models.create_connection_request import CreateConnectionRequest -from fireblocks.models.create_connection_response import CreateConnectionResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - create_connection_request = fireblocks.CreateConnectionRequest() # CreateConnectionRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - x_end_user_wallet_id = 'x_end_user_wallet_id_example' # str | Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. (optional) - - try: - # Create a new Web3 connection. - api_response = fireblocks.web3_connections.create(create_connection_request, idempotency_key=idempotency_key, x_end_user_wallet_id=x_end_user_wallet_id).result() - print("The response of Web3ConnectionsApi->create:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling Web3ConnectionsApi->create: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **create_connection_request** | [**CreateConnectionRequest**](CreateConnectionRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **x_end_user_wallet_id** | **str**| Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. | [optional] - -### Return type - -[**CreateConnectionResponse**](CreateConnectionResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | Web3 connection initiated successfully | * X-Request-ID -
| -**400** | Invalid data sent | * X-Request-ID -
| -**500** | Something went wrong | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get** -> GetConnectionsResponse get(x_end_user_wallet_id=x_end_user_wallet_id, order=order, filter=filter, sort=sort, page_size=page_size, next=next) - -List all open Web3 connections. - -Get open Web3 connections. - -### Example - - -```python -from fireblocks.models.get_connections_response import GetConnectionsResponse -from fireblocks.models.get_filter_parameter import GetFilterParameter -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - x_end_user_wallet_id = 'x_end_user_wallet_id_example' # str | Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. (optional) - order = ASC # str | List order; ascending or descending. (optional) (default to ASC) - filter = fireblocks.GetFilterParameter() # GetFilterParameter | Parsed filter object (optional) - sort = createdAt # str | Property to sort Web3 connections by. (optional) (default to createdAt) - page_size = 10 # float | Amount of results to return in the next page. (optional) (default to 10) - next = 'next_example' # str | Cursor to the next page (optional) - - try: - # List all open Web3 connections. - api_response = fireblocks.web3_connections.get(x_end_user_wallet_id=x_end_user_wallet_id, order=order, filter=filter, sort=sort, page_size=page_size, next=next).result() - print("The response of Web3ConnectionsApi->get:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling Web3ConnectionsApi->get: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **x_end_user_wallet_id** | **str**| Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. | [optional] - **order** | **str**| List order; ascending or descending. | [optional] [default to ASC] - **filter** | [**GetFilterParameter**](.md)| Parsed filter object | [optional] - **sort** | **str**| Property to sort Web3 connections by. | [optional] [default to createdAt] - **page_size** | **float**| Amount of results to return in the next page. | [optional] [default to 10] - **next** | **str**| Cursor to the next page | [optional] - -### Return type - -[**GetConnectionsResponse**](GetConnectionsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | | * X-Request-ID -
| -**400** | Query parameters were invalid | * X-Request-ID -
| -**500** | Something went wrong | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **remove** -> remove(id, x_end_user_wallet_id=x_end_user_wallet_id) - -Remove an existing Web3 connection. - -Remove a Web3 connection - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - id = 'id_example' # str | The ID of the existing Web3 connection to remove. - x_end_user_wallet_id = 'x_end_user_wallet_id_example' # str | Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. (optional) - - try: - # Remove an existing Web3 connection. - fireblocks.web3_connections.remove(id, x_end_user_wallet_id=x_end_user_wallet_id).result() - except Exception as e: - print("Exception when calling Web3ConnectionsApi->remove: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **id** | **str**| The ID of the existing Web3 connection to remove. | - **x_end_user_wallet_id** | **str**| Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. | [optional] - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: Not defined - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Connection removed successfully | * X-Request-ID -
| -**404** | Connection not found | * X-Request-ID -
| -**500** | Something went wrong | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **submit** -> submit(id, respond_to_connection_request, idempotency_key=idempotency_key, x_end_user_wallet_id=x_end_user_wallet_id) - -Respond to a pending Web3 connection request. - -Submit a response to *approve* or *reject* an initiated Web3 connection. -* Note: This call is used to complete your `POST /v1/connections/wc/` request. - -After this succeeds, your new Web3 connection is created and functioning. - -### Example - - -```python -from fireblocks.models.respond_to_connection_request import RespondToConnectionRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - id = 'id_example' # str | The ID of the initiated Web3 connection to approve. - respond_to_connection_request = fireblocks.RespondToConnectionRequest() # RespondToConnectionRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - x_end_user_wallet_id = 'x_end_user_wallet_id_example' # str | Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. (optional) - - try: - # Respond to a pending Web3 connection request. - fireblocks.web3_connections.submit(id, respond_to_connection_request, idempotency_key=idempotency_key, x_end_user_wallet_id=x_end_user_wallet_id).result() - except Exception as e: - print("Exception when calling Web3ConnectionsApi->submit: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **id** | **str**| The ID of the initiated Web3 connection to approve. | - **respond_to_connection_request** | [**RespondToConnectionRequest**](RespondToConnectionRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - **x_end_user_wallet_id** | **str**| Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. | [optional] - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: Not defined - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Connection submitted successfully | * X-Request-ID -
| -**400** | Invalid data sent | * X-Request-ID -
| -**404** | Connection not found | * X-Request-ID -
| -**500** | Something went wrong | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLldlYjNDb25uZWN0aW9uc0FwaQoKQWxsIFVSSXMgYXJlIHJlbGF0aXZlIHRvICpodHRwczovL2FwaS5maXJlYmxvY2tzLmlvL3YxKgoKTWV0aG9kIHwgSFRUUCByZXF1ZXN0IHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tClsqKmNyZWF0ZSoqXShXZWIzQ29ubmVjdGlvbnNBcGkubWQjY3JlYXRlKSB8ICoqUE9TVCoqIC9jb25uZWN0aW9ucy93YyB8IENyZWF0ZSBhIG5ldyBXZWIzIGNvbm5lY3Rpb24uClsqKmdldCoqXShXZWIzQ29ubmVjdGlvbnNBcGkubWQjZ2V0KSB8ICoqR0VUKiogL2Nvbm5lY3Rpb25zIHwgTGlzdCBhbGwgb3BlbiBXZWIzIGNvbm5lY3Rpb25zLgpbKipyZW1vdmUqKl0oV2ViM0Nvbm5lY3Rpb25zQXBpLm1kI3JlbW92ZSkgfCAqKkRFTEVURSoqIC9jb25uZWN0aW9ucy93Yy97aWR9IHwgUmVtb3ZlIGFuIGV4aXN0aW5nIFdlYjMgY29ubmVjdGlvbi4KWyoqc3VibWl0KipdKFdlYjNDb25uZWN0aW9uc0FwaS5tZCNzdWJtaXQpIHwgKipQVVQqKiAvY29ubmVjdGlvbnMvd2Mve2lkfSB8IFJlc3BvbmQgdG8gYSBwZW5kaW5nIFdlYjMgY29ubmVjdGlvbiByZXF1ZXN0LgoKCiMgKipjcmVhdGUqKgo+IENyZWF0ZUNvbm5lY3Rpb25SZXNwb25zZSBjcmVhdGUoY3JlYXRlX2Nvbm5lY3Rpb25fcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwgeF9lbmRfdXNlcl93YWxsZXRfaWQ9eF9lbmRfdXNlcl93YWxsZXRfaWQpCgpDcmVhdGUgYSBuZXcgV2ViMyBjb25uZWN0aW9uLgoKSW5pdGlhdGUgYSBuZXcgV2ViMyBjb25uZWN0aW9uLgoKKiBOb3RlOiBBZnRlciB0aGlzIHN1Y2NlZWRzLCBtYWtlIGEgcmVxdWVzdCB0byBgUFVUIC92MS9jb25uZWN0aW9ucy93Yy97aWR9YCAoYmVsb3cpIHRvIGFwcHJvdmUgb3IgcmVqZWN0IHRoZSBuZXcgV2ViMyBjb25uZWN0aW9uLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfY29ubmVjdGlvbl9yZXF1ZXN0IGltcG9ydCBDcmVhdGVDb25uZWN0aW9uUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9jb25uZWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBDcmVhdGVDb25uZWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY3JlYXRlX2Nvbm5lY3Rpb25fcmVxdWVzdCA9IGZpcmVibG9ja3MuQ3JlYXRlQ29ubmVjdGlvblJlcXVlc3QoKSAjIENyZWF0ZUNvbm5lY3Rpb25SZXF1ZXN0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCiAgICB4X2VuZF91c2VyX3dhbGxldF9pZCA9ICd4X2VuZF91c2VyX3dhbGxldF9pZF9leGFtcGxlJyAjIHN0ciB8IFVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ3JlYXRlIGEgbmV3IFdlYjMgY29ubmVjdGlvbi4KICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLndlYjNfY29ubmVjdGlvbnMuY3JlYXRlKGNyZWF0ZV9jb25uZWN0aW9uX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksIHhfZW5kX3VzZXJfd2FsbGV0X2lkPXhfZW5kX3VzZXJfd2FsbGV0X2lkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgV2ViM0Nvbm5lY3Rpb25zQXBpLT5jcmVhdGU6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgV2ViM0Nvbm5lY3Rpb25zQXBpLT5jcmVhdGU6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmNyZWF0ZV9jb25uZWN0aW9uX3JlcXVlc3QqKiB8IFsqKkNyZWF0ZUNvbm5lY3Rpb25SZXF1ZXN0KipdKENyZWF0ZUNvbm5lY3Rpb25SZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCiAqKnhfZW5kX3VzZXJfd2FsbGV0X2lkKiogfCAqKnN0cioqfCBVbmlxdWUgSUQgb2YgdGhlIEVuZC1Vc2VyIHdhbGxldCB0byB0aGUgQVBJIHJlcXVlc3QuIFJlcXVpcmVkIGZvciBlbmQtdXNlciB3YWxsZXQgb3BlcmF0aW9ucy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipDcmVhdGVDb25uZWN0aW9uUmVzcG9uc2UqKl0oQ3JlYXRlQ29ubmVjdGlvblJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBXZWIzIGNvbm5lY3Rpb24gaW5pdGlhdGVkIHN1Y2Nlc3NmdWxseSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDAwKiogfCBJbnZhbGlkIGRhdGEgc2VudCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNTAwKiogfCBTb21ldGhpbmcgd2VudCB3cm9uZyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXQqKgo+IEdldENvbm5lY3Rpb25zUmVzcG9uc2UgZ2V0KHhfZW5kX3VzZXJfd2FsbGV0X2lkPXhfZW5kX3VzZXJfd2FsbGV0X2lkLCBvcmRlcj1vcmRlciwgZmlsdGVyPWZpbHRlciwgc29ydD1zb3J0LCBwYWdlX3NpemU9cGFnZV9zaXplLCBuZXh0PW5leHQpCgpMaXN0IGFsbCBvcGVuIFdlYjMgY29ubmVjdGlvbnMuCgpHZXQgb3BlbiBXZWIzIGNvbm5lY3Rpb25zLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfY29ubmVjdGlvbnNfcmVzcG9uc2UgaW1wb3J0IEdldENvbm5lY3Rpb25zUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfZmlsdGVyX3BhcmFtZXRlciBpbXBvcnQgR2V0RmlsdGVyUGFyYW1ldGVyCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkID0gJ3hfZW5kX3VzZXJfd2FsbGV0X2lkX2V4YW1wbGUnICMgc3RyIHwgVW5pcXVlIElEIG9mIHRoZSBFbmQtVXNlciB3YWxsZXQgdG8gdGhlIEFQSSByZXF1ZXN0LiBSZXF1aXJlZCBmb3IgZW5kLXVzZXIgd2FsbGV0IG9wZXJhdGlvbnMuIChvcHRpb25hbCkKICAgIG9yZGVyID0gQVNDICMgc3RyIHwgTGlzdCBvcmRlcjsgYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcuIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gQVNDKQogICAgZmlsdGVyID0gZmlyZWJsb2Nrcy5HZXRGaWx0ZXJQYXJhbWV0ZXIoKSAjIEdldEZpbHRlclBhcmFtZXRlciB8IFBhcnNlZCBmaWx0ZXIgb2JqZWN0IChvcHRpb25hbCkKICAgIHNvcnQgPSBjcmVhdGVkQXQgIyBzdHIgfCBQcm9wZXJ0eSB0byBzb3J0IFdlYjMgY29ubmVjdGlvbnMgYnkuIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gY3JlYXRlZEF0KQogICAgcGFnZV9zaXplID0gMTAgIyBmbG9hdCB8IEFtb3VudCBvZiByZXN1bHRzIHRvIHJldHVybiBpbiB0aGUgbmV4dCBwYWdlLiAob3B0aW9uYWwpIChkZWZhdWx0IHRvIDEwKQogICAgbmV4dCA9ICduZXh0X2V4YW1wbGUnICMgc3RyIHwgQ3Vyc29yIHRvIHRoZSBuZXh0IHBhZ2UgKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIExpc3QgYWxsIG9wZW4gV2ViMyBjb25uZWN0aW9ucy4KICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLndlYjNfY29ubmVjdGlvbnMuZ2V0KHhfZW5kX3VzZXJfd2FsbGV0X2lkPXhfZW5kX3VzZXJfd2FsbGV0X2lkLCBvcmRlcj1vcmRlciwgZmlsdGVyPWZpbHRlciwgc29ydD1zb3J0LCBwYWdlX3NpemU9cGFnZV9zaXplLCBuZXh0PW5leHQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBXZWIzQ29ubmVjdGlvbnNBcGktPmdldDpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBXZWIzQ29ubmVjdGlvbnNBcGktPmdldDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqeF9lbmRfdXNlcl93YWxsZXRfaWQqKiB8ICoqc3RyKip8IFVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLiB8IFtvcHRpb25hbF0gCiAqKm9yZGVyKiogfCAqKnN0cioqfCBMaXN0IG9yZGVyOyBhc2NlbmRpbmcgb3IgZGVzY2VuZGluZy4gfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIEFTQ10KICoqZmlsdGVyKiogfCBbKipHZXRGaWx0ZXJQYXJhbWV0ZXIqKl0oLm1kKXwgUGFyc2VkIGZpbHRlciBvYmplY3QgfCBbb3B0aW9uYWxdIAogKipzb3J0KiogfCAqKnN0cioqfCBQcm9wZXJ0eSB0byBzb3J0IFdlYjMgY29ubmVjdGlvbnMgYnkuIHwgW29wdGlvbmFsXSBbZGVmYXVsdCB0byBjcmVhdGVkQXRdCiAqKnBhZ2Vfc2l6ZSoqIHwgKipmbG9hdCoqfCBBbW91bnQgb2YgcmVzdWx0cyB0byByZXR1cm4gaW4gdGhlIG5leHQgcGFnZS4gfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIDEwXQogKipuZXh0KiogfCAqKnN0cioqfCBDdXJzb3IgdG8gdGhlIG5leHQgcGFnZSB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKkdldENvbm5lY3Rpb25zUmVzcG9uc2UqKl0oR2V0Q29ubmVjdGlvbnNSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8ICB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDAwKiogfCBRdWVyeSBwYXJhbWV0ZXJzIHdlcmUgaW52YWxpZCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNTAwKiogfCBTb21ldGhpbmcgd2VudCB3cm9uZyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipyZW1vdmUqKgo+IHJlbW92ZShpZCwgeF9lbmRfdXNlcl93YWxsZXRfaWQ9eF9lbmRfdXNlcl93YWxsZXRfaWQpCgpSZW1vdmUgYW4gZXhpc3RpbmcgV2ViMyBjb25uZWN0aW9uLgoKUmVtb3ZlIGEgV2ViMyBjb25uZWN0aW9uCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgaWQgPSAnaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGV4aXN0aW5nIFdlYjMgY29ubmVjdGlvbiB0byByZW1vdmUuCiAgICB4X2VuZF91c2VyX3dhbGxldF9pZCA9ICd4X2VuZF91c2VyX3dhbGxldF9pZF9leGFtcGxlJyAjIHN0ciB8IFVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgUmVtb3ZlIGFuIGV4aXN0aW5nIFdlYjMgY29ubmVjdGlvbi4KICAgICAgICBmaXJlYmxvY2tzLndlYjNfY29ubmVjdGlvbnMucmVtb3ZlKGlkLCB4X2VuZF91c2VyX3dhbGxldF9pZD14X2VuZF91c2VyX3dhbGxldF9pZCkucmVzdWx0KCkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBXZWIzQ29ubmVjdGlvbnNBcGktPnJlbW92ZTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgZXhpc3RpbmcgV2ViMyBjb25uZWN0aW9uIHRvIHJlbW92ZS4gfCAKICoqeF9lbmRfdXNlcl93YWxsZXRfaWQqKiB8ICoqc3RyKip8IFVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKCnZvaWQgKGVtcHR5IHJlc3BvbnNlIGJvZHkpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBOb3QgZGVmaW5lZAoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQ29ubmVjdGlvbiByZW1vdmVkIHN1Y2Nlc3NmdWxseSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNDA0KiogfCBDb25uZWN0aW9uIG5vdCBmb3VuZCB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqNTAwKiogfCBTb21ldGhpbmcgd2VudCB3cm9uZyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipzdWJtaXQqKgo+IHN1Ym1pdChpZCwgcmVzcG9uZF90b19jb25uZWN0aW9uX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksIHhfZW5kX3VzZXJfd2FsbGV0X2lkPXhfZW5kX3VzZXJfd2FsbGV0X2lkKQoKUmVzcG9uZCB0byBhIHBlbmRpbmcgV2ViMyBjb25uZWN0aW9uIHJlcXVlc3QuCgpTdWJtaXQgYSByZXNwb25zZSB0byAqYXBwcm92ZSogb3IgKnJlamVjdCogYW4gaW5pdGlhdGVkIFdlYjMgY29ubmVjdGlvbi4KKiBOb3RlOiBUaGlzIGNhbGwgaXMgdXNlZCB0byBjb21wbGV0ZSB5b3VyIGBQT1NUIC92MS9jb25uZWN0aW9ucy93Yy9gIHJlcXVlc3QuCgpBZnRlciB0aGlzIHN1Y2NlZWRzLCB5b3VyIG5ldyBXZWIzIGNvbm5lY3Rpb24gaXMgY3JlYXRlZCBhbmQgZnVuY3Rpb25pbmcuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc3BvbmRfdG9fY29ubmVjdGlvbl9yZXF1ZXN0IGltcG9ydCBSZXNwb25kVG9Db25uZWN0aW9uUmVxdWVzdApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgaWQgPSAnaWRfZXhhbXBsZScgIyBzdHIgfCBUaGUgSUQgb2YgdGhlIGluaXRpYXRlZCBXZWIzIGNvbm5lY3Rpb24gdG8gYXBwcm92ZS4KICAgIHJlc3BvbmRfdG9fY29ubmVjdGlvbl9yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5SZXNwb25kVG9Db25uZWN0aW9uUmVxdWVzdCgpICMgUmVzcG9uZFRvQ29ubmVjdGlvblJlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkID0gJ3hfZW5kX3VzZXJfd2FsbGV0X2lkX2V4YW1wbGUnICMgc3RyIHwgVW5pcXVlIElEIG9mIHRoZSBFbmQtVXNlciB3YWxsZXQgdG8gdGhlIEFQSSByZXF1ZXN0LiBSZXF1aXJlZCBmb3IgZW5kLXVzZXIgd2FsbGV0IG9wZXJhdGlvbnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBSZXNwb25kIHRvIGEgcGVuZGluZyBXZWIzIGNvbm5lY3Rpb24gcmVxdWVzdC4KICAgICAgICBmaXJlYmxvY2tzLndlYjNfY29ubmVjdGlvbnMuc3VibWl0KGlkLCByZXNwb25kX3RvX2Nvbm5lY3Rpb25fcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwgeF9lbmRfdXNlcl93YWxsZXRfaWQ9eF9lbmRfdXNlcl93YWxsZXRfaWQpLnJlc3VsdCgpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgV2ViM0Nvbm5lY3Rpb25zQXBpLT5zdWJtaXQ6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmlkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIGluaXRpYXRlZCBXZWIzIGNvbm5lY3Rpb24gdG8gYXBwcm92ZS4gfCAKICoqcmVzcG9uZF90b19jb25uZWN0aW9uX3JlcXVlc3QqKiB8IFsqKlJlc3BvbmRUb0Nvbm5lY3Rpb25SZXF1ZXN0KipdKFJlc3BvbmRUb0Nvbm5lY3Rpb25SZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCiAqKnhfZW5kX3VzZXJfd2FsbGV0X2lkKiogfCAqKnN0cioqfCBVbmlxdWUgSUQgb2YgdGhlIEVuZC1Vc2VyIHdhbGxldCB0byB0aGUgQVBJIHJlcXVlc3QuIFJlcXVpcmVkIGZvciBlbmQtdXNlciB3YWxsZXQgb3BlcmF0aW9ucy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgp2b2lkIChlbXB0eSByZXNwb25zZSBib2R5KQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBOb3QgZGVmaW5lZAoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQ29ubmVjdGlvbiBzdWJtaXR0ZWQgc3VjY2Vzc2Z1bGx5IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDAqKiB8IEludmFsaWQgZGF0YSBzZW50IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDQqKiB8IENvbm5lY3Rpb24gbm90IGZvdW5kIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio1MDAqKiB8IFNvbWV0aGluZyB3ZW50IHdyb25nIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoK \ No newline at end of file diff --git a/docs/Webhook.md b/docs/Webhook.md index f4311fc9..628cfc0f 100644 --- a/docs/Webhook.md +++ b/docs/Webhook.md @@ -1,35 +1 @@ -# Webhook - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The id of the webhook | -**url** | **str** | The url of the webhook where notifications will be sent. Must be a valid URL and https. | -**description** | **str** | description of the webhook of what it is used for | [optional] -**events** | [**List[WebhookEvent]**](WebhookEvent.md) | The events that the webhook will be subscribed to | -**status** | **str** | The status of the webhook | -**created_at** | **int** | The date and time the webhook was created in milliseconds | -**updated_at** | **int** | The date and time the webhook was last updated in milliseconds | - -## Example - -```python -from fireblocks.models.webhook import Webhook - -# TODO update the JSON string below -json = "{}" -# create an instance of Webhook from a JSON string -webhook_instance = Webhook.from_json(json) -# print the JSON string representation of the object -print(Webhook.to_json()) - -# convert the object into a dict -webhook_dict = webhook_instance.to_dict() -# create an instance of Webhook from a dict -webhook_from_dict = Webhook.from_dict(webhook_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBXZWJob29rCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKmlkKiogfCAqKnN0cioqIHwgVGhlIGlkIG9mIHRoZSB3ZWJob29rIHwgCioqdXJsKiogfCAqKnN0cioqIHwgVGhlIHVybCBvZiB0aGUgd2ViaG9vayB3aGVyZSBub3RpZmljYXRpb25zIHdpbGwgYmUgc2VudC4gTXVzdCBiZSBhIHZhbGlkIFVSTCBhbmQgaHR0cHMuIHwgCioqZGVzY3JpcHRpb24qKiB8ICoqc3RyKiogfCBkZXNjcmlwdGlvbiBvZiB0aGUgd2ViaG9vayBvZiB3aGF0IGl0IGlzIHVzZWQgZm9yIHwgW29wdGlvbmFsXSAKKipldmVudHMqKiB8IFsqKkxpc3RbV2ViaG9va0V2ZW50XSoqXShXZWJob29rRXZlbnQubWQpIHwgVGhlIGV2ZW50cyB0aGF0IHRoZSB3ZWJob29rIHdpbGwgYmUgc3Vic2NyaWJlZCB0byB8IAoqKnN0YXR1cyoqIHwgKipzdHIqKiB8IFRoZSBzdGF0dXMgb2YgdGhlIHdlYmhvb2sgfCAKKipjcmVhdGVkX2F0KiogfCAqKmludCoqIHwgVGhlIGRhdGUgYW5kIHRpbWUgdGhlIHdlYmhvb2sgd2FzIGNyZWF0ZWQgaW4gbWlsbGlzZWNvbmRzIHwgCioqdXBkYXRlZF9hdCoqIHwgKippbnQqKiB8IFRoZSBkYXRlIGFuZCB0aW1lIHRoZSB3ZWJob29rIHdhcyBsYXN0IHVwZGF0ZWQgaW4gbWlsbGlzZWNvbmRzIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53ZWJob29rIGltcG9ydCBXZWJob29rCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBXZWJob29rIGZyb20gYSBKU09OIHN0cmluZwp3ZWJob29rX2luc3RhbmNlID0gV2ViaG9vay5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChXZWJob29rLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CndlYmhvb2tfZGljdCA9IHdlYmhvb2tfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFdlYmhvb2sgZnJvbSBhIGRpY3QKd2ViaG9va19mcm9tX2RpY3QgPSBXZWJob29rLmZyb21fZGljdCh3ZWJob29rX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/WebhookEvent.md b/docs/WebhookEvent.md index ff887830..95c818fb 100644 --- a/docs/WebhookEvent.md +++ b/docs/WebhookEvent.md @@ -1,56 +1 @@ -# WebhookEvent - - -## Enum - -* `TRANSACTION_DOT_CREATED` (value: `'transaction.created'`) - -* `TRANSACTION_DOT_STATUS_DOT_UPDATED` (value: `'transaction.status.updated'`) - -* `TRANSACTION_DOT_APPROVAL_STATUS_DOT_UPDATED` (value: `'transaction.approval_status.updated'`) - -* `TRANSACTION_DOT_NETWORK_RECORDS_DOT_PROCESSING_COMPLETED` (value: `'transaction.network_records.processing_completed'`) - -* `EXTERNAL_WALLET_DOT_ASSET_DOT_ADDED` (value: `'external_wallet.asset.added'`) - -* `EXTERNAL_WALLET_DOT_ASSET_DOT_REMOVED` (value: `'external_wallet.asset.removed'`) - -* `INTERNAL_WALLET_DOT_ASSET_DOT_ADDED` (value: `'internal_wallet.asset.added'`) - -* `INTERNAL_WALLET_DOT_ASSET_DOT_REMOVED` (value: `'internal_wallet.asset.removed'`) - -* `CONTRACT_WALLET_DOT_ASSET_DOT_ADDED` (value: `'contract_wallet.asset.added'`) - -* `CONTRACT_WALLET_DOT_ASSET_DOT_REMOVED` (value: `'contract_wallet.asset.removed'`) - -* `VAULT_ACCOUNT_DOT_CREATED` (value: `'vault_account.created'`) - -* `VAULT_ACCOUNT_DOT_ASSET_DOT_ADDED` (value: `'vault_account.asset.added'`) - -* `VAULT_ACCOUNT_DOT_ASSET_DOT_BALANCE_UPDATED` (value: `'vault_account.asset.balance_updated'`) - -* `EMBEDDED_WALLET_DOT_STATUS_DOT_UPDATED` (value: `'embedded_wallet.status.updated'`) - -* `EMBEDDED_WALLET_DOT_CREATED` (value: `'embedded_wallet.created'`) - -* `EMBEDDED_WALLET_DOT_ASSET_DOT_BALANCE_UPDATED` (value: `'embedded_wallet.asset.balance_updated'`) - -* `EMBEDDED_WALLET_DOT_ASSET_DOT_ADDED` (value: `'embedded_wallet.asset.added'`) - -* `EMBEDDED_WALLET_DOT_ACCOUNT_DOT_CREATED` (value: `'embedded_wallet.account.created'`) - -* `EMBEDDED_WALLET_DOT_DEVICE_DOT_ADDED` (value: `'embedded_wallet.device.added'`) - -* `ONCHAIN_DATA_DOT_UPDATED` (value: `'onchain_data.updated'`) - -* `CONNECTION_DOT_ADDED` (value: `'connection.added'`) - -* `CONNECTION_DOT_REMOVED` (value: `'connection.removed'`) - -* `CONNECTION_DOT_REQUEST_DOT_WAITING_PEER_APPROVAL` (value: `'connection.request.waiting_peer_approval'`) - -* `CONNECTION_DOT_REQUEST_DOT_REJECTED_BY_PEER` (value: `'connection.request.rejected_by_peer'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBXZWJob29rRXZlbnQKCgojIyBFbnVtCgoqIGBUUkFOU0FDVElPTl9ET1RfQ1JFQVRFRGAgKHZhbHVlOiBgJ3RyYW5zYWN0aW9uLmNyZWF0ZWQnYCkKCiogYFRSQU5TQUNUSU9OX0RPVF9TVEFUVVNfRE9UX1VQREFURURgICh2YWx1ZTogYCd0cmFuc2FjdGlvbi5zdGF0dXMudXBkYXRlZCdgKQoKKiBgVFJBTlNBQ1RJT05fRE9UX0FQUFJPVkFMX1NUQVRVU19ET1RfVVBEQVRFRGAgKHZhbHVlOiBgJ3RyYW5zYWN0aW9uLmFwcHJvdmFsX3N0YXR1cy51cGRhdGVkJ2ApCgoqIGBUUkFOU0FDVElPTl9ET1RfTkVUV09SS19SRUNPUkRTX0RPVF9QUk9DRVNTSU5HX0NPTVBMRVRFRGAgKHZhbHVlOiBgJ3RyYW5zYWN0aW9uLm5ldHdvcmtfcmVjb3Jkcy5wcm9jZXNzaW5nX2NvbXBsZXRlZCdgKQoKKiBgRVhURVJOQUxfV0FMTEVUX0RPVF9BU1NFVF9ET1RfQURERURgICh2YWx1ZTogYCdleHRlcm5hbF93YWxsZXQuYXNzZXQuYWRkZWQnYCkKCiogYEVYVEVSTkFMX1dBTExFVF9ET1RfQVNTRVRfRE9UX1JFTU9WRURgICh2YWx1ZTogYCdleHRlcm5hbF93YWxsZXQuYXNzZXQucmVtb3ZlZCdgKQoKKiBgSU5URVJOQUxfV0FMTEVUX0RPVF9BU1NFVF9ET1RfQURERURgICh2YWx1ZTogYCdpbnRlcm5hbF93YWxsZXQuYXNzZXQuYWRkZWQnYCkKCiogYElOVEVSTkFMX1dBTExFVF9ET1RfQVNTRVRfRE9UX1JFTU9WRURgICh2YWx1ZTogYCdpbnRlcm5hbF93YWxsZXQuYXNzZXQucmVtb3ZlZCdgKQoKKiBgQ09OVFJBQ1RfV0FMTEVUX0RPVF9BU1NFVF9ET1RfQURERURgICh2YWx1ZTogYCdjb250cmFjdF93YWxsZXQuYXNzZXQuYWRkZWQnYCkKCiogYENPTlRSQUNUX1dBTExFVF9ET1RfQVNTRVRfRE9UX1JFTU9WRURgICh2YWx1ZTogYCdjb250cmFjdF93YWxsZXQuYXNzZXQucmVtb3ZlZCdgKQoKKiBgVkFVTFRfQUNDT1VOVF9ET1RfQ1JFQVRFRGAgKHZhbHVlOiBgJ3ZhdWx0X2FjY291bnQuY3JlYXRlZCdgKQoKKiBgVkFVTFRfQUNDT1VOVF9ET1RfQVNTRVRfRE9UX0FEREVEYCAodmFsdWU6IGAndmF1bHRfYWNjb3VudC5hc3NldC5hZGRlZCdgKQoKKiBgVkFVTFRfQUNDT1VOVF9ET1RfQVNTRVRfRE9UX0JBTEFOQ0VfVVBEQVRFRGAgKHZhbHVlOiBgJ3ZhdWx0X2FjY291bnQuYXNzZXQuYmFsYW5jZV91cGRhdGVkJ2ApCgoqIGBFTUJFRERFRF9XQUxMRVRfRE9UX1NUQVRVU19ET1RfVVBEQVRFRGAgKHZhbHVlOiBgJ2VtYmVkZGVkX3dhbGxldC5zdGF0dXMudXBkYXRlZCdgKQoKKiBgRU1CRURERURfV0FMTEVUX0RPVF9DUkVBVEVEYCAodmFsdWU6IGAnZW1iZWRkZWRfd2FsbGV0LmNyZWF0ZWQnYCkKCiogYEVNQkVEREVEX1dBTExFVF9ET1RfQVNTRVRfRE9UX0JBTEFOQ0VfVVBEQVRFRGAgKHZhbHVlOiBgJ2VtYmVkZGVkX3dhbGxldC5hc3NldC5iYWxhbmNlX3VwZGF0ZWQnYCkKCiogYEVNQkVEREVEX1dBTExFVF9ET1RfQVNTRVRfRE9UX0FEREVEYCAodmFsdWU6IGAnZW1iZWRkZWRfd2FsbGV0LmFzc2V0LmFkZGVkJ2ApCgoqIGBFTUJFRERFRF9XQUxMRVRfRE9UX0FDQ09VTlRfRE9UX0NSRUFURURgICh2YWx1ZTogYCdlbWJlZGRlZF93YWxsZXQuYWNjb3VudC5jcmVhdGVkJ2ApCgoqIGBFTUJFRERFRF9XQUxMRVRfRE9UX0RFVklDRV9ET1RfQURERURgICh2YWx1ZTogYCdlbWJlZGRlZF93YWxsZXQuZGV2aWNlLmFkZGVkJ2ApCgoqIGBPTkNIQUlOX0RBVEFfRE9UX1VQREFURURgICh2YWx1ZTogYCdvbmNoYWluX2RhdGEudXBkYXRlZCdgKQoKKiBgQ09OTkVDVElPTl9ET1RfQURERURgICh2YWx1ZTogYCdjb25uZWN0aW9uLmFkZGVkJ2ApCgoqIGBDT05ORUNUSU9OX0RPVF9SRU1PVkVEYCAodmFsdWU6IGAnY29ubmVjdGlvbi5yZW1vdmVkJ2ApCgoqIGBDT05ORUNUSU9OX0RPVF9SRVFVRVNUX0RPVF9XQUlUSU5HX1BFRVJfQVBQUk9WQUxgICh2YWx1ZTogYCdjb25uZWN0aW9uLnJlcXVlc3Qud2FpdGluZ19wZWVyX2FwcHJvdmFsJ2ApCgoqIGBDT05ORUNUSU9OX0RPVF9SRVFVRVNUX0RPVF9SRUpFQ1RFRF9CWV9QRUVSYCAodmFsdWU6IGAnY29ubmVjdGlvbi5yZXF1ZXN0LnJlamVjdGVkX2J5X3BlZXInYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/WebhookMetric.md b/docs/WebhookMetric.md index 006d5f7e..d16cca0b 100644 --- a/docs/WebhookMetric.md +++ b/docs/WebhookMetric.md @@ -1,29 +1 @@ -# WebhookMetric - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**value** | **str** | The value of the metric | - -## Example - -```python -from fireblocks.models.webhook_metric import WebhookMetric - -# TODO update the JSON string below -json = "{}" -# create an instance of WebhookMetric from a JSON string -webhook_metric_instance = WebhookMetric.from_json(json) -# print the JSON string representation of the object -print(WebhookMetric.to_json()) - -# convert the object into a dict -webhook_metric_dict = webhook_metric_instance.to_dict() -# create an instance of WebhookMetric from a dict -webhook_metric_from_dict = WebhookMetric.from_dict(webhook_metric_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBXZWJob29rTWV0cmljCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnZhbHVlKiogfCAqKnN0cioqIHwgVGhlIHZhbHVlIG9mIHRoZSBtZXRyaWMgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndlYmhvb2tfbWV0cmljIGltcG9ydCBXZWJob29rTWV0cmljCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBXZWJob29rTWV0cmljIGZyb20gYSBKU09OIHN0cmluZwp3ZWJob29rX21ldHJpY19pbnN0YW5jZSA9IFdlYmhvb2tNZXRyaWMuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoV2ViaG9va01ldHJpYy50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp3ZWJob29rX21ldHJpY19kaWN0ID0gd2ViaG9va19tZXRyaWNfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFdlYmhvb2tNZXRyaWMgZnJvbSBhIGRpY3QKd2ViaG9va19tZXRyaWNfZnJvbV9kaWN0ID0gV2ViaG9va01ldHJpYy5mcm9tX2RpY3Qod2ViaG9va19tZXRyaWNfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/WebhookPaginatedResponse.md b/docs/WebhookPaginatedResponse.md index 34151d99..d62c22b0 100644 --- a/docs/WebhookPaginatedResponse.md +++ b/docs/WebhookPaginatedResponse.md @@ -1,30 +1 @@ -# WebhookPaginatedResponse - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**data** | [**List[Webhook]**](Webhook.md) | The data of the current page | -**next** | **str** | The ID of the next page | [optional] - -## Example - -```python -from fireblocks.models.webhook_paginated_response import WebhookPaginatedResponse - -# TODO update the JSON string below -json = "{}" -# create an instance of WebhookPaginatedResponse from a JSON string -webhook_paginated_response_instance = WebhookPaginatedResponse.from_json(json) -# print the JSON string representation of the object -print(WebhookPaginatedResponse.to_json()) - -# convert the object into a dict -webhook_paginated_response_dict = webhook_paginated_response_instance.to_dict() -# create an instance of WebhookPaginatedResponse from a dict -webhook_paginated_response_from_dict = WebhookPaginatedResponse.from_dict(webhook_paginated_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBXZWJob29rUGFnaW5hdGVkUmVzcG9uc2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqZGF0YSoqIHwgWyoqTGlzdFtXZWJob29rXSoqXShXZWJob29rLm1kKSB8IFRoZSBkYXRhIG9mIHRoZSBjdXJyZW50IHBhZ2UgfCAKKipuZXh0KiogfCAqKnN0cioqIHwgVGhlIElEIG9mIHRoZSBuZXh0IHBhZ2UgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud2ViaG9va19wYWdpbmF0ZWRfcmVzcG9uc2UgaW1wb3J0IFdlYmhvb2tQYWdpbmF0ZWRSZXNwb25zZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgV2ViaG9va1BhZ2luYXRlZFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZwp3ZWJob29rX3BhZ2luYXRlZF9yZXNwb25zZV9pbnN0YW5jZSA9IFdlYmhvb2tQYWdpbmF0ZWRSZXNwb25zZS5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChXZWJob29rUGFnaW5hdGVkUmVzcG9uc2UudG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKd2ViaG9va19wYWdpbmF0ZWRfcmVzcG9uc2VfZGljdCA9IHdlYmhvb2tfcGFnaW5hdGVkX3Jlc3BvbnNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBXZWJob29rUGFnaW5hdGVkUmVzcG9uc2UgZnJvbSBhIGRpY3QKd2ViaG9va19wYWdpbmF0ZWRfcmVzcG9uc2VfZnJvbV9kaWN0ID0gV2ViaG9va1BhZ2luYXRlZFJlc3BvbnNlLmZyb21fZGljdCh3ZWJob29rX3BhZ2luYXRlZF9yZXNwb25zZV9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/WebhooksApi.md b/docs/WebhooksApi.md index 2c49d348..562a3511 100644 --- a/docs/WebhooksApi.md +++ b/docs/WebhooksApi.md @@ -1,172 +1 @@ -# fireblocks.WebhooksApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**resend_transaction_webhooks**](WebhooksApi.md#resend_transaction_webhooks) | **POST** /webhooks/resend/{txId} | Resend webhooks for a transaction by ID -[**resend_webhooks**](WebhooksApi.md#resend_webhooks) | **POST** /webhooks/resend | Resend failed webhooks - - -# **resend_transaction_webhooks** -> ResendWebhooksByTransactionIdResponse resend_transaction_webhooks(tx_id, resend_transaction_webhooks_request, idempotency_key=idempotency_key) - -Resend webhooks for a transaction by ID - -Resends webhook notifications for a transaction by its unique identifier. - -Learn more about Fireblocks Webhooks in the following [guide](https://developers.fireblocks.com/docs/configure-webhooks). - -**Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor. - - -### Example - - -```python -from fireblocks.models.resend_transaction_webhooks_request import ResendTransactionWebhooksRequest -from fireblocks.models.resend_webhooks_by_transaction_id_response import ResendWebhooksByTransactionIdResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - tx_id = 'tx_id_example' # str | The ID of the transaction for webhooks - resend_transaction_webhooks_request = fireblocks.ResendTransactionWebhooksRequest() # ResendTransactionWebhooksRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Resend webhooks for a transaction by ID - api_response = fireblocks.webhooks.resend_transaction_webhooks(tx_id, resend_transaction_webhooks_request, idempotency_key=idempotency_key).result() - print("The response of WebhooksApi->resend_transaction_webhooks:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling WebhooksApi->resend_transaction_webhooks: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **tx_id** | **str**| The ID of the transaction for webhooks | - **resend_transaction_webhooks_request** | [**ResendTransactionWebhooksRequest**](ResendTransactionWebhooksRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**ResendWebhooksByTransactionIdResponse**](ResendWebhooksByTransactionIdResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **resend_webhooks** -> ResendWebhooksResponse resend_webhooks(idempotency_key=idempotency_key) - -Resend failed webhooks - -Resends all failed webhook notifications. - -Learn more about Fireblocks Webhooks in the following [guide](https://developers.fireblocks.com/docs/configure-webhooks). - -
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - -### Example - - -```python -from fireblocks.models.resend_webhooks_response import ResendWebhooksResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Resend failed webhooks - api_response = fireblocks.webhooks.resend_webhooks(idempotency_key=idempotency_key).result() - print("The response of WebhooksApi->resend_webhooks:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling WebhooksApi->resend_webhooks: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**ResendWebhooksResponse**](ResendWebhooksResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLldlYmhvb2tzQXBpCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gKmh0dHBzOi8vYXBpLmZpcmVibG9ja3MuaW8vdjEqCgpNZXRob2QgfCBIVFRQIHJlcXVlc3QgfCBEZXNjcmlwdGlvbgotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KWyoqcmVzZW5kX3RyYW5zYWN0aW9uX3dlYmhvb2tzKipdKFdlYmhvb2tzQXBpLm1kI3Jlc2VuZF90cmFuc2FjdGlvbl93ZWJob29rcykgfCAqKlBPU1QqKiAvd2ViaG9va3MvcmVzZW5kL3t0eElkfSB8IFJlc2VuZCB3ZWJob29rcyBmb3IgYSB0cmFuc2FjdGlvbiBieSBJRApbKipyZXNlbmRfd2ViaG9va3MqKl0oV2ViaG9va3NBcGkubWQjcmVzZW5kX3dlYmhvb2tzKSB8ICoqUE9TVCoqIC93ZWJob29rcy9yZXNlbmQgfCBSZXNlbmQgZmFpbGVkIHdlYmhvb2tzCgoKIyAqKnJlc2VuZF90cmFuc2FjdGlvbl93ZWJob29rcyoqCj4gUmVzZW5kV2ViaG9va3NCeVRyYW5zYWN0aW9uSWRSZXNwb25zZSByZXNlbmRfdHJhbnNhY3Rpb25fd2ViaG9va3ModHhfaWQsIHJlc2VuZF90cmFuc2FjdGlvbl93ZWJob29rc19yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKUmVzZW5kIHdlYmhvb2tzIGZvciBhIHRyYW5zYWN0aW9uIGJ5IElECgpSZXNlbmRzIHdlYmhvb2sgbm90aWZpY2F0aW9ucyBmb3IgYSB0cmFuc2FjdGlvbiBieSBpdHMgdW5pcXVlIGlkZW50aWZpZXIuCgpMZWFybiBtb3JlIGFib3V0IEZpcmVibG9ja3MgV2ViaG9va3MgaW4gdGhlIGZvbGxvd2luZyBbZ3VpZGVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL2NvbmZpZ3VyZS13ZWJob29rcykuCgoqKkVuZHBvaW50IFBlcm1pc3Npb25zOioqIEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVzZW5kX3RyYW5zYWN0aW9uX3dlYmhvb2tzX3JlcXVlc3QgaW1wb3J0IFJlc2VuZFRyYW5zYWN0aW9uV2ViaG9va3NSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVzZW5kX3dlYmhvb2tzX2J5X3RyYW5zYWN0aW9uX2lkX3Jlc3BvbnNlIGltcG9ydCBSZXNlbmRXZWJob29rc0J5VHJhbnNhY3Rpb25JZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHR4X2lkID0gJ3R4X2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSB0cmFuc2FjdGlvbiBmb3Igd2ViaG9va3MKICAgIHJlc2VuZF90cmFuc2FjdGlvbl93ZWJob29rc19yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5SZXNlbmRUcmFuc2FjdGlvbldlYmhvb2tzUmVxdWVzdCgpICMgUmVzZW5kVHJhbnNhY3Rpb25XZWJob29rc1JlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBSZXNlbmQgd2ViaG9va3MgZm9yIGEgdHJhbnNhY3Rpb24gYnkgSUQKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLndlYmhvb2tzLnJlc2VuZF90cmFuc2FjdGlvbl93ZWJob29rcyh0eF9pZCwgcmVzZW5kX3RyYW5zYWN0aW9uX3dlYmhvb2tzX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBXZWJob29rc0FwaS0+cmVzZW5kX3RyYW5zYWN0aW9uX3dlYmhvb2tzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFdlYmhvb2tzQXBpLT5yZXNlbmRfdHJhbnNhY3Rpb25fd2ViaG9va3M6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnR4X2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIHRyYW5zYWN0aW9uIGZvciB3ZWJob29rcyB8IAogKipyZXNlbmRfdHJhbnNhY3Rpb25fd2ViaG9va3NfcmVxdWVzdCoqIHwgWyoqUmVzZW5kVHJhbnNhY3Rpb25XZWJob29rc1JlcXVlc3QqKl0oUmVzZW5kVHJhbnNhY3Rpb25XZWJob29rc1JlcXVlc3QubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqUmVzZW5kV2ViaG9va3NCeVRyYW5zYWN0aW9uSWRSZXNwb25zZSoqXShSZXNlbmRXZWJob29rc0J5VHJhbnNhY3Rpb25JZFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBPSyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqcmVzZW5kX3dlYmhvb2tzKioKPiBSZXNlbmRXZWJob29rc1Jlc3BvbnNlIHJlc2VuZF93ZWJob29rcyhpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KQoKUmVzZW5kIGZhaWxlZCB3ZWJob29rcwoKUmVzZW5kcyBhbGwgZmFpbGVkIHdlYmhvb2sgbm90aWZpY2F0aW9ucy4KCkxlYXJuIG1vcmUgYWJvdXQgRmlyZWJsb2NrcyBXZWJob29rcyBpbiB0aGUgZm9sbG93aW5nIFtndWlkZV0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL2RvY3MvY29uZmlndXJlLXdlYmhvb2tzKS4KCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc2VuZF93ZWJob29rc19yZXNwb25zZSBpbXBvcnQgUmVzZW5kV2ViaG9va3NSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgUmVzZW5kIGZhaWxlZCB3ZWJob29rcwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Mud2ViaG9va3MucmVzZW5kX3dlYmhvb2tzKGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBXZWJob29rc0FwaS0+cmVzZW5kX3dlYmhvb2tzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFdlYmhvb2tzQXBpLT5yZXNlbmRfd2ViaG9va3M6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKlJlc2VuZFdlYmhvb2tzUmVzcG9uc2UqKl0oUmVzZW5kV2ViaG9va3NSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IE9LIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCg== \ No newline at end of file diff --git a/docs/WebhooksV2Api.md b/docs/WebhooksV2Api.md index d93edab2..33171d5e 100644 --- a/docs/WebhooksV2Api.md +++ b/docs/WebhooksV2Api.md @@ -1,1059 +1 @@ -# fireblocks.WebhooksV2Api - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**create_webhook**](WebhooksV2Api.md#create_webhook) | **POST** /webhooks | Create a new webhook -[**delete_webhook**](WebhooksV2Api.md#delete_webhook) | **DELETE** /webhooks/{webhookId} | Delete webhook -[**get_metrics**](WebhooksV2Api.md#get_metrics) | **GET** /webhooks/{webhookId}/metrics/{metricName} | Get webhook metrics -[**get_notification**](WebhooksV2Api.md#get_notification) | **GET** /webhooks/{webhookId}/notifications/{notificationId} | Get notification by id -[**get_notification_attempts**](WebhooksV2Api.md#get_notification_attempts) | **GET** /webhooks/{webhookId}/notifications/{notificationId}/attempts | Get notification attempts -[**get_notifications**](WebhooksV2Api.md#get_notifications) | **GET** /webhooks/{webhookId}/notifications | Get all notifications by webhook id -[**get_resend_job_status**](WebhooksV2Api.md#get_resend_job_status) | **GET** /webhooks/{webhookId}/notifications/resend_failed/jobs/{jobId} | Get resend job status -[**get_webhook**](WebhooksV2Api.md#get_webhook) | **GET** /webhooks/{webhookId} | Get webhook by id -[**get_webhooks**](WebhooksV2Api.md#get_webhooks) | **GET** /webhooks | Get all webhooks -[**resend_failed_notifications**](WebhooksV2Api.md#resend_failed_notifications) | **POST** /webhooks/{webhookId}/notifications/resend_failed | Resend failed notifications -[**resend_notification_by_id**](WebhooksV2Api.md#resend_notification_by_id) | **POST** /webhooks/{webhookId}/notifications/{notificationId}/resend | Resend notification by id -[**resend_notifications_by_resource_id**](WebhooksV2Api.md#resend_notifications_by_resource_id) | **POST** /webhooks/{webhookId}/notifications/resend_by_resource | Resend notifications by resource Id -[**update_webhook**](WebhooksV2Api.md#update_webhook) | **PATCH** /webhooks/{webhookId} | Update webhook - - -# **create_webhook** -> Webhook create_webhook(create_webhook_request, idempotency_key=idempotency_key) - -Create a new webhook - -Creates a new webhook, which will be triggered on the specified events - -**Endpoint Permissions:** Owner, Admin, Non-Signing Admin. - - -### Example - - -```python -from fireblocks.models.create_webhook_request import CreateWebhookRequest -from fireblocks.models.webhook import Webhook -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - create_webhook_request = fireblocks.CreateWebhookRequest() # CreateWebhookRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Create a new webhook - api_response = fireblocks.webhooks_v2.create_webhook(create_webhook_request, idempotency_key=idempotency_key).result() - print("The response of WebhooksV2Api->create_webhook:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling WebhooksV2Api->create_webhook: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **create_webhook_request** | [**CreateWebhookRequest**](CreateWebhookRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**Webhook**](Webhook.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**201** | created new webhook successfully | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **delete_webhook** -> Webhook delete_webhook(webhook_id) - -Delete webhook - -Delete a webhook by its id - -Endpoint Permission: Owner, Admin, Non-Signing Admin. - - -### Example - - -```python -from fireblocks.models.webhook import Webhook -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - webhook_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the webhook - - try: - # Delete webhook - api_response = fireblocks.webhooks_v2.delete_webhook(webhook_id).result() - print("The response of WebhooksV2Api->delete_webhook:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling WebhooksV2Api->delete_webhook: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **webhook_id** | **str**| The unique identifier of the webhook | - -### Return type - -[**Webhook**](Webhook.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Deleted webhook object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_metrics** -> WebhookMetric get_metrics(webhook_id, metric_name) - -Get webhook metrics - -Get webhook metrics by webhook id and metric name - - -### Example - - -```python -from fireblocks.models.webhook_metric import WebhookMetric -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - webhook_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | - metric_name = 'LAST_ACTIVE_HOUR_ERROR_RATE' # str | Name of the metric to retrieve - - try: - # Get webhook metrics - api_response = fireblocks.webhooks_v2.get_metrics(webhook_id, metric_name).result() - print("The response of WebhooksV2Api->get_metrics:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling WebhooksV2Api->get_metrics: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **webhook_id** | **str**| | - **metric_name** | **str**| Name of the metric to retrieve | - -### Return type - -[**WebhookMetric**](WebhookMetric.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Webhook metrics | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_notification** -> NotificationWithData get_notification(webhook_id, notification_id, include_data=include_data) - -Get notification by id - -Get notification by id - - -### Example - - -```python -from fireblocks.models.notification_with_data import NotificationWithData -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - webhook_id = 'webhook_id_example' # str | The ID of the webhook to fetch - notification_id = 'notification_id_example' # str | The ID of the notification to fetch - include_data = True # bool | Include the data of the notification (optional) - - try: - # Get notification by id - api_response = fireblocks.webhooks_v2.get_notification(webhook_id, notification_id, include_data=include_data).result() - print("The response of WebhooksV2Api->get_notification:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling WebhooksV2Api->get_notification: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **webhook_id** | **str**| The ID of the webhook to fetch | - **notification_id** | **str**| The ID of the notification to fetch | - **include_data** | **bool**| Include the data of the notification | [optional] - -### Return type - -[**NotificationWithData**](NotificationWithData.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_notification_attempts** -> NotificationAttemptsPaginatedResponse get_notification_attempts(webhook_id, notification_id, page_cursor=page_cursor, page_size=page_size) - -Get notification attempts - -Get notification attempts by notification id - - -### Example - - -```python -from fireblocks.models.notification_attempts_paginated_response import NotificationAttemptsPaginatedResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - webhook_id = 'webhook_id_example' # str | The ID of the webhook to fetch - notification_id = 'notification_id_example' # str | The ID of the notification to fetch - page_cursor = 'page_cursor_example' # str | Cursor of the required page (optional) - page_size = 10 # float | Maximum number of items in the page (optional) (default to 10) - - try: - # Get notification attempts - api_response = fireblocks.webhooks_v2.get_notification_attempts(webhook_id, notification_id, page_cursor=page_cursor, page_size=page_size).result() - print("The response of WebhooksV2Api->get_notification_attempts:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling WebhooksV2Api->get_notification_attempts: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **webhook_id** | **str**| The ID of the webhook to fetch | - **notification_id** | **str**| The ID of the notification to fetch | - **page_cursor** | **str**| Cursor of the required page | [optional] - **page_size** | **float**| Maximum number of items in the page | [optional] [default to 10] - -### Return type - -[**NotificationAttemptsPaginatedResponse**](NotificationAttemptsPaginatedResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | OK | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_notifications** -> NotificationPaginatedResponse get_notifications(webhook_id, order=order, sort_by=sort_by, page_cursor=page_cursor, page_size=page_size, start_time=start_time, end_time=end_time, statuses=statuses, events=events, resource_id=resource_id) - -Get all notifications by webhook id - -Get all notifications by webhook id (paginated) - - -### Example - - -```python -from fireblocks.models.notification_paginated_response import NotificationPaginatedResponse -from fireblocks.models.notification_status import NotificationStatus -from fireblocks.models.webhook_event import WebhookEvent -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - webhook_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | - order = DESC # str | ASC / DESC ordering (default DESC) (optional) (default to DESC) - sort_by = updatedAt # str | Sort by field (optional) (default to updatedAt) - page_cursor = 'page_cursor_example' # str | Cursor of the required page (optional) - page_size = 100 # float | Maximum number of items in the page (optional) (default to 100) - start_time = 1625097600000 # float | Start time in milliseconds since epoch to filter by notifications created after this time (default 31 days ago) (optional) - end_time = 1625017600000 # float | End time in milliseconds since epoch to filter by notifications created before this time (default current time) (optional) - statuses = [fireblocks.NotificationStatus()] # List[NotificationStatus] | List of notification statuses to filter by (optional) - events = [fireblocks.WebhookEvent()] # List[WebhookEvent] | List of webhook event types to filter by (optional) - resource_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | Resource ID to filter by (optional) - - try: - # Get all notifications by webhook id - api_response = fireblocks.webhooks_v2.get_notifications(webhook_id, order=order, sort_by=sort_by, page_cursor=page_cursor, page_size=page_size, start_time=start_time, end_time=end_time, statuses=statuses, events=events, resource_id=resource_id).result() - print("The response of WebhooksV2Api->get_notifications:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling WebhooksV2Api->get_notifications: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **webhook_id** | **str**| | - **order** | **str**| ASC / DESC ordering (default DESC) | [optional] [default to DESC] - **sort_by** | **str**| Sort by field | [optional] [default to updatedAt] - **page_cursor** | **str**| Cursor of the required page | [optional] - **page_size** | **float**| Maximum number of items in the page | [optional] [default to 100] - **start_time** | **float**| Start time in milliseconds since epoch to filter by notifications created after this time (default 31 days ago) | [optional] - **end_time** | **float**| End time in milliseconds since epoch to filter by notifications created before this time (default current time) | [optional] - **statuses** | [**List[NotificationStatus]**](NotificationStatus.md)| List of notification statuses to filter by | [optional] - **events** | [**List[WebhookEvent]**](WebhookEvent.md)| List of webhook event types to filter by | [optional] - **resource_id** | **str**| Resource ID to filter by | [optional] - -### Return type - -[**NotificationPaginatedResponse**](NotificationPaginatedResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A paginated response containing NotificationExternalDTO objects | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_resend_job_status** -> ResendFailedNotificationsJobStatusResponse get_resend_job_status(webhook_id, job_id) - -Get resend job status - -Get the status of a resend job - - -### Example - - -```python -from fireblocks.models.resend_failed_notifications_job_status_response import ResendFailedNotificationsJobStatusResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - webhook_id = 'webhook_id_example' # str | The ID of the webhook - job_id = 'job_id_example' # str | The ID of the resend job - - try: - # Get resend job status - api_response = fireblocks.webhooks_v2.get_resend_job_status(webhook_id, job_id).result() - print("The response of WebhooksV2Api->get_resend_job_status:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling WebhooksV2Api->get_resend_job_status: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **webhook_id** | **str**| The ID of the webhook | - **job_id** | **str**| The ID of the resend job | - -### Return type - -[**ResendFailedNotificationsJobStatusResponse**](ResendFailedNotificationsJobStatusResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Job status | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_webhook** -> Webhook get_webhook(webhook_id) - -Get webhook by id - -Retrieve a webhook by its id - - -### Example - - -```python -from fireblocks.models.webhook import Webhook -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - webhook_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the webhook - - try: - # Get webhook by id - api_response = fireblocks.webhooks_v2.get_webhook(webhook_id).result() - print("The response of WebhooksV2Api->get_webhook:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling WebhooksV2Api->get_webhook: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **webhook_id** | **str**| The unique identifier of the webhook | - -### Return type - -[**Webhook**](Webhook.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A webhook object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **get_webhooks** -> WebhookPaginatedResponse get_webhooks(order=order, page_cursor=page_cursor, page_size=page_size) - -Get all webhooks - -Get all webhooks (paginated). - - -### Example - - -```python -from fireblocks.models.webhook_paginated_response import WebhookPaginatedResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - order = DESC # str | ASC / DESC ordering (default DESC) (optional) (default to DESC) - page_cursor = 'page_cursor_example' # str | Cursor of the required page (optional) - page_size = 10 # float | Maximum number of items in the page (optional) (default to 10) - - try: - # Get all webhooks - api_response = fireblocks.webhooks_v2.get_webhooks(order=order, page_cursor=page_cursor, page_size=page_size).result() - print("The response of WebhooksV2Api->get_webhooks:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling WebhooksV2Api->get_webhooks: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **order** | **str**| ASC / DESC ordering (default DESC) | [optional] [default to DESC] - **page_cursor** | **str**| Cursor of the required page | [optional] - **page_size** | **float**| Maximum number of items in the page | [optional] [default to 10] - -### Return type - -[**WebhookPaginatedResponse**](WebhookPaginatedResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | A paginated response containing WebhookDto objects | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **resend_failed_notifications** -> ResendFailedNotificationsResponse resend_failed_notifications(webhook_id, resend_failed_notifications_request, idempotency_key=idempotency_key) - -Resend failed notifications - -Resend all failed notifications for a webhook in the last 24 hours - -Endpoint Permission: Owner, Admin, Non-Signing Admin, Editor, Signer. - - -### Example - - -```python -from fireblocks.models.resend_failed_notifications_request import ResendFailedNotificationsRequest -from fireblocks.models.resend_failed_notifications_response import ResendFailedNotificationsResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - webhook_id = 'webhook_id_example' # str | The ID of the webhook - resend_failed_notifications_request = fireblocks.ResendFailedNotificationsRequest() # ResendFailedNotificationsRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Resend failed notifications - api_response = fireblocks.webhooks_v2.resend_failed_notifications(webhook_id, resend_failed_notifications_request, idempotency_key=idempotency_key).result() - print("The response of WebhooksV2Api->resend_failed_notifications:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling WebhooksV2Api->resend_failed_notifications: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **webhook_id** | **str**| The ID of the webhook | - **resend_failed_notifications_request** | [**ResendFailedNotificationsRequest**](ResendFailedNotificationsRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -[**ResendFailedNotificationsResponse**](ResendFailedNotificationsResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | No failed notifications to resend | * X-Request-ID -
| -**202** | Resend failed notifications request was accepted and is being processed | * X-Request-ID -
* Location -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **resend_notification_by_id** -> resend_notification_by_id(webhook_id, notification_id, idempotency_key=idempotency_key) - -Resend notification by id - -Resend notification by ID - -Endpoint Permission: Owner, Admin, Non-Signing Admin, Editor, Signer. - - -### Example - - -```python -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - webhook_id = 'webhook_id_example' # str | The ID of the webhook - notification_id = 'notification_id_example' # str | The ID of the notification - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Resend notification by id - fireblocks.webhooks_v2.resend_notification_by_id(webhook_id, notification_id, idempotency_key=idempotency_key).result() - except Exception as e: - print("Exception when calling WebhooksV2Api->resend_notification_by_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **webhook_id** | **str**| The ID of the webhook | - **notification_id** | **str**| The ID of the notification | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**202** | Resend notification request was accepted and is being processed | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **resend_notifications_by_resource_id** -> resend_notifications_by_resource_id(webhook_id, resend_notifications_by_resource_id_request, idempotency_key=idempotency_key) - -Resend notifications by resource Id - -Resend notifications by resource Id - -Endpoint Permission: Owner, Admin, Non-Signing Admin, Editor, Signer. - - -### Example - - -```python -from fireblocks.models.resend_notifications_by_resource_id_request import ResendNotificationsByResourceIdRequest -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - webhook_id = 'webhook_id_example' # str | The ID of the webhook - resend_notifications_by_resource_id_request = fireblocks.ResendNotificationsByResourceIdRequest() # ResendNotificationsByResourceIdRequest | - idempotency_key = 'idempotency_key_example' # str | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. (optional) - - try: - # Resend notifications by resource Id - fireblocks.webhooks_v2.resend_notifications_by_resource_id(webhook_id, resend_notifications_by_resource_id_request, idempotency_key=idempotency_key).result() - except Exception as e: - print("Exception when calling WebhooksV2Api->resend_notifications_by_resource_id: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **webhook_id** | **str**| The ID of the webhook | - **resend_notifications_by_resource_id_request** | [**ResendNotificationsByResourceIdRequest**](ResendNotificationsByResourceIdRequest.md)| | - **idempotency_key** | **str**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] - -### Return type - -void (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**202** | Resend notifications by resource request was accepted and is being processed | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **update_webhook** -> Webhook update_webhook(webhook_id, update_webhook_request) - -Update webhook - -Update a webhook by its id - -Endpoint Permission: Owner, Admin, Non-Signing Admin. - - -### Example - - -```python -from fireblocks.models.update_webhook_request import UpdateWebhookRequest -from fireblocks.models.webhook import Webhook -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - webhook_id = '44fcead0-7053-4831-a53a-df7fb90d440f' # str | The unique identifier of the webhook - update_webhook_request = fireblocks.UpdateWebhookRequest() # UpdateWebhookRequest | - - try: - # Update webhook - api_response = fireblocks.webhooks_v2.update_webhook(webhook_id, update_webhook_request).result() - print("The response of WebhooksV2Api->update_webhook:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling WebhooksV2Api->update_webhook: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **webhook_id** | **str**| The unique identifier of the webhook | - **update_webhook_request** | [**UpdateWebhookRequest**](UpdateWebhookRequest.md)| | - -### Return type - -[**Webhook**](Webhook.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Updated webhook object | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLldlYmhvb2tzVjJBcGkKCkFsbCBVUklzIGFyZSByZWxhdGl2ZSB0byAqaHR0cHM6Ly9hcGkuZmlyZWJsb2Nrcy5pby92MSoKCk1ldGhvZCB8IEhUVFAgcmVxdWVzdCB8IERlc2NyaXB0aW9uCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQpbKipjcmVhdGVfd2ViaG9vayoqXShXZWJob29rc1YyQXBpLm1kI2NyZWF0ZV93ZWJob29rKSB8ICoqUE9TVCoqIC93ZWJob29rcyB8IENyZWF0ZSBhIG5ldyB3ZWJob29rClsqKmRlbGV0ZV93ZWJob29rKipdKFdlYmhvb2tzVjJBcGkubWQjZGVsZXRlX3dlYmhvb2spIHwgKipERUxFVEUqKiAvd2ViaG9va3Mve3dlYmhvb2tJZH0gfCBEZWxldGUgd2ViaG9vawpbKipnZXRfbWV0cmljcyoqXShXZWJob29rc1YyQXBpLm1kI2dldF9tZXRyaWNzKSB8ICoqR0VUKiogL3dlYmhvb2tzL3t3ZWJob29rSWR9L21ldHJpY3Mve21ldHJpY05hbWV9IHwgR2V0IHdlYmhvb2sgbWV0cmljcwpbKipnZXRfbm90aWZpY2F0aW9uKipdKFdlYmhvb2tzVjJBcGkubWQjZ2V0X25vdGlmaWNhdGlvbikgfCAqKkdFVCoqIC93ZWJob29rcy97d2ViaG9va0lkfS9ub3RpZmljYXRpb25zL3tub3RpZmljYXRpb25JZH0gfCBHZXQgbm90aWZpY2F0aW9uIGJ5IGlkClsqKmdldF9ub3RpZmljYXRpb25fYXR0ZW1wdHMqKl0oV2ViaG9va3NWMkFwaS5tZCNnZXRfbm90aWZpY2F0aW9uX2F0dGVtcHRzKSB8ICoqR0VUKiogL3dlYmhvb2tzL3t3ZWJob29rSWR9L25vdGlmaWNhdGlvbnMve25vdGlmaWNhdGlvbklkfS9hdHRlbXB0cyB8IEdldCBub3RpZmljYXRpb24gYXR0ZW1wdHMKWyoqZ2V0X25vdGlmaWNhdGlvbnMqKl0oV2ViaG9va3NWMkFwaS5tZCNnZXRfbm90aWZpY2F0aW9ucykgfCAqKkdFVCoqIC93ZWJob29rcy97d2ViaG9va0lkfS9ub3RpZmljYXRpb25zIHwgR2V0IGFsbCBub3RpZmljYXRpb25zIGJ5IHdlYmhvb2sgaWQKWyoqZ2V0X3Jlc2VuZF9qb2Jfc3RhdHVzKipdKFdlYmhvb2tzVjJBcGkubWQjZ2V0X3Jlc2VuZF9qb2Jfc3RhdHVzKSB8ICoqR0VUKiogL3dlYmhvb2tzL3t3ZWJob29rSWR9L25vdGlmaWNhdGlvbnMvcmVzZW5kX2ZhaWxlZC9qb2JzL3tqb2JJZH0gfCBHZXQgcmVzZW5kIGpvYiBzdGF0dXMKWyoqZ2V0X3dlYmhvb2sqKl0oV2ViaG9va3NWMkFwaS5tZCNnZXRfd2ViaG9vaykgfCAqKkdFVCoqIC93ZWJob29rcy97d2ViaG9va0lkfSB8IEdldCB3ZWJob29rIGJ5IGlkClsqKmdldF93ZWJob29rcyoqXShXZWJob29rc1YyQXBpLm1kI2dldF93ZWJob29rcykgfCAqKkdFVCoqIC93ZWJob29rcyB8IEdldCBhbGwgd2ViaG9va3MKWyoqcmVzZW5kX2ZhaWxlZF9ub3RpZmljYXRpb25zKipdKFdlYmhvb2tzVjJBcGkubWQjcmVzZW5kX2ZhaWxlZF9ub3RpZmljYXRpb25zKSB8ICoqUE9TVCoqIC93ZWJob29rcy97d2ViaG9va0lkfS9ub3RpZmljYXRpb25zL3Jlc2VuZF9mYWlsZWQgfCBSZXNlbmQgZmFpbGVkIG5vdGlmaWNhdGlvbnMKWyoqcmVzZW5kX25vdGlmaWNhdGlvbl9ieV9pZCoqXShXZWJob29rc1YyQXBpLm1kI3Jlc2VuZF9ub3RpZmljYXRpb25fYnlfaWQpIHwgKipQT1NUKiogL3dlYmhvb2tzL3t3ZWJob29rSWR9L25vdGlmaWNhdGlvbnMve25vdGlmaWNhdGlvbklkfS9yZXNlbmQgfCBSZXNlbmQgbm90aWZpY2F0aW9uIGJ5IGlkClsqKnJlc2VuZF9ub3RpZmljYXRpb25zX2J5X3Jlc291cmNlX2lkKipdKFdlYmhvb2tzVjJBcGkubWQjcmVzZW5kX25vdGlmaWNhdGlvbnNfYnlfcmVzb3VyY2VfaWQpIHwgKipQT1NUKiogL3dlYmhvb2tzL3t3ZWJob29rSWR9L25vdGlmaWNhdGlvbnMvcmVzZW5kX2J5X3Jlc291cmNlIHwgUmVzZW5kIG5vdGlmaWNhdGlvbnMgYnkgcmVzb3VyY2UgSWQKWyoqdXBkYXRlX3dlYmhvb2sqKl0oV2ViaG9va3NWMkFwaS5tZCN1cGRhdGVfd2ViaG9vaykgfCAqKlBBVENIKiogL3dlYmhvb2tzL3t3ZWJob29rSWR9IHwgVXBkYXRlIHdlYmhvb2sKCgojICoqY3JlYXRlX3dlYmhvb2sqKgo+IFdlYmhvb2sgY3JlYXRlX3dlYmhvb2soY3JlYXRlX3dlYmhvb2tfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKCkNyZWF0ZSBhIG5ldyB3ZWJob29rCgpDcmVhdGVzIGEgbmV3IHdlYmhvb2ssIHdoaWNoIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIHRoZSBzcGVjaWZpZWQgZXZlbnRzCgoqKkVuZHBvaW50IFBlcm1pc3Npb25zOioqIE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4uCgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfd2ViaG9va19yZXF1ZXN0IGltcG9ydCBDcmVhdGVXZWJob29rUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLndlYmhvb2sgaW1wb3J0IFdlYmhvb2sKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgY3JlYXRlX3dlYmhvb2tfcmVxdWVzdCA9IGZpcmVibG9ja3MuQ3JlYXRlV2ViaG9va1JlcXVlc3QoKSAjIENyZWF0ZVdlYmhvb2tSZXF1ZXN0IHwgCiAgICBpZGVtcG90ZW5jeV9rZXkgPSAnaWRlbXBvdGVuY3lfa2V5X2V4YW1wbGUnICMgc3RyIHwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgQ3JlYXRlIGEgbmV3IHdlYmhvb2sKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLndlYmhvb2tzX3YyLmNyZWF0ZV93ZWJob29rKGNyZWF0ZV93ZWJob29rX3JlcXVlc3QsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBXZWJob29rc1YyQXBpLT5jcmVhdGVfd2ViaG9vazpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBXZWJob29rc1YyQXBpLT5jcmVhdGVfd2ViaG9vazogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqY3JlYXRlX3dlYmhvb2tfcmVxdWVzdCoqIHwgWyoqQ3JlYXRlV2ViaG9va1JlcXVlc3QqKl0oQ3JlYXRlV2ViaG9va1JlcXVlc3QubWQpfCAgfCAKICoqaWRlbXBvdGVuY3lfa2V5KiogfCAqKnN0cioqfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIHwgW29wdGlvbmFsXSAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqV2ViaG9vayoqXShXZWJob29rLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAxKiogfCBjcmVhdGVkIG5ldyB3ZWJob29rIHN1Y2Nlc3NmdWxseSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZGVsZXRlX3dlYmhvb2sqKgo+IFdlYmhvb2sgZGVsZXRlX3dlYmhvb2sod2ViaG9va19pZCkKCkRlbGV0ZSB3ZWJob29rCgpEZWxldGUgYSB3ZWJob29rIGJ5IGl0cyBpZAoKRW5kcG9pbnQgUGVybWlzc2lvbjogT3duZXIsIEFkbWluLCBOb24tU2lnbmluZyBBZG1pbi4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndlYmhvb2sgaW1wb3J0IFdlYmhvb2sKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgd2ViaG9va19pZCA9ICc0NGZjZWFkMC03MDUzLTQ4MzEtYTUzYS1kZjdmYjkwZDQ0MGYnICMgc3RyIHwgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSB3ZWJob29rCgogICAgdHJ5OgogICAgICAgICMgRGVsZXRlIHdlYmhvb2sKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLndlYmhvb2tzX3YyLmRlbGV0ZV93ZWJob29rKHdlYmhvb2tfaWQpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBXZWJob29rc1YyQXBpLT5kZWxldGVfd2ViaG9vazpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBXZWJob29rc1YyQXBpLT5kZWxldGVfd2ViaG9vazogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqd2ViaG9va19pZCoqIHwgKipzdHIqKnwgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSB3ZWJob29rIHwgCgojIyMgUmV0dXJuIHR5cGUKClsqKldlYmhvb2sqKl0oV2ViaG9vay5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IERlbGV0ZWQgd2ViaG9vayBvYmplY3QgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9tZXRyaWNzKioKPiBXZWJob29rTWV0cmljIGdldF9tZXRyaWNzKHdlYmhvb2tfaWQsIG1ldHJpY19uYW1lKQoKR2V0IHdlYmhvb2sgbWV0cmljcwoKR2V0IHdlYmhvb2sgbWV0cmljcyBieSB3ZWJob29rIGlkIGFuZCBtZXRyaWMgbmFtZQoKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud2ViaG9va19tZXRyaWMgaW1wb3J0IFdlYmhvb2tNZXRyaWMKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgd2ViaG9va19pZCA9ICc0NGZjZWFkMC03MDUzLTQ4MzEtYTUzYS1kZjdmYjkwZDQ0MGYnICMgc3RyIHwgCiAgICBtZXRyaWNfbmFtZSA9ICdMQVNUX0FDVElWRV9IT1VSX0VSUk9SX1JBVEUnICMgc3RyIHwgTmFtZSBvZiB0aGUgbWV0cmljIHRvIHJldHJpZXZlCgogICAgdHJ5OgogICAgICAgICMgR2V0IHdlYmhvb2sgbWV0cmljcwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Mud2ViaG9va3NfdjIuZ2V0X21ldHJpY3Mod2ViaG9va19pZCwgbWV0cmljX25hbWUpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBXZWJob29rc1YyQXBpLT5nZXRfbWV0cmljczpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBXZWJob29rc1YyQXBpLT5nZXRfbWV0cmljczogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqd2ViaG9va19pZCoqIHwgKipzdHIqKnwgIHwgCiAqKm1ldHJpY19uYW1lKiogfCAqKnN0cioqfCBOYW1lIG9mIHRoZSBtZXRyaWMgdG8gcmV0cmlldmUgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqV2ViaG9va01ldHJpYyoqXShXZWJob29rTWV0cmljLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgV2ViaG9vayBtZXRyaWNzIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfbm90aWZpY2F0aW9uKioKPiBOb3RpZmljYXRpb25XaXRoRGF0YSBnZXRfbm90aWZpY2F0aW9uKHdlYmhvb2tfaWQsIG5vdGlmaWNhdGlvbl9pZCwgaW5jbHVkZV9kYXRhPWluY2x1ZGVfZGF0YSkKCkdldCBub3RpZmljYXRpb24gYnkgaWQKCkdldCBub3RpZmljYXRpb24gYnkgaWQKCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vdGlmaWNhdGlvbl93aXRoX2RhdGEgaW1wb3J0IE5vdGlmaWNhdGlvbldpdGhEYXRhCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHdlYmhvb2tfaWQgPSAnd2ViaG9va19pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgd2ViaG9vayB0byBmZXRjaAogICAgbm90aWZpY2F0aW9uX2lkID0gJ25vdGlmaWNhdGlvbl9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgbm90aWZpY2F0aW9uIHRvIGZldGNoCiAgICBpbmNsdWRlX2RhdGEgPSBUcnVlICMgYm9vbCB8IEluY2x1ZGUgdGhlIGRhdGEgb2YgdGhlIG5vdGlmaWNhdGlvbiAob3B0aW9uYWwpCgogICAgdHJ5OgogICAgICAgICMgR2V0IG5vdGlmaWNhdGlvbiBieSBpZAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Mud2ViaG9va3NfdjIuZ2V0X25vdGlmaWNhdGlvbih3ZWJob29rX2lkLCBub3RpZmljYXRpb25faWQsIGluY2x1ZGVfZGF0YT1pbmNsdWRlX2RhdGEpLnJlc3VsdCgpCiAgICAgICAgcHJpbnQoIlRoZSByZXNwb25zZSBvZiBXZWJob29rc1YyQXBpLT5nZXRfbm90aWZpY2F0aW9uOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFdlYmhvb2tzVjJBcGktPmdldF9ub3RpZmljYXRpb246ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKndlYmhvb2tfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgd2ViaG9vayB0byBmZXRjaCB8IAogKipub3RpZmljYXRpb25faWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgbm90aWZpY2F0aW9uIHRvIGZldGNoIHwgCiAqKmluY2x1ZGVfZGF0YSoqIHwgKipib29sKip8IEluY2x1ZGUgdGhlIGRhdGEgb2YgdGhlIG5vdGlmaWNhdGlvbiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKClsqKk5vdGlmaWNhdGlvbldpdGhEYXRhKipdKE5vdGlmaWNhdGlvbldpdGhEYXRhLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgT0sgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKmdldF9ub3RpZmljYXRpb25fYXR0ZW1wdHMqKgo+IE5vdGlmaWNhdGlvbkF0dGVtcHRzUGFnaW5hdGVkUmVzcG9uc2UgZ2V0X25vdGlmaWNhdGlvbl9hdHRlbXB0cyh3ZWJob29rX2lkLCBub3RpZmljYXRpb25faWQsIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplKQoKR2V0IG5vdGlmaWNhdGlvbiBhdHRlbXB0cwoKR2V0IG5vdGlmaWNhdGlvbiBhdHRlbXB0cyBieSBub3RpZmljYXRpb24gaWQKCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vdGlmaWNhdGlvbl9hdHRlbXB0c19wYWdpbmF0ZWRfcmVzcG9uc2UgaW1wb3J0IE5vdGlmaWNhdGlvbkF0dGVtcHRzUGFnaW5hdGVkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgd2ViaG9va19pZCA9ICd3ZWJob29rX2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSB3ZWJob29rIHRvIGZldGNoCiAgICBub3RpZmljYXRpb25faWQgPSAnbm90aWZpY2F0aW9uX2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBub3RpZmljYXRpb24gdG8gZmV0Y2gKICAgIHBhZ2VfY3Vyc29yID0gJ3BhZ2VfY3Vyc29yX2V4YW1wbGUnICMgc3RyIHwgQ3Vyc29yIG9mIHRoZSByZXF1aXJlZCBwYWdlIChvcHRpb25hbCkKICAgIHBhZ2Vfc2l6ZSA9IDEwICMgZmxvYXQgfCBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgcGFnZSAob3B0aW9uYWwpIChkZWZhdWx0IHRvIDEwKQoKICAgIHRyeToKICAgICAgICAjIEdldCBub3RpZmljYXRpb24gYXR0ZW1wdHMKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLndlYmhvb2tzX3YyLmdldF9ub3RpZmljYXRpb25fYXR0ZW1wdHMod2ViaG9va19pZCwgbm90aWZpY2F0aW9uX2lkLCBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwgcGFnZV9zaXplPXBhZ2Vfc2l6ZSkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFdlYmhvb2tzVjJBcGktPmdldF9ub3RpZmljYXRpb25fYXR0ZW1wdHM6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgV2ViaG9va3NWMkFwaS0+Z2V0X25vdGlmaWNhdGlvbl9hdHRlbXB0czogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqd2ViaG9va19pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSB3ZWJob29rIHRvIGZldGNoIHwgCiAqKm5vdGlmaWNhdGlvbl9pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSBub3RpZmljYXRpb24gdG8gZmV0Y2ggfCAKICoqcGFnZV9jdXJzb3IqKiB8ICoqc3RyKip8IEN1cnNvciBvZiB0aGUgcmVxdWlyZWQgcGFnZSB8IFtvcHRpb25hbF0gCiAqKnBhZ2Vfc2l6ZSoqIHwgKipmbG9hdCoqfCBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgcGFnZSB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gMTBdCgojIyMgUmV0dXJuIHR5cGUKClsqKk5vdGlmaWNhdGlvbkF0dGVtcHRzUGFnaW5hdGVkUmVzcG9uc2UqKl0oTm90aWZpY2F0aW9uQXR0ZW1wdHNQYWdpbmF0ZWRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IE9LIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfbm90aWZpY2F0aW9ucyoqCj4gTm90aWZpY2F0aW9uUGFnaW5hdGVkUmVzcG9uc2UgZ2V0X25vdGlmaWNhdGlvbnMod2ViaG9va19pZCwgb3JkZXI9b3JkZXIsIHNvcnRfYnk9c29ydF9ieSwgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsIHN0YXJ0X3RpbWU9c3RhcnRfdGltZSwgZW5kX3RpbWU9ZW5kX3RpbWUsIHN0YXR1c2VzPXN0YXR1c2VzLCBldmVudHM9ZXZlbnRzLCByZXNvdXJjZV9pZD1yZXNvdXJjZV9pZCkKCkdldCBhbGwgbm90aWZpY2F0aW9ucyBieSB3ZWJob29rIGlkCgpHZXQgYWxsIG5vdGlmaWNhdGlvbnMgYnkgd2ViaG9vayBpZCAocGFnaW5hdGVkKQoKCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubm90aWZpY2F0aW9uX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgTm90aWZpY2F0aW9uUGFnaW5hdGVkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ub3RpZmljYXRpb25fc3RhdHVzIGltcG9ydCBOb3RpZmljYXRpb25TdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53ZWJob29rX2V2ZW50IGltcG9ydCBXZWJob29rRXZlbnQKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgd2ViaG9va19pZCA9ICc0NGZjZWFkMC03MDUzLTQ4MzEtYTUzYS1kZjdmYjkwZDQ0MGYnICMgc3RyIHwgCiAgICBvcmRlciA9IERFU0MgIyBzdHIgfCBBU0MgLyBERVNDIG9yZGVyaW5nIChkZWZhdWx0IERFU0MpIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gREVTQykKICAgIHNvcnRfYnkgPSB1cGRhdGVkQXQgIyBzdHIgfCBTb3J0IGJ5IGZpZWxkIChvcHRpb25hbCkgKGRlZmF1bHQgdG8gdXBkYXRlZEF0KQogICAgcGFnZV9jdXJzb3IgPSAncGFnZV9jdXJzb3JfZXhhbXBsZScgIyBzdHIgfCBDdXJzb3Igb2YgdGhlIHJlcXVpcmVkIHBhZ2UgKG9wdGlvbmFsKQogICAgcGFnZV9zaXplID0gMTAwICMgZmxvYXQgfCBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgcGFnZSAob3B0aW9uYWwpIChkZWZhdWx0IHRvIDEwMCkKICAgIHN0YXJ0X3RpbWUgPSAxNjI1MDk3NjAwMDAwICMgZmxvYXQgfCBTdGFydCB0aW1lIGluIG1pbGxpc2Vjb25kcyBzaW5jZSBlcG9jaCB0byBmaWx0ZXIgYnkgbm90aWZpY2F0aW9ucyBjcmVhdGVkIGFmdGVyIHRoaXMgdGltZSAoZGVmYXVsdCAzMSBkYXlzIGFnbykgKG9wdGlvbmFsKQogICAgZW5kX3RpbWUgPSAxNjI1MDE3NjAwMDAwICMgZmxvYXQgfCBFbmQgdGltZSBpbiBtaWxsaXNlY29uZHMgc2luY2UgZXBvY2ggdG8gZmlsdGVyIGJ5IG5vdGlmaWNhdGlvbnMgY3JlYXRlZCBiZWZvcmUgdGhpcyB0aW1lIChkZWZhdWx0IGN1cnJlbnQgdGltZSkgKG9wdGlvbmFsKQogICAgc3RhdHVzZXMgPSBbZmlyZWJsb2Nrcy5Ob3RpZmljYXRpb25TdGF0dXMoKV0gIyBMaXN0W05vdGlmaWNhdGlvblN0YXR1c10gfCBMaXN0IG9mIG5vdGlmaWNhdGlvbiBzdGF0dXNlcyB0byBmaWx0ZXIgYnkgKG9wdGlvbmFsKQogICAgZXZlbnRzID0gW2ZpcmVibG9ja3MuV2ViaG9va0V2ZW50KCldICMgTGlzdFtXZWJob29rRXZlbnRdIHwgTGlzdCBvZiB3ZWJob29rIGV2ZW50IHR5cGVzIHRvIGZpbHRlciBieSAob3B0aW9uYWwpCiAgICByZXNvdXJjZV9pZCA9ICc0NGZjZWFkMC03MDUzLTQ4MzEtYTUzYS1kZjdmYjkwZDQ0MGYnICMgc3RyIHwgUmVzb3VyY2UgSUQgdG8gZmlsdGVyIGJ5IChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgYWxsIG5vdGlmaWNhdGlvbnMgYnkgd2ViaG9vayBpZAogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Mud2ViaG9va3NfdjIuZ2V0X25vdGlmaWNhdGlvbnMod2ViaG9va19pZCwgb3JkZXI9b3JkZXIsIHNvcnRfYnk9c29ydF9ieSwgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsIHN0YXJ0X3RpbWU9c3RhcnRfdGltZSwgZW5kX3RpbWU9ZW5kX3RpbWUsIHN0YXR1c2VzPXN0YXR1c2VzLCBldmVudHM9ZXZlbnRzLCByZXNvdXJjZV9pZD1yZXNvdXJjZV9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFdlYmhvb2tzVjJBcGktPmdldF9ub3RpZmljYXRpb25zOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFdlYmhvb2tzVjJBcGktPmdldF9ub3RpZmljYXRpb25zOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip3ZWJob29rX2lkKiogfCAqKnN0cioqfCAgfCAKICoqb3JkZXIqKiB8ICoqc3RyKip8IEFTQyAvIERFU0Mgb3JkZXJpbmcgKGRlZmF1bHQgREVTQykgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIERFU0NdCiAqKnNvcnRfYnkqKiB8ICoqc3RyKip8IFNvcnQgYnkgZmllbGQgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIHVwZGF0ZWRBdF0KICoqcGFnZV9jdXJzb3IqKiB8ICoqc3RyKip8IEN1cnNvciBvZiB0aGUgcmVxdWlyZWQgcGFnZSB8IFtvcHRpb25hbF0gCiAqKnBhZ2Vfc2l6ZSoqIHwgKipmbG9hdCoqfCBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgcGFnZSB8IFtvcHRpb25hbF0gW2RlZmF1bHQgdG8gMTAwXQogKipzdGFydF90aW1lKiogfCAqKmZsb2F0Kip8IFN0YXJ0IHRpbWUgaW4gbWlsbGlzZWNvbmRzIHNpbmNlIGVwb2NoIHRvIGZpbHRlciBieSBub3RpZmljYXRpb25zIGNyZWF0ZWQgYWZ0ZXIgdGhpcyB0aW1lIChkZWZhdWx0IDMxIGRheXMgYWdvKSB8IFtvcHRpb25hbF0gCiAqKmVuZF90aW1lKiogfCAqKmZsb2F0Kip8IEVuZCB0aW1lIGluIG1pbGxpc2Vjb25kcyBzaW5jZSBlcG9jaCB0byBmaWx0ZXIgYnkgbm90aWZpY2F0aW9ucyBjcmVhdGVkIGJlZm9yZSB0aGlzIHRpbWUgKGRlZmF1bHQgY3VycmVudCB0aW1lKSB8IFtvcHRpb25hbF0gCiAqKnN0YXR1c2VzKiogfCBbKipMaXN0W05vdGlmaWNhdGlvblN0YXR1c10qKl0oTm90aWZpY2F0aW9uU3RhdHVzLm1kKXwgTGlzdCBvZiBub3RpZmljYXRpb24gc3RhdHVzZXMgdG8gZmlsdGVyIGJ5IHwgW29wdGlvbmFsXSAKICoqZXZlbnRzKiogfCBbKipMaXN0W1dlYmhvb2tFdmVudF0qKl0oV2ViaG9va0V2ZW50Lm1kKXwgTGlzdCBvZiB3ZWJob29rIGV2ZW50IHR5cGVzIHRvIGZpbHRlciBieSB8IFtvcHRpb25hbF0gCiAqKnJlc291cmNlX2lkKiogfCAqKnN0cioqfCBSZXNvdXJjZSBJRCB0byBmaWx0ZXIgYnkgfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipOb3RpZmljYXRpb25QYWdpbmF0ZWRSZXNwb25zZSoqXShOb3RpZmljYXRpb25QYWdpbmF0ZWRSZXNwb25zZS5tZCkKCiMjIyBBdXRob3JpemF0aW9uCgpObyBhdXRob3JpemF0aW9uIHJlcXVpcmVkCgojIyMgSFRUUCByZXF1ZXN0IGhlYWRlcnMKCiAtICoqQ29udGVudC1UeXBlKio6IE5vdCBkZWZpbmVkCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDAqKiB8IEEgcGFnaW5hdGVkIHJlc3BvbnNlIGNvbnRhaW5pbmcgTm90aWZpY2F0aW9uRXh0ZXJuYWxEVE8gb2JqZWN0cyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X3Jlc2VuZF9qb2Jfc3RhdHVzKioKPiBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zSm9iU3RhdHVzUmVzcG9uc2UgZ2V0X3Jlc2VuZF9qb2Jfc3RhdHVzKHdlYmhvb2tfaWQsIGpvYl9pZCkKCkdldCByZXNlbmQgam9iIHN0YXR1cwoKR2V0IHRoZSBzdGF0dXMgb2YgYSByZXNlbmQgam9iCgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZXNlbmRfZmFpbGVkX25vdGlmaWNhdGlvbnNfam9iX3N0YXR1c19yZXNwb25zZSBpbXBvcnQgUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc0pvYlN0YXR1c1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHdlYmhvb2tfaWQgPSAnd2ViaG9va19pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgd2ViaG9vawogICAgam9iX2lkID0gJ2pvYl9pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgcmVzZW5kIGpvYgoKICAgIHRyeToKICAgICAgICAjIEdldCByZXNlbmQgam9iIHN0YXR1cwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Mud2ViaG9va3NfdjIuZ2V0X3Jlc2VuZF9qb2Jfc3RhdHVzKHdlYmhvb2tfaWQsIGpvYl9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFdlYmhvb2tzVjJBcGktPmdldF9yZXNlbmRfam9iX3N0YXR1czpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBXZWJob29rc1YyQXBpLT5nZXRfcmVzZW5kX2pvYl9zdGF0dXM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKndlYmhvb2tfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgd2ViaG9vayB8IAogKipqb2JfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgcmVzZW5kIGpvYiB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zSm9iU3RhdHVzUmVzcG9uc2UqKl0oUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc0pvYlN0YXR1c1Jlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgSm9iIHN0YXR1cyB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqZ2V0X3dlYmhvb2sqKgo+IFdlYmhvb2sgZ2V0X3dlYmhvb2sod2ViaG9va19pZCkKCkdldCB3ZWJob29rIGJ5IGlkCgpSZXRyaWV2ZSBhIHdlYmhvb2sgYnkgaXRzIGlkCgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53ZWJob29rIGltcG9ydCBXZWJob29rCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHdlYmhvb2tfaWQgPSAnNDRmY2VhZDAtNzA1My00ODMxLWE1M2EtZGY3ZmI5MGQ0NDBmJyAjIHN0ciB8IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgd2ViaG9vawoKICAgIHRyeToKICAgICAgICAjIEdldCB3ZWJob29rIGJ5IGlkCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy53ZWJob29rc192Mi5nZXRfd2ViaG9vayh3ZWJob29rX2lkKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgV2ViaG9va3NWMkFwaS0+Z2V0X3dlYmhvb2s6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgV2ViaG9va3NWMkFwaS0+Z2V0X3dlYmhvb2s6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKndlYmhvb2tfaWQqKiB8ICoqc3RyKip8IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgd2ViaG9vayB8IAoKIyMjIFJldHVybiB0eXBlCgpbKipXZWJob29rKipdKFdlYmhvb2subWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBBIHdlYmhvb2sgb2JqZWN0IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipnZXRfd2ViaG9va3MqKgo+IFdlYmhvb2tQYWdpbmF0ZWRSZXNwb25zZSBnZXRfd2ViaG9va3Mob3JkZXI9b3JkZXIsIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplKQoKR2V0IGFsbCB3ZWJob29rcwoKR2V0IGFsbCB3ZWJob29rcyAocGFnaW5hdGVkKS4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndlYmhvb2tfcGFnaW5hdGVkX3Jlc3BvbnNlIGltcG9ydCBXZWJob29rUGFnaW5hdGVkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgb3JkZXIgPSBERVNDICMgc3RyIHwgQVNDIC8gREVTQyBvcmRlcmluZyAoZGVmYXVsdCBERVNDKSAob3B0aW9uYWwpIChkZWZhdWx0IHRvIERFU0MpCiAgICBwYWdlX2N1cnNvciA9ICdwYWdlX2N1cnNvcl9leGFtcGxlJyAjIHN0ciB8IEN1cnNvciBvZiB0aGUgcmVxdWlyZWQgcGFnZSAob3B0aW9uYWwpCiAgICBwYWdlX3NpemUgPSAxMCAjIGZsb2F0IHwgTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgaW4gdGhlIHBhZ2UgKG9wdGlvbmFsKSAoZGVmYXVsdCB0byAxMCkKCiAgICB0cnk6CiAgICAgICAgIyBHZXQgYWxsIHdlYmhvb2tzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy53ZWJob29rc192Mi5nZXRfd2ViaG9va3Mob3JkZXI9b3JkZXIsIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLCBwYWdlX3NpemU9cGFnZV9zaXplKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgV2ViaG9va3NWMkFwaS0+Z2V0X3dlYmhvb2tzOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFdlYmhvb2tzVjJBcGktPmdldF93ZWJob29rczogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqb3JkZXIqKiB8ICoqc3RyKip8IEFTQyAvIERFU0Mgb3JkZXJpbmcgKGRlZmF1bHQgREVTQykgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIERFU0NdCiAqKnBhZ2VfY3Vyc29yKiogfCAqKnN0cioqfCBDdXJzb3Igb2YgdGhlIHJlcXVpcmVkIHBhZ2UgfCBbb3B0aW9uYWxdIAogKipwYWdlX3NpemUqKiB8ICoqZmxvYXQqKnwgTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgaW4gdGhlIHBhZ2UgfCBbb3B0aW9uYWxdIFtkZWZhdWx0IHRvIDEwXQoKIyMjIFJldHVybiB0eXBlCgpbKipXZWJob29rUGFnaW5hdGVkUmVzcG9uc2UqKl0oV2ViaG9va1BhZ2luYXRlZFJlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgQSBwYWdpbmF0ZWQgcmVzcG9uc2UgY29udGFpbmluZyBXZWJob29rRHRvIG9iamVjdHMgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9ucyoqCj4gUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc1Jlc3BvbnNlIHJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9ucyh3ZWJob29rX2lkLCByZXNlbmRfZmFpbGVkX25vdGlmaWNhdGlvbnNfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKClJlc2VuZCBmYWlsZWQgbm90aWZpY2F0aW9ucwoKUmVzZW5kIGFsbCBmYWlsZWQgbm90aWZpY2F0aW9ucyBmb3IgYSB3ZWJob29rIGluIHRoZSBsYXN0IDI0IGhvdXJzCgpFbmRwb2ludCBQZXJtaXNzaW9uOiBPd25lciwgQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBFZGl0b3IsIFNpZ25lci4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19yZXF1ZXN0IGltcG9ydCBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19yZXNwb25zZSBpbXBvcnQgUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5jbGllbnQgaW1wb3J0IEZpcmVibG9ja3MKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAoKIyBsb2FkIHRoZSBzZWNyZXQga2V5IGNvbnRlbnQgZnJvbSBhIGZpbGUKd2l0aCBvcGVuKCd5b3VyX3NlY3JldF9rZXlfZmlsZV9wYXRoJywgJ3InKSBhcyBmaWxlOgogICAgc2VjcmV0X2tleV92YWx1ZSA9IGZpbGUucmVhZCgpCgojIGJ1aWxkIHRoZSBjb25maWd1cmF0aW9uCmNvbmZpZ3VyYXRpb24gPSBDbGllbnRDb25maWd1cmF0aW9uKAogICAgICAgIGFwaV9rZXk9InlvdXJfYXBpX2tleSIsCiAgICAgICAgc2VjcmV0X2tleT1zZWNyZXRfa2V5X3ZhbHVlLAogICAgICAgIGJhc2VfcGF0aD1CYXNlUGF0aC5TYW5kYm94LCAjIG9yIHNldCBpdCBkaXJlY3RseSB0byBhIHN0cmluZyAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgopCgoKIyBFbnRlciBhIGNvbnRleHQgd2l0aCBhbiBpbnN0YW5jZSBvZiB0aGUgQVBJIGNsaWVudAp3aXRoIEZpcmVibG9ja3MoY29uZmlndXJhdGlvbikgYXMgZmlyZWJsb2NrczoKICAgIHdlYmhvb2tfaWQgPSAnd2ViaG9va19pZF9leGFtcGxlJyAjIHN0ciB8IFRoZSBJRCBvZiB0aGUgd2ViaG9vawogICAgcmVzZW5kX2ZhaWxlZF9ub3RpZmljYXRpb25zX3JlcXVlc3QgPSBmaXJlYmxvY2tzLlJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXF1ZXN0KCkgIyBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVxdWVzdCB8IAogICAgaWRlbXBvdGVuY3lfa2V5ID0gJ2lkZW1wb3RlbmN5X2tleV9leGFtcGxlJyAjIHN0ciB8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gKG9wdGlvbmFsKQoKICAgIHRyeToKICAgICAgICAjIFJlc2VuZCBmYWlsZWQgbm90aWZpY2F0aW9ucwogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Mud2ViaG9va3NfdjIucmVzZW5kX2ZhaWxlZF9ub3RpZmljYXRpb25zKHdlYmhvb2tfaWQsIHJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19yZXF1ZXN0LCBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5KS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgV2ViaG9va3NWMkFwaS0+cmVzZW5kX2ZhaWxlZF9ub3RpZmljYXRpb25zOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFdlYmhvb2tzVjJBcGktPnJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uczogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqd2ViaG9va19pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSB3ZWJob29rIHwgCiAqKnJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19yZXF1ZXN0KiogfCBbKipSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVxdWVzdCoqXShSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVxdWVzdC5tZCl8ICB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgpbKipSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVzcG9uc2UqKl0oUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc1Jlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBObyBmYWlsZWQgbm90aWZpY2F0aW9ucyB0byByZXNlbmQgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjIwMioqIHwgUmVzZW5kIGZhaWxlZCBub3RpZmljYXRpb25zIHJlcXVlc3Qgd2FzIGFjY2VwdGVkIGFuZCBpcyBiZWluZyBwcm9jZXNzZWQgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgKiBMb2NhdGlvbiAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgojICoqcmVzZW5kX25vdGlmaWNhdGlvbl9ieV9pZCoqCj4gcmVzZW5kX25vdGlmaWNhdGlvbl9ieV9pZCh3ZWJob29rX2lkLCBub3RpZmljYXRpb25faWQsIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXkpCgpSZXNlbmQgbm90aWZpY2F0aW9uIGJ5IGlkCgpSZXNlbmQgbm90aWZpY2F0aW9uIGJ5IElECgpFbmRwb2ludCBQZXJtaXNzaW9uOiBPd25lciwgQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBFZGl0b3IsIFNpZ25lci4KCgojIyMgRXhhbXBsZQoKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgd2ViaG9va19pZCA9ICd3ZWJob29rX2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSB3ZWJob29rCiAgICBub3RpZmljYXRpb25faWQgPSAnbm90aWZpY2F0aW9uX2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBub3RpZmljYXRpb24KICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBSZXNlbmQgbm90aWZpY2F0aW9uIGJ5IGlkCiAgICAgICAgZmlyZWJsb2Nrcy53ZWJob29rc192Mi5yZXNlbmRfbm90aWZpY2F0aW9uX2J5X2lkKHdlYmhvb2tfaWQsIG5vdGlmaWNhdGlvbl9pZCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBXZWJob29rc1YyQXBpLT5yZXNlbmRfbm90aWZpY2F0aW9uX2J5X2lkOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip3ZWJob29rX2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIHdlYmhvb2sgfCAKICoqbm90aWZpY2F0aW9uX2lkKiogfCAqKnN0cioqfCBUaGUgSUQgb2YgdGhlIG5vdGlmaWNhdGlvbiB8IAogKippZGVtcG90ZW5jeV9rZXkqKiB8ICoqc3RyKip8IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4gfCBbb3B0aW9uYWxdIAoKIyMjIFJldHVybiB0eXBlCgp2b2lkIChlbXB0eSByZXNwb25zZSBib2R5KQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMioqIHwgUmVzZW5kIG5vdGlmaWNhdGlvbiByZXF1ZXN0IHdhcyBhY2NlcHRlZCBhbmQgaXMgYmVpbmcgcHJvY2Vzc2VkIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCiMgKipyZXNlbmRfbm90aWZpY2F0aW9uc19ieV9yZXNvdXJjZV9pZCoqCj4gcmVzZW5kX25vdGlmaWNhdGlvbnNfYnlfcmVzb3VyY2VfaWQod2ViaG9va19pZCwgcmVzZW5kX25vdGlmaWNhdGlvbnNfYnlfcmVzb3VyY2VfaWRfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkKClJlc2VuZCBub3RpZmljYXRpb25zIGJ5IHJlc291cmNlIElkCgpSZXNlbmQgbm90aWZpY2F0aW9ucyBieSByZXNvdXJjZSBJZAoKRW5kcG9pbnQgUGVybWlzc2lvbjogT3duZXIsIEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgRWRpdG9yLCBTaWduZXIuCgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZXNlbmRfbm90aWZpY2F0aW9uc19ieV9yZXNvdXJjZV9pZF9yZXF1ZXN0IGltcG9ydCBSZXNlbmROb3RpZmljYXRpb25zQnlSZXNvdXJjZUlkUmVxdWVzdApmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgd2ViaG9va19pZCA9ICd3ZWJob29rX2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSB3ZWJob29rCiAgICByZXNlbmRfbm90aWZpY2F0aW9uc19ieV9yZXNvdXJjZV9pZF9yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5SZXNlbmROb3RpZmljYXRpb25zQnlSZXNvdXJjZUlkUmVxdWVzdCgpICMgUmVzZW5kTm90aWZpY2F0aW9uc0J5UmVzb3VyY2VJZFJlcXVlc3QgfCAKICAgIGlkZW1wb3RlbmN5X2tleSA9ICdpZGVtcG90ZW5jeV9rZXlfZXhhbXBsZScgIyBzdHIgfCBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIChvcHRpb25hbCkKCiAgICB0cnk6CiAgICAgICAgIyBSZXNlbmQgbm90aWZpY2F0aW9ucyBieSByZXNvdXJjZSBJZAogICAgICAgIGZpcmVibG9ja3Mud2ViaG9va3NfdjIucmVzZW5kX25vdGlmaWNhdGlvbnNfYnlfcmVzb3VyY2VfaWQod2ViaG9va19pZCwgcmVzZW5kX25vdGlmaWNhdGlvbnNfYnlfcmVzb3VyY2VfaWRfcmVxdWVzdCwgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSkucmVzdWx0KCkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBXZWJob29rc1YyQXBpLT5yZXNlbmRfbm90aWZpY2F0aW9uc19ieV9yZXNvdXJjZV9pZDogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uICB8IE5vdGVzCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KICoqd2ViaG9va19pZCoqIHwgKipzdHIqKnwgVGhlIElEIG9mIHRoZSB3ZWJob29rIHwgCiAqKnJlc2VuZF9ub3RpZmljYXRpb25zX2J5X3Jlc291cmNlX2lkX3JlcXVlc3QqKiB8IFsqKlJlc2VuZE5vdGlmaWNhdGlvbnNCeVJlc291cmNlSWRSZXF1ZXN0KipdKFJlc2VuZE5vdGlmaWNhdGlvbnNCeVJlc291cmNlSWRSZXF1ZXN0Lm1kKXwgIHwgCiAqKmlkZW1wb3RlbmN5X2tleSoqIHwgKipzdHIqKnwgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiB8IFtvcHRpb25hbF0gCgojIyMgUmV0dXJuIHR5cGUKCnZvaWQgKGVtcHR5IHJlc3BvbnNlIGJvZHkpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBhcHBsaWNhdGlvbi9qc29uCiAtICoqQWNjZXB0Kio6IGFwcGxpY2F0aW9uL2pzb24KCiMjIyBIVFRQIHJlc3BvbnNlIGRldGFpbHMKCnwgU3RhdHVzIGNvZGUgfCBEZXNjcmlwdGlvbiB8IFJlc3BvbnNlIGhlYWRlcnMgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwKKioyMDIqKiB8IFJlc2VuZCBub3RpZmljYXRpb25zIGJ5IHJlc291cmNlIHJlcXVlc3Qgd2FzIGFjY2VwdGVkIGFuZCBpcyBiZWluZyBwcm9jZXNzZWQgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKIyAqKnVwZGF0ZV93ZWJob29rKioKPiBXZWJob29rIHVwZGF0ZV93ZWJob29rKHdlYmhvb2tfaWQsIHVwZGF0ZV93ZWJob29rX3JlcXVlc3QpCgpVcGRhdGUgd2ViaG9vawoKVXBkYXRlIGEgd2ViaG9vayBieSBpdHMgaWQKCkVuZHBvaW50IFBlcm1pc3Npb246IE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4uCgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51cGRhdGVfd2ViaG9va19yZXF1ZXN0IGltcG9ydCBVcGRhdGVXZWJob29rUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLndlYmhvb2sgaW1wb3J0IFdlYmhvb2sKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgd2ViaG9va19pZCA9ICc0NGZjZWFkMC03MDUzLTQ4MzEtYTUzYS1kZjdmYjkwZDQ0MGYnICMgc3RyIHwgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSB3ZWJob29rCiAgICB1cGRhdGVfd2ViaG9va19yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5VcGRhdGVXZWJob29rUmVxdWVzdCgpICMgVXBkYXRlV2ViaG9va1JlcXVlc3QgfCAKCiAgICB0cnk6CiAgICAgICAgIyBVcGRhdGUgd2ViaG9vawogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Mud2ViaG9va3NfdjIudXBkYXRlX3dlYmhvb2sod2ViaG9va19pZCwgdXBkYXRlX3dlYmhvb2tfcmVxdWVzdCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFdlYmhvb2tzVjJBcGktPnVwZGF0ZV93ZWJob29rOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFdlYmhvb2tzVjJBcGktPnVwZGF0ZV93ZWJob29rOiAlc1xuIiAlIGUpCmBgYAoKCgojIyMgUGFyYW1ldGVycwoKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gIHwgTm90ZXMKLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQogKip3ZWJob29rX2lkKiogfCAqKnN0cioqfCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHdlYmhvb2sgfCAKICoqdXBkYXRlX3dlYmhvb2tfcmVxdWVzdCoqIHwgWyoqVXBkYXRlV2ViaG9va1JlcXVlc3QqKl0oVXBkYXRlV2ViaG9va1JlcXVlc3QubWQpfCAgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqV2ViaG9vayoqXShXZWJob29rLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogYXBwbGljYXRpb24vanNvbgogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBVcGRhdGVkIHdlYmhvb2sgb2JqZWN0IHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKiowKiogfCBFcnJvciBSZXNwb25zZSB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCg== \ No newline at end of file diff --git a/docs/WhitelistIpAddressesApi.md b/docs/WhitelistIpAddressesApi.md index 8c0a0d12..c1eefd1a 100644 --- a/docs/WhitelistIpAddressesApi.md +++ b/docs/WhitelistIpAddressesApi.md @@ -1,88 +1 @@ -# fireblocks.WhitelistIpAddressesApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**get_whitelist_ip_addresses**](WhitelistIpAddressesApi.md#get_whitelist_ip_addresses) | **GET** /management/api_users/{userId}/whitelist_ip_addresses | Get whitelisted ip addresses for an API Key - - -# **get_whitelist_ip_addresses** -> GetWhitelistIpAddressesResponse get_whitelist_ip_addresses(user_id) - -Get whitelisted ip addresses for an API Key - -Get a list of the whitelisted IP addresses for a specific API Key -- Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.get_whitelist_ip_addresses_response import GetWhitelistIpAddressesResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - user_id = 'user_id_example' # str | The ID of the api user - - try: - # Get whitelisted ip addresses for an API Key - api_response = fireblocks.whitelist_ip_addresses.get_whitelist_ip_addresses(user_id).result() - print("The response of WhitelistIpAddressesApi->get_whitelist_ip_addresses:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling WhitelistIpAddressesApi->get_whitelist_ip_addresses: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **user_id** | **str**| The ID of the api user | - -### Return type - -[**GetWhitelistIpAddressesResponse**](GetWhitelistIpAddressesResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | successfully got whitelisted ip addresses | * X-Request-ID -
| -**401** | Unauthorized. Missing / invalid JWT token in Authorization header. | * X-Request-ID -
| -**403** | Lacking permissions. | * X-Request-ID -
| -**5XX** | Internal error. | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLldoaXRlbGlzdElwQWRkcmVzc2VzQXBpCgpBbGwgVVJJcyBhcmUgcmVsYXRpdmUgdG8gKmh0dHBzOi8vYXBpLmZpcmVibG9ja3MuaW8vdjEqCgpNZXRob2QgfCBIVFRQIHJlcXVlc3QgfCBEZXNjcmlwdGlvbgotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KWyoqZ2V0X3doaXRlbGlzdF9pcF9hZGRyZXNzZXMqKl0oV2hpdGVsaXN0SXBBZGRyZXNzZXNBcGkubWQjZ2V0X3doaXRlbGlzdF9pcF9hZGRyZXNzZXMpIHwgKipHRVQqKiAvbWFuYWdlbWVudC9hcGlfdXNlcnMve3VzZXJJZH0vd2hpdGVsaXN0X2lwX2FkZHJlc3NlcyB8IEdldCB3aGl0ZWxpc3RlZCBpcCBhZGRyZXNzZXMgZm9yIGFuIEFQSSBLZXkKCgojICoqZ2V0X3doaXRlbGlzdF9pcF9hZGRyZXNzZXMqKgo+IEdldFdoaXRlbGlzdElwQWRkcmVzc2VzUmVzcG9uc2UgZ2V0X3doaXRlbGlzdF9pcF9hZGRyZXNzZXModXNlcl9pZCkKCkdldCB3aGl0ZWxpc3RlZCBpcCBhZGRyZXNzZXMgZm9yIGFuIEFQSSBLZXkKCkdldCBhIGxpc3Qgb2YgdGhlIHdoaXRlbGlzdGVkIElQIGFkZHJlc3NlcyBmb3IgYSBzcGVjaWZpYyBBUEkgS2V5Ci0gUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGVuZHBvaW50IGlzIGF2YWlsYWJsZSBvbmx5IGZvciBBUEkga2V5cyB3aXRoIEFkbWluL05vbiBTaWduaW5nIEFkbWluIHBlcm1pc3Npb25zLgo8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbi4KCiMjIyBFeGFtcGxlCgoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X3doaXRlbGlzdF9pcF9hZGRyZXNzZXNfcmVzcG9uc2UgaW1wb3J0IEdldFdoaXRlbGlzdElwQWRkcmVzc2VzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgogICAgdXNlcl9pZCA9ICd1c2VyX2lkX2V4YW1wbGUnICMgc3RyIHwgVGhlIElEIG9mIHRoZSBhcGkgdXNlcgoKICAgIHRyeToKICAgICAgICAjIEdldCB3aGl0ZWxpc3RlZCBpcCBhZGRyZXNzZXMgZm9yIGFuIEFQSSBLZXkKICAgICAgICBhcGlfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLndoaXRlbGlzdF9pcF9hZGRyZXNzZXMuZ2V0X3doaXRlbGlzdF9pcF9hZGRyZXNzZXModXNlcl9pZCkucmVzdWx0KCkKICAgICAgICBwcmludCgiVGhlIHJlc3BvbnNlIG9mIFdoaXRlbGlzdElwQWRkcmVzc2VzQXBpLT5nZXRfd2hpdGVsaXN0X2lwX2FkZHJlc3NlczpcbiIpCiAgICAgICAgcHByaW50KGFwaV9yZXNwb25zZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBwcmludCgiRXhjZXB0aW9uIHdoZW4gY2FsbGluZyBXaGl0ZWxpc3RJcEFkZHJlc3Nlc0FwaS0+Z2V0X3doaXRlbGlzdF9pcF9hZGRyZXNzZXM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiAgfCBOb3RlcwotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCiAqKnVzZXJfaWQqKiB8ICoqc3RyKip8IFRoZSBJRCBvZiB0aGUgYXBpIHVzZXIgfCAKCiMjIyBSZXR1cm4gdHlwZQoKWyoqR2V0V2hpdGVsaXN0SXBBZGRyZXNzZXNSZXNwb25zZSoqXShHZXRXaGl0ZWxpc3RJcEFkZHJlc3Nlc1Jlc3BvbnNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgc3VjY2Vzc2Z1bGx5IGdvdCB3aGl0ZWxpc3RlZCBpcCBhZGRyZXNzZXMgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjQwMSoqIHwgVW5hdXRob3JpemVkLiBNaXNzaW5nIC8gaW52YWxpZCBKV1QgdG9rZW4gaW4gQXV0aG9yaXphdGlvbiBoZWFkZXIuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio0MDMqKiB8IExhY2tpbmcgcGVybWlzc2lvbnMuIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKKio1WFgqKiB8IEludGVybmFsIGVycm9yLiB8ICAqIFgtUmVxdWVzdC1JRCAtICA8YnI+ICB8CioqMCoqIHwgRXJyb3IgUmVzcG9uc2UgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoKW1tCYWNrIHRvIHRvcF1dKCMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgo= \ No newline at end of file diff --git a/docs/WithdrawRequest.md b/docs/WithdrawRequest.md index b7f5ecc5..f2a6b2b7 100644 --- a/docs/WithdrawRequest.md +++ b/docs/WithdrawRequest.md @@ -1,33 +1 @@ -# WithdrawRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | id of position to withdraw | -**fee** | **str** | Represents the fee for a transaction, which can be specified as a percentage value. Only one of fee/feeLevel is required. | [optional] -**fee_level** | [**FeeLevel**](FeeLevel.md) | | [optional] -**tx_note** | **str** | The note to associate with the transactions. | [optional] -**amount** | **str** | Amount of tokens to withdraw. Only supported for Cosmos chains to enable partial withdrawals. For other chains, this field is ignored and the entire available amount will be withdrawn. If not provided, the entire available amount will be withdrawn. | [optional] - -## Example - -```python -from fireblocks.models.withdraw_request import WithdrawRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of WithdrawRequest from a JSON string -withdraw_request_instance = WithdrawRequest.from_json(json) -# print the JSON string representation of the object -print(WithdrawRequest.to_json()) - -# convert the object into a dict -withdraw_request_dict = withdraw_request_instance.to_dict() -# create an instance of WithdrawRequest from a dict -withdraw_request_from_dict = WithdrawRequest.from_dict(withdraw_request_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBXaXRoZHJhd1JlcXVlc3QKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBpZCBvZiBwb3NpdGlvbiB0byB3aXRoZHJhdyB8IAoqKmZlZSoqIHwgKipzdHIqKiB8IFJlcHJlc2VudHMgdGhlIGZlZSBmb3IgYSB0cmFuc2FjdGlvbiwgd2hpY2ggY2FuIGJlIHNwZWNpZmllZCBhcyBhIHBlcmNlbnRhZ2UgdmFsdWUuIE9ubHkgb25lIG9mIGZlZS9mZWVMZXZlbCBpcyByZXF1aXJlZC4gfCBbb3B0aW9uYWxdIAoqKmZlZV9sZXZlbCoqIHwgWyoqRmVlTGV2ZWwqKl0oRmVlTGV2ZWwubWQpIHwgIHwgW29wdGlvbmFsXSAKKip0eF9ub3RlKiogfCAqKnN0cioqIHwgVGhlIG5vdGUgdG8gYXNzb2NpYXRlIHdpdGggdGhlIHRyYW5zYWN0aW9ucy4gfCBbb3B0aW9uYWxdIAoqKmFtb3VudCoqIHwgKipzdHIqKiB8IEFtb3VudCBvZiB0b2tlbnMgdG8gd2l0aGRyYXcuIE9ubHkgc3VwcG9ydGVkIGZvciBDb3Ntb3MgY2hhaW5zIHRvIGVuYWJsZSBwYXJ0aWFsIHdpdGhkcmF3YWxzLiBGb3Igb3RoZXIgY2hhaW5zLCB0aGlzIGZpZWxkIGlzIGlnbm9yZWQgYW5kIHRoZSBlbnRpcmUgYXZhaWxhYmxlIGFtb3VudCB3aWxsIGJlIHdpdGhkcmF3bi4gSWYgbm90IHByb3ZpZGVkLCB0aGUgZW50aXJlIGF2YWlsYWJsZSBhbW91bnQgd2lsbCBiZSB3aXRoZHJhd24uIHwgW29wdGlvbmFsXSAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndpdGhkcmF3X3JlcXVlc3QgaW1wb3J0IFdpdGhkcmF3UmVxdWVzdAoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgV2l0aGRyYXdSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZwp3aXRoZHJhd19yZXF1ZXN0X2luc3RhbmNlID0gV2l0aGRyYXdSZXF1ZXN0LmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFdpdGhkcmF3UmVxdWVzdC50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp3aXRoZHJhd19yZXF1ZXN0X2RpY3QgPSB3aXRoZHJhd19yZXF1ZXN0X2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBXaXRoZHJhd1JlcXVlc3QgZnJvbSBhIGRpY3QKd2l0aGRyYXdfcmVxdWVzdF9mcm9tX2RpY3QgPSBXaXRoZHJhd1JlcXVlc3QuZnJvbV9kaWN0KHdpdGhkcmF3X3JlcXVlc3RfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/WorkflowConfigStatus.md b/docs/WorkflowConfigStatus.md index 954bb99d..42e26b55 100644 --- a/docs/WorkflowConfigStatus.md +++ b/docs/WorkflowConfigStatus.md @@ -1,16 +1 @@ -# WorkflowConfigStatus - - -## Enum - -* `PENDING` (value: `'PENDING'`) - -* `VALIDATION_IN_PROGRESS` (value: `'VALIDATION_IN_PROGRESS'`) - -* `VALIDATION_FAILED` (value: `'VALIDATION_FAILED'`) - -* `READY_FOR_EXECUTION` (value: `'READY_FOR_EXECUTION'`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBXb3JrZmxvd0NvbmZpZ1N0YXR1cwoKCiMjIEVudW0KCiogYFBFTkRJTkdgICh2YWx1ZTogYCdQRU5ESU5HJ2ApCgoqIGBWQUxJREFUSU9OX0lOX1BST0dSRVNTYCAodmFsdWU6IGAnVkFMSURBVElPTl9JTl9QUk9HUkVTUydgKQoKKiBgVkFMSURBVElPTl9GQUlMRURgICh2YWx1ZTogYCdWQUxJREFUSU9OX0ZBSUxFRCdgKQoKKiBgUkVBRFlfRk9SX0VYRUNVVElPTmAgKHZhbHVlOiBgJ1JFQURZX0ZPUl9FWEVDVVRJT04nYCkKCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/WorkflowConfigurationId.md b/docs/WorkflowConfigurationId.md index 233f3cd0..d05ff501 100644 --- a/docs/WorkflowConfigurationId.md +++ b/docs/WorkflowConfigurationId.md @@ -1,29 +1 @@ -# WorkflowConfigurationId - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**config_id** | **str** | | - -## Example - -```python -from fireblocks.models.workflow_configuration_id import WorkflowConfigurationId - -# TODO update the JSON string below -json = "{}" -# create an instance of WorkflowConfigurationId from a JSON string -workflow_configuration_id_instance = WorkflowConfigurationId.from_json(json) -# print the JSON string representation of the object -print(WorkflowConfigurationId.to_json()) - -# convert the object into a dict -workflow_configuration_id_dict = workflow_configuration_id_instance.to_dict() -# create an instance of WorkflowConfigurationId from a dict -workflow_configuration_id_from_dict = WorkflowConfigurationId.from_dict(workflow_configuration_id_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBXb3JrZmxvd0NvbmZpZ3VyYXRpb25JZAoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipjb25maWdfaWQqKiB8ICoqc3RyKiogfCAgfCAKCiMjIEV4YW1wbGUKCmBgYHB5dGhvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndvcmtmbG93X2NvbmZpZ3VyYXRpb25faWQgaW1wb3J0IFdvcmtmbG93Q29uZmlndXJhdGlvbklkCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBXb3JrZmxvd0NvbmZpZ3VyYXRpb25JZCBmcm9tIGEgSlNPTiBzdHJpbmcKd29ya2Zsb3dfY29uZmlndXJhdGlvbl9pZF9pbnN0YW5jZSA9IFdvcmtmbG93Q29uZmlndXJhdGlvbklkLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFdvcmtmbG93Q29uZmlndXJhdGlvbklkLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CndvcmtmbG93X2NvbmZpZ3VyYXRpb25faWRfZGljdCA9IHdvcmtmbG93X2NvbmZpZ3VyYXRpb25faWRfaW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFdvcmtmbG93Q29uZmlndXJhdGlvbklkIGZyb20gYSBkaWN0CndvcmtmbG93X2NvbmZpZ3VyYXRpb25faWRfZnJvbV9kaWN0ID0gV29ya2Zsb3dDb25maWd1cmF0aW9uSWQuZnJvbV9kaWN0KHdvcmtmbG93X2NvbmZpZ3VyYXRpb25faWRfZGljdCkKYGBgCltbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBSRUFETUVdXSguLi9SRUFETUUubWQpCgoK \ No newline at end of file diff --git a/docs/WorkflowExecutionOperation.md b/docs/WorkflowExecutionOperation.md index 8762ef8a..b0ba4617 100644 --- a/docs/WorkflowExecutionOperation.md +++ b/docs/WorkflowExecutionOperation.md @@ -1,34 +1 @@ -# WorkflowExecutionOperation - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**operation_id** | **str** | | -**status** | [**ExecutionOperationStatus**](ExecutionOperationStatus.md) | | -**operation_type** | [**DisbursementOperationType**](DisbursementOperationType.md) | | -**validation_failure** | [**DisbursementValidationFailure**](DisbursementValidationFailure.md) | | [optional] -**execution** | [**DisbursementOperationExecution**](DisbursementOperationExecution.md) | | [optional] -**preview** | [**DisbursementOperationPreview**](DisbursementOperationPreview.md) | | [optional] - -## Example - -```python -from fireblocks.models.workflow_execution_operation import WorkflowExecutionOperation - -# TODO update the JSON string below -json = "{}" -# create an instance of WorkflowExecutionOperation from a JSON string -workflow_execution_operation_instance = WorkflowExecutionOperation.from_json(json) -# print the JSON string representation of the object -print(WorkflowExecutionOperation.to_json()) - -# convert the object into a dict -workflow_execution_operation_dict = workflow_execution_operation_instance.to_dict() -# create an instance of WorkflowExecutionOperation from a dict -workflow_execution_operation_from_dict = WorkflowExecutionOperation.from_dict(workflow_execution_operation_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBXb3JrZmxvd0V4ZWN1dGlvbk9wZXJhdGlvbgoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKipvcGVyYXRpb25faWQqKiB8ICoqc3RyKiogfCAgfCAKKipzdGF0dXMqKiB8IFsqKkV4ZWN1dGlvbk9wZXJhdGlvblN0YXR1cyoqXShFeGVjdXRpb25PcGVyYXRpb25TdGF0dXMubWQpIHwgIHwgCioqb3BlcmF0aW9uX3R5cGUqKiB8IFsqKkRpc2J1cnNlbWVudE9wZXJhdGlvblR5cGUqKl0oRGlzYnVyc2VtZW50T3BlcmF0aW9uVHlwZS5tZCkgfCAgfCAKKip2YWxpZGF0aW9uX2ZhaWx1cmUqKiB8IFsqKkRpc2J1cnNlbWVudFZhbGlkYXRpb25GYWlsdXJlKipdKERpc2J1cnNlbWVudFZhbGlkYXRpb25GYWlsdXJlLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqZXhlY3V0aW9uKiogfCBbKipEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb24qKl0oRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqcHJldmlldyoqIHwgWyoqRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlldyoqXShEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3Lm1kKSB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53b3JrZmxvd19leGVjdXRpb25fb3BlcmF0aW9uIGltcG9ydCBXb3JrZmxvd0V4ZWN1dGlvbk9wZXJhdGlvbgoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgV29ya2Zsb3dFeGVjdXRpb25PcGVyYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nCndvcmtmbG93X2V4ZWN1dGlvbl9vcGVyYXRpb25faW5zdGFuY2UgPSBXb3JrZmxvd0V4ZWN1dGlvbk9wZXJhdGlvbi5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChXb3JrZmxvd0V4ZWN1dGlvbk9wZXJhdGlvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp3b3JrZmxvd19leGVjdXRpb25fb3BlcmF0aW9uX2RpY3QgPSB3b3JrZmxvd19leGVjdXRpb25fb3BlcmF0aW9uX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBXb3JrZmxvd0V4ZWN1dGlvbk9wZXJhdGlvbiBmcm9tIGEgZGljdAp3b3JrZmxvd19leGVjdXRpb25fb3BlcmF0aW9uX2Zyb21fZGljdCA9IFdvcmtmbG93RXhlY3V0aW9uT3BlcmF0aW9uLmZyb21fZGljdCh3b3JrZmxvd19leGVjdXRpb25fb3BlcmF0aW9uX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/Workspace.md b/docs/Workspace.md index 893f3d6d..4f53c3d4 100644 --- a/docs/Workspace.md +++ b/docs/Workspace.md @@ -1,30 +1 @@ -# Workspace - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**id** | **str** | The ID of the workspace | -**name** | **str** | The name of the workspace | - -## Example - -```python -from fireblocks.models.workspace import Workspace - -# TODO update the JSON string below -json = "{}" -# create an instance of Workspace from a JSON string -workspace_instance = Workspace.from_json(json) -# print the JSON string representation of the object -print(Workspace.to_json()) - -# convert the object into a dict -workspace_dict = workspace_instance.to_dict() -# create an instance of Workspace from a dict -workspace_from_dict = Workspace.from_dict(workspace_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBXb3Jrc3BhY2UKCgojIyBQcm9wZXJ0aWVzCgpOYW1lIHwgVHlwZSB8IERlc2NyaXB0aW9uIHwgTm90ZXMKLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tCioqaWQqKiB8ICoqc3RyKiogfCBUaGUgSUQgb2YgdGhlIHdvcmtzcGFjZSB8IAoqKm5hbWUqKiB8ICoqc3RyKiogfCBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53b3Jrc3BhY2UgaW1wb3J0IFdvcmtzcGFjZQoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgV29ya3NwYWNlIGZyb20gYSBKU09OIHN0cmluZwp3b3Jrc3BhY2VfaW5zdGFuY2UgPSBXb3Jrc3BhY2UuZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoV29ya3NwYWNlLnRvX2pzb24oKSkKCiMgY29udmVydCB0aGUgb2JqZWN0IGludG8gYSBkaWN0CndvcmtzcGFjZV9kaWN0ID0gd29ya3NwYWNlX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBXb3Jrc3BhY2UgZnJvbSBhIGRpY3QKd29ya3NwYWNlX2Zyb21fZGljdCA9IFdvcmtzcGFjZS5mcm9tX2RpY3Qod29ya3NwYWNlX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/WorkspaceApi.md b/docs/WorkspaceApi.md index 0f5b88db..a869f2d0 100644 --- a/docs/WorkspaceApi.md +++ b/docs/WorkspaceApi.md @@ -1,80 +1 @@ -# fireblocks.WorkspaceApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**get_workspace**](WorkspaceApi.md#get_workspace) | **GET** /workspace | Get workspace - - -# **get_workspace** -> Workspace get_workspace() - -Get workspace - -Returns the workspace ID and name for the authenticated user. - - -### Example - - -```python -from fireblocks.models.workspace import Workspace -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Get workspace - api_response = fireblocks.workspace.get_workspace().result() - print("The response of WorkspaceApi->get_workspace:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling WorkspaceApi->get_workspace: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**Workspace**](Workspace.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Workspace details | * X-Request-ID -
| -**0** | Error Response | * X-Request-ID -
| - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLldvcmtzcGFjZUFwaQoKQWxsIFVSSXMgYXJlIHJlbGF0aXZlIHRvICpodHRwczovL2FwaS5maXJlYmxvY2tzLmlvL3YxKgoKTWV0aG9kIHwgSFRUUCByZXF1ZXN0IHwgRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tClsqKmdldF93b3Jrc3BhY2UqKl0oV29ya3NwYWNlQXBpLm1kI2dldF93b3Jrc3BhY2UpIHwgKipHRVQqKiAvd29ya3NwYWNlIHwgR2V0IHdvcmtzcGFjZQoKCiMgKipnZXRfd29ya3NwYWNlKioKPiBXb3Jrc3BhY2UgZ2V0X3dvcmtzcGFjZSgpCgpHZXQgd29ya3NwYWNlCgpSZXR1cm5zIHRoZSB3b3Jrc3BhY2UgSUQgYW5kIG5hbWUgZm9yIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIuCgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53b3Jrc3BhY2UgaW1wb3J0IFdvcmtzcGFjZQpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKCiMgbG9hZCB0aGUgc2VjcmV0IGtleSBjb250ZW50IGZyb20gYSBmaWxlCndpdGggb3BlbigneW91cl9zZWNyZXRfa2V5X2ZpbGVfcGF0aCcsICdyJykgYXMgZmlsZToKICAgIHNlY3JldF9rZXlfdmFsdWUgPSBmaWxlLnJlYWQoKQoKIyBidWlsZCB0aGUgY29uZmlndXJhdGlvbgpjb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbigKICAgICAgICBhcGlfa2V5PSJ5b3VyX2FwaV9rZXkiLAogICAgICAgIHNlY3JldF9rZXk9c2VjcmV0X2tleV92YWx1ZSwKICAgICAgICBiYXNlX3BhdGg9QmFzZVBhdGguU2FuZGJveCwgIyBvciBzZXQgaXQgZGlyZWN0bHkgdG8gYSBzdHJpbmcgImh0dHBzOi8vc2FuZGJveC1hcGkuZmlyZWJsb2Nrcy5pby92MSIKKQoKCiMgRW50ZXIgYSBjb250ZXh0IHdpdGggYW4gaW5zdGFuY2Ugb2YgdGhlIEFQSSBjbGllbnQKd2l0aCBGaXJlYmxvY2tzKGNvbmZpZ3VyYXRpb24pIGFzIGZpcmVibG9ja3M6CgogICAgdHJ5OgogICAgICAgICMgR2V0IHdvcmtzcGFjZQogICAgICAgIGFwaV9yZXNwb25zZSA9IGZpcmVibG9ja3Mud29ya3NwYWNlLmdldF93b3Jrc3BhY2UoKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgV29ya3NwYWNlQXBpLT5nZXRfd29ya3NwYWNlOlxuIikKICAgICAgICBwcHJpbnQoYXBpX3Jlc3BvbnNlKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHByaW50KCJFeGNlcHRpb24gd2hlbiBjYWxsaW5nIFdvcmtzcGFjZUFwaS0+Z2V0X3dvcmtzcGFjZTogJXNcbiIgJSBlKQpgYGAKCgoKIyMjIFBhcmFtZXRlcnMKClRoaXMgZW5kcG9pbnQgZG9lcyBub3QgbmVlZCBhbnkgcGFyYW1ldGVyLgoKIyMjIFJldHVybiB0eXBlCgpbKipXb3Jrc3BhY2UqKl0oV29ya3NwYWNlLm1kKQoKIyMjIEF1dGhvcml6YXRpb24KCk5vIGF1dGhvcml6YXRpb24gcmVxdWlyZWQKCiMjIyBIVFRQIHJlcXVlc3QgaGVhZGVycwoKIC0gKipDb250ZW50LVR5cGUqKjogTm90IGRlZmluZWQKIC0gKipBY2NlcHQqKjogYXBwbGljYXRpb24vanNvbgoKIyMjIEhUVFAgcmVzcG9uc2UgZGV0YWlscwoKfCBTdGF0dXMgY29kZSB8IERlc2NyaXB0aW9uIHwgUmVzcG9uc2UgaGVhZGVycyB8CnwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoqKjIwMCoqIHwgV29ya3NwYWNlIGRldGFpbHMgfCAgKiBYLVJlcXVlc3QtSUQgLSAgPGJyPiAgfAoqKjAqKiB8IEVycm9yIFJlc3BvbnNlIHwgICogWC1SZXF1ZXN0LUlEIC0gIDxicj4gIHwKCltbQmFjayB0byB0b3BdXSgjKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoK \ No newline at end of file diff --git a/docs/WorkspaceStatusBetaApi.md b/docs/WorkspaceStatusBetaApi.md index 2e836373..3bc1dc4c 100644 --- a/docs/WorkspaceStatusBetaApi.md +++ b/docs/WorkspaceStatusBetaApi.md @@ -1,84 +1 @@ -# fireblocks.WorkspaceStatusBetaApi - -All URIs are relative to *https://api.fireblocks.io/v1* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**get_workspace_status**](WorkspaceStatusBetaApi.md#get_workspace_status) | **GET** /management/workspace_status | Returns current workspace status - - -# **get_workspace_status** -> GetWorkspaceStatusResponse get_workspace_status() - -Returns current workspace status - -Returns current workspace status (Beta). -**Note**: -- This endpoint is now in Beta, disabled for general availability at this time. -- Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. - -
Endpoint Permission: Admin, Non-Signing Admin. - -### Example - - -```python -from fireblocks.models.get_workspace_status_response import GetWorkspaceStatusResponse -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.exceptions import ApiException -from fireblocks.base_path import BasePath -from pprint import pprint - -# load the secret key content from a file -with open('your_secret_key_file_path', 'r') as file: - secret_key_value = file.read() - -# build the configuration -configuration = ClientConfiguration( - api_key="your_api_key", - secret_key=secret_key_value, - base_path=BasePath.Sandbox, # or set it directly to a string "https://sandbox-api.fireblocks.io/v1" -) - - -# Enter a context with an instance of the API client -with Fireblocks(configuration) as fireblocks: - - try: - # Returns current workspace status - api_response = fireblocks.workspace_status_beta.get_workspace_status().result() - print("The response of WorkspaceStatusBetaApi->get_workspace_status:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling WorkspaceStatusBetaApi->get_workspace_status: %s\n" % e) -``` - - - -### Parameters - -This endpoint does not need any parameter. - -### Return type - -[**GetWorkspaceStatusResponse**](GetWorkspaceStatusResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Current workspace status | - | -**404** | Workspace not found | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - +IyBmaXJlYmxvY2tzLldvcmtzcGFjZVN0YXR1c0JldGFBcGkKCkFsbCBVUklzIGFyZSByZWxhdGl2ZSB0byAqaHR0cHM6Ly9hcGkuZmlyZWJsb2Nrcy5pby92MSoKCk1ldGhvZCB8IEhUVFAgcmVxdWVzdCB8IERlc2NyaXB0aW9uCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQpbKipnZXRfd29ya3NwYWNlX3N0YXR1cyoqXShXb3Jrc3BhY2VTdGF0dXNCZXRhQXBpLm1kI2dldF93b3Jrc3BhY2Vfc3RhdHVzKSB8ICoqR0VUKiogL21hbmFnZW1lbnQvd29ya3NwYWNlX3N0YXR1cyB8IFJldHVybnMgY3VycmVudCB3b3Jrc3BhY2Ugc3RhdHVzCgoKIyAqKmdldF93b3Jrc3BhY2Vfc3RhdHVzKioKPiBHZXRXb3Jrc3BhY2VTdGF0dXNSZXNwb25zZSBnZXRfd29ya3NwYWNlX3N0YXR1cygpCgpSZXR1cm5zIGN1cnJlbnQgd29ya3NwYWNlIHN0YXR1cwoKUmV0dXJucyBjdXJyZW50IHdvcmtzcGFjZSBzdGF0dXMgKEJldGEpLgoqKk5vdGUqKjoKLSBUaGlzIGVuZHBvaW50IGlzIG5vdyBpbiBCZXRhLCBkaXNhYmxlZCBmb3IgZ2VuZXJhbCBhdmFpbGFiaWxpdHkgYXQgdGhpcyB0aW1lLgotIFBsZWFzZSBub3RlIHRoYXQgdGhpcyBlbmRwb2ludCBpcyBhdmFpbGFibGUgb25seSBmb3IgQVBJIGtleXMgd2l0aCBBZG1pbi9Ob24gU2lnbmluZyBBZG1pbiBwZXJtaXNzaW9ucy4KCjwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKIyMjIEV4YW1wbGUKCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfd29ya3NwYWNlX3N0YXR1c19yZXNwb25zZSBpbXBvcnQgR2V0V29ya3NwYWNlU3RhdHVzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MuYmFzZV9wYXRoIGltcG9ydCBCYXNlUGF0aApmcm9tIHBwcmludCBpbXBvcnQgcHByaW50CgojIGxvYWQgdGhlIHNlY3JldCBrZXkgY29udGVudCBmcm9tIGEgZmlsZQp3aXRoIG9wZW4oJ3lvdXJfc2VjcmV0X2tleV9maWxlX3BhdGgnLCAncicpIGFzIGZpbGU6CiAgICBzZWNyZXRfa2V5X3ZhbHVlID0gZmlsZS5yZWFkKCkKCiMgYnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24KY29uZmlndXJhdGlvbiA9IENsaWVudENvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT0ieW91cl9hcGlfa2V5IiwKICAgICAgICBzZWNyZXRfa2V5PXNlY3JldF9rZXlfdmFsdWUsCiAgICAgICAgYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gsICMgb3Igc2V0IGl0IGRpcmVjdGx5IHRvIGEgc3RyaW5nICJodHRwczovL3NhbmRib3gtYXBpLmZpcmVibG9ja3MuaW8vdjEiCikKCgojIEVudGVyIGEgY29udGV4dCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoZSBBUEkgY2xpZW50CndpdGggRmlyZWJsb2Nrcyhjb25maWd1cmF0aW9uKSBhcyBmaXJlYmxvY2tzOgoKICAgIHRyeToKICAgICAgICAjIFJldHVybnMgY3VycmVudCB3b3Jrc3BhY2Ugc3RhdHVzCiAgICAgICAgYXBpX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy53b3Jrc3BhY2Vfc3RhdHVzX2JldGEuZ2V0X3dvcmtzcGFjZV9zdGF0dXMoKS5yZXN1bHQoKQogICAgICAgIHByaW50KCJUaGUgcmVzcG9uc2Ugb2YgV29ya3NwYWNlU3RhdHVzQmV0YUFwaS0+Z2V0X3dvcmtzcGFjZV9zdGF0dXM6XG4iKQogICAgICAgIHBwcmludChhcGlfcmVzcG9uc2UpCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiB3aGVuIGNhbGxpbmcgV29ya3NwYWNlU3RhdHVzQmV0YUFwaS0+Z2V0X3dvcmtzcGFjZV9zdGF0dXM6ICVzXG4iICUgZSkKYGBgCgoKCiMjIyBQYXJhbWV0ZXJzCgpUaGlzIGVuZHBvaW50IGRvZXMgbm90IG5lZWQgYW55IHBhcmFtZXRlci4KCiMjIyBSZXR1cm4gdHlwZQoKWyoqR2V0V29ya3NwYWNlU3RhdHVzUmVzcG9uc2UqKl0oR2V0V29ya3NwYWNlU3RhdHVzUmVzcG9uc2UubWQpCgojIyMgQXV0aG9yaXphdGlvbgoKTm8gYXV0aG9yaXphdGlvbiByZXF1aXJlZAoKIyMjIEhUVFAgcmVxdWVzdCBoZWFkZXJzCgogLSAqKkNvbnRlbnQtVHlwZSoqOiBOb3QgZGVmaW5lZAogLSAqKkFjY2VwdCoqOiBhcHBsaWNhdGlvbi9qc29uCgojIyMgSFRUUCByZXNwb25zZSBkZXRhaWxzCgp8IFN0YXR1cyBjb2RlIHwgRGVzY3JpcHRpb24gfCBSZXNwb25zZSBoZWFkZXJzIHwKfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS18CioqMjAwKiogfCBDdXJyZW50IHdvcmtzcGFjZSBzdGF0dXMgfCAgLSAgfAoqKjQwNCoqIHwgV29ya3NwYWNlIG5vdCBmb3VuZCB8ICAtICB8CgpbW0JhY2sgdG8gdG9wXV0oIykgW1tCYWNrIHRvIEFQSSBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLWFwaS1lbmRwb2ludHMpIFtbQmFjayB0byBNb2RlbCBsaXN0XV0oLi4vUkVBRE1FLm1kI2RvY3VtZW50YXRpb24tZm9yLW1vZGVscykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCg== \ No newline at end of file diff --git a/docs/WriteAbiFunction.md b/docs/WriteAbiFunction.md index 0e03050f..ba729baf 100644 --- a/docs/WriteAbiFunction.md +++ b/docs/WriteAbiFunction.md @@ -1,34 +1 @@ -# WriteAbiFunction - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**state_mutability** | **str** | | -**outputs** | [**List[Parameter]**](Parameter.md) | | [optional] -**type** | **str** | | -**name** | **str** | | [optional] -**inputs** | [**List[ParameterWithValue]**](ParameterWithValue.md) | | -**description** | **str** | | [optional] - -## Example - -```python -from fireblocks.models.write_abi_function import WriteAbiFunction - -# TODO update the JSON string below -json = "{}" -# create an instance of WriteAbiFunction from a JSON string -write_abi_function_instance = WriteAbiFunction.from_json(json) -# print the JSON string representation of the object -print(WriteAbiFunction.to_json()) - -# convert the object into a dict -write_abi_function_dict = write_abi_function_instance.to_dict() -# create an instance of WriteAbiFunction from a dict -write_abi_function_from_dict = WriteAbiFunction.from_dict(write_abi_function_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBXcml0ZUFiaUZ1bmN0aW9uCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnN0YXRlX211dGFiaWxpdHkqKiB8ICoqc3RyKiogfCAgfCAKKipvdXRwdXRzKiogfCBbKipMaXN0W1BhcmFtZXRlcl0qKl0oUGFyYW1ldGVyLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqdHlwZSoqIHwgKipzdHIqKiB8ICB8IAoqKm5hbWUqKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmlucHV0cyoqIHwgWyoqTGlzdFtQYXJhbWV0ZXJXaXRoVmFsdWVdKipdKFBhcmFtZXRlcldpdGhWYWx1ZS5tZCkgfCAgfCAKKipkZXNjcmlwdGlvbioqIHwgKipzdHIqKiB8ICB8IFtvcHRpb25hbF0gCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53cml0ZV9hYmlfZnVuY3Rpb24gaW1wb3J0IFdyaXRlQWJpRnVuY3Rpb24KCiMgVE9ETyB1cGRhdGUgdGhlIEpTT04gc3RyaW5nIGJlbG93Cmpzb24gPSAie30iCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFdyaXRlQWJpRnVuY3Rpb24gZnJvbSBhIEpTT04gc3RyaW5nCndyaXRlX2FiaV9mdW5jdGlvbl9pbnN0YW5jZSA9IFdyaXRlQWJpRnVuY3Rpb24uZnJvbV9qc29uKGpzb24pCiMgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QKcHJpbnQoV3JpdGVBYmlGdW5jdGlvbi50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp3cml0ZV9hYmlfZnVuY3Rpb25fZGljdCA9IHdyaXRlX2FiaV9mdW5jdGlvbl9pbnN0YW5jZS50b19kaWN0KCkKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgV3JpdGVBYmlGdW5jdGlvbiBmcm9tIGEgZGljdAp3cml0ZV9hYmlfZnVuY3Rpb25fZnJvbV9kaWN0ID0gV3JpdGVBYmlGdW5jdGlvbi5mcm9tX2RpY3Qod3JpdGVfYWJpX2Z1bmN0aW9uX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/docs/WriteCallFunctionDto.md b/docs/WriteCallFunctionDto.md index 0f49289c..e7e4f234 100644 --- a/docs/WriteCallFunctionDto.md +++ b/docs/WriteCallFunctionDto.md @@ -1,36 +1 @@ -# WriteCallFunctionDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**vault_account_id** | **str** | The vault account id this contract was deploy from | -**abi_function** | [**WriteCallFunctionDtoAbiFunction**](WriteCallFunctionDtoAbiFunction.md) | | -**amount** | **str** | Amount in base asset. Being used in payable functions | [optional] -**fee_level** | **str** | Fee level for the write function transaction. interchangeable with the 'fee' field | [optional] -**fee** | **str** | Max fee amount for the write function transaction. interchangeable with the 'feeLevel' field | [optional] -**note** | **str** | Custom note, not sent to the blockchain, that describes the transaction at your Fireblocks workspace | [optional] -**use_gasless** | **bool** | Indicates whether the token should be created in a gasless manner, utilizing the ERC-2771 standard. When set to true, the transaction will be relayed by a designated relayer. The workspace must be configured to use Fireblocks gasless relay. | [optional] -**external_id** | **str** | External id that can be used to identify the transaction in your system. The unique identifier of the transaction outside of Fireblocks with max length of 255 characters | [optional] - -## Example - -```python -from fireblocks.models.write_call_function_dto import WriteCallFunctionDto - -# TODO update the JSON string below -json = "{}" -# create an instance of WriteCallFunctionDto from a JSON string -write_call_function_dto_instance = WriteCallFunctionDto.from_json(json) -# print the JSON string representation of the object -print(WriteCallFunctionDto.to_json()) - -# convert the object into a dict -write_call_function_dto_dict = write_call_function_dto_instance.to_dict() -# create an instance of WriteCallFunctionDto from a dict -write_call_function_dto_from_dict = WriteCallFunctionDto.from_dict(write_call_function_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBXcml0ZUNhbGxGdW5jdGlvbkR0bwoKCiMjIFByb3BlcnRpZXMKCk5hbWUgfCBUeXBlIHwgRGVzY3JpcHRpb24gfCBOb3RlcwotLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0KKip2YXVsdF9hY2NvdW50X2lkKiogfCAqKnN0cioqIHwgVGhlIHZhdWx0IGFjY291bnQgaWQgdGhpcyBjb250cmFjdCB3YXMgZGVwbG95IGZyb20gfCAKKiphYmlfZnVuY3Rpb24qKiB8IFsqKldyaXRlQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb24qKl0oV3JpdGVDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbi5tZCkgfCAgfCAKKiphbW91bnQqKiB8ICoqc3RyKiogfCBBbW91bnQgaW4gYmFzZSBhc3NldC4gQmVpbmcgdXNlZCBpbiBwYXlhYmxlIGZ1bmN0aW9ucyB8IFtvcHRpb25hbF0gCioqZmVlX2xldmVsKiogfCAqKnN0cioqIHwgRmVlIGxldmVsIGZvciB0aGUgd3JpdGUgZnVuY3Rpb24gdHJhbnNhY3Rpb24uIGludGVyY2hhbmdlYWJsZSB3aXRoIHRoZSAmIzM5O2ZlZSYjMzk7IGZpZWxkIHwgW29wdGlvbmFsXSAKKipmZWUqKiB8ICoqc3RyKiogfCBNYXggZmVlIGFtb3VudCBmb3IgdGhlIHdyaXRlIGZ1bmN0aW9uIHRyYW5zYWN0aW9uLiBpbnRlcmNoYW5nZWFibGUgd2l0aCB0aGUgJiMzOTtmZWVMZXZlbCYjMzk7IGZpZWxkIHwgW29wdGlvbmFsXSAKKipub3RlKiogfCAqKnN0cioqIHwgQ3VzdG9tIG5vdGUsIG5vdCBzZW50IHRvIHRoZSBibG9ja2NoYWluLCB0aGF0IGRlc2NyaWJlcyB0aGUgdHJhbnNhY3Rpb24gYXQgeW91ciBGaXJlYmxvY2tzIHdvcmtzcGFjZSB8IFtvcHRpb25hbF0gCioqdXNlX2dhc2xlc3MqKiB8ICoqYm9vbCoqIHwgSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRva2VuIHNob3VsZCBiZSBjcmVhdGVkIGluIGEgZ2FzbGVzcyBtYW5uZXIsIHV0aWxpemluZyB0aGUgRVJDLTI3NzEgc3RhbmRhcmQuIFdoZW4gc2V0IHRvIHRydWUsIHRoZSB0cmFuc2FjdGlvbiB3aWxsIGJlIHJlbGF5ZWQgYnkgYSBkZXNpZ25hdGVkIHJlbGF5ZXIuIFRoZSB3b3Jrc3BhY2UgbXVzdCBiZSBjb25maWd1cmVkIHRvIHVzZSBGaXJlYmxvY2tzIGdhc2xlc3MgcmVsYXkuIHwgW29wdGlvbmFsXSAKKipleHRlcm5hbF9pZCoqIHwgKipzdHIqKiB8IEV4dGVybmFsIGlkIHRoYXQgY2FuIGJlIHVzZWQgdG8gaWRlbnRpZnkgdGhlIHRyYW5zYWN0aW9uIGluIHlvdXIgc3lzdGVtLiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHRyYW5zYWN0aW9uIG91dHNpZGUgb2YgRmlyZWJsb2NrcyB3aXRoIG1heCBsZW5ndGggb2YgMjU1IGNoYXJhY3RlcnMgfCBbb3B0aW9uYWxdIAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud3JpdGVfY2FsbF9mdW5jdGlvbl9kdG8gaW1wb3J0IFdyaXRlQ2FsbEZ1bmN0aW9uRHRvCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBXcml0ZUNhbGxGdW5jdGlvbkR0byBmcm9tIGEgSlNPTiBzdHJpbmcKd3JpdGVfY2FsbF9mdW5jdGlvbl9kdG9faW5zdGFuY2UgPSBXcml0ZUNhbGxGdW5jdGlvbkR0by5mcm9tX2pzb24oanNvbikKIyBwcmludCB0aGUgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdApwcmludChXcml0ZUNhbGxGdW5jdGlvbkR0by50b19qc29uKCkpCgojIGNvbnZlcnQgdGhlIG9iamVjdCBpbnRvIGEgZGljdAp3cml0ZV9jYWxsX2Z1bmN0aW9uX2R0b19kaWN0ID0gd3JpdGVfY2FsbF9mdW5jdGlvbl9kdG9faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFdyaXRlQ2FsbEZ1bmN0aW9uRHRvIGZyb20gYSBkaWN0CndyaXRlX2NhbGxfZnVuY3Rpb25fZHRvX2Zyb21fZGljdCA9IFdyaXRlQ2FsbEZ1bmN0aW9uRHRvLmZyb21fZGljdCh3cml0ZV9jYWxsX2Z1bmN0aW9uX2R0b19kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/WriteCallFunctionDtoAbiFunction.md b/docs/WriteCallFunctionDtoAbiFunction.md index aa914cdd..b88cf4d0 100644 --- a/docs/WriteCallFunctionDtoAbiFunction.md +++ b/docs/WriteCallFunctionDtoAbiFunction.md @@ -1,37 +1 @@ -# WriteCallFunctionDtoAbiFunction - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**state_mutability** | **str** | | -**outputs** | [**List[Parameter]**](Parameter.md) | | [optional] -**type** | **str** | | -**name** | **str** | The name of the instruction | -**inputs** | [**List[ParameterWithValue]**](ParameterWithValue.md) | | -**description** | **str** | | [optional] -**discriminator** | **List[float]** | The discriminator for the instruction. Acts as a function selector | -**accounts** | [**List[SOLAccountWithValue]**](SOLAccountWithValue.md) | | -**args** | [**List[SolParameterWithValue]**](SolParameterWithValue.md) | The arguments of the instruction | - -## Example - -```python -from fireblocks.models.write_call_function_dto_abi_function import WriteCallFunctionDtoAbiFunction - -# TODO update the JSON string below -json = "{}" -# create an instance of WriteCallFunctionDtoAbiFunction from a JSON string -write_call_function_dto_abi_function_instance = WriteCallFunctionDtoAbiFunction.from_json(json) -# print the JSON string representation of the object -print(WriteCallFunctionDtoAbiFunction.to_json()) - -# convert the object into a dict -write_call_function_dto_abi_function_dict = write_call_function_dto_abi_function_instance.to_dict() -# create an instance of WriteCallFunctionDtoAbiFunction from a dict -write_call_function_dto_abi_function_from_dict = WriteCallFunctionDtoAbiFunction.from_dict(write_call_function_dto_abi_function_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBXcml0ZUNhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnN0YXRlX211dGFiaWxpdHkqKiB8ICoqc3RyKiogfCAgfCAKKipvdXRwdXRzKiogfCBbKipMaXN0W1BhcmFtZXRlcl0qKl0oUGFyYW1ldGVyLm1kKSB8ICB8IFtvcHRpb25hbF0gCioqdHlwZSoqIHwgKipzdHIqKiB8ICB8IAoqKm5hbWUqKiB8ICoqc3RyKiogfCBUaGUgbmFtZSBvZiB0aGUgaW5zdHJ1Y3Rpb24gfCAKKippbnB1dHMqKiB8IFsqKkxpc3RbUGFyYW1ldGVyV2l0aFZhbHVlXSoqXShQYXJhbWV0ZXJXaXRoVmFsdWUubWQpIHwgIHwgCioqZGVzY3JpcHRpb24qKiB8ICoqc3RyKiogfCAgfCBbb3B0aW9uYWxdIAoqKmRpc2NyaW1pbmF0b3IqKiB8ICoqTGlzdFtmbG9hdF0qKiB8IFRoZSBkaXNjcmltaW5hdG9yIGZvciB0aGUgaW5zdHJ1Y3Rpb24uIEFjdHMgYXMgYSBmdW5jdGlvbiBzZWxlY3RvciB8IAoqKmFjY291bnRzKiogfCBbKipMaXN0W1NPTEFjY291bnRXaXRoVmFsdWVdKipdKFNPTEFjY291bnRXaXRoVmFsdWUubWQpIHwgIHwgCioqYXJncyoqIHwgWyoqTGlzdFtTb2xQYXJhbWV0ZXJXaXRoVmFsdWVdKipdKFNvbFBhcmFtZXRlcldpdGhWYWx1ZS5tZCkgfCBUaGUgYXJndW1lbnRzIG9mIHRoZSBpbnN0cnVjdGlvbiB8IAoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud3JpdGVfY2FsbF9mdW5jdGlvbl9kdG9fYWJpX2Z1bmN0aW9uIGltcG9ydCBXcml0ZUNhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uCgojIFRPRE8gdXBkYXRlIHRoZSBKU09OIHN0cmluZyBiZWxvdwpqc29uID0gInt9IgojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBXcml0ZUNhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uIGZyb20gYSBKU09OIHN0cmluZwp3cml0ZV9jYWxsX2Z1bmN0aW9uX2R0b19hYmlfZnVuY3Rpb25faW5zdGFuY2UgPSBXcml0ZUNhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFdyaXRlQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb24udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKd3JpdGVfY2FsbF9mdW5jdGlvbl9kdG9fYWJpX2Z1bmN0aW9uX2RpY3QgPSB3cml0ZV9jYWxsX2Z1bmN0aW9uX2R0b19hYmlfZnVuY3Rpb25faW5zdGFuY2UudG9fZGljdCgpCiMgY3JlYXRlIGFuIGluc3RhbmNlIG9mIFdyaXRlQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb24gZnJvbSBhIGRpY3QKd3JpdGVfY2FsbF9mdW5jdGlvbl9kdG9fYWJpX2Z1bmN0aW9uX2Zyb21fZGljdCA9IFdyaXRlQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb24uZnJvbV9kaWN0KHdyaXRlX2NhbGxfZnVuY3Rpb25fZHRvX2FiaV9mdW5jdGlvbl9kaWN0KQpgYGAKW1tCYWNrIHRvIE1vZGVsIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItbW9kZWxzKSBbW0JhY2sgdG8gQVBJIGxpc3RdXSguLi9SRUFETUUubWQjZG9jdW1lbnRhdGlvbi1mb3ItYXBpLWVuZHBvaW50cykgW1tCYWNrIHRvIFJFQURNRV1dKC4uL1JFQURNRS5tZCkKCgo= \ No newline at end of file diff --git a/docs/WriteCallFunctionResponseDto.md b/docs/WriteCallFunctionResponseDto.md index 1e496c27..98aa2471 100644 --- a/docs/WriteCallFunctionResponseDto.md +++ b/docs/WriteCallFunctionResponseDto.md @@ -1,29 +1 @@ -# WriteCallFunctionResponseDto - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**tx_id** | **str** | | - -## Example - -```python -from fireblocks.models.write_call_function_response_dto import WriteCallFunctionResponseDto - -# TODO update the JSON string below -json = "{}" -# create an instance of WriteCallFunctionResponseDto from a JSON string -write_call_function_response_dto_instance = WriteCallFunctionResponseDto.from_json(json) -# print the JSON string representation of the object -print(WriteCallFunctionResponseDto.to_json()) - -# convert the object into a dict -write_call_function_response_dto_dict = write_call_function_response_dto_instance.to_dict() -# create an instance of WriteCallFunctionResponseDto from a dict -write_call_function_response_dto_from_dict = WriteCallFunctionResponseDto.from_dict(write_call_function_response_dto_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - +IyBXcml0ZUNhbGxGdW5jdGlvblJlc3BvbnNlRHRvCgoKIyMgUHJvcGVydGllcwoKTmFtZSB8IFR5cGUgfCBEZXNjcmlwdGlvbiB8IE5vdGVzCi0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQoqKnR4X2lkKiogfCAqKnN0cioqIHwgIHwgCgojIyBFeGFtcGxlCgpgYGBweXRob24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53cml0ZV9jYWxsX2Z1bmN0aW9uX3Jlc3BvbnNlX2R0byBpbXBvcnQgV3JpdGVDYWxsRnVuY3Rpb25SZXNwb25zZUR0bwoKIyBUT0RPIHVwZGF0ZSB0aGUgSlNPTiBzdHJpbmcgYmVsb3cKanNvbiA9ICJ7fSIKIyBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgV3JpdGVDYWxsRnVuY3Rpb25SZXNwb25zZUR0byBmcm9tIGEgSlNPTiBzdHJpbmcKd3JpdGVfY2FsbF9mdW5jdGlvbl9yZXNwb25zZV9kdG9faW5zdGFuY2UgPSBXcml0ZUNhbGxGdW5jdGlvblJlc3BvbnNlRHRvLmZyb21fanNvbihqc29uKQojIHByaW50IHRoZSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0CnByaW50KFdyaXRlQ2FsbEZ1bmN0aW9uUmVzcG9uc2VEdG8udG9fanNvbigpKQoKIyBjb252ZXJ0IHRoZSBvYmplY3QgaW50byBhIGRpY3QKd3JpdGVfY2FsbF9mdW5jdGlvbl9yZXNwb25zZV9kdG9fZGljdCA9IHdyaXRlX2NhbGxfZnVuY3Rpb25fcmVzcG9uc2VfZHRvX2luc3RhbmNlLnRvX2RpY3QoKQojIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBXcml0ZUNhbGxGdW5jdGlvblJlc3BvbnNlRHRvIGZyb20gYSBkaWN0CndyaXRlX2NhbGxfZnVuY3Rpb25fcmVzcG9uc2VfZHRvX2Zyb21fZGljdCA9IFdyaXRlQ2FsbEZ1bmN0aW9uUmVzcG9uc2VEdG8uZnJvbV9kaWN0KHdyaXRlX2NhbGxfZnVuY3Rpb25fcmVzcG9uc2VfZHRvX2RpY3QpCmBgYApbW0JhY2sgdG8gTW9kZWwgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1tb2RlbHMpIFtbQmFjayB0byBBUEkgbGlzdF1dKC4uL1JFQURNRS5tZCNkb2N1bWVudGF0aW9uLWZvci1hcGktZW5kcG9pbnRzKSBbW0JhY2sgdG8gUkVBRE1FXV0oLi4vUkVBRE1FLm1kKQoKCg== \ No newline at end of file diff --git a/fireblocks/__init__.py b/fireblocks/__init__.py index cfa6d369..fc39d638 100644 --- a/fireblocks/__init__.py +++ b/fireblocks/__init__.py @@ -1,1625 +1 @@ -# coding: utf-8 - -# flake8: noqa - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -__version__ = "15.0.0" - -# import apis into sdk package -from fireblocks.api.api_user_api import ApiUserApi -from fireblocks.api.audit_logs_api import AuditLogsApi -from fireblocks.api.blockchains_assets_api import BlockchainsAssetsApi -from fireblocks.api.compliance_api import ComplianceApi -from fireblocks.api.compliance_screening_configuration_api import ( - ComplianceScreeningConfigurationApi, -) -from fireblocks.api.connected_accounts_beta_api import ConnectedAccountsBetaApi -from fireblocks.api.console_user_api import ConsoleUserApi -from fireblocks.api.contract_interactions_api import ContractInteractionsApi -from fireblocks.api.contract_templates_api import ContractTemplatesApi -from fireblocks.api.contracts_api import ContractsApi -from fireblocks.api.cosigners_beta_api import CosignersBetaApi -from fireblocks.api.deployed_contracts_api import DeployedContractsApi -from fireblocks.api.embedded_wallets_api import EmbeddedWalletsApi -from fireblocks.api.exchange_accounts_api import ExchangeAccountsApi -from fireblocks.api.external_wallets_api import ExternalWalletsApi -from fireblocks.api.fiat_accounts_api import FiatAccountsApi -from fireblocks.api.gas_stations_api import GasStationsApi -from fireblocks.api.internal_wallets_api import InternalWalletsApi -from fireblocks.api.key_link_beta_api import KeyLinkBetaApi -from fireblocks.api.keys_beta_api import KeysBetaApi -from fireblocks.api.nfts_api import NFTsApi -from fireblocks.api.network_connections_api import NetworkConnectionsApi -from fireblocks.api.ota_beta_api import OTABetaApi -from fireblocks.api.off_exchanges_api import OffExchangesApi -from fireblocks.api.onchain_data_api import OnchainDataApi -from fireblocks.api.payments_payout_api import PaymentsPayoutApi -from fireblocks.api.policy_editor_v2_beta_api import PolicyEditorV2BetaApi -from fireblocks.api.policy_editor_beta_api import PolicyEditorBetaApi -from fireblocks.api.reset_device_api import ResetDeviceApi -from fireblocks.api.smart_transfer_api import SmartTransferApi -from fireblocks.api.staking_api import StakingApi -from fireblocks.api.tr_link_api import TRLinkApi -from fireblocks.api.tags_api import TagsApi -from fireblocks.api.tokenization_api import TokenizationApi -from fireblocks.api.trading_beta_api import TradingBetaApi -from fireblocks.api.transactions_api import TransactionsApi -from fireblocks.api.travel_rule_api import TravelRuleApi -from fireblocks.api.user_groups_beta_api import UserGroupsBetaApi -from fireblocks.api.users_api import UsersApi -from fireblocks.api.vaults_api import VaultsApi -from fireblocks.api.web3_connections_api import Web3ConnectionsApi -from fireblocks.api.webhooks_api import WebhooksApi -from fireblocks.api.webhooks_v2_api import WebhooksV2Api -from fireblocks.api.workspace_api import WorkspaceApi -from fireblocks.api.workspace_status_beta_api import WorkspaceStatusBetaApi -from fireblocks.api.whitelist_ip_addresses_api import WhitelistIpAddressesApi - -# import ApiClient -from fireblocks.api_response import ApiResponse -from fireblocks.exceptions import OpenApiException -from fireblocks.exceptions import ApiTypeError -from fireblocks.exceptions import ApiValueError -from fireblocks.exceptions import ApiKeyError -from fireblocks.exceptions import ApiAttributeError -from fireblocks.exceptions import ApiException -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.additional_options import AdditionalOptions -from fireblocks.base_path import BasePath - -# import models into sdk package -from fireblocks.models.api_user import APIUser -from fireblocks.models.aba_payment_info import AbaPaymentInfo -from fireblocks.models.abi_function import AbiFunction -from fireblocks.models.access_registry_address_item import AccessRegistryAddressItem -from fireblocks.models.access_registry_current_state_response import ( - AccessRegistryCurrentStateResponse, -) -from fireblocks.models.access_registry_summary_response import ( - AccessRegistrySummaryResponse, -) -from fireblocks.models.access_type import AccessType -from fireblocks.models.account import Account -from fireblocks.models.account_access import AccountAccess -from fireblocks.models.account_base import AccountBase -from fireblocks.models.account_based_access_provider import AccountBasedAccessProvider -from fireblocks.models.account_based_access_provider_details import ( - AccountBasedAccessProviderDetails, -) -from fireblocks.models.account_config import AccountConfig -from fireblocks.models.account_holder_details import AccountHolderDetails -from fireblocks.models.account_identifier import AccountIdentifier -from fireblocks.models.account_reference import AccountReference -from fireblocks.models.account_type import AccountType -from fireblocks.models.account_type2 import AccountType2 -from fireblocks.models.ach_account_type import AchAccountType -from fireblocks.models.ach_address import AchAddress -from fireblocks.models.ach_destination import AchDestination -from fireblocks.models.ach_payment_info import AchPaymentInfo -from fireblocks.models.adapter_processing_result import AdapterProcessingResult -from fireblocks.models.add_abi_request_dto import AddAbiRequestDto -from fireblocks.models.add_asset_to_external_wallet_request import ( - AddAssetToExternalWalletRequest, -) -from fireblocks.models.add_collateral_request_body import AddCollateralRequestBody -from fireblocks.models.add_contract_asset_request import AddContractAssetRequest -from fireblocks.models.add_cosigner_request import AddCosignerRequest -from fireblocks.models.add_cosigner_response import AddCosignerResponse -from fireblocks.models.add_exchange_account_request import AddExchangeAccountRequest -from fireblocks.models.add_exchange_account_response import AddExchangeAccountResponse -from fireblocks.models.additional_info import AdditionalInfo -from fireblocks.models.additional_info_request import AdditionalInfoRequest -from fireblocks.models.additional_info_request_additional_info import ( - AdditionalInfoRequestAdditionalInfo, -) -from fireblocks.models.address_balance_item_dto import AddressBalanceItemDto -from fireblocks.models.address_balance_paged_response import AddressBalancePagedResponse -from fireblocks.models.address_not_available_error import AddressNotAvailableError -from fireblocks.models.address_registry_error import AddressRegistryError -from fireblocks.models.address_registry_legal_entity import AddressRegistryLegalEntity -from fireblocks.models.alert_exposure_type_enum import AlertExposureTypeEnum -from fireblocks.models.alert_level_enum import AlertLevelEnum -from fireblocks.models.aml_alert import AmlAlert -from fireblocks.models.aml_matched_rule import AmlMatchedRule -from fireblocks.models.aml_registration_result import AmlRegistrationResult -from fireblocks.models.aml_registration_result_full_payload import ( - AmlRegistrationResultFullPayload, -) -from fireblocks.models.aml_result import AmlResult -from fireblocks.models.aml_screening_result import AmlScreeningResult -from fireblocks.models.aml_status_enum import AmlStatusEnum -from fireblocks.models.aml_verdict_manual_request import AmlVerdictManualRequest -from fireblocks.models.aml_verdict_manual_response import AmlVerdictManualResponse -from fireblocks.models.amount_and_chain_descriptor import AmountAndChainDescriptor -from fireblocks.models.amount_config import AmountConfig -from fireblocks.models.amount_config_currency import AmountConfigCurrency -from fireblocks.models.amount_info import AmountInfo -from fireblocks.models.amount_over_time_config import AmountOverTimeConfig -from fireblocks.models.amount_range import AmountRange -from fireblocks.models.amount_range_min_max import AmountRangeMinMax -from fireblocks.models.amount_range_min_max2 import AmountRangeMinMax2 -from fireblocks.models.api_key import ApiKey -from fireblocks.models.api_keys_paginated_response import ApiKeysPaginatedResponse -from fireblocks.models.approval_request import ApprovalRequest -from fireblocks.models.approvers_config import ApproversConfig -from fireblocks.models.approvers_config_approval_groups_inner import ( - ApproversConfigApprovalGroupsInner, -) -from fireblocks.models.asset import Asset -from fireblocks.models.asset_already_exist_http_error import AssetAlreadyExistHttpError -from fireblocks.models.asset_amount import AssetAmount -from fireblocks.models.asset_bad_request_error_response import ( - AssetBadRequestErrorResponse, -) -from fireblocks.models.asset_class import AssetClass -from fireblocks.models.asset_config import AssetConfig -from fireblocks.models.asset_conflict_error_response import AssetConflictErrorResponse -from fireblocks.models.asset_details_metadata import AssetDetailsMetadata -from fireblocks.models.asset_details_onchain import AssetDetailsOnchain -from fireblocks.models.asset_feature import AssetFeature -from fireblocks.models.asset_forbidden_error_response import AssetForbiddenErrorResponse -from fireblocks.models.asset_internal_server_error_response import ( - AssetInternalServerErrorResponse, -) -from fireblocks.models.asset_media import AssetMedia -from fireblocks.models.asset_media_attributes import AssetMediaAttributes -from fireblocks.models.asset_metadata import AssetMetadata -from fireblocks.models.asset_metadata_dto import AssetMetadataDto -from fireblocks.models.asset_metadata_request import AssetMetadataRequest -from fireblocks.models.asset_not_found_error_response import AssetNotFoundErrorResponse -from fireblocks.models.asset_note import AssetNote -from fireblocks.models.asset_note_request import AssetNoteRequest -from fireblocks.models.asset_onchain import AssetOnchain -from fireblocks.models.asset_price_forbidden_error_response import ( - AssetPriceForbiddenErrorResponse, -) -from fireblocks.models.asset_price_not_found_error_response import ( - AssetPriceNotFoundErrorResponse, -) -from fireblocks.models.asset_price_response import AssetPriceResponse -from fireblocks.models.asset_response import AssetResponse -from fireblocks.models.asset_scope import AssetScope -from fireblocks.models.asset_type_enum import AssetTypeEnum -from fireblocks.models.asset_type_response import AssetTypeResponse -from fireblocks.models.asset_types_config_inner import AssetTypesConfigInner -from fireblocks.models.asset_wallet import AssetWallet -from fireblocks.models.audit_log_data import AuditLogData -from fireblocks.models.auditor_data import AuditorData -from fireblocks.models.authorization_groups import AuthorizationGroups -from fireblocks.models.authorization_info import AuthorizationInfo -from fireblocks.models.balance_history_item_dto import BalanceHistoryItemDto -from fireblocks.models.balance_history_paged_response import BalanceHistoryPagedResponse -from fireblocks.models.bank_address import BankAddress -from fireblocks.models.base_provider import BaseProvider -from fireblocks.models.basic_address_request import BasicAddressRequest -from fireblocks.models.block_info import BlockInfo -from fireblocks.models.blockchain_address import BlockchainAddress -from fireblocks.models.blockchain_destination import BlockchainDestination -from fireblocks.models.blockchain_explorer import BlockchainExplorer -from fireblocks.models.blockchain_media import BlockchainMedia -from fireblocks.models.blockchain_metadata import BlockchainMetadata -from fireblocks.models.blockchain_not_found_error_response import ( - BlockchainNotFoundErrorResponse, -) -from fireblocks.models.blockchain_onchain import BlockchainOnchain -from fireblocks.models.blockchain_response import BlockchainResponse -from fireblocks.models.blockchain_transfer import BlockchainTransfer -from fireblocks.models.bps_fee import BpsFee -from fireblocks.models.business_entity_type_enum import BusinessEntityTypeEnum -from fireblocks.models.business_identification import BusinessIdentification -from fireblocks.models.callback_handler import CallbackHandler -from fireblocks.models.callback_handler_request import CallbackHandlerRequest -from fireblocks.models.cancel_transaction_response import CancelTransactionResponse -from fireblocks.models.capability import Capability -from fireblocks.models.chain_descriptor import ChainDescriptor -from fireblocks.models.chain_info_response import ChainInfoResponse -from fireblocks.models.channel_dvn_config_with_confirmations import ( - ChannelDvnConfigWithConfirmations, -) -from fireblocks.models.channel_dvn_config_with_confirmations_receive_config import ( - ChannelDvnConfigWithConfirmationsReceiveConfig, -) -from fireblocks.models.channel_dvn_config_with_confirmations_send_config import ( - ChannelDvnConfigWithConfirmationsSendConfig, -) -from fireblocks.models.chaps_address import ChapsAddress -from fireblocks.models.chaps_destination import ChapsDestination -from fireblocks.models.chaps_payment_info import ChapsPaymentInfo -from fireblocks.models.claim_rewards_request import ClaimRewardsRequest -from fireblocks.models.collection_burn_request_dto import CollectionBurnRequestDto -from fireblocks.models.collection_burn_response_dto import CollectionBurnResponseDto -from fireblocks.models.collection_deploy_request_dto import CollectionDeployRequestDto -from fireblocks.models.collection_link_dto import CollectionLinkDto -from fireblocks.models.collection_metadata_dto import CollectionMetadataDto -from fireblocks.models.collection_mint_request_dto import CollectionMintRequestDto -from fireblocks.models.collection_mint_response_dto import CollectionMintResponseDto -from fireblocks.models.collection_ownership_response import CollectionOwnershipResponse -from fireblocks.models.collection_token_metadata_attribute_dto import ( - CollectionTokenMetadataAttributeDto, -) -from fireblocks.models.collection_token_metadata_dto import CollectionTokenMetadataDto -from fireblocks.models.collection_type import CollectionType -from fireblocks.models.committed_quote_enum import CommittedQuoteEnum -from fireblocks.models.committed_quote_type import CommittedQuoteType -from fireblocks.models.compliance_result_full_payload import ComplianceResultFullPayload -from fireblocks.models.compliance_result_statuses_enum import ( - ComplianceResultStatusesEnum, -) -from fireblocks.models.compliance_results import ComplianceResults -from fireblocks.models.compliance_screening_result import ComplianceScreeningResult -from fireblocks.models.compliance_screening_result_full_payload import ( - ComplianceScreeningResultFullPayload, -) -from fireblocks.models.config_change_request_status import ConfigChangeRequestStatus -from fireblocks.models.config_conversion_operation_snapshot import ( - ConfigConversionOperationSnapshot, -) -from fireblocks.models.config_disbursement_operation_snapshot import ( - ConfigDisbursementOperationSnapshot, -) -from fireblocks.models.config_operation import ConfigOperation -from fireblocks.models.config_operation_snapshot import ConfigOperationSnapshot -from fireblocks.models.config_operation_status import ConfigOperationStatus -from fireblocks.models.config_transfer_operation_snapshot import ( - ConfigTransferOperationSnapshot, -) -from fireblocks.models.connected_account import ConnectedAccount -from fireblocks.models.connected_account_approval_status import ( - ConnectedAccountApprovalStatus, -) -from fireblocks.models.connected_account_asset_type import ConnectedAccountAssetType -from fireblocks.models.connected_account_balances import ConnectedAccountBalances -from fireblocks.models.connected_account_balances_response import ( - ConnectedAccountBalancesResponse, -) -from fireblocks.models.connected_account_capability import ConnectedAccountCapability -from fireblocks.models.connected_account_error_response import ( - ConnectedAccountErrorResponse, -) -from fireblocks.models.connected_account_manifest import ConnectedAccountManifest -from fireblocks.models.connected_account_rate_response import ( - ConnectedAccountRateResponse, -) -from fireblocks.models.connected_account_total_balance import ( - ConnectedAccountTotalBalance, -) -from fireblocks.models.connected_account_trading_pair import ConnectedAccountTradingPair -from fireblocks.models.connected_account_trading_pair_supported_type import ( - ConnectedAccountTradingPairSupportedType, -) -from fireblocks.models.connected_account_trading_pairs_response import ( - ConnectedAccountTradingPairsResponse, -) -from fireblocks.models.connected_accounts_response import ConnectedAccountsResponse -from fireblocks.models.connected_single_account import ConnectedSingleAccount -from fireblocks.models.connected_single_account_response import ( - ConnectedSingleAccountResponse, -) -from fireblocks.models.console_user import ConsoleUser -from fireblocks.models.contract_abi_response_dto import ContractAbiResponseDto -from fireblocks.models.contract_abi_response_dto_abi_inner import ( - ContractAbiResponseDtoAbiInner, -) -from fireblocks.models.contract_address_response import ContractAddressResponse -from fireblocks.models.contract_attributes import ContractAttributes -from fireblocks.models.contract_data_decode_data_type import ContractDataDecodeDataType -from fireblocks.models.contract_data_decode_error import ContractDataDecodeError -from fireblocks.models.contract_data_decode_request import ContractDataDecodeRequest -from fireblocks.models.contract_data_decode_request_data import ( - ContractDataDecodeRequestData, -) -from fireblocks.models.contract_data_decode_response_params import ( - ContractDataDecodeResponseParams, -) -from fireblocks.models.contract_data_decoded_response import ContractDataDecodedResponse -from fireblocks.models.contract_data_log_data_param import ContractDataLogDataParam -from fireblocks.models.contract_deploy_request import ContractDeployRequest -from fireblocks.models.contract_deploy_response import ContractDeployResponse -from fireblocks.models.contract_doc import ContractDoc -from fireblocks.models.contract_metadata_dto import ContractMetadataDto -from fireblocks.models.contract_method_config import ContractMethodConfig -from fireblocks.models.contract_method_pattern import ContractMethodPattern -from fireblocks.models.contract_template_dto import ContractTemplateDto -from fireblocks.models.contract_upload_request import ContractUploadRequest -from fireblocks.models.contract_with_abi_dto import ContractWithAbiDto -from fireblocks.models.conversion_config_operation import ConversionConfigOperation -from fireblocks.models.conversion_operation_config_params import ( - ConversionOperationConfigParams, -) -from fireblocks.models.conversion_operation_execution import ( - ConversionOperationExecution, -) -from fireblocks.models.conversion_operation_execution_output import ( - ConversionOperationExecutionOutput, -) -from fireblocks.models.conversion_operation_execution_params import ( - ConversionOperationExecutionParams, -) -from fireblocks.models.conversion_operation_execution_params_execution_params import ( - ConversionOperationExecutionParamsExecutionParams, -) -from fireblocks.models.conversion_operation_failure import ConversionOperationFailure -from fireblocks.models.conversion_operation_preview import ConversionOperationPreview -from fireblocks.models.conversion_operation_preview_output import ( - ConversionOperationPreviewOutput, -) -from fireblocks.models.conversion_operation_type import ConversionOperationType -from fireblocks.models.conversion_validation_failure import ConversionValidationFailure -from fireblocks.models.convert_assets_request import ConvertAssetsRequest -from fireblocks.models.convert_assets_response import ConvertAssetsResponse -from fireblocks.models.cosigner import Cosigner -from fireblocks.models.cosigners_paginated_response import CosignersPaginatedResponse -from fireblocks.models.create_api_user import CreateAPIUser -from fireblocks.models.create_address_request import CreateAddressRequest -from fireblocks.models.create_address_response import CreateAddressResponse -from fireblocks.models.create_assets_request import CreateAssetsRequest -from fireblocks.models.create_config_operation_request import ( - CreateConfigOperationRequest, -) -from fireblocks.models.create_connection_request import CreateConnectionRequest -from fireblocks.models.create_connection_response import CreateConnectionResponse -from fireblocks.models.create_console_user import CreateConsoleUser -from fireblocks.models.create_contract_request import CreateContractRequest -from fireblocks.models.create_conversion_config_operation_request import ( - CreateConversionConfigOperationRequest, -) -from fireblocks.models.create_disbursement_config_operation_request import ( - CreateDisbursementConfigOperationRequest, -) -from fireblocks.models.create_internal_transfer_request import ( - CreateInternalTransferRequest, -) -from fireblocks.models.create_internal_wallet_asset_request import ( - CreateInternalWalletAssetRequest, -) -from fireblocks.models.create_multichain_token_request import ( - CreateMultichainTokenRequest, -) -from fireblocks.models.create_multichain_token_request_create_params import ( - CreateMultichainTokenRequestCreateParams, -) -from fireblocks.models.create_multiple_accounts_request import ( - CreateMultipleAccountsRequest, -) -from fireblocks.models.create_multiple_deposit_addresses_job_status import ( - CreateMultipleDepositAddressesJobStatus, -) -from fireblocks.models.create_multiple_deposit_addresses_request import ( - CreateMultipleDepositAddressesRequest, -) -from fireblocks.models.create_multiple_vault_accounts_job_status import ( - CreateMultipleVaultAccountsJobStatus, -) -from fireblocks.models.create_ncw_connection_request import CreateNcwConnectionRequest -from fireblocks.models.create_network_id_request import CreateNetworkIdRequest -from fireblocks.models.create_order_request import CreateOrderRequest -from fireblocks.models.create_payout_request import CreatePayoutRequest -from fireblocks.models.create_quote import CreateQuote -from fireblocks.models.create_quote_scope_inner import CreateQuoteScopeInner -from fireblocks.models.create_signing_key_dto import CreateSigningKeyDto -from fireblocks.models.create_signing_key_dto_proof_of_ownership import ( - CreateSigningKeyDtoProofOfOwnership, -) -from fireblocks.models.create_tag_request import CreateTagRequest -from fireblocks.models.create_token_request_dto import CreateTokenRequestDto -from fireblocks.models.create_token_request_dto_create_params import ( - CreateTokenRequestDtoCreateParams, -) -from fireblocks.models.create_transaction_response import CreateTransactionResponse -from fireblocks.models.create_transfer_config_operation_request import ( - CreateTransferConfigOperationRequest, -) -from fireblocks.models.create_user_group_response import CreateUserGroupResponse -from fireblocks.models.create_validation_key_dto import CreateValidationKeyDto -from fireblocks.models.create_validation_key_response_dto import ( - CreateValidationKeyResponseDto, -) -from fireblocks.models.create_vault_account_connection_request import ( - CreateVaultAccountConnectionRequest, -) -from fireblocks.models.create_vault_account_request import CreateVaultAccountRequest -from fireblocks.models.create_vault_asset_response import CreateVaultAssetResponse -from fireblocks.models.create_wallet_request import CreateWalletRequest -from fireblocks.models.create_webhook_request import CreateWebhookRequest -from fireblocks.models.create_workflow_execution_request_params_inner import ( - CreateWorkflowExecutionRequestParamsInner, -) -from fireblocks.models.custom_routing_dest import CustomRoutingDest -from fireblocks.models.d_app_address_config import DAppAddressConfig -from fireblocks.models.dvp_settlement import DVPSettlement -from fireblocks.models.dvp_settlement_type import DVPSettlementType -from fireblocks.models.decoded_log import DecodedLog -from fireblocks.models.default_network_routing_dest import DefaultNetworkRoutingDest -from fireblocks.models.delegation import Delegation -from fireblocks.models.delegation_blockchain_position_info import ( - DelegationBlockchainPositionInfo, -) -from fireblocks.models.delegation_summary import DelegationSummary -from fireblocks.models.delete_network_connection_response import ( - DeleteNetworkConnectionResponse, -) -from fireblocks.models.delete_network_id_response import DeleteNetworkIdResponse -from fireblocks.models.deploy_layer_zero_adapters_request import ( - DeployLayerZeroAdaptersRequest, -) -from fireblocks.models.deployable_address_response import DeployableAddressResponse -from fireblocks.models.deployed_contract_not_found_error import ( - DeployedContractNotFoundError, -) -from fireblocks.models.deployed_contract_response_dto import DeployedContractResponseDto -from fireblocks.models.deployed_contracts_paginated_response import ( - DeployedContractsPaginatedResponse, -) -from fireblocks.models.deposit_funds_from_linked_dda_response import ( - DepositFundsFromLinkedDDAResponse, -) -from fireblocks.models.derivation_path_config import DerivationPathConfig -from fireblocks.models.designated_signers_config import DesignatedSignersConfig -from fireblocks.models.destination import Destination -from fireblocks.models.destination_config import DestinationConfig -from fireblocks.models.destination_transfer_peer_path import DestinationTransferPeerPath -from fireblocks.models.destination_transfer_peer_path_response import ( - DestinationTransferPeerPathResponse, -) -from fireblocks.models.direct_access import DirectAccess -from fireblocks.models.direct_access_provider import DirectAccessProvider -from fireblocks.models.direct_access_provider_details import DirectAccessProviderDetails -from fireblocks.models.disbursement_amount_instruction import ( - DisbursementAmountInstruction, -) -from fireblocks.models.disbursement_config_operation import DisbursementConfigOperation -from fireblocks.models.disbursement_instruction import DisbursementInstruction -from fireblocks.models.disbursement_instruction_output import ( - DisbursementInstructionOutput, -) -from fireblocks.models.disbursement_operation_config_params import ( - DisbursementOperationConfigParams, -) -from fireblocks.models.disbursement_operation_execution import ( - DisbursementOperationExecution, -) -from fireblocks.models.disbursement_operation_execution_output import ( - DisbursementOperationExecutionOutput, -) -from fireblocks.models.disbursement_operation_execution_params import ( - DisbursementOperationExecutionParams, -) -from fireblocks.models.disbursement_operation_execution_params_execution_params import ( - DisbursementOperationExecutionParamsExecutionParams, -) -from fireblocks.models.disbursement_operation_input import DisbursementOperationInput -from fireblocks.models.disbursement_operation_preview import ( - DisbursementOperationPreview, -) -from fireblocks.models.disbursement_operation_preview_output import ( - DisbursementOperationPreviewOutput, -) -from fireblocks.models.disbursement_operation_preview_output_instruction_set_inner import ( - DisbursementOperationPreviewOutputInstructionSetInner, -) -from fireblocks.models.disbursement_operation_type import DisbursementOperationType -from fireblocks.models.disbursement_percentage_instruction import ( - DisbursementPercentageInstruction, -) -from fireblocks.models.disbursement_validation_failure import ( - DisbursementValidationFailure, -) -from fireblocks.models.dispatch_payout_response import DispatchPayoutResponse -from fireblocks.models.draft_response import DraftResponse -from fireblocks.models.draft_review_and_validation_response import ( - DraftReviewAndValidationResponse, -) -from fireblocks.models.drop_transaction_request import DropTransactionRequest -from fireblocks.models.drop_transaction_response import DropTransactionResponse -from fireblocks.models.dvn_config import DvnConfig -from fireblocks.models.dvn_config_with_confirmations import DvnConfigWithConfirmations -from fireblocks.models.evm_token_create_params_dto import EVMTokenCreateParamsDto -from fireblocks.models.edit_gas_station_configuration_response import ( - EditGasStationConfigurationResponse, -) -from fireblocks.models.embedded_wallet import EmbeddedWallet -from fireblocks.models.embedded_wallet_account import EmbeddedWalletAccount -from fireblocks.models.embedded_wallet_address_details import ( - EmbeddedWalletAddressDetails, -) -from fireblocks.models.embedded_wallet_algoritm import EmbeddedWalletAlgoritm -from fireblocks.models.embedded_wallet_asset_balance import EmbeddedWalletAssetBalance -from fireblocks.models.embedded_wallet_asset_response import EmbeddedWalletAssetResponse -from fireblocks.models.embedded_wallet_asset_reward_info import ( - EmbeddedWalletAssetRewardInfo, -) -from fireblocks.models.embedded_wallet_device import EmbeddedWalletDevice -from fireblocks.models.embedded_wallet_device_key_setup_response import ( - EmbeddedWalletDeviceKeySetupResponse, -) -from fireblocks.models.embedded_wallet_device_key_setup_response_setup_status_inner import ( - EmbeddedWalletDeviceKeySetupResponseSetupStatusInner, -) -from fireblocks.models.embedded_wallet_latest_backup_key import ( - EmbeddedWalletLatestBackupKey, -) -from fireblocks.models.embedded_wallet_latest_backup_response import ( - EmbeddedWalletLatestBackupResponse, -) -from fireblocks.models.embedded_wallet_paginated_addresses_response import ( - EmbeddedWalletPaginatedAddressesResponse, -) -from fireblocks.models.embedded_wallet_paginated_assets_response import ( - EmbeddedWalletPaginatedAssetsResponse, -) -from fireblocks.models.embedded_wallet_paginated_devices_response import ( - EmbeddedWalletPaginatedDevicesResponse, -) -from fireblocks.models.embedded_wallet_paginated_wallets_response import ( - EmbeddedWalletPaginatedWalletsResponse, -) -from fireblocks.models.embedded_wallet_required_algorithms import ( - EmbeddedWalletRequiredAlgorithms, -) -from fireblocks.models.embedded_wallet_set_up_status import EmbeddedWalletSetUpStatus -from fireblocks.models.embedded_wallet_setup_status_response import ( - EmbeddedWalletSetupStatusResponse, -) -from fireblocks.models.enable_device import EnableDevice -from fireblocks.models.enable_wallet import EnableWallet -from fireblocks.models.error_response import ErrorResponse -from fireblocks.models.error_response_error import ErrorResponseError -from fireblocks.models.error_schema import ErrorSchema -from fireblocks.models.estimated_fee_details import EstimatedFeeDetails -from fireblocks.models.estimated_network_fee_response import EstimatedNetworkFeeResponse -from fireblocks.models.estimated_transaction_fee_response import ( - EstimatedTransactionFeeResponse, -) -from fireblocks.models.ethereum_blockchain_data import EthereumBlockchainData -from fireblocks.models.european_sepa_address import EuropeanSEPAAddress -from fireblocks.models.european_sepa_destination import EuropeanSEPADestination -from fireblocks.models.exchange_account import ExchangeAccount -from fireblocks.models.exchange_asset import ExchangeAsset -from fireblocks.models.exchange_settlement_transactions_response import ( - ExchangeSettlementTransactionsResponse, -) -from fireblocks.models.exchange_trading_account import ExchangeTradingAccount -from fireblocks.models.exchange_type import ExchangeType -from fireblocks.models.execution_conversion_operation import ( - ExecutionConversionOperation, -) -from fireblocks.models.execution_disbursement_operation import ( - ExecutionDisbursementOperation, -) -from fireblocks.models.execution_operation_status import ExecutionOperationStatus -from fireblocks.models.execution_request_base_details import ExecutionRequestBaseDetails -from fireblocks.models.execution_request_details import ExecutionRequestDetails -from fireblocks.models.execution_response_base_details import ( - ExecutionResponseBaseDetails, -) -from fireblocks.models.execution_response_details import ExecutionResponseDetails -from fireblocks.models.execution_screening_operation import ExecutionScreeningOperation -from fireblocks.models.execution_step_error import ExecutionStepError -from fireblocks.models.execution_step_status_enum import ExecutionStepStatusEnum -from fireblocks.models.execution_step_type import ExecutionStepType -from fireblocks.models.execution_transfer_operation import ExecutionTransferOperation -from fireblocks.models.external_account import ExternalAccount -from fireblocks.models.external_account_local_bank_africa import ( - ExternalAccountLocalBankAfrica, -) -from fireblocks.models.external_account_mobile_money import ExternalAccountMobileMoney -from fireblocks.models.external_account_mobile_money_provider import ( - ExternalAccountMobileMoneyProvider, -) -from fireblocks.models.external_account_mobile_money_type import ( - ExternalAccountMobileMoneyType, -) -from fireblocks.models.external_account_sender_information import ( - ExternalAccountSenderInformation, -) -from fireblocks.models.external_account_type import ExternalAccountType -from fireblocks.models.external_wallet_asset import ExternalWalletAsset -from fireblocks.models.extra_parameters import ExtraParameters -from fireblocks.models.failure import Failure -from fireblocks.models.failure_reason import FailureReason -from fireblocks.models.fee import Fee -from fireblocks.models.fee_breakdown import FeeBreakdown -from fireblocks.models.fee_info import FeeInfo -from fireblocks.models.fee_level import FeeLevel -from fireblocks.models.fee_payer_info import FeePayerInfo -from fireblocks.models.fee_properties_details import FeePropertiesDetails -from fireblocks.models.fee_type_enum import FeeTypeEnum -from fireblocks.models.fetch_abi_request_dto import FetchAbiRequestDto -from fireblocks.models.fiat_account import FiatAccount -from fireblocks.models.fiat_account_type import FiatAccountType -from fireblocks.models.fiat_asset import FiatAsset -from fireblocks.models.fiat_destination import FiatDestination -from fireblocks.models.fiat_payment_metadata import FiatPaymentMetadata -from fireblocks.models.fiat_transfer import FiatTransfer -from fireblocks.models.fixed_amount_type_enum import FixedAmountTypeEnum -from fireblocks.models.fixed_fee import FixedFee -from fireblocks.models.freeze_transaction_response import FreezeTransactionResponse -from fireblocks.models.function_doc import FunctionDoc -from fireblocks.models.funds import Funds -from fireblocks.models.gas_station_configuration import GasStationConfiguration -from fireblocks.models.gas_station_configuration_response import ( - GasStationConfigurationResponse, -) -from fireblocks.models.gas_station_properties_response import ( - GasStationPropertiesResponse, -) -from fireblocks.models.gassless_standard_configurations import ( - GasslessStandardConfigurations, -) -from fireblocks.models.gassless_standard_configurations_gasless_standard_configurations_value import ( - GasslessStandardConfigurationsGaslessStandardConfigurationsValue, -) -from fireblocks.models.get_api_users_response import GetAPIUsersResponse -from fireblocks.models.get_audit_logs_response import GetAuditLogsResponse -from fireblocks.models.get_connections_response import GetConnectionsResponse -from fireblocks.models.get_console_users_response import GetConsoleUsersResponse -from fireblocks.models.get_deployable_address_request import GetDeployableAddressRequest -from fireblocks.models.get_exchange_accounts_credentials_public_key_response import ( - GetExchangeAccountsCredentialsPublicKeyResponse, -) -from fireblocks.models.get_filter_parameter import GetFilterParameter -from fireblocks.models.get_layer_zero_dvn_config_response import ( - GetLayerZeroDvnConfigResponse, -) -from fireblocks.models.get_layer_zero_peers_response import GetLayerZeroPeersResponse -from fireblocks.models.get_linked_collections_paginated_response import ( - GetLinkedCollectionsPaginatedResponse, -) -from fireblocks.models.get_max_bip_index_used_response import GetMaxBipIndexUsedResponse -from fireblocks.models.get_max_spendable_amount_response import ( - GetMaxSpendableAmountResponse, -) -from fireblocks.models.get_mpc_keys_response import GetMpcKeysResponse -from fireblocks.models.get_nfts_response import GetNFTsResponse -from fireblocks.models.get_orders_response import GetOrdersResponse -from fireblocks.models.get_ota_status_response import GetOtaStatusResponse -from fireblocks.models.get_ownership_tokens_response import GetOwnershipTokensResponse -from fireblocks.models.get_paged_exchange_accounts_response import ( - GetPagedExchangeAccountsResponse, -) -from fireblocks.models.get_paged_exchange_accounts_response_paging import ( - GetPagedExchangeAccountsResponsePaging, -) -from fireblocks.models.get_signing_key_response_dto import GetSigningKeyResponseDto -from fireblocks.models.get_transaction_operation import GetTransactionOperation -from fireblocks.models.get_validation_key_response_dto import ( - GetValidationKeyResponseDto, -) -from fireblocks.models.get_whitelist_ip_addresses_response import ( - GetWhitelistIpAddressesResponse, -) -from fireblocks.models.get_workspace_status_response import GetWorkspaceStatusResponse -from fireblocks.models.http_contract_does_not_exist_error import ( - HttpContractDoesNotExistError, -) -from fireblocks.models.iban_address import IbanAddress -from fireblocks.models.iban_destination import IbanDestination -from fireblocks.models.iban_payment_info import IbanPaymentInfo -from fireblocks.models.identification import Identification -from fireblocks.models.idl_type import IdlType -from fireblocks.models.indicative_quote_enum import IndicativeQuoteEnum -from fireblocks.models.indicative_quote_type import IndicativeQuoteType -from fireblocks.models.initiator_config import InitiatorConfig -from fireblocks.models.initiator_config_pattern import InitiatorConfigPattern -from fireblocks.models.instruction_amount import InstructionAmount -from fireblocks.models.interac_address import InteracAddress -from fireblocks.models.interac_destination import InteracDestination -from fireblocks.models.interac_payment_info import InteracPaymentInfo -from fireblocks.models.internal_reference import InternalReference -from fireblocks.models.internal_transfer_address import InternalTransferAddress -from fireblocks.models.internal_transfer_destination import InternalTransferDestination -from fireblocks.models.internal_transfer_response import InternalTransferResponse -from fireblocks.models.invalid_paramater_value_error import InvalidParamaterValueError -from fireblocks.models.job_created import JobCreated -from fireblocks.models.layer_zero_adapter_create_params import ( - LayerZeroAdapterCreateParams, -) -from fireblocks.models.lbt_payment_info import LbtPaymentInfo -from fireblocks.models.lean_abi_function import LeanAbiFunction -from fireblocks.models.lean_contract_dto import LeanContractDto -from fireblocks.models.lean_deployed_contract_response_dto import ( - LeanDeployedContractResponseDto, -) -from fireblocks.models.legacy_amount_aggregation_time_period_method import ( - LegacyAmountAggregationTimePeriodMethod, -) -from fireblocks.models.legacy_draft_response import LegacyDraftResponse -from fireblocks.models.legacy_draft_review_and_validation_response import ( - LegacyDraftReviewAndValidationResponse, -) -from fireblocks.models.legacy_policy_and_validation_response import ( - LegacyPolicyAndValidationResponse, -) -from fireblocks.models.legacy_policy_check_result import LegacyPolicyCheckResult -from fireblocks.models.legacy_policy_metadata import LegacyPolicyMetadata -from fireblocks.models.legacy_policy_response import LegacyPolicyResponse -from fireblocks.models.legacy_policy_rule import LegacyPolicyRule -from fireblocks.models.legacy_policy_rule_amount import LegacyPolicyRuleAmount -from fireblocks.models.legacy_policy_rule_amount_aggregation import ( - LegacyPolicyRuleAmountAggregation, -) -from fireblocks.models.legacy_policy_rule_authorization_groups import ( - LegacyPolicyRuleAuthorizationGroups, -) -from fireblocks.models.legacy_policy_rule_authorization_groups_groups_inner import ( - LegacyPolicyRuleAuthorizationGroupsGroupsInner, -) -from fireblocks.models.legacy_policy_rule_check_result import ( - LegacyPolicyRuleCheckResult, -) -from fireblocks.models.legacy_policy_rule_designated_signers import ( - LegacyPolicyRuleDesignatedSigners, -) -from fireblocks.models.legacy_policy_rule_dst import LegacyPolicyRuleDst -from fireblocks.models.legacy_policy_rule_error import LegacyPolicyRuleError -from fireblocks.models.legacy_policy_rule_operators import LegacyPolicyRuleOperators -from fireblocks.models.legacy_policy_rule_raw_message_signing import ( - LegacyPolicyRuleRawMessageSigning, -) -from fireblocks.models.legacy_policy_rule_raw_message_signing_derivation_path import ( - LegacyPolicyRuleRawMessageSigningDerivationPath, -) -from fireblocks.models.legacy_policy_rule_src import LegacyPolicyRuleSrc -from fireblocks.models.legacy_policy_rules import LegacyPolicyRules -from fireblocks.models.legacy_policy_src_or_dest_sub_type import ( - LegacyPolicySrcOrDestSubType, -) -from fireblocks.models.legacy_policy_src_or_dest_type import LegacyPolicySrcOrDestType -from fireblocks.models.legacy_policy_status import LegacyPolicyStatus -from fireblocks.models.legacy_policy_validation import LegacyPolicyValidation -from fireblocks.models.legacy_publish_draft_request import LegacyPublishDraftRequest -from fireblocks.models.legacy_publish_result import LegacyPublishResult -from fireblocks.models.legacy_src_or_dest_attributes_inner import ( - LegacySrcOrDestAttributesInner, -) -from fireblocks.models.linked_tokens_count import LinkedTokensCount -from fireblocks.models.list_assets_response import ListAssetsResponse -from fireblocks.models.list_blockchains_response import ListBlockchainsResponse -from fireblocks.models.list_owned_collections_response import ( - ListOwnedCollectionsResponse, -) -from fireblocks.models.list_owned_tokens_response import ListOwnedTokensResponse -from fireblocks.models.local_bank_transfer_africa_address import ( - LocalBankTransferAfricaAddress, -) -from fireblocks.models.local_bank_transfer_africa_destination import ( - LocalBankTransferAfricaDestination, -) -from fireblocks.models.manifest import Manifest -from fireblocks.models.market_execution_request_details import ( - MarketExecutionRequestDetails, -) -from fireblocks.models.market_execution_response_details import ( - MarketExecutionResponseDetails, -) -from fireblocks.models.market_requote_request_details import MarketRequoteRequestDetails -from fireblocks.models.market_requote_type_enum import MarketRequoteTypeEnum -from fireblocks.models.market_type_details import MarketTypeDetails -from fireblocks.models.market_type_enum import MarketTypeEnum -from fireblocks.models.media_entity_response import MediaEntityResponse -from fireblocks.models.merge_stake_accounts_request import MergeStakeAccountsRequest -from fireblocks.models.merge_stake_accounts_response import MergeStakeAccountsResponse -from fireblocks.models.mobile_money_address import MobileMoneyAddress -from fireblocks.models.mobile_money_destination import MobileMoneyDestination -from fireblocks.models.modify_signing_key_agent_id_dto import ModifySigningKeyAgentIdDto -from fireblocks.models.modify_signing_key_dto import ModifySigningKeyDto -from fireblocks.models.modify_validation_key_dto import ModifyValidationKeyDto -from fireblocks.models.momo_payment_info import MomoPaymentInfo -from fireblocks.models.mpc_key import MpcKey -from fireblocks.models.multichain_deployment_metadata import ( - MultichainDeploymentMetadata, -) -from fireblocks.models.network_channel import NetworkChannel -from fireblocks.models.network_connection import NetworkConnection -from fireblocks.models.network_connection_response import NetworkConnectionResponse -from fireblocks.models.network_connection_routing_policy_value import ( - NetworkConnectionRoutingPolicyValue, -) -from fireblocks.models.network_connection_status import NetworkConnectionStatus -from fireblocks.models.network_fee import NetworkFee -from fireblocks.models.network_id import NetworkId -from fireblocks.models.network_id_response import NetworkIdResponse -from fireblocks.models.network_id_routing_policy_value import ( - NetworkIdRoutingPolicyValue, -) -from fireblocks.models.network_record import NetworkRecord -from fireblocks.models.new_address import NewAddress -from fireblocks.models.none_network_routing_dest import NoneNetworkRoutingDest -from fireblocks.models.not_found_exception import NotFoundException -from fireblocks.models.notification import Notification -from fireblocks.models.notification_attempt import NotificationAttempt -from fireblocks.models.notification_attempts_paginated_response import ( - NotificationAttemptsPaginatedResponse, -) -from fireblocks.models.notification_paginated_response import ( - NotificationPaginatedResponse, -) -from fireblocks.models.notification_status import NotificationStatus -from fireblocks.models.notification_with_data import NotificationWithData -from fireblocks.models.onchain_transaction import OnchainTransaction -from fireblocks.models.onchain_transactions_paged_response import ( - OnchainTransactionsPagedResponse, -) -from fireblocks.models.one_time_address import OneTimeAddress -from fireblocks.models.one_time_address_account import OneTimeAddressAccount -from fireblocks.models.one_time_address_peer_type import OneTimeAddressPeerType -from fireblocks.models.one_time_address_reference import OneTimeAddressReference -from fireblocks.models.operation_execution_failure import OperationExecutionFailure -from fireblocks.models.order_details import OrderDetails -from fireblocks.models.order_execution_step import OrderExecutionStep -from fireblocks.models.order_side import OrderSide -from fireblocks.models.order_status import OrderStatus -from fireblocks.models.order_summary import OrderSummary -from fireblocks.models.paginated_address_response import PaginatedAddressResponse -from fireblocks.models.paginated_address_response_paging import ( - PaginatedAddressResponsePaging, -) -from fireblocks.models.paginated_asset_wallet_response import ( - PaginatedAssetWalletResponse, -) -from fireblocks.models.paginated_asset_wallet_response_paging import ( - PaginatedAssetWalletResponsePaging, -) -from fireblocks.models.paginated_assets_response import PaginatedAssetsResponse -from fireblocks.models.paging import Paging -from fireblocks.models.pair_api_key_request import PairApiKeyRequest -from fireblocks.models.pair_api_key_response import PairApiKeyResponse -from fireblocks.models.parameter import Parameter -from fireblocks.models.parameter_with_value import ParameterWithValue -from fireblocks.models.participant_relationship_type import ParticipantRelationshipType -from fireblocks.models.participants_identification import ParticipantsIdentification -from fireblocks.models.payee_account import PayeeAccount -from fireblocks.models.payee_account_response import PayeeAccountResponse -from fireblocks.models.payee_account_type import PayeeAccountType -from fireblocks.models.payid_address import PayidAddress -from fireblocks.models.payid_destination import PayidDestination -from fireblocks.models.payid_payment_info import PayidPaymentInfo -from fireblocks.models.payment_account import PaymentAccount -from fireblocks.models.payment_account_response import PaymentAccountResponse -from fireblocks.models.payment_account_type import PaymentAccountType -from fireblocks.models.payment_instructions import PaymentInstructions -from fireblocks.models.payment_instructions_one_of import PaymentInstructionsOneOf -from fireblocks.models.payment_redirect import PaymentRedirect -from fireblocks.models.payout_init_method import PayoutInitMethod -from fireblocks.models.payout_instruction import PayoutInstruction -from fireblocks.models.payout_instruction_response import PayoutInstructionResponse -from fireblocks.models.payout_instruction_state import PayoutInstructionState -from fireblocks.models.payout_response import PayoutResponse -from fireblocks.models.payout_state import PayoutState -from fireblocks.models.payout_status import PayoutStatus -from fireblocks.models.peer_adapter_info import PeerAdapterInfo -from fireblocks.models.peer_type import PeerType -from fireblocks.models.personal_entity_type_enum import PersonalEntityTypeEnum -from fireblocks.models.personal_identification import PersonalIdentification -from fireblocks.models.personal_identification_full_name import ( - PersonalIdentificationFullName, -) -from fireblocks.models.personal_identification_type import PersonalIdentificationType -from fireblocks.models.pix_address import PixAddress -from fireblocks.models.pix_destination import PixDestination -from fireblocks.models.pix_payment_info import PixPaymentInfo -from fireblocks.models.platform_account import PlatformAccount -from fireblocks.models.platform_peer_type import PlatformPeerType -from fireblocks.models.players import Players -from fireblocks.models.policy_and_validation_response import PolicyAndValidationResponse -from fireblocks.models.policy_check_result import PolicyCheckResult -from fireblocks.models.policy_currency import PolicyCurrency -from fireblocks.models.policy_metadata import PolicyMetadata -from fireblocks.models.policy_operator import PolicyOperator -from fireblocks.models.policy_response import PolicyResponse -from fireblocks.models.policy_rule import PolicyRule -from fireblocks.models.policy_rule_check_result import PolicyRuleCheckResult -from fireblocks.models.policy_rule_error import PolicyRuleError -from fireblocks.models.policy_status import PolicyStatus -from fireblocks.models.policy_tag import PolicyTag -from fireblocks.models.policy_type import PolicyType -from fireblocks.models.policy_validation import PolicyValidation -from fireblocks.models.policy_verdict_action_enum import PolicyVerdictActionEnum -from fireblocks.models.policy_verdict_action_enum2 import PolicyVerdictActionEnum2 -from fireblocks.models.postal_address import PostalAddress -from fireblocks.models.pre_screening import PreScreening -from fireblocks.models.prefunded_settlement import PrefundedSettlement -from fireblocks.models.prefunded_settlement_type import PrefundedSettlementType -from fireblocks.models.program_call_config import ProgramCallConfig -from fireblocks.models.provider import Provider -from fireblocks.models.providers_list_response import ProvidersListResponse -from fireblocks.models.public_key_information import PublicKeyInformation -from fireblocks.models.publish_draft_request import PublishDraftRequest -from fireblocks.models.publish_result import PublishResult -from fireblocks.models.quote import Quote -from fireblocks.models.quote_execution_request_details import ( - QuoteExecutionRequestDetails, -) -from fireblocks.models.quote_execution_step import QuoteExecutionStep -from fireblocks.models.quote_execution_type_details import QuoteExecutionTypeDetails -from fireblocks.models.quote_execution_with_requote_request_details import ( - QuoteExecutionWithRequoteRequestDetails, -) -from fireblocks.models.quote_execution_with_requote_response_details import ( - QuoteExecutionWithRequoteResponseDetails, -) -from fireblocks.models.quote_failure import QuoteFailure -from fireblocks.models.quote_properties_details import QuotePropertiesDetails -from fireblocks.models.quote_type_enum import QuoteTypeEnum -from fireblocks.models.quotes_response import QuotesResponse -from fireblocks.models.re_quote_details import ReQuoteDetails -from fireblocks.models.re_quote_details_re_quote import ReQuoteDetailsReQuote -from fireblocks.models.read_abi_function import ReadAbiFunction -from fireblocks.models.read_call_function_dto import ReadCallFunctionDto -from fireblocks.models.read_call_function_dto_abi_function import ( - ReadCallFunctionDtoAbiFunction, -) -from fireblocks.models.recipient_handle import RecipientHandle -from fireblocks.models.redeem_funds_to_linked_dda_response import ( - RedeemFundsToLinkedDDAResponse, -) -from fireblocks.models.register_new_asset_request import RegisterNewAssetRequest -from fireblocks.models.reissue_multichain_token_request import ( - ReissueMultichainTokenRequest, -) -from fireblocks.models.related_request import RelatedRequest -from fireblocks.models.related_transaction import RelatedTransaction -from fireblocks.models.remove_collateral_request_body import RemoveCollateralRequestBody -from fireblocks.models.remove_layer_zero_adapter_failed_result import ( - RemoveLayerZeroAdapterFailedResult, -) -from fireblocks.models.remove_layer_zero_adapters_request import ( - RemoveLayerZeroAdaptersRequest, -) -from fireblocks.models.remove_layer_zero_adapters_response import ( - RemoveLayerZeroAdaptersResponse, -) -from fireblocks.models.remove_layer_zero_peers_request import ( - RemoveLayerZeroPeersRequest, -) -from fireblocks.models.remove_layer_zero_peers_response import ( - RemoveLayerZeroPeersResponse, -) -from fireblocks.models.rename_connected_account_request import ( - RenameConnectedAccountRequest, -) -from fireblocks.models.rename_connected_account_response import ( - RenameConnectedAccountResponse, -) -from fireblocks.models.rename_cosigner import RenameCosigner -from fireblocks.models.rename_vault_account_response import RenameVaultAccountResponse -from fireblocks.models.resend_failed_notifications_job_status_response import ( - ResendFailedNotificationsJobStatusResponse, -) -from fireblocks.models.resend_failed_notifications_request import ( - ResendFailedNotificationsRequest, -) -from fireblocks.models.resend_failed_notifications_response import ( - ResendFailedNotificationsResponse, -) -from fireblocks.models.resend_notifications_by_resource_id_request import ( - ResendNotificationsByResourceIdRequest, -) -from fireblocks.models.resend_transaction_webhooks_request import ( - ResendTransactionWebhooksRequest, -) -from fireblocks.models.resend_webhooks_by_transaction_id_response import ( - ResendWebhooksByTransactionIdResponse, -) -from fireblocks.models.resend_webhooks_response import ResendWebhooksResponse -from fireblocks.models.respond_to_connection_request import RespondToConnectionRequest -from fireblocks.models.retry_requote_request_details import RetryRequoteRequestDetails -from fireblocks.models.retry_requote_type_enum import RetryRequoteTypeEnum -from fireblocks.models.reward_info import RewardInfo -from fireblocks.models.rewards_info import RewardsInfo -from fireblocks.models.role_details import RoleDetails -from fireblocks.models.role_grantee import RoleGrantee -from fireblocks.models.sepa_address import SEPAAddress -from fireblocks.models.sepa_destination import SEPADestination -from fireblocks.models.sol_account import SOLAccount -from fireblocks.models.sol_account_with_value import SOLAccountWithValue -from fireblocks.models.scope_item import ScopeItem -from fireblocks.models.screening_alert_exposure_type_enum import ( - ScreeningAlertExposureTypeEnum, -) -from fireblocks.models.screening_aml_alert import ScreeningAmlAlert -from fireblocks.models.screening_aml_matched_rule import ScreeningAmlMatchedRule -from fireblocks.models.screening_aml_result import ScreeningAmlResult -from fireblocks.models.screening_configurations_request import ( - ScreeningConfigurationsRequest, -) -from fireblocks.models.screening_metadata_config import ScreeningMetadataConfig -from fireblocks.models.screening_operation_execution import ScreeningOperationExecution -from fireblocks.models.screening_operation_execution_output import ( - ScreeningOperationExecutionOutput, -) -from fireblocks.models.screening_operation_failure import ScreeningOperationFailure -from fireblocks.models.screening_operation_type import ScreeningOperationType -from fireblocks.models.screening_policy_response import ScreeningPolicyResponse -from fireblocks.models.screening_provider_rules_configuration_response import ( - ScreeningProviderRulesConfigurationResponse, -) -from fireblocks.models.screening_risk_level_enum import ScreeningRiskLevelEnum -from fireblocks.models.screening_tr_link_amount import ScreeningTRLinkAmount -from fireblocks.models.screening_tr_link_missing_trm_decision import ( - ScreeningTRLinkMissingTrmDecision, -) -from fireblocks.models.screening_tr_link_missing_trm_rule import ( - ScreeningTRLinkMissingTrmRule, -) -from fireblocks.models.screening_tr_link_post_screening_rule import ( - ScreeningTRLinkPostScreeningRule, -) -from fireblocks.models.screening_tr_link_prescreening_rule import ( - ScreeningTRLinkPrescreeningRule, -) -from fireblocks.models.screening_tr_link_rule_base import ScreeningTRLinkRuleBase -from fireblocks.models.screening_travel_rule_matched_rule import ( - ScreeningTravelRuleMatchedRule, -) -from fireblocks.models.screening_travel_rule_prescreening_rule import ( - ScreeningTravelRulePrescreeningRule, -) -from fireblocks.models.screening_travel_rule_result import ScreeningTravelRuleResult -from fireblocks.models.screening_update_configurations import ( - ScreeningUpdateConfigurations, -) -from fireblocks.models.screening_validation_failure import ScreeningValidationFailure -from fireblocks.models.screening_verdict import ScreeningVerdict -from fireblocks.models.screening_verdict_enum import ScreeningVerdictEnum -from fireblocks.models.screening_verdict_matched_rule import ScreeningVerdictMatchedRule -from fireblocks.models.search_network_ids_response import SearchNetworkIdsResponse -from fireblocks.models.sepa_payment_info import SepaPaymentInfo -from fireblocks.models.session_dto import SessionDTO -from fireblocks.models.session_metadata import SessionMetadata -from fireblocks.models.set_admin_quorum_threshold_request import ( - SetAdminQuorumThresholdRequest, -) -from fireblocks.models.set_admin_quorum_threshold_response import ( - SetAdminQuorumThresholdResponse, -) -from fireblocks.models.set_asset_price_request import SetAssetPriceRequest -from fireblocks.models.set_auto_fuel_request import SetAutoFuelRequest -from fireblocks.models.set_confirmations_threshold_request import ( - SetConfirmationsThresholdRequest, -) -from fireblocks.models.set_confirmations_threshold_response import ( - SetConfirmationsThresholdResponse, -) -from fireblocks.models.set_customer_ref_id_for_address_request import ( - SetCustomerRefIdForAddressRequest, -) -from fireblocks.models.set_customer_ref_id_request import SetCustomerRefIdRequest -from fireblocks.models.set_layer_zero_dvn_config_request import ( - SetLayerZeroDvnConfigRequest, -) -from fireblocks.models.set_layer_zero_dvn_config_response import ( - SetLayerZeroDvnConfigResponse, -) -from fireblocks.models.set_layer_zero_peers_request import SetLayerZeroPeersRequest -from fireblocks.models.set_layer_zero_peers_response import SetLayerZeroPeersResponse -from fireblocks.models.set_network_id_discoverability_request import ( - SetNetworkIdDiscoverabilityRequest, -) -from fireblocks.models.set_network_id_name_request import SetNetworkIdNameRequest -from fireblocks.models.set_network_id_response import SetNetworkIdResponse -from fireblocks.models.set_network_id_routing_policy_request import ( - SetNetworkIdRoutingPolicyRequest, -) -from fireblocks.models.set_ota_status_request import SetOtaStatusRequest -from fireblocks.models.set_ota_status_response import SetOtaStatusResponse -from fireblocks.models.set_ota_status_response_one_of import SetOtaStatusResponseOneOf -from fireblocks.models.set_routing_policy_request import SetRoutingPolicyRequest -from fireblocks.models.set_routing_policy_response import SetRoutingPolicyResponse -from fireblocks.models.settlement import Settlement -from fireblocks.models.settlement_request_body import SettlementRequestBody -from fireblocks.models.settlement_response import SettlementResponse -from fireblocks.models.settlement_source_account import SettlementSourceAccount -from fireblocks.models.side import Side -from fireblocks.models.signed_message import SignedMessage -from fireblocks.models.signed_message_signature import SignedMessageSignature -from fireblocks.models.signing_key_dto import SigningKeyDto -from fireblocks.models.smart_transfer_approve_term import SmartTransferApproveTerm -from fireblocks.models.smart_transfer_bad_request_response import ( - SmartTransferBadRequestResponse, -) -from fireblocks.models.smart_transfer_coin_statistic import SmartTransferCoinStatistic -from fireblocks.models.smart_transfer_create_ticket import SmartTransferCreateTicket -from fireblocks.models.smart_transfer_create_ticket_term import ( - SmartTransferCreateTicketTerm, -) -from fireblocks.models.smart_transfer_forbidden_response import ( - SmartTransferForbiddenResponse, -) -from fireblocks.models.smart_transfer_fund_dvp_ticket import SmartTransferFundDvpTicket -from fireblocks.models.smart_transfer_fund_term import SmartTransferFundTerm -from fireblocks.models.smart_transfer_manually_fund_term import ( - SmartTransferManuallyFundTerm, -) -from fireblocks.models.smart_transfer_not_found_response import ( - SmartTransferNotFoundResponse, -) -from fireblocks.models.smart_transfer_set_ticket_expiration import ( - SmartTransferSetTicketExpiration, -) -from fireblocks.models.smart_transfer_set_ticket_external_id import ( - SmartTransferSetTicketExternalId, -) -from fireblocks.models.smart_transfer_set_user_groups import SmartTransferSetUserGroups -from fireblocks.models.smart_transfer_statistic import SmartTransferStatistic -from fireblocks.models.smart_transfer_statistic_inflow import ( - SmartTransferStatisticInflow, -) -from fireblocks.models.smart_transfer_statistic_outflow import ( - SmartTransferStatisticOutflow, -) -from fireblocks.models.smart_transfer_submit_ticket import SmartTransferSubmitTicket -from fireblocks.models.smart_transfer_ticket import SmartTransferTicket -from fireblocks.models.smart_transfer_ticket_filtered_response import ( - SmartTransferTicketFilteredResponse, -) -from fireblocks.models.smart_transfer_ticket_response import SmartTransferTicketResponse -from fireblocks.models.smart_transfer_ticket_term import SmartTransferTicketTerm -from fireblocks.models.smart_transfer_ticket_term_response import ( - SmartTransferTicketTermResponse, -) -from fireblocks.models.smart_transfer_update_ticket_term import ( - SmartTransferUpdateTicketTerm, -) -from fireblocks.models.smart_transfer_user_groups import SmartTransferUserGroups -from fireblocks.models.smart_transfer_user_groups_response import ( - SmartTransferUserGroupsResponse, -) -from fireblocks.models.sol_parameter import SolParameter -from fireblocks.models.sol_parameter_with_value import SolParameterWithValue -from fireblocks.models.solana_blockchain_data import SolanaBlockchainData -from fireblocks.models.solana_config import SolanaConfig -from fireblocks.models.solana_instruction import SolanaInstruction -from fireblocks.models.solana_instruction_with_value import SolanaInstructionWithValue -from fireblocks.models.solana_simple_create_params import SolanaSimpleCreateParams -from fireblocks.models.source_config import SourceConfig -from fireblocks.models.source_transfer_peer_path import SourceTransferPeerPath -from fireblocks.models.source_transfer_peer_path_response import ( - SourceTransferPeerPathResponse, -) -from fireblocks.models.spam_ownership_response import SpamOwnershipResponse -from fireblocks.models.spam_token_response import SpamTokenResponse -from fireblocks.models.spei_address import SpeiAddress -from fireblocks.models.spei_advanced_payment_info import SpeiAdvancedPaymentInfo -from fireblocks.models.spei_basic_payment_info import SpeiBasicPaymentInfo -from fireblocks.models.spei_destination import SpeiDestination -from fireblocks.models.split_request import SplitRequest -from fireblocks.models.split_response import SplitResponse -from fireblocks.models.st_eth_blockchain_data import StEthBlockchainData -from fireblocks.models.stake_request import StakeRequest -from fireblocks.models.stake_response import StakeResponse -from fireblocks.models.staking_provider import StakingProvider -from fireblocks.models.status import Status -from fireblocks.models.stellar_ripple_create_params_dto import ( - StellarRippleCreateParamsDto, -) -from fireblocks.models.supported_block_chains_response import ( - SupportedBlockChainsResponse, -) -from fireblocks.models.supported_blockchain import SupportedBlockchain -from fireblocks.models.swift_address import SwiftAddress -from fireblocks.models.swift_destination import SwiftDestination -from fireblocks.models.system_message_info import SystemMessageInfo -from fireblocks.models.tr_link_api_paged_response import TRLinkAPIPagedResponse -from fireblocks.models.tr_link_amount import TRLinkAmount -from fireblocks.models.tr_link_amount2 import TRLinkAmount2 -from fireblocks.models.tr_link_amount_range import TRLinkAmountRange -from fireblocks.models.tr_link_assess_travel_rule_request import ( - TRLinkAssessTravelRuleRequest, -) -from fireblocks.models.tr_link_assess_travel_rule_response import ( - TRLinkAssessTravelRuleResponse, -) -from fireblocks.models.tr_link_assessment_decision import TRLinkAssessmentDecision -from fireblocks.models.tr_link_asset import TRLinkAsset -from fireblocks.models.tr_link_asset_data import TRLinkAssetData -from fireblocks.models.tr_link_asset_format import TRLinkAssetFormat -from fireblocks.models.tr_link_assets_list_paged_response import ( - TRLinkAssetsListPagedResponse, -) -from fireblocks.models.tr_link_cancel_trm_request import TRLinkCancelTrmRequest -from fireblocks.models.tr_link_connect_integration_request import ( - TRLinkConnectIntegrationRequest, -) -from fireblocks.models.tr_link_create_customer_request import ( - TRLinkCreateCustomerRequest, -) -from fireblocks.models.tr_link_create_integration_request import ( - TRLinkCreateIntegrationRequest, -) -from fireblocks.models.tr_link_create_trm_request import TRLinkCreateTrmRequest -from fireblocks.models.tr_link_currency import TRLinkCurrency -from fireblocks.models.tr_link_customer_integration_response import ( - TRLinkCustomerIntegrationResponse, -) -from fireblocks.models.tr_link_customer_response import TRLinkCustomerResponse -from fireblocks.models.tr_link_destination_transfer_peer_path import ( - TRLinkDestinationTransferPeerPath, -) -from fireblocks.models.tr_link_discoverable_status import TRLinkDiscoverableStatus -from fireblocks.models.tr_link_fiat_value import TRLinkFiatValue -from fireblocks.models.tr_link_geographic_address_request import ( - TRLinkGeographicAddressRequest, -) -from fireblocks.models.tr_link_get_supported_asset_response import ( - TRLinkGetSupportedAssetResponse, -) -from fireblocks.models.tr_link_ivms import TRLinkIvms -from fireblocks.models.tr_link_ivms_response import TRLinkIvmsResponse -from fireblocks.models.tr_link_jwk_public_key import TRLinkJwkPublicKey -from fireblocks.models.tr_link_missing_trm_action import TRLinkMissingTrmAction -from fireblocks.models.tr_link_missing_trm_action2 import TRLinkMissingTrmAction2 -from fireblocks.models.tr_link_missing_trm_action_enum import TRLinkMissingTrmActionEnum -from fireblocks.models.tr_link_missing_trm_decision import TRLinkMissingTrmDecision -from fireblocks.models.tr_link_missing_trm_rule import TRLinkMissingTrmRule -from fireblocks.models.tr_link_missing_trm_rule2 import TRLinkMissingTrmRule2 -from fireblocks.models.tr_link_one_time_address import TRLinkOneTimeAddress -from fireblocks.models.tr_link_paging import TRLinkPaging -from fireblocks.models.tr_link_partner_response import TRLinkPartnerResponse -from fireblocks.models.tr_link_policy_response import TRLinkPolicyResponse -from fireblocks.models.tr_link_post_screening_action import TRLinkPostScreeningAction -from fireblocks.models.tr_link_post_screening_rule import TRLinkPostScreeningRule -from fireblocks.models.tr_link_post_screening_rule2 import TRLinkPostScreeningRule2 -from fireblocks.models.tr_link_pre_screening_action import TRLinkPreScreeningAction -from fireblocks.models.tr_link_pre_screening_action2 import TRLinkPreScreeningAction2 -from fireblocks.models.tr_link_pre_screening_action_enum import ( - TRLinkPreScreeningActionEnum, -) -from fireblocks.models.tr_link_pre_screening_rule import TRLinkPreScreeningRule -from fireblocks.models.tr_link_pre_screening_rule2 import TRLinkPreScreeningRule2 -from fireblocks.models.tr_link_provider_data import TRLinkProviderData -from fireblocks.models.tr_link_provider_result import TRLinkProviderResult -from fireblocks.models.tr_link_provider_result_with_rule import ( - TRLinkProviderResultWithRule, -) -from fireblocks.models.tr_link_provider_result_with_rule2 import ( - TRLinkProviderResultWithRule2, -) -from fireblocks.models.tr_link_public_asset_info import TRLinkPublicAssetInfo -from fireblocks.models.tr_link_public_key_response import TRLinkPublicKeyResponse -from fireblocks.models.tr_link_redirect_trm_request import TRLinkRedirectTrmRequest -from fireblocks.models.tr_link_registration_result import TRLinkRegistrationResult -from fireblocks.models.tr_link_registration_result_full_payload import ( - TRLinkRegistrationResultFullPayload, -) -from fireblocks.models.tr_link_registration_status import TRLinkRegistrationStatus -from fireblocks.models.tr_link_registration_status_enum import ( - TRLinkRegistrationStatusEnum, -) -from fireblocks.models.tr_link_result import TRLinkResult -from fireblocks.models.tr_link_result_full_payload import TRLinkResultFullPayload -from fireblocks.models.tr_link_rule_base import TRLinkRuleBase -from fireblocks.models.tr_link_set_destination_travel_rule_message_id_request import ( - TRLinkSetDestinationTravelRuleMessageIdRequest, -) -from fireblocks.models.tr_link_set_destination_travel_rule_message_id_response import ( - TRLinkSetDestinationTravelRuleMessageIdResponse, -) -from fireblocks.models.tr_link_set_transaction_travel_rule_message_id_request import ( - TRLinkSetTransactionTravelRuleMessageIdRequest, -) -from fireblocks.models.tr_link_set_transaction_travel_rule_message_id_response import ( - TRLinkSetTransactionTravelRuleMessageIdResponse, -) -from fireblocks.models.tr_link_source_transfer_peer_path import ( - TRLinkSourceTransferPeerPath, -) -from fireblocks.models.tr_link_test_connection_response import ( - TRLinkTestConnectionResponse, -) -from fireblocks.models.tr_link_thresholds import TRLinkThresholds -from fireblocks.models.tr_link_transaction_direction import TRLinkTransactionDirection -from fireblocks.models.tr_link_transfer_peer_path import TRLinkTransferPeerPath -from fireblocks.models.tr_link_trm_direction import TRLinkTrmDirection -from fireblocks.models.tr_link_trm_info_response import TRLinkTrmInfoResponse -from fireblocks.models.tr_link_trm_screening_status import TRLinkTrmScreeningStatus -from fireblocks.models.tr_link_trm_screening_status_enum import ( - TRLinkTrmScreeningStatusEnum, -) -from fireblocks.models.tr_link_trm_status import TRLinkTrmStatus -from fireblocks.models.tr_link_txn_info import TRLinkTxnInfo -from fireblocks.models.tr_link_update_customer_request import ( - TRLinkUpdateCustomerRequest, -) -from fireblocks.models.tr_link_vasp_dto import TRLinkVaspDto -from fireblocks.models.tr_link_vasp_geographic_address import ( - TRLinkVaspGeographicAddress, -) -from fireblocks.models.tr_link_vasp_list_dto import TRLinkVaspListDto -from fireblocks.models.tr_link_vasp_national_identification import ( - TRLinkVaspNationalIdentification, -) -from fireblocks.models.tr_link_verdict import TRLinkVerdict -from fireblocks.models.tr_link_verdict_enum import TRLinkVerdictEnum -from fireblocks.models.tag import Tag -from fireblocks.models.tag_attachment_operation_action import ( - TagAttachmentOperationAction, -) -from fireblocks.models.tags_paged_response import TagsPagedResponse -from fireblocks.models.templates_paginated_response import TemplatesPaginatedResponse -from fireblocks.models.third_party_routing import ThirdPartyRouting -from fireblocks.models.time_period_config import TimePeriodConfig -from fireblocks.models.time_period_match_type import TimePeriodMatchType -from fireblocks.models.to_collateral_transaction import ToCollateralTransaction -from fireblocks.models.to_exchange_transaction import ToExchangeTransaction -from fireblocks.models.token_collection_response import TokenCollectionResponse -from fireblocks.models.token_contract_summary_response import ( - TokenContractSummaryResponse, -) -from fireblocks.models.token_info_not_found_error_response import ( - TokenInfoNotFoundErrorResponse, -) -from fireblocks.models.token_link_dto import TokenLinkDto -from fireblocks.models.token_link_dto_token_metadata import TokenLinkDtoTokenMetadata -from fireblocks.models.token_link_exists_http_error import TokenLinkExistsHttpError -from fireblocks.models.token_link_not_multichain_compatible_http_error import ( - TokenLinkNotMultichainCompatibleHttpError, -) -from fireblocks.models.token_link_request_dto import TokenLinkRequestDto -from fireblocks.models.token_ownership_response import TokenOwnershipResponse -from fireblocks.models.token_ownership_spam_update_payload import ( - TokenOwnershipSpamUpdatePayload, -) -from fireblocks.models.token_ownership_status_update_payload import ( - TokenOwnershipStatusUpdatePayload, -) -from fireblocks.models.token_response import TokenResponse -from fireblocks.models.tokens_paginated_response import TokensPaginatedResponse -from fireblocks.models.total_supply_item_dto import TotalSupplyItemDto -from fireblocks.models.total_supply_paged_response import TotalSupplyPagedResponse -from fireblocks.models.trading_account_type import TradingAccountType -from fireblocks.models.trading_error_schema import TradingErrorSchema -from fireblocks.models.trading_provider import TradingProvider -from fireblocks.models.transaction import Transaction -from fireblocks.models.transaction_direction import TransactionDirection -from fireblocks.models.transaction_fee import TransactionFee -from fireblocks.models.transaction_operation import TransactionOperation -from fireblocks.models.transaction_operation_enum import TransactionOperationEnum -from fireblocks.models.transaction_receipt_response import TransactionReceiptResponse -from fireblocks.models.transaction_request import TransactionRequest -from fireblocks.models.transaction_request_amount import TransactionRequestAmount -from fireblocks.models.transaction_request_destination import ( - TransactionRequestDestination, -) -from fireblocks.models.transaction_request_fee import TransactionRequestFee -from fireblocks.models.transaction_request_gas_limit import TransactionRequestGasLimit -from fireblocks.models.transaction_request_gas_price import TransactionRequestGasPrice -from fireblocks.models.transaction_request_network_fee import ( - TransactionRequestNetworkFee, -) -from fireblocks.models.transaction_request_network_staking import ( - TransactionRequestNetworkStaking, -) -from fireblocks.models.transaction_request_priority_fee import ( - TransactionRequestPriorityFee, -) -from fireblocks.models.transaction_response import TransactionResponse -from fireblocks.models.transaction_response_contract_call_decoded_data import ( - TransactionResponseContractCallDecodedData, -) -from fireblocks.models.transaction_response_destination import ( - TransactionResponseDestination, -) -from fireblocks.models.transfer_config_operation import TransferConfigOperation -from fireblocks.models.transfer_operation_config_params import ( - TransferOperationConfigParams, -) -from fireblocks.models.transfer_operation_execution import TransferOperationExecution -from fireblocks.models.transfer_operation_execution_output import ( - TransferOperationExecutionOutput, -) -from fireblocks.models.transfer_operation_execution_params import ( - TransferOperationExecutionParams, -) -from fireblocks.models.transfer_operation_execution_params_execution_params import ( - TransferOperationExecutionParamsExecutionParams, -) -from fireblocks.models.transfer_operation_failure import TransferOperationFailure -from fireblocks.models.transfer_operation_failure_data import ( - TransferOperationFailureData, -) -from fireblocks.models.transfer_operation_preview import TransferOperationPreview -from fireblocks.models.transfer_operation_preview_output import ( - TransferOperationPreviewOutput, -) -from fireblocks.models.transfer_operation_type import TransferOperationType -from fireblocks.models.transfer_peer_path_sub_type import TransferPeerPathSubType -from fireblocks.models.transfer_peer_path_type import TransferPeerPathType -from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum -from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum -from fireblocks.models.transfer_rail import TransferRail -from fireblocks.models.transfer_receipt import TransferReceipt -from fireblocks.models.transfer_validation_failure import TransferValidationFailure -from fireblocks.models.travel_rule_action_enum import TravelRuleActionEnum -from fireblocks.models.travel_rule_address import TravelRuleAddress -from fireblocks.models.travel_rule_create_transaction_request import ( - TravelRuleCreateTransactionRequest, -) -from fireblocks.models.travel_rule_date_and_place_of_birth import ( - TravelRuleDateAndPlaceOfBirth, -) -from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum -from fireblocks.models.travel_rule_geographic_address import TravelRuleGeographicAddress -from fireblocks.models.travel_rule_get_all_vasps_response import ( - TravelRuleGetAllVASPsResponse, -) -from fireblocks.models.travel_rule_issuer import TravelRuleIssuer -from fireblocks.models.travel_rule_issuers import TravelRuleIssuers -from fireblocks.models.travel_rule_legal_person import TravelRuleLegalPerson -from fireblocks.models.travel_rule_legal_person_name_identifier import ( - TravelRuleLegalPersonNameIdentifier, -) -from fireblocks.models.travel_rule_matched_rule import TravelRuleMatchedRule -from fireblocks.models.travel_rule_national_identification import ( - TravelRuleNationalIdentification, -) -from fireblocks.models.travel_rule_natural_name_identifier import ( - TravelRuleNaturalNameIdentifier, -) -from fireblocks.models.travel_rule_natural_person import TravelRuleNaturalPerson -from fireblocks.models.travel_rule_natural_person_name_identifier import ( - TravelRuleNaturalPersonNameIdentifier, -) -from fireblocks.models.travel_rule_ownership_proof import TravelRuleOwnershipProof -from fireblocks.models.travel_rule_person import TravelRulePerson -from fireblocks.models.travel_rule_pii_ivms import TravelRulePiiIVMS -from fireblocks.models.travel_rule_policy_rule_response import ( - TravelRulePolicyRuleResponse, -) -from fireblocks.models.travel_rule_prescreening_rule import TravelRulePrescreeningRule -from fireblocks.models.travel_rule_result import TravelRuleResult -from fireblocks.models.travel_rule_status_enum import TravelRuleStatusEnum -from fireblocks.models.travel_rule_transaction_blockchain_info import ( - TravelRuleTransactionBlockchainInfo, -) -from fireblocks.models.travel_rule_update_vasp_details import ( - TravelRuleUpdateVASPDetails, -) -from fireblocks.models.travel_rule_vasp import TravelRuleVASP -from fireblocks.models.travel_rule_validate_date_and_place_of_birth import ( - TravelRuleValidateDateAndPlaceOfBirth, -) -from fireblocks.models.travel_rule_validate_full_transaction_request import ( - TravelRuleValidateFullTransactionRequest, -) -from fireblocks.models.travel_rule_validate_geographic_address import ( - TravelRuleValidateGeographicAddress, -) -from fireblocks.models.travel_rule_validate_legal_person import ( - TravelRuleValidateLegalPerson, -) -from fireblocks.models.travel_rule_validate_legal_person_name_identifier import ( - TravelRuleValidateLegalPersonNameIdentifier, -) -from fireblocks.models.travel_rule_validate_national_identification import ( - TravelRuleValidateNationalIdentification, -) -from fireblocks.models.travel_rule_validate_natural_name_identifier import ( - TravelRuleValidateNaturalNameIdentifier, -) -from fireblocks.models.travel_rule_validate_natural_person import ( - TravelRuleValidateNaturalPerson, -) -from fireblocks.models.travel_rule_validate_natural_person_name_identifier import ( - TravelRuleValidateNaturalPersonNameIdentifier, -) -from fireblocks.models.travel_rule_validate_person import TravelRuleValidatePerson -from fireblocks.models.travel_rule_validate_pii_ivms import TravelRuleValidatePiiIVMS -from fireblocks.models.travel_rule_validate_transaction_request import ( - TravelRuleValidateTransactionRequest, -) -from fireblocks.models.travel_rule_validate_transaction_response import ( - TravelRuleValidateTransactionResponse, -) -from fireblocks.models.travel_rule_vasp_for_vault import TravelRuleVaspForVault -from fireblocks.models.travel_rule_verdict_enum import TravelRuleVerdictEnum -from fireblocks.models.trust_proof_of_address_create_response import ( - TrustProofOfAddressCreateResponse, -) -from fireblocks.models.trust_proof_of_address_request import TrustProofOfAddressRequest -from fireblocks.models.trust_proof_of_address_response import ( - TrustProofOfAddressResponse, -) -from fireblocks.models.tx_log import TxLog -from fireblocks.models.typed_message_transaction_status_enum import ( - TypedMessageTransactionStatusEnum, -) -from fireblocks.models.us_wire_address import USWireAddress -from fireblocks.models.us_wire_destination import USWireDestination -from fireblocks.models.unfreeze_transaction_response import UnfreezeTransactionResponse -from fireblocks.models.unmanaged_wallet import UnmanagedWallet -from fireblocks.models.unspent_input import UnspentInput -from fireblocks.models.unspent_inputs_response import UnspentInputsResponse -from fireblocks.models.unstake_request import UnstakeRequest -from fireblocks.models.update_asset_user_metadata_request import ( - UpdateAssetUserMetadataRequest, -) -from fireblocks.models.update_callback_handler_request import ( - UpdateCallbackHandlerRequest, -) -from fireblocks.models.update_callback_handler_response import ( - UpdateCallbackHandlerResponse, -) -from fireblocks.models.update_draft_request import UpdateDraftRequest -from fireblocks.models.update_tag_request import UpdateTagRequest -from fireblocks.models.update_token_ownership_status_dto import ( - UpdateTokenOwnershipStatusDto, -) -from fireblocks.models.update_vault_account_asset_address_request import ( - UpdateVaultAccountAssetAddressRequest, -) -from fireblocks.models.update_vault_account_request import UpdateVaultAccountRequest -from fireblocks.models.update_webhook_request import UpdateWebhookRequest -from fireblocks.models.us_wire_payment_info import UsWirePaymentInfo -from fireblocks.models.user_group_create_request import UserGroupCreateRequest -from fireblocks.models.user_group_create_response import UserGroupCreateResponse -from fireblocks.models.user_group_response import UserGroupResponse -from fireblocks.models.user_group_update_request import UserGroupUpdateRequest -from fireblocks.models.user_response import UserResponse -from fireblocks.models.user_role import UserRole -from fireblocks.models.user_status import UserStatus -from fireblocks.models.user_type import UserType -from fireblocks.models.validate_address_response import ValidateAddressResponse -from fireblocks.models.validate_layer_zero_channel_response import ( - ValidateLayerZeroChannelResponse, -) -from fireblocks.models.validation_key_dto import ValidationKeyDto -from fireblocks.models.validator import Validator -from fireblocks.models.vault_account import VaultAccount -from fireblocks.models.vault_account_tag_attachment_operation import ( - VaultAccountTagAttachmentOperation, -) -from fireblocks.models.vault_account_tag_attachment_pending_operation import ( - VaultAccountTagAttachmentPendingOperation, -) -from fireblocks.models.vault_account_tag_attachment_rejected_operation import ( - VaultAccountTagAttachmentRejectedOperation, -) -from fireblocks.models.vault_accounts_paged_response import VaultAccountsPagedResponse -from fireblocks.models.vault_accounts_paged_response_paging import ( - VaultAccountsPagedResponsePaging, -) -from fireblocks.models.vault_accounts_tag_attachment_operations_request import ( - VaultAccountsTagAttachmentOperationsRequest, -) -from fireblocks.models.vault_accounts_tag_attachment_operations_response import ( - VaultAccountsTagAttachmentOperationsResponse, -) -from fireblocks.models.vault_action_status import VaultActionStatus -from fireblocks.models.vault_asset import VaultAsset -from fireblocks.models.vault_wallet_address import VaultWalletAddress -from fireblocks.models.vendor_dto import VendorDto -from fireblocks.models.verdict_config import VerdictConfig -from fireblocks.models.version_summary import VersionSummary -from fireblocks.models.wallet_asset import WalletAsset -from fireblocks.models.wallet_asset_additional_info import WalletAssetAdditionalInfo -from fireblocks.models.webhook import Webhook -from fireblocks.models.webhook_event import WebhookEvent -from fireblocks.models.webhook_metric import WebhookMetric -from fireblocks.models.webhook_paginated_response import WebhookPaginatedResponse -from fireblocks.models.withdraw_request import WithdrawRequest -from fireblocks.models.workflow_config_status import WorkflowConfigStatus -from fireblocks.models.workflow_configuration_id import WorkflowConfigurationId -from fireblocks.models.workflow_execution_operation import WorkflowExecutionOperation -from fireblocks.models.workspace import Workspace -from fireblocks.models.write_abi_function import WriteAbiFunction -from fireblocks.models.write_call_function_dto import WriteCallFunctionDto -from fireblocks.models.write_call_function_dto_abi_function import ( - WriteCallFunctionDtoAbiFunction, -) -from fireblocks.models.write_call_function_response_dto import ( - WriteCallFunctionResponseDto, -) +IyBjb2Rpbmc6IHV0Zi04CgojIGZsYWtlODogbm9xYQoKIiIiCkZpcmVibG9ja3MgQVBJCgpGaXJlYmxvY2tzIHByb3ZpZGVzIGEgc3VpdGUgb2YgYXBwbGljYXRpb25zIHRvIG1hbmFnZSBkaWdpdGFsIGFzc2V0IG9wZXJhdGlvbnMgYW5kIGEgY29tcGxldGUgZGV2ZWxvcG1lbnQgcGxhdGZvcm0gdG8gYnVpbGQgeW91ciBidXNpbmVzcyBvbiB0aGUgYmxvY2tjaGFpbi4gIC0gVmlzaXQgb3VyIHdlYnNpdGUgZm9yIG1vcmUgaW5mb3JtYXRpb246IFtGaXJlYmxvY2tzIFdlYnNpdGVdKGh0dHBzOi8vZmlyZWJsb2Nrcy5jb20pIC0gVmlzaXQgb3VyIGRldmVsb3BlciBkb2NzOiBbRmlyZWJsb2NrcyBEZXZQb3J0YWxdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbSkKClRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgpDb250YWN0OiBkZXZlbG9wZXJzQGZpcmVibG9ja3MuY29tCkdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQoKRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCl9fdmVyc2lvbl9fID0gIjAuMC4wIgoKIyBpbXBvcnQgYXBpcyBpbnRvIHNkayBwYWNrYWdlCmZyb20gZmlyZWJsb2Nrcy5hcGkuYXBpX3VzZXJfYXBpIGltcG9ydCBBcGlVc2VyQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuYXVkaXRfbG9nc19hcGkgaW1wb3J0IEF1ZGl0TG9nc0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmJsb2NrY2hhaW5zX2Fzc2V0c19hcGkgaW1wb3J0IEJsb2NrY2hhaW5zQXNzZXRzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuY29tcGxpYW5jZV9hcGkgaW1wb3J0IENvbXBsaWFuY2VBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5jb21wbGlhbmNlX3NjcmVlbmluZ19jb25maWd1cmF0aW9uX2FwaSBpbXBvcnQgKAogICAgQ29tcGxpYW5jZVNjcmVlbmluZ0NvbmZpZ3VyYXRpb25BcGksCikKZnJvbSBmaXJlYmxvY2tzLmFwaS5jb25uZWN0ZWRfYWNjb3VudHNfYmV0YV9hcGkgaW1wb3J0IENvbm5lY3RlZEFjY291bnRzQmV0YUFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmNvbnNvbGVfdXNlcl9hcGkgaW1wb3J0IENvbnNvbGVVc2VyQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuY29udHJhY3RfaW50ZXJhY3Rpb25zX2FwaSBpbXBvcnQgQ29udHJhY3RJbnRlcmFjdGlvbnNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5jb250cmFjdF90ZW1wbGF0ZXNfYXBpIGltcG9ydCBDb250cmFjdFRlbXBsYXRlc0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmNvbnRyYWN0c19hcGkgaW1wb3J0IENvbnRyYWN0c0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmNvc2lnbmVyc19iZXRhX2FwaSBpbXBvcnQgQ29zaWduZXJzQmV0YUFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmRlcGxveWVkX2NvbnRyYWN0c19hcGkgaW1wb3J0IERlcGxveWVkQ29udHJhY3RzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuZW1iZWRkZWRfd2FsbGV0c19hcGkgaW1wb3J0IEVtYmVkZGVkV2FsbGV0c0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmV4Y2hhbmdlX2FjY291bnRzX2FwaSBpbXBvcnQgRXhjaGFuZ2VBY2NvdW50c0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmV4dGVybmFsX3dhbGxldHNfYXBpIGltcG9ydCBFeHRlcm5hbFdhbGxldHNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5maWF0X2FjY291bnRzX2FwaSBpbXBvcnQgRmlhdEFjY291bnRzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuZ2FzX3N0YXRpb25zX2FwaSBpbXBvcnQgR2FzU3RhdGlvbnNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5pbnRlcm5hbF93YWxsZXRzX2FwaSBpbXBvcnQgSW50ZXJuYWxXYWxsZXRzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkua2V5X2xpbmtfYmV0YV9hcGkgaW1wb3J0IEtleUxpbmtCZXRhQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkua2V5c19iZXRhX2FwaSBpbXBvcnQgS2V5c0JldGFBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5uZnRzX2FwaSBpbXBvcnQgTkZUc0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLm5ldHdvcmtfY29ubmVjdGlvbnNfYXBpIGltcG9ydCBOZXR3b3JrQ29ubmVjdGlvbnNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5vdGFfYmV0YV9hcGkgaW1wb3J0IE9UQUJldGFBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5vZmZfZXhjaGFuZ2VzX2FwaSBpbXBvcnQgT2ZmRXhjaGFuZ2VzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkub25jaGFpbl9kYXRhX2FwaSBpbXBvcnQgT25jaGFpbkRhdGFBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5wYXltZW50c19wYXlvdXRfYXBpIGltcG9ydCBQYXltZW50c1BheW91dEFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLnBvbGljeV9lZGl0b3JfdjJfYmV0YV9hcGkgaW1wb3J0IFBvbGljeUVkaXRvclYyQmV0YUFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLnBvbGljeV9lZGl0b3JfYmV0YV9hcGkgaW1wb3J0IFBvbGljeUVkaXRvckJldGFBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5yZXNldF9kZXZpY2VfYXBpIGltcG9ydCBSZXNldERldmljZUFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLnNtYXJ0X3RyYW5zZmVyX2FwaSBpbXBvcnQgU21hcnRUcmFuc2ZlckFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLnN0YWtpbmdfYXBpIGltcG9ydCBTdGFraW5nQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkudHJfbGlua19hcGkgaW1wb3J0IFRSTGlua0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLnRhZ3NfYXBpIGltcG9ydCBUYWdzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkudG9rZW5pemF0aW9uX2FwaSBpbXBvcnQgVG9rZW5pemF0aW9uQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkudHJhZGluZ19iZXRhX2FwaSBpbXBvcnQgVHJhZGluZ0JldGFBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS50cmFuc2FjdGlvbnNfYXBpIGltcG9ydCBUcmFuc2FjdGlvbnNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS50cmF2ZWxfcnVsZV9hcGkgaW1wb3J0IFRyYXZlbFJ1bGVBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS51c2VyX2dyb3Vwc19iZXRhX2FwaSBpbXBvcnQgVXNlckdyb3Vwc0JldGFBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS51c2Vyc19hcGkgaW1wb3J0IFVzZXJzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkudmF1bHRzX2FwaSBpbXBvcnQgVmF1bHRzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkud2ViM19jb25uZWN0aW9uc19hcGkgaW1wb3J0IFdlYjNDb25uZWN0aW9uc0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLndlYmhvb2tzX2FwaSBpbXBvcnQgV2ViaG9va3NBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS53ZWJob29rc192Ml9hcGkgaW1wb3J0IFdlYmhvb2tzVjJBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS53b3Jrc3BhY2VfYXBpIGltcG9ydCBXb3Jrc3BhY2VBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS53b3Jrc3BhY2Vfc3RhdHVzX2JldGFfYXBpIGltcG9ydCBXb3Jrc3BhY2VTdGF0dXNCZXRhQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkud2hpdGVsaXN0X2lwX2FkZHJlc3Nlc19hcGkgaW1wb3J0IFdoaXRlbGlzdElwQWRkcmVzc2VzQXBpCgojIGltcG9ydCBBcGlDbGllbnQKZnJvbSBmaXJlYmxvY2tzLmFwaV9yZXNwb25zZSBpbXBvcnQgQXBpUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IE9wZW5BcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaVR5cGVFcnJvcgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpVmFsdWVFcnJvcgpmcm9tIGZpcmVibG9ja3MuZXhjZXB0aW9ucyBpbXBvcnQgQXBpS2V5RXJyb3IKZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUF0dHJpYnV0ZUVycm9yCmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCBBcGlFeGNlcHRpb24KZnJvbSBmaXJlYmxvY2tzLmNsaWVudCBpbXBvcnQgRmlyZWJsb2Nrcwpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmFkZGl0aW9uYWxfb3B0aW9ucyBpbXBvcnQgQWRkaXRpb25hbE9wdGlvbnMKZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKCiMgaW1wb3J0IG1vZGVscyBpbnRvIHNkayBwYWNrYWdlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXBpX3VzZXIgaW1wb3J0IEFQSVVzZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hYmFfcGF5bWVudF9pbmZvIGltcG9ydCBBYmFQYXltZW50SW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFiaV9mdW5jdGlvbiBpbXBvcnQgQWJpRnVuY3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2Nlc3NfcmVnaXN0cnlfYWRkcmVzc19pdGVtIGltcG9ydCBBY2Nlc3NSZWdpc3RyeUFkZHJlc3NJdGVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjZXNzX3JlZ2lzdHJ5X2N1cnJlbnRfc3RhdGVfcmVzcG9uc2UgaW1wb3J0ICgKICAgIEFjY2Vzc1JlZ2lzdHJ5Q3VycmVudFN0YXRlUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2Nlc3NfcmVnaXN0cnlfc3VtbWFyeV9yZXNwb25zZSBpbXBvcnQgKAogICAgQWNjZXNzUmVnaXN0cnlTdW1tYXJ5UmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2Nlc3NfdHlwZSBpbXBvcnQgQWNjZXNzVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnQgaW1wb3J0IEFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2FjY2VzcyBpbXBvcnQgQWNjb3VudEFjY2Vzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfYmFzZSBpbXBvcnQgQWNjb3VudEJhc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2Jhc2VkX2FjY2Vzc19wcm92aWRlciBpbXBvcnQgQWNjb3VudEJhc2VkQWNjZXNzUHJvdmlkZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2Jhc2VkX2FjY2Vzc19wcm92aWRlcl9pbmZvIGltcG9ydCAoCiAgICBBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlckluZm8sCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2Jhc2VkX3Byb3ZpZGVyX2RldGFpbHMgaW1wb3J0IEFjY291bnRCYXNlZFByb3ZpZGVyRGV0YWlscwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfY29uZmlnIGltcG9ydCBBY2NvdW50Q29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9ob2xkZXJfZGV0YWlscyBpbXBvcnQgQWNjb3VudEhvbGRlckRldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2lkZW50aWZpZXIgaW1wb3J0IEFjY291bnRJZGVudGlmaWVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9yZWZlcmVuY2UgaW1wb3J0IEFjY291bnRSZWZlcmVuY2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X3R5cGUgaW1wb3J0IEFjY291bnRUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF90eXBlMiBpbXBvcnQgQWNjb3VudFR5cGUyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNoX2FjY291bnRfdHlwZSBpbXBvcnQgQWNoQWNjb3VudFR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2hfYWRkcmVzcyBpbXBvcnQgQWNoQWRkcmVzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjaF9kZXN0aW5hdGlvbiBpbXBvcnQgQWNoRGVzdGluYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2hfcGF5bWVudF9pbmZvIGltcG9ydCBBY2hQYXltZW50SW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkYXB0ZXJfcHJvY2Vzc2luZ19yZXN1bHQgaW1wb3J0IEFkYXB0ZXJQcm9jZXNzaW5nUmVzdWx0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkX2FiaV9yZXF1ZXN0X2R0byBpbXBvcnQgQWRkQWJpUmVxdWVzdER0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZF9hc3NldF90b19leHRlcm5hbF93YWxsZXRfcmVxdWVzdCBpbXBvcnQgKAogICAgQWRkQXNzZXRUb0V4dGVybmFsV2FsbGV0UmVxdWVzdCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZF9jb2xsYXRlcmFsX3JlcXVlc3RfYm9keSBpbXBvcnQgQWRkQ29sbGF0ZXJhbFJlcXVlc3RCb2R5CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkX2NvbnRyYWN0X2Fzc2V0X3JlcXVlc3QgaW1wb3J0IEFkZENvbnRyYWN0QXNzZXRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkX2Nvc2lnbmVyX3JlcXVlc3QgaW1wb3J0IEFkZENvc2lnbmVyUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZF9jb3NpZ25lcl9yZXNwb25zZSBpbXBvcnQgQWRkQ29zaWduZXJSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZF9leGNoYW5nZV9hY2NvdW50X3JlcXVlc3QgaW1wb3J0IEFkZEV4Y2hhbmdlQWNjb3VudFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hZGRfZXhjaGFuZ2VfYWNjb3VudF9yZXNwb25zZSBpbXBvcnQgQWRkRXhjaGFuZ2VBY2NvdW50UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hZGRpdGlvbmFsX2luZm8gaW1wb3J0IEFkZGl0aW9uYWxJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkaXRpb25hbF9pbmZvX3JlcXVlc3QgaW1wb3J0IEFkZGl0aW9uYWxJbmZvUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZGl0aW9uYWxfaW5mb19yZXF1ZXN0X2FkZGl0aW9uYWxfaW5mbyBpbXBvcnQgKAogICAgQWRkaXRpb25hbEluZm9SZXF1ZXN0QWRkaXRpb25hbEluZm8sCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hZGRyZXNzX2JhbGFuY2VfaXRlbV9kdG8gaW1wb3J0IEFkZHJlc3NCYWxhbmNlSXRlbUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZHJlc3NfYmFsYW5jZV9wYWdlZF9yZXNwb25zZSBpbXBvcnQgQWRkcmVzc0JhbGFuY2VQYWdlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkcmVzc19ub3RfYXZhaWxhYmxlX2Vycm9yIGltcG9ydCBBZGRyZXNzTm90QXZhaWxhYmxlRXJyb3IKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hZGRyZXNzX3JlZ2lzdHJ5X2Vycm9yIGltcG9ydCBBZGRyZXNzUmVnaXN0cnlFcnJvcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZHJlc3NfcmVnaXN0cnlfbGVnYWxfZW50aXR5IGltcG9ydCBBZGRyZXNzUmVnaXN0cnlMZWdhbEVudGl0eQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFsZXJ0X2V4cG9zdXJlX3R5cGVfZW51bSBpbXBvcnQgQWxlcnRFeHBvc3VyZVR5cGVFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWxlcnRfbGV2ZWxfZW51bSBpbXBvcnQgQWxlcnRMZXZlbEVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfYWxlcnQgaW1wb3J0IEFtbEFsZXJ0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX21hdGNoZWRfcnVsZSBpbXBvcnQgQW1sTWF0Y2hlZFJ1bGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfcmVnaXN0cmF0aW9uX3Jlc3VsdCBpbXBvcnQgQW1sUmVnaXN0cmF0aW9uUmVzdWx0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX3JlZ2lzdHJhdGlvbl9yZXN1bHRfZnVsbF9wYXlsb2FkIGltcG9ydCAoCiAgICBBbWxSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF9yZXN1bHQgaW1wb3J0IEFtbFJlc3VsdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF9zY3JlZW5pbmdfcmVzdWx0IGltcG9ydCBBbWxTY3JlZW5pbmdSZXN1bHQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfc3RhdHVzX2VudW0gaW1wb3J0IEFtbFN0YXR1c0VudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfdmVyZGljdF9tYW51YWxfcmVxdWVzdCBpbXBvcnQgQW1sVmVyZGljdE1hbnVhbFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfdmVyZGljdF9tYW51YWxfcmVzcG9uc2UgaW1wb3J0IEFtbFZlcmRpY3RNYW51YWxSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9hbmRfY2hhaW5fZGVzY3JpcHRvciBpbXBvcnQgQW1vdW50QW5kQ2hhaW5EZXNjcmlwdG9yCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X2NvbmZpZyBpbXBvcnQgQW1vdW50Q29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X2NvbmZpZ19jdXJyZW5jeSBpbXBvcnQgQW1vdW50Q29uZmlnQ3VycmVuY3kKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfaW5mbyBpbXBvcnQgQW1vdW50SW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9vdmVyX3RpbWVfY29uZmlnIGltcG9ydCBBbW91bnRPdmVyVGltZUNvbmZpZwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9yYW5nZSBpbXBvcnQgQW1vdW50UmFuZ2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfcmFuZ2VfbWluX21heCBpbXBvcnQgQW1vdW50UmFuZ2VNaW5NYXgKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfcmFuZ2VfbWluX21heDIgaW1wb3J0IEFtb3VudFJhbmdlTWluTWF4Mgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFwaV9rZXkgaW1wb3J0IEFwaUtleQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFwaV9rZXlzX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgQXBpS2V5c1BhZ2luYXRlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXBwcm92YWxfcmVxdWVzdCBpbXBvcnQgQXBwcm92YWxSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXBwcm92ZXJzX2NvbmZpZyBpbXBvcnQgQXBwcm92ZXJzQ29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXBwcm92ZXJzX2NvbmZpZ19hcHByb3ZhbF9ncm91cHNfaW5uZXIgaW1wb3J0ICgKICAgIEFwcHJvdmVyc0NvbmZpZ0FwcHJvdmFsR3JvdXBzSW5uZXIsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldCBpbXBvcnQgQXNzZXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbHJlYWR5X2V4aXN0X2h0dHBfZXJyb3IgaW1wb3J0IEFzc2V0QWxyZWFkeUV4aXN0SHR0cEVycm9yCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfYW1vdW50IGltcG9ydCBBc3NldEFtb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2JhZF9yZXF1ZXN0X2Vycm9yX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBBc3NldEJhZFJlcXVlc3RFcnJvclJlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfY2xhc3MgaW1wb3J0IEFzc2V0Q2xhc3MKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9jb25maWcgaW1wb3J0IEFzc2V0Q29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfY29uZmxpY3RfZXJyb3JfcmVzcG9uc2UgaW1wb3J0IEFzc2V0Q29uZmxpY3RFcnJvclJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfZGV0YWlsc19tZXRhZGF0YSBpbXBvcnQgQXNzZXREZXRhaWxzTWV0YWRhdGEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9kZXRhaWxzX29uY2hhaW4gaW1wb3J0IEFzc2V0RGV0YWlsc09uY2hhaW4KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9mZWF0dXJlIGltcG9ydCBBc3NldEZlYXR1cmUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9mb3JiaWRkZW5fZXJyb3JfcmVzcG9uc2UgaW1wb3J0IEFzc2V0Rm9yYmlkZGVuRXJyb3JSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2ludGVybmFsX3NlcnZlcl9lcnJvcl9yZXNwb25zZSBpbXBvcnQgKAogICAgQXNzZXRJbnRlcm5hbFNlcnZlckVycm9yUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9tZWRpYSBpbXBvcnQgQXNzZXRNZWRpYQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X21lZGlhX2F0dHJpYnV0ZXMgaW1wb3J0IEFzc2V0TWVkaWFBdHRyaWJ1dGVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfbWV0YWRhdGEgaW1wb3J0IEFzc2V0TWV0YWRhdGEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9tZXRhZGF0YV9kdG8gaW1wb3J0IEFzc2V0TWV0YWRhdGFEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9tZXRhZGF0YV9yZXF1ZXN0IGltcG9ydCBBc3NldE1ldGFkYXRhUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X25vdF9mb3VuZF9lcnJvcl9yZXNwb25zZSBpbXBvcnQgQXNzZXROb3RGb3VuZEVycm9yUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9ub3RlIGltcG9ydCBBc3NldE5vdGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9ub3RlX3JlcXVlc3QgaW1wb3J0IEFzc2V0Tm90ZVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9vbmNoYWluIGltcG9ydCBBc3NldE9uY2hhaW4KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9wcmljZV9mb3JiaWRkZW5fZXJyb3JfcmVzcG9uc2UgaW1wb3J0ICgKICAgIEFzc2V0UHJpY2VGb3JiaWRkZW5FcnJvclJlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfcHJpY2Vfbm90X2ZvdW5kX2Vycm9yX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBBc3NldFByaWNlTm90Rm91bmRFcnJvclJlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfcHJpY2VfcmVzcG9uc2UgaW1wb3J0IEFzc2V0UHJpY2VSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X3Jlc3BvbnNlIGltcG9ydCBBc3NldFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfc2NvcGUgaW1wb3J0IEFzc2V0U2NvcGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF90eXBlX3Jlc3BvbnNlIGltcG9ydCBBc3NldFR5cGVSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X3R5cGVzX2NvbmZpZ19pbm5lciBpbXBvcnQgQXNzZXRUeXBlc0NvbmZpZ0lubmVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfd2FsbGV0IGltcG9ydCBBc3NldFdhbGxldApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmF1ZGl0X2xvZ19kYXRhIGltcG9ydCBBdWRpdExvZ0RhdGEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hdWRpdG9yX2RhdGEgaW1wb3J0IEF1ZGl0b3JEYXRhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXV0aG9yaXphdGlvbl9ncm91cHMgaW1wb3J0IEF1dGhvcml6YXRpb25Hcm91cHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hdXRob3JpemF0aW9uX2luZm8gaW1wb3J0IEF1dGhvcml6YXRpb25JbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYmFsYW5jZV9oaXN0b3J5X2l0ZW1fZHRvIGltcG9ydCBCYWxhbmNlSGlzdG9yeUl0ZW1EdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5iYWxhbmNlX2hpc3RvcnlfcGFnZWRfcmVzcG9uc2UgaW1wb3J0IEJhbGFuY2VIaXN0b3J5UGFnZWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJhbmtfYWRkcmVzcyBpbXBvcnQgQmFua0FkZHJlc3MKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5iYXNlX3Byb3ZpZGVyIGltcG9ydCBCYXNlUHJvdmlkZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5iYXNpY19hZGRyZXNzX3JlcXVlc3QgaW1wb3J0IEJhc2ljQWRkcmVzc1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ibG9ja19pbmZvIGltcG9ydCBCbG9ja0luZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ibG9ja2NoYWluX2FkZHJlc3MgaW1wb3J0IEJsb2NrY2hhaW5BZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9kZXN0aW5hdGlvbiBpbXBvcnQgQmxvY2tjaGFpbkRlc3RpbmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9leHBsb3JlciBpbXBvcnQgQmxvY2tjaGFpbkV4cGxvcmVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9tZWRpYSBpbXBvcnQgQmxvY2tjaGFpbk1lZGlhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9tZXRhZGF0YSBpbXBvcnQgQmxvY2tjaGFpbk1ldGFkYXRhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9ub3RfZm91bmRfZXJyb3JfcmVzcG9uc2UgaW1wb3J0ICgKICAgIEJsb2NrY2hhaW5Ob3RGb3VuZEVycm9yUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ibG9ja2NoYWluX29uY2hhaW4gaW1wb3J0IEJsb2NrY2hhaW5PbmNoYWluCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9yZXNwb25zZSBpbXBvcnQgQmxvY2tjaGFpblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl90cmFuc2ZlciBpbXBvcnQgQmxvY2tjaGFpblRyYW5zZmVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYnBzX2ZlZSBpbXBvcnQgQnBzRmVlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYnVzaW5lc3NfZW50aXR5X3R5cGVfZW51bSBpbXBvcnQgQnVzaW5lc3NFbnRpdHlUeXBlRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJ1c2luZXNzX2lkZW50aWZpY2F0aW9uIGltcG9ydCBCdXNpbmVzc0lkZW50aWZpY2F0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY2FsbGJhY2tfaGFuZGxlciBpbXBvcnQgQ2FsbGJhY2tIYW5kbGVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY2FsbGJhY2tfaGFuZGxlcl9yZXF1ZXN0IGltcG9ydCBDYWxsYmFja0hhbmRsZXJSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY2FuY2VsX3RyYW5zYWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBDYW5jZWxUcmFuc2FjdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY2hhaW5fZGVzY3JpcHRvciBpbXBvcnQgQ2hhaW5EZXNjcmlwdG9yCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY2hhaW5faW5mb19yZXNwb25zZSBpbXBvcnQgQ2hhaW5JbmZvUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jaGFubmVsX2R2bl9jb25maWdfd2l0aF9jb25maXJtYXRpb25zIGltcG9ydCAoCiAgICBDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnMsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jaGFubmVsX2R2bl9jb25maWdfd2l0aF9jb25maXJtYXRpb25zX3JlY2VpdmVfY29uZmlnIGltcG9ydCAoCiAgICBDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNSZWNlaXZlQ29uZmlnLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY2hhbm5lbF9kdm5fY29uZmlnX3dpdGhfY29uZmlybWF0aW9uc19zZW5kX2NvbmZpZyBpbXBvcnQgKAogICAgQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zU2VuZENvbmZpZywKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYXBzX2FkZHJlc3MgaW1wb3J0IENoYXBzQWRkcmVzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYXBzX2Rlc3RpbmF0aW9uIGltcG9ydCBDaGFwc0Rlc3RpbmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY2hhcHNfcGF5bWVudF9pbmZvIGltcG9ydCBDaGFwc1BheW1lbnRJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY2xhaW1fcmV3YXJkc19yZXF1ZXN0IGltcG9ydCBDbGFpbVJld2FyZHNSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29sbGVjdGlvbl9idXJuX3JlcXVlc3RfZHRvIGltcG9ydCBDb2xsZWN0aW9uQnVyblJlcXVlc3REdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb2xsZWN0aW9uX2J1cm5fcmVzcG9uc2VfZHRvIGltcG9ydCBDb2xsZWN0aW9uQnVyblJlc3BvbnNlRHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29sbGVjdGlvbl9kZXBsb3lfcmVxdWVzdF9kdG8gaW1wb3J0IENvbGxlY3Rpb25EZXBsb3lSZXF1ZXN0RHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29sbGVjdGlvbl9saW5rX2R0byBpbXBvcnQgQ29sbGVjdGlvbkxpbmtEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb2xsZWN0aW9uX21ldGFkYXRhX2R0byBpbXBvcnQgQ29sbGVjdGlvbk1ldGFkYXRhRHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29sbGVjdGlvbl9taW50X3JlcXVlc3RfZHRvIGltcG9ydCBDb2xsZWN0aW9uTWludFJlcXVlc3REdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb2xsZWN0aW9uX21pbnRfcmVzcG9uc2VfZHRvIGltcG9ydCBDb2xsZWN0aW9uTWludFJlc3BvbnNlRHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29sbGVjdGlvbl9vd25lcnNoaXBfcmVzcG9uc2UgaW1wb3J0IENvbGxlY3Rpb25Pd25lcnNoaXBSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fdG9rZW5fbWV0YWRhdGFfYXR0cmlidXRlX2R0byBpbXBvcnQgKAogICAgQ29sbGVjdGlvblRva2VuTWV0YWRhdGFBdHRyaWJ1dGVEdG8sCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb2xsZWN0aW9uX3Rva2VuX21ldGFkYXRhX2R0byBpbXBvcnQgQ29sbGVjdGlvblRva2VuTWV0YWRhdGFEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb2xsZWN0aW9uX3R5cGUgaW1wb3J0IENvbGxlY3Rpb25UeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29tbWl0dGVkX3F1b3RlX2VudW0gaW1wb3J0IENvbW1pdHRlZFF1b3RlRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbW1pdHRlZF9xdW90ZV90eXBlIGltcG9ydCBDb21taXR0ZWRRdW90ZVR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb21wbGlhbmNlX3Jlc3VsdF9mdWxsX3BheWxvYWQgaW1wb3J0IENvbXBsaWFuY2VSZXN1bHRGdWxsUGF5bG9hZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbXBsaWFuY2VfcmVzdWx0X3N0YXR1c2VzX2VudW0gaW1wb3J0ICgKICAgIENvbXBsaWFuY2VSZXN1bHRTdGF0dXNlc0VudW0sCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb21wbGlhbmNlX3Jlc3VsdHMgaW1wb3J0IENvbXBsaWFuY2VSZXN1bHRzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29tcGxpYW5jZV9zY3JlZW5pbmdfcmVzdWx0IGltcG9ydCBDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29tcGxpYW5jZV9zY3JlZW5pbmdfcmVzdWx0X2Z1bGxfcGF5bG9hZCBpbXBvcnQgKAogICAgQ29tcGxpYW5jZVNjcmVlbmluZ1Jlc3VsdEZ1bGxQYXlsb2FkLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29uZmlnX2NoYW5nZV9yZXF1ZXN0X3N0YXR1cyBpbXBvcnQgQ29uZmlnQ2hhbmdlUmVxdWVzdFN0YXR1cwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbmZpZ19jb252ZXJzaW9uX29wZXJhdGlvbl9zbmFwc2hvdCBpbXBvcnQgKAogICAgQ29uZmlnQ29udmVyc2lvbk9wZXJhdGlvblNuYXBzaG90LAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29uZmlnX2Rpc2J1cnNlbWVudF9vcGVyYXRpb25fc25hcHNob3QgaW1wb3J0ICgKICAgIENvbmZpZ0Rpc2J1cnNlbWVudE9wZXJhdGlvblNuYXBzaG90LAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29uZmlnX29wZXJhdGlvbiBpbXBvcnQgQ29uZmlnT3BlcmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29uZmlnX29wZXJhdGlvbl9zbmFwc2hvdCBpbXBvcnQgQ29uZmlnT3BlcmF0aW9uU25hcHNob3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25maWdfb3BlcmF0aW9uX3N0YXR1cyBpbXBvcnQgQ29uZmlnT3BlcmF0aW9uU3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29uZmlnX3RyYW5zZmVyX29wZXJhdGlvbl9zbmFwc2hvdCBpbXBvcnQgKAogICAgQ29uZmlnVHJhbnNmZXJPcGVyYXRpb25TbmFwc2hvdCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50IGltcG9ydCBDb25uZWN0ZWRBY2NvdW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRfYXBwcm92YWxfc3RhdHVzIGltcG9ydCAoCiAgICBDb25uZWN0ZWRBY2NvdW50QXBwcm92YWxTdGF0dXMsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfYWNjb3VudF9hc3NldF90eXBlIGltcG9ydCBDb25uZWN0ZWRBY2NvdW50QXNzZXRUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRfYmFsYW5jZXMgaW1wb3J0IENvbm5lY3RlZEFjY291bnRCYWxhbmNlcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X2JhbGFuY2VzX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXNSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X2NhcGFiaWxpdHkgaW1wb3J0IENvbm5lY3RlZEFjY291bnRDYXBhYmlsaXR5CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRfZXJyb3JfcmVzcG9uc2UgaW1wb3J0ICgKICAgIENvbm5lY3RlZEFjY291bnRFcnJvclJlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRfbWFuaWZlc3QgaW1wb3J0IENvbm5lY3RlZEFjY291bnRNYW5pZmVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X3JhdGVfcmVzcG9uc2UgaW1wb3J0ICgKICAgIENvbm5lY3RlZEFjY291bnRSYXRlUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfYWNjb3VudF90b3RhbF9iYWxhbmNlIGltcG9ydCAoCiAgICBDb25uZWN0ZWRBY2NvdW50VG90YWxCYWxhbmNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRfdHJhZGluZ19wYWlyIGltcG9ydCBDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfYWNjb3VudF90cmFkaW5nX3BhaXJfc3VwcG9ydGVkX3R5cGUgaW1wb3J0ICgKICAgIENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpclN1cHBvcnRlZFR5cGUsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfYWNjb3VudF90cmFkaW5nX3BhaXJzX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXJzUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfYWNjb3VudHNfcmVzcG9uc2UgaW1wb3J0IENvbm5lY3RlZEFjY291bnRzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfc2luZ2xlX2FjY291bnQgaW1wb3J0IENvbm5lY3RlZFNpbmdsZUFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfc2luZ2xlX2FjY291bnRfcmVzcG9uc2UgaW1wb3J0ICgKICAgIENvbm5lY3RlZFNpbmdsZUFjY291bnRSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnNvbGVfdXNlciBpbXBvcnQgQ29uc29sZVVzZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9hYmlfcmVzcG9uc2VfZHRvIGltcG9ydCBDb250cmFjdEFiaVJlc3BvbnNlRHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfYWJpX3Jlc3BvbnNlX2R0b19hYmlfaW5uZXIgaW1wb3J0ICgKICAgIENvbnRyYWN0QWJpUmVzcG9uc2VEdG9BYmlJbm5lciwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2FkZHJlc3NfcmVzcG9uc2UgaW1wb3J0IENvbnRyYWN0QWRkcmVzc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfYXR0cmlidXRlcyBpbXBvcnQgQ29udHJhY3RBdHRyaWJ1dGVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfZGF0YV9kZWNvZGVfZGF0YV90eXBlIGltcG9ydCBDb250cmFjdERhdGFEZWNvZGVEYXRhVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RhdGFfZGVjb2RlX2Vycm9yIGltcG9ydCBDb250cmFjdERhdGFEZWNvZGVFcnJvcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RhdGFfZGVjb2RlX3JlcXVlc3QgaW1wb3J0IENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9kYXRhX2RlY29kZV9yZXF1ZXN0X2RhdGEgaW1wb3J0ICgKICAgIENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3REYXRhLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfZGF0YV9kZWNvZGVfcmVzcG9uc2VfcGFyYW1zIGltcG9ydCAoCiAgICBDb250cmFjdERhdGFEZWNvZGVSZXNwb25zZVBhcmFtcywKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RhdGFfZGVjb2RlZF9yZXNwb25zZSBpbXBvcnQgQ29udHJhY3REYXRhRGVjb2RlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfZGF0YV9sb2dfZGF0YV9wYXJhbSBpbXBvcnQgQ29udHJhY3REYXRhTG9nRGF0YVBhcmFtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfZGVwbG95X3JlcXVlc3QgaW1wb3J0IENvbnRyYWN0RGVwbG95UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RlcGxveV9yZXNwb25zZSBpbXBvcnQgQ29udHJhY3REZXBsb3lSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RvYyBpbXBvcnQgQ29udHJhY3REb2MKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9tZXRhZGF0YV9kdG8gaW1wb3J0IENvbnRyYWN0TWV0YWRhdGFEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9tZXRob2RfY29uZmlnIGltcG9ydCBDb250cmFjdE1ldGhvZENvbmZpZwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X21ldGhvZF9wYXR0ZXJuIGltcG9ydCBDb250cmFjdE1ldGhvZFBhdHRlcm4KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF90ZW1wbGF0ZV9kdG8gaW1wb3J0IENvbnRyYWN0VGVtcGxhdGVEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF91cGxvYWRfcmVxdWVzdCBpbXBvcnQgQ29udHJhY3RVcGxvYWRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3Rfd2l0aF9hYmlfZHRvIGltcG9ydCBDb250cmFjdFdpdGhBYmlEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJzaW9uX2NvbmZpZ19vcGVyYXRpb24gaW1wb3J0IENvbnZlcnNpb25Db25maWdPcGVyYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJzaW9uX29wZXJhdGlvbl9jb25maWdfcGFyYW1zIGltcG9ydCAoCiAgICBDb252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fZXhlY3V0aW9uIGltcG9ydCAoCiAgICBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dCBpbXBvcnQgKAogICAgQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXMgaW1wb3J0ICgKICAgIENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXMsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJzaW9uX29wZXJhdGlvbl9leGVjdXRpb25fcGFyYW1zX2V4ZWN1dGlvbl9wYXJhbXMgaW1wb3J0ICgKICAgIENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJzaW9uX29wZXJhdGlvbl9mYWlsdXJlIGltcG9ydCBDb252ZXJzaW9uT3BlcmF0aW9uRmFpbHVyZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX3ByZXZpZXcgaW1wb3J0IENvbnZlcnNpb25PcGVyYXRpb25QcmV2aWV3CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fcHJldmlld19vdXRwdXQgaW1wb3J0ICgKICAgIENvbnZlcnNpb25PcGVyYXRpb25QcmV2aWV3T3V0cHV0LAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fdHlwZSBpbXBvcnQgQ29udmVyc2lvbk9wZXJhdGlvblR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJzaW9uX3ZhbGlkYXRpb25fZmFpbHVyZSBpbXBvcnQgQ29udmVyc2lvblZhbGlkYXRpb25GYWlsdXJlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVydF9hc3NldHNfcmVxdWVzdCBpbXBvcnQgQ29udmVydEFzc2V0c1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJ0X2Fzc2V0c19yZXNwb25zZSBpbXBvcnQgQ29udmVydEFzc2V0c1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29zaWduZXIgaW1wb3J0IENvc2lnbmVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29zaWduZXJzX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgQ29zaWduZXJzUGFnaW5hdGVkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfYXBpX3VzZXIgaW1wb3J0IENyZWF0ZUFQSVVzZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfYWRkcmVzc19yZXF1ZXN0IGltcG9ydCBDcmVhdGVBZGRyZXNzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9hZGRyZXNzX3Jlc3BvbnNlIGltcG9ydCBDcmVhdGVBZGRyZXNzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfYXNzZXRzX3JlcXVlc3QgaW1wb3J0IENyZWF0ZUFzc2V0c1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfY29uZmlnX29wZXJhdGlvbl9yZXF1ZXN0IGltcG9ydCAoCiAgICBDcmVhdGVDb25maWdPcGVyYXRpb25SZXF1ZXN0LAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX2Nvbm5lY3Rpb25fcmVxdWVzdCBpbXBvcnQgQ3JlYXRlQ29ubmVjdGlvblJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfY29ubmVjdGlvbl9yZXNwb25zZSBpbXBvcnQgQ3JlYXRlQ29ubmVjdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX2NvbnNvbGVfdXNlciBpbXBvcnQgQ3JlYXRlQ29uc29sZVVzZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfY29udHJhY3RfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlQ29udHJhY3RSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX2NvbnZlcnNpb25fY29uZmlnX29wZXJhdGlvbl9yZXF1ZXN0IGltcG9ydCAoCiAgICBDcmVhdGVDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uUmVxdWVzdCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9kaXNidXJzZW1lbnRfY29uZmlnX29wZXJhdGlvbl9yZXF1ZXN0IGltcG9ydCAoCiAgICBDcmVhdGVEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb25SZXF1ZXN0LAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX2ludGVybmFsX3RyYW5zZmVyX3JlcXVlc3QgaW1wb3J0ICgKICAgIENyZWF0ZUludGVybmFsVHJhbnNmZXJSZXF1ZXN0LAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX2ludGVybmFsX3dhbGxldF9hc3NldF9yZXF1ZXN0IGltcG9ydCAoCiAgICBDcmVhdGVJbnRlcm5hbFdhbGxldEFzc2V0UmVxdWVzdCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9tdWx0aWNoYWluX3Rva2VuX3JlcXVlc3QgaW1wb3J0ICgKICAgIENyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3QsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfbXVsdGljaGFpbl90b2tlbl9yZXF1ZXN0X2NyZWF0ZV9wYXJhbXMgaW1wb3J0ICgKICAgIENyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3RDcmVhdGVQYXJhbXMsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfbXVsdGlwbGVfYWNjb3VudHNfcmVxdWVzdCBpbXBvcnQgKAogICAgQ3JlYXRlTXVsdGlwbGVBY2NvdW50c1JlcXVlc3QsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfbXVsdGlwbGVfZGVwb3NpdF9hZGRyZXNzZXNfam9iX3N0YXR1cyBpbXBvcnQgKAogICAgQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzSm9iU3RhdHVzLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzX3JlcXVlc3QgaW1wb3J0ICgKICAgIENyZWF0ZU11bHRpcGxlRGVwb3NpdEFkZHJlc3Nlc1JlcXVlc3QsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfbXVsdGlwbGVfdmF1bHRfYWNjb3VudHNfam9iX3N0YXR1cyBpbXBvcnQgKAogICAgQ3JlYXRlTXVsdGlwbGVWYXVsdEFjY291bnRzSm9iU3RhdHVzLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX25jd19jb25uZWN0aW9uX3JlcXVlc3QgaW1wb3J0IENyZWF0ZU5jd0Nvbm5lY3Rpb25SZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX25ldHdvcmtfaWRfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlTmV0d29ya0lkUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9vcmRlcl9yZXF1ZXN0IGltcG9ydCBDcmVhdGVPcmRlclJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfcGF5b3V0X3JlcXVlc3QgaW1wb3J0IENyZWF0ZVBheW91dFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfcXVvdGUgaW1wb3J0IENyZWF0ZVF1b3RlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3F1b3RlX3Njb3BlX2lubmVyIGltcG9ydCBDcmVhdGVRdW90ZVNjb3BlSW5uZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfc2lnbmluZ19rZXlfZHRvIGltcG9ydCBDcmVhdGVTaWduaW5nS2V5RHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3NpZ25pbmdfa2V5X2R0b19wcm9vZl9vZl9vd25lcnNoaXAgaW1wb3J0ICgKICAgIENyZWF0ZVNpZ25pbmdLZXlEdG9Qcm9vZk9mT3duZXJzaGlwLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3RhZ19yZXF1ZXN0IGltcG9ydCBDcmVhdGVUYWdSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3Rva2VuX3JlcXVlc3RfZHRvIGltcG9ydCBDcmVhdGVUb2tlblJlcXVlc3REdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfdG9rZW5fcmVxdWVzdF9kdG9fY3JlYXRlX3BhcmFtcyBpbXBvcnQgKAogICAgQ3JlYXRlVG9rZW5SZXF1ZXN0RHRvQ3JlYXRlUGFyYW1zLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3RyYW5zYWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBDcmVhdGVUcmFuc2FjdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3RyYW5zZmVyX2NvbmZpZ19vcGVyYXRpb25fcmVxdWVzdCBpbXBvcnQgKAogICAgQ3JlYXRlVHJhbnNmZXJDb25maWdPcGVyYXRpb25SZXF1ZXN0LAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3VzZXJfZ3JvdXBfcmVzcG9uc2UgaW1wb3J0IENyZWF0ZVVzZXJHcm91cFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3ZhbGlkYXRpb25fa2V5X2R0byBpbXBvcnQgQ3JlYXRlVmFsaWRhdGlvbktleUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV92YWxpZGF0aW9uX2tleV9yZXNwb25zZV9kdG8gaW1wb3J0ICgKICAgIENyZWF0ZVZhbGlkYXRpb25LZXlSZXNwb25zZUR0bywKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV92YXVsdF9hY2NvdW50X2Nvbm5lY3Rpb25fcmVxdWVzdCBpbXBvcnQgKAogICAgQ3JlYXRlVmF1bHRBY2NvdW50Q29ubmVjdGlvblJlcXVlc3QsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0IGltcG9ydCBDcmVhdGVWYXVsdEFjY291bnRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3ZhdWx0X2Fzc2V0X3Jlc3BvbnNlIGltcG9ydCBDcmVhdGVWYXVsdEFzc2V0UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfd2FsbGV0X3JlcXVlc3QgaW1wb3J0IENyZWF0ZVdhbGxldFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfd2ViaG9va19yZXF1ZXN0IGltcG9ydCBDcmVhdGVXZWJob29rUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV93b3JrZmxvd19leGVjdXRpb25fcmVxdWVzdF9wYXJhbXNfaW5uZXIgaW1wb3J0ICgKICAgIENyZWF0ZVdvcmtmbG93RXhlY3V0aW9uUmVxdWVzdFBhcmFtc0lubmVyLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3VzdG9tX3JvdXRpbmdfZGVzdCBpbXBvcnQgQ3VzdG9tUm91dGluZ0Rlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kX2FwcF9hZGRyZXNzX2NvbmZpZyBpbXBvcnQgREFwcEFkZHJlc3NDb25maWcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kdnBfc2V0dGxlbWVudCBpbXBvcnQgRFZQU2V0dGxlbWVudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmR2cF9zZXR0bGVtZW50X3R5cGUgaW1wb3J0IERWUFNldHRsZW1lbnRUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVjb2RlZF9sb2cgaW1wb3J0IERlY29kZWRMb2cKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZWZhdWx0X25ldHdvcmtfcm91dGluZ19kZXN0IGltcG9ydCBEZWZhdWx0TmV0d29ya1JvdXRpbmdEZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVsZWdhdGlvbiBpbXBvcnQgRGVsZWdhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlbGVnYXRpb25fYmxvY2tjaGFpbl9wb3NpdGlvbl9pbmZvIGltcG9ydCAoCiAgICBEZWxlZ2F0aW9uQmxvY2tjaGFpblBvc2l0aW9uSW5mbywKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlbGVnYXRpb25fc3VtbWFyeSBpbXBvcnQgRGVsZWdhdGlvblN1bW1hcnkKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZWxldGVfbmV0d29ya19jb25uZWN0aW9uX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBEZWxldGVOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVsZXRlX25ldHdvcmtfaWRfcmVzcG9uc2UgaW1wb3J0IERlbGV0ZU5ldHdvcmtJZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVwbG95X2xheWVyX3plcm9fYWRhcHRlcnNfcmVxdWVzdCBpbXBvcnQgKAogICAgRGVwbG95TGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0LAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVwbG95YWJsZV9hZGRyZXNzX3Jlc3BvbnNlIGltcG9ydCBEZXBsb3lhYmxlQWRkcmVzc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVwbG95ZWRfY29udHJhY3Rfbm90X2ZvdW5kX2Vycm9yIGltcG9ydCAoCiAgICBEZXBsb3llZENvbnRyYWN0Tm90Rm91bmRFcnJvciwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlcGxveWVkX2NvbnRyYWN0X3Jlc3BvbnNlX2R0byBpbXBvcnQgRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVwbG95ZWRfY29udHJhY3RzX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgKAogICAgRGVwbG95ZWRDb250cmFjdHNQYWdpbmF0ZWRSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlcG9zaXRfZnVuZHNfZnJvbV9saW5rZWRfZGRhX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBEZXBvc2l0RnVuZHNGcm9tTGlua2VkRERBUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZXJpdmF0aW9uX3BhdGhfY29uZmlnIGltcG9ydCBEZXJpdmF0aW9uUGF0aENvbmZpZwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlc2lnbmF0ZWRfc2lnbmVyc19jb25maWcgaW1wb3J0IERlc2lnbmF0ZWRTaWduZXJzQ29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzdGluYXRpb24gaW1wb3J0IERlc3RpbmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzdGluYXRpb25fY29uZmlnIGltcG9ydCBEZXN0aW5hdGlvbkNvbmZpZwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlc3RpbmF0aW9uX3RyYW5zZmVyX3BlZXJfcGF0aCBpbXBvcnQgRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzdGluYXRpb25fdHJhbnNmZXJfcGVlcl9wYXRoX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGhSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpcmVjdF9hY2Nlc3MgaW1wb3J0IERpcmVjdEFjY2Vzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpcmVjdF9hY2Nlc3NfcHJvdmlkZXIgaW1wb3J0IERpcmVjdEFjY2Vzc1Byb3ZpZGVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlyZWN0X2FjY2Vzc19wcm92aWRlcl9pbmZvIGltcG9ydCBEaXJlY3RBY2Nlc3NQcm92aWRlckluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXJlY3RfcHJvdmlkZXJfZGV0YWlscyBpbXBvcnQgRGlyZWN0UHJvdmlkZXJEZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X2Ftb3VudF9pbnN0cnVjdGlvbiBpbXBvcnQgKAogICAgRGlzYnVyc2VtZW50QW1vdW50SW5zdHJ1Y3Rpb24sCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfY29uZmlnX29wZXJhdGlvbiBpbXBvcnQgRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X2luc3RydWN0aW9uIGltcG9ydCBEaXNidXJzZW1lbnRJbnN0cnVjdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9pbnN0cnVjdGlvbl9vdXRwdXQgaW1wb3J0ICgKICAgIERpc2J1cnNlbWVudEluc3RydWN0aW9uT3V0cHV0LAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9jb25maWdfcGFyYW1zIGltcG9ydCAoCiAgICBEaXNidXJzZW1lbnRPcGVyYXRpb25Db25maWdQYXJhbXMsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2V4ZWN1dGlvbiBpbXBvcnQgKAogICAgRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9leGVjdXRpb25fb3V0cHV0IGltcG9ydCAoCiAgICBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXMgaW1wb3J0ICgKICAgIERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcywKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtc19leGVjdXRpb25fcGFyYW1zIGltcG9ydCAoCiAgICBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2lucHV0IGltcG9ydCBEaXNidXJzZW1lbnRPcGVyYXRpb25JbnB1dApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fcHJldmlldyBpbXBvcnQgKAogICAgRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlldywKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fcHJldmlld19vdXRwdXQgaW1wb3J0ICgKICAgIERpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXdPdXRwdXQsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX3ByZXZpZXdfb3V0cHV0X2luc3RydWN0aW9uX3NldF9pbm5lciBpbXBvcnQgKAogICAgRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlld091dHB1dEluc3RydWN0aW9uU2V0SW5uZXIsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX3R5cGUgaW1wb3J0IERpc2J1cnNlbWVudE9wZXJhdGlvblR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfcGVyY2VudGFnZV9pbnN0cnVjdGlvbiBpbXBvcnQgKAogICAgRGlzYnVyc2VtZW50UGVyY2VudGFnZUluc3RydWN0aW9uLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X3ZhbGlkYXRpb25fZmFpbHVyZSBpbXBvcnQgKAogICAgRGlzYnVyc2VtZW50VmFsaWRhdGlvbkZhaWx1cmUsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNwYXRjaF9wYXlvdXRfcmVzcG9uc2UgaW1wb3J0IERpc3BhdGNoUGF5b3V0UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kcmFmdF9yZXNwb25zZSBpbXBvcnQgRHJhZnRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRyYWZ0X3Jldmlld19hbmRfdmFsaWRhdGlvbl9yZXNwb25zZSBpbXBvcnQgKAogICAgRHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kcm9wX3RyYW5zYWN0aW9uX3JlcXVlc3QgaW1wb3J0IERyb3BUcmFuc2FjdGlvblJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kcm9wX3RyYW5zYWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBEcm9wVHJhbnNhY3Rpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmR2bl9jb25maWcgaW1wb3J0IER2bkNvbmZpZwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmR2bl9jb25maWdfd2l0aF9jb25maXJtYXRpb25zIGltcG9ydCBEdm5Db25maWdXaXRoQ29uZmlybWF0aW9ucwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV2bV90b2tlbl9jcmVhdGVfcGFyYW1zX2R0byBpbXBvcnQgRVZNVG9rZW5DcmVhdGVQYXJhbXNEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lZGl0X2dhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25fcmVzcG9uc2UgaW1wb3J0ICgKICAgIEVkaXRHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0IGltcG9ydCBFbWJlZGRlZFdhbGxldApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9hY2NvdW50IGltcG9ydCBFbWJlZGRlZFdhbGxldEFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfYWRkcmVzc19kZXRhaWxzIGltcG9ydCAoCiAgICBFbWJlZGRlZFdhbGxldEFkZHJlc3NEZXRhaWxzLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X2FsZ29yaXRtIGltcG9ydCBFbWJlZGRlZFdhbGxldEFsZ29yaXRtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X2JhbGFuY2UgaW1wb3J0IEVtYmVkZGVkV2FsbGV0QXNzZXRCYWxhbmNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X3Jlc3BvbnNlIGltcG9ydCBFbWJlZGRlZFdhbGxldEFzc2V0UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfYXNzZXRfcmV3YXJkX2luZm8gaW1wb3J0ICgKICAgIEVtYmVkZGVkV2FsbGV0QXNzZXRSZXdhcmRJbmZvLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X2RldmljZSBpbXBvcnQgRW1iZWRkZWRXYWxsZXREZXZpY2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfZGV2aWNlX2tleV9zZXR1cF9yZXNwb25zZSBpbXBvcnQgKAogICAgRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X2RldmljZV9rZXlfc2V0dXBfcmVzcG9uc2Vfc2V0dXBfc3RhdHVzX2lubmVyIGltcG9ydCAoCiAgICBFbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2VTZXR1cFN0YXR1c0lubmVyLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X2xhdGVzdF9iYWNrdXBfa2V5IGltcG9ydCAoCiAgICBFbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cEtleSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9sYXRlc3RfYmFja3VwX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBFbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cFJlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X3BhZ2luYXRlZF9hZGRyZXNzZXNfcmVzcG9uc2UgaW1wb3J0ICgKICAgIEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkQWRkcmVzc2VzUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfcGFnaW5hdGVkX2Fzc2V0c19yZXNwb25zZSBpbXBvcnQgKAogICAgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBc3NldHNSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9wYWdpbmF0ZWRfZGV2aWNlc19yZXNwb25zZSBpbXBvcnQgKAogICAgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWREZXZpY2VzUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfcGFnaW5hdGVkX3dhbGxldHNfcmVzcG9uc2UgaW1wb3J0ICgKICAgIEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkV2FsbGV0c1Jlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X3JlcXVpcmVkX2FsZ29yaXRobXMgaW1wb3J0ICgKICAgIEVtYmVkZGVkV2FsbGV0UmVxdWlyZWRBbGdvcml0aG1zLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X3NldF91cF9zdGF0dXMgaW1wb3J0IEVtYmVkZGVkV2FsbGV0U2V0VXBTdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfc2V0dXBfc3RhdHVzX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBFbWJlZGRlZFdhbGxldFNldHVwU3RhdHVzUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbmFibGVfZGV2aWNlIGltcG9ydCBFbmFibGVEZXZpY2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbmFibGVfd2FsbGV0IGltcG9ydCBFbmFibGVXYWxsZXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lcnJvcl9yZXNwb25zZSBpbXBvcnQgRXJyb3JSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVycm9yX3Jlc3BvbnNlX2Vycm9yIGltcG9ydCBFcnJvclJlc3BvbnNlRXJyb3IKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lcnJvcl9zY2hlbWEgaW1wb3J0IEVycm9yU2NoZW1hCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXN0aW1hdGVkX2ZlZV9kZXRhaWxzIGltcG9ydCBFc3RpbWF0ZWRGZWVEZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXN0aW1hdGVkX25ldHdvcmtfZmVlX3Jlc3BvbnNlIGltcG9ydCBFc3RpbWF0ZWROZXR3b3JrRmVlUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lc3RpbWF0ZWRfdHJhbnNhY3Rpb25fZmVlX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBFc3RpbWF0ZWRUcmFuc2FjdGlvbkZlZVJlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXRoZXJldW1fYmxvY2tjaGFpbl9kYXRhIGltcG9ydCBFdGhlcmV1bUJsb2NrY2hhaW5EYXRhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXVyb3BlYW5fc2VwYV9hZGRyZXNzIGltcG9ydCBFdXJvcGVhblNFUEFBZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXVyb3BlYW5fc2VwYV9kZXN0aW5hdGlvbiBpbXBvcnQgRXVyb3BlYW5TRVBBRGVzdGluYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGNoYW5nZV9hY2NvdW50IGltcG9ydCBFeGNoYW5nZUFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGNoYW5nZV9hc3NldCBpbXBvcnQgRXhjaGFuZ2VBc3NldApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4Y2hhbmdlX3NldHRsZW1lbnRfdHJhbnNhY3Rpb25zX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBFeGNoYW5nZVNldHRsZW1lbnRUcmFuc2FjdGlvbnNSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4Y2hhbmdlX3RyYWRpbmdfYWNjb3VudCBpbXBvcnQgRXhjaGFuZ2VUcmFkaW5nQWNjb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4Y2hhbmdlX3R5cGUgaW1wb3J0IEV4Y2hhbmdlVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9jb252ZXJzaW9uX29wZXJhdGlvbiBpbXBvcnQgKAogICAgRXhlY3V0aW9uQ29udmVyc2lvbk9wZXJhdGlvbiwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9kaXNidXJzZW1lbnRfb3BlcmF0aW9uIGltcG9ydCAoCiAgICBFeGVjdXRpb25EaXNidXJzZW1lbnRPcGVyYXRpb24sCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGVjdXRpb25fb3BlcmF0aW9uX3N0YXR1cyBpbXBvcnQgRXhlY3V0aW9uT3BlcmF0aW9uU3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhlY3V0aW9uX3JlcXVlc3RfYmFzZV9kZXRhaWxzIGltcG9ydCBFeGVjdXRpb25SZXF1ZXN0QmFzZURldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGVjdXRpb25fcmVxdWVzdF9kZXRhaWxzIGltcG9ydCBFeGVjdXRpb25SZXF1ZXN0RGV0YWlscwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHNfdHlwZSBpbXBvcnQgRXhlY3V0aW9uUmVxdWVzdERldGFpbHNUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhlY3V0aW9uX3Jlc3BvbnNlX2Jhc2VfZGV0YWlscyBpbXBvcnQgKAogICAgRXhlY3V0aW9uUmVzcG9uc2VCYXNlRGV0YWlscywKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9yZXNwb25zZV9kZXRhaWxzIGltcG9ydCBFeGVjdXRpb25SZXNwb25zZURldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGVjdXRpb25fc2NyZWVuaW5nX29wZXJhdGlvbiBpbXBvcnQgRXhlY3V0aW9uU2NyZWVuaW5nT3BlcmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhlY3V0aW9uX3N0ZXBfZXJyb3IgaW1wb3J0IEV4ZWN1dGlvblN0ZXBFcnJvcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9zdGVwX3N0YXR1c19lbnVtIGltcG9ydCBFeGVjdXRpb25TdGVwU3RhdHVzRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9zdGVwX3R5cGUgaW1wb3J0IEV4ZWN1dGlvblN0ZXBUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhlY3V0aW9uX3RyYW5zZmVyX29wZXJhdGlvbiBpbXBvcnQgRXhlY3V0aW9uVHJhbnNmZXJPcGVyYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leHRlcm5hbF9hY2NvdW50IGltcG9ydCBFeHRlcm5hbEFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leHRlcm5hbF9hY2NvdW50X2xvY2FsX2JhbmtfYWZyaWNhIGltcG9ydCAoCiAgICBFeHRlcm5hbEFjY291bnRMb2NhbEJhbmtBZnJpY2EsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leHRlcm5hbF9hY2NvdW50X21vYmlsZV9tb25leSBpbXBvcnQgRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXkKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leHRlcm5hbF9hY2NvdW50X21vYmlsZV9tb25leV9wcm92aWRlciBpbXBvcnQgKAogICAgRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXlQcm92aWRlciwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX2FjY291bnRfbW9iaWxlX21vbmV5X3R5cGUgaW1wb3J0ICgKICAgIEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5VHlwZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX2FjY291bnRfc2VuZGVyX2luZm9ybWF0aW9uIGltcG9ydCAoCiAgICBFeHRlcm5hbEFjY291bnRTZW5kZXJJbmZvcm1hdGlvbiwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX2FjY291bnRfdHlwZSBpbXBvcnQgRXh0ZXJuYWxBY2NvdW50VHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX3dhbGxldF9hc3NldCBpbXBvcnQgRXh0ZXJuYWxXYWxsZXRBc3NldApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dHJhX3BhcmFtZXRlcnMgaW1wb3J0IEV4dHJhUGFyYW1ldGVycwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZhaWx1cmUgaW1wb3J0IEZhaWx1cmUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5mYWlsdXJlX3JlYXNvbiBpbXBvcnQgRmFpbHVyZVJlYXNvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZSBpbXBvcnQgRmVlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmVlX2JyZWFrZG93biBpbXBvcnQgRmVlQnJlYWtkb3duCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmVlX2luZm8gaW1wb3J0IEZlZUluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5mZWVfbGV2ZWwgaW1wb3J0IEZlZUxldmVsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmVlX3BheWVyX2luZm8gaW1wb3J0IEZlZVBheWVySW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZV9wcm9wZXJ0aWVzX2RldGFpbHMgaW1wb3J0IEZlZVByb3BlcnRpZXNEZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmVlX3R5cGVfZW51bSBpbXBvcnQgRmVlVHlwZUVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5mZXRjaF9hYmlfcmVxdWVzdF9kdG8gaW1wb3J0IEZldGNoQWJpUmVxdWVzdER0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZpYXRfYWNjb3VudCBpbXBvcnQgRmlhdEFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5maWF0X2FjY291bnRfdHlwZSBpbXBvcnQgRmlhdEFjY291bnRUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmlhdF9hc3NldCBpbXBvcnQgRmlhdEFzc2V0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmlhdF9kZXN0aW5hdGlvbiBpbXBvcnQgRmlhdERlc3RpbmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmlhdF9wYXltZW50X21ldGFkYXRhIGltcG9ydCBGaWF0UGF5bWVudE1ldGFkYXRhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmlhdF90cmFuc2ZlciBpbXBvcnQgRmlhdFRyYW5zZmVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZml4ZWRfYW1vdW50X3R5cGVfZW51bSBpbXBvcnQgRml4ZWRBbW91bnRUeXBlRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZpeGVkX2ZlZSBpbXBvcnQgRml4ZWRGZWUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5mcmVlemVfdHJhbnNhY3Rpb25fcmVzcG9uc2UgaW1wb3J0IEZyZWV6ZVRyYW5zYWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5mdW5jdGlvbl9kb2MgaW1wb3J0IEZ1bmN0aW9uRG9jCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZnVuZHMgaW1wb3J0IEZ1bmRzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbiBpbXBvcnQgR2FzU3RhdGlvbkNvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2FzX3N0YXRpb25fcHJvcGVydGllc19yZXNwb25zZSBpbXBvcnQgKAogICAgR2FzU3RhdGlvblByb3BlcnRpZXNSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdhc3NsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zIGltcG9ydCAoCiAgICBHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnMsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nYXNzbGVzc19zdGFuZGFyZF9jb25maWd1cmF0aW9uc19nYXNsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zX3ZhbHVlIGltcG9ydCAoCiAgICBHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnNHYXNsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc1ZhbHVlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X2FwaV91c2Vyc19yZXNwb25zZSBpbXBvcnQgR2V0QVBJVXNlcnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9hdWRpdF9sb2dzX3Jlc3BvbnNlIGltcG9ydCBHZXRBdWRpdExvZ3NSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9jb25uZWN0aW9uc19yZXNwb25zZSBpbXBvcnQgR2V0Q29ubmVjdGlvbnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9jb25zb2xlX3VzZXJzX3Jlc3BvbnNlIGltcG9ydCBHZXRDb25zb2xlVXNlcnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9kZXBsb3lhYmxlX2FkZHJlc3NfcmVxdWVzdCBpbXBvcnQgR2V0RGVwbG95YWJsZUFkZHJlc3NSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X2V4Y2hhbmdlX2FjY291bnRzX2NyZWRlbnRpYWxzX3B1YmxpY19rZXlfcmVzcG9uc2UgaW1wb3J0ICgKICAgIEdldEV4Y2hhbmdlQWNjb3VudHNDcmVkZW50aWFsc1B1YmxpY0tleVJlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X2ZpbHRlcl9wYXJhbWV0ZXIgaW1wb3J0IEdldEZpbHRlclBhcmFtZXRlcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9sYXllcl96ZXJvX2R2bl9jb25maWdfcmVzcG9uc2UgaW1wb3J0ICgKICAgIEdldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X2xheWVyX3plcm9fcGVlcnNfcmVzcG9uc2UgaW1wb3J0IEdldExheWVyWmVyb1BlZXJzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfbGlua2VkX2NvbGxlY3Rpb25zX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgKAogICAgR2V0TGlua2VkQ29sbGVjdGlvbnNQYWdpbmF0ZWRSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9tYXhfYmlwX2luZGV4X3VzZWRfcmVzcG9uc2UgaW1wb3J0IEdldE1heEJpcEluZGV4VXNlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X21heF9zcGVuZGFibGVfYW1vdW50X3Jlc3BvbnNlIGltcG9ydCAoCiAgICBHZXRNYXhTcGVuZGFibGVBbW91bnRSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9tcGNfa2V5c19yZXNwb25zZSBpbXBvcnQgR2V0TXBjS2V5c1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X25mdHNfcmVzcG9uc2UgaW1wb3J0IEdldE5GVHNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9vcmRlcnNfcmVzcG9uc2UgaW1wb3J0IEdldE9yZGVyc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X290YV9zdGF0dXNfcmVzcG9uc2UgaW1wb3J0IEdldE90YVN0YXR1c1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X293bmVyc2hpcF90b2tlbnNfcmVzcG9uc2UgaW1wb3J0IEdldE93bmVyc2hpcFRva2Vuc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X3BhZ2VkX2V4Y2hhbmdlX2FjY291bnRzX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBHZXRQYWdlZEV4Y2hhbmdlQWNjb3VudHNSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9wYWdlZF9leGNoYW5nZV9hY2NvdW50c19yZXNwb25zZV9wYWdpbmcgaW1wb3J0ICgKICAgIEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlUGFnaW5nLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X3NpZ25pbmdfa2V5X3Jlc3BvbnNlX2R0byBpbXBvcnQgR2V0U2lnbmluZ0tleVJlc3BvbnNlRHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X3RyYW5zYWN0aW9uX29wZXJhdGlvbiBpbXBvcnQgR2V0VHJhbnNhY3Rpb25PcGVyYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfdmFsaWRhdGlvbl9rZXlfcmVzcG9uc2VfZHRvIGltcG9ydCAoCiAgICBHZXRWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8sCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfd2hpdGVsaXN0X2lwX2FkZHJlc3Nlc19yZXNwb25zZSBpbXBvcnQgKAogICAgR2V0V2hpdGVsaXN0SXBBZGRyZXNzZXNSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF93b3Jrc3BhY2Vfc3RhdHVzX3Jlc3BvbnNlIGltcG9ydCBHZXRXb3Jrc3BhY2VTdGF0dXNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmh0dHBfY29udHJhY3RfZG9lc19ub3RfZXhpc3RfZXJyb3IgaW1wb3J0ICgKICAgIEh0dHBDb250cmFjdERvZXNOb3RFeGlzdEVycm9yLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaWJhbl9hZGRyZXNzIGltcG9ydCBJYmFuQWRkcmVzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmliYW5fZGVzdGluYXRpb24gaW1wb3J0IEliYW5EZXN0aW5hdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmliYW5fcGF5bWVudF9pbmZvIGltcG9ydCBJYmFuUGF5bWVudEluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5pZGVudGlmaWNhdGlvbiBpbXBvcnQgSWRlbnRpZmljYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5pZGxfdHlwZSBpbXBvcnQgSWRsVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmluZGljYXRpdmVfcXVvdGVfZW51bSBpbXBvcnQgSW5kaWNhdGl2ZVF1b3RlRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmluZGljYXRpdmVfcXVvdGVfdHlwZSBpbXBvcnQgSW5kaWNhdGl2ZVF1b3RlVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmluaXRpYXRvcl9jb25maWcgaW1wb3J0IEluaXRpYXRvckNvbmZpZwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmluaXRpYXRvcl9jb25maWdfcGF0dGVybiBpbXBvcnQgSW5pdGlhdG9yQ29uZmlnUGF0dGVybgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmluc3RydWN0aW9uX2Ftb3VudCBpbXBvcnQgSW5zdHJ1Y3Rpb25BbW91bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5pbnRlcmFjX2FkZHJlc3MgaW1wb3J0IEludGVyYWNBZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaW50ZXJhY19kZXN0aW5hdGlvbiBpbXBvcnQgSW50ZXJhY0Rlc3RpbmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaW50ZXJhY19wYXltZW50X2luZm8gaW1wb3J0IEludGVyYWNQYXltZW50SW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmludGVybmFsX3JlZmVyZW5jZSBpbXBvcnQgSW50ZXJuYWxSZWZlcmVuY2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5pbnRlcm5hbF90cmFuc2Zlcl9hZGRyZXNzIGltcG9ydCBJbnRlcm5hbFRyYW5zZmVyQWRkcmVzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmludGVybmFsX3RyYW5zZmVyX2Rlc3RpbmF0aW9uIGltcG9ydCBJbnRlcm5hbFRyYW5zZmVyRGVzdGluYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5pbnRlcm5hbF90cmFuc2Zlcl9yZXNwb25zZSBpbXBvcnQgSW50ZXJuYWxUcmFuc2ZlclJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaW52YWxpZF9wYXJhbWF0ZXJfdmFsdWVfZXJyb3IgaW1wb3J0IEludmFsaWRQYXJhbWF0ZXJWYWx1ZUVycm9yCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuam9iX2NyZWF0ZWQgaW1wb3J0IEpvYkNyZWF0ZWQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sYXllcl96ZXJvX2FkYXB0ZXJfY3JlYXRlX3BhcmFtcyBpbXBvcnQgKAogICAgTGF5ZXJaZXJvQWRhcHRlckNyZWF0ZVBhcmFtcywKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxidF9wYXltZW50X2luZm8gaW1wb3J0IExidFBheW1lbnRJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVhbl9hYmlfZnVuY3Rpb24gaW1wb3J0IExlYW5BYmlGdW5jdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlYW5fY29udHJhY3RfZHRvIGltcG9ydCBMZWFuQ29udHJhY3REdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWFuX2RlcGxveWVkX2NvbnRyYWN0X3Jlc3BvbnNlX2R0byBpbXBvcnQgKAogICAgTGVhbkRlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0bywKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9hbW91bnRfYWdncmVnYXRpb25fdGltZV9wZXJpb2RfbWV0aG9kIGltcG9ydCAoCiAgICBMZWdhY3lBbW91bnRBZ2dyZWdhdGlvblRpbWVQZXJpb2RNZXRob2QsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfZHJhZnRfcmVzcG9uc2UgaW1wb3J0IExlZ2FjeURyYWZ0UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfZHJhZnRfcmV2aWV3X2FuZF92YWxpZGF0aW9uX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBMZWdhY3lEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfYW5kX3ZhbGlkYXRpb25fcmVzcG9uc2UgaW1wb3J0ICgKICAgIExlZ2FjeVBvbGljeUFuZFZhbGlkYXRpb25SZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfY2hlY2tfcmVzdWx0IGltcG9ydCBMZWdhY3lQb2xpY3lDaGVja1Jlc3VsdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfbWV0YWRhdGEgaW1wb3J0IExlZ2FjeVBvbGljeU1ldGFkYXRhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9yZXNwb25zZSBpbXBvcnQgTGVnYWN5UG9saWN5UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGUgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfYW1vdW50IGltcG9ydCBMZWdhY3lQb2xpY3lSdWxlQW1vdW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2Ftb3VudF9hZ2dyZWdhdGlvbiBpbXBvcnQgKAogICAgTGVnYWN5UG9saWN5UnVsZUFtb3VudEFnZ3JlZ2F0aW9uLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2F1dGhvcml6YXRpb25fZ3JvdXBzIGltcG9ydCAoCiAgICBMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3VwcywKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hdXRob3JpemF0aW9uX2dyb3Vwc19ncm91cHNfaW5uZXIgaW1wb3J0ICgKICAgIExlZ2FjeVBvbGljeVJ1bGVBdXRob3JpemF0aW9uR3JvdXBzR3JvdXBzSW5uZXIsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfY2hlY2tfcmVzdWx0IGltcG9ydCAoCiAgICBMZWdhY3lQb2xpY3lSdWxlQ2hlY2tSZXN1bHQsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfZGVzaWduYXRlZF9zaWduZXJzIGltcG9ydCAoCiAgICBMZWdhY3lQb2xpY3lSdWxlRGVzaWduYXRlZFNpZ25lcnMsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfZHN0IGltcG9ydCBMZWdhY3lQb2xpY3lSdWxlRHN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2Vycm9yIGltcG9ydCBMZWdhY3lQb2xpY3lSdWxlRXJyb3IKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfb3BlcmF0b3JzIGltcG9ydCBMZWdhY3lQb2xpY3lSdWxlT3BlcmF0b3JzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX3Jhd19tZXNzYWdlX3NpZ25pbmcgaW1wb3J0ICgKICAgIExlZ2FjeVBvbGljeVJ1bGVSYXdNZXNzYWdlU2lnbmluZywKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9yYXdfbWVzc2FnZV9zaWduaW5nX2Rlcml2YXRpb25fcGF0aCBpbXBvcnQgKAogICAgTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nRGVyaXZhdGlvblBhdGgsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfc3JjIGltcG9ydCBMZWdhY3lQb2xpY3lSdWxlU3JjCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlcyBpbXBvcnQgTGVnYWN5UG9saWN5UnVsZXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3NyY19vcl9kZXN0X3N1Yl90eXBlIGltcG9ydCAoCiAgICBMZWdhY3lQb2xpY3lTcmNPckRlc3RTdWJUeXBlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9zcmNfb3JfZGVzdF90eXBlIGltcG9ydCBMZWdhY3lQb2xpY3lTcmNPckRlc3RUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9zdGF0dXMgaW1wb3J0IExlZ2FjeVBvbGljeVN0YXR1cwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfdmFsaWRhdGlvbiBpbXBvcnQgTGVnYWN5UG9saWN5VmFsaWRhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wdWJsaXNoX2RyYWZ0X3JlcXVlc3QgaW1wb3J0IExlZ2FjeVB1Ymxpc2hEcmFmdFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcHVibGlzaF9yZXN1bHQgaW1wb3J0IExlZ2FjeVB1Ymxpc2hSZXN1bHQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfc3JjX29yX2Rlc3RfYXR0cmlidXRlc19pbm5lciBpbXBvcnQgKAogICAgTGVnYWN5U3JjT3JEZXN0QXR0cmlidXRlc0lubmVyLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGlua2VkX3Rva2Vuc19jb3VudCBpbXBvcnQgTGlua2VkVG9rZW5zQ291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5saXN0X2Fzc2V0c19yZXNwb25zZSBpbXBvcnQgTGlzdEFzc2V0c1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGlzdF9ibG9ja2NoYWluc19yZXNwb25zZSBpbXBvcnQgTGlzdEJsb2NrY2hhaW5zUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5saXN0X293bmVkX2NvbGxlY3Rpb25zX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBMaXN0T3duZWRDb2xsZWN0aW9uc1Jlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGlzdF9vd25lZF90b2tlbnNfcmVzcG9uc2UgaW1wb3J0IExpc3RPd25lZFRva2Vuc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubG9jYWxfYmFua190cmFuc2Zlcl9hZnJpY2FfYWRkcmVzcyBpbXBvcnQgKAogICAgTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FBZGRyZXNzLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubG9jYWxfYmFua190cmFuc2Zlcl9hZnJpY2FfZGVzdGluYXRpb24gaW1wb3J0ICgKICAgIExvY2FsQmFua1RyYW5zZmVyQWZyaWNhRGVzdGluYXRpb24sCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tYW5pZmVzdCBpbXBvcnQgTWFuaWZlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tYW5pZmVzdF9iYXNlIGltcG9ydCBNYW5pZmVzdEJhc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tYW5pZmVzdF9vcmRlciBpbXBvcnQgTWFuaWZlc3RPcmRlcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hbmlmZXN0X29yZGVyX2luZm8gaW1wb3J0IE1hbmlmZXN0T3JkZXJJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubWFuaWZlc3RfcXVvdGUgaW1wb3J0IE1hbmlmZXN0UXVvdGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tYW5pZmVzdF9xdW90ZV9pbmZvIGltcG9ydCBNYW5pZmVzdFF1b3RlSW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hcmtldF9leGVjdXRpb25fcmVxdWVzdF9kZXRhaWxzIGltcG9ydCAoCiAgICBNYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlscywKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hcmtldF9leGVjdXRpb25fcmVzcG9uc2VfZGV0YWlscyBpbXBvcnQgKAogICAgTWFya2V0RXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubWFya2V0X3JlcXVvdGVfcmVxdWVzdF9kZXRhaWxzIGltcG9ydCBNYXJrZXRSZXF1b3RlUmVxdWVzdERldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tYXJrZXRfcmVxdW90ZV90eXBlX2VudW0gaW1wb3J0IE1hcmtldFJlcXVvdGVUeXBlRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hcmtldF90eXBlX2RldGFpbHMgaW1wb3J0IE1hcmtldFR5cGVEZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubWFya2V0X3R5cGVfZW51bSBpbXBvcnQgTWFya2V0VHlwZUVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tZWRpYV9lbnRpdHlfcmVzcG9uc2UgaW1wb3J0IE1lZGlhRW50aXR5UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tZXJnZV9zdGFrZV9hY2NvdW50c19yZXF1ZXN0IGltcG9ydCBNZXJnZVN0YWtlQWNjb3VudHNSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubWVyZ2Vfc3Rha2VfYWNjb3VudHNfcmVzcG9uc2UgaW1wb3J0IE1lcmdlU3Rha2VBY2NvdW50c1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubW9iaWxlX21vbmV5X2FkZHJlc3MgaW1wb3J0IE1vYmlsZU1vbmV5QWRkcmVzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1vYmlsZV9tb25leV9kZXN0aW5hdGlvbiBpbXBvcnQgTW9iaWxlTW9uZXlEZXN0aW5hdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1vZGlmeV9zaWduaW5nX2tleV9hZ2VudF9pZF9kdG8gaW1wb3J0IE1vZGlmeVNpZ25pbmdLZXlBZ2VudElkRHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubW9kaWZ5X3NpZ25pbmdfa2V5X2R0byBpbXBvcnQgTW9kaWZ5U2lnbmluZ0tleUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1vZGlmeV92YWxpZGF0aW9uX2tleV9kdG8gaW1wb3J0IE1vZGlmeVZhbGlkYXRpb25LZXlEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tb21vX3BheW1lbnRfaW5mbyBpbXBvcnQgTW9tb1BheW1lbnRJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubXBjX2tleSBpbXBvcnQgTXBjS2V5CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubXVsdGljaGFpbl9kZXBsb3ltZW50X21ldGFkYXRhIGltcG9ydCAoCiAgICBNdWx0aWNoYWluRGVwbG95bWVudE1ldGFkYXRhLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19jaGFubmVsIGltcG9ydCBOZXR3b3JrQ2hhbm5lbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfY29ubmVjdGlvbiBpbXBvcnQgTmV0d29ya0Nvbm5lY3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5uZXR3b3JrX2Nvbm5lY3Rpb25fcmVzcG9uc2UgaW1wb3J0IE5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5uZXR3b3JrX2Nvbm5lY3Rpb25fcm91dGluZ19wb2xpY3lfdmFsdWUgaW1wb3J0ICgKICAgIE5ldHdvcmtDb25uZWN0aW9uUm91dGluZ1BvbGljeVZhbHVlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19jb25uZWN0aW9uX3N0YXR1cyBpbXBvcnQgTmV0d29ya0Nvbm5lY3Rpb25TdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5uZXR3b3JrX2ZlZSBpbXBvcnQgTmV0d29ya0ZlZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfaWQgaW1wb3J0IE5ldHdvcmtJZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfaWRfcmVzcG9uc2UgaW1wb3J0IE5ldHdvcmtJZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19pZF9yb3V0aW5nX3BvbGljeV92YWx1ZSBpbXBvcnQgKAogICAgTmV0d29ya0lkUm91dGluZ1BvbGljeVZhbHVlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19yZWNvcmQgaW1wb3J0IE5ldHdvcmtSZWNvcmQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5uZXdfYWRkcmVzcyBpbXBvcnQgTmV3QWRkcmVzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vbmVfbmV0d29ya19yb3V0aW5nX2Rlc3QgaW1wb3J0IE5vbmVOZXR3b3JrUm91dGluZ0Rlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ub3RfZm91bmRfZXhjZXB0aW9uIGltcG9ydCBOb3RGb3VuZEV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vdGlmaWNhdGlvbiBpbXBvcnQgTm90aWZpY2F0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubm90aWZpY2F0aW9uX2F0dGVtcHQgaW1wb3J0IE5vdGlmaWNhdGlvbkF0dGVtcHQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ub3RpZmljYXRpb25fYXR0ZW1wdHNfcGFnaW5hdGVkX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBOb3RpZmljYXRpb25BdHRlbXB0c1BhZ2luYXRlZFJlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubm90aWZpY2F0aW9uX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgKAogICAgTm90aWZpY2F0aW9uUGFnaW5hdGVkUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ub3RpZmljYXRpb25fc3RhdHVzIGltcG9ydCBOb3RpZmljYXRpb25TdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ub3RpZmljYXRpb25fd2l0aF9kYXRhIGltcG9ydCBOb3RpZmljYXRpb25XaXRoRGF0YQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9uY2hhaW5fdHJhbnNhY3Rpb24gaW1wb3J0IE9uY2hhaW5UcmFuc2FjdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9uY2hhaW5fdHJhbnNhY3Rpb25zX3BhZ2VkX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBPbmNoYWluVHJhbnNhY3Rpb25zUGFnZWRSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9uZV90aW1lX2FkZHJlc3MgaW1wb3J0IE9uZVRpbWVBZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMub25lX3RpbWVfYWRkcmVzc19hY2NvdW50IGltcG9ydCBPbmVUaW1lQWRkcmVzc0FjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5vbmVfdGltZV9hZGRyZXNzX3BlZXJfdHlwZSBpbXBvcnQgT25lVGltZUFkZHJlc3NQZWVyVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9uZV90aW1lX2FkZHJlc3NfcmVmZXJlbmNlIGltcG9ydCBPbmVUaW1lQWRkcmVzc1JlZmVyZW5jZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9wZXJhdGlvbl9leGVjdXRpb25fZmFpbHVyZSBpbXBvcnQgT3BlcmF0aW9uRXhlY3V0aW9uRmFpbHVyZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9yZGVyX2RldGFpbHMgaW1wb3J0IE9yZGVyRGV0YWlscwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9yZGVyX2V4ZWN1dGlvbl9zdGVwIGltcG9ydCBPcmRlckV4ZWN1dGlvblN0ZXAKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5vcmRlcl9zaWRlIGltcG9ydCBPcmRlclNpZGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5vcmRlcl9zdGF0dXMgaW1wb3J0IE9yZGVyU3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMub3JkZXJfc3VtbWFyeSBpbXBvcnQgT3JkZXJTdW1tYXJ5CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFnaW5hdGVkX2FkZHJlc3NfcmVzcG9uc2UgaW1wb3J0IFBhZ2luYXRlZEFkZHJlc3NSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhZ2luYXRlZF9hZGRyZXNzX3Jlc3BvbnNlX3BhZ2luZyBpbXBvcnQgKAogICAgUGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlUGFnaW5nLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFnaW5hdGVkX2Fzc2V0X3dhbGxldF9yZXNwb25zZSBpbXBvcnQgKAogICAgUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhZ2luYXRlZF9hc3NldF93YWxsZXRfcmVzcG9uc2VfcGFnaW5nIGltcG9ydCAoCiAgICBQYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlUGFnaW5nLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFnaW5hdGVkX2Fzc2V0c19yZXNwb25zZSBpbXBvcnQgUGFnaW5hdGVkQXNzZXRzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYWdpbmcgaW1wb3J0IFBhZ2luZwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhaXJfYXBpX2tleV9yZXF1ZXN0IGltcG9ydCBQYWlyQXBpS2V5UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhaXJfYXBpX2tleV9yZXNwb25zZSBpbXBvcnQgUGFpckFwaUtleVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyIGltcG9ydCBQYXJhbWV0ZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXJfd2l0aF92YWx1ZSBpbXBvcnQgUGFyYW1ldGVyV2l0aFZhbHVlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFydGljaXBhbnRfcmVsYXRpb25zaGlwX3R5cGUgaW1wb3J0IFBhcnRpY2lwYW50UmVsYXRpb25zaGlwVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhcnRpY2lwYW50c19pZGVudGlmaWNhdGlvbiBpbXBvcnQgUGFydGljaXBhbnRzSWRlbnRpZmljYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXllZV9hY2NvdW50IGltcG9ydCBQYXllZUFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXllZV9hY2NvdW50X3Jlc3BvbnNlIGltcG9ydCBQYXllZUFjY291bnRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheWVlX2FjY291bnRfdHlwZSBpbXBvcnQgUGF5ZWVBY2NvdW50VHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheWlkX2FkZHJlc3MgaW1wb3J0IFBheWlkQWRkcmVzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheWlkX2Rlc3RpbmF0aW9uIGltcG9ydCBQYXlpZERlc3RpbmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5aWRfcGF5bWVudF9pbmZvIGltcG9ydCBQYXlpZFBheW1lbnRJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5bWVudF9hY2NvdW50IGltcG9ydCBQYXltZW50QWNjb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW1lbnRfYWNjb3VudF9yZXNwb25zZSBpbXBvcnQgUGF5bWVudEFjY291bnRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW1lbnRfYWNjb3VudF90eXBlIGltcG9ydCBQYXltZW50QWNjb3VudFR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXltZW50X2luc3RydWN0aW9ucyBpbXBvcnQgUGF5bWVudEluc3RydWN0aW9ucwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW1lbnRfaW5zdHJ1Y3Rpb25zX29uZV9vZiBpbXBvcnQgUGF5bWVudEluc3RydWN0aW9uc09uZU9mCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5bWVudF9yZWRpcmVjdCBpbXBvcnQgUGF5bWVudFJlZGlyZWN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5b3V0X2luaXRfbWV0aG9kIGltcG9ydCBQYXlvdXRJbml0TWV0aG9kCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5b3V0X2luc3RydWN0aW9uIGltcG9ydCBQYXlvdXRJbnN0cnVjdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW91dF9pbnN0cnVjdGlvbl9yZXNwb25zZSBpbXBvcnQgUGF5b3V0SW5zdHJ1Y3Rpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW91dF9pbnN0cnVjdGlvbl9zdGF0ZSBpbXBvcnQgUGF5b3V0SW5zdHJ1Y3Rpb25TdGF0ZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW91dF9yZXNwb25zZSBpbXBvcnQgUGF5b3V0UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXlvdXRfc3RhdGUgaW1wb3J0IFBheW91dFN0YXRlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5b3V0X3N0YXR1cyBpbXBvcnQgUGF5b3V0U3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGVlcl9hZGFwdGVyX2luZm8gaW1wb3J0IFBlZXJBZGFwdGVySW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBlZXJfdHlwZSBpbXBvcnQgUGVlclR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wZXJzb25hbF9lbnRpdHlfdHlwZV9lbnVtIGltcG9ydCBQZXJzb25hbEVudGl0eVR5cGVFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGVyc29uYWxfaWRlbnRpZmljYXRpb24gaW1wb3J0IFBlcnNvbmFsSWRlbnRpZmljYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wZXJzb25hbF9pZGVudGlmaWNhdGlvbl9mdWxsX25hbWUgaW1wb3J0ICgKICAgIFBlcnNvbmFsSWRlbnRpZmljYXRpb25GdWxsTmFtZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBlcnNvbmFsX2lkZW50aWZpY2F0aW9uX3R5cGUgaW1wb3J0IFBlcnNvbmFsSWRlbnRpZmljYXRpb25UeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGl4X2FkZHJlc3MgaW1wb3J0IFBpeEFkZHJlc3MKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5waXhfZGVzdGluYXRpb24gaW1wb3J0IFBpeERlc3RpbmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGl4X3BheW1lbnRfaW5mbyBpbXBvcnQgUGl4UGF5bWVudEluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wbGF0Zm9ybV9hY2NvdW50IGltcG9ydCBQbGF0Zm9ybUFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wbGF0Zm9ybV9wZWVyX3R5cGUgaW1wb3J0IFBsYXRmb3JtUGVlclR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wbGF5ZXJzIGltcG9ydCBQbGF5ZXJzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X2FuZF92YWxpZGF0aW9uX3Jlc3BvbnNlIGltcG9ydCBQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfY2hlY2tfcmVzdWx0IGltcG9ydCBQb2xpY3lDaGVja1Jlc3VsdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9jdXJyZW5jeSBpbXBvcnQgUG9saWN5Q3VycmVuY3kKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfbWV0YWRhdGEgaW1wb3J0IFBvbGljeU1ldGFkYXRhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X29wZXJhdG9yIGltcG9ydCBQb2xpY3lPcGVyYXRvcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9yZXNwb25zZSBpbXBvcnQgUG9saWN5UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfcnVsZSBpbXBvcnQgUG9saWN5UnVsZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9ydWxlX2NoZWNrX3Jlc3VsdCBpbXBvcnQgUG9saWN5UnVsZUNoZWNrUmVzdWx0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3J1bGVfZXJyb3IgaW1wb3J0IFBvbGljeVJ1bGVFcnJvcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9zdGF0dXMgaW1wb3J0IFBvbGljeVN0YXR1cwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV90YWcgaW1wb3J0IFBvbGljeVRhZwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV90eXBlIGltcG9ydCBQb2xpY3lUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3ZhbGlkYXRpb24gaW1wb3J0IFBvbGljeVZhbGlkYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfdmVyZGljdF9hY3Rpb25fZW51bSBpbXBvcnQgUG9saWN5VmVyZGljdEFjdGlvbkVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfdmVyZGljdF9hY3Rpb25fZW51bTIgaW1wb3J0IFBvbGljeVZlcmRpY3RBY3Rpb25FbnVtMgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvc2l0aW9uIGltcG9ydCBQb3NpdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvc3RhbF9hZGRyZXNzIGltcG9ydCBQb3N0YWxBZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucHJlX3NjcmVlbmluZyBpbXBvcnQgUHJlU2NyZWVuaW5nCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucHJlZnVuZGVkX3NldHRsZW1lbnQgaW1wb3J0IFByZWZ1bmRlZFNldHRsZW1lbnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wcmVmdW5kZWRfc2V0dGxlbWVudF90eXBlIGltcG9ydCBQcmVmdW5kZWRTZXR0bGVtZW50VHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnByb2dyYW1fY2FsbF9jb25maWcgaW1wb3J0IFByb2dyYW1DYWxsQ29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucHJvdmlkZXIgaW1wb3J0IFByb3ZpZGVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucHJvdmlkZXJzX2xpc3RfcmVzcG9uc2UgaW1wb3J0IFByb3ZpZGVyc0xpc3RSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnB1YmxpY19rZXlfaW5mb3JtYXRpb24gaW1wb3J0IFB1YmxpY0tleUluZm9ybWF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucHVibGlzaF9kcmFmdF9yZXF1ZXN0IGltcG9ydCBQdWJsaXNoRHJhZnRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucHVibGlzaF9yZXN1bHQgaW1wb3J0IFB1Ymxpc2hSZXN1bHQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5xdW90ZSBpbXBvcnQgUXVvdGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5xdW90ZV9leGVjdXRpb25fcmVxdWVzdF9kZXRhaWxzIGltcG9ydCAoCiAgICBRdW90ZUV4ZWN1dGlvblJlcXVlc3REZXRhaWxzLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucXVvdGVfZXhlY3V0aW9uX3N0ZXAgaW1wb3J0IFF1b3RlRXhlY3V0aW9uU3RlcApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnF1b3RlX2V4ZWN1dGlvbl90eXBlX2RldGFpbHMgaW1wb3J0IFF1b3RlRXhlY3V0aW9uVHlwZURldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5xdW90ZV9leGVjdXRpb25fd2l0aF9yZXF1b3RlX3JlcXVlc3RfZGV0YWlscyBpbXBvcnQgKAogICAgUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlcXVlc3REZXRhaWxzLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucXVvdGVfZXhlY3V0aW9uX3dpdGhfcmVxdW90ZV9yZXNwb25zZV9kZXRhaWxzIGltcG9ydCAoCiAgICBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVzcG9uc2VEZXRhaWxzLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucXVvdGVfZmFpbHVyZSBpbXBvcnQgUXVvdGVGYWlsdXJlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucXVvdGVfcHJvcGVydGllc19kZXRhaWxzIGltcG9ydCBRdW90ZVByb3BlcnRpZXNEZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucXVvdGVfdHlwZV9lbnVtIGltcG9ydCBRdW90ZVR5cGVFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucXVvdGVzX3Jlc3BvbnNlIGltcG9ydCBRdW90ZXNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlX3F1b3RlX2RldGFpbHMgaW1wb3J0IFJlUXVvdGVEZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVfcXVvdGVfZGV0YWlsc19yZV9xdW90ZSBpbXBvcnQgUmVRdW90ZURldGFpbHNSZVF1b3RlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVhZF9hYmlfZnVuY3Rpb24gaW1wb3J0IFJlYWRBYmlGdW5jdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlYWRfY2FsbF9mdW5jdGlvbl9kdG8gaW1wb3J0IFJlYWRDYWxsRnVuY3Rpb25EdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZWFkX2NhbGxfZnVuY3Rpb25fZHRvX2FiaV9mdW5jdGlvbiBpbXBvcnQgKAogICAgUmVhZENhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVjaXBpZW50X2hhbmRsZSBpbXBvcnQgUmVjaXBpZW50SGFuZGxlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVkZWVtX2Z1bmRzX3RvX2xpbmtlZF9kZGFfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFJlZGVlbUZ1bmRzVG9MaW5rZWREREFSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlZ2lzdGVyX25ld19hc3NldF9yZXF1ZXN0IGltcG9ydCBSZWdpc3Rlck5ld0Fzc2V0UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlaXNzdWVfbXVsdGljaGFpbl90b2tlbl9yZXF1ZXN0IGltcG9ydCAoCiAgICBSZWlzc3VlTXVsdGljaGFpblRva2VuUmVxdWVzdCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbGF0ZWRfcmVxdWVzdCBpbXBvcnQgUmVsYXRlZFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZWxhdGVkX3RyYW5zYWN0aW9uIGltcG9ydCBSZWxhdGVkVHJhbnNhY3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZW1vdmVfY29sbGF0ZXJhbF9yZXF1ZXN0X2JvZHkgaW1wb3J0IFJlbW92ZUNvbGxhdGVyYWxSZXF1ZXN0Qm9keQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJfZmFpbGVkX3Jlc3VsdCBpbXBvcnQgKAogICAgUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlckZhaWxlZFJlc3VsdCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJzX3JlcXVlc3QgaW1wb3J0ICgKICAgIFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJzX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBSZW1vdmVMYXllclplcm9BZGFwdGVyc1Jlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVtb3ZlX2xheWVyX3plcm9fcGVlcnNfcmVxdWVzdCBpbXBvcnQgKAogICAgUmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXF1ZXN0LAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVtb3ZlX2xheWVyX3plcm9fcGVlcnNfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFJlbW92ZUxheWVyWmVyb1BlZXJzUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZW5hbWVfY29ubmVjdGVkX2FjY291bnRfcmVxdWVzdCBpbXBvcnQgKAogICAgUmVuYW1lQ29ubmVjdGVkQWNjb3VudFJlcXVlc3QsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZW5hbWVfY29ubmVjdGVkX2FjY291bnRfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFJlbmFtZUNvbm5lY3RlZEFjY291bnRSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbmFtZV9jb3NpZ25lciBpbXBvcnQgUmVuYW1lQ29zaWduZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZW5hbWVfdmF1bHRfYWNjb3VudF9yZXNwb25zZSBpbXBvcnQgUmVuYW1lVmF1bHRBY2NvdW50UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZXNlbmRfZmFpbGVkX25vdGlmaWNhdGlvbnNfam9iX3N0YXR1c19yZXNwb25zZSBpbXBvcnQgKAogICAgUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc0pvYlN0YXR1c1Jlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVzZW5kX2ZhaWxlZF9ub3RpZmljYXRpb25zX3JlcXVlc3QgaW1wb3J0ICgKICAgIFJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXF1ZXN0LAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVzZW5kX2ZhaWxlZF9ub3RpZmljYXRpb25zX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZXNlbmRfbm90aWZpY2F0aW9uc19ieV9yZXNvdXJjZV9pZF9yZXF1ZXN0IGltcG9ydCAoCiAgICBSZXNlbmROb3RpZmljYXRpb25zQnlSZXNvdXJjZUlkUmVxdWVzdCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc2VuZF90cmFuc2FjdGlvbl93ZWJob29rc19yZXF1ZXN0IGltcG9ydCAoCiAgICBSZXNlbmRUcmFuc2FjdGlvbldlYmhvb2tzUmVxdWVzdCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc2VuZF93ZWJob29rc19ieV90cmFuc2FjdGlvbl9pZF9yZXNwb25zZSBpbXBvcnQgKAogICAgUmVzZW5kV2ViaG9va3NCeVRyYW5zYWN0aW9uSWRSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc2VuZF93ZWJob29rc19yZXNwb25zZSBpbXBvcnQgUmVzZW5kV2ViaG9va3NSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc3BvbmRfdG9fY29ubmVjdGlvbl9yZXF1ZXN0IGltcG9ydCBSZXNwb25kVG9Db25uZWN0aW9uUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJldHJ5X3JlcXVvdGVfcmVxdWVzdF9kZXRhaWxzIGltcG9ydCBSZXRyeVJlcXVvdGVSZXF1ZXN0RGV0YWlscwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJldHJ5X3JlcXVvdGVfdHlwZV9lbnVtIGltcG9ydCBSZXRyeVJlcXVvdGVUeXBlRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJld2FyZF9pbmZvIGltcG9ydCBSZXdhcmRJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmV3YXJkc19pbmZvIGltcG9ydCBSZXdhcmRzSW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJvbGVfZGV0YWlscyBpbXBvcnQgUm9sZURldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yb2xlX2dyYW50ZWUgaW1wb3J0IFJvbGVHcmFudGVlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2VwYV9hZGRyZXNzIGltcG9ydCBTRVBBQWRkcmVzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNlcGFfZGVzdGluYXRpb24gaW1wb3J0IFNFUEFEZXN0aW5hdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvbF9hY2NvdW50IGltcG9ydCBTT0xBY2NvdW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc29sX2FjY291bnRfd2l0aF92YWx1ZSBpbXBvcnQgU09MQWNjb3VudFdpdGhWYWx1ZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjb3BlX2l0ZW0gaW1wb3J0IFNjb3BlSXRlbQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19hbGVydF9leHBvc3VyZV90eXBlX2VudW0gaW1wb3J0ICgKICAgIFNjcmVlbmluZ0FsZXJ0RXhwb3N1cmVUeXBlRW51bSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19hbWxfYWxlcnQgaW1wb3J0IFNjcmVlbmluZ0FtbEFsZXJ0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX2FtbF9tYXRjaGVkX3J1bGUgaW1wb3J0IFNjcmVlbmluZ0FtbE1hdGNoZWRSdWxlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX2FtbF9yZXN1bHQgaW1wb3J0IFNjcmVlbmluZ0FtbFJlc3VsdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19jb25maWd1cmF0aW9uc19yZXF1ZXN0IGltcG9ydCAoCiAgICBTY3JlZW5pbmdDb25maWd1cmF0aW9uc1JlcXVlc3QsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfbWV0YWRhdGFfY29uZmlnIGltcG9ydCBTY3JlZW5pbmdNZXRhZGF0YUNvbmZpZwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19vcGVyYXRpb25fZXhlY3V0aW9uIGltcG9ydCBTY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXQgaW1wb3J0ICgKICAgIFNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19vcGVyYXRpb25fZmFpbHVyZSBpbXBvcnQgU2NyZWVuaW5nT3BlcmF0aW9uRmFpbHVyZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19vcGVyYXRpb25fdHlwZSBpbXBvcnQgU2NyZWVuaW5nT3BlcmF0aW9uVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19wb2xpY3lfcmVzcG9uc2UgaW1wb3J0IFNjcmVlbmluZ1BvbGljeVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3Byb3ZpZGVyX3J1bGVzX2NvbmZpZ3VyYXRpb25fcmVzcG9uc2UgaW1wb3J0ICgKICAgIFNjcmVlbmluZ1Byb3ZpZGVyUnVsZXNDb25maWd1cmF0aW9uUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdHJfbGlua19hbW91bnQgaW1wb3J0IFNjcmVlbmluZ1RSTGlua0Ftb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cl9saW5rX21pc3NpbmdfdHJtX2RlY2lzaW9uIGltcG9ydCAoCiAgICBTY3JlZW5pbmdUUkxpbmtNaXNzaW5nVHJtRGVjaXNpb24sCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdHJfbGlua19taXNzaW5nX3RybV9ydWxlIGltcG9ydCAoCiAgICBTY3JlZW5pbmdUUkxpbmtNaXNzaW5nVHJtUnVsZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cl9saW5rX3Bvc3Rfc2NyZWVuaW5nX3J1bGUgaW1wb3J0ICgKICAgIFNjcmVlbmluZ1RSTGlua1Bvc3RTY3JlZW5pbmdSdWxlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyX2xpbmtfcHJlc2NyZWVuaW5nX3J1bGUgaW1wb3J0ICgKICAgIFNjcmVlbmluZ1RSTGlua1ByZXNjcmVlbmluZ1J1bGUsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdHJfbGlua19ydWxlX2Jhc2UgaW1wb3J0IFNjcmVlbmluZ1RSTGlua1J1bGVCYXNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyYXZlbF9ydWxlX21hdGNoZWRfcnVsZSBpbXBvcnQgKAogICAgU2NyZWVuaW5nVHJhdmVsUnVsZU1hdGNoZWRSdWxlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyYXZlbF9ydWxlX3ByZXNjcmVlbmluZ19ydWxlIGltcG9ydCAoCiAgICBTY3JlZW5pbmdUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cmF2ZWxfcnVsZV9yZXN1bHQgaW1wb3J0IFNjcmVlbmluZ1RyYXZlbFJ1bGVSZXN1bHQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdXBkYXRlX2NvbmZpZ3VyYXRpb25zIGltcG9ydCAoCiAgICBTY3JlZW5pbmdVcGRhdGVDb25maWd1cmF0aW9ucywKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ192YWxpZGF0aW9uX2ZhaWx1cmUgaW1wb3J0IFNjcmVlbmluZ1ZhbGlkYXRpb25GYWlsdXJlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3ZlcmRpY3QgaW1wb3J0IFNjcmVlbmluZ1ZlcmRpY3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdmVyZGljdF9lbnVtIGltcG9ydCBTY3JlZW5pbmdWZXJkaWN0RW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ192ZXJkaWN0X21hdGNoZWRfcnVsZSBpbXBvcnQgU2NyZWVuaW5nVmVyZGljdE1hdGNoZWRSdWxlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2VhcmNoX25ldHdvcmtfaWRzX3Jlc3BvbnNlIGltcG9ydCBTZWFyY2hOZXR3b3JrSWRzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXBhX3BheW1lbnRfaW5mbyBpbXBvcnQgU2VwYVBheW1lbnRJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2Vzc2lvbl9kdG8gaW1wb3J0IFNlc3Npb25EVE8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXNzaW9uX21ldGFkYXRhIGltcG9ydCBTZXNzaW9uTWV0YWRhdGEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfYWRtaW5fcXVvcnVtX3RocmVzaG9sZF9yZXF1ZXN0IGltcG9ydCAoCiAgICBTZXRBZG1pblF1b3J1bVRocmVzaG9sZFJlcXVlc3QsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfYWRtaW5fcXVvcnVtX3RocmVzaG9sZF9yZXNwb25zZSBpbXBvcnQgKAogICAgU2V0QWRtaW5RdW9ydW1UaHJlc2hvbGRSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9hc3NldF9wcmljZV9yZXF1ZXN0IGltcG9ydCBTZXRBc3NldFByaWNlUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9hdXRvX2Z1ZWxfcmVxdWVzdCBpbXBvcnQgU2V0QXV0b0Z1ZWxSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2NvbmZpcm1hdGlvbnNfdGhyZXNob2xkX3JlcXVlc3QgaW1wb3J0ICgKICAgIFNldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXF1ZXN0LAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2NvbmZpcm1hdGlvbnNfdGhyZXNob2xkX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfY3VzdG9tZXJfcmVmX2lkX2Zvcl9hZGRyZXNzX3JlcXVlc3QgaW1wb3J0ICgKICAgIFNldEN1c3RvbWVyUmVmSWRGb3JBZGRyZXNzUmVxdWVzdCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9jdXN0b21lcl9yZWZfaWRfcmVxdWVzdCBpbXBvcnQgU2V0Q3VzdG9tZXJSZWZJZFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfbGF5ZXJfemVyb19kdm5fY29uZmlnX3JlcXVlc3QgaW1wb3J0ICgKICAgIFNldExheWVyWmVyb0R2bkNvbmZpZ1JlcXVlc3QsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfbGF5ZXJfemVyb19kdm5fY29uZmlnX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBTZXRMYXllclplcm9Edm5Db25maWdSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9sYXllcl96ZXJvX3BlZXJzX3JlcXVlc3QgaW1wb3J0IFNldExheWVyWmVyb1BlZXJzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9sYXllcl96ZXJvX3BlZXJzX3Jlc3BvbnNlIGltcG9ydCBTZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X25ldHdvcmtfaWRfZGlzY292ZXJhYmlsaXR5X3JlcXVlc3QgaW1wb3J0ICgKICAgIFNldE5ldHdvcmtJZERpc2NvdmVyYWJpbGl0eVJlcXVlc3QsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfbmV0d29ya19pZF9uYW1lX3JlcXVlc3QgaW1wb3J0IFNldE5ldHdvcmtJZE5hbWVSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X25ldHdvcmtfaWRfcmVzcG9uc2UgaW1wb3J0IFNldE5ldHdvcmtJZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X25ldHdvcmtfaWRfcm91dGluZ19wb2xpY3lfcmVxdWVzdCBpbXBvcnQgKAogICAgU2V0TmV0d29ya0lkUm91dGluZ1BvbGljeVJlcXVlc3QsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfb3RhX3N0YXR1c19yZXF1ZXN0IGltcG9ydCBTZXRPdGFTdGF0dXNSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X290YV9zdGF0dXNfcmVzcG9uc2UgaW1wb3J0IFNldE90YVN0YXR1c1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X290YV9zdGF0dXNfcmVzcG9uc2Vfb25lX29mIGltcG9ydCBTZXRPdGFTdGF0dXNSZXNwb25zZU9uZU9mCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X3JvdXRpbmdfcG9saWN5X3JlcXVlc3QgaW1wb3J0IFNldFJvdXRpbmdQb2xpY3lSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X3JvdXRpbmdfcG9saWN5X3Jlc3BvbnNlIGltcG9ydCBTZXRSb3V0aW5nUG9saWN5UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXR0bGVtZW50IGltcG9ydCBTZXR0bGVtZW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0dGxlbWVudF9yZXF1ZXN0X2JvZHkgaW1wb3J0IFNldHRsZW1lbnRSZXF1ZXN0Qm9keQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldHRsZW1lbnRfcmVzcG9uc2UgaW1wb3J0IFNldHRsZW1lbnRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldHRsZW1lbnRfc291cmNlX2FjY291bnQgaW1wb3J0IFNldHRsZW1lbnRTb3VyY2VBY2NvdW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0dGxlbWVudF90eXBlX2VudW0gaW1wb3J0IFNldHRsZW1lbnRUeXBlRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNpZGUgaW1wb3J0IFNpZGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zaWduZWRfbWVzc2FnZSBpbXBvcnQgU2lnbmVkTWVzc2FnZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNpZ25lZF9tZXNzYWdlX3NpZ25hdHVyZSBpbXBvcnQgU2lnbmVkTWVzc2FnZVNpZ25hdHVyZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNpZ25pbmdfa2V5X2R0byBpbXBvcnQgU2lnbmluZ0tleUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2FwcHJvdmVfdGVybSBpbXBvcnQgU21hcnRUcmFuc2ZlckFwcHJvdmVUZXJtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfYmFkX3JlcXVlc3RfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFNtYXJ0VHJhbnNmZXJCYWRSZXF1ZXN0UmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9jb2luX3N0YXRpc3RpYyBpbXBvcnQgU21hcnRUcmFuc2ZlckNvaW5TdGF0aXN0aWMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9jcmVhdGVfdGlja2V0IGltcG9ydCBTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfY3JlYXRlX3RpY2tldF90ZXJtIGltcG9ydCAoCiAgICBTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0VGVybSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2ZvcmJpZGRlbl9yZXNwb25zZSBpbXBvcnQgKAogICAgU21hcnRUcmFuc2ZlckZvcmJpZGRlblJlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfZnVuZF9kdnBfdGlja2V0IGltcG9ydCBTbWFydFRyYW5zZmVyRnVuZER2cFRpY2tldApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2Z1bmRfdGVybSBpbXBvcnQgU21hcnRUcmFuc2ZlckZ1bmRUZXJtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfbWFudWFsbHlfZnVuZF90ZXJtIGltcG9ydCAoCiAgICBTbWFydFRyYW5zZmVyTWFudWFsbHlGdW5kVGVybSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX25vdF9mb3VuZF9yZXNwb25zZSBpbXBvcnQgKAogICAgU21hcnRUcmFuc2Zlck5vdEZvdW5kUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9zZXRfdGlja2V0X2V4cGlyYXRpb24gaW1wb3J0ICgKICAgIFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHBpcmF0aW9uLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfc2V0X3RpY2tldF9leHRlcm5hbF9pZCBpbXBvcnQgKAogICAgU21hcnRUcmFuc2ZlclNldFRpY2tldEV4dGVybmFsSWQsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9zZXRfdXNlcl9ncm91cHMgaW1wb3J0IFNtYXJ0VHJhbnNmZXJTZXRVc2VyR3JvdXBzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfc3RhdGlzdGljIGltcG9ydCBTbWFydFRyYW5zZmVyU3RhdGlzdGljCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfc3RhdGlzdGljX2luZmxvdyBpbXBvcnQgKAogICAgU21hcnRUcmFuc2ZlclN0YXRpc3RpY0luZmxvdywKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3N0YXRpc3RpY19vdXRmbG93IGltcG9ydCAoCiAgICBTbWFydFRyYW5zZmVyU3RhdGlzdGljT3V0ZmxvdywKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3N1Ym1pdF90aWNrZXQgaW1wb3J0IFNtYXJ0VHJhbnNmZXJTdWJtaXRUaWNrZXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl90aWNrZXQgaW1wb3J0IFNtYXJ0VHJhbnNmZXJUaWNrZXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl90aWNrZXRfZmlsdGVyZWRfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFNtYXJ0VHJhbnNmZXJUaWNrZXRGaWx0ZXJlZFJlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfdGlja2V0X3Jlc3BvbnNlIGltcG9ydCBTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl90aWNrZXRfdGVybSBpbXBvcnQgU21hcnRUcmFuc2ZlclRpY2tldFRlcm0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl90aWNrZXRfdGVybV9yZXNwb25zZSBpbXBvcnQgKAogICAgU21hcnRUcmFuc2ZlclRpY2tldFRlcm1SZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3VwZGF0ZV90aWNrZXRfdGVybSBpbXBvcnQgKAogICAgU21hcnRUcmFuc2ZlclVwZGF0ZVRpY2tldFRlcm0sCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl91c2VyX2dyb3VwcyBpbXBvcnQgU21hcnRUcmFuc2ZlclVzZXJHcm91cHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl91c2VyX2dyb3Vwc19yZXNwb25zZSBpbXBvcnQgKAogICAgU21hcnRUcmFuc2ZlclVzZXJHcm91cHNSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvbF9wYXJhbWV0ZXIgaW1wb3J0IFNvbFBhcmFtZXRlcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvbF9wYXJhbWV0ZXJfd2l0aF92YWx1ZSBpbXBvcnQgU29sUGFyYW1ldGVyV2l0aFZhbHVlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc29sYW5hX2Jsb2NrY2hhaW5fZGF0YSBpbXBvcnQgU29sYW5hQmxvY2tjaGFpbkRhdGEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zb2xhbmFfY29uZmlnIGltcG9ydCBTb2xhbmFDb25maWcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zb2xhbmFfaW5zdHJ1Y3Rpb24gaW1wb3J0IFNvbGFuYUluc3RydWN0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc29sYW5hX2luc3RydWN0aW9uX3dpdGhfdmFsdWUgaW1wb3J0IFNvbGFuYUluc3RydWN0aW9uV2l0aFZhbHVlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc29sYW5hX3NpbXBsZV9jcmVhdGVfcGFyYW1zIGltcG9ydCBTb2xhbmFTaW1wbGVDcmVhdGVQYXJhbXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zb3VyY2VfY29uZmlnIGltcG9ydCBTb3VyY2VDb25maWcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zb3VyY2VfdHJhbnNmZXJfcGVlcl9wYXRoIGltcG9ydCBTb3VyY2VUcmFuc2ZlclBlZXJQYXRoCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc291cmNlX3RyYW5zZmVyX3BlZXJfcGF0aF9yZXNwb25zZSBpbXBvcnQgKAogICAgU291cmNlVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3BhbV9vd25lcnNoaXBfcmVzcG9uc2UgaW1wb3J0IFNwYW1Pd25lcnNoaXBSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwYW1fdG9rZW5fcmVzcG9uc2UgaW1wb3J0IFNwYW1Ub2tlblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3BlaV9hZGRyZXNzIGltcG9ydCBTcGVpQWRkcmVzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwZWlfYWR2YW5jZWRfcGF5bWVudF9pbmZvIGltcG9ydCBTcGVpQWR2YW5jZWRQYXltZW50SW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwZWlfYmFzaWNfcGF5bWVudF9pbmZvIGltcG9ydCBTcGVpQmFzaWNQYXltZW50SW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwZWlfZGVzdGluYXRpb24gaW1wb3J0IFNwZWlEZXN0aW5hdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwbGl0X3JlcXVlc3QgaW1wb3J0IFNwbGl0UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwbGl0X3Jlc3BvbnNlIGltcG9ydCBTcGxpdFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3RfZXRoX2Jsb2NrY2hhaW5fZGF0YSBpbXBvcnQgU3RFdGhCbG9ja2NoYWluRGF0YQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN0YWtlX3JlcXVlc3QgaW1wb3J0IFN0YWtlUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN0YWtlX3Jlc3BvbnNlIGltcG9ydCBTdGFrZVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3Rha2luZ19wb3NpdGlvbnNfcGFnaW5hdGVkX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBTdGFraW5nUG9zaXRpb25zUGFnaW5hdGVkUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zdGFraW5nX3Byb3ZpZGVyIGltcG9ydCBTdGFraW5nUHJvdmlkZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zdGF0dXMgaW1wb3J0IFN0YXR1cwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN0ZWxsYXJfcmlwcGxlX2NyZWF0ZV9wYXJhbXNfZHRvIGltcG9ydCAoCiAgICBTdGVsbGFyUmlwcGxlQ3JlYXRlUGFyYW1zRHRvLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3VwcG9ydGVkX2Jsb2NrX2NoYWluc19yZXNwb25zZSBpbXBvcnQgKAogICAgU3VwcG9ydGVkQmxvY2tDaGFpbnNSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN1cHBvcnRlZF9ibG9ja2NoYWluIGltcG9ydCBTdXBwb3J0ZWRCbG9ja2NoYWluCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3dpZnRfYWRkcmVzcyBpbXBvcnQgU3dpZnRBZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3dpZnRfZGVzdGluYXRpb24gaW1wb3J0IFN3aWZ0RGVzdGluYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zeXN0ZW1fbWVzc2FnZV9pbmZvIGltcG9ydCBTeXN0ZW1NZXNzYWdlSW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXBpX3BhZ2VkX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtBUElQYWdlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hbW91bnQgaW1wb3J0IFRSTGlua0Ftb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYW1vdW50MiBpbXBvcnQgVFJMaW5rQW1vdW50Mgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYW1vdW50X3JhbmdlIGltcG9ydCBUUkxpbmtBbW91bnRSYW5nZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXNzZXNzX3RyYXZlbF9ydWxlX3JlcXVlc3QgaW1wb3J0ICgKICAgIFRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXF1ZXN0LAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hc3Nlc3NfdHJhdmVsX3J1bGVfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXNzZXNzbWVudF9kZWNpc2lvbiBpbXBvcnQgVFJMaW5rQXNzZXNzbWVudERlY2lzaW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hc3NldCBpbXBvcnQgVFJMaW5rQXNzZXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Fzc2V0X2RhdGEgaW1wb3J0IFRSTGlua0Fzc2V0RGF0YQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXNzZXRfZm9ybWF0IGltcG9ydCBUUkxpbmtBc3NldEZvcm1hdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXNzZXRzX2xpc3RfcGFnZWRfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFRSTGlua0Fzc2V0c0xpc3RQYWdlZFJlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19jYW5jZWxfdHJtX3JlcXVlc3QgaW1wb3J0IFRSTGlua0NhbmNlbFRybVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Nvbm5lY3RfaW50ZWdyYXRpb25fcmVxdWVzdCBpbXBvcnQgKAogICAgVFJMaW5rQ29ubmVjdEludGVncmF0aW9uUmVxdWVzdCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY3JlYXRlX2N1c3RvbWVyX3JlcXVlc3QgaW1wb3J0ICgKICAgIFRSTGlua0NyZWF0ZUN1c3RvbWVyUmVxdWVzdCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY3JlYXRlX2ludGVncmF0aW9uX3JlcXVlc3QgaW1wb3J0ICgKICAgIFRSTGlua0NyZWF0ZUludGVncmF0aW9uUmVxdWVzdCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY3JlYXRlX3RybV9yZXF1ZXN0IGltcG9ydCBUUkxpbmtDcmVhdGVUcm1SZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19jdXJyZW5jeSBpbXBvcnQgVFJMaW5rQ3VycmVuY3kKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2N1c3RvbWVyX2ludGVncmF0aW9uX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBUUkxpbmtDdXN0b21lckludGVncmF0aW9uUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2N1c3RvbWVyX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtDdXN0b21lclJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19kZXN0aW5hdGlvbl90cmFuc2Zlcl9wZWVyX3BhdGggaW1wb3J0ICgKICAgIFRSTGlua0Rlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfZGlzY292ZXJhYmxlX3N0YXR1cyBpbXBvcnQgVFJMaW5rRGlzY292ZXJhYmxlU3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19maWF0X3ZhbHVlIGltcG9ydCBUUkxpbmtGaWF0VmFsdWUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2dlb2dyYXBoaWNfYWRkcmVzc19yZXF1ZXN0IGltcG9ydCAoCiAgICBUUkxpbmtHZW9ncmFwaGljQWRkcmVzc1JlcXVlc3QsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2dldF9zdXBwb3J0ZWRfYXNzZXRfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFRSTGlua0dldFN1cHBvcnRlZEFzc2V0UmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2l2bXMgaW1wb3J0IFRSTGlua0l2bXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2l2bXNfcmVzcG9uc2UgaW1wb3J0IFRSTGlua0l2bXNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfandrX3B1YmxpY19rZXkgaW1wb3J0IFRSTGlua0p3a1B1YmxpY0tleQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfbWlzc2luZ190cm1fYWN0aW9uIGltcG9ydCBUUkxpbmtNaXNzaW5nVHJtQWN0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19taXNzaW5nX3RybV9hY3Rpb24yIGltcG9ydCBUUkxpbmtNaXNzaW5nVHJtQWN0aW9uMgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfbWlzc2luZ190cm1fYWN0aW9uX2VudW0gaW1wb3J0IFRSTGlua01pc3NpbmdUcm1BY3Rpb25FbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19taXNzaW5nX3RybV9kZWNpc2lvbiBpbXBvcnQgVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19taXNzaW5nX3RybV9ydWxlIGltcG9ydCBUUkxpbmtNaXNzaW5nVHJtUnVsZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfbWlzc2luZ190cm1fcnVsZTIgaW1wb3J0IFRSTGlua01pc3NpbmdUcm1SdWxlMgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfb25lX3RpbWVfYWRkcmVzcyBpbXBvcnQgVFJMaW5rT25lVGltZUFkZHJlc3MKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3BhZ2luZyBpbXBvcnQgVFJMaW5rUGFnaW5nCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wYXJ0bmVyX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtQYXJ0bmVyUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3BvbGljeV9yZXNwb25zZSBpbXBvcnQgVFJMaW5rUG9saWN5UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3Bvc3Rfc2NyZWVuaW5nX2FjdGlvbiBpbXBvcnQgVFJMaW5rUG9zdFNjcmVlbmluZ0FjdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcG9zdF9zY3JlZW5pbmdfcnVsZSBpbXBvcnQgVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3Bvc3Rfc2NyZWVuaW5nX3J1bGUyIGltcG9ydCBUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZTIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3ByZV9zY3JlZW5pbmdfYWN0aW9uIGltcG9ydCBUUkxpbmtQcmVTY3JlZW5pbmdBY3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3ByZV9zY3JlZW5pbmdfYWN0aW9uMiBpbXBvcnQgVFJMaW5rUHJlU2NyZWVuaW5nQWN0aW9uMgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJlX3NjcmVlbmluZ19hY3Rpb25fZW51bSBpbXBvcnQgKAogICAgVFJMaW5rUHJlU2NyZWVuaW5nQWN0aW9uRW51bSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJlX3NjcmVlbmluZ19ydWxlIGltcG9ydCBUUkxpbmtQcmVTY3JlZW5pbmdSdWxlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wcmVfc2NyZWVuaW5nX3J1bGUyIGltcG9ydCBUUkxpbmtQcmVTY3JlZW5pbmdSdWxlMgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJvdmlkZXJfZGF0YSBpbXBvcnQgVFJMaW5rUHJvdmlkZXJEYXRhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wcm92aWRlcl9yZXN1bHQgaW1wb3J0IFRSTGlua1Byb3ZpZGVyUmVzdWx0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wcm92aWRlcl9yZXN1bHRfd2l0aF9ydWxlIGltcG9ydCAoCiAgICBUUkxpbmtQcm92aWRlclJlc3VsdFdpdGhSdWxlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wcm92aWRlcl9yZXN1bHRfd2l0aF9ydWxlMiBpbXBvcnQgKAogICAgVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZTIsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3B1YmxpY19hc3NldF9pbmZvIGltcG9ydCBUUkxpbmtQdWJsaWNBc3NldEluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3B1YmxpY19rZXlfcmVzcG9uc2UgaW1wb3J0IFRSTGlua1B1YmxpY0tleVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19yZWRpcmVjdF90cm1fcmVxdWVzdCBpbXBvcnQgVFJMaW5rUmVkaXJlY3RUcm1SZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19yZWdpc3RyYXRpb25fcmVzdWx0IGltcG9ydCBUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3JlZ2lzdHJhdGlvbl9yZXN1bHRfZnVsbF9wYXlsb2FkIGltcG9ydCAoCiAgICBUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcmVnaXN0cmF0aW9uX3N0YXR1cyBpbXBvcnQgVFJMaW5rUmVnaXN0cmF0aW9uU3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19yZWdpc3RyYXRpb25fc3RhdHVzX2VudW0gaW1wb3J0ICgKICAgIFRSTGlua1JlZ2lzdHJhdGlvblN0YXR1c0VudW0sCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3Jlc3VsdCBpbXBvcnQgVFJMaW5rUmVzdWx0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19yZXN1bHRfZnVsbF9wYXlsb2FkIGltcG9ydCBUUkxpbmtSZXN1bHRGdWxsUGF5bG9hZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcnVsZV9iYXNlIGltcG9ydCBUUkxpbmtSdWxlQmFzZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfc2V0X2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVxdWVzdCBpbXBvcnQgKAogICAgVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVxdWVzdCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfc2V0X2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19zZXRfdHJhbnNhY3Rpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXF1ZXN0IGltcG9ydCAoCiAgICBUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXF1ZXN0LAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19zZXRfdHJhbnNhY3Rpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXNwb25zZSBpbXBvcnQgKAogICAgVFJMaW5rU2V0VHJhbnNhY3Rpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3NvdXJjZV90cmFuc2Zlcl9wZWVyX3BhdGggaW1wb3J0ICgKICAgIFRSTGlua1NvdXJjZVRyYW5zZmVyUGVlclBhdGgsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3Rlc3RfY29ubmVjdGlvbl9yZXNwb25zZSBpbXBvcnQgKAogICAgVFJMaW5rVGVzdENvbm5lY3Rpb25SZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdGhyZXNob2xkcyBpbXBvcnQgVFJMaW5rVGhyZXNob2xkcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdHJhbnNhY3Rpb25fZGlyZWN0aW9uIGltcG9ydCBUUkxpbmtUcmFuc2FjdGlvbkRpcmVjdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdHJhbnNmZXJfcGVlcl9wYXRoIGltcG9ydCBUUkxpbmtUcmFuc2ZlclBlZXJQYXRoCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua190cm1fZGlyZWN0aW9uIGltcG9ydCBUUkxpbmtUcm1EaXJlY3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3RybV9pbmZvX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtUcm1JbmZvUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3RybV9zY3JlZW5pbmdfc3RhdHVzIGltcG9ydCBUUkxpbmtUcm1TY3JlZW5pbmdTdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3RybV9zY3JlZW5pbmdfc3RhdHVzX2VudW0gaW1wb3J0ICgKICAgIFRSTGlua1RybVNjcmVlbmluZ1N0YXR1c0VudW0sCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3RybV9zdGF0dXMgaW1wb3J0IFRSTGlua1RybVN0YXR1cwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdHhuX2luZm8gaW1wb3J0IFRSTGlua1R4bkluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3VwZGF0ZV9jdXN0b21lcl9yZXF1ZXN0IGltcG9ydCAoCiAgICBUUkxpbmtVcGRhdGVDdXN0b21lclJlcXVlc3QsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3Zhc3BfZHRvIGltcG9ydCBUUkxpbmtWYXNwRHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua192YXNwX2dlb2dyYXBoaWNfYWRkcmVzcyBpbXBvcnQgKAogICAgVFJMaW5rVmFzcEdlb2dyYXBoaWNBZGRyZXNzLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua192YXNwX2xpc3RfZHRvIGltcG9ydCBUUkxpbmtWYXNwTGlzdER0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdmFzcF9uYXRpb25hbF9pZGVudGlmaWNhdGlvbiBpbXBvcnQgKAogICAgVFJMaW5rVmFzcE5hdGlvbmFsSWRlbnRpZmljYXRpb24sCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3ZlcmRpY3QgaW1wb3J0IFRSTGlua1ZlcmRpY3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3ZlcmRpY3RfZW51bSBpbXBvcnQgVFJMaW5rVmVyZGljdEVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50YWcgaW1wb3J0IFRhZwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRhZ19hdHRhY2htZW50X29wZXJhdGlvbl9hY3Rpb24gaW1wb3J0ICgKICAgIFRhZ0F0dGFjaG1lbnRPcGVyYXRpb25BY3Rpb24sCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50YWdzX3BhZ2VkX3Jlc3BvbnNlIGltcG9ydCBUYWdzUGFnZWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRlbXBsYXRlc19wYWdpbmF0ZWRfcmVzcG9uc2UgaW1wb3J0IFRlbXBsYXRlc1BhZ2luYXRlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudGhpcmRfcGFydHlfcm91dGluZyBpbXBvcnQgVGhpcmRQYXJ0eVJvdXRpbmcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50aW1lX3BlcmlvZF9jb25maWcgaW1wb3J0IFRpbWVQZXJpb2RDb25maWcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50aW1lX3BlcmlvZF9tYXRjaF90eXBlIGltcG9ydCBUaW1lUGVyaW9kTWF0Y2hUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9fY29sbGF0ZXJhbF90cmFuc2FjdGlvbiBpbXBvcnQgVG9Db2xsYXRlcmFsVHJhbnNhY3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b19leGNoYW5nZV90cmFuc2FjdGlvbiBpbXBvcnQgVG9FeGNoYW5nZVRyYW5zYWN0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fY29sbGVjdGlvbl9yZXNwb25zZSBpbXBvcnQgVG9rZW5Db2xsZWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b2tlbl9jb250cmFjdF9zdW1tYXJ5X3Jlc3BvbnNlIGltcG9ydCAoCiAgICBUb2tlbkNvbnRyYWN0U3VtbWFyeVJlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5faW5mb19ub3RfZm91bmRfZXJyb3JfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFRva2VuSW5mb05vdEZvdW5kRXJyb3JSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2xpbmtfZHRvIGltcG9ydCBUb2tlbkxpbmtEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b2tlbl9saW5rX2R0b190b2tlbl9tZXRhZGF0YSBpbXBvcnQgVG9rZW5MaW5rRHRvVG9rZW5NZXRhZGF0YQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2xpbmtfZXhpc3RzX2h0dHBfZXJyb3IgaW1wb3J0IFRva2VuTGlua0V4aXN0c0h0dHBFcnJvcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2xpbmtfbm90X211bHRpY2hhaW5fY29tcGF0aWJsZV9odHRwX2Vycm9yIGltcG9ydCAoCiAgICBUb2tlbkxpbmtOb3RNdWx0aWNoYWluQ29tcGF0aWJsZUh0dHBFcnJvciwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2xpbmtfcmVxdWVzdF9kdG8gaW1wb3J0IFRva2VuTGlua1JlcXVlc3REdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b2tlbl9vd25lcnNoaXBfcmVzcG9uc2UgaW1wb3J0IFRva2VuT3duZXJzaGlwUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b2tlbl9vd25lcnNoaXBfc3BhbV91cGRhdGVfcGF5bG9hZCBpbXBvcnQgKAogICAgVG9rZW5Pd25lcnNoaXBTcGFtVXBkYXRlUGF5bG9hZCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX293bmVyc2hpcF9zdGF0dXNfdXBkYXRlX3BheWxvYWQgaW1wb3J0ICgKICAgIFRva2VuT3duZXJzaGlwU3RhdHVzVXBkYXRlUGF5bG9hZCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX3Jlc3BvbnNlIGltcG9ydCBUb2tlblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5zX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgVG9rZW5zUGFnaW5hdGVkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b3RhbF9zdXBwbHlfaXRlbV9kdG8gaW1wb3J0IFRvdGFsU3VwcGx5SXRlbUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRvdGFsX3N1cHBseV9wYWdlZF9yZXNwb25zZSBpbXBvcnQgVG90YWxTdXBwbHlQYWdlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhZGluZ19hY2NvdW50X3R5cGUgaW1wb3J0IFRyYWRpbmdBY2NvdW50VHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYWRpbmdfZXJyb3Jfc2NoZW1hIGltcG9ydCBUcmFkaW5nRXJyb3JTY2hlbWEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFkaW5nX3Byb3ZpZGVyIGltcG9ydCBUcmFkaW5nUHJvdmlkZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFkaW5nX3Byb3ZpZGVyX2RldGFpbHMgaW1wb3J0IFRyYWRpbmdQcm92aWRlckRldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbiBpbXBvcnQgVHJhbnNhY3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9kaXJlY3Rpb24gaW1wb3J0IFRyYW5zYWN0aW9uRGlyZWN0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fZmVlIGltcG9ydCBUcmFuc2FjdGlvbkZlZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX29wZXJhdGlvbiBpbXBvcnQgVHJhbnNhY3Rpb25PcGVyYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9vcGVyYXRpb25fZW51bSBpbXBvcnQgVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVjZWlwdF9yZXNwb25zZSBpbXBvcnQgVHJhbnNhY3Rpb25SZWNlaXB0UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZXF1ZXN0IGltcG9ydCBUcmFuc2FjdGlvblJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZXF1ZXN0X2Ftb3VudCBpbXBvcnQgVHJhbnNhY3Rpb25SZXF1ZXN0QW1vdW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVxdWVzdF9kZXN0aW5hdGlvbiBpbXBvcnQgKAogICAgVHJhbnNhY3Rpb25SZXF1ZXN0RGVzdGluYXRpb24sCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZXF1ZXN0X2ZlZSBpbXBvcnQgVHJhbnNhY3Rpb25SZXF1ZXN0RmVlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVxdWVzdF9nYXNfbGltaXQgaW1wb3J0IFRyYW5zYWN0aW9uUmVxdWVzdEdhc0xpbWl0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVxdWVzdF9nYXNfcHJpY2UgaW1wb3J0IFRyYW5zYWN0aW9uUmVxdWVzdEdhc1ByaWNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVxdWVzdF9uZXR3b3JrX2ZlZSBpbXBvcnQgKAogICAgVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya0ZlZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlcXVlc3RfbmV0d29ya19zdGFraW5nIGltcG9ydCAoCiAgICBUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrU3Rha2luZywKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlcXVlc3RfcHJpb3JpdHlfZmVlIGltcG9ydCAoCiAgICBUcmFuc2FjdGlvblJlcXVlc3RQcmlvcml0eUZlZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBUcmFuc2FjdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVzcG9uc2VfY29udHJhY3RfY2FsbF9kZWNvZGVkX2RhdGEgaW1wb3J0ICgKICAgIFRyYW5zYWN0aW9uUmVzcG9uc2VDb250cmFjdENhbGxEZWNvZGVkRGF0YSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3Jlc3BvbnNlX2Rlc3RpbmF0aW9uIGltcG9ydCAoCiAgICBUcmFuc2FjdGlvblJlc3BvbnNlRGVzdGluYXRpb24sCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9jb25maWdfb3BlcmF0aW9uIGltcG9ydCBUcmFuc2ZlckNvbmZpZ09wZXJhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9jb25maWdfcGFyYW1zIGltcG9ydCAoCiAgICBUcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcywKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9leGVjdXRpb24gaW1wb3J0IFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXQgaW1wb3J0ICgKICAgIFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0LAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXMgaW1wb3J0ICgKICAgIFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXNfZXhlY3V0aW9uX3BhcmFtcyBpbXBvcnQgKAogICAgVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fZmFpbHVyZSBpbXBvcnQgVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX2ZhaWx1cmVfZGF0YSBpbXBvcnQgKAogICAgVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlRGF0YSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9wcmV2aWV3IGltcG9ydCBUcmFuc2Zlck9wZXJhdGlvblByZXZpZXcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fcHJldmlld19vdXRwdXQgaW1wb3J0ICgKICAgIFRyYW5zZmVyT3BlcmF0aW9uUHJldmlld091dHB1dCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl90eXBlIGltcG9ydCBUcmFuc2Zlck9wZXJhdGlvblR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9wZWVyX3BhdGhfc3ViX3R5cGUgaW1wb3J0IFRyYW5zZmVyUGVlclBhdGhTdWJUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfcGVlcl9wYXRoX3R5cGUgaW1wb3J0IFRyYW5zZmVyUGVlclBhdGhUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfcGVlcl9zdWJfdHlwZV9lbnVtIGltcG9ydCBUcmFuc2ZlclBlZXJTdWJUeXBlRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3BlZXJfdHlwZV9lbnVtIGltcG9ydCBUcmFuc2ZlclBlZXJUeXBlRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3JhaWwgaW1wb3J0IFRyYW5zZmVyUmFpbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3JlY2VpcHQgaW1wb3J0IFRyYW5zZmVyUmVjZWlwdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3ZhbGlkYXRpb25fZmFpbHVyZSBpbXBvcnQgVHJhbnNmZXJWYWxpZGF0aW9uRmFpbHVyZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2FjdGlvbl9lbnVtIGltcG9ydCBUcmF2ZWxSdWxlQWN0aW9uRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2FkZHJlc3MgaW1wb3J0IFRyYXZlbFJ1bGVBZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfY3JlYXRlX3RyYW5zYWN0aW9uX3JlcXVlc3QgaW1wb3J0ICgKICAgIFRyYXZlbFJ1bGVDcmVhdGVUcmFuc2FjdGlvblJlcXVlc3QsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9kYXRlX2FuZF9wbGFjZV9vZl9iaXJ0aCBpbXBvcnQgKAogICAgVHJhdmVsUnVsZURhdGVBbmRQbGFjZU9mQmlydGgsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9kaXJlY3Rpb25fZW51bSBpbXBvcnQgVHJhdmVsUnVsZURpcmVjdGlvbkVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9nZW9ncmFwaGljX2FkZHJlc3MgaW1wb3J0IFRyYXZlbFJ1bGVHZW9ncmFwaGljQWRkcmVzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2dldF9hbGxfdmFzcHNfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFRyYXZlbFJ1bGVHZXRBbGxWQVNQc1Jlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfaXNzdWVyIGltcG9ydCBUcmF2ZWxSdWxlSXNzdWVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfaXNzdWVycyBpbXBvcnQgVHJhdmVsUnVsZUlzc3VlcnMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9sZWdhbF9wZXJzb24gaW1wb3J0IFRyYXZlbFJ1bGVMZWdhbFBlcnNvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2xlZ2FsX3BlcnNvbl9uYW1lX2lkZW50aWZpZXIgaW1wb3J0ICgKICAgIFRyYXZlbFJ1bGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbWF0Y2hlZF9ydWxlIGltcG9ydCBUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXRpb25hbF9pZGVudGlmaWNhdGlvbiBpbXBvcnQgKAogICAgVHJhdmVsUnVsZU5hdGlvbmFsSWRlbnRpZmljYXRpb24sCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllciBpbXBvcnQgKAogICAgVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllciwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uIGltcG9ydCBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uX25hbWVfaWRlbnRpZmllciBpbXBvcnQgKAogICAgVHJhdmVsUnVsZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllciwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX293bmVyc2hpcF9wcm9vZiBpbXBvcnQgVHJhdmVsUnVsZU93bmVyc2hpcFByb29mCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfcGVyc29uIGltcG9ydCBUcmF2ZWxSdWxlUGVyc29uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfcGlpX2l2bXMgaW1wb3J0IFRyYXZlbFJ1bGVQaWlJVk1TCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfcG9saWN5X3J1bGVfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFRyYXZlbFJ1bGVQb2xpY3lSdWxlUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9wcmVzY3JlZW5pbmdfcnVsZSBpbXBvcnQgVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9yZXN1bHQgaW1wb3J0IFRyYXZlbFJ1bGVSZXN1bHQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9zdGF0dXNfZW51bSBpbXBvcnQgVHJhdmVsUnVsZVN0YXR1c0VudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV90cmFuc2FjdGlvbl9ibG9ja2NoYWluX2luZm8gaW1wb3J0ICgKICAgIFRyYXZlbFJ1bGVUcmFuc2FjdGlvbkJsb2NrY2hhaW5JbmZvLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdXBkYXRlX3Zhc3BfZGV0YWlscyBpbXBvcnQgKAogICAgVHJhdmVsUnVsZVVwZGF0ZVZBU1BEZXRhaWxzLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFzcCBpbXBvcnQgVHJhdmVsUnVsZVZBU1AKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9kYXRlX2FuZF9wbGFjZV9vZl9iaXJ0aCBpbXBvcnQgKAogICAgVHJhdmVsUnVsZVZhbGlkYXRlRGF0ZUFuZFBsYWNlT2ZCaXJ0aCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2Z1bGxfdHJhbnNhY3Rpb25fcmVxdWVzdCBpbXBvcnQgKAogICAgVHJhdmVsUnVsZVZhbGlkYXRlRnVsbFRyYW5zYWN0aW9uUmVxdWVzdCwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2dlb2dyYXBoaWNfYWRkcmVzcyBpbXBvcnQgKAogICAgVHJhdmVsUnVsZVZhbGlkYXRlR2VvZ3JhcGhpY0FkZHJlc3MsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9sZWdhbF9wZXJzb24gaW1wb3J0ICgKICAgIFRyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbGVnYWxfcGVyc29uX25hbWVfaWRlbnRpZmllciBpbXBvcnQgKAogICAgVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllciwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdGlvbmFsX2lkZW50aWZpY2F0aW9uIGltcG9ydCAoCiAgICBUcmF2ZWxSdWxlVmFsaWRhdGVOYXRpb25hbElkZW50aWZpY2F0aW9uLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9uYW1lX2lkZW50aWZpZXIgaW1wb3J0ICgKICAgIFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxOYW1lSWRlbnRpZmllciwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfcGVyc29uIGltcG9ydCAoCiAgICBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyIGltcG9ydCAoCiAgICBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9wZXJzb24gaW1wb3J0IFRyYXZlbFJ1bGVWYWxpZGF0ZVBlcnNvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX3BpaV9pdm1zIGltcG9ydCBUcmF2ZWxSdWxlVmFsaWRhdGVQaWlJVk1TCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfdHJhbnNhY3Rpb25fcmVxdWVzdCBpbXBvcnQgKAogICAgVHJhdmVsUnVsZVZhbGlkYXRlVHJhbnNhY3Rpb25SZXF1ZXN0LAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfdHJhbnNhY3Rpb25fcmVzcG9uc2UgaW1wb3J0ICgKICAgIFRyYXZlbFJ1bGVWYWxpZGF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YXNwX2Zvcl92YXVsdCBpbXBvcnQgVHJhdmVsUnVsZVZhc3BGb3JWYXVsdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZlcmRpY3RfZW51bSBpbXBvcnQgVHJhdmVsUnVsZVZlcmRpY3RFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzc19jcmVhdGVfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFRydXN0UHJvb2ZPZkFkZHJlc3NDcmVhdGVSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRydXN0X3Byb29mX29mX2FkZHJlc3NfcmVxdWVzdCBpbXBvcnQgVHJ1c3RQcm9vZk9mQWRkcmVzc1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cnVzdF9wcm9vZl9vZl9hZGRyZXNzX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBUcnVzdFByb29mT2ZBZGRyZXNzUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50eF9sb2cgaW1wb3J0IFR4TG9nCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHlwZWRfbWVzc2FnZV90cmFuc2FjdGlvbl9zdGF0dXNfZW51bSBpbXBvcnQgKAogICAgVHlwZWRNZXNzYWdlVHJhbnNhY3Rpb25TdGF0dXNFbnVtLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXNfd2lyZV9hZGRyZXNzIGltcG9ydCBVU1dpcmVBZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXNfd2lyZV9kZXN0aW5hdGlvbiBpbXBvcnQgVVNXaXJlRGVzdGluYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51bmZyZWV6ZV90cmFuc2FjdGlvbl9yZXNwb25zZSBpbXBvcnQgVW5mcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudW5tYW5hZ2VkX3dhbGxldCBpbXBvcnQgVW5tYW5hZ2VkV2FsbGV0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudW5zcGVudF9pbnB1dCBpbXBvcnQgVW5zcGVudElucHV0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudW5zcGVudF9pbnB1dHNfcmVzcG9uc2UgaW1wb3J0IFVuc3BlbnRJbnB1dHNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVuc3Rha2VfcmVxdWVzdCBpbXBvcnQgVW5zdGFrZVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51cGRhdGVfYXNzZXRfdXNlcl9tZXRhZGF0YV9yZXF1ZXN0IGltcG9ydCAoCiAgICBVcGRhdGVBc3NldFVzZXJNZXRhZGF0YVJlcXVlc3QsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51cGRhdGVfY2FsbGJhY2tfaGFuZGxlcl9yZXF1ZXN0IGltcG9ydCAoCiAgICBVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXF1ZXN0LAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXBkYXRlX2NhbGxiYWNrX2hhbmRsZXJfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFVwZGF0ZUNhbGxiYWNrSGFuZGxlclJlc3BvbnNlLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXBkYXRlX2RyYWZ0X3JlcXVlc3QgaW1wb3J0IFVwZGF0ZURyYWZ0UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV90YWdfcmVxdWVzdCBpbXBvcnQgVXBkYXRlVGFnUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV90b2tlbl9vd25lcnNoaXBfc3RhdHVzX2R0byBpbXBvcnQgKAogICAgVXBkYXRlVG9rZW5Pd25lcnNoaXBTdGF0dXNEdG8sCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51cGRhdGVfdmF1bHRfYWNjb3VudF9hc3NldF9hZGRyZXNzX3JlcXVlc3QgaW1wb3J0ICgKICAgIFVwZGF0ZVZhdWx0QWNjb3VudEFzc2V0QWRkcmVzc1JlcXVlc3QsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51cGRhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0IGltcG9ydCBVcGRhdGVWYXVsdEFjY291bnRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXBkYXRlX3dlYmhvb2tfcmVxdWVzdCBpbXBvcnQgVXBkYXRlV2ViaG9va1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51c193aXJlX3BheW1lbnRfaW5mbyBpbXBvcnQgVXNXaXJlUGF5bWVudEluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51c2VyX2dyb3VwX2NyZWF0ZV9yZXF1ZXN0IGltcG9ydCBVc2VyR3JvdXBDcmVhdGVSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXNlcl9ncm91cF9jcmVhdGVfcmVzcG9uc2UgaW1wb3J0IFVzZXJHcm91cENyZWF0ZVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXNlcl9ncm91cF9yZXNwb25zZSBpbXBvcnQgVXNlckdyb3VwUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51c2VyX2dyb3VwX3VwZGF0ZV9yZXF1ZXN0IGltcG9ydCBVc2VyR3JvdXBVcGRhdGVSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXNlcl9yZXNwb25zZSBpbXBvcnQgVXNlclJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXNlcl9yb2xlIGltcG9ydCBVc2VyUm9sZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfc3RhdHVzIGltcG9ydCBVc2VyU3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXNlcl90eXBlIGltcG9ydCBVc2VyVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhbGlkYXRlX2FkZHJlc3NfcmVzcG9uc2UgaW1wb3J0IFZhbGlkYXRlQWRkcmVzc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmFsaWRhdGVfbGF5ZXJfemVyb19jaGFubmVsX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBWYWxpZGF0ZUxheWVyWmVyb0NoYW5uZWxSZXNwb25zZSwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhbGlkYXRpb25fa2V5X2R0byBpbXBvcnQgVmFsaWRhdGlvbktleUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhbGlkYXRvciBpbXBvcnQgVmFsaWRhdG9yCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmF1bHRfYWNjb3VudCBpbXBvcnQgVmF1bHRBY2NvdW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmF1bHRfYWNjb3VudF90YWdfYXR0YWNobWVudF9vcGVyYXRpb24gaW1wb3J0ICgKICAgIFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRPcGVyYXRpb24sCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hY2NvdW50X3RhZ19hdHRhY2htZW50X3BlbmRpbmdfb3BlcmF0aW9uIGltcG9ydCAoCiAgICBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50UGVuZGluZ09wZXJhdGlvbiwKKQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnRfdGFnX2F0dGFjaG1lbnRfcmVqZWN0ZWRfb3BlcmF0aW9uIGltcG9ydCAoCiAgICBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50UmVqZWN0ZWRPcGVyYXRpb24sCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hY2NvdW50c19wYWdlZF9yZXNwb25zZSBpbXBvcnQgVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hY2NvdW50c19wYWdlZF9yZXNwb25zZV9wYWdpbmcgaW1wb3J0ICgKICAgIFZhdWx0QWNjb3VudHNQYWdlZFJlc3BvbnNlUGFnaW5nLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmF1bHRfYWNjb3VudHNfdGFnX2F0dGFjaG1lbnRfb3BlcmF0aW9uc19yZXF1ZXN0IGltcG9ydCAoCiAgICBWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXF1ZXN0LAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmF1bHRfYWNjb3VudHNfdGFnX2F0dGFjaG1lbnRfb3BlcmF0aW9uc19yZXNwb25zZSBpbXBvcnQgKAogICAgVmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVzcG9uc2UsCikKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hY3Rpb25fc3RhdHVzIGltcG9ydCBWYXVsdEFjdGlvblN0YXR1cwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2Fzc2V0IGltcG9ydCBWYXVsdEFzc2V0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmF1bHRfd2FsbGV0X2FkZHJlc3MgaW1wb3J0IFZhdWx0V2FsbGV0QWRkcmVzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZlbmRvcl9kdG8gaW1wb3J0IFZlbmRvckR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZlcmRpY3RfY29uZmlnIGltcG9ydCBWZXJkaWN0Q29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmVyc2lvbl9zdW1tYXJ5IGltcG9ydCBWZXJzaW9uU3VtbWFyeQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndhbGxldF9hc3NldCBpbXBvcnQgV2FsbGV0QXNzZXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53YWxsZXRfYXNzZXRfYWRkaXRpb25hbF9pbmZvIGltcG9ydCBXYWxsZXRBc3NldEFkZGl0aW9uYWxJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud2ViaG9vayBpbXBvcnQgV2ViaG9vawpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndlYmhvb2tfZXZlbnQgaW1wb3J0IFdlYmhvb2tFdmVudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLndlYmhvb2tfbWV0cmljIGltcG9ydCBXZWJob29rTWV0cmljCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud2ViaG9va19wYWdpbmF0ZWRfcmVzcG9uc2UgaW1wb3J0IFdlYmhvb2tQYWdpbmF0ZWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndpdGhkcmF3X3JlcXVlc3QgaW1wb3J0IFdpdGhkcmF3UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLndvcmtmbG93X2NvbmZpZ19zdGF0dXMgaW1wb3J0IFdvcmtmbG93Q29uZmlnU3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud29ya2Zsb3dfY29uZmlndXJhdGlvbl9pZCBpbXBvcnQgV29ya2Zsb3dDb25maWd1cmF0aW9uSWQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53b3JrZmxvd19leGVjdXRpb25fb3BlcmF0aW9uIGltcG9ydCBXb3JrZmxvd0V4ZWN1dGlvbk9wZXJhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndvcmtzcGFjZSBpbXBvcnQgV29ya3NwYWNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud3JpdGVfYWJpX2Z1bmN0aW9uIGltcG9ydCBXcml0ZUFiaUZ1bmN0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud3JpdGVfY2FsbF9mdW5jdGlvbl9kdG8gaW1wb3J0IFdyaXRlQ2FsbEZ1bmN0aW9uRHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud3JpdGVfY2FsbF9mdW5jdGlvbl9kdG9fYWJpX2Z1bmN0aW9uIGltcG9ydCAoCiAgICBXcml0ZUNhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uLAopCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud3JpdGVfY2FsbF9mdW5jdGlvbl9yZXNwb25zZV9kdG8gaW1wb3J0ICgKICAgIFdyaXRlQ2FsbEZ1bmN0aW9uUmVzcG9uc2VEdG8sCikK \ No newline at end of file diff --git a/fireblocks/additional_options.py b/fireblocks/additional_options.py index 12b71da1..d91b9e0f 100644 --- a/fireblocks/additional_options.py +++ b/fireblocks/additional_options.py @@ -1,34 +1 @@ -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - -from pydantic import Field, BaseModel -from typing import Optional - -"""This class contains additional options for the Fireblocks API client. -:param is_anonymous_platform: If set to true, the platform will be anonymous. -:param user_agent: The user agent to use for the client. -:param thread_pool_size: The number of threads to use for the client. -""" - - -class AdditionalOptions(BaseModel): - is_anonymous_platform: Optional[bool] = Field( - False, description="If set to true, the platform will be anonymous" - ) - user_agent: Optional[str] = Field( - None, - description="The custom User-Agent string to be included in the header of every API call made by the client", - ) - thread_pool_size: Optional[int] = Field( - None, - description="The number of threads to use in the thread pool for the client", - ) +IiIiCkZpcmVibG9ja3MgQVBJCgpGaXJlYmxvY2tzIHByb3ZpZGVzIGEgc3VpdGUgb2YgYXBwbGljYXRpb25zIHRvIG1hbmFnZSBkaWdpdGFsIGFzc2V0IG9wZXJhdGlvbnMgYW5kIGEgY29tcGxldGUgZGV2ZWxvcG1lbnQgcGxhdGZvcm0gdG8gYnVpbGQgeW91ciBidXNpbmVzcyBvbiB0aGUgYmxvY2tjaGFpbi4gIC0gVmlzaXQgb3VyIHdlYnNpdGUgZm9yIG1vcmUgaW5mb3JtYXRpb246IFtGaXJlYmxvY2tzIFdlYnNpdGVdKGh0dHBzOi8vZmlyZWJsb2Nrcy5jb20pIC0gVmlzaXQgb3VyIGRldmVsb3BlciBkb2NzOiBbRmlyZWJsb2NrcyBEZXZQb3J0YWxdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbSkKClRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgpDb250YWN0OiBkZXZlbG9wZXJzQGZpcmVibG9ja3MuY29tCkdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQoKRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIEJhc2VNb2RlbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKCiIiIlRoaXMgY2xhc3MgY29udGFpbnMgYWRkaXRpb25hbCBvcHRpb25zIGZvciB0aGUgRmlyZWJsb2NrcyBBUEkgY2xpZW50Lgo6cGFyYW0gaXNfYW5vbnltb3VzX3BsYXRmb3JtOiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIHBsYXRmb3JtIHdpbGwgYmUgYW5vbnltb3VzLgo6cGFyYW0gdXNlcl9hZ2VudDogVGhlIHVzZXIgYWdlbnQgdG8gdXNlIGZvciB0aGUgY2xpZW50Lgo6cGFyYW0gdGhyZWFkX3Bvb2xfc2l6ZTogVGhlIG51bWJlciBvZiB0aHJlYWRzIHRvIHVzZSBmb3IgdGhlIGNsaWVudC4KIiIiCgoKY2xhc3MgQWRkaXRpb25hbE9wdGlvbnMoQmFzZU1vZGVsKToKICAgIGlzX2Fub255bW91c19wbGF0Zm9ybTogT3B0aW9uYWxbYm9vbF0gPSBGaWVsZCgKICAgICAgICBGYWxzZSwgZGVzY3JpcHRpb249IklmIHNldCB0byB0cnVlLCB0aGUgcGxhdGZvcm0gd2lsbCBiZSBhbm9ueW1vdXMiCiAgICApCiAgICB1c2VyX2FnZW50OiBPcHRpb25hbFtzdHJdID0gRmllbGQoCiAgICAgICAgTm9uZSwKICAgICAgICBkZXNjcmlwdGlvbj0iVGhlIGN1c3RvbSBVc2VyLUFnZW50IHN0cmluZyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgaGVhZGVyIG9mIGV2ZXJ5IEFQSSBjYWxsIG1hZGUgYnkgdGhlIGNsaWVudCIsCiAgICApCiAgICB0aHJlYWRfcG9vbF9zaXplOiBPcHRpb25hbFtpbnRdID0gRmllbGQoCiAgICAgICAgTm9uZSwKICAgICAgICBkZXNjcmlwdGlvbj0iVGhlIG51bWJlciBvZiB0aHJlYWRzIHRvIHVzZSBpbiB0aGUgdGhyZWFkIHBvb2wgZm9yIHRoZSBjbGllbnQiLAogICAgKQo= \ No newline at end of file diff --git a/fireblocks/api/__init__.py b/fireblocks/api/__init__.py index 4a84f2bc..f50edddf 100644 --- a/fireblocks/api/__init__.py +++ b/fireblocks/api/__init__.py @@ -1,50 +1 @@ -# flake8: noqa - -# import apis into api package -from fireblocks.api.api_user_api import ApiUserApi -from fireblocks.api.audit_logs_api import AuditLogsApi -from fireblocks.api.blockchains_assets_api import BlockchainsAssetsApi -from fireblocks.api.compliance_api import ComplianceApi -from fireblocks.api.compliance_screening_configuration_api import ComplianceScreeningConfigurationApi -from fireblocks.api.connected_accounts_beta_api import ConnectedAccountsBetaApi -from fireblocks.api.console_user_api import ConsoleUserApi -from fireblocks.api.contract_interactions_api import ContractInteractionsApi -from fireblocks.api.contract_templates_api import ContractTemplatesApi -from fireblocks.api.contracts_api import ContractsApi -from fireblocks.api.cosigners_beta_api import CosignersBetaApi -from fireblocks.api.deployed_contracts_api import DeployedContractsApi -from fireblocks.api.embedded_wallets_api import EmbeddedWalletsApi -from fireblocks.api.exchange_accounts_api import ExchangeAccountsApi -from fireblocks.api.external_wallets_api import ExternalWalletsApi -from fireblocks.api.fiat_accounts_api import FiatAccountsApi -from fireblocks.api.gas_stations_api import GasStationsApi -from fireblocks.api.internal_wallets_api import InternalWalletsApi -from fireblocks.api.key_link_beta_api import KeyLinkBetaApi -from fireblocks.api.keys_beta_api import KeysBetaApi -from fireblocks.api.nfts_api import NFTsApi -from fireblocks.api.network_connections_api import NetworkConnectionsApi -from fireblocks.api.ota_beta_api import OTABetaApi -from fireblocks.api.off_exchanges_api import OffExchangesApi -from fireblocks.api.onchain_data_api import OnchainDataApi -from fireblocks.api.payments_payout_api import PaymentsPayoutApi -from fireblocks.api.policy_editor_v2_beta_api import PolicyEditorV2BetaApi -from fireblocks.api.policy_editor_beta_api import PolicyEditorBetaApi -from fireblocks.api.reset_device_api import ResetDeviceApi -from fireblocks.api.smart_transfer_api import SmartTransferApi -from fireblocks.api.staking_api import StakingApi -from fireblocks.api.tr_link_api import TRLinkApi -from fireblocks.api.tags_api import TagsApi -from fireblocks.api.tokenization_api import TokenizationApi -from fireblocks.api.trading_beta_api import TradingBetaApi -from fireblocks.api.transactions_api import TransactionsApi -from fireblocks.api.travel_rule_api import TravelRuleApi -from fireblocks.api.user_groups_beta_api import UserGroupsBetaApi -from fireblocks.api.users_api import UsersApi -from fireblocks.api.vaults_api import VaultsApi -from fireblocks.api.web3_connections_api import Web3ConnectionsApi -from fireblocks.api.webhooks_api import WebhooksApi -from fireblocks.api.webhooks_v2_api import WebhooksV2Api -from fireblocks.api.workspace_api import WorkspaceApi -from fireblocks.api.workspace_status_beta_api import WorkspaceStatusBetaApi -from fireblocks.api.whitelist_ip_addresses_api import WhitelistIpAddressesApi - +IyBmbGFrZTg6IG5vcWEKCiMgaW1wb3J0IGFwaXMgaW50byBhcGkgcGFja2FnZQpmcm9tIGZpcmVibG9ja3MuYXBpLmFwaV91c2VyX2FwaSBpbXBvcnQgQXBpVXNlckFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmF1ZGl0X2xvZ3NfYXBpIGltcG9ydCBBdWRpdExvZ3NBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5ibG9ja2NoYWluc19hc3NldHNfYXBpIGltcG9ydCBCbG9ja2NoYWluc0Fzc2V0c0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmNvbXBsaWFuY2VfYXBpIGltcG9ydCBDb21wbGlhbmNlQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuY29tcGxpYW5jZV9zY3JlZW5pbmdfY29uZmlndXJhdGlvbl9hcGkgaW1wb3J0IENvbXBsaWFuY2VTY3JlZW5pbmdDb25maWd1cmF0aW9uQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuY29ubmVjdGVkX2FjY291bnRzX2JldGFfYXBpIGltcG9ydCBDb25uZWN0ZWRBY2NvdW50c0JldGFBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5jb25zb2xlX3VzZXJfYXBpIGltcG9ydCBDb25zb2xlVXNlckFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmNvbnRyYWN0X2ludGVyYWN0aW9uc19hcGkgaW1wb3J0IENvbnRyYWN0SW50ZXJhY3Rpb25zQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuY29udHJhY3RfdGVtcGxhdGVzX2FwaSBpbXBvcnQgQ29udHJhY3RUZW1wbGF0ZXNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5jb250cmFjdHNfYXBpIGltcG9ydCBDb250cmFjdHNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5jb3NpZ25lcnNfYmV0YV9hcGkgaW1wb3J0IENvc2lnbmVyc0JldGFBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5kZXBsb3llZF9jb250cmFjdHNfYXBpIGltcG9ydCBEZXBsb3llZENvbnRyYWN0c0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmVtYmVkZGVkX3dhbGxldHNfYXBpIGltcG9ydCBFbWJlZGRlZFdhbGxldHNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5leGNoYW5nZV9hY2NvdW50c19hcGkgaW1wb3J0IEV4Y2hhbmdlQWNjb3VudHNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5leHRlcm5hbF93YWxsZXRzX2FwaSBpbXBvcnQgRXh0ZXJuYWxXYWxsZXRzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuZmlhdF9hY2NvdW50c19hcGkgaW1wb3J0IEZpYXRBY2NvdW50c0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmdhc19zdGF0aW9uc19hcGkgaW1wb3J0IEdhc1N0YXRpb25zQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuaW50ZXJuYWxfd2FsbGV0c19hcGkgaW1wb3J0IEludGVybmFsV2FsbGV0c0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmtleV9saW5rX2JldGFfYXBpIGltcG9ydCBLZXlMaW5rQmV0YUFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmtleXNfYmV0YV9hcGkgaW1wb3J0IEtleXNCZXRhQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkubmZ0c19hcGkgaW1wb3J0IE5GVHNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5uZXR3b3JrX2Nvbm5lY3Rpb25zX2FwaSBpbXBvcnQgTmV0d29ya0Nvbm5lY3Rpb25zQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkub3RhX2JldGFfYXBpIGltcG9ydCBPVEFCZXRhQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkub2ZmX2V4Y2hhbmdlc19hcGkgaW1wb3J0IE9mZkV4Y2hhbmdlc0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLm9uY2hhaW5fZGF0YV9hcGkgaW1wb3J0IE9uY2hhaW5EYXRhQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkucGF5bWVudHNfcGF5b3V0X2FwaSBpbXBvcnQgUGF5bWVudHNQYXlvdXRBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5wb2xpY3lfZWRpdG9yX3YyX2JldGFfYXBpIGltcG9ydCBQb2xpY3lFZGl0b3JWMkJldGFBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5wb2xpY3lfZWRpdG9yX2JldGFfYXBpIGltcG9ydCBQb2xpY3lFZGl0b3JCZXRhQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkucmVzZXRfZGV2aWNlX2FwaSBpbXBvcnQgUmVzZXREZXZpY2VBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5zbWFydF90cmFuc2Zlcl9hcGkgaW1wb3J0IFNtYXJ0VHJhbnNmZXJBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5zdGFraW5nX2FwaSBpbXBvcnQgU3Rha2luZ0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLnRyX2xpbmtfYXBpIGltcG9ydCBUUkxpbmtBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS50YWdzX2FwaSBpbXBvcnQgVGFnc0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLnRva2VuaXphdGlvbl9hcGkgaW1wb3J0IFRva2VuaXphdGlvbkFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLnRyYWRpbmdfYmV0YV9hcGkgaW1wb3J0IFRyYWRpbmdCZXRhQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkudHJhbnNhY3Rpb25zX2FwaSBpbXBvcnQgVHJhbnNhY3Rpb25zQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkudHJhdmVsX3J1bGVfYXBpIGltcG9ydCBUcmF2ZWxSdWxlQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkudXNlcl9ncm91cHNfYmV0YV9hcGkgaW1wb3J0IFVzZXJHcm91cHNCZXRhQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkudXNlcnNfYXBpIGltcG9ydCBVc2Vyc0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLnZhdWx0c19hcGkgaW1wb3J0IFZhdWx0c0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLndlYjNfY29ubmVjdGlvbnNfYXBpIGltcG9ydCBXZWIzQ29ubmVjdGlvbnNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS53ZWJob29rc19hcGkgaW1wb3J0IFdlYmhvb2tzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkud2ViaG9va3NfdjJfYXBpIGltcG9ydCBXZWJob29rc1YyQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkud29ya3NwYWNlX2FwaSBpbXBvcnQgV29ya3NwYWNlQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkud29ya3NwYWNlX3N0YXR1c19iZXRhX2FwaSBpbXBvcnQgV29ya3NwYWNlU3RhdHVzQmV0YUFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLndoaXRlbGlzdF9pcF9hZGRyZXNzZXNfYXBpIGltcG9ydCBXaGl0ZWxpc3RJcEFkZHJlc3Nlc0FwaQoK \ No newline at end of file diff --git a/fireblocks/api/api_user_api.py b/fireblocks/api/api_user_api.py index 5941dee2..ca4edb00 100644 --- a/fireblocks/api/api_user_api.py +++ b/fireblocks/api/api_user_api.py @@ -1,319 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing import Optional -from typing_extensions import Annotated -from fireblocks.models.create_api_user import CreateAPIUser -from fireblocks.models.get_api_users_response import GetAPIUsersResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class ApiUserApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def create_api_user( - self, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - create_api_user: Optional[CreateAPIUser] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Create API Key - - Create a new API key in your workspace. Learn more about Fireblocks API Keys management in the following [guide](https://developers.fireblocks.com/docs/manage-api-keys).
Endpoint Permission: Admin, Non-Signing Admin. - - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param create_api_user: - :type create_api_user: CreateAPIUser - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_api_user_serialize( - idempotency_key=idempotency_key, - create_api_user=create_api_user, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': None, - '400': None, - '401': "ErrorResponse", - '403': "ErrorResponse", - '5XX': "ErrorResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_api_user_serialize( - self, - idempotency_key, - create_api_user, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_api_user is not None: - _body_params = create_api_user - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/management/api_users', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_api_users( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GetAPIUsersResponse]]: - """Get API Keys - - List all API keys in your workspace. - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions.
Endpoint Permission: Admin, Non-Signing Admin. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_api_users_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GetAPIUsersResponse", - '401': "ErrorResponse", - '403': "ErrorResponse", - '5XX': "ErrorResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_api_users_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/management/api_users', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX2FwaV91c2VyIGltcG9ydCBDcmVhdGVBUElVc2VyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X2FwaV91c2Vyc19yZXNwb25zZSBpbXBvcnQgR2V0QVBJVXNlcnNSZXNwb25zZQoKZnJvbSBmaXJlYmxvY2tzLmFwaV9jbGllbnQgaW1wb3J0IEFwaUNsaWVudCwgUmVxdWVzdFNlcmlhbGl6ZWQKZnJvbSBmaXJlYmxvY2tzLmFwaV9yZXNwb25zZSBpbXBvcnQgQXBpUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLnJlc3QgaW1wb3J0IFJFU1RSZXNwb25zZVR5cGUKZnJvbSBmaXJlYmxvY2tzLnZhbGlkYXRpb25fdXRpbHMgaW1wb3J0IHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcKCgpjbGFzcyBBcGlVc2VyQXBpOgogICAgIiIiTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvcgogICAgUmVmOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gKCiAgICBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgYXBpX2NsaWVudD1Ob25lKSAtPiBOb25lOgogICAgICAgIGlmIGFwaV9jbGllbnQgaXMgTm9uZToKICAgICAgICAgICAgYXBpX2NsaWVudCA9IEFwaUNsaWVudC5nZXRfZGVmYXVsdCgpCiAgICAgICAgc2VsZi5hcGlfY2xpZW50ID0gYXBpX2NsaWVudAoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGNyZWF0ZV9hcGlfdXNlcigKICAgICAgICBzZWxmLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBjcmVhdGVfYXBpX3VzZXI6IE9wdGlvbmFsW0NyZWF0ZUFQSVVzZXJdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW05vbmVdXToKICAgICAgICAiIiJDcmVhdGUgQVBJIEtleQoKICAgICAgICBDcmVhdGUgYSBuZXcgQVBJIGtleSBpbiB5b3VyIHdvcmtzcGFjZS4gTGVhcm4gbW9yZSBhYm91dCBGaXJlYmxvY2tzIEFQSSBLZXlzIG1hbmFnZW1lbnQgaW4gdGhlIGZvbGxvd2luZyBbZ3VpZGVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL21hbmFnZS1hcGkta2V5cykuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gY3JlYXRlX2FwaV91c2VyOgogICAgICAgIDp0eXBlIGNyZWF0ZV9hcGlfdXNlcjogQ3JlYXRlQVBJVXNlcgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2NyZWF0ZV9hcGlfdXNlcl9zZXJpYWxpemUoCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIGNyZWF0ZV9hcGlfdXNlcj1jcmVhdGVfYXBpX3VzZXIsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6IE5vbmUsCiAgICAgICAgICAgICc0MDAnOiBOb25lLAogICAgICAgICAgICAnNDAxJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNDAzJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNVhYJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9jcmVhdGVfYXBpX3VzZXJfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIGNyZWF0ZV9hcGlfdXNlciwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgY3JlYXRlX2FwaV91c2VyIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBjcmVhdGVfYXBpX3VzZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL21hbmFnZW1lbnQvYXBpX3VzZXJzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9hcGlfdXNlcnMoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0dldEFQSVVzZXJzUmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgQVBJIEtleXMKCiAgICAgICAgTGlzdCBhbGwgQVBJIGtleXMgaW4geW91ciB3b3Jrc3BhY2UuIC0gUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGVuZHBvaW50IGlzIGF2YWlsYWJsZSBvbmx5IGZvciBBUEkga2V5cyB3aXRoIEFkbWluL05vbiBTaWduaW5nIEFkbWluIHBlcm1pc3Npb25zLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbi4KCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2FwaV91c2Vyc19zZXJpYWxpemUoCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJHZXRBUElVc2Vyc1Jlc3BvbnNlIiwKICAgICAgICAgICAgJzQwMSc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwMyc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzVYWCc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2FwaV91c2Vyc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbWFuYWdlbWVudC9hcGlfdXNlcnMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCg== \ No newline at end of file diff --git a/fireblocks/api/audit_logs_api.py b/fireblocks/api/audit_logs_api.py index fe8f98f5..805db54e 100644 --- a/fireblocks/api/audit_logs_api.py +++ b/fireblocks/api/audit_logs_api.py @@ -1,181 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr, field_validator -from typing import Optional -from typing_extensions import Annotated -from fireblocks.models.get_audit_logs_response import GetAuditLogsResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class AuditLogsApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def get_audit_logs( - self, - time_period: Annotated[Optional[StrictStr], Field(description="The last time period to fetch audit logs")] = None, - cursor: Annotated[Optional[StrictStr], Field(description="The next id to start fetch audit logs from")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GetAuditLogsResponse]]: - """Get audit logs - - Get Audit logs for the last Day/Week. - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions.
Endpoint Permission: Admin, Non-Signing Admin. - - :param time_period: The last time period to fetch audit logs - :type time_period: str - :param cursor: The next id to start fetch audit logs from - :type cursor: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_audit_logs_serialize( - time_period=time_period, - cursor=cursor, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GetAuditLogsResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_audit_logs_serialize( - self, - time_period, - cursor, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if time_period is not None: - - _query_params.append(('timePeriod', time_period)) - - if cursor is not None: - - _query_params.append(('cursor', cursor)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/management/audit_logs', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0ciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfYXVkaXRfbG9nc19yZXNwb25zZSBpbXBvcnQgR2V0QXVkaXRMb2dzUmVzcG9uc2UKCmZyb20gZmlyZWJsb2Nrcy5hcGlfY2xpZW50IGltcG9ydCBBcGlDbGllbnQsIFJlcXVlc3RTZXJpYWxpemVkCmZyb20gZmlyZWJsb2Nrcy5hcGlfcmVzcG9uc2UgaW1wb3J0IEFwaVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5yZXN0IGltcG9ydCBSRVNUUmVzcG9uc2VUeXBlCmZyb20gZmlyZWJsb2Nrcy52YWxpZGF0aW9uX3V0aWxzIGltcG9ydCB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nCgoKY2xhc3MgQXVkaXRMb2dzQXBpOgogICAgIiIiTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvcgogICAgUmVmOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gKCiAgICBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgYXBpX2NsaWVudD1Ob25lKSAtPiBOb25lOgogICAgICAgIGlmIGFwaV9jbGllbnQgaXMgTm9uZToKICAgICAgICAgICAgYXBpX2NsaWVudCA9IEFwaUNsaWVudC5nZXRfZGVmYXVsdCgpCiAgICAgICAgc2VsZi5hcGlfY2xpZW50ID0gYXBpX2NsaWVudAoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9hdWRpdF9sb2dzKAogICAgICAgIHNlbGYsCiAgICAgICAgdGltZV9wZXJpb2Q6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGxhc3QgdGltZSBwZXJpb2QgdG8gZmV0Y2ggYXVkaXQgbG9ncyIpXSA9IE5vbmUsCiAgICAgICAgY3Vyc29yOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBuZXh0IGlkIHRvIHN0YXJ0IGZldGNoIGF1ZGl0IGxvZ3MgZnJvbSIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtHZXRBdWRpdExvZ3NSZXNwb25zZV1dOgogICAgICAgICIiIkdldCBhdWRpdCBsb2dzCgogICAgICAgIEdldCBBdWRpdCBsb2dzIGZvciB0aGUgbGFzdCBEYXkvV2Vlay4gIC0gUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGVuZHBvaW50IGlzIGF2YWlsYWJsZSBvbmx5IGZvciBBUEkga2V5cyB3aXRoIEFkbWluL05vbiBTaWduaW5nIEFkbWluIHBlcm1pc3Npb25zLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbi4KCiAgICAgICAgOnBhcmFtIHRpbWVfcGVyaW9kOiBUaGUgbGFzdCB0aW1lIHBlcmlvZCB0byBmZXRjaCBhdWRpdCBsb2dzCiAgICAgICAgOnR5cGUgdGltZV9wZXJpb2Q6IHN0cgogICAgICAgIDpwYXJhbSBjdXJzb3I6IFRoZSBuZXh0IGlkIHRvIHN0YXJ0IGZldGNoIGF1ZGl0IGxvZ3MgZnJvbQogICAgICAgIDp0eXBlIGN1cnNvcjogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2F1ZGl0X2xvZ3Nfc2VyaWFsaXplKAogICAgICAgICAgICB0aW1lX3BlcmlvZD10aW1lX3BlcmlvZCwKICAgICAgICAgICAgY3Vyc29yPWN1cnNvciwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkdldEF1ZGl0TG9nc1Jlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2F1ZGl0X2xvZ3Nfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdGltZV9wZXJpb2QsCiAgICAgICAgY3Vyc29yLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiB0aW1lX3BlcmlvZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgndGltZVBlcmlvZCcsIHRpbWVfcGVyaW9kKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgY3Vyc29yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdjdXJzb3InLCBjdXJzb3IpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9tYW5hZ2VtZW50L2F1ZGl0X2xvZ3MnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCg== \ No newline at end of file diff --git a/fireblocks/api/blockchains_assets_api.py b/fireblocks/api/blockchains_assets_api.py index aff3f4ed..a5bc41da 100644 --- a/fireblocks/api/blockchains_assets_api.py +++ b/fireblocks/api/blockchains_assets_api.py @@ -1,1291 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictBool, StrictStr -from typing import List, Optional, Union -from typing_extensions import Annotated -from fireblocks.models.asset import Asset -from fireblocks.models.asset_class import AssetClass -from fireblocks.models.asset_price_response import AssetPriceResponse -from fireblocks.models.asset_response import AssetResponse -from fireblocks.models.asset_scope import AssetScope -from fireblocks.models.asset_type_response import AssetTypeResponse -from fireblocks.models.blockchain_response import BlockchainResponse -from fireblocks.models.list_assets_response import ListAssetsResponse -from fireblocks.models.list_blockchains_response import ListBlockchainsResponse -from fireblocks.models.register_new_asset_request import RegisterNewAssetRequest -from fireblocks.models.set_asset_price_request import SetAssetPriceRequest -from fireblocks.models.update_asset_user_metadata_request import UpdateAssetUserMetadataRequest - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class BlockchainsAssetsApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def get_asset( - self, - id: Annotated[StrictStr, Field(description="The ID or legacyId of the asset")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[Asset]]: - """Get an asset - - Returns an asset by ID or legacyID.
**Note**: - We will continue displaying and supporting the legacy ID (API ID). Since not all Fireblocks services fully support the new Assets UUID, please use only the legacy ID until further notice. - - :param id: The ID or legacyId of the asset (required) - :type id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_asset", param_name="id", param_value=id) - - _param = self._get_asset_serialize( - id=id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "Asset", - '404': "AssetNotFoundErrorResponse", - '500': "AssetInternalServerErrorResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_asset_serialize( - self, - id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if id is not None: - _path_params['id'] = id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/assets/{id}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_blockchain( - self, - id: Annotated[StrictStr, Field(description="The ID or legacyId of the blockchain")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[BlockchainResponse]]: - """Get a Blockchain by ID - - Returns a blockchain by ID or legacyID. - - :param id: The ID or legacyId of the blockchain (required) - :type id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_blockchain", param_name="id", param_value=id) - - _param = self._get_blockchain_serialize( - id=id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "BlockchainResponse", - '404': "BlockchainNotFoundErrorResponse", - '500': "AssetInternalServerErrorResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_blockchain_serialize( - self, - id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if id is not None: - _path_params['id'] = id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/blockchains/{id}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_supported_assets( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[AssetTypeResponse]]]: - """List assets (Legacy) - - **This legacy endpoint has not been deprecated but it should not be used in your operations. Instead, use the new [List assets](https://developers.fireblocks.com/reference/listassets) endpoint for better performance and to retrieve more detailed asset information.** Retrieves all assets supported by Fireblocks in your workspace. **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_supported_assets_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "List[AssetTypeResponse]", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_supported_assets_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/supported_assets', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def list_assets( - self, - blockchain_id: Annotated[Optional[StrictStr], Field(description="Blockchain id of the assets")] = None, - asset_class: Annotated[Optional[AssetClass], Field(description="Assets class")] = None, - symbol: Annotated[Optional[Annotated[str, Field(min_length=1, strict=True)]], Field(description="Assets onchain symbol")] = None, - scope: Annotated[Optional[AssetScope], Field(description="Scope of the assets")] = None, - deprecated: Annotated[Optional[StrictBool], Field(description="Are assets deprecated")] = None, - ids: Annotated[Optional[List[StrictStr]], Field(description="A list of asset IDs (max 100)")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Next page cursor to fetch")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=1000, strict=True, ge=100)], Annotated[int, Field(le=1000, strict=True, ge=100)]]], Field(description="Items per page")] = None, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ListAssetsResponse]]: - """List assets - - Retrieves a paginated list of all assets supported by Fireblocks in your workspace **Note:** We will continue to support and display the legacy ID (API ID). Since not all Fireblocks services fully support the new Assets UUID, please use only the legacy ID until further notice. - - :param blockchain_id: Blockchain id of the assets - :type blockchain_id: str - :param asset_class: Assets class - :type asset_class: AssetClass - :param symbol: Assets onchain symbol - :type symbol: str - :param scope: Scope of the assets - :type scope: AssetScope - :param deprecated: Are assets deprecated - :type deprecated: bool - :param ids: A list of asset IDs (max 100) - :type ids: List[str] - :param page_cursor: Next page cursor to fetch - :type page_cursor: str - :param page_size: Items per page - :type page_size: float - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._list_assets_serialize( - blockchain_id=blockchain_id, - asset_class=asset_class, - symbol=symbol, - scope=scope, - deprecated=deprecated, - ids=ids, - page_cursor=page_cursor, - page_size=page_size, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ListAssetsResponse", - '500': "AssetInternalServerErrorResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _list_assets_serialize( - self, - blockchain_id, - asset_class, - symbol, - scope, - deprecated, - ids, - page_cursor, - page_size, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - 'ids': 'multi', - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if blockchain_id is not None: - - _query_params.append(('blockchainId', blockchain_id)) - - if asset_class is not None: - - _query_params.append(('assetClass', asset_class.value)) - - if symbol is not None: - - _query_params.append(('symbol', symbol)) - - if scope is not None: - - _query_params.append(('scope', scope.value)) - - if deprecated is not None: - - _query_params.append(('deprecated', deprecated)) - - if ids is not None: - - _query_params.append(('ids', ids)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/assets', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def list_blockchains( - self, - protocol: Annotated[Optional[StrictStr], Field(description="Blockchain protocol")] = None, - deprecated: Annotated[Optional[StrictBool], Field(description="Is blockchain deprecated")] = None, - test: Annotated[Optional[StrictBool], Field(description="Is test blockchain")] = None, - ids: Annotated[Optional[List[StrictStr]], Field(description="A list of blockchain IDs (max 100)")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor to fetch")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=500, strict=True, ge=1)], Annotated[int, Field(le=500, strict=True, ge=1)]]], Field(description="Items per page (max 500)")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ListBlockchainsResponse]]: - """List blockchains - - Returns all blockchains supported by Fireblocks.
- - :param protocol: Blockchain protocol - :type protocol: str - :param deprecated: Is blockchain deprecated - :type deprecated: bool - :param test: Is test blockchain - :type test: bool - :param ids: A list of blockchain IDs (max 100) - :type ids: List[str] - :param page_cursor: Page cursor to fetch - :type page_cursor: str - :param page_size: Items per page (max 500) - :type page_size: float - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._list_blockchains_serialize( - protocol=protocol, - deprecated=deprecated, - test=test, - ids=ids, - page_cursor=page_cursor, - page_size=page_size, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ListBlockchainsResponse", - '500': "AssetInternalServerErrorResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _list_blockchains_serialize( - self, - protocol, - deprecated, - test, - ids, - page_cursor, - page_size, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - 'ids': 'multi', - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if protocol is not None: - - _query_params.append(('protocol', protocol)) - - if deprecated is not None: - - _query_params.append(('deprecated', deprecated)) - - if test is not None: - - _query_params.append(('test', test)) - - if ids is not None: - - _query_params.append(('ids', ids)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/blockchains', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def register_new_asset( - self, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - register_new_asset_request: Optional[RegisterNewAssetRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[AssetResponse]]: - """Register an asset - - Register a new asset to a workspace and return the newly created asset's details. Currently supported chains are: - EVM based chains - Stellar - Algorand - TRON - NEAR - Solana - Sui - TON - - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param register_new_asset_request: - :type register_new_asset_request: RegisterNewAssetRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._register_new_asset_serialize( - idempotency_key=idempotency_key, - register_new_asset_request=register_new_asset_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "AssetResponse", - '400': "AssetBadRequestErrorResponse", - '403': "AssetForbiddenErrorResponse", - '404': "TokenInfoNotFoundErrorResponse", - '409': "AssetConflictErrorResponse", - '500': "AssetInternalServerErrorResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _register_new_asset_serialize( - self, - idempotency_key, - register_new_asset_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if register_new_asset_request is not None: - _body_params = register_new_asset_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/assets', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_asset_price( - self, - id: Annotated[StrictStr, Field(description="The ID of the asset")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - set_asset_price_request: Optional[SetAssetPriceRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[AssetPriceResponse]]: - """Set asset price - - Set asset price for the given asset id. Returns the asset price response. - - :param id: The ID of the asset (required) - :type id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param set_asset_price_request: - :type set_asset_price_request: SetAssetPriceRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="set_asset_price", param_name="id", param_value=id) - - _param = self._set_asset_price_serialize( - id=id, - idempotency_key=idempotency_key, - set_asset_price_request=set_asset_price_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "AssetPriceResponse", - '403': "AssetPriceForbiddenErrorResponse", - '404': "AssetPriceNotFoundErrorResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_asset_price_serialize( - self, - id, - idempotency_key, - set_asset_price_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if id is not None: - _path_params['id'] = id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if set_asset_price_request is not None: - _body_params = set_asset_price_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/assets/prices/{id}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_asset_user_metadata( - self, - id: Annotated[StrictStr, Field(description="The ID or legacyId of the asset")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - update_asset_user_metadata_request: Optional[UpdateAssetUserMetadataRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[Asset]]: - """Update the user’s metadata for an asset - - Update the user’s metadata for an asset. Endpoint Permission: Owner, Admin, Non-Signing Admin, NCW Admin, Signer, Editor. - - :param id: The ID or legacyId of the asset (required) - :type id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param update_asset_user_metadata_request: - :type update_asset_user_metadata_request: UpdateAssetUserMetadataRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="update_asset_user_metadata", param_name="id", param_value=id) - - _param = self._update_asset_user_metadata_serialize( - id=id, - idempotency_key=idempotency_key, - update_asset_user_metadata_request=update_asset_user_metadata_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "Asset", - '404': "AssetNotFoundErrorResponse", - '500': "AssetInternalServerErrorResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_asset_user_metadata_serialize( - self, - id, - idempotency_key, - update_asset_user_metadata_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if id is not None: - _path_params['id'] = id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if update_asset_user_metadata_request is not None: - _body_params = update_asset_user_metadata_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PATCH', - resource_path='/assets/{id}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdEJvb2wsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgTGlzdCwgT3B0aW9uYWwsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0IGltcG9ydCBBc3NldApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2NsYXNzIGltcG9ydCBBc3NldENsYXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfcHJpY2VfcmVzcG9uc2UgaW1wb3J0IEFzc2V0UHJpY2VSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X3Jlc3BvbnNlIGltcG9ydCBBc3NldFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfc2NvcGUgaW1wb3J0IEFzc2V0U2NvcGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF90eXBlX3Jlc3BvbnNlIGltcG9ydCBBc3NldFR5cGVSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fcmVzcG9uc2UgaW1wb3J0IEJsb2NrY2hhaW5SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxpc3RfYXNzZXRzX3Jlc3BvbnNlIGltcG9ydCBMaXN0QXNzZXRzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5saXN0X2Jsb2NrY2hhaW5zX3Jlc3BvbnNlIGltcG9ydCBMaXN0QmxvY2tjaGFpbnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlZ2lzdGVyX25ld19hc3NldF9yZXF1ZXN0IGltcG9ydCBSZWdpc3Rlck5ld0Fzc2V0UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9hc3NldF9wcmljZV9yZXF1ZXN0IGltcG9ydCBTZXRBc3NldFByaWNlUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV9hc3NldF91c2VyX21ldGFkYXRhX3JlcXVlc3QgaW1wb3J0IFVwZGF0ZUFzc2V0VXNlck1ldGFkYXRhUmVxdWVzdAoKZnJvbSBmaXJlYmxvY2tzLmFwaV9jbGllbnQgaW1wb3J0IEFwaUNsaWVudCwgUmVxdWVzdFNlcmlhbGl6ZWQKZnJvbSBmaXJlYmxvY2tzLmFwaV9yZXNwb25zZSBpbXBvcnQgQXBpUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLnJlc3QgaW1wb3J0IFJFU1RSZXNwb25zZVR5cGUKZnJvbSBmaXJlYmxvY2tzLnZhbGlkYXRpb25fdXRpbHMgaW1wb3J0IHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcKCgpjbGFzcyBCbG9ja2NoYWluc0Fzc2V0c0FwaToKICAgICIiIk5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IKICAgIFJlZjogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgogICAgIiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwaV9jbGllbnQ9Tm9uZSkgLT4gTm9uZToKICAgICAgICBpZiBhcGlfY2xpZW50IGlzIE5vbmU6CiAgICAgICAgICAgIGFwaV9jbGllbnQgPSBBcGlDbGllbnQuZ2V0X2RlZmF1bHQoKQogICAgICAgIHNlbGYuYXBpX2NsaWVudCA9IGFwaV9jbGllbnQKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfYXNzZXQoCiAgICAgICAgc2VsZiwKICAgICAgICBpZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvciBsZWdhY3lJZCBvZiB0aGUgYXNzZXQiKV0sCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbQXNzZXRdXToKICAgICAgICAiIiJHZXQgYW4gYXNzZXQKCiAgICAgICAgUmV0dXJucyBhbiBhc3NldCBieSBJRCBvciBsZWdhY3lJRC48L2JyPiAgKipOb3RlKio6ICAgIC0gV2Ugd2lsbCBjb250aW51ZSBkaXNwbGF5aW5nIGFuZCBzdXBwb3J0aW5nIHRoZSBsZWdhY3kgSUQgKEFQSSBJRCkuIFNpbmNlIG5vdCBhbGwgRmlyZWJsb2NrcyBzZXJ2aWNlcyBmdWxseSBzdXBwb3J0IHRoZSBuZXcgQXNzZXRzIFVVSUQsIHBsZWFzZSB1c2Ugb25seSB0aGUgbGVnYWN5IElEIHVudGlsIGZ1cnRoZXIgbm90aWNlLiAKCiAgICAgICAgOnBhcmFtIGlkOiBUaGUgSUQgb3IgbGVnYWN5SWQgb2YgdGhlIGFzc2V0IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBpZDogc3RyCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9hc3NldCIsIHBhcmFtX25hbWU9ImlkIiwgcGFyYW1fdmFsdWU9aWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9hc3NldF9zZXJpYWxpemUoCiAgICAgICAgICAgIGlkPWlkLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiQXNzZXQiLAogICAgICAgICAgICAnNDA0JzogIkFzc2V0Tm90Rm91bmRFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzUwMCc6ICJBc3NldEludGVybmFsU2VydmVyRXJyb3JSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9hc3NldF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBpZCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGlkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2lkJ10gPSBpZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvYXNzZXRzL3tpZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X2Jsb2NrY2hhaW4oCiAgICAgICAgc2VsZiwKICAgICAgICBpZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvciBsZWdhY3lJZCBvZiB0aGUgYmxvY2tjaGFpbiIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0Jsb2NrY2hhaW5SZXNwb25zZV1dOgogICAgICAgICIiIkdldCBhIEJsb2NrY2hhaW4gYnkgSUQKCiAgICAgICAgUmV0dXJucyBhIGJsb2NrY2hhaW4gYnkgSUQgb3IgbGVnYWN5SUQuIAoKICAgICAgICA6cGFyYW0gaWQ6IFRoZSBJRCBvciBsZWdhY3lJZCBvZiB0aGUgYmxvY2tjaGFpbiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfYmxvY2tjaGFpbiIsIHBhcmFtX25hbWU9ImlkIiwgcGFyYW1fdmFsdWU9aWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9ibG9ja2NoYWluX3NlcmlhbGl6ZSgKICAgICAgICAgICAgaWQ9aWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJCbG9ja2NoYWluUmVzcG9uc2UiLAogICAgICAgICAgICAnNDA0JzogIkJsb2NrY2hhaW5Ob3RGb3VuZEVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNTAwJzogIkFzc2V0SW50ZXJuYWxTZXJ2ZXJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2Jsb2NrY2hhaW5fc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGlkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2lkJ10gPSBpZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2Jsb2NrY2hhaW5zL3tpZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X3N1cHBvcnRlZF9hc3NldHMoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0xpc3RbQXNzZXRUeXBlUmVzcG9uc2VdXV06CiAgICAgICAgIiIiTGlzdCBhc3NldHMgKExlZ2FjeSkKCiAgICAgICAgKipUaGlzIGxlZ2FjeSBlbmRwb2ludCBoYXMgbm90IGJlZW4gZGVwcmVjYXRlZCBidXQgaXQgc2hvdWxkIG5vdCBiZSB1c2VkIGluIHlvdXIgb3BlcmF0aW9ucy4gSW5zdGVhZCwgdXNlIHRoZSBuZXcgW0xpc3QgYXNzZXRzXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2xpc3Rhc3NldHMpIGVuZHBvaW50IGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UgYW5kIHRvIHJldHJpZXZlIG1vcmUgZGV0YWlsZWQgYXNzZXQgaW5mb3JtYXRpb24uKiogIFJldHJpZXZlcyBhbGwgYXNzZXRzIHN1cHBvcnRlZCBieSBGaXJlYmxvY2tzIGluIHlvdXIgd29ya3NwYWNlLiAgKipFbmRwb2ludCBQZXJtaXNzaW9uczoqKiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4gCgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9zdXBwb3J0ZWRfYXNzZXRzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkxpc3RbQXNzZXRUeXBlUmVzcG9uc2VdIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3N1cHBvcnRlZF9hc3NldHNfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3N1cHBvcnRlZF9hc3NldHMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgbGlzdF9hc3NldHMoCiAgICAgICAgc2VsZiwKICAgICAgICBibG9ja2NoYWluX2lkOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkJsb2NrY2hhaW4gaWQgb2YgdGhlIGFzc2V0cyIpXSA9IE5vbmUsCiAgICAgICAgYXNzZXRfY2xhc3M6IEFubm90YXRlZFtPcHRpb25hbFtBc3NldENsYXNzXSwgRmllbGQoZGVzY3JpcHRpb249IkFzc2V0cyBjbGFzcyIpXSA9IE5vbmUsCiAgICAgICAgc3ltYm9sOiBBbm5vdGF0ZWRbT3B0aW9uYWxbQW5ub3RhdGVkW3N0ciwgRmllbGQobWluX2xlbmd0aD0xLCBzdHJpY3Q9VHJ1ZSldXSwgRmllbGQoZGVzY3JpcHRpb249IkFzc2V0cyBvbmNoYWluIHN5bWJvbCIpXSA9IE5vbmUsCiAgICAgICAgc2NvcGU6IEFubm90YXRlZFtPcHRpb25hbFtBc3NldFNjb3BlXSwgRmllbGQoZGVzY3JpcHRpb249IlNjb3BlIG9mIHRoZSBhc3NldHMiKV0gPSBOb25lLAogICAgICAgIGRlcHJlY2F0ZWQ6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RCb29sXSwgRmllbGQoZGVzY3JpcHRpb249IkFyZSBhc3NldHMgZGVwcmVjYXRlZCIpXSA9IE5vbmUsCiAgICAgICAgaWRzOiBBbm5vdGF0ZWRbT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSwgRmllbGQoZGVzY3JpcHRpb249IkEgbGlzdCBvZiBhc3NldCBJRHMgKG1heCAxMDApIildID0gTm9uZSwKICAgICAgICBwYWdlX2N1cnNvcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJOZXh0IHBhZ2UgY3Vyc29yIHRvIGZldGNoIildID0gTm9uZSwKICAgICAgICBwYWdlX3NpemU6IEFubm90YXRlZFtPcHRpb25hbFtVbmlvbltBbm5vdGF0ZWRbZmxvYXQsIEZpZWxkKGxlPTEwMDAsIHN0cmljdD1UcnVlLCBnZT0xMDApXSwgQW5ub3RhdGVkW2ludCwgRmllbGQobGU9MTAwMCwgc3RyaWN0PVRydWUsIGdlPTEwMCldXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJJdGVtcyBwZXIgcGFnZSIpXSA9IE5vbmUsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTGlzdEFzc2V0c1Jlc3BvbnNlXV06CiAgICAgICAgIiIiTGlzdCBhc3NldHMKCiAgICAgICAgUmV0cmlldmVzIGEgcGFnaW5hdGVkIGxpc3Qgb2YgYWxsIGFzc2V0cyBzdXBwb3J0ZWQgYnkgRmlyZWJsb2NrcyBpbiB5b3VyIHdvcmtzcGFjZSAgKipOb3RlOioqIFdlIHdpbGwgY29udGludWUgdG8gc3VwcG9ydCBhbmQgZGlzcGxheSB0aGUgbGVnYWN5IElEIChBUEkgSUQpLiBTaW5jZSBub3QgYWxsIEZpcmVibG9ja3Mgc2VydmljZXMgZnVsbHkgc3VwcG9ydCB0aGUgbmV3IEFzc2V0cyBVVUlELCBwbGVhc2UgdXNlIG9ubHkgdGhlIGxlZ2FjeSBJRCB1bnRpbCBmdXJ0aGVyIG5vdGljZS4gCgogICAgICAgIDpwYXJhbSBibG9ja2NoYWluX2lkOiBCbG9ja2NoYWluIGlkIG9mIHRoZSBhc3NldHMKICAgICAgICA6dHlwZSBibG9ja2NoYWluX2lkOiBzdHIKICAgICAgICA6cGFyYW0gYXNzZXRfY2xhc3M6IEFzc2V0cyBjbGFzcwogICAgICAgIDp0eXBlIGFzc2V0X2NsYXNzOiBBc3NldENsYXNzCiAgICAgICAgOnBhcmFtIHN5bWJvbDogQXNzZXRzIG9uY2hhaW4gc3ltYm9sCiAgICAgICAgOnR5cGUgc3ltYm9sOiBzdHIKICAgICAgICA6cGFyYW0gc2NvcGU6IFNjb3BlIG9mIHRoZSBhc3NldHMKICAgICAgICA6dHlwZSBzY29wZTogQXNzZXRTY29wZQogICAgICAgIDpwYXJhbSBkZXByZWNhdGVkOiBBcmUgYXNzZXRzIGRlcHJlY2F0ZWQKICAgICAgICA6dHlwZSBkZXByZWNhdGVkOiBib29sCiAgICAgICAgOnBhcmFtIGlkczogQSBsaXN0IG9mIGFzc2V0IElEcyAobWF4IDEwMCkKICAgICAgICA6dHlwZSBpZHM6IExpc3Rbc3RyXQogICAgICAgIDpwYXJhbSBwYWdlX2N1cnNvcjogTmV4dCBwYWdlIGN1cnNvciB0byBmZXRjaAogICAgICAgIDp0eXBlIHBhZ2VfY3Vyc29yOiBzdHIKICAgICAgICA6cGFyYW0gcGFnZV9zaXplOiBJdGVtcyBwZXIgcGFnZQogICAgICAgIDp0eXBlIHBhZ2Vfc2l6ZTogZmxvYXQKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9saXN0X2Fzc2V0c19zZXJpYWxpemUoCiAgICAgICAgICAgIGJsb2NrY2hhaW5faWQ9YmxvY2tjaGFpbl9pZCwKICAgICAgICAgICAgYXNzZXRfY2xhc3M9YXNzZXRfY2xhc3MsCiAgICAgICAgICAgIHN5bWJvbD1zeW1ib2wsCiAgICAgICAgICAgIHNjb3BlPXNjb3BlLAogICAgICAgICAgICBkZXByZWNhdGVkPWRlcHJlY2F0ZWQsCiAgICAgICAgICAgIGlkcz1pZHMsCiAgICAgICAgICAgIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLAogICAgICAgICAgICBwYWdlX3NpemU9cGFnZV9zaXplLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiTGlzdEFzc2V0c1Jlc3BvbnNlIiwKICAgICAgICAgICAgJzUwMCc6ICJBc3NldEludGVybmFsU2VydmVyRXJyb3JSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2xpc3RfYXNzZXRzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGJsb2NrY2hhaW5faWQsCiAgICAgICAgYXNzZXRfY2xhc3MsCiAgICAgICAgc3ltYm9sLAogICAgICAgIHNjb3BlLAogICAgICAgIGRlcHJlY2F0ZWQsCiAgICAgICAgaWRzLAogICAgICAgIHBhZ2VfY3Vyc29yLAogICAgICAgIHBhZ2Vfc2l6ZSwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgICAgICAnaWRzJzogJ211bHRpJywKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiBibG9ja2NoYWluX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdibG9ja2NoYWluSWQnLCBibG9ja2NoYWluX2lkKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgYXNzZXRfY2xhc3MgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2Fzc2V0Q2xhc3MnLCBhc3NldF9jbGFzcy52YWx1ZSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHN5bWJvbCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnc3ltYm9sJywgc3ltYm9sKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgc2NvcGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3Njb3BlJywgc2NvcGUudmFsdWUpKQogICAgICAgICAgICAKICAgICAgICBpZiBkZXByZWNhdGVkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdkZXByZWNhdGVkJywgZGVwcmVjYXRlZCkpCiAgICAgICAgICAgIAogICAgICAgIGlmIGlkcyBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnaWRzJywgaWRzKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgcGFnZV9jdXJzb3IgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VDdXJzb3InLCBwYWdlX2N1cnNvcikpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2Vfc2l6ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZVNpemUnLCBwYWdlX3NpemUpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2Fzc2V0cycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBsaXN0X2Jsb2NrY2hhaW5zKAogICAgICAgIHNlbGYsCiAgICAgICAgcHJvdG9jb2w6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQmxvY2tjaGFpbiBwcm90b2NvbCIpXSA9IE5vbmUsCiAgICAgICAgZGVwcmVjYXRlZDogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdEJvb2xdLCBGaWVsZChkZXNjcmlwdGlvbj0iSXMgYmxvY2tjaGFpbiBkZXByZWNhdGVkIildID0gTm9uZSwKICAgICAgICB0ZXN0OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0Qm9vbF0sIEZpZWxkKGRlc2NyaXB0aW9uPSJJcyB0ZXN0IGJsb2NrY2hhaW4iKV0gPSBOb25lLAogICAgICAgIGlkczogQW5ub3RhdGVkW09wdGlvbmFsW0xpc3RbU3RyaWN0U3RyXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIGxpc3Qgb2YgYmxvY2tjaGFpbiBJRHMgKG1heCAxMDApIildID0gTm9uZSwKICAgICAgICBwYWdlX2N1cnNvcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJQYWdlIGN1cnNvciB0byBmZXRjaCIpXSA9IE5vbmUsCiAgICAgICAgcGFnZV9zaXplOiBBbm5vdGF0ZWRbT3B0aW9uYWxbVW5pb25bQW5ub3RhdGVkW2Zsb2F0LCBGaWVsZChsZT01MDAsIHN0cmljdD1UcnVlLCBnZT0xKV0sIEFubm90YXRlZFtpbnQsIEZpZWxkKGxlPTUwMCwgc3RyaWN0PVRydWUsIGdlPTEpXV1dLCBGaWVsZChkZXNjcmlwdGlvbj0iSXRlbXMgcGVyIHBhZ2UgKG1heCA1MDApIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0xpc3RCbG9ja2NoYWluc1Jlc3BvbnNlXV06CiAgICAgICAgIiIiTGlzdCBibG9ja2NoYWlucwoKICAgICAgICBSZXR1cm5zIGFsbCBibG9ja2NoYWlucyBzdXBwb3J0ZWQgYnkgRmlyZWJsb2Nrcy48L2JyPiAKCiAgICAgICAgOnBhcmFtIHByb3RvY29sOiBCbG9ja2NoYWluIHByb3RvY29sCiAgICAgICAgOnR5cGUgcHJvdG9jb2w6IHN0cgogICAgICAgIDpwYXJhbSBkZXByZWNhdGVkOiBJcyBibG9ja2NoYWluIGRlcHJlY2F0ZWQKICAgICAgICA6dHlwZSBkZXByZWNhdGVkOiBib29sCiAgICAgICAgOnBhcmFtIHRlc3Q6IElzIHRlc3QgYmxvY2tjaGFpbgogICAgICAgIDp0eXBlIHRlc3Q6IGJvb2wKICAgICAgICA6cGFyYW0gaWRzOiBBIGxpc3Qgb2YgYmxvY2tjaGFpbiBJRHMgKG1heCAxMDApCiAgICAgICAgOnR5cGUgaWRzOiBMaXN0W3N0cl0KICAgICAgICA6cGFyYW0gcGFnZV9jdXJzb3I6IFBhZ2UgY3Vyc29yIHRvIGZldGNoCiAgICAgICAgOnR5cGUgcGFnZV9jdXJzb3I6IHN0cgogICAgICAgIDpwYXJhbSBwYWdlX3NpemU6IEl0ZW1zIHBlciBwYWdlIChtYXggNTAwKQogICAgICAgIDp0eXBlIHBhZ2Vfc2l6ZTogZmxvYXQKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9saXN0X2Jsb2NrY2hhaW5zX3NlcmlhbGl6ZSgKICAgICAgICAgICAgcHJvdG9jb2w9cHJvdG9jb2wsCiAgICAgICAgICAgIGRlcHJlY2F0ZWQ9ZGVwcmVjYXRlZCwKICAgICAgICAgICAgdGVzdD10ZXN0LAogICAgICAgICAgICBpZHM9aWRzLAogICAgICAgICAgICBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwKICAgICAgICAgICAgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkxpc3RCbG9ja2NoYWluc1Jlc3BvbnNlIiwKICAgICAgICAgICAgJzUwMCc6ICJBc3NldEludGVybmFsU2VydmVyRXJyb3JSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2xpc3RfYmxvY2tjaGFpbnNfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgcHJvdG9jb2wsCiAgICAgICAgZGVwcmVjYXRlZCwKICAgICAgICB0ZXN0LAogICAgICAgIGlkcywKICAgICAgICBwYWdlX2N1cnNvciwKICAgICAgICBwYWdlX3NpemUsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgICAgICAnaWRzJzogJ211bHRpJywKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiBwcm90b2NvbCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncHJvdG9jb2wnLCBwcm90b2NvbCkpCiAgICAgICAgICAgIAogICAgICAgIGlmIGRlcHJlY2F0ZWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2RlcHJlY2F0ZWQnLCBkZXByZWNhdGVkKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgdGVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgndGVzdCcsIHRlc3QpKQogICAgICAgICAgICAKICAgICAgICBpZiBpZHMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2lkcycsIGlkcykpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2VfY3Vyc29yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlQ3Vyc29yJywgcGFnZV9jdXJzb3IpKQogICAgICAgICAgICAKICAgICAgICBpZiBwYWdlX3NpemUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VTaXplJywgcGFnZV9zaXplKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvYmxvY2tjaGFpbnMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgcmVnaXN0ZXJfbmV3X2Fzc2V0KAogICAgICAgIHNlbGYsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIHJlZ2lzdGVyX25ld19hc3NldF9yZXF1ZXN0OiBPcHRpb25hbFtSZWdpc3Rlck5ld0Fzc2V0UmVxdWVzdF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbQXNzZXRSZXNwb25zZV1dOgogICAgICAgICIiIlJlZ2lzdGVyIGFuIGFzc2V0CgogICAgICAgIFJlZ2lzdGVyIGEgbmV3IGFzc2V0IHRvIGEgd29ya3NwYWNlIGFuZCByZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQgYXNzZXQncyBkZXRhaWxzLiBDdXJyZW50bHkgc3VwcG9ydGVkIGNoYWlucyBhcmU6IC0gRVZNIGJhc2VkIGNoYWlucyAtIFN0ZWxsYXIgLSBBbGdvcmFuZCAtIFRST04gLSBORUFSIC0gU29sYW5hIC0gU3VpIC0gVE9OIAoKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gcmVnaXN0ZXJfbmV3X2Fzc2V0X3JlcXVlc3Q6CiAgICAgICAgOnR5cGUgcmVnaXN0ZXJfbmV3X2Fzc2V0X3JlcXVlc3Q6IFJlZ2lzdGVyTmV3QXNzZXRSZXF1ZXN0CiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fcmVnaXN0ZXJfbmV3X2Fzc2V0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgcmVnaXN0ZXJfbmV3X2Fzc2V0X3JlcXVlc3Q9cmVnaXN0ZXJfbmV3X2Fzc2V0X3JlcXVlc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJBc3NldFJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwMCc6ICJBc3NldEJhZFJlcXVlc3RFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwMyc6ICJBc3NldEZvcmJpZGRlbkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNDA0JzogIlRva2VuSW5mb05vdEZvdW5kRXJyb3JSZXNwb25zZSIsCiAgICAgICAgICAgICc0MDknOiAiQXNzZXRDb25mbGljdEVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNTAwJzogIkFzc2V0SW50ZXJuYWxTZXJ2ZXJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfcmVnaXN0ZXJfbmV3X2Fzc2V0X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICByZWdpc3Rlcl9uZXdfYXNzZXRfcmVxdWVzdCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgcmVnaXN0ZXJfbmV3X2Fzc2V0X3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHJlZ2lzdGVyX25ld19hc3NldF9yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9hc3NldHMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgc2V0X2Fzc2V0X3ByaWNlKAogICAgICAgIHNlbGYsCiAgICAgICAgaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFzc2V0IildLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBzZXRfYXNzZXRfcHJpY2VfcmVxdWVzdDogT3B0aW9uYWxbU2V0QXNzZXRQcmljZVJlcXVlc3RdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0Fzc2V0UHJpY2VSZXNwb25zZV1dOgogICAgICAgICIiIlNldCBhc3NldCBwcmljZQoKICAgICAgICBTZXQgYXNzZXQgcHJpY2UgZm9yIHRoZSBnaXZlbiBhc3NldCBpZC4gUmV0dXJucyB0aGUgYXNzZXQgcHJpY2UgcmVzcG9uc2UuIAoKICAgICAgICA6cGFyYW0gaWQ6IFRoZSBJRCBvZiB0aGUgYXNzZXQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGlkOiBzdHIKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gc2V0X2Fzc2V0X3ByaWNlX3JlcXVlc3Q6CiAgICAgICAgOnR5cGUgc2V0X2Fzc2V0X3ByaWNlX3JlcXVlc3Q6IFNldEFzc2V0UHJpY2VSZXF1ZXN0CiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InNldF9hc3NldF9wcmljZSIsIHBhcmFtX25hbWU9ImlkIiwgcGFyYW1fdmFsdWU9aWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3NldF9hc3NldF9wcmljZV9zZXJpYWxpemUoCiAgICAgICAgICAgIGlkPWlkLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBzZXRfYXNzZXRfcHJpY2VfcmVxdWVzdD1zZXRfYXNzZXRfcHJpY2VfcmVxdWVzdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkFzc2V0UHJpY2VSZXNwb25zZSIsCiAgICAgICAgICAgICc0MDMnOiAiQXNzZXRQcmljZUZvcmJpZGRlbkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNDA0JzogIkFzc2V0UHJpY2VOb3RGb3VuZEVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9zZXRfYXNzZXRfcHJpY2Vfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgaWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIHNldF9hc3NldF9wcmljZV9yZXF1ZXN0LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydpZCddID0gaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBzZXRfYXNzZXRfcHJpY2VfcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gc2V0X2Fzc2V0X3ByaWNlX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2Fzc2V0cy9wcmljZXMve2lkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiB1cGRhdGVfYXNzZXRfdXNlcl9tZXRhZGF0YSgKICAgICAgICBzZWxmLAogICAgICAgIGlkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9yIGxlZ2FjeUlkIG9mIHRoZSBhc3NldCIpXSwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgdXBkYXRlX2Fzc2V0X3VzZXJfbWV0YWRhdGFfcmVxdWVzdDogT3B0aW9uYWxbVXBkYXRlQXNzZXRVc2VyTWV0YWRhdGFSZXF1ZXN0XSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtBc3NldF1dOgogICAgICAgICIiIlVwZGF0ZSB0aGUgdXNlcuKAmXMgbWV0YWRhdGEgZm9yIGFuIGFzc2V0CgogICAgICAgIFVwZGF0ZSB0aGUgdXNlcuKAmXMgbWV0YWRhdGEgZm9yIGFuIGFzc2V0LiAgRW5kcG9pbnQgUGVybWlzc2lvbjogT3duZXIsIEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgTkNXIEFkbWluLCBTaWduZXIsIEVkaXRvci4KCiAgICAgICAgOnBhcmFtIGlkOiBUaGUgSUQgb3IgbGVnYWN5SWQgb2YgdGhlIGFzc2V0IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBpZDogc3RyCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIHVwZGF0ZV9hc3NldF91c2VyX21ldGFkYXRhX3JlcXVlc3Q6CiAgICAgICAgOnR5cGUgdXBkYXRlX2Fzc2V0X3VzZXJfbWV0YWRhdGFfcmVxdWVzdDogVXBkYXRlQXNzZXRVc2VyTWV0YWRhdGFSZXF1ZXN0CiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InVwZGF0ZV9hc3NldF91c2VyX21ldGFkYXRhIiwgcGFyYW1fbmFtZT0iaWQiLCBwYXJhbV92YWx1ZT1pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fdXBkYXRlX2Fzc2V0X3VzZXJfbWV0YWRhdGFfc2VyaWFsaXplKAogICAgICAgICAgICBpZD1pZCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgdXBkYXRlX2Fzc2V0X3VzZXJfbWV0YWRhdGFfcmVxdWVzdD11cGRhdGVfYXNzZXRfdXNlcl9tZXRhZGF0YV9yZXF1ZXN0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiQXNzZXQiLAogICAgICAgICAgICAnNDA0JzogIkFzc2V0Tm90Rm91bmRFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzUwMCc6ICJBc3NldEludGVybmFsU2VydmVyRXJyb3JSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3VwZGF0ZV9hc3NldF91c2VyX21ldGFkYXRhX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGlkLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICB1cGRhdGVfYXNzZXRfdXNlcl9tZXRhZGF0YV9yZXF1ZXN0LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydpZCddID0gaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiB1cGRhdGVfYXNzZXRfdXNlcl9tZXRhZGF0YV9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSB1cGRhdGVfYXNzZXRfdXNlcl9tZXRhZGF0YV9yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUEFUQ0gnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvYXNzZXRzL3tpZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCg== \ No newline at end of file diff --git a/fireblocks/api/compliance_api.py b/fireblocks/api/compliance_api.py index 942e2c17..52aaac4b 100644 --- a/fireblocks/api/compliance_api.py +++ b/fireblocks/api/compliance_api.py @@ -1,1490 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing import Optional -from typing_extensions import Annotated -from fireblocks.models.address_registry_legal_entity import AddressRegistryLegalEntity -from fireblocks.models.aml_verdict_manual_request import AmlVerdictManualRequest -from fireblocks.models.aml_verdict_manual_response import AmlVerdictManualResponse -from fireblocks.models.compliance_result_full_payload import ComplianceResultFullPayload -from fireblocks.models.create_transaction_response import CreateTransactionResponse -from fireblocks.models.screening_configurations_request import ScreeningConfigurationsRequest -from fireblocks.models.screening_policy_response import ScreeningPolicyResponse -from fireblocks.models.screening_provider_rules_configuration_response import ScreeningProviderRulesConfigurationResponse -from fireblocks.models.screening_update_configurations import ScreeningUpdateConfigurations - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class ComplianceApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def get_aml_post_screening_policy( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ScreeningPolicyResponse]]: - """AML - View Post-Screening Policy - - Get the post-screening policy for AML. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_aml_post_screening_policy_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ScreeningPolicyResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_aml_post_screening_policy_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/aml/post_screening_policy', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_aml_screening_policy( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ScreeningProviderRulesConfigurationResponse]]: - """AML - View Screening Policy - - Get the screening policy for AML. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_aml_screening_policy_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ScreeningProviderRulesConfigurationResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_aml_screening_policy_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/aml/screening_policy', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_legal_entity_by_address( - self, - address: Annotated[StrictStr, Field(description="Blockchain address to look up")], - asset: Annotated[Optional[StrictStr], Field(description="Asset ID (e.g. ETH, BTC). Optional.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[AddressRegistryLegalEntity]]: - """Look up legal entity by address and asset - - Returns the legal entity (company name, jurisdiction, companyId) for the given blockchain address and optional asset. Both the requester and the owner of the address must be opted in to the address registry. - - :param address: Blockchain address to look up (required) - :type address: str - :param asset: Asset ID (e.g. ETH, BTC). Optional. - :type asset: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_legal_entity_by_address", param_name="address", param_value=address) - - _param = self._get_legal_entity_by_address_serialize( - address=address, - asset=asset, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "AddressRegistryLegalEntity", - '400': "AddressRegistryError", - '403': "AddressRegistryError", - '404': "AddressRegistryError", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_legal_entity_by_address_serialize( - self, - address, - asset, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if address is not None: - - _query_params.append(('address', address)) - - if asset is not None: - - _query_params.append(('asset', asset)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/address_registry/legal_entity', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_post_screening_policy( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ScreeningPolicyResponse]]: - """Travel Rule - View Post-Screening Policy - - Get the post-screening policy for Travel Rule. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_post_screening_policy_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ScreeningPolicyResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_post_screening_policy_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/travel_rule/post_screening_policy', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_screening_full_details( - self, - tx_id: Annotated[StrictStr, Field(description="Fireblocks transaction ID of the screened transaction")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ComplianceResultFullPayload]]: - """Provides all the compliance details for the given screened transaction. - - Provides all the compliance details for the given screened transaction. - - :param tx_id: Fireblocks transaction ID of the screened transaction (required) - :type tx_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_screening_full_details", param_name="tx_id", param_value=tx_id) - - _param = self._get_screening_full_details_serialize( - tx_id=tx_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ComplianceResultFullPayload", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_screening_full_details_serialize( - self, - tx_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if tx_id is not None: - _path_params['txId'] = tx_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/transaction/{txId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_screening_policy( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ScreeningProviderRulesConfigurationResponse]]: - """Travel Rule - View Screening Policy - - Get the screening policy for Travel Rule. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_screening_policy_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ScreeningProviderRulesConfigurationResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_screening_policy_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/travel_rule/screening_policy', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def retry_rejected_transaction_bypass_screening_checks( - self, - tx_id: Annotated[StrictStr, Field(description="The transaction id that was rejected by screening checks")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[CreateTransactionResponse]]: - """Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, with the API user as the initiator, bypassing the screening policy check - - This endpoint is restricted to Admin API users and is only applicable to outgoing transactions. - - :param tx_id: The transaction id that was rejected by screening checks (required) - :type tx_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="retry_rejected_transaction_bypass_screening_checks", param_name="tx_id", param_value=tx_id) - - _param = self._retry_rejected_transaction_bypass_screening_checks_serialize( - tx_id=tx_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "CreateTransactionResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _retry_rejected_transaction_bypass_screening_checks_serialize( - self, - tx_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if tx_id is not None: - _path_params['txId'] = tx_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/screening/transaction/{txId}/bypass_screening_policy', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_aml_verdict( - self, - aml_verdict_manual_request: AmlVerdictManualRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[AmlVerdictManualResponse]]: - """Set AML Verdict for Manual Screening Verdict. - - Set AML verdict for incoming transactions when Manual Screening Verdict feature is enabled. - - :param aml_verdict_manual_request: (required) - :type aml_verdict_manual_request: AmlVerdictManualRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._set_aml_verdict_serialize( - aml_verdict_manual_request=aml_verdict_manual_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "AmlVerdictManualResponse", - '400': "ErrorSchema", - '425': "ErrorSchema", - '500': "ErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_aml_verdict_serialize( - self, - aml_verdict_manual_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if aml_verdict_manual_request is not None: - _body_params = aml_verdict_manual_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/screening/aml/verdict/manual', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_aml_screening_configuration( - self, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ScreeningConfigurationsRequest]]: - """Update AML Configuration - - Updates bypass screening, inbound delay, or outbound delay configurations for AML. - - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._update_aml_screening_configuration_serialize( - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ScreeningConfigurationsRequest", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_aml_screening_configuration_serialize( - self, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/screening/aml/policy_configuration', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_screening_configuration( - self, - screening_update_configurations: ScreeningUpdateConfigurations, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ScreeningUpdateConfigurations]]: - """Tenant - Screening Configuration - - Update tenant screening configuration. - - :param screening_update_configurations: (required) - :type screening_update_configurations: ScreeningUpdateConfigurations - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._update_screening_configuration_serialize( - screening_update_configurations=screening_update_configurations, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ScreeningUpdateConfigurations", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_screening_configuration_serialize( - self, - screening_update_configurations, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if screening_update_configurations is not None: - _body_params = screening_update_configurations - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/screening/configurations', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_travel_rule_config( - self, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ScreeningConfigurationsRequest]]: - """Update Travel Rule Configuration - - Updates bypass screening, inbound delay, or outbound delay configurations for Travel Rule. - - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._update_travel_rule_config_serialize( - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ScreeningConfigurationsRequest", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_travel_rule_config_serialize( - self, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/screening/travel_rule/policy_configuration', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkcmVzc19yZWdpc3RyeV9sZWdhbF9lbnRpdHkgaW1wb3J0IEFkZHJlc3NSZWdpc3RyeUxlZ2FsRW50aXR5CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX3ZlcmRpY3RfbWFudWFsX3JlcXVlc3QgaW1wb3J0IEFtbFZlcmRpY3RNYW51YWxSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX3ZlcmRpY3RfbWFudWFsX3Jlc3BvbnNlIGltcG9ydCBBbWxWZXJkaWN0TWFudWFsUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb21wbGlhbmNlX3Jlc3VsdF9mdWxsX3BheWxvYWQgaW1wb3J0IENvbXBsaWFuY2VSZXN1bHRGdWxsUGF5bG9hZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV90cmFuc2FjdGlvbl9yZXNwb25zZSBpbXBvcnQgQ3JlYXRlVHJhbnNhY3Rpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19jb25maWd1cmF0aW9uc19yZXF1ZXN0IGltcG9ydCBTY3JlZW5pbmdDb25maWd1cmF0aW9uc1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfcG9saWN5X3Jlc3BvbnNlIGltcG9ydCBTY3JlZW5pbmdQb2xpY3lSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19wcm92aWRlcl9ydWxlc19jb25maWd1cmF0aW9uX3Jlc3BvbnNlIGltcG9ydCBTY3JlZW5pbmdQcm92aWRlclJ1bGVzQ29uZmlndXJhdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3VwZGF0ZV9jb25maWd1cmF0aW9ucyBpbXBvcnQgU2NyZWVuaW5nVXBkYXRlQ29uZmlndXJhdGlvbnMKCmZyb20gZmlyZWJsb2Nrcy5hcGlfY2xpZW50IGltcG9ydCBBcGlDbGllbnQsIFJlcXVlc3RTZXJpYWxpemVkCmZyb20gZmlyZWJsb2Nrcy5hcGlfcmVzcG9uc2UgaW1wb3J0IEFwaVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5yZXN0IGltcG9ydCBSRVNUUmVzcG9uc2VUeXBlCmZyb20gZmlyZWJsb2Nrcy52YWxpZGF0aW9uX3V0aWxzIGltcG9ydCB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nCgoKY2xhc3MgQ29tcGxpYW5jZUFwaToKICAgICIiIk5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IKICAgIFJlZjogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgogICAgIiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwaV9jbGllbnQ9Tm9uZSkgLT4gTm9uZToKICAgICAgICBpZiBhcGlfY2xpZW50IGlzIE5vbmU6CiAgICAgICAgICAgIGFwaV9jbGllbnQgPSBBcGlDbGllbnQuZ2V0X2RlZmF1bHQoKQogICAgICAgIHNlbGYuYXBpX2NsaWVudCA9IGFwaV9jbGllbnQKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfYW1sX3Bvc3Rfc2NyZWVuaW5nX3BvbGljeSgKICAgICAgICBzZWxmLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbU2NyZWVuaW5nUG9saWN5UmVzcG9uc2VdXToKICAgICAgICAiIiJBTUwgLSBWaWV3IFBvc3QtU2NyZWVuaW5nIFBvbGljeQoKICAgICAgICBHZXQgdGhlIHBvc3Qtc2NyZWVuaW5nIHBvbGljeSBmb3IgQU1MLgoKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfYW1sX3Bvc3Rfc2NyZWVuaW5nX3BvbGljeV9zZXJpYWxpemUoCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJTY3JlZW5pbmdQb2xpY3lSZXNwb25zZSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfYW1sX3Bvc3Rfc2NyZWVuaW5nX3BvbGljeV9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc2NyZWVuaW5nL2FtbC9wb3N0X3NjcmVlbmluZ19wb2xpY3knLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X2FtbF9zY3JlZW5pbmdfcG9saWN5KAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtTY3JlZW5pbmdQcm92aWRlclJ1bGVzQ29uZmlndXJhdGlvblJlc3BvbnNlXV06CiAgICAgICAgIiIiQU1MIC0gVmlldyBTY3JlZW5pbmcgUG9saWN5CgogICAgICAgIEdldCB0aGUgc2NyZWVuaW5nIHBvbGljeSBmb3IgQU1MLgoKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfYW1sX3NjcmVlbmluZ19wb2xpY3lfc2VyaWFsaXplKAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiU2NyZWVuaW5nUHJvdmlkZXJSdWxlc0NvbmZpZ3VyYXRpb25SZXNwb25zZSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfYW1sX3NjcmVlbmluZ19wb2xpY3lfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3NjcmVlbmluZy9hbWwvc2NyZWVuaW5nX3BvbGljeScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfbGVnYWxfZW50aXR5X2J5X2FkZHJlc3MoCiAgICAgICAgc2VsZiwKICAgICAgICBhZGRyZXNzOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iQmxvY2tjaGFpbiBhZGRyZXNzIHRvIGxvb2sgdXAiKV0sCiAgICAgICAgYXNzZXQ6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQXNzZXQgSUQgKGUuZy4gRVRILCBCVEMpLiBPcHRpb25hbC4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbQWRkcmVzc1JlZ2lzdHJ5TGVnYWxFbnRpdHldXToKICAgICAgICAiIiJMb29rIHVwIGxlZ2FsIGVudGl0eSBieSBhZGRyZXNzIGFuZCBhc3NldAoKICAgICAgICBSZXR1cm5zIHRoZSBsZWdhbCBlbnRpdHkgKGNvbXBhbnkgbmFtZSwganVyaXNkaWN0aW9uLCBjb21wYW55SWQpIGZvciB0aGUgZ2l2ZW4gYmxvY2tjaGFpbiBhZGRyZXNzIGFuZCBvcHRpb25hbCBhc3NldC4gQm90aCB0aGUgcmVxdWVzdGVyIGFuZCB0aGUgb3duZXIgb2YgdGhlIGFkZHJlc3MgbXVzdCBiZSBvcHRlZCBpbiB0byB0aGUgYWRkcmVzcyByZWdpc3RyeS4KCiAgICAgICAgOnBhcmFtIGFkZHJlc3M6IEJsb2NrY2hhaW4gYWRkcmVzcyB0byBsb29rIHVwIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhZGRyZXNzOiBzdHIKICAgICAgICA6cGFyYW0gYXNzZXQ6IEFzc2V0IElEIChlLmcuIEVUSCwgQlRDKS4gT3B0aW9uYWwuCiAgICAgICAgOnR5cGUgYXNzZXQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfbGVnYWxfZW50aXR5X2J5X2FkZHJlc3MiLCBwYXJhbV9uYW1lPSJhZGRyZXNzIiwgcGFyYW1fdmFsdWU9YWRkcmVzcykKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2xlZ2FsX2VudGl0eV9ieV9hZGRyZXNzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgYWRkcmVzcz1hZGRyZXNzLAogICAgICAgICAgICBhc3NldD1hc3NldCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkFkZHJlc3NSZWdpc3RyeUxlZ2FsRW50aXR5IiwKICAgICAgICAgICAgJzQwMCc6ICJBZGRyZXNzUmVnaXN0cnlFcnJvciIsCiAgICAgICAgICAgICc0MDMnOiAiQWRkcmVzc1JlZ2lzdHJ5RXJyb3IiLAogICAgICAgICAgICAnNDA0JzogIkFkZHJlc3NSZWdpc3RyeUVycm9yIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2xlZ2FsX2VudGl0eV9ieV9hZGRyZXNzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGFkZHJlc3MsCiAgICAgICAgYXNzZXQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIGFkZHJlc3MgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2FkZHJlc3MnLCBhZGRyZXNzKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgYXNzZXQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2Fzc2V0JywgYXNzZXQpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9hZGRyZXNzX3JlZ2lzdHJ5L2xlZ2FsX2VudGl0eScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfcG9zdF9zY3JlZW5pbmdfcG9saWN5KAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtTY3JlZW5pbmdQb2xpY3lSZXNwb25zZV1dOgogICAgICAgICIiIlRyYXZlbCBSdWxlIC0gVmlldyBQb3N0LVNjcmVlbmluZyBQb2xpY3kKCiAgICAgICAgR2V0IHRoZSBwb3N0LXNjcmVlbmluZyBwb2xpY3kgZm9yIFRyYXZlbCBSdWxlLgoKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfcG9zdF9zY3JlZW5pbmdfcG9saWN5X3NlcmlhbGl6ZSgKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlNjcmVlbmluZ1BvbGljeVJlc3BvbnNlIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9wb3N0X3NjcmVlbmluZ19wb2xpY3lfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3NjcmVlbmluZy90cmF2ZWxfcnVsZS9wb3N0X3NjcmVlbmluZ19wb2xpY3knLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X3NjcmVlbmluZ19mdWxsX2RldGFpbHMoCiAgICAgICAgc2VsZiwKICAgICAgICB0eF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IkZpcmVibG9ja3MgdHJhbnNhY3Rpb24gSUQgb2YgdGhlIHNjcmVlbmVkIHRyYW5zYWN0aW9uIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbQ29tcGxpYW5jZVJlc3VsdEZ1bGxQYXlsb2FkXV06CiAgICAgICAgIiIiUHJvdmlkZXMgYWxsIHRoZSBjb21wbGlhbmNlIGRldGFpbHMgZm9yIHRoZSBnaXZlbiBzY3JlZW5lZCB0cmFuc2FjdGlvbi4KCiAgICAgICAgUHJvdmlkZXMgYWxsIHRoZSBjb21wbGlhbmNlIGRldGFpbHMgZm9yIHRoZSBnaXZlbiBzY3JlZW5lZCB0cmFuc2FjdGlvbi4KCiAgICAgICAgOnBhcmFtIHR4X2lkOiBGaXJlYmxvY2tzIHRyYW5zYWN0aW9uIElEIG9mIHRoZSBzY3JlZW5lZCB0cmFuc2FjdGlvbiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdHhfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfc2NyZWVuaW5nX2Z1bGxfZGV0YWlscyIsIHBhcmFtX25hbWU9InR4X2lkIiwgcGFyYW1fdmFsdWU9dHhfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9zY3JlZW5pbmdfZnVsbF9kZXRhaWxzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgdHhfaWQ9dHhfaWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJDb21wbGlhbmNlUmVzdWx0RnVsbFBheWxvYWQiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfc2NyZWVuaW5nX2Z1bGxfZGV0YWlsc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB0eF9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgdHhfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1sndHhJZCddID0gdHhfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zY3JlZW5pbmcvdHJhbnNhY3Rpb24ve3R4SWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9zY3JlZW5pbmdfcG9saWN5KAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtTY3JlZW5pbmdQcm92aWRlclJ1bGVzQ29uZmlndXJhdGlvblJlc3BvbnNlXV06CiAgICAgICAgIiIiVHJhdmVsIFJ1bGUgLSBWaWV3IFNjcmVlbmluZyBQb2xpY3kKCiAgICAgICAgR2V0IHRoZSBzY3JlZW5pbmcgcG9saWN5IGZvciBUcmF2ZWwgUnVsZS4KCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X3NjcmVlbmluZ19wb2xpY3lfc2VyaWFsaXplKAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiU2NyZWVuaW5nUHJvdmlkZXJSdWxlc0NvbmZpZ3VyYXRpb25SZXNwb25zZSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfc2NyZWVuaW5nX3BvbGljeV9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc2NyZWVuaW5nL3RyYXZlbF9ydWxlL3NjcmVlbmluZ19wb2xpY3knLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgcmV0cnlfcmVqZWN0ZWRfdHJhbnNhY3Rpb25fYnlwYXNzX3NjcmVlbmluZ19jaGVja3MoCiAgICAgICAgc2VsZiwKICAgICAgICB0eF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSB0cmFuc2FjdGlvbiBpZCB0aGF0IHdhcyByZWplY3RlZCBieSBzY3JlZW5pbmcgY2hlY2tzIildLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0NyZWF0ZVRyYW5zYWN0aW9uUmVzcG9uc2VdXToKICAgICAgICAiIiJDYWxsaW5nIHRoZSBcIkJ5cGFzcyBTY3JlZW5pbmcgUG9saWN5XCIgQVBJIGVuZHBvaW50IHRyaWdnZXJzIGEgbmV3IHRyYW5zYWN0aW9uLCB3aXRoIHRoZSBBUEkgdXNlciBhcyB0aGUgaW5pdGlhdG9yLCBieXBhc3NpbmcgdGhlIHNjcmVlbmluZyBwb2xpY3kgY2hlY2sKCiAgICAgICAgVGhpcyBlbmRwb2ludCBpcyByZXN0cmljdGVkIHRvIEFkbWluIEFQSSB1c2VycyBhbmQgaXMgb25seSBhcHBsaWNhYmxlIHRvIG91dGdvaW5nIHRyYW5zYWN0aW9ucy4KCiAgICAgICAgOnBhcmFtIHR4X2lkOiBUaGUgdHJhbnNhY3Rpb24gaWQgdGhhdCB3YXMgcmVqZWN0ZWQgYnkgc2NyZWVuaW5nIGNoZWNrcyAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdHhfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJyZXRyeV9yZWplY3RlZF90cmFuc2FjdGlvbl9ieXBhc3Nfc2NyZWVuaW5nX2NoZWNrcyIsIHBhcmFtX25hbWU9InR4X2lkIiwgcGFyYW1fdmFsdWU9dHhfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3JldHJ5X3JlamVjdGVkX3RyYW5zYWN0aW9uX2J5cGFzc19zY3JlZW5pbmdfY2hlY2tzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgdHhfaWQ9dHhfaWQsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMSc6ICJDcmVhdGVUcmFuc2FjdGlvblJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfcmV0cnlfcmVqZWN0ZWRfdHJhbnNhY3Rpb25fYnlwYXNzX3NjcmVlbmluZ19jaGVja3Nfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdHhfaWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB0eF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd0eElkJ10gPSB0eF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3NjcmVlbmluZy90cmFuc2FjdGlvbi97dHhJZH0vYnlwYXNzX3NjcmVlbmluZ19wb2xpY3knLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgc2V0X2FtbF92ZXJkaWN0KAogICAgICAgIHNlbGYsCiAgICAgICAgYW1sX3ZlcmRpY3RfbWFudWFsX3JlcXVlc3Q6IEFtbFZlcmRpY3RNYW51YWxSZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0FtbFZlcmRpY3RNYW51YWxSZXNwb25zZV1dOgogICAgICAgICIiIlNldCBBTUwgVmVyZGljdCBmb3IgTWFudWFsIFNjcmVlbmluZyBWZXJkaWN0LgoKICAgICAgICBTZXQgQU1MIHZlcmRpY3QgZm9yIGluY29taW5nIHRyYW5zYWN0aW9ucyB3aGVuIE1hbnVhbCBTY3JlZW5pbmcgVmVyZGljdCBmZWF0dXJlIGlzIGVuYWJsZWQuCgogICAgICAgIDpwYXJhbSBhbWxfdmVyZGljdF9tYW51YWxfcmVxdWVzdDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGFtbF92ZXJkaWN0X21hbnVhbF9yZXF1ZXN0OiBBbWxWZXJkaWN0TWFudWFsUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3NldF9hbWxfdmVyZGljdF9zZXJpYWxpemUoCiAgICAgICAgICAgIGFtbF92ZXJkaWN0X21hbnVhbF9yZXF1ZXN0PWFtbF92ZXJkaWN0X21hbnVhbF9yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiQW1sVmVyZGljdE1hbnVhbFJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwMCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MjUnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNTAwJzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfc2V0X2FtbF92ZXJkaWN0X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGFtbF92ZXJkaWN0X21hbnVhbF9yZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgYW1sX3ZlcmRpY3RfbWFudWFsX3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IGFtbF92ZXJkaWN0X21hbnVhbF9yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zY3JlZW5pbmcvYW1sL3ZlcmRpY3QvbWFudWFsJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHVwZGF0ZV9hbWxfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb24oCiAgICAgICAgc2VsZiwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtTY3JlZW5pbmdDb25maWd1cmF0aW9uc1JlcXVlc3RdXToKICAgICAgICAiIiJVcGRhdGUgQU1MIENvbmZpZ3VyYXRpb24KCiAgICAgICAgVXBkYXRlcyBieXBhc3Mgc2NyZWVuaW5nLCBpbmJvdW5kIGRlbGF5LCBvciBvdXRib3VuZCBkZWxheSBjb25maWd1cmF0aW9ucyBmb3IgQU1MLgoKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl91cGRhdGVfYW1sX3NjcmVlbmluZ19jb25maWd1cmF0aW9uX3NlcmlhbGl6ZSgKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlNjcmVlbmluZ0NvbmZpZ3VyYXRpb25zUmVxdWVzdCIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF91cGRhdGVfYW1sX3NjcmVlbmluZ19jb25maWd1cmF0aW9uX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BVVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zY3JlZW5pbmcvYW1sL3BvbGljeV9jb25maWd1cmF0aW9uJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHVwZGF0ZV9zY3JlZW5pbmdfY29uZmlndXJhdGlvbigKICAgICAgICBzZWxmLAogICAgICAgIHNjcmVlbmluZ191cGRhdGVfY29uZmlndXJhdGlvbnM6IFNjcmVlbmluZ1VwZGF0ZUNvbmZpZ3VyYXRpb25zLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1NjcmVlbmluZ1VwZGF0ZUNvbmZpZ3VyYXRpb25zXV06CiAgICAgICAgIiIiVGVuYW50IC0gU2NyZWVuaW5nIENvbmZpZ3VyYXRpb24KCiAgICAgICAgVXBkYXRlIHRlbmFudCBzY3JlZW5pbmcgY29uZmlndXJhdGlvbi4KCiAgICAgICAgOnBhcmFtIHNjcmVlbmluZ191cGRhdGVfY29uZmlndXJhdGlvbnM6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBzY3JlZW5pbmdfdXBkYXRlX2NvbmZpZ3VyYXRpb25zOiBTY3JlZW5pbmdVcGRhdGVDb25maWd1cmF0aW9ucwogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3VwZGF0ZV9zY3JlZW5pbmdfY29uZmlndXJhdGlvbl9zZXJpYWxpemUoCiAgICAgICAgICAgIHNjcmVlbmluZ191cGRhdGVfY29uZmlndXJhdGlvbnM9c2NyZWVuaW5nX3VwZGF0ZV9jb25maWd1cmF0aW9ucywKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlNjcmVlbmluZ1VwZGF0ZUNvbmZpZ3VyYXRpb25zIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3VwZGF0ZV9zY3JlZW5pbmdfY29uZmlndXJhdGlvbl9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBzY3JlZW5pbmdfdXBkYXRlX2NvbmZpZ3VyYXRpb25zLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgc2NyZWVuaW5nX3VwZGF0ZV9jb25maWd1cmF0aW9ucyBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gc2NyZWVuaW5nX3VwZGF0ZV9jb25maWd1cmF0aW9ucwoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BVVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zY3JlZW5pbmcvY29uZmlndXJhdGlvbnMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgdXBkYXRlX3RyYXZlbF9ydWxlX2NvbmZpZygKICAgICAgICBzZWxmLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1NjcmVlbmluZ0NvbmZpZ3VyYXRpb25zUmVxdWVzdF1dOgogICAgICAgICIiIlVwZGF0ZSBUcmF2ZWwgUnVsZSBDb25maWd1cmF0aW9uCgogICAgICAgIFVwZGF0ZXMgYnlwYXNzIHNjcmVlbmluZywgaW5ib3VuZCBkZWxheSwgb3Igb3V0Ym91bmQgZGVsYXkgY29uZmlndXJhdGlvbnMgZm9yIFRyYXZlbCBSdWxlLgoKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl91cGRhdGVfdHJhdmVsX3J1bGVfY29uZmlnX3NlcmlhbGl6ZSgKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlNjcmVlbmluZ0NvbmZpZ3VyYXRpb25zUmVxdWVzdCIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF91cGRhdGVfdHJhdmVsX3J1bGVfY29uZmlnX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BVVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zY3JlZW5pbmcvdHJhdmVsX3J1bGUvcG9saWN5X2NvbmZpZ3VyYXRpb24nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCg== \ No newline at end of file diff --git a/fireblocks/api/compliance_screening_configuration_api.py b/fireblocks/api/compliance_screening_configuration_api.py index 0190ef5a..f0546f12 100644 --- a/fireblocks/api/compliance_screening_configuration_api.py +++ b/fireblocks/api/compliance_screening_configuration_api.py @@ -1,279 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from fireblocks.models.screening_configurations_request import ScreeningConfigurationsRequest - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class ComplianceScreeningConfigurationApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def get_aml_screening_configuration( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ScreeningConfigurationsRequest]]: - """Get AML Screening Policy Configuration - - Retrieves the configuration for Travel Rule screening policy. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_aml_screening_configuration_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ScreeningConfigurationsRequest", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_aml_screening_configuration_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/aml/policy_configuration', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_screening_configuration( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ScreeningConfigurationsRequest]]: - """Get Travel Rule Screening Policy Configuration - - Retrieves the configuration for Travel Rule screening policy. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_screening_configuration_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ScreeningConfigurationsRequest", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_screening_configuration_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/travel_rule/policy_configuration', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfY29uZmlndXJhdGlvbnNfcmVxdWVzdCBpbXBvcnQgU2NyZWVuaW5nQ29uZmlndXJhdGlvbnNSZXF1ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpX2NsaWVudCBpbXBvcnQgQXBpQ2xpZW50LCBSZXF1ZXN0U2VyaWFsaXplZApmcm9tIGZpcmVibG9ja3MuYXBpX3Jlc3BvbnNlIGltcG9ydCBBcGlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MucmVzdCBpbXBvcnQgUkVTVFJlc3BvbnNlVHlwZQpmcm9tIGZpcmVibG9ja3MudmFsaWRhdGlvbl91dGlscyBpbXBvcnQgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZwoKCmNsYXNzIENvbXBsaWFuY2VTY3JlZW5pbmdDb25maWd1cmF0aW9uQXBpOgogICAgIiIiTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvcgogICAgUmVmOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gKCiAgICBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgYXBpX2NsaWVudD1Ob25lKSAtPiBOb25lOgogICAgICAgIGlmIGFwaV9jbGllbnQgaXMgTm9uZToKICAgICAgICAgICAgYXBpX2NsaWVudCA9IEFwaUNsaWVudC5nZXRfZGVmYXVsdCgpCiAgICAgICAgc2VsZi5hcGlfY2xpZW50ID0gYXBpX2NsaWVudAoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9hbWxfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb24oCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1NjcmVlbmluZ0NvbmZpZ3VyYXRpb25zUmVxdWVzdF1dOgogICAgICAgICIiIkdldCBBTUwgU2NyZWVuaW5nIFBvbGljeSBDb25maWd1cmF0aW9uCgogICAgICAgIFJldHJpZXZlcyB0aGUgY29uZmlndXJhdGlvbiBmb3IgVHJhdmVsIFJ1bGUgc2NyZWVuaW5nIHBvbGljeS4KCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2FtbF9zY3JlZW5pbmdfY29uZmlndXJhdGlvbl9zZXJpYWxpemUoCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJTY3JlZW5pbmdDb25maWd1cmF0aW9uc1JlcXVlc3QiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2FtbF9zY3JlZW5pbmdfY29uZmlndXJhdGlvbl9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc2NyZWVuaW5nL2FtbC9wb2xpY3lfY29uZmlndXJhdGlvbicsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb24oCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1NjcmVlbmluZ0NvbmZpZ3VyYXRpb25zUmVxdWVzdF1dOgogICAgICAgICIiIkdldCBUcmF2ZWwgUnVsZSBTY3JlZW5pbmcgUG9saWN5IENvbmZpZ3VyYXRpb24KCiAgICAgICAgUmV0cmlldmVzIHRoZSBjb25maWd1cmF0aW9uIGZvciBUcmF2ZWwgUnVsZSBzY3JlZW5pbmcgcG9saWN5LgoKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb25fc2VyaWFsaXplKAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiU2NyZWVuaW5nQ29uZmlndXJhdGlvbnNSZXF1ZXN0IiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9zY3JlZW5pbmdfY29uZmlndXJhdGlvbl9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc2NyZWVuaW5nL3RyYXZlbF9ydWxlL3BvbGljeV9jb25maWd1cmF0aW9uJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgo= \ No newline at end of file diff --git a/fireblocks/api/connected_accounts_beta_api.py b/fireblocks/api/connected_accounts_beta_api.py index fa32265d..0f90d238 100644 --- a/fireblocks/api/connected_accounts_beta_api.py +++ b/fireblocks/api/connected_accounts_beta_api.py @@ -1,1058 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictBool, StrictStr -from typing import Optional -from typing_extensions import Annotated -from fireblocks.models.connected_account_balances_response import ConnectedAccountBalancesResponse -from fireblocks.models.connected_account_rate_response import ConnectedAccountRateResponse -from fireblocks.models.connected_account_trading_pairs_response import ConnectedAccountTradingPairsResponse -from fireblocks.models.connected_accounts_response import ConnectedAccountsResponse -from fireblocks.models.connected_single_account_response import ConnectedSingleAccountResponse -from fireblocks.models.rename_connected_account_request import RenameConnectedAccountRequest -from fireblocks.models.rename_connected_account_response import RenameConnectedAccountResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class ConnectedAccountsBetaApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def disconnect_connected_account( - self, - account_id: Annotated[str, Field(min_length=1, strict=True, description="The ID of the account to disconnect.")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Disconnect connected account - - Disconnect a connected account by ID.
**Note**: - This endpoint is currently in beta and might be subject to changes. - - :param account_id: The ID of the account to disconnect. (required) - :type account_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="disconnect_connected_account", param_name="account_id", param_value=account_id) - - _param = self._disconnect_connected_account_serialize( - account_id=account_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '204': None, - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _disconnect_connected_account_serialize( - self, - account_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if account_id is not None: - _path_params['accountId'] = account_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/connected_accounts/{accountId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_connected_account( - self, - account_id: Annotated[str, Field(min_length=1, strict=True, description="The ID of the account to fetch.")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ConnectedSingleAccountResponse]]: - """Get connected account - - Retrieve detailed information about a specific connected account by ID. **Note:** This endpoint is currently in beta and might be subject to changes. - - :param account_id: The ID of the account to fetch. (required) - :type account_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_connected_account", param_name="account_id", param_value=account_id) - - _param = self._get_connected_account_serialize( - account_id=account_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ConnectedSingleAccountResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_connected_account_serialize( - self, - account_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if account_id is not None: - _path_params['accountId'] = account_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/connected_accounts/{accountId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_connected_account_balances( - self, - account_id: Annotated[str, Field(min_length=1, strict=True, description="The ID of the account to fetch balances for.")], - page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="Page size for pagination.")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor for pagination.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ConnectedAccountBalancesResponse]]: - """Get balances for an account - - Retrieve current asset balances for a specific connected account as a flat list (one row per `assetId`, `balanceType`). **Note:** This endpoint is currently in beta and might be subject to changes. - - :param account_id: The ID of the account to fetch balances for. (required) - :type account_id: str - :param page_size: Page size for pagination. - :type page_size: int - :param page_cursor: Page cursor for pagination. - :type page_cursor: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_connected_account_balances", param_name="account_id", param_value=account_id) - - _param = self._get_connected_account_balances_serialize( - account_id=account_id, - page_size=page_size, - page_cursor=page_cursor, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ConnectedAccountBalancesResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_connected_account_balances_serialize( - self, - account_id, - page_size, - page_cursor, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if account_id is not None: - _path_params['accountId'] = account_id - # process the query parameters - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/connected_accounts/{accountId}/balances', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_connected_account_rates( - self, - account_id: Annotated[str, Field(min_length=1, strict=True, description="The ID of the account to fetch rates for.")], - base_asset_id: Annotated[str, Field(min_length=1, strict=True, description="The ID of the asset to fetch rates for.")], - quote_asset_id: Annotated[str, Field(min_length=1, strict=True, description="The ID of the asset to get the rates nominally.")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ConnectedAccountRateResponse]]: - """Get exchange rates for an account - - Retrieve current exchange rates for converting between specific assets in a connected account. **Note:** This endpoint is currently in beta and might be subject to changes. - - :param account_id: The ID of the account to fetch rates for. (required) - :type account_id: str - :param base_asset_id: The ID of the asset to fetch rates for. (required) - :type base_asset_id: str - :param quote_asset_id: The ID of the asset to get the rates nominally. (required) - :type quote_asset_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_connected_account_rates", param_name="account_id", param_value=account_id) - validate_not_empty_string(function_name="get_connected_account_rates", param_name="base_asset_id", param_value=base_asset_id) - validate_not_empty_string(function_name="get_connected_account_rates", param_name="quote_asset_id", param_value=quote_asset_id) - - _param = self._get_connected_account_rates_serialize( - account_id=account_id, - base_asset_id=base_asset_id, - quote_asset_id=quote_asset_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ConnectedAccountRateResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_connected_account_rates_serialize( - self, - account_id, - base_asset_id, - quote_asset_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if account_id is not None: - _path_params['accountId'] = account_id - # process the query parameters - if base_asset_id is not None: - - _query_params.append(('baseAssetId', base_asset_id)) - - if quote_asset_id is not None: - - _query_params.append(('quoteAssetId', quote_asset_id)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/connected_accounts/{accountId}/rates', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_connected_account_trading_pairs( - self, - account_id: Annotated[str, Field(min_length=1, strict=True, description="The ID of the account to fetch supported pairs for.")], - page_size: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Page size for pagination.")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor for pagination.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ConnectedAccountTradingPairsResponse]]: - """Get supported trading pairs for an account - - Retrieve all asset trading pairs supported by a specific connected account, including the pair type (`quote`, `market`, `onOffRamp`). **Note:** This endpoint is currently in beta and might be subject to changes. - - :param account_id: The ID of the account to fetch supported pairs for. (required) - :type account_id: str - :param page_size: Page size for pagination. - :type page_size: int - :param page_cursor: Page cursor for pagination. - :type page_cursor: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_connected_account_trading_pairs", param_name="account_id", param_value=account_id) - - _param = self._get_connected_account_trading_pairs_serialize( - account_id=account_id, - page_size=page_size, - page_cursor=page_cursor, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ConnectedAccountTradingPairsResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_connected_account_trading_pairs_serialize( - self, - account_id, - page_size, - page_cursor, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if account_id is not None: - _path_params['accountId'] = account_id - # process the query parameters - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/connected_accounts/{accountId}/manifest/capabilities/trading/pairs', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_connected_accounts( - self, - main_accounts: Annotated[Optional[StrictBool], Field(description="Whether to include only main accounts in the response.")] = None, - page_size: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Page size for pagination.")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor for pagination.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ConnectedAccountsResponse]]: - """Get connected accounts - - Returns all connected accounts. **Note:** This endpoint is currently in beta and might be subject to changes. - - :param main_accounts: Whether to include only main accounts in the response. - :type main_accounts: bool - :param page_size: Page size for pagination. - :type page_size: int - :param page_cursor: Page cursor for pagination. - :type page_cursor: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_connected_accounts_serialize( - main_accounts=main_accounts, - page_size=page_size, - page_cursor=page_cursor, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ConnectedAccountsResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_connected_accounts_serialize( - self, - main_accounts, - page_size, - page_cursor, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if main_accounts is not None: - - _query_params.append(('mainAccounts', main_accounts)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/connected_accounts', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def rename_connected_account( - self, - account_id: Annotated[str, Field(min_length=1, strict=True, description="The unique identifier of the connected account")], - rename_connected_account_request: RenameConnectedAccountRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[RenameConnectedAccountResponse]]: - """Rename Connected Account - - Rename a connected account by account ID. **Note:** This endpoint is currently in beta and might be subject to changes. - - :param account_id: The unique identifier of the connected account (required) - :type account_id: str - :param rename_connected_account_request: (required) - :type rename_connected_account_request: RenameConnectedAccountRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="rename_connected_account", param_name="account_id", param_value=account_id) - - _param = self._rename_connected_account_serialize( - account_id=account_id, - rename_connected_account_request=rename_connected_account_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "RenameConnectedAccountResponse", - '400': "ConnectedAccountErrorResponse", - '401': "ConnectedAccountErrorResponse", - '403': "ConnectedAccountErrorResponse", - '404': "ConnectedAccountErrorResponse", - '409': "ConnectedAccountErrorResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _rename_connected_account_serialize( - self, - account_id, - rename_connected_account_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if account_id is not None: - _path_params['accountId'] = account_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if rename_connected_account_request is not None: - _body_params = rename_connected_account_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/connected_accounts/{accountId}/rename', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdEJvb2wsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRfYmFsYW5jZXNfcmVzcG9uc2UgaW1wb3J0IENvbm5lY3RlZEFjY291bnRCYWxhbmNlc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRfcmF0ZV9yZXNwb25zZSBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudFJhdGVSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X3RyYWRpbmdfcGFpcnNfcmVzcG9uc2UgaW1wb3J0IENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpcnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50c19yZXNwb25zZSBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudHNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9zaW5nbGVfYWNjb3VudF9yZXNwb25zZSBpbXBvcnQgQ29ubmVjdGVkU2luZ2xlQWNjb3VudFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVuYW1lX2Nvbm5lY3RlZF9hY2NvdW50X3JlcXVlc3QgaW1wb3J0IFJlbmFtZUNvbm5lY3RlZEFjY291bnRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVuYW1lX2Nvbm5lY3RlZF9hY2NvdW50X3Jlc3BvbnNlIGltcG9ydCBSZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVzcG9uc2UKCmZyb20gZmlyZWJsb2Nrcy5hcGlfY2xpZW50IGltcG9ydCBBcGlDbGllbnQsIFJlcXVlc3RTZXJpYWxpemVkCmZyb20gZmlyZWJsb2Nrcy5hcGlfcmVzcG9uc2UgaW1wb3J0IEFwaVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5yZXN0IGltcG9ydCBSRVNUUmVzcG9uc2VUeXBlCmZyb20gZmlyZWJsb2Nrcy52YWxpZGF0aW9uX3V0aWxzIGltcG9ydCB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nCgoKY2xhc3MgQ29ubmVjdGVkQWNjb3VudHNCZXRhQXBpOgogICAgIiIiTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvcgogICAgUmVmOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gKCiAgICBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgYXBpX2NsaWVudD1Ob25lKSAtPiBOb25lOgogICAgICAgIGlmIGFwaV9jbGllbnQgaXMgTm9uZToKICAgICAgICAgICAgYXBpX2NsaWVudCA9IEFwaUNsaWVudC5nZXRfZGVmYXVsdCgpCiAgICAgICAgc2VsZi5hcGlfY2xpZW50ID0gYXBpX2NsaWVudAoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGRpc2Nvbm5lY3RfY29ubmVjdGVkX2FjY291bnQoCiAgICAgICAgc2VsZiwKICAgICAgICBhY2NvdW50X2lkOiBBbm5vdGF0ZWRbc3RyLCBGaWVsZChtaW5fbGVuZ3RoPTEsIHN0cmljdD1UcnVlLCBkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBhY2NvdW50IHRvIGRpc2Nvbm5lY3QuIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTm9uZV1dOgogICAgICAgICIiIkRpc2Nvbm5lY3QgY29ubmVjdGVkIGFjY291bnQKCiAgICAgICAgRGlzY29ubmVjdCBhIGNvbm5lY3RlZCBhY2NvdW50IGJ5IElELiA8L2JyPiAqKk5vdGUqKjogLSBUaGlzIGVuZHBvaW50IGlzIGN1cnJlbnRseSBpbiBiZXRhIGFuZCBtaWdodCBiZSBzdWJqZWN0IHRvIGNoYW5nZXMuIAoKICAgICAgICA6cGFyYW0gYWNjb3VudF9pZDogVGhlIElEIG9mIHRoZSBhY2NvdW50IHRvIGRpc2Nvbm5lY3QuIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhY2NvdW50X2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZGlzY29ubmVjdF9jb25uZWN0ZWRfYWNjb3VudCIsIHBhcmFtX25hbWU9ImFjY291bnRfaWQiLCBwYXJhbV92YWx1ZT1hY2NvdW50X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9kaXNjb25uZWN0X2Nvbm5lY3RlZF9hY2NvdW50X3NlcmlhbGl6ZSgKICAgICAgICAgICAgYWNjb3VudF9pZD1hY2NvdW50X2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDQnOiBOb25lLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9kaXNjb25uZWN0X2Nvbm5lY3RlZF9hY2NvdW50X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGFjY291bnRfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGFjY291bnRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYWNjb3VudElkJ10gPSBhY2NvdW50X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdERUxFVEUnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvY29ubmVjdGVkX2FjY291bnRzL3thY2NvdW50SWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9jb25uZWN0ZWRfYWNjb3VudCgKICAgICAgICBzZWxmLAogICAgICAgIGFjY291bnRfaWQ6IEFubm90YXRlZFtzdHIsIEZpZWxkKG1pbl9sZW5ndGg9MSwgc3RyaWN0PVRydWUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFjY291bnQgdG8gZmV0Y2guIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbQ29ubmVjdGVkU2luZ2xlQWNjb3VudFJlc3BvbnNlXV06CiAgICAgICAgIiIiR2V0IGNvbm5lY3RlZCBhY2NvdW50CgogICAgICAgIFJldHJpZXZlIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgY29ubmVjdGVkIGFjY291bnQgYnkgSUQuICAqKk5vdGU6KiogVGhpcyBlbmRwb2ludCBpcyBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLiAKCiAgICAgICAgOnBhcmFtIGFjY291bnRfaWQ6IFRoZSBJRCBvZiB0aGUgYWNjb3VudCB0byBmZXRjaC4gKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGFjY291bnRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfY29ubmVjdGVkX2FjY291bnQiLCBwYXJhbV9uYW1lPSJhY2NvdW50X2lkIiwgcGFyYW1fdmFsdWU9YWNjb3VudF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2Nvbm5lY3RlZF9hY2NvdW50X3NlcmlhbGl6ZSgKICAgICAgICAgICAgYWNjb3VudF9pZD1hY2NvdW50X2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiQ29ubmVjdGVkU2luZ2xlQWNjb3VudFJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2Nvbm5lY3RlZF9hY2NvdW50X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGFjY291bnRfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGFjY291bnRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYWNjb3VudElkJ10gPSBhY2NvdW50X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvY29ubmVjdGVkX2FjY291bnRzL3thY2NvdW50SWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9jb25uZWN0ZWRfYWNjb3VudF9iYWxhbmNlcygKICAgICAgICBzZWxmLAogICAgICAgIGFjY291bnRfaWQ6IEFubm90YXRlZFtzdHIsIEZpZWxkKG1pbl9sZW5ndGg9MSwgc3RyaWN0PVRydWUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFjY291bnQgdG8gZmV0Y2ggYmFsYW5jZXMgZm9yLiIpXSwKICAgICAgICBwYWdlX3NpemU6IEFubm90YXRlZFtPcHRpb25hbFtBbm5vdGF0ZWRbaW50LCBGaWVsZChsZT0xMDAwLCBzdHJpY3Q9VHJ1ZSwgZ2U9MSldXSwgRmllbGQoZGVzY3JpcHRpb249IlBhZ2Ugc2l6ZSBmb3IgcGFnaW5hdGlvbi4iKV0gPSBOb25lLAogICAgICAgIHBhZ2VfY3Vyc29yOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlBhZ2UgY3Vyc29yIGZvciBwYWdpbmF0aW9uLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXNSZXNwb25zZV1dOgogICAgICAgICIiIkdldCBiYWxhbmNlcyBmb3IgYW4gYWNjb3VudAoKICAgICAgICBSZXRyaWV2ZSBjdXJyZW50IGFzc2V0IGJhbGFuY2VzIGZvciBhIHNwZWNpZmljIGNvbm5lY3RlZCBhY2NvdW50IGFzIGEgZmxhdCBsaXN0IChvbmUgcm93IHBlciBgYXNzZXRJZGAsIGBiYWxhbmNlVHlwZWApLiAgKipOb3RlOioqIFRoaXMgZW5kcG9pbnQgaXMgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy4gCgogICAgICAgIDpwYXJhbSBhY2NvdW50X2lkOiBUaGUgSUQgb2YgdGhlIGFjY291bnQgdG8gZmV0Y2ggYmFsYW5jZXMgZm9yLiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYWNjb3VudF9pZDogc3RyCiAgICAgICAgOnBhcmFtIHBhZ2Vfc2l6ZTogUGFnZSBzaXplIGZvciBwYWdpbmF0aW9uLgogICAgICAgIDp0eXBlIHBhZ2Vfc2l6ZTogaW50CiAgICAgICAgOnBhcmFtIHBhZ2VfY3Vyc29yOiBQYWdlIGN1cnNvciBmb3IgcGFnaW5hdGlvbi4KICAgICAgICA6dHlwZSBwYWdlX2N1cnNvcjogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9jb25uZWN0ZWRfYWNjb3VudF9iYWxhbmNlcyIsIHBhcmFtX25hbWU9ImFjY291bnRfaWQiLCBwYXJhbV92YWx1ZT1hY2NvdW50X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfY29ubmVjdGVkX2FjY291bnRfYmFsYW5jZXNfc2VyaWFsaXplKAogICAgICAgICAgICBhY2NvdW50X2lkPWFjY291bnRfaWQsCiAgICAgICAgICAgIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsCiAgICAgICAgICAgIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiQ29ubmVjdGVkQWNjb3VudEJhbGFuY2VzUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfY29ubmVjdGVkX2FjY291bnRfYmFsYW5jZXNfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgYWNjb3VudF9pZCwKICAgICAgICBwYWdlX3NpemUsCiAgICAgICAgcGFnZV9jdXJzb3IsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGFjY291bnRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYWNjb3VudElkJ10gPSBhY2NvdW50X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgcGFnZV9zaXplIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlU2l6ZScsIHBhZ2Vfc2l6ZSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2VfY3Vyc29yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlQ3Vyc29yJywgcGFnZV9jdXJzb3IpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9jb25uZWN0ZWRfYWNjb3VudHMve2FjY291bnRJZH0vYmFsYW5jZXMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X2Nvbm5lY3RlZF9hY2NvdW50X3JhdGVzKAogICAgICAgIHNlbGYsCiAgICAgICAgYWNjb3VudF9pZDogQW5ub3RhdGVkW3N0ciwgRmllbGQobWluX2xlbmd0aD0xLCBzdHJpY3Q9VHJ1ZSwgZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYWNjb3VudCB0byBmZXRjaCByYXRlcyBmb3IuIildLAogICAgICAgIGJhc2VfYXNzZXRfaWQ6IEFubm90YXRlZFtzdHIsIEZpZWxkKG1pbl9sZW5ndGg9MSwgc3RyaWN0PVRydWUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIGZldGNoIHJhdGVzIGZvci4iKV0sCiAgICAgICAgcXVvdGVfYXNzZXRfaWQ6IEFubm90YXRlZFtzdHIsIEZpZWxkKG1pbl9sZW5ndGg9MSwgc3RyaWN0PVRydWUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIGdldCB0aGUgcmF0ZXMgbm9taW5hbGx5LiIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0Nvbm5lY3RlZEFjY291bnRSYXRlUmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgZXhjaGFuZ2UgcmF0ZXMgZm9yIGFuIGFjY291bnQKCiAgICAgICAgUmV0cmlldmUgY3VycmVudCBleGNoYW5nZSByYXRlcyBmb3IgY29udmVydGluZyBiZXR3ZWVuIHNwZWNpZmljIGFzc2V0cyBpbiBhIGNvbm5lY3RlZCBhY2NvdW50LiAgKipOb3RlOioqIFRoaXMgZW5kcG9pbnQgaXMgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy4gCgogICAgICAgIDpwYXJhbSBhY2NvdW50X2lkOiBUaGUgSUQgb2YgdGhlIGFjY291bnQgdG8gZmV0Y2ggcmF0ZXMgZm9yLiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYWNjb3VudF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGJhc2VfYXNzZXRfaWQ6IFRoZSBJRCBvZiB0aGUgYXNzZXQgdG8gZmV0Y2ggcmF0ZXMgZm9yLiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYmFzZV9hc3NldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIHF1b3RlX2Fzc2V0X2lkOiBUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIGdldCB0aGUgcmF0ZXMgbm9taW5hbGx5LiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgcXVvdGVfYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfY29ubmVjdGVkX2FjY291bnRfcmF0ZXMiLCBwYXJhbV9uYW1lPSJhY2NvdW50X2lkIiwgcGFyYW1fdmFsdWU9YWNjb3VudF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9jb25uZWN0ZWRfYWNjb3VudF9yYXRlcyIsIHBhcmFtX25hbWU9ImJhc2VfYXNzZXRfaWQiLCBwYXJhbV92YWx1ZT1iYXNlX2Fzc2V0X2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2Nvbm5lY3RlZF9hY2NvdW50X3JhdGVzIiwgcGFyYW1fbmFtZT0icXVvdGVfYXNzZXRfaWQiLCBwYXJhbV92YWx1ZT1xdW90ZV9hc3NldF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2Nvbm5lY3RlZF9hY2NvdW50X3JhdGVzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgYWNjb3VudF9pZD1hY2NvdW50X2lkLAogICAgICAgICAgICBiYXNlX2Fzc2V0X2lkPWJhc2VfYXNzZXRfaWQsCiAgICAgICAgICAgIHF1b3RlX2Fzc2V0X2lkPXF1b3RlX2Fzc2V0X2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiQ29ubmVjdGVkQWNjb3VudFJhdGVSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9jb25uZWN0ZWRfYWNjb3VudF9yYXRlc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBhY2NvdW50X2lkLAogICAgICAgIGJhc2VfYXNzZXRfaWQsCiAgICAgICAgcXVvdGVfYXNzZXRfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGFjY291bnRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYWNjb3VudElkJ10gPSBhY2NvdW50X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgYmFzZV9hc3NldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnYmFzZUFzc2V0SWQnLCBiYXNlX2Fzc2V0X2lkKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgcXVvdGVfYXNzZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3F1b3RlQXNzZXRJZCcsIHF1b3RlX2Fzc2V0X2lkKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvY29ubmVjdGVkX2FjY291bnRzL3thY2NvdW50SWR9L3JhdGVzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9jb25uZWN0ZWRfYWNjb3VudF90cmFkaW5nX3BhaXJzKAogICAgICAgIHNlbGYsCiAgICAgICAgYWNjb3VudF9pZDogQW5ub3RhdGVkW3N0ciwgRmllbGQobWluX2xlbmd0aD0xLCBzdHJpY3Q9VHJ1ZSwgZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYWNjb3VudCB0byBmZXRjaCBzdXBwb3J0ZWQgcGFpcnMgZm9yLiIpXSwKICAgICAgICBwYWdlX3NpemU6IEFubm90YXRlZFtPcHRpb25hbFtBbm5vdGF0ZWRbaW50LCBGaWVsZChsZT0xMDAsIHN0cmljdD1UcnVlLCBnZT0xKV1dLCBGaWVsZChkZXNjcmlwdGlvbj0iUGFnZSBzaXplIGZvciBwYWdpbmF0aW9uLiIpXSA9IE5vbmUsCiAgICAgICAgcGFnZV9jdXJzb3I6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iUGFnZSBjdXJzb3IgZm9yIHBhZ2luYXRpb24uIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0Nvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpcnNSZXNwb25zZV1dOgogICAgICAgICIiIkdldCBzdXBwb3J0ZWQgdHJhZGluZyBwYWlycyBmb3IgYW4gYWNjb3VudAoKICAgICAgICBSZXRyaWV2ZSBhbGwgYXNzZXQgdHJhZGluZyBwYWlycyBzdXBwb3J0ZWQgYnkgYSBzcGVjaWZpYyBjb25uZWN0ZWQgYWNjb3VudCwgaW5jbHVkaW5nIHRoZSBwYWlyIHR5cGUgKGBxdW90ZWAsIGBtYXJrZXRgLCBgb25PZmZSYW1wYCkuICAqKk5vdGU6KiogVGhpcyBlbmRwb2ludCBpcyBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLiAKCiAgICAgICAgOnBhcmFtIGFjY291bnRfaWQ6IFRoZSBJRCBvZiB0aGUgYWNjb3VudCB0byBmZXRjaCBzdXBwb3J0ZWQgcGFpcnMgZm9yLiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYWNjb3VudF9pZDogc3RyCiAgICAgICAgOnBhcmFtIHBhZ2Vfc2l6ZTogUGFnZSBzaXplIGZvciBwYWdpbmF0aW9uLgogICAgICAgIDp0eXBlIHBhZ2Vfc2l6ZTogaW50CiAgICAgICAgOnBhcmFtIHBhZ2VfY3Vyc29yOiBQYWdlIGN1cnNvciBmb3IgcGFnaW5hdGlvbi4KICAgICAgICA6dHlwZSBwYWdlX2N1cnNvcjogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9jb25uZWN0ZWRfYWNjb3VudF90cmFkaW5nX3BhaXJzIiwgcGFyYW1fbmFtZT0iYWNjb3VudF9pZCIsIHBhcmFtX3ZhbHVlPWFjY291bnRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9jb25uZWN0ZWRfYWNjb3VudF90cmFkaW5nX3BhaXJzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgYWNjb3VudF9pZD1hY2NvdW50X2lkLAogICAgICAgICAgICBwYWdlX3NpemU9cGFnZV9zaXplLAogICAgICAgICAgICBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkNvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpcnNSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9jb25uZWN0ZWRfYWNjb3VudF90cmFkaW5nX3BhaXJzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGFjY291bnRfaWQsCiAgICAgICAgcGFnZV9zaXplLAogICAgICAgIHBhZ2VfY3Vyc29yLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBhY2NvdW50X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2FjY291bnRJZCddID0gYWNjb3VudF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIHBhZ2Vfc2l6ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZVNpemUnLCBwYWdlX3NpemUpKQogICAgICAgICAgICAKICAgICAgICBpZiBwYWdlX2N1cnNvciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZUN1cnNvcicsIHBhZ2VfY3Vyc29yKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvY29ubmVjdGVkX2FjY291bnRzL3thY2NvdW50SWR9L21hbmlmZXN0L2NhcGFiaWxpdGllcy90cmFkaW5nL3BhaXJzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9jb25uZWN0ZWRfYWNjb3VudHMoCiAgICAgICAgc2VsZiwKICAgICAgICBtYWluX2FjY291bnRzOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0Qm9vbF0sIEZpZWxkKGRlc2NyaXB0aW9uPSJXaGV0aGVyIHRvIGluY2x1ZGUgb25seSBtYWluIGFjY291bnRzIGluIHRoZSByZXNwb25zZS4iKV0gPSBOb25lLAogICAgICAgIHBhZ2Vfc2l6ZTogQW5ub3RhdGVkW09wdGlvbmFsW0Fubm90YXRlZFtpbnQsIEZpZWxkKGxlPTEwMCwgc3RyaWN0PVRydWUsIGdlPTEpXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJQYWdlIHNpemUgZm9yIHBhZ2luYXRpb24uIildID0gTm9uZSwKICAgICAgICBwYWdlX2N1cnNvcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJQYWdlIGN1cnNvciBmb3IgcGFnaW5hdGlvbi4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbQ29ubmVjdGVkQWNjb3VudHNSZXNwb25zZV1dOgogICAgICAgICIiIkdldCBjb25uZWN0ZWQgYWNjb3VudHMKCiAgICAgICAgUmV0dXJucyBhbGwgY29ubmVjdGVkIGFjY291bnRzLiAgKipOb3RlOioqIFRoaXMgZW5kcG9pbnQgaXMgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy4gCgogICAgICAgIDpwYXJhbSBtYWluX2FjY291bnRzOiBXaGV0aGVyIHRvIGluY2x1ZGUgb25seSBtYWluIGFjY291bnRzIGluIHRoZSByZXNwb25zZS4KICAgICAgICA6dHlwZSBtYWluX2FjY291bnRzOiBib29sCiAgICAgICAgOnBhcmFtIHBhZ2Vfc2l6ZTogUGFnZSBzaXplIGZvciBwYWdpbmF0aW9uLgogICAgICAgIDp0eXBlIHBhZ2Vfc2l6ZTogaW50CiAgICAgICAgOnBhcmFtIHBhZ2VfY3Vyc29yOiBQYWdlIGN1cnNvciBmb3IgcGFnaW5hdGlvbi4KICAgICAgICA6dHlwZSBwYWdlX2N1cnNvcjogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2Nvbm5lY3RlZF9hY2NvdW50c19zZXJpYWxpemUoCiAgICAgICAgICAgIG1haW5fYWNjb3VudHM9bWFpbl9hY2NvdW50cywKICAgICAgICAgICAgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwKICAgICAgICAgICAgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJDb25uZWN0ZWRBY2NvdW50c1Jlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2Nvbm5lY3RlZF9hY2NvdW50c19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBtYWluX2FjY291bnRzLAogICAgICAgIHBhZ2Vfc2l6ZSwKICAgICAgICBwYWdlX2N1cnNvciwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgbWFpbl9hY2NvdW50cyBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnbWFpbkFjY291bnRzJywgbWFpbl9hY2NvdW50cykpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2Vfc2l6ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZVNpemUnLCBwYWdlX3NpemUpKQogICAgICAgICAgICAKICAgICAgICBpZiBwYWdlX2N1cnNvciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZUN1cnNvcicsIHBhZ2VfY3Vyc29yKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvY29ubmVjdGVkX2FjY291bnRzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHJlbmFtZV9jb25uZWN0ZWRfYWNjb3VudCgKICAgICAgICBzZWxmLAogICAgICAgIGFjY291bnRfaWQ6IEFubm90YXRlZFtzdHIsIEZpZWxkKG1pbl9sZW5ndGg9MSwgc3RyaWN0PVRydWUsIGRlc2NyaXB0aW9uPSJUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvbm5lY3RlZCBhY2NvdW50IildLAogICAgICAgIHJlbmFtZV9jb25uZWN0ZWRfYWNjb3VudF9yZXF1ZXN0OiBSZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtSZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVzcG9uc2VdXToKICAgICAgICAiIiJSZW5hbWUgQ29ubmVjdGVkIEFjY291bnQKCiAgICAgICAgUmVuYW1lIGEgY29ubmVjdGVkIGFjY291bnQgYnkgYWNjb3VudCBJRC4gICoqTm90ZToqKiBUaGlzIGVuZHBvaW50IGlzIGN1cnJlbnRseSBpbiBiZXRhIGFuZCBtaWdodCBiZSBzdWJqZWN0IHRvIGNoYW5nZXMuIAoKICAgICAgICA6cGFyYW0gYWNjb3VudF9pZDogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb25uZWN0ZWQgYWNjb3VudCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYWNjb3VudF9pZDogc3RyCiAgICAgICAgOnBhcmFtIHJlbmFtZV9jb25uZWN0ZWRfYWNjb3VudF9yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgcmVuYW1lX2Nvbm5lY3RlZF9hY2NvdW50X3JlcXVlc3Q6IFJlbmFtZUNvbm5lY3RlZEFjY291bnRSZXF1ZXN0CiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InJlbmFtZV9jb25uZWN0ZWRfYWNjb3VudCIsIHBhcmFtX25hbWU9ImFjY291bnRfaWQiLCBwYXJhbV92YWx1ZT1hY2NvdW50X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9yZW5hbWVfY29ubmVjdGVkX2FjY291bnRfc2VyaWFsaXplKAogICAgICAgICAgICBhY2NvdW50X2lkPWFjY291bnRfaWQsCiAgICAgICAgICAgIHJlbmFtZV9jb25uZWN0ZWRfYWNjb3VudF9yZXF1ZXN0PXJlbmFtZV9jb25uZWN0ZWRfYWNjb3VudF9yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiUmVuYW1lQ29ubmVjdGVkQWNjb3VudFJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwMCc6ICJDb25uZWN0ZWRBY2NvdW50RXJyb3JSZXNwb25zZSIsCiAgICAgICAgICAgICc0MDEnOiAiQ29ubmVjdGVkQWNjb3VudEVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNDAzJzogIkNvbm5lY3RlZEFjY291bnRFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwNCc6ICJDb25uZWN0ZWRBY2NvdW50RXJyb3JSZXNwb25zZSIsCiAgICAgICAgICAgICc0MDknOiAiQ29ubmVjdGVkQWNjb3VudEVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9yZW5hbWVfY29ubmVjdGVkX2FjY291bnRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgYWNjb3VudF9pZCwKICAgICAgICByZW5hbWVfY29ubmVjdGVkX2FjY291bnRfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGFjY291bnRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYWNjb3VudElkJ10gPSBhY2NvdW50X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgcmVuYW1lX2Nvbm5lY3RlZF9hY2NvdW50X3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHJlbmFtZV9jb25uZWN0ZWRfYWNjb3VudF9yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9jb25uZWN0ZWRfYWNjb3VudHMve2FjY291bnRJZH0vcmVuYW1lJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgo= \ No newline at end of file diff --git a/fireblocks/api/console_user_api.py b/fireblocks/api/console_user_api.py index 1dad6658..36235d1e 100644 --- a/fireblocks/api/console_user_api.py +++ b/fireblocks/api/console_user_api.py @@ -1,319 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing import Optional -from typing_extensions import Annotated -from fireblocks.models.create_console_user import CreateConsoleUser -from fireblocks.models.get_console_users_response import GetConsoleUsersResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class ConsoleUserApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def create_console_user( - self, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - create_console_user: Optional[CreateConsoleUser] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Create console user - - Create console users in your workspace - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. Learn more about Fireblocks Users management in the following [guide](https://developers.fireblocks.com/docs/manage-users).
Endpoint Permission: Admin, Non-Signing Admin. - - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param create_console_user: - :type create_console_user: CreateConsoleUser - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_console_user_serialize( - idempotency_key=idempotency_key, - create_console_user=create_console_user, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': None, - '400': None, - '401': "ErrorResponse", - '403': "ErrorResponse", - '5XX': "ErrorResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_console_user_serialize( - self, - idempotency_key, - create_console_user, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_console_user is not None: - _body_params = create_console_user - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/management/users', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_console_users( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GetConsoleUsersResponse]]: - """Get console users - - Get console users for your workspace. - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions.
Endpoint Permission: Admin, Non-Signing Admin. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_console_users_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GetConsoleUsersResponse", - '401': "ErrorResponse", - '403': "ErrorResponse", - '5XX': "ErrorResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_console_users_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/management/users', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX2NvbnNvbGVfdXNlciBpbXBvcnQgQ3JlYXRlQ29uc29sZVVzZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfY29uc29sZV91c2Vyc19yZXNwb25zZSBpbXBvcnQgR2V0Q29uc29sZVVzZXJzUmVzcG9uc2UKCmZyb20gZmlyZWJsb2Nrcy5hcGlfY2xpZW50IGltcG9ydCBBcGlDbGllbnQsIFJlcXVlc3RTZXJpYWxpemVkCmZyb20gZmlyZWJsb2Nrcy5hcGlfcmVzcG9uc2UgaW1wb3J0IEFwaVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5yZXN0IGltcG9ydCBSRVNUUmVzcG9uc2VUeXBlCmZyb20gZmlyZWJsb2Nrcy52YWxpZGF0aW9uX3V0aWxzIGltcG9ydCB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nCgoKY2xhc3MgQ29uc29sZVVzZXJBcGk6CiAgICAiIiJOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yCiAgICBSZWY6IGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaAoKICAgIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS4KICAgICIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcGlfY2xpZW50PU5vbmUpIC0+IE5vbmU6CiAgICAgICAgaWYgYXBpX2NsaWVudCBpcyBOb25lOgogICAgICAgICAgICBhcGlfY2xpZW50ID0gQXBpQ2xpZW50LmdldF9kZWZhdWx0KCkKICAgICAgICBzZWxmLmFwaV9jbGllbnQgPSBhcGlfY2xpZW50CgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgY3JlYXRlX2NvbnNvbGVfdXNlcigKICAgICAgICBzZWxmLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBjcmVhdGVfY29uc29sZV91c2VyOiBPcHRpb25hbFtDcmVhdGVDb25zb2xlVXNlcl0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTm9uZV1dOgogICAgICAgICIiIkNyZWF0ZSBjb25zb2xlIHVzZXIKCiAgICAgICAgQ3JlYXRlIGNvbnNvbGUgdXNlcnMgaW4geW91ciB3b3Jrc3BhY2UgLSBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgZW5kcG9pbnQgaXMgYXZhaWxhYmxlIG9ubHkgZm9yIEFQSSBrZXlzIHdpdGggQWRtaW4vTm9uIFNpZ25pbmcgQWRtaW4gcGVybWlzc2lvbnMuIExlYXJuIG1vcmUgYWJvdXQgRmlyZWJsb2NrcyBVc2VycyBtYW5hZ2VtZW50IGluIHRoZSBmb2xsb3dpbmcgW2d1aWRlXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vZG9jcy9tYW5hZ2UtdXNlcnMpLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbi4KCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIGNyZWF0ZV9jb25zb2xlX3VzZXI6CiAgICAgICAgOnR5cGUgY3JlYXRlX2NvbnNvbGVfdXNlcjogQ3JlYXRlQ29uc29sZVVzZXIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9jcmVhdGVfY29uc29sZV91c2VyX3NlcmlhbGl6ZSgKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgY3JlYXRlX2NvbnNvbGVfdXNlcj1jcmVhdGVfY29uc29sZV91c2VyLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiBOb25lLAogICAgICAgICAgICAnNDAwJzogTm9uZSwKICAgICAgICAgICAgJzQwMSc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwMyc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzVYWCc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfY3JlYXRlX2NvbnNvbGVfdXNlcl9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgY3JlYXRlX2NvbnNvbGVfdXNlciwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgY3JlYXRlX2NvbnNvbGVfdXNlciBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gY3JlYXRlX2NvbnNvbGVfdXNlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbWFuYWdlbWVudC91c2VycycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfY29uc29sZV91c2VycygKICAgICAgICBzZWxmLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbR2V0Q29uc29sZVVzZXJzUmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgY29uc29sZSB1c2VycwoKICAgICAgICBHZXQgY29uc29sZSB1c2VycyBmb3IgeW91ciB3b3Jrc3BhY2UuIC0gUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGVuZHBvaW50IGlzIGF2YWlsYWJsZSBvbmx5IGZvciBBUEkga2V5cyB3aXRoIEFkbWluL05vbiBTaWduaW5nIEFkbWluIHBlcm1pc3Npb25zLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbi4KCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2NvbnNvbGVfdXNlcnNfc2VyaWFsaXplKAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiR2V0Q29uc29sZVVzZXJzUmVzcG9uc2UiLAogICAgICAgICAgICAnNDAxJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNDAzJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNVhYJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfY29uc29sZV91c2Vyc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbWFuYWdlbWVudC91c2VycycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoK \ No newline at end of file diff --git a/fireblocks/api/contract_interactions_api.py b/fireblocks/api/contract_interactions_api.py index aa812105..4cc1819e 100644 --- a/fireblocks/api/contract_interactions_api.py +++ b/fireblocks/api/contract_interactions_api.py @@ -1,968 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing import List, Optional -from typing_extensions import Annotated -from fireblocks.models.contract_abi_response_dto import ContractAbiResponseDto -from fireblocks.models.contract_address_response import ContractAddressResponse -from fireblocks.models.contract_data_decode_request import ContractDataDecodeRequest -from fireblocks.models.contract_data_decoded_response import ContractDataDecodedResponse -from fireblocks.models.parameter_with_value import ParameterWithValue -from fireblocks.models.read_call_function_dto import ReadCallFunctionDto -from fireblocks.models.transaction_receipt_response import TransactionReceiptResponse -from fireblocks.models.write_call_function_dto import WriteCallFunctionDto -from fireblocks.models.write_call_function_response_dto import WriteCallFunctionResponseDto - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class ContractInteractionsApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def decode_contract_data( - self, - contract_address: Annotated[StrictStr, Field(description="The contract's onchain address")], - base_asset_id: Annotated[StrictStr, Field(description="The blockchain native asset identifier")], - contract_data_decode_request: ContractDataDecodeRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ContractDataDecodedResponse]]: - """Decode a function call data, error, or event log - - Decode a function call data, error, or event log from a deployed contract by blockchain native asset id and contract address. - - :param contract_address: The contract's onchain address (required) - :type contract_address: str - :param base_asset_id: The blockchain native asset identifier (required) - :type base_asset_id: str - :param contract_data_decode_request: (required) - :type contract_data_decode_request: ContractDataDecodeRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="decode_contract_data", param_name="contract_address", param_value=contract_address) - validate_not_empty_string(function_name="decode_contract_data", param_name="base_asset_id", param_value=base_asset_id) - - _param = self._decode_contract_data_serialize( - contract_address=contract_address, - base_asset_id=base_asset_id, - contract_data_decode_request=contract_data_decode_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ContractDataDecodedResponse", - '400': "ContractDataDecodeError", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _decode_contract_data_serialize( - self, - contract_address, - base_asset_id, - contract_data_decode_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if contract_address is not None: - _path_params['contractAddress'] = contract_address - if base_asset_id is not None: - _path_params['baseAssetId'] = base_asset_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if contract_data_decode_request is not None: - _body_params = contract_data_decode_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/decode', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_contract_address( - self, - base_asset_id: Annotated[StrictStr, Field(description="The blockchain base assetId")], - tx_hash: Annotated[StrictStr, Field(description="The transaction hash")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ContractAddressResponse]]: - """Get contract address by transaction hash - - Retrieve the contract address by blockchain native asset ID and transaction hash - - :param base_asset_id: The blockchain base assetId (required) - :type base_asset_id: str - :param tx_hash: The transaction hash (required) - :type tx_hash: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_contract_address", param_name="base_asset_id", param_value=base_asset_id) - validate_not_empty_string(function_name="get_contract_address", param_name="tx_hash", param_value=tx_hash) - - _param = self._get_contract_address_serialize( - base_asset_id=base_asset_id, - tx_hash=tx_hash, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ContractAddressResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_contract_address_serialize( - self, - base_asset_id, - tx_hash, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if base_asset_id is not None: - _path_params['baseAssetId'] = base_asset_id - if tx_hash is not None: - _path_params['txHash'] = tx_hash - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/contract_interactions/base_asset_id/{baseAssetId}/tx_hash/{txHash}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_deployed_contract_abi( - self, - contract_address: Annotated[StrictStr, Field(description="The contract's onchain address")], - base_asset_id: Annotated[StrictStr, Field(description="The blockchain base assetId")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ContractAbiResponseDto]]: - """Return deployed contract's ABI - - Return deployed contract's ABI by blockchain native asset id and contract address.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer. - - :param contract_address: The contract's onchain address (required) - :type contract_address: str - :param base_asset_id: The blockchain base assetId (required) - :type base_asset_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_deployed_contract_abi", param_name="contract_address", param_value=contract_address) - validate_not_empty_string(function_name="get_deployed_contract_abi", param_name="base_asset_id", param_value=base_asset_id) - - _param = self._get_deployed_contract_abi_serialize( - contract_address=contract_address, - base_asset_id=base_asset_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ContractAbiResponseDto", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_deployed_contract_abi_serialize( - self, - contract_address, - base_asset_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if contract_address is not None: - _path_params['contractAddress'] = contract_address - if base_asset_id is not None: - _path_params['baseAssetId'] = base_asset_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/functions', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_transaction_receipt( - self, - base_asset_id: Annotated[StrictStr, Field(description="The blockchain base assetId")], - tx_hash: Annotated[StrictStr, Field(description="The transaction hash")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TransactionReceiptResponse]]: - """Get transaction receipt - - Retrieve the transaction receipt by blockchain native asset ID and transaction hash > **Note** > This functionality is exclusively available for EVM (Ethereum Virtual Machine) compatible chains.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer. - - :param base_asset_id: The blockchain base assetId (required) - :type base_asset_id: str - :param tx_hash: The transaction hash (required) - :type tx_hash: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_transaction_receipt", param_name="base_asset_id", param_value=base_asset_id) - validate_not_empty_string(function_name="get_transaction_receipt", param_name="tx_hash", param_value=tx_hash) - - _param = self._get_transaction_receipt_serialize( - base_asset_id=base_asset_id, - tx_hash=tx_hash, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TransactionReceiptResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_transaction_receipt_serialize( - self, - base_asset_id, - tx_hash, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if base_asset_id is not None: - _path_params['baseAssetId'] = base_asset_id - if tx_hash is not None: - _path_params['txHash'] = tx_hash - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/contract_interactions/base_asset_id/{baseAssetId}/tx_hash/{txHash}/receipt', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def read_call_function( - self, - contract_address: Annotated[StrictStr, Field(description="The contract's onchain address")], - base_asset_id: StrictStr, - read_call_function_dto: ReadCallFunctionDto, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[ParameterWithValue]]]: - """Call a read function on a deployed contract - - Call a read function on a deployed contract by blockchain native asset id and contract address - - :param contract_address: The contract's onchain address (required) - :type contract_address: str - :param base_asset_id: (required) - :type base_asset_id: str - :param read_call_function_dto: (required) - :type read_call_function_dto: ReadCallFunctionDto - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="read_call_function", param_name="contract_address", param_value=contract_address) - validate_not_empty_string(function_name="read_call_function", param_name="base_asset_id", param_value=base_asset_id) - - _param = self._read_call_function_serialize( - contract_address=contract_address, - base_asset_id=base_asset_id, - read_call_function_dto=read_call_function_dto, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "List[ParameterWithValue]", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _read_call_function_serialize( - self, - contract_address, - base_asset_id, - read_call_function_dto, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if contract_address is not None: - _path_params['contractAddress'] = contract_address - if base_asset_id is not None: - _path_params['baseAssetId'] = base_asset_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if read_call_function_dto is not None: - _body_params = read_call_function_dto - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/functions/read', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def write_call_function( - self, - contract_address: Annotated[StrictStr, Field(description="The contract's onchain address")], - base_asset_id: StrictStr, - write_call_function_dto: WriteCallFunctionDto, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[WriteCallFunctionResponseDto]]: - """Call a write function on a deployed contract - - Call a write function on a deployed contract by blockchain native asset id and contract address. This creates an onchain transaction, thus it is an async operation. It returns a transaction id that can be polled for status check - - :param contract_address: The contract's onchain address (required) - :type contract_address: str - :param base_asset_id: (required) - :type base_asset_id: str - :param write_call_function_dto: (required) - :type write_call_function_dto: WriteCallFunctionDto - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="write_call_function", param_name="contract_address", param_value=contract_address) - validate_not_empty_string(function_name="write_call_function", param_name="base_asset_id", param_value=base_asset_id) - - _param = self._write_call_function_serialize( - contract_address=contract_address, - base_asset_id=base_asset_id, - write_call_function_dto=write_call_function_dto, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '202': "WriteCallFunctionResponseDto", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _write_call_function_serialize( - self, - contract_address, - base_asset_id, - write_call_function_dto, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if contract_address is not None: - _path_params['contractAddress'] = contract_address - if base_asset_id is not None: - _path_params['baseAssetId'] = base_asset_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if write_call_function_dto is not None: - _body_params = write_call_function_dto - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/functions/write', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfYWJpX3Jlc3BvbnNlX2R0byBpbXBvcnQgQ29udHJhY3RBYmlSZXNwb25zZUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2FkZHJlc3NfcmVzcG9uc2UgaW1wb3J0IENvbnRyYWN0QWRkcmVzc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfZGF0YV9kZWNvZGVfcmVxdWVzdCBpbXBvcnQgQ29udHJhY3REYXRhRGVjb2RlUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RhdGFfZGVjb2RlZF9yZXNwb25zZSBpbXBvcnQgQ29udHJhY3REYXRhRGVjb2RlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyX3dpdGhfdmFsdWUgaW1wb3J0IFBhcmFtZXRlcldpdGhWYWx1ZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlYWRfY2FsbF9mdW5jdGlvbl9kdG8gaW1wb3J0IFJlYWRDYWxsRnVuY3Rpb25EdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZWNlaXB0X3Jlc3BvbnNlIGltcG9ydCBUcmFuc2FjdGlvblJlY2VpcHRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndyaXRlX2NhbGxfZnVuY3Rpb25fZHRvIGltcG9ydCBXcml0ZUNhbGxGdW5jdGlvbkR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndyaXRlX2NhbGxfZnVuY3Rpb25fcmVzcG9uc2VfZHRvIGltcG9ydCBXcml0ZUNhbGxGdW5jdGlvblJlc3BvbnNlRHRvCgpmcm9tIGZpcmVibG9ja3MuYXBpX2NsaWVudCBpbXBvcnQgQXBpQ2xpZW50LCBSZXF1ZXN0U2VyaWFsaXplZApmcm9tIGZpcmVibG9ja3MuYXBpX3Jlc3BvbnNlIGltcG9ydCBBcGlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MucmVzdCBpbXBvcnQgUkVTVFJlc3BvbnNlVHlwZQpmcm9tIGZpcmVibG9ja3MudmFsaWRhdGlvbl91dGlscyBpbXBvcnQgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZwoKCmNsYXNzIENvbnRyYWN0SW50ZXJhY3Rpb25zQXBpOgogICAgIiIiTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvcgogICAgUmVmOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gKCiAgICBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgYXBpX2NsaWVudD1Ob25lKSAtPiBOb25lOgogICAgICAgIGlmIGFwaV9jbGllbnQgaXMgTm9uZToKICAgICAgICAgICAgYXBpX2NsaWVudCA9IEFwaUNsaWVudC5nZXRfZGVmYXVsdCgpCiAgICAgICAgc2VsZi5hcGlfY2xpZW50ID0gYXBpX2NsaWVudAoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGRlY29kZV9jb250cmFjdF9kYXRhKAogICAgICAgIHNlbGYsCiAgICAgICAgY29udHJhY3RfYWRkcmVzczogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBjb250cmFjdCdzIG9uY2hhaW4gYWRkcmVzcyIpXSwKICAgICAgICBiYXNlX2Fzc2V0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGJsb2NrY2hhaW4gbmF0aXZlIGFzc2V0IGlkZW50aWZpZXIiKV0sCiAgICAgICAgY29udHJhY3RfZGF0YV9kZWNvZGVfcmVxdWVzdDogQ29udHJhY3REYXRhRGVjb2RlUmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtDb250cmFjdERhdGFEZWNvZGVkUmVzcG9uc2VdXToKICAgICAgICAiIiJEZWNvZGUgYSBmdW5jdGlvbiBjYWxsIGRhdGEsIGVycm9yLCBvciBldmVudCBsb2cKCiAgICAgICAgRGVjb2RlIGEgZnVuY3Rpb24gY2FsbCBkYXRhLCBlcnJvciwgb3IgZXZlbnQgbG9nIGZyb20gYSBkZXBsb3llZCBjb250cmFjdCBieSBibG9ja2NoYWluIG5hdGl2ZSBhc3NldCBpZCBhbmQgY29udHJhY3QgYWRkcmVzcy4KCiAgICAgICAgOnBhcmFtIGNvbnRyYWN0X2FkZHJlc3M6IFRoZSBjb250cmFjdCdzIG9uY2hhaW4gYWRkcmVzcyAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY29udHJhY3RfYWRkcmVzczogc3RyCiAgICAgICAgOnBhcmFtIGJhc2VfYXNzZXRfaWQ6IFRoZSBibG9ja2NoYWluIG5hdGl2ZSBhc3NldCBpZGVudGlmaWVyIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBiYXNlX2Fzc2V0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gY29udHJhY3RfZGF0YV9kZWNvZGVfcmVxdWVzdDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGNvbnRyYWN0X2RhdGFfZGVjb2RlX3JlcXVlc3Q6IENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3QKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZGVjb2RlX2NvbnRyYWN0X2RhdGEiLCBwYXJhbV9uYW1lPSJjb250cmFjdF9hZGRyZXNzIiwgcGFyYW1fdmFsdWU9Y29udHJhY3RfYWRkcmVzcykKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImRlY29kZV9jb250cmFjdF9kYXRhIiwgcGFyYW1fbmFtZT0iYmFzZV9hc3NldF9pZCIsIHBhcmFtX3ZhbHVlPWJhc2VfYXNzZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2RlY29kZV9jb250cmFjdF9kYXRhX3NlcmlhbGl6ZSgKICAgICAgICAgICAgY29udHJhY3RfYWRkcmVzcz1jb250cmFjdF9hZGRyZXNzLAogICAgICAgICAgICBiYXNlX2Fzc2V0X2lkPWJhc2VfYXNzZXRfaWQsCiAgICAgICAgICAgIGNvbnRyYWN0X2RhdGFfZGVjb2RlX3JlcXVlc3Q9Y29udHJhY3RfZGF0YV9kZWNvZGVfcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkNvbnRyYWN0RGF0YURlY29kZWRSZXNwb25zZSIsCiAgICAgICAgICAgICc0MDAnOiAiQ29udHJhY3REYXRhRGVjb2RlRXJyb3IiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9kZWNvZGVfY29udHJhY3RfZGF0YV9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBjb250cmFjdF9hZGRyZXNzLAogICAgICAgIGJhc2VfYXNzZXRfaWQsCiAgICAgICAgY29udHJhY3RfZGF0YV9kZWNvZGVfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGNvbnRyYWN0X2FkZHJlc3MgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY29udHJhY3RBZGRyZXNzJ10gPSBjb250cmFjdF9hZGRyZXNzCiAgICAgICAgaWYgYmFzZV9hc3NldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydiYXNlQXNzZXRJZCddID0gYmFzZV9hc3NldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIGNvbnRyYWN0X2RhdGFfZGVjb2RlX3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IGNvbnRyYWN0X2RhdGFfZGVjb2RlX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2NvbnRyYWN0X2ludGVyYWN0aW9ucy9iYXNlX2Fzc2V0X2lkL3tiYXNlQXNzZXRJZH0vY29udHJhY3RfYWRkcmVzcy97Y29udHJhY3RBZGRyZXNzfS9kZWNvZGUnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X2NvbnRyYWN0X2FkZHJlc3MoCiAgICAgICAgc2VsZiwKICAgICAgICBiYXNlX2Fzc2V0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGJsb2NrY2hhaW4gYmFzZSBhc3NldElkIildLAogICAgICAgIHR4X2hhc2g6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdHJhbnNhY3Rpb24gaGFzaCIpXSwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtDb250cmFjdEFkZHJlc3NSZXNwb25zZV1dOgogICAgICAgICIiIkdldCBjb250cmFjdCBhZGRyZXNzIGJ5IHRyYW5zYWN0aW9uIGhhc2gKCiAgICAgICAgUmV0cmlldmUgdGhlIGNvbnRyYWN0IGFkZHJlc3MgYnkgYmxvY2tjaGFpbiBuYXRpdmUgYXNzZXQgSUQgYW5kIHRyYW5zYWN0aW9uIGhhc2gKCiAgICAgICAgOnBhcmFtIGJhc2VfYXNzZXRfaWQ6IFRoZSBibG9ja2NoYWluIGJhc2UgYXNzZXRJZCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYmFzZV9hc3NldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIHR4X2hhc2g6IFRoZSB0cmFuc2FjdGlvbiBoYXNoIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB0eF9oYXNoOiBzdHIKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2NvbnRyYWN0X2FkZHJlc3MiLCBwYXJhbV9uYW1lPSJiYXNlX2Fzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YmFzZV9hc3NldF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9jb250cmFjdF9hZGRyZXNzIiwgcGFyYW1fbmFtZT0idHhfaGFzaCIsIHBhcmFtX3ZhbHVlPXR4X2hhc2gpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9jb250cmFjdF9hZGRyZXNzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgYmFzZV9hc3NldF9pZD1iYXNlX2Fzc2V0X2lkLAogICAgICAgICAgICB0eF9oYXNoPXR4X2hhc2gsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJDb250cmFjdEFkZHJlc3NSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9jb250cmFjdF9hZGRyZXNzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGJhc2VfYXNzZXRfaWQsCiAgICAgICAgdHhfaGFzaCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGJhc2VfYXNzZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYmFzZUFzc2V0SWQnXSA9IGJhc2VfYXNzZXRfaWQKICAgICAgICBpZiB0eF9oYXNoIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3R4SGFzaCddID0gdHhfaGFzaAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvY29udHJhY3RfaW50ZXJhY3Rpb25zL2Jhc2VfYXNzZXRfaWQve2Jhc2VBc3NldElkfS90eF9oYXNoL3t0eEhhc2h9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9kZXBsb3llZF9jb250cmFjdF9hYmkoCiAgICAgICAgc2VsZiwKICAgICAgICBjb250cmFjdF9hZGRyZXNzOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNvbnRyYWN0J3Mgb25jaGFpbiBhZGRyZXNzIildLAogICAgICAgIGJhc2VfYXNzZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQiKV0sCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbQ29udHJhY3RBYmlSZXNwb25zZUR0b11dOgogICAgICAgICIiIlJldHVybiBkZXBsb3llZCBjb250cmFjdCdzIEFCSQoKICAgICAgICBSZXR1cm4gZGVwbG95ZWQgY29udHJhY3QncyBBQkkgYnkgYmxvY2tjaGFpbiBuYXRpdmUgYXNzZXQgaWQgYW5kIGNvbnRyYWN0IGFkZHJlc3MuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIGFuZCBWaWV3ZXIuCgogICAgICAgIDpwYXJhbSBjb250cmFjdF9hZGRyZXNzOiBUaGUgY29udHJhY3QncyBvbmNoYWluIGFkZHJlc3MgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGNvbnRyYWN0X2FkZHJlc3M6IHN0cgogICAgICAgIDpwYXJhbSBiYXNlX2Fzc2V0X2lkOiBUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGJhc2VfYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfZGVwbG95ZWRfY29udHJhY3RfYWJpIiwgcGFyYW1fbmFtZT0iY29udHJhY3RfYWRkcmVzcyIsIHBhcmFtX3ZhbHVlPWNvbnRyYWN0X2FkZHJlc3MpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfZGVwbG95ZWRfY29udHJhY3RfYWJpIiwgcGFyYW1fbmFtZT0iYmFzZV9hc3NldF9pZCIsIHBhcmFtX3ZhbHVlPWJhc2VfYXNzZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9kZXBsb3llZF9jb250cmFjdF9hYmlfc2VyaWFsaXplKAogICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzPWNvbnRyYWN0X2FkZHJlc3MsCiAgICAgICAgICAgIGJhc2VfYXNzZXRfaWQ9YmFzZV9hc3NldF9pZCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkNvbnRyYWN0QWJpUmVzcG9uc2VEdG8iLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfZGVwbG95ZWRfY29udHJhY3RfYWJpX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNvbnRyYWN0X2FkZHJlc3MsCiAgICAgICAgYmFzZV9hc3NldF9pZCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGNvbnRyYWN0X2FkZHJlc3MgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY29udHJhY3RBZGRyZXNzJ10gPSBjb250cmFjdF9hZGRyZXNzCiAgICAgICAgaWYgYmFzZV9hc3NldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydiYXNlQXNzZXRJZCddID0gYmFzZV9hc3NldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvY29udHJhY3RfaW50ZXJhY3Rpb25zL2Jhc2VfYXNzZXRfaWQve2Jhc2VBc3NldElkfS9jb250cmFjdF9hZGRyZXNzL3tjb250cmFjdEFkZHJlc3N9L2Z1bmN0aW9ucycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfdHJhbnNhY3Rpb25fcmVjZWlwdCgKICAgICAgICBzZWxmLAogICAgICAgIGJhc2VfYXNzZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQiKV0sCiAgICAgICAgdHhfaGFzaDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSB0cmFuc2FjdGlvbiBoYXNoIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVHJhbnNhY3Rpb25SZWNlaXB0UmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgdHJhbnNhY3Rpb24gcmVjZWlwdAoKICAgICAgICBSZXRyaWV2ZSB0aGUgdHJhbnNhY3Rpb24gcmVjZWlwdCBieSBibG9ja2NoYWluIG5hdGl2ZSBhc3NldCBJRCBhbmQgdHJhbnNhY3Rpb24gaGFzaCA+ICoqTm90ZSoqID4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIGV4Y2x1c2l2ZWx5IGF2YWlsYWJsZSBmb3IgRVZNIChFdGhlcmV1bSBWaXJ0dWFsIE1hY2hpbmUpIGNvbXBhdGlibGUgY2hhaW5zLiAgPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgYW5kIFZpZXdlci4KCiAgICAgICAgOnBhcmFtIGJhc2VfYXNzZXRfaWQ6IFRoZSBibG9ja2NoYWluIGJhc2UgYXNzZXRJZCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYmFzZV9hc3NldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIHR4X2hhc2g6IFRoZSB0cmFuc2FjdGlvbiBoYXNoIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB0eF9oYXNoOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3RyYW5zYWN0aW9uX3JlY2VpcHQiLCBwYXJhbV9uYW1lPSJiYXNlX2Fzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YmFzZV9hc3NldF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF90cmFuc2FjdGlvbl9yZWNlaXB0IiwgcGFyYW1fbmFtZT0idHhfaGFzaCIsIHBhcmFtX3ZhbHVlPXR4X2hhc2gpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF90cmFuc2FjdGlvbl9yZWNlaXB0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgYmFzZV9hc3NldF9pZD1iYXNlX2Fzc2V0X2lkLAogICAgICAgICAgICB0eF9oYXNoPXR4X2hhc2gsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJUcmFuc2FjdGlvblJlY2VpcHRSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF90cmFuc2FjdGlvbl9yZWNlaXB0X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGJhc2VfYXNzZXRfaWQsCiAgICAgICAgdHhfaGFzaCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgYmFzZV9hc3NldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydiYXNlQXNzZXRJZCddID0gYmFzZV9hc3NldF9pZAogICAgICAgIGlmIHR4X2hhc2ggaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1sndHhIYXNoJ10gPSB0eF9oYXNoCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvY29udHJhY3RfaW50ZXJhY3Rpb25zL2Jhc2VfYXNzZXRfaWQve2Jhc2VBc3NldElkfS90eF9oYXNoL3t0eEhhc2h9L3JlY2VpcHQnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgcmVhZF9jYWxsX2Z1bmN0aW9uKAogICAgICAgIHNlbGYsCiAgICAgICAgY29udHJhY3RfYWRkcmVzczogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBjb250cmFjdCdzIG9uY2hhaW4gYWRkcmVzcyIpXSwKICAgICAgICBiYXNlX2Fzc2V0X2lkOiBTdHJpY3RTdHIsCiAgICAgICAgcmVhZF9jYWxsX2Z1bmN0aW9uX2R0bzogUmVhZENhbGxGdW5jdGlvbkR0bywKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtMaXN0W1BhcmFtZXRlcldpdGhWYWx1ZV1dXToKICAgICAgICAiIiJDYWxsIGEgcmVhZCBmdW5jdGlvbiBvbiBhIGRlcGxveWVkIGNvbnRyYWN0CgogICAgICAgIENhbGwgYSByZWFkIGZ1bmN0aW9uIG9uIGEgZGVwbG95ZWQgY29udHJhY3QgYnkgYmxvY2tjaGFpbiBuYXRpdmUgYXNzZXQgaWQgYW5kIGNvbnRyYWN0IGFkZHJlc3MKCiAgICAgICAgOnBhcmFtIGNvbnRyYWN0X2FkZHJlc3M6IFRoZSBjb250cmFjdCdzIG9uY2hhaW4gYWRkcmVzcyAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY29udHJhY3RfYWRkcmVzczogc3RyCiAgICAgICAgOnBhcmFtIGJhc2VfYXNzZXRfaWQ6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBiYXNlX2Fzc2V0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gcmVhZF9jYWxsX2Z1bmN0aW9uX2R0bzogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHJlYWRfY2FsbF9mdW5jdGlvbl9kdG86IFJlYWRDYWxsRnVuY3Rpb25EdG8KICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0icmVhZF9jYWxsX2Z1bmN0aW9uIiwgcGFyYW1fbmFtZT0iY29udHJhY3RfYWRkcmVzcyIsIHBhcmFtX3ZhbHVlPWNvbnRyYWN0X2FkZHJlc3MpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJyZWFkX2NhbGxfZnVuY3Rpb24iLCBwYXJhbV9uYW1lPSJiYXNlX2Fzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YmFzZV9hc3NldF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fcmVhZF9jYWxsX2Z1bmN0aW9uX3NlcmlhbGl6ZSgKICAgICAgICAgICAgY29udHJhY3RfYWRkcmVzcz1jb250cmFjdF9hZGRyZXNzLAogICAgICAgICAgICBiYXNlX2Fzc2V0X2lkPWJhc2VfYXNzZXRfaWQsCiAgICAgICAgICAgIHJlYWRfY2FsbF9mdW5jdGlvbl9kdG89cmVhZF9jYWxsX2Z1bmN0aW9uX2R0bywKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkxpc3RbUGFyYW1ldGVyV2l0aFZhbHVlXSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3JlYWRfY2FsbF9mdW5jdGlvbl9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBjb250cmFjdF9hZGRyZXNzLAogICAgICAgIGJhc2VfYXNzZXRfaWQsCiAgICAgICAgcmVhZF9jYWxsX2Z1bmN0aW9uX2R0bywKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGNvbnRyYWN0X2FkZHJlc3MgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY29udHJhY3RBZGRyZXNzJ10gPSBjb250cmFjdF9hZGRyZXNzCiAgICAgICAgaWYgYmFzZV9hc3NldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydiYXNlQXNzZXRJZCddID0gYmFzZV9hc3NldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHJlYWRfY2FsbF9mdW5jdGlvbl9kdG8gaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHJlYWRfY2FsbF9mdW5jdGlvbl9kdG8KCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2NvbnRyYWN0X2ludGVyYWN0aW9ucy9iYXNlX2Fzc2V0X2lkL3tiYXNlQXNzZXRJZH0vY29udHJhY3RfYWRkcmVzcy97Y29udHJhY3RBZGRyZXNzfS9mdW5jdGlvbnMvcmVhZCcsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiB3cml0ZV9jYWxsX2Z1bmN0aW9uKAogICAgICAgIHNlbGYsCiAgICAgICAgY29udHJhY3RfYWRkcmVzczogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBjb250cmFjdCdzIG9uY2hhaW4gYWRkcmVzcyIpXSwKICAgICAgICBiYXNlX2Fzc2V0X2lkOiBTdHJpY3RTdHIsCiAgICAgICAgd3JpdGVfY2FsbF9mdW5jdGlvbl9kdG86IFdyaXRlQ2FsbEZ1bmN0aW9uRHRvLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1dyaXRlQ2FsbEZ1bmN0aW9uUmVzcG9uc2VEdG9dXToKICAgICAgICAiIiJDYWxsIGEgd3JpdGUgZnVuY3Rpb24gb24gYSBkZXBsb3llZCBjb250cmFjdAoKICAgICAgICBDYWxsIGEgd3JpdGUgZnVuY3Rpb24gb24gYSBkZXBsb3llZCBjb250cmFjdCBieSBibG9ja2NoYWluIG5hdGl2ZSBhc3NldCBpZCBhbmQgY29udHJhY3QgYWRkcmVzcy4gVGhpcyBjcmVhdGVzIGFuIG9uY2hhaW4gdHJhbnNhY3Rpb24sIHRodXMgaXQgaXMgYW4gYXN5bmMgb3BlcmF0aW9uLiBJdCByZXR1cm5zIGEgdHJhbnNhY3Rpb24gaWQgdGhhdCBjYW4gYmUgcG9sbGVkIGZvciBzdGF0dXMgY2hlY2sKCiAgICAgICAgOnBhcmFtIGNvbnRyYWN0X2FkZHJlc3M6IFRoZSBjb250cmFjdCdzIG9uY2hhaW4gYWRkcmVzcyAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY29udHJhY3RfYWRkcmVzczogc3RyCiAgICAgICAgOnBhcmFtIGJhc2VfYXNzZXRfaWQ6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBiYXNlX2Fzc2V0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gd3JpdGVfY2FsbF9mdW5jdGlvbl9kdG86IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB3cml0ZV9jYWxsX2Z1bmN0aW9uX2R0bzogV3JpdGVDYWxsRnVuY3Rpb25EdG8KICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0id3JpdGVfY2FsbF9mdW5jdGlvbiIsIHBhcmFtX25hbWU9ImNvbnRyYWN0X2FkZHJlc3MiLCBwYXJhbV92YWx1ZT1jb250cmFjdF9hZGRyZXNzKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0id3JpdGVfY2FsbF9mdW5jdGlvbiIsIHBhcmFtX25hbWU9ImJhc2VfYXNzZXRfaWQiLCBwYXJhbV92YWx1ZT1iYXNlX2Fzc2V0X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl93cml0ZV9jYWxsX2Z1bmN0aW9uX3NlcmlhbGl6ZSgKICAgICAgICAgICAgY29udHJhY3RfYWRkcmVzcz1jb250cmFjdF9hZGRyZXNzLAogICAgICAgICAgICBiYXNlX2Fzc2V0X2lkPWJhc2VfYXNzZXRfaWQsCiAgICAgICAgICAgIHdyaXRlX2NhbGxfZnVuY3Rpb25fZHRvPXdyaXRlX2NhbGxfZnVuY3Rpb25fZHRvLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDInOiAiV3JpdGVDYWxsRnVuY3Rpb25SZXNwb25zZUR0byIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3dyaXRlX2NhbGxfZnVuY3Rpb25fc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY29udHJhY3RfYWRkcmVzcywKICAgICAgICBiYXNlX2Fzc2V0X2lkLAogICAgICAgIHdyaXRlX2NhbGxfZnVuY3Rpb25fZHRvLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgY29udHJhY3RfYWRkcmVzcyBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydjb250cmFjdEFkZHJlc3MnXSA9IGNvbnRyYWN0X2FkZHJlc3MKICAgICAgICBpZiBiYXNlX2Fzc2V0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Jhc2VBc3NldElkJ10gPSBiYXNlX2Fzc2V0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgd3JpdGVfY2FsbF9mdW5jdGlvbl9kdG8gaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHdyaXRlX2NhbGxfZnVuY3Rpb25fZHRvCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9jb250cmFjdF9pbnRlcmFjdGlvbnMvYmFzZV9hc3NldF9pZC97YmFzZUFzc2V0SWR9L2NvbnRyYWN0X2FkZHJlc3Mve2NvbnRyYWN0QWRkcmVzc30vZnVuY3Rpb25zL3dyaXRlJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgo= \ No newline at end of file diff --git a/fireblocks/api/contract_templates_api.py b/fireblocks/api/contract_templates_api.py index c21ad9af..3406c5cc 100644 --- a/fireblocks/api/contract_templates_api.py +++ b/fireblocks/api/contract_templates_api.py @@ -1,1197 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictBool, StrictStr, field_validator -from typing import Optional, Union -from typing_extensions import Annotated -from fireblocks.models.abi_function import AbiFunction -from fireblocks.models.contract_deploy_request import ContractDeployRequest -from fireblocks.models.contract_deploy_response import ContractDeployResponse -from fireblocks.models.contract_template_dto import ContractTemplateDto -from fireblocks.models.contract_upload_request import ContractUploadRequest -from fireblocks.models.supported_block_chains_response import SupportedBlockChainsResponse -from fireblocks.models.templates_paginated_response import TemplatesPaginatedResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class ContractTemplatesApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def delete_contract_template_by_id( - self, - contract_template_id: Annotated[StrictStr, Field(description="The Contract Template identifier")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Delete a contract template by id - - Delete a contract by id. allowed only for private contract templates. Notice: it is irreversible! - - :param contract_template_id: The Contract Template identifier (required) - :type contract_template_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="delete_contract_template_by_id", param_name="contract_template_id", param_value=contract_template_id) - - _param = self._delete_contract_template_by_id_serialize( - contract_template_id=contract_template_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '204': None, - '404': "HttpContractDoesNotExistError", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _delete_contract_template_by_id_serialize( - self, - contract_template_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if contract_template_id is not None: - _path_params['contractTemplateId'] = contract_template_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/tokenization/templates/{contractTemplateId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def deploy_contract( - self, - contract_template_id: Annotated[StrictStr, Field(description="The Contract Template identifier")], - contract_deploy_request: ContractDeployRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ContractDeployResponse]]: - """Deploy contract - - Deploy a new contract by contract template id. If you wish to deploy a token (ERC20, ERC721 etc), and create asset please use POST /tokenization - - :param contract_template_id: The Contract Template identifier (required) - :type contract_template_id: str - :param contract_deploy_request: (required) - :type contract_deploy_request: ContractDeployRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="deploy_contract", param_name="contract_template_id", param_value=contract_template_id) - - _param = self._deploy_contract_serialize( - contract_template_id=contract_template_id, - contract_deploy_request=contract_deploy_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '202': "ContractDeployResponse", - '404': "HttpContractDoesNotExistError", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _deploy_contract_serialize( - self, - contract_template_id, - contract_deploy_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if contract_template_id is not None: - _path_params['contractTemplateId'] = contract_template_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if contract_deploy_request is not None: - _body_params = contract_deploy_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/tokenization/templates/{contractTemplateId}/deploy', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_constructor_by_contract_template_id( - self, - contract_template_id: Annotated[StrictStr, Field(description="The Contract Template identifier")], - with_docs: Annotated[Optional[StrictBool], Field(description="true if you want to get the abi with its docs")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[AbiFunction]]: - """Return contract template's constructor - - Return contract template's constructor ABI - - :param contract_template_id: The Contract Template identifier (required) - :type contract_template_id: str - :param with_docs: true if you want to get the abi with its docs - :type with_docs: bool - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_constructor_by_contract_template_id", param_name="contract_template_id", param_value=contract_template_id) - - _param = self._get_constructor_by_contract_template_id_serialize( - contract_template_id=contract_template_id, - with_docs=with_docs, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "AbiFunction", - '404': "HttpContractDoesNotExistError", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_constructor_by_contract_template_id_serialize( - self, - contract_template_id, - with_docs, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if contract_template_id is not None: - _path_params['contractTemplateId'] = contract_template_id - # process the query parameters - if with_docs is not None: - - _query_params.append(('withDocs', with_docs)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tokenization/templates/{contractTemplateId}/constructor', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_contract_template_by_id( - self, - contract_template_id: Annotated[StrictStr, Field(description="The Contract Template identifier")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ContractTemplateDto]]: - """Return contract template by id - - Return detailed information about the contract template - - :param contract_template_id: The Contract Template identifier (required) - :type contract_template_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_contract_template_by_id", param_name="contract_template_id", param_value=contract_template_id) - - _param = self._get_contract_template_by_id_serialize( - contract_template_id=contract_template_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ContractTemplateDto", - '404': "HttpContractDoesNotExistError", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_contract_template_by_id_serialize( - self, - contract_template_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if contract_template_id is not None: - _path_params['contractTemplateId'] = contract_template_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tokenization/templates/{contractTemplateId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_contract_templates( - self, - limit: Annotated[Optional[Union[Annotated[float, Field(le=100, strict=True, ge=1)], Annotated[int, Field(le=100, strict=True, ge=1)]]], Field(description="Items per page (max 100)")] = None, - offset: Annotated[Optional[Union[Annotated[float, Field(strict=True, ge=0)], Annotated[int, Field(strict=True, ge=0)]]], Field(description="Paging offset")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor to get the next page")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=100, strict=True, ge=1)], Annotated[int, Field(le=100, strict=True, ge=1)]]], Field(description="Number of items per page, requesting more then max will return max items")] = None, - type: Annotated[Optional[StrictStr], Field(description="The type of the contract templates you wish to retrieve. Can accept one type, more or none")] = None, - initialization_phase: Annotated[Optional[StrictStr], Field(description="For standalone contracts use ON_DEPLOYMENT and for contracts that are behind proxies use POST_DEPLOYMENT")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TemplatesPaginatedResponse]]: - """List all contract templates - - Return minimal representation of all the contract templates available for the workspace.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param limit: Items per page (max 100) - :type limit: float - :param offset: Paging offset - :type offset: float - :param page_cursor: Page cursor to get the next page - :type page_cursor: str - :param page_size: Number of items per page, requesting more then max will return max items - :type page_size: float - :param type: The type of the contract templates you wish to retrieve. Can accept one type, more or none - :type type: str - :param initialization_phase: For standalone contracts use ON_DEPLOYMENT and for contracts that are behind proxies use POST_DEPLOYMENT - :type initialization_phase: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_contract_templates_serialize( - limit=limit, - offset=offset, - page_cursor=page_cursor, - page_size=page_size, - type=type, - initialization_phase=initialization_phase, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TemplatesPaginatedResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_contract_templates_serialize( - self, - limit, - offset, - page_cursor, - page_size, - type, - initialization_phase, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if limit is not None: - - _query_params.append(('limit', limit)) - - if offset is not None: - - _query_params.append(('offset', offset)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if type is not None: - - _query_params.append(('type', type)) - - if initialization_phase is not None: - - _query_params.append(('initializationPhase', initialization_phase)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tokenization/templates', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_function_abi_by_contract_template_id( - self, - contract_template_id: Annotated[StrictStr, Field(description="The Contract Template identifier")], - function_signature: StrictStr, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[AbiFunction]]: - """Return contract template's function - - Return contract template`s function ABI by signature - - :param contract_template_id: The Contract Template identifier (required) - :type contract_template_id: str - :param function_signature: (required) - :type function_signature: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_function_abi_by_contract_template_id", param_name="contract_template_id", param_value=contract_template_id) - validate_not_empty_string(function_name="get_function_abi_by_contract_template_id", param_name="function_signature", param_value=function_signature) - - _param = self._get_function_abi_by_contract_template_id_serialize( - contract_template_id=contract_template_id, - function_signature=function_signature, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "AbiFunction", - '404': "HttpContractDoesNotExistError", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_function_abi_by_contract_template_id_serialize( - self, - contract_template_id, - function_signature, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if contract_template_id is not None: - _path_params['contractTemplateId'] = contract_template_id - # process the query parameters - if function_signature is not None: - - _query_params.append(('functionSignature', function_signature)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tokenization/templates/{contractTemplateId}/function', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_supported_blockchains_by_template_id( - self, - contract_template_id: Annotated[StrictStr, Field(description="The Contract Template identifier")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SupportedBlockChainsResponse]]: - """Get supported blockchains for the template - - Get supported blockchains for the template - - :param contract_template_id: The Contract Template identifier (required) - :type contract_template_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_supported_blockchains_by_template_id", param_name="contract_template_id", param_value=contract_template_id) - - _param = self._get_supported_blockchains_by_template_id_serialize( - contract_template_id=contract_template_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SupportedBlockChainsResponse", - '404': "HttpContractDoesNotExistError", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_supported_blockchains_by_template_id_serialize( - self, - contract_template_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if contract_template_id is not None: - _path_params['contractTemplateId'] = contract_template_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tokenization/templates/{contractTemplateId}/supported_blockchains', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def upload_contract_template( - self, - contract_upload_request: ContractUploadRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ContractTemplateDto]]: - """Upload contract template - - Upload a new contract template. This contract template will be available for the workspace - - :param contract_upload_request: (required) - :type contract_upload_request: ContractUploadRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._upload_contract_template_serialize( - contract_upload_request=contract_upload_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "ContractTemplateDto", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _upload_contract_template_serialize( - self, - contract_upload_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if contract_upload_request is not None: - _body_params = contract_upload_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/tokenization/templates', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdEJvb2wsIFN0cmljdFN0ciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWJpX2Z1bmN0aW9uIGltcG9ydCBBYmlGdW5jdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RlcGxveV9yZXF1ZXN0IGltcG9ydCBDb250cmFjdERlcGxveVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9kZXBsb3lfcmVzcG9uc2UgaW1wb3J0IENvbnRyYWN0RGVwbG95UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF90ZW1wbGF0ZV9kdG8gaW1wb3J0IENvbnRyYWN0VGVtcGxhdGVEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF91cGxvYWRfcmVxdWVzdCBpbXBvcnQgQ29udHJhY3RVcGxvYWRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3VwcG9ydGVkX2Jsb2NrX2NoYWluc19yZXNwb25zZSBpbXBvcnQgU3VwcG9ydGVkQmxvY2tDaGFpbnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRlbXBsYXRlc19wYWdpbmF0ZWRfcmVzcG9uc2UgaW1wb3J0IFRlbXBsYXRlc1BhZ2luYXRlZFJlc3BvbnNlCgpmcm9tIGZpcmVibG9ja3MuYXBpX2NsaWVudCBpbXBvcnQgQXBpQ2xpZW50LCBSZXF1ZXN0U2VyaWFsaXplZApmcm9tIGZpcmVibG9ja3MuYXBpX3Jlc3BvbnNlIGltcG9ydCBBcGlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MucmVzdCBpbXBvcnQgUkVTVFJlc3BvbnNlVHlwZQpmcm9tIGZpcmVibG9ja3MudmFsaWRhdGlvbl91dGlscyBpbXBvcnQgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZwoKCmNsYXNzIENvbnRyYWN0VGVtcGxhdGVzQXBpOgogICAgIiIiTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvcgogICAgUmVmOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gKCiAgICBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgYXBpX2NsaWVudD1Ob25lKSAtPiBOb25lOgogICAgICAgIGlmIGFwaV9jbGllbnQgaXMgTm9uZToKICAgICAgICAgICAgYXBpX2NsaWVudCA9IEFwaUNsaWVudC5nZXRfZGVmYXVsdCgpCiAgICAgICAgc2VsZi5hcGlfY2xpZW50ID0gYXBpX2NsaWVudAoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGRlbGV0ZV9jb250cmFjdF90ZW1wbGF0ZV9ieV9pZCgKICAgICAgICBzZWxmLAogICAgICAgIGNvbnRyYWN0X3RlbXBsYXRlX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIENvbnRyYWN0IFRlbXBsYXRlIGlkZW50aWZpZXIiKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtOb25lXV06CiAgICAgICAgIiIiRGVsZXRlIGEgY29udHJhY3QgdGVtcGxhdGUgYnkgaWQKCiAgICAgICAgRGVsZXRlIGEgY29udHJhY3QgYnkgaWQuIGFsbG93ZWQgb25seSBmb3IgcHJpdmF0ZSBjb250cmFjdCB0ZW1wbGF0ZXMuIE5vdGljZTogaXQgaXMgaXJyZXZlcnNpYmxlIQoKICAgICAgICA6cGFyYW0gY29udHJhY3RfdGVtcGxhdGVfaWQ6IFRoZSBDb250cmFjdCBUZW1wbGF0ZSBpZGVudGlmaWVyIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjb250cmFjdF90ZW1wbGF0ZV9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImRlbGV0ZV9jb250cmFjdF90ZW1wbGF0ZV9ieV9pZCIsIHBhcmFtX25hbWU9ImNvbnRyYWN0X3RlbXBsYXRlX2lkIiwgcGFyYW1fdmFsdWU9Y29udHJhY3RfdGVtcGxhdGVfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2RlbGV0ZV9jb250cmFjdF90ZW1wbGF0ZV9ieV9pZF9zZXJpYWxpemUoCiAgICAgICAgICAgIGNvbnRyYWN0X3RlbXBsYXRlX2lkPWNvbnRyYWN0X3RlbXBsYXRlX2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDQnOiBOb25lLAogICAgICAgICAgICAnNDA0JzogIkh0dHBDb250cmFjdERvZXNOb3RFeGlzdEVycm9yIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZGVsZXRlX2NvbnRyYWN0X3RlbXBsYXRlX2J5X2lkX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNvbnRyYWN0X3RlbXBsYXRlX2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBjb250cmFjdF90ZW1wbGF0ZV9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydjb250cmFjdFRlbXBsYXRlSWQnXSA9IGNvbnRyYWN0X3RlbXBsYXRlX2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdERUxFVEUnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdG9rZW5pemF0aW9uL3RlbXBsYXRlcy97Y29udHJhY3RUZW1wbGF0ZUlkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBkZXBsb3lfY29udHJhY3QoCiAgICAgICAgc2VsZiwKICAgICAgICBjb250cmFjdF90ZW1wbGF0ZV9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBDb250cmFjdCBUZW1wbGF0ZSBpZGVudGlmaWVyIildLAogICAgICAgIGNvbnRyYWN0X2RlcGxveV9yZXF1ZXN0OiBDb250cmFjdERlcGxveVJlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbQ29udHJhY3REZXBsb3lSZXNwb25zZV1dOgogICAgICAgICIiIkRlcGxveSBjb250cmFjdAoKICAgICAgICBEZXBsb3kgYSBuZXcgY29udHJhY3QgYnkgY29udHJhY3QgdGVtcGxhdGUgaWQuIElmIHlvdSB3aXNoIHRvIGRlcGxveSBhIHRva2VuIChFUkMyMCwgRVJDNzIxIGV0YyksIGFuZCBjcmVhdGUgYXNzZXQgcGxlYXNlIHVzZSBQT1NUIC90b2tlbml6YXRpb24KCiAgICAgICAgOnBhcmFtIGNvbnRyYWN0X3RlbXBsYXRlX2lkOiBUaGUgQ29udHJhY3QgVGVtcGxhdGUgaWRlbnRpZmllciAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY29udHJhY3RfdGVtcGxhdGVfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBjb250cmFjdF9kZXBsb3lfcmVxdWVzdDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGNvbnRyYWN0X2RlcGxveV9yZXF1ZXN0OiBDb250cmFjdERlcGxveVJlcXVlc3QKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZGVwbG95X2NvbnRyYWN0IiwgcGFyYW1fbmFtZT0iY29udHJhY3RfdGVtcGxhdGVfaWQiLCBwYXJhbV92YWx1ZT1jb250cmFjdF90ZW1wbGF0ZV9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZGVwbG95X2NvbnRyYWN0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgY29udHJhY3RfdGVtcGxhdGVfaWQ9Y29udHJhY3RfdGVtcGxhdGVfaWQsCiAgICAgICAgICAgIGNvbnRyYWN0X2RlcGxveV9yZXF1ZXN0PWNvbnRyYWN0X2RlcGxveV9yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDInOiAiQ29udHJhY3REZXBsb3lSZXNwb25zZSIsCiAgICAgICAgICAgICc0MDQnOiAiSHR0cENvbnRyYWN0RG9lc05vdEV4aXN0RXJyb3IiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9kZXBsb3lfY29udHJhY3Rfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY29udHJhY3RfdGVtcGxhdGVfaWQsCiAgICAgICAgY29udHJhY3RfZGVwbG95X3JlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBjb250cmFjdF90ZW1wbGF0ZV9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydjb250cmFjdFRlbXBsYXRlSWQnXSA9IGNvbnRyYWN0X3RlbXBsYXRlX2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgY29udHJhY3RfZGVwbG95X3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IGNvbnRyYWN0X2RlcGxveV9yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90b2tlbml6YXRpb24vdGVtcGxhdGVzL3tjb250cmFjdFRlbXBsYXRlSWR9L2RlcGxveScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfY29uc3RydWN0b3JfYnlfY29udHJhY3RfdGVtcGxhdGVfaWQoCiAgICAgICAgc2VsZiwKICAgICAgICBjb250cmFjdF90ZW1wbGF0ZV9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBDb250cmFjdCBUZW1wbGF0ZSBpZGVudGlmaWVyIildLAogICAgICAgIHdpdGhfZG9jczogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdEJvb2xdLCBGaWVsZChkZXNjcmlwdGlvbj0idHJ1ZSBpZiB5b3Ugd2FudCB0byBnZXQgdGhlIGFiaSB3aXRoIGl0cyBkb2NzIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0FiaUZ1bmN0aW9uXV06CiAgICAgICAgIiIiUmV0dXJuIGNvbnRyYWN0IHRlbXBsYXRlJ3MgY29uc3RydWN0b3IKCiAgICAgICAgUmV0dXJuIGNvbnRyYWN0IHRlbXBsYXRlJ3MgY29uc3RydWN0b3IgQUJJCgogICAgICAgIDpwYXJhbSBjb250cmFjdF90ZW1wbGF0ZV9pZDogVGhlIENvbnRyYWN0IFRlbXBsYXRlIGlkZW50aWZpZXIgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGNvbnRyYWN0X3RlbXBsYXRlX2lkOiBzdHIKICAgICAgICA6cGFyYW0gd2l0aF9kb2NzOiB0cnVlIGlmIHlvdSB3YW50IHRvIGdldCB0aGUgYWJpIHdpdGggaXRzIGRvY3MKICAgICAgICA6dHlwZSB3aXRoX2RvY3M6IGJvb2wKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2NvbnN0cnVjdG9yX2J5X2NvbnRyYWN0X3RlbXBsYXRlX2lkIiwgcGFyYW1fbmFtZT0iY29udHJhY3RfdGVtcGxhdGVfaWQiLCBwYXJhbV92YWx1ZT1jb250cmFjdF90ZW1wbGF0ZV9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2NvbnN0cnVjdG9yX2J5X2NvbnRyYWN0X3RlbXBsYXRlX2lkX3NlcmlhbGl6ZSgKICAgICAgICAgICAgY29udHJhY3RfdGVtcGxhdGVfaWQ9Y29udHJhY3RfdGVtcGxhdGVfaWQsCiAgICAgICAgICAgIHdpdGhfZG9jcz13aXRoX2RvY3MsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJBYmlGdW5jdGlvbiIsCiAgICAgICAgICAgICc0MDQnOiAiSHR0cENvbnRyYWN0RG9lc05vdEV4aXN0RXJyb3IiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfY29uc3RydWN0b3JfYnlfY29udHJhY3RfdGVtcGxhdGVfaWRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY29udHJhY3RfdGVtcGxhdGVfaWQsCiAgICAgICAgd2l0aF9kb2NzLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBjb250cmFjdF90ZW1wbGF0ZV9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydjb250cmFjdFRlbXBsYXRlSWQnXSA9IGNvbnRyYWN0X3RlbXBsYXRlX2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgd2l0aF9kb2NzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCd3aXRoRG9jcycsIHdpdGhfZG9jcykpCiAgICAgICAgICAgIAogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3Rva2VuaXphdGlvbi90ZW1wbGF0ZXMve2NvbnRyYWN0VGVtcGxhdGVJZH0vY29uc3RydWN0b3InLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X2NvbnRyYWN0X3RlbXBsYXRlX2J5X2lkKAogICAgICAgIHNlbGYsCiAgICAgICAgY29udHJhY3RfdGVtcGxhdGVfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgQ29udHJhY3QgVGVtcGxhdGUgaWRlbnRpZmllciIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0NvbnRyYWN0VGVtcGxhdGVEdG9dXToKICAgICAgICAiIiJSZXR1cm4gY29udHJhY3QgdGVtcGxhdGUgYnkgaWQKCiAgICAgICAgUmV0dXJuIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb250cmFjdCB0ZW1wbGF0ZQoKICAgICAgICA6cGFyYW0gY29udHJhY3RfdGVtcGxhdGVfaWQ6IFRoZSBDb250cmFjdCBUZW1wbGF0ZSBpZGVudGlmaWVyIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjb250cmFjdF90ZW1wbGF0ZV9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9jb250cmFjdF90ZW1wbGF0ZV9ieV9pZCIsIHBhcmFtX25hbWU9ImNvbnRyYWN0X3RlbXBsYXRlX2lkIiwgcGFyYW1fdmFsdWU9Y29udHJhY3RfdGVtcGxhdGVfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9jb250cmFjdF90ZW1wbGF0ZV9ieV9pZF9zZXJpYWxpemUoCiAgICAgICAgICAgIGNvbnRyYWN0X3RlbXBsYXRlX2lkPWNvbnRyYWN0X3RlbXBsYXRlX2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiQ29udHJhY3RUZW1wbGF0ZUR0byIsCiAgICAgICAgICAgICc0MDQnOiAiSHR0cENvbnRyYWN0RG9lc05vdEV4aXN0RXJyb3IiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfY29udHJhY3RfdGVtcGxhdGVfYnlfaWRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY29udHJhY3RfdGVtcGxhdGVfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGNvbnRyYWN0X3RlbXBsYXRlX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2NvbnRyYWN0VGVtcGxhdGVJZCddID0gY29udHJhY3RfdGVtcGxhdGVfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90b2tlbml6YXRpb24vdGVtcGxhdGVzL3tjb250cmFjdFRlbXBsYXRlSWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9jb250cmFjdF90ZW1wbGF0ZXMoCiAgICAgICAgc2VsZiwKICAgICAgICBsaW1pdDogQW5ub3RhdGVkW09wdGlvbmFsW1VuaW9uW0Fubm90YXRlZFtmbG9hdCwgRmllbGQobGU9MTAwLCBzdHJpY3Q9VHJ1ZSwgZ2U9MSldLCBBbm5vdGF0ZWRbaW50LCBGaWVsZChsZT0xMDAsIHN0cmljdD1UcnVlLCBnZT0xKV1dXSwgRmllbGQoZGVzY3JpcHRpb249Ikl0ZW1zIHBlciBwYWdlIChtYXggMTAwKSIpXSA9IE5vbmUsCiAgICAgICAgb2Zmc2V0OiBBbm5vdGF0ZWRbT3B0aW9uYWxbVW5pb25bQW5ub3RhdGVkW2Zsb2F0LCBGaWVsZChzdHJpY3Q9VHJ1ZSwgZ2U9MCldLCBBbm5vdGF0ZWRbaW50LCBGaWVsZChzdHJpY3Q9VHJ1ZSwgZ2U9MCldXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJQYWdpbmcgb2Zmc2V0IildID0gTm9uZSwKICAgICAgICBwYWdlX2N1cnNvcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJQYWdlIGN1cnNvciB0byBnZXQgdGhlIG5leHQgcGFnZSIpXSA9IE5vbmUsCiAgICAgICAgcGFnZV9zaXplOiBBbm5vdGF0ZWRbT3B0aW9uYWxbVW5pb25bQW5ub3RhdGVkW2Zsb2F0LCBGaWVsZChsZT0xMDAsIHN0cmljdD1UcnVlLCBnZT0xKV0sIEFubm90YXRlZFtpbnQsIEZpZWxkKGxlPTEwMCwgc3RyaWN0PVRydWUsIGdlPTEpXV1dLCBGaWVsZChkZXNjcmlwdGlvbj0iTnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlLCByZXF1ZXN0aW5nIG1vcmUgdGhlbiBtYXggd2lsbCByZXR1cm4gbWF4IGl0ZW1zIildID0gTm9uZSwKICAgICAgICB0eXBlOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlRoZSB0eXBlIG9mIHRoZSBjb250cmFjdCB0ZW1wbGF0ZXMgeW91IHdpc2ggdG8gcmV0cmlldmUuIENhbiBhY2NlcHQgb25lIHR5cGUsIG1vcmUgb3Igbm9uZSIpXSA9IE5vbmUsCiAgICAgICAgaW5pdGlhbGl6YXRpb25fcGhhc2U6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iRm9yIHN0YW5kYWxvbmUgY29udHJhY3RzIHVzZSBPTl9ERVBMT1lNRU5UIGFuZCBmb3IgY29udHJhY3RzIHRoYXQgYXJlIGJlaGluZCBwcm94aWVzIHVzZSBQT1NUX0RFUExPWU1FTlQiKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVGVtcGxhdGVzUGFnaW5hdGVkUmVzcG9uc2VdXToKICAgICAgICAiIiJMaXN0IGFsbCBjb250cmFjdCB0ZW1wbGF0ZXMKCiAgICAgICAgUmV0dXJuIG1pbmltYWwgcmVwcmVzZW50YXRpb24gb2YgYWxsIHRoZSBjb250cmFjdCB0ZW1wbGF0ZXMgYXZhaWxhYmxlIGZvciB0aGUgd29ya3NwYWNlLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLCBWaWV3ZXIuCgogICAgICAgIDpwYXJhbSBsaW1pdDogSXRlbXMgcGVyIHBhZ2UgKG1heCAxMDApCiAgICAgICAgOnR5cGUgbGltaXQ6IGZsb2F0CiAgICAgICAgOnBhcmFtIG9mZnNldDogUGFnaW5nIG9mZnNldAogICAgICAgIDp0eXBlIG9mZnNldDogZmxvYXQKICAgICAgICA6cGFyYW0gcGFnZV9jdXJzb3I6IFBhZ2UgY3Vyc29yIHRvIGdldCB0aGUgbmV4dCBwYWdlCiAgICAgICAgOnR5cGUgcGFnZV9jdXJzb3I6IHN0cgogICAgICAgIDpwYXJhbSBwYWdlX3NpemU6IE51bWJlciBvZiBpdGVtcyBwZXIgcGFnZSwgcmVxdWVzdGluZyBtb3JlIHRoZW4gbWF4IHdpbGwgcmV0dXJuIG1heCBpdGVtcwogICAgICAgIDp0eXBlIHBhZ2Vfc2l6ZTogZmxvYXQKICAgICAgICA6cGFyYW0gdHlwZTogVGhlIHR5cGUgb2YgdGhlIGNvbnRyYWN0IHRlbXBsYXRlcyB5b3Ugd2lzaCB0byByZXRyaWV2ZS4gQ2FuIGFjY2VwdCBvbmUgdHlwZSwgbW9yZSBvciBub25lCiAgICAgICAgOnR5cGUgdHlwZTogc3RyCiAgICAgICAgOnBhcmFtIGluaXRpYWxpemF0aW9uX3BoYXNlOiBGb3Igc3RhbmRhbG9uZSBjb250cmFjdHMgdXNlIE9OX0RFUExPWU1FTlQgYW5kIGZvciBjb250cmFjdHMgdGhhdCBhcmUgYmVoaW5kIHByb3hpZXMgdXNlIFBPU1RfREVQTE9ZTUVOVAogICAgICAgIDp0eXBlIGluaXRpYWxpemF0aW9uX3BoYXNlOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfY29udHJhY3RfdGVtcGxhdGVzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbGltaXQ9bGltaXQsCiAgICAgICAgICAgIG9mZnNldD1vZmZzZXQsCiAgICAgICAgICAgIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLAogICAgICAgICAgICBwYWdlX3NpemU9cGFnZV9zaXplLAogICAgICAgICAgICB0eXBlPXR5cGUsCiAgICAgICAgICAgIGluaXRpYWxpemF0aW9uX3BoYXNlPWluaXRpYWxpemF0aW9uX3BoYXNlLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiVGVtcGxhdGVzUGFnaW5hdGVkUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfY29udHJhY3RfdGVtcGxhdGVzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGxpbWl0LAogICAgICAgIG9mZnNldCwKICAgICAgICBwYWdlX2N1cnNvciwKICAgICAgICBwYWdlX3NpemUsCiAgICAgICAgdHlwZSwKICAgICAgICBpbml0aWFsaXphdGlvbl9waGFzZSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgbGltaXQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2xpbWl0JywgbGltaXQpKQogICAgICAgICAgICAKICAgICAgICBpZiBvZmZzZXQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ29mZnNldCcsIG9mZnNldCkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2VfY3Vyc29yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlQ3Vyc29yJywgcGFnZV9jdXJzb3IpKQogICAgICAgICAgICAKICAgICAgICBpZiBwYWdlX3NpemUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VTaXplJywgcGFnZV9zaXplKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgndHlwZScsIHR5cGUpKQogICAgICAgICAgICAKICAgICAgICBpZiBpbml0aWFsaXphdGlvbl9waGFzZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnaW5pdGlhbGl6YXRpb25QaGFzZScsIGluaXRpYWxpemF0aW9uX3BoYXNlKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdG9rZW5pemF0aW9uL3RlbXBsYXRlcycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfZnVuY3Rpb25fYWJpX2J5X2NvbnRyYWN0X3RlbXBsYXRlX2lkKAogICAgICAgIHNlbGYsCiAgICAgICAgY29udHJhY3RfdGVtcGxhdGVfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgQ29udHJhY3QgVGVtcGxhdGUgaWRlbnRpZmllciIpXSwKICAgICAgICBmdW5jdGlvbl9zaWduYXR1cmU6IFN0cmljdFN0ciwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0FiaUZ1bmN0aW9uXV06CiAgICAgICAgIiIiUmV0dXJuIGNvbnRyYWN0IHRlbXBsYXRlJ3MgZnVuY3Rpb24KCiAgICAgICAgUmV0dXJuIGNvbnRyYWN0IHRlbXBsYXRlYHMgZnVuY3Rpb24gQUJJIGJ5IHNpZ25hdHVyZQoKICAgICAgICA6cGFyYW0gY29udHJhY3RfdGVtcGxhdGVfaWQ6IFRoZSBDb250cmFjdCBUZW1wbGF0ZSBpZGVudGlmaWVyIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjb250cmFjdF90ZW1wbGF0ZV9pZDogc3RyCiAgICAgICAgOnBhcmFtIGZ1bmN0aW9uX3NpZ25hdHVyZTogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGZ1bmN0aW9uX3NpZ25hdHVyZTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9mdW5jdGlvbl9hYmlfYnlfY29udHJhY3RfdGVtcGxhdGVfaWQiLCBwYXJhbV9uYW1lPSJjb250cmFjdF90ZW1wbGF0ZV9pZCIsIHBhcmFtX3ZhbHVlPWNvbnRyYWN0X3RlbXBsYXRlX2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2Z1bmN0aW9uX2FiaV9ieV9jb250cmFjdF90ZW1wbGF0ZV9pZCIsIHBhcmFtX25hbWU9ImZ1bmN0aW9uX3NpZ25hdHVyZSIsIHBhcmFtX3ZhbHVlPWZ1bmN0aW9uX3NpZ25hdHVyZSkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2Z1bmN0aW9uX2FiaV9ieV9jb250cmFjdF90ZW1wbGF0ZV9pZF9zZXJpYWxpemUoCiAgICAgICAgICAgIGNvbnRyYWN0X3RlbXBsYXRlX2lkPWNvbnRyYWN0X3RlbXBsYXRlX2lkLAogICAgICAgICAgICBmdW5jdGlvbl9zaWduYXR1cmU9ZnVuY3Rpb25fc2lnbmF0dXJlLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiQWJpRnVuY3Rpb24iLAogICAgICAgICAgICAnNDA0JzogIkh0dHBDb250cmFjdERvZXNOb3RFeGlzdEVycm9yIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2Z1bmN0aW9uX2FiaV9ieV9jb250cmFjdF90ZW1wbGF0ZV9pZF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBjb250cmFjdF90ZW1wbGF0ZV9pZCwKICAgICAgICBmdW5jdGlvbl9zaWduYXR1cmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGNvbnRyYWN0X3RlbXBsYXRlX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2NvbnRyYWN0VGVtcGxhdGVJZCddID0gY29udHJhY3RfdGVtcGxhdGVfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiBmdW5jdGlvbl9zaWduYXR1cmUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2Z1bmN0aW9uU2lnbmF0dXJlJywgZnVuY3Rpb25fc2lnbmF0dXJlKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdG9rZW5pemF0aW9uL3RlbXBsYXRlcy97Y29udHJhY3RUZW1wbGF0ZUlkfS9mdW5jdGlvbicsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfc3VwcG9ydGVkX2Jsb2NrY2hhaW5zX2J5X3RlbXBsYXRlX2lkKAogICAgICAgIHNlbGYsCiAgICAgICAgY29udHJhY3RfdGVtcGxhdGVfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgQ29udHJhY3QgVGVtcGxhdGUgaWRlbnRpZmllciIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1N1cHBvcnRlZEJsb2NrQ2hhaW5zUmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgc3VwcG9ydGVkIGJsb2NrY2hhaW5zIGZvciB0aGUgdGVtcGxhdGUKCiAgICAgICAgR2V0IHN1cHBvcnRlZCBibG9ja2NoYWlucyBmb3IgdGhlIHRlbXBsYXRlCgogICAgICAgIDpwYXJhbSBjb250cmFjdF90ZW1wbGF0ZV9pZDogVGhlIENvbnRyYWN0IFRlbXBsYXRlIGlkZW50aWZpZXIgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGNvbnRyYWN0X3RlbXBsYXRlX2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3N1cHBvcnRlZF9ibG9ja2NoYWluc19ieV90ZW1wbGF0ZV9pZCIsIHBhcmFtX25hbWU9ImNvbnRyYWN0X3RlbXBsYXRlX2lkIiwgcGFyYW1fdmFsdWU9Y29udHJhY3RfdGVtcGxhdGVfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9zdXBwb3J0ZWRfYmxvY2tjaGFpbnNfYnlfdGVtcGxhdGVfaWRfc2VyaWFsaXplKAogICAgICAgICAgICBjb250cmFjdF90ZW1wbGF0ZV9pZD1jb250cmFjdF90ZW1wbGF0ZV9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlN1cHBvcnRlZEJsb2NrQ2hhaW5zUmVzcG9uc2UiLAogICAgICAgICAgICAnNDA0JzogIkh0dHBDb250cmFjdERvZXNOb3RFeGlzdEVycm9yIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3N1cHBvcnRlZF9ibG9ja2NoYWluc19ieV90ZW1wbGF0ZV9pZF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBjb250cmFjdF90ZW1wbGF0ZV9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgY29udHJhY3RfdGVtcGxhdGVfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY29udHJhY3RUZW1wbGF0ZUlkJ10gPSBjb250cmFjdF90ZW1wbGF0ZV9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3Rva2VuaXphdGlvbi90ZW1wbGF0ZXMve2NvbnRyYWN0VGVtcGxhdGVJZH0vc3VwcG9ydGVkX2Jsb2NrY2hhaW5zJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHVwbG9hZF9jb250cmFjdF90ZW1wbGF0ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNvbnRyYWN0X3VwbG9hZF9yZXF1ZXN0OiBDb250cmFjdFVwbG9hZFJlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbQ29udHJhY3RUZW1wbGF0ZUR0b11dOgogICAgICAgICIiIlVwbG9hZCBjb250cmFjdCB0ZW1wbGF0ZQoKICAgICAgICBVcGxvYWQgYSBuZXcgY29udHJhY3QgdGVtcGxhdGUuIFRoaXMgY29udHJhY3QgdGVtcGxhdGUgd2lsbCBiZSBhdmFpbGFibGUgZm9yIHRoZSB3b3Jrc3BhY2UKCiAgICAgICAgOnBhcmFtIGNvbnRyYWN0X3VwbG9hZF9yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY29udHJhY3RfdXBsb2FkX3JlcXVlc3Q6IENvbnRyYWN0VXBsb2FkUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3VwbG9hZF9jb250cmFjdF90ZW1wbGF0ZV9zZXJpYWxpemUoCiAgICAgICAgICAgIGNvbnRyYWN0X3VwbG9hZF9yZXF1ZXN0PWNvbnRyYWN0X3VwbG9hZF9yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiAiQ29udHJhY3RUZW1wbGF0ZUR0byIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3VwbG9hZF9jb250cmFjdF90ZW1wbGF0ZV9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBjb250cmFjdF91cGxvYWRfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIGNvbnRyYWN0X3VwbG9hZF9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBjb250cmFjdF91cGxvYWRfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdG9rZW5pemF0aW9uL3RlbXBsYXRlcycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoK \ No newline at end of file diff --git a/fireblocks/api/contracts_api.py b/fireblocks/api/contracts_api.py index 86a14ad0..25838e26 100644 --- a/fireblocks/api/contracts_api.py +++ b/fireblocks/api/contracts_api.py @@ -1,1010 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing import List, Optional -from typing_extensions import Annotated -from fireblocks.models.add_contract_asset_request import AddContractAssetRequest -from fireblocks.models.create_contract_request import CreateContractRequest -from fireblocks.models.external_wallet_asset import ExternalWalletAsset -from fireblocks.models.unmanaged_wallet import UnmanagedWallet - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class ContractsApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def add_contract_asset( - self, - contract_id: Annotated[StrictStr, Field(description="The ID of the contract")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset to add")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - add_contract_asset_request: Optional[AddContractAssetRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ExternalWalletAsset]]: - """Add an asset to a whitelisted contract - - Adds an asset to a whitelisted contract.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param contract_id: The ID of the contract (required) - :type contract_id: str - :param asset_id: The ID of the asset to add (required) - :type asset_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param add_contract_asset_request: - :type add_contract_asset_request: AddContractAssetRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="add_contract_asset", param_name="contract_id", param_value=contract_id) - validate_not_empty_string(function_name="add_contract_asset", param_name="asset_id", param_value=asset_id) - - _param = self._add_contract_asset_serialize( - contract_id=contract_id, - asset_id=asset_id, - idempotency_key=idempotency_key, - add_contract_asset_request=add_contract_asset_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ExternalWalletAsset", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _add_contract_asset_serialize( - self, - contract_id, - asset_id, - idempotency_key, - add_contract_asset_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if contract_id is not None: - _path_params['contractId'] = contract_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if add_contract_asset_request is not None: - _body_params = add_contract_asset_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/contracts/{contractId}/{assetId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_contract( - self, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - create_contract_request: Optional[CreateContractRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[UnmanagedWallet]]: - """Add a contract - - Adds a contract to the workspace whitelist.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param create_contract_request: - :type create_contract_request: CreateContractRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_contract_serialize( - idempotency_key=idempotency_key, - create_contract_request=create_contract_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "UnmanagedWallet", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_contract_serialize( - self, - idempotency_key, - create_contract_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_contract_request is not None: - _body_params = create_contract_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/contracts', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def delete_contract( - self, - contract_id: Annotated[StrictStr, Field(description="The ID of the contract to delete")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Delete a contract - - Deletes a contract by ID.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param contract_id: The ID of the contract to delete (required) - :type contract_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="delete_contract", param_name="contract_id", param_value=contract_id) - - _param = self._delete_contract_serialize( - contract_id=contract_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': None, - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _delete_contract_serialize( - self, - contract_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if contract_id is not None: - _path_params['contractId'] = contract_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/contracts/{contractId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def delete_contract_asset( - self, - contract_id: Annotated[StrictStr, Field(description="The ID of the contract")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset to delete")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Delete an asset from a whitelisted contract - - Deletes a whitelisted contract asset by ID.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param contract_id: The ID of the contract (required) - :type contract_id: str - :param asset_id: The ID of the asset to delete (required) - :type asset_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="delete_contract_asset", param_name="contract_id", param_value=contract_id) - validate_not_empty_string(function_name="delete_contract_asset", param_name="asset_id", param_value=asset_id) - - _param = self._delete_contract_asset_serialize( - contract_id=contract_id, - asset_id=asset_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': None, - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _delete_contract_asset_serialize( - self, - contract_id, - asset_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if contract_id is not None: - _path_params['contractId'] = contract_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/contracts/{contractId}/{assetId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_contract( - self, - contract_id: Annotated[StrictStr, Field(description="The ID of the contract to return")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[UnmanagedWallet]]: - """Find a Specific Whitelisted Contract - - Returns a whitelisted contract by Fireblocks Contract ID.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param contract_id: The ID of the contract to return (required) - :type contract_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_contract", param_name="contract_id", param_value=contract_id) - - _param = self._get_contract_serialize( - contract_id=contract_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "UnmanagedWallet", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_contract_serialize( - self, - contract_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if contract_id is not None: - _path_params['contractId'] = contract_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/contracts/{contractId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_contract_asset( - self, - contract_id: Annotated[StrictStr, Field(description="The ID of the contract")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset to return")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ExternalWalletAsset]]: - """Find a whitelisted contract's asset - - Returns a whitelisted contract's asset by ID.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param contract_id: The ID of the contract (required) - :type contract_id: str - :param asset_id: The ID of the asset to return (required) - :type asset_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_contract_asset", param_name="contract_id", param_value=contract_id) - validate_not_empty_string(function_name="get_contract_asset", param_name="asset_id", param_value=asset_id) - - _param = self._get_contract_asset_serialize( - contract_id=contract_id, - asset_id=asset_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ExternalWalletAsset", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_contract_asset_serialize( - self, - contract_id, - asset_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if contract_id is not None: - _path_params['contractId'] = contract_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/contracts/{contractId}/{assetId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_contracts( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[UnmanagedWallet]]]: - """List Whitelisted Contracts - - Gets a list of whitelisted contracts.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_contracts_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "List[UnmanagedWallet]", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_contracts_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/contracts', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkX2NvbnRyYWN0X2Fzc2V0X3JlcXVlc3QgaW1wb3J0IEFkZENvbnRyYWN0QXNzZXRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX2NvbnRyYWN0X3JlcXVlc3QgaW1wb3J0IENyZWF0ZUNvbnRyYWN0UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX3dhbGxldF9hc3NldCBpbXBvcnQgRXh0ZXJuYWxXYWxsZXRBc3NldApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVubWFuYWdlZF93YWxsZXQgaW1wb3J0IFVubWFuYWdlZFdhbGxldAoKZnJvbSBmaXJlYmxvY2tzLmFwaV9jbGllbnQgaW1wb3J0IEFwaUNsaWVudCwgUmVxdWVzdFNlcmlhbGl6ZWQKZnJvbSBmaXJlYmxvY2tzLmFwaV9yZXNwb25zZSBpbXBvcnQgQXBpUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLnJlc3QgaW1wb3J0IFJFU1RSZXNwb25zZVR5cGUKZnJvbSBmaXJlYmxvY2tzLnZhbGlkYXRpb25fdXRpbHMgaW1wb3J0IHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcKCgpjbGFzcyBDb250cmFjdHNBcGk6CiAgICAiIiJOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yCiAgICBSZWY6IGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaAoKICAgIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS4KICAgICIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcGlfY2xpZW50PU5vbmUpIC0+IE5vbmU6CiAgICAgICAgaWYgYXBpX2NsaWVudCBpcyBOb25lOgogICAgICAgICAgICBhcGlfY2xpZW50ID0gQXBpQ2xpZW50LmdldF9kZWZhdWx0KCkKICAgICAgICBzZWxmLmFwaV9jbGllbnQgPSBhcGlfY2xpZW50CgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgYWRkX2NvbnRyYWN0X2Fzc2V0KAogICAgICAgIHNlbGYsCiAgICAgICAgY29udHJhY3RfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGNvbnRyYWN0IildLAogICAgICAgIGFzc2V0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBhc3NldCB0byBhZGQiKV0sCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIGFkZF9jb250cmFjdF9hc3NldF9yZXF1ZXN0OiBPcHRpb25hbFtBZGRDb250cmFjdEFzc2V0UmVxdWVzdF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbRXh0ZXJuYWxXYWxsZXRBc3NldF1dOgogICAgICAgICIiIkFkZCBhbiBhc3NldCB0byBhIHdoaXRlbGlzdGVkIGNvbnRyYWN0CgogICAgICAgIEFkZHMgYW4gYXNzZXQgdG8gYSB3aGl0ZWxpc3RlZCBjb250cmFjdC4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiAgICAgICAgOnBhcmFtIGNvbnRyYWN0X2lkOiBUaGUgSUQgb2YgdGhlIGNvbnRyYWN0IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjb250cmFjdF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGFzc2V0X2lkOiBUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIGFkZCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBhZGRfY29udHJhY3RfYXNzZXRfcmVxdWVzdDoKICAgICAgICA6dHlwZSBhZGRfY29udHJhY3RfYXNzZXRfcmVxdWVzdDogQWRkQ29udHJhY3RBc3NldFJlcXVlc3QKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iYWRkX2NvbnRyYWN0X2Fzc2V0IiwgcGFyYW1fbmFtZT0iY29udHJhY3RfaWQiLCBwYXJhbV92YWx1ZT1jb250cmFjdF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImFkZF9jb250cmFjdF9hc3NldCIsIHBhcmFtX25hbWU9ImFzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YXNzZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2FkZF9jb250cmFjdF9hc3NldF9zZXJpYWxpemUoCiAgICAgICAgICAgIGNvbnRyYWN0X2lkPWNvbnRyYWN0X2lkLAogICAgICAgICAgICBhc3NldF9pZD1hc3NldF9pZCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgYWRkX2NvbnRyYWN0X2Fzc2V0X3JlcXVlc3Q9YWRkX2NvbnRyYWN0X2Fzc2V0X3JlcXVlc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJFeHRlcm5hbFdhbGxldEFzc2V0IiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfYWRkX2NvbnRyYWN0X2Fzc2V0X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNvbnRyYWN0X2lkLAogICAgICAgIGFzc2V0X2lkLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBhZGRfY29udHJhY3RfYXNzZXRfcmVxdWVzdCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgY29udHJhY3RfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY29udHJhY3RJZCddID0gY29udHJhY3RfaWQKICAgICAgICBpZiBhc3NldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydhc3NldElkJ10gPSBhc3NldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIGFkZF9jb250cmFjdF9hc3NldF9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBhZGRfY29udHJhY3RfYXNzZXRfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvY29udHJhY3RzL3tjb250cmFjdElkfS97YXNzZXRJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgY3JlYXRlX2NvbnRyYWN0KAogICAgICAgIHNlbGYsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIGNyZWF0ZV9jb250cmFjdF9yZXF1ZXN0OiBPcHRpb25hbFtDcmVhdGVDb250cmFjdFJlcXVlc3RdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1VubWFuYWdlZFdhbGxldF1dOgogICAgICAgICIiIkFkZCBhIGNvbnRyYWN0CgogICAgICAgIEFkZHMgYSBjb250cmFjdCB0byB0aGUgd29ya3NwYWNlIHdoaXRlbGlzdC4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIGNyZWF0ZV9jb250cmFjdF9yZXF1ZXN0OgogICAgICAgIDp0eXBlIGNyZWF0ZV9jb250cmFjdF9yZXF1ZXN0OiBDcmVhdGVDb250cmFjdFJlcXVlc3QKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9jcmVhdGVfY29udHJhY3Rfc2VyaWFsaXplKAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBjcmVhdGVfY29udHJhY3RfcmVxdWVzdD1jcmVhdGVfY29udHJhY3RfcmVxdWVzdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlVubWFuYWdlZFdhbGxldCIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2NyZWF0ZV9jb250cmFjdF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgY3JlYXRlX2NvbnRyYWN0X3JlcXVlc3QsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIGNyZWF0ZV9jb250cmFjdF9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBjcmVhdGVfY29udHJhY3RfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvY29udHJhY3RzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGRlbGV0ZV9jb250cmFjdCgKICAgICAgICBzZWxmLAogICAgICAgIGNvbnRyYWN0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBjb250cmFjdCB0byBkZWxldGUiKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtOb25lXV06CiAgICAgICAgIiIiRGVsZXRlIGEgY29udHJhY3QKCiAgICAgICAgRGVsZXRlcyBhIGNvbnRyYWN0IGJ5IElELiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKICAgICAgICA6cGFyYW0gY29udHJhY3RfaWQ6IFRoZSBJRCBvZiB0aGUgY29udHJhY3QgdG8gZGVsZXRlIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjb250cmFjdF9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImRlbGV0ZV9jb250cmFjdCIsIHBhcmFtX25hbWU9ImNvbnRyYWN0X2lkIiwgcGFyYW1fdmFsdWU9Y29udHJhY3RfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2RlbGV0ZV9jb250cmFjdF9zZXJpYWxpemUoCiAgICAgICAgICAgIGNvbnRyYWN0X2lkPWNvbnRyYWN0X2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiBOb25lLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9kZWxldGVfY29udHJhY3Rfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY29udHJhY3RfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGNvbnRyYWN0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2NvbnRyYWN0SWQnXSA9IGNvbnRyYWN0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdERUxFVEUnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvY29udHJhY3RzL3tjb250cmFjdElkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBkZWxldGVfY29udHJhY3RfYXNzZXQoCiAgICAgICAgc2VsZiwKICAgICAgICBjb250cmFjdF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgY29udHJhY3QiKV0sCiAgICAgICAgYXNzZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIGRlbGV0ZSIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW05vbmVdXToKICAgICAgICAiIiJEZWxldGUgYW4gYXNzZXQgZnJvbSBhIHdoaXRlbGlzdGVkIGNvbnRyYWN0CgogICAgICAgIERlbGV0ZXMgYSB3aGl0ZWxpc3RlZCBjb250cmFjdCBhc3NldCBieSBJRC4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiAgICAgICAgOnBhcmFtIGNvbnRyYWN0X2lkOiBUaGUgSUQgb2YgdGhlIGNvbnRyYWN0IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjb250cmFjdF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGFzc2V0X2lkOiBUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIGRlbGV0ZSAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJkZWxldGVfY29udHJhY3RfYXNzZXQiLCBwYXJhbV9uYW1lPSJjb250cmFjdF9pZCIsIHBhcmFtX3ZhbHVlPWNvbnRyYWN0X2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZGVsZXRlX2NvbnRyYWN0X2Fzc2V0IiwgcGFyYW1fbmFtZT0iYXNzZXRfaWQiLCBwYXJhbV92YWx1ZT1hc3NldF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZGVsZXRlX2NvbnRyYWN0X2Fzc2V0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgY29udHJhY3RfaWQ9Y29udHJhY3RfaWQsCiAgICAgICAgICAgIGFzc2V0X2lkPWFzc2V0X2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiBOb25lLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9kZWxldGVfY29udHJhY3RfYXNzZXRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY29udHJhY3RfaWQsCiAgICAgICAgYXNzZXRfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGNvbnRyYWN0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2NvbnRyYWN0SWQnXSA9IGNvbnRyYWN0X2lkCiAgICAgICAgaWYgYXNzZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYXNzZXRJZCddID0gYXNzZXRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0RFTEVURScsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9jb250cmFjdHMve2NvbnRyYWN0SWR9L3thc3NldElkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfY29udHJhY3QoCiAgICAgICAgc2VsZiwKICAgICAgICBjb250cmFjdF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgY29udHJhY3QgdG8gcmV0dXJuIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVW5tYW5hZ2VkV2FsbGV0XV06CiAgICAgICAgIiIiRmluZCBhIFNwZWNpZmljIFdoaXRlbGlzdGVkIENvbnRyYWN0CgogICAgICAgIFJldHVybnMgYSB3aGl0ZWxpc3RlZCBjb250cmFjdCBieSBGaXJlYmxvY2tzIENvbnRyYWN0IElELiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKICAgICAgICA6cGFyYW0gY29udHJhY3RfaWQ6IFRoZSBJRCBvZiB0aGUgY29udHJhY3QgdG8gcmV0dXJuIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjb250cmFjdF9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9jb250cmFjdCIsIHBhcmFtX25hbWU9ImNvbnRyYWN0X2lkIiwgcGFyYW1fdmFsdWU9Y29udHJhY3RfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9jb250cmFjdF9zZXJpYWxpemUoCiAgICAgICAgICAgIGNvbnRyYWN0X2lkPWNvbnRyYWN0X2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiVW5tYW5hZ2VkV2FsbGV0IiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2NvbnRyYWN0X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNvbnRyYWN0X2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBjb250cmFjdF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydjb250cmFjdElkJ10gPSBjb250cmFjdF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2NvbnRyYWN0cy97Y29udHJhY3RJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X2NvbnRyYWN0X2Fzc2V0KAogICAgICAgIHNlbGYsCiAgICAgICAgY29udHJhY3RfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGNvbnRyYWN0IildLAogICAgICAgIGFzc2V0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBhc3NldCB0byByZXR1cm4iKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtFeHRlcm5hbFdhbGxldEFzc2V0XV06CiAgICAgICAgIiIiRmluZCBhIHdoaXRlbGlzdGVkIGNvbnRyYWN0J3MgYXNzZXQKCiAgICAgICAgUmV0dXJucyBhIHdoaXRlbGlzdGVkIGNvbnRyYWN0J3MgYXNzZXQgYnkgSUQuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgogICAgICAgIDpwYXJhbSBjb250cmFjdF9pZDogVGhlIElEIG9mIHRoZSBjb250cmFjdCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY29udHJhY3RfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBhc3NldF9pZDogVGhlIElEIG9mIHRoZSBhc3NldCB0byByZXR1cm4gKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGFzc2V0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2NvbnRyYWN0X2Fzc2V0IiwgcGFyYW1fbmFtZT0iY29udHJhY3RfaWQiLCBwYXJhbV92YWx1ZT1jb250cmFjdF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9jb250cmFjdF9hc3NldCIsIHBhcmFtX25hbWU9ImFzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YXNzZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9jb250cmFjdF9hc3NldF9zZXJpYWxpemUoCiAgICAgICAgICAgIGNvbnRyYWN0X2lkPWNvbnRyYWN0X2lkLAogICAgICAgICAgICBhc3NldF9pZD1hc3NldF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkV4dGVybmFsV2FsbGV0QXNzZXQiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfY29udHJhY3RfYXNzZXRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY29udHJhY3RfaWQsCiAgICAgICAgYXNzZXRfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGNvbnRyYWN0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2NvbnRyYWN0SWQnXSA9IGNvbnRyYWN0X2lkCiAgICAgICAgaWYgYXNzZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYXNzZXRJZCddID0gYXNzZXRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9jb250cmFjdHMve2NvbnRyYWN0SWR9L3thc3NldElkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfY29udHJhY3RzKAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtMaXN0W1VubWFuYWdlZFdhbGxldF1dXToKICAgICAgICAiIiJMaXN0IFdoaXRlbGlzdGVkIENvbnRyYWN0cwoKICAgICAgICBHZXRzIGEgbGlzdCBvZiB3aGl0ZWxpc3RlZCBjb250cmFjdHMuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIFZpZXdlci4KCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2NvbnRyYWN0c19zZXJpYWxpemUoCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJMaXN0W1VubWFuYWdlZFdhbGxldF0iLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfY29udHJhY3RzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9jb250cmFjdHMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCg== \ No newline at end of file diff --git a/fireblocks/api/cosigners_beta_api.py b/fireblocks/api/cosigners_beta_api.py index 7f3d0732..a55fa52f 100644 --- a/fireblocks/api/cosigners_beta_api.py +++ b/fireblocks/api/cosigners_beta_api.py @@ -1,1523 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr, field_validator -from typing import Optional, Union -from typing_extensions import Annotated -from fireblocks.models.add_cosigner_request import AddCosignerRequest -from fireblocks.models.add_cosigner_response import AddCosignerResponse -from fireblocks.models.api_key import ApiKey -from fireblocks.models.api_keys_paginated_response import ApiKeysPaginatedResponse -from fireblocks.models.cosigner import Cosigner -from fireblocks.models.cosigners_paginated_response import CosignersPaginatedResponse -from fireblocks.models.pair_api_key_request import PairApiKeyRequest -from fireblocks.models.pair_api_key_response import PairApiKeyResponse -from fireblocks.models.rename_cosigner import RenameCosigner -from fireblocks.models.status import Status -from fireblocks.models.update_callback_handler_request import UpdateCallbackHandlerRequest -from fireblocks.models.update_callback_handler_response import UpdateCallbackHandlerResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class CosignersBetaApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def add_cosigner( - self, - add_cosigner_request: AddCosignerRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[AddCosignerResponse]]: - """Add cosigner - - Add a new cosigner. The cosigner will be pending pairing until the API key is manually paired
Endpoint Permission: Admin and Non-Signing Admin. - - :param add_cosigner_request: (required) - :type add_cosigner_request: AddCosignerRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._add_cosigner_serialize( - add_cosigner_request=add_cosigner_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "AddCosignerResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _add_cosigner_serialize( - self, - add_cosigner_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if add_cosigner_request is not None: - _body_params = add_cosigner_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/cosigners', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_api_key( - self, - cosigner_id: Annotated[StrictStr, Field(description="The unique identifier of the cosigner")], - api_key_id: Annotated[StrictStr, Field(description="The unique identifier of the API key")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ApiKey]]: - """Get API key - - Get an API key by ID. **Note:** These endpoints are currently in beta and might be subject to changes.
Endpoint Permission: Admin and Non-Signing Admin. - - :param cosigner_id: The unique identifier of the cosigner (required) - :type cosigner_id: str - :param api_key_id: The unique identifier of the API key (required) - :type api_key_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_api_key", param_name="cosigner_id", param_value=cosigner_id) - validate_not_empty_string(function_name="get_api_key", param_name="api_key_id", param_value=api_key_id) - - _param = self._get_api_key_serialize( - cosigner_id=cosigner_id, - api_key_id=api_key_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ApiKey", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_api_key_serialize( - self, - cosigner_id, - api_key_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if cosigner_id is not None: - _path_params['cosignerId'] = cosigner_id - if api_key_id is not None: - _path_params['apiKeyId'] = api_key_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/cosigners/{cosignerId}/api_keys/{apiKeyId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_api_keys( - self, - cosigner_id: Annotated[StrictStr, Field(description="The unique identifier of the cosigner")], - order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering (default DESC)")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Cursor of the required page")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=100, strict=True, ge=1)], Annotated[int, Field(le=100, strict=True, ge=1)]]], Field(description="Maximum number of items in the page")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ApiKeysPaginatedResponse]]: - """Get all API keys - - Get all cosigner paired API keys (paginated). **Note:** These endpoints are currently in beta and might be subject to changes.
Endpoint Permission: Admin and Non-Signing Admin. - - :param cosigner_id: The unique identifier of the cosigner (required) - :type cosigner_id: str - :param order: ASC / DESC ordering (default DESC) - :type order: str - :param page_cursor: Cursor of the required page - :type page_cursor: str - :param page_size: Maximum number of items in the page - :type page_size: float - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_api_keys", param_name="cosigner_id", param_value=cosigner_id) - - _param = self._get_api_keys_serialize( - cosigner_id=cosigner_id, - order=order, - page_cursor=page_cursor, - page_size=page_size, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ApiKeysPaginatedResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_api_keys_serialize( - self, - cosigner_id, - order, - page_cursor, - page_size, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if cosigner_id is not None: - _path_params['cosignerId'] = cosigner_id - # process the query parameters - if order is not None: - - _query_params.append(('order', order)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/cosigners/{cosignerId}/api_keys', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_cosigner( - self, - cosigner_id: Annotated[StrictStr, Field(description="The unique identifier of the cosigner")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[Cosigner]]: - """Get cosigner - - Get a cosigner by ID. **Note:** These endpoints are currently in beta and might be subject to changes.
Endpoint Permission: Admin and Non-Signing Admin. - - :param cosigner_id: The unique identifier of the cosigner (required) - :type cosigner_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_cosigner", param_name="cosigner_id", param_value=cosigner_id) - - _param = self._get_cosigner_serialize( - cosigner_id=cosigner_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "Cosigner", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_cosigner_serialize( - self, - cosigner_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if cosigner_id is not None: - _path_params['cosignerId'] = cosigner_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/cosigners/{cosignerId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_cosigners( - self, - order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering (default DESC)")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Cursor of the required page")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=100, strict=True, ge=1)], Annotated[int, Field(le=100, strict=True, ge=1)]]], Field(description="Maximum number of items in the page")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[CosignersPaginatedResponse]]: - """Get all cosigners - - Get all workspace cosigners (paginated). **Note:** These endpoints are currently in beta and might be subject to changes.
Endpoint Permission: Admin and Non-Signing Admin. - - :param order: ASC / DESC ordering (default DESC) - :type order: str - :param page_cursor: Cursor of the required page - :type page_cursor: str - :param page_size: Maximum number of items in the page - :type page_size: float - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_cosigners_serialize( - order=order, - page_cursor=page_cursor, - page_size=page_size, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "CosignersPaginatedResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_cosigners_serialize( - self, - order, - page_cursor, - page_size, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if order is not None: - - _query_params.append(('order', order)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/cosigners', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_request_status( - self, - cosigner_id: Annotated[StrictStr, Field(description="The unique identifier of the cosigner")], - api_key_id: Annotated[StrictStr, Field(description="The unique identifier of the API key")], - request_id: StrictStr, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[Status]]: - """Get request status - - Get the status of an asynchronous request
Endpoint Permission: Admin and Non-Signing Admin. - - :param cosigner_id: The unique identifier of the cosigner (required) - :type cosigner_id: str - :param api_key_id: The unique identifier of the API key (required) - :type api_key_id: str - :param request_id: (required) - :type request_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_request_status", param_name="cosigner_id", param_value=cosigner_id) - validate_not_empty_string(function_name="get_request_status", param_name="api_key_id", param_value=api_key_id) - validate_not_empty_string(function_name="get_request_status", param_name="request_id", param_value=request_id) - - _param = self._get_request_status_serialize( - cosigner_id=cosigner_id, - api_key_id=api_key_id, - request_id=request_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "Status", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_request_status_serialize( - self, - cosigner_id, - api_key_id, - request_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if cosigner_id is not None: - _path_params['cosignerId'] = cosigner_id - if api_key_id is not None: - _path_params['apiKeyId'] = api_key_id - if request_id is not None: - _path_params['requestId'] = request_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/cosigners/{cosignerId}/api_keys/{apiKeyId}/{requestId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def pair_api_key( - self, - cosigner_id: Annotated[StrictStr, Field(description="The unique identifier of the cosigner")], - api_key_id: Annotated[StrictStr, Field(description="The unique identifier of the API key")], - pair_api_key_request: PairApiKeyRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[PairApiKeyResponse]]: - """Pair API key - - Pair an API key to a cosigner
Endpoint Permission: Admin and Non-Signing Admin. - - :param cosigner_id: The unique identifier of the cosigner (required) - :type cosigner_id: str - :param api_key_id: The unique identifier of the API key (required) - :type api_key_id: str - :param pair_api_key_request: (required) - :type pair_api_key_request: PairApiKeyRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="pair_api_key", param_name="cosigner_id", param_value=cosigner_id) - validate_not_empty_string(function_name="pair_api_key", param_name="api_key_id", param_value=api_key_id) - - _param = self._pair_api_key_serialize( - cosigner_id=cosigner_id, - api_key_id=api_key_id, - pair_api_key_request=pair_api_key_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '202': "PairApiKeyResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _pair_api_key_serialize( - self, - cosigner_id, - api_key_id, - pair_api_key_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if cosigner_id is not None: - _path_params['cosignerId'] = cosigner_id - if api_key_id is not None: - _path_params['apiKeyId'] = api_key_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if pair_api_key_request is not None: - _body_params = pair_api_key_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/cosigners/{cosignerId}/api_keys/{apiKeyId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def rename_cosigner( - self, - cosigner_id: Annotated[StrictStr, Field(description="The unique identifier of the cosigner")], - rename_cosigner: RenameCosigner, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[Cosigner]]: - """Rename cosigner - - Rename a cosigner by ID. **Note:** These endpoints are currently in beta and might be subject to changes.
Endpoint Permission: Admin and Non-Signing Admin. - - :param cosigner_id: The unique identifier of the cosigner (required) - :type cosigner_id: str - :param rename_cosigner: (required) - :type rename_cosigner: RenameCosigner - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="rename_cosigner", param_name="cosigner_id", param_value=cosigner_id) - - _param = self._rename_cosigner_serialize( - cosigner_id=cosigner_id, - rename_cosigner=rename_cosigner, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "Cosigner", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _rename_cosigner_serialize( - self, - cosigner_id, - rename_cosigner, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if cosigner_id is not None: - _path_params['cosignerId'] = cosigner_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - if rename_cosigner is not None: - _body_params = rename_cosigner - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PATCH', - resource_path='/cosigners/{cosignerId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def unpair_api_key( - self, - cosigner_id: Annotated[StrictStr, Field(description="The unique identifier of the cosigner")], - api_key_id: Annotated[StrictStr, Field(description="The unique identifier of the API key")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ApiKey]]: - """Unpair API key - - Unpair an API key from a cosigner
Endpoint Permission: Admin and Non-Signing Admin. - - :param cosigner_id: The unique identifier of the cosigner (required) - :type cosigner_id: str - :param api_key_id: The unique identifier of the API key (required) - :type api_key_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="unpair_api_key", param_name="cosigner_id", param_value=cosigner_id) - validate_not_empty_string(function_name="unpair_api_key", param_name="api_key_id", param_value=api_key_id) - - _param = self._unpair_api_key_serialize( - cosigner_id=cosigner_id, - api_key_id=api_key_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '202': "ApiKey", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _unpair_api_key_serialize( - self, - cosigner_id, - api_key_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if cosigner_id is not None: - _path_params['cosignerId'] = cosigner_id - if api_key_id is not None: - _path_params['apiKeyId'] = api_key_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/cosigners/{cosignerId}/api_keys/{apiKeyId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_callback_handler( - self, - cosigner_id: Annotated[StrictStr, Field(description="The unique identifier of the cosigner")], - api_key_id: Annotated[StrictStr, Field(description="The unique identifier of the API key")], - update_callback_handler_request: UpdateCallbackHandlerRequest, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[UpdateCallbackHandlerResponse]]: - """Update API key callback handler - - Update the callback handler of an API key
Endpoint Permission: Admin and Non-Signing Admin. - - :param cosigner_id: The unique identifier of the cosigner (required) - :type cosigner_id: str - :param api_key_id: The unique identifier of the API key (required) - :type api_key_id: str - :param update_callback_handler_request: (required) - :type update_callback_handler_request: UpdateCallbackHandlerRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="update_callback_handler", param_name="cosigner_id", param_value=cosigner_id) - validate_not_empty_string(function_name="update_callback_handler", param_name="api_key_id", param_value=api_key_id) - - _param = self._update_callback_handler_serialize( - cosigner_id=cosigner_id, - api_key_id=api_key_id, - update_callback_handler_request=update_callback_handler_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '202': "UpdateCallbackHandlerResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_callback_handler_serialize( - self, - cosigner_id, - api_key_id, - update_callback_handler_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if cosigner_id is not None: - _path_params['cosignerId'] = cosigner_id - if api_key_id is not None: - _path_params['apiKeyId'] = api_key_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - if update_callback_handler_request is not None: - _body_params = update_callback_handler_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PATCH', - resource_path='/cosigners/{cosignerId}/api_keys/{apiKeyId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0ciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkX2Nvc2lnbmVyX3JlcXVlc3QgaW1wb3J0IEFkZENvc2lnbmVyUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZF9jb3NpZ25lcl9yZXNwb25zZSBpbXBvcnQgQWRkQ29zaWduZXJSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFwaV9rZXkgaW1wb3J0IEFwaUtleQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFwaV9rZXlzX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgQXBpS2V5c1BhZ2luYXRlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29zaWduZXIgaW1wb3J0IENvc2lnbmVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29zaWduZXJzX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgQ29zaWduZXJzUGFnaW5hdGVkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYWlyX2FwaV9rZXlfcmVxdWVzdCBpbXBvcnQgUGFpckFwaUtleVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYWlyX2FwaV9rZXlfcmVzcG9uc2UgaW1wb3J0IFBhaXJBcGlLZXlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbmFtZV9jb3NpZ25lciBpbXBvcnQgUmVuYW1lQ29zaWduZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zdGF0dXMgaW1wb3J0IFN0YXR1cwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV9jYWxsYmFja19oYW5kbGVyX3JlcXVlc3QgaW1wb3J0IFVwZGF0ZUNhbGxiYWNrSGFuZGxlclJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51cGRhdGVfY2FsbGJhY2tfaGFuZGxlcl9yZXNwb25zZSBpbXBvcnQgVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVzcG9uc2UKCmZyb20gZmlyZWJsb2Nrcy5hcGlfY2xpZW50IGltcG9ydCBBcGlDbGllbnQsIFJlcXVlc3RTZXJpYWxpemVkCmZyb20gZmlyZWJsb2Nrcy5hcGlfcmVzcG9uc2UgaW1wb3J0IEFwaVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5yZXN0IGltcG9ydCBSRVNUUmVzcG9uc2VUeXBlCmZyb20gZmlyZWJsb2Nrcy52YWxpZGF0aW9uX3V0aWxzIGltcG9ydCB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nCgoKY2xhc3MgQ29zaWduZXJzQmV0YUFwaToKICAgICIiIk5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IKICAgIFJlZjogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgogICAgIiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwaV9jbGllbnQ9Tm9uZSkgLT4gTm9uZToKICAgICAgICBpZiBhcGlfY2xpZW50IGlzIE5vbmU6CiAgICAgICAgICAgIGFwaV9jbGllbnQgPSBBcGlDbGllbnQuZ2V0X2RlZmF1bHQoKQogICAgICAgIHNlbGYuYXBpX2NsaWVudCA9IGFwaV9jbGllbnQKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBhZGRfY29zaWduZXIoCiAgICAgICAgc2VsZiwKICAgICAgICBhZGRfY29zaWduZXJfcmVxdWVzdDogQWRkQ29zaWduZXJSZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0FkZENvc2lnbmVyUmVzcG9uc2VdXToKICAgICAgICAiIiJBZGQgY29zaWduZXIKCiAgICAgICAgQWRkIGEgbmV3IGNvc2lnbmVyLiBUaGUgY29zaWduZXIgd2lsbCBiZSBwZW5kaW5nIHBhaXJpbmcgdW50aWwgdGhlIEFQSSBrZXkgaXMgbWFudWFsbHkgcGFpcmVkIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4gYW5kIE5vbi1TaWduaW5nIEFkbWluLgoKICAgICAgICA6cGFyYW0gYWRkX2Nvc2lnbmVyX3JlcXVlc3Q6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhZGRfY29zaWduZXJfcmVxdWVzdDogQWRkQ29zaWduZXJSZXF1ZXN0CiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fYWRkX2Nvc2lnbmVyX3NlcmlhbGl6ZSgKICAgICAgICAgICAgYWRkX2Nvc2lnbmVyX3JlcXVlc3Q9YWRkX2Nvc2lnbmVyX3JlcXVlc3QsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMSc6ICJBZGRDb3NpZ25lclJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfYWRkX2Nvc2lnbmVyX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGFkZF9jb3NpZ25lcl9yZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgYWRkX2Nvc2lnbmVyX3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IGFkZF9jb3NpZ25lcl9yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9jb3NpZ25lcnMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X2FwaV9rZXkoCiAgICAgICAgc2VsZiwKICAgICAgICBjb3NpZ25lcl9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29zaWduZXIiKV0sCiAgICAgICAgYXBpX2tleV9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgQVBJIGtleSIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0FwaUtleV1dOgogICAgICAgICIiIkdldCBBUEkga2V5CgogICAgICAgIEdldCBhbiBBUEkga2V5IGJ5IElELiAqKk5vdGU6KiogVGhlc2UgZW5kcG9pbnRzIGFyZSBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluIGFuZCBOb24tU2lnbmluZyBBZG1pbi4KCiAgICAgICAgOnBhcmFtIGNvc2lnbmVyX2lkOiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvc2lnbmVyIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjb3NpZ25lcl9pZDogc3RyCiAgICAgICAgOnBhcmFtIGFwaV9rZXlfaWQ6IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgQVBJIGtleSAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYXBpX2tleV9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9hcGlfa2V5IiwgcGFyYW1fbmFtZT0iY29zaWduZXJfaWQiLCBwYXJhbV92YWx1ZT1jb3NpZ25lcl9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9hcGlfa2V5IiwgcGFyYW1fbmFtZT0iYXBpX2tleV9pZCIsIHBhcmFtX3ZhbHVlPWFwaV9rZXlfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9hcGlfa2V5X3NlcmlhbGl6ZSgKICAgICAgICAgICAgY29zaWduZXJfaWQ9Y29zaWduZXJfaWQsCiAgICAgICAgICAgIGFwaV9rZXlfaWQ9YXBpX2tleV9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkFwaUtleSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9hcGlfa2V5X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNvc2lnbmVyX2lkLAogICAgICAgIGFwaV9rZXlfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGNvc2lnbmVyX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Nvc2lnbmVySWQnXSA9IGNvc2lnbmVyX2lkCiAgICAgICAgaWYgYXBpX2tleV9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydhcGlLZXlJZCddID0gYXBpX2tleV9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2Nvc2lnbmVycy97Y29zaWduZXJJZH0vYXBpX2tleXMve2FwaUtleUlkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfYXBpX2tleXMoCiAgICAgICAgc2VsZiwKICAgICAgICBjb3NpZ25lcl9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29zaWduZXIiKV0sCiAgICAgICAgb3JkZXI6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQVNDIC8gREVTQyBvcmRlcmluZyAoZGVmYXVsdCBERVNDKSIpXSA9IE5vbmUsCiAgICAgICAgcGFnZV9jdXJzb3I6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQ3Vyc29yIG9mIHRoZSByZXF1aXJlZCBwYWdlIildID0gTm9uZSwKICAgICAgICBwYWdlX3NpemU6IEFubm90YXRlZFtPcHRpb25hbFtVbmlvbltBbm5vdGF0ZWRbZmxvYXQsIEZpZWxkKGxlPTEwMCwgc3RyaWN0PVRydWUsIGdlPTEpXSwgQW5ub3RhdGVkW2ludCwgRmllbGQobGU9MTAwLCBzdHJpY3Q9VHJ1ZSwgZ2U9MSldXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJNYXhpbXVtIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgcGFnZSIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtBcGlLZXlzUGFnaW5hdGVkUmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgYWxsIEFQSSBrZXlzCgogICAgICAgIEdldCBhbGwgY29zaWduZXIgcGFpcmVkIEFQSSBrZXlzIChwYWdpbmF0ZWQpLiAqKk5vdGU6KiogVGhlc2UgZW5kcG9pbnRzIGFyZSBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluIGFuZCBOb24tU2lnbmluZyBBZG1pbi4KCiAgICAgICAgOnBhcmFtIGNvc2lnbmVyX2lkOiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvc2lnbmVyIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjb3NpZ25lcl9pZDogc3RyCiAgICAgICAgOnBhcmFtIG9yZGVyOiBBU0MgLyBERVNDIG9yZGVyaW5nIChkZWZhdWx0IERFU0MpCiAgICAgICAgOnR5cGUgb3JkZXI6IHN0cgogICAgICAgIDpwYXJhbSBwYWdlX2N1cnNvcjogQ3Vyc29yIG9mIHRoZSByZXF1aXJlZCBwYWdlCiAgICAgICAgOnR5cGUgcGFnZV9jdXJzb3I6IHN0cgogICAgICAgIDpwYXJhbSBwYWdlX3NpemU6IE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBwYWdlCiAgICAgICAgOnR5cGUgcGFnZV9zaXplOiBmbG9hdAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfYXBpX2tleXMiLCBwYXJhbV9uYW1lPSJjb3NpZ25lcl9pZCIsIHBhcmFtX3ZhbHVlPWNvc2lnbmVyX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfYXBpX2tleXNfc2VyaWFsaXplKAogICAgICAgICAgICBjb3NpZ25lcl9pZD1jb3NpZ25lcl9pZCwKICAgICAgICAgICAgb3JkZXI9b3JkZXIsCiAgICAgICAgICAgIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLAogICAgICAgICAgICBwYWdlX3NpemU9cGFnZV9zaXplLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiQXBpS2V5c1BhZ2luYXRlZFJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2FwaV9rZXlzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNvc2lnbmVyX2lkLAogICAgICAgIG9yZGVyLAogICAgICAgIHBhZ2VfY3Vyc29yLAogICAgICAgIHBhZ2Vfc2l6ZSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgY29zaWduZXJfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY29zaWduZXJJZCddID0gY29zaWduZXJfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiBvcmRlciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnb3JkZXInLCBvcmRlcikpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2VfY3Vyc29yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlQ3Vyc29yJywgcGFnZV9jdXJzb3IpKQogICAgICAgICAgICAKICAgICAgICBpZiBwYWdlX3NpemUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VTaXplJywgcGFnZV9zaXplKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvY29zaWduZXJzL3tjb3NpZ25lcklkfS9hcGlfa2V5cycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfY29zaWduZXIoCiAgICAgICAgc2VsZiwKICAgICAgICBjb3NpZ25lcl9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29zaWduZXIiKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtDb3NpZ25lcl1dOgogICAgICAgICIiIkdldCBjb3NpZ25lcgoKICAgICAgICBHZXQgYSBjb3NpZ25lciBieSBJRC4gKipOb3RlOioqIFRoZXNlIGVuZHBvaW50cyBhcmUgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiBhbmQgTm9uLVNpZ25pbmcgQWRtaW4uCgogICAgICAgIDpwYXJhbSBjb3NpZ25lcl9pZDogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb3NpZ25lciAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY29zaWduZXJfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfY29zaWduZXIiLCBwYXJhbV9uYW1lPSJjb3NpZ25lcl9pZCIsIHBhcmFtX3ZhbHVlPWNvc2lnbmVyX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfY29zaWduZXJfc2VyaWFsaXplKAogICAgICAgICAgICBjb3NpZ25lcl9pZD1jb3NpZ25lcl9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkNvc2lnbmVyIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2Nvc2lnbmVyX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNvc2lnbmVyX2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBjb3NpZ25lcl9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydjb3NpZ25lcklkJ10gPSBjb3NpZ25lcl9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2Nvc2lnbmVycy97Y29zaWduZXJJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X2Nvc2lnbmVycygKICAgICAgICBzZWxmLAogICAgICAgIG9yZGVyOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkFTQyAvIERFU0Mgb3JkZXJpbmcgKGRlZmF1bHQgREVTQykiKV0gPSBOb25lLAogICAgICAgIHBhZ2VfY3Vyc29yOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkN1cnNvciBvZiB0aGUgcmVxdWlyZWQgcGFnZSIpXSA9IE5vbmUsCiAgICAgICAgcGFnZV9zaXplOiBBbm5vdGF0ZWRbT3B0aW9uYWxbVW5pb25bQW5ub3RhdGVkW2Zsb2F0LCBGaWVsZChsZT0xMDAsIHN0cmljdD1UcnVlLCBnZT0xKV0sIEFubm90YXRlZFtpbnQsIEZpZWxkKGxlPTEwMCwgc3RyaWN0PVRydWUsIGdlPTEpXV1dLCBGaWVsZChkZXNjcmlwdGlvbj0iTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgaW4gdGhlIHBhZ2UiKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbQ29zaWduZXJzUGFnaW5hdGVkUmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgYWxsIGNvc2lnbmVycwoKICAgICAgICBHZXQgYWxsIHdvcmtzcGFjZSBjb3NpZ25lcnMgKHBhZ2luYXRlZCkuICoqTm90ZToqKiBUaGVzZSBlbmRwb2ludHMgYXJlIGN1cnJlbnRseSBpbiBiZXRhIGFuZCBtaWdodCBiZSBzdWJqZWN0IHRvIGNoYW5nZXMuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4gYW5kIE5vbi1TaWduaW5nIEFkbWluLgoKICAgICAgICA6cGFyYW0gb3JkZXI6IEFTQyAvIERFU0Mgb3JkZXJpbmcgKGRlZmF1bHQgREVTQykKICAgICAgICA6dHlwZSBvcmRlcjogc3RyCiAgICAgICAgOnBhcmFtIHBhZ2VfY3Vyc29yOiBDdXJzb3Igb2YgdGhlIHJlcXVpcmVkIHBhZ2UKICAgICAgICA6dHlwZSBwYWdlX2N1cnNvcjogc3RyCiAgICAgICAgOnBhcmFtIHBhZ2Vfc2l6ZTogTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgaW4gdGhlIHBhZ2UKICAgICAgICA6dHlwZSBwYWdlX3NpemU6IGZsb2F0CiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2Nvc2lnbmVyc19zZXJpYWxpemUoCiAgICAgICAgICAgIG9yZGVyPW9yZGVyLAogICAgICAgICAgICBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwKICAgICAgICAgICAgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkNvc2lnbmVyc1BhZ2luYXRlZFJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2Nvc2lnbmVyc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBvcmRlciwKICAgICAgICBwYWdlX2N1cnNvciwKICAgICAgICBwYWdlX3NpemUsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIG9yZGVyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdvcmRlcicsIG9yZGVyKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgcGFnZV9jdXJzb3IgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VDdXJzb3InLCBwYWdlX2N1cnNvcikpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2Vfc2l6ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZVNpemUnLCBwYWdlX3NpemUpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9jb3NpZ25lcnMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X3JlcXVlc3Rfc3RhdHVzKAogICAgICAgIHNlbGYsCiAgICAgICAgY29zaWduZXJfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvc2lnbmVyIildLAogICAgICAgIGFwaV9rZXlfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIEFQSSBrZXkiKV0sCiAgICAgICAgcmVxdWVzdF9pZDogU3RyaWN0U3RyLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbU3RhdHVzXV06CiAgICAgICAgIiIiR2V0IHJlcXVlc3Qgc3RhdHVzCgogICAgICAgIEdldCB0aGUgc3RhdHVzIG9mIGFuIGFzeW5jaHJvbm91cyByZXF1ZXN0IDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4gYW5kIE5vbi1TaWduaW5nIEFkbWluLgoKICAgICAgICA6cGFyYW0gY29zaWduZXJfaWQ6IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29zaWduZXIgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGNvc2lnbmVyX2lkOiBzdHIKICAgICAgICA6cGFyYW0gYXBpX2tleV9pZDogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBBUEkga2V5IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhcGlfa2V5X2lkOiBzdHIKICAgICAgICA6cGFyYW0gcmVxdWVzdF9pZDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHJlcXVlc3RfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfcmVxdWVzdF9zdGF0dXMiLCBwYXJhbV9uYW1lPSJjb3NpZ25lcl9pZCIsIHBhcmFtX3ZhbHVlPWNvc2lnbmVyX2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3JlcXVlc3Rfc3RhdHVzIiwgcGFyYW1fbmFtZT0iYXBpX2tleV9pZCIsIHBhcmFtX3ZhbHVlPWFwaV9rZXlfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfcmVxdWVzdF9zdGF0dXMiLCBwYXJhbV9uYW1lPSJyZXF1ZXN0X2lkIiwgcGFyYW1fdmFsdWU9cmVxdWVzdF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X3JlcXVlc3Rfc3RhdHVzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgY29zaWduZXJfaWQ9Y29zaWduZXJfaWQsCiAgICAgICAgICAgIGFwaV9rZXlfaWQ9YXBpX2tleV9pZCwKICAgICAgICAgICAgcmVxdWVzdF9pZD1yZXF1ZXN0X2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiU3RhdHVzIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3JlcXVlc3Rfc3RhdHVzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNvc2lnbmVyX2lkLAogICAgICAgIGFwaV9rZXlfaWQsCiAgICAgICAgcmVxdWVzdF9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgY29zaWduZXJfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY29zaWduZXJJZCddID0gY29zaWduZXJfaWQKICAgICAgICBpZiBhcGlfa2V5X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2FwaUtleUlkJ10gPSBhcGlfa2V5X2lkCiAgICAgICAgaWYgcmVxdWVzdF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydyZXF1ZXN0SWQnXSA9IHJlcXVlc3RfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9jb3NpZ25lcnMve2Nvc2lnbmVySWR9L2FwaV9rZXlzL3thcGlLZXlJZH0ve3JlcXVlc3RJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgcGFpcl9hcGlfa2V5KAogICAgICAgIHNlbGYsCiAgICAgICAgY29zaWduZXJfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvc2lnbmVyIildLAogICAgICAgIGFwaV9rZXlfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIEFQSSBrZXkiKV0sCiAgICAgICAgcGFpcl9hcGlfa2V5X3JlcXVlc3Q6IFBhaXJBcGlLZXlSZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1BhaXJBcGlLZXlSZXNwb25zZV1dOgogICAgICAgICIiIlBhaXIgQVBJIGtleQoKICAgICAgICBQYWlyIGFuIEFQSSBrZXkgdG8gYSBjb3NpZ25lciA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluIGFuZCBOb24tU2lnbmluZyBBZG1pbi4KCiAgICAgICAgOnBhcmFtIGNvc2lnbmVyX2lkOiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvc2lnbmVyIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjb3NpZ25lcl9pZDogc3RyCiAgICAgICAgOnBhcmFtIGFwaV9rZXlfaWQ6IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgQVBJIGtleSAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYXBpX2tleV9pZDogc3RyCiAgICAgICAgOnBhcmFtIHBhaXJfYXBpX2tleV9yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgcGFpcl9hcGlfa2V5X3JlcXVlc3Q6IFBhaXJBcGlLZXlSZXF1ZXN0CiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InBhaXJfYXBpX2tleSIsIHBhcmFtX25hbWU9ImNvc2lnbmVyX2lkIiwgcGFyYW1fdmFsdWU9Y29zaWduZXJfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJwYWlyX2FwaV9rZXkiLCBwYXJhbV9uYW1lPSJhcGlfa2V5X2lkIiwgcGFyYW1fdmFsdWU9YXBpX2tleV9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fcGFpcl9hcGlfa2V5X3NlcmlhbGl6ZSgKICAgICAgICAgICAgY29zaWduZXJfaWQ9Y29zaWduZXJfaWQsCiAgICAgICAgICAgIGFwaV9rZXlfaWQ9YXBpX2tleV9pZCwKICAgICAgICAgICAgcGFpcl9hcGlfa2V5X3JlcXVlc3Q9cGFpcl9hcGlfa2V5X3JlcXVlc3QsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMic6ICJQYWlyQXBpS2V5UmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9wYWlyX2FwaV9rZXlfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY29zaWduZXJfaWQsCiAgICAgICAgYXBpX2tleV9pZCwKICAgICAgICBwYWlyX2FwaV9rZXlfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGNvc2lnbmVyX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Nvc2lnbmVySWQnXSA9IGNvc2lnbmVyX2lkCiAgICAgICAgaWYgYXBpX2tleV9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydhcGlLZXlJZCddID0gYXBpX2tleV9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHBhaXJfYXBpX2tleV9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBwYWlyX2FwaV9rZXlfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BVVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9jb3NpZ25lcnMve2Nvc2lnbmVySWR9L2FwaV9rZXlzL3thcGlLZXlJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgcmVuYW1lX2Nvc2lnbmVyKAogICAgICAgIHNlbGYsCiAgICAgICAgY29zaWduZXJfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvc2lnbmVyIildLAogICAgICAgIHJlbmFtZV9jb3NpZ25lcjogUmVuYW1lQ29zaWduZXIsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtDb3NpZ25lcl1dOgogICAgICAgICIiIlJlbmFtZSBjb3NpZ25lcgoKICAgICAgICBSZW5hbWUgYSBjb3NpZ25lciBieSBJRC4gKipOb3RlOioqIFRoZXNlIGVuZHBvaW50cyBhcmUgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiBhbmQgTm9uLVNpZ25pbmcgQWRtaW4uCgogICAgICAgIDpwYXJhbSBjb3NpZ25lcl9pZDogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb3NpZ25lciAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY29zaWduZXJfaWQ6IHN0cgogICAgICAgIDpwYXJhbSByZW5hbWVfY29zaWduZXI6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSByZW5hbWVfY29zaWduZXI6IFJlbmFtZUNvc2lnbmVyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InJlbmFtZV9jb3NpZ25lciIsIHBhcmFtX25hbWU9ImNvc2lnbmVyX2lkIiwgcGFyYW1fdmFsdWU9Y29zaWduZXJfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3JlbmFtZV9jb3NpZ25lcl9zZXJpYWxpemUoCiAgICAgICAgICAgIGNvc2lnbmVyX2lkPWNvc2lnbmVyX2lkLAogICAgICAgICAgICByZW5hbWVfY29zaWduZXI9cmVuYW1lX2Nvc2lnbmVyLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiQ29zaWduZXIiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9yZW5hbWVfY29zaWduZXJfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY29zaWduZXJfaWQsCiAgICAgICAgcmVuYW1lX2Nvc2lnbmVyLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBjb3NpZ25lcl9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydjb3NpZ25lcklkJ10gPSBjb3NpZ25lcl9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiByZW5hbWVfY29zaWduZXIgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHJlbmFtZV9jb3NpZ25lcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BBVENIJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2Nvc2lnbmVycy97Y29zaWduZXJJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgdW5wYWlyX2FwaV9rZXkoCiAgICAgICAgc2VsZiwKICAgICAgICBjb3NpZ25lcl9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29zaWduZXIiKV0sCiAgICAgICAgYXBpX2tleV9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgQVBJIGtleSIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0FwaUtleV1dOgogICAgICAgICIiIlVucGFpciBBUEkga2V5CgogICAgICAgIFVucGFpciBhbiBBUEkga2V5IGZyb20gYSBjb3NpZ25lciA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluIGFuZCBOb24tU2lnbmluZyBBZG1pbi4KCiAgICAgICAgOnBhcmFtIGNvc2lnbmVyX2lkOiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvc2lnbmVyIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjb3NpZ25lcl9pZDogc3RyCiAgICAgICAgOnBhcmFtIGFwaV9rZXlfaWQ6IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgQVBJIGtleSAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYXBpX2tleV9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InVucGFpcl9hcGlfa2V5IiwgcGFyYW1fbmFtZT0iY29zaWduZXJfaWQiLCBwYXJhbV92YWx1ZT1jb3NpZ25lcl9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InVucGFpcl9hcGlfa2V5IiwgcGFyYW1fbmFtZT0iYXBpX2tleV9pZCIsIHBhcmFtX3ZhbHVlPWFwaV9rZXlfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3VucGFpcl9hcGlfa2V5X3NlcmlhbGl6ZSgKICAgICAgICAgICAgY29zaWduZXJfaWQ9Y29zaWduZXJfaWQsCiAgICAgICAgICAgIGFwaV9rZXlfaWQ9YXBpX2tleV9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAyJzogIkFwaUtleSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3VucGFpcl9hcGlfa2V5X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNvc2lnbmVyX2lkLAogICAgICAgIGFwaV9rZXlfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGNvc2lnbmVyX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Nvc2lnbmVySWQnXSA9IGNvc2lnbmVyX2lkCiAgICAgICAgaWYgYXBpX2tleV9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydhcGlLZXlJZCddID0gYXBpX2tleV9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nREVMRVRFJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2Nvc2lnbmVycy97Y29zaWduZXJJZH0vYXBpX2tleXMve2FwaUtleUlkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiB1cGRhdGVfY2FsbGJhY2tfaGFuZGxlcigKICAgICAgICBzZWxmLAogICAgICAgIGNvc2lnbmVyX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb3NpZ25lciIpXSwKICAgICAgICBhcGlfa2V5X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBBUEkga2V5IildLAogICAgICAgIHVwZGF0ZV9jYWxsYmFja19oYW5kbGVyX3JlcXVlc3Q6IFVwZGF0ZUNhbGxiYWNrSGFuZGxlclJlcXVlc3QsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXNwb25zZV1dOgogICAgICAgICIiIlVwZGF0ZSBBUEkga2V5IGNhbGxiYWNrIGhhbmRsZXIKCiAgICAgICAgVXBkYXRlIHRoZSBjYWxsYmFjayBoYW5kbGVyIG9mIGFuIEFQSSBrZXkgPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiBhbmQgTm9uLVNpZ25pbmcgQWRtaW4uCgogICAgICAgIDpwYXJhbSBjb3NpZ25lcl9pZDogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb3NpZ25lciAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY29zaWduZXJfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBhcGlfa2V5X2lkOiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIEFQSSBrZXkgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGFwaV9rZXlfaWQ6IHN0cgogICAgICAgIDpwYXJhbSB1cGRhdGVfY2FsbGJhY2tfaGFuZGxlcl9yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdXBkYXRlX2NhbGxiYWNrX2hhbmRsZXJfcmVxdWVzdDogVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJ1cGRhdGVfY2FsbGJhY2tfaGFuZGxlciIsIHBhcmFtX25hbWU9ImNvc2lnbmVyX2lkIiwgcGFyYW1fdmFsdWU9Y29zaWduZXJfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJ1cGRhdGVfY2FsbGJhY2tfaGFuZGxlciIsIHBhcmFtX25hbWU9ImFwaV9rZXlfaWQiLCBwYXJhbV92YWx1ZT1hcGlfa2V5X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl91cGRhdGVfY2FsbGJhY2tfaGFuZGxlcl9zZXJpYWxpemUoCiAgICAgICAgICAgIGNvc2lnbmVyX2lkPWNvc2lnbmVyX2lkLAogICAgICAgICAgICBhcGlfa2V5X2lkPWFwaV9rZXlfaWQsCiAgICAgICAgICAgIHVwZGF0ZV9jYWxsYmFja19oYW5kbGVyX3JlcXVlc3Q9dXBkYXRlX2NhbGxiYWNrX2hhbmRsZXJfcmVxdWVzdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAyJzogIlVwZGF0ZUNhbGxiYWNrSGFuZGxlclJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfdXBkYXRlX2NhbGxiYWNrX2hhbmRsZXJfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY29zaWduZXJfaWQsCiAgICAgICAgYXBpX2tleV9pZCwKICAgICAgICB1cGRhdGVfY2FsbGJhY2tfaGFuZGxlcl9yZXF1ZXN0LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBjb3NpZ25lcl9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydjb3NpZ25lcklkJ10gPSBjb3NpZ25lcl9pZAogICAgICAgIGlmIGFwaV9rZXlfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYXBpS2V5SWQnXSA9IGFwaV9rZXlfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgdXBkYXRlX2NhbGxiYWNrX2hhbmRsZXJfcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gdXBkYXRlX2NhbGxiYWNrX2hhbmRsZXJfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BBVENIJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2Nvc2lnbmVycy97Y29zaWduZXJJZH0vYXBpX2tleXMve2FwaUtleUlkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoK \ No newline at end of file diff --git a/fireblocks/api/deployed_contracts_api.py b/fireblocks/api/deployed_contracts_api.py index 559afec1..ba1004a4 100644 --- a/fireblocks/api/deployed_contracts_api.py +++ b/fireblocks/api/deployed_contracts_api.py @@ -1,776 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing import Optional, Union -from typing_extensions import Annotated -from fireblocks.models.add_abi_request_dto import AddAbiRequestDto -from fireblocks.models.contract_with_abi_dto import ContractWithAbiDto -from fireblocks.models.deployed_contract_response_dto import DeployedContractResponseDto -from fireblocks.models.deployed_contracts_paginated_response import DeployedContractsPaginatedResponse -from fireblocks.models.fetch_abi_request_dto import FetchAbiRequestDto - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class DeployedContractsApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def add_contract_abi( - self, - add_abi_request_dto: AddAbiRequestDto, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ContractWithAbiDto]]: - """Save contract ABI - - Save contract ABI for the tenant - - :param add_abi_request_dto: (required) - :type add_abi_request_dto: AddAbiRequestDto - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._add_contract_abi_serialize( - add_abi_request_dto=add_abi_request_dto, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ContractWithAbiDto", - '409': None, - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _add_contract_abi_serialize( - self, - add_abi_request_dto, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if add_abi_request_dto is not None: - _body_params = add_abi_request_dto - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/tokenization/contracts/abi', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def fetch_contract_abi( - self, - fetch_abi_request_dto: FetchAbiRequestDto, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ContractWithAbiDto]]: - """Fetch the contract ABI - - Fetch the ABI. If not found fetch the ABI from the block explorer - - :param fetch_abi_request_dto: (required) - :type fetch_abi_request_dto: FetchAbiRequestDto - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._fetch_contract_abi_serialize( - fetch_abi_request_dto=fetch_abi_request_dto, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ContractWithAbiDto", - '404': None, - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _fetch_contract_abi_serialize( - self, - fetch_abi_request_dto, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if fetch_abi_request_dto is not None: - _body_params = fetch_abi_request_dto - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/tokenization/contracts/fetch_abi', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_deployed_contract_by_address( - self, - contract_address: Annotated[StrictStr, Field(description="The contract's onchain address")], - asset_id: StrictStr, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[DeployedContractResponseDto]]: - """Return deployed contract data - - Return deployed contract data by blockchain native asset id and contract address - - :param contract_address: The contract's onchain address (required) - :type contract_address: str - :param asset_id: (required) - :type asset_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_deployed_contract_by_address", param_name="contract_address", param_value=contract_address) - validate_not_empty_string(function_name="get_deployed_contract_by_address", param_name="asset_id", param_value=asset_id) - - _param = self._get_deployed_contract_by_address_serialize( - contract_address=contract_address, - asset_id=asset_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "DeployedContractResponseDto", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_deployed_contract_by_address_serialize( - self, - contract_address, - asset_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if contract_address is not None: - _path_params['contractAddress'] = contract_address - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tokenization/contracts/{assetId}/{contractAddress}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_deployed_contract_by_id( - self, - id: Annotated[StrictStr, Field(description="The deployed contract data identifier")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[DeployedContractResponseDto]]: - """Return deployed contract data by id - - Return deployed contract data by id - - :param id: The deployed contract data identifier (required) - :type id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_deployed_contract_by_id", param_name="id", param_value=id) - - _param = self._get_deployed_contract_by_id_serialize( - id=id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "DeployedContractResponseDto", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_deployed_contract_by_id_serialize( - self, - id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if id is not None: - _path_params['id'] = id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tokenization/contracts/{id}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_deployed_contracts( - self, - page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor to get the next page")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=100, strict=True, ge=1)], Annotated[int, Field(le=100, strict=True, ge=1)]]], Field(description="Number of items per page, requesting more then max will return max items")] = None, - contract_address: Annotated[Optional[StrictStr], Field(description="The contract's onchain address")] = None, - base_asset_id: Optional[StrictStr] = None, - contract_template_id: Optional[StrictStr] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[DeployedContractsPaginatedResponse]]: - """List deployed contracts data - - Return a filtered lean representation of the deployed contracts data on all blockchains (paginated) - - :param page_cursor: Page cursor to get the next page - :type page_cursor: str - :param page_size: Number of items per page, requesting more then max will return max items - :type page_size: float - :param contract_address: The contract's onchain address - :type contract_address: str - :param base_asset_id: - :type base_asset_id: str - :param contract_template_id: - :type contract_template_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_deployed_contracts_serialize( - page_cursor=page_cursor, - page_size=page_size, - contract_address=contract_address, - base_asset_id=base_asset_id, - contract_template_id=contract_template_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "DeployedContractsPaginatedResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_deployed_contracts_serialize( - self, - page_cursor, - page_size, - contract_address, - base_asset_id, - contract_template_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if contract_address is not None: - - _query_params.append(('contractAddress', contract_address)) - - if base_asset_id is not None: - - _query_params.append(('baseAssetId', base_asset_id)) - - if contract_template_id is not None: - - _query_params.append(('contractTemplateId', contract_template_id)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tokenization/contracts', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZF9hYmlfcmVxdWVzdF9kdG8gaW1wb3J0IEFkZEFiaVJlcXVlc3REdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF93aXRoX2FiaV9kdG8gaW1wb3J0IENvbnRyYWN0V2l0aEFiaUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlcGxveWVkX2NvbnRyYWN0X3Jlc3BvbnNlX2R0byBpbXBvcnQgRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVwbG95ZWRfY29udHJhY3RzX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgRGVwbG95ZWRDb250cmFjdHNQYWdpbmF0ZWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZldGNoX2FiaV9yZXF1ZXN0X2R0byBpbXBvcnQgRmV0Y2hBYmlSZXF1ZXN0RHRvCgpmcm9tIGZpcmVibG9ja3MuYXBpX2NsaWVudCBpbXBvcnQgQXBpQ2xpZW50LCBSZXF1ZXN0U2VyaWFsaXplZApmcm9tIGZpcmVibG9ja3MuYXBpX3Jlc3BvbnNlIGltcG9ydCBBcGlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MucmVzdCBpbXBvcnQgUkVTVFJlc3BvbnNlVHlwZQpmcm9tIGZpcmVibG9ja3MudmFsaWRhdGlvbl91dGlscyBpbXBvcnQgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZwoKCmNsYXNzIERlcGxveWVkQ29udHJhY3RzQXBpOgogICAgIiIiTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvcgogICAgUmVmOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gKCiAgICBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgYXBpX2NsaWVudD1Ob25lKSAtPiBOb25lOgogICAgICAgIGlmIGFwaV9jbGllbnQgaXMgTm9uZToKICAgICAgICAgICAgYXBpX2NsaWVudCA9IEFwaUNsaWVudC5nZXRfZGVmYXVsdCgpCiAgICAgICAgc2VsZi5hcGlfY2xpZW50ID0gYXBpX2NsaWVudAoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGFkZF9jb250cmFjdF9hYmkoCiAgICAgICAgc2VsZiwKICAgICAgICBhZGRfYWJpX3JlcXVlc3RfZHRvOiBBZGRBYmlSZXF1ZXN0RHRvLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0NvbnRyYWN0V2l0aEFiaUR0b11dOgogICAgICAgICIiIlNhdmUgY29udHJhY3QgQUJJCgogICAgICAgIFNhdmUgY29udHJhY3QgQUJJIGZvciB0aGUgdGVuYW50CgogICAgICAgIDpwYXJhbSBhZGRfYWJpX3JlcXVlc3RfZHRvOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYWRkX2FiaV9yZXF1ZXN0X2R0bzogQWRkQWJpUmVxdWVzdER0bwogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2FkZF9jb250cmFjdF9hYmlfc2VyaWFsaXplKAogICAgICAgICAgICBhZGRfYWJpX3JlcXVlc3RfZHRvPWFkZF9hYmlfcmVxdWVzdF9kdG8sCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJDb250cmFjdFdpdGhBYmlEdG8iLAogICAgICAgICAgICAnNDA5JzogTm9uZSwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfYWRkX2NvbnRyYWN0X2FiaV9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBhZGRfYWJpX3JlcXVlc3RfZHRvLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgYWRkX2FiaV9yZXF1ZXN0X2R0byBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gYWRkX2FiaV9yZXF1ZXN0X2R0bwoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdG9rZW5pemF0aW9uL2NvbnRyYWN0cy9hYmknLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZmV0Y2hfY29udHJhY3RfYWJpKAogICAgICAgIHNlbGYsCiAgICAgICAgZmV0Y2hfYWJpX3JlcXVlc3RfZHRvOiBGZXRjaEFiaVJlcXVlc3REdG8sCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbQ29udHJhY3RXaXRoQWJpRHRvXV06CiAgICAgICAgIiIiRmV0Y2ggdGhlIGNvbnRyYWN0IEFCSQoKICAgICAgICBGZXRjaCB0aGUgQUJJLiBJZiBub3QgZm91bmQgZmV0Y2ggdGhlIEFCSSBmcm9tIHRoZSBibG9jayBleHBsb3JlcgoKICAgICAgICA6cGFyYW0gZmV0Y2hfYWJpX3JlcXVlc3RfZHRvOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgZmV0Y2hfYWJpX3JlcXVlc3RfZHRvOiBGZXRjaEFiaVJlcXVlc3REdG8KICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9mZXRjaF9jb250cmFjdF9hYmlfc2VyaWFsaXplKAogICAgICAgICAgICBmZXRjaF9hYmlfcmVxdWVzdF9kdG89ZmV0Y2hfYWJpX3JlcXVlc3RfZHRvLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiQ29udHJhY3RXaXRoQWJpRHRvIiwKICAgICAgICAgICAgJzQwNCc6IE5vbmUsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2ZldGNoX2NvbnRyYWN0X2FiaV9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBmZXRjaF9hYmlfcmVxdWVzdF9kdG8sCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBmZXRjaF9hYmlfcmVxdWVzdF9kdG8gaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IGZldGNoX2FiaV9yZXF1ZXN0X2R0bwoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdG9rZW5pemF0aW9uL2NvbnRyYWN0cy9mZXRjaF9hYmknLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X2RlcGxveWVkX2NvbnRyYWN0X2J5X2FkZHJlc3MoCiAgICAgICAgc2VsZiwKICAgICAgICBjb250cmFjdF9hZGRyZXNzOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNvbnRyYWN0J3Mgb25jaGFpbiBhZGRyZXNzIildLAogICAgICAgIGFzc2V0X2lkOiBTdHJpY3RTdHIsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtEZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG9dXToKICAgICAgICAiIiJSZXR1cm4gZGVwbG95ZWQgY29udHJhY3QgZGF0YQoKICAgICAgICBSZXR1cm4gZGVwbG95ZWQgY29udHJhY3QgZGF0YSBieSBibG9ja2NoYWluIG5hdGl2ZSBhc3NldCBpZCBhbmQgY29udHJhY3QgYWRkcmVzcwoKICAgICAgICA6cGFyYW0gY29udHJhY3RfYWRkcmVzczogVGhlIGNvbnRyYWN0J3Mgb25jaGFpbiBhZGRyZXNzIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjb250cmFjdF9hZGRyZXNzOiBzdHIKICAgICAgICA6cGFyYW0gYXNzZXRfaWQ6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhc3NldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9kZXBsb3llZF9jb250cmFjdF9ieV9hZGRyZXNzIiwgcGFyYW1fbmFtZT0iY29udHJhY3RfYWRkcmVzcyIsIHBhcmFtX3ZhbHVlPWNvbnRyYWN0X2FkZHJlc3MpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfZGVwbG95ZWRfY29udHJhY3RfYnlfYWRkcmVzcyIsIHBhcmFtX25hbWU9ImFzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YXNzZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9kZXBsb3llZF9jb250cmFjdF9ieV9hZGRyZXNzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgY29udHJhY3RfYWRkcmVzcz1jb250cmFjdF9hZGRyZXNzLAogICAgICAgICAgICBhc3NldF9pZD1hc3NldF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkRlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0byIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9kZXBsb3llZF9jb250cmFjdF9ieV9hZGRyZXNzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNvbnRyYWN0X2FkZHJlc3MsCiAgICAgICAgYXNzZXRfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGNvbnRyYWN0X2FkZHJlc3MgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY29udHJhY3RBZGRyZXNzJ10gPSBjb250cmFjdF9hZGRyZXNzCiAgICAgICAgaWYgYXNzZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYXNzZXRJZCddID0gYXNzZXRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90b2tlbml6YXRpb24vY29udHJhY3RzL3thc3NldElkfS97Y29udHJhY3RBZGRyZXNzfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfZGVwbG95ZWRfY29udHJhY3RfYnlfaWQoCiAgICAgICAgc2VsZiwKICAgICAgICBpZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBkZXBsb3llZCBjb250cmFjdCBkYXRhIGlkZW50aWZpZXIiKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtEZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG9dXToKICAgICAgICAiIiJSZXR1cm4gZGVwbG95ZWQgY29udHJhY3QgZGF0YSBieSBpZAoKICAgICAgICBSZXR1cm4gZGVwbG95ZWQgY29udHJhY3QgZGF0YSBieSBpZAoKICAgICAgICA6cGFyYW0gaWQ6IFRoZSBkZXBsb3llZCBjb250cmFjdCBkYXRhIGlkZW50aWZpZXIgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGlkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2RlcGxveWVkX2NvbnRyYWN0X2J5X2lkIiwgcGFyYW1fbmFtZT0iaWQiLCBwYXJhbV92YWx1ZT1pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2RlcGxveWVkX2NvbnRyYWN0X2J5X2lkX3NlcmlhbGl6ZSgKICAgICAgICAgICAgaWQ9aWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJEZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8iLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfZGVwbG95ZWRfY29udHJhY3RfYnlfaWRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGlkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2lkJ10gPSBpZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3Rva2VuaXphdGlvbi9jb250cmFjdHMve2lkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfZGVwbG95ZWRfY29udHJhY3RzKAogICAgICAgIHNlbGYsCiAgICAgICAgcGFnZV9jdXJzb3I6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iUGFnZSBjdXJzb3IgdG8gZ2V0IHRoZSBuZXh0IHBhZ2UiKV0gPSBOb25lLAogICAgICAgIHBhZ2Vfc2l6ZTogQW5ub3RhdGVkW09wdGlvbmFsW1VuaW9uW0Fubm90YXRlZFtmbG9hdCwgRmllbGQobGU9MTAwLCBzdHJpY3Q9VHJ1ZSwgZ2U9MSldLCBBbm5vdGF0ZWRbaW50LCBGaWVsZChsZT0xMDAsIHN0cmljdD1UcnVlLCBnZT0xKV1dXSwgRmllbGQoZGVzY3JpcHRpb249Ik51bWJlciBvZiBpdGVtcyBwZXIgcGFnZSwgcmVxdWVzdGluZyBtb3JlIHRoZW4gbWF4IHdpbGwgcmV0dXJuIG1heCBpdGVtcyIpXSA9IE5vbmUsCiAgICAgICAgY29udHJhY3RfYWRkcmVzczogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgY29udHJhY3QncyBvbmNoYWluIGFkZHJlc3MiKV0gPSBOb25lLAogICAgICAgIGJhc2VfYXNzZXRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIGNvbnRyYWN0X3RlbXBsYXRlX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0RlcGxveWVkQ29udHJhY3RzUGFnaW5hdGVkUmVzcG9uc2VdXToKICAgICAgICAiIiJMaXN0IGRlcGxveWVkIGNvbnRyYWN0cyBkYXRhCgogICAgICAgIFJldHVybiBhIGZpbHRlcmVkIGxlYW4gcmVwcmVzZW50YXRpb24gb2YgdGhlIGRlcGxveWVkIGNvbnRyYWN0cyBkYXRhIG9uIGFsbCBibG9ja2NoYWlucyAocGFnaW5hdGVkKQoKICAgICAgICA6cGFyYW0gcGFnZV9jdXJzb3I6IFBhZ2UgY3Vyc29yIHRvIGdldCB0aGUgbmV4dCBwYWdlCiAgICAgICAgOnR5cGUgcGFnZV9jdXJzb3I6IHN0cgogICAgICAgIDpwYXJhbSBwYWdlX3NpemU6IE51bWJlciBvZiBpdGVtcyBwZXIgcGFnZSwgcmVxdWVzdGluZyBtb3JlIHRoZW4gbWF4IHdpbGwgcmV0dXJuIG1heCBpdGVtcwogICAgICAgIDp0eXBlIHBhZ2Vfc2l6ZTogZmxvYXQKICAgICAgICA6cGFyYW0gY29udHJhY3RfYWRkcmVzczogVGhlIGNvbnRyYWN0J3Mgb25jaGFpbiBhZGRyZXNzCiAgICAgICAgOnR5cGUgY29udHJhY3RfYWRkcmVzczogc3RyCiAgICAgICAgOnBhcmFtIGJhc2VfYXNzZXRfaWQ6CiAgICAgICAgOnR5cGUgYmFzZV9hc3NldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGNvbnRyYWN0X3RlbXBsYXRlX2lkOgogICAgICAgIDp0eXBlIGNvbnRyYWN0X3RlbXBsYXRlX2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfZGVwbG95ZWRfY29udHJhY3RzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsCiAgICAgICAgICAgIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsCiAgICAgICAgICAgIGNvbnRyYWN0X2FkZHJlc3M9Y29udHJhY3RfYWRkcmVzcywKICAgICAgICAgICAgYmFzZV9hc3NldF9pZD1iYXNlX2Fzc2V0X2lkLAogICAgICAgICAgICBjb250cmFjdF90ZW1wbGF0ZV9pZD1jb250cmFjdF90ZW1wbGF0ZV9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkRlcGxveWVkQ29udHJhY3RzUGFnaW5hdGVkUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfZGVwbG95ZWRfY29udHJhY3RzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHBhZ2VfY3Vyc29yLAogICAgICAgIHBhZ2Vfc2l6ZSwKICAgICAgICBjb250cmFjdF9hZGRyZXNzLAogICAgICAgIGJhc2VfYXNzZXRfaWQsCiAgICAgICAgY29udHJhY3RfdGVtcGxhdGVfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIHBhZ2VfY3Vyc29yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlQ3Vyc29yJywgcGFnZV9jdXJzb3IpKQogICAgICAgICAgICAKICAgICAgICBpZiBwYWdlX3NpemUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VTaXplJywgcGFnZV9zaXplKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgY29udHJhY3RfYWRkcmVzcyBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnY29udHJhY3RBZGRyZXNzJywgY29udHJhY3RfYWRkcmVzcykpCiAgICAgICAgICAgIAogICAgICAgIGlmIGJhc2VfYXNzZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2Jhc2VBc3NldElkJywgYmFzZV9hc3NldF9pZCkpCiAgICAgICAgICAgIAogICAgICAgIGlmIGNvbnRyYWN0X3RlbXBsYXRlX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdjb250cmFjdFRlbXBsYXRlSWQnLCBjb250cmFjdF90ZW1wbGF0ZV9pZCkpCiAgICAgICAgICAgIAogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3Rva2VuaXphdGlvbi9jb250cmFjdHMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCg== \ No newline at end of file diff --git a/fireblocks/api/embedded_wallets_api.py b/fireblocks/api/embedded_wallets_api.py index 11839922..ea0fa4c2 100644 --- a/fireblocks/api/embedded_wallets_api.py +++ b/fireblocks/api/embedded_wallets_api.py @@ -1,3356 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator -from typing import List, Optional, Union -from typing_extensions import Annotated -from fireblocks.models.embedded_wallet import EmbeddedWallet -from fireblocks.models.embedded_wallet_account import EmbeddedWalletAccount -from fireblocks.models.embedded_wallet_address_details import EmbeddedWalletAddressDetails -from fireblocks.models.embedded_wallet_asset_balance import EmbeddedWalletAssetBalance -from fireblocks.models.embedded_wallet_asset_response import EmbeddedWalletAssetResponse -from fireblocks.models.embedded_wallet_device import EmbeddedWalletDevice -from fireblocks.models.embedded_wallet_device_key_setup_response import EmbeddedWalletDeviceKeySetupResponse -from fireblocks.models.embedded_wallet_latest_backup_response import EmbeddedWalletLatestBackupResponse -from fireblocks.models.embedded_wallet_paginated_addresses_response import EmbeddedWalletPaginatedAddressesResponse -from fireblocks.models.embedded_wallet_paginated_assets_response import EmbeddedWalletPaginatedAssetsResponse -from fireblocks.models.embedded_wallet_paginated_devices_response import EmbeddedWalletPaginatedDevicesResponse -from fireblocks.models.embedded_wallet_paginated_wallets_response import EmbeddedWalletPaginatedWalletsResponse -from fireblocks.models.embedded_wallet_setup_status_response import EmbeddedWalletSetupStatusResponse -from fireblocks.models.enable_device import EnableDevice -from fireblocks.models.enable_wallet import EnableWallet -from fireblocks.models.public_key_information import PublicKeyInformation - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class EmbeddedWalletsApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def add_embedded_wallet_asset( - self, - wallet_id: Annotated[StrictStr, Field(description="Wallet Id")], - account_id: Annotated[StrictStr, Field(description="The ID of the account")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EmbeddedWalletAddressDetails]]: - """Add asset to account - - Get the addresses of a specific asset, under a specific account, under a specific Non Custodial Wallet - - :param wallet_id: Wallet Id (required) - :type wallet_id: str - :param account_id: The ID of the account (required) - :type account_id: str - :param asset_id: The ID of the asset (required) - :type asset_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="add_embedded_wallet_asset", param_name="wallet_id", param_value=wallet_id) - validate_not_empty_string(function_name="add_embedded_wallet_asset", param_name="account_id", param_value=account_id) - validate_not_empty_string(function_name="add_embedded_wallet_asset", param_name="asset_id", param_value=asset_id) - - _param = self._add_embedded_wallet_asset_serialize( - wallet_id=wallet_id, - account_id=account_id, - asset_id=asset_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "EmbeddedWalletAddressDetails", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _add_embedded_wallet_asset_serialize( - self, - wallet_id, - account_id, - asset_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - if account_id is not None: - _path_params['accountId'] = account_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def assign_embedded_wallet( - self, - wallet_id: Annotated[StrictStr, Field(description="Wallet Id")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EmbeddedWallet]]: - """Assign a wallet - - Assign a specific Non Custodial Wallet to a user - - :param wallet_id: Wallet Id (required) - :type wallet_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="assign_embedded_wallet", param_name="wallet_id", param_value=wallet_id) - - _param = self._assign_embedded_wallet_serialize( - wallet_id=wallet_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "EmbeddedWallet", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _assign_embedded_wallet_serialize( - self, - wallet_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/ncw/wallets/{walletId}/assign', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_embedded_wallet( - self, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EmbeddedWallet]]: - """Create a new wallet - - Create new Non Custodial Wallet - - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_embedded_wallet_serialize( - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "EmbeddedWallet", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_embedded_wallet_serialize( - self, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/ncw/wallets', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_embedded_wallet_account( - self, - wallet_id: Annotated[StrictStr, Field(description="Wallet Id")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EmbeddedWalletAccount]]: - """Create a new account - - Create a new account under a specific Non Custodial Wallet - - :param wallet_id: Wallet Id (required) - :type wallet_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="create_embedded_wallet_account", param_name="wallet_id", param_value=wallet_id) - - _param = self._create_embedded_wallet_account_serialize( - wallet_id=wallet_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "EmbeddedWalletAccount", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_embedded_wallet_account_serialize( - self, - wallet_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/ncw/wallets/{walletId}/accounts', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_embedded_wallet( - self, - wallet_id: Annotated[StrictStr, Field(description="Wallet Id")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EmbeddedWallet]]: - """Get a wallet - - Get a wallet - - :param wallet_id: Wallet Id (required) - :type wallet_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_embedded_wallet", param_name="wallet_id", param_value=wallet_id) - - _param = self._get_embedded_wallet_serialize( - wallet_id=wallet_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "EmbeddedWallet", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_embedded_wallet_serialize( - self, - wallet_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/ncw/wallets/{walletId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_embedded_wallet_account( - self, - wallet_id: Annotated[StrictStr, Field(description="WalletId")], - account_id: Annotated[StrictStr, Field(description="The ID of the account")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EmbeddedWalletAccount]]: - """Get a account - - Get a specific account under a specific Non Custodial Wallet - - :param wallet_id: WalletId (required) - :type wallet_id: str - :param account_id: The ID of the account (required) - :type account_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_embedded_wallet_account", param_name="wallet_id", param_value=wallet_id) - validate_not_empty_string(function_name="get_embedded_wallet_account", param_name="account_id", param_value=account_id) - - _param = self._get_embedded_wallet_account_serialize( - wallet_id=wallet_id, - account_id=account_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "EmbeddedWalletAccount", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_embedded_wallet_account_serialize( - self, - wallet_id, - account_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - if account_id is not None: - _path_params['accountId'] = account_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/ncw/wallets/{walletId}/accounts/{accountId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_embedded_wallet_addresses( - self, - wallet_id: Annotated[StrictStr, Field(description="Wallet Id")], - account_id: Annotated[StrictStr, Field(description="The ID of the account")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset")], - page_cursor: Annotated[Optional[StrictStr], Field(description="Cursor to the next page")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=100, strict=True, ge=1)], Annotated[int, Field(le=100, strict=True, ge=1)]]], Field(description="Items per page")] = None, - sort: Annotated[Optional[StrictStr], Field(description="Sort by address")] = None, - order: Annotated[Optional[StrictStr], Field(description="Is the order ascending or descending")] = None, - enabled: Annotated[Optional[StrictBool], Field(description="Enabled")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EmbeddedWalletPaginatedAddressesResponse]]: - """Retrieve asset addresses - - Get the addresses of a specific asset, under a specific account, under a specific Non Custodial Wallet - - :param wallet_id: Wallet Id (required) - :type wallet_id: str - :param account_id: The ID of the account (required) - :type account_id: str - :param asset_id: The ID of the asset (required) - :type asset_id: str - :param page_cursor: Cursor to the next page - :type page_cursor: str - :param page_size: Items per page - :type page_size: float - :param sort: Sort by address - :type sort: str - :param order: Is the order ascending or descending - :type order: str - :param enabled: Enabled - :type enabled: bool - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_embedded_wallet_addresses", param_name="wallet_id", param_value=wallet_id) - validate_not_empty_string(function_name="get_embedded_wallet_addresses", param_name="account_id", param_value=account_id) - validate_not_empty_string(function_name="get_embedded_wallet_addresses", param_name="asset_id", param_value=asset_id) - - _param = self._get_embedded_wallet_addresses_serialize( - wallet_id=wallet_id, - account_id=account_id, - asset_id=asset_id, - page_cursor=page_cursor, - page_size=page_size, - sort=sort, - order=order, - enabled=enabled, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "EmbeddedWalletPaginatedAddressesResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_embedded_wallet_addresses_serialize( - self, - wallet_id, - account_id, - asset_id, - page_cursor, - page_size, - sort, - order, - enabled, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - if account_id is not None: - _path_params['accountId'] = account_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if sort is not None: - - _query_params.append(('sort', sort)) - - if order is not None: - - _query_params.append(('order', order)) - - if enabled is not None: - - _query_params.append(('enabled', enabled)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}/addresses', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_embedded_wallet_asset( - self, - wallet_id: Annotated[StrictStr, Field(description="Wallet Id")], - account_id: Annotated[StrictStr, Field(description="The ID of the account")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EmbeddedWalletAssetResponse]]: - """Retrieve asset - - Get asset under a specific account, under a specific Non Custodial Wallet - - :param wallet_id: Wallet Id (required) - :type wallet_id: str - :param account_id: The ID of the account (required) - :type account_id: str - :param asset_id: The ID of the asset (required) - :type asset_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_embedded_wallet_asset", param_name="wallet_id", param_value=wallet_id) - validate_not_empty_string(function_name="get_embedded_wallet_asset", param_name="account_id", param_value=account_id) - validate_not_empty_string(function_name="get_embedded_wallet_asset", param_name="asset_id", param_value=asset_id) - - _param = self._get_embedded_wallet_asset_serialize( - wallet_id=wallet_id, - account_id=account_id, - asset_id=asset_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "EmbeddedWalletAssetResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_embedded_wallet_asset_serialize( - self, - wallet_id, - account_id, - asset_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - if account_id is not None: - _path_params['accountId'] = account_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_embedded_wallet_asset_balance( - self, - wallet_id: Annotated[StrictStr, Field(description="Wallet Id")], - account_id: Annotated[StrictStr, Field(description="The ID of the account")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EmbeddedWalletAssetBalance]]: - """Retrieve asset balance - - Get balance for specific asset, under a specific account - - :param wallet_id: Wallet Id (required) - :type wallet_id: str - :param account_id: The ID of the account (required) - :type account_id: str - :param asset_id: The ID of the asset (required) - :type asset_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_embedded_wallet_asset_balance", param_name="wallet_id", param_value=wallet_id) - validate_not_empty_string(function_name="get_embedded_wallet_asset_balance", param_name="account_id", param_value=account_id) - validate_not_empty_string(function_name="get_embedded_wallet_asset_balance", param_name="asset_id", param_value=asset_id) - - _param = self._get_embedded_wallet_asset_balance_serialize( - wallet_id=wallet_id, - account_id=account_id, - asset_id=asset_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "EmbeddedWalletAssetBalance", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_embedded_wallet_asset_balance_serialize( - self, - wallet_id, - account_id, - asset_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - if account_id is not None: - _path_params['accountId'] = account_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}/balance', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_embedded_wallet_assets( - self, - wallet_id: Annotated[StrictStr, Field(description="Wallet Id")], - account_id: Annotated[StrictStr, Field(description="The ID of the account")], - sort: Annotated[Optional[List[StrictStr]], Field(description="Sort by fields")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Cursor to the next page")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=400, strict=True)], Annotated[int, Field(le=400, strict=True)]]], Field(description="Amount of results to return in the next page")] = None, - order: Annotated[Optional[StrictStr], Field(description="Is the order ascending or descending")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EmbeddedWalletPaginatedAssetsResponse]]: - """Retrieve assets - - Retrieve assets for a specific account under a specific Non Custodial Wallet - - :param wallet_id: Wallet Id (required) - :type wallet_id: str - :param account_id: The ID of the account (required) - :type account_id: str - :param sort: Sort by fields - :type sort: List[str] - :param page_cursor: Cursor to the next page - :type page_cursor: str - :param page_size: Amount of results to return in the next page - :type page_size: float - :param order: Is the order ascending or descending - :type order: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_embedded_wallet_assets", param_name="wallet_id", param_value=wallet_id) - validate_not_empty_string(function_name="get_embedded_wallet_assets", param_name="account_id", param_value=account_id) - - _param = self._get_embedded_wallet_assets_serialize( - wallet_id=wallet_id, - account_id=account_id, - sort=sort, - page_cursor=page_cursor, - page_size=page_size, - order=order, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "EmbeddedWalletPaginatedAssetsResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_embedded_wallet_assets_serialize( - self, - wallet_id, - account_id, - sort, - page_cursor, - page_size, - order, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - 'sort': 'multi', - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - if account_id is not None: - _path_params['accountId'] = account_id - # process the query parameters - if sort is not None: - - _query_params.append(('sort', sort)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if order is not None: - - _query_params.append(('order', order)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/ncw/wallets/{walletId}/accounts/{accountId}/assets', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_embedded_wallet_device( - self, - wallet_id: Annotated[StrictStr, Field(description="Wallet Id")], - device_id: Annotated[StrictStr, Field(description="Device Id")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EmbeddedWalletDevice]]: - """Get Embedded Wallet Device - - Get specific device for a specific s Wallet - - :param wallet_id: Wallet Id (required) - :type wallet_id: str - :param device_id: Device Id (required) - :type device_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_embedded_wallet_device", param_name="wallet_id", param_value=wallet_id) - validate_not_empty_string(function_name="get_embedded_wallet_device", param_name="device_id", param_value=device_id) - - _param = self._get_embedded_wallet_device_serialize( - wallet_id=wallet_id, - device_id=device_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "EmbeddedWalletDevice", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_embedded_wallet_device_serialize( - self, - wallet_id, - device_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - if device_id is not None: - _path_params['deviceId'] = device_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/ncw/wallets/{walletId}/devices/{deviceId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_embedded_wallet_device_setup_state( - self, - wallet_id: Annotated[StrictStr, Field(description="Wallet Id")], - device_id: Annotated[StrictStr, Field(description="Device Id")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EmbeddedWalletDeviceKeySetupResponse]]: - """Get device key setup state - - Get the state of the specific device setup key under a specific Non Custodial Wallet - - :param wallet_id: Wallet Id (required) - :type wallet_id: str - :param device_id: Device Id (required) - :type device_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_embedded_wallet_device_setup_state", param_name="wallet_id", param_value=wallet_id) - validate_not_empty_string(function_name="get_embedded_wallet_device_setup_state", param_name="device_id", param_value=device_id) - - _param = self._get_embedded_wallet_device_setup_state_serialize( - wallet_id=wallet_id, - device_id=device_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "EmbeddedWalletDeviceKeySetupResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_embedded_wallet_device_setup_state_serialize( - self, - wallet_id, - device_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - if device_id is not None: - _path_params['deviceId'] = device_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/ncw/wallets/{walletId}/devices/{deviceId}/setup_status', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_embedded_wallet_devices_paginated( - self, - wallet_id: Annotated[StrictStr, Field(description="Wallet Id")], - sort: Annotated[Optional[List[StrictStr]], Field(description="Sort by fields")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Cursor to the next page")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=400, strict=True)], Annotated[int, Field(le=400, strict=True)]]], Field(description="Amount of results to return in the next page")] = None, - order: Annotated[Optional[StrictStr], Field(description="Is the order ascending or descending")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EmbeddedWalletPaginatedDevicesResponse]]: - """Get registered devices - paginated - - Get a paginated list of registered devices for a specific Non Custodial Wallet - - :param wallet_id: Wallet Id (required) - :type wallet_id: str - :param sort: Sort by fields - :type sort: List[str] - :param page_cursor: Cursor to the next page - :type page_cursor: str - :param page_size: Amount of results to return in the next page - :type page_size: float - :param order: Is the order ascending or descending - :type order: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_embedded_wallet_devices_paginated", param_name="wallet_id", param_value=wallet_id) - - _param = self._get_embedded_wallet_devices_paginated_serialize( - wallet_id=wallet_id, - sort=sort, - page_cursor=page_cursor, - page_size=page_size, - order=order, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "EmbeddedWalletPaginatedDevicesResponse", - '400': "ErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_embedded_wallet_devices_paginated_serialize( - self, - wallet_id, - sort, - page_cursor, - page_size, - order, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - 'sort': 'multi', - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - # process the query parameters - if sort is not None: - - _query_params.append(('sort', sort)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if order is not None: - - _query_params.append(('order', order)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/ncw/wallets/{walletId}/devices_paginated', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_embedded_wallet_latest_backup( - self, - wallet_id: Annotated[StrictStr, Field(description="Wallet Id")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EmbeddedWalletLatestBackupResponse]]: - """Get wallet Latest Backup details - - Get wallet Latest Backup details, including the deviceId, and backup time - - :param wallet_id: Wallet Id (required) - :type wallet_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_embedded_wallet_latest_backup", param_name="wallet_id", param_value=wallet_id) - - _param = self._get_embedded_wallet_latest_backup_serialize( - wallet_id=wallet_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "EmbeddedWalletLatestBackupResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_embedded_wallet_latest_backup_serialize( - self, - wallet_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/ncw/wallets/{walletId}/backup/latest', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_embedded_wallet_public_key_info_for_address( - self, - x_end_user_wallet_id: Annotated[StrictStr, Field(description="Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.")], - wallet_id: Annotated[StrictStr, Field(description="The ID of the Non-Custodial wallet")], - account_id: Annotated[StrictStr, Field(description="The ID of the account")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset")], - change: Annotated[Union[StrictFloat, StrictInt], Field(description="BIP44 derivation path - change value")], - address_index: Annotated[Union[StrictFloat, StrictInt], Field(description="BIP44 derivation path - index value")], - compressed: Annotated[Optional[StrictBool], Field(description="Compressed/Uncompressed public key format")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[PublicKeyInformation]]: - """Get the public key of an asset - - Gets the public key of an asset associated with a specific account within a Non-Custodial Wallet - - :param x_end_user_wallet_id: Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. (required) - :type x_end_user_wallet_id: str - :param wallet_id: The ID of the Non-Custodial wallet (required) - :type wallet_id: str - :param account_id: The ID of the account (required) - :type account_id: str - :param asset_id: The ID of the asset (required) - :type asset_id: str - :param change: BIP44 derivation path - change value (required) - :type change: float - :param address_index: BIP44 derivation path - index value (required) - :type address_index: float - :param compressed: Compressed/Uncompressed public key format - :type compressed: bool - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_embedded_wallet_public_key_info_for_address", param_name="x_end_user_wallet_id", param_value=x_end_user_wallet_id) - validate_not_empty_string(function_name="get_embedded_wallet_public_key_info_for_address", param_name="wallet_id", param_value=wallet_id) - validate_not_empty_string(function_name="get_embedded_wallet_public_key_info_for_address", param_name="account_id", param_value=account_id) - validate_not_empty_string(function_name="get_embedded_wallet_public_key_info_for_address", param_name="asset_id", param_value=asset_id) - - _param = self._get_embedded_wallet_public_key_info_for_address_serialize( - x_end_user_wallet_id=x_end_user_wallet_id, - wallet_id=wallet_id, - account_id=account_id, - asset_id=asset_id, - change=change, - address_index=address_index, - compressed=compressed, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "PublicKeyInformation", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_embedded_wallet_public_key_info_for_address_serialize( - self, - x_end_user_wallet_id, - wallet_id, - account_id, - asset_id, - change, - address_index, - compressed, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - if account_id is not None: - _path_params['accountId'] = account_id - if asset_id is not None: - _path_params['assetId'] = asset_id - if change is not None: - _path_params['change'] = change - if address_index is not None: - _path_params['addressIndex'] = address_index - # process the query parameters - if compressed is not None: - - _query_params.append(('compressed', compressed)) - - # process the header parameters - if x_end_user_wallet_id is not None: - _header_params['X-End-User-Wallet-Id'] = x_end_user_wallet_id - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}/{change}/{addressIndex}/public_key_info', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_embedded_wallet_setup_status( - self, - wallet_id: Annotated[StrictStr, Field(description="Wallet Id")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EmbeddedWalletSetupStatusResponse]]: - """Get wallet key setup state - - Get the key setup state for a specific Non Custodial Wallet, including required algorithms and device setup status - - :param wallet_id: Wallet Id (required) - :type wallet_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_embedded_wallet_setup_status", param_name="wallet_id", param_value=wallet_id) - - _param = self._get_embedded_wallet_setup_status_serialize( - wallet_id=wallet_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "EmbeddedWalletSetupStatusResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_embedded_wallet_setup_status_serialize( - self, - wallet_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/ncw/wallets/{walletId}/setup_status', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_embedded_wallet_supported_assets( - self, - page_cursor: Annotated[Optional[StrictStr], Field(description="Next page cursor to fetch")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=400, strict=True)], Annotated[int, Field(le=400, strict=True)]]], Field(description="Items per page")] = None, - only_base_assets: Annotated[Optional[StrictBool], Field(description="Only base assets")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EmbeddedWalletPaginatedAssetsResponse]]: - """Retrieve supported assets - - Get all the available supported assets for the Non-Custodial Wallet - - :param page_cursor: Next page cursor to fetch - :type page_cursor: str - :param page_size: Items per page - :type page_size: float - :param only_base_assets: Only base assets - :type only_base_assets: bool - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_embedded_wallet_supported_assets_serialize( - page_cursor=page_cursor, - page_size=page_size, - only_base_assets=only_base_assets, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "EmbeddedWalletPaginatedAssetsResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_embedded_wallet_supported_assets_serialize( - self, - page_cursor, - page_size, - only_base_assets, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if only_base_assets is not None: - - _query_params.append(('onlyBaseAssets', only_base_assets)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/ncw/wallets/supported_assets', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_embedded_wallets( - self, - page_cursor: Annotated[Optional[StrictStr], Field(description="Next page cursor to fetch")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=400, strict=True)], Annotated[int, Field(le=400, strict=True)]]], Field(description="Items per page")] = None, - sort: Annotated[Optional[StrictStr], Field(description="Field(s) to use for sorting")] = None, - order: Annotated[Optional[StrictStr], Field(description="Is the order ascending or descending")] = None, - enabled: Annotated[Optional[StrictBool], Field(description="Enabled Wallets")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EmbeddedWalletPaginatedWalletsResponse]]: - """List wallets - - Get all Non Custodial Wallets - - :param page_cursor: Next page cursor to fetch - :type page_cursor: str - :param page_size: Items per page - :type page_size: float - :param sort: Field(s) to use for sorting - :type sort: str - :param order: Is the order ascending or descending - :type order: str - :param enabled: Enabled Wallets - :type enabled: bool - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_embedded_wallets_serialize( - page_cursor=page_cursor, - page_size=page_size, - sort=sort, - order=order, - enabled=enabled, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "EmbeddedWalletPaginatedWalletsResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_embedded_wallets_serialize( - self, - page_cursor, - page_size, - sort, - order, - enabled, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if sort is not None: - - _query_params.append(('sort', sort)) - - if order is not None: - - _query_params.append(('order', order)) - - if enabled is not None: - - _query_params.append(('enabled', enabled)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/ncw/wallets', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_public_key_info_ncw( - self, - x_end_user_wallet_id: Annotated[StrictStr, Field(description="Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.")], - wallet_id: Annotated[StrictStr, Field(description="The ID of the Non-Custodial wallet")], - derivation_path: Annotated[StrictStr, Field(description="An array of integers (passed as JSON stringified array) representing the full BIP44 derivation path of the requested public key. The first element must always be 44. ")], - algorithm: Annotated[StrictStr, Field(description="Elliptic Curve")], - compressed: Annotated[Optional[StrictBool], Field(description="Compressed/Uncompressed public key format")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[PublicKeyInformation]]: - """Get the public key for a derivation path - - Gets the public key information based on derivation path and signing algorithm within a Non-Custodial Wallet - - :param x_end_user_wallet_id: Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. (required) - :type x_end_user_wallet_id: str - :param wallet_id: The ID of the Non-Custodial wallet (required) - :type wallet_id: str - :param derivation_path: An array of integers (passed as JSON stringified array) representing the full BIP44 derivation path of the requested public key. The first element must always be 44. (required) - :type derivation_path: str - :param algorithm: Elliptic Curve (required) - :type algorithm: str - :param compressed: Compressed/Uncompressed public key format - :type compressed: bool - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_public_key_info_ncw", param_name="x_end_user_wallet_id", param_value=x_end_user_wallet_id) - validate_not_empty_string(function_name="get_public_key_info_ncw", param_name="wallet_id", param_value=wallet_id) - validate_not_empty_string(function_name="get_public_key_info_ncw", param_name="derivation_path", param_value=derivation_path) - validate_not_empty_string(function_name="get_public_key_info_ncw", param_name="algorithm", param_value=algorithm) - - _param = self._get_public_key_info_ncw_serialize( - x_end_user_wallet_id=x_end_user_wallet_id, - wallet_id=wallet_id, - derivation_path=derivation_path, - algorithm=algorithm, - compressed=compressed, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "PublicKeyInformation", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_public_key_info_ncw_serialize( - self, - x_end_user_wallet_id, - wallet_id, - derivation_path, - algorithm, - compressed, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - # process the query parameters - if derivation_path is not None: - - _query_params.append(('derivationPath', derivation_path)) - - if algorithm is not None: - - _query_params.append(('algorithm', algorithm)) - - if compressed is not None: - - _query_params.append(('compressed', compressed)) - - # process the header parameters - if x_end_user_wallet_id is not None: - _header_params['X-End-User-Wallet-Id'] = x_end_user_wallet_id - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/ncw/wallets/{walletId}/public_key_info', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def refresh_embedded_wallet_asset_balance( - self, - wallet_id: Annotated[StrictStr, Field(description="Wallet Id")], - account_id: Annotated[StrictStr, Field(description="The ID of the account")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EmbeddedWalletAssetBalance]]: - """Refresh asset balance - - Refresh the balance of an asset in a specific account - - :param wallet_id: Wallet Id (required) - :type wallet_id: str - :param account_id: The ID of the account (required) - :type account_id: str - :param asset_id: The ID of the asset (required) - :type asset_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="refresh_embedded_wallet_asset_balance", param_name="wallet_id", param_value=wallet_id) - validate_not_empty_string(function_name="refresh_embedded_wallet_asset_balance", param_name="account_id", param_value=account_id) - validate_not_empty_string(function_name="refresh_embedded_wallet_asset_balance", param_name="asset_id", param_value=asset_id) - - _param = self._refresh_embedded_wallet_asset_balance_serialize( - wallet_id=wallet_id, - account_id=account_id, - asset_id=asset_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "EmbeddedWalletAssetBalance", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _refresh_embedded_wallet_asset_balance_serialize( - self, - wallet_id, - account_id, - asset_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - if account_id is not None: - _path_params['accountId'] = account_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}/balance', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_embedded_wallet_device_status( - self, - wallet_id: Annotated[StrictStr, Field(description="Wallet Id")], - device_id: Annotated[StrictStr, Field(description="Device Id")], - enable_device: EnableDevice, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Update device status - - Update the enabled/disabled status of a specific device for a Non Custodial Wallet - - :param wallet_id: Wallet Id (required) - :type wallet_id: str - :param device_id: Device Id (required) - :type device_id: str - :param enable_device: (required) - :type enable_device: EnableDevice - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="update_embedded_wallet_device_status", param_name="wallet_id", param_value=wallet_id) - validate_not_empty_string(function_name="update_embedded_wallet_device_status", param_name="device_id", param_value=device_id) - - _param = self._update_embedded_wallet_device_status_serialize( - wallet_id=wallet_id, - device_id=device_id, - enable_device=enable_device, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '204': None, - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_embedded_wallet_device_status_serialize( - self, - wallet_id, - device_id, - enable_device, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - if device_id is not None: - _path_params['deviceId'] = device_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if enable_device is not None: - _body_params = enable_device - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PATCH', - resource_path='/ncw/wallets/{walletId}/devices/{deviceId}/status', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_embedded_wallet_status( - self, - wallet_id: Annotated[StrictStr, Field(description="Wallet Id")], - enable_wallet: EnableWallet, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Update wallet status - - Update the enabled/disabled status of a specific Non Custodial Wallet - - :param wallet_id: Wallet Id (required) - :type wallet_id: str - :param enable_wallet: (required) - :type enable_wallet: EnableWallet - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="update_embedded_wallet_status", param_name="wallet_id", param_value=wallet_id) - - _param = self._update_embedded_wallet_status_serialize( - wallet_id=wallet_id, - enable_wallet=enable_wallet, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '204': None, - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_embedded_wallet_status_serialize( - self, - wallet_id, - enable_wallet, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if enable_wallet is not None: - _body_params = enable_wallet - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PATCH', - resource_path='/ncw/wallets/{walletId}/status', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdEJvb2wsIFN0cmljdEZsb2F0LCBTdHJpY3RJbnQsIFN0cmljdFN0ciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0IGltcG9ydCBFbWJlZGRlZFdhbGxldApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9hY2NvdW50IGltcG9ydCBFbWJlZGRlZFdhbGxldEFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfYWRkcmVzc19kZXRhaWxzIGltcG9ydCBFbWJlZGRlZFdhbGxldEFkZHJlc3NEZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X2JhbGFuY2UgaW1wb3J0IEVtYmVkZGVkV2FsbGV0QXNzZXRCYWxhbmNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X3Jlc3BvbnNlIGltcG9ydCBFbWJlZGRlZFdhbGxldEFzc2V0UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfZGV2aWNlIGltcG9ydCBFbWJlZGRlZFdhbGxldERldmljZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9kZXZpY2Vfa2V5X3NldHVwX3Jlc3BvbnNlIGltcG9ydCBFbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfbGF0ZXN0X2JhY2t1cF9yZXNwb25zZSBpbXBvcnQgRW1iZWRkZWRXYWxsZXRMYXRlc3RCYWNrdXBSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9wYWdpbmF0ZWRfYWRkcmVzc2VzX3Jlc3BvbnNlIGltcG9ydCBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFkZHJlc3Nlc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X3BhZ2luYXRlZF9hc3NldHNfcmVzcG9uc2UgaW1wb3J0IEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkQXNzZXRzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfcGFnaW5hdGVkX2RldmljZXNfcmVzcG9uc2UgaW1wb3J0IEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkRGV2aWNlc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X3BhZ2luYXRlZF93YWxsZXRzX3Jlc3BvbnNlIGltcG9ydCBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZFdhbGxldHNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9zZXR1cF9zdGF0dXNfcmVzcG9uc2UgaW1wb3J0IEVtYmVkZGVkV2FsbGV0U2V0dXBTdGF0dXNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVuYWJsZV9kZXZpY2UgaW1wb3J0IEVuYWJsZURldmljZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVuYWJsZV93YWxsZXQgaW1wb3J0IEVuYWJsZVdhbGxldApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnB1YmxpY19rZXlfaW5mb3JtYXRpb24gaW1wb3J0IFB1YmxpY0tleUluZm9ybWF0aW9uCgpmcm9tIGZpcmVibG9ja3MuYXBpX2NsaWVudCBpbXBvcnQgQXBpQ2xpZW50LCBSZXF1ZXN0U2VyaWFsaXplZApmcm9tIGZpcmVibG9ja3MuYXBpX3Jlc3BvbnNlIGltcG9ydCBBcGlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MucmVzdCBpbXBvcnQgUkVTVFJlc3BvbnNlVHlwZQpmcm9tIGZpcmVibG9ja3MudmFsaWRhdGlvbl91dGlscyBpbXBvcnQgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZwoKCmNsYXNzIEVtYmVkZGVkV2FsbGV0c0FwaToKICAgICIiIk5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IKICAgIFJlZjogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgogICAgIiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwaV9jbGllbnQ9Tm9uZSkgLT4gTm9uZToKICAgICAgICBpZiBhcGlfY2xpZW50IGlzIE5vbmU6CiAgICAgICAgICAgIGFwaV9jbGllbnQgPSBBcGlDbGllbnQuZ2V0X2RlZmF1bHQoKQogICAgICAgIHNlbGYuYXBpX2NsaWVudCA9IGFwaV9jbGllbnQKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBhZGRfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0KAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iV2FsbGV0IElkIildLAogICAgICAgIGFjY291bnRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFjY291bnQiKV0sCiAgICAgICAgYXNzZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFzc2V0IildLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0VtYmVkZGVkV2FsbGV0QWRkcmVzc0RldGFpbHNdXToKICAgICAgICAiIiJBZGQgYXNzZXQgdG8gYWNjb3VudAoKICAgICAgICBHZXQgdGhlIGFkZHJlc3NlcyBvZiBhIHNwZWNpZmljIGFzc2V0LCB1bmRlciBhIHNwZWNpZmljIGFjY291bnQsIHVuZGVyIGEgc3BlY2lmaWMgTm9uIEN1c3RvZGlhbCBXYWxsZXQKCiAgICAgICAgOnBhcmFtIHdhbGxldF9pZDogV2FsbGV0IElkIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB3YWxsZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBhY2NvdW50X2lkOiBUaGUgSUQgb2YgdGhlIGFjY291bnQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGFjY291bnRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBhc3NldF9pZDogVGhlIElEIG9mIHRoZSBhc3NldCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJhZGRfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0IiwgcGFyYW1fbmFtZT0id2FsbGV0X2lkIiwgcGFyYW1fdmFsdWU9d2FsbGV0X2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iYWRkX2VtYmVkZGVkX3dhbGxldF9hc3NldCIsIHBhcmFtX25hbWU9ImFjY291bnRfaWQiLCBwYXJhbV92YWx1ZT1hY2NvdW50X2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iYWRkX2VtYmVkZGVkX3dhbGxldF9hc3NldCIsIHBhcmFtX25hbWU9ImFzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YXNzZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2FkZF9lbWJlZGRlZF93YWxsZXRfYXNzZXRfc2VyaWFsaXplKAogICAgICAgICAgICB3YWxsZXRfaWQ9d2FsbGV0X2lkLAogICAgICAgICAgICBhY2NvdW50X2lkPWFjY291bnRfaWQsCiAgICAgICAgICAgIGFzc2V0X2lkPWFzc2V0X2lkLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiAiRW1iZWRkZWRXYWxsZXRBZGRyZXNzRGV0YWlscyIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2FkZF9lbWJlZGRlZF93YWxsZXRfYXNzZXRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkLAogICAgICAgIGFjY291bnRfaWQsCiAgICAgICAgYXNzZXRfaWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB3YWxsZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snd2FsbGV0SWQnXSA9IHdhbGxldF9pZAogICAgICAgIGlmIGFjY291bnRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYWNjb3VudElkJ10gPSBhY2NvdW50X2lkCiAgICAgICAgaWYgYXNzZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYXNzZXRJZCddID0gYXNzZXRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9uY3cvd2FsbGV0cy97d2FsbGV0SWR9L2FjY291bnRzL3thY2NvdW50SWR9L2Fzc2V0cy97YXNzZXRJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgYXNzaWduX2VtYmVkZGVkX3dhbGxldCgKICAgICAgICBzZWxmLAogICAgICAgIHdhbGxldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IldhbGxldCBJZCIpXSwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtFbWJlZGRlZFdhbGxldF1dOgogICAgICAgICIiIkFzc2lnbiBhIHdhbGxldAoKICAgICAgICBBc3NpZ24gYSBzcGVjaWZpYyBOb24gQ3VzdG9kaWFsIFdhbGxldCB0byBhIHVzZXIKCiAgICAgICAgOnBhcmFtIHdhbGxldF9pZDogV2FsbGV0IElkIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB3YWxsZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJhc3NpZ25fZW1iZWRkZWRfd2FsbGV0IiwgcGFyYW1fbmFtZT0id2FsbGV0X2lkIiwgcGFyYW1fdmFsdWU9d2FsbGV0X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9hc3NpZ25fZW1iZWRkZWRfd2FsbGV0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgd2FsbGV0X2lkPXdhbGxldF9pZCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAxJzogIkVtYmVkZGVkV2FsbGV0IiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfYXNzaWduX2VtYmVkZGVkX3dhbGxldF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB3YWxsZXRfaWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB3YWxsZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snd2FsbGV0SWQnXSA9IHdhbGxldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL25jdy93YWxsZXRzL3t3YWxsZXRJZH0vYXNzaWduJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGNyZWF0ZV9lbWJlZGRlZF93YWxsZXQoCiAgICAgICAgc2VsZiwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtFbWJlZGRlZFdhbGxldF1dOgogICAgICAgICIiIkNyZWF0ZSBhIG5ldyB3YWxsZXQKCiAgICAgICAgQ3JlYXRlIG5ldyBOb24gQ3VzdG9kaWFsIFdhbGxldAoKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9jcmVhdGVfZW1iZWRkZWRfd2FsbGV0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAxJzogIkVtYmVkZGVkV2FsbGV0IiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfY3JlYXRlX2VtYmVkZGVkX3dhbGxldF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL25jdy93YWxsZXRzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGNyZWF0ZV9lbWJlZGRlZF93YWxsZXRfYWNjb3VudCgKICAgICAgICBzZWxmLAogICAgICAgIHdhbGxldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IldhbGxldCBJZCIpXSwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtFbWJlZGRlZFdhbGxldEFjY291bnRdXToKICAgICAgICAiIiJDcmVhdGUgYSBuZXcgYWNjb3VudAoKICAgICAgICBDcmVhdGUgYSBuZXcgYWNjb3VudCB1bmRlciBhIHNwZWNpZmljIE5vbiBDdXN0b2RpYWwgV2FsbGV0CgogICAgICAgIDpwYXJhbSB3YWxsZXRfaWQ6IFdhbGxldCBJZCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgd2FsbGV0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iY3JlYXRlX2VtYmVkZGVkX3dhbGxldF9hY2NvdW50IiwgcGFyYW1fbmFtZT0id2FsbGV0X2lkIiwgcGFyYW1fdmFsdWU9d2FsbGV0X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9jcmVhdGVfZW1iZWRkZWRfd2FsbGV0X2FjY291bnRfc2VyaWFsaXplKAogICAgICAgICAgICB3YWxsZXRfaWQ9d2FsbGV0X2lkLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiAiRW1iZWRkZWRXYWxsZXRBY2NvdW50IiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfY3JlYXRlX2VtYmVkZGVkX3dhbGxldF9hY2NvdW50X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHdhbGxldF9pZCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHdhbGxldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd3YWxsZXRJZCddID0gd2FsbGV0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbmN3L3dhbGxldHMve3dhbGxldElkfS9hY2NvdW50cycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfZW1iZWRkZWRfd2FsbGV0KAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iV2FsbGV0IElkIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbRW1iZWRkZWRXYWxsZXRdXToKICAgICAgICAiIiJHZXQgYSB3YWxsZXQKCiAgICAgICAgR2V0IGEgd2FsbGV0CgogICAgICAgIDpwYXJhbSB3YWxsZXRfaWQ6IFdhbGxldCBJZCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgd2FsbGV0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2VtYmVkZGVkX3dhbGxldCIsIHBhcmFtX25hbWU9IndhbGxldF9pZCIsIHBhcmFtX3ZhbHVlPXdhbGxldF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2VtYmVkZGVkX3dhbGxldF9zZXJpYWxpemUoCiAgICAgICAgICAgIHdhbGxldF9pZD13YWxsZXRfaWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJFbWJlZGRlZFdhbGxldCIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9lbWJlZGRlZF93YWxsZXRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB3YWxsZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snd2FsbGV0SWQnXSA9IHdhbGxldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL25jdy93YWxsZXRzL3t3YWxsZXRJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X2VtYmVkZGVkX3dhbGxldF9hY2NvdW50KAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iV2FsbGV0SWQiKV0sCiAgICAgICAgYWNjb3VudF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYWNjb3VudCIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0VtYmVkZGVkV2FsbGV0QWNjb3VudF1dOgogICAgICAgICIiIkdldCBhIGFjY291bnQKCiAgICAgICAgR2V0IGEgc3BlY2lmaWMgYWNjb3VudCB1bmRlciBhIHNwZWNpZmljIE5vbiBDdXN0b2RpYWwgV2FsbGV0CgogICAgICAgIDpwYXJhbSB3YWxsZXRfaWQ6IFdhbGxldElkIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB3YWxsZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBhY2NvdW50X2lkOiBUaGUgSUQgb2YgdGhlIGFjY291bnQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGFjY291bnRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfZW1iZWRkZWRfd2FsbGV0X2FjY291bnQiLCBwYXJhbV9uYW1lPSJ3YWxsZXRfaWQiLCBwYXJhbV92YWx1ZT13YWxsZXRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfZW1iZWRkZWRfd2FsbGV0X2FjY291bnQiLCBwYXJhbV9uYW1lPSJhY2NvdW50X2lkIiwgcGFyYW1fdmFsdWU9YWNjb3VudF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2VtYmVkZGVkX3dhbGxldF9hY2NvdW50X3NlcmlhbGl6ZSgKICAgICAgICAgICAgd2FsbGV0X2lkPXdhbGxldF9pZCwKICAgICAgICAgICAgYWNjb3VudF9pZD1hY2NvdW50X2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiRW1iZWRkZWRXYWxsZXRBY2NvdW50IiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2VtYmVkZGVkX3dhbGxldF9hY2NvdW50X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHdhbGxldF9pZCwKICAgICAgICBhY2NvdW50X2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB3YWxsZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snd2FsbGV0SWQnXSA9IHdhbGxldF9pZAogICAgICAgIGlmIGFjY291bnRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYWNjb3VudElkJ10gPSBhY2NvdW50X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbmN3L3dhbGxldHMve3dhbGxldElkfS9hY2NvdW50cy97YWNjb3VudElkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfZW1iZWRkZWRfd2FsbGV0X2FkZHJlc3NlcygKICAgICAgICBzZWxmLAogICAgICAgIHdhbGxldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IldhbGxldCBJZCIpXSwKICAgICAgICBhY2NvdW50X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBhY2NvdW50IildLAogICAgICAgIGFzc2V0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBhc3NldCIpXSwKICAgICAgICBwYWdlX2N1cnNvcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJDdXJzb3IgdG8gdGhlIG5leHQgcGFnZSIpXSA9IE5vbmUsCiAgICAgICAgcGFnZV9zaXplOiBBbm5vdGF0ZWRbT3B0aW9uYWxbVW5pb25bQW5ub3RhdGVkW2Zsb2F0LCBGaWVsZChsZT0xMDAsIHN0cmljdD1UcnVlLCBnZT0xKV0sIEFubm90YXRlZFtpbnQsIEZpZWxkKGxlPTEwMCwgc3RyaWN0PVRydWUsIGdlPTEpXV1dLCBGaWVsZChkZXNjcmlwdGlvbj0iSXRlbXMgcGVyIHBhZ2UiKV0gPSBOb25lLAogICAgICAgIHNvcnQ6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iU29ydCBieSBhZGRyZXNzIildID0gTm9uZSwKICAgICAgICBvcmRlcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJJcyB0aGUgb3JkZXIgYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmciKV0gPSBOb25lLAogICAgICAgIGVuYWJsZWQ6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RCb29sXSwgRmllbGQoZGVzY3JpcHRpb249IkVuYWJsZWQiKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBZGRyZXNzZXNSZXNwb25zZV1dOgogICAgICAgICIiIlJldHJpZXZlIGFzc2V0IGFkZHJlc3NlcwoKICAgICAgICBHZXQgdGhlIGFkZHJlc3NlcyBvZiBhIHNwZWNpZmljIGFzc2V0LCB1bmRlciBhIHNwZWNpZmljIGFjY291bnQsIHVuZGVyIGEgc3BlY2lmaWMgTm9uIEN1c3RvZGlhbCBXYWxsZXQKCiAgICAgICAgOnBhcmFtIHdhbGxldF9pZDogV2FsbGV0IElkIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB3YWxsZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBhY2NvdW50X2lkOiBUaGUgSUQgb2YgdGhlIGFjY291bnQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGFjY291bnRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBhc3NldF9pZDogVGhlIElEIG9mIHRoZSBhc3NldCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBwYWdlX2N1cnNvcjogQ3Vyc29yIHRvIHRoZSBuZXh0IHBhZ2UKICAgICAgICA6dHlwZSBwYWdlX2N1cnNvcjogc3RyCiAgICAgICAgOnBhcmFtIHBhZ2Vfc2l6ZTogSXRlbXMgcGVyIHBhZ2UKICAgICAgICA6dHlwZSBwYWdlX3NpemU6IGZsb2F0CiAgICAgICAgOnBhcmFtIHNvcnQ6IFNvcnQgYnkgYWRkcmVzcwogICAgICAgIDp0eXBlIHNvcnQ6IHN0cgogICAgICAgIDpwYXJhbSBvcmRlcjogSXMgdGhlIG9yZGVyIGFzY2VuZGluZyBvciBkZXNjZW5kaW5nCiAgICAgICAgOnR5cGUgb3JkZXI6IHN0cgogICAgICAgIDpwYXJhbSBlbmFibGVkOiBFbmFibGVkCiAgICAgICAgOnR5cGUgZW5hYmxlZDogYm9vbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfZW1iZWRkZWRfd2FsbGV0X2FkZHJlc3NlcyIsIHBhcmFtX25hbWU9IndhbGxldF9pZCIsIHBhcmFtX3ZhbHVlPXdhbGxldF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9lbWJlZGRlZF93YWxsZXRfYWRkcmVzc2VzIiwgcGFyYW1fbmFtZT0iYWNjb3VudF9pZCIsIHBhcmFtX3ZhbHVlPWFjY291bnRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfZW1iZWRkZWRfd2FsbGV0X2FkZHJlc3NlcyIsIHBhcmFtX25hbWU9ImFzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YXNzZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9lbWJlZGRlZF93YWxsZXRfYWRkcmVzc2VzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgd2FsbGV0X2lkPXdhbGxldF9pZCwKICAgICAgICAgICAgYWNjb3VudF9pZD1hY2NvdW50X2lkLAogICAgICAgICAgICBhc3NldF9pZD1hc3NldF9pZCwKICAgICAgICAgICAgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsCiAgICAgICAgICAgIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsCiAgICAgICAgICAgIHNvcnQ9c29ydCwKICAgICAgICAgICAgb3JkZXI9b3JkZXIsCiAgICAgICAgICAgIGVuYWJsZWQ9ZW5hYmxlZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkQWRkcmVzc2VzUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfZW1iZWRkZWRfd2FsbGV0X2FkZHJlc3Nlc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB3YWxsZXRfaWQsCiAgICAgICAgYWNjb3VudF9pZCwKICAgICAgICBhc3NldF9pZCwKICAgICAgICBwYWdlX2N1cnNvciwKICAgICAgICBwYWdlX3NpemUsCiAgICAgICAgc29ydCwKICAgICAgICBvcmRlciwKICAgICAgICBlbmFibGVkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB3YWxsZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snd2FsbGV0SWQnXSA9IHdhbGxldF9pZAogICAgICAgIGlmIGFjY291bnRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYWNjb3VudElkJ10gPSBhY2NvdW50X2lkCiAgICAgICAgaWYgYXNzZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYXNzZXRJZCddID0gYXNzZXRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiBwYWdlX2N1cnNvciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZUN1cnNvcicsIHBhZ2VfY3Vyc29yKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgcGFnZV9zaXplIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlU2l6ZScsIHBhZ2Vfc2l6ZSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHNvcnQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3NvcnQnLCBzb3J0KSkKICAgICAgICAgICAgCiAgICAgICAgaWYgb3JkZXIgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ29yZGVyJywgb3JkZXIpKQogICAgICAgICAgICAKICAgICAgICBpZiBlbmFibGVkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdlbmFibGVkJywgZW5hYmxlZCkpCiAgICAgICAgICAgIAogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL25jdy93YWxsZXRzL3t3YWxsZXRJZH0vYWNjb3VudHMve2FjY291bnRJZH0vYXNzZXRzL3thc3NldElkfS9hZGRyZXNzZXMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X2VtYmVkZGVkX3dhbGxldF9hc3NldCgKICAgICAgICBzZWxmLAogICAgICAgIHdhbGxldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IldhbGxldCBJZCIpXSwKICAgICAgICBhY2NvdW50X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBhY2NvdW50IildLAogICAgICAgIGFzc2V0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBhc3NldCIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0VtYmVkZGVkV2FsbGV0QXNzZXRSZXNwb25zZV1dOgogICAgICAgICIiIlJldHJpZXZlIGFzc2V0CgogICAgICAgIEdldCBhc3NldCB1bmRlciBhIHNwZWNpZmljIGFjY291bnQsIHVuZGVyIGEgc3BlY2lmaWMgTm9uIEN1c3RvZGlhbCBXYWxsZXQKCiAgICAgICAgOnBhcmFtIHdhbGxldF9pZDogV2FsbGV0IElkIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB3YWxsZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBhY2NvdW50X2lkOiBUaGUgSUQgb2YgdGhlIGFjY291bnQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGFjY291bnRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBhc3NldF9pZDogVGhlIElEIG9mIHRoZSBhc3NldCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0IiwgcGFyYW1fbmFtZT0id2FsbGV0X2lkIiwgcGFyYW1fdmFsdWU9d2FsbGV0X2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2VtYmVkZGVkX3dhbGxldF9hc3NldCIsIHBhcmFtX25hbWU9ImFjY291bnRfaWQiLCBwYXJhbV92YWx1ZT1hY2NvdW50X2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2VtYmVkZGVkX3dhbGxldF9hc3NldCIsIHBhcmFtX25hbWU9ImFzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YXNzZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9lbWJlZGRlZF93YWxsZXRfYXNzZXRfc2VyaWFsaXplKAogICAgICAgICAgICB3YWxsZXRfaWQ9d2FsbGV0X2lkLAogICAgICAgICAgICBhY2NvdW50X2lkPWFjY291bnRfaWQsCiAgICAgICAgICAgIGFzc2V0X2lkPWFzc2V0X2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiRW1iZWRkZWRXYWxsZXRBc3NldFJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2VtYmVkZGVkX3dhbGxldF9hc3NldF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB3YWxsZXRfaWQsCiAgICAgICAgYWNjb3VudF9pZCwKICAgICAgICBhc3NldF9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgd2FsbGV0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3dhbGxldElkJ10gPSB3YWxsZXRfaWQKICAgICAgICBpZiBhY2NvdW50X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2FjY291bnRJZCddID0gYWNjb3VudF9pZAogICAgICAgIGlmIGFzc2V0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Fzc2V0SWQnXSA9IGFzc2V0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbmN3L3dhbGxldHMve3dhbGxldElkfS9hY2NvdW50cy97YWNjb3VudElkfS9hc3NldHMve2Fzc2V0SWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9lbWJlZGRlZF93YWxsZXRfYXNzZXRfYmFsYW5jZSgKICAgICAgICBzZWxmLAogICAgICAgIHdhbGxldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IldhbGxldCBJZCIpXSwKICAgICAgICBhY2NvdW50X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBhY2NvdW50IildLAogICAgICAgIGFzc2V0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBhc3NldCIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0VtYmVkZGVkV2FsbGV0QXNzZXRCYWxhbmNlXV06CiAgICAgICAgIiIiUmV0cmlldmUgYXNzZXQgYmFsYW5jZQoKICAgICAgICBHZXQgYmFsYW5jZSBmb3Igc3BlY2lmaWMgYXNzZXQsIHVuZGVyIGEgc3BlY2lmaWMgYWNjb3VudAoKICAgICAgICA6cGFyYW0gd2FsbGV0X2lkOiBXYWxsZXQgSWQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHdhbGxldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGFjY291bnRfaWQ6IFRoZSBJRCBvZiB0aGUgYWNjb3VudCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYWNjb3VudF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGFzc2V0X2lkOiBUaGUgSUQgb2YgdGhlIGFzc2V0IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhc3NldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9lbWJlZGRlZF93YWxsZXRfYXNzZXRfYmFsYW5jZSIsIHBhcmFtX25hbWU9IndhbGxldF9pZCIsIHBhcmFtX3ZhbHVlPXdhbGxldF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9lbWJlZGRlZF93YWxsZXRfYXNzZXRfYmFsYW5jZSIsIHBhcmFtX25hbWU9ImFjY291bnRfaWQiLCBwYXJhbV92YWx1ZT1hY2NvdW50X2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2VtYmVkZGVkX3dhbGxldF9hc3NldF9iYWxhbmNlIiwgcGFyYW1fbmFtZT0iYXNzZXRfaWQiLCBwYXJhbV92YWx1ZT1hc3NldF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2VtYmVkZGVkX3dhbGxldF9hc3NldF9iYWxhbmNlX3NlcmlhbGl6ZSgKICAgICAgICAgICAgd2FsbGV0X2lkPXdhbGxldF9pZCwKICAgICAgICAgICAgYWNjb3VudF9pZD1hY2NvdW50X2lkLAogICAgICAgICAgICBhc3NldF9pZD1hc3NldF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkVtYmVkZGVkV2FsbGV0QXNzZXRCYWxhbmNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2VtYmVkZGVkX3dhbGxldF9hc3NldF9iYWxhbmNlX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHdhbGxldF9pZCwKICAgICAgICBhY2NvdW50X2lkLAogICAgICAgIGFzc2V0X2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB3YWxsZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snd2FsbGV0SWQnXSA9IHdhbGxldF9pZAogICAgICAgIGlmIGFjY291bnRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYWNjb3VudElkJ10gPSBhY2NvdW50X2lkCiAgICAgICAgaWYgYXNzZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYXNzZXRJZCddID0gYXNzZXRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9uY3cvd2FsbGV0cy97d2FsbGV0SWR9L2FjY291bnRzL3thY2NvdW50SWR9L2Fzc2V0cy97YXNzZXRJZH0vYmFsYW5jZScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0cygKICAgICAgICBzZWxmLAogICAgICAgIHdhbGxldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IldhbGxldCBJZCIpXSwKICAgICAgICBhY2NvdW50X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBhY2NvdW50IildLAogICAgICAgIHNvcnQ6IEFubm90YXRlZFtPcHRpb25hbFtMaXN0W1N0cmljdFN0cl1dLCBGaWVsZChkZXNjcmlwdGlvbj0iU29ydCBieSBmaWVsZHMiKV0gPSBOb25lLAogICAgICAgIHBhZ2VfY3Vyc29yOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkN1cnNvciB0byB0aGUgbmV4dCBwYWdlIildID0gTm9uZSwKICAgICAgICBwYWdlX3NpemU6IEFubm90YXRlZFtPcHRpb25hbFtVbmlvbltBbm5vdGF0ZWRbZmxvYXQsIEZpZWxkKGxlPTQwMCwgc3RyaWN0PVRydWUpXSwgQW5ub3RhdGVkW2ludCwgRmllbGQobGU9NDAwLCBzdHJpY3Q9VHJ1ZSldXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBbW91bnQgb2YgcmVzdWx0cyB0byByZXR1cm4gaW4gdGhlIG5leHQgcGFnZSIpXSA9IE5vbmUsCiAgICAgICAgb3JkZXI6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iSXMgdGhlIG9yZGVyIGFzY2VuZGluZyBvciBkZXNjZW5kaW5nIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0VtYmVkZGVkV2FsbGV0UGFnaW5hdGVkQXNzZXRzUmVzcG9uc2VdXToKICAgICAgICAiIiJSZXRyaWV2ZSBhc3NldHMKCiAgICAgICAgUmV0cmlldmUgYXNzZXRzIGZvciBhIHNwZWNpZmljIGFjY291bnQgdW5kZXIgYSBzcGVjaWZpYyBOb24gQ3VzdG9kaWFsIFdhbGxldAoKICAgICAgICA6cGFyYW0gd2FsbGV0X2lkOiBXYWxsZXQgSWQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHdhbGxldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGFjY291bnRfaWQ6IFRoZSBJRCBvZiB0aGUgYWNjb3VudCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYWNjb3VudF9pZDogc3RyCiAgICAgICAgOnBhcmFtIHNvcnQ6IFNvcnQgYnkgZmllbGRzCiAgICAgICAgOnR5cGUgc29ydDogTGlzdFtzdHJdCiAgICAgICAgOnBhcmFtIHBhZ2VfY3Vyc29yOiBDdXJzb3IgdG8gdGhlIG5leHQgcGFnZQogICAgICAgIDp0eXBlIHBhZ2VfY3Vyc29yOiBzdHIKICAgICAgICA6cGFyYW0gcGFnZV9zaXplOiBBbW91bnQgb2YgcmVzdWx0cyB0byByZXR1cm4gaW4gdGhlIG5leHQgcGFnZQogICAgICAgIDp0eXBlIHBhZ2Vfc2l6ZTogZmxvYXQKICAgICAgICA6cGFyYW0gb3JkZXI6IElzIHRoZSBvcmRlciBhc2NlbmRpbmcgb3IgZGVzY2VuZGluZwogICAgICAgIDp0eXBlIG9yZGVyOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2VtYmVkZGVkX3dhbGxldF9hc3NldHMiLCBwYXJhbV9uYW1lPSJ3YWxsZXRfaWQiLCBwYXJhbV92YWx1ZT13YWxsZXRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0cyIsIHBhcmFtX25hbWU9ImFjY291bnRfaWQiLCBwYXJhbV92YWx1ZT1hY2NvdW50X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0c19zZXJpYWxpemUoCiAgICAgICAgICAgIHdhbGxldF9pZD13YWxsZXRfaWQsCiAgICAgICAgICAgIGFjY291bnRfaWQ9YWNjb3VudF9pZCwKICAgICAgICAgICAgc29ydD1zb3J0LAogICAgICAgICAgICBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwKICAgICAgICAgICAgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwKICAgICAgICAgICAgb3JkZXI9b3JkZXIsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2VtYmVkZGVkX3dhbGxldF9hc3NldHNfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkLAogICAgICAgIGFjY291bnRfaWQsCiAgICAgICAgc29ydCwKICAgICAgICBwYWdlX2N1cnNvciwKICAgICAgICBwYWdlX3NpemUsCiAgICAgICAgb3JkZXIsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgICAgICAnc29ydCc6ICdtdWx0aScsCiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgd2FsbGV0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3dhbGxldElkJ10gPSB3YWxsZXRfaWQKICAgICAgICBpZiBhY2NvdW50X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2FjY291bnRJZCddID0gYWNjb3VudF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIHNvcnQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3NvcnQnLCBzb3J0KSkKICAgICAgICAgICAgCiAgICAgICAgaWYgcGFnZV9jdXJzb3IgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VDdXJzb3InLCBwYWdlX2N1cnNvcikpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2Vfc2l6ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZVNpemUnLCBwYWdlX3NpemUpKQogICAgICAgICAgICAKICAgICAgICBpZiBvcmRlciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnb3JkZXInLCBvcmRlcikpCiAgICAgICAgICAgIAogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL25jdy93YWxsZXRzL3t3YWxsZXRJZH0vYWNjb3VudHMve2FjY291bnRJZH0vYXNzZXRzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9lbWJlZGRlZF93YWxsZXRfZGV2aWNlKAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iV2FsbGV0IElkIildLAogICAgICAgIGRldmljZV9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IkRldmljZSBJZCIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0VtYmVkZGVkV2FsbGV0RGV2aWNlXV06CiAgICAgICAgIiIiR2V0IEVtYmVkZGVkIFdhbGxldCBEZXZpY2UKCiAgICAgICAgR2V0IHNwZWNpZmljIGRldmljZSBmb3IgYSBzcGVjaWZpYyBzIFdhbGxldAoKICAgICAgICA6cGFyYW0gd2FsbGV0X2lkOiBXYWxsZXQgSWQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHdhbGxldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGRldmljZV9pZDogRGV2aWNlIElkIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBkZXZpY2VfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfZW1iZWRkZWRfd2FsbGV0X2RldmljZSIsIHBhcmFtX25hbWU9IndhbGxldF9pZCIsIHBhcmFtX3ZhbHVlPXdhbGxldF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9lbWJlZGRlZF93YWxsZXRfZGV2aWNlIiwgcGFyYW1fbmFtZT0iZGV2aWNlX2lkIiwgcGFyYW1fdmFsdWU9ZGV2aWNlX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfZW1iZWRkZWRfd2FsbGV0X2RldmljZV9zZXJpYWxpemUoCiAgICAgICAgICAgIHdhbGxldF9pZD13YWxsZXRfaWQsCiAgICAgICAgICAgIGRldmljZV9pZD1kZXZpY2VfaWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJFbWJlZGRlZFdhbGxldERldmljZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9lbWJlZGRlZF93YWxsZXRfZGV2aWNlX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHdhbGxldF9pZCwKICAgICAgICBkZXZpY2VfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHdhbGxldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd3YWxsZXRJZCddID0gd2FsbGV0X2lkCiAgICAgICAgaWYgZGV2aWNlX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2RldmljZUlkJ10gPSBkZXZpY2VfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9uY3cvd2FsbGV0cy97d2FsbGV0SWR9L2RldmljZXMve2RldmljZUlkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfZW1iZWRkZWRfd2FsbGV0X2RldmljZV9zZXR1cF9zdGF0ZSgKICAgICAgICBzZWxmLAogICAgICAgIHdhbGxldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IldhbGxldCBJZCIpXSwKICAgICAgICBkZXZpY2VfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJEZXZpY2UgSWQiKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtFbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgZGV2aWNlIGtleSBzZXR1cCBzdGF0ZQoKICAgICAgICBHZXQgdGhlIHN0YXRlIG9mIHRoZSBzcGVjaWZpYyBkZXZpY2Ugc2V0dXAga2V5IHVuZGVyIGEgc3BlY2lmaWMgTm9uIEN1c3RvZGlhbCBXYWxsZXQKCiAgICAgICAgOnBhcmFtIHdhbGxldF9pZDogV2FsbGV0IElkIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB3YWxsZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBkZXZpY2VfaWQ6IERldmljZSBJZCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgZGV2aWNlX2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2VtYmVkZGVkX3dhbGxldF9kZXZpY2Vfc2V0dXBfc3RhdGUiLCBwYXJhbV9uYW1lPSJ3YWxsZXRfaWQiLCBwYXJhbV92YWx1ZT13YWxsZXRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfZW1iZWRkZWRfd2FsbGV0X2RldmljZV9zZXR1cF9zdGF0ZSIsIHBhcmFtX25hbWU9ImRldmljZV9pZCIsIHBhcmFtX3ZhbHVlPWRldmljZV9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2VtYmVkZGVkX3dhbGxldF9kZXZpY2Vfc2V0dXBfc3RhdGVfc2VyaWFsaXplKAogICAgICAgICAgICB3YWxsZXRfaWQ9d2FsbGV0X2lkLAogICAgICAgICAgICBkZXZpY2VfaWQ9ZGV2aWNlX2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2VtYmVkZGVkX3dhbGxldF9kZXZpY2Vfc2V0dXBfc3RhdGVfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkLAogICAgICAgIGRldmljZV9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgd2FsbGV0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3dhbGxldElkJ10gPSB3YWxsZXRfaWQKICAgICAgICBpZiBkZXZpY2VfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snZGV2aWNlSWQnXSA9IGRldmljZV9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL25jdy93YWxsZXRzL3t3YWxsZXRJZH0vZGV2aWNlcy97ZGV2aWNlSWR9L3NldHVwX3N0YXR1cycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfZW1iZWRkZWRfd2FsbGV0X2RldmljZXNfcGFnaW5hdGVkKAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iV2FsbGV0IElkIildLAogICAgICAgIHNvcnQ6IEFubm90YXRlZFtPcHRpb25hbFtMaXN0W1N0cmljdFN0cl1dLCBGaWVsZChkZXNjcmlwdGlvbj0iU29ydCBieSBmaWVsZHMiKV0gPSBOb25lLAogICAgICAgIHBhZ2VfY3Vyc29yOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkN1cnNvciB0byB0aGUgbmV4dCBwYWdlIildID0gTm9uZSwKICAgICAgICBwYWdlX3NpemU6IEFubm90YXRlZFtPcHRpb25hbFtVbmlvbltBbm5vdGF0ZWRbZmxvYXQsIEZpZWxkKGxlPTQwMCwgc3RyaWN0PVRydWUpXSwgQW5ub3RhdGVkW2ludCwgRmllbGQobGU9NDAwLCBzdHJpY3Q9VHJ1ZSldXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBbW91bnQgb2YgcmVzdWx0cyB0byByZXR1cm4gaW4gdGhlIG5leHQgcGFnZSIpXSA9IE5vbmUsCiAgICAgICAgb3JkZXI6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iSXMgdGhlIG9yZGVyIGFzY2VuZGluZyBvciBkZXNjZW5kaW5nIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0VtYmVkZGVkV2FsbGV0UGFnaW5hdGVkRGV2aWNlc1Jlc3BvbnNlXV06CiAgICAgICAgIiIiR2V0IHJlZ2lzdGVyZWQgZGV2aWNlcyAtIHBhZ2luYXRlZAoKICAgICAgICBHZXQgYSBwYWdpbmF0ZWQgbGlzdCBvZiByZWdpc3RlcmVkIGRldmljZXMgZm9yIGEgc3BlY2lmaWMgTm9uIEN1c3RvZGlhbCBXYWxsZXQKCiAgICAgICAgOnBhcmFtIHdhbGxldF9pZDogV2FsbGV0IElkIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB3YWxsZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBzb3J0OiBTb3J0IGJ5IGZpZWxkcwogICAgICAgIDp0eXBlIHNvcnQ6IExpc3Rbc3RyXQogICAgICAgIDpwYXJhbSBwYWdlX2N1cnNvcjogQ3Vyc29yIHRvIHRoZSBuZXh0IHBhZ2UKICAgICAgICA6dHlwZSBwYWdlX2N1cnNvcjogc3RyCiAgICAgICAgOnBhcmFtIHBhZ2Vfc2l6ZTogQW1vdW50IG9mIHJlc3VsdHMgdG8gcmV0dXJuIGluIHRoZSBuZXh0IHBhZ2UKICAgICAgICA6dHlwZSBwYWdlX3NpemU6IGZsb2F0CiAgICAgICAgOnBhcmFtIG9yZGVyOiBJcyB0aGUgb3JkZXIgYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcKICAgICAgICA6dHlwZSBvcmRlcjogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9lbWJlZGRlZF93YWxsZXRfZGV2aWNlc19wYWdpbmF0ZWQiLCBwYXJhbV9uYW1lPSJ3YWxsZXRfaWQiLCBwYXJhbV92YWx1ZT13YWxsZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9lbWJlZGRlZF93YWxsZXRfZGV2aWNlc19wYWdpbmF0ZWRfc2VyaWFsaXplKAogICAgICAgICAgICB3YWxsZXRfaWQ9d2FsbGV0X2lkLAogICAgICAgICAgICBzb3J0PXNvcnQsCiAgICAgICAgICAgIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLAogICAgICAgICAgICBwYWdlX3NpemU9cGFnZV9zaXplLAogICAgICAgICAgICBvcmRlcj1vcmRlciwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkRGV2aWNlc1Jlc3BvbnNlIiwKICAgICAgICAgICAgJzQwMCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9lbWJlZGRlZF93YWxsZXRfZGV2aWNlc19wYWdpbmF0ZWRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkLAogICAgICAgIHNvcnQsCiAgICAgICAgcGFnZV9jdXJzb3IsCiAgICAgICAgcGFnZV9zaXplLAogICAgICAgIG9yZGVyLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICAgICAgJ3NvcnQnOiAnbXVsdGknLAogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHdhbGxldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd3YWxsZXRJZCddID0gd2FsbGV0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgc29ydCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnc29ydCcsIHNvcnQpKQogICAgICAgICAgICAKICAgICAgICBpZiBwYWdlX2N1cnNvciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZUN1cnNvcicsIHBhZ2VfY3Vyc29yKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgcGFnZV9zaXplIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlU2l6ZScsIHBhZ2Vfc2l6ZSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIG9yZGVyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdvcmRlcicsIG9yZGVyKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbmN3L3dhbGxldHMve3dhbGxldElkfS9kZXZpY2VzX3BhZ2luYXRlZCcsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfZW1iZWRkZWRfd2FsbGV0X2xhdGVzdF9iYWNrdXAoCiAgICAgICAgc2VsZiwKICAgICAgICB3YWxsZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJXYWxsZXQgSWQiKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtFbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cFJlc3BvbnNlXV06CiAgICAgICAgIiIiR2V0IHdhbGxldCBMYXRlc3QgQmFja3VwIGRldGFpbHMKCiAgICAgICAgR2V0IHdhbGxldCBMYXRlc3QgQmFja3VwIGRldGFpbHMsIGluY2x1ZGluZyB0aGUgZGV2aWNlSWQsIGFuZCBiYWNrdXAgdGltZQoKICAgICAgICA6cGFyYW0gd2FsbGV0X2lkOiBXYWxsZXQgSWQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHdhbGxldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9lbWJlZGRlZF93YWxsZXRfbGF0ZXN0X2JhY2t1cCIsIHBhcmFtX25hbWU9IndhbGxldF9pZCIsIHBhcmFtX3ZhbHVlPXdhbGxldF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2VtYmVkZGVkX3dhbGxldF9sYXRlc3RfYmFja3VwX3NlcmlhbGl6ZSgKICAgICAgICAgICAgd2FsbGV0X2lkPXdhbGxldF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkVtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfZW1iZWRkZWRfd2FsbGV0X2xhdGVzdF9iYWNrdXBfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB3YWxsZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snd2FsbGV0SWQnXSA9IHdhbGxldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL25jdy93YWxsZXRzL3t3YWxsZXRJZH0vYmFja3VwL2xhdGVzdCcsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfZW1iZWRkZWRfd2FsbGV0X3B1YmxpY19rZXlfaW5mb19mb3JfYWRkcmVzcygKICAgICAgICBzZWxmLAogICAgICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVW5pcXVlIElEIG9mIHRoZSBFbmQtVXNlciB3YWxsZXQgdG8gdGhlIEFQSSByZXF1ZXN0LiBSZXF1aXJlZCBmb3IgZW5kLXVzZXIgd2FsbGV0IG9wZXJhdGlvbnMuIildLAogICAgICAgIHdhbGxldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgTm9uLUN1c3RvZGlhbCB3YWxsZXQiKV0sCiAgICAgICAgYWNjb3VudF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYWNjb3VudCIpXSwKICAgICAgICBhc3NldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYXNzZXQiKV0sCiAgICAgICAgY2hhbmdlOiBBbm5vdGF0ZWRbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0sIEZpZWxkKGRlc2NyaXB0aW9uPSJCSVA0NCBkZXJpdmF0aW9uIHBhdGggLSBjaGFuZ2UgdmFsdWUiKV0sCiAgICAgICAgYWRkcmVzc19pbmRleDogQW5ub3RhdGVkW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdLCBGaWVsZChkZXNjcmlwdGlvbj0iQklQNDQgZGVyaXZhdGlvbiBwYXRoIC0gaW5kZXggdmFsdWUiKV0sCiAgICAgICAgY29tcHJlc3NlZDogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdEJvb2xdLCBGaWVsZChkZXNjcmlwdGlvbj0iQ29tcHJlc3NlZC9VbmNvbXByZXNzZWQgcHVibGljIGtleSBmb3JtYXQiKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbUHVibGljS2V5SW5mb3JtYXRpb25dXToKICAgICAgICAiIiJHZXQgdGhlIHB1YmxpYyBrZXkgb2YgYW4gYXNzZXQKCiAgICAgICAgR2V0cyB0aGUgcHVibGljIGtleSBvZiBhbiBhc3NldCBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyBhY2NvdW50IHdpdGhpbiBhIE5vbi1DdXN0b2RpYWwgV2FsbGV0CgogICAgICAgIDpwYXJhbSB4X2VuZF91c2VyX3dhbGxldF9pZDogVW5pcXVlIElEIG9mIHRoZSBFbmQtVXNlciB3YWxsZXQgdG8gdGhlIEFQSSByZXF1ZXN0LiBSZXF1aXJlZCBmb3IgZW5kLXVzZXIgd2FsbGV0IG9wZXJhdGlvbnMuIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB4X2VuZF91c2VyX3dhbGxldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIHdhbGxldF9pZDogVGhlIElEIG9mIHRoZSBOb24tQ3VzdG9kaWFsIHdhbGxldCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgd2FsbGV0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gYWNjb3VudF9pZDogVGhlIElEIG9mIHRoZSBhY2NvdW50IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhY2NvdW50X2lkOiBzdHIKICAgICAgICA6cGFyYW0gYXNzZXRfaWQ6IFRoZSBJRCBvZiB0aGUgYXNzZXQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGFzc2V0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gY2hhbmdlOiBCSVA0NCBkZXJpdmF0aW9uIHBhdGggLSBjaGFuZ2UgdmFsdWUgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGNoYW5nZTogZmxvYXQKICAgICAgICA6cGFyYW0gYWRkcmVzc19pbmRleDogQklQNDQgZGVyaXZhdGlvbiBwYXRoIC0gaW5kZXggdmFsdWUgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGFkZHJlc3NfaW5kZXg6IGZsb2F0CiAgICAgICAgOnBhcmFtIGNvbXByZXNzZWQ6IENvbXByZXNzZWQvVW5jb21wcmVzc2VkIHB1YmxpYyBrZXkgZm9ybWF0CiAgICAgICAgOnR5cGUgY29tcHJlc3NlZDogYm9vbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfZW1iZWRkZWRfd2FsbGV0X3B1YmxpY19rZXlfaW5mb19mb3JfYWRkcmVzcyIsIHBhcmFtX25hbWU9InhfZW5kX3VzZXJfd2FsbGV0X2lkIiwgcGFyYW1fdmFsdWU9eF9lbmRfdXNlcl93YWxsZXRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfZW1iZWRkZWRfd2FsbGV0X3B1YmxpY19rZXlfaW5mb19mb3JfYWRkcmVzcyIsIHBhcmFtX25hbWU9IndhbGxldF9pZCIsIHBhcmFtX3ZhbHVlPXdhbGxldF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9lbWJlZGRlZF93YWxsZXRfcHVibGljX2tleV9pbmZvX2Zvcl9hZGRyZXNzIiwgcGFyYW1fbmFtZT0iYWNjb3VudF9pZCIsIHBhcmFtX3ZhbHVlPWFjY291bnRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfZW1iZWRkZWRfd2FsbGV0X3B1YmxpY19rZXlfaW5mb19mb3JfYWRkcmVzcyIsIHBhcmFtX25hbWU9ImFzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YXNzZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9lbWJlZGRlZF93YWxsZXRfcHVibGljX2tleV9pbmZvX2Zvcl9hZGRyZXNzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgeF9lbmRfdXNlcl93YWxsZXRfaWQ9eF9lbmRfdXNlcl93YWxsZXRfaWQsCiAgICAgICAgICAgIHdhbGxldF9pZD13YWxsZXRfaWQsCiAgICAgICAgICAgIGFjY291bnRfaWQ9YWNjb3VudF9pZCwKICAgICAgICAgICAgYXNzZXRfaWQ9YXNzZXRfaWQsCiAgICAgICAgICAgIGNoYW5nZT1jaGFuZ2UsCiAgICAgICAgICAgIGFkZHJlc3NfaW5kZXg9YWRkcmVzc19pbmRleCwKICAgICAgICAgICAgY29tcHJlc3NlZD1jb21wcmVzc2VkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiUHVibGljS2V5SW5mb3JtYXRpb24iLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfZW1iZWRkZWRfd2FsbGV0X3B1YmxpY19rZXlfaW5mb19mb3JfYWRkcmVzc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB4X2VuZF91c2VyX3dhbGxldF9pZCwKICAgICAgICB3YWxsZXRfaWQsCiAgICAgICAgYWNjb3VudF9pZCwKICAgICAgICBhc3NldF9pZCwKICAgICAgICBjaGFuZ2UsCiAgICAgICAgYWRkcmVzc19pbmRleCwKICAgICAgICBjb21wcmVzc2VkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB3YWxsZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snd2FsbGV0SWQnXSA9IHdhbGxldF9pZAogICAgICAgIGlmIGFjY291bnRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYWNjb3VudElkJ10gPSBhY2NvdW50X2lkCiAgICAgICAgaWYgYXNzZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYXNzZXRJZCddID0gYXNzZXRfaWQKICAgICAgICBpZiBjaGFuZ2UgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY2hhbmdlJ10gPSBjaGFuZ2UKICAgICAgICBpZiBhZGRyZXNzX2luZGV4IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2FkZHJlc3NJbmRleCddID0gYWRkcmVzc19pbmRleAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIGNvbXByZXNzZWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2NvbXByZXNzZWQnLCBjb21wcmVzc2VkKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIHhfZW5kX3VzZXJfd2FsbGV0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snWC1FbmQtVXNlci1XYWxsZXQtSWQnXSA9IHhfZW5kX3VzZXJfd2FsbGV0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9uY3cvd2FsbGV0cy97d2FsbGV0SWR9L2FjY291bnRzL3thY2NvdW50SWR9L2Fzc2V0cy97YXNzZXRJZH0ve2NoYW5nZX0ve2FkZHJlc3NJbmRleH0vcHVibGljX2tleV9pbmZvJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9lbWJlZGRlZF93YWxsZXRfc2V0dXBfc3RhdHVzKAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iV2FsbGV0IElkIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbRW1iZWRkZWRXYWxsZXRTZXR1cFN0YXR1c1Jlc3BvbnNlXV06CiAgICAgICAgIiIiR2V0IHdhbGxldCBrZXkgc2V0dXAgc3RhdGUKCiAgICAgICAgR2V0IHRoZSBrZXkgc2V0dXAgc3RhdGUgZm9yIGEgc3BlY2lmaWMgTm9uIEN1c3RvZGlhbCBXYWxsZXQsIGluY2x1ZGluZyByZXF1aXJlZCBhbGdvcml0aG1zIGFuZCBkZXZpY2Ugc2V0dXAgc3RhdHVzCgogICAgICAgIDpwYXJhbSB3YWxsZXRfaWQ6IFdhbGxldCBJZCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgd2FsbGV0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2VtYmVkZGVkX3dhbGxldF9zZXR1cF9zdGF0dXMiLCBwYXJhbV9uYW1lPSJ3YWxsZXRfaWQiLCBwYXJhbV92YWx1ZT13YWxsZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9lbWJlZGRlZF93YWxsZXRfc2V0dXBfc3RhdHVzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgd2FsbGV0X2lkPXdhbGxldF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkVtYmVkZGVkV2FsbGV0U2V0dXBTdGF0dXNSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9lbWJlZGRlZF93YWxsZXRfc2V0dXBfc3RhdHVzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHdhbGxldF9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgd2FsbGV0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3dhbGxldElkJ10gPSB3YWxsZXRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9uY3cvd2FsbGV0cy97d2FsbGV0SWR9L3NldHVwX3N0YXR1cycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfZW1iZWRkZWRfd2FsbGV0X3N1cHBvcnRlZF9hc3NldHMoCiAgICAgICAgc2VsZiwKICAgICAgICBwYWdlX2N1cnNvcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJOZXh0IHBhZ2UgY3Vyc29yIHRvIGZldGNoIildID0gTm9uZSwKICAgICAgICBwYWdlX3NpemU6IEFubm90YXRlZFtPcHRpb25hbFtVbmlvbltBbm5vdGF0ZWRbZmxvYXQsIEZpZWxkKGxlPTQwMCwgc3RyaWN0PVRydWUpXSwgQW5ub3RhdGVkW2ludCwgRmllbGQobGU9NDAwLCBzdHJpY3Q9VHJ1ZSldXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJJdGVtcyBwZXIgcGFnZSIpXSA9IE5vbmUsCiAgICAgICAgb25seV9iYXNlX2Fzc2V0czogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdEJvb2xdLCBGaWVsZChkZXNjcmlwdGlvbj0iT25seSBiYXNlIGFzc2V0cyIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlXV06CiAgICAgICAgIiIiUmV0cmlldmUgc3VwcG9ydGVkIGFzc2V0cwoKICAgICAgICBHZXQgYWxsIHRoZSBhdmFpbGFibGUgc3VwcG9ydGVkIGFzc2V0cyBmb3IgdGhlIE5vbi1DdXN0b2RpYWwgV2FsbGV0CgogICAgICAgIDpwYXJhbSBwYWdlX2N1cnNvcjogTmV4dCBwYWdlIGN1cnNvciB0byBmZXRjaAogICAgICAgIDp0eXBlIHBhZ2VfY3Vyc29yOiBzdHIKICAgICAgICA6cGFyYW0gcGFnZV9zaXplOiBJdGVtcyBwZXIgcGFnZQogICAgICAgIDp0eXBlIHBhZ2Vfc2l6ZTogZmxvYXQKICAgICAgICA6cGFyYW0gb25seV9iYXNlX2Fzc2V0czogT25seSBiYXNlIGFzc2V0cwogICAgICAgIDp0eXBlIG9ubHlfYmFzZV9hc3NldHM6IGJvb2wKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfZW1iZWRkZWRfd2FsbGV0X3N1cHBvcnRlZF9hc3NldHNfc2VyaWFsaXplKAogICAgICAgICAgICBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwKICAgICAgICAgICAgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwKICAgICAgICAgICAgb25seV9iYXNlX2Fzc2V0cz1vbmx5X2Jhc2VfYXNzZXRzLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBc3NldHNSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9lbWJlZGRlZF93YWxsZXRfc3VwcG9ydGVkX2Fzc2V0c19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBwYWdlX2N1cnNvciwKICAgICAgICBwYWdlX3NpemUsCiAgICAgICAgb25seV9iYXNlX2Fzc2V0cywKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgcGFnZV9jdXJzb3IgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VDdXJzb3InLCBwYWdlX2N1cnNvcikpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2Vfc2l6ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZVNpemUnLCBwYWdlX3NpemUpKQogICAgICAgICAgICAKICAgICAgICBpZiBvbmx5X2Jhc2VfYXNzZXRzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdvbmx5QmFzZUFzc2V0cycsIG9ubHlfYmFzZV9hc3NldHMpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9uY3cvd2FsbGV0cy9zdXBwb3J0ZWRfYXNzZXRzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9lbWJlZGRlZF93YWxsZXRzKAogICAgICAgIHNlbGYsCiAgICAgICAgcGFnZV9jdXJzb3I6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iTmV4dCBwYWdlIGN1cnNvciB0byBmZXRjaCIpXSA9IE5vbmUsCiAgICAgICAgcGFnZV9zaXplOiBBbm5vdGF0ZWRbT3B0aW9uYWxbVW5pb25bQW5ub3RhdGVkW2Zsb2F0LCBGaWVsZChsZT00MDAsIHN0cmljdD1UcnVlKV0sIEFubm90YXRlZFtpbnQsIEZpZWxkKGxlPTQwMCwgc3RyaWN0PVRydWUpXV1dLCBGaWVsZChkZXNjcmlwdGlvbj0iSXRlbXMgcGVyIHBhZ2UiKV0gPSBOb25lLAogICAgICAgIHNvcnQ6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iRmllbGQocykgdG8gdXNlIGZvciBzb3J0aW5nIildID0gTm9uZSwKICAgICAgICBvcmRlcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJJcyB0aGUgb3JkZXIgYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmciKV0gPSBOb25lLAogICAgICAgIGVuYWJsZWQ6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RCb29sXSwgRmllbGQoZGVzY3JpcHRpb249IkVuYWJsZWQgV2FsbGV0cyIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtFbWJlZGRlZFdhbGxldFBhZ2luYXRlZFdhbGxldHNSZXNwb25zZV1dOgogICAgICAgICIiIkxpc3Qgd2FsbGV0cwoKICAgICAgICBHZXQgYWxsIE5vbiBDdXN0b2RpYWwgV2FsbGV0cwoKICAgICAgICA6cGFyYW0gcGFnZV9jdXJzb3I6IE5leHQgcGFnZSBjdXJzb3IgdG8gZmV0Y2gKICAgICAgICA6dHlwZSBwYWdlX2N1cnNvcjogc3RyCiAgICAgICAgOnBhcmFtIHBhZ2Vfc2l6ZTogSXRlbXMgcGVyIHBhZ2UKICAgICAgICA6dHlwZSBwYWdlX3NpemU6IGZsb2F0CiAgICAgICAgOnBhcmFtIHNvcnQ6IEZpZWxkKHMpIHRvIHVzZSBmb3Igc29ydGluZwogICAgICAgIDp0eXBlIHNvcnQ6IHN0cgogICAgICAgIDpwYXJhbSBvcmRlcjogSXMgdGhlIG9yZGVyIGFzY2VuZGluZyBvciBkZXNjZW5kaW5nCiAgICAgICAgOnR5cGUgb3JkZXI6IHN0cgogICAgICAgIDpwYXJhbSBlbmFibGVkOiBFbmFibGVkIFdhbGxldHMKICAgICAgICA6dHlwZSBlbmFibGVkOiBib29sCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2VtYmVkZGVkX3dhbGxldHNfc2VyaWFsaXplKAogICAgICAgICAgICBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwKICAgICAgICAgICAgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwKICAgICAgICAgICAgc29ydD1zb3J0LAogICAgICAgICAgICBvcmRlcj1vcmRlciwKICAgICAgICAgICAgZW5hYmxlZD1lbmFibGVkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRXYWxsZXRzUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfZW1iZWRkZWRfd2FsbGV0c19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBwYWdlX2N1cnNvciwKICAgICAgICBwYWdlX3NpemUsCiAgICAgICAgc29ydCwKICAgICAgICBvcmRlciwKICAgICAgICBlbmFibGVkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiBwYWdlX2N1cnNvciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZUN1cnNvcicsIHBhZ2VfY3Vyc29yKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgcGFnZV9zaXplIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlU2l6ZScsIHBhZ2Vfc2l6ZSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHNvcnQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3NvcnQnLCBzb3J0KSkKICAgICAgICAgICAgCiAgICAgICAgaWYgb3JkZXIgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ29yZGVyJywgb3JkZXIpKQogICAgICAgICAgICAKICAgICAgICBpZiBlbmFibGVkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdlbmFibGVkJywgZW5hYmxlZCkpCiAgICAgICAgICAgIAogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL25jdy93YWxsZXRzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9wdWJsaWNfa2V5X2luZm9fbmN3KAogICAgICAgIHNlbGYsCiAgICAgICAgeF9lbmRfdXNlcl93YWxsZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJVbmlxdWUgSUQgb2YgdGhlIEVuZC1Vc2VyIHdhbGxldCB0byB0aGUgQVBJIHJlcXVlc3QuIFJlcXVpcmVkIGZvciBlbmQtdXNlciB3YWxsZXQgb3BlcmF0aW9ucy4iKV0sCiAgICAgICAgd2FsbGV0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBOb24tQ3VzdG9kaWFsIHdhbGxldCIpXSwKICAgICAgICBkZXJpdmF0aW9uX3BhdGg6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJBbiBhcnJheSBvZiBpbnRlZ2VycyAocGFzc2VkIGFzIEpTT04gc3RyaW5naWZpZWQgYXJyYXkpIHJlcHJlc2VudGluZyB0aGUgZnVsbCBCSVA0NCBkZXJpdmF0aW9uIHBhdGggb2YgdGhlIHJlcXVlc3RlZCBwdWJsaWMga2V5LiAgVGhlIGZpcnN0IGVsZW1lbnQgbXVzdCBhbHdheXMgYmUgNDQuICIpXSwKICAgICAgICBhbGdvcml0aG06IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJFbGxpcHRpYyBDdXJ2ZSIpXSwKICAgICAgICBjb21wcmVzc2VkOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0Qm9vbF0sIEZpZWxkKGRlc2NyaXB0aW9uPSJDb21wcmVzc2VkL1VuY29tcHJlc3NlZCBwdWJsaWMga2V5IGZvcm1hdCIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtQdWJsaWNLZXlJbmZvcm1hdGlvbl1dOgogICAgICAgICIiIkdldCB0aGUgcHVibGljIGtleSBmb3IgYSBkZXJpdmF0aW9uIHBhdGgKCiAgICAgICAgR2V0cyB0aGUgcHVibGljIGtleSBpbmZvcm1hdGlvbiBiYXNlZCBvbiBkZXJpdmF0aW9uIHBhdGggYW5kIHNpZ25pbmcgYWxnb3JpdGhtIHdpdGhpbiBhIE5vbi1DdXN0b2RpYWwgV2FsbGV0CgogICAgICAgIDpwYXJhbSB4X2VuZF91c2VyX3dhbGxldF9pZDogVW5pcXVlIElEIG9mIHRoZSBFbmQtVXNlciB3YWxsZXQgdG8gdGhlIEFQSSByZXF1ZXN0LiBSZXF1aXJlZCBmb3IgZW5kLXVzZXIgd2FsbGV0IG9wZXJhdGlvbnMuIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB4X2VuZF91c2VyX3dhbGxldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIHdhbGxldF9pZDogVGhlIElEIG9mIHRoZSBOb24tQ3VzdG9kaWFsIHdhbGxldCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgd2FsbGV0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gZGVyaXZhdGlvbl9wYXRoOiBBbiBhcnJheSBvZiBpbnRlZ2VycyAocGFzc2VkIGFzIEpTT04gc3RyaW5naWZpZWQgYXJyYXkpIHJlcHJlc2VudGluZyB0aGUgZnVsbCBCSVA0NCBkZXJpdmF0aW9uIHBhdGggb2YgdGhlIHJlcXVlc3RlZCBwdWJsaWMga2V5LiAgVGhlIGZpcnN0IGVsZW1lbnQgbXVzdCBhbHdheXMgYmUgNDQuICAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgZGVyaXZhdGlvbl9wYXRoOiBzdHIKICAgICAgICA6cGFyYW0gYWxnb3JpdGhtOiBFbGxpcHRpYyBDdXJ2ZSAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYWxnb3JpdGhtOiBzdHIKICAgICAgICA6cGFyYW0gY29tcHJlc3NlZDogQ29tcHJlc3NlZC9VbmNvbXByZXNzZWQgcHVibGljIGtleSBmb3JtYXQKICAgICAgICA6dHlwZSBjb21wcmVzc2VkOiBib29sCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9wdWJsaWNfa2V5X2luZm9fbmN3IiwgcGFyYW1fbmFtZT0ieF9lbmRfdXNlcl93YWxsZXRfaWQiLCBwYXJhbV92YWx1ZT14X2VuZF91c2VyX3dhbGxldF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9wdWJsaWNfa2V5X2luZm9fbmN3IiwgcGFyYW1fbmFtZT0id2FsbGV0X2lkIiwgcGFyYW1fdmFsdWU9d2FsbGV0X2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3B1YmxpY19rZXlfaW5mb19uY3ciLCBwYXJhbV9uYW1lPSJkZXJpdmF0aW9uX3BhdGgiLCBwYXJhbV92YWx1ZT1kZXJpdmF0aW9uX3BhdGgpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfcHVibGljX2tleV9pbmZvX25jdyIsIHBhcmFtX25hbWU9ImFsZ29yaXRobSIsIHBhcmFtX3ZhbHVlPWFsZ29yaXRobSkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X3B1YmxpY19rZXlfaW5mb19uY3dfc2VyaWFsaXplKAogICAgICAgICAgICB4X2VuZF91c2VyX3dhbGxldF9pZD14X2VuZF91c2VyX3dhbGxldF9pZCwKICAgICAgICAgICAgd2FsbGV0X2lkPXdhbGxldF9pZCwKICAgICAgICAgICAgZGVyaXZhdGlvbl9wYXRoPWRlcml2YXRpb25fcGF0aCwKICAgICAgICAgICAgYWxnb3JpdGhtPWFsZ29yaXRobSwKICAgICAgICAgICAgY29tcHJlc3NlZD1jb21wcmVzc2VkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiUHVibGljS2V5SW5mb3JtYXRpb24iLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfcHVibGljX2tleV9pbmZvX25jd19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB4X2VuZF91c2VyX3dhbGxldF9pZCwKICAgICAgICB3YWxsZXRfaWQsCiAgICAgICAgZGVyaXZhdGlvbl9wYXRoLAogICAgICAgIGFsZ29yaXRobSwKICAgICAgICBjb21wcmVzc2VkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB3YWxsZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snd2FsbGV0SWQnXSA9IHdhbGxldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIGRlcml2YXRpb25fcGF0aCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnZGVyaXZhdGlvblBhdGgnLCBkZXJpdmF0aW9uX3BhdGgpKQogICAgICAgICAgICAKICAgICAgICBpZiBhbGdvcml0aG0gaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2FsZ29yaXRobScsIGFsZ29yaXRobSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIGNvbXByZXNzZWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2NvbXByZXNzZWQnLCBjb21wcmVzc2VkKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIHhfZW5kX3VzZXJfd2FsbGV0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snWC1FbmQtVXNlci1XYWxsZXQtSWQnXSA9IHhfZW5kX3VzZXJfd2FsbGV0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9uY3cvd2FsbGV0cy97d2FsbGV0SWR9L3B1YmxpY19rZXlfaW5mbycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiByZWZyZXNoX2VtYmVkZGVkX3dhbGxldF9hc3NldF9iYWxhbmNlKAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iV2FsbGV0IElkIildLAogICAgICAgIGFjY291bnRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFjY291bnQiKV0sCiAgICAgICAgYXNzZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFzc2V0IildLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0VtYmVkZGVkV2FsbGV0QXNzZXRCYWxhbmNlXV06CiAgICAgICAgIiIiUmVmcmVzaCBhc3NldCBiYWxhbmNlCgogICAgICAgIFJlZnJlc2ggdGhlIGJhbGFuY2Ugb2YgYW4gYXNzZXQgaW4gYSBzcGVjaWZpYyBhY2NvdW50CgogICAgICAgIDpwYXJhbSB3YWxsZXRfaWQ6IFdhbGxldCBJZCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgd2FsbGV0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gYWNjb3VudF9pZDogVGhlIElEIG9mIHRoZSBhY2NvdW50IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhY2NvdW50X2lkOiBzdHIKICAgICAgICA6cGFyYW0gYXNzZXRfaWQ6IFRoZSBJRCBvZiB0aGUgYXNzZXQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGFzc2V0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0icmVmcmVzaF9lbWJlZGRlZF93YWxsZXRfYXNzZXRfYmFsYW5jZSIsIHBhcmFtX25hbWU9IndhbGxldF9pZCIsIHBhcmFtX3ZhbHVlPXdhbGxldF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InJlZnJlc2hfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X2JhbGFuY2UiLCBwYXJhbV9uYW1lPSJhY2NvdW50X2lkIiwgcGFyYW1fdmFsdWU9YWNjb3VudF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InJlZnJlc2hfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0X2JhbGFuY2UiLCBwYXJhbV9uYW1lPSJhc3NldF9pZCIsIHBhcmFtX3ZhbHVlPWFzc2V0X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9yZWZyZXNoX2VtYmVkZGVkX3dhbGxldF9hc3NldF9iYWxhbmNlX3NlcmlhbGl6ZSgKICAgICAgICAgICAgd2FsbGV0X2lkPXdhbGxldF9pZCwKICAgICAgICAgICAgYWNjb3VudF9pZD1hY2NvdW50X2lkLAogICAgICAgICAgICBhc3NldF9pZD1hc3NldF9pZCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkVtYmVkZGVkV2FsbGV0QXNzZXRCYWxhbmNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfcmVmcmVzaF9lbWJlZGRlZF93YWxsZXRfYXNzZXRfYmFsYW5jZV9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB3YWxsZXRfaWQsCiAgICAgICAgYWNjb3VudF9pZCwKICAgICAgICBhc3NldF9pZCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHdhbGxldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd3YWxsZXRJZCddID0gd2FsbGV0X2lkCiAgICAgICAgaWYgYWNjb3VudF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydhY2NvdW50SWQnXSA9IGFjY291bnRfaWQKICAgICAgICBpZiBhc3NldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydhc3NldElkJ10gPSBhc3NldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQVVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbmN3L3dhbGxldHMve3dhbGxldElkfS9hY2NvdW50cy97YWNjb3VudElkfS9hc3NldHMve2Fzc2V0SWR9L2JhbGFuY2UnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgdXBkYXRlX2VtYmVkZGVkX3dhbGxldF9kZXZpY2Vfc3RhdHVzKAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iV2FsbGV0IElkIildLAogICAgICAgIGRldmljZV9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IkRldmljZSBJZCIpXSwKICAgICAgICBlbmFibGVfZGV2aWNlOiBFbmFibGVEZXZpY2UsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTm9uZV1dOgogICAgICAgICIiIlVwZGF0ZSBkZXZpY2Ugc3RhdHVzCgogICAgICAgIFVwZGF0ZSB0aGUgZW5hYmxlZC9kaXNhYmxlZCBzdGF0dXMgb2YgYSBzcGVjaWZpYyBkZXZpY2UgZm9yIGEgTm9uIEN1c3RvZGlhbCBXYWxsZXQKCiAgICAgICAgOnBhcmFtIHdhbGxldF9pZDogV2FsbGV0IElkIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB3YWxsZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBkZXZpY2VfaWQ6IERldmljZSBJZCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgZGV2aWNlX2lkOiBzdHIKICAgICAgICA6cGFyYW0gZW5hYmxlX2RldmljZTogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGVuYWJsZV9kZXZpY2U6IEVuYWJsZURldmljZQogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJ1cGRhdGVfZW1iZWRkZWRfd2FsbGV0X2RldmljZV9zdGF0dXMiLCBwYXJhbV9uYW1lPSJ3YWxsZXRfaWQiLCBwYXJhbV92YWx1ZT13YWxsZXRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJ1cGRhdGVfZW1iZWRkZWRfd2FsbGV0X2RldmljZV9zdGF0dXMiLCBwYXJhbV9uYW1lPSJkZXZpY2VfaWQiLCBwYXJhbV92YWx1ZT1kZXZpY2VfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3VwZGF0ZV9lbWJlZGRlZF93YWxsZXRfZGV2aWNlX3N0YXR1c19zZXJpYWxpemUoCiAgICAgICAgICAgIHdhbGxldF9pZD13YWxsZXRfaWQsCiAgICAgICAgICAgIGRldmljZV9pZD1kZXZpY2VfaWQsCiAgICAgICAgICAgIGVuYWJsZV9kZXZpY2U9ZW5hYmxlX2RldmljZSwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjA0JzogTm9uZSwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfdXBkYXRlX2VtYmVkZGVkX3dhbGxldF9kZXZpY2Vfc3RhdHVzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHdhbGxldF9pZCwKICAgICAgICBkZXZpY2VfaWQsCiAgICAgICAgZW5hYmxlX2RldmljZSwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHdhbGxldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd3YWxsZXRJZCddID0gd2FsbGV0X2lkCiAgICAgICAgaWYgZGV2aWNlX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2RldmljZUlkJ10gPSBkZXZpY2VfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBlbmFibGVfZGV2aWNlIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBlbmFibGVfZGV2aWNlCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUEFUQ0gnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbmN3L3dhbGxldHMve3dhbGxldElkfS9kZXZpY2VzL3tkZXZpY2VJZH0vc3RhdHVzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHVwZGF0ZV9lbWJlZGRlZF93YWxsZXRfc3RhdHVzKAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iV2FsbGV0IElkIildLAogICAgICAgIGVuYWJsZV93YWxsZXQ6IEVuYWJsZVdhbGxldCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtOb25lXV06CiAgICAgICAgIiIiVXBkYXRlIHdhbGxldCBzdGF0dXMKCiAgICAgICAgVXBkYXRlIHRoZSBlbmFibGVkL2Rpc2FibGVkIHN0YXR1cyBvZiBhIHNwZWNpZmljIE5vbiBDdXN0b2RpYWwgV2FsbGV0CgogICAgICAgIDpwYXJhbSB3YWxsZXRfaWQ6IFdhbGxldCBJZCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgd2FsbGV0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gZW5hYmxlX3dhbGxldDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGVuYWJsZV93YWxsZXQ6IEVuYWJsZVdhbGxldAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJ1cGRhdGVfZW1iZWRkZWRfd2FsbGV0X3N0YXR1cyIsIHBhcmFtX25hbWU9IndhbGxldF9pZCIsIHBhcmFtX3ZhbHVlPXdhbGxldF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fdXBkYXRlX2VtYmVkZGVkX3dhbGxldF9zdGF0dXNfc2VyaWFsaXplKAogICAgICAgICAgICB3YWxsZXRfaWQ9d2FsbGV0X2lkLAogICAgICAgICAgICBlbmFibGVfd2FsbGV0PWVuYWJsZV93YWxsZXQsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwNCc6IE5vbmUsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3VwZGF0ZV9lbWJlZGRlZF93YWxsZXRfc3RhdHVzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHdhbGxldF9pZCwKICAgICAgICBlbmFibGVfd2FsbGV0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgd2FsbGV0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3dhbGxldElkJ10gPSB3YWxsZXRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBlbmFibGVfd2FsbGV0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBlbmFibGVfd2FsbGV0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUEFUQ0gnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbmN3L3dhbGxldHMve3dhbGxldElkfS9zdGF0dXMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCg== \ No newline at end of file diff --git a/fireblocks/api/exchange_accounts_api.py b/fireblocks/api/exchange_accounts_api.py index 4dd845fa..62403d51 100644 --- a/fireblocks/api/exchange_accounts_api.py +++ b/fireblocks/api/exchange_accounts_api.py @@ -1,1046 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing import Optional, Union -from typing_extensions import Annotated -from fireblocks.models.add_exchange_account_request import AddExchangeAccountRequest -from fireblocks.models.add_exchange_account_response import AddExchangeAccountResponse -from fireblocks.models.convert_assets_request import ConvertAssetsRequest -from fireblocks.models.convert_assets_response import ConvertAssetsResponse -from fireblocks.models.create_internal_transfer_request import CreateInternalTransferRequest -from fireblocks.models.exchange_account import ExchangeAccount -from fireblocks.models.exchange_asset import ExchangeAsset -from fireblocks.models.get_exchange_accounts_credentials_public_key_response import GetExchangeAccountsCredentialsPublicKeyResponse -from fireblocks.models.get_paged_exchange_accounts_response import GetPagedExchangeAccountsResponse -from fireblocks.models.internal_transfer_response import InternalTransferResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class ExchangeAccountsApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def add_exchange_account( - self, - add_exchange_account_request: AddExchangeAccountRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[AddExchangeAccountResponse]]: - """Add an exchange account - - Add an exchange account to exchanges. Note: This endpoint currently only supports the following exchanges `INDEPENDENT_RESERVE`,`BIT`, `BITHUMB`, `BITSO`, `CRYPTOCOM`, `BYBIT_V2`, `WHITEBIT`, `HITBTC`, `GEMINI`, `HUOBI`, `GATEIO`, `COINHAKO`, `BULLISH`, `BITGET`, and `LUNO` To add an exchange account, please use the following [guide](https://developers.fireblocks.com/docs/add-an-exchange-account). - - :param add_exchange_account_request: (required) - :type add_exchange_account_request: AddExchangeAccountRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._add_exchange_account_serialize( - add_exchange_account_request=add_exchange_account_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "AddExchangeAccountResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _add_exchange_account_serialize( - self, - add_exchange_account_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if add_exchange_account_request is not None: - _body_params = add_exchange_account_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/exchange_accounts', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def convert_assets( - self, - exchange_account_id: Annotated[StrictStr, Field(description="The ID of the exchange account. Please make sure the exchange supports conversions. To find the ID of your exchange account, use GET/exchange_accounts.")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - convert_assets_request: Optional[ConvertAssetsRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ConvertAssetsResponse]]: - """Convert exchange account funds - - Convert exchange account funds from the source asset to the destination asset. Coinbase (USD to USDC, USDC to USD) and Bitso (MXN to USD) are supported conversions. Learn more about Fireblocks Exchange Connectivity in the following [guide](https://developers.fireblocks.com/docs/connect-to-exchanges-and-fiat-providers).
Endpoint Permission: Admin, Non-Signing Admin. - - :param exchange_account_id: The ID of the exchange account. Please make sure the exchange supports conversions. To find the ID of your exchange account, use GET/exchange_accounts. (required) - :type exchange_account_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param convert_assets_request: - :type convert_assets_request: ConvertAssetsRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="convert_assets", param_name="exchange_account_id", param_value=exchange_account_id) - - _param = self._convert_assets_serialize( - exchange_account_id=exchange_account_id, - idempotency_key=idempotency_key, - convert_assets_request=convert_assets_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ConvertAssetsResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _convert_assets_serialize( - self, - exchange_account_id, - idempotency_key, - convert_assets_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if exchange_account_id is not None: - _path_params['exchangeAccountId'] = exchange_account_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if convert_assets_request is not None: - _body_params = convert_assets_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/exchange_accounts/{exchangeAccountId}/convert', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_exchange_account( - self, - exchange_account_id: Annotated[StrictStr, Field(description="The ID of the exchange account to return")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ExchangeAccount]]: - """Get a specific exchange account - - Returns an exchange account by ID.
Endpoint Permission: Admin, Non-Signing Admin. - - :param exchange_account_id: The ID of the exchange account to return (required) - :type exchange_account_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_exchange_account", param_name="exchange_account_id", param_value=exchange_account_id) - - _param = self._get_exchange_account_serialize( - exchange_account_id=exchange_account_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ExchangeAccount", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_exchange_account_serialize( - self, - exchange_account_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if exchange_account_id is not None: - _path_params['exchangeAccountId'] = exchange_account_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/exchange_accounts/{exchangeAccountId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_exchange_account_asset( - self, - exchange_account_id: Annotated[StrictStr, Field(description="The ID of the exchange account to return")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset to return")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ExchangeAsset]]: - """Get an asset for an exchange account - - Returns an asset for an exchange account.
Endpoint Permission: Admin, Non-Signing Admin. - - :param exchange_account_id: The ID of the exchange account to return (required) - :type exchange_account_id: str - :param asset_id: The ID of the asset to return (required) - :type asset_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_exchange_account_asset", param_name="exchange_account_id", param_value=exchange_account_id) - validate_not_empty_string(function_name="get_exchange_account_asset", param_name="asset_id", param_value=asset_id) - - _param = self._get_exchange_account_asset_serialize( - exchange_account_id=exchange_account_id, - asset_id=asset_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ExchangeAsset", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_exchange_account_asset_serialize( - self, - exchange_account_id, - asset_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if exchange_account_id is not None: - _path_params['exchangeAccountId'] = exchange_account_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/exchange_accounts/{exchangeAccountId}/{assetId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_exchange_accounts_credentials_public_key( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GetExchangeAccountsCredentialsPublicKeyResponse]]: - """Get public key to encrypt exchange credentials - - Return public key - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_exchange_accounts_credentials_public_key_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GetExchangeAccountsCredentialsPublicKeyResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_exchange_accounts_credentials_public_key_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/exchange_accounts/credentials_public_key', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_paged_exchange_accounts( - self, - limit: Annotated[Union[Annotated[float, Field(le=5, strict=True, ge=1)], Annotated[int, Field(le=5, strict=True, ge=1)]], Field(description="number of exchanges per page")], - before: Optional[StrictStr] = None, - after: Optional[StrictStr] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GetPagedExchangeAccountsResponse]]: - """List connected exchange accounts - - Returns a list of the connected exchange accounts in your workspace.
Endpoint Permission: Admin, Non-Signing Admin. - - :param limit: number of exchanges per page (required) - :type limit: float - :param before: - :type before: str - :param after: - :type after: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_paged_exchange_accounts_serialize( - limit=limit, - before=before, - after=after, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GetPagedExchangeAccountsResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_paged_exchange_accounts_serialize( - self, - limit, - before, - after, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if before is not None: - - _query_params.append(('before', before)) - - if after is not None: - - _query_params.append(('after', after)) - - if limit is not None: - - _query_params.append(('limit', limit)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/exchange_accounts/paged', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def internal_transfer( - self, - exchange_account_id: Annotated[StrictStr, Field(description="The ID of the exchange account to return")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - create_internal_transfer_request: Optional[CreateInternalTransferRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[InternalTransferResponse]]: - """Internal transfer for exchange accounts - - Transfers funds between trading accounts under the same exchange account. Learn more about Fireblocks Exchange Connectivity in the following [guide](https://developers.fireblocks.com/docs/connect-to-exchanges-and-fiat-providers).
Endpoint Permission: Admin, Non-Signing Admin. - - :param exchange_account_id: The ID of the exchange account to return (required) - :type exchange_account_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param create_internal_transfer_request: - :type create_internal_transfer_request: CreateInternalTransferRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="internal_transfer", param_name="exchange_account_id", param_value=exchange_account_id) - - _param = self._internal_transfer_serialize( - exchange_account_id=exchange_account_id, - idempotency_key=idempotency_key, - create_internal_transfer_request=create_internal_transfer_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "InternalTransferResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _internal_transfer_serialize( - self, - exchange_account_id, - idempotency_key, - create_internal_transfer_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if exchange_account_id is not None: - _path_params['exchangeAccountId'] = exchange_account_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_internal_transfer_request is not None: - _body_params = create_internal_transfer_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/exchange_accounts/{exchangeAccountId}/internal_transfer', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZF9leGNoYW5nZV9hY2NvdW50X3JlcXVlc3QgaW1wb3J0IEFkZEV4Y2hhbmdlQWNjb3VudFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hZGRfZXhjaGFuZ2VfYWNjb3VudF9yZXNwb25zZSBpbXBvcnQgQWRkRXhjaGFuZ2VBY2NvdW50UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJ0X2Fzc2V0c19yZXF1ZXN0IGltcG9ydCBDb252ZXJ0QXNzZXRzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnRfYXNzZXRzX3Jlc3BvbnNlIGltcG9ydCBDb252ZXJ0QXNzZXRzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfaW50ZXJuYWxfdHJhbnNmZXJfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlSW50ZXJuYWxUcmFuc2ZlclJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGNoYW5nZV9hY2NvdW50IGltcG9ydCBFeGNoYW5nZUFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGNoYW5nZV9hc3NldCBpbXBvcnQgRXhjaGFuZ2VBc3NldApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9leGNoYW5nZV9hY2NvdW50c19jcmVkZW50aWFsc19wdWJsaWNfa2V5X3Jlc3BvbnNlIGltcG9ydCBHZXRFeGNoYW5nZUFjY291bnRzQ3JlZGVudGlhbHNQdWJsaWNLZXlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9wYWdlZF9leGNoYW5nZV9hY2NvdW50c19yZXNwb25zZSBpbXBvcnQgR2V0UGFnZWRFeGNoYW5nZUFjY291bnRzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5pbnRlcm5hbF90cmFuc2Zlcl9yZXNwb25zZSBpbXBvcnQgSW50ZXJuYWxUcmFuc2ZlclJlc3BvbnNlCgpmcm9tIGZpcmVibG9ja3MuYXBpX2NsaWVudCBpbXBvcnQgQXBpQ2xpZW50LCBSZXF1ZXN0U2VyaWFsaXplZApmcm9tIGZpcmVibG9ja3MuYXBpX3Jlc3BvbnNlIGltcG9ydCBBcGlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MucmVzdCBpbXBvcnQgUkVTVFJlc3BvbnNlVHlwZQpmcm9tIGZpcmVibG9ja3MudmFsaWRhdGlvbl91dGlscyBpbXBvcnQgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZwoKCmNsYXNzIEV4Y2hhbmdlQWNjb3VudHNBcGk6CiAgICAiIiJOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yCiAgICBSZWY6IGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaAoKICAgIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS4KICAgICIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcGlfY2xpZW50PU5vbmUpIC0+IE5vbmU6CiAgICAgICAgaWYgYXBpX2NsaWVudCBpcyBOb25lOgogICAgICAgICAgICBhcGlfY2xpZW50ID0gQXBpQ2xpZW50LmdldF9kZWZhdWx0KCkKICAgICAgICBzZWxmLmFwaV9jbGllbnQgPSBhcGlfY2xpZW50CgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgYWRkX2V4Y2hhbmdlX2FjY291bnQoCiAgICAgICAgc2VsZiwKICAgICAgICBhZGRfZXhjaGFuZ2VfYWNjb3VudF9yZXF1ZXN0OiBBZGRFeGNoYW5nZUFjY291bnRSZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0FkZEV4Y2hhbmdlQWNjb3VudFJlc3BvbnNlXV06CiAgICAgICAgIiIiQWRkIGFuIGV4Y2hhbmdlIGFjY291bnQKCiAgICAgICAgQWRkIGFuIGV4Y2hhbmdlIGFjY291bnQgdG8gZXhjaGFuZ2VzLiAgIE5vdGU6IFRoaXMgZW5kcG9pbnQgY3VycmVudGx5IG9ubHkgc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBleGNoYW5nZXMgYElOREVQRU5ERU5UX1JFU0VSVkVgLGBCSVRgLCBgQklUSFVNQmAsIGBCSVRTT2AsIGBDUllQVE9DT01gLCBgQllCSVRfVjJgLCBgV0hJVEVCSVRgLCBgSElUQlRDYCwgYEdFTUlOSWAsIGBIVU9CSWAsIGBHQVRFSU9gLCBgQ09JTkhBS09gLCBgQlVMTElTSGAsIGBCSVRHRVRgLCBhbmQgYExVTk9gICBUbyBhZGQgYW4gZXhjaGFuZ2UgYWNjb3VudCwgcGxlYXNlIHVzZSB0aGUgZm9sbG93aW5nIFtndWlkZV0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL2RvY3MvYWRkLWFuLWV4Y2hhbmdlLWFjY291bnQpLiAKCiAgICAgICAgOnBhcmFtIGFkZF9leGNoYW5nZV9hY2NvdW50X3JlcXVlc3Q6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhZGRfZXhjaGFuZ2VfYWNjb3VudF9yZXF1ZXN0OiBBZGRFeGNoYW5nZUFjY291bnRSZXF1ZXN0CiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fYWRkX2V4Y2hhbmdlX2FjY291bnRfc2VyaWFsaXplKAogICAgICAgICAgICBhZGRfZXhjaGFuZ2VfYWNjb3VudF9yZXF1ZXN0PWFkZF9leGNoYW5nZV9hY2NvdW50X3JlcXVlc3QsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMSc6ICJBZGRFeGNoYW5nZUFjY291bnRSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2FkZF9leGNoYW5nZV9hY2NvdW50X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGFkZF9leGNoYW5nZV9hY2NvdW50X3JlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBhZGRfZXhjaGFuZ2VfYWNjb3VudF9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBhZGRfZXhjaGFuZ2VfYWNjb3VudF9yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9leGNoYW5nZV9hY2NvdW50cycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBjb252ZXJ0X2Fzc2V0cygKICAgICAgICBzZWxmLAogICAgICAgIGV4Y2hhbmdlX2FjY291bnRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGV4Y2hhbmdlIGFjY291bnQuIFBsZWFzZSBtYWtlIHN1cmUgdGhlIGV4Y2hhbmdlIHN1cHBvcnRzIGNvbnZlcnNpb25zLiBUbyBmaW5kIHRoZSBJRCBvZiB5b3VyIGV4Y2hhbmdlIGFjY291bnQsIHVzZSBHRVQvZXhjaGFuZ2VfYWNjb3VudHMuIildLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBjb252ZXJ0X2Fzc2V0c19yZXF1ZXN0OiBPcHRpb25hbFtDb252ZXJ0QXNzZXRzUmVxdWVzdF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbQ29udmVydEFzc2V0c1Jlc3BvbnNlXV06CiAgICAgICAgIiIiQ29udmVydCBleGNoYW5nZSBhY2NvdW50IGZ1bmRzCgogICAgICAgIENvbnZlcnQgZXhjaGFuZ2UgYWNjb3VudCBmdW5kcyBmcm9tIHRoZSBzb3VyY2UgYXNzZXQgdG8gdGhlIGRlc3RpbmF0aW9uIGFzc2V0LiBDb2luYmFzZSAoVVNEIHRvIFVTREMsIFVTREMgdG8gVVNEKSBhbmQgQml0c28gKE1YTiB0byBVU0QpIGFyZSBzdXBwb3J0ZWQgY29udmVyc2lvbnMuIExlYXJuIG1vcmUgYWJvdXQgRmlyZWJsb2NrcyBFeGNoYW5nZSBDb25uZWN0aXZpdHkgaW4gdGhlIGZvbGxvd2luZyBbZ3VpZGVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL2Nvbm5lY3QtdG8tZXhjaGFuZ2VzLWFuZC1maWF0LXByb3ZpZGVycykuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKICAgICAgICA6cGFyYW0gZXhjaGFuZ2VfYWNjb3VudF9pZDogVGhlIElEIG9mIHRoZSBleGNoYW5nZSBhY2NvdW50LiBQbGVhc2UgbWFrZSBzdXJlIHRoZSBleGNoYW5nZSBzdXBwb3J0cyBjb252ZXJzaW9ucy4gVG8gZmluZCB0aGUgSUQgb2YgeW91ciBleGNoYW5nZSBhY2NvdW50LCB1c2UgR0VUL2V4Y2hhbmdlX2FjY291bnRzLiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgZXhjaGFuZ2VfYWNjb3VudF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIGNvbnZlcnRfYXNzZXRzX3JlcXVlc3Q6CiAgICAgICAgOnR5cGUgY29udmVydF9hc3NldHNfcmVxdWVzdDogQ29udmVydEFzc2V0c1JlcXVlc3QKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iY29udmVydF9hc3NldHMiLCBwYXJhbV9uYW1lPSJleGNoYW5nZV9hY2NvdW50X2lkIiwgcGFyYW1fdmFsdWU9ZXhjaGFuZ2VfYWNjb3VudF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fY29udmVydF9hc3NldHNfc2VyaWFsaXplKAogICAgICAgICAgICBleGNoYW5nZV9hY2NvdW50X2lkPWV4Y2hhbmdlX2FjY291bnRfaWQsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIGNvbnZlcnRfYXNzZXRzX3JlcXVlc3Q9Y29udmVydF9hc3NldHNfcmVxdWVzdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkNvbnZlcnRBc3NldHNSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2NvbnZlcnRfYXNzZXRzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGV4Y2hhbmdlX2FjY291bnRfaWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIGNvbnZlcnRfYXNzZXRzX3JlcXVlc3QsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGV4Y2hhbmdlX2FjY291bnRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snZXhjaGFuZ2VBY2NvdW50SWQnXSA9IGV4Y2hhbmdlX2FjY291bnRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBjb252ZXJ0X2Fzc2V0c19yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBjb252ZXJ0X2Fzc2V0c19yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9leGNoYW5nZV9hY2NvdW50cy97ZXhjaGFuZ2VBY2NvdW50SWR9L2NvbnZlcnQnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X2V4Y2hhbmdlX2FjY291bnQoCiAgICAgICAgc2VsZiwKICAgICAgICBleGNoYW5nZV9hY2NvdW50X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBleGNoYW5nZSBhY2NvdW50IHRvIHJldHVybiIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0V4Y2hhbmdlQWNjb3VudF1dOgogICAgICAgICIiIkdldCBhIHNwZWNpZmljIGV4Y2hhbmdlIGFjY291bnQKCiAgICAgICAgUmV0dXJucyBhbiBleGNoYW5nZSBhY2NvdW50IGJ5IElELiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbi4KCiAgICAgICAgOnBhcmFtIGV4Y2hhbmdlX2FjY291bnRfaWQ6IFRoZSBJRCBvZiB0aGUgZXhjaGFuZ2UgYWNjb3VudCB0byByZXR1cm4gKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGV4Y2hhbmdlX2FjY291bnRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfZXhjaGFuZ2VfYWNjb3VudCIsIHBhcmFtX25hbWU9ImV4Y2hhbmdlX2FjY291bnRfaWQiLCBwYXJhbV92YWx1ZT1leGNoYW5nZV9hY2NvdW50X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfZXhjaGFuZ2VfYWNjb3VudF9zZXJpYWxpemUoCiAgICAgICAgICAgIGV4Y2hhbmdlX2FjY291bnRfaWQ9ZXhjaGFuZ2VfYWNjb3VudF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkV4Y2hhbmdlQWNjb3VudCIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9leGNoYW5nZV9hY2NvdW50X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGV4Y2hhbmdlX2FjY291bnRfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGV4Y2hhbmdlX2FjY291bnRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snZXhjaGFuZ2VBY2NvdW50SWQnXSA9IGV4Y2hhbmdlX2FjY291bnRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9leGNoYW5nZV9hY2NvdW50cy97ZXhjaGFuZ2VBY2NvdW50SWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9leGNoYW5nZV9hY2NvdW50X2Fzc2V0KAogICAgICAgIHNlbGYsCiAgICAgICAgZXhjaGFuZ2VfYWNjb3VudF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgZXhjaGFuZ2UgYWNjb3VudCB0byByZXR1cm4iKV0sCiAgICAgICAgYXNzZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIHJldHVybiIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0V4Y2hhbmdlQXNzZXRdXToKICAgICAgICAiIiJHZXQgYW4gYXNzZXQgZm9yIGFuIGV4Y2hhbmdlIGFjY291bnQKCiAgICAgICAgUmV0dXJucyBhbiBhc3NldCBmb3IgYW4gZXhjaGFuZ2UgYWNjb3VudC4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4uCgogICAgICAgIDpwYXJhbSBleGNoYW5nZV9hY2NvdW50X2lkOiBUaGUgSUQgb2YgdGhlIGV4Y2hhbmdlIGFjY291bnQgdG8gcmV0dXJuIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBleGNoYW5nZV9hY2NvdW50X2lkOiBzdHIKICAgICAgICA6cGFyYW0gYXNzZXRfaWQ6IFRoZSBJRCBvZiB0aGUgYXNzZXQgdG8gcmV0dXJuIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhc3NldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9leGNoYW5nZV9hY2NvdW50X2Fzc2V0IiwgcGFyYW1fbmFtZT0iZXhjaGFuZ2VfYWNjb3VudF9pZCIsIHBhcmFtX3ZhbHVlPWV4Y2hhbmdlX2FjY291bnRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfZXhjaGFuZ2VfYWNjb3VudF9hc3NldCIsIHBhcmFtX25hbWU9ImFzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YXNzZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9leGNoYW5nZV9hY2NvdW50X2Fzc2V0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgZXhjaGFuZ2VfYWNjb3VudF9pZD1leGNoYW5nZV9hY2NvdW50X2lkLAogICAgICAgICAgICBhc3NldF9pZD1hc3NldF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkV4Y2hhbmdlQXNzZXQiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfZXhjaGFuZ2VfYWNjb3VudF9hc3NldF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBleGNoYW5nZV9hY2NvdW50X2lkLAogICAgICAgIGFzc2V0X2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBleGNoYW5nZV9hY2NvdW50X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2V4Y2hhbmdlQWNjb3VudElkJ10gPSBleGNoYW5nZV9hY2NvdW50X2lkCiAgICAgICAgaWYgYXNzZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYXNzZXRJZCddID0gYXNzZXRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9leGNoYW5nZV9hY2NvdW50cy97ZXhjaGFuZ2VBY2NvdW50SWR9L3thc3NldElkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfZXhjaGFuZ2VfYWNjb3VudHNfY3JlZGVudGlhbHNfcHVibGljX2tleSgKICAgICAgICBzZWxmLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbR2V0RXhjaGFuZ2VBY2NvdW50c0NyZWRlbnRpYWxzUHVibGljS2V5UmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgcHVibGljIGtleSB0byBlbmNyeXB0IGV4Y2hhbmdlIGNyZWRlbnRpYWxzCgogICAgICAgIFJldHVybiBwdWJsaWMga2V5CgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9leGNoYW5nZV9hY2NvdW50c19jcmVkZW50aWFsc19wdWJsaWNfa2V5X3NlcmlhbGl6ZSgKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkdldEV4Y2hhbmdlQWNjb3VudHNDcmVkZW50aWFsc1B1YmxpY0tleVJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2V4Y2hhbmdlX2FjY291bnRzX2NyZWRlbnRpYWxzX3B1YmxpY19rZXlfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2V4Y2hhbmdlX2FjY291bnRzL2NyZWRlbnRpYWxzX3B1YmxpY19rZXknLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X3BhZ2VkX2V4Y2hhbmdlX2FjY291bnRzKAogICAgICAgIHNlbGYsCiAgICAgICAgbGltaXQ6IEFubm90YXRlZFtVbmlvbltBbm5vdGF0ZWRbZmxvYXQsIEZpZWxkKGxlPTUsIHN0cmljdD1UcnVlLCBnZT0xKV0sIEFubm90YXRlZFtpbnQsIEZpZWxkKGxlPTUsIHN0cmljdD1UcnVlLCBnZT0xKV1dLCBGaWVsZChkZXNjcmlwdGlvbj0ibnVtYmVyIG9mIGV4Y2hhbmdlcyBwZXIgcGFnZSIpXSwKICAgICAgICBiZWZvcmU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIGFmdGVyOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0dldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlXV06CiAgICAgICAgIiIiTGlzdCBjb25uZWN0ZWQgZXhjaGFuZ2UgYWNjb3VudHMKCiAgICAgICAgUmV0dXJucyBhIGxpc3Qgb2YgdGhlIGNvbm5lY3RlZCBleGNoYW5nZSBhY2NvdW50cyBpbiB5b3VyIHdvcmtzcGFjZS4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4uCgogICAgICAgIDpwYXJhbSBsaW1pdDogbnVtYmVyIG9mIGV4Y2hhbmdlcyBwZXIgcGFnZSAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgbGltaXQ6IGZsb2F0CiAgICAgICAgOnBhcmFtIGJlZm9yZToKICAgICAgICA6dHlwZSBiZWZvcmU6IHN0cgogICAgICAgIDpwYXJhbSBhZnRlcjoKICAgICAgICA6dHlwZSBhZnRlcjogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X3BhZ2VkX2V4Y2hhbmdlX2FjY291bnRzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbGltaXQ9bGltaXQsCiAgICAgICAgICAgIGJlZm9yZT1iZWZvcmUsCiAgICAgICAgICAgIGFmdGVyPWFmdGVyLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiR2V0UGFnZWRFeGNoYW5nZUFjY291bnRzUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfcGFnZWRfZXhjaGFuZ2VfYWNjb3VudHNfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgbGltaXQsCiAgICAgICAgYmVmb3JlLAogICAgICAgIGFmdGVyLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiBiZWZvcmUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2JlZm9yZScsIGJlZm9yZSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIGFmdGVyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdhZnRlcicsIGFmdGVyKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgbGltaXQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2xpbWl0JywgbGltaXQpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9leGNoYW5nZV9hY2NvdW50cy9wYWdlZCcsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBpbnRlcm5hbF90cmFuc2ZlcigKICAgICAgICBzZWxmLAogICAgICAgIGV4Y2hhbmdlX2FjY291bnRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGV4Y2hhbmdlIGFjY291bnQgdG8gcmV0dXJuIildLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBjcmVhdGVfaW50ZXJuYWxfdHJhbnNmZXJfcmVxdWVzdDogT3B0aW9uYWxbQ3JlYXRlSW50ZXJuYWxUcmFuc2ZlclJlcXVlc3RdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0ludGVybmFsVHJhbnNmZXJSZXNwb25zZV1dOgogICAgICAgICIiIkludGVybmFsIHRyYW5zZmVyIGZvciBleGNoYW5nZSBhY2NvdW50cwoKICAgICAgICBUcmFuc2ZlcnMgZnVuZHMgYmV0d2VlbiB0cmFkaW5nIGFjY291bnRzIHVuZGVyIHRoZSBzYW1lIGV4Y2hhbmdlIGFjY291bnQuIExlYXJuIG1vcmUgYWJvdXQgRmlyZWJsb2NrcyBFeGNoYW5nZSBDb25uZWN0aXZpdHkgaW4gdGhlIGZvbGxvd2luZyBbZ3VpZGVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL2Nvbm5lY3QtdG8tZXhjaGFuZ2VzLWFuZC1maWF0LXByb3ZpZGVycykuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKICAgICAgICA6cGFyYW0gZXhjaGFuZ2VfYWNjb3VudF9pZDogVGhlIElEIG9mIHRoZSBleGNoYW5nZSBhY2NvdW50IHRvIHJldHVybiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgZXhjaGFuZ2VfYWNjb3VudF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIGNyZWF0ZV9pbnRlcm5hbF90cmFuc2Zlcl9yZXF1ZXN0OgogICAgICAgIDp0eXBlIGNyZWF0ZV9pbnRlcm5hbF90cmFuc2Zlcl9yZXF1ZXN0OiBDcmVhdGVJbnRlcm5hbFRyYW5zZmVyUmVxdWVzdAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJpbnRlcm5hbF90cmFuc2ZlciIsIHBhcmFtX25hbWU9ImV4Y2hhbmdlX2FjY291bnRfaWQiLCBwYXJhbV92YWx1ZT1leGNoYW5nZV9hY2NvdW50X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9pbnRlcm5hbF90cmFuc2Zlcl9zZXJpYWxpemUoCiAgICAgICAgICAgIGV4Y2hhbmdlX2FjY291bnRfaWQ9ZXhjaGFuZ2VfYWNjb3VudF9pZCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgY3JlYXRlX2ludGVybmFsX3RyYW5zZmVyX3JlcXVlc3Q9Y3JlYXRlX2ludGVybmFsX3RyYW5zZmVyX3JlcXVlc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMSc6ICJJbnRlcm5hbFRyYW5zZmVyUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9pbnRlcm5hbF90cmFuc2Zlcl9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBleGNoYW5nZV9hY2NvdW50X2lkLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBjcmVhdGVfaW50ZXJuYWxfdHJhbnNmZXJfcmVxdWVzdCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgZXhjaGFuZ2VfYWNjb3VudF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydleGNoYW5nZUFjY291bnRJZCddID0gZXhjaGFuZ2VfYWNjb3VudF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIGNyZWF0ZV9pbnRlcm5hbF90cmFuc2Zlcl9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBjcmVhdGVfaW50ZXJuYWxfdHJhbnNmZXJfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvZXhjaGFuZ2VfYWNjb3VudHMve2V4Y2hhbmdlQWNjb3VudElkfS9pbnRlcm5hbF90cmFuc2ZlcicsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoK \ No newline at end of file diff --git a/fireblocks/api/external_wallets_api.py b/fireblocks/api/external_wallets_api.py index 52c812cd..265f96ab 100644 --- a/fireblocks/api/external_wallets_api.py +++ b/fireblocks/api/external_wallets_api.py @@ -1,1167 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing import List, Optional -from typing_extensions import Annotated -from fireblocks.models.add_asset_to_external_wallet_request import AddAssetToExternalWalletRequest -from fireblocks.models.create_wallet_request import CreateWalletRequest -from fireblocks.models.external_wallet_asset import ExternalWalletAsset -from fireblocks.models.set_customer_ref_id_request import SetCustomerRefIdRequest -from fireblocks.models.unmanaged_wallet import UnmanagedWallet - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class ExternalWalletsApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def add_asset_to_external_wallet( - self, - wallet_id: Annotated[StrictStr, Field(description="The ID of the wallet")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset to add")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - add_asset_to_external_wallet_request: Optional[AddAssetToExternalWalletRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ExternalWalletAsset]]: - """Add an asset to an external wallet. - - Adds an asset to an existing external wallet.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param wallet_id: The ID of the wallet (required) - :type wallet_id: str - :param asset_id: The ID of the asset to add (required) - :type asset_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param add_asset_to_external_wallet_request: - :type add_asset_to_external_wallet_request: AddAssetToExternalWalletRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="add_asset_to_external_wallet", param_name="wallet_id", param_value=wallet_id) - validate_not_empty_string(function_name="add_asset_to_external_wallet", param_name="asset_id", param_value=asset_id) - - _param = self._add_asset_to_external_wallet_serialize( - wallet_id=wallet_id, - asset_id=asset_id, - idempotency_key=idempotency_key, - add_asset_to_external_wallet_request=add_asset_to_external_wallet_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ExternalWalletAsset", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _add_asset_to_external_wallet_serialize( - self, - wallet_id, - asset_id, - idempotency_key, - add_asset_to_external_wallet_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if add_asset_to_external_wallet_request is not None: - _body_params = add_asset_to_external_wallet_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/external_wallets/{walletId}/{assetId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_external_wallet( - self, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - create_wallet_request: Optional[CreateWalletRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[UnmanagedWallet]]: - """Create an external wallet - - Creates a new external wallet with the requested name. External Wallet is a whitelisted address of a wallet that belongs to your users/counterparties. - You cannot see the balance of the external wallet. - You cannot initiate transactions from an external wallet as the source via Fireblocks.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param create_wallet_request: - :type create_wallet_request: CreateWalletRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_external_wallet_serialize( - idempotency_key=idempotency_key, - create_wallet_request=create_wallet_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "UnmanagedWallet", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_external_wallet_serialize( - self, - idempotency_key, - create_wallet_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_wallet_request is not None: - _body_params = create_wallet_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/external_wallets', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def delete_external_wallet( - self, - wallet_id: Annotated[StrictStr, Field(description="The ID of the wallet to delete")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Delete an external wallet - - Deletes an external wallet by ID. External Wallet is a whitelisted address of a wallet that belongs to your users/counterparties.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param wallet_id: The ID of the wallet to delete (required) - :type wallet_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="delete_external_wallet", param_name="wallet_id", param_value=wallet_id) - - _param = self._delete_external_wallet_serialize( - wallet_id=wallet_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': None, - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _delete_external_wallet_serialize( - self, - wallet_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/external_wallets/{walletId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_external_wallet( - self, - wallet_id: Annotated[StrictStr, Field(description="The ID of the wallet to return")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[UnmanagedWallet]]: - """Find an external wallet - - Returns an external wallet by ID. External Wallet is a whitelisted address of a wallet that belongs to your users/counterparties.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param wallet_id: The ID of the wallet to return (required) - :type wallet_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_external_wallet", param_name="wallet_id", param_value=wallet_id) - - _param = self._get_external_wallet_serialize( - wallet_id=wallet_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "UnmanagedWallet", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_external_wallet_serialize( - self, - wallet_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/external_wallets/{walletId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_external_wallet_asset( - self, - wallet_id: Annotated[StrictStr, Field(description="The ID of the wallet")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset to return")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ExternalWalletAsset]]: - """Get an asset from an external wallet - - Returns an external wallet by wallet ID and asset ID. External Wallet is a whitelisted address of a wallet that belongs to your users/counterparties.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param wallet_id: The ID of the wallet (required) - :type wallet_id: str - :param asset_id: The ID of the asset to return (required) - :type asset_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_external_wallet_asset", param_name="wallet_id", param_value=wallet_id) - validate_not_empty_string(function_name="get_external_wallet_asset", param_name="asset_id", param_value=asset_id) - - _param = self._get_external_wallet_asset_serialize( - wallet_id=wallet_id, - asset_id=asset_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ExternalWalletAsset", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_external_wallet_asset_serialize( - self, - wallet_id, - asset_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/external_wallets/{walletId}/{assetId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_external_wallets( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[UnmanagedWallet]]]: - """List external wallets - - Gets a list of external wallets under the workspace. External Wallet is a whitelisted address of a wallet that belongs to your users/counterparties. - You cannot see the balance of the external wallet. - You cannot initiate transactions from an external wallet as the source via Fireblocks.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_external_wallets_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "List[UnmanagedWallet]", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_external_wallets_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/external_wallets', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def remove_asset_from_external_wallet( - self, - wallet_id: Annotated[StrictStr, Field(description="The ID of the wallet")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset to delete")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Delete an asset from an external wallet - - Deletes an external wallet asset by ID.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param wallet_id: The ID of the wallet (required) - :type wallet_id: str - :param asset_id: The ID of the asset to delete (required) - :type asset_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="remove_asset_from_external_wallet", param_name="wallet_id", param_value=wallet_id) - validate_not_empty_string(function_name="remove_asset_from_external_wallet", param_name="asset_id", param_value=asset_id) - - _param = self._remove_asset_from_external_wallet_serialize( - wallet_id=wallet_id, - asset_id=asset_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': None, - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _remove_asset_from_external_wallet_serialize( - self, - wallet_id, - asset_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/external_wallets/{walletId}/{assetId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_external_wallet_customer_ref_id( - self, - wallet_id: Annotated[StrictStr, Field(description="The wallet ID")], - set_customer_ref_id_request: SetCustomerRefIdRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Set an AML customer reference ID for an external wallet - - Sets an AML/KYT customer reference ID for the specific external wallet. External Wallet is a whitelisted address of a wallet that belongs to your users/counterparties.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param wallet_id: The wallet ID (required) - :type wallet_id: str - :param set_customer_ref_id_request: (required) - :type set_customer_ref_id_request: SetCustomerRefIdRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="set_external_wallet_customer_ref_id", param_name="wallet_id", param_value=wallet_id) - - _param = self._set_external_wallet_customer_ref_id_serialize( - wallet_id=wallet_id, - set_customer_ref_id_request=set_customer_ref_id_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': None, - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_external_wallet_customer_ref_id_serialize( - self, - wallet_id, - set_customer_ref_id_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if set_customer_ref_id_request is not None: - _body_params = set_customer_ref_id_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/external_wallets/{walletId}/set_customer_ref_id', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkX2Fzc2V0X3RvX2V4dGVybmFsX3dhbGxldF9yZXF1ZXN0IGltcG9ydCBBZGRBc3NldFRvRXh0ZXJuYWxXYWxsZXRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3dhbGxldF9yZXF1ZXN0IGltcG9ydCBDcmVhdGVXYWxsZXRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXh0ZXJuYWxfd2FsbGV0X2Fzc2V0IGltcG9ydCBFeHRlcm5hbFdhbGxldEFzc2V0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2N1c3RvbWVyX3JlZl9pZF9yZXF1ZXN0IGltcG9ydCBTZXRDdXN0b21lclJlZklkUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVubWFuYWdlZF93YWxsZXQgaW1wb3J0IFVubWFuYWdlZFdhbGxldAoKZnJvbSBmaXJlYmxvY2tzLmFwaV9jbGllbnQgaW1wb3J0IEFwaUNsaWVudCwgUmVxdWVzdFNlcmlhbGl6ZWQKZnJvbSBmaXJlYmxvY2tzLmFwaV9yZXNwb25zZSBpbXBvcnQgQXBpUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLnJlc3QgaW1wb3J0IFJFU1RSZXNwb25zZVR5cGUKZnJvbSBmaXJlYmxvY2tzLnZhbGlkYXRpb25fdXRpbHMgaW1wb3J0IHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcKCgpjbGFzcyBFeHRlcm5hbFdhbGxldHNBcGk6CiAgICAiIiJOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yCiAgICBSZWY6IGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaAoKICAgIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS4KICAgICIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcGlfY2xpZW50PU5vbmUpIC0+IE5vbmU6CiAgICAgICAgaWYgYXBpX2NsaWVudCBpcyBOb25lOgogICAgICAgICAgICBhcGlfY2xpZW50ID0gQXBpQ2xpZW50LmdldF9kZWZhdWx0KCkKICAgICAgICBzZWxmLmFwaV9jbGllbnQgPSBhcGlfY2xpZW50CgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgYWRkX2Fzc2V0X3RvX2V4dGVybmFsX3dhbGxldCgKICAgICAgICBzZWxmLAogICAgICAgIHdhbGxldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgd2FsbGV0IildLAogICAgICAgIGFzc2V0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBhc3NldCB0byBhZGQiKV0sCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIGFkZF9hc3NldF90b19leHRlcm5hbF93YWxsZXRfcmVxdWVzdDogT3B0aW9uYWxbQWRkQXNzZXRUb0V4dGVybmFsV2FsbGV0UmVxdWVzdF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbRXh0ZXJuYWxXYWxsZXRBc3NldF1dOgogICAgICAgICIiIkFkZCBhbiBhc3NldCB0byBhbiBleHRlcm5hbCB3YWxsZXQuCgogICAgICAgIEFkZHMgYW4gYXNzZXQgdG8gYW4gZXhpc3RpbmcgZXh0ZXJuYWwgd2FsbGV0LiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKICAgICAgICA6cGFyYW0gd2FsbGV0X2lkOiBUaGUgSUQgb2YgdGhlIHdhbGxldCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgd2FsbGV0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gYXNzZXRfaWQ6IFRoZSBJRCBvZiB0aGUgYXNzZXQgdG8gYWRkIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhc3NldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIGFkZF9hc3NldF90b19leHRlcm5hbF93YWxsZXRfcmVxdWVzdDoKICAgICAgICA6dHlwZSBhZGRfYXNzZXRfdG9fZXh0ZXJuYWxfd2FsbGV0X3JlcXVlc3Q6IEFkZEFzc2V0VG9FeHRlcm5hbFdhbGxldFJlcXVlc3QKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iYWRkX2Fzc2V0X3RvX2V4dGVybmFsX3dhbGxldCIsIHBhcmFtX25hbWU9IndhbGxldF9pZCIsIHBhcmFtX3ZhbHVlPXdhbGxldF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImFkZF9hc3NldF90b19leHRlcm5hbF93YWxsZXQiLCBwYXJhbV9uYW1lPSJhc3NldF9pZCIsIHBhcmFtX3ZhbHVlPWFzc2V0X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9hZGRfYXNzZXRfdG9fZXh0ZXJuYWxfd2FsbGV0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgd2FsbGV0X2lkPXdhbGxldF9pZCwKICAgICAgICAgICAgYXNzZXRfaWQ9YXNzZXRfaWQsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIGFkZF9hc3NldF90b19leHRlcm5hbF93YWxsZXRfcmVxdWVzdD1hZGRfYXNzZXRfdG9fZXh0ZXJuYWxfd2FsbGV0X3JlcXVlc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJFeHRlcm5hbFdhbGxldEFzc2V0IiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfYWRkX2Fzc2V0X3RvX2V4dGVybmFsX3dhbGxldF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB3YWxsZXRfaWQsCiAgICAgICAgYXNzZXRfaWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIGFkZF9hc3NldF90b19leHRlcm5hbF93YWxsZXRfcmVxdWVzdCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgd2FsbGV0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3dhbGxldElkJ10gPSB3YWxsZXRfaWQKICAgICAgICBpZiBhc3NldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydhc3NldElkJ10gPSBhc3NldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIGFkZF9hc3NldF90b19leHRlcm5hbF93YWxsZXRfcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gYWRkX2Fzc2V0X3RvX2V4dGVybmFsX3dhbGxldF9yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9leHRlcm5hbF93YWxsZXRzL3t3YWxsZXRJZH0ve2Fzc2V0SWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGNyZWF0ZV9leHRlcm5hbF93YWxsZXQoCiAgICAgICAgc2VsZiwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgY3JlYXRlX3dhbGxldF9yZXF1ZXN0OiBPcHRpb25hbFtDcmVhdGVXYWxsZXRSZXF1ZXN0XSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtVbm1hbmFnZWRXYWxsZXRdXToKICAgICAgICAiIiJDcmVhdGUgYW4gZXh0ZXJuYWwgd2FsbGV0CgogICAgICAgIENyZWF0ZXMgYSBuZXcgZXh0ZXJuYWwgd2FsbGV0IHdpdGggdGhlIHJlcXVlc3RlZCBuYW1lLiAgRXh0ZXJuYWwgV2FsbGV0IGlzIGEgd2hpdGVsaXN0ZWQgYWRkcmVzcyBvZiBhIHdhbGxldCB0aGF0IGJlbG9uZ3MgdG8geW91ciB1c2Vycy9jb3VudGVycGFydGllcy4gIC0gWW91IGNhbm5vdCBzZWUgdGhlIGJhbGFuY2Ugb2YgdGhlIGV4dGVybmFsIHdhbGxldC4gLSBZb3UgY2Fubm90IGluaXRpYXRlIHRyYW5zYWN0aW9ucyBmcm9tIGFuIGV4dGVybmFsIHdhbGxldCBhcyB0aGUgc291cmNlIHZpYSBGaXJlYmxvY2tzLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gY3JlYXRlX3dhbGxldF9yZXF1ZXN0OgogICAgICAgIDp0eXBlIGNyZWF0ZV93YWxsZXRfcmVxdWVzdDogQ3JlYXRlV2FsbGV0UmVxdWVzdAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2NyZWF0ZV9leHRlcm5hbF93YWxsZXRfc2VyaWFsaXplKAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBjcmVhdGVfd2FsbGV0X3JlcXVlc3Q9Y3JlYXRlX3dhbGxldF9yZXF1ZXN0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiVW5tYW5hZ2VkV2FsbGV0IiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfY3JlYXRlX2V4dGVybmFsX3dhbGxldF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgY3JlYXRlX3dhbGxldF9yZXF1ZXN0LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBjcmVhdGVfd2FsbGV0X3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IGNyZWF0ZV93YWxsZXRfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvZXh0ZXJuYWxfd2FsbGV0cycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBkZWxldGVfZXh0ZXJuYWxfd2FsbGV0KAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB3YWxsZXQgdG8gZGVsZXRlIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTm9uZV1dOgogICAgICAgICIiIkRlbGV0ZSBhbiBleHRlcm5hbCB3YWxsZXQKCiAgICAgICAgRGVsZXRlcyBhbiBleHRlcm5hbCB3YWxsZXQgYnkgSUQuIEV4dGVybmFsIFdhbGxldCBpcyBhIHdoaXRlbGlzdGVkIGFkZHJlc3Mgb2YgYSB3YWxsZXQgdGhhdCBiZWxvbmdzIHRvIHlvdXIgdXNlcnMvY291bnRlcnBhcnRpZXMuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgogICAgICAgIDpwYXJhbSB3YWxsZXRfaWQ6IFRoZSBJRCBvZiB0aGUgd2FsbGV0IHRvIGRlbGV0ZSAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgd2FsbGV0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZGVsZXRlX2V4dGVybmFsX3dhbGxldCIsIHBhcmFtX25hbWU9IndhbGxldF9pZCIsIHBhcmFtX3ZhbHVlPXdhbGxldF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZGVsZXRlX2V4dGVybmFsX3dhbGxldF9zZXJpYWxpemUoCiAgICAgICAgICAgIHdhbGxldF9pZD13YWxsZXRfaWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMSc6IE5vbmUsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2RlbGV0ZV9leHRlcm5hbF93YWxsZXRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB3YWxsZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snd2FsbGV0SWQnXSA9IHdhbGxldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nREVMRVRFJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2V4dGVybmFsX3dhbGxldHMve3dhbGxldElkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfZXh0ZXJuYWxfd2FsbGV0KAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB3YWxsZXQgdG8gcmV0dXJuIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVW5tYW5hZ2VkV2FsbGV0XV06CiAgICAgICAgIiIiRmluZCBhbiBleHRlcm5hbCB3YWxsZXQKCiAgICAgICAgUmV0dXJucyBhbiBleHRlcm5hbCB3YWxsZXQgYnkgSUQuIEV4dGVybmFsIFdhbGxldCBpcyBhIHdoaXRlbGlzdGVkIGFkZHJlc3Mgb2YgYSB3YWxsZXQgdGhhdCBiZWxvbmdzIHRvIHlvdXIgdXNlcnMvY291bnRlcnBhcnRpZXMuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIFZpZXdlci4KCiAgICAgICAgOnBhcmFtIHdhbGxldF9pZDogVGhlIElEIG9mIHRoZSB3YWxsZXQgdG8gcmV0dXJuIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB3YWxsZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfZXh0ZXJuYWxfd2FsbGV0IiwgcGFyYW1fbmFtZT0id2FsbGV0X2lkIiwgcGFyYW1fdmFsdWU9d2FsbGV0X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfZXh0ZXJuYWxfd2FsbGV0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgd2FsbGV0X2lkPXdhbGxldF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlVubWFuYWdlZFdhbGxldCIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9leHRlcm5hbF93YWxsZXRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB3YWxsZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snd2FsbGV0SWQnXSA9IHdhbGxldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2V4dGVybmFsX3dhbGxldHMve3dhbGxldElkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfZXh0ZXJuYWxfd2FsbGV0X2Fzc2V0KAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB3YWxsZXQiKV0sCiAgICAgICAgYXNzZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIHJldHVybiIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0V4dGVybmFsV2FsbGV0QXNzZXRdXToKICAgICAgICAiIiJHZXQgYW4gYXNzZXQgZnJvbSBhbiBleHRlcm5hbCB3YWxsZXQKCiAgICAgICAgUmV0dXJucyBhbiBleHRlcm5hbCB3YWxsZXQgYnkgd2FsbGV0IElEIGFuZCBhc3NldCBJRC4gRXh0ZXJuYWwgV2FsbGV0IGlzIGEgd2hpdGVsaXN0ZWQgYWRkcmVzcyBvZiBhIHdhbGxldCB0aGF0IGJlbG9uZ3MgdG8geW91ciB1c2Vycy9jb3VudGVycGFydGllcy4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgVmlld2VyLgoKICAgICAgICA6cGFyYW0gd2FsbGV0X2lkOiBUaGUgSUQgb2YgdGhlIHdhbGxldCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgd2FsbGV0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gYXNzZXRfaWQ6IFRoZSBJRCBvZiB0aGUgYXNzZXQgdG8gcmV0dXJuIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhc3NldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9leHRlcm5hbF93YWxsZXRfYXNzZXQiLCBwYXJhbV9uYW1lPSJ3YWxsZXRfaWQiLCBwYXJhbV92YWx1ZT13YWxsZXRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfZXh0ZXJuYWxfd2FsbGV0X2Fzc2V0IiwgcGFyYW1fbmFtZT0iYXNzZXRfaWQiLCBwYXJhbV92YWx1ZT1hc3NldF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2V4dGVybmFsX3dhbGxldF9hc3NldF9zZXJpYWxpemUoCiAgICAgICAgICAgIHdhbGxldF9pZD13YWxsZXRfaWQsCiAgICAgICAgICAgIGFzc2V0X2lkPWFzc2V0X2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiRXh0ZXJuYWxXYWxsZXRBc3NldCIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9leHRlcm5hbF93YWxsZXRfYXNzZXRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkLAogICAgICAgIGFzc2V0X2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB3YWxsZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snd2FsbGV0SWQnXSA9IHdhbGxldF9pZAogICAgICAgIGlmIGFzc2V0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Fzc2V0SWQnXSA9IGFzc2V0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvZXh0ZXJuYWxfd2FsbGV0cy97d2FsbGV0SWR9L3thc3NldElkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfZXh0ZXJuYWxfd2FsbGV0cygKICAgICAgICBzZWxmLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTGlzdFtVbm1hbmFnZWRXYWxsZXRdXV06CiAgICAgICAgIiIiTGlzdCBleHRlcm5hbCB3YWxsZXRzCgogICAgICAgIEdldHMgYSBsaXN0IG9mIGV4dGVybmFsIHdhbGxldHMgdW5kZXIgdGhlIHdvcmtzcGFjZS4gIEV4dGVybmFsIFdhbGxldCBpcyBhIHdoaXRlbGlzdGVkIGFkZHJlc3Mgb2YgYSB3YWxsZXQgdGhhdCBiZWxvbmdzIHRvIHlvdXIgdXNlcnMvY291bnRlcnBhcnRpZXMuICAtIFlvdSBjYW5ub3Qgc2VlIHRoZSBiYWxhbmNlIG9mIHRoZSBleHRlcm5hbCB3YWxsZXQuIC0gWW91IGNhbm5vdCBpbml0aWF0ZSB0cmFuc2FjdGlvbnMgZnJvbSBhbiBleHRlcm5hbCB3YWxsZXQgYXMgdGhlIHNvdXJjZSB2aWEgRmlyZWJsb2Nrcy4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgVmlld2VyLgoKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfZXh0ZXJuYWxfd2FsbGV0c19zZXJpYWxpemUoCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJMaXN0W1VubWFuYWdlZFdhbGxldF0iLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfZXh0ZXJuYWxfd2FsbGV0c19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvZXh0ZXJuYWxfd2FsbGV0cycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiByZW1vdmVfYXNzZXRfZnJvbV9leHRlcm5hbF93YWxsZXQoCiAgICAgICAgc2VsZiwKICAgICAgICB3YWxsZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIHdhbGxldCIpXSwKICAgICAgICBhc3NldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYXNzZXQgdG8gZGVsZXRlIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTm9uZV1dOgogICAgICAgICIiIkRlbGV0ZSBhbiBhc3NldCBmcm9tIGFuIGV4dGVybmFsIHdhbGxldAoKICAgICAgICBEZWxldGVzIGFuIGV4dGVybmFsIHdhbGxldCBhc3NldCBieSBJRC4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiAgICAgICAgOnBhcmFtIHdhbGxldF9pZDogVGhlIElEIG9mIHRoZSB3YWxsZXQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHdhbGxldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGFzc2V0X2lkOiBUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIGRlbGV0ZSAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJyZW1vdmVfYXNzZXRfZnJvbV9leHRlcm5hbF93YWxsZXQiLCBwYXJhbV9uYW1lPSJ3YWxsZXRfaWQiLCBwYXJhbV92YWx1ZT13YWxsZXRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJyZW1vdmVfYXNzZXRfZnJvbV9leHRlcm5hbF93YWxsZXQiLCBwYXJhbV9uYW1lPSJhc3NldF9pZCIsIHBhcmFtX3ZhbHVlPWFzc2V0X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9yZW1vdmVfYXNzZXRfZnJvbV9leHRlcm5hbF93YWxsZXRfc2VyaWFsaXplKAogICAgICAgICAgICB3YWxsZXRfaWQ9d2FsbGV0X2lkLAogICAgICAgICAgICBhc3NldF9pZD1hc3NldF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAxJzogTm9uZSwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfcmVtb3ZlX2Fzc2V0X2Zyb21fZXh0ZXJuYWxfd2FsbGV0X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHdhbGxldF9pZCwKICAgICAgICBhc3NldF9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgd2FsbGV0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3dhbGxldElkJ10gPSB3YWxsZXRfaWQKICAgICAgICBpZiBhc3NldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydhc3NldElkJ10gPSBhc3NldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nREVMRVRFJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2V4dGVybmFsX3dhbGxldHMve3dhbGxldElkfS97YXNzZXRJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgc2V0X2V4dGVybmFsX3dhbGxldF9jdXN0b21lcl9yZWZfaWQoCiAgICAgICAgc2VsZiwKICAgICAgICB3YWxsZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgd2FsbGV0IElEIildLAogICAgICAgIHNldF9jdXN0b21lcl9yZWZfaWRfcmVxdWVzdDogU2V0Q3VzdG9tZXJSZWZJZFJlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTm9uZV1dOgogICAgICAgICIiIlNldCBhbiBBTUwgY3VzdG9tZXIgcmVmZXJlbmNlIElEIGZvciBhbiBleHRlcm5hbCB3YWxsZXQKCiAgICAgICAgU2V0cyBhbiBBTUwvS1lUIGN1c3RvbWVyIHJlZmVyZW5jZSBJRCBmb3IgdGhlIHNwZWNpZmljIGV4dGVybmFsIHdhbGxldC4gRXh0ZXJuYWwgV2FsbGV0IGlzIGEgd2hpdGVsaXN0ZWQgYWRkcmVzcyBvZiBhIHdhbGxldCB0aGF0IGJlbG9uZ3MgdG8geW91ciB1c2Vycy9jb3VudGVycGFydGllcy4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiAgICAgICAgOnBhcmFtIHdhbGxldF9pZDogVGhlIHdhbGxldCBJRCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgd2FsbGV0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gc2V0X2N1c3RvbWVyX3JlZl9pZF9yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgc2V0X2N1c3RvbWVyX3JlZl9pZF9yZXF1ZXN0OiBTZXRDdXN0b21lclJlZklkUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJzZXRfZXh0ZXJuYWxfd2FsbGV0X2N1c3RvbWVyX3JlZl9pZCIsIHBhcmFtX25hbWU9IndhbGxldF9pZCIsIHBhcmFtX3ZhbHVlPXdhbGxldF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fc2V0X2V4dGVybmFsX3dhbGxldF9jdXN0b21lcl9yZWZfaWRfc2VyaWFsaXplKAogICAgICAgICAgICB3YWxsZXRfaWQ9d2FsbGV0X2lkLAogICAgICAgICAgICBzZXRfY3VzdG9tZXJfcmVmX2lkX3JlcXVlc3Q9c2V0X2N1c3RvbWVyX3JlZl9pZF9yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiBOb25lLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9zZXRfZXh0ZXJuYWxfd2FsbGV0X2N1c3RvbWVyX3JlZl9pZF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB3YWxsZXRfaWQsCiAgICAgICAgc2V0X2N1c3RvbWVyX3JlZl9pZF9yZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgd2FsbGV0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3dhbGxldElkJ10gPSB3YWxsZXRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBzZXRfY3VzdG9tZXJfcmVmX2lkX3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHNldF9jdXN0b21lcl9yZWZfaWRfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvZXh0ZXJuYWxfd2FsbGV0cy97d2FsbGV0SWR9L3NldF9jdXN0b21lcl9yZWZfaWQnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCg== \ No newline at end of file diff --git a/fireblocks/api/fiat_accounts_api.py b/fireblocks/api/fiat_accounts_api.py index 38500780..57778418 100644 --- a/fireblocks/api/fiat_accounts_api.py +++ b/fireblocks/api/fiat_accounts_api.py @@ -1,607 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing import List, Optional -from typing_extensions import Annotated -from fireblocks.models.deposit_funds_from_linked_dda_response import DepositFundsFromLinkedDDAResponse -from fireblocks.models.fiat_account import FiatAccount -from fireblocks.models.funds import Funds -from fireblocks.models.redeem_funds_to_linked_dda_response import RedeemFundsToLinkedDDAResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class FiatAccountsApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def deposit_funds_from_linked_dda( - self, - account_id: Annotated[StrictStr, Field(description="The ID of the fiat account to use")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - funds: Optional[Funds] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[DepositFundsFromLinkedDDAResponse]]: - """Deposit funds from DDA - - Deposits funds from the linked DDA. - - :param account_id: The ID of the fiat account to use (required) - :type account_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param funds: - :type funds: Funds - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="deposit_funds_from_linked_dda", param_name="account_id", param_value=account_id) - - _param = self._deposit_funds_from_linked_dda_serialize( - account_id=account_id, - idempotency_key=idempotency_key, - funds=funds, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "DepositFundsFromLinkedDDAResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _deposit_funds_from_linked_dda_serialize( - self, - account_id, - idempotency_key, - funds, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if account_id is not None: - _path_params['accountId'] = account_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if funds is not None: - _body_params = funds - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/fiat_accounts/{accountId}/deposit_from_linked_dda', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_fiat_account( - self, - account_id: Annotated[StrictStr, Field(description="The ID of the fiat account to return")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[FiatAccount]]: - """Find a specific fiat account - - Returns a fiat account by ID.
Endpoint Permission: Admin, Non-Signing Admin. - - :param account_id: The ID of the fiat account to return (required) - :type account_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_fiat_account", param_name="account_id", param_value=account_id) - - _param = self._get_fiat_account_serialize( - account_id=account_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "FiatAccount", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_fiat_account_serialize( - self, - account_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if account_id is not None: - _path_params['accountId'] = account_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/fiat_accounts/{accountId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_fiat_accounts( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[FiatAccount]]]: - """List fiat accounts - - Returns all fiat accounts.
Endpoint Permission: Admin, Non-Signing Admin. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_fiat_accounts_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "List[FiatAccount]", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_fiat_accounts_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/fiat_accounts', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def redeem_funds_to_linked_dda( - self, - account_id: Annotated[StrictStr, Field(description="The ID of the fiat account to use")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - funds: Optional[Funds] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[RedeemFundsToLinkedDDAResponse]]: - """Redeem funds to DDA - - Redeems funds to the linked DDA. - - :param account_id: The ID of the fiat account to use (required) - :type account_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param funds: - :type funds: Funds - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="redeem_funds_to_linked_dda", param_name="account_id", param_value=account_id) - - _param = self._redeem_funds_to_linked_dda_serialize( - account_id=account_id, - idempotency_key=idempotency_key, - funds=funds, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "RedeemFundsToLinkedDDAResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _redeem_funds_to_linked_dda_serialize( - self, - account_id, - idempotency_key, - funds, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if account_id is not None: - _path_params['accountId'] = account_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if funds is not None: - _body_params = funds - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/fiat_accounts/{accountId}/redeem_to_linked_dda', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVwb3NpdF9mdW5kc19mcm9tX2xpbmtlZF9kZGFfcmVzcG9uc2UgaW1wb3J0IERlcG9zaXRGdW5kc0Zyb21MaW5rZWREREFSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZpYXRfYWNjb3VudCBpbXBvcnQgRmlhdEFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5mdW5kcyBpbXBvcnQgRnVuZHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZWRlZW1fZnVuZHNfdG9fbGlua2VkX2RkYV9yZXNwb25zZSBpbXBvcnQgUmVkZWVtRnVuZHNUb0xpbmtlZEREQVJlc3BvbnNlCgpmcm9tIGZpcmVibG9ja3MuYXBpX2NsaWVudCBpbXBvcnQgQXBpQ2xpZW50LCBSZXF1ZXN0U2VyaWFsaXplZApmcm9tIGZpcmVibG9ja3MuYXBpX3Jlc3BvbnNlIGltcG9ydCBBcGlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MucmVzdCBpbXBvcnQgUkVTVFJlc3BvbnNlVHlwZQpmcm9tIGZpcmVibG9ja3MudmFsaWRhdGlvbl91dGlscyBpbXBvcnQgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZwoKCmNsYXNzIEZpYXRBY2NvdW50c0FwaToKICAgICIiIk5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IKICAgIFJlZjogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgogICAgIiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwaV9jbGllbnQ9Tm9uZSkgLT4gTm9uZToKICAgICAgICBpZiBhcGlfY2xpZW50IGlzIE5vbmU6CiAgICAgICAgICAgIGFwaV9jbGllbnQgPSBBcGlDbGllbnQuZ2V0X2RlZmF1bHQoKQogICAgICAgIHNlbGYuYXBpX2NsaWVudCA9IGFwaV9jbGllbnQKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBkZXBvc2l0X2Z1bmRzX2Zyb21fbGlua2VkX2RkYSgKICAgICAgICBzZWxmLAogICAgICAgIGFjY291bnRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGZpYXQgYWNjb3VudCB0byB1c2UiKV0sCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIGZ1bmRzOiBPcHRpb25hbFtGdW5kc10gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbRGVwb3NpdEZ1bmRzRnJvbUxpbmtlZEREQVJlc3BvbnNlXV06CiAgICAgICAgIiIiRGVwb3NpdCBmdW5kcyBmcm9tIEREQQoKICAgICAgICBEZXBvc2l0cyBmdW5kcyBmcm9tIHRoZSBsaW5rZWQgRERBLgoKICAgICAgICA6cGFyYW0gYWNjb3VudF9pZDogVGhlIElEIG9mIHRoZSBmaWF0IGFjY291bnQgdG8gdXNlIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhY2NvdW50X2lkOiBzdHIKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gZnVuZHM6CiAgICAgICAgOnR5cGUgZnVuZHM6IEZ1bmRzCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImRlcG9zaXRfZnVuZHNfZnJvbV9saW5rZWRfZGRhIiwgcGFyYW1fbmFtZT0iYWNjb3VudF9pZCIsIHBhcmFtX3ZhbHVlPWFjY291bnRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2RlcG9zaXRfZnVuZHNfZnJvbV9saW5rZWRfZGRhX3NlcmlhbGl6ZSgKICAgICAgICAgICAgYWNjb3VudF9pZD1hY2NvdW50X2lkLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBmdW5kcz1mdW5kcywKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAxJzogIkRlcG9zaXRGdW5kc0Zyb21MaW5rZWREREFSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2RlcG9zaXRfZnVuZHNfZnJvbV9saW5rZWRfZGRhX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGFjY291bnRfaWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIGZ1bmRzLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBhY2NvdW50X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2FjY291bnRJZCddID0gYWNjb3VudF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIGZ1bmRzIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBmdW5kcwoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvZmlhdF9hY2NvdW50cy97YWNjb3VudElkfS9kZXBvc2l0X2Zyb21fbGlua2VkX2RkYScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfZmlhdF9hY2NvdW50KAogICAgICAgIHNlbGYsCiAgICAgICAgYWNjb3VudF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgZmlhdCBhY2NvdW50IHRvIHJldHVybiIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0ZpYXRBY2NvdW50XV06CiAgICAgICAgIiIiRmluZCBhIHNwZWNpZmljIGZpYXQgYWNjb3VudAoKICAgICAgICBSZXR1cm5zIGEgZmlhdCBhY2NvdW50IGJ5IElELiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbi4KCiAgICAgICAgOnBhcmFtIGFjY291bnRfaWQ6IFRoZSBJRCBvZiB0aGUgZmlhdCBhY2NvdW50IHRvIHJldHVybiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYWNjb3VudF9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9maWF0X2FjY291bnQiLCBwYXJhbV9uYW1lPSJhY2NvdW50X2lkIiwgcGFyYW1fdmFsdWU9YWNjb3VudF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2ZpYXRfYWNjb3VudF9zZXJpYWxpemUoCiAgICAgICAgICAgIGFjY291bnRfaWQ9YWNjb3VudF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkZpYXRBY2NvdW50IiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2ZpYXRfYWNjb3VudF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBhY2NvdW50X2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBhY2NvdW50X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2FjY291bnRJZCddID0gYWNjb3VudF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2ZpYXRfYWNjb3VudHMve2FjY291bnRJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X2ZpYXRfYWNjb3VudHMoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0xpc3RbRmlhdEFjY291bnRdXV06CiAgICAgICAgIiIiTGlzdCBmaWF0IGFjY291bnRzCgogICAgICAgIFJldHVybnMgYWxsIGZpYXQgYWNjb3VudHMuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfZmlhdF9hY2NvdW50c19zZXJpYWxpemUoCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJMaXN0W0ZpYXRBY2NvdW50XSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9maWF0X2FjY291bnRzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9maWF0X2FjY291bnRzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHJlZGVlbV9mdW5kc190b19saW5rZWRfZGRhKAogICAgICAgIHNlbGYsCiAgICAgICAgYWNjb3VudF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgZmlhdCBhY2NvdW50IHRvIHVzZSIpXSwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgZnVuZHM6IE9wdGlvbmFsW0Z1bmRzXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtSZWRlZW1GdW5kc1RvTGlua2VkRERBUmVzcG9uc2VdXToKICAgICAgICAiIiJSZWRlZW0gZnVuZHMgdG8gRERBCgogICAgICAgIFJlZGVlbXMgZnVuZHMgdG8gdGhlIGxpbmtlZCBEREEuCgogICAgICAgIDpwYXJhbSBhY2NvdW50X2lkOiBUaGUgSUQgb2YgdGhlIGZpYXQgYWNjb3VudCB0byB1c2UgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGFjY291bnRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBmdW5kczoKICAgICAgICA6dHlwZSBmdW5kczogRnVuZHMKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0icmVkZWVtX2Z1bmRzX3RvX2xpbmtlZF9kZGEiLCBwYXJhbV9uYW1lPSJhY2NvdW50X2lkIiwgcGFyYW1fdmFsdWU9YWNjb3VudF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fcmVkZWVtX2Z1bmRzX3RvX2xpbmtlZF9kZGFfc2VyaWFsaXplKAogICAgICAgICAgICBhY2NvdW50X2lkPWFjY291bnRfaWQsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIGZ1bmRzPWZ1bmRzLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiAiUmVkZWVtRnVuZHNUb0xpbmtlZEREQVJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfcmVkZWVtX2Z1bmRzX3RvX2xpbmtlZF9kZGFfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgYWNjb3VudF9pZCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgZnVuZHMsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGFjY291bnRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYWNjb3VudElkJ10gPSBhY2NvdW50X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgZnVuZHMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IGZ1bmRzCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9maWF0X2FjY291bnRzL3thY2NvdW50SWR9L3JlZGVlbV90b19saW5rZWRfZGRhJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgo= \ No newline at end of file diff --git a/fireblocks/api/gas_stations_api.py b/fireblocks/api/gas_stations_api.py index c75baaf3..14d47f0d 100644 --- a/fireblocks/api/gas_stations_api.py +++ b/fireblocks/api/gas_stations_api.py @@ -1,598 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing import Optional -from typing_extensions import Annotated -from fireblocks.models.edit_gas_station_configuration_response import EditGasStationConfigurationResponse -from fireblocks.models.gas_station_configuration import GasStationConfiguration -from fireblocks.models.gas_station_properties_response import GasStationPropertiesResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class GasStationsApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def get_gas_station_by_asset_id( - self, - asset_id: Annotated[StrictStr, Field(description="The ID of the asset")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GasStationPropertiesResponse]]: - """Get gas station settings by asset - - Returns gas station settings and balances for a requested asset.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param asset_id: The ID of the asset (required) - :type asset_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_gas_station_by_asset_id", param_name="asset_id", param_value=asset_id) - - _param = self._get_gas_station_by_asset_id_serialize( - asset_id=asset_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GasStationPropertiesResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_gas_station_by_asset_id_serialize( - self, - asset_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/gas_station/{assetId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_gas_station_info( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GasStationPropertiesResponse]]: - """Get gas station settings - - Returns gas station settings and ETH balance.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_gas_station_info_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GasStationPropertiesResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_gas_station_info_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/gas_station', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_gas_station_configuration( - self, - gas_station_configuration: GasStationConfiguration, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EditGasStationConfigurationResponse]]: - """Edit gas station settings - - Configures gas station settings for ETH. Learn more about the Fireblocks Gas Station in the following [guide](https://developers.fireblocks.com/docs/work-with-gas-station).
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param gas_station_configuration: (required) - :type gas_station_configuration: GasStationConfiguration - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._update_gas_station_configuration_serialize( - gas_station_configuration=gas_station_configuration, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "EditGasStationConfigurationResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_gas_station_configuration_serialize( - self, - gas_station_configuration, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if gas_station_configuration is not None: - _body_params = gas_station_configuration - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/gas_station/configuration', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_gas_station_configuration_by_asset_id( - self, - asset_id: Annotated[StrictStr, Field(description="The ID of the asset")], - gas_station_configuration: GasStationConfiguration, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EditGasStationConfigurationResponse]]: - """Edit gas station settings for an asset - - Configures gas station settings for a requested asset. Learn more about the Fireblocks Gas Station in the following [guide](https://developers.fireblocks.com/docs/work-with-gas-station).
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param asset_id: The ID of the asset (required) - :type asset_id: str - :param gas_station_configuration: (required) - :type gas_station_configuration: GasStationConfiguration - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="update_gas_station_configuration_by_asset_id", param_name="asset_id", param_value=asset_id) - - _param = self._update_gas_station_configuration_by_asset_id_serialize( - asset_id=asset_id, - gas_station_configuration=gas_station_configuration, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "EditGasStationConfigurationResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_gas_station_configuration_by_asset_id_serialize( - self, - asset_id, - gas_station_configuration, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if gas_station_configuration is not None: - _body_params = gas_station_configuration - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/gas_station/configuration/{assetId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZWRpdF9nYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uX3Jlc3BvbnNlIGltcG9ydCBFZGl0R2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb24gaW1wb3J0IEdhc1N0YXRpb25Db25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2FzX3N0YXRpb25fcHJvcGVydGllc19yZXNwb25zZSBpbXBvcnQgR2FzU3RhdGlvblByb3BlcnRpZXNSZXNwb25zZQoKZnJvbSBmaXJlYmxvY2tzLmFwaV9jbGllbnQgaW1wb3J0IEFwaUNsaWVudCwgUmVxdWVzdFNlcmlhbGl6ZWQKZnJvbSBmaXJlYmxvY2tzLmFwaV9yZXNwb25zZSBpbXBvcnQgQXBpUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLnJlc3QgaW1wb3J0IFJFU1RSZXNwb25zZVR5cGUKZnJvbSBmaXJlYmxvY2tzLnZhbGlkYXRpb25fdXRpbHMgaW1wb3J0IHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcKCgpjbGFzcyBHYXNTdGF0aW9uc0FwaToKICAgICIiIk5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IKICAgIFJlZjogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgogICAgIiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwaV9jbGllbnQ9Tm9uZSkgLT4gTm9uZToKICAgICAgICBpZiBhcGlfY2xpZW50IGlzIE5vbmU6CiAgICAgICAgICAgIGFwaV9jbGllbnQgPSBBcGlDbGllbnQuZ2V0X2RlZmF1bHQoKQogICAgICAgIHNlbGYuYXBpX2NsaWVudCA9IGFwaV9jbGllbnQKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfZ2FzX3N0YXRpb25fYnlfYXNzZXRfaWQoCiAgICAgICAgc2VsZiwKICAgICAgICBhc3NldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYXNzZXQiKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtHYXNTdGF0aW9uUHJvcGVydGllc1Jlc3BvbnNlXV06CiAgICAgICAgIiIiR2V0IGdhcyBzdGF0aW9uIHNldHRpbmdzIGJ5IGFzc2V0CgogICAgICAgIFJldHVybnMgZ2FzIHN0YXRpb24gc2V0dGluZ3MgYW5kIGJhbGFuY2VzIGZvciBhIHJlcXVlc3RlZCBhc3NldC4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiAgICAgICAgOnBhcmFtIGFzc2V0X2lkOiBUaGUgSUQgb2YgdGhlIGFzc2V0IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhc3NldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9nYXNfc3RhdGlvbl9ieV9hc3NldF9pZCIsIHBhcmFtX25hbWU9ImFzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YXNzZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9nYXNfc3RhdGlvbl9ieV9hc3NldF9pZF9zZXJpYWxpemUoCiAgICAgICAgICAgIGFzc2V0X2lkPWFzc2V0X2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiR2FzU3RhdGlvblByb3BlcnRpZXNSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9nYXNfc3RhdGlvbl9ieV9hc3NldF9pZF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBhc3NldF9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgYXNzZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYXNzZXRJZCddID0gYXNzZXRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9nYXNfc3RhdGlvbi97YXNzZXRJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X2dhc19zdGF0aW9uX2luZm8oCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0dhc1N0YXRpb25Qcm9wZXJ0aWVzUmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgZ2FzIHN0YXRpb24gc2V0dGluZ3MKCiAgICAgICAgUmV0dXJucyBnYXMgc3RhdGlvbiBzZXR0aW5ncyBhbmQgRVRIIGJhbGFuY2UuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9nYXNfc3RhdGlvbl9pbmZvX3NlcmlhbGl6ZSgKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkdhc1N0YXRpb25Qcm9wZXJ0aWVzUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfZ2FzX3N0YXRpb25faW5mb19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvZ2FzX3N0YXRpb24nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgdXBkYXRlX2dhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb24oCiAgICAgICAgc2VsZiwKICAgICAgICBnYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uOiBHYXNTdGF0aW9uQ29uZmlndXJhdGlvbiwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtFZGl0R2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZV1dOgogICAgICAgICIiIkVkaXQgZ2FzIHN0YXRpb24gc2V0dGluZ3MKCiAgICAgICAgQ29uZmlndXJlcyBnYXMgc3RhdGlvbiBzZXR0aW5ncyBmb3IgRVRILiBMZWFybiBtb3JlIGFib3V0IHRoZSBGaXJlYmxvY2tzIEdhcyBTdGF0aW9uIGluIHRoZSBmb2xsb3dpbmcgW2d1aWRlXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vZG9jcy93b3JrLXdpdGgtZ2FzLXN0YXRpb24pLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKICAgICAgICA6cGFyYW0gZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbjogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGdhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb246IEdhc1N0YXRpb25Db25maWd1cmF0aW9uCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fdXBkYXRlX2dhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25fc2VyaWFsaXplKAogICAgICAgICAgICBnYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uPWdhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb24sCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMSc6ICJFZGl0R2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3VwZGF0ZV9nYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGdhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb24sCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBnYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBnYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUFVUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2dhc19zdGF0aW9uL2NvbmZpZ3VyYXRpb24nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgdXBkYXRlX2dhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25fYnlfYXNzZXRfaWQoCiAgICAgICAgc2VsZiwKICAgICAgICBhc3NldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYXNzZXQiKV0sCiAgICAgICAgZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbjogR2FzU3RhdGlvbkNvbmZpZ3VyYXRpb24sCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbRWRpdEdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2VdXToKICAgICAgICAiIiJFZGl0IGdhcyBzdGF0aW9uIHNldHRpbmdzIGZvciBhbiBhc3NldAoKICAgICAgICBDb25maWd1cmVzIGdhcyBzdGF0aW9uIHNldHRpbmdzIGZvciBhIHJlcXVlc3RlZCBhc3NldC4gTGVhcm4gbW9yZSBhYm91dCB0aGUgRmlyZWJsb2NrcyBHYXMgU3RhdGlvbiBpbiB0aGUgZm9sbG93aW5nIFtndWlkZV0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL2RvY3Mvd29yay13aXRoLWdhcy1zdGF0aW9uKS4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiAgICAgICAgOnBhcmFtIGFzc2V0X2lkOiBUaGUgSUQgb2YgdGhlIGFzc2V0IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhc3NldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGdhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb246IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBnYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uOiBHYXNTdGF0aW9uQ29uZmlndXJhdGlvbgogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJ1cGRhdGVfZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbl9ieV9hc3NldF9pZCIsIHBhcmFtX25hbWU9ImFzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YXNzZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3VwZGF0ZV9nYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uX2J5X2Fzc2V0X2lkX3NlcmlhbGl6ZSgKICAgICAgICAgICAgYXNzZXRfaWQ9YXNzZXRfaWQsCiAgICAgICAgICAgIGdhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb249Z2FzX3N0YXRpb25fY29uZmlndXJhdGlvbiwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAxJzogIkVkaXRHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfdXBkYXRlX2dhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25fYnlfYXNzZXRfaWRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgYXNzZXRfaWQsCiAgICAgICAgZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbiwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGFzc2V0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Fzc2V0SWQnXSA9IGFzc2V0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbiBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BVVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9nYXNfc3RhdGlvbi9jb25maWd1cmF0aW9uL3thc3NldElkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoK \ No newline at end of file diff --git a/fireblocks/api/internal_wallets_api.py b/fireblocks/api/internal_wallets_api.py index 60f47f8f..6d2a6692 100644 --- a/fireblocks/api/internal_wallets_api.py +++ b/fireblocks/api/internal_wallets_api.py @@ -1,1315 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing import List, Optional, Union -from typing_extensions import Annotated -from fireblocks.models.create_internal_wallet_asset_request import CreateInternalWalletAssetRequest -from fireblocks.models.create_wallet_request import CreateWalletRequest -from fireblocks.models.paginated_assets_response import PaginatedAssetsResponse -from fireblocks.models.set_customer_ref_id_request import SetCustomerRefIdRequest -from fireblocks.models.unmanaged_wallet import UnmanagedWallet -from fireblocks.models.wallet_asset import WalletAsset - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class InternalWalletsApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def create_internal_wallet( - self, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - create_wallet_request: Optional[CreateWalletRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[UnmanagedWallet]]: - """Create an internal wallet - - Creates a new internal wallet with the requested name. Learn more about Whitelisted Internal Addresses [here](https://developers.fireblocks.com/docs/whitelist-addresses#internal-wallets) - - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param create_wallet_request: - :type create_wallet_request: CreateWalletRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_internal_wallet_serialize( - idempotency_key=idempotency_key, - create_wallet_request=create_wallet_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "UnmanagedWallet", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_internal_wallet_serialize( - self, - idempotency_key, - create_wallet_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_wallet_request is not None: - _body_params = create_wallet_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/internal_wallets', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_internal_wallet_asset( - self, - wallet_id: Annotated[StrictStr, Field(description="The ID of the wallet")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset to add")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - create_internal_wallet_asset_request: Optional[CreateInternalWalletAssetRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[WalletAsset]]: - """Add an asset to an internal wallet - - Adds an asset to an existing internal wallet. - - :param wallet_id: The ID of the wallet (required) - :type wallet_id: str - :param asset_id: The ID of the asset to add (required) - :type asset_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param create_internal_wallet_asset_request: - :type create_internal_wallet_asset_request: CreateInternalWalletAssetRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="create_internal_wallet_asset", param_name="wallet_id", param_value=wallet_id) - validate_not_empty_string(function_name="create_internal_wallet_asset", param_name="asset_id", param_value=asset_id) - - _param = self._create_internal_wallet_asset_serialize( - wallet_id=wallet_id, - asset_id=asset_id, - idempotency_key=idempotency_key, - create_internal_wallet_asset_request=create_internal_wallet_asset_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "WalletAsset", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_internal_wallet_asset_serialize( - self, - wallet_id, - asset_id, - idempotency_key, - create_internal_wallet_asset_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_internal_wallet_asset_request is not None: - _body_params = create_internal_wallet_asset_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/internal_wallets/{walletId}/{assetId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def delete_internal_wallet( - self, - wallet_id: Annotated[StrictStr, Field(description="The ID of the wallet to delete")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Delete an internal wallet - - Deletes an internal wallet by ID. - - :param wallet_id: The ID of the wallet to delete (required) - :type wallet_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="delete_internal_wallet", param_name="wallet_id", param_value=wallet_id) - - _param = self._delete_internal_wallet_serialize( - wallet_id=wallet_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': None, - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _delete_internal_wallet_serialize( - self, - wallet_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/internal_wallets/{walletId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def delete_internal_wallet_asset( - self, - wallet_id: Annotated[StrictStr, Field(description="The ID of the wallet")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset to delete")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Delete a whitelisted address - - Deletes a whitelisted address (for an asset) from an internal wallet. - - :param wallet_id: The ID of the wallet (required) - :type wallet_id: str - :param asset_id: The ID of the asset to delete (required) - :type asset_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="delete_internal_wallet_asset", param_name="wallet_id", param_value=wallet_id) - validate_not_empty_string(function_name="delete_internal_wallet_asset", param_name="asset_id", param_value=asset_id) - - _param = self._delete_internal_wallet_asset_serialize( - wallet_id=wallet_id, - asset_id=asset_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': None, - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _delete_internal_wallet_asset_serialize( - self, - wallet_id, - asset_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/internal_wallets/{walletId}/{assetId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_internal_wallet( - self, - wallet_id: Annotated[StrictStr, Field(description="The ID of the wallet to return")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[UnmanagedWallet]]: - """Get assets for internal wallet - - Returns information for an internal wallet. - - :param wallet_id: The ID of the wallet to return (required) - :type wallet_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_internal_wallet", param_name="wallet_id", param_value=wallet_id) - - _param = self._get_internal_wallet_serialize( - wallet_id=wallet_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "UnmanagedWallet", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_internal_wallet_serialize( - self, - wallet_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/internal_wallets/{walletId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_internal_wallet_asset( - self, - wallet_id: Annotated[StrictStr, Field(description="The ID of the wallet")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset to return")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[WalletAsset]]: - """Get an asset from an internal wallet - - Returns information for an asset in an internal wallet. - - :param wallet_id: The ID of the wallet (required) - :type wallet_id: str - :param asset_id: The ID of the asset to return (required) - :type asset_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_internal_wallet_asset", param_name="wallet_id", param_value=wallet_id) - validate_not_empty_string(function_name="get_internal_wallet_asset", param_name="asset_id", param_value=asset_id) - - _param = self._get_internal_wallet_asset_serialize( - wallet_id=wallet_id, - asset_id=asset_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "WalletAsset", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_internal_wallet_asset_serialize( - self, - wallet_id, - asset_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/internal_wallets/{walletId}/{assetId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_internal_wallet_assets_paginated( - self, - wallet_id: Annotated[StrictStr, Field(description="The ID of the internal wallet to return assets for")], - page_size: Optional[Union[Annotated[float, Field(le=200, strict=True, ge=1)], Annotated[int, Field(le=200, strict=True, ge=1)]]] = None, - page_cursor: Optional[StrictStr] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[PaginatedAssetsResponse]]: - """List assets in an internal wallet (Paginated) - - Returns a paginated response of assets in an internal wallet. - - :param wallet_id: The ID of the internal wallet to return assets for (required) - :type wallet_id: str - :param page_size: - :type page_size: float - :param page_cursor: - :type page_cursor: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_internal_wallet_assets_paginated", param_name="wallet_id", param_value=wallet_id) - - _param = self._get_internal_wallet_assets_paginated_serialize( - wallet_id=wallet_id, - page_size=page_size, - page_cursor=page_cursor, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "PaginatedAssetsResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_internal_wallet_assets_paginated_serialize( - self, - wallet_id, - page_size, - page_cursor, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - # process the query parameters - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/internal_wallets/{walletId}/assets', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_internal_wallets( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[UnmanagedWallet]]]: - """List internal wallets - - Gets a list of internal wallets. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_internal_wallets_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "List[UnmanagedWallet]", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_internal_wallets_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/internal_wallets', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_customer_ref_id_for_internal_wallet( - self, - wallet_id: Annotated[StrictStr, Field(description="The wallet ID")], - set_customer_ref_id_request: SetCustomerRefIdRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Set an AML/KYT customer reference ID for internal wallet - - Sets an AML/KYT customer reference ID for the specific internal wallet. - - :param wallet_id: The wallet ID (required) - :type wallet_id: str - :param set_customer_ref_id_request: (required) - :type set_customer_ref_id_request: SetCustomerRefIdRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="set_customer_ref_id_for_internal_wallet", param_name="wallet_id", param_value=wallet_id) - - _param = self._set_customer_ref_id_for_internal_wallet_serialize( - wallet_id=wallet_id, - set_customer_ref_id_request=set_customer_ref_id_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': None, - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_customer_ref_id_for_internal_wallet_serialize( - self, - wallet_id, - set_customer_ref_id_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if wallet_id is not None: - _path_params['walletId'] = wallet_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if set_customer_ref_id_request is not None: - _body_params = set_customer_ref_id_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/internal_wallets/{walletId}/set_customer_ref_id', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgTGlzdCwgT3B0aW9uYWwsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXRfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlSW50ZXJuYWxXYWxsZXRBc3NldFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfd2FsbGV0X3JlcXVlc3QgaW1wb3J0IENyZWF0ZVdhbGxldFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYWdpbmF0ZWRfYXNzZXRzX3Jlc3BvbnNlIGltcG9ydCBQYWdpbmF0ZWRBc3NldHNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9jdXN0b21lcl9yZWZfaWRfcmVxdWVzdCBpbXBvcnQgU2V0Q3VzdG9tZXJSZWZJZFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51bm1hbmFnZWRfd2FsbGV0IGltcG9ydCBVbm1hbmFnZWRXYWxsZXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53YWxsZXRfYXNzZXQgaW1wb3J0IFdhbGxldEFzc2V0Cgpmcm9tIGZpcmVibG9ja3MuYXBpX2NsaWVudCBpbXBvcnQgQXBpQ2xpZW50LCBSZXF1ZXN0U2VyaWFsaXplZApmcm9tIGZpcmVibG9ja3MuYXBpX3Jlc3BvbnNlIGltcG9ydCBBcGlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MucmVzdCBpbXBvcnQgUkVTVFJlc3BvbnNlVHlwZQpmcm9tIGZpcmVibG9ja3MudmFsaWRhdGlvbl91dGlscyBpbXBvcnQgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZwoKCmNsYXNzIEludGVybmFsV2FsbGV0c0FwaToKICAgICIiIk5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IKICAgIFJlZjogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgogICAgIiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwaV9jbGllbnQ9Tm9uZSkgLT4gTm9uZToKICAgICAgICBpZiBhcGlfY2xpZW50IGlzIE5vbmU6CiAgICAgICAgICAgIGFwaV9jbGllbnQgPSBBcGlDbGllbnQuZ2V0X2RlZmF1bHQoKQogICAgICAgIHNlbGYuYXBpX2NsaWVudCA9IGFwaV9jbGllbnQKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBjcmVhdGVfaW50ZXJuYWxfd2FsbGV0KAogICAgICAgIHNlbGYsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIGNyZWF0ZV93YWxsZXRfcmVxdWVzdDogT3B0aW9uYWxbQ3JlYXRlV2FsbGV0UmVxdWVzdF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVW5tYW5hZ2VkV2FsbGV0XV06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGludGVybmFsIHdhbGxldAoKICAgICAgICBDcmVhdGVzIGEgbmV3IGludGVybmFsIHdhbGxldCB3aXRoIHRoZSByZXF1ZXN0ZWQgbmFtZS4gTGVhcm4gbW9yZSBhYm91dCBXaGl0ZWxpc3RlZCBJbnRlcm5hbCBBZGRyZXNzZXMgW2hlcmVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL3doaXRlbGlzdC1hZGRyZXNzZXMjaW50ZXJuYWwtd2FsbGV0cykKCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIGNyZWF0ZV93YWxsZXRfcmVxdWVzdDoKICAgICAgICA6dHlwZSBjcmVhdGVfd2FsbGV0X3JlcXVlc3Q6IENyZWF0ZVdhbGxldFJlcXVlc3QKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9jcmVhdGVfaW50ZXJuYWxfd2FsbGV0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgY3JlYXRlX3dhbGxldF9yZXF1ZXN0PWNyZWF0ZV93YWxsZXRfcmVxdWVzdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlVubWFuYWdlZFdhbGxldCIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2NyZWF0ZV9pbnRlcm5hbF93YWxsZXRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIGNyZWF0ZV93YWxsZXRfcmVxdWVzdCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgY3JlYXRlX3dhbGxldF9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBjcmVhdGVfd2FsbGV0X3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2ludGVybmFsX3dhbGxldHMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgY3JlYXRlX2ludGVybmFsX3dhbGxldF9hc3NldCgKICAgICAgICBzZWxmLAogICAgICAgIHdhbGxldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgd2FsbGV0IildLAogICAgICAgIGFzc2V0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBhc3NldCB0byBhZGQiKV0sCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIGNyZWF0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXRfcmVxdWVzdDogT3B0aW9uYWxbQ3JlYXRlSW50ZXJuYWxXYWxsZXRBc3NldFJlcXVlc3RdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1dhbGxldEFzc2V0XV06CiAgICAgICAgIiIiQWRkIGFuIGFzc2V0IHRvIGFuIGludGVybmFsIHdhbGxldAoKICAgICAgICBBZGRzIGFuIGFzc2V0IHRvIGFuIGV4aXN0aW5nIGludGVybmFsIHdhbGxldC4KCiAgICAgICAgOnBhcmFtIHdhbGxldF9pZDogVGhlIElEIG9mIHRoZSB3YWxsZXQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHdhbGxldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGFzc2V0X2lkOiBUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIGFkZCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBjcmVhdGVfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0X3JlcXVlc3Q6CiAgICAgICAgOnR5cGUgY3JlYXRlX2ludGVybmFsX3dhbGxldF9hc3NldF9yZXF1ZXN0OiBDcmVhdGVJbnRlcm5hbFdhbGxldEFzc2V0UmVxdWVzdAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJjcmVhdGVfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0IiwgcGFyYW1fbmFtZT0id2FsbGV0X2lkIiwgcGFyYW1fdmFsdWU9d2FsbGV0X2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iY3JlYXRlX2ludGVybmFsX3dhbGxldF9hc3NldCIsIHBhcmFtX25hbWU9ImFzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YXNzZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2NyZWF0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXRfc2VyaWFsaXplKAogICAgICAgICAgICB3YWxsZXRfaWQ9d2FsbGV0X2lkLAogICAgICAgICAgICBhc3NldF9pZD1hc3NldF9pZCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgY3JlYXRlX2ludGVybmFsX3dhbGxldF9hc3NldF9yZXF1ZXN0PWNyZWF0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXRfcmVxdWVzdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIldhbGxldEFzc2V0IiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfY3JlYXRlX2ludGVybmFsX3dhbGxldF9hc3NldF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB3YWxsZXRfaWQsCiAgICAgICAgYXNzZXRfaWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIGNyZWF0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXRfcmVxdWVzdCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgd2FsbGV0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3dhbGxldElkJ10gPSB3YWxsZXRfaWQKICAgICAgICBpZiBhc3NldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydhc3NldElkJ10gPSBhc3NldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIGNyZWF0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXRfcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gY3JlYXRlX2ludGVybmFsX3dhbGxldF9hc3NldF9yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9pbnRlcm5hbF93YWxsZXRzL3t3YWxsZXRJZH0ve2Fzc2V0SWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGRlbGV0ZV9pbnRlcm5hbF93YWxsZXQoCiAgICAgICAgc2VsZiwKICAgICAgICB3YWxsZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIHdhbGxldCB0byBkZWxldGUiKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtOb25lXV06CiAgICAgICAgIiIiRGVsZXRlIGFuIGludGVybmFsIHdhbGxldAoKICAgICAgICBEZWxldGVzIGFuIGludGVybmFsIHdhbGxldCBieSBJRC4KCiAgICAgICAgOnBhcmFtIHdhbGxldF9pZDogVGhlIElEIG9mIHRoZSB3YWxsZXQgdG8gZGVsZXRlIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB3YWxsZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJkZWxldGVfaW50ZXJuYWxfd2FsbGV0IiwgcGFyYW1fbmFtZT0id2FsbGV0X2lkIiwgcGFyYW1fdmFsdWU9d2FsbGV0X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9kZWxldGVfaW50ZXJuYWxfd2FsbGV0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgd2FsbGV0X2lkPXdhbGxldF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAxJzogTm9uZSwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZGVsZXRlX2ludGVybmFsX3dhbGxldF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB3YWxsZXRfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHdhbGxldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd3YWxsZXRJZCddID0gd2FsbGV0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdERUxFVEUnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvaW50ZXJuYWxfd2FsbGV0cy97d2FsbGV0SWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGRlbGV0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXQoCiAgICAgICAgc2VsZiwKICAgICAgICB3YWxsZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIHdhbGxldCIpXSwKICAgICAgICBhc3NldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYXNzZXQgdG8gZGVsZXRlIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTm9uZV1dOgogICAgICAgICIiIkRlbGV0ZSBhIHdoaXRlbGlzdGVkIGFkZHJlc3MKCiAgICAgICAgRGVsZXRlcyBhIHdoaXRlbGlzdGVkIGFkZHJlc3MgKGZvciBhbiBhc3NldCkgZnJvbSBhbiBpbnRlcm5hbCB3YWxsZXQuCgogICAgICAgIDpwYXJhbSB3YWxsZXRfaWQ6IFRoZSBJRCBvZiB0aGUgd2FsbGV0IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB3YWxsZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBhc3NldF9pZDogVGhlIElEIG9mIHRoZSBhc3NldCB0byBkZWxldGUgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGFzc2V0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZGVsZXRlX2ludGVybmFsX3dhbGxldF9hc3NldCIsIHBhcmFtX25hbWU9IndhbGxldF9pZCIsIHBhcmFtX3ZhbHVlPXdhbGxldF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImRlbGV0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXQiLCBwYXJhbV9uYW1lPSJhc3NldF9pZCIsIHBhcmFtX3ZhbHVlPWFzc2V0X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9kZWxldGVfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgd2FsbGV0X2lkPXdhbGxldF9pZCwKICAgICAgICAgICAgYXNzZXRfaWQ9YXNzZXRfaWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMSc6IE5vbmUsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2RlbGV0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkLAogICAgICAgIGFzc2V0X2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB3YWxsZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snd2FsbGV0SWQnXSA9IHdhbGxldF9pZAogICAgICAgIGlmIGFzc2V0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Fzc2V0SWQnXSA9IGFzc2V0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdERUxFVEUnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvaW50ZXJuYWxfd2FsbGV0cy97d2FsbGV0SWR9L3thc3NldElkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfaW50ZXJuYWxfd2FsbGV0KAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB3YWxsZXQgdG8gcmV0dXJuIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVW5tYW5hZ2VkV2FsbGV0XV06CiAgICAgICAgIiIiR2V0IGFzc2V0cyBmb3IgaW50ZXJuYWwgd2FsbGV0CgogICAgICAgIFJldHVybnMgaW5mb3JtYXRpb24gZm9yIGFuIGludGVybmFsIHdhbGxldC4KCiAgICAgICAgOnBhcmFtIHdhbGxldF9pZDogVGhlIElEIG9mIHRoZSB3YWxsZXQgdG8gcmV0dXJuIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB3YWxsZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfaW50ZXJuYWxfd2FsbGV0IiwgcGFyYW1fbmFtZT0id2FsbGV0X2lkIiwgcGFyYW1fdmFsdWU9d2FsbGV0X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfaW50ZXJuYWxfd2FsbGV0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgd2FsbGV0X2lkPXdhbGxldF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlVubWFuYWdlZFdhbGxldCIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9pbnRlcm5hbF93YWxsZXRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB3YWxsZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snd2FsbGV0SWQnXSA9IHdhbGxldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2ludGVybmFsX3dhbGxldHMve3dhbGxldElkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0KAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB3YWxsZXQiKV0sCiAgICAgICAgYXNzZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIHJldHVybiIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1dhbGxldEFzc2V0XV06CiAgICAgICAgIiIiR2V0IGFuIGFzc2V0IGZyb20gYW4gaW50ZXJuYWwgd2FsbGV0CgogICAgICAgIFJldHVybnMgaW5mb3JtYXRpb24gZm9yIGFuIGFzc2V0IGluIGFuIGludGVybmFsIHdhbGxldC4KCiAgICAgICAgOnBhcmFtIHdhbGxldF9pZDogVGhlIElEIG9mIHRoZSB3YWxsZXQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHdhbGxldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGFzc2V0X2lkOiBUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIHJldHVybiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0IiwgcGFyYW1fbmFtZT0id2FsbGV0X2lkIiwgcGFyYW1fdmFsdWU9d2FsbGV0X2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2ludGVybmFsX3dhbGxldF9hc3NldCIsIHBhcmFtX25hbWU9ImFzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YXNzZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9pbnRlcm5hbF93YWxsZXRfYXNzZXRfc2VyaWFsaXplKAogICAgICAgICAgICB3YWxsZXRfaWQ9d2FsbGV0X2lkLAogICAgICAgICAgICBhc3NldF9pZD1hc3NldF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIldhbGxldEFzc2V0IiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2ludGVybmFsX3dhbGxldF9hc3NldF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB3YWxsZXRfaWQsCiAgICAgICAgYXNzZXRfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHdhbGxldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd3YWxsZXRJZCddID0gd2FsbGV0X2lkCiAgICAgICAgaWYgYXNzZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYXNzZXRJZCddID0gYXNzZXRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9pbnRlcm5hbF93YWxsZXRzL3t3YWxsZXRJZH0ve2Fzc2V0SWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9pbnRlcm5hbF93YWxsZXRfYXNzZXRzX3BhZ2luYXRlZCgKICAgICAgICBzZWxmLAogICAgICAgIHdhbGxldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgaW50ZXJuYWwgd2FsbGV0IHRvIHJldHVybiBhc3NldHMgZm9yIildLAogICAgICAgIHBhZ2Vfc2l6ZTogT3B0aW9uYWxbVW5pb25bQW5ub3RhdGVkW2Zsb2F0LCBGaWVsZChsZT0yMDAsIHN0cmljdD1UcnVlLCBnZT0xKV0sIEFubm90YXRlZFtpbnQsIEZpZWxkKGxlPTIwMCwgc3RyaWN0PVRydWUsIGdlPTEpXV1dID0gTm9uZSwKICAgICAgICBwYWdlX2N1cnNvcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtQYWdpbmF0ZWRBc3NldHNSZXNwb25zZV1dOgogICAgICAgICIiIkxpc3QgYXNzZXRzIGluIGFuIGludGVybmFsIHdhbGxldCAoUGFnaW5hdGVkKQoKICAgICAgICBSZXR1cm5zIGEgcGFnaW5hdGVkIHJlc3BvbnNlIG9mIGFzc2V0cyBpbiBhbiBpbnRlcm5hbCB3YWxsZXQuCgogICAgICAgIDpwYXJhbSB3YWxsZXRfaWQ6IFRoZSBJRCBvZiB0aGUgaW50ZXJuYWwgd2FsbGV0IHRvIHJldHVybiBhc3NldHMgZm9yIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB3YWxsZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBwYWdlX3NpemU6CiAgICAgICAgOnR5cGUgcGFnZV9zaXplOiBmbG9hdAogICAgICAgIDpwYXJhbSBwYWdlX2N1cnNvcjoKICAgICAgICA6dHlwZSBwYWdlX2N1cnNvcjogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9pbnRlcm5hbF93YWxsZXRfYXNzZXRzX3BhZ2luYXRlZCIsIHBhcmFtX25hbWU9IndhbGxldF9pZCIsIHBhcmFtX3ZhbHVlPXdhbGxldF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2ludGVybmFsX3dhbGxldF9hc3NldHNfcGFnaW5hdGVkX3NlcmlhbGl6ZSgKICAgICAgICAgICAgd2FsbGV0X2lkPXdhbGxldF9pZCwKICAgICAgICAgICAgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwKICAgICAgICAgICAgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJQYWdpbmF0ZWRBc3NldHNSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9pbnRlcm5hbF93YWxsZXRfYXNzZXRzX3BhZ2luYXRlZF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB3YWxsZXRfaWQsCiAgICAgICAgcGFnZV9zaXplLAogICAgICAgIHBhZ2VfY3Vyc29yLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB3YWxsZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snd2FsbGV0SWQnXSA9IHdhbGxldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIHBhZ2Vfc2l6ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZVNpemUnLCBwYWdlX3NpemUpKQogICAgICAgICAgICAKICAgICAgICBpZiBwYWdlX2N1cnNvciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZUN1cnNvcicsIHBhZ2VfY3Vyc29yKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvaW50ZXJuYWxfd2FsbGV0cy97d2FsbGV0SWR9L2Fzc2V0cycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfaW50ZXJuYWxfd2FsbGV0cygKICAgICAgICBzZWxmLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTGlzdFtVbm1hbmFnZWRXYWxsZXRdXV06CiAgICAgICAgIiIiTGlzdCBpbnRlcm5hbCB3YWxsZXRzCgogICAgICAgIEdldHMgYSBsaXN0IG9mIGludGVybmFsIHdhbGxldHMuIAoKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfaW50ZXJuYWxfd2FsbGV0c19zZXJpYWxpemUoCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJMaXN0W1VubWFuYWdlZFdhbGxldF0iLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfaW50ZXJuYWxfd2FsbGV0c19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvaW50ZXJuYWxfd2FsbGV0cycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBzZXRfY3VzdG9tZXJfcmVmX2lkX2Zvcl9pbnRlcm5hbF93YWxsZXQoCiAgICAgICAgc2VsZiwKICAgICAgICB3YWxsZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgd2FsbGV0IElEIildLAogICAgICAgIHNldF9jdXN0b21lcl9yZWZfaWRfcmVxdWVzdDogU2V0Q3VzdG9tZXJSZWZJZFJlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTm9uZV1dOgogICAgICAgICIiIlNldCBhbiBBTUwvS1lUIGN1c3RvbWVyIHJlZmVyZW5jZSBJRCBmb3IgaW50ZXJuYWwgd2FsbGV0CgogICAgICAgIFNldHMgYW4gQU1ML0tZVCBjdXN0b21lciByZWZlcmVuY2UgSUQgZm9yIHRoZSBzcGVjaWZpYyBpbnRlcm5hbCB3YWxsZXQuCgogICAgICAgIDpwYXJhbSB3YWxsZXRfaWQ6IFRoZSB3YWxsZXQgSUQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHdhbGxldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIHNldF9jdXN0b21lcl9yZWZfaWRfcmVxdWVzdDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHNldF9jdXN0b21lcl9yZWZfaWRfcmVxdWVzdDogU2V0Q3VzdG9tZXJSZWZJZFJlcXVlc3QKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0ic2V0X2N1c3RvbWVyX3JlZl9pZF9mb3JfaW50ZXJuYWxfd2FsbGV0IiwgcGFyYW1fbmFtZT0id2FsbGV0X2lkIiwgcGFyYW1fdmFsdWU9d2FsbGV0X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9zZXRfY3VzdG9tZXJfcmVmX2lkX2Zvcl9pbnRlcm5hbF93YWxsZXRfc2VyaWFsaXplKAogICAgICAgICAgICB3YWxsZXRfaWQ9d2FsbGV0X2lkLAogICAgICAgICAgICBzZXRfY3VzdG9tZXJfcmVmX2lkX3JlcXVlc3Q9c2V0X2N1c3RvbWVyX3JlZl9pZF9yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiBOb25lLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9zZXRfY3VzdG9tZXJfcmVmX2lkX2Zvcl9pbnRlcm5hbF93YWxsZXRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgd2FsbGV0X2lkLAogICAgICAgIHNldF9jdXN0b21lcl9yZWZfaWRfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHdhbGxldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd3YWxsZXRJZCddID0gd2FsbGV0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgc2V0X2N1c3RvbWVyX3JlZl9pZF9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBzZXRfY3VzdG9tZXJfcmVmX2lkX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2ludGVybmFsX3dhbGxldHMve3dhbGxldElkfS9zZXRfY3VzdG9tZXJfcmVmX2lkJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgo= \ No newline at end of file diff --git a/fireblocks/api/key_link_beta_api.py b/fireblocks/api/key_link_beta_api.py index d77481ee..0d3c0879 100644 --- a/fireblocks/api/key_link_beta_api.py +++ b/fireblocks/api/key_link_beta_api.py @@ -1,1429 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Optional, Union -from typing_extensions import Annotated -from fireblocks.models.create_signing_key_dto import CreateSigningKeyDto -from fireblocks.models.create_validation_key_dto import CreateValidationKeyDto -from fireblocks.models.create_validation_key_response_dto import CreateValidationKeyResponseDto -from fireblocks.models.get_signing_key_response_dto import GetSigningKeyResponseDto -from fireblocks.models.get_validation_key_response_dto import GetValidationKeyResponseDto -from fireblocks.models.modify_signing_key_agent_id_dto import ModifySigningKeyAgentIdDto -from fireblocks.models.modify_signing_key_dto import ModifySigningKeyDto -from fireblocks.models.modify_validation_key_dto import ModifyValidationKeyDto -from fireblocks.models.signing_key_dto import SigningKeyDto -from fireblocks.models.validation_key_dto import ValidationKeyDto - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class KeyLinkBetaApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def create_signing_key( - self, - create_signing_key_dto: CreateSigningKeyDto, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SigningKeyDto]]: - """Add a new signing key - - Adds a new signing key to the workspace. The added key will be linked to the specific Fireblocks agent user ID. The same user will receive the proof of ownership message to be signed, and upon successful proof, the key will become enabled. - - :param create_signing_key_dto: (required) - :type create_signing_key_dto: CreateSigningKeyDto - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_signing_key_serialize( - create_signing_key_dto=create_signing_key_dto, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "SigningKeyDto", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_signing_key_serialize( - self, - create_signing_key_dto, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_signing_key_dto is not None: - _body_params = create_signing_key_dto - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/key_link/signing_keys', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_validation_key( - self, - create_validation_key_dto: CreateValidationKeyDto, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[CreateValidationKeyResponseDto]]: - """Add a new validation key - - Adds a new validation key used to validate signing keys. The new validation key will undergo an approval process by the workspace quorum. - - :param create_validation_key_dto: (required) - :type create_validation_key_dto: CreateValidationKeyDto - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_validation_key_serialize( - create_validation_key_dto=create_validation_key_dto, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "CreateValidationKeyResponseDto", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_validation_key_serialize( - self, - create_validation_key_dto, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_validation_key_dto is not None: - _body_params = create_validation_key_dto - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/key_link/validation_keys', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def disable_validation_key( - self, - key_id: Annotated[StrictStr, Field(description="The unique identifier for the validation key provided by Fireblocks")], - modify_validation_key_dto: ModifyValidationKeyDto, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ValidationKeyDto]]: - """Disables a validation key - - Allows disabling validation key even if it has not expired yet. It is not allowed to enable the validation key back. Another key has to be used for future validations. - - :param key_id: The unique identifier for the validation key provided by Fireblocks (required) - :type key_id: str - :param modify_validation_key_dto: (required) - :type modify_validation_key_dto: ModifyValidationKeyDto - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="disable_validation_key", param_name="key_id", param_value=key_id) - - _param = self._disable_validation_key_serialize( - key_id=key_id, - modify_validation_key_dto=modify_validation_key_dto, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ValidationKeyDto", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _disable_validation_key_serialize( - self, - key_id, - modify_validation_key_dto, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if key_id is not None: - _path_params['keyId'] = key_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - if modify_validation_key_dto is not None: - _body_params = modify_validation_key_dto - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PATCH', - resource_path='/key_link/validation_keys/{keyId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_signing_key( - self, - key_id: Annotated[StrictStr, Field(description="The unique identifier for the signing key provided by Fireblocks")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SigningKeyDto]]: - """Get a signing key by `keyId` - - Returns a signing key if it exists, identified by the specified `keyId`. - - :param key_id: The unique identifier for the signing key provided by Fireblocks (required) - :type key_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_signing_key", param_name="key_id", param_value=key_id) - - _param = self._get_signing_key_serialize( - key_id=key_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SigningKeyDto", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_signing_key_serialize( - self, - key_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if key_id is not None: - _path_params['keyId'] = key_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/key_link/signing_keys/{keyId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_signing_keys_list( - self, - page_cursor: Annotated[Optional[StrictStr], Field(description="Cursor to the next page")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=50, strict=True, ge=1)], Annotated[int, Field(le=50, strict=True, ge=1)]]], Field(description="Amount of results to return in the next page")] = None, - sort_by: Annotated[Optional[StrictStr], Field(description="Field(s) to use for sorting")] = None, - order: Annotated[Optional[StrictStr], Field(description="Is the order ascending or descending")] = None, - vault_account_id: Annotated[Optional[Union[StrictFloat, StrictInt]], Field(description="Return keys assigned to a specific vault")] = None, - agent_user_id: Annotated[Optional[StrictStr], Field(description="Return keys associated with a specific agent user")] = None, - algorithm: Annotated[Optional[StrictStr], Field(description="Return only keys with a specific algorithm")] = None, - enabled: Annotated[Optional[StrictBool], Field(description="Return keys that have been proof of ownership")] = None, - available: Annotated[Optional[StrictBool], Field(description="Return keys that are proof of ownership but not assigned. Available filter can be used only when vaultAccountId and enabled filters are not set")] = None, - is_assigned: Annotated[Optional[StrictBool], Field(description="Return keys that are assigned to a vault account")] = None, - key_prefix: Annotated[Optional[StrictStr], Field(description="A case-insensitive prefix filter that matches records where either keyId or signingDeviceKeyID starts with the specified value.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GetSigningKeyResponseDto]]: - """Get list of signing keys - - Returns the list of signing keys in the workspace - - :param page_cursor: Cursor to the next page - :type page_cursor: str - :param page_size: Amount of results to return in the next page - :type page_size: float - :param sort_by: Field(s) to use for sorting - :type sort_by: str - :param order: Is the order ascending or descending - :type order: str - :param vault_account_id: Return keys assigned to a specific vault - :type vault_account_id: float - :param agent_user_id: Return keys associated with a specific agent user - :type agent_user_id: str - :param algorithm: Return only keys with a specific algorithm - :type algorithm: str - :param enabled: Return keys that have been proof of ownership - :type enabled: bool - :param available: Return keys that are proof of ownership but not assigned. Available filter can be used only when vaultAccountId and enabled filters are not set - :type available: bool - :param is_assigned: Return keys that are assigned to a vault account - :type is_assigned: bool - :param key_prefix: A case-insensitive prefix filter that matches records where either keyId or signingDeviceKeyID starts with the specified value. - :type key_prefix: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_signing_keys_list_serialize( - page_cursor=page_cursor, - page_size=page_size, - sort_by=sort_by, - order=order, - vault_account_id=vault_account_id, - agent_user_id=agent_user_id, - algorithm=algorithm, - enabled=enabled, - available=available, - is_assigned=is_assigned, - key_prefix=key_prefix, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GetSigningKeyResponseDto", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_signing_keys_list_serialize( - self, - page_cursor, - page_size, - sort_by, - order, - vault_account_id, - agent_user_id, - algorithm, - enabled, - available, - is_assigned, - key_prefix, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if sort_by is not None: - - _query_params.append(('sortBy', sort_by)) - - if order is not None: - - _query_params.append(('order', order)) - - if vault_account_id is not None: - - _query_params.append(('vaultAccountId', vault_account_id)) - - if agent_user_id is not None: - - _query_params.append(('agentUserId', agent_user_id)) - - if algorithm is not None: - - _query_params.append(('algorithm', algorithm)) - - if enabled is not None: - - _query_params.append(('enabled', enabled)) - - if available is not None: - - _query_params.append(('available', available)) - - if is_assigned is not None: - - _query_params.append(('isAssigned', is_assigned)) - - if key_prefix is not None: - - _query_params.append(('keyPrefix', key_prefix)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/key_link/signing_keys', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_validation_key( - self, - key_id: StrictStr, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ValidationKeyDto]]: - """Get a validation key by `keyId` - - Returns a validation key if it exists, identified by the specified `keyId`. - - :param key_id: (required) - :type key_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_validation_key", param_name="key_id", param_value=key_id) - - _param = self._get_validation_key_serialize( - key_id=key_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ValidationKeyDto", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_validation_key_serialize( - self, - key_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if key_id is not None: - _path_params['keyId'] = key_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/key_link/validation_keys/{keyId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_validation_keys_list( - self, - page_cursor: Annotated[Optional[StrictStr], Field(description="Cursor to the next page")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=50, strict=True, ge=1)], Annotated[int, Field(le=50, strict=True, ge=1)]]], Field(description="Amount of results to return in the next page")] = None, - sort_by: Annotated[Optional[StrictStr], Field(description="Field(s) to use for sorting")] = None, - order: Annotated[Optional[StrictStr], Field(description="Is the order ascending or descending")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GetValidationKeyResponseDto]]: - """Get list of registered validation keys - - Returns the list of validation keys in the workspace - - :param page_cursor: Cursor to the next page - :type page_cursor: str - :param page_size: Amount of results to return in the next page - :type page_size: float - :param sort_by: Field(s) to use for sorting - :type sort_by: str - :param order: Is the order ascending or descending - :type order: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_validation_keys_list_serialize( - page_cursor=page_cursor, - page_size=page_size, - sort_by=sort_by, - order=order, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GetValidationKeyResponseDto", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_validation_keys_list_serialize( - self, - page_cursor, - page_size, - sort_by, - order, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if sort_by is not None: - - _query_params.append(('sortBy', sort_by)) - - if order is not None: - - _query_params.append(('order', order)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/key_link/validation_keys', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_agent_id( - self, - key_id: Annotated[StrictStr, Field(description="The unique identifier for the signing key provided by Fireblocks")], - modify_signing_key_agent_id_dto: ModifySigningKeyAgentIdDto, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Set agent user id - - Can modify existing signing key id if the key is not enabled. The change done in background and will be visible once applied. If key is already enabled (after proof of ownership) the user cannot be changed. - - :param key_id: The unique identifier for the signing key provided by Fireblocks (required) - :type key_id: str - :param modify_signing_key_agent_id_dto: (required) - :type modify_signing_key_agent_id_dto: ModifySigningKeyAgentIdDto - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="set_agent_id", param_name="key_id", param_value=key_id) - - _param = self._set_agent_id_serialize( - key_id=key_id, - modify_signing_key_agent_id_dto=modify_signing_key_agent_id_dto, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '204': None, - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_agent_id_serialize( - self, - key_id, - modify_signing_key_agent_id_dto, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if key_id is not None: - _path_params['keyId'] = key_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - if modify_signing_key_agent_id_dto is not None: - _body_params = modify_signing_key_agent_id_dto - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PATCH', - resource_path='/key_link/signing_keys/{keyId}/agent_user_id', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_signing_key( - self, - key_id: Annotated[StrictStr, Field(description="The unique identifier for the signing key provided by Fireblocks")], - modify_signing_key_dto: ModifySigningKeyDto, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SigningKeyDto]]: - """Modify the signing keyId - - Allows assigning the signing key to a vault account, if it hasn't been assigned to any other vault accounts yet. - - :param key_id: The unique identifier for the signing key provided by Fireblocks (required) - :type key_id: str - :param modify_signing_key_dto: (required) - :type modify_signing_key_dto: ModifySigningKeyDto - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="update_signing_key", param_name="key_id", param_value=key_id) - - _param = self._update_signing_key_serialize( - key_id=key_id, - modify_signing_key_dto=modify_signing_key_dto, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SigningKeyDto", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_signing_key_serialize( - self, - key_id, - modify_signing_key_dto, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if key_id is not None: - _path_params['keyId'] = key_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - if modify_signing_key_dto is not None: - _body_params = modify_signing_key_dto - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PATCH', - resource_path='/key_link/signing_keys/{keyId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdEJvb2wsIFN0cmljdEZsb2F0LCBTdHJpY3RJbnQsIFN0cmljdFN0ciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3NpZ25pbmdfa2V5X2R0byBpbXBvcnQgQ3JlYXRlU2lnbmluZ0tleUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV92YWxpZGF0aW9uX2tleV9kdG8gaW1wb3J0IENyZWF0ZVZhbGlkYXRpb25LZXlEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfdmFsaWRhdGlvbl9rZXlfcmVzcG9uc2VfZHRvIGltcG9ydCBDcmVhdGVWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfc2lnbmluZ19rZXlfcmVzcG9uc2VfZHRvIGltcG9ydCBHZXRTaWduaW5nS2V5UmVzcG9uc2VEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfdmFsaWRhdGlvbl9rZXlfcmVzcG9uc2VfZHRvIGltcG9ydCBHZXRWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tb2RpZnlfc2lnbmluZ19rZXlfYWdlbnRfaWRfZHRvIGltcG9ydCBNb2RpZnlTaWduaW5nS2V5QWdlbnRJZER0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1vZGlmeV9zaWduaW5nX2tleV9kdG8gaW1wb3J0IE1vZGlmeVNpZ25pbmdLZXlEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tb2RpZnlfdmFsaWRhdGlvbl9rZXlfZHRvIGltcG9ydCBNb2RpZnlWYWxpZGF0aW9uS2V5RHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2lnbmluZ19rZXlfZHRvIGltcG9ydCBTaWduaW5nS2V5RHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmFsaWRhdGlvbl9rZXlfZHRvIGltcG9ydCBWYWxpZGF0aW9uS2V5RHRvCgpmcm9tIGZpcmVibG9ja3MuYXBpX2NsaWVudCBpbXBvcnQgQXBpQ2xpZW50LCBSZXF1ZXN0U2VyaWFsaXplZApmcm9tIGZpcmVibG9ja3MuYXBpX3Jlc3BvbnNlIGltcG9ydCBBcGlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MucmVzdCBpbXBvcnQgUkVTVFJlc3BvbnNlVHlwZQpmcm9tIGZpcmVibG9ja3MudmFsaWRhdGlvbl91dGlscyBpbXBvcnQgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZwoKCmNsYXNzIEtleUxpbmtCZXRhQXBpOgogICAgIiIiTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvcgogICAgUmVmOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gKCiAgICBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgYXBpX2NsaWVudD1Ob25lKSAtPiBOb25lOgogICAgICAgIGlmIGFwaV9jbGllbnQgaXMgTm9uZToKICAgICAgICAgICAgYXBpX2NsaWVudCA9IEFwaUNsaWVudC5nZXRfZGVmYXVsdCgpCiAgICAgICAgc2VsZi5hcGlfY2xpZW50ID0gYXBpX2NsaWVudAoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGNyZWF0ZV9zaWduaW5nX2tleSgKICAgICAgICBzZWxmLAogICAgICAgIGNyZWF0ZV9zaWduaW5nX2tleV9kdG86IENyZWF0ZVNpZ25pbmdLZXlEdG8sCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbU2lnbmluZ0tleUR0b11dOgogICAgICAgICIiIkFkZCBhIG5ldyBzaWduaW5nIGtleQoKICAgICAgICBBZGRzIGEgbmV3IHNpZ25pbmcga2V5IHRvIHRoZSB3b3Jrc3BhY2UuIFRoZSBhZGRlZCBrZXkgd2lsbCBiZSBsaW5rZWQgdG8gdGhlIHNwZWNpZmljIEZpcmVibG9ja3MgYWdlbnQgdXNlciBJRC4gVGhlIHNhbWUgdXNlciB3aWxsIHJlY2VpdmUgdGhlIHByb29mIG9mIG93bmVyc2hpcCBtZXNzYWdlIHRvIGJlIHNpZ25lZCwgYW5kIHVwb24gc3VjY2Vzc2Z1bCBwcm9vZiwgdGhlIGtleSB3aWxsIGJlY29tZSBlbmFibGVkLgoKICAgICAgICA6cGFyYW0gY3JlYXRlX3NpZ25pbmdfa2V5X2R0bzogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGNyZWF0ZV9zaWduaW5nX2tleV9kdG86IENyZWF0ZVNpZ25pbmdLZXlEdG8KICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9jcmVhdGVfc2lnbmluZ19rZXlfc2VyaWFsaXplKAogICAgICAgICAgICBjcmVhdGVfc2lnbmluZ19rZXlfZHRvPWNyZWF0ZV9zaWduaW5nX2tleV9kdG8sCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMSc6ICJTaWduaW5nS2V5RHRvIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfY3JlYXRlX3NpZ25pbmdfa2V5X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNyZWF0ZV9zaWduaW5nX2tleV9kdG8sCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBjcmVhdGVfc2lnbmluZ19rZXlfZHRvIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBjcmVhdGVfc2lnbmluZ19rZXlfZHRvCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9rZXlfbGluay9zaWduaW5nX2tleXMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgY3JlYXRlX3ZhbGlkYXRpb25fa2V5KAogICAgICAgIHNlbGYsCiAgICAgICAgY3JlYXRlX3ZhbGlkYXRpb25fa2V5X2R0bzogQ3JlYXRlVmFsaWRhdGlvbktleUR0bywKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtDcmVhdGVWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG9dXToKICAgICAgICAiIiJBZGQgYSBuZXcgdmFsaWRhdGlvbiBrZXkKCiAgICAgICAgQWRkcyBhIG5ldyB2YWxpZGF0aW9uIGtleSB1c2VkIHRvIHZhbGlkYXRlIHNpZ25pbmcga2V5cy4gVGhlIG5ldyB2YWxpZGF0aW9uIGtleSB3aWxsIHVuZGVyZ28gYW4gYXBwcm92YWwgcHJvY2VzcyBieSB0aGUgd29ya3NwYWNlIHF1b3J1bS4KCiAgICAgICAgOnBhcmFtIGNyZWF0ZV92YWxpZGF0aW9uX2tleV9kdG86IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjcmVhdGVfdmFsaWRhdGlvbl9rZXlfZHRvOiBDcmVhdGVWYWxpZGF0aW9uS2V5RHRvCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fY3JlYXRlX3ZhbGlkYXRpb25fa2V5X3NlcmlhbGl6ZSgKICAgICAgICAgICAgY3JlYXRlX3ZhbGlkYXRpb25fa2V5X2R0bz1jcmVhdGVfdmFsaWRhdGlvbl9rZXlfZHRvLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiAiQ3JlYXRlVmFsaWRhdGlvbktleVJlc3BvbnNlRHRvIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfY3JlYXRlX3ZhbGlkYXRpb25fa2V5X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNyZWF0ZV92YWxpZGF0aW9uX2tleV9kdG8sCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBjcmVhdGVfdmFsaWRhdGlvbl9rZXlfZHRvIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBjcmVhdGVfdmFsaWRhdGlvbl9rZXlfZHRvCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9rZXlfbGluay92YWxpZGF0aW9uX2tleXMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZGlzYWJsZV92YWxpZGF0aW9uX2tleSgKICAgICAgICBzZWxmLAogICAgICAgIGtleV9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHZhbGlkYXRpb24ga2V5IHByb3ZpZGVkIGJ5IEZpcmVibG9ja3MiKV0sCiAgICAgICAgbW9kaWZ5X3ZhbGlkYXRpb25fa2V5X2R0bzogTW9kaWZ5VmFsaWRhdGlvbktleUR0bywKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1ZhbGlkYXRpb25LZXlEdG9dXToKICAgICAgICAiIiJEaXNhYmxlcyBhIHZhbGlkYXRpb24ga2V5CgogICAgICAgIEFsbG93cyBkaXNhYmxpbmcgdmFsaWRhdGlvbiBrZXkgZXZlbiBpZiBpdCBoYXMgbm90IGV4cGlyZWQgeWV0LiBJdCBpcyBub3QgYWxsb3dlZCB0byBlbmFibGUgdGhlIHZhbGlkYXRpb24ga2V5IGJhY2suIEFub3RoZXIga2V5IGhhcyB0byBiZSB1c2VkIGZvciBmdXR1cmUgdmFsaWRhdGlvbnMuCgogICAgICAgIDpwYXJhbSBrZXlfaWQ6IFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHZhbGlkYXRpb24ga2V5IHByb3ZpZGVkIGJ5IEZpcmVibG9ja3MgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGtleV9pZDogc3RyCiAgICAgICAgOnBhcmFtIG1vZGlmeV92YWxpZGF0aW9uX2tleV9kdG86IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBtb2RpZnlfdmFsaWRhdGlvbl9rZXlfZHRvOiBNb2RpZnlWYWxpZGF0aW9uS2V5RHRvCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImRpc2FibGVfdmFsaWRhdGlvbl9rZXkiLCBwYXJhbV9uYW1lPSJrZXlfaWQiLCBwYXJhbV92YWx1ZT1rZXlfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2Rpc2FibGVfdmFsaWRhdGlvbl9rZXlfc2VyaWFsaXplKAogICAgICAgICAgICBrZXlfaWQ9a2V5X2lkLAogICAgICAgICAgICBtb2RpZnlfdmFsaWRhdGlvbl9rZXlfZHRvPW1vZGlmeV92YWxpZGF0aW9uX2tleV9kdG8sCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJWYWxpZGF0aW9uS2V5RHRvIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZGlzYWJsZV92YWxpZGF0aW9uX2tleV9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBrZXlfaWQsCiAgICAgICAgbW9kaWZ5X3ZhbGlkYXRpb25fa2V5X2R0bywKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYga2V5X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2tleUlkJ10gPSBrZXlfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgbW9kaWZ5X3ZhbGlkYXRpb25fa2V5X2R0byBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gbW9kaWZ5X3ZhbGlkYXRpb25fa2V5X2R0bwoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BBVENIJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2tleV9saW5rL3ZhbGlkYXRpb25fa2V5cy97a2V5SWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9zaWduaW5nX2tleSgKICAgICAgICBzZWxmLAogICAgICAgIGtleV9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHNpZ25pbmcga2V5IHByb3ZpZGVkIGJ5IEZpcmVibG9ja3MiKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtTaWduaW5nS2V5RHRvXV06CiAgICAgICAgIiIiR2V0IGEgc2lnbmluZyBrZXkgYnkgYGtleUlkYAoKICAgICAgICBSZXR1cm5zIGEgc2lnbmluZyBrZXkgaWYgaXQgZXhpc3RzLCBpZGVudGlmaWVkIGJ5IHRoZSBzcGVjaWZpZWQgYGtleUlkYC4KCiAgICAgICAgOnBhcmFtIGtleV9pZDogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgc2lnbmluZyBrZXkgcHJvdmlkZWQgYnkgRmlyZWJsb2NrcyAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUga2V5X2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3NpZ25pbmdfa2V5IiwgcGFyYW1fbmFtZT0ia2V5X2lkIiwgcGFyYW1fdmFsdWU9a2V5X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfc2lnbmluZ19rZXlfc2VyaWFsaXplKAogICAgICAgICAgICBrZXlfaWQ9a2V5X2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiU2lnbmluZ0tleUR0byIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9zaWduaW5nX2tleV9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBrZXlfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGtleV9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydrZXlJZCddID0ga2V5X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScva2V5X2xpbmsvc2lnbmluZ19rZXlzL3trZXlJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X3NpZ25pbmdfa2V5c19saXN0KAogICAgICAgIHNlbGYsCiAgICAgICAgcGFnZV9jdXJzb3I6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQ3Vyc29yIHRvIHRoZSBuZXh0IHBhZ2UiKV0gPSBOb25lLAogICAgICAgIHBhZ2Vfc2l6ZTogQW5ub3RhdGVkW09wdGlvbmFsW1VuaW9uW0Fubm90YXRlZFtmbG9hdCwgRmllbGQobGU9NTAsIHN0cmljdD1UcnVlLCBnZT0xKV0sIEFubm90YXRlZFtpbnQsIEZpZWxkKGxlPTUwLCBzdHJpY3Q9VHJ1ZSwgZ2U9MSldXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBbW91bnQgb2YgcmVzdWx0cyB0byByZXR1cm4gaW4gdGhlIG5leHQgcGFnZSIpXSA9IE5vbmUsCiAgICAgICAgc29ydF9ieTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJGaWVsZChzKSB0byB1c2UgZm9yIHNvcnRpbmciKV0gPSBOb25lLAogICAgICAgIG9yZGVyOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IklzIHRoZSBvcmRlciBhc2NlbmRpbmcgb3IgZGVzY2VuZGluZyIpXSA9IE5vbmUsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZDogQW5ub3RhdGVkW09wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSwgRmllbGQoZGVzY3JpcHRpb249IlJldHVybiBrZXlzIGFzc2lnbmVkIHRvIGEgc3BlY2lmaWMgdmF1bHQiKV0gPSBOb25lLAogICAgICAgIGFnZW50X3VzZXJfaWQ6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iUmV0dXJuIGtleXMgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgYWdlbnQgdXNlciIpXSA9IE5vbmUsCiAgICAgICAgYWxnb3JpdGhtOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlJldHVybiBvbmx5IGtleXMgd2l0aCBhIHNwZWNpZmljIGFsZ29yaXRobSIpXSA9IE5vbmUsCiAgICAgICAgZW5hYmxlZDogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdEJvb2xdLCBGaWVsZChkZXNjcmlwdGlvbj0iUmV0dXJuIGtleXMgdGhhdCBoYXZlIGJlZW4gcHJvb2Ygb2Ygb3duZXJzaGlwIildID0gTm9uZSwKICAgICAgICBhdmFpbGFibGU6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RCb29sXSwgRmllbGQoZGVzY3JpcHRpb249IlJldHVybiBrZXlzIHRoYXQgYXJlIHByb29mIG9mIG93bmVyc2hpcCBidXQgbm90IGFzc2lnbmVkLiBBdmFpbGFibGUgZmlsdGVyIGNhbiBiZSB1c2VkIG9ubHkgd2hlbiB2YXVsdEFjY291bnRJZCBhbmQgZW5hYmxlZCBmaWx0ZXJzIGFyZSBub3Qgc2V0IildID0gTm9uZSwKICAgICAgICBpc19hc3NpZ25lZDogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdEJvb2xdLCBGaWVsZChkZXNjcmlwdGlvbj0iUmV0dXJuIGtleXMgdGhhdCBhcmUgYXNzaWduZWQgdG8gYSB2YXVsdCBhY2NvdW50IildID0gTm9uZSwKICAgICAgICBrZXlfcHJlZml4OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgY2FzZS1pbnNlbnNpdGl2ZSBwcmVmaXggZmlsdGVyIHRoYXQgbWF0Y2hlcyByZWNvcmRzIHdoZXJlIGVpdGhlciBrZXlJZCBvciBzaWduaW5nRGV2aWNlS2V5SUQgc3RhcnRzIHdpdGggdGhlIHNwZWNpZmllZCB2YWx1ZS4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbR2V0U2lnbmluZ0tleVJlc3BvbnNlRHRvXV06CiAgICAgICAgIiIiR2V0IGxpc3Qgb2Ygc2lnbmluZyBrZXlzCgogICAgICAgIFJldHVybnMgdGhlIGxpc3Qgb2Ygc2lnbmluZyBrZXlzIGluIHRoZSB3b3Jrc3BhY2UKCiAgICAgICAgOnBhcmFtIHBhZ2VfY3Vyc29yOiBDdXJzb3IgdG8gdGhlIG5leHQgcGFnZQogICAgICAgIDp0eXBlIHBhZ2VfY3Vyc29yOiBzdHIKICAgICAgICA6cGFyYW0gcGFnZV9zaXplOiBBbW91bnQgb2YgcmVzdWx0cyB0byByZXR1cm4gaW4gdGhlIG5leHQgcGFnZQogICAgICAgIDp0eXBlIHBhZ2Vfc2l6ZTogZmxvYXQKICAgICAgICA6cGFyYW0gc29ydF9ieTogRmllbGQocykgdG8gdXNlIGZvciBzb3J0aW5nCiAgICAgICAgOnR5cGUgc29ydF9ieTogc3RyCiAgICAgICAgOnBhcmFtIG9yZGVyOiBJcyB0aGUgb3JkZXIgYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcKICAgICAgICA6dHlwZSBvcmRlcjogc3RyCiAgICAgICAgOnBhcmFtIHZhdWx0X2FjY291bnRfaWQ6IFJldHVybiBrZXlzIGFzc2lnbmVkIHRvIGEgc3BlY2lmaWMgdmF1bHQKICAgICAgICA6dHlwZSB2YXVsdF9hY2NvdW50X2lkOiBmbG9hdAogICAgICAgIDpwYXJhbSBhZ2VudF91c2VyX2lkOiBSZXR1cm4ga2V5cyBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyBhZ2VudCB1c2VyCiAgICAgICAgOnR5cGUgYWdlbnRfdXNlcl9pZDogc3RyCiAgICAgICAgOnBhcmFtIGFsZ29yaXRobTogUmV0dXJuIG9ubHkga2V5cyB3aXRoIGEgc3BlY2lmaWMgYWxnb3JpdGhtCiAgICAgICAgOnR5cGUgYWxnb3JpdGhtOiBzdHIKICAgICAgICA6cGFyYW0gZW5hYmxlZDogUmV0dXJuIGtleXMgdGhhdCBoYXZlIGJlZW4gcHJvb2Ygb2Ygb3duZXJzaGlwCiAgICAgICAgOnR5cGUgZW5hYmxlZDogYm9vbAogICAgICAgIDpwYXJhbSBhdmFpbGFibGU6IFJldHVybiBrZXlzIHRoYXQgYXJlIHByb29mIG9mIG93bmVyc2hpcCBidXQgbm90IGFzc2lnbmVkLiBBdmFpbGFibGUgZmlsdGVyIGNhbiBiZSB1c2VkIG9ubHkgd2hlbiB2YXVsdEFjY291bnRJZCBhbmQgZW5hYmxlZCBmaWx0ZXJzIGFyZSBub3Qgc2V0CiAgICAgICAgOnR5cGUgYXZhaWxhYmxlOiBib29sCiAgICAgICAgOnBhcmFtIGlzX2Fzc2lnbmVkOiBSZXR1cm4ga2V5cyB0aGF0IGFyZSBhc3NpZ25lZCB0byBhIHZhdWx0IGFjY291bnQKICAgICAgICA6dHlwZSBpc19hc3NpZ25lZDogYm9vbAogICAgICAgIDpwYXJhbSBrZXlfcHJlZml4OiBBIGNhc2UtaW5zZW5zaXRpdmUgcHJlZml4IGZpbHRlciB0aGF0IG1hdGNoZXMgcmVjb3JkcyB3aGVyZSBlaXRoZXIga2V5SWQgb3Igc2lnbmluZ0RldmljZUtleUlEIHN0YXJ0cyB3aXRoIHRoZSBzcGVjaWZpZWQgdmFsdWUuCiAgICAgICAgOnR5cGUga2V5X3ByZWZpeDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X3NpZ25pbmdfa2V5c19saXN0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsCiAgICAgICAgICAgIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsCiAgICAgICAgICAgIHNvcnRfYnk9c29ydF9ieSwKICAgICAgICAgICAgb3JkZXI9b3JkZXIsCiAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQ9dmF1bHRfYWNjb3VudF9pZCwKICAgICAgICAgICAgYWdlbnRfdXNlcl9pZD1hZ2VudF91c2VyX2lkLAogICAgICAgICAgICBhbGdvcml0aG09YWxnb3JpdGhtLAogICAgICAgICAgICBlbmFibGVkPWVuYWJsZWQsCiAgICAgICAgICAgIGF2YWlsYWJsZT1hdmFpbGFibGUsCiAgICAgICAgICAgIGlzX2Fzc2lnbmVkPWlzX2Fzc2lnbmVkLAogICAgICAgICAgICBrZXlfcHJlZml4PWtleV9wcmVmaXgsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJHZXRTaWduaW5nS2V5UmVzcG9uc2VEdG8iLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfc2lnbmluZ19rZXlzX2xpc3Rfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgcGFnZV9jdXJzb3IsCiAgICAgICAgcGFnZV9zaXplLAogICAgICAgIHNvcnRfYnksCiAgICAgICAgb3JkZXIsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZCwKICAgICAgICBhZ2VudF91c2VyX2lkLAogICAgICAgIGFsZ29yaXRobSwKICAgICAgICBlbmFibGVkLAogICAgICAgIGF2YWlsYWJsZSwKICAgICAgICBpc19hc3NpZ25lZCwKICAgICAgICBrZXlfcHJlZml4LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiBwYWdlX2N1cnNvciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZUN1cnNvcicsIHBhZ2VfY3Vyc29yKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgcGFnZV9zaXplIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlU2l6ZScsIHBhZ2Vfc2l6ZSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHNvcnRfYnkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3NvcnRCeScsIHNvcnRfYnkpKQogICAgICAgICAgICAKICAgICAgICBpZiBvcmRlciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnb3JkZXInLCBvcmRlcikpCiAgICAgICAgICAgIAogICAgICAgIGlmIHZhdWx0X2FjY291bnRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3ZhdWx0QWNjb3VudElkJywgdmF1bHRfYWNjb3VudF9pZCkpCiAgICAgICAgICAgIAogICAgICAgIGlmIGFnZW50X3VzZXJfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2FnZW50VXNlcklkJywgYWdlbnRfdXNlcl9pZCkpCiAgICAgICAgICAgIAogICAgICAgIGlmIGFsZ29yaXRobSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnYWxnb3JpdGhtJywgYWxnb3JpdGhtKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgZW5hYmxlZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnZW5hYmxlZCcsIGVuYWJsZWQpKQogICAgICAgICAgICAKICAgICAgICBpZiBhdmFpbGFibGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2F2YWlsYWJsZScsIGF2YWlsYWJsZSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIGlzX2Fzc2lnbmVkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdpc0Fzc2lnbmVkJywgaXNfYXNzaWduZWQpKQogICAgICAgICAgICAKICAgICAgICBpZiBrZXlfcHJlZml4IGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdrZXlQcmVmaXgnLCBrZXlfcHJlZml4KSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScva2V5X2xpbmsvc2lnbmluZ19rZXlzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF92YWxpZGF0aW9uX2tleSgKICAgICAgICBzZWxmLAogICAgICAgIGtleV9pZDogU3RyaWN0U3RyLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVmFsaWRhdGlvbktleUR0b11dOgogICAgICAgICIiIkdldCBhIHZhbGlkYXRpb24ga2V5IGJ5IGBrZXlJZGAKCiAgICAgICAgUmV0dXJucyBhIHZhbGlkYXRpb24ga2V5IGlmIGl0IGV4aXN0cywgaWRlbnRpZmllZCBieSB0aGUgc3BlY2lmaWVkIGBrZXlJZGAuCgogICAgICAgIDpwYXJhbSBrZXlfaWQ6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBrZXlfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfdmFsaWRhdGlvbl9rZXkiLCBwYXJhbV9uYW1lPSJrZXlfaWQiLCBwYXJhbV92YWx1ZT1rZXlfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF92YWxpZGF0aW9uX2tleV9zZXJpYWxpemUoCiAgICAgICAgICAgIGtleV9pZD1rZXlfaWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJWYWxpZGF0aW9uS2V5RHRvIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3ZhbGlkYXRpb25fa2V5X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGtleV9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYga2V5X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2tleUlkJ10gPSBrZXlfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9rZXlfbGluay92YWxpZGF0aW9uX2tleXMve2tleUlkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfdmFsaWRhdGlvbl9rZXlzX2xpc3QoCiAgICAgICAgc2VsZiwKICAgICAgICBwYWdlX2N1cnNvcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJDdXJzb3IgdG8gdGhlIG5leHQgcGFnZSIpXSA9IE5vbmUsCiAgICAgICAgcGFnZV9zaXplOiBBbm5vdGF0ZWRbT3B0aW9uYWxbVW5pb25bQW5ub3RhdGVkW2Zsb2F0LCBGaWVsZChsZT01MCwgc3RyaWN0PVRydWUsIGdlPTEpXSwgQW5ub3RhdGVkW2ludCwgRmllbGQobGU9NTAsIHN0cmljdD1UcnVlLCBnZT0xKV1dXSwgRmllbGQoZGVzY3JpcHRpb249IkFtb3VudCBvZiByZXN1bHRzIHRvIHJldHVybiBpbiB0aGUgbmV4dCBwYWdlIildID0gTm9uZSwKICAgICAgICBzb3J0X2J5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkZpZWxkKHMpIHRvIHVzZSBmb3Igc29ydGluZyIpXSA9IE5vbmUsCiAgICAgICAgb3JkZXI6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iSXMgdGhlIG9yZGVyIGFzY2VuZGluZyBvciBkZXNjZW5kaW5nIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0dldFZhbGlkYXRpb25LZXlSZXNwb25zZUR0b11dOgogICAgICAgICIiIkdldCBsaXN0IG9mIHJlZ2lzdGVyZWQgdmFsaWRhdGlvbiBrZXlzCgogICAgICAgIFJldHVybnMgdGhlIGxpc3Qgb2YgdmFsaWRhdGlvbiBrZXlzIGluIHRoZSB3b3Jrc3BhY2UKCiAgICAgICAgOnBhcmFtIHBhZ2VfY3Vyc29yOiBDdXJzb3IgdG8gdGhlIG5leHQgcGFnZQogICAgICAgIDp0eXBlIHBhZ2VfY3Vyc29yOiBzdHIKICAgICAgICA6cGFyYW0gcGFnZV9zaXplOiBBbW91bnQgb2YgcmVzdWx0cyB0byByZXR1cm4gaW4gdGhlIG5leHQgcGFnZQogICAgICAgIDp0eXBlIHBhZ2Vfc2l6ZTogZmxvYXQKICAgICAgICA6cGFyYW0gc29ydF9ieTogRmllbGQocykgdG8gdXNlIGZvciBzb3J0aW5nCiAgICAgICAgOnR5cGUgc29ydF9ieTogc3RyCiAgICAgICAgOnBhcmFtIG9yZGVyOiBJcyB0aGUgb3JkZXIgYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcKICAgICAgICA6dHlwZSBvcmRlcjogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X3ZhbGlkYXRpb25fa2V5c19saXN0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsCiAgICAgICAgICAgIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsCiAgICAgICAgICAgIHNvcnRfYnk9c29ydF9ieSwKICAgICAgICAgICAgb3JkZXI9b3JkZXIsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJHZXRWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8iLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfdmFsaWRhdGlvbl9rZXlzX2xpc3Rfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgcGFnZV9jdXJzb3IsCiAgICAgICAgcGFnZV9zaXplLAogICAgICAgIHNvcnRfYnksCiAgICAgICAgb3JkZXIsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIHBhZ2VfY3Vyc29yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlQ3Vyc29yJywgcGFnZV9jdXJzb3IpKQogICAgICAgICAgICAKICAgICAgICBpZiBwYWdlX3NpemUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VTaXplJywgcGFnZV9zaXplKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgc29ydF9ieSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnc29ydEJ5Jywgc29ydF9ieSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIG9yZGVyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdvcmRlcicsIG9yZGVyKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScva2V5X2xpbmsvdmFsaWRhdGlvbl9rZXlzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHNldF9hZ2VudF9pZCgKICAgICAgICBzZWxmLAogICAgICAgIGtleV9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHNpZ25pbmcga2V5IHByb3ZpZGVkIGJ5IEZpcmVibG9ja3MiKV0sCiAgICAgICAgbW9kaWZ5X3NpZ25pbmdfa2V5X2FnZW50X2lkX2R0bzogTW9kaWZ5U2lnbmluZ0tleUFnZW50SWREdG8sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtOb25lXV06CiAgICAgICAgIiIiU2V0IGFnZW50IHVzZXIgaWQKCiAgICAgICAgQ2FuIG1vZGlmeSBleGlzdGluZyBzaWduaW5nIGtleSBpZCBpZiB0aGUga2V5IGlzIG5vdCBlbmFibGVkLiBUaGUgY2hhbmdlIGRvbmUgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSB2aXNpYmxlIG9uY2UgYXBwbGllZC4gSWYga2V5IGlzIGFscmVhZHkgZW5hYmxlZCAoYWZ0ZXIgcHJvb2Ygb2Ygb3duZXJzaGlwKSB0aGUgdXNlciBjYW5ub3QgYmUgY2hhbmdlZC4KCiAgICAgICAgOnBhcmFtIGtleV9pZDogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgc2lnbmluZyBrZXkgcHJvdmlkZWQgYnkgRmlyZWJsb2NrcyAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUga2V5X2lkOiBzdHIKICAgICAgICA6cGFyYW0gbW9kaWZ5X3NpZ25pbmdfa2V5X2FnZW50X2lkX2R0bzogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIG1vZGlmeV9zaWduaW5nX2tleV9hZ2VudF9pZF9kdG86IE1vZGlmeVNpZ25pbmdLZXlBZ2VudElkRHRvCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InNldF9hZ2VudF9pZCIsIHBhcmFtX25hbWU9ImtleV9pZCIsIHBhcmFtX3ZhbHVlPWtleV9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fc2V0X2FnZW50X2lkX3NlcmlhbGl6ZSgKICAgICAgICAgICAga2V5X2lkPWtleV9pZCwKICAgICAgICAgICAgbW9kaWZ5X3NpZ25pbmdfa2V5X2FnZW50X2lkX2R0bz1tb2RpZnlfc2lnbmluZ19rZXlfYWdlbnRfaWRfZHRvLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDQnOiBOb25lLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9zZXRfYWdlbnRfaWRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAga2V5X2lkLAogICAgICAgIG1vZGlmeV9zaWduaW5nX2tleV9hZ2VudF9pZF9kdG8sCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGtleV9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydrZXlJZCddID0ga2V5X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIG1vZGlmeV9zaWduaW5nX2tleV9hZ2VudF9pZF9kdG8gaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IG1vZGlmeV9zaWduaW5nX2tleV9hZ2VudF9pZF9kdG8KCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQQVRDSCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9rZXlfbGluay9zaWduaW5nX2tleXMve2tleUlkfS9hZ2VudF91c2VyX2lkJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHVwZGF0ZV9zaWduaW5nX2tleSgKICAgICAgICBzZWxmLAogICAgICAgIGtleV9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHNpZ25pbmcga2V5IHByb3ZpZGVkIGJ5IEZpcmVibG9ja3MiKV0sCiAgICAgICAgbW9kaWZ5X3NpZ25pbmdfa2V5X2R0bzogTW9kaWZ5U2lnbmluZ0tleUR0bywKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1NpZ25pbmdLZXlEdG9dXToKICAgICAgICAiIiJNb2RpZnkgdGhlIHNpZ25pbmcga2V5SWQKCiAgICAgICAgQWxsb3dzIGFzc2lnbmluZyB0aGUgc2lnbmluZyBrZXkgdG8gYSB2YXVsdCBhY2NvdW50LCBpZiBpdCBoYXNuJ3QgYmVlbiBhc3NpZ25lZCB0byBhbnkgb3RoZXIgdmF1bHQgYWNjb3VudHMgeWV0LgoKICAgICAgICA6cGFyYW0ga2V5X2lkOiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBzaWduaW5nIGtleSBwcm92aWRlZCBieSBGaXJlYmxvY2tzIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBrZXlfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBtb2RpZnlfc2lnbmluZ19rZXlfZHRvOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgbW9kaWZ5X3NpZ25pbmdfa2V5X2R0bzogTW9kaWZ5U2lnbmluZ0tleUR0bwogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJ1cGRhdGVfc2lnbmluZ19rZXkiLCBwYXJhbV9uYW1lPSJrZXlfaWQiLCBwYXJhbV92YWx1ZT1rZXlfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3VwZGF0ZV9zaWduaW5nX2tleV9zZXJpYWxpemUoCiAgICAgICAgICAgIGtleV9pZD1rZXlfaWQsCiAgICAgICAgICAgIG1vZGlmeV9zaWduaW5nX2tleV9kdG89bW9kaWZ5X3NpZ25pbmdfa2V5X2R0bywKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlNpZ25pbmdLZXlEdG8iLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF91cGRhdGVfc2lnbmluZ19rZXlfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAga2V5X2lkLAogICAgICAgIG1vZGlmeV9zaWduaW5nX2tleV9kdG8sCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGtleV9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydrZXlJZCddID0ga2V5X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIG1vZGlmeV9zaWduaW5nX2tleV9kdG8gaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IG1vZGlmeV9zaWduaW5nX2tleV9kdG8KCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQQVRDSCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9rZXlfbGluay9zaWduaW5nX2tleXMve2tleUlkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoK \ No newline at end of file diff --git a/fireblocks/api/keys_beta_api.py b/fireblocks/api/keys_beta_api.py index 9047fd1e..cbac968b 100644 --- a/fireblocks/api/keys_beta_api.py +++ b/fireblocks/api/keys_beta_api.py @@ -1,291 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing_extensions import Annotated -from fireblocks.models.get_mpc_keys_response import GetMpcKeysResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class KeysBetaApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def get_mpc_keys_list( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GetMpcKeysResponse]]: - """Get list of mpc keys - - Returns a list of MPC signing keys of the workspace. For each key, the list of players associated with it is attached. **Note:** This endpoint is currently in beta and might be subject to changes. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_mpc_keys_list_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GetMpcKeysResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_mpc_keys_list_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/keys/mpc/list', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_mpc_keys_list_by_user( - self, - user_id: Annotated[StrictStr, Field(description="The id for the user")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GetMpcKeysResponse]]: - """Get list of mpc keys by `userId` - - Returns a list of MPC signing keys of a specific user. For each key, the list of players associated with it is attached. **Note:** This endpoint is currently in beta and might be subject to changes. - - :param user_id: The id for the user (required) - :type user_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_mpc_keys_list_by_user", param_name="user_id", param_value=user_id) - - _param = self._get_mpc_keys_list_by_user_serialize( - user_id=user_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GetMpcKeysResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_mpc_keys_list_by_user_serialize( - self, - user_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if user_id is not None: - _path_params['userId'] = user_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/keys/mpc/list/{userId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfbXBjX2tleXNfcmVzcG9uc2UgaW1wb3J0IEdldE1wY0tleXNSZXNwb25zZQoKZnJvbSBmaXJlYmxvY2tzLmFwaV9jbGllbnQgaW1wb3J0IEFwaUNsaWVudCwgUmVxdWVzdFNlcmlhbGl6ZWQKZnJvbSBmaXJlYmxvY2tzLmFwaV9yZXNwb25zZSBpbXBvcnQgQXBpUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLnJlc3QgaW1wb3J0IFJFU1RSZXNwb25zZVR5cGUKZnJvbSBmaXJlYmxvY2tzLnZhbGlkYXRpb25fdXRpbHMgaW1wb3J0IHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcKCgpjbGFzcyBLZXlzQmV0YUFwaToKICAgICIiIk5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IKICAgIFJlZjogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgogICAgIiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwaV9jbGllbnQ9Tm9uZSkgLT4gTm9uZToKICAgICAgICBpZiBhcGlfY2xpZW50IGlzIE5vbmU6CiAgICAgICAgICAgIGFwaV9jbGllbnQgPSBBcGlDbGllbnQuZ2V0X2RlZmF1bHQoKQogICAgICAgIHNlbGYuYXBpX2NsaWVudCA9IGFwaV9jbGllbnQKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfbXBjX2tleXNfbGlzdCgKICAgICAgICBzZWxmLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbR2V0TXBjS2V5c1Jlc3BvbnNlXV06CiAgICAgICAgIiIiR2V0IGxpc3Qgb2YgbXBjIGtleXMKCiAgICAgICAgUmV0dXJucyBhIGxpc3Qgb2YgTVBDIHNpZ25pbmcga2V5cyBvZiB0aGUgd29ya3NwYWNlLiBGb3IgZWFjaCBrZXksIHRoZSBsaXN0IG9mIHBsYXllcnMgYXNzb2NpYXRlZCB3aXRoIGl0IGlzIGF0dGFjaGVkLiAqKk5vdGU6KiogIFRoaXMgZW5kcG9pbnQgaXMgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy4KCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X21wY19rZXlzX2xpc3Rfc2VyaWFsaXplKAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiR2V0TXBjS2V5c1Jlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X21wY19rZXlzX2xpc3Rfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2tleXMvbXBjL2xpc3QnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X21wY19rZXlzX2xpc3RfYnlfdXNlcigKICAgICAgICBzZWxmLAogICAgICAgIHVzZXJfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgaWQgZm9yIHRoZSB1c2VyIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbR2V0TXBjS2V5c1Jlc3BvbnNlXV06CiAgICAgICAgIiIiR2V0IGxpc3Qgb2YgbXBjIGtleXMgYnkgYHVzZXJJZGAKCiAgICAgICAgUmV0dXJucyBhIGxpc3Qgb2YgTVBDIHNpZ25pbmcga2V5cyBvZiBhIHNwZWNpZmljIHVzZXIuIEZvciBlYWNoIGtleSwgdGhlIGxpc3Qgb2YgcGxheWVycyBhc3NvY2lhdGVkIHdpdGggaXQgaXMgYXR0YWNoZWQuICoqTm90ZToqKiBUaGlzIGVuZHBvaW50IGlzIGN1cnJlbnRseSBpbiBiZXRhIGFuZCBtaWdodCBiZSBzdWJqZWN0IHRvIGNoYW5nZXMuCgogICAgICAgIDpwYXJhbSB1c2VyX2lkOiBUaGUgaWQgZm9yIHRoZSB1c2VyIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB1c2VyX2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X21wY19rZXlzX2xpc3RfYnlfdXNlciIsIHBhcmFtX25hbWU9InVzZXJfaWQiLCBwYXJhbV92YWx1ZT11c2VyX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfbXBjX2tleXNfbGlzdF9ieV91c2VyX3NlcmlhbGl6ZSgKICAgICAgICAgICAgdXNlcl9pZD11c2VyX2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiR2V0TXBjS2V5c1Jlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X21wY19rZXlzX2xpc3RfYnlfdXNlcl9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB1c2VyX2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB1c2VyX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3VzZXJJZCddID0gdXNlcl9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2tleXMvbXBjL2xpc3Qve3VzZXJJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCg== \ No newline at end of file diff --git a/fireblocks/api/network_connections_api.py b/fireblocks/api/network_connections_api.py index 2295854a..e78ffe3b 100644 --- a/fireblocks/api/network_connections_api.py +++ b/fireblocks/api/network_connections_api.py @@ -1,2139 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictBool, StrictStr -from typing import List, Optional, Union -from typing_extensions import Annotated -from fireblocks.models.create_network_id_request import CreateNetworkIdRequest -from fireblocks.models.delete_network_connection_response import DeleteNetworkConnectionResponse -from fireblocks.models.delete_network_id_response import DeleteNetworkIdResponse -from fireblocks.models.network_connection import NetworkConnection -from fireblocks.models.network_connection_response import NetworkConnectionResponse -from fireblocks.models.network_id_response import NetworkIdResponse -from fireblocks.models.search_network_ids_response import SearchNetworkIdsResponse -from fireblocks.models.set_network_id_discoverability_request import SetNetworkIdDiscoverabilityRequest -from fireblocks.models.set_network_id_name_request import SetNetworkIdNameRequest -from fireblocks.models.set_network_id_response import SetNetworkIdResponse -from fireblocks.models.set_network_id_routing_policy_request import SetNetworkIdRoutingPolicyRequest -from fireblocks.models.set_routing_policy_request import SetRoutingPolicyRequest -from fireblocks.models.set_routing_policy_response import SetRoutingPolicyResponse -from fireblocks.models.third_party_routing import ThirdPartyRouting - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class NetworkConnectionsApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def check_third_party_routing( - self, - connection_id: Annotated[StrictStr, Field(description="The ID of the network connection")], - asset_type: Annotated[StrictStr, Field(description="The destination asset type")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ThirdPartyRouting]]: - """Retrieve third-party network routing validation - - The Fireblocks Network allows for flexibility around incoming deposits. A receiver can receive network deposits to locations other than Fireblocks. This endpoint validates whether future transactions are routed to the displayed recipient or to a 3rd party. - - :param connection_id: The ID of the network connection (required) - :type connection_id: str - :param asset_type: The destination asset type (required) - :type asset_type: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="check_third_party_routing", param_name="connection_id", param_value=connection_id) - validate_not_empty_string(function_name="check_third_party_routing", param_name="asset_type", param_value=asset_type) - - _param = self._check_third_party_routing_serialize( - connection_id=connection_id, - asset_type=asset_type, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ThirdPartyRouting", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _check_third_party_routing_serialize( - self, - connection_id, - asset_type, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if connection_id is not None: - _path_params['connectionId'] = connection_id - if asset_type is not None: - _path_params['assetType'] = asset_type - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/network_connections/{connectionId}/is_third_party_routing/{assetType}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_network_connection( - self, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - network_connection: Optional[NetworkConnection] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[NetworkConnectionResponse]]: - """Create a new network connection - - Initiates a new network connection. **Note:** This API call is subject to Flexible Routing Schemes. Your routing policy defines how your transactions are routed. You can choose 1 of the 3 different schemes mentioned below for each asset type: - **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail. - **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one. - **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as \"Profile Routing\" Default Workspace Presets: - Network Profile Crypto → **Custom** - Network Profile FIAT → **None** - Network Connection Crypto → **Default** - Network Connection FIAT → **Default** Supported asset groups for routing police can be found at `/network_ids/routing_policy_asset_groups` - **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`). - - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param network_connection: - :type network_connection: NetworkConnection - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_network_connection_serialize( - idempotency_key=idempotency_key, - network_connection=network_connection, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "NetworkConnectionResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_network_connection_serialize( - self, - idempotency_key, - network_connection, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if network_connection is not None: - _body_params = network_connection - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/network_connections', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_network_id( - self, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - create_network_id_request: Optional[CreateNetworkIdRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[NetworkIdResponse]]: - """Creates a new Network ID - - Create a new Network ID. - - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param create_network_id_request: - :type create_network_id_request: CreateNetworkIdRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_network_id_serialize( - idempotency_key=idempotency_key, - create_network_id_request=create_network_id_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "NetworkIdResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_network_id_serialize( - self, - idempotency_key, - create_network_id_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_network_id_request is not None: - _body_params = create_network_id_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/network_ids', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def delete_network_connection( - self, - connection_id: Annotated[StrictStr, Field(description="The ID of the network connection to delete")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[DeleteNetworkConnectionResponse]]: - """Delete a network connection by ID - - Deletes an existing network connection specified by its connection ID. - - :param connection_id: The ID of the network connection to delete (required) - :type connection_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="delete_network_connection", param_name="connection_id", param_value=connection_id) - - _param = self._delete_network_connection_serialize( - connection_id=connection_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "DeleteNetworkConnectionResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _delete_network_connection_serialize( - self, - connection_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if connection_id is not None: - _path_params['connectionId'] = connection_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/network_connections/{connectionId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def delete_network_id( - self, - network_id: Annotated[StrictStr, Field(description="The ID of the network")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[DeleteNetworkIdResponse]]: - """Delete specific network ID. - - Deletes a network by its ID. - - :param network_id: The ID of the network (required) - :type network_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="delete_network_id", param_name="network_id", param_value=network_id) - - _param = self._delete_network_id_serialize( - network_id=network_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "DeleteNetworkIdResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _delete_network_id_serialize( - self, - network_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if network_id is not None: - _path_params['networkId'] = network_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/network_ids/{networkId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_network( - self, - connection_id: Annotated[StrictStr, Field(description="The ID of the connection")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[NetworkConnectionResponse]]: - """Get a network connection - - Gets a network connection by ID. - - :param connection_id: The ID of the connection (required) - :type connection_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_network", param_name="connection_id", param_value=connection_id) - - _param = self._get_network_serialize( - connection_id=connection_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "NetworkConnectionResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_network_serialize( - self, - connection_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if connection_id is not None: - _path_params['connectionId'] = connection_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/network_connections/{connectionId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_network_connections( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[NetworkConnectionResponse]]]: - """List network connections - - Returns all network connections. **Note:** This API call is subject to Flexible Routing Schemes. Your routing policy defines how your transactions are routed. You can choose 1 of the 3 different schemes mentioned below for each asset type: - **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail. - **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one. - **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as \"Profile Routing\" Default Workspace Presets: - Network Profile Crypto → **Custom** - Network Profile FIAT → **None** - Network Connection Crypto → **Default** - Network Connection FIAT → **Default** - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_network_connections_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "List[NetworkConnectionResponse]", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_network_connections_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/network_connections', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_network_id( - self, - network_id: Annotated[StrictStr, Field(description="The ID of the network")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[NetworkIdResponse]]: - """Return specific network ID. - - Returns specific network ID. - - :param network_id: The ID of the network (required) - :type network_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_network_id", param_name="network_id", param_value=network_id) - - _param = self._get_network_id_serialize( - network_id=network_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "NetworkIdResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_network_id_serialize( - self, - network_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if network_id is not None: - _path_params['networkId'] = network_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/network_ids/{networkId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_network_ids( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[NetworkIdResponse]]]: - """(Deprecated) Get all network IDs - - Retrieves a list of all local and discoverable remote network IDs. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - warnings.warn("GET /network_ids is deprecated.", DeprecationWarning) - - - _param = self._get_network_ids_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "List[NetworkIdResponse]", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_network_ids_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/network_ids', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_routing_policy_asset_groups( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[str]]]: - """Return all enabled routing policy asset groups - - Returns all enabled routing policy asset groups - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_routing_policy_asset_groups_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "List[str]", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_routing_policy_asset_groups_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/network_ids/routing_policy_asset_groups', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def search_network_ids( - self, - search: Annotated[Optional[Annotated[str, Field(min_length=1, strict=True)]], Field(description="Search string - displayName networkId. Optional")] = None, - exclude_self: Annotated[Optional[StrictBool], Field(description="Exclude your networkIds. Optional, default false")] = None, - only_self: Annotated[Optional[StrictBool], Field(description="Include just your networkIds. Optional, default false")] = None, - exclude_connected: Annotated[Optional[StrictBool], Field(description="Exclude connected networkIds. Optional, default false")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="ID of the record after which to fetch $limit records")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=50, strict=True, ge=1)], Annotated[int, Field(le=50, strict=True, ge=1)]]], Field(description="Number of records to fetch. By default, it is 50")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SearchNetworkIdsResponse]]: - """Get both local IDs and discoverable remote IDs - - Retrieves a list of all local and discoverable remote network IDs. Can be filtered. - - :param search: Search string - displayName networkId. Optional - :type search: str - :param exclude_self: Exclude your networkIds. Optional, default false - :type exclude_self: bool - :param only_self: Include just your networkIds. Optional, default false - :type only_self: bool - :param exclude_connected: Exclude connected networkIds. Optional, default false - :type exclude_connected: bool - :param page_cursor: ID of the record after which to fetch $limit records - :type page_cursor: str - :param page_size: Number of records to fetch. By default, it is 50 - :type page_size: float - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._search_network_ids_serialize( - search=search, - exclude_self=exclude_self, - only_self=only_self, - exclude_connected=exclude_connected, - page_cursor=page_cursor, - page_size=page_size, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SearchNetworkIdsResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _search_network_ids_serialize( - self, - search, - exclude_self, - only_self, - exclude_connected, - page_cursor, - page_size, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if search is not None: - - _query_params.append(('search', search)) - - if exclude_self is not None: - - _query_params.append(('excludeSelf', exclude_self)) - - if only_self is not None: - - _query_params.append(('onlySelf', only_self)) - - if exclude_connected is not None: - - _query_params.append(('excludeConnected', exclude_connected)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/network_ids/search', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_network_id_discoverability( - self, - network_id: Annotated[StrictStr, Field(description="The ID of the network")], - set_network_id_discoverability_request: SetNetworkIdDiscoverabilityRequest, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SetNetworkIdResponse]]: - """Update network ID's discoverability. - - Update whether or not the network ID is discoverable by others. - - :param network_id: The ID of the network (required) - :type network_id: str - :param set_network_id_discoverability_request: (required) - :type set_network_id_discoverability_request: SetNetworkIdDiscoverabilityRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="set_network_id_discoverability", param_name="network_id", param_value=network_id) - - _param = self._set_network_id_discoverability_serialize( - network_id=network_id, - set_network_id_discoverability_request=set_network_id_discoverability_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SetNetworkIdResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_network_id_discoverability_serialize( - self, - network_id, - set_network_id_discoverability_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if network_id is not None: - _path_params['networkId'] = network_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - if set_network_id_discoverability_request is not None: - _body_params = set_network_id_discoverability_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PATCH', - resource_path='/network_ids/{networkId}/set_discoverability', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_network_id_name( - self, - network_id: Annotated[StrictStr, Field(description="The ID of the network")], - set_network_id_name_request: SetNetworkIdNameRequest, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SetNetworkIdResponse]]: - """Update network ID's name. - - Updates name of a specified network ID. - - :param network_id: The ID of the network (required) - :type network_id: str - :param set_network_id_name_request: (required) - :type set_network_id_name_request: SetNetworkIdNameRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="set_network_id_name", param_name="network_id", param_value=network_id) - - _param = self._set_network_id_name_serialize( - network_id=network_id, - set_network_id_name_request=set_network_id_name_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SetNetworkIdResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_network_id_name_serialize( - self, - network_id, - set_network_id_name_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if network_id is not None: - _path_params['networkId'] = network_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - if set_network_id_name_request is not None: - _body_params = set_network_id_name_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PATCH', - resource_path='/network_ids/{networkId}/set_name', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_network_id_routing_policy( - self, - network_id: Annotated[StrictStr, Field(description="The ID of the network")], - set_network_id_routing_policy_request: Optional[SetNetworkIdRoutingPolicyRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SetNetworkIdResponse]]: - """Update network id routing policy. - - Updates the routing policy of a specified network ID. - - :param network_id: The ID of the network (required) - :type network_id: str - :param set_network_id_routing_policy_request: - :type set_network_id_routing_policy_request: SetNetworkIdRoutingPolicyRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="set_network_id_routing_policy", param_name="network_id", param_value=network_id) - - _param = self._set_network_id_routing_policy_serialize( - network_id=network_id, - set_network_id_routing_policy_request=set_network_id_routing_policy_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SetNetworkIdResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_network_id_routing_policy_serialize( - self, - network_id, - set_network_id_routing_policy_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if network_id is not None: - _path_params['networkId'] = network_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - if set_network_id_routing_policy_request is not None: - _body_params = set_network_id_routing_policy_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PATCH', - resource_path='/network_ids/{networkId}/set_routing_policy', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_routing_policy( - self, - connection_id: Annotated[StrictStr, Field(description="The ID of the network connection")], - set_routing_policy_request: Optional[SetRoutingPolicyRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SetRoutingPolicyResponse]]: - """Update network connection routing policy. - - Updates an existing network connection's routing policy. - - :param connection_id: The ID of the network connection (required) - :type connection_id: str - :param set_routing_policy_request: - :type set_routing_policy_request: SetRoutingPolicyRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="set_routing_policy", param_name="connection_id", param_value=connection_id) - - _param = self._set_routing_policy_serialize( - connection_id=connection_id, - set_routing_policy_request=set_routing_policy_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SetRoutingPolicyResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_routing_policy_serialize( - self, - connection_id, - set_routing_policy_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if connection_id is not None: - _path_params['connectionId'] = connection_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - if set_routing_policy_request is not None: - _body_params = set_routing_policy_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PATCH', - resource_path='/network_connections/{connectionId}/set_routing_policy', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdEJvb2wsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgTGlzdCwgT3B0aW9uYWwsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9uZXR3b3JrX2lkX3JlcXVlc3QgaW1wb3J0IENyZWF0ZU5ldHdvcmtJZFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZWxldGVfbmV0d29ya19jb25uZWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBEZWxldGVOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVsZXRlX25ldHdvcmtfaWRfcmVzcG9uc2UgaW1wb3J0IERlbGV0ZU5ldHdvcmtJZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19jb25uZWN0aW9uIGltcG9ydCBOZXR3b3JrQ29ubmVjdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfY29ubmVjdGlvbl9yZXNwb25zZSBpbXBvcnQgTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfaWRfcmVzcG9uc2UgaW1wb3J0IE5ldHdvcmtJZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2VhcmNoX25ldHdvcmtfaWRzX3Jlc3BvbnNlIGltcG9ydCBTZWFyY2hOZXR3b3JrSWRzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfbmV0d29ya19pZF9kaXNjb3ZlcmFiaWxpdHlfcmVxdWVzdCBpbXBvcnQgU2V0TmV0d29ya0lkRGlzY292ZXJhYmlsaXR5UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9uZXR3b3JrX2lkX25hbWVfcmVxdWVzdCBpbXBvcnQgU2V0TmV0d29ya0lkTmFtZVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfbmV0d29ya19pZF9yZXNwb25zZSBpbXBvcnQgU2V0TmV0d29ya0lkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfbmV0d29ya19pZF9yb3V0aW5nX3BvbGljeV9yZXF1ZXN0IGltcG9ydCBTZXROZXR3b3JrSWRSb3V0aW5nUG9saWN5UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9yb3V0aW5nX3BvbGljeV9yZXF1ZXN0IGltcG9ydCBTZXRSb3V0aW5nUG9saWN5UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9yb3V0aW5nX3BvbGljeV9yZXNwb25zZSBpbXBvcnQgU2V0Um91dGluZ1BvbGljeVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudGhpcmRfcGFydHlfcm91dGluZyBpbXBvcnQgVGhpcmRQYXJ0eVJvdXRpbmcKCmZyb20gZmlyZWJsb2Nrcy5hcGlfY2xpZW50IGltcG9ydCBBcGlDbGllbnQsIFJlcXVlc3RTZXJpYWxpemVkCmZyb20gZmlyZWJsb2Nrcy5hcGlfcmVzcG9uc2UgaW1wb3J0IEFwaVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5yZXN0IGltcG9ydCBSRVNUUmVzcG9uc2VUeXBlCmZyb20gZmlyZWJsb2Nrcy52YWxpZGF0aW9uX3V0aWxzIGltcG9ydCB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nCgoKY2xhc3MgTmV0d29ya0Nvbm5lY3Rpb25zQXBpOgogICAgIiIiTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvcgogICAgUmVmOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gKCiAgICBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgYXBpX2NsaWVudD1Ob25lKSAtPiBOb25lOgogICAgICAgIGlmIGFwaV9jbGllbnQgaXMgTm9uZToKICAgICAgICAgICAgYXBpX2NsaWVudCA9IEFwaUNsaWVudC5nZXRfZGVmYXVsdCgpCiAgICAgICAgc2VsZi5hcGlfY2xpZW50ID0gYXBpX2NsaWVudAoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGNoZWNrX3RoaXJkX3BhcnR5X3JvdXRpbmcoCiAgICAgICAgc2VsZiwKICAgICAgICBjb25uZWN0aW9uX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBuZXR3b3JrIGNvbm5lY3Rpb24iKV0sCiAgICAgICAgYXNzZXRfdHlwZTogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBkZXN0aW5hdGlvbiBhc3NldCB0eXBlIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVGhpcmRQYXJ0eVJvdXRpbmddXToKICAgICAgICAiIiJSZXRyaWV2ZSB0aGlyZC1wYXJ0eSBuZXR3b3JrIHJvdXRpbmcgdmFsaWRhdGlvbgoKICAgICAgICBUaGUgRmlyZWJsb2NrcyBOZXR3b3JrIGFsbG93cyBmb3IgZmxleGliaWxpdHkgYXJvdW5kIGluY29taW5nIGRlcG9zaXRzLiBBIHJlY2VpdmVyIGNhbiByZWNlaXZlIG5ldHdvcmsgZGVwb3NpdHMgdG8gbG9jYXRpb25zIG90aGVyIHRoYW4gRmlyZWJsb2Nrcy4gVGhpcyBlbmRwb2ludCB2YWxpZGF0ZXMgd2hldGhlciBmdXR1cmUgdHJhbnNhY3Rpb25zIGFyZSByb3V0ZWQgdG8gdGhlIGRpc3BsYXllZCByZWNpcGllbnQgb3IgdG8gYSAzcmQgcGFydHkuCgogICAgICAgIDpwYXJhbSBjb25uZWN0aW9uX2lkOiBUaGUgSUQgb2YgdGhlIG5ldHdvcmsgY29ubmVjdGlvbiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY29ubmVjdGlvbl9pZDogc3RyCiAgICAgICAgOnBhcmFtIGFzc2V0X3R5cGU6IFRoZSBkZXN0aW5hdGlvbiBhc3NldCB0eXBlIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhc3NldF90eXBlOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iY2hlY2tfdGhpcmRfcGFydHlfcm91dGluZyIsIHBhcmFtX25hbWU9ImNvbm5lY3Rpb25faWQiLCBwYXJhbV92YWx1ZT1jb25uZWN0aW9uX2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iY2hlY2tfdGhpcmRfcGFydHlfcm91dGluZyIsIHBhcmFtX25hbWU9ImFzc2V0X3R5cGUiLCBwYXJhbV92YWx1ZT1hc3NldF90eXBlKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9jaGVja190aGlyZF9wYXJ0eV9yb3V0aW5nX3NlcmlhbGl6ZSgKICAgICAgICAgICAgY29ubmVjdGlvbl9pZD1jb25uZWN0aW9uX2lkLAogICAgICAgICAgICBhc3NldF90eXBlPWFzc2V0X3R5cGUsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJUaGlyZFBhcnR5Um91dGluZyIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2NoZWNrX3RoaXJkX3BhcnR5X3JvdXRpbmdfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY29ubmVjdGlvbl9pZCwKICAgICAgICBhc3NldF90eXBlLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBjb25uZWN0aW9uX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Nvbm5lY3Rpb25JZCddID0gY29ubmVjdGlvbl9pZAogICAgICAgIGlmIGFzc2V0X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYXNzZXRUeXBlJ10gPSBhc3NldF90eXBlCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbmV0d29ya19jb25uZWN0aW9ucy97Y29ubmVjdGlvbklkfS9pc190aGlyZF9wYXJ0eV9yb3V0aW5nL3thc3NldFR5cGV9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGNyZWF0ZV9uZXR3b3JrX2Nvbm5lY3Rpb24oCiAgICAgICAgc2VsZiwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgbmV0d29ya19jb25uZWN0aW9uOiBPcHRpb25hbFtOZXR3b3JrQ29ubmVjdGlvbl0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZV1dOgogICAgICAgICIiIkNyZWF0ZSBhIG5ldyBuZXR3b3JrIGNvbm5lY3Rpb24KCiAgICAgICAgSW5pdGlhdGVzIGEgbmV3IG5ldHdvcmsgY29ubmVjdGlvbi4gKipOb3RlOioqIFRoaXMgQVBJIGNhbGwgaXMgc3ViamVjdCB0byBGbGV4aWJsZSBSb3V0aW5nIFNjaGVtZXMuICBZb3VyIHJvdXRpbmcgcG9saWN5IGRlZmluZXMgaG93IHlvdXIgdHJhbnNhY3Rpb25zIGFyZSByb3V0ZWQuIFlvdSBjYW4gY2hvb3NlIDEgb2YgdGhlIDMgZGlmZmVyZW50IHNjaGVtZXMgbWVudGlvbmVkIGJlbG93IGZvciBlYWNoIGFzc2V0IHR5cGU6ICAgLSAqKk5vbmUqKjsgRGVmaW5lcyB0aGUgcHJvZmlsZSByb3V0aW5nIHRvIG5vIGRlc3RpbmF0aW9uIGZvciB0aGF0IGFzc2V0IHR5cGUuIEluY29taW5nIHRyYW5zYWN0aW9ucyB0byBhc3NldCB0eXBlcyByb3V0ZWQgdG8gYE5vbmVgIHdpbGwgZmFpbC4gICAtICoqQ3VzdG9tKio7IFJvdXRlIHRvIGFuIGFjY291bnQgdGhhdCB5b3UgY2hvb3NlLiBJZiB5b3UgcmVtb3ZlIHRoZSBhY2NvdW50LCBpbmNvbWluZyB0cmFuc2FjdGlvbnMgd2lsbCBmYWlsIHVudGlsIHlvdSBjaG9vc2UgYW5vdGhlciBvbmUuICAgLSAqKkRlZmF1bHQqKjsgVXNlIHRoZSByb3V0aW5nIHNwZWNpZmllZCBieSB0aGUgbmV0d29yayBwcm9maWxlIHRoZSBjb25uZWN0aW9uIGlzIGNvbm5lY3RlZCB0by4gVGhpcyBzY2hlbWUgaXMgYWxzbyByZWZlcnJlZCB0byBhcyBcIlByb2ZpbGUgUm91dGluZ1wiICBEZWZhdWx0IFdvcmtzcGFjZSBQcmVzZXRzOiAgIC0gTmV0d29yayBQcm9maWxlIENyeXB0byDihpIgKipDdXN0b20qKiAgIC0gTmV0d29yayBQcm9maWxlIEZJQVQg4oaSICoqTm9uZSoqICAgLSBOZXR3b3JrIENvbm5lY3Rpb24gQ3J5cHRvIOKGkiAqKkRlZmF1bHQqKiAgIC0gTmV0d29yayBDb25uZWN0aW9uIEZJQVQg4oaSICoqRGVmYXVsdCoqICBTdXBwb3J0ZWQgYXNzZXQgZ3JvdXBzIGZvciByb3V0aW5nIHBvbGljZSBjYW4gYmUgZm91bmQgYXQgYC9uZXR3b3JrX2lkcy9yb3V0aW5nX3BvbGljeV9hc3NldF9ncm91cHNgICAgICAgLSAqKk5vdGUqKjogQnkgZGVmYXVsdCwgQ3VzdG9tIHJvdXRpbmcgc2NoZW1lIHVzZXMgKGBkc3RJZGAgPSBgMGAsIGBkc3RUeXBlYCA9IGBWQVVMVGApLiAKCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIG5ldHdvcmtfY29ubmVjdGlvbjoKICAgICAgICA6dHlwZSBuZXR3b3JrX2Nvbm5lY3Rpb246IE5ldHdvcmtDb25uZWN0aW9uCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fY3JlYXRlX25ldHdvcmtfY29ubmVjdGlvbl9zZXJpYWxpemUoCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIG5ldHdvcmtfY29ubmVjdGlvbj1uZXR3b3JrX2Nvbm5lY3Rpb24sCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMSc6ICJOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfY3JlYXRlX25ldHdvcmtfY29ubmVjdGlvbl9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgbmV0d29ya19jb25uZWN0aW9uLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBuZXR3b3JrX2Nvbm5lY3Rpb24gaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IG5ldHdvcmtfY29ubmVjdGlvbgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbmV0d29ya19jb25uZWN0aW9ucycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBjcmVhdGVfbmV0d29ya19pZCgKICAgICAgICBzZWxmLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBjcmVhdGVfbmV0d29ya19pZF9yZXF1ZXN0OiBPcHRpb25hbFtDcmVhdGVOZXR3b3JrSWRSZXF1ZXN0XSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtOZXR3b3JrSWRSZXNwb25zZV1dOgogICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgTmV0d29yayBJRAoKICAgICAgICBDcmVhdGUgYSBuZXcgTmV0d29yayBJRC4KCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIGNyZWF0ZV9uZXR3b3JrX2lkX3JlcXVlc3Q6CiAgICAgICAgOnR5cGUgY3JlYXRlX25ldHdvcmtfaWRfcmVxdWVzdDogQ3JlYXRlTmV0d29ya0lkUmVxdWVzdAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2NyZWF0ZV9uZXR3b3JrX2lkX3NlcmlhbGl6ZSgKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgY3JlYXRlX25ldHdvcmtfaWRfcmVxdWVzdD1jcmVhdGVfbmV0d29ya19pZF9yZXF1ZXN0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiAiTmV0d29ya0lkUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9jcmVhdGVfbmV0d29ya19pZF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgY3JlYXRlX25ldHdvcmtfaWRfcmVxdWVzdCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgY3JlYXRlX25ldHdvcmtfaWRfcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gY3JlYXRlX25ldHdvcmtfaWRfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbmV0d29ya19pZHMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZGVsZXRlX25ldHdvcmtfY29ubmVjdGlvbigKICAgICAgICBzZWxmLAogICAgICAgIGNvbm5lY3Rpb25faWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIG5ldHdvcmsgY29ubmVjdGlvbiB0byBkZWxldGUiKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtEZWxldGVOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlXV06CiAgICAgICAgIiIiRGVsZXRlIGEgbmV0d29yayBjb25uZWN0aW9uIGJ5IElECgogICAgICAgIERlbGV0ZXMgYW4gZXhpc3RpbmcgbmV0d29yayBjb25uZWN0aW9uIHNwZWNpZmllZCBieSBpdHMgY29ubmVjdGlvbiBJRC4KCiAgICAgICAgOnBhcmFtIGNvbm5lY3Rpb25faWQ6IFRoZSBJRCBvZiB0aGUgbmV0d29yayBjb25uZWN0aW9uIHRvIGRlbGV0ZSAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY29ubmVjdGlvbl9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImRlbGV0ZV9uZXR3b3JrX2Nvbm5lY3Rpb24iLCBwYXJhbV9uYW1lPSJjb25uZWN0aW9uX2lkIiwgcGFyYW1fdmFsdWU9Y29ubmVjdGlvbl9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZGVsZXRlX25ldHdvcmtfY29ubmVjdGlvbl9zZXJpYWxpemUoCiAgICAgICAgICAgIGNvbm5lY3Rpb25faWQ9Y29ubmVjdGlvbl9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkRlbGV0ZU5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9kZWxldGVfbmV0d29ya19jb25uZWN0aW9uX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNvbm5lY3Rpb25faWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGNvbm5lY3Rpb25faWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY29ubmVjdGlvbklkJ10gPSBjb25uZWN0aW9uX2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdERUxFVEUnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbmV0d29ya19jb25uZWN0aW9ucy97Y29ubmVjdGlvbklkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBkZWxldGVfbmV0d29ya19pZCgKICAgICAgICBzZWxmLAogICAgICAgIG5ldHdvcmtfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIG5ldHdvcmsiKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtEZWxldGVOZXR3b3JrSWRSZXNwb25zZV1dOgogICAgICAgICIiIkRlbGV0ZSBzcGVjaWZpYyBuZXR3b3JrIElELgoKICAgICAgICBEZWxldGVzIGEgbmV0d29yayBieSBpdHMgSUQuCgogICAgICAgIDpwYXJhbSBuZXR3b3JrX2lkOiBUaGUgSUQgb2YgdGhlIG5ldHdvcmsgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIG5ldHdvcmtfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJkZWxldGVfbmV0d29ya19pZCIsIHBhcmFtX25hbWU9Im5ldHdvcmtfaWQiLCBwYXJhbV92YWx1ZT1uZXR3b3JrX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9kZWxldGVfbmV0d29ya19pZF9zZXJpYWxpemUoCiAgICAgICAgICAgIG5ldHdvcmtfaWQ9bmV0d29ya19pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkRlbGV0ZU5ldHdvcmtJZFJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZGVsZXRlX25ldHdvcmtfaWRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgbmV0d29ya19pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgbmV0d29ya19pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyduZXR3b3JrSWQnXSA9IG5ldHdvcmtfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0RFTEVURScsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9uZXR3b3JrX2lkcy97bmV0d29ya0lkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfbmV0d29yaygKICAgICAgICBzZWxmLAogICAgICAgIGNvbm5lY3Rpb25faWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGNvbm5lY3Rpb24iKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlXV06CiAgICAgICAgIiIiR2V0IGEgbmV0d29yayBjb25uZWN0aW9uCgogICAgICAgIEdldHMgYSBuZXR3b3JrIGNvbm5lY3Rpb24gYnkgSUQuCgogICAgICAgIDpwYXJhbSBjb25uZWN0aW9uX2lkOiBUaGUgSUQgb2YgdGhlIGNvbm5lY3Rpb24gKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGNvbm5lY3Rpb25faWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfbmV0d29yayIsIHBhcmFtX25hbWU9ImNvbm5lY3Rpb25faWQiLCBwYXJhbV92YWx1ZT1jb25uZWN0aW9uX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfbmV0d29ya19zZXJpYWxpemUoCiAgICAgICAgICAgIGNvbm5lY3Rpb25faWQ9Y29ubmVjdGlvbl9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIk5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfbmV0d29ya19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBjb25uZWN0aW9uX2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBjb25uZWN0aW9uX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Nvbm5lY3Rpb25JZCddID0gY29ubmVjdGlvbl9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL25ldHdvcmtfY29ubmVjdGlvbnMve2Nvbm5lY3Rpb25JZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X25ldHdvcmtfY29ubmVjdGlvbnMoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0xpc3RbTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZV1dXToKICAgICAgICAiIiJMaXN0IG5ldHdvcmsgY29ubmVjdGlvbnMKCiAgICAgICAgUmV0dXJucyBhbGwgbmV0d29yayBjb25uZWN0aW9ucy4gICoqTm90ZToqKiBUaGlzIEFQSSBjYWxsIGlzIHN1YmplY3QgdG8gRmxleGlibGUgUm91dGluZyBTY2hlbWVzLiAgWW91ciByb3V0aW5nIHBvbGljeSBkZWZpbmVzIGhvdyB5b3VyIHRyYW5zYWN0aW9ucyBhcmUgcm91dGVkLiBZb3UgY2FuIGNob29zZSAxIG9mIHRoZSAzIGRpZmZlcmVudCBzY2hlbWVzIG1lbnRpb25lZCBiZWxvdyBmb3IgZWFjaCBhc3NldCB0eXBlOiAgIC0gKipOb25lKio7IERlZmluZXMgdGhlIHByb2ZpbGUgcm91dGluZyB0byBubyBkZXN0aW5hdGlvbiBmb3IgdGhhdCBhc3NldCB0eXBlLiBJbmNvbWluZyB0cmFuc2FjdGlvbnMgdG8gYXNzZXQgdHlwZXMgcm91dGVkIHRvIGBOb25lYCB3aWxsIGZhaWwuICAgLSAqKkN1c3RvbSoqOyBSb3V0ZSB0byBhbiBhY2NvdW50IHRoYXQgeW91IGNob29zZS4gSWYgeW91IHJlbW92ZSB0aGUgYWNjb3VudCwgaW5jb21pbmcgdHJhbnNhY3Rpb25zIHdpbGwgZmFpbCB1bnRpbCB5b3UgY2hvb3NlIGFub3RoZXIgb25lLiAgIC0gKipEZWZhdWx0Kio7IFVzZSB0aGUgcm91dGluZyBzcGVjaWZpZWQgYnkgdGhlIG5ldHdvcmsgcHJvZmlsZSB0aGUgY29ubmVjdGlvbiBpcyBjb25uZWN0ZWQgdG8uIFRoaXMgc2NoZW1lIGlzIGFsc28gcmVmZXJyZWQgdG8gYXMgXCJQcm9maWxlIFJvdXRpbmdcIiAgRGVmYXVsdCBXb3Jrc3BhY2UgUHJlc2V0czogICAtIE5ldHdvcmsgUHJvZmlsZSBDcnlwdG8g4oaSICoqQ3VzdG9tKiogICAtIE5ldHdvcmsgUHJvZmlsZSBGSUFUIOKGkiAqKk5vbmUqKiAgIC0gTmV0d29yayBDb25uZWN0aW9uIENyeXB0byDihpIgKipEZWZhdWx0KiogICAtIE5ldHdvcmsgQ29ubmVjdGlvbiBGSUFUIOKGkiAqKkRlZmF1bHQqKgoKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfbmV0d29ya19jb25uZWN0aW9uc19zZXJpYWxpemUoCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJMaXN0W05ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2VdIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X25ldHdvcmtfY29ubmVjdGlvbnNfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL25ldHdvcmtfY29ubmVjdGlvbnMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X25ldHdvcmtfaWQoCiAgICAgICAgc2VsZiwKICAgICAgICBuZXR3b3JrX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBuZXR3b3JrIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTmV0d29ya0lkUmVzcG9uc2VdXToKICAgICAgICAiIiJSZXR1cm4gc3BlY2lmaWMgbmV0d29yayBJRC4KCiAgICAgICAgUmV0dXJucyBzcGVjaWZpYyBuZXR3b3JrIElELgoKICAgICAgICA6cGFyYW0gbmV0d29ya19pZDogVGhlIElEIG9mIHRoZSBuZXR3b3JrIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBuZXR3b3JrX2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X25ldHdvcmtfaWQiLCBwYXJhbV9uYW1lPSJuZXR3b3JrX2lkIiwgcGFyYW1fdmFsdWU9bmV0d29ya19pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X25ldHdvcmtfaWRfc2VyaWFsaXplKAogICAgICAgICAgICBuZXR3b3JrX2lkPW5ldHdvcmtfaWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJOZXR3b3JrSWRSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9uZXR3b3JrX2lkX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIG5ldHdvcmtfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIG5ldHdvcmtfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snbmV0d29ya0lkJ10gPSBuZXR3b3JrX2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbmV0d29ya19pZHMve25ldHdvcmtJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X25ldHdvcmtfaWRzKAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtMaXN0W05ldHdvcmtJZFJlc3BvbnNlXV1dOgogICAgICAgICIiIihEZXByZWNhdGVkKSBHZXQgYWxsIG5ldHdvcmsgSURzCgogICAgICAgIFJldHJpZXZlcyBhIGxpc3Qgb2YgYWxsIGxvY2FsIGFuZCBkaXNjb3ZlcmFibGUgcmVtb3RlIG5ldHdvcmsgSURzLgoKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCiAgICAgICAgd2FybmluZ3Mud2FybigiR0VUIC9uZXR3b3JrX2lkcyBpcyBkZXByZWNhdGVkLiIsIERlcHJlY2F0aW9uV2FybmluZykKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9uZXR3b3JrX2lkc19zZXJpYWxpemUoCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJMaXN0W05ldHdvcmtJZFJlc3BvbnNlXSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9uZXR3b3JrX2lkc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbmV0d29ya19pZHMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X3JvdXRpbmdfcG9saWN5X2Fzc2V0X2dyb3VwcygKICAgICAgICBzZWxmLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTGlzdFtzdHJdXV06CiAgICAgICAgIiIiUmV0dXJuIGFsbCBlbmFibGVkIHJvdXRpbmcgcG9saWN5IGFzc2V0IGdyb3VwcwoKICAgICAgICBSZXR1cm5zIGFsbCBlbmFibGVkIHJvdXRpbmcgcG9saWN5IGFzc2V0IGdyb3VwcwoKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfcm91dGluZ19wb2xpY3lfYXNzZXRfZ3JvdXBzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkxpc3Rbc3RyXSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9yb3V0aW5nX3BvbGljeV9hc3NldF9ncm91cHNfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL25ldHdvcmtfaWRzL3JvdXRpbmdfcG9saWN5X2Fzc2V0X2dyb3VwcycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBzZWFyY2hfbmV0d29ya19pZHMoCiAgICAgICAgc2VsZiwKICAgICAgICBzZWFyY2g6IEFubm90YXRlZFtPcHRpb25hbFtBbm5vdGF0ZWRbc3RyLCBGaWVsZChtaW5fbGVuZ3RoPTEsIHN0cmljdD1UcnVlKV1dLCBGaWVsZChkZXNjcmlwdGlvbj0iU2VhcmNoIHN0cmluZyAtIGRpc3BsYXlOYW1lIG5ldHdvcmtJZC4gT3B0aW9uYWwiKV0gPSBOb25lLAogICAgICAgIGV4Y2x1ZGVfc2VsZjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdEJvb2xdLCBGaWVsZChkZXNjcmlwdGlvbj0iRXhjbHVkZSB5b3VyIG5ldHdvcmtJZHMuIE9wdGlvbmFsLCBkZWZhdWx0IGZhbHNlIildID0gTm9uZSwKICAgICAgICBvbmx5X3NlbGY6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RCb29sXSwgRmllbGQoZGVzY3JpcHRpb249IkluY2x1ZGUganVzdCB5b3VyIG5ldHdvcmtJZHMuIE9wdGlvbmFsLCBkZWZhdWx0IGZhbHNlIildID0gTm9uZSwKICAgICAgICBleGNsdWRlX2Nvbm5lY3RlZDogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdEJvb2xdLCBGaWVsZChkZXNjcmlwdGlvbj0iRXhjbHVkZSBjb25uZWN0ZWQgbmV0d29ya0lkcy4gT3B0aW9uYWwsIGRlZmF1bHQgZmFsc2UiKV0gPSBOb25lLAogICAgICAgIHBhZ2VfY3Vyc29yOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IklEIG9mIHRoZSByZWNvcmQgYWZ0ZXIgd2hpY2ggdG8gZmV0Y2ggJGxpbWl0IHJlY29yZHMiKV0gPSBOb25lLAogICAgICAgIHBhZ2Vfc2l6ZTogQW5ub3RhdGVkW09wdGlvbmFsW1VuaW9uW0Fubm90YXRlZFtmbG9hdCwgRmllbGQobGU9NTAsIHN0cmljdD1UcnVlLCBnZT0xKV0sIEFubm90YXRlZFtpbnQsIEZpZWxkKGxlPTUwLCBzdHJpY3Q9VHJ1ZSwgZ2U9MSldXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJOdW1iZXIgb2YgcmVjb3JkcyB0byBmZXRjaC4gQnkgZGVmYXVsdCwgaXQgaXMgNTAiKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbU2VhcmNoTmV0d29ya0lkc1Jlc3BvbnNlXV06CiAgICAgICAgIiIiR2V0IGJvdGggbG9jYWwgSURzIGFuZCBkaXNjb3ZlcmFibGUgcmVtb3RlIElEcwoKICAgICAgICBSZXRyaWV2ZXMgYSBsaXN0IG9mIGFsbCBsb2NhbCBhbmQgZGlzY292ZXJhYmxlIHJlbW90ZSBuZXR3b3JrIElEcy4gQ2FuIGJlIGZpbHRlcmVkLiAKCiAgICAgICAgOnBhcmFtIHNlYXJjaDogU2VhcmNoIHN0cmluZyAtIGRpc3BsYXlOYW1lIG5ldHdvcmtJZC4gT3B0aW9uYWwKICAgICAgICA6dHlwZSBzZWFyY2g6IHN0cgogICAgICAgIDpwYXJhbSBleGNsdWRlX3NlbGY6IEV4Y2x1ZGUgeW91ciBuZXR3b3JrSWRzLiBPcHRpb25hbCwgZGVmYXVsdCBmYWxzZQogICAgICAgIDp0eXBlIGV4Y2x1ZGVfc2VsZjogYm9vbAogICAgICAgIDpwYXJhbSBvbmx5X3NlbGY6IEluY2x1ZGUganVzdCB5b3VyIG5ldHdvcmtJZHMuIE9wdGlvbmFsLCBkZWZhdWx0IGZhbHNlCiAgICAgICAgOnR5cGUgb25seV9zZWxmOiBib29sCiAgICAgICAgOnBhcmFtIGV4Y2x1ZGVfY29ubmVjdGVkOiBFeGNsdWRlIGNvbm5lY3RlZCBuZXR3b3JrSWRzLiBPcHRpb25hbCwgZGVmYXVsdCBmYWxzZQogICAgICAgIDp0eXBlIGV4Y2x1ZGVfY29ubmVjdGVkOiBib29sCiAgICAgICAgOnBhcmFtIHBhZ2VfY3Vyc29yOiBJRCBvZiB0aGUgcmVjb3JkIGFmdGVyIHdoaWNoIHRvIGZldGNoICRsaW1pdCByZWNvcmRzCiAgICAgICAgOnR5cGUgcGFnZV9jdXJzb3I6IHN0cgogICAgICAgIDpwYXJhbSBwYWdlX3NpemU6IE51bWJlciBvZiByZWNvcmRzIHRvIGZldGNoLiBCeSBkZWZhdWx0LCBpdCBpcyA1MAogICAgICAgIDp0eXBlIHBhZ2Vfc2l6ZTogZmxvYXQKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9zZWFyY2hfbmV0d29ya19pZHNfc2VyaWFsaXplKAogICAgICAgICAgICBzZWFyY2g9c2VhcmNoLAogICAgICAgICAgICBleGNsdWRlX3NlbGY9ZXhjbHVkZV9zZWxmLAogICAgICAgICAgICBvbmx5X3NlbGY9b25seV9zZWxmLAogICAgICAgICAgICBleGNsdWRlX2Nvbm5lY3RlZD1leGNsdWRlX2Nvbm5lY3RlZCwKICAgICAgICAgICAgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsCiAgICAgICAgICAgIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJTZWFyY2hOZXR3b3JrSWRzUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9zZWFyY2hfbmV0d29ya19pZHNfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgc2VhcmNoLAogICAgICAgIGV4Y2x1ZGVfc2VsZiwKICAgICAgICBvbmx5X3NlbGYsCiAgICAgICAgZXhjbHVkZV9jb25uZWN0ZWQsCiAgICAgICAgcGFnZV9jdXJzb3IsCiAgICAgICAgcGFnZV9zaXplLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiBzZWFyY2ggaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3NlYXJjaCcsIHNlYXJjaCkpCiAgICAgICAgICAgIAogICAgICAgIGlmIGV4Y2x1ZGVfc2VsZiBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnZXhjbHVkZVNlbGYnLCBleGNsdWRlX3NlbGYpKQogICAgICAgICAgICAKICAgICAgICBpZiBvbmx5X3NlbGYgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ29ubHlTZWxmJywgb25seV9zZWxmKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgZXhjbHVkZV9jb25uZWN0ZWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2V4Y2x1ZGVDb25uZWN0ZWQnLCBleGNsdWRlX2Nvbm5lY3RlZCkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2VfY3Vyc29yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlQ3Vyc29yJywgcGFnZV9jdXJzb3IpKQogICAgICAgICAgICAKICAgICAgICBpZiBwYWdlX3NpemUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VTaXplJywgcGFnZV9zaXplKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbmV0d29ya19pZHMvc2VhcmNoJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHNldF9uZXR3b3JrX2lkX2Rpc2NvdmVyYWJpbGl0eSgKICAgICAgICBzZWxmLAogICAgICAgIG5ldHdvcmtfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIG5ldHdvcmsiKV0sCiAgICAgICAgc2V0X25ldHdvcmtfaWRfZGlzY292ZXJhYmlsaXR5X3JlcXVlc3Q6IFNldE5ldHdvcmtJZERpc2NvdmVyYWJpbGl0eVJlcXVlc3QsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtTZXROZXR3b3JrSWRSZXNwb25zZV1dOgogICAgICAgICIiIlVwZGF0ZSBuZXR3b3JrIElEJ3MgZGlzY292ZXJhYmlsaXR5LgoKICAgICAgICBVcGRhdGUgd2hldGhlciBvciBub3QgdGhlIG5ldHdvcmsgSUQgaXMgZGlzY292ZXJhYmxlIGJ5IG90aGVycy4KCiAgICAgICAgOnBhcmFtIG5ldHdvcmtfaWQ6IFRoZSBJRCBvZiB0aGUgbmV0d29yayAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgbmV0d29ya19pZDogc3RyCiAgICAgICAgOnBhcmFtIHNldF9uZXR3b3JrX2lkX2Rpc2NvdmVyYWJpbGl0eV9yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgc2V0X25ldHdvcmtfaWRfZGlzY292ZXJhYmlsaXR5X3JlcXVlc3Q6IFNldE5ldHdvcmtJZERpc2NvdmVyYWJpbGl0eVJlcXVlc3QKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0ic2V0X25ldHdvcmtfaWRfZGlzY292ZXJhYmlsaXR5IiwgcGFyYW1fbmFtZT0ibmV0d29ya19pZCIsIHBhcmFtX3ZhbHVlPW5ldHdvcmtfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3NldF9uZXR3b3JrX2lkX2Rpc2NvdmVyYWJpbGl0eV9zZXJpYWxpemUoCiAgICAgICAgICAgIG5ldHdvcmtfaWQ9bmV0d29ya19pZCwKICAgICAgICAgICAgc2V0X25ldHdvcmtfaWRfZGlzY292ZXJhYmlsaXR5X3JlcXVlc3Q9c2V0X25ldHdvcmtfaWRfZGlzY292ZXJhYmlsaXR5X3JlcXVlc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJTZXROZXR3b3JrSWRSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3NldF9uZXR3b3JrX2lkX2Rpc2NvdmVyYWJpbGl0eV9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBuZXR3b3JrX2lkLAogICAgICAgIHNldF9uZXR3b3JrX2lkX2Rpc2NvdmVyYWJpbGl0eV9yZXF1ZXN0LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBuZXR3b3JrX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ25ldHdvcmtJZCddID0gbmV0d29ya19pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBzZXRfbmV0d29ya19pZF9kaXNjb3ZlcmFiaWxpdHlfcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gc2V0X25ldHdvcmtfaWRfZGlzY292ZXJhYmlsaXR5X3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQQVRDSCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9uZXR3b3JrX2lkcy97bmV0d29ya0lkfS9zZXRfZGlzY292ZXJhYmlsaXR5JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHNldF9uZXR3b3JrX2lkX25hbWUoCiAgICAgICAgc2VsZiwKICAgICAgICBuZXR3b3JrX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBuZXR3b3JrIildLAogICAgICAgIHNldF9uZXR3b3JrX2lkX25hbWVfcmVxdWVzdDogU2V0TmV0d29ya0lkTmFtZVJlcXVlc3QsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtTZXROZXR3b3JrSWRSZXNwb25zZV1dOgogICAgICAgICIiIlVwZGF0ZSBuZXR3b3JrIElEJ3MgbmFtZS4KCiAgICAgICAgVXBkYXRlcyBuYW1lIG9mIGEgc3BlY2lmaWVkIG5ldHdvcmsgSUQuCgogICAgICAgIDpwYXJhbSBuZXR3b3JrX2lkOiBUaGUgSUQgb2YgdGhlIG5ldHdvcmsgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIG5ldHdvcmtfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBzZXRfbmV0d29ya19pZF9uYW1lX3JlcXVlc3Q6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBzZXRfbmV0d29ya19pZF9uYW1lX3JlcXVlc3Q6IFNldE5ldHdvcmtJZE5hbWVSZXF1ZXN0CiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InNldF9uZXR3b3JrX2lkX25hbWUiLCBwYXJhbV9uYW1lPSJuZXR3b3JrX2lkIiwgcGFyYW1fdmFsdWU9bmV0d29ya19pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fc2V0X25ldHdvcmtfaWRfbmFtZV9zZXJpYWxpemUoCiAgICAgICAgICAgIG5ldHdvcmtfaWQ9bmV0d29ya19pZCwKICAgICAgICAgICAgc2V0X25ldHdvcmtfaWRfbmFtZV9yZXF1ZXN0PXNldF9uZXR3b3JrX2lkX25hbWVfcmVxdWVzdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlNldE5ldHdvcmtJZFJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfc2V0X25ldHdvcmtfaWRfbmFtZV9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBuZXR3b3JrX2lkLAogICAgICAgIHNldF9uZXR3b3JrX2lkX25hbWVfcmVxdWVzdCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgbmV0d29ya19pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyduZXR3b3JrSWQnXSA9IG5ldHdvcmtfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgc2V0X25ldHdvcmtfaWRfbmFtZV9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBzZXRfbmV0d29ya19pZF9uYW1lX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQQVRDSCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9uZXR3b3JrX2lkcy97bmV0d29ya0lkfS9zZXRfbmFtZScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBzZXRfbmV0d29ya19pZF9yb3V0aW5nX3BvbGljeSgKICAgICAgICBzZWxmLAogICAgICAgIG5ldHdvcmtfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIG5ldHdvcmsiKV0sCiAgICAgICAgc2V0X25ldHdvcmtfaWRfcm91dGluZ19wb2xpY3lfcmVxdWVzdDogT3B0aW9uYWxbU2V0TmV0d29ya0lkUm91dGluZ1BvbGljeVJlcXVlc3RdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1NldE5ldHdvcmtJZFJlc3BvbnNlXV06CiAgICAgICAgIiIiVXBkYXRlIG5ldHdvcmsgaWQgcm91dGluZyBwb2xpY3kuCgogICAgICAgIFVwZGF0ZXMgdGhlIHJvdXRpbmcgcG9saWN5IG9mIGEgc3BlY2lmaWVkIG5ldHdvcmsgSUQuCgogICAgICAgIDpwYXJhbSBuZXR3b3JrX2lkOiBUaGUgSUQgb2YgdGhlIG5ldHdvcmsgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIG5ldHdvcmtfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBzZXRfbmV0d29ya19pZF9yb3V0aW5nX3BvbGljeV9yZXF1ZXN0OgogICAgICAgIDp0eXBlIHNldF9uZXR3b3JrX2lkX3JvdXRpbmdfcG9saWN5X3JlcXVlc3Q6IFNldE5ldHdvcmtJZFJvdXRpbmdQb2xpY3lSZXF1ZXN0CiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InNldF9uZXR3b3JrX2lkX3JvdXRpbmdfcG9saWN5IiwgcGFyYW1fbmFtZT0ibmV0d29ya19pZCIsIHBhcmFtX3ZhbHVlPW5ldHdvcmtfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3NldF9uZXR3b3JrX2lkX3JvdXRpbmdfcG9saWN5X3NlcmlhbGl6ZSgKICAgICAgICAgICAgbmV0d29ya19pZD1uZXR3b3JrX2lkLAogICAgICAgICAgICBzZXRfbmV0d29ya19pZF9yb3V0aW5nX3BvbGljeV9yZXF1ZXN0PXNldF9uZXR3b3JrX2lkX3JvdXRpbmdfcG9saWN5X3JlcXVlc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJTZXROZXR3b3JrSWRSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3NldF9uZXR3b3JrX2lkX3JvdXRpbmdfcG9saWN5X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIG5ldHdvcmtfaWQsCiAgICAgICAgc2V0X25ldHdvcmtfaWRfcm91dGluZ19wb2xpY3lfcmVxdWVzdCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgbmV0d29ya19pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyduZXR3b3JrSWQnXSA9IG5ldHdvcmtfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgc2V0X25ldHdvcmtfaWRfcm91dGluZ19wb2xpY3lfcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gc2V0X25ldHdvcmtfaWRfcm91dGluZ19wb2xpY3lfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BBVENIJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL25ldHdvcmtfaWRzL3tuZXR3b3JrSWR9L3NldF9yb3V0aW5nX3BvbGljeScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBzZXRfcm91dGluZ19wb2xpY3koCiAgICAgICAgc2VsZiwKICAgICAgICBjb25uZWN0aW9uX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBuZXR3b3JrIGNvbm5lY3Rpb24iKV0sCiAgICAgICAgc2V0X3JvdXRpbmdfcG9saWN5X3JlcXVlc3Q6IE9wdGlvbmFsW1NldFJvdXRpbmdQb2xpY3lSZXF1ZXN0XSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtTZXRSb3V0aW5nUG9saWN5UmVzcG9uc2VdXToKICAgICAgICAiIiJVcGRhdGUgbmV0d29yayBjb25uZWN0aW9uIHJvdXRpbmcgcG9saWN5LgoKICAgICAgICBVcGRhdGVzIGFuIGV4aXN0aW5nIG5ldHdvcmsgY29ubmVjdGlvbidzIHJvdXRpbmcgcG9saWN5LgoKICAgICAgICA6cGFyYW0gY29ubmVjdGlvbl9pZDogVGhlIElEIG9mIHRoZSBuZXR3b3JrIGNvbm5lY3Rpb24gKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGNvbm5lY3Rpb25faWQ6IHN0cgogICAgICAgIDpwYXJhbSBzZXRfcm91dGluZ19wb2xpY3lfcmVxdWVzdDoKICAgICAgICA6dHlwZSBzZXRfcm91dGluZ19wb2xpY3lfcmVxdWVzdDogU2V0Um91dGluZ1BvbGljeVJlcXVlc3QKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0ic2V0X3JvdXRpbmdfcG9saWN5IiwgcGFyYW1fbmFtZT0iY29ubmVjdGlvbl9pZCIsIHBhcmFtX3ZhbHVlPWNvbm5lY3Rpb25faWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3NldF9yb3V0aW5nX3BvbGljeV9zZXJpYWxpemUoCiAgICAgICAgICAgIGNvbm5lY3Rpb25faWQ9Y29ubmVjdGlvbl9pZCwKICAgICAgICAgICAgc2V0X3JvdXRpbmdfcG9saWN5X3JlcXVlc3Q9c2V0X3JvdXRpbmdfcG9saWN5X3JlcXVlc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJTZXRSb3V0aW5nUG9saWN5UmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9zZXRfcm91dGluZ19wb2xpY3lfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY29ubmVjdGlvbl9pZCwKICAgICAgICBzZXRfcm91dGluZ19wb2xpY3lfcmVxdWVzdCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgY29ubmVjdGlvbl9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydjb25uZWN0aW9uSWQnXSA9IGNvbm5lY3Rpb25faWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgc2V0X3JvdXRpbmdfcG9saWN5X3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHNldF9yb3V0aW5nX3BvbGljeV9yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUEFUQ0gnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbmV0d29ya19jb25uZWN0aW9ucy97Y29ubmVjdGlvbklkfS9zZXRfcm91dGluZ19wb2xpY3knLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCg== \ No newline at end of file diff --git a/fireblocks/api/nfts_api.py b/fireblocks/api/nfts_api.py index 7c8fdcf3..bb906994 100644 --- a/fireblocks/api/nfts_api.py +++ b/fireblocks/api/nfts_api.py @@ -1,1716 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr, field_validator -from typing import List, Optional, Union -from typing_extensions import Annotated -from fireblocks.models.get_nfts_response import GetNFTsResponse -from fireblocks.models.get_ownership_tokens_response import GetOwnershipTokensResponse -from fireblocks.models.list_owned_collections_response import ListOwnedCollectionsResponse -from fireblocks.models.list_owned_tokens_response import ListOwnedTokensResponse -from fireblocks.models.token_ownership_spam_update_payload import TokenOwnershipSpamUpdatePayload -from fireblocks.models.token_ownership_status_update_payload import TokenOwnershipStatusUpdatePayload -from fireblocks.models.token_response import TokenResponse -from fireblocks.models.update_token_ownership_status_dto import UpdateTokenOwnershipStatusDto - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class NFTsApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def get_nft( - self, - id: Annotated[StrictStr, Field(description="NFT ID")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TokenResponse]]: - """List token data by ID - - Returns the requested token data. - - :param id: NFT ID (required) - :type id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_nft", param_name="id", param_value=id) - - _param = self._get_nft_serialize( - id=id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TokenResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_nft_serialize( - self, - id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if id is not None: - _path_params['id'] = id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/nfts/tokens/{id}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_nfts( - self, - ids: Annotated[StrictStr, Field(description="A comma separated list of NFT IDs. Up to 100 are allowed in a single request.")], - page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor to fetch")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=100, strict=True, ge=1)], Annotated[int, Field(le=100, strict=True, ge=1)]]], Field(description="Items per page (max 100)")] = None, - sort: Annotated[Optional[List[StrictStr]], Field(description="Sort by param, it can be one param or a list of params separated by comma")] = None, - order: Annotated[Optional[StrictStr], Field(description="Order direction, it can be `ASC` for ascending or `DESC` for descending")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GetNFTsResponse]]: - """List tokens by IDs - - Returns the requested tokens data. - - :param ids: A comma separated list of NFT IDs. Up to 100 are allowed in a single request. (required) - :type ids: str - :param page_cursor: Page cursor to fetch - :type page_cursor: str - :param page_size: Items per page (max 100) - :type page_size: float - :param sort: Sort by param, it can be one param or a list of params separated by comma - :type sort: List[str] - :param order: Order direction, it can be `ASC` for ascending or `DESC` for descending - :type order: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_nfts", param_name="ids", param_value=ids) - - _param = self._get_nfts_serialize( - ids=ids, - page_cursor=page_cursor, - page_size=page_size, - sort=sort, - order=order, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GetNFTsResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_nfts_serialize( - self, - ids, - page_cursor, - page_size, - sort, - order, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - 'sort': 'multi', - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if ids is not None: - - _query_params.append(('ids', ids)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if sort is not None: - - _query_params.append(('sort', sort)) - - if order is not None: - - _query_params.append(('order', order)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/nfts/tokens', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_ownership_tokens( - self, - blockchain_descriptor: Annotated[Optional[StrictStr], Field(description="Blockchain descriptor filter")] = None, - vault_account_ids: Annotated[Optional[StrictStr], Field(description="A comma separated list of Vault Account IDs. Up to 100 are allowed in a single request. This field will be ignored when walletType=END_USER_WALLET or ncwId is provided.")] = None, - ncw_id: Annotated[Optional[StrictStr], Field(description="Tenant's Non-Custodial Wallet ID")] = None, - ncw_account_ids: Annotated[Optional[StrictStr], Field(description="A comma separated list of Non-Custodial account IDs. Up to 100 are allowed in a single request. This field will be ignored when walletType=VAULT_ACCOUNT or ncwId is not provided.")] = None, - wallet_type: Annotated[Optional[StrictStr], Field(description="Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET`")] = None, - ids: Annotated[Optional[StrictStr], Field(description="A comma separated list of NFT IDs. Up to 100 are allowed in a single request.")] = None, - collection_ids: Annotated[Optional[StrictStr], Field(description="A comma separated list of collection IDs. Up to 100 are allowed in a single request.")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor to fetch")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=100, strict=True, ge=1)], Annotated[int, Field(le=100, strict=True, ge=1)]]], Field(description="Items per page (max 100)")] = None, - sort: Annotated[Optional[List[StrictStr]], Field(description="Sort by param, it can be one param or a list of params separated by comma")] = None, - order: Annotated[Optional[StrictStr], Field(description="Order direction, it can be `ASC` for ascending or `DESC` for descending")] = None, - status: Annotated[Optional[StrictStr], Field(description="Token ownership status")] = None, - search: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="Search owned tokens and their collections. Possible criteria for search: token name and id within the contract/collection, collection name, blockchain descriptor and name.")] = None, - spam: Annotated[Optional[StrictStr], Field(description="Token ownership spam status.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GetOwnershipTokensResponse]]: - """List all owned tokens (paginated) - - Returns all tokens and their data in your workspace. - - :param blockchain_descriptor: Blockchain descriptor filter - :type blockchain_descriptor: str - :param vault_account_ids: A comma separated list of Vault Account IDs. Up to 100 are allowed in a single request. This field will be ignored when walletType=END_USER_WALLET or ncwId is provided. - :type vault_account_ids: str - :param ncw_id: Tenant's Non-Custodial Wallet ID - :type ncw_id: str - :param ncw_account_ids: A comma separated list of Non-Custodial account IDs. Up to 100 are allowed in a single request. This field will be ignored when walletType=VAULT_ACCOUNT or ncwId is not provided. - :type ncw_account_ids: str - :param wallet_type: Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET` - :type wallet_type: str - :param ids: A comma separated list of NFT IDs. Up to 100 are allowed in a single request. - :type ids: str - :param collection_ids: A comma separated list of collection IDs. Up to 100 are allowed in a single request. - :type collection_ids: str - :param page_cursor: Page cursor to fetch - :type page_cursor: str - :param page_size: Items per page (max 100) - :type page_size: float - :param sort: Sort by param, it can be one param or a list of params separated by comma - :type sort: List[str] - :param order: Order direction, it can be `ASC` for ascending or `DESC` for descending - :type order: str - :param status: Token ownership status - :type status: str - :param search: Search owned tokens and their collections. Possible criteria for search: token name and id within the contract/collection, collection name, blockchain descriptor and name. - :type search: str - :param spam: Token ownership spam status. - :type spam: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_ownership_tokens_serialize( - blockchain_descriptor=blockchain_descriptor, - vault_account_ids=vault_account_ids, - ncw_id=ncw_id, - ncw_account_ids=ncw_account_ids, - wallet_type=wallet_type, - ids=ids, - collection_ids=collection_ids, - page_cursor=page_cursor, - page_size=page_size, - sort=sort, - order=order, - status=status, - search=search, - spam=spam, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GetOwnershipTokensResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_ownership_tokens_serialize( - self, - blockchain_descriptor, - vault_account_ids, - ncw_id, - ncw_account_ids, - wallet_type, - ids, - collection_ids, - page_cursor, - page_size, - sort, - order, - status, - search, - spam, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - 'sort': 'multi', - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if blockchain_descriptor is not None: - - _query_params.append(('blockchainDescriptor', blockchain_descriptor)) - - if vault_account_ids is not None: - - _query_params.append(('vaultAccountIds', vault_account_ids)) - - if ncw_id is not None: - - _query_params.append(('ncwId', ncw_id)) - - if ncw_account_ids is not None: - - _query_params.append(('ncwAccountIds', ncw_account_ids)) - - if wallet_type is not None: - - _query_params.append(('walletType', wallet_type)) - - if ids is not None: - - _query_params.append(('ids', ids)) - - if collection_ids is not None: - - _query_params.append(('collectionIds', collection_ids)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if sort is not None: - - _query_params.append(('sort', sort)) - - if order is not None: - - _query_params.append(('order', order)) - - if status is not None: - - _query_params.append(('status', status)) - - if search is not None: - - _query_params.append(('search', search)) - - if spam is not None: - - _query_params.append(('spam', spam)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/nfts/ownership/tokens', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def list_owned_collections( - self, - ncw_id: Annotated[Optional[StrictStr], Field(description="Tenant's Non-Custodial Wallet ID")] = None, - wallet_type: Annotated[Optional[StrictStr], Field(description="Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET`")] = None, - search: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="Search owned collections. Possible criteria for search: collection name, collection contract address.")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor to fetch")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=100, strict=True, ge=1)], Annotated[int, Field(le=100, strict=True, ge=1)]]], Field(description="Items per page (max 100)")] = None, - sort: Annotated[Optional[List[StrictStr]], Field(description="Sort by param, it can be one param or a list of params separated by comma")] = None, - order: Annotated[Optional[StrictStr], Field(description="Order direction, it can be `ASC` for ascending or `DESC` for descending")] = None, - status: Annotated[Optional[StrictStr], Field(description="Token ownership status")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ListOwnedCollectionsResponse]]: - """List owned collections (paginated) - - Returns all collections in your workspace - - :param ncw_id: Tenant's Non-Custodial Wallet ID - :type ncw_id: str - :param wallet_type: Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET` - :type wallet_type: str - :param search: Search owned collections. Possible criteria for search: collection name, collection contract address. - :type search: str - :param page_cursor: Page cursor to fetch - :type page_cursor: str - :param page_size: Items per page (max 100) - :type page_size: float - :param sort: Sort by param, it can be one param or a list of params separated by comma - :type sort: List[str] - :param order: Order direction, it can be `ASC` for ascending or `DESC` for descending - :type order: str - :param status: Token ownership status - :type status: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._list_owned_collections_serialize( - ncw_id=ncw_id, - wallet_type=wallet_type, - search=search, - page_cursor=page_cursor, - page_size=page_size, - sort=sort, - order=order, - status=status, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ListOwnedCollectionsResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _list_owned_collections_serialize( - self, - ncw_id, - wallet_type, - search, - page_cursor, - page_size, - sort, - order, - status, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - 'sort': 'multi', - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if ncw_id is not None: - - _query_params.append(('ncwId', ncw_id)) - - if wallet_type is not None: - - _query_params.append(('walletType', wallet_type)) - - if search is not None: - - _query_params.append(('search', search)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if sort is not None: - - _query_params.append(('sort', sort)) - - if order is not None: - - _query_params.append(('order', order)) - - if status is not None: - - _query_params.append(('status', status)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/nfts/ownership/collections', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def list_owned_tokens( - self, - ncw_id: Annotated[Optional[StrictStr], Field(description="Tenant's Non-Custodial Wallet ID")] = None, - wallet_type: Annotated[Optional[StrictStr], Field(description="Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET`")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor to fetch")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=100, strict=True, ge=1)], Annotated[int, Field(le=100, strict=True, ge=1)]]], Field(description="Items per page (max 100)")] = None, - sort: Annotated[Optional[List[StrictStr]], Field(description="Sort by param, it can be one param or a list of params separated by comma")] = None, - order: Annotated[Optional[StrictStr], Field(description="Order direction, it can be `ASC` for ascending or `DESC` for descending")] = None, - status: Annotated[Optional[StrictStr], Field(description="Token ownership status")] = None, - search: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="Search owned tokens by token name")] = None, - spam: Annotated[Optional[StrictStr], Field(description="Token ownership spam status.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ListOwnedTokensResponse]]: - """List all distinct owned tokens (paginated) - - Returns all owned distinct tokens (for your tenant) and their data in your workspace. - - :param ncw_id: Tenant's Non-Custodial Wallet ID - :type ncw_id: str - :param wallet_type: Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET` - :type wallet_type: str - :param page_cursor: Page cursor to fetch - :type page_cursor: str - :param page_size: Items per page (max 100) - :type page_size: float - :param sort: Sort by param, it can be one param or a list of params separated by comma - :type sort: List[str] - :param order: Order direction, it can be `ASC` for ascending or `DESC` for descending - :type order: str - :param status: Token ownership status - :type status: str - :param search: Search owned tokens by token name - :type search: str - :param spam: Token ownership spam status. - :type spam: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._list_owned_tokens_serialize( - ncw_id=ncw_id, - wallet_type=wallet_type, - page_cursor=page_cursor, - page_size=page_size, - sort=sort, - order=order, - status=status, - search=search, - spam=spam, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ListOwnedTokensResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _list_owned_tokens_serialize( - self, - ncw_id, - wallet_type, - page_cursor, - page_size, - sort, - order, - status, - search, - spam, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - 'sort': 'multi', - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if ncw_id is not None: - - _query_params.append(('ncwId', ncw_id)) - - if wallet_type is not None: - - _query_params.append(('walletType', wallet_type)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if sort is not None: - - _query_params.append(('sort', sort)) - - if order is not None: - - _query_params.append(('order', order)) - - if status is not None: - - _query_params.append(('status', status)) - - if search is not None: - - _query_params.append(('search', search)) - - if spam is not None: - - _query_params.append(('spam', spam)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/nfts/ownership/assets', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def refresh_nft_metadata( - self, - id: Annotated[StrictStr, Field(description="NFT ID")], - x_end_user_wallet_id: Annotated[Optional[StrictStr], Field(description="Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.")] = None, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Refresh token metadata - - Updates the latest token metadata. - - :param id: NFT ID (required) - :type id: str - :param x_end_user_wallet_id: Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. - :type x_end_user_wallet_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="refresh_nft_metadata", param_name="id", param_value=id) - - _param = self._refresh_nft_metadata_serialize( - id=id, - x_end_user_wallet_id=x_end_user_wallet_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '202': None, - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _refresh_nft_metadata_serialize( - self, - id, - x_end_user_wallet_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if id is not None: - _path_params['id'] = id - # process the query parameters - # process the header parameters - if x_end_user_wallet_id is not None: - _header_params['X-End-User-Wallet-Id'] = x_end_user_wallet_id - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/nfts/tokens/{id}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_ownership_tokens( - self, - blockchain_descriptor: Annotated[StrictStr, Field(description="Blockchain descriptor filter")], - vault_account_id: Annotated[StrictStr, Field(description="Vault account filter")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Refresh vault account tokens - - Updates all tokens and balances per blockchain and vault account. Learn more about Fireblocks NFT management in the following [guide](https://developers.fireblocks.com/reference/deploy-an-nft-collection).
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param blockchain_descriptor: Blockchain descriptor filter (required) - :type blockchain_descriptor: str - :param vault_account_id: Vault account filter (required) - :type vault_account_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="update_ownership_tokens", param_name="blockchain_descriptor", param_value=blockchain_descriptor) - validate_not_empty_string(function_name="update_ownership_tokens", param_name="vault_account_id", param_value=vault_account_id) - - _param = self._update_ownership_tokens_serialize( - blockchain_descriptor=blockchain_descriptor, - vault_account_id=vault_account_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '202': None, - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_ownership_tokens_serialize( - self, - blockchain_descriptor, - vault_account_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if blockchain_descriptor is not None: - - _query_params.append(('blockchainDescriptor', blockchain_descriptor)) - - if vault_account_id is not None: - - _query_params.append(('vaultAccountId', vault_account_id)) - - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/nfts/ownership/tokens', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_token_ownership_status( - self, - id: Annotated[StrictStr, Field(description="NFT ID")], - update_token_ownership_status_dto: UpdateTokenOwnershipStatusDto, - x_end_user_wallet_id: Annotated[Optional[StrictStr], Field(description="Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.")] = None, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Update token ownership status - - Updates token status for a tenant, in all tenant vaults. - - :param id: NFT ID (required) - :type id: str - :param update_token_ownership_status_dto: (required) - :type update_token_ownership_status_dto: UpdateTokenOwnershipStatusDto - :param x_end_user_wallet_id: Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. - :type x_end_user_wallet_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="update_token_ownership_status", param_name="id", param_value=id) - - _param = self._update_token_ownership_status_serialize( - id=id, - update_token_ownership_status_dto=update_token_ownership_status_dto, - x_end_user_wallet_id=x_end_user_wallet_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': None, - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_token_ownership_status_serialize( - self, - id, - update_token_ownership_status_dto, - x_end_user_wallet_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if id is not None: - _path_params['id'] = id - # process the query parameters - # process the header parameters - if x_end_user_wallet_id is not None: - _header_params['X-End-User-Wallet-Id'] = x_end_user_wallet_id - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if update_token_ownership_status_dto is not None: - _body_params = update_token_ownership_status_dto - - - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/nfts/ownership/tokens/{id}/status', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_tokens_ownership_spam( - self, - token_ownership_spam_update_payload: List[TokenOwnershipSpamUpdatePayload], - x_end_user_wallet_id: Annotated[Optional[StrictStr], Field(description="Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.")] = None, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Update tokens ownership spam property - - Updates tokens spam property for a tenant's token ownerships, in all tenant vaults. - - :param token_ownership_spam_update_payload: (required) - :type token_ownership_spam_update_payload: List[TokenOwnershipSpamUpdatePayload] - :param x_end_user_wallet_id: Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. - :type x_end_user_wallet_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._update_tokens_ownership_spam_serialize( - token_ownership_spam_update_payload=token_ownership_spam_update_payload, - x_end_user_wallet_id=x_end_user_wallet_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': None, - '400': None, - '404': None, - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_tokens_ownership_spam_serialize( - self, - token_ownership_spam_update_payload, - x_end_user_wallet_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - 'TokenOwnershipSpamUpdatePayload': '', - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if x_end_user_wallet_id is not None: - _header_params['X-End-User-Wallet-Id'] = x_end_user_wallet_id - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if token_ownership_spam_update_payload is not None: - _body_params = token_ownership_spam_update_payload - - - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/nfts/ownership/tokens/spam', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_tokens_ownership_status( - self, - token_ownership_status_update_payload: List[TokenOwnershipStatusUpdatePayload], - x_end_user_wallet_id: Annotated[Optional[StrictStr], Field(description="Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.")] = None, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Update tokens ownership status - - Updates tokens status for a tenant, in all tenant vaults. - - :param token_ownership_status_update_payload: (required) - :type token_ownership_status_update_payload: List[TokenOwnershipStatusUpdatePayload] - :param x_end_user_wallet_id: Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. - :type x_end_user_wallet_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._update_tokens_ownership_status_serialize( - token_ownership_status_update_payload=token_ownership_status_update_payload, - x_end_user_wallet_id=x_end_user_wallet_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': None, - '400': None, - '404': None, - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_tokens_ownership_status_serialize( - self, - token_ownership_status_update_payload, - x_end_user_wallet_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - 'TokenOwnershipStatusUpdatePayload': '', - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if x_end_user_wallet_id is not None: - _header_params['X-End-User-Wallet-Id'] = x_end_user_wallet_id - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if token_ownership_status_update_payload is not None: - _body_params = token_ownership_status_update_payload - - - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/nfts/ownership/tokens/status', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0ciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X25mdHNfcmVzcG9uc2UgaW1wb3J0IEdldE5GVHNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9vd25lcnNoaXBfdG9rZW5zX3Jlc3BvbnNlIGltcG9ydCBHZXRPd25lcnNoaXBUb2tlbnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxpc3Rfb3duZWRfY29sbGVjdGlvbnNfcmVzcG9uc2UgaW1wb3J0IExpc3RPd25lZENvbGxlY3Rpb25zUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5saXN0X293bmVkX3Rva2Vuc19yZXNwb25zZSBpbXBvcnQgTGlzdE93bmVkVG9rZW5zUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b2tlbl9vd25lcnNoaXBfc3BhbV91cGRhdGVfcGF5bG9hZCBpbXBvcnQgVG9rZW5Pd25lcnNoaXBTcGFtVXBkYXRlUGF5bG9hZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX293bmVyc2hpcF9zdGF0dXNfdXBkYXRlX3BheWxvYWQgaW1wb3J0IFRva2VuT3duZXJzaGlwU3RhdHVzVXBkYXRlUGF5bG9hZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX3Jlc3BvbnNlIGltcG9ydCBUb2tlblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXBkYXRlX3Rva2VuX293bmVyc2hpcF9zdGF0dXNfZHRvIGltcG9ydCBVcGRhdGVUb2tlbk93bmVyc2hpcFN0YXR1c0R0bwoKZnJvbSBmaXJlYmxvY2tzLmFwaV9jbGllbnQgaW1wb3J0IEFwaUNsaWVudCwgUmVxdWVzdFNlcmlhbGl6ZWQKZnJvbSBmaXJlYmxvY2tzLmFwaV9yZXNwb25zZSBpbXBvcnQgQXBpUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLnJlc3QgaW1wb3J0IFJFU1RSZXNwb25zZVR5cGUKZnJvbSBmaXJlYmxvY2tzLnZhbGlkYXRpb25fdXRpbHMgaW1wb3J0IHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcKCgpjbGFzcyBORlRzQXBpOgogICAgIiIiTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvcgogICAgUmVmOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gKCiAgICBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgYXBpX2NsaWVudD1Ob25lKSAtPiBOb25lOgogICAgICAgIGlmIGFwaV9jbGllbnQgaXMgTm9uZToKICAgICAgICAgICAgYXBpX2NsaWVudCA9IEFwaUNsaWVudC5nZXRfZGVmYXVsdCgpCiAgICAgICAgc2VsZi5hcGlfY2xpZW50ID0gYXBpX2NsaWVudAoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9uZnQoCiAgICAgICAgc2VsZiwKICAgICAgICBpZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249Ik5GVCBJRCIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1Rva2VuUmVzcG9uc2VdXToKICAgICAgICAiIiJMaXN0IHRva2VuIGRhdGEgYnkgSUQKCiAgICAgICAgUmV0dXJucyB0aGUgcmVxdWVzdGVkIHRva2VuIGRhdGEuIAoKICAgICAgICA6cGFyYW0gaWQ6IE5GVCBJRCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfbmZ0IiwgcGFyYW1fbmFtZT0iaWQiLCBwYXJhbV92YWx1ZT1pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X25mdF9zZXJpYWxpemUoCiAgICAgICAgICAgIGlkPWlkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiVG9rZW5SZXNwb25zZSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfbmZ0X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGlkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydpZCddID0gaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9uZnRzL3Rva2Vucy97aWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9uZnRzKAogICAgICAgIHNlbGYsCiAgICAgICAgaWRzOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBORlQgSURzLiBVcCB0byAxMDAgYXJlIGFsbG93ZWQgaW4gYSBzaW5nbGUgcmVxdWVzdC4iKV0sCiAgICAgICAgcGFnZV9jdXJzb3I6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iUGFnZSBjdXJzb3IgdG8gZmV0Y2giKV0gPSBOb25lLAogICAgICAgIHBhZ2Vfc2l6ZTogQW5ub3RhdGVkW09wdGlvbmFsW1VuaW9uW0Fubm90YXRlZFtmbG9hdCwgRmllbGQobGU9MTAwLCBzdHJpY3Q9VHJ1ZSwgZ2U9MSldLCBBbm5vdGF0ZWRbaW50LCBGaWVsZChsZT0xMDAsIHN0cmljdD1UcnVlLCBnZT0xKV1dXSwgRmllbGQoZGVzY3JpcHRpb249Ikl0ZW1zIHBlciBwYWdlIChtYXggMTAwKSIpXSA9IE5vbmUsCiAgICAgICAgc29ydDogQW5ub3RhdGVkW09wdGlvbmFsW0xpc3RbU3RyaWN0U3RyXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJTb3J0IGJ5IHBhcmFtLCBpdCBjYW4gYmUgb25lIHBhcmFtIG9yIGEgbGlzdCBvZiBwYXJhbXMgc2VwYXJhdGVkIGJ5IGNvbW1hIildID0gTm9uZSwKICAgICAgICBvcmRlcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJPcmRlciBkaXJlY3Rpb24sIGl0IGNhbiBiZSBgQVNDYCBmb3IgYXNjZW5kaW5nIG9yIGBERVNDYCBmb3IgZGVzY2VuZGluZyIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtHZXRORlRzUmVzcG9uc2VdXToKICAgICAgICAiIiJMaXN0IHRva2VucyBieSBJRHMKCiAgICAgICAgUmV0dXJucyB0aGUgcmVxdWVzdGVkIHRva2VucyBkYXRhLiAKCiAgICAgICAgOnBhcmFtIGlkczogQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBORlQgSURzLiBVcCB0byAxMDAgYXJlIGFsbG93ZWQgaW4gYSBzaW5nbGUgcmVxdWVzdC4gKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGlkczogc3RyCiAgICAgICAgOnBhcmFtIHBhZ2VfY3Vyc29yOiBQYWdlIGN1cnNvciB0byBmZXRjaAogICAgICAgIDp0eXBlIHBhZ2VfY3Vyc29yOiBzdHIKICAgICAgICA6cGFyYW0gcGFnZV9zaXplOiBJdGVtcyBwZXIgcGFnZSAobWF4IDEwMCkKICAgICAgICA6dHlwZSBwYWdlX3NpemU6IGZsb2F0CiAgICAgICAgOnBhcmFtIHNvcnQ6IFNvcnQgYnkgcGFyYW0sIGl0IGNhbiBiZSBvbmUgcGFyYW0gb3IgYSBsaXN0IG9mIHBhcmFtcyBzZXBhcmF0ZWQgYnkgY29tbWEKICAgICAgICA6dHlwZSBzb3J0OiBMaXN0W3N0cl0KICAgICAgICA6cGFyYW0gb3JkZXI6IE9yZGVyIGRpcmVjdGlvbiwgaXQgY2FuIGJlIGBBU0NgIGZvciBhc2NlbmRpbmcgb3IgYERFU0NgIGZvciBkZXNjZW5kaW5nCiAgICAgICAgOnR5cGUgb3JkZXI6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfbmZ0cyIsIHBhcmFtX25hbWU9ImlkcyIsIHBhcmFtX3ZhbHVlPWlkcykKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X25mdHNfc2VyaWFsaXplKAogICAgICAgICAgICBpZHM9aWRzLAogICAgICAgICAgICBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwKICAgICAgICAgICAgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwKICAgICAgICAgICAgc29ydD1zb3J0LAogICAgICAgICAgICBvcmRlcj1vcmRlciwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkdldE5GVHNSZXNwb25zZSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfbmZ0c19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBpZHMsCiAgICAgICAgcGFnZV9jdXJzb3IsCiAgICAgICAgcGFnZV9zaXplLAogICAgICAgIHNvcnQsCiAgICAgICAgb3JkZXIsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgICAgICAnc29ydCc6ICdtdWx0aScsCiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdpZHMnLCBpZHMpKQogICAgICAgICAgICAKICAgICAgICBpZiBwYWdlX2N1cnNvciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZUN1cnNvcicsIHBhZ2VfY3Vyc29yKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgcGFnZV9zaXplIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlU2l6ZScsIHBhZ2Vfc2l6ZSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHNvcnQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3NvcnQnLCBzb3J0KSkKICAgICAgICAgICAgCiAgICAgICAgaWYgb3JkZXIgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ29yZGVyJywgb3JkZXIpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9uZnRzL3Rva2VucycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfb3duZXJzaGlwX3Rva2VucygKICAgICAgICBzZWxmLAogICAgICAgIGJsb2NrY2hhaW5fZGVzY3JpcHRvcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJCbG9ja2NoYWluIGRlc2NyaXB0b3IgZmlsdGVyIildID0gTm9uZSwKICAgICAgICB2YXVsdF9hY2NvdW50X2lkczogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIFZhdWx0IEFjY291bnQgSURzLiBVcCB0byAxMDAgYXJlIGFsbG93ZWQgaW4gYSBzaW5nbGUgcmVxdWVzdC4gIFRoaXMgZmllbGQgd2lsbCBiZSBpZ25vcmVkIHdoZW4gd2FsbGV0VHlwZT1FTkRfVVNFUl9XQUxMRVQgb3IgbmN3SWQgaXMgcHJvdmlkZWQuIildID0gTm9uZSwKICAgICAgICBuY3dfaWQ6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iVGVuYW50J3MgTm9uLUN1c3RvZGlhbCBXYWxsZXQgSUQiKV0gPSBOb25lLAogICAgICAgIG5jd19hY2NvdW50X2lkczogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIE5vbi1DdXN0b2RpYWwgYWNjb3VudCBJRHMuIFVwIHRvIDEwMCBhcmUgYWxsb3dlZCBpbiBhIHNpbmdsZSByZXF1ZXN0LiBUaGlzIGZpZWxkIHdpbGwgYmUgaWdub3JlZCB3aGVuIHdhbGxldFR5cGU9VkFVTFRfQUNDT1VOVCBvciBuY3dJZCBpcyBub3QgcHJvdmlkZWQuIildID0gTm9uZSwKICAgICAgICB3YWxsZXRfdHlwZTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJXYWxsZXQgdHlwZSwgaXQgY2FuIGJlIGBWQVVMVF9BQ0NPVU5UYCBvciBgRU5EX1VTRVJfV0FMTEVUYCIpXSA9IE5vbmUsCiAgICAgICAgaWRzOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgTkZUIElEcy4gVXAgdG8gMTAwIGFyZSBhbGxvd2VkIGluIGEgc2luZ2xlIHJlcXVlc3QuIildID0gTm9uZSwKICAgICAgICBjb2xsZWN0aW9uX2lkczogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGNvbGxlY3Rpb24gSURzLiBVcCB0byAxMDAgYXJlIGFsbG93ZWQgaW4gYSBzaW5nbGUgcmVxdWVzdC4iKV0gPSBOb25lLAogICAgICAgIHBhZ2VfY3Vyc29yOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlBhZ2UgY3Vyc29yIHRvIGZldGNoIildID0gTm9uZSwKICAgICAgICBwYWdlX3NpemU6IEFubm90YXRlZFtPcHRpb25hbFtVbmlvbltBbm5vdGF0ZWRbZmxvYXQsIEZpZWxkKGxlPTEwMCwgc3RyaWN0PVRydWUsIGdlPTEpXSwgQW5ub3RhdGVkW2ludCwgRmllbGQobGU9MTAwLCBzdHJpY3Q9VHJ1ZSwgZ2U9MSldXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJJdGVtcyBwZXIgcGFnZSAobWF4IDEwMCkiKV0gPSBOb25lLAogICAgICAgIHNvcnQ6IEFubm90YXRlZFtPcHRpb25hbFtMaXN0W1N0cmljdFN0cl1dLCBGaWVsZChkZXNjcmlwdGlvbj0iU29ydCBieSBwYXJhbSwgaXQgY2FuIGJlIG9uZSBwYXJhbSBvciBhIGxpc3Qgb2YgcGFyYW1zIHNlcGFyYXRlZCBieSBjb21tYSIpXSA9IE5vbmUsCiAgICAgICAgb3JkZXI6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iT3JkZXIgZGlyZWN0aW9uLCBpdCBjYW4gYmUgYEFTQ2AgZm9yIGFzY2VuZGluZyBvciBgREVTQ2AgZm9yIGRlc2NlbmRpbmciKV0gPSBOb25lLAogICAgICAgIHN0YXR1czogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJUb2tlbiBvd25lcnNoaXAgc3RhdHVzIildID0gTm9uZSwKICAgICAgICBzZWFyY2g6IEFubm90YXRlZFtPcHRpb25hbFtBbm5vdGF0ZWRbc3RyLCBGaWVsZChzdHJpY3Q9VHJ1ZSldXSwgRmllbGQoZGVzY3JpcHRpb249IlNlYXJjaCBvd25lZCB0b2tlbnMgYW5kIHRoZWlyIGNvbGxlY3Rpb25zLiBQb3NzaWJsZSBjcml0ZXJpYSBmb3Igc2VhcmNoOiAgdG9rZW4gbmFtZSBhbmQgaWQgd2l0aGluIHRoZSBjb250cmFjdC9jb2xsZWN0aW9uLCBjb2xsZWN0aW9uIG5hbWUsIGJsb2NrY2hhaW4gZGVzY3JpcHRvciBhbmQgbmFtZS4iKV0gPSBOb25lLAogICAgICAgIHNwYW06IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iVG9rZW4gb3duZXJzaGlwIHNwYW0gc3RhdHVzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtHZXRPd25lcnNoaXBUb2tlbnNSZXNwb25zZV1dOgogICAgICAgICIiIkxpc3QgYWxsIG93bmVkIHRva2VucyAocGFnaW5hdGVkKQoKICAgICAgICBSZXR1cm5zIGFsbCB0b2tlbnMgYW5kIHRoZWlyIGRhdGEgaW4geW91ciB3b3Jrc3BhY2UuIAoKICAgICAgICA6cGFyYW0gYmxvY2tjaGFpbl9kZXNjcmlwdG9yOiBCbG9ja2NoYWluIGRlc2NyaXB0b3IgZmlsdGVyCiAgICAgICAgOnR5cGUgYmxvY2tjaGFpbl9kZXNjcmlwdG9yOiBzdHIKICAgICAgICA6cGFyYW0gdmF1bHRfYWNjb3VudF9pZHM6IEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgVmF1bHQgQWNjb3VudCBJRHMuIFVwIHRvIDEwMCBhcmUgYWxsb3dlZCBpbiBhIHNpbmdsZSByZXF1ZXN0LiAgVGhpcyBmaWVsZCB3aWxsIGJlIGlnbm9yZWQgd2hlbiB3YWxsZXRUeXBlPUVORF9VU0VSX1dBTExFVCBvciBuY3dJZCBpcyBwcm92aWRlZC4KICAgICAgICA6dHlwZSB2YXVsdF9hY2NvdW50X2lkczogc3RyCiAgICAgICAgOnBhcmFtIG5jd19pZDogVGVuYW50J3MgTm9uLUN1c3RvZGlhbCBXYWxsZXQgSUQKICAgICAgICA6dHlwZSBuY3dfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBuY3dfYWNjb3VudF9pZHM6IEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgTm9uLUN1c3RvZGlhbCBhY2NvdW50IElEcy4gVXAgdG8gMTAwIGFyZSBhbGxvd2VkIGluIGEgc2luZ2xlIHJlcXVlc3QuIFRoaXMgZmllbGQgd2lsbCBiZSBpZ25vcmVkIHdoZW4gd2FsbGV0VHlwZT1WQVVMVF9BQ0NPVU5UIG9yIG5jd0lkIGlzIG5vdCBwcm92aWRlZC4KICAgICAgICA6dHlwZSBuY3dfYWNjb3VudF9pZHM6IHN0cgogICAgICAgIDpwYXJhbSB3YWxsZXRfdHlwZTogV2FsbGV0IHR5cGUsIGl0IGNhbiBiZSBgVkFVTFRfQUNDT1VOVGAgb3IgYEVORF9VU0VSX1dBTExFVGAKICAgICAgICA6dHlwZSB3YWxsZXRfdHlwZTogc3RyCiAgICAgICAgOnBhcmFtIGlkczogQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBORlQgSURzLiBVcCB0byAxMDAgYXJlIGFsbG93ZWQgaW4gYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBpZHM6IHN0cgogICAgICAgIDpwYXJhbSBjb2xsZWN0aW9uX2lkczogQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBjb2xsZWN0aW9uIElEcy4gVXAgdG8gMTAwIGFyZSBhbGxvd2VkIGluIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgY29sbGVjdGlvbl9pZHM6IHN0cgogICAgICAgIDpwYXJhbSBwYWdlX2N1cnNvcjogUGFnZSBjdXJzb3IgdG8gZmV0Y2gKICAgICAgICA6dHlwZSBwYWdlX2N1cnNvcjogc3RyCiAgICAgICAgOnBhcmFtIHBhZ2Vfc2l6ZTogSXRlbXMgcGVyIHBhZ2UgKG1heCAxMDApCiAgICAgICAgOnR5cGUgcGFnZV9zaXplOiBmbG9hdAogICAgICAgIDpwYXJhbSBzb3J0OiBTb3J0IGJ5IHBhcmFtLCBpdCBjYW4gYmUgb25lIHBhcmFtIG9yIGEgbGlzdCBvZiBwYXJhbXMgc2VwYXJhdGVkIGJ5IGNvbW1hCiAgICAgICAgOnR5cGUgc29ydDogTGlzdFtzdHJdCiAgICAgICAgOnBhcmFtIG9yZGVyOiBPcmRlciBkaXJlY3Rpb24sIGl0IGNhbiBiZSBgQVNDYCBmb3IgYXNjZW5kaW5nIG9yIGBERVNDYCBmb3IgZGVzY2VuZGluZwogICAgICAgIDp0eXBlIG9yZGVyOiBzdHIKICAgICAgICA6cGFyYW0gc3RhdHVzOiBUb2tlbiBvd25lcnNoaXAgc3RhdHVzCiAgICAgICAgOnR5cGUgc3RhdHVzOiBzdHIKICAgICAgICA6cGFyYW0gc2VhcmNoOiBTZWFyY2ggb3duZWQgdG9rZW5zIGFuZCB0aGVpciBjb2xsZWN0aW9ucy4gUG9zc2libGUgY3JpdGVyaWEgZm9yIHNlYXJjaDogIHRva2VuIG5hbWUgYW5kIGlkIHdpdGhpbiB0aGUgY29udHJhY3QvY29sbGVjdGlvbiwgY29sbGVjdGlvbiBuYW1lLCBibG9ja2NoYWluIGRlc2NyaXB0b3IgYW5kIG5hbWUuCiAgICAgICAgOnR5cGUgc2VhcmNoOiBzdHIKICAgICAgICA6cGFyYW0gc3BhbTogVG9rZW4gb3duZXJzaGlwIHNwYW0gc3RhdHVzLgogICAgICAgIDp0eXBlIHNwYW06IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9vd25lcnNoaXBfdG9rZW5zX3NlcmlhbGl6ZSgKICAgICAgICAgICAgYmxvY2tjaGFpbl9kZXNjcmlwdG9yPWJsb2NrY2hhaW5fZGVzY3JpcHRvciwKICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZHM9dmF1bHRfYWNjb3VudF9pZHMsCiAgICAgICAgICAgIG5jd19pZD1uY3dfaWQsCiAgICAgICAgICAgIG5jd19hY2NvdW50X2lkcz1uY3dfYWNjb3VudF9pZHMsCiAgICAgICAgICAgIHdhbGxldF90eXBlPXdhbGxldF90eXBlLAogICAgICAgICAgICBpZHM9aWRzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2lkcz1jb2xsZWN0aW9uX2lkcywKICAgICAgICAgICAgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsCiAgICAgICAgICAgIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsCiAgICAgICAgICAgIHNvcnQ9c29ydCwKICAgICAgICAgICAgb3JkZXI9b3JkZXIsCiAgICAgICAgICAgIHN0YXR1cz1zdGF0dXMsCiAgICAgICAgICAgIHNlYXJjaD1zZWFyY2gsCiAgICAgICAgICAgIHNwYW09c3BhbSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkdldE93bmVyc2hpcFRva2Vuc1Jlc3BvbnNlIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9vd25lcnNoaXBfdG9rZW5zX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGJsb2NrY2hhaW5fZGVzY3JpcHRvciwKICAgICAgICB2YXVsdF9hY2NvdW50X2lkcywKICAgICAgICBuY3dfaWQsCiAgICAgICAgbmN3X2FjY291bnRfaWRzLAogICAgICAgIHdhbGxldF90eXBlLAogICAgICAgIGlkcywKICAgICAgICBjb2xsZWN0aW9uX2lkcywKICAgICAgICBwYWdlX2N1cnNvciwKICAgICAgICBwYWdlX3NpemUsCiAgICAgICAgc29ydCwKICAgICAgICBvcmRlciwKICAgICAgICBzdGF0dXMsCiAgICAgICAgc2VhcmNoLAogICAgICAgIHNwYW0sCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgICAgICAnc29ydCc6ICdtdWx0aScsCiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgYmxvY2tjaGFpbl9kZXNjcmlwdG9yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdibG9ja2NoYWluRGVzY3JpcHRvcicsIGJsb2NrY2hhaW5fZGVzY3JpcHRvcikpCiAgICAgICAgICAgIAogICAgICAgIGlmIHZhdWx0X2FjY291bnRfaWRzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCd2YXVsdEFjY291bnRJZHMnLCB2YXVsdF9hY2NvdW50X2lkcykpCiAgICAgICAgICAgIAogICAgICAgIGlmIG5jd19pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnbmN3SWQnLCBuY3dfaWQpKQogICAgICAgICAgICAKICAgICAgICBpZiBuY3dfYWNjb3VudF9pZHMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ25jd0FjY291bnRJZHMnLCBuY3dfYWNjb3VudF9pZHMpKQogICAgICAgICAgICAKICAgICAgICBpZiB3YWxsZXRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnd2FsbGV0VHlwZScsIHdhbGxldF90eXBlKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgaWRzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdpZHMnLCBpZHMpKQogICAgICAgICAgICAKICAgICAgICBpZiBjb2xsZWN0aW9uX2lkcyBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnY29sbGVjdGlvbklkcycsIGNvbGxlY3Rpb25faWRzKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgcGFnZV9jdXJzb3IgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VDdXJzb3InLCBwYWdlX2N1cnNvcikpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2Vfc2l6ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZVNpemUnLCBwYWdlX3NpemUpKQogICAgICAgICAgICAKICAgICAgICBpZiBzb3J0IGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdzb3J0Jywgc29ydCkpCiAgICAgICAgICAgIAogICAgICAgIGlmIG9yZGVyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdvcmRlcicsIG9yZGVyKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgc3RhdHVzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdzdGF0dXMnLCBzdGF0dXMpKQogICAgICAgICAgICAKICAgICAgICBpZiBzZWFyY2ggaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3NlYXJjaCcsIHNlYXJjaCkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHNwYW0gaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3NwYW0nLCBzcGFtKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbmZ0cy9vd25lcnNoaXAvdG9rZW5zJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGxpc3Rfb3duZWRfY29sbGVjdGlvbnMoCiAgICAgICAgc2VsZiwKICAgICAgICBuY3dfaWQ6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iVGVuYW50J3MgTm9uLUN1c3RvZGlhbCBXYWxsZXQgSUQiKV0gPSBOb25lLAogICAgICAgIHdhbGxldF90eXBlOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IldhbGxldCB0eXBlLCBpdCBjYW4gYmUgYFZBVUxUX0FDQ09VTlRgIG9yIGBFTkRfVVNFUl9XQUxMRVRgIildID0gTm9uZSwKICAgICAgICBzZWFyY2g6IEFubm90YXRlZFtPcHRpb25hbFtBbm5vdGF0ZWRbc3RyLCBGaWVsZChzdHJpY3Q9VHJ1ZSldXSwgRmllbGQoZGVzY3JpcHRpb249IlNlYXJjaCBvd25lZCBjb2xsZWN0aW9ucy4gUG9zc2libGUgY3JpdGVyaWEgZm9yIHNlYXJjaDogY29sbGVjdGlvbiBuYW1lLCBjb2xsZWN0aW9uIGNvbnRyYWN0IGFkZHJlc3MuIildID0gTm9uZSwKICAgICAgICBwYWdlX2N1cnNvcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJQYWdlIGN1cnNvciB0byBmZXRjaCIpXSA9IE5vbmUsCiAgICAgICAgcGFnZV9zaXplOiBBbm5vdGF0ZWRbT3B0aW9uYWxbVW5pb25bQW5ub3RhdGVkW2Zsb2F0LCBGaWVsZChsZT0xMDAsIHN0cmljdD1UcnVlLCBnZT0xKV0sIEFubm90YXRlZFtpbnQsIEZpZWxkKGxlPTEwMCwgc3RyaWN0PVRydWUsIGdlPTEpXV1dLCBGaWVsZChkZXNjcmlwdGlvbj0iSXRlbXMgcGVyIHBhZ2UgKG1heCAxMDApIildID0gTm9uZSwKICAgICAgICBzb3J0OiBBbm5vdGF0ZWRbT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSwgRmllbGQoZGVzY3JpcHRpb249IlNvcnQgYnkgcGFyYW0sIGl0IGNhbiBiZSBvbmUgcGFyYW0gb3IgYSBsaXN0IG9mIHBhcmFtcyBzZXBhcmF0ZWQgYnkgY29tbWEiKV0gPSBOb25lLAogICAgICAgIG9yZGVyOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249Ik9yZGVyIGRpcmVjdGlvbiwgaXQgY2FuIGJlIGBBU0NgIGZvciBhc2NlbmRpbmcgb3IgYERFU0NgIGZvciBkZXNjZW5kaW5nIildID0gTm9uZSwKICAgICAgICBzdGF0dXM6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iVG9rZW4gb3duZXJzaGlwIHN0YXR1cyIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtMaXN0T3duZWRDb2xsZWN0aW9uc1Jlc3BvbnNlXV06CiAgICAgICAgIiIiTGlzdCBvd25lZCBjb2xsZWN0aW9ucyAocGFnaW5hdGVkKQoKICAgICAgICBSZXR1cm5zIGFsbCBjb2xsZWN0aW9ucyBpbiB5b3VyIHdvcmtzcGFjZSAKCiAgICAgICAgOnBhcmFtIG5jd19pZDogVGVuYW50J3MgTm9uLUN1c3RvZGlhbCBXYWxsZXQgSUQKICAgICAgICA6dHlwZSBuY3dfaWQ6IHN0cgogICAgICAgIDpwYXJhbSB3YWxsZXRfdHlwZTogV2FsbGV0IHR5cGUsIGl0IGNhbiBiZSBgVkFVTFRfQUNDT1VOVGAgb3IgYEVORF9VU0VSX1dBTExFVGAKICAgICAgICA6dHlwZSB3YWxsZXRfdHlwZTogc3RyCiAgICAgICAgOnBhcmFtIHNlYXJjaDogU2VhcmNoIG93bmVkIGNvbGxlY3Rpb25zLiBQb3NzaWJsZSBjcml0ZXJpYSBmb3Igc2VhcmNoOiBjb2xsZWN0aW9uIG5hbWUsIGNvbGxlY3Rpb24gY29udHJhY3QgYWRkcmVzcy4KICAgICAgICA6dHlwZSBzZWFyY2g6IHN0cgogICAgICAgIDpwYXJhbSBwYWdlX2N1cnNvcjogUGFnZSBjdXJzb3IgdG8gZmV0Y2gKICAgICAgICA6dHlwZSBwYWdlX2N1cnNvcjogc3RyCiAgICAgICAgOnBhcmFtIHBhZ2Vfc2l6ZTogSXRlbXMgcGVyIHBhZ2UgKG1heCAxMDApCiAgICAgICAgOnR5cGUgcGFnZV9zaXplOiBmbG9hdAogICAgICAgIDpwYXJhbSBzb3J0OiBTb3J0IGJ5IHBhcmFtLCBpdCBjYW4gYmUgb25lIHBhcmFtIG9yIGEgbGlzdCBvZiBwYXJhbXMgc2VwYXJhdGVkIGJ5IGNvbW1hCiAgICAgICAgOnR5cGUgc29ydDogTGlzdFtzdHJdCiAgICAgICAgOnBhcmFtIG9yZGVyOiBPcmRlciBkaXJlY3Rpb24sIGl0IGNhbiBiZSBgQVNDYCBmb3IgYXNjZW5kaW5nIG9yIGBERVNDYCBmb3IgZGVzY2VuZGluZwogICAgICAgIDp0eXBlIG9yZGVyOiBzdHIKICAgICAgICA6cGFyYW0gc3RhdHVzOiBUb2tlbiBvd25lcnNoaXAgc3RhdHVzCiAgICAgICAgOnR5cGUgc3RhdHVzOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9saXN0X293bmVkX2NvbGxlY3Rpb25zX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbmN3X2lkPW5jd19pZCwKICAgICAgICAgICAgd2FsbGV0X3R5cGU9d2FsbGV0X3R5cGUsCiAgICAgICAgICAgIHNlYXJjaD1zZWFyY2gsCiAgICAgICAgICAgIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLAogICAgICAgICAgICBwYWdlX3NpemU9cGFnZV9zaXplLAogICAgICAgICAgICBzb3J0PXNvcnQsCiAgICAgICAgICAgIG9yZGVyPW9yZGVyLAogICAgICAgICAgICBzdGF0dXM9c3RhdHVzLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiTGlzdE93bmVkQ29sbGVjdGlvbnNSZXNwb25zZSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9saXN0X293bmVkX2NvbGxlY3Rpb25zX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIG5jd19pZCwKICAgICAgICB3YWxsZXRfdHlwZSwKICAgICAgICBzZWFyY2gsCiAgICAgICAgcGFnZV9jdXJzb3IsCiAgICAgICAgcGFnZV9zaXplLAogICAgICAgIHNvcnQsCiAgICAgICAgb3JkZXIsCiAgICAgICAgc3RhdHVzLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICAgICAgJ3NvcnQnOiAnbXVsdGknLAogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIG5jd19pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnbmN3SWQnLCBuY3dfaWQpKQogICAgICAgICAgICAKICAgICAgICBpZiB3YWxsZXRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnd2FsbGV0VHlwZScsIHdhbGxldF90eXBlKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgc2VhcmNoIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdzZWFyY2gnLCBzZWFyY2gpKQogICAgICAgICAgICAKICAgICAgICBpZiBwYWdlX2N1cnNvciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZUN1cnNvcicsIHBhZ2VfY3Vyc29yKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgcGFnZV9zaXplIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlU2l6ZScsIHBhZ2Vfc2l6ZSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHNvcnQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3NvcnQnLCBzb3J0KSkKICAgICAgICAgICAgCiAgICAgICAgaWYgb3JkZXIgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ29yZGVyJywgb3JkZXIpKQogICAgICAgICAgICAKICAgICAgICBpZiBzdGF0dXMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3N0YXR1cycsIHN0YXR1cykpCiAgICAgICAgICAgIAogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL25mdHMvb3duZXJzaGlwL2NvbGxlY3Rpb25zJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGxpc3Rfb3duZWRfdG9rZW5zKAogICAgICAgIHNlbGYsCiAgICAgICAgbmN3X2lkOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlRlbmFudCdzIE5vbi1DdXN0b2RpYWwgV2FsbGV0IElEIildID0gTm9uZSwKICAgICAgICB3YWxsZXRfdHlwZTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJXYWxsZXQgdHlwZSwgaXQgY2FuIGJlIGBWQVVMVF9BQ0NPVU5UYCBvciBgRU5EX1VTRVJfV0FMTEVUYCIpXSA9IE5vbmUsCiAgICAgICAgcGFnZV9jdXJzb3I6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iUGFnZSBjdXJzb3IgdG8gZmV0Y2giKV0gPSBOb25lLAogICAgICAgIHBhZ2Vfc2l6ZTogQW5ub3RhdGVkW09wdGlvbmFsW1VuaW9uW0Fubm90YXRlZFtmbG9hdCwgRmllbGQobGU9MTAwLCBzdHJpY3Q9VHJ1ZSwgZ2U9MSldLCBBbm5vdGF0ZWRbaW50LCBGaWVsZChsZT0xMDAsIHN0cmljdD1UcnVlLCBnZT0xKV1dXSwgRmllbGQoZGVzY3JpcHRpb249Ikl0ZW1zIHBlciBwYWdlIChtYXggMTAwKSIpXSA9IE5vbmUsCiAgICAgICAgc29ydDogQW5ub3RhdGVkW09wdGlvbmFsW0xpc3RbU3RyaWN0U3RyXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJTb3J0IGJ5IHBhcmFtLCBpdCBjYW4gYmUgb25lIHBhcmFtIG9yIGEgbGlzdCBvZiBwYXJhbXMgc2VwYXJhdGVkIGJ5IGNvbW1hIildID0gTm9uZSwKICAgICAgICBvcmRlcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJPcmRlciBkaXJlY3Rpb24sIGl0IGNhbiBiZSBgQVNDYCBmb3IgYXNjZW5kaW5nIG9yIGBERVNDYCBmb3IgZGVzY2VuZGluZyIpXSA9IE5vbmUsCiAgICAgICAgc3RhdHVzOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlRva2VuIG93bmVyc2hpcCBzdGF0dXMiKV0gPSBOb25lLAogICAgICAgIHNlYXJjaDogQW5ub3RhdGVkW09wdGlvbmFsW0Fubm90YXRlZFtzdHIsIEZpZWxkKHN0cmljdD1UcnVlKV1dLCBGaWVsZChkZXNjcmlwdGlvbj0iU2VhcmNoIG93bmVkIHRva2VucyBieSB0b2tlbiBuYW1lIildID0gTm9uZSwKICAgICAgICBzcGFtOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlRva2VuIG93bmVyc2hpcCBzcGFtIHN0YXR1cy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTGlzdE93bmVkVG9rZW5zUmVzcG9uc2VdXToKICAgICAgICAiIiJMaXN0IGFsbCBkaXN0aW5jdCBvd25lZCB0b2tlbnMgKHBhZ2luYXRlZCkKCiAgICAgICAgUmV0dXJucyBhbGwgb3duZWQgZGlzdGluY3QgdG9rZW5zIChmb3IgeW91ciB0ZW5hbnQpIGFuZCB0aGVpciBkYXRhIGluIHlvdXIgd29ya3NwYWNlLiAKCiAgICAgICAgOnBhcmFtIG5jd19pZDogVGVuYW50J3MgTm9uLUN1c3RvZGlhbCBXYWxsZXQgSUQKICAgICAgICA6dHlwZSBuY3dfaWQ6IHN0cgogICAgICAgIDpwYXJhbSB3YWxsZXRfdHlwZTogV2FsbGV0IHR5cGUsIGl0IGNhbiBiZSBgVkFVTFRfQUNDT1VOVGAgb3IgYEVORF9VU0VSX1dBTExFVGAKICAgICAgICA6dHlwZSB3YWxsZXRfdHlwZTogc3RyCiAgICAgICAgOnBhcmFtIHBhZ2VfY3Vyc29yOiBQYWdlIGN1cnNvciB0byBmZXRjaAogICAgICAgIDp0eXBlIHBhZ2VfY3Vyc29yOiBzdHIKICAgICAgICA6cGFyYW0gcGFnZV9zaXplOiBJdGVtcyBwZXIgcGFnZSAobWF4IDEwMCkKICAgICAgICA6dHlwZSBwYWdlX3NpemU6IGZsb2F0CiAgICAgICAgOnBhcmFtIHNvcnQ6IFNvcnQgYnkgcGFyYW0sIGl0IGNhbiBiZSBvbmUgcGFyYW0gb3IgYSBsaXN0IG9mIHBhcmFtcyBzZXBhcmF0ZWQgYnkgY29tbWEKICAgICAgICA6dHlwZSBzb3J0OiBMaXN0W3N0cl0KICAgICAgICA6cGFyYW0gb3JkZXI6IE9yZGVyIGRpcmVjdGlvbiwgaXQgY2FuIGJlIGBBU0NgIGZvciBhc2NlbmRpbmcgb3IgYERFU0NgIGZvciBkZXNjZW5kaW5nCiAgICAgICAgOnR5cGUgb3JkZXI6IHN0cgogICAgICAgIDpwYXJhbSBzdGF0dXM6IFRva2VuIG93bmVyc2hpcCBzdGF0dXMKICAgICAgICA6dHlwZSBzdGF0dXM6IHN0cgogICAgICAgIDpwYXJhbSBzZWFyY2g6IFNlYXJjaCBvd25lZCB0b2tlbnMgYnkgdG9rZW4gbmFtZQogICAgICAgIDp0eXBlIHNlYXJjaDogc3RyCiAgICAgICAgOnBhcmFtIHNwYW06IFRva2VuIG93bmVyc2hpcCBzcGFtIHN0YXR1cy4KICAgICAgICA6dHlwZSBzcGFtOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9saXN0X293bmVkX3Rva2Vuc19zZXJpYWxpemUoCiAgICAgICAgICAgIG5jd19pZD1uY3dfaWQsCiAgICAgICAgICAgIHdhbGxldF90eXBlPXdhbGxldF90eXBlLAogICAgICAgICAgICBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwKICAgICAgICAgICAgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwKICAgICAgICAgICAgc29ydD1zb3J0LAogICAgICAgICAgICBvcmRlcj1vcmRlciwKICAgICAgICAgICAgc3RhdHVzPXN0YXR1cywKICAgICAgICAgICAgc2VhcmNoPXNlYXJjaCwKICAgICAgICAgICAgc3BhbT1zcGFtLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiTGlzdE93bmVkVG9rZW5zUmVzcG9uc2UiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfbGlzdF9vd25lZF90b2tlbnNfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgbmN3X2lkLAogICAgICAgIHdhbGxldF90eXBlLAogICAgICAgIHBhZ2VfY3Vyc29yLAogICAgICAgIHBhZ2Vfc2l6ZSwKICAgICAgICBzb3J0LAogICAgICAgIG9yZGVyLAogICAgICAgIHN0YXR1cywKICAgICAgICBzZWFyY2gsCiAgICAgICAgc3BhbSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgICAgICdzb3J0JzogJ211bHRpJywKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiBuY3dfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ25jd0lkJywgbmN3X2lkKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgd2FsbGV0X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3dhbGxldFR5cGUnLCB3YWxsZXRfdHlwZSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2VfY3Vyc29yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlQ3Vyc29yJywgcGFnZV9jdXJzb3IpKQogICAgICAgICAgICAKICAgICAgICBpZiBwYWdlX3NpemUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VTaXplJywgcGFnZV9zaXplKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgc29ydCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnc29ydCcsIHNvcnQpKQogICAgICAgICAgICAKICAgICAgICBpZiBvcmRlciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnb3JkZXInLCBvcmRlcikpCiAgICAgICAgICAgIAogICAgICAgIGlmIHN0YXR1cyBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnc3RhdHVzJywgc3RhdHVzKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgc2VhcmNoIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdzZWFyY2gnLCBzZWFyY2gpKQogICAgICAgICAgICAKICAgICAgICBpZiBzcGFtIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdzcGFtJywgc3BhbSkpCiAgICAgICAgICAgIAogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL25mdHMvb3duZXJzaGlwL2Fzc2V0cycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiByZWZyZXNoX25mdF9tZXRhZGF0YSgKICAgICAgICBzZWxmLAogICAgICAgIGlkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iTkZUIElEIildLAogICAgICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLiIpXSA9IE5vbmUsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTm9uZV1dOgogICAgICAgICIiIlJlZnJlc2ggdG9rZW4gbWV0YWRhdGEKCiAgICAgICAgVXBkYXRlcyB0aGUgbGF0ZXN0IHRva2VuIG1ldGFkYXRhLiAKCiAgICAgICAgOnBhcmFtIGlkOiBORlQgSUQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGlkOiBzdHIKICAgICAgICA6cGFyYW0geF9lbmRfdXNlcl93YWxsZXRfaWQ6IFVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLgogICAgICAgIDp0eXBlIHhfZW5kX3VzZXJfd2FsbGV0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0icmVmcmVzaF9uZnRfbWV0YWRhdGEiLCBwYXJhbV9uYW1lPSJpZCIsIHBhcmFtX3ZhbHVlPWlkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9yZWZyZXNoX25mdF9tZXRhZGF0YV9zZXJpYWxpemUoCiAgICAgICAgICAgIGlkPWlkLAogICAgICAgICAgICB4X2VuZF91c2VyX3dhbGxldF9pZD14X2VuZF91c2VyX3dhbGxldF9pZCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAyJzogTm9uZSwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3JlZnJlc2hfbmZ0X21ldGFkYXRhX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGlkLAogICAgICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snaWQnXSA9IGlkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIHhfZW5kX3VzZXJfd2FsbGV0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snWC1FbmQtVXNlci1XYWxsZXQtSWQnXSA9IHhfZW5kX3VzZXJfd2FsbGV0X2lkCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BVVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9uZnRzL3Rva2Vucy97aWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHVwZGF0ZV9vd25lcnNoaXBfdG9rZW5zKAogICAgICAgIHNlbGYsCiAgICAgICAgYmxvY2tjaGFpbl9kZXNjcmlwdG9yOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iQmxvY2tjaGFpbiBkZXNjcmlwdG9yIGZpbHRlciIpXSwKICAgICAgICB2YXVsdF9hY2NvdW50X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVmF1bHQgYWNjb3VudCBmaWx0ZXIiKV0sCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTm9uZV1dOgogICAgICAgICIiIlJlZnJlc2ggdmF1bHQgYWNjb3VudCB0b2tlbnMKCiAgICAgICAgVXBkYXRlcyBhbGwgdG9rZW5zIGFuZCBiYWxhbmNlcyBwZXIgYmxvY2tjaGFpbiBhbmQgdmF1bHQgYWNjb3VudC4gTGVhcm4gbW9yZSBhYm91dCBGaXJlYmxvY2tzIE5GVCBtYW5hZ2VtZW50IGluIHRoZSBmb2xsb3dpbmcgW2d1aWRlXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2RlcGxveS1hbi1uZnQtY29sbGVjdGlvbikuICA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKICAgICAgICA6cGFyYW0gYmxvY2tjaGFpbl9kZXNjcmlwdG9yOiBCbG9ja2NoYWluIGRlc2NyaXB0b3IgZmlsdGVyIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBibG9ja2NoYWluX2Rlc2NyaXB0b3I6IHN0cgogICAgICAgIDpwYXJhbSB2YXVsdF9hY2NvdW50X2lkOiBWYXVsdCBhY2NvdW50IGZpbHRlciAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdmF1bHRfYWNjb3VudF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InVwZGF0ZV9vd25lcnNoaXBfdG9rZW5zIiwgcGFyYW1fbmFtZT0iYmxvY2tjaGFpbl9kZXNjcmlwdG9yIiwgcGFyYW1fdmFsdWU9YmxvY2tjaGFpbl9kZXNjcmlwdG9yKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0idXBkYXRlX293bmVyc2hpcF90b2tlbnMiLCBwYXJhbV9uYW1lPSJ2YXVsdF9hY2NvdW50X2lkIiwgcGFyYW1fdmFsdWU9dmF1bHRfYWNjb3VudF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fdXBkYXRlX293bmVyc2hpcF90b2tlbnNfc2VyaWFsaXplKAogICAgICAgICAgICBibG9ja2NoYWluX2Rlc2NyaXB0b3I9YmxvY2tjaGFpbl9kZXNjcmlwdG9yLAogICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkPXZhdWx0X2FjY291bnRfaWQsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMic6IE5vbmUsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF91cGRhdGVfb3duZXJzaGlwX3Rva2Vuc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBibG9ja2NoYWluX2Rlc2NyaXB0b3IsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIGJsb2NrY2hhaW5fZGVzY3JpcHRvciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnYmxvY2tjaGFpbkRlc2NyaXB0b3InLCBibG9ja2NoYWluX2Rlc2NyaXB0b3IpKQogICAgICAgICAgICAKICAgICAgICBpZiB2YXVsdF9hY2NvdW50X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCd2YXVsdEFjY291bnRJZCcsIHZhdWx0X2FjY291bnRfaWQpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BVVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9uZnRzL293bmVyc2hpcC90b2tlbnMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgdXBkYXRlX3Rva2VuX293bmVyc2hpcF9zdGF0dXMoCiAgICAgICAgc2VsZiwKICAgICAgICBpZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249Ik5GVCBJRCIpXSwKICAgICAgICB1cGRhdGVfdG9rZW5fb3duZXJzaGlwX3N0YXR1c19kdG86IFVwZGF0ZVRva2VuT3duZXJzaGlwU3RhdHVzRHRvLAogICAgICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLiIpXSA9IE5vbmUsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTm9uZV1dOgogICAgICAgICIiIlVwZGF0ZSB0b2tlbiBvd25lcnNoaXAgc3RhdHVzCgogICAgICAgIFVwZGF0ZXMgdG9rZW4gc3RhdHVzIGZvciBhIHRlbmFudCwgaW4gYWxsIHRlbmFudCB2YXVsdHMuIAoKICAgICAgICA6cGFyYW0gaWQ6IE5GVCBJRCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgaWQ6IHN0cgogICAgICAgIDpwYXJhbSB1cGRhdGVfdG9rZW5fb3duZXJzaGlwX3N0YXR1c19kdG86IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB1cGRhdGVfdG9rZW5fb3duZXJzaGlwX3N0YXR1c19kdG86IFVwZGF0ZVRva2VuT3duZXJzaGlwU3RhdHVzRHRvCiAgICAgICAgOnBhcmFtIHhfZW5kX3VzZXJfd2FsbGV0X2lkOiBVbmlxdWUgSUQgb2YgdGhlIEVuZC1Vc2VyIHdhbGxldCB0byB0aGUgQVBJIHJlcXVlc3QuIFJlcXVpcmVkIGZvciBlbmQtdXNlciB3YWxsZXQgb3BlcmF0aW9ucy4KICAgICAgICA6dHlwZSB4X2VuZF91c2VyX3dhbGxldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InVwZGF0ZV90b2tlbl9vd25lcnNoaXBfc3RhdHVzIiwgcGFyYW1fbmFtZT0iaWQiLCBwYXJhbV92YWx1ZT1pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fdXBkYXRlX3Rva2VuX293bmVyc2hpcF9zdGF0dXNfc2VyaWFsaXplKAogICAgICAgICAgICBpZD1pZCwKICAgICAgICAgICAgdXBkYXRlX3Rva2VuX293bmVyc2hpcF9zdGF0dXNfZHRvPXVwZGF0ZV90b2tlbl9vd25lcnNoaXBfc3RhdHVzX2R0bywKICAgICAgICAgICAgeF9lbmRfdXNlcl93YWxsZXRfaWQ9eF9lbmRfdXNlcl93YWxsZXRfaWQsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6IE5vbmUsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF91cGRhdGVfdG9rZW5fb3duZXJzaGlwX3N0YXR1c19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBpZCwKICAgICAgICB1cGRhdGVfdG9rZW5fb3duZXJzaGlwX3N0YXR1c19kdG8sCiAgICAgICAgeF9lbmRfdXNlcl93YWxsZXRfaWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydpZCddID0gaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgeF9lbmRfdXNlcl93YWxsZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydYLUVuZC1Vc2VyLVdhbGxldC1JZCddID0geF9lbmRfdXNlcl93YWxsZXRfaWQKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHVwZGF0ZV90b2tlbl9vd25lcnNoaXBfc3RhdHVzX2R0byBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gdXBkYXRlX3Rva2VuX293bmVyc2hpcF9zdGF0dXNfZHRvCgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BVVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9uZnRzL293bmVyc2hpcC90b2tlbnMve2lkfS9zdGF0dXMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgdXBkYXRlX3Rva2Vuc19vd25lcnNoaXBfc3BhbSgKICAgICAgICBzZWxmLAogICAgICAgIHRva2VuX293bmVyc2hpcF9zcGFtX3VwZGF0ZV9wYXlsb2FkOiBMaXN0W1Rva2VuT3duZXJzaGlwU3BhbVVwZGF0ZVBheWxvYWRdLAogICAgICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLiIpXSA9IE5vbmUsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTm9uZV1dOgogICAgICAgICIiIlVwZGF0ZSB0b2tlbnMgb3duZXJzaGlwIHNwYW0gcHJvcGVydHkKCiAgICAgICAgVXBkYXRlcyB0b2tlbnMgc3BhbSBwcm9wZXJ0eSBmb3IgYSB0ZW5hbnQncyB0b2tlbiBvd25lcnNoaXBzLCBpbiBhbGwgdGVuYW50IHZhdWx0cy4KCiAgICAgICAgOnBhcmFtIHRva2VuX293bmVyc2hpcF9zcGFtX3VwZGF0ZV9wYXlsb2FkOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdG9rZW5fb3duZXJzaGlwX3NwYW1fdXBkYXRlX3BheWxvYWQ6IExpc3RbVG9rZW5Pd25lcnNoaXBTcGFtVXBkYXRlUGF5bG9hZF0KICAgICAgICA6cGFyYW0geF9lbmRfdXNlcl93YWxsZXRfaWQ6IFVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLgogICAgICAgIDp0eXBlIHhfZW5kX3VzZXJfd2FsbGV0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl91cGRhdGVfdG9rZW5zX293bmVyc2hpcF9zcGFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgdG9rZW5fb3duZXJzaGlwX3NwYW1fdXBkYXRlX3BheWxvYWQ9dG9rZW5fb3duZXJzaGlwX3NwYW1fdXBkYXRlX3BheWxvYWQsCiAgICAgICAgICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkPXhfZW5kX3VzZXJfd2FsbGV0X2lkLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiBOb25lLAogICAgICAgICAgICAnNDAwJzogTm9uZSwKICAgICAgICAgICAgJzQwNCc6IE5vbmUsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF91cGRhdGVfdG9rZW5zX293bmVyc2hpcF9zcGFtX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHRva2VuX293bmVyc2hpcF9zcGFtX3VwZGF0ZV9wYXlsb2FkLAogICAgICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgICAgICdUb2tlbk93bmVyc2hpcFNwYW1VcGRhdGVQYXlsb2FkJzogJycsCiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIHhfZW5kX3VzZXJfd2FsbGV0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snWC1FbmQtVXNlci1XYWxsZXQtSWQnXSA9IHhfZW5kX3VzZXJfd2FsbGV0X2lkCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiB0b2tlbl9vd25lcnNoaXBfc3BhbV91cGRhdGVfcGF5bG9hZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gdG9rZW5fb3duZXJzaGlwX3NwYW1fdXBkYXRlX3BheWxvYWQKCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUFVUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL25mdHMvb3duZXJzaGlwL3Rva2Vucy9zcGFtJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHVwZGF0ZV90b2tlbnNfb3duZXJzaGlwX3N0YXR1cygKICAgICAgICBzZWxmLAogICAgICAgIHRva2VuX293bmVyc2hpcF9zdGF0dXNfdXBkYXRlX3BheWxvYWQ6IExpc3RbVG9rZW5Pd25lcnNoaXBTdGF0dXNVcGRhdGVQYXlsb2FkXSwKICAgICAgICB4X2VuZF91c2VyX3dhbGxldF9pZDogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJVbmlxdWUgSUQgb2YgdGhlIEVuZC1Vc2VyIHdhbGxldCB0byB0aGUgQVBJIHJlcXVlc3QuIFJlcXVpcmVkIGZvciBlbmQtdXNlciB3YWxsZXQgb3BlcmF0aW9ucy4iKV0gPSBOb25lLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW05vbmVdXToKICAgICAgICAiIiJVcGRhdGUgdG9rZW5zIG93bmVyc2hpcCBzdGF0dXMKCiAgICAgICAgVXBkYXRlcyB0b2tlbnMgc3RhdHVzIGZvciBhIHRlbmFudCwgaW4gYWxsIHRlbmFudCB2YXVsdHMuCgogICAgICAgIDpwYXJhbSB0b2tlbl9vd25lcnNoaXBfc3RhdHVzX3VwZGF0ZV9wYXlsb2FkOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdG9rZW5fb3duZXJzaGlwX3N0YXR1c191cGRhdGVfcGF5bG9hZDogTGlzdFtUb2tlbk93bmVyc2hpcFN0YXR1c1VwZGF0ZVBheWxvYWRdCiAgICAgICAgOnBhcmFtIHhfZW5kX3VzZXJfd2FsbGV0X2lkOiBVbmlxdWUgSUQgb2YgdGhlIEVuZC1Vc2VyIHdhbGxldCB0byB0aGUgQVBJIHJlcXVlc3QuIFJlcXVpcmVkIGZvciBlbmQtdXNlciB3YWxsZXQgb3BlcmF0aW9ucy4KICAgICAgICA6dHlwZSB4X2VuZF91c2VyX3dhbGxldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fdXBkYXRlX3Rva2Vuc19vd25lcnNoaXBfc3RhdHVzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgdG9rZW5fb3duZXJzaGlwX3N0YXR1c191cGRhdGVfcGF5bG9hZD10b2tlbl9vd25lcnNoaXBfc3RhdHVzX3VwZGF0ZV9wYXlsb2FkLAogICAgICAgICAgICB4X2VuZF91c2VyX3dhbGxldF9pZD14X2VuZF91c2VyX3dhbGxldF9pZCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogTm9uZSwKICAgICAgICAgICAgJzQwMCc6IE5vbmUsCiAgICAgICAgICAgICc0MDQnOiBOb25lLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfdXBkYXRlX3Rva2Vuc19vd25lcnNoaXBfc3RhdHVzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHRva2VuX293bmVyc2hpcF9zdGF0dXNfdXBkYXRlX3BheWxvYWQsCiAgICAgICAgeF9lbmRfdXNlcl93YWxsZXRfaWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICAgICAgJ1Rva2VuT3duZXJzaGlwU3RhdHVzVXBkYXRlUGF5bG9hZCc6ICcnLAogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiB4X2VuZF91c2VyX3dhbGxldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ1gtRW5kLVVzZXItV2FsbGV0LUlkJ10gPSB4X2VuZF91c2VyX3dhbGxldF9pZAogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgdG9rZW5fb3duZXJzaGlwX3N0YXR1c191cGRhdGVfcGF5bG9hZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gdG9rZW5fb3duZXJzaGlwX3N0YXR1c191cGRhdGVfcGF5bG9hZAoKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQVVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbmZ0cy9vd25lcnNoaXAvdG9rZW5zL3N0YXR1cycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoK \ No newline at end of file diff --git a/fireblocks/api/off_exchanges_api.py b/fireblocks/api/off_exchanges_api.py index 953b0437..e03d18b9 100644 --- a/fireblocks/api/off_exchanges_api.py +++ b/fireblocks/api/off_exchanges_api.py @@ -1,752 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing import Optional -from typing_extensions import Annotated -from fireblocks.models.add_collateral_request_body import AddCollateralRequestBody -from fireblocks.models.create_transaction_response import CreateTransactionResponse -from fireblocks.models.exchange_account import ExchangeAccount -from fireblocks.models.exchange_settlement_transactions_response import ExchangeSettlementTransactionsResponse -from fireblocks.models.remove_collateral_request_body import RemoveCollateralRequestBody -from fireblocks.models.settlement_request_body import SettlementRequestBody -from fireblocks.models.settlement_response import SettlementResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class OffExchangesApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def add_off_exchange( - self, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - add_collateral_request_body: Optional[AddCollateralRequestBody] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[CreateTransactionResponse]]: - """Add Collateral - - Add collateral and create deposit request. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange).
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param add_collateral_request_body: - :type add_collateral_request_body: AddCollateralRequestBody - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._add_off_exchange_serialize( - idempotency_key=idempotency_key, - add_collateral_request_body=add_collateral_request_body, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "CreateTransactionResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _add_off_exchange_serialize( - self, - idempotency_key, - add_collateral_request_body, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if add_collateral_request_body is not None: - _body_params = add_collateral_request_body - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/off_exchange/add', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_off_exchange_collateral_accounts( - self, - main_exchange_account_id: Annotated[StrictStr, Field(description="The id of the main exchange account for which the requested collateral account is associated with")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ExchangeAccount]]: - """Find a specific collateral exchange account - - Returns a collateral account by mainExchangeAccountId. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange).
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param main_exchange_account_id: The id of the main exchange account for which the requested collateral account is associated with (required) - :type main_exchange_account_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_off_exchange_collateral_accounts", param_name="main_exchange_account_id", param_value=main_exchange_account_id) - - _param = self._get_off_exchange_collateral_accounts_serialize( - main_exchange_account_id=main_exchange_account_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ExchangeAccount", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_off_exchange_collateral_accounts_serialize( - self, - main_exchange_account_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if main_exchange_account_id is not None: - _path_params['mainExchangeAccountId'] = main_exchange_account_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/off_exchange/collateral_accounts/{mainExchangeAccountId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_off_exchange_settlement_transactions( - self, - main_exchange_account_id: StrictStr, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ExchangeSettlementTransactionsResponse]]: - """Get Settlements Transactions - - Get settlements transactions from exchange. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange).
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param main_exchange_account_id: (required) - :type main_exchange_account_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_off_exchange_settlement_transactions", param_name="main_exchange_account_id", param_value=main_exchange_account_id) - - _param = self._get_off_exchange_settlement_transactions_serialize( - main_exchange_account_id=main_exchange_account_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ExchangeSettlementTransactionsResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_off_exchange_settlement_transactions_serialize( - self, - main_exchange_account_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if main_exchange_account_id is not None: - - _query_params.append(('mainExchangeAccountId', main_exchange_account_id)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/off_exchange/settlements/transactions', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def remove_off_exchange( - self, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - remove_collateral_request_body: Optional[RemoveCollateralRequestBody] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[CreateTransactionResponse]]: - """Remove Collateral - - Remove collateral, create withdraw request. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange).
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param remove_collateral_request_body: - :type remove_collateral_request_body: RemoveCollateralRequestBody - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._remove_off_exchange_serialize( - idempotency_key=idempotency_key, - remove_collateral_request_body=remove_collateral_request_body, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "CreateTransactionResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _remove_off_exchange_serialize( - self, - idempotency_key, - remove_collateral_request_body, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if remove_collateral_request_body is not None: - _body_params = remove_collateral_request_body - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/off_exchange/remove', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def settle_off_exchange_trades( - self, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - settlement_request_body: Optional[SettlementRequestBody] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SettlementResponse]]: - """Create Settlement for a Trader - - Create settlement for a trader. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange).
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param settlement_request_body: - :type settlement_request_body: SettlementRequestBody - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._settle_off_exchange_trades_serialize( - idempotency_key=idempotency_key, - settlement_request_body=settlement_request_body, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "SettlementResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _settle_off_exchange_trades_serialize( - self, - idempotency_key, - settlement_request_body, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if settlement_request_body is not None: - _body_params = settlement_request_body - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/off_exchange/settlements/trader', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkX2NvbGxhdGVyYWxfcmVxdWVzdF9ib2R5IGltcG9ydCBBZGRDb2xsYXRlcmFsUmVxdWVzdEJvZHkKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfdHJhbnNhY3Rpb25fcmVzcG9uc2UgaW1wb3J0IENyZWF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGNoYW5nZV9hY2NvdW50IGltcG9ydCBFeGNoYW5nZUFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGNoYW5nZV9zZXR0bGVtZW50X3RyYW5zYWN0aW9uc19yZXNwb25zZSBpbXBvcnQgRXhjaGFuZ2VTZXR0bGVtZW50VHJhbnNhY3Rpb25zUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZW1vdmVfY29sbGF0ZXJhbF9yZXF1ZXN0X2JvZHkgaW1wb3J0IFJlbW92ZUNvbGxhdGVyYWxSZXF1ZXN0Qm9keQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldHRsZW1lbnRfcmVxdWVzdF9ib2R5IGltcG9ydCBTZXR0bGVtZW50UmVxdWVzdEJvZHkKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXR0bGVtZW50X3Jlc3BvbnNlIGltcG9ydCBTZXR0bGVtZW50UmVzcG9uc2UKCmZyb20gZmlyZWJsb2Nrcy5hcGlfY2xpZW50IGltcG9ydCBBcGlDbGllbnQsIFJlcXVlc3RTZXJpYWxpemVkCmZyb20gZmlyZWJsb2Nrcy5hcGlfcmVzcG9uc2UgaW1wb3J0IEFwaVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5yZXN0IGltcG9ydCBSRVNUUmVzcG9uc2VUeXBlCmZyb20gZmlyZWJsb2Nrcy52YWxpZGF0aW9uX3V0aWxzIGltcG9ydCB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nCgoKY2xhc3MgT2ZmRXhjaGFuZ2VzQXBpOgogICAgIiIiTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvcgogICAgUmVmOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gKCiAgICBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgYXBpX2NsaWVudD1Ob25lKSAtPiBOb25lOgogICAgICAgIGlmIGFwaV9jbGllbnQgaXMgTm9uZToKICAgICAgICAgICAgYXBpX2NsaWVudCA9IEFwaUNsaWVudC5nZXRfZGVmYXVsdCgpCiAgICAgICAgc2VsZi5hcGlfY2xpZW50ID0gYXBpX2NsaWVudAoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGFkZF9vZmZfZXhjaGFuZ2UoCiAgICAgICAgc2VsZiwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgYWRkX2NvbGxhdGVyYWxfcmVxdWVzdF9ib2R5OiBPcHRpb25hbFtBZGRDb2xsYXRlcmFsUmVxdWVzdEJvZHldID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0NyZWF0ZVRyYW5zYWN0aW9uUmVzcG9uc2VdXToKICAgICAgICAiIiJBZGQgQ29sbGF0ZXJhbAoKICAgICAgICBBZGQgY29sbGF0ZXJhbCBhbmQgY3JlYXRlIGRlcG9zaXQgcmVxdWVzdC4gTGVhcm4gbW9yZSBhYm91dCBGaXJlYmxvY2tzIE9mZiBFeGNoYW5nZSBpbiB0aGUgZm9sbG93aW5nIFtndWlkZV0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL2RvY3Mvb2ZmLWV4Y2hhbmdlKS4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIGFkZF9jb2xsYXRlcmFsX3JlcXVlc3RfYm9keToKICAgICAgICA6dHlwZSBhZGRfY29sbGF0ZXJhbF9yZXF1ZXN0X2JvZHk6IEFkZENvbGxhdGVyYWxSZXF1ZXN0Qm9keQogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2FkZF9vZmZfZXhjaGFuZ2Vfc2VyaWFsaXplKAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBhZGRfY29sbGF0ZXJhbF9yZXF1ZXN0X2JvZHk9YWRkX2NvbGxhdGVyYWxfcmVxdWVzdF9ib2R5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiQ3JlYXRlVHJhbnNhY3Rpb25SZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2FkZF9vZmZfZXhjaGFuZ2Vfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIGFkZF9jb2xsYXRlcmFsX3JlcXVlc3RfYm9keSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgYWRkX2NvbGxhdGVyYWxfcmVxdWVzdF9ib2R5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBhZGRfY29sbGF0ZXJhbF9yZXF1ZXN0X2JvZHkKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL29mZl9leGNoYW5nZS9hZGQnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X29mZl9leGNoYW5nZV9jb2xsYXRlcmFsX2FjY291bnRzKAogICAgICAgIHNlbGYsCiAgICAgICAgbWFpbl9leGNoYW5nZV9hY2NvdW50X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGlkIG9mIHRoZSBtYWluIGV4Y2hhbmdlIGFjY291bnQgZm9yIHdoaWNoIHRoZSByZXF1ZXN0ZWQgY29sbGF0ZXJhbCBhY2NvdW50IGlzIGFzc29jaWF0ZWQgd2l0aCIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0V4Y2hhbmdlQWNjb3VudF1dOgogICAgICAgICIiIkZpbmQgYSBzcGVjaWZpYyBjb2xsYXRlcmFsIGV4Y2hhbmdlIGFjY291bnQKCiAgICAgICAgUmV0dXJucyBhIGNvbGxhdGVyYWwgYWNjb3VudCBieSBtYWluRXhjaGFuZ2VBY2NvdW50SWQuIExlYXJuIG1vcmUgYWJvdXQgRmlyZWJsb2NrcyBPZmYgRXhjaGFuZ2UgaW4gdGhlIGZvbGxvd2luZyBbZ3VpZGVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL29mZi1leGNoYW5nZSkuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgogICAgICAgIDpwYXJhbSBtYWluX2V4Y2hhbmdlX2FjY291bnRfaWQ6IFRoZSBpZCBvZiB0aGUgbWFpbiBleGNoYW5nZSBhY2NvdW50IGZvciB3aGljaCB0aGUgcmVxdWVzdGVkIGNvbGxhdGVyYWwgYWNjb3VudCBpcyBhc3NvY2lhdGVkIHdpdGggKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIG1haW5fZXhjaGFuZ2VfYWNjb3VudF9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9vZmZfZXhjaGFuZ2VfY29sbGF0ZXJhbF9hY2NvdW50cyIsIHBhcmFtX25hbWU9Im1haW5fZXhjaGFuZ2VfYWNjb3VudF9pZCIsIHBhcmFtX3ZhbHVlPW1haW5fZXhjaGFuZ2VfYWNjb3VudF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X29mZl9leGNoYW5nZV9jb2xsYXRlcmFsX2FjY291bnRzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWFpbl9leGNoYW5nZV9hY2NvdW50X2lkPW1haW5fZXhjaGFuZ2VfYWNjb3VudF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkV4Y2hhbmdlQWNjb3VudCIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9vZmZfZXhjaGFuZ2VfY29sbGF0ZXJhbF9hY2NvdW50c19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBtYWluX2V4Y2hhbmdlX2FjY291bnRfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIG1haW5fZXhjaGFuZ2VfYWNjb3VudF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydtYWluRXhjaGFuZ2VBY2NvdW50SWQnXSA9IG1haW5fZXhjaGFuZ2VfYWNjb3VudF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL29mZl9leGNoYW5nZS9jb2xsYXRlcmFsX2FjY291bnRzL3ttYWluRXhjaGFuZ2VBY2NvdW50SWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9vZmZfZXhjaGFuZ2Vfc2V0dGxlbWVudF90cmFuc2FjdGlvbnMoCiAgICAgICAgc2VsZiwKICAgICAgICBtYWluX2V4Y2hhbmdlX2FjY291bnRfaWQ6IFN0cmljdFN0ciwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0V4Y2hhbmdlU2V0dGxlbWVudFRyYW5zYWN0aW9uc1Jlc3BvbnNlXV06CiAgICAgICAgIiIiR2V0IFNldHRsZW1lbnRzIFRyYW5zYWN0aW9ucwoKICAgICAgICBHZXQgc2V0dGxlbWVudHMgdHJhbnNhY3Rpb25zIGZyb20gZXhjaGFuZ2UuIExlYXJuIG1vcmUgYWJvdXQgRmlyZWJsb2NrcyBPZmYgRXhjaGFuZ2UgaW4gdGhlIGZvbGxvd2luZyBbZ3VpZGVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL29mZi1leGNoYW5nZSkuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgogICAgICAgIDpwYXJhbSBtYWluX2V4Y2hhbmdlX2FjY291bnRfaWQ6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBtYWluX2V4Y2hhbmdlX2FjY291bnRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfb2ZmX2V4Y2hhbmdlX3NldHRsZW1lbnRfdHJhbnNhY3Rpb25zIiwgcGFyYW1fbmFtZT0ibWFpbl9leGNoYW5nZV9hY2NvdW50X2lkIiwgcGFyYW1fdmFsdWU9bWFpbl9leGNoYW5nZV9hY2NvdW50X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfb2ZmX2V4Y2hhbmdlX3NldHRsZW1lbnRfdHJhbnNhY3Rpb25zX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWFpbl9leGNoYW5nZV9hY2NvdW50X2lkPW1haW5fZXhjaGFuZ2VfYWNjb3VudF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkV4Y2hhbmdlU2V0dGxlbWVudFRyYW5zYWN0aW9uc1Jlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X29mZl9leGNoYW5nZV9zZXR0bGVtZW50X3RyYW5zYWN0aW9uc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBtYWluX2V4Y2hhbmdlX2FjY291bnRfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIG1haW5fZXhjaGFuZ2VfYWNjb3VudF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnbWFpbkV4Y2hhbmdlQWNjb3VudElkJywgbWFpbl9leGNoYW5nZV9hY2NvdW50X2lkKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvb2ZmX2V4Y2hhbmdlL3NldHRsZW1lbnRzL3RyYW5zYWN0aW9ucycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiByZW1vdmVfb2ZmX2V4Y2hhbmdlKAogICAgICAgIHNlbGYsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIHJlbW92ZV9jb2xsYXRlcmFsX3JlcXVlc3RfYm9keTogT3B0aW9uYWxbUmVtb3ZlQ29sbGF0ZXJhbFJlcXVlc3RCb2R5XSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtDcmVhdGVUcmFuc2FjdGlvblJlc3BvbnNlXV06CiAgICAgICAgIiIiUmVtb3ZlIENvbGxhdGVyYWwKCiAgICAgICAgUmVtb3ZlIGNvbGxhdGVyYWwsIGNyZWF0ZSB3aXRoZHJhdyByZXF1ZXN0LiBMZWFybiBtb3JlIGFib3V0IEZpcmVibG9ja3MgT2ZmIEV4Y2hhbmdlIGluIHRoZSBmb2xsb3dpbmcgW2d1aWRlXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vZG9jcy9vZmYtZXhjaGFuZ2UpLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gcmVtb3ZlX2NvbGxhdGVyYWxfcmVxdWVzdF9ib2R5OgogICAgICAgIDp0eXBlIHJlbW92ZV9jb2xsYXRlcmFsX3JlcXVlc3RfYm9keTogUmVtb3ZlQ29sbGF0ZXJhbFJlcXVlc3RCb2R5CiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fcmVtb3ZlX29mZl9leGNoYW5nZV9zZXJpYWxpemUoCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIHJlbW92ZV9jb2xsYXRlcmFsX3JlcXVlc3RfYm9keT1yZW1vdmVfY29sbGF0ZXJhbF9yZXF1ZXN0X2JvZHksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJDcmVhdGVUcmFuc2FjdGlvblJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfcmVtb3ZlX29mZl9leGNoYW5nZV9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgcmVtb3ZlX2NvbGxhdGVyYWxfcmVxdWVzdF9ib2R5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiByZW1vdmVfY29sbGF0ZXJhbF9yZXF1ZXN0X2JvZHkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHJlbW92ZV9jb2xsYXRlcmFsX3JlcXVlc3RfYm9keQoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvb2ZmX2V4Y2hhbmdlL3JlbW92ZScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBzZXR0bGVfb2ZmX2V4Y2hhbmdlX3RyYWRlcygKICAgICAgICBzZWxmLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBzZXR0bGVtZW50X3JlcXVlc3RfYm9keTogT3B0aW9uYWxbU2V0dGxlbWVudFJlcXVlc3RCb2R5XSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtTZXR0bGVtZW50UmVzcG9uc2VdXToKICAgICAgICAiIiJDcmVhdGUgU2V0dGxlbWVudCBmb3IgYSBUcmFkZXIKCiAgICAgICAgQ3JlYXRlIHNldHRsZW1lbnQgZm9yIGEgdHJhZGVyLiBMZWFybiBtb3JlIGFib3V0IEZpcmVibG9ja3MgT2ZmIEV4Y2hhbmdlIGluIHRoZSBmb2xsb3dpbmcgW2d1aWRlXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vZG9jcy9vZmYtZXhjaGFuZ2UpLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gc2V0dGxlbWVudF9yZXF1ZXN0X2JvZHk6CiAgICAgICAgOnR5cGUgc2V0dGxlbWVudF9yZXF1ZXN0X2JvZHk6IFNldHRsZW1lbnRSZXF1ZXN0Qm9keQogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3NldHRsZV9vZmZfZXhjaGFuZ2VfdHJhZGVzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgc2V0dGxlbWVudF9yZXF1ZXN0X2JvZHk9c2V0dGxlbWVudF9yZXF1ZXN0X2JvZHksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMSc6ICJTZXR0bGVtZW50UmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9zZXR0bGVfb2ZmX2V4Y2hhbmdlX3RyYWRlc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgc2V0dGxlbWVudF9yZXF1ZXN0X2JvZHksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHNldHRsZW1lbnRfcmVxdWVzdF9ib2R5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBzZXR0bGVtZW50X3JlcXVlc3RfYm9keQoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvb2ZmX2V4Y2hhbmdlL3NldHRsZW1lbnRzL3RyYWRlcicsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoK \ No newline at end of file diff --git a/fireblocks/api/onchain_data_api.py b/fireblocks/api/onchain_data_api.py index a1c2a4c2..a194ed11 100644 --- a/fireblocks/api/onchain_data_api.py +++ b/fireblocks/api/onchain_data_api.py @@ -1,1469 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from datetime import datetime -from pydantic import Field, StrictStr, field_validator -from typing import Dict, Optional -from typing_extensions import Annotated -from fireblocks.models.access_registry_current_state_response import AccessRegistryCurrentStateResponse -from fireblocks.models.access_registry_summary_response import AccessRegistrySummaryResponse -from fireblocks.models.address_balance_paged_response import AddressBalancePagedResponse -from fireblocks.models.balance_history_paged_response import BalanceHistoryPagedResponse -from fireblocks.models.onchain_transactions_paged_response import OnchainTransactionsPagedResponse -from fireblocks.models.role_details import RoleDetails -from fireblocks.models.token_contract_summary_response import TokenContractSummaryResponse -from fireblocks.models.total_supply_paged_response import TotalSupplyPagedResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class OnchainDataApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def get_access_registry_current_state( - self, - base_asset_id: Annotated[StrictStr, Field(description="The blockchain base assetId")], - access_registry_address: Annotated[StrictStr, Field(description="The access registry address")], - page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor to get the next page\"")] = None, - page_size: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Number of items per page (max 100), requesting more then 100 will return 100 items")] = None, - sort_by: Annotated[Optional[StrictStr], Field(description="Sorting field (enum).")] = None, - order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering (default DESC)")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[AccessRegistryCurrentStateResponse]]: - """Get the current state of addresses in an access registry - - Returns the current state of addresses in the specified access registry. Only addresses that are currently active (added but not removed) are included. - - :param base_asset_id: The blockchain base assetId (required) - :type base_asset_id: str - :param access_registry_address: The access registry address (required) - :type access_registry_address: str - :param page_cursor: Page cursor to get the next page\" - :type page_cursor: str - :param page_size: Number of items per page (max 100), requesting more then 100 will return 100 items - :type page_size: int - :param sort_by: Sorting field (enum). - :type sort_by: str - :param order: ASC / DESC ordering (default DESC) - :type order: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_access_registry_current_state", param_name="base_asset_id", param_value=base_asset_id) - validate_not_empty_string(function_name="get_access_registry_current_state", param_name="access_registry_address", param_value=access_registry_address) - - _param = self._get_access_registry_current_state_serialize( - base_asset_id=base_asset_id, - access_registry_address=access_registry_address, - page_cursor=page_cursor, - page_size=page_size, - sort_by=sort_by, - order=order, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "AccessRegistryCurrentStateResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_access_registry_current_state_serialize( - self, - base_asset_id, - access_registry_address, - page_cursor, - page_size, - sort_by, - order, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if base_asset_id is not None: - _path_params['baseAssetId'] = base_asset_id - if access_registry_address is not None: - _path_params['accessRegistryAddress'] = access_registry_address - # process the query parameters - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if sort_by is not None: - - _query_params.append(('sortBy', sort_by)) - - if order is not None: - - _query_params.append(('order', order)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/onchain_data/base_asset_id/{baseAssetId}/access_registry_address/{accessRegistryAddress}/list', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_access_registry_summary( - self, - base_asset_id: Annotated[StrictStr, Field(description="The blockchain base assetId")], - access_registry_address: Annotated[StrictStr, Field(description="The access registry address")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[AccessRegistrySummaryResponse]]: - """Summary of access registry state - - Returns a summary of the current state of the access registry for the specified baseAssetId and accessRegistryAddress. - - :param base_asset_id: The blockchain base assetId (required) - :type base_asset_id: str - :param access_registry_address: The access registry address (required) - :type access_registry_address: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_access_registry_summary", param_name="base_asset_id", param_value=base_asset_id) - validate_not_empty_string(function_name="get_access_registry_summary", param_name="access_registry_address", param_value=access_registry_address) - - _param = self._get_access_registry_summary_serialize( - base_asset_id=base_asset_id, - access_registry_address=access_registry_address, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "AccessRegistrySummaryResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_access_registry_summary_serialize( - self, - base_asset_id, - access_registry_address, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if base_asset_id is not None: - _path_params['baseAssetId'] = base_asset_id - if access_registry_address is not None: - _path_params['accessRegistryAddress'] = access_registry_address - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/onchain_data/base_asset_id/{baseAssetId}/access_registry_address/{accessRegistryAddress}/summary', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_active_roles_for_contract( - self, - base_asset_id: Annotated[StrictStr, Field(description="The blockchain base assetId")], - contract_address: Annotated[StrictStr, Field(description="The contract address")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[Dict[str, RoleDetails]]]: - """List of active roles for a given contract address and base asset ID - - Returns a list of currently active roles for the specified baseAssetId and contractAddress. - - :param base_asset_id: The blockchain base assetId (required) - :type base_asset_id: str - :param contract_address: The contract address (required) - :type contract_address: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_active_roles_for_contract", param_name="base_asset_id", param_value=base_asset_id) - validate_not_empty_string(function_name="get_active_roles_for_contract", param_name="contract_address", param_value=contract_address) - - _param = self._get_active_roles_for_contract_serialize( - base_asset_id=base_asset_id, - contract_address=contract_address, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "Dict[str, RoleDetails]", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_active_roles_for_contract_serialize( - self, - base_asset_id, - contract_address, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if base_asset_id is not None: - _path_params['baseAssetId'] = base_asset_id - if contract_address is not None: - _path_params['contractAddress'] = contract_address - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/roles', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_contract_balance_history( - self, - base_asset_id: Annotated[StrictStr, Field(description="The blockchain base assetId")], - contract_address: Annotated[StrictStr, Field(description="The contract address")], - account_address: Annotated[StrictStr, Field(description="The account address to get balance history for")], - start_date: Annotated[Optional[datetime], Field(description="Start date of the time range in ISO 8601 format")] = None, - end_date: Annotated[Optional[datetime], Field(description="End date of the time range in ISO 8601 format")] = None, - interval: Annotated[Optional[StrictStr], Field(description="Time interval for grouping data")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor to get the next page\"")] = None, - page_size: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Number of items per page (max 100), requesting more then 100 will return 100 items")] = None, - sort_by: Annotated[Optional[StrictStr], Field(description="Sorting field (enum). Sorting only supported by 'blockTimestamp'")] = None, - order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering (default DESC)")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[BalanceHistoryPagedResponse]]: - """Get historical balance data for a specific account in a contract - - Returns the paginated balance history of the specified account in a contract with optional date range and interval filtering. - - :param base_asset_id: The blockchain base assetId (required) - :type base_asset_id: str - :param contract_address: The contract address (required) - :type contract_address: str - :param account_address: The account address to get balance history for (required) - :type account_address: str - :param start_date: Start date of the time range in ISO 8601 format - :type start_date: datetime - :param end_date: End date of the time range in ISO 8601 format - :type end_date: datetime - :param interval: Time interval for grouping data - :type interval: str - :param page_cursor: Page cursor to get the next page\" - :type page_cursor: str - :param page_size: Number of items per page (max 100), requesting more then 100 will return 100 items - :type page_size: int - :param sort_by: Sorting field (enum). Sorting only supported by 'blockTimestamp' - :type sort_by: str - :param order: ASC / DESC ordering (default DESC) - :type order: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_contract_balance_history", param_name="base_asset_id", param_value=base_asset_id) - validate_not_empty_string(function_name="get_contract_balance_history", param_name="contract_address", param_value=contract_address) - validate_not_empty_string(function_name="get_contract_balance_history", param_name="account_address", param_value=account_address) - - _param = self._get_contract_balance_history_serialize( - base_asset_id=base_asset_id, - contract_address=contract_address, - account_address=account_address, - start_date=start_date, - end_date=end_date, - interval=interval, - page_cursor=page_cursor, - page_size=page_size, - sort_by=sort_by, - order=order, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "BalanceHistoryPagedResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_contract_balance_history_serialize( - self, - base_asset_id, - contract_address, - account_address, - start_date, - end_date, - interval, - page_cursor, - page_size, - sort_by, - order, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if base_asset_id is not None: - _path_params['baseAssetId'] = base_asset_id - if contract_address is not None: - _path_params['contractAddress'] = contract_address - if account_address is not None: - _path_params['accountAddress'] = account_address - # process the query parameters - if start_date is not None: - if isinstance(start_date, datetime): - _query_params.append( - ( - 'startDate', - start_date.strftime( - self.api_client.configuration.datetime_format - ) - ) - ) - else: - _query_params.append(('startDate', start_date)) - - if end_date is not None: - if isinstance(end_date, datetime): - _query_params.append( - ( - 'endDate', - end_date.strftime( - self.api_client.configuration.datetime_format - ) - ) - ) - else: - _query_params.append(('endDate', end_date)) - - if interval is not None: - - _query_params.append(('interval', interval)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if sort_by is not None: - - _query_params.append(('sortBy', sort_by)) - - if order is not None: - - _query_params.append(('order', order)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/account_address/{accountAddress}/balance_history', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_contract_balances_summary( - self, - base_asset_id: Annotated[StrictStr, Field(description="The blockchain base assetId")], - contract_address: Annotated[StrictStr, Field(description="The contract address")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TokenContractSummaryResponse]]: - """Get summary for the token contract - - Returns the total number of unique addresses holding balances and the total supply for the specified contract. - - :param base_asset_id: The blockchain base assetId (required) - :type base_asset_id: str - :param contract_address: The contract address (required) - :type contract_address: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_contract_balances_summary", param_name="base_asset_id", param_value=base_asset_id) - validate_not_empty_string(function_name="get_contract_balances_summary", param_name="contract_address", param_value=contract_address) - - _param = self._get_contract_balances_summary_serialize( - base_asset_id=base_asset_id, - contract_address=contract_address, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TokenContractSummaryResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_contract_balances_summary_serialize( - self, - base_asset_id, - contract_address, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if base_asset_id is not None: - _path_params['baseAssetId'] = base_asset_id - if contract_address is not None: - _path_params['contractAddress'] = contract_address - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/summary', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_contract_total_supply( - self, - base_asset_id: Annotated[StrictStr, Field(description="The blockchain base assetId")], - contract_address: Annotated[StrictStr, Field(description="The contract address")], - start_date: Annotated[Optional[datetime], Field(description="Start date of the time range in ISO 8601 format")] = None, - end_date: Annotated[Optional[datetime], Field(description="End date of the time range in ISO 8601 format")] = None, - interval: Annotated[Optional[StrictStr], Field(description="Time interval for grouping data")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor to get the next page\"")] = None, - page_size: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Number of items per page (max 100), requesting more then 100 will return 100 items")] = None, - sort_by: Annotated[Optional[StrictStr], Field(description="Sorting field (enum). Sorting only supported by 'blockTimestamp'")] = None, - order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering (default DESC)")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TotalSupplyPagedResponse]]: - """Get historical total supply data for a contract - - Returns the paginated total supply history of the specified contract with optional date range and interval filtering. - - :param base_asset_id: The blockchain base assetId (required) - :type base_asset_id: str - :param contract_address: The contract address (required) - :type contract_address: str - :param start_date: Start date of the time range in ISO 8601 format - :type start_date: datetime - :param end_date: End date of the time range in ISO 8601 format - :type end_date: datetime - :param interval: Time interval for grouping data - :type interval: str - :param page_cursor: Page cursor to get the next page\" - :type page_cursor: str - :param page_size: Number of items per page (max 100), requesting more then 100 will return 100 items - :type page_size: int - :param sort_by: Sorting field (enum). Sorting only supported by 'blockTimestamp' - :type sort_by: str - :param order: ASC / DESC ordering (default DESC) - :type order: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_contract_total_supply", param_name="base_asset_id", param_value=base_asset_id) - validate_not_empty_string(function_name="get_contract_total_supply", param_name="contract_address", param_value=contract_address) - - _param = self._get_contract_total_supply_serialize( - base_asset_id=base_asset_id, - contract_address=contract_address, - start_date=start_date, - end_date=end_date, - interval=interval, - page_cursor=page_cursor, - page_size=page_size, - sort_by=sort_by, - order=order, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TotalSupplyPagedResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_contract_total_supply_serialize( - self, - base_asset_id, - contract_address, - start_date, - end_date, - interval, - page_cursor, - page_size, - sort_by, - order, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if base_asset_id is not None: - _path_params['baseAssetId'] = base_asset_id - if contract_address is not None: - _path_params['contractAddress'] = contract_address - # process the query parameters - if start_date is not None: - if isinstance(start_date, datetime): - _query_params.append( - ( - 'startDate', - start_date.strftime( - self.api_client.configuration.datetime_format - ) - ) - ) - else: - _query_params.append(('startDate', start_date)) - - if end_date is not None: - if isinstance(end_date, datetime): - _query_params.append( - ( - 'endDate', - end_date.strftime( - self.api_client.configuration.datetime_format - ) - ) - ) - else: - _query_params.append(('endDate', end_date)) - - if interval is not None: - - _query_params.append(('interval', interval)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if sort_by is not None: - - _query_params.append(('sortBy', sort_by)) - - if order is not None: - - _query_params.append(('order', order)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/total_supply', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_latest_balances_for_contract( - self, - base_asset_id: Annotated[StrictStr, Field(description="The blockchain base assetId")], - contract_address: Annotated[StrictStr, Field(description="The contract address")], - account_address: Annotated[Optional[StrictStr], Field(description="Optional filter to get balance for a specific account address")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor to get the next page\"")] = None, - page_size: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Number of items per page (max 100), requesting more then 100 will return 100 items")] = None, - sort_by: Annotated[Optional[StrictStr], Field(description="Sorting field for balances")] = None, - order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering (default DESC)")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[AddressBalancePagedResponse]]: - """Get latest balances for all addresses holding tokens from a contract - - Returns the latest balance for each unique address with support for numeric balance sorting. The `prev` cursor is reserved for future support. - - :param base_asset_id: The blockchain base assetId (required) - :type base_asset_id: str - :param contract_address: The contract address (required) - :type contract_address: str - :param account_address: Optional filter to get balance for a specific account address - :type account_address: str - :param page_cursor: Page cursor to get the next page\" - :type page_cursor: str - :param page_size: Number of items per page (max 100), requesting more then 100 will return 100 items - :type page_size: int - :param sort_by: Sorting field for balances - :type sort_by: str - :param order: ASC / DESC ordering (default DESC) - :type order: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_latest_balances_for_contract", param_name="base_asset_id", param_value=base_asset_id) - validate_not_empty_string(function_name="get_latest_balances_for_contract", param_name="contract_address", param_value=contract_address) - - _param = self._get_latest_balances_for_contract_serialize( - base_asset_id=base_asset_id, - contract_address=contract_address, - account_address=account_address, - page_cursor=page_cursor, - page_size=page_size, - sort_by=sort_by, - order=order, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "AddressBalancePagedResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_latest_balances_for_contract_serialize( - self, - base_asset_id, - contract_address, - account_address, - page_cursor, - page_size, - sort_by, - order, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if base_asset_id is not None: - _path_params['baseAssetId'] = base_asset_id - if contract_address is not None: - _path_params['contractAddress'] = contract_address - # process the query parameters - if account_address is not None: - - _query_params.append(('accountAddress', account_address)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if sort_by is not None: - - _query_params.append(('sortBy', sort_by)) - - if order is not None: - - _query_params.append(('order', order)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/balances', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_onchain_transactions( - self, - base_asset_id: Annotated[StrictStr, Field(description="The blockchain base assetId")], - contract_address: Annotated[StrictStr, Field(description="The contract address")], - start_date: Annotated[Optional[datetime], Field(description="Start date of the time range in ISO 8601 format")] = None, - end_date: Annotated[Optional[datetime], Field(description="End date of the time range in ISO 8601 format")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor to get the next page\"")] = None, - page_size: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Number of items per page (max 100), requesting more then 100 will return 100 items")] = None, - sort_by: Annotated[Optional[StrictStr], Field(description="Sorting field (enum).")] = None, - order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering (default DESC)")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[OnchainTransactionsPagedResponse]]: - """Fetch onchain transactions for a contract - - Returns a paginated list of onchain transactions for the specified contract address and base asset ID, optionally filtered by date range. - - :param base_asset_id: The blockchain base assetId (required) - :type base_asset_id: str - :param contract_address: The contract address (required) - :type contract_address: str - :param start_date: Start date of the time range in ISO 8601 format - :type start_date: datetime - :param end_date: End date of the time range in ISO 8601 format - :type end_date: datetime - :param page_cursor: Page cursor to get the next page\" - :type page_cursor: str - :param page_size: Number of items per page (max 100), requesting more then 100 will return 100 items - :type page_size: int - :param sort_by: Sorting field (enum). - :type sort_by: str - :param order: ASC / DESC ordering (default DESC) - :type order: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_onchain_transactions", param_name="base_asset_id", param_value=base_asset_id) - validate_not_empty_string(function_name="get_onchain_transactions", param_name="contract_address", param_value=contract_address) - - _param = self._get_onchain_transactions_serialize( - base_asset_id=base_asset_id, - contract_address=contract_address, - start_date=start_date, - end_date=end_date, - page_cursor=page_cursor, - page_size=page_size, - sort_by=sort_by, - order=order, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "OnchainTransactionsPagedResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_onchain_transactions_serialize( - self, - base_asset_id, - contract_address, - start_date, - end_date, - page_cursor, - page_size, - sort_by, - order, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if base_asset_id is not None: - _path_params['baseAssetId'] = base_asset_id - if contract_address is not None: - _path_params['contractAddress'] = contract_address - # process the query parameters - if start_date is not None: - if isinstance(start_date, datetime): - _query_params.append( - ( - 'startDate', - start_date.strftime( - self.api_client.configuration.datetime_format - ) - ) - ) - else: - _query_params.append(('startDate', start_date)) - - if end_date is not None: - if isinstance(end_date, datetime): - _query_params.append( - ( - 'endDate', - end_date.strftime( - self.api_client.configuration.datetime_format - ) - ) - ) - else: - _query_params.append(('endDate', end_date)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if sort_by is not None: - - _query_params.append(('sortBy', sort_by)) - - if order is not None: - - _query_params.append(('order', order)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/transactions', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0ciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBEaWN0LCBPcHRpb25hbApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2Nlc3NfcmVnaXN0cnlfY3VycmVudF9zdGF0ZV9yZXNwb25zZSBpbXBvcnQgQWNjZXNzUmVnaXN0cnlDdXJyZW50U3RhdGVSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY2Vzc19yZWdpc3RyeV9zdW1tYXJ5X3Jlc3BvbnNlIGltcG9ydCBBY2Nlc3NSZWdpc3RyeVN1bW1hcnlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZHJlc3NfYmFsYW5jZV9wYWdlZF9yZXNwb25zZSBpbXBvcnQgQWRkcmVzc0JhbGFuY2VQYWdlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYmFsYW5jZV9oaXN0b3J5X3BhZ2VkX3Jlc3BvbnNlIGltcG9ydCBCYWxhbmNlSGlzdG9yeVBhZ2VkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5vbmNoYWluX3RyYW5zYWN0aW9uc19wYWdlZF9yZXNwb25zZSBpbXBvcnQgT25jaGFpblRyYW5zYWN0aW9uc1BhZ2VkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yb2xlX2RldGFpbHMgaW1wb3J0IFJvbGVEZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fY29udHJhY3Rfc3VtbWFyeV9yZXNwb25zZSBpbXBvcnQgVG9rZW5Db250cmFjdFN1bW1hcnlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRvdGFsX3N1cHBseV9wYWdlZF9yZXNwb25zZSBpbXBvcnQgVG90YWxTdXBwbHlQYWdlZFJlc3BvbnNlCgpmcm9tIGZpcmVibG9ja3MuYXBpX2NsaWVudCBpbXBvcnQgQXBpQ2xpZW50LCBSZXF1ZXN0U2VyaWFsaXplZApmcm9tIGZpcmVibG9ja3MuYXBpX3Jlc3BvbnNlIGltcG9ydCBBcGlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MucmVzdCBpbXBvcnQgUkVTVFJlc3BvbnNlVHlwZQpmcm9tIGZpcmVibG9ja3MudmFsaWRhdGlvbl91dGlscyBpbXBvcnQgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZwoKCmNsYXNzIE9uY2hhaW5EYXRhQXBpOgogICAgIiIiTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvcgogICAgUmVmOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gKCiAgICBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgYXBpX2NsaWVudD1Ob25lKSAtPiBOb25lOgogICAgICAgIGlmIGFwaV9jbGllbnQgaXMgTm9uZToKICAgICAgICAgICAgYXBpX2NsaWVudCA9IEFwaUNsaWVudC5nZXRfZGVmYXVsdCgpCiAgICAgICAgc2VsZi5hcGlfY2xpZW50ID0gYXBpX2NsaWVudAoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9hY2Nlc3NfcmVnaXN0cnlfY3VycmVudF9zdGF0ZSgKICAgICAgICBzZWxmLAogICAgICAgIGJhc2VfYXNzZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQiKV0sCiAgICAgICAgYWNjZXNzX3JlZ2lzdHJ5X2FkZHJlc3M6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYWNjZXNzIHJlZ2lzdHJ5IGFkZHJlc3MiKV0sCiAgICAgICAgcGFnZV9jdXJzb3I6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iUGFnZSBjdXJzb3IgdG8gZ2V0IHRoZSBuZXh0IHBhZ2VcIiIpXSA9IE5vbmUsCiAgICAgICAgcGFnZV9zaXplOiBBbm5vdGF0ZWRbT3B0aW9uYWxbQW5ub3RhdGVkW2ludCwgRmllbGQobGU9MTAwLCBzdHJpY3Q9VHJ1ZSwgZ2U9MSldXSwgRmllbGQoZGVzY3JpcHRpb249Ik51bWJlciBvZiBpdGVtcyBwZXIgcGFnZSAobWF4IDEwMCksIHJlcXVlc3RpbmcgbW9yZSB0aGVuIDEwMCB3aWxsIHJldHVybiAxMDAgaXRlbXMiKV0gPSBOb25lLAogICAgICAgIHNvcnRfYnk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iU29ydGluZyBmaWVsZCAoZW51bSkuIildID0gTm9uZSwKICAgICAgICBvcmRlcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBU0MgLyBERVNDIG9yZGVyaW5nIChkZWZhdWx0IERFU0MpIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0FjY2Vzc1JlZ2lzdHJ5Q3VycmVudFN0YXRlUmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYWRkcmVzc2VzIGluIGFuIGFjY2VzcyByZWdpc3RyeQoKICAgICAgICBSZXR1cm5zIHRoZSBjdXJyZW50IHN0YXRlIG9mIGFkZHJlc3NlcyBpbiB0aGUgc3BlY2lmaWVkIGFjY2VzcyByZWdpc3RyeS4gT25seSBhZGRyZXNzZXMgdGhhdCBhcmUgY3VycmVudGx5IGFjdGl2ZSAoYWRkZWQgYnV0IG5vdCByZW1vdmVkKSBhcmUgaW5jbHVkZWQuCgogICAgICAgIDpwYXJhbSBiYXNlX2Fzc2V0X2lkOiBUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGJhc2VfYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBhY2Nlc3NfcmVnaXN0cnlfYWRkcmVzczogVGhlIGFjY2VzcyByZWdpc3RyeSBhZGRyZXNzIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhY2Nlc3NfcmVnaXN0cnlfYWRkcmVzczogc3RyCiAgICAgICAgOnBhcmFtIHBhZ2VfY3Vyc29yOiBQYWdlIGN1cnNvciB0byBnZXQgdGhlIG5leHQgcGFnZVwiCiAgICAgICAgOnR5cGUgcGFnZV9jdXJzb3I6IHN0cgogICAgICAgIDpwYXJhbSBwYWdlX3NpemU6IE51bWJlciBvZiBpdGVtcyBwZXIgcGFnZSAobWF4IDEwMCksIHJlcXVlc3RpbmcgbW9yZSB0aGVuIDEwMCB3aWxsIHJldHVybiAxMDAgaXRlbXMKICAgICAgICA6dHlwZSBwYWdlX3NpemU6IGludAogICAgICAgIDpwYXJhbSBzb3J0X2J5OiBTb3J0aW5nIGZpZWxkIChlbnVtKS4KICAgICAgICA6dHlwZSBzb3J0X2J5OiBzdHIKICAgICAgICA6cGFyYW0gb3JkZXI6IEFTQyAvIERFU0Mgb3JkZXJpbmcgKGRlZmF1bHQgREVTQykKICAgICAgICA6dHlwZSBvcmRlcjogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9hY2Nlc3NfcmVnaXN0cnlfY3VycmVudF9zdGF0ZSIsIHBhcmFtX25hbWU9ImJhc2VfYXNzZXRfaWQiLCBwYXJhbV92YWx1ZT1iYXNlX2Fzc2V0X2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2FjY2Vzc19yZWdpc3RyeV9jdXJyZW50X3N0YXRlIiwgcGFyYW1fbmFtZT0iYWNjZXNzX3JlZ2lzdHJ5X2FkZHJlc3MiLCBwYXJhbV92YWx1ZT1hY2Nlc3NfcmVnaXN0cnlfYWRkcmVzcykKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2FjY2Vzc19yZWdpc3RyeV9jdXJyZW50X3N0YXRlX3NlcmlhbGl6ZSgKICAgICAgICAgICAgYmFzZV9hc3NldF9pZD1iYXNlX2Fzc2V0X2lkLAogICAgICAgICAgICBhY2Nlc3NfcmVnaXN0cnlfYWRkcmVzcz1hY2Nlc3NfcmVnaXN0cnlfYWRkcmVzcywKICAgICAgICAgICAgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsCiAgICAgICAgICAgIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsCiAgICAgICAgICAgIHNvcnRfYnk9c29ydF9ieSwKICAgICAgICAgICAgb3JkZXI9b3JkZXIsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJBY2Nlc3NSZWdpc3RyeUN1cnJlbnRTdGF0ZVJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2FjY2Vzc19yZWdpc3RyeV9jdXJyZW50X3N0YXRlX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGJhc2VfYXNzZXRfaWQsCiAgICAgICAgYWNjZXNzX3JlZ2lzdHJ5X2FkZHJlc3MsCiAgICAgICAgcGFnZV9jdXJzb3IsCiAgICAgICAgcGFnZV9zaXplLAogICAgICAgIHNvcnRfYnksCiAgICAgICAgb3JkZXIsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGJhc2VfYXNzZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYmFzZUFzc2V0SWQnXSA9IGJhc2VfYXNzZXRfaWQKICAgICAgICBpZiBhY2Nlc3NfcmVnaXN0cnlfYWRkcmVzcyBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydhY2Nlc3NSZWdpc3RyeUFkZHJlc3MnXSA9IGFjY2Vzc19yZWdpc3RyeV9hZGRyZXNzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgcGFnZV9jdXJzb3IgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VDdXJzb3InLCBwYWdlX2N1cnNvcikpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2Vfc2l6ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZVNpemUnLCBwYWdlX3NpemUpKQogICAgICAgICAgICAKICAgICAgICBpZiBzb3J0X2J5IGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdzb3J0QnknLCBzb3J0X2J5KSkKICAgICAgICAgICAgCiAgICAgICAgaWYgb3JkZXIgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ29yZGVyJywgb3JkZXIpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9vbmNoYWluX2RhdGEvYmFzZV9hc3NldF9pZC97YmFzZUFzc2V0SWR9L2FjY2Vzc19yZWdpc3RyeV9hZGRyZXNzL3thY2Nlc3NSZWdpc3RyeUFkZHJlc3N9L2xpc3QnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X2FjY2Vzc19yZWdpc3RyeV9zdW1tYXJ5KAogICAgICAgIHNlbGYsCiAgICAgICAgYmFzZV9hc3NldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBibG9ja2NoYWluIGJhc2UgYXNzZXRJZCIpXSwKICAgICAgICBhY2Nlc3NfcmVnaXN0cnlfYWRkcmVzczogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBhY2Nlc3MgcmVnaXN0cnkgYWRkcmVzcyIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0FjY2Vzc1JlZ2lzdHJ5U3VtbWFyeVJlc3BvbnNlXV06CiAgICAgICAgIiIiU3VtbWFyeSBvZiBhY2Nlc3MgcmVnaXN0cnkgc3RhdGUKCiAgICAgICAgUmV0dXJucyBhIHN1bW1hcnkgb2YgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGFjY2VzcyByZWdpc3RyeSBmb3IgdGhlIHNwZWNpZmllZCBiYXNlQXNzZXRJZCBhbmQgYWNjZXNzUmVnaXN0cnlBZGRyZXNzLgoKICAgICAgICA6cGFyYW0gYmFzZV9hc3NldF9pZDogVGhlIGJsb2NrY2hhaW4gYmFzZSBhc3NldElkIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBiYXNlX2Fzc2V0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gYWNjZXNzX3JlZ2lzdHJ5X2FkZHJlc3M6IFRoZSBhY2Nlc3MgcmVnaXN0cnkgYWRkcmVzcyAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYWNjZXNzX3JlZ2lzdHJ5X2FkZHJlc3M6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfYWNjZXNzX3JlZ2lzdHJ5X3N1bW1hcnkiLCBwYXJhbV9uYW1lPSJiYXNlX2Fzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YmFzZV9hc3NldF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9hY2Nlc3NfcmVnaXN0cnlfc3VtbWFyeSIsIHBhcmFtX25hbWU9ImFjY2Vzc19yZWdpc3RyeV9hZGRyZXNzIiwgcGFyYW1fdmFsdWU9YWNjZXNzX3JlZ2lzdHJ5X2FkZHJlc3MpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9hY2Nlc3NfcmVnaXN0cnlfc3VtbWFyeV9zZXJpYWxpemUoCiAgICAgICAgICAgIGJhc2VfYXNzZXRfaWQ9YmFzZV9hc3NldF9pZCwKICAgICAgICAgICAgYWNjZXNzX3JlZ2lzdHJ5X2FkZHJlc3M9YWNjZXNzX3JlZ2lzdHJ5X2FkZHJlc3MsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJBY2Nlc3NSZWdpc3RyeVN1bW1hcnlSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9hY2Nlc3NfcmVnaXN0cnlfc3VtbWFyeV9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBiYXNlX2Fzc2V0X2lkLAogICAgICAgIGFjY2Vzc19yZWdpc3RyeV9hZGRyZXNzLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBiYXNlX2Fzc2V0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Jhc2VBc3NldElkJ10gPSBiYXNlX2Fzc2V0X2lkCiAgICAgICAgaWYgYWNjZXNzX3JlZ2lzdHJ5X2FkZHJlc3MgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYWNjZXNzUmVnaXN0cnlBZGRyZXNzJ10gPSBhY2Nlc3NfcmVnaXN0cnlfYWRkcmVzcwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL29uY2hhaW5fZGF0YS9iYXNlX2Fzc2V0X2lkL3tiYXNlQXNzZXRJZH0vYWNjZXNzX3JlZ2lzdHJ5X2FkZHJlc3Mve2FjY2Vzc1JlZ2lzdHJ5QWRkcmVzc30vc3VtbWFyeScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfYWN0aXZlX3JvbGVzX2Zvcl9jb250cmFjdCgKICAgICAgICBzZWxmLAogICAgICAgIGJhc2VfYXNzZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQiKV0sCiAgICAgICAgY29udHJhY3RfYWRkcmVzczogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBjb250cmFjdCBhZGRyZXNzIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbRGljdFtzdHIsIFJvbGVEZXRhaWxzXV1dOgogICAgICAgICIiIkxpc3Qgb2YgYWN0aXZlIHJvbGVzIGZvciBhIGdpdmVuIGNvbnRyYWN0IGFkZHJlc3MgYW5kIGJhc2UgYXNzZXQgSUQKCiAgICAgICAgUmV0dXJucyBhIGxpc3Qgb2YgY3VycmVudGx5IGFjdGl2ZSByb2xlcyBmb3IgdGhlIHNwZWNpZmllZCBiYXNlQXNzZXRJZCBhbmQgY29udHJhY3RBZGRyZXNzLgoKICAgICAgICA6cGFyYW0gYmFzZV9hc3NldF9pZDogVGhlIGJsb2NrY2hhaW4gYmFzZSBhc3NldElkIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBiYXNlX2Fzc2V0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gY29udHJhY3RfYWRkcmVzczogVGhlIGNvbnRyYWN0IGFkZHJlc3MgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGNvbnRyYWN0X2FkZHJlc3M6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfYWN0aXZlX3JvbGVzX2Zvcl9jb250cmFjdCIsIHBhcmFtX25hbWU9ImJhc2VfYXNzZXRfaWQiLCBwYXJhbV92YWx1ZT1iYXNlX2Fzc2V0X2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2FjdGl2ZV9yb2xlc19mb3JfY29udHJhY3QiLCBwYXJhbV9uYW1lPSJjb250cmFjdF9hZGRyZXNzIiwgcGFyYW1fdmFsdWU9Y29udHJhY3RfYWRkcmVzcykKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2FjdGl2ZV9yb2xlc19mb3JfY29udHJhY3Rfc2VyaWFsaXplKAogICAgICAgICAgICBiYXNlX2Fzc2V0X2lkPWJhc2VfYXNzZXRfaWQsCiAgICAgICAgICAgIGNvbnRyYWN0X2FkZHJlc3M9Y29udHJhY3RfYWRkcmVzcywKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkRpY3Rbc3RyLCBSb2xlRGV0YWlsc10iLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfYWN0aXZlX3JvbGVzX2Zvcl9jb250cmFjdF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBiYXNlX2Fzc2V0X2lkLAogICAgICAgIGNvbnRyYWN0X2FkZHJlc3MsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGJhc2VfYXNzZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYmFzZUFzc2V0SWQnXSA9IGJhc2VfYXNzZXRfaWQKICAgICAgICBpZiBjb250cmFjdF9hZGRyZXNzIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2NvbnRyYWN0QWRkcmVzcyddID0gY29udHJhY3RfYWRkcmVzcwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL29uY2hhaW5fZGF0YS9iYXNlX2Fzc2V0X2lkL3tiYXNlQXNzZXRJZH0vY29udHJhY3RfYWRkcmVzcy97Y29udHJhY3RBZGRyZXNzfS9yb2xlcycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfY29udHJhY3RfYmFsYW5jZV9oaXN0b3J5KAogICAgICAgIHNlbGYsCiAgICAgICAgYmFzZV9hc3NldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBibG9ja2NoYWluIGJhc2UgYXNzZXRJZCIpXSwKICAgICAgICBjb250cmFjdF9hZGRyZXNzOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNvbnRyYWN0IGFkZHJlc3MiKV0sCiAgICAgICAgYWNjb3VudF9hZGRyZXNzOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGFjY291bnQgYWRkcmVzcyB0byBnZXQgYmFsYW5jZSBoaXN0b3J5IGZvciIpXSwKICAgICAgICBzdGFydF9kYXRlOiBBbm5vdGF0ZWRbT3B0aW9uYWxbZGF0ZXRpbWVdLCBGaWVsZChkZXNjcmlwdGlvbj0iU3RhcnQgZGF0ZSBvZiB0aGUgdGltZSByYW5nZSBpbiBJU08gODYwMSBmb3JtYXQiKV0gPSBOb25lLAogICAgICAgIGVuZF9kYXRlOiBBbm5vdGF0ZWRbT3B0aW9uYWxbZGF0ZXRpbWVdLCBGaWVsZChkZXNjcmlwdGlvbj0iRW5kIGRhdGUgb2YgdGhlIHRpbWUgcmFuZ2UgaW4gSVNPIDg2MDEgZm9ybWF0IildID0gTm9uZSwKICAgICAgICBpbnRlcnZhbDogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJUaW1lIGludGVydmFsIGZvciBncm91cGluZyBkYXRhIildID0gTm9uZSwKICAgICAgICBwYWdlX2N1cnNvcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJQYWdlIGN1cnNvciB0byBnZXQgdGhlIG5leHQgcGFnZVwiIildID0gTm9uZSwKICAgICAgICBwYWdlX3NpemU6IEFubm90YXRlZFtPcHRpb25hbFtBbm5vdGF0ZWRbaW50LCBGaWVsZChsZT0xMDAsIHN0cmljdD1UcnVlLCBnZT0xKV1dLCBGaWVsZChkZXNjcmlwdGlvbj0iTnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlIChtYXggMTAwKSwgcmVxdWVzdGluZyBtb3JlIHRoZW4gMTAwIHdpbGwgcmV0dXJuIDEwMCBpdGVtcyIpXSA9IE5vbmUsCiAgICAgICAgc29ydF9ieTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJTb3J0aW5nIGZpZWxkIChlbnVtKS4gU29ydGluZyBvbmx5IHN1cHBvcnRlZCBieSAnYmxvY2tUaW1lc3RhbXAnIildID0gTm9uZSwKICAgICAgICBvcmRlcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBU0MgLyBERVNDIG9yZGVyaW5nIChkZWZhdWx0IERFU0MpIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0JhbGFuY2VIaXN0b3J5UGFnZWRSZXNwb25zZV1dOgogICAgICAgICIiIkdldCBoaXN0b3JpY2FsIGJhbGFuY2UgZGF0YSBmb3IgYSBzcGVjaWZpYyBhY2NvdW50IGluIGEgY29udHJhY3QKCiAgICAgICAgUmV0dXJucyB0aGUgcGFnaW5hdGVkIGJhbGFuY2UgaGlzdG9yeSBvZiB0aGUgc3BlY2lmaWVkIGFjY291bnQgaW4gYSBjb250cmFjdCB3aXRoIG9wdGlvbmFsIGRhdGUgcmFuZ2UgYW5kIGludGVydmFsIGZpbHRlcmluZy4KCiAgICAgICAgOnBhcmFtIGJhc2VfYXNzZXRfaWQ6IFRoZSBibG9ja2NoYWluIGJhc2UgYXNzZXRJZCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYmFzZV9hc3NldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGNvbnRyYWN0X2FkZHJlc3M6IFRoZSBjb250cmFjdCBhZGRyZXNzIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjb250cmFjdF9hZGRyZXNzOiBzdHIKICAgICAgICA6cGFyYW0gYWNjb3VudF9hZGRyZXNzOiBUaGUgYWNjb3VudCBhZGRyZXNzIHRvIGdldCBiYWxhbmNlIGhpc3RvcnkgZm9yIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhY2NvdW50X2FkZHJlc3M6IHN0cgogICAgICAgIDpwYXJhbSBzdGFydF9kYXRlOiBTdGFydCBkYXRlIG9mIHRoZSB0aW1lIHJhbmdlIGluIElTTyA4NjAxIGZvcm1hdAogICAgICAgIDp0eXBlIHN0YXJ0X2RhdGU6IGRhdGV0aW1lCiAgICAgICAgOnBhcmFtIGVuZF9kYXRlOiBFbmQgZGF0ZSBvZiB0aGUgdGltZSByYW5nZSBpbiBJU08gODYwMSBmb3JtYXQKICAgICAgICA6dHlwZSBlbmRfZGF0ZTogZGF0ZXRpbWUKICAgICAgICA6cGFyYW0gaW50ZXJ2YWw6IFRpbWUgaW50ZXJ2YWwgZm9yIGdyb3VwaW5nIGRhdGEKICAgICAgICA6dHlwZSBpbnRlcnZhbDogc3RyCiAgICAgICAgOnBhcmFtIHBhZ2VfY3Vyc29yOiBQYWdlIGN1cnNvciB0byBnZXQgdGhlIG5leHQgcGFnZVwiCiAgICAgICAgOnR5cGUgcGFnZV9jdXJzb3I6IHN0cgogICAgICAgIDpwYXJhbSBwYWdlX3NpemU6IE51bWJlciBvZiBpdGVtcyBwZXIgcGFnZSAobWF4IDEwMCksIHJlcXVlc3RpbmcgbW9yZSB0aGVuIDEwMCB3aWxsIHJldHVybiAxMDAgaXRlbXMKICAgICAgICA6dHlwZSBwYWdlX3NpemU6IGludAogICAgICAgIDpwYXJhbSBzb3J0X2J5OiBTb3J0aW5nIGZpZWxkIChlbnVtKS4gU29ydGluZyBvbmx5IHN1cHBvcnRlZCBieSAnYmxvY2tUaW1lc3RhbXAnCiAgICAgICAgOnR5cGUgc29ydF9ieTogc3RyCiAgICAgICAgOnBhcmFtIG9yZGVyOiBBU0MgLyBERVNDIG9yZGVyaW5nIChkZWZhdWx0IERFU0MpCiAgICAgICAgOnR5cGUgb3JkZXI6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfY29udHJhY3RfYmFsYW5jZV9oaXN0b3J5IiwgcGFyYW1fbmFtZT0iYmFzZV9hc3NldF9pZCIsIHBhcmFtX3ZhbHVlPWJhc2VfYXNzZXRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfY29udHJhY3RfYmFsYW5jZV9oaXN0b3J5IiwgcGFyYW1fbmFtZT0iY29udHJhY3RfYWRkcmVzcyIsIHBhcmFtX3ZhbHVlPWNvbnRyYWN0X2FkZHJlc3MpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfY29udHJhY3RfYmFsYW5jZV9oaXN0b3J5IiwgcGFyYW1fbmFtZT0iYWNjb3VudF9hZGRyZXNzIiwgcGFyYW1fdmFsdWU9YWNjb3VudF9hZGRyZXNzKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfY29udHJhY3RfYmFsYW5jZV9oaXN0b3J5X3NlcmlhbGl6ZSgKICAgICAgICAgICAgYmFzZV9hc3NldF9pZD1iYXNlX2Fzc2V0X2lkLAogICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzPWNvbnRyYWN0X2FkZHJlc3MsCiAgICAgICAgICAgIGFjY291bnRfYWRkcmVzcz1hY2NvdW50X2FkZHJlc3MsCiAgICAgICAgICAgIHN0YXJ0X2RhdGU9c3RhcnRfZGF0ZSwKICAgICAgICAgICAgZW5kX2RhdGU9ZW5kX2RhdGUsCiAgICAgICAgICAgIGludGVydmFsPWludGVydmFsLAogICAgICAgICAgICBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwKICAgICAgICAgICAgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwKICAgICAgICAgICAgc29ydF9ieT1zb3J0X2J5LAogICAgICAgICAgICBvcmRlcj1vcmRlciwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkJhbGFuY2VIaXN0b3J5UGFnZWRSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9jb250cmFjdF9iYWxhbmNlX2hpc3Rvcnlfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgYmFzZV9hc3NldF9pZCwKICAgICAgICBjb250cmFjdF9hZGRyZXNzLAogICAgICAgIGFjY291bnRfYWRkcmVzcywKICAgICAgICBzdGFydF9kYXRlLAogICAgICAgIGVuZF9kYXRlLAogICAgICAgIGludGVydmFsLAogICAgICAgIHBhZ2VfY3Vyc29yLAogICAgICAgIHBhZ2Vfc2l6ZSwKICAgICAgICBzb3J0X2J5LAogICAgICAgIG9yZGVyLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBiYXNlX2Fzc2V0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Jhc2VBc3NldElkJ10gPSBiYXNlX2Fzc2V0X2lkCiAgICAgICAgaWYgY29udHJhY3RfYWRkcmVzcyBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydjb250cmFjdEFkZHJlc3MnXSA9IGNvbnRyYWN0X2FkZHJlc3MKICAgICAgICBpZiBhY2NvdW50X2FkZHJlc3MgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYWNjb3VudEFkZHJlc3MnXSA9IGFjY291bnRfYWRkcmVzcwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIHN0YXJ0X2RhdGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc3RhcnRfZGF0ZSwgZGF0ZXRpbWUpOgogICAgICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoCiAgICAgICAgICAgICAgICAgICAgKAogICAgICAgICAgICAgICAgICAgICAgICAnc3RhcnREYXRlJywKICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfZGF0ZS5zdHJmdGltZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5jb25maWd1cmF0aW9uLmRhdGV0aW1lX2Zvcm1hdAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdzdGFydERhdGUnLCBzdGFydF9kYXRlKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgZW5kX2RhdGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZW5kX2RhdGUsIGRhdGV0aW1lKToKICAgICAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKAogICAgICAgICAgICAgICAgICAgICgKICAgICAgICAgICAgICAgICAgICAgICAgJ2VuZERhdGUnLAogICAgICAgICAgICAgICAgICAgICAgICBlbmRfZGF0ZS5zdHJmdGltZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5jb25maWd1cmF0aW9uLmRhdGV0aW1lX2Zvcm1hdAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdlbmREYXRlJywgZW5kX2RhdGUpKQogICAgICAgICAgICAKICAgICAgICBpZiBpbnRlcnZhbCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnaW50ZXJ2YWwnLCBpbnRlcnZhbCkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2VfY3Vyc29yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlQ3Vyc29yJywgcGFnZV9jdXJzb3IpKQogICAgICAgICAgICAKICAgICAgICBpZiBwYWdlX3NpemUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VTaXplJywgcGFnZV9zaXplKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgc29ydF9ieSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnc29ydEJ5Jywgc29ydF9ieSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIG9yZGVyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdvcmRlcicsIG9yZGVyKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvb25jaGFpbl9kYXRhL2Jhc2VfYXNzZXRfaWQve2Jhc2VBc3NldElkfS9jb250cmFjdF9hZGRyZXNzL3tjb250cmFjdEFkZHJlc3N9L2FjY291bnRfYWRkcmVzcy97YWNjb3VudEFkZHJlc3N9L2JhbGFuY2VfaGlzdG9yeScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfY29udHJhY3RfYmFsYW5jZXNfc3VtbWFyeSgKICAgICAgICBzZWxmLAogICAgICAgIGJhc2VfYXNzZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQiKV0sCiAgICAgICAgY29udHJhY3RfYWRkcmVzczogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBjb250cmFjdCBhZGRyZXNzIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVG9rZW5Db250cmFjdFN1bW1hcnlSZXNwb25zZV1dOgogICAgICAgICIiIkdldCBzdW1tYXJ5IGZvciB0aGUgdG9rZW4gY29udHJhY3QKCiAgICAgICAgUmV0dXJucyB0aGUgdG90YWwgbnVtYmVyIG9mIHVuaXF1ZSBhZGRyZXNzZXMgaG9sZGluZyBiYWxhbmNlcyBhbmQgdGhlIHRvdGFsIHN1cHBseSBmb3IgdGhlIHNwZWNpZmllZCBjb250cmFjdC4KCiAgICAgICAgOnBhcmFtIGJhc2VfYXNzZXRfaWQ6IFRoZSBibG9ja2NoYWluIGJhc2UgYXNzZXRJZCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYmFzZV9hc3NldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGNvbnRyYWN0X2FkZHJlc3M6IFRoZSBjb250cmFjdCBhZGRyZXNzIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjb250cmFjdF9hZGRyZXNzOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2NvbnRyYWN0X2JhbGFuY2VzX3N1bW1hcnkiLCBwYXJhbV9uYW1lPSJiYXNlX2Fzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YmFzZV9hc3NldF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9jb250cmFjdF9iYWxhbmNlc19zdW1tYXJ5IiwgcGFyYW1fbmFtZT0iY29udHJhY3RfYWRkcmVzcyIsIHBhcmFtX3ZhbHVlPWNvbnRyYWN0X2FkZHJlc3MpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9jb250cmFjdF9iYWxhbmNlc19zdW1tYXJ5X3NlcmlhbGl6ZSgKICAgICAgICAgICAgYmFzZV9hc3NldF9pZD1iYXNlX2Fzc2V0X2lkLAogICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzPWNvbnRyYWN0X2FkZHJlc3MsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJUb2tlbkNvbnRyYWN0U3VtbWFyeVJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2NvbnRyYWN0X2JhbGFuY2VzX3N1bW1hcnlfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgYmFzZV9hc3NldF9pZCwKICAgICAgICBjb250cmFjdF9hZGRyZXNzLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBiYXNlX2Fzc2V0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Jhc2VBc3NldElkJ10gPSBiYXNlX2Fzc2V0X2lkCiAgICAgICAgaWYgY29udHJhY3RfYWRkcmVzcyBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydjb250cmFjdEFkZHJlc3MnXSA9IGNvbnRyYWN0X2FkZHJlc3MKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9vbmNoYWluX2RhdGEvYmFzZV9hc3NldF9pZC97YmFzZUFzc2V0SWR9L2NvbnRyYWN0X2FkZHJlc3Mve2NvbnRyYWN0QWRkcmVzc30vc3VtbWFyeScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfY29udHJhY3RfdG90YWxfc3VwcGx5KAogICAgICAgIHNlbGYsCiAgICAgICAgYmFzZV9hc3NldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBibG9ja2NoYWluIGJhc2UgYXNzZXRJZCIpXSwKICAgICAgICBjb250cmFjdF9hZGRyZXNzOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNvbnRyYWN0IGFkZHJlc3MiKV0sCiAgICAgICAgc3RhcnRfZGF0ZTogQW5ub3RhdGVkW09wdGlvbmFsW2RhdGV0aW1lXSwgRmllbGQoZGVzY3JpcHRpb249IlN0YXJ0IGRhdGUgb2YgdGhlIHRpbWUgcmFuZ2UgaW4gSVNPIDg2MDEgZm9ybWF0IildID0gTm9uZSwKICAgICAgICBlbmRfZGF0ZTogQW5ub3RhdGVkW09wdGlvbmFsW2RhdGV0aW1lXSwgRmllbGQoZGVzY3JpcHRpb249IkVuZCBkYXRlIG9mIHRoZSB0aW1lIHJhbmdlIGluIElTTyA4NjAxIGZvcm1hdCIpXSA9IE5vbmUsCiAgICAgICAgaW50ZXJ2YWw6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iVGltZSBpbnRlcnZhbCBmb3IgZ3JvdXBpbmcgZGF0YSIpXSA9IE5vbmUsCiAgICAgICAgcGFnZV9jdXJzb3I6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iUGFnZSBjdXJzb3IgdG8gZ2V0IHRoZSBuZXh0IHBhZ2VcIiIpXSA9IE5vbmUsCiAgICAgICAgcGFnZV9zaXplOiBBbm5vdGF0ZWRbT3B0aW9uYWxbQW5ub3RhdGVkW2ludCwgRmllbGQobGU9MTAwLCBzdHJpY3Q9VHJ1ZSwgZ2U9MSldXSwgRmllbGQoZGVzY3JpcHRpb249Ik51bWJlciBvZiBpdGVtcyBwZXIgcGFnZSAobWF4IDEwMCksIHJlcXVlc3RpbmcgbW9yZSB0aGVuIDEwMCB3aWxsIHJldHVybiAxMDAgaXRlbXMiKV0gPSBOb25lLAogICAgICAgIHNvcnRfYnk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iU29ydGluZyBmaWVsZCAoZW51bSkuIFNvcnRpbmcgb25seSBzdXBwb3J0ZWQgYnkgJ2Jsb2NrVGltZXN0YW1wJyIpXSA9IE5vbmUsCiAgICAgICAgb3JkZXI6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQVNDIC8gREVTQyBvcmRlcmluZyAoZGVmYXVsdCBERVNDKSIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtUb3RhbFN1cHBseVBhZ2VkUmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgaGlzdG9yaWNhbCB0b3RhbCBzdXBwbHkgZGF0YSBmb3IgYSBjb250cmFjdAoKICAgICAgICBSZXR1cm5zIHRoZSBwYWdpbmF0ZWQgdG90YWwgc3VwcGx5IGhpc3Rvcnkgb2YgdGhlIHNwZWNpZmllZCBjb250cmFjdCB3aXRoIG9wdGlvbmFsIGRhdGUgcmFuZ2UgYW5kIGludGVydmFsIGZpbHRlcmluZy4KCiAgICAgICAgOnBhcmFtIGJhc2VfYXNzZXRfaWQ6IFRoZSBibG9ja2NoYWluIGJhc2UgYXNzZXRJZCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYmFzZV9hc3NldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGNvbnRyYWN0X2FkZHJlc3M6IFRoZSBjb250cmFjdCBhZGRyZXNzIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjb250cmFjdF9hZGRyZXNzOiBzdHIKICAgICAgICA6cGFyYW0gc3RhcnRfZGF0ZTogU3RhcnQgZGF0ZSBvZiB0aGUgdGltZSByYW5nZSBpbiBJU08gODYwMSBmb3JtYXQKICAgICAgICA6dHlwZSBzdGFydF9kYXRlOiBkYXRldGltZQogICAgICAgIDpwYXJhbSBlbmRfZGF0ZTogRW5kIGRhdGUgb2YgdGhlIHRpbWUgcmFuZ2UgaW4gSVNPIDg2MDEgZm9ybWF0CiAgICAgICAgOnR5cGUgZW5kX2RhdGU6IGRhdGV0aW1lCiAgICAgICAgOnBhcmFtIGludGVydmFsOiBUaW1lIGludGVydmFsIGZvciBncm91cGluZyBkYXRhCiAgICAgICAgOnR5cGUgaW50ZXJ2YWw6IHN0cgogICAgICAgIDpwYXJhbSBwYWdlX2N1cnNvcjogUGFnZSBjdXJzb3IgdG8gZ2V0IHRoZSBuZXh0IHBhZ2VcIgogICAgICAgIDp0eXBlIHBhZ2VfY3Vyc29yOiBzdHIKICAgICAgICA6cGFyYW0gcGFnZV9zaXplOiBOdW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UgKG1heCAxMDApLCByZXF1ZXN0aW5nIG1vcmUgdGhlbiAxMDAgd2lsbCByZXR1cm4gMTAwIGl0ZW1zCiAgICAgICAgOnR5cGUgcGFnZV9zaXplOiBpbnQKICAgICAgICA6cGFyYW0gc29ydF9ieTogU29ydGluZyBmaWVsZCAoZW51bSkuIFNvcnRpbmcgb25seSBzdXBwb3J0ZWQgYnkgJ2Jsb2NrVGltZXN0YW1wJwogICAgICAgIDp0eXBlIHNvcnRfYnk6IHN0cgogICAgICAgIDpwYXJhbSBvcmRlcjogQVNDIC8gREVTQyBvcmRlcmluZyAoZGVmYXVsdCBERVNDKQogICAgICAgIDp0eXBlIG9yZGVyOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2NvbnRyYWN0X3RvdGFsX3N1cHBseSIsIHBhcmFtX25hbWU9ImJhc2VfYXNzZXRfaWQiLCBwYXJhbV92YWx1ZT1iYXNlX2Fzc2V0X2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2NvbnRyYWN0X3RvdGFsX3N1cHBseSIsIHBhcmFtX25hbWU9ImNvbnRyYWN0X2FkZHJlc3MiLCBwYXJhbV92YWx1ZT1jb250cmFjdF9hZGRyZXNzKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfY29udHJhY3RfdG90YWxfc3VwcGx5X3NlcmlhbGl6ZSgKICAgICAgICAgICAgYmFzZV9hc3NldF9pZD1iYXNlX2Fzc2V0X2lkLAogICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzPWNvbnRyYWN0X2FkZHJlc3MsCiAgICAgICAgICAgIHN0YXJ0X2RhdGU9c3RhcnRfZGF0ZSwKICAgICAgICAgICAgZW5kX2RhdGU9ZW5kX2RhdGUsCiAgICAgICAgICAgIGludGVydmFsPWludGVydmFsLAogICAgICAgICAgICBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwKICAgICAgICAgICAgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwKICAgICAgICAgICAgc29ydF9ieT1zb3J0X2J5LAogICAgICAgICAgICBvcmRlcj1vcmRlciwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlRvdGFsU3VwcGx5UGFnZWRSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9jb250cmFjdF90b3RhbF9zdXBwbHlfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgYmFzZV9hc3NldF9pZCwKICAgICAgICBjb250cmFjdF9hZGRyZXNzLAogICAgICAgIHN0YXJ0X2RhdGUsCiAgICAgICAgZW5kX2RhdGUsCiAgICAgICAgaW50ZXJ2YWwsCiAgICAgICAgcGFnZV9jdXJzb3IsCiAgICAgICAgcGFnZV9zaXplLAogICAgICAgIHNvcnRfYnksCiAgICAgICAgb3JkZXIsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGJhc2VfYXNzZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYmFzZUFzc2V0SWQnXSA9IGJhc2VfYXNzZXRfaWQKICAgICAgICBpZiBjb250cmFjdF9hZGRyZXNzIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2NvbnRyYWN0QWRkcmVzcyddID0gY29udHJhY3RfYWRkcmVzcwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIHN0YXJ0X2RhdGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc3RhcnRfZGF0ZSwgZGF0ZXRpbWUpOgogICAgICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoCiAgICAgICAgICAgICAgICAgICAgKAogICAgICAgICAgICAgICAgICAgICAgICAnc3RhcnREYXRlJywKICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfZGF0ZS5zdHJmdGltZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5jb25maWd1cmF0aW9uLmRhdGV0aW1lX2Zvcm1hdAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdzdGFydERhdGUnLCBzdGFydF9kYXRlKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgZW5kX2RhdGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZW5kX2RhdGUsIGRhdGV0aW1lKToKICAgICAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKAogICAgICAgICAgICAgICAgICAgICgKICAgICAgICAgICAgICAgICAgICAgICAgJ2VuZERhdGUnLAogICAgICAgICAgICAgICAgICAgICAgICBlbmRfZGF0ZS5zdHJmdGltZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5jb25maWd1cmF0aW9uLmRhdGV0aW1lX2Zvcm1hdAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdlbmREYXRlJywgZW5kX2RhdGUpKQogICAgICAgICAgICAKICAgICAgICBpZiBpbnRlcnZhbCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnaW50ZXJ2YWwnLCBpbnRlcnZhbCkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2VfY3Vyc29yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlQ3Vyc29yJywgcGFnZV9jdXJzb3IpKQogICAgICAgICAgICAKICAgICAgICBpZiBwYWdlX3NpemUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VTaXplJywgcGFnZV9zaXplKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgc29ydF9ieSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnc29ydEJ5Jywgc29ydF9ieSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIG9yZGVyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdvcmRlcicsIG9yZGVyKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvb25jaGFpbl9kYXRhL2Jhc2VfYXNzZXRfaWQve2Jhc2VBc3NldElkfS9jb250cmFjdF9hZGRyZXNzL3tjb250cmFjdEFkZHJlc3N9L3RvdGFsX3N1cHBseScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfbGF0ZXN0X2JhbGFuY2VzX2Zvcl9jb250cmFjdCgKICAgICAgICBzZWxmLAogICAgICAgIGJhc2VfYXNzZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQiKV0sCiAgICAgICAgY29udHJhY3RfYWRkcmVzczogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBjb250cmFjdCBhZGRyZXNzIildLAogICAgICAgIGFjY291bnRfYWRkcmVzczogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJPcHRpb25hbCBmaWx0ZXIgdG8gZ2V0IGJhbGFuY2UgZm9yIGEgc3BlY2lmaWMgYWNjb3VudCBhZGRyZXNzIildID0gTm9uZSwKICAgICAgICBwYWdlX2N1cnNvcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJQYWdlIGN1cnNvciB0byBnZXQgdGhlIG5leHQgcGFnZVwiIildID0gTm9uZSwKICAgICAgICBwYWdlX3NpemU6IEFubm90YXRlZFtPcHRpb25hbFtBbm5vdGF0ZWRbaW50LCBGaWVsZChsZT0xMDAsIHN0cmljdD1UcnVlLCBnZT0xKV1dLCBGaWVsZChkZXNjcmlwdGlvbj0iTnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlIChtYXggMTAwKSwgcmVxdWVzdGluZyBtb3JlIHRoZW4gMTAwIHdpbGwgcmV0dXJuIDEwMCBpdGVtcyIpXSA9IE5vbmUsCiAgICAgICAgc29ydF9ieTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJTb3J0aW5nIGZpZWxkIGZvciBiYWxhbmNlcyIpXSA9IE5vbmUsCiAgICAgICAgb3JkZXI6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQVNDIC8gREVTQyBvcmRlcmluZyAoZGVmYXVsdCBERVNDKSIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtBZGRyZXNzQmFsYW5jZVBhZ2VkUmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgbGF0ZXN0IGJhbGFuY2VzIGZvciBhbGwgYWRkcmVzc2VzIGhvbGRpbmcgdG9rZW5zIGZyb20gYSBjb250cmFjdAoKICAgICAgICBSZXR1cm5zIHRoZSBsYXRlc3QgYmFsYW5jZSBmb3IgZWFjaCB1bmlxdWUgYWRkcmVzcyB3aXRoIHN1cHBvcnQgZm9yIG51bWVyaWMgYmFsYW5jZSBzb3J0aW5nLiBUaGUgYHByZXZgIGN1cnNvciBpcyByZXNlcnZlZCBmb3IgZnV0dXJlIHN1cHBvcnQuCgogICAgICAgIDpwYXJhbSBiYXNlX2Fzc2V0X2lkOiBUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGJhc2VfYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBjb250cmFjdF9hZGRyZXNzOiBUaGUgY29udHJhY3QgYWRkcmVzcyAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY29udHJhY3RfYWRkcmVzczogc3RyCiAgICAgICAgOnBhcmFtIGFjY291bnRfYWRkcmVzczogT3B0aW9uYWwgZmlsdGVyIHRvIGdldCBiYWxhbmNlIGZvciBhIHNwZWNpZmljIGFjY291bnQgYWRkcmVzcwogICAgICAgIDp0eXBlIGFjY291bnRfYWRkcmVzczogc3RyCiAgICAgICAgOnBhcmFtIHBhZ2VfY3Vyc29yOiBQYWdlIGN1cnNvciB0byBnZXQgdGhlIG5leHQgcGFnZVwiCiAgICAgICAgOnR5cGUgcGFnZV9jdXJzb3I6IHN0cgogICAgICAgIDpwYXJhbSBwYWdlX3NpemU6IE51bWJlciBvZiBpdGVtcyBwZXIgcGFnZSAobWF4IDEwMCksIHJlcXVlc3RpbmcgbW9yZSB0aGVuIDEwMCB3aWxsIHJldHVybiAxMDAgaXRlbXMKICAgICAgICA6dHlwZSBwYWdlX3NpemU6IGludAogICAgICAgIDpwYXJhbSBzb3J0X2J5OiBTb3J0aW5nIGZpZWxkIGZvciBiYWxhbmNlcwogICAgICAgIDp0eXBlIHNvcnRfYnk6IHN0cgogICAgICAgIDpwYXJhbSBvcmRlcjogQVNDIC8gREVTQyBvcmRlcmluZyAoZGVmYXVsdCBERVNDKQogICAgICAgIDp0eXBlIG9yZGVyOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2xhdGVzdF9iYWxhbmNlc19mb3JfY29udHJhY3QiLCBwYXJhbV9uYW1lPSJiYXNlX2Fzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YmFzZV9hc3NldF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9sYXRlc3RfYmFsYW5jZXNfZm9yX2NvbnRyYWN0IiwgcGFyYW1fbmFtZT0iY29udHJhY3RfYWRkcmVzcyIsIHBhcmFtX3ZhbHVlPWNvbnRyYWN0X2FkZHJlc3MpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9sYXRlc3RfYmFsYW5jZXNfZm9yX2NvbnRyYWN0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgYmFzZV9hc3NldF9pZD1iYXNlX2Fzc2V0X2lkLAogICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzPWNvbnRyYWN0X2FkZHJlc3MsCiAgICAgICAgICAgIGFjY291bnRfYWRkcmVzcz1hY2NvdW50X2FkZHJlc3MsCiAgICAgICAgICAgIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLAogICAgICAgICAgICBwYWdlX3NpemU9cGFnZV9zaXplLAogICAgICAgICAgICBzb3J0X2J5PXNvcnRfYnksCiAgICAgICAgICAgIG9yZGVyPW9yZGVyLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiQWRkcmVzc0JhbGFuY2VQYWdlZFJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2xhdGVzdF9iYWxhbmNlc19mb3JfY29udHJhY3Rfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgYmFzZV9hc3NldF9pZCwKICAgICAgICBjb250cmFjdF9hZGRyZXNzLAogICAgICAgIGFjY291bnRfYWRkcmVzcywKICAgICAgICBwYWdlX2N1cnNvciwKICAgICAgICBwYWdlX3NpemUsCiAgICAgICAgc29ydF9ieSwKICAgICAgICBvcmRlciwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgYmFzZV9hc3NldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydiYXNlQXNzZXRJZCddID0gYmFzZV9hc3NldF9pZAogICAgICAgIGlmIGNvbnRyYWN0X2FkZHJlc3MgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY29udHJhY3RBZGRyZXNzJ10gPSBjb250cmFjdF9hZGRyZXNzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgYWNjb3VudF9hZGRyZXNzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdhY2NvdW50QWRkcmVzcycsIGFjY291bnRfYWRkcmVzcykpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2VfY3Vyc29yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlQ3Vyc29yJywgcGFnZV9jdXJzb3IpKQogICAgICAgICAgICAKICAgICAgICBpZiBwYWdlX3NpemUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VTaXplJywgcGFnZV9zaXplKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgc29ydF9ieSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnc29ydEJ5Jywgc29ydF9ieSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIG9yZGVyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdvcmRlcicsIG9yZGVyKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvb25jaGFpbl9kYXRhL2Jhc2VfYXNzZXRfaWQve2Jhc2VBc3NldElkfS9jb250cmFjdF9hZGRyZXNzL3tjb250cmFjdEFkZHJlc3N9L2JhbGFuY2VzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9vbmNoYWluX3RyYW5zYWN0aW9ucygKICAgICAgICBzZWxmLAogICAgICAgIGJhc2VfYXNzZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQiKV0sCiAgICAgICAgY29udHJhY3RfYWRkcmVzczogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBjb250cmFjdCBhZGRyZXNzIildLAogICAgICAgIHN0YXJ0X2RhdGU6IEFubm90YXRlZFtPcHRpb25hbFtkYXRldGltZV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJTdGFydCBkYXRlIG9mIHRoZSB0aW1lIHJhbmdlIGluIElTTyA4NjAxIGZvcm1hdCIpXSA9IE5vbmUsCiAgICAgICAgZW5kX2RhdGU6IEFubm90YXRlZFtPcHRpb25hbFtkYXRldGltZV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJFbmQgZGF0ZSBvZiB0aGUgdGltZSByYW5nZSBpbiBJU08gODYwMSBmb3JtYXQiKV0gPSBOb25lLAogICAgICAgIHBhZ2VfY3Vyc29yOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlBhZ2UgY3Vyc29yIHRvIGdldCB0aGUgbmV4dCBwYWdlXCIiKV0gPSBOb25lLAogICAgICAgIHBhZ2Vfc2l6ZTogQW5ub3RhdGVkW09wdGlvbmFsW0Fubm90YXRlZFtpbnQsIEZpZWxkKGxlPTEwMCwgc3RyaWN0PVRydWUsIGdlPTEpXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJOdW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UgKG1heCAxMDApLCByZXF1ZXN0aW5nIG1vcmUgdGhlbiAxMDAgd2lsbCByZXR1cm4gMTAwIGl0ZW1zIildID0gTm9uZSwKICAgICAgICBzb3J0X2J5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlNvcnRpbmcgZmllbGQgKGVudW0pLiIpXSA9IE5vbmUsCiAgICAgICAgb3JkZXI6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQVNDIC8gREVTQyBvcmRlcmluZyAoZGVmYXVsdCBERVNDKSIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtPbmNoYWluVHJhbnNhY3Rpb25zUGFnZWRSZXNwb25zZV1dOgogICAgICAgICIiIkZldGNoIG9uY2hhaW4gdHJhbnNhY3Rpb25zIGZvciBhIGNvbnRyYWN0CgogICAgICAgIFJldHVybnMgYSBwYWdpbmF0ZWQgbGlzdCBvZiBvbmNoYWluIHRyYW5zYWN0aW9ucyBmb3IgdGhlIHNwZWNpZmllZCBjb250cmFjdCBhZGRyZXNzIGFuZCBiYXNlIGFzc2V0IElELCBvcHRpb25hbGx5IGZpbHRlcmVkIGJ5IGRhdGUgcmFuZ2UuCgogICAgICAgIDpwYXJhbSBiYXNlX2Fzc2V0X2lkOiBUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGJhc2VfYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBjb250cmFjdF9hZGRyZXNzOiBUaGUgY29udHJhY3QgYWRkcmVzcyAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY29udHJhY3RfYWRkcmVzczogc3RyCiAgICAgICAgOnBhcmFtIHN0YXJ0X2RhdGU6IFN0YXJ0IGRhdGUgb2YgdGhlIHRpbWUgcmFuZ2UgaW4gSVNPIDg2MDEgZm9ybWF0CiAgICAgICAgOnR5cGUgc3RhcnRfZGF0ZTogZGF0ZXRpbWUKICAgICAgICA6cGFyYW0gZW5kX2RhdGU6IEVuZCBkYXRlIG9mIHRoZSB0aW1lIHJhbmdlIGluIElTTyA4NjAxIGZvcm1hdAogICAgICAgIDp0eXBlIGVuZF9kYXRlOiBkYXRldGltZQogICAgICAgIDpwYXJhbSBwYWdlX2N1cnNvcjogUGFnZSBjdXJzb3IgdG8gZ2V0IHRoZSBuZXh0IHBhZ2VcIgogICAgICAgIDp0eXBlIHBhZ2VfY3Vyc29yOiBzdHIKICAgICAgICA6cGFyYW0gcGFnZV9zaXplOiBOdW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UgKG1heCAxMDApLCByZXF1ZXN0aW5nIG1vcmUgdGhlbiAxMDAgd2lsbCByZXR1cm4gMTAwIGl0ZW1zCiAgICAgICAgOnR5cGUgcGFnZV9zaXplOiBpbnQKICAgICAgICA6cGFyYW0gc29ydF9ieTogU29ydGluZyBmaWVsZCAoZW51bSkuCiAgICAgICAgOnR5cGUgc29ydF9ieTogc3RyCiAgICAgICAgOnBhcmFtIG9yZGVyOiBBU0MgLyBERVNDIG9yZGVyaW5nIChkZWZhdWx0IERFU0MpCiAgICAgICAgOnR5cGUgb3JkZXI6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfb25jaGFpbl90cmFuc2FjdGlvbnMiLCBwYXJhbV9uYW1lPSJiYXNlX2Fzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YmFzZV9hc3NldF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9vbmNoYWluX3RyYW5zYWN0aW9ucyIsIHBhcmFtX25hbWU9ImNvbnRyYWN0X2FkZHJlc3MiLCBwYXJhbV92YWx1ZT1jb250cmFjdF9hZGRyZXNzKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfb25jaGFpbl90cmFuc2FjdGlvbnNfc2VyaWFsaXplKAogICAgICAgICAgICBiYXNlX2Fzc2V0X2lkPWJhc2VfYXNzZXRfaWQsCiAgICAgICAgICAgIGNvbnRyYWN0X2FkZHJlc3M9Y29udHJhY3RfYWRkcmVzcywKICAgICAgICAgICAgc3RhcnRfZGF0ZT1zdGFydF9kYXRlLAogICAgICAgICAgICBlbmRfZGF0ZT1lbmRfZGF0ZSwKICAgICAgICAgICAgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsCiAgICAgICAgICAgIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsCiAgICAgICAgICAgIHNvcnRfYnk9c29ydF9ieSwKICAgICAgICAgICAgb3JkZXI9b3JkZXIsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJPbmNoYWluVHJhbnNhY3Rpb25zUGFnZWRSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9vbmNoYWluX3RyYW5zYWN0aW9uc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBiYXNlX2Fzc2V0X2lkLAogICAgICAgIGNvbnRyYWN0X2FkZHJlc3MsCiAgICAgICAgc3RhcnRfZGF0ZSwKICAgICAgICBlbmRfZGF0ZSwKICAgICAgICBwYWdlX2N1cnNvciwKICAgICAgICBwYWdlX3NpemUsCiAgICAgICAgc29ydF9ieSwKICAgICAgICBvcmRlciwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgYmFzZV9hc3NldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydiYXNlQXNzZXRJZCddID0gYmFzZV9hc3NldF9pZAogICAgICAgIGlmIGNvbnRyYWN0X2FkZHJlc3MgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY29udHJhY3RBZGRyZXNzJ10gPSBjb250cmFjdF9hZGRyZXNzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgc3RhcnRfZGF0ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShzdGFydF9kYXRlLCBkYXRldGltZSk6CiAgICAgICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgKICAgICAgICAgICAgICAgICAgICAoCiAgICAgICAgICAgICAgICAgICAgICAgICdzdGFydERhdGUnLAogICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9kYXRlLnN0cmZ0aW1lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LmNvbmZpZ3VyYXRpb24uZGF0ZXRpbWVfZm9ybWF0CiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3N0YXJ0RGF0ZScsIHN0YXJ0X2RhdGUpKQogICAgICAgICAgICAKICAgICAgICBpZiBlbmRfZGF0ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShlbmRfZGF0ZSwgZGF0ZXRpbWUpOgogICAgICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoCiAgICAgICAgICAgICAgICAgICAgKAogICAgICAgICAgICAgICAgICAgICAgICAnZW5kRGF0ZScsCiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9kYXRlLnN0cmZ0aW1lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LmNvbmZpZ3VyYXRpb24uZGF0ZXRpbWVfZm9ybWF0CiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2VuZERhdGUnLCBlbmRfZGF0ZSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2VfY3Vyc29yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlQ3Vyc29yJywgcGFnZV9jdXJzb3IpKQogICAgICAgICAgICAKICAgICAgICBpZiBwYWdlX3NpemUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VTaXplJywgcGFnZV9zaXplKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgc29ydF9ieSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnc29ydEJ5Jywgc29ydF9ieSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIG9yZGVyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdvcmRlcicsIG9yZGVyKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvb25jaGFpbl9kYXRhL2Jhc2VfYXNzZXRfaWQve2Jhc2VBc3NldElkfS9jb250cmFjdF9hZGRyZXNzL3tjb250cmFjdEFkZHJlc3N9L3RyYW5zYWN0aW9ucycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoK \ No newline at end of file diff --git a/fireblocks/api/ota_beta_api.py b/fireblocks/api/ota_beta_api.py index 0e17017d..9247fd94 100644 --- a/fireblocks/api/ota_beta_api.py +++ b/fireblocks/api/ota_beta_api.py @@ -1,315 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing import Optional -from typing_extensions import Annotated -from fireblocks.models.get_ota_status_response import GetOtaStatusResponse -from fireblocks.models.set_ota_status_request import SetOtaStatusRequest -from fireblocks.models.set_ota_status_response import SetOtaStatusResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class OTABetaApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def get_ota_status( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GetOtaStatusResponse]]: - """Returns current OTA status - - Returns current OTA status - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_ota_status_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GetOtaStatusResponse", - '404': None, - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_ota_status_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/management/ota', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_ota_status( - self, - set_ota_status_request: SetOtaStatusRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SetOtaStatusResponse]]: - """Enable or disable transactions to OTA - - Enable or disable transactions to One Time Addresses (Non Whitelisted addresses). Learn more about [One Time Addresses](https://support.fireblocks.io/hc/en-us/articles/4409104568338-One-Time-Address-OTA-feature) - - :param set_ota_status_request: (required) - :type set_ota_status_request: SetOtaStatusRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._set_ota_status_serialize( - set_ota_status_request=set_ota_status_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '202': "SetOtaStatusResponse", - '400': None, - '409': None, - '500': None, - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_ota_status_serialize( - self, - set_ota_status_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if set_ota_status_request is not None: - _body_params = set_ota_status_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/management/ota', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X290YV9zdGF0dXNfcmVzcG9uc2UgaW1wb3J0IEdldE90YVN0YXR1c1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X290YV9zdGF0dXNfcmVxdWVzdCBpbXBvcnQgU2V0T3RhU3RhdHVzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9vdGFfc3RhdHVzX3Jlc3BvbnNlIGltcG9ydCBTZXRPdGFTdGF0dXNSZXNwb25zZQoKZnJvbSBmaXJlYmxvY2tzLmFwaV9jbGllbnQgaW1wb3J0IEFwaUNsaWVudCwgUmVxdWVzdFNlcmlhbGl6ZWQKZnJvbSBmaXJlYmxvY2tzLmFwaV9yZXNwb25zZSBpbXBvcnQgQXBpUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLnJlc3QgaW1wb3J0IFJFU1RSZXNwb25zZVR5cGUKZnJvbSBmaXJlYmxvY2tzLnZhbGlkYXRpb25fdXRpbHMgaW1wb3J0IHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcKCgpjbGFzcyBPVEFCZXRhQXBpOgogICAgIiIiTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvcgogICAgUmVmOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gKCiAgICBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgYXBpX2NsaWVudD1Ob25lKSAtPiBOb25lOgogICAgICAgIGlmIGFwaV9jbGllbnQgaXMgTm9uZToKICAgICAgICAgICAgYXBpX2NsaWVudCA9IEFwaUNsaWVudC5nZXRfZGVmYXVsdCgpCiAgICAgICAgc2VsZi5hcGlfY2xpZW50ID0gYXBpX2NsaWVudAoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9vdGFfc3RhdHVzKAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtHZXRPdGFTdGF0dXNSZXNwb25zZV1dOgogICAgICAgICIiIlJldHVybnMgY3VycmVudCBPVEEgc3RhdHVzCgogICAgICAgIFJldHVybnMgY3VycmVudCBPVEEgc3RhdHVzCgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9vdGFfc3RhdHVzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkdldE90YVN0YXR1c1Jlc3BvbnNlIiwKICAgICAgICAgICAgJzQwNCc6IE5vbmUsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfb3RhX3N0YXR1c19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbWFuYWdlbWVudC9vdGEnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgc2V0X290YV9zdGF0dXMoCiAgICAgICAgc2VsZiwKICAgICAgICBzZXRfb3RhX3N0YXR1c19yZXF1ZXN0OiBTZXRPdGFTdGF0dXNSZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1NldE90YVN0YXR1c1Jlc3BvbnNlXV06CiAgICAgICAgIiIiRW5hYmxlIG9yIGRpc2FibGUgdHJhbnNhY3Rpb25zIHRvIE9UQQoKICAgICAgICBFbmFibGUgb3IgZGlzYWJsZSB0cmFuc2FjdGlvbnMgdG8gT25lIFRpbWUgQWRkcmVzc2VzIChOb24gV2hpdGVsaXN0ZWQgYWRkcmVzc2VzKS4gTGVhcm4gbW9yZSBhYm91dCBbT25lIFRpbWUgQWRkcmVzc2VzXShodHRwczovL3N1cHBvcnQuZmlyZWJsb2Nrcy5pby9oYy9lbi11cy9hcnRpY2xlcy80NDA5MTA0NTY4MzM4LU9uZS1UaW1lLUFkZHJlc3MtT1RBLWZlYXR1cmUpCgogICAgICAgIDpwYXJhbSBzZXRfb3RhX3N0YXR1c19yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgc2V0X290YV9zdGF0dXNfcmVxdWVzdDogU2V0T3RhU3RhdHVzUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3NldF9vdGFfc3RhdHVzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgc2V0X290YV9zdGF0dXNfcmVxdWVzdD1zZXRfb3RhX3N0YXR1c19yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDInOiAiU2V0T3RhU3RhdHVzUmVzcG9uc2UiLAogICAgICAgICAgICAnNDAwJzogTm9uZSwKICAgICAgICAgICAgJzQwOSc6IE5vbmUsCiAgICAgICAgICAgICc1MDAnOiBOb25lLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfc2V0X290YV9zdGF0dXNfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgc2V0X290YV9zdGF0dXNfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHNldF9vdGFfc3RhdHVzX3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHNldF9vdGFfc3RhdHVzX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQVVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbWFuYWdlbWVudC9vdGEnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCg== \ No newline at end of file diff --git a/fireblocks/api/payments_payout_api.py b/fireblocks/api/payments_payout_api.py index 8e10dd51..74cb5374 100644 --- a/fireblocks/api/payments_payout_api.py +++ b/fireblocks/api/payments_payout_api.py @@ -1,463 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing import Optional -from typing_extensions import Annotated -from fireblocks.models.create_payout_request import CreatePayoutRequest -from fireblocks.models.dispatch_payout_response import DispatchPayoutResponse -from fireblocks.models.payout_response import PayoutResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class PaymentsPayoutApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def create_payout( - self, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - create_payout_request: Optional[CreatePayoutRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[PayoutResponse]]: - """Create a payout instruction set - - **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.

These endpoints are currently in beta and might be subject to changes.

If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.

Create a payout instruction set.
A payout instruction set is a set of instructions for distributing payments from a single payment account to a list of payee accounts.
The instruction set defines:
  • the payment account and its account type (vault, exchange, or fiat).
  • the account type (vault account, exchange account, whitelisted address, network connection, fiat account, or merchant account), the amount, and the asset of payment for each payee account.
Learn more about Fireblocks Payments - Payouts in the following [guide](https://developers.fireblocks.com/docs/create-payouts).
Endpoint Permission: Admin, Non-Signing Admin. - - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param create_payout_request: - :type create_payout_request: CreatePayoutRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_payout_serialize( - idempotency_key=idempotency_key, - create_payout_request=create_payout_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "PayoutResponse", - '400': "ErrorResponse", - '401': "ErrorResponse", - '5XX': "ErrorResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_payout_serialize( - self, - idempotency_key, - create_payout_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_payout_request is not None: - _body_params = create_payout_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/payments/payout', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def execute_payout_action( - self, - payout_id: Annotated[StrictStr, Field(description="the payout id received from the creation of the payout instruction set")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[DispatchPayoutResponse]]: - """Execute a payout instruction set - - **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.

These endpoints are currently in beta and might be subject to changes.

If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.

Execute a payout instruction set.

The instruction set will be verified and executed.
Source locking
If you are executing a payout instruction set from a payment account with an already active payout the active payout will complete before the new payout instruction set can be executed.
You cannot execute the same payout instruction set more than once. - - :param payout_id: the payout id received from the creation of the payout instruction set (required) - :type payout_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="execute_payout_action", param_name="payout_id", param_value=payout_id) - - _param = self._execute_payout_action_serialize( - payout_id=payout_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "DispatchPayoutResponse", - '400': "ErrorResponse", - '401': "ErrorResponse", - '5XX': "ErrorResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _execute_payout_action_serialize( - self, - payout_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if payout_id is not None: - _path_params['payoutId'] = payout_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/payments/payout/{payoutId}/actions/execute', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_payout( - self, - payout_id: Annotated[StrictStr, Field(description="the payout id received from the creation of the payout instruction set")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[PayoutResponse]]: - """Get the status of a payout instruction set - - **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.

These endpoints are currently in beta and might be subject to changes.

If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.

Endpoint Permission: Admin, Non-Signing Admin. - - :param payout_id: the payout id received from the creation of the payout instruction set (required) - :type payout_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_payout", param_name="payout_id", param_value=payout_id) - - _param = self._get_payout_serialize( - payout_id=payout_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "PayoutResponse", - '401': "ErrorResponse", - '404': "ErrorResponse", - '5XX': "ErrorResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_payout_serialize( - self, - payout_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if payout_id is not None: - _path_params['payoutId'] = payout_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/payments/payout/{payoutId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3BheW91dF9yZXF1ZXN0IGltcG9ydCBDcmVhdGVQYXlvdXRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzcGF0Y2hfcGF5b3V0X3Jlc3BvbnNlIGltcG9ydCBEaXNwYXRjaFBheW91dFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5b3V0X3Jlc3BvbnNlIGltcG9ydCBQYXlvdXRSZXNwb25zZQoKZnJvbSBmaXJlYmxvY2tzLmFwaV9jbGllbnQgaW1wb3J0IEFwaUNsaWVudCwgUmVxdWVzdFNlcmlhbGl6ZWQKZnJvbSBmaXJlYmxvY2tzLmFwaV9yZXNwb25zZSBpbXBvcnQgQXBpUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLnJlc3QgaW1wb3J0IFJFU1RSZXNwb25zZVR5cGUKZnJvbSBmaXJlYmxvY2tzLnZhbGlkYXRpb25fdXRpbHMgaW1wb3J0IHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcKCgpjbGFzcyBQYXltZW50c1BheW91dEFwaToKICAgICIiIk5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IKICAgIFJlZjogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgogICAgIiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwaV9jbGllbnQ9Tm9uZSkgLT4gTm9uZToKICAgICAgICBpZiBhcGlfY2xpZW50IGlzIE5vbmU6CiAgICAgICAgICAgIGFwaV9jbGllbnQgPSBBcGlDbGllbnQuZ2V0X2RlZmF1bHQoKQogICAgICAgIHNlbGYuYXBpX2NsaWVudCA9IGFwaV9jbGllbnQKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBjcmVhdGVfcGF5b3V0KAogICAgICAgIHNlbGYsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIGNyZWF0ZV9wYXlvdXRfcmVxdWVzdDogT3B0aW9uYWxbQ3JlYXRlUGF5b3V0UmVxdWVzdF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbUGF5b3V0UmVzcG9uc2VdXToKICAgICAgICAiIiJDcmVhdGUgYSBwYXlvdXQgaW5zdHJ1Y3Rpb24gc2V0CgogICAgICAgICoqTm90ZToqKiBUaGUgcmVmZXJlbmNlIGNvbnRlbnQgaW4gdGhpcyBzZWN0aW9uIGRvY3VtZW50cyB0aGUgUGF5bWVudHMgRW5naW5lIGVuZHBvaW50LiBUaGUgUGF5bWVudHMgRW5naW5lIGVuZHBvaW50cyBpbmNsdWRlIEFQSXMgYXZhaWxhYmxlIG9ubHkgZm9yIGN1c3RvbWVycyB3aXRoIFBheW1lbnRzIEVuZ2luZSBlbmFibGVkIG9uIHRoZWlyIGFjY291bnRzLiA8L2JyPiA8L2JyPlRoZXNlIGVuZHBvaW50cyBhcmUgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy48L2JyPiA8L2JyPklmIHlvdSB3YW50IHRvIGxlYXJuIG1vcmUgYWJvdXQgRmlyZWJsb2NrcyBQYXltZW50cyBFbmdpbmUsIHBsZWFzZSBjb250YWN0IHlvdXIgRmlyZWJsb2NrcyBDdXN0b21lciBTdWNjZXNzIE1hbmFnZXIgb3IgZW1haWwgQ1NNQGZpcmVibG9ja3MuY29tLiA8L2JyPiA8L2JyPiA8YiB1PkNyZWF0ZSBhIHBheW91dCBpbnN0cnVjdGlvbiBzZXQuPC9iPiA8L3U+PC9icj4gQSBwYXlvdXQgaW5zdHJ1Y3Rpb24gc2V0IGlzIGEgc2V0IG9mIGluc3RydWN0aW9ucyBmb3IgZGlzdHJpYnV0aW5nIHBheW1lbnRzIGZyb20gYSBzaW5nbGUgcGF5bWVudCBhY2NvdW50IHRvIGEgbGlzdCBvZiBwYXllZSBhY2NvdW50cy4gPC9icj4gVGhlIGluc3RydWN0aW9uIHNldCBkZWZpbmVzOiA8L2JyPiA8dWw+IDxsaT50aGUgcGF5bWVudCBhY2NvdW50IGFuZCBpdHMgYWNjb3VudCB0eXBlICh2YXVsdCwgZXhjaGFuZ2UsIG9yIGZpYXQpLiA8L2xpPiA8bGk+dGhlIGFjY291bnQgdHlwZSAodmF1bHQgYWNjb3VudCwgZXhjaGFuZ2UgYWNjb3VudCwgd2hpdGVsaXN0ZWQgYWRkcmVzcywgbmV0d29yayBjb25uZWN0aW9uLCBmaWF0IGFjY291bnQsIG9yIG1lcmNoYW50IGFjY291bnQpLCB0aGUgYW1vdW50LCBhbmQgdGhlIGFzc2V0IG9mIHBheW1lbnQgZm9yIGVhY2ggcGF5ZWUgYWNjb3VudC48L2xpPiA8L3VsPiBMZWFybiBtb3JlIGFib3V0IEZpcmVibG9ja3MgUGF5bWVudHMgLSBQYXlvdXRzIGluIHRoZSBmb2xsb3dpbmcgW2d1aWRlXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vZG9jcy9jcmVhdGUtcGF5b3V0cykuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLiAKCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIGNyZWF0ZV9wYXlvdXRfcmVxdWVzdDoKICAgICAgICA6dHlwZSBjcmVhdGVfcGF5b3V0X3JlcXVlc3Q6IENyZWF0ZVBheW91dFJlcXVlc3QKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9jcmVhdGVfcGF5b3V0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgY3JlYXRlX3BheW91dF9yZXF1ZXN0PWNyZWF0ZV9wYXlvdXRfcmVxdWVzdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlBheW91dFJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwMCc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwMSc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzVYWCc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2NyZWF0ZV9wYXlvdXRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIGNyZWF0ZV9wYXlvdXRfcmVxdWVzdCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgY3JlYXRlX3BheW91dF9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBjcmVhdGVfcGF5b3V0X3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3BheW1lbnRzL3BheW91dCcsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBleGVjdXRlX3BheW91dF9hY3Rpb24oCiAgICAgICAgc2VsZiwKICAgICAgICBwYXlvdXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJ0aGUgcGF5b3V0IGlkIHJlY2VpdmVkIGZyb20gdGhlIGNyZWF0aW9uIG9mIHRoZSBwYXlvdXQgaW5zdHJ1Y3Rpb24gc2V0IildLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0Rpc3BhdGNoUGF5b3V0UmVzcG9uc2VdXToKICAgICAgICAiIiJFeGVjdXRlIGEgcGF5b3V0IGluc3RydWN0aW9uIHNldAoKICAgICAgICAqKk5vdGU6KiogVGhlIHJlZmVyZW5jZSBjb250ZW50IGluIHRoaXMgc2VjdGlvbiBkb2N1bWVudHMgdGhlIFBheW1lbnRzIEVuZ2luZSBlbmRwb2ludC4gVGhlIFBheW1lbnRzIEVuZ2luZSBlbmRwb2ludHMgaW5jbHVkZSBBUElzIGF2YWlsYWJsZSBvbmx5IGZvciBjdXN0b21lcnMgd2l0aCBQYXltZW50cyBFbmdpbmUgZW5hYmxlZCBvbiB0aGVpciBhY2NvdW50cy4gPC9icj4gPC9icj5UaGVzZSBlbmRwb2ludHMgYXJlIGN1cnJlbnRseSBpbiBiZXRhIGFuZCBtaWdodCBiZSBzdWJqZWN0IHRvIGNoYW5nZXMuPC9icj4gPC9icj5JZiB5b3Ugd2FudCB0byBsZWFybiBtb3JlIGFib3V0IEZpcmVibG9ja3MgUGF5bWVudHMgRW5naW5lLCBwbGVhc2UgY29udGFjdCB5b3VyIEZpcmVibG9ja3MgQ3VzdG9tZXIgU3VjY2VzcyBNYW5hZ2VyIG9yIGVtYWlsIENTTUBmaXJlYmxvY2tzLmNvbS4gPC9icj4gPC9icj48YiB1PkV4ZWN1dGUgYSBwYXlvdXQgaW5zdHJ1Y3Rpb24gc2V0LjwvYj4gPC91PiA8L2JyPiA8L2JyPlRoZSBpbnN0cnVjdGlvbiBzZXQgd2lsbCBiZSB2ZXJpZmllZCBhbmQgZXhlY3V0ZWQuPC9icj4gPGI+PHU+U291cmNlIGxvY2tpbmc8L2JyPjwvYj4gPC91PiBJZiB5b3UgYXJlIGV4ZWN1dGluZyBhIHBheW91dCBpbnN0cnVjdGlvbiBzZXQgZnJvbSBhIHBheW1lbnQgYWNjb3VudCB3aXRoIGFuIGFscmVhZHkgYWN0aXZlIHBheW91dCB0aGUgYWN0aXZlIHBheW91dCB3aWxsIGNvbXBsZXRlIGJlZm9yZSB0aGUgbmV3IHBheW91dCBpbnN0cnVjdGlvbiBzZXQgY2FuIGJlIGV4ZWN1dGVkLiA8L2JyPiBZb3UgY2Fubm90IGV4ZWN1dGUgdGhlIHNhbWUgcGF5b3V0IGluc3RydWN0aW9uIHNldCBtb3JlIHRoYW4gb25jZS4gCgogICAgICAgIDpwYXJhbSBwYXlvdXRfaWQ6IHRoZSBwYXlvdXQgaWQgcmVjZWl2ZWQgZnJvbSB0aGUgY3JlYXRpb24gb2YgdGhlIHBheW91dCBpbnN0cnVjdGlvbiBzZXQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHBheW91dF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImV4ZWN1dGVfcGF5b3V0X2FjdGlvbiIsIHBhcmFtX25hbWU9InBheW91dF9pZCIsIHBhcmFtX3ZhbHVlPXBheW91dF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZXhlY3V0ZV9wYXlvdXRfYWN0aW9uX3NlcmlhbGl6ZSgKICAgICAgICAgICAgcGF5b3V0X2lkPXBheW91dF9pZCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkRpc3BhdGNoUGF5b3V0UmVzcG9uc2UiLAogICAgICAgICAgICAnNDAwJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNDAxJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNVhYJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZXhlY3V0ZV9wYXlvdXRfYWN0aW9uX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHBheW91dF9pZCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHBheW91dF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydwYXlvdXRJZCddID0gcGF5b3V0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvcGF5bWVudHMvcGF5b3V0L3twYXlvdXRJZH0vYWN0aW9ucy9leGVjdXRlJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9wYXlvdXQoCiAgICAgICAgc2VsZiwKICAgICAgICBwYXlvdXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJ0aGUgcGF5b3V0IGlkIHJlY2VpdmVkIGZyb20gdGhlIGNyZWF0aW9uIG9mIHRoZSBwYXlvdXQgaW5zdHJ1Y3Rpb24gc2V0IildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbUGF5b3V0UmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgdGhlIHN0YXR1cyBvZiBhIHBheW91dCBpbnN0cnVjdGlvbiBzZXQKCiAgICAgICAgKipOb3RlOioqIFRoZSByZWZlcmVuY2UgY29udGVudCBpbiB0aGlzIHNlY3Rpb24gZG9jdW1lbnRzIHRoZSBQYXltZW50cyBFbmdpbmUgZW5kcG9pbnQuIFRoZSBQYXltZW50cyBFbmdpbmUgZW5kcG9pbnRzIGluY2x1ZGUgQVBJcyBhdmFpbGFibGUgb25seSBmb3IgY3VzdG9tZXJzIHdpdGggUGF5bWVudHMgRW5naW5lIGVuYWJsZWQgb24gdGhlaXIgYWNjb3VudHMuIDwvYnI+IDwvYnI+VGhlc2UgZW5kcG9pbnRzIGFyZSBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLjwvYnI+IDwvYnI+SWYgeW91IHdhbnQgdG8gbGVhcm4gbW9yZSBhYm91dCBGaXJlYmxvY2tzIFBheW1lbnRzIEVuZ2luZSwgcGxlYXNlIGNvbnRhY3QgeW91ciBGaXJlYmxvY2tzIEN1c3RvbWVyIFN1Y2Nlc3MgTWFuYWdlciBvciBlbWFpbCBDU01AZmlyZWJsb2Nrcy5jb20uIDwvYnI+IDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLiAKCiAgICAgICAgOnBhcmFtIHBheW91dF9pZDogdGhlIHBheW91dCBpZCByZWNlaXZlZCBmcm9tIHRoZSBjcmVhdGlvbiBvZiB0aGUgcGF5b3V0IGluc3RydWN0aW9uIHNldCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgcGF5b3V0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3BheW91dCIsIHBhcmFtX25hbWU9InBheW91dF9pZCIsIHBhcmFtX3ZhbHVlPXBheW91dF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X3BheW91dF9zZXJpYWxpemUoCiAgICAgICAgICAgIHBheW91dF9pZD1wYXlvdXRfaWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJQYXlvdXRSZXNwb25zZSIsCiAgICAgICAgICAgICc0MDEnOiAiRXJyb3JSZXNwb25zZSIsCiAgICAgICAgICAgICc0MDQnOiAiRXJyb3JSZXNwb25zZSIsCiAgICAgICAgICAgICc1WFgnOiAiRXJyb3JSZXNwb25zZSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfcGF5b3V0X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHBheW91dF9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgcGF5b3V0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3BheW91dElkJ10gPSBwYXlvdXRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9wYXltZW50cy9wYXlvdXQve3BheW91dElkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoK \ No newline at end of file diff --git a/fireblocks/api/policy_editor_beta_api.py b/fireblocks/api/policy_editor_beta_api.py index bfca50d5..75432f2c 100644 --- a/fireblocks/api/policy_editor_beta_api.py +++ b/fireblocks/api/policy_editor_beta_api.py @@ -1,732 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing import Optional -from typing_extensions import Annotated -from fireblocks.models.legacy_draft_review_and_validation_response import LegacyDraftReviewAndValidationResponse -from fireblocks.models.legacy_policy_and_validation_response import LegacyPolicyAndValidationResponse -from fireblocks.models.legacy_policy_rules import LegacyPolicyRules -from fireblocks.models.legacy_publish_draft_request import LegacyPublishDraftRequest -from fireblocks.models.legacy_publish_result import LegacyPublishResult - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class PolicyEditorBetaApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def get_active_policy_legacy( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[LegacyPolicyAndValidationResponse]]: - """Get the active policy and its validation - - Legacy Endpoint – Returns the active policy and its validation.
**Note:** - This endpoint will remain available for the foreseeable future and is not deprecated.
- The `getActivePolicy` endpoint under policy/paths provides policy type-specific operations and improved functionality.
- These endpoints are currently in beta and might be subject to changes.
If you want to participate and learn more about the Fireblocks TAP, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_active_policy_legacy_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "LegacyPolicyAndValidationResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_active_policy_legacy_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tap/active_policy', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_draft_legacy( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[LegacyDraftReviewAndValidationResponse]]: - """Get the active draft - - Legacy Endpoint – Returns the active draft and its validation.
**Note:** - This endpoint will remain available for the foreseeable future and is not deprecated.
- The `getDraft` endpoint under policy/paths provides policy type-specific operations and improved functionality.
- These endpoints are currently in beta and might be subject to changes.
If you want to participate and learn more about the Fireblocks TAP, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_draft_legacy_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "LegacyDraftReviewAndValidationResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_draft_legacy_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tap/draft', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def publish_draft_legacy( - self, - legacy_publish_draft_request: LegacyPublishDraftRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[LegacyPublishResult]]: - """Send publish request for a certain draft id - - Legacy Endpoint – Send publish request of certain draft id and returns the response.
**Note:** - This endpoint will remain available for the foreseeable future and is not deprecated.
- The `publishDraft` endpoint under policy/paths provides improved functionality and better performance.
- These endpoints are currently in beta and might be subject to changes.
If you want to participate and learn more about the Fireblocks TAP, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - - :param legacy_publish_draft_request: (required) - :type legacy_publish_draft_request: LegacyPublishDraftRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._publish_draft_legacy_serialize( - legacy_publish_draft_request=legacy_publish_draft_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "LegacyPublishResult", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _publish_draft_legacy_serialize( - self, - legacy_publish_draft_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if legacy_publish_draft_request is not None: - _body_params = legacy_publish_draft_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/tap/draft', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def publish_policy_rules( - self, - legacy_policy_rules: LegacyPolicyRules, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[LegacyPublishResult]]: - """Send publish request for a set of policy rules - - Send publish request of set of policy rules and returns the response.
**Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks TAP, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - - :param legacy_policy_rules: (required) - :type legacy_policy_rules: LegacyPolicyRules - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._publish_policy_rules_serialize( - legacy_policy_rules=legacy_policy_rules, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "LegacyPublishResult", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _publish_policy_rules_serialize( - self, - legacy_policy_rules, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if legacy_policy_rules is not None: - _body_params = legacy_policy_rules - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/tap/publish', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_draft_legacy( - self, - legacy_policy_rules: LegacyPolicyRules, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[LegacyDraftReviewAndValidationResponse]]: - """Update the draft with a new set of rules - - Legacy Endpoint – Update the draft and return its validation.
**Note:** - This endpoint will remain available for the foreseeable future and is not deprecated.
- The `updateDraft` endpoint under policy/paths provides policy type-specific operations and improved functionality.
- These endpoints are currently in beta and might be subject to changes.
If you want to participate and learn more about the Fireblocks TAP, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - - :param legacy_policy_rules: (required) - :type legacy_policy_rules: LegacyPolicyRules - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._update_draft_legacy_serialize( - legacy_policy_rules=legacy_policy_rules, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "LegacyDraftReviewAndValidationResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_draft_legacy_serialize( - self, - legacy_policy_rules, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if legacy_policy_rules is not None: - _body_params = legacy_policy_rules - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/tap/draft', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X2RyYWZ0X3Jldmlld19hbmRfdmFsaWRhdGlvbl9yZXNwb25zZSBpbXBvcnQgTGVnYWN5RHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X2FuZF92YWxpZGF0aW9uX3Jlc3BvbnNlIGltcG9ydCBMZWdhY3lQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVzIGltcG9ydCBMZWdhY3lQb2xpY3lSdWxlcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wdWJsaXNoX2RyYWZ0X3JlcXVlc3QgaW1wb3J0IExlZ2FjeVB1Ymxpc2hEcmFmdFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcHVibGlzaF9yZXN1bHQgaW1wb3J0IExlZ2FjeVB1Ymxpc2hSZXN1bHQKCmZyb20gZmlyZWJsb2Nrcy5hcGlfY2xpZW50IGltcG9ydCBBcGlDbGllbnQsIFJlcXVlc3RTZXJpYWxpemVkCmZyb20gZmlyZWJsb2Nrcy5hcGlfcmVzcG9uc2UgaW1wb3J0IEFwaVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5yZXN0IGltcG9ydCBSRVNUUmVzcG9uc2VUeXBlCmZyb20gZmlyZWJsb2Nrcy52YWxpZGF0aW9uX3V0aWxzIGltcG9ydCB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nCgoKY2xhc3MgUG9saWN5RWRpdG9yQmV0YUFwaToKICAgICIiIk5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IKICAgIFJlZjogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgogICAgIiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwaV9jbGllbnQ9Tm9uZSkgLT4gTm9uZToKICAgICAgICBpZiBhcGlfY2xpZW50IGlzIE5vbmU6CiAgICAgICAgICAgIGFwaV9jbGllbnQgPSBBcGlDbGllbnQuZ2V0X2RlZmF1bHQoKQogICAgICAgIHNlbGYuYXBpX2NsaWVudCA9IGFwaV9jbGllbnQKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfYWN0aXZlX3BvbGljeV9sZWdhY3koCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0xlZ2FjeVBvbGljeUFuZFZhbGlkYXRpb25SZXNwb25zZV1dOgogICAgICAgICIiIkdldCB0aGUgYWN0aXZlIHBvbGljeSBhbmQgaXRzIHZhbGlkYXRpb24KCiAgICAgICAgTGVnYWN5IEVuZHBvaW50IOKAkyBSZXR1cm5zIHRoZSBhY3RpdmUgcG9saWN5IGFuZCBpdHMgdmFsaWRhdGlvbi4gPC9icj4gKipOb3RlOioqICAtIFRoaXMgZW5kcG9pbnQgd2lsbCByZW1haW4gYXZhaWxhYmxlIGZvciB0aGUgZm9yZXNlZWFibGUgZnV0dXJlIGFuZCBpcyBub3QgZGVwcmVjYXRlZC48L2JyPiAtIFRoZSBgZ2V0QWN0aXZlUG9saWN5YCBlbmRwb2ludCB1bmRlciBwb2xpY3kvcGF0aHMgcHJvdmlkZXMgcG9saWN5IHR5cGUtc3BlY2lmaWMgb3BlcmF0aW9ucyBhbmQgaW1wcm92ZWQgZnVuY3Rpb25hbGl0eS48L2JyPiAtIFRoZXNlIGVuZHBvaW50cyBhcmUgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy48L2JyPiBJZiB5b3Ugd2FudCB0byBwYXJ0aWNpcGF0ZSBhbmQgbGVhcm4gbW9yZSBhYm91dCB0aGUgRmlyZWJsb2NrcyBUQVAsIHBsZWFzZSBjb250YWN0IHlvdXIgRmlyZWJsb2NrcyBDdXN0b21lciBTdWNjZXNzIE1hbmFnZXIgb3Igc2VuZCBhbiBlbWFpbCB0byBDU01AZmlyZWJsb2Nrcy5jb20uIAoKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfYWN0aXZlX3BvbGljeV9sZWdhY3lfc2VyaWFsaXplKAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiTGVnYWN5UG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2FjdGl2ZV9wb2xpY3lfbGVnYWN5X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90YXAvYWN0aXZlX3BvbGljeScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfZHJhZnRfbGVnYWN5KAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtMZWdhY3lEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZV1dOgogICAgICAgICIiIkdldCB0aGUgYWN0aXZlIGRyYWZ0CgogICAgICAgIExlZ2FjeSBFbmRwb2ludCDigJMgUmV0dXJucyB0aGUgYWN0aXZlIGRyYWZ0IGFuZCBpdHMgdmFsaWRhdGlvbi4gPC9icj4gKipOb3RlOioqICAtIFRoaXMgZW5kcG9pbnQgd2lsbCByZW1haW4gYXZhaWxhYmxlIGZvciB0aGUgZm9yZXNlZWFibGUgZnV0dXJlIGFuZCBpcyBub3QgZGVwcmVjYXRlZC48L2JyPiAtIFRoZSBgZ2V0RHJhZnRgIGVuZHBvaW50IHVuZGVyIHBvbGljeS9wYXRocyBwcm92aWRlcyBwb2xpY3kgdHlwZS1zcGVjaWZpYyBvcGVyYXRpb25zIGFuZCBpbXByb3ZlZCBmdW5jdGlvbmFsaXR5LjwvYnI+IC0gVGhlc2UgZW5kcG9pbnRzIGFyZSBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLjwvYnI+IElmIHlvdSB3YW50IHRvIHBhcnRpY2lwYXRlIGFuZCBsZWFybiBtb3JlIGFib3V0IHRoZSBGaXJlYmxvY2tzIFRBUCwgcGxlYXNlIGNvbnRhY3QgeW91ciBGaXJlYmxvY2tzIEN1c3RvbWVyIFN1Y2Nlc3MgTWFuYWdlciBvciBzZW5kIGFuIGVtYWlsIHRvIENTTUBmaXJlYmxvY2tzLmNvbS4gCgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9kcmFmdF9sZWdhY3lfc2VyaWFsaXplKAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiTGVnYWN5RHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfZHJhZnRfbGVnYWN5X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90YXAvZHJhZnQnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgcHVibGlzaF9kcmFmdF9sZWdhY3koCiAgICAgICAgc2VsZiwKICAgICAgICBsZWdhY3lfcHVibGlzaF9kcmFmdF9yZXF1ZXN0OiBMZWdhY3lQdWJsaXNoRHJhZnRSZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0xlZ2FjeVB1Ymxpc2hSZXN1bHRdXToKICAgICAgICAiIiJTZW5kIHB1Ymxpc2ggcmVxdWVzdCBmb3IgYSBjZXJ0YWluIGRyYWZ0IGlkCgogICAgICAgIExlZ2FjeSBFbmRwb2ludCDigJMgU2VuZCBwdWJsaXNoIHJlcXVlc3Qgb2YgY2VydGFpbiBkcmFmdCBpZCBhbmQgcmV0dXJucyB0aGUgcmVzcG9uc2UuIDwvYnI+ICoqTm90ZToqKiAgLSBUaGlzIGVuZHBvaW50IHdpbGwgcmVtYWluIGF2YWlsYWJsZSBmb3IgdGhlIGZvcmVzZWVhYmxlIGZ1dHVyZSBhbmQgaXMgbm90IGRlcHJlY2F0ZWQuPC9icj4gLSBUaGUgYHB1Ymxpc2hEcmFmdGAgZW5kcG9pbnQgdW5kZXIgcG9saWN5L3BhdGhzIHByb3ZpZGVzIGltcHJvdmVkIGZ1bmN0aW9uYWxpdHkgYW5kIGJldHRlciBwZXJmb3JtYW5jZS48L2JyPiAtIFRoZXNlIGVuZHBvaW50cyBhcmUgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy48L2JyPiBJZiB5b3Ugd2FudCB0byBwYXJ0aWNpcGF0ZSBhbmQgbGVhcm4gbW9yZSBhYm91dCB0aGUgRmlyZWJsb2NrcyBUQVAsIHBsZWFzZSBjb250YWN0IHlvdXIgRmlyZWJsb2NrcyBDdXN0b21lciBTdWNjZXNzIE1hbmFnZXIgb3Igc2VuZCBhbiBlbWFpbCB0byBDU01AZmlyZWJsb2Nrcy5jb20uIAoKICAgICAgICA6cGFyYW0gbGVnYWN5X3B1Ymxpc2hfZHJhZnRfcmVxdWVzdDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGxlZ2FjeV9wdWJsaXNoX2RyYWZ0X3JlcXVlc3Q6IExlZ2FjeVB1Ymxpc2hEcmFmdFJlcXVlc3QKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9wdWJsaXNoX2RyYWZ0X2xlZ2FjeV9zZXJpYWxpemUoCiAgICAgICAgICAgIGxlZ2FjeV9wdWJsaXNoX2RyYWZ0X3JlcXVlc3Q9bGVnYWN5X3B1Ymxpc2hfZHJhZnRfcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAxJzogIkxlZ2FjeVB1Ymxpc2hSZXN1bHQiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9wdWJsaXNoX2RyYWZ0X2xlZ2FjeV9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBsZWdhY3lfcHVibGlzaF9kcmFmdF9yZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgbGVnYWN5X3B1Ymxpc2hfZHJhZnRfcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gbGVnYWN5X3B1Ymxpc2hfZHJhZnRfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdGFwL2RyYWZ0JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHB1Ymxpc2hfcG9saWN5X3J1bGVzKAogICAgICAgIHNlbGYsCiAgICAgICAgbGVnYWN5X3BvbGljeV9ydWxlczogTGVnYWN5UG9saWN5UnVsZXMsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTGVnYWN5UHVibGlzaFJlc3VsdF1dOgogICAgICAgICIiIlNlbmQgcHVibGlzaCByZXF1ZXN0IGZvciBhIHNldCBvZiBwb2xpY3kgcnVsZXMKCiAgICAgICAgU2VuZCBwdWJsaXNoIHJlcXVlc3Qgb2Ygc2V0IG9mIHBvbGljeSBydWxlcyBhbmQgcmV0dXJucyB0aGUgcmVzcG9uc2UuIDwvYnI+ICoqTm90ZToqKiBUaGVzZSBlbmRwb2ludHMgYXJlIGN1cnJlbnRseSBpbiBiZXRhIGFuZCBtaWdodCBiZSBzdWJqZWN0IHRvIGNoYW5nZXMuIElmIHlvdSB3YW50IHRvIHBhcnRpY2lwYXRlIGFuZCBsZWFybiBtb3JlIGFib3V0IHRoZSBGaXJlYmxvY2tzIFRBUCwgcGxlYXNlIGNvbnRhY3QgeW91ciBGaXJlYmxvY2tzIEN1c3RvbWVyIFN1Y2Nlc3MgTWFuYWdlciBvciBzZW5kIGFuIGVtYWlsIHRvIENTTUBmaXJlYmxvY2tzLmNvbS4gCgogICAgICAgIDpwYXJhbSBsZWdhY3lfcG9saWN5X3J1bGVzOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgbGVnYWN5X3BvbGljeV9ydWxlczogTGVnYWN5UG9saWN5UnVsZXMKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9wdWJsaXNoX3BvbGljeV9ydWxlc19zZXJpYWxpemUoCiAgICAgICAgICAgIGxlZ2FjeV9wb2xpY3lfcnVsZXM9bGVnYWN5X3BvbGljeV9ydWxlcywKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAxJzogIkxlZ2FjeVB1Ymxpc2hSZXN1bHQiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9wdWJsaXNoX3BvbGljeV9ydWxlc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBsZWdhY3lfcG9saWN5X3J1bGVzLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgbGVnYWN5X3BvbGljeV9ydWxlcyBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gbGVnYWN5X3BvbGljeV9ydWxlcwoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdGFwL3B1Ymxpc2gnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgdXBkYXRlX2RyYWZ0X2xlZ2FjeSgKICAgICAgICBzZWxmLAogICAgICAgIGxlZ2FjeV9wb2xpY3lfcnVsZXM6IExlZ2FjeVBvbGljeVJ1bGVzLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0xlZ2FjeURyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlXV06CiAgICAgICAgIiIiVXBkYXRlIHRoZSBkcmFmdCB3aXRoIGEgbmV3IHNldCBvZiBydWxlcwoKICAgICAgICBMZWdhY3kgRW5kcG9pbnQg4oCTIFVwZGF0ZSB0aGUgZHJhZnQgYW5kIHJldHVybiBpdHMgdmFsaWRhdGlvbi4gPC9icj4gKipOb3RlOioqICAtIFRoaXMgZW5kcG9pbnQgd2lsbCByZW1haW4gYXZhaWxhYmxlIGZvciB0aGUgZm9yZXNlZWFibGUgZnV0dXJlIGFuZCBpcyBub3QgZGVwcmVjYXRlZC48L2JyPiAtIFRoZSBgdXBkYXRlRHJhZnRgIGVuZHBvaW50IHVuZGVyIHBvbGljeS9wYXRocyBwcm92aWRlcyBwb2xpY3kgdHlwZS1zcGVjaWZpYyBvcGVyYXRpb25zIGFuZCBpbXByb3ZlZCBmdW5jdGlvbmFsaXR5LjwvYnI+IC0gVGhlc2UgZW5kcG9pbnRzIGFyZSBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLjwvYnI+IElmIHlvdSB3YW50IHRvIHBhcnRpY2lwYXRlIGFuZCBsZWFybiBtb3JlIGFib3V0IHRoZSBGaXJlYmxvY2tzIFRBUCwgcGxlYXNlIGNvbnRhY3QgeW91ciBGaXJlYmxvY2tzIEN1c3RvbWVyIFN1Y2Nlc3MgTWFuYWdlciBvciBzZW5kIGFuIGVtYWlsIHRvIENTTUBmaXJlYmxvY2tzLmNvbS4gCgogICAgICAgIDpwYXJhbSBsZWdhY3lfcG9saWN5X3J1bGVzOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgbGVnYWN5X3BvbGljeV9ydWxlczogTGVnYWN5UG9saWN5UnVsZXMKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl91cGRhdGVfZHJhZnRfbGVnYWN5X3NlcmlhbGl6ZSgKICAgICAgICAgICAgbGVnYWN5X3BvbGljeV9ydWxlcz1sZWdhY3lfcG9saWN5X3J1bGVzLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiTGVnYWN5RHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF91cGRhdGVfZHJhZnRfbGVnYWN5X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGxlZ2FjeV9wb2xpY3lfcnVsZXMsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBsZWdhY3lfcG9saWN5X3J1bGVzIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBsZWdhY3lfcG9saWN5X3J1bGVzCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUFVUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3RhcC9kcmFmdCcsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoK \ No newline at end of file diff --git a/fireblocks/api/policy_editor_v2_beta_api.py b/fireblocks/api/policy_editor_v2_beta_api.py index 21a44b5f..5e9eca51 100644 --- a/fireblocks/api/policy_editor_v2_beta_api.py +++ b/fireblocks/api/policy_editor_v2_beta_api.py @@ -1,603 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing import Optional -from typing_extensions import Annotated -from fireblocks.models.draft_review_and_validation_response import DraftReviewAndValidationResponse -from fireblocks.models.policy_and_validation_response import PolicyAndValidationResponse -from fireblocks.models.policy_type import PolicyType -from fireblocks.models.publish_draft_request import PublishDraftRequest -from fireblocks.models.publish_result import PublishResult -from fireblocks.models.update_draft_request import UpdateDraftRequest - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class PolicyEditorV2BetaApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def get_active_policy( - self, - policy_type: Annotated[PolicyType, Field(description="The policy type(s) to retrieve. Can be a single type or multiple types by repeating the parameter (e.g., ?policyType=TRANSFER&policyType=MINT).")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[PolicyAndValidationResponse]]: - """Get the active policy and its validation by policy type - - Returns the active policy and its validation for a specific policy type. **Note:** This endpoint is currently in beta and subject to change. If you want to participate in the Policies beta, contact your Fireblocks Customer Success Manager or send an email to csm@fireblocks.com. Endpoint Permissions: Owner, Admin, Non-Signing Admin. - - :param policy_type: The policy type(s) to retrieve. Can be a single type or multiple types by repeating the parameter (e.g., ?policyType=TRANSFER&policyType=MINT). (required) - :type policy_type: PolicyType - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_active_policy_serialize( - policy_type=policy_type, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "PolicyAndValidationResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_active_policy_serialize( - self, - policy_type, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if policy_type is not None: - - _query_params.append(('policyType', policy_type.value)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/policy/active_policy', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_draft( - self, - policy_type: Annotated[PolicyType, Field(description="The policy type(s) to retrieve. Can be a single type or multiple types by repeating the parameter (e.g., ?policyType=TRANSFER&policyType=MINT).")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[DraftReviewAndValidationResponse]]: - """Get the active draft by policy type - - Returns the active draft and its validation for a specific policy type.
**Note:** These endpoints are currently in beta and might be subject to changes. - - :param policy_type: The policy type(s) to retrieve. Can be a single type or multiple types by repeating the parameter (e.g., ?policyType=TRANSFER&policyType=MINT). (required) - :type policy_type: PolicyType - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_draft_serialize( - policy_type=policy_type, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "DraftReviewAndValidationResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_draft_serialize( - self, - policy_type, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if policy_type is not None: - - _query_params.append(('policyType', policy_type.value)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/policy/draft', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def publish_draft( - self, - publish_draft_request: PublishDraftRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[PublishResult]]: - """Send publish request for a certain draft id - - Send publish request of certain draft id and returns the response.
**Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Policy Editor, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. - - :param publish_draft_request: (required) - :type publish_draft_request: PublishDraftRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._publish_draft_serialize( - publish_draft_request=publish_draft_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "PublishResult", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _publish_draft_serialize( - self, - publish_draft_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if publish_draft_request is not None: - _body_params = publish_draft_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/policy/draft', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_draft( - self, - update_draft_request: UpdateDraftRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[DraftReviewAndValidationResponse]]: - """Update the draft with a new set of rules by policy types - - Update the draft and return its validation for specific policy types.
**Note:** These endpoints are currently in beta and might be subject to changes. - - :param update_draft_request: (required) - :type update_draft_request: UpdateDraftRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._update_draft_serialize( - update_draft_request=update_draft_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "DraftReviewAndValidationResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_draft_serialize( - self, - update_draft_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if update_draft_request is not None: - _body_params = update_draft_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/policy/draft', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZHJhZnRfcmV2aWV3X2FuZF92YWxpZGF0aW9uX3Jlc3BvbnNlIGltcG9ydCBEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9hbmRfdmFsaWRhdGlvbl9yZXNwb25zZSBpbXBvcnQgUG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3R5cGUgaW1wb3J0IFBvbGljeVR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wdWJsaXNoX2RyYWZ0X3JlcXVlc3QgaW1wb3J0IFB1Ymxpc2hEcmFmdFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wdWJsaXNoX3Jlc3VsdCBpbXBvcnQgUHVibGlzaFJlc3VsdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV9kcmFmdF9yZXF1ZXN0IGltcG9ydCBVcGRhdGVEcmFmdFJlcXVlc3QKCmZyb20gZmlyZWJsb2Nrcy5hcGlfY2xpZW50IGltcG9ydCBBcGlDbGllbnQsIFJlcXVlc3RTZXJpYWxpemVkCmZyb20gZmlyZWJsb2Nrcy5hcGlfcmVzcG9uc2UgaW1wb3J0IEFwaVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5yZXN0IGltcG9ydCBSRVNUUmVzcG9uc2VUeXBlCmZyb20gZmlyZWJsb2Nrcy52YWxpZGF0aW9uX3V0aWxzIGltcG9ydCB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nCgoKY2xhc3MgUG9saWN5RWRpdG9yVjJCZXRhQXBpOgogICAgIiIiTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvcgogICAgUmVmOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gKCiAgICBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgYXBpX2NsaWVudD1Ob25lKSAtPiBOb25lOgogICAgICAgIGlmIGFwaV9jbGllbnQgaXMgTm9uZToKICAgICAgICAgICAgYXBpX2NsaWVudCA9IEFwaUNsaWVudC5nZXRfZGVmYXVsdCgpCiAgICAgICAgc2VsZi5hcGlfY2xpZW50ID0gYXBpX2NsaWVudAoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9hY3RpdmVfcG9saWN5KAogICAgICAgIHNlbGYsCiAgICAgICAgcG9saWN5X3R5cGU6IEFubm90YXRlZFtQb2xpY3lUeXBlLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHBvbGljeSB0eXBlKHMpIHRvIHJldHJpZXZlLiBDYW4gYmUgYSBzaW5nbGUgdHlwZSBvciBtdWx0aXBsZSB0eXBlcyBieSByZXBlYXRpbmcgdGhlIHBhcmFtZXRlciAoZS5nLiwgP3BvbGljeVR5cGU9VFJBTlNGRVImcG9saWN5VHlwZT1NSU5UKS4iKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgdGhlIGFjdGl2ZSBwb2xpY3kgYW5kIGl0cyB2YWxpZGF0aW9uIGJ5IHBvbGljeSB0eXBlCgogICAgICAgIFJldHVybnMgdGhlIGFjdGl2ZSBwb2xpY3kgYW5kIGl0cyB2YWxpZGF0aW9uIGZvciBhIHNwZWNpZmljIHBvbGljeSB0eXBlLiAgKipOb3RlOioqIFRoaXMgZW5kcG9pbnQgaXMgY3VycmVudGx5IGluIGJldGEgYW5kIHN1YmplY3QgdG8gY2hhbmdlLiBJZiB5b3Ugd2FudCB0byBwYXJ0aWNpcGF0ZSBpbiB0aGUgUG9saWNpZXMgYmV0YSwgY29udGFjdCB5b3VyIEZpcmVibG9ja3MgQ3VzdG9tZXIgU3VjY2VzcyBNYW5hZ2VyIG9yIHNlbmQgYW4gZW1haWwgdG8gY3NtQGZpcmVibG9ja3MuY29tLiAgRW5kcG9pbnQgUGVybWlzc2lvbnM6IE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4uIAoKICAgICAgICA6cGFyYW0gcG9saWN5X3R5cGU6IFRoZSBwb2xpY3kgdHlwZShzKSB0byByZXRyaWV2ZS4gQ2FuIGJlIGEgc2luZ2xlIHR5cGUgb3IgbXVsdGlwbGUgdHlwZXMgYnkgcmVwZWF0aW5nIHRoZSBwYXJhbWV0ZXIgKGUuZy4sID9wb2xpY3lUeXBlPVRSQU5TRkVSJnBvbGljeVR5cGU9TUlOVCkuIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBwb2xpY3lfdHlwZTogUG9saWN5VHlwZQogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9hY3RpdmVfcG9saWN5X3NlcmlhbGl6ZSgKICAgICAgICAgICAgcG9saWN5X3R5cGU9cG9saWN5X3R5cGUsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfYWN0aXZlX3BvbGljeV9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBwb2xpY3lfdHlwZSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgcG9saWN5X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BvbGljeVR5cGUnLCBwb2xpY3lfdHlwZS52YWx1ZSkpCiAgICAgICAgICAgIAogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3BvbGljeS9hY3RpdmVfcG9saWN5JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9kcmFmdCgKICAgICAgICBzZWxmLAogICAgICAgIHBvbGljeV90eXBlOiBBbm5vdGF0ZWRbUG9saWN5VHlwZSwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBwb2xpY3kgdHlwZShzKSB0byByZXRyaWV2ZS4gQ2FuIGJlIGEgc2luZ2xlIHR5cGUgb3IgbXVsdGlwbGUgdHlwZXMgYnkgcmVwZWF0aW5nIHRoZSBwYXJhbWV0ZXIgKGUuZy4sID9wb2xpY3lUeXBlPVRSQU5TRkVSJnBvbGljeVR5cGU9TUlOVCkuIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbRHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgdGhlIGFjdGl2ZSBkcmFmdCBieSBwb2xpY3kgdHlwZQoKICAgICAgICBSZXR1cm5zIHRoZSBhY3RpdmUgZHJhZnQgYW5kIGl0cyB2YWxpZGF0aW9uIGZvciBhIHNwZWNpZmljIHBvbGljeSB0eXBlLiA8L2JyPiAqKk5vdGU6KiogVGhlc2UgZW5kcG9pbnRzIGFyZSBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLiAKCiAgICAgICAgOnBhcmFtIHBvbGljeV90eXBlOiBUaGUgcG9saWN5IHR5cGUocykgdG8gcmV0cmlldmUuIENhbiBiZSBhIHNpbmdsZSB0eXBlIG9yIG11bHRpcGxlIHR5cGVzIGJ5IHJlcGVhdGluZyB0aGUgcGFyYW1ldGVyIChlLmcuLCA/cG9saWN5VHlwZT1UUkFOU0ZFUiZwb2xpY3lUeXBlPU1JTlQpLiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgcG9saWN5X3R5cGU6IFBvbGljeVR5cGUKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfZHJhZnRfc2VyaWFsaXplKAogICAgICAgICAgICBwb2xpY3lfdHlwZT1wb2xpY3lfdHlwZSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkRyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2RyYWZ0X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHBvbGljeV90eXBlLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiBwb2xpY3lfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncG9saWN5VHlwZScsIHBvbGljeV90eXBlLnZhbHVlKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvcG9saWN5L2RyYWZ0JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHB1Ymxpc2hfZHJhZnQoCiAgICAgICAgc2VsZiwKICAgICAgICBwdWJsaXNoX2RyYWZ0X3JlcXVlc3Q6IFB1Ymxpc2hEcmFmdFJlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbUHVibGlzaFJlc3VsdF1dOgogICAgICAgICIiIlNlbmQgcHVibGlzaCByZXF1ZXN0IGZvciBhIGNlcnRhaW4gZHJhZnQgaWQKCiAgICAgICAgU2VuZCBwdWJsaXNoIHJlcXVlc3Qgb2YgY2VydGFpbiBkcmFmdCBpZCBhbmQgcmV0dXJucyB0aGUgcmVzcG9uc2UuIDwvYnI+ICoqTm90ZToqKiBUaGVzZSBlbmRwb2ludHMgYXJlIGN1cnJlbnRseSBpbiBiZXRhIGFuZCBtaWdodCBiZSBzdWJqZWN0IHRvIGNoYW5nZXMuIElmIHlvdSB3YW50IHRvIHBhcnRpY2lwYXRlIGFuZCBsZWFybiBtb3JlIGFib3V0IHRoZSBGaXJlYmxvY2tzIFBvbGljeSBFZGl0b3IsIHBsZWFzZSBjb250YWN0IHlvdXIgRmlyZWJsb2NrcyBDdXN0b21lciBTdWNjZXNzIE1hbmFnZXIgb3Igc2VuZCBhbiBlbWFpbCB0byBDU01AZmlyZWJsb2Nrcy5jb20uIAoKICAgICAgICA6cGFyYW0gcHVibGlzaF9kcmFmdF9yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgcHVibGlzaF9kcmFmdF9yZXF1ZXN0OiBQdWJsaXNoRHJhZnRSZXF1ZXN0CiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fcHVibGlzaF9kcmFmdF9zZXJpYWxpemUoCiAgICAgICAgICAgIHB1Ymxpc2hfZHJhZnRfcmVxdWVzdD1wdWJsaXNoX2RyYWZ0X3JlcXVlc3QsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMSc6ICJQdWJsaXNoUmVzdWx0IiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfcHVibGlzaF9kcmFmdF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBwdWJsaXNoX2RyYWZ0X3JlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBwdWJsaXNoX2RyYWZ0X3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHB1Ymxpc2hfZHJhZnRfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvcG9saWN5L2RyYWZ0JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHVwZGF0ZV9kcmFmdCgKICAgICAgICBzZWxmLAogICAgICAgIHVwZGF0ZV9kcmFmdF9yZXF1ZXN0OiBVcGRhdGVEcmFmdFJlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbRHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2VdXToKICAgICAgICAiIiJVcGRhdGUgdGhlIGRyYWZ0IHdpdGggYSBuZXcgc2V0IG9mIHJ1bGVzIGJ5IHBvbGljeSB0eXBlcwoKICAgICAgICBVcGRhdGUgdGhlIGRyYWZ0IGFuZCByZXR1cm4gaXRzIHZhbGlkYXRpb24gZm9yIHNwZWNpZmljIHBvbGljeSB0eXBlcy4gPC9icj4gKipOb3RlOioqIFRoZXNlIGVuZHBvaW50cyBhcmUgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy4gCgogICAgICAgIDpwYXJhbSB1cGRhdGVfZHJhZnRfcmVxdWVzdDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHVwZGF0ZV9kcmFmdF9yZXF1ZXN0OiBVcGRhdGVEcmFmdFJlcXVlc3QKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl91cGRhdGVfZHJhZnRfc2VyaWFsaXplKAogICAgICAgICAgICB1cGRhdGVfZHJhZnRfcmVxdWVzdD11cGRhdGVfZHJhZnRfcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkRyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfdXBkYXRlX2RyYWZ0X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHVwZGF0ZV9kcmFmdF9yZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgdXBkYXRlX2RyYWZ0X3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHVwZGF0ZV9kcmFmdF9yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUFVUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3BvbGljeS9kcmFmdCcsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoK \ No newline at end of file diff --git a/fireblocks/api/reset_device_api.py b/fireblocks/api/reset_device_api.py index ad78d25d..e72aaa97 100644 --- a/fireblocks/api/reset_device_api.py +++ b/fireblocks/api/reset_device_api.py @@ -1,180 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing import Optional -from typing_extensions import Annotated - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class ResetDeviceApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def reset_device( - self, - id: Annotated[StrictStr, Field(description="The ID of the console user")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Resets device - - Resets mobile device for given console user, that user will need to do mobile onboarding again. - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions.
Endpoint Permission: Admin, Non-Signing Admin. - - :param id: The ID of the console user (required) - :type id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="reset_device", param_name="id", param_value=id) - - _param = self._reset_device_serialize( - id=id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': None, - '401': "ErrorResponse", - '403': "ErrorResponse", - '5XX': "ErrorResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _reset_device_serialize( - self, - id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if id is not None: - _path_params['id'] = id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/management/users/{id}/reset_device', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCgpmcm9tIGZpcmVibG9ja3MuYXBpX2NsaWVudCBpbXBvcnQgQXBpQ2xpZW50LCBSZXF1ZXN0U2VyaWFsaXplZApmcm9tIGZpcmVibG9ja3MuYXBpX3Jlc3BvbnNlIGltcG9ydCBBcGlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MucmVzdCBpbXBvcnQgUkVTVFJlc3BvbnNlVHlwZQpmcm9tIGZpcmVibG9ja3MudmFsaWRhdGlvbl91dGlscyBpbXBvcnQgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZwoKCmNsYXNzIFJlc2V0RGV2aWNlQXBpOgogICAgIiIiTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvcgogICAgUmVmOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gKCiAgICBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgYXBpX2NsaWVudD1Ob25lKSAtPiBOb25lOgogICAgICAgIGlmIGFwaV9jbGllbnQgaXMgTm9uZToKICAgICAgICAgICAgYXBpX2NsaWVudCA9IEFwaUNsaWVudC5nZXRfZGVmYXVsdCgpCiAgICAgICAgc2VsZi5hcGlfY2xpZW50ID0gYXBpX2NsaWVudAoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHJlc2V0X2RldmljZSgKICAgICAgICBzZWxmLAogICAgICAgIGlkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBjb25zb2xlIHVzZXIiKV0sCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTm9uZV1dOgogICAgICAgICIiIlJlc2V0cyBkZXZpY2UKCiAgICAgICAgUmVzZXRzIG1vYmlsZSBkZXZpY2UgZm9yIGdpdmVuIGNvbnNvbGUgdXNlciwgdGhhdCB1c2VyIHdpbGwgbmVlZCB0byBkbyBtb2JpbGUgb25ib2FyZGluZyBhZ2Fpbi4gLSBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgZW5kcG9pbnQgaXMgYXZhaWxhYmxlIG9ubHkgZm9yIEFQSSBrZXlzIHdpdGggQWRtaW4vTm9uIFNpZ25pbmcgQWRtaW4gcGVybWlzc2lvbnMuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKICAgICAgICA6cGFyYW0gaWQ6IFRoZSBJRCBvZiB0aGUgY29uc29sZSB1c2VyIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBpZDogc3RyCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InJlc2V0X2RldmljZSIsIHBhcmFtX25hbWU9ImlkIiwgcGFyYW1fdmFsdWU9aWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3Jlc2V0X2RldmljZV9zZXJpYWxpemUoCiAgICAgICAgICAgIGlkPWlkLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiBOb25lLAogICAgICAgICAgICAnNDAxJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNDAzJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNVhYJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9yZXNldF9kZXZpY2Vfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgaWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydpZCddID0gaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9tYW5hZ2VtZW50L3VzZXJzL3tpZH0vcmVzZXRfZGV2aWNlJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgo= \ No newline at end of file diff --git a/fireblocks/api/smart_transfer_api.py b/fireblocks/api/smart_transfer_api.py index dcb42c11..870e98ca 100644 --- a/fireblocks/api/smart_transfer_api.py +++ b/fireblocks/api/smart_transfer_api.py @@ -1,2982 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from datetime import datetime -from pydantic import Field, StrictBool, StrictStr, field_validator -from typing import List, Optional, Union -from typing_extensions import Annotated -from fireblocks.models.smart_transfer_approve_term import SmartTransferApproveTerm -from fireblocks.models.smart_transfer_create_ticket import SmartTransferCreateTicket -from fireblocks.models.smart_transfer_create_ticket_term import SmartTransferCreateTicketTerm -from fireblocks.models.smart_transfer_fund_dvp_ticket import SmartTransferFundDvpTicket -from fireblocks.models.smart_transfer_fund_term import SmartTransferFundTerm -from fireblocks.models.smart_transfer_manually_fund_term import SmartTransferManuallyFundTerm -from fireblocks.models.smart_transfer_set_ticket_expiration import SmartTransferSetTicketExpiration -from fireblocks.models.smart_transfer_set_ticket_external_id import SmartTransferSetTicketExternalId -from fireblocks.models.smart_transfer_set_user_groups import SmartTransferSetUserGroups -from fireblocks.models.smart_transfer_statistic import SmartTransferStatistic -from fireblocks.models.smart_transfer_submit_ticket import SmartTransferSubmitTicket -from fireblocks.models.smart_transfer_ticket_filtered_response import SmartTransferTicketFilteredResponse -from fireblocks.models.smart_transfer_ticket_response import SmartTransferTicketResponse -from fireblocks.models.smart_transfer_ticket_term_response import SmartTransferTicketTermResponse -from fireblocks.models.smart_transfer_update_ticket_term import SmartTransferUpdateTicketTerm -from fireblocks.models.smart_transfer_user_groups_response import SmartTransferUserGroupsResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class SmartTransferApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def approve_dv_p_ticket_term( - self, - ticket_id: StrictStr, - term_id: StrictStr, - smart_transfer_approve_term: SmartTransferApproveTerm, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SmartTransferTicketTermResponse]]: - """Set funding source and approval - - Set funding source for ticket term and creating approving transaction for contract to transfer asset - - :param ticket_id: (required) - :type ticket_id: str - :param term_id: (required) - :type term_id: str - :param smart_transfer_approve_term: (required) - :type smart_transfer_approve_term: SmartTransferApproveTerm - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="approve_dv_p_ticket_term", param_name="ticket_id", param_value=ticket_id) - validate_not_empty_string(function_name="approve_dv_p_ticket_term", param_name="term_id", param_value=term_id) - - _param = self._approve_dv_p_ticket_term_serialize( - ticket_id=ticket_id, - term_id=term_id, - smart_transfer_approve_term=smart_transfer_approve_term, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "SmartTransferTicketTermResponse", - '403': "SmartTransferForbiddenResponse", - '404': "SmartTransferNotFoundResponse", - '422': "SmartTransferBadRequestResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _approve_dv_p_ticket_term_serialize( - self, - ticket_id, - term_id, - smart_transfer_approve_term, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if ticket_id is not None: - _path_params['ticketId'] = ticket_id - if term_id is not None: - _path_params['termId'] = term_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if smart_transfer_approve_term is not None: - _body_params = smart_transfer_approve_term - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/smart_transfers/{ticketId}/terms/{termId}/dvp/approve', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def cancel_ticket( - self, - ticket_id: StrictStr, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SmartTransferTicketResponse]]: - """Cancel Ticket - - Cancel Smart Transfer ticket.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param ticket_id: (required) - :type ticket_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="cancel_ticket", param_name="ticket_id", param_value=ticket_id) - - _param = self._cancel_ticket_serialize( - ticket_id=ticket_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SmartTransferTicketResponse", - '403': "SmartTransferForbiddenResponse", - '404': "SmartTransferNotFoundResponse", - '422': "SmartTransferBadRequestResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _cancel_ticket_serialize( - self, - ticket_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if ticket_id is not None: - _path_params['ticketId'] = ticket_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/smart-transfers/{ticketId}/cancel', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_ticket( - self, - smart_transfer_create_ticket: SmartTransferCreateTicket, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SmartTransferTicketResponse]]: - """Create Ticket - - Creates a new Smart Transfer ticket. Learn more about Fireblocks Smart Transfers [here](https://developers.fireblocks.com/docs/execute-smart-transfers). **Note:** The `DVP` value is in Early Access and should only be used if Fireblocks has enabled it in your workspace. Contact your Customer Success Manager for more information. **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param smart_transfer_create_ticket: (required) - :type smart_transfer_create_ticket: SmartTransferCreateTicket - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_ticket_serialize( - smart_transfer_create_ticket=smart_transfer_create_ticket, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "SmartTransferTicketResponse", - '403': "SmartTransferForbiddenResponse", - '422': "SmartTransferBadRequestResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_ticket_serialize( - self, - smart_transfer_create_ticket, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if smart_transfer_create_ticket is not None: - _body_params = smart_transfer_create_ticket - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/smart-transfers', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_ticket_term( - self, - ticket_id: StrictStr, - smart_transfer_create_ticket_term: SmartTransferCreateTicketTerm, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SmartTransferTicketTermResponse]]: - """Create leg (term) - - Creates new smart transfer ticket term (when the ticket status is DRAFT). Learn more about Fireblocks Smart Transfers in the following [guide](https://developers.fireblocks.com/docs/execute-smart-transfers).
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param ticket_id: (required) - :type ticket_id: str - :param smart_transfer_create_ticket_term: (required) - :type smart_transfer_create_ticket_term: SmartTransferCreateTicketTerm - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="create_ticket_term", param_name="ticket_id", param_value=ticket_id) - - _param = self._create_ticket_term_serialize( - ticket_id=ticket_id, - smart_transfer_create_ticket_term=smart_transfer_create_ticket_term, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "SmartTransferTicketTermResponse", - '403': "SmartTransferForbiddenResponse", - '422': "SmartTransferBadRequestResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_ticket_term_serialize( - self, - ticket_id, - smart_transfer_create_ticket_term, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if ticket_id is not None: - _path_params['ticketId'] = ticket_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if smart_transfer_create_ticket_term is not None: - _body_params = smart_transfer_create_ticket_term - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/smart-transfers/{ticketId}/terms', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def find_ticket_by_id( - self, - ticket_id: StrictStr, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SmartTransferTicketResponse]]: - """Search Ticket by ID - - Find Smart Transfer ticket by id.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param ticket_id: (required) - :type ticket_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="find_ticket_by_id", param_name="ticket_id", param_value=ticket_id) - - _param = self._find_ticket_by_id_serialize( - ticket_id=ticket_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SmartTransferTicketResponse", - '403': "SmartTransferForbiddenResponse", - '404': "SmartTransferNotFoundResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _find_ticket_by_id_serialize( - self, - ticket_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if ticket_id is not None: - _path_params['ticketId'] = ticket_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/smart-transfers/{ticketId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def find_ticket_term_by_id( - self, - ticket_id: StrictStr, - term_id: StrictStr, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SmartTransferTicketTermResponse]]: - """Get Smart Transfer ticket term - - Find a specific term of a specific Smart Transfer ticket.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param ticket_id: (required) - :type ticket_id: str - :param term_id: (required) - :type term_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="find_ticket_term_by_id", param_name="ticket_id", param_value=ticket_id) - validate_not_empty_string(function_name="find_ticket_term_by_id", param_name="term_id", param_value=term_id) - - _param = self._find_ticket_term_by_id_serialize( - ticket_id=ticket_id, - term_id=term_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SmartTransferTicketTermResponse", - '403': "SmartTransferForbiddenResponse", - '404': "SmartTransferNotFoundResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _find_ticket_term_by_id_serialize( - self, - ticket_id, - term_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if ticket_id is not None: - _path_params['ticketId'] = ticket_id - if term_id is not None: - _path_params['termId'] = term_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/smart-transfers/{ticketId}/terms/{termId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def fulfill_ticket( - self, - ticket_id: StrictStr, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SmartTransferTicketResponse]]: - """Fund ticket manually - - Manually fulfill ticket, in case when all terms (legs) are funded manually.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param ticket_id: (required) - :type ticket_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="fulfill_ticket", param_name="ticket_id", param_value=ticket_id) - - _param = self._fulfill_ticket_serialize( - ticket_id=ticket_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SmartTransferTicketResponse", - '403': "SmartTransferForbiddenResponse", - '404': "SmartTransferNotFoundResponse", - '422': "SmartTransferBadRequestResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _fulfill_ticket_serialize( - self, - ticket_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if ticket_id is not None: - _path_params['ticketId'] = ticket_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/smart-transfers/{ticketId}/fulfill', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def fund_dvp_ticket( - self, - ticket_id: StrictStr, - smart_transfer_fund_dvp_ticket: SmartTransferFundDvpTicket, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SmartTransferTicketResponse]]: - """Fund dvp ticket - - Create or fulfill dvp ticket order - - :param ticket_id: (required) - :type ticket_id: str - :param smart_transfer_fund_dvp_ticket: (required) - :type smart_transfer_fund_dvp_ticket: SmartTransferFundDvpTicket - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="fund_dvp_ticket", param_name="ticket_id", param_value=ticket_id) - - _param = self._fund_dvp_ticket_serialize( - ticket_id=ticket_id, - smart_transfer_fund_dvp_ticket=smart_transfer_fund_dvp_ticket, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SmartTransferTicketResponse", - '403': "SmartTransferForbiddenResponse", - '404': "SmartTransferNotFoundResponse", - '422': "SmartTransferBadRequestResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _fund_dvp_ticket_serialize( - self, - ticket_id, - smart_transfer_fund_dvp_ticket, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if ticket_id is not None: - _path_params['ticketId'] = ticket_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if smart_transfer_fund_dvp_ticket is not None: - _body_params = smart_transfer_fund_dvp_ticket - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/smart_transfers/{ticketId}/dvp/fund', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def fund_ticket_term( - self, - ticket_id: StrictStr, - term_id: StrictStr, - smart_transfer_fund_term: SmartTransferFundTerm, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SmartTransferTicketTermResponse]]: - """Define funding source - - Set funding source for ticket term (in case of ASYNC tickets, this will execute transfer immediately).
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param ticket_id: (required) - :type ticket_id: str - :param term_id: (required) - :type term_id: str - :param smart_transfer_fund_term: (required) - :type smart_transfer_fund_term: SmartTransferFundTerm - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="fund_ticket_term", param_name="ticket_id", param_value=ticket_id) - validate_not_empty_string(function_name="fund_ticket_term", param_name="term_id", param_value=term_id) - - _param = self._fund_ticket_term_serialize( - ticket_id=ticket_id, - term_id=term_id, - smart_transfer_fund_term=smart_transfer_fund_term, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "SmartTransferTicketTermResponse", - '403': "SmartTransferForbiddenResponse", - '404': "SmartTransferNotFoundResponse", - '422': "SmartTransferBadRequestResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _fund_ticket_term_serialize( - self, - ticket_id, - term_id, - smart_transfer_fund_term, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if ticket_id is not None: - _path_params['ticketId'] = ticket_id - if term_id is not None: - _path_params['termId'] = term_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if smart_transfer_fund_term is not None: - _body_params = smart_transfer_fund_term - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/smart-transfers/{ticketId}/terms/{termId}/fund', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_smart_transfer_statistic( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SmartTransferStatistic]]: - """Get smart transfers statistic - - Get smart transfer statistic - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_smart_transfer_statistic_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SmartTransferStatistic", - '403': "SmartTransferForbiddenResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_smart_transfer_statistic_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/smart_transfers/statistic', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_smart_transfer_user_groups( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SmartTransferUserGroupsResponse]]: - """Get user group - - Get Smart Transfer user groups.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_smart_transfer_user_groups_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SmartTransferUserGroupsResponse", - '403': "SmartTransferForbiddenResponse", - '422': "SmartTransferBadRequestResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_smart_transfer_user_groups_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/smart-transfers/settings/user-groups', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def manually_fund_ticket_term( - self, - ticket_id: StrictStr, - term_id: StrictStr, - smart_transfer_manually_fund_term: SmartTransferManuallyFundTerm, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SmartTransferTicketTermResponse]]: - """Manually add term transaction - - Manually set ticket term transaction.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param ticket_id: (required) - :type ticket_id: str - :param term_id: (required) - :type term_id: str - :param smart_transfer_manually_fund_term: (required) - :type smart_transfer_manually_fund_term: SmartTransferManuallyFundTerm - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="manually_fund_ticket_term", param_name="ticket_id", param_value=ticket_id) - validate_not_empty_string(function_name="manually_fund_ticket_term", param_name="term_id", param_value=term_id) - - _param = self._manually_fund_ticket_term_serialize( - ticket_id=ticket_id, - term_id=term_id, - smart_transfer_manually_fund_term=smart_transfer_manually_fund_term, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "SmartTransferTicketTermResponse", - '403': "SmartTransferForbiddenResponse", - '404': "SmartTransferNotFoundResponse", - '422': "SmartTransferBadRequestResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _manually_fund_ticket_term_serialize( - self, - ticket_id, - term_id, - smart_transfer_manually_fund_term, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if ticket_id is not None: - _path_params['ticketId'] = ticket_id - if term_id is not None: - _path_params['termId'] = term_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if smart_transfer_manually_fund_term is not None: - _body_params = smart_transfer_manually_fund_term - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/smart-transfers/{ticketId}/terms/{termId}/manually-fund', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def remove_ticket_term( - self, - ticket_id: StrictStr, - term_id: StrictStr, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Delete ticket leg (term) - - Delete ticket term when ticket is in DRAFT status - - :param ticket_id: (required) - :type ticket_id: str - :param term_id: (required) - :type term_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="remove_ticket_term", param_name="ticket_id", param_value=ticket_id) - validate_not_empty_string(function_name="remove_ticket_term", param_name="term_id", param_value=term_id) - - _param = self._remove_ticket_term_serialize( - ticket_id=ticket_id, - term_id=term_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '204': None, - '403': "SmartTransferForbiddenResponse", - '404': "SmartTransferNotFoundResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _remove_ticket_term_serialize( - self, - ticket_id, - term_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if ticket_id is not None: - _path_params['ticketId'] = ticket_id - if term_id is not None: - _path_params['termId'] = term_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/smart-transfers/{ticketId}/terms/{termId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def search_tickets( - self, - q: Annotated[Optional[Annotated[str, Field(min_length=1, strict=True)]], Field(description="Search string - counterparty name or asset or ticketId. Optional")] = None, - statuses: Annotated[Optional[List[StrictStr]], Field(description="Ticket statuses for Smart Transfer tickets. Optional")] = None, - network_id: Annotated[Optional[StrictStr], Field(description="NetworkId that is used in the ticket . Optional")] = None, - created_by_me: Annotated[Optional[StrictBool], Field(description="Filter created tickets by created by self or by others. Optional")] = None, - expires_after: Annotated[Optional[datetime], Field(description="Lower bound of search range. Optional")] = None, - expires_before: Annotated[Optional[datetime], Field(description="Upper bound of search range. Optional")] = None, - type: Annotated[Optional[StrictStr], Field(description="Type of transfer. ASYNC executes transfers as they are funded, DVP executes all terms (legs) as one dvp transfer")] = None, - external_ref_id: Annotated[Optional[Annotated[str, Field(min_length=1, strict=True, max_length=64)]], Field(description="External ref. ID that workspace can use to identify ticket outside of Fireblocks system.")] = None, - after: Annotated[Optional[StrictStr], Field(description="ID of the record after which to fetch $limit records")] = None, - limit: Annotated[Optional[Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]]], Field(description="Number of records to fetch. By default, it is 100")] = None, - sort_by: Annotated[Optional[StrictStr], Field(description="Sort by field")] = None, - order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering (default DESC)")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SmartTransferTicketFilteredResponse]]: - """Find Ticket - - Find tickets by their title or ticker. You can also query all tickets without filters by not providing any input parameters. **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param q: Search string - counterparty name or asset or ticketId. Optional - :type q: str - :param statuses: Ticket statuses for Smart Transfer tickets. Optional - :type statuses: List[str] - :param network_id: NetworkId that is used in the ticket . Optional - :type network_id: str - :param created_by_me: Filter created tickets by created by self or by others. Optional - :type created_by_me: bool - :param expires_after: Lower bound of search range. Optional - :type expires_after: datetime - :param expires_before: Upper bound of search range. Optional - :type expires_before: datetime - :param type: Type of transfer. ASYNC executes transfers as they are funded, DVP executes all terms (legs) as one dvp transfer - :type type: str - :param external_ref_id: External ref. ID that workspace can use to identify ticket outside of Fireblocks system. - :type external_ref_id: str - :param after: ID of the record after which to fetch $limit records - :type after: str - :param limit: Number of records to fetch. By default, it is 100 - :type limit: float - :param sort_by: Sort by field - :type sort_by: str - :param order: ASC / DESC ordering (default DESC) - :type order: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._search_tickets_serialize( - q=q, - statuses=statuses, - network_id=network_id, - created_by_me=created_by_me, - expires_after=expires_after, - expires_before=expires_before, - type=type, - external_ref_id=external_ref_id, - after=after, - limit=limit, - sort_by=sort_by, - order=order, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SmartTransferTicketFilteredResponse", - '403': "SmartTransferForbiddenResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _search_tickets_serialize( - self, - q, - statuses, - network_id, - created_by_me, - expires_after, - expires_before, - type, - external_ref_id, - after, - limit, - sort_by, - order, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - 'statuses': 'multi', - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if q is not None: - - _query_params.append(('q', q)) - - if statuses is not None: - - _query_params.append(('statuses', statuses)) - - if network_id is not None: - - _query_params.append(('networkId', network_id)) - - if created_by_me is not None: - - _query_params.append(('createdByMe', created_by_me)) - - if expires_after is not None: - if isinstance(expires_after, datetime): - _query_params.append( - ( - 'expiresAfter', - expires_after.strftime( - self.api_client.configuration.datetime_format - ) - ) - ) - else: - _query_params.append(('expiresAfter', expires_after)) - - if expires_before is not None: - if isinstance(expires_before, datetime): - _query_params.append( - ( - 'expiresBefore', - expires_before.strftime( - self.api_client.configuration.datetime_format - ) - ) - ) - else: - _query_params.append(('expiresBefore', expires_before)) - - if type is not None: - - _query_params.append(('type', type)) - - if external_ref_id is not None: - - _query_params.append(('externalRefId', external_ref_id)) - - if after is not None: - - _query_params.append(('after', after)) - - if limit is not None: - - _query_params.append(('limit', limit)) - - if sort_by is not None: - - _query_params.append(('sortBy', sort_by)) - - if order is not None: - - _query_params.append(('order', order)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/smart-transfers', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_external_ref_id( - self, - ticket_id: StrictStr, - smart_transfer_set_ticket_external_id: SmartTransferSetTicketExternalId, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SmartTransferTicketResponse]]: - """Add external ref. ID - - Set external id Smart Transfer ticket.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param ticket_id: (required) - :type ticket_id: str - :param smart_transfer_set_ticket_external_id: (required) - :type smart_transfer_set_ticket_external_id: SmartTransferSetTicketExternalId - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="set_external_ref_id", param_name="ticket_id", param_value=ticket_id) - - _param = self._set_external_ref_id_serialize( - ticket_id=ticket_id, - smart_transfer_set_ticket_external_id=smart_transfer_set_ticket_external_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SmartTransferTicketResponse", - '403': "SmartTransferForbiddenResponse", - '404': "SmartTransferNotFoundResponse", - '422': "SmartTransferBadRequestResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_external_ref_id_serialize( - self, - ticket_id, - smart_transfer_set_ticket_external_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if ticket_id is not None: - _path_params['ticketId'] = ticket_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if smart_transfer_set_ticket_external_id is not None: - _body_params = smart_transfer_set_ticket_external_id - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/smart-transfers/{ticketId}/external-id', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_ticket_expiration( - self, - ticket_id: StrictStr, - smart_transfer_set_ticket_expiration: SmartTransferSetTicketExpiration, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SmartTransferTicketResponse]]: - """Set expiration - - Set expiration date on Smart Transfer ticket.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param ticket_id: (required) - :type ticket_id: str - :param smart_transfer_set_ticket_expiration: (required) - :type smart_transfer_set_ticket_expiration: SmartTransferSetTicketExpiration - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="set_ticket_expiration", param_name="ticket_id", param_value=ticket_id) - - _param = self._set_ticket_expiration_serialize( - ticket_id=ticket_id, - smart_transfer_set_ticket_expiration=smart_transfer_set_ticket_expiration, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SmartTransferTicketResponse", - '403': "SmartTransferForbiddenResponse", - '404': "SmartTransferNotFoundResponse", - '422': "SmartTransferBadRequestResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_ticket_expiration_serialize( - self, - ticket_id, - smart_transfer_set_ticket_expiration, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if ticket_id is not None: - _path_params['ticketId'] = ticket_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if smart_transfer_set_ticket_expiration is not None: - _body_params = smart_transfer_set_ticket_expiration - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/smart-transfers/{ticketId}/expires-in', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_user_groups( - self, - smart_transfer_set_user_groups: SmartTransferSetUserGroups, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SmartTransferUserGroupsResponse]]: - """Set user group - - Set Smart Transfers user group to receive email notifications for Smart Transfers.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param smart_transfer_set_user_groups: (required) - :type smart_transfer_set_user_groups: SmartTransferSetUserGroups - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._set_user_groups_serialize( - smart_transfer_set_user_groups=smart_transfer_set_user_groups, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "SmartTransferUserGroupsResponse", - '403': "SmartTransferForbiddenResponse", - '422': "SmartTransferBadRequestResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_user_groups_serialize( - self, - smart_transfer_set_user_groups, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if smart_transfer_set_user_groups is not None: - _body_params = smart_transfer_set_user_groups - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/smart-transfers/settings/user-groups', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def submit_ticket( - self, - ticket_id: StrictStr, - smart_transfer_submit_ticket: SmartTransferSubmitTicket, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SmartTransferTicketResponse]]: - """Submit ticket - - Submit Smart Transfer ticket - change status into ready for approval if auto approval is not turned on, or OPEN if auto approval is on.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param ticket_id: (required) - :type ticket_id: str - :param smart_transfer_submit_ticket: (required) - :type smart_transfer_submit_ticket: SmartTransferSubmitTicket - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="submit_ticket", param_name="ticket_id", param_value=ticket_id) - - _param = self._submit_ticket_serialize( - ticket_id=ticket_id, - smart_transfer_submit_ticket=smart_transfer_submit_ticket, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SmartTransferTicketResponse", - '403': "SmartTransferForbiddenResponse", - '404': "SmartTransferNotFoundResponse", - '422': "SmartTransferBadRequestResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _submit_ticket_serialize( - self, - ticket_id, - smart_transfer_submit_ticket, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if ticket_id is not None: - _path_params['ticketId'] = ticket_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if smart_transfer_submit_ticket is not None: - _body_params = smart_transfer_submit_ticket - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/smart-transfers/{ticketId}/submit', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_ticket_term( - self, - ticket_id: StrictStr, - term_id: StrictStr, - smart_transfer_update_ticket_term: SmartTransferUpdateTicketTerm, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SmartTransferTicketTermResponse]]: - """Update ticket leg (term) - - Update ticket term (when ticket status is DRAFT) - - :param ticket_id: (required) - :type ticket_id: str - :param term_id: (required) - :type term_id: str - :param smart_transfer_update_ticket_term: (required) - :type smart_transfer_update_ticket_term: SmartTransferUpdateTicketTerm - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="update_ticket_term", param_name="ticket_id", param_value=ticket_id) - validate_not_empty_string(function_name="update_ticket_term", param_name="term_id", param_value=term_id) - - _param = self._update_ticket_term_serialize( - ticket_id=ticket_id, - term_id=term_id, - smart_transfer_update_ticket_term=smart_transfer_update_ticket_term, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SmartTransferTicketTermResponse", - '403': "SmartTransferForbiddenResponse", - '404': "SmartTransferNotFoundResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_ticket_term_serialize( - self, - ticket_id, - term_id, - smart_transfer_update_ticket_term, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if ticket_id is not None: - _path_params['ticketId'] = ticket_id - if term_id is not None: - _path_params['termId'] = term_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if smart_transfer_update_ticket_term is not None: - _body_params = smart_transfer_update_ticket_term - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/smart-transfers/{ticketId}/terms/{termId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdEJvb2wsIFN0cmljdFN0ciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfYXBwcm92ZV90ZXJtIGltcG9ydCBTbWFydFRyYW5zZmVyQXBwcm92ZVRlcm0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9jcmVhdGVfdGlja2V0IGltcG9ydCBTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfY3JlYXRlX3RpY2tldF90ZXJtIGltcG9ydCBTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0VGVybQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2Z1bmRfZHZwX3RpY2tldCBpbXBvcnQgU21hcnRUcmFuc2ZlckZ1bmREdnBUaWNrZXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9mdW5kX3Rlcm0gaW1wb3J0IFNtYXJ0VHJhbnNmZXJGdW5kVGVybQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX21hbnVhbGx5X2Z1bmRfdGVybSBpbXBvcnQgU21hcnRUcmFuc2Zlck1hbnVhbGx5RnVuZFRlcm0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9zZXRfdGlja2V0X2V4cGlyYXRpb24gaW1wb3J0IFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHBpcmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfc2V0X3RpY2tldF9leHRlcm5hbF9pZCBpbXBvcnQgU21hcnRUcmFuc2ZlclNldFRpY2tldEV4dGVybmFsSWQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9zZXRfdXNlcl9ncm91cHMgaW1wb3J0IFNtYXJ0VHJhbnNmZXJTZXRVc2VyR3JvdXBzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfc3RhdGlzdGljIGltcG9ydCBTbWFydFRyYW5zZmVyU3RhdGlzdGljCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfc3VibWl0X3RpY2tldCBpbXBvcnQgU21hcnRUcmFuc2ZlclN1Ym1pdFRpY2tldApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldF9maWx0ZXJlZF9yZXNwb25zZSBpbXBvcnQgU21hcnRUcmFuc2ZlclRpY2tldEZpbHRlcmVkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl90aWNrZXRfcmVzcG9uc2UgaW1wb3J0IFNtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldF90ZXJtX3Jlc3BvbnNlIGltcG9ydCBTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfdXBkYXRlX3RpY2tldF90ZXJtIGltcG9ydCBTbWFydFRyYW5zZmVyVXBkYXRlVGlja2V0VGVybQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3VzZXJfZ3JvdXBzX3Jlc3BvbnNlIGltcG9ydCBTbWFydFRyYW5zZmVyVXNlckdyb3Vwc1Jlc3BvbnNlCgpmcm9tIGZpcmVibG9ja3MuYXBpX2NsaWVudCBpbXBvcnQgQXBpQ2xpZW50LCBSZXF1ZXN0U2VyaWFsaXplZApmcm9tIGZpcmVibG9ja3MuYXBpX3Jlc3BvbnNlIGltcG9ydCBBcGlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MucmVzdCBpbXBvcnQgUkVTVFJlc3BvbnNlVHlwZQpmcm9tIGZpcmVibG9ja3MudmFsaWRhdGlvbl91dGlscyBpbXBvcnQgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZwoKCmNsYXNzIFNtYXJ0VHJhbnNmZXJBcGk6CiAgICAiIiJOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yCiAgICBSZWY6IGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaAoKICAgIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS4KICAgICIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcGlfY2xpZW50PU5vbmUpIC0+IE5vbmU6CiAgICAgICAgaWYgYXBpX2NsaWVudCBpcyBOb25lOgogICAgICAgICAgICBhcGlfY2xpZW50ID0gQXBpQ2xpZW50LmdldF9kZWZhdWx0KCkKICAgICAgICBzZWxmLmFwaV9jbGllbnQgPSBhcGlfY2xpZW50CgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgYXBwcm92ZV9kdl9wX3RpY2tldF90ZXJtKAogICAgICAgIHNlbGYsCiAgICAgICAgdGlja2V0X2lkOiBTdHJpY3RTdHIsCiAgICAgICAgdGVybV9pZDogU3RyaWN0U3RyLAogICAgICAgIHNtYXJ0X3RyYW5zZmVyX2FwcHJvdmVfdGVybTogU21hcnRUcmFuc2ZlckFwcHJvdmVUZXJtLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1NtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2VdXToKICAgICAgICAiIiJTZXQgZnVuZGluZyBzb3VyY2UgYW5kIGFwcHJvdmFsCgogICAgICAgIFNldCBmdW5kaW5nIHNvdXJjZSBmb3IgdGlja2V0IHRlcm0gYW5kIGNyZWF0aW5nIGFwcHJvdmluZyB0cmFuc2FjdGlvbiBmb3IgY29udHJhY3QgdG8gdHJhbnNmZXIgYXNzZXQKCiAgICAgICAgOnBhcmFtIHRpY2tldF9pZDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHRpY2tldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIHRlcm1faWQ6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB0ZXJtX2lkOiBzdHIKICAgICAgICA6cGFyYW0gc21hcnRfdHJhbnNmZXJfYXBwcm92ZV90ZXJtOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgc21hcnRfdHJhbnNmZXJfYXBwcm92ZV90ZXJtOiBTbWFydFRyYW5zZmVyQXBwcm92ZVRlcm0KICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iYXBwcm92ZV9kdl9wX3RpY2tldF90ZXJtIiwgcGFyYW1fbmFtZT0idGlja2V0X2lkIiwgcGFyYW1fdmFsdWU9dGlja2V0X2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iYXBwcm92ZV9kdl9wX3RpY2tldF90ZXJtIiwgcGFyYW1fbmFtZT0idGVybV9pZCIsIHBhcmFtX3ZhbHVlPXRlcm1faWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2FwcHJvdmVfZHZfcF90aWNrZXRfdGVybV9zZXJpYWxpemUoCiAgICAgICAgICAgIHRpY2tldF9pZD10aWNrZXRfaWQsCiAgICAgICAgICAgIHRlcm1faWQ9dGVybV9pZCwKICAgICAgICAgICAgc21hcnRfdHJhbnNmZXJfYXBwcm92ZV90ZXJtPXNtYXJ0X3RyYW5zZmVyX2FwcHJvdmVfdGVybSwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAxJzogIlNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2UiLAogICAgICAgICAgICAnNDAzJzogIlNtYXJ0VHJhbnNmZXJGb3JiaWRkZW5SZXNwb25zZSIsCiAgICAgICAgICAgICc0MDQnOiAiU21hcnRUcmFuc2Zlck5vdEZvdW5kUmVzcG9uc2UiLAogICAgICAgICAgICAnNDIyJzogIlNtYXJ0VHJhbnNmZXJCYWRSZXF1ZXN0UmVzcG9uc2UiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfYXBwcm92ZV9kdl9wX3RpY2tldF90ZXJtX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHRpY2tldF9pZCwKICAgICAgICB0ZXJtX2lkLAogICAgICAgIHNtYXJ0X3RyYW5zZmVyX2FwcHJvdmVfdGVybSwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHRpY2tldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd0aWNrZXRJZCddID0gdGlja2V0X2lkCiAgICAgICAgaWYgdGVybV9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd0ZXJtSWQnXSA9IHRlcm1faWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBzbWFydF90cmFuc2Zlcl9hcHByb3ZlX3Rlcm0gaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHNtYXJ0X3RyYW5zZmVyX2FwcHJvdmVfdGVybQoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BVVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zbWFydF90cmFuc2ZlcnMve3RpY2tldElkfS90ZXJtcy97dGVybUlkfS9kdnAvYXBwcm92ZScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBjYW5jZWxfdGlja2V0KAogICAgICAgIHNlbGYsCiAgICAgICAgdGlja2V0X2lkOiBTdHJpY3RTdHIsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlXV06CiAgICAgICAgIiIiQ2FuY2VsIFRpY2tldAoKICAgICAgICBDYW5jZWwgU21hcnQgVHJhbnNmZXIgdGlja2V0LiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKICAgICAgICA6cGFyYW0gdGlja2V0X2lkOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdGlja2V0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iY2FuY2VsX3RpY2tldCIsIHBhcmFtX25hbWU9InRpY2tldF9pZCIsIHBhcmFtX3ZhbHVlPXRpY2tldF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fY2FuY2VsX3RpY2tldF9zZXJpYWxpemUoCiAgICAgICAgICAgIHRpY2tldF9pZD10aWNrZXRfaWQsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UiLAogICAgICAgICAgICAnNDAzJzogIlNtYXJ0VHJhbnNmZXJGb3JiaWRkZW5SZXNwb25zZSIsCiAgICAgICAgICAgICc0MDQnOiAiU21hcnRUcmFuc2Zlck5vdEZvdW5kUmVzcG9uc2UiLAogICAgICAgICAgICAnNDIyJzogIlNtYXJ0VHJhbnNmZXJCYWRSZXF1ZXN0UmVzcG9uc2UiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfY2FuY2VsX3RpY2tldF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB0aWNrZXRfaWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB0aWNrZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1sndGlja2V0SWQnXSA9IHRpY2tldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQVVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc21hcnQtdHJhbnNmZXJzL3t0aWNrZXRJZH0vY2FuY2VsJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGNyZWF0ZV90aWNrZXQoCiAgICAgICAgc2VsZiwKICAgICAgICBzbWFydF90cmFuc2Zlcl9jcmVhdGVfdGlja2V0OiBTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1NtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZV1dOgogICAgICAgICIiIkNyZWF0ZSBUaWNrZXQKCiAgICAgICAgQ3JlYXRlcyBhIG5ldyBTbWFydCBUcmFuc2ZlciB0aWNrZXQuIExlYXJuIG1vcmUgYWJvdXQgRmlyZWJsb2NrcyBTbWFydCBUcmFuc2ZlcnMgW2hlcmVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL2V4ZWN1dGUtc21hcnQtdHJhbnNmZXJzKS4gICoqTm90ZToqKiBUaGUgYERWUGAgdmFsdWUgaXMgaW4gRWFybHkgQWNjZXNzIGFuZCBzaG91bGQgb25seSBiZSB1c2VkIGlmIEZpcmVibG9ja3MgaGFzIGVuYWJsZWQgaXQgaW4geW91ciB3b3Jrc3BhY2UuIENvbnRhY3QgeW91ciBDdXN0b21lciBTdWNjZXNzIE1hbmFnZXIgZm9yIG1vcmUgaW5mb3JtYXRpb24uICAqKkVuZHBvaW50IFBlcm1pc3Npb25zOioqIEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLiAKCiAgICAgICAgOnBhcmFtIHNtYXJ0X3RyYW5zZmVyX2NyZWF0ZV90aWNrZXQ6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBzbWFydF90cmFuc2Zlcl9jcmVhdGVfdGlja2V0OiBTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0CiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fY3JlYXRlX3RpY2tldF9zZXJpYWxpemUoCiAgICAgICAgICAgIHNtYXJ0X3RyYW5zZmVyX2NyZWF0ZV90aWNrZXQ9c21hcnRfdHJhbnNmZXJfY3JlYXRlX3RpY2tldCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAxJzogIlNtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZSIsCiAgICAgICAgICAgICc0MDMnOiAiU21hcnRUcmFuc2ZlckZvcmJpZGRlblJlc3BvbnNlIiwKICAgICAgICAgICAgJzQyMic6ICJTbWFydFRyYW5zZmVyQmFkUmVxdWVzdFJlc3BvbnNlIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2NyZWF0ZV90aWNrZXRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgc21hcnRfdHJhbnNmZXJfY3JlYXRlX3RpY2tldCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHNtYXJ0X3RyYW5zZmVyX2NyZWF0ZV90aWNrZXQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHNtYXJ0X3RyYW5zZmVyX2NyZWF0ZV90aWNrZXQKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3NtYXJ0LXRyYW5zZmVycycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBjcmVhdGVfdGlja2V0X3Rlcm0oCiAgICAgICAgc2VsZiwKICAgICAgICB0aWNrZXRfaWQ6IFN0cmljdFN0ciwKICAgICAgICBzbWFydF90cmFuc2Zlcl9jcmVhdGVfdGlja2V0X3Rlcm06IFNtYXJ0VHJhbnNmZXJDcmVhdGVUaWNrZXRUZXJtLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1NtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2VdXToKICAgICAgICAiIiJDcmVhdGUgbGVnICh0ZXJtKQoKICAgICAgICBDcmVhdGVzIG5ldyBzbWFydCB0cmFuc2ZlciB0aWNrZXQgdGVybSAod2hlbiB0aGUgdGlja2V0IHN0YXR1cyBpcyBEUkFGVCkuIExlYXJuIG1vcmUgYWJvdXQgRmlyZWJsb2NrcyBTbWFydCBUcmFuc2ZlcnMgaW4gdGhlIGZvbGxvd2luZyBbZ3VpZGVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL2V4ZWN1dGUtc21hcnQtdHJhbnNmZXJzKS4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiAgICAgICAgOnBhcmFtIHRpY2tldF9pZDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHRpY2tldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIHNtYXJ0X3RyYW5zZmVyX2NyZWF0ZV90aWNrZXRfdGVybTogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHNtYXJ0X3RyYW5zZmVyX2NyZWF0ZV90aWNrZXRfdGVybTogU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldFRlcm0KICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iY3JlYXRlX3RpY2tldF90ZXJtIiwgcGFyYW1fbmFtZT0idGlja2V0X2lkIiwgcGFyYW1fdmFsdWU9dGlja2V0X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9jcmVhdGVfdGlja2V0X3Rlcm1fc2VyaWFsaXplKAogICAgICAgICAgICB0aWNrZXRfaWQ9dGlja2V0X2lkLAogICAgICAgICAgICBzbWFydF90cmFuc2Zlcl9jcmVhdGVfdGlja2V0X3Rlcm09c21hcnRfdHJhbnNmZXJfY3JlYXRlX3RpY2tldF90ZXJtLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiAiU21hcnRUcmFuc2ZlclRpY2tldFRlcm1SZXNwb25zZSIsCiAgICAgICAgICAgICc0MDMnOiAiU21hcnRUcmFuc2ZlckZvcmJpZGRlblJlc3BvbnNlIiwKICAgICAgICAgICAgJzQyMic6ICJTbWFydFRyYW5zZmVyQmFkUmVxdWVzdFJlc3BvbnNlIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2NyZWF0ZV90aWNrZXRfdGVybV9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB0aWNrZXRfaWQsCiAgICAgICAgc21hcnRfdHJhbnNmZXJfY3JlYXRlX3RpY2tldF90ZXJtLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgdGlja2V0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3RpY2tldElkJ10gPSB0aWNrZXRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBzbWFydF90cmFuc2Zlcl9jcmVhdGVfdGlja2V0X3Rlcm0gaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHNtYXJ0X3RyYW5zZmVyX2NyZWF0ZV90aWNrZXRfdGVybQoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc21hcnQtdHJhbnNmZXJzL3t0aWNrZXRJZH0vdGVybXMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZmluZF90aWNrZXRfYnlfaWQoCiAgICAgICAgc2VsZiwKICAgICAgICB0aWNrZXRfaWQ6IFN0cmljdFN0ciwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1NtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZV1dOgogICAgICAgICIiIlNlYXJjaCBUaWNrZXQgYnkgSUQKCiAgICAgICAgRmluZCBTbWFydCBUcmFuc2ZlciB0aWNrZXQgYnkgaWQuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIFZpZXdlci4KCiAgICAgICAgOnBhcmFtIHRpY2tldF9pZDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHRpY2tldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImZpbmRfdGlja2V0X2J5X2lkIiwgcGFyYW1fbmFtZT0idGlja2V0X2lkIiwgcGFyYW1fdmFsdWU9dGlja2V0X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9maW5kX3RpY2tldF9ieV9pZF9zZXJpYWxpemUoCiAgICAgICAgICAgIHRpY2tldF9pZD10aWNrZXRfaWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UiLAogICAgICAgICAgICAnNDAzJzogIlNtYXJ0VHJhbnNmZXJGb3JiaWRkZW5SZXNwb25zZSIsCiAgICAgICAgICAgICc0MDQnOiAiU21hcnRUcmFuc2Zlck5vdEZvdW5kUmVzcG9uc2UiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZmluZF90aWNrZXRfYnlfaWRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdGlja2V0X2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB0aWNrZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1sndGlja2V0SWQnXSA9IHRpY2tldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3NtYXJ0LXRyYW5zZmVycy97dGlja2V0SWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGZpbmRfdGlja2V0X3Rlcm1fYnlfaWQoCiAgICAgICAgc2VsZiwKICAgICAgICB0aWNrZXRfaWQ6IFN0cmljdFN0ciwKICAgICAgICB0ZXJtX2lkOiBTdHJpY3RTdHIsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlXV06CiAgICAgICAgIiIiR2V0IFNtYXJ0IFRyYW5zZmVyIHRpY2tldCB0ZXJtCgogICAgICAgIEZpbmQgYSBzcGVjaWZpYyB0ZXJtIG9mIGEgc3BlY2lmaWMgU21hcnQgVHJhbnNmZXIgdGlja2V0LiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLCBWaWV3ZXIuCgogICAgICAgIDpwYXJhbSB0aWNrZXRfaWQ6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB0aWNrZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSB0ZXJtX2lkOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdGVybV9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImZpbmRfdGlja2V0X3Rlcm1fYnlfaWQiLCBwYXJhbV9uYW1lPSJ0aWNrZXRfaWQiLCBwYXJhbV92YWx1ZT10aWNrZXRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJmaW5kX3RpY2tldF90ZXJtX2J5X2lkIiwgcGFyYW1fbmFtZT0idGVybV9pZCIsIHBhcmFtX3ZhbHVlPXRlcm1faWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2ZpbmRfdGlja2V0X3Rlcm1fYnlfaWRfc2VyaWFsaXplKAogICAgICAgICAgICB0aWNrZXRfaWQ9dGlja2V0X2lkLAogICAgICAgICAgICB0ZXJtX2lkPXRlcm1faWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwMyc6ICJTbWFydFRyYW5zZmVyRm9yYmlkZGVuUmVzcG9uc2UiLAogICAgICAgICAgICAnNDA0JzogIlNtYXJ0VHJhbnNmZXJOb3RGb3VuZFJlc3BvbnNlIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2ZpbmRfdGlja2V0X3Rlcm1fYnlfaWRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdGlja2V0X2lkLAogICAgICAgIHRlcm1faWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHRpY2tldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd0aWNrZXRJZCddID0gdGlja2V0X2lkCiAgICAgICAgaWYgdGVybV9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd0ZXJtSWQnXSA9IHRlcm1faWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zbWFydC10cmFuc2ZlcnMve3RpY2tldElkfS90ZXJtcy97dGVybUlkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBmdWxmaWxsX3RpY2tldCgKICAgICAgICBzZWxmLAogICAgICAgIHRpY2tldF9pZDogU3RyaWN0U3RyLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1NtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZV1dOgogICAgICAgICIiIkZ1bmQgdGlja2V0IG1hbnVhbGx5CgogICAgICAgIE1hbnVhbGx5IGZ1bGZpbGwgdGlja2V0LCBpbiBjYXNlIHdoZW4gYWxsIHRlcm1zIChsZWdzKSBhcmUgZnVuZGVkIG1hbnVhbGx5LiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKICAgICAgICA6cGFyYW0gdGlja2V0X2lkOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdGlja2V0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZnVsZmlsbF90aWNrZXQiLCBwYXJhbV9uYW1lPSJ0aWNrZXRfaWQiLCBwYXJhbV92YWx1ZT10aWNrZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2Z1bGZpbGxfdGlja2V0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgdGlja2V0X2lkPXRpY2tldF9pZCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlNtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZSIsCiAgICAgICAgICAgICc0MDMnOiAiU21hcnRUcmFuc2ZlckZvcmJpZGRlblJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwNCc6ICJTbWFydFRyYW5zZmVyTm90Rm91bmRSZXNwb25zZSIsCiAgICAgICAgICAgICc0MjInOiAiU21hcnRUcmFuc2ZlckJhZFJlcXVlc3RSZXNwb25zZSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9mdWxmaWxsX3RpY2tldF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB0aWNrZXRfaWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB0aWNrZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1sndGlja2V0SWQnXSA9IHRpY2tldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQVVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc21hcnQtdHJhbnNmZXJzL3t0aWNrZXRJZH0vZnVsZmlsbCcsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBmdW5kX2R2cF90aWNrZXQoCiAgICAgICAgc2VsZiwKICAgICAgICB0aWNrZXRfaWQ6IFN0cmljdFN0ciwKICAgICAgICBzbWFydF90cmFuc2Zlcl9mdW5kX2R2cF90aWNrZXQ6IFNtYXJ0VHJhbnNmZXJGdW5kRHZwVGlja2V0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1NtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZV1dOgogICAgICAgICIiIkZ1bmQgZHZwIHRpY2tldAoKICAgICAgICBDcmVhdGUgb3IgZnVsZmlsbCBkdnAgdGlja2V0IG9yZGVyCgogICAgICAgIDpwYXJhbSB0aWNrZXRfaWQ6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB0aWNrZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBzbWFydF90cmFuc2Zlcl9mdW5kX2R2cF90aWNrZXQ6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBzbWFydF90cmFuc2Zlcl9mdW5kX2R2cF90aWNrZXQ6IFNtYXJ0VHJhbnNmZXJGdW5kRHZwVGlja2V0CiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImZ1bmRfZHZwX3RpY2tldCIsIHBhcmFtX25hbWU9InRpY2tldF9pZCIsIHBhcmFtX3ZhbHVlPXRpY2tldF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZnVuZF9kdnBfdGlja2V0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgdGlja2V0X2lkPXRpY2tldF9pZCwKICAgICAgICAgICAgc21hcnRfdHJhbnNmZXJfZnVuZF9kdnBfdGlja2V0PXNtYXJ0X3RyYW5zZmVyX2Z1bmRfZHZwX3RpY2tldCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlNtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZSIsCiAgICAgICAgICAgICc0MDMnOiAiU21hcnRUcmFuc2ZlckZvcmJpZGRlblJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwNCc6ICJTbWFydFRyYW5zZmVyTm90Rm91bmRSZXNwb25zZSIsCiAgICAgICAgICAgICc0MjInOiAiU21hcnRUcmFuc2ZlckJhZFJlcXVlc3RSZXNwb25zZSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9mdW5kX2R2cF90aWNrZXRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdGlja2V0X2lkLAogICAgICAgIHNtYXJ0X3RyYW5zZmVyX2Z1bmRfZHZwX3RpY2tldCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHRpY2tldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd0aWNrZXRJZCddID0gdGlja2V0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgc21hcnRfdHJhbnNmZXJfZnVuZF9kdnBfdGlja2V0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBzbWFydF90cmFuc2Zlcl9mdW5kX2R2cF90aWNrZXQKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQVVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc21hcnRfdHJhbnNmZXJzL3t0aWNrZXRJZH0vZHZwL2Z1bmQnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZnVuZF90aWNrZXRfdGVybSgKICAgICAgICBzZWxmLAogICAgICAgIHRpY2tldF9pZDogU3RyaWN0U3RyLAogICAgICAgIHRlcm1faWQ6IFN0cmljdFN0ciwKICAgICAgICBzbWFydF90cmFuc2Zlcl9mdW5kX3Rlcm06IFNtYXJ0VHJhbnNmZXJGdW5kVGVybSwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlXV06CiAgICAgICAgIiIiRGVmaW5lIGZ1bmRpbmcgc291cmNlCgogICAgICAgIFNldCBmdW5kaW5nIHNvdXJjZSBmb3IgdGlja2V0IHRlcm0gKGluIGNhc2Ugb2YgQVNZTkMgdGlja2V0cywgdGhpcyB3aWxsIGV4ZWN1dGUgdHJhbnNmZXIgaW1tZWRpYXRlbHkpLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKICAgICAgICA6cGFyYW0gdGlja2V0X2lkOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdGlja2V0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gdGVybV9pZDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHRlcm1faWQ6IHN0cgogICAgICAgIDpwYXJhbSBzbWFydF90cmFuc2Zlcl9mdW5kX3Rlcm06IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBzbWFydF90cmFuc2Zlcl9mdW5kX3Rlcm06IFNtYXJ0VHJhbnNmZXJGdW5kVGVybQogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJmdW5kX3RpY2tldF90ZXJtIiwgcGFyYW1fbmFtZT0idGlja2V0X2lkIiwgcGFyYW1fdmFsdWU9dGlja2V0X2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZnVuZF90aWNrZXRfdGVybSIsIHBhcmFtX25hbWU9InRlcm1faWQiLCBwYXJhbV92YWx1ZT10ZXJtX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9mdW5kX3RpY2tldF90ZXJtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgdGlja2V0X2lkPXRpY2tldF9pZCwKICAgICAgICAgICAgdGVybV9pZD10ZXJtX2lkLAogICAgICAgICAgICBzbWFydF90cmFuc2Zlcl9mdW5kX3Rlcm09c21hcnRfdHJhbnNmZXJfZnVuZF90ZXJtLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiAiU21hcnRUcmFuc2ZlclRpY2tldFRlcm1SZXNwb25zZSIsCiAgICAgICAgICAgICc0MDMnOiAiU21hcnRUcmFuc2ZlckZvcmJpZGRlblJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwNCc6ICJTbWFydFRyYW5zZmVyTm90Rm91bmRSZXNwb25zZSIsCiAgICAgICAgICAgICc0MjInOiAiU21hcnRUcmFuc2ZlckJhZFJlcXVlc3RSZXNwb25zZSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9mdW5kX3RpY2tldF90ZXJtX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHRpY2tldF9pZCwKICAgICAgICB0ZXJtX2lkLAogICAgICAgIHNtYXJ0X3RyYW5zZmVyX2Z1bmRfdGVybSwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHRpY2tldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd0aWNrZXRJZCddID0gdGlja2V0X2lkCiAgICAgICAgaWYgdGVybV9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd0ZXJtSWQnXSA9IHRlcm1faWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBzbWFydF90cmFuc2Zlcl9mdW5kX3Rlcm0gaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHNtYXJ0X3RyYW5zZmVyX2Z1bmRfdGVybQoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BVVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zbWFydC10cmFuc2ZlcnMve3RpY2tldElkfS90ZXJtcy97dGVybUlkfS9mdW5kJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9zbWFydF90cmFuc2Zlcl9zdGF0aXN0aWMoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1NtYXJ0VHJhbnNmZXJTdGF0aXN0aWNdXToKICAgICAgICAiIiJHZXQgc21hcnQgdHJhbnNmZXJzIHN0YXRpc3RpYwoKICAgICAgICBHZXQgc21hcnQgdHJhbnNmZXIgc3RhdGlzdGljCgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9zbWFydF90cmFuc2Zlcl9zdGF0aXN0aWNfc2VyaWFsaXplKAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiU21hcnRUcmFuc2ZlclN0YXRpc3RpYyIsCiAgICAgICAgICAgICc0MDMnOiAiU21hcnRUcmFuc2ZlckZvcmJpZGRlblJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3NtYXJ0X3RyYW5zZmVyX3N0YXRpc3RpY19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc21hcnRfdHJhbnNmZXJzL3N0YXRpc3RpYycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfc21hcnRfdHJhbnNmZXJfdXNlcl9ncm91cHMoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1NtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzUmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgdXNlciBncm91cAoKICAgICAgICBHZXQgU21hcnQgVHJhbnNmZXIgdXNlciBncm91cHMuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIFZpZXdlci4KCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X3NtYXJ0X3RyYW5zZmVyX3VzZXJfZ3JvdXBzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlNtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzUmVzcG9uc2UiLAogICAgICAgICAgICAnNDAzJzogIlNtYXJ0VHJhbnNmZXJGb3JiaWRkZW5SZXNwb25zZSIsCiAgICAgICAgICAgICc0MjInOiAiU21hcnRUcmFuc2ZlckJhZFJlcXVlc3RSZXNwb25zZSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfc21hcnRfdHJhbnNmZXJfdXNlcl9ncm91cHNfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3NtYXJ0LXRyYW5zZmVycy9zZXR0aW5ncy91c2VyLWdyb3VwcycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBtYW51YWxseV9mdW5kX3RpY2tldF90ZXJtKAogICAgICAgIHNlbGYsCiAgICAgICAgdGlja2V0X2lkOiBTdHJpY3RTdHIsCiAgICAgICAgdGVybV9pZDogU3RyaWN0U3RyLAogICAgICAgIHNtYXJ0X3RyYW5zZmVyX21hbnVhbGx5X2Z1bmRfdGVybTogU21hcnRUcmFuc2Zlck1hbnVhbGx5RnVuZFRlcm0sCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbU21hcnRUcmFuc2ZlclRpY2tldFRlcm1SZXNwb25zZV1dOgogICAgICAgICIiIk1hbnVhbGx5IGFkZCB0ZXJtIHRyYW5zYWN0aW9uCgogICAgICAgIE1hbnVhbGx5IHNldCB0aWNrZXQgdGVybSB0cmFuc2FjdGlvbi4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiAgICAgICAgOnBhcmFtIHRpY2tldF9pZDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHRpY2tldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIHRlcm1faWQ6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB0ZXJtX2lkOiBzdHIKICAgICAgICA6cGFyYW0gc21hcnRfdHJhbnNmZXJfbWFudWFsbHlfZnVuZF90ZXJtOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgc21hcnRfdHJhbnNmZXJfbWFudWFsbHlfZnVuZF90ZXJtOiBTbWFydFRyYW5zZmVyTWFudWFsbHlGdW5kVGVybQogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJtYW51YWxseV9mdW5kX3RpY2tldF90ZXJtIiwgcGFyYW1fbmFtZT0idGlja2V0X2lkIiwgcGFyYW1fdmFsdWU9dGlja2V0X2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0ibWFudWFsbHlfZnVuZF90aWNrZXRfdGVybSIsIHBhcmFtX25hbWU9InRlcm1faWQiLCBwYXJhbV92YWx1ZT10ZXJtX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9tYW51YWxseV9mdW5kX3RpY2tldF90ZXJtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgdGlja2V0X2lkPXRpY2tldF9pZCwKICAgICAgICAgICAgdGVybV9pZD10ZXJtX2lkLAogICAgICAgICAgICBzbWFydF90cmFuc2Zlcl9tYW51YWxseV9mdW5kX3Rlcm09c21hcnRfdHJhbnNmZXJfbWFudWFsbHlfZnVuZF90ZXJtLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiAiU21hcnRUcmFuc2ZlclRpY2tldFRlcm1SZXNwb25zZSIsCiAgICAgICAgICAgICc0MDMnOiAiU21hcnRUcmFuc2ZlckZvcmJpZGRlblJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwNCc6ICJTbWFydFRyYW5zZmVyTm90Rm91bmRSZXNwb25zZSIsCiAgICAgICAgICAgICc0MjInOiAiU21hcnRUcmFuc2ZlckJhZFJlcXVlc3RSZXNwb25zZSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9tYW51YWxseV9mdW5kX3RpY2tldF90ZXJtX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHRpY2tldF9pZCwKICAgICAgICB0ZXJtX2lkLAogICAgICAgIHNtYXJ0X3RyYW5zZmVyX21hbnVhbGx5X2Z1bmRfdGVybSwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHRpY2tldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd0aWNrZXRJZCddID0gdGlja2V0X2lkCiAgICAgICAgaWYgdGVybV9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd0ZXJtSWQnXSA9IHRlcm1faWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBzbWFydF90cmFuc2Zlcl9tYW51YWxseV9mdW5kX3Rlcm0gaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHNtYXJ0X3RyYW5zZmVyX21hbnVhbGx5X2Z1bmRfdGVybQoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BVVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zbWFydC10cmFuc2ZlcnMve3RpY2tldElkfS90ZXJtcy97dGVybUlkfS9tYW51YWxseS1mdW5kJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHJlbW92ZV90aWNrZXRfdGVybSgKICAgICAgICBzZWxmLAogICAgICAgIHRpY2tldF9pZDogU3RyaWN0U3RyLAogICAgICAgIHRlcm1faWQ6IFN0cmljdFN0ciwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW05vbmVdXToKICAgICAgICAiIiJEZWxldGUgdGlja2V0IGxlZyAodGVybSkKCiAgICAgICAgRGVsZXRlIHRpY2tldCB0ZXJtIHdoZW4gdGlja2V0IGlzIGluIERSQUZUIHN0YXR1cwoKICAgICAgICA6cGFyYW0gdGlja2V0X2lkOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdGlja2V0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gdGVybV9pZDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHRlcm1faWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJyZW1vdmVfdGlja2V0X3Rlcm0iLCBwYXJhbV9uYW1lPSJ0aWNrZXRfaWQiLCBwYXJhbV92YWx1ZT10aWNrZXRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJyZW1vdmVfdGlja2V0X3Rlcm0iLCBwYXJhbV9uYW1lPSJ0ZXJtX2lkIiwgcGFyYW1fdmFsdWU9dGVybV9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fcmVtb3ZlX3RpY2tldF90ZXJtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgdGlja2V0X2lkPXRpY2tldF9pZCwKICAgICAgICAgICAgdGVybV9pZD10ZXJtX2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDQnOiBOb25lLAogICAgICAgICAgICAnNDAzJzogIlNtYXJ0VHJhbnNmZXJGb3JiaWRkZW5SZXNwb25zZSIsCiAgICAgICAgICAgICc0MDQnOiAiU21hcnRUcmFuc2Zlck5vdEZvdW5kUmVzcG9uc2UiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfcmVtb3ZlX3RpY2tldF90ZXJtX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHRpY2tldF9pZCwKICAgICAgICB0ZXJtX2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB0aWNrZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1sndGlja2V0SWQnXSA9IHRpY2tldF9pZAogICAgICAgIGlmIHRlcm1faWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1sndGVybUlkJ10gPSB0ZXJtX2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdERUxFVEUnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc21hcnQtdHJhbnNmZXJzL3t0aWNrZXRJZH0vdGVybXMve3Rlcm1JZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgc2VhcmNoX3RpY2tldHMoCiAgICAgICAgc2VsZiwKICAgICAgICBxOiBBbm5vdGF0ZWRbT3B0aW9uYWxbQW5ub3RhdGVkW3N0ciwgRmllbGQobWluX2xlbmd0aD0xLCBzdHJpY3Q9VHJ1ZSldXSwgRmllbGQoZGVzY3JpcHRpb249IlNlYXJjaCBzdHJpbmcgLSBjb3VudGVycGFydHkgbmFtZSBvciBhc3NldCBvciB0aWNrZXRJZC4gT3B0aW9uYWwiKV0gPSBOb25lLAogICAgICAgIHN0YXR1c2VzOiBBbm5vdGF0ZWRbT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSwgRmllbGQoZGVzY3JpcHRpb249IlRpY2tldCBzdGF0dXNlcyBmb3IgU21hcnQgVHJhbnNmZXIgdGlja2V0cy4gT3B0aW9uYWwiKV0gPSBOb25lLAogICAgICAgIG5ldHdvcmtfaWQ6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iTmV0d29ya0lkIHRoYXQgaXMgdXNlZCBpbiB0aGUgdGlja2V0IC4gT3B0aW9uYWwiKV0gPSBOb25lLAogICAgICAgIGNyZWF0ZWRfYnlfbWU6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RCb29sXSwgRmllbGQoZGVzY3JpcHRpb249IkZpbHRlciBjcmVhdGVkIHRpY2tldHMgYnkgY3JlYXRlZCBieSBzZWxmIG9yIGJ5IG90aGVycy4gT3B0aW9uYWwiKV0gPSBOb25lLAogICAgICAgIGV4cGlyZXNfYWZ0ZXI6IEFubm90YXRlZFtPcHRpb25hbFtkYXRldGltZV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJMb3dlciBib3VuZCBvZiBzZWFyY2ggcmFuZ2UuIE9wdGlvbmFsIildID0gTm9uZSwKICAgICAgICBleHBpcmVzX2JlZm9yZTogQW5ub3RhdGVkW09wdGlvbmFsW2RhdGV0aW1lXSwgRmllbGQoZGVzY3JpcHRpb249IlVwcGVyIGJvdW5kIG9mIHNlYXJjaCByYW5nZS4gT3B0aW9uYWwiKV0gPSBOb25lLAogICAgICAgIHR5cGU6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iVHlwZSBvZiB0cmFuc2Zlci4gQVNZTkMgZXhlY3V0ZXMgdHJhbnNmZXJzIGFzIHRoZXkgYXJlIGZ1bmRlZCwgRFZQIGV4ZWN1dGVzIGFsbCB0ZXJtcyAobGVncykgYXMgb25lIGR2cCB0cmFuc2ZlciIpXSA9IE5vbmUsCiAgICAgICAgZXh0ZXJuYWxfcmVmX2lkOiBBbm5vdGF0ZWRbT3B0aW9uYWxbQW5ub3RhdGVkW3N0ciwgRmllbGQobWluX2xlbmd0aD0xLCBzdHJpY3Q9VHJ1ZSwgbWF4X2xlbmd0aD02NCldXSwgRmllbGQoZGVzY3JpcHRpb249IkV4dGVybmFsIHJlZi4gSUQgdGhhdCB3b3Jrc3BhY2UgY2FuIHVzZSB0byBpZGVudGlmeSB0aWNrZXQgb3V0c2lkZSBvZiBGaXJlYmxvY2tzIHN5c3RlbS4iKV0gPSBOb25lLAogICAgICAgIGFmdGVyOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IklEIG9mIHRoZSByZWNvcmQgYWZ0ZXIgd2hpY2ggdG8gZmV0Y2ggJGxpbWl0IHJlY29yZHMiKV0gPSBOb25lLAogICAgICAgIGxpbWl0OiBBbm5vdGF0ZWRbT3B0aW9uYWxbVW5pb25bQW5ub3RhdGVkW2Zsb2F0LCBGaWVsZChzdHJpY3Q9VHJ1ZSwgZ2U9MSldLCBBbm5vdGF0ZWRbaW50LCBGaWVsZChzdHJpY3Q9VHJ1ZSwgZ2U9MSldXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJOdW1iZXIgb2YgcmVjb3JkcyB0byBmZXRjaC4gQnkgZGVmYXVsdCwgaXQgaXMgMTAwIildID0gTm9uZSwKICAgICAgICBzb3J0X2J5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlNvcnQgYnkgZmllbGQiKV0gPSBOb25lLAogICAgICAgIG9yZGVyOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkFTQyAvIERFU0Mgb3JkZXJpbmcgKGRlZmF1bHQgREVTQykiKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbU21hcnRUcmFuc2ZlclRpY2tldEZpbHRlcmVkUmVzcG9uc2VdXToKICAgICAgICAiIiJGaW5kIFRpY2tldAoKICAgICAgICBGaW5kIHRpY2tldHMgYnkgdGhlaXIgdGl0bGUgb3IgdGlja2VyLiBZb3UgY2FuIGFsc28gcXVlcnkgYWxsIHRpY2tldHMgd2l0aG91dCBmaWx0ZXJzIGJ5IG5vdCBwcm92aWRpbmcgYW55IGlucHV0IHBhcmFtZXRlcnMuICoqRW5kcG9pbnQgUGVybWlzc2lvbnM6KiogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIFZpZXdlci4KCiAgICAgICAgOnBhcmFtIHE6IFNlYXJjaCBzdHJpbmcgLSBjb3VudGVycGFydHkgbmFtZSBvciBhc3NldCBvciB0aWNrZXRJZC4gT3B0aW9uYWwKICAgICAgICA6dHlwZSBxOiBzdHIKICAgICAgICA6cGFyYW0gc3RhdHVzZXM6IFRpY2tldCBzdGF0dXNlcyBmb3IgU21hcnQgVHJhbnNmZXIgdGlja2V0cy4gT3B0aW9uYWwKICAgICAgICA6dHlwZSBzdGF0dXNlczogTGlzdFtzdHJdCiAgICAgICAgOnBhcmFtIG5ldHdvcmtfaWQ6IE5ldHdvcmtJZCB0aGF0IGlzIHVzZWQgaW4gdGhlIHRpY2tldCAuIE9wdGlvbmFsCiAgICAgICAgOnR5cGUgbmV0d29ya19pZDogc3RyCiAgICAgICAgOnBhcmFtIGNyZWF0ZWRfYnlfbWU6IEZpbHRlciBjcmVhdGVkIHRpY2tldHMgYnkgY3JlYXRlZCBieSBzZWxmIG9yIGJ5IG90aGVycy4gT3B0aW9uYWwKICAgICAgICA6dHlwZSBjcmVhdGVkX2J5X21lOiBib29sCiAgICAgICAgOnBhcmFtIGV4cGlyZXNfYWZ0ZXI6IExvd2VyIGJvdW5kIG9mIHNlYXJjaCByYW5nZS4gT3B0aW9uYWwKICAgICAgICA6dHlwZSBleHBpcmVzX2FmdGVyOiBkYXRldGltZQogICAgICAgIDpwYXJhbSBleHBpcmVzX2JlZm9yZTogVXBwZXIgYm91bmQgb2Ygc2VhcmNoIHJhbmdlLiBPcHRpb25hbAogICAgICAgIDp0eXBlIGV4cGlyZXNfYmVmb3JlOiBkYXRldGltZQogICAgICAgIDpwYXJhbSB0eXBlOiBUeXBlIG9mIHRyYW5zZmVyLiBBU1lOQyBleGVjdXRlcyB0cmFuc2ZlcnMgYXMgdGhleSBhcmUgZnVuZGVkLCBEVlAgZXhlY3V0ZXMgYWxsIHRlcm1zIChsZWdzKSBhcyBvbmUgZHZwIHRyYW5zZmVyCiAgICAgICAgOnR5cGUgdHlwZTogc3RyCiAgICAgICAgOnBhcmFtIGV4dGVybmFsX3JlZl9pZDogRXh0ZXJuYWwgcmVmLiBJRCB0aGF0IHdvcmtzcGFjZSBjYW4gdXNlIHRvIGlkZW50aWZ5IHRpY2tldCBvdXRzaWRlIG9mIEZpcmVibG9ja3Mgc3lzdGVtLgogICAgICAgIDp0eXBlIGV4dGVybmFsX3JlZl9pZDogc3RyCiAgICAgICAgOnBhcmFtIGFmdGVyOiBJRCBvZiB0aGUgcmVjb3JkIGFmdGVyIHdoaWNoIHRvIGZldGNoICRsaW1pdCByZWNvcmRzCiAgICAgICAgOnR5cGUgYWZ0ZXI6IHN0cgogICAgICAgIDpwYXJhbSBsaW1pdDogTnVtYmVyIG9mIHJlY29yZHMgdG8gZmV0Y2guIEJ5IGRlZmF1bHQsIGl0IGlzIDEwMAogICAgICAgIDp0eXBlIGxpbWl0OiBmbG9hdAogICAgICAgIDpwYXJhbSBzb3J0X2J5OiBTb3J0IGJ5IGZpZWxkCiAgICAgICAgOnR5cGUgc29ydF9ieTogc3RyCiAgICAgICAgOnBhcmFtIG9yZGVyOiBBU0MgLyBERVNDIG9yZGVyaW5nIChkZWZhdWx0IERFU0MpCiAgICAgICAgOnR5cGUgb3JkZXI6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3NlYXJjaF90aWNrZXRzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgcT1xLAogICAgICAgICAgICBzdGF0dXNlcz1zdGF0dXNlcywKICAgICAgICAgICAgbmV0d29ya19pZD1uZXR3b3JrX2lkLAogICAgICAgICAgICBjcmVhdGVkX2J5X21lPWNyZWF0ZWRfYnlfbWUsCiAgICAgICAgICAgIGV4cGlyZXNfYWZ0ZXI9ZXhwaXJlc19hZnRlciwKICAgICAgICAgICAgZXhwaXJlc19iZWZvcmU9ZXhwaXJlc19iZWZvcmUsCiAgICAgICAgICAgIHR5cGU9dHlwZSwKICAgICAgICAgICAgZXh0ZXJuYWxfcmVmX2lkPWV4dGVybmFsX3JlZl9pZCwKICAgICAgICAgICAgYWZ0ZXI9YWZ0ZXIsCiAgICAgICAgICAgIGxpbWl0PWxpbWl0LAogICAgICAgICAgICBzb3J0X2J5PXNvcnRfYnksCiAgICAgICAgICAgIG9yZGVyPW9yZGVyLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiU21hcnRUcmFuc2ZlclRpY2tldEZpbHRlcmVkUmVzcG9uc2UiLAogICAgICAgICAgICAnNDAzJzogIlNtYXJ0VHJhbnNmZXJGb3JiaWRkZW5SZXNwb25zZSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9zZWFyY2hfdGlja2V0c19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBxLAogICAgICAgIHN0YXR1c2VzLAogICAgICAgIG5ldHdvcmtfaWQsCiAgICAgICAgY3JlYXRlZF9ieV9tZSwKICAgICAgICBleHBpcmVzX2FmdGVyLAogICAgICAgIGV4cGlyZXNfYmVmb3JlLAogICAgICAgIHR5cGUsCiAgICAgICAgZXh0ZXJuYWxfcmVmX2lkLAogICAgICAgIGFmdGVyLAogICAgICAgIGxpbWl0LAogICAgICAgIHNvcnRfYnksCiAgICAgICAgb3JkZXIsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgICAgICAnc3RhdHVzZXMnOiAnbXVsdGknLAogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIHEgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3EnLCBxKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgc3RhdHVzZXMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3N0YXR1c2VzJywgc3RhdHVzZXMpKQogICAgICAgICAgICAKICAgICAgICBpZiBuZXR3b3JrX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCduZXR3b3JrSWQnLCBuZXR3b3JrX2lkKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgY3JlYXRlZF9ieV9tZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnY3JlYXRlZEJ5TWUnLCBjcmVhdGVkX2J5X21lKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgZXhwaXJlc19hZnRlciBpcyBub3QgTm9uZToKICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShleHBpcmVzX2FmdGVyLCBkYXRldGltZSk6CiAgICAgICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgKICAgICAgICAgICAgICAgICAgICAoCiAgICAgICAgICAgICAgICAgICAgICAgICdleHBpcmVzQWZ0ZXInLAogICAgICAgICAgICAgICAgICAgICAgICBleHBpcmVzX2FmdGVyLnN0cmZ0aW1lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LmNvbmZpZ3VyYXRpb24uZGF0ZXRpbWVfZm9ybWF0CiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2V4cGlyZXNBZnRlcicsIGV4cGlyZXNfYWZ0ZXIpKQogICAgICAgICAgICAKICAgICAgICBpZiBleHBpcmVzX2JlZm9yZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShleHBpcmVzX2JlZm9yZSwgZGF0ZXRpbWUpOgogICAgICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoCiAgICAgICAgICAgICAgICAgICAgKAogICAgICAgICAgICAgICAgICAgICAgICAnZXhwaXJlc0JlZm9yZScsCiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZXNfYmVmb3JlLnN0cmZ0aW1lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LmNvbmZpZ3VyYXRpb24uZGF0ZXRpbWVfZm9ybWF0CiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2V4cGlyZXNCZWZvcmUnLCBleHBpcmVzX2JlZm9yZSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHR5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3R5cGUnLCB0eXBlKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgZXh0ZXJuYWxfcmVmX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdleHRlcm5hbFJlZklkJywgZXh0ZXJuYWxfcmVmX2lkKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgYWZ0ZXIgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2FmdGVyJywgYWZ0ZXIpKQogICAgICAgICAgICAKICAgICAgICBpZiBsaW1pdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnbGltaXQnLCBsaW1pdCkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHNvcnRfYnkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3NvcnRCeScsIHNvcnRfYnkpKQogICAgICAgICAgICAKICAgICAgICBpZiBvcmRlciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnb3JkZXInLCBvcmRlcikpCiAgICAgICAgICAgIAogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3NtYXJ0LXRyYW5zZmVycycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBzZXRfZXh0ZXJuYWxfcmVmX2lkKAogICAgICAgIHNlbGYsCiAgICAgICAgdGlja2V0X2lkOiBTdHJpY3RTdHIsCiAgICAgICAgc21hcnRfdHJhbnNmZXJfc2V0X3RpY2tldF9leHRlcm5hbF9pZDogU21hcnRUcmFuc2ZlclNldFRpY2tldEV4dGVybmFsSWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlXV06CiAgICAgICAgIiIiQWRkIGV4dGVybmFsIHJlZi4gSUQKCiAgICAgICAgU2V0IGV4dGVybmFsIGlkIFNtYXJ0IFRyYW5zZmVyIHRpY2tldC4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiAgICAgICAgOnBhcmFtIHRpY2tldF9pZDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHRpY2tldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIHNtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXh0ZXJuYWxfaWQ6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBzbWFydF90cmFuc2Zlcl9zZXRfdGlja2V0X2V4dGVybmFsX2lkOiBTbWFydFRyYW5zZmVyU2V0VGlja2V0RXh0ZXJuYWxJZAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJzZXRfZXh0ZXJuYWxfcmVmX2lkIiwgcGFyYW1fbmFtZT0idGlja2V0X2lkIiwgcGFyYW1fdmFsdWU9dGlja2V0X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9zZXRfZXh0ZXJuYWxfcmVmX2lkX3NlcmlhbGl6ZSgKICAgICAgICAgICAgdGlja2V0X2lkPXRpY2tldF9pZCwKICAgICAgICAgICAgc21hcnRfdHJhbnNmZXJfc2V0X3RpY2tldF9leHRlcm5hbF9pZD1zbWFydF90cmFuc2Zlcl9zZXRfdGlja2V0X2V4dGVybmFsX2lkLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwMyc6ICJTbWFydFRyYW5zZmVyRm9yYmlkZGVuUmVzcG9uc2UiLAogICAgICAgICAgICAnNDA0JzogIlNtYXJ0VHJhbnNmZXJOb3RGb3VuZFJlc3BvbnNlIiwKICAgICAgICAgICAgJzQyMic6ICJTbWFydFRyYW5zZmVyQmFkUmVxdWVzdFJlc3BvbnNlIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3NldF9leHRlcm5hbF9yZWZfaWRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdGlja2V0X2lkLAogICAgICAgIHNtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXh0ZXJuYWxfaWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB0aWNrZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1sndGlja2V0SWQnXSA9IHRpY2tldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHNtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXh0ZXJuYWxfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHNtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXh0ZXJuYWxfaWQKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQVVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc21hcnQtdHJhbnNmZXJzL3t0aWNrZXRJZH0vZXh0ZXJuYWwtaWQnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgc2V0X3RpY2tldF9leHBpcmF0aW9uKAogICAgICAgIHNlbGYsCiAgICAgICAgdGlja2V0X2lkOiBTdHJpY3RTdHIsCiAgICAgICAgc21hcnRfdHJhbnNmZXJfc2V0X3RpY2tldF9leHBpcmF0aW9uOiBTbWFydFRyYW5zZmVyU2V0VGlja2V0RXhwaXJhdGlvbiwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2VdXToKICAgICAgICAiIiJTZXQgZXhwaXJhdGlvbgoKICAgICAgICBTZXQgZXhwaXJhdGlvbiBkYXRlIG9uIFNtYXJ0IFRyYW5zZmVyIHRpY2tldC4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiAgICAgICAgOnBhcmFtIHRpY2tldF9pZDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHRpY2tldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIHNtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXhwaXJhdGlvbjogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHNtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXhwaXJhdGlvbjogU21hcnRUcmFuc2ZlclNldFRpY2tldEV4cGlyYXRpb24KICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0ic2V0X3RpY2tldF9leHBpcmF0aW9uIiwgcGFyYW1fbmFtZT0idGlja2V0X2lkIiwgcGFyYW1fdmFsdWU9dGlja2V0X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9zZXRfdGlja2V0X2V4cGlyYXRpb25fc2VyaWFsaXplKAogICAgICAgICAgICB0aWNrZXRfaWQ9dGlja2V0X2lkLAogICAgICAgICAgICBzbWFydF90cmFuc2Zlcl9zZXRfdGlja2V0X2V4cGlyYXRpb249c21hcnRfdHJhbnNmZXJfc2V0X3RpY2tldF9leHBpcmF0aW9uLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwMyc6ICJTbWFydFRyYW5zZmVyRm9yYmlkZGVuUmVzcG9uc2UiLAogICAgICAgICAgICAnNDA0JzogIlNtYXJ0VHJhbnNmZXJOb3RGb3VuZFJlc3BvbnNlIiwKICAgICAgICAgICAgJzQyMic6ICJTbWFydFRyYW5zZmVyQmFkUmVxdWVzdFJlc3BvbnNlIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3NldF90aWNrZXRfZXhwaXJhdGlvbl9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB0aWNrZXRfaWQsCiAgICAgICAgc21hcnRfdHJhbnNmZXJfc2V0X3RpY2tldF9leHBpcmF0aW9uLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgdGlja2V0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3RpY2tldElkJ10gPSB0aWNrZXRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBzbWFydF90cmFuc2Zlcl9zZXRfdGlja2V0X2V4cGlyYXRpb24gaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHNtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXhwaXJhdGlvbgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BVVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zbWFydC10cmFuc2ZlcnMve3RpY2tldElkfS9leHBpcmVzLWluJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHNldF91c2VyX2dyb3VwcygKICAgICAgICBzZWxmLAogICAgICAgIHNtYXJ0X3RyYW5zZmVyX3NldF91c2VyX2dyb3VwczogU21hcnRUcmFuc2ZlclNldFVzZXJHcm91cHMsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbU21hcnRUcmFuc2ZlclVzZXJHcm91cHNSZXNwb25zZV1dOgogICAgICAgICIiIlNldCB1c2VyIGdyb3VwCgogICAgICAgIFNldCBTbWFydCBUcmFuc2ZlcnMgdXNlciBncm91cCB0byByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgZm9yIFNtYXJ0IFRyYW5zZmVycy4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiAgICAgICAgOnBhcmFtIHNtYXJ0X3RyYW5zZmVyX3NldF91c2VyX2dyb3VwczogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHNtYXJ0X3RyYW5zZmVyX3NldF91c2VyX2dyb3VwczogU21hcnRUcmFuc2ZlclNldFVzZXJHcm91cHMKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9zZXRfdXNlcl9ncm91cHNfc2VyaWFsaXplKAogICAgICAgICAgICBzbWFydF90cmFuc2Zlcl9zZXRfdXNlcl9ncm91cHM9c21hcnRfdHJhbnNmZXJfc2V0X3VzZXJfZ3JvdXBzLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiAiU21hcnRUcmFuc2ZlclVzZXJHcm91cHNSZXNwb25zZSIsCiAgICAgICAgICAgICc0MDMnOiAiU21hcnRUcmFuc2ZlckZvcmJpZGRlblJlc3BvbnNlIiwKICAgICAgICAgICAgJzQyMic6ICJTbWFydFRyYW5zZmVyQmFkUmVxdWVzdFJlc3BvbnNlIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3NldF91c2VyX2dyb3Vwc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBzbWFydF90cmFuc2Zlcl9zZXRfdXNlcl9ncm91cHMsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBzbWFydF90cmFuc2Zlcl9zZXRfdXNlcl9ncm91cHMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHNtYXJ0X3RyYW5zZmVyX3NldF91c2VyX2dyb3VwcwoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc21hcnQtdHJhbnNmZXJzL3NldHRpbmdzL3VzZXItZ3JvdXBzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHN1Ym1pdF90aWNrZXQoCiAgICAgICAgc2VsZiwKICAgICAgICB0aWNrZXRfaWQ6IFN0cmljdFN0ciwKICAgICAgICBzbWFydF90cmFuc2Zlcl9zdWJtaXRfdGlja2V0OiBTbWFydFRyYW5zZmVyU3VibWl0VGlja2V0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1NtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZV1dOgogICAgICAgICIiIlN1Ym1pdCB0aWNrZXQKCiAgICAgICAgU3VibWl0IFNtYXJ0IFRyYW5zZmVyIHRpY2tldCAtIGNoYW5nZSBzdGF0dXMgaW50byByZWFkeSBmb3IgYXBwcm92YWwgaWYgYXV0byBhcHByb3ZhbCBpcyBub3QgdHVybmVkIG9uLCBvciBPUEVOIGlmIGF1dG8gYXBwcm92YWwgaXMgb24uIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgogICAgICAgIDpwYXJhbSB0aWNrZXRfaWQ6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB0aWNrZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBzbWFydF90cmFuc2Zlcl9zdWJtaXRfdGlja2V0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgc21hcnRfdHJhbnNmZXJfc3VibWl0X3RpY2tldDogU21hcnRUcmFuc2ZlclN1Ym1pdFRpY2tldAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJzdWJtaXRfdGlja2V0IiwgcGFyYW1fbmFtZT0idGlja2V0X2lkIiwgcGFyYW1fdmFsdWU9dGlja2V0X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9zdWJtaXRfdGlja2V0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgdGlja2V0X2lkPXRpY2tldF9pZCwKICAgICAgICAgICAgc21hcnRfdHJhbnNmZXJfc3VibWl0X3RpY2tldD1zbWFydF90cmFuc2Zlcl9zdWJtaXRfdGlja2V0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwMyc6ICJTbWFydFRyYW5zZmVyRm9yYmlkZGVuUmVzcG9uc2UiLAogICAgICAgICAgICAnNDA0JzogIlNtYXJ0VHJhbnNmZXJOb3RGb3VuZFJlc3BvbnNlIiwKICAgICAgICAgICAgJzQyMic6ICJTbWFydFRyYW5zZmVyQmFkUmVxdWVzdFJlc3BvbnNlIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3N1Ym1pdF90aWNrZXRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdGlja2V0X2lkLAogICAgICAgIHNtYXJ0X3RyYW5zZmVyX3N1Ym1pdF90aWNrZXQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB0aWNrZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1sndGlja2V0SWQnXSA9IHRpY2tldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHNtYXJ0X3RyYW5zZmVyX3N1Ym1pdF90aWNrZXQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHNtYXJ0X3RyYW5zZmVyX3N1Ym1pdF90aWNrZXQKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQVVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc21hcnQtdHJhbnNmZXJzL3t0aWNrZXRJZH0vc3VibWl0JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHVwZGF0ZV90aWNrZXRfdGVybSgKICAgICAgICBzZWxmLAogICAgICAgIHRpY2tldF9pZDogU3RyaWN0U3RyLAogICAgICAgIHRlcm1faWQ6IFN0cmljdFN0ciwKICAgICAgICBzbWFydF90cmFuc2Zlcl91cGRhdGVfdGlja2V0X3Rlcm06IFNtYXJ0VHJhbnNmZXJVcGRhdGVUaWNrZXRUZXJtLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1NtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2VdXToKICAgICAgICAiIiJVcGRhdGUgdGlja2V0IGxlZyAodGVybSkKCiAgICAgICAgVXBkYXRlIHRpY2tldCB0ZXJtICh3aGVuIHRpY2tldCBzdGF0dXMgaXMgRFJBRlQpCgogICAgICAgIDpwYXJhbSB0aWNrZXRfaWQ6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB0aWNrZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSB0ZXJtX2lkOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdGVybV9pZDogc3RyCiAgICAgICAgOnBhcmFtIHNtYXJ0X3RyYW5zZmVyX3VwZGF0ZV90aWNrZXRfdGVybTogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHNtYXJ0X3RyYW5zZmVyX3VwZGF0ZV90aWNrZXRfdGVybTogU21hcnRUcmFuc2ZlclVwZGF0ZVRpY2tldFRlcm0KICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0idXBkYXRlX3RpY2tldF90ZXJtIiwgcGFyYW1fbmFtZT0idGlja2V0X2lkIiwgcGFyYW1fdmFsdWU9dGlja2V0X2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0idXBkYXRlX3RpY2tldF90ZXJtIiwgcGFyYW1fbmFtZT0idGVybV9pZCIsIHBhcmFtX3ZhbHVlPXRlcm1faWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3VwZGF0ZV90aWNrZXRfdGVybV9zZXJpYWxpemUoCiAgICAgICAgICAgIHRpY2tldF9pZD10aWNrZXRfaWQsCiAgICAgICAgICAgIHRlcm1faWQ9dGVybV9pZCwKICAgICAgICAgICAgc21hcnRfdHJhbnNmZXJfdXBkYXRlX3RpY2tldF90ZXJtPXNtYXJ0X3RyYW5zZmVyX3VwZGF0ZV90aWNrZXRfdGVybSwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2UiLAogICAgICAgICAgICAnNDAzJzogIlNtYXJ0VHJhbnNmZXJGb3JiaWRkZW5SZXNwb25zZSIsCiAgICAgICAgICAgICc0MDQnOiAiU21hcnRUcmFuc2Zlck5vdEZvdW5kUmVzcG9uc2UiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfdXBkYXRlX3RpY2tldF90ZXJtX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHRpY2tldF9pZCwKICAgICAgICB0ZXJtX2lkLAogICAgICAgIHNtYXJ0X3RyYW5zZmVyX3VwZGF0ZV90aWNrZXRfdGVybSwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHRpY2tldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd0aWNrZXRJZCddID0gdGlja2V0X2lkCiAgICAgICAgaWYgdGVybV9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd0ZXJtSWQnXSA9IHRlcm1faWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBzbWFydF90cmFuc2Zlcl91cGRhdGVfdGlja2V0X3Rlcm0gaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHNtYXJ0X3RyYW5zZmVyX3VwZGF0ZV90aWNrZXRfdGVybQoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BVVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zbWFydC10cmFuc2ZlcnMve3RpY2tldElkfS90ZXJtcy97dGVybUlkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoK \ No newline at end of file diff --git a/fireblocks/api/staking_api.py b/fireblocks/api/staking_api.py index cfb1fd11..57123bb5 100644 --- a/fireblocks/api/staking_api.py +++ b/fireblocks/api/staking_api.py @@ -1,2222 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr, field_validator -from typing import Dict, List, Optional -from typing_extensions import Annotated -from fireblocks.models.chain_descriptor import ChainDescriptor -from fireblocks.models.chain_info_response import ChainInfoResponse -from fireblocks.models.claim_rewards_request import ClaimRewardsRequest -from fireblocks.models.delegation import Delegation -from fireblocks.models.delegation_summary import DelegationSummary -from fireblocks.models.merge_stake_accounts_request import MergeStakeAccountsRequest -from fireblocks.models.merge_stake_accounts_response import MergeStakeAccountsResponse -from fireblocks.models.provider import Provider -from fireblocks.models.split_request import SplitRequest -from fireblocks.models.split_response import SplitResponse -from fireblocks.models.stake_request import StakeRequest -from fireblocks.models.stake_response import StakeResponse -from fireblocks.models.staking_provider import StakingProvider -from fireblocks.models.unstake_request import UnstakeRequest -from fireblocks.models.withdraw_request import WithdrawRequest - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class StakingApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def approve_terms_of_service_by_provider_id( - self, - provider_id: Annotated[StakingProvider, Field(description="Unique identifier of the staking provider.")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Approve provider terms of service - - Approves the provider's terms of service. Must be called once before performing any staking operation with this provider. - - :param provider_id: Unique identifier of the staking provider. (required) - :type provider_id: StakingProvider - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._approve_terms_of_service_by_provider_id_serialize( - provider_id=provider_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': None, - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _approve_terms_of_service_by_provider_id_serialize( - self, - provider_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if provider_id is not None: - _path_params['providerId'] = provider_id.value - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/staking/providers/{providerId}/approveTermsOfService', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def claim_rewards( - self, - chain_descriptor: Annotated[StrictStr, Field(description="Protocol identifier for the claim rewards staking operation (e.g., MATIC/SOL).")], - claim_rewards_request: ClaimRewardsRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Claim accrued rewards - - Claims available staking rewards for the specified chain and vault. Supported chains: Solana and Polygon (Matic). Behavior depends on protocol reward distribution. - - :param chain_descriptor: Protocol identifier for the claim rewards staking operation (e.g., MATIC/SOL). (required) - :type chain_descriptor: str - :param claim_rewards_request: (required) - :type claim_rewards_request: ClaimRewardsRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="claim_rewards", param_name="chain_descriptor", param_value=chain_descriptor) - - _param = self._claim_rewards_serialize( - chain_descriptor=chain_descriptor, - claim_rewards_request=claim_rewards_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': None, - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _claim_rewards_serialize( - self, - chain_descriptor, - claim_rewards_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if chain_descriptor is not None: - _path_params['chainDescriptor'] = chain_descriptor - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if claim_rewards_request is not None: - _body_params = claim_rewards_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/staking/chains/{chainDescriptor}/claim_rewards', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def consolidate( - self, - chain_descriptor: Annotated[StrictStr, Field(description="Protocol identifier for the staking operation (e.g., ETH).")], - merge_stake_accounts_request: MergeStakeAccountsRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[MergeStakeAccountsResponse]]: - """Consolidate staking positions (ETH validator consolidation) - - Consolidates the source staking position into the destination, merging the balance into the destination and closing the source position once complete. Both positions must be from the same validator provider and same vault account. On chain, this translates into a consolidation transaction, where the source validator is consolidated into the destination validator. Supported chains: Ethereum (ETH) only.
Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param chain_descriptor: Protocol identifier for the staking operation (e.g., ETH). (required) - :type chain_descriptor: str - :param merge_stake_accounts_request: (required) - :type merge_stake_accounts_request: MergeStakeAccountsRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="consolidate", param_name="chain_descriptor", param_value=chain_descriptor) - - _param = self._consolidate_serialize( - chain_descriptor=chain_descriptor, - merge_stake_accounts_request=merge_stake_accounts_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "MergeStakeAccountsResponse", - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _consolidate_serialize( - self, - chain_descriptor, - merge_stake_accounts_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if chain_descriptor is not None: - _path_params['chainDescriptor'] = chain_descriptor - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if merge_stake_accounts_request is not None: - _body_params = merge_stake_accounts_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/staking/chains/{chainDescriptor}/consolidate', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_all_delegations( - self, - chain_descriptor: Annotated[Optional[ChainDescriptor], Field(description="Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[Delegation]]]: - """List staking positions - - Returns all staking positions with core details: amounts, rewards, status, chain, and vault.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param chain_descriptor: Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned. - :type chain_descriptor: ChainDescriptor - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_all_delegations_serialize( - chain_descriptor=chain_descriptor, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "List[Delegation]", - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_all_delegations_serialize( - self, - chain_descriptor, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if chain_descriptor is not None: - - _query_params.append(('chainDescriptor', chain_descriptor.value)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/staking/positions', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_chain_info( - self, - chain_descriptor: Annotated[ChainDescriptor, Field(description="Protocol identifier for the chain info staking operation (e.g., ETH/MATIC/SOL).")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ChainInfoResponse]]: - """Get chain-level staking parameters - - Returns chain-specific staking information such as epoch/slot cadence, lockup or unbonding periods, fee/reward mechanics, and other operational constraints. - - :param chain_descriptor: Protocol identifier for the chain info staking operation (e.g., ETH/MATIC/SOL). (required) - :type chain_descriptor: ChainDescriptor - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_chain_info_serialize( - chain_descriptor=chain_descriptor, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ChainInfoResponse", - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_chain_info_serialize( - self, - chain_descriptor, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if chain_descriptor is not None: - _path_params['chainDescriptor'] = chain_descriptor.value - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/staking/chains/{chainDescriptor}/chainInfo', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_chains( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[ChainDescriptor]]]: - """List supported staking chains - - Returns an alphabetical list of blockchains supported for staking by the current workspace context.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_chains_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "List[ChainDescriptor]", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_chains_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/staking/chains', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_delegation_by_id( - self, - id: Annotated[StrictStr, Field(description="Unique identifier of the staking position.")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[Delegation]]: - """Get position details - - Returns full details for a single staking position: amounts, rewards, status, chain, and vault. - - :param id: Unique identifier of the staking position. (required) - :type id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_delegation_by_id", param_name="id", param_value=id) - - _param = self._get_delegation_by_id_serialize( - id=id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "Delegation", - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_delegation_by_id_serialize( - self, - id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if id is not None: - _path_params['id'] = id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/staking/positions/{id}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_providers( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[Provider]]]: - """List staking providers - - Returns all available staking providers with metadata such as name, ID, and supported chains.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_providers_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "List[Provider]", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_providers_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/staking/providers', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_summary( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[DelegationSummary]]: - """Get positions summary - - Returns an aggregated cross-vault summary: active/inactive counts, total staked, and total rewards per chain. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_summary_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "DelegationSummary", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_summary_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/staking/positions/summary', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_summary_by_vault( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[Dict[str, DelegationSummary]]]: - """Get positions summary by vault - - Returns per-vault aggregates: status breakdown, total staked, and total rewards per chain. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_summary_by_vault_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "Dict[str, DelegationSummary]", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_summary_by_vault_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/staking/positions/summary/vaults', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def merge_stake_accounts( - self, - chain_descriptor: Annotated[StrictStr, Field(description="Protocol identifier for the merge staking operation (e.g., SOL).")], - merge_stake_accounts_request: MergeStakeAccountsRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[MergeStakeAccountsResponse]]: - """Merge staking positions - - Merges the source stake account into the destination, consolidating the balance into the destination and closing the source account once complete. Both accounts must be from the same validator provider and of same vault account.. Supported chains: Solana (SOL).
Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param chain_descriptor: Protocol identifier for the merge staking operation (e.g., SOL). (required) - :type chain_descriptor: str - :param merge_stake_accounts_request: (required) - :type merge_stake_accounts_request: MergeStakeAccountsRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="merge_stake_accounts", param_name="chain_descriptor", param_value=chain_descriptor) - - _param = self._merge_stake_accounts_serialize( - chain_descriptor=chain_descriptor, - merge_stake_accounts_request=merge_stake_accounts_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "MergeStakeAccountsResponse", - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _merge_stake_accounts_serialize( - self, - chain_descriptor, - merge_stake_accounts_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if chain_descriptor is not None: - _path_params['chainDescriptor'] = chain_descriptor - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if merge_stake_accounts_request is not None: - _body_params = merge_stake_accounts_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/staking/chains/{chainDescriptor}/merge', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def split( - self, - chain_descriptor: Annotated[StrictStr, Field(description="Protocol identifier for the staking operation (e.g., SOL).")], - split_request: SplitRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SplitResponse]]: - """Split a staking position - - Splits a staking position by creating a new stake account with the requested amount, while keeping the original account with the remaining balance. Supported chains: Solana (SOL). - - :param chain_descriptor: Protocol identifier for the staking operation (e.g., SOL). (required) - :type chain_descriptor: str - :param split_request: (required) - :type split_request: SplitRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="split", param_name="chain_descriptor", param_value=chain_descriptor) - - _param = self._split_serialize( - chain_descriptor=chain_descriptor, - split_request=split_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "SplitResponse", - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _split_serialize( - self, - chain_descriptor, - split_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if chain_descriptor is not None: - _path_params['chainDescriptor'] = chain_descriptor - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if split_request is not None: - _body_params = split_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/staking/chains/{chainDescriptor}/split', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def stake( - self, - chain_descriptor: Annotated[ChainDescriptor, Field(description="Protocol identifier for the stake staking operation (e.g., ATOM_COS/AXL/CELESTIA).")], - stake_request: StakeRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[StakeResponse]]: - """Initiate or add to existing stake - - Creates a new staking position and returns its unique ID. For Ethereum compounding validator (EIP-7251): when the 'id' of an existing compounding validator position is provided, adds to that position; otherwise creates a new position. For Ethereum legacy validator: creates a new position regardless of existing delegations. For Cosmos chains and Ethereum liquid staking (Lido): automatically add to existing positions for the same validator provider and same vault account if one exists, otherwise create a new position. For Solana and Polygon: always create new positions regardless of existing delegations. - - :param chain_descriptor: Protocol identifier for the stake staking operation (e.g., ATOM_COS/AXL/CELESTIA). (required) - :type chain_descriptor: ChainDescriptor - :param stake_request: (required) - :type stake_request: StakeRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._stake_serialize( - chain_descriptor=chain_descriptor, - stake_request=stake_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "StakeResponse", - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _stake_serialize( - self, - chain_descriptor, - stake_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if chain_descriptor is not None: - _path_params['chainDescriptor'] = chain_descriptor.value - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if stake_request is not None: - _body_params = stake_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/staking/chains/{chainDescriptor}/stake', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def unstake( - self, - chain_descriptor: Annotated[ChainDescriptor, Field(description="Protocol identifier for the unstake staking operation (e.g., SOL/SOL_TEST/MATIC).")], - unstake_request: UnstakeRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Initiate unstake - - Submits a chain-specific unstake request. - - :param chain_descriptor: Protocol identifier for the unstake staking operation (e.g., SOL/SOL_TEST/MATIC). (required) - :type chain_descriptor: ChainDescriptor - :param unstake_request: (required) - :type unstake_request: UnstakeRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._unstake_serialize( - chain_descriptor=chain_descriptor, - unstake_request=unstake_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': None, - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _unstake_serialize( - self, - chain_descriptor, - unstake_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if chain_descriptor is not None: - _path_params['chainDescriptor'] = chain_descriptor.value - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if unstake_request is not None: - _body_params = unstake_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/staking/chains/{chainDescriptor}/unstake', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def withdraw( - self, - chain_descriptor: Annotated[ChainDescriptor, Field(description="Protocol identifier for the withdraw staking operation (e.g., ATOM_COS/ETH/STETH_ETH).")], - withdraw_request: WithdrawRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Withdraw staked funds - - Withdraws funds that have completed the unbonding period. Typically requires the position to be deactivated first (unstake → unbond → withdraw). Amount and timing vary by chain protocol. - - :param chain_descriptor: Protocol identifier for the withdraw staking operation (e.g., ATOM_COS/ETH/STETH_ETH). (required) - :type chain_descriptor: ChainDescriptor - :param withdraw_request: (required) - :type withdraw_request: WithdrawRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._withdraw_serialize( - chain_descriptor=chain_descriptor, - withdraw_request=withdraw_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': None, - '400': "ErrorSchema", - '403': "ErrorSchema", - '404': "ErrorSchema", - '429': "ErrorSchema", - '500': "ErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _withdraw_serialize( - self, - chain_descriptor, - withdraw_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if chain_descriptor is not None: - _path_params['chainDescriptor'] = chain_descriptor.value - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if withdraw_request is not None: - _body_params = withdraw_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/staking/chains/{chainDescriptor}/withdraw', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0ciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jaGFpbl9kZXNjcmlwdG9yIGltcG9ydCBDaGFpbkRlc2NyaXB0b3IKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jaGFpbl9pbmZvX3Jlc3BvbnNlIGltcG9ydCBDaGFpbkluZm9SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNsYWltX3Jld2FyZHNfcmVxdWVzdCBpbXBvcnQgQ2xhaW1SZXdhcmRzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlbGVnYXRpb24gaW1wb3J0IERlbGVnYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZWxlZ2F0aW9uX3N1bW1hcnkgaW1wb3J0IERlbGVnYXRpb25TdW1tYXJ5CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubWVyZ2Vfc3Rha2VfYWNjb3VudHNfcmVxdWVzdCBpbXBvcnQgTWVyZ2VTdGFrZUFjY291bnRzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1lcmdlX3N0YWtlX2FjY291bnRzX3Jlc3BvbnNlIGltcG9ydCBNZXJnZVN0YWtlQWNjb3VudHNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnByb3ZpZGVyIGltcG9ydCBQcm92aWRlcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwbGl0X3JlcXVlc3QgaW1wb3J0IFNwbGl0UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwbGl0X3Jlc3BvbnNlIGltcG9ydCBTcGxpdFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3Rha2VfcmVxdWVzdCBpbXBvcnQgU3Rha2VSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3Rha2VfcmVzcG9uc2UgaW1wb3J0IFN0YWtlUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zdGFraW5nX3Bvc2l0aW9uc19wYWdpbmF0ZWRfcmVzcG9uc2UgaW1wb3J0IFN0YWtpbmdQb3NpdGlvbnNQYWdpbmF0ZWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN0YWtpbmdfcHJvdmlkZXIgaW1wb3J0IFN0YWtpbmdQcm92aWRlcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVuc3Rha2VfcmVxdWVzdCBpbXBvcnQgVW5zdGFrZVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53aXRoZHJhd19yZXF1ZXN0IGltcG9ydCBXaXRoZHJhd1JlcXVlc3QKCmZyb20gZmlyZWJsb2Nrcy5hcGlfY2xpZW50IGltcG9ydCBBcGlDbGllbnQsIFJlcXVlc3RTZXJpYWxpemVkCmZyb20gZmlyZWJsb2Nrcy5hcGlfcmVzcG9uc2UgaW1wb3J0IEFwaVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5yZXN0IGltcG9ydCBSRVNUUmVzcG9uc2VUeXBlCmZyb20gZmlyZWJsb2Nrcy52YWxpZGF0aW9uX3V0aWxzIGltcG9ydCB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nCgoKY2xhc3MgU3Rha2luZ0FwaToKICAgICIiIk5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IKICAgIFJlZjogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgogICAgIiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwaV9jbGllbnQ9Tm9uZSkgLT4gTm9uZToKICAgICAgICBpZiBhcGlfY2xpZW50IGlzIE5vbmU6CiAgICAgICAgICAgIGFwaV9jbGllbnQgPSBBcGlDbGllbnQuZ2V0X2RlZmF1bHQoKQogICAgICAgIHNlbGYuYXBpX2NsaWVudCA9IGFwaV9jbGllbnQKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBhcHByb3ZlX3Rlcm1zX29mX3NlcnZpY2VfYnlfcHJvdmlkZXJfaWQoCiAgICAgICAgc2VsZiwKICAgICAgICBwcm92aWRlcl9pZDogQW5ub3RhdGVkW1N0YWtpbmdQcm92aWRlciwgRmllbGQoZGVzY3JpcHRpb249IlVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBzdGFraW5nIHByb3ZpZGVyLiIpXSwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtOb25lXV06CiAgICAgICAgIiIiQXBwcm92ZSBwcm92aWRlciB0ZXJtcyBvZiBzZXJ2aWNlCgogICAgICAgIEFwcHJvdmVzIHRoZSBwcm92aWRlcidzIHRlcm1zIG9mIHNlcnZpY2UuIE11c3QgYmUgY2FsbGVkIG9uY2UgYmVmb3JlIHBlcmZvcm1pbmcgYW55IHN0YWtpbmcgb3BlcmF0aW9uIHdpdGggdGhpcyBwcm92aWRlci4KCiAgICAgICAgOnBhcmFtIHByb3ZpZGVyX2lkOiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgc3Rha2luZyBwcm92aWRlci4gKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHByb3ZpZGVyX2lkOiBTdGFraW5nUHJvdmlkZXIKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9hcHByb3ZlX3Rlcm1zX29mX3NlcnZpY2VfYnlfcHJvdmlkZXJfaWRfc2VyaWFsaXplKAogICAgICAgICAgICBwcm92aWRlcl9pZD1wcm92aWRlcl9pZCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAxJzogTm9uZSwKICAgICAgICAgICAgJzQwMCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MDMnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNDA0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQyOSc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc1MDAnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9hcHByb3ZlX3Rlcm1zX29mX3NlcnZpY2VfYnlfcHJvdmlkZXJfaWRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgcHJvdmlkZXJfaWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBwcm92aWRlcl9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydwcm92aWRlcklkJ10gPSBwcm92aWRlcl9pZC52YWx1ZQogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3N0YWtpbmcvcHJvdmlkZXJzL3twcm92aWRlcklkfS9hcHByb3ZlVGVybXNPZlNlcnZpY2UnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgY2xhaW1fcmV3YXJkcygKICAgICAgICBzZWxmLAogICAgICAgIGNoYWluX2Rlc2NyaXB0b3I6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJQcm90b2NvbCBpZGVudGlmaWVyIGZvciB0aGUgY2xhaW0gcmV3YXJkcyBzdGFraW5nIG9wZXJhdGlvbiAoZS5nLiwgTUFUSUMvU09MKS4iKV0sCiAgICAgICAgY2xhaW1fcmV3YXJkc19yZXF1ZXN0OiBDbGFpbVJld2FyZHNSZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW05vbmVdXToKICAgICAgICAiIiJDbGFpbSBhY2NydWVkIHJld2FyZHMKCiAgICAgICAgQ2xhaW1zIGF2YWlsYWJsZSBzdGFraW5nIHJld2FyZHMgZm9yIHRoZSBzcGVjaWZpZWQgY2hhaW4gYW5kIHZhdWx0LiBTdXBwb3J0ZWQgY2hhaW5zOiBTb2xhbmEgYW5kIFBvbHlnb24gKE1hdGljKS4gQmVoYXZpb3IgZGVwZW5kcyBvbiBwcm90b2NvbCByZXdhcmQgZGlzdHJpYnV0aW9uLgoKICAgICAgICA6cGFyYW0gY2hhaW5fZGVzY3JpcHRvcjogUHJvdG9jb2wgaWRlbnRpZmllciBmb3IgdGhlIGNsYWltIHJld2FyZHMgc3Rha2luZyBvcGVyYXRpb24gKGUuZy4sIE1BVElDL1NPTCkuIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjaGFpbl9kZXNjcmlwdG9yOiBzdHIKICAgICAgICA6cGFyYW0gY2xhaW1fcmV3YXJkc19yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY2xhaW1fcmV3YXJkc19yZXF1ZXN0OiBDbGFpbVJld2FyZHNSZXF1ZXN0CiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImNsYWltX3Jld2FyZHMiLCBwYXJhbV9uYW1lPSJjaGFpbl9kZXNjcmlwdG9yIiwgcGFyYW1fdmFsdWU9Y2hhaW5fZGVzY3JpcHRvcikKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fY2xhaW1fcmV3YXJkc19zZXJpYWxpemUoCiAgICAgICAgICAgIGNoYWluX2Rlc2NyaXB0b3I9Y2hhaW5fZGVzY3JpcHRvciwKICAgICAgICAgICAgY2xhaW1fcmV3YXJkc19yZXF1ZXN0PWNsYWltX3Jld2FyZHNfcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAxJzogTm9uZSwKICAgICAgICAgICAgJzQwMCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MDMnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNDA0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQyOSc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc1MDAnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9jbGFpbV9yZXdhcmRzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNoYWluX2Rlc2NyaXB0b3IsCiAgICAgICAgY2xhaW1fcmV3YXJkc19yZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgY2hhaW5fZGVzY3JpcHRvciBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydjaGFpbkRlc2NyaXB0b3InXSA9IGNoYWluX2Rlc2NyaXB0b3IKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBjbGFpbV9yZXdhcmRzX3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IGNsYWltX3Jld2FyZHNfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc3Rha2luZy9jaGFpbnMve2NoYWluRGVzY3JpcHRvcn0vY2xhaW1fcmV3YXJkcycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBjb25zb2xpZGF0ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNoYWluX2Rlc2NyaXB0b3I6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJQcm90b2NvbCBpZGVudGlmaWVyIGZvciB0aGUgc3Rha2luZyBvcGVyYXRpb24gKGUuZy4sIEVUSCkuIildLAogICAgICAgIG1lcmdlX3N0YWtlX2FjY291bnRzX3JlcXVlc3Q6IE1lcmdlU3Rha2VBY2NvdW50c1JlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTWVyZ2VTdGFrZUFjY291bnRzUmVzcG9uc2VdXToKICAgICAgICAiIiJDb25zb2xpZGF0ZSBzdGFraW5nIHBvc2l0aW9ucyAoRVRIIHZhbGlkYXRvciBjb25zb2xpZGF0aW9uKQoKICAgICAgICBDb25zb2xpZGF0ZXMgdGhlIHNvdXJjZSBzdGFraW5nIHBvc2l0aW9uIGludG8gdGhlIGRlc3RpbmF0aW9uLCBtZXJnaW5nIHRoZSBiYWxhbmNlIGludG8gdGhlIGRlc3RpbmF0aW9uIGFuZCBjbG9zaW5nIHRoZSBzb3VyY2UgcG9zaXRpb24gb25jZSBjb21wbGV0ZS4gQm90aCBwb3NpdGlvbnMgbXVzdCBiZSBmcm9tIHRoZSBzYW1lIGZ1bmRpbmcgdmF1bHRzIGFjY291bnQgKGkuZS4gc2FtZSB3aXRoZHJhd2FscyBjcmVkZW50aWFscykuICBPbiBjaGFpbiwgdGhpcyB0cmFuc2xhdGVzIGludG8gYSBjb25zb2xpZGF0aW9uIHRyYW5zYWN0aW9uLCB3aGVyZSB0aGUgIHNvdXJjZSB2YWxpZGF0b3IgaXMgY29uc29saWRhdGVkIGludG8gdGhlIGRlc3RpbmF0aW9uIHZhbGlkYXRvci4gIFN1cHBvcnRlZCBjaGFpbnM6IEV0aGVyZXVtIChFVEgpIG9ubHkuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogT3duZXIsIEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLiAqKk5vdGU6KiogVGhpcyBlbmRwb2ludCBpcyBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLgoKICAgICAgICA6cGFyYW0gY2hhaW5fZGVzY3JpcHRvcjogUHJvdG9jb2wgaWRlbnRpZmllciBmb3IgdGhlIHN0YWtpbmcgb3BlcmF0aW9uIChlLmcuLCBFVEgpLiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY2hhaW5fZGVzY3JpcHRvcjogc3RyCiAgICAgICAgOnBhcmFtIG1lcmdlX3N0YWtlX2FjY291bnRzX3JlcXVlc3Q6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBtZXJnZV9zdGFrZV9hY2NvdW50c19yZXF1ZXN0OiBNZXJnZVN0YWtlQWNjb3VudHNSZXF1ZXN0CiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImNvbnNvbGlkYXRlIiwgcGFyYW1fbmFtZT0iY2hhaW5fZGVzY3JpcHRvciIsIHBhcmFtX3ZhbHVlPWNoYWluX2Rlc2NyaXB0b3IpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2NvbnNvbGlkYXRlX3NlcmlhbGl6ZSgKICAgICAgICAgICAgY2hhaW5fZGVzY3JpcHRvcj1jaGFpbl9kZXNjcmlwdG9yLAogICAgICAgICAgICBtZXJnZV9zdGFrZV9hY2NvdW50c19yZXF1ZXN0PW1lcmdlX3N0YWtlX2FjY291bnRzX3JlcXVlc3QsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMSc6ICJNZXJnZVN0YWtlQWNjb3VudHNSZXNwb25zZSIsCiAgICAgICAgICAgICc0MDAnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNDAzJzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQwNCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MjknOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNTAwJzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfY29uc29saWRhdGVfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY2hhaW5fZGVzY3JpcHRvciwKICAgICAgICBtZXJnZV9zdGFrZV9hY2NvdW50c19yZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgY2hhaW5fZGVzY3JpcHRvciBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydjaGFpbkRlc2NyaXB0b3InXSA9IGNoYWluX2Rlc2NyaXB0b3IKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBtZXJnZV9zdGFrZV9hY2NvdW50c19yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBtZXJnZV9zdGFrZV9hY2NvdW50c19yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zdGFraW5nL2NoYWlucy97Y2hhaW5EZXNjcmlwdG9yfS9jb25zb2xpZGF0ZScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfYWxsX2RlbGVnYXRpb25zKAogICAgICAgIHNlbGYsCiAgICAgICAgY2hhaW5fZGVzY3JpcHRvcjogQW5ub3RhdGVkW09wdGlvbmFsW0NoYWluRGVzY3JpcHRvcl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJQcm90b2NvbCBpZGVudGlmaWVyIHRvIGZpbHRlciBwb3NpdGlvbnMgKGUuZy4sIEFUT01fQ09TL0FYTC9DRUxFU1RJQX0pLiBJZiBvbWl0dGVkLCBwb3NpdGlvbnMgYWNyb3NzIGFsbCBzdXBwb3J0ZWQgY2hhaW5zIGFyZSByZXR1cm5lZC4iKV0gPSBOb25lLAogICAgICAgIHZhdWx0X2FjY291bnRfaWQ6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iRmlsdGVyIHBvc2l0aW9ucyBieSB2YXVsdCBhY2NvdW50IElELiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtMaXN0W0RlbGVnYXRpb25dXV06CiAgICAgICAgIiIiTGlzdCBzdGFraW5nIHBvc2l0aW9ucwoKICAgICAgICBSZXR1cm5zIGFsbCBzdGFraW5nIHBvc2l0aW9ucyB3aXRoIGNvcmUgZGV0YWlsczogYW1vdW50cywgcmV3YXJkcywgc3RhdHVzLCBjaGFpbiwgYW5kIHZhdWx0LiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKICAgICAgICA6cGFyYW0gY2hhaW5fZGVzY3JpcHRvcjogUHJvdG9jb2wgaWRlbnRpZmllciB0byBmaWx0ZXIgcG9zaXRpb25zIChlLmcuLCBBVE9NX0NPUy9BWEwvQ0VMRVNUSUF9KS4gSWYgb21pdHRlZCwgcG9zaXRpb25zIGFjcm9zcyBhbGwgc3VwcG9ydGVkIGNoYWlucyBhcmUgcmV0dXJuZWQuCiAgICAgICAgOnR5cGUgY2hhaW5fZGVzY3JpcHRvcjogQ2hhaW5EZXNjcmlwdG9yCiAgICAgICAgOnBhcmFtIHZhdWx0X2FjY291bnRfaWQ6IEZpbHRlciBwb3NpdGlvbnMgYnkgdmF1bHQgYWNjb3VudCBJRC4KICAgICAgICA6dHlwZSB2YXVsdF9hY2NvdW50X2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfYWxsX2RlbGVnYXRpb25zX3NlcmlhbGl6ZSgKICAgICAgICAgICAgY2hhaW5fZGVzY3JpcHRvcj1jaGFpbl9kZXNjcmlwdG9yLAogICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkPXZhdWx0X2FjY291bnRfaWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJMaXN0W0RlbGVnYXRpb25dIiwKICAgICAgICAgICAgJzQwMCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MDMnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNDA0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQyOSc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc1MDAnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfYWxsX2RlbGVnYXRpb25zX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNoYWluX2Rlc2NyaXB0b3IsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgY2hhaW5fZGVzY3JpcHRvciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnY2hhaW5EZXNjcmlwdG9yJywgY2hhaW5fZGVzY3JpcHRvci52YWx1ZSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHZhdWx0X2FjY291bnRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3ZhdWx0QWNjb3VudElkJywgdmF1bHRfYWNjb3VudF9pZCkpCiAgICAgICAgICAgIAogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3N0YWtpbmcvcG9zaXRpb25zJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9jaGFpbl9pbmZvKAogICAgICAgIHNlbGYsCiAgICAgICAgY2hhaW5fZGVzY3JpcHRvcjogQW5ub3RhdGVkW0NoYWluRGVzY3JpcHRvciwgRmllbGQoZGVzY3JpcHRpb249IlByb3RvY29sIGlkZW50aWZpZXIgZm9yIHRoZSBjaGFpbiBpbmZvIHN0YWtpbmcgb3BlcmF0aW9uIChlLmcuLCBFVEgvTUFUSUMvU09MKS4iKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtDaGFpbkluZm9SZXNwb25zZV1dOgogICAgICAgICIiIkdldCBjaGFpbi1sZXZlbCBzdGFraW5nIHBhcmFtZXRlcnMKCiAgICAgICAgUmV0dXJucyBjaGFpbi1zcGVjaWZpYyBzdGFraW5nIGluZm9ybWF0aW9uIHN1Y2ggYXMgZXBvY2gvc2xvdCBjYWRlbmNlLCBsb2NrdXAgb3IgdW5ib25kaW5nIHBlcmlvZHMsIGZlZS9yZXdhcmQgbWVjaGFuaWNzLCBhbmQgb3RoZXIgb3BlcmF0aW9uYWwgY29uc3RyYWludHMuCgogICAgICAgIDpwYXJhbSBjaGFpbl9kZXNjcmlwdG9yOiBQcm90b2NvbCBpZGVudGlmaWVyIGZvciB0aGUgY2hhaW4gaW5mbyBzdGFraW5nIG9wZXJhdGlvbiAoZS5nLiwgRVRIL01BVElDL1NPTCkuIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjaGFpbl9kZXNjcmlwdG9yOiBDaGFpbkRlc2NyaXB0b3IKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfY2hhaW5faW5mb19zZXJpYWxpemUoCiAgICAgICAgICAgIGNoYWluX2Rlc2NyaXB0b3I9Y2hhaW5fZGVzY3JpcHRvciwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkNoYWluSW5mb1Jlc3BvbnNlIiwKICAgICAgICAgICAgJzQwMCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MDMnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNDA0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQyOSc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc1MDAnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfY2hhaW5faW5mb19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBjaGFpbl9kZXNjcmlwdG9yLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBjaGFpbl9kZXNjcmlwdG9yIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2NoYWluRGVzY3JpcHRvciddID0gY2hhaW5fZGVzY3JpcHRvci52YWx1ZQogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3N0YWtpbmcvY2hhaW5zL3tjaGFpbkRlc2NyaXB0b3J9L2NoYWluSW5mbycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfY2hhaW5zKAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtMaXN0W0NoYWluRGVzY3JpcHRvcl1dXToKICAgICAgICAiIiJMaXN0IHN1cHBvcnRlZCBzdGFraW5nIGNoYWlucwoKICAgICAgICBSZXR1cm5zIGFuIGFscGhhYmV0aWNhbCBsaXN0IG9mIGJsb2NrY2hhaW5zIHN1cHBvcnRlZCBmb3Igc3Rha2luZyBieSB0aGUgY3VycmVudCB3b3Jrc3BhY2UgY29udGV4dC4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2NoYWluc19zZXJpYWxpemUoCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJMaXN0W0NoYWluRGVzY3JpcHRvcl0iLAogICAgICAgICAgICAnNDAzJzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQwNCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MjknOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNTAwJzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2NoYWluc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc3Rha2luZy9jaGFpbnMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X2RlbGVnYXRpb25fYnlfaWQoCiAgICAgICAgc2VsZiwKICAgICAgICBpZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBzdGFraW5nIHBvc2l0aW9uLiIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0RlbGVnYXRpb25dXToKICAgICAgICAiIiJHZXQgcG9zaXRpb24gZGV0YWlscwoKICAgICAgICBSZXR1cm5zIGZ1bGwgZGV0YWlscyBmb3IgYSBzaW5nbGUgc3Rha2luZyBwb3NpdGlvbjogYW1vdW50cywgcmV3YXJkcywgc3RhdHVzLCBjaGFpbiwgYW5kIHZhdWx0LgoKICAgICAgICA6cGFyYW0gaWQ6IFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBzdGFraW5nIHBvc2l0aW9uLiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfZGVsZWdhdGlvbl9ieV9pZCIsIHBhcmFtX25hbWU9ImlkIiwgcGFyYW1fdmFsdWU9aWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9kZWxlZ2F0aW9uX2J5X2lkX3NlcmlhbGl6ZSgKICAgICAgICAgICAgaWQ9aWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJEZWxlZ2F0aW9uIiwKICAgICAgICAgICAgJzQwMCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MDMnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNDA0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQyOSc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc1MDAnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfZGVsZWdhdGlvbl9ieV9pZF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBpZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snaWQnXSA9IGlkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc3Rha2luZy9wb3NpdGlvbnMve2lkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfcG9zaXRpb25zKAogICAgICAgIHNlbGYsCiAgICAgICAgcGFnZV9zaXplOiBBbm5vdGF0ZWRbaW50LCBGaWVsZChsZT0xMDAsIHN0cmljdD1UcnVlLCBnZT0xLCBkZXNjcmlwdGlvbj0iTnVtYmVyIG9mIHJlc3VsdHMgcGVyIHBhZ2UuIFdoZW4gcHJvdmlkZWQsIHRoZSByZXNwb25zZSByZXR1cm5zIGEgcGFnaW5hdGVkIG9iamVjdCB3aXRoIHtkYXRhLCBuZXh0fS4gSWYgb21pdHRlZCwgYWxsIHJlc3VsdHMgYXJlIHJldHVybmVkIGFzIGFuIGFycmF5LiIpXSwKICAgICAgICBjaGFpbl9kZXNjcmlwdG9yOiBBbm5vdGF0ZWRbT3B0aW9uYWxbQ2hhaW5EZXNjcmlwdG9yXSwgRmllbGQoZGVzY3JpcHRpb249IlByb3RvY29sIGlkZW50aWZpZXIgdG8gZmlsdGVyIHBvc2l0aW9ucyAoZS5nLiwgQVRPTV9DT1MvQVhML0NFTEVTVElBfSkuIElmIG9taXR0ZWQsIHBvc2l0aW9ucyBhY3Jvc3MgYWxsIHN1cHBvcnRlZCBjaGFpbnMgYXJlIHJldHVybmVkLiIpXSA9IE5vbmUsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZDogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJGaWx0ZXIgcG9zaXRpb25zIGJ5IEZpcmVibG9ja3MgdmF1bHQgYWNjb3VudCBJRC4gSWYgb21pdHRlZCwgcG9zaXRpb25zIGFjcm9zcyBhbGwgdmF1bHQgYWNjb3VudHMgYXJlIHJldHVybmVkLiIpXSA9IE5vbmUsCiAgICAgICAgcGFnZV9jdXJzb3I6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQ3Vyc29yIGZvciB0aGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMuIFVzZSB0aGUgdmFsdWUgZnJvbSB0aGUgJ25leHQnIGZpZWxkIGluIHRoZSBwcmV2aW91cyByZXNwb25zZS4iKV0gPSBOb25lLAogICAgICAgIG9yZGVyOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkFTQyAvIERFU0Mgb3JkZXJpbmcgKGRlZmF1bHQgREVTQykiKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbU3Rha2luZ1Bvc2l0aW9uc1BhZ2luYXRlZFJlc3BvbnNlXV06CiAgICAgICAgIiIiTGlzdCBzdGFraW5nIHBvc2l0aW9ucyAoUGFnaW5hdGVkKQoKICAgICAgICBSZXR1cm5zIHN0YWtpbmcgcG9zaXRpb25zIHdpdGggY29yZSBkZXRhaWxzOiBhbW91bnRzLCByZXdhcmRzLCBzdGF0dXMsIGNoYWluLCBhbmQgdmF1bHQuIEl0IHN1cHBvcnRzIGN1cnNvci1iYXNlZCBwYWdpbmF0aW9uIGZvciBlZmZpY2llbnQgZGF0YSByZXRyaWV2YWwuIFRoaXMgZW5kcG9pbnQgYWx3YXlzIHJldHVybnMgYSBwYWdpbmF0ZWQgcmVzcG9uc2Ugd2l0aCB7ZGF0YSwgbmV4dH0gc3RydWN0dXJlLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKICAgICAgICA6cGFyYW0gcGFnZV9zaXplOiBOdW1iZXIgb2YgcmVzdWx0cyBwZXIgcGFnZS4gV2hlbiBwcm92aWRlZCwgdGhlIHJlc3BvbnNlIHJldHVybnMgYSBwYWdpbmF0ZWQgb2JqZWN0IHdpdGgge2RhdGEsIG5leHR9LiBJZiBvbWl0dGVkLCBhbGwgcmVzdWx0cyBhcmUgcmV0dXJuZWQgYXMgYW4gYXJyYXkuIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBwYWdlX3NpemU6IGludAogICAgICAgIDpwYXJhbSBjaGFpbl9kZXNjcmlwdG9yOiBQcm90b2NvbCBpZGVudGlmaWVyIHRvIGZpbHRlciBwb3NpdGlvbnMgKGUuZy4sIEFUT01fQ09TL0FYTC9DRUxFU1RJQX0pLiBJZiBvbWl0dGVkLCBwb3NpdGlvbnMgYWNyb3NzIGFsbCBzdXBwb3J0ZWQgY2hhaW5zIGFyZSByZXR1cm5lZC4KICAgICAgICA6dHlwZSBjaGFpbl9kZXNjcmlwdG9yOiBDaGFpbkRlc2NyaXB0b3IKICAgICAgICA6cGFyYW0gdmF1bHRfYWNjb3VudF9pZDogRmlsdGVyIHBvc2l0aW9ucyBieSBGaXJlYmxvY2tzIHZhdWx0IGFjY291bnQgSUQuIElmIG9taXR0ZWQsIHBvc2l0aW9ucyBhY3Jvc3MgYWxsIHZhdWx0IGFjY291bnRzIGFyZSByZXR1cm5lZC4KICAgICAgICA6dHlwZSB2YXVsdF9hY2NvdW50X2lkOiBzdHIKICAgICAgICA6cGFyYW0gcGFnZV9jdXJzb3I6IEN1cnNvciBmb3IgdGhlIG5leHQgcGFnZSBvZiByZXN1bHRzLiBVc2UgdGhlIHZhbHVlIGZyb20gdGhlICduZXh0JyBmaWVsZCBpbiB0aGUgcHJldmlvdXMgcmVzcG9uc2UuCiAgICAgICAgOnR5cGUgcGFnZV9jdXJzb3I6IHN0cgogICAgICAgIDpwYXJhbSBvcmRlcjogQVNDIC8gREVTQyBvcmRlcmluZyAoZGVmYXVsdCBERVNDKQogICAgICAgIDp0eXBlIG9yZGVyOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfcG9zaXRpb25zX3NlcmlhbGl6ZSgKICAgICAgICAgICAgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwKICAgICAgICAgICAgY2hhaW5fZGVzY3JpcHRvcj1jaGFpbl9kZXNjcmlwdG9yLAogICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkPXZhdWx0X2FjY291bnRfaWQsCiAgICAgICAgICAgIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLAogICAgICAgICAgICBvcmRlcj1vcmRlciwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlN0YWtpbmdQb3NpdGlvbnNQYWdpbmF0ZWRSZXNwb25zZSIsCiAgICAgICAgICAgICc0MDAnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNDAzJzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQwNCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MjknOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNTAwJzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3Bvc2l0aW9uc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBwYWdlX3NpemUsCiAgICAgICAgY2hhaW5fZGVzY3JpcHRvciwKICAgICAgICB2YXVsdF9hY2NvdW50X2lkLAogICAgICAgIHBhZ2VfY3Vyc29yLAogICAgICAgIG9yZGVyLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiBjaGFpbl9kZXNjcmlwdG9yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdjaGFpbkRlc2NyaXB0b3InLCBjaGFpbl9kZXNjcmlwdG9yLnZhbHVlKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgdmF1bHRfYWNjb3VudF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgndmF1bHRBY2NvdW50SWQnLCB2YXVsdF9hY2NvdW50X2lkKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgcGFnZV9zaXplIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlU2l6ZScsIHBhZ2Vfc2l6ZSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2VfY3Vyc29yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlQ3Vyc29yJywgcGFnZV9jdXJzb3IpKQogICAgICAgICAgICAKICAgICAgICBpZiBvcmRlciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnb3JkZXInLCBvcmRlcikpCiAgICAgICAgICAgIAogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3N0YWtpbmcvcG9zaXRpb25zX3BhZ2luYXRlZCcsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfcHJvdmlkZXJzKAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtMaXN0W1Byb3ZpZGVyXV1dOgogICAgICAgICIiIkxpc3Qgc3Rha2luZyBwcm92aWRlcnMKCiAgICAgICAgUmV0dXJucyBhbGwgYXZhaWxhYmxlIHN0YWtpbmcgcHJvdmlkZXJzIHdpdGggbWV0YWRhdGEgc3VjaCBhcyBuYW1lLCBJRCwgYW5kIHN1cHBvcnRlZCBjaGFpbnMuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9wcm92aWRlcnNfc2VyaWFsaXplKAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiTGlzdFtQcm92aWRlcl0iLAogICAgICAgICAgICAnNDAzJzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQwNCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MjknOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNTAwJzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3Byb3ZpZGVyc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc3Rha2luZy9wcm92aWRlcnMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X3N1bW1hcnkoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0RlbGVnYXRpb25TdW1tYXJ5XV06CiAgICAgICAgIiIiR2V0IHBvc2l0aW9ucyBzdW1tYXJ5CgogICAgICAgIFJldHVybnMgYW4gYWdncmVnYXRlZCBjcm9zcy12YXVsdCBzdW1tYXJ5OiBhY3RpdmUvaW5hY3RpdmUgY291bnRzLCB0b3RhbCBzdGFrZWQsIGFuZCB0b3RhbCByZXdhcmRzIHBlciBjaGFpbi4KCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X3N1bW1hcnlfc2VyaWFsaXplKAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiRGVsZWdhdGlvblN1bW1hcnkiLAogICAgICAgICAgICAnNDAzJzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQwNCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MjknOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNTAwJzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3N1bW1hcnlfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3N0YWtpbmcvcG9zaXRpb25zL3N1bW1hcnknLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X3N1bW1hcnlfYnlfdmF1bHQoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0RpY3Rbc3RyLCBEZWxlZ2F0aW9uU3VtbWFyeV1dXToKICAgICAgICAiIiJHZXQgcG9zaXRpb25zIHN1bW1hcnkgYnkgdmF1bHQKCiAgICAgICAgUmV0dXJucyBwZXItdmF1bHQgYWdncmVnYXRlczogc3RhdHVzIGJyZWFrZG93biwgdG90YWwgc3Rha2VkLCBhbmQgdG90YWwgcmV3YXJkcyBwZXIgY2hhaW4uCgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9zdW1tYXJ5X2J5X3ZhdWx0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkRpY3Rbc3RyLCBEZWxlZ2F0aW9uU3VtbWFyeV0iLAogICAgICAgICAgICAnNDAzJzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQwNCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MjknOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNTAwJzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3N1bW1hcnlfYnlfdmF1bHRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3N0YWtpbmcvcG9zaXRpb25zL3N1bW1hcnkvdmF1bHRzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIG1lcmdlX3N0YWtlX2FjY291bnRzKAogICAgICAgIHNlbGYsCiAgICAgICAgY2hhaW5fZGVzY3JpcHRvcjogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlByb3RvY29sIGlkZW50aWZpZXIgZm9yIHRoZSBtZXJnZSBzdGFraW5nIG9wZXJhdGlvbiAoZS5nLiwgU09MKS4iKV0sCiAgICAgICAgbWVyZ2Vfc3Rha2VfYWNjb3VudHNfcmVxdWVzdDogTWVyZ2VTdGFrZUFjY291bnRzUmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtNZXJnZVN0YWtlQWNjb3VudHNSZXNwb25zZV1dOgogICAgICAgICIiIk1lcmdlIHN0YWtpbmcgcG9zaXRpb25zCgogICAgICAgIE1lcmdlcyB0aGUgc291cmNlIHN0YWtlIGFjY291bnQgaW50byB0aGUgZGVzdGluYXRpb24sIGNvbnNvbGlkYXRpbmcgdGhlIGJhbGFuY2UgaW50byB0aGUgZGVzdGluYXRpb24gYW5kIGNsb3NpbmcgdGhlIHNvdXJjZSBhY2NvdW50IG9uY2UgY29tcGxldGUuIEJvdGggYWNjb3VudHMgbXVzdCBiZSBmcm9tIHRoZSBzYW1lIHZhbGlkYXRvciBwcm92aWRlciBhbmQgb2Ygc2FtZSB2YXVsdCBhY2NvdW50Li4gU3VwcG9ydGVkIGNoYWluczogU29sYW5hIChTT0wpLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiAgICAgICAgOnBhcmFtIGNoYWluX2Rlc2NyaXB0b3I6IFByb3RvY29sIGlkZW50aWZpZXIgZm9yIHRoZSBtZXJnZSBzdGFraW5nIG9wZXJhdGlvbiAoZS5nLiwgU09MKS4gKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGNoYWluX2Rlc2NyaXB0b3I6IHN0cgogICAgICAgIDpwYXJhbSBtZXJnZV9zdGFrZV9hY2NvdW50c19yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgbWVyZ2Vfc3Rha2VfYWNjb3VudHNfcmVxdWVzdDogTWVyZ2VTdGFrZUFjY291bnRzUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJtZXJnZV9zdGFrZV9hY2NvdW50cyIsIHBhcmFtX25hbWU9ImNoYWluX2Rlc2NyaXB0b3IiLCBwYXJhbV92YWx1ZT1jaGFpbl9kZXNjcmlwdG9yKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9tZXJnZV9zdGFrZV9hY2NvdW50c19zZXJpYWxpemUoCiAgICAgICAgICAgIGNoYWluX2Rlc2NyaXB0b3I9Y2hhaW5fZGVzY3JpcHRvciwKICAgICAgICAgICAgbWVyZ2Vfc3Rha2VfYWNjb3VudHNfcmVxdWVzdD1tZXJnZV9zdGFrZV9hY2NvdW50c19yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiAiTWVyZ2VTdGFrZUFjY291bnRzUmVzcG9uc2UiLAogICAgICAgICAgICAnNDAwJzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQwMyc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MDQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNDI5JzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzUwMCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX21lcmdlX3N0YWtlX2FjY291bnRzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNoYWluX2Rlc2NyaXB0b3IsCiAgICAgICAgbWVyZ2Vfc3Rha2VfYWNjb3VudHNfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGNoYWluX2Rlc2NyaXB0b3IgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY2hhaW5EZXNjcmlwdG9yJ10gPSBjaGFpbl9kZXNjcmlwdG9yCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgbWVyZ2Vfc3Rha2VfYWNjb3VudHNfcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gbWVyZ2Vfc3Rha2VfYWNjb3VudHNfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc3Rha2luZy9jaGFpbnMve2NoYWluRGVzY3JpcHRvcn0vbWVyZ2UnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgc3BsaXQoCiAgICAgICAgc2VsZiwKICAgICAgICBjaGFpbl9kZXNjcmlwdG9yOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iUHJvdG9jb2wgaWRlbnRpZmllciBmb3IgdGhlIHN0YWtpbmcgb3BlcmF0aW9uIChlLmcuLCBTT0wpLiIpXSwKICAgICAgICBzcGxpdF9yZXF1ZXN0OiBTcGxpdFJlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbU3BsaXRSZXNwb25zZV1dOgogICAgICAgICIiIlNwbGl0IGEgc3Rha2luZyBwb3NpdGlvbgoKICAgICAgICBTcGxpdHMgYSBzdGFraW5nIHBvc2l0aW9uIGJ5IGNyZWF0aW5nIGEgbmV3IHN0YWtlIGFjY291bnQgd2l0aCB0aGUgcmVxdWVzdGVkIGFtb3VudCwgd2hpbGUga2VlcGluZyB0aGUgb3JpZ2luYWwgYWNjb3VudCB3aXRoIHRoZSByZW1haW5pbmcgYmFsYW5jZS4gU3VwcG9ydGVkIGNoYWluczogU29sYW5hIChTT0wpLgoKICAgICAgICA6cGFyYW0gY2hhaW5fZGVzY3JpcHRvcjogUHJvdG9jb2wgaWRlbnRpZmllciBmb3IgdGhlIHN0YWtpbmcgb3BlcmF0aW9uIChlLmcuLCBTT0wpLiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY2hhaW5fZGVzY3JpcHRvcjogc3RyCiAgICAgICAgOnBhcmFtIHNwbGl0X3JlcXVlc3Q6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBzcGxpdF9yZXF1ZXN0OiBTcGxpdFJlcXVlc3QKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0ic3BsaXQiLCBwYXJhbV9uYW1lPSJjaGFpbl9kZXNjcmlwdG9yIiwgcGFyYW1fdmFsdWU9Y2hhaW5fZGVzY3JpcHRvcikKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fc3BsaXRfc2VyaWFsaXplKAogICAgICAgICAgICBjaGFpbl9kZXNjcmlwdG9yPWNoYWluX2Rlc2NyaXB0b3IsCiAgICAgICAgICAgIHNwbGl0X3JlcXVlc3Q9c3BsaXRfcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAxJzogIlNwbGl0UmVzcG9uc2UiLAogICAgICAgICAgICAnNDAwJzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQwMyc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MDQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNDI5JzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzUwMCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3NwbGl0X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNoYWluX2Rlc2NyaXB0b3IsCiAgICAgICAgc3BsaXRfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGNoYWluX2Rlc2NyaXB0b3IgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY2hhaW5EZXNjcmlwdG9yJ10gPSBjaGFpbl9kZXNjcmlwdG9yCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgc3BsaXRfcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gc3BsaXRfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc3Rha2luZy9jaGFpbnMve2NoYWluRGVzY3JpcHRvcn0vc3BsaXQnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgc3Rha2UoCiAgICAgICAgc2VsZiwKICAgICAgICBjaGFpbl9kZXNjcmlwdG9yOiBBbm5vdGF0ZWRbQ2hhaW5EZXNjcmlwdG9yLCBGaWVsZChkZXNjcmlwdGlvbj0iUHJvdG9jb2wgaWRlbnRpZmllciBmb3IgdGhlIHN0YWtlIHN0YWtpbmcgb3BlcmF0aW9uIChlLmcuLCBBVE9NX0NPUy9BWEwvQ0VMRVNUSUEpLiIpXSwKICAgICAgICBzdGFrZV9yZXF1ZXN0OiBTdGFrZVJlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbU3Rha2VSZXNwb25zZV1dOgogICAgICAgICIiIkluaXRpYXRlIG9yIGFkZCB0byBleGlzdGluZyBzdGFrZQoKICAgICAgICBDcmVhdGVzIGEgbmV3IHN0YWtpbmcgcG9zaXRpb24gYW5kIHJldHVybnMgaXRzIHVuaXF1ZSBJRC4gRm9yIEV0aGVyZXVtIGNvbXBvdW5kaW5nIHZhbGlkYXRvciAoRUlQLTcyNTEpOiB3aGVuIHRoZSAnaWQnIG9mIGFuIGV4aXN0aW5nIGNvbXBvdW5kaW5nIHZhbGlkYXRvciBwb3NpdGlvbiBpcyBwcm92aWRlZCwgYWRkcyB0byB0aGF0IHBvc2l0aW9uOyBvdGhlcndpc2UgY3JlYXRlcyBhIG5ldyBwb3NpdGlvbi4gRm9yIEV0aGVyZXVtIGxlZ2FjeSB2YWxpZGF0b3I6IGNyZWF0ZXMgYSBuZXcgcG9zaXRpb24gcmVnYXJkbGVzcyBvZiBleGlzdGluZyBkZWxlZ2F0aW9ucy4gRm9yIENvc21vcyBjaGFpbnMgYW5kIEV0aGVyZXVtIGxpcXVpZCBzdGFraW5nIChMaWRvKTogYXV0b21hdGljYWxseSBhZGQgdG8gZXhpc3RpbmcgcG9zaXRpb25zIGZvciB0aGUgc2FtZSB2YWxpZGF0b3IgcHJvdmlkZXIgYW5kIHNhbWUgdmF1bHQgYWNjb3VudCBpZiBvbmUgZXhpc3RzLCBvdGhlcndpc2UgY3JlYXRlIGEgbmV3IHBvc2l0aW9uLiBGb3IgU29sYW5hIGFuZCBQb2x5Z29uOiBhbHdheXMgY3JlYXRlIG5ldyBwb3NpdGlvbnMgcmVnYXJkbGVzcyBvZiBleGlzdGluZyBkZWxlZ2F0aW9ucy4KCiAgICAgICAgOnBhcmFtIGNoYWluX2Rlc2NyaXB0b3I6IFByb3RvY29sIGlkZW50aWZpZXIgZm9yIHRoZSBzdGFrZSBzdGFraW5nIG9wZXJhdGlvbiAoZS5nLiwgQVRPTV9DT1MvQVhML0NFTEVTVElBKS4gKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGNoYWluX2Rlc2NyaXB0b3I6IENoYWluRGVzY3JpcHRvcgogICAgICAgIDpwYXJhbSBzdGFrZV9yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgc3Rha2VfcmVxdWVzdDogU3Rha2VSZXF1ZXN0CiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fc3Rha2Vfc2VyaWFsaXplKAogICAgICAgICAgICBjaGFpbl9kZXNjcmlwdG9yPWNoYWluX2Rlc2NyaXB0b3IsCiAgICAgICAgICAgIHN0YWtlX3JlcXVlc3Q9c3Rha2VfcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAxJzogIlN0YWtlUmVzcG9uc2UiLAogICAgICAgICAgICAnNDAwJzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQwMyc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MDQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNDI5JzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzUwMCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3N0YWtlX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNoYWluX2Rlc2NyaXB0b3IsCiAgICAgICAgc3Rha2VfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGNoYWluX2Rlc2NyaXB0b3IgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY2hhaW5EZXNjcmlwdG9yJ10gPSBjaGFpbl9kZXNjcmlwdG9yLnZhbHVlCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgc3Rha2VfcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gc3Rha2VfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc3Rha2luZy9jaGFpbnMve2NoYWluRGVzY3JpcHRvcn0vc3Rha2UnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgdW5zdGFrZSgKICAgICAgICBzZWxmLAogICAgICAgIGNoYWluX2Rlc2NyaXB0b3I6IEFubm90YXRlZFtDaGFpbkRlc2NyaXB0b3IsIEZpZWxkKGRlc2NyaXB0aW9uPSJQcm90b2NvbCBpZGVudGlmaWVyIGZvciB0aGUgdW5zdGFrZSBzdGFraW5nIG9wZXJhdGlvbiAoZS5nLiwgU09ML1NPTF9URVNUL01BVElDKS4iKV0sCiAgICAgICAgdW5zdGFrZV9yZXF1ZXN0OiBVbnN0YWtlUmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtOb25lXV06CiAgICAgICAgIiIiSW5pdGlhdGUgdW5zdGFrZQoKICAgICAgICBTdWJtaXRzIGEgY2hhaW4tc3BlY2lmaWMgdW5zdGFrZSByZXF1ZXN0LgoKICAgICAgICA6cGFyYW0gY2hhaW5fZGVzY3JpcHRvcjogUHJvdG9jb2wgaWRlbnRpZmllciBmb3IgdGhlIHVuc3Rha2Ugc3Rha2luZyBvcGVyYXRpb24gKGUuZy4sIFNPTC9TT0xfVEVTVC9NQVRJQykuIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjaGFpbl9kZXNjcmlwdG9yOiBDaGFpbkRlc2NyaXB0b3IKICAgICAgICA6cGFyYW0gdW5zdGFrZV9yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdW5zdGFrZV9yZXF1ZXN0OiBVbnN0YWtlUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3Vuc3Rha2Vfc2VyaWFsaXplKAogICAgICAgICAgICBjaGFpbl9kZXNjcmlwdG9yPWNoYWluX2Rlc2NyaXB0b3IsCiAgICAgICAgICAgIHVuc3Rha2VfcmVxdWVzdD11bnN0YWtlX3JlcXVlc3QsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMSc6IE5vbmUsCiAgICAgICAgICAgICc0MDAnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNDAzJzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQwNCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MjknOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNTAwJzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfdW5zdGFrZV9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBjaGFpbl9kZXNjcmlwdG9yLAogICAgICAgIHVuc3Rha2VfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGNoYWluX2Rlc2NyaXB0b3IgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY2hhaW5EZXNjcmlwdG9yJ10gPSBjaGFpbl9kZXNjcmlwdG9yLnZhbHVlCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgdW5zdGFrZV9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSB1bnN0YWtlX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3N0YWtpbmcvY2hhaW5zL3tjaGFpbkRlc2NyaXB0b3J9L3Vuc3Rha2UnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgd2l0aGRyYXcoCiAgICAgICAgc2VsZiwKICAgICAgICBjaGFpbl9kZXNjcmlwdG9yOiBBbm5vdGF0ZWRbQ2hhaW5EZXNjcmlwdG9yLCBGaWVsZChkZXNjcmlwdGlvbj0iUHJvdG9jb2wgaWRlbnRpZmllciBmb3IgdGhlIHdpdGhkcmF3IHN0YWtpbmcgb3BlcmF0aW9uIChlLmcuLCBBVE9NX0NPUy9FVEgvU1RFVEhfRVRIKS4iKV0sCiAgICAgICAgd2l0aGRyYXdfcmVxdWVzdDogV2l0aGRyYXdSZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW05vbmVdXToKICAgICAgICAiIiJXaXRoZHJhdyBzdGFrZWQgZnVuZHMKCiAgICAgICAgV2l0aGRyYXdzIGZ1bmRzIHRoYXQgaGF2ZSBjb21wbGV0ZWQgdGhlIHVuYm9uZGluZyBwZXJpb2QuIFR5cGljYWxseSByZXF1aXJlcyB0aGUgcG9zaXRpb24gdG8gYmUgZGVhY3RpdmF0ZWQgZmlyc3QgKHVuc3Rha2Ug4oaSIHVuYm9uZCDihpIgd2l0aGRyYXcpLiBBbW91bnQgYW5kIHRpbWluZyB2YXJ5IGJ5IGNoYWluIHByb3RvY29sLgoKICAgICAgICA6cGFyYW0gY2hhaW5fZGVzY3JpcHRvcjogUHJvdG9jb2wgaWRlbnRpZmllciBmb3IgdGhlIHdpdGhkcmF3IHN0YWtpbmcgb3BlcmF0aW9uIChlLmcuLCBBVE9NX0NPUy9FVEgvU1RFVEhfRVRIKS4gKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGNoYWluX2Rlc2NyaXB0b3I6IENoYWluRGVzY3JpcHRvcgogICAgICAgIDpwYXJhbSB3aXRoZHJhd19yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgd2l0aGRyYXdfcmVxdWVzdDogV2l0aGRyYXdSZXF1ZXN0CiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fd2l0aGRyYXdfc2VyaWFsaXplKAogICAgICAgICAgICBjaGFpbl9kZXNjcmlwdG9yPWNoYWluX2Rlc2NyaXB0b3IsCiAgICAgICAgICAgIHdpdGhkcmF3X3JlcXVlc3Q9d2l0aGRyYXdfcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAxJzogTm9uZSwKICAgICAgICAgICAgJzQwMCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MDMnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNDA0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQyOSc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc1MDAnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF93aXRoZHJhd19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBjaGFpbl9kZXNjcmlwdG9yLAogICAgICAgIHdpdGhkcmF3X3JlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBjaGFpbl9kZXNjcmlwdG9yIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2NoYWluRGVzY3JpcHRvciddID0gY2hhaW5fZGVzY3JpcHRvci52YWx1ZQogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHdpdGhkcmF3X3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHdpdGhkcmF3X3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3N0YWtpbmcvY2hhaW5zL3tjaGFpbkRlc2NyaXB0b3J9L3dpdGhkcmF3JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgo= \ No newline at end of file diff --git a/fireblocks/api/tags_api.py b/fireblocks/api/tags_api.py index 7cbc0a7e..cdb2cfa7 100644 --- a/fireblocks/api/tags_api.py +++ b/fireblocks/api/tags_api.py @@ -1,1042 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictBool, StrictStr -from typing import List, Optional, Union -from typing_extensions import Annotated -from fireblocks.models.approval_request import ApprovalRequest -from fireblocks.models.create_tag_request import CreateTagRequest -from fireblocks.models.tag import Tag -from fireblocks.models.tags_paged_response import TagsPagedResponse -from fireblocks.models.update_tag_request import UpdateTagRequest - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class TagsApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def cancel_approval_request( - self, - id: StrictStr, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Cancel an approval request by id - - Cancel an approval request by id. Can only cancel requests in PENDING status. Returns 202 Accepted when the cancellation is processed. - - :param id: (required) - :type id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="cancel_approval_request", param_name="id", param_value=id) - - _param = self._cancel_approval_request_serialize( - id=id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '202': None, - '401': "ErrorResponse", - '404': None, - '409': "ErrorResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _cancel_approval_request_serialize( - self, - id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if id is not None: - _path_params['id'] = id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/tags/approval_requests/{id}/cancel', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_tag( - self, - create_tag_request: CreateTagRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[Tag]]: - """Create a new tag - - Create a new tag. Endpoint Permissions: For protected tags: ADMIN,NON_SIGNING_ADMIN,OWNER. For non protected tags: ADMIN,NON_SIGNING_ADMIN,OWNER,SIGNER,EDITOR,APPROVER. - - :param create_tag_request: (required) - :type create_tag_request: CreateTagRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_tag_serialize( - create_tag_request=create_tag_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "Tag", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_tag_serialize( - self, - create_tag_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_tag_request is not None: - _body_params = create_tag_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/tags', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def delete_tag( - self, - tag_id: Annotated[StrictStr, Field(description="The ID of the tag to retrieve")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Delete a tag - - Delete the specified tag. Endpoint Permission: For protected tags: Owner, Admin, Non-Signing Admin. For non protected tags: Owner, Admin, Non-Signing Admin, Signer, Editor, Approver. - - :param tag_id: The ID of the tag to retrieve (required) - :type tag_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="delete_tag", param_name="tag_id", param_value=tag_id) - - _param = self._delete_tag_serialize( - tag_id=tag_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '204': None, - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _delete_tag_serialize( - self, - tag_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if tag_id is not None: - _path_params['tagId'] = tag_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/tags/{tagId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_approval_request( - self, - id: StrictStr, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ApprovalRequest]]: - """Get an approval request by id - - Get an approval request by id - - :param id: (required) - :type id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_approval_request", param_name="id", param_value=id) - - _param = self._get_approval_request_serialize( - id=id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ApprovalRequest", - '401': "ErrorResponse", - '404': "ErrorResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_approval_request_serialize( - self, - id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if id is not None: - _path_params['id'] = id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tags/approval_requests/{id}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_tag( - self, - tag_id: Annotated[StrictStr, Field(description="The ID of the tag to retrieve")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[Tag]]: - """Get a tag - - Retrieve an existing tag by ID. - - :param tag_id: The ID of the tag to retrieve (required) - :type tag_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_tag", param_name="tag_id", param_value=tag_id) - - _param = self._get_tag_serialize( - tag_id=tag_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "Tag", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_tag_serialize( - self, - tag_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if tag_id is not None: - _path_params['tagId'] = tag_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tags/{tagId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_tags( - self, - page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor to get the next page.")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=100, strict=True, ge=1)], Annotated[int, Field(le=100, strict=True, ge=1)]]], Field(description="Maximum number of items in the page")] = None, - label: Annotated[Optional[StrictStr], Field(description="Label prefix to filter by.")] = None, - tag_ids: Annotated[Optional[Annotated[List[StrictStr], Field(max_length=100)]], Field(description="List of tag IDs to filter by.")] = None, - include_pending_approvals_info: Annotated[Optional[StrictBool], Field(description="Whether to include pending approval requests info.")] = None, - is_protected: Optional[StrictBool] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TagsPagedResponse]]: - """Get list of tags - - Retrieve a paged list of all tags according to filters. - - :param page_cursor: Page cursor to get the next page. - :type page_cursor: str - :param page_size: Maximum number of items in the page - :type page_size: float - :param label: Label prefix to filter by. - :type label: str - :param tag_ids: List of tag IDs to filter by. - :type tag_ids: List[str] - :param include_pending_approvals_info: Whether to include pending approval requests info. - :type include_pending_approvals_info: bool - :param is_protected: - :type is_protected: bool - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_tags_serialize( - page_cursor=page_cursor, - page_size=page_size, - label=label, - tag_ids=tag_ids, - include_pending_approvals_info=include_pending_approvals_info, - is_protected=is_protected, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TagsPagedResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_tags_serialize( - self, - page_cursor, - page_size, - label, - tag_ids, - include_pending_approvals_info, - is_protected, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - 'tagIds': 'multi', - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if label is not None: - - _query_params.append(('label', label)) - - if tag_ids is not None: - - _query_params.append(('tagIds', tag_ids)) - - if include_pending_approvals_info is not None: - - _query_params.append(('includePendingApprovalsInfo', include_pending_approvals_info)) - - if is_protected is not None: - - _query_params.append(('isProtected', is_protected)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tags', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_tag( - self, - tag_id: Annotated[StrictStr, Field(description="The ID of the tag to update")], - update_tag_request: UpdateTagRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[Tag]]: - """Update a tag - - Update an existing specified tag. Endpoint Permission: For protected tags: Owner, Admin, Non-Signing Admin. For non protected tags: Owner, Admin, Non-Signing Admin, Signer, Editor, Approver. - - :param tag_id: The ID of the tag to update (required) - :type tag_id: str - :param update_tag_request: (required) - :type update_tag_request: UpdateTagRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="update_tag", param_name="tag_id", param_value=tag_id) - - _param = self._update_tag_serialize( - tag_id=tag_id, - update_tag_request=update_tag_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "Tag", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_tag_serialize( - self, - tag_id, - update_tag_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if tag_id is not None: - _path_params['tagId'] = tag_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if update_tag_request is not None: - _body_params = update_tag_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PATCH', - resource_path='/tags/{tagId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdEJvb2wsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgTGlzdCwgT3B0aW9uYWwsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFwcHJvdmFsX3JlcXVlc3QgaW1wb3J0IEFwcHJvdmFsUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV90YWdfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlVGFnUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRhZyBpbXBvcnQgVGFnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudGFnc19wYWdlZF9yZXNwb25zZSBpbXBvcnQgVGFnc1BhZ2VkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51cGRhdGVfdGFnX3JlcXVlc3QgaW1wb3J0IFVwZGF0ZVRhZ1JlcXVlc3QKCmZyb20gZmlyZWJsb2Nrcy5hcGlfY2xpZW50IGltcG9ydCBBcGlDbGllbnQsIFJlcXVlc3RTZXJpYWxpemVkCmZyb20gZmlyZWJsb2Nrcy5hcGlfcmVzcG9uc2UgaW1wb3J0IEFwaVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5yZXN0IGltcG9ydCBSRVNUUmVzcG9uc2VUeXBlCmZyb20gZmlyZWJsb2Nrcy52YWxpZGF0aW9uX3V0aWxzIGltcG9ydCB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nCgoKY2xhc3MgVGFnc0FwaToKICAgICIiIk5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IKICAgIFJlZjogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgogICAgIiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwaV9jbGllbnQ9Tm9uZSkgLT4gTm9uZToKICAgICAgICBpZiBhcGlfY2xpZW50IGlzIE5vbmU6CiAgICAgICAgICAgIGFwaV9jbGllbnQgPSBBcGlDbGllbnQuZ2V0X2RlZmF1bHQoKQogICAgICAgIHNlbGYuYXBpX2NsaWVudCA9IGFwaV9jbGllbnQKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBjYW5jZWxfYXBwcm92YWxfcmVxdWVzdCgKICAgICAgICBzZWxmLAogICAgICAgIGlkOiBTdHJpY3RTdHIsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTm9uZV1dOgogICAgICAgICIiIkNhbmNlbCBhbiBhcHByb3ZhbCByZXF1ZXN0IGJ5IGlkCgogICAgICAgIENhbmNlbCBhbiBhcHByb3ZhbCByZXF1ZXN0IGJ5IGlkLiBDYW4gb25seSBjYW5jZWwgcmVxdWVzdHMgaW4gUEVORElORyBzdGF0dXMuIFJldHVybnMgMjAyIEFjY2VwdGVkIHdoZW4gdGhlIGNhbmNlbGxhdGlvbiBpcyBwcm9jZXNzZWQuCgogICAgICAgIDpwYXJhbSBpZDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGlkOiBzdHIKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iY2FuY2VsX2FwcHJvdmFsX3JlcXVlc3QiLCBwYXJhbV9uYW1lPSJpZCIsIHBhcmFtX3ZhbHVlPWlkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9jYW5jZWxfYXBwcm92YWxfcmVxdWVzdF9zZXJpYWxpemUoCiAgICAgICAgICAgIGlkPWlkLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDInOiBOb25lLAogICAgICAgICAgICAnNDAxJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNDA0JzogTm9uZSwKICAgICAgICAgICAgJzQwOSc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfY2FuY2VsX2FwcHJvdmFsX3JlcXVlc3Rfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgaWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydpZCddID0gaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90YWdzL2FwcHJvdmFsX3JlcXVlc3RzL3tpZH0vY2FuY2VsJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGNyZWF0ZV90YWcoCiAgICAgICAgc2VsZiwKICAgICAgICBjcmVhdGVfdGFnX3JlcXVlc3Q6IENyZWF0ZVRhZ1JlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVGFnXV06CiAgICAgICAgIiIiQ3JlYXRlIGEgbmV3IHRhZwoKICAgICAgICBDcmVhdGUgYSBuZXcgdGFnLiBFbmRwb2ludCBQZXJtaXNzaW9uczogRm9yIHByb3RlY3RlZCB0YWdzOiBBRE1JTixOT05fU0lHTklOR19BRE1JTixPV05FUi4gRm9yIG5vbiBwcm90ZWN0ZWQgdGFnczogQURNSU4sTk9OX1NJR05JTkdfQURNSU4sT1dORVIsU0lHTkVSLEVESVRPUixBUFBST1ZFUi4KCiAgICAgICAgOnBhcmFtIGNyZWF0ZV90YWdfcmVxdWVzdDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGNyZWF0ZV90YWdfcmVxdWVzdDogQ3JlYXRlVGFnUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2NyZWF0ZV90YWdfc2VyaWFsaXplKAogICAgICAgICAgICBjcmVhdGVfdGFnX3JlcXVlc3Q9Y3JlYXRlX3RhZ19yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiAiVGFnIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2NyZWF0ZV90YWdfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY3JlYXRlX3RhZ19yZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgY3JlYXRlX3RhZ19yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBjcmVhdGVfdGFnX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3RhZ3MnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZGVsZXRlX3RhZygKICAgICAgICBzZWxmLAogICAgICAgIHRhZ19pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgdGFnIHRvIHJldHJpZXZlIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTm9uZV1dOgogICAgICAgICIiIkRlbGV0ZSBhIHRhZwoKICAgICAgICBEZWxldGUgdGhlIHNwZWNpZmllZCB0YWcuIEVuZHBvaW50IFBlcm1pc3Npb246IEZvciBwcm90ZWN0ZWQgdGFnczogT3duZXIsIEFkbWluLCBOb24tU2lnbmluZyBBZG1pbi4gRm9yIG5vbiBwcm90ZWN0ZWQgdGFnczogT3duZXIsIEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBFZGl0b3IsIEFwcHJvdmVyLgoKICAgICAgICA6cGFyYW0gdGFnX2lkOiBUaGUgSUQgb2YgdGhlIHRhZyB0byByZXRyaWV2ZSAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdGFnX2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZGVsZXRlX3RhZyIsIHBhcmFtX25hbWU9InRhZ19pZCIsIHBhcmFtX3ZhbHVlPXRhZ19pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZGVsZXRlX3RhZ19zZXJpYWxpemUoCiAgICAgICAgICAgIHRhZ19pZD10YWdfaWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwNCc6IE5vbmUsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9kZWxldGVfdGFnX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHRhZ19pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgdGFnX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3RhZ0lkJ10gPSB0YWdfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdERUxFVEUnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdGFncy97dGFnSWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9hcHByb3ZhbF9yZXF1ZXN0KAogICAgICAgIHNlbGYsCiAgICAgICAgaWQ6IFN0cmljdFN0ciwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0FwcHJvdmFsUmVxdWVzdF1dOgogICAgICAgICIiIkdldCBhbiBhcHByb3ZhbCByZXF1ZXN0IGJ5IGlkCgogICAgICAgIEdldCBhbiBhcHByb3ZhbCByZXF1ZXN0IGJ5IGlkCgogICAgICAgIDpwYXJhbSBpZDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGlkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2FwcHJvdmFsX3JlcXVlc3QiLCBwYXJhbV9uYW1lPSJpZCIsIHBhcmFtX3ZhbHVlPWlkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfYXBwcm92YWxfcmVxdWVzdF9zZXJpYWxpemUoCiAgICAgICAgICAgIGlkPWlkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiQXBwcm92YWxSZXF1ZXN0IiwKICAgICAgICAgICAgJzQwMSc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwNCc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2FwcHJvdmFsX3JlcXVlc3Rfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGlkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2lkJ10gPSBpZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3RhZ3MvYXBwcm92YWxfcmVxdWVzdHMve2lkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfdGFnKAogICAgICAgIHNlbGYsCiAgICAgICAgdGFnX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB0YWcgdG8gcmV0cmlldmUiKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtUYWddXToKICAgICAgICAiIiJHZXQgYSB0YWcKCiAgICAgICAgUmV0cmlldmUgYW4gZXhpc3RpbmcgdGFnIGJ5IElELgoKICAgICAgICA6cGFyYW0gdGFnX2lkOiBUaGUgSUQgb2YgdGhlIHRhZyB0byByZXRyaWV2ZSAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdGFnX2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3RhZyIsIHBhcmFtX25hbWU9InRhZ19pZCIsIHBhcmFtX3ZhbHVlPXRhZ19pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X3RhZ19zZXJpYWxpemUoCiAgICAgICAgICAgIHRhZ19pZD10YWdfaWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJUYWciLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3RhZ19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB0YWdfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHRhZ19pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd0YWdJZCddID0gdGFnX2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdGFncy97dGFnSWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF90YWdzKAogICAgICAgIHNlbGYsCiAgICAgICAgcGFnZV9jdXJzb3I6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iUGFnZSBjdXJzb3IgdG8gZ2V0IHRoZSBuZXh0IHBhZ2UuIildID0gTm9uZSwKICAgICAgICBwYWdlX3NpemU6IEFubm90YXRlZFtPcHRpb25hbFtVbmlvbltBbm5vdGF0ZWRbZmxvYXQsIEZpZWxkKGxlPTEwMCwgc3RyaWN0PVRydWUsIGdlPTEpXSwgQW5ub3RhdGVkW2ludCwgRmllbGQobGU9MTAwLCBzdHJpY3Q9VHJ1ZSwgZ2U9MSldXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJNYXhpbXVtIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgcGFnZSIpXSA9IE5vbmUsCiAgICAgICAgbGFiZWw6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iTGFiZWwgcHJlZml4IHRvIGZpbHRlciBieS4iKV0gPSBOb25lLAogICAgICAgIHRhZ19pZHM6IEFubm90YXRlZFtPcHRpb25hbFtBbm5vdGF0ZWRbTGlzdFtTdHJpY3RTdHJdLCBGaWVsZChtYXhfbGVuZ3RoPTEwMCldXSwgRmllbGQoZGVzY3JpcHRpb249Ikxpc3Qgb2YgdGFnIElEcyB0byBmaWx0ZXIgYnkuIildID0gTm9uZSwKICAgICAgICBpbmNsdWRlX3BlbmRpbmdfYXBwcm92YWxzX2luZm86IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RCb29sXSwgRmllbGQoZGVzY3JpcHRpb249IldoZXRoZXIgdG8gaW5jbHVkZSBwZW5kaW5nIGFwcHJvdmFsIHJlcXVlc3RzIGluZm8uIildID0gTm9uZSwKICAgICAgICBpc19wcm90ZWN0ZWQ6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1RhZ3NQYWdlZFJlc3BvbnNlXV06CiAgICAgICAgIiIiR2V0IGxpc3Qgb2YgdGFncwoKICAgICAgICBSZXRyaWV2ZSBhIHBhZ2VkIGxpc3Qgb2YgYWxsIHRhZ3MgYWNjb3JkaW5nIHRvIGZpbHRlcnMuCgogICAgICAgIDpwYXJhbSBwYWdlX2N1cnNvcjogUGFnZSBjdXJzb3IgdG8gZ2V0IHRoZSBuZXh0IHBhZ2UuCiAgICAgICAgOnR5cGUgcGFnZV9jdXJzb3I6IHN0cgogICAgICAgIDpwYXJhbSBwYWdlX3NpemU6IE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBwYWdlCiAgICAgICAgOnR5cGUgcGFnZV9zaXplOiBmbG9hdAogICAgICAgIDpwYXJhbSBsYWJlbDogTGFiZWwgcHJlZml4IHRvIGZpbHRlciBieS4KICAgICAgICA6dHlwZSBsYWJlbDogc3RyCiAgICAgICAgOnBhcmFtIHRhZ19pZHM6IExpc3Qgb2YgdGFnIElEcyB0byBmaWx0ZXIgYnkuCiAgICAgICAgOnR5cGUgdGFnX2lkczogTGlzdFtzdHJdCiAgICAgICAgOnBhcmFtIGluY2x1ZGVfcGVuZGluZ19hcHByb3ZhbHNfaW5mbzogV2hldGhlciB0byBpbmNsdWRlIHBlbmRpbmcgYXBwcm92YWwgcmVxdWVzdHMgaW5mby4KICAgICAgICA6dHlwZSBpbmNsdWRlX3BlbmRpbmdfYXBwcm92YWxzX2luZm86IGJvb2wKICAgICAgICA6cGFyYW0gaXNfcHJvdGVjdGVkOgogICAgICAgIDp0eXBlIGlzX3Byb3RlY3RlZDogYm9vbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF90YWdzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsCiAgICAgICAgICAgIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsCiAgICAgICAgICAgIGxhYmVsPWxhYmVsLAogICAgICAgICAgICB0YWdfaWRzPXRhZ19pZHMsCiAgICAgICAgICAgIGluY2x1ZGVfcGVuZGluZ19hcHByb3ZhbHNfaW5mbz1pbmNsdWRlX3BlbmRpbmdfYXBwcm92YWxzX2luZm8sCiAgICAgICAgICAgIGlzX3Byb3RlY3RlZD1pc19wcm90ZWN0ZWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJUYWdzUGFnZWRSZXNwb25zZSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfdGFnc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBwYWdlX2N1cnNvciwKICAgICAgICBwYWdlX3NpemUsCiAgICAgICAgbGFiZWwsCiAgICAgICAgdGFnX2lkcywKICAgICAgICBpbmNsdWRlX3BlbmRpbmdfYXBwcm92YWxzX2luZm8sCiAgICAgICAgaXNfcHJvdGVjdGVkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICAgICAgJ3RhZ0lkcyc6ICdtdWx0aScsCiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgcGFnZV9jdXJzb3IgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VDdXJzb3InLCBwYWdlX2N1cnNvcikpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2Vfc2l6ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZVNpemUnLCBwYWdlX3NpemUpKQogICAgICAgICAgICAKICAgICAgICBpZiBsYWJlbCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnbGFiZWwnLCBsYWJlbCkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHRhZ19pZHMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3RhZ0lkcycsIHRhZ19pZHMpKQogICAgICAgICAgICAKICAgICAgICBpZiBpbmNsdWRlX3BlbmRpbmdfYXBwcm92YWxzX2luZm8gaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2luY2x1ZGVQZW5kaW5nQXBwcm92YWxzSW5mbycsIGluY2x1ZGVfcGVuZGluZ19hcHByb3ZhbHNfaW5mbykpCiAgICAgICAgICAgIAogICAgICAgIGlmIGlzX3Byb3RlY3RlZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnaXNQcm90ZWN0ZWQnLCBpc19wcm90ZWN0ZWQpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90YWdzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHVwZGF0ZV90YWcoCiAgICAgICAgc2VsZiwKICAgICAgICB0YWdfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIHRhZyB0byB1cGRhdGUiKV0sCiAgICAgICAgdXBkYXRlX3RhZ19yZXF1ZXN0OiBVcGRhdGVUYWdSZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1RhZ11dOgogICAgICAgICIiIlVwZGF0ZSBhIHRhZwoKICAgICAgICBVcGRhdGUgYW4gZXhpc3Rpbmcgc3BlY2lmaWVkIHRhZy4gRW5kcG9pbnQgUGVybWlzc2lvbjogRm9yIHByb3RlY3RlZCB0YWdzOiBPd25lciwgQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLiBGb3Igbm9uIHByb3RlY3RlZCB0YWdzOiBPd25lciwgQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEVkaXRvciwgQXBwcm92ZXIuCgogICAgICAgIDpwYXJhbSB0YWdfaWQ6IFRoZSBJRCBvZiB0aGUgdGFnIHRvIHVwZGF0ZSAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdGFnX2lkOiBzdHIKICAgICAgICA6cGFyYW0gdXBkYXRlX3RhZ19yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdXBkYXRlX3RhZ19yZXF1ZXN0OiBVcGRhdGVUYWdSZXF1ZXN0CiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InVwZGF0ZV90YWciLCBwYXJhbV9uYW1lPSJ0YWdfaWQiLCBwYXJhbV92YWx1ZT10YWdfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3VwZGF0ZV90YWdfc2VyaWFsaXplKAogICAgICAgICAgICB0YWdfaWQ9dGFnX2lkLAogICAgICAgICAgICB1cGRhdGVfdGFnX3JlcXVlc3Q9dXBkYXRlX3RhZ19yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiVGFnIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3VwZGF0ZV90YWdfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdGFnX2lkLAogICAgICAgIHVwZGF0ZV90YWdfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHRhZ19pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd0YWdJZCddID0gdGFnX2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgdXBkYXRlX3RhZ19yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSB1cGRhdGVfdGFnX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQQVRDSCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90YWdzL3t0YWdJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCg== \ No newline at end of file diff --git a/fireblocks/api/tokenization_api.py b/fireblocks/api/tokenization_api.py index fdafcbad..af320b14 100644 --- a/fireblocks/api/tokenization_api.py +++ b/fireblocks/api/tokenization_api.py @@ -1,3533 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing import Any, List, Optional, Union -from typing_extensions import Annotated -from fireblocks.models.adapter_processing_result import AdapterProcessingResult -from fireblocks.models.collection_burn_request_dto import CollectionBurnRequestDto -from fireblocks.models.collection_burn_response_dto import CollectionBurnResponseDto -from fireblocks.models.collection_deploy_request_dto import CollectionDeployRequestDto -from fireblocks.models.collection_link_dto import CollectionLinkDto -from fireblocks.models.collection_mint_request_dto import CollectionMintRequestDto -from fireblocks.models.collection_mint_response_dto import CollectionMintResponseDto -from fireblocks.models.create_multichain_token_request import CreateMultichainTokenRequest -from fireblocks.models.create_token_request_dto import CreateTokenRequestDto -from fireblocks.models.deploy_layer_zero_adapters_request import DeployLayerZeroAdaptersRequest -from fireblocks.models.deployable_address_response import DeployableAddressResponse -from fireblocks.models.get_deployable_address_request import GetDeployableAddressRequest -from fireblocks.models.get_layer_zero_dvn_config_response import GetLayerZeroDvnConfigResponse -from fireblocks.models.get_layer_zero_peers_response import GetLayerZeroPeersResponse -from fireblocks.models.get_linked_collections_paginated_response import GetLinkedCollectionsPaginatedResponse -from fireblocks.models.linked_tokens_count import LinkedTokensCount -from fireblocks.models.reissue_multichain_token_request import ReissueMultichainTokenRequest -from fireblocks.models.remove_layer_zero_adapters_request import RemoveLayerZeroAdaptersRequest -from fireblocks.models.remove_layer_zero_adapters_response import RemoveLayerZeroAdaptersResponse -from fireblocks.models.remove_layer_zero_peers_request import RemoveLayerZeroPeersRequest -from fireblocks.models.remove_layer_zero_peers_response import RemoveLayerZeroPeersResponse -from fireblocks.models.set_layer_zero_dvn_config_request import SetLayerZeroDvnConfigRequest -from fireblocks.models.set_layer_zero_dvn_config_response import SetLayerZeroDvnConfigResponse -from fireblocks.models.set_layer_zero_peers_request import SetLayerZeroPeersRequest -from fireblocks.models.set_layer_zero_peers_response import SetLayerZeroPeersResponse -from fireblocks.models.token_link_dto import TokenLinkDto -from fireblocks.models.token_link_request_dto import TokenLinkRequestDto -from fireblocks.models.tokens_paginated_response import TokensPaginatedResponse -from fireblocks.models.validate_layer_zero_channel_response import ValidateLayerZeroChannelResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class TokenizationApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def burn_collection_token( - self, - id: Annotated[StrictStr, Field(description="The collection link id")], - collection_burn_request_dto: CollectionBurnRequestDto, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[CollectionBurnResponseDto]]: - """Burn tokens - - Burn tokens in a collection - - :param id: The collection link id (required) - :type id: str - :param collection_burn_request_dto: (required) - :type collection_burn_request_dto: CollectionBurnRequestDto - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="burn_collection_token", param_name="id", param_value=id) - - _param = self._burn_collection_token_serialize( - id=id, - collection_burn_request_dto=collection_burn_request_dto, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '202': "CollectionBurnResponseDto", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _burn_collection_token_serialize( - self, - id, - collection_burn_request_dto, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if id is not None: - _path_params['id'] = id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if collection_burn_request_dto is not None: - _body_params = collection_burn_request_dto - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/tokenization/collections/{id}/tokens/burn', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_new_collection( - self, - collection_deploy_request_dto: CollectionDeployRequestDto, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[CollectionLinkDto]]: - """Create a new collection - - Create a new collection and link it as a token.
Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, and Editor. - - :param collection_deploy_request_dto: (required) - :type collection_deploy_request_dto: CollectionDeployRequestDto - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_new_collection_serialize( - collection_deploy_request_dto=collection_deploy_request_dto, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "CollectionLinkDto", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_new_collection_serialize( - self, - collection_deploy_request_dto, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if collection_deploy_request_dto is not None: - _body_params = collection_deploy_request_dto - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/tokenization/collections', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def deactivate_and_unlink_adapters( - self, - remove_layer_zero_adapters_request: RemoveLayerZeroAdaptersRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[RemoveLayerZeroAdaptersResponse]]: - """Remove LayerZero adapters - - Remove LayerZero adapters by deactivating and unlinking them. This endpoint revokes roles and deactivates the specified adapter contracts. - - :param remove_layer_zero_adapters_request: (required) - :type remove_layer_zero_adapters_request: RemoveLayerZeroAdaptersRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._deactivate_and_unlink_adapters_serialize( - remove_layer_zero_adapters_request=remove_layer_zero_adapters_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "RemoveLayerZeroAdaptersResponse", - '400': "ErrorResponse", - '404': "ErrorResponse", - '409': "ErrorResponse", - '500': "ErrorResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _deactivate_and_unlink_adapters_serialize( - self, - remove_layer_zero_adapters_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if remove_layer_zero_adapters_request is not None: - _body_params = remove_layer_zero_adapters_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/tokenization/multichain/bridge/layerzero', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def deploy_and_link_adapters( - self, - deploy_layer_zero_adapters_request: DeployLayerZeroAdaptersRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[AdapterProcessingResult]]]: - """Deploy LayerZero adapters - - Deploy LayerZero adapters for multichain token bridging functionality. This endpoint creates adapter contracts that enable cross-chain token transfers. - - :param deploy_layer_zero_adapters_request: (required) - :type deploy_layer_zero_adapters_request: DeployLayerZeroAdaptersRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._deploy_and_link_adapters_serialize( - deploy_layer_zero_adapters_request=deploy_layer_zero_adapters_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "List[AdapterProcessingResult]", - '400': "ErrorResponse", - '404': "ErrorResponse", - '409': "ErrorResponse", - '422': "ErrorResponse", - '500': "ErrorResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _deploy_and_link_adapters_serialize( - self, - deploy_layer_zero_adapters_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if deploy_layer_zero_adapters_request is not None: - _body_params = deploy_layer_zero_adapters_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/tokenization/multichain/bridge/layerzero', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def fetch_collection_token_details( - self, - id: Annotated[StrictStr, Field(description="The collection link id")], - token_id: Annotated[StrictStr, Field(description="The tokenId as it appears on the blockchain")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[CollectionLinkDto]]: - """Get collection token details - - Get collection token details by id - - :param id: The collection link id (required) - :type id: str - :param token_id: The tokenId as it appears on the blockchain (required) - :type token_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="fetch_collection_token_details", param_name="id", param_value=id) - validate_not_empty_string(function_name="fetch_collection_token_details", param_name="token_id", param_value=token_id) - - _param = self._fetch_collection_token_details_serialize( - id=id, - token_id=token_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "CollectionLinkDto", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _fetch_collection_token_details_serialize( - self, - id, - token_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if id is not None: - _path_params['id'] = id - if token_id is not None: - _path_params['tokenId'] = token_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tokenization/collections/{id}/tokens/{tokenId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_collection_by_id( - self, - id: Annotated[StrictStr, Field(description="The token link id")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[CollectionLinkDto]]: - """Get a collection by id - - Get a collection by id - - :param id: The token link id (required) - :type id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_collection_by_id", param_name="id", param_value=id) - - _param = self._get_collection_by_id_serialize( - id=id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "CollectionLinkDto", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_collection_by_id_serialize( - self, - id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if id is not None: - _path_params['id'] = id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tokenization/collections/{id}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_deployable_address( - self, - get_deployable_address_request: GetDeployableAddressRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[DeployableAddressResponse]]: - """Get deterministic address for contract deployment - - Get a deterministic address for contract deployment. The address is derived from the contract's bytecode and provided salt. This endpoint is used to get the address of a contract that will be deployed in the future. - - :param get_deployable_address_request: (required) - :type get_deployable_address_request: GetDeployableAddressRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_deployable_address_serialize( - get_deployable_address_request=get_deployable_address_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "DeployableAddressResponse", - '400': "InvalidParamaterValueError", - '409': "AddressNotAvailableError", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_deployable_address_serialize( - self, - get_deployable_address_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if get_deployable_address_request is not None: - _body_params = get_deployable_address_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/tokenization/multichain/deterministic_address', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_layer_zero_dvn_config( - self, - adapter_token_link_id: Annotated[StrictStr, Field(description="The token link id of the adapter token link")], - peer_adapter_token_link_id: Annotated[Optional[StrictStr], Field(description="Optional peer adapter token link ID to filter results")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GetLayerZeroDvnConfigResponse]]: - """Get LayerZero DVN configuration - - Retrieve the DVN (Data Verification Network) configuration for a specific adapter. Returns DVN configurations for channels between the source adapter and its peers. - - :param adapter_token_link_id: The token link id of the adapter token link (required) - :type adapter_token_link_id: str - :param peer_adapter_token_link_id: Optional peer adapter token link ID to filter results - :type peer_adapter_token_link_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_layer_zero_dvn_config", param_name="adapter_token_link_id", param_value=adapter_token_link_id) - - _param = self._get_layer_zero_dvn_config_serialize( - adapter_token_link_id=adapter_token_link_id, - peer_adapter_token_link_id=peer_adapter_token_link_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GetLayerZeroDvnConfigResponse", - '400': "ErrorResponse", - '404': "ErrorResponse", - '500': "ErrorResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_layer_zero_dvn_config_serialize( - self, - adapter_token_link_id, - peer_adapter_token_link_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if adapter_token_link_id is not None: - _path_params['adapterTokenLinkId'] = adapter_token_link_id - # process the query parameters - if peer_adapter_token_link_id is not None: - - _query_params.append(('peerAdapterTokenLinkId', peer_adapter_token_link_id)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tokenization/multichain/bridge/layerzero/config/{adapterTokenLinkId}/dvns', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_layer_zero_peers( - self, - adapter_token_link_id: Annotated[StrictStr, Field(description="The token link id of the adapter token link")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GetLayerZeroPeersResponse]]: - """Get LayerZero peers - - Retrieve the LayerZero peers configured for a specific adapter. Returns information about peer relationships for cross-chain communication. - - :param adapter_token_link_id: The token link id of the adapter token link (required) - :type adapter_token_link_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_layer_zero_peers", param_name="adapter_token_link_id", param_value=adapter_token_link_id) - - _param = self._get_layer_zero_peers_serialize( - adapter_token_link_id=adapter_token_link_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GetLayerZeroPeersResponse", - '400': "ErrorResponse", - '404': "ErrorResponse", - '500': "ErrorResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_layer_zero_peers_serialize( - self, - adapter_token_link_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if adapter_token_link_id is not None: - _path_params['adapterTokenLinkId'] = adapter_token_link_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tokenization/multichain/bridge/layerzero/config/{adapterTokenLinkId}/peers', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_linked_collections( - self, - page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor to get the next page, for example - \"MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==\"")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=100, strict=True, ge=1)], Annotated[int, Field(le=100, strict=True, ge=1)]]], Field(description="Number of items per page (max 100), requesting more then 100 will return 100 items")] = None, - status: Annotated[Optional[Any], Field(description="A comma separated list of statuses to filter. Default is \"COMPLETED\"")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GetLinkedCollectionsPaginatedResponse]]: - """Get collections - - Get collections (paginated).
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param page_cursor: Page cursor to get the next page, for example - \"MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==\" - :type page_cursor: str - :param page_size: Number of items per page (max 100), requesting more then 100 will return 100 items - :type page_size: float - :param status: A comma separated list of statuses to filter. Default is \"COMPLETED\" - :type status: object - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_linked_collections_serialize( - page_cursor=page_cursor, - page_size=page_size, - status=status, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GetLinkedCollectionsPaginatedResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_linked_collections_serialize( - self, - page_cursor, - page_size, - status, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if status is not None: - - _query_params.append(('status', status)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tokenization/collections', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_linked_token( - self, - id: Annotated[StrictStr, Field(description="The token link id")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TokenLinkDto]]: - """Return a linked token - - Return a linked token, with its status and metadata. - - :param id: The token link id (required) - :type id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_linked_token", param_name="id", param_value=id) - - _param = self._get_linked_token_serialize( - id=id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TokenLinkDto", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_linked_token_serialize( - self, - id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if id is not None: - _path_params['id'] = id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tokenization/tokens/{id}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_linked_tokens( - self, - page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor to get the next page")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=100, strict=True, ge=1)], Annotated[int, Field(le=100, strict=True, ge=1)]]], Field(description="Number of items per page, requesting more then max will return max items")] = None, - status: Annotated[Optional[Any], Field(description="A comma separated list of statuses to filter. Default is \"COMPLETED\"")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TokensPaginatedResponse]]: - """List all linked tokens - - Return all linked tokens (paginated) - - :param page_cursor: Page cursor to get the next page - :type page_cursor: str - :param page_size: Number of items per page, requesting more then max will return max items - :type page_size: float - :param status: A comma separated list of statuses to filter. Default is \"COMPLETED\" - :type status: object - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_linked_tokens_serialize( - page_cursor=page_cursor, - page_size=page_size, - status=status, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TokensPaginatedResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_linked_tokens_serialize( - self, - page_cursor, - page_size, - status, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if status is not None: - - _query_params.append(('status', status)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tokenization/tokens', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_linked_tokens_count( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[LinkedTokensCount]]: - """Get the total count of linked tokens - - Get the total count of linked tokens - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_linked_tokens_count_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "LinkedTokensCount", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_linked_tokens_count_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tokenization/tokens/count', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def issue_new_token( - self, - create_token_request_dto: CreateTokenRequestDto, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TokenLinkDto]]: - """Issue a new token - - Facilitates the creation of a new token, supporting both EVM-based and Stellar/Ripple platforms. For EVM, it deploys the corresponding contract template to the blockchain and links the token to the workspace. For Stellar/Ripple, it links a newly created token directly to the workspace without deploying a contract. Returns the token link with status \"PENDING\" until the token is deployed or \"SUCCESS\" if no deployment is needed.
Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, and Editor. - - :param create_token_request_dto: (required) - :type create_token_request_dto: CreateTokenRequestDto - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._issue_new_token_serialize( - create_token_request_dto=create_token_request_dto, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "TokenLinkDto", - '409': "AssetAlreadyExistHttpError", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _issue_new_token_serialize( - self, - create_token_request_dto, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_token_request_dto is not None: - _body_params = create_token_request_dto - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/tokenization/tokens', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def issue_token_multi_chain( - self, - create_multichain_token_request: CreateMultichainTokenRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[TokenLinkDto]]]: - """Issue a token on one or more blockchains - - Facilitates the creation of a new token on one or more blockchains. - - :param create_multichain_token_request: (required) - :type create_multichain_token_request: CreateMultichainTokenRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._issue_token_multi_chain_serialize( - create_multichain_token_request=create_multichain_token_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "List[TokenLinkDto]", - '400': "InvalidParamaterValueError", - '409': "AddressNotAvailableError", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _issue_token_multi_chain_serialize( - self, - create_multichain_token_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_multichain_token_request is not None: - _body_params = create_multichain_token_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/tokenization/multichain/tokens', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def link( - self, - token_link_request_dto: TokenLinkRequestDto, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TokenLinkDto]]: - """Link a contract - - Link an a contract - - :param token_link_request_dto: (required) - :type token_link_request_dto: TokenLinkRequestDto - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._link_serialize( - token_link_request_dto=token_link_request_dto, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TokenLinkDto", - '201': "TokenLinkDto", - '404': None, - '409': "TokenLinkExistsHttpError", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _link_serialize( - self, - token_link_request_dto, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if token_link_request_dto is not None: - _body_params = token_link_request_dto - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/tokenization/tokens/link', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def mint_collection_token( - self, - id: Annotated[StrictStr, Field(description="The collection link id")], - collection_mint_request_dto: CollectionMintRequestDto, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[CollectionMintResponseDto]]: - """Mint tokens - - Mint tokens and upload metadata - - :param id: The collection link id (required) - :type id: str - :param collection_mint_request_dto: (required) - :type collection_mint_request_dto: CollectionMintRequestDto - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="mint_collection_token", param_name="id", param_value=id) - - _param = self._mint_collection_token_serialize( - id=id, - collection_mint_request_dto=collection_mint_request_dto, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '202': "CollectionMintResponseDto", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _mint_collection_token_serialize( - self, - id, - collection_mint_request_dto, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if id is not None: - _path_params['id'] = id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if collection_mint_request_dto is not None: - _body_params = collection_mint_request_dto - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/tokenization/collections/{id}/tokens/mint', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def re_issue_token_multi_chain( - self, - token_link_id: Annotated[StrictStr, Field(description="The ID of the token link")], - reissue_multichain_token_request: ReissueMultichainTokenRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[TokenLinkDto]]]: - """Reissue a multichain token - - Reissue a multichain token. This endpoint allows you to reissue a token on one or more blockchains. The token must be initially issued using the issueTokenMultiChain endpoint. - - :param token_link_id: The ID of the token link (required) - :type token_link_id: str - :param reissue_multichain_token_request: (required) - :type reissue_multichain_token_request: ReissueMultichainTokenRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="re_issue_token_multi_chain", param_name="token_link_id", param_value=token_link_id) - - _param = self._re_issue_token_multi_chain_serialize( - token_link_id=token_link_id, - reissue_multichain_token_request=reissue_multichain_token_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "List[TokenLinkDto]", - '400': "TokenLinkNotMultichainCompatibleHttpError", - '404': "DeployedContractNotFoundError", - '409': "AddressNotAvailableError", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _re_issue_token_multi_chain_serialize( - self, - token_link_id, - reissue_multichain_token_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if token_link_id is not None: - _path_params['tokenLinkId'] = token_link_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if reissue_multichain_token_request is not None: - _body_params = reissue_multichain_token_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/tokenization/multichain/reissue/token/{tokenLinkId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def remove_layer_zero_peers( - self, - remove_layer_zero_peers_request: RemoveLayerZeroPeersRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[RemoveLayerZeroPeersResponse]]: - """Remove LayerZero peers - - Remove LayerZero peers to disconnect adapter contracts. This endpoint removes peer relationships between LayerZero adapters. - - :param remove_layer_zero_peers_request: (required) - :type remove_layer_zero_peers_request: RemoveLayerZeroPeersRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._remove_layer_zero_peers_serialize( - remove_layer_zero_peers_request=remove_layer_zero_peers_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "RemoveLayerZeroPeersResponse", - '400': "ErrorResponse", - '404': "ErrorResponse", - '409': "ErrorResponse", - '500': "ErrorResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _remove_layer_zero_peers_serialize( - self, - remove_layer_zero_peers_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if remove_layer_zero_peers_request is not None: - _body_params = remove_layer_zero_peers_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/tokenization/multichain/bridge/layerzero/config/peers', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_layer_zero_dvn_config( - self, - set_layer_zero_dvn_config_request: SetLayerZeroDvnConfigRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SetLayerZeroDvnConfigResponse]]: - """Set LayerZero DVN configuration - - Configure DVN settings for LayerZero adapters. This endpoint sets up the DVN configuration for message verification between source and destination adapters. - - :param set_layer_zero_dvn_config_request: (required) - :type set_layer_zero_dvn_config_request: SetLayerZeroDvnConfigRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._set_layer_zero_dvn_config_serialize( - set_layer_zero_dvn_config_request=set_layer_zero_dvn_config_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SetLayerZeroDvnConfigResponse", - '400': "ErrorResponse", - '404': "ErrorResponse", - '409': "ErrorResponse", - '422': "ErrorResponse", - '500': "ErrorResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_layer_zero_dvn_config_serialize( - self, - set_layer_zero_dvn_config_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if set_layer_zero_dvn_config_request is not None: - _body_params = set_layer_zero_dvn_config_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/tokenization/multichain/bridge/layerzero/config/dvns', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_layer_zero_peers( - self, - set_layer_zero_peers_request: SetLayerZeroPeersRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SetLayerZeroPeersResponse]]: - """Set LayerZero peers - - Set LayerZero peers to establish connections between adapter contracts. This endpoint creates peer relationships that enable cross-chain communication. It sets the destination adapter as a peer of the source adapter. If `bidirectional` is true, it also sets the source adapter as a peer of the destination adapter(s). - - :param set_layer_zero_peers_request: (required) - :type set_layer_zero_peers_request: SetLayerZeroPeersRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._set_layer_zero_peers_serialize( - set_layer_zero_peers_request=set_layer_zero_peers_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SetLayerZeroPeersResponse", - '400': "ErrorResponse", - '404': "ErrorResponse", - '409': "ErrorResponse", - '422': "ErrorResponse", - '500': "ErrorResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_layer_zero_peers_serialize( - self, - set_layer_zero_peers_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if set_layer_zero_peers_request is not None: - _body_params = set_layer_zero_peers_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/tokenization/multichain/bridge/layerzero/config/peers', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def unlink( - self, - id: Annotated[StrictStr, Field(description="The token link id")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Unlink a token - - Unlink a token. The token will be unlinked from the workspace. The token will not be deleted on chain nor the refId, only the link to the workspace will be removed. - - :param id: The token link id (required) - :type id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="unlink", param_name="id", param_value=id) - - _param = self._unlink_serialize( - id=id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': None, - '204': None, - '404': "NotFoundException", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _unlink_serialize( - self, - id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if id is not None: - _path_params['id'] = id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/tokenization/tokens/{id}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def unlink_collection( - self, - id: Annotated[StrictStr, Field(description="The token link id")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Delete a collection link - - Delete a collection link - - :param id: The token link id (required) - :type id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="unlink_collection", param_name="id", param_value=id) - - _param = self._unlink_collection_serialize( - id=id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '204': None, - '404': None, - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _unlink_collection_serialize( - self, - id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if id is not None: - _path_params['id'] = id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/tokenization/collections/{id}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def validate_layer_zero_channel_config( - self, - adapter_token_link_id: Annotated[StrictStr, Field(description="The token link ID of the adapter")], - peer_adapter_token_link_id: Annotated[StrictStr, Field(description="Peer adapter token link ID to validate against")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ValidateLayerZeroChannelResponse]]: - """Validate LayerZero channel configuration - - Validate the LayerZero channel configuration between adapters. This endpoint checks if the channel configuration is correct and returns any validation errors. - - :param adapter_token_link_id: The token link ID of the adapter (required) - :type adapter_token_link_id: str - :param peer_adapter_token_link_id: Peer adapter token link ID to validate against (required) - :type peer_adapter_token_link_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="validate_layer_zero_channel_config", param_name="adapter_token_link_id", param_value=adapter_token_link_id) - validate_not_empty_string(function_name="validate_layer_zero_channel_config", param_name="peer_adapter_token_link_id", param_value=peer_adapter_token_link_id) - - _param = self._validate_layer_zero_channel_config_serialize( - adapter_token_link_id=adapter_token_link_id, - peer_adapter_token_link_id=peer_adapter_token_link_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ValidateLayerZeroChannelResponse", - '400': "ErrorResponse", - '404': "ErrorResponse", - '422': "ErrorResponse", - '500': "ErrorResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _validate_layer_zero_channel_config_serialize( - self, - adapter_token_link_id, - peer_adapter_token_link_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if adapter_token_link_id is not None: - - _query_params.append(('adapterTokenLinkId', adapter_token_link_id)) - - if peer_adapter_token_link_id is not None: - - _query_params.append(('peerAdapterTokenLinkId', peer_adapter_token_link_id)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/tokenization/multichain/bridge/layerzero/validate', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRhcHRlcl9wcm9jZXNzaW5nX3Jlc3VsdCBpbXBvcnQgQWRhcHRlclByb2Nlc3NpbmdSZXN1bHQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb2xsZWN0aW9uX2J1cm5fcmVxdWVzdF9kdG8gaW1wb3J0IENvbGxlY3Rpb25CdXJuUmVxdWVzdER0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fYnVybl9yZXNwb25zZV9kdG8gaW1wb3J0IENvbGxlY3Rpb25CdXJuUmVzcG9uc2VEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb2xsZWN0aW9uX2RlcGxveV9yZXF1ZXN0X2R0byBpbXBvcnQgQ29sbGVjdGlvbkRlcGxveVJlcXVlc3REdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb2xsZWN0aW9uX2xpbmtfZHRvIGltcG9ydCBDb2xsZWN0aW9uTGlua0R0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fbWludF9yZXF1ZXN0X2R0byBpbXBvcnQgQ29sbGVjdGlvbk1pbnRSZXF1ZXN0RHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29sbGVjdGlvbl9taW50X3Jlc3BvbnNlX2R0byBpbXBvcnQgQ29sbGVjdGlvbk1pbnRSZXNwb25zZUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9tdWx0aWNoYWluX3Rva2VuX3JlcXVlc3QgaW1wb3J0IENyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfdG9rZW5fcmVxdWVzdF9kdG8gaW1wb3J0IENyZWF0ZVRva2VuUmVxdWVzdER0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlcGxveV9sYXllcl96ZXJvX2FkYXB0ZXJzX3JlcXVlc3QgaW1wb3J0IERlcGxveUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlcGxveWFibGVfYWRkcmVzc19yZXNwb25zZSBpbXBvcnQgRGVwbG95YWJsZUFkZHJlc3NSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9kZXBsb3lhYmxlX2FkZHJlc3NfcmVxdWVzdCBpbXBvcnQgR2V0RGVwbG95YWJsZUFkZHJlc3NSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXNwb25zZSBpbXBvcnQgR2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfbGF5ZXJfemVyb19wZWVyc19yZXNwb25zZSBpbXBvcnQgR2V0TGF5ZXJaZXJvUGVlcnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9saW5rZWRfY29sbGVjdGlvbnNfcGFnaW5hdGVkX3Jlc3BvbnNlIGltcG9ydCBHZXRMaW5rZWRDb2xsZWN0aW9uc1BhZ2luYXRlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGlua2VkX3Rva2Vuc19jb3VudCBpbXBvcnQgTGlua2VkVG9rZW5zQ291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZWlzc3VlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdCBpbXBvcnQgUmVpc3N1ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZW1vdmVfbGF5ZXJfemVyb19hZGFwdGVyc19yZXF1ZXN0IGltcG9ydCBSZW1vdmVMYXllclplcm9BZGFwdGVyc1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZW1vdmVfbGF5ZXJfemVyb19hZGFwdGVyc19yZXNwb25zZSBpbXBvcnQgUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbW92ZV9sYXllcl96ZXJvX3BlZXJzX3JlcXVlc3QgaW1wb3J0IFJlbW92ZUxheWVyWmVyb1BlZXJzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbW92ZV9sYXllcl96ZXJvX3BlZXJzX3Jlc3BvbnNlIGltcG9ydCBSZW1vdmVMYXllclplcm9QZWVyc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXF1ZXN0IGltcG9ydCBTZXRMYXllclplcm9Edm5Db25maWdSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXNwb25zZSBpbXBvcnQgU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfbGF5ZXJfemVyb19wZWVyc19yZXF1ZXN0IGltcG9ydCBTZXRMYXllclplcm9QZWVyc1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfbGF5ZXJfemVyb19wZWVyc19yZXNwb25zZSBpbXBvcnQgU2V0TGF5ZXJaZXJvUGVlcnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2xpbmtfZHRvIGltcG9ydCBUb2tlbkxpbmtEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b2tlbl9saW5rX3JlcXVlc3RfZHRvIGltcG9ydCBUb2tlbkxpbmtSZXF1ZXN0RHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5zX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgVG9rZW5zUGFnaW5hdGVkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YWxpZGF0ZV9sYXllcl96ZXJvX2NoYW5uZWxfcmVzcG9uc2UgaW1wb3J0IFZhbGlkYXRlTGF5ZXJaZXJvQ2hhbm5lbFJlc3BvbnNlCgpmcm9tIGZpcmVibG9ja3MuYXBpX2NsaWVudCBpbXBvcnQgQXBpQ2xpZW50LCBSZXF1ZXN0U2VyaWFsaXplZApmcm9tIGZpcmVibG9ja3MuYXBpX3Jlc3BvbnNlIGltcG9ydCBBcGlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MucmVzdCBpbXBvcnQgUkVTVFJlc3BvbnNlVHlwZQpmcm9tIGZpcmVibG9ja3MudmFsaWRhdGlvbl91dGlscyBpbXBvcnQgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZwoKCmNsYXNzIFRva2VuaXphdGlvbkFwaToKICAgICIiIk5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IKICAgIFJlZjogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgogICAgIiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwaV9jbGllbnQ9Tm9uZSkgLT4gTm9uZToKICAgICAgICBpZiBhcGlfY2xpZW50IGlzIE5vbmU6CiAgICAgICAgICAgIGFwaV9jbGllbnQgPSBBcGlDbGllbnQuZ2V0X2RlZmF1bHQoKQogICAgICAgIHNlbGYuYXBpX2NsaWVudCA9IGFwaV9jbGllbnQKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBidXJuX2NvbGxlY3Rpb25fdG9rZW4oCiAgICAgICAgc2VsZiwKICAgICAgICBpZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBjb2xsZWN0aW9uIGxpbmsgaWQiKV0sCiAgICAgICAgY29sbGVjdGlvbl9idXJuX3JlcXVlc3RfZHRvOiBDb2xsZWN0aW9uQnVyblJlcXVlc3REdG8sCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbQ29sbGVjdGlvbkJ1cm5SZXNwb25zZUR0b11dOgogICAgICAgICIiIkJ1cm4gdG9rZW5zCgogICAgICAgIEJ1cm4gdG9rZW5zIGluIGEgY29sbGVjdGlvbgoKICAgICAgICA6cGFyYW0gaWQ6IFRoZSBjb2xsZWN0aW9uIGxpbmsgaWQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGlkOiBzdHIKICAgICAgICA6cGFyYW0gY29sbGVjdGlvbl9idXJuX3JlcXVlc3RfZHRvOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY29sbGVjdGlvbl9idXJuX3JlcXVlc3RfZHRvOiBDb2xsZWN0aW9uQnVyblJlcXVlc3REdG8KICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iYnVybl9jb2xsZWN0aW9uX3Rva2VuIiwgcGFyYW1fbmFtZT0iaWQiLCBwYXJhbV92YWx1ZT1pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fYnVybl9jb2xsZWN0aW9uX3Rva2VuX3NlcmlhbGl6ZSgKICAgICAgICAgICAgaWQ9aWQsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fYnVybl9yZXF1ZXN0X2R0bz1jb2xsZWN0aW9uX2J1cm5fcmVxdWVzdF9kdG8sCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMic6ICJDb2xsZWN0aW9uQnVyblJlc3BvbnNlRHRvIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfYnVybl9jb2xsZWN0aW9uX3Rva2VuX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGlkLAogICAgICAgIGNvbGxlY3Rpb25fYnVybl9yZXF1ZXN0X2R0bywKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGlkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2lkJ10gPSBpZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIGNvbGxlY3Rpb25fYnVybl9yZXF1ZXN0X2R0byBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gY29sbGVjdGlvbl9idXJuX3JlcXVlc3RfZHRvCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90b2tlbml6YXRpb24vY29sbGVjdGlvbnMve2lkfS90b2tlbnMvYnVybicsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBjcmVhdGVfbmV3X2NvbGxlY3Rpb24oCiAgICAgICAgc2VsZiwKICAgICAgICBjb2xsZWN0aW9uX2RlcGxveV9yZXF1ZXN0X2R0bzogQ29sbGVjdGlvbkRlcGxveVJlcXVlc3REdG8sCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbQ29sbGVjdGlvbkxpbmtEdG9dXToKICAgICAgICAiIiJDcmVhdGUgYSBuZXcgY29sbGVjdGlvbgoKICAgICAgICBDcmVhdGUgYSBuZXcgY29sbGVjdGlvbiBhbmQgbGluayBpdCBhcyBhIHRva2VuLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgYW5kIEVkaXRvci4KCiAgICAgICAgOnBhcmFtIGNvbGxlY3Rpb25fZGVwbG95X3JlcXVlc3RfZHRvOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY29sbGVjdGlvbl9kZXBsb3lfcmVxdWVzdF9kdG86IENvbGxlY3Rpb25EZXBsb3lSZXF1ZXN0RHRvCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fY3JlYXRlX25ld19jb2xsZWN0aW9uX3NlcmlhbGl6ZSgKICAgICAgICAgICAgY29sbGVjdGlvbl9kZXBsb3lfcmVxdWVzdF9kdG89Y29sbGVjdGlvbl9kZXBsb3lfcmVxdWVzdF9kdG8sCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMSc6ICJDb2xsZWN0aW9uTGlua0R0byIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2NyZWF0ZV9uZXdfY29sbGVjdGlvbl9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBjb2xsZWN0aW9uX2RlcGxveV9yZXF1ZXN0X2R0bywKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIGNvbGxlY3Rpb25fZGVwbG95X3JlcXVlc3RfZHRvIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBjb2xsZWN0aW9uX2RlcGxveV9yZXF1ZXN0X2R0bwoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdG9rZW5pemF0aW9uL2NvbGxlY3Rpb25zJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGRlYWN0aXZhdGVfYW5kX3VubGlua19hZGFwdGVycygKICAgICAgICBzZWxmLAogICAgICAgIHJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJzX3JlcXVlc3Q6IFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtSZW1vdmVMYXllclplcm9BZGFwdGVyc1Jlc3BvbnNlXV06CiAgICAgICAgIiIiUmVtb3ZlIExheWVyWmVybyBhZGFwdGVycwoKICAgICAgICBSZW1vdmUgTGF5ZXJaZXJvIGFkYXB0ZXJzIGJ5IGRlYWN0aXZhdGluZyBhbmQgdW5saW5raW5nIHRoZW0uIFRoaXMgZW5kcG9pbnQgcmV2b2tlcyByb2xlcyBhbmQgZGVhY3RpdmF0ZXMgdGhlIHNwZWNpZmllZCBhZGFwdGVyIGNvbnRyYWN0cy4KCiAgICAgICAgOnBhcmFtIHJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJzX3JlcXVlc3Q6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSByZW1vdmVfbGF5ZXJfemVyb19hZGFwdGVyc19yZXF1ZXN0OiBSZW1vdmVMYXllclplcm9BZGFwdGVyc1JlcXVlc3QKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9kZWFjdGl2YXRlX2FuZF91bmxpbmtfYWRhcHRlcnNfc2VyaWFsaXplKAogICAgICAgICAgICByZW1vdmVfbGF5ZXJfemVyb19hZGFwdGVyc19yZXF1ZXN0PXJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJzX3JlcXVlc3QsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJSZW1vdmVMYXllclplcm9BZGFwdGVyc1Jlc3BvbnNlIiwKICAgICAgICAgICAgJzQwMCc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwNCc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwOSc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzUwMCc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2RlYWN0aXZhdGVfYW5kX3VubGlua19hZGFwdGVyc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICByZW1vdmVfbGF5ZXJfemVyb19hZGFwdGVyc19yZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgcmVtb3ZlX2xheWVyX3plcm9fYWRhcHRlcnNfcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gcmVtb3ZlX2xheWVyX3plcm9fYWRhcHRlcnNfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0RFTEVURScsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90b2tlbml6YXRpb24vbXVsdGljaGFpbi9icmlkZ2UvbGF5ZXJ6ZXJvJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGRlcGxveV9hbmRfbGlua19hZGFwdGVycygKICAgICAgICBzZWxmLAogICAgICAgIGRlcGxveV9sYXllcl96ZXJvX2FkYXB0ZXJzX3JlcXVlc3Q6IERlcGxveUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtMaXN0W0FkYXB0ZXJQcm9jZXNzaW5nUmVzdWx0XV1dOgogICAgICAgICIiIkRlcGxveSBMYXllclplcm8gYWRhcHRlcnMKCiAgICAgICAgRGVwbG95IExheWVyWmVybyBhZGFwdGVycyBmb3IgbXVsdGljaGFpbiB0b2tlbiBicmlkZ2luZyBmdW5jdGlvbmFsaXR5LiBUaGlzIGVuZHBvaW50IGNyZWF0ZXMgYWRhcHRlciBjb250cmFjdHMgdGhhdCBlbmFibGUgY3Jvc3MtY2hhaW4gdG9rZW4gdHJhbnNmZXJzLgoKICAgICAgICA6cGFyYW0gZGVwbG95X2xheWVyX3plcm9fYWRhcHRlcnNfcmVxdWVzdDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGRlcGxveV9sYXllcl96ZXJvX2FkYXB0ZXJzX3JlcXVlc3Q6IERlcGxveUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2RlcGxveV9hbmRfbGlua19hZGFwdGVyc19zZXJpYWxpemUoCiAgICAgICAgICAgIGRlcGxveV9sYXllcl96ZXJvX2FkYXB0ZXJzX3JlcXVlc3Q9ZGVwbG95X2xheWVyX3plcm9fYWRhcHRlcnNfcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkxpc3RbQWRhcHRlclByb2Nlc3NpbmdSZXN1bHRdIiwKICAgICAgICAgICAgJzQwMCc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwNCc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwOSc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzQyMic6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzUwMCc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2RlcGxveV9hbmRfbGlua19hZGFwdGVyc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBkZXBsb3lfbGF5ZXJfemVyb19hZGFwdGVyc19yZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgZGVwbG95X2xheWVyX3plcm9fYWRhcHRlcnNfcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gZGVwbG95X2xheWVyX3plcm9fYWRhcHRlcnNfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdG9rZW5pemF0aW9uL211bHRpY2hhaW4vYnJpZGdlL2xheWVyemVybycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBmZXRjaF9jb2xsZWN0aW9uX3Rva2VuX2RldGFpbHMoCiAgICAgICAgc2VsZiwKICAgICAgICBpZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBjb2xsZWN0aW9uIGxpbmsgaWQiKV0sCiAgICAgICAgdG9rZW5faWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdG9rZW5JZCBhcyBpdCBhcHBlYXJzIG9uIHRoZSBibG9ja2NoYWluIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbQ29sbGVjdGlvbkxpbmtEdG9dXToKICAgICAgICAiIiJHZXQgY29sbGVjdGlvbiB0b2tlbiBkZXRhaWxzCgogICAgICAgIEdldCBjb2xsZWN0aW9uIHRva2VuIGRldGFpbHMgYnkgaWQKCiAgICAgICAgOnBhcmFtIGlkOiBUaGUgY29sbGVjdGlvbiBsaW5rIGlkIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBpZDogc3RyCiAgICAgICAgOnBhcmFtIHRva2VuX2lkOiBUaGUgdG9rZW5JZCBhcyBpdCBhcHBlYXJzIG9uIHRoZSBibG9ja2NoYWluIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB0b2tlbl9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImZldGNoX2NvbGxlY3Rpb25fdG9rZW5fZGV0YWlscyIsIHBhcmFtX25hbWU9ImlkIiwgcGFyYW1fdmFsdWU9aWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJmZXRjaF9jb2xsZWN0aW9uX3Rva2VuX2RldGFpbHMiLCBwYXJhbV9uYW1lPSJ0b2tlbl9pZCIsIHBhcmFtX3ZhbHVlPXRva2VuX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9mZXRjaF9jb2xsZWN0aW9uX3Rva2VuX2RldGFpbHNfc2VyaWFsaXplKAogICAgICAgICAgICBpZD1pZCwKICAgICAgICAgICAgdG9rZW5faWQ9dG9rZW5faWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJDb2xsZWN0aW9uTGlua0R0byIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2ZldGNoX2NvbGxlY3Rpb25fdG9rZW5fZGV0YWlsc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBpZCwKICAgICAgICB0b2tlbl9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snaWQnXSA9IGlkCiAgICAgICAgaWYgdG9rZW5faWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1sndG9rZW5JZCddID0gdG9rZW5faWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90b2tlbml6YXRpb24vY29sbGVjdGlvbnMve2lkfS90b2tlbnMve3Rva2VuSWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9jb2xsZWN0aW9uX2J5X2lkKAogICAgICAgIHNlbGYsCiAgICAgICAgaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdG9rZW4gbGluayBpZCIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0NvbGxlY3Rpb25MaW5rRHRvXV06CiAgICAgICAgIiIiR2V0IGEgY29sbGVjdGlvbiBieSBpZAoKICAgICAgICBHZXQgYSBjb2xsZWN0aW9uIGJ5IGlkCgogICAgICAgIDpwYXJhbSBpZDogVGhlIHRva2VuIGxpbmsgaWQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGlkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2NvbGxlY3Rpb25fYnlfaWQiLCBwYXJhbV9uYW1lPSJpZCIsIHBhcmFtX3ZhbHVlPWlkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfY29sbGVjdGlvbl9ieV9pZF9zZXJpYWxpemUoCiAgICAgICAgICAgIGlkPWlkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiQ29sbGVjdGlvbkxpbmtEdG8iLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfY29sbGVjdGlvbl9ieV9pZF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBpZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snaWQnXSA9IGlkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdG9rZW5pemF0aW9uL2NvbGxlY3Rpb25zL3tpZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X2RlcGxveWFibGVfYWRkcmVzcygKICAgICAgICBzZWxmLAogICAgICAgIGdldF9kZXBsb3lhYmxlX2FkZHJlc3NfcmVxdWVzdDogR2V0RGVwbG95YWJsZUFkZHJlc3NSZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0RlcGxveWFibGVBZGRyZXNzUmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgZGV0ZXJtaW5pc3RpYyBhZGRyZXNzIGZvciBjb250cmFjdCBkZXBsb3ltZW50CgogICAgICAgIEdldCBhIGRldGVybWluaXN0aWMgYWRkcmVzcyBmb3IgY29udHJhY3QgZGVwbG95bWVudC4gVGhlIGFkZHJlc3MgaXMgZGVyaXZlZCBmcm9tIHRoZSBjb250cmFjdCdzIGJ5dGVjb2RlIGFuZCAgcHJvdmlkZWQgc2FsdC4gVGhpcyBlbmRwb2ludCBpcyB1c2VkIHRvIGdldCB0aGUgYWRkcmVzcyBvZiBhIGNvbnRyYWN0IHRoYXQgd2lsbCBiZSBkZXBsb3llZCBpbiB0aGUgZnV0dXJlLgoKICAgICAgICA6cGFyYW0gZ2V0X2RlcGxveWFibGVfYWRkcmVzc19yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgZ2V0X2RlcGxveWFibGVfYWRkcmVzc19yZXF1ZXN0OiBHZXREZXBsb3lhYmxlQWRkcmVzc1JlcXVlc3QKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfZGVwbG95YWJsZV9hZGRyZXNzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgZ2V0X2RlcGxveWFibGVfYWRkcmVzc19yZXF1ZXN0PWdldF9kZXBsb3lhYmxlX2FkZHJlc3NfcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkRlcGxveWFibGVBZGRyZXNzUmVzcG9uc2UiLAogICAgICAgICAgICAnNDAwJzogIkludmFsaWRQYXJhbWF0ZXJWYWx1ZUVycm9yIiwKICAgICAgICAgICAgJzQwOSc6ICJBZGRyZXNzTm90QXZhaWxhYmxlRXJyb3IiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfZGVwbG95YWJsZV9hZGRyZXNzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGdldF9kZXBsb3lhYmxlX2FkZHJlc3NfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIGdldF9kZXBsb3lhYmxlX2FkZHJlc3NfcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gZ2V0X2RlcGxveWFibGVfYWRkcmVzc19yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90b2tlbml6YXRpb24vbXVsdGljaGFpbi9kZXRlcm1pbmlzdGljX2FkZHJlc3MnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZygKICAgICAgICBzZWxmLAogICAgICAgIGFkYXB0ZXJfdG9rZW5fbGlua19pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSB0b2tlbiBsaW5rIGlkIG9mIHRoZSBhZGFwdGVyIHRva2VuIGxpbmsiKV0sCiAgICAgICAgcGVlcl9hZGFwdGVyX3Rva2VuX2xpbmtfaWQ6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iT3B0aW9uYWwgcGVlciBhZGFwdGVyIHRva2VuIGxpbmsgSUQgdG8gZmlsdGVyIHJlc3VsdHMiKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbR2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgTGF5ZXJaZXJvIERWTiBjb25maWd1cmF0aW9uCgogICAgICAgIFJldHJpZXZlIHRoZSBEVk4gKERhdGEgVmVyaWZpY2F0aW9uIE5ldHdvcmspIGNvbmZpZ3VyYXRpb24gZm9yIGEgc3BlY2lmaWMgYWRhcHRlci4gUmV0dXJucyBEVk4gY29uZmlndXJhdGlvbnMgZm9yIGNoYW5uZWxzIGJldHdlZW4gdGhlIHNvdXJjZSBhZGFwdGVyIGFuZCBpdHMgcGVlcnMuCgogICAgICAgIDpwYXJhbSBhZGFwdGVyX3Rva2VuX2xpbmtfaWQ6IFRoZSB0b2tlbiBsaW5rIGlkIG9mIHRoZSBhZGFwdGVyIHRva2VuIGxpbmsgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGFkYXB0ZXJfdG9rZW5fbGlua19pZDogc3RyCiAgICAgICAgOnBhcmFtIHBlZXJfYWRhcHRlcl90b2tlbl9saW5rX2lkOiBPcHRpb25hbCBwZWVyIGFkYXB0ZXIgdG9rZW4gbGluayBJRCB0byBmaWx0ZXIgcmVzdWx0cwogICAgICAgIDp0eXBlIHBlZXJfYWRhcHRlcl90b2tlbl9saW5rX2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZyIsIHBhcmFtX25hbWU9ImFkYXB0ZXJfdG9rZW5fbGlua19pZCIsIHBhcmFtX3ZhbHVlPWFkYXB0ZXJfdG9rZW5fbGlua19pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19zZXJpYWxpemUoCiAgICAgICAgICAgIGFkYXB0ZXJfdG9rZW5fbGlua19pZD1hZGFwdGVyX3Rva2VuX2xpbmtfaWQsCiAgICAgICAgICAgIHBlZXJfYWRhcHRlcl90b2tlbl9saW5rX2lkPXBlZXJfYWRhcHRlcl90b2tlbl9saW5rX2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiR2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UiLAogICAgICAgICAgICAnNDAwJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNDA0JzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNTAwJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBhZGFwdGVyX3Rva2VuX2xpbmtfaWQsCiAgICAgICAgcGVlcl9hZGFwdGVyX3Rva2VuX2xpbmtfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGFkYXB0ZXJfdG9rZW5fbGlua19pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydhZGFwdGVyVG9rZW5MaW5rSWQnXSA9IGFkYXB0ZXJfdG9rZW5fbGlua19pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIHBlZXJfYWRhcHRlcl90b2tlbl9saW5rX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwZWVyQWRhcHRlclRva2VuTGlua0lkJywgcGVlcl9hZGFwdGVyX3Rva2VuX2xpbmtfaWQpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90b2tlbml6YXRpb24vbXVsdGljaGFpbi9icmlkZ2UvbGF5ZXJ6ZXJvL2NvbmZpZy97YWRhcHRlclRva2VuTGlua0lkfS9kdm5zJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9sYXllcl96ZXJvX3BlZXJzKAogICAgICAgIHNlbGYsCiAgICAgICAgYWRhcHRlcl90b2tlbl9saW5rX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHRva2VuIGxpbmsgaWQgb2YgdGhlIGFkYXB0ZXIgdG9rZW4gbGluayIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0dldExheWVyWmVyb1BlZXJzUmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgTGF5ZXJaZXJvIHBlZXJzCgogICAgICAgIFJldHJpZXZlIHRoZSBMYXllclplcm8gcGVlcnMgY29uZmlndXJlZCBmb3IgYSBzcGVjaWZpYyBhZGFwdGVyLiBSZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IHBlZXIgcmVsYXRpb25zaGlwcyBmb3IgY3Jvc3MtY2hhaW4gY29tbXVuaWNhdGlvbi4KCiAgICAgICAgOnBhcmFtIGFkYXB0ZXJfdG9rZW5fbGlua19pZDogVGhlIHRva2VuIGxpbmsgaWQgb2YgdGhlIGFkYXB0ZXIgdG9rZW4gbGluayAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYWRhcHRlcl90b2tlbl9saW5rX2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2xheWVyX3plcm9fcGVlcnMiLCBwYXJhbV9uYW1lPSJhZGFwdGVyX3Rva2VuX2xpbmtfaWQiLCBwYXJhbV92YWx1ZT1hZGFwdGVyX3Rva2VuX2xpbmtfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9sYXllcl96ZXJvX3BlZXJzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgYWRhcHRlcl90b2tlbl9saW5rX2lkPWFkYXB0ZXJfdG9rZW5fbGlua19pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkdldExheWVyWmVyb1BlZXJzUmVzcG9uc2UiLAogICAgICAgICAgICAnNDAwJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNDA0JzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNTAwJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2xheWVyX3plcm9fcGVlcnNfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgYWRhcHRlcl90b2tlbl9saW5rX2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBhZGFwdGVyX3Rva2VuX2xpbmtfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYWRhcHRlclRva2VuTGlua0lkJ10gPSBhZGFwdGVyX3Rva2VuX2xpbmtfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90b2tlbml6YXRpb24vbXVsdGljaGFpbi9icmlkZ2UvbGF5ZXJ6ZXJvL2NvbmZpZy97YWRhcHRlclRva2VuTGlua0lkfS9wZWVycycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfbGlua2VkX2NvbGxlY3Rpb25zKAogICAgICAgIHNlbGYsCiAgICAgICAgcGFnZV9jdXJzb3I6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iUGFnZSBjdXJzb3IgdG8gZ2V0IHRoZSBuZXh0IHBhZ2UsIGZvciBleGFtcGxlIC0gXCJNakF5TXkweE1pMHhNeUF5TURvek5qb3dPQzR6TURJPTpNVEV3TUE9PVwiIildID0gTm9uZSwKICAgICAgICBwYWdlX3NpemU6IEFubm90YXRlZFtPcHRpb25hbFtVbmlvbltBbm5vdGF0ZWRbZmxvYXQsIEZpZWxkKGxlPTEwMCwgc3RyaWN0PVRydWUsIGdlPTEpXSwgQW5ub3RhdGVkW2ludCwgRmllbGQobGU9MTAwLCBzdHJpY3Q9VHJ1ZSwgZ2U9MSldXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJOdW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UgKG1heCAxMDApLCByZXF1ZXN0aW5nIG1vcmUgdGhlbiAxMDAgd2lsbCByZXR1cm4gMTAwIGl0ZW1zIildID0gTm9uZSwKICAgICAgICBzdGF0dXM6IEFubm90YXRlZFtPcHRpb25hbFtBbnldLCBGaWVsZChkZXNjcmlwdGlvbj0iQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBzdGF0dXNlcyB0byBmaWx0ZXIuIERlZmF1bHQgaXMgXCJDT01QTEVURURcIiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtHZXRMaW5rZWRDb2xsZWN0aW9uc1BhZ2luYXRlZFJlc3BvbnNlXV06CiAgICAgICAgIiIiR2V0IGNvbGxlY3Rpb25zCgogICAgICAgIEdldCBjb2xsZWN0aW9ucyAocGFnaW5hdGVkKS4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgVmlld2VyLgoKICAgICAgICA6cGFyYW0gcGFnZV9jdXJzb3I6IFBhZ2UgY3Vyc29yIHRvIGdldCB0aGUgbmV4dCBwYWdlLCBmb3IgZXhhbXBsZSAtIFwiTWpBeU15MHhNaTB4TXlBeU1Eb3pOam93T0M0ek1EST06TVRFd01BPT1cIgogICAgICAgIDp0eXBlIHBhZ2VfY3Vyc29yOiBzdHIKICAgICAgICA6cGFyYW0gcGFnZV9zaXplOiBOdW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UgKG1heCAxMDApLCByZXF1ZXN0aW5nIG1vcmUgdGhlbiAxMDAgd2lsbCByZXR1cm4gMTAwIGl0ZW1zCiAgICAgICAgOnR5cGUgcGFnZV9zaXplOiBmbG9hdAogICAgICAgIDpwYXJhbSBzdGF0dXM6IEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2Ygc3RhdHVzZXMgdG8gZmlsdGVyLiBEZWZhdWx0IGlzIFwiQ09NUExFVEVEXCIKICAgICAgICA6dHlwZSBzdGF0dXM6IG9iamVjdAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9saW5rZWRfY29sbGVjdGlvbnNfc2VyaWFsaXplKAogICAgICAgICAgICBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwKICAgICAgICAgICAgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwKICAgICAgICAgICAgc3RhdHVzPXN0YXR1cywKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkdldExpbmtlZENvbGxlY3Rpb25zUGFnaW5hdGVkUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfbGlua2VkX2NvbGxlY3Rpb25zX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHBhZ2VfY3Vyc29yLAogICAgICAgIHBhZ2Vfc2l6ZSwKICAgICAgICBzdGF0dXMsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIHBhZ2VfY3Vyc29yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlQ3Vyc29yJywgcGFnZV9jdXJzb3IpKQogICAgICAgICAgICAKICAgICAgICBpZiBwYWdlX3NpemUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VTaXplJywgcGFnZV9zaXplKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgc3RhdHVzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdzdGF0dXMnLCBzdGF0dXMpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90b2tlbml6YXRpb24vY29sbGVjdGlvbnMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X2xpbmtlZF90b2tlbigKICAgICAgICBzZWxmLAogICAgICAgIGlkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHRva2VuIGxpbmsgaWQiKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtUb2tlbkxpbmtEdG9dXToKICAgICAgICAiIiJSZXR1cm4gYSBsaW5rZWQgdG9rZW4KCiAgICAgICAgUmV0dXJuIGEgbGlua2VkIHRva2VuLCB3aXRoIGl0cyBzdGF0dXMgYW5kIG1ldGFkYXRhLgoKICAgICAgICA6cGFyYW0gaWQ6IFRoZSB0b2tlbiBsaW5rIGlkIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBpZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9saW5rZWRfdG9rZW4iLCBwYXJhbV9uYW1lPSJpZCIsIHBhcmFtX3ZhbHVlPWlkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfbGlua2VkX3Rva2VuX3NlcmlhbGl6ZSgKICAgICAgICAgICAgaWQ9aWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJUb2tlbkxpbmtEdG8iLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfbGlua2VkX3Rva2VuX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGlkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydpZCddID0gaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90b2tlbml6YXRpb24vdG9rZW5zL3tpZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X2xpbmtlZF90b2tlbnMoCiAgICAgICAgc2VsZiwKICAgICAgICBwYWdlX2N1cnNvcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJQYWdlIGN1cnNvciB0byBnZXQgdGhlIG5leHQgcGFnZSIpXSA9IE5vbmUsCiAgICAgICAgcGFnZV9zaXplOiBBbm5vdGF0ZWRbT3B0aW9uYWxbVW5pb25bQW5ub3RhdGVkW2Zsb2F0LCBGaWVsZChsZT0xMDAsIHN0cmljdD1UcnVlLCBnZT0xKV0sIEFubm90YXRlZFtpbnQsIEZpZWxkKGxlPTEwMCwgc3RyaWN0PVRydWUsIGdlPTEpXV1dLCBGaWVsZChkZXNjcmlwdGlvbj0iTnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlLCByZXF1ZXN0aW5nIG1vcmUgdGhlbiBtYXggd2lsbCByZXR1cm4gbWF4IGl0ZW1zIildID0gTm9uZSwKICAgICAgICBzdGF0dXM6IEFubm90YXRlZFtPcHRpb25hbFtBbnldLCBGaWVsZChkZXNjcmlwdGlvbj0iQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBzdGF0dXNlcyB0byBmaWx0ZXIuIERlZmF1bHQgaXMgXCJDT01QTEVURURcIiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtUb2tlbnNQYWdpbmF0ZWRSZXNwb25zZV1dOgogICAgICAgICIiIkxpc3QgYWxsIGxpbmtlZCB0b2tlbnMKCiAgICAgICAgUmV0dXJuIGFsbCBsaW5rZWQgdG9rZW5zIChwYWdpbmF0ZWQpCgogICAgICAgIDpwYXJhbSBwYWdlX2N1cnNvcjogUGFnZSBjdXJzb3IgdG8gZ2V0IHRoZSBuZXh0IHBhZ2UKICAgICAgICA6dHlwZSBwYWdlX2N1cnNvcjogc3RyCiAgICAgICAgOnBhcmFtIHBhZ2Vfc2l6ZTogTnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlLCByZXF1ZXN0aW5nIG1vcmUgdGhlbiBtYXggd2lsbCByZXR1cm4gbWF4IGl0ZW1zCiAgICAgICAgOnR5cGUgcGFnZV9zaXplOiBmbG9hdAogICAgICAgIDpwYXJhbSBzdGF0dXM6IEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2Ygc3RhdHVzZXMgdG8gZmlsdGVyLiBEZWZhdWx0IGlzIFwiQ09NUExFVEVEXCIKICAgICAgICA6dHlwZSBzdGF0dXM6IG9iamVjdAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9saW5rZWRfdG9rZW5zX3NlcmlhbGl6ZSgKICAgICAgICAgICAgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsCiAgICAgICAgICAgIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsCiAgICAgICAgICAgIHN0YXR1cz1zdGF0dXMsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJUb2tlbnNQYWdpbmF0ZWRSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9saW5rZWRfdG9rZW5zX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHBhZ2VfY3Vyc29yLAogICAgICAgIHBhZ2Vfc2l6ZSwKICAgICAgICBzdGF0dXMsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIHBhZ2VfY3Vyc29yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlQ3Vyc29yJywgcGFnZV9jdXJzb3IpKQogICAgICAgICAgICAKICAgICAgICBpZiBwYWdlX3NpemUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VTaXplJywgcGFnZV9zaXplKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgc3RhdHVzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdzdGF0dXMnLCBzdGF0dXMpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90b2tlbml6YXRpb24vdG9rZW5zJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9saW5rZWRfdG9rZW5zX2NvdW50KAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtMaW5rZWRUb2tlbnNDb3VudF1dOgogICAgICAgICIiIkdldCB0aGUgdG90YWwgY291bnQgb2YgbGlua2VkIHRva2VucwoKICAgICAgICBHZXQgdGhlIHRvdGFsIGNvdW50IG9mIGxpbmtlZCB0b2tlbnMKCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X2xpbmtlZF90b2tlbnNfY291bnRfc2VyaWFsaXplKAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiTGlua2VkVG9rZW5zQ291bnQiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfbGlua2VkX3Rva2Vuc19jb3VudF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdG9rZW5pemF0aW9uL3Rva2Vucy9jb3VudCcsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBpc3N1ZV9uZXdfdG9rZW4oCiAgICAgICAgc2VsZiwKICAgICAgICBjcmVhdGVfdG9rZW5fcmVxdWVzdF9kdG86IENyZWF0ZVRva2VuUmVxdWVzdER0bywKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtUb2tlbkxpbmtEdG9dXToKICAgICAgICAiIiJJc3N1ZSBhIG5ldyB0b2tlbgoKICAgICAgICBGYWNpbGl0YXRlcyB0aGUgY3JlYXRpb24gb2YgYSBuZXcgdG9rZW4sIHN1cHBvcnRpbmcgYm90aCBFVk0tYmFzZWQgYW5kIFN0ZWxsYXIvUmlwcGxlIHBsYXRmb3Jtcy4gRm9yIEVWTSwgaXQgZGVwbG95cyB0aGUgY29ycmVzcG9uZGluZyBjb250cmFjdCB0ZW1wbGF0ZSB0byB0aGUgYmxvY2tjaGFpbiBhbmQgbGlua3MgdGhlIHRva2VuIHRvIHRoZSB3b3Jrc3BhY2UuIEZvciBTdGVsbGFyL1JpcHBsZSwgaXQgbGlua3MgYSBuZXdseSBjcmVhdGVkIHRva2VuIGRpcmVjdGx5IHRvIHRoZSB3b3Jrc3BhY2Ugd2l0aG91dCBkZXBsb3lpbmcgYSBjb250cmFjdC4gUmV0dXJucyB0aGUgdG9rZW4gbGluayB3aXRoIHN0YXR1cyBcIlBFTkRJTkdcIiB1bnRpbCB0aGUgdG9rZW4gaXMgZGVwbG95ZWQgb3IgXCJTVUNDRVNTXCIgaWYgbm8gZGVwbG95bWVudCBpcyBuZWVkZWQuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogT3duZXIsIEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBhbmQgRWRpdG9yLgoKICAgICAgICA6cGFyYW0gY3JlYXRlX3Rva2VuX3JlcXVlc3RfZHRvOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY3JlYXRlX3Rva2VuX3JlcXVlc3RfZHRvOiBDcmVhdGVUb2tlblJlcXVlc3REdG8KICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9pc3N1ZV9uZXdfdG9rZW5fc2VyaWFsaXplKAogICAgICAgICAgICBjcmVhdGVfdG9rZW5fcmVxdWVzdF9kdG89Y3JlYXRlX3Rva2VuX3JlcXVlc3RfZHRvLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiAiVG9rZW5MaW5rRHRvIiwKICAgICAgICAgICAgJzQwOSc6ICJBc3NldEFscmVhZHlFeGlzdEh0dHBFcnJvciIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9pc3N1ZV9uZXdfdG9rZW5fc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY3JlYXRlX3Rva2VuX3JlcXVlc3RfZHRvLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgY3JlYXRlX3Rva2VuX3JlcXVlc3RfZHRvIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBjcmVhdGVfdG9rZW5fcmVxdWVzdF9kdG8KCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3Rva2VuaXphdGlvbi90b2tlbnMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgaXNzdWVfdG9rZW5fbXVsdGlfY2hhaW4oCiAgICAgICAgc2VsZiwKICAgICAgICBjcmVhdGVfbXVsdGljaGFpbl90b2tlbl9yZXF1ZXN0OiBDcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0xpc3RbVG9rZW5MaW5rRHRvXV1dOgogICAgICAgICIiIklzc3VlIGEgdG9rZW4gb24gb25lIG9yIG1vcmUgYmxvY2tjaGFpbnMKCiAgICAgICAgRmFjaWxpdGF0ZXMgdGhlIGNyZWF0aW9uIG9mIGEgbmV3IHRva2VuIG9uIG9uZSBvciBtb3JlIGJsb2NrY2hhaW5zLgoKICAgICAgICA6cGFyYW0gY3JlYXRlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGNyZWF0ZV9tdWx0aWNoYWluX3Rva2VuX3JlcXVlc3Q6IENyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3QKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9pc3N1ZV90b2tlbl9tdWx0aV9jaGFpbl9zZXJpYWxpemUoCiAgICAgICAgICAgIGNyZWF0ZV9tdWx0aWNoYWluX3Rva2VuX3JlcXVlc3Q9Y3JlYXRlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAxJzogIkxpc3RbVG9rZW5MaW5rRHRvXSIsCiAgICAgICAgICAgICc0MDAnOiAiSW52YWxpZFBhcmFtYXRlclZhbHVlRXJyb3IiLAogICAgICAgICAgICAnNDA5JzogIkFkZHJlc3NOb3RBdmFpbGFibGVFcnJvciIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9pc3N1ZV90b2tlbl9tdWx0aV9jaGFpbl9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBjcmVhdGVfbXVsdGljaGFpbl90b2tlbl9yZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgY3JlYXRlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gY3JlYXRlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdG9rZW5pemF0aW9uL211bHRpY2hhaW4vdG9rZW5zJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGxpbmsoCiAgICAgICAgc2VsZiwKICAgICAgICB0b2tlbl9saW5rX3JlcXVlc3RfZHRvOiBUb2tlbkxpbmtSZXF1ZXN0RHRvLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1Rva2VuTGlua0R0b11dOgogICAgICAgICIiIkxpbmsgYSBjb250cmFjdAoKICAgICAgICBMaW5rIGFuIGEgY29udHJhY3QKCiAgICAgICAgOnBhcmFtIHRva2VuX2xpbmtfcmVxdWVzdF9kdG86IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB0b2tlbl9saW5rX3JlcXVlc3RfZHRvOiBUb2tlbkxpbmtSZXF1ZXN0RHRvCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fbGlua19zZXJpYWxpemUoCiAgICAgICAgICAgIHRva2VuX2xpbmtfcmVxdWVzdF9kdG89dG9rZW5fbGlua19yZXF1ZXN0X2R0bywKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlRva2VuTGlua0R0byIsCiAgICAgICAgICAgICcyMDEnOiAiVG9rZW5MaW5rRHRvIiwKICAgICAgICAgICAgJzQwNCc6IE5vbmUsCiAgICAgICAgICAgICc0MDknOiAiVG9rZW5MaW5rRXhpc3RzSHR0cEVycm9yIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfbGlua19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB0b2tlbl9saW5rX3JlcXVlc3RfZHRvLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgdG9rZW5fbGlua19yZXF1ZXN0X2R0byBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gdG9rZW5fbGlua19yZXF1ZXN0X2R0bwoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdG9rZW5pemF0aW9uL3Rva2Vucy9saW5rJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIG1pbnRfY29sbGVjdGlvbl90b2tlbigKICAgICAgICBzZWxmLAogICAgICAgIGlkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNvbGxlY3Rpb24gbGluayBpZCIpXSwKICAgICAgICBjb2xsZWN0aW9uX21pbnRfcmVxdWVzdF9kdG86IENvbGxlY3Rpb25NaW50UmVxdWVzdER0bywKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtDb2xsZWN0aW9uTWludFJlc3BvbnNlRHRvXV06CiAgICAgICAgIiIiTWludCB0b2tlbnMKCiAgICAgICAgTWludCB0b2tlbnMgYW5kIHVwbG9hZCBtZXRhZGF0YQoKICAgICAgICA6cGFyYW0gaWQ6IFRoZSBjb2xsZWN0aW9uIGxpbmsgaWQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGlkOiBzdHIKICAgICAgICA6cGFyYW0gY29sbGVjdGlvbl9taW50X3JlcXVlc3RfZHRvOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY29sbGVjdGlvbl9taW50X3JlcXVlc3RfZHRvOiBDb2xsZWN0aW9uTWludFJlcXVlc3REdG8KICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0ibWludF9jb2xsZWN0aW9uX3Rva2VuIiwgcGFyYW1fbmFtZT0iaWQiLCBwYXJhbV92YWx1ZT1pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fbWludF9jb2xsZWN0aW9uX3Rva2VuX3NlcmlhbGl6ZSgKICAgICAgICAgICAgaWQ9aWQsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fbWludF9yZXF1ZXN0X2R0bz1jb2xsZWN0aW9uX21pbnRfcmVxdWVzdF9kdG8sCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMic6ICJDb2xsZWN0aW9uTWludFJlc3BvbnNlRHRvIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfbWludF9jb2xsZWN0aW9uX3Rva2VuX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGlkLAogICAgICAgIGNvbGxlY3Rpb25fbWludF9yZXF1ZXN0X2R0bywKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGlkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2lkJ10gPSBpZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIGNvbGxlY3Rpb25fbWludF9yZXF1ZXN0X2R0byBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gY29sbGVjdGlvbl9taW50X3JlcXVlc3RfZHRvCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90b2tlbml6YXRpb24vY29sbGVjdGlvbnMve2lkfS90b2tlbnMvbWludCcsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiByZV9pc3N1ZV90b2tlbl9tdWx0aV9jaGFpbigKICAgICAgICBzZWxmLAogICAgICAgIHRva2VuX2xpbmtfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIHRva2VuIGxpbmsiKV0sCiAgICAgICAgcmVpc3N1ZV9tdWx0aWNoYWluX3Rva2VuX3JlcXVlc3Q6IFJlaXNzdWVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0xpc3RbVG9rZW5MaW5rRHRvXV1dOgogICAgICAgICIiIlJlaXNzdWUgYSBtdWx0aWNoYWluIHRva2VuCgogICAgICAgIFJlaXNzdWUgYSBtdWx0aWNoYWluIHRva2VuLiBUaGlzIGVuZHBvaW50IGFsbG93cyB5b3UgdG8gcmVpc3N1ZSBhIHRva2VuIG9uIG9uZSBvciBtb3JlIGJsb2NrY2hhaW5zLiBUaGUgdG9rZW4gbXVzdCBiZSBpbml0aWFsbHkgaXNzdWVkIHVzaW5nIHRoZSBpc3N1ZVRva2VuTXVsdGlDaGFpbiBlbmRwb2ludC4KCiAgICAgICAgOnBhcmFtIHRva2VuX2xpbmtfaWQ6IFRoZSBJRCBvZiB0aGUgdG9rZW4gbGluayAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdG9rZW5fbGlua19pZDogc3RyCiAgICAgICAgOnBhcmFtIHJlaXNzdWVfbXVsdGljaGFpbl90b2tlbl9yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgcmVpc3N1ZV9tdWx0aWNoYWluX3Rva2VuX3JlcXVlc3Q6IFJlaXNzdWVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0CiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InJlX2lzc3VlX3Rva2VuX211bHRpX2NoYWluIiwgcGFyYW1fbmFtZT0idG9rZW5fbGlua19pZCIsIHBhcmFtX3ZhbHVlPXRva2VuX2xpbmtfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3JlX2lzc3VlX3Rva2VuX211bHRpX2NoYWluX3NlcmlhbGl6ZSgKICAgICAgICAgICAgdG9rZW5fbGlua19pZD10b2tlbl9saW5rX2lkLAogICAgICAgICAgICByZWlzc3VlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdD1yZWlzc3VlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAxJzogIkxpc3RbVG9rZW5MaW5rRHRvXSIsCiAgICAgICAgICAgICc0MDAnOiAiVG9rZW5MaW5rTm90TXVsdGljaGFpbkNvbXBhdGlibGVIdHRwRXJyb3IiLAogICAgICAgICAgICAnNDA0JzogIkRlcGxveWVkQ29udHJhY3ROb3RGb3VuZEVycm9yIiwKICAgICAgICAgICAgJzQwOSc6ICJBZGRyZXNzTm90QXZhaWxhYmxlRXJyb3IiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9yZV9pc3N1ZV90b2tlbl9tdWx0aV9jaGFpbl9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB0b2tlbl9saW5rX2lkLAogICAgICAgIHJlaXNzdWVfbXVsdGljaGFpbl90b2tlbl9yZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgdG9rZW5fbGlua19pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd0b2tlbkxpbmtJZCddID0gdG9rZW5fbGlua19pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHJlaXNzdWVfbXVsdGljaGFpbl90b2tlbl9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSByZWlzc3VlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdG9rZW5pemF0aW9uL211bHRpY2hhaW4vcmVpc3N1ZS90b2tlbi97dG9rZW5MaW5rSWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHJlbW92ZV9sYXllcl96ZXJvX3BlZXJzKAogICAgICAgIHNlbGYsCiAgICAgICAgcmVtb3ZlX2xheWVyX3plcm9fcGVlcnNfcmVxdWVzdDogUmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1JlbW92ZUxheWVyWmVyb1BlZXJzUmVzcG9uc2VdXToKICAgICAgICAiIiJSZW1vdmUgTGF5ZXJaZXJvIHBlZXJzCgogICAgICAgIFJlbW92ZSBMYXllclplcm8gcGVlcnMgdG8gZGlzY29ubmVjdCBhZGFwdGVyIGNvbnRyYWN0cy4gVGhpcyBlbmRwb2ludCByZW1vdmVzIHBlZXIgcmVsYXRpb25zaGlwcyBiZXR3ZWVuIExheWVyWmVybyBhZGFwdGVycy4KCiAgICAgICAgOnBhcmFtIHJlbW92ZV9sYXllcl96ZXJvX3BlZXJzX3JlcXVlc3Q6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSByZW1vdmVfbGF5ZXJfemVyb19wZWVyc19yZXF1ZXN0OiBSZW1vdmVMYXllclplcm9QZWVyc1JlcXVlc3QKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9yZW1vdmVfbGF5ZXJfemVyb19wZWVyc19zZXJpYWxpemUoCiAgICAgICAgICAgIHJlbW92ZV9sYXllcl96ZXJvX3BlZXJzX3JlcXVlc3Q9cmVtb3ZlX2xheWVyX3plcm9fcGVlcnNfcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlJlbW92ZUxheWVyWmVyb1BlZXJzUmVzcG9uc2UiLAogICAgICAgICAgICAnNDAwJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNDA0JzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNDA5JzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNTAwJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfcmVtb3ZlX2xheWVyX3plcm9fcGVlcnNfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgcmVtb3ZlX2xheWVyX3plcm9fcGVlcnNfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHJlbW92ZV9sYXllcl96ZXJvX3BlZXJzX3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHJlbW92ZV9sYXllcl96ZXJvX3BlZXJzX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdERUxFVEUnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdG9rZW5pemF0aW9uL211bHRpY2hhaW4vYnJpZGdlL2xheWVyemVyby9jb25maWcvcGVlcnMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZygKICAgICAgICBzZWxmLAogICAgICAgIHNldF9sYXllcl96ZXJvX2R2bl9jb25maWdfcmVxdWVzdDogU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtTZXRMYXllclplcm9Edm5Db25maWdSZXNwb25zZV1dOgogICAgICAgICIiIlNldCBMYXllclplcm8gRFZOIGNvbmZpZ3VyYXRpb24KCiAgICAgICAgQ29uZmlndXJlIERWTiBzZXR0aW5ncyBmb3IgTGF5ZXJaZXJvIGFkYXB0ZXJzLiBUaGlzIGVuZHBvaW50IHNldHMgdXAgdGhlIERWTiBjb25maWd1cmF0aW9uIGZvciBtZXNzYWdlIHZlcmlmaWNhdGlvbiBiZXR3ZWVuIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gYWRhcHRlcnMuCgogICAgICAgIDpwYXJhbSBzZXRfbGF5ZXJfemVyb19kdm5fY29uZmlnX3JlcXVlc3Q6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBzZXRfbGF5ZXJfemVyb19kdm5fY29uZmlnX3JlcXVlc3Q6IFNldExheWVyWmVyb0R2bkNvbmZpZ1JlcXVlc3QKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9zZXRfbGF5ZXJfemVyb19kdm5fY29uZmlnX3NlcmlhbGl6ZSgKICAgICAgICAgICAgc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXF1ZXN0PXNldF9sYXllcl96ZXJvX2R2bl9jb25maWdfcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlNldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlIiwKICAgICAgICAgICAgJzQwMCc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwNCc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwOSc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzQyMic6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzUwMCc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3NldF9sYXllcl96ZXJvX2R2bl9jb25maWdfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgc2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBzZXRfbGF5ZXJfemVyb19kdm5fY29uZmlnX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3Rva2VuaXphdGlvbi9tdWx0aWNoYWluL2JyaWRnZS9sYXllcnplcm8vY29uZmlnL2R2bnMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgc2V0X2xheWVyX3plcm9fcGVlcnMoCiAgICAgICAgc2VsZiwKICAgICAgICBzZXRfbGF5ZXJfemVyb19wZWVyc19yZXF1ZXN0OiBTZXRMYXllclplcm9QZWVyc1JlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbU2V0TGF5ZXJaZXJvUGVlcnNSZXNwb25zZV1dOgogICAgICAgICIiIlNldCBMYXllclplcm8gcGVlcnMKCiAgICAgICAgU2V0IExheWVyWmVybyBwZWVycyB0byBlc3RhYmxpc2ggY29ubmVjdGlvbnMgYmV0d2VlbiBhZGFwdGVyIGNvbnRyYWN0cy4gVGhpcyBlbmRwb2ludCBjcmVhdGVzIHBlZXIgcmVsYXRpb25zaGlwcyB0aGF0IGVuYWJsZSBjcm9zcy1jaGFpbiBjb21tdW5pY2F0aW9uLiBJdCBzZXRzIHRoZSBkZXN0aW5hdGlvbiBhZGFwdGVyIGFzIGEgcGVlciBvZiB0aGUgc291cmNlIGFkYXB0ZXIuIElmIGBiaWRpcmVjdGlvbmFsYCBpcyB0cnVlLCBpdCBhbHNvIHNldHMgdGhlIHNvdXJjZSBhZGFwdGVyIGFzIGEgcGVlciBvZiB0aGUgZGVzdGluYXRpb24gYWRhcHRlcihzKS4KCiAgICAgICAgOnBhcmFtIHNldF9sYXllcl96ZXJvX3BlZXJzX3JlcXVlc3Q6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBzZXRfbGF5ZXJfemVyb19wZWVyc19yZXF1ZXN0OiBTZXRMYXllclplcm9QZWVyc1JlcXVlc3QKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9zZXRfbGF5ZXJfemVyb19wZWVyc19zZXJpYWxpemUoCiAgICAgICAgICAgIHNldF9sYXllcl96ZXJvX3BlZXJzX3JlcXVlc3Q9c2V0X2xheWVyX3plcm9fcGVlcnNfcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlNldExheWVyWmVyb1BlZXJzUmVzcG9uc2UiLAogICAgICAgICAgICAnNDAwJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNDA0JzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNDA5JzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNDIyJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgICAgICAnNTAwJzogIkVycm9yUmVzcG9uc2UiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfc2V0X2xheWVyX3plcm9fcGVlcnNfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgc2V0X2xheWVyX3plcm9fcGVlcnNfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHNldF9sYXllcl96ZXJvX3BlZXJzX3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHNldF9sYXllcl96ZXJvX3BlZXJzX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3Rva2VuaXphdGlvbi9tdWx0aWNoYWluL2JyaWRnZS9sYXllcnplcm8vY29uZmlnL3BlZXJzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHVubGluaygKICAgICAgICBzZWxmLAogICAgICAgIGlkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHRva2VuIGxpbmsgaWQiKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtOb25lXV06CiAgICAgICAgIiIiVW5saW5rIGEgdG9rZW4KCiAgICAgICAgVW5saW5rIGEgdG9rZW4uIFRoZSB0b2tlbiB3aWxsIGJlIHVubGlua2VkIGZyb20gdGhlIHdvcmtzcGFjZS4gVGhlIHRva2VuIHdpbGwgbm90IGJlIGRlbGV0ZWQgb24gY2hhaW4gbm9yIHRoZSByZWZJZCwgb25seSB0aGUgbGluayB0byB0aGUgd29ya3NwYWNlIHdpbGwgYmUgcmVtb3ZlZC4KCiAgICAgICAgOnBhcmFtIGlkOiBUaGUgdG9rZW4gbGluayBpZCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJ1bmxpbmsiLCBwYXJhbV9uYW1lPSJpZCIsIHBhcmFtX3ZhbHVlPWlkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl91bmxpbmtfc2VyaWFsaXplKAogICAgICAgICAgICBpZD1pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogTm9uZSwKICAgICAgICAgICAgJzIwNCc6IE5vbmUsCiAgICAgICAgICAgICc0MDQnOiAiTm90Rm91bmRFeGNlcHRpb24iLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF91bmxpbmtfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGlkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2lkJ10gPSBpZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nREVMRVRFJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3Rva2VuaXphdGlvbi90b2tlbnMve2lkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiB1bmxpbmtfY29sbGVjdGlvbigKICAgICAgICBzZWxmLAogICAgICAgIGlkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHRva2VuIGxpbmsgaWQiKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtOb25lXV06CiAgICAgICAgIiIiRGVsZXRlIGEgY29sbGVjdGlvbiBsaW5rCgogICAgICAgIERlbGV0ZSBhIGNvbGxlY3Rpb24gbGluawoKICAgICAgICA6cGFyYW0gaWQ6IFRoZSB0b2tlbiBsaW5rIGlkIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBpZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InVubGlua19jb2xsZWN0aW9uIiwgcGFyYW1fbmFtZT0iaWQiLCBwYXJhbV92YWx1ZT1pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fdW5saW5rX2NvbGxlY3Rpb25fc2VyaWFsaXplKAogICAgICAgICAgICBpZD1pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjA0JzogTm9uZSwKICAgICAgICAgICAgJzQwNCc6IE5vbmUsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3VubGlua19jb2xsZWN0aW9uX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGlkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydpZCddID0gaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0RFTEVURScsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90b2tlbml6YXRpb24vY29sbGVjdGlvbnMve2lkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiB2YWxpZGF0ZV9sYXllcl96ZXJvX2NoYW5uZWxfY29uZmlnKAogICAgICAgIHNlbGYsCiAgICAgICAgYWRhcHRlcl90b2tlbl9saW5rX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHRva2VuIGxpbmsgSUQgb2YgdGhlIGFkYXB0ZXIiKV0sCiAgICAgICAgcGVlcl9hZGFwdGVyX3Rva2VuX2xpbmtfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJQZWVyIGFkYXB0ZXIgdG9rZW4gbGluayBJRCB0byB2YWxpZGF0ZSBhZ2FpbnN0IildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVmFsaWRhdGVMYXllclplcm9DaGFubmVsUmVzcG9uc2VdXToKICAgICAgICAiIiJWYWxpZGF0ZSBMYXllclplcm8gY2hhbm5lbCBjb25maWd1cmF0aW9uCgogICAgICAgIFZhbGlkYXRlIHRoZSBMYXllclplcm8gY2hhbm5lbCBjb25maWd1cmF0aW9uIGJldHdlZW4gYWRhcHRlcnMuIFRoaXMgZW5kcG9pbnQgY2hlY2tzIGlmIHRoZSBjaGFubmVsIGNvbmZpZ3VyYXRpb24gaXMgY29ycmVjdCBhbmQgcmV0dXJucyBhbnkgdmFsaWRhdGlvbiBlcnJvcnMuCgogICAgICAgIDpwYXJhbSBhZGFwdGVyX3Rva2VuX2xpbmtfaWQ6IFRoZSB0b2tlbiBsaW5rIElEIG9mIHRoZSBhZGFwdGVyIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhZGFwdGVyX3Rva2VuX2xpbmtfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBwZWVyX2FkYXB0ZXJfdG9rZW5fbGlua19pZDogUGVlciBhZGFwdGVyIHRva2VuIGxpbmsgSUQgdG8gdmFsaWRhdGUgYWdhaW5zdCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgcGVlcl9hZGFwdGVyX3Rva2VuX2xpbmtfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJ2YWxpZGF0ZV9sYXllcl96ZXJvX2NoYW5uZWxfY29uZmlnIiwgcGFyYW1fbmFtZT0iYWRhcHRlcl90b2tlbl9saW5rX2lkIiwgcGFyYW1fdmFsdWU9YWRhcHRlcl90b2tlbl9saW5rX2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0idmFsaWRhdGVfbGF5ZXJfemVyb19jaGFubmVsX2NvbmZpZyIsIHBhcmFtX25hbWU9InBlZXJfYWRhcHRlcl90b2tlbl9saW5rX2lkIiwgcGFyYW1fdmFsdWU9cGVlcl9hZGFwdGVyX3Rva2VuX2xpbmtfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3ZhbGlkYXRlX2xheWVyX3plcm9fY2hhbm5lbF9jb25maWdfc2VyaWFsaXplKAogICAgICAgICAgICBhZGFwdGVyX3Rva2VuX2xpbmtfaWQ9YWRhcHRlcl90b2tlbl9saW5rX2lkLAogICAgICAgICAgICBwZWVyX2FkYXB0ZXJfdG9rZW5fbGlua19pZD1wZWVyX2FkYXB0ZXJfdG9rZW5fbGlua19pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlZhbGlkYXRlTGF5ZXJaZXJvQ2hhbm5lbFJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwMCc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwNCc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzQyMic6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICAgICAgJzUwMCc6ICJFcnJvclJlc3BvbnNlIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3ZhbGlkYXRlX2xheWVyX3plcm9fY2hhbm5lbF9jb25maWdfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgYWRhcHRlcl90b2tlbl9saW5rX2lkLAogICAgICAgIHBlZXJfYWRhcHRlcl90b2tlbl9saW5rX2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiBhZGFwdGVyX3Rva2VuX2xpbmtfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2FkYXB0ZXJUb2tlbkxpbmtJZCcsIGFkYXB0ZXJfdG9rZW5fbGlua19pZCkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBlZXJfYWRhcHRlcl90b2tlbl9saW5rX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwZWVyQWRhcHRlclRva2VuTGlua0lkJywgcGVlcl9hZGFwdGVyX3Rva2VuX2xpbmtfaWQpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90b2tlbml6YXRpb24vbXVsdGljaGFpbi9icmlkZ2UvbGF5ZXJ6ZXJvL3ZhbGlkYXRlJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgo= \ No newline at end of file diff --git a/fireblocks/api/tr_link_api.py b/fireblocks/api/tr_link_api.py index 115d11aa..adbf57d6 100644 --- a/fireblocks/api/tr_link_api.py +++ b/fireblocks/api/tr_link_api.py @@ -1,3611 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing import List, Optional -from typing_extensions import Annotated -from fireblocks.models.tr_link_api_paged_response import TRLinkAPIPagedResponse -from fireblocks.models.tr_link_assess_travel_rule_request import TRLinkAssessTravelRuleRequest -from fireblocks.models.tr_link_assess_travel_rule_response import TRLinkAssessTravelRuleResponse -from fireblocks.models.tr_link_assets_list_paged_response import TRLinkAssetsListPagedResponse -from fireblocks.models.tr_link_cancel_trm_request import TRLinkCancelTrmRequest -from fireblocks.models.tr_link_connect_integration_request import TRLinkConnectIntegrationRequest -from fireblocks.models.tr_link_create_customer_request import TRLinkCreateCustomerRequest -from fireblocks.models.tr_link_create_integration_request import TRLinkCreateIntegrationRequest -from fireblocks.models.tr_link_create_trm_request import TRLinkCreateTrmRequest -from fireblocks.models.tr_link_customer_integration_response import TRLinkCustomerIntegrationResponse -from fireblocks.models.tr_link_customer_response import TRLinkCustomerResponse -from fireblocks.models.tr_link_get_supported_asset_response import TRLinkGetSupportedAssetResponse -from fireblocks.models.tr_link_partner_response import TRLinkPartnerResponse -from fireblocks.models.tr_link_policy_response import TRLinkPolicyResponse -from fireblocks.models.tr_link_public_key_response import TRLinkPublicKeyResponse -from fireblocks.models.tr_link_redirect_trm_request import TRLinkRedirectTrmRequest -from fireblocks.models.tr_link_set_destination_travel_rule_message_id_request import TRLinkSetDestinationTravelRuleMessageIdRequest -from fireblocks.models.tr_link_set_destination_travel_rule_message_id_response import TRLinkSetDestinationTravelRuleMessageIdResponse -from fireblocks.models.tr_link_set_transaction_travel_rule_message_id_request import TRLinkSetTransactionTravelRuleMessageIdRequest -from fireblocks.models.tr_link_set_transaction_travel_rule_message_id_response import TRLinkSetTransactionTravelRuleMessageIdResponse -from fireblocks.models.tr_link_test_connection_response import TRLinkTestConnectionResponse -from fireblocks.models.tr_link_trm_info_response import TRLinkTrmInfoResponse -from fireblocks.models.tr_link_update_customer_request import TRLinkUpdateCustomerRequest -from fireblocks.models.tr_link_vasp_dto import TRLinkVaspDto - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class TRLinkApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def assess_tr_link_travel_rule_requirement( - self, - customer_integration_id: Annotated[StrictStr, Field(description="Customer integration unique identifier")], - tr_link_assess_travel_rule_request: TRLinkAssessTravelRuleRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TRLinkAssessTravelRuleResponse]]: - """Assess Travel Rule requirement - - Assesses travel rule requirement for a transaction by validating stored credentials and determining whether Travel Rule compliance is required based on amount, jurisdiction, and partner thresholds. - - :param customer_integration_id: Customer integration unique identifier (required) - :type customer_integration_id: str - :param tr_link_assess_travel_rule_request: (required) - :type tr_link_assess_travel_rule_request: TRLinkAssessTravelRuleRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="assess_tr_link_travel_rule_requirement", param_name="customer_integration_id", param_value=customer_integration_id) - - _param = self._assess_tr_link_travel_rule_requirement_serialize( - customer_integration_id=customer_integration_id, - tr_link_assess_travel_rule_request=tr_link_assess_travel_rule_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TRLinkAssessTravelRuleResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _assess_tr_link_travel_rule_requirement_serialize( - self, - customer_integration_id, - tr_link_assess_travel_rule_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if customer_integration_id is not None: - _path_params['customerIntegrationId'] = customer_integration_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if tr_link_assess_travel_rule_request is not None: - _body_params = tr_link_assess_travel_rule_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/screening/trlink/customers/integration/{customerIntegrationId}/trm/assess', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def cancel_tr_link_trm( - self, - customer_integration_id: Annotated[StrictStr, Field(description="Customer integration unique identifier")], - trm_id: Annotated[StrictStr, Field(description="Travel Rule Message unique identifier")], - tr_link_cancel_trm_request: TRLinkCancelTrmRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TRLinkTrmInfoResponse]]: - """Cancel Travel Rule Message - - Cancels a travel rule message. The TRM status will be updated to cancelled and the partner will be notified. - - :param customer_integration_id: Customer integration unique identifier (required) - :type customer_integration_id: str - :param trm_id: Travel Rule Message unique identifier (required) - :type trm_id: str - :param tr_link_cancel_trm_request: (required) - :type tr_link_cancel_trm_request: TRLinkCancelTrmRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="cancel_tr_link_trm", param_name="customer_integration_id", param_value=customer_integration_id) - validate_not_empty_string(function_name="cancel_tr_link_trm", param_name="trm_id", param_value=trm_id) - - _param = self._cancel_tr_link_trm_serialize( - customer_integration_id=customer_integration_id, - trm_id=trm_id, - tr_link_cancel_trm_request=tr_link_cancel_trm_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '202': "TRLinkTrmInfoResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _cancel_tr_link_trm_serialize( - self, - customer_integration_id, - trm_id, - tr_link_cancel_trm_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if customer_integration_id is not None: - _path_params['customerIntegrationId'] = customer_integration_id - if trm_id is not None: - _path_params['trmId'] = trm_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if tr_link_cancel_trm_request is not None: - _body_params = tr_link_cancel_trm_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/screening/trlink/customers/integration/{customerIntegrationId}/trm/{trmId}/cancel', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def connect_tr_link_integration( - self, - customer_integration_id: Annotated[StrictStr, Field(description="Customer integration unique identifier")], - tr_link_connect_integration_request: TRLinkConnectIntegrationRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TRLinkCustomerIntegrationResponse]]: - """Connect customer integration - - Connects a customer integration by providing API credentials. Stores encrypted credentials and enables the integration for use. - - :param customer_integration_id: Customer integration unique identifier (required) - :type customer_integration_id: str - :param tr_link_connect_integration_request: (required) - :type tr_link_connect_integration_request: TRLinkConnectIntegrationRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="connect_tr_link_integration", param_name="customer_integration_id", param_value=customer_integration_id) - - _param = self._connect_tr_link_integration_serialize( - customer_integration_id=customer_integration_id, - tr_link_connect_integration_request=tr_link_connect_integration_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TRLinkCustomerIntegrationResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _connect_tr_link_integration_serialize( - self, - customer_integration_id, - tr_link_connect_integration_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if customer_integration_id is not None: - _path_params['customerIntegrationId'] = customer_integration_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if tr_link_connect_integration_request is not None: - _body_params = tr_link_connect_integration_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/screening/trlink/customers/integration/{customerIntegrationId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_tr_link_customer( - self, - tr_link_create_customer_request: TRLinkCreateCustomerRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TRLinkCustomerResponse]]: - """Create customer - - Creates a new customer (legal entity/VASP) for TRSupport Travel Rule compliance operations. The customer represents your organization in the Travel Rule network and contains IVMS101-compliant identity information. - - :param tr_link_create_customer_request: (required) - :type tr_link_create_customer_request: TRLinkCreateCustomerRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_tr_link_customer_serialize( - tr_link_create_customer_request=tr_link_create_customer_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "TRLinkCustomerResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_tr_link_customer_serialize( - self, - tr_link_create_customer_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if tr_link_create_customer_request is not None: - _body_params = tr_link_create_customer_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/screening/trlink/customers', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_tr_link_integration( - self, - tr_link_create_integration_request: TRLinkCreateIntegrationRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TRLinkCustomerIntegrationResponse]]: - """Create customer integration - - Creates a new TRSupport integration for a customer. This establishes a connection placeholder between a customer and a Travel Rule partner. Use the connect endpoint to provide credentials after creation. - - :param tr_link_create_integration_request: (required) - :type tr_link_create_integration_request: TRLinkCreateIntegrationRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_tr_link_integration_serialize( - tr_link_create_integration_request=tr_link_create_integration_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "TRLinkCustomerIntegrationResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_tr_link_integration_serialize( - self, - tr_link_create_integration_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if tr_link_create_integration_request is not None: - _body_params = tr_link_create_integration_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/screening/trlink/customers/integration', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_tr_link_trm( - self, - customer_integration_id: Annotated[StrictStr, Field(description="Customer integration unique identifier")], - tr_link_create_trm_request: TRLinkCreateTrmRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TRLinkTrmInfoResponse]]: - """Create Travel Rule Message - - Creates a new travel rule message with IVMS101-compliant PII data. Encrypts sensitive originator and beneficiary information before sending to partner. - - :param customer_integration_id: Customer integration unique identifier (required) - :type customer_integration_id: str - :param tr_link_create_trm_request: (required) - :type tr_link_create_trm_request: TRLinkCreateTrmRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="create_tr_link_trm", param_name="customer_integration_id", param_value=customer_integration_id) - - _param = self._create_tr_link_trm_serialize( - customer_integration_id=customer_integration_id, - tr_link_create_trm_request=tr_link_create_trm_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "TRLinkTrmInfoResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_tr_link_trm_serialize( - self, - customer_integration_id, - tr_link_create_trm_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if customer_integration_id is not None: - _path_params['customerIntegrationId'] = customer_integration_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if tr_link_create_trm_request is not None: - _body_params = tr_link_create_trm_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/screening/trlink/customers/integration/{customerIntegrationId}/trm', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def delete_tr_link_customer( - self, - customer_id: Annotated[StrictStr, Field(description="Customer unique identifier")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Delete customer - - Deletes a customer and all associated integrations. This action cannot be undone. - - :param customer_id: Customer unique identifier (required) - :type customer_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="delete_tr_link_customer", param_name="customer_id", param_value=customer_id) - - _param = self._delete_tr_link_customer_serialize( - customer_id=customer_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '204': None, - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _delete_tr_link_customer_serialize( - self, - customer_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if customer_id is not None: - _path_params['customerId'] = customer_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/screening/trlink/customers/{customerId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def disconnect_tr_link_integration( - self, - customer_integration_id: Annotated[StrictStr, Field(description="Customer integration unique identifier")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Disconnect customer integration - - Disconnects a customer integration by removing stored credentials. The integration record is deleted and cannot be recovered. - - :param customer_integration_id: Customer integration unique identifier (required) - :type customer_integration_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="disconnect_tr_link_integration", param_name="customer_integration_id", param_value=customer_integration_id) - - _param = self._disconnect_tr_link_integration_serialize( - customer_integration_id=customer_integration_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '204': None, - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _disconnect_tr_link_integration_serialize( - self, - customer_integration_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if customer_integration_id is not None: - _path_params['customerIntegrationId'] = customer_integration_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/screening/trlink/customers/integration/{customerIntegrationId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_tr_link_customer_by_id( - self, - customer_id: Annotated[StrictStr, Field(description="Customer unique identifier")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TRLinkCustomerResponse]]: - """Get customer by ID - - Retrieves detailed information about a specific customer by their unique identifier. - - :param customer_id: Customer unique identifier (required) - :type customer_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_tr_link_customer_by_id", param_name="customer_id", param_value=customer_id) - - _param = self._get_tr_link_customer_by_id_serialize( - customer_id=customer_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TRLinkCustomerResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_tr_link_customer_by_id_serialize( - self, - customer_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if customer_id is not None: - _path_params['customerId'] = customer_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/trlink/customers/{customerId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_tr_link_customer_integration_by_id( - self, - customer_id: Annotated[StrictStr, Field(description="Customer unique identifier")], - customer_integration_id: Annotated[StrictStr, Field(description="Customer integration unique identifier")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TRLinkCustomerIntegrationResponse]]: - """Get customer integration by ID - - Retrieves detailed information about a specific customer integration. - - :param customer_id: Customer unique identifier (required) - :type customer_id: str - :param customer_integration_id: Customer integration unique identifier (required) - :type customer_integration_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_tr_link_customer_integration_by_id", param_name="customer_id", param_value=customer_id) - validate_not_empty_string(function_name="get_tr_link_customer_integration_by_id", param_name="customer_integration_id", param_value=customer_integration_id) - - _param = self._get_tr_link_customer_integration_by_id_serialize( - customer_id=customer_id, - customer_integration_id=customer_integration_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TRLinkCustomerIntegrationResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_tr_link_customer_integration_by_id_serialize( - self, - customer_id, - customer_integration_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if customer_id is not None: - _path_params['customerId'] = customer_id - if customer_integration_id is not None: - _path_params['customerIntegrationId'] = customer_integration_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/trlink/customers/{customerId}/integrations/{customerIntegrationId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_tr_link_customer_integrations( - self, - customer_id: Annotated[StrictStr, Field(description="Customer unique identifier")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[TRLinkCustomerIntegrationResponse]]]: - """Get customer integrations - - Retrieves all TRSupport integrations for a specific customer. Returns a list of partner integrations configured for Travel Rule compliance. - - :param customer_id: Customer unique identifier (required) - :type customer_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_tr_link_customer_integrations", param_name="customer_id", param_value=customer_id) - - _param = self._get_tr_link_customer_integrations_serialize( - customer_id=customer_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "List[TRLinkCustomerIntegrationResponse]", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_tr_link_customer_integrations_serialize( - self, - customer_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if customer_id is not None: - _path_params['customerId'] = customer_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/trlink/customers/{customerId}/integrations', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_tr_link_customers( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[TRLinkCustomerResponse]]]: - """Get all customers - - Retrieves all customers associated with the authenticated tenant. Returns a list of legal entities configured for Travel Rule compliance. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_tr_link_customers_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "List[TRLinkCustomerResponse]", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_tr_link_customers_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/trlink/customers', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_tr_link_integration_public_key( - self, - customer_integration_id: Annotated[StrictStr, Field(description="Customer integration unique identifier")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TRLinkPublicKeyResponse]]: - """Get public key for PII encryption - - Retrieves the partner's public key in JWK format for encrypting PII data in Travel Rule Messages. Use this key to encrypt sensitive originator and beneficiary information before sending Travel Rule messages. - - :param customer_integration_id: Customer integration unique identifier (required) - :type customer_integration_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_tr_link_integration_public_key", param_name="customer_integration_id", param_value=customer_integration_id) - - _param = self._get_tr_link_integration_public_key_serialize( - customer_integration_id=customer_integration_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TRLinkPublicKeyResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_tr_link_integration_public_key_serialize( - self, - customer_integration_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if customer_integration_id is not None: - _path_params['customerIntegrationId'] = customer_integration_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/trlink/customers/integration/{customerIntegrationId}/public_key', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_tr_link_partners( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[TRLinkPartnerResponse]]]: - """List available TRSupport partners - - Retrieves a list of all available Travel Rule Support integration partners. Partners provide Travel Rule compliance services such as VASP discovery, TRM exchange, and PII encryption. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_tr_link_partners_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "List[TRLinkPartnerResponse]", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_tr_link_partners_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/trlink/partners', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_tr_link_policy( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TRLinkPolicyResponse]]: - """Get TRLink policy - - Retrieves the complete TRSupport policy for the authenticated tenant, including pre-screening rules, post-screening rules, and missing TRM rules. Pre-screening rules determine whether transactions should be screened. Post-screening rules determine actions based on screening results. Missing TRM rules handle cases when screening data is unavailable. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_tr_link_policy_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TRLinkPolicyResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_tr_link_policy_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/trlink/policy', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_tr_link_supported_asset( - self, - customer_integration_id: Annotated[StrictStr, Field(description="Customer integration unique identifier")], - asset_id: Annotated[StrictStr, Field(description="Fireblocks asset ID")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TRLinkGetSupportedAssetResponse]]: - """Get supported asset by ID - - Retrieves detailed information about a specific asset by its Fireblocks asset ID. Returns the transformed Fireblocks asset data, raw partner response, and support status. - - :param customer_integration_id: Customer integration unique identifier (required) - :type customer_integration_id: str - :param asset_id: Fireblocks asset ID (required) - :type asset_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_tr_link_supported_asset", param_name="customer_integration_id", param_value=customer_integration_id) - validate_not_empty_string(function_name="get_tr_link_supported_asset", param_name="asset_id", param_value=asset_id) - - _param = self._get_tr_link_supported_asset_serialize( - customer_integration_id=customer_integration_id, - asset_id=asset_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TRLinkGetSupportedAssetResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_tr_link_supported_asset_serialize( - self, - customer_integration_id, - asset_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if customer_integration_id is not None: - _path_params['customerIntegrationId'] = customer_integration_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/trlink/customers/integration/{customerIntegrationId}/assets/{assetId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_tr_link_trm_by_id( - self, - customer_integration_id: Annotated[StrictStr, Field(description="Customer integration unique identifier")], - trm_id: Annotated[StrictStr, Field(description="Travel Rule Message unique identifier")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TRLinkTrmInfoResponse]]: - """Get TRM by ID - - Retrieves a Travel Rule Message by its unique identifier from the partner provider. Returns full TRM details including status, IVMS101 data, and transaction information. - - :param customer_integration_id: Customer integration unique identifier (required) - :type customer_integration_id: str - :param trm_id: Travel Rule Message unique identifier (required) - :type trm_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_tr_link_trm_by_id", param_name="customer_integration_id", param_value=customer_integration_id) - validate_not_empty_string(function_name="get_tr_link_trm_by_id", param_name="trm_id", param_value=trm_id) - - _param = self._get_tr_link_trm_by_id_serialize( - customer_integration_id=customer_integration_id, - trm_id=trm_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TRLinkTrmInfoResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_tr_link_trm_by_id_serialize( - self, - customer_integration_id, - trm_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if customer_integration_id is not None: - _path_params['customerIntegrationId'] = customer_integration_id - if trm_id is not None: - _path_params['trmId'] = trm_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/trlink/customers/integration/{customerIntegrationId}/trm/{trmId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_tr_link_vasp_by_id( - self, - customer_integration_id: Annotated[StrictStr, Field(description="Customer integration unique identifier")], - vasp_id: Annotated[StrictStr, Field(description="VASP unique identifier (DID format)")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TRLinkVaspDto]]: - """Get VASP by ID - - Retrieves detailed information about a specific VASP by its unique identifier. Returns VASP details including public key if available. - - :param customer_integration_id: Customer integration unique identifier (required) - :type customer_integration_id: str - :param vasp_id: VASP unique identifier (DID format) (required) - :type vasp_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_tr_link_vasp_by_id", param_name="customer_integration_id", param_value=customer_integration_id) - validate_not_empty_string(function_name="get_tr_link_vasp_by_id", param_name="vasp_id", param_value=vasp_id) - - _param = self._get_tr_link_vasp_by_id_serialize( - customer_integration_id=customer_integration_id, - vasp_id=vasp_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TRLinkVaspDto", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_tr_link_vasp_by_id_serialize( - self, - customer_integration_id, - vasp_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if customer_integration_id is not None: - _path_params['customerIntegrationId'] = customer_integration_id - if vasp_id is not None: - _path_params['vaspId'] = vasp_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/trlink/customers/integration/{customerIntegrationId}/vasps/{vaspId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def list_tr_link_supported_assets( - self, - customer_integration_id: Annotated[StrictStr, Field(description="Customer integration unique identifier")], - page_size: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Number of results per page (max 100)")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Cursor for pagination (from previous response)")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TRLinkAssetsListPagedResponse]]: - """List supported assets - - Retrieves a paginated list of assets supported by the partner integration. Includes a flag indicating whether the partner can handle assets not explicitly listed. Supports cursor-based pagination. - - :param customer_integration_id: Customer integration unique identifier (required) - :type customer_integration_id: str - :param page_size: Number of results per page (max 100) - :type page_size: int - :param page_cursor: Cursor for pagination (from previous response) - :type page_cursor: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="list_tr_link_supported_assets", param_name="customer_integration_id", param_value=customer_integration_id) - - _param = self._list_tr_link_supported_assets_serialize( - customer_integration_id=customer_integration_id, - page_size=page_size, - page_cursor=page_cursor, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TRLinkAssetsListPagedResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _list_tr_link_supported_assets_serialize( - self, - customer_integration_id, - page_size, - page_cursor, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if customer_integration_id is not None: - _path_params['customerIntegrationId'] = customer_integration_id - # process the query parameters - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/trlink/customers/integration/{customerIntegrationId}/assets', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def list_tr_link_vasps( - self, - customer_integration_id: Annotated[StrictStr, Field(description="Customer integration unique identifier")], - page_size: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Number of results per page (max 100)")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Cursor for pagination (from previous response)")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TRLinkAPIPagedResponse]]: - """List VASPs - - Retrieves a paginated list of VASPs (Virtual Asset Service Providers) available through the partner integration. Supports cursor-based pagination. - - :param customer_integration_id: Customer integration unique identifier (required) - :type customer_integration_id: str - :param page_size: Number of results per page (max 100) - :type page_size: int - :param page_cursor: Cursor for pagination (from previous response) - :type page_cursor: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="list_tr_link_vasps", param_name="customer_integration_id", param_value=customer_integration_id) - - _param = self._list_tr_link_vasps_serialize( - customer_integration_id=customer_integration_id, - page_size=page_size, - page_cursor=page_cursor, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TRLinkAPIPagedResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _list_tr_link_vasps_serialize( - self, - customer_integration_id, - page_size, - page_cursor, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if customer_integration_id is not None: - _path_params['customerIntegrationId'] = customer_integration_id - # process the query parameters - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/trlink/customers/integration/{customerIntegrationId}/vasps', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def redirect_tr_link_trm( - self, - customer_integration_id: Annotated[StrictStr, Field(description="Customer integration unique identifier")], - trm_id: Annotated[StrictStr, Field(description="Travel Rule Message unique identifier")], - tr_link_redirect_trm_request: TRLinkRedirectTrmRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TRLinkTrmInfoResponse]]: - """Redirect Travel Rule Message - - Redirects a Travel Rule Message to a subsidiary VASP. This operation requires the partner to support nested VASPs functionality. - - :param customer_integration_id: Customer integration unique identifier (required) - :type customer_integration_id: str - :param trm_id: Travel Rule Message unique identifier (required) - :type trm_id: str - :param tr_link_redirect_trm_request: (required) - :type tr_link_redirect_trm_request: TRLinkRedirectTrmRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="redirect_tr_link_trm", param_name="customer_integration_id", param_value=customer_integration_id) - validate_not_empty_string(function_name="redirect_tr_link_trm", param_name="trm_id", param_value=trm_id) - - _param = self._redirect_tr_link_trm_serialize( - customer_integration_id=customer_integration_id, - trm_id=trm_id, - tr_link_redirect_trm_request=tr_link_redirect_trm_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '202': "TRLinkTrmInfoResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _redirect_tr_link_trm_serialize( - self, - customer_integration_id, - trm_id, - tr_link_redirect_trm_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if customer_integration_id is not None: - _path_params['customerIntegrationId'] = customer_integration_id - if trm_id is not None: - _path_params['trmId'] = trm_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if tr_link_redirect_trm_request is not None: - _body_params = tr_link_redirect_trm_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/screening/trlink/customers/integration/{customerIntegrationId}/trm/{trmId}/redirect', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_tr_link_destination_travel_rule_message_id( - self, - tx_id: Annotated[StrictStr, Field(description="Fireblocks transaction unique identifier")], - tr_link_set_destination_travel_rule_message_id_request: TRLinkSetDestinationTravelRuleMessageIdRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TRLinkSetDestinationTravelRuleMessageIdResponse]]: - """Set destination travel rule message ID - - Associates a Travel Rule Message ID with a specific destination in a multi-destination Fireblocks transaction. Matches destinations by amount and peer path. - - :param tx_id: Fireblocks transaction unique identifier (required) - :type tx_id: str - :param tr_link_set_destination_travel_rule_message_id_request: (required) - :type tr_link_set_destination_travel_rule_message_id_request: TRLinkSetDestinationTravelRuleMessageIdRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="set_tr_link_destination_travel_rule_message_id", param_name="tx_id", param_value=tx_id) - - _param = self._set_tr_link_destination_travel_rule_message_id_serialize( - tx_id=tx_id, - tr_link_set_destination_travel_rule_message_id_request=tr_link_set_destination_travel_rule_message_id_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TRLinkSetDestinationTravelRuleMessageIdResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_tr_link_destination_travel_rule_message_id_serialize( - self, - tx_id, - tr_link_set_destination_travel_rule_message_id_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if tx_id is not None: - _path_params['txId'] = tx_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if tr_link_set_destination_travel_rule_message_id_request is not None: - _body_params = tr_link_set_destination_travel_rule_message_id_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/screening/trlink/transaction/{txId}/destination/travel_rule_message_id', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_tr_link_transaction_travel_rule_message_id( - self, - tx_id: Annotated[StrictStr, Field(description="Fireblocks transaction unique identifier")], - tr_link_set_transaction_travel_rule_message_id_request: TRLinkSetTransactionTravelRuleMessageIdRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TRLinkSetTransactionTravelRuleMessageIdResponse]]: - """Set transaction travel rule message ID - - Associates a Travel Rule Message ID with a Fireblocks transaction. This links the TRM compliance data to the blockchain transaction. - - :param tx_id: Fireblocks transaction unique identifier (required) - :type tx_id: str - :param tr_link_set_transaction_travel_rule_message_id_request: (required) - :type tr_link_set_transaction_travel_rule_message_id_request: TRLinkSetTransactionTravelRuleMessageIdRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="set_tr_link_transaction_travel_rule_message_id", param_name="tx_id", param_value=tx_id) - - _param = self._set_tr_link_transaction_travel_rule_message_id_serialize( - tx_id=tx_id, - tr_link_set_transaction_travel_rule_message_id_request=tr_link_set_transaction_travel_rule_message_id_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TRLinkSetTransactionTravelRuleMessageIdResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_tr_link_transaction_travel_rule_message_id_serialize( - self, - tx_id, - tr_link_set_transaction_travel_rule_message_id_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if tx_id is not None: - _path_params['txId'] = tx_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if tr_link_set_transaction_travel_rule_message_id_request is not None: - _body_params = tr_link_set_transaction_travel_rule_message_id_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/screening/trlink/transaction/{txId}/travel_rule_message_id', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def test_tr_link_integration_connection( - self, - customer_integration_id: Annotated[StrictStr, Field(description="Customer integration unique identifier")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TRLinkTestConnectionResponse]]: - """Test connection - - Tests the connection to a customer integration by validating stored credentials and attempting communication with the Travel Rule partner. Returns connection status and any error messages. - - :param customer_integration_id: Customer integration unique identifier (required) - :type customer_integration_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="test_tr_link_integration_connection", param_name="customer_integration_id", param_value=customer_integration_id) - - _param = self._test_tr_link_integration_connection_serialize( - customer_integration_id=customer_integration_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TRLinkTestConnectionResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _test_tr_link_integration_connection_serialize( - self, - customer_integration_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if customer_integration_id is not None: - _path_params['customerIntegrationId'] = customer_integration_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/screening/trlink/customers/integration/{customerIntegrationId}/test_connection', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_tr_link_customer( - self, - customer_id: Annotated[StrictStr, Field(description="Customer unique identifier")], - tr_link_update_customer_request: TRLinkUpdateCustomerRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TRLinkCustomerResponse]]: - """Update customer - - Updates an existing customer's information. All fields are optional - only provided fields will be updated. - - :param customer_id: Customer unique identifier (required) - :type customer_id: str - :param tr_link_update_customer_request: (required) - :type tr_link_update_customer_request: TRLinkUpdateCustomerRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="update_tr_link_customer", param_name="customer_id", param_value=customer_id) - - _param = self._update_tr_link_customer_serialize( - customer_id=customer_id, - tr_link_update_customer_request=tr_link_update_customer_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TRLinkCustomerResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_tr_link_customer_serialize( - self, - customer_id, - tr_link_update_customer_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if customer_id is not None: - _path_params['customerId'] = customer_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if tr_link_update_customer_request is not None: - _body_params = tr_link_update_customer_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/screening/trlink/customers/{customerId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hcGlfcGFnZWRfcmVzcG9uc2UgaW1wb3J0IFRSTGlua0FQSVBhZ2VkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Fzc2Vzc190cmF2ZWxfcnVsZV9yZXF1ZXN0IGltcG9ydCBUUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXNzZXNzX3RyYXZlbF9ydWxlX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Fzc2V0c19saXN0X3BhZ2VkX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtBc3NldHNMaXN0UGFnZWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY2FuY2VsX3RybV9yZXF1ZXN0IGltcG9ydCBUUkxpbmtDYW5jZWxUcm1SZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19jb25uZWN0X2ludGVncmF0aW9uX3JlcXVlc3QgaW1wb3J0IFRSTGlua0Nvbm5lY3RJbnRlZ3JhdGlvblJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2NyZWF0ZV9jdXN0b21lcl9yZXF1ZXN0IGltcG9ydCBUUkxpbmtDcmVhdGVDdXN0b21lclJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2NyZWF0ZV9pbnRlZ3JhdGlvbl9yZXF1ZXN0IGltcG9ydCBUUkxpbmtDcmVhdGVJbnRlZ3JhdGlvblJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2NyZWF0ZV90cm1fcmVxdWVzdCBpbXBvcnQgVFJMaW5rQ3JlYXRlVHJtUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY3VzdG9tZXJfaW50ZWdyYXRpb25fcmVzcG9uc2UgaW1wb3J0IFRSTGlua0N1c3RvbWVySW50ZWdyYXRpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY3VzdG9tZXJfcmVzcG9uc2UgaW1wb3J0IFRSTGlua0N1c3RvbWVyUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2dldF9zdXBwb3J0ZWRfYXNzZXRfcmVzcG9uc2UgaW1wb3J0IFRSTGlua0dldFN1cHBvcnRlZEFzc2V0UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3BhcnRuZXJfcmVzcG9uc2UgaW1wb3J0IFRSTGlua1BhcnRuZXJSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcG9saWN5X3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtQb2xpY3lSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHVibGljX2tleV9yZXNwb25zZSBpbXBvcnQgVFJMaW5rUHVibGljS2V5UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3JlZGlyZWN0X3RybV9yZXF1ZXN0IGltcG9ydCBUUkxpbmtSZWRpcmVjdFRybVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3NldF9kZXN0aW5hdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3JlcXVlc3QgaW1wb3J0IFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3NldF9kZXN0aW5hdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtTZXREZXN0aW5hdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfc2V0X3RyYW5zYWN0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVxdWVzdCBpbXBvcnQgVFJMaW5rU2V0VHJhbnNhY3Rpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfc2V0X3RyYW5zYWN0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVzcG9uc2UgaW1wb3J0IFRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua190ZXN0X2Nvbm5lY3Rpb25fcmVzcG9uc2UgaW1wb3J0IFRSTGlua1Rlc3RDb25uZWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3RybV9pbmZvX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtUcm1JbmZvUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3VwZGF0ZV9jdXN0b21lcl9yZXF1ZXN0IGltcG9ydCBUUkxpbmtVcGRhdGVDdXN0b21lclJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3Zhc3BfZHRvIGltcG9ydCBUUkxpbmtWYXNwRHRvCgpmcm9tIGZpcmVibG9ja3MuYXBpX2NsaWVudCBpbXBvcnQgQXBpQ2xpZW50LCBSZXF1ZXN0U2VyaWFsaXplZApmcm9tIGZpcmVibG9ja3MuYXBpX3Jlc3BvbnNlIGltcG9ydCBBcGlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MucmVzdCBpbXBvcnQgUkVTVFJlc3BvbnNlVHlwZQpmcm9tIGZpcmVibG9ja3MudmFsaWRhdGlvbl91dGlscyBpbXBvcnQgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZwoKCmNsYXNzIFRSTGlua0FwaToKICAgICIiIk5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IKICAgIFJlZjogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgogICAgIiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwaV9jbGllbnQ9Tm9uZSkgLT4gTm9uZToKICAgICAgICBpZiBhcGlfY2xpZW50IGlzIE5vbmU6CiAgICAgICAgICAgIGFwaV9jbGllbnQgPSBBcGlDbGllbnQuZ2V0X2RlZmF1bHQoKQogICAgICAgIHNlbGYuYXBpX2NsaWVudCA9IGFwaV9jbGllbnQKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBhc3Nlc3NfdHJfbGlua190cmF2ZWxfcnVsZV9yZXF1aXJlbWVudCgKICAgICAgICBzZWxmLAogICAgICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iQ3VzdG9tZXIgaW50ZWdyYXRpb24gdW5pcXVlIGlkZW50aWZpZXIiKV0sCiAgICAgICAgdHJfbGlua19hc3Nlc3NfdHJhdmVsX3J1bGVfcmVxdWVzdDogVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlc3BvbnNlXV06CiAgICAgICAgIiIiQXNzZXNzIFRyYXZlbCBSdWxlIHJlcXVpcmVtZW50CgogICAgICAgIEFzc2Vzc2VzIHRyYXZlbCBydWxlIHJlcXVpcmVtZW50IGZvciBhIHRyYW5zYWN0aW9uIGJ5IHZhbGlkYXRpbmcgc3RvcmVkIGNyZWRlbnRpYWxzIGFuZCBkZXRlcm1pbmluZyB3aGV0aGVyIFRyYXZlbCBSdWxlIGNvbXBsaWFuY2UgaXMgcmVxdWlyZWQgYmFzZWQgb24gYW1vdW50LCBqdXJpc2RpY3Rpb24sIGFuZCBwYXJ0bmVyIHRocmVzaG9sZHMuCgogICAgICAgIDpwYXJhbSBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZDogQ3VzdG9tZXIgaW50ZWdyYXRpb24gdW5pcXVlIGlkZW50aWZpZXIgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkOiBzdHIKICAgICAgICA6cGFyYW0gdHJfbGlua19hc3Nlc3NfdHJhdmVsX3J1bGVfcmVxdWVzdDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHRyX2xpbmtfYXNzZXNzX3RyYXZlbF9ydWxlX3JlcXVlc3Q6IFRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXF1ZXN0CiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImFzc2Vzc190cl9saW5rX3RyYXZlbF9ydWxlX3JlcXVpcmVtZW50IiwgcGFyYW1fbmFtZT0iY3VzdG9tZXJfaW50ZWdyYXRpb25faWQiLCBwYXJhbV92YWx1ZT1jdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fYXNzZXNzX3RyX2xpbmtfdHJhdmVsX3J1bGVfcmVxdWlyZW1lbnRfc2VyaWFsaXplKAogICAgICAgICAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZD1jdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCwKICAgICAgICAgICAgdHJfbGlua19hc3Nlc3NfdHJhdmVsX3J1bGVfcmVxdWVzdD10cl9saW5rX2Fzc2Vzc190cmF2ZWxfcnVsZV9yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfYXNzZXNzX3RyX2xpbmtfdHJhdmVsX3J1bGVfcmVxdWlyZW1lbnRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQsCiAgICAgICAgdHJfbGlua19hc3Nlc3NfdHJhdmVsX3J1bGVfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2N1c3RvbWVySW50ZWdyYXRpb25JZCddID0gY3VzdG9tZXJfaW50ZWdyYXRpb25faWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiB0cl9saW5rX2Fzc2Vzc190cmF2ZWxfcnVsZV9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSB0cl9saW5rX2Fzc2Vzc190cmF2ZWxfcnVsZV9yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zY3JlZW5pbmcvdHJsaW5rL2N1c3RvbWVycy9pbnRlZ3JhdGlvbi97Y3VzdG9tZXJJbnRlZ3JhdGlvbklkfS90cm0vYXNzZXNzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGNhbmNlbF90cl9saW5rX3RybSgKICAgICAgICBzZWxmLAogICAgICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iQ3VzdG9tZXIgaW50ZWdyYXRpb24gdW5pcXVlIGlkZW50aWZpZXIiKV0sCiAgICAgICAgdHJtX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVHJhdmVsIFJ1bGUgTWVzc2FnZSB1bmlxdWUgaWRlbnRpZmllciIpXSwKICAgICAgICB0cl9saW5rX2NhbmNlbF90cm1fcmVxdWVzdDogVFJMaW5rQ2FuY2VsVHJtUmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtUUkxpbmtUcm1JbmZvUmVzcG9uc2VdXToKICAgICAgICAiIiJDYW5jZWwgVHJhdmVsIFJ1bGUgTWVzc2FnZQoKICAgICAgICBDYW5jZWxzIGEgdHJhdmVsIHJ1bGUgbWVzc2FnZS4gVGhlIFRSTSBzdGF0dXMgd2lsbCBiZSB1cGRhdGVkIHRvIGNhbmNlbGxlZCBhbmQgdGhlIHBhcnRuZXIgd2lsbCBiZSBub3RpZmllZC4KCiAgICAgICAgOnBhcmFtIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkOiBDdXN0b21lciBpbnRlZ3JhdGlvbiB1bmlxdWUgaWRlbnRpZmllciAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ6IHN0cgogICAgICAgIDpwYXJhbSB0cm1faWQ6IFRyYXZlbCBSdWxlIE1lc3NhZ2UgdW5pcXVlIGlkZW50aWZpZXIgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHRybV9pZDogc3RyCiAgICAgICAgOnBhcmFtIHRyX2xpbmtfY2FuY2VsX3RybV9yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdHJfbGlua19jYW5jZWxfdHJtX3JlcXVlc3Q6IFRSTGlua0NhbmNlbFRybVJlcXVlc3QKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iY2FuY2VsX3RyX2xpbmtfdHJtIiwgcGFyYW1fbmFtZT0iY3VzdG9tZXJfaW50ZWdyYXRpb25faWQiLCBwYXJhbV92YWx1ZT1jdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImNhbmNlbF90cl9saW5rX3RybSIsIHBhcmFtX25hbWU9InRybV9pZCIsIHBhcmFtX3ZhbHVlPXRybV9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fY2FuY2VsX3RyX2xpbmtfdHJtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ9Y3VzdG9tZXJfaW50ZWdyYXRpb25faWQsCiAgICAgICAgICAgIHRybV9pZD10cm1faWQsCiAgICAgICAgICAgIHRyX2xpbmtfY2FuY2VsX3RybV9yZXF1ZXN0PXRyX2xpbmtfY2FuY2VsX3RybV9yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDInOiAiVFJMaW5rVHJtSW5mb1Jlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfY2FuY2VsX3RyX2xpbmtfdHJtX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkLAogICAgICAgIHRybV9pZCwKICAgICAgICB0cl9saW5rX2NhbmNlbF90cm1fcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2N1c3RvbWVySW50ZWdyYXRpb25JZCddID0gY3VzdG9tZXJfaW50ZWdyYXRpb25faWQKICAgICAgICBpZiB0cm1faWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1sndHJtSWQnXSA9IHRybV9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHRyX2xpbmtfY2FuY2VsX3RybV9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSB0cl9saW5rX2NhbmNlbF90cm1fcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc2NyZWVuaW5nL3RybGluay9jdXN0b21lcnMvaW50ZWdyYXRpb24ve2N1c3RvbWVySW50ZWdyYXRpb25JZH0vdHJtL3t0cm1JZH0vY2FuY2VsJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGNvbm5lY3RfdHJfbGlua19pbnRlZ3JhdGlvbigKICAgICAgICBzZWxmLAogICAgICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iQ3VzdG9tZXIgaW50ZWdyYXRpb24gdW5pcXVlIGlkZW50aWZpZXIiKV0sCiAgICAgICAgdHJfbGlua19jb25uZWN0X2ludGVncmF0aW9uX3JlcXVlc3Q6IFRSTGlua0Nvbm5lY3RJbnRlZ3JhdGlvblJlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVFJMaW5rQ3VzdG9tZXJJbnRlZ3JhdGlvblJlc3BvbnNlXV06CiAgICAgICAgIiIiQ29ubmVjdCBjdXN0b21lciBpbnRlZ3JhdGlvbgoKICAgICAgICBDb25uZWN0cyBhIGN1c3RvbWVyIGludGVncmF0aW9uIGJ5IHByb3ZpZGluZyBBUEkgY3JlZGVudGlhbHMuIFN0b3JlcyBlbmNyeXB0ZWQgY3JlZGVudGlhbHMgYW5kIGVuYWJsZXMgdGhlIGludGVncmF0aW9uIGZvciB1c2UuCgogICAgICAgIDpwYXJhbSBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZDogQ3VzdG9tZXIgaW50ZWdyYXRpb24gdW5pcXVlIGlkZW50aWZpZXIgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkOiBzdHIKICAgICAgICA6cGFyYW0gdHJfbGlua19jb25uZWN0X2ludGVncmF0aW9uX3JlcXVlc3Q6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB0cl9saW5rX2Nvbm5lY3RfaW50ZWdyYXRpb25fcmVxdWVzdDogVFJMaW5rQ29ubmVjdEludGVncmF0aW9uUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJjb25uZWN0X3RyX2xpbmtfaW50ZWdyYXRpb24iLCBwYXJhbV9uYW1lPSJjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCIsIHBhcmFtX3ZhbHVlPWN1c3RvbWVyX2ludGVncmF0aW9uX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9jb25uZWN0X3RyX2xpbmtfaW50ZWdyYXRpb25fc2VyaWFsaXplKAogICAgICAgICAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZD1jdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCwKICAgICAgICAgICAgdHJfbGlua19jb25uZWN0X2ludGVncmF0aW9uX3JlcXVlc3Q9dHJfbGlua19jb25uZWN0X2ludGVncmF0aW9uX3JlcXVlc3QsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJUUkxpbmtDdXN0b21lckludGVncmF0aW9uUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9jb25uZWN0X3RyX2xpbmtfaW50ZWdyYXRpb25fc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQsCiAgICAgICAgdHJfbGlua19jb25uZWN0X2ludGVncmF0aW9uX3JlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydjdXN0b21lckludGVncmF0aW9uSWQnXSA9IGN1c3RvbWVyX2ludGVncmF0aW9uX2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgdHJfbGlua19jb25uZWN0X2ludGVncmF0aW9uX3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHRyX2xpbmtfY29ubmVjdF9pbnRlZ3JhdGlvbl9yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUFVUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL2ludGVncmF0aW9uL3tjdXN0b21lckludGVncmF0aW9uSWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGNyZWF0ZV90cl9saW5rX2N1c3RvbWVyKAogICAgICAgIHNlbGYsCiAgICAgICAgdHJfbGlua19jcmVhdGVfY3VzdG9tZXJfcmVxdWVzdDogVFJMaW5rQ3JlYXRlQ3VzdG9tZXJSZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1RSTGlua0N1c3RvbWVyUmVzcG9uc2VdXToKICAgICAgICAiIiJDcmVhdGUgY3VzdG9tZXIKCiAgICAgICAgQ3JlYXRlcyBhIG5ldyBjdXN0b21lciAobGVnYWwgZW50aXR5L1ZBU1ApIGZvciBUUlN1cHBvcnQgVHJhdmVsIFJ1bGUgY29tcGxpYW5jZSBvcGVyYXRpb25zLiBUaGUgY3VzdG9tZXIgcmVwcmVzZW50cyB5b3VyIG9yZ2FuaXphdGlvbiBpbiB0aGUgVHJhdmVsIFJ1bGUgbmV0d29yayBhbmQgY29udGFpbnMgSVZNUzEwMS1jb21wbGlhbnQgaWRlbnRpdHkgaW5mb3JtYXRpb24uCgogICAgICAgIDpwYXJhbSB0cl9saW5rX2NyZWF0ZV9jdXN0b21lcl9yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdHJfbGlua19jcmVhdGVfY3VzdG9tZXJfcmVxdWVzdDogVFJMaW5rQ3JlYXRlQ3VzdG9tZXJSZXF1ZXN0CiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fY3JlYXRlX3RyX2xpbmtfY3VzdG9tZXJfc2VyaWFsaXplKAogICAgICAgICAgICB0cl9saW5rX2NyZWF0ZV9jdXN0b21lcl9yZXF1ZXN0PXRyX2xpbmtfY3JlYXRlX2N1c3RvbWVyX3JlcXVlc3QsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMSc6ICJUUkxpbmtDdXN0b21lclJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfY3JlYXRlX3RyX2xpbmtfY3VzdG9tZXJfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdHJfbGlua19jcmVhdGVfY3VzdG9tZXJfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHRyX2xpbmtfY3JlYXRlX2N1c3RvbWVyX3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHRyX2xpbmtfY3JlYXRlX2N1c3RvbWVyX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGNyZWF0ZV90cl9saW5rX2ludGVncmF0aW9uKAogICAgICAgIHNlbGYsCiAgICAgICAgdHJfbGlua19jcmVhdGVfaW50ZWdyYXRpb25fcmVxdWVzdDogVFJMaW5rQ3JlYXRlSW50ZWdyYXRpb25SZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1RSTGlua0N1c3RvbWVySW50ZWdyYXRpb25SZXNwb25zZV1dOgogICAgICAgICIiIkNyZWF0ZSBjdXN0b21lciBpbnRlZ3JhdGlvbgoKICAgICAgICBDcmVhdGVzIGEgbmV3IFRSU3VwcG9ydCBpbnRlZ3JhdGlvbiBmb3IgYSBjdXN0b21lci4gVGhpcyBlc3RhYmxpc2hlcyBhIGNvbm5lY3Rpb24gcGxhY2Vob2xkZXIgYmV0d2VlbiBhIGN1c3RvbWVyIGFuZCBhIFRyYXZlbCBSdWxlIHBhcnRuZXIuIFVzZSB0aGUgY29ubmVjdCBlbmRwb2ludCB0byBwcm92aWRlIGNyZWRlbnRpYWxzIGFmdGVyIGNyZWF0aW9uLiBZb3UgbWF5IG9wdGlvbmFsbHkgc3VwcGx5IGBjdXN0b21lckludGVncmF0aW9uSWRgIGluIHRoZSByZXF1ZXN0IGJvZHkgd2hlbiB5b3VyIHRlbmFudCBpcyBlbmFibGVkIGZvciBjbGllbnQtcHJvdmlkZWQgaW50ZWdyYXRpb24gaWRzLgoKICAgICAgICA6cGFyYW0gdHJfbGlua19jcmVhdGVfaW50ZWdyYXRpb25fcmVxdWVzdDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHRyX2xpbmtfY3JlYXRlX2ludGVncmF0aW9uX3JlcXVlc3Q6IFRSTGlua0NyZWF0ZUludGVncmF0aW9uUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2NyZWF0ZV90cl9saW5rX2ludGVncmF0aW9uX3NlcmlhbGl6ZSgKICAgICAgICAgICAgdHJfbGlua19jcmVhdGVfaW50ZWdyYXRpb25fcmVxdWVzdD10cl9saW5rX2NyZWF0ZV9pbnRlZ3JhdGlvbl9yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiAiVFJMaW5rQ3VzdG9tZXJJbnRlZ3JhdGlvblJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfY3JlYXRlX3RyX2xpbmtfaW50ZWdyYXRpb25fc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdHJfbGlua19jcmVhdGVfaW50ZWdyYXRpb25fcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHRyX2xpbmtfY3JlYXRlX2ludGVncmF0aW9uX3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHRyX2xpbmtfY3JlYXRlX2ludGVncmF0aW9uX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL2ludGVncmF0aW9uJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGNyZWF0ZV90cl9saW5rX3RybSgKICAgICAgICBzZWxmLAogICAgICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iQ3VzdG9tZXIgaW50ZWdyYXRpb24gdW5pcXVlIGlkZW50aWZpZXIiKV0sCiAgICAgICAgdHJfbGlua19jcmVhdGVfdHJtX3JlcXVlc3Q6IFRSTGlua0NyZWF0ZVRybVJlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVFJMaW5rVHJtSW5mb1Jlc3BvbnNlXV06CiAgICAgICAgIiIiQ3JlYXRlIFRyYXZlbCBSdWxlIE1lc3NhZ2UKCiAgICAgICAgQ3JlYXRlcyBhIG5ldyB0cmF2ZWwgcnVsZSBtZXNzYWdlIHdpdGggSVZNUzEwMS1jb21wbGlhbnQgUElJIGRhdGEuIEVuY3J5cHRzIHNlbnNpdGl2ZSBvcmlnaW5hdG9yIGFuZCBiZW5lZmljaWFyeSBpbmZvcm1hdGlvbiBiZWZvcmUgc2VuZGluZyB0byBwYXJ0bmVyLgoKICAgICAgICA6cGFyYW0gY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ6IEN1c3RvbWVyIGludGVncmF0aW9uIHVuaXF1ZSBpZGVudGlmaWVyIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZDogc3RyCiAgICAgICAgOnBhcmFtIHRyX2xpbmtfY3JlYXRlX3RybV9yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdHJfbGlua19jcmVhdGVfdHJtX3JlcXVlc3Q6IFRSTGlua0NyZWF0ZVRybVJlcXVlc3QKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iY3JlYXRlX3RyX2xpbmtfdHJtIiwgcGFyYW1fbmFtZT0iY3VzdG9tZXJfaW50ZWdyYXRpb25faWQiLCBwYXJhbV92YWx1ZT1jdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fY3JlYXRlX3RyX2xpbmtfdHJtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ9Y3VzdG9tZXJfaW50ZWdyYXRpb25faWQsCiAgICAgICAgICAgIHRyX2xpbmtfY3JlYXRlX3RybV9yZXF1ZXN0PXRyX2xpbmtfY3JlYXRlX3RybV9yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiAiVFJMaW5rVHJtSW5mb1Jlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfY3JlYXRlX3RyX2xpbmtfdHJtX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkLAogICAgICAgIHRyX2xpbmtfY3JlYXRlX3RybV9yZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY3VzdG9tZXJJbnRlZ3JhdGlvbklkJ10gPSBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHRyX2xpbmtfY3JlYXRlX3RybV9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSB0cl9saW5rX2NyZWF0ZV90cm1fcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc2NyZWVuaW5nL3RybGluay9jdXN0b21lcnMvaW50ZWdyYXRpb24ve2N1c3RvbWVySW50ZWdyYXRpb25JZH0vdHJtJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGRlbGV0ZV90cl9saW5rX2N1c3RvbWVyKAogICAgICAgIHNlbGYsCiAgICAgICAgY3VzdG9tZXJfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJDdXN0b21lciB1bmlxdWUgaWRlbnRpZmllciIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW05vbmVdXToKICAgICAgICAiIiJEZWxldGUgY3VzdG9tZXIKCiAgICAgICAgRGVsZXRlcyBhIGN1c3RvbWVyIGFuZCBhbGwgYXNzb2NpYXRlZCBpbnRlZ3JhdGlvbnMuIFRoaXMgYWN0aW9uIGNhbm5vdCBiZSB1bmRvbmUuCgogICAgICAgIDpwYXJhbSBjdXN0b21lcl9pZDogQ3VzdG9tZXIgdW5pcXVlIGlkZW50aWZpZXIgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGN1c3RvbWVyX2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZGVsZXRlX3RyX2xpbmtfY3VzdG9tZXIiLCBwYXJhbV9uYW1lPSJjdXN0b21lcl9pZCIsIHBhcmFtX3ZhbHVlPWN1c3RvbWVyX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9kZWxldGVfdHJfbGlua19jdXN0b21lcl9zZXJpYWxpemUoCiAgICAgICAgICAgIGN1c3RvbWVyX2lkPWN1c3RvbWVyX2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDQnOiBOb25lLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9kZWxldGVfdHJfbGlua19jdXN0b21lcl9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBjdXN0b21lcl9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgY3VzdG9tZXJfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY3VzdG9tZXJJZCddID0gY3VzdG9tZXJfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0RFTEVURScsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zY3JlZW5pbmcvdHJsaW5rL2N1c3RvbWVycy97Y3VzdG9tZXJJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZGlzY29ubmVjdF90cl9saW5rX2ludGVncmF0aW9uKAogICAgICAgIHNlbGYsCiAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJDdXN0b21lciBpbnRlZ3JhdGlvbiB1bmlxdWUgaWRlbnRpZmllciIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW05vbmVdXToKICAgICAgICAiIiJEaXNjb25uZWN0IGN1c3RvbWVyIGludGVncmF0aW9uCgogICAgICAgIERpc2Nvbm5lY3RzIHRoZSBpbnRlZ3JhdGlvbiBmb3IgdGhlIGF1dGhlbnRpY2F0ZWQgd29ya3NwYWNlICh0ZW5hbnQpOiByZW1vdmVzIHN0b3JlZCBjcmVkZW50aWFscyBhbmQgZGVsZXRlcyB0aGlzIHRlbmFudCdzIGludGVncmF0aW9uIHJlY29yZC4gVGhlIG9wZXJhdGlvbiBpcyBzY29wZWQgdG8gdGhlIGNhbGxlcidzIHRlbmFudDsgaXQgZG9lcyBub3QgcmVtb3ZlIHBhcnRuZXItc2lkZSBzdGF0ZSBmb3Igb3RoZXIgd29ya3NwYWNlcyB0aGF0IHJldXNlIHRoZSBzYW1lIGxvZ2ljYWwgY3VzdG9tZXIgaW50ZWdyYXRpb24uIFRoZSByZWNvcmQgY2Fubm90IGJlIHJlY292ZXJlZCBhZnRlciBkZWxldGUuCgogICAgICAgIDpwYXJhbSBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZDogQ3VzdG9tZXIgaW50ZWdyYXRpb24gdW5pcXVlIGlkZW50aWZpZXIgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZGlzY29ubmVjdF90cl9saW5rX2ludGVncmF0aW9uIiwgcGFyYW1fbmFtZT0iY3VzdG9tZXJfaW50ZWdyYXRpb25faWQiLCBwYXJhbV92YWx1ZT1jdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZGlzY29ubmVjdF90cl9saW5rX2ludGVncmF0aW9uX3NlcmlhbGl6ZSgKICAgICAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ9Y3VzdG9tZXJfaW50ZWdyYXRpb25faWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwNCc6IE5vbmUsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2Rpc2Nvbm5lY3RfdHJfbGlua19pbnRlZ3JhdGlvbl9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY3VzdG9tZXJJbnRlZ3JhdGlvbklkJ10gPSBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nREVMRVRFJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL2ludGVncmF0aW9uL3tjdXN0b21lckludGVncmF0aW9uSWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF90cl9saW5rX2N1c3RvbWVyX2J5X2lkKAogICAgICAgIHNlbGYsCiAgICAgICAgY3VzdG9tZXJfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJDdXN0b21lciB1bmlxdWUgaWRlbnRpZmllciIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1RSTGlua0N1c3RvbWVyUmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgY3VzdG9tZXIgYnkgSUQKCiAgICAgICAgUmV0cmlldmVzIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgY3VzdG9tZXIgYnkgdGhlaXIgdW5pcXVlIGlkZW50aWZpZXIuCgogICAgICAgIDpwYXJhbSBjdXN0b21lcl9pZDogQ3VzdG9tZXIgdW5pcXVlIGlkZW50aWZpZXIgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGN1c3RvbWVyX2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3RyX2xpbmtfY3VzdG9tZXJfYnlfaWQiLCBwYXJhbV9uYW1lPSJjdXN0b21lcl9pZCIsIHBhcmFtX3ZhbHVlPWN1c3RvbWVyX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfdHJfbGlua19jdXN0b21lcl9ieV9pZF9zZXJpYWxpemUoCiAgICAgICAgICAgIGN1c3RvbWVyX2lkPWN1c3RvbWVyX2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiVFJMaW5rQ3VzdG9tZXJSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF90cl9saW5rX2N1c3RvbWVyX2J5X2lkX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGN1c3RvbWVyX2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBjdXN0b21lcl9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydjdXN0b21lcklkJ10gPSBjdXN0b21lcl9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL3tjdXN0b21lcklkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfdHJfbGlua19jdXN0b21lcl9pbnRlZ3JhdGlvbl9ieV9pZCgKICAgICAgICBzZWxmLAogICAgICAgIGN1c3RvbWVyX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iQ3VzdG9tZXIgdW5pcXVlIGlkZW50aWZpZXIiKV0sCiAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJDdXN0b21lciBpbnRlZ3JhdGlvbiB1bmlxdWUgaWRlbnRpZmllciIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1RSTGlua0N1c3RvbWVySW50ZWdyYXRpb25SZXNwb25zZV1dOgogICAgICAgICIiIkdldCBjdXN0b21lciBpbnRlZ3JhdGlvbiBieSBJRAoKICAgICAgICBSZXRyaWV2ZXMgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjdXN0b21lciBpbnRlZ3JhdGlvbi4KCiAgICAgICAgOnBhcmFtIGN1c3RvbWVyX2lkOiBDdXN0b21lciB1bmlxdWUgaWRlbnRpZmllciAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY3VzdG9tZXJfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZDogQ3VzdG9tZXIgaW50ZWdyYXRpb24gdW5pcXVlIGlkZW50aWZpZXIgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3RyX2xpbmtfY3VzdG9tZXJfaW50ZWdyYXRpb25fYnlfaWQiLCBwYXJhbV9uYW1lPSJjdXN0b21lcl9pZCIsIHBhcmFtX3ZhbHVlPWN1c3RvbWVyX2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3RyX2xpbmtfY3VzdG9tZXJfaW50ZWdyYXRpb25fYnlfaWQiLCBwYXJhbV9uYW1lPSJjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCIsIHBhcmFtX3ZhbHVlPWN1c3RvbWVyX2ludGVncmF0aW9uX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfdHJfbGlua19jdXN0b21lcl9pbnRlZ3JhdGlvbl9ieV9pZF9zZXJpYWxpemUoCiAgICAgICAgICAgIGN1c3RvbWVyX2lkPWN1c3RvbWVyX2lkLAogICAgICAgICAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZD1jdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlRSTGlua0N1c3RvbWVySW50ZWdyYXRpb25SZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF90cl9saW5rX2N1c3RvbWVyX2ludGVncmF0aW9uX2J5X2lkX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGN1c3RvbWVyX2lkLAogICAgICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBjdXN0b21lcl9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydjdXN0b21lcklkJ10gPSBjdXN0b21lcl9pZAogICAgICAgIGlmIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2N1c3RvbWVySW50ZWdyYXRpb25JZCddID0gY3VzdG9tZXJfaW50ZWdyYXRpb25faWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zY3JlZW5pbmcvdHJsaW5rL2N1c3RvbWVycy97Y3VzdG9tZXJJZH0vaW50ZWdyYXRpb25zL3tjdXN0b21lckludGVncmF0aW9uSWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF90cl9saW5rX2N1c3RvbWVyX2ludGVncmF0aW9ucygKICAgICAgICBzZWxmLAogICAgICAgIGN1c3RvbWVyX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iQ3VzdG9tZXIgdW5pcXVlIGlkZW50aWZpZXIiKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtMaXN0W1RSTGlua0N1c3RvbWVySW50ZWdyYXRpb25SZXNwb25zZV1dXToKICAgICAgICAiIiJHZXQgY3VzdG9tZXIgaW50ZWdyYXRpb25zCgogICAgICAgIFJldHJpZXZlcyBhbGwgVFJTdXBwb3J0IGludGVncmF0aW9ucyBmb3IgYSBzcGVjaWZpYyBjdXN0b21lci4gUmV0dXJucyBhIGxpc3Qgb2YgcGFydG5lciBpbnRlZ3JhdGlvbnMgY29uZmlndXJlZCBmb3IgVHJhdmVsIFJ1bGUgY29tcGxpYW5jZS4KCiAgICAgICAgOnBhcmFtIGN1c3RvbWVyX2lkOiBDdXN0b21lciB1bmlxdWUgaWRlbnRpZmllciAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY3VzdG9tZXJfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfdHJfbGlua19jdXN0b21lcl9pbnRlZ3JhdGlvbnMiLCBwYXJhbV9uYW1lPSJjdXN0b21lcl9pZCIsIHBhcmFtX3ZhbHVlPWN1c3RvbWVyX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfdHJfbGlua19jdXN0b21lcl9pbnRlZ3JhdGlvbnNfc2VyaWFsaXplKAogICAgICAgICAgICBjdXN0b21lcl9pZD1jdXN0b21lcl9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkxpc3RbVFJMaW5rQ3VzdG9tZXJJbnRlZ3JhdGlvblJlc3BvbnNlXSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF90cl9saW5rX2N1c3RvbWVyX2ludGVncmF0aW9uc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBjdXN0b21lcl9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgY3VzdG9tZXJfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY3VzdG9tZXJJZCddID0gY3VzdG9tZXJfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zY3JlZW5pbmcvdHJsaW5rL2N1c3RvbWVycy97Y3VzdG9tZXJJZH0vaW50ZWdyYXRpb25zJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF90cl9saW5rX2N1c3RvbWVycygKICAgICAgICBzZWxmLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTGlzdFtUUkxpbmtDdXN0b21lclJlc3BvbnNlXV1dOgogICAgICAgICIiIkdldCBhbGwgY3VzdG9tZXJzCgogICAgICAgIFJldHJpZXZlcyBhbGwgY3VzdG9tZXJzIGFzc29jaWF0ZWQgd2l0aCB0aGUgYXV0aGVudGljYXRlZCB0ZW5hbnQuIFJldHVybnMgYSBsaXN0IG9mIGxlZ2FsIGVudGl0aWVzIGNvbmZpZ3VyZWQgZm9yIFRyYXZlbCBSdWxlIGNvbXBsaWFuY2UuCgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF90cl9saW5rX2N1c3RvbWVyc19zZXJpYWxpemUoCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJMaXN0W1RSTGlua0N1c3RvbWVyUmVzcG9uc2VdIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3RyX2xpbmtfY3VzdG9tZXJzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zY3JlZW5pbmcvdHJsaW5rL2N1c3RvbWVycycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfdHJfbGlua19pbnRlZ3JhdGlvbl9wdWJsaWNfa2V5KAogICAgICAgIHNlbGYsCiAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJDdXN0b21lciBpbnRlZ3JhdGlvbiB1bmlxdWUgaWRlbnRpZmllciIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1RSTGlua1B1YmxpY0tleVJlc3BvbnNlXV06CiAgICAgICAgIiIiR2V0IHB1YmxpYyBrZXkgZm9yIFBJSSBlbmNyeXB0aW9uCgogICAgICAgIFJldHJpZXZlcyB0aGUgcGFydG5lcidzIHB1YmxpYyBrZXkgaW4gSldLIGZvcm1hdCBmb3IgZW5jcnlwdGluZyBQSUkgZGF0YSBpbiBUcmF2ZWwgUnVsZSBNZXNzYWdlcy4gVXNlIHRoaXMga2V5IHRvIGVuY3J5cHQgc2Vuc2l0aXZlIG9yaWdpbmF0b3IgYW5kIGJlbmVmaWNpYXJ5IGluZm9ybWF0aW9uIGJlZm9yZSBzZW5kaW5nIFRyYXZlbCBSdWxlIG1lc3NhZ2VzLgoKICAgICAgICA6cGFyYW0gY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ6IEN1c3RvbWVyIGludGVncmF0aW9uIHVuaXF1ZSBpZGVudGlmaWVyIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF90cl9saW5rX2ludGVncmF0aW9uX3B1YmxpY19rZXkiLCBwYXJhbV9uYW1lPSJjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCIsIHBhcmFtX3ZhbHVlPWN1c3RvbWVyX2ludGVncmF0aW9uX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfdHJfbGlua19pbnRlZ3JhdGlvbl9wdWJsaWNfa2V5X3NlcmlhbGl6ZSgKICAgICAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ9Y3VzdG9tZXJfaW50ZWdyYXRpb25faWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJUUkxpbmtQdWJsaWNLZXlSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF90cl9saW5rX2ludGVncmF0aW9uX3B1YmxpY19rZXlfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2N1c3RvbWVySW50ZWdyYXRpb25JZCddID0gY3VzdG9tZXJfaW50ZWdyYXRpb25faWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zY3JlZW5pbmcvdHJsaW5rL2N1c3RvbWVycy9pbnRlZ3JhdGlvbi97Y3VzdG9tZXJJbnRlZ3JhdGlvbklkfS9wdWJsaWNfa2V5JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF90cl9saW5rX3BhcnRuZXJzKAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtMaXN0W1RSTGlua1BhcnRuZXJSZXNwb25zZV1dXToKICAgICAgICAiIiJMaXN0IGF2YWlsYWJsZSBUUlN1cHBvcnQgcGFydG5lcnMKCiAgICAgICAgUmV0cmlldmVzIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIFRyYXZlbCBSdWxlIFN1cHBvcnQgaW50ZWdyYXRpb24gcGFydG5lcnMuIFBhcnRuZXJzIHByb3ZpZGUgVHJhdmVsIFJ1bGUgY29tcGxpYW5jZSBzZXJ2aWNlcyBzdWNoIGFzIFZBU1AgZGlzY292ZXJ5LCBUUk0gZXhjaGFuZ2UsIGFuZCBQSUkgZW5jcnlwdGlvbi4KCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X3RyX2xpbmtfcGFydG5lcnNfc2VyaWFsaXplKAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiTGlzdFtUUkxpbmtQYXJ0bmVyUmVzcG9uc2VdIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3RyX2xpbmtfcGFydG5lcnNfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3NjcmVlbmluZy90cmxpbmsvcGFydG5lcnMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X3RyX2xpbmtfcG9saWN5KAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtUUkxpbmtQb2xpY3lSZXNwb25zZV1dOgogICAgICAgICIiIkdldCBUUkxpbmsgcG9saWN5CgogICAgICAgIFJldHJpZXZlcyB0aGUgY29tcGxldGUgVFJTdXBwb3J0IHBvbGljeSBmb3IgdGhlIGF1dGhlbnRpY2F0ZWQgdGVuYW50LCBpbmNsdWRpbmcgcHJlLXNjcmVlbmluZyBydWxlcywgcG9zdC1zY3JlZW5pbmcgcnVsZXMsIGFuZCBtaXNzaW5nIFRSTSBydWxlcy4gUHJlLXNjcmVlbmluZyBydWxlcyBkZXRlcm1pbmUgd2hldGhlciB0cmFuc2FjdGlvbnMgc2hvdWxkIGJlIHNjcmVlbmVkLiBQb3N0LXNjcmVlbmluZyBydWxlcyBkZXRlcm1pbmUgYWN0aW9ucyBiYXNlZCBvbiBzY3JlZW5pbmcgcmVzdWx0cy4gTWlzc2luZyBUUk0gcnVsZXMgaGFuZGxlIGNhc2VzIHdoZW4gc2NyZWVuaW5nIGRhdGEgaXMgdW5hdmFpbGFibGUuCgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF90cl9saW5rX3BvbGljeV9zZXJpYWxpemUoCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJUUkxpbmtQb2xpY3lSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF90cl9saW5rX3BvbGljeV9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc2NyZWVuaW5nL3RybGluay9wb2xpY3knLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X3RyX2xpbmtfc3VwcG9ydGVkX2Fzc2V0KAogICAgICAgIHNlbGYsCiAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJDdXN0b21lciBpbnRlZ3JhdGlvbiB1bmlxdWUgaWRlbnRpZmllciIpXSwKICAgICAgICBhc3NldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IkZpcmVibG9ja3MgYXNzZXQgSUQiKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtUUkxpbmtHZXRTdXBwb3J0ZWRBc3NldFJlc3BvbnNlXV06CiAgICAgICAgIiIiR2V0IHN1cHBvcnRlZCBhc3NldCBieSBJRAoKICAgICAgICBSZXRyaWV2ZXMgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBhc3NldCBieSBpdHMgRmlyZWJsb2NrcyBhc3NldCBJRC4gUmV0dXJucyB0aGUgdHJhbnNmb3JtZWQgRmlyZWJsb2NrcyBhc3NldCBkYXRhLCByYXcgcGFydG5lciByZXNwb25zZSwgYW5kIHN1cHBvcnQgc3RhdHVzLgoKICAgICAgICA6cGFyYW0gY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ6IEN1c3RvbWVyIGludGVncmF0aW9uIHVuaXF1ZSBpZGVudGlmaWVyIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZDogc3RyCiAgICAgICAgOnBhcmFtIGFzc2V0X2lkOiBGaXJlYmxvY2tzIGFzc2V0IElEIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhc3NldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF90cl9saW5rX3N1cHBvcnRlZF9hc3NldCIsIHBhcmFtX25hbWU9ImN1c3RvbWVyX2ludGVncmF0aW9uX2lkIiwgcGFyYW1fdmFsdWU9Y3VzdG9tZXJfaW50ZWdyYXRpb25faWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfdHJfbGlua19zdXBwb3J0ZWRfYXNzZXQiLCBwYXJhbV9uYW1lPSJhc3NldF9pZCIsIHBhcmFtX3ZhbHVlPWFzc2V0X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfdHJfbGlua19zdXBwb3J0ZWRfYXNzZXRfc2VyaWFsaXplKAogICAgICAgICAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZD1jdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCwKICAgICAgICAgICAgYXNzZXRfaWQ9YXNzZXRfaWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJUUkxpbmtHZXRTdXBwb3J0ZWRBc3NldFJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3RyX2xpbmtfc3VwcG9ydGVkX2Fzc2V0X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkLAogICAgICAgIGFzc2V0X2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydjdXN0b21lckludGVncmF0aW9uSWQnXSA9IGN1c3RvbWVyX2ludGVncmF0aW9uX2lkCiAgICAgICAgaWYgYXNzZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYXNzZXRJZCddID0gYXNzZXRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zY3JlZW5pbmcvdHJsaW5rL2N1c3RvbWVycy9pbnRlZ3JhdGlvbi97Y3VzdG9tZXJJbnRlZ3JhdGlvbklkfS9hc3NldHMve2Fzc2V0SWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF90cl9saW5rX3RybV9ieV9pZCgKICAgICAgICBzZWxmLAogICAgICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iQ3VzdG9tZXIgaW50ZWdyYXRpb24gdW5pcXVlIGlkZW50aWZpZXIiKV0sCiAgICAgICAgdHJtX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVHJhdmVsIFJ1bGUgTWVzc2FnZSB1bmlxdWUgaWRlbnRpZmllciIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1RSTGlua1RybUluZm9SZXNwb25zZV1dOgogICAgICAgICIiIkdldCBUUk0gYnkgSUQKCiAgICAgICAgUmV0cmlldmVzIGEgVHJhdmVsIFJ1bGUgTWVzc2FnZSBieSBpdHMgdW5pcXVlIGlkZW50aWZpZXIgZnJvbSB0aGUgcGFydG5lciBwcm92aWRlci4gUmV0dXJucyBmdWxsIFRSTSBkZXRhaWxzIGluY2x1ZGluZyBzdGF0dXMsIElWTVMxMDEgZGF0YSwgYW5kIHRyYW5zYWN0aW9uIGluZm9ybWF0aW9uLgoKICAgICAgICA6cGFyYW0gY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ6IEN1c3RvbWVyIGludGVncmF0aW9uIHVuaXF1ZSBpZGVudGlmaWVyIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZDogc3RyCiAgICAgICAgOnBhcmFtIHRybV9pZDogVHJhdmVsIFJ1bGUgTWVzc2FnZSB1bmlxdWUgaWRlbnRpZmllciAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdHJtX2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3RyX2xpbmtfdHJtX2J5X2lkIiwgcGFyYW1fbmFtZT0iY3VzdG9tZXJfaW50ZWdyYXRpb25faWQiLCBwYXJhbV92YWx1ZT1jdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF90cl9saW5rX3RybV9ieV9pZCIsIHBhcmFtX25hbWU9InRybV9pZCIsIHBhcmFtX3ZhbHVlPXRybV9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X3RyX2xpbmtfdHJtX2J5X2lkX3NlcmlhbGl6ZSgKICAgICAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ9Y3VzdG9tZXJfaW50ZWdyYXRpb25faWQsCiAgICAgICAgICAgIHRybV9pZD10cm1faWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJUUkxpbmtUcm1JbmZvUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfdHJfbGlua190cm1fYnlfaWRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQsCiAgICAgICAgdHJtX2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydjdXN0b21lckludGVncmF0aW9uSWQnXSA9IGN1c3RvbWVyX2ludGVncmF0aW9uX2lkCiAgICAgICAgaWYgdHJtX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3RybUlkJ10gPSB0cm1faWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zY3JlZW5pbmcvdHJsaW5rL2N1c3RvbWVycy9pbnRlZ3JhdGlvbi97Y3VzdG9tZXJJbnRlZ3JhdGlvbklkfS90cm0ve3RybUlkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfdHJfbGlua192YXNwX2J5X2lkKAogICAgICAgIHNlbGYsCiAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJDdXN0b21lciBpbnRlZ3JhdGlvbiB1bmlxdWUgaWRlbnRpZmllciIpXSwKICAgICAgICB2YXNwX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVkFTUCB1bmlxdWUgaWRlbnRpZmllciAoRElEIGZvcm1hdCkiKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtUUkxpbmtWYXNwRHRvXV06CiAgICAgICAgIiIiR2V0IFZBU1AgYnkgSUQKCiAgICAgICAgUmV0cmlldmVzIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgVkFTUCBieSBpdHMgdW5pcXVlIGlkZW50aWZpZXIuIFJldHVybnMgVkFTUCBkZXRhaWxzIGluY2x1ZGluZyBwdWJsaWMga2V5IGlmIGF2YWlsYWJsZS4KCiAgICAgICAgOnBhcmFtIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkOiBDdXN0b21lciBpbnRlZ3JhdGlvbiB1bmlxdWUgaWRlbnRpZmllciAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ6IHN0cgogICAgICAgIDpwYXJhbSB2YXNwX2lkOiBWQVNQIHVuaXF1ZSBpZGVudGlmaWVyIChESUQgZm9ybWF0KSAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdmFzcF9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF90cl9saW5rX3Zhc3BfYnlfaWQiLCBwYXJhbV9uYW1lPSJjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCIsIHBhcmFtX3ZhbHVlPWN1c3RvbWVyX2ludGVncmF0aW9uX2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3RyX2xpbmtfdmFzcF9ieV9pZCIsIHBhcmFtX25hbWU9InZhc3BfaWQiLCBwYXJhbV92YWx1ZT12YXNwX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfdHJfbGlua192YXNwX2J5X2lkX3NlcmlhbGl6ZSgKICAgICAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ9Y3VzdG9tZXJfaW50ZWdyYXRpb25faWQsCiAgICAgICAgICAgIHZhc3BfaWQ9dmFzcF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlRSTGlua1Zhc3BEdG8iLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfdHJfbGlua192YXNwX2J5X2lkX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkLAogICAgICAgIHZhc3BfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2N1c3RvbWVySW50ZWdyYXRpb25JZCddID0gY3VzdG9tZXJfaW50ZWdyYXRpb25faWQKICAgICAgICBpZiB2YXNwX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3Zhc3BJZCddID0gdmFzcF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL2ludGVncmF0aW9uL3tjdXN0b21lckludGVncmF0aW9uSWR9L3Zhc3BzL3t2YXNwSWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGxpc3RfdHJfbGlua19zdXBwb3J0ZWRfYXNzZXRzKAogICAgICAgIHNlbGYsCiAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJDdXN0b21lciBpbnRlZ3JhdGlvbiB1bmlxdWUgaWRlbnRpZmllciIpXSwKICAgICAgICBwYWdlX3NpemU6IEFubm90YXRlZFtPcHRpb25hbFtBbm5vdGF0ZWRbaW50LCBGaWVsZChsZT0xMDAsIHN0cmljdD1UcnVlLCBnZT0xKV1dLCBGaWVsZChkZXNjcmlwdGlvbj0iTnVtYmVyIG9mIHJlc3VsdHMgcGVyIHBhZ2UgKG1heCAxMDApIildID0gTm9uZSwKICAgICAgICBwYWdlX2N1cnNvcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJDdXJzb3IgZm9yIHBhZ2luYXRpb24gKGZyb20gcHJldmlvdXMgcmVzcG9uc2UpIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1RSTGlua0Fzc2V0c0xpc3RQYWdlZFJlc3BvbnNlXV06CiAgICAgICAgIiIiTGlzdCBzdXBwb3J0ZWQgYXNzZXRzCgogICAgICAgIFJldHJpZXZlcyBhIHBhZ2luYXRlZCBsaXN0IG9mIGFzc2V0cyBzdXBwb3J0ZWQgYnkgdGhlIHBhcnRuZXIgaW50ZWdyYXRpb24uIEluY2x1ZGVzIGEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHBhcnRuZXIgY2FuIGhhbmRsZSBhc3NldHMgbm90IGV4cGxpY2l0bHkgbGlzdGVkLiBTdXBwb3J0cyBjdXJzb3ItYmFzZWQgcGFnaW5hdGlvbi4KCiAgICAgICAgOnBhcmFtIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkOiBDdXN0b21lciBpbnRlZ3JhdGlvbiB1bmlxdWUgaWRlbnRpZmllciAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ6IHN0cgogICAgICAgIDpwYXJhbSBwYWdlX3NpemU6IE51bWJlciBvZiByZXN1bHRzIHBlciBwYWdlIChtYXggMTAwKQogICAgICAgIDp0eXBlIHBhZ2Vfc2l6ZTogaW50CiAgICAgICAgOnBhcmFtIHBhZ2VfY3Vyc29yOiBDdXJzb3IgZm9yIHBhZ2luYXRpb24gKGZyb20gcHJldmlvdXMgcmVzcG9uc2UpCiAgICAgICAgOnR5cGUgcGFnZV9jdXJzb3I6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJsaXN0X3RyX2xpbmtfc3VwcG9ydGVkX2Fzc2V0cyIsIHBhcmFtX25hbWU9ImN1c3RvbWVyX2ludGVncmF0aW9uX2lkIiwgcGFyYW1fdmFsdWU9Y3VzdG9tZXJfaW50ZWdyYXRpb25faWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2xpc3RfdHJfbGlua19zdXBwb3J0ZWRfYXNzZXRzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ9Y3VzdG9tZXJfaW50ZWdyYXRpb25faWQsCiAgICAgICAgICAgIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsCiAgICAgICAgICAgIHBhZ2VfY3Vyc29yPXBhZ2VfY3Vyc29yLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiVFJMaW5rQXNzZXRzTGlzdFBhZ2VkUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9saXN0X3RyX2xpbmtfc3VwcG9ydGVkX2Fzc2V0c19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCwKICAgICAgICBwYWdlX3NpemUsCiAgICAgICAgcGFnZV9jdXJzb3IsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2N1c3RvbWVySW50ZWdyYXRpb25JZCddID0gY3VzdG9tZXJfaW50ZWdyYXRpb25faWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiBwYWdlX3NpemUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VTaXplJywgcGFnZV9zaXplKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgcGFnZV9jdXJzb3IgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VDdXJzb3InLCBwYWdlX2N1cnNvcikpCiAgICAgICAgICAgIAogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3NjcmVlbmluZy90cmxpbmsvY3VzdG9tZXJzL2ludGVncmF0aW9uL3tjdXN0b21lckludGVncmF0aW9uSWR9L2Fzc2V0cycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBsaXN0X3RyX2xpbmtfdmFzcHMoCiAgICAgICAgc2VsZiwKICAgICAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IkN1c3RvbWVyIGludGVncmF0aW9uIHVuaXF1ZSBpZGVudGlmaWVyIildLAogICAgICAgIHBhZ2Vfc2l6ZTogQW5ub3RhdGVkW09wdGlvbmFsW0Fubm90YXRlZFtpbnQsIEZpZWxkKGxlPTEwMCwgc3RyaWN0PVRydWUsIGdlPTEpXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJOdW1iZXIgb2YgcmVzdWx0cyBwZXIgcGFnZSAobWF4IDEwMCkiKV0gPSBOb25lLAogICAgICAgIHBhZ2VfY3Vyc29yOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkN1cnNvciBmb3IgcGFnaW5hdGlvbiAoZnJvbSBwcmV2aW91cyByZXNwb25zZSkiKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVFJMaW5rQVBJUGFnZWRSZXNwb25zZV1dOgogICAgICAgICIiIkxpc3QgVkFTUHMKCiAgICAgICAgUmV0cmlldmVzIGEgcGFnaW5hdGVkIGxpc3Qgb2YgVkFTUHMgKFZpcnR1YWwgQXNzZXQgU2VydmljZSBQcm92aWRlcnMpIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSBwYXJ0bmVyIGludGVncmF0aW9uLiBTdXBwb3J0cyBjdXJzb3ItYmFzZWQgcGFnaW5hdGlvbi4KCiAgICAgICAgOnBhcmFtIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkOiBDdXN0b21lciBpbnRlZ3JhdGlvbiB1bmlxdWUgaWRlbnRpZmllciAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ6IHN0cgogICAgICAgIDpwYXJhbSBwYWdlX3NpemU6IE51bWJlciBvZiByZXN1bHRzIHBlciBwYWdlIChtYXggMTAwKQogICAgICAgIDp0eXBlIHBhZ2Vfc2l6ZTogaW50CiAgICAgICAgOnBhcmFtIHBhZ2VfY3Vyc29yOiBDdXJzb3IgZm9yIHBhZ2luYXRpb24gKGZyb20gcHJldmlvdXMgcmVzcG9uc2UpCiAgICAgICAgOnR5cGUgcGFnZV9jdXJzb3I6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJsaXN0X3RyX2xpbmtfdmFzcHMiLCBwYXJhbV9uYW1lPSJjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCIsIHBhcmFtX3ZhbHVlPWN1c3RvbWVyX2ludGVncmF0aW9uX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9saXN0X3RyX2xpbmtfdmFzcHNfc2VyaWFsaXplKAogICAgICAgICAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZD1jdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCwKICAgICAgICAgICAgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwKICAgICAgICAgICAgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJUUkxpbmtBUElQYWdlZFJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfbGlzdF90cl9saW5rX3Zhc3BzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkLAogICAgICAgIHBhZ2Vfc2l6ZSwKICAgICAgICBwYWdlX2N1cnNvciwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY3VzdG9tZXJJbnRlZ3JhdGlvbklkJ10gPSBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIHBhZ2Vfc2l6ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZVNpemUnLCBwYWdlX3NpemUpKQogICAgICAgICAgICAKICAgICAgICBpZiBwYWdlX2N1cnNvciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZUN1cnNvcicsIHBhZ2VfY3Vyc29yKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc2NyZWVuaW5nL3RybGluay9jdXN0b21lcnMvaW50ZWdyYXRpb24ve2N1c3RvbWVySW50ZWdyYXRpb25JZH0vdmFzcHMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgcmVkaXJlY3RfdHJfbGlua190cm0oCiAgICAgICAgc2VsZiwKICAgICAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IkN1c3RvbWVyIGludGVncmF0aW9uIHVuaXF1ZSBpZGVudGlmaWVyIildLAogICAgICAgIHRybV9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRyYXZlbCBSdWxlIE1lc3NhZ2UgdW5pcXVlIGlkZW50aWZpZXIiKV0sCiAgICAgICAgdHJfbGlua19yZWRpcmVjdF90cm1fcmVxdWVzdDogVFJMaW5rUmVkaXJlY3RUcm1SZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1RSTGlua1RybUluZm9SZXNwb25zZV1dOgogICAgICAgICIiIlJlZGlyZWN0IFRyYXZlbCBSdWxlIE1lc3NhZ2UKCiAgICAgICAgUmVkaXJlY3RzIGEgVHJhdmVsIFJ1bGUgTWVzc2FnZSB0byBhIHN1YnNpZGlhcnkgVkFTUC4gVGhpcyBvcGVyYXRpb24gcmVxdWlyZXMgdGhlIHBhcnRuZXIgdG8gc3VwcG9ydCBuZXN0ZWQgVkFTUHMgZnVuY3Rpb25hbGl0eS4KCiAgICAgICAgOnBhcmFtIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkOiBDdXN0b21lciBpbnRlZ3JhdGlvbiB1bmlxdWUgaWRlbnRpZmllciAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ6IHN0cgogICAgICAgIDpwYXJhbSB0cm1faWQ6IFRyYXZlbCBSdWxlIE1lc3NhZ2UgdW5pcXVlIGlkZW50aWZpZXIgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHRybV9pZDogc3RyCiAgICAgICAgOnBhcmFtIHRyX2xpbmtfcmVkaXJlY3RfdHJtX3JlcXVlc3Q6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB0cl9saW5rX3JlZGlyZWN0X3RybV9yZXF1ZXN0OiBUUkxpbmtSZWRpcmVjdFRybVJlcXVlc3QKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0icmVkaXJlY3RfdHJfbGlua190cm0iLCBwYXJhbV9uYW1lPSJjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCIsIHBhcmFtX3ZhbHVlPWN1c3RvbWVyX2ludGVncmF0aW9uX2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0icmVkaXJlY3RfdHJfbGlua190cm0iLCBwYXJhbV9uYW1lPSJ0cm1faWQiLCBwYXJhbV92YWx1ZT10cm1faWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3JlZGlyZWN0X3RyX2xpbmtfdHJtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ9Y3VzdG9tZXJfaW50ZWdyYXRpb25faWQsCiAgICAgICAgICAgIHRybV9pZD10cm1faWQsCiAgICAgICAgICAgIHRyX2xpbmtfcmVkaXJlY3RfdHJtX3JlcXVlc3Q9dHJfbGlua19yZWRpcmVjdF90cm1fcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAyJzogIlRSTGlua1RybUluZm9SZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3JlZGlyZWN0X3RyX2xpbmtfdHJtX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkLAogICAgICAgIHRybV9pZCwKICAgICAgICB0cl9saW5rX3JlZGlyZWN0X3RybV9yZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snY3VzdG9tZXJJbnRlZ3JhdGlvbklkJ10gPSBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZAogICAgICAgIGlmIHRybV9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd0cm1JZCddID0gdHJtX2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgdHJfbGlua19yZWRpcmVjdF90cm1fcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gdHJfbGlua19yZWRpcmVjdF90cm1fcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc2NyZWVuaW5nL3RybGluay9jdXN0b21lcnMvaW50ZWdyYXRpb24ve2N1c3RvbWVySW50ZWdyYXRpb25JZH0vdHJtL3t0cm1JZH0vcmVkaXJlY3QnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgc2V0X3RyX2xpbmtfZGVzdGluYXRpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCgKICAgICAgICBzZWxmLAogICAgICAgIHR4X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iRmlyZWJsb2NrcyB0cmFuc2FjdGlvbiB1bmlxdWUgaWRlbnRpZmllciIpXSwKICAgICAgICB0cl9saW5rX3NldF9kZXN0aW5hdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3JlcXVlc3Q6IFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2VdXToKICAgICAgICAiIiJTZXQgZGVzdGluYXRpb24gdHJhdmVsIHJ1bGUgbWVzc2FnZSBJRAoKICAgICAgICBBc3NvY2lhdGVzIGEgVHJhdmVsIFJ1bGUgTWVzc2FnZSBJRCB3aXRoIGEgc3BlY2lmaWMgZGVzdGluYXRpb24gaW4gYSBtdWx0aS1kZXN0aW5hdGlvbiBGaXJlYmxvY2tzIHRyYW5zYWN0aW9uLiBNYXRjaGVzIGRlc3RpbmF0aW9ucyBieSBhbW91bnQgYW5kIHBlZXIgcGF0aC4KCiAgICAgICAgOnBhcmFtIHR4X2lkOiBGaXJlYmxvY2tzIHRyYW5zYWN0aW9uIHVuaXF1ZSBpZGVudGlmaWVyIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB0eF9pZDogc3RyCiAgICAgICAgOnBhcmFtIHRyX2xpbmtfc2V0X2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVxdWVzdDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHRyX2xpbmtfc2V0X2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVxdWVzdDogVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJzZXRfdHJfbGlua19kZXN0aW5hdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkIiwgcGFyYW1fbmFtZT0idHhfaWQiLCBwYXJhbV92YWx1ZT10eF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fc2V0X3RyX2xpbmtfZGVzdGluYXRpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9zZXJpYWxpemUoCiAgICAgICAgICAgIHR4X2lkPXR4X2lkLAogICAgICAgICAgICB0cl9saW5rX3NldF9kZXN0aW5hdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3JlcXVlc3Q9dHJfbGlua19zZXRfZGVzdGluYXRpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9zZXRfdHJfbGlua19kZXN0aW5hdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHR4X2lkLAogICAgICAgIHRyX2xpbmtfc2V0X2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHR4X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3R4SWQnXSA9IHR4X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgdHJfbGlua19zZXRfZGVzdGluYXRpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSB0cl9saW5rX3NldF9kZXN0aW5hdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3NjcmVlbmluZy90cmxpbmsvdHJhbnNhY3Rpb24ve3R4SWR9L2Rlc3RpbmF0aW9uL3RyYXZlbF9ydWxlX21lc3NhZ2VfaWQnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgc2V0X3RyX2xpbmtfdHJhbnNhY3Rpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCgKICAgICAgICBzZWxmLAogICAgICAgIHR4X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iRmlyZWJsb2NrcyB0cmFuc2FjdGlvbiB1bmlxdWUgaWRlbnRpZmllciIpXSwKICAgICAgICB0cl9saW5rX3NldF90cmFuc2FjdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3JlcXVlc3Q6IFRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVFJMaW5rU2V0VHJhbnNhY3Rpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2VdXToKICAgICAgICAiIiJTZXQgdHJhbnNhY3Rpb24gdHJhdmVsIHJ1bGUgbWVzc2FnZSBJRAoKICAgICAgICBBc3NvY2lhdGVzIGEgVHJhdmVsIFJ1bGUgTWVzc2FnZSBJRCB3aXRoIGEgRmlyZWJsb2NrcyB0cmFuc2FjdGlvbi4gVGhpcyBsaW5rcyB0aGUgVFJNIGNvbXBsaWFuY2UgZGF0YSB0byB0aGUgYmxvY2tjaGFpbiB0cmFuc2FjdGlvbi4KCiAgICAgICAgOnBhcmFtIHR4X2lkOiBGaXJlYmxvY2tzIHRyYW5zYWN0aW9uIHVuaXF1ZSBpZGVudGlmaWVyIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB0eF9pZDogc3RyCiAgICAgICAgOnBhcmFtIHRyX2xpbmtfc2V0X3RyYW5zYWN0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVxdWVzdDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHRyX2xpbmtfc2V0X3RyYW5zYWN0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVxdWVzdDogVFJMaW5rU2V0VHJhbnNhY3Rpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJzZXRfdHJfbGlua190cmFuc2FjdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkIiwgcGFyYW1fbmFtZT0idHhfaWQiLCBwYXJhbV92YWx1ZT10eF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fc2V0X3RyX2xpbmtfdHJhbnNhY3Rpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9zZXJpYWxpemUoCiAgICAgICAgICAgIHR4X2lkPXR4X2lkLAogICAgICAgICAgICB0cl9saW5rX3NldF90cmFuc2FjdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3JlcXVlc3Q9dHJfbGlua19zZXRfdHJhbnNhY3Rpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiVFJMaW5rU2V0VHJhbnNhY3Rpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9zZXRfdHJfbGlua190cmFuc2FjdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHR4X2lkLAogICAgICAgIHRyX2xpbmtfc2V0X3RyYW5zYWN0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHR4X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3R4SWQnXSA9IHR4X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgdHJfbGlua19zZXRfdHJhbnNhY3Rpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSB0cl9saW5rX3NldF90cmFuc2FjdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3NjcmVlbmluZy90cmxpbmsvdHJhbnNhY3Rpb24ve3R4SWR9L3RyYXZlbF9ydWxlX21lc3NhZ2VfaWQnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgdGVzdF90cl9saW5rX2ludGVncmF0aW9uX2Nvbm5lY3Rpb24oCiAgICAgICAgc2VsZiwKICAgICAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IkN1c3RvbWVyIGludGVncmF0aW9uIHVuaXF1ZSBpZGVudGlmaWVyIildLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1RSTGlua1Rlc3RDb25uZWN0aW9uUmVzcG9uc2VdXToKICAgICAgICAiIiJUZXN0IGNvbm5lY3Rpb24KCiAgICAgICAgVGVzdHMgdGhlIGNvbm5lY3Rpb24gdG8gYSBjdXN0b21lciBpbnRlZ3JhdGlvbiBieSB2YWxpZGF0aW5nIHN0b3JlZCBjcmVkZW50aWFscyBhbmQgYXR0ZW1wdGluZyBjb21tdW5pY2F0aW9uIHdpdGggdGhlIFRyYXZlbCBSdWxlIHBhcnRuZXIuIFJldHVybnMgY29ubmVjdGlvbiBzdGF0dXMgYW5kIGFueSBlcnJvciBtZXNzYWdlcy4KCiAgICAgICAgOnBhcmFtIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkOiBDdXN0b21lciBpbnRlZ3JhdGlvbiB1bmlxdWUgaWRlbnRpZmllciAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ6IHN0cgogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJ0ZXN0X3RyX2xpbmtfaW50ZWdyYXRpb25fY29ubmVjdGlvbiIsIHBhcmFtX25hbWU9ImN1c3RvbWVyX2ludGVncmF0aW9uX2lkIiwgcGFyYW1fdmFsdWU9Y3VzdG9tZXJfaW50ZWdyYXRpb25faWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3Rlc3RfdHJfbGlua19pbnRlZ3JhdGlvbl9jb25uZWN0aW9uX3NlcmlhbGl6ZSgKICAgICAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ9Y3VzdG9tZXJfaW50ZWdyYXRpb25faWQsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJUUkxpbmtUZXN0Q29ubmVjdGlvblJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfdGVzdF90cl9saW5rX2ludGVncmF0aW9uX2Nvbm5lY3Rpb25fc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydjdXN0b21lckludGVncmF0aW9uSWQnXSA9IGN1c3RvbWVyX2ludGVncmF0aW9uX2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc2NyZWVuaW5nL3RybGluay9jdXN0b21lcnMvaW50ZWdyYXRpb24ve2N1c3RvbWVySW50ZWdyYXRpb25JZH0vdGVzdF9jb25uZWN0aW9uJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHVwZGF0ZV90cl9saW5rX2N1c3RvbWVyKAogICAgICAgIHNlbGYsCiAgICAgICAgY3VzdG9tZXJfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJDdXN0b21lciB1bmlxdWUgaWRlbnRpZmllciIpXSwKICAgICAgICB0cl9saW5rX3VwZGF0ZV9jdXN0b21lcl9yZXF1ZXN0OiBUUkxpbmtVcGRhdGVDdXN0b21lclJlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVFJMaW5rQ3VzdG9tZXJSZXNwb25zZV1dOgogICAgICAgICIiIlVwZGF0ZSBjdXN0b21lcgoKICAgICAgICBVcGRhdGVzIGFuIGV4aXN0aW5nIGN1c3RvbWVyJ3MgaW5mb3JtYXRpb24uIEFsbCBmaWVsZHMgYXJlIG9wdGlvbmFsIC0gb25seSBwcm92aWRlZCBmaWVsZHMgd2lsbCBiZSB1cGRhdGVkLgoKICAgICAgICA6cGFyYW0gY3VzdG9tZXJfaWQ6IEN1c3RvbWVyIHVuaXF1ZSBpZGVudGlmaWVyIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjdXN0b21lcl9pZDogc3RyCiAgICAgICAgOnBhcmFtIHRyX2xpbmtfdXBkYXRlX2N1c3RvbWVyX3JlcXVlc3Q6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB0cl9saW5rX3VwZGF0ZV9jdXN0b21lcl9yZXF1ZXN0OiBUUkxpbmtVcGRhdGVDdXN0b21lclJlcXVlc3QKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0idXBkYXRlX3RyX2xpbmtfY3VzdG9tZXIiLCBwYXJhbV9uYW1lPSJjdXN0b21lcl9pZCIsIHBhcmFtX3ZhbHVlPWN1c3RvbWVyX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl91cGRhdGVfdHJfbGlua19jdXN0b21lcl9zZXJpYWxpemUoCiAgICAgICAgICAgIGN1c3RvbWVyX2lkPWN1c3RvbWVyX2lkLAogICAgICAgICAgICB0cl9saW5rX3VwZGF0ZV9jdXN0b21lcl9yZXF1ZXN0PXRyX2xpbmtfdXBkYXRlX2N1c3RvbWVyX3JlcXVlc3QsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJUUkxpbmtDdXN0b21lclJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfdXBkYXRlX3RyX2xpbmtfY3VzdG9tZXJfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY3VzdG9tZXJfaWQsCiAgICAgICAgdHJfbGlua191cGRhdGVfY3VzdG9tZXJfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGN1c3RvbWVyX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2N1c3RvbWVySWQnXSA9IGN1c3RvbWVyX2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgdHJfbGlua191cGRhdGVfY3VzdG9tZXJfcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gdHJfbGlua191cGRhdGVfY3VzdG9tZXJfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BVVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zY3JlZW5pbmcvdHJsaW5rL2N1c3RvbWVycy97Y3VzdG9tZXJJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCg== \ No newline at end of file diff --git a/fireblocks/api/trading_beta_api.py b/fireblocks/api/trading_beta_api.py index 5abb1807..a7c7971c 100644 --- a/fireblocks/api/trading_beta_api.py +++ b/fireblocks/api/trading_beta_api.py @@ -1,840 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr, field_validator -from typing import List, Optional -from typing_extensions import Annotated -from fireblocks.models.create_order_request import CreateOrderRequest -from fireblocks.models.create_quote import CreateQuote -from fireblocks.models.get_orders_response import GetOrdersResponse -from fireblocks.models.order_details import OrderDetails -from fireblocks.models.order_status import OrderStatus -from fireblocks.models.providers_list_response import ProvidersListResponse -from fireblocks.models.quotes_response import QuotesResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class TradingBetaApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def create_order( - self, - create_order_request: CreateOrderRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[OrderDetails]]: - """Create an order - - Create an order to buy or sell an asset. If no source is given, an external source will be use. Note: These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Editor. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). - - :param create_order_request: (required) - :type create_order_request: CreateOrderRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_order_serialize( - create_order_request=create_order_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '202': "OrderDetails", - '400': "TradingErrorSchema", - '401': "TradingErrorSchema", - '403': "TradingErrorSchema", - '429': "TradingErrorSchema", - '5XX': "TradingErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_order_serialize( - self, - create_order_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_order_request is not None: - _body_params = create_order_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/trading/orders', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_quote( - self, - create_quote: CreateQuote, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[QuotesResponse]]: - """Create a quote - - Generate a time-limited quote for asset conversion, providing exchange rate and amount calculations. Note: These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Editor. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). - - :param create_quote: (required) - :type create_quote: CreateQuote - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_quote_serialize( - create_quote=create_quote, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "QuotesResponse", - '400': "TradingErrorSchema", - '401': "TradingErrorSchema", - '403': "TradingErrorSchema", - '429': "TradingErrorSchema", - '5XX': "TradingErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_quote_serialize( - self, - create_quote, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_quote is not None: - _body_params = create_quote - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/trading/quotes', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_order( - self, - order_id: Annotated[str, Field(min_length=1, strict=True, description="The ID of the order to fetch.")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[OrderDetails]]: - """Get order details - - Retrieve detailed information about a specific order by its ID. Note:These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). - - :param order_id: The ID of the order to fetch. (required) - :type order_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_order", param_name="order_id", param_value=order_id) - - _param = self._get_order_serialize( - order_id=order_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "OrderDetails", - '401': "TradingErrorSchema", - '403': "TradingErrorSchema", - '404': "TradingErrorSchema", - '429': "TradingErrorSchema", - '5XX': "TradingErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_order_serialize( - self, - order_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if order_id is not None: - _path_params['orderId'] = order_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/trading/orders/{orderId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_orders( - self, - page_size: Annotated[int, Field(le=100, strict=True, ge=1, description="pageSize for pagination.")], - page_cursor: Optional[Annotated[str, Field(min_length=1, strict=True)]] = None, - order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering (default DESC)")] = None, - account_id: Annotated[Optional[List[Annotated[str, Field(min_length=1, strict=True)]]], Field(description="Filter by accountId.")] = None, - provider_id: Annotated[Optional[List[Annotated[str, Field(min_length=1, strict=True)]]], Field(description="Filter by providerId.")] = None, - statuses: Annotated[Optional[List[OrderStatus]], Field(description="Filter by order status.")] = None, - start_time: Optional[Annotated[int, Field(strict=True, ge=0)]] = None, - end_time: Optional[Annotated[int, Field(strict=True, ge=0)]] = None, - asset_conversion_type: Optional[StrictStr] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GetOrdersResponse]]: - """Get orders - - Retrieve a paginated list of orders with optional filtering by account, provider, status, and time range. Note:These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). - - :param page_size: pageSize for pagination. (required) - :type page_size: int - :param page_cursor: - :type page_cursor: str - :param order: ASC / DESC ordering (default DESC) - :type order: str - :param account_id: Filter by accountId. - :type account_id: List[str] - :param provider_id: Filter by providerId. - :type provider_id: List[str] - :param statuses: Filter by order status. - :type statuses: List[OrderStatus] - :param start_time: - :type start_time: int - :param end_time: - :type end_time: int - :param asset_conversion_type: - :type asset_conversion_type: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_orders_serialize( - page_size=page_size, - page_cursor=page_cursor, - order=order, - account_id=account_id, - provider_id=provider_id, - statuses=statuses, - start_time=start_time, - end_time=end_time, - asset_conversion_type=asset_conversion_type, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GetOrdersResponse", - '401': "TradingErrorSchema", - '403': "TradingErrorSchema", - '429': "TradingErrorSchema", - '5XX': "TradingErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_orders_serialize( - self, - page_size, - page_cursor, - order, - account_id, - provider_id, - statuses, - start_time, - end_time, - asset_conversion_type, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - 'accountId': 'multi', - 'providerId': 'multi', - 'statuses': 'multi', - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if order is not None: - - _query_params.append(('order', order)) - - if account_id is not None: - - _query_params.append(('accountId', account_id)) - - if provider_id is not None: - - _query_params.append(('providerId', provider_id)) - - if statuses is not None: - - _query_params.append(('statuses', statuses)) - - if start_time is not None: - - _query_params.append(('startTime', start_time)) - - if end_time is not None: - - _query_params.append(('endTime', end_time)) - - if asset_conversion_type is not None: - - _query_params.append(('assetConversionType', asset_conversion_type)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/trading/orders', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_trading_providers( - self, - page_size: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Page size for pagination.")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Page cursor for pagination.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ProvidersListResponse]]: - """Get providers - - Retrieve a list of all available external providers supporting trading activities through the platform. **Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. **Endpoint Permission:** Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). - - :param page_size: Page size for pagination. - :type page_size: int - :param page_cursor: Page cursor for pagination. - :type page_cursor: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_trading_providers_serialize( - page_size=page_size, - page_cursor=page_cursor, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ProvidersListResponse", - '401': "TradingErrorSchema", - '403': "TradingErrorSchema", - '429': "TradingErrorSchema", - '5XX': "TradingErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_trading_providers_serialize( - self, - page_size, - page_cursor, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/trading/providers', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0ciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfb3JkZXJfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlT3JkZXJSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3F1b3RlIGltcG9ydCBDcmVhdGVRdW90ZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9vcmRlcnNfcmVzcG9uc2UgaW1wb3J0IEdldE9yZGVyc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMub3JkZXJfZGV0YWlscyBpbXBvcnQgT3JkZXJEZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMub3JkZXJfc3RhdHVzIGltcG9ydCBPcmRlclN0YXR1cwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnByb3ZpZGVyc19saXN0X3Jlc3BvbnNlIGltcG9ydCBQcm92aWRlcnNMaXN0UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5xdW90ZXNfcmVzcG9uc2UgaW1wb3J0IFF1b3Rlc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhZGluZ19wcm92aWRlcl9kZXRhaWxzIGltcG9ydCBUcmFkaW5nUHJvdmlkZXJEZXRhaWxzCgpmcm9tIGZpcmVibG9ja3MuYXBpX2NsaWVudCBpbXBvcnQgQXBpQ2xpZW50LCBSZXF1ZXN0U2VyaWFsaXplZApmcm9tIGZpcmVibG9ja3MuYXBpX3Jlc3BvbnNlIGltcG9ydCBBcGlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MucmVzdCBpbXBvcnQgUkVTVFJlc3BvbnNlVHlwZQpmcm9tIGZpcmVibG9ja3MudmFsaWRhdGlvbl91dGlscyBpbXBvcnQgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZwoKCmNsYXNzIFRyYWRpbmdCZXRhQXBpOgogICAgIiIiTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvcgogICAgUmVmOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gKCiAgICBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgYXBpX2NsaWVudD1Ob25lKSAtPiBOb25lOgogICAgICAgIGlmIGFwaV9jbGllbnQgaXMgTm9uZToKICAgICAgICAgICAgYXBpX2NsaWVudCA9IEFwaUNsaWVudC5nZXRfZGVmYXVsdCgpCiAgICAgICAgc2VsZi5hcGlfY2xpZW50ID0gYXBpX2NsaWVudAoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGNyZWF0ZV9vcmRlcigKICAgICAgICBzZWxmLAogICAgICAgIGNyZWF0ZV9vcmRlcl9yZXF1ZXN0OiBDcmVhdGVPcmRlclJlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbT3JkZXJEZXRhaWxzXV06CiAgICAgICAgIiIiQ3JlYXRlIGFuIG9yZGVyCgogICAgICAgIENyZWF0ZSBhbiBvcmRlciB0byBidXkgb3Igc2VsbCBhbiBhc3NldC4gSWYgbm8gc291cmNlIGlzIGdpdmVuLCBhbiBleHRlcm5hbCBzb3VyY2Ugd2lsbCBiZSB1c2UuICBOb3RlOiBUaGVzZSBlbmRwb2ludHMgYXJlIGN1cnJlbnRseSBpbiBiZXRhIGFuZCBtaWdodCBiZSBzdWJqZWN0IHRvIGNoYW5nZXMuICBJZiB5b3Ugd2FudCB0byBwYXJ0aWNpcGF0ZSBhbmQgbGVhcm4gbW9yZSBhYm91dCB0aGUgRmlyZWJsb2NrcyBUcmFkaW5nLCBwbGVhc2UgY29udGFjdCB5b3VyIEZpcmVibG9ja3MgQ3VzdG9tZXIgU3VjY2VzcyBNYW5hZ2VyIG9yIHNlbmQgYW4gZW1haWwgdG8gQ1NNQGZpcmVibG9ja3MuY29tLiAgRW5kcG9pbnQgUGVybWlzc2lvbjogT3duZXIsIEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBFZGl0b3IuICBGb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgZXJyb3IgY29kZXMgYW5kIHRyb3VibGVzaG9vdGluZywgcGxlYXNlIHJlZmVyIHRvIG91ciBbQVBJIEVycm9yIENvZGVzIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9yZWZlcmVuY2UvYXBpLWVycm9yLWNvZGVzKS4KCiAgICAgICAgOnBhcmFtIGNyZWF0ZV9vcmRlcl9yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY3JlYXRlX29yZGVyX3JlcXVlc3Q6IENyZWF0ZU9yZGVyUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2NyZWF0ZV9vcmRlcl9zZXJpYWxpemUoCiAgICAgICAgICAgIGNyZWF0ZV9vcmRlcl9yZXF1ZXN0PWNyZWF0ZV9vcmRlcl9yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDInOiAiT3JkZXJEZXRhaWxzIiwKICAgICAgICAgICAgJzQwMCc6ICJUcmFkaW5nRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNDAxJzogIlRyYWRpbmdFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MDMnOiAiVHJhZGluZ0Vycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQyOSc6ICJUcmFkaW5nRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNVhYJzogIlRyYWRpbmdFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2NyZWF0ZV9vcmRlcl9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBjcmVhdGVfb3JkZXJfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIGNyZWF0ZV9vcmRlcl9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBjcmVhdGVfb3JkZXJfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdHJhZGluZy9vcmRlcnMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgY3JlYXRlX3F1b3RlKAogICAgICAgIHNlbGYsCiAgICAgICAgY3JlYXRlX3F1b3RlOiBDcmVhdGVRdW90ZSwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtRdW90ZXNSZXNwb25zZV1dOgogICAgICAgICIiIkNyZWF0ZSBhIHF1b3RlCgogICAgICAgIEdlbmVyYXRlIGEgdGltZS1saW1pdGVkIHF1b3RlIGZvciBhc3NldCBjb252ZXJzaW9uLCBwcm92aWRpbmcgZXhjaGFuZ2UgcmF0ZSBhbmQgYW1vdW50IGNhbGN1bGF0aW9ucy4gIE5vdGU6IFRoZXNlIGVuZHBvaW50cyBhcmUgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy4gIElmIHlvdSB3YW50IHRvIHBhcnRpY2lwYXRlIGFuZCBsZWFybiBtb3JlIGFib3V0IHRoZSBGaXJlYmxvY2tzIFRyYWRpbmcsIHBsZWFzZSBjb250YWN0IHlvdXIgRmlyZWJsb2NrcyBDdXN0b21lciBTdWNjZXNzIE1hbmFnZXIgb3Igc2VuZCBhbiBlbWFpbCB0byBDU01AZmlyZWJsb2Nrcy5jb20uICBFbmRwb2ludCBQZXJtaXNzaW9uOiBPd25lciwgQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEVkaXRvci4gIEZvciBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCBlcnJvciBjb2RlcyBhbmQgdHJvdWJsZXNob290aW5nLCBwbGVhc2UgcmVmZXIgdG8gb3VyIFtBUEkgRXJyb3IgQ29kZXMgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS9hcGktZXJyb3ItY29kZXMpLgoKICAgICAgICA6cGFyYW0gY3JlYXRlX3F1b3RlOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY3JlYXRlX3F1b3RlOiBDcmVhdGVRdW90ZQogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2NyZWF0ZV9xdW90ZV9zZXJpYWxpemUoCiAgICAgICAgICAgIGNyZWF0ZV9xdW90ZT1jcmVhdGVfcXVvdGUsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMSc6ICJRdW90ZXNSZXNwb25zZSIsCiAgICAgICAgICAgICc0MDAnOiAiVHJhZGluZ0Vycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQwMSc6ICJUcmFkaW5nRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNDAzJzogIlRyYWRpbmdFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MjknOiAiVHJhZGluZ0Vycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzVYWCc6ICJUcmFkaW5nRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9jcmVhdGVfcXVvdGVfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgY3JlYXRlX3F1b3RlLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgY3JlYXRlX3F1b3RlIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBjcmVhdGVfcXVvdGUKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3RyYWRpbmcvcXVvdGVzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9vcmRlcigKICAgICAgICBzZWxmLAogICAgICAgIG9yZGVyX2lkOiBBbm5vdGF0ZWRbc3RyLCBGaWVsZChtaW5fbGVuZ3RoPTEsIHN0cmljdD1UcnVlLCBkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBvcmRlciB0byBmZXRjaC4iKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtPcmRlckRldGFpbHNdXToKICAgICAgICAiIiJHZXQgb3JkZXIgZGV0YWlscwoKICAgICAgICBSZXRyaWV2ZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIG9yZGVyIGJ5IGl0cyBJRC4gIE5vdGU6VGhlc2UgZW5kcG9pbnRzIGFyZSBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLiAgSWYgeW91IHdhbnQgdG8gcGFydGljaXBhdGUgYW5kIGxlYXJuIG1vcmUgYWJvdXQgdGhlIEZpcmVibG9ja3MgVHJhZGluZywgcGxlYXNlIGNvbnRhY3QgeW91ciBGaXJlYmxvY2tzIEN1c3RvbWVyIFN1Y2Nlc3MgTWFuYWdlciBvciBzZW5kIGFuIGVtYWlsIHRvIENTTUBmaXJlYmxvY2tzLmNvbS4gIEVuZHBvaW50IFBlcm1pc3Npb246IE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgVmlld2VyLiAgRm9yIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGVycm9yIGNvZGVzIGFuZCB0cm91Ymxlc2hvb3RpbmcsIHBsZWFzZSByZWZlciB0byBvdXIgW0FQSSBFcnJvciBDb2RlcyBkb2N1bWVudGF0aW9uXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2FwaS1lcnJvci1jb2RlcykuCgogICAgICAgIDpwYXJhbSBvcmRlcl9pZDogVGhlIElEIG9mIHRoZSBvcmRlciB0byBmZXRjaC4gKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIG9yZGVyX2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X29yZGVyIiwgcGFyYW1fbmFtZT0ib3JkZXJfaWQiLCBwYXJhbV92YWx1ZT1vcmRlcl9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X29yZGVyX3NlcmlhbGl6ZSgKICAgICAgICAgICAgb3JkZXJfaWQ9b3JkZXJfaWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJPcmRlckRldGFpbHMiLAogICAgICAgICAgICAnNDAxJzogIlRyYWRpbmdFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MDMnOiAiVHJhZGluZ0Vycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQwNCc6ICJUcmFkaW5nRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNDI5JzogIlRyYWRpbmdFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc1WFgnOiAiVHJhZGluZ0Vycm9yU2NoZW1hIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X29yZGVyX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIG9yZGVyX2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBvcmRlcl9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydvcmRlcklkJ10gPSBvcmRlcl9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3RyYWRpbmcvb3JkZXJzL3tvcmRlcklkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfb3JkZXJzKAogICAgICAgIHNlbGYsCiAgICAgICAgcGFnZV9zaXplOiBBbm5vdGF0ZWRbaW50LCBGaWVsZChsZT0xMDAsIHN0cmljdD1UcnVlLCBnZT0xLCBkZXNjcmlwdGlvbj0icGFnZVNpemUgZm9yIHBhZ2luYXRpb24uIildLAogICAgICAgIHBhZ2VfY3Vyc29yOiBPcHRpb25hbFtBbm5vdGF0ZWRbc3RyLCBGaWVsZChtaW5fbGVuZ3RoPTEsIHN0cmljdD1UcnVlKV1dID0gTm9uZSwKICAgICAgICBvcmRlcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBU0MgLyBERVNDIG9yZGVyaW5nIChkZWZhdWx0IERFU0MpIildID0gTm9uZSwKICAgICAgICBhY2NvdW50X2lkOiBBbm5vdGF0ZWRbT3B0aW9uYWxbTGlzdFtBbm5vdGF0ZWRbc3RyLCBGaWVsZChtaW5fbGVuZ3RoPTEsIHN0cmljdD1UcnVlKV1dXSwgRmllbGQoZGVzY3JpcHRpb249IkZpbHRlciBieSBhY2NvdW50SWQuIildID0gTm9uZSwKICAgICAgICBwcm92aWRlcl9pZDogQW5ub3RhdGVkW09wdGlvbmFsW0xpc3RbQW5ub3RhdGVkW3N0ciwgRmllbGQobWluX2xlbmd0aD0xLCBzdHJpY3Q9VHJ1ZSldXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJGaWx0ZXIgYnkgcHJvdmlkZXJJZC4iKV0gPSBOb25lLAogICAgICAgIHN0YXR1c2VzOiBBbm5vdGF0ZWRbT3B0aW9uYWxbTGlzdFtPcmRlclN0YXR1c11dLCBGaWVsZChkZXNjcmlwdGlvbj0iRmlsdGVyIGJ5IG9yZGVyIHN0YXR1cy4iKV0gPSBOb25lLAogICAgICAgIHN0YXJ0X3RpbWU6IE9wdGlvbmFsW0Fubm90YXRlZFtpbnQsIEZpZWxkKHN0cmljdD1UcnVlLCBnZT0wKV1dID0gTm9uZSwKICAgICAgICBlbmRfdGltZTogT3B0aW9uYWxbQW5ub3RhdGVkW2ludCwgRmllbGQoc3RyaWN0PVRydWUsIGdlPTApXV0gPSBOb25lLAogICAgICAgIGFzc2V0X2NvbnZlcnNpb25fdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtHZXRPcmRlcnNSZXNwb25zZV1dOgogICAgICAgICIiIkdldCBvcmRlcnMKCiAgICAgICAgUmV0cmlldmUgYSBwYWdpbmF0ZWQgbGlzdCBvZiBvcmRlcnMgd2l0aCBvcHRpb25hbCBmaWx0ZXJpbmcgYnkgYWNjb3VudCwgcHJvdmlkZXIsIHN0YXR1cywgYW5kIHRpbWUgcmFuZ2UuICBOb3RlOlRoZXNlIGVuZHBvaW50cyBhcmUgY3VycmVudGx5IGluIGJldGEgYW5kIG1pZ2h0IGJlIHN1YmplY3QgdG8gY2hhbmdlcy4gIElmIHlvdSB3YW50IHRvIHBhcnRpY2lwYXRlIGFuZCBsZWFybiBtb3JlIGFib3V0IHRoZSBGaXJlYmxvY2tzIFRyYWRpbmcsIHBsZWFzZSBjb250YWN0IHlvdXIgRmlyZWJsb2NrcyBDdXN0b21lciBTdWNjZXNzIE1hbmFnZXIgb3Igc2VuZCBhbiBlbWFpbCB0byBDU01AZmlyZWJsb2Nrcy5jb20uICBFbmRwb2ludCBQZXJtaXNzaW9uOiBPd25lciwgQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIFZpZXdlci4gIEZvciBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCBlcnJvciBjb2RlcyBhbmQgdHJvdWJsZXNob290aW5nLCBwbGVhc2UgcmVmZXIgdG8gb3VyIFtBUEkgRXJyb3IgQ29kZXMgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS9hcGktZXJyb3ItY29kZXMpLgoKICAgICAgICA6cGFyYW0gcGFnZV9zaXplOiBwYWdlU2l6ZSBmb3IgcGFnaW5hdGlvbi4gKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHBhZ2Vfc2l6ZTogaW50CiAgICAgICAgOnBhcmFtIHBhZ2VfY3Vyc29yOgogICAgICAgIDp0eXBlIHBhZ2VfY3Vyc29yOiBzdHIKICAgICAgICA6cGFyYW0gb3JkZXI6IEFTQyAvIERFU0Mgb3JkZXJpbmcgKGRlZmF1bHQgREVTQykKICAgICAgICA6dHlwZSBvcmRlcjogc3RyCiAgICAgICAgOnBhcmFtIGFjY291bnRfaWQ6IEZpbHRlciBieSBhY2NvdW50SWQuCiAgICAgICAgOnR5cGUgYWNjb3VudF9pZDogTGlzdFtzdHJdCiAgICAgICAgOnBhcmFtIHByb3ZpZGVyX2lkOiBGaWx0ZXIgYnkgcHJvdmlkZXJJZC4KICAgICAgICA6dHlwZSBwcm92aWRlcl9pZDogTGlzdFtzdHJdCiAgICAgICAgOnBhcmFtIHN0YXR1c2VzOiBGaWx0ZXIgYnkgb3JkZXIgc3RhdHVzLgogICAgICAgIDp0eXBlIHN0YXR1c2VzOiBMaXN0W09yZGVyU3RhdHVzXQogICAgICAgIDpwYXJhbSBzdGFydF90aW1lOgogICAgICAgIDp0eXBlIHN0YXJ0X3RpbWU6IGludAogICAgICAgIDpwYXJhbSBlbmRfdGltZToKICAgICAgICA6dHlwZSBlbmRfdGltZTogaW50CiAgICAgICAgOnBhcmFtIGFzc2V0X2NvbnZlcnNpb25fdHlwZToKICAgICAgICA6dHlwZSBhc3NldF9jb252ZXJzaW9uX3R5cGU6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9vcmRlcnNfc2VyaWFsaXplKAogICAgICAgICAgICBwYWdlX3NpemU9cGFnZV9zaXplLAogICAgICAgICAgICBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwKICAgICAgICAgICAgb3JkZXI9b3JkZXIsCiAgICAgICAgICAgIGFjY291bnRfaWQ9YWNjb3VudF9pZCwKICAgICAgICAgICAgcHJvdmlkZXJfaWQ9cHJvdmlkZXJfaWQsCiAgICAgICAgICAgIHN0YXR1c2VzPXN0YXR1c2VzLAogICAgICAgICAgICBzdGFydF90aW1lPXN0YXJ0X3RpbWUsCiAgICAgICAgICAgIGVuZF90aW1lPWVuZF90aW1lLAogICAgICAgICAgICBhc3NldF9jb252ZXJzaW9uX3R5cGU9YXNzZXRfY29udmVyc2lvbl90eXBlLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiR2V0T3JkZXJzUmVzcG9uc2UiLAogICAgICAgICAgICAnNDAxJzogIlRyYWRpbmdFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MDMnOiAiVHJhZGluZ0Vycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQyOSc6ICJUcmFkaW5nRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNVhYJzogIlRyYWRpbmdFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9vcmRlcnNfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgcGFnZV9zaXplLAogICAgICAgIHBhZ2VfY3Vyc29yLAogICAgICAgIG9yZGVyLAogICAgICAgIGFjY291bnRfaWQsCiAgICAgICAgcHJvdmlkZXJfaWQsCiAgICAgICAgc3RhdHVzZXMsCiAgICAgICAgc3RhcnRfdGltZSwKICAgICAgICBlbmRfdGltZSwKICAgICAgICBhc3NldF9jb252ZXJzaW9uX3R5cGUsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgICAgICAnYWNjb3VudElkJzogJ211bHRpJywKICAgICAgICAgICAgJ3Byb3ZpZGVySWQnOiAnbXVsdGknLAogICAgICAgICAgICAnc3RhdHVzZXMnOiAnbXVsdGknLAogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIHBhZ2Vfc2l6ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZVNpemUnLCBwYWdlX3NpemUpKQogICAgICAgICAgICAKICAgICAgICBpZiBwYWdlX2N1cnNvciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZUN1cnNvcicsIHBhZ2VfY3Vyc29yKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgb3JkZXIgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ29yZGVyJywgb3JkZXIpKQogICAgICAgICAgICAKICAgICAgICBpZiBhY2NvdW50X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdhY2NvdW50SWQnLCBhY2NvdW50X2lkKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgcHJvdmlkZXJfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3Byb3ZpZGVySWQnLCBwcm92aWRlcl9pZCkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHN0YXR1c2VzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdzdGF0dXNlcycsIHN0YXR1c2VzKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgc3RhcnRfdGltZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnc3RhcnRUaW1lJywgc3RhcnRfdGltZSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIGVuZF90aW1lIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdlbmRUaW1lJywgZW5kX3RpbWUpKQogICAgICAgICAgICAKICAgICAgICBpZiBhc3NldF9jb252ZXJzaW9uX3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2Fzc2V0Q29udmVyc2lvblR5cGUnLCBhc3NldF9jb252ZXJzaW9uX3R5cGUpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90cmFkaW5nL29yZGVycycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfdHJhZGluZ19wcm92aWRlcl9ieV9pZCgKICAgICAgICBzZWxmLAogICAgICAgIHByb3ZpZGVyX2lkOiBBbm5vdGF0ZWRbc3RyLCBGaWVsZChtaW5fbGVuZ3RoPTEsIHN0cmljdD1UcnVlLCBkZXNjcmlwdGlvbj0iVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBwcm92aWRlci4iKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtUcmFkaW5nUHJvdmlkZXJEZXRhaWxzXV06CiAgICAgICAgIiIiR2V0IHRyYWRpbmcgcHJvdmlkZXIgYnkgSUQKCiAgICAgICAgUmV0cmlldmUgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBwcm92aWRlciBpbmNsdWRpbmcgaXRzIGZ1bGwgbWFuaWZlc3Qgd2l0aCBvcmRlci9xdW90ZSByZXF1aXJlbWVudHMuICAqKk5vdGU6KiogVGhlc2UgZW5kcG9pbnRzIGFyZSBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLiBJZiB5b3Ugd2FudCB0byBwYXJ0aWNpcGF0ZSBhbmQgbGVhcm4gbW9yZSBhYm91dCB0aGUgRmlyZWJsb2NrcyBUcmFkaW5nLCBwbGVhc2UgY29udGFjdCB5b3VyIEZpcmVibG9ja3MgQ3VzdG9tZXIgU3VjY2VzcyBNYW5hZ2VyIG9yIHNlbmQgYW4gZW1haWwgdG8gQ1NNQGZpcmVibG9ja3MuY29tLiAgKipFbmRwb2ludCBQZXJtaXNzaW9uOioqIE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgVmlld2VyLiAgRm9yIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGVycm9yIGNvZGVzIGFuZCB0cm91Ymxlc2hvb3RpbmcsIHBsZWFzZSByZWZlciB0byBvdXIgW0FQSSBFcnJvciBDb2RlcyBkb2N1bWVudGF0aW9uXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2FwaS1lcnJvci1jb2RlcykuIAoKICAgICAgICA6cGFyYW0gcHJvdmlkZXJfaWQ6IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcHJvdmlkZXIuIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBwcm92aWRlcl9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF90cmFkaW5nX3Byb3ZpZGVyX2J5X2lkIiwgcGFyYW1fbmFtZT0icHJvdmlkZXJfaWQiLCBwYXJhbV92YWx1ZT1wcm92aWRlcl9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X3RyYWRpbmdfcHJvdmlkZXJfYnlfaWRfc2VyaWFsaXplKAogICAgICAgICAgICBwcm92aWRlcl9pZD1wcm92aWRlcl9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlRyYWRpbmdQcm92aWRlckRldGFpbHMiLAogICAgICAgICAgICAnNDAxJzogIlRyYWRpbmdFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MDMnOiAiVHJhZGluZ0Vycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQwNCc6ICJUcmFkaW5nRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNDI5JzogIlRyYWRpbmdFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc1WFgnOiAiVHJhZGluZ0Vycm9yU2NoZW1hIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3RyYWRpbmdfcHJvdmlkZXJfYnlfaWRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgcHJvdmlkZXJfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHByb3ZpZGVyX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3Byb3ZpZGVySWQnXSA9IHByb3ZpZGVyX2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdHJhZGluZy9wcm92aWRlcnMve3Byb3ZpZGVySWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF90cmFkaW5nX3Byb3ZpZGVycygKICAgICAgICBzZWxmLAogICAgICAgIHBhZ2Vfc2l6ZTogQW5ub3RhdGVkW09wdGlvbmFsW0Fubm90YXRlZFtpbnQsIEZpZWxkKGxlPTEwMCwgc3RyaWN0PVRydWUsIGdlPTEpXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJQYWdlIHNpemUgZm9yIHBhZ2luYXRpb24uIildID0gTm9uZSwKICAgICAgICBwYWdlX2N1cnNvcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJQYWdlIGN1cnNvciBmb3IgcGFnaW5hdGlvbi4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbUHJvdmlkZXJzTGlzdFJlc3BvbnNlXV06CiAgICAgICAgIiIiR2V0IHByb3ZpZGVycwoKICAgICAgICBSZXRyaWV2ZSBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSBleHRlcm5hbCBwcm92aWRlcnMgc3VwcG9ydGluZyB0cmFkaW5nIGFjdGl2aXRpZXMgdGhyb3VnaCB0aGUgcGxhdGZvcm0uICAqKk5vdGU6KiogVGhlc2UgZW5kcG9pbnRzIGFyZSBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLiBJZiB5b3Ugd2FudCB0byBwYXJ0aWNpcGF0ZSBhbmQgbGVhcm4gbW9yZSBhYm91dCB0aGUgRmlyZWJsb2NrcyBUcmFkaW5nLCBwbGVhc2UgY29udGFjdCB5b3VyIEZpcmVibG9ja3MgQ3VzdG9tZXIgU3VjY2VzcyBNYW5hZ2VyIG9yIHNlbmQgYW4gZW1haWwgdG8gQ1NNQGZpcmVibG9ja3MuY29tLiAgKipFbmRwb2ludCBQZXJtaXNzaW9uOioqIE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgVmlld2VyLiAgRm9yIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGVycm9yIGNvZGVzIGFuZCB0cm91Ymxlc2hvb3RpbmcsIHBsZWFzZSByZWZlciB0byBvdXIgW0FQSSBFcnJvciBDb2RlcyBkb2N1bWVudGF0aW9uXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2FwaS1lcnJvci1jb2RlcykuIAoKICAgICAgICA6cGFyYW0gcGFnZV9zaXplOiBQYWdlIHNpemUgZm9yIHBhZ2luYXRpb24uCiAgICAgICAgOnR5cGUgcGFnZV9zaXplOiBpbnQKICAgICAgICA6cGFyYW0gcGFnZV9jdXJzb3I6IFBhZ2UgY3Vyc29yIGZvciBwYWdpbmF0aW9uLgogICAgICAgIDp0eXBlIHBhZ2VfY3Vyc29yOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfdHJhZGluZ19wcm92aWRlcnNfc2VyaWFsaXplKAogICAgICAgICAgICBwYWdlX3NpemU9cGFnZV9zaXplLAogICAgICAgICAgICBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlByb3ZpZGVyc0xpc3RSZXNwb25zZSIsCiAgICAgICAgICAgICc0MDEnOiAiVHJhZGluZ0Vycm9yU2NoZW1hIiwKICAgICAgICAgICAgJzQwMyc6ICJUcmFkaW5nRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnNDI5JzogIlRyYWRpbmdFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc1WFgnOiAiVHJhZGluZ0Vycm9yU2NoZW1hIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3RyYWRpbmdfcHJvdmlkZXJzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHBhZ2Vfc2l6ZSwKICAgICAgICBwYWdlX2N1cnNvciwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgcGFnZV9zaXplIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlU2l6ZScsIHBhZ2Vfc2l6ZSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2VfY3Vyc29yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlQ3Vyc29yJywgcGFnZV9jdXJzb3IpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90cmFkaW5nL3Byb3ZpZGVycycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoK \ No newline at end of file diff --git a/fireblocks/api/transactions_api.py b/fireblocks/api/transactions_api.py index 52507752..f26cc4ad 100644 --- a/fireblocks/api/transactions_api.py +++ b/fireblocks/api/transactions_api.py @@ -1,2051 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr, field_validator -from typing import List, Optional -from typing_extensions import Annotated -from fireblocks.models.cancel_transaction_response import CancelTransactionResponse -from fireblocks.models.create_transaction_response import CreateTransactionResponse -from fireblocks.models.drop_transaction_request import DropTransactionRequest -from fireblocks.models.drop_transaction_response import DropTransactionResponse -from fireblocks.models.estimated_network_fee_response import EstimatedNetworkFeeResponse -from fireblocks.models.estimated_transaction_fee_response import EstimatedTransactionFeeResponse -from fireblocks.models.freeze_transaction_response import FreezeTransactionResponse -from fireblocks.models.set_confirmations_threshold_request import SetConfirmationsThresholdRequest -from fireblocks.models.set_confirmations_threshold_response import SetConfirmationsThresholdResponse -from fireblocks.models.transaction_request import TransactionRequest -from fireblocks.models.transaction_response import TransactionResponse -from fireblocks.models.unfreeze_transaction_response import UnfreezeTransactionResponse -from fireblocks.models.validate_address_response import ValidateAddressResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class TransactionsApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def cancel_transaction( - self, - tx_id: Annotated[StrictStr, Field(description="The ID of the transaction to cancel")], - x_end_user_wallet_id: Annotated[Optional[StrictStr], Field(description="Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.")] = None, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[CancelTransactionResponse]]: - """Cancel a transaction - - Cancels a transaction by Fireblocks Transaction ID. Can be used only for transactions that did not get to the BROADCASTING state.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param tx_id: The ID of the transaction to cancel (required) - :type tx_id: str - :param x_end_user_wallet_id: Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. - :type x_end_user_wallet_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="cancel_transaction", param_name="tx_id", param_value=tx_id) - - _param = self._cancel_transaction_serialize( - tx_id=tx_id, - x_end_user_wallet_id=x_end_user_wallet_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "CancelTransactionResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _cancel_transaction_serialize( - self, - tx_id, - x_end_user_wallet_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if tx_id is not None: - _path_params['txId'] = tx_id - # process the query parameters - # process the header parameters - if x_end_user_wallet_id is not None: - _header_params['X-End-User-Wallet-Id'] = x_end_user_wallet_id - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/transactions/{txId}/cancel', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_transaction( - self, - x_end_user_wallet_id: Annotated[Optional[StrictStr], Field(description="Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.")] = None, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - transaction_request: Optional[TransactionRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[CreateTransactionResponse]]: - """Create a new transaction - - Creates a new transaction. This endpoint can be used for regular Transfers, Contract Calls, Raw & Typed message signing. - For Transfers, the required parameters are: `assetId`, `source`, `destination` and `amount`. - For Contract Calls, the required parameters are: `operation.CONTRACT_CALL`, `assetId` (Base Asset), `source`, - - :param x_end_user_wallet_id: Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. - :type x_end_user_wallet_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param transaction_request: - :type transaction_request: TransactionRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_transaction_serialize( - x_end_user_wallet_id=x_end_user_wallet_id, - idempotency_key=idempotency_key, - transaction_request=transaction_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "CreateTransactionResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_transaction_serialize( - self, - x_end_user_wallet_id, - idempotency_key, - transaction_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if x_end_user_wallet_id is not None: - _header_params['X-End-User-Wallet-Id'] = x_end_user_wallet_id - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if transaction_request is not None: - _body_params = transaction_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/transactions', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def drop_transaction( - self, - tx_id: Annotated[StrictStr, Field(description="The ID of the transaction")], - x_end_user_wallet_id: Annotated[Optional[StrictStr], Field(description="Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.")] = None, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - drop_transaction_request: Optional[DropTransactionRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[DropTransactionResponse]]: - """Drop ETH (EVM) transaction by ID - - Drops a stuck ETH (EVM) transaction and creates a replacement transaction with 0 amount.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param tx_id: The ID of the transaction (required) - :type tx_id: str - :param x_end_user_wallet_id: Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. - :type x_end_user_wallet_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param drop_transaction_request: - :type drop_transaction_request: DropTransactionRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="drop_transaction", param_name="tx_id", param_value=tx_id) - - _param = self._drop_transaction_serialize( - tx_id=tx_id, - x_end_user_wallet_id=x_end_user_wallet_id, - idempotency_key=idempotency_key, - drop_transaction_request=drop_transaction_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "DropTransactionResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _drop_transaction_serialize( - self, - tx_id, - x_end_user_wallet_id, - idempotency_key, - drop_transaction_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if tx_id is not None: - _path_params['txId'] = tx_id - # process the query parameters - # process the header parameters - if x_end_user_wallet_id is not None: - _header_params['X-End-User-Wallet-Id'] = x_end_user_wallet_id - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if drop_transaction_request is not None: - _body_params = drop_transaction_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/transactions/{txId}/drop', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def estimate_network_fee( - self, - asset_id: Annotated[StrictStr, Field(description="The asset for which to estimate the fee")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EstimatedNetworkFeeResponse]]: - """Estimate the required fee for an asset - - Gets the estimated required fee for an asset. Fireblocks fetches, calculates and caches the result every 30 seconds. Customers should query this API while taking the caching interval into consideration. Notes: - The `networkFee` parameter is the `gasPrice` with a given delta added, multiplied by the gasLimit plus the delta. - The estimation provided depends on the asset type. - For UTXO-based assets, the response contains the `feePerByte` parameter - For ETH-based and all EVM based assets, the response will contain `gasPrice` parameter. This is calculated by adding the `baseFee` to the `actualPriority` based on the latest 12 blocks. The response for ETH-based contains the `baseFee`, `gasPrice`, and `priorityFee` parameters. - For ADA-based assets, the response will contain the parameter `networkFee` and `feePerByte` parameters. - For XRP and XLM, the response will contain the transaction fee. - For other assets, the response will contain the `networkFee` parameter. Learn more about Fireblocks Fee Management in the following [guide](https://developers.fireblocks.com/reference/estimate-transaction-fee).
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param asset_id: The asset for which to estimate the fee (required) - :type asset_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="estimate_network_fee", param_name="asset_id", param_value=asset_id) - - _param = self._estimate_network_fee_serialize( - asset_id=asset_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "EstimatedNetworkFeeResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _estimate_network_fee_serialize( - self, - asset_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if asset_id is not None: - - _query_params.append(('assetId', asset_id)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/estimate_network_fee', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def estimate_transaction_fee( - self, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - transaction_request: Optional[TransactionRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[EstimatedTransactionFeeResponse]]: - """Estimate transaction fee - - Estimates the transaction fee for a specific transaction request. This endpoint simulates a transaction which means that the system will expect to have the requested asset and balance in the specified wallet. **Note**: Supports all Fireblocks assets except ZCash (ZEC). Learn more about Fireblocks Fee Management in the following [guide](https://developers.fireblocks.com/reference/estimate-transaction-fee).
Endpoint Permission: Admin, Signer, Approver, Editor. - - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param transaction_request: - :type transaction_request: TransactionRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._estimate_transaction_fee_serialize( - idempotency_key=idempotency_key, - transaction_request=transaction_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "EstimatedTransactionFeeResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _estimate_transaction_fee_serialize( - self, - idempotency_key, - transaction_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if transaction_request is not None: - _body_params = transaction_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/transactions/estimate_fee', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def freeze_transaction( - self, - tx_id: Annotated[StrictStr, Field(description="The ID of the transaction to freeze")], - x_end_user_wallet_id: Annotated[Optional[StrictStr], Field(description="Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.")] = None, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[FreezeTransactionResponse]]: - """Freeze a transaction - - Freezes a transaction by ID. Usually used for AML integrations when the incoming funds should be quarantined. For account based assets - the entire amount of the transaction is frozen For UTXO based assets - all UTXOs of the specified transaction are frozen
Endpoint Permission: Admin, Non-Signing Admin. - - :param tx_id: The ID of the transaction to freeze (required) - :type tx_id: str - :param x_end_user_wallet_id: Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. - :type x_end_user_wallet_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="freeze_transaction", param_name="tx_id", param_value=tx_id) - - _param = self._freeze_transaction_serialize( - tx_id=tx_id, - x_end_user_wallet_id=x_end_user_wallet_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "FreezeTransactionResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _freeze_transaction_serialize( - self, - tx_id, - x_end_user_wallet_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if tx_id is not None: - _path_params['txId'] = tx_id - # process the query parameters - # process the header parameters - if x_end_user_wallet_id is not None: - _header_params['X-End-User-Wallet-Id'] = x_end_user_wallet_id - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/transactions/{txId}/freeze', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_transaction( - self, - tx_id: Annotated[StrictStr, Field(description="The ID of the transaction to return")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TransactionResponse]]: - """Get a specific transaction by Fireblocks transaction ID - - Get a specific transaction data by Fireblocks Transaction ID
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param tx_id: The ID of the transaction to return (required) - :type tx_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_transaction", param_name="tx_id", param_value=tx_id) - - _param = self._get_transaction_serialize( - tx_id=tx_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TransactionResponse", - '400': "ErrorSchema", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_transaction_serialize( - self, - tx_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if tx_id is not None: - _path_params['txId'] = tx_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/transactions/{txId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_transaction_by_external_id( - self, - external_tx_id: Annotated[StrictStr, Field(description="The external ID of the transaction to return")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TransactionResponse]]: - """Get a specific transaction by external transaction ID - - Returns transaction by external transaction ID.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param external_tx_id: The external ID of the transaction to return (required) - :type external_tx_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_transaction_by_external_id", param_name="external_tx_id", param_value=external_tx_id) - - _param = self._get_transaction_by_external_id_serialize( - external_tx_id=external_tx_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TransactionResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_transaction_by_external_id_serialize( - self, - external_tx_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if external_tx_id is not None: - _path_params['externalTxId'] = external_tx_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/transactions/external_tx_id/{externalTxId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_transactions( - self, - next: Annotated[Optional[StrictStr], Field(description="Cursor returned in next-page header that can be used to fetch the next page of results")] = None, - prev: Annotated[Optional[StrictStr], Field(description="Cursor returned in prev-page header that can be used to fetch the previous page of results")] = None, - before: Annotated[Optional[StrictStr], Field(description="Unix timestamp in milliseconds. Returns only transactions created before the specified date. Provides an explicit end time. If not provided, default value will be applied, and may change over time. The current default value is the past 90 days. ")] = None, - after: Annotated[Optional[StrictStr], Field(description="Unix timestamp in milliseconds. Returns only transactions created after the specified date. Provides an explicit start time. If not provided, default value will be applied, and may change over time. The current default value is the past 90 days. ")] = None, - status: Annotated[Optional[StrictStr], Field(description="You can filter by one of the statuses.")] = None, - order_by: Annotated[Optional[StrictStr], Field(description="The field to order the results by. **Note:** Ordering by a field that is not `createdAt` may result in transactions that receive updates as you request the next or previous pages of results, resulting in missing those transactions. ")] = None, - sort: Annotated[Optional[StrictStr], Field(description="The direction to order the results by")] = None, - limit: Annotated[Optional[Annotated[int, Field(strict=True, ge=1)]], Field(description="Limits the number of results. If not provided, a limit of 200 will be used. The maximum allowed limit is 500")] = None, - source_type: Annotated[Optional[StrictStr], Field(description="The source type of the transaction")] = None, - source_id: Annotated[Optional[StrictStr], Field(description="The source ID of the transaction")] = None, - dest_type: Annotated[Optional[StrictStr], Field(description="The destination type of the transaction")] = None, - dest_id: Annotated[Optional[StrictStr], Field(description="The destination ID of the transaction")] = None, - assets: Annotated[Optional[StrictStr], Field(description="A list of assets to filter by, seperated by commas")] = None, - tx_hash: Annotated[Optional[StrictStr], Field(description="Returns only results with a specified txHash")] = None, - source_wallet_id: Annotated[Optional[StrictStr], Field(description="Returns only results where the source is a specific end user wallet")] = None, - dest_wallet_id: Annotated[Optional[StrictStr], Field(description="Returns only results where the destination is a specific end user wallet")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[TransactionResponse]]]: - """Get transaction history - - Get the transaction history for your workspace. **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param next: Cursor returned in next-page header that can be used to fetch the next page of results - :type next: str - :param prev: Cursor returned in prev-page header that can be used to fetch the previous page of results - :type prev: str - :param before: Unix timestamp in milliseconds. Returns only transactions created before the specified date. Provides an explicit end time. If not provided, default value will be applied, and may change over time. The current default value is the past 90 days. - :type before: str - :param after: Unix timestamp in milliseconds. Returns only transactions created after the specified date. Provides an explicit start time. If not provided, default value will be applied, and may change over time. The current default value is the past 90 days. - :type after: str - :param status: You can filter by one of the statuses. - :type status: str - :param order_by: The field to order the results by. **Note:** Ordering by a field that is not `createdAt` may result in transactions that receive updates as you request the next or previous pages of results, resulting in missing those transactions. - :type order_by: str - :param sort: The direction to order the results by - :type sort: str - :param limit: Limits the number of results. If not provided, a limit of 200 will be used. The maximum allowed limit is 500 - :type limit: int - :param source_type: The source type of the transaction - :type source_type: str - :param source_id: The source ID of the transaction - :type source_id: str - :param dest_type: The destination type of the transaction - :type dest_type: str - :param dest_id: The destination ID of the transaction - :type dest_id: str - :param assets: A list of assets to filter by, seperated by commas - :type assets: str - :param tx_hash: Returns only results with a specified txHash - :type tx_hash: str - :param source_wallet_id: Returns only results where the source is a specific end user wallet - :type source_wallet_id: str - :param dest_wallet_id: Returns only results where the destination is a specific end user wallet - :type dest_wallet_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_transactions_serialize( - next=next, - prev=prev, - before=before, - after=after, - status=status, - order_by=order_by, - sort=sort, - limit=limit, - source_type=source_type, - source_id=source_id, - dest_type=dest_type, - dest_id=dest_id, - assets=assets, - tx_hash=tx_hash, - source_wallet_id=source_wallet_id, - dest_wallet_id=dest_wallet_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "List[TransactionResponse]", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_transactions_serialize( - self, - next, - prev, - before, - after, - status, - order_by, - sort, - limit, - source_type, - source_id, - dest_type, - dest_id, - assets, - tx_hash, - source_wallet_id, - dest_wallet_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if next is not None: - - _query_params.append(('next', next)) - - if prev is not None: - - _query_params.append(('prev', prev)) - - if before is not None: - - _query_params.append(('before', before)) - - if after is not None: - - _query_params.append(('after', after)) - - if status is not None: - - _query_params.append(('status', status)) - - if order_by is not None: - - _query_params.append(('orderBy', order_by)) - - if sort is not None: - - _query_params.append(('sort', sort)) - - if limit is not None: - - _query_params.append(('limit', limit)) - - if source_type is not None: - - _query_params.append(('sourceType', source_type)) - - if source_id is not None: - - _query_params.append(('sourceId', source_id)) - - if dest_type is not None: - - _query_params.append(('destType', dest_type)) - - if dest_id is not None: - - _query_params.append(('destId', dest_id)) - - if assets is not None: - - _query_params.append(('assets', assets)) - - if tx_hash is not None: - - _query_params.append(('txHash', tx_hash)) - - if source_wallet_id is not None: - - _query_params.append(('sourceWalletId', source_wallet_id)) - - if dest_wallet_id is not None: - - _query_params.append(('destWalletId', dest_wallet_id)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/transactions', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_confirmation_threshold_by_transaction_hash( - self, - tx_hash: Annotated[StrictStr, Field(description="The TxHash")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - set_confirmations_threshold_request: Optional[SetConfirmationsThresholdRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SetConfirmationsThresholdResponse]]: - """Set confirmation threshold by transaction hash - - Overrides the required number of confirmations for transaction completion by transaction hash.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param tx_hash: The TxHash (required) - :type tx_hash: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param set_confirmations_threshold_request: - :type set_confirmations_threshold_request: SetConfirmationsThresholdRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="set_confirmation_threshold_by_transaction_hash", param_name="tx_hash", param_value=tx_hash) - - _param = self._set_confirmation_threshold_by_transaction_hash_serialize( - tx_hash=tx_hash, - idempotency_key=idempotency_key, - set_confirmations_threshold_request=set_confirmations_threshold_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SetConfirmationsThresholdResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_confirmation_threshold_by_transaction_hash_serialize( - self, - tx_hash, - idempotency_key, - set_confirmations_threshold_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if tx_hash is not None: - _path_params['txHash'] = tx_hash - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if set_confirmations_threshold_request is not None: - _body_params = set_confirmations_threshold_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/txHash/{txHash}/set_confirmation_threshold', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_transaction_confirmation_threshold( - self, - tx_id: Annotated[StrictStr, Field(description="The ID of the transaction")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - set_confirmations_threshold_request: Optional[SetConfirmationsThresholdRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[SetConfirmationsThresholdResponse]]: - """Set confirmation threshold by Fireblocks Transaction ID - - Overrides the required number of confirmations for transaction completion Fireblocks Transaction ID.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param tx_id: The ID of the transaction (required) - :type tx_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param set_confirmations_threshold_request: - :type set_confirmations_threshold_request: SetConfirmationsThresholdRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="set_transaction_confirmation_threshold", param_name="tx_id", param_value=tx_id) - - _param = self._set_transaction_confirmation_threshold_serialize( - tx_id=tx_id, - idempotency_key=idempotency_key, - set_confirmations_threshold_request=set_confirmations_threshold_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "SetConfirmationsThresholdResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_transaction_confirmation_threshold_serialize( - self, - tx_id, - idempotency_key, - set_confirmations_threshold_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if tx_id is not None: - _path_params['txId'] = tx_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if set_confirmations_threshold_request is not None: - _body_params = set_confirmations_threshold_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/transactions/{txId}/set_confirmation_threshold', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def unfreeze_transaction( - self, - tx_id: Annotated[StrictStr, Field(description="The ID of the transaction to unfreeze")], - x_end_user_wallet_id: Annotated[Optional[StrictStr], Field(description="Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.")] = None, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[UnfreezeTransactionResponse]]: - """Unfreeze a transaction - - Unfreezes a transaction by Fireblocks Transaction ID and makes the transaction available again.
Endpoint Permission: Admin, Non-Signing Admin. - - :param tx_id: The ID of the transaction to unfreeze (required) - :type tx_id: str - :param x_end_user_wallet_id: Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. - :type x_end_user_wallet_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="unfreeze_transaction", param_name="tx_id", param_value=tx_id) - - _param = self._unfreeze_transaction_serialize( - tx_id=tx_id, - x_end_user_wallet_id=x_end_user_wallet_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "UnfreezeTransactionResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _unfreeze_transaction_serialize( - self, - tx_id, - x_end_user_wallet_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if tx_id is not None: - _path_params['txId'] = tx_id - # process the query parameters - # process the header parameters - if x_end_user_wallet_id is not None: - _header_params['X-End-User-Wallet-Id'] = x_end_user_wallet_id - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/transactions/{txId}/unfreeze', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def validate_address( - self, - asset_id: Annotated[StrictStr, Field(description="The asset of the address")], - address: Annotated[StrictStr, Field(description="The address to validate")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ValidateAddressResponse]]: - """Validate destination address - - Checks if an address is valid and active (for XRP, DOT, XLM, and EOS).
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param asset_id: The asset of the address (required) - :type asset_id: str - :param address: The address to validate (required) - :type address: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="validate_address", param_name="asset_id", param_value=asset_id) - validate_not_empty_string(function_name="validate_address", param_name="address", param_value=address) - - _param = self._validate_address_serialize( - asset_id=asset_id, - address=address, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ValidateAddressResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _validate_address_serialize( - self, - asset_id, - address, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if asset_id is not None: - _path_params['assetId'] = asset_id - if address is not None: - _path_params['address'] = address - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/transactions/validate_address/{assetId}/{address}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0ciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jYW5jZWxfdHJhbnNhY3Rpb25fcmVzcG9uc2UgaW1wb3J0IENhbmNlbFRyYW5zYWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfdHJhbnNhY3Rpb25fcmVzcG9uc2UgaW1wb3J0IENyZWF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kcm9wX3RyYW5zYWN0aW9uX3JlcXVlc3QgaW1wb3J0IERyb3BUcmFuc2FjdGlvblJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kcm9wX3RyYW5zYWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBEcm9wVHJhbnNhY3Rpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVzdGltYXRlZF9uZXR3b3JrX2ZlZV9yZXNwb25zZSBpbXBvcnQgRXN0aW1hdGVkTmV0d29ya0ZlZVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXN0aW1hdGVkX3RyYW5zYWN0aW9uX2ZlZV9yZXNwb25zZSBpbXBvcnQgRXN0aW1hdGVkVHJhbnNhY3Rpb25GZWVSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZyZWV6ZV90cmFuc2FjdGlvbl9yZXNwb25zZSBpbXBvcnQgRnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9jb25maXJtYXRpb25zX3RocmVzaG9sZF9yZXF1ZXN0IGltcG9ydCBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9jb25maXJtYXRpb25zX3RocmVzaG9sZF9yZXNwb25zZSBpbXBvcnQgU2V0Q29uZmlybWF0aW9uc1RocmVzaG9sZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVxdWVzdCBpbXBvcnQgVHJhbnNhY3Rpb25SZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVzcG9uc2UgaW1wb3J0IFRyYW5zYWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51bmZyZWV6ZV90cmFuc2FjdGlvbl9yZXNwb25zZSBpbXBvcnQgVW5mcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmFsaWRhdGVfYWRkcmVzc19yZXNwb25zZSBpbXBvcnQgVmFsaWRhdGVBZGRyZXNzUmVzcG9uc2UKCmZyb20gZmlyZWJsb2Nrcy5hcGlfY2xpZW50IGltcG9ydCBBcGlDbGllbnQsIFJlcXVlc3RTZXJpYWxpemVkCmZyb20gZmlyZWJsb2Nrcy5hcGlfcmVzcG9uc2UgaW1wb3J0IEFwaVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5yZXN0IGltcG9ydCBSRVNUUmVzcG9uc2VUeXBlCmZyb20gZmlyZWJsb2Nrcy52YWxpZGF0aW9uX3V0aWxzIGltcG9ydCB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nCgoKY2xhc3MgVHJhbnNhY3Rpb25zQXBpOgogICAgIiIiTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvcgogICAgUmVmOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gKCiAgICBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgYXBpX2NsaWVudD1Ob25lKSAtPiBOb25lOgogICAgICAgIGlmIGFwaV9jbGllbnQgaXMgTm9uZToKICAgICAgICAgICAgYXBpX2NsaWVudCA9IEFwaUNsaWVudC5nZXRfZGVmYXVsdCgpCiAgICAgICAgc2VsZi5hcGlfY2xpZW50ID0gYXBpX2NsaWVudAoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGNhbmNlbF90cmFuc2FjdGlvbigKICAgICAgICBzZWxmLAogICAgICAgIHR4X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB0cmFuc2FjdGlvbiB0byBjYW5jZWwiKV0sCiAgICAgICAgeF9lbmRfdXNlcl93YWxsZXRfaWQ6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iVW5pcXVlIElEIG9mIHRoZSBFbmQtVXNlciB3YWxsZXQgdG8gdGhlIEFQSSByZXF1ZXN0LiBSZXF1aXJlZCBmb3IgZW5kLXVzZXIgd2FsbGV0IG9wZXJhdGlvbnMuIildID0gTm9uZSwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtDYW5jZWxUcmFuc2FjdGlvblJlc3BvbnNlXV06CiAgICAgICAgIiIiQ2FuY2VsIGEgdHJhbnNhY3Rpb24KCiAgICAgICAgQ2FuY2VscyBhIHRyYW5zYWN0aW9uIGJ5IEZpcmVibG9ja3MgVHJhbnNhY3Rpb24gSUQuICBDYW4gYmUgdXNlZCBvbmx5IGZvciB0cmFuc2FjdGlvbnMgdGhhdCBkaWQgbm90IGdldCB0byB0aGUgQlJPQURDQVNUSU5HIHN0YXRlLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKICAgICAgICA6cGFyYW0gdHhfaWQ6IFRoZSBJRCBvZiB0aGUgdHJhbnNhY3Rpb24gdG8gY2FuY2VsIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB0eF9pZDogc3RyCiAgICAgICAgOnBhcmFtIHhfZW5kX3VzZXJfd2FsbGV0X2lkOiBVbmlxdWUgSUQgb2YgdGhlIEVuZC1Vc2VyIHdhbGxldCB0byB0aGUgQVBJIHJlcXVlc3QuIFJlcXVpcmVkIGZvciBlbmQtdXNlciB3YWxsZXQgb3BlcmF0aW9ucy4KICAgICAgICA6dHlwZSB4X2VuZF91c2VyX3dhbGxldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImNhbmNlbF90cmFuc2FjdGlvbiIsIHBhcmFtX25hbWU9InR4X2lkIiwgcGFyYW1fdmFsdWU9dHhfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2NhbmNlbF90cmFuc2FjdGlvbl9zZXJpYWxpemUoCiAgICAgICAgICAgIHR4X2lkPXR4X2lkLAogICAgICAgICAgICB4X2VuZF91c2VyX3dhbGxldF9pZD14X2VuZF91c2VyX3dhbGxldF9pZCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkNhbmNlbFRyYW5zYWN0aW9uUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9jYW5jZWxfdHJhbnNhY3Rpb25fc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdHhfaWQsCiAgICAgICAgeF9lbmRfdXNlcl93YWxsZXRfaWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB0eF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd0eElkJ10gPSB0eF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiB4X2VuZF91c2VyX3dhbGxldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ1gtRW5kLVVzZXItV2FsbGV0LUlkJ10gPSB4X2VuZF91c2VyX3dhbGxldF9pZAogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdHJhbnNhY3Rpb25zL3t0eElkfS9jYW5jZWwnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgY3JlYXRlX3RyYW5zYWN0aW9uKAogICAgICAgIHNlbGYsCiAgICAgICAgeF9lbmRfdXNlcl93YWxsZXRfaWQ6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iVW5pcXVlIElEIG9mIHRoZSBFbmQtVXNlciB3YWxsZXQgdG8gdGhlIEFQSSByZXF1ZXN0LiBSZXF1aXJlZCBmb3IgZW5kLXVzZXIgd2FsbGV0IG9wZXJhdGlvbnMuIildID0gTm9uZSwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgdHJhbnNhY3Rpb25fcmVxdWVzdDogT3B0aW9uYWxbVHJhbnNhY3Rpb25SZXF1ZXN0XSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtDcmVhdGVUcmFuc2FjdGlvblJlc3BvbnNlXV06CiAgICAgICAgIiIiQ3JlYXRlIGEgbmV3IHRyYW5zYWN0aW9uCgogICAgICAgIENyZWF0ZXMgYSBuZXcgdHJhbnNhY3Rpb24uIFRoaXMgZW5kcG9pbnQgY2FuIGJlIHVzZWQgZm9yIHJlZ3VsYXIgVHJhbnNmZXJzLCBDb250cmFjdCBDYWxscywgUmF3ICYgVHlwZWQgbWVzc2FnZSBzaWduaW5nLiAtIEZvciBUcmFuc2ZlcnMsIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXJzIGFyZTogYGFzc2V0SWRgLCBgc291cmNlYCwgYGRlc3RpbmF0aW9uYCBhbmQgYGFtb3VudGAuIC0gRm9yIENvbnRyYWN0IENhbGxzLCB0aGUgcmVxdWlyZWQgcGFyYW1ldGVycyBhcmU6IGBvcGVyYXRpb24uQ09OVFJBQ1RfQ0FMTGAsIGBhc3NldElkYCAoQmFzZSBBc3NldCksIGBzb3VyY2VgLAoKICAgICAgICA6cGFyYW0geF9lbmRfdXNlcl93YWxsZXRfaWQ6IFVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLgogICAgICAgIDp0eXBlIHhfZW5kX3VzZXJfd2FsbGV0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gdHJhbnNhY3Rpb25fcmVxdWVzdDoKICAgICAgICA6dHlwZSB0cmFuc2FjdGlvbl9yZXF1ZXN0OiBUcmFuc2FjdGlvblJlcXVlc3QKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9jcmVhdGVfdHJhbnNhY3Rpb25fc2VyaWFsaXplKAogICAgICAgICAgICB4X2VuZF91c2VyX3dhbGxldF9pZD14X2VuZF91c2VyX3dhbGxldF9pZCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgdHJhbnNhY3Rpb25fcmVxdWVzdD10cmFuc2FjdGlvbl9yZXF1ZXN0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiQ3JlYXRlVHJhbnNhY3Rpb25SZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2NyZWF0ZV90cmFuc2FjdGlvbl9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB4X2VuZF91c2VyX3dhbGxldF9pZCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgdHJhbnNhY3Rpb25fcmVxdWVzdCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIHhfZW5kX3VzZXJfd2FsbGV0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snWC1FbmQtVXNlci1XYWxsZXQtSWQnXSA9IHhfZW5kX3VzZXJfd2FsbGV0X2lkCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiB0cmFuc2FjdGlvbl9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSB0cmFuc2FjdGlvbl9yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90cmFuc2FjdGlvbnMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZHJvcF90cmFuc2FjdGlvbigKICAgICAgICBzZWxmLAogICAgICAgIHR4X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB0cmFuc2FjdGlvbiIpXSwKICAgICAgICB4X2VuZF91c2VyX3dhbGxldF9pZDogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJVbmlxdWUgSUQgb2YgdGhlIEVuZC1Vc2VyIHdhbGxldCB0byB0aGUgQVBJIHJlcXVlc3QuIFJlcXVpcmVkIGZvciBlbmQtdXNlciB3YWxsZXQgb3BlcmF0aW9ucy4iKV0gPSBOb25lLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBkcm9wX3RyYW5zYWN0aW9uX3JlcXVlc3Q6IE9wdGlvbmFsW0Ryb3BUcmFuc2FjdGlvblJlcXVlc3RdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0Ryb3BUcmFuc2FjdGlvblJlc3BvbnNlXV06CiAgICAgICAgIiIiRHJvcCBFVEggKEVWTSkgdHJhbnNhY3Rpb24gYnkgSUQKCiAgICAgICAgRHJvcHMgYSBzdHVjayBFVEggKEVWTSkgdHJhbnNhY3Rpb24gYW5kIGNyZWF0ZXMgYSByZXBsYWNlbWVudCB0cmFuc2FjdGlvbiB3aXRoIDAgYW1vdW50LiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKICAgICAgICA6cGFyYW0gdHhfaWQ6IFRoZSBJRCBvZiB0aGUgdHJhbnNhY3Rpb24gKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHR4X2lkOiBzdHIKICAgICAgICA6cGFyYW0geF9lbmRfdXNlcl93YWxsZXRfaWQ6IFVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLgogICAgICAgIDp0eXBlIHhfZW5kX3VzZXJfd2FsbGV0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gZHJvcF90cmFuc2FjdGlvbl9yZXF1ZXN0OgogICAgICAgIDp0eXBlIGRyb3BfdHJhbnNhY3Rpb25fcmVxdWVzdDogRHJvcFRyYW5zYWN0aW9uUmVxdWVzdAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJkcm9wX3RyYW5zYWN0aW9uIiwgcGFyYW1fbmFtZT0idHhfaWQiLCBwYXJhbV92YWx1ZT10eF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZHJvcF90cmFuc2FjdGlvbl9zZXJpYWxpemUoCiAgICAgICAgICAgIHR4X2lkPXR4X2lkLAogICAgICAgICAgICB4X2VuZF91c2VyX3dhbGxldF9pZD14X2VuZF91c2VyX3dhbGxldF9pZCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgZHJvcF90cmFuc2FjdGlvbl9yZXF1ZXN0PWRyb3BfdHJhbnNhY3Rpb25fcmVxdWVzdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkRyb3BUcmFuc2FjdGlvblJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZHJvcF90cmFuc2FjdGlvbl9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB0eF9pZCwKICAgICAgICB4X2VuZF91c2VyX3dhbGxldF9pZCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgZHJvcF90cmFuc2FjdGlvbl9yZXF1ZXN0LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB0eF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd0eElkJ10gPSB0eF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiB4X2VuZF91c2VyX3dhbGxldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ1gtRW5kLVVzZXItV2FsbGV0LUlkJ10gPSB4X2VuZF91c2VyX3dhbGxldF9pZAogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgZHJvcF90cmFuc2FjdGlvbl9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBkcm9wX3RyYW5zYWN0aW9uX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3RyYW5zYWN0aW9ucy97dHhJZH0vZHJvcCcsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBlc3RpbWF0ZV9uZXR3b3JrX2ZlZSgKICAgICAgICBzZWxmLAogICAgICAgIGFzc2V0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGFzc2V0IGZvciB3aGljaCB0byBlc3RpbWF0ZSB0aGUgZmVlIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbRXN0aW1hdGVkTmV0d29ya0ZlZVJlc3BvbnNlXV06CiAgICAgICAgIiIiRXN0aW1hdGUgdGhlIHJlcXVpcmVkIGZlZSBmb3IgYW4gYXNzZXQKCiAgICAgICAgR2V0cyB0aGUgZXN0aW1hdGVkIHJlcXVpcmVkIGZlZSBmb3IgYW4gYXNzZXQuIEZpcmVibG9ja3MgZmV0Y2hlcywgY2FsY3VsYXRlcyBhbmQgY2FjaGVzIHRoZSByZXN1bHQgZXZlcnkgMzAgc2Vjb25kcy4gQ3VzdG9tZXJzIHNob3VsZCBxdWVyeSB0aGlzIEFQSSB3aGlsZSB0YWtpbmcgdGhlIGNhY2hpbmcgaW50ZXJ2YWwgaW50byBjb25zaWRlcmF0aW9uLiBOb3RlczogLSBUaGUgYG5ldHdvcmtGZWVgIHBhcmFtZXRlciBpcyB0aGUgYGdhc1ByaWNlYCB3aXRoIGEgZ2l2ZW4gZGVsdGEgYWRkZWQsIG11bHRpcGxpZWQgYnkgdGhlIGdhc0xpbWl0IHBsdXMgdGhlIGRlbHRhLiAtIFRoZSBlc3RpbWF0aW9uIHByb3ZpZGVkIGRlcGVuZHMgb24gdGhlIGFzc2V0IHR5cGUuICAgICAtIEZvciBVVFhPLWJhc2VkIGFzc2V0cywgdGhlIHJlc3BvbnNlIGNvbnRhaW5zIHRoZSBgZmVlUGVyQnl0ZWAgcGFyYW1ldGVyICAgICAtIEZvciBFVEgtYmFzZWQgYW5kIGFsbCBFVk0gYmFzZWQgYXNzZXRzLCB0aGUgcmVzcG9uc2Ugd2lsbCBjb250YWluIGBnYXNQcmljZWAgcGFyYW1ldGVyLiBUaGlzIGlzIGNhbGN1bGF0ZWQgYnkgYWRkaW5nIHRoZSBgYmFzZUZlZWAgdG8gdGhlIGBhY3R1YWxQcmlvcml0eWAgYmFzZWQgb24gdGhlIGxhdGVzdCAxMiBibG9ja3MuIFRoZSByZXNwb25zZSBmb3IgRVRILWJhc2VkICBjb250YWlucyB0aGUgYGJhc2VGZWVgLCBgZ2FzUHJpY2VgLCBhbmQgYHByaW9yaXR5RmVlYCBwYXJhbWV0ZXJzLiAgICAgLSBGb3IgQURBLWJhc2VkIGFzc2V0cywgdGhlIHJlc3BvbnNlIHdpbGwgY29udGFpbiB0aGUgcGFyYW1ldGVyIGBuZXR3b3JrRmVlYCBhbmQgYGZlZVBlckJ5dGVgIHBhcmFtZXRlcnMuICAgICAtIEZvciBYUlAgYW5kIFhMTSwgdGhlIHJlc3BvbnNlIHdpbGwgY29udGFpbiB0aGUgdHJhbnNhY3Rpb24gZmVlLiAgICAgLSBGb3Igb3RoZXIgYXNzZXRzLCB0aGUgcmVzcG9uc2Ugd2lsbCBjb250YWluIHRoZSBgbmV0d29ya0ZlZWAgcGFyYW1ldGVyLiAgTGVhcm4gbW9yZSBhYm91dCBGaXJlYmxvY2tzIEZlZSBNYW5hZ2VtZW50IGluIHRoZSBmb2xsb3dpbmcgW2d1aWRlXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2VzdGltYXRlLXRyYW5zYWN0aW9uLWZlZSkuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgogICAgICAgIDpwYXJhbSBhc3NldF9pZDogVGhlIGFzc2V0IGZvciB3aGljaCB0byBlc3RpbWF0ZSB0aGUgZmVlIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhc3NldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImVzdGltYXRlX25ldHdvcmtfZmVlIiwgcGFyYW1fbmFtZT0iYXNzZXRfaWQiLCBwYXJhbV92YWx1ZT1hc3NldF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZXN0aW1hdGVfbmV0d29ya19mZWVfc2VyaWFsaXplKAogICAgICAgICAgICBhc3NldF9pZD1hc3NldF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkVzdGltYXRlZE5ldHdvcmtGZWVSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2VzdGltYXRlX25ldHdvcmtfZmVlX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGFzc2V0X2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiBhc3NldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnYXNzZXRJZCcsIGFzc2V0X2lkKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvZXN0aW1hdGVfbmV0d29ya19mZWUnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZXN0aW1hdGVfdHJhbnNhY3Rpb25fZmVlKAogICAgICAgIHNlbGYsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIHRyYW5zYWN0aW9uX3JlcXVlc3Q6IE9wdGlvbmFsW1RyYW5zYWN0aW9uUmVxdWVzdF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbRXN0aW1hdGVkVHJhbnNhY3Rpb25GZWVSZXNwb25zZV1dOgogICAgICAgICIiIkVzdGltYXRlIHRyYW5zYWN0aW9uIGZlZQoKICAgICAgICBFc3RpbWF0ZXMgdGhlIHRyYW5zYWN0aW9uIGZlZSBmb3IgYSBzcGVjaWZpYyB0cmFuc2FjdGlvbiByZXF1ZXN0LiBUaGlzIGVuZHBvaW50IHNpbXVsYXRlcyBhIHRyYW5zYWN0aW9uIHdoaWNoIG1lYW5zIHRoYXQgdGhlIHN5c3RlbSB3aWxsIGV4cGVjdCB0byBoYXZlIHRoZSByZXF1ZXN0ZWQgYXNzZXQgYW5kIGJhbGFuY2UgaW4gdGhlIHNwZWNpZmllZCB3YWxsZXQuICAgKipOb3RlKio6IFN1cHBvcnRzIGFsbCBGaXJlYmxvY2tzIGFzc2V0cyBleGNlcHQgWkNhc2ggKFpFQykuIExlYXJuIG1vcmUgYWJvdXQgRmlyZWJsb2NrcyBGZWUgTWFuYWdlbWVudCBpbiB0aGUgZm9sbG93aW5nIFtndWlkZV0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS9lc3RpbWF0ZS10cmFuc2FjdGlvbi1mZWUpLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSB0cmFuc2FjdGlvbl9yZXF1ZXN0OgogICAgICAgIDp0eXBlIHRyYW5zYWN0aW9uX3JlcXVlc3Q6IFRyYW5zYWN0aW9uUmVxdWVzdAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2VzdGltYXRlX3RyYW5zYWN0aW9uX2ZlZV9zZXJpYWxpemUoCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIHRyYW5zYWN0aW9uX3JlcXVlc3Q9dHJhbnNhY3Rpb25fcmVxdWVzdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkVzdGltYXRlZFRyYW5zYWN0aW9uRmVlUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9lc3RpbWF0ZV90cmFuc2FjdGlvbl9mZWVfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIHRyYW5zYWN0aW9uX3JlcXVlc3QsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHRyYW5zYWN0aW9uX3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHRyYW5zYWN0aW9uX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3RyYW5zYWN0aW9ucy9lc3RpbWF0ZV9mZWUnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZnJlZXplX3RyYW5zYWN0aW9uKAogICAgICAgIHNlbGYsCiAgICAgICAgdHhfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIHRyYW5zYWN0aW9uIHRvIGZyZWV6ZSIpXSwKICAgICAgICB4X2VuZF91c2VyX3dhbGxldF9pZDogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJVbmlxdWUgSUQgb2YgdGhlIEVuZC1Vc2VyIHdhbGxldCB0byB0aGUgQVBJIHJlcXVlc3QuIFJlcXVpcmVkIGZvciBlbmQtdXNlciB3YWxsZXQgb3BlcmF0aW9ucy4iKV0gPSBOb25lLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0ZyZWV6ZVRyYW5zYWN0aW9uUmVzcG9uc2VdXToKICAgICAgICAiIiJGcmVlemUgYSB0cmFuc2FjdGlvbgoKICAgICAgICBGcmVlemVzIGEgdHJhbnNhY3Rpb24gYnkgSUQuICBVc3VhbGx5IHVzZWQgZm9yIEFNTCBpbnRlZ3JhdGlvbnMgd2hlbiB0aGUgaW5jb21pbmcgZnVuZHMgc2hvdWxkIGJlIHF1YXJhbnRpbmVkLiBGb3IgYWNjb3VudCBiYXNlZCBhc3NldHMgLSB0aGUgZW50aXJlIGFtb3VudCBvZiB0aGUgdHJhbnNhY3Rpb24gaXMgZnJvemVuICBGb3IgVVRYTyBiYXNlZCBhc3NldHMgLSBhbGwgVVRYT3Mgb2YgdGhlIHNwZWNpZmllZCB0cmFuc2FjdGlvbiBhcmUgZnJvemVuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKICAgICAgICA6cGFyYW0gdHhfaWQ6IFRoZSBJRCBvZiB0aGUgdHJhbnNhY3Rpb24gdG8gZnJlZXplIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB0eF9pZDogc3RyCiAgICAgICAgOnBhcmFtIHhfZW5kX3VzZXJfd2FsbGV0X2lkOiBVbmlxdWUgSUQgb2YgdGhlIEVuZC1Vc2VyIHdhbGxldCB0byB0aGUgQVBJIHJlcXVlc3QuIFJlcXVpcmVkIGZvciBlbmQtdXNlciB3YWxsZXQgb3BlcmF0aW9ucy4KICAgICAgICA6dHlwZSB4X2VuZF91c2VyX3dhbGxldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImZyZWV6ZV90cmFuc2FjdGlvbiIsIHBhcmFtX25hbWU9InR4X2lkIiwgcGFyYW1fdmFsdWU9dHhfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2ZyZWV6ZV90cmFuc2FjdGlvbl9zZXJpYWxpemUoCiAgICAgICAgICAgIHR4X2lkPXR4X2lkLAogICAgICAgICAgICB4X2VuZF91c2VyX3dhbGxldF9pZD14X2VuZF91c2VyX3dhbGxldF9pZCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkZyZWV6ZVRyYW5zYWN0aW9uUmVzcG9uc2UiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZnJlZXplX3RyYW5zYWN0aW9uX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHR4X2lkLAogICAgICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgdHhfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1sndHhJZCddID0gdHhfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgeF9lbmRfdXNlcl93YWxsZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydYLUVuZC1Vc2VyLVdhbGxldC1JZCddID0geF9lbmRfdXNlcl93YWxsZXRfaWQKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3RyYW5zYWN0aW9ucy97dHhJZH0vZnJlZXplJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF90cmFuc2FjdGlvbigKICAgICAgICBzZWxmLAogICAgICAgIHR4X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB0cmFuc2FjdGlvbiB0byByZXR1cm4iKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtUcmFuc2FjdGlvblJlc3BvbnNlXV06CiAgICAgICAgIiIiR2V0IGEgc3BlY2lmaWMgdHJhbnNhY3Rpb24gYnkgRmlyZWJsb2NrcyB0cmFuc2FjdGlvbiBJRAoKICAgICAgICBHZXQgYSBzcGVjaWZpYyB0cmFuc2FjdGlvbiBkYXRhIGJ5IEZpcmVibG9ja3MgVHJhbnNhY3Rpb24gSUQgPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgVmlld2VyLgoKICAgICAgICA6cGFyYW0gdHhfaWQ6IFRoZSBJRCBvZiB0aGUgdHJhbnNhY3Rpb24gdG8gcmV0dXJuIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB0eF9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF90cmFuc2FjdGlvbiIsIHBhcmFtX25hbWU9InR4X2lkIiwgcGFyYW1fdmFsdWU9dHhfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF90cmFuc2FjdGlvbl9zZXJpYWxpemUoCiAgICAgICAgICAgIHR4X2lkPXR4X2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiVHJhbnNhY3Rpb25SZXNwb25zZSIsCiAgICAgICAgICAgICc0MDAnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfdHJhbnNhY3Rpb25fc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdHhfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHR4X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3R4SWQnXSA9IHR4X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdHJhbnNhY3Rpb25zL3t0eElkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfdHJhbnNhY3Rpb25fYnlfZXh0ZXJuYWxfaWQoCiAgICAgICAgc2VsZiwKICAgICAgICBleHRlcm5hbF90eF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBleHRlcm5hbCBJRCBvZiB0aGUgdHJhbnNhY3Rpb24gdG8gcmV0dXJuIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVHJhbnNhY3Rpb25SZXNwb25zZV1dOgogICAgICAgICIiIkdldCBhIHNwZWNpZmljIHRyYW5zYWN0aW9uIGJ5IGV4dGVybmFsIHRyYW5zYWN0aW9uIElECgogICAgICAgIFJldHVybnMgdHJhbnNhY3Rpb24gYnkgZXh0ZXJuYWwgdHJhbnNhY3Rpb24gSUQuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIFZpZXdlci4KCiAgICAgICAgOnBhcmFtIGV4dGVybmFsX3R4X2lkOiBUaGUgZXh0ZXJuYWwgSUQgb2YgdGhlIHRyYW5zYWN0aW9uIHRvIHJldHVybiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgZXh0ZXJuYWxfdHhfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfdHJhbnNhY3Rpb25fYnlfZXh0ZXJuYWxfaWQiLCBwYXJhbV9uYW1lPSJleHRlcm5hbF90eF9pZCIsIHBhcmFtX3ZhbHVlPWV4dGVybmFsX3R4X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfdHJhbnNhY3Rpb25fYnlfZXh0ZXJuYWxfaWRfc2VyaWFsaXplKAogICAgICAgICAgICBleHRlcm5hbF90eF9pZD1leHRlcm5hbF90eF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlRyYW5zYWN0aW9uUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfdHJhbnNhY3Rpb25fYnlfZXh0ZXJuYWxfaWRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgZXh0ZXJuYWxfdHhfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGV4dGVybmFsX3R4X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2V4dGVybmFsVHhJZCddID0gZXh0ZXJuYWxfdHhfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90cmFuc2FjdGlvbnMvZXh0ZXJuYWxfdHhfaWQve2V4dGVybmFsVHhJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X3RyYW5zYWN0aW9ucygKICAgICAgICBzZWxmLAogICAgICAgIG5leHQ6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQ3Vyc29yIHJldHVybmVkIGluIG5leHQtcGFnZSBoZWFkZXIgdGhhdCBjYW4gYmUgdXNlZCB0byBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMiKV0gPSBOb25lLAogICAgICAgIHByZXY6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQ3Vyc29yIHJldHVybmVkIGluIHByZXYtcGFnZSBoZWFkZXIgdGhhdCBjYW4gYmUgdXNlZCB0byBmZXRjaCB0aGUgcHJldmlvdXMgcGFnZSBvZiByZXN1bHRzIildID0gTm9uZSwKICAgICAgICBiZWZvcmU6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iVW5peCB0aW1lc3RhbXAgaW4gbWlsbGlzZWNvbmRzLiBSZXR1cm5zIG9ubHkgdHJhbnNhY3Rpb25zIGNyZWF0ZWQgYmVmb3JlIHRoZSBzcGVjaWZpZWQgZGF0ZS4gUHJvdmlkZXMgYW4gZXhwbGljaXQgZW5kIHRpbWUuIElmIG5vdCBwcm92aWRlZCwgZGVmYXVsdCB2YWx1ZSB3aWxsIGJlIGFwcGxpZWQsIGFuZCBtYXkgY2hhbmdlIG92ZXIgdGltZS4gIFRoZSBjdXJyZW50IGRlZmF1bHQgdmFsdWUgaXMgdGhlIHBhc3QgOTAgZGF5cy4gIildID0gTm9uZSwKICAgICAgICBhZnRlcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJVbml4IHRpbWVzdGFtcCBpbiBtaWxsaXNlY29uZHMuIFJldHVybnMgb25seSB0cmFuc2FjdGlvbnMgY3JlYXRlZCBhZnRlciB0aGUgc3BlY2lmaWVkIGRhdGUuIFByb3ZpZGVzIGFuIGV4cGxpY2l0IHN0YXJ0IHRpbWUuIElmIG5vdCBwcm92aWRlZCwgZGVmYXVsdCB2YWx1ZSB3aWxsIGJlIGFwcGxpZWQsIGFuZCBtYXkgY2hhbmdlIG92ZXIgdGltZS4gIFRoZSBjdXJyZW50IGRlZmF1bHQgdmFsdWUgaXMgdGhlIHBhc3QgOTAgZGF5cy4gIildID0gTm9uZSwKICAgICAgICBzdGF0dXM6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iWW91IGNhbiBmaWx0ZXIgYnkgb25lIG9mIHRoZSBzdGF0dXNlcy4iKV0gPSBOb25lLAogICAgICAgIG9yZGVyX2J5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBmaWVsZCB0byBvcmRlciB0aGUgcmVzdWx0cyBieS4gICoqTm90ZToqKiBPcmRlcmluZyBieSBhIGZpZWxkIHRoYXQgaXMgbm90IGBjcmVhdGVkQXRgIG1heSByZXN1bHQgaW4gdHJhbnNhY3Rpb25zIHRoYXQgcmVjZWl2ZSB1cGRhdGVzIGFzIHlvdSByZXF1ZXN0IHRoZSBuZXh0IG9yIHByZXZpb3VzIHBhZ2VzIG9mIHJlc3VsdHMsIHJlc3VsdGluZyBpbiBtaXNzaW5nIHRob3NlIHRyYW5zYWN0aW9ucy4gIildID0gTm9uZSwKICAgICAgICBzb3J0OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBkaXJlY3Rpb24gdG8gb3JkZXIgdGhlIHJlc3VsdHMgYnkiKV0gPSBOb25lLAogICAgICAgIGxpbWl0OiBBbm5vdGF0ZWRbT3B0aW9uYWxbQW5ub3RhdGVkW2ludCwgRmllbGQoc3RyaWN0PVRydWUsIGdlPTEpXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJMaW1pdHMgdGhlIG51bWJlciBvZiByZXN1bHRzLiBJZiBub3QgcHJvdmlkZWQsIGEgbGltaXQgb2YgMjAwIHdpbGwgYmUgdXNlZC4gVGhlIG1heGltdW0gYWxsb3dlZCBsaW1pdCBpcyA1MDAiKV0gPSBOb25lLAogICAgICAgIHNvdXJjZV90eXBlOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBzb3VyY2UgdHlwZSBvZiB0aGUgdHJhbnNhY3Rpb24iKV0gPSBOb25lLAogICAgICAgIHNvdXJjZV9pZDogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgc291cmNlIElEIG9mIHRoZSB0cmFuc2FjdGlvbiIpXSA9IE5vbmUsCiAgICAgICAgZGVzdF90eXBlOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBkZXN0aW5hdGlvbiB0eXBlIG9mIHRoZSB0cmFuc2FjdGlvbiIpXSA9IE5vbmUsCiAgICAgICAgZGVzdF9pZDogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGVzdGluYXRpb24gSUQgb2YgdGhlIHRyYW5zYWN0aW9uIildID0gTm9uZSwKICAgICAgICBhc3NldHM6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSBsaXN0IG9mIGFzc2V0cyB0byBmaWx0ZXIgYnksIHNlcGVyYXRlZCBieSBjb21tYXMiKV0gPSBOb25lLAogICAgICAgIHR4X2hhc2g6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iUmV0dXJucyBvbmx5IHJlc3VsdHMgd2l0aCBhIHNwZWNpZmllZCB0eEhhc2giKV0gPSBOb25lLAogICAgICAgIHNvdXJjZV93YWxsZXRfaWQ6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iUmV0dXJucyBvbmx5IHJlc3VsdHMgd2hlcmUgdGhlIHNvdXJjZSBpcyBhIHNwZWNpZmljIGVuZCB1c2VyIHdhbGxldCIpXSA9IE5vbmUsCiAgICAgICAgZGVzdF93YWxsZXRfaWQ6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iUmV0dXJucyBvbmx5IHJlc3VsdHMgd2hlcmUgdGhlIGRlc3RpbmF0aW9uIGlzIGEgc3BlY2lmaWMgZW5kIHVzZXIgd2FsbGV0IildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0xpc3RbVHJhbnNhY3Rpb25SZXNwb25zZV1dXToKICAgICAgICAiIiJHZXQgdHJhbnNhY3Rpb24gaGlzdG9yeQoKICAgICAgICBHZXQgdGhlIHRyYW5zYWN0aW9uIGhpc3RvcnkgZm9yIHlvdXIgd29ya3NwYWNlLiAgKipFbmRwb2ludCBQZXJtaXNzaW9uczoqKiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgVmlld2VyLiAKCiAgICAgICAgOnBhcmFtIG5leHQ6IEN1cnNvciByZXR1cm5lZCBpbiBuZXh0LXBhZ2UgaGVhZGVyIHRoYXQgY2FuIGJlIHVzZWQgdG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiByZXN1bHRzCiAgICAgICAgOnR5cGUgbmV4dDogc3RyCiAgICAgICAgOnBhcmFtIHByZXY6IEN1cnNvciByZXR1cm5lZCBpbiBwcmV2LXBhZ2UgaGVhZGVyIHRoYXQgY2FuIGJlIHVzZWQgdG8gZmV0Y2ggdGhlIHByZXZpb3VzIHBhZ2Ugb2YgcmVzdWx0cwogICAgICAgIDp0eXBlIHByZXY6IHN0cgogICAgICAgIDpwYXJhbSBiZWZvcmU6IFVuaXggdGltZXN0YW1wIGluIG1pbGxpc2Vjb25kcy4gUmV0dXJucyBvbmx5IHRyYW5zYWN0aW9ucyBjcmVhdGVkIGJlZm9yZSB0aGUgc3BlY2lmaWVkIGRhdGUuIFByb3ZpZGVzIGFuIGV4cGxpY2l0IGVuZCB0aW1lLiBJZiBub3QgcHJvdmlkZWQsIGRlZmF1bHQgdmFsdWUgd2lsbCBiZSBhcHBsaWVkLCBhbmQgbWF5IGNoYW5nZSBvdmVyIHRpbWUuICBUaGUgY3VycmVudCBkZWZhdWx0IHZhbHVlIGlzIHRoZSBwYXN0IDkwIGRheXMuIAogICAgICAgIDp0eXBlIGJlZm9yZTogc3RyCiAgICAgICAgOnBhcmFtIGFmdGVyOiBVbml4IHRpbWVzdGFtcCBpbiBtaWxsaXNlY29uZHMuIFJldHVybnMgb25seSB0cmFuc2FjdGlvbnMgY3JlYXRlZCBhZnRlciB0aGUgc3BlY2lmaWVkIGRhdGUuIFByb3ZpZGVzIGFuIGV4cGxpY2l0IHN0YXJ0IHRpbWUuIElmIG5vdCBwcm92aWRlZCwgZGVmYXVsdCB2YWx1ZSB3aWxsIGJlIGFwcGxpZWQsIGFuZCBtYXkgY2hhbmdlIG92ZXIgdGltZS4gIFRoZSBjdXJyZW50IGRlZmF1bHQgdmFsdWUgaXMgdGhlIHBhc3QgOTAgZGF5cy4gCiAgICAgICAgOnR5cGUgYWZ0ZXI6IHN0cgogICAgICAgIDpwYXJhbSBzdGF0dXM6IFlvdSBjYW4gZmlsdGVyIGJ5IG9uZSBvZiB0aGUgc3RhdHVzZXMuCiAgICAgICAgOnR5cGUgc3RhdHVzOiBzdHIKICAgICAgICA6cGFyYW0gb3JkZXJfYnk6IFRoZSBmaWVsZCB0byBvcmRlciB0aGUgcmVzdWx0cyBieS4gICoqTm90ZToqKiBPcmRlcmluZyBieSBhIGZpZWxkIHRoYXQgaXMgbm90IGBjcmVhdGVkQXRgIG1heSByZXN1bHQgaW4gdHJhbnNhY3Rpb25zIHRoYXQgcmVjZWl2ZSB1cGRhdGVzIGFzIHlvdSByZXF1ZXN0IHRoZSBuZXh0IG9yIHByZXZpb3VzIHBhZ2VzIG9mIHJlc3VsdHMsIHJlc3VsdGluZyBpbiBtaXNzaW5nIHRob3NlIHRyYW5zYWN0aW9ucy4gCiAgICAgICAgOnR5cGUgb3JkZXJfYnk6IHN0cgogICAgICAgIDpwYXJhbSBzb3J0OiBUaGUgZGlyZWN0aW9uIHRvIG9yZGVyIHRoZSByZXN1bHRzIGJ5CiAgICAgICAgOnR5cGUgc29ydDogc3RyCiAgICAgICAgOnBhcmFtIGxpbWl0OiBMaW1pdHMgdGhlIG51bWJlciBvZiByZXN1bHRzLiBJZiBub3QgcHJvdmlkZWQsIGEgbGltaXQgb2YgMjAwIHdpbGwgYmUgdXNlZC4gVGhlIG1heGltdW0gYWxsb3dlZCBsaW1pdCBpcyA1MDAKICAgICAgICA6dHlwZSBsaW1pdDogaW50CiAgICAgICAgOnBhcmFtIHNvdXJjZV90eXBlOiBUaGUgc291cmNlIHR5cGUgb2YgdGhlIHRyYW5zYWN0aW9uCiAgICAgICAgOnR5cGUgc291cmNlX3R5cGU6IHN0cgogICAgICAgIDpwYXJhbSBzb3VyY2VfaWQ6IFRoZSBzb3VyY2UgSUQgb2YgdGhlIHRyYW5zYWN0aW9uCiAgICAgICAgOnR5cGUgc291cmNlX2lkOiBzdHIKICAgICAgICA6cGFyYW0gZGVzdF90eXBlOiBUaGUgZGVzdGluYXRpb24gdHlwZSBvZiB0aGUgdHJhbnNhY3Rpb24KICAgICAgICA6dHlwZSBkZXN0X3R5cGU6IHN0cgogICAgICAgIDpwYXJhbSBkZXN0X2lkOiBUaGUgZGVzdGluYXRpb24gSUQgb2YgdGhlIHRyYW5zYWN0aW9uCiAgICAgICAgOnR5cGUgZGVzdF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGFzc2V0czogQSBsaXN0IG9mIGFzc2V0cyB0byBmaWx0ZXIgYnksIHNlcGVyYXRlZCBieSBjb21tYXMKICAgICAgICA6dHlwZSBhc3NldHM6IHN0cgogICAgICAgIDpwYXJhbSB0eF9oYXNoOiBSZXR1cm5zIG9ubHkgcmVzdWx0cyB3aXRoIGEgc3BlY2lmaWVkIHR4SGFzaAogICAgICAgIDp0eXBlIHR4X2hhc2g6IHN0cgogICAgICAgIDpwYXJhbSBzb3VyY2Vfd2FsbGV0X2lkOiBSZXR1cm5zIG9ubHkgcmVzdWx0cyB3aGVyZSB0aGUgc291cmNlIGlzIGEgc3BlY2lmaWMgZW5kIHVzZXIgd2FsbGV0CiAgICAgICAgOnR5cGUgc291cmNlX3dhbGxldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGRlc3Rfd2FsbGV0X2lkOiBSZXR1cm5zIG9ubHkgcmVzdWx0cyB3aGVyZSB0aGUgZGVzdGluYXRpb24gaXMgYSBzcGVjaWZpYyBlbmQgdXNlciB3YWxsZXQKICAgICAgICA6dHlwZSBkZXN0X3dhbGxldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X3RyYW5zYWN0aW9uc19zZXJpYWxpemUoCiAgICAgICAgICAgIG5leHQ9bmV4dCwKICAgICAgICAgICAgcHJldj1wcmV2LAogICAgICAgICAgICBiZWZvcmU9YmVmb3JlLAogICAgICAgICAgICBhZnRlcj1hZnRlciwKICAgICAgICAgICAgc3RhdHVzPXN0YXR1cywKICAgICAgICAgICAgb3JkZXJfYnk9b3JkZXJfYnksCiAgICAgICAgICAgIHNvcnQ9c29ydCwKICAgICAgICAgICAgbGltaXQ9bGltaXQsCiAgICAgICAgICAgIHNvdXJjZV90eXBlPXNvdXJjZV90eXBlLAogICAgICAgICAgICBzb3VyY2VfaWQ9c291cmNlX2lkLAogICAgICAgICAgICBkZXN0X3R5cGU9ZGVzdF90eXBlLAogICAgICAgICAgICBkZXN0X2lkPWRlc3RfaWQsCiAgICAgICAgICAgIGFzc2V0cz1hc3NldHMsCiAgICAgICAgICAgIHR4X2hhc2g9dHhfaGFzaCwKICAgICAgICAgICAgc291cmNlX3dhbGxldF9pZD1zb3VyY2Vfd2FsbGV0X2lkLAogICAgICAgICAgICBkZXN0X3dhbGxldF9pZD1kZXN0X3dhbGxldF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkxpc3RbVHJhbnNhY3Rpb25SZXNwb25zZV0iLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfdHJhbnNhY3Rpb25zX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIG5leHQsCiAgICAgICAgcHJldiwKICAgICAgICBiZWZvcmUsCiAgICAgICAgYWZ0ZXIsCiAgICAgICAgc3RhdHVzLAogICAgICAgIG9yZGVyX2J5LAogICAgICAgIHNvcnQsCiAgICAgICAgbGltaXQsCiAgICAgICAgc291cmNlX3R5cGUsCiAgICAgICAgc291cmNlX2lkLAogICAgICAgIGRlc3RfdHlwZSwKICAgICAgICBkZXN0X2lkLAogICAgICAgIGFzc2V0cywKICAgICAgICB0eF9oYXNoLAogICAgICAgIHNvdXJjZV93YWxsZXRfaWQsCiAgICAgICAgZGVzdF93YWxsZXRfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIG5leHQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ25leHQnLCBuZXh0KSkKICAgICAgICAgICAgCiAgICAgICAgaWYgcHJldiBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncHJldicsIHByZXYpKQogICAgICAgICAgICAKICAgICAgICBpZiBiZWZvcmUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2JlZm9yZScsIGJlZm9yZSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIGFmdGVyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdhZnRlcicsIGFmdGVyKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgc3RhdHVzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdzdGF0dXMnLCBzdGF0dXMpKQogICAgICAgICAgICAKICAgICAgICBpZiBvcmRlcl9ieSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnb3JkZXJCeScsIG9yZGVyX2J5KSkKICAgICAgICAgICAgCiAgICAgICAgaWYgc29ydCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnc29ydCcsIHNvcnQpKQogICAgICAgICAgICAKICAgICAgICBpZiBsaW1pdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnbGltaXQnLCBsaW1pdCkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHNvdXJjZV90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdzb3VyY2VUeXBlJywgc291cmNlX3R5cGUpKQogICAgICAgICAgICAKICAgICAgICBpZiBzb3VyY2VfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3NvdXJjZUlkJywgc291cmNlX2lkKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgZGVzdF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdkZXN0VHlwZScsIGRlc3RfdHlwZSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIGRlc3RfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2Rlc3RJZCcsIGRlc3RfaWQpKQogICAgICAgICAgICAKICAgICAgICBpZiBhc3NldHMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2Fzc2V0cycsIGFzc2V0cykpCiAgICAgICAgICAgIAogICAgICAgIGlmIHR4X2hhc2ggaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3R4SGFzaCcsIHR4X2hhc2gpKQogICAgICAgICAgICAKICAgICAgICBpZiBzb3VyY2Vfd2FsbGV0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdzb3VyY2VXYWxsZXRJZCcsIHNvdXJjZV93YWxsZXRfaWQpKQogICAgICAgICAgICAKICAgICAgICBpZiBkZXN0X3dhbGxldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnZGVzdFdhbGxldElkJywgZGVzdF93YWxsZXRfaWQpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy90cmFuc2FjdGlvbnMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgc2V0X2NvbmZpcm1hdGlvbl90aHJlc2hvbGRfYnlfdHJhbnNhY3Rpb25faGFzaCgKICAgICAgICBzZWxmLAogICAgICAgIHR4X2hhc2g6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgVHhIYXNoIildLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBzZXRfY29uZmlybWF0aW9uc190aHJlc2hvbGRfcmVxdWVzdDogT3B0aW9uYWxbU2V0Q29uZmlybWF0aW9uc1RocmVzaG9sZFJlcXVlc3RdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1NldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXNwb25zZV1dOgogICAgICAgICIiIlNldCBjb25maXJtYXRpb24gdGhyZXNob2xkIGJ5IHRyYW5zYWN0aW9uIGhhc2gKCiAgICAgICAgT3ZlcnJpZGVzIHRoZSByZXF1aXJlZCBudW1iZXIgb2YgY29uZmlybWF0aW9ucyBmb3IgdHJhbnNhY3Rpb24gY29tcGxldGlvbiBieSB0cmFuc2FjdGlvbiBoYXNoLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKICAgICAgICA6cGFyYW0gdHhfaGFzaDogVGhlIFR4SGFzaCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdHhfaGFzaDogc3RyCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIHNldF9jb25maXJtYXRpb25zX3RocmVzaG9sZF9yZXF1ZXN0OgogICAgICAgIDp0eXBlIHNldF9jb25maXJtYXRpb25zX3RocmVzaG9sZF9yZXF1ZXN0OiBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJzZXRfY29uZmlybWF0aW9uX3RocmVzaG9sZF9ieV90cmFuc2FjdGlvbl9oYXNoIiwgcGFyYW1fbmFtZT0idHhfaGFzaCIsIHBhcmFtX3ZhbHVlPXR4X2hhc2gpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3NldF9jb25maXJtYXRpb25fdGhyZXNob2xkX2J5X3RyYW5zYWN0aW9uX2hhc2hfc2VyaWFsaXplKAogICAgICAgICAgICB0eF9oYXNoPXR4X2hhc2gsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIHNldF9jb25maXJtYXRpb25zX3RocmVzaG9sZF9yZXF1ZXN0PXNldF9jb25maXJtYXRpb25zX3RocmVzaG9sZF9yZXF1ZXN0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiU2V0Q29uZmlybWF0aW9uc1RocmVzaG9sZFJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfc2V0X2NvbmZpcm1hdGlvbl90aHJlc2hvbGRfYnlfdHJhbnNhY3Rpb25faGFzaF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB0eF9oYXNoLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBzZXRfY29uZmlybWF0aW9uc190aHJlc2hvbGRfcmVxdWVzdCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgdHhfaGFzaCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd0eEhhc2gnXSA9IHR4X2hhc2gKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBzZXRfY29uZmlybWF0aW9uc190aHJlc2hvbGRfcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gc2V0X2NvbmZpcm1hdGlvbnNfdGhyZXNob2xkX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3R4SGFzaC97dHhIYXNofS9zZXRfY29uZmlybWF0aW9uX3RocmVzaG9sZCcsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBzZXRfdHJhbnNhY3Rpb25fY29uZmlybWF0aW9uX3RocmVzaG9sZCgKICAgICAgICBzZWxmLAogICAgICAgIHR4X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB0cmFuc2FjdGlvbiIpXSwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgc2V0X2NvbmZpcm1hdGlvbnNfdGhyZXNob2xkX3JlcXVlc3Q6IE9wdGlvbmFsW1NldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXF1ZXN0XSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVzcG9uc2VdXToKICAgICAgICAiIiJTZXQgY29uZmlybWF0aW9uIHRocmVzaG9sZCBieSBGaXJlYmxvY2tzIFRyYW5zYWN0aW9uIElECgogICAgICAgIE92ZXJyaWRlcyB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mIGNvbmZpcm1hdGlvbnMgZm9yIHRyYW5zYWN0aW9uIGNvbXBsZXRpb24gRmlyZWJsb2NrcyBUcmFuc2FjdGlvbiBJRC4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiAgICAgICAgOnBhcmFtIHR4X2lkOiBUaGUgSUQgb2YgdGhlIHRyYW5zYWN0aW9uIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB0eF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIHNldF9jb25maXJtYXRpb25zX3RocmVzaG9sZF9yZXF1ZXN0OgogICAgICAgIDp0eXBlIHNldF9jb25maXJtYXRpb25zX3RocmVzaG9sZF9yZXF1ZXN0OiBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJzZXRfdHJhbnNhY3Rpb25fY29uZmlybWF0aW9uX3RocmVzaG9sZCIsIHBhcmFtX25hbWU9InR4X2lkIiwgcGFyYW1fdmFsdWU9dHhfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3NldF90cmFuc2FjdGlvbl9jb25maXJtYXRpb25fdGhyZXNob2xkX3NlcmlhbGl6ZSgKICAgICAgICAgICAgdHhfaWQ9dHhfaWQsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIHNldF9jb25maXJtYXRpb25zX3RocmVzaG9sZF9yZXF1ZXN0PXNldF9jb25maXJtYXRpb25zX3RocmVzaG9sZF9yZXF1ZXN0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiU2V0Q29uZmlybWF0aW9uc1RocmVzaG9sZFJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfc2V0X3RyYW5zYWN0aW9uX2NvbmZpcm1hdGlvbl90aHJlc2hvbGRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdHhfaWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIHNldF9jb25maXJtYXRpb25zX3RocmVzaG9sZF9yZXF1ZXN0LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB0eF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd0eElkJ10gPSB0eF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHNldF9jb25maXJtYXRpb25zX3RocmVzaG9sZF9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBzZXRfY29uZmlybWF0aW9uc190aHJlc2hvbGRfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdHJhbnNhY3Rpb25zL3t0eElkfS9zZXRfY29uZmlybWF0aW9uX3RocmVzaG9sZCcsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiB1bmZyZWV6ZV90cmFuc2FjdGlvbigKICAgICAgICBzZWxmLAogICAgICAgIHR4X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB0cmFuc2FjdGlvbiB0byB1bmZyZWV6ZSIpXSwKICAgICAgICB4X2VuZF91c2VyX3dhbGxldF9pZDogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJVbmlxdWUgSUQgb2YgdGhlIEVuZC1Vc2VyIHdhbGxldCB0byB0aGUgQVBJIHJlcXVlc3QuIFJlcXVpcmVkIGZvciBlbmQtdXNlciB3YWxsZXQgb3BlcmF0aW9ucy4iKV0gPSBOb25lLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1VuZnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZV1dOgogICAgICAgICIiIlVuZnJlZXplIGEgdHJhbnNhY3Rpb24KCiAgICAgICAgVW5mcmVlemVzIGEgdHJhbnNhY3Rpb24gYnkgRmlyZWJsb2NrcyBUcmFuc2FjdGlvbiBJRCBhbmQgbWFrZXMgdGhlIHRyYW5zYWN0aW9uIGF2YWlsYWJsZSBhZ2Fpbi4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4uCgogICAgICAgIDpwYXJhbSB0eF9pZDogVGhlIElEIG9mIHRoZSB0cmFuc2FjdGlvbiB0byB1bmZyZWV6ZSAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdHhfaWQ6IHN0cgogICAgICAgIDpwYXJhbSB4X2VuZF91c2VyX3dhbGxldF9pZDogVW5pcXVlIElEIG9mIHRoZSBFbmQtVXNlciB3YWxsZXQgdG8gdGhlIEFQSSByZXF1ZXN0LiBSZXF1aXJlZCBmb3IgZW5kLXVzZXIgd2FsbGV0IG9wZXJhdGlvbnMuCiAgICAgICAgOnR5cGUgeF9lbmRfdXNlcl93YWxsZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJ1bmZyZWV6ZV90cmFuc2FjdGlvbiIsIHBhcmFtX25hbWU9InR4X2lkIiwgcGFyYW1fdmFsdWU9dHhfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3VuZnJlZXplX3RyYW5zYWN0aW9uX3NlcmlhbGl6ZSgKICAgICAgICAgICAgdHhfaWQ9dHhfaWQsCiAgICAgICAgICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkPXhfZW5kX3VzZXJfd2FsbGV0X2lkLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiVW5mcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3VuZnJlZXplX3RyYW5zYWN0aW9uX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHR4X2lkLAogICAgICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgdHhfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1sndHhJZCddID0gdHhfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgeF9lbmRfdXNlcl93YWxsZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydYLUVuZC1Vc2VyLVdhbGxldC1JZCddID0geF9lbmRfdXNlcl93YWxsZXRfaWQKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3RyYW5zYWN0aW9ucy97dHhJZH0vdW5mcmVlemUnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgdmFsaWRhdGVfYWRkcmVzcygKICAgICAgICBzZWxmLAogICAgICAgIGFzc2V0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGFzc2V0IG9mIHRoZSBhZGRyZXNzIildLAogICAgICAgIGFkZHJlc3M6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYWRkcmVzcyB0byB2YWxpZGF0ZSIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1ZhbGlkYXRlQWRkcmVzc1Jlc3BvbnNlXV06CiAgICAgICAgIiIiVmFsaWRhdGUgZGVzdGluYXRpb24gYWRkcmVzcwoKICAgICAgICBDaGVja3MgaWYgYW4gYWRkcmVzcyBpcyB2YWxpZCBhbmQgYWN0aXZlIChmb3IgWFJQLCBET1QsIFhMTSwgYW5kIEVPUykuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgogICAgICAgIDpwYXJhbSBhc3NldF9pZDogVGhlIGFzc2V0IG9mIHRoZSBhZGRyZXNzIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhc3NldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGFkZHJlc3M6IFRoZSBhZGRyZXNzIHRvIHZhbGlkYXRlIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhZGRyZXNzOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0idmFsaWRhdGVfYWRkcmVzcyIsIHBhcmFtX25hbWU9ImFzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YXNzZXRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJ2YWxpZGF0ZV9hZGRyZXNzIiwgcGFyYW1fbmFtZT0iYWRkcmVzcyIsIHBhcmFtX3ZhbHVlPWFkZHJlc3MpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3ZhbGlkYXRlX2FkZHJlc3Nfc2VyaWFsaXplKAogICAgICAgICAgICBhc3NldF9pZD1hc3NldF9pZCwKICAgICAgICAgICAgYWRkcmVzcz1hZGRyZXNzLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiVmFsaWRhdGVBZGRyZXNzUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF92YWxpZGF0ZV9hZGRyZXNzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGFzc2V0X2lkLAogICAgICAgIGFkZHJlc3MsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGFzc2V0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Fzc2V0SWQnXSA9IGFzc2V0X2lkCiAgICAgICAgaWYgYWRkcmVzcyBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydhZGRyZXNzJ10gPSBhZGRyZXNzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdHJhbnNhY3Rpb25zL3ZhbGlkYXRlX2FkZHJlc3Mve2Fzc2V0SWR9L3thZGRyZXNzfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoK \ No newline at end of file diff --git a/fireblocks/api/travel_rule_api.py b/fireblocks/api/travel_rule_api.py index c3cb6ac1..0384d28c 100644 --- a/fireblocks/api/travel_rule_api.py +++ b/fireblocks/api/travel_rule_api.py @@ -1,1235 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr, field_validator -from typing import List, Optional, Union -from typing_extensions import Annotated -from fireblocks.models.travel_rule_get_all_vasps_response import TravelRuleGetAllVASPsResponse -from fireblocks.models.travel_rule_update_vasp_details import TravelRuleUpdateVASPDetails -from fireblocks.models.travel_rule_vasp import TravelRuleVASP -from fireblocks.models.travel_rule_validate_full_transaction_request import TravelRuleValidateFullTransactionRequest -from fireblocks.models.travel_rule_validate_transaction_response import TravelRuleValidateTransactionResponse -from fireblocks.models.travel_rule_vasp_for_vault import TravelRuleVaspForVault -from fireblocks.models.trust_proof_of_address_create_response import TrustProofOfAddressCreateResponse -from fireblocks.models.trust_proof_of_address_request import TrustProofOfAddressRequest -from fireblocks.models.trust_proof_of_address_response import TrustProofOfAddressResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class TravelRuleApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def create_trust_proof_of_address( - self, - trust_proof_of_address_request: TrustProofOfAddressRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TrustProofOfAddressCreateResponse]]: - """Create Trust Network Proof of Address - - Creates a cryptographic proof of address ownership for TRUST network. - - :param trust_proof_of_address_request: (required) - :type trust_proof_of_address_request: TrustProofOfAddressRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_trust_proof_of_address_serialize( - trust_proof_of_address_request=trust_proof_of_address_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "TrustProofOfAddressCreateResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_trust_proof_of_address_serialize( - self, - trust_proof_of_address_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if trust_proof_of_address_request is not None: - _body_params = trust_proof_of_address_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/screening/travel_rule/providers/trust/proof_of_address', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_trust_proof_of_address( - self, - transaction_id: Annotated[StrictStr, Field(description="Fireblocks transaction ID (UUID format)")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TrustProofOfAddressResponse]]: - """Retrieve Trust Network Proof of Address Signature - - Retrieves the TRUST-compatible encoded signature for a proof of address transaction. Send this signature directly to TRUST for verification. - - :param transaction_id: Fireblocks transaction ID (UUID format) (required) - :type transaction_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_trust_proof_of_address", param_name="transaction_id", param_value=transaction_id) - - _param = self._get_trust_proof_of_address_serialize( - transaction_id=transaction_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TrustProofOfAddressResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_trust_proof_of_address_serialize( - self, - transaction_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if transaction_id is not None: - _path_params['transactionId'] = transaction_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/travel_rule/providers/trust/proof_of_address/{transactionId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_vasp_for_vault( - self, - vault_account_id: Annotated[StrictStr, Field(description="The ID of the vault account")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TravelRuleVaspForVault]]: - """Get assigned VASP to vault - - Get assigned VASP Did for a specific vault. Returns empty string vaspDid value in response if none assigned. - - :param vault_account_id: The ID of the vault account (required) - :type vault_account_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_vasp_for_vault", param_name="vault_account_id", param_value=vault_account_id) - - _param = self._get_vasp_for_vault_serialize( - vault_account_id=vault_account_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TravelRuleVaspForVault", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_vasp_for_vault_serialize( - self, - vault_account_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/travel_rule/vault/{vaultAccountId}/vasp', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_vaspby_did( - self, - did: StrictStr, - fields: Annotated[Optional[List[StrictStr]], Field(description="A CSV of fields to return. Choose from the following options:")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TravelRuleVASP]]: - """Get VASP details - - Get VASP Details. Returns information about a VASP that has the specified DID. - - :param did: (required) - :type did: str - :param fields: A CSV of fields to return. Choose from the following options: - :type fields: List[str] - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_vaspby_did", param_name="did", param_value=did) - - _param = self._get_vaspby_did_serialize( - did=did, - fields=fields, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TravelRuleVASP", - '400': None, - '500': None, - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_vaspby_did_serialize( - self, - did, - fields, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - 'fields': 'multi', - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if did is not None: - _path_params['did'] = did - # process the query parameters - if fields is not None: - - _query_params.append(('fields', fields)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/travel_rule/vasp/{did}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_vasps( - self, - order: Annotated[Optional[StrictStr], Field(description="Field to order by")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=1000, strict=True, ge=100)], Annotated[int, Field(le=1000, strict=True, ge=100)]]], Field(description="Records per page")] = None, - fields: Annotated[Optional[List[StrictStr]], Field(description="CSV of fields to return (all, \"blank\" or see list of all field names below)")] = None, - search: Annotated[Optional[StrictStr], Field(description="Search query")] = None, - review_value: Annotated[Optional[StrictStr], Field(description="Filter by the VASP's review status. Possible values include: \"TRUSTED\", \"BLOCKED\", \"MANUAL\", or \"NULL\". When provided, only VASPs that match the specified reviewValue will be returned (i.e., VASPs that have already been reviewed to this status).")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Cursor for pagination. When provided, the response will include the next page of results.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TravelRuleGetAllVASPsResponse]]: - """Get All VASPs - - Get All VASPs. Returns a list of VASPs. VASPs can be searched and sorted. - - :param order: Field to order by - :type order: str - :param page_size: Records per page - :type page_size: float - :param fields: CSV of fields to return (all, \"blank\" or see list of all field names below) - :type fields: List[str] - :param search: Search query - :type search: str - :param review_value: Filter by the VASP's review status. Possible values include: \"TRUSTED\", \"BLOCKED\", \"MANUAL\", or \"NULL\". When provided, only VASPs that match the specified reviewValue will be returned (i.e., VASPs that have already been reviewed to this status). - :type review_value: str - :param page_cursor: Cursor for pagination. When provided, the response will include the next page of results. - :type page_cursor: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_vasps_serialize( - order=order, - page_size=page_size, - fields=fields, - search=search, - review_value=review_value, - page_cursor=page_cursor, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TravelRuleGetAllVASPsResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_vasps_serialize( - self, - order, - page_size, - fields, - search, - review_value, - page_cursor, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - 'fields': 'multi', - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if order is not None: - - _query_params.append(('order', order)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if fields is not None: - - _query_params.append(('fields', fields)) - - if search is not None: - - _query_params.append(('search', search)) - - if review_value is not None: - - _query_params.append(('reviewValue', review_value)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/screening/travel_rule/vasp', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_vasp_for_vault( - self, - vault_account_id: Annotated[StrictStr, Field(description="The ID of the vault account")], - travel_rule_vasp_for_vault: TravelRuleVaspForVault, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TravelRuleVaspForVault]]: - """Assign VASP to vault - - Sets the VASP Did for a specific vault. Pass empty string to remove existing one. - - :param vault_account_id: The ID of the vault account (required) - :type vault_account_id: str - :param travel_rule_vasp_for_vault: (required) - :type travel_rule_vasp_for_vault: TravelRuleVaspForVault - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="set_vasp_for_vault", param_name="vault_account_id", param_value=vault_account_id) - - _param = self._set_vasp_for_vault_serialize( - vault_account_id=vault_account_id, - travel_rule_vasp_for_vault=travel_rule_vasp_for_vault, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "TravelRuleVaspForVault", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_vasp_for_vault_serialize( - self, - vault_account_id, - travel_rule_vasp_for_vault, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if travel_rule_vasp_for_vault is not None: - _body_params = travel_rule_vasp_for_vault - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/screening/travel_rule/vault/{vaultAccountId}/vasp', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_vasp( - self, - travel_rule_update_vasp_details: TravelRuleUpdateVASPDetails, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TravelRuleUpdateVASPDetails]]: - """Add jsonDidKey to VASP details - - Update VASP Details. Updates a VASP with the provided parameters. Use this endpoint to add your public jsonDIDkey generated by Notabene. - - :param travel_rule_update_vasp_details: (required) - :type travel_rule_update_vasp_details: TravelRuleUpdateVASPDetails - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._update_vasp_serialize( - travel_rule_update_vasp_details=travel_rule_update_vasp_details, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TravelRuleUpdateVASPDetails", - '400': None, - '500': None, - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_vasp_serialize( - self, - travel_rule_update_vasp_details, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if travel_rule_update_vasp_details is not None: - _body_params = travel_rule_update_vasp_details - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/screening/travel_rule/vasp/update', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def validate_full_travel_rule_transaction( - self, - travel_rule_validate_full_transaction_request: TravelRuleValidateFullTransactionRequest, - notation: Annotated[Optional[List[StrictStr]], Field(description="Specifies the notation of the transaction. Possible values are: - `notabene`: Uses Notabene notation (default behavior). - `fireblocks`: Uses Fireblocks notation, with automatic translation of asset tickers and amounts. - ``: Defaults to `notabene` for backward compatibility. **Note:** The default value for the `notation` parameter will change from `notabene` to `fireblocks` Update your integrations accordingly.")] = None, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[TravelRuleValidateTransactionResponse]]: - """Validate Full Travel Rule Transaction - - Validate Full Travel Rule transactions. Checks for all required information on the originator and beneficiary VASPs. - - :param travel_rule_validate_full_transaction_request: (required) - :type travel_rule_validate_full_transaction_request: TravelRuleValidateFullTransactionRequest - :param notation: Specifies the notation of the transaction. Possible values are: - `notabene`: Uses Notabene notation (default behavior). - `fireblocks`: Uses Fireblocks notation, with automatic translation of asset tickers and amounts. - ``: Defaults to `notabene` for backward compatibility. **Note:** The default value for the `notation` parameter will change from `notabene` to `fireblocks` Update your integrations accordingly. - :type notation: List[str] - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._validate_full_travel_rule_transaction_serialize( - travel_rule_validate_full_transaction_request=travel_rule_validate_full_transaction_request, - notation=notation, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "TravelRuleValidateTransactionResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _validate_full_travel_rule_transaction_serialize( - self, - travel_rule_validate_full_transaction_request, - notation, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - 'notation': 'multi', - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if notation is not None: - - _query_params.append(('notation', notation)) - - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if travel_rule_validate_full_transaction_request is not None: - _body_params = travel_rule_validate_full_transaction_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/screening/travel_rule/transaction/validate/full', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0ciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfZ2V0X2FsbF92YXNwc19yZXNwb25zZSBpbXBvcnQgVHJhdmVsUnVsZUdldEFsbFZBU1BzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV91cGRhdGVfdmFzcF9kZXRhaWxzIGltcG9ydCBUcmF2ZWxSdWxlVXBkYXRlVkFTUERldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YXNwIGltcG9ydCBUcmF2ZWxSdWxlVkFTUApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2Z1bGxfdHJhbnNhY3Rpb25fcmVxdWVzdCBpbXBvcnQgVHJhdmVsUnVsZVZhbGlkYXRlRnVsbFRyYW5zYWN0aW9uUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX3RyYW5zYWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBUcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFzcF9mb3JfdmF1bHQgaW1wb3J0IFRyYXZlbFJ1bGVWYXNwRm9yVmF1bHQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cnVzdF9wcm9vZl9vZl9hZGRyZXNzX2NyZWF0ZV9yZXNwb25zZSBpbXBvcnQgVHJ1c3RQcm9vZk9mQWRkcmVzc0NyZWF0ZVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzc19yZXF1ZXN0IGltcG9ydCBUcnVzdFByb29mT2ZBZGRyZXNzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRydXN0X3Byb29mX29mX2FkZHJlc3NfcmVzcG9uc2UgaW1wb3J0IFRydXN0UHJvb2ZPZkFkZHJlc3NSZXNwb25zZQoKZnJvbSBmaXJlYmxvY2tzLmFwaV9jbGllbnQgaW1wb3J0IEFwaUNsaWVudCwgUmVxdWVzdFNlcmlhbGl6ZWQKZnJvbSBmaXJlYmxvY2tzLmFwaV9yZXNwb25zZSBpbXBvcnQgQXBpUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLnJlc3QgaW1wb3J0IFJFU1RSZXNwb25zZVR5cGUKZnJvbSBmaXJlYmxvY2tzLnZhbGlkYXRpb25fdXRpbHMgaW1wb3J0IHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcKCgpjbGFzcyBUcmF2ZWxSdWxlQXBpOgogICAgIiIiTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvcgogICAgUmVmOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gKCiAgICBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgYXBpX2NsaWVudD1Ob25lKSAtPiBOb25lOgogICAgICAgIGlmIGFwaV9jbGllbnQgaXMgTm9uZToKICAgICAgICAgICAgYXBpX2NsaWVudCA9IEFwaUNsaWVudC5nZXRfZGVmYXVsdCgpCiAgICAgICAgc2VsZi5hcGlfY2xpZW50ID0gYXBpX2NsaWVudAoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGNyZWF0ZV90cnVzdF9wcm9vZl9vZl9hZGRyZXNzKAogICAgICAgIHNlbGYsCiAgICAgICAgdHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzc19yZXF1ZXN0OiBUcnVzdFByb29mT2ZBZGRyZXNzUmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtUcnVzdFByb29mT2ZBZGRyZXNzQ3JlYXRlUmVzcG9uc2VdXToKICAgICAgICAiIiJDcmVhdGUgVHJ1c3QgTmV0d29yayBQcm9vZiBvZiBBZGRyZXNzCgogICAgICAgIENyZWF0ZXMgYSBjcnlwdG9ncmFwaGljIHByb29mIG9mIGFkZHJlc3Mgb3duZXJzaGlwIGZvciBUUlVTVCBuZXR3b3JrLgoKICAgICAgICA6cGFyYW0gdHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzc19yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzc19yZXF1ZXN0OiBUcnVzdFByb29mT2ZBZGRyZXNzUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2NyZWF0ZV90cnVzdF9wcm9vZl9vZl9hZGRyZXNzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgdHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzc19yZXF1ZXN0PXRydXN0X3Byb29mX29mX2FkZHJlc3NfcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAxJzogIlRydXN0UHJvb2ZPZkFkZHJlc3NDcmVhdGVSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2NyZWF0ZV90cnVzdF9wcm9vZl9vZl9hZGRyZXNzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHRydXN0X3Byb29mX29mX2FkZHJlc3NfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHRydXN0X3Byb29mX29mX2FkZHJlc3NfcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gdHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzc19yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zY3JlZW5pbmcvdHJhdmVsX3J1bGUvcHJvdmlkZXJzL3RydXN0L3Byb29mX29mX2FkZHJlc3MnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X3RydXN0X3Byb29mX29mX2FkZHJlc3MoCiAgICAgICAgc2VsZiwKICAgICAgICB0cmFuc2FjdGlvbl9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IkZpcmVibG9ja3MgdHJhbnNhY3Rpb24gSUQgKFVVSUQgZm9ybWF0KSIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1RydXN0UHJvb2ZPZkFkZHJlc3NSZXNwb25zZV1dOgogICAgICAgICIiIlJldHJpZXZlIFRydXN0IE5ldHdvcmsgUHJvb2Ygb2YgQWRkcmVzcyBTaWduYXR1cmUKCiAgICAgICAgUmV0cmlldmVzIHRoZSBUUlVTVC1jb21wYXRpYmxlIGVuY29kZWQgc2lnbmF0dXJlIGZvciBhIHByb29mIG9mIGFkZHJlc3MgdHJhbnNhY3Rpb24uIFNlbmQgdGhpcyBzaWduYXR1cmUgZGlyZWN0bHkgdG8gVFJVU1QgZm9yIHZlcmlmaWNhdGlvbi4KCiAgICAgICAgOnBhcmFtIHRyYW5zYWN0aW9uX2lkOiBGaXJlYmxvY2tzIHRyYW5zYWN0aW9uIElEIChVVUlEIGZvcm1hdCkgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHRyYW5zYWN0aW9uX2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3RydXN0X3Byb29mX29mX2FkZHJlc3MiLCBwYXJhbV9uYW1lPSJ0cmFuc2FjdGlvbl9pZCIsIHBhcmFtX3ZhbHVlPXRyYW5zYWN0aW9uX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfdHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzc19zZXJpYWxpemUoCiAgICAgICAgICAgIHRyYW5zYWN0aW9uX2lkPXRyYW5zYWN0aW9uX2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiVHJ1c3RQcm9vZk9mQWRkcmVzc1Jlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3RydXN0X3Byb29mX29mX2FkZHJlc3Nfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdHJhbnNhY3Rpb25faWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHRyYW5zYWN0aW9uX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3RyYW5zYWN0aW9uSWQnXSA9IHRyYW5zYWN0aW9uX2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc2NyZWVuaW5nL3RyYXZlbF9ydWxlL3Byb3ZpZGVycy90cnVzdC9wcm9vZl9vZl9hZGRyZXNzL3t0cmFuc2FjdGlvbklkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfdmFzcF9mb3JfdmF1bHQoCiAgICAgICAgc2VsZiwKICAgICAgICB2YXVsdF9hY2NvdW50X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB2YXVsdCBhY2NvdW50IildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVHJhdmVsUnVsZVZhc3BGb3JWYXVsdF1dOgogICAgICAgICIiIkdldCBhc3NpZ25lZCBWQVNQIHRvIHZhdWx0CgogICAgICAgIEdldCBhc3NpZ25lZCBWQVNQIERpZCBmb3IgYSBzcGVjaWZpYyB2YXVsdC4gUmV0dXJucyBlbXB0eSBzdHJpbmcgdmFzcERpZCB2YWx1ZSBpbiByZXNwb25zZSBpZiBub25lIGFzc2lnbmVkLgoKICAgICAgICA6cGFyYW0gdmF1bHRfYWNjb3VudF9pZDogVGhlIElEIG9mIHRoZSB2YXVsdCBhY2NvdW50IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB2YXVsdF9hY2NvdW50X2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3Zhc3BfZm9yX3ZhdWx0IiwgcGFyYW1fbmFtZT0idmF1bHRfYWNjb3VudF9pZCIsIHBhcmFtX3ZhbHVlPXZhdWx0X2FjY291bnRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF92YXNwX2Zvcl92YXVsdF9zZXJpYWxpemUoCiAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQ9dmF1bHRfYWNjb3VudF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlRyYXZlbFJ1bGVWYXNwRm9yVmF1bHQiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfdmFzcF9mb3JfdmF1bHRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgdmF1bHRfYWNjb3VudF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd2YXVsdEFjY291bnRJZCddID0gdmF1bHRfYWNjb3VudF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3NjcmVlbmluZy90cmF2ZWxfcnVsZS92YXVsdC97dmF1bHRBY2NvdW50SWR9L3Zhc3AnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X3Zhc3BieV9kaWQoCiAgICAgICAgc2VsZiwKICAgICAgICBkaWQ6IFN0cmljdFN0ciwKICAgICAgICBmaWVsZHM6IEFubm90YXRlZFtPcHRpb25hbFtMaXN0W1N0cmljdFN0cl1dLCBGaWVsZChkZXNjcmlwdGlvbj0iQSBDU1Ygb2YgZmllbGRzIHRvIHJldHVybi4gQ2hvb3NlIGZyb20gdGhlIGZvbGxvd2luZyBvcHRpb25zOiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtUcmF2ZWxSdWxlVkFTUF1dOgogICAgICAgICIiIkdldCBWQVNQIGRldGFpbHMKCiAgICAgICAgR2V0IFZBU1AgRGV0YWlscy4gIFJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgYSBWQVNQIHRoYXQgaGFzIHRoZSBzcGVjaWZpZWQgRElELgoKICAgICAgICA6cGFyYW0gZGlkOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgZGlkOiBzdHIKICAgICAgICA6cGFyYW0gZmllbGRzOiBBIENTViBvZiBmaWVsZHMgdG8gcmV0dXJuLiBDaG9vc2UgZnJvbSB0aGUgZm9sbG93aW5nIG9wdGlvbnM6CiAgICAgICAgOnR5cGUgZmllbGRzOiBMaXN0W3N0cl0KICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3Zhc3BieV9kaWQiLCBwYXJhbV9uYW1lPSJkaWQiLCBwYXJhbV92YWx1ZT1kaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF92YXNwYnlfZGlkX3NlcmlhbGl6ZSgKICAgICAgICAgICAgZGlkPWRpZCwKICAgICAgICAgICAgZmllbGRzPWZpZWxkcywKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlRyYXZlbFJ1bGVWQVNQIiwKICAgICAgICAgICAgJzQwMCc6IE5vbmUsCiAgICAgICAgICAgICc1MDAnOiBOb25lLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3Zhc3BieV9kaWRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgZGlkLAogICAgICAgIGZpZWxkcywKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgICAgICdmaWVsZHMnOiAnbXVsdGknLAogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGRpZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydkaWQnXSA9IGRpZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIGZpZWxkcyBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnZmllbGRzJywgZmllbGRzKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc2NyZWVuaW5nL3RyYXZlbF9ydWxlL3Zhc3Ave2RpZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X3Zhc3BzKAogICAgICAgIHNlbGYsCiAgICAgICAgb3JkZXI6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iRmllbGQgdG8gb3JkZXIgYnkiKV0gPSBOb25lLAogICAgICAgIHBhZ2Vfc2l6ZTogQW5ub3RhdGVkW09wdGlvbmFsW1VuaW9uW0Fubm90YXRlZFtmbG9hdCwgRmllbGQobGU9MTAwMCwgc3RyaWN0PVRydWUsIGdlPTEwMCldLCBBbm5vdGF0ZWRbaW50LCBGaWVsZChsZT0xMDAwLCBzdHJpY3Q9VHJ1ZSwgZ2U9MTAwKV1dXSwgRmllbGQoZGVzY3JpcHRpb249IlJlY29yZHMgcGVyIHBhZ2UiKV0gPSBOb25lLAogICAgICAgIGZpZWxkczogQW5ub3RhdGVkW09wdGlvbmFsW0xpc3RbU3RyaWN0U3RyXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJDU1Ygb2YgZmllbGRzIHRvIHJldHVybiAoYWxsLCBcImJsYW5rXCIgb3Igc2VlIGxpc3Qgb2YgYWxsIGZpZWxkIG5hbWVzIGJlbG93KSIpXSA9IE5vbmUsCiAgICAgICAgc2VhcmNoOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlNlYXJjaCBxdWVyeSIpXSA9IE5vbmUsCiAgICAgICAgcmV2aWV3X3ZhbHVlOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkZpbHRlciBieSB0aGUgVkFTUCdzIHJldmlldyBzdGF0dXMuIFBvc3NpYmxlIHZhbHVlcyBpbmNsdWRlOiBcIlRSVVNURURcIiwgXCJCTE9DS0VEXCIsIFwiTUFOVUFMXCIsIG9yIFwiTlVMTFwiLiBXaGVuIHByb3ZpZGVkLCBvbmx5IFZBU1BzIHRoYXQgbWF0Y2ggdGhlIHNwZWNpZmllZCByZXZpZXdWYWx1ZSB3aWxsIGJlIHJldHVybmVkIChpLmUuLCBWQVNQcyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHJldmlld2VkIHRvIHRoaXMgc3RhdHVzKS4iKV0gPSBOb25lLAogICAgICAgIHBhZ2VfY3Vyc29yOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkN1cnNvciBmb3IgcGFnaW5hdGlvbi4gV2hlbiBwcm92aWRlZCwgdGhlIHJlc3BvbnNlIHdpbGwgaW5jbHVkZSB0aGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1RyYXZlbFJ1bGVHZXRBbGxWQVNQc1Jlc3BvbnNlXV06CiAgICAgICAgIiIiR2V0IEFsbCBWQVNQcwoKICAgICAgICBHZXQgQWxsIFZBU1BzLiAgUmV0dXJucyBhIGxpc3Qgb2YgVkFTUHMuIFZBU1BzIGNhbiBiZSBzZWFyY2hlZCBhbmQgc29ydGVkLgoKICAgICAgICA6cGFyYW0gb3JkZXI6IEZpZWxkIHRvIG9yZGVyIGJ5CiAgICAgICAgOnR5cGUgb3JkZXI6IHN0cgogICAgICAgIDpwYXJhbSBwYWdlX3NpemU6IFJlY29yZHMgcGVyIHBhZ2UKICAgICAgICA6dHlwZSBwYWdlX3NpemU6IGZsb2F0CiAgICAgICAgOnBhcmFtIGZpZWxkczogQ1NWIG9mIGZpZWxkcyB0byByZXR1cm4gKGFsbCwgXCJibGFua1wiIG9yIHNlZSBsaXN0IG9mIGFsbCBmaWVsZCBuYW1lcyBiZWxvdykKICAgICAgICA6dHlwZSBmaWVsZHM6IExpc3Rbc3RyXQogICAgICAgIDpwYXJhbSBzZWFyY2g6IFNlYXJjaCBxdWVyeQogICAgICAgIDp0eXBlIHNlYXJjaDogc3RyCiAgICAgICAgOnBhcmFtIHJldmlld192YWx1ZTogRmlsdGVyIGJ5IHRoZSBWQVNQJ3MgcmV2aWV3IHN0YXR1cy4gUG9zc2libGUgdmFsdWVzIGluY2x1ZGU6IFwiVFJVU1RFRFwiLCBcIkJMT0NLRURcIiwgXCJNQU5VQUxcIiwgb3IgXCJOVUxMXCIuIFdoZW4gcHJvdmlkZWQsIG9ubHkgVkFTUHMgdGhhdCBtYXRjaCB0aGUgc3BlY2lmaWVkIHJldmlld1ZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgKGkuZS4sIFZBU1BzIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gcmV2aWV3ZWQgdG8gdGhpcyBzdGF0dXMpLgogICAgICAgIDp0eXBlIHJldmlld192YWx1ZTogc3RyCiAgICAgICAgOnBhcmFtIHBhZ2VfY3Vyc29yOiBDdXJzb3IgZm9yIHBhZ2luYXRpb24uIFdoZW4gcHJvdmlkZWQsIHRoZSByZXNwb25zZSB3aWxsIGluY2x1ZGUgdGhlIG5leHQgcGFnZSBvZiByZXN1bHRzLgogICAgICAgIDp0eXBlIHBhZ2VfY3Vyc29yOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfdmFzcHNfc2VyaWFsaXplKAogICAgICAgICAgICBvcmRlcj1vcmRlciwKICAgICAgICAgICAgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwKICAgICAgICAgICAgZmllbGRzPWZpZWxkcywKICAgICAgICAgICAgc2VhcmNoPXNlYXJjaCwKICAgICAgICAgICAgcmV2aWV3X3ZhbHVlPXJldmlld192YWx1ZSwKICAgICAgICAgICAgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJUcmF2ZWxSdWxlR2V0QWxsVkFTUHNSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF92YXNwc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBvcmRlciwKICAgICAgICBwYWdlX3NpemUsCiAgICAgICAgZmllbGRzLAogICAgICAgIHNlYXJjaCwKICAgICAgICByZXZpZXdfdmFsdWUsCiAgICAgICAgcGFnZV9jdXJzb3IsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgICAgICAnZmllbGRzJzogJ211bHRpJywKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiBvcmRlciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnb3JkZXInLCBvcmRlcikpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2Vfc2l6ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZVNpemUnLCBwYWdlX3NpemUpKQogICAgICAgICAgICAKICAgICAgICBpZiBmaWVsZHMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2ZpZWxkcycsIGZpZWxkcykpCiAgICAgICAgICAgIAogICAgICAgIGlmIHNlYXJjaCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnc2VhcmNoJywgc2VhcmNoKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgcmV2aWV3X3ZhbHVlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdyZXZpZXdWYWx1ZScsIHJldmlld192YWx1ZSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2VfY3Vyc29yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlQ3Vyc29yJywgcGFnZV9jdXJzb3IpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zY3JlZW5pbmcvdHJhdmVsX3J1bGUvdmFzcCcsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBzZXRfdmFzcF9mb3JfdmF1bHQoCiAgICAgICAgc2VsZiwKICAgICAgICB2YXVsdF9hY2NvdW50X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB2YXVsdCBhY2NvdW50IildLAogICAgICAgIHRyYXZlbF9ydWxlX3Zhc3BfZm9yX3ZhdWx0OiBUcmF2ZWxSdWxlVmFzcEZvclZhdWx0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1RyYXZlbFJ1bGVWYXNwRm9yVmF1bHRdXToKICAgICAgICAiIiJBc3NpZ24gVkFTUCB0byB2YXVsdAoKICAgICAgICBTZXRzIHRoZSBWQVNQIERpZCBmb3IgYSBzcGVjaWZpYyB2YXVsdC4gUGFzcyBlbXB0eSBzdHJpbmcgdG8gcmVtb3ZlIGV4aXN0aW5nIG9uZS4KCiAgICAgICAgOnBhcmFtIHZhdWx0X2FjY291bnRfaWQ6IFRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdmF1bHRfYWNjb3VudF9pZDogc3RyCiAgICAgICAgOnBhcmFtIHRyYXZlbF9ydWxlX3Zhc3BfZm9yX3ZhdWx0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdHJhdmVsX3J1bGVfdmFzcF9mb3JfdmF1bHQ6IFRyYXZlbFJ1bGVWYXNwRm9yVmF1bHQKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0ic2V0X3Zhc3BfZm9yX3ZhdWx0IiwgcGFyYW1fbmFtZT0idmF1bHRfYWNjb3VudF9pZCIsIHBhcmFtX3ZhbHVlPXZhdWx0X2FjY291bnRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3NldF92YXNwX2Zvcl92YXVsdF9zZXJpYWxpemUoCiAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQ9dmF1bHRfYWNjb3VudF9pZCwKICAgICAgICAgICAgdHJhdmVsX3J1bGVfdmFzcF9mb3JfdmF1bHQ9dHJhdmVsX3J1bGVfdmFzcF9mb3JfdmF1bHQsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMSc6ICJUcmF2ZWxSdWxlVmFzcEZvclZhdWx0IiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfc2V0X3Zhc3BfZm9yX3ZhdWx0X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHZhdWx0X2FjY291bnRfaWQsCiAgICAgICAgdHJhdmVsX3J1bGVfdmFzcF9mb3JfdmF1bHQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB2YXVsdF9hY2NvdW50X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3ZhdWx0QWNjb3VudElkJ10gPSB2YXVsdF9hY2NvdW50X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgdHJhdmVsX3J1bGVfdmFzcF9mb3JfdmF1bHQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHRyYXZlbF9ydWxlX3Zhc3BfZm9yX3ZhdWx0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9zY3JlZW5pbmcvdHJhdmVsX3J1bGUvdmF1bHQve3ZhdWx0QWNjb3VudElkfS92YXNwJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHVwZGF0ZV92YXNwKAogICAgICAgIHNlbGYsCiAgICAgICAgdHJhdmVsX3J1bGVfdXBkYXRlX3Zhc3BfZGV0YWlsczogVHJhdmVsUnVsZVVwZGF0ZVZBU1BEZXRhaWxzLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1RyYXZlbFJ1bGVVcGRhdGVWQVNQRGV0YWlsc11dOgogICAgICAgICIiIkFkZCBqc29uRGlkS2V5IHRvIFZBU1AgZGV0YWlscwoKICAgICAgICBVcGRhdGUgVkFTUCBEZXRhaWxzLiAgVXBkYXRlcyBhIFZBU1Agd2l0aCB0aGUgcHJvdmlkZWQgcGFyYW1ldGVycy4gVXNlIHRoaXMgZW5kcG9pbnQgdG8gYWRkIHlvdXIgcHVibGljIGpzb25ESURrZXkgZ2VuZXJhdGVkIGJ5IE5vdGFiZW5lLgoKICAgICAgICA6cGFyYW0gdHJhdmVsX3J1bGVfdXBkYXRlX3Zhc3BfZGV0YWlsczogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHRyYXZlbF9ydWxlX3VwZGF0ZV92YXNwX2RldGFpbHM6IFRyYXZlbFJ1bGVVcGRhdGVWQVNQRGV0YWlscwogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3VwZGF0ZV92YXNwX3NlcmlhbGl6ZSgKICAgICAgICAgICAgdHJhdmVsX3J1bGVfdXBkYXRlX3Zhc3BfZGV0YWlscz10cmF2ZWxfcnVsZV91cGRhdGVfdmFzcF9kZXRhaWxzLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiVHJhdmVsUnVsZVVwZGF0ZVZBU1BEZXRhaWxzIiwKICAgICAgICAgICAgJzQwMCc6IE5vbmUsCiAgICAgICAgICAgICc1MDAnOiBOb25lLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfdXBkYXRlX3Zhc3Bfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdHJhdmVsX3J1bGVfdXBkYXRlX3Zhc3BfZGV0YWlscywKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHRyYXZlbF9ydWxlX3VwZGF0ZV92YXNwX2RldGFpbHMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHRyYXZlbF9ydWxlX3VwZGF0ZV92YXNwX2RldGFpbHMKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQVVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc2NyZWVuaW5nL3RyYXZlbF9ydWxlL3Zhc3AvdXBkYXRlJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHZhbGlkYXRlX2Z1bGxfdHJhdmVsX3J1bGVfdHJhbnNhY3Rpb24oCiAgICAgICAgc2VsZiwKICAgICAgICB0cmF2ZWxfcnVsZV92YWxpZGF0ZV9mdWxsX3RyYW5zYWN0aW9uX3JlcXVlc3Q6IFRyYXZlbFJ1bGVWYWxpZGF0ZUZ1bGxUcmFuc2FjdGlvblJlcXVlc3QsCiAgICAgICAgbm90YXRpb246IEFubm90YXRlZFtPcHRpb25hbFtMaXN0W1N0cmljdFN0cl1dLCBGaWVsZChkZXNjcmlwdGlvbj0iU3BlY2lmaWVzIHRoZSBub3RhdGlvbiBvZiB0aGUgdHJhbnNhY3Rpb24uIFBvc3NpYmxlIHZhbHVlcyBhcmU6IC0gYG5vdGFiZW5lYDogVXNlcyBOb3RhYmVuZSBub3RhdGlvbiAoZGVmYXVsdCBiZWhhdmlvcikuIC0gYGZpcmVibG9ja3NgOiBVc2VzIEZpcmVibG9ja3Mgbm90YXRpb24sIHdpdGggYXV0b21hdGljIHRyYW5zbGF0aW9uIG9mIGFzc2V0IHRpY2tlcnMgYW5kIGFtb3VudHMuIC0gYDxub25lPmA6IERlZmF1bHRzIHRvIGBub3RhYmVuZWAgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuICoqTm90ZToqKiBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGBub3RhdGlvbmAgcGFyYW1ldGVyIHdpbGwgY2hhbmdlIGZyb20gYG5vdGFiZW5lYCB0byBgZmlyZWJsb2Nrc2AgVXBkYXRlIHlvdXIgaW50ZWdyYXRpb25zIGFjY29yZGluZ2x5LiIpXSA9IE5vbmUsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVHJhdmVsUnVsZVZhbGlkYXRlVHJhbnNhY3Rpb25SZXNwb25zZV1dOgogICAgICAgICIiIlZhbGlkYXRlIEZ1bGwgVHJhdmVsIFJ1bGUgVHJhbnNhY3Rpb24KCiAgICAgICAgVmFsaWRhdGUgRnVsbCBUcmF2ZWwgUnVsZSB0cmFuc2FjdGlvbnMuICBDaGVja3MgZm9yIGFsbCByZXF1aXJlZCBpbmZvcm1hdGlvbiBvbiB0aGUgb3JpZ2luYXRvciBhbmQgYmVuZWZpY2lhcnkgVkFTUHMuCgogICAgICAgIDpwYXJhbSB0cmF2ZWxfcnVsZV92YWxpZGF0ZV9mdWxsX3RyYW5zYWN0aW9uX3JlcXVlc3Q6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB0cmF2ZWxfcnVsZV92YWxpZGF0ZV9mdWxsX3RyYW5zYWN0aW9uX3JlcXVlc3Q6IFRyYXZlbFJ1bGVWYWxpZGF0ZUZ1bGxUcmFuc2FjdGlvblJlcXVlc3QKICAgICAgICA6cGFyYW0gbm90YXRpb246IFNwZWNpZmllcyB0aGUgbm90YXRpb24gb2YgdGhlIHRyYW5zYWN0aW9uLiBQb3NzaWJsZSB2YWx1ZXMgYXJlOiAtIGBub3RhYmVuZWA6IFVzZXMgTm90YWJlbmUgbm90YXRpb24gKGRlZmF1bHQgYmVoYXZpb3IpLiAtIGBmaXJlYmxvY2tzYDogVXNlcyBGaXJlYmxvY2tzIG5vdGF0aW9uLCB3aXRoIGF1dG9tYXRpYyB0cmFuc2xhdGlvbiBvZiBhc3NldCB0aWNrZXJzIGFuZCBhbW91bnRzLiAtIGA8bm9uZT5gOiBEZWZhdWx0cyB0byBgbm90YWJlbmVgIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiAqKk5vdGU6KiogVGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBgbm90YXRpb25gIHBhcmFtZXRlciB3aWxsIGNoYW5nZSBmcm9tIGBub3RhYmVuZWAgdG8gYGZpcmVibG9ja3NgIFVwZGF0ZSB5b3VyIGludGVncmF0aW9ucyBhY2NvcmRpbmdseS4KICAgICAgICA6dHlwZSBub3RhdGlvbjogTGlzdFtzdHJdCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fdmFsaWRhdGVfZnVsbF90cmF2ZWxfcnVsZV90cmFuc2FjdGlvbl9zZXJpYWxpemUoCiAgICAgICAgICAgIHRyYXZlbF9ydWxlX3ZhbGlkYXRlX2Z1bGxfdHJhbnNhY3Rpb25fcmVxdWVzdD10cmF2ZWxfcnVsZV92YWxpZGF0ZV9mdWxsX3RyYW5zYWN0aW9uX3JlcXVlc3QsCiAgICAgICAgICAgIG5vdGF0aW9uPW5vdGF0aW9uLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiVHJhdmVsUnVsZVZhbGlkYXRlVHJhbnNhY3Rpb25SZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3ZhbGlkYXRlX2Z1bGxfdHJhdmVsX3J1bGVfdHJhbnNhY3Rpb25fc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdHJhdmVsX3J1bGVfdmFsaWRhdGVfZnVsbF90cmFuc2FjdGlvbl9yZXF1ZXN0LAogICAgICAgIG5vdGF0aW9uLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgICAgICdub3RhdGlvbic6ICdtdWx0aScsCiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgbm90YXRpb24gaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ25vdGF0aW9uJywgbm90YXRpb24pKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiB0cmF2ZWxfcnVsZV92YWxpZGF0ZV9mdWxsX3RyYW5zYWN0aW9uX3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHRyYXZlbF9ydWxlX3ZhbGlkYXRlX2Z1bGxfdHJhbnNhY3Rpb25fcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvc2NyZWVuaW5nL3RyYXZlbF9ydWxlL3RyYW5zYWN0aW9uL3ZhbGlkYXRlL2Z1bGwnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCg== \ No newline at end of file diff --git a/fireblocks/api/user_groups_beta_api.py b/fireblocks/api/user_groups_beta_api.py index ef0b15cf..5ed332de 100644 --- a/fireblocks/api/user_groups_beta_api.py +++ b/fireblocks/api/user_groups_beta_api.py @@ -1,729 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing import List, Optional -from typing_extensions import Annotated -from fireblocks.models.create_user_group_response import CreateUserGroupResponse -from fireblocks.models.user_group_create_request import UserGroupCreateRequest -from fireblocks.models.user_group_create_response import UserGroupCreateResponse -from fireblocks.models.user_group_response import UserGroupResponse -from fireblocks.models.user_group_update_request import UserGroupUpdateRequest - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class UserGroupsBetaApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def create_user_group( - self, - user_group_create_request: UserGroupCreateRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[CreateUserGroupResponse]]: - """Create user group - - Create a new user group. Users with the Viewer role cannot be added to groups.
Endpoint Permission: Admin, Non-Signing Admin. - - :param user_group_create_request: (required) - :type user_group_create_request: UserGroupCreateRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_user_group_serialize( - user_group_create_request=user_group_create_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "CreateUserGroupResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_user_group_serialize( - self, - user_group_create_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if user_group_create_request is not None: - _body_params = user_group_create_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/management/user_groups', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def delete_user_group( - self, - group_id: Annotated[StrictStr, Field(description="The ID of the user group")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Delete user group - - Delete a user group by ID.
**Note**: - This endpoint is now in Beta, disabled for general availability at this time. - Please note that this endpoint is available only for API keys with Admin permissions. - - :param group_id: The ID of the user group (required) - :type group_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="delete_user_group", param_name="group_id", param_value=group_id) - - _param = self._delete_user_group_serialize( - group_id=group_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '204': None, - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _delete_user_group_serialize( - self, - group_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if group_id is not None: - _path_params['groupId'] = group_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/management/user_groups/{groupId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_user_group( - self, - group_id: Annotated[StrictStr, Field(description="The ID of the user group")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[UserGroupResponse]]: - """Get user group - - Get a user group by ID.
**Note**: - This endpoint is now in Beta, disabled for general availability at this time. - Please note that this endpoint is available only for API keys with Admin permissions. - - :param group_id: The ID of the user group (required) - :type group_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_user_group", param_name="group_id", param_value=group_id) - - _param = self._get_user_group_serialize( - group_id=group_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "UserGroupResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_user_group_serialize( - self, - group_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if group_id is not None: - _path_params['groupId'] = group_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/management/user_groups/{groupId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_user_groups( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[UserGroupResponse]]]: - """List user groups - - Get all user groups in your workspace - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions.
Endpoint Permission: Admin, Non-Signing Admin. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_user_groups_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "List[UserGroupResponse]", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_user_groups_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/management/user_groups', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_user_group( - self, - group_id: Annotated[StrictStr, Field(description="The ID of the user group")], - user_group_update_request: UserGroupUpdateRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[UserGroupCreateResponse]]: - """Update user group - - Update a user group by ID.
**Note**: - This endpoint is now in Beta, disabled for general availability at this time. - Please note that this endpoint is available only for API keys with Admin permissions. - - :param group_id: The ID of the user group (required) - :type group_id: str - :param user_group_update_request: (required) - :type user_group_update_request: UserGroupUpdateRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="update_user_group", param_name="group_id", param_value=group_id) - - _param = self._update_user_group_serialize( - group_id=group_id, - user_group_update_request=user_group_update_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "UserGroupCreateResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_user_group_serialize( - self, - group_id, - user_group_update_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if group_id is not None: - _path_params['groupId'] = group_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if user_group_update_request is not None: - _body_params = user_group_update_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/management/user_groups/{groupId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3VzZXJfZ3JvdXBfcmVzcG9uc2UgaW1wb3J0IENyZWF0ZVVzZXJHcm91cFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXNlcl9ncm91cF9jcmVhdGVfcmVxdWVzdCBpbXBvcnQgVXNlckdyb3VwQ3JlYXRlUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfZ3JvdXBfY3JlYXRlX3Jlc3BvbnNlIGltcG9ydCBVc2VyR3JvdXBDcmVhdGVSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfZ3JvdXBfcmVzcG9uc2UgaW1wb3J0IFVzZXJHcm91cFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXNlcl9ncm91cF91cGRhdGVfcmVxdWVzdCBpbXBvcnQgVXNlckdyb3VwVXBkYXRlUmVxdWVzdAoKZnJvbSBmaXJlYmxvY2tzLmFwaV9jbGllbnQgaW1wb3J0IEFwaUNsaWVudCwgUmVxdWVzdFNlcmlhbGl6ZWQKZnJvbSBmaXJlYmxvY2tzLmFwaV9yZXNwb25zZSBpbXBvcnQgQXBpUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLnJlc3QgaW1wb3J0IFJFU1RSZXNwb25zZVR5cGUKZnJvbSBmaXJlYmxvY2tzLnZhbGlkYXRpb25fdXRpbHMgaW1wb3J0IHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcKCgpjbGFzcyBVc2VyR3JvdXBzQmV0YUFwaToKICAgICIiIk5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IKICAgIFJlZjogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgogICAgIiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwaV9jbGllbnQ9Tm9uZSkgLT4gTm9uZToKICAgICAgICBpZiBhcGlfY2xpZW50IGlzIE5vbmU6CiAgICAgICAgICAgIGFwaV9jbGllbnQgPSBBcGlDbGllbnQuZ2V0X2RlZmF1bHQoKQogICAgICAgIHNlbGYuYXBpX2NsaWVudCA9IGFwaV9jbGllbnQKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBjcmVhdGVfdXNlcl9ncm91cCgKICAgICAgICBzZWxmLAogICAgICAgIHVzZXJfZ3JvdXBfY3JlYXRlX3JlcXVlc3Q6IFVzZXJHcm91cENyZWF0ZVJlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbQ3JlYXRlVXNlckdyb3VwUmVzcG9uc2VdXToKICAgICAgICAiIiJDcmVhdGUgdXNlciBncm91cAoKICAgICAgICBDcmVhdGUgYSBuZXcgdXNlciBncm91cC4gVXNlcnMgd2l0aCB0aGUgVmlld2VyIHJvbGUgY2Fubm90IGJlIGFkZGVkIHRvIGdyb3Vwcy4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4uCgogICAgICAgIDpwYXJhbSB1c2VyX2dyb3VwX2NyZWF0ZV9yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdXNlcl9ncm91cF9jcmVhdGVfcmVxdWVzdDogVXNlckdyb3VwQ3JlYXRlUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2NyZWF0ZV91c2VyX2dyb3VwX3NlcmlhbGl6ZSgKICAgICAgICAgICAgdXNlcl9ncm91cF9jcmVhdGVfcmVxdWVzdD11c2VyX2dyb3VwX2NyZWF0ZV9yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiAiQ3JlYXRlVXNlckdyb3VwUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9jcmVhdGVfdXNlcl9ncm91cF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB1c2VyX2dyb3VwX2NyZWF0ZV9yZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgdXNlcl9ncm91cF9jcmVhdGVfcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gdXNlcl9ncm91cF9jcmVhdGVfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbWFuYWdlbWVudC91c2VyX2dyb3VwcycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBkZWxldGVfdXNlcl9ncm91cCgKICAgICAgICBzZWxmLAogICAgICAgIGdyb3VwX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB1c2VyIGdyb3VwIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTm9uZV1dOgogICAgICAgICIiIkRlbGV0ZSB1c2VyIGdyb3VwCgogICAgICAgIERlbGV0ZSBhIHVzZXIgZ3JvdXAgYnkgSUQuPC9icj4gICoqTm90ZSoqOiAtIFRoaXMgZW5kcG9pbnQgaXMgbm93IGluIEJldGEsIGRpc2FibGVkIGZvciBnZW5lcmFsIGF2YWlsYWJpbGl0eSBhdCB0aGlzIHRpbWUuIC0gUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGVuZHBvaW50IGlzIGF2YWlsYWJsZSBvbmx5IGZvciBBUEkga2V5cyB3aXRoIEFkbWluIHBlcm1pc3Npb25zLiAKCiAgICAgICAgOnBhcmFtIGdyb3VwX2lkOiBUaGUgSUQgb2YgdGhlIHVzZXIgZ3JvdXAgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGdyb3VwX2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZGVsZXRlX3VzZXJfZ3JvdXAiLCBwYXJhbV9uYW1lPSJncm91cF9pZCIsIHBhcmFtX3ZhbHVlPWdyb3VwX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9kZWxldGVfdXNlcl9ncm91cF9zZXJpYWxpemUoCiAgICAgICAgICAgIGdyb3VwX2lkPWdyb3VwX2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDQnOiBOb25lLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9kZWxldGVfdXNlcl9ncm91cF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBncm91cF9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgZ3JvdXBfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snZ3JvdXBJZCddID0gZ3JvdXBfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0RFTEVURScsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9tYW5hZ2VtZW50L3VzZXJfZ3JvdXBzL3tncm91cElkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfdXNlcl9ncm91cCgKICAgICAgICBzZWxmLAogICAgICAgIGdyb3VwX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB1c2VyIGdyb3VwIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVXNlckdyb3VwUmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgdXNlciBncm91cAoKICAgICAgICBHZXQgYSB1c2VyIGdyb3VwIGJ5IElELjwvYnI+ICAqKk5vdGUqKjogLSBUaGlzIGVuZHBvaW50IGlzIG5vdyBpbiBCZXRhLCBkaXNhYmxlZCBmb3IgZ2VuZXJhbCBhdmFpbGFiaWxpdHkgYXQgdGhpcyB0aW1lLiAtIFBsZWFzZSBub3RlIHRoYXQgdGhpcyBlbmRwb2ludCBpcyBhdmFpbGFibGUgb25seSBmb3IgQVBJIGtleXMgd2l0aCBBZG1pbiBwZXJtaXNzaW9ucy4gCgogICAgICAgIDpwYXJhbSBncm91cF9pZDogVGhlIElEIG9mIHRoZSB1c2VyIGdyb3VwIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBncm91cF9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF91c2VyX2dyb3VwIiwgcGFyYW1fbmFtZT0iZ3JvdXBfaWQiLCBwYXJhbV92YWx1ZT1ncm91cF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X3VzZXJfZ3JvdXBfc2VyaWFsaXplKAogICAgICAgICAgICBncm91cF9pZD1ncm91cF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlVzZXJHcm91cFJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3VzZXJfZ3JvdXBfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgZ3JvdXBfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGdyb3VwX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2dyb3VwSWQnXSA9IGdyb3VwX2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbWFuYWdlbWVudC91c2VyX2dyb3Vwcy97Z3JvdXBJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X3VzZXJfZ3JvdXBzKAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtMaXN0W1VzZXJHcm91cFJlc3BvbnNlXV1dOgogICAgICAgICIiIkxpc3QgdXNlciBncm91cHMKCiAgICAgICAgR2V0IGFsbCB1c2VyIGdyb3VwcyBpbiB5b3VyIHdvcmtzcGFjZSAgLSBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgZW5kcG9pbnQgaXMgYXZhaWxhYmxlIG9ubHkgZm9yIEFQSSBrZXlzIHdpdGggQWRtaW4vTm9uIFNpZ25pbmcgQWRtaW4gcGVybWlzc2lvbnMuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfdXNlcl9ncm91cHNfc2VyaWFsaXplKAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiTGlzdFtVc2VyR3JvdXBSZXNwb25zZV0iLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfdXNlcl9ncm91cHNfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL21hbmFnZW1lbnQvdXNlcl9ncm91cHMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgdXBkYXRlX3VzZXJfZ3JvdXAoCiAgICAgICAgc2VsZiwKICAgICAgICBncm91cF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgdXNlciBncm91cCIpXSwKICAgICAgICB1c2VyX2dyb3VwX3VwZGF0ZV9yZXF1ZXN0OiBVc2VyR3JvdXBVcGRhdGVSZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1VzZXJHcm91cENyZWF0ZVJlc3BvbnNlXV06CiAgICAgICAgIiIiVXBkYXRlIHVzZXIgZ3JvdXAKCiAgICAgICAgVXBkYXRlIGEgdXNlciBncm91cCBieSBJRC48L2JyPiAgKipOb3RlKio6IC0gVGhpcyBlbmRwb2ludCBpcyBub3cgaW4gQmV0YSwgZGlzYWJsZWQgZm9yIGdlbmVyYWwgYXZhaWxhYmlsaXR5IGF0IHRoaXMgdGltZS4gLSBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgZW5kcG9pbnQgaXMgYXZhaWxhYmxlIG9ubHkgZm9yIEFQSSBrZXlzIHdpdGggQWRtaW4gcGVybWlzc2lvbnMuIAoKICAgICAgICA6cGFyYW0gZ3JvdXBfaWQ6IFRoZSBJRCBvZiB0aGUgdXNlciBncm91cCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgZ3JvdXBfaWQ6IHN0cgogICAgICAgIDpwYXJhbSB1c2VyX2dyb3VwX3VwZGF0ZV9yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdXNlcl9ncm91cF91cGRhdGVfcmVxdWVzdDogVXNlckdyb3VwVXBkYXRlUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJ1cGRhdGVfdXNlcl9ncm91cCIsIHBhcmFtX25hbWU9Imdyb3VwX2lkIiwgcGFyYW1fdmFsdWU9Z3JvdXBfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3VwZGF0ZV91c2VyX2dyb3VwX3NlcmlhbGl6ZSgKICAgICAgICAgICAgZ3JvdXBfaWQ9Z3JvdXBfaWQsCiAgICAgICAgICAgIHVzZXJfZ3JvdXBfdXBkYXRlX3JlcXVlc3Q9dXNlcl9ncm91cF91cGRhdGVfcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlVzZXJHcm91cENyZWF0ZVJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfdXBkYXRlX3VzZXJfZ3JvdXBfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgZ3JvdXBfaWQsCiAgICAgICAgdXNlcl9ncm91cF91cGRhdGVfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGdyb3VwX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2dyb3VwSWQnXSA9IGdyb3VwX2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgdXNlcl9ncm91cF91cGRhdGVfcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gdXNlcl9ncm91cF91cGRhdGVfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BVVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9tYW5hZ2VtZW50L3VzZXJfZ3JvdXBzL3tncm91cElkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoK \ No newline at end of file diff --git a/fireblocks/api/users_api.py b/fireblocks/api/users_api.py index a7fd4649..aae51f57 100644 --- a/fireblocks/api/users_api.py +++ b/fireblocks/api/users_api.py @@ -1,161 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from typing import List -from fireblocks.models.user_response import UserResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class UsersApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def get_users( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[UserResponse]]]: - """List users - - List all users for the workspace. Please note that this endpoint is available only for API keys with Admin permissions. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_users_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "List[UserResponse]", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_users_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/users', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSB0eXBpbmcgaW1wb3J0IExpc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51c2VyX3Jlc3BvbnNlIGltcG9ydCBVc2VyUmVzcG9uc2UKCmZyb20gZmlyZWJsb2Nrcy5hcGlfY2xpZW50IGltcG9ydCBBcGlDbGllbnQsIFJlcXVlc3RTZXJpYWxpemVkCmZyb20gZmlyZWJsb2Nrcy5hcGlfcmVzcG9uc2UgaW1wb3J0IEFwaVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5yZXN0IGltcG9ydCBSRVNUUmVzcG9uc2VUeXBlCmZyb20gZmlyZWJsb2Nrcy52YWxpZGF0aW9uX3V0aWxzIGltcG9ydCB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nCgoKY2xhc3MgVXNlcnNBcGk6CiAgICAiIiJOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yCiAgICBSZWY6IGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaAoKICAgIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS4KICAgICIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcGlfY2xpZW50PU5vbmUpIC0+IE5vbmU6CiAgICAgICAgaWYgYXBpX2NsaWVudCBpcyBOb25lOgogICAgICAgICAgICBhcGlfY2xpZW50ID0gQXBpQ2xpZW50LmdldF9kZWZhdWx0KCkKICAgICAgICBzZWxmLmFwaV9jbGllbnQgPSBhcGlfY2xpZW50CgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X3VzZXJzKAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtMaXN0W1VzZXJSZXNwb25zZV1dXToKICAgICAgICAiIiJMaXN0IHVzZXJzCgogICAgICAgIExpc3QgYWxsIHVzZXJzIGZvciB0aGUgd29ya3NwYWNlLiAgUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGVuZHBvaW50IGlzIGF2YWlsYWJsZSBvbmx5IGZvciBBUEkga2V5cyB3aXRoIEFkbWluIHBlcm1pc3Npb25zLiAKCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X3VzZXJzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkxpc3RbVXNlclJlc3BvbnNlXSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF91c2Vyc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdXNlcnMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCg== \ No newline at end of file diff --git a/fireblocks/api/vaults_api.py b/fireblocks/api/vaults_api.py index d05ab8d7..cf8709dd 100644 --- a/fireblocks/api/vaults_api.py +++ b/fireblocks/api/vaults_api.py @@ -1,4614 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator -from typing import List, Optional, Union -from typing_extensions import Annotated -from fireblocks.models.create_address_request import CreateAddressRequest -from fireblocks.models.create_address_response import CreateAddressResponse -from fireblocks.models.create_assets_request import CreateAssetsRequest -from fireblocks.models.create_multiple_accounts_request import CreateMultipleAccountsRequest -from fireblocks.models.create_multiple_deposit_addresses_job_status import CreateMultipleDepositAddressesJobStatus -from fireblocks.models.create_multiple_deposit_addresses_request import CreateMultipleDepositAddressesRequest -from fireblocks.models.create_multiple_vault_accounts_job_status import CreateMultipleVaultAccountsJobStatus -from fireblocks.models.create_vault_account_request import CreateVaultAccountRequest -from fireblocks.models.create_vault_asset_response import CreateVaultAssetResponse -from fireblocks.models.get_max_bip_index_used_response import GetMaxBipIndexUsedResponse -from fireblocks.models.get_max_spendable_amount_response import GetMaxSpendableAmountResponse -from fireblocks.models.job_created import JobCreated -from fireblocks.models.paginated_address_response import PaginatedAddressResponse -from fireblocks.models.paginated_asset_wallet_response import PaginatedAssetWalletResponse -from fireblocks.models.public_key_information import PublicKeyInformation -from fireblocks.models.rename_vault_account_response import RenameVaultAccountResponse -from fireblocks.models.set_auto_fuel_request import SetAutoFuelRequest -from fireblocks.models.set_customer_ref_id_for_address_request import SetCustomerRefIdForAddressRequest -from fireblocks.models.set_customer_ref_id_request import SetCustomerRefIdRequest -from fireblocks.models.unspent_inputs_response import UnspentInputsResponse -from fireblocks.models.update_vault_account_asset_address_request import UpdateVaultAccountAssetAddressRequest -from fireblocks.models.update_vault_account_request import UpdateVaultAccountRequest -from fireblocks.models.vault_account import VaultAccount -from fireblocks.models.vault_accounts_paged_response import VaultAccountsPagedResponse -from fireblocks.models.vault_accounts_tag_attachment_operations_request import VaultAccountsTagAttachmentOperationsRequest -from fireblocks.models.vault_accounts_tag_attachment_operations_response import VaultAccountsTagAttachmentOperationsResponse -from fireblocks.models.vault_action_status import VaultActionStatus -from fireblocks.models.vault_asset import VaultAsset - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class VaultsApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def activate_asset_for_vault_account( - self, - vault_account_id: Annotated[StrictStr, Field(description="The ID of the vault account to return, or 'default' for the default vault account")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - blockchain_wallet_type: Annotated[Optional[StrictStr], Field(description="Optional immutable blockchain wallet type to store per tenant+vault")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[CreateVaultAssetResponse]]: - """Activate a wallet in a vault account - - Initiates activation for a wallet in a vault account. Activation is required for tokens that need an on-chain transaction for creation (XLM tokens, SOL tokens etc).
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param vault_account_id: The ID of the vault account to return, or 'default' for the default vault account (required) - :type vault_account_id: str - :param asset_id: The ID of the asset (required) - :type asset_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param blockchain_wallet_type: Optional immutable blockchain wallet type to store per tenant+vault - :type blockchain_wallet_type: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="activate_asset_for_vault_account", param_name="vault_account_id", param_value=vault_account_id) - validate_not_empty_string(function_name="activate_asset_for_vault_account", param_name="asset_id", param_value=asset_id) - - _param = self._activate_asset_for_vault_account_serialize( - vault_account_id=vault_account_id, - asset_id=asset_id, - idempotency_key=idempotency_key, - blockchain_wallet_type=blockchain_wallet_type, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "CreateVaultAssetResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _activate_asset_for_vault_account_serialize( - self, - vault_account_id, - asset_id, - idempotency_key, - blockchain_wallet_type, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - if blockchain_wallet_type is not None: - - _query_params.append(('blockchainWalletType', blockchain_wallet_type)) - - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/vault/accounts/{vaultAccountId}/{assetId}/activate', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def attach_or_detach_tags_from_vault_accounts( - self, - vault_accounts_tag_attachment_operations_request: VaultAccountsTagAttachmentOperationsRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[VaultAccountsTagAttachmentOperationsResponse]]: - """Attach or detach tags from vault accounts - - Attach or detach one or more tags from the requested vault accounts. Endpoint Permission: For protected tags: Owner, Admin, Non-Signing Admin. For non protected tags: Owner, Admin, Non-Signing Admin, Signer, Editor, Approver. - - :param vault_accounts_tag_attachment_operations_request: (required) - :type vault_accounts_tag_attachment_operations_request: VaultAccountsTagAttachmentOperationsRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._attach_or_detach_tags_from_vault_accounts_serialize( - vault_accounts_tag_attachment_operations_request=vault_accounts_tag_attachment_operations_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "VaultAccountsTagAttachmentOperationsResponse", - '400': "ErrorSchema", - '404': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _attach_or_detach_tags_from_vault_accounts_serialize( - self, - vault_accounts_tag_attachment_operations_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if vault_accounts_tag_attachment_operations_request is not None: - _body_params = vault_accounts_tag_attachment_operations_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/vault/accounts/attached_tags', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_legacy_address( - self, - vault_account_id: Annotated[StrictStr, Field(description="The ID of the vault account")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset")], - address_id: Annotated[StrictStr, Field(description="The segwit address to translate")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[CreateAddressResponse]]: - """Convert a segwit address to legacy format - - Converts an existing segwit address to the legacy format.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param vault_account_id: The ID of the vault account (required) - :type vault_account_id: str - :param asset_id: The ID of the asset (required) - :type asset_id: str - :param address_id: The segwit address to translate (required) - :type address_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="create_legacy_address", param_name="vault_account_id", param_value=vault_account_id) - validate_not_empty_string(function_name="create_legacy_address", param_name="asset_id", param_value=asset_id) - validate_not_empty_string(function_name="create_legacy_address", param_name="address_id", param_value=address_id) - - _param = self._create_legacy_address_serialize( - vault_account_id=vault_account_id, - asset_id=asset_id, - address_id=address_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "CreateAddressResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_legacy_address_serialize( - self, - vault_account_id, - asset_id, - address_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - if asset_id is not None: - _path_params['assetId'] = asset_id - if address_id is not None: - _path_params['addressId'] = address_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/create_legacy', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_multiple_accounts( - self, - create_multiple_accounts_request: CreateMultipleAccountsRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[JobCreated]]: - """Bulk creation of new vault accounts - - Create multiple vault accounts by running an async job. - The HBAR, TON, SUI, TERRA, ALGO, and DOT blockchains are not supported. - These endpoints are currently in beta and might be subject to changes. - Limited to a maximum of 10,000 accounts per operation. **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param create_multiple_accounts_request: (required) - :type create_multiple_accounts_request: CreateMultipleAccountsRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_multiple_accounts_serialize( - create_multiple_accounts_request=create_multiple_accounts_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "JobCreated", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_multiple_accounts_serialize( - self, - create_multiple_accounts_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_multiple_accounts_request is not None: - _body_params = create_multiple_accounts_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/vault/accounts/bulk', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_multiple_deposit_addresses( - self, - create_multiple_deposit_addresses_request: CreateMultipleDepositAddressesRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[JobCreated]]: - """Bulk creation of new deposit addresses - - **For UTXO blockchains only.** Create multiple deposit addresses by running an async job. - The target Vault account should already have a UTXO asset wallet with a permanent address. - Limited to a maximum of 10,000 addresses per operation. Use multiple operations for the same Vault account/permanent address if needed. **Endpoint Permissions:** Admin, Non-Signing Admin. - - :param create_multiple_deposit_addresses_request: (required) - :type create_multiple_deposit_addresses_request: CreateMultipleDepositAddressesRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_multiple_deposit_addresses_serialize( - create_multiple_deposit_addresses_request=create_multiple_deposit_addresses_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "JobCreated", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_multiple_deposit_addresses_serialize( - self, - create_multiple_deposit_addresses_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_multiple_deposit_addresses_request is not None: - _body_params = create_multiple_deposit_addresses_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/vault/accounts/addresses/bulk', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_vault_account( - self, - create_vault_account_request: CreateVaultAccountRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[VaultAccount]]: - """Create a new vault account - - Creates a new vault account with the requested name. **Note: ** Vault account names should consist of ASCII characters only. Learn more about Fireblocks Vault Accounts in the following [guide](https://developers.fireblocks.com/reference/create-vault-account).
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param create_vault_account_request: (required) - :type create_vault_account_request: CreateVaultAccountRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_vault_account_serialize( - create_vault_account_request=create_vault_account_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "VaultAccount", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_vault_account_serialize( - self, - create_vault_account_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_vault_account_request is not None: - _body_params = create_vault_account_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/vault/accounts', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_vault_account_asset( - self, - vault_account_id: Annotated[StrictStr, Field(description="The ID of the vault account to return, or 'default' for the default vault account")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - blockchain_wallet_type: Annotated[Optional[StrictStr], Field(description="Optional immutable blockchain wallet type to store per tenant+vault")] = None, - create_assets_request: Optional[CreateAssetsRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[CreateVaultAssetResponse]]: - """Create a new vault wallet - - Creates a wallet for a specific asset in a vault account. Learn more about Fireblocks Vault Wallets in the following [guide](https://developers.fireblocks.com/reference/create-vault-wallet).
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param vault_account_id: The ID of the vault account to return, or 'default' for the default vault account (required) - :type vault_account_id: str - :param asset_id: The ID of the asset (required) - :type asset_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param blockchain_wallet_type: Optional immutable blockchain wallet type to store per tenant+vault - :type blockchain_wallet_type: str - :param create_assets_request: - :type create_assets_request: CreateAssetsRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="create_vault_account_asset", param_name="vault_account_id", param_value=vault_account_id) - validate_not_empty_string(function_name="create_vault_account_asset", param_name="asset_id", param_value=asset_id) - - _param = self._create_vault_account_asset_serialize( - vault_account_id=vault_account_id, - asset_id=asset_id, - idempotency_key=idempotency_key, - blockchain_wallet_type=blockchain_wallet_type, - create_assets_request=create_assets_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "CreateVaultAssetResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_vault_account_asset_serialize( - self, - vault_account_id, - asset_id, - idempotency_key, - blockchain_wallet_type, - create_assets_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - if blockchain_wallet_type is not None: - - _query_params.append(('blockchainWalletType', blockchain_wallet_type)) - - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_assets_request is not None: - _body_params = create_assets_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/vault/accounts/{vaultAccountId}/{assetId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def create_vault_account_asset_address( - self, - vault_account_id: Annotated[StrictStr, Field(description="The ID of the vault account to return")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - create_address_request: Optional[CreateAddressRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[CreateAddressResponse]]: - """Create new asset deposit address - - Creates a new deposit address for an asset of a vault account. Should be used for UTXO or Tag/Memo based assets ONLY. Requests with account based assets will fail.
Endpoint Permission: Admin, Non-Signing Admin. - - :param vault_account_id: The ID of the vault account to return (required) - :type vault_account_id: str - :param asset_id: The ID of the asset (required) - :type asset_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param create_address_request: - :type create_address_request: CreateAddressRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="create_vault_account_asset_address", param_name="vault_account_id", param_value=vault_account_id) - validate_not_empty_string(function_name="create_vault_account_asset_address", param_name="asset_id", param_value=asset_id) - - _param = self._create_vault_account_asset_address_serialize( - vault_account_id=vault_account_id, - asset_id=asset_id, - idempotency_key=idempotency_key, - create_address_request=create_address_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "CreateAddressResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_vault_account_asset_address_serialize( - self, - vault_account_id, - asset_id, - idempotency_key, - create_address_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_address_request is not None: - _body_params = create_address_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/vault/accounts/{vaultAccountId}/{assetId}/addresses', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_asset_wallets( - self, - total_amount_larger_than: Annotated[Optional[Union[StrictFloat, StrictInt]], Field(description="When specified, only vault wallets with total balance greater than this amount are returned.")] = None, - asset_id: Annotated[Optional[StrictStr], Field(description="When specified, only vault wallets with the specified ID are returned.")] = None, - order_by: Optional[StrictStr] = None, - before: Annotated[Optional[StrictStr], Field(description="Fetches the next paginated response before this element. This element is a cursor and is returned at the response of the previous page. ")] = None, - after: Annotated[Optional[StrictStr], Field(description="Fetches the next paginated response after this element. This element is a cursor and is returned at the response of the previous page.")] = None, - limit: Annotated[Optional[Union[Annotated[float, Field(le=1000, strict=True, ge=1)], Annotated[int, Field(le=1000, strict=True, ge=1)]]], Field(description="The maximum number of vault wallets in a single response. The default is 200 and the maximum is 1000. ")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[PaginatedAssetWalletResponse]]: - """Get vault wallets (Paginated) - - Get all vault wallets of the vault accounts in your workspace. A vault wallet is an asset in a vault account. This method allows fast traversal of all account balances.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param total_amount_larger_than: When specified, only vault wallets with total balance greater than this amount are returned. - :type total_amount_larger_than: float - :param asset_id: When specified, only vault wallets with the specified ID are returned. - :type asset_id: str - :param order_by: - :type order_by: str - :param before: Fetches the next paginated response before this element. This element is a cursor and is returned at the response of the previous page. - :type before: str - :param after: Fetches the next paginated response after this element. This element is a cursor and is returned at the response of the previous page. - :type after: str - :param limit: The maximum number of vault wallets in a single response. The default is 200 and the maximum is 1000. - :type limit: float - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_asset_wallets_serialize( - total_amount_larger_than=total_amount_larger_than, - asset_id=asset_id, - order_by=order_by, - before=before, - after=after, - limit=limit, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "PaginatedAssetWalletResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_asset_wallets_serialize( - self, - total_amount_larger_than, - asset_id, - order_by, - before, - after, - limit, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if total_amount_larger_than is not None: - - _query_params.append(('totalAmountLargerThan', total_amount_larger_than)) - - if asset_id is not None: - - _query_params.append(('assetId', asset_id)) - - if order_by is not None: - - _query_params.append(('orderBy', order_by)) - - if before is not None: - - _query_params.append(('before', before)) - - if after is not None: - - _query_params.append(('after', after)) - - if limit is not None: - - _query_params.append(('limit', limit)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/vault/asset_wallets', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_create_multiple_deposit_addresses_job_status( - self, - job_id: Annotated[StrictStr, Field(description="The ID of the job to create addresses")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[CreateMultipleDepositAddressesJobStatus]]: - """Get the job status of the bulk deposit address creation - - Returns the current status of (or an error for) the specified deposit addresss bulk creation job. **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer. - - :param job_id: The ID of the job to create addresses (required) - :type job_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_create_multiple_deposit_addresses_job_status", param_name="job_id", param_value=job_id) - - _param = self._get_create_multiple_deposit_addresses_job_status_serialize( - job_id=job_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "CreateMultipleDepositAddressesJobStatus", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_create_multiple_deposit_addresses_job_status_serialize( - self, - job_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if job_id is not None: - _path_params['jobId'] = job_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/vault/accounts/addresses/bulk/{jobId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_create_multiple_vault_accounts_job_status( - self, - job_id: Annotated[StrictStr, Field(description="The ID of the job to create addresses")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[CreateMultipleVaultAccountsJobStatus]]: - """Get job status of bulk creation of new vault accounts - - Returns the current status of (or error for) the specified vault account bulk creation job. **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param job_id: The ID of the job to create addresses (required) - :type job_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_create_multiple_vault_accounts_job_status", param_name="job_id", param_value=job_id) - - _param = self._get_create_multiple_vault_accounts_job_status_serialize( - job_id=job_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "CreateMultipleVaultAccountsJobStatus", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_create_multiple_vault_accounts_job_status_serialize( - self, - job_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if job_id is not None: - _path_params['jobId'] = job_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/vault/accounts/bulk/{jobId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_max_bip_index_used( - self, - vault_account_id: Annotated[StrictStr, Field(description="The ID of the vault account")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GetMaxBipIndexUsedResponse]]: - """Get maximum BIP44 index used - - Retrieves the maximum BIP44 address index and change address index used for a specific asset in a vault account (BIP44 standard). - - :param vault_account_id: The ID of the vault account (required) - :type vault_account_id: str - :param asset_id: The ID of the asset (required) - :type asset_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_max_bip_index_used", param_name="vault_account_id", param_value=vault_account_id) - validate_not_empty_string(function_name="get_max_bip_index_used", param_name="asset_id", param_value=asset_id) - - _param = self._get_max_bip_index_used_serialize( - vault_account_id=vault_account_id, - asset_id=asset_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GetMaxBipIndexUsedResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_max_bip_index_used_serialize( - self, - vault_account_id, - asset_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/vault/accounts/{vaultAccountId}/{assetId}/max_bip44_index_used', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_max_spendable_amount( - self, - vault_account_id: Annotated[StrictStr, Field(description="The ID of the vault account, or 'default' for the default vault account")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset")], - manual_signging: Annotated[Optional[StrictBool], Field(description="False by default. The maximum number of inputs depends if the transaction will be signed by an automated co-signer server or on a mobile device.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GetMaxSpendableAmountResponse]]: - """Get max spendable amount in a transaction - - **UTXO assets only.** Retrieve the maximum amount of the specified asset that can be spent in a single transaction from the specified vault account. **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param vault_account_id: The ID of the vault account, or 'default' for the default vault account (required) - :type vault_account_id: str - :param asset_id: The ID of the asset (required) - :type asset_id: str - :param manual_signging: False by default. The maximum number of inputs depends if the transaction will be signed by an automated co-signer server or on a mobile device. - :type manual_signging: bool - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_max_spendable_amount", param_name="vault_account_id", param_value=vault_account_id) - validate_not_empty_string(function_name="get_max_spendable_amount", param_name="asset_id", param_value=asset_id) - - _param = self._get_max_spendable_amount_serialize( - vault_account_id=vault_account_id, - asset_id=asset_id, - manual_signging=manual_signging, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GetMaxSpendableAmountResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_max_spendable_amount_serialize( - self, - vault_account_id, - asset_id, - manual_signging, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - if manual_signging is not None: - - _query_params.append(('manualSignging', manual_signging)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/vault/accounts/{vaultAccountId}/{assetId}/max_spendable_amount', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_paged_vault_accounts( - self, - name_prefix: Optional[StrictStr] = None, - name_suffix: Optional[StrictStr] = None, - min_amount_threshold: Annotated[Optional[Union[StrictFloat, StrictInt]], Field(description="Specifying minAmountThreshold will filter accounts whose total balance is greater than this value; otherwise, it returns all accounts. The amount set in this parameter represents the native asset amount, not its USD value.")] = None, - asset_id: Optional[StrictStr] = None, - order_by: Optional[StrictStr] = None, - before: Optional[StrictStr] = None, - after: Optional[StrictStr] = None, - limit: Optional[Union[Annotated[float, Field(le=500, strict=True, ge=1)], Annotated[int, Field(le=500, strict=True, ge=1)]]] = None, - tag_ids: Annotated[Optional[Annotated[List[StrictStr], Field(max_length=50)]], Field(description="DEPRECATED - use includeTagIds instead")] = None, - include_tag_ids: Annotated[Optional[Annotated[List[StrictStr], Field(max_length=50)]], Field(description="List of tag IDs to include. Vault accounts with any of these tags will be included")] = None, - exclude_tag_ids: Annotated[Optional[Annotated[List[StrictStr], Field(max_length=50)]], Field(description="List of tag IDs to exclude. Vault accounts with any of these tags will be filtered out")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[VaultAccountsPagedResponse]]: - """Get vault accounts (Paginated) - - Gets all vault accounts in your workspace. This endpoint returns a limited amount of results with a quick response time.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param name_prefix: - :type name_prefix: str - :param name_suffix: - :type name_suffix: str - :param min_amount_threshold: Specifying minAmountThreshold will filter accounts whose total balance is greater than this value; otherwise, it returns all accounts. The amount set in this parameter represents the native asset amount, not its USD value. - :type min_amount_threshold: float - :param asset_id: - :type asset_id: str - :param order_by: - :type order_by: str - :param before: - :type before: str - :param after: - :type after: str - :param limit: - :type limit: float - :param tag_ids: DEPRECATED - use includeTagIds instead - :type tag_ids: List[str] - :param include_tag_ids: List of tag IDs to include. Vault accounts with any of these tags will be included - :type include_tag_ids: List[str] - :param exclude_tag_ids: List of tag IDs to exclude. Vault accounts with any of these tags will be filtered out - :type exclude_tag_ids: List[str] - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_paged_vault_accounts_serialize( - name_prefix=name_prefix, - name_suffix=name_suffix, - min_amount_threshold=min_amount_threshold, - asset_id=asset_id, - order_by=order_by, - before=before, - after=after, - limit=limit, - tag_ids=tag_ids, - include_tag_ids=include_tag_ids, - exclude_tag_ids=exclude_tag_ids, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "VaultAccountsPagedResponse", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_paged_vault_accounts_serialize( - self, - name_prefix, - name_suffix, - min_amount_threshold, - asset_id, - order_by, - before, - after, - limit, - tag_ids, - include_tag_ids, - exclude_tag_ids, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - 'tagIds': 'multi', - 'includeTagIds': 'multi', - 'excludeTagIds': 'multi', - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if name_prefix is not None: - - _query_params.append(('namePrefix', name_prefix)) - - if name_suffix is not None: - - _query_params.append(('nameSuffix', name_suffix)) - - if min_amount_threshold is not None: - - _query_params.append(('minAmountThreshold', min_amount_threshold)) - - if asset_id is not None: - - _query_params.append(('assetId', asset_id)) - - if order_by is not None: - - _query_params.append(('orderBy', order_by)) - - if before is not None: - - _query_params.append(('before', before)) - - if after is not None: - - _query_params.append(('after', after)) - - if limit is not None: - - _query_params.append(('limit', limit)) - - if tag_ids is not None: - - _query_params.append(('tagIds', tag_ids)) - - if include_tag_ids is not None: - - _query_params.append(('includeTagIds', include_tag_ids)) - - if exclude_tag_ids is not None: - - _query_params.append(('excludeTagIds', exclude_tag_ids)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/vault/accounts_paged', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_public_key_info( - self, - derivation_path: StrictStr, - algorithm: StrictStr, - compressed: Optional[StrictBool] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[PublicKeyInformation]]: - """Get the public key for a derivation path - - Gets the public key information based on derivation path and signing algorithm.
Endpoint Permission: Admin, Non-Signing Admin. - - :param derivation_path: (required) - :type derivation_path: str - :param algorithm: (required) - :type algorithm: str - :param compressed: - :type compressed: bool - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_public_key_info", param_name="derivation_path", param_value=derivation_path) - validate_not_empty_string(function_name="get_public_key_info", param_name="algorithm", param_value=algorithm) - - _param = self._get_public_key_info_serialize( - derivation_path=derivation_path, - algorithm=algorithm, - compressed=compressed, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "PublicKeyInformation", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_public_key_info_serialize( - self, - derivation_path, - algorithm, - compressed, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if derivation_path is not None: - - _query_params.append(('derivationPath', derivation_path)) - - if algorithm is not None: - - _query_params.append(('algorithm', algorithm)) - - if compressed is not None: - - _query_params.append(('compressed', compressed)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/vault/public_key_info', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_public_key_info_for_address( - self, - vault_account_id: StrictStr, - asset_id: StrictStr, - change: Union[StrictFloat, StrictInt], - address_index: Union[StrictFloat, StrictInt], - compressed: Optional[StrictBool] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[PublicKeyInformation]]: - """Get an asset's public key - - Get the public key information for a specific asset in a vault account.
Endpoint Permission: Admin, Non-Signing Admin. - - :param vault_account_id: (required) - :type vault_account_id: str - :param asset_id: (required) - :type asset_id: str - :param change: (required) - :type change: float - :param address_index: (required) - :type address_index: float - :param compressed: - :type compressed: bool - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_public_key_info_for_address", param_name="vault_account_id", param_value=vault_account_id) - validate_not_empty_string(function_name="get_public_key_info_for_address", param_name="asset_id", param_value=asset_id) - - _param = self._get_public_key_info_for_address_serialize( - vault_account_id=vault_account_id, - asset_id=asset_id, - change=change, - address_index=address_index, - compressed=compressed, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "PublicKeyInformation", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_public_key_info_for_address_serialize( - self, - vault_account_id, - asset_id, - change, - address_index, - compressed, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - if asset_id is not None: - _path_params['assetId'] = asset_id - if change is not None: - _path_params['change'] = change - if address_index is not None: - _path_params['addressIndex'] = address_index - # process the query parameters - if compressed is not None: - - _query_params.append(('compressed', compressed)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/vault/accounts/{vaultAccountId}/{assetId}/{change}/{addressIndex}/public_key_info', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_unspent_inputs( - self, - vault_account_id: Annotated[StrictStr, Field(description="The ID of the vault account")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[UnspentInputsResponse]]]: - """Get UTXO unspent inputs information - - Returns unspent inputs information of an UTXO asset in a vault account.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param vault_account_id: The ID of the vault account (required) - :type vault_account_id: str - :param asset_id: The ID of the asset (required) - :type asset_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_unspent_inputs", param_name="vault_account_id", param_value=vault_account_id) - validate_not_empty_string(function_name="get_unspent_inputs", param_name="asset_id", param_value=asset_id) - - _param = self._get_unspent_inputs_serialize( - vault_account_id=vault_account_id, - asset_id=asset_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "List[UnspentInputsResponse]", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_unspent_inputs_serialize( - self, - vault_account_id, - asset_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/vault/accounts/{vaultAccountId}/{assetId}/unspent_inputs', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_vault_account( - self, - vault_account_id: Annotated[StrictStr, Field(description="The ID of the vault account")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[VaultAccount]]: - """Get a vault account by ID - - Get a vault account by its unique ID.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param vault_account_id: The ID of the vault account (required) - :type vault_account_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_vault_account", param_name="vault_account_id", param_value=vault_account_id) - - _param = self._get_vault_account_serialize( - vault_account_id=vault_account_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "VaultAccount", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_vault_account_serialize( - self, - vault_account_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/vault/accounts/{vaultAccountId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_vault_account_asset( - self, - vault_account_id: Annotated[StrictStr, Field(description="The ID of the vault account to return")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[VaultAsset]]: - """Get the asset balance for a vault account - - Returns a specific vault wallet balance information for a specific asset.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param vault_account_id: The ID of the vault account to return (required) - :type vault_account_id: str - :param asset_id: The ID of the asset (required) - :type asset_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_vault_account_asset", param_name="vault_account_id", param_value=vault_account_id) - validate_not_empty_string(function_name="get_vault_account_asset", param_name="asset_id", param_value=asset_id) - - _param = self._get_vault_account_asset_serialize( - vault_account_id=vault_account_id, - asset_id=asset_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "VaultAsset", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_vault_account_asset_serialize( - self, - vault_account_id, - asset_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/vault/accounts/{vaultAccountId}/{assetId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_vault_account_asset_addresses_paginated( - self, - vault_account_id: Annotated[StrictStr, Field(description="The ID of the vault account to return")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset")], - limit: Optional[Union[StrictFloat, StrictInt]] = None, - before: Optional[StrictStr] = None, - after: Optional[StrictStr] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[PaginatedAddressResponse]]: - """Get addresses (Paginated) - - Returns a paginated response of the addresses for a given vault account and asset.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param vault_account_id: The ID of the vault account to return (required) - :type vault_account_id: str - :param asset_id: The ID of the asset (required) - :type asset_id: str - :param limit: - :type limit: float - :param before: - :type before: str - :param after: - :type after: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_vault_account_asset_addresses_paginated", param_name="vault_account_id", param_value=vault_account_id) - validate_not_empty_string(function_name="get_vault_account_asset_addresses_paginated", param_name="asset_id", param_value=asset_id) - - _param = self._get_vault_account_asset_addresses_paginated_serialize( - vault_account_id=vault_account_id, - asset_id=asset_id, - limit=limit, - before=before, - after=after, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "PaginatedAddressResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_vault_account_asset_addresses_paginated_serialize( - self, - vault_account_id, - asset_id, - limit, - before, - after, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - if limit is not None: - - _query_params.append(('limit', limit)) - - if before is not None: - - _query_params.append(('before', before)) - - if after is not None: - - _query_params.append(('after', after)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_vault_assets( - self, - account_name_prefix: Optional[StrictStr] = None, - account_name_suffix: Optional[StrictStr] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[List[VaultAsset]]]: - """Get asset balance for chosen assets - - Gets the assets amount summary for all accounts or filtered accounts.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param account_name_prefix: - :type account_name_prefix: str - :param account_name_suffix: - :type account_name_suffix: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_vault_assets_serialize( - account_name_prefix=account_name_prefix, - account_name_suffix=account_name_suffix, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "List[VaultAsset]", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_vault_assets_serialize( - self, - account_name_prefix, - account_name_suffix, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if account_name_prefix is not None: - - _query_params.append(('accountNamePrefix', account_name_prefix)) - - if account_name_suffix is not None: - - _query_params.append(('accountNameSuffix', account_name_suffix)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/vault/assets', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_vault_balance_by_asset( - self, - asset_id: StrictStr, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[VaultAsset]]: - """Get vault balance by an asset - - Get the total balance of an asset across all the vault accounts.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - - :param asset_id: (required) - :type asset_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_vault_balance_by_asset", param_name="asset_id", param_value=asset_id) - - _param = self._get_vault_balance_by_asset_serialize( - asset_id=asset_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "VaultAsset", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_vault_balance_by_asset_serialize( - self, - asset_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/vault/assets/{assetId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def hide_vault_account( - self, - vault_account_id: Annotated[StrictStr, Field(description="The vault account to hide")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[VaultActionStatus]]: - """Hide a vault account in the console - - Hides the requested vault account from the web console view. This operation is required when creating thousands of vault accounts to serve your end-users. Used for preventing the web console to be swamped with too much vault accounts. Learn more in the following [guide](https://developers.fireblocks.com/docs/create-direct-custody-wallets#hiding-vault-accounts). NOTE: Hiding the vault account from the web console will also hide all the related transactions to/from this vault.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param vault_account_id: The vault account to hide (required) - :type vault_account_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="hide_vault_account", param_name="vault_account_id", param_value=vault_account_id) - - _param = self._hide_vault_account_serialize( - vault_account_id=vault_account_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "VaultActionStatus", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _hide_vault_account_serialize( - self, - vault_account_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/vault/accounts/{vaultAccountId}/hide', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_customer_ref_id_for_address( - self, - vault_account_id: Annotated[StrictStr, Field(description="The ID of the vault account")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset")], - address_id: Annotated[StrictStr, Field(description="The address for which to add a description. For XRP, use
:, for all other assets, use only the address")], - set_customer_ref_id_for_address_request: SetCustomerRefIdForAddressRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[VaultActionStatus]]: - """Assign AML customer reference ID - - Sets an AML/KYT customer reference ID for a specific address.
Endpoint Permission: Admin, Non-Signing Admin. - - :param vault_account_id: The ID of the vault account (required) - :type vault_account_id: str - :param asset_id: The ID of the asset (required) - :type asset_id: str - :param address_id: The address for which to add a description. For XRP, use
:, for all other assets, use only the address (required) - :type address_id: str - :param set_customer_ref_id_for_address_request: (required) - :type set_customer_ref_id_for_address_request: SetCustomerRefIdForAddressRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="set_customer_ref_id_for_address", param_name="vault_account_id", param_value=vault_account_id) - validate_not_empty_string(function_name="set_customer_ref_id_for_address", param_name="asset_id", param_value=asset_id) - validate_not_empty_string(function_name="set_customer_ref_id_for_address", param_name="address_id", param_value=address_id) - - _param = self._set_customer_ref_id_for_address_serialize( - vault_account_id=vault_account_id, - asset_id=asset_id, - address_id=address_id, - set_customer_ref_id_for_address_request=set_customer_ref_id_for_address_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "VaultActionStatus", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_customer_ref_id_for_address_serialize( - self, - vault_account_id, - asset_id, - address_id, - set_customer_ref_id_for_address_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - if asset_id is not None: - _path_params['assetId'] = asset_id - if address_id is not None: - _path_params['addressId'] = address_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if set_customer_ref_id_for_address_request is not None: - _body_params = set_customer_ref_id_for_address_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/set_customer_ref_id', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_vault_account_auto_fuel( - self, - vault_account_id: Annotated[StrictStr, Field(description="The vault account ID")], - set_auto_fuel_request: SetAutoFuelRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[VaultActionStatus]]: - """Set auto fueling to on or off - - Toggles the auto fueling property of the vault account to enabled or disabled. Vault Accounts with 'autoFuel=true' are monitored and auto fueled by the Fireblocks Gas Station. Learn more about the Fireblocks Gas Station in the following [guide](https://developers.fireblocks.com/docs/work-with-gas-station).
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param vault_account_id: The vault account ID (required) - :type vault_account_id: str - :param set_auto_fuel_request: (required) - :type set_auto_fuel_request: SetAutoFuelRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="set_vault_account_auto_fuel", param_name="vault_account_id", param_value=vault_account_id) - - _param = self._set_vault_account_auto_fuel_serialize( - vault_account_id=vault_account_id, - set_auto_fuel_request=set_auto_fuel_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "VaultActionStatus", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_vault_account_auto_fuel_serialize( - self, - vault_account_id, - set_auto_fuel_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if set_auto_fuel_request is not None: - _body_params = set_auto_fuel_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/vault/accounts/{vaultAccountId}/set_auto_fuel', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def set_vault_account_customer_ref_id( - self, - vault_account_id: Annotated[StrictStr, Field(description="The vault account ID")], - set_customer_ref_id_request: SetCustomerRefIdRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[VaultActionStatus]]: - """Set an AML/KYT ID for a vault account - - Assigns an AML/KYT customer reference ID for the vault account. Learn more about Fireblocks AML management in the following [guide](https://developers.fireblocks.com/docs/define-aml-policies).
Endpoint Permission: Admin, Non-Signing Admin. - - :param vault_account_id: The vault account ID (required) - :type vault_account_id: str - :param set_customer_ref_id_request: (required) - :type set_customer_ref_id_request: SetCustomerRefIdRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="set_vault_account_customer_ref_id", param_name="vault_account_id", param_value=vault_account_id) - - _param = self._set_vault_account_customer_ref_id_serialize( - vault_account_id=vault_account_id, - set_customer_ref_id_request=set_customer_ref_id_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "VaultActionStatus", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _set_vault_account_customer_ref_id_serialize( - self, - vault_account_id, - set_customer_ref_id_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if set_customer_ref_id_request is not None: - _body_params = set_customer_ref_id_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/vault/accounts/{vaultAccountId}/set_customer_ref_id', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def unhide_vault_account( - self, - vault_account_id: Annotated[StrictStr, Field(description="The vault account to unhide")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[VaultActionStatus]]: - """Unhide a vault account in the console - - Makes a hidden vault account visible in web console view.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param vault_account_id: The vault account to unhide (required) - :type vault_account_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="unhide_vault_account", param_name="vault_account_id", param_value=vault_account_id) - - _param = self._unhide_vault_account_serialize( - vault_account_id=vault_account_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "VaultActionStatus", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _unhide_vault_account_serialize( - self, - vault_account_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/vault/accounts/{vaultAccountId}/unhide', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_vault_account( - self, - vault_account_id: Annotated[StrictStr, Field(description="The ID of the vault account to edit")], - update_vault_account_request: UpdateVaultAccountRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[RenameVaultAccountResponse]]: - """Rename a vault account - - Renames the requested vault account.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver. - - :param vault_account_id: The ID of the vault account to edit (required) - :type vault_account_id: str - :param update_vault_account_request: (required) - :type update_vault_account_request: UpdateVaultAccountRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="update_vault_account", param_name="vault_account_id", param_value=vault_account_id) - - _param = self._update_vault_account_serialize( - vault_account_id=vault_account_id, - update_vault_account_request=update_vault_account_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "RenameVaultAccountResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_vault_account_serialize( - self, - vault_account_id, - update_vault_account_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if update_vault_account_request is not None: - _body_params = update_vault_account_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/vault/accounts/{vaultAccountId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_vault_account_asset_address( - self, - vault_account_id: Annotated[StrictStr, Field(description="The ID of the vault account")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset")], - address_id: Annotated[StrictStr, Field(description="The address for which to add a description. For XRP, use
:, for all other assets, use only the address")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - update_vault_account_asset_address_request: Optional[UpdateVaultAccountAssetAddressRequest] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[VaultActionStatus]]: - """Update address description - - Updates the description of an existing address of an asset in a vault account.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param vault_account_id: The ID of the vault account (required) - :type vault_account_id: str - :param asset_id: The ID of the asset (required) - :type asset_id: str - :param address_id: The address for which to add a description. For XRP, use
:, for all other assets, use only the address (required) - :type address_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param update_vault_account_asset_address_request: - :type update_vault_account_asset_address_request: UpdateVaultAccountAssetAddressRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="update_vault_account_asset_address", param_name="vault_account_id", param_value=vault_account_id) - validate_not_empty_string(function_name="update_vault_account_asset_address", param_name="asset_id", param_value=asset_id) - validate_not_empty_string(function_name="update_vault_account_asset_address", param_name="address_id", param_value=address_id) - - _param = self._update_vault_account_asset_address_serialize( - vault_account_id=vault_account_id, - asset_id=asset_id, - address_id=address_id, - idempotency_key=idempotency_key, - update_vault_account_asset_address_request=update_vault_account_asset_address_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "VaultActionStatus", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_vault_account_asset_address_serialize( - self, - vault_account_id, - asset_id, - address_id, - idempotency_key, - update_vault_account_asset_address_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - if asset_id is not None: - _path_params['assetId'] = asset_id - if address_id is not None: - _path_params['addressId'] = address_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if update_vault_account_asset_address_request is not None: - _body_params = update_vault_account_asset_address_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_vault_account_asset_balance( - self, - vault_account_id: Annotated[StrictStr, Field(description="The ID of the vault account to return")], - asset_id: Annotated[StrictStr, Field(description="The ID of the asset")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[VaultAsset]]: - """Refresh asset balance data - - Updates the balance of a specific asset in a vault account. This API endpoint is subject to a strict rate limit. Should be used by clients in very specific scenarios.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param vault_account_id: The ID of the vault account to return (required) - :type vault_account_id: str - :param asset_id: The ID of the asset (required) - :type asset_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="update_vault_account_asset_balance", param_name="vault_account_id", param_value=vault_account_id) - validate_not_empty_string(function_name="update_vault_account_asset_balance", param_name="asset_id", param_value=asset_id) - - _param = self._update_vault_account_asset_balance_serialize( - vault_account_id=vault_account_id, - asset_id=asset_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "VaultAsset", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_vault_account_asset_balance_serialize( - self, - vault_account_id, - asset_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if vault_account_id is not None: - _path_params['vaultAccountId'] = vault_account_id - if asset_id is not None: - _path_params['assetId'] = asset_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/vault/accounts/{vaultAccountId}/{assetId}/balance', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdEJvb2wsIFN0cmljdEZsb2F0LCBTdHJpY3RJbnQsIFN0cmljdFN0ciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX2FkZHJlc3NfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlQWRkcmVzc1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfYWRkcmVzc19yZXNwb25zZSBpbXBvcnQgQ3JlYXRlQWRkcmVzc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX2Fzc2V0c19yZXF1ZXN0IGltcG9ydCBDcmVhdGVBc3NldHNSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX211bHRpcGxlX2FjY291bnRzX3JlcXVlc3QgaW1wb3J0IENyZWF0ZU11bHRpcGxlQWNjb3VudHNSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzX2pvYl9zdGF0dXMgaW1wb3J0IENyZWF0ZU11bHRpcGxlRGVwb3NpdEFkZHJlc3Nlc0pvYlN0YXR1cwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3Nlc19yZXF1ZXN0IGltcG9ydCBDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX211bHRpcGxlX3ZhdWx0X2FjY291bnRzX2pvYl9zdGF0dXMgaW1wb3J0IENyZWF0ZU11bHRpcGxlVmF1bHRBY2NvdW50c0pvYlN0YXR1cwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV92YXVsdF9hY2NvdW50X3JlcXVlc3QgaW1wb3J0IENyZWF0ZVZhdWx0QWNjb3VudFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfdmF1bHRfYXNzZXRfcmVzcG9uc2UgaW1wb3J0IENyZWF0ZVZhdWx0QXNzZXRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9tYXhfYmlwX2luZGV4X3VzZWRfcmVzcG9uc2UgaW1wb3J0IEdldE1heEJpcEluZGV4VXNlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X21heF9zcGVuZGFibGVfYW1vdW50X3Jlc3BvbnNlIGltcG9ydCBHZXRNYXhTcGVuZGFibGVBbW91bnRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmpvYl9jcmVhdGVkIGltcG9ydCBKb2JDcmVhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFnaW5hdGVkX2FkZHJlc3NfcmVzcG9uc2UgaW1wb3J0IFBhZ2luYXRlZEFkZHJlc3NSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhZ2luYXRlZF9hc3NldF93YWxsZXRfcmVzcG9uc2UgaW1wb3J0IFBhZ2luYXRlZEFzc2V0V2FsbGV0UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wdWJsaWNfa2V5X2luZm9ybWF0aW9uIGltcG9ydCBQdWJsaWNLZXlJbmZvcm1hdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbmFtZV92YXVsdF9hY2NvdW50X3Jlc3BvbnNlIGltcG9ydCBSZW5hbWVWYXVsdEFjY291bnRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9hdXRvX2Z1ZWxfcmVxdWVzdCBpbXBvcnQgU2V0QXV0b0Z1ZWxSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2N1c3RvbWVyX3JlZl9pZF9mb3JfYWRkcmVzc19yZXF1ZXN0IGltcG9ydCBTZXRDdXN0b21lclJlZklkRm9yQWRkcmVzc1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfY3VzdG9tZXJfcmVmX2lkX3JlcXVlc3QgaW1wb3J0IFNldEN1c3RvbWVyUmVmSWRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudW5zcGVudF9pbnB1dHNfcmVzcG9uc2UgaW1wb3J0IFVuc3BlbnRJbnB1dHNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3NfcmVxdWVzdCBpbXBvcnQgVXBkYXRlVmF1bHRBY2NvdW50QXNzZXRBZGRyZXNzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV92YXVsdF9hY2NvdW50X3JlcXVlc3QgaW1wb3J0IFVwZGF0ZVZhdWx0QWNjb3VudFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hY2NvdW50IGltcG9ydCBWYXVsdEFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hY2NvdW50c19wYWdlZF9yZXNwb25zZSBpbXBvcnQgVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hY2NvdW50c190YWdfYXR0YWNobWVudF9vcGVyYXRpb25zX3JlcXVlc3QgaW1wb3J0IFZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hY2NvdW50c190YWdfYXR0YWNobWVudF9vcGVyYXRpb25zX3Jlc3BvbnNlIGltcG9ydCBWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjdGlvbl9zdGF0dXMgaW1wb3J0IFZhdWx0QWN0aW9uU3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmF1bHRfYXNzZXQgaW1wb3J0IFZhdWx0QXNzZXQKCmZyb20gZmlyZWJsb2Nrcy5hcGlfY2xpZW50IGltcG9ydCBBcGlDbGllbnQsIFJlcXVlc3RTZXJpYWxpemVkCmZyb20gZmlyZWJsb2Nrcy5hcGlfcmVzcG9uc2UgaW1wb3J0IEFwaVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5yZXN0IGltcG9ydCBSRVNUUmVzcG9uc2VUeXBlCmZyb20gZmlyZWJsb2Nrcy52YWxpZGF0aW9uX3V0aWxzIGltcG9ydCB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nCgoKY2xhc3MgVmF1bHRzQXBpOgogICAgIiIiTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvcgogICAgUmVmOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gKCiAgICBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgYXBpX2NsaWVudD1Ob25lKSAtPiBOb25lOgogICAgICAgIGlmIGFwaV9jbGllbnQgaXMgTm9uZToKICAgICAgICAgICAgYXBpX2NsaWVudCA9IEFwaUNsaWVudC5nZXRfZGVmYXVsdCgpCiAgICAgICAgc2VsZi5hcGlfY2xpZW50ID0gYXBpX2NsaWVudAoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGFjdGl2YXRlX2Fzc2V0X2Zvcl92YXVsdF9hY2NvdW50KAogICAgICAgIHNlbGYsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudCB0byByZXR1cm4sIG9yICdkZWZhdWx0JyBmb3IgdGhlIGRlZmF1bHQgdmF1bHQgYWNjb3VudCIpXSwKICAgICAgICBhc3NldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYXNzZXQiKV0sCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIGJsb2NrY2hhaW5fd2FsbGV0X3R5cGU6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iT3B0aW9uYWwgaW1tdXRhYmxlIGJsb2NrY2hhaW4gd2FsbGV0IHR5cGUgdG8gc3RvcmUgcGVyIHRlbmFudCt2YXVsdCIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtDcmVhdGVWYXVsdEFzc2V0UmVzcG9uc2VdXToKICAgICAgICAiIiJBY3RpdmF0ZSBhIHdhbGxldCBpbiBhIHZhdWx0IGFjY291bnQKCiAgICAgICAgSW5pdGlhdGVzIGFjdGl2YXRpb24gZm9yIGEgd2FsbGV0IGluIGEgdmF1bHQgYWNjb3VudC4gIEFjdGl2YXRpb24gaXMgcmVxdWlyZWQgZm9yIHRva2VucyB0aGF0IG5lZWQgYW4gb24tY2hhaW4gdHJhbnNhY3Rpb24gZm9yIGNyZWF0aW9uIChYTE0gdG9rZW5zLCBTT0wgdG9rZW5zIGV0YykuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgogICAgICAgIDpwYXJhbSB2YXVsdF9hY2NvdW50X2lkOiBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgdG8gcmV0dXJuLCBvciAnZGVmYXVsdCcgZm9yIHRoZSBkZWZhdWx0IHZhdWx0IGFjY291bnQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHZhdWx0X2FjY291bnRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBhc3NldF9pZDogVGhlIElEIG9mIHRoZSBhc3NldCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBibG9ja2NoYWluX3dhbGxldF90eXBlOiBPcHRpb25hbCBpbW11dGFibGUgYmxvY2tjaGFpbiB3YWxsZXQgdHlwZSB0byBzdG9yZSBwZXIgdGVuYW50K3ZhdWx0CiAgICAgICAgOnR5cGUgYmxvY2tjaGFpbl93YWxsZXRfdHlwZTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImFjdGl2YXRlX2Fzc2V0X2Zvcl92YXVsdF9hY2NvdW50IiwgcGFyYW1fbmFtZT0idmF1bHRfYWNjb3VudF9pZCIsIHBhcmFtX3ZhbHVlPXZhdWx0X2FjY291bnRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJhY3RpdmF0ZV9hc3NldF9mb3JfdmF1bHRfYWNjb3VudCIsIHBhcmFtX25hbWU9ImFzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YXNzZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2FjdGl2YXRlX2Fzc2V0X2Zvcl92YXVsdF9hY2NvdW50X3NlcmlhbGl6ZSgKICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZD12YXVsdF9hY2NvdW50X2lkLAogICAgICAgICAgICBhc3NldF9pZD1hc3NldF9pZCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgYmxvY2tjaGFpbl93YWxsZXRfdHlwZT1ibG9ja2NoYWluX3dhbGxldF90eXBlLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiQ3JlYXRlVmF1bHRBc3NldFJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfYWN0aXZhdGVfYXNzZXRfZm9yX3ZhdWx0X2FjY291bnRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZCwKICAgICAgICBhc3NldF9pZCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgYmxvY2tjaGFpbl93YWxsZXRfdHlwZSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgdmF1bHRfYWNjb3VudF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd2YXVsdEFjY291bnRJZCddID0gdmF1bHRfYWNjb3VudF9pZAogICAgICAgIGlmIGFzc2V0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Fzc2V0SWQnXSA9IGFzc2V0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgYmxvY2tjaGFpbl93YWxsZXRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnYmxvY2tjaGFpbldhbGxldFR5cGUnLCBibG9ja2NoYWluX3dhbGxldF90eXBlKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdmF1bHQvYWNjb3VudHMve3ZhdWx0QWNjb3VudElkfS97YXNzZXRJZH0vYWN0aXZhdGUnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgYXR0YWNoX29yX2RldGFjaF90YWdzX2Zyb21fdmF1bHRfYWNjb3VudHMoCiAgICAgICAgc2VsZiwKICAgICAgICB2YXVsdF9hY2NvdW50c190YWdfYXR0YWNobWVudF9vcGVyYXRpb25zX3JlcXVlc3Q6IFZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1JlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVzcG9uc2VdXToKICAgICAgICAiIiJBdHRhY2ggb3IgZGV0YWNoIHRhZ3MgZnJvbSB2YXVsdCBhY2NvdW50cwoKICAgICAgICBBdHRhY2ggb3IgZGV0YWNoIG9uZSBvciBtb3JlIHRhZ3MgZnJvbSB0aGUgcmVxdWVzdGVkIHZhdWx0IGFjY291bnRzLiBFbmRwb2ludCBQZXJtaXNzaW9uOiBGb3IgcHJvdGVjdGVkIHRhZ3M6IE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4uIEZvciBub24gcHJvdGVjdGVkIHRhZ3M6IE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgRWRpdG9yLCBBcHByb3Zlci4KCiAgICAgICAgOnBhcmFtIHZhdWx0X2FjY291bnRzX3RhZ19hdHRhY2htZW50X29wZXJhdGlvbnNfcmVxdWVzdDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHZhdWx0X2FjY291bnRzX3RhZ19hdHRhY2htZW50X29wZXJhdGlvbnNfcmVxdWVzdDogVmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2F0dGFjaF9vcl9kZXRhY2hfdGFnc19mcm9tX3ZhdWx0X2FjY291bnRzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgdmF1bHRfYWNjb3VudHNfdGFnX2F0dGFjaG1lbnRfb3BlcmF0aW9uc19yZXF1ZXN0PXZhdWx0X2FjY291bnRzX3RhZ19hdHRhY2htZW50X29wZXJhdGlvbnNfcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1Jlc3BvbnNlIiwKICAgICAgICAgICAgJzQwMCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgICAgICc0MDQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfYXR0YWNoX29yX2RldGFjaF90YWdzX2Zyb21fdmF1bHRfYWNjb3VudHNfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdmF1bHRfYWNjb3VudHNfdGFnX2F0dGFjaG1lbnRfb3BlcmF0aW9uc19yZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgdmF1bHRfYWNjb3VudHNfdGFnX2F0dGFjaG1lbnRfb3BlcmF0aW9uc19yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSB2YXVsdF9hY2NvdW50c190YWdfYXR0YWNobWVudF9vcGVyYXRpb25zX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3ZhdWx0L2FjY291bnRzL2F0dGFjaGVkX3RhZ3MnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgY3JlYXRlX2xlZ2FjeV9hZGRyZXNzKAogICAgICAgIHNlbGYsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudCIpXSwKICAgICAgICBhc3NldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYXNzZXQiKV0sCiAgICAgICAgYWRkcmVzc19pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBzZWd3aXQgYWRkcmVzcyB0byB0cmFuc2xhdGUiKV0sCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbQ3JlYXRlQWRkcmVzc1Jlc3BvbnNlXV06CiAgICAgICAgIiIiQ29udmVydCBhIHNlZ3dpdCBhZGRyZXNzIHRvIGxlZ2FjeSBmb3JtYXQKCiAgICAgICAgQ29udmVydHMgYW4gZXhpc3Rpbmcgc2Vnd2l0IGFkZHJlc3MgdG8gdGhlIGxlZ2FjeSBmb3JtYXQuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgogICAgICAgIDpwYXJhbSB2YXVsdF9hY2NvdW50X2lkOiBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHZhdWx0X2FjY291bnRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBhc3NldF9pZDogVGhlIElEIG9mIHRoZSBhc3NldCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBhZGRyZXNzX2lkOiBUaGUgc2Vnd2l0IGFkZHJlc3MgdG8gdHJhbnNsYXRlIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhZGRyZXNzX2lkOiBzdHIKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iY3JlYXRlX2xlZ2FjeV9hZGRyZXNzIiwgcGFyYW1fbmFtZT0idmF1bHRfYWNjb3VudF9pZCIsIHBhcmFtX3ZhbHVlPXZhdWx0X2FjY291bnRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJjcmVhdGVfbGVnYWN5X2FkZHJlc3MiLCBwYXJhbV9uYW1lPSJhc3NldF9pZCIsIHBhcmFtX3ZhbHVlPWFzc2V0X2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iY3JlYXRlX2xlZ2FjeV9hZGRyZXNzIiwgcGFyYW1fbmFtZT0iYWRkcmVzc19pZCIsIHBhcmFtX3ZhbHVlPWFkZHJlc3NfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2NyZWF0ZV9sZWdhY3lfYWRkcmVzc19zZXJpYWxpemUoCiAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQ9dmF1bHRfYWNjb3VudF9pZCwKICAgICAgICAgICAgYXNzZXRfaWQ9YXNzZXRfaWQsCiAgICAgICAgICAgIGFkZHJlc3NfaWQ9YWRkcmVzc19pZCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkNyZWF0ZUFkZHJlc3NSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2NyZWF0ZV9sZWdhY3lfYWRkcmVzc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB2YXVsdF9hY2NvdW50X2lkLAogICAgICAgIGFzc2V0X2lkLAogICAgICAgIGFkZHJlc3NfaWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB2YXVsdF9hY2NvdW50X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3ZhdWx0QWNjb3VudElkJ10gPSB2YXVsdF9hY2NvdW50X2lkCiAgICAgICAgaWYgYXNzZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYXNzZXRJZCddID0gYXNzZXRfaWQKICAgICAgICBpZiBhZGRyZXNzX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2FkZHJlc3NJZCddID0gYWRkcmVzc19pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3ZhdWx0L2FjY291bnRzL3t2YXVsdEFjY291bnRJZH0ve2Fzc2V0SWR9L2FkZHJlc3Nlcy97YWRkcmVzc0lkfS9jcmVhdGVfbGVnYWN5JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGNyZWF0ZV9tdWx0aXBsZV9hY2NvdW50cygKICAgICAgICBzZWxmLAogICAgICAgIGNyZWF0ZV9tdWx0aXBsZV9hY2NvdW50c19yZXF1ZXN0OiBDcmVhdGVNdWx0aXBsZUFjY291bnRzUmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtKb2JDcmVhdGVkXV06CiAgICAgICAgIiIiQnVsayBjcmVhdGlvbiBvZiBuZXcgdmF1bHQgYWNjb3VudHMKCiAgICAgICAgQ3JlYXRlIG11bHRpcGxlIHZhdWx0IGFjY291bnRzIGJ5IHJ1bm5pbmcgYW4gYXN5bmMgam9iLiAgICAgICAtIFRoZSBIQkFSLCBUT04sIFNVSSwgVEVSUkEsIEFMR08sIGFuZCBET1QgYmxvY2tjaGFpbnMgYXJlIG5vdCBzdXBwb3J0ZWQuIC0gVGhlc2UgZW5kcG9pbnRzIGFyZSBjdXJyZW50bHkgaW4gYmV0YSBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLiAtIExpbWl0ZWQgdG8gYSBtYXhpbXVtIG9mIDEwLDAwMCBhY2NvdW50cyBwZXIgb3BlcmF0aW9uLiAgKipFbmRwb2ludCBQZXJtaXNzaW9uczoqKiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4gCgogICAgICAgIDpwYXJhbSBjcmVhdGVfbXVsdGlwbGVfYWNjb3VudHNfcmVxdWVzdDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGNyZWF0ZV9tdWx0aXBsZV9hY2NvdW50c19yZXF1ZXN0OiBDcmVhdGVNdWx0aXBsZUFjY291bnRzUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2NyZWF0ZV9tdWx0aXBsZV9hY2NvdW50c19zZXJpYWxpemUoCiAgICAgICAgICAgIGNyZWF0ZV9tdWx0aXBsZV9hY2NvdW50c19yZXF1ZXN0PWNyZWF0ZV9tdWx0aXBsZV9hY2NvdW50c19yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiSm9iQ3JlYXRlZCIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2NyZWF0ZV9tdWx0aXBsZV9hY2NvdW50c19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBjcmVhdGVfbXVsdGlwbGVfYWNjb3VudHNfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIGNyZWF0ZV9tdWx0aXBsZV9hY2NvdW50c19yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBjcmVhdGVfbXVsdGlwbGVfYWNjb3VudHNfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdmF1bHQvYWNjb3VudHMvYnVsaycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBjcmVhdGVfbXVsdGlwbGVfZGVwb3NpdF9hZGRyZXNzZXMoCiAgICAgICAgc2VsZiwKICAgICAgICBjcmVhdGVfbXVsdGlwbGVfZGVwb3NpdF9hZGRyZXNzZXNfcmVxdWVzdDogQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzUmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtKb2JDcmVhdGVkXV06CiAgICAgICAgIiIiQnVsayBjcmVhdGlvbiBvZiBuZXcgZGVwb3NpdCBhZGRyZXNzZXMKCiAgICAgICAgKipGb3IgVVRYTyBibG9ja2NoYWlucyBvbmx5LioqICBDcmVhdGUgbXVsdGlwbGUgZGVwb3NpdCBhZGRyZXNzZXMgYnkgcnVubmluZyBhbiBhc3luYyBqb2IuIC0gVGhlIHRhcmdldCBWYXVsdCBhY2NvdW50IHNob3VsZCBhbHJlYWR5IGhhdmUgYSBVVFhPIGFzc2V0IHdhbGxldCB3aXRoIGEgcGVybWFuZW50IGFkZHJlc3MuIC0gTGltaXRlZCB0byBhIG1heGltdW0gb2YgMTAsMDAwIGFkZHJlc3NlcyBwZXIgb3BlcmF0aW9uLiBVc2UgbXVsdGlwbGUgb3BlcmF0aW9ucyBmb3IgdGhlIHNhbWUgVmF1bHQgYWNjb3VudC9wZXJtYW5lbnQgYWRkcmVzcyBpZiBuZWVkZWQuICAqKkVuZHBvaW50IFBlcm1pc3Npb25zOioqIEFkbWluLCBOb24tU2lnbmluZyBBZG1pbi4gCgogICAgICAgIDpwYXJhbSBjcmVhdGVfbXVsdGlwbGVfZGVwb3NpdF9hZGRyZXNzZXNfcmVxdWVzdDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGNyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3Nlc19yZXF1ZXN0OiBDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNSZXF1ZXN0CiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzX3JlcXVlc3Q9Y3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzX3JlcXVlc3QsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJKb2JDcmVhdGVkIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3Nlc19yZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzX3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IGNyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3Nlc19yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy92YXVsdC9hY2NvdW50cy9hZGRyZXNzZXMvYnVsaycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBjcmVhdGVfdmF1bHRfYWNjb3VudCgKICAgICAgICBzZWxmLAogICAgICAgIGNyZWF0ZV92YXVsdF9hY2NvdW50X3JlcXVlc3Q6IENyZWF0ZVZhdWx0QWNjb3VudFJlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVmF1bHRBY2NvdW50XV06CiAgICAgICAgIiIiQ3JlYXRlIGEgbmV3IHZhdWx0IGFjY291bnQKCiAgICAgICAgQ3JlYXRlcyBhIG5ldyB2YXVsdCBhY2NvdW50IHdpdGggdGhlIHJlcXVlc3RlZCBuYW1lLiAqKk5vdGU6ICoqIFZhdWx0IGFjY291bnQgbmFtZXMgc2hvdWxkIGNvbnNpc3Qgb2YgQVNDSUkgY2hhcmFjdGVycyBvbmx5LiBMZWFybiBtb3JlIGFib3V0IEZpcmVibG9ja3MgVmF1bHQgQWNjb3VudHMgaW4gdGhlIGZvbGxvd2luZyBbZ3VpZGVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9yZWZlcmVuY2UvY3JlYXRlLXZhdWx0LWFjY291bnQpLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKICAgICAgICA6cGFyYW0gY3JlYXRlX3ZhdWx0X2FjY291bnRfcmVxdWVzdDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGNyZWF0ZV92YXVsdF9hY2NvdW50X3JlcXVlc3Q6IENyZWF0ZVZhdWx0QWNjb3VudFJlcXVlc3QKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9jcmVhdGVfdmF1bHRfYWNjb3VudF9zZXJpYWxpemUoCiAgICAgICAgICAgIGNyZWF0ZV92YXVsdF9hY2NvdW50X3JlcXVlc3Q9Y3JlYXRlX3ZhdWx0X2FjY291bnRfcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlZhdWx0QWNjb3VudCIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2NyZWF0ZV92YXVsdF9hY2NvdW50X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNyZWF0ZV92YXVsdF9hY2NvdW50X3JlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBjcmVhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBjcmVhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy92YXVsdC9hY2NvdW50cycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBjcmVhdGVfdmF1bHRfYWNjb3VudF9hc3NldCgKICAgICAgICBzZWxmLAogICAgICAgIHZhdWx0X2FjY291bnRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgdG8gcmV0dXJuLCBvciAnZGVmYXVsdCcgZm9yIHRoZSBkZWZhdWx0IHZhdWx0IGFjY291bnQiKV0sCiAgICAgICAgYXNzZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFzc2V0IildLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBibG9ja2NoYWluX3dhbGxldF90eXBlOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249Ik9wdGlvbmFsIGltbXV0YWJsZSBibG9ja2NoYWluIHdhbGxldCB0eXBlIHRvIHN0b3JlIHBlciB0ZW5hbnQrdmF1bHQiKV0gPSBOb25lLAogICAgICAgIGNyZWF0ZV9hc3NldHNfcmVxdWVzdDogT3B0aW9uYWxbQ3JlYXRlQXNzZXRzUmVxdWVzdF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbQ3JlYXRlVmF1bHRBc3NldFJlc3BvbnNlXV06CiAgICAgICAgIiIiQ3JlYXRlIGEgbmV3IHZhdWx0IHdhbGxldAoKICAgICAgICBDcmVhdGVzIGEgd2FsbGV0IGZvciBhIHNwZWNpZmljIGFzc2V0IGluIGEgdmF1bHQgYWNjb3VudC4gTGVhcm4gbW9yZSBhYm91dCBGaXJlYmxvY2tzIFZhdWx0IFdhbGxldHMgaW4gdGhlIGZvbGxvd2luZyBbZ3VpZGVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9yZWZlcmVuY2UvY3JlYXRlLXZhdWx0LXdhbGxldCkuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgogICAgICAgIDpwYXJhbSB2YXVsdF9hY2NvdW50X2lkOiBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgdG8gcmV0dXJuLCBvciAnZGVmYXVsdCcgZm9yIHRoZSBkZWZhdWx0IHZhdWx0IGFjY291bnQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHZhdWx0X2FjY291bnRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBhc3NldF9pZDogVGhlIElEIG9mIHRoZSBhc3NldCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBibG9ja2NoYWluX3dhbGxldF90eXBlOiBPcHRpb25hbCBpbW11dGFibGUgYmxvY2tjaGFpbiB3YWxsZXQgdHlwZSB0byBzdG9yZSBwZXIgdGVuYW50K3ZhdWx0CiAgICAgICAgOnR5cGUgYmxvY2tjaGFpbl93YWxsZXRfdHlwZTogc3RyCiAgICAgICAgOnBhcmFtIGNyZWF0ZV9hc3NldHNfcmVxdWVzdDoKICAgICAgICA6dHlwZSBjcmVhdGVfYXNzZXRzX3JlcXVlc3Q6IENyZWF0ZUFzc2V0c1JlcXVlc3QKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iY3JlYXRlX3ZhdWx0X2FjY291bnRfYXNzZXQiLCBwYXJhbV9uYW1lPSJ2YXVsdF9hY2NvdW50X2lkIiwgcGFyYW1fdmFsdWU9dmF1bHRfYWNjb3VudF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImNyZWF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0IiwgcGFyYW1fbmFtZT0iYXNzZXRfaWQiLCBwYXJhbV92YWx1ZT1hc3NldF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fY3JlYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfc2VyaWFsaXplKAogICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkPXZhdWx0X2FjY291bnRfaWQsCiAgICAgICAgICAgIGFzc2V0X2lkPWFzc2V0X2lkLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBibG9ja2NoYWluX3dhbGxldF90eXBlPWJsb2NrY2hhaW5fd2FsbGV0X3R5cGUsCiAgICAgICAgICAgIGNyZWF0ZV9hc3NldHNfcmVxdWVzdD1jcmVhdGVfYXNzZXRzX3JlcXVlc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJDcmVhdGVWYXVsdEFzc2V0UmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9jcmVhdGVfdmF1bHRfYWNjb3VudF9hc3NldF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB2YXVsdF9hY2NvdW50X2lkLAogICAgICAgIGFzc2V0X2lkLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBibG9ja2NoYWluX3dhbGxldF90eXBlLAogICAgICAgIGNyZWF0ZV9hc3NldHNfcmVxdWVzdCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgdmF1bHRfYWNjb3VudF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd2YXVsdEFjY291bnRJZCddID0gdmF1bHRfYWNjb3VudF9pZAogICAgICAgIGlmIGFzc2V0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Fzc2V0SWQnXSA9IGFzc2V0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgYmxvY2tjaGFpbl93YWxsZXRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnYmxvY2tjaGFpbldhbGxldFR5cGUnLCBibG9ja2NoYWluX3dhbGxldF90eXBlKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgY3JlYXRlX2Fzc2V0c19yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBjcmVhdGVfYXNzZXRzX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3ZhdWx0L2FjY291bnRzL3t2YXVsdEFjY291bnRJZH0ve2Fzc2V0SWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGNyZWF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3MoCiAgICAgICAgc2VsZiwKICAgICAgICB2YXVsdF9hY2NvdW50X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB2YXVsdCBhY2NvdW50IHRvIHJldHVybiIpXSwKICAgICAgICBhc3NldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYXNzZXQiKV0sCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIGNyZWF0ZV9hZGRyZXNzX3JlcXVlc3Q6IE9wdGlvbmFsW0NyZWF0ZUFkZHJlc3NSZXF1ZXN0XSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtDcmVhdGVBZGRyZXNzUmVzcG9uc2VdXToKICAgICAgICAiIiJDcmVhdGUgbmV3IGFzc2V0IGRlcG9zaXQgYWRkcmVzcwoKICAgICAgICBDcmVhdGVzIGEgbmV3IGRlcG9zaXQgYWRkcmVzcyBmb3IgYW4gYXNzZXQgb2YgYSB2YXVsdCBhY2NvdW50LiBTaG91bGQgYmUgdXNlZCBmb3IgVVRYTyBvciBUYWcvTWVtbyBiYXNlZCBhc3NldHMgT05MWS4gIFJlcXVlc3RzIHdpdGggYWNjb3VudCBiYXNlZCBhc3NldHMgd2lsbCBmYWlsLiAgPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4uCgogICAgICAgIDpwYXJhbSB2YXVsdF9hY2NvdW50X2lkOiBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgdG8gcmV0dXJuIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB2YXVsdF9hY2NvdW50X2lkOiBzdHIKICAgICAgICA6cGFyYW0gYXNzZXRfaWQ6IFRoZSBJRCBvZiB0aGUgYXNzZXQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGFzc2V0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gY3JlYXRlX2FkZHJlc3NfcmVxdWVzdDoKICAgICAgICA6dHlwZSBjcmVhdGVfYWRkcmVzc19yZXF1ZXN0OiBDcmVhdGVBZGRyZXNzUmVxdWVzdAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJjcmVhdGVfdmF1bHRfYWNjb3VudF9hc3NldF9hZGRyZXNzIiwgcGFyYW1fbmFtZT0idmF1bHRfYWNjb3VudF9pZCIsIHBhcmFtX3ZhbHVlPXZhdWx0X2FjY291bnRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJjcmVhdGVfdmF1bHRfYWNjb3VudF9hc3NldF9hZGRyZXNzIiwgcGFyYW1fbmFtZT0iYXNzZXRfaWQiLCBwYXJhbV92YWx1ZT1hc3NldF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fY3JlYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzc19zZXJpYWxpemUoCiAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQ9dmF1bHRfYWNjb3VudF9pZCwKICAgICAgICAgICAgYXNzZXRfaWQ9YXNzZXRfaWQsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIGNyZWF0ZV9hZGRyZXNzX3JlcXVlc3Q9Y3JlYXRlX2FkZHJlc3NfcmVxdWVzdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkNyZWF0ZUFkZHJlc3NSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2NyZWF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3Nfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZCwKICAgICAgICBhc3NldF9pZCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgY3JlYXRlX2FkZHJlc3NfcmVxdWVzdCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgdmF1bHRfYWNjb3VudF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd2YXVsdEFjY291bnRJZCddID0gdmF1bHRfYWNjb3VudF9pZAogICAgICAgIGlmIGFzc2V0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Fzc2V0SWQnXSA9IGFzc2V0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgY3JlYXRlX2FkZHJlc3NfcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gY3JlYXRlX2FkZHJlc3NfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdmF1bHQvYWNjb3VudHMve3ZhdWx0QWNjb3VudElkfS97YXNzZXRJZH0vYWRkcmVzc2VzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9hc3NldF93YWxsZXRzKAogICAgICAgIHNlbGYsCiAgICAgICAgdG90YWxfYW1vdW50X2xhcmdlcl90aGFuOiBBbm5vdGF0ZWRbT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dLCBGaWVsZChkZXNjcmlwdGlvbj0iV2hlbiBzcGVjaWZpZWQsIG9ubHkgdmF1bHQgd2FsbGV0cyB3aXRoIHRvdGFsIGJhbGFuY2UgZ3JlYXRlciB0aGFuIHRoaXMgYW1vdW50IGFyZSByZXR1cm5lZC4iKV0gPSBOb25lLAogICAgICAgIGFzc2V0X2lkOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IldoZW4gc3BlY2lmaWVkLCBvbmx5IHZhdWx0IHdhbGxldHMgd2l0aCB0aGUgc3BlY2lmaWVkIElEIGFyZSByZXR1cm5lZC4iKV0gPSBOb25lLAogICAgICAgIG9yZGVyX2J5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBiZWZvcmU6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iRmV0Y2hlcyB0aGUgbmV4dCBwYWdpbmF0ZWQgcmVzcG9uc2UgYmVmb3JlIHRoaXMgZWxlbWVudC4gIFRoaXMgZWxlbWVudCBpcyBhIGN1cnNvciBhbmQgaXMgcmV0dXJuZWQgYXQgdGhlIHJlc3BvbnNlIG9mIHRoZSBwcmV2aW91cyBwYWdlLiAiKV0gPSBOb25lLAogICAgICAgIGFmdGVyOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkZldGNoZXMgdGhlIG5leHQgcGFnaW5hdGVkIHJlc3BvbnNlIGFmdGVyIHRoaXMgZWxlbWVudC4gVGhpcyBlbGVtZW50IGlzIGEgY3Vyc29yIGFuZCBpcyByZXR1cm5lZCBhdCB0aGUgcmVzcG9uc2Ugb2YgdGhlIHByZXZpb3VzIHBhZ2UuIildID0gTm9uZSwKICAgICAgICBsaW1pdDogQW5ub3RhdGVkW09wdGlvbmFsW1VuaW9uW0Fubm90YXRlZFtmbG9hdCwgRmllbGQobGU9MTAwMCwgc3RyaWN0PVRydWUsIGdlPTEpXSwgQW5ub3RhdGVkW2ludCwgRmllbGQobGU9MTAwMCwgc3RyaWN0PVRydWUsIGdlPTEpXV1dLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIG1heGltdW0gbnVtYmVyIG9mIHZhdWx0IHdhbGxldHMgaW4gYSBzaW5nbGUgcmVzcG9uc2UuICAgVGhlIGRlZmF1bHQgaXMgMjAwIGFuZCB0aGUgbWF4aW11bSBpcyAxMDAwLiAiKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZV1dOgogICAgICAgICIiIkdldCB2YXVsdCB3YWxsZXRzIChQYWdpbmF0ZWQpCgogICAgICAgIEdldCBhbGwgdmF1bHQgd2FsbGV0cyBvZiB0aGUgdmF1bHQgYWNjb3VudHMgaW4geW91ciB3b3Jrc3BhY2UuICBBIHZhdWx0IHdhbGxldCBpcyBhbiBhc3NldCBpbiBhIHZhdWx0IGFjY291bnQuICAgVGhpcyBtZXRob2QgYWxsb3dzIGZhc3QgdHJhdmVyc2FsIG9mIGFsbCBhY2NvdW50IGJhbGFuY2VzLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLCBWaWV3ZXIuCgogICAgICAgIDpwYXJhbSB0b3RhbF9hbW91bnRfbGFyZ2VyX3RoYW46IFdoZW4gc3BlY2lmaWVkLCBvbmx5IHZhdWx0IHdhbGxldHMgd2l0aCB0b3RhbCBiYWxhbmNlIGdyZWF0ZXIgdGhhbiB0aGlzIGFtb3VudCBhcmUgcmV0dXJuZWQuCiAgICAgICAgOnR5cGUgdG90YWxfYW1vdW50X2xhcmdlcl90aGFuOiBmbG9hdAogICAgICAgIDpwYXJhbSBhc3NldF9pZDogV2hlbiBzcGVjaWZpZWQsIG9ubHkgdmF1bHQgd2FsbGV0cyB3aXRoIHRoZSBzcGVjaWZpZWQgSUQgYXJlIHJldHVybmVkLgogICAgICAgIDp0eXBlIGFzc2V0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gb3JkZXJfYnk6CiAgICAgICAgOnR5cGUgb3JkZXJfYnk6IHN0cgogICAgICAgIDpwYXJhbSBiZWZvcmU6IEZldGNoZXMgdGhlIG5leHQgcGFnaW5hdGVkIHJlc3BvbnNlIGJlZm9yZSB0aGlzIGVsZW1lbnQuICBUaGlzIGVsZW1lbnQgaXMgYSBjdXJzb3IgYW5kIGlzIHJldHVybmVkIGF0IHRoZSByZXNwb25zZSBvZiB0aGUgcHJldmlvdXMgcGFnZS4gCiAgICAgICAgOnR5cGUgYmVmb3JlOiBzdHIKICAgICAgICA6cGFyYW0gYWZ0ZXI6IEZldGNoZXMgdGhlIG5leHQgcGFnaW5hdGVkIHJlc3BvbnNlIGFmdGVyIHRoaXMgZWxlbWVudC4gVGhpcyBlbGVtZW50IGlzIGEgY3Vyc29yIGFuZCBpcyByZXR1cm5lZCBhdCB0aGUgcmVzcG9uc2Ugb2YgdGhlIHByZXZpb3VzIHBhZ2UuCiAgICAgICAgOnR5cGUgYWZ0ZXI6IHN0cgogICAgICAgIDpwYXJhbSBsaW1pdDogVGhlIG1heGltdW0gbnVtYmVyIG9mIHZhdWx0IHdhbGxldHMgaW4gYSBzaW5nbGUgcmVzcG9uc2UuICAgVGhlIGRlZmF1bHQgaXMgMjAwIGFuZCB0aGUgbWF4aW11bSBpcyAxMDAwLiAKICAgICAgICA6dHlwZSBsaW1pdDogZmxvYXQKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfYXNzZXRfd2FsbGV0c19zZXJpYWxpemUoCiAgICAgICAgICAgIHRvdGFsX2Ftb3VudF9sYXJnZXJfdGhhbj10b3RhbF9hbW91bnRfbGFyZ2VyX3RoYW4sCiAgICAgICAgICAgIGFzc2V0X2lkPWFzc2V0X2lkLAogICAgICAgICAgICBvcmRlcl9ieT1vcmRlcl9ieSwKICAgICAgICAgICAgYmVmb3JlPWJlZm9yZSwKICAgICAgICAgICAgYWZ0ZXI9YWZ0ZXIsCiAgICAgICAgICAgIGxpbWl0PWxpbWl0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfYXNzZXRfd2FsbGV0c19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB0b3RhbF9hbW91bnRfbGFyZ2VyX3RoYW4sCiAgICAgICAgYXNzZXRfaWQsCiAgICAgICAgb3JkZXJfYnksCiAgICAgICAgYmVmb3JlLAogICAgICAgIGFmdGVyLAogICAgICAgIGxpbWl0LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiB0b3RhbF9hbW91bnRfbGFyZ2VyX3RoYW4gaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3RvdGFsQW1vdW50TGFyZ2VyVGhhbicsIHRvdGFsX2Ftb3VudF9sYXJnZXJfdGhhbikpCiAgICAgICAgICAgIAogICAgICAgIGlmIGFzc2V0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdhc3NldElkJywgYXNzZXRfaWQpKQogICAgICAgICAgICAKICAgICAgICBpZiBvcmRlcl9ieSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnb3JkZXJCeScsIG9yZGVyX2J5KSkKICAgICAgICAgICAgCiAgICAgICAgaWYgYmVmb3JlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdiZWZvcmUnLCBiZWZvcmUpKQogICAgICAgICAgICAKICAgICAgICBpZiBhZnRlciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnYWZ0ZXInLCBhZnRlcikpCiAgICAgICAgICAgIAogICAgICAgIGlmIGxpbWl0IGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdsaW1pdCcsIGxpbWl0KSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdmF1bHQvYXNzZXRfd2FsbGV0cycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzX2pvYl9zdGF0dXMoCiAgICAgICAgc2VsZiwKICAgICAgICBqb2JfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGpvYiB0byBjcmVhdGUgYWRkcmVzc2VzIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzSm9iU3RhdHVzXV06CiAgICAgICAgIiIiR2V0IHRoZSBqb2Igc3RhdHVzIG9mIHRoZSBidWxrIGRlcG9zaXQgYWRkcmVzcyBjcmVhdGlvbgoKICAgICAgICBSZXR1cm5zIHRoZSBjdXJyZW50IHN0YXR1cyBvZiAob3IgYW4gZXJyb3IgZm9yKSB0aGUgc3BlY2lmaWVkIGRlcG9zaXQgYWRkcmVzc3MgYnVsayBjcmVhdGlvbiBqb2IuICAqKkVuZHBvaW50IFBlcm1pc3Npb25zOioqIEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLCBhbmQgVmlld2VyLiAKCiAgICAgICAgOnBhcmFtIGpvYl9pZDogVGhlIElEIG9mIHRoZSBqb2IgdG8gY3JlYXRlIGFkZHJlc3NlcyAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgam9iX2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X2NyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3Nlc19qb2Jfc3RhdHVzIiwgcGFyYW1fbmFtZT0iam9iX2lkIiwgcGFyYW1fdmFsdWU9am9iX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzX2pvYl9zdGF0dXNfc2VyaWFsaXplKAogICAgICAgICAgICBqb2JfaWQ9am9iX2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzSm9iU3RhdHVzIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X2NyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3Nlc19qb2Jfc3RhdHVzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGpvYl9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgam9iX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2pvYklkJ10gPSBqb2JfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy92YXVsdC9hY2NvdW50cy9hZGRyZXNzZXMvYnVsay97am9iSWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9jcmVhdGVfbXVsdGlwbGVfdmF1bHRfYWNjb3VudHNfam9iX3N0YXR1cygKICAgICAgICBzZWxmLAogICAgICAgIGpvYl9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgam9iIHRvIGNyZWF0ZSBhZGRyZXNzZXMiKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtDcmVhdGVNdWx0aXBsZVZhdWx0QWNjb3VudHNKb2JTdGF0dXNdXToKICAgICAgICAiIiJHZXQgam9iIHN0YXR1cyBvZiBidWxrIGNyZWF0aW9uIG9mIG5ldyB2YXVsdCBhY2NvdW50cwoKICAgICAgICBSZXR1cm5zIHRoZSBjdXJyZW50IHN0YXR1cyBvZiAob3IgZXJyb3IgZm9yKSB0aGUgc3BlY2lmaWVkIHZhdWx0IGFjY291bnQgYnVsayBjcmVhdGlvbiBqb2IuICAqKkVuZHBvaW50IFBlcm1pc3Npb25zOioqIEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLCBWaWV3ZXIuIAoKICAgICAgICA6cGFyYW0gam9iX2lkOiBUaGUgSUQgb2YgdGhlIGpvYiB0byBjcmVhdGUgYWRkcmVzc2VzIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBqb2JfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfY3JlYXRlX211bHRpcGxlX3ZhdWx0X2FjY291bnRzX2pvYl9zdGF0dXMiLCBwYXJhbV9uYW1lPSJqb2JfaWQiLCBwYXJhbV92YWx1ZT1qb2JfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9jcmVhdGVfbXVsdGlwbGVfdmF1bHRfYWNjb3VudHNfam9iX3N0YXR1c19zZXJpYWxpemUoCiAgICAgICAgICAgIGpvYl9pZD1qb2JfaWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJDcmVhdGVNdWx0aXBsZVZhdWx0QWNjb3VudHNKb2JTdGF0dXMiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfY3JlYXRlX211bHRpcGxlX3ZhdWx0X2FjY291bnRzX2pvYl9zdGF0dXNfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgam9iX2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiBqb2JfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snam9iSWQnXSA9IGpvYl9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3ZhdWx0L2FjY291bnRzL2J1bGsve2pvYklkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfbWF4X2JpcF9pbmRleF91c2VkKAogICAgICAgIHNlbGYsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudCIpXSwKICAgICAgICBhc3NldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYXNzZXQiKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtHZXRNYXhCaXBJbmRleFVzZWRSZXNwb25zZV1dOgogICAgICAgICIiIkdldCBtYXhpbXVtIEJJUDQ0IGluZGV4IHVzZWQKCiAgICAgICAgUmV0cmlldmVzIHRoZSBtYXhpbXVtIEJJUDQ0IGFkZHJlc3MgaW5kZXggYW5kIGNoYW5nZSBhZGRyZXNzIGluZGV4IHVzZWQgZm9yIGEgc3BlY2lmaWMgYXNzZXQgaW4gYSB2YXVsdCBhY2NvdW50IChCSVA0NCBzdGFuZGFyZCkuCgogICAgICAgIDpwYXJhbSB2YXVsdF9hY2NvdW50X2lkOiBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHZhdWx0X2FjY291bnRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBhc3NldF9pZDogVGhlIElEIG9mIHRoZSBhc3NldCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfbWF4X2JpcF9pbmRleF91c2VkIiwgcGFyYW1fbmFtZT0idmF1bHRfYWNjb3VudF9pZCIsIHBhcmFtX3ZhbHVlPXZhdWx0X2FjY291bnRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfbWF4X2JpcF9pbmRleF91c2VkIiwgcGFyYW1fbmFtZT0iYXNzZXRfaWQiLCBwYXJhbV92YWx1ZT1hc3NldF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X21heF9iaXBfaW5kZXhfdXNlZF9zZXJpYWxpemUoCiAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQ9dmF1bHRfYWNjb3VudF9pZCwKICAgICAgICAgICAgYXNzZXRfaWQ9YXNzZXRfaWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJHZXRNYXhCaXBJbmRleFVzZWRSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9tYXhfYmlwX2luZGV4X3VzZWRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZCwKICAgICAgICBhc3NldF9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgdmF1bHRfYWNjb3VudF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd2YXVsdEFjY291bnRJZCddID0gdmF1bHRfYWNjb3VudF9pZAogICAgICAgIGlmIGFzc2V0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Fzc2V0SWQnXSA9IGFzc2V0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdmF1bHQvYWNjb3VudHMve3ZhdWx0QWNjb3VudElkfS97YXNzZXRJZH0vbWF4X2JpcDQ0X2luZGV4X3VzZWQnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X21heF9zcGVuZGFibGVfYW1vdW50KAogICAgICAgIHNlbGYsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudCwgb3IgJ2RlZmF1bHQnIGZvciB0aGUgZGVmYXVsdCB2YXVsdCBhY2NvdW50IildLAogICAgICAgIGFzc2V0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBhc3NldCIpXSwKICAgICAgICBtYW51YWxfc2lnbmdpbmc6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RCb29sXSwgRmllbGQoZGVzY3JpcHRpb249IkZhbHNlIGJ5IGRlZmF1bHQuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBpbnB1dHMgZGVwZW5kcyBpZiB0aGUgdHJhbnNhY3Rpb24gd2lsbCBiZSBzaWduZWQgYnkgYW4gYXV0b21hdGVkIGNvLXNpZ25lciBzZXJ2ZXIgb3Igb24gYSBtb2JpbGUgZGV2aWNlLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtHZXRNYXhTcGVuZGFibGVBbW91bnRSZXNwb25zZV1dOgogICAgICAgICIiIkdldCBtYXggc3BlbmRhYmxlIGFtb3VudCBpbiBhIHRyYW5zYWN0aW9uCgogICAgICAgICoqVVRYTyBhc3NldHMgb25seS4qKiAgUmV0cmlldmUgdGhlIG1heGltdW0gYW1vdW50IG9mIHRoZSBzcGVjaWZpZWQgYXNzZXQgdGhhdCBjYW4gYmUgc3BlbnQgaW4gYSBzaW5nbGUgdHJhbnNhY3Rpb24gZnJvbSB0aGUgc3BlY2lmaWVkIHZhdWx0IGFjY291bnQuICAqKkVuZHBvaW50IFBlcm1pc3Npb25zOioqIEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLCBWaWV3ZXIuIAoKICAgICAgICA6cGFyYW0gdmF1bHRfYWNjb3VudF9pZDogVGhlIElEIG9mIHRoZSB2YXVsdCBhY2NvdW50LCBvciAnZGVmYXVsdCcgZm9yIHRoZSBkZWZhdWx0IHZhdWx0IGFjY291bnQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHZhdWx0X2FjY291bnRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBhc3NldF9pZDogVGhlIElEIG9mIHRoZSBhc3NldCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBtYW51YWxfc2lnbmdpbmc6IEZhbHNlIGJ5IGRlZmF1bHQuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBpbnB1dHMgZGVwZW5kcyBpZiB0aGUgdHJhbnNhY3Rpb24gd2lsbCBiZSBzaWduZWQgYnkgYW4gYXV0b21hdGVkIGNvLXNpZ25lciBzZXJ2ZXIgb3Igb24gYSBtb2JpbGUgZGV2aWNlLgogICAgICAgIDp0eXBlIG1hbnVhbF9zaWduZ2luZzogYm9vbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfbWF4X3NwZW5kYWJsZV9hbW91bnQiLCBwYXJhbV9uYW1lPSJ2YXVsdF9hY2NvdW50X2lkIiwgcGFyYW1fdmFsdWU9dmF1bHRfYWNjb3VudF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9tYXhfc3BlbmRhYmxlX2Ftb3VudCIsIHBhcmFtX25hbWU9ImFzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YXNzZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9tYXhfc3BlbmRhYmxlX2Ftb3VudF9zZXJpYWxpemUoCiAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQ9dmF1bHRfYWNjb3VudF9pZCwKICAgICAgICAgICAgYXNzZXRfaWQ9YXNzZXRfaWQsCiAgICAgICAgICAgIG1hbnVhbF9zaWduZ2luZz1tYW51YWxfc2lnbmdpbmcsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJHZXRNYXhTcGVuZGFibGVBbW91bnRSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9tYXhfc3BlbmRhYmxlX2Ftb3VudF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB2YXVsdF9hY2NvdW50X2lkLAogICAgICAgIGFzc2V0X2lkLAogICAgICAgIG1hbnVhbF9zaWduZ2luZywKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgdmF1bHRfYWNjb3VudF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd2YXVsdEFjY291bnRJZCddID0gdmF1bHRfYWNjb3VudF9pZAogICAgICAgIGlmIGFzc2V0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Fzc2V0SWQnXSA9IGFzc2V0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgbWFudWFsX3NpZ25naW5nIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdtYW51YWxTaWduZ2luZycsIG1hbnVhbF9zaWduZ2luZykpCiAgICAgICAgICAgIAogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3ZhdWx0L2FjY291bnRzL3t2YXVsdEFjY291bnRJZH0ve2Fzc2V0SWR9L21heF9zcGVuZGFibGVfYW1vdW50JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF9wYWdlZF92YXVsdF9hY2NvdW50cygKICAgICAgICBzZWxmLAogICAgICAgIG5hbWVfcHJlZml4OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBuYW1lX3N1ZmZpeDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgbWluX2Ftb3VudF90aHJlc2hvbGQ6IEFubm90YXRlZFtPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJTcGVjaWZ5aW5nIG1pbkFtb3VudFRocmVzaG9sZCB3aWxsIGZpbHRlciBhY2NvdW50cyB3aG9zZSB0b3RhbCBiYWxhbmNlIGlzIGdyZWF0ZXIgdGhhbiB0aGlzIHZhbHVlOyBvdGhlcndpc2UsIGl0IHJldHVybnMgYWxsIGFjY291bnRzLiBUaGUgYW1vdW50IHNldCBpbiB0aGlzIHBhcmFtZXRlciByZXByZXNlbnRzIHRoZSBuYXRpdmUgYXNzZXQgYW1vdW50LCBub3QgaXRzIFVTRCB2YWx1ZS4iKV0gPSBOb25lLAogICAgICAgIGFzc2V0X2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBvcmRlcl9ieTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgYmVmb3JlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBhZnRlcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgbGltaXQ6IE9wdGlvbmFsW1VuaW9uW0Fubm90YXRlZFtmbG9hdCwgRmllbGQobGU9NTAwLCBzdHJpY3Q9VHJ1ZSwgZ2U9MSldLCBBbm5vdGF0ZWRbaW50LCBGaWVsZChsZT01MDAsIHN0cmljdD1UcnVlLCBnZT0xKV1dXSA9IE5vbmUsCiAgICAgICAgdGFnX2lkczogQW5ub3RhdGVkW09wdGlvbmFsW0Fubm90YXRlZFtMaXN0W1N0cmljdFN0cl0sIEZpZWxkKG1heF9sZW5ndGg9NTApXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJERVBSRUNBVEVEIC0gdXNlIGluY2x1ZGVUYWdJZHMgaW5zdGVhZCIpXSA9IE5vbmUsCiAgICAgICAgaW5jbHVkZV90YWdfaWRzOiBBbm5vdGF0ZWRbT3B0aW9uYWxbQW5ub3RhdGVkW0xpc3RbU3RyaWN0U3RyXSwgRmllbGQobWF4X2xlbmd0aD01MCldXSwgRmllbGQoZGVzY3JpcHRpb249Ikxpc3Qgb2YgdGFnIElEcyB0byBpbmNsdWRlLiBWYXVsdCBhY2NvdW50cyB3aXRoIGFueSBvZiB0aGVzZSB0YWdzIHdpbGwgYmUgaW5jbHVkZWQiKV0gPSBOb25lLAogICAgICAgIGV4Y2x1ZGVfdGFnX2lkczogQW5ub3RhdGVkW09wdGlvbmFsW0Fubm90YXRlZFtMaXN0W1N0cmljdFN0cl0sIEZpZWxkKG1heF9sZW5ndGg9NTApXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJMaXN0IG9mIHRhZyBJRHMgdG8gZXhjbHVkZS4gVmF1bHQgYWNjb3VudHMgd2l0aCBhbnkgb2YgdGhlc2UgdGFncyB3aWxsIGJlIGZpbHRlcmVkIG91dCIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZV1dOgogICAgICAgICIiIkdldCB2YXVsdCBhY2NvdW50cyAoUGFnaW5hdGVkKQoKICAgICAgICBHZXRzIGFsbCB2YXVsdCBhY2NvdW50cyBpbiB5b3VyIHdvcmtzcGFjZS4gVGhpcyBlbmRwb2ludCByZXR1cm5zIGEgbGltaXRlZCBhbW91bnQgb2YgcmVzdWx0cyB3aXRoIGEgcXVpY2sgcmVzcG9uc2UgdGltZS4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgVmlld2VyLgoKICAgICAgICA6cGFyYW0gbmFtZV9wcmVmaXg6CiAgICAgICAgOnR5cGUgbmFtZV9wcmVmaXg6IHN0cgogICAgICAgIDpwYXJhbSBuYW1lX3N1ZmZpeDoKICAgICAgICA6dHlwZSBuYW1lX3N1ZmZpeDogc3RyCiAgICAgICAgOnBhcmFtIG1pbl9hbW91bnRfdGhyZXNob2xkOiBTcGVjaWZ5aW5nIG1pbkFtb3VudFRocmVzaG9sZCB3aWxsIGZpbHRlciBhY2NvdW50cyB3aG9zZSB0b3RhbCBiYWxhbmNlIGlzIGdyZWF0ZXIgdGhhbiB0aGlzIHZhbHVlOyBvdGhlcndpc2UsIGl0IHJldHVybnMgYWxsIGFjY291bnRzLiBUaGUgYW1vdW50IHNldCBpbiB0aGlzIHBhcmFtZXRlciByZXByZXNlbnRzIHRoZSBuYXRpdmUgYXNzZXQgYW1vdW50LCBub3QgaXRzIFVTRCB2YWx1ZS4KICAgICAgICA6dHlwZSBtaW5fYW1vdW50X3RocmVzaG9sZDogZmxvYXQKICAgICAgICA6cGFyYW0gYXNzZXRfaWQ6CiAgICAgICAgOnR5cGUgYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBvcmRlcl9ieToKICAgICAgICA6dHlwZSBvcmRlcl9ieTogc3RyCiAgICAgICAgOnBhcmFtIGJlZm9yZToKICAgICAgICA6dHlwZSBiZWZvcmU6IHN0cgogICAgICAgIDpwYXJhbSBhZnRlcjoKICAgICAgICA6dHlwZSBhZnRlcjogc3RyCiAgICAgICAgOnBhcmFtIGxpbWl0OgogICAgICAgIDp0eXBlIGxpbWl0OiBmbG9hdAogICAgICAgIDpwYXJhbSB0YWdfaWRzOiBERVBSRUNBVEVEIC0gdXNlIGluY2x1ZGVUYWdJZHMgaW5zdGVhZAogICAgICAgIDp0eXBlIHRhZ19pZHM6IExpc3Rbc3RyXQogICAgICAgIDpwYXJhbSBpbmNsdWRlX3RhZ19pZHM6IExpc3Qgb2YgdGFnIElEcyB0byBpbmNsdWRlLiBWYXVsdCBhY2NvdW50cyB3aXRoIGFueSBvZiB0aGVzZSB0YWdzIHdpbGwgYmUgaW5jbHVkZWQKICAgICAgICA6dHlwZSBpbmNsdWRlX3RhZ19pZHM6IExpc3Rbc3RyXQogICAgICAgIDpwYXJhbSBleGNsdWRlX3RhZ19pZHM6IExpc3Qgb2YgdGFnIElEcyB0byBleGNsdWRlLiBWYXVsdCBhY2NvdW50cyB3aXRoIGFueSBvZiB0aGVzZSB0YWdzIHdpbGwgYmUgZmlsdGVyZWQgb3V0CiAgICAgICAgOnR5cGUgZXhjbHVkZV90YWdfaWRzOiBMaXN0W3N0cl0KICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfcGFnZWRfdmF1bHRfYWNjb3VudHNfc2VyaWFsaXplKAogICAgICAgICAgICBuYW1lX3ByZWZpeD1uYW1lX3ByZWZpeCwKICAgICAgICAgICAgbmFtZV9zdWZmaXg9bmFtZV9zdWZmaXgsCiAgICAgICAgICAgIG1pbl9hbW91bnRfdGhyZXNob2xkPW1pbl9hbW91bnRfdGhyZXNob2xkLAogICAgICAgICAgICBhc3NldF9pZD1hc3NldF9pZCwKICAgICAgICAgICAgb3JkZXJfYnk9b3JkZXJfYnksCiAgICAgICAgICAgIGJlZm9yZT1iZWZvcmUsCiAgICAgICAgICAgIGFmdGVyPWFmdGVyLAogICAgICAgICAgICBsaW1pdD1saW1pdCwKICAgICAgICAgICAgdGFnX2lkcz10YWdfaWRzLAogICAgICAgICAgICBpbmNsdWRlX3RhZ19pZHM9aW5jbHVkZV90YWdfaWRzLAogICAgICAgICAgICBleGNsdWRlX3RhZ19pZHM9ZXhjbHVkZV90YWdfaWRzLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2UiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3BhZ2VkX3ZhdWx0X2FjY291bnRzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIG5hbWVfcHJlZml4LAogICAgICAgIG5hbWVfc3VmZml4LAogICAgICAgIG1pbl9hbW91bnRfdGhyZXNob2xkLAogICAgICAgIGFzc2V0X2lkLAogICAgICAgIG9yZGVyX2J5LAogICAgICAgIGJlZm9yZSwKICAgICAgICBhZnRlciwKICAgICAgICBsaW1pdCwKICAgICAgICB0YWdfaWRzLAogICAgICAgIGluY2x1ZGVfdGFnX2lkcywKICAgICAgICBleGNsdWRlX3RhZ19pZHMsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgICAgICAndGFnSWRzJzogJ211bHRpJywKICAgICAgICAgICAgJ2luY2x1ZGVUYWdJZHMnOiAnbXVsdGknLAogICAgICAgICAgICAnZXhjbHVkZVRhZ0lkcyc6ICdtdWx0aScsCiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgbmFtZV9wcmVmaXggaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ25hbWVQcmVmaXgnLCBuYW1lX3ByZWZpeCkpCiAgICAgICAgICAgIAogICAgICAgIGlmIG5hbWVfc3VmZml4IGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCduYW1lU3VmZml4JywgbmFtZV9zdWZmaXgpKQogICAgICAgICAgICAKICAgICAgICBpZiBtaW5fYW1vdW50X3RocmVzaG9sZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnbWluQW1vdW50VGhyZXNob2xkJywgbWluX2Ftb3VudF90aHJlc2hvbGQpKQogICAgICAgICAgICAKICAgICAgICBpZiBhc3NldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnYXNzZXRJZCcsIGFzc2V0X2lkKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgb3JkZXJfYnkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ29yZGVyQnknLCBvcmRlcl9ieSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIGJlZm9yZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnYmVmb3JlJywgYmVmb3JlKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgYWZ0ZXIgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2FmdGVyJywgYWZ0ZXIpKQogICAgICAgICAgICAKICAgICAgICBpZiBsaW1pdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnbGltaXQnLCBsaW1pdCkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHRhZ19pZHMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3RhZ0lkcycsIHRhZ19pZHMpKQogICAgICAgICAgICAKICAgICAgICBpZiBpbmNsdWRlX3RhZ19pZHMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2luY2x1ZGVUYWdJZHMnLCBpbmNsdWRlX3RhZ19pZHMpKQogICAgICAgICAgICAKICAgICAgICBpZiBleGNsdWRlX3RhZ19pZHMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2V4Y2x1ZGVUYWdJZHMnLCBleGNsdWRlX3RhZ19pZHMpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy92YXVsdC9hY2NvdW50c19wYWdlZCcsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfcHVibGljX2tleV9pbmZvKAogICAgICAgIHNlbGYsCiAgICAgICAgZGVyaXZhdGlvbl9wYXRoOiBTdHJpY3RTdHIsCiAgICAgICAgYWxnb3JpdGhtOiBTdHJpY3RTdHIsCiAgICAgICAgY29tcHJlc3NlZDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbUHVibGljS2V5SW5mb3JtYXRpb25dXToKICAgICAgICAiIiJHZXQgdGhlIHB1YmxpYyBrZXkgZm9yIGEgZGVyaXZhdGlvbiBwYXRoCgogICAgICAgIEdldHMgdGhlIHB1YmxpYyBrZXkgaW5mb3JtYXRpb24gYmFzZWQgb24gZGVyaXZhdGlvbiBwYXRoIGFuZCBzaWduaW5nIGFsZ29yaXRobS4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4uCgogICAgICAgIDpwYXJhbSBkZXJpdmF0aW9uX3BhdGg6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBkZXJpdmF0aW9uX3BhdGg6IHN0cgogICAgICAgIDpwYXJhbSBhbGdvcml0aG06IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhbGdvcml0aG06IHN0cgogICAgICAgIDpwYXJhbSBjb21wcmVzc2VkOgogICAgICAgIDp0eXBlIGNvbXByZXNzZWQ6IGJvb2wKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3B1YmxpY19rZXlfaW5mbyIsIHBhcmFtX25hbWU9ImRlcml2YXRpb25fcGF0aCIsIHBhcmFtX3ZhbHVlPWRlcml2YXRpb25fcGF0aCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9wdWJsaWNfa2V5X2luZm8iLCBwYXJhbV9uYW1lPSJhbGdvcml0aG0iLCBwYXJhbV92YWx1ZT1hbGdvcml0aG0pCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9wdWJsaWNfa2V5X2luZm9fc2VyaWFsaXplKAogICAgICAgICAgICBkZXJpdmF0aW9uX3BhdGg9ZGVyaXZhdGlvbl9wYXRoLAogICAgICAgICAgICBhbGdvcml0aG09YWxnb3JpdGhtLAogICAgICAgICAgICBjb21wcmVzc2VkPWNvbXByZXNzZWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJQdWJsaWNLZXlJbmZvcm1hdGlvbiIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9wdWJsaWNfa2V5X2luZm9fc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgZGVyaXZhdGlvbl9wYXRoLAogICAgICAgIGFsZ29yaXRobSwKICAgICAgICBjb21wcmVzc2VkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiBkZXJpdmF0aW9uX3BhdGggaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2Rlcml2YXRpb25QYXRoJywgZGVyaXZhdGlvbl9wYXRoKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgYWxnb3JpdGhtIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdhbGdvcml0aG0nLCBhbGdvcml0aG0pKQogICAgICAgICAgICAKICAgICAgICBpZiBjb21wcmVzc2VkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdjb21wcmVzc2VkJywgY29tcHJlc3NlZCkpCiAgICAgICAgICAgIAogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3ZhdWx0L3B1YmxpY19rZXlfaW5mbycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfcHVibGljX2tleV9pbmZvX2Zvcl9hZGRyZXNzKAogICAgICAgIHNlbGYsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZDogU3RyaWN0U3RyLAogICAgICAgIGFzc2V0X2lkOiBTdHJpY3RTdHIsCiAgICAgICAgY2hhbmdlOiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSwKICAgICAgICBhZGRyZXNzX2luZGV4OiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSwKICAgICAgICBjb21wcmVzc2VkOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtQdWJsaWNLZXlJbmZvcm1hdGlvbl1dOgogICAgICAgICIiIkdldCBhbiBhc3NldCdzIHB1YmxpYyBrZXkKCiAgICAgICAgR2V0IHRoZSBwdWJsaWMga2V5IGluZm9ybWF0aW9uIGZvciBhIHNwZWNpZmljIGFzc2V0IGluIGEgdmF1bHQgYWNjb3VudC4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4uCgogICAgICAgIDpwYXJhbSB2YXVsdF9hY2NvdW50X2lkOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdmF1bHRfYWNjb3VudF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGFzc2V0X2lkOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBjaGFuZ2U6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjaGFuZ2U6IGZsb2F0CiAgICAgICAgOnBhcmFtIGFkZHJlc3NfaW5kZXg6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhZGRyZXNzX2luZGV4OiBmbG9hdAogICAgICAgIDpwYXJhbSBjb21wcmVzc2VkOgogICAgICAgIDp0eXBlIGNvbXByZXNzZWQ6IGJvb2wKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3B1YmxpY19rZXlfaW5mb19mb3JfYWRkcmVzcyIsIHBhcmFtX25hbWU9InZhdWx0X2FjY291bnRfaWQiLCBwYXJhbV92YWx1ZT12YXVsdF9hY2NvdW50X2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3B1YmxpY19rZXlfaW5mb19mb3JfYWRkcmVzcyIsIHBhcmFtX25hbWU9ImFzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YXNzZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9wdWJsaWNfa2V5X2luZm9fZm9yX2FkZHJlc3Nfc2VyaWFsaXplKAogICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkPXZhdWx0X2FjY291bnRfaWQsCiAgICAgICAgICAgIGFzc2V0X2lkPWFzc2V0X2lkLAogICAgICAgICAgICBjaGFuZ2U9Y2hhbmdlLAogICAgICAgICAgICBhZGRyZXNzX2luZGV4PWFkZHJlc3NfaW5kZXgsCiAgICAgICAgICAgIGNvbXByZXNzZWQ9Y29tcHJlc3NlZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlB1YmxpY0tleUluZm9ybWF0aW9uIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3B1YmxpY19rZXlfaW5mb19mb3JfYWRkcmVzc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB2YXVsdF9hY2NvdW50X2lkLAogICAgICAgIGFzc2V0X2lkLAogICAgICAgIGNoYW5nZSwKICAgICAgICBhZGRyZXNzX2luZGV4LAogICAgICAgIGNvbXByZXNzZWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHZhdWx0X2FjY291bnRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1sndmF1bHRBY2NvdW50SWQnXSA9IHZhdWx0X2FjY291bnRfaWQKICAgICAgICBpZiBhc3NldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydhc3NldElkJ10gPSBhc3NldF9pZAogICAgICAgIGlmIGNoYW5nZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydjaGFuZ2UnXSA9IGNoYW5nZQogICAgICAgIGlmIGFkZHJlc3NfaW5kZXggaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYWRkcmVzc0luZGV4J10gPSBhZGRyZXNzX2luZGV4CiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgY29tcHJlc3NlZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnY29tcHJlc3NlZCcsIGNvbXByZXNzZWQpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy92YXVsdC9hY2NvdW50cy97dmF1bHRBY2NvdW50SWR9L3thc3NldElkfS97Y2hhbmdlfS97YWRkcmVzc0luZGV4fS9wdWJsaWNfa2V5X2luZm8nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X3Vuc3BlbnRfaW5wdXRzKAogICAgICAgIHNlbGYsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudCIpXSwKICAgICAgICBhc3NldF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYXNzZXQiKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtMaXN0W1Vuc3BlbnRJbnB1dHNSZXNwb25zZV1dXToKICAgICAgICAiIiJHZXQgVVRYTyB1bnNwZW50IGlucHV0cyBpbmZvcm1hdGlvbgoKICAgICAgICBSZXR1cm5zIHVuc3BlbnQgaW5wdXRzIGluZm9ybWF0aW9uIG9mIGFuIFVUWE8gYXNzZXQgaW4gYSB2YXVsdCBhY2NvdW50LiAgPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvciwgVmlld2VyLgoKICAgICAgICA6cGFyYW0gdmF1bHRfYWNjb3VudF9pZDogVGhlIElEIG9mIHRoZSB2YXVsdCBhY2NvdW50IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB2YXVsdF9hY2NvdW50X2lkOiBzdHIKICAgICAgICA6cGFyYW0gYXNzZXRfaWQ6IFRoZSBJRCBvZiB0aGUgYXNzZXQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGFzc2V0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3Vuc3BlbnRfaW5wdXRzIiwgcGFyYW1fbmFtZT0idmF1bHRfYWNjb3VudF9pZCIsIHBhcmFtX3ZhbHVlPXZhdWx0X2FjY291bnRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfdW5zcGVudF9pbnB1dHMiLCBwYXJhbV9uYW1lPSJhc3NldF9pZCIsIHBhcmFtX3ZhbHVlPWFzc2V0X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfdW5zcGVudF9pbnB1dHNfc2VyaWFsaXplKAogICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkPXZhdWx0X2FjY291bnRfaWQsCiAgICAgICAgICAgIGFzc2V0X2lkPWFzc2V0X2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiTGlzdFtVbnNwZW50SW5wdXRzUmVzcG9uc2VdIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3Vuc3BlbnRfaW5wdXRzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHZhdWx0X2FjY291bnRfaWQsCiAgICAgICAgYXNzZXRfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHZhdWx0X2FjY291bnRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1sndmF1bHRBY2NvdW50SWQnXSA9IHZhdWx0X2FjY291bnRfaWQKICAgICAgICBpZiBhc3NldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydhc3NldElkJ10gPSBhc3NldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3ZhdWx0L2FjY291bnRzL3t2YXVsdEFjY291bnRJZH0ve2Fzc2V0SWR9L3Vuc3BlbnRfaW5wdXRzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF92YXVsdF9hY2NvdW50KAogICAgICAgIHNlbGYsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudCIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1ZhdWx0QWNjb3VudF1dOgogICAgICAgICIiIkdldCBhIHZhdWx0IGFjY291bnQgYnkgSUQKCiAgICAgICAgR2V0IGEgdmF1bHQgYWNjb3VudCBieSBpdHMgdW5pcXVlIElELiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLCBWaWV3ZXIuCgogICAgICAgIDpwYXJhbSB2YXVsdF9hY2NvdW50X2lkOiBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHZhdWx0X2FjY291bnRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfdmF1bHRfYWNjb3VudCIsIHBhcmFtX25hbWU9InZhdWx0X2FjY291bnRfaWQiLCBwYXJhbV92YWx1ZT12YXVsdF9hY2NvdW50X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfdmF1bHRfYWNjb3VudF9zZXJpYWxpemUoCiAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQ9dmF1bHRfYWNjb3VudF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlZhdWx0QWNjb3VudCIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF92YXVsdF9hY2NvdW50X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHZhdWx0X2FjY291bnRfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHZhdWx0X2FjY291bnRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1sndmF1bHRBY2NvdW50SWQnXSA9IHZhdWx0X2FjY291bnRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy92YXVsdC9hY2NvdW50cy97dmF1bHRBY2NvdW50SWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF92YXVsdF9hY2NvdW50X2Fzc2V0KAogICAgICAgIHNlbGYsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudCB0byByZXR1cm4iKV0sCiAgICAgICAgYXNzZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFzc2V0IildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVmF1bHRBc3NldF1dOgogICAgICAgICIiIkdldCB0aGUgYXNzZXQgYmFsYW5jZSBmb3IgYSB2YXVsdCBhY2NvdW50CgogICAgICAgIFJldHVybnMgYSBzcGVjaWZpYyB2YXVsdCB3YWxsZXQgYmFsYW5jZSBpbmZvcm1hdGlvbiBmb3IgYSBzcGVjaWZpYyBhc3NldC4gIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsICAgVmlld2VyLgoKICAgICAgICA6cGFyYW0gdmF1bHRfYWNjb3VudF9pZDogVGhlIElEIG9mIHRoZSB2YXVsdCBhY2NvdW50IHRvIHJldHVybiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdmF1bHRfYWNjb3VudF9pZDogc3RyCiAgICAgICAgOnBhcmFtIGFzc2V0X2lkOiBUaGUgSUQgb2YgdGhlIGFzc2V0IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBhc3NldF9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF92YXVsdF9hY2NvdW50X2Fzc2V0IiwgcGFyYW1fbmFtZT0idmF1bHRfYWNjb3VudF9pZCIsIHBhcmFtX3ZhbHVlPXZhdWx0X2FjY291bnRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfdmF1bHRfYWNjb3VudF9hc3NldCIsIHBhcmFtX25hbWU9ImFzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YXNzZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF92YXVsdF9hY2NvdW50X2Fzc2V0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZD12YXVsdF9hY2NvdW50X2lkLAogICAgICAgICAgICBhc3NldF9pZD1hc3NldF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlZhdWx0QXNzZXQiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfdmF1bHRfYWNjb3VudF9hc3NldF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB2YXVsdF9hY2NvdW50X2lkLAogICAgICAgIGFzc2V0X2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB2YXVsdF9hY2NvdW50X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3ZhdWx0QWNjb3VudElkJ10gPSB2YXVsdF9hY2NvdW50X2lkCiAgICAgICAgaWYgYXNzZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYXNzZXRJZCddID0gYXNzZXRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy92YXVsdC9hY2NvdW50cy97dmF1bHRBY2NvdW50SWR9L3thc3NldElkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfdmF1bHRfYWNjb3VudF9hc3NldF9hZGRyZXNzZXNfcGFnaW5hdGVkKAogICAgICAgIHNlbGYsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudCB0byByZXR1cm4iKV0sCiAgICAgICAgYXNzZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFzc2V0IildLAogICAgICAgIGxpbWl0OiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBOb25lLAogICAgICAgIGJlZm9yZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgYWZ0ZXI6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbUGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlXV06CiAgICAgICAgIiIiR2V0IGFkZHJlc3NlcyAoUGFnaW5hdGVkKQoKICAgICAgICBSZXR1cm5zIGEgcGFnaW5hdGVkIHJlc3BvbnNlIG9mIHRoZSBhZGRyZXNzZXMgZm9yIGEgZ2l2ZW4gdmF1bHQgYWNjb3VudCBhbmQgYXNzZXQuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIFZpZXdlci4KCiAgICAgICAgOnBhcmFtIHZhdWx0X2FjY291bnRfaWQ6IFRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudCB0byByZXR1cm4gKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHZhdWx0X2FjY291bnRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBhc3NldF9pZDogVGhlIElEIG9mIHRoZSBhc3NldCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBsaW1pdDoKICAgICAgICA6dHlwZSBsaW1pdDogZmxvYXQKICAgICAgICA6cGFyYW0gYmVmb3JlOgogICAgICAgIDp0eXBlIGJlZm9yZTogc3RyCiAgICAgICAgOnBhcmFtIGFmdGVyOgogICAgICAgIDp0eXBlIGFmdGVyOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzc2VzX3BhZ2luYXRlZCIsIHBhcmFtX25hbWU9InZhdWx0X2FjY291bnRfaWQiLCBwYXJhbV92YWx1ZT12YXVsdF9hY2NvdW50X2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzc2VzX3BhZ2luYXRlZCIsIHBhcmFtX25hbWU9ImFzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YXNzZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3Nlc19wYWdpbmF0ZWRfc2VyaWFsaXplKAogICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkPXZhdWx0X2FjY291bnRfaWQsCiAgICAgICAgICAgIGFzc2V0X2lkPWFzc2V0X2lkLAogICAgICAgICAgICBsaW1pdD1saW1pdCwKICAgICAgICAgICAgYmVmb3JlPWJlZm9yZSwKICAgICAgICAgICAgYWZ0ZXI9YWZ0ZXIsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJQYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2UiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfdmF1bHRfYWNjb3VudF9hc3NldF9hZGRyZXNzZXNfcGFnaW5hdGVkX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHZhdWx0X2FjY291bnRfaWQsCiAgICAgICAgYXNzZXRfaWQsCiAgICAgICAgbGltaXQsCiAgICAgICAgYmVmb3JlLAogICAgICAgIGFmdGVyLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB2YXVsdF9hY2NvdW50X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3ZhdWx0QWNjb3VudElkJ10gPSB2YXVsdF9hY2NvdW50X2lkCiAgICAgICAgaWYgYXNzZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYXNzZXRJZCddID0gYXNzZXRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiBsaW1pdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnbGltaXQnLCBsaW1pdCkpCiAgICAgICAgICAgIAogICAgICAgIGlmIGJlZm9yZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgnYmVmb3JlJywgYmVmb3JlKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgYWZ0ZXIgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2FmdGVyJywgYWZ0ZXIpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy92YXVsdC9hY2NvdW50cy97dmF1bHRBY2NvdW50SWR9L3thc3NldElkfS9hZGRyZXNzZXNfcGFnaW5hdGVkJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF92YXVsdF9hc3NldHMoCiAgICAgICAgc2VsZiwKICAgICAgICBhY2NvdW50X25hbWVfcHJlZml4OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBhY2NvdW50X25hbWVfc3VmZml4OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW0xpc3RbVmF1bHRBc3NldF1dXToKICAgICAgICAiIiJHZXQgYXNzZXQgYmFsYW5jZSBmb3IgY2hvc2VuIGFzc2V0cwoKICAgICAgICBHZXRzIHRoZSBhc3NldHMgYW1vdW50IHN1bW1hcnkgZm9yIGFsbCBhY2NvdW50cyBvciBmaWx0ZXJlZCBhY2NvdW50cy4gIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIFZpZXdlci4KCiAgICAgICAgOnBhcmFtIGFjY291bnRfbmFtZV9wcmVmaXg6CiAgICAgICAgOnR5cGUgYWNjb3VudF9uYW1lX3ByZWZpeDogc3RyCiAgICAgICAgOnBhcmFtIGFjY291bnRfbmFtZV9zdWZmaXg6CiAgICAgICAgOnR5cGUgYWNjb3VudF9uYW1lX3N1ZmZpeDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X3ZhdWx0X2Fzc2V0c19zZXJpYWxpemUoCiAgICAgICAgICAgIGFjY291bnRfbmFtZV9wcmVmaXg9YWNjb3VudF9uYW1lX3ByZWZpeCwKICAgICAgICAgICAgYWNjb3VudF9uYW1lX3N1ZmZpeD1hY2NvdW50X25hbWVfc3VmZml4LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiTGlzdFtWYXVsdEFzc2V0XSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF92YXVsdF9hc3NldHNfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgYWNjb3VudF9uYW1lX3ByZWZpeCwKICAgICAgICBhY2NvdW50X25hbWVfc3VmZml4LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiBhY2NvdW50X25hbWVfcHJlZml4IGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdhY2NvdW50TmFtZVByZWZpeCcsIGFjY291bnRfbmFtZV9wcmVmaXgpKQogICAgICAgICAgICAKICAgICAgICBpZiBhY2NvdW50X25hbWVfc3VmZml4IGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdhY2NvdW50TmFtZVN1ZmZpeCcsIGFjY291bnRfbmFtZV9zdWZmaXgpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy92YXVsdC9hc3NldHMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X3ZhdWx0X2JhbGFuY2VfYnlfYXNzZXQoCiAgICAgICAgc2VsZiwKICAgICAgICBhc3NldF9pZDogU3RyaWN0U3RyLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVmF1bHRBc3NldF1dOgogICAgICAgICIiIkdldCB2YXVsdCBiYWxhbmNlIGJ5IGFuIGFzc2V0CgogICAgICAgIEdldCB0aGUgdG90YWwgYmFsYW5jZSBvZiBhbiBhc3NldCBhY3Jvc3MgYWxsIHRoZSB2YXVsdCBhY2NvdW50cy4gIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IsIFZpZXdlci4KCiAgICAgICAgOnBhcmFtIGFzc2V0X2lkOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfdmF1bHRfYmFsYW5jZV9ieV9hc3NldCIsIHBhcmFtX25hbWU9ImFzc2V0X2lkIiwgcGFyYW1fdmFsdWU9YXNzZXRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF92YXVsdF9iYWxhbmNlX2J5X2Fzc2V0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgYXNzZXRfaWQ9YXNzZXRfaWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJWYXVsdEFzc2V0IiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X3ZhdWx0X2JhbGFuY2VfYnlfYXNzZXRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgYXNzZXRfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGFzc2V0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Fzc2V0SWQnXSA9IGFzc2V0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdmF1bHQvYXNzZXRzL3thc3NldElkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBoaWRlX3ZhdWx0X2FjY291bnQoCiAgICAgICAgc2VsZiwKICAgICAgICB2YXVsdF9hY2NvdW50X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHZhdWx0IGFjY291bnQgdG8gaGlkZSIpXSwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtWYXVsdEFjdGlvblN0YXR1c11dOgogICAgICAgICIiIkhpZGUgYSB2YXVsdCBhY2NvdW50IGluIHRoZSBjb25zb2xlCgogICAgICAgIEhpZGVzIHRoZSByZXF1ZXN0ZWQgdmF1bHQgYWNjb3VudCBmcm9tIHRoZSB3ZWIgY29uc29sZSB2aWV3LiBUaGlzIG9wZXJhdGlvbiBpcyByZXF1aXJlZCB3aGVuIGNyZWF0aW5nIHRob3VzYW5kcyBvZiB2YXVsdCBhY2NvdW50cyB0byBzZXJ2ZSB5b3VyIGVuZC11c2Vycy4gVXNlZCBmb3IgcHJldmVudGluZyB0aGUgd2ViIGNvbnNvbGUgdG8gYmUgc3dhbXBlZCB3aXRoIHRvbyBtdWNoIHZhdWx0IGFjY291bnRzLiBMZWFybiBtb3JlIGluIHRoZSBmb2xsb3dpbmcgW2d1aWRlXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vZG9jcy9jcmVhdGUtZGlyZWN0LWN1c3RvZHktd2FsbGV0cyNoaWRpbmctdmF1bHQtYWNjb3VudHMpLiBOT1RFOiBIaWRpbmcgdGhlIHZhdWx0IGFjY291bnQgZnJvbSB0aGUgd2ViIGNvbnNvbGUgd2lsbCBhbHNvIGhpZGUgYWxsIHRoZSByZWxhdGVkIHRyYW5zYWN0aW9ucyB0by9mcm9tIHRoaXMgdmF1bHQuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgogICAgICAgIDpwYXJhbSB2YXVsdF9hY2NvdW50X2lkOiBUaGUgdmF1bHQgYWNjb3VudCB0byBoaWRlIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB2YXVsdF9hY2NvdW50X2lkOiBzdHIKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iaGlkZV92YXVsdF9hY2NvdW50IiwgcGFyYW1fbmFtZT0idmF1bHRfYWNjb3VudF9pZCIsIHBhcmFtX3ZhbHVlPXZhdWx0X2FjY291bnRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2hpZGVfdmF1bHRfYWNjb3VudF9zZXJpYWxpemUoCiAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQ9dmF1bHRfYWNjb3VudF9pZCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAxJzogIlZhdWx0QWN0aW9uU3RhdHVzIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfaGlkZV92YXVsdF9hY2NvdW50X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHZhdWx0X2FjY291bnRfaWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB2YXVsdF9hY2NvdW50X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3ZhdWx0QWNjb3VudElkJ10gPSB2YXVsdF9hY2NvdW50X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdmF1bHQvYWNjb3VudHMve3ZhdWx0QWNjb3VudElkfS9oaWRlJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHNldF9jdXN0b21lcl9yZWZfaWRfZm9yX2FkZHJlc3MoCiAgICAgICAgc2VsZiwKICAgICAgICB2YXVsdF9hY2NvdW50X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB2YXVsdCBhY2NvdW50IildLAogICAgICAgIGFzc2V0X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBhc3NldCIpXSwKICAgICAgICBhZGRyZXNzX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGFkZHJlc3MgZm9yIHdoaWNoIHRvIGFkZCBhIGRlc2NyaXB0aW9uLiBGb3IgWFJQLCB1c2UgPGFkZHJlc3M+Ojx0YWc+LCBmb3IgYWxsIG90aGVyIGFzc2V0cywgdXNlIG9ubHkgdGhlIGFkZHJlc3MiKV0sCiAgICAgICAgc2V0X2N1c3RvbWVyX3JlZl9pZF9mb3JfYWRkcmVzc19yZXF1ZXN0OiBTZXRDdXN0b21lclJlZklkRm9yQWRkcmVzc1JlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbVmF1bHRBY3Rpb25TdGF0dXNdXToKICAgICAgICAiIiJBc3NpZ24gQU1MIGN1c3RvbWVyIHJlZmVyZW5jZSBJRAoKICAgICAgICBTZXRzIGFuIEFNTC9LWVQgY3VzdG9tZXIgcmVmZXJlbmNlIElEIGZvciBhIHNwZWNpZmljIGFkZHJlc3MuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKICAgICAgICA6cGFyYW0gdmF1bHRfYWNjb3VudF9pZDogVGhlIElEIG9mIHRoZSB2YXVsdCBhY2NvdW50IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB2YXVsdF9hY2NvdW50X2lkOiBzdHIKICAgICAgICA6cGFyYW0gYXNzZXRfaWQ6IFRoZSBJRCBvZiB0aGUgYXNzZXQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGFzc2V0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gYWRkcmVzc19pZDogVGhlIGFkZHJlc3MgZm9yIHdoaWNoIHRvIGFkZCBhIGRlc2NyaXB0aW9uLiBGb3IgWFJQLCB1c2UgPGFkZHJlc3M+Ojx0YWc+LCBmb3IgYWxsIG90aGVyIGFzc2V0cywgdXNlIG9ubHkgdGhlIGFkZHJlc3MgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGFkZHJlc3NfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBzZXRfY3VzdG9tZXJfcmVmX2lkX2Zvcl9hZGRyZXNzX3JlcXVlc3Q6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBzZXRfY3VzdG9tZXJfcmVmX2lkX2Zvcl9hZGRyZXNzX3JlcXVlc3Q6IFNldEN1c3RvbWVyUmVmSWRGb3JBZGRyZXNzUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJzZXRfY3VzdG9tZXJfcmVmX2lkX2Zvcl9hZGRyZXNzIiwgcGFyYW1fbmFtZT0idmF1bHRfYWNjb3VudF9pZCIsIHBhcmFtX3ZhbHVlPXZhdWx0X2FjY291bnRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJzZXRfY3VzdG9tZXJfcmVmX2lkX2Zvcl9hZGRyZXNzIiwgcGFyYW1fbmFtZT0iYXNzZXRfaWQiLCBwYXJhbV92YWx1ZT1hc3NldF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InNldF9jdXN0b21lcl9yZWZfaWRfZm9yX2FkZHJlc3MiLCBwYXJhbV9uYW1lPSJhZGRyZXNzX2lkIiwgcGFyYW1fdmFsdWU9YWRkcmVzc19pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fc2V0X2N1c3RvbWVyX3JlZl9pZF9mb3JfYWRkcmVzc19zZXJpYWxpemUoCiAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQ9dmF1bHRfYWNjb3VudF9pZCwKICAgICAgICAgICAgYXNzZXRfaWQ9YXNzZXRfaWQsCiAgICAgICAgICAgIGFkZHJlc3NfaWQ9YWRkcmVzc19pZCwKICAgICAgICAgICAgc2V0X2N1c3RvbWVyX3JlZl9pZF9mb3JfYWRkcmVzc19yZXF1ZXN0PXNldF9jdXN0b21lcl9yZWZfaWRfZm9yX2FkZHJlc3NfcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAxJzogIlZhdWx0QWN0aW9uU3RhdHVzIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfc2V0X2N1c3RvbWVyX3JlZl9pZF9mb3JfYWRkcmVzc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB2YXVsdF9hY2NvdW50X2lkLAogICAgICAgIGFzc2V0X2lkLAogICAgICAgIGFkZHJlc3NfaWQsCiAgICAgICAgc2V0X2N1c3RvbWVyX3JlZl9pZF9mb3JfYWRkcmVzc19yZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgdmF1bHRfYWNjb3VudF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd2YXVsdEFjY291bnRJZCddID0gdmF1bHRfYWNjb3VudF9pZAogICAgICAgIGlmIGFzc2V0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Fzc2V0SWQnXSA9IGFzc2V0X2lkCiAgICAgICAgaWYgYWRkcmVzc19pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydhZGRyZXNzSWQnXSA9IGFkZHJlc3NfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBzZXRfY3VzdG9tZXJfcmVmX2lkX2Zvcl9hZGRyZXNzX3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHNldF9jdXN0b21lcl9yZWZfaWRfZm9yX2FkZHJlc3NfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdmF1bHQvYWNjb3VudHMve3ZhdWx0QWNjb3VudElkfS97YXNzZXRJZH0vYWRkcmVzc2VzL3thZGRyZXNzSWR9L3NldF9jdXN0b21lcl9yZWZfaWQnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgc2V0X3ZhdWx0X2FjY291bnRfYXV0b19mdWVsKAogICAgICAgIHNlbGYsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSB2YXVsdCBhY2NvdW50IElEIildLAogICAgICAgIHNldF9hdXRvX2Z1ZWxfcmVxdWVzdDogU2V0QXV0b0Z1ZWxSZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1ZhdWx0QWN0aW9uU3RhdHVzXV06CiAgICAgICAgIiIiU2V0IGF1dG8gZnVlbGluZyB0byBvbiBvciBvZmYKCiAgICAgICAgVG9nZ2xlcyB0aGUgYXV0byBmdWVsaW5nIHByb3BlcnR5IG9mIHRoZSB2YXVsdCBhY2NvdW50IHRvIGVuYWJsZWQgb3IgZGlzYWJsZWQuIFZhdWx0IEFjY291bnRzIHdpdGggJ2F1dG9GdWVsPXRydWUnIGFyZSBtb25pdG9yZWQgYW5kIGF1dG8gZnVlbGVkIGJ5IHRoZSBGaXJlYmxvY2tzIEdhcyBTdGF0aW9uLiBMZWFybiBtb3JlIGFib3V0IHRoZSBGaXJlYmxvY2tzIEdhcyBTdGF0aW9uIGluIHRoZSBmb2xsb3dpbmcgW2d1aWRlXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vZG9jcy93b3JrLXdpdGgtZ2FzLXN0YXRpb24pLiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKICAgICAgICA6cGFyYW0gdmF1bHRfYWNjb3VudF9pZDogVGhlIHZhdWx0IGFjY291bnQgSUQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHZhdWx0X2FjY291bnRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBzZXRfYXV0b19mdWVsX3JlcXVlc3Q6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBzZXRfYXV0b19mdWVsX3JlcXVlc3Q6IFNldEF1dG9GdWVsUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJzZXRfdmF1bHRfYWNjb3VudF9hdXRvX2Z1ZWwiLCBwYXJhbV9uYW1lPSJ2YXVsdF9hY2NvdW50X2lkIiwgcGFyYW1fdmFsdWU9dmF1bHRfYWNjb3VudF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fc2V0X3ZhdWx0X2FjY291bnRfYXV0b19mdWVsX3NlcmlhbGl6ZSgKICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZD12YXVsdF9hY2NvdW50X2lkLAogICAgICAgICAgICBzZXRfYXV0b19mdWVsX3JlcXVlc3Q9c2V0X2F1dG9fZnVlbF9yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiAiVmF1bHRBY3Rpb25TdGF0dXMiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9zZXRfdmF1bHRfYWNjb3VudF9hdXRvX2Z1ZWxfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZCwKICAgICAgICBzZXRfYXV0b19mdWVsX3JlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB2YXVsdF9hY2NvdW50X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3ZhdWx0QWNjb3VudElkJ10gPSB2YXVsdF9hY2NvdW50X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgc2V0X2F1dG9fZnVlbF9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBzZXRfYXV0b19mdWVsX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3ZhdWx0L2FjY291bnRzL3t2YXVsdEFjY291bnRJZH0vc2V0X2F1dG9fZnVlbCcsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBzZXRfdmF1bHRfYWNjb3VudF9jdXN0b21lcl9yZWZfaWQoCiAgICAgICAgc2VsZiwKICAgICAgICB2YXVsdF9hY2NvdW50X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHZhdWx0IGFjY291bnQgSUQiKV0sCiAgICAgICAgc2V0X2N1c3RvbWVyX3JlZl9pZF9yZXF1ZXN0OiBTZXRDdXN0b21lclJlZklkUmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtWYXVsdEFjdGlvblN0YXR1c11dOgogICAgICAgICIiIlNldCBhbiBBTUwvS1lUIElEIGZvciBhIHZhdWx0IGFjY291bnQKCiAgICAgICAgQXNzaWducyBhbiBBTUwvS1lUIGN1c3RvbWVyIHJlZmVyZW5jZSBJRCBmb3IgdGhlIHZhdWx0IGFjY291bnQuIExlYXJuIG1vcmUgYWJvdXQgRmlyZWJsb2NrcyBBTUwgbWFuYWdlbWVudCBpbiB0aGUgZm9sbG93aW5nIFtndWlkZV0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL2RvY3MvZGVmaW5lLWFtbC1wb2xpY2llcykuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKICAgICAgICA6cGFyYW0gdmF1bHRfYWNjb3VudF9pZDogVGhlIHZhdWx0IGFjY291bnQgSUQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHZhdWx0X2FjY291bnRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBzZXRfY3VzdG9tZXJfcmVmX2lkX3JlcXVlc3Q6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBzZXRfY3VzdG9tZXJfcmVmX2lkX3JlcXVlc3Q6IFNldEN1c3RvbWVyUmVmSWRSZXF1ZXN0CiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InNldF92YXVsdF9hY2NvdW50X2N1c3RvbWVyX3JlZl9pZCIsIHBhcmFtX25hbWU9InZhdWx0X2FjY291bnRfaWQiLCBwYXJhbV92YWx1ZT12YXVsdF9hY2NvdW50X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9zZXRfdmF1bHRfYWNjb3VudF9jdXN0b21lcl9yZWZfaWRfc2VyaWFsaXplKAogICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkPXZhdWx0X2FjY291bnRfaWQsCiAgICAgICAgICAgIHNldF9jdXN0b21lcl9yZWZfaWRfcmVxdWVzdD1zZXRfY3VzdG9tZXJfcmVmX2lkX3JlcXVlc3QsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMSc6ICJWYXVsdEFjdGlvblN0YXR1cyIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3NldF92YXVsdF9hY2NvdW50X2N1c3RvbWVyX3JlZl9pZF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB2YXVsdF9hY2NvdW50X2lkLAogICAgICAgIHNldF9jdXN0b21lcl9yZWZfaWRfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHZhdWx0X2FjY291bnRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1sndmF1bHRBY2NvdW50SWQnXSA9IHZhdWx0X2FjY291bnRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBzZXRfY3VzdG9tZXJfcmVmX2lkX3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHNldF9jdXN0b21lcl9yZWZfaWRfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdmF1bHQvYWNjb3VudHMve3ZhdWx0QWNjb3VudElkfS9zZXRfY3VzdG9tZXJfcmVmX2lkJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHVuaGlkZV92YXVsdF9hY2NvdW50KAogICAgICAgIHNlbGYsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSB2YXVsdCBhY2NvdW50IHRvIHVuaGlkZSIpXSwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtWYXVsdEFjdGlvblN0YXR1c11dOgogICAgICAgICIiIlVuaGlkZSBhIHZhdWx0IGFjY291bnQgaW4gdGhlIGNvbnNvbGUKCiAgICAgICAgTWFrZXMgYSBoaWRkZW4gdmF1bHQgYWNjb3VudCB2aXNpYmxlIGluIHdlYiBjb25zb2xlIHZpZXcuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBTaWduZXIsIEFwcHJvdmVyLCBFZGl0b3IuCgogICAgICAgIDpwYXJhbSB2YXVsdF9hY2NvdW50X2lkOiBUaGUgdmF1bHQgYWNjb3VudCB0byB1bmhpZGUgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHZhdWx0X2FjY291bnRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJ1bmhpZGVfdmF1bHRfYWNjb3VudCIsIHBhcmFtX25hbWU9InZhdWx0X2FjY291bnRfaWQiLCBwYXJhbV92YWx1ZT12YXVsdF9hY2NvdW50X2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl91bmhpZGVfdmF1bHRfYWNjb3VudF9zZXJpYWxpemUoCiAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQ9dmF1bHRfYWNjb3VudF9pZCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAxJzogIlZhdWx0QWN0aW9uU3RhdHVzIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfdW5oaWRlX3ZhdWx0X2FjY291bnRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHZhdWx0X2FjY291bnRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1sndmF1bHRBY2NvdW50SWQnXSA9IHZhdWx0X2FjY291bnRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy92YXVsdC9hY2NvdW50cy97dmF1bHRBY2NvdW50SWR9L3VuaGlkZScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiB1cGRhdGVfdmF1bHRfYWNjb3VudCgKICAgICAgICBzZWxmLAogICAgICAgIHZhdWx0X2FjY291bnRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgdG8gZWRpdCIpXSwKICAgICAgICB1cGRhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0OiBVcGRhdGVWYXVsdEFjY291bnRSZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1JlbmFtZVZhdWx0QWNjb3VudFJlc3BvbnNlXV06CiAgICAgICAgIiIiUmVuYW1lIGEgdmF1bHQgYWNjb3VudAoKICAgICAgICBSZW5hbWVzIHRoZSByZXF1ZXN0ZWQgdmF1bHQgYWNjb3VudC4gPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIuCgogICAgICAgIDpwYXJhbSB2YXVsdF9hY2NvdW50X2lkOiBUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQgdG8gZWRpdCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdmF1bHRfYWNjb3VudF9pZDogc3RyCiAgICAgICAgOnBhcmFtIHVwZGF0ZV92YXVsdF9hY2NvdW50X3JlcXVlc3Q6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB1cGRhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0OiBVcGRhdGVWYXVsdEFjY291bnRSZXF1ZXN0CiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InVwZGF0ZV92YXVsdF9hY2NvdW50IiwgcGFyYW1fbmFtZT0idmF1bHRfYWNjb3VudF9pZCIsIHBhcmFtX3ZhbHVlPXZhdWx0X2FjY291bnRfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3VwZGF0ZV92YXVsdF9hY2NvdW50X3NlcmlhbGl6ZSgKICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZD12YXVsdF9hY2NvdW50X2lkLAogICAgICAgICAgICB1cGRhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0PXVwZGF0ZV92YXVsdF9hY2NvdW50X3JlcXVlc3QsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMSc6ICJSZW5hbWVWYXVsdEFjY291bnRSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3VwZGF0ZV92YXVsdF9hY2NvdW50X3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHZhdWx0X2FjY291bnRfaWQsCiAgICAgICAgdXBkYXRlX3ZhdWx0X2FjY291bnRfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHZhdWx0X2FjY291bnRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1sndmF1bHRBY2NvdW50SWQnXSA9IHZhdWx0X2FjY291bnRfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiB1cGRhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSB1cGRhdGVfdmF1bHRfYWNjb3VudF9yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUFVUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3ZhdWx0L2FjY291bnRzL3t2YXVsdEFjY291bnRJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgdXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzcygKICAgICAgICBzZWxmLAogICAgICAgIHZhdWx0X2FjY291bnRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQiKV0sCiAgICAgICAgYXNzZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFzc2V0IildLAogICAgICAgIGFkZHJlc3NfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYWRkcmVzcyBmb3Igd2hpY2ggdG8gYWRkIGEgZGVzY3JpcHRpb24uIEZvciBYUlAsIHVzZSA8YWRkcmVzcz46PHRhZz4sIGZvciBhbGwgb3RoZXIgYXNzZXRzLCB1c2Ugb25seSB0aGUgYWRkcmVzcyIpXSwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgdXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzc19yZXF1ZXN0OiBPcHRpb25hbFtVcGRhdGVWYXVsdEFjY291bnRBc3NldEFkZHJlc3NSZXF1ZXN0XSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtWYXVsdEFjdGlvblN0YXR1c11dOgogICAgICAgICIiIlVwZGF0ZSBhZGRyZXNzIGRlc2NyaXB0aW9uCgogICAgICAgIFVwZGF0ZXMgdGhlIGRlc2NyaXB0aW9uIG9mIGFuIGV4aXN0aW5nIGFkZHJlc3Mgb2YgYW4gYXNzZXQgaW4gYSB2YXVsdCBhY2NvdW50LiA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKICAgICAgICA6cGFyYW0gdmF1bHRfYWNjb3VudF9pZDogVGhlIElEIG9mIHRoZSB2YXVsdCBhY2NvdW50IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB2YXVsdF9hY2NvdW50X2lkOiBzdHIKICAgICAgICA6cGFyYW0gYXNzZXRfaWQ6IFRoZSBJRCBvZiB0aGUgYXNzZXQgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGFzc2V0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gYWRkcmVzc19pZDogVGhlIGFkZHJlc3MgZm9yIHdoaWNoIHRvIGFkZCBhIGRlc2NyaXB0aW9uLiBGb3IgWFJQLCB1c2UgPGFkZHJlc3M+Ojx0YWc+LCBmb3IgYWxsIG90aGVyIGFzc2V0cywgdXNlIG9ubHkgdGhlIGFkZHJlc3MgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGFkZHJlc3NfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSB1cGRhdGVfdmF1bHRfYWNjb3VudF9hc3NldF9hZGRyZXNzX3JlcXVlc3Q6CiAgICAgICAgOnR5cGUgdXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzc19yZXF1ZXN0OiBVcGRhdGVWYXVsdEFjY291bnRBc3NldEFkZHJlc3NSZXF1ZXN0CiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InVwZGF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3MiLCBwYXJhbV9uYW1lPSJ2YXVsdF9hY2NvdW50X2lkIiwgcGFyYW1fdmFsdWU9dmF1bHRfYWNjb3VudF9pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InVwZGF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3MiLCBwYXJhbV9uYW1lPSJhc3NldF9pZCIsIHBhcmFtX3ZhbHVlPWFzc2V0X2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0idXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzcyIsIHBhcmFtX25hbWU9ImFkZHJlc3NfaWQiLCBwYXJhbV92YWx1ZT1hZGRyZXNzX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl91cGRhdGVfdmF1bHRfYWNjb3VudF9hc3NldF9hZGRyZXNzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZD12YXVsdF9hY2NvdW50X2lkLAogICAgICAgICAgICBhc3NldF9pZD1hc3NldF9pZCwKICAgICAgICAgICAgYWRkcmVzc19pZD1hZGRyZXNzX2lkLAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICB1cGRhdGVfdmF1bHRfYWNjb3VudF9hc3NldF9hZGRyZXNzX3JlcXVlc3Q9dXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzc19yZXF1ZXN0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiAiVmF1bHRBY3Rpb25TdGF0dXMiLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF91cGRhdGVfdmF1bHRfYWNjb3VudF9hc3NldF9hZGRyZXNzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHZhdWx0X2FjY291bnRfaWQsCiAgICAgICAgYXNzZXRfaWQsCiAgICAgICAgYWRkcmVzc19pZCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgdXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzc19yZXF1ZXN0LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB2YXVsdF9hY2NvdW50X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3ZhdWx0QWNjb3VudElkJ10gPSB2YXVsdF9hY2NvdW50X2lkCiAgICAgICAgaWYgYXNzZXRfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snYXNzZXRJZCddID0gYXNzZXRfaWQKICAgICAgICBpZiBhZGRyZXNzX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2FkZHJlc3NJZCddID0gYWRkcmVzc19pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHVwZGF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3NfcmVxdWVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2JvZHlfcGFyYW1zID0gdXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYWRkcmVzc19yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUFVUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3ZhdWx0L2FjY291bnRzL3t2YXVsdEFjY291bnRJZH0ve2Fzc2V0SWR9L2FkZHJlc3Nlcy97YWRkcmVzc0lkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiB1cGRhdGVfdmF1bHRfYWNjb3VudF9hc3NldF9iYWxhbmNlKAogICAgICAgIHNlbGYsCiAgICAgICAgdmF1bHRfYWNjb3VudF9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudCB0byByZXR1cm4iKV0sCiAgICAgICAgYXNzZXRfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFzc2V0IildLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1ZhdWx0QXNzZXRdXToKICAgICAgICAiIiJSZWZyZXNoIGFzc2V0IGJhbGFuY2UgZGF0YQoKICAgICAgICBVcGRhdGVzIHRoZSBiYWxhbmNlIG9mIGEgc3BlY2lmaWMgYXNzZXQgaW4gYSB2YXVsdCBhY2NvdW50LiAgVGhpcyBBUEkgZW5kcG9pbnQgaXMgc3ViamVjdCB0byBhIHN0cmljdCByYXRlIGxpbWl0LiBTaG91bGQgYmUgdXNlZCBieSBjbGllbnRzIGluIHZlcnkgc3BlY2lmaWMgc2NlbmFyaW9zLiAgPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4KCiAgICAgICAgOnBhcmFtIHZhdWx0X2FjY291bnRfaWQ6IFRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudCB0byByZXR1cm4gKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHZhdWx0X2FjY291bnRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBhc3NldF9pZDogVGhlIElEIG9mIHRoZSBhc3NldCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgYXNzZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJ1cGRhdGVfdmF1bHRfYWNjb3VudF9hc3NldF9iYWxhbmNlIiwgcGFyYW1fbmFtZT0idmF1bHRfYWNjb3VudF9pZCIsIHBhcmFtX3ZhbHVlPXZhdWx0X2FjY291bnRfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJ1cGRhdGVfdmF1bHRfYWNjb3VudF9hc3NldF9iYWxhbmNlIiwgcGFyYW1fbmFtZT0iYXNzZXRfaWQiLCBwYXJhbV92YWx1ZT1hc3NldF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fdXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYmFsYW5jZV9zZXJpYWxpemUoCiAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQ9dmF1bHRfYWNjb3VudF9pZCwKICAgICAgICAgICAgYXNzZXRfaWQ9YXNzZXRfaWQsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJWYXVsdEFzc2V0IiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfdXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYmFsYW5jZV9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB2YXVsdF9hY2NvdW50X2lkLAogICAgICAgIGFzc2V0X2lkLAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgdmF1bHRfYWNjb3VudF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd2YXVsdEFjY291bnRJZCddID0gdmF1bHRfYWNjb3VudF9pZAogICAgICAgIGlmIGFzc2V0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2Fzc2V0SWQnXSA9IGFzc2V0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvdmF1bHQvYWNjb3VudHMve3ZhdWx0QWNjb3VudElkfS97YXNzZXRJZH0vYmFsYW5jZScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoK \ No newline at end of file diff --git a/fireblocks/api/web3_connections_api.py b/fireblocks/api/web3_connections_api.py index fa898738..2cecdcd0 100644 --- a/fireblocks/api/web3_connections_api.py +++ b/fireblocks/api/web3_connections_api.py @@ -1,664 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr, field_validator -from typing import Optional, Union -from typing_extensions import Annotated -from fireblocks.models.create_connection_request import CreateConnectionRequest -from fireblocks.models.create_connection_response import CreateConnectionResponse -from fireblocks.models.get_connections_response import GetConnectionsResponse -from fireblocks.models.get_filter_parameter import GetFilterParameter -from fireblocks.models.respond_to_connection_request import RespondToConnectionRequest - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class Web3ConnectionsApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def create( - self, - create_connection_request: CreateConnectionRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - x_end_user_wallet_id: Annotated[Optional[StrictStr], Field(description="Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[CreateConnectionResponse]]: - """Create a new Web3 connection. - - Initiate a new Web3 connection. * Note: After this succeeds, make a request to `PUT /v1/connections/wc/{id}` (below) to approve or reject the new Web3 connection. - - :param create_connection_request: (required) - :type create_connection_request: CreateConnectionRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param x_end_user_wallet_id: Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. - :type x_end_user_wallet_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_serialize( - create_connection_request=create_connection_request, - idempotency_key=idempotency_key, - x_end_user_wallet_id=x_end_user_wallet_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "CreateConnectionResponse", - '400': None, - '500': None, - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_serialize( - self, - create_connection_request, - idempotency_key, - x_end_user_wallet_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - if x_end_user_wallet_id is not None: - _header_params['X-End-User-Wallet-Id'] = x_end_user_wallet_id - # process the form parameters - # process the body parameter - if create_connection_request is not None: - _body_params = create_connection_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/connections/wc', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get( - self, - x_end_user_wallet_id: Annotated[Optional[StrictStr], Field(description="Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.")] = None, - order: Annotated[Optional[StrictStr], Field(description="List order; ascending or descending.")] = None, - filter: Annotated[Optional[GetFilterParameter], Field(description="Parsed filter object")] = None, - sort: Annotated[Optional[StrictStr], Field(description="Property to sort Web3 connections by.")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=50, strict=True)], Annotated[int, Field(le=50, strict=True)]]], Field(description="Amount of results to return in the next page.")] = None, - next: Annotated[Optional[StrictStr], Field(description="Cursor to the next page")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GetConnectionsResponse]]: - """List all open Web3 connections. - - Get open Web3 connections. - - :param x_end_user_wallet_id: Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. - :type x_end_user_wallet_id: str - :param order: List order; ascending or descending. - :type order: str - :param filter: Parsed filter object - :type filter: GetFilterParameter - :param sort: Property to sort Web3 connections by. - :type sort: str - :param page_size: Amount of results to return in the next page. - :type page_size: float - :param next: Cursor to the next page - :type next: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_serialize( - x_end_user_wallet_id=x_end_user_wallet_id, - order=order, - filter=filter, - sort=sort, - page_size=page_size, - next=next, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GetConnectionsResponse", - '400': None, - '500': None, - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_serialize( - self, - x_end_user_wallet_id, - order, - filter, - sort, - page_size, - next, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if order is not None: - - _query_params.append(('order', order)) - - if filter is not None: - - _query_params.append(('filter', filter)) - - if sort is not None: - - _query_params.append(('sort', sort)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if next is not None: - - _query_params.append(('next', next)) - - # process the header parameters - if x_end_user_wallet_id is not None: - _header_params['X-End-User-Wallet-Id'] = x_end_user_wallet_id - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/connections', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def remove( - self, - id: Annotated[StrictStr, Field(description="The ID of the existing Web3 connection to remove.")], - x_end_user_wallet_id: Annotated[Optional[StrictStr], Field(description="Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Remove an existing Web3 connection. - - Remove a Web3 connection - - :param id: The ID of the existing Web3 connection to remove. (required) - :type id: str - :param x_end_user_wallet_id: Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. - :type x_end_user_wallet_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="remove", param_name="id", param_value=id) - - _param = self._remove_serialize( - id=id, - x_end_user_wallet_id=x_end_user_wallet_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': None, - '404': None, - '500': None, - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _remove_serialize( - self, - id, - x_end_user_wallet_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if id is not None: - _path_params['id'] = id - # process the query parameters - # process the header parameters - if x_end_user_wallet_id is not None: - _header_params['X-End-User-Wallet-Id'] = x_end_user_wallet_id - # process the form parameters - # process the body parameter - - - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/connections/wc/{id}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def submit( - self, - id: Annotated[StrictStr, Field(description="The ID of the initiated Web3 connection to approve.")], - respond_to_connection_request: RespondToConnectionRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - x_end_user_wallet_id: Annotated[Optional[StrictStr], Field(description="Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Respond to a pending Web3 connection request. - - Submit a response to *approve* or *reject* an initiated Web3 connection. * Note: This call is used to complete your `POST /v1/connections/wc/` request. After this succeeds, your new Web3 connection is created and functioning. - - :param id: The ID of the initiated Web3 connection to approve. (required) - :type id: str - :param respond_to_connection_request: (required) - :type respond_to_connection_request: RespondToConnectionRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param x_end_user_wallet_id: Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. - :type x_end_user_wallet_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="submit", param_name="id", param_value=id) - - _param = self._submit_serialize( - id=id, - respond_to_connection_request=respond_to_connection_request, - idempotency_key=idempotency_key, - x_end_user_wallet_id=x_end_user_wallet_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': None, - '400': None, - '404': None, - '500': None, - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _submit_serialize( - self, - id, - respond_to_connection_request, - idempotency_key, - x_end_user_wallet_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if id is not None: - _path_params['id'] = id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - if x_end_user_wallet_id is not None: - _header_params['X-End-User-Wallet-Id'] = x_end_user_wallet_id - # process the form parameters - # process the body parameter - if respond_to_connection_request is not None: - _body_params = respond_to_connection_request - - - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PUT', - resource_path='/connections/wc/{id}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0ciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX2Nvbm5lY3Rpb25fcmVxdWVzdCBpbXBvcnQgQ3JlYXRlQ29ubmVjdGlvblJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfY29ubmVjdGlvbl9yZXNwb25zZSBpbXBvcnQgQ3JlYXRlQ29ubmVjdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X2Nvbm5lY3Rpb25zX3Jlc3BvbnNlIGltcG9ydCBHZXRDb25uZWN0aW9uc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X2ZpbHRlcl9wYXJhbWV0ZXIgaW1wb3J0IEdldEZpbHRlclBhcmFtZXRlcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc3BvbmRfdG9fY29ubmVjdGlvbl9yZXF1ZXN0IGltcG9ydCBSZXNwb25kVG9Db25uZWN0aW9uUmVxdWVzdAoKZnJvbSBmaXJlYmxvY2tzLmFwaV9jbGllbnQgaW1wb3J0IEFwaUNsaWVudCwgUmVxdWVzdFNlcmlhbGl6ZWQKZnJvbSBmaXJlYmxvY2tzLmFwaV9yZXNwb25zZSBpbXBvcnQgQXBpUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLnJlc3QgaW1wb3J0IFJFU1RSZXNwb25zZVR5cGUKZnJvbSBmaXJlYmxvY2tzLnZhbGlkYXRpb25fdXRpbHMgaW1wb3J0IHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcKCgpjbGFzcyBXZWIzQ29ubmVjdGlvbnNBcGk6CiAgICAiIiJOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yCiAgICBSZWY6IGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaAoKICAgIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS4KICAgICIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcGlfY2xpZW50PU5vbmUpIC0+IE5vbmU6CiAgICAgICAgaWYgYXBpX2NsaWVudCBpcyBOb25lOgogICAgICAgICAgICBhcGlfY2xpZW50ID0gQXBpQ2xpZW50LmdldF9kZWZhdWx0KCkKICAgICAgICBzZWxmLmFwaV9jbGllbnQgPSBhcGlfY2xpZW50CgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgY3JlYXRlKAogICAgICAgIHNlbGYsCiAgICAgICAgY3JlYXRlX2Nvbm5lY3Rpb25fcmVxdWVzdDogQ3JlYXRlQ29ubmVjdGlvblJlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtDcmVhdGVDb25uZWN0aW9uUmVzcG9uc2VdXToKICAgICAgICAiIiJDcmVhdGUgYSBuZXcgV2ViMyBjb25uZWN0aW9uLgoKICAgICAgICBJbml0aWF0ZSBhIG5ldyBXZWIzIGNvbm5lY3Rpb24uICAqIE5vdGU6IEFmdGVyIHRoaXMgc3VjY2VlZHMsIG1ha2UgYSByZXF1ZXN0IHRvIGBQVVQgL3YxL2Nvbm5lY3Rpb25zL3djL3tpZH1gIChiZWxvdykgdG8gYXBwcm92ZSBvciByZWplY3QgdGhlIG5ldyBXZWIzIGNvbm5lY3Rpb24uCgogICAgICAgIDpwYXJhbSBjcmVhdGVfY29ubmVjdGlvbl9yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgY3JlYXRlX2Nvbm5lY3Rpb25fcmVxdWVzdDogQ3JlYXRlQ29ubmVjdGlvblJlcXVlc3QKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0geF9lbmRfdXNlcl93YWxsZXRfaWQ6IFVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLgogICAgICAgIDp0eXBlIHhfZW5kX3VzZXJfd2FsbGV0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9jcmVhdGVfc2VyaWFsaXplKAogICAgICAgICAgICBjcmVhdGVfY29ubmVjdGlvbl9yZXF1ZXN0PWNyZWF0ZV9jb25uZWN0aW9uX3JlcXVlc3QsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkPXhfZW5kX3VzZXJfd2FsbGV0X2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiAiQ3JlYXRlQ29ubmVjdGlvblJlc3BvbnNlIiwKICAgICAgICAgICAgJzQwMCc6IE5vbmUsCiAgICAgICAgICAgICc1MDAnOiBOb25lLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfY3JlYXRlX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNyZWF0ZV9jb25uZWN0aW9uX3JlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICBpZiB4X2VuZF91c2VyX3dhbGxldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ1gtRW5kLVVzZXItV2FsbGV0LUlkJ10gPSB4X2VuZF91c2VyX3dhbGxldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIGNyZWF0ZV9jb25uZWN0aW9uX3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IGNyZWF0ZV9jb25uZWN0aW9uX3JlcXVlc3QKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQ29udGVudC1UeXBlYAogICAgICAgIGlmIF9jb250ZW50X3R5cGU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9jb250ZW50X3R5cGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBfZGVmYXVsdF9jb250ZW50X3R5cGUgPSAoCiAgICAgICAgICAgICAgICBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgX2RlZmF1bHRfY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2RlZmF1bHRfY29udGVudF90eXBlCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL2Nvbm5lY3Rpb25zL3djJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldCgKICAgICAgICBzZWxmLAogICAgICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLiIpXSA9IE5vbmUsCiAgICAgICAgb3JkZXI6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iTGlzdCBvcmRlcjsgYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcuIildID0gTm9uZSwKICAgICAgICBmaWx0ZXI6IEFubm90YXRlZFtPcHRpb25hbFtHZXRGaWx0ZXJQYXJhbWV0ZXJdLCBGaWVsZChkZXNjcmlwdGlvbj0iUGFyc2VkIGZpbHRlciBvYmplY3QiKV0gPSBOb25lLAogICAgICAgIHNvcnQ6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iUHJvcGVydHkgdG8gc29ydCBXZWIzIGNvbm5lY3Rpb25zIGJ5LiIpXSA9IE5vbmUsCiAgICAgICAgcGFnZV9zaXplOiBBbm5vdGF0ZWRbT3B0aW9uYWxbVW5pb25bQW5ub3RhdGVkW2Zsb2F0LCBGaWVsZChsZT01MCwgc3RyaWN0PVRydWUpXSwgQW5ub3RhdGVkW2ludCwgRmllbGQobGU9NTAsIHN0cmljdD1UcnVlKV1dXSwgRmllbGQoZGVzY3JpcHRpb249IkFtb3VudCBvZiByZXN1bHRzIHRvIHJldHVybiBpbiB0aGUgbmV4dCBwYWdlLiIpXSA9IE5vbmUsCiAgICAgICAgbmV4dDogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJDdXJzb3IgdG8gdGhlIG5leHQgcGFnZSIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtHZXRDb25uZWN0aW9uc1Jlc3BvbnNlXV06CiAgICAgICAgIiIiTGlzdCBhbGwgb3BlbiBXZWIzIGNvbm5lY3Rpb25zLgoKICAgICAgICBHZXQgb3BlbiBXZWIzIGNvbm5lY3Rpb25zLgoKICAgICAgICA6cGFyYW0geF9lbmRfdXNlcl93YWxsZXRfaWQ6IFVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLgogICAgICAgIDp0eXBlIHhfZW5kX3VzZXJfd2FsbGV0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gb3JkZXI6IExpc3Qgb3JkZXI7IGFzY2VuZGluZyBvciBkZXNjZW5kaW5nLgogICAgICAgIDp0eXBlIG9yZGVyOiBzdHIKICAgICAgICA6cGFyYW0gZmlsdGVyOiBQYXJzZWQgZmlsdGVyIG9iamVjdAogICAgICAgIDp0eXBlIGZpbHRlcjogR2V0RmlsdGVyUGFyYW1ldGVyCiAgICAgICAgOnBhcmFtIHNvcnQ6IFByb3BlcnR5IHRvIHNvcnQgV2ViMyBjb25uZWN0aW9ucyBieS4KICAgICAgICA6dHlwZSBzb3J0OiBzdHIKICAgICAgICA6cGFyYW0gcGFnZV9zaXplOiBBbW91bnQgb2YgcmVzdWx0cyB0byByZXR1cm4gaW4gdGhlIG5leHQgcGFnZS4KICAgICAgICA6dHlwZSBwYWdlX3NpemU6IGZsb2F0CiAgICAgICAgOnBhcmFtIG5leHQ6IEN1cnNvciB0byB0aGUgbmV4dCBwYWdlCiAgICAgICAgOnR5cGUgbmV4dDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgeF9lbmRfdXNlcl93YWxsZXRfaWQ9eF9lbmRfdXNlcl93YWxsZXRfaWQsCiAgICAgICAgICAgIG9yZGVyPW9yZGVyLAogICAgICAgICAgICBmaWx0ZXI9ZmlsdGVyLAogICAgICAgICAgICBzb3J0PXNvcnQsCiAgICAgICAgICAgIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsCiAgICAgICAgICAgIG5leHQ9bmV4dCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkdldENvbm5lY3Rpb25zUmVzcG9uc2UiLAogICAgICAgICAgICAnNDAwJzogTm9uZSwKICAgICAgICAgICAgJzUwMCc6IE5vbmUsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgeF9lbmRfdXNlcl93YWxsZXRfaWQsCiAgICAgICAgb3JkZXIsCiAgICAgICAgZmlsdGVyLAogICAgICAgIHNvcnQsCiAgICAgICAgcGFnZV9zaXplLAogICAgICAgIG5leHQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIG9yZGVyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdvcmRlcicsIG9yZGVyKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgZmlsdGVyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdmaWx0ZXInLCBmaWx0ZXIpKQogICAgICAgICAgICAKICAgICAgICBpZiBzb3J0IGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdzb3J0Jywgc29ydCkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2Vfc2l6ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZVNpemUnLCBwYWdlX3NpemUpKQogICAgICAgICAgICAKICAgICAgICBpZiBuZXh0IGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCduZXh0JywgbmV4dCkpCiAgICAgICAgICAgIAogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiB4X2VuZF91c2VyX3dhbGxldF9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ1gtRW5kLVVzZXItV2FsbGV0LUlkJ10gPSB4X2VuZF91c2VyX3dhbGxldF9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvY29ubmVjdGlvbnMnLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgcmVtb3ZlKAogICAgICAgIHNlbGYsCiAgICAgICAgaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGV4aXN0aW5nIFdlYjMgY29ubmVjdGlvbiB0byByZW1vdmUuIildLAogICAgICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtOb25lXV06CiAgICAgICAgIiIiUmVtb3ZlIGFuIGV4aXN0aW5nIFdlYjMgY29ubmVjdGlvbi4KCiAgICAgICAgUmVtb3ZlIGEgV2ViMyBjb25uZWN0aW9uCgogICAgICAgIDpwYXJhbSBpZDogVGhlIElEIG9mIHRoZSBleGlzdGluZyBXZWIzIGNvbm5lY3Rpb24gdG8gcmVtb3ZlLiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgaWQ6IHN0cgogICAgICAgIDpwYXJhbSB4X2VuZF91c2VyX3dhbGxldF9pZDogVW5pcXVlIElEIG9mIHRoZSBFbmQtVXNlciB3YWxsZXQgdG8gdGhlIEFQSSByZXF1ZXN0LiBSZXF1aXJlZCBmb3IgZW5kLXVzZXIgd2FsbGV0IG9wZXJhdGlvbnMuCiAgICAgICAgOnR5cGUgeF9lbmRfdXNlcl93YWxsZXRfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJyZW1vdmUiLCBwYXJhbV9uYW1lPSJpZCIsIHBhcmFtX3ZhbHVlPWlkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9yZW1vdmVfc2VyaWFsaXplKAogICAgICAgICAgICBpZD1pZCwKICAgICAgICAgICAgeF9lbmRfdXNlcl93YWxsZXRfaWQ9eF9lbmRfdXNlcl93YWxsZXRfaWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6IE5vbmUsCiAgICAgICAgICAgICc0MDQnOiBOb25lLAogICAgICAgICAgICAnNTAwJzogTm9uZSwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3JlbW92ZV9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBpZCwKICAgICAgICB4X2VuZF91c2VyX3dhbGxldF9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snaWQnXSA9IGlkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIHhfZW5kX3VzZXJfd2FsbGV0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snWC1FbmQtVXNlci1XYWxsZXQtSWQnXSA9IHhfZW5kX3VzZXJfd2FsbGV0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdERUxFVEUnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvY29ubmVjdGlvbnMvd2Mve2lkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBzdWJtaXQoCiAgICAgICAgc2VsZiwKICAgICAgICBpZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgaW5pdGlhdGVkIFdlYjMgY29ubmVjdGlvbiB0byBhcHByb3ZlLiIpXSwKICAgICAgICByZXNwb25kX3RvX2Nvbm5lY3Rpb25fcmVxdWVzdDogUmVzcG9uZFRvQ29ubmVjdGlvblJlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIHhfZW5kX3VzZXJfd2FsbGV0X2lkOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtOb25lXV06CiAgICAgICAgIiIiUmVzcG9uZCB0byBhIHBlbmRpbmcgV2ViMyBjb25uZWN0aW9uIHJlcXVlc3QuCgogICAgICAgIFN1Ym1pdCBhIHJlc3BvbnNlIHRvICphcHByb3ZlKiBvciAqcmVqZWN0KiBhbiBpbml0aWF0ZWQgV2ViMyBjb25uZWN0aW9uLiAqIE5vdGU6IFRoaXMgY2FsbCBpcyB1c2VkIHRvIGNvbXBsZXRlIHlvdXIgYFBPU1QgL3YxL2Nvbm5lY3Rpb25zL3djL2AgcmVxdWVzdC4gIEFmdGVyIHRoaXMgc3VjY2VlZHMsIHlvdXIgbmV3IFdlYjMgY29ubmVjdGlvbiBpcyBjcmVhdGVkIGFuZCBmdW5jdGlvbmluZy4KCiAgICAgICAgOnBhcmFtIGlkOiBUaGUgSUQgb2YgdGhlIGluaXRpYXRlZCBXZWIzIGNvbm5lY3Rpb24gdG8gYXBwcm92ZS4gKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIGlkOiBzdHIKICAgICAgICA6cGFyYW0gcmVzcG9uZF90b19jb25uZWN0aW9uX3JlcXVlc3Q6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSByZXNwb25kX3RvX2Nvbm5lY3Rpb25fcmVxdWVzdDogUmVzcG9uZFRvQ29ubmVjdGlvblJlcXVlc3QKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0geF9lbmRfdXNlcl93YWxsZXRfaWQ6IFVuaXF1ZSBJRCBvZiB0aGUgRW5kLVVzZXIgd2FsbGV0IHRvIHRoZSBBUEkgcmVxdWVzdC4gUmVxdWlyZWQgZm9yIGVuZC11c2VyIHdhbGxldCBvcGVyYXRpb25zLgogICAgICAgIDp0eXBlIHhfZW5kX3VzZXJfd2FsbGV0X2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0ic3VibWl0IiwgcGFyYW1fbmFtZT0iaWQiLCBwYXJhbV92YWx1ZT1pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fc3VibWl0X3NlcmlhbGl6ZSgKICAgICAgICAgICAgaWQ9aWQsCiAgICAgICAgICAgIHJlc3BvbmRfdG9fY29ubmVjdGlvbl9yZXF1ZXN0PXJlc3BvbmRfdG9fY29ubmVjdGlvbl9yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICB4X2VuZF91c2VyX3dhbGxldF9pZD14X2VuZF91c2VyX3dhbGxldF9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogTm9uZSwKICAgICAgICAgICAgJzQwMCc6IE5vbmUsCiAgICAgICAgICAgICc0MDQnOiBOb25lLAogICAgICAgICAgICAnNTAwJzogTm9uZSwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3N1Ym1pdF9zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBpZCwKICAgICAgICByZXNwb25kX3RvX2Nvbm5lY3Rpb25fcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgeF9lbmRfdXNlcl93YWxsZXRfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIGlkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ2lkJ10gPSBpZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgIGlmIHhfZW5kX3VzZXJfd2FsbGV0X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snWC1FbmQtVXNlci1XYWxsZXQtSWQnXSA9IHhfZW5kX3VzZXJfd2FsbGV0X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgcmVzcG9uZF90b19jb25uZWN0aW9uX3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHJlc3BvbmRfdG9fY29ubmVjdGlvbl9yZXF1ZXN0CgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BVVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy9jb25uZWN0aW9ucy93Yy97aWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgo= \ No newline at end of file diff --git a/fireblocks/api/webhooks_api.py b/fireblocks/api/webhooks_api.py index 2bdcb3de..713f5046 100644 --- a/fireblocks/api/webhooks_api.py +++ b/fireblocks/api/webhooks_api.py @@ -1,328 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing import Optional -from typing_extensions import Annotated -from fireblocks.models.resend_transaction_webhooks_request import ResendTransactionWebhooksRequest -from fireblocks.models.resend_webhooks_by_transaction_id_response import ResendWebhooksByTransactionIdResponse -from fireblocks.models.resend_webhooks_response import ResendWebhooksResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class WebhooksApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def resend_transaction_webhooks( - self, - tx_id: Annotated[StrictStr, Field(description="The ID of the transaction for webhooks")], - resend_transaction_webhooks_request: ResendTransactionWebhooksRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ResendWebhooksByTransactionIdResponse]]: - """Resend webhooks for a transaction by ID - - Resends webhook notifications for a transaction by its unique identifier. Learn more about Fireblocks Webhooks in the following [guide](https://developers.fireblocks.com/docs/configure-webhooks). **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param tx_id: The ID of the transaction for webhooks (required) - :type tx_id: str - :param resend_transaction_webhooks_request: (required) - :type resend_transaction_webhooks_request: ResendTransactionWebhooksRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="resend_transaction_webhooks", param_name="tx_id", param_value=tx_id) - - _param = self._resend_transaction_webhooks_serialize( - tx_id=tx_id, - resend_transaction_webhooks_request=resend_transaction_webhooks_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ResendWebhooksByTransactionIdResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _resend_transaction_webhooks_serialize( - self, - tx_id, - resend_transaction_webhooks_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if tx_id is not None: - _path_params['txId'] = tx_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if resend_transaction_webhooks_request is not None: - _body_params = resend_transaction_webhooks_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/webhooks/resend/{txId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def resend_webhooks( - self, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ResendWebhooksResponse]]: - """Resend failed webhooks - - Resends all failed webhook notifications. Learn more about Fireblocks Webhooks in the following [guide](https://developers.fireblocks.com/docs/configure-webhooks).
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._resend_webhooks_serialize( - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ResendWebhooksResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _resend_webhooks_serialize( - self, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/webhooks/resend', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVzZW5kX3RyYW5zYWN0aW9uX3dlYmhvb2tzX3JlcXVlc3QgaW1wb3J0IFJlc2VuZFRyYW5zYWN0aW9uV2ViaG9va3NSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVzZW5kX3dlYmhvb2tzX2J5X3RyYW5zYWN0aW9uX2lkX3Jlc3BvbnNlIGltcG9ydCBSZXNlbmRXZWJob29rc0J5VHJhbnNhY3Rpb25JZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVzZW5kX3dlYmhvb2tzX3Jlc3BvbnNlIGltcG9ydCBSZXNlbmRXZWJob29rc1Jlc3BvbnNlCgpmcm9tIGZpcmVibG9ja3MuYXBpX2NsaWVudCBpbXBvcnQgQXBpQ2xpZW50LCBSZXF1ZXN0U2VyaWFsaXplZApmcm9tIGZpcmVibG9ja3MuYXBpX3Jlc3BvbnNlIGltcG9ydCBBcGlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MucmVzdCBpbXBvcnQgUkVTVFJlc3BvbnNlVHlwZQpmcm9tIGZpcmVibG9ja3MudmFsaWRhdGlvbl91dGlscyBpbXBvcnQgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZwoKCmNsYXNzIFdlYmhvb2tzQXBpOgogICAgIiIiTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvcgogICAgUmVmOiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gKCiAgICBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgYXBpX2NsaWVudD1Ob25lKSAtPiBOb25lOgogICAgICAgIGlmIGFwaV9jbGllbnQgaXMgTm9uZToKICAgICAgICAgICAgYXBpX2NsaWVudCA9IEFwaUNsaWVudC5nZXRfZGVmYXVsdCgpCiAgICAgICAgc2VsZi5hcGlfY2xpZW50ID0gYXBpX2NsaWVudAoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHJlc2VuZF90cmFuc2FjdGlvbl93ZWJob29rcygKICAgICAgICBzZWxmLAogICAgICAgIHR4X2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB0cmFuc2FjdGlvbiBmb3Igd2ViaG9va3MiKV0sCiAgICAgICAgcmVzZW5kX3RyYW5zYWN0aW9uX3dlYmhvb2tzX3JlcXVlc3Q6IFJlc2VuZFRyYW5zYWN0aW9uV2ViaG9va3NSZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1Jlc2VuZFdlYmhvb2tzQnlUcmFuc2FjdGlvbklkUmVzcG9uc2VdXToKICAgICAgICAiIiJSZXNlbmQgd2ViaG9va3MgZm9yIGEgdHJhbnNhY3Rpb24gYnkgSUQKCiAgICAgICAgUmVzZW5kcyB3ZWJob29rIG5vdGlmaWNhdGlvbnMgZm9yIGEgdHJhbnNhY3Rpb24gYnkgaXRzIHVuaXF1ZSBpZGVudGlmaWVyLiAgTGVhcm4gbW9yZSBhYm91dCBGaXJlYmxvY2tzIFdlYmhvb2tzIGluIHRoZSBmb2xsb3dpbmcgW2d1aWRlXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vZG9jcy9jb25maWd1cmUtd2ViaG9va3MpLiAgKipFbmRwb2ludCBQZXJtaXNzaW9uczoqKiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIFNpZ25lciwgQXBwcm92ZXIsIEVkaXRvci4gCgogICAgICAgIDpwYXJhbSB0eF9pZDogVGhlIElEIG9mIHRoZSB0cmFuc2FjdGlvbiBmb3Igd2ViaG9va3MgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHR4X2lkOiBzdHIKICAgICAgICA6cGFyYW0gcmVzZW5kX3RyYW5zYWN0aW9uX3dlYmhvb2tzX3JlcXVlc3Q6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSByZXNlbmRfdHJhbnNhY3Rpb25fd2ViaG9va3NfcmVxdWVzdDogUmVzZW5kVHJhbnNhY3Rpb25XZWJob29rc1JlcXVlc3QKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0icmVzZW5kX3RyYW5zYWN0aW9uX3dlYmhvb2tzIiwgcGFyYW1fbmFtZT0idHhfaWQiLCBwYXJhbV92YWx1ZT10eF9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fcmVzZW5kX3RyYW5zYWN0aW9uX3dlYmhvb2tzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgdHhfaWQ9dHhfaWQsCiAgICAgICAgICAgIHJlc2VuZF90cmFuc2FjdGlvbl93ZWJob29rc19yZXF1ZXN0PXJlc2VuZF90cmFuc2FjdGlvbl93ZWJob29rc19yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiUmVzZW5kV2ViaG9va3NCeVRyYW5zYWN0aW9uSWRSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3Jlc2VuZF90cmFuc2FjdGlvbl93ZWJob29rc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB0eF9pZCwKICAgICAgICByZXNlbmRfdHJhbnNhY3Rpb25fd2ViaG9va3NfcmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHR4X2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3R4SWQnXSA9IHR4X2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCiAgICAgICAgaWYgcmVzZW5kX3RyYW5zYWN0aW9uX3dlYmhvb2tzX3JlcXVlc3QgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9ib2R5X3BhcmFtcyA9IHJlc2VuZF90cmFuc2FjdGlvbl93ZWJob29rc19yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy93ZWJob29rcy9yZXNlbmQve3R4SWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHJlc2VuZF93ZWJob29rcygKICAgICAgICBzZWxmLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1Jlc2VuZFdlYmhvb2tzUmVzcG9uc2VdXToKICAgICAgICAiIiJSZXNlbmQgZmFpbGVkIHdlYmhvb2tzCgogICAgICAgIFJlc2VuZHMgYWxsIGZhaWxlZCB3ZWJob29rIG5vdGlmaWNhdGlvbnMuICBMZWFybiBtb3JlIGFib3V0IEZpcmVibG9ja3MgV2ViaG9va3MgaW4gdGhlIGZvbGxvd2luZyBbZ3VpZGVdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL2NvbmZpZ3VyZS13ZWJob29rcykuICA8L2JyPkVuZHBvaW50IFBlcm1pc3Npb246IEFkbWluLCBOb24tU2lnbmluZyBBZG1pbiwgU2lnbmVyLCBBcHByb3ZlciwgRWRpdG9yLgoKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9yZXNlbmRfd2ViaG9va3Nfc2VyaWFsaXplKAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiUmVzZW5kV2ViaG9va3NSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3Jlc2VuZF93ZWJob29rc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBpZGVtcG90ZW5jeV9rZXksCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdQT1NUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3dlYmhvb2tzL3Jlc2VuZCcsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoK \ No newline at end of file diff --git a/fireblocks/api/webhooks_v2_api.py b/fireblocks/api/webhooks_v2_api.py index 9cf0a5dd..5260d694 100644 --- a/fireblocks/api/webhooks_v2_api.py +++ b/fireblocks/api/webhooks_v2_api.py @@ -1,2002 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator -from typing import List, Optional, Union -from typing_extensions import Annotated -from fireblocks.models.create_webhook_request import CreateWebhookRequest -from fireblocks.models.notification_attempts_paginated_response import NotificationAttemptsPaginatedResponse -from fireblocks.models.notification_paginated_response import NotificationPaginatedResponse -from fireblocks.models.notification_status import NotificationStatus -from fireblocks.models.notification_with_data import NotificationWithData -from fireblocks.models.resend_failed_notifications_job_status_response import ResendFailedNotificationsJobStatusResponse -from fireblocks.models.resend_failed_notifications_request import ResendFailedNotificationsRequest -from fireblocks.models.resend_failed_notifications_response import ResendFailedNotificationsResponse -from fireblocks.models.resend_notifications_by_resource_id_request import ResendNotificationsByResourceIdRequest -from fireblocks.models.update_webhook_request import UpdateWebhookRequest -from fireblocks.models.webhook import Webhook -from fireblocks.models.webhook_event import WebhookEvent -from fireblocks.models.webhook_metric import WebhookMetric -from fireblocks.models.webhook_paginated_response import WebhookPaginatedResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class WebhooksV2Api: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def create_webhook( - self, - create_webhook_request: CreateWebhookRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[Webhook]]: - """Create a new webhook - - Creates a new webhook, which will be triggered on the specified events **Endpoint Permissions:** Owner, Admin, Non-Signing Admin. - - :param create_webhook_request: (required) - :type create_webhook_request: CreateWebhookRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._create_webhook_serialize( - create_webhook_request=create_webhook_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '201': "Webhook", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _create_webhook_serialize( - self, - create_webhook_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if create_webhook_request is not None: - _body_params = create_webhook_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/webhooks', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def delete_webhook( - self, - webhook_id: Annotated[StrictStr, Field(description="The unique identifier of the webhook")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[Webhook]]: - """Delete webhook - - Delete a webhook by its id Endpoint Permission: Owner, Admin, Non-Signing Admin. - - :param webhook_id: The unique identifier of the webhook (required) - :type webhook_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="delete_webhook", param_name="webhook_id", param_value=webhook_id) - - _param = self._delete_webhook_serialize( - webhook_id=webhook_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "Webhook", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _delete_webhook_serialize( - self, - webhook_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if webhook_id is not None: - _path_params['webhookId'] = webhook_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='DELETE', - resource_path='/webhooks/{webhookId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_metrics( - self, - webhook_id: StrictStr, - metric_name: Annotated[StrictStr, Field(description="Name of the metric to retrieve")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[WebhookMetric]]: - """Get webhook metrics - - Get webhook metrics by webhook id and metric name - - :param webhook_id: (required) - :type webhook_id: str - :param metric_name: Name of the metric to retrieve (required) - :type metric_name: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_metrics", param_name="webhook_id", param_value=webhook_id) - validate_not_empty_string(function_name="get_metrics", param_name="metric_name", param_value=metric_name) - - _param = self._get_metrics_serialize( - webhook_id=webhook_id, - metric_name=metric_name, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "WebhookMetric", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_metrics_serialize( - self, - webhook_id, - metric_name, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if webhook_id is not None: - _path_params['webhookId'] = webhook_id - if metric_name is not None: - _path_params['metricName'] = metric_name - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/webhooks/{webhookId}/metrics/{metricName}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_notification( - self, - webhook_id: Annotated[StrictStr, Field(description="The ID of the webhook to fetch")], - notification_id: Annotated[StrictStr, Field(description="The ID of the notification to fetch")], - include_data: Annotated[Optional[StrictBool], Field(description="Include the data of the notification")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[NotificationWithData]]: - """Get notification by id - - Get notification by id - - :param webhook_id: The ID of the webhook to fetch (required) - :type webhook_id: str - :param notification_id: The ID of the notification to fetch (required) - :type notification_id: str - :param include_data: Include the data of the notification - :type include_data: bool - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_notification", param_name="webhook_id", param_value=webhook_id) - validate_not_empty_string(function_name="get_notification", param_name="notification_id", param_value=notification_id) - - _param = self._get_notification_serialize( - webhook_id=webhook_id, - notification_id=notification_id, - include_data=include_data, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "NotificationWithData", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_notification_serialize( - self, - webhook_id, - notification_id, - include_data, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if webhook_id is not None: - _path_params['webhookId'] = webhook_id - if notification_id is not None: - _path_params['notificationId'] = notification_id - # process the query parameters - if include_data is not None: - - _query_params.append(('includeData', include_data)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/webhooks/{webhookId}/notifications/{notificationId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_notification_attempts( - self, - webhook_id: Annotated[StrictStr, Field(description="The ID of the webhook to fetch")], - notification_id: Annotated[StrictStr, Field(description="The ID of the notification to fetch")], - page_cursor: Annotated[Optional[StrictStr], Field(description="Cursor of the required page")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=100, strict=True, ge=1)], Annotated[int, Field(le=100, strict=True, ge=1)]]], Field(description="Maximum number of items in the page")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[NotificationAttemptsPaginatedResponse]]: - """Get notification attempts - - Get notification attempts by notification id - - :param webhook_id: The ID of the webhook to fetch (required) - :type webhook_id: str - :param notification_id: The ID of the notification to fetch (required) - :type notification_id: str - :param page_cursor: Cursor of the required page - :type page_cursor: str - :param page_size: Maximum number of items in the page - :type page_size: float - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_notification_attempts", param_name="webhook_id", param_value=webhook_id) - validate_not_empty_string(function_name="get_notification_attempts", param_name="notification_id", param_value=notification_id) - - _param = self._get_notification_attempts_serialize( - webhook_id=webhook_id, - notification_id=notification_id, - page_cursor=page_cursor, - page_size=page_size, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "NotificationAttemptsPaginatedResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_notification_attempts_serialize( - self, - webhook_id, - notification_id, - page_cursor, - page_size, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if webhook_id is not None: - _path_params['webhookId'] = webhook_id - if notification_id is not None: - _path_params['notificationId'] = notification_id - # process the query parameters - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/webhooks/{webhookId}/notifications/{notificationId}/attempts', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_notifications( - self, - webhook_id: StrictStr, - order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering (default DESC)")] = None, - sort_by: Annotated[Optional[StrictStr], Field(description="Sort by field")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Cursor of the required page")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=100, strict=True, ge=1)], Annotated[int, Field(le=100, strict=True, ge=1)]]], Field(description="Maximum number of items in the page")] = None, - start_time: Annotated[Optional[Union[StrictFloat, StrictInt]], Field(description="Start time in milliseconds since epoch to filter by notifications created after this time (default 31 days ago)")] = None, - end_time: Annotated[Optional[Union[StrictFloat, StrictInt]], Field(description="End time in milliseconds since epoch to filter by notifications created before this time (default current time)")] = None, - statuses: Annotated[Optional[List[NotificationStatus]], Field(description="List of notification statuses to filter by")] = None, - events: Annotated[Optional[List[WebhookEvent]], Field(description="List of webhook event types to filter by")] = None, - resource_id: Annotated[Optional[StrictStr], Field(description="Resource ID to filter by")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[NotificationPaginatedResponse]]: - """Get all notifications by webhook id - - Get all notifications by webhook id (paginated) - - :param webhook_id: (required) - :type webhook_id: str - :param order: ASC / DESC ordering (default DESC) - :type order: str - :param sort_by: Sort by field - :type sort_by: str - :param page_cursor: Cursor of the required page - :type page_cursor: str - :param page_size: Maximum number of items in the page - :type page_size: float - :param start_time: Start time in milliseconds since epoch to filter by notifications created after this time (default 31 days ago) - :type start_time: float - :param end_time: End time in milliseconds since epoch to filter by notifications created before this time (default current time) - :type end_time: float - :param statuses: List of notification statuses to filter by - :type statuses: List[NotificationStatus] - :param events: List of webhook event types to filter by - :type events: List[WebhookEvent] - :param resource_id: Resource ID to filter by - :type resource_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_notifications", param_name="webhook_id", param_value=webhook_id) - - _param = self._get_notifications_serialize( - webhook_id=webhook_id, - order=order, - sort_by=sort_by, - page_cursor=page_cursor, - page_size=page_size, - start_time=start_time, - end_time=end_time, - statuses=statuses, - events=events, - resource_id=resource_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "NotificationPaginatedResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_notifications_serialize( - self, - webhook_id, - order, - sort_by, - page_cursor, - page_size, - start_time, - end_time, - statuses, - events, - resource_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - 'statuses': 'multi', - 'events': 'multi', - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if webhook_id is not None: - _path_params['webhookId'] = webhook_id - # process the query parameters - if order is not None: - - _query_params.append(('order', order)) - - if sort_by is not None: - - _query_params.append(('sortBy', sort_by)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - if start_time is not None: - - _query_params.append(('startTime', start_time)) - - if end_time is not None: - - _query_params.append(('endTime', end_time)) - - if statuses is not None: - - _query_params.append(('statuses', statuses)) - - if events is not None: - - _query_params.append(('events', events)) - - if resource_id is not None: - - _query_params.append(('resourceId', resource_id)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/webhooks/{webhookId}/notifications', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_resend_job_status( - self, - webhook_id: Annotated[StrictStr, Field(description="The ID of the webhook")], - job_id: Annotated[StrictStr, Field(description="The ID of the resend job")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ResendFailedNotificationsJobStatusResponse]]: - """Get resend job status - - Get the status of a resend job - - :param webhook_id: The ID of the webhook (required) - :type webhook_id: str - :param job_id: The ID of the resend job (required) - :type job_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_resend_job_status", param_name="webhook_id", param_value=webhook_id) - validate_not_empty_string(function_name="get_resend_job_status", param_name="job_id", param_value=job_id) - - _param = self._get_resend_job_status_serialize( - webhook_id=webhook_id, - job_id=job_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ResendFailedNotificationsJobStatusResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_resend_job_status_serialize( - self, - webhook_id, - job_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if webhook_id is not None: - _path_params['webhookId'] = webhook_id - if job_id is not None: - _path_params['jobId'] = job_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/webhooks/{webhookId}/notifications/resend_failed/jobs/{jobId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_webhook( - self, - webhook_id: Annotated[StrictStr, Field(description="The unique identifier of the webhook")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[Webhook]]: - """Get webhook by id - - Retrieve a webhook by its id - - :param webhook_id: The unique identifier of the webhook (required) - :type webhook_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_webhook", param_name="webhook_id", param_value=webhook_id) - - _param = self._get_webhook_serialize( - webhook_id=webhook_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "Webhook", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_webhook_serialize( - self, - webhook_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if webhook_id is not None: - _path_params['webhookId'] = webhook_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/webhooks/{webhookId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def get_webhooks( - self, - order: Annotated[Optional[StrictStr], Field(description="ASC / DESC ordering (default DESC)")] = None, - page_cursor: Annotated[Optional[StrictStr], Field(description="Cursor of the required page")] = None, - page_size: Annotated[Optional[Union[Annotated[float, Field(le=100, strict=True, ge=1)], Annotated[int, Field(le=100, strict=True, ge=1)]]], Field(description="Maximum number of items in the page")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[WebhookPaginatedResponse]]: - """Get all webhooks - - Get all webhooks (paginated). - - :param order: ASC / DESC ordering (default DESC) - :type order: str - :param page_cursor: Cursor of the required page - :type page_cursor: str - :param page_size: Maximum number of items in the page - :type page_size: float - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_webhooks_serialize( - order=order, - page_cursor=page_cursor, - page_size=page_size, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "WebhookPaginatedResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_webhooks_serialize( - self, - order, - page_cursor, - page_size, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - if order is not None: - - _query_params.append(('order', order)) - - if page_cursor is not None: - - _query_params.append(('pageCursor', page_cursor)) - - if page_size is not None: - - _query_params.append(('pageSize', page_size)) - - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/webhooks', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def resend_failed_notifications( - self, - webhook_id: Annotated[StrictStr, Field(description="The ID of the webhook")], - resend_failed_notifications_request: ResendFailedNotificationsRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[ResendFailedNotificationsResponse]]: - """Resend failed notifications - - Resend all failed notifications for a webhook in the last 24 hours Endpoint Permission: Owner, Admin, Non-Signing Admin, Editor, Signer. - - :param webhook_id: The ID of the webhook (required) - :type webhook_id: str - :param resend_failed_notifications_request: (required) - :type resend_failed_notifications_request: ResendFailedNotificationsRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="resend_failed_notifications", param_name="webhook_id", param_value=webhook_id) - - _param = self._resend_failed_notifications_serialize( - webhook_id=webhook_id, - resend_failed_notifications_request=resend_failed_notifications_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "ResendFailedNotificationsResponse", - '202': "ResendFailedNotificationsResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _resend_failed_notifications_serialize( - self, - webhook_id, - resend_failed_notifications_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if webhook_id is not None: - _path_params['webhookId'] = webhook_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if resend_failed_notifications_request is not None: - _body_params = resend_failed_notifications_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/webhooks/{webhookId}/notifications/resend_failed', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def resend_notification_by_id( - self, - webhook_id: Annotated[StrictStr, Field(description="The ID of the webhook")], - notification_id: Annotated[StrictStr, Field(description="The ID of the notification")], - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Resend notification by id - - Resend notification by ID Endpoint Permission: Owner, Admin, Non-Signing Admin, Editor, Signer. - - :param webhook_id: The ID of the webhook (required) - :type webhook_id: str - :param notification_id: The ID of the notification (required) - :type notification_id: str - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="resend_notification_by_id", param_name="webhook_id", param_value=webhook_id) - validate_not_empty_string(function_name="resend_notification_by_id", param_name="notification_id", param_value=notification_id) - - _param = self._resend_notification_by_id_serialize( - webhook_id=webhook_id, - notification_id=notification_id, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '202': None, - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _resend_notification_by_id_serialize( - self, - webhook_id, - notification_id, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if webhook_id is not None: - _path_params['webhookId'] = webhook_id - if notification_id is not None: - _path_params['notificationId'] = notification_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/webhooks/{webhookId}/notifications/{notificationId}/resend', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def resend_notifications_by_resource_id( - self, - webhook_id: Annotated[StrictStr, Field(description="The ID of the webhook")], - resend_notifications_by_resource_id_request: ResendNotificationsByResourceIdRequest, - idempotency_key: Annotated[Optional[StrictStr], Field(description="A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.")] = None, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[None]]: - """Resend notifications by resource Id - - Resend notifications by resource Id Endpoint Permission: Owner, Admin, Non-Signing Admin, Editor, Signer. - - :param webhook_id: The ID of the webhook (required) - :type webhook_id: str - :param resend_notifications_by_resource_id_request: (required) - :type resend_notifications_by_resource_id_request: ResendNotificationsByResourceIdRequest - :param idempotency_key: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. - :type idempotency_key: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="resend_notifications_by_resource_id", param_name="webhook_id", param_value=webhook_id) - - _param = self._resend_notifications_by_resource_id_serialize( - webhook_id=webhook_id, - resend_notifications_by_resource_id_request=resend_notifications_by_resource_id_request, - idempotency_key=idempotency_key, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '202': None, - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _resend_notifications_by_resource_id_serialize( - self, - webhook_id, - resend_notifications_by_resource_id_request, - idempotency_key, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if webhook_id is not None: - _path_params['webhookId'] = webhook_id - # process the query parameters - # process the header parameters - if idempotency_key is not None: - _header_params['Idempotency-Key'] = idempotency_key - # process the form parameters - # process the body parameter - if resend_notifications_by_resource_id_request is not None: - _body_params = resend_notifications_by_resource_id_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='POST', - resource_path='/webhooks/{webhookId}/notifications/resend_by_resource', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - - - - @validate_call - def update_webhook( - self, - webhook_id: Annotated[StrictStr, Field(description="The unique identifier of the webhook")], - update_webhook_request: UpdateWebhookRequest, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[Webhook]]: - """Update webhook - - Update a webhook by its id Endpoint Permission: Owner, Admin, Non-Signing Admin. - - :param webhook_id: The unique identifier of the webhook (required) - :type webhook_id: str - :param update_webhook_request: (required) - :type update_webhook_request: UpdateWebhookRequest - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="update_webhook", param_name="webhook_id", param_value=webhook_id) - - _param = self._update_webhook_serialize( - webhook_id=webhook_id, - update_webhook_request=update_webhook_request, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "Webhook", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _update_webhook_serialize( - self, - webhook_id, - update_webhook_request, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if webhook_id is not None: - _path_params['webhookId'] = webhook_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - if update_webhook_request is not None: - _body_params = update_webhook_request - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='PATCH', - resource_path='/webhooks/{webhookId}', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdEJvb2wsIFN0cmljdEZsb2F0LCBTdHJpY3RJbnQsIFN0cmljdFN0ciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3dlYmhvb2tfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlV2ViaG9va1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ub3RpZmljYXRpb25fYXR0ZW1wdHNfcGFnaW5hdGVkX3Jlc3BvbnNlIGltcG9ydCBOb3RpZmljYXRpb25BdHRlbXB0c1BhZ2luYXRlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubm90aWZpY2F0aW9uX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgTm90aWZpY2F0aW9uUGFnaW5hdGVkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ub3RpZmljYXRpb25fc3RhdHVzIGltcG9ydCBOb3RpZmljYXRpb25TdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ub3RpZmljYXRpb25fd2l0aF9kYXRhIGltcG9ydCBOb3RpZmljYXRpb25XaXRoRGF0YQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19qb2Jfc3RhdHVzX3Jlc3BvbnNlIGltcG9ydCBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zSm9iU3RhdHVzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZXNlbmRfZmFpbGVkX25vdGlmaWNhdGlvbnNfcmVxdWVzdCBpbXBvcnQgUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZXNlbmRfZmFpbGVkX25vdGlmaWNhdGlvbnNfcmVzcG9uc2UgaW1wb3J0IFJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc2VuZF9ub3RpZmljYXRpb25zX2J5X3Jlc291cmNlX2lkX3JlcXVlc3QgaW1wb3J0IFJlc2VuZE5vdGlmaWNhdGlvbnNCeVJlc291cmNlSWRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXBkYXRlX3dlYmhvb2tfcmVxdWVzdCBpbXBvcnQgVXBkYXRlV2ViaG9va1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53ZWJob29rIGltcG9ydCBXZWJob29rCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud2ViaG9va19ldmVudCBpbXBvcnQgV2ViaG9va0V2ZW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud2ViaG9va19tZXRyaWMgaW1wb3J0IFdlYmhvb2tNZXRyaWMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53ZWJob29rX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgV2ViaG9va1BhZ2luYXRlZFJlc3BvbnNlCgpmcm9tIGZpcmVibG9ja3MuYXBpX2NsaWVudCBpbXBvcnQgQXBpQ2xpZW50LCBSZXF1ZXN0U2VyaWFsaXplZApmcm9tIGZpcmVibG9ja3MuYXBpX3Jlc3BvbnNlIGltcG9ydCBBcGlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MucmVzdCBpbXBvcnQgUkVTVFJlc3BvbnNlVHlwZQpmcm9tIGZpcmVibG9ja3MudmFsaWRhdGlvbl91dGlscyBpbXBvcnQgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZwoKCmNsYXNzIFdlYmhvb2tzVjJBcGk6CiAgICAiIiJOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yCiAgICBSZWY6IGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaAoKICAgIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS4KICAgICIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcGlfY2xpZW50PU5vbmUpIC0+IE5vbmU6CiAgICAgICAgaWYgYXBpX2NsaWVudCBpcyBOb25lOgogICAgICAgICAgICBhcGlfY2xpZW50ID0gQXBpQ2xpZW50LmdldF9kZWZhdWx0KCkKICAgICAgICBzZWxmLmFwaV9jbGllbnQgPSBhcGlfY2xpZW50CgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgY3JlYXRlX3dlYmhvb2soCiAgICAgICAgc2VsZiwKICAgICAgICBjcmVhdGVfd2ViaG9va19yZXF1ZXN0OiBDcmVhdGVXZWJob29rUmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtXZWJob29rXV06CiAgICAgICAgIiIiQ3JlYXRlIGEgbmV3IHdlYmhvb2sKCiAgICAgICAgQ3JlYXRlcyBhIG5ldyB3ZWJob29rLCB3aGljaCB3aWxsIGJlIHRyaWdnZXJlZCBvbiB0aGUgc3BlY2lmaWVkIGV2ZW50cyAgKipFbmRwb2ludCBQZXJtaXNzaW9uczoqKiBPd25lciwgQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLiAKCiAgICAgICAgOnBhcmFtIGNyZWF0ZV93ZWJob29rX3JlcXVlc3Q6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSBjcmVhdGVfd2ViaG9va19yZXF1ZXN0OiBDcmVhdGVXZWJob29rUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2NyZWF0ZV93ZWJob29rX3NlcmlhbGl6ZSgKICAgICAgICAgICAgY3JlYXRlX3dlYmhvb2tfcmVxdWVzdD1jcmVhdGVfd2ViaG9va19yZXF1ZXN0LAogICAgICAgICAgICBpZGVtcG90ZW5jeV9rZXk9aWRlbXBvdGVuY3lfa2V5LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDEnOiAiV2ViaG9vayIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2NyZWF0ZV93ZWJob29rX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIGNyZWF0ZV93ZWJob29rX3JlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiBjcmVhdGVfd2ViaG9va19yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSBjcmVhdGVfd2ViaG9va19yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy93ZWJob29rcycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBkZWxldGVfd2ViaG9vaygKICAgICAgICBzZWxmLAogICAgICAgIHdlYmhvb2tfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHdlYmhvb2siKV0sCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtXZWJob29rXV06CiAgICAgICAgIiIiRGVsZXRlIHdlYmhvb2sKCiAgICAgICAgRGVsZXRlIGEgd2ViaG9vayBieSBpdHMgaWQgIEVuZHBvaW50IFBlcm1pc3Npb246IE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4uIAoKICAgICAgICA6cGFyYW0gd2ViaG9va19pZDogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSB3ZWJob29rIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB3ZWJob29rX2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZGVsZXRlX3dlYmhvb2siLCBwYXJhbV9uYW1lPSJ3ZWJob29rX2lkIiwgcGFyYW1fdmFsdWU9d2ViaG9va19pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZGVsZXRlX3dlYmhvb2tfc2VyaWFsaXplKAogICAgICAgICAgICB3ZWJob29rX2lkPXdlYmhvb2tfaWQsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJXZWJob29rIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZGVsZXRlX3dlYmhvb2tfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgd2ViaG9va19pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgd2ViaG9va19pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd3ZWJob29rSWQnXSA9IHdlYmhvb2tfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0RFTEVURScsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy93ZWJob29rcy97d2ViaG9va0lkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfbWV0cmljcygKICAgICAgICBzZWxmLAogICAgICAgIHdlYmhvb2tfaWQ6IFN0cmljdFN0ciwKICAgICAgICBtZXRyaWNfbmFtZTogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249Ik5hbWUgb2YgdGhlIG1ldHJpYyB0byByZXRyaWV2ZSIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1dlYmhvb2tNZXRyaWNdXToKICAgICAgICAiIiJHZXQgd2ViaG9vayBtZXRyaWNzCgogICAgICAgIEdldCB3ZWJob29rIG1ldHJpY3MgYnkgd2ViaG9vayBpZCBhbmQgbWV0cmljIG5hbWUgCgogICAgICAgIDpwYXJhbSB3ZWJob29rX2lkOiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgd2ViaG9va19pZDogc3RyCiAgICAgICAgOnBhcmFtIG1ldHJpY19uYW1lOiBOYW1lIG9mIHRoZSBtZXRyaWMgdG8gcmV0cmlldmUgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIG1ldHJpY19uYW1lOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X21ldHJpY3MiLCBwYXJhbV9uYW1lPSJ3ZWJob29rX2lkIiwgcGFyYW1fdmFsdWU9d2ViaG9va19pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9tZXRyaWNzIiwgcGFyYW1fbmFtZT0ibWV0cmljX25hbWUiLCBwYXJhbV92YWx1ZT1tZXRyaWNfbmFtZSkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X21ldHJpY3Nfc2VyaWFsaXplKAogICAgICAgICAgICB3ZWJob29rX2lkPXdlYmhvb2tfaWQsCiAgICAgICAgICAgIG1ldHJpY19uYW1lPW1ldHJpY19uYW1lLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiV2ViaG9va01ldHJpYyIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9tZXRyaWNzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHdlYmhvb2tfaWQsCiAgICAgICAgbWV0cmljX25hbWUsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHdlYmhvb2tfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snd2ViaG9va0lkJ10gPSB3ZWJob29rX2lkCiAgICAgICAgaWYgbWV0cmljX25hbWUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snbWV0cmljTmFtZSddID0gbWV0cmljX25hbWUKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy93ZWJob29rcy97d2ViaG9va0lkfS9tZXRyaWNzL3ttZXRyaWNOYW1lfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfbm90aWZpY2F0aW9uKAogICAgICAgIHNlbGYsCiAgICAgICAgd2ViaG9va19pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgd2ViaG9vayB0byBmZXRjaCIpXSwKICAgICAgICBub3RpZmljYXRpb25faWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIG5vdGlmaWNhdGlvbiB0byBmZXRjaCIpXSwKICAgICAgICBpbmNsdWRlX2RhdGE6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RCb29sXSwgRmllbGQoZGVzY3JpcHRpb249IkluY2x1ZGUgdGhlIGRhdGEgb2YgdGhlIG5vdGlmaWNhdGlvbiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtOb3RpZmljYXRpb25XaXRoRGF0YV1dOgogICAgICAgICIiIkdldCBub3RpZmljYXRpb24gYnkgaWQKCiAgICAgICAgR2V0IG5vdGlmaWNhdGlvbiBieSBpZCAKCiAgICAgICAgOnBhcmFtIHdlYmhvb2tfaWQ6IFRoZSBJRCBvZiB0aGUgd2ViaG9vayB0byBmZXRjaCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgd2ViaG9va19pZDogc3RyCiAgICAgICAgOnBhcmFtIG5vdGlmaWNhdGlvbl9pZDogVGhlIElEIG9mIHRoZSBub3RpZmljYXRpb24gdG8gZmV0Y2ggKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIG5vdGlmaWNhdGlvbl9pZDogc3RyCiAgICAgICAgOnBhcmFtIGluY2x1ZGVfZGF0YTogSW5jbHVkZSB0aGUgZGF0YSBvZiB0aGUgbm90aWZpY2F0aW9uCiAgICAgICAgOnR5cGUgaW5jbHVkZV9kYXRhOiBib29sCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9ub3RpZmljYXRpb24iLCBwYXJhbV9uYW1lPSJ3ZWJob29rX2lkIiwgcGFyYW1fdmFsdWU9d2ViaG9va19pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF9ub3RpZmljYXRpb24iLCBwYXJhbV9uYW1lPSJub3RpZmljYXRpb25faWQiLCBwYXJhbV92YWx1ZT1ub3RpZmljYXRpb25faWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9ub3RpZmljYXRpb25fc2VyaWFsaXplKAogICAgICAgICAgICB3ZWJob29rX2lkPXdlYmhvb2tfaWQsCiAgICAgICAgICAgIG5vdGlmaWNhdGlvbl9pZD1ub3RpZmljYXRpb25faWQsCiAgICAgICAgICAgIGluY2x1ZGVfZGF0YT1pbmNsdWRlX2RhdGEsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJOb3RpZmljYXRpb25XaXRoRGF0YSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9ub3RpZmljYXRpb25fc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgd2ViaG9va19pZCwKICAgICAgICBub3RpZmljYXRpb25faWQsCiAgICAgICAgaW5jbHVkZV9kYXRhLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB3ZWJob29rX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3dlYmhvb2tJZCddID0gd2ViaG9va19pZAogICAgICAgIGlmIG5vdGlmaWNhdGlvbl9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydub3RpZmljYXRpb25JZCddID0gbm90aWZpY2F0aW9uX2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaW5jbHVkZV9kYXRhIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdpbmNsdWRlRGF0YScsIGluY2x1ZGVfZGF0YSkpCiAgICAgICAgICAgIAogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3dlYmhvb2tzL3t3ZWJob29rSWR9L25vdGlmaWNhdGlvbnMve25vdGlmaWNhdGlvbklkfScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfbm90aWZpY2F0aW9uX2F0dGVtcHRzKAogICAgICAgIHNlbGYsCiAgICAgICAgd2ViaG9va19pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgd2ViaG9vayB0byBmZXRjaCIpXSwKICAgICAgICBub3RpZmljYXRpb25faWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIG5vdGlmaWNhdGlvbiB0byBmZXRjaCIpXSwKICAgICAgICBwYWdlX2N1cnNvcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJDdXJzb3Igb2YgdGhlIHJlcXVpcmVkIHBhZ2UiKV0gPSBOb25lLAogICAgICAgIHBhZ2Vfc2l6ZTogQW5ub3RhdGVkW09wdGlvbmFsW1VuaW9uW0Fubm90YXRlZFtmbG9hdCwgRmllbGQobGU9MTAwLCBzdHJpY3Q9VHJ1ZSwgZ2U9MSldLCBBbm5vdGF0ZWRbaW50LCBGaWVsZChsZT0xMDAsIHN0cmljdD1UcnVlLCBnZT0xKV1dXSwgRmllbGQoZGVzY3JpcHRpb249Ik1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBwYWdlIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW05vdGlmaWNhdGlvbkF0dGVtcHRzUGFnaW5hdGVkUmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgbm90aWZpY2F0aW9uIGF0dGVtcHRzCgogICAgICAgIEdldCBub3RpZmljYXRpb24gYXR0ZW1wdHMgYnkgbm90aWZpY2F0aW9uIGlkIAoKICAgICAgICA6cGFyYW0gd2ViaG9va19pZDogVGhlIElEIG9mIHRoZSB3ZWJob29rIHRvIGZldGNoIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB3ZWJob29rX2lkOiBzdHIKICAgICAgICA6cGFyYW0gbm90aWZpY2F0aW9uX2lkOiBUaGUgSUQgb2YgdGhlIG5vdGlmaWNhdGlvbiB0byBmZXRjaCAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgbm90aWZpY2F0aW9uX2lkOiBzdHIKICAgICAgICA6cGFyYW0gcGFnZV9jdXJzb3I6IEN1cnNvciBvZiB0aGUgcmVxdWlyZWQgcGFnZQogICAgICAgIDp0eXBlIHBhZ2VfY3Vyc29yOiBzdHIKICAgICAgICA6cGFyYW0gcGFnZV9zaXplOiBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgcGFnZQogICAgICAgIDp0eXBlIHBhZ2Vfc2l6ZTogZmxvYXQKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X25vdGlmaWNhdGlvbl9hdHRlbXB0cyIsIHBhcmFtX25hbWU9IndlYmhvb2tfaWQiLCBwYXJhbV92YWx1ZT13ZWJob29rX2lkKQogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X25vdGlmaWNhdGlvbl9hdHRlbXB0cyIsIHBhcmFtX25hbWU9Im5vdGlmaWNhdGlvbl9pZCIsIHBhcmFtX3ZhbHVlPW5vdGlmaWNhdGlvbl9pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fZ2V0X25vdGlmaWNhdGlvbl9hdHRlbXB0c19zZXJpYWxpemUoCiAgICAgICAgICAgIHdlYmhvb2tfaWQ9d2ViaG9va19pZCwKICAgICAgICAgICAgbm90aWZpY2F0aW9uX2lkPW5vdGlmaWNhdGlvbl9pZCwKICAgICAgICAgICAgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsCiAgICAgICAgICAgIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJOb3RpZmljYXRpb25BdHRlbXB0c1BhZ2luYXRlZFJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X25vdGlmaWNhdGlvbl9hdHRlbXB0c19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB3ZWJob29rX2lkLAogICAgICAgIG5vdGlmaWNhdGlvbl9pZCwKICAgICAgICBwYWdlX2N1cnNvciwKICAgICAgICBwYWdlX3NpemUsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHdlYmhvb2tfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snd2ViaG9va0lkJ10gPSB3ZWJob29rX2lkCiAgICAgICAgaWYgbm90aWZpY2F0aW9uX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ25vdGlmaWNhdGlvbklkJ10gPSBub3RpZmljYXRpb25faWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICBpZiBwYWdlX2N1cnNvciBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZUN1cnNvcicsIHBhZ2VfY3Vyc29yKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgcGFnZV9zaXplIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdwYWdlU2l6ZScsIHBhZ2Vfc2l6ZSkpCiAgICAgICAgICAgIAogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3dlYmhvb2tzL3t3ZWJob29rSWR9L25vdGlmaWNhdGlvbnMve25vdGlmaWNhdGlvbklkfS9hdHRlbXB0cycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfbm90aWZpY2F0aW9ucygKICAgICAgICBzZWxmLAogICAgICAgIHdlYmhvb2tfaWQ6IFN0cmljdFN0ciwKICAgICAgICBvcmRlcjogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBU0MgLyBERVNDIG9yZGVyaW5nIChkZWZhdWx0IERFU0MpIildID0gTm9uZSwKICAgICAgICBzb3J0X2J5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IlNvcnQgYnkgZmllbGQiKV0gPSBOb25lLAogICAgICAgIHBhZ2VfY3Vyc29yOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkN1cnNvciBvZiB0aGUgcmVxdWlyZWQgcGFnZSIpXSA9IE5vbmUsCiAgICAgICAgcGFnZV9zaXplOiBBbm5vdGF0ZWRbT3B0aW9uYWxbVW5pb25bQW5ub3RhdGVkW2Zsb2F0LCBGaWVsZChsZT0xMDAsIHN0cmljdD1UcnVlLCBnZT0xKV0sIEFubm90YXRlZFtpbnQsIEZpZWxkKGxlPTEwMCwgc3RyaWN0PVRydWUsIGdlPTEpXV1dLCBGaWVsZChkZXNjcmlwdGlvbj0iTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgaW4gdGhlIHBhZ2UiKV0gPSBOb25lLAogICAgICAgIHN0YXJ0X3RpbWU6IEFubm90YXRlZFtPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJTdGFydCB0aW1lIGluIG1pbGxpc2Vjb25kcyBzaW5jZSBlcG9jaCB0byBmaWx0ZXIgYnkgbm90aWZpY2F0aW9ucyBjcmVhdGVkIGFmdGVyIHRoaXMgdGltZSAoZGVmYXVsdCAzMSBkYXlzIGFnbykiKV0gPSBOb25lLAogICAgICAgIGVuZF90aW1lOiBBbm5vdGF0ZWRbT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dLCBGaWVsZChkZXNjcmlwdGlvbj0iRW5kIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHNpbmNlIGVwb2NoIHRvIGZpbHRlciBieSBub3RpZmljYXRpb25zIGNyZWF0ZWQgYmVmb3JlIHRoaXMgdGltZSAoZGVmYXVsdCBjdXJyZW50IHRpbWUpIildID0gTm9uZSwKICAgICAgICBzdGF0dXNlczogQW5ub3RhdGVkW09wdGlvbmFsW0xpc3RbTm90aWZpY2F0aW9uU3RhdHVzXV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJMaXN0IG9mIG5vdGlmaWNhdGlvbiBzdGF0dXNlcyB0byBmaWx0ZXIgYnkiKV0gPSBOb25lLAogICAgICAgIGV2ZW50czogQW5ub3RhdGVkW09wdGlvbmFsW0xpc3RbV2ViaG9va0V2ZW50XV0sIEZpZWxkKGRlc2NyaXB0aW9uPSJMaXN0IG9mIHdlYmhvb2sgZXZlbnQgdHlwZXMgdG8gZmlsdGVyIGJ5IildID0gTm9uZSwKICAgICAgICByZXNvdXJjZV9pZDogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJSZXNvdXJjZSBJRCB0byBmaWx0ZXIgYnkiKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTm90aWZpY2F0aW9uUGFnaW5hdGVkUmVzcG9uc2VdXToKICAgICAgICAiIiJHZXQgYWxsIG5vdGlmaWNhdGlvbnMgYnkgd2ViaG9vayBpZAoKICAgICAgICBHZXQgYWxsIG5vdGlmaWNhdGlvbnMgYnkgd2ViaG9vayBpZCAocGFnaW5hdGVkKSAKCiAgICAgICAgOnBhcmFtIHdlYmhvb2tfaWQ6IChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB3ZWJob29rX2lkOiBzdHIKICAgICAgICA6cGFyYW0gb3JkZXI6IEFTQyAvIERFU0Mgb3JkZXJpbmcgKGRlZmF1bHQgREVTQykKICAgICAgICA6dHlwZSBvcmRlcjogc3RyCiAgICAgICAgOnBhcmFtIHNvcnRfYnk6IFNvcnQgYnkgZmllbGQKICAgICAgICA6dHlwZSBzb3J0X2J5OiBzdHIKICAgICAgICA6cGFyYW0gcGFnZV9jdXJzb3I6IEN1cnNvciBvZiB0aGUgcmVxdWlyZWQgcGFnZQogICAgICAgIDp0eXBlIHBhZ2VfY3Vyc29yOiBzdHIKICAgICAgICA6cGFyYW0gcGFnZV9zaXplOiBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgcGFnZQogICAgICAgIDp0eXBlIHBhZ2Vfc2l6ZTogZmxvYXQKICAgICAgICA6cGFyYW0gc3RhcnRfdGltZTogU3RhcnQgdGltZSBpbiBtaWxsaXNlY29uZHMgc2luY2UgZXBvY2ggdG8gZmlsdGVyIGJ5IG5vdGlmaWNhdGlvbnMgY3JlYXRlZCBhZnRlciB0aGlzIHRpbWUgKGRlZmF1bHQgMzEgZGF5cyBhZ28pCiAgICAgICAgOnR5cGUgc3RhcnRfdGltZTogZmxvYXQKICAgICAgICA6cGFyYW0gZW5kX3RpbWU6IEVuZCB0aW1lIGluIG1pbGxpc2Vjb25kcyBzaW5jZSBlcG9jaCB0byBmaWx0ZXIgYnkgbm90aWZpY2F0aW9ucyBjcmVhdGVkIGJlZm9yZSB0aGlzIHRpbWUgKGRlZmF1bHQgY3VycmVudCB0aW1lKQogICAgICAgIDp0eXBlIGVuZF90aW1lOiBmbG9hdAogICAgICAgIDpwYXJhbSBzdGF0dXNlczogTGlzdCBvZiBub3RpZmljYXRpb24gc3RhdHVzZXMgdG8gZmlsdGVyIGJ5CiAgICAgICAgOnR5cGUgc3RhdHVzZXM6IExpc3RbTm90aWZpY2F0aW9uU3RhdHVzXQogICAgICAgIDpwYXJhbSBldmVudHM6IExpc3Qgb2Ygd2ViaG9vayBldmVudCB0eXBlcyB0byBmaWx0ZXIgYnkKICAgICAgICA6dHlwZSBldmVudHM6IExpc3RbV2ViaG9va0V2ZW50XQogICAgICAgIDpwYXJhbSByZXNvdXJjZV9pZDogUmVzb3VyY2UgSUQgdG8gZmlsdGVyIGJ5CiAgICAgICAgOnR5cGUgcmVzb3VyY2VfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfbm90aWZpY2F0aW9ucyIsIHBhcmFtX25hbWU9IndlYmhvb2tfaWQiLCBwYXJhbV92YWx1ZT13ZWJob29rX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfbm90aWZpY2F0aW9uc19zZXJpYWxpemUoCiAgICAgICAgICAgIHdlYmhvb2tfaWQ9d2ViaG9va19pZCwKICAgICAgICAgICAgb3JkZXI9b3JkZXIsCiAgICAgICAgICAgIHNvcnRfYnk9c29ydF9ieSwKICAgICAgICAgICAgcGFnZV9jdXJzb3I9cGFnZV9jdXJzb3IsCiAgICAgICAgICAgIHBhZ2Vfc2l6ZT1wYWdlX3NpemUsCiAgICAgICAgICAgIHN0YXJ0X3RpbWU9c3RhcnRfdGltZSwKICAgICAgICAgICAgZW5kX3RpbWU9ZW5kX3RpbWUsCiAgICAgICAgICAgIHN0YXR1c2VzPXN0YXR1c2VzLAogICAgICAgICAgICBldmVudHM9ZXZlbnRzLAogICAgICAgICAgICByZXNvdXJjZV9pZD1yZXNvdXJjZV9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIk5vdGlmaWNhdGlvblBhZ2luYXRlZFJlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfZ2V0X25vdGlmaWNhdGlvbnNfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgd2ViaG9va19pZCwKICAgICAgICBvcmRlciwKICAgICAgICBzb3J0X2J5LAogICAgICAgIHBhZ2VfY3Vyc29yLAogICAgICAgIHBhZ2Vfc2l6ZSwKICAgICAgICBzdGFydF90aW1lLAogICAgICAgIGVuZF90aW1lLAogICAgICAgIHN0YXR1c2VzLAogICAgICAgIGV2ZW50cywKICAgICAgICByZXNvdXJjZV9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgICAgICdzdGF0dXNlcyc6ICdtdWx0aScsCiAgICAgICAgICAgICdldmVudHMnOiAnbXVsdGknLAogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHdlYmhvb2tfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snd2ViaG9va0lkJ10gPSB3ZWJob29rX2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgb3JkZXIgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ29yZGVyJywgb3JkZXIpKQogICAgICAgICAgICAKICAgICAgICBpZiBzb3J0X2J5IGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdzb3J0QnknLCBzb3J0X2J5KSkKICAgICAgICAgICAgCiAgICAgICAgaWYgcGFnZV9jdXJzb3IgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VDdXJzb3InLCBwYWdlX2N1cnNvcikpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2Vfc2l6ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZVNpemUnLCBwYWdlX3NpemUpKQogICAgICAgICAgICAKICAgICAgICBpZiBzdGFydF90aW1lIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdzdGFydFRpbWUnLCBzdGFydF90aW1lKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgZW5kX3RpbWUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ2VuZFRpbWUnLCBlbmRfdGltZSkpCiAgICAgICAgICAgIAogICAgICAgIGlmIHN0YXR1c2VzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdzdGF0dXNlcycsIHN0YXR1c2VzKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgZXZlbnRzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdldmVudHMnLCBldmVudHMpKQogICAgICAgICAgICAKICAgICAgICBpZiByZXNvdXJjZV9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncmVzb3VyY2VJZCcsIHJlc291cmNlX2lkKSkKICAgICAgICAgICAgCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvd2ViaG9va3Mve3dlYmhvb2tJZH0vbm90aWZpY2F0aW9ucycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfcmVzZW5kX2pvYl9zdGF0dXMoCiAgICAgICAgc2VsZiwKICAgICAgICB3ZWJob29rX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB3ZWJob29rIildLAogICAgICAgIGpvYl9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgcmVzZW5kIGpvYiIpXSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW1Jlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNKb2JTdGF0dXNSZXNwb25zZV1dOgogICAgICAgICIiIkdldCByZXNlbmQgam9iIHN0YXR1cwoKICAgICAgICBHZXQgdGhlIHN0YXR1cyBvZiBhIHJlc2VuZCBqb2IgCgogICAgICAgIDpwYXJhbSB3ZWJob29rX2lkOiBUaGUgSUQgb2YgdGhlIHdlYmhvb2sgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHdlYmhvb2tfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBqb2JfaWQ6IFRoZSBJRCBvZiB0aGUgcmVzZW5kIGpvYiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgam9iX2lkOiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0iZ2V0X3Jlc2VuZF9qb2Jfc3RhdHVzIiwgcGFyYW1fbmFtZT0id2ViaG9va19pZCIsIHBhcmFtX3ZhbHVlPXdlYmhvb2tfaWQpCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfcmVzZW5kX2pvYl9zdGF0dXMiLCBwYXJhbV9uYW1lPSJqb2JfaWQiLCBwYXJhbV92YWx1ZT1qb2JfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF9yZXNlbmRfam9iX3N0YXR1c19zZXJpYWxpemUoCiAgICAgICAgICAgIHdlYmhvb2tfaWQ9d2ViaG9va19pZCwKICAgICAgICAgICAgam9iX2lkPWpvYl9pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNKb2JTdGF0dXNSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF9yZXNlbmRfam9iX3N0YXR1c19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB3ZWJob29rX2lkLAogICAgICAgIGpvYl9pZCwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgd2ViaG9va19pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd3ZWJob29rSWQnXSA9IHdlYmhvb2tfaWQKICAgICAgICBpZiBqb2JfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1snam9iSWQnXSA9IGpvYl9pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3dlYmhvb2tzL3t3ZWJob29rSWR9L25vdGlmaWNhdGlvbnMvcmVzZW5kX2ZhaWxlZC9qb2JzL3tqb2JJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X3dlYmhvb2soCiAgICAgICAgc2VsZiwKICAgICAgICB3ZWJob29rX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSB3ZWJob29rIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbV2ViaG9va11dOgogICAgICAgICIiIkdldCB3ZWJob29rIGJ5IGlkCgogICAgICAgIFJldHJpZXZlIGEgd2ViaG9vayBieSBpdHMgaWQgCgogICAgICAgIDpwYXJhbSB3ZWJob29rX2lkOiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHdlYmhvb2sgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHdlYmhvb2tfaWQ6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJnZXRfd2ViaG9vayIsIHBhcmFtX25hbWU9IndlYmhvb2tfaWQiLCBwYXJhbV92YWx1ZT13ZWJob29rX2lkKQoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfd2ViaG9va19zZXJpYWxpemUoCiAgICAgICAgICAgIHdlYmhvb2tfaWQ9d2ViaG9va19pZCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIldlYmhvb2siLAogICAgICAgICAgICAnZGVmYXVsdCc6ICJFcnJvclNjaGVtYSIsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfd2ViaG9va19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICB3ZWJob29rX2lkLAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB3ZWJob29rX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3dlYmhvb2tJZCddID0gd2ViaG9va19pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3dlYmhvb2tzL3t3ZWJob29rSWR9JywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIGdldF93ZWJob29rcygKICAgICAgICBzZWxmLAogICAgICAgIG9yZGVyOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkFTQyAvIERFU0Mgb3JkZXJpbmcgKGRlZmF1bHQgREVTQykiKV0gPSBOb25lLAogICAgICAgIHBhZ2VfY3Vyc29yOiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkN1cnNvciBvZiB0aGUgcmVxdWlyZWQgcGFnZSIpXSA9IE5vbmUsCiAgICAgICAgcGFnZV9zaXplOiBBbm5vdGF0ZWRbT3B0aW9uYWxbVW5pb25bQW5ub3RhdGVkW2Zsb2F0LCBGaWVsZChsZT0xMDAsIHN0cmljdD1UcnVlLCBnZT0xKV0sIEFubm90YXRlZFtpbnQsIEZpZWxkKGxlPTEwMCwgc3RyaWN0PVRydWUsIGdlPTEpXV1dLCBGaWVsZChkZXNjcmlwdGlvbj0iTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgaW4gdGhlIHBhZ2UiKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbV2ViaG9va1BhZ2luYXRlZFJlc3BvbnNlXV06CiAgICAgICAgIiIiR2V0IGFsbCB3ZWJob29rcwoKICAgICAgICBHZXQgYWxsIHdlYmhvb2tzIChwYWdpbmF0ZWQpLiAKCiAgICAgICAgOnBhcmFtIG9yZGVyOiBBU0MgLyBERVNDIG9yZGVyaW5nIChkZWZhdWx0IERFU0MpCiAgICAgICAgOnR5cGUgb3JkZXI6IHN0cgogICAgICAgIDpwYXJhbSBwYWdlX2N1cnNvcjogQ3Vyc29yIG9mIHRoZSByZXF1aXJlZCBwYWdlCiAgICAgICAgOnR5cGUgcGFnZV9jdXJzb3I6IHN0cgogICAgICAgIDpwYXJhbSBwYWdlX3NpemU6IE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBwYWdlCiAgICAgICAgOnR5cGUgcGFnZV9zaXplOiBmbG9hdAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF93ZWJob29rc19zZXJpYWxpemUoCiAgICAgICAgICAgIG9yZGVyPW9yZGVyLAogICAgICAgICAgICBwYWdlX2N1cnNvcj1wYWdlX2N1cnNvciwKICAgICAgICAgICAgcGFnZV9zaXplPXBhZ2Vfc2l6ZSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIldlYmhvb2tQYWdpbmF0ZWRSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF93ZWJob29rc19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBvcmRlciwKICAgICAgICBwYWdlX2N1cnNvciwKICAgICAgICBwYWdlX3NpemUsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgIGlmIG9yZGVyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAKICAgICAgICAgICAgX3F1ZXJ5X3BhcmFtcy5hcHBlbmQoKCdvcmRlcicsIG9yZGVyKSkKICAgICAgICAgICAgCiAgICAgICAgaWYgcGFnZV9jdXJzb3IgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIAogICAgICAgICAgICBfcXVlcnlfcGFyYW1zLmFwcGVuZCgoJ3BhZ2VDdXJzb3InLCBwYWdlX2N1cnNvcikpCiAgICAgICAgICAgIAogICAgICAgIGlmIHBhZ2Vfc2l6ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgCiAgICAgICAgICAgIF9xdWVyeV9wYXJhbXMuYXBwZW5kKCgncGFnZVNpemUnLCBwYWdlX3NpemUpKQogICAgICAgICAgICAKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J0dFVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy93ZWJob29rcycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiByZXNlbmRfZmFpbGVkX25vdGlmaWNhdGlvbnMoCiAgICAgICAgc2VsZiwKICAgICAgICB3ZWJob29rX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB3ZWJob29rIildLAogICAgICAgIHJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19yZXF1ZXN0OiBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVxdWVzdCwKICAgICAgICBpZGVtcG90ZW5jeV9rZXk6IEFubm90YXRlZFtPcHRpb25hbFtTdHJpY3RTdHJdLCBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLiIpXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVzcG9uc2VdXToKICAgICAgICAiIiJSZXNlbmQgZmFpbGVkIG5vdGlmaWNhdGlvbnMKCiAgICAgICAgUmVzZW5kIGFsbCBmYWlsZWQgbm90aWZpY2F0aW9ucyBmb3IgYSB3ZWJob29rIGluIHRoZSBsYXN0IDI0IGhvdXJzICBFbmRwb2ludCBQZXJtaXNzaW9uOiBPd25lciwgQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBFZGl0b3IsIFNpZ25lci4gCgogICAgICAgIDpwYXJhbSB3ZWJob29rX2lkOiBUaGUgSUQgb2YgdGhlIHdlYmhvb2sgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHdlYmhvb2tfaWQ6IHN0cgogICAgICAgIDpwYXJhbSByZXNlbmRfZmFpbGVkX25vdGlmaWNhdGlvbnNfcmVxdWVzdDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19yZXF1ZXN0OiBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVxdWVzdAogICAgICAgIDpwYXJhbSBpZGVtcG90ZW5jeV9rZXk6IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4KICAgICAgICA6dHlwZSBpZGVtcG90ZW5jeV9rZXk6IHN0cgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZyhmdW5jdGlvbl9uYW1lPSJyZXNlbmRfZmFpbGVkX25vdGlmaWNhdGlvbnMiLCBwYXJhbV9uYW1lPSJ3ZWJob29rX2lkIiwgcGFyYW1fdmFsdWU9d2ViaG9va19pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fcmVzZW5kX2ZhaWxlZF9ub3RpZmljYXRpb25zX3NlcmlhbGl6ZSgKICAgICAgICAgICAgd2ViaG9va19pZD13ZWJob29rX2lkLAogICAgICAgICAgICByZXNlbmRfZmFpbGVkX25vdGlmaWNhdGlvbnNfcmVxdWVzdD1yZXNlbmRfZmFpbGVkX25vdGlmaWNhdGlvbnNfcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIlJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXNwb25zZSIsCiAgICAgICAgICAgICcyMDInOiAiUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc1Jlc3BvbnNlIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfcmVzZW5kX2ZhaWxlZF9ub3RpZmljYXRpb25zX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHdlYmhvb2tfaWQsCiAgICAgICAgcmVzZW5kX2ZhaWxlZF9ub3RpZmljYXRpb25zX3JlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB3ZWJob29rX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3dlYmhvb2tJZCddID0gd2ViaG9va19pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICBpZiBpZGVtcG90ZW5jeV9rZXkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydJZGVtcG90ZW5jeS1LZXknXSA9IGlkZW1wb3RlbmN5X2tleQogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgogICAgICAgIGlmIHJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSByZXNlbmRfZmFpbGVkX25vdGlmaWNhdGlvbnNfcmVxdWVzdAoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBDb250ZW50LVR5cGVgCiAgICAgICAgaWYgX2NvbnRlbnRfdHlwZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0NvbnRlbnQtVHlwZSddID0gX2NvbnRlbnRfdHlwZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSA9ICgKICAgICAgICAgICAgICAgIHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2NvbnRlbnRfdHlwZSgKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBfZGVmYXVsdF9jb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfZGVmYXVsdF9jb250ZW50X3R5cGUKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvd2ViaG9va3Mve3dlYmhvb2tJZH0vbm90aWZpY2F0aW9ucy9yZXNlbmRfZmFpbGVkJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgoKCiAgICBAdmFsaWRhdGVfY2FsbAogICAgZGVmIHJlc2VuZF9ub3RpZmljYXRpb25fYnlfaWQoCiAgICAgICAgc2VsZiwKICAgICAgICB3ZWJob29rX2lkOiBBbm5vdGF0ZWRbU3RyaWN0U3RyLCBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB3ZWJob29rIildLAogICAgICAgIG5vdGlmaWNhdGlvbl9pZDogQW5ub3RhdGVkW1N0cmljdFN0ciwgRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgbm90aWZpY2F0aW9uIildLAogICAgICAgIGlkZW1wb3RlbmN5X2tleTogQW5ub3RhdGVkW09wdGlvbmFsW1N0cmljdFN0cl0sIEZpZWxkKGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuIildID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBVbmlvblsKICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgIFR1cGxlWwogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0sCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXQogICAgICAgICAgICBdCiAgICAgICAgXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfYXV0aDogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfY29udGVudF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZSwKICAgICAgICBfaGVhZGVyczogT3B0aW9uYWxbRGljdFtTdHJpY3RTdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBfaG9zdF9pbmRleDogQW5ub3RhdGVkW1N0cmljdEludCwgRmllbGQoZ2U9MCwgbGU9MCldID0gMCwKICAgICkgLT4gRnV0dXJlW0FwaVJlc3BvbnNlW05vbmVdXToKICAgICAgICAiIiJSZXNlbmQgbm90aWZpY2F0aW9uIGJ5IGlkCgogICAgICAgIFJlc2VuZCBub3RpZmljYXRpb24gYnkgSUQgIEVuZHBvaW50IFBlcm1pc3Npb246IE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4sIEVkaXRvciwgU2lnbmVyLiAKCiAgICAgICAgOnBhcmFtIHdlYmhvb2tfaWQ6IFRoZSBJRCBvZiB0aGUgd2ViaG9vayAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgd2ViaG9va19pZDogc3RyCiAgICAgICAgOnBhcmFtIG5vdGlmaWNhdGlvbl9pZDogVGhlIElEIG9mIHRoZSBub3RpZmljYXRpb24gKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIG5vdGlmaWNhdGlvbl9pZDogc3RyCiAgICAgICAgOnBhcmFtIGlkZW1wb3RlbmN5X2tleTogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlcXVlc3QuIElmIHRoZSByZXF1ZXN0IGlzIHNlbnQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBpZGVtcG90ZW5jeSBrZXksIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gdGhlIHNhbWUgcmVzcG9uc2UgYXMgdGhlIGZpcnN0IHJlcXVlc3QuIFRoZSBpZGVtcG90ZW5jeSBrZXkgaXMgdmFsaWQgZm9yIDI0IGhvdXJzLgogICAgICAgIDp0eXBlIGlkZW1wb3RlbmN5X2tleTogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InJlc2VuZF9ub3RpZmljYXRpb25fYnlfaWQiLCBwYXJhbV9uYW1lPSJ3ZWJob29rX2lkIiwgcGFyYW1fdmFsdWU9d2ViaG9va19pZCkKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InJlc2VuZF9ub3RpZmljYXRpb25fYnlfaWQiLCBwYXJhbV9uYW1lPSJub3RpZmljYXRpb25faWQiLCBwYXJhbV92YWx1ZT1ub3RpZmljYXRpb25faWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3Jlc2VuZF9ub3RpZmljYXRpb25fYnlfaWRfc2VyaWFsaXplKAogICAgICAgICAgICB3ZWJob29rX2lkPXdlYmhvb2tfaWQsCiAgICAgICAgICAgIG5vdGlmaWNhdGlvbl9pZD1ub3RpZmljYXRpb25faWQsCiAgICAgICAgICAgIGlkZW1wb3RlbmN5X2tleT1pZGVtcG90ZW5jeV9rZXksCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMic6IE5vbmUsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3Jlc2VuZF9ub3RpZmljYXRpb25fYnlfaWRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgd2ViaG9va19pZCwKICAgICAgICBub3RpZmljYXRpb25faWQsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB3ZWJob29rX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3dlYmhvb2tJZCddID0gd2ViaG9va19pZAogICAgICAgIGlmIG5vdGlmaWNhdGlvbl9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWydub3RpZmljYXRpb25JZCddID0gbm90aWZpY2F0aW9uX2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGlmIGlkZW1wb3RlbmN5X2tleSBpcyBub3QgTm9uZToKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0lkZW1wb3RlbmN5LUtleSddID0gaWRlbXBvdGVuY3lfa2V5CiAgICAgICAgIyBwcm9jZXNzIHRoZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGJvZHkgcGFyYW1ldGVyCgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKCiAgICAgICAgIyBhdXRoZW50aWNhdGlvbiBzZXR0aW5nCiAgICAgICAgX2F1dGhfc2V0dGluZ3M6IExpc3Rbc3RyXSA9IFsKICAgICAgICBdCgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQucGFyYW1fc2VyaWFsaXplKAogICAgICAgICAgICBtZXRob2Q9J1BPU1QnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvd2ViaG9va3Mve3dlYmhvb2tJZH0vbm90aWZpY2F0aW9ucy97bm90aWZpY2F0aW9uSWR9L3Jlc2VuZCcsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiByZXNlbmRfbm90aWZpY2F0aW9uc19ieV9yZXNvdXJjZV9pZCgKICAgICAgICBzZWxmLAogICAgICAgIHdlYmhvb2tfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIHdlYmhvb2siKV0sCiAgICAgICAgcmVzZW5kX25vdGlmaWNhdGlvbnNfYnlfcmVzb3VyY2VfaWRfcmVxdWVzdDogUmVzZW5kTm90aWZpY2F0aW9uc0J5UmVzb3VyY2VJZFJlcXVlc3QsCiAgICAgICAgaWRlbXBvdGVuY3lfa2V5OiBBbm5vdGF0ZWRbT3B0aW9uYWxbU3RyaWN0U3RyXSwgRmllbGQoZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXF1ZXN0LiBJZiB0aGUgcmVxdWVzdCBpcyBzZW50IG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgaWRlbXBvdGVuY3kga2V5LCB0aGUgc2VydmVyIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHJlc3BvbnNlIGFzIHRoZSBmaXJzdCByZXF1ZXN0LiBUaGUgaWRlbXBvdGVuY3kga2V5IGlzIHZhbGlkIGZvciAyNCBob3Vycy4iKV0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbTm9uZV1dOgogICAgICAgICIiIlJlc2VuZCBub3RpZmljYXRpb25zIGJ5IHJlc291cmNlIElkCgogICAgICAgIFJlc2VuZCBub3RpZmljYXRpb25zIGJ5IHJlc291cmNlIElkICBFbmRwb2ludCBQZXJtaXNzaW9uOiBPd25lciwgQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLCBFZGl0b3IsIFNpZ25lci4gCgogICAgICAgIDpwYXJhbSB3ZWJob29rX2lkOiBUaGUgSUQgb2YgdGhlIHdlYmhvb2sgKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHdlYmhvb2tfaWQ6IHN0cgogICAgICAgIDpwYXJhbSByZXNlbmRfbm90aWZpY2F0aW9uc19ieV9yZXNvdXJjZV9pZF9yZXF1ZXN0OiAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgcmVzZW5kX25vdGlmaWNhdGlvbnNfYnlfcmVzb3VyY2VfaWRfcmVxdWVzdDogUmVzZW5kTm90aWZpY2F0aW9uc0J5UmVzb3VyY2VJZFJlcXVlc3QKICAgICAgICA6cGFyYW0gaWRlbXBvdGVuY3lfa2V5OiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVxdWVzdC4gSWYgdGhlIHJlcXVlc3QgaXMgc2VudCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGlkZW1wb3RlbmN5IGtleSwgdGhlIHNlcnZlciB3aWxsIHJldHVybiB0aGUgc2FtZSByZXNwb25zZSBhcyB0aGUgZmlyc3QgcmVxdWVzdC4gVGhlIGlkZW1wb3RlbmN5IGtleSBpcyB2YWxpZCBmb3IgMjQgaG91cnMuCiAgICAgICAgOnR5cGUgaWRlbXBvdGVuY3lfa2V5OiBzdHIKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgogICAgICAgIHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcoZnVuY3Rpb25fbmFtZT0icmVzZW5kX25vdGlmaWNhdGlvbnNfYnlfcmVzb3VyY2VfaWQiLCBwYXJhbV9uYW1lPSJ3ZWJob29rX2lkIiwgcGFyYW1fdmFsdWU9d2ViaG9va19pZCkKCiAgICAgICAgX3BhcmFtID0gc2VsZi5fcmVzZW5kX25vdGlmaWNhdGlvbnNfYnlfcmVzb3VyY2VfaWRfc2VyaWFsaXplKAogICAgICAgICAgICB3ZWJob29rX2lkPXdlYmhvb2tfaWQsCiAgICAgICAgICAgIHJlc2VuZF9ub3RpZmljYXRpb25zX2J5X3Jlc291cmNlX2lkX3JlcXVlc3Q9cmVzZW5kX25vdGlmaWNhdGlvbnNfYnlfcmVzb3VyY2VfaWRfcmVxdWVzdCwKICAgICAgICAgICAgaWRlbXBvdGVuY3lfa2V5PWlkZW1wb3RlbmN5X2tleSwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAyJzogTm9uZSwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfcmVzZW5kX25vdGlmaWNhdGlvbnNfYnlfcmVzb3VyY2VfaWRfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgd2ViaG9va19pZCwKICAgICAgICByZXNlbmRfbm90aWZpY2F0aW9uc19ieV9yZXNvdXJjZV9pZF9yZXF1ZXN0LAogICAgICAgIGlkZW1wb3RlbmN5X2tleSwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgd2ViaG9va19pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgX3BhdGhfcGFyYW1zWyd3ZWJob29rSWQnXSA9IHdlYmhvb2tfaWQKICAgICAgICAjIHByb2Nlc3MgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGhlYWRlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgaWRlbXBvdGVuY3lfa2V5IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snSWRlbXBvdGVuY3ktS2V5J10gPSBpZGVtcG90ZW5jeV9rZXkKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiByZXNlbmRfbm90aWZpY2F0aW9uc19ieV9yZXNvdXJjZV9pZF9yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSByZXNlbmRfbm90aWZpY2F0aW9uc19ieV9yZXNvdXJjZV9pZF9yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUE9TVCcsCiAgICAgICAgICAgIHJlc291cmNlX3BhdGg9Jy93ZWJob29rcy97d2ViaG9va0lkfS9ub3RpZmljYXRpb25zL3Jlc2VuZF9ieV9yZXNvdXJjZScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiB1cGRhdGVfd2ViaG9vaygKICAgICAgICBzZWxmLAogICAgICAgIHdlYmhvb2tfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHdlYmhvb2siKV0sCiAgICAgICAgdXBkYXRlX3dlYmhvb2tfcmVxdWVzdDogVXBkYXRlV2ViaG9va1JlcXVlc3QsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogVW5pb25bCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICBUdXBsZVsKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldLAogICAgICAgICAgICAgICAgQW5ub3RhdGVkW1N0cmljdEZsb2F0LCBGaWVsZChndD0wKV0KICAgICAgICAgICAgXQogICAgICAgIF0gPSBOb25lLAogICAgICAgIF9yZXF1ZXN0X2F1dGg6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2NvbnRlbnRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUsCiAgICAgICAgX2hlYWRlcnM6IE9wdGlvbmFsW0RpY3RbU3RyaWN0U3RyLCBBbnldXSA9IE5vbmUsCiAgICAgICAgX2hvc3RfaW5kZXg6IEFubm90YXRlZFtTdHJpY3RJbnQsIEZpZWxkKGdlPTAsIGxlPTApXSA9IDAsCiAgICApIC0+IEZ1dHVyZVtBcGlSZXNwb25zZVtXZWJob29rXV06CiAgICAgICAgIiIiVXBkYXRlIHdlYmhvb2sKCiAgICAgICAgVXBkYXRlIGEgd2ViaG9vayBieSBpdHMgaWQgIEVuZHBvaW50IFBlcm1pc3Npb246IE93bmVyLCBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4uIAoKICAgICAgICA6cGFyYW0gd2ViaG9va19pZDogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSB3ZWJob29rIChyZXF1aXJlZCkKICAgICAgICA6dHlwZSB3ZWJob29rX2lkOiBzdHIKICAgICAgICA6cGFyYW0gdXBkYXRlX3dlYmhvb2tfcmVxdWVzdDogKHJlcXVpcmVkKQogICAgICAgIDp0eXBlIHVwZGF0ZV93ZWJob29rX3JlcXVlc3Q6IFVwZGF0ZVdlYmhvb2tSZXF1ZXN0CiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9InVwZGF0ZV93ZWJob29rIiwgcGFyYW1fbmFtZT0id2ViaG9va19pZCIsIHBhcmFtX3ZhbHVlPXdlYmhvb2tfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX3VwZGF0ZV93ZWJob29rX3NlcmlhbGl6ZSgKICAgICAgICAgICAgd2ViaG9va19pZD13ZWJob29rX2lkLAogICAgICAgICAgICB1cGRhdGVfd2ViaG9va19yZXF1ZXN0PXVwZGF0ZV93ZWJob29rX3JlcXVlc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICAgICAgX2NvbnRlbnRfdHlwZT1fY29udGVudF90eXBlLAogICAgICAgICAgICBfaGVhZGVycz1faGVhZGVycywKICAgICAgICAgICAgX2hvc3RfaW5kZXg9X2hvc3RfaW5kZXgKICAgICAgICApCgogICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IHsKICAgICAgICAgICAgJzIwMCc6ICJXZWJob29rIiwKICAgICAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5jYWxsX2FwaSgKICAgICAgICAgICAgKl9wYXJhbSwKICAgICAgICAgICAgX3JlcXVlc3RfdGltZW91dD1fcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXAsCiAgICAgICAgKQoKICAgIGRlZiBfdXBkYXRlX3dlYmhvb2tfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgd2ViaG9va19pZCwKICAgICAgICB1cGRhdGVfd2ViaG9va19yZXF1ZXN0LAogICAgICAgIF9yZXF1ZXN0X2F1dGgsCiAgICAgICAgX2NvbnRlbnRfdHlwZSwKICAgICAgICBfaGVhZGVycywKICAgICAgICBfaG9zdF9pbmRleCwKICAgICkgLT4gUmVxdWVzdFNlcmlhbGl6ZWQ6CgogICAgICAgIF9ob3N0ID0gTm9uZQoKICAgICAgICBfY29sbGVjdGlvbl9mb3JtYXRzOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgICAgICB9CgogICAgICAgIF9wYXRoX3BhcmFtczogRGljdFtzdHIsIHN0cl0gPSB7fQogICAgICAgIF9xdWVyeV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2hlYWRlcl9wYXJhbXM6IERpY3Rbc3RyLCBPcHRpb25hbFtzdHJdXSA9IF9oZWFkZXJzIG9yIHt9CiAgICAgICAgX2Zvcm1fcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9maWxlczogRGljdFsKICAgICAgICAgICAgc3RyLCBVbmlvbltzdHIsIGJ5dGVzLCBMaXN0W3N0cl0sIExpc3RbYnl0ZXNdLCBMaXN0W1R1cGxlW3N0ciwgYnl0ZXNdXV0KICAgICAgICBdID0ge30KICAgICAgICBfYm9keV9wYXJhbXM6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKCiAgICAgICAgIyBwcm9jZXNzIHRoZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICBpZiB3ZWJob29rX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBfcGF0aF9wYXJhbXNbJ3dlYmhvb2tJZCddID0gd2ViaG9va19pZAogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKICAgICAgICBpZiB1cGRhdGVfd2ViaG9va19yZXF1ZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICBfYm9keV9wYXJhbXMgPSB1cGRhdGVfd2ViaG9va19yZXF1ZXN0CgoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYEFjY2VwdGAKICAgICAgICBpZiAnQWNjZXB0JyBub3QgaW4gX2hlYWRlcl9wYXJhbXM6CiAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydBY2NlcHQnXSA9IHNlbGYuYXBpX2NsaWVudC5zZWxlY3RfaGVhZGVyX2FjY2VwdCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQoKICAgICAgICAjIHNldCB0aGUgSFRUUCBoZWFkZXIgYENvbnRlbnQtVHlwZWAKICAgICAgICBpZiBfY29udGVudF90eXBlOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQ29udGVudC1UeXBlJ10gPSBfY29udGVudF90eXBlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgX2RlZmF1bHRfY29udGVudF90eXBlID0gKAogICAgICAgICAgICAgICAgc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfY29udGVudF90eXBlKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIF9kZWZhdWx0X2NvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgIF9oZWFkZXJfcGFyYW1zWydDb250ZW50LVR5cGUnXSA9IF9kZWZhdWx0X2NvbnRlbnRfdHlwZQoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nUEFUQ0gnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvd2ViaG9va3Mve3dlYmhvb2tJZH0nLAogICAgICAgICAgICBwYXRoX3BhcmFtcz1fcGF0aF9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcz1fcXVlcnlfcGFyYW1zLAogICAgICAgICAgICBoZWFkZXJfcGFyYW1zPV9oZWFkZXJfcGFyYW1zLAogICAgICAgICAgICBib2R5PV9ib2R5X3BhcmFtcywKICAgICAgICAgICAgcG9zdF9wYXJhbXM9X2Zvcm1fcGFyYW1zLAogICAgICAgICAgICBmaWxlcz1fZmlsZXMsCiAgICAgICAgICAgIGF1dGhfc2V0dGluZ3M9X2F1dGhfc2V0dGluZ3MsCiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cz1fY29sbGVjdGlvbl9mb3JtYXRzLAogICAgICAgICAgICBfaG9zdD1faG9zdCwKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoCiAgICAgICAgKQoKCg== \ No newline at end of file diff --git a/fireblocks/api/whitelist_ip_addresses_api.py b/fireblocks/api/whitelist_ip_addresses_api.py index 170eb592..47088181 100644 --- a/fireblocks/api/whitelist_ip_addresses_api.py +++ b/fireblocks/api/whitelist_ip_addresses_api.py @@ -1,173 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from pydantic import Field, StrictStr -from typing_extensions import Annotated -from fireblocks.models.get_whitelist_ip_addresses_response import GetWhitelistIpAddressesResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class WhitelistIpAddressesApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def get_whitelist_ip_addresses( - self, - user_id: Annotated[StrictStr, Field(description="The ID of the api user")], - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GetWhitelistIpAddressesResponse]]: - """Get whitelisted ip addresses for an API Key - - Get a list of the whitelisted IP addresses for a specific API Key - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions.
Endpoint Permission: Admin, Non-Signing Admin. - - :param user_id: The ID of the api user (required) - :type user_id: str - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - validate_not_empty_string(function_name="get_whitelist_ip_addresses", param_name="user_id", param_value=user_id) - - _param = self._get_whitelist_ip_addresses_serialize( - user_id=user_id, - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GetWhitelistIpAddressesResponse", - '401': "ErrorResponse", - '403': "ErrorResponse", - '5XX': "ErrorResponse", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_whitelist_ip_addresses_serialize( - self, - user_id, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - if user_id is not None: - _path_params['userId'] = user_id - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/management/api_users/{userId}/whitelist_ip_addresses', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIFN0cmljdFN0cgpmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfd2hpdGVsaXN0X2lwX2FkZHJlc3Nlc19yZXNwb25zZSBpbXBvcnQgR2V0V2hpdGVsaXN0SXBBZGRyZXNzZXNSZXNwb25zZQoKZnJvbSBmaXJlYmxvY2tzLmFwaV9jbGllbnQgaW1wb3J0IEFwaUNsaWVudCwgUmVxdWVzdFNlcmlhbGl6ZWQKZnJvbSBmaXJlYmxvY2tzLmFwaV9yZXNwb25zZSBpbXBvcnQgQXBpUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLnJlc3QgaW1wb3J0IFJFU1RSZXNwb25zZVR5cGUKZnJvbSBmaXJlYmxvY2tzLnZhbGlkYXRpb25fdXRpbHMgaW1wb3J0IHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcKCgpjbGFzcyBXaGl0ZWxpc3RJcEFkZHJlc3Nlc0FwaToKICAgICIiIk5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IKICAgIFJlZjogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgogICAgIiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwaV9jbGllbnQ9Tm9uZSkgLT4gTm9uZToKICAgICAgICBpZiBhcGlfY2xpZW50IGlzIE5vbmU6CiAgICAgICAgICAgIGFwaV9jbGllbnQgPSBBcGlDbGllbnQuZ2V0X2RlZmF1bHQoKQogICAgICAgIHNlbGYuYXBpX2NsaWVudCA9IGFwaV9jbGllbnQKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfd2hpdGVsaXN0X2lwX2FkZHJlc3NlcygKICAgICAgICBzZWxmLAogICAgICAgIHVzZXJfaWQ6IEFubm90YXRlZFtTdHJpY3RTdHIsIEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFwaSB1c2VyIildLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbR2V0V2hpdGVsaXN0SXBBZGRyZXNzZXNSZXNwb25zZV1dOgogICAgICAgICIiIkdldCB3aGl0ZWxpc3RlZCBpcCBhZGRyZXNzZXMgZm9yIGFuIEFQSSBLZXkKCiAgICAgICAgR2V0IGEgbGlzdCBvZiB0aGUgd2hpdGVsaXN0ZWQgSVAgYWRkcmVzc2VzIGZvciBhIHNwZWNpZmljIEFQSSBLZXkgLSBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgZW5kcG9pbnQgaXMgYXZhaWxhYmxlIG9ubHkgZm9yIEFQSSBrZXlzIHdpdGggQWRtaW4vTm9uIFNpZ25pbmcgQWRtaW4gcGVybWlzc2lvbnMuIDwvYnI+RW5kcG9pbnQgUGVybWlzc2lvbjogQWRtaW4sIE5vbi1TaWduaW5nIEFkbWluLgoKICAgICAgICA6cGFyYW0gdXNlcl9pZDogVGhlIElEIG9mIHRoZSBhcGkgdXNlciAocmVxdWlyZWQpCiAgICAgICAgOnR5cGUgdXNlcl9pZDogc3RyCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X3RpbWVvdXQ6IGludCwgdHVwbGUoaW50LCBpbnQpLCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfYXV0aDogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2NvbnRlbnRfdHlwZTogZm9yY2UgY29udGVudC10eXBlIGZvciB0aGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfY29udGVudF90eXBlOiBzdHIsIE9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9oZWFkZXJzOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlcnMgZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhlYWRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9oZWFkZXJzOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfaG9zdF9pbmRleDogc2V0IHRvIG92ZXJyaWRlIHRoZSBob3N0X2luZGV4IGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBob3N0X2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaG9zdF9pbmRleDogaW50LCBvcHRpb25hbAogICAgICAgIDpyZXR1cm46IFJldHVybnMgdGhlIHJlc3VsdCBvYmplY3QuCiAgICAgICAgIiIiICMgbm9xYTogRTUwMQoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU9ImdldF93aGl0ZWxpc3RfaXBfYWRkcmVzc2VzIiwgcGFyYW1fbmFtZT0idXNlcl9pZCIsIHBhcmFtX3ZhbHVlPXVzZXJfaWQpCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF93aGl0ZWxpc3RfaXBfYWRkcmVzc2VzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgdXNlcl9pZD11c2VyX2lkLAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgsCiAgICAgICAgICAgIF9jb250ZW50X3R5cGU9X2NvbnRlbnRfdHlwZSwKICAgICAgICAgICAgX2hlYWRlcnM9X2hlYWRlcnMsCiAgICAgICAgICAgIF9ob3N0X2luZGV4PV9ob3N0X2luZGV4CiAgICAgICAgKQoKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSB7CiAgICAgICAgICAgICcyMDAnOiAiR2V0V2hpdGVsaXN0SXBBZGRyZXNzZXNSZXNwb25zZSIsCiAgICAgICAgICAgICc0MDEnOiAiRXJyb3JSZXNwb25zZSIsCiAgICAgICAgICAgICc0MDMnOiAiRXJyb3JSZXNwb25zZSIsCiAgICAgICAgICAgICc1WFgnOiAiRXJyb3JSZXNwb25zZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF93aGl0ZWxpc3RfaXBfYWRkcmVzc2VzX3NlcmlhbGl6ZSgKICAgICAgICBzZWxmLAogICAgICAgIHVzZXJfaWQsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgIGlmIHVzZXJfaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIF9wYXRoX3BhcmFtc1sndXNlcklkJ10gPSB1c2VyX2lkCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbWFuYWdlbWVudC9hcGlfdXNlcnMve3VzZXJJZH0vd2hpdGVsaXN0X2lwX2FkZHJlc3NlcycsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoK \ No newline at end of file diff --git a/fireblocks/api/workspace_api.py b/fireblocks/api/workspace_api.py index cba2fa90..87d53aa1 100644 --- a/fireblocks/api/workspace_api.py +++ b/fireblocks/api/workspace_api.py @@ -1,160 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from fireblocks.models.workspace import Workspace - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class WorkspaceApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def get_workspace( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[Workspace]]: - """Get workspace - - Returns the workspace ID and name for the authenticated user. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_workspace_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "Workspace", - 'default': "ErrorSchema", - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_workspace_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/workspace', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53b3Jrc3BhY2UgaW1wb3J0IFdvcmtzcGFjZQoKZnJvbSBmaXJlYmxvY2tzLmFwaV9jbGllbnQgaW1wb3J0IEFwaUNsaWVudCwgUmVxdWVzdFNlcmlhbGl6ZWQKZnJvbSBmaXJlYmxvY2tzLmFwaV9yZXNwb25zZSBpbXBvcnQgQXBpUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLnJlc3QgaW1wb3J0IFJFU1RSZXNwb25zZVR5cGUKZnJvbSBmaXJlYmxvY2tzLnZhbGlkYXRpb25fdXRpbHMgaW1wb3J0IHZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcKCgpjbGFzcyBXb3Jrc3BhY2VBcGk6CiAgICAiIiJOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yCiAgICBSZWY6IGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaAoKICAgIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS4KICAgICIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcGlfY2xpZW50PU5vbmUpIC0+IE5vbmU6CiAgICAgICAgaWYgYXBpX2NsaWVudCBpcyBOb25lOgogICAgICAgICAgICBhcGlfY2xpZW50ID0gQXBpQ2xpZW50LmdldF9kZWZhdWx0KCkKICAgICAgICBzZWxmLmFwaV9jbGllbnQgPSBhcGlfY2xpZW50CgoKICAgIEB2YWxpZGF0ZV9jYWxsCiAgICBkZWYgZ2V0X3dvcmtzcGFjZSgKICAgICAgICBzZWxmLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbV29ya3NwYWNlXV06CiAgICAgICAgIiIiR2V0IHdvcmtzcGFjZQoKICAgICAgICBSZXR1cm5zIHRoZSB3b3Jrc3BhY2UgSUQgYW5kIG5hbWUgZm9yIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIuIAoKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuIElmIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdG90YWwgcmVxdWVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LiBJdCBjYW4gYWxzbyBiZSBhIHBhaXIgKHR1cGxlKSBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbiwgcmVhZCkgdGltZW91dHMuCiAgICAgICAgOnR5cGUgX3JlcXVlc3RfdGltZW91dDogaW50LCB0dXBsZShpbnQsIGludCksIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X2F1dGg6IHNldCB0byBvdmVycmlkZSB0aGUgYXV0aF9zZXR0aW5ncyBmb3IgYW4gYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfcmVxdWVzdF9hdXRoOiBkaWN0LCBvcHRpb25hbAogICAgICAgIDpwYXJhbSBfY29udGVudF90eXBlOiBmb3JjZSBjb250ZW50LXR5cGUgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9jb250ZW50X3R5cGU6IHN0ciwgT3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hlYWRlcnM6IHNldCB0byBvdmVycmlkZSB0aGUgaGVhZGVycyBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hlYWRlcnM6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9ob3N0X2luZGV4OiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGhvc3RfaW5kZXggZm9yIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlIGhvc3RfaW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9ob3N0X2luZGV4OiBpbnQsIG9wdGlvbmFsCiAgICAgICAgOnJldHVybjogUmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdC4KICAgICAgICAiIiIgIyBub3FhOiBFNTAxCgoKICAgICAgICBfcGFyYW0gPSBzZWxmLl9nZXRfd29ya3NwYWNlX3NlcmlhbGl6ZSgKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIldvcmtzcGFjZSIsCiAgICAgICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmLmFwaV9jbGllbnQuY2FsbF9hcGkoCiAgICAgICAgICAgICpfcGFyYW0sCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX2dldF93b3Jrc3BhY2Vfc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgX3JlcXVlc3RfYXV0aCwKICAgICAgICBfY29udGVudF90eXBlLAogICAgICAgIF9oZWFkZXJzLAogICAgICAgIF9ob3N0X2luZGV4LAogICAgKSAtPiBSZXF1ZXN0U2VyaWFsaXplZDoKCiAgICAgICAgX2hvc3QgPSBOb25lCgogICAgICAgIF9jb2xsZWN0aW9uX2Zvcm1hdHM6IERpY3Rbc3RyLCBzdHJdID0gewogICAgICAgIH0KCiAgICAgICAgX3BhdGhfcGFyYW1zOiBEaWN0W3N0ciwgc3RyXSA9IHt9CiAgICAgICAgX3F1ZXJ5X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfaGVhZGVyX3BhcmFtczogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gX2hlYWRlcnMgb3Ige30KICAgICAgICBfZm9ybV9wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgX2ZpbGVzOiBEaWN0WwogICAgICAgICAgICBzdHIsIFVuaW9uW3N0ciwgYnl0ZXMsIExpc3Rbc3RyXSwgTGlzdFtieXRlc10sIExpc3RbVHVwbGVbc3RyLCBieXRlc11dXQogICAgICAgIF0gPSB7fQogICAgICAgIF9ib2R5X3BhcmFtczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQoKICAgICAgICAjIHByb2Nlc3MgdGhlIHBhdGggcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgcXVlcnkgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgaGVhZGVyIHBhcmFtZXRlcnMKICAgICAgICAjIHByb2Nlc3MgdGhlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgYm9keSBwYXJhbWV0ZXIKCgogICAgICAgICMgc2V0IHRoZSBIVFRQIGhlYWRlciBgQWNjZXB0YAogICAgICAgIGlmICdBY2NlcHQnIG5vdCBpbiBfaGVhZGVyX3BhcmFtczoKICAgICAgICAgICAgX2hlYWRlcl9wYXJhbXNbJ0FjY2VwdCddID0gc2VsZi5hcGlfY2xpZW50LnNlbGVjdF9oZWFkZXJfYWNjZXB0KAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJwogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgoKICAgICAgICAjIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcKICAgICAgICBfYXV0aF9zZXR0aW5nczogTGlzdFtzdHJdID0gWwogICAgICAgIF0KCiAgICAgICAgcmV0dXJuIHNlbGYuYXBpX2NsaWVudC5wYXJhbV9zZXJpYWxpemUoCiAgICAgICAgICAgIG1ldGhvZD0nR0VUJywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aD0nL3dvcmtzcGFjZScsCiAgICAgICAgICAgIHBhdGhfcGFyYW1zPV9wYXRoX3BhcmFtcywKICAgICAgICAgICAgcXVlcnlfcGFyYW1zPV9xdWVyeV9wYXJhbXMsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXM9X2hlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9X2JvZHlfcGFyYW1zLAogICAgICAgICAgICBwb3N0X3BhcmFtcz1fZm9ybV9wYXJhbXMsCiAgICAgICAgICAgIGZpbGVzPV9maWxlcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncz1fYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPV9jb2xsZWN0aW9uX2Zvcm1hdHMsCiAgICAgICAgICAgIF9ob3N0PV9ob3N0LAogICAgICAgICAgICBfcmVxdWVzdF9hdXRoPV9yZXF1ZXN0X2F1dGgKICAgICAgICApCgoK \ No newline at end of file diff --git a/fireblocks/api/workspace_status_beta_api.py b/fireblocks/api/workspace_status_beta_api.py index 18ff7c96..2f6821c1 100644 --- a/fireblocks/api/workspace_status_beta_api.py +++ b/fireblocks/api/workspace_status_beta_api.py @@ -1,160 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - -import warnings -from concurrent.futures import Future -from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt -from typing import Any, Dict, List, Optional, Tuple, Union -from typing_extensions import Annotated - -from fireblocks.models.get_workspace_status_response import GetWorkspaceStatusResponse - -from fireblocks.api_client import ApiClient, RequestSerialized -from fireblocks.api_response import ApiResponse -from fireblocks.rest import RESTResponseType -from fireblocks.validation_utils import validate_not_empty_string - - -class WorkspaceStatusBetaApi: - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - def __init__(self, api_client=None) -> None: - if api_client is None: - api_client = ApiClient.get_default() - self.api_client = api_client - - - @validate_call - def get_workspace_status( - self, - _request_timeout: Union[ - None, - Annotated[StrictFloat, Field(gt=0)], - Tuple[ - Annotated[StrictFloat, Field(gt=0)], - Annotated[StrictFloat, Field(gt=0)] - ] - ] = None, - _request_auth: Optional[Dict[StrictStr, Any]] = None, - _content_type: Optional[StrictStr] = None, - _headers: Optional[Dict[StrictStr, Any]] = None, - _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Future[ApiResponse[GetWorkspaceStatusResponse]]: - """Returns current workspace status - - Returns current workspace status (Beta). **Note**: - This endpoint is now in Beta, disabled for general availability at this time. - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions.
Endpoint Permission: Admin, Non-Signing Admin. - - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :type _request_timeout: int, tuple(int, int), optional - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the - authentication in the spec for a single request. - :type _request_auth: dict, optional - :param _content_type: force content-type for the request. - :type _content_type: str, Optional - :param _headers: set to override the headers for a single - request; this effectively ignores the headers - in the spec for a single request. - :type _headers: dict, optional - :param _host_index: set to override the host_index for a single - request; this effectively ignores the host_index - in the spec for a single request. - :type _host_index: int, optional - :return: Returns the result object. - """ # noqa: E501 - - - _param = self._get_workspace_status_serialize( - _request_auth=_request_auth, - _content_type=_content_type, - _headers=_headers, - _host_index=_host_index - ) - - _response_types_map: Dict[str, Optional[str]] = { - '200': "GetWorkspaceStatusResponse", - '404': None, - } - - return self.api_client.call_api( - *_param, - _request_timeout=_request_timeout, - _response_types_map=_response_types_map, - ) - - def _get_workspace_status_serialize( - self, - _request_auth, - _content_type, - _headers, - _host_index, - ) -> RequestSerialized: - - _host = None - - _collection_formats: Dict[str, str] = { - } - - _path_params: Dict[str, str] = {} - _query_params: List[Tuple[str, str]] = [] - _header_params: Dict[str, Optional[str]] = _headers or {} - _form_params: List[Tuple[str, str]] = [] - _files: Dict[ - str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] - ] = {} - _body_params: Optional[bytes] = None - - # process the path parameters - # process the query parameters - # process the header parameters - # process the form parameters - # process the body parameter - - - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) - - - # authentication setting - _auth_settings: List[str] = [ - ] - - return self.api_client.param_serialize( - method='GET', - resource_path='/management/workspace_status', - path_params=_path_params, - query_params=_query_params, - header_params=_header_params, - body=_body_params, - post_params=_form_params, - files=_files, - auth_settings=_auth_settings, - collection_formats=_collection_formats, - _host=_host, - _request_auth=_request_auth - ) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHdhcm5pbmdzCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBGdXR1cmUKZnJvbSBweWRhbnRpYyBpbXBvcnQgdmFsaWRhdGVfY2FsbCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RTdHIsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAoKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfd29ya3NwYWNlX3N0YXR1c19yZXNwb25zZSBpbXBvcnQgR2V0V29ya3NwYWNlU3RhdHVzUmVzcG9uc2UKCmZyb20gZmlyZWJsb2Nrcy5hcGlfY2xpZW50IGltcG9ydCBBcGlDbGllbnQsIFJlcXVlc3RTZXJpYWxpemVkCmZyb20gZmlyZWJsb2Nrcy5hcGlfcmVzcG9uc2UgaW1wb3J0IEFwaVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5yZXN0IGltcG9ydCBSRVNUUmVzcG9uc2VUeXBlCmZyb20gZmlyZWJsb2Nrcy52YWxpZGF0aW9uX3V0aWxzIGltcG9ydCB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nCgoKY2xhc3MgV29ya3NwYWNlU3RhdHVzQmV0YUFwaToKICAgICIiIk5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IKICAgIFJlZjogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgogICAgIiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwaV9jbGllbnQ9Tm9uZSkgLT4gTm9uZToKICAgICAgICBpZiBhcGlfY2xpZW50IGlzIE5vbmU6CiAgICAgICAgICAgIGFwaV9jbGllbnQgPSBBcGlDbGllbnQuZ2V0X2RlZmF1bHQoKQogICAgICAgIHNlbGYuYXBpX2NsaWVudCA9IGFwaV9jbGllbnQKCgogICAgQHZhbGlkYXRlX2NhbGwKICAgIGRlZiBnZXRfd29ya3NwYWNlX3N0YXR1cygKICAgICAgICBzZWxmLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ6IFVuaW9uWwogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgVHVwbGVbCiAgICAgICAgICAgICAgICBBbm5vdGF0ZWRbU3RyaWN0RmxvYXQsIEZpZWxkKGd0PTApXSwKICAgICAgICAgICAgICAgIEFubm90YXRlZFtTdHJpY3RGbG9hdCwgRmllbGQoZ3Q9MCldCiAgICAgICAgICAgIF0KICAgICAgICBdID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9jb250ZW50X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lLAogICAgICAgIF9oZWFkZXJzOiBPcHRpb25hbFtEaWN0W1N0cmljdFN0ciwgQW55XV0gPSBOb25lLAogICAgICAgIF9ob3N0X2luZGV4OiBBbm5vdGF0ZWRbU3RyaWN0SW50LCBGaWVsZChnZT0wLCBsZT0wKV0gPSAwLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbR2V0V29ya3NwYWNlU3RhdHVzUmVzcG9uc2VdXToKICAgICAgICAiIiJSZXR1cm5zIGN1cnJlbnQgd29ya3NwYWNlIHN0YXR1cwoKICAgICAgICBSZXR1cm5zIGN1cnJlbnQgd29ya3NwYWNlIHN0YXR1cyAoQmV0YSkuICoqTm90ZSoqOiAtIFRoaXMgZW5kcG9pbnQgaXMgbm93IGluIEJldGEsIGRpc2FibGVkIGZvciBnZW5lcmFsIGF2YWlsYWJpbGl0eSBhdCB0aGlzIHRpbWUuIC0gUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGVuZHBvaW50IGlzIGF2YWlsYWJsZSBvbmx5IGZvciBBUEkga2V5cyB3aXRoIEFkbWluL05vbiBTaWduaW5nIEFkbWluIHBlcm1pc3Npb25zLiAgPC9icj5FbmRwb2ludCBQZXJtaXNzaW9uOiBBZG1pbiwgTm9uLVNpZ25pbmcgQWRtaW4uCgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF90aW1lb3V0OiB0aW1lb3V0IHNldHRpbmcgZm9yIHRoaXMgcmVxdWVzdC4gSWYgb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBwcm92aWRlZCwgaXQgd2lsbCBiZSB0b3RhbCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQuIEl0IGNhbiBhbHNvIGJlIGEgcGFpciAodHVwbGUpIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uZWN0aW9uLCByZWFkKSB0aW1lb3V0cy4KICAgICAgICA6dHlwZSBfcmVxdWVzdF90aW1lb3V0OiBpbnQsIHR1cGxlKGludCwgaW50KSwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX3JlcXVlc3RfYXV0aDogc2V0IHRvIG92ZXJyaWRlIHRoZSBhdXRoX3NldHRpbmdzIGZvciBhbiBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0OyB0aGlzIGVmZmVjdGl2ZWx5IGlnbm9yZXMgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGluIHRoZSBzcGVjIGZvciBhIHNpbmdsZSByZXF1ZXN0LgogICAgICAgIDp0eXBlIF9yZXF1ZXN0X2F1dGg6IGRpY3QsIG9wdGlvbmFsCiAgICAgICAgOnBhcmFtIF9jb250ZW50X3R5cGU6IGZvcmNlIGNvbnRlbnQtdHlwZSBmb3IgdGhlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2NvbnRlbnRfdHlwZTogc3RyLCBPcHRpb25hbAogICAgICAgIDpwYXJhbSBfaGVhZGVyczogc2V0IHRvIG92ZXJyaWRlIHRoZSBoZWFkZXJzIGZvciBhIHNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDsgdGhpcyBlZmZlY3RpdmVseSBpZ25vcmVzIHRoZSBoZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3BlYyBmb3IgYSBzaW5nbGUgcmVxdWVzdC4KICAgICAgICA6dHlwZSBfaGVhZGVyczogZGljdCwgb3B0aW9uYWwKICAgICAgICA6cGFyYW0gX2hvc3RfaW5kZXg6IHNldCB0byBvdmVycmlkZSB0aGUgaG9zdF9pbmRleCBmb3IgYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgaG9zdF9pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnR5cGUgX2hvc3RfaW5kZXg6IGludCwgb3B0aW9uYWwKICAgICAgICA6cmV0dXJuOiBSZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0LgogICAgICAgICIiIiAjIG5vcWE6IEU1MDEKCgogICAgICAgIF9wYXJhbSA9IHNlbGYuX2dldF93b3Jrc3BhY2Vfc3RhdHVzX3NlcmlhbGl6ZSgKICAgICAgICAgICAgX3JlcXVlc3RfYXV0aD1fcmVxdWVzdF9hdXRoLAogICAgICAgICAgICBfY29udGVudF90eXBlPV9jb250ZW50X3R5cGUsCiAgICAgICAgICAgIF9oZWFkZXJzPV9oZWFkZXJzLAogICAgICAgICAgICBfaG9zdF9pbmRleD1faG9zdF9pbmRleAogICAgICAgICkKCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogRGljdFtzdHIsIE9wdGlvbmFsW3N0cl1dID0gewogICAgICAgICAgICAnMjAwJzogIkdldFdvcmtzcGFjZVN0YXR1c1Jlc3BvbnNlIiwKICAgICAgICAgICAgJzQwNCc6IE5vbmUsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LmNhbGxfYXBpKAogICAgICAgICAgICAqX3BhcmFtLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0PV9yZXF1ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIF9nZXRfd29ya3NwYWNlX3N0YXR1c19zZXJpYWxpemUoCiAgICAgICAgc2VsZiwKICAgICAgICBfcmVxdWVzdF9hdXRoLAogICAgICAgIF9jb250ZW50X3R5cGUsCiAgICAgICAgX2hlYWRlcnMsCiAgICAgICAgX2hvc3RfaW5kZXgsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgoKICAgICAgICBfaG9zdCA9IE5vbmUKCiAgICAgICAgX2NvbGxlY3Rpb25fZm9ybWF0czogRGljdFtzdHIsIHN0cl0gPSB7CiAgICAgICAgfQoKICAgICAgICBfcGF0aF9wYXJhbXM6IERpY3Rbc3RyLCBzdHJdID0ge30KICAgICAgICBfcXVlcnlfcGFyYW1zOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQogICAgICAgIF9oZWFkZXJfcGFyYW1zOiBEaWN0W3N0ciwgT3B0aW9uYWxbc3RyXV0gPSBfaGVhZGVycyBvciB7fQogICAgICAgIF9mb3JtX3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBfZmlsZXM6IERpY3RbCiAgICAgICAgICAgIHN0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgTGlzdFtUdXBsZVtzdHIsIGJ5dGVzXV1dCiAgICAgICAgXSA9IHt9CiAgICAgICAgX2JvZHlfcGFyYW1zOiBPcHRpb25hbFtieXRlc10gPSBOb25lCgogICAgICAgICMgcHJvY2VzcyB0aGUgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgICMgcHJvY2VzcyB0aGUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgIyBwcm9jZXNzIHRoZSBib2R5IHBhcmFtZXRlcgoKCiAgICAgICAgIyBzZXQgdGhlIEhUVFAgaGVhZGVyIGBBY2NlcHRgCiAgICAgICAgaWYgJ0FjY2VwdCcgbm90IGluIF9oZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBfaGVhZGVyX3BhcmFtc1snQWNjZXB0J10gPSBzZWxmLmFwaV9jbGllbnQuc2VsZWN0X2hlYWRlcl9hY2NlcHQoCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKCgogICAgICAgICMgYXV0aGVudGljYXRpb24gc2V0dGluZwogICAgICAgIF9hdXRoX3NldHRpbmdzOiBMaXN0W3N0cl0gPSBbCiAgICAgICAgXQoKICAgICAgICByZXR1cm4gc2VsZi5hcGlfY2xpZW50LnBhcmFtX3NlcmlhbGl6ZSgKICAgICAgICAgICAgbWV0aG9kPSdHRVQnLAogICAgICAgICAgICByZXNvdXJjZV9wYXRoPScvbWFuYWdlbWVudC93b3Jrc3BhY2Vfc3RhdHVzJywKICAgICAgICAgICAgcGF0aF9wYXJhbXM9X3BhdGhfcGFyYW1zLAogICAgICAgICAgICBxdWVyeV9wYXJhbXM9X3F1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgaGVhZGVyX3BhcmFtcz1faGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keT1fYm9keV9wYXJhbXMsCiAgICAgICAgICAgIHBvc3RfcGFyYW1zPV9mb3JtX3BhcmFtcywKICAgICAgICAgICAgZmlsZXM9X2ZpbGVzLAogICAgICAgICAgICBhdXRoX3NldHRpbmdzPV9hdXRoX3NldHRpbmdzLAogICAgICAgICAgICBjb2xsZWN0aW9uX2Zvcm1hdHM9X2NvbGxlY3Rpb25fZm9ybWF0cywKICAgICAgICAgICAgX2hvc3Q9X2hvc3QsCiAgICAgICAgICAgIF9yZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aAogICAgICAgICkKCgo= \ No newline at end of file diff --git a/fireblocks/api_client.py b/fireblocks/api_client.py index be546119..a3edfa08 100644 --- a/fireblocks/api_client.py +++ b/fireblocks/api_client.py @@ -1,763 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import datetime -from dateutil.parser import parse -from enum import Enum -import decimal -import json -import mimetypes -import os -import re -import tempfile -import warnings - -from urllib.parse import quote -from typing import Tuple, Optional, List, Dict, Union, Any -from pydantic import SecretStr - -from fireblocks.configuration import Configuration -from fireblocks.unknown_model import create_unknown_model -from fireblocks.api_response import ApiResponse, T as ApiResponseT -import fireblocks.models -from fireblocks import rest -from fireblocks.exceptions import ( - ApiValueError, - ApiException, - BadRequestException, - UnauthorizedException, - ForbiddenException, - NotFoundException, - ServiceException, -) - -RequestSerialized = Tuple[str, str, Dict[str, str], Optional[str], List[str]] - - -class ApiClient: - """Generic API client for OpenAPI client library builds. - - OpenAPI generic API client. This client handles the client- - server communication, and is invariant across implementations. Specifics of - the methods and models for each application are generated from the OpenAPI - templates. - - :param configuration: .Configuration object for this client - :param header_name: a header to pass when making calls to the API. - :param header_value: a header value to pass when making calls to - the API. - :param cookie: a cookie to include in the header when making calls - to the API - """ - - PRIMITIVE_TYPES = (float, bool, bytes, str, int) - NATIVE_TYPES_MAPPING = { - "int": int, - "long": int, # TODO remove as only py3 is supported? - "float": float, - "str": str, - "bool": bool, - "date": datetime.date, - "datetime": datetime.datetime, - "decimal": decimal.Decimal, - "object": object, - } - _pool = None - - def __init__( - self, configuration=None, header_name=None, header_value=None, cookie=None - ) -> None: - # use default configuration if none is provided - if configuration is None: - configuration = Configuration.get_default() - self.configuration = configuration - - self.rest_client = rest.RESTClientObject(configuration) - self.default_headers = {} - if header_name is not None: - self.default_headers[header_name] = header_value - self.cookie = cookie - # Set default User-Agent. - self.user_agent = "fireblocks/sdk/python" - self.client_side_validation = configuration.client_side_validation - - def __enter__(self): - return self - - def __exit__(self, exc_type, exc_value, traceback): - pass - - @property - def user_agent(self): - """User agent for this API client""" - return self.default_headers["User-Agent"] - - @user_agent.setter - def user_agent(self, value): - self.default_headers["User-Agent"] = value - - def set_default_header(self, header_name, header_value): - self.default_headers[header_name] = header_value - - _default = None - - @classmethod - def get_default(cls): - """Return new instance of ApiClient. - - This method returns newly created, based on default constructor, - object of ApiClient class or returns a copy of default - ApiClient. - - :return: The ApiClient object. - """ - if cls._default is None: - cls._default = ApiClient() - return cls._default - - @classmethod - def set_default(cls, default): - """Set default instance of ApiClient. - - It stores default ApiClient. - - :param default: object of ApiClient. - """ - cls._default = default - - def param_serialize( - self, - method, - resource_path, - path_params=None, - query_params=None, - header_params=None, - body=None, - post_params=None, - files=None, - auth_settings=None, - collection_formats=None, - _host=None, - _request_auth=None, - ) -> RequestSerialized: - """Builds the HTTP request params needed by the request. - :param method: Method to call. - :param resource_path: Path to method endpoint. - :param path_params: Path parameters in the url. - :param query_params: Query parameters in the url. - :param header_params: Header parameters to be - placed in the request header. - :param body: Request body. - :param post_params dict: Request post form parameters, - for `application/x-www-form-urlencoded`, `multipart/form-data`. - :param auth_settings list: Auth Settings names for the request. - :param files dict: key -> filename, value -> filepath, - for `multipart/form-data`. - :param collection_formats: dict of collection formats for path, query, - header, and post parameters. - :param _request_auth: set to override the auth_settings for an a single - request; this effectively ignores the authentication - in the spec for a single request. - :return: tuple of form (path, http_method, query_params, header_params, - body, post_params, files) - """ - - config = self.configuration - - # header parameters - header_params = header_params or {} - header_params.update(self.default_headers) - if self.cookie: - header_params["Cookie"] = self.cookie - if header_params: - header_params = self.sanitize_for_serialization(header_params) - header_params = dict( - self.parameters_to_tuples(header_params, collection_formats) - ) - - # path parameters - if path_params: - path_params = self.sanitize_for_serialization(path_params) - path_params = self.parameters_to_tuples(path_params, collection_formats) - for k, v in path_params: - # specified safe chars, encode everything - resource_path = resource_path.replace( - "{%s}" % k, quote(str(v), safe=config.safe_chars_for_path_param) - ) - - # post parameters - if post_params or files: - post_params = post_params if post_params else [] - post_params = self.sanitize_for_serialization(post_params) - post_params = self.parameters_to_tuples(post_params, collection_formats) - if files: - post_params.extend(self.files_parameters(files)) - - # auth setting - self.update_params_for_auth( - header_params, - query_params, - auth_settings, - resource_path, - method, - body, - request_auth=_request_auth, - ) - - # body - if body: - body = self.sanitize_for_serialization(body) - - # request url - if _host is None or self.configuration.ignore_operation_servers: - url = self.configuration.host + resource_path - else: - # use server/host defined in path or operation instead - url = _host + resource_path - - # query parameters - if query_params: - query_params = self.sanitize_for_serialization(query_params) - url_query = self.parameters_to_url_query(query_params, collection_formats) - url += "?" + url_query - - return method, url, header_params, body, post_params - - def call_api( - self, - method: str, - url: str, - header_params: Optional[Dict[str, Any]] = None, - body: Optional[Any] = None, - post_params: Optional[List[Tuple[str, Any]]] = None, - _request_timeout: Optional[Union[int, float, Tuple]] = None, - _response_types_map: Optional[Dict[str, ApiResponseT]] = None, - ) -> ApiResponse[ApiResponseT]: - """Makes the HTTP request (synchronous) - :param method: Method to call. - :param url: Path to method endpoint. - :param header_params: Header parameters to be - placed in the request header. - :param body: Request body. - :param post_params dict: Request post form parameters, - for `application/x-www-form-urlencoded`, `multipart/form-data`. - :param _request_timeout: timeout setting for this request. - :return: RESTResponse - """ - # perform request and return response - response_data = self.rest_client.request( - method, - url, - headers=header_params, - body=body, - post_params=post_params, - _request_timeout=_request_timeout, - ) - response_data.read() - return self.response_deserialize( - response_data=response_data, - response_types_map=_response_types_map, - ) - - def response_deserialize( - self, - response_data: rest.RESTResponse, - response_types_map: Optional[Dict[str, ApiResponseT]] = None, - ) -> ApiResponse[ApiResponseT]: - """Deserializes response into an object. - :param response_data: RESTResponse object to be deserialized. - :param response_types_map: dict of response types. - :return: ApiResponse - """ - - msg = "RESTResponse.read() must be called before passing it to response_deserialize()" - assert response_data.data is not None, msg - - if response_types_map is None: - response_types_map = {} - - response_type = response_types_map.get( - str(response_data.status), response_types_map.get("default", None) - ) - if ( - not response_type - and isinstance(response_data.status, int) - and 100 <= response_data.status <= 599 - ): - # if not found, look for '1XX', '2XX', etc. - response_type = response_types_map.get( - str(response_data.status)[0] + "XX", None - ) - - # deserialize response data - response_text = None - return_data = None - try: - if response_type == "bytearray": - return_data = response_data.data - elif response_type == "file": - return_data = self.__deserialize_file(response_data) - elif response_type is not None: - match = None - content_type = response_data.getheader("content-type") - if content_type is not None: - match = re.search(r"charset=([a-zA-Z\-\d]+)[\s;]?", content_type) - encoding = match.group(1) if match else "utf-8" - response_text = response_data.data.decode(encoding) - if response_type in ["bytearray", "str"]: - return_data = self.__deserialize_primitive( - response_text, response_type - ) - else: - try: - return_data = self.deserialize(response_text, response_type) - except Exception as e: - warnings.warn( - f"Failed to deserialize response of type {response_type}: {e}" - ) - data = json.loads(response_text) - if isinstance(data, dict): - return_data = create_unknown_model(data).parse_obj(data) - elif isinstance(data, list): - return_data = [ - create_unknown_model(item).parse_obj(item) - for item in data - ] - else: - raise TypeError( - "Data must be a dictionary or a list of dictionaries" - ) - finally: - if not 200 <= response_data.status <= 299: - raise ApiException.from_response( - http_resp=response_data, - body=response_text, - data=return_data, - ) - - return ApiResponse( - status_code=response_data.status, - data=return_data, - headers=response_data.getheaders(), - raw_data=response_data.data, - ) - - def sanitize_for_serialization(self, obj): - """Builds a JSON POST object. - - If obj is None, return None. - If obj is SecretStr, return obj.get_secret_value() - If obj is str, int, long, float, bool, return directly. - If obj is datetime.datetime, datetime.date - convert to string in iso8601 format. - If obj is decimal.Decimal return string representation. - If obj is list, sanitize each element in the list. - If obj is dict, return the dict. - If obj is OpenAPI model, return the properties dict. - - :param obj: The data to serialize. - :return: The serialized form of data. - """ - if obj is None: - return None - elif isinstance(obj, Enum): - return obj.value - elif isinstance(obj, SecretStr): - return obj.get_secret_value() - elif isinstance(obj, self.PRIMITIVE_TYPES): - return obj - elif isinstance(obj, list): - return [self.sanitize_for_serialization(sub_obj) for sub_obj in obj] - elif isinstance(obj, tuple): - return tuple(self.sanitize_for_serialization(sub_obj) for sub_obj in obj) - elif isinstance(obj, (datetime.datetime, datetime.date)): - return obj.isoformat() - elif isinstance(obj, decimal.Decimal): - return str(obj) - - elif isinstance(obj, dict): - obj_dict = obj - else: - # Convert model obj to dict except - # attributes `openapi_types`, `attribute_map` - # and attributes which value is not None. - # Convert attribute name to json key in - # model definition for request. - if hasattr(obj, "to_dict") and callable(getattr(obj, "to_dict")): - obj_dict = obj.to_dict() - else: - obj_dict = obj.__dict__ - - return { - key: self.sanitize_for_serialization(val) for key, val in obj_dict.items() - } - - def deserialize(self, response_text, response_type): - """Deserializes response into an object. - - :param response: RESTResponse object to be deserialized. - :param response_type: class literal for - deserialized object, or string of class name. - - :return: deserialized object. - """ - - # fetch data from response object - try: - data = json.loads(response_text) - except ValueError: - data = response_text - - return self.__deserialize(data, response_type) - - def __deserialize(self, data, klass): - """Deserializes dict, list, str into an object. - - :param data: dict, list or str. - :param klass: class literal, or string of class name. - - :return: object. - """ - if data is None: - return None - - if isinstance(klass, str): - if klass.startswith("List["): - m = re.match(r"List\[(.*)]", klass) - assert m is not None, "Malformed List type definition" - sub_kls = m.group(1) - return [self.__deserialize(sub_data, sub_kls) for sub_data in data] - - if klass.startswith("Dict["): - m = re.match(r"Dict\[([^,]*), (.*)]", klass) - assert m is not None, "Malformed Dict type definition" - sub_kls = m.group(2) - return {k: self.__deserialize(v, sub_kls) for k, v in data.items()} - - # convert str to class - if klass in self.NATIVE_TYPES_MAPPING: - klass = self.NATIVE_TYPES_MAPPING[klass] - else: - klass = getattr(fireblocks.models, klass) - - if klass in self.PRIMITIVE_TYPES: - return self.__deserialize_primitive(data, klass) - elif klass == object: - return self.__deserialize_object(data) - elif klass == datetime.date: - return self.__deserialize_date(data) - elif klass == datetime.datetime: - return self.__deserialize_datetime(data) - elif klass == decimal.Decimal: - return decimal.Decimal(data) - elif issubclass(klass, Enum): - return self.__deserialize_enum(data, klass) - else: - return self.__deserialize_model(data, klass) - - def parameters_to_tuples(self, params, collection_formats): - """Get parameters as list of tuples, formatting collections. - - :param params: Parameters as dict or list of two-tuples - :param dict collection_formats: Parameter collection formats - :return: Parameters as list of tuples, collections formatted - """ - new_params: List[Tuple[str, str]] = [] - if collection_formats is None: - collection_formats = {} - for k, v in params.items() if isinstance(params, dict) else params: - if k in collection_formats: - collection_format = collection_formats[k] - if collection_format == "multi": - new_params.extend((k, value) for value in v) - else: - if collection_format == "ssv": - delimiter = " " - elif collection_format == "tsv": - delimiter = "\t" - elif collection_format == "pipes": - delimiter = "|" - else: # csv is the default - delimiter = "," - new_params.append((k, delimiter.join(str(value) for value in v))) - else: - new_params.append((k, v)) - return new_params - - def parameters_to_url_query(self, params, collection_formats): - """Get parameters as list of tuples, formatting collections. - - :param params: Parameters as dict or list of two-tuples - :param dict collection_formats: Parameter collection formats - :return: URL query string (e.g. a=Hello%20World&b=123) - """ - new_params: List[Tuple[str, str]] = [] - if collection_formats is None: - collection_formats = {} - for k, v in params.items() if isinstance(params, dict) else params: - if isinstance(v, bool): - v = str(v).lower() - if isinstance(v, (int, float)): - v = str(v) - if isinstance(v, dict): - v = json.dumps(v) - - if k in collection_formats: - collection_format = collection_formats[k] - if collection_format == "multi": - new_params.extend((k, quote(str(value))) for value in v) - else: - if collection_format == "ssv": - delimiter = " " - elif collection_format == "tsv": - delimiter = "\t" - elif collection_format == "pipes": - delimiter = "|" - else: # csv is the default - delimiter = "," - new_params.append( - (k, delimiter.join(quote(str(value)) for value in v)) - ) - else: - new_params.append((k, quote(str(v)))) - - return "&".join(["=".join(map(str, item)) for item in new_params]) - - def files_parameters( - self, - files: Dict[str, Union[str, bytes, List[str], List[bytes], Tuple[str, bytes]]], - ): - """Builds form parameters. - - :param files: File parameters. - :return: Form parameters with files. - """ - params = [] - for k, v in files.items(): - if isinstance(v, str): - with open(v, "rb") as f: - filename = os.path.basename(f.name) - filedata = f.read() - elif isinstance(v, bytes): - filename = k - filedata = v - elif isinstance(v, tuple): - filename, filedata = v - elif isinstance(v, list): - for file_param in v: - params.extend(self.files_parameters({k: file_param})) - continue - else: - raise ValueError("Unsupported file value") - mimetype = mimetypes.guess_type(filename)[0] or "application/octet-stream" - params.append(tuple([k, tuple([filename, filedata, mimetype])])) - return params - - def select_header_accept(self, accepts: List[str]) -> Optional[str]: - """Returns `Accept` based on an array of accepts provided. - - :param accepts: List of headers. - :return: Accept (e.g. application/json). - """ - if not accepts: - return None - - for accept in accepts: - if re.search("json", accept, re.IGNORECASE): - return accept - - return accepts[0] - - def select_header_content_type(self, content_types): - """Returns `Content-Type` based on an array of content_types provided. - - :param content_types: List of content-types. - :return: Content-Type (e.g. application/json). - """ - if not content_types: - return None - - for content_type in content_types: - if re.search("json", content_type, re.IGNORECASE): - return content_type - - return content_types[0] - - def update_params_for_auth( - self, - headers, - queries, - auth_settings, - resource_path, - method, - body, - request_auth=None, - ) -> None: - """Updates header and query params based on authentication setting. - - :param headers: Header parameters dict to be updated. - :param queries: Query parameters tuple list to be updated. - :param auth_settings: Authentication setting identifiers list. - :resource_path: A string representation of the HTTP request resource path. - :method: A string representation of the HTTP request method. - :body: A object representing the body of the HTTP request. - The object type is the return value of sanitize_for_serialization(). - :param request_auth: if set, the provided settings will - override the token in the configuration. - """ - if not auth_settings: - return - - if request_auth: - self._apply_auth_params( - headers, queries, resource_path, method, body, request_auth - ) - else: - for auth in auth_settings: - auth_setting = self.configuration.auth_settings().get(auth) - if auth_setting: - self._apply_auth_params( - headers, queries, resource_path, method, body, auth_setting - ) - - def _apply_auth_params( - self, headers, queries, resource_path, method, body, auth_setting - ) -> None: - """Updates the request parameters based on a single auth_setting - - :param headers: Header parameters dict to be updated. - :param queries: Query parameters tuple list to be updated. - :resource_path: A string representation of the HTTP request resource path. - :method: A string representation of the HTTP request method. - :body: A object representing the body of the HTTP request. - The object type is the return value of sanitize_for_serialization(). - :param auth_setting: auth settings for the endpoint - """ - if auth_setting["in"] == "cookie": - headers["Cookie"] = auth_setting["value"] - elif auth_setting["in"] == "header": - if auth_setting["type"] != "http-signature": - headers[auth_setting["key"]] = auth_setting["value"] - elif auth_setting["in"] == "query": - queries.append((auth_setting["key"], auth_setting["value"])) - else: - raise ApiValueError("Authentication token must be in `query` or `header`") - - def __deserialize_file(self, response): - """Deserializes body to file - - Saves response body into a file in a temporary folder, - using the filename from the `Content-Disposition` header if provided. - - handle file downloading - save response body into a tmp file and return the instance - - :param response: RESTResponse. - :return: file path. - """ - fd, path = tempfile.mkstemp(dir=self.configuration.temp_folder_path) - os.close(fd) - os.remove(path) - - content_disposition = response.getheader("Content-Disposition") - if content_disposition: - m = re.search(r'filename=[\'"]?([^\'"\s]+)[\'"]?', content_disposition) - assert m is not None, "Unexpected 'content-disposition' header value" - filename = m.group(1) - path = os.path.join(os.path.dirname(path), filename) - - with open(path, "wb") as f: - f.write(response.data) - - return path - - def __deserialize_primitive(self, data, klass): - """Deserializes string to primitive type. - - :param data: str. - :param klass: class literal. - - :return: int, long, float, str, bool. - """ - try: - return klass(data) - except UnicodeEncodeError: - return str(data) - except TypeError: - return data - - def __deserialize_object(self, value): - """Return an original value. - - :return: object. - """ - return value - - def __deserialize_date(self, string): - """Deserializes string to date. - - :param string: str. - :return: date. - """ - try: - return parse(string).date() - except ImportError: - return string - except ValueError: - raise rest.ApiException( - status=0, reason="Failed to parse `{0}` as date object".format(string) - ) - - def __deserialize_datetime(self, string): - """Deserializes string to datetime. - - The string should be in iso8601 datetime format. - - :param string: str. - :return: datetime. - """ - try: - return parse(string) - except ImportError: - return string - except ValueError: - raise rest.ApiException( - status=0, - reason=("Failed to parse `{0}` as datetime object".format(string)), - ) - - def __deserialize_enum(self, data, klass): - """Deserializes primitive type to enum. - - :param data: primitive type. - :param klass: class literal. - :return: enum value. - """ - try: - return klass(data) - except ValueError: - raise rest.ApiException( - status=0, reason=("Failed to parse `{0}` as `{1}`".format(data, klass)) - ) - - def __deserialize_model(self, data, klass): - """Deserializes list or dict to model. - - :param data: dict, list. - :param klass: class literal. - :return: model object. - """ - - return klass.from_dict(data) +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IGRhdGV0aW1lCmZyb20gZGF0ZXV0aWwucGFyc2VyIGltcG9ydCBwYXJzZQpmcm9tIGVudW0gaW1wb3J0IEVudW0KaW1wb3J0IGRlY2ltYWwKaW1wb3J0IGpzb24KaW1wb3J0IG1pbWV0eXBlcwppbXBvcnQgb3MKaW1wb3J0IHJlCmltcG9ydCB0ZW1wZmlsZQppbXBvcnQgd2FybmluZ3MKCmZyb20gdXJsbGliLnBhcnNlIGltcG9ydCBxdW90ZQpmcm9tIHR5cGluZyBpbXBvcnQgVHVwbGUsIE9wdGlvbmFsLCBMaXN0LCBEaWN0LCBVbmlvbiwgQW55CmZyb20gcHlkYW50aWMgaW1wb3J0IFNlY3JldFN0cgoKZnJvbSBmaXJlYmxvY2tzLmNvbmZpZ3VyYXRpb24gaW1wb3J0IENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLnVua25vd25fbW9kZWwgaW1wb3J0IGNyZWF0ZV91bmtub3duX21vZGVsCmZyb20gZmlyZWJsb2Nrcy5hcGlfcmVzcG9uc2UgaW1wb3J0IEFwaVJlc3BvbnNlLCBUIGFzIEFwaVJlc3BvbnNlVAppbXBvcnQgZmlyZWJsb2Nrcy5tb2RlbHMKZnJvbSBmaXJlYmxvY2tzIGltcG9ydCByZXN0CmZyb20gZmlyZWJsb2Nrcy5leGNlcHRpb25zIGltcG9ydCAoCiAgICBBcGlWYWx1ZUVycm9yLAogICAgQXBpRXhjZXB0aW9uLAogICAgQmFkUmVxdWVzdEV4Y2VwdGlvbiwKICAgIFVuYXV0aG9yaXplZEV4Y2VwdGlvbiwKICAgIEZvcmJpZGRlbkV4Y2VwdGlvbiwKICAgIE5vdEZvdW5kRXhjZXB0aW9uLAogICAgU2VydmljZUV4Y2VwdGlvbiwKKQoKUmVxdWVzdFNlcmlhbGl6ZWQgPSBUdXBsZVtzdHIsIHN0ciwgRGljdFtzdHIsIHN0cl0sIE9wdGlvbmFsW3N0cl0sIExpc3Rbc3RyXV0KCgpjbGFzcyBBcGlDbGllbnQ6CiAgICAiIiJHZW5lcmljIEFQSSBjbGllbnQgZm9yIE9wZW5BUEkgY2xpZW50IGxpYnJhcnkgYnVpbGRzLgoKICAgIE9wZW5BUEkgZ2VuZXJpYyBBUEkgY2xpZW50LiBUaGlzIGNsaWVudCBoYW5kbGVzIHRoZSBjbGllbnQtCiAgICBzZXJ2ZXIgY29tbXVuaWNhdGlvbiwgYW5kIGlzIGludmFyaWFudCBhY3Jvc3MgaW1wbGVtZW50YXRpb25zLiBTcGVjaWZpY3Mgb2YKICAgIHRoZSBtZXRob2RzIGFuZCBtb2RlbHMgZm9yIGVhY2ggYXBwbGljYXRpb24gYXJlIGdlbmVyYXRlZCBmcm9tIHRoZSBPcGVuQVBJCiAgICB0ZW1wbGF0ZXMuCgogICAgOnBhcmFtIGNvbmZpZ3VyYXRpb246IC5Db25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhpcyBjbGllbnQKICAgIDpwYXJhbSBoZWFkZXJfbmFtZTogYSBoZWFkZXIgdG8gcGFzcyB3aGVuIG1ha2luZyBjYWxscyB0byB0aGUgQVBJLgogICAgOnBhcmFtIGhlYWRlcl92YWx1ZTogYSBoZWFkZXIgdmFsdWUgdG8gcGFzcyB3aGVuIG1ha2luZyBjYWxscyB0bwogICAgICAgIHRoZSBBUEkuCiAgICA6cGFyYW0gY29va2llOiBhIGNvb2tpZSB0byBpbmNsdWRlIGluIHRoZSBoZWFkZXIgd2hlbiBtYWtpbmcgY2FsbHMKICAgICAgICB0byB0aGUgQVBJCiAgICAiIiIKCiAgICBQUklNSVRJVkVfVFlQRVMgPSAoZmxvYXQsIGJvb2wsIGJ5dGVzLCBzdHIsIGludCkKICAgIE5BVElWRV9UWVBFU19NQVBQSU5HID0gewogICAgICAgICJpbnQiOiBpbnQsCiAgICAgICAgImxvbmciOiBpbnQsICAjIFRPRE8gcmVtb3ZlIGFzIG9ubHkgcHkzIGlzIHN1cHBvcnRlZD8KICAgICAgICAiZmxvYXQiOiBmbG9hdCwKICAgICAgICAic3RyIjogc3RyLAogICAgICAgICJib29sIjogYm9vbCwKICAgICAgICAiZGF0ZSI6IGRhdGV0aW1lLmRhdGUsCiAgICAgICAgImRhdGV0aW1lIjogZGF0ZXRpbWUuZGF0ZXRpbWUsCiAgICAgICAgImRlY2ltYWwiOiBkZWNpbWFsLkRlY2ltYWwsCiAgICAgICAgIm9iamVjdCI6IG9iamVjdCwKICAgIH0KICAgIF9wb29sID0gTm9uZQoKICAgIGRlZiBfX2luaXRfXygKICAgICAgICBzZWxmLCBjb25maWd1cmF0aW9uPU5vbmUsIGhlYWRlcl9uYW1lPU5vbmUsIGhlYWRlcl92YWx1ZT1Ob25lLCBjb29raWU9Tm9uZQogICAgKSAtPiBOb25lOgogICAgICAgICMgdXNlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBpZiBub25lIGlzIHByb3ZpZGVkCiAgICAgICAgaWYgY29uZmlndXJhdGlvbiBpcyBOb25lOgogICAgICAgICAgICBjb25maWd1cmF0aW9uID0gQ29uZmlndXJhdGlvbi5nZXRfZGVmYXVsdCgpCiAgICAgICAgc2VsZi5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbgoKICAgICAgICBzZWxmLnJlc3RfY2xpZW50ID0gcmVzdC5SRVNUQ2xpZW50T2JqZWN0KGNvbmZpZ3VyYXRpb24pCiAgICAgICAgc2VsZi5kZWZhdWx0X2hlYWRlcnMgPSB7fQogICAgICAgIGlmIGhlYWRlcl9uYW1lIGlzIG5vdCBOb25lOgogICAgICAgICAgICBzZWxmLmRlZmF1bHRfaGVhZGVyc1toZWFkZXJfbmFtZV0gPSBoZWFkZXJfdmFsdWUKICAgICAgICBzZWxmLmNvb2tpZSA9IGNvb2tpZQogICAgICAgICMgU2V0IGRlZmF1bHQgVXNlci1BZ2VudC4KICAgICAgICBzZWxmLnVzZXJfYWdlbnQgPSAiZmlyZWJsb2Nrcy9zZGsvcHl0aG9uIgogICAgICAgIHNlbGYuY2xpZW50X3NpZGVfdmFsaWRhdGlvbiA9IGNvbmZpZ3VyYXRpb24uY2xpZW50X3NpZGVfdmFsaWRhdGlvbgoKICAgIGRlZiBfX2VudGVyX18oc2VsZik6CiAgICAgICAgcmV0dXJuIHNlbGYKCiAgICBkZWYgX19leGl0X18oc2VsZiwgZXhjX3R5cGUsIGV4Y192YWx1ZSwgdHJhY2ViYWNrKToKICAgICAgICBwYXNzCgogICAgQHByb3BlcnR5CiAgICBkZWYgdXNlcl9hZ2VudChzZWxmKToKICAgICAgICAiIiJVc2VyIGFnZW50IGZvciB0aGlzIEFQSSBjbGllbnQiIiIKICAgICAgICByZXR1cm4gc2VsZi5kZWZhdWx0X2hlYWRlcnNbIlVzZXItQWdlbnQiXQoKICAgIEB1c2VyX2FnZW50LnNldHRlcgogICAgZGVmIHVzZXJfYWdlbnQoc2VsZiwgdmFsdWUpOgogICAgICAgIHNlbGYuZGVmYXVsdF9oZWFkZXJzWyJVc2VyLUFnZW50Il0gPSB2YWx1ZQoKICAgIGRlZiBzZXRfZGVmYXVsdF9oZWFkZXIoc2VsZiwgaGVhZGVyX25hbWUsIGhlYWRlcl92YWx1ZSk6CiAgICAgICAgc2VsZi5kZWZhdWx0X2hlYWRlcnNbaGVhZGVyX25hbWVdID0gaGVhZGVyX3ZhbHVlCgogICAgX2RlZmF1bHQgPSBOb25lCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZ2V0X2RlZmF1bHQoY2xzKToKICAgICAgICAiIiJSZXR1cm4gbmV3IGluc3RhbmNlIG9mIEFwaUNsaWVudC4KCiAgICAgICAgVGhpcyBtZXRob2QgcmV0dXJucyBuZXdseSBjcmVhdGVkLCBiYXNlZCBvbiBkZWZhdWx0IGNvbnN0cnVjdG9yLAogICAgICAgIG9iamVjdCBvZiBBcGlDbGllbnQgY2xhc3Mgb3IgcmV0dXJucyBhIGNvcHkgb2YgZGVmYXVsdAogICAgICAgIEFwaUNsaWVudC4KCiAgICAgICAgOnJldHVybjogVGhlIEFwaUNsaWVudCBvYmplY3QuCiAgICAgICAgIiIiCiAgICAgICAgaWYgY2xzLl9kZWZhdWx0IGlzIE5vbmU6CiAgICAgICAgICAgIGNscy5fZGVmYXVsdCA9IEFwaUNsaWVudCgpCiAgICAgICAgcmV0dXJuIGNscy5fZGVmYXVsdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIHNldF9kZWZhdWx0KGNscywgZGVmYXVsdCk6CiAgICAgICAgIiIiU2V0IGRlZmF1bHQgaW5zdGFuY2Ugb2YgQXBpQ2xpZW50LgoKICAgICAgICBJdCBzdG9yZXMgZGVmYXVsdCBBcGlDbGllbnQuCgogICAgICAgIDpwYXJhbSBkZWZhdWx0OiBvYmplY3Qgb2YgQXBpQ2xpZW50LgogICAgICAgICIiIgogICAgICAgIGNscy5fZGVmYXVsdCA9IGRlZmF1bHQKCiAgICBkZWYgcGFyYW1fc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgbWV0aG9kLAogICAgICAgIHJlc291cmNlX3BhdGgsCiAgICAgICAgcGF0aF9wYXJhbXM9Tm9uZSwKICAgICAgICBxdWVyeV9wYXJhbXM9Tm9uZSwKICAgICAgICBoZWFkZXJfcGFyYW1zPU5vbmUsCiAgICAgICAgYm9keT1Ob25lLAogICAgICAgIHBvc3RfcGFyYW1zPU5vbmUsCiAgICAgICAgZmlsZXM9Tm9uZSwKICAgICAgICBhdXRoX3NldHRpbmdzPU5vbmUsCiAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzPU5vbmUsCiAgICAgICAgX2hvc3Q9Tm9uZSwKICAgICAgICBfcmVxdWVzdF9hdXRoPU5vbmUsCiAgICApIC0+IFJlcXVlc3RTZXJpYWxpemVkOgogICAgICAgICIiIkJ1aWxkcyB0aGUgSFRUUCByZXF1ZXN0IHBhcmFtcyBuZWVkZWQgYnkgdGhlIHJlcXVlc3QuCiAgICAgICAgOnBhcmFtIG1ldGhvZDogTWV0aG9kIHRvIGNhbGwuCiAgICAgICAgOnBhcmFtIHJlc291cmNlX3BhdGg6IFBhdGggdG8gbWV0aG9kIGVuZHBvaW50LgogICAgICAgIDpwYXJhbSBwYXRoX3BhcmFtczogUGF0aCBwYXJhbWV0ZXJzIGluIHRoZSB1cmwuCiAgICAgICAgOnBhcmFtIHF1ZXJ5X3BhcmFtczogUXVlcnkgcGFyYW1ldGVycyBpbiB0aGUgdXJsLgogICAgICAgIDpwYXJhbSBoZWFkZXJfcGFyYW1zOiBIZWFkZXIgcGFyYW1ldGVycyB0byBiZQogICAgICAgICAgICBwbGFjZWQgaW4gdGhlIHJlcXVlc3QgaGVhZGVyLgogICAgICAgIDpwYXJhbSBib2R5OiBSZXF1ZXN0IGJvZHkuCiAgICAgICAgOnBhcmFtIHBvc3RfcGFyYW1zIGRpY3Q6IFJlcXVlc3QgcG9zdCBmb3JtIHBhcmFtZXRlcnMsCiAgICAgICAgICAgIGZvciBgYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkYCwgYG11bHRpcGFydC9mb3JtLWRhdGFgLgogICAgICAgIDpwYXJhbSBhdXRoX3NldHRpbmdzIGxpc3Q6IEF1dGggU2V0dGluZ3MgbmFtZXMgZm9yIHRoZSByZXF1ZXN0LgogICAgICAgIDpwYXJhbSBmaWxlcyBkaWN0OiBrZXkgLT4gZmlsZW5hbWUsIHZhbHVlIC0+IGZpbGVwYXRoLAogICAgICAgICAgICBmb3IgYG11bHRpcGFydC9mb3JtLWRhdGFgLgogICAgICAgIDpwYXJhbSBjb2xsZWN0aW9uX2Zvcm1hdHM6IGRpY3Qgb2YgY29sbGVjdGlvbiBmb3JtYXRzIGZvciBwYXRoLCBxdWVyeSwKICAgICAgICAgICAgaGVhZGVyLCBhbmQgcG9zdCBwYXJhbWV0ZXJzLgogICAgICAgIDpwYXJhbSBfcmVxdWVzdF9hdXRoOiBzZXQgdG8gb3ZlcnJpZGUgdGhlIGF1dGhfc2V0dGluZ3MgZm9yIGFuIGEgc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q7IHRoaXMgZWZmZWN0aXZlbHkgaWdub3JlcyB0aGUgYXV0aGVudGljYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNwZWMgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCiAgICAgICAgOnJldHVybjogdHVwbGUgb2YgZm9ybSAocGF0aCwgaHR0cF9tZXRob2QsIHF1ZXJ5X3BhcmFtcywgaGVhZGVyX3BhcmFtcywKICAgICAgICAgICAgYm9keSwgcG9zdF9wYXJhbXMsIGZpbGVzKQogICAgICAgICIiIgoKICAgICAgICBjb25maWcgPSBzZWxmLmNvbmZpZ3VyYXRpb24KCiAgICAgICAgIyBoZWFkZXIgcGFyYW1ldGVycwogICAgICAgIGhlYWRlcl9wYXJhbXMgPSBoZWFkZXJfcGFyYW1zIG9yIHt9CiAgICAgICAgaGVhZGVyX3BhcmFtcy51cGRhdGUoc2VsZi5kZWZhdWx0X2hlYWRlcnMpCiAgICAgICAgaWYgc2VsZi5jb29raWU6CiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXNbIkNvb2tpZSJdID0gc2VsZi5jb29raWUKICAgICAgICBpZiBoZWFkZXJfcGFyYW1zOgogICAgICAgICAgICBoZWFkZXJfcGFyYW1zID0gc2VsZi5zYW5pdGl6ZV9mb3Jfc2VyaWFsaXphdGlvbihoZWFkZXJfcGFyYW1zKQogICAgICAgICAgICBoZWFkZXJfcGFyYW1zID0gZGljdCgKICAgICAgICAgICAgICAgIHNlbGYucGFyYW1ldGVyc190b190dXBsZXMoaGVhZGVyX3BhcmFtcywgY29sbGVjdGlvbl9mb3JtYXRzKQogICAgICAgICAgICApCgogICAgICAgICMgcGF0aCBwYXJhbWV0ZXJzCiAgICAgICAgaWYgcGF0aF9wYXJhbXM6CiAgICAgICAgICAgIHBhdGhfcGFyYW1zID0gc2VsZi5zYW5pdGl6ZV9mb3Jfc2VyaWFsaXphdGlvbihwYXRoX3BhcmFtcykKICAgICAgICAgICAgcGF0aF9wYXJhbXMgPSBzZWxmLnBhcmFtZXRlcnNfdG9fdHVwbGVzKHBhdGhfcGFyYW1zLCBjb2xsZWN0aW9uX2Zvcm1hdHMpCiAgICAgICAgICAgIGZvciBrLCB2IGluIHBhdGhfcGFyYW1zOgogICAgICAgICAgICAgICAgIyBzcGVjaWZpZWQgc2FmZSBjaGFycywgZW5jb2RlIGV2ZXJ5dGhpbmcKICAgICAgICAgICAgICAgIHJlc291cmNlX3BhdGggPSByZXNvdXJjZV9wYXRoLnJlcGxhY2UoCiAgICAgICAgICAgICAgICAgICAgInslc30iICUgaywgcXVvdGUoc3RyKHYpLCBzYWZlPWNvbmZpZy5zYWZlX2NoYXJzX2Zvcl9wYXRoX3BhcmFtKQogICAgICAgICAgICAgICAgKQoKICAgICAgICAjIHBvc3QgcGFyYW1ldGVycwogICAgICAgIGlmIHBvc3RfcGFyYW1zIG9yIGZpbGVzOgogICAgICAgICAgICBwb3N0X3BhcmFtcyA9IHBvc3RfcGFyYW1zIGlmIHBvc3RfcGFyYW1zIGVsc2UgW10KICAgICAgICAgICAgcG9zdF9wYXJhbXMgPSBzZWxmLnNhbml0aXplX2Zvcl9zZXJpYWxpemF0aW9uKHBvc3RfcGFyYW1zKQogICAgICAgICAgICBwb3N0X3BhcmFtcyA9IHNlbGYucGFyYW1ldGVyc190b190dXBsZXMocG9zdF9wYXJhbXMsIGNvbGxlY3Rpb25fZm9ybWF0cykKICAgICAgICAgICAgaWYgZmlsZXM6CiAgICAgICAgICAgICAgICBwb3N0X3BhcmFtcy5leHRlbmQoc2VsZi5maWxlc19wYXJhbWV0ZXJzKGZpbGVzKSkKCiAgICAgICAgIyBhdXRoIHNldHRpbmcKICAgICAgICBzZWxmLnVwZGF0ZV9wYXJhbXNfZm9yX2F1dGgoCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIHF1ZXJ5X3BhcmFtcywKICAgICAgICAgICAgYXV0aF9zZXR0aW5ncywKICAgICAgICAgICAgcmVzb3VyY2VfcGF0aCwKICAgICAgICAgICAgbWV0aG9kLAogICAgICAgICAgICBib2R5LAogICAgICAgICAgICByZXF1ZXN0X2F1dGg9X3JlcXVlc3RfYXV0aCwKICAgICAgICApCgogICAgICAgICMgYm9keQogICAgICAgIGlmIGJvZHk6CiAgICAgICAgICAgIGJvZHkgPSBzZWxmLnNhbml0aXplX2Zvcl9zZXJpYWxpemF0aW9uKGJvZHkpCgogICAgICAgICMgcmVxdWVzdCB1cmwKICAgICAgICBpZiBfaG9zdCBpcyBOb25lIG9yIHNlbGYuY29uZmlndXJhdGlvbi5pZ25vcmVfb3BlcmF0aW9uX3NlcnZlcnM6CiAgICAgICAgICAgIHVybCA9IHNlbGYuY29uZmlndXJhdGlvbi5ob3N0ICsgcmVzb3VyY2VfcGF0aAogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgdXNlIHNlcnZlci9ob3N0IGRlZmluZWQgaW4gcGF0aCBvciBvcGVyYXRpb24gaW5zdGVhZAogICAgICAgICAgICB1cmwgPSBfaG9zdCArIHJlc291cmNlX3BhdGgKCiAgICAgICAgIyBxdWVyeSBwYXJhbWV0ZXJzCiAgICAgICAgaWYgcXVlcnlfcGFyYW1zOgogICAgICAgICAgICBxdWVyeV9wYXJhbXMgPSBzZWxmLnNhbml0aXplX2Zvcl9zZXJpYWxpemF0aW9uKHF1ZXJ5X3BhcmFtcykKICAgICAgICAgICAgdXJsX3F1ZXJ5ID0gc2VsZi5wYXJhbWV0ZXJzX3RvX3VybF9xdWVyeShxdWVyeV9wYXJhbXMsIGNvbGxlY3Rpb25fZm9ybWF0cykKICAgICAgICAgICAgdXJsICs9ICI/IiArIHVybF9xdWVyeQoKICAgICAgICByZXR1cm4gbWV0aG9kLCB1cmwsIGhlYWRlcl9wYXJhbXMsIGJvZHksIHBvc3RfcGFyYW1zCgogICAgZGVmIGNhbGxfYXBpKAogICAgICAgIHNlbGYsCiAgICAgICAgbWV0aG9kOiBzdHIsCiAgICAgICAgdXJsOiBzdHIsCiAgICAgICAgaGVhZGVyX3BhcmFtczogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dID0gTm9uZSwKICAgICAgICBib2R5OiBPcHRpb25hbFtBbnldID0gTm9uZSwKICAgICAgICBwb3N0X3BhcmFtczogT3B0aW9uYWxbTGlzdFtUdXBsZVtzdHIsIEFueV1dXSA9IE5vbmUsCiAgICAgICAgX3JlcXVlc3RfdGltZW91dDogT3B0aW9uYWxbVW5pb25baW50LCBmbG9hdCwgVHVwbGVdXSA9IE5vbmUsCiAgICAgICAgX3Jlc3BvbnNlX3R5cGVzX21hcDogT3B0aW9uYWxbRGljdFtzdHIsIEFwaVJlc3BvbnNlVF1dID0gTm9uZSwKICAgICkgLT4gQXBpUmVzcG9uc2VbQXBpUmVzcG9uc2VUXToKICAgICAgICAiIiJNYWtlcyB0aGUgSFRUUCByZXF1ZXN0IChzeW5jaHJvbm91cykKICAgICAgICA6cGFyYW0gbWV0aG9kOiBNZXRob2QgdG8gY2FsbC4KICAgICAgICA6cGFyYW0gdXJsOiBQYXRoIHRvIG1ldGhvZCBlbmRwb2ludC4KICAgICAgICA6cGFyYW0gaGVhZGVyX3BhcmFtczogSGVhZGVyIHBhcmFtZXRlcnMgdG8gYmUKICAgICAgICAgICAgcGxhY2VkIGluIHRoZSByZXF1ZXN0IGhlYWRlci4KICAgICAgICA6cGFyYW0gYm9keTogUmVxdWVzdCBib2R5LgogICAgICAgIDpwYXJhbSBwb3N0X3BhcmFtcyBkaWN0OiBSZXF1ZXN0IHBvc3QgZm9ybSBwYXJhbWV0ZXJzLAogICAgICAgICAgICBmb3IgYGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZGAsIGBtdWx0aXBhcnQvZm9ybS1kYXRhYC4KICAgICAgICA6cGFyYW0gX3JlcXVlc3RfdGltZW91dDogdGltZW91dCBzZXR0aW5nIGZvciB0aGlzIHJlcXVlc3QuCiAgICAgICAgOnJldHVybjogUkVTVFJlc3BvbnNlCiAgICAgICAgIiIiCiAgICAgICAgIyBwZXJmb3JtIHJlcXVlc3QgYW5kIHJldHVybiByZXNwb25zZQogICAgICAgIHJlc3BvbnNlX2RhdGEgPSBzZWxmLnJlc3RfY2xpZW50LnJlcXVlc3QoCiAgICAgICAgICAgIG1ldGhvZCwKICAgICAgICAgICAgdXJsLAogICAgICAgICAgICBoZWFkZXJzPWhlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHk9Ym9keSwKICAgICAgICAgICAgcG9zdF9wYXJhbXM9cG9zdF9wYXJhbXMsCiAgICAgICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9X3JlcXVlc3RfdGltZW91dCwKICAgICAgICApCiAgICAgICAgcmVzcG9uc2VfZGF0YS5yZWFkKCkKICAgICAgICByZXR1cm4gc2VsZi5yZXNwb25zZV9kZXNlcmlhbGl6ZSgKICAgICAgICAgICAgcmVzcG9uc2VfZGF0YT1yZXNwb25zZV9kYXRhLAogICAgICAgICAgICByZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCwKICAgICAgICApCgogICAgZGVmIHJlc3BvbnNlX2Rlc2VyaWFsaXplKAogICAgICAgIHNlbGYsCiAgICAgICAgcmVzcG9uc2VfZGF0YTogcmVzdC5SRVNUUmVzcG9uc2UsCiAgICAgICAgcmVzcG9uc2VfdHlwZXNfbWFwOiBPcHRpb25hbFtEaWN0W3N0ciwgQXBpUmVzcG9uc2VUXV0gPSBOb25lLAogICAgKSAtPiBBcGlSZXNwb25zZVtBcGlSZXNwb25zZVRdOgogICAgICAgICIiIkRlc2VyaWFsaXplcyByZXNwb25zZSBpbnRvIGFuIG9iamVjdC4KICAgICAgICA6cGFyYW0gcmVzcG9uc2VfZGF0YTogUkVTVFJlc3BvbnNlIG9iamVjdCB0byBiZSBkZXNlcmlhbGl6ZWQuCiAgICAgICAgOnBhcmFtIHJlc3BvbnNlX3R5cGVzX21hcDogZGljdCBvZiByZXNwb25zZSB0eXBlcy4KICAgICAgICA6cmV0dXJuOiBBcGlSZXNwb25zZQogICAgICAgICIiIgoKICAgICAgICBtc2cgPSAiUkVTVFJlc3BvbnNlLnJlYWQoKSBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgcGFzc2luZyBpdCB0byByZXNwb25zZV9kZXNlcmlhbGl6ZSgpIgogICAgICAgIGFzc2VydCByZXNwb25zZV9kYXRhLmRhdGEgaXMgbm90IE5vbmUsIG1zZwoKICAgICAgICBpZiByZXNwb25zZV90eXBlc19tYXAgaXMgTm9uZToKICAgICAgICAgICAgcmVzcG9uc2VfdHlwZXNfbWFwID0ge30KCiAgICAgICAgcmVzcG9uc2VfdHlwZSA9IHJlc3BvbnNlX3R5cGVzX21hcC5nZXQoCiAgICAgICAgICAgIHN0cihyZXNwb25zZV9kYXRhLnN0YXR1cyksIHJlc3BvbnNlX3R5cGVzX21hcC5nZXQoImRlZmF1bHQiLCBOb25lKQogICAgICAgICkKICAgICAgICBpZiAoCiAgICAgICAgICAgIG5vdCByZXNwb25zZV90eXBlCiAgICAgICAgICAgIGFuZCBpc2luc3RhbmNlKHJlc3BvbnNlX2RhdGEuc3RhdHVzLCBpbnQpCiAgICAgICAgICAgIGFuZCAxMDAgPD0gcmVzcG9uc2VfZGF0YS5zdGF0dXMgPD0gNTk5CiAgICAgICAgKToKICAgICAgICAgICAgIyBpZiBub3QgZm91bmQsIGxvb2sgZm9yICcxWFgnLCAnMlhYJywgZXRjLgogICAgICAgICAgICByZXNwb25zZV90eXBlID0gcmVzcG9uc2VfdHlwZXNfbWFwLmdldCgKICAgICAgICAgICAgICAgIHN0cihyZXNwb25zZV9kYXRhLnN0YXR1cylbMF0gKyAiWFgiLCBOb25lCiAgICAgICAgICAgICkKCiAgICAgICAgIyBkZXNlcmlhbGl6ZSByZXNwb25zZSBkYXRhCiAgICAgICAgcmVzcG9uc2VfdGV4dCA9IE5vbmUKICAgICAgICByZXR1cm5fZGF0YSA9IE5vbmUKICAgICAgICB0cnk6CiAgICAgICAgICAgIGlmIHJlc3BvbnNlX3R5cGUgPT0gImJ5dGVhcnJheSI6CiAgICAgICAgICAgICAgICByZXR1cm5fZGF0YSA9IHJlc3BvbnNlX2RhdGEuZGF0YQogICAgICAgICAgICBlbGlmIHJlc3BvbnNlX3R5cGUgPT0gImZpbGUiOgogICAgICAgICAgICAgICAgcmV0dXJuX2RhdGEgPSBzZWxmLl9fZGVzZXJpYWxpemVfZmlsZShyZXNwb25zZV9kYXRhKQogICAgICAgICAgICBlbGlmIHJlc3BvbnNlX3R5cGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICBtYXRjaCA9IE5vbmUKICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZSA9IHJlc3BvbnNlX2RhdGEuZ2V0aGVhZGVyKCJjb250ZW50LXR5cGUiKQogICAgICAgICAgICAgICAgaWYgY29udGVudF90eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgICAgIG1hdGNoID0gcmUuc2VhcmNoKHIiY2hhcnNldD0oW2EtekEtWlwtXGRdKylbXHM7XT8iLCBjb250ZW50X3R5cGUpCiAgICAgICAgICAgICAgICBlbmNvZGluZyA9IG1hdGNoLmdyb3VwKDEpIGlmIG1hdGNoIGVsc2UgInV0Zi04IgogICAgICAgICAgICAgICAgcmVzcG9uc2VfdGV4dCA9IHJlc3BvbnNlX2RhdGEuZGF0YS5kZWNvZGUoZW5jb2RpbmcpCiAgICAgICAgICAgICAgICBpZiByZXNwb25zZV90eXBlIGluIFsiYnl0ZWFycmF5IiwgInN0ciJdOgogICAgICAgICAgICAgICAgICAgIHJldHVybl9kYXRhID0gc2VsZi5fX2Rlc2VyaWFsaXplX3ByaW1pdGl2ZSgKICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VfdGV4dCwgcmVzcG9uc2VfdHlwZQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fZGF0YSA9IHNlbGYuZGVzZXJpYWxpemUocmVzcG9uc2VfdGV4dCwgcmVzcG9uc2VfdHlwZSkKICAgICAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmIkZhaWxlZCB0byBkZXNlcmlhbGl6ZSByZXNwb25zZSBvZiB0eXBlIHtyZXNwb25zZV90eXBlfToge2V9IgogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlX3RleHQpCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZGF0YSwgZGljdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fZGF0YSA9IGNyZWF0ZV91bmtub3duX21vZGVsKGRhdGEpLnBhcnNlX29iaihkYXRhKQogICAgICAgICAgICAgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZGF0YSwgbGlzdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fZGF0YSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVfdW5rbm93bl9tb2RlbChpdGVtKS5wYXJzZV9vYmooaXRlbSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBkYXRhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRhdGEgbXVzdCBiZSBhIGRpY3Rpb25hcnkgb3IgYSBsaXN0IG9mIGRpY3Rpb25hcmllcyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICBpZiBub3QgMjAwIDw9IHJlc3BvbnNlX2RhdGEuc3RhdHVzIDw9IDI5OToKICAgICAgICAgICAgICAgIHJhaXNlIEFwaUV4Y2VwdGlvbi5mcm9tX3Jlc3BvbnNlKAogICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcD1yZXNwb25zZV9kYXRhLAogICAgICAgICAgICAgICAgICAgIGJvZHk9cmVzcG9uc2VfdGV4dCwKICAgICAgICAgICAgICAgICAgICBkYXRhPXJldHVybl9kYXRhLAogICAgICAgICAgICAgICAgKQoKICAgICAgICByZXR1cm4gQXBpUmVzcG9uc2UoCiAgICAgICAgICAgIHN0YXR1c19jb2RlPXJlc3BvbnNlX2RhdGEuc3RhdHVzLAogICAgICAgICAgICBkYXRhPXJldHVybl9kYXRhLAogICAgICAgICAgICBoZWFkZXJzPXJlc3BvbnNlX2RhdGEuZ2V0aGVhZGVycygpLAogICAgICAgICAgICByYXdfZGF0YT1yZXNwb25zZV9kYXRhLmRhdGEsCiAgICAgICAgKQoKICAgIGRlZiBzYW5pdGl6ZV9mb3Jfc2VyaWFsaXphdGlvbihzZWxmLCBvYmopOgogICAgICAgICIiIkJ1aWxkcyBhIEpTT04gUE9TVCBvYmplY3QuCgogICAgICAgIElmIG9iaiBpcyBOb25lLCByZXR1cm4gTm9uZS4KICAgICAgICBJZiBvYmogaXMgU2VjcmV0U3RyLCByZXR1cm4gb2JqLmdldF9zZWNyZXRfdmFsdWUoKQogICAgICAgIElmIG9iaiBpcyBzdHIsIGludCwgbG9uZywgZmxvYXQsIGJvb2wsIHJldHVybiBkaXJlY3RseS4KICAgICAgICBJZiBvYmogaXMgZGF0ZXRpbWUuZGF0ZXRpbWUsIGRhdGV0aW1lLmRhdGUKICAgICAgICAgICAgY29udmVydCB0byBzdHJpbmcgaW4gaXNvODYwMSBmb3JtYXQuCiAgICAgICAgSWYgb2JqIGlzIGRlY2ltYWwuRGVjaW1hbCByZXR1cm4gc3RyaW5nIHJlcHJlc2VudGF0aW9uLgogICAgICAgIElmIG9iaiBpcyBsaXN0LCBzYW5pdGl6ZSBlYWNoIGVsZW1lbnQgaW4gdGhlIGxpc3QuCiAgICAgICAgSWYgb2JqIGlzIGRpY3QsIHJldHVybiB0aGUgZGljdC4KICAgICAgICBJZiBvYmogaXMgT3BlbkFQSSBtb2RlbCwgcmV0dXJuIHRoZSBwcm9wZXJ0aWVzIGRpY3QuCgogICAgICAgIDpwYXJhbSBvYmo6IFRoZSBkYXRhIHRvIHNlcmlhbGl6ZS4KICAgICAgICA6cmV0dXJuOiBUaGUgc2VyaWFsaXplZCBmb3JtIG9mIGRhdGEuCiAgICAgICAgIiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgZWxpZiBpc2luc3RhbmNlKG9iaiwgRW51bSk6CiAgICAgICAgICAgIHJldHVybiBvYmoudmFsdWUKICAgICAgICBlbGlmIGlzaW5zdGFuY2Uob2JqLCBTZWNyZXRTdHIpOgogICAgICAgICAgICByZXR1cm4gb2JqLmdldF9zZWNyZXRfdmFsdWUoKQogICAgICAgIGVsaWYgaXNpbnN0YW5jZShvYmosIHNlbGYuUFJJTUlUSVZFX1RZUEVTKToKICAgICAgICAgICAgcmV0dXJuIG9iagogICAgICAgIGVsaWYgaXNpbnN0YW5jZShvYmosIGxpc3QpOgogICAgICAgICAgICByZXR1cm4gW3NlbGYuc2FuaXRpemVfZm9yX3NlcmlhbGl6YXRpb24oc3ViX29iaikgZm9yIHN1Yl9vYmogaW4gb2JqXQogICAgICAgIGVsaWYgaXNpbnN0YW5jZShvYmosIHR1cGxlKToKICAgICAgICAgICAgcmV0dXJuIHR1cGxlKHNlbGYuc2FuaXRpemVfZm9yX3NlcmlhbGl6YXRpb24oc3ViX29iaikgZm9yIHN1Yl9vYmogaW4gb2JqKQogICAgICAgIGVsaWYgaXNpbnN0YW5jZShvYmosIChkYXRldGltZS5kYXRldGltZSwgZGF0ZXRpbWUuZGF0ZSkpOgogICAgICAgICAgICByZXR1cm4gb2JqLmlzb2Zvcm1hdCgpCiAgICAgICAgZWxpZiBpc2luc3RhbmNlKG9iaiwgZGVjaW1hbC5EZWNpbWFsKToKICAgICAgICAgICAgcmV0dXJuIHN0cihvYmopCgogICAgICAgIGVsaWYgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICBvYmpfZGljdCA9IG9iagogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgQ29udmVydCBtb2RlbCBvYmogdG8gZGljdCBleGNlcHQKICAgICAgICAgICAgIyBhdHRyaWJ1dGVzIGBvcGVuYXBpX3R5cGVzYCwgYGF0dHJpYnV0ZV9tYXBgCiAgICAgICAgICAgICMgYW5kIGF0dHJpYnV0ZXMgd2hpY2ggdmFsdWUgaXMgbm90IE5vbmUuCiAgICAgICAgICAgICMgQ29udmVydCBhdHRyaWJ1dGUgbmFtZSB0byBqc29uIGtleSBpbgogICAgICAgICAgICAjIG1vZGVsIGRlZmluaXRpb24gZm9yIHJlcXVlc3QuCiAgICAgICAgICAgIGlmIGhhc2F0dHIob2JqLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShnZXRhdHRyKG9iaiwgInRvX2RpY3QiKSk6CiAgICAgICAgICAgICAgICBvYmpfZGljdCA9IG9iai50b19kaWN0KCkKICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgIG9ial9kaWN0ID0gb2JqLl9fZGljdF9fCgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIGtleTogc2VsZi5zYW5pdGl6ZV9mb3Jfc2VyaWFsaXphdGlvbih2YWwpIGZvciBrZXksIHZhbCBpbiBvYmpfZGljdC5pdGVtcygpCiAgICAgICAgfQoKICAgIGRlZiBkZXNlcmlhbGl6ZShzZWxmLCByZXNwb25zZV90ZXh0LCByZXNwb25zZV90eXBlKToKICAgICAgICAiIiJEZXNlcmlhbGl6ZXMgcmVzcG9uc2UgaW50byBhbiBvYmplY3QuCgogICAgICAgIDpwYXJhbSByZXNwb25zZTogUkVTVFJlc3BvbnNlIG9iamVjdCB0byBiZSBkZXNlcmlhbGl6ZWQuCiAgICAgICAgOnBhcmFtIHJlc3BvbnNlX3R5cGU6IGNsYXNzIGxpdGVyYWwgZm9yCiAgICAgICAgICAgIGRlc2VyaWFsaXplZCBvYmplY3QsIG9yIHN0cmluZyBvZiBjbGFzcyBuYW1lLgoKICAgICAgICA6cmV0dXJuOiBkZXNlcmlhbGl6ZWQgb2JqZWN0LgogICAgICAgICIiIgoKICAgICAgICAjIGZldGNoIGRhdGEgZnJvbSByZXNwb25zZSBvYmplY3QKICAgICAgICB0cnk6CiAgICAgICAgICAgIGRhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlX3RleHQpCiAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAgICAgICAgIGRhdGEgPSByZXNwb25zZV90ZXh0CgogICAgICAgIHJldHVybiBzZWxmLl9fZGVzZXJpYWxpemUoZGF0YSwgcmVzcG9uc2VfdHlwZSkKCiAgICBkZWYgX19kZXNlcmlhbGl6ZShzZWxmLCBkYXRhLCBrbGFzcyk6CiAgICAgICAgIiIiRGVzZXJpYWxpemVzIGRpY3QsIGxpc3QsIHN0ciBpbnRvIGFuIG9iamVjdC4KCiAgICAgICAgOnBhcmFtIGRhdGE6IGRpY3QsIGxpc3Qgb3Igc3RyLgogICAgICAgIDpwYXJhbSBrbGFzczogY2xhc3MgbGl0ZXJhbCwgb3Igc3RyaW5nIG9mIGNsYXNzIG5hbWUuCgogICAgICAgIDpyZXR1cm46IG9iamVjdC4KICAgICAgICAiIiIKICAgICAgICBpZiBkYXRhIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIGlzaW5zdGFuY2Uoa2xhc3MsIHN0cik6CiAgICAgICAgICAgIGlmIGtsYXNzLnN0YXJ0c3dpdGgoIkxpc3RbIik6CiAgICAgICAgICAgICAgICBtID0gcmUubWF0Y2gociJMaXN0XFsoLiopXSIsIGtsYXNzKQogICAgICAgICAgICAgICAgYXNzZXJ0IG0gaXMgbm90IE5vbmUsICJNYWxmb3JtZWQgTGlzdCB0eXBlIGRlZmluaXRpb24iCiAgICAgICAgICAgICAgICBzdWJfa2xzID0gbS5ncm91cCgxKQogICAgICAgICAgICAgICAgcmV0dXJuIFtzZWxmLl9fZGVzZXJpYWxpemUoc3ViX2RhdGEsIHN1Yl9rbHMpIGZvciBzdWJfZGF0YSBpbiBkYXRhXQoKICAgICAgICAgICAgaWYga2xhc3Muc3RhcnRzd2l0aCgiRGljdFsiKToKICAgICAgICAgICAgICAgIG0gPSByZS5tYXRjaChyIkRpY3RcWyhbXixdKiksICguKildIiwga2xhc3MpCiAgICAgICAgICAgICAgICBhc3NlcnQgbSBpcyBub3QgTm9uZSwgIk1hbGZvcm1lZCBEaWN0IHR5cGUgZGVmaW5pdGlvbiIKICAgICAgICAgICAgICAgIHN1Yl9rbHMgPSBtLmdyb3VwKDIpCiAgICAgICAgICAgICAgICByZXR1cm4ge2s6IHNlbGYuX19kZXNlcmlhbGl6ZSh2LCBzdWJfa2xzKSBmb3IgaywgdiBpbiBkYXRhLml0ZW1zKCl9CgogICAgICAgICAgICAjIGNvbnZlcnQgc3RyIHRvIGNsYXNzCiAgICAgICAgICAgIGlmIGtsYXNzIGluIHNlbGYuTkFUSVZFX1RZUEVTX01BUFBJTkc6CiAgICAgICAgICAgICAgICBrbGFzcyA9IHNlbGYuTkFUSVZFX1RZUEVTX01BUFBJTkdba2xhc3NdCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBrbGFzcyA9IGdldGF0dHIoZmlyZWJsb2Nrcy5tb2RlbHMsIGtsYXNzKQoKICAgICAgICBpZiBrbGFzcyBpbiBzZWxmLlBSSU1JVElWRV9UWVBFUzoKICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19kZXNlcmlhbGl6ZV9wcmltaXRpdmUoZGF0YSwga2xhc3MpCiAgICAgICAgZWxpZiBrbGFzcyA9PSBvYmplY3Q6CiAgICAgICAgICAgIHJldHVybiBzZWxmLl9fZGVzZXJpYWxpemVfb2JqZWN0KGRhdGEpCiAgICAgICAgZWxpZiBrbGFzcyA9PSBkYXRldGltZS5kYXRlOgogICAgICAgICAgICByZXR1cm4gc2VsZi5fX2Rlc2VyaWFsaXplX2RhdGUoZGF0YSkKICAgICAgICBlbGlmIGtsYXNzID09IGRhdGV0aW1lLmRhdGV0aW1lOgogICAgICAgICAgICByZXR1cm4gc2VsZi5fX2Rlc2VyaWFsaXplX2RhdGV0aW1lKGRhdGEpCiAgICAgICAgZWxpZiBrbGFzcyA9PSBkZWNpbWFsLkRlY2ltYWw6CiAgICAgICAgICAgIHJldHVybiBkZWNpbWFsLkRlY2ltYWwoZGF0YSkKICAgICAgICBlbGlmIGlzc3ViY2xhc3Moa2xhc3MsIEVudW0pOgogICAgICAgICAgICByZXR1cm4gc2VsZi5fX2Rlc2VyaWFsaXplX2VudW0oZGF0YSwga2xhc3MpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19kZXNlcmlhbGl6ZV9tb2RlbChkYXRhLCBrbGFzcykKCiAgICBkZWYgcGFyYW1ldGVyc190b190dXBsZXMoc2VsZiwgcGFyYW1zLCBjb2xsZWN0aW9uX2Zvcm1hdHMpOgogICAgICAgICIiIkdldCBwYXJhbWV0ZXJzIGFzIGxpc3Qgb2YgdHVwbGVzLCBmb3JtYXR0aW5nIGNvbGxlY3Rpb25zLgoKICAgICAgICA6cGFyYW0gcGFyYW1zOiBQYXJhbWV0ZXJzIGFzIGRpY3Qgb3IgbGlzdCBvZiB0d28tdHVwbGVzCiAgICAgICAgOnBhcmFtIGRpY3QgY29sbGVjdGlvbl9mb3JtYXRzOiBQYXJhbWV0ZXIgY29sbGVjdGlvbiBmb3JtYXRzCiAgICAgICAgOnJldHVybjogUGFyYW1ldGVycyBhcyBsaXN0IG9mIHR1cGxlcywgY29sbGVjdGlvbnMgZm9ybWF0dGVkCiAgICAgICAgIiIiCiAgICAgICAgbmV3X3BhcmFtczogTGlzdFtUdXBsZVtzdHIsIHN0cl1dID0gW10KICAgICAgICBpZiBjb2xsZWN0aW9uX2Zvcm1hdHMgaXMgTm9uZToKICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXRzID0ge30KICAgICAgICBmb3IgaywgdiBpbiBwYXJhbXMuaXRlbXMoKSBpZiBpc2luc3RhbmNlKHBhcmFtcywgZGljdCkgZWxzZSBwYXJhbXM6CiAgICAgICAgICAgIGlmIGsgaW4gY29sbGVjdGlvbl9mb3JtYXRzOgogICAgICAgICAgICAgICAgY29sbGVjdGlvbl9mb3JtYXQgPSBjb2xsZWN0aW9uX2Zvcm1hdHNba10KICAgICAgICAgICAgICAgIGlmIGNvbGxlY3Rpb25fZm9ybWF0ID09ICJtdWx0aSI6CiAgICAgICAgICAgICAgICAgICAgbmV3X3BhcmFtcy5leHRlbmQoKGssIHZhbHVlKSBmb3IgdmFsdWUgaW4gdikKICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgaWYgY29sbGVjdGlvbl9mb3JtYXQgPT0gInNzdiI6CiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGltaXRlciA9ICIgIgogICAgICAgICAgICAgICAgICAgIGVsaWYgY29sbGVjdGlvbl9mb3JtYXQgPT0gInRzdiI6CiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGltaXRlciA9ICJcdCIKICAgICAgICAgICAgICAgICAgICBlbGlmIGNvbGxlY3Rpb25fZm9ybWF0ID09ICJwaXBlcyI6CiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGltaXRlciA9ICJ8IgogICAgICAgICAgICAgICAgICAgIGVsc2U6ICAjIGNzdiBpcyB0aGUgZGVmYXVsdAogICAgICAgICAgICAgICAgICAgICAgICBkZWxpbWl0ZXIgPSAiLCIKICAgICAgICAgICAgICAgICAgICBuZXdfcGFyYW1zLmFwcGVuZCgoaywgZGVsaW1pdGVyLmpvaW4oc3RyKHZhbHVlKSBmb3IgdmFsdWUgaW4gdikpKQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgbmV3X3BhcmFtcy5hcHBlbmQoKGssIHYpKQogICAgICAgIHJldHVybiBuZXdfcGFyYW1zCgogICAgZGVmIHBhcmFtZXRlcnNfdG9fdXJsX3F1ZXJ5KHNlbGYsIHBhcmFtcywgY29sbGVjdGlvbl9mb3JtYXRzKToKICAgICAgICAiIiJHZXQgcGFyYW1ldGVycyBhcyBsaXN0IG9mIHR1cGxlcywgZm9ybWF0dGluZyBjb2xsZWN0aW9ucy4KCiAgICAgICAgOnBhcmFtIHBhcmFtczogUGFyYW1ldGVycyBhcyBkaWN0IG9yIGxpc3Qgb2YgdHdvLXR1cGxlcwogICAgICAgIDpwYXJhbSBkaWN0IGNvbGxlY3Rpb25fZm9ybWF0czogUGFyYW1ldGVyIGNvbGxlY3Rpb24gZm9ybWF0cwogICAgICAgIDpyZXR1cm46IFVSTCBxdWVyeSBzdHJpbmcgKGUuZy4gYT1IZWxsbyUyMFdvcmxkJmI9MTIzKQogICAgICAgICIiIgogICAgICAgIG5ld19wYXJhbXM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSA9IFtdCiAgICAgICAgaWYgY29sbGVjdGlvbl9mb3JtYXRzIGlzIE5vbmU6CiAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0cyA9IHt9CiAgICAgICAgZm9yIGssIHYgaW4gcGFyYW1zLml0ZW1zKCkgaWYgaXNpbnN0YW5jZShwYXJhbXMsIGRpY3QpIGVsc2UgcGFyYW1zOgogICAgICAgICAgICBpZiBpc2luc3RhbmNlKHYsIGJvb2wpOgogICAgICAgICAgICAgICAgdiA9IHN0cih2KS5sb3dlcigpCiAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodiwgKGludCwgZmxvYXQpKToKICAgICAgICAgICAgICAgIHYgPSBzdHIodikKICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh2LCBkaWN0KToKICAgICAgICAgICAgICAgIHYgPSBqc29uLmR1bXBzKHYpCgogICAgICAgICAgICBpZiBrIGluIGNvbGxlY3Rpb25fZm9ybWF0czoKICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25fZm9ybWF0ID0gY29sbGVjdGlvbl9mb3JtYXRzW2tdCiAgICAgICAgICAgICAgICBpZiBjb2xsZWN0aW9uX2Zvcm1hdCA9PSAibXVsdGkiOgogICAgICAgICAgICAgICAgICAgIG5ld19wYXJhbXMuZXh0ZW5kKChrLCBxdW90ZShzdHIodmFsdWUpKSkgZm9yIHZhbHVlIGluIHYpCiAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgIGlmIGNvbGxlY3Rpb25fZm9ybWF0ID09ICJzc3YiOgogICAgICAgICAgICAgICAgICAgICAgICBkZWxpbWl0ZXIgPSAiICIKICAgICAgICAgICAgICAgICAgICBlbGlmIGNvbGxlY3Rpb25fZm9ybWF0ID09ICJ0c3YiOgogICAgICAgICAgICAgICAgICAgICAgICBkZWxpbWl0ZXIgPSAiXHQiCiAgICAgICAgICAgICAgICAgICAgZWxpZiBjb2xsZWN0aW9uX2Zvcm1hdCA9PSAicGlwZXMiOgogICAgICAgICAgICAgICAgICAgICAgICBkZWxpbWl0ZXIgPSAifCIKICAgICAgICAgICAgICAgICAgICBlbHNlOiAgIyBjc3YgaXMgdGhlIGRlZmF1bHQKICAgICAgICAgICAgICAgICAgICAgICAgZGVsaW1pdGVyID0gIiwiCiAgICAgICAgICAgICAgICAgICAgbmV3X3BhcmFtcy5hcHBlbmQoCiAgICAgICAgICAgICAgICAgICAgICAgIChrLCBkZWxpbWl0ZXIuam9pbihxdW90ZShzdHIodmFsdWUpKSBmb3IgdmFsdWUgaW4gdikpCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgbmV3X3BhcmFtcy5hcHBlbmQoKGssIHF1b3RlKHN0cih2KSkpKQoKICAgICAgICByZXR1cm4gIiYiLmpvaW4oWyI9Ii5qb2luKG1hcChzdHIsIGl0ZW0pKSBmb3IgaXRlbSBpbiBuZXdfcGFyYW1zXSkKCiAgICBkZWYgZmlsZXNfcGFyYW1ldGVycygKICAgICAgICBzZWxmLAogICAgICAgIGZpbGVzOiBEaWN0W3N0ciwgVW5pb25bc3RyLCBieXRlcywgTGlzdFtzdHJdLCBMaXN0W2J5dGVzXSwgVHVwbGVbc3RyLCBieXRlc11dXSwKICAgICk6CiAgICAgICAgIiIiQnVpbGRzIGZvcm0gcGFyYW1ldGVycy4KCiAgICAgICAgOnBhcmFtIGZpbGVzOiBGaWxlIHBhcmFtZXRlcnMuCiAgICAgICAgOnJldHVybjogRm9ybSBwYXJhbWV0ZXJzIHdpdGggZmlsZXMuCiAgICAgICAgIiIiCiAgICAgICAgcGFyYW1zID0gW10KICAgICAgICBmb3IgaywgdiBpbiBmaWxlcy5pdGVtcygpOgogICAgICAgICAgICBpZiBpc2luc3RhbmNlKHYsIHN0cik6CiAgICAgICAgICAgICAgICB3aXRoIG9wZW4odiwgInJiIikgYXMgZjoKICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSA9IG9zLnBhdGguYmFzZW5hbWUoZi5uYW1lKQogICAgICAgICAgICAgICAgICAgIGZpbGVkYXRhID0gZi5yZWFkKCkKICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHYsIGJ5dGVzKToKICAgICAgICAgICAgICAgIGZpbGVuYW1lID0gawogICAgICAgICAgICAgICAgZmlsZWRhdGEgPSB2CiAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh2LCB0dXBsZSk6CiAgICAgICAgICAgICAgICBmaWxlbmFtZSwgZmlsZWRhdGEgPSB2CiAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh2LCBsaXN0KToKICAgICAgICAgICAgICAgIGZvciBmaWxlX3BhcmFtIGluIHY6CiAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmV4dGVuZChzZWxmLmZpbGVzX3BhcmFtZXRlcnMoe2s6IGZpbGVfcGFyYW19KSkKICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJVbnN1cHBvcnRlZCBmaWxlIHZhbHVlIikKICAgICAgICAgICAgbWltZXR5cGUgPSBtaW1ldHlwZXMuZ3Vlc3NfdHlwZShmaWxlbmFtZSlbMF0gb3IgImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIKICAgICAgICAgICAgcGFyYW1zLmFwcGVuZCh0dXBsZShbaywgdHVwbGUoW2ZpbGVuYW1lLCBmaWxlZGF0YSwgbWltZXR5cGVdKV0pKQogICAgICAgIHJldHVybiBwYXJhbXMKCiAgICBkZWYgc2VsZWN0X2hlYWRlcl9hY2NlcHQoc2VsZiwgYWNjZXB0czogTGlzdFtzdHJdKSAtPiBPcHRpb25hbFtzdHJdOgogICAgICAgICIiIlJldHVybnMgYEFjY2VwdGAgYmFzZWQgb24gYW4gYXJyYXkgb2YgYWNjZXB0cyBwcm92aWRlZC4KCiAgICAgICAgOnBhcmFtIGFjY2VwdHM6IExpc3Qgb2YgaGVhZGVycy4KICAgICAgICA6cmV0dXJuOiBBY2NlcHQgKGUuZy4gYXBwbGljYXRpb24vanNvbikuCiAgICAgICAgIiIiCiAgICAgICAgaWYgbm90IGFjY2VwdHM6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGZvciBhY2NlcHQgaW4gYWNjZXB0czoKICAgICAgICAgICAgaWYgcmUuc2VhcmNoKCJqc29uIiwgYWNjZXB0LCByZS5JR05PUkVDQVNFKToKICAgICAgICAgICAgICAgIHJldHVybiBhY2NlcHQKCiAgICAgICAgcmV0dXJuIGFjY2VwdHNbMF0KCiAgICBkZWYgc2VsZWN0X2hlYWRlcl9jb250ZW50X3R5cGUoc2VsZiwgY29udGVudF90eXBlcyk6CiAgICAgICAgIiIiUmV0dXJucyBgQ29udGVudC1UeXBlYCBiYXNlZCBvbiBhbiBhcnJheSBvZiBjb250ZW50X3R5cGVzIHByb3ZpZGVkLgoKICAgICAgICA6cGFyYW0gY29udGVudF90eXBlczogTGlzdCBvZiBjb250ZW50LXR5cGVzLgogICAgICAgIDpyZXR1cm46IENvbnRlbnQtVHlwZSAoZS5nLiBhcHBsaWNhdGlvbi9qc29uKS4KICAgICAgICAiIiIKICAgICAgICBpZiBub3QgY29udGVudF90eXBlczoKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgZm9yIGNvbnRlbnRfdHlwZSBpbiBjb250ZW50X3R5cGVzOgogICAgICAgICAgICBpZiByZS5zZWFyY2goImpzb24iLCBjb250ZW50X3R5cGUsIHJlLklHTk9SRUNBU0UpOgogICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnRfdHlwZQoKICAgICAgICByZXR1cm4gY29udGVudF90eXBlc1swXQoKICAgIGRlZiB1cGRhdGVfcGFyYW1zX2Zvcl9hdXRoKAogICAgICAgIHNlbGYsCiAgICAgICAgaGVhZGVycywKICAgICAgICBxdWVyaWVzLAogICAgICAgIGF1dGhfc2V0dGluZ3MsCiAgICAgICAgcmVzb3VyY2VfcGF0aCwKICAgICAgICBtZXRob2QsCiAgICAgICAgYm9keSwKICAgICAgICByZXF1ZXN0X2F1dGg9Tm9uZSwKICAgICkgLT4gTm9uZToKICAgICAgICAiIiJVcGRhdGVzIGhlYWRlciBhbmQgcXVlcnkgcGFyYW1zIGJhc2VkIG9uIGF1dGhlbnRpY2F0aW9uIHNldHRpbmcuCgogICAgICAgIDpwYXJhbSBoZWFkZXJzOiBIZWFkZXIgcGFyYW1ldGVycyBkaWN0IHRvIGJlIHVwZGF0ZWQuCiAgICAgICAgOnBhcmFtIHF1ZXJpZXM6IFF1ZXJ5IHBhcmFtZXRlcnMgdHVwbGUgbGlzdCB0byBiZSB1cGRhdGVkLgogICAgICAgIDpwYXJhbSBhdXRoX3NldHRpbmdzOiBBdXRoZW50aWNhdGlvbiBzZXR0aW5nIGlkZW50aWZpZXJzIGxpc3QuCiAgICAgICAgOnJlc291cmNlX3BhdGg6IEEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBIVFRQIHJlcXVlc3QgcmVzb3VyY2UgcGF0aC4KICAgICAgICA6bWV0aG9kOiBBIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgSFRUUCByZXF1ZXN0IG1ldGhvZC4KICAgICAgICA6Ym9keTogQSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBib2R5IG9mIHRoZSBIVFRQIHJlcXVlc3QuCiAgICAgICAgVGhlIG9iamVjdCB0eXBlIGlzIHRoZSByZXR1cm4gdmFsdWUgb2Ygc2FuaXRpemVfZm9yX3NlcmlhbGl6YXRpb24oKS4KICAgICAgICA6cGFyYW0gcmVxdWVzdF9hdXRoOiBpZiBzZXQsIHRoZSBwcm92aWRlZCBzZXR0aW5ncyB3aWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGUgdGhlIHRva2VuIGluIHRoZSBjb25maWd1cmF0aW9uLgogICAgICAgICIiIgogICAgICAgIGlmIG5vdCBhdXRoX3NldHRpbmdzOgogICAgICAgICAgICByZXR1cm4KCiAgICAgICAgaWYgcmVxdWVzdF9hdXRoOgogICAgICAgICAgICBzZWxmLl9hcHBseV9hdXRoX3BhcmFtcygKICAgICAgICAgICAgICAgIGhlYWRlcnMsIHF1ZXJpZXMsIHJlc291cmNlX3BhdGgsIG1ldGhvZCwgYm9keSwgcmVxdWVzdF9hdXRoCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICBmb3IgYXV0aCBpbiBhdXRoX3NldHRpbmdzOgogICAgICAgICAgICAgICAgYXV0aF9zZXR0aW5nID0gc2VsZi5jb25maWd1cmF0aW9uLmF1dGhfc2V0dGluZ3MoKS5nZXQoYXV0aCkKICAgICAgICAgICAgICAgIGlmIGF1dGhfc2V0dGluZzoKICAgICAgICAgICAgICAgICAgICBzZWxmLl9hcHBseV9hdXRoX3BhcmFtcygKICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycywgcXVlcmllcywgcmVzb3VyY2VfcGF0aCwgbWV0aG9kLCBib2R5LCBhdXRoX3NldHRpbmcKICAgICAgICAgICAgICAgICAgICApCgogICAgZGVmIF9hcHBseV9hdXRoX3BhcmFtcygKICAgICAgICBzZWxmLCBoZWFkZXJzLCBxdWVyaWVzLCByZXNvdXJjZV9wYXRoLCBtZXRob2QsIGJvZHksIGF1dGhfc2V0dGluZwogICAgKSAtPiBOb25lOgogICAgICAgICIiIlVwZGF0ZXMgdGhlIHJlcXVlc3QgcGFyYW1ldGVycyBiYXNlZCBvbiBhIHNpbmdsZSBhdXRoX3NldHRpbmcKCiAgICAgICAgOnBhcmFtIGhlYWRlcnM6IEhlYWRlciBwYXJhbWV0ZXJzIGRpY3QgdG8gYmUgdXBkYXRlZC4KICAgICAgICA6cGFyYW0gcXVlcmllczogUXVlcnkgcGFyYW1ldGVycyB0dXBsZSBsaXN0IHRvIGJlIHVwZGF0ZWQuCiAgICAgICAgOnJlc291cmNlX3BhdGg6IEEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBIVFRQIHJlcXVlc3QgcmVzb3VyY2UgcGF0aC4KICAgICAgICA6bWV0aG9kOiBBIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgSFRUUCByZXF1ZXN0IG1ldGhvZC4KICAgICAgICA6Ym9keTogQSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBib2R5IG9mIHRoZSBIVFRQIHJlcXVlc3QuCiAgICAgICAgVGhlIG9iamVjdCB0eXBlIGlzIHRoZSByZXR1cm4gdmFsdWUgb2Ygc2FuaXRpemVfZm9yX3NlcmlhbGl6YXRpb24oKS4KICAgICAgICA6cGFyYW0gYXV0aF9zZXR0aW5nOiBhdXRoIHNldHRpbmdzIGZvciB0aGUgZW5kcG9pbnQKICAgICAgICAiIiIKICAgICAgICBpZiBhdXRoX3NldHRpbmdbImluIl0gPT0gImNvb2tpZSI6CiAgICAgICAgICAgIGhlYWRlcnNbIkNvb2tpZSJdID0gYXV0aF9zZXR0aW5nWyJ2YWx1ZSJdCiAgICAgICAgZWxpZiBhdXRoX3NldHRpbmdbImluIl0gPT0gImhlYWRlciI6CiAgICAgICAgICAgIGlmIGF1dGhfc2V0dGluZ1sidHlwZSJdICE9ICJodHRwLXNpZ25hdHVyZSI6CiAgICAgICAgICAgICAgICBoZWFkZXJzW2F1dGhfc2V0dGluZ1sia2V5Il1dID0gYXV0aF9zZXR0aW5nWyJ2YWx1ZSJdCiAgICAgICAgZWxpZiBhdXRoX3NldHRpbmdbImluIl0gPT0gInF1ZXJ5IjoKICAgICAgICAgICAgcXVlcmllcy5hcHBlbmQoKGF1dGhfc2V0dGluZ1sia2V5Il0sIGF1dGhfc2V0dGluZ1sidmFsdWUiXSkpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmFpc2UgQXBpVmFsdWVFcnJvcigiQXV0aGVudGljYXRpb24gdG9rZW4gbXVzdCBiZSBpbiBgcXVlcnlgIG9yIGBoZWFkZXJgIikKCiAgICBkZWYgX19kZXNlcmlhbGl6ZV9maWxlKHNlbGYsIHJlc3BvbnNlKToKICAgICAgICAiIiJEZXNlcmlhbGl6ZXMgYm9keSB0byBmaWxlCgogICAgICAgIFNhdmVzIHJlc3BvbnNlIGJvZHkgaW50byBhIGZpbGUgaW4gYSB0ZW1wb3JhcnkgZm9sZGVyLAogICAgICAgIHVzaW5nIHRoZSBmaWxlbmFtZSBmcm9tIHRoZSBgQ29udGVudC1EaXNwb3NpdGlvbmAgaGVhZGVyIGlmIHByb3ZpZGVkLgoKICAgICAgICBoYW5kbGUgZmlsZSBkb3dubG9hZGluZwogICAgICAgIHNhdmUgcmVzcG9uc2UgYm9keSBpbnRvIGEgdG1wIGZpbGUgYW5kIHJldHVybiB0aGUgaW5zdGFuY2UKCiAgICAgICAgOnBhcmFtIHJlc3BvbnNlOiAgUkVTVFJlc3BvbnNlLgogICAgICAgIDpyZXR1cm46IGZpbGUgcGF0aC4KICAgICAgICAiIiIKICAgICAgICBmZCwgcGF0aCA9IHRlbXBmaWxlLm1rc3RlbXAoZGlyPXNlbGYuY29uZmlndXJhdGlvbi50ZW1wX2ZvbGRlcl9wYXRoKQogICAgICAgIG9zLmNsb3NlKGZkKQogICAgICAgIG9zLnJlbW92ZShwYXRoKQoKICAgICAgICBjb250ZW50X2Rpc3Bvc2l0aW9uID0gcmVzcG9uc2UuZ2V0aGVhZGVyKCJDb250ZW50LURpc3Bvc2l0aW9uIikKICAgICAgICBpZiBjb250ZW50X2Rpc3Bvc2l0aW9uOgogICAgICAgICAgICBtID0gcmUuc2VhcmNoKHInZmlsZW5hbWU9W1wnIl0/KFteXCciXHNdKylbXCciXT8nLCBjb250ZW50X2Rpc3Bvc2l0aW9uKQogICAgICAgICAgICBhc3NlcnQgbSBpcyBub3QgTm9uZSwgIlVuZXhwZWN0ZWQgJ2NvbnRlbnQtZGlzcG9zaXRpb24nIGhlYWRlciB2YWx1ZSIKICAgICAgICAgICAgZmlsZW5hbWUgPSBtLmdyb3VwKDEpCiAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKHBhdGgpLCBmaWxlbmFtZSkKCiAgICAgICAgd2l0aCBvcGVuKHBhdGgsICJ3YiIpIGFzIGY6CiAgICAgICAgICAgIGYud3JpdGUocmVzcG9uc2UuZGF0YSkKCiAgICAgICAgcmV0dXJuIHBhdGgKCiAgICBkZWYgX19kZXNlcmlhbGl6ZV9wcmltaXRpdmUoc2VsZiwgZGF0YSwga2xhc3MpOgogICAgICAgICIiIkRlc2VyaWFsaXplcyBzdHJpbmcgdG8gcHJpbWl0aXZlIHR5cGUuCgogICAgICAgIDpwYXJhbSBkYXRhOiBzdHIuCiAgICAgICAgOnBhcmFtIGtsYXNzOiBjbGFzcyBsaXRlcmFsLgoKICAgICAgICA6cmV0dXJuOiBpbnQsIGxvbmcsIGZsb2F0LCBzdHIsIGJvb2wuCiAgICAgICAgIiIiCiAgICAgICAgdHJ5OgogICAgICAgICAgICByZXR1cm4ga2xhc3MoZGF0YSkKICAgICAgICBleGNlcHQgVW5pY29kZUVuY29kZUVycm9yOgogICAgICAgICAgICByZXR1cm4gc3RyKGRhdGEpCiAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKICAgICAgICAgICAgcmV0dXJuIGRhdGEKCiAgICBkZWYgX19kZXNlcmlhbGl6ZV9vYmplY3Qoc2VsZiwgdmFsdWUpOgogICAgICAgICIiIlJldHVybiBhbiBvcmlnaW5hbCB2YWx1ZS4KCiAgICAgICAgOnJldHVybjogb2JqZWN0LgogICAgICAgICIiIgogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIGRlZiBfX2Rlc2VyaWFsaXplX2RhdGUoc2VsZiwgc3RyaW5nKToKICAgICAgICAiIiJEZXNlcmlhbGl6ZXMgc3RyaW5nIHRvIGRhdGUuCgogICAgICAgIDpwYXJhbSBzdHJpbmc6IHN0ci4KICAgICAgICA6cmV0dXJuOiBkYXRlLgogICAgICAgICIiIgogICAgICAgIHRyeToKICAgICAgICAgICAgcmV0dXJuIHBhcnNlKHN0cmluZykuZGF0ZSgpCiAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgogICAgICAgICAgICByZXR1cm4gc3RyaW5nCiAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAgICAgICAgIHJhaXNlIHJlc3QuQXBpRXhjZXB0aW9uKAogICAgICAgICAgICAgICAgc3RhdHVzPTAsIHJlYXNvbj0iRmFpbGVkIHRvIHBhcnNlIGB7MH1gIGFzIGRhdGUgb2JqZWN0Ii5mb3JtYXQoc3RyaW5nKQogICAgICAgICAgICApCgogICAgZGVmIF9fZGVzZXJpYWxpemVfZGF0ZXRpbWUoc2VsZiwgc3RyaW5nKToKICAgICAgICAiIiJEZXNlcmlhbGl6ZXMgc3RyaW5nIHRvIGRhdGV0aW1lLgoKICAgICAgICBUaGUgc3RyaW5nIHNob3VsZCBiZSBpbiBpc284NjAxIGRhdGV0aW1lIGZvcm1hdC4KCiAgICAgICAgOnBhcmFtIHN0cmluZzogc3RyLgogICAgICAgIDpyZXR1cm46IGRhdGV0aW1lLgogICAgICAgICIiIgogICAgICAgIHRyeToKICAgICAgICAgICAgcmV0dXJuIHBhcnNlKHN0cmluZykKICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgICAgICAgIHJldHVybiBzdHJpbmcKICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKICAgICAgICAgICAgcmFpc2UgcmVzdC5BcGlFeGNlcHRpb24oCiAgICAgICAgICAgICAgICBzdGF0dXM9MCwKICAgICAgICAgICAgICAgIHJlYXNvbj0oIkZhaWxlZCB0byBwYXJzZSBgezB9YCBhcyBkYXRldGltZSBvYmplY3QiLmZvcm1hdChzdHJpbmcpKSwKICAgICAgICAgICAgKQoKICAgIGRlZiBfX2Rlc2VyaWFsaXplX2VudW0oc2VsZiwgZGF0YSwga2xhc3MpOgogICAgICAgICIiIkRlc2VyaWFsaXplcyBwcmltaXRpdmUgdHlwZSB0byBlbnVtLgoKICAgICAgICA6cGFyYW0gZGF0YTogcHJpbWl0aXZlIHR5cGUuCiAgICAgICAgOnBhcmFtIGtsYXNzOiBjbGFzcyBsaXRlcmFsLgogICAgICAgIDpyZXR1cm46IGVudW0gdmFsdWUuCiAgICAgICAgIiIiCiAgICAgICAgdHJ5OgogICAgICAgICAgICByZXR1cm4ga2xhc3MoZGF0YSkKICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKICAgICAgICAgICAgcmFpc2UgcmVzdC5BcGlFeGNlcHRpb24oCiAgICAgICAgICAgICAgICBzdGF0dXM9MCwgcmVhc29uPSgiRmFpbGVkIHRvIHBhcnNlIGB7MH1gIGFzIGB7MX1gIi5mb3JtYXQoZGF0YSwga2xhc3MpKQogICAgICAgICAgICApCgogICAgZGVmIF9fZGVzZXJpYWxpemVfbW9kZWwoc2VsZiwgZGF0YSwga2xhc3MpOgogICAgICAgICIiIkRlc2VyaWFsaXplcyBsaXN0IG9yIGRpY3QgdG8gbW9kZWwuCgogICAgICAgIDpwYXJhbSBkYXRhOiBkaWN0LCBsaXN0LgogICAgICAgIDpwYXJhbSBrbGFzczogY2xhc3MgbGl0ZXJhbC4KICAgICAgICA6cmV0dXJuOiBtb2RlbCBvYmplY3QuCiAgICAgICAgIiIiCgogICAgICAgIHJldHVybiBrbGFzcy5mcm9tX2RpY3QoZGF0YSkK \ No newline at end of file diff --git a/fireblocks/api_response.py b/fireblocks/api_response.py index 1ce13729..1c50f5eb 100644 --- a/fireblocks/api_response.py +++ b/fireblocks/api_response.py @@ -1,20 +1 @@ -"""API response object.""" - -from __future__ import annotations -from typing import Optional, Generic, Mapping, TypeVar -from pydantic import Field, StrictInt, StrictBytes, BaseModel - -T = TypeVar("T") - - -class ApiResponse(BaseModel, Generic[T]): - """ - API response object - """ - - status_code: StrictInt = Field(description="HTTP status code") - headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") - data: T = Field(description="Deserialized data given the data type") - raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") - - model_config = {"arbitrary_types_allowed": True} +IiIiQVBJIHJlc3BvbnNlIG9iamVjdC4iIiIKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBHZW5lcmljLCBNYXBwaW5nLCBUeXBlVmFyCmZyb20gcHlkYW50aWMgaW1wb3J0IEZpZWxkLCBTdHJpY3RJbnQsIFN0cmljdEJ5dGVzLCBCYXNlTW9kZWwKClQgPSBUeXBlVmFyKCJUIikKCgpjbGFzcyBBcGlSZXNwb25zZShCYXNlTW9kZWwsIEdlbmVyaWNbVF0pOgogICAgIiIiCiAgICBBUEkgcmVzcG9uc2Ugb2JqZWN0CiAgICAiIiIKCiAgICBzdGF0dXNfY29kZTogU3RyaWN0SW50ID0gRmllbGQoZGVzY3JpcHRpb249IkhUVFAgc3RhdHVzIGNvZGUiKQogICAgaGVhZGVyczogT3B0aW9uYWxbTWFwcGluZ1tzdHIsIHN0cl1dID0gRmllbGQoTm9uZSwgZGVzY3JpcHRpb249IkhUVFAgaGVhZGVycyIpCiAgICBkYXRhOiBUID0gRmllbGQoZGVzY3JpcHRpb249IkRlc2VyaWFsaXplZCBkYXRhIGdpdmVuIHRoZSBkYXRhIHR5cGUiKQogICAgcmF3X2RhdGE6IFN0cmljdEJ5dGVzID0gRmllbGQoZGVzY3JpcHRpb249IlJhdyBkYXRhIChIVFRQIHJlc3BvbnNlIGJvZHkpIikKCiAgICBtb2RlbF9jb25maWcgPSB7ImFyYml0cmFyeV90eXBlc19hbGxvd2VkIjogVHJ1ZX0K \ No newline at end of file diff --git a/fireblocks/base_path.py b/fireblocks/base_path.py index 2d0f3b68..9cc2cf7f 100644 --- a/fireblocks/base_path.py +++ b/fireblocks/base_path.py @@ -1,20 +1 @@ -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - -from enum import Enum - - -class BasePath(str, Enum): - Sandbox = "https://sandbox-api.fireblocks.io/v1" - US = "https://api.fireblocks.io/v1" - EU = "https://eu-api.fireblocks.io/v1" - EU2 = "https://eu2-api.fireblocks.io/v1" +IiIiCkZpcmVibG9ja3MgQVBJCgpGaXJlYmxvY2tzIHByb3ZpZGVzIGEgc3VpdGUgb2YgYXBwbGljYXRpb25zIHRvIG1hbmFnZSBkaWdpdGFsIGFzc2V0IG9wZXJhdGlvbnMgYW5kIGEgY29tcGxldGUgZGV2ZWxvcG1lbnQgcGxhdGZvcm0gdG8gYnVpbGQgeW91ciBidXNpbmVzcyBvbiB0aGUgYmxvY2tjaGFpbi4gIC0gVmlzaXQgb3VyIHdlYnNpdGUgZm9yIG1vcmUgaW5mb3JtYXRpb246IFtGaXJlYmxvY2tzIFdlYnNpdGVdKGh0dHBzOi8vZmlyZWJsb2Nrcy5jb20pIC0gVmlzaXQgb3VyIGRldmVsb3BlciBkb2NzOiBbRmlyZWJsb2NrcyBEZXZQb3J0YWxdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbSkKClRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgpDb250YWN0OiBkZXZlbG9wZXJzQGZpcmVibG9ja3MuY29tCkdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQoKRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKZnJvbSBlbnVtIGltcG9ydCBFbnVtCgoKY2xhc3MgQmFzZVBhdGgoc3RyLCBFbnVtKToKICAgIFNhbmRib3ggPSAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgogICAgVVMgPSAiaHR0cHM6Ly9hcGkuZmlyZWJsb2Nrcy5pby92MSIKICAgIEVVID0gImh0dHBzOi8vZXUtYXBpLmZpcmVibG9ja3MuaW8vdjEiCiAgICBFVTIgPSAiaHR0cHM6Ly9ldTItYXBpLmZpcmVibG9ja3MuaW8vdjEiCg== \ No newline at end of file diff --git a/fireblocks/bearer_token_provider.py b/fireblocks/bearer_token_provider.py index 1b4adfe9..9eed230c 100644 --- a/fireblocks/bearer_token_provider.py +++ b/fireblocks/bearer_token_provider.py @@ -1,51 +1 @@ -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - -import json -import jwt -import uuid -import time -from hashlib import sha256 -from typing import Dict, Optional - - -class BearerTokenProvider: - def __init__(self, api_key: str, secret_key: str): - self._api_key = api_key - self._secret_key = secret_key - - def get_token(self, method: str, path: str, body: Optional[Dict]) -> str: - if not self._is_payload_signature_required(method): - body = None - return self._sign_jwt(path, body) - - def _is_payload_signature_required(self, method: str) -> bool: - return method.upper() in ["POST", "PATCH", "PUT"] - - def _sign_jwt(self, path, body_json): - timestamp_secs = int(time.time()) - nonce = str(uuid.uuid4()) - body_hash = sha256( - (json.dumps(body_json) if body_json is not None else "").encode("utf-8") - ).hexdigest() - token_expiration_time = 55 # Token expiration time in seconds - - token = { - "uri": path, - "nonce": nonce, - "iat": timestamp_secs, - "exp": timestamp_secs + token_expiration_time, - "sub": self._api_key, - "bodyHash": body_hash, - } - - return jwt.encode(token, key=self._secret_key, algorithm="RS256") +IiIiCkZpcmVibG9ja3MgQVBJCgpGaXJlYmxvY2tzIHByb3ZpZGVzIGEgc3VpdGUgb2YgYXBwbGljYXRpb25zIHRvIG1hbmFnZSBkaWdpdGFsIGFzc2V0IG9wZXJhdGlvbnMgYW5kIGEgY29tcGxldGUgZGV2ZWxvcG1lbnQgcGxhdGZvcm0gdG8gYnVpbGQgeW91ciBidXNpbmVzcyBvbiB0aGUgYmxvY2tjaGFpbi4gIC0gVmlzaXQgb3VyIHdlYnNpdGUgZm9yIG1vcmUgaW5mb3JtYXRpb246IFtGaXJlYmxvY2tzIFdlYnNpdGVdKGh0dHBzOi8vZmlyZWJsb2Nrcy5jb20pIC0gVmlzaXQgb3VyIGRldmVsb3BlciBkb2NzOiBbRmlyZWJsb2NrcyBEZXZQb3J0YWxdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbSkKClRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgpDb250YWN0OiBkZXZlbG9wZXJzQGZpcmVibG9ja3MuY29tCkdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQoKRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IGpzb24KaW1wb3J0IGp3dAppbXBvcnQgdXVpZAppbXBvcnQgdGltZQpmcm9tIGhhc2hsaWIgaW1wb3J0IHNoYTI1Ngpmcm9tIHR5cGluZyBpbXBvcnQgRGljdCwgT3B0aW9uYWwKCgpjbGFzcyBCZWFyZXJUb2tlblByb3ZpZGVyOgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwaV9rZXk6IHN0ciwgc2VjcmV0X2tleTogc3RyKToKICAgICAgICBzZWxmLl9hcGlfa2V5ID0gYXBpX2tleQogICAgICAgIHNlbGYuX3NlY3JldF9rZXkgPSBzZWNyZXRfa2V5CgogICAgZGVmIGdldF90b2tlbihzZWxmLCBtZXRob2Q6IHN0ciwgcGF0aDogc3RyLCBib2R5OiBPcHRpb25hbFtEaWN0XSkgLT4gc3RyOgogICAgICAgIGlmIG5vdCBzZWxmLl9pc19wYXlsb2FkX3NpZ25hdHVyZV9yZXF1aXJlZChtZXRob2QpOgogICAgICAgICAgICBib2R5ID0gTm9uZQogICAgICAgIHJldHVybiBzZWxmLl9zaWduX2p3dChwYXRoLCBib2R5KQoKICAgIGRlZiBfaXNfcGF5bG9hZF9zaWduYXR1cmVfcmVxdWlyZWQoc2VsZiwgbWV0aG9kOiBzdHIpIC0+IGJvb2w6CiAgICAgICAgcmV0dXJuIG1ldGhvZC51cHBlcigpIGluIFsiUE9TVCIsICJQQVRDSCIsICJQVVQiXQoKICAgIGRlZiBfc2lnbl9qd3Qoc2VsZiwgcGF0aCwgYm9keV9qc29uKToKICAgICAgICB0aW1lc3RhbXBfc2VjcyA9IGludCh0aW1lLnRpbWUoKSkKICAgICAgICBub25jZSA9IHN0cih1dWlkLnV1aWQ0KCkpCiAgICAgICAgYm9keV9oYXNoID0gc2hhMjU2KAogICAgICAgICAgICAoanNvbi5kdW1wcyhib2R5X2pzb24pIGlmIGJvZHlfanNvbiBpcyBub3QgTm9uZSBlbHNlICIiKS5lbmNvZGUoInV0Zi04IikKICAgICAgICApLmhleGRpZ2VzdCgpCiAgICAgICAgdG9rZW5fZXhwaXJhdGlvbl90aW1lID0gNTUgICMgVG9rZW4gZXhwaXJhdGlvbiB0aW1lIGluIHNlY29uZHMKCiAgICAgICAgdG9rZW4gPSB7CiAgICAgICAgICAgICJ1cmkiOiBwYXRoLAogICAgICAgICAgICAibm9uY2UiOiBub25jZSwKICAgICAgICAgICAgImlhdCI6IHRpbWVzdGFtcF9zZWNzLAogICAgICAgICAgICAiZXhwIjogdGltZXN0YW1wX3NlY3MgKyB0b2tlbl9leHBpcmF0aW9uX3RpbWUsCiAgICAgICAgICAgICJzdWIiOiBzZWxmLl9hcGlfa2V5LAogICAgICAgICAgICAiYm9keUhhc2giOiBib2R5X2hhc2gsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gand0LmVuY29kZSh0b2tlbiwga2V5PXNlbGYuX3NlY3JldF9rZXksIGFsZ29yaXRobT0iUlMyNTYiKQo= \ No newline at end of file diff --git a/fireblocks/client.py b/fireblocks/client.py index 32633838..ff21494e 100644 --- a/fireblocks/client.py +++ b/fireblocks/client.py @@ -1,408 +1 @@ -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - -import os -from fireblocks.threaded_api_client import ThreadedApiClient -from fireblocks.client_configuration import ClientConfiguration - -from fireblocks.api.api_user_api import ApiUserApi -from fireblocks.api.audit_logs_api import AuditLogsApi -from fireblocks.api.blockchains_assets_api import BlockchainsAssetsApi -from fireblocks.api.compliance_api import ComplianceApi -from fireblocks.api.compliance_screening_configuration_api import ( - ComplianceScreeningConfigurationApi, -) -from fireblocks.api.connected_accounts_beta_api import ConnectedAccountsBetaApi -from fireblocks.api.console_user_api import ConsoleUserApi -from fireblocks.api.contract_interactions_api import ContractInteractionsApi -from fireblocks.api.contract_templates_api import ContractTemplatesApi -from fireblocks.api.contracts_api import ContractsApi -from fireblocks.api.cosigners_beta_api import CosignersBetaApi -from fireblocks.api.deployed_contracts_api import DeployedContractsApi -from fireblocks.api.embedded_wallets_api import EmbeddedWalletsApi -from fireblocks.api.exchange_accounts_api import ExchangeAccountsApi -from fireblocks.api.external_wallets_api import ExternalWalletsApi -from fireblocks.api.fiat_accounts_api import FiatAccountsApi -from fireblocks.api.gas_stations_api import GasStationsApi -from fireblocks.api.internal_wallets_api import InternalWalletsApi -from fireblocks.api.key_link_beta_api import KeyLinkBetaApi -from fireblocks.api.keys_beta_api import KeysBetaApi -from fireblocks.api.nfts_api import NFTsApi -from fireblocks.api.network_connections_api import NetworkConnectionsApi -from fireblocks.api.ota_beta_api import OTABetaApi -from fireblocks.api.off_exchanges_api import OffExchangesApi -from fireblocks.api.onchain_data_api import OnchainDataApi -from fireblocks.api.payments_payout_api import PaymentsPayoutApi -from fireblocks.api.policy_editor_v2_beta_api import PolicyEditorV2BetaApi -from fireblocks.api.policy_editor_beta_api import PolicyEditorBetaApi -from fireblocks.api.reset_device_api import ResetDeviceApi -from fireblocks.api.smart_transfer_api import SmartTransferApi -from fireblocks.api.staking_api import StakingApi -from fireblocks.api.tr_link_api import TRLinkApi -from fireblocks.api.tags_api import TagsApi -from fireblocks.api.tokenization_api import TokenizationApi -from fireblocks.api.trading_beta_api import TradingBetaApi -from fireblocks.api.transactions_api import TransactionsApi -from fireblocks.api.travel_rule_api import TravelRuleApi -from fireblocks.api.user_groups_beta_api import UserGroupsBetaApi -from fireblocks.api.users_api import UsersApi -from fireblocks.api.vaults_api import VaultsApi -from fireblocks.api.web3_connections_api import Web3ConnectionsApi -from fireblocks.api.webhooks_api import WebhooksApi -from fireblocks.api.webhooks_v2_api import WebhooksV2Api -from fireblocks.api.workspace_api import WorkspaceApi -from fireblocks.api.workspace_status_beta_api import WorkspaceStatusBetaApi -from fireblocks.api.whitelist_ip_addresses_api import WhitelistIpAddressesApi - -"""This class contains the Fireblocks API client. -:param configuration: The configuration to use for the client. -""" - - -class Fireblocks: - def __init__(self, configuration: ClientConfiguration = None): - self._api_client = ThreadedApiClient(configuration=configuration) - - # APIs - self._api_user = None - self._audit_logs = None - self._blockchains_assets = None - self._compliance = None - self._compliance_screening_configuration = None - self._connected_accounts_beta = None - self._console_user = None - self._contract_interactions = None - self._contract_templates = None - self._contracts = None - self._cosigners_beta = None - self._deployed_contracts = None - self._embedded_wallets = None - self._exchange_accounts = None - self._external_wallets = None - self._fiat_accounts = None - self._gas_stations = None - self._internal_wallets = None - self._key_link_beta = None - self._keys_beta = None - self._nfts = None - self._network_connections = None - self._ota_beta = None - self._off_exchanges = None - self._onchain_data = None - self._payments_payout = None - self._policy_editor_v2_beta = None - self._policy_editor_beta = None - self._reset_device = None - self._smart_transfer = None - self._staking = None - self._tr_link = None - self._tags = None - self._tokenization = None - self._trading_beta = None - self._transactions = None - self._travel_rule = None - self._user_groups_beta = None - self._users = None - self._vaults = None - self._web3_connections = None - self._webhooks = None - self._webhooks_v2 = None - self._workspace = None - self._workspace_status_beta = None - self._whitelist_ip_addresses = None - - def __enter__(self): - return self - - def __exit__(self, exc_type, exc_value, traceback): - self.close() - - def close(self): - self._api_client.close() - - @property - def api_user(self) -> ApiUserApi: - if self._api_user is None: - self._api_user = ApiUserApi(self._api_client) - return self._api_user - - @property - def audit_logs(self) -> AuditLogsApi: - if self._audit_logs is None: - self._audit_logs = AuditLogsApi(self._api_client) - return self._audit_logs - - @property - def blockchains_assets(self) -> BlockchainsAssetsApi: - if self._blockchains_assets is None: - self._blockchains_assets = BlockchainsAssetsApi(self._api_client) - return self._blockchains_assets - - @property - def compliance(self) -> ComplianceApi: - if self._compliance is None: - self._compliance = ComplianceApi(self._api_client) - return self._compliance - - @property - def compliance_screening_configuration(self) -> ComplianceScreeningConfigurationApi: - if self._compliance_screening_configuration is None: - self._compliance_screening_configuration = ( - ComplianceScreeningConfigurationApi(self._api_client) - ) - return self._compliance_screening_configuration - - @property - def connected_accounts_beta(self) -> ConnectedAccountsBetaApi: - if self._connected_accounts_beta is None: - self._connected_accounts_beta = ConnectedAccountsBetaApi(self._api_client) - return self._connected_accounts_beta - - @property - def console_user(self) -> ConsoleUserApi: - if self._console_user is None: - self._console_user = ConsoleUserApi(self._api_client) - return self._console_user - - @property - def contract_interactions(self) -> ContractInteractionsApi: - if self._contract_interactions is None: - self._contract_interactions = ContractInteractionsApi(self._api_client) - return self._contract_interactions - - @property - def contract_templates(self) -> ContractTemplatesApi: - if self._contract_templates is None: - self._contract_templates = ContractTemplatesApi(self._api_client) - return self._contract_templates - - @property - def contracts(self) -> ContractsApi: - if self._contracts is None: - self._contracts = ContractsApi(self._api_client) - return self._contracts - - @property - def cosigners_beta(self) -> CosignersBetaApi: - if self._cosigners_beta is None: - self._cosigners_beta = CosignersBetaApi(self._api_client) - return self._cosigners_beta - - @property - def deployed_contracts(self) -> DeployedContractsApi: - if self._deployed_contracts is None: - self._deployed_contracts = DeployedContractsApi(self._api_client) - return self._deployed_contracts - - @property - def embedded_wallets(self) -> EmbeddedWalletsApi: - if self._embedded_wallets is None: - self._embedded_wallets = EmbeddedWalletsApi(self._api_client) - return self._embedded_wallets - - @property - def exchange_accounts(self) -> ExchangeAccountsApi: - if self._exchange_accounts is None: - self._exchange_accounts = ExchangeAccountsApi(self._api_client) - return self._exchange_accounts - - @property - def external_wallets(self) -> ExternalWalletsApi: - if self._external_wallets is None: - self._external_wallets = ExternalWalletsApi(self._api_client) - return self._external_wallets - - @property - def fiat_accounts(self) -> FiatAccountsApi: - if self._fiat_accounts is None: - self._fiat_accounts = FiatAccountsApi(self._api_client) - return self._fiat_accounts - - @property - def gas_stations(self) -> GasStationsApi: - if self._gas_stations is None: - self._gas_stations = GasStationsApi(self._api_client) - return self._gas_stations - - @property - def internal_wallets(self) -> InternalWalletsApi: - if self._internal_wallets is None: - self._internal_wallets = InternalWalletsApi(self._api_client) - return self._internal_wallets - - @property - def key_link_beta(self) -> KeyLinkBetaApi: - if self._key_link_beta is None: - self._key_link_beta = KeyLinkBetaApi(self._api_client) - return self._key_link_beta - - @property - def keys_beta(self) -> KeysBetaApi: - if self._keys_beta is None: - self._keys_beta = KeysBetaApi(self._api_client) - return self._keys_beta - - @property - def nfts(self) -> NFTsApi: - if self._nfts is None: - self._nfts = NFTsApi(self._api_client) - return self._nfts - - @property - def network_connections(self) -> NetworkConnectionsApi: - if self._network_connections is None: - self._network_connections = NetworkConnectionsApi(self._api_client) - return self._network_connections - - @property - def ota_beta(self) -> OTABetaApi: - if self._ota_beta is None: - self._ota_beta = OTABetaApi(self._api_client) - return self._ota_beta - - @property - def off_exchanges(self) -> OffExchangesApi: - if self._off_exchanges is None: - self._off_exchanges = OffExchangesApi(self._api_client) - return self._off_exchanges - - @property - def onchain_data(self) -> OnchainDataApi: - if self._onchain_data is None: - self._onchain_data = OnchainDataApi(self._api_client) - return self._onchain_data - - @property - def payments_payout(self) -> PaymentsPayoutApi: - if self._payments_payout is None: - self._payments_payout = PaymentsPayoutApi(self._api_client) - return self._payments_payout - - @property - def policy_editor_v2_beta(self) -> PolicyEditorV2BetaApi: - if self._policy_editor_v2_beta is None: - self._policy_editor_v2_beta = PolicyEditorV2BetaApi(self._api_client) - return self._policy_editor_v2_beta - - @property - def policy_editor_beta(self) -> PolicyEditorBetaApi: - if self._policy_editor_beta is None: - self._policy_editor_beta = PolicyEditorBetaApi(self._api_client) - return self._policy_editor_beta - - @property - def reset_device(self) -> ResetDeviceApi: - if self._reset_device is None: - self._reset_device = ResetDeviceApi(self._api_client) - return self._reset_device - - @property - def smart_transfer(self) -> SmartTransferApi: - if self._smart_transfer is None: - self._smart_transfer = SmartTransferApi(self._api_client) - return self._smart_transfer - - @property - def staking(self) -> StakingApi: - if self._staking is None: - self._staking = StakingApi(self._api_client) - return self._staking - - @property - def tr_link(self) -> TRLinkApi: - if self._tr_link is None: - self._tr_link = TRLinkApi(self._api_client) - return self._tr_link - - @property - def tags(self) -> TagsApi: - if self._tags is None: - self._tags = TagsApi(self._api_client) - return self._tags - - @property - def tokenization(self) -> TokenizationApi: - if self._tokenization is None: - self._tokenization = TokenizationApi(self._api_client) - return self._tokenization - - @property - def trading_beta(self) -> TradingBetaApi: - if self._trading_beta is None: - self._trading_beta = TradingBetaApi(self._api_client) - return self._trading_beta - - @property - def transactions(self) -> TransactionsApi: - if self._transactions is None: - self._transactions = TransactionsApi(self._api_client) - return self._transactions - - @property - def travel_rule(self) -> TravelRuleApi: - if self._travel_rule is None: - self._travel_rule = TravelRuleApi(self._api_client) - return self._travel_rule - - @property - def user_groups_beta(self) -> UserGroupsBetaApi: - if self._user_groups_beta is None: - self._user_groups_beta = UserGroupsBetaApi(self._api_client) - return self._user_groups_beta - - @property - def users(self) -> UsersApi: - if self._users is None: - self._users = UsersApi(self._api_client) - return self._users - - @property - def vaults(self) -> VaultsApi: - if self._vaults is None: - self._vaults = VaultsApi(self._api_client) - return self._vaults - - @property - def web3_connections(self) -> Web3ConnectionsApi: - if self._web3_connections is None: - self._web3_connections = Web3ConnectionsApi(self._api_client) - return self._web3_connections - - @property - def webhooks(self) -> WebhooksApi: - if self._webhooks is None: - self._webhooks = WebhooksApi(self._api_client) - return self._webhooks - - @property - def webhooks_v2(self) -> WebhooksV2Api: - if self._webhooks_v2 is None: - self._webhooks_v2 = WebhooksV2Api(self._api_client) - return self._webhooks_v2 - - @property - def workspace(self) -> WorkspaceApi: - if self._workspace is None: - self._workspace = WorkspaceApi(self._api_client) - return self._workspace - - @property - def workspace_status_beta(self) -> WorkspaceStatusBetaApi: - if self._workspace_status_beta is None: - self._workspace_status_beta = WorkspaceStatusBetaApi(self._api_client) - return self._workspace_status_beta - - @property - def whitelist_ip_addresses(self) -> WhitelistIpAddressesApi: - if self._whitelist_ip_addresses is None: - self._whitelist_ip_addresses = WhitelistIpAddressesApi(self._api_client) - return self._whitelist_ip_addresses +IiIiCkZpcmVibG9ja3MgQVBJCgpGaXJlYmxvY2tzIHByb3ZpZGVzIGEgc3VpdGUgb2YgYXBwbGljYXRpb25zIHRvIG1hbmFnZSBkaWdpdGFsIGFzc2V0IG9wZXJhdGlvbnMgYW5kIGEgY29tcGxldGUgZGV2ZWxvcG1lbnQgcGxhdGZvcm0gdG8gYnVpbGQgeW91ciBidXNpbmVzcyBvbiB0aGUgYmxvY2tjaGFpbi4gIC0gVmlzaXQgb3VyIHdlYnNpdGUgZm9yIG1vcmUgaW5mb3JtYXRpb246IFtGaXJlYmxvY2tzIFdlYnNpdGVdKGh0dHBzOi8vZmlyZWJsb2Nrcy5jb20pIC0gVmlzaXQgb3VyIGRldmVsb3BlciBkb2NzOiBbRmlyZWJsb2NrcyBEZXZQb3J0YWxdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbSkKClRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgpDb250YWN0OiBkZXZlbG9wZXJzQGZpcmVibG9ja3MuY29tCkdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQoKRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IG9zCmZyb20gZmlyZWJsb2Nrcy50aHJlYWRlZF9hcGlfY2xpZW50IGltcG9ydCBUaHJlYWRlZEFwaUNsaWVudApmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KCmZyb20gZmlyZWJsb2Nrcy5hcGkuYXBpX3VzZXJfYXBpIGltcG9ydCBBcGlVc2VyQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuYXVkaXRfbG9nc19hcGkgaW1wb3J0IEF1ZGl0TG9nc0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmJsb2NrY2hhaW5zX2Fzc2V0c19hcGkgaW1wb3J0IEJsb2NrY2hhaW5zQXNzZXRzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuY29tcGxpYW5jZV9hcGkgaW1wb3J0IENvbXBsaWFuY2VBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5jb21wbGlhbmNlX3NjcmVlbmluZ19jb25maWd1cmF0aW9uX2FwaSBpbXBvcnQgKAogICAgQ29tcGxpYW5jZVNjcmVlbmluZ0NvbmZpZ3VyYXRpb25BcGksCikKZnJvbSBmaXJlYmxvY2tzLmFwaS5jb25uZWN0ZWRfYWNjb3VudHNfYmV0YV9hcGkgaW1wb3J0IENvbm5lY3RlZEFjY291bnRzQmV0YUFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmNvbnNvbGVfdXNlcl9hcGkgaW1wb3J0IENvbnNvbGVVc2VyQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuY29udHJhY3RfaW50ZXJhY3Rpb25zX2FwaSBpbXBvcnQgQ29udHJhY3RJbnRlcmFjdGlvbnNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5jb250cmFjdF90ZW1wbGF0ZXNfYXBpIGltcG9ydCBDb250cmFjdFRlbXBsYXRlc0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmNvbnRyYWN0c19hcGkgaW1wb3J0IENvbnRyYWN0c0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmNvc2lnbmVyc19iZXRhX2FwaSBpbXBvcnQgQ29zaWduZXJzQmV0YUFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmRlcGxveWVkX2NvbnRyYWN0c19hcGkgaW1wb3J0IERlcGxveWVkQ29udHJhY3RzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuZW1iZWRkZWRfd2FsbGV0c19hcGkgaW1wb3J0IEVtYmVkZGVkV2FsbGV0c0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmV4Y2hhbmdlX2FjY291bnRzX2FwaSBpbXBvcnQgRXhjaGFuZ2VBY2NvdW50c0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmV4dGVybmFsX3dhbGxldHNfYXBpIGltcG9ydCBFeHRlcm5hbFdhbGxldHNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5maWF0X2FjY291bnRzX2FwaSBpbXBvcnQgRmlhdEFjY291bnRzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuZ2FzX3N0YXRpb25zX2FwaSBpbXBvcnQgR2FzU3RhdGlvbnNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5pbnRlcm5hbF93YWxsZXRzX2FwaSBpbXBvcnQgSW50ZXJuYWxXYWxsZXRzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkua2V5X2xpbmtfYmV0YV9hcGkgaW1wb3J0IEtleUxpbmtCZXRhQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkua2V5c19iZXRhX2FwaSBpbXBvcnQgS2V5c0JldGFBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5uZnRzX2FwaSBpbXBvcnQgTkZUc0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLm5ldHdvcmtfY29ubmVjdGlvbnNfYXBpIGltcG9ydCBOZXR3b3JrQ29ubmVjdGlvbnNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5vdGFfYmV0YV9hcGkgaW1wb3J0IE9UQUJldGFBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5vZmZfZXhjaGFuZ2VzX2FwaSBpbXBvcnQgT2ZmRXhjaGFuZ2VzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkub25jaGFpbl9kYXRhX2FwaSBpbXBvcnQgT25jaGFpbkRhdGFBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5wYXltZW50c19wYXlvdXRfYXBpIGltcG9ydCBQYXltZW50c1BheW91dEFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLnBvbGljeV9lZGl0b3JfdjJfYmV0YV9hcGkgaW1wb3J0IFBvbGljeUVkaXRvclYyQmV0YUFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLnBvbGljeV9lZGl0b3JfYmV0YV9hcGkgaW1wb3J0IFBvbGljeUVkaXRvckJldGFBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5yZXNldF9kZXZpY2VfYXBpIGltcG9ydCBSZXNldERldmljZUFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLnNtYXJ0X3RyYW5zZmVyX2FwaSBpbXBvcnQgU21hcnRUcmFuc2ZlckFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLnN0YWtpbmdfYXBpIGltcG9ydCBTdGFraW5nQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkudHJfbGlua19hcGkgaW1wb3J0IFRSTGlua0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLnRhZ3NfYXBpIGltcG9ydCBUYWdzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkudG9rZW5pemF0aW9uX2FwaSBpbXBvcnQgVG9rZW5pemF0aW9uQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkudHJhZGluZ19iZXRhX2FwaSBpbXBvcnQgVHJhZGluZ0JldGFBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS50cmFuc2FjdGlvbnNfYXBpIGltcG9ydCBUcmFuc2FjdGlvbnNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS50cmF2ZWxfcnVsZV9hcGkgaW1wb3J0IFRyYXZlbFJ1bGVBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS51c2VyX2dyb3Vwc19iZXRhX2FwaSBpbXBvcnQgVXNlckdyb3Vwc0JldGFBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS51c2Vyc19hcGkgaW1wb3J0IFVzZXJzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkudmF1bHRzX2FwaSBpbXBvcnQgVmF1bHRzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkud2ViM19jb25uZWN0aW9uc19hcGkgaW1wb3J0IFdlYjNDb25uZWN0aW9uc0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLndlYmhvb2tzX2FwaSBpbXBvcnQgV2ViaG9va3NBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS53ZWJob29rc192Ml9hcGkgaW1wb3J0IFdlYmhvb2tzVjJBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS53b3Jrc3BhY2VfYXBpIGltcG9ydCBXb3Jrc3BhY2VBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS53b3Jrc3BhY2Vfc3RhdHVzX2JldGFfYXBpIGltcG9ydCBXb3Jrc3BhY2VTdGF0dXNCZXRhQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkud2hpdGVsaXN0X2lwX2FkZHJlc3Nlc19hcGkgaW1wb3J0IFdoaXRlbGlzdElwQWRkcmVzc2VzQXBpCgoiIiJUaGlzIGNsYXNzIGNvbnRhaW5zIHRoZSBGaXJlYmxvY2tzIEFQSSBjbGllbnQuCjpwYXJhbSBjb25maWd1cmF0aW9uOiBUaGUgY29uZmlndXJhdGlvbiB0byB1c2UgZm9yIHRoZSBjbGllbnQuCiIiIgoKCmNsYXNzIEZpcmVibG9ja3M6CiAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlndXJhdGlvbjogQ2xpZW50Q29uZmlndXJhdGlvbiA9IE5vbmUpOgogICAgICAgIHNlbGYuX2FwaV9jbGllbnQgPSBUaHJlYWRlZEFwaUNsaWVudChjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24pCgogICAgICAgICMgQVBJcwogICAgICAgIHNlbGYuX2FwaV91c2VyID0gTm9uZQogICAgICAgIHNlbGYuX2F1ZGl0X2xvZ3MgPSBOb25lCiAgICAgICAgc2VsZi5fYmxvY2tjaGFpbnNfYXNzZXRzID0gTm9uZQogICAgICAgIHNlbGYuX2NvbXBsaWFuY2UgPSBOb25lCiAgICAgICAgc2VsZi5fY29tcGxpYW5jZV9zY3JlZW5pbmdfY29uZmlndXJhdGlvbiA9IE5vbmUKICAgICAgICBzZWxmLl9jb25uZWN0ZWRfYWNjb3VudHNfYmV0YSA9IE5vbmUKICAgICAgICBzZWxmLl9jb25zb2xlX3VzZXIgPSBOb25lCiAgICAgICAgc2VsZi5fY29udHJhY3RfaW50ZXJhY3Rpb25zID0gTm9uZQogICAgICAgIHNlbGYuX2NvbnRyYWN0X3RlbXBsYXRlcyA9IE5vbmUKICAgICAgICBzZWxmLl9jb250cmFjdHMgPSBOb25lCiAgICAgICAgc2VsZi5fY29zaWduZXJzX2JldGEgPSBOb25lCiAgICAgICAgc2VsZi5fZGVwbG95ZWRfY29udHJhY3RzID0gTm9uZQogICAgICAgIHNlbGYuX2VtYmVkZGVkX3dhbGxldHMgPSBOb25lCiAgICAgICAgc2VsZi5fZXhjaGFuZ2VfYWNjb3VudHMgPSBOb25lCiAgICAgICAgc2VsZi5fZXh0ZXJuYWxfd2FsbGV0cyA9IE5vbmUKICAgICAgICBzZWxmLl9maWF0X2FjY291bnRzID0gTm9uZQogICAgICAgIHNlbGYuX2dhc19zdGF0aW9ucyA9IE5vbmUKICAgICAgICBzZWxmLl9pbnRlcm5hbF93YWxsZXRzID0gTm9uZQogICAgICAgIHNlbGYuX2tleV9saW5rX2JldGEgPSBOb25lCiAgICAgICAgc2VsZi5fa2V5c19iZXRhID0gTm9uZQogICAgICAgIHNlbGYuX25mdHMgPSBOb25lCiAgICAgICAgc2VsZi5fbmV0d29ya19jb25uZWN0aW9ucyA9IE5vbmUKICAgICAgICBzZWxmLl9vdGFfYmV0YSA9IE5vbmUKICAgICAgICBzZWxmLl9vZmZfZXhjaGFuZ2VzID0gTm9uZQogICAgICAgIHNlbGYuX29uY2hhaW5fZGF0YSA9IE5vbmUKICAgICAgICBzZWxmLl9wYXltZW50c19wYXlvdXQgPSBOb25lCiAgICAgICAgc2VsZi5fcG9saWN5X2VkaXRvcl92Ml9iZXRhID0gTm9uZQogICAgICAgIHNlbGYuX3BvbGljeV9lZGl0b3JfYmV0YSA9IE5vbmUKICAgICAgICBzZWxmLl9yZXNldF9kZXZpY2UgPSBOb25lCiAgICAgICAgc2VsZi5fc21hcnRfdHJhbnNmZXIgPSBOb25lCiAgICAgICAgc2VsZi5fc3Rha2luZyA9IE5vbmUKICAgICAgICBzZWxmLl90cl9saW5rID0gTm9uZQogICAgICAgIHNlbGYuX3RhZ3MgPSBOb25lCiAgICAgICAgc2VsZi5fdG9rZW5pemF0aW9uID0gTm9uZQogICAgICAgIHNlbGYuX3RyYWRpbmdfYmV0YSA9IE5vbmUKICAgICAgICBzZWxmLl90cmFuc2FjdGlvbnMgPSBOb25lCiAgICAgICAgc2VsZi5fdHJhdmVsX3J1bGUgPSBOb25lCiAgICAgICAgc2VsZi5fdXNlcl9ncm91cHNfYmV0YSA9IE5vbmUKICAgICAgICBzZWxmLl91c2VycyA9IE5vbmUKICAgICAgICBzZWxmLl92YXVsdHMgPSBOb25lCiAgICAgICAgc2VsZi5fd2ViM19jb25uZWN0aW9ucyA9IE5vbmUKICAgICAgICBzZWxmLl93ZWJob29rcyA9IE5vbmUKICAgICAgICBzZWxmLl93ZWJob29rc192MiA9IE5vbmUKICAgICAgICBzZWxmLl93b3Jrc3BhY2UgPSBOb25lCiAgICAgICAgc2VsZi5fd29ya3NwYWNlX3N0YXR1c19iZXRhID0gTm9uZQogICAgICAgIHNlbGYuX3doaXRlbGlzdF9pcF9hZGRyZXNzZXMgPSBOb25lCgogICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKICAgICAgICByZXR1cm4gc2VsZgoKICAgIGRlZiBfX2V4aXRfXyhzZWxmLCBleGNfdHlwZSwgZXhjX3ZhbHVlLCB0cmFjZWJhY2spOgogICAgICAgIHNlbGYuY2xvc2UoKQoKICAgIGRlZiBjbG9zZShzZWxmKToKICAgICAgICBzZWxmLl9hcGlfY2xpZW50LmNsb3NlKCkKCiAgICBAcHJvcGVydHkKICAgIGRlZiBhcGlfdXNlcihzZWxmKSAtPiBBcGlVc2VyQXBpOgogICAgICAgIGlmIHNlbGYuX2FwaV91c2VyIGlzIE5vbmU6CiAgICAgICAgICAgIHNlbGYuX2FwaV91c2VyID0gQXBpVXNlckFwaShzZWxmLl9hcGlfY2xpZW50KQogICAgICAgIHJldHVybiBzZWxmLl9hcGlfdXNlcgoKICAgIEBwcm9wZXJ0eQogICAgZGVmIGF1ZGl0X2xvZ3Moc2VsZikgLT4gQXVkaXRMb2dzQXBpOgogICAgICAgIGlmIHNlbGYuX2F1ZGl0X2xvZ3MgaXMgTm9uZToKICAgICAgICAgICAgc2VsZi5fYXVkaXRfbG9ncyA9IEF1ZGl0TG9nc0FwaShzZWxmLl9hcGlfY2xpZW50KQogICAgICAgIHJldHVybiBzZWxmLl9hdWRpdF9sb2dzCgogICAgQHByb3BlcnR5CiAgICBkZWYgYmxvY2tjaGFpbnNfYXNzZXRzKHNlbGYpIC0+IEJsb2NrY2hhaW5zQXNzZXRzQXBpOgogICAgICAgIGlmIHNlbGYuX2Jsb2NrY2hhaW5zX2Fzc2V0cyBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl9ibG9ja2NoYWluc19hc3NldHMgPSBCbG9ja2NoYWluc0Fzc2V0c0FwaShzZWxmLl9hcGlfY2xpZW50KQogICAgICAgIHJldHVybiBzZWxmLl9ibG9ja2NoYWluc19hc3NldHMKCiAgICBAcHJvcGVydHkKICAgIGRlZiBjb21wbGlhbmNlKHNlbGYpIC0+IENvbXBsaWFuY2VBcGk6CiAgICAgICAgaWYgc2VsZi5fY29tcGxpYW5jZSBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl9jb21wbGlhbmNlID0gQ29tcGxpYW5jZUFwaShzZWxmLl9hcGlfY2xpZW50KQogICAgICAgIHJldHVybiBzZWxmLl9jb21wbGlhbmNlCgogICAgQHByb3BlcnR5CiAgICBkZWYgY29tcGxpYW5jZV9zY3JlZW5pbmdfY29uZmlndXJhdGlvbihzZWxmKSAtPiBDb21wbGlhbmNlU2NyZWVuaW5nQ29uZmlndXJhdGlvbkFwaToKICAgICAgICBpZiBzZWxmLl9jb21wbGlhbmNlX3NjcmVlbmluZ19jb25maWd1cmF0aW9uIGlzIE5vbmU6CiAgICAgICAgICAgIHNlbGYuX2NvbXBsaWFuY2Vfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb24gPSAoCiAgICAgICAgICAgICAgICBDb21wbGlhbmNlU2NyZWVuaW5nQ29uZmlndXJhdGlvbkFwaShzZWxmLl9hcGlfY2xpZW50KQogICAgICAgICAgICApCiAgICAgICAgcmV0dXJuIHNlbGYuX2NvbXBsaWFuY2Vfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb24KCiAgICBAcHJvcGVydHkKICAgIGRlZiBjb25uZWN0ZWRfYWNjb3VudHNfYmV0YShzZWxmKSAtPiBDb25uZWN0ZWRBY2NvdW50c0JldGFBcGk6CiAgICAgICAgaWYgc2VsZi5fY29ubmVjdGVkX2FjY291bnRzX2JldGEgaXMgTm9uZToKICAgICAgICAgICAgc2VsZi5fY29ubmVjdGVkX2FjY291bnRzX2JldGEgPSBDb25uZWN0ZWRBY2NvdW50c0JldGFBcGkoc2VsZi5fYXBpX2NsaWVudCkKICAgICAgICByZXR1cm4gc2VsZi5fY29ubmVjdGVkX2FjY291bnRzX2JldGEKCiAgICBAcHJvcGVydHkKICAgIGRlZiBjb25zb2xlX3VzZXIoc2VsZikgLT4gQ29uc29sZVVzZXJBcGk6CiAgICAgICAgaWYgc2VsZi5fY29uc29sZV91c2VyIGlzIE5vbmU6CiAgICAgICAgICAgIHNlbGYuX2NvbnNvbGVfdXNlciA9IENvbnNvbGVVc2VyQXBpKHNlbGYuX2FwaV9jbGllbnQpCiAgICAgICAgcmV0dXJuIHNlbGYuX2NvbnNvbGVfdXNlcgoKICAgIEBwcm9wZXJ0eQogICAgZGVmIGNvbnRyYWN0X2ludGVyYWN0aW9ucyhzZWxmKSAtPiBDb250cmFjdEludGVyYWN0aW9uc0FwaToKICAgICAgICBpZiBzZWxmLl9jb250cmFjdF9pbnRlcmFjdGlvbnMgaXMgTm9uZToKICAgICAgICAgICAgc2VsZi5fY29udHJhY3RfaW50ZXJhY3Rpb25zID0gQ29udHJhY3RJbnRlcmFjdGlvbnNBcGkoc2VsZi5fYXBpX2NsaWVudCkKICAgICAgICByZXR1cm4gc2VsZi5fY29udHJhY3RfaW50ZXJhY3Rpb25zCgogICAgQHByb3BlcnR5CiAgICBkZWYgY29udHJhY3RfdGVtcGxhdGVzKHNlbGYpIC0+IENvbnRyYWN0VGVtcGxhdGVzQXBpOgogICAgICAgIGlmIHNlbGYuX2NvbnRyYWN0X3RlbXBsYXRlcyBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl9jb250cmFjdF90ZW1wbGF0ZXMgPSBDb250cmFjdFRlbXBsYXRlc0FwaShzZWxmLl9hcGlfY2xpZW50KQogICAgICAgIHJldHVybiBzZWxmLl9jb250cmFjdF90ZW1wbGF0ZXMKCiAgICBAcHJvcGVydHkKICAgIGRlZiBjb250cmFjdHMoc2VsZikgLT4gQ29udHJhY3RzQXBpOgogICAgICAgIGlmIHNlbGYuX2NvbnRyYWN0cyBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl9jb250cmFjdHMgPSBDb250cmFjdHNBcGkoc2VsZi5fYXBpX2NsaWVudCkKICAgICAgICByZXR1cm4gc2VsZi5fY29udHJhY3RzCgogICAgQHByb3BlcnR5CiAgICBkZWYgY29zaWduZXJzX2JldGEoc2VsZikgLT4gQ29zaWduZXJzQmV0YUFwaToKICAgICAgICBpZiBzZWxmLl9jb3NpZ25lcnNfYmV0YSBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl9jb3NpZ25lcnNfYmV0YSA9IENvc2lnbmVyc0JldGFBcGkoc2VsZi5fYXBpX2NsaWVudCkKICAgICAgICByZXR1cm4gc2VsZi5fY29zaWduZXJzX2JldGEKCiAgICBAcHJvcGVydHkKICAgIGRlZiBkZXBsb3llZF9jb250cmFjdHMoc2VsZikgLT4gRGVwbG95ZWRDb250cmFjdHNBcGk6CiAgICAgICAgaWYgc2VsZi5fZGVwbG95ZWRfY29udHJhY3RzIGlzIE5vbmU6CiAgICAgICAgICAgIHNlbGYuX2RlcGxveWVkX2NvbnRyYWN0cyA9IERlcGxveWVkQ29udHJhY3RzQXBpKHNlbGYuX2FwaV9jbGllbnQpCiAgICAgICAgcmV0dXJuIHNlbGYuX2RlcGxveWVkX2NvbnRyYWN0cwoKICAgIEBwcm9wZXJ0eQogICAgZGVmIGVtYmVkZGVkX3dhbGxldHMoc2VsZikgLT4gRW1iZWRkZWRXYWxsZXRzQXBpOgogICAgICAgIGlmIHNlbGYuX2VtYmVkZGVkX3dhbGxldHMgaXMgTm9uZToKICAgICAgICAgICAgc2VsZi5fZW1iZWRkZWRfd2FsbGV0cyA9IEVtYmVkZGVkV2FsbGV0c0FwaShzZWxmLl9hcGlfY2xpZW50KQogICAgICAgIHJldHVybiBzZWxmLl9lbWJlZGRlZF93YWxsZXRzCgogICAgQHByb3BlcnR5CiAgICBkZWYgZXhjaGFuZ2VfYWNjb3VudHMoc2VsZikgLT4gRXhjaGFuZ2VBY2NvdW50c0FwaToKICAgICAgICBpZiBzZWxmLl9leGNoYW5nZV9hY2NvdW50cyBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl9leGNoYW5nZV9hY2NvdW50cyA9IEV4Y2hhbmdlQWNjb3VudHNBcGkoc2VsZi5fYXBpX2NsaWVudCkKICAgICAgICByZXR1cm4gc2VsZi5fZXhjaGFuZ2VfYWNjb3VudHMKCiAgICBAcHJvcGVydHkKICAgIGRlZiBleHRlcm5hbF93YWxsZXRzKHNlbGYpIC0+IEV4dGVybmFsV2FsbGV0c0FwaToKICAgICAgICBpZiBzZWxmLl9leHRlcm5hbF93YWxsZXRzIGlzIE5vbmU6CiAgICAgICAgICAgIHNlbGYuX2V4dGVybmFsX3dhbGxldHMgPSBFeHRlcm5hbFdhbGxldHNBcGkoc2VsZi5fYXBpX2NsaWVudCkKICAgICAgICByZXR1cm4gc2VsZi5fZXh0ZXJuYWxfd2FsbGV0cwoKICAgIEBwcm9wZXJ0eQogICAgZGVmIGZpYXRfYWNjb3VudHMoc2VsZikgLT4gRmlhdEFjY291bnRzQXBpOgogICAgICAgIGlmIHNlbGYuX2ZpYXRfYWNjb3VudHMgaXMgTm9uZToKICAgICAgICAgICAgc2VsZi5fZmlhdF9hY2NvdW50cyA9IEZpYXRBY2NvdW50c0FwaShzZWxmLl9hcGlfY2xpZW50KQogICAgICAgIHJldHVybiBzZWxmLl9maWF0X2FjY291bnRzCgogICAgQHByb3BlcnR5CiAgICBkZWYgZ2FzX3N0YXRpb25zKHNlbGYpIC0+IEdhc1N0YXRpb25zQXBpOgogICAgICAgIGlmIHNlbGYuX2dhc19zdGF0aW9ucyBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl9nYXNfc3RhdGlvbnMgPSBHYXNTdGF0aW9uc0FwaShzZWxmLl9hcGlfY2xpZW50KQogICAgICAgIHJldHVybiBzZWxmLl9nYXNfc3RhdGlvbnMKCiAgICBAcHJvcGVydHkKICAgIGRlZiBpbnRlcm5hbF93YWxsZXRzKHNlbGYpIC0+IEludGVybmFsV2FsbGV0c0FwaToKICAgICAgICBpZiBzZWxmLl9pbnRlcm5hbF93YWxsZXRzIGlzIE5vbmU6CiAgICAgICAgICAgIHNlbGYuX2ludGVybmFsX3dhbGxldHMgPSBJbnRlcm5hbFdhbGxldHNBcGkoc2VsZi5fYXBpX2NsaWVudCkKICAgICAgICByZXR1cm4gc2VsZi5faW50ZXJuYWxfd2FsbGV0cwoKICAgIEBwcm9wZXJ0eQogICAgZGVmIGtleV9saW5rX2JldGEoc2VsZikgLT4gS2V5TGlua0JldGFBcGk6CiAgICAgICAgaWYgc2VsZi5fa2V5X2xpbmtfYmV0YSBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl9rZXlfbGlua19iZXRhID0gS2V5TGlua0JldGFBcGkoc2VsZi5fYXBpX2NsaWVudCkKICAgICAgICByZXR1cm4gc2VsZi5fa2V5X2xpbmtfYmV0YQoKICAgIEBwcm9wZXJ0eQogICAgZGVmIGtleXNfYmV0YShzZWxmKSAtPiBLZXlzQmV0YUFwaToKICAgICAgICBpZiBzZWxmLl9rZXlzX2JldGEgaXMgTm9uZToKICAgICAgICAgICAgc2VsZi5fa2V5c19iZXRhID0gS2V5c0JldGFBcGkoc2VsZi5fYXBpX2NsaWVudCkKICAgICAgICByZXR1cm4gc2VsZi5fa2V5c19iZXRhCgogICAgQHByb3BlcnR5CiAgICBkZWYgbmZ0cyhzZWxmKSAtPiBORlRzQXBpOgogICAgICAgIGlmIHNlbGYuX25mdHMgaXMgTm9uZToKICAgICAgICAgICAgc2VsZi5fbmZ0cyA9IE5GVHNBcGkoc2VsZi5fYXBpX2NsaWVudCkKICAgICAgICByZXR1cm4gc2VsZi5fbmZ0cwoKICAgIEBwcm9wZXJ0eQogICAgZGVmIG5ldHdvcmtfY29ubmVjdGlvbnMoc2VsZikgLT4gTmV0d29ya0Nvbm5lY3Rpb25zQXBpOgogICAgICAgIGlmIHNlbGYuX25ldHdvcmtfY29ubmVjdGlvbnMgaXMgTm9uZToKICAgICAgICAgICAgc2VsZi5fbmV0d29ya19jb25uZWN0aW9ucyA9IE5ldHdvcmtDb25uZWN0aW9uc0FwaShzZWxmLl9hcGlfY2xpZW50KQogICAgICAgIHJldHVybiBzZWxmLl9uZXR3b3JrX2Nvbm5lY3Rpb25zCgogICAgQHByb3BlcnR5CiAgICBkZWYgb3RhX2JldGEoc2VsZikgLT4gT1RBQmV0YUFwaToKICAgICAgICBpZiBzZWxmLl9vdGFfYmV0YSBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl9vdGFfYmV0YSA9IE9UQUJldGFBcGkoc2VsZi5fYXBpX2NsaWVudCkKICAgICAgICByZXR1cm4gc2VsZi5fb3RhX2JldGEKCiAgICBAcHJvcGVydHkKICAgIGRlZiBvZmZfZXhjaGFuZ2VzKHNlbGYpIC0+IE9mZkV4Y2hhbmdlc0FwaToKICAgICAgICBpZiBzZWxmLl9vZmZfZXhjaGFuZ2VzIGlzIE5vbmU6CiAgICAgICAgICAgIHNlbGYuX29mZl9leGNoYW5nZXMgPSBPZmZFeGNoYW5nZXNBcGkoc2VsZi5fYXBpX2NsaWVudCkKICAgICAgICByZXR1cm4gc2VsZi5fb2ZmX2V4Y2hhbmdlcwoKICAgIEBwcm9wZXJ0eQogICAgZGVmIG9uY2hhaW5fZGF0YShzZWxmKSAtPiBPbmNoYWluRGF0YUFwaToKICAgICAgICBpZiBzZWxmLl9vbmNoYWluX2RhdGEgaXMgTm9uZToKICAgICAgICAgICAgc2VsZi5fb25jaGFpbl9kYXRhID0gT25jaGFpbkRhdGFBcGkoc2VsZi5fYXBpX2NsaWVudCkKICAgICAgICByZXR1cm4gc2VsZi5fb25jaGFpbl9kYXRhCgogICAgQHByb3BlcnR5CiAgICBkZWYgcGF5bWVudHNfcGF5b3V0KHNlbGYpIC0+IFBheW1lbnRzUGF5b3V0QXBpOgogICAgICAgIGlmIHNlbGYuX3BheW1lbnRzX3BheW91dCBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl9wYXltZW50c19wYXlvdXQgPSBQYXltZW50c1BheW91dEFwaShzZWxmLl9hcGlfY2xpZW50KQogICAgICAgIHJldHVybiBzZWxmLl9wYXltZW50c19wYXlvdXQKCiAgICBAcHJvcGVydHkKICAgIGRlZiBwb2xpY3lfZWRpdG9yX3YyX2JldGEoc2VsZikgLT4gUG9saWN5RWRpdG9yVjJCZXRhQXBpOgogICAgICAgIGlmIHNlbGYuX3BvbGljeV9lZGl0b3JfdjJfYmV0YSBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl9wb2xpY3lfZWRpdG9yX3YyX2JldGEgPSBQb2xpY3lFZGl0b3JWMkJldGFBcGkoc2VsZi5fYXBpX2NsaWVudCkKICAgICAgICByZXR1cm4gc2VsZi5fcG9saWN5X2VkaXRvcl92Ml9iZXRhCgogICAgQHByb3BlcnR5CiAgICBkZWYgcG9saWN5X2VkaXRvcl9iZXRhKHNlbGYpIC0+IFBvbGljeUVkaXRvckJldGFBcGk6CiAgICAgICAgaWYgc2VsZi5fcG9saWN5X2VkaXRvcl9iZXRhIGlzIE5vbmU6CiAgICAgICAgICAgIHNlbGYuX3BvbGljeV9lZGl0b3JfYmV0YSA9IFBvbGljeUVkaXRvckJldGFBcGkoc2VsZi5fYXBpX2NsaWVudCkKICAgICAgICByZXR1cm4gc2VsZi5fcG9saWN5X2VkaXRvcl9iZXRhCgogICAgQHByb3BlcnR5CiAgICBkZWYgcmVzZXRfZGV2aWNlKHNlbGYpIC0+IFJlc2V0RGV2aWNlQXBpOgogICAgICAgIGlmIHNlbGYuX3Jlc2V0X2RldmljZSBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl9yZXNldF9kZXZpY2UgPSBSZXNldERldmljZUFwaShzZWxmLl9hcGlfY2xpZW50KQogICAgICAgIHJldHVybiBzZWxmLl9yZXNldF9kZXZpY2UKCiAgICBAcHJvcGVydHkKICAgIGRlZiBzbWFydF90cmFuc2ZlcihzZWxmKSAtPiBTbWFydFRyYW5zZmVyQXBpOgogICAgICAgIGlmIHNlbGYuX3NtYXJ0X3RyYW5zZmVyIGlzIE5vbmU6CiAgICAgICAgICAgIHNlbGYuX3NtYXJ0X3RyYW5zZmVyID0gU21hcnRUcmFuc2ZlckFwaShzZWxmLl9hcGlfY2xpZW50KQogICAgICAgIHJldHVybiBzZWxmLl9zbWFydF90cmFuc2ZlcgoKICAgIEBwcm9wZXJ0eQogICAgZGVmIHN0YWtpbmcoc2VsZikgLT4gU3Rha2luZ0FwaToKICAgICAgICBpZiBzZWxmLl9zdGFraW5nIGlzIE5vbmU6CiAgICAgICAgICAgIHNlbGYuX3N0YWtpbmcgPSBTdGFraW5nQXBpKHNlbGYuX2FwaV9jbGllbnQpCiAgICAgICAgcmV0dXJuIHNlbGYuX3N0YWtpbmcKCiAgICBAcHJvcGVydHkKICAgIGRlZiB0cl9saW5rKHNlbGYpIC0+IFRSTGlua0FwaToKICAgICAgICBpZiBzZWxmLl90cl9saW5rIGlzIE5vbmU6CiAgICAgICAgICAgIHNlbGYuX3RyX2xpbmsgPSBUUkxpbmtBcGkoc2VsZi5fYXBpX2NsaWVudCkKICAgICAgICByZXR1cm4gc2VsZi5fdHJfbGluawoKICAgIEBwcm9wZXJ0eQogICAgZGVmIHRhZ3Moc2VsZikgLT4gVGFnc0FwaToKICAgICAgICBpZiBzZWxmLl90YWdzIGlzIE5vbmU6CiAgICAgICAgICAgIHNlbGYuX3RhZ3MgPSBUYWdzQXBpKHNlbGYuX2FwaV9jbGllbnQpCiAgICAgICAgcmV0dXJuIHNlbGYuX3RhZ3MKCiAgICBAcHJvcGVydHkKICAgIGRlZiB0b2tlbml6YXRpb24oc2VsZikgLT4gVG9rZW5pemF0aW9uQXBpOgogICAgICAgIGlmIHNlbGYuX3Rva2VuaXphdGlvbiBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl90b2tlbml6YXRpb24gPSBUb2tlbml6YXRpb25BcGkoc2VsZi5fYXBpX2NsaWVudCkKICAgICAgICByZXR1cm4gc2VsZi5fdG9rZW5pemF0aW9uCgogICAgQHByb3BlcnR5CiAgICBkZWYgdHJhZGluZ19iZXRhKHNlbGYpIC0+IFRyYWRpbmdCZXRhQXBpOgogICAgICAgIGlmIHNlbGYuX3RyYWRpbmdfYmV0YSBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl90cmFkaW5nX2JldGEgPSBUcmFkaW5nQmV0YUFwaShzZWxmLl9hcGlfY2xpZW50KQogICAgICAgIHJldHVybiBzZWxmLl90cmFkaW5nX2JldGEKCiAgICBAcHJvcGVydHkKICAgIGRlZiB0cmFuc2FjdGlvbnMoc2VsZikgLT4gVHJhbnNhY3Rpb25zQXBpOgogICAgICAgIGlmIHNlbGYuX3RyYW5zYWN0aW9ucyBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl90cmFuc2FjdGlvbnMgPSBUcmFuc2FjdGlvbnNBcGkoc2VsZi5fYXBpX2NsaWVudCkKICAgICAgICByZXR1cm4gc2VsZi5fdHJhbnNhY3Rpb25zCgogICAgQHByb3BlcnR5CiAgICBkZWYgdHJhdmVsX3J1bGUoc2VsZikgLT4gVHJhdmVsUnVsZUFwaToKICAgICAgICBpZiBzZWxmLl90cmF2ZWxfcnVsZSBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl90cmF2ZWxfcnVsZSA9IFRyYXZlbFJ1bGVBcGkoc2VsZi5fYXBpX2NsaWVudCkKICAgICAgICByZXR1cm4gc2VsZi5fdHJhdmVsX3J1bGUKCiAgICBAcHJvcGVydHkKICAgIGRlZiB1c2VyX2dyb3Vwc19iZXRhKHNlbGYpIC0+IFVzZXJHcm91cHNCZXRhQXBpOgogICAgICAgIGlmIHNlbGYuX3VzZXJfZ3JvdXBzX2JldGEgaXMgTm9uZToKICAgICAgICAgICAgc2VsZi5fdXNlcl9ncm91cHNfYmV0YSA9IFVzZXJHcm91cHNCZXRhQXBpKHNlbGYuX2FwaV9jbGllbnQpCiAgICAgICAgcmV0dXJuIHNlbGYuX3VzZXJfZ3JvdXBzX2JldGEKCiAgICBAcHJvcGVydHkKICAgIGRlZiB1c2VycyhzZWxmKSAtPiBVc2Vyc0FwaToKICAgICAgICBpZiBzZWxmLl91c2VycyBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl91c2VycyA9IFVzZXJzQXBpKHNlbGYuX2FwaV9jbGllbnQpCiAgICAgICAgcmV0dXJuIHNlbGYuX3VzZXJzCgogICAgQHByb3BlcnR5CiAgICBkZWYgdmF1bHRzKHNlbGYpIC0+IFZhdWx0c0FwaToKICAgICAgICBpZiBzZWxmLl92YXVsdHMgaXMgTm9uZToKICAgICAgICAgICAgc2VsZi5fdmF1bHRzID0gVmF1bHRzQXBpKHNlbGYuX2FwaV9jbGllbnQpCiAgICAgICAgcmV0dXJuIHNlbGYuX3ZhdWx0cwoKICAgIEBwcm9wZXJ0eQogICAgZGVmIHdlYjNfY29ubmVjdGlvbnMoc2VsZikgLT4gV2ViM0Nvbm5lY3Rpb25zQXBpOgogICAgICAgIGlmIHNlbGYuX3dlYjNfY29ubmVjdGlvbnMgaXMgTm9uZToKICAgICAgICAgICAgc2VsZi5fd2ViM19jb25uZWN0aW9ucyA9IFdlYjNDb25uZWN0aW9uc0FwaShzZWxmLl9hcGlfY2xpZW50KQogICAgICAgIHJldHVybiBzZWxmLl93ZWIzX2Nvbm5lY3Rpb25zCgogICAgQHByb3BlcnR5CiAgICBkZWYgd2ViaG9va3Moc2VsZikgLT4gV2ViaG9va3NBcGk6CiAgICAgICAgaWYgc2VsZi5fd2ViaG9va3MgaXMgTm9uZToKICAgICAgICAgICAgc2VsZi5fd2ViaG9va3MgPSBXZWJob29rc0FwaShzZWxmLl9hcGlfY2xpZW50KQogICAgICAgIHJldHVybiBzZWxmLl93ZWJob29rcwoKICAgIEBwcm9wZXJ0eQogICAgZGVmIHdlYmhvb2tzX3YyKHNlbGYpIC0+IFdlYmhvb2tzVjJBcGk6CiAgICAgICAgaWYgc2VsZi5fd2ViaG9va3NfdjIgaXMgTm9uZToKICAgICAgICAgICAgc2VsZi5fd2ViaG9va3NfdjIgPSBXZWJob29rc1YyQXBpKHNlbGYuX2FwaV9jbGllbnQpCiAgICAgICAgcmV0dXJuIHNlbGYuX3dlYmhvb2tzX3YyCgogICAgQHByb3BlcnR5CiAgICBkZWYgd29ya3NwYWNlKHNlbGYpIC0+IFdvcmtzcGFjZUFwaToKICAgICAgICBpZiBzZWxmLl93b3Jrc3BhY2UgaXMgTm9uZToKICAgICAgICAgICAgc2VsZi5fd29ya3NwYWNlID0gV29ya3NwYWNlQXBpKHNlbGYuX2FwaV9jbGllbnQpCiAgICAgICAgcmV0dXJuIHNlbGYuX3dvcmtzcGFjZQoKICAgIEBwcm9wZXJ0eQogICAgZGVmIHdvcmtzcGFjZV9zdGF0dXNfYmV0YShzZWxmKSAtPiBXb3Jrc3BhY2VTdGF0dXNCZXRhQXBpOgogICAgICAgIGlmIHNlbGYuX3dvcmtzcGFjZV9zdGF0dXNfYmV0YSBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl93b3Jrc3BhY2Vfc3RhdHVzX2JldGEgPSBXb3Jrc3BhY2VTdGF0dXNCZXRhQXBpKHNlbGYuX2FwaV9jbGllbnQpCiAgICAgICAgcmV0dXJuIHNlbGYuX3dvcmtzcGFjZV9zdGF0dXNfYmV0YQoKICAgIEBwcm9wZXJ0eQogICAgZGVmIHdoaXRlbGlzdF9pcF9hZGRyZXNzZXMoc2VsZikgLT4gV2hpdGVsaXN0SXBBZGRyZXNzZXNBcGk6CiAgICAgICAgaWYgc2VsZi5fd2hpdGVsaXN0X2lwX2FkZHJlc3NlcyBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl93aGl0ZWxpc3RfaXBfYWRkcmVzc2VzID0gV2hpdGVsaXN0SXBBZGRyZXNzZXNBcGkoc2VsZi5fYXBpX2NsaWVudCkKICAgICAgICByZXR1cm4gc2VsZi5fd2hpdGVsaXN0X2lwX2FkZHJlc3Nlcwo= \ No newline at end of file diff --git a/fireblocks/client_configuration.py b/fireblocks/client_configuration.py index 79776325..ee01ffa4 100644 --- a/fireblocks/client_configuration.py +++ b/fireblocks/client_configuration.py @@ -1,35 +1 @@ -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - -from pydantic import Field, BaseModel -from typing import Optional, Union -from fireblocks.base_path import BasePath -from fireblocks.additional_options import AdditionalOptions - -"""This class contains various settings of the Fireblocks API client. -:param api_key: The API key to use for the client. -:param secret_key: The secret key to use for the client. -:param base_path: The base path to use for the client. -:param additional_options: The additional options to use for the client. -""" - - -class ClientConfiguration(BaseModel): - api_key: Optional[str] = Field(None, description="API key") - secret_key: Optional[str] = Field(None, description="Secret key") - base_path: Optional[Union[BasePath, str]] = Field( - None, description="The server base url" - ) - additional_options: Optional[AdditionalOptions] = Field( - default_factory=AdditionalOptions, - description="Additional options to use for the client", - ) +IiIiCkZpcmVibG9ja3MgQVBJCgpGaXJlYmxvY2tzIHByb3ZpZGVzIGEgc3VpdGUgb2YgYXBwbGljYXRpb25zIHRvIG1hbmFnZSBkaWdpdGFsIGFzc2V0IG9wZXJhdGlvbnMgYW5kIGEgY29tcGxldGUgZGV2ZWxvcG1lbnQgcGxhdGZvcm0gdG8gYnVpbGQgeW91ciBidXNpbmVzcyBvbiB0aGUgYmxvY2tjaGFpbi4gIC0gVmlzaXQgb3VyIHdlYnNpdGUgZm9yIG1vcmUgaW5mb3JtYXRpb246IFtGaXJlYmxvY2tzIFdlYnNpdGVdKGh0dHBzOi8vZmlyZWJsb2Nrcy5jb20pIC0gVmlzaXQgb3VyIGRldmVsb3BlciBkb2NzOiBbRmlyZWJsb2NrcyBEZXZQb3J0YWxdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbSkKClRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgpDb250YWN0OiBkZXZlbG9wZXJzQGZpcmVibG9ja3MuY29tCkdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQoKRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQsIEJhc2VNb2RlbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFVuaW9uCmZyb20gZmlyZWJsb2Nrcy5iYXNlX3BhdGggaW1wb3J0IEJhc2VQYXRoCmZyb20gZmlyZWJsb2Nrcy5hZGRpdGlvbmFsX29wdGlvbnMgaW1wb3J0IEFkZGl0aW9uYWxPcHRpb25zCgoiIiJUaGlzIGNsYXNzIGNvbnRhaW5zIHZhcmlvdXMgc2V0dGluZ3Mgb2YgdGhlIEZpcmVibG9ja3MgQVBJIGNsaWVudC4KOnBhcmFtIGFwaV9rZXk6IFRoZSBBUEkga2V5IHRvIHVzZSBmb3IgdGhlIGNsaWVudC4KOnBhcmFtIHNlY3JldF9rZXk6IFRoZSBzZWNyZXQga2V5IHRvIHVzZSBmb3IgdGhlIGNsaWVudC4KOnBhcmFtIGJhc2VfcGF0aDogVGhlIGJhc2UgcGF0aCB0byB1c2UgZm9yIHRoZSBjbGllbnQuCjpwYXJhbSBhZGRpdGlvbmFsX29wdGlvbnM6IFRoZSBhZGRpdGlvbmFsIG9wdGlvbnMgdG8gdXNlIGZvciB0aGUgY2xpZW50LgoiIiIKCgpjbGFzcyBDbGllbnRDb25maWd1cmF0aW9uKEJhc2VNb2RlbCk6CiAgICBhcGlfa2V5OiBPcHRpb25hbFtzdHJdID0gRmllbGQoTm9uZSwgZGVzY3JpcHRpb249IkFQSSBrZXkiKQogICAgc2VjcmV0X2tleTogT3B0aW9uYWxbc3RyXSA9IEZpZWxkKE5vbmUsIGRlc2NyaXB0aW9uPSJTZWNyZXQga2V5IikKICAgIGJhc2VfcGF0aDogT3B0aW9uYWxbVW5pb25bQmFzZVBhdGgsIHN0cl1dID0gRmllbGQoCiAgICAgICAgTm9uZSwgZGVzY3JpcHRpb249IlRoZSBzZXJ2ZXIgYmFzZSB1cmwiCiAgICApCiAgICBhZGRpdGlvbmFsX29wdGlvbnM6IE9wdGlvbmFsW0FkZGl0aW9uYWxPcHRpb25zXSA9IEZpZWxkKAogICAgICAgIGRlZmF1bHRfZmFjdG9yeT1BZGRpdGlvbmFsT3B0aW9ucywKICAgICAgICBkZXNjcmlwdGlvbj0iQWRkaXRpb25hbCBvcHRpb25zIHRvIHVzZSBmb3IgdGhlIGNsaWVudCIsCiAgICApCg== \ No newline at end of file diff --git a/fireblocks/configuration.py b/fireblocks/configuration.py index 9ea23cd7..6ab55827 100644 --- a/fireblocks/configuration.py +++ b/fireblocks/configuration.py @@ -1,629 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import copy -import http.client as httplib -import logging -from logging import FileHandler -import multiprocessing -import sys -from typing import Any, ClassVar, Dict, List, Literal, Optional, TypedDict, Union -from typing_extensions import NotRequired, Self - -import urllib3 - - -JSON_SCHEMA_VALIDATION_KEYWORDS = { - "multipleOf", - "maximum", - "exclusiveMaximum", - "minimum", - "exclusiveMinimum", - "maxLength", - "minLength", - "pattern", - "maxItems", - "minItems", -} - -ServerVariablesT = Dict[str, str] - -GenericAuthSetting = TypedDict( - "GenericAuthSetting", - { - "type": str, - "in": str, - "key": str, - "value": str, - }, -) - - -OAuth2AuthSetting = TypedDict( - "OAuth2AuthSetting", - { - "type": Literal["oauth2"], - "in": Literal["header"], - "key": Literal["Authorization"], - "value": str, - }, -) - - -APIKeyAuthSetting = TypedDict( - "APIKeyAuthSetting", - { - "type": Literal["api_key"], - "in": str, - "key": str, - "value": Optional[str], - }, -) - - -BasicAuthSetting = TypedDict( - "BasicAuthSetting", - { - "type": Literal["basic"], - "in": Literal["header"], - "key": Literal["Authorization"], - "value": Optional[str], - }, -) - - -BearerFormatAuthSetting = TypedDict( - "BearerFormatAuthSetting", - { - "type": Literal["bearer"], - "in": Literal["header"], - "format": Literal["JWT"], - "key": Literal["Authorization"], - "value": str, - }, -) - - -BearerAuthSetting = TypedDict( - "BearerAuthSetting", - { - "type": Literal["bearer"], - "in": Literal["header"], - "key": Literal["Authorization"], - "value": str, - }, -) - - -HTTPSignatureAuthSetting = TypedDict( - "HTTPSignatureAuthSetting", - { - "type": Literal["http-signature"], - "in": Literal["header"], - "key": Literal["Authorization"], - "value": None, - }, -) - - -AuthSettings = TypedDict( - "AuthSettings", - { - "bearerTokenAuth": BearerFormatAuthSetting, - "ApiKeyAuth": APIKeyAuthSetting, - }, - total=False, -) - - -class HostSettingVariable(TypedDict): - description: str - default_value: str - enum_values: List[str] - - -class HostSetting(TypedDict): - url: str - description: str - variables: NotRequired[Dict[str, HostSettingVariable]] - - -class Configuration: - """This class contains various settings of the API client. - - :param host: Base url. - :param ignore_operation_servers - Boolean to ignore operation servers for the API client. - Config will use `host` as the base url regardless of the operation servers. - :param api_key: Dict to store API key(s). - Each entry in the dict specifies an API key. - The dict key is the name of the security scheme in the OAS specification. - The dict value is the API key secret. - :param api_key_prefix: Dict to store API prefix (e.g. Bearer). - The dict key is the name of the security scheme in the OAS specification. - The dict value is an API key prefix when generating the auth data. - :param username: Username for HTTP basic authentication. - :param password: Password for HTTP basic authentication. - :param access_token: Access token. - :param server_index: Index to servers configuration. - :param server_variables: Mapping with string values to replace variables in - templated server configuration. The validation of enums is performed for - variables with defined enum values before. - :param server_operation_index: Mapping from operation ID to an index to server - configuration. - :param server_operation_variables: Mapping from operation ID to a mapping with - string values to replace variables in templated server configuration. - The validation of enums is performed for variables with defined enum - values before. - :param ssl_ca_cert: str - the path to a file of concatenated CA certificates - in PEM format. - :param retries: Number of retries for API requests. - :param ca_cert_data: verify the peer using concatenated CA certificate data - in PEM (str) or DER (bytes) format. - - :Example: - - API Key Authentication Example. - Given the following security scheme in the OpenAPI specification: - components: - securitySchemes: - cookieAuth: # name for the security scheme - type: apiKey - in: cookie - name: JSESSIONID # cookie name - - You can programmatically set the cookie: - - conf = fireblocks.Configuration( - api_key={'cookieAuth': 'abc123'} - api_key_prefix={'cookieAuth': 'JSESSIONID'} - ) - - The following cookie will be added to the HTTP request: - Cookie: JSESSIONID abc123 - """ - - _default: ClassVar[Optional[Self]] = None - - def __init__( - self, - host: Optional[str] = None, - api_key: Optional[Dict[str, str]] = None, - api_key_prefix: Optional[Dict[str, str]] = None, - username: Optional[str] = None, - password: Optional[str] = None, - access_token: Optional[str] = None, - server_index: Optional[int] = None, - server_variables: Optional[ServerVariablesT] = None, - server_operation_index: Optional[Dict[int, int]] = None, - server_operation_variables: Optional[Dict[int, ServerVariablesT]] = None, - ignore_operation_servers: bool = False, - ssl_ca_cert: Optional[str] = None, - retries: Optional[int] = None, - ca_cert_data: Optional[Union[str, bytes]] = None, - *, - debug: Optional[bool] = None, - ) -> None: - """Constructor""" - self._base_path = "https://api.fireblocks.io/v1" if host is None else host - """Default Base url - """ - self.server_index = 0 if server_index is None and host is None else server_index - self.server_operation_index = server_operation_index or {} - """Default server index - """ - self.server_variables = server_variables or {} - self.server_operation_variables = server_operation_variables or {} - """Default server variables - """ - self.ignore_operation_servers = ignore_operation_servers - """Ignore operation servers - """ - self.temp_folder_path = None - """Temp file folder for downloading files - """ - # Authentication Settings - self.api_key = {} - if api_key: - self.api_key = api_key - """dict to store API key(s) - """ - self.api_key_prefix = {} - if api_key_prefix: - self.api_key_prefix = api_key_prefix - """dict to store API prefix (e.g. Bearer) - """ - self.refresh_api_key_hook = None - """function hook to refresh API key if expired - """ - self.username = username - """Username for HTTP basic authentication - """ - self.password = password - """Password for HTTP basic authentication - """ - self.access_token = access_token - """Access token - """ - self.logger = {} - """Logging Settings - """ - self.logger["package_logger"] = logging.getLogger("fireblocks") - self.logger["urllib3_logger"] = logging.getLogger("urllib3") - self.logger_format = "%(asctime)s %(levelname)s %(message)s" - """Log format - """ - self.logger_stream_handler = None - """Log stream handler - """ - self.logger_file_handler: Optional[FileHandler] = None - """Log file handler - """ - self.logger_file = None - """Debug file location - """ - if debug is not None: - self.debug = debug - else: - self.__debug = False - """Debug switch - """ - - self.verify_ssl = True - """SSL/TLS verification - Set this to false to skip verifying SSL certificate when calling API - from https server. - """ - self.ssl_ca_cert = ssl_ca_cert - """Set this to customize the certificate file to verify the peer. - """ - self.ca_cert_data = ca_cert_data - """Set this to verify the peer using PEM (str) or DER (bytes) - certificate data. - """ - self.cert_file = None - """client certificate file - """ - self.key_file = None - """client key file - """ - self.assert_hostname = None - """Set this to True/False to enable/disable SSL hostname verification. - """ - self.tls_server_name = None - """SSL/TLS Server Name Indication (SNI) - Set this to the SNI value expected by the server. - """ - - self.connection_pool_maxsize = multiprocessing.cpu_count() * 5 - """urllib3 connection pool's maximum number of connections saved - per pool. urllib3 uses 1 connection as default value, but this is - not the best value when you are making a lot of possibly parallel - requests to the same host, which is often the case here. - cpu_count * 5 is used as default value to increase performance. - """ - - self.proxy: Optional[str] = None - """Proxy URL - """ - self.proxy_headers = None - """Proxy headers - """ - self.safe_chars_for_path_param = "" - """Safe chars for path_param - """ - self.retries = retries - """Adding retries to override urllib3 default value 3 - """ - # Enable client side validation - self.client_side_validation = True - - self.socket_options = None - """Options to pass down to the underlying urllib3 socket - """ - - self.datetime_format = "%Y-%m-%dT%H:%M:%S.%f%z" - """datetime format - """ - - self.date_format = "%Y-%m-%d" - """date format - """ - - def __deepcopy__(self, memo: Dict[int, Any]) -> Self: - cls = self.__class__ - result = cls.__new__(cls) - memo[id(self)] = result - for k, v in self.__dict__.items(): - if k not in ("logger", "logger_file_handler"): - setattr(result, k, copy.deepcopy(v, memo)) - # shallow copy of loggers - result.logger = copy.copy(self.logger) - # use setters to configure loggers - result.logger_file = self.logger_file - result.debug = self.debug - return result - - def __setattr__(self, name: str, value: Any) -> None: - object.__setattr__(self, name, value) - - @classmethod - def set_default(cls, default: Optional[Self]) -> None: - """Set default instance of configuration. - - It stores default configuration, which can be - returned by get_default_copy method. - - :param default: object of Configuration - """ - cls._default = default - - @classmethod - def get_default_copy(cls) -> Self: - """Deprecated. Please use `get_default` instead. - - Deprecated. Please use `get_default` instead. - - :return: The configuration object. - """ - return cls.get_default() - - @classmethod - def get_default(cls) -> Self: - """Return the default configuration. - - This method returns newly created, based on default constructor, - object of Configuration class or returns a copy of default - configuration. - - :return: The configuration object. - """ - if cls._default is None: - cls._default = cls() - return cls._default - - @property - def logger_file(self) -> Optional[str]: - """The logger file. - - If the logger_file is None, then add stream handler and remove file - handler. Otherwise, add file handler and remove stream handler. - - :param value: The logger_file path. - :type: str - """ - return self.__logger_file - - @logger_file.setter - def logger_file(self, value: Optional[str]) -> None: - """The logger file. - - If the logger_file is None, then add stream handler and remove file - handler. Otherwise, add file handler and remove stream handler. - - :param value: The logger_file path. - :type: str - """ - self.__logger_file = value - if self.__logger_file: - # If set logging file, - # then add file handler and remove stream handler. - self.logger_file_handler = logging.FileHandler(self.__logger_file) - self.logger_file_handler.setFormatter(self.logger_formatter) - for _, logger in self.logger.items(): - logger.addHandler(self.logger_file_handler) - - @property - def debug(self) -> bool: - """Debug status - - :param value: The debug status, True or False. - :type: bool - """ - return self.__debug - - @debug.setter - def debug(self, value: bool) -> None: - """Debug status - - :param value: The debug status, True or False. - :type: bool - """ - self.__debug = value - if self.__debug: - # if debug status is True, turn on debug logging - for _, logger in self.logger.items(): - logger.setLevel(logging.DEBUG) - # turn on httplib debug - httplib.HTTPConnection.debuglevel = 1 - else: - # if debug status is False, turn off debug logging, - # setting log level to default `logging.WARNING` - for _, logger in self.logger.items(): - logger.setLevel(logging.WARNING) - # turn off httplib debug - httplib.HTTPConnection.debuglevel = 0 - - @property - def logger_format(self) -> str: - """The logger format. - - The logger_formatter will be updated when sets logger_format. - - :param value: The format string. - :type: str - """ - return self.__logger_format - - @logger_format.setter - def logger_format(self, value: str) -> None: - """The logger format. - - The logger_formatter will be updated when sets logger_format. - - :param value: The format string. - :type: str - """ - self.__logger_format = value - self.logger_formatter = logging.Formatter(self.__logger_format) - - def get_api_key_with_prefix( - self, identifier: str, alias: Optional[str] = None - ) -> Optional[str]: - """Gets API key (with prefix if set). - - :param identifier: The identifier of apiKey. - :param alias: The alternative identifier of apiKey. - :return: The token for api key authentication. - """ - if self.refresh_api_key_hook is not None: - self.refresh_api_key_hook(self) - key = self.api_key.get( - identifier, self.api_key.get(alias) if alias is not None else None - ) - if key: - prefix = self.api_key_prefix.get(identifier) - if prefix: - return "%s %s" % (prefix, key) - else: - return key - - return None - - def get_basic_auth_token(self) -> Optional[str]: - """Gets HTTP basic authentication header (string). - - :return: The token for basic HTTP authentication. - """ - username = "" - if self.username is not None: - username = self.username - password = "" - if self.password is not None: - password = self.password - return urllib3.util.make_headers(basic_auth=username + ":" + password).get( - "authorization" - ) - - def auth_settings(self) -> AuthSettings: - """Gets Auth Settings dict for api client. - - :return: The Auth Settings information dict. - """ - auth: AuthSettings = {} - if self.access_token is not None: - auth["bearerTokenAuth"] = { - "type": "bearer", - "in": "header", - "format": "JWT", - "key": "Authorization", - "value": "Bearer " + self.access_token, - } - if "ApiKeyAuth" in self.api_key: - auth["ApiKeyAuth"] = { - "type": "api_key", - "in": "header", - "key": "X-API-Key", - "value": self.get_api_key_with_prefix( - "ApiKeyAuth", - ), - } - return auth - - def to_debug_report(self) -> str: - """Gets the essential information for debugging. - - :return: The report for debugging. - """ - return ( - "Python SDK Debug Report:\n" - "OS: {env}\n" - "Python Version: {pyversion}\n" - "Version of the API: 1.6.2\n" - "SDK Package Version: 15.0.0".format(env=sys.platform, pyversion=sys.version) - ) - - def get_host_settings(self) -> List[HostSetting]: - """Gets an array of host settings - - :return: An array of host settings - """ - return [ - { - "url": "https://api.fireblocks.io/v1", - "description": "Fireblocks Production Environment Base URL", - }, - { - "url": "https://sandbox-api.fireblocks.io/v1", - "description": "Fireblocks Sandbox Environment Base URL", - }, - ] - - def get_host_from_settings( - self, - index: Optional[int], - variables: Optional[ServerVariablesT] = None, - servers: Optional[List[HostSetting]] = None, - ) -> str: - """Gets host URL based on the index and variables - :param index: array index of the host settings - :param variables: hash of variable and the corresponding value - :param servers: an array of host settings or None - :return: URL based on host settings - """ - if index is None: - return self._base_path - - variables = {} if variables is None else variables - servers = self.get_host_settings() if servers is None else servers - - try: - server = servers[index] - except IndexError: - raise ValueError( - "Invalid index {0} when selecting the host settings. " - "Must be less than {1}".format(index, len(servers)) - ) - - url = server["url"] - - # go through variables and replace placeholders - for variable_name, variable in server.get("variables", {}).items(): - used_value = variables.get(variable_name, variable["default_value"]) - - if "enum_values" in variable and used_value not in variable["enum_values"]: - raise ValueError( - "The variable `{0}` in the host URL has invalid value " - "{1}. Must be {2}.".format( - variable_name, variables[variable_name], variable["enum_values"] - ) - ) - - url = url.replace("{" + variable_name + "}", used_value) - - return url - - @property - def host(self) -> str: - """Return generated host.""" - return self.get_host_from_settings( - self.server_index, variables=self.server_variables - ) - - @host.setter - def host(self, value: str) -> None: - """Fix base path.""" - self._base_path = value - self.server_index = None +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IGNvcHkKaW1wb3J0IGh0dHAuY2xpZW50IGFzIGh0dHBsaWIKaW1wb3J0IGxvZ2dpbmcKZnJvbSBsb2dnaW5nIGltcG9ydCBGaWxlSGFuZGxlcgppbXBvcnQgbXVsdGlwcm9jZXNzaW5nCmltcG9ydCBzeXMKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIExpdGVyYWwsIE9wdGlvbmFsLCBUeXBlZERpY3QsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IE5vdFJlcXVpcmVkLCBTZWxmCgppbXBvcnQgdXJsbGliMwoKCkpTT05fU0NIRU1BX1ZBTElEQVRJT05fS0VZV09SRFMgPSB7CiAgICAibXVsdGlwbGVPZiIsCiAgICAibWF4aW11bSIsCiAgICAiZXhjbHVzaXZlTWF4aW11bSIsCiAgICAibWluaW11bSIsCiAgICAiZXhjbHVzaXZlTWluaW11bSIsCiAgICAibWF4TGVuZ3RoIiwKICAgICJtaW5MZW5ndGgiLAogICAgInBhdHRlcm4iLAogICAgIm1heEl0ZW1zIiwKICAgICJtaW5JdGVtcyIsCn0KClNlcnZlclZhcmlhYmxlc1QgPSBEaWN0W3N0ciwgc3RyXQoKR2VuZXJpY0F1dGhTZXR0aW5nID0gVHlwZWREaWN0KAogICAgIkdlbmVyaWNBdXRoU2V0dGluZyIsCiAgICB7CiAgICAgICAgInR5cGUiOiBzdHIsCiAgICAgICAgImluIjogc3RyLAogICAgICAgICJrZXkiOiBzdHIsCiAgICAgICAgInZhbHVlIjogc3RyLAogICAgfSwKKQoKCk9BdXRoMkF1dGhTZXR0aW5nID0gVHlwZWREaWN0KAogICAgIk9BdXRoMkF1dGhTZXR0aW5nIiwKICAgIHsKICAgICAgICAidHlwZSI6IExpdGVyYWxbIm9hdXRoMiJdLAogICAgICAgICJpbiI6IExpdGVyYWxbImhlYWRlciJdLAogICAgICAgICJrZXkiOiBMaXRlcmFsWyJBdXRob3JpemF0aW9uIl0sCiAgICAgICAgInZhbHVlIjogc3RyLAogICAgfSwKKQoKCkFQSUtleUF1dGhTZXR0aW5nID0gVHlwZWREaWN0KAogICAgIkFQSUtleUF1dGhTZXR0aW5nIiwKICAgIHsKICAgICAgICAidHlwZSI6IExpdGVyYWxbImFwaV9rZXkiXSwKICAgICAgICAiaW4iOiBzdHIsCiAgICAgICAgImtleSI6IHN0ciwKICAgICAgICAidmFsdWUiOiBPcHRpb25hbFtzdHJdLAogICAgfSwKKQoKCkJhc2ljQXV0aFNldHRpbmcgPSBUeXBlZERpY3QoCiAgICAiQmFzaWNBdXRoU2V0dGluZyIsCiAgICB7CiAgICAgICAgInR5cGUiOiBMaXRlcmFsWyJiYXNpYyJdLAogICAgICAgICJpbiI6IExpdGVyYWxbImhlYWRlciJdLAogICAgICAgICJrZXkiOiBMaXRlcmFsWyJBdXRob3JpemF0aW9uIl0sCiAgICAgICAgInZhbHVlIjogT3B0aW9uYWxbc3RyXSwKICAgIH0sCikKCgpCZWFyZXJGb3JtYXRBdXRoU2V0dGluZyA9IFR5cGVkRGljdCgKICAgICJCZWFyZXJGb3JtYXRBdXRoU2V0dGluZyIsCiAgICB7CiAgICAgICAgInR5cGUiOiBMaXRlcmFsWyJiZWFyZXIiXSwKICAgICAgICAiaW4iOiBMaXRlcmFsWyJoZWFkZXIiXSwKICAgICAgICAiZm9ybWF0IjogTGl0ZXJhbFsiSldUIl0sCiAgICAgICAgImtleSI6IExpdGVyYWxbIkF1dGhvcml6YXRpb24iXSwKICAgICAgICAidmFsdWUiOiBzdHIsCiAgICB9LAopCgoKQmVhcmVyQXV0aFNldHRpbmcgPSBUeXBlZERpY3QoCiAgICAiQmVhcmVyQXV0aFNldHRpbmciLAogICAgewogICAgICAgICJ0eXBlIjogTGl0ZXJhbFsiYmVhcmVyIl0sCiAgICAgICAgImluIjogTGl0ZXJhbFsiaGVhZGVyIl0sCiAgICAgICAgImtleSI6IExpdGVyYWxbIkF1dGhvcml6YXRpb24iXSwKICAgICAgICAidmFsdWUiOiBzdHIsCiAgICB9LAopCgoKSFRUUFNpZ25hdHVyZUF1dGhTZXR0aW5nID0gVHlwZWREaWN0KAogICAgIkhUVFBTaWduYXR1cmVBdXRoU2V0dGluZyIsCiAgICB7CiAgICAgICAgInR5cGUiOiBMaXRlcmFsWyJodHRwLXNpZ25hdHVyZSJdLAogICAgICAgICJpbiI6IExpdGVyYWxbImhlYWRlciJdLAogICAgICAgICJrZXkiOiBMaXRlcmFsWyJBdXRob3JpemF0aW9uIl0sCiAgICAgICAgInZhbHVlIjogTm9uZSwKICAgIH0sCikKCgpBdXRoU2V0dGluZ3MgPSBUeXBlZERpY3QoCiAgICAiQXV0aFNldHRpbmdzIiwKICAgIHsKICAgICAgICAiYmVhcmVyVG9rZW5BdXRoIjogQmVhcmVyRm9ybWF0QXV0aFNldHRpbmcsCiAgICAgICAgIkFwaUtleUF1dGgiOiBBUElLZXlBdXRoU2V0dGluZywKICAgIH0sCiAgICB0b3RhbD1GYWxzZSwKKQoKCmNsYXNzIEhvc3RTZXR0aW5nVmFyaWFibGUoVHlwZWREaWN0KToKICAgIGRlc2NyaXB0aW9uOiBzdHIKICAgIGRlZmF1bHRfdmFsdWU6IHN0cgogICAgZW51bV92YWx1ZXM6IExpc3Rbc3RyXQoKCmNsYXNzIEhvc3RTZXR0aW5nKFR5cGVkRGljdCk6CiAgICB1cmw6IHN0cgogICAgZGVzY3JpcHRpb246IHN0cgogICAgdmFyaWFibGVzOiBOb3RSZXF1aXJlZFtEaWN0W3N0ciwgSG9zdFNldHRpbmdWYXJpYWJsZV1dCgoKY2xhc3MgQ29uZmlndXJhdGlvbjoKICAgICIiIlRoaXMgY2xhc3MgY29udGFpbnMgdmFyaW91cyBzZXR0aW5ncyBvZiB0aGUgQVBJIGNsaWVudC4KCiAgICAgICAgOnBhcmFtIGhvc3Q6IEJhc2UgdXJsLgogICAgICAgIDpwYXJhbSBpZ25vcmVfb3BlcmF0aW9uX3NlcnZlcnMKICAgICAgICAgIEJvb2xlYW4gdG8gaWdub3JlIG9wZXJhdGlvbiBzZXJ2ZXJzIGZvciB0aGUgQVBJIGNsaWVudC4KICAgICAgICAgIENvbmZpZyB3aWxsIHVzZSBgaG9zdGAgYXMgdGhlIGJhc2UgdXJsIHJlZ2FyZGxlc3Mgb2YgdGhlIG9wZXJhdGlvbiBzZXJ2ZXJzLgogICAgICAgIDpwYXJhbSBhcGlfa2V5OiBEaWN0IHRvIHN0b3JlIEFQSSBrZXkocykuCiAgICAgICAgICBFYWNoIGVudHJ5IGluIHRoZSBkaWN0IHNwZWNpZmllcyBhbiBBUEkga2V5LgogICAgICAgICAgVGhlIGRpY3Qga2V5IGlzIHRoZSBuYW1lIG9mIHRoZSBzZWN1cml0eSBzY2hlbWUgaW4gdGhlIE9BUyBzcGVjaWZpY2F0aW9uLgogICAgICAgICAgVGhlIGRpY3QgdmFsdWUgaXMgdGhlIEFQSSBrZXkgc2VjcmV0LgogICAgICAgIDpwYXJhbSBhcGlfa2V5X3ByZWZpeDogRGljdCB0byBzdG9yZSBBUEkgcHJlZml4IChlLmcuIEJlYXJlcikuCiAgICAgICAgICBUaGUgZGljdCBrZXkgaXMgdGhlIG5hbWUgb2YgdGhlIHNlY3VyaXR5IHNjaGVtZSBpbiB0aGUgT0FTIHNwZWNpZmljYXRpb24uCiAgICAgICAgICBUaGUgZGljdCB2YWx1ZSBpcyBhbiBBUEkga2V5IHByZWZpeCB3aGVuIGdlbmVyYXRpbmcgdGhlIGF1dGggZGF0YS4KICAgICAgICA6cGFyYW0gdXNlcm5hbWU6IFVzZXJuYW1lIGZvciBIVFRQIGJhc2ljIGF1dGhlbnRpY2F0aW9uLgogICAgICAgIDpwYXJhbSBwYXNzd29yZDogUGFzc3dvcmQgZm9yIEhUVFAgYmFzaWMgYXV0aGVudGljYXRpb24uCiAgICAgICAgOnBhcmFtIGFjY2Vzc190b2tlbjogQWNjZXNzIHRva2VuLgogICAgICAgIDpwYXJhbSBzZXJ2ZXJfaW5kZXg6IEluZGV4IHRvIHNlcnZlcnMgY29uZmlndXJhdGlvbi4KICAgICAgICA6cGFyYW0gc2VydmVyX3ZhcmlhYmxlczogTWFwcGluZyB3aXRoIHN0cmluZyB2YWx1ZXMgdG8gcmVwbGFjZSB2YXJpYWJsZXMgaW4KICAgICAgICAgIHRlbXBsYXRlZCBzZXJ2ZXIgY29uZmlndXJhdGlvbi4gVGhlIHZhbGlkYXRpb24gb2YgZW51bXMgaXMgcGVyZm9ybWVkIGZvcgogICAgICAgICAgdmFyaWFibGVzIHdpdGggZGVmaW5lZCBlbnVtIHZhbHVlcyBiZWZvcmUuCiAgICAgICAgOnBhcmFtIHNlcnZlcl9vcGVyYXRpb25faW5kZXg6IE1hcHBpbmcgZnJvbSBvcGVyYXRpb24gSUQgdG8gYW4gaW5kZXggdG8gc2VydmVyCiAgICAgICAgICBjb25maWd1cmF0aW9uLgogICAgICAgIDpwYXJhbSBzZXJ2ZXJfb3BlcmF0aW9uX3ZhcmlhYmxlczogTWFwcGluZyBmcm9tIG9wZXJhdGlvbiBJRCB0byBhIG1hcHBpbmcgd2l0aAogICAgICAgICAgc3RyaW5nIHZhbHVlcyB0byByZXBsYWNlIHZhcmlhYmxlcyBpbiB0ZW1wbGF0ZWQgc2VydmVyIGNvbmZpZ3VyYXRpb24uCiAgICAgICAgICBUaGUgdmFsaWRhdGlvbiBvZiBlbnVtcyBpcyBwZXJmb3JtZWQgZm9yIHZhcmlhYmxlcyB3aXRoIGRlZmluZWQgZW51bQogICAgICAgICAgdmFsdWVzIGJlZm9yZS4KICAgICAgICA6cGFyYW0gc3NsX2NhX2NlcnQ6IHN0ciAtIHRoZSBwYXRoIHRvIGEgZmlsZSBvZiBjb25jYXRlbmF0ZWQgQ0EgY2VydGlmaWNhdGVzCiAgICAgICAgICBpbiBQRU0gZm9ybWF0LgogICAgICAgIDpwYXJhbSByZXRyaWVzOiBOdW1iZXIgb2YgcmV0cmllcyBmb3IgQVBJIHJlcXVlc3RzLgogICAgICAgIDpwYXJhbSBjYV9jZXJ0X2RhdGE6IHZlcmlmeSB0aGUgcGVlciB1c2luZyBjb25jYXRlbmF0ZWQgQ0EgY2VydGlmaWNhdGUgZGF0YQogICAgICAgICAgaW4gUEVNIChzdHIpIG9yIERFUiAoYnl0ZXMpIGZvcm1hdC4KCiAgICAgICAgOkV4YW1wbGU6CgogICAgICAgIEFQSSBLZXkgQXV0aGVudGljYXRpb24gRXhhbXBsZS4KICAgICAgICBHaXZlbiB0aGUgZm9sbG93aW5nIHNlY3VyaXR5IHNjaGVtZSBpbiB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uOgogICAgICAgICAgY29tcG9uZW50czoKICAgICAgICAgICAgc2VjdXJpdHlTY2hlbWVzOgogICAgICAgICAgICAgIGNvb2tpZUF1dGg6ICAgICAgICAgIyBuYW1lIGZvciB0aGUgc2VjdXJpdHkgc2NoZW1lCiAgICAgICAgICAgICAgICB0eXBlOiBhcGlLZXkKICAgICAgICAgICAgICAgIGluOiBjb29raWUKICAgICAgICAgICAgICAgIG5hbWU6IEpTRVNTSU9OSUQgICMgY29va2llIG5hbWUKCiAgICAgICAgWW91IGNhbiBwcm9ncmFtbWF0aWNhbGx5IHNldCB0aGUgY29va2llOgoKICAgIGNvbmYgPSBmaXJlYmxvY2tzLkNvbmZpZ3VyYXRpb24oCiAgICAgICAgYXBpX2tleT17J2Nvb2tpZUF1dGgnOiAnYWJjMTIzJ30KICAgICAgICBhcGlfa2V5X3ByZWZpeD17J2Nvb2tpZUF1dGgnOiAnSlNFU1NJT05JRCd9CiAgICApCgogICAgICAgIFRoZSBmb2xsb3dpbmcgY29va2llIHdpbGwgYmUgYWRkZWQgdG8gdGhlIEhUVFAgcmVxdWVzdDoKICAgICAgICAgICBDb29raWU6IEpTRVNTSU9OSUQgYWJjMTIzCiAgICAiIiIKCiAgICBfZGVmYXVsdDogQ2xhc3NWYXJbT3B0aW9uYWxbU2VsZl1dID0gTm9uZQoKICAgIGRlZiBfX2luaXRfXygKICAgICAgICBzZWxmLAogICAgICAgIGhvc3Q6IE9wdGlvbmFsW3N0cl0gPSBOb25lLAogICAgICAgIGFwaV9rZXk6IE9wdGlvbmFsW0RpY3Rbc3RyLCBzdHJdXSA9IE5vbmUsCiAgICAgICAgYXBpX2tleV9wcmVmaXg6IE9wdGlvbmFsW0RpY3Rbc3RyLCBzdHJdXSA9IE5vbmUsCiAgICAgICAgdXNlcm5hbWU6IE9wdGlvbmFsW3N0cl0gPSBOb25lLAogICAgICAgIHBhc3N3b3JkOiBPcHRpb25hbFtzdHJdID0gTm9uZSwKICAgICAgICBhY2Nlc3NfdG9rZW46IE9wdGlvbmFsW3N0cl0gPSBOb25lLAogICAgICAgIHNlcnZlcl9pbmRleDogT3B0aW9uYWxbaW50XSA9IE5vbmUsCiAgICAgICAgc2VydmVyX3ZhcmlhYmxlczogT3B0aW9uYWxbU2VydmVyVmFyaWFibGVzVF0gPSBOb25lLAogICAgICAgIHNlcnZlcl9vcGVyYXRpb25faW5kZXg6IE9wdGlvbmFsW0RpY3RbaW50LCBpbnRdXSA9IE5vbmUsCiAgICAgICAgc2VydmVyX29wZXJhdGlvbl92YXJpYWJsZXM6IE9wdGlvbmFsW0RpY3RbaW50LCBTZXJ2ZXJWYXJpYWJsZXNUXV0gPSBOb25lLAogICAgICAgIGlnbm9yZV9vcGVyYXRpb25fc2VydmVyczogYm9vbCA9IEZhbHNlLAogICAgICAgIHNzbF9jYV9jZXJ0OiBPcHRpb25hbFtzdHJdID0gTm9uZSwKICAgICAgICByZXRyaWVzOiBPcHRpb25hbFtpbnRdID0gTm9uZSwKICAgICAgICBjYV9jZXJ0X2RhdGE6IE9wdGlvbmFsW1VuaW9uW3N0ciwgYnl0ZXNdXSA9IE5vbmUsCiAgICAgICAgKiwKICAgICAgICBkZWJ1ZzogT3B0aW9uYWxbYm9vbF0gPSBOb25lLAogICAgKSAtPiBOb25lOgogICAgICAgICIiIkNvbnN0cnVjdG9yIiIiCiAgICAgICAgc2VsZi5fYmFzZV9wYXRoID0gImh0dHBzOi8vYXBpLmZpcmVibG9ja3MuaW8vdjEiIGlmIGhvc3QgaXMgTm9uZSBlbHNlIGhvc3QKICAgICAgICAiIiJEZWZhdWx0IEJhc2UgdXJsCiAgICAgICAgIiIiCiAgICAgICAgc2VsZi5zZXJ2ZXJfaW5kZXggPSAwIGlmIHNlcnZlcl9pbmRleCBpcyBOb25lIGFuZCBob3N0IGlzIE5vbmUgZWxzZSBzZXJ2ZXJfaW5kZXgKICAgICAgICBzZWxmLnNlcnZlcl9vcGVyYXRpb25faW5kZXggPSBzZXJ2ZXJfb3BlcmF0aW9uX2luZGV4IG9yIHt9CiAgICAgICAgIiIiRGVmYXVsdCBzZXJ2ZXIgaW5kZXgKICAgICAgICAiIiIKICAgICAgICBzZWxmLnNlcnZlcl92YXJpYWJsZXMgPSBzZXJ2ZXJfdmFyaWFibGVzIG9yIHt9CiAgICAgICAgc2VsZi5zZXJ2ZXJfb3BlcmF0aW9uX3ZhcmlhYmxlcyA9IHNlcnZlcl9vcGVyYXRpb25fdmFyaWFibGVzIG9yIHt9CiAgICAgICAgIiIiRGVmYXVsdCBzZXJ2ZXIgdmFyaWFibGVzCiAgICAgICAgIiIiCiAgICAgICAgc2VsZi5pZ25vcmVfb3BlcmF0aW9uX3NlcnZlcnMgPSBpZ25vcmVfb3BlcmF0aW9uX3NlcnZlcnMKICAgICAgICAiIiJJZ25vcmUgb3BlcmF0aW9uIHNlcnZlcnMKICAgICAgICAiIiIKICAgICAgICBzZWxmLnRlbXBfZm9sZGVyX3BhdGggPSBOb25lCiAgICAgICAgIiIiVGVtcCBmaWxlIGZvbGRlciBmb3IgZG93bmxvYWRpbmcgZmlsZXMKICAgICAgICAiIiIKICAgICAgICAjIEF1dGhlbnRpY2F0aW9uIFNldHRpbmdzCiAgICAgICAgc2VsZi5hcGlfa2V5ID0ge30KICAgICAgICBpZiBhcGlfa2V5OgogICAgICAgICAgICBzZWxmLmFwaV9rZXkgPSBhcGlfa2V5CiAgICAgICAgIiIiZGljdCB0byBzdG9yZSBBUEkga2V5KHMpCiAgICAgICAgIiIiCiAgICAgICAgc2VsZi5hcGlfa2V5X3ByZWZpeCA9IHt9CiAgICAgICAgaWYgYXBpX2tleV9wcmVmaXg6CiAgICAgICAgICAgIHNlbGYuYXBpX2tleV9wcmVmaXggPSBhcGlfa2V5X3ByZWZpeAogICAgICAgICIiImRpY3QgdG8gc3RvcmUgQVBJIHByZWZpeCAoZS5nLiBCZWFyZXIpCiAgICAgICAgIiIiCiAgICAgICAgc2VsZi5yZWZyZXNoX2FwaV9rZXlfaG9vayA9IE5vbmUKICAgICAgICAiIiJmdW5jdGlvbiBob29rIHRvIHJlZnJlc2ggQVBJIGtleSBpZiBleHBpcmVkCiAgICAgICAgIiIiCiAgICAgICAgc2VsZi51c2VybmFtZSA9IHVzZXJuYW1lCiAgICAgICAgIiIiVXNlcm5hbWUgZm9yIEhUVFAgYmFzaWMgYXV0aGVudGljYXRpb24KICAgICAgICAiIiIKICAgICAgICBzZWxmLnBhc3N3b3JkID0gcGFzc3dvcmQKICAgICAgICAiIiJQYXNzd29yZCBmb3IgSFRUUCBiYXNpYyBhdXRoZW50aWNhdGlvbgogICAgICAgICIiIgogICAgICAgIHNlbGYuYWNjZXNzX3Rva2VuID0gYWNjZXNzX3Rva2VuCiAgICAgICAgIiIiQWNjZXNzIHRva2VuCiAgICAgICAgIiIiCiAgICAgICAgc2VsZi5sb2dnZXIgPSB7fQogICAgICAgICIiIkxvZ2dpbmcgU2V0dGluZ3MKICAgICAgICAiIiIKICAgICAgICBzZWxmLmxvZ2dlclsicGFja2FnZV9sb2dnZXIiXSA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJmaXJlYmxvY2tzIikKICAgICAgICBzZWxmLmxvZ2dlclsidXJsbGliM19sb2dnZXIiXSA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJ1cmxsaWIzIikKICAgICAgICBzZWxmLmxvZ2dlcl9mb3JtYXQgPSAiJShhc2N0aW1lKXMgJShsZXZlbG5hbWUpcyAlKG1lc3NhZ2UpcyIKICAgICAgICAiIiJMb2cgZm9ybWF0CiAgICAgICAgIiIiCiAgICAgICAgc2VsZi5sb2dnZXJfc3RyZWFtX2hhbmRsZXIgPSBOb25lCiAgICAgICAgIiIiTG9nIHN0cmVhbSBoYW5kbGVyCiAgICAgICAgIiIiCiAgICAgICAgc2VsZi5sb2dnZXJfZmlsZV9oYW5kbGVyOiBPcHRpb25hbFtGaWxlSGFuZGxlcl0gPSBOb25lCiAgICAgICAgIiIiTG9nIGZpbGUgaGFuZGxlcgogICAgICAgICIiIgogICAgICAgIHNlbGYubG9nZ2VyX2ZpbGUgPSBOb25lCiAgICAgICAgIiIiRGVidWcgZmlsZSBsb2NhdGlvbgogICAgICAgICIiIgogICAgICAgIGlmIGRlYnVnIGlzIG5vdCBOb25lOgogICAgICAgICAgICBzZWxmLmRlYnVnID0gZGVidWcKICAgICAgICBlbHNlOgogICAgICAgICAgICBzZWxmLl9fZGVidWcgPSBGYWxzZQogICAgICAgICIiIkRlYnVnIHN3aXRjaAogICAgICAgICIiIgoKICAgICAgICBzZWxmLnZlcmlmeV9zc2wgPSBUcnVlCiAgICAgICAgIiIiU1NML1RMUyB2ZXJpZmljYXRpb24KICAgICAgICAgICBTZXQgdGhpcyB0byBmYWxzZSB0byBza2lwIHZlcmlmeWluZyBTU0wgY2VydGlmaWNhdGUgd2hlbiBjYWxsaW5nIEFQSQogICAgICAgICAgIGZyb20gaHR0cHMgc2VydmVyLgogICAgICAgICIiIgogICAgICAgIHNlbGYuc3NsX2NhX2NlcnQgPSBzc2xfY2FfY2VydAogICAgICAgICIiIlNldCB0aGlzIHRvIGN1c3RvbWl6ZSB0aGUgY2VydGlmaWNhdGUgZmlsZSB0byB2ZXJpZnkgdGhlIHBlZXIuCiAgICAgICAgIiIiCiAgICAgICAgc2VsZi5jYV9jZXJ0X2RhdGEgPSBjYV9jZXJ0X2RhdGEKICAgICAgICAiIiJTZXQgdGhpcyB0byB2ZXJpZnkgdGhlIHBlZXIgdXNpbmcgUEVNIChzdHIpIG9yIERFUiAoYnl0ZXMpCiAgICAgICAgICAgY2VydGlmaWNhdGUgZGF0YS4KICAgICAgICAiIiIKICAgICAgICBzZWxmLmNlcnRfZmlsZSA9IE5vbmUKICAgICAgICAiIiJjbGllbnQgY2VydGlmaWNhdGUgZmlsZQogICAgICAgICIiIgogICAgICAgIHNlbGYua2V5X2ZpbGUgPSBOb25lCiAgICAgICAgIiIiY2xpZW50IGtleSBmaWxlCiAgICAgICAgIiIiCiAgICAgICAgc2VsZi5hc3NlcnRfaG9zdG5hbWUgPSBOb25lCiAgICAgICAgIiIiU2V0IHRoaXMgdG8gVHJ1ZS9GYWxzZSB0byBlbmFibGUvZGlzYWJsZSBTU0wgaG9zdG5hbWUgdmVyaWZpY2F0aW9uLgogICAgICAgICIiIgogICAgICAgIHNlbGYudGxzX3NlcnZlcl9uYW1lID0gTm9uZQogICAgICAgICIiIlNTTC9UTFMgU2VydmVyIE5hbWUgSW5kaWNhdGlvbiAoU05JKQogICAgICAgICAgIFNldCB0aGlzIHRvIHRoZSBTTkkgdmFsdWUgZXhwZWN0ZWQgYnkgdGhlIHNlcnZlci4KICAgICAgICAiIiIKCiAgICAgICAgc2VsZi5jb25uZWN0aW9uX3Bvb2xfbWF4c2l6ZSA9IG11bHRpcHJvY2Vzc2luZy5jcHVfY291bnQoKSAqIDUKICAgICAgICAiIiJ1cmxsaWIzIGNvbm5lY3Rpb24gcG9vbCdzIG1heGltdW0gbnVtYmVyIG9mIGNvbm5lY3Rpb25zIHNhdmVkCiAgICAgICAgICAgcGVyIHBvb2wuIHVybGxpYjMgdXNlcyAxIGNvbm5lY3Rpb24gYXMgZGVmYXVsdCB2YWx1ZSwgYnV0IHRoaXMgaXMKICAgICAgICAgICBub3QgdGhlIGJlc3QgdmFsdWUgd2hlbiB5b3UgYXJlIG1ha2luZyBhIGxvdCBvZiBwb3NzaWJseSBwYXJhbGxlbAogICAgICAgICAgIHJlcXVlc3RzIHRvIHRoZSBzYW1lIGhvc3QsIHdoaWNoIGlzIG9mdGVuIHRoZSBjYXNlIGhlcmUuCiAgICAgICAgICAgY3B1X2NvdW50ICogNSBpcyB1c2VkIGFzIGRlZmF1bHQgdmFsdWUgdG8gaW5jcmVhc2UgcGVyZm9ybWFuY2UuCiAgICAgICAgIiIiCgogICAgICAgIHNlbGYucHJveHk6IE9wdGlvbmFsW3N0cl0gPSBOb25lCiAgICAgICAgIiIiUHJveHkgVVJMCiAgICAgICAgIiIiCiAgICAgICAgc2VsZi5wcm94eV9oZWFkZXJzID0gTm9uZQogICAgICAgICIiIlByb3h5IGhlYWRlcnMKICAgICAgICAiIiIKICAgICAgICBzZWxmLnNhZmVfY2hhcnNfZm9yX3BhdGhfcGFyYW0gPSAiIgogICAgICAgICIiIlNhZmUgY2hhcnMgZm9yIHBhdGhfcGFyYW0KICAgICAgICAiIiIKICAgICAgICBzZWxmLnJldHJpZXMgPSByZXRyaWVzCiAgICAgICAgIiIiQWRkaW5nIHJldHJpZXMgdG8gb3ZlcnJpZGUgdXJsbGliMyBkZWZhdWx0IHZhbHVlIDMKICAgICAgICAiIiIKICAgICAgICAjIEVuYWJsZSBjbGllbnQgc2lkZSB2YWxpZGF0aW9uCiAgICAgICAgc2VsZi5jbGllbnRfc2lkZV92YWxpZGF0aW9uID0gVHJ1ZQoKICAgICAgICBzZWxmLnNvY2tldF9vcHRpb25zID0gTm9uZQogICAgICAgICIiIk9wdGlvbnMgdG8gcGFzcyBkb3duIHRvIHRoZSB1bmRlcmx5aW5nIHVybGxpYjMgc29ja2V0CiAgICAgICAgIiIiCgogICAgICAgIHNlbGYuZGF0ZXRpbWVfZm9ybWF0ID0gIiVZLSVtLSVkVCVIOiVNOiVTLiVmJXoiCiAgICAgICAgIiIiZGF0ZXRpbWUgZm9ybWF0CiAgICAgICAgIiIiCgogICAgICAgIHNlbGYuZGF0ZV9mb3JtYXQgPSAiJVktJW0tJWQiCiAgICAgICAgIiIiZGF0ZSBmb3JtYXQKICAgICAgICAiIiIKCiAgICBkZWYgX19kZWVwY29weV9fKHNlbGYsIG1lbW86IERpY3RbaW50LCBBbnldKSAtPiBTZWxmOgogICAgICAgIGNscyA9IHNlbGYuX19jbGFzc19fCiAgICAgICAgcmVzdWx0ID0gY2xzLl9fbmV3X18oY2xzKQogICAgICAgIG1lbW9baWQoc2VsZildID0gcmVzdWx0CiAgICAgICAgZm9yIGssIHYgaW4gc2VsZi5fX2RpY3RfXy5pdGVtcygpOgogICAgICAgICAgICBpZiBrIG5vdCBpbiAoImxvZ2dlciIsICJsb2dnZXJfZmlsZV9oYW5kbGVyIik6CiAgICAgICAgICAgICAgICBzZXRhdHRyKHJlc3VsdCwgaywgY29weS5kZWVwY29weSh2LCBtZW1vKSkKICAgICAgICAjIHNoYWxsb3cgY29weSBvZiBsb2dnZXJzCiAgICAgICAgcmVzdWx0LmxvZ2dlciA9IGNvcHkuY29weShzZWxmLmxvZ2dlcikKICAgICAgICAjIHVzZSBzZXR0ZXJzIHRvIGNvbmZpZ3VyZSBsb2dnZXJzCiAgICAgICAgcmVzdWx0LmxvZ2dlcl9maWxlID0gc2VsZi5sb2dnZXJfZmlsZQogICAgICAgIHJlc3VsdC5kZWJ1ZyA9IHNlbGYuZGVidWcKICAgICAgICByZXR1cm4gcmVzdWx0CgogICAgZGVmIF9fc2V0YXR0cl9fKHNlbGYsIG5hbWU6IHN0ciwgdmFsdWU6IEFueSkgLT4gTm9uZToKICAgICAgICBvYmplY3QuX19zZXRhdHRyX18oc2VsZiwgbmFtZSwgdmFsdWUpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgc2V0X2RlZmF1bHQoY2xzLCBkZWZhdWx0OiBPcHRpb25hbFtTZWxmXSkgLT4gTm9uZToKICAgICAgICAiIiJTZXQgZGVmYXVsdCBpbnN0YW5jZSBvZiBjb25maWd1cmF0aW9uLgoKICAgICAgICBJdCBzdG9yZXMgZGVmYXVsdCBjb25maWd1cmF0aW9uLCB3aGljaCBjYW4gYmUKICAgICAgICByZXR1cm5lZCBieSBnZXRfZGVmYXVsdF9jb3B5IG1ldGhvZC4KCiAgICAgICAgOnBhcmFtIGRlZmF1bHQ6IG9iamVjdCBvZiBDb25maWd1cmF0aW9uCiAgICAgICAgIiIiCiAgICAgICAgY2xzLl9kZWZhdWx0ID0gZGVmYXVsdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGdldF9kZWZhdWx0X2NvcHkoY2xzKSAtPiBTZWxmOgogICAgICAgICIiIkRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgYGdldF9kZWZhdWx0YCBpbnN0ZWFkLgoKICAgICAgICBEZXByZWNhdGVkLiBQbGVhc2UgdXNlIGBnZXRfZGVmYXVsdGAgaW5zdGVhZC4KCiAgICAgICAgOnJldHVybjogVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0LgogICAgICAgICIiIgogICAgICAgIHJldHVybiBjbHMuZ2V0X2RlZmF1bHQoKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGdldF9kZWZhdWx0KGNscykgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm4gdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbi4KCiAgICAgICAgVGhpcyBtZXRob2QgcmV0dXJucyBuZXdseSBjcmVhdGVkLCBiYXNlZCBvbiBkZWZhdWx0IGNvbnN0cnVjdG9yLAogICAgICAgIG9iamVjdCBvZiBDb25maWd1cmF0aW9uIGNsYXNzIG9yIHJldHVybnMgYSBjb3B5IG9mIGRlZmF1bHQKICAgICAgICBjb25maWd1cmF0aW9uLgoKICAgICAgICA6cmV0dXJuOiBUaGUgY29uZmlndXJhdGlvbiBvYmplY3QuCiAgICAgICAgIiIiCiAgICAgICAgaWYgY2xzLl9kZWZhdWx0IGlzIE5vbmU6CiAgICAgICAgICAgIGNscy5fZGVmYXVsdCA9IGNscygpCiAgICAgICAgcmV0dXJuIGNscy5fZGVmYXVsdAoKICAgIEBwcm9wZXJ0eQogICAgZGVmIGxvZ2dlcl9maWxlKHNlbGYpIC0+IE9wdGlvbmFsW3N0cl06CiAgICAgICAgIiIiVGhlIGxvZ2dlciBmaWxlLgoKICAgICAgICBJZiB0aGUgbG9nZ2VyX2ZpbGUgaXMgTm9uZSwgdGhlbiBhZGQgc3RyZWFtIGhhbmRsZXIgYW5kIHJlbW92ZSBmaWxlCiAgICAgICAgaGFuZGxlci4gT3RoZXJ3aXNlLCBhZGQgZmlsZSBoYW5kbGVyIGFuZCByZW1vdmUgc3RyZWFtIGhhbmRsZXIuCgogICAgICAgIDpwYXJhbSB2YWx1ZTogVGhlIGxvZ2dlcl9maWxlIHBhdGguCiAgICAgICAgOnR5cGU6IHN0cgogICAgICAgICIiIgogICAgICAgIHJldHVybiBzZWxmLl9fbG9nZ2VyX2ZpbGUKCiAgICBAbG9nZ2VyX2ZpbGUuc2V0dGVyCiAgICBkZWYgbG9nZ2VyX2ZpbGUoc2VsZiwgdmFsdWU6IE9wdGlvbmFsW3N0cl0pIC0+IE5vbmU6CiAgICAgICAgIiIiVGhlIGxvZ2dlciBmaWxlLgoKICAgICAgICBJZiB0aGUgbG9nZ2VyX2ZpbGUgaXMgTm9uZSwgdGhlbiBhZGQgc3RyZWFtIGhhbmRsZXIgYW5kIHJlbW92ZSBmaWxlCiAgICAgICAgaGFuZGxlci4gT3RoZXJ3aXNlLCBhZGQgZmlsZSBoYW5kbGVyIGFuZCByZW1vdmUgc3RyZWFtIGhhbmRsZXIuCgogICAgICAgIDpwYXJhbSB2YWx1ZTogVGhlIGxvZ2dlcl9maWxlIHBhdGguCiAgICAgICAgOnR5cGU6IHN0cgogICAgICAgICIiIgogICAgICAgIHNlbGYuX19sb2dnZXJfZmlsZSA9IHZhbHVlCiAgICAgICAgaWYgc2VsZi5fX2xvZ2dlcl9maWxlOgogICAgICAgICAgICAjIElmIHNldCBsb2dnaW5nIGZpbGUsCiAgICAgICAgICAgICMgdGhlbiBhZGQgZmlsZSBoYW5kbGVyIGFuZCByZW1vdmUgc3RyZWFtIGhhbmRsZXIuCiAgICAgICAgICAgIHNlbGYubG9nZ2VyX2ZpbGVfaGFuZGxlciA9IGxvZ2dpbmcuRmlsZUhhbmRsZXIoc2VsZi5fX2xvZ2dlcl9maWxlKQogICAgICAgICAgICBzZWxmLmxvZ2dlcl9maWxlX2hhbmRsZXIuc2V0Rm9ybWF0dGVyKHNlbGYubG9nZ2VyX2Zvcm1hdHRlcikKICAgICAgICAgICAgZm9yIF8sIGxvZ2dlciBpbiBzZWxmLmxvZ2dlci5pdGVtcygpOgogICAgICAgICAgICAgICAgbG9nZ2VyLmFkZEhhbmRsZXIoc2VsZi5sb2dnZXJfZmlsZV9oYW5kbGVyKQoKICAgIEBwcm9wZXJ0eQogICAgZGVmIGRlYnVnKHNlbGYpIC0+IGJvb2w6CiAgICAgICAgIiIiRGVidWcgc3RhdHVzCgogICAgICAgIDpwYXJhbSB2YWx1ZTogVGhlIGRlYnVnIHN0YXR1cywgVHJ1ZSBvciBGYWxzZS4KICAgICAgICA6dHlwZTogYm9vbAogICAgICAgICIiIgogICAgICAgIHJldHVybiBzZWxmLl9fZGVidWcKCiAgICBAZGVidWcuc2V0dGVyCiAgICBkZWYgZGVidWcoc2VsZiwgdmFsdWU6IGJvb2wpIC0+IE5vbmU6CiAgICAgICAgIiIiRGVidWcgc3RhdHVzCgogICAgICAgIDpwYXJhbSB2YWx1ZTogVGhlIGRlYnVnIHN0YXR1cywgVHJ1ZSBvciBGYWxzZS4KICAgICAgICA6dHlwZTogYm9vbAogICAgICAgICIiIgogICAgICAgIHNlbGYuX19kZWJ1ZyA9IHZhbHVlCiAgICAgICAgaWYgc2VsZi5fX2RlYnVnOgogICAgICAgICAgICAjIGlmIGRlYnVnIHN0YXR1cyBpcyBUcnVlLCB0dXJuIG9uIGRlYnVnIGxvZ2dpbmcKICAgICAgICAgICAgZm9yIF8sIGxvZ2dlciBpbiBzZWxmLmxvZ2dlci5pdGVtcygpOgogICAgICAgICAgICAgICAgbG9nZ2VyLnNldExldmVsKGxvZ2dpbmcuREVCVUcpCiAgICAgICAgICAgICMgdHVybiBvbiBodHRwbGliIGRlYnVnCiAgICAgICAgICAgIGh0dHBsaWIuSFRUUENvbm5lY3Rpb24uZGVidWdsZXZlbCA9IDEKICAgICAgICBlbHNlOgogICAgICAgICAgICAjIGlmIGRlYnVnIHN0YXR1cyBpcyBGYWxzZSwgdHVybiBvZmYgZGVidWcgbG9nZ2luZywKICAgICAgICAgICAgIyBzZXR0aW5nIGxvZyBsZXZlbCB0byBkZWZhdWx0IGBsb2dnaW5nLldBUk5JTkdgCiAgICAgICAgICAgIGZvciBfLCBsb2dnZXIgaW4gc2VsZi5sb2dnZXIuaXRlbXMoKToKICAgICAgICAgICAgICAgIGxvZ2dlci5zZXRMZXZlbChsb2dnaW5nLldBUk5JTkcpCiAgICAgICAgICAgICMgdHVybiBvZmYgaHR0cGxpYiBkZWJ1ZwogICAgICAgICAgICBodHRwbGliLkhUVFBDb25uZWN0aW9uLmRlYnVnbGV2ZWwgPSAwCgogICAgQHByb3BlcnR5CiAgICBkZWYgbG9nZ2VyX2Zvcm1hdChzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiVGhlIGxvZ2dlciBmb3JtYXQuCgogICAgICAgIFRoZSBsb2dnZXJfZm9ybWF0dGVyIHdpbGwgYmUgdXBkYXRlZCB3aGVuIHNldHMgbG9nZ2VyX2Zvcm1hdC4KCiAgICAgICAgOnBhcmFtIHZhbHVlOiBUaGUgZm9ybWF0IHN0cmluZy4KICAgICAgICA6dHlwZTogc3RyCiAgICAgICAgIiIiCiAgICAgICAgcmV0dXJuIHNlbGYuX19sb2dnZXJfZm9ybWF0CgogICAgQGxvZ2dlcl9mb3JtYXQuc2V0dGVyCiAgICBkZWYgbG9nZ2VyX2Zvcm1hdChzZWxmLCB2YWx1ZTogc3RyKSAtPiBOb25lOgogICAgICAgICIiIlRoZSBsb2dnZXIgZm9ybWF0LgoKICAgICAgICBUaGUgbG9nZ2VyX2Zvcm1hdHRlciB3aWxsIGJlIHVwZGF0ZWQgd2hlbiBzZXRzIGxvZ2dlcl9mb3JtYXQuCgogICAgICAgIDpwYXJhbSB2YWx1ZTogVGhlIGZvcm1hdCBzdHJpbmcuCiAgICAgICAgOnR5cGU6IHN0cgogICAgICAgICIiIgogICAgICAgIHNlbGYuX19sb2dnZXJfZm9ybWF0ID0gdmFsdWUKICAgICAgICBzZWxmLmxvZ2dlcl9mb3JtYXR0ZXIgPSBsb2dnaW5nLkZvcm1hdHRlcihzZWxmLl9fbG9nZ2VyX2Zvcm1hdCkKCiAgICBkZWYgZ2V0X2FwaV9rZXlfd2l0aF9wcmVmaXgoCiAgICAgICAgc2VsZiwgaWRlbnRpZmllcjogc3RyLCBhbGlhczogT3B0aW9uYWxbc3RyXSA9IE5vbmUKICAgICkgLT4gT3B0aW9uYWxbc3RyXToKICAgICAgICAiIiJHZXRzIEFQSSBrZXkgKHdpdGggcHJlZml4IGlmIHNldCkuCgogICAgICAgIDpwYXJhbSBpZGVudGlmaWVyOiBUaGUgaWRlbnRpZmllciBvZiBhcGlLZXkuCiAgICAgICAgOnBhcmFtIGFsaWFzOiBUaGUgYWx0ZXJuYXRpdmUgaWRlbnRpZmllciBvZiBhcGlLZXkuCiAgICAgICAgOnJldHVybjogVGhlIHRva2VuIGZvciBhcGkga2V5IGF1dGhlbnRpY2F0aW9uLgogICAgICAgICIiIgogICAgICAgIGlmIHNlbGYucmVmcmVzaF9hcGlfa2V5X2hvb2sgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIHNlbGYucmVmcmVzaF9hcGlfa2V5X2hvb2soc2VsZikKICAgICAgICBrZXkgPSBzZWxmLmFwaV9rZXkuZ2V0KAogICAgICAgICAgICBpZGVudGlmaWVyLCBzZWxmLmFwaV9rZXkuZ2V0KGFsaWFzKSBpZiBhbGlhcyBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICApCiAgICAgICAgaWYga2V5OgogICAgICAgICAgICBwcmVmaXggPSBzZWxmLmFwaV9rZXlfcHJlZml4LmdldChpZGVudGlmaWVyKQogICAgICAgICAgICBpZiBwcmVmaXg6CiAgICAgICAgICAgICAgICByZXR1cm4gIiVzICVzIiAlIChwcmVmaXgsIGtleSkKICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgIHJldHVybiBrZXkKCiAgICAgICAgcmV0dXJuIE5vbmUKCiAgICBkZWYgZ2V0X2Jhc2ljX2F1dGhfdG9rZW4oc2VsZikgLT4gT3B0aW9uYWxbc3RyXToKICAgICAgICAiIiJHZXRzIEhUVFAgYmFzaWMgYXV0aGVudGljYXRpb24gaGVhZGVyIChzdHJpbmcpLgoKICAgICAgICA6cmV0dXJuOiBUaGUgdG9rZW4gZm9yIGJhc2ljIEhUVFAgYXV0aGVudGljYXRpb24uCiAgICAgICAgIiIiCiAgICAgICAgdXNlcm5hbWUgPSAiIgogICAgICAgIGlmIHNlbGYudXNlcm5hbWUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIHVzZXJuYW1lID0gc2VsZi51c2VybmFtZQogICAgICAgIHBhc3N3b3JkID0gIiIKICAgICAgICBpZiBzZWxmLnBhc3N3b3JkIGlzIG5vdCBOb25lOgogICAgICAgICAgICBwYXNzd29yZCA9IHNlbGYucGFzc3dvcmQKICAgICAgICByZXR1cm4gdXJsbGliMy51dGlsLm1ha2VfaGVhZGVycyhiYXNpY19hdXRoPXVzZXJuYW1lICsgIjoiICsgcGFzc3dvcmQpLmdldCgKICAgICAgICAgICAgImF1dGhvcml6YXRpb24iCiAgICAgICAgKQoKICAgIGRlZiBhdXRoX3NldHRpbmdzKHNlbGYpIC0+IEF1dGhTZXR0aW5nczoKICAgICAgICAiIiJHZXRzIEF1dGggU2V0dGluZ3MgZGljdCBmb3IgYXBpIGNsaWVudC4KCiAgICAgICAgOnJldHVybjogVGhlIEF1dGggU2V0dGluZ3MgaW5mb3JtYXRpb24gZGljdC4KICAgICAgICAiIiIKICAgICAgICBhdXRoOiBBdXRoU2V0dGluZ3MgPSB7fQogICAgICAgIGlmIHNlbGYuYWNjZXNzX3Rva2VuIGlzIG5vdCBOb25lOgogICAgICAgICAgICBhdXRoWyJiZWFyZXJUb2tlbkF1dGgiXSA9IHsKICAgICAgICAgICAgICAgICJ0eXBlIjogImJlYXJlciIsCiAgICAgICAgICAgICAgICAiaW4iOiAiaGVhZGVyIiwKICAgICAgICAgICAgICAgICJmb3JtYXQiOiAiSldUIiwKICAgICAgICAgICAgICAgICJrZXkiOiAiQXV0aG9yaXphdGlvbiIsCiAgICAgICAgICAgICAgICAidmFsdWUiOiAiQmVhcmVyICIgKyBzZWxmLmFjY2Vzc190b2tlbiwKICAgICAgICAgICAgfQogICAgICAgIGlmICJBcGlLZXlBdXRoIiBpbiBzZWxmLmFwaV9rZXk6CiAgICAgICAgICAgIGF1dGhbIkFwaUtleUF1dGgiXSA9IHsKICAgICAgICAgICAgICAgICJ0eXBlIjogImFwaV9rZXkiLAogICAgICAgICAgICAgICAgImluIjogImhlYWRlciIsCiAgICAgICAgICAgICAgICAia2V5IjogIlgtQVBJLUtleSIsCiAgICAgICAgICAgICAgICAidmFsdWUiOiBzZWxmLmdldF9hcGlfa2V5X3dpdGhfcHJlZml4KAogICAgICAgICAgICAgICAgICAgICJBcGlLZXlBdXRoIiwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgIH0KICAgICAgICByZXR1cm4gYXV0aAoKICAgIGRlZiB0b19kZWJ1Z19yZXBvcnQoc2VsZikgLT4gc3RyOgogICAgICAgICIiIkdldHMgdGhlIGVzc2VudGlhbCBpbmZvcm1hdGlvbiBmb3IgZGVidWdnaW5nLgoKICAgICAgICA6cmV0dXJuOiBUaGUgcmVwb3J0IGZvciBkZWJ1Z2dpbmcuCiAgICAgICAgIiIiCiAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgIlB5dGhvbiBTREsgRGVidWcgUmVwb3J0OlxuIgogICAgICAgICAgICAiT1M6IHtlbnZ9XG4iCiAgICAgICAgICAgICJQeXRob24gVmVyc2lvbjoge3B5dmVyc2lvbn1cbiIKICAgICAgICAgICAgIlZlcnNpb24gb2YgdGhlIEFQSTogMS42LjJcbiIKICAgICAgICAgICAgIlNESyBQYWNrYWdlIFZlcnNpb246IDAuMC4wIi5mb3JtYXQoZW52PXN5cy5wbGF0Zm9ybSwgcHl2ZXJzaW9uPXN5cy52ZXJzaW9uKQogICAgICAgICkKCiAgICBkZWYgZ2V0X2hvc3Rfc2V0dGluZ3Moc2VsZikgLT4gTGlzdFtIb3N0U2V0dGluZ106CiAgICAgICAgIiIiR2V0cyBhbiBhcnJheSBvZiBob3N0IHNldHRpbmdzCgogICAgICAgIDpyZXR1cm46IEFuIGFycmF5IG9mIGhvc3Qgc2V0dGluZ3MKICAgICAgICAiIiIKICAgICAgICByZXR1cm4gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmZpcmVibG9ja3MuaW8vdjEiLAogICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVibG9ja3MgUHJvZHVjdGlvbiBFbnZpcm9ubWVudCBCYXNlIFVSTCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIiwKICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlYmxvY2tzIFNhbmRib3ggRW52aXJvbm1lbnQgQmFzZSBVUkwiLAogICAgICAgICAgICB9LAogICAgICAgIF0KCiAgICBkZWYgZ2V0X2hvc3RfZnJvbV9zZXR0aW5ncygKICAgICAgICBzZWxmLAogICAgICAgIGluZGV4OiBPcHRpb25hbFtpbnRdLAogICAgICAgIHZhcmlhYmxlczogT3B0aW9uYWxbU2VydmVyVmFyaWFibGVzVF0gPSBOb25lLAogICAgICAgIHNlcnZlcnM6IE9wdGlvbmFsW0xpc3RbSG9zdFNldHRpbmddXSA9IE5vbmUsCiAgICApIC0+IHN0cjoKICAgICAgICAiIiJHZXRzIGhvc3QgVVJMIGJhc2VkIG9uIHRoZSBpbmRleCBhbmQgdmFyaWFibGVzCiAgICAgICAgOnBhcmFtIGluZGV4OiBhcnJheSBpbmRleCBvZiB0aGUgaG9zdCBzZXR0aW5ncwogICAgICAgIDpwYXJhbSB2YXJpYWJsZXM6IGhhc2ggb2YgdmFyaWFibGUgYW5kIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlCiAgICAgICAgOnBhcmFtIHNlcnZlcnM6IGFuIGFycmF5IG9mIGhvc3Qgc2V0dGluZ3Mgb3IgTm9uZQogICAgICAgIDpyZXR1cm46IFVSTCBiYXNlZCBvbiBob3N0IHNldHRpbmdzCiAgICAgICAgIiIiCiAgICAgICAgaWYgaW5kZXggaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2Jhc2VfcGF0aAoKICAgICAgICB2YXJpYWJsZXMgPSB7fSBpZiB2YXJpYWJsZXMgaXMgTm9uZSBlbHNlIHZhcmlhYmxlcwogICAgICAgIHNlcnZlcnMgPSBzZWxmLmdldF9ob3N0X3NldHRpbmdzKCkgaWYgc2VydmVycyBpcyBOb25lIGVsc2Ugc2VydmVycwoKICAgICAgICB0cnk6CiAgICAgICAgICAgIHNlcnZlciA9IHNlcnZlcnNbaW5kZXhdCiAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCiAgICAgICAgICAgICAgICAiSW52YWxpZCBpbmRleCB7MH0gd2hlbiBzZWxlY3RpbmcgdGhlIGhvc3Qgc2V0dGluZ3MuICIKICAgICAgICAgICAgICAgICJNdXN0IGJlIGxlc3MgdGhhbiB7MX0iLmZvcm1hdChpbmRleCwgbGVuKHNlcnZlcnMpKQogICAgICAgICAgICApCgogICAgICAgIHVybCA9IHNlcnZlclsidXJsIl0KCiAgICAgICAgIyBnbyB0aHJvdWdoIHZhcmlhYmxlcyBhbmQgcmVwbGFjZSBwbGFjZWhvbGRlcnMKICAgICAgICBmb3IgdmFyaWFibGVfbmFtZSwgdmFyaWFibGUgaW4gc2VydmVyLmdldCgidmFyaWFibGVzIiwge30pLml0ZW1zKCk6CiAgICAgICAgICAgIHVzZWRfdmFsdWUgPSB2YXJpYWJsZXMuZ2V0KHZhcmlhYmxlX25hbWUsIHZhcmlhYmxlWyJkZWZhdWx0X3ZhbHVlIl0pCgogICAgICAgICAgICBpZiAiZW51bV92YWx1ZXMiIGluIHZhcmlhYmxlIGFuZCB1c2VkX3ZhbHVlIG5vdCBpbiB2YXJpYWJsZVsiZW51bV92YWx1ZXMiXToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgIlRoZSB2YXJpYWJsZSBgezB9YCBpbiB0aGUgaG9zdCBVUkwgaGFzIGludmFsaWQgdmFsdWUgIgogICAgICAgICAgICAgICAgICAgICJ7MX0uIE11c3QgYmUgezJ9LiIuZm9ybWF0KAogICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZV9uYW1lLCB2YXJpYWJsZXNbdmFyaWFibGVfbmFtZV0sIHZhcmlhYmxlWyJlbnVtX3ZhbHVlcyJdCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgKQoKICAgICAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoInsiICsgdmFyaWFibGVfbmFtZSArICJ9IiwgdXNlZF92YWx1ZSkKCiAgICAgICAgcmV0dXJuIHVybAoKICAgIEBwcm9wZXJ0eQogICAgZGVmIGhvc3Qoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybiBnZW5lcmF0ZWQgaG9zdC4iIiIKICAgICAgICByZXR1cm4gc2VsZi5nZXRfaG9zdF9mcm9tX3NldHRpbmdzKAogICAgICAgICAgICBzZWxmLnNlcnZlcl9pbmRleCwgdmFyaWFibGVzPXNlbGYuc2VydmVyX3ZhcmlhYmxlcwogICAgICAgICkKCiAgICBAaG9zdC5zZXR0ZXIKICAgIGRlZiBob3N0KHNlbGYsIHZhbHVlOiBzdHIpIC0+IE5vbmU6CiAgICAgICAgIiIiRml4IGJhc2UgcGF0aC4iIiIKICAgICAgICBzZWxmLl9iYXNlX3BhdGggPSB2YWx1ZQogICAgICAgIHNlbGYuc2VydmVyX2luZGV4ID0gTm9uZQo= \ No newline at end of file diff --git a/fireblocks/exceptions.py b/fireblocks/exceptions.py index a81e6a83..0b663518 100644 --- a/fireblocks/exceptions.py +++ b/fireblocks/exceptions.py @@ -1,221 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - -from typing import Any, Optional -from typing_extensions import Self - - -class OpenApiException(Exception): - """The base exception class for all OpenAPIExceptions""" - - -class ApiTypeError(OpenApiException, TypeError): - def __init__( - self, msg, path_to_item=None, valid_classes=None, key_type=None - ) -> None: - """Raises an exception for TypeErrors - - Args: - msg (str): the exception message - - Keyword Args: - path_to_item (list): a list of keys an indices to get to the - current_item - None if unset - valid_classes (tuple): the primitive classes that current item - should be an instance of - None if unset - key_type (bool): False if our value is a value in a dict - True if it is a key in a dict - False if our item is an item in a list - None if unset - """ - self.path_to_item = path_to_item - self.valid_classes = valid_classes - self.key_type = key_type - full_msg = msg - if path_to_item: - full_msg = "{0} at {1}".format(msg, render_path(path_to_item)) - super(ApiTypeError, self).__init__(full_msg) - - -class ApiValueError(OpenApiException, ValueError): - def __init__(self, msg, path_to_item=None) -> None: - """ - Args: - msg (str): the exception message - - Keyword Args: - path_to_item (list) the path to the exception in the - received_data dict. None if unset - """ - - self.path_to_item = path_to_item - full_msg = msg - if path_to_item: - full_msg = "{0} at {1}".format(msg, render_path(path_to_item)) - super(ApiValueError, self).__init__(full_msg) - - -class ApiAttributeError(OpenApiException, AttributeError): - def __init__(self, msg, path_to_item=None) -> None: - """ - Raised when an attribute reference or assignment fails. - - Args: - msg (str): the exception message - - Keyword Args: - path_to_item (None/list) the path to the exception in the - received_data dict - """ - self.path_to_item = path_to_item - full_msg = msg - if path_to_item: - full_msg = "{0} at {1}".format(msg, render_path(path_to_item)) - super(ApiAttributeError, self).__init__(full_msg) - - -class ApiKeyError(OpenApiException, KeyError): - def __init__(self, msg, path_to_item=None) -> None: - """ - Args: - msg (str): the exception message - - Keyword Args: - path_to_item (None/list) the path to the exception in the - received_data dict - """ - self.path_to_item = path_to_item - full_msg = msg - if path_to_item: - full_msg = "{0} at {1}".format(msg, render_path(path_to_item)) - super(ApiKeyError, self).__init__(full_msg) - - -class ApiException(OpenApiException): - - def __init__( - self, - status=None, - reason=None, - http_resp=None, - *, - body: Optional[str] = None, - data: Optional[Any] = None, - ) -> None: - self.status = status - self.reason = reason - self.body = body - self.data = data - self.headers = None - - if http_resp: - if self.status is None: - self.status = http_resp.status - if self.reason is None: - self.reason = http_resp.reason - if self.body is None: - try: - self.body = http_resp.data.decode("utf-8") - except Exception: - pass - self.headers = http_resp.getheaders() - - @classmethod - def from_response( - cls, - *, - http_resp, - body: Optional[str], - data: Optional[Any], - ) -> Self: - if http_resp.status == 400: - raise BadRequestException(http_resp=http_resp, body=body, data=data) - - if http_resp.status == 401: - raise UnauthorizedException(http_resp=http_resp, body=body, data=data) - - if http_resp.status == 403: - raise ForbiddenException(http_resp=http_resp, body=body, data=data) - - if http_resp.status == 404: - raise NotFoundException(http_resp=http_resp, body=body, data=data) - - # Added new conditions for 409 and 422 - if http_resp.status == 409: - raise ConflictException(http_resp=http_resp, body=body, data=data) - - if http_resp.status == 422: - raise UnprocessableEntityException( - http_resp=http_resp, body=body, data=data - ) - - if 500 <= http_resp.status <= 599: - raise ServiceException(http_resp=http_resp, body=body, data=data) - raise ApiException(http_resp=http_resp, body=body, data=data) - - def __str__(self): - """Custom error messages for exception""" - error_message = "({0})\n" "Reason: {1}\n".format(self.status, self.reason) - if self.headers: - error_message += "HTTP response headers: {0}\n".format(self.headers) - - if self.data or self.body: - error_message += "HTTP response body: {0}\n".format(self.data or self.body) - - return error_message - - -class BadRequestException(ApiException): - pass - - -class NotFoundException(ApiException): - pass - - -class UnauthorizedException(ApiException): - pass - - -class ForbiddenException(ApiException): - pass - - -class ServiceException(ApiException): - pass - - -class ConflictException(ApiException): - """Exception for HTTP 409 Conflict.""" - - pass - - -class UnprocessableEntityException(ApiException): - """Exception for HTTP 422 Unprocessable Entity.""" - - pass - - -def render_path(path_to_item): - """Returns a string representation of a path""" - result = "" - for pth in path_to_item: - if isinstance(pth, int): - result += "[{0}]".format(pth) - else: - result += "['{0}']".format(pth) - return result +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBPcHRpb25hbApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgoKY2xhc3MgT3BlbkFwaUV4Y2VwdGlvbihFeGNlcHRpb24pOgogICAgIiIiVGhlIGJhc2UgZXhjZXB0aW9uIGNsYXNzIGZvciBhbGwgT3BlbkFQSUV4Y2VwdGlvbnMiIiIKCgpjbGFzcyBBcGlUeXBlRXJyb3IoT3BlbkFwaUV4Y2VwdGlvbiwgVHlwZUVycm9yKToKICAgIGRlZiBfX2luaXRfXygKICAgICAgICBzZWxmLCBtc2csIHBhdGhfdG9faXRlbT1Ob25lLCB2YWxpZF9jbGFzc2VzPU5vbmUsIGtleV90eXBlPU5vbmUKICAgICkgLT4gTm9uZToKICAgICAgICAiIiJSYWlzZXMgYW4gZXhjZXB0aW9uIGZvciBUeXBlRXJyb3JzCgogICAgICAgIEFyZ3M6CiAgICAgICAgICAgIG1zZyAoc3RyKTogdGhlIGV4Y2VwdGlvbiBtZXNzYWdlCgogICAgICAgIEtleXdvcmQgQXJnczoKICAgICAgICAgICAgcGF0aF90b19pdGVtIChsaXN0KTogYSBsaXN0IG9mIGtleXMgYW4gaW5kaWNlcyB0byBnZXQgdG8gdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfaXRlbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lIGlmIHVuc2V0CiAgICAgICAgICAgIHZhbGlkX2NsYXNzZXMgKHR1cGxlKTogdGhlIHByaW1pdGl2ZSBjbGFzc2VzIHRoYXQgY3VycmVudCBpdGVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIGJlIGFuIGluc3RhbmNlIG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSBpZiB1bnNldAogICAgICAgICAgICBrZXlfdHlwZSAoYm9vbCk6IEZhbHNlIGlmIG91ciB2YWx1ZSBpcyBhIHZhbHVlIGluIGEgZGljdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRydWUgaWYgaXQgaXMgYSBrZXkgaW4gYSBkaWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UgaWYgb3VyIGl0ZW0gaXMgYW4gaXRlbSBpbiBhIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lIGlmIHVuc2V0CiAgICAgICAgIiIiCiAgICAgICAgc2VsZi5wYXRoX3RvX2l0ZW0gPSBwYXRoX3RvX2l0ZW0KICAgICAgICBzZWxmLnZhbGlkX2NsYXNzZXMgPSB2YWxpZF9jbGFzc2VzCiAgICAgICAgc2VsZi5rZXlfdHlwZSA9IGtleV90eXBlCiAgICAgICAgZnVsbF9tc2cgPSBtc2cKICAgICAgICBpZiBwYXRoX3RvX2l0ZW06CiAgICAgICAgICAgIGZ1bGxfbXNnID0gInswfSBhdCB7MX0iLmZvcm1hdChtc2csIHJlbmRlcl9wYXRoKHBhdGhfdG9faXRlbSkpCiAgICAgICAgc3VwZXIoQXBpVHlwZUVycm9yLCBzZWxmKS5fX2luaXRfXyhmdWxsX21zZykKCgpjbGFzcyBBcGlWYWx1ZUVycm9yKE9wZW5BcGlFeGNlcHRpb24sIFZhbHVlRXJyb3IpOgogICAgZGVmIF9faW5pdF9fKHNlbGYsIG1zZywgcGF0aF90b19pdGVtPU5vbmUpIC0+IE5vbmU6CiAgICAgICAgIiIiCiAgICAgICAgQXJnczoKICAgICAgICAgICAgbXNnIChzdHIpOiB0aGUgZXhjZXB0aW9uIG1lc3NhZ2UKCiAgICAgICAgS2V5d29yZCBBcmdzOgogICAgICAgICAgICBwYXRoX3RvX2l0ZW0gKGxpc3QpIHRoZSBwYXRoIHRvIHRoZSBleGNlcHRpb24gaW4gdGhlCiAgICAgICAgICAgICAgICByZWNlaXZlZF9kYXRhIGRpY3QuIE5vbmUgaWYgdW5zZXQKICAgICAgICAiIiIKCiAgICAgICAgc2VsZi5wYXRoX3RvX2l0ZW0gPSBwYXRoX3RvX2l0ZW0KICAgICAgICBmdWxsX21zZyA9IG1zZwogICAgICAgIGlmIHBhdGhfdG9faXRlbToKICAgICAgICAgICAgZnVsbF9tc2cgPSAiezB9IGF0IHsxfSIuZm9ybWF0KG1zZywgcmVuZGVyX3BhdGgocGF0aF90b19pdGVtKSkKICAgICAgICBzdXBlcihBcGlWYWx1ZUVycm9yLCBzZWxmKS5fX2luaXRfXyhmdWxsX21zZykKCgpjbGFzcyBBcGlBdHRyaWJ1dGVFcnJvcihPcGVuQXBpRXhjZXB0aW9uLCBBdHRyaWJ1dGVFcnJvcik6CiAgICBkZWYgX19pbml0X18oc2VsZiwgbXNnLCBwYXRoX3RvX2l0ZW09Tm9uZSkgLT4gTm9uZToKICAgICAgICAiIiIKICAgICAgICBSYWlzZWQgd2hlbiBhbiBhdHRyaWJ1dGUgcmVmZXJlbmNlIG9yIGFzc2lnbm1lbnQgZmFpbHMuCgogICAgICAgIEFyZ3M6CiAgICAgICAgICAgIG1zZyAoc3RyKTogdGhlIGV4Y2VwdGlvbiBtZXNzYWdlCgogICAgICAgIEtleXdvcmQgQXJnczoKICAgICAgICAgICAgcGF0aF90b19pdGVtIChOb25lL2xpc3QpIHRoZSBwYXRoIHRvIHRoZSBleGNlcHRpb24gaW4gdGhlCiAgICAgICAgICAgICAgICByZWNlaXZlZF9kYXRhIGRpY3QKICAgICAgICAiIiIKICAgICAgICBzZWxmLnBhdGhfdG9faXRlbSA9IHBhdGhfdG9faXRlbQogICAgICAgIGZ1bGxfbXNnID0gbXNnCiAgICAgICAgaWYgcGF0aF90b19pdGVtOgogICAgICAgICAgICBmdWxsX21zZyA9ICJ7MH0gYXQgezF9Ii5mb3JtYXQobXNnLCByZW5kZXJfcGF0aChwYXRoX3RvX2l0ZW0pKQogICAgICAgIHN1cGVyKEFwaUF0dHJpYnV0ZUVycm9yLCBzZWxmKS5fX2luaXRfXyhmdWxsX21zZykKCgpjbGFzcyBBcGlLZXlFcnJvcihPcGVuQXBpRXhjZXB0aW9uLCBLZXlFcnJvcik6CiAgICBkZWYgX19pbml0X18oc2VsZiwgbXNnLCBwYXRoX3RvX2l0ZW09Tm9uZSkgLT4gTm9uZToKICAgICAgICAiIiIKICAgICAgICBBcmdzOgogICAgICAgICAgICBtc2cgKHN0cik6IHRoZSBleGNlcHRpb24gbWVzc2FnZQoKICAgICAgICBLZXl3b3JkIEFyZ3M6CiAgICAgICAgICAgIHBhdGhfdG9faXRlbSAoTm9uZS9saXN0KSB0aGUgcGF0aCB0byB0aGUgZXhjZXB0aW9uIGluIHRoZQogICAgICAgICAgICAgICAgcmVjZWl2ZWRfZGF0YSBkaWN0CiAgICAgICAgIiIiCiAgICAgICAgc2VsZi5wYXRoX3RvX2l0ZW0gPSBwYXRoX3RvX2l0ZW0KICAgICAgICBmdWxsX21zZyA9IG1zZwogICAgICAgIGlmIHBhdGhfdG9faXRlbToKICAgICAgICAgICAgZnVsbF9tc2cgPSAiezB9IGF0IHsxfSIuZm9ybWF0KG1zZywgcmVuZGVyX3BhdGgocGF0aF90b19pdGVtKSkKICAgICAgICBzdXBlcihBcGlLZXlFcnJvciwgc2VsZikuX19pbml0X18oZnVsbF9tc2cpCgoKY2xhc3MgQXBpRXhjZXB0aW9uKE9wZW5BcGlFeGNlcHRpb24pOgoKICAgIGRlZiBfX2luaXRfXygKICAgICAgICBzZWxmLAogICAgICAgIHN0YXR1cz1Ob25lLAogICAgICAgIHJlYXNvbj1Ob25lLAogICAgICAgIGh0dHBfcmVzcD1Ob25lLAogICAgICAgICosCiAgICAgICAgYm9keTogT3B0aW9uYWxbc3RyXSA9IE5vbmUsCiAgICAgICAgZGF0YTogT3B0aW9uYWxbQW55XSA9IE5vbmUsCiAgICApIC0+IE5vbmU6CiAgICAgICAgc2VsZi5zdGF0dXMgPSBzdGF0dXMKICAgICAgICBzZWxmLnJlYXNvbiA9IHJlYXNvbgogICAgICAgIHNlbGYuYm9keSA9IGJvZHkKICAgICAgICBzZWxmLmRhdGEgPSBkYXRhCiAgICAgICAgc2VsZi5oZWFkZXJzID0gTm9uZQoKICAgICAgICBpZiBodHRwX3Jlc3A6CiAgICAgICAgICAgIGlmIHNlbGYuc3RhdHVzIGlzIE5vbmU6CiAgICAgICAgICAgICAgICBzZWxmLnN0YXR1cyA9IGh0dHBfcmVzcC5zdGF0dXMKICAgICAgICAgICAgaWYgc2VsZi5yZWFzb24gaXMgTm9uZToKICAgICAgICAgICAgICAgIHNlbGYucmVhc29uID0gaHR0cF9yZXNwLnJlYXNvbgogICAgICAgICAgICBpZiBzZWxmLmJvZHkgaXMgTm9uZToKICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICBzZWxmLmJvZHkgPSBodHRwX3Jlc3AuZGF0YS5kZWNvZGUoInV0Zi04IikKICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICBzZWxmLmhlYWRlcnMgPSBodHRwX3Jlc3AuZ2V0aGVhZGVycygpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9yZXNwb25zZSgKICAgICAgICBjbHMsCiAgICAgICAgKiwKICAgICAgICBodHRwX3Jlc3AsCiAgICAgICAgYm9keTogT3B0aW9uYWxbc3RyXSwKICAgICAgICBkYXRhOiBPcHRpb25hbFtBbnldLAogICAgKSAtPiBTZWxmOgogICAgICAgIGlmIGh0dHBfcmVzcC5zdGF0dXMgPT0gNDAwOgogICAgICAgICAgICByYWlzZSBCYWRSZXF1ZXN0RXhjZXB0aW9uKGh0dHBfcmVzcD1odHRwX3Jlc3AsIGJvZHk9Ym9keSwgZGF0YT1kYXRhKQoKICAgICAgICBpZiBodHRwX3Jlc3Auc3RhdHVzID09IDQwMToKICAgICAgICAgICAgcmFpc2UgVW5hdXRob3JpemVkRXhjZXB0aW9uKGh0dHBfcmVzcD1odHRwX3Jlc3AsIGJvZHk9Ym9keSwgZGF0YT1kYXRhKQoKICAgICAgICBpZiBodHRwX3Jlc3Auc3RhdHVzID09IDQwMzoKICAgICAgICAgICAgcmFpc2UgRm9yYmlkZGVuRXhjZXB0aW9uKGh0dHBfcmVzcD1odHRwX3Jlc3AsIGJvZHk9Ym9keSwgZGF0YT1kYXRhKQoKICAgICAgICBpZiBodHRwX3Jlc3Auc3RhdHVzID09IDQwNDoKICAgICAgICAgICAgcmFpc2UgTm90Rm91bmRFeGNlcHRpb24oaHR0cF9yZXNwPWh0dHBfcmVzcCwgYm9keT1ib2R5LCBkYXRhPWRhdGEpCgogICAgICAgICMgQWRkZWQgbmV3IGNvbmRpdGlvbnMgZm9yIDQwOSBhbmQgNDIyCiAgICAgICAgaWYgaHR0cF9yZXNwLnN0YXR1cyA9PSA0MDk6CiAgICAgICAgICAgIHJhaXNlIENvbmZsaWN0RXhjZXB0aW9uKGh0dHBfcmVzcD1odHRwX3Jlc3AsIGJvZHk9Ym9keSwgZGF0YT1kYXRhKQoKICAgICAgICBpZiBodHRwX3Jlc3Auc3RhdHVzID09IDQyMjoKICAgICAgICAgICAgcmFpc2UgVW5wcm9jZXNzYWJsZUVudGl0eUV4Y2VwdGlvbigKICAgICAgICAgICAgICAgIGh0dHBfcmVzcD1odHRwX3Jlc3AsIGJvZHk9Ym9keSwgZGF0YT1kYXRhCiAgICAgICAgICAgICkKCiAgICAgICAgaWYgNTAwIDw9IGh0dHBfcmVzcC5zdGF0dXMgPD0gNTk5OgogICAgICAgICAgICByYWlzZSBTZXJ2aWNlRXhjZXB0aW9uKGh0dHBfcmVzcD1odHRwX3Jlc3AsIGJvZHk9Ym9keSwgZGF0YT1kYXRhKQogICAgICAgIHJhaXNlIEFwaUV4Y2VwdGlvbihodHRwX3Jlc3A9aHR0cF9yZXNwLCBib2R5PWJvZHksIGRhdGE9ZGF0YSkKCiAgICBkZWYgX19zdHJfXyhzZWxmKToKICAgICAgICAiIiJDdXN0b20gZXJyb3IgbWVzc2FnZXMgZm9yIGV4Y2VwdGlvbiIiIgogICAgICAgIGVycm9yX21lc3NhZ2UgPSAiKHswfSlcbiIgIlJlYXNvbjogezF9XG4iLmZvcm1hdChzZWxmLnN0YXR1cywgc2VsZi5yZWFzb24pCiAgICAgICAgaWYgc2VsZi5oZWFkZXJzOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlICs9ICJIVFRQIHJlc3BvbnNlIGhlYWRlcnM6IHswfVxuIi5mb3JtYXQoc2VsZi5oZWFkZXJzKQoKICAgICAgICBpZiBzZWxmLmRhdGEgb3Igc2VsZi5ib2R5OgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlICs9ICJIVFRQIHJlc3BvbnNlIGJvZHk6IHswfVxuIi5mb3JtYXQoc2VsZi5kYXRhIG9yIHNlbGYuYm9keSkKCiAgICAgICAgcmV0dXJuIGVycm9yX21lc3NhZ2UKCgpjbGFzcyBCYWRSZXF1ZXN0RXhjZXB0aW9uKEFwaUV4Y2VwdGlvbik6CiAgICBwYXNzCgoKY2xhc3MgTm90Rm91bmRFeGNlcHRpb24oQXBpRXhjZXB0aW9uKToKICAgIHBhc3MKCgpjbGFzcyBVbmF1dGhvcml6ZWRFeGNlcHRpb24oQXBpRXhjZXB0aW9uKToKICAgIHBhc3MKCgpjbGFzcyBGb3JiaWRkZW5FeGNlcHRpb24oQXBpRXhjZXB0aW9uKToKICAgIHBhc3MKCgpjbGFzcyBTZXJ2aWNlRXhjZXB0aW9uKEFwaUV4Y2VwdGlvbik6CiAgICBwYXNzCgoKY2xhc3MgQ29uZmxpY3RFeGNlcHRpb24oQXBpRXhjZXB0aW9uKToKICAgICIiIkV4Y2VwdGlvbiBmb3IgSFRUUCA0MDkgQ29uZmxpY3QuIiIiCgogICAgcGFzcwoKCmNsYXNzIFVucHJvY2Vzc2FibGVFbnRpdHlFeGNlcHRpb24oQXBpRXhjZXB0aW9uKToKICAgICIiIkV4Y2VwdGlvbiBmb3IgSFRUUCA0MjIgVW5wcm9jZXNzYWJsZSBFbnRpdHkuIiIiCgogICAgcGFzcwoKCmRlZiByZW5kZXJfcGF0aChwYXRoX3RvX2l0ZW0pOgogICAgIiIiUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIHBhdGgiIiIKICAgIHJlc3VsdCA9ICIiCiAgICBmb3IgcHRoIGluIHBhdGhfdG9faXRlbToKICAgICAgICBpZiBpc2luc3RhbmNlKHB0aCwgaW50KToKICAgICAgICAgICAgcmVzdWx0ICs9ICJbezB9XSIuZm9ybWF0KHB0aCkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXN1bHQgKz0gIlsnezB9J10iLmZvcm1hdChwdGgpCiAgICByZXR1cm4gcmVzdWx0Cg== \ No newline at end of file diff --git a/fireblocks/models/__init__.py b/fireblocks/models/__init__.py index 1ac4e333..0e2215e0 100644 --- a/fireblocks/models/__init__.py +++ b/fireblocks/models/__init__.py @@ -1,1009 +1 @@ -# coding: utf-8 - -# flake8: noqa -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -# import models into model package -from fireblocks.models.api_user import APIUser -from fireblocks.models.aba_payment_info import AbaPaymentInfo -from fireblocks.models.abi_function import AbiFunction -from fireblocks.models.access_registry_address_item import AccessRegistryAddressItem -from fireblocks.models.access_registry_current_state_response import AccessRegistryCurrentStateResponse -from fireblocks.models.access_registry_summary_response import AccessRegistrySummaryResponse -from fireblocks.models.access_type import AccessType -from fireblocks.models.account import Account -from fireblocks.models.account_access import AccountAccess -from fireblocks.models.account_base import AccountBase -from fireblocks.models.account_based_access_provider import AccountBasedAccessProvider -from fireblocks.models.account_based_access_provider_details import AccountBasedAccessProviderDetails -from fireblocks.models.account_config import AccountConfig -from fireblocks.models.account_holder_details import AccountHolderDetails -from fireblocks.models.account_identifier import AccountIdentifier -from fireblocks.models.account_reference import AccountReference -from fireblocks.models.account_type import AccountType -from fireblocks.models.account_type2 import AccountType2 -from fireblocks.models.ach_account_type import AchAccountType -from fireblocks.models.ach_address import AchAddress -from fireblocks.models.ach_destination import AchDestination -from fireblocks.models.ach_payment_info import AchPaymentInfo -from fireblocks.models.adapter_processing_result import AdapterProcessingResult -from fireblocks.models.add_abi_request_dto import AddAbiRequestDto -from fireblocks.models.add_asset_to_external_wallet_request import AddAssetToExternalWalletRequest -from fireblocks.models.add_collateral_request_body import AddCollateralRequestBody -from fireblocks.models.add_contract_asset_request import AddContractAssetRequest -from fireblocks.models.add_cosigner_request import AddCosignerRequest -from fireblocks.models.add_cosigner_response import AddCosignerResponse -from fireblocks.models.add_exchange_account_request import AddExchangeAccountRequest -from fireblocks.models.add_exchange_account_response import AddExchangeAccountResponse -from fireblocks.models.additional_info import AdditionalInfo -from fireblocks.models.additional_info_request import AdditionalInfoRequest -from fireblocks.models.additional_info_request_additional_info import AdditionalInfoRequestAdditionalInfo -from fireblocks.models.address_balance_item_dto import AddressBalanceItemDto -from fireblocks.models.address_balance_paged_response import AddressBalancePagedResponse -from fireblocks.models.address_not_available_error import AddressNotAvailableError -from fireblocks.models.address_registry_error import AddressRegistryError -from fireblocks.models.address_registry_legal_entity import AddressRegistryLegalEntity -from fireblocks.models.alert_exposure_type_enum import AlertExposureTypeEnum -from fireblocks.models.alert_level_enum import AlertLevelEnum -from fireblocks.models.aml_alert import AmlAlert -from fireblocks.models.aml_matched_rule import AmlMatchedRule -from fireblocks.models.aml_registration_result import AmlRegistrationResult -from fireblocks.models.aml_registration_result_full_payload import AmlRegistrationResultFullPayload -from fireblocks.models.aml_result import AmlResult -from fireblocks.models.aml_screening_result import AmlScreeningResult -from fireblocks.models.aml_status_enum import AmlStatusEnum -from fireblocks.models.aml_verdict_manual_request import AmlVerdictManualRequest -from fireblocks.models.aml_verdict_manual_response import AmlVerdictManualResponse -from fireblocks.models.amount_and_chain_descriptor import AmountAndChainDescriptor -from fireblocks.models.amount_config import AmountConfig -from fireblocks.models.amount_config_currency import AmountConfigCurrency -from fireblocks.models.amount_info import AmountInfo -from fireblocks.models.amount_over_time_config import AmountOverTimeConfig -from fireblocks.models.amount_range import AmountRange -from fireblocks.models.amount_range_min_max import AmountRangeMinMax -from fireblocks.models.amount_range_min_max2 import AmountRangeMinMax2 -from fireblocks.models.api_key import ApiKey -from fireblocks.models.api_keys_paginated_response import ApiKeysPaginatedResponse -from fireblocks.models.approval_request import ApprovalRequest -from fireblocks.models.approvers_config import ApproversConfig -from fireblocks.models.approvers_config_approval_groups_inner import ApproversConfigApprovalGroupsInner -from fireblocks.models.asset import Asset -from fireblocks.models.asset_already_exist_http_error import AssetAlreadyExistHttpError -from fireblocks.models.asset_amount import AssetAmount -from fireblocks.models.asset_bad_request_error_response import AssetBadRequestErrorResponse -from fireblocks.models.asset_class import AssetClass -from fireblocks.models.asset_config import AssetConfig -from fireblocks.models.asset_conflict_error_response import AssetConflictErrorResponse -from fireblocks.models.asset_details_metadata import AssetDetailsMetadata -from fireblocks.models.asset_details_onchain import AssetDetailsOnchain -from fireblocks.models.asset_feature import AssetFeature -from fireblocks.models.asset_forbidden_error_response import AssetForbiddenErrorResponse -from fireblocks.models.asset_internal_server_error_response import AssetInternalServerErrorResponse -from fireblocks.models.asset_media import AssetMedia -from fireblocks.models.asset_media_attributes import AssetMediaAttributes -from fireblocks.models.asset_metadata import AssetMetadata -from fireblocks.models.asset_metadata_dto import AssetMetadataDto -from fireblocks.models.asset_metadata_request import AssetMetadataRequest -from fireblocks.models.asset_not_found_error_response import AssetNotFoundErrorResponse -from fireblocks.models.asset_note import AssetNote -from fireblocks.models.asset_note_request import AssetNoteRequest -from fireblocks.models.asset_onchain import AssetOnchain -from fireblocks.models.asset_price_forbidden_error_response import AssetPriceForbiddenErrorResponse -from fireblocks.models.asset_price_not_found_error_response import AssetPriceNotFoundErrorResponse -from fireblocks.models.asset_price_response import AssetPriceResponse -from fireblocks.models.asset_response import AssetResponse -from fireblocks.models.asset_scope import AssetScope -from fireblocks.models.asset_type_enum import AssetTypeEnum -from fireblocks.models.asset_type_response import AssetTypeResponse -from fireblocks.models.asset_types_config_inner import AssetTypesConfigInner -from fireblocks.models.asset_wallet import AssetWallet -from fireblocks.models.audit_log_data import AuditLogData -from fireblocks.models.auditor_data import AuditorData -from fireblocks.models.authorization_groups import AuthorizationGroups -from fireblocks.models.authorization_info import AuthorizationInfo -from fireblocks.models.balance_history_item_dto import BalanceHistoryItemDto -from fireblocks.models.balance_history_paged_response import BalanceHistoryPagedResponse -from fireblocks.models.bank_address import BankAddress -from fireblocks.models.base_provider import BaseProvider -from fireblocks.models.basic_address_request import BasicAddressRequest -from fireblocks.models.block_info import BlockInfo -from fireblocks.models.blockchain_address import BlockchainAddress -from fireblocks.models.blockchain_destination import BlockchainDestination -from fireblocks.models.blockchain_explorer import BlockchainExplorer -from fireblocks.models.blockchain_media import BlockchainMedia -from fireblocks.models.blockchain_metadata import BlockchainMetadata -from fireblocks.models.blockchain_not_found_error_response import BlockchainNotFoundErrorResponse -from fireblocks.models.blockchain_onchain import BlockchainOnchain -from fireblocks.models.blockchain_response import BlockchainResponse -from fireblocks.models.blockchain_transfer import BlockchainTransfer -from fireblocks.models.bps_fee import BpsFee -from fireblocks.models.business_entity_type_enum import BusinessEntityTypeEnum -from fireblocks.models.business_identification import BusinessIdentification -from fireblocks.models.callback_handler import CallbackHandler -from fireblocks.models.callback_handler_request import CallbackHandlerRequest -from fireblocks.models.cancel_transaction_response import CancelTransactionResponse -from fireblocks.models.capability import Capability -from fireblocks.models.chain_descriptor import ChainDescriptor -from fireblocks.models.chain_info_response import ChainInfoResponse -from fireblocks.models.channel_dvn_config_with_confirmations import ChannelDvnConfigWithConfirmations -from fireblocks.models.channel_dvn_config_with_confirmations_receive_config import ChannelDvnConfigWithConfirmationsReceiveConfig -from fireblocks.models.channel_dvn_config_with_confirmations_send_config import ChannelDvnConfigWithConfirmationsSendConfig -from fireblocks.models.chaps_address import ChapsAddress -from fireblocks.models.chaps_destination import ChapsDestination -from fireblocks.models.chaps_payment_info import ChapsPaymentInfo -from fireblocks.models.claim_rewards_request import ClaimRewardsRequest -from fireblocks.models.collection_burn_request_dto import CollectionBurnRequestDto -from fireblocks.models.collection_burn_response_dto import CollectionBurnResponseDto -from fireblocks.models.collection_deploy_request_dto import CollectionDeployRequestDto -from fireblocks.models.collection_link_dto import CollectionLinkDto -from fireblocks.models.collection_metadata_dto import CollectionMetadataDto -from fireblocks.models.collection_mint_request_dto import CollectionMintRequestDto -from fireblocks.models.collection_mint_response_dto import CollectionMintResponseDto -from fireblocks.models.collection_ownership_response import CollectionOwnershipResponse -from fireblocks.models.collection_token_metadata_attribute_dto import CollectionTokenMetadataAttributeDto -from fireblocks.models.collection_token_metadata_dto import CollectionTokenMetadataDto -from fireblocks.models.collection_type import CollectionType -from fireblocks.models.committed_quote_enum import CommittedQuoteEnum -from fireblocks.models.committed_quote_type import CommittedQuoteType -from fireblocks.models.compliance_result_full_payload import ComplianceResultFullPayload -from fireblocks.models.compliance_result_statuses_enum import ComplianceResultStatusesEnum -from fireblocks.models.compliance_results import ComplianceResults -from fireblocks.models.compliance_screening_result import ComplianceScreeningResult -from fireblocks.models.compliance_screening_result_full_payload import ComplianceScreeningResultFullPayload -from fireblocks.models.config_change_request_status import ConfigChangeRequestStatus -from fireblocks.models.config_conversion_operation_snapshot import ConfigConversionOperationSnapshot -from fireblocks.models.config_disbursement_operation_snapshot import ConfigDisbursementOperationSnapshot -from fireblocks.models.config_operation import ConfigOperation -from fireblocks.models.config_operation_snapshot import ConfigOperationSnapshot -from fireblocks.models.config_operation_status import ConfigOperationStatus -from fireblocks.models.config_transfer_operation_snapshot import ConfigTransferOperationSnapshot -from fireblocks.models.connected_account import ConnectedAccount -from fireblocks.models.connected_account_approval_status import ConnectedAccountApprovalStatus -from fireblocks.models.connected_account_asset_type import ConnectedAccountAssetType -from fireblocks.models.connected_account_balances import ConnectedAccountBalances -from fireblocks.models.connected_account_balances_response import ConnectedAccountBalancesResponse -from fireblocks.models.connected_account_capability import ConnectedAccountCapability -from fireblocks.models.connected_account_error_response import ConnectedAccountErrorResponse -from fireblocks.models.connected_account_manifest import ConnectedAccountManifest -from fireblocks.models.connected_account_rate_response import ConnectedAccountRateResponse -from fireblocks.models.connected_account_total_balance import ConnectedAccountTotalBalance -from fireblocks.models.connected_account_trading_pair import ConnectedAccountTradingPair -from fireblocks.models.connected_account_trading_pair_supported_type import ConnectedAccountTradingPairSupportedType -from fireblocks.models.connected_account_trading_pairs_response import ConnectedAccountTradingPairsResponse -from fireblocks.models.connected_accounts_response import ConnectedAccountsResponse -from fireblocks.models.connected_single_account import ConnectedSingleAccount -from fireblocks.models.connected_single_account_response import ConnectedSingleAccountResponse -from fireblocks.models.console_user import ConsoleUser -from fireblocks.models.contract_abi_response_dto import ContractAbiResponseDto -from fireblocks.models.contract_abi_response_dto_abi_inner import ContractAbiResponseDtoAbiInner -from fireblocks.models.contract_address_response import ContractAddressResponse -from fireblocks.models.contract_attributes import ContractAttributes -from fireblocks.models.contract_data_decode_data_type import ContractDataDecodeDataType -from fireblocks.models.contract_data_decode_error import ContractDataDecodeError -from fireblocks.models.contract_data_decode_request import ContractDataDecodeRequest -from fireblocks.models.contract_data_decode_request_data import ContractDataDecodeRequestData -from fireblocks.models.contract_data_decode_response_params import ContractDataDecodeResponseParams -from fireblocks.models.contract_data_decoded_response import ContractDataDecodedResponse -from fireblocks.models.contract_data_log_data_param import ContractDataLogDataParam -from fireblocks.models.contract_deploy_request import ContractDeployRequest -from fireblocks.models.contract_deploy_response import ContractDeployResponse -from fireblocks.models.contract_doc import ContractDoc -from fireblocks.models.contract_metadata_dto import ContractMetadataDto -from fireblocks.models.contract_method_config import ContractMethodConfig -from fireblocks.models.contract_method_pattern import ContractMethodPattern -from fireblocks.models.contract_template_dto import ContractTemplateDto -from fireblocks.models.contract_upload_request import ContractUploadRequest -from fireblocks.models.contract_with_abi_dto import ContractWithAbiDto -from fireblocks.models.conversion_config_operation import ConversionConfigOperation -from fireblocks.models.conversion_operation_config_params import ConversionOperationConfigParams -from fireblocks.models.conversion_operation_execution import ConversionOperationExecution -from fireblocks.models.conversion_operation_execution_output import ConversionOperationExecutionOutput -from fireblocks.models.conversion_operation_execution_params import ConversionOperationExecutionParams -from fireblocks.models.conversion_operation_execution_params_execution_params import ConversionOperationExecutionParamsExecutionParams -from fireblocks.models.conversion_operation_failure import ConversionOperationFailure -from fireblocks.models.conversion_operation_preview import ConversionOperationPreview -from fireblocks.models.conversion_operation_preview_output import ConversionOperationPreviewOutput -from fireblocks.models.conversion_operation_type import ConversionOperationType -from fireblocks.models.conversion_validation_failure import ConversionValidationFailure -from fireblocks.models.convert_assets_request import ConvertAssetsRequest -from fireblocks.models.convert_assets_response import ConvertAssetsResponse -from fireblocks.models.cosigner import Cosigner -from fireblocks.models.cosigners_paginated_response import CosignersPaginatedResponse -from fireblocks.models.create_api_user import CreateAPIUser -from fireblocks.models.create_address_request import CreateAddressRequest -from fireblocks.models.create_address_response import CreateAddressResponse -from fireblocks.models.create_assets_request import CreateAssetsRequest -from fireblocks.models.create_config_operation_request import CreateConfigOperationRequest -from fireblocks.models.create_connection_request import CreateConnectionRequest -from fireblocks.models.create_connection_response import CreateConnectionResponse -from fireblocks.models.create_console_user import CreateConsoleUser -from fireblocks.models.create_contract_request import CreateContractRequest -from fireblocks.models.create_conversion_config_operation_request import CreateConversionConfigOperationRequest -from fireblocks.models.create_disbursement_config_operation_request import CreateDisbursementConfigOperationRequest -from fireblocks.models.create_internal_transfer_request import CreateInternalTransferRequest -from fireblocks.models.create_internal_wallet_asset_request import CreateInternalWalletAssetRequest -from fireblocks.models.create_multichain_token_request import CreateMultichainTokenRequest -from fireblocks.models.create_multichain_token_request_create_params import CreateMultichainTokenRequestCreateParams -from fireblocks.models.create_multiple_accounts_request import CreateMultipleAccountsRequest -from fireblocks.models.create_multiple_deposit_addresses_job_status import CreateMultipleDepositAddressesJobStatus -from fireblocks.models.create_multiple_deposit_addresses_request import CreateMultipleDepositAddressesRequest -from fireblocks.models.create_multiple_vault_accounts_job_status import CreateMultipleVaultAccountsJobStatus -from fireblocks.models.create_ncw_connection_request import CreateNcwConnectionRequest -from fireblocks.models.create_network_id_request import CreateNetworkIdRequest -from fireblocks.models.create_order_request import CreateOrderRequest -from fireblocks.models.create_payout_request import CreatePayoutRequest -from fireblocks.models.create_quote import CreateQuote -from fireblocks.models.create_quote_scope_inner import CreateQuoteScopeInner -from fireblocks.models.create_signing_key_dto import CreateSigningKeyDto -from fireblocks.models.create_signing_key_dto_proof_of_ownership import CreateSigningKeyDtoProofOfOwnership -from fireblocks.models.create_tag_request import CreateTagRequest -from fireblocks.models.create_token_request_dto import CreateTokenRequestDto -from fireblocks.models.create_token_request_dto_create_params import CreateTokenRequestDtoCreateParams -from fireblocks.models.create_transaction_response import CreateTransactionResponse -from fireblocks.models.create_transfer_config_operation_request import CreateTransferConfigOperationRequest -from fireblocks.models.create_user_group_response import CreateUserGroupResponse -from fireblocks.models.create_validation_key_dto import CreateValidationKeyDto -from fireblocks.models.create_validation_key_response_dto import CreateValidationKeyResponseDto -from fireblocks.models.create_vault_account_connection_request import CreateVaultAccountConnectionRequest -from fireblocks.models.create_vault_account_request import CreateVaultAccountRequest -from fireblocks.models.create_vault_asset_response import CreateVaultAssetResponse -from fireblocks.models.create_wallet_request import CreateWalletRequest -from fireblocks.models.create_webhook_request import CreateWebhookRequest -from fireblocks.models.create_workflow_execution_request_params_inner import CreateWorkflowExecutionRequestParamsInner -from fireblocks.models.custom_routing_dest import CustomRoutingDest -from fireblocks.models.d_app_address_config import DAppAddressConfig -from fireblocks.models.dvp_settlement import DVPSettlement -from fireblocks.models.dvp_settlement_type import DVPSettlementType -from fireblocks.models.decoded_log import DecodedLog -from fireblocks.models.default_network_routing_dest import DefaultNetworkRoutingDest -from fireblocks.models.delegation import Delegation -from fireblocks.models.delegation_blockchain_position_info import DelegationBlockchainPositionInfo -from fireblocks.models.delegation_summary import DelegationSummary -from fireblocks.models.delete_network_connection_response import DeleteNetworkConnectionResponse -from fireblocks.models.delete_network_id_response import DeleteNetworkIdResponse -from fireblocks.models.deploy_layer_zero_adapters_request import DeployLayerZeroAdaptersRequest -from fireblocks.models.deployable_address_response import DeployableAddressResponse -from fireblocks.models.deployed_contract_not_found_error import DeployedContractNotFoundError -from fireblocks.models.deployed_contract_response_dto import DeployedContractResponseDto -from fireblocks.models.deployed_contracts_paginated_response import DeployedContractsPaginatedResponse -from fireblocks.models.deposit_funds_from_linked_dda_response import DepositFundsFromLinkedDDAResponse -from fireblocks.models.derivation_path_config import DerivationPathConfig -from fireblocks.models.designated_signers_config import DesignatedSignersConfig -from fireblocks.models.destination import Destination -from fireblocks.models.destination_config import DestinationConfig -from fireblocks.models.destination_transfer_peer_path import DestinationTransferPeerPath -from fireblocks.models.destination_transfer_peer_path_response import DestinationTransferPeerPathResponse -from fireblocks.models.direct_access import DirectAccess -from fireblocks.models.direct_access_provider import DirectAccessProvider -from fireblocks.models.direct_access_provider_details import DirectAccessProviderDetails -from fireblocks.models.disbursement_amount_instruction import DisbursementAmountInstruction -from fireblocks.models.disbursement_config_operation import DisbursementConfigOperation -from fireblocks.models.disbursement_instruction import DisbursementInstruction -from fireblocks.models.disbursement_instruction_output import DisbursementInstructionOutput -from fireblocks.models.disbursement_operation_config_params import DisbursementOperationConfigParams -from fireblocks.models.disbursement_operation_execution import DisbursementOperationExecution -from fireblocks.models.disbursement_operation_execution_output import DisbursementOperationExecutionOutput -from fireblocks.models.disbursement_operation_execution_params import DisbursementOperationExecutionParams -from fireblocks.models.disbursement_operation_execution_params_execution_params import DisbursementOperationExecutionParamsExecutionParams -from fireblocks.models.disbursement_operation_input import DisbursementOperationInput -from fireblocks.models.disbursement_operation_preview import DisbursementOperationPreview -from fireblocks.models.disbursement_operation_preview_output import DisbursementOperationPreviewOutput -from fireblocks.models.disbursement_operation_preview_output_instruction_set_inner import DisbursementOperationPreviewOutputInstructionSetInner -from fireblocks.models.disbursement_operation_type import DisbursementOperationType -from fireblocks.models.disbursement_percentage_instruction import DisbursementPercentageInstruction -from fireblocks.models.disbursement_validation_failure import DisbursementValidationFailure -from fireblocks.models.dispatch_payout_response import DispatchPayoutResponse -from fireblocks.models.draft_response import DraftResponse -from fireblocks.models.draft_review_and_validation_response import DraftReviewAndValidationResponse -from fireblocks.models.drop_transaction_request import DropTransactionRequest -from fireblocks.models.drop_transaction_response import DropTransactionResponse -from fireblocks.models.dvn_config import DvnConfig -from fireblocks.models.dvn_config_with_confirmations import DvnConfigWithConfirmations -from fireblocks.models.evm_token_create_params_dto import EVMTokenCreateParamsDto -from fireblocks.models.edit_gas_station_configuration_response import EditGasStationConfigurationResponse -from fireblocks.models.embedded_wallet import EmbeddedWallet -from fireblocks.models.embedded_wallet_account import EmbeddedWalletAccount -from fireblocks.models.embedded_wallet_address_details import EmbeddedWalletAddressDetails -from fireblocks.models.embedded_wallet_algoritm import EmbeddedWalletAlgoritm -from fireblocks.models.embedded_wallet_asset_balance import EmbeddedWalletAssetBalance -from fireblocks.models.embedded_wallet_asset_response import EmbeddedWalletAssetResponse -from fireblocks.models.embedded_wallet_asset_reward_info import EmbeddedWalletAssetRewardInfo -from fireblocks.models.embedded_wallet_device import EmbeddedWalletDevice -from fireblocks.models.embedded_wallet_device_key_setup_response import EmbeddedWalletDeviceKeySetupResponse -from fireblocks.models.embedded_wallet_device_key_setup_response_setup_status_inner import EmbeddedWalletDeviceKeySetupResponseSetupStatusInner -from fireblocks.models.embedded_wallet_latest_backup_key import EmbeddedWalletLatestBackupKey -from fireblocks.models.embedded_wallet_latest_backup_response import EmbeddedWalletLatestBackupResponse -from fireblocks.models.embedded_wallet_paginated_addresses_response import EmbeddedWalletPaginatedAddressesResponse -from fireblocks.models.embedded_wallet_paginated_assets_response import EmbeddedWalletPaginatedAssetsResponse -from fireblocks.models.embedded_wallet_paginated_devices_response import EmbeddedWalletPaginatedDevicesResponse -from fireblocks.models.embedded_wallet_paginated_wallets_response import EmbeddedWalletPaginatedWalletsResponse -from fireblocks.models.embedded_wallet_required_algorithms import EmbeddedWalletRequiredAlgorithms -from fireblocks.models.embedded_wallet_set_up_status import EmbeddedWalletSetUpStatus -from fireblocks.models.embedded_wallet_setup_status_response import EmbeddedWalletSetupStatusResponse -from fireblocks.models.enable_device import EnableDevice -from fireblocks.models.enable_wallet import EnableWallet -from fireblocks.models.error_response import ErrorResponse -from fireblocks.models.error_response_error import ErrorResponseError -from fireblocks.models.error_schema import ErrorSchema -from fireblocks.models.estimated_fee_details import EstimatedFeeDetails -from fireblocks.models.estimated_network_fee_response import EstimatedNetworkFeeResponse -from fireblocks.models.estimated_transaction_fee_response import EstimatedTransactionFeeResponse -from fireblocks.models.ethereum_blockchain_data import EthereumBlockchainData -from fireblocks.models.european_sepa_address import EuropeanSEPAAddress -from fireblocks.models.european_sepa_destination import EuropeanSEPADestination -from fireblocks.models.exchange_account import ExchangeAccount -from fireblocks.models.exchange_asset import ExchangeAsset -from fireblocks.models.exchange_settlement_transactions_response import ExchangeSettlementTransactionsResponse -from fireblocks.models.exchange_trading_account import ExchangeTradingAccount -from fireblocks.models.exchange_type import ExchangeType -from fireblocks.models.execution_conversion_operation import ExecutionConversionOperation -from fireblocks.models.execution_disbursement_operation import ExecutionDisbursementOperation -from fireblocks.models.execution_operation_status import ExecutionOperationStatus -from fireblocks.models.execution_request_base_details import ExecutionRequestBaseDetails -from fireblocks.models.execution_request_details import ExecutionRequestDetails -from fireblocks.models.execution_response_base_details import ExecutionResponseBaseDetails -from fireblocks.models.execution_response_details import ExecutionResponseDetails -from fireblocks.models.execution_screening_operation import ExecutionScreeningOperation -from fireblocks.models.execution_step_error import ExecutionStepError -from fireblocks.models.execution_step_status_enum import ExecutionStepStatusEnum -from fireblocks.models.execution_step_type import ExecutionStepType -from fireblocks.models.execution_transfer_operation import ExecutionTransferOperation -from fireblocks.models.external_account import ExternalAccount -from fireblocks.models.external_account_local_bank_africa import ExternalAccountLocalBankAfrica -from fireblocks.models.external_account_mobile_money import ExternalAccountMobileMoney -from fireblocks.models.external_account_mobile_money_provider import ExternalAccountMobileMoneyProvider -from fireblocks.models.external_account_mobile_money_type import ExternalAccountMobileMoneyType -from fireblocks.models.external_account_sender_information import ExternalAccountSenderInformation -from fireblocks.models.external_account_type import ExternalAccountType -from fireblocks.models.external_wallet_asset import ExternalWalletAsset -from fireblocks.models.extra_parameters import ExtraParameters -from fireblocks.models.failure import Failure -from fireblocks.models.failure_reason import FailureReason -from fireblocks.models.fee import Fee -from fireblocks.models.fee_breakdown import FeeBreakdown -from fireblocks.models.fee_info import FeeInfo -from fireblocks.models.fee_level import FeeLevel -from fireblocks.models.fee_payer_info import FeePayerInfo -from fireblocks.models.fee_properties_details import FeePropertiesDetails -from fireblocks.models.fee_type_enum import FeeTypeEnum -from fireblocks.models.fetch_abi_request_dto import FetchAbiRequestDto -from fireblocks.models.fiat_account import FiatAccount -from fireblocks.models.fiat_account_type import FiatAccountType -from fireblocks.models.fiat_asset import FiatAsset -from fireblocks.models.fiat_destination import FiatDestination -from fireblocks.models.fiat_payment_metadata import FiatPaymentMetadata -from fireblocks.models.fiat_transfer import FiatTransfer -from fireblocks.models.fixed_amount_type_enum import FixedAmountTypeEnum -from fireblocks.models.fixed_fee import FixedFee -from fireblocks.models.freeze_transaction_response import FreezeTransactionResponse -from fireblocks.models.function_doc import FunctionDoc -from fireblocks.models.funds import Funds -from fireblocks.models.gas_station_configuration import GasStationConfiguration -from fireblocks.models.gas_station_configuration_response import GasStationConfigurationResponse -from fireblocks.models.gas_station_properties_response import GasStationPropertiesResponse -from fireblocks.models.gassless_standard_configurations import GasslessStandardConfigurations -from fireblocks.models.gassless_standard_configurations_gasless_standard_configurations_value import GasslessStandardConfigurationsGaslessStandardConfigurationsValue -from fireblocks.models.get_api_users_response import GetAPIUsersResponse -from fireblocks.models.get_audit_logs_response import GetAuditLogsResponse -from fireblocks.models.get_connections_response import GetConnectionsResponse -from fireblocks.models.get_console_users_response import GetConsoleUsersResponse -from fireblocks.models.get_deployable_address_request import GetDeployableAddressRequest -from fireblocks.models.get_exchange_accounts_credentials_public_key_response import GetExchangeAccountsCredentialsPublicKeyResponse -from fireblocks.models.get_filter_parameter import GetFilterParameter -from fireblocks.models.get_layer_zero_dvn_config_response import GetLayerZeroDvnConfigResponse -from fireblocks.models.get_layer_zero_peers_response import GetLayerZeroPeersResponse -from fireblocks.models.get_linked_collections_paginated_response import GetLinkedCollectionsPaginatedResponse -from fireblocks.models.get_max_bip_index_used_response import GetMaxBipIndexUsedResponse -from fireblocks.models.get_max_spendable_amount_response import GetMaxSpendableAmountResponse -from fireblocks.models.get_mpc_keys_response import GetMpcKeysResponse -from fireblocks.models.get_nfts_response import GetNFTsResponse -from fireblocks.models.get_orders_response import GetOrdersResponse -from fireblocks.models.get_ota_status_response import GetOtaStatusResponse -from fireblocks.models.get_ownership_tokens_response import GetOwnershipTokensResponse -from fireblocks.models.get_paged_exchange_accounts_response import GetPagedExchangeAccountsResponse -from fireblocks.models.get_paged_exchange_accounts_response_paging import GetPagedExchangeAccountsResponsePaging -from fireblocks.models.get_signing_key_response_dto import GetSigningKeyResponseDto -from fireblocks.models.get_transaction_operation import GetTransactionOperation -from fireblocks.models.get_validation_key_response_dto import GetValidationKeyResponseDto -from fireblocks.models.get_whitelist_ip_addresses_response import GetWhitelistIpAddressesResponse -from fireblocks.models.get_workspace_status_response import GetWorkspaceStatusResponse -from fireblocks.models.http_contract_does_not_exist_error import HttpContractDoesNotExistError -from fireblocks.models.iban_address import IbanAddress -from fireblocks.models.iban_destination import IbanDestination -from fireblocks.models.iban_payment_info import IbanPaymentInfo -from fireblocks.models.identification import Identification -from fireblocks.models.idl_type import IdlType -from fireblocks.models.indicative_quote_enum import IndicativeQuoteEnum -from fireblocks.models.indicative_quote_type import IndicativeQuoteType -from fireblocks.models.initiator_config import InitiatorConfig -from fireblocks.models.initiator_config_pattern import InitiatorConfigPattern -from fireblocks.models.instruction_amount import InstructionAmount -from fireblocks.models.interac_address import InteracAddress -from fireblocks.models.interac_destination import InteracDestination -from fireblocks.models.interac_payment_info import InteracPaymentInfo -from fireblocks.models.internal_reference import InternalReference -from fireblocks.models.internal_transfer_address import InternalTransferAddress -from fireblocks.models.internal_transfer_destination import InternalTransferDestination -from fireblocks.models.internal_transfer_response import InternalTransferResponse -from fireblocks.models.invalid_paramater_value_error import InvalidParamaterValueError -from fireblocks.models.job_created import JobCreated -from fireblocks.models.layer_zero_adapter_create_params import LayerZeroAdapterCreateParams -from fireblocks.models.lbt_payment_info import LbtPaymentInfo -from fireblocks.models.lean_abi_function import LeanAbiFunction -from fireblocks.models.lean_contract_dto import LeanContractDto -from fireblocks.models.lean_deployed_contract_response_dto import LeanDeployedContractResponseDto -from fireblocks.models.legacy_amount_aggregation_time_period_method import LegacyAmountAggregationTimePeriodMethod -from fireblocks.models.legacy_draft_response import LegacyDraftResponse -from fireblocks.models.legacy_draft_review_and_validation_response import LegacyDraftReviewAndValidationResponse -from fireblocks.models.legacy_policy_and_validation_response import LegacyPolicyAndValidationResponse -from fireblocks.models.legacy_policy_check_result import LegacyPolicyCheckResult -from fireblocks.models.legacy_policy_metadata import LegacyPolicyMetadata -from fireblocks.models.legacy_policy_response import LegacyPolicyResponse -from fireblocks.models.legacy_policy_rule import LegacyPolicyRule -from fireblocks.models.legacy_policy_rule_amount import LegacyPolicyRuleAmount -from fireblocks.models.legacy_policy_rule_amount_aggregation import LegacyPolicyRuleAmountAggregation -from fireblocks.models.legacy_policy_rule_authorization_groups import LegacyPolicyRuleAuthorizationGroups -from fireblocks.models.legacy_policy_rule_authorization_groups_groups_inner import LegacyPolicyRuleAuthorizationGroupsGroupsInner -from fireblocks.models.legacy_policy_rule_check_result import LegacyPolicyRuleCheckResult -from fireblocks.models.legacy_policy_rule_designated_signers import LegacyPolicyRuleDesignatedSigners -from fireblocks.models.legacy_policy_rule_dst import LegacyPolicyRuleDst -from fireblocks.models.legacy_policy_rule_error import LegacyPolicyRuleError -from fireblocks.models.legacy_policy_rule_operators import LegacyPolicyRuleOperators -from fireblocks.models.legacy_policy_rule_raw_message_signing import LegacyPolicyRuleRawMessageSigning -from fireblocks.models.legacy_policy_rule_raw_message_signing_derivation_path import LegacyPolicyRuleRawMessageSigningDerivationPath -from fireblocks.models.legacy_policy_rule_src import LegacyPolicyRuleSrc -from fireblocks.models.legacy_policy_rules import LegacyPolicyRules -from fireblocks.models.legacy_policy_src_or_dest_sub_type import LegacyPolicySrcOrDestSubType -from fireblocks.models.legacy_policy_src_or_dest_type import LegacyPolicySrcOrDestType -from fireblocks.models.legacy_policy_status import LegacyPolicyStatus -from fireblocks.models.legacy_policy_validation import LegacyPolicyValidation -from fireblocks.models.legacy_publish_draft_request import LegacyPublishDraftRequest -from fireblocks.models.legacy_publish_result import LegacyPublishResult -from fireblocks.models.legacy_src_or_dest_attributes_inner import LegacySrcOrDestAttributesInner -from fireblocks.models.linked_tokens_count import LinkedTokensCount -from fireblocks.models.list_assets_response import ListAssetsResponse -from fireblocks.models.list_blockchains_response import ListBlockchainsResponse -from fireblocks.models.list_owned_collections_response import ListOwnedCollectionsResponse -from fireblocks.models.list_owned_tokens_response import ListOwnedTokensResponse -from fireblocks.models.local_bank_transfer_africa_address import LocalBankTransferAfricaAddress -from fireblocks.models.local_bank_transfer_africa_destination import LocalBankTransferAfricaDestination -from fireblocks.models.manifest import Manifest -from fireblocks.models.market_execution_request_details import MarketExecutionRequestDetails -from fireblocks.models.market_execution_response_details import MarketExecutionResponseDetails -from fireblocks.models.market_requote_request_details import MarketRequoteRequestDetails -from fireblocks.models.market_requote_type_enum import MarketRequoteTypeEnum -from fireblocks.models.market_type_details import MarketTypeDetails -from fireblocks.models.market_type_enum import MarketTypeEnum -from fireblocks.models.media_entity_response import MediaEntityResponse -from fireblocks.models.merge_stake_accounts_request import MergeStakeAccountsRequest -from fireblocks.models.merge_stake_accounts_response import MergeStakeAccountsResponse -from fireblocks.models.mobile_money_address import MobileMoneyAddress -from fireblocks.models.mobile_money_destination import MobileMoneyDestination -from fireblocks.models.modify_signing_key_agent_id_dto import ModifySigningKeyAgentIdDto -from fireblocks.models.modify_signing_key_dto import ModifySigningKeyDto -from fireblocks.models.modify_validation_key_dto import ModifyValidationKeyDto -from fireblocks.models.momo_payment_info import MomoPaymentInfo -from fireblocks.models.mpc_key import MpcKey -from fireblocks.models.multichain_deployment_metadata import MultichainDeploymentMetadata -from fireblocks.models.network_channel import NetworkChannel -from fireblocks.models.network_connection import NetworkConnection -from fireblocks.models.network_connection_response import NetworkConnectionResponse -from fireblocks.models.network_connection_routing_policy_value import NetworkConnectionRoutingPolicyValue -from fireblocks.models.network_connection_status import NetworkConnectionStatus -from fireblocks.models.network_fee import NetworkFee -from fireblocks.models.network_id import NetworkId -from fireblocks.models.network_id_response import NetworkIdResponse -from fireblocks.models.network_id_routing_policy_value import NetworkIdRoutingPolicyValue -from fireblocks.models.network_record import NetworkRecord -from fireblocks.models.new_address import NewAddress -from fireblocks.models.none_network_routing_dest import NoneNetworkRoutingDest -from fireblocks.models.not_found_exception import NotFoundException -from fireblocks.models.notification import Notification -from fireblocks.models.notification_attempt import NotificationAttempt -from fireblocks.models.notification_attempts_paginated_response import NotificationAttemptsPaginatedResponse -from fireblocks.models.notification_paginated_response import NotificationPaginatedResponse -from fireblocks.models.notification_status import NotificationStatus -from fireblocks.models.notification_with_data import NotificationWithData -from fireblocks.models.onchain_transaction import OnchainTransaction -from fireblocks.models.onchain_transactions_paged_response import OnchainTransactionsPagedResponse -from fireblocks.models.one_time_address import OneTimeAddress -from fireblocks.models.one_time_address_account import OneTimeAddressAccount -from fireblocks.models.one_time_address_peer_type import OneTimeAddressPeerType -from fireblocks.models.one_time_address_reference import OneTimeAddressReference -from fireblocks.models.operation_execution_failure import OperationExecutionFailure -from fireblocks.models.order_details import OrderDetails -from fireblocks.models.order_execution_step import OrderExecutionStep -from fireblocks.models.order_side import OrderSide -from fireblocks.models.order_status import OrderStatus -from fireblocks.models.order_summary import OrderSummary -from fireblocks.models.paginated_address_response import PaginatedAddressResponse -from fireblocks.models.paginated_address_response_paging import PaginatedAddressResponsePaging -from fireblocks.models.paginated_asset_wallet_response import PaginatedAssetWalletResponse -from fireblocks.models.paginated_asset_wallet_response_paging import PaginatedAssetWalletResponsePaging -from fireblocks.models.paginated_assets_response import PaginatedAssetsResponse -from fireblocks.models.paging import Paging -from fireblocks.models.pair_api_key_request import PairApiKeyRequest -from fireblocks.models.pair_api_key_response import PairApiKeyResponse -from fireblocks.models.parameter import Parameter -from fireblocks.models.parameter_with_value import ParameterWithValue -from fireblocks.models.participant_relationship_type import ParticipantRelationshipType -from fireblocks.models.participants_identification import ParticipantsIdentification -from fireblocks.models.payee_account import PayeeAccount -from fireblocks.models.payee_account_response import PayeeAccountResponse -from fireblocks.models.payee_account_type import PayeeAccountType -from fireblocks.models.payid_address import PayidAddress -from fireblocks.models.payid_destination import PayidDestination -from fireblocks.models.payid_payment_info import PayidPaymentInfo -from fireblocks.models.payment_account import PaymentAccount -from fireblocks.models.payment_account_response import PaymentAccountResponse -from fireblocks.models.payment_account_type import PaymentAccountType -from fireblocks.models.payment_instructions import PaymentInstructions -from fireblocks.models.payment_instructions_one_of import PaymentInstructionsOneOf -from fireblocks.models.payment_redirect import PaymentRedirect -from fireblocks.models.payout_init_method import PayoutInitMethod -from fireblocks.models.payout_instruction import PayoutInstruction -from fireblocks.models.payout_instruction_response import PayoutInstructionResponse -from fireblocks.models.payout_instruction_state import PayoutInstructionState -from fireblocks.models.payout_response import PayoutResponse -from fireblocks.models.payout_state import PayoutState -from fireblocks.models.payout_status import PayoutStatus -from fireblocks.models.peer_adapter_info import PeerAdapterInfo -from fireblocks.models.peer_type import PeerType -from fireblocks.models.personal_entity_type_enum import PersonalEntityTypeEnum -from fireblocks.models.personal_identification import PersonalIdentification -from fireblocks.models.personal_identification_full_name import PersonalIdentificationFullName -from fireblocks.models.personal_identification_type import PersonalIdentificationType -from fireblocks.models.pix_address import PixAddress -from fireblocks.models.pix_destination import PixDestination -from fireblocks.models.pix_payment_info import PixPaymentInfo -from fireblocks.models.platform_account import PlatformAccount -from fireblocks.models.platform_peer_type import PlatformPeerType -from fireblocks.models.players import Players -from fireblocks.models.policy_and_validation_response import PolicyAndValidationResponse -from fireblocks.models.policy_check_result import PolicyCheckResult -from fireblocks.models.policy_currency import PolicyCurrency -from fireblocks.models.policy_metadata import PolicyMetadata -from fireblocks.models.policy_operator import PolicyOperator -from fireblocks.models.policy_response import PolicyResponse -from fireblocks.models.policy_rule import PolicyRule -from fireblocks.models.policy_rule_check_result import PolicyRuleCheckResult -from fireblocks.models.policy_rule_error import PolicyRuleError -from fireblocks.models.policy_status import PolicyStatus -from fireblocks.models.policy_tag import PolicyTag -from fireblocks.models.policy_type import PolicyType -from fireblocks.models.policy_validation import PolicyValidation -from fireblocks.models.policy_verdict_action_enum import PolicyVerdictActionEnum -from fireblocks.models.policy_verdict_action_enum2 import PolicyVerdictActionEnum2 -from fireblocks.models.postal_address import PostalAddress -from fireblocks.models.pre_screening import PreScreening -from fireblocks.models.prefunded_settlement import PrefundedSettlement -from fireblocks.models.prefunded_settlement_type import PrefundedSettlementType -from fireblocks.models.program_call_config import ProgramCallConfig -from fireblocks.models.provider import Provider -from fireblocks.models.providers_list_response import ProvidersListResponse -from fireblocks.models.public_key_information import PublicKeyInformation -from fireblocks.models.publish_draft_request import PublishDraftRequest -from fireblocks.models.publish_result import PublishResult -from fireblocks.models.quote import Quote -from fireblocks.models.quote_execution_request_details import QuoteExecutionRequestDetails -from fireblocks.models.quote_execution_step import QuoteExecutionStep -from fireblocks.models.quote_execution_type_details import QuoteExecutionTypeDetails -from fireblocks.models.quote_execution_with_requote_request_details import QuoteExecutionWithRequoteRequestDetails -from fireblocks.models.quote_execution_with_requote_response_details import QuoteExecutionWithRequoteResponseDetails -from fireblocks.models.quote_failure import QuoteFailure -from fireblocks.models.quote_properties_details import QuotePropertiesDetails -from fireblocks.models.quote_type_enum import QuoteTypeEnum -from fireblocks.models.quotes_response import QuotesResponse -from fireblocks.models.re_quote_details import ReQuoteDetails -from fireblocks.models.re_quote_details_re_quote import ReQuoteDetailsReQuote -from fireblocks.models.read_abi_function import ReadAbiFunction -from fireblocks.models.read_call_function_dto import ReadCallFunctionDto -from fireblocks.models.read_call_function_dto_abi_function import ReadCallFunctionDtoAbiFunction -from fireblocks.models.recipient_handle import RecipientHandle -from fireblocks.models.redeem_funds_to_linked_dda_response import RedeemFundsToLinkedDDAResponse -from fireblocks.models.register_new_asset_request import RegisterNewAssetRequest -from fireblocks.models.reissue_multichain_token_request import ReissueMultichainTokenRequest -from fireblocks.models.related_request import RelatedRequest -from fireblocks.models.related_transaction import RelatedTransaction -from fireblocks.models.remove_collateral_request_body import RemoveCollateralRequestBody -from fireblocks.models.remove_layer_zero_adapter_failed_result import RemoveLayerZeroAdapterFailedResult -from fireblocks.models.remove_layer_zero_adapters_request import RemoveLayerZeroAdaptersRequest -from fireblocks.models.remove_layer_zero_adapters_response import RemoveLayerZeroAdaptersResponse -from fireblocks.models.remove_layer_zero_peers_request import RemoveLayerZeroPeersRequest -from fireblocks.models.remove_layer_zero_peers_response import RemoveLayerZeroPeersResponse -from fireblocks.models.rename_connected_account_request import RenameConnectedAccountRequest -from fireblocks.models.rename_connected_account_response import RenameConnectedAccountResponse -from fireblocks.models.rename_cosigner import RenameCosigner -from fireblocks.models.rename_vault_account_response import RenameVaultAccountResponse -from fireblocks.models.resend_failed_notifications_job_status_response import ResendFailedNotificationsJobStatusResponse -from fireblocks.models.resend_failed_notifications_request import ResendFailedNotificationsRequest -from fireblocks.models.resend_failed_notifications_response import ResendFailedNotificationsResponse -from fireblocks.models.resend_notifications_by_resource_id_request import ResendNotificationsByResourceIdRequest -from fireblocks.models.resend_transaction_webhooks_request import ResendTransactionWebhooksRequest -from fireblocks.models.resend_webhooks_by_transaction_id_response import ResendWebhooksByTransactionIdResponse -from fireblocks.models.resend_webhooks_response import ResendWebhooksResponse -from fireblocks.models.respond_to_connection_request import RespondToConnectionRequest -from fireblocks.models.retry_requote_request_details import RetryRequoteRequestDetails -from fireblocks.models.retry_requote_type_enum import RetryRequoteTypeEnum -from fireblocks.models.reward_info import RewardInfo -from fireblocks.models.rewards_info import RewardsInfo -from fireblocks.models.role_details import RoleDetails -from fireblocks.models.role_grantee import RoleGrantee -from fireblocks.models.sepa_address import SEPAAddress -from fireblocks.models.sepa_destination import SEPADestination -from fireblocks.models.sol_account import SOLAccount -from fireblocks.models.sol_account_with_value import SOLAccountWithValue -from fireblocks.models.scope_item import ScopeItem -from fireblocks.models.screening_alert_exposure_type_enum import ScreeningAlertExposureTypeEnum -from fireblocks.models.screening_aml_alert import ScreeningAmlAlert -from fireblocks.models.screening_aml_matched_rule import ScreeningAmlMatchedRule -from fireblocks.models.screening_aml_result import ScreeningAmlResult -from fireblocks.models.screening_configurations_request import ScreeningConfigurationsRequest -from fireblocks.models.screening_metadata_config import ScreeningMetadataConfig -from fireblocks.models.screening_operation_execution import ScreeningOperationExecution -from fireblocks.models.screening_operation_execution_output import ScreeningOperationExecutionOutput -from fireblocks.models.screening_operation_failure import ScreeningOperationFailure -from fireblocks.models.screening_operation_type import ScreeningOperationType -from fireblocks.models.screening_policy_response import ScreeningPolicyResponse -from fireblocks.models.screening_provider_rules_configuration_response import ScreeningProviderRulesConfigurationResponse -from fireblocks.models.screening_risk_level_enum import ScreeningRiskLevelEnum -from fireblocks.models.screening_tr_link_amount import ScreeningTRLinkAmount -from fireblocks.models.screening_tr_link_missing_trm_decision import ScreeningTRLinkMissingTrmDecision -from fireblocks.models.screening_tr_link_missing_trm_rule import ScreeningTRLinkMissingTrmRule -from fireblocks.models.screening_tr_link_post_screening_rule import ScreeningTRLinkPostScreeningRule -from fireblocks.models.screening_tr_link_prescreening_rule import ScreeningTRLinkPrescreeningRule -from fireblocks.models.screening_tr_link_rule_base import ScreeningTRLinkRuleBase -from fireblocks.models.screening_travel_rule_matched_rule import ScreeningTravelRuleMatchedRule -from fireblocks.models.screening_travel_rule_prescreening_rule import ScreeningTravelRulePrescreeningRule -from fireblocks.models.screening_travel_rule_result import ScreeningTravelRuleResult -from fireblocks.models.screening_update_configurations import ScreeningUpdateConfigurations -from fireblocks.models.screening_validation_failure import ScreeningValidationFailure -from fireblocks.models.screening_verdict import ScreeningVerdict -from fireblocks.models.screening_verdict_enum import ScreeningVerdictEnum -from fireblocks.models.screening_verdict_matched_rule import ScreeningVerdictMatchedRule -from fireblocks.models.search_network_ids_response import SearchNetworkIdsResponse -from fireblocks.models.sepa_payment_info import SepaPaymentInfo -from fireblocks.models.session_dto import SessionDTO -from fireblocks.models.session_metadata import SessionMetadata -from fireblocks.models.set_admin_quorum_threshold_request import SetAdminQuorumThresholdRequest -from fireblocks.models.set_admin_quorum_threshold_response import SetAdminQuorumThresholdResponse -from fireblocks.models.set_asset_price_request import SetAssetPriceRequest -from fireblocks.models.set_auto_fuel_request import SetAutoFuelRequest -from fireblocks.models.set_confirmations_threshold_request import SetConfirmationsThresholdRequest -from fireblocks.models.set_confirmations_threshold_response import SetConfirmationsThresholdResponse -from fireblocks.models.set_customer_ref_id_for_address_request import SetCustomerRefIdForAddressRequest -from fireblocks.models.set_customer_ref_id_request import SetCustomerRefIdRequest -from fireblocks.models.set_layer_zero_dvn_config_request import SetLayerZeroDvnConfigRequest -from fireblocks.models.set_layer_zero_dvn_config_response import SetLayerZeroDvnConfigResponse -from fireblocks.models.set_layer_zero_peers_request import SetLayerZeroPeersRequest -from fireblocks.models.set_layer_zero_peers_response import SetLayerZeroPeersResponse -from fireblocks.models.set_network_id_discoverability_request import SetNetworkIdDiscoverabilityRequest -from fireblocks.models.set_network_id_name_request import SetNetworkIdNameRequest -from fireblocks.models.set_network_id_response import SetNetworkIdResponse -from fireblocks.models.set_network_id_routing_policy_request import SetNetworkIdRoutingPolicyRequest -from fireblocks.models.set_ota_status_request import SetOtaStatusRequest -from fireblocks.models.set_ota_status_response import SetOtaStatusResponse -from fireblocks.models.set_ota_status_response_one_of import SetOtaStatusResponseOneOf -from fireblocks.models.set_routing_policy_request import SetRoutingPolicyRequest -from fireblocks.models.set_routing_policy_response import SetRoutingPolicyResponse -from fireblocks.models.settlement import Settlement -from fireblocks.models.settlement_request_body import SettlementRequestBody -from fireblocks.models.settlement_response import SettlementResponse -from fireblocks.models.settlement_source_account import SettlementSourceAccount -from fireblocks.models.side import Side -from fireblocks.models.signed_message import SignedMessage -from fireblocks.models.signed_message_signature import SignedMessageSignature -from fireblocks.models.signing_key_dto import SigningKeyDto -from fireblocks.models.smart_transfer_approve_term import SmartTransferApproveTerm -from fireblocks.models.smart_transfer_bad_request_response import SmartTransferBadRequestResponse -from fireblocks.models.smart_transfer_coin_statistic import SmartTransferCoinStatistic -from fireblocks.models.smart_transfer_create_ticket import SmartTransferCreateTicket -from fireblocks.models.smart_transfer_create_ticket_term import SmartTransferCreateTicketTerm -from fireblocks.models.smart_transfer_forbidden_response import SmartTransferForbiddenResponse -from fireblocks.models.smart_transfer_fund_dvp_ticket import SmartTransferFundDvpTicket -from fireblocks.models.smart_transfer_fund_term import SmartTransferFundTerm -from fireblocks.models.smart_transfer_manually_fund_term import SmartTransferManuallyFundTerm -from fireblocks.models.smart_transfer_not_found_response import SmartTransferNotFoundResponse -from fireblocks.models.smart_transfer_set_ticket_expiration import SmartTransferSetTicketExpiration -from fireblocks.models.smart_transfer_set_ticket_external_id import SmartTransferSetTicketExternalId -from fireblocks.models.smart_transfer_set_user_groups import SmartTransferSetUserGroups -from fireblocks.models.smart_transfer_statistic import SmartTransferStatistic -from fireblocks.models.smart_transfer_statistic_inflow import SmartTransferStatisticInflow -from fireblocks.models.smart_transfer_statistic_outflow import SmartTransferStatisticOutflow -from fireblocks.models.smart_transfer_submit_ticket import SmartTransferSubmitTicket -from fireblocks.models.smart_transfer_ticket import SmartTransferTicket -from fireblocks.models.smart_transfer_ticket_filtered_response import SmartTransferTicketFilteredResponse -from fireblocks.models.smart_transfer_ticket_response import SmartTransferTicketResponse -from fireblocks.models.smart_transfer_ticket_term import SmartTransferTicketTerm -from fireblocks.models.smart_transfer_ticket_term_response import SmartTransferTicketTermResponse -from fireblocks.models.smart_transfer_update_ticket_term import SmartTransferUpdateTicketTerm -from fireblocks.models.smart_transfer_user_groups import SmartTransferUserGroups -from fireblocks.models.smart_transfer_user_groups_response import SmartTransferUserGroupsResponse -from fireblocks.models.sol_parameter import SolParameter -from fireblocks.models.sol_parameter_with_value import SolParameterWithValue -from fireblocks.models.solana_blockchain_data import SolanaBlockchainData -from fireblocks.models.solana_config import SolanaConfig -from fireblocks.models.solana_instruction import SolanaInstruction -from fireblocks.models.solana_instruction_with_value import SolanaInstructionWithValue -from fireblocks.models.solana_simple_create_params import SolanaSimpleCreateParams -from fireblocks.models.source_config import SourceConfig -from fireblocks.models.source_transfer_peer_path import SourceTransferPeerPath -from fireblocks.models.source_transfer_peer_path_response import SourceTransferPeerPathResponse -from fireblocks.models.spam_ownership_response import SpamOwnershipResponse -from fireblocks.models.spam_token_response import SpamTokenResponse -from fireblocks.models.spei_address import SpeiAddress -from fireblocks.models.spei_advanced_payment_info import SpeiAdvancedPaymentInfo -from fireblocks.models.spei_basic_payment_info import SpeiBasicPaymentInfo -from fireblocks.models.spei_destination import SpeiDestination -from fireblocks.models.split_request import SplitRequest -from fireblocks.models.split_response import SplitResponse -from fireblocks.models.st_eth_blockchain_data import StEthBlockchainData -from fireblocks.models.stake_request import StakeRequest -from fireblocks.models.stake_response import StakeResponse -from fireblocks.models.staking_provider import StakingProvider -from fireblocks.models.status import Status -from fireblocks.models.stellar_ripple_create_params_dto import StellarRippleCreateParamsDto -from fireblocks.models.supported_block_chains_response import SupportedBlockChainsResponse -from fireblocks.models.supported_blockchain import SupportedBlockchain -from fireblocks.models.swift_address import SwiftAddress -from fireblocks.models.swift_destination import SwiftDestination -from fireblocks.models.system_message_info import SystemMessageInfo -from fireblocks.models.tr_link_api_paged_response import TRLinkAPIPagedResponse -from fireblocks.models.tr_link_amount import TRLinkAmount -from fireblocks.models.tr_link_amount2 import TRLinkAmount2 -from fireblocks.models.tr_link_amount_range import TRLinkAmountRange -from fireblocks.models.tr_link_assess_travel_rule_request import TRLinkAssessTravelRuleRequest -from fireblocks.models.tr_link_assess_travel_rule_response import TRLinkAssessTravelRuleResponse -from fireblocks.models.tr_link_assessment_decision import TRLinkAssessmentDecision -from fireblocks.models.tr_link_asset import TRLinkAsset -from fireblocks.models.tr_link_asset_data import TRLinkAssetData -from fireblocks.models.tr_link_asset_format import TRLinkAssetFormat -from fireblocks.models.tr_link_assets_list_paged_response import TRLinkAssetsListPagedResponse -from fireblocks.models.tr_link_cancel_trm_request import TRLinkCancelTrmRequest -from fireblocks.models.tr_link_connect_integration_request import TRLinkConnectIntegrationRequest -from fireblocks.models.tr_link_create_customer_request import TRLinkCreateCustomerRequest -from fireblocks.models.tr_link_create_integration_request import TRLinkCreateIntegrationRequest -from fireblocks.models.tr_link_create_trm_request import TRLinkCreateTrmRequest -from fireblocks.models.tr_link_currency import TRLinkCurrency -from fireblocks.models.tr_link_customer_integration_response import TRLinkCustomerIntegrationResponse -from fireblocks.models.tr_link_customer_response import TRLinkCustomerResponse -from fireblocks.models.tr_link_destination_transfer_peer_path import TRLinkDestinationTransferPeerPath -from fireblocks.models.tr_link_discoverable_status import TRLinkDiscoverableStatus -from fireblocks.models.tr_link_fiat_value import TRLinkFiatValue -from fireblocks.models.tr_link_geographic_address_request import TRLinkGeographicAddressRequest -from fireblocks.models.tr_link_get_supported_asset_response import TRLinkGetSupportedAssetResponse -from fireblocks.models.tr_link_ivms import TRLinkIvms -from fireblocks.models.tr_link_ivms_response import TRLinkIvmsResponse -from fireblocks.models.tr_link_jwk_public_key import TRLinkJwkPublicKey -from fireblocks.models.tr_link_missing_trm_action import TRLinkMissingTrmAction -from fireblocks.models.tr_link_missing_trm_action2 import TRLinkMissingTrmAction2 -from fireblocks.models.tr_link_missing_trm_action_enum import TRLinkMissingTrmActionEnum -from fireblocks.models.tr_link_missing_trm_decision import TRLinkMissingTrmDecision -from fireblocks.models.tr_link_missing_trm_rule import TRLinkMissingTrmRule -from fireblocks.models.tr_link_missing_trm_rule2 import TRLinkMissingTrmRule2 -from fireblocks.models.tr_link_one_time_address import TRLinkOneTimeAddress -from fireblocks.models.tr_link_paging import TRLinkPaging -from fireblocks.models.tr_link_partner_response import TRLinkPartnerResponse -from fireblocks.models.tr_link_policy_response import TRLinkPolicyResponse -from fireblocks.models.tr_link_post_screening_action import TRLinkPostScreeningAction -from fireblocks.models.tr_link_post_screening_rule import TRLinkPostScreeningRule -from fireblocks.models.tr_link_post_screening_rule2 import TRLinkPostScreeningRule2 -from fireblocks.models.tr_link_pre_screening_action import TRLinkPreScreeningAction -from fireblocks.models.tr_link_pre_screening_action2 import TRLinkPreScreeningAction2 -from fireblocks.models.tr_link_pre_screening_action_enum import TRLinkPreScreeningActionEnum -from fireblocks.models.tr_link_pre_screening_rule import TRLinkPreScreeningRule -from fireblocks.models.tr_link_pre_screening_rule2 import TRLinkPreScreeningRule2 -from fireblocks.models.tr_link_provider_data import TRLinkProviderData -from fireblocks.models.tr_link_provider_result import TRLinkProviderResult -from fireblocks.models.tr_link_provider_result_with_rule import TRLinkProviderResultWithRule -from fireblocks.models.tr_link_provider_result_with_rule2 import TRLinkProviderResultWithRule2 -from fireblocks.models.tr_link_public_asset_info import TRLinkPublicAssetInfo -from fireblocks.models.tr_link_public_key_response import TRLinkPublicKeyResponse -from fireblocks.models.tr_link_redirect_trm_request import TRLinkRedirectTrmRequest -from fireblocks.models.tr_link_registration_result import TRLinkRegistrationResult -from fireblocks.models.tr_link_registration_result_full_payload import TRLinkRegistrationResultFullPayload -from fireblocks.models.tr_link_registration_status import TRLinkRegistrationStatus -from fireblocks.models.tr_link_registration_status_enum import TRLinkRegistrationStatusEnum -from fireblocks.models.tr_link_result import TRLinkResult -from fireblocks.models.tr_link_result_full_payload import TRLinkResultFullPayload -from fireblocks.models.tr_link_rule_base import TRLinkRuleBase -from fireblocks.models.tr_link_set_destination_travel_rule_message_id_request import TRLinkSetDestinationTravelRuleMessageIdRequest -from fireblocks.models.tr_link_set_destination_travel_rule_message_id_response import TRLinkSetDestinationTravelRuleMessageIdResponse -from fireblocks.models.tr_link_set_transaction_travel_rule_message_id_request import TRLinkSetTransactionTravelRuleMessageIdRequest -from fireblocks.models.tr_link_set_transaction_travel_rule_message_id_response import TRLinkSetTransactionTravelRuleMessageIdResponse -from fireblocks.models.tr_link_source_transfer_peer_path import TRLinkSourceTransferPeerPath -from fireblocks.models.tr_link_test_connection_response import TRLinkTestConnectionResponse -from fireblocks.models.tr_link_thresholds import TRLinkThresholds -from fireblocks.models.tr_link_transaction_direction import TRLinkTransactionDirection -from fireblocks.models.tr_link_transfer_peer_path import TRLinkTransferPeerPath -from fireblocks.models.tr_link_trm_direction import TRLinkTrmDirection -from fireblocks.models.tr_link_trm_info_response import TRLinkTrmInfoResponse -from fireblocks.models.tr_link_trm_screening_status import TRLinkTrmScreeningStatus -from fireblocks.models.tr_link_trm_screening_status_enum import TRLinkTrmScreeningStatusEnum -from fireblocks.models.tr_link_trm_status import TRLinkTrmStatus -from fireblocks.models.tr_link_txn_info import TRLinkTxnInfo -from fireblocks.models.tr_link_update_customer_request import TRLinkUpdateCustomerRequest -from fireblocks.models.tr_link_vasp_dto import TRLinkVaspDto -from fireblocks.models.tr_link_vasp_geographic_address import TRLinkVaspGeographicAddress -from fireblocks.models.tr_link_vasp_list_dto import TRLinkVaspListDto -from fireblocks.models.tr_link_vasp_national_identification import TRLinkVaspNationalIdentification -from fireblocks.models.tr_link_verdict import TRLinkVerdict -from fireblocks.models.tr_link_verdict_enum import TRLinkVerdictEnum -from fireblocks.models.tag import Tag -from fireblocks.models.tag_attachment_operation_action import TagAttachmentOperationAction -from fireblocks.models.tags_paged_response import TagsPagedResponse -from fireblocks.models.templates_paginated_response import TemplatesPaginatedResponse -from fireblocks.models.third_party_routing import ThirdPartyRouting -from fireblocks.models.time_period_config import TimePeriodConfig -from fireblocks.models.time_period_match_type import TimePeriodMatchType -from fireblocks.models.to_collateral_transaction import ToCollateralTransaction -from fireblocks.models.to_exchange_transaction import ToExchangeTransaction -from fireblocks.models.token_collection_response import TokenCollectionResponse -from fireblocks.models.token_contract_summary_response import TokenContractSummaryResponse -from fireblocks.models.token_info_not_found_error_response import TokenInfoNotFoundErrorResponse -from fireblocks.models.token_link_dto import TokenLinkDto -from fireblocks.models.token_link_dto_token_metadata import TokenLinkDtoTokenMetadata -from fireblocks.models.token_link_exists_http_error import TokenLinkExistsHttpError -from fireblocks.models.token_link_not_multichain_compatible_http_error import TokenLinkNotMultichainCompatibleHttpError -from fireblocks.models.token_link_request_dto import TokenLinkRequestDto -from fireblocks.models.token_ownership_response import TokenOwnershipResponse -from fireblocks.models.token_ownership_spam_update_payload import TokenOwnershipSpamUpdatePayload -from fireblocks.models.token_ownership_status_update_payload import TokenOwnershipStatusUpdatePayload -from fireblocks.models.token_response import TokenResponse -from fireblocks.models.tokens_paginated_response import TokensPaginatedResponse -from fireblocks.models.total_supply_item_dto import TotalSupplyItemDto -from fireblocks.models.total_supply_paged_response import TotalSupplyPagedResponse -from fireblocks.models.trading_account_type import TradingAccountType -from fireblocks.models.trading_error_schema import TradingErrorSchema -from fireblocks.models.trading_provider import TradingProvider -from fireblocks.models.transaction import Transaction -from fireblocks.models.transaction_direction import TransactionDirection -from fireblocks.models.transaction_fee import TransactionFee -from fireblocks.models.transaction_operation import TransactionOperation -from fireblocks.models.transaction_operation_enum import TransactionOperationEnum -from fireblocks.models.transaction_receipt_response import TransactionReceiptResponse -from fireblocks.models.transaction_request import TransactionRequest -from fireblocks.models.transaction_request_amount import TransactionRequestAmount -from fireblocks.models.transaction_request_destination import TransactionRequestDestination -from fireblocks.models.transaction_request_fee import TransactionRequestFee -from fireblocks.models.transaction_request_gas_limit import TransactionRequestGasLimit -from fireblocks.models.transaction_request_gas_price import TransactionRequestGasPrice -from fireblocks.models.transaction_request_network_fee import TransactionRequestNetworkFee -from fireblocks.models.transaction_request_network_staking import TransactionRequestNetworkStaking -from fireblocks.models.transaction_request_priority_fee import TransactionRequestPriorityFee -from fireblocks.models.transaction_response import TransactionResponse -from fireblocks.models.transaction_response_contract_call_decoded_data import TransactionResponseContractCallDecodedData -from fireblocks.models.transaction_response_destination import TransactionResponseDestination -from fireblocks.models.transfer_config_operation import TransferConfigOperation -from fireblocks.models.transfer_operation_config_params import TransferOperationConfigParams -from fireblocks.models.transfer_operation_execution import TransferOperationExecution -from fireblocks.models.transfer_operation_execution_output import TransferOperationExecutionOutput -from fireblocks.models.transfer_operation_execution_params import TransferOperationExecutionParams -from fireblocks.models.transfer_operation_execution_params_execution_params import TransferOperationExecutionParamsExecutionParams -from fireblocks.models.transfer_operation_failure import TransferOperationFailure -from fireblocks.models.transfer_operation_failure_data import TransferOperationFailureData -from fireblocks.models.transfer_operation_preview import TransferOperationPreview -from fireblocks.models.transfer_operation_preview_output import TransferOperationPreviewOutput -from fireblocks.models.transfer_operation_type import TransferOperationType -from fireblocks.models.transfer_peer_path_sub_type import TransferPeerPathSubType -from fireblocks.models.transfer_peer_path_type import TransferPeerPathType -from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum -from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum -from fireblocks.models.transfer_rail import TransferRail -from fireblocks.models.transfer_receipt import TransferReceipt -from fireblocks.models.transfer_validation_failure import TransferValidationFailure -from fireblocks.models.travel_rule_action_enum import TravelRuleActionEnum -from fireblocks.models.travel_rule_address import TravelRuleAddress -from fireblocks.models.travel_rule_create_transaction_request import TravelRuleCreateTransactionRequest -from fireblocks.models.travel_rule_date_and_place_of_birth import TravelRuleDateAndPlaceOfBirth -from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum -from fireblocks.models.travel_rule_geographic_address import TravelRuleGeographicAddress -from fireblocks.models.travel_rule_get_all_vasps_response import TravelRuleGetAllVASPsResponse -from fireblocks.models.travel_rule_issuer import TravelRuleIssuer -from fireblocks.models.travel_rule_issuers import TravelRuleIssuers -from fireblocks.models.travel_rule_legal_person import TravelRuleLegalPerson -from fireblocks.models.travel_rule_legal_person_name_identifier import TravelRuleLegalPersonNameIdentifier -from fireblocks.models.travel_rule_matched_rule import TravelRuleMatchedRule -from fireblocks.models.travel_rule_national_identification import TravelRuleNationalIdentification -from fireblocks.models.travel_rule_natural_name_identifier import TravelRuleNaturalNameIdentifier -from fireblocks.models.travel_rule_natural_person import TravelRuleNaturalPerson -from fireblocks.models.travel_rule_natural_person_name_identifier import TravelRuleNaturalPersonNameIdentifier -from fireblocks.models.travel_rule_ownership_proof import TravelRuleOwnershipProof -from fireblocks.models.travel_rule_person import TravelRulePerson -from fireblocks.models.travel_rule_pii_ivms import TravelRulePiiIVMS -from fireblocks.models.travel_rule_policy_rule_response import TravelRulePolicyRuleResponse -from fireblocks.models.travel_rule_prescreening_rule import TravelRulePrescreeningRule -from fireblocks.models.travel_rule_result import TravelRuleResult -from fireblocks.models.travel_rule_status_enum import TravelRuleStatusEnum -from fireblocks.models.travel_rule_transaction_blockchain_info import TravelRuleTransactionBlockchainInfo -from fireblocks.models.travel_rule_update_vasp_details import TravelRuleUpdateVASPDetails -from fireblocks.models.travel_rule_vasp import TravelRuleVASP -from fireblocks.models.travel_rule_validate_date_and_place_of_birth import TravelRuleValidateDateAndPlaceOfBirth -from fireblocks.models.travel_rule_validate_full_transaction_request import TravelRuleValidateFullTransactionRequest -from fireblocks.models.travel_rule_validate_geographic_address import TravelRuleValidateGeographicAddress -from fireblocks.models.travel_rule_validate_legal_person import TravelRuleValidateLegalPerson -from fireblocks.models.travel_rule_validate_legal_person_name_identifier import TravelRuleValidateLegalPersonNameIdentifier -from fireblocks.models.travel_rule_validate_national_identification import TravelRuleValidateNationalIdentification -from fireblocks.models.travel_rule_validate_natural_name_identifier import TravelRuleValidateNaturalNameIdentifier -from fireblocks.models.travel_rule_validate_natural_person import TravelRuleValidateNaturalPerson -from fireblocks.models.travel_rule_validate_natural_person_name_identifier import TravelRuleValidateNaturalPersonNameIdentifier -from fireblocks.models.travel_rule_validate_person import TravelRuleValidatePerson -from fireblocks.models.travel_rule_validate_pii_ivms import TravelRuleValidatePiiIVMS -from fireblocks.models.travel_rule_validate_transaction_request import TravelRuleValidateTransactionRequest -from fireblocks.models.travel_rule_validate_transaction_response import TravelRuleValidateTransactionResponse -from fireblocks.models.travel_rule_vasp_for_vault import TravelRuleVaspForVault -from fireblocks.models.travel_rule_verdict_enum import TravelRuleVerdictEnum -from fireblocks.models.trust_proof_of_address_create_response import TrustProofOfAddressCreateResponse -from fireblocks.models.trust_proof_of_address_request import TrustProofOfAddressRequest -from fireblocks.models.trust_proof_of_address_response import TrustProofOfAddressResponse -from fireblocks.models.tx_log import TxLog -from fireblocks.models.typed_message_transaction_status_enum import TypedMessageTransactionStatusEnum -from fireblocks.models.us_wire_address import USWireAddress -from fireblocks.models.us_wire_destination import USWireDestination -from fireblocks.models.unfreeze_transaction_response import UnfreezeTransactionResponse -from fireblocks.models.unmanaged_wallet import UnmanagedWallet -from fireblocks.models.unspent_input import UnspentInput -from fireblocks.models.unspent_inputs_response import UnspentInputsResponse -from fireblocks.models.unstake_request import UnstakeRequest -from fireblocks.models.update_asset_user_metadata_request import UpdateAssetUserMetadataRequest -from fireblocks.models.update_callback_handler_request import UpdateCallbackHandlerRequest -from fireblocks.models.update_callback_handler_response import UpdateCallbackHandlerResponse -from fireblocks.models.update_draft_request import UpdateDraftRequest -from fireblocks.models.update_tag_request import UpdateTagRequest -from fireblocks.models.update_token_ownership_status_dto import UpdateTokenOwnershipStatusDto -from fireblocks.models.update_vault_account_asset_address_request import UpdateVaultAccountAssetAddressRequest -from fireblocks.models.update_vault_account_request import UpdateVaultAccountRequest -from fireblocks.models.update_webhook_request import UpdateWebhookRequest -from fireblocks.models.us_wire_payment_info import UsWirePaymentInfo -from fireblocks.models.user_group_create_request import UserGroupCreateRequest -from fireblocks.models.user_group_create_response import UserGroupCreateResponse -from fireblocks.models.user_group_response import UserGroupResponse -from fireblocks.models.user_group_update_request import UserGroupUpdateRequest -from fireblocks.models.user_response import UserResponse -from fireblocks.models.user_role import UserRole -from fireblocks.models.user_status import UserStatus -from fireblocks.models.user_type import UserType -from fireblocks.models.validate_address_response import ValidateAddressResponse -from fireblocks.models.validate_layer_zero_channel_response import ValidateLayerZeroChannelResponse -from fireblocks.models.validation_key_dto import ValidationKeyDto -from fireblocks.models.validator import Validator -from fireblocks.models.vault_account import VaultAccount -from fireblocks.models.vault_account_tag_attachment_operation import VaultAccountTagAttachmentOperation -from fireblocks.models.vault_account_tag_attachment_pending_operation import VaultAccountTagAttachmentPendingOperation -from fireblocks.models.vault_account_tag_attachment_rejected_operation import VaultAccountTagAttachmentRejectedOperation -from fireblocks.models.vault_accounts_paged_response import VaultAccountsPagedResponse -from fireblocks.models.vault_accounts_paged_response_paging import VaultAccountsPagedResponsePaging -from fireblocks.models.vault_accounts_tag_attachment_operations_request import VaultAccountsTagAttachmentOperationsRequest -from fireblocks.models.vault_accounts_tag_attachment_operations_response import VaultAccountsTagAttachmentOperationsResponse -from fireblocks.models.vault_action_status import VaultActionStatus -from fireblocks.models.vault_asset import VaultAsset -from fireblocks.models.vault_wallet_address import VaultWalletAddress -from fireblocks.models.vendor_dto import VendorDto -from fireblocks.models.verdict_config import VerdictConfig -from fireblocks.models.version_summary import VersionSummary -from fireblocks.models.wallet_asset import WalletAsset -from fireblocks.models.wallet_asset_additional_info import WalletAssetAdditionalInfo -from fireblocks.models.webhook import Webhook -from fireblocks.models.webhook_event import WebhookEvent -from fireblocks.models.webhook_metric import WebhookMetric -from fireblocks.models.webhook_paginated_response import WebhookPaginatedResponse -from fireblocks.models.withdraw_request import WithdrawRequest -from fireblocks.models.workflow_config_status import WorkflowConfigStatus -from fireblocks.models.workflow_configuration_id import WorkflowConfigurationId -from fireblocks.models.workflow_execution_operation import WorkflowExecutionOperation -from fireblocks.models.workspace import Workspace -from fireblocks.models.write_abi_function import WriteAbiFunction -from fireblocks.models.write_call_function_dto import WriteCallFunctionDto -from fireblocks.models.write_call_function_dto_abi_function import WriteCallFunctionDtoAbiFunction -from fireblocks.models.write_call_function_response_dto import WriteCallFunctionResponseDto +IyBjb2Rpbmc6IHV0Zi04CgojIGZsYWtlODogbm9xYQoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCiMgaW1wb3J0IG1vZGVscyBpbnRvIG1vZGVsIHBhY2thZ2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hcGlfdXNlciBpbXBvcnQgQVBJVXNlcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFiYV9wYXltZW50X2luZm8gaW1wb3J0IEFiYVBheW1lbnRJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWJpX2Z1bmN0aW9uIGltcG9ydCBBYmlGdW5jdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY2Vzc19yZWdpc3RyeV9hZGRyZXNzX2l0ZW0gaW1wb3J0IEFjY2Vzc1JlZ2lzdHJ5QWRkcmVzc0l0ZW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2Nlc3NfcmVnaXN0cnlfY3VycmVudF9zdGF0ZV9yZXNwb25zZSBpbXBvcnQgQWNjZXNzUmVnaXN0cnlDdXJyZW50U3RhdGVSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY2Vzc19yZWdpc3RyeV9zdW1tYXJ5X3Jlc3BvbnNlIGltcG9ydCBBY2Nlc3NSZWdpc3RyeVN1bW1hcnlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY2Vzc190eXBlIGltcG9ydCBBY2Nlc3NUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudCBpbXBvcnQgQWNjb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfYWNjZXNzIGltcG9ydCBBY2NvdW50QWNjZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9iYXNlIGltcG9ydCBBY2NvdW50QmFzZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfYmFzZWRfYWNjZXNzX3Byb3ZpZGVyIGltcG9ydCBBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfYmFzZWRfYWNjZXNzX3Byb3ZpZGVyX2luZm8gaW1wb3J0IEFjY291bnRCYXNlZEFjY2Vzc1Byb3ZpZGVySW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfYmFzZWRfcHJvdmlkZXJfZGV0YWlscyBpbXBvcnQgQWNjb3VudEJhc2VkUHJvdmlkZXJEZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9jb25maWcgaW1wb3J0IEFjY291bnRDb25maWcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2hvbGRlcl9kZXRhaWxzIGltcG9ydCBBY2NvdW50SG9sZGVyRGV0YWlscwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaWRlbnRpZmllciBpbXBvcnQgQWNjb3VudElkZW50aWZpZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X3JlZmVyZW5jZSBpbXBvcnQgQWNjb3VudFJlZmVyZW5jZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfdHlwZSBpbXBvcnQgQWNjb3VudFR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X3R5cGUyIGltcG9ydCBBY2NvdW50VHlwZTIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2hfYWNjb3VudF90eXBlIGltcG9ydCBBY2hBY2NvdW50VHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjaF9hZGRyZXNzIGltcG9ydCBBY2hBZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNoX2Rlc3RpbmF0aW9uIGltcG9ydCBBY2hEZXN0aW5hdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjaF9wYXltZW50X2luZm8gaW1wb3J0IEFjaFBheW1lbnRJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRhcHRlcl9wcm9jZXNzaW5nX3Jlc3VsdCBpbXBvcnQgQWRhcHRlclByb2Nlc3NpbmdSZXN1bHQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hZGRfYWJpX3JlcXVlc3RfZHRvIGltcG9ydCBBZGRBYmlSZXF1ZXN0RHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkX2Fzc2V0X3RvX2V4dGVybmFsX3dhbGxldF9yZXF1ZXN0IGltcG9ydCBBZGRBc3NldFRvRXh0ZXJuYWxXYWxsZXRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkX2NvbGxhdGVyYWxfcmVxdWVzdF9ib2R5IGltcG9ydCBBZGRDb2xsYXRlcmFsUmVxdWVzdEJvZHkKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hZGRfY29udHJhY3RfYXNzZXRfcmVxdWVzdCBpbXBvcnQgQWRkQ29udHJhY3RBc3NldFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hZGRfY29zaWduZXJfcmVxdWVzdCBpbXBvcnQgQWRkQ29zaWduZXJSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkX2Nvc2lnbmVyX3Jlc3BvbnNlIGltcG9ydCBBZGRDb3NpZ25lclJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkX2V4Y2hhbmdlX2FjY291bnRfcmVxdWVzdCBpbXBvcnQgQWRkRXhjaGFuZ2VBY2NvdW50UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZF9leGNoYW5nZV9hY2NvdW50X3Jlc3BvbnNlIGltcG9ydCBBZGRFeGNoYW5nZUFjY291bnRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZGl0aW9uYWxfaW5mbyBpbXBvcnQgQWRkaXRpb25hbEluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hZGRpdGlvbmFsX2luZm9fcmVxdWVzdCBpbXBvcnQgQWRkaXRpb25hbEluZm9SZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkaXRpb25hbF9pbmZvX3JlcXVlc3RfYWRkaXRpb25hbF9pbmZvIGltcG9ydCBBZGRpdGlvbmFsSW5mb1JlcXVlc3RBZGRpdGlvbmFsSW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZHJlc3NfYmFsYW5jZV9pdGVtX2R0byBpbXBvcnQgQWRkcmVzc0JhbGFuY2VJdGVtRHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkcmVzc19iYWxhbmNlX3BhZ2VkX3Jlc3BvbnNlIGltcG9ydCBBZGRyZXNzQmFsYW5jZVBhZ2VkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hZGRyZXNzX25vdF9hdmFpbGFibGVfZXJyb3IgaW1wb3J0IEFkZHJlc3NOb3RBdmFpbGFibGVFcnJvcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZHJlc3NfcmVnaXN0cnlfZXJyb3IgaW1wb3J0IEFkZHJlc3NSZWdpc3RyeUVycm9yCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkcmVzc19yZWdpc3RyeV9sZWdhbF9lbnRpdHkgaW1wb3J0IEFkZHJlc3NSZWdpc3RyeUxlZ2FsRW50aXR5CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWxlcnRfZXhwb3N1cmVfdHlwZV9lbnVtIGltcG9ydCBBbGVydEV4cG9zdXJlVHlwZUVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbGVydF9sZXZlbF9lbnVtIGltcG9ydCBBbGVydExldmVsRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF9hbGVydCBpbXBvcnQgQW1sQWxlcnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfbWF0Y2hlZF9ydWxlIGltcG9ydCBBbWxNYXRjaGVkUnVsZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF9yZWdpc3RyYXRpb25fcmVzdWx0IGltcG9ydCBBbWxSZWdpc3RyYXRpb25SZXN1bHQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfcmVnaXN0cmF0aW9uX3Jlc3VsdF9mdWxsX3BheWxvYWQgaW1wb3J0IEFtbFJlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX3Jlc3VsdCBpbXBvcnQgQW1sUmVzdWx0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX3NjcmVlbmluZ19yZXN1bHQgaW1wb3J0IEFtbFNjcmVlbmluZ1Jlc3VsdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF9zdGF0dXNfZW51bSBpbXBvcnQgQW1sU3RhdHVzRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF92ZXJkaWN0X21hbnVhbF9yZXF1ZXN0IGltcG9ydCBBbWxWZXJkaWN0TWFudWFsUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF92ZXJkaWN0X21hbnVhbF9yZXNwb25zZSBpbXBvcnQgQW1sVmVyZGljdE1hbnVhbFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X2FuZF9jaGFpbl9kZXNjcmlwdG9yIGltcG9ydCBBbW91bnRBbmRDaGFpbkRlc2NyaXB0b3IKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfY29uZmlnIGltcG9ydCBBbW91bnRDb25maWcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfY29uZmlnX2N1cnJlbmN5IGltcG9ydCBBbW91bnRDb25maWdDdXJyZW5jeQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9pbmZvIGltcG9ydCBBbW91bnRJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X292ZXJfdGltZV9jb25maWcgaW1wb3J0IEFtb3VudE92ZXJUaW1lQ29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X3JhbmdlIGltcG9ydCBBbW91bnRSYW5nZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9yYW5nZV9taW5fbWF4IGltcG9ydCBBbW91bnRSYW5nZU1pbk1heApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9yYW5nZV9taW5fbWF4MiBpbXBvcnQgQW1vdW50UmFuZ2VNaW5NYXgyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXBpX2tleSBpbXBvcnQgQXBpS2V5CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXBpX2tleXNfcGFnaW5hdGVkX3Jlc3BvbnNlIGltcG9ydCBBcGlLZXlzUGFnaW5hdGVkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hcHByb3ZhbF9yZXF1ZXN0IGltcG9ydCBBcHByb3ZhbFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hcHByb3ZlcnNfY29uZmlnIGltcG9ydCBBcHByb3ZlcnNDb25maWcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hcHByb3ZlcnNfY29uZmlnX2FwcHJvdmFsX2dyb3Vwc19pbm5lciBpbXBvcnQgQXBwcm92ZXJzQ29uZmlnQXBwcm92YWxHcm91cHNJbm5lcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0IGltcG9ydCBBc3NldApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2FscmVhZHlfZXhpc3RfaHR0cF9lcnJvciBpbXBvcnQgQXNzZXRBbHJlYWR5RXhpc3RIdHRwRXJyb3IKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQgaW1wb3J0IEFzc2V0QW1vdW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfYmFkX3JlcXVlc3RfZXJyb3JfcmVzcG9uc2UgaW1wb3J0IEFzc2V0QmFkUmVxdWVzdEVycm9yUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9jbGFzcyBpbXBvcnQgQXNzZXRDbGFzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2NvbmZpZyBpbXBvcnQgQXNzZXRDb25maWcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9jb25mbGljdF9lcnJvcl9yZXNwb25zZSBpbXBvcnQgQXNzZXRDb25mbGljdEVycm9yUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9kZXRhaWxzX21ldGFkYXRhIGltcG9ydCBBc3NldERldGFpbHNNZXRhZGF0YQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2RldGFpbHNfb25jaGFpbiBpbXBvcnQgQXNzZXREZXRhaWxzT25jaGFpbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2ZlYXR1cmUgaW1wb3J0IEFzc2V0RmVhdHVyZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2ZvcmJpZGRlbl9lcnJvcl9yZXNwb25zZSBpbXBvcnQgQXNzZXRGb3JiaWRkZW5FcnJvclJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfaW50ZXJuYWxfc2VydmVyX2Vycm9yX3Jlc3BvbnNlIGltcG9ydCBBc3NldEludGVybmFsU2VydmVyRXJyb3JSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X21lZGlhIGltcG9ydCBBc3NldE1lZGlhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfbWVkaWFfYXR0cmlidXRlcyBpbXBvcnQgQXNzZXRNZWRpYUF0dHJpYnV0ZXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9tZXRhZGF0YSBpbXBvcnQgQXNzZXRNZXRhZGF0YQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X21ldGFkYXRhX2R0byBpbXBvcnQgQXNzZXRNZXRhZGF0YUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X21ldGFkYXRhX3JlcXVlc3QgaW1wb3J0IEFzc2V0TWV0YWRhdGFSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfbm90X2ZvdW5kX2Vycm9yX3Jlc3BvbnNlIGltcG9ydCBBc3NldE5vdEZvdW5kRXJyb3JSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X25vdGUgaW1wb3J0IEFzc2V0Tm90ZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X25vdGVfcmVxdWVzdCBpbXBvcnQgQXNzZXROb3RlUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X29uY2hhaW4gaW1wb3J0IEFzc2V0T25jaGFpbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X3ByaWNlX2ZvcmJpZGRlbl9lcnJvcl9yZXNwb25zZSBpbXBvcnQgQXNzZXRQcmljZUZvcmJpZGRlbkVycm9yUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9wcmljZV9ub3RfZm91bmRfZXJyb3JfcmVzcG9uc2UgaW1wb3J0IEFzc2V0UHJpY2VOb3RGb3VuZEVycm9yUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9wcmljZV9yZXNwb25zZSBpbXBvcnQgQXNzZXRQcmljZVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfcmVzcG9uc2UgaW1wb3J0IEFzc2V0UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9zY29wZSBpbXBvcnQgQXNzZXRTY29wZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X3R5cGVfcmVzcG9uc2UgaW1wb3J0IEFzc2V0VHlwZVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfdHlwZXNfY29uZmlnX2lubmVyIGltcG9ydCBBc3NldFR5cGVzQ29uZmlnSW5uZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF93YWxsZXQgaW1wb3J0IEFzc2V0V2FsbGV0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXVkaXRfbG9nX2RhdGEgaW1wb3J0IEF1ZGl0TG9nRGF0YQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmF1ZGl0b3JfZGF0YSBpbXBvcnQgQXVkaXRvckRhdGEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hdXRob3JpemF0aW9uX2dyb3VwcyBpbXBvcnQgQXV0aG9yaXphdGlvbkdyb3Vwcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmF1dGhvcml6YXRpb25faW5mbyBpbXBvcnQgQXV0aG9yaXphdGlvbkluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5iYWxhbmNlX2hpc3RvcnlfaXRlbV9kdG8gaW1wb3J0IEJhbGFuY2VIaXN0b3J5SXRlbUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJhbGFuY2VfaGlzdG9yeV9wYWdlZF9yZXNwb25zZSBpbXBvcnQgQmFsYW5jZUhpc3RvcnlQYWdlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYmFua19hZGRyZXNzIGltcG9ydCBCYW5rQWRkcmVzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJhc2VfcHJvdmlkZXIgaW1wb3J0IEJhc2VQcm92aWRlcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJhc2ljX2FkZHJlc3NfcmVxdWVzdCBpbXBvcnQgQmFzaWNBZGRyZXNzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrX2luZm8gaW1wb3J0IEJsb2NrSW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fYWRkcmVzcyBpbXBvcnQgQmxvY2tjaGFpbkFkZHJlc3MKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ibG9ja2NoYWluX2Rlc3RpbmF0aW9uIGltcG9ydCBCbG9ja2NoYWluRGVzdGluYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ibG9ja2NoYWluX2V4cGxvcmVyIGltcG9ydCBCbG9ja2NoYWluRXhwbG9yZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ibG9ja2NoYWluX21lZGlhIGltcG9ydCBCbG9ja2NoYWluTWVkaWEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ibG9ja2NoYWluX21ldGFkYXRhIGltcG9ydCBCbG9ja2NoYWluTWV0YWRhdGEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ibG9ja2NoYWluX25vdF9mb3VuZF9lcnJvcl9yZXNwb25zZSBpbXBvcnQgQmxvY2tjaGFpbk5vdEZvdW5kRXJyb3JSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fb25jaGFpbiBpbXBvcnQgQmxvY2tjaGFpbk9uY2hhaW4KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ibG9ja2NoYWluX3Jlc3BvbnNlIGltcG9ydCBCbG9ja2NoYWluUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ibG9ja2NoYWluX3RyYW5zZmVyIGltcG9ydCBCbG9ja2NoYWluVHJhbnNmZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5icHNfZmVlIGltcG9ydCBCcHNGZWUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5idXNpbmVzc19lbnRpdHlfdHlwZV9lbnVtIGltcG9ydCBCdXNpbmVzc0VudGl0eVR5cGVFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYnVzaW5lc3NfaWRlbnRpZmljYXRpb24gaW1wb3J0IEJ1c2luZXNzSWRlbnRpZmljYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jYWxsYmFja19oYW5kbGVyIGltcG9ydCBDYWxsYmFja0hhbmRsZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jYWxsYmFja19oYW5kbGVyX3JlcXVlc3QgaW1wb3J0IENhbGxiYWNrSGFuZGxlclJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jYW5jZWxfdHJhbnNhY3Rpb25fcmVzcG9uc2UgaW1wb3J0IENhbmNlbFRyYW5zYWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jaGFpbl9kZXNjcmlwdG9yIGltcG9ydCBDaGFpbkRlc2NyaXB0b3IKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jaGFpbl9pbmZvX3Jlc3BvbnNlIGltcG9ydCBDaGFpbkluZm9SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYW5uZWxfZHZuX2NvbmZpZ193aXRoX2NvbmZpcm1hdGlvbnMgaW1wb3J0IENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9ucwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYW5uZWxfZHZuX2NvbmZpZ193aXRoX2NvbmZpcm1hdGlvbnNfcmVjZWl2ZV9jb25maWcgaW1wb3J0IENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1JlY2VpdmVDb25maWcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jaGFubmVsX2R2bl9jb25maWdfd2l0aF9jb25maXJtYXRpb25zX3NlbmRfY29uZmlnIGltcG9ydCBDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNTZW5kQ29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY2hhcHNfYWRkcmVzcyBpbXBvcnQgQ2hhcHNBZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY2hhcHNfZGVzdGluYXRpb24gaW1wb3J0IENoYXBzRGVzdGluYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jaGFwc19wYXltZW50X2luZm8gaW1wb3J0IENoYXBzUGF5bWVudEluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jbGFpbV9yZXdhcmRzX3JlcXVlc3QgaW1wb3J0IENsYWltUmV3YXJkc1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb2xsZWN0aW9uX2J1cm5fcmVxdWVzdF9kdG8gaW1wb3J0IENvbGxlY3Rpb25CdXJuUmVxdWVzdER0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fYnVybl9yZXNwb25zZV9kdG8gaW1wb3J0IENvbGxlY3Rpb25CdXJuUmVzcG9uc2VEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb2xsZWN0aW9uX2RlcGxveV9yZXF1ZXN0X2R0byBpbXBvcnQgQ29sbGVjdGlvbkRlcGxveVJlcXVlc3REdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb2xsZWN0aW9uX2xpbmtfZHRvIGltcG9ydCBDb2xsZWN0aW9uTGlua0R0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fbWV0YWRhdGFfZHRvIGltcG9ydCBDb2xsZWN0aW9uTWV0YWRhdGFEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb2xsZWN0aW9uX21pbnRfcmVxdWVzdF9kdG8gaW1wb3J0IENvbGxlY3Rpb25NaW50UmVxdWVzdER0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fbWludF9yZXNwb25zZV9kdG8gaW1wb3J0IENvbGxlY3Rpb25NaW50UmVzcG9uc2VEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb2xsZWN0aW9uX293bmVyc2hpcF9yZXNwb25zZSBpbXBvcnQgQ29sbGVjdGlvbk93bmVyc2hpcFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29sbGVjdGlvbl90b2tlbl9tZXRhZGF0YV9hdHRyaWJ1dGVfZHRvIGltcG9ydCBDb2xsZWN0aW9uVG9rZW5NZXRhZGF0YUF0dHJpYnV0ZUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fdG9rZW5fbWV0YWRhdGFfZHRvIGltcG9ydCBDb2xsZWN0aW9uVG9rZW5NZXRhZGF0YUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fdHlwZSBpbXBvcnQgQ29sbGVjdGlvblR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb21taXR0ZWRfcXVvdGVfZW51bSBpbXBvcnQgQ29tbWl0dGVkUXVvdGVFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29tbWl0dGVkX3F1b3RlX3R5cGUgaW1wb3J0IENvbW1pdHRlZFF1b3RlVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbXBsaWFuY2VfcmVzdWx0X2Z1bGxfcGF5bG9hZCBpbXBvcnQgQ29tcGxpYW5jZVJlc3VsdEZ1bGxQYXlsb2FkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29tcGxpYW5jZV9yZXN1bHRfc3RhdHVzZXNfZW51bSBpbXBvcnQgQ29tcGxpYW5jZVJlc3VsdFN0YXR1c2VzRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbXBsaWFuY2VfcmVzdWx0cyBpbXBvcnQgQ29tcGxpYW5jZVJlc3VsdHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb21wbGlhbmNlX3NjcmVlbmluZ19yZXN1bHQgaW1wb3J0IENvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb21wbGlhbmNlX3NjcmVlbmluZ19yZXN1bHRfZnVsbF9wYXlsb2FkIGltcG9ydCBDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0RnVsbFBheWxvYWQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25maWdfY2hhbmdlX3JlcXVlc3Rfc3RhdHVzIGltcG9ydCBDb25maWdDaGFuZ2VSZXF1ZXN0U3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29uZmlnX2NvbnZlcnNpb25fb3BlcmF0aW9uX3NuYXBzaG90IGltcG9ydCBDb25maWdDb252ZXJzaW9uT3BlcmF0aW9uU25hcHNob3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25maWdfZGlzYnVyc2VtZW50X29wZXJhdGlvbl9zbmFwc2hvdCBpbXBvcnQgQ29uZmlnRGlzYnVyc2VtZW50T3BlcmF0aW9uU25hcHNob3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25maWdfb3BlcmF0aW9uIGltcG9ydCBDb25maWdPcGVyYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25maWdfb3BlcmF0aW9uX3NuYXBzaG90IGltcG9ydCBDb25maWdPcGVyYXRpb25TbmFwc2hvdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbmZpZ19vcGVyYXRpb25fc3RhdHVzIGltcG9ydCBDb25maWdPcGVyYXRpb25TdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25maWdfdHJhbnNmZXJfb3BlcmF0aW9uX3NuYXBzaG90IGltcG9ydCBDb25maWdUcmFuc2Zlck9wZXJhdGlvblNuYXBzaG90CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnQgaW1wb3J0IENvbm5lY3RlZEFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfYWNjb3VudF9hcHByb3ZhbF9zdGF0dXMgaW1wb3J0IENvbm5lY3RlZEFjY291bnRBcHByb3ZhbFN0YXR1cwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X2Fzc2V0X3R5cGUgaW1wb3J0IENvbm5lY3RlZEFjY291bnRBc3NldFR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfYWNjb3VudF9iYWxhbmNlcyBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudEJhbGFuY2VzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRfYmFsYW5jZXNfcmVzcG9uc2UgaW1wb3J0IENvbm5lY3RlZEFjY291bnRCYWxhbmNlc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRfY2FwYWJpbGl0eSBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudENhcGFiaWxpdHkKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfYWNjb3VudF9lcnJvcl9yZXNwb25zZSBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudEVycm9yUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfYWNjb3VudF9tYW5pZmVzdCBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudE1hbmlmZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRfcmF0ZV9yZXNwb25zZSBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudFJhdGVSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X3RvdGFsX2JhbGFuY2UgaW1wb3J0IENvbm5lY3RlZEFjY291bnRUb3RhbEJhbGFuY2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfYWNjb3VudF90cmFkaW5nX3BhaXIgaW1wb3J0IENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X3RyYWRpbmdfcGFpcl9zdXBwb3J0ZWRfdHlwZSBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyU3VwcG9ydGVkVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X3RyYWRpbmdfcGFpcnNfcmVzcG9uc2UgaW1wb3J0IENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpcnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50c19yZXNwb25zZSBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudHNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9zaW5nbGVfYWNjb3VudCBpbXBvcnQgQ29ubmVjdGVkU2luZ2xlQWNjb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9zaW5nbGVfYWNjb3VudF9yZXNwb25zZSBpbXBvcnQgQ29ubmVjdGVkU2luZ2xlQWNjb3VudFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29uc29sZV91c2VyIGltcG9ydCBDb25zb2xlVXNlcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2FiaV9yZXNwb25zZV9kdG8gaW1wb3J0IENvbnRyYWN0QWJpUmVzcG9uc2VEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9hYmlfcmVzcG9uc2VfZHRvX2FiaV9pbm5lciBpbXBvcnQgQ29udHJhY3RBYmlSZXNwb25zZUR0b0FiaUlubmVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfYWRkcmVzc19yZXNwb25zZSBpbXBvcnQgQ29udHJhY3RBZGRyZXNzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9hdHRyaWJ1dGVzIGltcG9ydCBDb250cmFjdEF0dHJpYnV0ZXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9kYXRhX2RlY29kZV9kYXRhX3R5cGUgaW1wb3J0IENvbnRyYWN0RGF0YURlY29kZURhdGFUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfZGF0YV9kZWNvZGVfZXJyb3IgaW1wb3J0IENvbnRyYWN0RGF0YURlY29kZUVycm9yCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfZGF0YV9kZWNvZGVfcmVxdWVzdCBpbXBvcnQgQ29udHJhY3REYXRhRGVjb2RlUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RhdGFfZGVjb2RlX3JlcXVlc3RfZGF0YSBpbXBvcnQgQ29udHJhY3REYXRhRGVjb2RlUmVxdWVzdERhdGEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9kYXRhX2RlY29kZV9yZXNwb25zZV9wYXJhbXMgaW1wb3J0IENvbnRyYWN0RGF0YURlY29kZVJlc3BvbnNlUGFyYW1zCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfZGF0YV9kZWNvZGVkX3Jlc3BvbnNlIGltcG9ydCBDb250cmFjdERhdGFEZWNvZGVkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9kYXRhX2xvZ19kYXRhX3BhcmFtIGltcG9ydCBDb250cmFjdERhdGFMb2dEYXRhUGFyYW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9kZXBsb3lfcmVxdWVzdCBpbXBvcnQgQ29udHJhY3REZXBsb3lSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfZGVwbG95X3Jlc3BvbnNlIGltcG9ydCBDb250cmFjdERlcGxveVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfZG9jIGltcG9ydCBDb250cmFjdERvYwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X21ldGFkYXRhX2R0byBpbXBvcnQgQ29udHJhY3RNZXRhZGF0YUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X21ldGhvZF9jb25maWcgaW1wb3J0IENvbnRyYWN0TWV0aG9kQ29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfbWV0aG9kX3BhdHRlcm4gaW1wb3J0IENvbnRyYWN0TWV0aG9kUGF0dGVybgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X3RlbXBsYXRlX2R0byBpbXBvcnQgQ29udHJhY3RUZW1wbGF0ZUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X3VwbG9hZF9yZXF1ZXN0IGltcG9ydCBDb250cmFjdFVwbG9hZFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF93aXRoX2FiaV9kdG8gaW1wb3J0IENvbnRyYWN0V2l0aEFiaUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fY29uZmlnX29wZXJhdGlvbiBpbXBvcnQgQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMgaW1wb3J0IENvbnZlcnNpb25PcGVyYXRpb25Db25maWdQYXJhbXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJzaW9uX29wZXJhdGlvbl9leGVjdXRpb24gaW1wb3J0IENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJzaW9uX29wZXJhdGlvbl9leGVjdXRpb25fb3V0cHV0IGltcG9ydCBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtcyBpbXBvcnQgQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXNfZXhlY3V0aW9uX3BhcmFtcyBpbXBvcnQgQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2ZhaWx1cmUgaW1wb3J0IENvbnZlcnNpb25PcGVyYXRpb25GYWlsdXJlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fcHJldmlldyBpbXBvcnQgQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJzaW9uX29wZXJhdGlvbl9wcmV2aWV3X291dHB1dCBpbXBvcnQgQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXdPdXRwdXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJzaW9uX29wZXJhdGlvbl90eXBlIGltcG9ydCBDb252ZXJzaW9uT3BlcmF0aW9uVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fdmFsaWRhdGlvbl9mYWlsdXJlIGltcG9ydCBDb252ZXJzaW9uVmFsaWRhdGlvbkZhaWx1cmUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJ0X2Fzc2V0c19yZXF1ZXN0IGltcG9ydCBDb252ZXJ0QXNzZXRzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnRfYXNzZXRzX3Jlc3BvbnNlIGltcG9ydCBDb252ZXJ0QXNzZXRzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb3NpZ25lciBpbXBvcnQgQ29zaWduZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb3NpZ25lcnNfcGFnaW5hdGVkX3Jlc3BvbnNlIGltcG9ydCBDb3NpZ25lcnNQYWdpbmF0ZWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9hcGlfdXNlciBpbXBvcnQgQ3JlYXRlQVBJVXNlcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9hZGRyZXNzX3JlcXVlc3QgaW1wb3J0IENyZWF0ZUFkZHJlc3NSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX2FkZHJlc3NfcmVzcG9uc2UgaW1wb3J0IENyZWF0ZUFkZHJlc3NSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9hc3NldHNfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlQXNzZXRzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9jb25maWdfb3BlcmF0aW9uX3JlcXVlc3QgaW1wb3J0IENyZWF0ZUNvbmZpZ09wZXJhdGlvblJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfY29ubmVjdGlvbl9yZXF1ZXN0IGltcG9ydCBDcmVhdGVDb25uZWN0aW9uUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9jb25uZWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBDcmVhdGVDb25uZWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfY29uc29sZV91c2VyIGltcG9ydCBDcmVhdGVDb25zb2xlVXNlcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9jb250cmFjdF9yZXF1ZXN0IGltcG9ydCBDcmVhdGVDb250cmFjdFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfY29udmVyc2lvbl9jb25maWdfb3BlcmF0aW9uX3JlcXVlc3QgaW1wb3J0IENyZWF0ZUNvbnZlcnNpb25Db25maWdPcGVyYXRpb25SZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX2Rpc2J1cnNlbWVudF9jb25maWdfb3BlcmF0aW9uX3JlcXVlc3QgaW1wb3J0IENyZWF0ZURpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvblJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfaW50ZXJuYWxfdHJhbnNmZXJfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlSW50ZXJuYWxUcmFuc2ZlclJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0X3JlcXVlc3QgaW1wb3J0IENyZWF0ZUludGVybmFsV2FsbGV0QXNzZXRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdCBpbXBvcnQgQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9tdWx0aWNoYWluX3Rva2VuX3JlcXVlc3RfY3JlYXRlX3BhcmFtcyBpbXBvcnQgQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdENyZWF0ZVBhcmFtcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9tdWx0aXBsZV9hY2NvdW50c19yZXF1ZXN0IGltcG9ydCBDcmVhdGVNdWx0aXBsZUFjY291bnRzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3Nlc19qb2Jfc3RhdHVzIGltcG9ydCBDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNKb2JTdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfbXVsdGlwbGVfZGVwb3NpdF9hZGRyZXNzZXNfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9tdWx0aXBsZV92YXVsdF9hY2NvdW50c19qb2Jfc3RhdHVzIGltcG9ydCBDcmVhdGVNdWx0aXBsZVZhdWx0QWNjb3VudHNKb2JTdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfbmN3X2Nvbm5lY3Rpb25fcmVxdWVzdCBpbXBvcnQgQ3JlYXRlTmN3Q29ubmVjdGlvblJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfbmV0d29ya19pZF9yZXF1ZXN0IGltcG9ydCBDcmVhdGVOZXR3b3JrSWRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX29yZGVyX3JlcXVlc3QgaW1wb3J0IENyZWF0ZU9yZGVyUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9wYXlvdXRfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlUGF5b3V0UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9xdW90ZSBpbXBvcnQgQ3JlYXRlUXVvdGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfcXVvdGVfc2NvcGVfaW5uZXIgaW1wb3J0IENyZWF0ZVF1b3RlU2NvcGVJbm5lcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9zaWduaW5nX2tleV9kdG8gaW1wb3J0IENyZWF0ZVNpZ25pbmdLZXlEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfc2lnbmluZ19rZXlfZHRvX3Byb29mX29mX293bmVyc2hpcCBpbXBvcnQgQ3JlYXRlU2lnbmluZ0tleUR0b1Byb29mT2ZPd25lcnNoaXAKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfdGFnX3JlcXVlc3QgaW1wb3J0IENyZWF0ZVRhZ1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfdG9rZW5fcmVxdWVzdF9kdG8gaW1wb3J0IENyZWF0ZVRva2VuUmVxdWVzdER0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV90b2tlbl9yZXF1ZXN0X2R0b19jcmVhdGVfcGFyYW1zIGltcG9ydCBDcmVhdGVUb2tlblJlcXVlc3REdG9DcmVhdGVQYXJhbXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfdHJhbnNhY3Rpb25fcmVzcG9uc2UgaW1wb3J0IENyZWF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfdHJhbnNmZXJfY29uZmlnX29wZXJhdGlvbl9yZXF1ZXN0IGltcG9ydCBDcmVhdGVUcmFuc2ZlckNvbmZpZ09wZXJhdGlvblJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfdXNlcl9ncm91cF9yZXNwb25zZSBpbXBvcnQgQ3JlYXRlVXNlckdyb3VwUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfdmFsaWRhdGlvbl9rZXlfZHRvIGltcG9ydCBDcmVhdGVWYWxpZGF0aW9uS2V5RHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3ZhbGlkYXRpb25fa2V5X3Jlc3BvbnNlX2R0byBpbXBvcnQgQ3JlYXRlVmFsaWRhdGlvbktleVJlc3BvbnNlRHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3ZhdWx0X2FjY291bnRfY29ubmVjdGlvbl9yZXF1ZXN0IGltcG9ydCBDcmVhdGVWYXVsdEFjY291bnRDb25uZWN0aW9uUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV92YXVsdF9hY2NvdW50X3JlcXVlc3QgaW1wb3J0IENyZWF0ZVZhdWx0QWNjb3VudFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfdmF1bHRfYXNzZXRfcmVzcG9uc2UgaW1wb3J0IENyZWF0ZVZhdWx0QXNzZXRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV93YWxsZXRfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlV2FsbGV0UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV93ZWJob29rX3JlcXVlc3QgaW1wb3J0IENyZWF0ZVdlYmhvb2tSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3dvcmtmbG93X2V4ZWN1dGlvbl9yZXF1ZXN0X3BhcmFtc19pbm5lciBpbXBvcnQgQ3JlYXRlV29ya2Zsb3dFeGVjdXRpb25SZXF1ZXN0UGFyYW1zSW5uZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jdXN0b21fcm91dGluZ19kZXN0IGltcG9ydCBDdXN0b21Sb3V0aW5nRGVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRfYXBwX2FkZHJlc3NfY29uZmlnIGltcG9ydCBEQXBwQWRkcmVzc0NvbmZpZwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmR2cF9zZXR0bGVtZW50IGltcG9ydCBEVlBTZXR0bGVtZW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZHZwX3NldHRsZW1lbnRfdHlwZSBpbXBvcnQgRFZQU2V0dGxlbWVudFR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZWNvZGVkX2xvZyBpbXBvcnQgRGVjb2RlZExvZwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlZmF1bHRfbmV0d29ya19yb3V0aW5nX2Rlc3QgaW1wb3J0IERlZmF1bHROZXR3b3JrUm91dGluZ0Rlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZWxlZ2F0aW9uIGltcG9ydCBEZWxlZ2F0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVsZWdhdGlvbl9ibG9ja2NoYWluX3Bvc2l0aW9uX2luZm8gaW1wb3J0IERlbGVnYXRpb25CbG9ja2NoYWluUG9zaXRpb25JbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVsZWdhdGlvbl9zdW1tYXJ5IGltcG9ydCBEZWxlZ2F0aW9uU3VtbWFyeQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlbGV0ZV9uZXR3b3JrX2Nvbm5lY3Rpb25fcmVzcG9uc2UgaW1wb3J0IERlbGV0ZU5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZWxldGVfbmV0d29ya19pZF9yZXNwb25zZSBpbXBvcnQgRGVsZXRlTmV0d29ya0lkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZXBsb3lfbGF5ZXJfemVyb19hZGFwdGVyc19yZXF1ZXN0IGltcG9ydCBEZXBsb3lMYXllclplcm9BZGFwdGVyc1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZXBsb3lhYmxlX2FkZHJlc3NfcmVzcG9uc2UgaW1wb3J0IERlcGxveWFibGVBZGRyZXNzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZXBsb3llZF9jb250cmFjdF9ub3RfZm91bmRfZXJyb3IgaW1wb3J0IERlcGxveWVkQ29udHJhY3ROb3RGb3VuZEVycm9yCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVwbG95ZWRfY29udHJhY3RfcmVzcG9uc2VfZHRvIGltcG9ydCBEZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZXBsb3llZF9jb250cmFjdHNfcGFnaW5hdGVkX3Jlc3BvbnNlIGltcG9ydCBEZXBsb3llZENvbnRyYWN0c1BhZ2luYXRlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVwb3NpdF9mdW5kc19mcm9tX2xpbmtlZF9kZGFfcmVzcG9uc2UgaW1wb3J0IERlcG9zaXRGdW5kc0Zyb21MaW5rZWREREFSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlcml2YXRpb25fcGF0aF9jb25maWcgaW1wb3J0IERlcml2YXRpb25QYXRoQ29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzaWduYXRlZF9zaWduZXJzX2NvbmZpZyBpbXBvcnQgRGVzaWduYXRlZFNpZ25lcnNDb25maWcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZXN0aW5hdGlvbiBpbXBvcnQgRGVzdGluYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZXN0aW5hdGlvbl9jb25maWcgaW1wb3J0IERlc3RpbmF0aW9uQ29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzdGluYXRpb25fdHJhbnNmZXJfcGVlcl9wYXRoIGltcG9ydCBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZXN0aW5hdGlvbl90cmFuc2Zlcl9wZWVyX3BhdGhfcmVzcG9uc2UgaW1wb3J0IERlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlyZWN0X2FjY2VzcyBpbXBvcnQgRGlyZWN0QWNjZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlyZWN0X2FjY2Vzc19wcm92aWRlciBpbXBvcnQgRGlyZWN0QWNjZXNzUHJvdmlkZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXJlY3RfYWNjZXNzX3Byb3ZpZGVyX2luZm8gaW1wb3J0IERpcmVjdEFjY2Vzc1Byb3ZpZGVySW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpcmVjdF9wcm92aWRlcl9kZXRhaWxzIGltcG9ydCBEaXJlY3RQcm92aWRlckRldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfYW1vdW50X2luc3RydWN0aW9uIGltcG9ydCBEaXNidXJzZW1lbnRBbW91bnRJbnN0cnVjdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9jb25maWdfb3BlcmF0aW9uIGltcG9ydCBEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfaW5zdHJ1Y3Rpb24gaW1wb3J0IERpc2J1cnNlbWVudEluc3RydWN0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X2luc3RydWN0aW9uX291dHB1dCBpbXBvcnQgRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb25PdXRwdXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMgaW1wb3J0IERpc2J1cnNlbWVudE9wZXJhdGlvbkNvbmZpZ1BhcmFtcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uIGltcG9ydCBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXQgaW1wb3J0IERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtcyBpbXBvcnQgRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9leGVjdXRpb25fcGFyYW1zX2V4ZWN1dGlvbl9wYXJhbXMgaW1wb3J0IERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25faW5wdXQgaW1wb3J0IERpc2J1cnNlbWVudE9wZXJhdGlvbklucHV0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9wcmV2aWV3IGltcG9ydCBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9wcmV2aWV3X291dHB1dCBpbXBvcnQgRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlld091dHB1dApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fcHJldmlld19vdXRwdXRfaW5zdHJ1Y3Rpb25fc2V0X2lubmVyIGltcG9ydCBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0SW5zdHJ1Y3Rpb25TZXRJbm5lcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fdHlwZSBpbXBvcnQgRGlzYnVyc2VtZW50T3BlcmF0aW9uVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9wZXJjZW50YWdlX2luc3RydWN0aW9uIGltcG9ydCBEaXNidXJzZW1lbnRQZXJjZW50YWdlSW5zdHJ1Y3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfdmFsaWRhdGlvbl9mYWlsdXJlIGltcG9ydCBEaXNidXJzZW1lbnRWYWxpZGF0aW9uRmFpbHVyZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc3BhdGNoX3BheW91dF9yZXNwb25zZSBpbXBvcnQgRGlzcGF0Y2hQYXlvdXRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRyYWZ0X3Jlc3BvbnNlIGltcG9ydCBEcmFmdFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZHJhZnRfcmV2aWV3X2FuZF92YWxpZGF0aW9uX3Jlc3BvbnNlIGltcG9ydCBEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRyb3BfdHJhbnNhY3Rpb25fcmVxdWVzdCBpbXBvcnQgRHJvcFRyYW5zYWN0aW9uUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRyb3BfdHJhbnNhY3Rpb25fcmVzcG9uc2UgaW1wb3J0IERyb3BUcmFuc2FjdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZHZuX2NvbmZpZyBpbXBvcnQgRHZuQ29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZHZuX2NvbmZpZ193aXRoX2NvbmZpcm1hdGlvbnMgaW1wb3J0IER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXZtX3Rva2VuX2NyZWF0ZV9wYXJhbXNfZHRvIGltcG9ydCBFVk1Ub2tlbkNyZWF0ZVBhcmFtc0R0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVkaXRfZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbl9yZXNwb25zZSBpbXBvcnQgRWRpdEdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXQgaW1wb3J0IEVtYmVkZGVkV2FsbGV0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X2FjY291bnQgaW1wb3J0IEVtYmVkZGVkV2FsbGV0QWNjb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9hZGRyZXNzX2RldGFpbHMgaW1wb3J0IEVtYmVkZGVkV2FsbGV0QWRkcmVzc0RldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfYWxnb3JpdG0gaW1wb3J0IEVtYmVkZGVkV2FsbGV0QWxnb3JpdG0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfYXNzZXRfYmFsYW5jZSBpbXBvcnQgRW1iZWRkZWRXYWxsZXRBc3NldEJhbGFuY2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfYXNzZXRfcmVzcG9uc2UgaW1wb3J0IEVtYmVkZGVkV2FsbGV0QXNzZXRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9hc3NldF9yZXdhcmRfaW5mbyBpbXBvcnQgRW1iZWRkZWRXYWxsZXRBc3NldFJld2FyZEluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfZGV2aWNlIGltcG9ydCBFbWJlZGRlZFdhbGxldERldmljZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9kZXZpY2Vfa2V5X3NldHVwX3Jlc3BvbnNlIGltcG9ydCBFbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfZGV2aWNlX2tleV9zZXR1cF9yZXNwb25zZV9zZXR1cF9zdGF0dXNfaW5uZXIgaW1wb3J0IEVtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZVNldHVwU3RhdHVzSW5uZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfbGF0ZXN0X2JhY2t1cF9rZXkgaW1wb3J0IEVtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwS2V5CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X2xhdGVzdF9iYWNrdXBfcmVzcG9uc2UgaW1wb3J0IEVtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfcGFnaW5hdGVkX2FkZHJlc3Nlc19yZXNwb25zZSBpbXBvcnQgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBZGRyZXNzZXNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9wYWdpbmF0ZWRfYXNzZXRzX3Jlc3BvbnNlIGltcG9ydCBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X3BhZ2luYXRlZF9kZXZpY2VzX3Jlc3BvbnNlIGltcG9ydCBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZERldmljZXNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9wYWdpbmF0ZWRfd2FsbGV0c19yZXNwb25zZSBpbXBvcnQgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRXYWxsZXRzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfcmVxdWlyZWRfYWxnb3JpdGhtcyBpbXBvcnQgRW1iZWRkZWRXYWxsZXRSZXF1aXJlZEFsZ29yaXRobXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfc2V0X3VwX3N0YXR1cyBpbXBvcnQgRW1iZWRkZWRXYWxsZXRTZXRVcFN0YXR1cwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9zZXR1cF9zdGF0dXNfcmVzcG9uc2UgaW1wb3J0IEVtYmVkZGVkV2FsbGV0U2V0dXBTdGF0dXNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVuYWJsZV9kZXZpY2UgaW1wb3J0IEVuYWJsZURldmljZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVuYWJsZV93YWxsZXQgaW1wb3J0IEVuYWJsZVdhbGxldApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVycm9yX3Jlc3BvbnNlIGltcG9ydCBFcnJvclJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXJyb3JfcmVzcG9uc2VfZXJyb3IgaW1wb3J0IEVycm9yUmVzcG9uc2VFcnJvcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVycm9yX3NjaGVtYSBpbXBvcnQgRXJyb3JTY2hlbWEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lc3RpbWF0ZWRfZmVlX2RldGFpbHMgaW1wb3J0IEVzdGltYXRlZEZlZURldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lc3RpbWF0ZWRfbmV0d29ya19mZWVfcmVzcG9uc2UgaW1wb3J0IEVzdGltYXRlZE5ldHdvcmtGZWVSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVzdGltYXRlZF90cmFuc2FjdGlvbl9mZWVfcmVzcG9uc2UgaW1wb3J0IEVzdGltYXRlZFRyYW5zYWN0aW9uRmVlUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ldGhlcmV1bV9ibG9ja2NoYWluX2RhdGEgaW1wb3J0IEV0aGVyZXVtQmxvY2tjaGFpbkRhdGEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ldXJvcGVhbl9zZXBhX2FkZHJlc3MgaW1wb3J0IEV1cm9wZWFuU0VQQUFkZHJlc3MKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ldXJvcGVhbl9zZXBhX2Rlc3RpbmF0aW9uIGltcG9ydCBFdXJvcGVhblNFUEFEZXN0aW5hdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4Y2hhbmdlX2FjY291bnQgaW1wb3J0IEV4Y2hhbmdlQWNjb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4Y2hhbmdlX2Fzc2V0IGltcG9ydCBFeGNoYW5nZUFzc2V0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhjaGFuZ2Vfc2V0dGxlbWVudF90cmFuc2FjdGlvbnNfcmVzcG9uc2UgaW1wb3J0IEV4Y2hhbmdlU2V0dGxlbWVudFRyYW5zYWN0aW9uc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhjaGFuZ2VfdHJhZGluZ19hY2NvdW50IGltcG9ydCBFeGNoYW5nZVRyYWRpbmdBY2NvdW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhjaGFuZ2VfdHlwZSBpbXBvcnQgRXhjaGFuZ2VUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhlY3V0aW9uX2NvbnZlcnNpb25fb3BlcmF0aW9uIGltcG9ydCBFeGVjdXRpb25Db252ZXJzaW9uT3BlcmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhlY3V0aW9uX2Rpc2J1cnNlbWVudF9vcGVyYXRpb24gaW1wb3J0IEV4ZWN1dGlvbkRpc2J1cnNlbWVudE9wZXJhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9vcGVyYXRpb25fc3RhdHVzIGltcG9ydCBFeGVjdXRpb25PcGVyYXRpb25TdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGVjdXRpb25fcmVxdWVzdF9iYXNlX2RldGFpbHMgaW1wb3J0IEV4ZWN1dGlvblJlcXVlc3RCYXNlRGV0YWlscwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHMgaW1wb3J0IEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhlY3V0aW9uX3JlcXVlc3RfZGV0YWlsc190eXBlIGltcG9ydCBFeGVjdXRpb25SZXF1ZXN0RGV0YWlsc1R5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGVjdXRpb25fcmVzcG9uc2VfYmFzZV9kZXRhaWxzIGltcG9ydCBFeGVjdXRpb25SZXNwb25zZUJhc2VEZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhlY3V0aW9uX3Jlc3BvbnNlX2RldGFpbHMgaW1wb3J0IEV4ZWN1dGlvblJlc3BvbnNlRGV0YWlscwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9zY3JlZW5pbmdfb3BlcmF0aW9uIGltcG9ydCBFeGVjdXRpb25TY3JlZW5pbmdPcGVyYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGVjdXRpb25fc3RlcF9lcnJvciBpbXBvcnQgRXhlY3V0aW9uU3RlcEVycm9yCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhlY3V0aW9uX3N0ZXBfc3RhdHVzX2VudW0gaW1wb3J0IEV4ZWN1dGlvblN0ZXBTdGF0dXNFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhlY3V0aW9uX3N0ZXBfdHlwZSBpbXBvcnQgRXhlY3V0aW9uU3RlcFR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGVjdXRpb25fdHJhbnNmZXJfb3BlcmF0aW9uIGltcG9ydCBFeGVjdXRpb25UcmFuc2Zlck9wZXJhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX2FjY291bnQgaW1wb3J0IEV4dGVybmFsQWNjb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX2FjY291bnRfbG9jYWxfYmFua19hZnJpY2EgaW1wb3J0IEV4dGVybmFsQWNjb3VudExvY2FsQmFua0FmcmljYQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX2FjY291bnRfbW9iaWxlX21vbmV5IGltcG9ydCBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX2FjY291bnRfbW9iaWxlX21vbmV5X3Byb3ZpZGVyIGltcG9ydCBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leVByb3ZpZGVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXh0ZXJuYWxfYWNjb3VudF9tb2JpbGVfbW9uZXlfdHlwZSBpbXBvcnQgRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXlUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXh0ZXJuYWxfYWNjb3VudF9zZW5kZXJfaW5mb3JtYXRpb24gaW1wb3J0IEV4dGVybmFsQWNjb3VudFNlbmRlckluZm9ybWF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXh0ZXJuYWxfYWNjb3VudF90eXBlIGltcG9ydCBFeHRlcm5hbEFjY291bnRUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXh0ZXJuYWxfd2FsbGV0X2Fzc2V0IGltcG9ydCBFeHRlcm5hbFdhbGxldEFzc2V0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXh0cmFfcGFyYW1ldGVycyBpbXBvcnQgRXh0cmFQYXJhbWV0ZXJzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmFpbHVyZSBpbXBvcnQgRmFpbHVyZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZhaWx1cmVfcmVhc29uIGltcG9ydCBGYWlsdXJlUmVhc29uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmVlIGltcG9ydCBGZWUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5mZWVfYnJlYWtkb3duIGltcG9ydCBGZWVCcmVha2Rvd24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5mZWVfaW5mbyBpbXBvcnQgRmVlSW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZV9sZXZlbCBpbXBvcnQgRmVlTGV2ZWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5mZWVfcGF5ZXJfaW5mbyBpbXBvcnQgRmVlUGF5ZXJJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmVlX3Byb3BlcnRpZXNfZGV0YWlscyBpbXBvcnQgRmVlUHJvcGVydGllc0RldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5mZWVfdHlwZV9lbnVtIGltcG9ydCBGZWVUeXBlRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZldGNoX2FiaV9yZXF1ZXN0X2R0byBpbXBvcnQgRmV0Y2hBYmlSZXF1ZXN0RHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmlhdF9hY2NvdW50IGltcG9ydCBGaWF0QWNjb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZpYXRfYWNjb3VudF90eXBlIGltcG9ydCBGaWF0QWNjb3VudFR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5maWF0X2Fzc2V0IGltcG9ydCBGaWF0QXNzZXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5maWF0X2Rlc3RpbmF0aW9uIGltcG9ydCBGaWF0RGVzdGluYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5maWF0X3BheW1lbnRfbWV0YWRhdGEgaW1wb3J0IEZpYXRQYXltZW50TWV0YWRhdGEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5maWF0X3RyYW5zZmVyIGltcG9ydCBGaWF0VHJhbnNmZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5maXhlZF9hbW91bnRfdHlwZV9lbnVtIGltcG9ydCBGaXhlZEFtb3VudFR5cGVFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZml4ZWRfZmVlIGltcG9ydCBGaXhlZEZlZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZyZWV6ZV90cmFuc2FjdGlvbl9yZXNwb25zZSBpbXBvcnQgRnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZ1bmN0aW9uX2RvYyBpbXBvcnQgRnVuY3Rpb25Eb2MKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5mdW5kcyBpbXBvcnQgRnVuZHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uIGltcG9ydCBHYXNTdGF0aW9uQ29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25fcmVzcG9uc2UgaW1wb3J0IEdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nYXNfc3RhdGlvbl9wcm9wZXJ0aWVzX3Jlc3BvbnNlIGltcG9ydCBHYXNTdGF0aW9uUHJvcGVydGllc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2Fzc2xlc3Nfc3RhbmRhcmRfY29uZmlndXJhdGlvbnMgaW1wb3J0IEdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9ucwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdhc3NsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zX2dhc2xlc3Nfc3RhbmRhcmRfY29uZmlndXJhdGlvbnNfdmFsdWUgaW1wb3J0IEdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc0dhc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zVmFsdWUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfYXBpX3VzZXJzX3Jlc3BvbnNlIGltcG9ydCBHZXRBUElVc2Vyc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X2F1ZGl0X2xvZ3NfcmVzcG9uc2UgaW1wb3J0IEdldEF1ZGl0TG9nc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X2Nvbm5lY3Rpb25zX3Jlc3BvbnNlIGltcG9ydCBHZXRDb25uZWN0aW9uc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X2NvbnNvbGVfdXNlcnNfcmVzcG9uc2UgaW1wb3J0IEdldENvbnNvbGVVc2Vyc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X2RlcGxveWFibGVfYWRkcmVzc19yZXF1ZXN0IGltcG9ydCBHZXREZXBsb3lhYmxlQWRkcmVzc1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfZXhjaGFuZ2VfYWNjb3VudHNfY3JlZGVudGlhbHNfcHVibGljX2tleV9yZXNwb25zZSBpbXBvcnQgR2V0RXhjaGFuZ2VBY2NvdW50c0NyZWRlbnRpYWxzUHVibGljS2V5UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfZmlsdGVyX3BhcmFtZXRlciBpbXBvcnQgR2V0RmlsdGVyUGFyYW1ldGVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X2xheWVyX3plcm9fZHZuX2NvbmZpZ19yZXNwb25zZSBpbXBvcnQgR2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfbGF5ZXJfemVyb19wZWVyc19yZXNwb25zZSBpbXBvcnQgR2V0TGF5ZXJaZXJvUGVlcnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9saW5rZWRfY29sbGVjdGlvbnNfcGFnaW5hdGVkX3Jlc3BvbnNlIGltcG9ydCBHZXRMaW5rZWRDb2xsZWN0aW9uc1BhZ2luYXRlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X21heF9iaXBfaW5kZXhfdXNlZF9yZXNwb25zZSBpbXBvcnQgR2V0TWF4QmlwSW5kZXhVc2VkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfbWF4X3NwZW5kYWJsZV9hbW91bnRfcmVzcG9uc2UgaW1wb3J0IEdldE1heFNwZW5kYWJsZUFtb3VudFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X21wY19rZXlzX3Jlc3BvbnNlIGltcG9ydCBHZXRNcGNLZXlzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfbmZ0c19yZXNwb25zZSBpbXBvcnQgR2V0TkZUc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X29yZGVyc19yZXNwb25zZSBpbXBvcnQgR2V0T3JkZXJzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfb3RhX3N0YXR1c19yZXNwb25zZSBpbXBvcnQgR2V0T3RhU3RhdHVzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfb3duZXJzaGlwX3Rva2Vuc19yZXNwb25zZSBpbXBvcnQgR2V0T3duZXJzaGlwVG9rZW5zUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfcGFnZWRfZXhjaGFuZ2VfYWNjb3VudHNfcmVzcG9uc2UgaW1wb3J0IEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X3BhZ2VkX2V4Y2hhbmdlX2FjY291bnRzX3Jlc3BvbnNlX3BhZ2luZyBpbXBvcnQgR2V0UGFnZWRFeGNoYW5nZUFjY291bnRzUmVzcG9uc2VQYWdpbmcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfc2lnbmluZ19rZXlfcmVzcG9uc2VfZHRvIGltcG9ydCBHZXRTaWduaW5nS2V5UmVzcG9uc2VEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfdHJhbnNhY3Rpb25fb3BlcmF0aW9uIGltcG9ydCBHZXRUcmFuc2FjdGlvbk9wZXJhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF92YWxpZGF0aW9uX2tleV9yZXNwb25zZV9kdG8gaW1wb3J0IEdldFZhbGlkYXRpb25LZXlSZXNwb25zZUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF93aGl0ZWxpc3RfaXBfYWRkcmVzc2VzX3Jlc3BvbnNlIGltcG9ydCBHZXRXaGl0ZWxpc3RJcEFkZHJlc3Nlc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZ2V0X3dvcmtzcGFjZV9zdGF0dXNfcmVzcG9uc2UgaW1wb3J0IEdldFdvcmtzcGFjZVN0YXR1c1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaHR0cF9jb250cmFjdF9kb2VzX25vdF9leGlzdF9lcnJvciBpbXBvcnQgSHR0cENvbnRyYWN0RG9lc05vdEV4aXN0RXJyb3IKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5pYmFuX2FkZHJlc3MgaW1wb3J0IEliYW5BZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaWJhbl9kZXN0aW5hdGlvbiBpbXBvcnQgSWJhbkRlc3RpbmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaWJhbl9wYXltZW50X2luZm8gaW1wb3J0IEliYW5QYXltZW50SW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmlkZW50aWZpY2F0aW9uIGltcG9ydCBJZGVudGlmaWNhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmlkbF90eXBlIGltcG9ydCBJZGxUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaW5kaWNhdGl2ZV9xdW90ZV9lbnVtIGltcG9ydCBJbmRpY2F0aXZlUXVvdGVFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaW5kaWNhdGl2ZV9xdW90ZV90eXBlIGltcG9ydCBJbmRpY2F0aXZlUXVvdGVUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaW5pdGlhdG9yX2NvbmZpZyBpbXBvcnQgSW5pdGlhdG9yQ29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaW5pdGlhdG9yX2NvbmZpZ19wYXR0ZXJuIGltcG9ydCBJbml0aWF0b3JDb25maWdQYXR0ZXJuCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaW5zdHJ1Y3Rpb25fYW1vdW50IGltcG9ydCBJbnN0cnVjdGlvbkFtb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmludGVyYWNfYWRkcmVzcyBpbXBvcnQgSW50ZXJhY0FkZHJlc3MKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5pbnRlcmFjX2Rlc3RpbmF0aW9uIGltcG9ydCBJbnRlcmFjRGVzdGluYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5pbnRlcmFjX3BheW1lbnRfaW5mbyBpbXBvcnQgSW50ZXJhY1BheW1lbnRJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaW50ZXJuYWxfcmVmZXJlbmNlIGltcG9ydCBJbnRlcm5hbFJlZmVyZW5jZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmludGVybmFsX3RyYW5zZmVyX2FkZHJlc3MgaW1wb3J0IEludGVybmFsVHJhbnNmZXJBZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaW50ZXJuYWxfdHJhbnNmZXJfZGVzdGluYXRpb24gaW1wb3J0IEludGVybmFsVHJhbnNmZXJEZXN0aW5hdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmludGVybmFsX3RyYW5zZmVyX3Jlc3BvbnNlIGltcG9ydCBJbnRlcm5hbFRyYW5zZmVyUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5pbnZhbGlkX3BhcmFtYXRlcl92YWx1ZV9lcnJvciBpbXBvcnQgSW52YWxpZFBhcmFtYXRlclZhbHVlRXJyb3IKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5qb2JfY3JlYXRlZCBpbXBvcnQgSm9iQ3JlYXRlZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxheWVyX3plcm9fYWRhcHRlcl9jcmVhdGVfcGFyYW1zIGltcG9ydCBMYXllclplcm9BZGFwdGVyQ3JlYXRlUGFyYW1zCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGJ0X3BheW1lbnRfaW5mbyBpbXBvcnQgTGJ0UGF5bWVudEluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWFuX2FiaV9mdW5jdGlvbiBpbXBvcnQgTGVhbkFiaUZ1bmN0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVhbl9jb250cmFjdF9kdG8gaW1wb3J0IExlYW5Db250cmFjdER0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlYW5fZGVwbG95ZWRfY29udHJhY3RfcmVzcG9uc2VfZHRvIGltcG9ydCBMZWFuRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X2Ftb3VudF9hZ2dyZWdhdGlvbl90aW1lX3BlcmlvZF9tZXRob2QgaW1wb3J0IExlZ2FjeUFtb3VudEFnZ3JlZ2F0aW9uVGltZVBlcmlvZE1ldGhvZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9kcmFmdF9yZXNwb25zZSBpbXBvcnQgTGVnYWN5RHJhZnRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9kcmFmdF9yZXZpZXdfYW5kX3ZhbGlkYXRpb25fcmVzcG9uc2UgaW1wb3J0IExlZ2FjeURyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9hbmRfdmFsaWRhdGlvbl9yZXNwb25zZSBpbXBvcnQgTGVnYWN5UG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9jaGVja19yZXN1bHQgaW1wb3J0IExlZ2FjeVBvbGljeUNoZWNrUmVzdWx0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9tZXRhZGF0YSBpbXBvcnQgTGVnYWN5UG9saWN5TWV0YWRhdGEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3Jlc3BvbnNlIGltcG9ydCBMZWdhY3lQb2xpY3lSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZSBpbXBvcnQgTGVnYWN5UG9saWN5UnVsZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hbW91bnQgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVBbW91bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfYW1vdW50X2FnZ3JlZ2F0aW9uIGltcG9ydCBMZWdhY3lQb2xpY3lSdWxlQW1vdW50QWdncmVnYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfYXV0aG9yaXphdGlvbl9ncm91cHMgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVBdXRob3JpemF0aW9uR3JvdXBzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2F1dGhvcml6YXRpb25fZ3JvdXBzX2dyb3Vwc19pbm5lciBpbXBvcnQgTGVnYWN5UG9saWN5UnVsZUF1dGhvcml6YXRpb25Hcm91cHNHcm91cHNJbm5lcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9jaGVja19yZXN1bHQgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVDaGVja1Jlc3VsdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9kZXNpZ25hdGVkX3NpZ25lcnMgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVEZXNpZ25hdGVkU2lnbmVycwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9kc3QgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVEc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfZXJyb3IgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVFcnJvcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9vcGVyYXRvcnMgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVPcGVyYXRvcnMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfcmF3X21lc3NhZ2Vfc2lnbmluZyBpbXBvcnQgTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX3Jhd19tZXNzYWdlX3NpZ25pbmdfZGVyaXZhdGlvbl9wYXRoIGltcG9ydCBMZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmdEZXJpdmF0aW9uUGF0aApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9zcmMgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVTcmMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVzIGltcG9ydCBMZWdhY3lQb2xpY3lSdWxlcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfc3JjX29yX2Rlc3Rfc3ViX3R5cGUgaW1wb3J0IExlZ2FjeVBvbGljeVNyY09yRGVzdFN1YlR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3NyY19vcl9kZXN0X3R5cGUgaW1wb3J0IExlZ2FjeVBvbGljeVNyY09yRGVzdFR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3N0YXR1cyBpbXBvcnQgTGVnYWN5UG9saWN5U3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV92YWxpZGF0aW9uIGltcG9ydCBMZWdhY3lQb2xpY3lWYWxpZGF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3B1Ymxpc2hfZHJhZnRfcmVxdWVzdCBpbXBvcnQgTGVnYWN5UHVibGlzaERyYWZ0UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wdWJsaXNoX3Jlc3VsdCBpbXBvcnQgTGVnYWN5UHVibGlzaFJlc3VsdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9zcmNfb3JfZGVzdF9hdHRyaWJ1dGVzX2lubmVyIGltcG9ydCBMZWdhY3lTcmNPckRlc3RBdHRyaWJ1dGVzSW5uZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5saW5rZWRfdG9rZW5zX2NvdW50IGltcG9ydCBMaW5rZWRUb2tlbnNDb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxpc3RfYXNzZXRzX3Jlc3BvbnNlIGltcG9ydCBMaXN0QXNzZXRzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5saXN0X2Jsb2NrY2hhaW5zX3Jlc3BvbnNlIGltcG9ydCBMaXN0QmxvY2tjaGFpbnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxpc3Rfb3duZWRfY29sbGVjdGlvbnNfcmVzcG9uc2UgaW1wb3J0IExpc3RPd25lZENvbGxlY3Rpb25zUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5saXN0X293bmVkX3Rva2Vuc19yZXNwb25zZSBpbXBvcnQgTGlzdE93bmVkVG9rZW5zUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sb2NhbF9iYW5rX3RyYW5zZmVyX2FmcmljYV9hZGRyZXNzIGltcG9ydCBMb2NhbEJhbmtUcmFuc2ZlckFmcmljYUFkZHJlc3MKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sb2NhbF9iYW5rX3RyYW5zZmVyX2FmcmljYV9kZXN0aW5hdGlvbiBpbXBvcnQgTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FEZXN0aW5hdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hbmlmZXN0IGltcG9ydCBNYW5pZmVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hbmlmZXN0X2Jhc2UgaW1wb3J0IE1hbmlmZXN0QmFzZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hbmlmZXN0X29yZGVyIGltcG9ydCBNYW5pZmVzdE9yZGVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubWFuaWZlc3Rfb3JkZXJfaW5mbyBpbXBvcnQgTWFuaWZlc3RPcmRlckluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tYW5pZmVzdF9xdW90ZSBpbXBvcnQgTWFuaWZlc3RRdW90ZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hbmlmZXN0X3F1b3RlX2luZm8gaW1wb3J0IE1hbmlmZXN0UXVvdGVJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubWFya2V0X2V4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHMgaW1wb3J0IE1hcmtldEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubWFya2V0X2V4ZWN1dGlvbl9yZXNwb25zZV9kZXRhaWxzIGltcG9ydCBNYXJrZXRFeGVjdXRpb25SZXNwb25zZURldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tYXJrZXRfcmVxdW90ZV9yZXF1ZXN0X2RldGFpbHMgaW1wb3J0IE1hcmtldFJlcXVvdGVSZXF1ZXN0RGV0YWlscwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hcmtldF9yZXF1b3RlX3R5cGVfZW51bSBpbXBvcnQgTWFya2V0UmVxdW90ZVR5cGVFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubWFya2V0X3R5cGVfZGV0YWlscyBpbXBvcnQgTWFya2V0VHlwZURldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tYXJrZXRfdHlwZV9lbnVtIGltcG9ydCBNYXJrZXRUeXBlRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1lZGlhX2VudGl0eV9yZXNwb25zZSBpbXBvcnQgTWVkaWFFbnRpdHlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1lcmdlX3N0YWtlX2FjY291bnRzX3JlcXVlc3QgaW1wb3J0IE1lcmdlU3Rha2VBY2NvdW50c1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tZXJnZV9zdGFrZV9hY2NvdW50c19yZXNwb25zZSBpbXBvcnQgTWVyZ2VTdGFrZUFjY291bnRzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tb2JpbGVfbW9uZXlfYWRkcmVzcyBpbXBvcnQgTW9iaWxlTW9uZXlBZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubW9iaWxlX21vbmV5X2Rlc3RpbmF0aW9uIGltcG9ydCBNb2JpbGVNb25leURlc3RpbmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubW9kaWZ5X3NpZ25pbmdfa2V5X2FnZW50X2lkX2R0byBpbXBvcnQgTW9kaWZ5U2lnbmluZ0tleUFnZW50SWREdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tb2RpZnlfc2lnbmluZ19rZXlfZHRvIGltcG9ydCBNb2RpZnlTaWduaW5nS2V5RHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubW9kaWZ5X3ZhbGlkYXRpb25fa2V5X2R0byBpbXBvcnQgTW9kaWZ5VmFsaWRhdGlvbktleUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1vbW9fcGF5bWVudF9pbmZvIGltcG9ydCBNb21vUGF5bWVudEluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tcGNfa2V5IGltcG9ydCBNcGNLZXkKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tdWx0aWNoYWluX2RlcGxveW1lbnRfbWV0YWRhdGEgaW1wb3J0IE11bHRpY2hhaW5EZXBsb3ltZW50TWV0YWRhdGEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5uZXR3b3JrX2NoYW5uZWwgaW1wb3J0IE5ldHdvcmtDaGFubmVsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19jb25uZWN0aW9uIGltcG9ydCBOZXR3b3JrQ29ubmVjdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfY29ubmVjdGlvbl9yZXNwb25zZSBpbXBvcnQgTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfY29ubmVjdGlvbl9yb3V0aW5nX3BvbGljeV92YWx1ZSBpbXBvcnQgTmV0d29ya0Nvbm5lY3Rpb25Sb3V0aW5nUG9saWN5VmFsdWUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5uZXR3b3JrX2Nvbm5lY3Rpb25fc3RhdHVzIGltcG9ydCBOZXR3b3JrQ29ubmVjdGlvblN0YXR1cwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfZmVlIGltcG9ydCBOZXR3b3JrRmVlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19pZCBpbXBvcnQgTmV0d29ya0lkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19pZF9yZXNwb25zZSBpbXBvcnQgTmV0d29ya0lkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5uZXR3b3JrX2lkX3JvdXRpbmdfcG9saWN5X3ZhbHVlIGltcG9ydCBOZXR3b3JrSWRSb3V0aW5nUG9saWN5VmFsdWUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5uZXR3b3JrX3JlY29yZCBpbXBvcnQgTmV0d29ya1JlY29yZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ld19hZGRyZXNzIGltcG9ydCBOZXdBZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubm9uZV9uZXR3b3JrX3JvdXRpbmdfZGVzdCBpbXBvcnQgTm9uZU5ldHdvcmtSb3V0aW5nRGVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vdF9mb3VuZF9leGNlcHRpb24gaW1wb3J0IE5vdEZvdW5kRXhjZXB0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubm90aWZpY2F0aW9uIGltcG9ydCBOb3RpZmljYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ub3RpZmljYXRpb25fYXR0ZW1wdCBpbXBvcnQgTm90aWZpY2F0aW9uQXR0ZW1wdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vdGlmaWNhdGlvbl9hdHRlbXB0c19wYWdpbmF0ZWRfcmVzcG9uc2UgaW1wb3J0IE5vdGlmaWNhdGlvbkF0dGVtcHRzUGFnaW5hdGVkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ub3RpZmljYXRpb25fcGFnaW5hdGVkX3Jlc3BvbnNlIGltcG9ydCBOb3RpZmljYXRpb25QYWdpbmF0ZWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vdGlmaWNhdGlvbl9zdGF0dXMgaW1wb3J0IE5vdGlmaWNhdGlvblN0YXR1cwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vdGlmaWNhdGlvbl93aXRoX2RhdGEgaW1wb3J0IE5vdGlmaWNhdGlvbldpdGhEYXRhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMub25jaGFpbl90cmFuc2FjdGlvbiBpbXBvcnQgT25jaGFpblRyYW5zYWN0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMub25jaGFpbl90cmFuc2FjdGlvbnNfcGFnZWRfcmVzcG9uc2UgaW1wb3J0IE9uY2hhaW5UcmFuc2FjdGlvbnNQYWdlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMub25lX3RpbWVfYWRkcmVzcyBpbXBvcnQgT25lVGltZUFkZHJlc3MKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5vbmVfdGltZV9hZGRyZXNzX2FjY291bnQgaW1wb3J0IE9uZVRpbWVBZGRyZXNzQWNjb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9uZV90aW1lX2FkZHJlc3NfcGVlcl90eXBlIGltcG9ydCBPbmVUaW1lQWRkcmVzc1BlZXJUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMub25lX3RpbWVfYWRkcmVzc19yZWZlcmVuY2UgaW1wb3J0IE9uZVRpbWVBZGRyZXNzUmVmZXJlbmNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMub3BlcmF0aW9uX2V4ZWN1dGlvbl9mYWlsdXJlIGltcG9ydCBPcGVyYXRpb25FeGVjdXRpb25GYWlsdXJlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMub3JkZXJfZGV0YWlscyBpbXBvcnQgT3JkZXJEZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMub3JkZXJfZXhlY3V0aW9uX3N0ZXAgaW1wb3J0IE9yZGVyRXhlY3V0aW9uU3RlcApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9yZGVyX3NpZGUgaW1wb3J0IE9yZGVyU2lkZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9yZGVyX3N0YXR1cyBpbXBvcnQgT3JkZXJTdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5vcmRlcl9zdW1tYXJ5IGltcG9ydCBPcmRlclN1bW1hcnkKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYWdpbmF0ZWRfYWRkcmVzc19yZXNwb25zZSBpbXBvcnQgUGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFnaW5hdGVkX2FkZHJlc3NfcmVzcG9uc2VfcGFnaW5nIGltcG9ydCBQYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2VQYWdpbmcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYWdpbmF0ZWRfYXNzZXRfd2FsbGV0X3Jlc3BvbnNlIGltcG9ydCBQYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFnaW5hdGVkX2Fzc2V0X3dhbGxldF9yZXNwb25zZV9wYWdpbmcgaW1wb3J0IFBhZ2luYXRlZEFzc2V0V2FsbGV0UmVzcG9uc2VQYWdpbmcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYWdpbmF0ZWRfYXNzZXRzX3Jlc3BvbnNlIGltcG9ydCBQYWdpbmF0ZWRBc3NldHNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhZ2luZyBpbXBvcnQgUGFnaW5nCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFpcl9hcGlfa2V5X3JlcXVlc3QgaW1wb3J0IFBhaXJBcGlLZXlSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFpcl9hcGlfa2V5X3Jlc3BvbnNlIGltcG9ydCBQYWlyQXBpS2V5UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXIgaW1wb3J0IFBhcmFtZXRlcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlcl93aXRoX3ZhbHVlIGltcG9ydCBQYXJhbWV0ZXJXaXRoVmFsdWUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXJ0aWNpcGFudF9yZWxhdGlvbnNoaXBfdHlwZSBpbXBvcnQgUGFydGljaXBhbnRSZWxhdGlvbnNoaXBUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFydGljaXBhbnRzX2lkZW50aWZpY2F0aW9uIGltcG9ydCBQYXJ0aWNpcGFudHNJZGVudGlmaWNhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheWVlX2FjY291bnQgaW1wb3J0IFBheWVlQWNjb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheWVlX2FjY291bnRfcmVzcG9uc2UgaW1wb3J0IFBheWVlQWNjb3VudFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5ZWVfYWNjb3VudF90eXBlIGltcG9ydCBQYXllZUFjY291bnRUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5aWRfYWRkcmVzcyBpbXBvcnQgUGF5aWRBZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5aWRfZGVzdGluYXRpb24gaW1wb3J0IFBheWlkRGVzdGluYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXlpZF9wYXltZW50X2luZm8gaW1wb3J0IFBheWlkUGF5bWVudEluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXltZW50X2FjY291bnQgaW1wb3J0IFBheW1lbnRBY2NvdW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5bWVudF9hY2NvdW50X3Jlc3BvbnNlIGltcG9ydCBQYXltZW50QWNjb3VudFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5bWVudF9hY2NvdW50X3R5cGUgaW1wb3J0IFBheW1lbnRBY2NvdW50VHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW1lbnRfaW5zdHJ1Y3Rpb25zIGltcG9ydCBQYXltZW50SW5zdHJ1Y3Rpb25zCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5bWVudF9pbnN0cnVjdGlvbnNfb25lX29mIGltcG9ydCBQYXltZW50SW5zdHJ1Y3Rpb25zT25lT2YKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXltZW50X3JlZGlyZWN0IGltcG9ydCBQYXltZW50UmVkaXJlY3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXlvdXRfaW5pdF9tZXRob2QgaW1wb3J0IFBheW91dEluaXRNZXRob2QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXlvdXRfaW5zdHJ1Y3Rpb24gaW1wb3J0IFBheW91dEluc3RydWN0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5b3V0X2luc3RydWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBQYXlvdXRJbnN0cnVjdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5b3V0X2luc3RydWN0aW9uX3N0YXRlIGltcG9ydCBQYXlvdXRJbnN0cnVjdGlvblN0YXRlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5b3V0X3Jlc3BvbnNlIGltcG9ydCBQYXlvdXRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW91dF9zdGF0ZSBpbXBvcnQgUGF5b3V0U3RhdGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXlvdXRfc3RhdHVzIGltcG9ydCBQYXlvdXRTdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wZWVyX2FkYXB0ZXJfaW5mbyBpbXBvcnQgUGVlckFkYXB0ZXJJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGVlcl90eXBlIGltcG9ydCBQZWVyVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBlcnNvbmFsX2VudGl0eV90eXBlX2VudW0gaW1wb3J0IFBlcnNvbmFsRW50aXR5VHlwZUVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wZXJzb25hbF9pZGVudGlmaWNhdGlvbiBpbXBvcnQgUGVyc29uYWxJZGVudGlmaWNhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBlcnNvbmFsX2lkZW50aWZpY2F0aW9uX2Z1bGxfbmFtZSBpbXBvcnQgUGVyc29uYWxJZGVudGlmaWNhdGlvbkZ1bGxOYW1lCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGVyc29uYWxfaWRlbnRpZmljYXRpb25fdHlwZSBpbXBvcnQgUGVyc29uYWxJZGVudGlmaWNhdGlvblR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5waXhfYWRkcmVzcyBpbXBvcnQgUGl4QWRkcmVzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBpeF9kZXN0aW5hdGlvbiBpbXBvcnQgUGl4RGVzdGluYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5waXhfcGF5bWVudF9pbmZvIGltcG9ydCBQaXhQYXltZW50SW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBsYXRmb3JtX2FjY291bnQgaW1wb3J0IFBsYXRmb3JtQWNjb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBsYXRmb3JtX3BlZXJfdHlwZSBpbXBvcnQgUGxhdGZvcm1QZWVyVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBsYXllcnMgaW1wb3J0IFBsYXllcnMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfYW5kX3ZhbGlkYXRpb25fcmVzcG9uc2UgaW1wb3J0IFBvbGljeUFuZFZhbGlkYXRpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9jaGVja19yZXN1bHQgaW1wb3J0IFBvbGljeUNoZWNrUmVzdWx0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X2N1cnJlbmN5IGltcG9ydCBQb2xpY3lDdXJyZW5jeQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9tZXRhZGF0YSBpbXBvcnQgUG9saWN5TWV0YWRhdGEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfb3BlcmF0b3IgaW1wb3J0IFBvbGljeU9wZXJhdG9yCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3Jlc3BvbnNlIGltcG9ydCBQb2xpY3lSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9ydWxlIGltcG9ydCBQb2xpY3lSdWxlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3J1bGVfY2hlY2tfcmVzdWx0IGltcG9ydCBQb2xpY3lSdWxlQ2hlY2tSZXN1bHQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfcnVsZV9lcnJvciBpbXBvcnQgUG9saWN5UnVsZUVycm9yCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3N0YXR1cyBpbXBvcnQgUG9saWN5U3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3RhZyBpbXBvcnQgUG9saWN5VGFnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3R5cGUgaW1wb3J0IFBvbGljeVR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfdmFsaWRhdGlvbiBpbXBvcnQgUG9saWN5VmFsaWRhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV92ZXJkaWN0X2FjdGlvbl9lbnVtIGltcG9ydCBQb2xpY3lWZXJkaWN0QWN0aW9uRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV92ZXJkaWN0X2FjdGlvbl9lbnVtMiBpbXBvcnQgUG9saWN5VmVyZGljdEFjdGlvbkVudW0yCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9zaXRpb24gaW1wb3J0IFBvc2l0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9zdGFsX2FkZHJlc3MgaW1wb3J0IFBvc3RhbEFkZHJlc3MKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wcmVfc2NyZWVuaW5nIGltcG9ydCBQcmVTY3JlZW5pbmcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wcmVmdW5kZWRfc2V0dGxlbWVudCBpbXBvcnQgUHJlZnVuZGVkU2V0dGxlbWVudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnByZWZ1bmRlZF9zZXR0bGVtZW50X3R5cGUgaW1wb3J0IFByZWZ1bmRlZFNldHRsZW1lbnRUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucHJvZ3JhbV9jYWxsX2NvbmZpZyBpbXBvcnQgUHJvZ3JhbUNhbGxDb25maWcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wcm92aWRlciBpbXBvcnQgUHJvdmlkZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wcm92aWRlcnNfbGlzdF9yZXNwb25zZSBpbXBvcnQgUHJvdmlkZXJzTGlzdFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucHVibGljX2tleV9pbmZvcm1hdGlvbiBpbXBvcnQgUHVibGljS2V5SW5mb3JtYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wdWJsaXNoX2RyYWZ0X3JlcXVlc3QgaW1wb3J0IFB1Ymxpc2hEcmFmdFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wdWJsaXNoX3Jlc3VsdCBpbXBvcnQgUHVibGlzaFJlc3VsdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnF1b3RlIGltcG9ydCBRdW90ZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnF1b3RlX2V4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHMgaW1wb3J0IFF1b3RlRXhlY3V0aW9uUmVxdWVzdERldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5xdW90ZV9leGVjdXRpb25fc3RlcCBpbXBvcnQgUXVvdGVFeGVjdXRpb25TdGVwCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucXVvdGVfZXhlY3V0aW9uX3R5cGVfZGV0YWlscyBpbXBvcnQgUXVvdGVFeGVjdXRpb25UeXBlRGV0YWlscwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnF1b3RlX2V4ZWN1dGlvbl93aXRoX3JlcXVvdGVfcmVxdWVzdF9kZXRhaWxzIGltcG9ydCBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVxdWVzdERldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5xdW90ZV9leGVjdXRpb25fd2l0aF9yZXF1b3RlX3Jlc3BvbnNlX2RldGFpbHMgaW1wb3J0IFF1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXNwb25zZURldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5xdW90ZV9mYWlsdXJlIGltcG9ydCBRdW90ZUZhaWx1cmUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5xdW90ZV9wcm9wZXJ0aWVzX2RldGFpbHMgaW1wb3J0IFF1b3RlUHJvcGVydGllc0RldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5xdW90ZV90eXBlX2VudW0gaW1wb3J0IFF1b3RlVHlwZUVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5xdW90ZXNfcmVzcG9uc2UgaW1wb3J0IFF1b3Rlc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVfcXVvdGVfZGV0YWlscyBpbXBvcnQgUmVRdW90ZURldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZV9xdW90ZV9kZXRhaWxzX3JlX3F1b3RlIGltcG9ydCBSZVF1b3RlRGV0YWlsc1JlUXVvdGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZWFkX2FiaV9mdW5jdGlvbiBpbXBvcnQgUmVhZEFiaUZ1bmN0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVhZF9jYWxsX2Z1bmN0aW9uX2R0byBpbXBvcnQgUmVhZENhbGxGdW5jdGlvbkR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlYWRfY2FsbF9mdW5jdGlvbl9kdG9fYWJpX2Z1bmN0aW9uIGltcG9ydCBSZWFkQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZWNpcGllbnRfaGFuZGxlIGltcG9ydCBSZWNpcGllbnRIYW5kbGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZWRlZW1fZnVuZHNfdG9fbGlua2VkX2RkYV9yZXNwb25zZSBpbXBvcnQgUmVkZWVtRnVuZHNUb0xpbmtlZEREQVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVnaXN0ZXJfbmV3X2Fzc2V0X3JlcXVlc3QgaW1wb3J0IFJlZ2lzdGVyTmV3QXNzZXRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVpc3N1ZV9tdWx0aWNoYWluX3Rva2VuX3JlcXVlc3QgaW1wb3J0IFJlaXNzdWVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVsYXRlZF9yZXF1ZXN0IGltcG9ydCBSZWxhdGVkUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbGF0ZWRfdHJhbnNhY3Rpb24gaW1wb3J0IFJlbGF0ZWRUcmFuc2FjdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbW92ZV9jb2xsYXRlcmFsX3JlcXVlc3RfYm9keSBpbXBvcnQgUmVtb3ZlQ29sbGF0ZXJhbFJlcXVlc3RCb2R5CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVtb3ZlX2xheWVyX3plcm9fYWRhcHRlcl9mYWlsZWRfcmVzdWx0IGltcG9ydCBSZW1vdmVMYXllclplcm9BZGFwdGVyRmFpbGVkUmVzdWx0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVtb3ZlX2xheWVyX3plcm9fYWRhcHRlcnNfcmVxdWVzdCBpbXBvcnQgUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVtb3ZlX2xheWVyX3plcm9fYWRhcHRlcnNfcmVzcG9uc2UgaW1wb3J0IFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZW1vdmVfbGF5ZXJfemVyb19wZWVyc19yZXF1ZXN0IGltcG9ydCBSZW1vdmVMYXllclplcm9QZWVyc1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZW1vdmVfbGF5ZXJfemVyb19wZWVyc19yZXNwb25zZSBpbXBvcnQgUmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbmFtZV9jb25uZWN0ZWRfYWNjb3VudF9yZXF1ZXN0IGltcG9ydCBSZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbmFtZV9jb25uZWN0ZWRfYWNjb3VudF9yZXNwb25zZSBpbXBvcnQgUmVuYW1lQ29ubmVjdGVkQWNjb3VudFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVuYW1lX2Nvc2lnbmVyIGltcG9ydCBSZW5hbWVDb3NpZ25lcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbmFtZV92YXVsdF9hY2NvdW50X3Jlc3BvbnNlIGltcG9ydCBSZW5hbWVWYXVsdEFjY291bnRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19qb2Jfc3RhdHVzX3Jlc3BvbnNlIGltcG9ydCBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zSm9iU3RhdHVzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZXNlbmRfZmFpbGVkX25vdGlmaWNhdGlvbnNfcmVxdWVzdCBpbXBvcnQgUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZXNlbmRfZmFpbGVkX25vdGlmaWNhdGlvbnNfcmVzcG9uc2UgaW1wb3J0IFJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc2VuZF9ub3RpZmljYXRpb25zX2J5X3Jlc291cmNlX2lkX3JlcXVlc3QgaW1wb3J0IFJlc2VuZE5vdGlmaWNhdGlvbnNCeVJlc291cmNlSWRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVzZW5kX3RyYW5zYWN0aW9uX3dlYmhvb2tzX3JlcXVlc3QgaW1wb3J0IFJlc2VuZFRyYW5zYWN0aW9uV2ViaG9va3NSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVzZW5kX3dlYmhvb2tzX2J5X3RyYW5zYWN0aW9uX2lkX3Jlc3BvbnNlIGltcG9ydCBSZXNlbmRXZWJob29rc0J5VHJhbnNhY3Rpb25JZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVzZW5kX3dlYmhvb2tzX3Jlc3BvbnNlIGltcG9ydCBSZXNlbmRXZWJob29rc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVzcG9uZF90b19jb25uZWN0aW9uX3JlcXVlc3QgaW1wb3J0IFJlc3BvbmRUb0Nvbm5lY3Rpb25SZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmV0cnlfcmVxdW90ZV9yZXF1ZXN0X2RldGFpbHMgaW1wb3J0IFJldHJ5UmVxdW90ZVJlcXVlc3REZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmV0cnlfcmVxdW90ZV90eXBlX2VudW0gaW1wb3J0IFJldHJ5UmVxdW90ZVR5cGVFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmV3YXJkX2luZm8gaW1wb3J0IFJld2FyZEluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZXdhcmRzX2luZm8gaW1wb3J0IFJld2FyZHNJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucm9sZV9kZXRhaWxzIGltcG9ydCBSb2xlRGV0YWlscwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJvbGVfZ3JhbnRlZSBpbXBvcnQgUm9sZUdyYW50ZWUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXBhX2FkZHJlc3MgaW1wb3J0IFNFUEFBZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2VwYV9kZXN0aW5hdGlvbiBpbXBvcnQgU0VQQURlc3RpbmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc29sX2FjY291bnQgaW1wb3J0IFNPTEFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zb2xfYWNjb3VudF93aXRoX3ZhbHVlIGltcG9ydCBTT0xBY2NvdW50V2l0aFZhbHVlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NvcGVfaXRlbSBpbXBvcnQgU2NvcGVJdGVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX2FsZXJ0X2V4cG9zdXJlX3R5cGVfZW51bSBpbXBvcnQgU2NyZWVuaW5nQWxlcnRFeHBvc3VyZVR5cGVFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX2FtbF9hbGVydCBpbXBvcnQgU2NyZWVuaW5nQW1sQWxlcnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfYW1sX21hdGNoZWRfcnVsZSBpbXBvcnQgU2NyZWVuaW5nQW1sTWF0Y2hlZFJ1bGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfYW1sX3Jlc3VsdCBpbXBvcnQgU2NyZWVuaW5nQW1sUmVzdWx0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb25zX3JlcXVlc3QgaW1wb3J0IFNjcmVlbmluZ0NvbmZpZ3VyYXRpb25zUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19tZXRhZGF0YV9jb25maWcgaW1wb3J0IFNjcmVlbmluZ01ldGFkYXRhQ29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX29wZXJhdGlvbl9leGVjdXRpb24gaW1wb3J0IFNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dCBpbXBvcnQgU2NyZWVuaW5nT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX29wZXJhdGlvbl9mYWlsdXJlIGltcG9ydCBTY3JlZW5pbmdPcGVyYXRpb25GYWlsdXJlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX29wZXJhdGlvbl90eXBlIGltcG9ydCBTY3JlZW5pbmdPcGVyYXRpb25UeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3BvbGljeV9yZXNwb25zZSBpbXBvcnQgU2NyZWVuaW5nUG9saWN5UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfcHJvdmlkZXJfcnVsZXNfY29uZmlndXJhdGlvbl9yZXNwb25zZSBpbXBvcnQgU2NyZWVuaW5nUHJvdmlkZXJSdWxlc0NvbmZpZ3VyYXRpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cl9saW5rX2Ftb3VudCBpbXBvcnQgU2NyZWVuaW5nVFJMaW5rQW1vdW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyX2xpbmtfbWlzc2luZ190cm1fZGVjaXNpb24gaW1wb3J0IFNjcmVlbmluZ1RSTGlua01pc3NpbmdUcm1EZWNpc2lvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cl9saW5rX21pc3NpbmdfdHJtX3J1bGUgaW1wb3J0IFNjcmVlbmluZ1RSTGlua01pc3NpbmdUcm1SdWxlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyX2xpbmtfcG9zdF9zY3JlZW5pbmdfcnVsZSBpbXBvcnQgU2NyZWVuaW5nVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdHJfbGlua19wcmVzY3JlZW5pbmdfcnVsZSBpbXBvcnQgU2NyZWVuaW5nVFJMaW5rUHJlc2NyZWVuaW5nUnVsZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cl9saW5rX3J1bGVfYmFzZSBpbXBvcnQgU2NyZWVuaW5nVFJMaW5rUnVsZUJhc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdHJhdmVsX3J1bGVfbWF0Y2hlZF9ydWxlIGltcG9ydCBTY3JlZW5pbmdUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdHJhdmVsX3J1bGVfcHJlc2NyZWVuaW5nX3J1bGUgaW1wb3J0IFNjcmVlbmluZ1RyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyYXZlbF9ydWxlX3Jlc3VsdCBpbXBvcnQgU2NyZWVuaW5nVHJhdmVsUnVsZVJlc3VsdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ191cGRhdGVfY29uZmlndXJhdGlvbnMgaW1wb3J0IFNjcmVlbmluZ1VwZGF0ZUNvbmZpZ3VyYXRpb25zCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3ZhbGlkYXRpb25fZmFpbHVyZSBpbXBvcnQgU2NyZWVuaW5nVmFsaWRhdGlvbkZhaWx1cmUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdmVyZGljdCBpbXBvcnQgU2NyZWVuaW5nVmVyZGljdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ192ZXJkaWN0X2VudW0gaW1wb3J0IFNjcmVlbmluZ1ZlcmRpY3RFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3ZlcmRpY3RfbWF0Y2hlZF9ydWxlIGltcG9ydCBTY3JlZW5pbmdWZXJkaWN0TWF0Y2hlZFJ1bGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZWFyY2hfbmV0d29ya19pZHNfcmVzcG9uc2UgaW1wb3J0IFNlYXJjaE5ldHdvcmtJZHNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNlcGFfcGF5bWVudF9pbmZvIGltcG9ydCBTZXBhUGF5bWVudEluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXNzaW9uX2R0byBpbXBvcnQgU2Vzc2lvbkRUTwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNlc3Npb25fbWV0YWRhdGEgaW1wb3J0IFNlc3Npb25NZXRhZGF0YQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9hZG1pbl9xdW9ydW1fdGhyZXNob2xkX3JlcXVlc3QgaW1wb3J0IFNldEFkbWluUXVvcnVtVGhyZXNob2xkUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9hZG1pbl9xdW9ydW1fdGhyZXNob2xkX3Jlc3BvbnNlIGltcG9ydCBTZXRBZG1pblF1b3J1bVRocmVzaG9sZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2Fzc2V0X3ByaWNlX3JlcXVlc3QgaW1wb3J0IFNldEFzc2V0UHJpY2VSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2F1dG9fZnVlbF9yZXF1ZXN0IGltcG9ydCBTZXRBdXRvRnVlbFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfY29uZmlybWF0aW9uc190aHJlc2hvbGRfcmVxdWVzdCBpbXBvcnQgU2V0Q29uZmlybWF0aW9uc1RocmVzaG9sZFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfY29uZmlybWF0aW9uc190aHJlc2hvbGRfcmVzcG9uc2UgaW1wb3J0IFNldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9jdXN0b21lcl9yZWZfaWRfZm9yX2FkZHJlc3NfcmVxdWVzdCBpbXBvcnQgU2V0Q3VzdG9tZXJSZWZJZEZvckFkZHJlc3NSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2N1c3RvbWVyX3JlZl9pZF9yZXF1ZXN0IGltcG9ydCBTZXRDdXN0b21lclJlZklkUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9sYXllcl96ZXJvX2R2bl9jb25maWdfcmVxdWVzdCBpbXBvcnQgU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9sYXllcl96ZXJvX2R2bl9jb25maWdfcmVzcG9uc2UgaW1wb3J0IFNldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2xheWVyX3plcm9fcGVlcnNfcmVxdWVzdCBpbXBvcnQgU2V0TGF5ZXJaZXJvUGVlcnNSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X2xheWVyX3plcm9fcGVlcnNfcmVzcG9uc2UgaW1wb3J0IFNldExheWVyWmVyb1BlZXJzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfbmV0d29ya19pZF9kaXNjb3ZlcmFiaWxpdHlfcmVxdWVzdCBpbXBvcnQgU2V0TmV0d29ya0lkRGlzY292ZXJhYmlsaXR5UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9uZXR3b3JrX2lkX25hbWVfcmVxdWVzdCBpbXBvcnQgU2V0TmV0d29ya0lkTmFtZVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfbmV0d29ya19pZF9yZXNwb25zZSBpbXBvcnQgU2V0TmV0d29ya0lkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfbmV0d29ya19pZF9yb3V0aW5nX3BvbGljeV9yZXF1ZXN0IGltcG9ydCBTZXROZXR3b3JrSWRSb3V0aW5nUG9saWN5UmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9vdGFfc3RhdHVzX3JlcXVlc3QgaW1wb3J0IFNldE90YVN0YXR1c1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfb3RhX3N0YXR1c19yZXNwb25zZSBpbXBvcnQgU2V0T3RhU3RhdHVzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfb3RhX3N0YXR1c19yZXNwb25zZV9vbmVfb2YgaW1wb3J0IFNldE90YVN0YXR1c1Jlc3BvbnNlT25lT2YKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfcm91dGluZ19wb2xpY3lfcmVxdWVzdCBpbXBvcnQgU2V0Um91dGluZ1BvbGljeVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXRfcm91dGluZ19wb2xpY3lfcmVzcG9uc2UgaW1wb3J0IFNldFJvdXRpbmdQb2xpY3lSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldHRsZW1lbnQgaW1wb3J0IFNldHRsZW1lbnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXR0bGVtZW50X3JlcXVlc3RfYm9keSBpbXBvcnQgU2V0dGxlbWVudFJlcXVlc3RCb2R5CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0dGxlbWVudF9yZXNwb25zZSBpbXBvcnQgU2V0dGxlbWVudFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0dGxlbWVudF9zb3VyY2VfYWNjb3VudCBpbXBvcnQgU2V0dGxlbWVudFNvdXJjZUFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXR0bGVtZW50X3R5cGVfZW51bSBpbXBvcnQgU2V0dGxlbWVudFR5cGVFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2lkZSBpbXBvcnQgU2lkZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNpZ25lZF9tZXNzYWdlIGltcG9ydCBTaWduZWRNZXNzYWdlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2lnbmVkX21lc3NhZ2Vfc2lnbmF0dXJlIGltcG9ydCBTaWduZWRNZXNzYWdlU2lnbmF0dXJlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2lnbmluZ19rZXlfZHRvIGltcG9ydCBTaWduaW5nS2V5RHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfYXBwcm92ZV90ZXJtIGltcG9ydCBTbWFydFRyYW5zZmVyQXBwcm92ZVRlcm0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9iYWRfcmVxdWVzdF9yZXNwb25zZSBpbXBvcnQgU21hcnRUcmFuc2ZlckJhZFJlcXVlc3RSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2NvaW5fc3RhdGlzdGljIGltcG9ydCBTbWFydFRyYW5zZmVyQ29pblN0YXRpc3RpYwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2NyZWF0ZV90aWNrZXQgaW1wb3J0IFNtYXJ0VHJhbnNmZXJDcmVhdGVUaWNrZXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9jcmVhdGVfdGlja2V0X3Rlcm0gaW1wb3J0IFNtYXJ0VHJhbnNmZXJDcmVhdGVUaWNrZXRUZXJtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfZm9yYmlkZGVuX3Jlc3BvbnNlIGltcG9ydCBTbWFydFRyYW5zZmVyRm9yYmlkZGVuUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9mdW5kX2R2cF90aWNrZXQgaW1wb3J0IFNtYXJ0VHJhbnNmZXJGdW5kRHZwVGlja2V0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfZnVuZF90ZXJtIGltcG9ydCBTbWFydFRyYW5zZmVyRnVuZFRlcm0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9tYW51YWxseV9mdW5kX3Rlcm0gaW1wb3J0IFNtYXJ0VHJhbnNmZXJNYW51YWxseUZ1bmRUZXJtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfbm90X2ZvdW5kX3Jlc3BvbnNlIGltcG9ydCBTbWFydFRyYW5zZmVyTm90Rm91bmRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXhwaXJhdGlvbiBpbXBvcnQgU21hcnRUcmFuc2ZlclNldFRpY2tldEV4cGlyYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9zZXRfdGlja2V0X2V4dGVybmFsX2lkIGltcG9ydCBTbWFydFRyYW5zZmVyU2V0VGlja2V0RXh0ZXJuYWxJZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3NldF91c2VyX2dyb3VwcyBpbXBvcnQgU21hcnRUcmFuc2ZlclNldFVzZXJHcm91cHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9zdGF0aXN0aWMgaW1wb3J0IFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9zdGF0aXN0aWNfaW5mbG93IGltcG9ydCBTbWFydFRyYW5zZmVyU3RhdGlzdGljSW5mbG93CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfc3RhdGlzdGljX291dGZsb3cgaW1wb3J0IFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWNPdXRmbG93CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfc3VibWl0X3RpY2tldCBpbXBvcnQgU21hcnRUcmFuc2ZlclN1Ym1pdFRpY2tldApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldCBpbXBvcnQgU21hcnRUcmFuc2ZlclRpY2tldApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldF9maWx0ZXJlZF9yZXNwb25zZSBpbXBvcnQgU21hcnRUcmFuc2ZlclRpY2tldEZpbHRlcmVkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl90aWNrZXRfcmVzcG9uc2UgaW1wb3J0IFNtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldF90ZXJtIGltcG9ydCBTbWFydFRyYW5zZmVyVGlja2V0VGVybQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldF90ZXJtX3Jlc3BvbnNlIGltcG9ydCBTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfdXBkYXRlX3RpY2tldF90ZXJtIGltcG9ydCBTbWFydFRyYW5zZmVyVXBkYXRlVGlja2V0VGVybQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3VzZXJfZ3JvdXBzIGltcG9ydCBTbWFydFRyYW5zZmVyVXNlckdyb3Vwcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3VzZXJfZ3JvdXBzX3Jlc3BvbnNlIGltcG9ydCBTbWFydFRyYW5zZmVyVXNlckdyb3Vwc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc29sX3BhcmFtZXRlciBpbXBvcnQgU29sUGFyYW1ldGVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc29sX3BhcmFtZXRlcl93aXRoX3ZhbHVlIGltcG9ydCBTb2xQYXJhbWV0ZXJXaXRoVmFsdWUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zb2xhbmFfYmxvY2tjaGFpbl9kYXRhIGltcG9ydCBTb2xhbmFCbG9ja2NoYWluRGF0YQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvbGFuYV9jb25maWcgaW1wb3J0IFNvbGFuYUNvbmZpZwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvbGFuYV9pbnN0cnVjdGlvbiBpbXBvcnQgU29sYW5hSW5zdHJ1Y3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zb2xhbmFfaW5zdHJ1Y3Rpb25fd2l0aF92YWx1ZSBpbXBvcnQgU29sYW5hSW5zdHJ1Y3Rpb25XaXRoVmFsdWUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zb2xhbmFfc2ltcGxlX2NyZWF0ZV9wYXJhbXMgaW1wb3J0IFNvbGFuYVNpbXBsZUNyZWF0ZVBhcmFtcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvdXJjZV9jb25maWcgaW1wb3J0IFNvdXJjZUNvbmZpZwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvdXJjZV90cmFuc2Zlcl9wZWVyX3BhdGggaW1wb3J0IFNvdXJjZVRyYW5zZmVyUGVlclBhdGgKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zb3VyY2VfdHJhbnNmZXJfcGVlcl9wYXRoX3Jlc3BvbnNlIGltcG9ydCBTb3VyY2VUcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zcGFtX293bmVyc2hpcF9yZXNwb25zZSBpbXBvcnQgU3BhbU93bmVyc2hpcFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3BhbV90b2tlbl9yZXNwb25zZSBpbXBvcnQgU3BhbVRva2VuUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zcGVpX2FkZHJlc3MgaW1wb3J0IFNwZWlBZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3BlaV9hZHZhbmNlZF9wYXltZW50X2luZm8gaW1wb3J0IFNwZWlBZHZhbmNlZFBheW1lbnRJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3BlaV9iYXNpY19wYXltZW50X2luZm8gaW1wb3J0IFNwZWlCYXNpY1BheW1lbnRJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3BlaV9kZXN0aW5hdGlvbiBpbXBvcnQgU3BlaURlc3RpbmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3BsaXRfcmVxdWVzdCBpbXBvcnQgU3BsaXRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3BsaXRfcmVzcG9uc2UgaW1wb3J0IFNwbGl0UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zdF9ldGhfYmxvY2tjaGFpbl9kYXRhIGltcG9ydCBTdEV0aEJsb2NrY2hhaW5EYXRhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3Rha2VfcmVxdWVzdCBpbXBvcnQgU3Rha2VSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3Rha2VfcmVzcG9uc2UgaW1wb3J0IFN0YWtlUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zdGFraW5nX3Bvc2l0aW9uc19wYWdpbmF0ZWRfcmVzcG9uc2UgaW1wb3J0IFN0YWtpbmdQb3NpdGlvbnNQYWdpbmF0ZWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN0YWtpbmdfcHJvdmlkZXIgaW1wb3J0IFN0YWtpbmdQcm92aWRlcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN0YXR1cyBpbXBvcnQgU3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3RlbGxhcl9yaXBwbGVfY3JlYXRlX3BhcmFtc19kdG8gaW1wb3J0IFN0ZWxsYXJSaXBwbGVDcmVhdGVQYXJhbXNEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zdXBwb3J0ZWRfYmxvY2tfY2hhaW5zX3Jlc3BvbnNlIGltcG9ydCBTdXBwb3J0ZWRCbG9ja0NoYWluc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3VwcG9ydGVkX2Jsb2NrY2hhaW4gaW1wb3J0IFN1cHBvcnRlZEJsb2NrY2hhaW4KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zd2lmdF9hZGRyZXNzIGltcG9ydCBTd2lmdEFkZHJlc3MKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zd2lmdF9kZXN0aW5hdGlvbiBpbXBvcnQgU3dpZnREZXN0aW5hdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN5c3RlbV9tZXNzYWdlX2luZm8gaW1wb3J0IFN5c3RlbU1lc3NhZ2VJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hcGlfcGFnZWRfcmVzcG9uc2UgaW1wb3J0IFRSTGlua0FQSVBhZ2VkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Ftb3VudCBpbXBvcnQgVFJMaW5rQW1vdW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hbW91bnQyIGltcG9ydCBUUkxpbmtBbW91bnQyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hbW91bnRfcmFuZ2UgaW1wb3J0IFRSTGlua0Ftb3VudFJhbmdlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hc3Nlc3NfdHJhdmVsX3J1bGVfcmVxdWVzdCBpbXBvcnQgVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Fzc2Vzc190cmF2ZWxfcnVsZV9yZXNwb25zZSBpbXBvcnQgVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hc3Nlc3NtZW50X2RlY2lzaW9uIGltcG9ydCBUUkxpbmtBc3Nlc3NtZW50RGVjaXNpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Fzc2V0IGltcG9ydCBUUkxpbmtBc3NldApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXNzZXRfZGF0YSBpbXBvcnQgVFJMaW5rQXNzZXREYXRhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hc3NldF9mb3JtYXQgaW1wb3J0IFRSTGlua0Fzc2V0Rm9ybWF0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hc3NldHNfbGlzdF9wYWdlZF9yZXNwb25zZSBpbXBvcnQgVFJMaW5rQXNzZXRzTGlzdFBhZ2VkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2NhbmNlbF90cm1fcmVxdWVzdCBpbXBvcnQgVFJMaW5rQ2FuY2VsVHJtUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY29ubmVjdF9pbnRlZ3JhdGlvbl9yZXF1ZXN0IGltcG9ydCBUUkxpbmtDb25uZWN0SW50ZWdyYXRpb25SZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19jcmVhdGVfY3VzdG9tZXJfcmVxdWVzdCBpbXBvcnQgVFJMaW5rQ3JlYXRlQ3VzdG9tZXJSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19jcmVhdGVfaW50ZWdyYXRpb25fcmVxdWVzdCBpbXBvcnQgVFJMaW5rQ3JlYXRlSW50ZWdyYXRpb25SZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19jcmVhdGVfdHJtX3JlcXVlc3QgaW1wb3J0IFRSTGlua0NyZWF0ZVRybVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2N1cnJlbmN5IGltcG9ydCBUUkxpbmtDdXJyZW5jeQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY3VzdG9tZXJfaW50ZWdyYXRpb25fcmVzcG9uc2UgaW1wb3J0IFRSTGlua0N1c3RvbWVySW50ZWdyYXRpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY3VzdG9tZXJfcmVzcG9uc2UgaW1wb3J0IFRSTGlua0N1c3RvbWVyUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Rlc3RpbmF0aW9uX3RyYW5zZmVyX3BlZXJfcGF0aCBpbXBvcnQgVFJMaW5rRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19kaXNjb3ZlcmFibGVfc3RhdHVzIGltcG9ydCBUUkxpbmtEaXNjb3ZlcmFibGVTdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2ZpYXRfdmFsdWUgaW1wb3J0IFRSTGlua0ZpYXRWYWx1ZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfZ2VvZ3JhcGhpY19hZGRyZXNzX3JlcXVlc3QgaW1wb3J0IFRSTGlua0dlb2dyYXBoaWNBZGRyZXNzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfZ2V0X3N1cHBvcnRlZF9hc3NldF9yZXNwb25zZSBpbXBvcnQgVFJMaW5rR2V0U3VwcG9ydGVkQXNzZXRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfaXZtcyBpbXBvcnQgVFJMaW5rSXZtcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfaXZtc19yZXNwb25zZSBpbXBvcnQgVFJMaW5rSXZtc1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19qd2tfcHVibGljX2tleSBpbXBvcnQgVFJMaW5rSndrUHVibGljS2V5CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19taXNzaW5nX3RybV9hY3Rpb24gaW1wb3J0IFRSTGlua01pc3NpbmdUcm1BY3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX21pc3NpbmdfdHJtX2FjdGlvbjIgaW1wb3J0IFRSTGlua01pc3NpbmdUcm1BY3Rpb24yCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19taXNzaW5nX3RybV9hY3Rpb25fZW51bSBpbXBvcnQgVFJMaW5rTWlzc2luZ1RybUFjdGlvbkVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX21pc3NpbmdfdHJtX2RlY2lzaW9uIGltcG9ydCBUUkxpbmtNaXNzaW5nVHJtRGVjaXNpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX21pc3NpbmdfdHJtX3J1bGUgaW1wb3J0IFRSTGlua01pc3NpbmdUcm1SdWxlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19taXNzaW5nX3RybV9ydWxlMiBpbXBvcnQgVFJMaW5rTWlzc2luZ1RybVJ1bGUyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19vbmVfdGltZV9hZGRyZXNzIGltcG9ydCBUUkxpbmtPbmVUaW1lQWRkcmVzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcGFnaW5nIGltcG9ydCBUUkxpbmtQYWdpbmcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3BhcnRuZXJfcmVzcG9uc2UgaW1wb3J0IFRSTGlua1BhcnRuZXJSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcG9saWN5X3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtQb2xpY3lSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcG9zdF9zY3JlZW5pbmdfYWN0aW9uIGltcG9ydCBUUkxpbmtQb3N0U2NyZWVuaW5nQWN0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wb3N0X3NjcmVlbmluZ19ydWxlIGltcG9ydCBUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcG9zdF9zY3JlZW5pbmdfcnVsZTIgaW1wb3J0IFRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlMgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJlX3NjcmVlbmluZ19hY3Rpb24gaW1wb3J0IFRSTGlua1ByZVNjcmVlbmluZ0FjdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJlX3NjcmVlbmluZ19hY3Rpb24yIGltcG9ydCBUUkxpbmtQcmVTY3JlZW5pbmdBY3Rpb24yCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wcmVfc2NyZWVuaW5nX2FjdGlvbl9lbnVtIGltcG9ydCBUUkxpbmtQcmVTY3JlZW5pbmdBY3Rpb25FbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wcmVfc2NyZWVuaW5nX3J1bGUgaW1wb3J0IFRSTGlua1ByZVNjcmVlbmluZ1J1bGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3ByZV9zY3JlZW5pbmdfcnVsZTIgaW1wb3J0IFRSTGlua1ByZVNjcmVlbmluZ1J1bGUyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wcm92aWRlcl9kYXRhIGltcG9ydCBUUkxpbmtQcm92aWRlckRhdGEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3Byb3ZpZGVyX3Jlc3VsdCBpbXBvcnQgVFJMaW5rUHJvdmlkZXJSZXN1bHQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3Byb3ZpZGVyX3Jlc3VsdF93aXRoX3J1bGUgaW1wb3J0IFRSTGlua1Byb3ZpZGVyUmVzdWx0V2l0aFJ1bGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3Byb3ZpZGVyX3Jlc3VsdF93aXRoX3J1bGUyIGltcG9ydCBUUkxpbmtQcm92aWRlclJlc3VsdFdpdGhSdWxlMgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHVibGljX2Fzc2V0X2luZm8gaW1wb3J0IFRSTGlua1B1YmxpY0Fzc2V0SW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHVibGljX2tleV9yZXNwb25zZSBpbXBvcnQgVFJMaW5rUHVibGljS2V5UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3JlZGlyZWN0X3RybV9yZXF1ZXN0IGltcG9ydCBUUkxpbmtSZWRpcmVjdFRybVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3JlZ2lzdHJhdGlvbl9yZXN1bHQgaW1wb3J0IFRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcmVnaXN0cmF0aW9uX3Jlc3VsdF9mdWxsX3BheWxvYWQgaW1wb3J0IFRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19yZWdpc3RyYXRpb25fc3RhdHVzIGltcG9ydCBUUkxpbmtSZWdpc3RyYXRpb25TdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3JlZ2lzdHJhdGlvbl9zdGF0dXNfZW51bSBpbXBvcnQgVFJMaW5rUmVnaXN0cmF0aW9uU3RhdHVzRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcmVzdWx0IGltcG9ydCBUUkxpbmtSZXN1bHQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3Jlc3VsdF9mdWxsX3BheWxvYWQgaW1wb3J0IFRSTGlua1Jlc3VsdEZ1bGxQYXlsb2FkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19ydWxlX2Jhc2UgaW1wb3J0IFRSTGlua1J1bGVCYXNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19zZXRfZGVzdGluYXRpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXF1ZXN0IGltcG9ydCBUUkxpbmtTZXREZXN0aW5hdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19zZXRfZGVzdGluYXRpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZF9yZXNwb25zZSBpbXBvcnQgVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3NldF90cmFuc2FjdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3JlcXVlc3QgaW1wb3J0IFRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3NldF90cmFuc2FjdGlvbl90cmF2ZWxfcnVsZV9tZXNzYWdlX2lkX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfc291cmNlX3RyYW5zZmVyX3BlZXJfcGF0aCBpbXBvcnQgVFJMaW5rU291cmNlVHJhbnNmZXJQZWVyUGF0aApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdGVzdF9jb25uZWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtUZXN0Q29ubmVjdGlvblJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua190aHJlc2hvbGRzIGltcG9ydCBUUkxpbmtUaHJlc2hvbGRzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua190cmFuc2FjdGlvbl9kaXJlY3Rpb24gaW1wb3J0IFRSTGlua1RyYW5zYWN0aW9uRGlyZWN0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua190cmFuc2Zlcl9wZWVyX3BhdGggaW1wb3J0IFRSTGlua1RyYW5zZmVyUGVlclBhdGgKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3RybV9kaXJlY3Rpb24gaW1wb3J0IFRSTGlua1RybURpcmVjdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdHJtX2luZm9fcmVzcG9uc2UgaW1wb3J0IFRSTGlua1RybUluZm9SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdHJtX3NjcmVlbmluZ19zdGF0dXMgaW1wb3J0IFRSTGlua1RybVNjcmVlbmluZ1N0YXR1cwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdHJtX3NjcmVlbmluZ19zdGF0dXNfZW51bSBpbXBvcnQgVFJMaW5rVHJtU2NyZWVuaW5nU3RhdHVzRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdHJtX3N0YXR1cyBpbXBvcnQgVFJMaW5rVHJtU3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua190eG5faW5mbyBpbXBvcnQgVFJMaW5rVHhuSW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdXBkYXRlX2N1c3RvbWVyX3JlcXVlc3QgaW1wb3J0IFRSTGlua1VwZGF0ZUN1c3RvbWVyUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdmFzcF9kdG8gaW1wb3J0IFRSTGlua1Zhc3BEdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3Zhc3BfZ2VvZ3JhcGhpY19hZGRyZXNzIGltcG9ydCBUUkxpbmtWYXNwR2VvZ3JhcGhpY0FkZHJlc3MKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3Zhc3BfbGlzdF9kdG8gaW1wb3J0IFRSTGlua1Zhc3BMaXN0RHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua192YXNwX25hdGlvbmFsX2lkZW50aWZpY2F0aW9uIGltcG9ydCBUUkxpbmtWYXNwTmF0aW9uYWxJZGVudGlmaWNhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdmVyZGljdCBpbXBvcnQgVFJMaW5rVmVyZGljdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdmVyZGljdF9lbnVtIGltcG9ydCBUUkxpbmtWZXJkaWN0RW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRhZyBpbXBvcnQgVGFnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudGFnX2F0dGFjaG1lbnRfb3BlcmF0aW9uX2FjdGlvbiBpbXBvcnQgVGFnQXR0YWNobWVudE9wZXJhdGlvbkFjdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRhZ3NfcGFnZWRfcmVzcG9uc2UgaW1wb3J0IFRhZ3NQYWdlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudGVtcGxhdGVzX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgVGVtcGxhdGVzUGFnaW5hdGVkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50aGlyZF9wYXJ0eV9yb3V0aW5nIGltcG9ydCBUaGlyZFBhcnR5Um91dGluZwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRpbWVfcGVyaW9kX2NvbmZpZyBpbXBvcnQgVGltZVBlcmlvZENvbmZpZwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRpbWVfcGVyaW9kX21hdGNoX3R5cGUgaW1wb3J0IFRpbWVQZXJpb2RNYXRjaFR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b19jb2xsYXRlcmFsX3RyYW5zYWN0aW9uIGltcG9ydCBUb0NvbGxhdGVyYWxUcmFuc2FjdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRvX2V4Y2hhbmdlX3RyYW5zYWN0aW9uIGltcG9ydCBUb0V4Y2hhbmdlVHJhbnNhY3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b2tlbl9jb2xsZWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBUb2tlbkNvbGxlY3Rpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2NvbnRyYWN0X3N1bW1hcnlfcmVzcG9uc2UgaW1wb3J0IFRva2VuQ29udHJhY3RTdW1tYXJ5UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b2tlbl9pbmZvX25vdF9mb3VuZF9lcnJvcl9yZXNwb25zZSBpbXBvcnQgVG9rZW5JbmZvTm90Rm91bmRFcnJvclJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fbGlua19kdG8gaW1wb3J0IFRva2VuTGlua0R0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2xpbmtfZHRvX3Rva2VuX21ldGFkYXRhIGltcG9ydCBUb2tlbkxpbmtEdG9Ub2tlbk1ldGFkYXRhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fbGlua19leGlzdHNfaHR0cF9lcnJvciBpbXBvcnQgVG9rZW5MaW5rRXhpc3RzSHR0cEVycm9yCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fbGlua19ub3RfbXVsdGljaGFpbl9jb21wYXRpYmxlX2h0dHBfZXJyb3IgaW1wb3J0IFRva2VuTGlua05vdE11bHRpY2hhaW5Db21wYXRpYmxlSHR0cEVycm9yCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fbGlua19yZXF1ZXN0X2R0byBpbXBvcnQgVG9rZW5MaW5rUmVxdWVzdER0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX293bmVyc2hpcF9yZXNwb25zZSBpbXBvcnQgVG9rZW5Pd25lcnNoaXBSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX293bmVyc2hpcF9zcGFtX3VwZGF0ZV9wYXlsb2FkIGltcG9ydCBUb2tlbk93bmVyc2hpcFNwYW1VcGRhdGVQYXlsb2FkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fb3duZXJzaGlwX3N0YXR1c191cGRhdGVfcGF5bG9hZCBpbXBvcnQgVG9rZW5Pd25lcnNoaXBTdGF0dXNVcGRhdGVQYXlsb2FkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fcmVzcG9uc2UgaW1wb3J0IFRva2VuUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b2tlbnNfcGFnaW5hdGVkX3Jlc3BvbnNlIGltcG9ydCBUb2tlbnNQYWdpbmF0ZWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRvdGFsX3N1cHBseV9pdGVtX2R0byBpbXBvcnQgVG90YWxTdXBwbHlJdGVtRHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG90YWxfc3VwcGx5X3BhZ2VkX3Jlc3BvbnNlIGltcG9ydCBUb3RhbFN1cHBseVBhZ2VkUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFkaW5nX2FjY291bnRfdHlwZSBpbXBvcnQgVHJhZGluZ0FjY291bnRUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhZGluZ19lcnJvcl9zY2hlbWEgaW1wb3J0IFRyYWRpbmdFcnJvclNjaGVtYQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYWRpbmdfcHJvdmlkZXIgaW1wb3J0IFRyYWRpbmdQcm92aWRlcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYWRpbmdfcHJvdmlkZXJfZGV0YWlscyBpbXBvcnQgVHJhZGluZ1Byb3ZpZGVyRGV0YWlscwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uIGltcG9ydCBUcmFuc2FjdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX2RpcmVjdGlvbiBpbXBvcnQgVHJhbnNhY3Rpb25EaXJlY3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9mZWUgaW1wb3J0IFRyYW5zYWN0aW9uRmVlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fb3BlcmF0aW9uIGltcG9ydCBUcmFuc2FjdGlvbk9wZXJhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX29wZXJhdGlvbl9lbnVtIGltcG9ydCBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZWNlaXB0X3Jlc3BvbnNlIGltcG9ydCBUcmFuc2FjdGlvblJlY2VpcHRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlcXVlc3QgaW1wb3J0IFRyYW5zYWN0aW9uUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlcXVlc3RfYW1vdW50IGltcG9ydCBUcmFuc2FjdGlvblJlcXVlc3RBbW91bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZXF1ZXN0X2Rlc3RpbmF0aW9uIGltcG9ydCBUcmFuc2FjdGlvblJlcXVlc3REZXN0aW5hdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlcXVlc3RfZmVlIGltcG9ydCBUcmFuc2FjdGlvblJlcXVlc3RGZWUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZXF1ZXN0X2dhc19saW1pdCBpbXBvcnQgVHJhbnNhY3Rpb25SZXF1ZXN0R2FzTGltaXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZXF1ZXN0X2dhc19wcmljZSBpbXBvcnQgVHJhbnNhY3Rpb25SZXF1ZXN0R2FzUHJpY2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZXF1ZXN0X25ldHdvcmtfZmVlIGltcG9ydCBUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrRmVlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVxdWVzdF9uZXR3b3JrX3N0YWtpbmcgaW1wb3J0IFRyYW5zYWN0aW9uUmVxdWVzdE5ldHdvcmtTdGFraW5nCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVxdWVzdF9wcmlvcml0eV9mZWUgaW1wb3J0IFRyYW5zYWN0aW9uUmVxdWVzdFByaW9yaXR5RmVlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVzcG9uc2UgaW1wb3J0IFRyYW5zYWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZXNwb25zZV9jb250cmFjdF9jYWxsX2RlY29kZWRfZGF0YSBpbXBvcnQgVHJhbnNhY3Rpb25SZXNwb25zZUNvbnRyYWN0Q2FsbERlY29kZWREYXRhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVzcG9uc2VfZGVzdGluYXRpb24gaW1wb3J0IFRyYW5zYWN0aW9uUmVzcG9uc2VEZXN0aW5hdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX2NvbmZpZ19vcGVyYXRpb24gaW1wb3J0IFRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMgaW1wb3J0IFRyYW5zZmVyT3BlcmF0aW9uQ29uZmlnUGFyYW1zCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX2V4ZWN1dGlvbiBpbXBvcnQgVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dCBpbXBvcnQgVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtcyBpbXBvcnQgVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtc19leGVjdXRpb25fcGFyYW1zIGltcG9ydCBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9mYWlsdXJlIGltcG9ydCBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fZmFpbHVyZV9kYXRhIGltcG9ydCBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmVEYXRhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX3ByZXZpZXcgaW1wb3J0IFRyYW5zZmVyT3BlcmF0aW9uUHJldmlldwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9wcmV2aWV3X291dHB1dCBpbXBvcnQgVHJhbnNmZXJPcGVyYXRpb25QcmV2aWV3T3V0cHV0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX3R5cGUgaW1wb3J0IFRyYW5zZmVyT3BlcmF0aW9uVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3BlZXJfcGF0aF9zdWJfdHlwZSBpbXBvcnQgVHJhbnNmZXJQZWVyUGF0aFN1YlR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9wZWVyX3BhdGhfdHlwZSBpbXBvcnQgVHJhbnNmZXJQZWVyUGF0aFR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9wZWVyX3N1Yl90eXBlX2VudW0gaW1wb3J0IFRyYW5zZmVyUGVlclN1YlR5cGVFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfcGVlcl90eXBlX2VudW0gaW1wb3J0IFRyYW5zZmVyUGVlclR5cGVFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfcmFpbCBpbXBvcnQgVHJhbnNmZXJSYWlsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfcmVjZWlwdCBpbXBvcnQgVHJhbnNmZXJSZWNlaXB0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfdmFsaWRhdGlvbl9mYWlsdXJlIGltcG9ydCBUcmFuc2ZlclZhbGlkYXRpb25GYWlsdXJlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfYWN0aW9uX2VudW0gaW1wb3J0IFRyYXZlbFJ1bGVBY3Rpb25FbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfYWRkcmVzcyBpbXBvcnQgVHJhdmVsUnVsZUFkZHJlc3MKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9jcmVhdGVfdHJhbnNhY3Rpb25fcmVxdWVzdCBpbXBvcnQgVHJhdmVsUnVsZUNyZWF0ZVRyYW5zYWN0aW9uUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2RhdGVfYW5kX3BsYWNlX29mX2JpcnRoIGltcG9ydCBUcmF2ZWxSdWxlRGF0ZUFuZFBsYWNlT2ZCaXJ0aApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2RpcmVjdGlvbl9lbnVtIGltcG9ydCBUcmF2ZWxSdWxlRGlyZWN0aW9uRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2dlb2dyYXBoaWNfYWRkcmVzcyBpbXBvcnQgVHJhdmVsUnVsZUdlb2dyYXBoaWNBZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfZ2V0X2FsbF92YXNwc19yZXNwb25zZSBpbXBvcnQgVHJhdmVsUnVsZUdldEFsbFZBU1BzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9pc3N1ZXIgaW1wb3J0IFRyYXZlbFJ1bGVJc3N1ZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9pc3N1ZXJzIGltcG9ydCBUcmF2ZWxSdWxlSXNzdWVycwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2xlZ2FsX3BlcnNvbiBpbXBvcnQgVHJhdmVsUnVsZUxlZ2FsUGVyc29uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbGVnYWxfcGVyc29uX25hbWVfaWRlbnRpZmllciBpbXBvcnQgVHJhdmVsUnVsZUxlZ2FsUGVyc29uTmFtZUlkZW50aWZpZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9tYXRjaGVkX3J1bGUgaW1wb3J0IFRyYXZlbFJ1bGVNYXRjaGVkUnVsZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdGlvbmFsX2lkZW50aWZpY2F0aW9uIGltcG9ydCBUcmF2ZWxSdWxlTmF0aW9uYWxJZGVudGlmaWNhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyIGltcG9ydCBUcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9wZXJzb24gaW1wb3J0IFRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyIGltcG9ydCBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfb3duZXJzaGlwX3Byb29mIGltcG9ydCBUcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2YKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9wZXJzb24gaW1wb3J0IFRyYXZlbFJ1bGVQZXJzb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9waWlfaXZtcyBpbXBvcnQgVHJhdmVsUnVsZVBpaUlWTVMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9wb2xpY3lfcnVsZV9yZXNwb25zZSBpbXBvcnQgVHJhdmVsUnVsZVBvbGljeVJ1bGVSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ByZXNjcmVlbmluZ19ydWxlIGltcG9ydCBUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3Jlc3VsdCBpbXBvcnQgVHJhdmVsUnVsZVJlc3VsdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3N0YXR1c19lbnVtIGltcG9ydCBUcmF2ZWxSdWxlU3RhdHVzRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3RyYW5zYWN0aW9uX2Jsb2NrY2hhaW5faW5mbyBpbXBvcnQgVHJhdmVsUnVsZVRyYW5zYWN0aW9uQmxvY2tjaGFpbkluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV91cGRhdGVfdmFzcF9kZXRhaWxzIGltcG9ydCBUcmF2ZWxSdWxlVXBkYXRlVkFTUERldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YXNwIGltcG9ydCBUcmF2ZWxSdWxlVkFTUApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2RhdGVfYW5kX3BsYWNlX29mX2JpcnRoIGltcG9ydCBUcmF2ZWxSdWxlVmFsaWRhdGVEYXRlQW5kUGxhY2VPZkJpcnRoCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfZnVsbF90cmFuc2FjdGlvbl9yZXF1ZXN0IGltcG9ydCBUcmF2ZWxSdWxlVmFsaWRhdGVGdWxsVHJhbnNhY3Rpb25SZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfZ2VvZ3JhcGhpY19hZGRyZXNzIGltcG9ydCBUcmF2ZWxSdWxlVmFsaWRhdGVHZW9ncmFwaGljQWRkcmVzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2xlZ2FsX3BlcnNvbiBpbXBvcnQgVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9sZWdhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyIGltcG9ydCBUcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0aW9uYWxfaWRlbnRpZmljYXRpb24gaW1wb3J0IFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdGlvbmFsSWRlbnRpZmljYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllciBpbXBvcnQgVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbE5hbWVJZGVudGlmaWVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9wZXJzb24gaW1wb3J0IFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX3BlcnNvbl9uYW1lX2lkZW50aWZpZXIgaW1wb3J0IFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX3BlcnNvbiBpbXBvcnQgVHJhdmVsUnVsZVZhbGlkYXRlUGVyc29uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfcGlpX2l2bXMgaW1wb3J0IFRyYXZlbFJ1bGVWYWxpZGF0ZVBpaUlWTVMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV90cmFuc2FjdGlvbl9yZXF1ZXN0IGltcG9ydCBUcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV90cmFuc2FjdGlvbl9yZXNwb25zZSBpbXBvcnQgVHJhdmVsUnVsZVZhbGlkYXRlVHJhbnNhY3Rpb25SZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3Zhc3BfZm9yX3ZhdWx0IGltcG9ydCBUcmF2ZWxSdWxlVmFzcEZvclZhdWx0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmVyZGljdF9lbnVtIGltcG9ydCBUcmF2ZWxSdWxlVmVyZGljdEVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cnVzdF9wcm9vZl9vZl9hZGRyZXNzX2NyZWF0ZV9yZXNwb25zZSBpbXBvcnQgVHJ1c3RQcm9vZk9mQWRkcmVzc0NyZWF0ZVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJ1c3RfcHJvb2Zfb2ZfYWRkcmVzc19yZXF1ZXN0IGltcG9ydCBUcnVzdFByb29mT2ZBZGRyZXNzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRydXN0X3Byb29mX29mX2FkZHJlc3NfcmVzcG9uc2UgaW1wb3J0IFRydXN0UHJvb2ZPZkFkZHJlc3NSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnR4X2xvZyBpbXBvcnQgVHhMb2cKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50eXBlZF9tZXNzYWdlX3RyYW5zYWN0aW9uX3N0YXR1c19lbnVtIGltcG9ydCBUeXBlZE1lc3NhZ2VUcmFuc2FjdGlvblN0YXR1c0VudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51c193aXJlX2FkZHJlc3MgaW1wb3J0IFVTV2lyZUFkZHJlc3MKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51c193aXJlX2Rlc3RpbmF0aW9uIGltcG9ydCBVU1dpcmVEZXN0aW5hdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVuZnJlZXplX3RyYW5zYWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBVbmZyZWV6ZVRyYW5zYWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51bm1hbmFnZWRfd2FsbGV0IGltcG9ydCBVbm1hbmFnZWRXYWxsZXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51bnNwZW50X2lucHV0IGltcG9ydCBVbnNwZW50SW5wdXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51bnNwZW50X2lucHV0c19yZXNwb25zZSBpbXBvcnQgVW5zcGVudElucHV0c1Jlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudW5zdGFrZV9yZXF1ZXN0IGltcG9ydCBVbnN0YWtlUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV9hc3NldF91c2VyX21ldGFkYXRhX3JlcXVlc3QgaW1wb3J0IFVwZGF0ZUFzc2V0VXNlck1ldGFkYXRhUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV9jYWxsYmFja19oYW5kbGVyX3JlcXVlc3QgaW1wb3J0IFVwZGF0ZUNhbGxiYWNrSGFuZGxlclJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51cGRhdGVfY2FsbGJhY2tfaGFuZGxlcl9yZXNwb25zZSBpbXBvcnQgVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51cGRhdGVfZHJhZnRfcmVxdWVzdCBpbXBvcnQgVXBkYXRlRHJhZnRSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXBkYXRlX3RhZ19yZXF1ZXN0IGltcG9ydCBVcGRhdGVUYWdSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXBkYXRlX3Rva2VuX293bmVyc2hpcF9zdGF0dXNfZHRvIGltcG9ydCBVcGRhdGVUb2tlbk93bmVyc2hpcFN0YXR1c0R0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3NfcmVxdWVzdCBpbXBvcnQgVXBkYXRlVmF1bHRBY2NvdW50QXNzZXRBZGRyZXNzUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV92YXVsdF9hY2NvdW50X3JlcXVlc3QgaW1wb3J0IFVwZGF0ZVZhdWx0QWNjb3VudFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51cGRhdGVfd2ViaG9va19yZXF1ZXN0IGltcG9ydCBVcGRhdGVXZWJob29rUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzX3dpcmVfcGF5bWVudF9pbmZvIGltcG9ydCBVc1dpcmVQYXltZW50SW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfZ3JvdXBfY3JlYXRlX3JlcXVlc3QgaW1wb3J0IFVzZXJHcm91cENyZWF0ZVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51c2VyX2dyb3VwX2NyZWF0ZV9yZXNwb25zZSBpbXBvcnQgVXNlckdyb3VwQ3JlYXRlUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51c2VyX2dyb3VwX3Jlc3BvbnNlIGltcG9ydCBVc2VyR3JvdXBSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfZ3JvdXBfdXBkYXRlX3JlcXVlc3QgaW1wb3J0IFVzZXJHcm91cFVwZGF0ZVJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51c2VyX3Jlc3BvbnNlIGltcG9ydCBVc2VyUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51c2VyX3JvbGUgaW1wb3J0IFVzZXJSb2xlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXNlcl9zdGF0dXMgaW1wb3J0IFVzZXJTdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51c2VyX3R5cGUgaW1wb3J0IFVzZXJUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmFsaWRhdGVfYWRkcmVzc19yZXNwb25zZSBpbXBvcnQgVmFsaWRhdGVBZGRyZXNzUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YWxpZGF0ZV9sYXllcl96ZXJvX2NoYW5uZWxfcmVzcG9uc2UgaW1wb3J0IFZhbGlkYXRlTGF5ZXJaZXJvQ2hhbm5lbFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmFsaWRhdGlvbl9rZXlfZHRvIGltcG9ydCBWYWxpZGF0aW9uS2V5RHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmFsaWRhdG9yIGltcG9ydCBWYWxpZGF0b3IKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hY2NvdW50IGltcG9ydCBWYXVsdEFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hY2NvdW50X3RhZ19hdHRhY2htZW50X29wZXJhdGlvbiBpbXBvcnQgVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudE9wZXJhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnRfdGFnX2F0dGFjaG1lbnRfcGVuZGluZ19vcGVyYXRpb24gaW1wb3J0IFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRQZW5kaW5nT3BlcmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmF1bHRfYWNjb3VudF90YWdfYXR0YWNobWVudF9yZWplY3RlZF9vcGVyYXRpb24gaW1wb3J0IFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRSZWplY3RlZE9wZXJhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnRzX3BhZ2VkX3Jlc3BvbnNlIGltcG9ydCBWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnRzX3BhZ2VkX3Jlc3BvbnNlX3BhZ2luZyBpbXBvcnQgVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2VQYWdpbmcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hY2NvdW50c190YWdfYXR0YWNobWVudF9vcGVyYXRpb25zX3JlcXVlc3QgaW1wb3J0IFZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1JlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hY2NvdW50c190YWdfYXR0YWNobWVudF9vcGVyYXRpb25zX3Jlc3BvbnNlIGltcG9ydCBWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjdGlvbl9zdGF0dXMgaW1wb3J0IFZhdWx0QWN0aW9uU3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmF1bHRfYXNzZXQgaW1wb3J0IFZhdWx0QXNzZXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF93YWxsZXRfYWRkcmVzcyBpbXBvcnQgVmF1bHRXYWxsZXRBZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmVuZG9yX2R0byBpbXBvcnQgVmVuZG9yRHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmVyZGljdF9jb25maWcgaW1wb3J0IFZlcmRpY3RDb25maWcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52ZXJzaW9uX3N1bW1hcnkgaW1wb3J0IFZlcnNpb25TdW1tYXJ5CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud2FsbGV0X2Fzc2V0IGltcG9ydCBXYWxsZXRBc3NldApmcm9tIGZpcmVibG9ja3MubW9kZWxzLndhbGxldF9hc3NldF9hZGRpdGlvbmFsX2luZm8gaW1wb3J0IFdhbGxldEFzc2V0QWRkaXRpb25hbEluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53ZWJob29rIGltcG9ydCBXZWJob29rCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud2ViaG9va19ldmVudCBpbXBvcnQgV2ViaG9va0V2ZW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud2ViaG9va19tZXRyaWMgaW1wb3J0IFdlYmhvb2tNZXRyaWMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53ZWJob29rX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgV2ViaG9va1BhZ2luYXRlZFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud2l0aGRyYXdfcmVxdWVzdCBpbXBvcnQgV2l0aGRyYXdSZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud29ya2Zsb3dfY29uZmlnX3N0YXR1cyBpbXBvcnQgV29ya2Zsb3dDb25maWdTdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53b3JrZmxvd19jb25maWd1cmF0aW9uX2lkIGltcG9ydCBXb3JrZmxvd0NvbmZpZ3VyYXRpb25JZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLndvcmtmbG93X2V4ZWN1dGlvbl9vcGVyYXRpb24gaW1wb3J0IFdvcmtmbG93RXhlY3V0aW9uT3BlcmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud29ya3NwYWNlIGltcG9ydCBXb3Jrc3BhY2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53cml0ZV9hYmlfZnVuY3Rpb24gaW1wb3J0IFdyaXRlQWJpRnVuY3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53cml0ZV9jYWxsX2Z1bmN0aW9uX2R0byBpbXBvcnQgV3JpdGVDYWxsRnVuY3Rpb25EdG8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53cml0ZV9jYWxsX2Z1bmN0aW9uX2R0b19hYmlfZnVuY3Rpb24gaW1wb3J0IFdyaXRlQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy53cml0ZV9jYWxsX2Z1bmN0aW9uX3Jlc3BvbnNlX2R0byBpbXBvcnQgV3JpdGVDYWxsRnVuY3Rpb25SZXNwb25zZUR0bwo= \ No newline at end of file diff --git a/fireblocks/models/aba_payment_info.py b/fireblocks/models/aba_payment_info.py index beed947a..9a0a5dce 100644 --- a/fireblocks/models/aba_payment_info.py +++ b/fireblocks/models/aba_payment_info.py @@ -1,108 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class AbaPaymentInfo(BaseModel): - """ - ABA payment information for US bank transfers - """ # noqa: E501 - account_holder_given_name: StrictStr = Field(description="The given name (first name) of the account holder", alias="accountHolderGivenName") - account_holder_surname: Optional[StrictStr] = Field(default=None, description="The surname (last name) of the account holder", alias="accountHolderSurname") - account_holder_city: StrictStr = Field(description="The city where the account holder resides", alias="accountHolderCity") - account_holder_country: StrictStr = Field(description="The country where the account holder resides (ISO 3166-1 alpha-2 code)", alias="accountHolderCountry") - account_holder_address1: StrictStr = Field(description="The primary address line of the account holder", alias="accountHolderAddress1") - account_holder_address2: Optional[StrictStr] = Field(default=None, description="The secondary address line of the account holder (optional)", alias="accountHolderAddress2") - account_holder_district: Optional[StrictStr] = Field(default=None, description="The district or region where the account holder resides", alias="accountHolderDistrict") - account_holder_postal_code: StrictStr = Field(description="The postal code of the account holder's address", alias="accountHolderPostalCode") - aba_routing_number: StrictStr = Field(description="The ABA routing number for the bank", alias="abaRoutingNumber") - aba_account_number: StrictStr = Field(description="The account number at the bank", alias="abaAccountNumber") - aba_country: StrictStr = Field(description="The country for the ABA transfer (ISO 3166-1 alpha-2 code)", alias="abaCountry") - __properties: ClassVar[List[str]] = ["accountHolderGivenName", "accountHolderSurname", "accountHolderCity", "accountHolderCountry", "accountHolderAddress1", "accountHolderAddress2", "accountHolderDistrict", "accountHolderPostalCode", "abaRoutingNumber", "abaAccountNumber", "abaCountry"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AbaPaymentInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AbaPaymentInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountHolderGivenName": obj.get("accountHolderGivenName"), - "accountHolderSurname": obj.get("accountHolderSurname"), - "accountHolderCity": obj.get("accountHolderCity"), - "accountHolderCountry": obj.get("accountHolderCountry"), - "accountHolderAddress1": obj.get("accountHolderAddress1"), - "accountHolderAddress2": obj.get("accountHolderAddress2"), - "accountHolderDistrict": obj.get("accountHolderDistrict"), - "accountHolderPostalCode": obj.get("accountHolderPostalCode"), - "abaRoutingNumber": obj.get("abaRoutingNumber"), - "abaAccountNumber": obj.get("abaAccountNumber"), - "abaCountry": obj.get("abaCountry") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBYmFQYXltZW50SW5mbyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBQkEgcGF5bWVudCBpbmZvcm1hdGlvbiBmb3IgVVMgYmFuayB0cmFuc2ZlcnMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFjY291bnRfaG9sZGVyX2dpdmVuX25hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZ2l2ZW4gbmFtZSAoZmlyc3QgbmFtZSkgb2YgdGhlIGFjY291bnQgaG9sZGVyIiwgYWxpYXM9ImFjY291bnRIb2xkZXJHaXZlbk5hbWUiKQogICAgYWNjb3VudF9ob2xkZXJfc3VybmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBzdXJuYW1lIChsYXN0IG5hbWUpIG9mIHRoZSBhY2NvdW50IGhvbGRlciIsIGFsaWFzPSJhY2NvdW50SG9sZGVyU3VybmFtZSIpCiAgICBhY2NvdW50X2hvbGRlcl9jaXR5OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNpdHkgd2hlcmUgdGhlIGFjY291bnQgaG9sZGVyIHJlc2lkZXMiLCBhbGlhcz0iYWNjb3VudEhvbGRlckNpdHkiKQogICAgYWNjb3VudF9ob2xkZXJfY291bnRyeTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBjb3VudHJ5IHdoZXJlIHRoZSBhY2NvdW50IGhvbGRlciByZXNpZGVzIChJU08gMzE2Ni0xIGFscGhhLTIgY29kZSkiLCBhbGlhcz0iYWNjb3VudEhvbGRlckNvdW50cnkiKQogICAgYWNjb3VudF9ob2xkZXJfYWRkcmVzczE6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgcHJpbWFyeSBhZGRyZXNzIGxpbmUgb2YgdGhlIGFjY291bnQgaG9sZGVyIiwgYWxpYXM9ImFjY291bnRIb2xkZXJBZGRyZXNzMSIpCiAgICBhY2NvdW50X2hvbGRlcl9hZGRyZXNzMjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBzZWNvbmRhcnkgYWRkcmVzcyBsaW5lIG9mIHRoZSBhY2NvdW50IGhvbGRlciAob3B0aW9uYWwpIiwgYWxpYXM9ImFjY291bnRIb2xkZXJBZGRyZXNzMiIpCiAgICBhY2NvdW50X2hvbGRlcl9kaXN0cmljdDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBkaXN0cmljdCBvciByZWdpb24gd2hlcmUgdGhlIGFjY291bnQgaG9sZGVyIHJlc2lkZXMiLCBhbGlhcz0iYWNjb3VudEhvbGRlckRpc3RyaWN0IikKICAgIGFjY291bnRfaG9sZGVyX3Bvc3RhbF9jb2RlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHBvc3RhbCBjb2RlIG9mIHRoZSBhY2NvdW50IGhvbGRlcidzIGFkZHJlc3MiLCBhbGlhcz0iYWNjb3VudEhvbGRlclBvc3RhbENvZGUiKQogICAgYWJhX3JvdXRpbmdfbnVtYmVyOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIEFCQSByb3V0aW5nIG51bWJlciBmb3IgdGhlIGJhbmsiLCBhbGlhcz0iYWJhUm91dGluZ051bWJlciIpCiAgICBhYmFfYWNjb3VudF9udW1iZXI6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYWNjb3VudCBudW1iZXIgYXQgdGhlIGJhbmsiLCBhbGlhcz0iYWJhQWNjb3VudE51bWJlciIpCiAgICBhYmFfY291bnRyeTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBjb3VudHJ5IGZvciB0aGUgQUJBIHRyYW5zZmVyIChJU08gMzE2Ni0xIGFscGhhLTIgY29kZSkiLCBhbGlhcz0iYWJhQ291bnRyeSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFjY291bnRIb2xkZXJHaXZlbk5hbWUiLCAiYWNjb3VudEhvbGRlclN1cm5hbWUiLCAiYWNjb3VudEhvbGRlckNpdHkiLCAiYWNjb3VudEhvbGRlckNvdW50cnkiLCAiYWNjb3VudEhvbGRlckFkZHJlc3MxIiwgImFjY291bnRIb2xkZXJBZGRyZXNzMiIsICJhY2NvdW50SG9sZGVyRGlzdHJpY3QiLCAiYWNjb3VudEhvbGRlclBvc3RhbENvZGUiLCAiYWJhUm91dGluZ051bWJlciIsICJhYmFBY2NvdW50TnVtYmVyIiwgImFiYUNvdW50cnkiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFiYVBheW1lbnRJbmZvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFiYVBheW1lbnRJbmZvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFjY291bnRIb2xkZXJHaXZlbk5hbWUiOiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyR2l2ZW5OYW1lIiksCiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyU3VybmFtZSI6IG9iai5nZXQoImFjY291bnRIb2xkZXJTdXJuYW1lIiksCiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyQ2l0eSI6IG9iai5nZXQoImFjY291bnRIb2xkZXJDaXR5IiksCiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyQ291bnRyeSI6IG9iai5nZXQoImFjY291bnRIb2xkZXJDb3VudHJ5IiksCiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyQWRkcmVzczEiOiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyQWRkcmVzczEiKSwKICAgICAgICAgICAgImFjY291bnRIb2xkZXJBZGRyZXNzMiI6IG9iai5nZXQoImFjY291bnRIb2xkZXJBZGRyZXNzMiIpLAogICAgICAgICAgICAiYWNjb3VudEhvbGRlckRpc3RyaWN0Ijogb2JqLmdldCgiYWNjb3VudEhvbGRlckRpc3RyaWN0IiksCiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyUG9zdGFsQ29kZSI6IG9iai5nZXQoImFjY291bnRIb2xkZXJQb3N0YWxDb2RlIiksCiAgICAgICAgICAgICJhYmFSb3V0aW5nTnVtYmVyIjogb2JqLmdldCgiYWJhUm91dGluZ051bWJlciIpLAogICAgICAgICAgICAiYWJhQWNjb3VudE51bWJlciI6IG9iai5nZXQoImFiYUFjY291bnROdW1iZXIiKSwKICAgICAgICAgICAgImFiYUNvdW50cnkiOiBvYmouZ2V0KCJhYmFDb3VudHJ5IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/abi_function.py b/fireblocks/models/abi_function.py index ebae3dad..9e2bbe5f 100644 --- a/fireblocks/models/abi_function.py +++ b/fireblocks/models/abi_function.py @@ -1,130 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.parameter import Parameter -from typing import Optional, Set -from typing_extensions import Self - -class AbiFunction(BaseModel): - """ - AbiFunction - """ # noqa: E501 - name: Optional[StrictStr] = Field(default=None, description="The name of the contract function as it appears in the ABI") - state_mutability: Optional[StrictStr] = Field(default=None, description="The state mutability of the contract function as it appears in the ABI", alias="stateMutability") - type: StrictStr = Field(description="The type of the function") - inputs: Optional[List[Parameter]] = Field(default=None, description="The parameters that this function/constructor posses") - outputs: Optional[List[Parameter]] = Field(default=None, description="The parameters that this 'read' function returns") - description: Optional[StrictStr] = Field(default=None, description="The documentation of this function (if has any)") - __properties: ClassVar[List[str]] = ["name", "stateMutability", "type", "inputs", "outputs", "description"] - - @field_validator('state_mutability') - def state_mutability_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['pure', 'view', 'nonpayable', 'payable']): - raise ValueError("must be one of enum values ('pure', 'view', 'nonpayable', 'payable')") - return value - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['constructor', 'function', 'error', 'event', 'receive', 'fallback']): - raise ValueError("must be one of enum values ('constructor', 'function', 'error', 'event', 'receive', 'fallback')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AbiFunction from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in inputs (list) - _items = [] - if self.inputs: - for _item_inputs in self.inputs: - if _item_inputs: - _items.append(_item_inputs.to_dict()) - _dict['inputs'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in outputs (list) - _items = [] - if self.outputs: - for _item_outputs in self.outputs: - if _item_outputs: - _items.append(_item_outputs.to_dict()) - _dict['outputs'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AbiFunction from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name"), - "stateMutability": obj.get("stateMutability"), - "type": obj.get("type"), - "inputs": [Parameter.from_dict(_item) for _item in obj["inputs"]] if obj.get("inputs") is not None else None, - "outputs": [Parameter.from_dict(_item) for _item in obj["outputs"]] if obj.get("outputs") is not None else None, - "description": obj.get("description") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyIGltcG9ydCBQYXJhbWV0ZXIKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQWJpRnVuY3Rpb24oQmFzZU1vZGVsKToKICAgICIiIgogICAgQWJpRnVuY3Rpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG5hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgbmFtZSBvZiB0aGUgY29udHJhY3QgZnVuY3Rpb24gYXMgaXQgYXBwZWFycyBpbiB0aGUgQUJJIikKICAgIHN0YXRlX211dGFiaWxpdHk6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgc3RhdGUgbXV0YWJpbGl0eSBvZiB0aGUgY29udHJhY3QgZnVuY3Rpb24gYXMgaXQgYXBwZWFycyBpbiB0aGUgQUJJIiwgYWxpYXM9InN0YXRlTXV0YWJpbGl0eSIpCiAgICB0eXBlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHR5cGUgb2YgdGhlIGZ1bmN0aW9uIikKICAgIGlucHV0czogT3B0aW9uYWxbTGlzdFtQYXJhbWV0ZXJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBwYXJhbWV0ZXJzIHRoYXQgdGhpcyBmdW5jdGlvbi9jb25zdHJ1Y3RvciBwb3NzZXMiKQogICAgb3V0cHV0czogT3B0aW9uYWxbTGlzdFtQYXJhbWV0ZXJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBwYXJhbWV0ZXJzIHRoYXQgdGhpcyAncmVhZCcgZnVuY3Rpb24gcmV0dXJucyIpCiAgICBkZXNjcmlwdGlvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBkb2N1bWVudGF0aW9uIG9mIHRoaXMgZnVuY3Rpb24gKGlmIGhhcyBhbnkpIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibmFtZSIsICJzdGF0ZU11dGFiaWxpdHkiLCAidHlwZSIsICJpbnB1dHMiLCAib3V0cHV0cyIsICJkZXNjcmlwdGlvbiJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignc3RhdGVfbXV0YWJpbGl0eScpCiAgICBkZWYgc3RhdGVfbXV0YWJpbGl0eV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsncHVyZScsICd2aWV3JywgJ25vbnBheWFibGUnLCAncGF5YWJsZSddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdwdXJlJywgJ3ZpZXcnLCAnbm9ucGF5YWJsZScsICdwYXlhYmxlJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3R5cGUnKQogICAgZGVmIHR5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnY29uc3RydWN0b3InLCAnZnVuY3Rpb24nLCAnZXJyb3InLCAnZXZlbnQnLCAncmVjZWl2ZScsICdmYWxsYmFjayddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdjb25zdHJ1Y3RvcicsICdmdW5jdGlvbicsICdlcnJvcicsICdldmVudCcsICdyZWNlaXZlJywgJ2ZhbGxiYWNrJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFiaUZ1bmN0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGlucHV0cyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuaW5wdXRzOgogICAgICAgICAgICBmb3IgX2l0ZW1faW5wdXRzIGluIHNlbGYuaW5wdXRzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1faW5wdXRzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1faW5wdXRzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2lucHV0cyddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBvdXRwdXRzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5vdXRwdXRzOgogICAgICAgICAgICBmb3IgX2l0ZW1fb3V0cHV0cyBpbiBzZWxmLm91dHB1dHM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9vdXRwdXRzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fb3V0cHV0cy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydvdXRwdXRzJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFiaUZ1bmN0aW9uIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJzdGF0ZU11dGFiaWxpdHkiOiBvYmouZ2V0KCJzdGF0ZU11dGFiaWxpdHkiKSwKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIiksCiAgICAgICAgICAgICJpbnB1dHMiOiBbUGFyYW1ldGVyLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiaW5wdXRzIl1dIGlmIG9iai5nZXQoImlucHV0cyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm91dHB1dHMiOiBbUGFyYW1ldGVyLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsib3V0cHV0cyJdXSBpZiBvYmouZ2V0KCJvdXRwdXRzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBvYmouZ2V0KCJkZXNjcmlwdGlvbiIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/access_registry_address_item.py b/fireblocks/models/access_registry_address_item.py index 45656283..85a14ceb 100644 --- a/fireblocks/models/access_registry_address_item.py +++ b/fireblocks/models/access_registry_address_item.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class AccessRegistryAddressItem(BaseModel): - """ - AccessRegistryAddressItem - """ # noqa: E501 - address: StrictStr = Field(description="The address that was added to the access registry") - date_added: datetime = Field(description="The date when the address was added to the access registry", alias="dateAdded") - __properties: ClassVar[List[str]] = ["address", "dateAdded"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AccessRegistryAddressItem from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AccessRegistryAddressItem from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "address": obj.get("address"), - "dateAdded": obj.get("dateAdded") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEFjY2Vzc1JlZ2lzdHJ5QWRkcmVzc0l0ZW0oQmFzZU1vZGVsKToKICAgICIiIgogICAgQWNjZXNzUmVnaXN0cnlBZGRyZXNzSXRlbQogICAgIiIiICMgbm9xYTogRTUwMQogICAgYWRkcmVzczogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBhZGRyZXNzIHRoYXQgd2FzIGFkZGVkIHRvIHRoZSBhY2Nlc3MgcmVnaXN0cnkiKQogICAgZGF0ZV9hZGRlZDogZGF0ZXRpbWUgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGRhdGUgd2hlbiB0aGUgYWRkcmVzcyB3YXMgYWRkZWQgdG8gdGhlIGFjY2VzcyByZWdpc3RyeSIsIGFsaWFzPSJkYXRlQWRkZWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhZGRyZXNzIiwgImRhdGVBZGRlZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNjZXNzUmVnaXN0cnlBZGRyZXNzSXRlbSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2Nlc3NSZWdpc3RyeUFkZHJlc3NJdGVtIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFkZHJlc3MiOiBvYmouZ2V0KCJhZGRyZXNzIiksCiAgICAgICAgICAgICJkYXRlQWRkZWQiOiBvYmouZ2V0KCJkYXRlQWRkZWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/access_registry_current_state_response.py b/fireblocks/models/access_registry_current_state_response.py index 0de344db..bbad4e72 100644 --- a/fireblocks/models/access_registry_current_state_response.py +++ b/fireblocks/models/access_registry_current_state_response.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.access_registry_address_item import AccessRegistryAddressItem -from typing import Optional, Set -from typing_extensions import Self - -class AccessRegistryCurrentStateResponse(BaseModel): - """ - AccessRegistryCurrentStateResponse - """ # noqa: E501 - data: List[AccessRegistryAddressItem] = Field(description="Array of active addresses in the access registry") - next: Optional[StrictStr] = Field(default=None, description="Cursor for next page") - prev: Optional[StrictStr] = Field(default=None, description="Cursor for previous page") - total: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Total count of active addresses in the access registry") - __properties: ClassVar[List[str]] = ["data", "next", "prev", "total"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AccessRegistryCurrentStateResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AccessRegistryCurrentStateResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [AccessRegistryAddressItem.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next"), - "prev": obj.get("prev"), - "total": obj.get("total") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2Nlc3NfcmVnaXN0cnlfYWRkcmVzc19pdGVtIGltcG9ydCBBY2Nlc3NSZWdpc3RyeUFkZHJlc3NJdGVtCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEFjY2Vzc1JlZ2lzdHJ5Q3VycmVudFN0YXRlUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgQWNjZXNzUmVnaXN0cnlDdXJyZW50U3RhdGVSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGF0YTogTGlzdFtBY2Nlc3NSZWdpc3RyeUFkZHJlc3NJdGVtXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBcnJheSBvZiBhY3RpdmUgYWRkcmVzc2VzIGluIHRoZSBhY2Nlc3MgcmVnaXN0cnkiKQogICAgbmV4dDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkN1cnNvciBmb3IgbmV4dCBwYWdlIikKICAgIHByZXY6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJDdXJzb3IgZm9yIHByZXZpb3VzIHBhZ2UiKQogICAgdG90YWw6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRvdGFsIGNvdW50IG9mIGFjdGl2ZSBhZGRyZXNzZXMgaW4gdGhlIGFjY2VzcyByZWdpc3RyeSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRhdGEiLCAibmV4dCIsICJwcmV2IiwgInRvdGFsIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2Nlc3NSZWdpc3RyeUN1cnJlbnRTdGF0ZVJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGRhdGEgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmRhdGE6CiAgICAgICAgICAgIGZvciBfaXRlbV9kYXRhIGluIHNlbGYuZGF0YToKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2RhdGE6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9kYXRhLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2RhdGEnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNjZXNzUmVnaXN0cnlDdXJyZW50U3RhdGVSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkYXRhIjogW0FjY2Vzc1JlZ2lzdHJ5QWRkcmVzc0l0ZW0uZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJkYXRhIl1dIGlmIG9iai5nZXQoImRhdGEiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJuZXh0Ijogb2JqLmdldCgibmV4dCIpLAogICAgICAgICAgICAicHJldiI6IG9iai5nZXQoInByZXYiKSwKICAgICAgICAgICAgInRvdGFsIjogb2JqLmdldCgidG90YWwiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/access_registry_summary_response.py b/fireblocks/models/access_registry_summary_response.py index 1040dc72..4f6a5ad7 100644 --- a/fireblocks/models/access_registry_summary_response.py +++ b/fireblocks/models/access_registry_summary_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class AccessRegistrySummaryResponse(BaseModel): - """ - AccessRegistrySummaryResponse - """ # noqa: E501 - total_active_addresses: Union[StrictFloat, StrictInt] = Field(description="The total number of active addresses in the access registry", alias="totalActiveAddresses") - __properties: ClassVar[List[str]] = ["totalActiveAddresses"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AccessRegistrySummaryResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AccessRegistrySummaryResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "totalActiveAddresses": obj.get("totalActiveAddresses") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgVW5pb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQWNjZXNzUmVnaXN0cnlTdW1tYXJ5UmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgQWNjZXNzUmVnaXN0cnlTdW1tYXJ5UmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHRvdGFsX2FjdGl2ZV9hZGRyZXNzZXM6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB0b3RhbCBudW1iZXIgb2YgYWN0aXZlIGFkZHJlc3NlcyBpbiB0aGUgYWNjZXNzIHJlZ2lzdHJ5IiwgYWxpYXM9InRvdGFsQWN0aXZlQWRkcmVzc2VzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidG90YWxBY3RpdmVBZGRyZXNzZXMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFjY2Vzc1JlZ2lzdHJ5U3VtbWFyeVJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFjY2Vzc1JlZ2lzdHJ5U3VtbWFyeVJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInRvdGFsQWN0aXZlQWRkcmVzc2VzIjogb2JqLmdldCgidG90YWxBY3RpdmVBZGRyZXNzZXMiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/access_type.py b/fireblocks/models/access_type.py index 415a8eb6..836a8f83 100644 --- a/fireblocks/models/access_type.py +++ b/fireblocks/models/access_type.py @@ -1,141 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.account_access import AccountAccess -from fireblocks.models.direct_access import DirectAccess -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -ACCESSTYPE_ONE_OF_SCHEMAS = ["AccountAccess", "DirectAccess"] - -class AccessType(BaseModel): - """ - AccessType - """ - # data type: AccountAccess - oneof_schema_1_validator: Optional[AccountAccess] = None - # data type: DirectAccess - oneof_schema_2_validator: Optional[DirectAccess] = None - actual_instance: Optional[Union[AccountAccess, DirectAccess]] = None - one_of_schemas: Set[str] = { "AccountAccess", "DirectAccess" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - discriminator_value_class_map: Dict[str, str] = { - } - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = AccessType.model_construct() - error_messages = [] - match = 0 - # validate data type: AccountAccess - if not isinstance(v, AccountAccess): - error_messages.append(f"Error! Input type `{type(v)}` is not `AccountAccess`") - else: - match += 1 - # validate data type: DirectAccess - if not isinstance(v, DirectAccess): - error_messages.append(f"Error! Input type `{type(v)}` is not `DirectAccess`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in AccessType with oneOf schemas: AccountAccess, DirectAccess. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in AccessType with oneOf schemas: AccountAccess, DirectAccess. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into AccountAccess - try: - instance.actual_instance = AccountAccess.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into DirectAccess - try: - instance.actual_instance = DirectAccess.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into AccessType with oneOf schemas: AccountAccess, DirectAccess. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into AccessType with oneOf schemas: AccountAccess, DirectAccess. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], AccountAccess, DirectAccess]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9hY2Nlc3MgaW1wb3J0IEFjY291bnRBY2Nlc3MKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXJlY3RfYWNjZXNzIGltcG9ydCBEaXJlY3RBY2Nlc3MKZnJvbSBweWRhbnRpYyBpbXBvcnQgU3RyaWN0U3RyLCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgVW5pb24sIExpc3QsIFNldCwgT3B0aW9uYWwsIERpY3QKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgTGl0ZXJhbCwgU2VsZgoKQUNDRVNTVFlQRV9PTkVfT0ZfU0NIRU1BUyA9IFsiQWNjb3VudEFjY2VzcyIsICJEaXJlY3RBY2Nlc3MiXQoKY2xhc3MgQWNjZXNzVHlwZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBY2Nlc3NUeXBlCiAgICAiIiIKICAgICMgZGF0YSB0eXBlOiBBY2NvdW50QWNjZXNzCiAgICBvbmVvZl9zY2hlbWFfMV92YWxpZGF0b3I6IE9wdGlvbmFsW0FjY291bnRBY2Nlc3NdID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IERpcmVjdEFjY2VzcwogICAgb25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yOiBPcHRpb25hbFtEaXJlY3RBY2Nlc3NdID0gTm9uZQogICAgYWN0dWFsX2luc3RhbmNlOiBPcHRpb25hbFtVbmlvbltBY2NvdW50QWNjZXNzLCBEaXJlY3RBY2Nlc3NdXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgIkFjY291bnRBY2Nlc3MiLCAiRGlyZWN0QWNjZXNzIiB9CgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRpc2NyaW1pbmF0b3JfdmFsdWVfY2xhc3NfbWFwOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgIH0KCiAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKSAtPiBOb25lOgogICAgICAgIGlmIGFyZ3M6CiAgICAgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIG9ubHkgMSBpcyBhbGxvd2VkIHRvIHNldCBgYWN0dWFsX2luc3RhbmNlYCIpCiAgICAgICAgICAgIGlmIGt3YXJnczoKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwga2V5d29yZCBhcmd1bWVudHMgY2Fubm90IGJlIHVzZWQuIikKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhhY3R1YWxfaW5zdGFuY2U9YXJnc1swXSkKICAgICAgICBlbHNlOgogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FjdHVhbF9pbnN0YW5jZScpCiAgICBkZWYgYWN0dWFsX2luc3RhbmNlX211c3RfdmFsaWRhdGVfb25lb2YoY2xzLCB2KToKICAgICAgICBpbnN0YW5jZSA9IEFjY2Vzc1R5cGUubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IEFjY291bnRBY2Nlc3MKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBBY2NvdW50QWNjZXNzKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBBY2NvdW50QWNjZXNzYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBEaXJlY3RBY2Nlc3MKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBEaXJlY3RBY2Nlc3MpOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYERpcmVjdEFjY2Vzc2AiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gQWNjZXNzVHlwZSB3aXRoIG9uZU9mIHNjaGVtYXM6IEFjY291bnRBY2Nlc3MsIERpcmVjdEFjY2Vzcy4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBBY2Nlc3NUeXBlIHdpdGggb25lT2Ygc2NoZW1hczogQWNjb3VudEFjY2VzcywgRGlyZWN0QWNjZXNzLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gdgoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogVW5pb25bc3RyLCBEaWN0W3N0ciwgQW55XV0pIC0+IFNlbGY6CiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2pzb24oanNvbi5kdW1wcyhvYmopKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgb2JqZWN0IHJlcHJlc2VudGVkIGJ5IHRoZSBqc29uIHN0cmluZyIiIgogICAgICAgIGluc3RhbmNlID0gY2xzLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAoKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBBY2NvdW50QWNjZXNzCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBBY2NvdW50QWNjZXNzLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIERpcmVjdEFjY2VzcwogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gRGlyZWN0QWNjZXNzLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQoKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gQWNjZXNzVHlwZSB3aXRoIG9uZU9mIHNjaGVtYXM6IEFjY291bnRBY2Nlc3MsIERpcmVjdEFjY2Vzcy4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBBY2Nlc3NUeXBlIHdpdGggb25lT2Ygc2NoZW1hczogQWNjb3VudEFjY2VzcywgRGlyZWN0QWNjZXNzLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuICJudWxsIgoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fanNvbiIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24oKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYuYWN0dWFsX2luc3RhbmNlKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IE9wdGlvbmFsW1VuaW9uW0RpY3Rbc3RyLCBBbnldLCBBY2NvdW50QWNjZXNzLCBEaXJlY3RBY2Nlc3NdXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgcHJpbWl0aXZlIHR5cGUKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/account.py b/fireblocks/models/account.py index a8750aac..53e86f28 100644 --- a/fireblocks/models/account.py +++ b/fireblocks/models/account.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.account_type import AccountType -from typing import Optional, Set -from typing_extensions import Self - -class Account(BaseModel): - """ - Account - """ # noqa: E501 - account_id: StrictStr = Field(alias="accountId") - account_type: AccountType = Field(alias="accountType") - __properties: ClassVar[List[str]] = ["accountId", "accountType"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of Account from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of Account from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountId": obj.get("accountId"), - "accountType": obj.get("accountType") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF90eXBlIGltcG9ydCBBY2NvdW50VHlwZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBY2NvdW50KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFjY291bnQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFjY291bnRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJhY2NvdW50SWQiKQogICAgYWNjb3VudF90eXBlOiBBY2NvdW50VHlwZSA9IEZpZWxkKGFsaWFzPSJhY2NvdW50VHlwZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFjY291bnRJZCIsICJhY2NvdW50VHlwZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNjb3VudCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2NvdW50IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFjY291bnRJZCI6IG9iai5nZXQoImFjY291bnRJZCIpLAogICAgICAgICAgICAiYWNjb3VudFR5cGUiOiBvYmouZ2V0KCJhY2NvdW50VHlwZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/account_access.py b/fireblocks/models/account_access.py index 8cc0c158..647a660d 100644 --- a/fireblocks/models/account_access.py +++ b/fireblocks/models/account_access.py @@ -1,99 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class AccountAccess(BaseModel): - """ - AccountAccess - """ # noqa: E501 - type: StrictStr = Field(description="Indicates this uses account-based access") - provider_id: Optional[StrictStr] = Field(default=None, description="The ID of the provider", alias="providerId") - account_id: StrictStr = Field(description="The ID of the account", alias="accountId") - __properties: ClassVar[List[str]] = ["type", "providerId", "accountId"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['PROVIDER_ACCOUNT']): - raise ValueError("must be one of enum values ('PROVIDER_ACCOUNT')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AccountAccess from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AccountAccess from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "providerId": obj.get("providerId"), - "accountId": obj.get("accountId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEFjY291bnRBY2Nlc3MoQmFzZU1vZGVsKToKICAgICIiIgogICAgQWNjb3VudEFjY2VzcwogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkluZGljYXRlcyB0aGlzIHVzZXMgYWNjb3VudC1iYXNlZCBhY2Nlc3MiKQogICAgcHJvdmlkZXJfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIHByb3ZpZGVyIiwgYWxpYXM9InByb3ZpZGVySWQiKQogICAgYWNjb3VudF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYWNjb3VudCIsIGFsaWFzPSJhY2NvdW50SWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgInByb3ZpZGVySWQiLCAiYWNjb3VudElkIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCd0eXBlJykKICAgIGRlZiB0eXBlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ1BST1ZJREVSX0FDQ09VTlQnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnUFJPVklERVJfQUNDT1VOVCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2NvdW50QWNjZXNzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFjY291bnRBY2Nlc3MgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgInByb3ZpZGVySWQiOiBvYmouZ2V0KCJwcm92aWRlcklkIiksCiAgICAgICAgICAgICJhY2NvdW50SWQiOiBvYmouZ2V0KCJhY2NvdW50SWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/account_base.py b/fireblocks/models/account_base.py index 5f877ca6..b031b0a2 100644 --- a/fireblocks/models/account_base.py +++ b/fireblocks/models/account_base.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class AccountBase(BaseModel): - """ - AccountBase - """ # noqa: E501 - id: StrictStr = Field(description="The ID of the account") - name: StrictStr = Field(description="The name of the account") - __properties: ClassVar[List[str]] = ["id", "name"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AccountBase from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AccountBase from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEFjY291bnRCYXNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFjY291bnRCYXNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYWNjb3VudCIpCiAgICBuYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIG5hbWUgb2YgdGhlIGFjY291bnQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJuYW1lIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2NvdW50QmFzZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2NvdW50QmFzZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/account_based_access_provider.py b/fireblocks/models/account_based_access_provider.py index 8f0a9b95..66e851a4 100644 --- a/fireblocks/models/account_based_access_provider.py +++ b/fireblocks/models/account_based_access_provider.py @@ -1,112 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.account_base import AccountBase -from fireblocks.models.manifest import Manifest -from typing import Optional, Set -from typing_extensions import Self - -class AccountBasedAccessProvider(BaseModel): - """ - AccountBasedAccessProvider - """ # noqa: E501 - id: StrictStr = Field(description="Unique identifier for the provider") - name: StrictStr = Field(description="Display name of the provider") - logo: Optional[StrictStr] = Field(default=None, description="URL to the logo image of the provider") - account_based: StrictBool = Field(description="Indicates whether the provider access model is through accounts or directly", alias="accountBased") - manifest: Manifest - connected: StrictBool = Field(description="Whether the provider is currently connected") - accounts: Optional[List[AccountBase]] = None - __properties: ClassVar[List[str]] = ["id", "name", "logo", "accountBased", "manifest", "connected", "accounts"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AccountBasedAccessProvider from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of manifest - if self.manifest: - _dict['manifest'] = self.manifest.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in accounts (list) - _items = [] - if self.accounts: - for _item_accounts in self.accounts: - if _item_accounts: - _items.append(_item_accounts.to_dict()) - _dict['accounts'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AccountBasedAccessProvider from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name"), - "logo": obj.get("logo"), - "accountBased": obj.get("accountBased"), - "manifest": Manifest.from_dict(obj["manifest"]) if obj.get("manifest") is not None else None, - "connected": obj.get("connected"), - "accounts": [AccountBase.from_dict(_item) for _item in obj["accounts"]] if obj.get("accounts") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfYmFzZSBpbXBvcnQgQWNjb3VudEJhc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tYW5pZmVzdCBpbXBvcnQgTWFuaWZlc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQWNjb3VudEJhc2VkQWNjZXNzUHJvdmlkZXIoQmFzZU1vZGVsKToKICAgICIiIgogICAgQWNjb3VudEJhc2VkQWNjZXNzUHJvdmlkZXIKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBwcm92aWRlciIpCiAgICBuYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iRGlzcGxheSBuYW1lIG9mIHRoZSBwcm92aWRlciIpCiAgICBsb2dvOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVVJMIHRvIHRoZSBsb2dvIGltYWdlIG9mIHRoZSBwcm92aWRlciIpCiAgICBhY2NvdW50X2Jhc2VkOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IkluZGljYXRlcyB3aGV0aGVyIHRoZSBwcm92aWRlciBhY2Nlc3MgbW9kZWwgaXMgdGhyb3VnaCBhY2NvdW50cyBvciBkaXJlY3RseSIsIGFsaWFzPSJhY2NvdW50QmFzZWQiKQogICAgbWFuaWZlc3Q6IE1hbmlmZXN0CiAgICBjb25uZWN0ZWQ6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iV2hldGhlciB0aGUgcHJvdmlkZXIgaXMgY3VycmVudGx5IGNvbm5lY3RlZCIpCiAgICBhY2NvdW50czogTGlzdFtBY2NvdW50QmFzZV0KICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAibmFtZSIsICJsb2dvIiwgImFjY291bnRCYXNlZCIsICJtYW5pZmVzdCIsICJjb25uZWN0ZWQiLCAiYWNjb3VudHMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFjY291bnRCYXNlZEFjY2Vzc1Byb3ZpZGVyIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgbWFuaWZlc3QKICAgICAgICBpZiBzZWxmLm1hbmlmZXN0OgogICAgICAgICAgICBfZGljdFsnbWFuaWZlc3QnXSA9IHNlbGYubWFuaWZlc3QudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBhY2NvdW50cyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuYWNjb3VudHM6CiAgICAgICAgICAgIGZvciBfaXRlbV9hY2NvdW50cyBpbiBzZWxmLmFjY291bnRzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fYWNjb3VudHM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9hY2NvdW50cy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydhY2NvdW50cyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlciBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAibG9nbyI6IG9iai5nZXQoImxvZ28iKSwKICAgICAgICAgICAgImFjY291bnRCYXNlZCI6IG9iai5nZXQoImFjY291bnRCYXNlZCIpLAogICAgICAgICAgICAibWFuaWZlc3QiOiBNYW5pZmVzdC5mcm9tX2RpY3Qob2JqWyJtYW5pZmVzdCJdKSBpZiBvYmouZ2V0KCJtYW5pZmVzdCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImNvbm5lY3RlZCI6IG9iai5nZXQoImNvbm5lY3RlZCIpLAogICAgICAgICAgICAiYWNjb3VudHMiOiBbQWNjb3VudEJhc2UuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJhY2NvdW50cyJdXSBpZiBvYmouZ2V0KCJhY2NvdW50cyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/account_based_access_provider_info.py b/fireblocks/models/account_based_access_provider_info.py new file mode 100644 index 00000000..c6f761f8 --- /dev/null +++ b/fireblocks/models/account_based_access_provider_info.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfYmFzZSBpbXBvcnQgQWNjb3VudEJhc2UKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQWNjb3VudEJhc2VkQWNjZXNzUHJvdmlkZXJJbmZvKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFjY291bnRCYXNlZEFjY2Vzc1Byb3ZpZGVySW5mbwogICAgIiIiICMgbm9xYTogRTUwMQogICAgY29ubmVjdGVkOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IldoZXRoZXIgdGhlIHByb3ZpZGVyIGlzIGN1cnJlbnRseSBjb25uZWN0ZWQiKQogICAgYWNjb3VudHM6IExpc3RbQWNjb3VudEJhc2VdCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImNvbm5lY3RlZCIsICJhY2NvdW50cyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNjb3VudEJhc2VkQWNjZXNzUHJvdmlkZXJJbmZvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGFjY291bnRzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5hY2NvdW50czoKICAgICAgICAgICAgZm9yIF9pdGVtX2FjY291bnRzIGluIHNlbGYuYWNjb3VudHM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9hY2NvdW50czoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2FjY291bnRzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2FjY291bnRzJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFjY291bnRCYXNlZEFjY2Vzc1Byb3ZpZGVySW5mbyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJjb25uZWN0ZWQiOiBvYmouZ2V0KCJjb25uZWN0ZWQiKSwKICAgICAgICAgICAgImFjY291bnRzIjogW0FjY291bnRCYXNlLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiYWNjb3VudHMiXV0gaWYgb2JqLmdldCgiYWNjb3VudHMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/account_based_provider_details.py b/fireblocks/models/account_based_provider_details.py new file mode 100644 index 00000000..2370329f --- /dev/null +++ b/fireblocks/models/account_based_provider_details.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfYmFzZSBpbXBvcnQgQWNjb3VudEJhc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tYW5pZmVzdCBpbXBvcnQgTWFuaWZlc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQWNjb3VudEJhc2VkUHJvdmlkZXJEZXRhaWxzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFjY291bnRCYXNlZFByb3ZpZGVyRGV0YWlscwogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHByb3ZpZGVyIikKICAgIG5hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJEaXNwbGF5IG5hbWUgb2YgdGhlIHByb3ZpZGVyIikKICAgIGxvZ286IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJVUkwgdG8gdGhlIGxvZ28gaW1hZ2Ugb2YgdGhlIHByb3ZpZGVyIikKICAgIGFjY291bnRfYmFzZWQ6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHByb3ZpZGVyIGFjY2VzcyBtb2RlbCBpcyB0aHJvdWdoIGFjY291bnRzIG9yIGRpcmVjdGx5IiwgYWxpYXM9ImFjY291bnRCYXNlZCIpCiAgICBtYW5pZmVzdDogTWFuaWZlc3QKICAgIGNvbm5lY3RlZDogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJXaGV0aGVyIHRoZSBwcm92aWRlciBpcyBjdXJyZW50bHkgY29ubmVjdGVkIikKICAgIGFjY291bnRzOiBMaXN0W0FjY291bnRCYXNlXQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJuYW1lIiwgImxvZ28iLCAiYWNjb3VudEJhc2VkIiwgIm1hbmlmZXN0IiwgImNvbm5lY3RlZCIsICJhY2NvdW50cyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNjb3VudEJhc2VkUHJvdmlkZXJEZXRhaWxzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgbWFuaWZlc3QKICAgICAgICBpZiBzZWxmLm1hbmlmZXN0OgogICAgICAgICAgICBfZGljdFsnbWFuaWZlc3QnXSA9IHNlbGYubWFuaWZlc3QudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBhY2NvdW50cyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuYWNjb3VudHM6CiAgICAgICAgICAgIGZvciBfaXRlbV9hY2NvdW50cyBpbiBzZWxmLmFjY291bnRzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fYWNjb3VudHM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9hY2NvdW50cy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydhY2NvdW50cyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2NvdW50QmFzZWRQcm92aWRlckRldGFpbHMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKSwKICAgICAgICAgICAgImxvZ28iOiBvYmouZ2V0KCJsb2dvIiksCiAgICAgICAgICAgICJhY2NvdW50QmFzZWQiOiBvYmouZ2V0KCJhY2NvdW50QmFzZWQiKSwKICAgICAgICAgICAgIm1hbmlmZXN0IjogTWFuaWZlc3QuZnJvbV9kaWN0KG9ialsibWFuaWZlc3QiXSkgaWYgb2JqLmdldCgibWFuaWZlc3QiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJjb25uZWN0ZWQiOiBvYmouZ2V0KCJjb25uZWN0ZWQiKSwKICAgICAgICAgICAgImFjY291bnRzIjogW0FjY291bnRCYXNlLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiYWNjb3VudHMiXV0gaWYgb2JqLmdldCgiYWNjb3VudHMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/account_config.py b/fireblocks/models/account_config.py index 1852ca9d..636a8361 100644 --- a/fireblocks/models/account_config.py +++ b/fireblocks/models/account_config.py @@ -1,133 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.account_identifier import AccountIdentifier -from fireblocks.models.account_type2 import AccountType2 -from fireblocks.models.policy_operator import PolicyOperator -from fireblocks.models.policy_tag import PolicyTag -from typing import Optional, Set -from typing_extensions import Self - -class AccountConfig(BaseModel): - """ - Policy account configuration - """ # noqa: E501 - type: Optional[List[AccountType2]] = Field(default=None, description="Account types") - sub_type: Optional[List[AccountIdentifier]] = Field(default=None, alias="subType") - ids: Optional[List[AccountIdentifier]] = None - tags: Optional[List[PolicyTag]] = Field(default=None, description="Tags for account matching") - operator: PolicyOperator - match_from: Optional[StrictStr] = Field(default=None, description="Whether to match from account or source", alias="matchFrom") - __properties: ClassVar[List[str]] = ["type", "subType", "ids", "tags", "operator", "matchFrom"] - - @field_validator('match_from') - def match_from_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['ACCOUNT', 'SOURCE']): - raise ValueError("must be one of enum values ('ACCOUNT', 'SOURCE')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AccountConfig from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in sub_type (list) - _items = [] - if self.sub_type: - for _item_sub_type in self.sub_type: - if _item_sub_type: - _items.append(_item_sub_type.to_dict()) - _dict['subType'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in ids (list) - _items = [] - if self.ids: - for _item_ids in self.ids: - if _item_ids: - _items.append(_item_ids.to_dict()) - _dict['ids'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in tags (list) - _items = [] - if self.tags: - for _item_tags in self.tags: - if _item_tags: - _items.append(_item_tags.to_dict()) - _dict['tags'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AccountConfig from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "subType": [AccountIdentifier.from_dict(_item) for _item in obj["subType"]] if obj.get("subType") is not None else None, - "ids": [AccountIdentifier.from_dict(_item) for _item in obj["ids"]] if obj.get("ids") is not None else None, - "tags": [PolicyTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, - "operator": obj.get("operator"), - "matchFrom": obj.get("matchFrom") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9pZGVudGlmaWVyIGltcG9ydCBBY2NvdW50SWRlbnRpZmllcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfdHlwZTIgaW1wb3J0IEFjY291bnRUeXBlMgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9vcGVyYXRvciBpbXBvcnQgUG9saWN5T3BlcmF0b3IKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfdGFnIGltcG9ydCBQb2xpY3lUYWcKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQWNjb3VudENvbmZpZyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBQb2xpY3kgYWNjb3VudCBjb25maWd1cmF0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBPcHRpb25hbFtMaXN0W0FjY291bnRUeXBlMl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQWNjb3VudCB0eXBlcyIpCiAgICBzdWJfdHlwZTogT3B0aW9uYWxbTGlzdFtBY2NvdW50SWRlbnRpZmllcl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ic3ViVHlwZSIpCiAgICBpZHM6IE9wdGlvbmFsW0xpc3RbQWNjb3VudElkZW50aWZpZXJdXSA9IE5vbmUKICAgIHRhZ3M6IE9wdGlvbmFsW0xpc3RbUG9saWN5VGFnXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUYWdzIGZvciBhY2NvdW50IG1hdGNoaW5nIikKICAgIG9wZXJhdG9yOiBQb2xpY3lPcGVyYXRvcgogICAgbWF0Y2hfZnJvbTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IldoZXRoZXIgdG8gbWF0Y2ggZnJvbSBhY2NvdW50IG9yIHNvdXJjZSIsIGFsaWFzPSJtYXRjaEZyb20iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgInN1YlR5cGUiLCAiaWRzIiwgInRhZ3MiLCAib3BlcmF0b3IiLCAibWF0Y2hGcm9tIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdtYXRjaF9mcm9tJykKICAgIGRlZiBtYXRjaF9mcm9tX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydBQ0NPVU5UJywgJ1NPVVJDRSddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdBQ0NPVU5UJywgJ1NPVVJDRScpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2NvdW50Q29uZmlnIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIHN1Yl90eXBlIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5zdWJfdHlwZToKICAgICAgICAgICAgZm9yIF9pdGVtX3N1Yl90eXBlIGluIHNlbGYuc3ViX3R5cGU6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9zdWJfdHlwZToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX3N1Yl90eXBlLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ3N1YlR5cGUnXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gaWRzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5pZHM6CiAgICAgICAgICAgIGZvciBfaXRlbV9pZHMgaW4gc2VsZi5pZHM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9pZHM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9pZHMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnaWRzJ10gPSBfaXRlbXMKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIHRhZ3MgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLnRhZ3M6CiAgICAgICAgICAgIGZvciBfaXRlbV90YWdzIGluIHNlbGYudGFnczoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX3RhZ3M6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV90YWdzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ3RhZ3MnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNjb3VudENvbmZpZyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAic3ViVHlwZSI6IFtBY2NvdW50SWRlbnRpZmllci5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbInN1YlR5cGUiXV0gaWYgb2JqLmdldCgic3ViVHlwZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImlkcyI6IFtBY2NvdW50SWRlbnRpZmllci5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImlkcyJdXSBpZiBvYmouZ2V0KCJpZHMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJ0YWdzIjogW1BvbGljeVRhZy5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbInRhZ3MiXV0gaWYgb2JqLmdldCgidGFncyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm9wZXJhdG9yIjogb2JqLmdldCgib3BlcmF0b3IiKSwKICAgICAgICAgICAgIm1hdGNoRnJvbSI6IG9iai5nZXQoIm1hdGNoRnJvbSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/account_holder_details.py b/fireblocks/models/account_holder_details.py index 8105570e..eb6b96af 100644 --- a/fireblocks/models/account_holder_details.py +++ b/fireblocks/models/account_holder_details.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class AccountHolderDetails(BaseModel): - """ - AccountHolderDetails - """ # noqa: E501 - name: StrictStr = Field(description="Full name of the account holder.") - city: Optional[StrictStr] = None - country: Optional[StrictStr] = Field(default=None, description="Country code, as specified in ISO 3166-1 alpha-2.") - subdivision: Optional[StrictStr] = Field(default=None, description="Country administrative subdivision, as specified in ISO 3166-2.") - address: Optional[StrictStr] = Field(default=None, description="Account holder street address.") - postal_code: Optional[StrictStr] = Field(default=None, alias="postalCode") - __properties: ClassVar[List[str]] = ["name", "city", "country", "subdivision", "address", "postalCode"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AccountHolderDetails from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AccountHolderDetails from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name"), - "city": obj.get("city"), - "country": obj.get("country"), - "subdivision": obj.get("subdivision"), - "address": obj.get("address"), - "postalCode": obj.get("postalCode") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBY2NvdW50SG9sZGVyRGV0YWlscyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBY2NvdW50SG9sZGVyRGV0YWlscwogICAgIiIiICMgbm9xYTogRTUwMQogICAgbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkZ1bGwgbmFtZSBvZiB0aGUgYWNjb3VudCBob2xkZXIuIikKICAgIGNpdHk6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBjb3VudHJ5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ291bnRyeSBjb2RlLCBhcyBzcGVjaWZpZWQgaW4gSVNPIDMxNjYtMSBhbHBoYS0yLiIpCiAgICBzdWJkaXZpc2lvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkNvdW50cnkgYWRtaW5pc3RyYXRpdmUgc3ViZGl2aXNpb24sIGFzIHNwZWNpZmllZCBpbiBJU08gMzE2Ni0yLiIpCiAgICBhZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQWNjb3VudCBob2xkZXIgc3RyZWV0IGFkZHJlc3MuIikKICAgIHBvc3RhbF9jb2RlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0icG9zdGFsQ29kZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm5hbWUiLCAiY2l0eSIsICJjb3VudHJ5IiwgInN1YmRpdmlzaW9uIiwgImFkZHJlc3MiLCAicG9zdGFsQ29kZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNjb3VudEhvbGRlckRldGFpbHMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNjb3VudEhvbGRlckRldGFpbHMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKSwKICAgICAgICAgICAgImNpdHkiOiBvYmouZ2V0KCJjaXR5IiksCiAgICAgICAgICAgICJjb3VudHJ5Ijogb2JqLmdldCgiY291bnRyeSIpLAogICAgICAgICAgICAic3ViZGl2aXNpb24iOiBvYmouZ2V0KCJzdWJkaXZpc2lvbiIpLAogICAgICAgICAgICAiYWRkcmVzcyI6IG9iai5nZXQoImFkZHJlc3MiKSwKICAgICAgICAgICAgInBvc3RhbENvZGUiOiBvYmouZ2V0KCJwb3N0YWxDb2RlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/account_identifier.py b/fireblocks/models/account_identifier.py index 80e98bb1..e78ba35e 100644 --- a/fireblocks/models/account_identifier.py +++ b/fireblocks/models/account_identifier.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.account_type2 import AccountType2 -from typing import Optional, Set -from typing_extensions import Self - -class AccountIdentifier(BaseModel): - """ - Account identifier with type, ID, subtype, and address - """ # noqa: E501 - type: AccountType2 - id: Optional[StrictStr] = Field(default=None, description="Account ID") - sub_type: Optional[StrictStr] = Field(default=None, description="Account subtype", alias="subType") - address: Optional[StrictStr] = Field(default=None, description="Account address") - __properties: ClassVar[List[str]] = ["type", "id", "subType", "address"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AccountIdentifier from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AccountIdentifier from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "id": obj.get("id"), - "subType": obj.get("subType"), - "address": obj.get("address") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfdHlwZTIgaW1wb3J0IEFjY291bnRUeXBlMgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBY2NvdW50SWRlbnRpZmllcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBY2NvdW50IGlkZW50aWZpZXIgd2l0aCB0eXBlLCBJRCwgc3VidHlwZSwgYW5kIGFkZHJlc3MKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR5cGU6IEFjY291bnRUeXBlMgogICAgaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBY2NvdW50IElEIikKICAgIHN1Yl90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQWNjb3VudCBzdWJ0eXBlIiwgYWxpYXM9InN1YlR5cGUiKQogICAgYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFjY291bnQgYWRkcmVzcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiLCAiaWQiLCAic3ViVHlwZSIsICJhZGRyZXNzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2NvdW50SWRlbnRpZmllciBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2NvdW50SWRlbnRpZmllciBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAic3ViVHlwZSI6IG9iai5nZXQoInN1YlR5cGUiKSwKICAgICAgICAgICAgImFkZHJlc3MiOiBvYmouZ2V0KCJhZGRyZXNzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/account_reference.py b/fireblocks/models/account_reference.py index 7d23bb2b..e36cfecb 100644 --- a/fireblocks/models/account_reference.py +++ b/fireblocks/models/account_reference.py @@ -1,141 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.internal_reference import InternalReference -from fireblocks.models.one_time_address_reference import OneTimeAddressReference -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -ACCOUNTREFERENCE_ONE_OF_SCHEMAS = ["InternalReference", "OneTimeAddressReference"] - -class AccountReference(BaseModel): - """ - AccountReference - """ - # data type: InternalReference - oneof_schema_1_validator: Optional[InternalReference] = None - # data type: OneTimeAddressReference - oneof_schema_2_validator: Optional[OneTimeAddressReference] = None - actual_instance: Optional[Union[InternalReference, OneTimeAddressReference]] = None - one_of_schemas: Set[str] = { "InternalReference", "OneTimeAddressReference" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - discriminator_value_class_map: Dict[str, str] = { - } - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = AccountReference.model_construct() - error_messages = [] - match = 0 - # validate data type: InternalReference - if not isinstance(v, InternalReference): - error_messages.append(f"Error! Input type `{type(v)}` is not `InternalReference`") - else: - match += 1 - # validate data type: OneTimeAddressReference - if not isinstance(v, OneTimeAddressReference): - error_messages.append(f"Error! Input type `{type(v)}` is not `OneTimeAddressReference`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in AccountReference with oneOf schemas: InternalReference, OneTimeAddressReference. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in AccountReference with oneOf schemas: InternalReference, OneTimeAddressReference. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into InternalReference - try: - instance.actual_instance = InternalReference.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into OneTimeAddressReference - try: - instance.actual_instance = OneTimeAddressReference.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into AccountReference with oneOf schemas: InternalReference, OneTimeAddressReference. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into AccountReference with oneOf schemas: InternalReference, OneTimeAddressReference. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], InternalReference, OneTimeAddressReference]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaW50ZXJuYWxfcmVmZXJlbmNlIGltcG9ydCBJbnRlcm5hbFJlZmVyZW5jZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9uZV90aW1lX2FkZHJlc3NfcmVmZXJlbmNlIGltcG9ydCBPbmVUaW1lQWRkcmVzc1JlZmVyZW5jZQpmcm9tIHB5ZGFudGljIGltcG9ydCBTdHJpY3RTdHIsIEZpZWxkCmZyb20gdHlwaW5nIGltcG9ydCBVbmlvbiwgTGlzdCwgU2V0LCBPcHRpb25hbCwgRGljdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBMaXRlcmFsLCBTZWxmCgpBQ0NPVU5UUkVGRVJFTkNFX09ORV9PRl9TQ0hFTUFTID0gWyJJbnRlcm5hbFJlZmVyZW5jZSIsICJPbmVUaW1lQWRkcmVzc1JlZmVyZW5jZSJdCgpjbGFzcyBBY2NvdW50UmVmZXJlbmNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFjY291bnRSZWZlcmVuY2UKICAgICIiIgogICAgIyBkYXRhIHR5cGU6IEludGVybmFsUmVmZXJlbmNlCiAgICBvbmVvZl9zY2hlbWFfMV92YWxpZGF0b3I6IE9wdGlvbmFsW0ludGVybmFsUmVmZXJlbmNlXSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBPbmVUaW1lQWRkcmVzc1JlZmVyZW5jZQogICAgb25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yOiBPcHRpb25hbFtPbmVUaW1lQWRkcmVzc1JlZmVyZW5jZV0gPSBOb25lCiAgICBhY3R1YWxfaW5zdGFuY2U6IE9wdGlvbmFsW1VuaW9uW0ludGVybmFsUmVmZXJlbmNlLCBPbmVUaW1lQWRkcmVzc1JlZmVyZW5jZV1dID0gTm9uZQogICAgb25lX29mX3NjaGVtYXM6IFNldFtzdHJdID0geyAiSW50ZXJuYWxSZWZlcmVuY2UiLCAiT25lVGltZUFkZHJlc3NSZWZlcmVuY2UiIH0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGlzY3JpbWluYXRvcl92YWx1ZV9jbGFzc19tYXA6IERpY3Rbc3RyLCBzdHJdID0gewogICAgfQoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gQWNjb3VudFJlZmVyZW5jZS5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogSW50ZXJuYWxSZWZlcmVuY2UKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBJbnRlcm5hbFJlZmVyZW5jZSk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgSW50ZXJuYWxSZWZlcmVuY2VgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IE9uZVRpbWVBZGRyZXNzUmVmZXJlbmNlCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgT25lVGltZUFkZHJlc3NSZWZlcmVuY2UpOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYE9uZVRpbWVBZGRyZXNzUmVmZXJlbmNlYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBBY2NvdW50UmVmZXJlbmNlIHdpdGggb25lT2Ygc2NoZW1hczogSW50ZXJuYWxSZWZlcmVuY2UsIE9uZVRpbWVBZGRyZXNzUmVmZXJlbmNlLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIEFjY291bnRSZWZlcmVuY2Ugd2l0aCBvbmVPZiBzY2hlbWFzOiBJbnRlcm5hbFJlZmVyZW5jZSwgT25lVGltZUFkZHJlc3NSZWZlcmVuY2UuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBVbmlvbltzdHIsIERpY3Rbc3RyLCBBbnldXSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCgogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIEludGVybmFsUmVmZXJlbmNlCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBJbnRlcm5hbFJlZmVyZW5jZS5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBPbmVUaW1lQWRkcmVzc1JlZmVyZW5jZQogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gT25lVGltZUFkZHJlc3NSZWZlcmVuY2UuZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCgogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBBY2NvdW50UmVmZXJlbmNlIHdpdGggb25lT2Ygc2NoZW1hczogSW50ZXJuYWxSZWZlcmVuY2UsIE9uZVRpbWVBZGRyZXNzUmVmZXJlbmNlLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIEFjY291bnRSZWZlcmVuY2Ugd2l0aCBvbmVPZiBzY2hlbWFzOiBJbnRlcm5hbFJlZmVyZW5jZSwgT25lVGltZUFkZHJlc3NSZWZlcmVuY2UuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gIm51bGwiCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19qc29uIikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24pOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbigpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi5hY3R1YWxfaW5zdGFuY2UpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gT3B0aW9uYWxbVW5pb25bRGljdFtzdHIsIEFueV0sIEludGVybmFsUmVmZXJlbmNlLCBPbmVUaW1lQWRkcmVzc1JlZmVyZW5jZV1dOgogICAgICAgICIiIlJldHVybnMgdGhlIGRpY3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19kaWN0IikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QpOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCgpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgIyBwcmltaXRpdmUgdHlwZQogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/account_type.py b/fireblocks/models/account_type.py index 21299de6..f239c118 100644 --- a/fireblocks/models/account_type.py +++ b/fireblocks/models/account_type.py @@ -1,41 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class AccountType(str, Enum): - """ - AccountType - """ - - """ - allowed enum values - """ - EXCHANGE_ACCOUNT = 'EXCHANGE_ACCOUNT' - UNMANAGED_WALLET = 'UNMANAGED_WALLET' - VAULT_ACCOUNT = 'VAULT_ACCOUNT' - NETWORK_CONNECTION = 'NETWORK_CONNECTION' - FIAT_ACCOUNT = 'FIAT_ACCOUNT' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of AccountType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBBY2NvdW50VHlwZShzdHIsIEVudW0pOgogICAgIiIiCiAgICBBY2NvdW50VHlwZQogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIEVYQ0hBTkdFX0FDQ09VTlQgPSAnRVhDSEFOR0VfQUNDT1VOVCcKICAgIFVOTUFOQUdFRF9XQUxMRVQgPSAnVU5NQU5BR0VEX1dBTExFVCcKICAgIFZBVUxUX0FDQ09VTlQgPSAnVkFVTFRfQUNDT1VOVCcKICAgIE5FVFdPUktfQ09OTkVDVElPTiA9ICdORVRXT1JLX0NPTk5FQ1RJT04nCiAgICBGSUFUX0FDQ09VTlQgPSAnRklBVF9BQ0NPVU5UJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFjY291bnRUeXBlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/account_type2.py b/fireblocks/models/account_type2.py index 1e4e67bc..2f811059 100644 --- a/fireblocks/models/account_type2.py +++ b/fireblocks/models/account_type2.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class AccountType2(str, Enum): - """ - Type of account - """ - - """ - allowed enum values - """ - EXCHANGE = 'EXCHANGE' - UNMANAGED = 'UNMANAGED' - VAULT = 'VAULT' - GLOBAL_WHITELIST = 'GLOBAL_WHITELIST' - NETWORK_CONNECTION = 'NETWORK_CONNECTION' - FIAT_ACCOUNT = 'FIAT_ACCOUNT' - CONNECTED_ACCOUNT = 'CONNECTED_ACCOUNT' - ONE_TIME_ADDRESS = 'ONE_TIME_ADDRESS' - SRC_DST_NA = 'SRC_DST_NA' - MULTIPLE_VENUES = 'MULTIPLE_VENUES' - END_USER_WALLET = 'END_USER_WALLET' - OEC_PARTNER = 'OEC_PARTNER' - CONTRACT = 'CONTRACT' - INTERNAL = 'INTERNAL' - EXTERNAL = 'EXTERNAL' - DAPP_CONNECTION = 'DAPP_CONNECTION' - UNKNOWN = 'UNKNOWN' - STAR = '*' - ANY = 'ANY' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of AccountType2 from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBBY2NvdW50VHlwZTIoc3RyLCBFbnVtKToKICAgICIiIgogICAgVHlwZSBvZiBhY2NvdW50CiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgRVhDSEFOR0UgPSAnRVhDSEFOR0UnCiAgICBVTk1BTkFHRUQgPSAnVU5NQU5BR0VEJwogICAgVkFVTFQgPSAnVkFVTFQnCiAgICBHTE9CQUxfV0hJVEVMSVNUID0gJ0dMT0JBTF9XSElURUxJU1QnCiAgICBORVRXT1JLX0NPTk5FQ1RJT04gPSAnTkVUV09SS19DT05ORUNUSU9OJwogICAgRklBVF9BQ0NPVU5UID0gJ0ZJQVRfQUNDT1VOVCcKICAgIENPTk5FQ1RFRF9BQ0NPVU5UID0gJ0NPTk5FQ1RFRF9BQ0NPVU5UJwogICAgT05FX1RJTUVfQUREUkVTUyA9ICdPTkVfVElNRV9BRERSRVNTJwogICAgU1JDX0RTVF9OQSA9ICdTUkNfRFNUX05BJwogICAgTVVMVElQTEVfVkVOVUVTID0gJ01VTFRJUExFX1ZFTlVFUycKICAgIEVORF9VU0VSX1dBTExFVCA9ICdFTkRfVVNFUl9XQUxMRVQnCiAgICBPRUNfUEFSVE5FUiA9ICdPRUNfUEFSVE5FUicKICAgIENPTlRSQUNUID0gJ0NPTlRSQUNUJwogICAgSU5URVJOQUwgPSAnSU5URVJOQUwnCiAgICBFWFRFUk5BTCA9ICdFWFRFUk5BTCcKICAgIERBUFBfQ09OTkVDVElPTiA9ICdEQVBQX0NPTk5FQ1RJT04nCiAgICBVTktOT1dOID0gJ1VOS05PV04nCiAgICBTVEFSID0gJyonCiAgICBBTlkgPSAnQU5ZJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFjY291bnRUeXBlMiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/ach_account_type.py b/fireblocks/models/ach_account_type.py index f2710f0a..682d9fa0 100644 --- a/fireblocks/models/ach_account_type.py +++ b/fireblocks/models/ach_account_type.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class AchAccountType(str, Enum): - """ - Type of the bank account. - """ - - """ - allowed enum values - """ - CHECKING = 'CHECKING' - SAVINGS = 'SAVINGS' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of AchAccountType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBBY2hBY2NvdW50VHlwZShzdHIsIEVudW0pOgogICAgIiIiCiAgICBUeXBlIG9mIHRoZSBiYW5rIGFjY291bnQuCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgQ0hFQ0tJTkcgPSAnQ0hFQ0tJTkcnCiAgICBTQVZJTkdTID0gJ1NBVklOR1MnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNoQWNjb3VudFR5cGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/ach_address.py b/fireblocks/models/ach_address.py index c8bc4c4c..ffa08edd 100644 --- a/fireblocks/models/ach_address.py +++ b/fireblocks/models/ach_address.py @@ -1,116 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from fireblocks.models.account_holder_details import AccountHolderDetails -from fireblocks.models.ach_account_type import AchAccountType -from typing import Optional, Set -from typing_extensions import Self - -class AchAddress(BaseModel): - """ - AchAddress - """ # noqa: E501 - account_holder: AccountHolderDetails = Field(alias="accountHolder") - bank_name: Optional[StrictStr] = Field(default=None, description="Name of the bank.", alias="bankName") - bank_account_number: Annotated[str, Field(strict=True)] = Field(description="The bank account number for the ACH transfer.", alias="bankAccountNumber") - routing_number: Annotated[str, Field(strict=True)] = Field(description="Routing number identifying the bank account.", alias="routingNumber") - account_type: AchAccountType = Field(alias="accountType") - __properties: ClassVar[List[str]] = ["accountHolder", "bankName", "bankAccountNumber", "routingNumber", "accountType"] - - @field_validator('bank_account_number') - def bank_account_number_validate_regular_expression(cls, value): - """Validates the regular expression""" - if not re.match(r"^\d{4,17}$", value): - raise ValueError(r"must validate the regular expression /^\d{4,17}$/") - return value - - @field_validator('routing_number') - def routing_number_validate_regular_expression(cls, value): - """Validates the regular expression""" - if not re.match(r"^\d{9}$", value): - raise ValueError(r"must validate the regular expression /^\d{9}$/") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AchAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of account_holder - if self.account_holder: - _dict['accountHolder'] = self.account_holder.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AchAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None, - "bankName": obj.get("bankName"), - "bankAccountNumber": obj.get("bankAccountNumber"), - "routingNumber": obj.get("routingNumber"), - "accountType": obj.get("accountType") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaG9sZGVyX2RldGFpbHMgaW1wb3J0IEFjY291bnRIb2xkZXJEZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNoX2FjY291bnRfdHlwZSBpbXBvcnQgQWNoQWNjb3VudFR5cGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQWNoQWRkcmVzcyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBY2hBZGRyZXNzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhY2NvdW50X2hvbGRlcjogQWNjb3VudEhvbGRlckRldGFpbHMgPSBGaWVsZChhbGlhcz0iYWNjb3VudEhvbGRlciIpCiAgICBiYW5rX25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOYW1lIG9mIHRoZSBiYW5rLiIsIGFsaWFzPSJiYW5rTmFtZSIpCiAgICBiYW5rX2FjY291bnRfbnVtYmVyOiBBbm5vdGF0ZWRbc3RyLCBGaWVsZChzdHJpY3Q9VHJ1ZSldID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBiYW5rIGFjY291bnQgbnVtYmVyIGZvciB0aGUgQUNIIHRyYW5zZmVyLiIsIGFsaWFzPSJiYW5rQWNjb3VudE51bWJlciIpCiAgICByb3V0aW5nX251bWJlcjogQW5ub3RhdGVkW3N0ciwgRmllbGQoc3RyaWN0PVRydWUpXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJSb3V0aW5nIG51bWJlciBpZGVudGlmeWluZyB0aGUgYmFuayBhY2NvdW50LiIsIGFsaWFzPSJyb3V0aW5nTnVtYmVyIikKICAgIGFjY291bnRfdHlwZTogQWNoQWNjb3VudFR5cGUgPSBGaWVsZChhbGlhcz0iYWNjb3VudFR5cGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhY2NvdW50SG9sZGVyIiwgImJhbmtOYW1lIiwgImJhbmtBY2NvdW50TnVtYmVyIiwgInJvdXRpbmdOdW1iZXIiLCAiYWNjb3VudFR5cGUiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2JhbmtfYWNjb3VudF9udW1iZXInKQogICAgZGVmIGJhbmtfYWNjb3VudF9udW1iZXJfdmFsaWRhdGVfcmVndWxhcl9leHByZXNzaW9uKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgcmVndWxhciBleHByZXNzaW9uIiIiCiAgICAgICAgaWYgbm90IHJlLm1hdGNoKHIiXlxkezQsMTd9JCIsIHZhbHVlKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihyIm11c3QgdmFsaWRhdGUgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiAvXlxkezQsMTd9JC8iKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3JvdXRpbmdfbnVtYmVyJykKICAgIGRlZiByb3V0aW5nX251bWJlcl92YWxpZGF0ZV9yZWd1bGFyX2V4cHJlc3Npb24oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSByZWd1bGFyIGV4cHJlc3Npb24iIiIKICAgICAgICBpZiBub3QgcmUubWF0Y2gociJeXGR7OX0kIiwgdmFsdWUpOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKHIibXVzdCB2YWxpZGF0ZSB0aGUgcmVndWxhciBleHByZXNzaW9uIC9eXGR7OX0kLyIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNoQWRkcmVzcyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFjY291bnRfaG9sZGVyCiAgICAgICAgaWYgc2VsZi5hY2NvdW50X2hvbGRlcjoKICAgICAgICAgICAgX2RpY3RbJ2FjY291bnRIb2xkZXInXSA9IHNlbGYuYWNjb3VudF9ob2xkZXIudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBY2hBZGRyZXNzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFjY291bnRIb2xkZXIiOiBBY2NvdW50SG9sZGVyRGV0YWlscy5mcm9tX2RpY3Qob2JqWyJhY2NvdW50SG9sZGVyIl0pIGlmIG9iai5nZXQoImFjY291bnRIb2xkZXIiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJiYW5rTmFtZSI6IG9iai5nZXQoImJhbmtOYW1lIiksCiAgICAgICAgICAgICJiYW5rQWNjb3VudE51bWJlciI6IG9iai5nZXQoImJhbmtBY2NvdW50TnVtYmVyIiksCiAgICAgICAgICAgICJyb3V0aW5nTnVtYmVyIjogb2JqLmdldCgicm91dGluZ051bWJlciIpLAogICAgICAgICAgICAiYWNjb3VudFR5cGUiOiBvYmouZ2V0KCJhY2NvdW50VHlwZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/ach_destination.py b/fireblocks/models/ach_destination.py index e6b3b7cb..da11bf37 100644 --- a/fireblocks/models/ach_destination.py +++ b/fireblocks/models/ach_destination.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from fireblocks.models.ach_address import AchAddress -from typing import Optional, Set -from typing_extensions import Self - -class AchDestination(BaseModel): - """ - AchDestination - """ # noqa: E501 - type: StrictStr - address: AchAddress - __properties: ClassVar[List[str]] = ["type", "address"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['ACH']): - raise ValueError("must be one of enum values ('ACH')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AchDestination from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of address - if self.address: - _dict['address'] = self.address.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AchDestination from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "address": AchAddress.from_dict(obj["address"]) if obj.get("address") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjaF9hZGRyZXNzIGltcG9ydCBBY2hBZGRyZXNzCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEFjaERlc3RpbmF0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFjaERlc3RpbmF0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBTdHJpY3RTdHIKICAgIGFkZHJlc3M6IEFjaEFkZHJlc3MKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidHlwZSIsICJhZGRyZXNzIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCd0eXBlJykKICAgIGRlZiB0eXBlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0FDSCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdBQ0gnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNoRGVzdGluYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhZGRyZXNzCiAgICAgICAgaWYgc2VsZi5hZGRyZXNzOgogICAgICAgICAgICBfZGljdFsnYWRkcmVzcyddID0gc2VsZi5hZGRyZXNzLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNoRGVzdGluYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImFkZHJlc3MiOiBBY2hBZGRyZXNzLmZyb21fZGljdChvYmpbImFkZHJlc3MiXSkgaWYgb2JqLmdldCgiYWRkcmVzcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/ach_payment_info.py b/fireblocks/models/ach_payment_info.py index 66b9ce5e..4d1e8d88 100644 --- a/fireblocks/models/ach_payment_info.py +++ b/fireblocks/models/ach_payment_info.py @@ -1,123 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class AchPaymentInfo(BaseModel): - """ - ACH payment information for US Automated Clearing House transfers - """ # noqa: E501 - rail: StrictStr = Field(description="The payment rail type for ACH transfers") - addressing_system: StrictStr = Field(description="The addressing system used for ACH transfers", alias="addressingSystem") - account_holder_given_name: StrictStr = Field(description="The given name (first name) of the account holder", alias="accountHolderGivenName") - account_holder_surname: StrictStr = Field(description="The surname (last name) of the account holder", alias="accountHolderSurname") - country: StrictStr = Field(description="The country for the transfer (ISO 3166-1 alpha-2 code)") - account_number: StrictStr = Field(description="The bank account number", alias="accountNumber") - routing_number: StrictStr = Field(description="The bank routing number (ABA routing number)", alias="routingNumber") - account_type: StrictStr = Field(description="The type of bank account", alias="accountType") - __properties: ClassVar[List[str]] = ["rail", "addressingSystem", "accountHolderGivenName", "accountHolderSurname", "country", "accountNumber", "routingNumber", "accountType"] - - @field_validator('rail') - def rail_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['ACH']): - raise ValueError("must be one of enum values ('ACH')") - return value - - @field_validator('addressing_system') - def addressing_system_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['ACH']): - raise ValueError("must be one of enum values ('ACH')") - return value - - @field_validator('account_type') - def account_type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['CHECKING', 'SAVINGS']): - raise ValueError("must be one of enum values ('CHECKING', 'SAVINGS')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AchPaymentInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AchPaymentInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "rail": obj.get("rail"), - "addressingSystem": obj.get("addressingSystem"), - "accountHolderGivenName": obj.get("accountHolderGivenName"), - "accountHolderSurname": obj.get("accountHolderSurname"), - "country": obj.get("country"), - "accountNumber": obj.get("accountNumber"), - "routingNumber": obj.get("routingNumber"), - "accountType": obj.get("accountType") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQWNoUGF5bWVudEluZm8oQmFzZU1vZGVsKToKICAgICIiIgogICAgQUNIIHBheW1lbnQgaW5mb3JtYXRpb24gZm9yIFVTIEF1dG9tYXRlZCBDbGVhcmluZyBIb3VzZSB0cmFuc2ZlcnMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHJhaWw6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgcGF5bWVudCByYWlsIHR5cGUgZm9yIEFDSCB0cmFuc2ZlcnMiKQogICAgYWRkcmVzc2luZ19zeXN0ZW06IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYWRkcmVzc2luZyBzeXN0ZW0gdXNlZCBmb3IgQUNIIHRyYW5zZmVycyIsIGFsaWFzPSJhZGRyZXNzaW5nU3lzdGVtIikKICAgIGFjY291bnRfaG9sZGVyX2dpdmVuX25hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZ2l2ZW4gbmFtZSAoZmlyc3QgbmFtZSkgb2YgdGhlIGFjY291bnQgaG9sZGVyIiwgYWxpYXM9ImFjY291bnRIb2xkZXJHaXZlbk5hbWUiKQogICAgYWNjb3VudF9ob2xkZXJfc3VybmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBzdXJuYW1lIChsYXN0IG5hbWUpIG9mIHRoZSBhY2NvdW50IGhvbGRlciIsIGFsaWFzPSJhY2NvdW50SG9sZGVyU3VybmFtZSIpCiAgICBjb3VudHJ5OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNvdW50cnkgZm9yIHRoZSB0cmFuc2ZlciAoSVNPIDMxNjYtMSBhbHBoYS0yIGNvZGUpIikKICAgIGFjY291bnRfbnVtYmVyOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGJhbmsgYWNjb3VudCBudW1iZXIiLCBhbGlhcz0iYWNjb3VudE51bWJlciIpCiAgICByb3V0aW5nX251bWJlcjogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBiYW5rIHJvdXRpbmcgbnVtYmVyIChBQkEgcm91dGluZyBudW1iZXIpIiwgYWxpYXM9InJvdXRpbmdOdW1iZXIiKQogICAgYWNjb3VudF90eXBlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHR5cGUgb2YgYmFuayBhY2NvdW50IiwgYWxpYXM9ImFjY291bnRUeXBlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicmFpbCIsICJhZGRyZXNzaW5nU3lzdGVtIiwgImFjY291bnRIb2xkZXJHaXZlbk5hbWUiLCAiYWNjb3VudEhvbGRlclN1cm5hbWUiLCAiY291bnRyeSIsICJhY2NvdW50TnVtYmVyIiwgInJvdXRpbmdOdW1iZXIiLCAiYWNjb3VudFR5cGUiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3JhaWwnKQogICAgZGVmIHJhaWxfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnQUNIJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0FDSCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhZGRyZXNzaW5nX3N5c3RlbScpCiAgICBkZWYgYWRkcmVzc2luZ19zeXN0ZW1fdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnQUNIJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0FDSCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhY2NvdW50X3R5cGUnKQogICAgZGVmIGFjY291bnRfdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydDSEVDS0lORycsICdTQVZJTkdTJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0NIRUNLSU5HJywgJ1NBVklOR1MnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNoUGF5bWVudEluZm8gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWNoUGF5bWVudEluZm8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicmFpbCI6IG9iai5nZXQoInJhaWwiKSwKICAgICAgICAgICAgImFkZHJlc3NpbmdTeXN0ZW0iOiBvYmouZ2V0KCJhZGRyZXNzaW5nU3lzdGVtIiksCiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyR2l2ZW5OYW1lIjogb2JqLmdldCgiYWNjb3VudEhvbGRlckdpdmVuTmFtZSIpLAogICAgICAgICAgICAiYWNjb3VudEhvbGRlclN1cm5hbWUiOiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyU3VybmFtZSIpLAogICAgICAgICAgICAiY291bnRyeSI6IG9iai5nZXQoImNvdW50cnkiKSwKICAgICAgICAgICAgImFjY291bnROdW1iZXIiOiBvYmouZ2V0KCJhY2NvdW50TnVtYmVyIiksCiAgICAgICAgICAgICJyb3V0aW5nTnVtYmVyIjogb2JqLmdldCgicm91dGluZ051bWJlciIpLAogICAgICAgICAgICAiYWNjb3VudFR5cGUiOiBvYmouZ2V0KCJhY2NvdW50VHlwZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/adapter_processing_result.py b/fireblocks/models/adapter_processing_result.py index 9c3422cd..8083e493 100644 --- a/fireblocks/models/adapter_processing_result.py +++ b/fireblocks/models/adapter_processing_result.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class AdapterProcessingResult(BaseModel): - """ - AdapterProcessingResult - """ # noqa: E501 - input_token_link_id: StrictStr = Field(description="The input token link ID", alias="inputTokenLinkId") - adapter_link_id: StrictStr = Field(description="The adapter link ID", alias="adapterLinkId") - __properties: ClassVar[List[str]] = ["inputTokenLinkId", "adapterLinkId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AdapterProcessingResult from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AdapterProcessingResult from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "inputTokenLinkId": obj.get("inputTokenLinkId"), - "adapterLinkId": obj.get("adapterLinkId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEFkYXB0ZXJQcm9jZXNzaW5nUmVzdWx0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFkYXB0ZXJQcm9jZXNzaW5nUmVzdWx0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpbnB1dF90b2tlbl9saW5rX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGlucHV0IHRva2VuIGxpbmsgSUQiLCBhbGlhcz0iaW5wdXRUb2tlbkxpbmtJZCIpCiAgICBhZGFwdGVyX2xpbmtfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYWRhcHRlciBsaW5rIElEIiwgYWxpYXM9ImFkYXB0ZXJMaW5rSWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpbnB1dFRva2VuTGlua0lkIiwgImFkYXB0ZXJMaW5rSWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkYXB0ZXJQcm9jZXNzaW5nUmVzdWx0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkYXB0ZXJQcm9jZXNzaW5nUmVzdWx0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlucHV0VG9rZW5MaW5rSWQiOiBvYmouZ2V0KCJpbnB1dFRva2VuTGlua0lkIiksCiAgICAgICAgICAgICJhZGFwdGVyTGlua0lkIjogb2JqLmdldCgiYWRhcHRlckxpbmtJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/add_abi_request_dto.py b/fireblocks/models/add_abi_request_dto.py index f400f481..a5e2d972 100644 --- a/fireblocks/models/add_abi_request_dto.py +++ b/fireblocks/models/add_abi_request_dto.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.abi_function import AbiFunction -from typing import Optional, Set -from typing_extensions import Self - -class AddAbiRequestDto(BaseModel): - """ - AddAbiRequestDto - """ # noqa: E501 - contract_address: StrictStr = Field(description="The address of deployed contract", alias="contractAddress") - base_asset_id: StrictStr = Field(description="The blockchain base assetId", alias="baseAssetId") - abi: List[AbiFunction] = Field(description="The ABI of the contract") - name: Optional[StrictStr] = Field(default=None, description="The name of the contract") - __properties: ClassVar[List[str]] = ["contractAddress", "baseAssetId", "abi", "name"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AddAbiRequestDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in abi (list) - _items = [] - if self.abi: - for _item_abi in self.abi: - if _item_abi: - _items.append(_item_abi.to_dict()) - _dict['abi'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AddAbiRequestDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "contractAddress": obj.get("contractAddress"), - "baseAssetId": obj.get("baseAssetId"), - "abi": [AbiFunction.from_dict(_item) for _item in obj["abi"]] if obj.get("abi") is not None else None, - "name": obj.get("name") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFiaV9mdW5jdGlvbiBpbXBvcnQgQWJpRnVuY3Rpb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQWRkQWJpUmVxdWVzdER0byhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBZGRBYmlSZXF1ZXN0RHRvCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBjb250cmFjdF9hZGRyZXNzOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGFkZHJlc3Mgb2YgZGVwbG95ZWQgY29udHJhY3QiLCBhbGlhcz0iY29udHJhY3RBZGRyZXNzIikKICAgIGJhc2VfYXNzZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQiLCBhbGlhcz0iYmFzZUFzc2V0SWQiKQogICAgYWJpOiBMaXN0W0FiaUZ1bmN0aW9uXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgQUJJIG9mIHRoZSBjb250cmFjdCIpCiAgICBuYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIG5hbWUgb2YgdGhlIGNvbnRyYWN0IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiY29udHJhY3RBZGRyZXNzIiwgImJhc2VBc3NldElkIiwgImFiaSIsICJuYW1lIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGRBYmlSZXF1ZXN0RHRvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGFiaSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuYWJpOgogICAgICAgICAgICBmb3IgX2l0ZW1fYWJpIGluIHNlbGYuYWJpOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fYWJpOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fYWJpLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2FiaSddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGRBYmlSZXF1ZXN0RHRvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImNvbnRyYWN0QWRkcmVzcyI6IG9iai5nZXQoImNvbnRyYWN0QWRkcmVzcyIpLAogICAgICAgICAgICAiYmFzZUFzc2V0SWQiOiBvYmouZ2V0KCJiYXNlQXNzZXRJZCIpLAogICAgICAgICAgICAiYWJpIjogW0FiaUZ1bmN0aW9uLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiYWJpIl1dIGlmIG9iai5nZXQoImFiaSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/add_asset_to_external_wallet_request.py b/fireblocks/models/add_asset_to_external_wallet_request.py index 6586e73c..697473d5 100644 --- a/fireblocks/models/add_asset_to_external_wallet_request.py +++ b/fireblocks/models/add_asset_to_external_wallet_request.py @@ -1,138 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.additional_info_request import AdditionalInfoRequest -from fireblocks.models.basic_address_request import BasicAddressRequest -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -ADDASSETTOEXTERNALWALLETREQUEST_ONE_OF_SCHEMAS = ["AdditionalInfoRequest", "BasicAddressRequest"] - -class AddAssetToExternalWalletRequest(BaseModel): - """ - Request schema for adding an asset to an external wallet - """ - # data type: BasicAddressRequest - oneof_schema_1_validator: Optional[BasicAddressRequest] = None - # data type: AdditionalInfoRequest - oneof_schema_2_validator: Optional[AdditionalInfoRequest] = None - actual_instance: Optional[Union[AdditionalInfoRequest, BasicAddressRequest]] = None - one_of_schemas: Set[str] = { "AdditionalInfoRequest", "BasicAddressRequest" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = AddAssetToExternalWalletRequest.model_construct() - error_messages = [] - match = 0 - # validate data type: BasicAddressRequest - if not isinstance(v, BasicAddressRequest): - error_messages.append(f"Error! Input type `{type(v)}` is not `BasicAddressRequest`") - else: - match += 1 - # validate data type: AdditionalInfoRequest - if not isinstance(v, AdditionalInfoRequest): - error_messages.append(f"Error! Input type `{type(v)}` is not `AdditionalInfoRequest`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in AddAssetToExternalWalletRequest with oneOf schemas: AdditionalInfoRequest, BasicAddressRequest. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in AddAssetToExternalWalletRequest with oneOf schemas: AdditionalInfoRequest, BasicAddressRequest. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into BasicAddressRequest - try: - instance.actual_instance = BasicAddressRequest.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into AdditionalInfoRequest - try: - instance.actual_instance = AdditionalInfoRequest.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into AddAssetToExternalWalletRequest with oneOf schemas: AdditionalInfoRequest, BasicAddressRequest. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into AddAssetToExternalWalletRequest with oneOf schemas: AdditionalInfoRequest, BasicAddressRequest. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], AdditionalInfoRequest, BasicAddressRequest]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkaXRpb25hbF9pbmZvX3JlcXVlc3QgaW1wb3J0IEFkZGl0aW9uYWxJbmZvUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJhc2ljX2FkZHJlc3NfcmVxdWVzdCBpbXBvcnQgQmFzaWNBZGRyZXNzUmVxdWVzdApmcm9tIHB5ZGFudGljIGltcG9ydCBTdHJpY3RTdHIsIEZpZWxkCmZyb20gdHlwaW5nIGltcG9ydCBVbmlvbiwgTGlzdCwgU2V0LCBPcHRpb25hbCwgRGljdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBMaXRlcmFsLCBTZWxmCgpBRERBU1NFVFRPRVhURVJOQUxXQUxMRVRSRVFVRVNUX09ORV9PRl9TQ0hFTUFTID0gWyJBZGRpdGlvbmFsSW5mb1JlcXVlc3QiLCAiQmFzaWNBZGRyZXNzUmVxdWVzdCJdCgpjbGFzcyBBZGRBc3NldFRvRXh0ZXJuYWxXYWxsZXRSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFJlcXVlc3Qgc2NoZW1hIGZvciBhZGRpbmcgYW4gYXNzZXQgdG8gYW4gZXh0ZXJuYWwgd2FsbGV0CiAgICAiIiIKICAgICMgZGF0YSB0eXBlOiBCYXNpY0FkZHJlc3NSZXF1ZXN0CiAgICBvbmVvZl9zY2hlbWFfMV92YWxpZGF0b3I6IE9wdGlvbmFsW0Jhc2ljQWRkcmVzc1JlcXVlc3RdID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IEFkZGl0aW9uYWxJbmZvUmVxdWVzdAogICAgb25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yOiBPcHRpb25hbFtBZGRpdGlvbmFsSW5mb1JlcXVlc3RdID0gTm9uZQogICAgYWN0dWFsX2luc3RhbmNlOiBPcHRpb25hbFtVbmlvbltBZGRpdGlvbmFsSW5mb1JlcXVlc3QsIEJhc2ljQWRkcmVzc1JlcXVlc3RdXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgIkFkZGl0aW9uYWxJbmZvUmVxdWVzdCIsICJCYXNpY0FkZHJlc3NSZXF1ZXN0IiB9CgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gQWRkQXNzZXRUb0V4dGVybmFsV2FsbGV0UmVxdWVzdC5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogQmFzaWNBZGRyZXNzUmVxdWVzdAogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIEJhc2ljQWRkcmVzc1JlcXVlc3QpOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYEJhc2ljQWRkcmVzc1JlcXVlc3RgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IEFkZGl0aW9uYWxJbmZvUmVxdWVzdAogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIEFkZGl0aW9uYWxJbmZvUmVxdWVzdCk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgQWRkaXRpb25hbEluZm9SZXF1ZXN0YCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBBZGRBc3NldFRvRXh0ZXJuYWxXYWxsZXRSZXF1ZXN0IHdpdGggb25lT2Ygc2NoZW1hczogQWRkaXRpb25hbEluZm9SZXF1ZXN0LCBCYXNpY0FkZHJlc3NSZXF1ZXN0LiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIEFkZEFzc2V0VG9FeHRlcm5hbFdhbGxldFJlcXVlc3Qgd2l0aCBvbmVPZiBzY2hlbWFzOiBBZGRpdGlvbmFsSW5mb1JlcXVlc3QsIEJhc2ljQWRkcmVzc1JlcXVlc3QuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBVbmlvbltzdHIsIERpY3Rbc3RyLCBBbnldXSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCgogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIEJhc2ljQWRkcmVzc1JlcXVlc3QKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IEJhc2ljQWRkcmVzc1JlcXVlc3QuZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gQWRkaXRpb25hbEluZm9SZXF1ZXN0CiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBBZGRpdGlvbmFsSW5mb1JlcXVlc3QuZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCgogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBBZGRBc3NldFRvRXh0ZXJuYWxXYWxsZXRSZXF1ZXN0IHdpdGggb25lT2Ygc2NoZW1hczogQWRkaXRpb25hbEluZm9SZXF1ZXN0LCBCYXNpY0FkZHJlc3NSZXF1ZXN0LiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIEFkZEFzc2V0VG9FeHRlcm5hbFdhbGxldFJlcXVlc3Qgd2l0aCBvbmVPZiBzY2hlbWFzOiBBZGRpdGlvbmFsSW5mb1JlcXVlc3QsIEJhc2ljQWRkcmVzc1JlcXVlc3QuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gIm51bGwiCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19qc29uIikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24pOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbigpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi5hY3R1YWxfaW5zdGFuY2UpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gT3B0aW9uYWxbVW5pb25bRGljdFtzdHIsIEFueV0sIEFkZGl0aW9uYWxJbmZvUmVxdWVzdCwgQmFzaWNBZGRyZXNzUmVxdWVzdF1dOgogICAgICAgICIiIlJldHVybnMgdGhlIGRpY3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19kaWN0IikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QpOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCgpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgIyBwcmltaXRpdmUgdHlwZQogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/add_collateral_request_body.py b/fireblocks/models/add_collateral_request_body.py index b5377a73..4c5db072 100644 --- a/fireblocks/models/add_collateral_request_body.py +++ b/fireblocks/models/add_collateral_request_body.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.transaction_request import TransactionRequest -from typing import Optional, Set -from typing_extensions import Self - -class AddCollateralRequestBody(BaseModel): - """ - AddCollateralRequestBody - """ # noqa: E501 - transaction_request: Optional[TransactionRequest] = Field(default=None, alias="transactionRequest") - is_src_collateral: Optional[StrictBool] = Field(default=None, description="optional", alias="isSrcCollateral") - __properties: ClassVar[List[str]] = ["transactionRequest", "isSrcCollateral"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AddCollateralRequestBody from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of transaction_request - if self.transaction_request: - _dict['transactionRequest'] = self.transaction_request.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AddCollateralRequestBody from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "transactionRequest": TransactionRequest.from_dict(obj["transactionRequest"]) if obj.get("transactionRequest") is not None else None, - "isSrcCollateral": obj.get("isSrcCollateral") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZXF1ZXN0IGltcG9ydCBUcmFuc2FjdGlvblJlcXVlc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQWRkQ29sbGF0ZXJhbFJlcXVlc3RCb2R5KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFkZENvbGxhdGVyYWxSZXF1ZXN0Qm9keQogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHJhbnNhY3Rpb25fcmVxdWVzdDogT3B0aW9uYWxbVHJhbnNhY3Rpb25SZXF1ZXN0XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InRyYW5zYWN0aW9uUmVxdWVzdCIpCiAgICBpc19zcmNfY29sbGF0ZXJhbDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJvcHRpb25hbCIsIGFsaWFzPSJpc1NyY0NvbGxhdGVyYWwiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0cmFuc2FjdGlvblJlcXVlc3QiLCAiaXNTcmNDb2xsYXRlcmFsIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGRDb2xsYXRlcmFsUmVxdWVzdEJvZHkgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiB0cmFuc2FjdGlvbl9yZXF1ZXN0CiAgICAgICAgaWYgc2VsZi50cmFuc2FjdGlvbl9yZXF1ZXN0OgogICAgICAgICAgICBfZGljdFsndHJhbnNhY3Rpb25SZXF1ZXN0J10gPSBzZWxmLnRyYW5zYWN0aW9uX3JlcXVlc3QudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGRDb2xsYXRlcmFsUmVxdWVzdEJvZHkgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHJhbnNhY3Rpb25SZXF1ZXN0IjogVHJhbnNhY3Rpb25SZXF1ZXN0LmZyb21fZGljdChvYmpbInRyYW5zYWN0aW9uUmVxdWVzdCJdKSBpZiBvYmouZ2V0KCJ0cmFuc2FjdGlvblJlcXVlc3QiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJpc1NyY0NvbGxhdGVyYWwiOiBvYmouZ2V0KCJpc1NyY0NvbGxhdGVyYWwiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/add_contract_asset_request.py b/fireblocks/models/add_contract_asset_request.py index 0e9ff4b8..f5eecee4 100644 --- a/fireblocks/models/add_contract_asset_request.py +++ b/fireblocks/models/add_contract_asset_request.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class AddContractAssetRequest(BaseModel): - """ - AddContractAssetRequest - """ # noqa: E501 - address: StrictStr = Field(description="The contract's address (or xpub) of the wallet") - tag: Optional[StrictStr] = Field(default=None, description="The destination tag, for XRP wallets") - __properties: ClassVar[List[str]] = ["address", "tag"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AddContractAssetRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AddContractAssetRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "address": obj.get("address"), - "tag": obj.get("tag") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBZGRDb250cmFjdEFzc2V0UmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBZGRDb250cmFjdEFzc2V0UmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgYWRkcmVzczogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBjb250cmFjdCdzIGFkZHJlc3MgKG9yIHhwdWIpIG9mIHRoZSB3YWxsZXQiKQogICAgdGFnOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGRlc3RpbmF0aW9uIHRhZywgZm9yIFhSUCB3YWxsZXRzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYWRkcmVzcyIsICJ0YWciXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkZENvbnRyYWN0QXNzZXRSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkZENvbnRyYWN0QXNzZXRSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFkZHJlc3MiOiBvYmouZ2V0KCJhZGRyZXNzIiksCiAgICAgICAgICAgICJ0YWciOiBvYmouZ2V0KCJ0YWciKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/add_cosigner_request.py b/fireblocks/models/add_cosigner_request.py index 820e793b..311f8ec0 100644 --- a/fireblocks/models/add_cosigner_request.py +++ b/fireblocks/models/add_cosigner_request.py @@ -1,93 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class AddCosignerRequest(BaseModel): - """ - AddCosignerRequest - """ # noqa: E501 - api_key_id: StrictStr = Field(description="The id of the API key to be paired with the cosigner", alias="apiKeyId") - name: Annotated[str, Field(min_length=1, strict=True)] = Field(description="The name of the cosigner") - existing_cosigner: Optional[StrictBool] = Field(default=False, description="Whether the cosigner already exists in another workspace", alias="existingCosigner") - __properties: ClassVar[List[str]] = ["apiKeyId", "name", "existingCosigner"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AddCosignerRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AddCosignerRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "apiKeyId": obj.get("apiKeyId"), - "name": obj.get("name"), - "existingCosigner": obj.get("existingCosigner") if obj.get("existingCosigner") is not None else False - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQWRkQ29zaWduZXJSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFkZENvc2lnbmVyUmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgYXBpX2tleV9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBpZCBvZiB0aGUgQVBJIGtleSB0byBiZSBwYWlyZWQgd2l0aCB0aGUgY29zaWduZXIiLCBhbGlhcz0iYXBpS2V5SWQiKQogICAgbmFtZTogQW5ub3RhdGVkW3N0ciwgRmllbGQobWluX2xlbmd0aD0xLCBzdHJpY3Q9VHJ1ZSldID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBuYW1lIG9mIHRoZSBjb3NpZ25lciIpCiAgICBleGlzdGluZ19jb3NpZ25lcjogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PUZhbHNlLCBkZXNjcmlwdGlvbj0iV2hldGhlciB0aGUgY29zaWduZXIgYWxyZWFkeSBleGlzdHMgaW4gYW5vdGhlciB3b3Jrc3BhY2UiLCBhbGlhcz0iZXhpc3RpbmdDb3NpZ25lciIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFwaUtleUlkIiwgIm5hbWUiLCAiZXhpc3RpbmdDb3NpZ25lciJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWRkQ29zaWduZXJSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkZENvc2lnbmVyUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhcGlLZXlJZCI6IG9iai5nZXQoImFwaUtleUlkIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAiZXhpc3RpbmdDb3NpZ25lciI6IG9iai5nZXQoImV4aXN0aW5nQ29zaWduZXIiKSBpZiBvYmouZ2V0KCJleGlzdGluZ0Nvc2lnbmVyIikgaXMgbm90IE5vbmUgZWxzZSBGYWxzZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/add_cosigner_response.py b/fireblocks/models/add_cosigner_response.py index bb4a06c4..ff5a18ea 100644 --- a/fireblocks/models/add_cosigner_response.py +++ b/fireblocks/models/add_cosigner_response.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class AddCosignerResponse(BaseModel): - """ - AddCosignerResponse - """ # noqa: E501 - api_key_id: StrictStr = Field(description="The id of the API key to be paired with the cosigner", alias="apiKeyId") - name: Annotated[str, Field(min_length=1, strict=True)] = Field(description="The name of the cosigner") - existing_cosigner: Optional[StrictBool] = Field(default=False, description="Whether the cosigner already exists in another workspace", alias="existingCosigner") - pending_cosigner_id: StrictStr = Field(description="The unique identifier of a pending cosigner", alias="pendingCosignerId") - __properties: ClassVar[List[str]] = ["apiKeyId", "name", "existingCosigner", "pendingCosignerId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AddCosignerResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AddCosignerResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "apiKeyId": obj.get("apiKeyId"), - "name": obj.get("name"), - "existingCosigner": obj.get("existingCosigner") if obj.get("existingCosigner") is not None else False, - "pendingCosignerId": obj.get("pendingCosignerId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQWRkQ29zaWduZXJSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBZGRDb3NpZ25lclJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhcGlfa2V5X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGlkIG9mIHRoZSBBUEkga2V5IHRvIGJlIHBhaXJlZCB3aXRoIHRoZSBjb3NpZ25lciIsIGFsaWFzPSJhcGlLZXlJZCIpCiAgICBuYW1lOiBBbm5vdGF0ZWRbc3RyLCBGaWVsZChtaW5fbGVuZ3RoPTEsIHN0cmljdD1UcnVlKV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIG5hbWUgb2YgdGhlIGNvc2lnbmVyIikKICAgIGV4aXN0aW5nX2Nvc2lnbmVyOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9RmFsc2UsIGRlc2NyaXB0aW9uPSJXaGV0aGVyIHRoZSBjb3NpZ25lciBhbHJlYWR5IGV4aXN0cyBpbiBhbm90aGVyIHdvcmtzcGFjZSIsIGFsaWFzPSJleGlzdGluZ0Nvc2lnbmVyIikKICAgIHBlbmRpbmdfY29zaWduZXJfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgYSBwZW5kaW5nIGNvc2lnbmVyIiwgYWxpYXM9InBlbmRpbmdDb3NpZ25lcklkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYXBpS2V5SWQiLCAibmFtZSIsICJleGlzdGluZ0Nvc2lnbmVyIiwgInBlbmRpbmdDb3NpZ25lcklkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGRDb3NpZ25lclJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkZENvc2lnbmVyUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYXBpS2V5SWQiOiBvYmouZ2V0KCJhcGlLZXlJZCIpLAogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKSwKICAgICAgICAgICAgImV4aXN0aW5nQ29zaWduZXIiOiBvYmouZ2V0KCJleGlzdGluZ0Nvc2lnbmVyIikgaWYgb2JqLmdldCgiZXhpc3RpbmdDb3NpZ25lciIpIGlzIG5vdCBOb25lIGVsc2UgRmFsc2UsCiAgICAgICAgICAgICJwZW5kaW5nQ29zaWduZXJJZCI6IG9iai5nZXQoInBlbmRpbmdDb3NpZ25lcklkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/add_exchange_account_request.py b/fireblocks/models/add_exchange_account_request.py index 74e527cb..0fda5b22 100644 --- a/fireblocks/models/add_exchange_account_request.py +++ b/fireblocks/models/add_exchange_account_request.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.exchange_type import ExchangeType -from typing import Optional, Set -from typing_extensions import Self - -class AddExchangeAccountRequest(BaseModel): - """ - AddExchangeAccountRequest - """ # noqa: E501 - exchange_type: ExchangeType = Field(alias="exchangeType") - name: StrictStr = Field(description="Display name of the exchange account") - creds: Optional[StrictStr] = Field(default=None, description="Encrypted credentials") - key: Optional[StrictStr] = Field(default=None, description="Api key of the exchange") - main_account_id: Optional[StrictStr] = Field(default=None, description="Optional - main account id of the exchange", alias="mainAccountId") - __properties: ClassVar[List[str]] = ["exchangeType", "name", "creds", "key", "mainAccountId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AddExchangeAccountRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AddExchangeAccountRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "exchangeType": obj.get("exchangeType"), - "name": obj.get("name"), - "creds": obj.get("creds"), - "key": obj.get("key"), - "mainAccountId": obj.get("mainAccountId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4Y2hhbmdlX3R5cGUgaW1wb3J0IEV4Y2hhbmdlVHlwZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBZGRFeGNoYW5nZUFjY291bnRSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFkZEV4Y2hhbmdlQWNjb3VudFJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGV4Y2hhbmdlX3R5cGU6IEV4Y2hhbmdlVHlwZSA9IEZpZWxkKGFsaWFzPSJleGNoYW5nZVR5cGUiKQogICAgbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkRpc3BsYXkgbmFtZSBvZiB0aGUgZXhjaGFuZ2UgYWNjb3VudCIpCiAgICBjcmVkczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkVuY3J5cHRlZCBjcmVkZW50aWFscyIpCiAgICBrZXk6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBcGkga2V5IG9mIHRoZSBleGNoYW5nZSIpCiAgICBtYWluX2FjY291bnRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJPcHRpb25hbCAtIG1haW4gYWNjb3VudCBpZCBvZiB0aGUgZXhjaGFuZ2UiLCBhbGlhcz0ibWFpbkFjY291bnRJZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImV4Y2hhbmdlVHlwZSIsICJuYW1lIiwgImNyZWRzIiwgImtleSIsICJtYWluQWNjb3VudElkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGRFeGNoYW5nZUFjY291bnRSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkZEV4Y2hhbmdlQWNjb3VudFJlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZXhjaGFuZ2VUeXBlIjogb2JqLmdldCgiZXhjaGFuZ2VUeXBlIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAiY3JlZHMiOiBvYmouZ2V0KCJjcmVkcyIpLAogICAgICAgICAgICAia2V5Ijogb2JqLmdldCgia2V5IiksCiAgICAgICAgICAgICJtYWluQWNjb3VudElkIjogb2JqLmdldCgibWFpbkFjY291bnRJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/add_exchange_account_response.py b/fireblocks/models/add_exchange_account_response.py index 2bd7938c..d4d7e330 100644 --- a/fireblocks/models/add_exchange_account_response.py +++ b/fireblocks/models/add_exchange_account_response.py @@ -1,93 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.exchange_type import ExchangeType -from typing import Optional, Set -from typing_extensions import Self - -class AddExchangeAccountResponse(BaseModel): - """ - AddExchangeAccountResponse - """ # noqa: E501 - id: Optional[StrictStr] = Field(default=None, description="Exchange account's identifier") - name: Optional[StrictStr] = Field(default=None, description="Display name of the exchange account") - exchange_type: Optional[ExchangeType] = Field(default=None, alias="exchangeType") - __properties: ClassVar[List[str]] = ["id", "name", "exchangeType"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AddExchangeAccountResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AddExchangeAccountResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name"), - "exchangeType": obj.get("exchangeType") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4Y2hhbmdlX3R5cGUgaW1wb3J0IEV4Y2hhbmdlVHlwZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBZGRFeGNoYW5nZUFjY291bnRSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBZGRFeGNoYW5nZUFjY291bnRSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJFeGNoYW5nZSBhY2NvdW50J3MgaWRlbnRpZmllciIpCiAgICBuYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGlzcGxheSBuYW1lIG9mIHRoZSBleGNoYW5nZSBhY2NvdW50IikKICAgIGV4Y2hhbmdlX3R5cGU6IE9wdGlvbmFsW0V4Y2hhbmdlVHlwZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJleGNoYW5nZVR5cGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJuYW1lIiwgImV4Y2hhbmdlVHlwZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWRkRXhjaGFuZ2VBY2NvdW50UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWRkRXhjaGFuZ2VBY2NvdW50UmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKSwKICAgICAgICAgICAgImV4Y2hhbmdlVHlwZSI6IG9iai5nZXQoImV4Y2hhbmdlVHlwZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/additional_info.py b/fireblocks/models/additional_info.py index e36d6e27..b2ee4fa3 100644 --- a/fireblocks/models/additional_info.py +++ b/fireblocks/models/additional_info.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class AdditionalInfo(BaseModel): - """ - Additional information related to the blockchain. This may include extra details about the blockchain network. - """ # noqa: E501 - estimated_annual_reward: Union[StrictFloat, StrictInt] = Field(description="The estimated annual reward rate for the blockchain, represented as a decimal percentage value.", alias="estimatedAnnualReward") - lockup_period: Union[StrictFloat, StrictInt] = Field(description="The duration of the lockup period for certain actions on the blockchain, measured in milliseconds.", alias="lockupPeriod") - activation_period: Union[StrictFloat, StrictInt] = Field(description="The duration of the activation period for certain actions on the blockchain, measured in milliseconds.", alias="activationPeriod") - __properties: ClassVar[List[str]] = ["estimatedAnnualReward", "lockupPeriod", "activationPeriod"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AdditionalInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AdditionalInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "estimatedAnnualReward": obj.get("estimatedAnnualReward"), - "lockupPeriod": obj.get("lockupPeriod"), - "activationPeriod": obj.get("activationPeriod") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgVW5pb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQWRkaXRpb25hbEluZm8oQmFzZU1vZGVsKToKICAgICIiIgogICAgQWRkaXRpb25hbCBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIHRoZSBibG9ja2NoYWluLiBUaGlzIG1heSBpbmNsdWRlIGV4dHJhIGRldGFpbHMgYWJvdXQgdGhlIGJsb2NrY2hhaW4gbmV0d29yay4KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGVzdGltYXRlZF9hbm51YWxfcmV3YXJkOiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZXN0aW1hdGVkIGFubnVhbCByZXdhcmQgcmF0ZSBmb3IgdGhlIGJsb2NrY2hhaW4sIHJlcHJlc2VudGVkIGFzIGEgZGVjaW1hbCBwZXJjZW50YWdlIHZhbHVlLiIsIGFsaWFzPSJlc3RpbWF0ZWRBbm51YWxSZXdhcmQiKQogICAgbG9ja3VwX3BlcmlvZDogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGR1cmF0aW9uIG9mIHRoZSBsb2NrdXAgcGVyaW9kIGZvciBjZXJ0YWluIGFjdGlvbnMgb24gdGhlIGJsb2NrY2hhaW4sIG1lYXN1cmVkIGluIG1pbGxpc2Vjb25kcy4iLCBhbGlhcz0ibG9ja3VwUGVyaW9kIikKICAgIGFjdGl2YXRpb25fcGVyaW9kOiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZHVyYXRpb24gb2YgdGhlIGFjdGl2YXRpb24gcGVyaW9kIGZvciBjZXJ0YWluIGFjdGlvbnMgb24gdGhlIGJsb2NrY2hhaW4sIG1lYXN1cmVkIGluIG1pbGxpc2Vjb25kcy4iLCBhbGlhcz0iYWN0aXZhdGlvblBlcmlvZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImVzdGltYXRlZEFubnVhbFJld2FyZCIsICJsb2NrdXBQZXJpb2QiLCAiYWN0aXZhdGlvblBlcmlvZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWRkaXRpb25hbEluZm8gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWRkaXRpb25hbEluZm8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZXN0aW1hdGVkQW5udWFsUmV3YXJkIjogb2JqLmdldCgiZXN0aW1hdGVkQW5udWFsUmV3YXJkIiksCiAgICAgICAgICAgICJsb2NrdXBQZXJpb2QiOiBvYmouZ2V0KCJsb2NrdXBQZXJpb2QiKSwKICAgICAgICAgICAgImFjdGl2YXRpb25QZXJpb2QiOiBvYmouZ2V0KCJhY3RpdmF0aW9uUGVyaW9kIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/additional_info_request.py b/fireblocks/models/additional_info_request.py index 1b38f35b..d00cdcb9 100644 --- a/fireblocks/models/additional_info_request.py +++ b/fireblocks/models/additional_info_request.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.additional_info_request_additional_info import AdditionalInfoRequestAdditionalInfo -from typing import Optional, Set -from typing_extensions import Self - -class AdditionalInfoRequest(BaseModel): - """ - External wallet request with additional payment information for various payment rails - """ # noqa: E501 - additional_info: AdditionalInfoRequestAdditionalInfo = Field(alias="additionalInfo") - __properties: ClassVar[List[str]] = ["additionalInfo"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AdditionalInfoRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of additional_info - if self.additional_info: - _dict['additionalInfo'] = self.additional_info.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AdditionalInfoRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "additionalInfo": AdditionalInfoRequestAdditionalInfo.from_dict(obj["additionalInfo"]) if obj.get("additionalInfo") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZGl0aW9uYWxfaW5mb19yZXF1ZXN0X2FkZGl0aW9uYWxfaW5mbyBpbXBvcnQgQWRkaXRpb25hbEluZm9SZXF1ZXN0QWRkaXRpb25hbEluZm8KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQWRkaXRpb25hbEluZm9SZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEV4dGVybmFsIHdhbGxldCByZXF1ZXN0IHdpdGggYWRkaXRpb25hbCBwYXltZW50IGluZm9ybWF0aW9uIGZvciB2YXJpb3VzIHBheW1lbnQgcmFpbHMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFkZGl0aW9uYWxfaW5mbzogQWRkaXRpb25hbEluZm9SZXF1ZXN0QWRkaXRpb25hbEluZm8gPSBGaWVsZChhbGlhcz0iYWRkaXRpb25hbEluZm8iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhZGRpdGlvbmFsSW5mbyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWRkaXRpb25hbEluZm9SZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYWRkaXRpb25hbF9pbmZvCiAgICAgICAgaWYgc2VsZi5hZGRpdGlvbmFsX2luZm86CiAgICAgICAgICAgIF9kaWN0WydhZGRpdGlvbmFsSW5mbyddID0gc2VsZi5hZGRpdGlvbmFsX2luZm8udG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGRpdGlvbmFsSW5mb1JlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYWRkaXRpb25hbEluZm8iOiBBZGRpdGlvbmFsSW5mb1JlcXVlc3RBZGRpdGlvbmFsSW5mby5mcm9tX2RpY3Qob2JqWyJhZGRpdGlvbmFsSW5mbyJdKSBpZiBvYmouZ2V0KCJhZGRpdGlvbmFsSW5mbyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/additional_info_request_additional_info.py b/fireblocks/models/additional_info_request_additional_info.py index 3dff5075..431135a5 100644 --- a/fireblocks/models/additional_info_request_additional_info.py +++ b/fireblocks/models/additional_info_request_additional_info.py @@ -1,292 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.aba_payment_info import AbaPaymentInfo -from fireblocks.models.ach_payment_info import AchPaymentInfo -from fireblocks.models.chaps_payment_info import ChapsPaymentInfo -from fireblocks.models.iban_payment_info import IbanPaymentInfo -from fireblocks.models.interac_payment_info import InteracPaymentInfo -from fireblocks.models.lbt_payment_info import LbtPaymentInfo -from fireblocks.models.momo_payment_info import MomoPaymentInfo -from fireblocks.models.payid_payment_info import PayidPaymentInfo -from fireblocks.models.pix_payment_info import PixPaymentInfo -from fireblocks.models.sepa_payment_info import SepaPaymentInfo -from fireblocks.models.spei_advanced_payment_info import SpeiAdvancedPaymentInfo -from fireblocks.models.spei_basic_payment_info import SpeiBasicPaymentInfo -from fireblocks.models.us_wire_payment_info import UsWirePaymentInfo -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -ADDITIONALINFOREQUESTADDITIONALINFO_ONE_OF_SCHEMAS = ["AbaPaymentInfo", "AchPaymentInfo", "ChapsPaymentInfo", "IbanPaymentInfo", "InteracPaymentInfo", "LbtPaymentInfo", "MomoPaymentInfo", "PayidPaymentInfo", "PixPaymentInfo", "SepaPaymentInfo", "SpeiAdvancedPaymentInfo", "SpeiBasicPaymentInfo", "UsWirePaymentInfo"] - -class AdditionalInfoRequestAdditionalInfo(BaseModel): - """ - Additional payment information based on the payment rail type - """ - # data type: IbanPaymentInfo - oneof_schema_1_validator: Optional[IbanPaymentInfo] = None - # data type: AbaPaymentInfo - oneof_schema_2_validator: Optional[AbaPaymentInfo] = None - # data type: SpeiBasicPaymentInfo - oneof_schema_3_validator: Optional[SpeiBasicPaymentInfo] = None - # data type: SpeiAdvancedPaymentInfo - oneof_schema_4_validator: Optional[SpeiAdvancedPaymentInfo] = None - # data type: PixPaymentInfo - oneof_schema_5_validator: Optional[PixPaymentInfo] = None - # data type: SepaPaymentInfo - oneof_schema_6_validator: Optional[SepaPaymentInfo] = None - # data type: AchPaymentInfo - oneof_schema_7_validator: Optional[AchPaymentInfo] = None - # data type: UsWirePaymentInfo - oneof_schema_8_validator: Optional[UsWirePaymentInfo] = None - # data type: MomoPaymentInfo - oneof_schema_9_validator: Optional[MomoPaymentInfo] = None - # data type: LbtPaymentInfo - oneof_schema_10_validator: Optional[LbtPaymentInfo] = None - # data type: InteracPaymentInfo - oneof_schema_11_validator: Optional[InteracPaymentInfo] = None - # data type: PayidPaymentInfo - oneof_schema_12_validator: Optional[PayidPaymentInfo] = None - # data type: ChapsPaymentInfo - oneof_schema_13_validator: Optional[ChapsPaymentInfo] = None - actual_instance: Optional[Union[AbaPaymentInfo, AchPaymentInfo, ChapsPaymentInfo, IbanPaymentInfo, InteracPaymentInfo, LbtPaymentInfo, MomoPaymentInfo, PayidPaymentInfo, PixPaymentInfo, SepaPaymentInfo, SpeiAdvancedPaymentInfo, SpeiBasicPaymentInfo, UsWirePaymentInfo]] = None - one_of_schemas: Set[str] = { "AbaPaymentInfo", "AchPaymentInfo", "ChapsPaymentInfo", "IbanPaymentInfo", "InteracPaymentInfo", "LbtPaymentInfo", "MomoPaymentInfo", "PayidPaymentInfo", "PixPaymentInfo", "SepaPaymentInfo", "SpeiAdvancedPaymentInfo", "SpeiBasicPaymentInfo", "UsWirePaymentInfo" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = AdditionalInfoRequestAdditionalInfo.model_construct() - error_messages = [] - match = 0 - # validate data type: IbanPaymentInfo - if not isinstance(v, IbanPaymentInfo): - error_messages.append(f"Error! Input type `{type(v)}` is not `IbanPaymentInfo`") - else: - match += 1 - # validate data type: AbaPaymentInfo - if not isinstance(v, AbaPaymentInfo): - error_messages.append(f"Error! Input type `{type(v)}` is not `AbaPaymentInfo`") - else: - match += 1 - # validate data type: SpeiBasicPaymentInfo - if not isinstance(v, SpeiBasicPaymentInfo): - error_messages.append(f"Error! Input type `{type(v)}` is not `SpeiBasicPaymentInfo`") - else: - match += 1 - # validate data type: SpeiAdvancedPaymentInfo - if not isinstance(v, SpeiAdvancedPaymentInfo): - error_messages.append(f"Error! Input type `{type(v)}` is not `SpeiAdvancedPaymentInfo`") - else: - match += 1 - # validate data type: PixPaymentInfo - if not isinstance(v, PixPaymentInfo): - error_messages.append(f"Error! Input type `{type(v)}` is not `PixPaymentInfo`") - else: - match += 1 - # validate data type: SepaPaymentInfo - if not isinstance(v, SepaPaymentInfo): - error_messages.append(f"Error! Input type `{type(v)}` is not `SepaPaymentInfo`") - else: - match += 1 - # validate data type: AchPaymentInfo - if not isinstance(v, AchPaymentInfo): - error_messages.append(f"Error! Input type `{type(v)}` is not `AchPaymentInfo`") - else: - match += 1 - # validate data type: UsWirePaymentInfo - if not isinstance(v, UsWirePaymentInfo): - error_messages.append(f"Error! Input type `{type(v)}` is not `UsWirePaymentInfo`") - else: - match += 1 - # validate data type: MomoPaymentInfo - if not isinstance(v, MomoPaymentInfo): - error_messages.append(f"Error! Input type `{type(v)}` is not `MomoPaymentInfo`") - else: - match += 1 - # validate data type: LbtPaymentInfo - if not isinstance(v, LbtPaymentInfo): - error_messages.append(f"Error! Input type `{type(v)}` is not `LbtPaymentInfo`") - else: - match += 1 - # validate data type: InteracPaymentInfo - if not isinstance(v, InteracPaymentInfo): - error_messages.append(f"Error! Input type `{type(v)}` is not `InteracPaymentInfo`") - else: - match += 1 - # validate data type: PayidPaymentInfo - if not isinstance(v, PayidPaymentInfo): - error_messages.append(f"Error! Input type `{type(v)}` is not `PayidPaymentInfo`") - else: - match += 1 - # validate data type: ChapsPaymentInfo - if not isinstance(v, ChapsPaymentInfo): - error_messages.append(f"Error! Input type `{type(v)}` is not `ChapsPaymentInfo`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in AdditionalInfoRequestAdditionalInfo with oneOf schemas: AbaPaymentInfo, AchPaymentInfo, ChapsPaymentInfo, IbanPaymentInfo, InteracPaymentInfo, LbtPaymentInfo, MomoPaymentInfo, PayidPaymentInfo, PixPaymentInfo, SepaPaymentInfo, SpeiAdvancedPaymentInfo, SpeiBasicPaymentInfo, UsWirePaymentInfo. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in AdditionalInfoRequestAdditionalInfo with oneOf schemas: AbaPaymentInfo, AchPaymentInfo, ChapsPaymentInfo, IbanPaymentInfo, InteracPaymentInfo, LbtPaymentInfo, MomoPaymentInfo, PayidPaymentInfo, PixPaymentInfo, SepaPaymentInfo, SpeiAdvancedPaymentInfo, SpeiBasicPaymentInfo, UsWirePaymentInfo. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into IbanPaymentInfo - try: - instance.actual_instance = IbanPaymentInfo.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into AbaPaymentInfo - try: - instance.actual_instance = AbaPaymentInfo.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into SpeiBasicPaymentInfo - try: - instance.actual_instance = SpeiBasicPaymentInfo.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into SpeiAdvancedPaymentInfo - try: - instance.actual_instance = SpeiAdvancedPaymentInfo.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into PixPaymentInfo - try: - instance.actual_instance = PixPaymentInfo.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into SepaPaymentInfo - try: - instance.actual_instance = SepaPaymentInfo.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into AchPaymentInfo - try: - instance.actual_instance = AchPaymentInfo.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into UsWirePaymentInfo - try: - instance.actual_instance = UsWirePaymentInfo.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into MomoPaymentInfo - try: - instance.actual_instance = MomoPaymentInfo.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into LbtPaymentInfo - try: - instance.actual_instance = LbtPaymentInfo.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into InteracPaymentInfo - try: - instance.actual_instance = InteracPaymentInfo.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into PayidPaymentInfo - try: - instance.actual_instance = PayidPaymentInfo.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into ChapsPaymentInfo - try: - instance.actual_instance = ChapsPaymentInfo.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into AdditionalInfoRequestAdditionalInfo with oneOf schemas: AbaPaymentInfo, AchPaymentInfo, ChapsPaymentInfo, IbanPaymentInfo, InteracPaymentInfo, LbtPaymentInfo, MomoPaymentInfo, PayidPaymentInfo, PixPaymentInfo, SepaPaymentInfo, SpeiAdvancedPaymentInfo, SpeiBasicPaymentInfo, UsWirePaymentInfo. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into AdditionalInfoRequestAdditionalInfo with oneOf schemas: AbaPaymentInfo, AchPaymentInfo, ChapsPaymentInfo, IbanPaymentInfo, InteracPaymentInfo, LbtPaymentInfo, MomoPaymentInfo, PayidPaymentInfo, PixPaymentInfo, SepaPaymentInfo, SpeiAdvancedPaymentInfo, SpeiBasicPaymentInfo, UsWirePaymentInfo. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], AbaPaymentInfo, AchPaymentInfo, ChapsPaymentInfo, IbanPaymentInfo, InteracPaymentInfo, LbtPaymentInfo, MomoPaymentInfo, PayidPaymentInfo, PixPaymentInfo, SepaPaymentInfo, SpeiAdvancedPaymentInfo, SpeiBasicPaymentInfo, UsWirePaymentInfo]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWJhX3BheW1lbnRfaW5mbyBpbXBvcnQgQWJhUGF5bWVudEluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2hfcGF5bWVudF9pbmZvIGltcG9ydCBBY2hQYXltZW50SW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYXBzX3BheW1lbnRfaW5mbyBpbXBvcnQgQ2hhcHNQYXltZW50SW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmliYW5fcGF5bWVudF9pbmZvIGltcG9ydCBJYmFuUGF5bWVudEluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5pbnRlcmFjX3BheW1lbnRfaW5mbyBpbXBvcnQgSW50ZXJhY1BheW1lbnRJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGJ0X3BheW1lbnRfaW5mbyBpbXBvcnQgTGJ0UGF5bWVudEluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tb21vX3BheW1lbnRfaW5mbyBpbXBvcnQgTW9tb1BheW1lbnRJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5aWRfcGF5bWVudF9pbmZvIGltcG9ydCBQYXlpZFBheW1lbnRJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGl4X3BheW1lbnRfaW5mbyBpbXBvcnQgUGl4UGF5bWVudEluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXBhX3BheW1lbnRfaW5mbyBpbXBvcnQgU2VwYVBheW1lbnRJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3BlaV9hZHZhbmNlZF9wYXltZW50X2luZm8gaW1wb3J0IFNwZWlBZHZhbmNlZFBheW1lbnRJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3BlaV9iYXNpY19wYXltZW50X2luZm8gaW1wb3J0IFNwZWlCYXNpY1BheW1lbnRJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudXNfd2lyZV9wYXltZW50X2luZm8gaW1wb3J0IFVzV2lyZVBheW1lbnRJbmZvCmZyb20gcHlkYW50aWMgaW1wb3J0IFN0cmljdFN0ciwgRmllbGQKZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uLCBMaXN0LCBTZXQsIE9wdGlvbmFsLCBEaWN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IExpdGVyYWwsIFNlbGYKCkFERElUSU9OQUxJTkZPUkVRVUVTVEFERElUSU9OQUxJTkZPX09ORV9PRl9TQ0hFTUFTID0gWyJBYmFQYXltZW50SW5mbyIsICJBY2hQYXltZW50SW5mbyIsICJDaGFwc1BheW1lbnRJbmZvIiwgIkliYW5QYXltZW50SW5mbyIsICJJbnRlcmFjUGF5bWVudEluZm8iLCAiTGJ0UGF5bWVudEluZm8iLCAiTW9tb1BheW1lbnRJbmZvIiwgIlBheWlkUGF5bWVudEluZm8iLCAiUGl4UGF5bWVudEluZm8iLCAiU2VwYVBheW1lbnRJbmZvIiwgIlNwZWlBZHZhbmNlZFBheW1lbnRJbmZvIiwgIlNwZWlCYXNpY1BheW1lbnRJbmZvIiwgIlVzV2lyZVBheW1lbnRJbmZvIl0KCmNsYXNzIEFkZGl0aW9uYWxJbmZvUmVxdWVzdEFkZGl0aW9uYWxJbmZvKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFkZGl0aW9uYWwgcGF5bWVudCBpbmZvcm1hdGlvbiBiYXNlZCBvbiB0aGUgcGF5bWVudCByYWlsIHR5cGUKICAgICIiIgogICAgIyBkYXRhIHR5cGU6IEliYW5QYXltZW50SW5mbwogICAgb25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yOiBPcHRpb25hbFtJYmFuUGF5bWVudEluZm9dID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IEFiYVBheW1lbnRJbmZvCiAgICBvbmVvZl9zY2hlbWFfMl92YWxpZGF0b3I6IE9wdGlvbmFsW0FiYVBheW1lbnRJbmZvXSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBTcGVpQmFzaWNQYXltZW50SW5mbwogICAgb25lb2Zfc2NoZW1hXzNfdmFsaWRhdG9yOiBPcHRpb25hbFtTcGVpQmFzaWNQYXltZW50SW5mb10gPSBOb25lCiAgICAjIGRhdGEgdHlwZTogU3BlaUFkdmFuY2VkUGF5bWVudEluZm8KICAgIG9uZW9mX3NjaGVtYV80X3ZhbGlkYXRvcjogT3B0aW9uYWxbU3BlaUFkdmFuY2VkUGF5bWVudEluZm9dID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IFBpeFBheW1lbnRJbmZvCiAgICBvbmVvZl9zY2hlbWFfNV92YWxpZGF0b3I6IE9wdGlvbmFsW1BpeFBheW1lbnRJbmZvXSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBTZXBhUGF5bWVudEluZm8KICAgIG9uZW9mX3NjaGVtYV82X3ZhbGlkYXRvcjogT3B0aW9uYWxbU2VwYVBheW1lbnRJbmZvXSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBBY2hQYXltZW50SW5mbwogICAgb25lb2Zfc2NoZW1hXzdfdmFsaWRhdG9yOiBPcHRpb25hbFtBY2hQYXltZW50SW5mb10gPSBOb25lCiAgICAjIGRhdGEgdHlwZTogVXNXaXJlUGF5bWVudEluZm8KICAgIG9uZW9mX3NjaGVtYV84X3ZhbGlkYXRvcjogT3B0aW9uYWxbVXNXaXJlUGF5bWVudEluZm9dID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IE1vbW9QYXltZW50SW5mbwogICAgb25lb2Zfc2NoZW1hXzlfdmFsaWRhdG9yOiBPcHRpb25hbFtNb21vUGF5bWVudEluZm9dID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IExidFBheW1lbnRJbmZvCiAgICBvbmVvZl9zY2hlbWFfMTBfdmFsaWRhdG9yOiBPcHRpb25hbFtMYnRQYXltZW50SW5mb10gPSBOb25lCiAgICAjIGRhdGEgdHlwZTogSW50ZXJhY1BheW1lbnRJbmZvCiAgICBvbmVvZl9zY2hlbWFfMTFfdmFsaWRhdG9yOiBPcHRpb25hbFtJbnRlcmFjUGF5bWVudEluZm9dID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IFBheWlkUGF5bWVudEluZm8KICAgIG9uZW9mX3NjaGVtYV8xMl92YWxpZGF0b3I6IE9wdGlvbmFsW1BheWlkUGF5bWVudEluZm9dID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IENoYXBzUGF5bWVudEluZm8KICAgIG9uZW9mX3NjaGVtYV8xM192YWxpZGF0b3I6IE9wdGlvbmFsW0NoYXBzUGF5bWVudEluZm9dID0gTm9uZQogICAgYWN0dWFsX2luc3RhbmNlOiBPcHRpb25hbFtVbmlvbltBYmFQYXltZW50SW5mbywgQWNoUGF5bWVudEluZm8sIENoYXBzUGF5bWVudEluZm8sIEliYW5QYXltZW50SW5mbywgSW50ZXJhY1BheW1lbnRJbmZvLCBMYnRQYXltZW50SW5mbywgTW9tb1BheW1lbnRJbmZvLCBQYXlpZFBheW1lbnRJbmZvLCBQaXhQYXltZW50SW5mbywgU2VwYVBheW1lbnRJbmZvLCBTcGVpQWR2YW5jZWRQYXltZW50SW5mbywgU3BlaUJhc2ljUGF5bWVudEluZm8sIFVzV2lyZVBheW1lbnRJbmZvXV0gPSBOb25lCiAgICBvbmVfb2Zfc2NoZW1hczogU2V0W3N0cl0gPSB7ICJBYmFQYXltZW50SW5mbyIsICJBY2hQYXltZW50SW5mbyIsICJDaGFwc1BheW1lbnRJbmZvIiwgIkliYW5QYXltZW50SW5mbyIsICJJbnRlcmFjUGF5bWVudEluZm8iLCAiTGJ0UGF5bWVudEluZm8iLCAiTW9tb1BheW1lbnRJbmZvIiwgIlBheWlkUGF5bWVudEluZm8iLCAiUGl4UGF5bWVudEluZm8iLCAiU2VwYVBheW1lbnRJbmZvIiwgIlNwZWlBZHZhbmNlZFBheW1lbnRJbmZvIiwgIlNwZWlCYXNpY1BheW1lbnRJbmZvIiwgIlVzV2lyZVBheW1lbnRJbmZvIiB9CgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gQWRkaXRpb25hbEluZm9SZXF1ZXN0QWRkaXRpb25hbEluZm8ubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IEliYW5QYXltZW50SW5mbwogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIEliYW5QYXltZW50SW5mbyk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgSWJhblBheW1lbnRJbmZvYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBBYmFQYXltZW50SW5mbwogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIEFiYVBheW1lbnRJbmZvKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBBYmFQYXltZW50SW5mb2AiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogU3BlaUJhc2ljUGF5bWVudEluZm8KICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBTcGVpQmFzaWNQYXltZW50SW5mbyk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgU3BlaUJhc2ljUGF5bWVudEluZm9gIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IFNwZWlBZHZhbmNlZFBheW1lbnRJbmZvCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgU3BlaUFkdmFuY2VkUGF5bWVudEluZm8pOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYFNwZWlBZHZhbmNlZFBheW1lbnRJbmZvYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBQaXhQYXltZW50SW5mbwogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIFBpeFBheW1lbnRJbmZvKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBQaXhQYXltZW50SW5mb2AiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogU2VwYVBheW1lbnRJbmZvCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgU2VwYVBheW1lbnRJbmZvKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBTZXBhUGF5bWVudEluZm9gIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IEFjaFBheW1lbnRJbmZvCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgQWNoUGF5bWVudEluZm8pOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYEFjaFBheW1lbnRJbmZvYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBVc1dpcmVQYXltZW50SW5mbwogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIFVzV2lyZVBheW1lbnRJbmZvKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBVc1dpcmVQYXltZW50SW5mb2AiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogTW9tb1BheW1lbnRJbmZvCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgTW9tb1BheW1lbnRJbmZvKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBNb21vUGF5bWVudEluZm9gIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IExidFBheW1lbnRJbmZvCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgTGJ0UGF5bWVudEluZm8pOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYExidFBheW1lbnRJbmZvYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBJbnRlcmFjUGF5bWVudEluZm8KICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBJbnRlcmFjUGF5bWVudEluZm8pOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYEludGVyYWNQYXltZW50SW5mb2AiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogUGF5aWRQYXltZW50SW5mbwogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIFBheWlkUGF5bWVudEluZm8pOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYFBheWlkUGF5bWVudEluZm9gIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IENoYXBzUGF5bWVudEluZm8KICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBDaGFwc1BheW1lbnRJbmZvKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBDaGFwc1BheW1lbnRJbmZvYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBBZGRpdGlvbmFsSW5mb1JlcXVlc3RBZGRpdGlvbmFsSW5mbyB3aXRoIG9uZU9mIHNjaGVtYXM6IEFiYVBheW1lbnRJbmZvLCBBY2hQYXltZW50SW5mbywgQ2hhcHNQYXltZW50SW5mbywgSWJhblBheW1lbnRJbmZvLCBJbnRlcmFjUGF5bWVudEluZm8sIExidFBheW1lbnRJbmZvLCBNb21vUGF5bWVudEluZm8sIFBheWlkUGF5bWVudEluZm8sIFBpeFBheW1lbnRJbmZvLCBTZXBhUGF5bWVudEluZm8sIFNwZWlBZHZhbmNlZFBheW1lbnRJbmZvLCBTcGVpQmFzaWNQYXltZW50SW5mbywgVXNXaXJlUGF5bWVudEluZm8uIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gQWRkaXRpb25hbEluZm9SZXF1ZXN0QWRkaXRpb25hbEluZm8gd2l0aCBvbmVPZiBzY2hlbWFzOiBBYmFQYXltZW50SW5mbywgQWNoUGF5bWVudEluZm8sIENoYXBzUGF5bWVudEluZm8sIEliYW5QYXltZW50SW5mbywgSW50ZXJhY1BheW1lbnRJbmZvLCBMYnRQYXltZW50SW5mbywgTW9tb1BheW1lbnRJbmZvLCBQYXlpZFBheW1lbnRJbmZvLCBQaXhQYXltZW50SW5mbywgU2VwYVBheW1lbnRJbmZvLCBTcGVpQWR2YW5jZWRQYXltZW50SW5mbywgU3BlaUJhc2ljUGF5bWVudEluZm8sIFVzV2lyZVBheW1lbnRJbmZvLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gdgoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogVW5pb25bc3RyLCBEaWN0W3N0ciwgQW55XV0pIC0+IFNlbGY6CiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2pzb24oanNvbi5kdW1wcyhvYmopKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgb2JqZWN0IHJlcHJlc2VudGVkIGJ5IHRoZSBqc29uIHN0cmluZyIiIgogICAgICAgIGluc3RhbmNlID0gY2xzLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAoKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBJYmFuUGF5bWVudEluZm8KICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IEliYW5QYXltZW50SW5mby5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBBYmFQYXltZW50SW5mbwogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gQWJhUGF5bWVudEluZm8uZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gU3BlaUJhc2ljUGF5bWVudEluZm8KICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IFNwZWlCYXNpY1BheW1lbnRJbmZvLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIFNwZWlBZHZhbmNlZFBheW1lbnRJbmZvCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBTcGVpQWR2YW5jZWRQYXltZW50SW5mby5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBQaXhQYXltZW50SW5mbwogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gUGl4UGF5bWVudEluZm8uZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gU2VwYVBheW1lbnRJbmZvCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBTZXBhUGF5bWVudEluZm8uZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gQWNoUGF5bWVudEluZm8KICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IEFjaFBheW1lbnRJbmZvLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIFVzV2lyZVBheW1lbnRJbmZvCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBVc1dpcmVQYXltZW50SW5mby5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBNb21vUGF5bWVudEluZm8KICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IE1vbW9QYXltZW50SW5mby5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBMYnRQYXltZW50SW5mbwogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gTGJ0UGF5bWVudEluZm8uZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gSW50ZXJhY1BheW1lbnRJbmZvCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBJbnRlcmFjUGF5bWVudEluZm8uZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gUGF5aWRQYXltZW50SW5mbwogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gUGF5aWRQYXltZW50SW5mby5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBDaGFwc1BheW1lbnRJbmZvCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBDaGFwc1BheW1lbnRJbmZvLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQoKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gQWRkaXRpb25hbEluZm9SZXF1ZXN0QWRkaXRpb25hbEluZm8gd2l0aCBvbmVPZiBzY2hlbWFzOiBBYmFQYXltZW50SW5mbywgQWNoUGF5bWVudEluZm8sIENoYXBzUGF5bWVudEluZm8sIEliYW5QYXltZW50SW5mbywgSW50ZXJhY1BheW1lbnRJbmZvLCBMYnRQYXltZW50SW5mbywgTW9tb1BheW1lbnRJbmZvLCBQYXlpZFBheW1lbnRJbmZvLCBQaXhQYXltZW50SW5mbywgU2VwYVBheW1lbnRJbmZvLCBTcGVpQWR2YW5jZWRQYXltZW50SW5mbywgU3BlaUJhc2ljUGF5bWVudEluZm8sIFVzV2lyZVBheW1lbnRJbmZvLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIEFkZGl0aW9uYWxJbmZvUmVxdWVzdEFkZGl0aW9uYWxJbmZvIHdpdGggb25lT2Ygc2NoZW1hczogQWJhUGF5bWVudEluZm8sIEFjaFBheW1lbnRJbmZvLCBDaGFwc1BheW1lbnRJbmZvLCBJYmFuUGF5bWVudEluZm8sIEludGVyYWNQYXltZW50SW5mbywgTGJ0UGF5bWVudEluZm8sIE1vbW9QYXltZW50SW5mbywgUGF5aWRQYXltZW50SW5mbywgUGl4UGF5bWVudEluZm8sIFNlcGFQYXltZW50SW5mbywgU3BlaUFkdmFuY2VkUGF5bWVudEluZm8sIFNwZWlCYXNpY1BheW1lbnRJbmZvLCBVc1dpcmVQYXltZW50SW5mby4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiAibnVsbCIKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2pzb24iKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbik6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKCkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLmFjdHVhbF9pbnN0YW5jZSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBPcHRpb25hbFtVbmlvbltEaWN0W3N0ciwgQW55XSwgQWJhUGF5bWVudEluZm8sIEFjaFBheW1lbnRJbmZvLCBDaGFwc1BheW1lbnRJbmZvLCBJYmFuUGF5bWVudEluZm8sIEludGVyYWNQYXltZW50SW5mbywgTGJ0UGF5bWVudEluZm8sIE1vbW9QYXltZW50SW5mbywgUGF5aWRQYXltZW50SW5mbywgUGl4UGF5bWVudEluZm8sIFNlcGFQYXltZW50SW5mbywgU3BlaUFkdmFuY2VkUGF5bWVudEluZm8sIFNwZWlCYXNpY1BheW1lbnRJbmZvLCBVc1dpcmVQYXltZW50SW5mb11dOgogICAgICAgICIiIlJldHVybnMgdGhlIGRpY3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19kaWN0IikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QpOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCgpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgIyBwcmltaXRpdmUgdHlwZQogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/address_balance_item_dto.py b/fireblocks/models/address_balance_item_dto.py index 5736fd1e..945ba07a 100644 --- a/fireblocks/models/address_balance_item_dto.py +++ b/fireblocks/models/address_balance_item_dto.py @@ -1,93 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class AddressBalanceItemDto(BaseModel): - """ - AddressBalanceItemDto - """ # noqa: E501 - account_address: StrictStr = Field(description="The account address", alias="accountAddress") - balance: StrictStr = Field(description="The current balance of the account") - last_updated: datetime = Field(description="The timestamp when this balance was last updated", alias="lastUpdated") - __properties: ClassVar[List[str]] = ["accountAddress", "balance", "lastUpdated"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AddressBalanceItemDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AddressBalanceItemDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountAddress": obj.get("accountAddress"), - "balance": obj.get("balance"), - "lastUpdated": obj.get("lastUpdated") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEFkZHJlc3NCYWxhbmNlSXRlbUR0byhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBZGRyZXNzQmFsYW5jZUl0ZW1EdG8KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFjY291bnRfYWRkcmVzczogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBhY2NvdW50IGFkZHJlc3MiLCBhbGlhcz0iYWNjb3VudEFkZHJlc3MiKQogICAgYmFsYW5jZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBjdXJyZW50IGJhbGFuY2Ugb2YgdGhlIGFjY291bnQiKQogICAgbGFzdF91cGRhdGVkOiBkYXRldGltZSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdGltZXN0YW1wIHdoZW4gdGhpcyBiYWxhbmNlIHdhcyBsYXN0IHVwZGF0ZWQiLCBhbGlhcz0ibGFzdFVwZGF0ZWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhY2NvdW50QWRkcmVzcyIsICJiYWxhbmNlIiwgImxhc3RVcGRhdGVkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGRyZXNzQmFsYW5jZUl0ZW1EdG8gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWRkcmVzc0JhbGFuY2VJdGVtRHRvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFjY291bnRBZGRyZXNzIjogb2JqLmdldCgiYWNjb3VudEFkZHJlc3MiKSwKICAgICAgICAgICAgImJhbGFuY2UiOiBvYmouZ2V0KCJiYWxhbmNlIiksCiAgICAgICAgICAgICJsYXN0VXBkYXRlZCI6IG9iai5nZXQoImxhc3RVcGRhdGVkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/address_balance_paged_response.py b/fireblocks/models/address_balance_paged_response.py index 90f1f6f1..d9f03b25 100644 --- a/fireblocks/models/address_balance_paged_response.py +++ b/fireblocks/models/address_balance_paged_response.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.address_balance_item_dto import AddressBalanceItemDto -from typing import Optional, Set -from typing_extensions import Self - -class AddressBalancePagedResponse(BaseModel): - """ - AddressBalancePagedResponse - """ # noqa: E501 - data: List[AddressBalanceItemDto] = Field(description="Array of address balance data") - next: Optional[StrictStr] = Field(default=None, description="Cursor for next page") - prev: Optional[StrictStr] = Field(default=None, description="Cursor for previous page (reserved for future support)") - total: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Total count of items") - __properties: ClassVar[List[str]] = ["data", "next", "prev", "total"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AddressBalancePagedResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AddressBalancePagedResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [AddressBalanceItemDto.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next"), - "prev": obj.get("prev"), - "total": obj.get("total") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hZGRyZXNzX2JhbGFuY2VfaXRlbV9kdG8gaW1wb3J0IEFkZHJlc3NCYWxhbmNlSXRlbUR0bwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBZGRyZXNzQmFsYW5jZVBhZ2VkUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgQWRkcmVzc0JhbGFuY2VQYWdlZFJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkYXRhOiBMaXN0W0FkZHJlc3NCYWxhbmNlSXRlbUR0b10gPSBGaWVsZChkZXNjcmlwdGlvbj0iQXJyYXkgb2YgYWRkcmVzcyBiYWxhbmNlIGRhdGEiKQogICAgbmV4dDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkN1cnNvciBmb3IgbmV4dCBwYWdlIikKICAgIHByZXY6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJDdXJzb3IgZm9yIHByZXZpb3VzIHBhZ2UgKHJlc2VydmVkIGZvciBmdXR1cmUgc3VwcG9ydCkiKQogICAgdG90YWw6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRvdGFsIGNvdW50IG9mIGl0ZW1zIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZGF0YSIsICJuZXh0IiwgInByZXYiLCAidG90YWwiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkZHJlc3NCYWxhbmNlUGFnZWRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBkYXRhIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5kYXRhOgogICAgICAgICAgICBmb3IgX2l0ZW1fZGF0YSBpbiBzZWxmLmRhdGE6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9kYXRhOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fZGF0YS50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydkYXRhJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkZHJlc3NCYWxhbmNlUGFnZWRSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkYXRhIjogW0FkZHJlc3NCYWxhbmNlSXRlbUR0by5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImRhdGEiXV0gaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm5leHQiOiBvYmouZ2V0KCJuZXh0IiksCiAgICAgICAgICAgICJwcmV2Ijogb2JqLmdldCgicHJldiIpLAogICAgICAgICAgICAidG90YWwiOiBvYmouZ2V0KCJ0b3RhbCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/address_not_available_error.py b/fireblocks/models/address_not_available_error.py index 393626de..cdb69912 100644 --- a/fireblocks/models/address_not_available_error.py +++ b/fireblocks/models/address_not_available_error.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class AddressNotAvailableError(BaseModel): - """ - AddressNotAvailableError - """ # noqa: E501 - message: StrictStr = Field(description="Conflict error message") - code: Union[StrictFloat, StrictInt] = Field(description="Error code") - __properties: ClassVar[List[str]] = ["message", "code"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AddressNotAvailableError from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AddressNotAvailableError from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "code": obj.get("code") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBZGRyZXNzTm90QXZhaWxhYmxlRXJyb3IoQmFzZU1vZGVsKToKICAgICIiIgogICAgQWRkcmVzc05vdEF2YWlsYWJsZUVycm9yCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBtZXNzYWdlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQ29uZmxpY3QgZXJyb3IgbWVzc2FnZSIpCiAgICBjb2RlOiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJFcnJvciBjb2RlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibWVzc2FnZSIsICJjb2RlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBZGRyZXNzTm90QXZhaWxhYmxlRXJyb3IgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWRkcmVzc05vdEF2YWlsYWJsZUVycm9yIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm1lc3NhZ2UiOiBvYmouZ2V0KCJtZXNzYWdlIiksCiAgICAgICAgICAgICJjb2RlIjogb2JqLmdldCgiY29kZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/address_registry_error.py b/fireblocks/models/address_registry_error.py index 4f3a9761..da2c7e97 100644 --- a/fireblocks/models/address_registry_error.py +++ b/fireblocks/models/address_registry_error.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class AddressRegistryError(BaseModel): - """ - Error body for address-registry 4xx and 5xx. - """ # noqa: E501 - code: Optional[StrictInt] = Field(default=None, description="Numeric error code (2140–2143) for 403, 404 and 5xx responses.") - message: StrictStr = Field(description="Human-readable error message") - __properties: ClassVar[List[str]] = ["code", "message"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AddressRegistryError from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AddressRegistryError from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "code": obj.get("code"), - "message": obj.get("message") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEFkZHJlc3NSZWdpc3RyeUVycm9yKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEVycm9yIGJvZHkgZm9yIGFkZHJlc3MtcmVnaXN0cnkgNHh4IGFuZCA1eHguCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBjb2RlOiBPcHRpb25hbFtTdHJpY3RJbnRdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTnVtZXJpYyBlcnJvciBjb2RlICgyMTQw4oCTMjE0MykgZm9yIDQwMywgNDA0IGFuZCA1eHggcmVzcG9uc2VzLiIpCiAgICBtZXNzYWdlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iSHVtYW4tcmVhZGFibGUgZXJyb3IgbWVzc2FnZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImNvZGUiLCAibWVzc2FnZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWRkcmVzc1JlZ2lzdHJ5RXJyb3IgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWRkcmVzc1JlZ2lzdHJ5RXJyb3IgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiY29kZSI6IG9iai5nZXQoImNvZGUiKSwKICAgICAgICAgICAgIm1lc3NhZ2UiOiBvYmouZ2V0KCJtZXNzYWdlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/address_registry_legal_entity.py b/fireblocks/models/address_registry_legal_entity.py index 2f31e258..07faf140 100644 --- a/fireblocks/models/address_registry_legal_entity.py +++ b/fireblocks/models/address_registry_legal_entity.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class AddressRegistryLegalEntity(BaseModel): - """ - Legal entity resolved for an address-registry lookup - """ # noqa: E501 - company_name: StrictStr = Field(description="Legal entity / company display name", alias="companyName") - country_code: StrictStr = Field(description="Jurisdiction country code (e.g. ISO 3166-1 alpha-2)", alias="countryCode") - company_id: StrictStr = Field(description="Company identifier for the resolved legal entity (UUID)", alias="companyId") - __properties: ClassVar[List[str]] = ["companyName", "countryCode", "companyId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AddressRegistryLegalEntity from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AddressRegistryLegalEntity from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "companyName": obj.get("companyName"), - "countryCode": obj.get("countryCode"), - "companyId": obj.get("companyId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEFkZHJlc3NSZWdpc3RyeUxlZ2FsRW50aXR5KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIExlZ2FsIGVudGl0eSByZXNvbHZlZCBmb3IgYW4gYWRkcmVzcy1yZWdpc3RyeSBsb29rdXAKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGNvbXBhbnlfbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkxlZ2FsIGVudGl0eSAvIGNvbXBhbnkgZGlzcGxheSBuYW1lIiwgYWxpYXM9ImNvbXBhbnlOYW1lIikKICAgIGNvdW50cnlfY29kZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249Ikp1cmlzZGljdGlvbiBjb3VudHJ5IGNvZGUgKGUuZy4gSVNPIDMxNjYtMSBhbHBoYS0yKSIsIGFsaWFzPSJjb3VudHJ5Q29kZSIpCiAgICBjb21wYW55X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQ29tcGFueSBpZGVudGlmaWVyIGZvciB0aGUgcmVzb2x2ZWQgbGVnYWwgZW50aXR5IChVVUlEKSIsIGFsaWFzPSJjb21wYW55SWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJjb21wYW55TmFtZSIsICJjb3VudHJ5Q29kZSIsICJjb21wYW55SWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkZHJlc3NSZWdpc3RyeUxlZ2FsRW50aXR5IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFkZHJlc3NSZWdpc3RyeUxlZ2FsRW50aXR5IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImNvbXBhbnlOYW1lIjogb2JqLmdldCgiY29tcGFueU5hbWUiKSwKICAgICAgICAgICAgImNvdW50cnlDb2RlIjogb2JqLmdldCgiY291bnRyeUNvZGUiKSwKICAgICAgICAgICAgImNvbXBhbnlJZCI6IG9iai5nZXQoImNvbXBhbnlJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/alert_exposure_type_enum.py b/fireblocks/models/alert_exposure_type_enum.py index 8dbb1e99..f8828586 100644 --- a/fireblocks/models/alert_exposure_type_enum.py +++ b/fireblocks/models/alert_exposure_type_enum.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class AlertExposureTypeEnum(str, Enum): - """ - Alert exposure type (AlertExposureType enum) - """ - - """ - allowed enum values - """ - DIRECT = 'DIRECT' - INDIRECT = 'INDIRECT' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of AlertExposureTypeEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBBbGVydEV4cG9zdXJlVHlwZUVudW0oc3RyLCBFbnVtKToKICAgICIiIgogICAgQWxlcnQgZXhwb3N1cmUgdHlwZSAoQWxlcnRFeHBvc3VyZVR5cGUgZW51bSkKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBESVJFQ1QgPSAnRElSRUNUJwogICAgSU5ESVJFQ1QgPSAnSU5ESVJFQ1QnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQWxlcnRFeHBvc3VyZVR5cGVFbnVtIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/alert_level_enum.py b/fireblocks/models/alert_level_enum.py index 16bb76d3..1d44be10 100644 --- a/fireblocks/models/alert_level_enum.py +++ b/fireblocks/models/alert_level_enum.py @@ -1,40 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class AlertLevelEnum(str, Enum): - """ - Alert level severity - """ - - """ - allowed enum values - """ - SEVERE = 'SEVERE' - HIGH = 'HIGH' - MEDIUM = 'MEDIUM' - LOW = 'LOW' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of AlertLevelEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBBbGVydExldmVsRW51bShzdHIsIEVudW0pOgogICAgIiIiCiAgICBBbGVydCBsZXZlbCBzZXZlcml0eQogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIFNFVkVSRSA9ICdTRVZFUkUnCiAgICBISUdIID0gJ0hJR0gnCiAgICBNRURJVU0gPSAnTUVESVVNJwogICAgTE9XID0gJ0xPVycKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBbGVydExldmVsRW51bSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/aml_alert.py b/fireblocks/models/aml_alert.py index ad061516..2c201869 100644 --- a/fireblocks/models/aml_alert.py +++ b/fireblocks/models/aml_alert.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.alert_exposure_type_enum import AlertExposureTypeEnum -from fireblocks.models.alert_level_enum import AlertLevelEnum -from typing import Optional, Set -from typing_extensions import Self - -class AmlAlert(BaseModel): - """ - AML alert information - """ # noqa: E501 - alert_level: AlertLevelEnum = Field(alias="alertLevel") - alert_name: Optional[StrictStr] = Field(default=None, description="Name or type of the alert", alias="alertName") - category: Optional[StrictStr] = Field(default=None, description="Alert category") - service: Optional[StrictStr] = Field(default=None, description="Service that generated the alert") - external_id: StrictStr = Field(description="External identifier for the alert", alias="externalId") - alert_amount: Union[StrictFloat, StrictInt] = Field(description="Amount associated with the alert", alias="alertAmount") - exposure_type: AlertExposureTypeEnum = Field(alias="exposureType") - policy_action: Optional[StrictStr] = Field(default=None, description="Recommended action based on policy", alias="policyAction") - category_id: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Category identifier", alias="categoryId") - __properties: ClassVar[List[str]] = ["alertLevel", "alertName", "category", "service", "externalId", "alertAmount", "exposureType", "policyAction", "categoryId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AmlAlert from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AmlAlert from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "alertLevel": obj.get("alertLevel"), - "alertName": obj.get("alertName"), - "category": obj.get("category"), - "service": obj.get("service"), - "externalId": obj.get("externalId"), - "alertAmount": obj.get("alertAmount"), - "exposureType": obj.get("exposureType"), - "policyAction": obj.get("policyAction"), - "categoryId": obj.get("categoryId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbGVydF9leHBvc3VyZV90eXBlX2VudW0gaW1wb3J0IEFsZXJ0RXhwb3N1cmVUeXBlRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFsZXJ0X2xldmVsX2VudW0gaW1wb3J0IEFsZXJ0TGV2ZWxFbnVtCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEFtbEFsZXJ0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFNTCBhbGVydCBpbmZvcm1hdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgYWxlcnRfbGV2ZWw6IEFsZXJ0TGV2ZWxFbnVtID0gRmllbGQoYWxpYXM9ImFsZXJ0TGV2ZWwiKQogICAgYWxlcnRfbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik5hbWUgb3IgdHlwZSBvZiB0aGUgYWxlcnQiLCBhbGlhcz0iYWxlcnROYW1lIikKICAgIGNhdGVnb3J5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQWxlcnQgY2F0ZWdvcnkiKQogICAgc2VydmljZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNlcnZpY2UgdGhhdCBnZW5lcmF0ZWQgdGhlIGFsZXJ0IikKICAgIGV4dGVybmFsX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iRXh0ZXJuYWwgaWRlbnRpZmllciBmb3IgdGhlIGFsZXJ0IiwgYWxpYXM9ImV4dGVybmFsSWQiKQogICAgYWxlcnRfYW1vdW50OiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBbW91bnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBhbGVydCIsIGFsaWFzPSJhbGVydEFtb3VudCIpCiAgICBleHBvc3VyZV90eXBlOiBBbGVydEV4cG9zdXJlVHlwZUVudW0gPSBGaWVsZChhbGlhcz0iZXhwb3N1cmVUeXBlIikKICAgIHBvbGljeV9hY3Rpb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSZWNvbW1lbmRlZCBhY3Rpb24gYmFzZWQgb24gcG9saWN5IiwgYWxpYXM9InBvbGljeUFjdGlvbiIpCiAgICBjYXRlZ29yeV9pZDogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ2F0ZWdvcnkgaWRlbnRpZmllciIsIGFsaWFzPSJjYXRlZ29yeUlkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYWxlcnRMZXZlbCIsICJhbGVydE5hbWUiLCAiY2F0ZWdvcnkiLCAic2VydmljZSIsICJleHRlcm5hbElkIiwgImFsZXJ0QW1vdW50IiwgImV4cG9zdXJlVHlwZSIsICJwb2xpY3lBY3Rpb24iLCAiY2F0ZWdvcnlJZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1sQWxlcnQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1sQWxlcnQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYWxlcnRMZXZlbCI6IG9iai5nZXQoImFsZXJ0TGV2ZWwiKSwKICAgICAgICAgICAgImFsZXJ0TmFtZSI6IG9iai5nZXQoImFsZXJ0TmFtZSIpLAogICAgICAgICAgICAiY2F0ZWdvcnkiOiBvYmouZ2V0KCJjYXRlZ29yeSIpLAogICAgICAgICAgICAic2VydmljZSI6IG9iai5nZXQoInNlcnZpY2UiKSwKICAgICAgICAgICAgImV4dGVybmFsSWQiOiBvYmouZ2V0KCJleHRlcm5hbElkIiksCiAgICAgICAgICAgICJhbGVydEFtb3VudCI6IG9iai5nZXQoImFsZXJ0QW1vdW50IiksCiAgICAgICAgICAgICJleHBvc3VyZVR5cGUiOiBvYmouZ2V0KCJleHBvc3VyZVR5cGUiKSwKICAgICAgICAgICAgInBvbGljeUFjdGlvbiI6IG9iai5nZXQoInBvbGljeUFjdGlvbiIpLAogICAgICAgICAgICAiY2F0ZWdvcnlJZCI6IG9iai5nZXQoImNhdGVnb3J5SWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/aml_matched_rule.py b/fireblocks/models/aml_matched_rule.py index d9c1f696..cc8c8114 100644 --- a/fireblocks/models/aml_matched_rule.py +++ b/fireblocks/models/aml_matched_rule.py @@ -1,93 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.policy_verdict_action_enum import PolicyVerdictActionEnum -from typing import Optional, Set -from typing_extensions import Self - -class AmlMatchedRule(BaseModel): - """ - AML matched rule information - """ # noqa: E501 - rule_id: Optional[StrictStr] = Field(default=None, description="Identifier of the matched rule", alias="ruleId") - rule_name: Optional[StrictStr] = Field(default=None, description="Name of the matched rule", alias="ruleName") - action: Optional[PolicyVerdictActionEnum] = None - __properties: ClassVar[List[str]] = ["ruleId", "ruleName", "action"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AmlMatchedRule from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AmlMatchedRule from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "ruleId": obj.get("ruleId"), - "ruleName": obj.get("ruleName"), - "action": obj.get("action") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV92ZXJkaWN0X2FjdGlvbl9lbnVtIGltcG9ydCBQb2xpY3lWZXJkaWN0QWN0aW9uRW51bQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBbWxNYXRjaGVkUnVsZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBTUwgbWF0Y2hlZCBydWxlIGluZm9ybWF0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBydWxlX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSWRlbnRpZmllciBvZiB0aGUgbWF0Y2hlZCBydWxlIiwgYWxpYXM9InJ1bGVJZCIpCiAgICBydWxlX25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOYW1lIG9mIHRoZSBtYXRjaGVkIHJ1bGUiLCBhbGlhcz0icnVsZU5hbWUiKQogICAgYWN0aW9uOiBPcHRpb25hbFtQb2xpY3lWZXJkaWN0QWN0aW9uRW51bV0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInJ1bGVJZCIsICJydWxlTmFtZSIsICJhY3Rpb24iXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtbE1hdGNoZWRSdWxlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtbE1hdGNoZWRSdWxlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInJ1bGVJZCI6IG9iai5nZXQoInJ1bGVJZCIpLAogICAgICAgICAgICAicnVsZU5hbWUiOiBvYmouZ2V0KCJydWxlTmFtZSIpLAogICAgICAgICAgICAiYWN0aW9uIjogb2JqLmdldCgiYWN0aW9uIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/aml_registration_result.py b/fireblocks/models/aml_registration_result.py index 88f50933..48ac2507 100644 --- a/fireblocks/models/aml_registration_result.py +++ b/fireblocks/models/aml_registration_result.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictBool, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class AmlRegistrationResult(BaseModel): - """ - AmlRegistrationResult - """ # noqa: E501 - provider: Optional[StrictStr] = None - success: Optional[StrictBool] = None - timestamp: Optional[Union[StrictFloat, StrictInt]] = None - __properties: ClassVar[List[str]] = ["provider", "success", "timestamp"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AmlRegistrationResult from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AmlRegistrationResult from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "provider": obj.get("provider"), - "success": obj.get("success"), - "timestamp": obj.get("timestamp") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RCb29sLCBTdHJpY3RGbG9hdCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBbWxSZWdpc3RyYXRpb25SZXN1bHQoQmFzZU1vZGVsKToKICAgICIiIgogICAgQW1sUmVnaXN0cmF0aW9uUmVzdWx0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBwcm92aWRlcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIHN1Y2Nlc3M6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gTm9uZQogICAgdGltZXN0YW1wOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInByb3ZpZGVyIiwgInN1Y2Nlc3MiLCAidGltZXN0YW1wIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBbWxSZWdpc3RyYXRpb25SZXN1bHQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1sUmVnaXN0cmF0aW9uUmVzdWx0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInByb3ZpZGVyIjogb2JqLmdldCgicHJvdmlkZXIiKSwKICAgICAgICAgICAgInN1Y2Nlc3MiOiBvYmouZ2V0KCJzdWNjZXNzIiksCiAgICAgICAgICAgICJ0aW1lc3RhbXAiOiBvYmouZ2V0KCJ0aW1lc3RhbXAiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/aml_registration_result_full_payload.py b/fireblocks/models/aml_registration_result_full_payload.py index f16a49ac..fa37001f 100644 --- a/fireblocks/models/aml_registration_result_full_payload.py +++ b/fireblocks/models/aml_registration_result_full_payload.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictBool, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class AmlRegistrationResultFullPayload(BaseModel): - """ - The results of the AML address registration. - """ # noqa: E501 - provider: Optional[StrictStr] = None - success: Optional[StrictBool] = None - timestamp: Optional[Union[StrictFloat, StrictInt]] = None - __properties: ClassVar[List[str]] = ["provider", "success", "timestamp"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AmlRegistrationResultFullPayload from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AmlRegistrationResultFullPayload from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "provider": obj.get("provider"), - "success": obj.get("success"), - "timestamp": obj.get("timestamp") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RCb29sLCBTdHJpY3RGbG9hdCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBbWxSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUaGUgcmVzdWx0cyBvZiB0aGUgQU1MIGFkZHJlc3MgcmVnaXN0cmF0aW9uLgogICAgIiIiICMgbm9xYTogRTUwMQogICAgcHJvdmlkZXI6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBzdWNjZXNzOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IE5vbmUKICAgIHRpbWVzdGFtcDogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJwcm92aWRlciIsICJzdWNjZXNzIiwgInRpbWVzdGFtcCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1sUmVnaXN0cmF0aW9uUmVzdWx0RnVsbFBheWxvYWQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1sUmVnaXN0cmF0aW9uUmVzdWx0RnVsbFBheWxvYWQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicHJvdmlkZXIiOiBvYmouZ2V0KCJwcm92aWRlciIpLAogICAgICAgICAgICAic3VjY2VzcyI6IG9iai5nZXQoInN1Y2Nlc3MiKSwKICAgICAgICAgICAgInRpbWVzdGFtcCI6IG9iai5nZXQoInRpbWVzdGFtcCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/aml_result.py b/fireblocks/models/aml_result.py index eef959d7..9cd8bfe1 100644 --- a/fireblocks/models/aml_result.py +++ b/fireblocks/models/aml_result.py @@ -1,109 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.aml_alert import AmlAlert -from fireblocks.models.aml_matched_rule import AmlMatchedRule -from typing import Optional, Set -from typing_extensions import Self - -class AmlResult(BaseModel): - """ - Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses. - """ # noqa: E501 - alerts: Optional[List[AmlAlert]] = Field(default=None, description="List of AML alerts triggered during screening") - provider_response: Optional[Dict[str, Any]] = Field(default=None, description="Complete response from the AML provider. This is a dynamic object that varies significantly between different AML providers (Chainalysis, Elliptic, etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - Chainalysis: Contains cluster info, risk scores, sanctions data - Elliptic: Includes risk assessment, entity types, compliance flags The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. ", alias="providerResponse") - matched_rule: Optional[AmlMatchedRule] = Field(default=None, alias="matchedRule") - matched_alert: Optional[AmlAlert] = Field(default=None, alias="matchedAlert") - __properties: ClassVar[List[str]] = ["alerts", "providerResponse", "matchedRule", "matchedAlert"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AmlResult from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in alerts (list) - _items = [] - if self.alerts: - for _item_alerts in self.alerts: - if _item_alerts: - _items.append(_item_alerts.to_dict()) - _dict['alerts'] = _items - # override the default output from pydantic by calling `to_dict()` of matched_rule - if self.matched_rule: - _dict['matchedRule'] = self.matched_rule.to_dict() - # override the default output from pydantic by calling `to_dict()` of matched_alert - if self.matched_alert: - _dict['matchedAlert'] = self.matched_alert.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AmlResult from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "alerts": [AmlAlert.from_dict(_item) for _item in obj["alerts"]] if obj.get("alerts") is not None else None, - "providerResponse": obj.get("providerResponse"), - "matchedRule": AmlMatchedRule.from_dict(obj["matchedRule"]) if obj.get("matchedRule") is not None else None, - "matchedAlert": AmlAlert.from_dict(obj["matchedAlert"]) if obj.get("matchedAlert") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfYWxlcnQgaW1wb3J0IEFtbEFsZXJ0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX21hdGNoZWRfcnVsZSBpbXBvcnQgQW1sTWF0Y2hlZFJ1bGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQW1sUmVzdWx0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIERlcHJlY2F0ZWQ6IFRoaXMgZmllbGQgaXMgbm90IGN1cnJlbnRseSByZXR1cm5lZCBpbiB0aGUgQVBJIHJlc3BvbnNlLiBEZXRhaWxlZCBBTUwgc2NyZWVuaW5nIHJlc3VsdCBpbmZvcm1hdGlvbi4gQ29udGFpbnMgYWxlcnRzLCByaXNrIHNjb3JlcywgYW5kIG90aGVyIEFNTC1zcGVjaWZpYyBkYXRhIGZyb20gcHJvdmlkZXItc3BlY2lmaWMgcmVzcG9uc2VzLiAKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFsZXJ0czogT3B0aW9uYWxbTGlzdFtBbWxBbGVydF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTGlzdCBvZiBBTUwgYWxlcnRzIHRyaWdnZXJlZCBkdXJpbmcgc2NyZWVuaW5nIikKICAgIHByb3ZpZGVyX3Jlc3BvbnNlOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJDb21wbGV0ZSByZXNwb25zZSBmcm9tIHRoZSBBTUwgcHJvdmlkZXIuIFRoaXMgaXMgYSBkeW5hbWljIG9iamVjdCB0aGF0IHZhcmllcyBzaWduaWZpY2FudGx5IGJldHdlZW4gZGlmZmVyZW50IEFNTCBwcm92aWRlcnMgKENoYWluYWx5c2lzLCBFbGxpcHRpYywgZXRjLikuIEVhY2ggcHJvdmlkZXIgaGFzIHRoZWlyIG93biBwcm9wcmlldGFyeSByZXNwb25zZSBmb3JtYXQgYW5kIHNjaGVtYS4gIEV4YW1wbGVzIG9mIHByb3ZpZGVyLXNwZWNpZmljIHN0cnVjdHVyZXM6IC0gQ2hhaW5hbHlzaXM6IENvbnRhaW5zIGNsdXN0ZXIgaW5mbywgcmlzayBzY29yZXMsIHNhbmN0aW9ucyBkYXRhIC0gRWxsaXB0aWM6IEluY2x1ZGVzIHJpc2sgYXNzZXNzbWVudCwgZW50aXR5IHR5cGVzLCBjb21wbGlhbmNlIGZsYWdzICBUaGUgc3RydWN0dXJlIGlzIHByb3ZpZGVyLWRlcGVuZGVudCBhbmQgY2Fubm90IGJlIHN0YW5kYXJkaXplZCBhcyBlYWNoIHZlbmRvciBpbXBsZW1lbnRzIHRoZWlyIG93biBwcm9wcmlldGFyeSBkYXRhIG1vZGVscyBhbmQgcmVzcG9uc2UgZm9ybWF0cy4gIiwgYWxpYXM9InByb3ZpZGVyUmVzcG9uc2UiKQogICAgbWF0Y2hlZF9ydWxlOiBPcHRpb25hbFtBbWxNYXRjaGVkUnVsZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJtYXRjaGVkUnVsZSIpCiAgICBtYXRjaGVkX2FsZXJ0OiBPcHRpb25hbFtBbWxBbGVydF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJtYXRjaGVkQWxlcnQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhbGVydHMiLCAicHJvdmlkZXJSZXNwb25zZSIsICJtYXRjaGVkUnVsZSIsICJtYXRjaGVkQWxlcnQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtbFJlc3VsdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBhbGVydHMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmFsZXJ0czoKICAgICAgICAgICAgZm9yIF9pdGVtX2FsZXJ0cyBpbiBzZWxmLmFsZXJ0czoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2FsZXJ0czoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2FsZXJ0cy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydhbGVydHMnXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBtYXRjaGVkX3J1bGUKICAgICAgICBpZiBzZWxmLm1hdGNoZWRfcnVsZToKICAgICAgICAgICAgX2RpY3RbJ21hdGNoZWRSdWxlJ10gPSBzZWxmLm1hdGNoZWRfcnVsZS50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgbWF0Y2hlZF9hbGVydAogICAgICAgIGlmIHNlbGYubWF0Y2hlZF9hbGVydDoKICAgICAgICAgICAgX2RpY3RbJ21hdGNoZWRBbGVydCddID0gc2VsZi5tYXRjaGVkX2FsZXJ0LnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1sUmVzdWx0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFsZXJ0cyI6IFtBbWxBbGVydC5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImFsZXJ0cyJdXSBpZiBvYmouZ2V0KCJhbGVydHMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJwcm92aWRlclJlc3BvbnNlIjogb2JqLmdldCgicHJvdmlkZXJSZXNwb25zZSIpLAogICAgICAgICAgICAibWF0Y2hlZFJ1bGUiOiBBbWxNYXRjaGVkUnVsZS5mcm9tX2RpY3Qob2JqWyJtYXRjaGVkUnVsZSJdKSBpZiBvYmouZ2V0KCJtYXRjaGVkUnVsZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm1hdGNoZWRBbGVydCI6IEFtbEFsZXJ0LmZyb21fZGljdChvYmpbIm1hdGNoZWRBbGVydCJdKSBpZiBvYmouZ2V0KCJtYXRjaGVkQWxlcnQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/aml_screening_result.py b/fireblocks/models/aml_screening_result.py index 4a7f9903..99f6157e 100644 --- a/fireblocks/models/aml_screening_result.py +++ b/fireblocks/models/aml_screening_result.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class AmlScreeningResult(BaseModel): - """ - The result of the AML screening. - """ # noqa: E501 - provider: Optional[StrictStr] = None - payload: Optional[Dict[str, Any]] = None - __properties: ClassVar[List[str]] = ["provider", "payload"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AmlScreeningResult from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AmlScreeningResult from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "provider": obj.get("provider"), - "payload": obj.get("payload") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEFtbFNjcmVlbmluZ1Jlc3VsdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUaGUgcmVzdWx0IG9mIHRoZSBBTUwgc2NyZWVuaW5nLgogICAgIiIiICMgbm9xYTogRTUwMQogICAgcHJvdmlkZXI6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBwYXlsb2FkOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInByb3ZpZGVyIiwgInBheWxvYWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtbFNjcmVlbmluZ1Jlc3VsdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBbWxTY3JlZW5pbmdSZXN1bHQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicHJvdmlkZXIiOiBvYmouZ2V0KCJwcm92aWRlciIpLAogICAgICAgICAgICAicGF5bG9hZCI6IG9iai5nZXQoInBheWxvYWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/aml_status_enum.py b/fireblocks/models/aml_status_enum.py index 3580f241..996781ca 100644 --- a/fireblocks/models/aml_status_enum.py +++ b/fireblocks/models/aml_status_enum.py @@ -1,41 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class AmlStatusEnum(str, Enum): - """ - AML screening status - """ - - """ - allowed enum values - """ - COMPLETED = 'COMPLETED' - PENDING = 'PENDING' - BYPASSED = 'BYPASSED' - FAILED = 'FAILED' - FROZEN = 'FROZEN' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of AmlStatusEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBBbWxTdGF0dXNFbnVtKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIERlcHJlY2F0ZWQ6IFVzZSBzY3JlZW5pbmdTdGF0dXMgaW5zdGVhZC4gQU1MIHNjcmVlbmluZyBzdGF0dXMuIAogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIENPTVBMRVRFRCA9ICdDT01QTEVURUQnCiAgICBQRU5ESU5HID0gJ1BFTkRJTkcnCiAgICBCWVBBU1NFRCA9ICdCWVBBU1NFRCcKICAgIEZBSUxFRCA9ICdGQUlMRUQnCiAgICBGUk9aRU4gPSAnRlJPWkVOJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtbFN0YXR1c0VudW0gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/aml_verdict_manual_request.py b/fireblocks/models/aml_verdict_manual_request.py index b599ce25..a774a08a 100644 --- a/fireblocks/models/aml_verdict_manual_request.py +++ b/fireblocks/models/aml_verdict_manual_request.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class AmlVerdictManualRequest(BaseModel): - """ - AmlVerdictManualRequest - """ # noqa: E501 - verdict: StrictStr = Field(description="The AML verdict to set for the transaction") - tx_id: StrictStr = Field(description="The transaction ID to set the verdict for", alias="txId") - __properties: ClassVar[List[str]] = ["verdict", "txId"] - - @field_validator('verdict') - def verdict_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['ACCEPT', 'REJECT']): - raise ValueError("must be one of enum values ('ACCEPT', 'REJECT')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AmlVerdictManualRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AmlVerdictManualRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "verdict": obj.get("verdict"), - "txId": obj.get("txId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQW1sVmVyZGljdE1hbnVhbFJlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgQW1sVmVyZGljdE1hbnVhbFJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHZlcmRpY3Q6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgQU1MIHZlcmRpY3QgdG8gc2V0IGZvciB0aGUgdHJhbnNhY3Rpb24iKQogICAgdHhfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdHJhbnNhY3Rpb24gSUQgdG8gc2V0IHRoZSB2ZXJkaWN0IGZvciIsIGFsaWFzPSJ0eElkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidmVyZGljdCIsICJ0eElkIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCd2ZXJkaWN0JykKICAgIGRlZiB2ZXJkaWN0X3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0FDQ0VQVCcsICdSRUpFQ1QnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnQUNDRVBUJywgJ1JFSkVDVCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBbWxWZXJkaWN0TWFudWFsUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBbWxWZXJkaWN0TWFudWFsUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ2ZXJkaWN0Ijogb2JqLmdldCgidmVyZGljdCIpLAogICAgICAgICAgICAidHhJZCI6IG9iai5nZXQoInR4SWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/aml_verdict_manual_response.py b/fireblocks/models/aml_verdict_manual_response.py index 5335ee26..9707d33c 100644 --- a/fireblocks/models/aml_verdict_manual_response.py +++ b/fireblocks/models/aml_verdict_manual_response.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class AmlVerdictManualResponse(BaseModel): - """ - AmlVerdictManualResponse - """ # noqa: E501 - success: StrictBool - message: StrictStr - __properties: ClassVar[List[str]] = ["success", "message"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AmlVerdictManualResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AmlVerdictManualResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "success": obj.get("success"), - "message": obj.get("message") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RCb29sLCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQW1sVmVyZGljdE1hbnVhbFJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFtbFZlcmRpY3RNYW51YWxSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgc3VjY2VzczogU3RyaWN0Qm9vbAogICAgbWVzc2FnZTogU3RyaWN0U3RyCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInN1Y2Nlc3MiLCAibWVzc2FnZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1sVmVyZGljdE1hbnVhbFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtbFZlcmRpY3RNYW51YWxSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzdWNjZXNzIjogb2JqLmdldCgic3VjY2VzcyIpLAogICAgICAgICAgICAibWVzc2FnZSI6IG9iai5nZXQoIm1lc3NhZ2UiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/amount_and_chain_descriptor.py b/fireblocks/models/amount_and_chain_descriptor.py index ff5a00e1..9fcccd3a 100644 --- a/fireblocks/models/amount_and_chain_descriptor.py +++ b/fireblocks/models/amount_and_chain_descriptor.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class AmountAndChainDescriptor(BaseModel): - """ - AmountAndChainDescriptor - """ # noqa: E501 - chain_descriptor: StrictStr = Field(description="The protocol identifier (e.g. \"ETH\"/\"SOL\") for summary", alias="chainDescriptor") - amount: StrictStr = Field(description="Cryptocurrency quantity") - __properties: ClassVar[List[str]] = ["chainDescriptor", "amount"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AmountAndChainDescriptor from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AmountAndChainDescriptor from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "chainDescriptor": obj.get("chainDescriptor"), - "amount": obj.get("amount") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEFtb3VudEFuZENoYWluRGVzY3JpcHRvcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBbW91bnRBbmRDaGFpbkRlc2NyaXB0b3IKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGNoYWluX2Rlc2NyaXB0b3I6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgcHJvdG9jb2wgaWRlbnRpZmllciAoZS5nLiBcIkVUSFwiL1wiU09MXCIpIGZvciBzdW1tYXJ5IiwgYWxpYXM9ImNoYWluRGVzY3JpcHRvciIpCiAgICBhbW91bnQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJDcnlwdG9jdXJyZW5jeSBxdWFudGl0eSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImNoYWluRGVzY3JpcHRvciIsICJhbW91bnQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtb3VudEFuZENoYWluRGVzY3JpcHRvciBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBbW91bnRBbmRDaGFpbkRlc2NyaXB0b3IgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiY2hhaW5EZXNjcmlwdG9yIjogb2JqLmdldCgiY2hhaW5EZXNjcmlwdG9yIiksCiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/amount_config.py b/fireblocks/models/amount_config.py index 68f6299c..ccbaac5d 100644 --- a/fireblocks/models/amount_config.py +++ b/fireblocks/models/amount_config.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.amount_range_min_max2 import AmountRangeMinMax2 -from fireblocks.models.policy_currency import PolicyCurrency -from typing import Optional, Set -from typing_extensions import Self - -class AmountConfig(BaseModel): - """ - AmountConfig - """ # noqa: E501 - range: AmountRangeMinMax2 - currency: Optional[PolicyCurrency] = None - __properties: ClassVar[List[str]] = ["range", "currency"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AmountConfig from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of range - if self.range: - _dict['range'] = self.range.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AmountConfig from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "range": AmountRangeMinMax2.from_dict(obj["range"]) if obj.get("range") is not None else None, - "currency": obj.get("currency") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9yYW5nZV9taW5fbWF4MiBpbXBvcnQgQW1vdW50UmFuZ2VNaW5NYXgyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X2N1cnJlbmN5IGltcG9ydCBQb2xpY3lDdXJyZW5jeQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBbW91bnRDb25maWcoQmFzZU1vZGVsKToKICAgICIiIgogICAgQW1vdW50Q29uZmlnCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICByYW5nZTogQW1vdW50UmFuZ2VNaW5NYXgyCiAgICBjdXJyZW5jeTogT3B0aW9uYWxbUG9saWN5Q3VycmVuY3ldID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJyYW5nZSIsICJjdXJyZW5jeSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1vdW50Q29uZmlnIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcmFuZ2UKICAgICAgICBpZiBzZWxmLnJhbmdlOgogICAgICAgICAgICBfZGljdFsncmFuZ2UnXSA9IHNlbGYucmFuZ2UudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBbW91bnRDb25maWcgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicmFuZ2UiOiBBbW91bnRSYW5nZU1pbk1heDIuZnJvbV9kaWN0KG9ialsicmFuZ2UiXSkgaWYgb2JqLmdldCgicmFuZ2UiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJjdXJyZW5jeSI6IG9iai5nZXQoImN1cnJlbmN5IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/amount_config_currency.py b/fireblocks/models/amount_config_currency.py index acdc6e2e..b7a84a3b 100644 --- a/fireblocks/models/amount_config_currency.py +++ b/fireblocks/models/amount_config_currency.py @@ -1,89 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.policy_currency import PolicyCurrency -from typing import Optional, Set -from typing_extensions import Self - -class AmountConfigCurrency(BaseModel): - """ - Currency property for amount configuration - """ # noqa: E501 - currency: Optional[PolicyCurrency] = None - __properties: ClassVar[List[str]] = ["currency"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AmountConfigCurrency from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AmountConfigCurrency from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "currency": obj.get("currency") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9jdXJyZW5jeSBpbXBvcnQgUG9saWN5Q3VycmVuY3kKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQW1vdW50Q29uZmlnQ3VycmVuY3koQmFzZU1vZGVsKToKICAgICIiIgogICAgQ3VycmVuY3kgcHJvcGVydHkgZm9yIGFtb3VudCBjb25maWd1cmF0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBjdXJyZW5jeTogT3B0aW9uYWxbUG9saWN5Q3VycmVuY3ldID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJjdXJyZW5jeSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1vdW50Q29uZmlnQ3VycmVuY3kgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1vdW50Q29uZmlnQ3VycmVuY3kgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiY3VycmVuY3kiOiBvYmouZ2V0KCJjdXJyZW5jeSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/amount_info.py b/fireblocks/models/amount_info.py index 52b0be76..c17c070e 100644 --- a/fireblocks/models/amount_info.py +++ b/fireblocks/models/amount_info.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class AmountInfo(BaseModel): - """ - The details of the requested amount to transfer. - """ # noqa: E501 - amount: Optional[StrictStr] = Field(default=None, description="If the transfer is a withdrawal from an exchange, the actual amount that was requested to be transferred. Otherwise, the requested amount.") - requested_amount: Optional[StrictStr] = Field(default=None, description="The amount requested by the user.", alias="requestedAmount") - net_amount: Optional[StrictStr] = Field(default=None, description="The net amount of the transaction, after fee deduction.", alias="netAmount") - amount_usd: Optional[StrictStr] = Field(default=None, description="The USD value of the requested amount.", alias="amountUSD") - __properties: ClassVar[List[str]] = ["amount", "requestedAmount", "netAmount", "amountUSD"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AmountInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AmountInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": obj.get("amount"), - "requestedAmount": obj.get("requestedAmount"), - "netAmount": obj.get("netAmount"), - "amountUSD": obj.get("amountUSD") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBbW91bnRJbmZvKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRoZSBkZXRhaWxzIG9mIHRoZSByZXF1ZXN0ZWQgYW1vdW50IHRvIHRyYW5zZmVyLgogICAgIiIiICMgbm9xYTogRTUwMQogICAgYW1vdW50OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSWYgdGhlIHRyYW5zZmVyIGlzIGEgd2l0aGRyYXdhbCBmcm9tIGFuIGV4Y2hhbmdlLCB0aGUgYWN0dWFsIGFtb3VudCB0aGF0IHdhcyByZXF1ZXN0ZWQgdG8gYmUgdHJhbnNmZXJyZWQuIE90aGVyd2lzZSwgdGhlIHJlcXVlc3RlZCBhbW91bnQuIikKICAgIHJlcXVlc3RlZF9hbW91bnQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgYW1vdW50IHJlcXVlc3RlZCBieSB0aGUgdXNlci4iLCBhbGlhcz0icmVxdWVzdGVkQW1vdW50IikKICAgIG5ldF9hbW91bnQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgbmV0IGFtb3VudCBvZiB0aGUgdHJhbnNhY3Rpb24sIGFmdGVyIGZlZSBkZWR1Y3Rpb24uIiwgYWxpYXM9Im5ldEFtb3VudCIpCiAgICBhbW91bnRfdXNkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIFVTRCB2YWx1ZSBvZiB0aGUgcmVxdWVzdGVkIGFtb3VudC4iLCBhbGlhcz0iYW1vdW50VVNEIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYW1vdW50IiwgInJlcXVlc3RlZEFtb3VudCIsICJuZXRBbW91bnQiLCAiYW1vdW50VVNEIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBbW91bnRJbmZvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtb3VudEluZm8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYW1vdW50Ijogb2JqLmdldCgiYW1vdW50IiksCiAgICAgICAgICAgICJyZXF1ZXN0ZWRBbW91bnQiOiBvYmouZ2V0KCJyZXF1ZXN0ZWRBbW91bnQiKSwKICAgICAgICAgICAgIm5ldEFtb3VudCI6IG9iai5nZXQoIm5ldEFtb3VudCIpLAogICAgICAgICAgICAiYW1vdW50VVNEIjogb2JqLmdldCgiYW1vdW50VVNEIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/amount_over_time_config.py b/fireblocks/models/amount_over_time_config.py index 27adcb1f..dfe5f6af 100644 --- a/fireblocks/models/amount_over_time_config.py +++ b/fireblocks/models/amount_over_time_config.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.amount_range_min_max2 import AmountRangeMinMax2 -from fireblocks.models.policy_currency import PolicyCurrency -from fireblocks.models.time_period_config import TimePeriodConfig -from typing import Optional, Set -from typing_extensions import Self - -class AmountOverTimeConfig(BaseModel): - """ - Amount over time configuration - """ # noqa: E501 - range: AmountRangeMinMax2 - currency: PolicyCurrency - time_period: TimePeriodConfig = Field(alias="timePeriod") - __properties: ClassVar[List[str]] = ["range", "currency", "timePeriod"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AmountOverTimeConfig from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of range - if self.range: - _dict['range'] = self.range.to_dict() - # override the default output from pydantic by calling `to_dict()` of time_period - if self.time_period: - _dict['timePeriod'] = self.time_period.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AmountOverTimeConfig from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "range": AmountRangeMinMax2.from_dict(obj["range"]) if obj.get("range") is not None else None, - "currency": obj.get("currency"), - "timePeriod": TimePeriodConfig.from_dict(obj["timePeriod"]) if obj.get("timePeriod") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9yYW5nZV9taW5fbWF4MiBpbXBvcnQgQW1vdW50UmFuZ2VNaW5NYXgyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X2N1cnJlbmN5IGltcG9ydCBQb2xpY3lDdXJyZW5jeQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRpbWVfcGVyaW9kX2NvbmZpZyBpbXBvcnQgVGltZVBlcmlvZENvbmZpZwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBbW91bnRPdmVyVGltZUNvbmZpZyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBbW91bnQgb3ZlciB0aW1lIGNvbmZpZ3VyYXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHJhbmdlOiBBbW91bnRSYW5nZU1pbk1heDIKICAgIGN1cnJlbmN5OiBQb2xpY3lDdXJyZW5jeQogICAgdGltZV9wZXJpb2Q6IFRpbWVQZXJpb2RDb25maWcgPSBGaWVsZChhbGlhcz0idGltZVBlcmlvZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInJhbmdlIiwgImN1cnJlbmN5IiwgInRpbWVQZXJpb2QiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtb3VudE92ZXJUaW1lQ29uZmlnIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcmFuZ2UKICAgICAgICBpZiBzZWxmLnJhbmdlOgogICAgICAgICAgICBfZGljdFsncmFuZ2UnXSA9IHNlbGYucmFuZ2UudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHRpbWVfcGVyaW9kCiAgICAgICAgaWYgc2VsZi50aW1lX3BlcmlvZDoKICAgICAgICAgICAgX2RpY3RbJ3RpbWVQZXJpb2QnXSA9IHNlbGYudGltZV9wZXJpb2QudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBbW91bnRPdmVyVGltZUNvbmZpZyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJyYW5nZSI6IEFtb3VudFJhbmdlTWluTWF4Mi5mcm9tX2RpY3Qob2JqWyJyYW5nZSJdKSBpZiBvYmouZ2V0KCJyYW5nZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImN1cnJlbmN5Ijogb2JqLmdldCgiY3VycmVuY3kiKSwKICAgICAgICAgICAgInRpbWVQZXJpb2QiOiBUaW1lUGVyaW9kQ29uZmlnLmZyb21fZGljdChvYmpbInRpbWVQZXJpb2QiXSkgaWYgb2JqLmdldCgidGltZVBlcmlvZCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/amount_range.py b/fireblocks/models/amount_range.py index cf8da491..05424e59 100644 --- a/fireblocks/models/amount_range.py +++ b/fireblocks/models/amount_range.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List -from fireblocks.models.amount_range_min_max2 import AmountRangeMinMax2 -from typing import Optional, Set -from typing_extensions import Self - -class AmountRange(BaseModel): - """ - Amount range with minimum and maximum values - """ # noqa: E501 - range: AmountRangeMinMax2 - __properties: ClassVar[List[str]] = ["range"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AmountRange from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of range - if self.range: - _dict['range'] = self.range.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AmountRange from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "range": AmountRangeMinMax2.from_dict(obj["range"]) if obj.get("range") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X3JhbmdlX21pbl9tYXgyIGltcG9ydCBBbW91bnRSYW5nZU1pbk1heDIKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQW1vdW50UmFuZ2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgQW1vdW50IHJhbmdlIHdpdGggbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZXMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHJhbmdlOiBBbW91bnRSYW5nZU1pbk1heDIKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicmFuZ2UiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtb3VudFJhbmdlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcmFuZ2UKICAgICAgICBpZiBzZWxmLnJhbmdlOgogICAgICAgICAgICBfZGljdFsncmFuZ2UnXSA9IHNlbGYucmFuZ2UudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBbW91bnRSYW5nZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJyYW5nZSI6IEFtb3VudFJhbmdlTWluTWF4Mi5mcm9tX2RpY3Qob2JqWyJyYW5nZSJdKSBpZiBvYmouZ2V0KCJyYW5nZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/amount_range_min_max.py b/fireblocks/models/amount_range_min_max.py index bac8bcc3..1d5148dd 100644 --- a/fireblocks/models/amount_range_min_max.py +++ b/fireblocks/models/amount_range_min_max.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class AmountRangeMinMax(BaseModel): - """ - Amount range with minimum and maximum values - """ # noqa: E501 - min: Optional[StrictStr] = Field(default=None, description="Minimum amount") - max: Optional[StrictStr] = Field(default=None, description="Maximum amount") - __properties: ClassVar[List[str]] = ["min", "max"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AmountRangeMinMax from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AmountRangeMinMax from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "min": obj.get("min"), - "max": obj.get("max") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBbW91bnRSYW5nZU1pbk1heChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBbW91bnQgcmFuZ2Ugd2l0aCBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlcwogICAgIiIiICMgbm9xYTogRTUwMQogICAgbWluOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTWluaW11bSBhbW91bnQiKQogICAgbWF4OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTWF4aW11bSBhbW91bnQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJtaW4iLCAibWF4Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBbW91bnRSYW5nZU1pbk1heCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBbW91bnRSYW5nZU1pbk1heCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJtaW4iOiBvYmouZ2V0KCJtaW4iKSwKICAgICAgICAgICAgIm1heCI6IG9iai5nZXQoIm1heCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/amount_range_min_max2.py b/fireblocks/models/amount_range_min_max2.py index 35b0cc4b..ac7b9793 100644 --- a/fireblocks/models/amount_range_min_max2.py +++ b/fireblocks/models/amount_range_min_max2.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class AmountRangeMinMax2(BaseModel): - """ - Amount range with minimum and maximum values - """ # noqa: E501 - min: StrictStr = Field(description="Minimum amount") - max: Optional[StrictStr] = Field(default=None, description="Maximum amount") - __properties: ClassVar[List[str]] = ["min", "max"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AmountRangeMinMax2 from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AmountRangeMinMax2 from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "min": obj.get("min"), - "max": obj.get("max") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBbW91bnRSYW5nZU1pbk1heDIoQmFzZU1vZGVsKToKICAgICIiIgogICAgQW1vdW50IHJhbmdlIHdpdGggbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZXMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG1pbjogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249Ik1pbmltdW0gYW1vdW50IikKICAgIG1heDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik1heGltdW0gYW1vdW50IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibWluIiwgIm1heCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQW1vdW50UmFuZ2VNaW5NYXgyIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFtb3VudFJhbmdlTWluTWF4MiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJtaW4iOiBvYmouZ2V0KCJtaW4iKSwKICAgICAgICAgICAgIm1heCI6IG9iai5nZXQoIm1heCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/api_key.py b/fireblocks/models/api_key.py index 9f5fb56b..4a6abb25 100644 --- a/fireblocks/models/api_key.py +++ b/fireblocks/models/api_key.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.callback_handler import CallbackHandler -from typing import Optional, Set -from typing_extensions import Self - -class ApiKey(BaseModel): - """ - ApiKey - """ # noqa: E501 - id: StrictStr = Field(description="The unique identifier of the API key") - last_seen: Optional[datetime] = Field(default=None, description="The date the API key was last seen", alias="lastSeen") - callback_handler: Optional[CallbackHandler] = Field(default=None, alias="callbackHandler") - __properties: ClassVar[List[str]] = ["id", "lastSeen", "callbackHandler"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ApiKey from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of callback_handler - if self.callback_handler: - _dict['callbackHandler'] = self.callback_handler.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ApiKey from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "lastSeen": obj.get("lastSeen"), - "callbackHandler": CallbackHandler.from_dict(obj["callbackHandler"]) if obj.get("callbackHandler") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNhbGxiYWNrX2hhbmRsZXIgaW1wb3J0IENhbGxiYWNrSGFuZGxlcgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBcGlLZXkoQmFzZU1vZGVsKToKICAgICIiIgogICAgQXBpS2V5CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgQVBJIGtleSIpCiAgICBsYXN0X3NlZW46IE9wdGlvbmFsW2RhdGV0aW1lXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBkYXRlIHRoZSBBUEkga2V5IHdhcyBsYXN0IHNlZW4iLCBhbGlhcz0ibGFzdFNlZW4iKQogICAgY2FsbGJhY2tfaGFuZGxlcjogT3B0aW9uYWxbQ2FsbGJhY2tIYW5kbGVyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImNhbGxiYWNrSGFuZGxlciIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgImxhc3RTZWVuIiwgImNhbGxiYWNrSGFuZGxlciJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXBpS2V5IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgY2FsbGJhY2tfaGFuZGxlcgogICAgICAgIGlmIHNlbGYuY2FsbGJhY2tfaGFuZGxlcjoKICAgICAgICAgICAgX2RpY3RbJ2NhbGxiYWNrSGFuZGxlciddID0gc2VsZi5jYWxsYmFja19oYW5kbGVyLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXBpS2V5IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgImxhc3RTZWVuIjogb2JqLmdldCgibGFzdFNlZW4iKSwKICAgICAgICAgICAgImNhbGxiYWNrSGFuZGxlciI6IENhbGxiYWNrSGFuZGxlci5mcm9tX2RpY3Qob2JqWyJjYWxsYmFja0hhbmRsZXIiXSkgaWYgb2JqLmdldCgiY2FsbGJhY2tIYW5kbGVyIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/api_keys_paginated_response.py b/fireblocks/models/api_keys_paginated_response.py index 6b4fa82d..6c850ce8 100644 --- a/fireblocks/models/api_keys_paginated_response.py +++ b/fireblocks/models/api_keys_paginated_response.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.api_key import ApiKey -from typing import Optional, Set -from typing_extensions import Self - -class ApiKeysPaginatedResponse(BaseModel): - """ - ApiKeysPaginatedResponse - """ # noqa: E501 - data: List[ApiKey] = Field(description="The data of the current page") - next: Optional[StrictStr] = Field(default=None, description="The ID of the next page") - __properties: ClassVar[List[str]] = ["data", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ApiKeysPaginatedResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # set to None if next (nullable) is None - # and model_fields_set contains the field - if self.next is None and "next" in self.model_fields_set: - _dict['next'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ApiKeysPaginatedResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [ApiKey.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFwaV9rZXkgaW1wb3J0IEFwaUtleQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBcGlLZXlzUGFnaW5hdGVkUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgQXBpS2V5c1BhZ2luYXRlZFJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkYXRhOiBMaXN0W0FwaUtleV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGRhdGEgb2YgdGhlIGN1cnJlbnQgcGFnZSIpCiAgICBuZXh0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBuZXh0IHBhZ2UiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJkYXRhIiwgIm5leHQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFwaUtleXNQYWdpbmF0ZWRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBkYXRhIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5kYXRhOgogICAgICAgICAgICBmb3IgX2l0ZW1fZGF0YSBpbiBzZWxmLmRhdGE6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9kYXRhOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fZGF0YS50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydkYXRhJ10gPSBfaXRlbXMKICAgICAgICAjIHNldCB0byBOb25lIGlmIG5leHQgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLm5leHQgaXMgTm9uZSBhbmQgIm5leHQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ25leHQnXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBcGlLZXlzUGFnaW5hdGVkUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZGF0YSI6IFtBcGlLZXkuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJkYXRhIl1dIGlmIG9iai5nZXQoImRhdGEiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJuZXh0Ijogb2JqLmdldCgibmV4dCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/api_user.py b/fireblocks/models/api_user.py index aeac5a8c..f1c88636 100644 --- a/fireblocks/models/api_user.py +++ b/fireblocks/models/api_user.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.user_role import UserRole -from fireblocks.models.user_status import UserStatus -from fireblocks.models.user_type import UserType -from typing import Optional, Set -from typing_extensions import Self - -class APIUser(BaseModel): - """ - APIUser - """ # noqa: E501 - id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the user") - name: Optional[StrictStr] = Field(default=None, description="The name of the user") - role: Optional[UserRole] = None - enabled: Optional[StrictBool] = Field(default=None, description="Whether the user is enabled") - status: Optional[UserStatus] = None - user_type: Optional[UserType] = Field(default=None, alias="userType") - __properties: ClassVar[List[str]] = ["id", "name", "role", "enabled", "status", "userType"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of APIUser from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of APIUser from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name"), - "role": obj.get("role"), - "enabled": obj.get("enabled"), - "status": obj.get("status"), - "userType": obj.get("userType") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfcm9sZSBpbXBvcnQgVXNlclJvbGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51c2VyX3N0YXR1cyBpbXBvcnQgVXNlclN0YXR1cwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfdHlwZSBpbXBvcnQgVXNlclR5cGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQVBJVXNlcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBUElVc2VyCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgdXNlciIpCiAgICBuYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIG5hbWUgb2YgdGhlIHVzZXIiKQogICAgcm9sZTogT3B0aW9uYWxbVXNlclJvbGVdID0gTm9uZQogICAgZW5hYmxlZDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJXaGV0aGVyIHRoZSB1c2VyIGlzIGVuYWJsZWQiKQogICAgc3RhdHVzOiBPcHRpb25hbFtVc2VyU3RhdHVzXSA9IE5vbmUKICAgIHVzZXJfdHlwZTogT3B0aW9uYWxbVXNlclR5cGVdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0idXNlclR5cGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJuYW1lIiwgInJvbGUiLCAiZW5hYmxlZCIsICJzdGF0dXMiLCAidXNlclR5cGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFQSVVzZXIgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQVBJVXNlciBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAicm9sZSI6IG9iai5nZXQoInJvbGUiKSwKICAgICAgICAgICAgImVuYWJsZWQiOiBvYmouZ2V0KCJlbmFibGVkIiksCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgInVzZXJUeXBlIjogb2JqLmdldCgidXNlclR5cGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/approval_request.py b/fireblocks/models/approval_request.py index 87047c9a..8ad776f9 100644 --- a/fireblocks/models/approval_request.py +++ b/fireblocks/models/approval_request.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class ApprovalRequest(BaseModel): - """ - Approval request details - """ # noqa: E501 - id: StrictStr = Field(description="The approval request identifier") - type: StrictStr = Field(description="The approval request type") - state: StrictStr = Field(description="The approval request state") - __properties: ClassVar[List[str]] = ["id", "type", "state"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['TAG_UPDATE', 'TAG_DELETE', 'TAG_ATTACH_DETACH']): - raise ValueError("must be one of enum values ('TAG_UPDATE', 'TAG_DELETE', 'TAG_ATTACH_DETACH')") - return value - - @field_validator('state') - def state_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['PENDING', 'APPROVED', 'REJECTED', 'FAILED', 'CANCELLED', 'EXPIRED']): - raise ValueError("must be one of enum values ('PENDING', 'APPROVED', 'REJECTED', 'FAILED', 'CANCELLED', 'EXPIRED')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ApprovalRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ApprovalRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "type": obj.get("type"), - "state": obj.get("state") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQXBwcm92YWxSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFwcHJvdmFsIHJlcXVlc3QgZGV0YWlscwogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYXBwcm92YWwgcmVxdWVzdCBpZGVudGlmaWVyIikKICAgIHR5cGU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYXBwcm92YWwgcmVxdWVzdCB0eXBlIikKICAgIHN0YXRlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGFwcHJvdmFsIHJlcXVlc3Qgc3RhdGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJ0eXBlIiwgInN0YXRlIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCd0eXBlJykKICAgIGRlZiB0eXBlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ1RBR19VUERBVEUnLCAnVEFHX0RFTEVURScsICdUQUdfQVRUQUNIX0RFVEFDSCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdUQUdfVVBEQVRFJywgJ1RBR19ERUxFVEUnLCAnVEFHX0FUVEFDSF9ERVRBQ0gnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgQGZpZWxkX3ZhbGlkYXRvcignc3RhdGUnKQogICAgZGVmIHN0YXRlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ1BFTkRJTkcnLCAnQVBQUk9WRUQnLCAnUkVKRUNURUQnLCAnRkFJTEVEJywgJ0NBTkNFTExFRCcsICdFWFBJUkVEJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ1BFTkRJTkcnLCAnQVBQUk9WRUQnLCAnUkVKRUNURUQnLCAnRkFJTEVEJywgJ0NBTkNFTExFRCcsICdFWFBJUkVEJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFwcHJvdmFsUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBcHByb3ZhbFJlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgInN0YXRlIjogb2JqLmdldCgic3RhdGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/approvers_config.py b/fireblocks/models/approvers_config.py index c7bd867b..e8d28fba 100644 --- a/fireblocks/models/approvers_config.py +++ b/fireblocks/models/approvers_config.py @@ -1,112 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.approvers_config_approval_groups_inner import ApproversConfigApprovalGroupsInner -from typing import Optional, Set -from typing_extensions import Self - -class ApproversConfig(BaseModel): - """ - Approvers configuration - """ # noqa: E501 - can_initiator_approve: StrictBool = Field(description="Whether initiator can approve", alias="canInitiatorApprove") - operator: Optional[StrictStr] = Field(default=None, description="Operator for approval groups") - allow_operator_as_authorizer: Optional[StrictBool] = Field(default=None, description="Whether operator can be authorizer", alias="allowOperatorAsAuthorizer") - approval_groups: Optional[List[ApproversConfigApprovalGroupsInner]] = Field(default=None, description="List of approval groups", alias="approvalGroups") - __properties: ClassVar[List[str]] = ["canInitiatorApprove", "operator", "allowOperatorAsAuthorizer", "approvalGroups"] - - @field_validator('operator') - def operator_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['AND', 'OR']): - raise ValueError("must be one of enum values ('AND', 'OR')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ApproversConfig from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in approval_groups (list) - _items = [] - if self.approval_groups: - for _item_approval_groups in self.approval_groups: - if _item_approval_groups: - _items.append(_item_approval_groups.to_dict()) - _dict['approvalGroups'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ApproversConfig from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "canInitiatorApprove": obj.get("canInitiatorApprove"), - "operator": obj.get("operator"), - "allowOperatorAsAuthorizer": obj.get("allowOperatorAsAuthorizer"), - "approvalGroups": [ApproversConfigApprovalGroupsInner.from_dict(_item) for _item in obj["approvalGroups"]] if obj.get("approvalGroups") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXBwcm92ZXJzX2NvbmZpZ19hcHByb3ZhbF9ncm91cHNfaW5uZXIgaW1wb3J0IEFwcHJvdmVyc0NvbmZpZ0FwcHJvdmFsR3JvdXBzSW5uZXIKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQXBwcm92ZXJzQ29uZmlnKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFwcHJvdmVycyBjb25maWd1cmF0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBjYW5faW5pdGlhdG9yX2FwcHJvdmU6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iV2hldGhlciBpbml0aWF0b3IgY2FuIGFwcHJvdmUiLCBhbGlhcz0iY2FuSW5pdGlhdG9yQXBwcm92ZSIpCiAgICBvcGVyYXRvcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik9wZXJhdG9yIGZvciBhcHByb3ZhbCBncm91cHMiKQogICAgYWxsb3dfb3BlcmF0b3JfYXNfYXV0aG9yaXplcjogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJXaGV0aGVyIG9wZXJhdG9yIGNhbiBiZSBhdXRob3JpemVyIiwgYWxpYXM9ImFsbG93T3BlcmF0b3JBc0F1dGhvcml6ZXIiKQogICAgYXBwcm92YWxfZ3JvdXBzOiBPcHRpb25hbFtMaXN0W0FwcHJvdmVyc0NvbmZpZ0FwcHJvdmFsR3JvdXBzSW5uZXJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ikxpc3Qgb2YgYXBwcm92YWwgZ3JvdXBzIiwgYWxpYXM9ImFwcHJvdmFsR3JvdXBzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiY2FuSW5pdGlhdG9yQXBwcm92ZSIsICJvcGVyYXRvciIsICJhbGxvd09wZXJhdG9yQXNBdXRob3JpemVyIiwgImFwcHJvdmFsR3JvdXBzIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdvcGVyYXRvcicpCiAgICBkZWYgb3BlcmF0b3JfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gdmFsdWUKCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0FORCcsICdPUiddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdBTkQnLCAnT1InKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXBwcm92ZXJzQ29uZmlnIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGFwcHJvdmFsX2dyb3VwcyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuYXBwcm92YWxfZ3JvdXBzOgogICAgICAgICAgICBmb3IgX2l0ZW1fYXBwcm92YWxfZ3JvdXBzIGluIHNlbGYuYXBwcm92YWxfZ3JvdXBzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fYXBwcm92YWxfZ3JvdXBzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fYXBwcm92YWxfZ3JvdXBzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2FwcHJvdmFsR3JvdXBzJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFwcHJvdmVyc0NvbmZpZyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJjYW5Jbml0aWF0b3JBcHByb3ZlIjogb2JqLmdldCgiY2FuSW5pdGlhdG9yQXBwcm92ZSIpLAogICAgICAgICAgICAib3BlcmF0b3IiOiBvYmouZ2V0KCJvcGVyYXRvciIpLAogICAgICAgICAgICAiYWxsb3dPcGVyYXRvckFzQXV0aG9yaXplciI6IG9iai5nZXQoImFsbG93T3BlcmF0b3JBc0F1dGhvcml6ZXIiKSwKICAgICAgICAgICAgImFwcHJvdmFsR3JvdXBzIjogW0FwcHJvdmVyc0NvbmZpZ0FwcHJvdmFsR3JvdXBzSW5uZXIuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJhcHByb3ZhbEdyb3VwcyJdXSBpZiBvYmouZ2V0KCJhcHByb3ZhbEdyb3VwcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/approvers_config_approval_groups_inner.py b/fireblocks/models/approvers_config_approval_groups_inner.py index ac4737a3..99efe64f 100644 --- a/fireblocks/models/approvers_config_approval_groups_inner.py +++ b/fireblocks/models/approvers_config_approval_groups_inner.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class ApproversConfigApprovalGroupsInner(BaseModel): - """ - ApproversConfigApprovalGroupsInner - """ # noqa: E501 - threshold: Union[StrictFloat, StrictInt] = Field(description="Approval threshold") - users: Optional[List[StrictStr]] = Field(default=None, description="List of user IDs") - groups: Optional[List[StrictStr]] = Field(default=None, description="List of policy group IDs") - __properties: ClassVar[List[str]] = ["threshold", "users", "groups"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ApproversConfigApprovalGroupsInner from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ApproversConfigApprovalGroupsInner from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "threshold": obj.get("threshold"), - "users": obj.get("users"), - "groups": obj.get("groups") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQXBwcm92ZXJzQ29uZmlnQXBwcm92YWxHcm91cHNJbm5lcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBcHByb3ZlcnNDb25maWdBcHByb3ZhbEdyb3Vwc0lubmVyCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0aHJlc2hvbGQ6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoZGVzY3JpcHRpb249IkFwcHJvdmFsIHRocmVzaG9sZCIpCiAgICB1c2VyczogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ikxpc3Qgb2YgdXNlciBJRHMiKQogICAgZ3JvdXBzOiBPcHRpb25hbFtMaXN0W1N0cmljdFN0cl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTGlzdCBvZiBwb2xpY3kgZ3JvdXAgSURzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidGhyZXNob2xkIiwgInVzZXJzIiwgImdyb3VwcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXBwcm92ZXJzQ29uZmlnQXBwcm92YWxHcm91cHNJbm5lciBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBcHByb3ZlcnNDb25maWdBcHByb3ZhbEdyb3Vwc0lubmVyIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInRocmVzaG9sZCI6IG9iai5nZXQoInRocmVzaG9sZCIpLAogICAgICAgICAgICAidXNlcnMiOiBvYmouZ2V0KCJ1c2VycyIpLAogICAgICAgICAgICAiZ3JvdXBzIjogb2JqLmdldCgiZ3JvdXBzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/asset.py b/fireblocks/models/asset.py index 6cf28206..ad193caa 100644 --- a/fireblocks/models/asset.py +++ b/fireblocks/models/asset.py @@ -1,119 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.asset_class import AssetClass -from fireblocks.models.asset_details_metadata import AssetDetailsMetadata -from fireblocks.models.asset_details_onchain import AssetDetailsOnchain -from typing import Optional, Set -from typing_extensions import Self - -class Asset(BaseModel): - """ - Asset - """ # noqa: E501 - id: StrictStr = Field(description="The ID of the asset") - legacy_id: StrictStr = Field(description="The Legacy ID of the asset", alias="legacyId") - blockchain_id: Optional[StrictStr] = Field(default=None, description="The ID of the asset's blockchain", alias="blockchainId") - display_name: StrictStr = Field(description="Asset's display name", alias="displayName") - display_symbol: StrictStr = Field(description="Asset's display symbol", alias="displaySymbol") - provider_id: Optional[StrictStr] = Field(default=None, description="The ID of the asset provider", alias="providerId") - pegged_asset_id: Optional[StrictStr] = Field(default=None, description="The ID of the pegged asset", alias="peggedAssetId") - assets: Optional[List[StrictStr]] = Field(default=None, description="List of asset IDs for virtual assets") - asset_class: AssetClass = Field(alias="assetClass") - decimals: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Number of decimals for FIAT assets") - onchain: Optional[AssetDetailsOnchain] = None - metadata: AssetDetailsMetadata - __properties: ClassVar[List[str]] = ["id", "legacyId", "blockchainId", "displayName", "displaySymbol", "providerId", "peggedAssetId", "assets", "assetClass", "decimals", "onchain", "metadata"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of Asset from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of onchain - if self.onchain: - _dict['onchain'] = self.onchain.to_dict() - # override the default output from pydantic by calling `to_dict()` of metadata - if self.metadata: - _dict['metadata'] = self.metadata.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of Asset from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "legacyId": obj.get("legacyId"), - "blockchainId": obj.get("blockchainId"), - "displayName": obj.get("displayName"), - "displaySymbol": obj.get("displaySymbol"), - "providerId": obj.get("providerId"), - "peggedAssetId": obj.get("peggedAssetId"), - "assets": obj.get("assets"), - "assetClass": obj.get("assetClass"), - "decimals": obj.get("decimals"), - "onchain": AssetDetailsOnchain.from_dict(obj["onchain"]) if obj.get("onchain") is not None else None, - "metadata": AssetDetailsMetadata.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9jbGFzcyBpbXBvcnQgQXNzZXRDbGFzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2RldGFpbHNfbWV0YWRhdGEgaW1wb3J0IEFzc2V0RGV0YWlsc01ldGFkYXRhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfZGV0YWlsc19vbmNoYWluIGltcG9ydCBBc3NldERldGFpbHNPbmNoYWluCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEFzc2V0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFzc2V0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYXNzZXQiKQogICAgbGVnYWN5X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIExlZ2FjeSBJRCBvZiB0aGUgYXNzZXQiLCBhbGlhcz0ibGVnYWN5SWQiKQogICAgYmxvY2tjaGFpbl9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYXNzZXQncyBibG9ja2NoYWluIiwgYWxpYXM9ImJsb2NrY2hhaW5JZCIpCiAgICBkaXNwbGF5X25hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBc3NldCdzIGRpc3BsYXkgbmFtZSIsIGFsaWFzPSJkaXNwbGF5TmFtZSIpCiAgICBkaXNwbGF5X3N5bWJvbDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkFzc2V0J3MgZGlzcGxheSBzeW1ib2wiLCBhbGlhcz0iZGlzcGxheVN5bWJvbCIpCiAgICBwcm92aWRlcl9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYXNzZXQgcHJvdmlkZXIiLCBhbGlhcz0icHJvdmlkZXJJZCIpCiAgICBwZWdnZWRfYXNzZXRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIHBlZ2dlZCBhc3NldCIsIGFsaWFzPSJwZWdnZWRBc3NldElkIikKICAgIGFzc2V0czogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ikxpc3Qgb2YgYXNzZXQgSURzIGZvciB2aXJ0dWFsIGFzc2V0cyIpCiAgICBhc3NldF9jbGFzczogQXNzZXRDbGFzcyA9IEZpZWxkKGFsaWFzPSJhc3NldENsYXNzIikKICAgIGRlY2ltYWxzOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOdW1iZXIgb2YgZGVjaW1hbHMgZm9yIEZJQVQgYXNzZXRzIikKICAgIG9uY2hhaW46IE9wdGlvbmFsW0Fzc2V0RGV0YWlsc09uY2hhaW5dID0gTm9uZQogICAgbWV0YWRhdGE6IEFzc2V0RGV0YWlsc01ldGFkYXRhCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgImxlZ2FjeUlkIiwgImJsb2NrY2hhaW5JZCIsICJkaXNwbGF5TmFtZSIsICJkaXNwbGF5U3ltYm9sIiwgInByb3ZpZGVySWQiLCAicGVnZ2VkQXNzZXRJZCIsICJhc3NldHMiLCAiYXNzZXRDbGFzcyIsICJkZWNpbWFscyIsICJvbmNoYWluIiwgIm1ldGFkYXRhIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG9uY2hhaW4KICAgICAgICBpZiBzZWxmLm9uY2hhaW46CiAgICAgICAgICAgIF9kaWN0WydvbmNoYWluJ10gPSBzZWxmLm9uY2hhaW4udG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG1ldGFkYXRhCiAgICAgICAgaWYgc2VsZi5tZXRhZGF0YToKICAgICAgICAgICAgX2RpY3RbJ21ldGFkYXRhJ10gPSBzZWxmLm1ldGFkYXRhLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAibGVnYWN5SWQiOiBvYmouZ2V0KCJsZWdhY3lJZCIpLAogICAgICAgICAgICAiYmxvY2tjaGFpbklkIjogb2JqLmdldCgiYmxvY2tjaGFpbklkIiksCiAgICAgICAgICAgICJkaXNwbGF5TmFtZSI6IG9iai5nZXQoImRpc3BsYXlOYW1lIiksCiAgICAgICAgICAgICJkaXNwbGF5U3ltYm9sIjogb2JqLmdldCgiZGlzcGxheVN5bWJvbCIpLAogICAgICAgICAgICAicHJvdmlkZXJJZCI6IG9iai5nZXQoInByb3ZpZGVySWQiKSwKICAgICAgICAgICAgInBlZ2dlZEFzc2V0SWQiOiBvYmouZ2V0KCJwZWdnZWRBc3NldElkIiksCiAgICAgICAgICAgICJhc3NldHMiOiBvYmouZ2V0KCJhc3NldHMiKSwKICAgICAgICAgICAgImFzc2V0Q2xhc3MiOiBvYmouZ2V0KCJhc3NldENsYXNzIiksCiAgICAgICAgICAgICJkZWNpbWFscyI6IG9iai5nZXQoImRlY2ltYWxzIiksCiAgICAgICAgICAgICJvbmNoYWluIjogQXNzZXREZXRhaWxzT25jaGFpbi5mcm9tX2RpY3Qob2JqWyJvbmNoYWluIl0pIGlmIG9iai5nZXQoIm9uY2hhaW4iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJtZXRhZGF0YSI6IEFzc2V0RGV0YWlsc01ldGFkYXRhLmZyb21fZGljdChvYmpbIm1ldGFkYXRhIl0pIGlmIG9iai5nZXQoIm1ldGFkYXRhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/asset_already_exist_http_error.py b/fireblocks/models/asset_already_exist_http_error.py index 8941be1c..7958f1e8 100644 --- a/fireblocks/models/asset_already_exist_http_error.py +++ b/fireblocks/models/asset_already_exist_http_error.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class AssetAlreadyExistHttpError(BaseModel): - """ - AssetAlreadyExistHttpError - """ # noqa: E501 - status_code: Optional[StrictInt] = Field(default=None, description="HTTP status code", alias="statusCode") - message: Optional[StrictStr] = Field(default=None, description="Error message") - error: Optional[StrictStr] = Field(default=None, description="Short description of the HTTP error") - __properties: ClassVar[List[str]] = ["statusCode", "message", "error"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetAlreadyExistHttpError from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetAlreadyExistHttpError from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "statusCode": obj.get("statusCode"), - "message": obj.get("message"), - "error": obj.get("error") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEFzc2V0QWxyZWFkeUV4aXN0SHR0cEVycm9yKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFzc2V0QWxyZWFkeUV4aXN0SHR0cEVycm9yCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzdGF0dXNfY29kZTogT3B0aW9uYWxbU3RyaWN0SW50XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkhUVFAgc3RhdHVzIGNvZGUiLCBhbGlhcz0ic3RhdHVzQ29kZSIpCiAgICBtZXNzYWdlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRXJyb3IgbWVzc2FnZSIpCiAgICBlcnJvcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNob3J0IGRlc2NyaXB0aW9uIG9mIHRoZSBIVFRQIGVycm9yIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3RhdHVzQ29kZSIsICJtZXNzYWdlIiwgImVycm9yIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldEFscmVhZHlFeGlzdEh0dHBFcnJvciBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldEFscmVhZHlFeGlzdEh0dHBFcnJvciBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzdGF0dXNDb2RlIjogb2JqLmdldCgic3RhdHVzQ29kZSIpLAogICAgICAgICAgICAibWVzc2FnZSI6IG9iai5nZXQoIm1lc3NhZ2UiKSwKICAgICAgICAgICAgImVycm9yIjogb2JqLmdldCgiZXJyb3IiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/asset_amount.py b/fireblocks/models/asset_amount.py index 7114b71d..c3c5cabe 100644 --- a/fireblocks/models/asset_amount.py +++ b/fireblocks/models/asset_amount.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class AssetAmount(BaseModel): - """ - AssetAmount - """ # noqa: E501 - amount: StrictStr - asset_id: StrictStr = Field(alias="assetId") - __properties: ClassVar[List[str]] = ["amount", "assetId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetAmount from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetAmount from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": obj.get("amount"), - "assetId": obj.get("assetId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEFzc2V0QW1vdW50KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFzc2V0QW1vdW50CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhbW91bnQ6IFN0cmljdFN0cgogICAgYXNzZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJhc3NldElkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYW1vdW50IiwgImFzc2V0SWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0QW1vdW50IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0QW1vdW50IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFtb3VudCI6IG9iai5nZXQoImFtb3VudCIpLAogICAgICAgICAgICAiYXNzZXRJZCI6IG9iai5nZXQoImFzc2V0SWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/asset_bad_request_error_response.py b/fireblocks/models/asset_bad_request_error_response.py index 3a8bc476..26073481 100644 --- a/fireblocks/models/asset_bad_request_error_response.py +++ b/fireblocks/models/asset_bad_request_error_response.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class AssetBadRequestErrorResponse(BaseModel): - """ - AssetBadRequestErrorResponse - """ # noqa: E501 - message: StrictStr = Field(description="Bad request error code") - code: Union[StrictFloat, StrictInt] = Field(description="Error code") - __properties: ClassVar[List[str]] = ["message", "code"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetBadRequestErrorResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetBadRequestErrorResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "code": obj.get("code") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBc3NldEJhZFJlcXVlc3RFcnJvclJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFzc2V0QmFkUmVxdWVzdEVycm9yUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG1lc3NhZ2U6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJCYWQgcmVxdWVzdCBlcnJvciBjb2RlIikKICAgIGNvZGU6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoZGVzY3JpcHRpb249IkVycm9yIGNvZGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJtZXNzYWdlIiwgImNvZGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0QmFkUmVxdWVzdEVycm9yUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRCYWRSZXF1ZXN0RXJyb3JSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJtZXNzYWdlIjogb2JqLmdldCgibWVzc2FnZSIpLAogICAgICAgICAgICAiY29kZSI6IG9iai5nZXQoImNvZGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/asset_class.py b/fireblocks/models/asset_class.py index 4c2e2592..4cff6a99 100644 --- a/fireblocks/models/asset_class.py +++ b/fireblocks/models/asset_class.py @@ -1,42 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class AssetClass(str, Enum): - """ - AssetClass - """ - - """ - allowed enum values - """ - NATIVE = 'NATIVE' - FT = 'FT' - FIAT = 'FIAT' - NFT = 'NFT' - SFT = 'SFT' - VIRTUAL = 'VIRTUAL' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of AssetClass from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBBc3NldENsYXNzKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIEFzc2V0Q2xhc3MKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBOQVRJVkUgPSAnTkFUSVZFJwogICAgRlQgPSAnRlQnCiAgICBGSUFUID0gJ0ZJQVQnCiAgICBORlQgPSAnTkZUJwogICAgU0ZUID0gJ1NGVCcKICAgIFZJUlRVQUwgPSAnVklSVFVBTCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldENsYXNzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/asset_config.py b/fireblocks/models/asset_config.py index 8056a0b0..0120925b 100644 --- a/fireblocks/models/asset_config.py +++ b/fireblocks/models/asset_config.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.asset_types_config_inner import AssetTypesConfigInner -from fireblocks.models.policy_operator import PolicyOperator -from typing import Optional, Set -from typing_extensions import Self - -class AssetConfig(BaseModel): - """ - Policy asset configuration - """ # noqa: E501 - nft_transfer: StrictBool = Field(description="Whether this is an NFT transfer", alias="nftTransfer") - asset_types: Optional[List[AssetTypesConfigInner]] = Field(default=None, description="List of asset types", alias="assetTypes") - operator: Optional[PolicyOperator] = None - __properties: ClassVar[List[str]] = ["nftTransfer", "assetTypes", "operator"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetConfig from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in asset_types (list) - _items = [] - if self.asset_types: - for _item_asset_types in self.asset_types: - if _item_asset_types: - _items.append(_item_asset_types.to_dict()) - _dict['assetTypes'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetConfig from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "nftTransfer": obj.get("nftTransfer"), - "assetTypes": [AssetTypesConfigInner.from_dict(_item) for _item in obj["assetTypes"]] if obj.get("assetTypes") is not None else None, - "operator": obj.get("operator") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF90eXBlc19jb25maWdfaW5uZXIgaW1wb3J0IEFzc2V0VHlwZXNDb25maWdJbm5lcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9vcGVyYXRvciBpbXBvcnQgUG9saWN5T3BlcmF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQXNzZXRDb25maWcoQmFzZU1vZGVsKToKICAgICIiIgogICAgUG9saWN5IGFzc2V0IGNvbmZpZ3VyYXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG5mdF90cmFuc2ZlcjogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJXaGV0aGVyIHRoaXMgaXMgYW4gTkZUIHRyYW5zZmVyIiwgYWxpYXM9Im5mdFRyYW5zZmVyIikKICAgIGFzc2V0X3R5cGVzOiBPcHRpb25hbFtMaXN0W0Fzc2V0VHlwZXNDb25maWdJbm5lcl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTGlzdCBvZiBhc3NldCB0eXBlcyIsIGFsaWFzPSJhc3NldFR5cGVzIikKICAgIG9wZXJhdG9yOiBPcHRpb25hbFtQb2xpY3lPcGVyYXRvcl0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm5mdFRyYW5zZmVyIiwgImFzc2V0VHlwZXMiLCAib3BlcmF0b3IiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0Q29uZmlnIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGFzc2V0X3R5cGVzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5hc3NldF90eXBlczoKICAgICAgICAgICAgZm9yIF9pdGVtX2Fzc2V0X3R5cGVzIGluIHNlbGYuYXNzZXRfdHlwZXM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9hc3NldF90eXBlczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2Fzc2V0X3R5cGVzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2Fzc2V0VHlwZXMnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRDb25maWcgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibmZ0VHJhbnNmZXIiOiBvYmouZ2V0KCJuZnRUcmFuc2ZlciIpLAogICAgICAgICAgICAiYXNzZXRUeXBlcyI6IFtBc3NldFR5cGVzQ29uZmlnSW5uZXIuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJhc3NldFR5cGVzIl1dIGlmIG9iai5nZXQoImFzc2V0VHlwZXMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJvcGVyYXRvciI6IG9iai5nZXQoIm9wZXJhdG9yIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/asset_conflict_error_response.py b/fireblocks/models/asset_conflict_error_response.py index 23db906b..4374203c 100644 --- a/fireblocks/models/asset_conflict_error_response.py +++ b/fireblocks/models/asset_conflict_error_response.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class AssetConflictErrorResponse(BaseModel): - """ - AssetConflictErrorResponse - """ # noqa: E501 - message: StrictStr = Field(description="Conflict error code") - code: Union[StrictFloat, StrictInt] = Field(description="Error code") - __properties: ClassVar[List[str]] = ["message", "code"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetConflictErrorResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetConflictErrorResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "code": obj.get("code") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBc3NldENvbmZsaWN0RXJyb3JSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBc3NldENvbmZsaWN0RXJyb3JSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgbWVzc2FnZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkNvbmZsaWN0IGVycm9yIGNvZGUiKQogICAgY29kZTogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iRXJyb3IgY29kZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm1lc3NhZ2UiLCAiY29kZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRDb25mbGljdEVycm9yUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRDb25mbGljdEVycm9yUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibWVzc2FnZSI6IG9iai5nZXQoIm1lc3NhZ2UiKSwKICAgICAgICAgICAgImNvZGUiOiBvYmouZ2V0KCJjb2RlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/asset_details_metadata.py b/fireblocks/models/asset_details_metadata.py index f2027b70..291a0506 100644 --- a/fireblocks/models/asset_details_metadata.py +++ b/fireblocks/models/asset_details_metadata.py @@ -1,116 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.asset_feature import AssetFeature -from fireblocks.models.asset_media import AssetMedia -from fireblocks.models.asset_note import AssetNote -from fireblocks.models.asset_scope import AssetScope -from typing import Optional, Set -from typing_extensions import Self - -class AssetDetailsMetadata(BaseModel): - """ - AssetDetailsMetadata - """ # noqa: E501 - scope: AssetScope - verified: StrictBool = Field(description="Is asset verified by Fireblocks") - deprecated: StrictBool = Field(description="Is asset deprecated") - deprecation_referral_id: Optional[StrictStr] = Field(default=None, description="New asset ID replacement", alias="deprecationReferralId") - website: Optional[StrictStr] = Field(default=None, description="Vendor’s website") - media: Optional[List[AssetMedia]] = Field(default=None, description="Asset’s media") - note: Optional[AssetNote] = None - features: Optional[List[AssetFeature]] = Field(default=None, description="Asset features") - __properties: ClassVar[List[str]] = ["scope", "verified", "deprecated", "deprecationReferralId", "website", "media", "note", "features"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetDetailsMetadata from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in media (list) - _items = [] - if self.media: - for _item_media in self.media: - if _item_media: - _items.append(_item_media.to_dict()) - _dict['media'] = _items - # override the default output from pydantic by calling `to_dict()` of note - if self.note: - _dict['note'] = self.note.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetDetailsMetadata from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "scope": obj.get("scope"), - "verified": obj.get("verified"), - "deprecated": obj.get("deprecated"), - "deprecationReferralId": obj.get("deprecationReferralId"), - "website": obj.get("website"), - "media": [AssetMedia.from_dict(_item) for _item in obj["media"]] if obj.get("media") is not None else None, - "note": AssetNote.from_dict(obj["note"]) if obj.get("note") is not None else None, - "features": obj.get("features") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2ZlYXR1cmUgaW1wb3J0IEFzc2V0RmVhdHVyZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X21lZGlhIGltcG9ydCBBc3NldE1lZGlhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfbm90ZSBpbXBvcnQgQXNzZXROb3RlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfc2NvcGUgaW1wb3J0IEFzc2V0U2NvcGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQXNzZXREZXRhaWxzTWV0YWRhdGEoQmFzZU1vZGVsKToKICAgICIiIgogICAgQXNzZXREZXRhaWxzTWV0YWRhdGEKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHNjb3BlOiBBc3NldFNjb3BlCiAgICB2ZXJpZmllZDogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJcyBhc3NldCB2ZXJpZmllZCBieSBGaXJlYmxvY2tzIikKICAgIGRlcHJlY2F0ZWQ6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iSXMgYXNzZXQgZGVwcmVjYXRlZCIpCiAgICBkZXByZWNhdGlvbl9yZWZlcnJhbF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik5ldyBhc3NldCBJRCByZXBsYWNlbWVudCIsIGFsaWFzPSJkZXByZWNhdGlvblJlZmVycmFsSWQiKQogICAgd2Vic2l0ZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlZlbmRvcuKAmXMgd2Vic2l0ZSIpCiAgICBtZWRpYTogT3B0aW9uYWxbTGlzdFtBc3NldE1lZGlhXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBc3NldOKAmXMgbWVkaWEiKQogICAgbm90ZTogT3B0aW9uYWxbQXNzZXROb3RlXSA9IE5vbmUKICAgIGZlYXR1cmVzOiBPcHRpb25hbFtMaXN0W0Fzc2V0RmVhdHVyZV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQXNzZXQgZmVhdHVyZXMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzY29wZSIsICJ2ZXJpZmllZCIsICJkZXByZWNhdGVkIiwgImRlcHJlY2F0aW9uUmVmZXJyYWxJZCIsICJ3ZWJzaXRlIiwgIm1lZGlhIiwgIm5vdGUiLCAiZmVhdHVyZXMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0RGV0YWlsc01ldGFkYXRhIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIG1lZGlhIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5tZWRpYToKICAgICAgICAgICAgZm9yIF9pdGVtX21lZGlhIGluIHNlbGYubWVkaWE6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9tZWRpYToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX21lZGlhLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ21lZGlhJ10gPSBfaXRlbXMKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2Ygbm90ZQogICAgICAgIGlmIHNlbGYubm90ZToKICAgICAgICAgICAgX2RpY3RbJ25vdGUnXSA9IHNlbGYubm90ZS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0RGV0YWlsc01ldGFkYXRhIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInNjb3BlIjogb2JqLmdldCgic2NvcGUiKSwKICAgICAgICAgICAgInZlcmlmaWVkIjogb2JqLmdldCgidmVyaWZpZWQiKSwKICAgICAgICAgICAgImRlcHJlY2F0ZWQiOiBvYmouZ2V0KCJkZXByZWNhdGVkIiksCiAgICAgICAgICAgICJkZXByZWNhdGlvblJlZmVycmFsSWQiOiBvYmouZ2V0KCJkZXByZWNhdGlvblJlZmVycmFsSWQiKSwKICAgICAgICAgICAgIndlYnNpdGUiOiBvYmouZ2V0KCJ3ZWJzaXRlIiksCiAgICAgICAgICAgICJtZWRpYSI6IFtBc3NldE1lZGlhLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsibWVkaWEiXV0gaWYgb2JqLmdldCgibWVkaWEiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJub3RlIjogQXNzZXROb3RlLmZyb21fZGljdChvYmpbIm5vdGUiXSkgaWYgb2JqLmdldCgibm90ZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImZlYXR1cmVzIjogb2JqLmdldCgiZmVhdHVyZXMiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/asset_details_onchain.py b/fireblocks/models/asset_details_onchain.py index ca45ab15..0caa8549 100644 --- a/fireblocks/models/asset_details_onchain.py +++ b/fireblocks/models/asset_details_onchain.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class AssetDetailsOnchain(BaseModel): - """ - AssetDetailsOnchain - """ # noqa: E501 - symbol: StrictStr = Field(description="The asset symbol") - name: StrictStr = Field(description="The asset name") - address: Optional[StrictStr] = Field(default=None, description="The asset address") - decimals: Union[StrictFloat, StrictInt] = Field(description="Number of decimals") - standards: Optional[List[StrictStr]] = Field(default=None, description="Supported standards") - __properties: ClassVar[List[str]] = ["symbol", "name", "address", "decimals", "standards"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetDetailsOnchain from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetDetailsOnchain from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "symbol": obj.get("symbol"), - "name": obj.get("name"), - "address": obj.get("address"), - "decimals": obj.get("decimals"), - "standards": obj.get("standards") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQXNzZXREZXRhaWxzT25jaGFpbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBc3NldERldGFpbHNPbmNoYWluCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzeW1ib2w6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYXNzZXQgc3ltYm9sIikKICAgIG5hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYXNzZXQgbmFtZSIpCiAgICBhZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGFzc2V0IGFkZHJlc3MiKQogICAgZGVjaW1hbHM6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoZGVzY3JpcHRpb249Ik51bWJlciBvZiBkZWNpbWFscyIpCiAgICBzdGFuZGFyZHM6IE9wdGlvbmFsW0xpc3RbU3RyaWN0U3RyXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTdXBwb3J0ZWQgc3RhbmRhcmRzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3ltYm9sIiwgIm5hbWUiLCAiYWRkcmVzcyIsICJkZWNpbWFscyIsICJzdGFuZGFyZHMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0RGV0YWlsc09uY2hhaW4gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXREZXRhaWxzT25jaGFpbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzeW1ib2wiOiBvYmouZ2V0KCJzeW1ib2wiKSwKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJhZGRyZXNzIjogb2JqLmdldCgiYWRkcmVzcyIpLAogICAgICAgICAgICAiZGVjaW1hbHMiOiBvYmouZ2V0KCJkZWNpbWFscyIpLAogICAgICAgICAgICAic3RhbmRhcmRzIjogb2JqLmdldCgic3RhbmRhcmRzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/asset_feature.py b/fireblocks/models/asset_feature.py index 7979d6be..28d79ae2 100644 --- a/fireblocks/models/asset_feature.py +++ b/fireblocks/models/asset_feature.py @@ -1,37 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class AssetFeature(str, Enum): - """ - Asset feature - """ - - """ - allowed enum values - """ - STABLECOIN = 'STABLECOIN' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of AssetFeature from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBBc3NldEZlYXR1cmUoc3RyLCBFbnVtKToKICAgICIiIgogICAgQXNzZXQgZmVhdHVyZQogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIFNUQUJMRUNPSU4gPSAnU1RBQkxFQ09JTicKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldEZlYXR1cmUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/asset_forbidden_error_response.py b/fireblocks/models/asset_forbidden_error_response.py index 84626e70..09825474 100644 --- a/fireblocks/models/asset_forbidden_error_response.py +++ b/fireblocks/models/asset_forbidden_error_response.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class AssetForbiddenErrorResponse(BaseModel): - """ - AssetForbiddenErrorResponse - """ # noqa: E501 - message: StrictStr = Field(description="Forbidden error code") - code: Union[StrictFloat, StrictInt] = Field(description="Error code") - __properties: ClassVar[List[str]] = ["message", "code"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetForbiddenErrorResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetForbiddenErrorResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "code": obj.get("code") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBc3NldEZvcmJpZGRlbkVycm9yUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgQXNzZXRGb3JiaWRkZW5FcnJvclJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBtZXNzYWdlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iRm9yYmlkZGVuIGVycm9yIGNvZGUiKQogICAgY29kZTogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iRXJyb3IgY29kZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm1lc3NhZ2UiLCAiY29kZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRGb3JiaWRkZW5FcnJvclJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0Rm9yYmlkZGVuRXJyb3JSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJtZXNzYWdlIjogb2JqLmdldCgibWVzc2FnZSIpLAogICAgICAgICAgICAiY29kZSI6IG9iai5nZXQoImNvZGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/asset_internal_server_error_response.py b/fireblocks/models/asset_internal_server_error_response.py index 9212364e..a503b515 100644 --- a/fireblocks/models/asset_internal_server_error_response.py +++ b/fireblocks/models/asset_internal_server_error_response.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class AssetInternalServerErrorResponse(BaseModel): - """ - AssetInternalServerErrorResponse - """ # noqa: E501 - message: StrictStr = Field(description="Internal server error code") - code: Union[StrictFloat, StrictInt] = Field(description="Error code") - __properties: ClassVar[List[str]] = ["message", "code"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetInternalServerErrorResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetInternalServerErrorResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "code": obj.get("code") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBc3NldEludGVybmFsU2VydmVyRXJyb3JSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBc3NldEludGVybmFsU2VydmVyRXJyb3JSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgbWVzc2FnZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkludGVybmFsIHNlcnZlciBlcnJvciBjb2RlIikKICAgIGNvZGU6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoZGVzY3JpcHRpb249IkVycm9yIGNvZGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJtZXNzYWdlIiwgImNvZGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0SW50ZXJuYWxTZXJ2ZXJFcnJvclJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0SW50ZXJuYWxTZXJ2ZXJFcnJvclJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm1lc3NhZ2UiOiBvYmouZ2V0KCJtZXNzYWdlIiksCiAgICAgICAgICAgICJjb2RlIjogb2JqLmdldCgiY29kZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/asset_media.py b/fireblocks/models/asset_media.py index 67d6186a..4667179a 100644 --- a/fireblocks/models/asset_media.py +++ b/fireblocks/models/asset_media.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.asset_media_attributes import AssetMediaAttributes -from typing import Optional, Set -from typing_extensions import Self - -class AssetMedia(BaseModel): - """ - AssetMedia - """ # noqa: E501 - url: StrictStr = Field(description="Media URL") - type: StrictStr = Field(description="Media type") - attributes: Optional[AssetMediaAttributes] = None - __properties: ClassVar[List[str]] = ["url", "type", "attributes"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['image/svg+xml', 'image/png']): - raise ValueError("must be one of enum values ('image/svg+xml', 'image/png')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetMedia from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of attributes - if self.attributes: - _dict['attributes'] = self.attributes.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetMedia from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "url": obj.get("url"), - "type": obj.get("type"), - "attributes": AssetMediaAttributes.from_dict(obj["attributes"]) if obj.get("attributes") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfbWVkaWFfYXR0cmlidXRlcyBpbXBvcnQgQXNzZXRNZWRpYUF0dHJpYnV0ZXMKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQXNzZXRNZWRpYShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBc3NldE1lZGlhCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB1cmw6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJNZWRpYSBVUkwiKQogICAgdHlwZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249Ik1lZGlhIHR5cGUiKQogICAgYXR0cmlidXRlczogT3B0aW9uYWxbQXNzZXRNZWRpYUF0dHJpYnV0ZXNdID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ1cmwiLCAidHlwZSIsICJhdHRyaWJ1dGVzIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCd0eXBlJykKICAgIGRlZiB0eXBlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ2ltYWdlL3N2Zyt4bWwnLCAnaW1hZ2UvcG5nJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ2ltYWdlL3N2Zyt4bWwnLCAnaW1hZ2UvcG5nJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0TWVkaWEgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhdHRyaWJ1dGVzCiAgICAgICAgaWYgc2VsZi5hdHRyaWJ1dGVzOgogICAgICAgICAgICBfZGljdFsnYXR0cmlidXRlcyddID0gc2VsZi5hdHRyaWJ1dGVzLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRNZWRpYSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ1cmwiOiBvYmouZ2V0KCJ1cmwiKSwKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIiksCiAgICAgICAgICAgICJhdHRyaWJ1dGVzIjogQXNzZXRNZWRpYUF0dHJpYnV0ZXMuZnJvbV9kaWN0KG9ialsiYXR0cmlidXRlcyJdKSBpZiBvYmouZ2V0KCJhdHRyaWJ1dGVzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/asset_media_attributes.py b/fireblocks/models/asset_media_attributes.py index 74538a0e..9f90f135 100644 --- a/fireblocks/models/asset_media_attributes.py +++ b/fireblocks/models/asset_media_attributes.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class AssetMediaAttributes(BaseModel): - """ - Media attributes - """ # noqa: E501 - monochrome: Optional[StrictBool] = Field(default=None, description="Monochrome flag") - __properties: ClassVar[List[str]] = ["monochrome"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetMediaAttributes from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetMediaAttributes from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "monochrome": obj.get("monochrome") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQXNzZXRNZWRpYUF0dHJpYnV0ZXMoQmFzZU1vZGVsKToKICAgICIiIgogICAgTWVkaWEgYXR0cmlidXRlcwogICAgIiIiICMgbm9xYTogRTUwMQogICAgbW9ub2Nocm9tZTogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJNb25vY2hyb21lIGZsYWciKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJtb25vY2hyb21lIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldE1lZGlhQXR0cmlidXRlcyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldE1lZGlhQXR0cmlidXRlcyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJtb25vY2hyb21lIjogb2JqLmdldCgibW9ub2Nocm9tZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/asset_metadata.py b/fireblocks/models/asset_metadata.py index d63aa924..f09e5e88 100644 --- a/fireblocks/models/asset_metadata.py +++ b/fireblocks/models/asset_metadata.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class AssetMetadata(BaseModel): - """ - AssetMetadata - """ # noqa: E501 - scope: StrictStr = Field(description="The scope of the asset") - deprecated: StrictBool = Field(description="Is asset deprecated") - __properties: ClassVar[List[str]] = ["scope", "deprecated"] - - @field_validator('scope') - def scope_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['Global', 'Local']): - raise ValueError("must be one of enum values ('Global', 'Local')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetMetadata from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetMetadata from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "scope": obj.get("scope"), - "deprecated": obj.get("deprecated") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQXNzZXRNZXRhZGF0YShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBc3NldE1ldGFkYXRhCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzY29wZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBzY29wZSBvZiB0aGUgYXNzZXQiKQogICAgZGVwcmVjYXRlZDogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJcyBhc3NldCBkZXByZWNhdGVkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic2NvcGUiLCAiZGVwcmVjYXRlZCJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignc2NvcGUnKQogICAgZGVmIHNjb3BlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0dsb2JhbCcsICdMb2NhbCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdHbG9iYWwnLCAnTG9jYWwnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRNZXRhZGF0YSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldE1ldGFkYXRhIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInNjb3BlIjogb2JqLmdldCgic2NvcGUiKSwKICAgICAgICAgICAgImRlcHJlY2F0ZWQiOiBvYmouZ2V0KCJkZXByZWNhdGVkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/asset_metadata_dto.py b/fireblocks/models/asset_metadata_dto.py index 212b41c6..68cfa5ed 100644 --- a/fireblocks/models/asset_metadata_dto.py +++ b/fireblocks/models/asset_metadata_dto.py @@ -1,112 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class AssetMetadataDto(BaseModel): - """ - AssetMetadataDto - """ # noqa: E501 - asset_id: StrictStr = Field(description="The Fireblocks` asset id", alias="assetId") - name: Optional[StrictStr] = Field(default=None, description="The name of the token") - symbol: Optional[StrictStr] = Field(default=None, description="The symbol of the token") - network_protocol: Optional[StrictStr] = Field(default=None, description="The network protocol of the token", alias="networkProtocol") - total_supply: Optional[StrictStr] = Field(default=None, description="The total supply of the token", alias="totalSupply") - holders_count: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The number of holders of the token", alias="holdersCount") - type: Optional[StrictStr] = Field(default=None, description="The type of the token") - contract_address: Optional[StrictStr] = Field(default=None, description="The address of the token contract", alias="contractAddress") - issuer_address: Optional[StrictStr] = Field(default=None, description="In case of Stellar or Ripple, the address of the issuer of the token", alias="issuerAddress") - testnet: Optional[StrictBool] = Field(default=None, description="Is it deployed on testnet or to mainnet") - blockchain: Optional[StrictStr] = Field(default=None, description="The blockchain native asset id which the token is deployed on") - decimals: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The number of decimals of the token") - vault_account_id: Optional[StrictStr] = Field(default=None, description="The id of the vault account that initiated the request to issue the token. Will be empty if token was issued outside of Fireblocks.", alias="vaultAccountId") - __properties: ClassVar[List[str]] = ["assetId", "name", "symbol", "networkProtocol", "totalSupply", "holdersCount", "type", "contractAddress", "issuerAddress", "testnet", "blockchain", "decimals", "vaultAccountId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetMetadataDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetMetadataDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "assetId": obj.get("assetId"), - "name": obj.get("name"), - "symbol": obj.get("symbol"), - "networkProtocol": obj.get("networkProtocol"), - "totalSupply": obj.get("totalSupply"), - "holdersCount": obj.get("holdersCount"), - "type": obj.get("type"), - "contractAddress": obj.get("contractAddress"), - "issuerAddress": obj.get("issuerAddress"), - "testnet": obj.get("testnet"), - "blockchain": obj.get("blockchain"), - "decimals": obj.get("decimals"), - "vaultAccountId": obj.get("vaultAccountId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQXNzZXRNZXRhZGF0YUR0byhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBc3NldE1ldGFkYXRhRHRvCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhc3NldF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBGaXJlYmxvY2tzYCBhc3NldCBpZCIsIGFsaWFzPSJhc3NldElkIikKICAgIG5hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgbmFtZSBvZiB0aGUgdG9rZW4iKQogICAgc3ltYm9sOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHN5bWJvbCBvZiB0aGUgdG9rZW4iKQogICAgbmV0d29ya19wcm90b2NvbDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBuZXR3b3JrIHByb3RvY29sIG9mIHRoZSB0b2tlbiIsIGFsaWFzPSJuZXR3b3JrUHJvdG9jb2wiKQogICAgdG90YWxfc3VwcGx5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHRvdGFsIHN1cHBseSBvZiB0aGUgdG9rZW4iLCBhbGlhcz0idG90YWxTdXBwbHkiKQogICAgaG9sZGVyc19jb3VudDogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIG51bWJlciBvZiBob2xkZXJzIG9mIHRoZSB0b2tlbiIsIGFsaWFzPSJob2xkZXJzQ291bnQiKQogICAgdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSB0eXBlIG9mIHRoZSB0b2tlbiIpCiAgICBjb250cmFjdF9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGFkZHJlc3Mgb2YgdGhlIHRva2VuIGNvbnRyYWN0IiwgYWxpYXM9ImNvbnRyYWN0QWRkcmVzcyIpCiAgICBpc3N1ZXJfYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkluIGNhc2Ugb2YgU3RlbGxhciBvciBSaXBwbGUsIHRoZSBhZGRyZXNzIG9mIHRoZSBpc3N1ZXIgb2YgdGhlIHRva2VuIiwgYWxpYXM9Imlzc3VlckFkZHJlc3MiKQogICAgdGVzdG5ldDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJcyBpdCBkZXBsb3llZCBvbiB0ZXN0bmV0IG9yIHRvIG1haW5uZXQiKQogICAgYmxvY2tjaGFpbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBibG9ja2NoYWluIG5hdGl2ZSBhc3NldCBpZCB3aGljaCB0aGUgdG9rZW4gaXMgZGVwbG95ZWQgb24iKQogICAgZGVjaW1hbHM6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBudW1iZXIgb2YgZGVjaW1hbHMgb2YgdGhlIHRva2VuIikKICAgIHZhdWx0X2FjY291bnRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgaWQgb2YgdGhlIHZhdWx0IGFjY291bnQgdGhhdCBpbml0aWF0ZWQgdGhlIHJlcXVlc3QgdG8gaXNzdWUgdGhlIHRva2VuLiBXaWxsIGJlIGVtcHR5IGlmIHRva2VuIHdhcyBpc3N1ZWQgb3V0c2lkZSBvZiBGaXJlYmxvY2tzLiIsIGFsaWFzPSJ2YXVsdEFjY291bnRJZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFzc2V0SWQiLCAibmFtZSIsICJzeW1ib2wiLCAibmV0d29ya1Byb3RvY29sIiwgInRvdGFsU3VwcGx5IiwgImhvbGRlcnNDb3VudCIsICJ0eXBlIiwgImNvbnRyYWN0QWRkcmVzcyIsICJpc3N1ZXJBZGRyZXNzIiwgInRlc3RuZXQiLCAiYmxvY2tjaGFpbiIsICJkZWNpbWFscyIsICJ2YXVsdEFjY291bnRJZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRNZXRhZGF0YUR0byBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldE1ldGFkYXRhRHRvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFzc2V0SWQiOiBvYmouZ2V0KCJhc3NldElkIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAic3ltYm9sIjogb2JqLmdldCgic3ltYm9sIiksCiAgICAgICAgICAgICJuZXR3b3JrUHJvdG9jb2wiOiBvYmouZ2V0KCJuZXR3b3JrUHJvdG9jb2wiKSwKICAgICAgICAgICAgInRvdGFsU3VwcGx5Ijogb2JqLmdldCgidG90YWxTdXBwbHkiKSwKICAgICAgICAgICAgImhvbGRlcnNDb3VudCI6IG9iai5nZXQoImhvbGRlcnNDb3VudCIpLAogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImNvbnRyYWN0QWRkcmVzcyI6IG9iai5nZXQoImNvbnRyYWN0QWRkcmVzcyIpLAogICAgICAgICAgICAiaXNzdWVyQWRkcmVzcyI6IG9iai5nZXQoImlzc3VlckFkZHJlc3MiKSwKICAgICAgICAgICAgInRlc3RuZXQiOiBvYmouZ2V0KCJ0ZXN0bmV0IiksCiAgICAgICAgICAgICJibG9ja2NoYWluIjogb2JqLmdldCgiYmxvY2tjaGFpbiIpLAogICAgICAgICAgICAiZGVjaW1hbHMiOiBvYmouZ2V0KCJkZWNpbWFscyIpLAogICAgICAgICAgICAidmF1bHRBY2NvdW50SWQiOiBvYmouZ2V0KCJ2YXVsdEFjY291bnRJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/asset_metadata_request.py b/fireblocks/models/asset_metadata_request.py index dd02d656..2e59310b 100644 --- a/fireblocks/models/asset_metadata_request.py +++ b/fireblocks/models/asset_metadata_request.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.asset_note_request import AssetNoteRequest -from typing import Optional, Set -from typing_extensions import Self - -class AssetMetadataRequest(BaseModel): - """ - AssetMetadataRequest - """ # noqa: E501 - note: Optional[AssetNoteRequest] = None - __properties: ClassVar[List[str]] = ["note"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetMetadataRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of note - if self.note: - _dict['note'] = self.note.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetMetadataRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "note": AssetNoteRequest.from_dict(obj["note"]) if obj.get("note") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X25vdGVfcmVxdWVzdCBpbXBvcnQgQXNzZXROb3RlUmVxdWVzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBc3NldE1ldGFkYXRhUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBc3NldE1ldGFkYXRhUmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgbm90ZTogT3B0aW9uYWxbQXNzZXROb3RlUmVxdWVzdF0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm5vdGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0TWV0YWRhdGFSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2Ygbm90ZQogICAgICAgIGlmIHNlbGYubm90ZToKICAgICAgICAgICAgX2RpY3RbJ25vdGUnXSA9IHNlbGYubm90ZS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0TWV0YWRhdGFSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm5vdGUiOiBBc3NldE5vdGVSZXF1ZXN0LmZyb21fZGljdChvYmpbIm5vdGUiXSkgaWYgb2JqLmdldCgibm90ZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/asset_not_found_error_response.py b/fireblocks/models/asset_not_found_error_response.py index 002acac9..eadf4269 100644 --- a/fireblocks/models/asset_not_found_error_response.py +++ b/fireblocks/models/asset_not_found_error_response.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class AssetNotFoundErrorResponse(BaseModel): - """ - AssetNotFoundErrorResponse - """ # noqa: E501 - message: StrictStr = Field(description="Not found error code") - code: Union[StrictFloat, StrictInt] = Field(description="Error code") - __properties: ClassVar[List[str]] = ["message", "code"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetNotFoundErrorResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetNotFoundErrorResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "code": obj.get("code") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBc3NldE5vdEZvdW5kRXJyb3JSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBc3NldE5vdEZvdW5kRXJyb3JSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgbWVzc2FnZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249Ik5vdCBmb3VuZCBlcnJvciBjb2RlIikKICAgIGNvZGU6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoZGVzY3JpcHRpb249IkVycm9yIGNvZGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJtZXNzYWdlIiwgImNvZGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0Tm90Rm91bmRFcnJvclJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0Tm90Rm91bmRFcnJvclJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm1lc3NhZ2UiOiBvYmouZ2V0KCJtZXNzYWdlIiksCiAgICAgICAgICAgICJjb2RlIjogb2JqLmdldCgiY29kZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/asset_note.py b/fireblocks/models/asset_note.py index 4f1828f1..d8643dbb 100644 --- a/fireblocks/models/asset_note.py +++ b/fireblocks/models/asset_note.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class AssetNote(BaseModel): - """ - AssetNote - """ # noqa: E501 - text: StrictStr = Field(description="Note content") - user_id: StrictStr = Field(description="Who updated the note (uuid)", alias="userId") - user_name: StrictStr = Field(description="User name", alias="userName") - updated_at: datetime = Field(description="ISO Timestamp when last updated", alias="updatedAt") - __properties: ClassVar[List[str]] = ["text", "userId", "userName", "updatedAt"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetNote from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetNote from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "text": obj.get("text"), - "userId": obj.get("userId"), - "userName": obj.get("userName"), - "updatedAt": obj.get("updatedAt") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEFzc2V0Tm90ZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBc3NldE5vdGUKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHRleHQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJOb3RlIGNvbnRlbnQiKQogICAgdXNlcl9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IldobyB1cGRhdGVkIHRoZSBub3RlICh1dWlkKSIsIGFsaWFzPSJ1c2VySWQiKQogICAgdXNlcl9uYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVXNlciBuYW1lIiwgYWxpYXM9InVzZXJOYW1lIikKICAgIHVwZGF0ZWRfYXQ6IGRhdGV0aW1lID0gRmllbGQoZGVzY3JpcHRpb249IklTTyBUaW1lc3RhbXAgd2hlbiBsYXN0IHVwZGF0ZWQiLCBhbGlhcz0idXBkYXRlZEF0IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidGV4dCIsICJ1c2VySWQiLCAidXNlck5hbWUiLCAidXBkYXRlZEF0Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldE5vdGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXROb3RlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInRleHQiOiBvYmouZ2V0KCJ0ZXh0IiksCiAgICAgICAgICAgICJ1c2VySWQiOiBvYmouZ2V0KCJ1c2VySWQiKSwKICAgICAgICAgICAgInVzZXJOYW1lIjogb2JqLmdldCgidXNlck5hbWUiKSwKICAgICAgICAgICAgInVwZGF0ZWRBdCI6IG9iai5nZXQoInVwZGF0ZWRBdCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/asset_note_request.py b/fireblocks/models/asset_note_request.py index 4f4bffe5..eb77dba1 100644 --- a/fireblocks/models/asset_note_request.py +++ b/fireblocks/models/asset_note_request.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class AssetNoteRequest(BaseModel): - """ - AssetNoteRequest - """ # noqa: E501 - text: Optional[StrictStr] = Field(default=None, description="Asset user note") - __properties: ClassVar[List[str]] = ["text"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetNoteRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetNoteRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "text": obj.get("text") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBc3NldE5vdGVSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFzc2V0Tm90ZVJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHRleHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBc3NldCB1c2VyIG5vdGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0ZXh0Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldE5vdGVSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0Tm90ZVJlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidGV4dCI6IG9iai5nZXQoInRleHQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/asset_onchain.py b/fireblocks/models/asset_onchain.py index 81d579a7..4706858d 100644 --- a/fireblocks/models/asset_onchain.py +++ b/fireblocks/models/asset_onchain.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class AssetOnchain(BaseModel): - """ - AssetOnchain - """ # noqa: E501 - symbol: StrictStr = Field(description="The asset symbol") - name: StrictStr = Field(description="The asset name") - address: Optional[StrictStr] = Field(default=None, description="The asset address") - decimals: Union[StrictFloat, StrictInt] = Field(description="Number of decimals") - standard: Optional[StrictStr] = Field(default=None, description="The asset standard") - __properties: ClassVar[List[str]] = ["symbol", "name", "address", "decimals", "standard"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetOnchain from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetOnchain from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "symbol": obj.get("symbol"), - "name": obj.get("name"), - "address": obj.get("address"), - "decimals": obj.get("decimals"), - "standard": obj.get("standard") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQXNzZXRPbmNoYWluKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFzc2V0T25jaGFpbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgc3ltYm9sOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGFzc2V0IHN5bWJvbCIpCiAgICBuYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGFzc2V0IG5hbWUiKQogICAgYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBhc3NldCBhZGRyZXNzIikKICAgIGRlY2ltYWxzOiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJOdW1iZXIgb2YgZGVjaW1hbHMiKQogICAgc3RhbmRhcmQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgYXNzZXQgc3RhbmRhcmQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzeW1ib2wiLCAibmFtZSIsICJhZGRyZXNzIiwgImRlY2ltYWxzIiwgInN0YW5kYXJkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldE9uY2hhaW4gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRPbmNoYWluIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInN5bWJvbCI6IG9iai5nZXQoInN5bWJvbCIpLAogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKSwKICAgICAgICAgICAgImFkZHJlc3MiOiBvYmouZ2V0KCJhZGRyZXNzIiksCiAgICAgICAgICAgICJkZWNpbWFscyI6IG9iai5nZXQoImRlY2ltYWxzIiksCiAgICAgICAgICAgICJzdGFuZGFyZCI6IG9iai5nZXQoInN0YW5kYXJkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/asset_price_forbidden_error_response.py b/fireblocks/models/asset_price_forbidden_error_response.py index 355f2be9..0f040ec7 100644 --- a/fireblocks/models/asset_price_forbidden_error_response.py +++ b/fireblocks/models/asset_price_forbidden_error_response.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class AssetPriceForbiddenErrorResponse(BaseModel): - """ - AssetPriceForbiddenErrorResponse - """ # noqa: E501 - message: StrictStr = Field(description="Forbidden error message") - code: Union[StrictFloat, StrictInt] = Field(description="Error code") - __properties: ClassVar[List[str]] = ["message", "code"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetPriceForbiddenErrorResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetPriceForbiddenErrorResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "code": obj.get("code") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBc3NldFByaWNlRm9yYmlkZGVuRXJyb3JSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBc3NldFByaWNlRm9yYmlkZGVuRXJyb3JSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgbWVzc2FnZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkZvcmJpZGRlbiBlcnJvciBtZXNzYWdlIikKICAgIGNvZGU6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoZGVzY3JpcHRpb249IkVycm9yIGNvZGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJtZXNzYWdlIiwgImNvZGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0UHJpY2VGb3JiaWRkZW5FcnJvclJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0UHJpY2VGb3JiaWRkZW5FcnJvclJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm1lc3NhZ2UiOiBvYmouZ2V0KCJtZXNzYWdlIiksCiAgICAgICAgICAgICJjb2RlIjogb2JqLmdldCgiY29kZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/asset_price_not_found_error_response.py b/fireblocks/models/asset_price_not_found_error_response.py index 04035bb2..3c80080d 100644 --- a/fireblocks/models/asset_price_not_found_error_response.py +++ b/fireblocks/models/asset_price_not_found_error_response.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class AssetPriceNotFoundErrorResponse(BaseModel): - """ - AssetPriceNotFoundErrorResponse - """ # noqa: E501 - message: StrictStr = Field(description="Not found error message") - code: Union[StrictFloat, StrictInt] = Field(description="Error code") - __properties: ClassVar[List[str]] = ["message", "code"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetPriceNotFoundErrorResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetPriceNotFoundErrorResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "code": obj.get("code") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBc3NldFByaWNlTm90Rm91bmRFcnJvclJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFzc2V0UHJpY2VOb3RGb3VuZEVycm9yUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG1lc3NhZ2U6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJOb3QgZm91bmQgZXJyb3IgbWVzc2FnZSIpCiAgICBjb2RlOiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJFcnJvciBjb2RlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibWVzc2FnZSIsICJjb2RlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldFByaWNlTm90Rm91bmRFcnJvclJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0UHJpY2VOb3RGb3VuZEVycm9yUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibWVzc2FnZSI6IG9iai5nZXQoIm1lc3NhZ2UiKSwKICAgICAgICAgICAgImNvZGUiOiBvYmouZ2V0KCJjb2RlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/asset_price_response.py b/fireblocks/models/asset_price_response.py index 965117af..67bd55f5 100644 --- a/fireblocks/models/asset_price_response.py +++ b/fireblocks/models/asset_price_response.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class AssetPriceResponse(BaseModel): - """ - AssetPriceResponse - """ # noqa: E501 - legacy_id: StrictStr = Field(description="The ID of the asset", alias="legacyId") - last_update_at: Union[StrictFloat, StrictInt] = Field(description="Time of last price update", alias="lastUpdateAt") - currency: StrictStr = Field(description="Currency (according to ISO 4217 currency codes)") - price: Union[StrictFloat, StrictInt] = Field(description="Price in currency") - source: StrictStr = Field(description="Source of the price data") - __properties: ClassVar[List[str]] = ["legacyId", "lastUpdateAt", "currency", "price", "source"] - - @field_validator('source') - def source_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['PUBLIC', 'PRIVATE']): - raise ValueError("must be one of enum values ('PUBLIC', 'PRIVATE')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetPriceResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetPriceResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "legacyId": obj.get("legacyId"), - "lastUpdateAt": obj.get("lastUpdateAt"), - "currency": obj.get("currency"), - "price": obj.get("price"), - "source": obj.get("source") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIFVuaW9uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEFzc2V0UHJpY2VSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBc3NldFByaWNlUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGxlZ2FjeV9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYXNzZXQiLCBhbGlhcz0ibGVnYWN5SWQiKQogICAgbGFzdF91cGRhdGVfYXQ6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoZGVzY3JpcHRpb249IlRpbWUgb2YgbGFzdCBwcmljZSB1cGRhdGUiLCBhbGlhcz0ibGFzdFVwZGF0ZUF0IikKICAgIGN1cnJlbmN5OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQ3VycmVuY3kgKGFjY29yZGluZyB0byBJU08gNDIxNyBjdXJyZW5jeSBjb2RlcykiKQogICAgcHJpY2U6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoZGVzY3JpcHRpb249IlByaWNlIGluIGN1cnJlbmN5IikKICAgIHNvdXJjZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlNvdXJjZSBvZiB0aGUgcHJpY2UgZGF0YSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImxlZ2FjeUlkIiwgImxhc3RVcGRhdGVBdCIsICJjdXJyZW5jeSIsICJwcmljZSIsICJzb3VyY2UiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3NvdXJjZScpCiAgICBkZWYgc291cmNlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ1BVQkxJQycsICdQUklWQVRFJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ1BVQkxJQycsICdQUklWQVRFJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0UHJpY2VSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBc3NldFByaWNlUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibGVnYWN5SWQiOiBvYmouZ2V0KCJsZWdhY3lJZCIpLAogICAgICAgICAgICAibGFzdFVwZGF0ZUF0Ijogb2JqLmdldCgibGFzdFVwZGF0ZUF0IiksCiAgICAgICAgICAgICJjdXJyZW5jeSI6IG9iai5nZXQoImN1cnJlbmN5IiksCiAgICAgICAgICAgICJwcmljZSI6IG9iai5nZXQoInByaWNlIiksCiAgICAgICAgICAgICJzb3VyY2UiOiBvYmouZ2V0KCJzb3VyY2UiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/asset_response.py b/fireblocks/models/asset_response.py index aa8e20bb..ec9bb302 100644 --- a/fireblocks/models/asset_response.py +++ b/fireblocks/models/asset_response.py @@ -1,109 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from fireblocks.models.asset_metadata import AssetMetadata -from fireblocks.models.asset_onchain import AssetOnchain -from typing import Optional, Set -from typing_extensions import Self - -class AssetResponse(BaseModel): - """ - AssetResponse - """ # noqa: E501 - legacy_id: StrictStr = Field(alias="legacyId") - asset_class: StrictStr = Field(alias="assetClass") - onchain: AssetOnchain - metadata: AssetMetadata - __properties: ClassVar[List[str]] = ["legacyId", "assetClass", "onchain", "metadata"] - - @field_validator('asset_class') - def asset_class_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['NATIVE', 'FT', 'NFT', 'SFT']): - raise ValueError("must be one of enum values ('NATIVE', 'FT', 'NFT', 'SFT')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of onchain - if self.onchain: - _dict['onchain'] = self.onchain.to_dict() - # override the default output from pydantic by calling `to_dict()` of metadata - if self.metadata: - _dict['metadata'] = self.metadata.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "legacyId": obj.get("legacyId"), - "assetClass": obj.get("assetClass"), - "onchain": AssetOnchain.from_dict(obj["onchain"]) if obj.get("onchain") is not None else None, - "metadata": AssetMetadata.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9tZXRhZGF0YSBpbXBvcnQgQXNzZXRNZXRhZGF0YQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X29uY2hhaW4gaW1wb3J0IEFzc2V0T25jaGFpbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBc3NldFJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFzc2V0UmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGxlZ2FjeV9pZDogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9ImxlZ2FjeUlkIikKICAgIGFzc2V0X2NsYXNzOiBTdHJpY3RTdHIgPSBGaWVsZChhbGlhcz0iYXNzZXRDbGFzcyIpCiAgICBvbmNoYWluOiBBc3NldE9uY2hhaW4KICAgIG1ldGFkYXRhOiBBc3NldE1ldGFkYXRhCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImxlZ2FjeUlkIiwgImFzc2V0Q2xhc3MiLCAib25jaGFpbiIsICJtZXRhZGF0YSJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYXNzZXRfY2xhc3MnKQogICAgZGVmIGFzc2V0X2NsYXNzX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ05BVElWRScsICdGVCcsICdORlQnLCAnU0ZUJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ05BVElWRScsICdGVCcsICdORlQnLCAnU0ZUJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBvbmNoYWluCiAgICAgICAgaWYgc2VsZi5vbmNoYWluOgogICAgICAgICAgICBfZGljdFsnb25jaGFpbiddID0gc2VsZi5vbmNoYWluLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBtZXRhZGF0YQogICAgICAgIGlmIHNlbGYubWV0YWRhdGE6CiAgICAgICAgICAgIF9kaWN0WydtZXRhZGF0YSddID0gc2VsZi5tZXRhZGF0YS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0UmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibGVnYWN5SWQiOiBvYmouZ2V0KCJsZWdhY3lJZCIpLAogICAgICAgICAgICAiYXNzZXRDbGFzcyI6IG9iai5nZXQoImFzc2V0Q2xhc3MiKSwKICAgICAgICAgICAgIm9uY2hhaW4iOiBBc3NldE9uY2hhaW4uZnJvbV9kaWN0KG9ialsib25jaGFpbiJdKSBpZiBvYmouZ2V0KCJvbmNoYWluIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibWV0YWRhdGEiOiBBc3NldE1ldGFkYXRhLmZyb21fZGljdChvYmpbIm1ldGFkYXRhIl0pIGlmIG9iai5nZXQoIm1ldGFkYXRhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/asset_scope.py b/fireblocks/models/asset_scope.py index 7cd13fad..9fecd29e 100644 --- a/fireblocks/models/asset_scope.py +++ b/fireblocks/models/asset_scope.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class AssetScope(str, Enum): - """ - The scope of the asset - """ - - """ - allowed enum values - """ - GLOBAL = 'GLOBAL' - LOCAL = 'LOCAL' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of AssetScope from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBBc3NldFNjb3BlKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIFRoZSBzY29wZSBvZiB0aGUgYXNzZXQKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBHTE9CQUwgPSAnR0xPQkFMJwogICAgTE9DQUwgPSAnTE9DQUwnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXNzZXRTY29wZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/asset_type_response.py b/fireblocks/models/asset_type_response.py index 91965d22..33bd3235 100644 --- a/fireblocks/models/asset_type_response.py +++ b/fireblocks/models/asset_type_response.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class AssetTypeResponse(BaseModel): - """ - AssetTypeResponse - """ # noqa: E501 - id: StrictStr - name: StrictStr - type: StrictStr - contract_address: Optional[StrictStr] = Field(default=None, alias="contractAddress") - native_asset: Optional[StrictStr] = Field(default=None, alias="nativeAsset") - decimals: Optional[Union[StrictFloat, StrictInt]] = None - __properties: ClassVar[List[str]] = ["id", "name", "type", "contractAddress", "nativeAsset", "decimals"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetTypeResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetTypeResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name"), - "type": obj.get("type"), - "contractAddress": obj.get("contractAddress"), - "nativeAsset": obj.get("nativeAsset"), - "decimals": obj.get("decimals") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQXNzZXRUeXBlUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgQXNzZXRUeXBlUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBTdHJpY3RTdHIKICAgIG5hbWU6IFN0cmljdFN0cgogICAgdHlwZTogU3RyaWN0U3RyCiAgICBjb250cmFjdF9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iY29udHJhY3RBZGRyZXNzIikKICAgIG5hdGl2ZV9hc3NldDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im5hdGl2ZUFzc2V0IikKICAgIGRlY2ltYWxzOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgIm5hbWUiLCAidHlwZSIsICJjb250cmFjdEFkZHJlc3MiLCAibmF0aXZlQXNzZXQiLCAiZGVjaW1hbHMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0VHlwZVJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0VHlwZVJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAiY29udHJhY3RBZGRyZXNzIjogb2JqLmdldCgiY29udHJhY3RBZGRyZXNzIiksCiAgICAgICAgICAgICJuYXRpdmVBc3NldCI6IG9iai5nZXQoIm5hdGl2ZUFzc2V0IiksCiAgICAgICAgICAgICJkZWNpbWFscyI6IG9iai5nZXQoImRlY2ltYWxzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/asset_types_config_inner.py b/fireblocks/models/asset_types_config_inner.py index 244053bd..167c5148 100644 --- a/fireblocks/models/asset_types_config_inner.py +++ b/fireblocks/models/asset_types_config_inner.py @@ -1,144 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -ASSETTYPESCONFIGINNER_ONE_OF_SCHEMAS = ["str"] - -class AssetTypesConfigInner(BaseModel): - """ - AssetTypesConfigInner - """ - # data type: str - oneof_schema_1_validator: Optional[StrictStr] = None - # data type: str - oneof_schema_2_validator: Optional[StrictStr] = None - actual_instance: Optional[Union[str]] = None - one_of_schemas: Set[str] = { "str" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = AssetTypesConfigInner.model_construct() - error_messages = [] - match = 0 - # validate data type: str - try: - instance.oneof_schema_1_validator = v - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # validate data type: str - try: - instance.oneof_schema_2_validator = v - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in AssetTypesConfigInner with oneOf schemas: str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in AssetTypesConfigInner with oneOf schemas: str. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into str - try: - # validation - instance.oneof_schema_1_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.oneof_schema_1_validator - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into str - try: - # validation - instance.oneof_schema_2_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.oneof_schema_2_validator - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into AssetTypesConfigInner with oneOf schemas: str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into AssetTypesConfigInner with oneOf schemas: str. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], str]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gcHlkYW50aWMgaW1wb3J0IFN0cmljdFN0ciwgRmllbGQKZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uLCBMaXN0LCBTZXQsIE9wdGlvbmFsLCBEaWN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IExpdGVyYWwsIFNlbGYKCkFTU0VUVFlQRVNDT05GSUdJTk5FUl9PTkVfT0ZfU0NIRU1BUyA9IFsic3RyIl0KCmNsYXNzIEFzc2V0VHlwZXNDb25maWdJbm5lcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBc3NldFR5cGVzQ29uZmlnSW5uZXIKICAgICIiIgogICAgIyBkYXRhIHR5cGU6IHN0cgogICAgb25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IHN0cgogICAgb25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgYWN0dWFsX2luc3RhbmNlOiBPcHRpb25hbFtVbmlvbltzdHJdXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgInN0ciIgfQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKSAtPiBOb25lOgogICAgICAgIGlmIGFyZ3M6CiAgICAgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIG9ubHkgMSBpcyBhbGxvd2VkIHRvIHNldCBgYWN0dWFsX2luc3RhbmNlYCIpCiAgICAgICAgICAgIGlmIGt3YXJnczoKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwga2V5d29yZCBhcmd1bWVudHMgY2Fubm90IGJlIHVzZWQuIikKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhhY3R1YWxfaW5zdGFuY2U9YXJnc1swXSkKICAgICAgICBlbHNlOgogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FjdHVhbF9pbnN0YW5jZScpCiAgICBkZWYgYWN0dWFsX2luc3RhbmNlX211c3RfdmFsaWRhdGVfb25lb2YoY2xzLCB2KToKICAgICAgICBpbnN0YW5jZSA9IEFzc2V0VHlwZXNDb25maWdJbm5lci5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogc3RyCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5vbmVvZl9zY2hlbWFfMV92YWxpZGF0b3IgPSB2CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogc3RyCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5vbmVvZl9zY2hlbWFfMl92YWxpZGF0b3IgPSB2CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gQXNzZXRUeXBlc0NvbmZpZ0lubmVyIHdpdGggb25lT2Ygc2NoZW1hczogc3RyLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIEFzc2V0VHlwZXNDb25maWdJbm5lciB3aXRoIG9uZU9mIHNjaGVtYXM6IHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIHYKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IFVuaW9uW3N0ciwgRGljdFtzdHIsIEFueV1dKSAtPiBTZWxmOgogICAgICAgIHJldHVybiBjbHMuZnJvbV9qc29uKGpzb24uZHVtcHMob2JqKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIlJldHVybnMgdGhlIG9iamVjdCByZXByZXNlbnRlZCBieSB0aGUganNvbiBzdHJpbmciIiIKICAgICAgICBpbnN0YW5jZSA9IGNscy5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gc3RyCiAgICAgICAgdHJ5OgogICAgICAgICAgICAjIHZhbGlkYXRpb24KICAgICAgICAgICAgaW5zdGFuY2Uub25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yID0ganNvbi5sb2Fkcyhqc29uX3N0cikKICAgICAgICAgICAgIyBhc3NpZ24gdmFsdWUgdG8gYWN0dWFsX2luc3RhbmNlCiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IGluc3RhbmNlLm9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvcgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gc3RyCiAgICAgICAgdHJ5OgogICAgICAgICAgICAjIHZhbGlkYXRpb24KICAgICAgICAgICAgaW5zdGFuY2Uub25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yID0ganNvbi5sb2Fkcyhqc29uX3N0cikKICAgICAgICAgICAgIyBhc3NpZ24gdmFsdWUgdG8gYWN0dWFsX2luc3RhbmNlCiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IGluc3RhbmNlLm9uZW9mX3NjaGVtYV8yX3ZhbGlkYXRvcgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCgogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBBc3NldFR5cGVzQ29uZmlnSW5uZXIgd2l0aCBvbmVPZiBzY2hlbWFzOiBzdHIuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gQXNzZXRUeXBlc0NvbmZpZ0lubmVyIHdpdGggb25lT2Ygc2NoZW1hczogc3RyLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuICJudWxsIgoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fanNvbiIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24oKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYuYWN0dWFsX2luc3RhbmNlKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IE9wdGlvbmFsW1VuaW9uW0RpY3Rbc3RyLCBBbnldLCBzdHJdXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgcHJpbWl0aXZlIHR5cGUKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/asset_wallet.py b/fireblocks/models/asset_wallet.py index b7bdb488..90e83127 100644 --- a/fireblocks/models/asset_wallet.py +++ b/fireblocks/models/asset_wallet.py @@ -1,108 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class AssetWallet(BaseModel): - """ - AssetWallet - """ # noqa: E501 - vault_id: Optional[StrictStr] = Field(default=None, description="ID of the vault account. You can [get the vault account by this ID](https://developers.fireblocks.com/reference/get_vault-accounts-vaultaccountid) to retrieve vault properties such as its name, auto fueling, hidden on UI or customer reference ID.", alias="vaultId") - asset_id: Optional[StrictStr] = Field(default=None, description="ID of the asset. You can get more information about this asset by using the [supported assets API](https://developers.fireblocks.com/reference/get_supported-assets)", alias="assetId") - available: Optional[StrictStr] = Field(default=None, description="Available balance, available to use in a transaction.") - total: Optional[StrictStr] = Field(default=None, description="Total balance at the asset wallet, as seen at the blockchain explorers. This includes balance available, and any kind of unavailable balance such as locked, frozen, or others.") - pending: Optional[StrictStr] = Field(default=None, description="Pending balance.") - staked: Optional[StrictStr] = Field(default=None, description="Staked balance.") - frozen: Optional[StrictStr] = Field(default=None, description="Funds frozen due to the anti-money laundering policy at this workspace.") - locked_amount: Optional[StrictStr] = Field(default=None, description="Locked balance.", alias="lockedAmount") - block_height: Optional[StrictStr] = Field(default=None, description="The height (number) of the block of the balance. Can by empty.", alias="blockHeight") - block_hash: Optional[StrictStr] = Field(default=None, description="The hash of the block of the balance. Can by empty.", alias="blockHash") - creation_timestamp: Optional[StrictStr] = Field(default=None, description="Unix timestamp of the time the asset wallet was created.", alias="creationTimestamp") - __properties: ClassVar[List[str]] = ["vaultId", "assetId", "available", "total", "pending", "staked", "frozen", "lockedAmount", "blockHeight", "blockHash", "creationTimestamp"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AssetWallet from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AssetWallet from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "vaultId": obj.get("vaultId"), - "assetId": obj.get("assetId"), - "available": obj.get("available"), - "total": obj.get("total"), - "pending": obj.get("pending"), - "staked": obj.get("staked"), - "frozen": obj.get("frozen"), - "lockedAmount": obj.get("lockedAmount"), - "blockHeight": obj.get("blockHeight"), - "blockHash": obj.get("blockHash"), - "creationTimestamp": obj.get("creationTimestamp") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBBc3NldFdhbGxldChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBc3NldFdhbGxldAogICAgIiIiICMgbm9xYTogRTUwMQogICAgdmF1bHRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJRCBvZiB0aGUgdmF1bHQgYWNjb3VudC4gWW91IGNhbiBbZ2V0IHRoZSB2YXVsdCBhY2NvdW50IGJ5IHRoaXMgSURdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9yZWZlcmVuY2UvZ2V0X3ZhdWx0LWFjY291bnRzLXZhdWx0YWNjb3VudGlkKSB0byByZXRyaWV2ZSB2YXVsdCBwcm9wZXJ0aWVzIHN1Y2ggYXMgaXRzIG5hbWUsIGF1dG8gZnVlbGluZywgaGlkZGVuIG9uIFVJIG9yIGN1c3RvbWVyIHJlZmVyZW5jZSBJRC4iLCBhbGlhcz0idmF1bHRJZCIpCiAgICBhc3NldF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IklEIG9mIHRoZSBhc3NldC4gWW91IGNhbiBnZXQgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGFzc2V0IGJ5IHVzaW5nIHRoZSBbc3VwcG9ydGVkIGFzc2V0cyBBUEldKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9yZWZlcmVuY2UvZ2V0X3N1cHBvcnRlZC1hc3NldHMpIiwgYWxpYXM9ImFzc2V0SWQiKQogICAgYXZhaWxhYmxlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQXZhaWxhYmxlIGJhbGFuY2UsIGF2YWlsYWJsZSB0byB1c2UgaW4gYSB0cmFuc2FjdGlvbi4iKQogICAgdG90YWw6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUb3RhbCBiYWxhbmNlIGF0IHRoZSBhc3NldCB3YWxsZXQsIGFzIHNlZW4gYXQgdGhlIGJsb2NrY2hhaW4gZXhwbG9yZXJzLiBUaGlzIGluY2x1ZGVzIGJhbGFuY2UgYXZhaWxhYmxlLCBhbmQgYW55IGtpbmQgb2YgdW5hdmFpbGFibGUgYmFsYW5jZSBzdWNoIGFzIGxvY2tlZCwgZnJvemVuLCBvciBvdGhlcnMuIikKICAgIHBlbmRpbmc6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJQZW5kaW5nIGJhbGFuY2UuIikKICAgIHN0YWtlZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlN0YWtlZCBiYWxhbmNlLiIpCiAgICBmcm96ZW46IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJGdW5kcyBmcm96ZW4gZHVlIHRvIHRoZSBhbnRpLW1vbmV5IGxhdW5kZXJpbmcgcG9saWN5IGF0IHRoaXMgd29ya3NwYWNlLiIpCiAgICBsb2NrZWRfYW1vdW50OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTG9ja2VkIGJhbGFuY2UuIiwgYWxpYXM9ImxvY2tlZEFtb3VudCIpCiAgICBibG9ja19oZWlnaHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgaGVpZ2h0IChudW1iZXIpIG9mIHRoZSBibG9jayBvZiB0aGUgYmFsYW5jZS4gQ2FuIGJ5IGVtcHR5LiIsIGFsaWFzPSJibG9ja0hlaWdodCIpCiAgICBibG9ja19oYXNoOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGhhc2ggb2YgdGhlIGJsb2NrIG9mIHRoZSBiYWxhbmNlLiBDYW4gYnkgZW1wdHkuIiwgYWxpYXM9ImJsb2NrSGFzaCIpCiAgICBjcmVhdGlvbl90aW1lc3RhbXA6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJVbml4IHRpbWVzdGFtcCBvZiB0aGUgdGltZSB0aGUgYXNzZXQgd2FsbGV0IHdhcyBjcmVhdGVkLiIsIGFsaWFzPSJjcmVhdGlvblRpbWVzdGFtcCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInZhdWx0SWQiLCAiYXNzZXRJZCIsICJhdmFpbGFibGUiLCAidG90YWwiLCAicGVuZGluZyIsICJzdGFrZWQiLCAiZnJvemVuIiwgImxvY2tlZEFtb3VudCIsICJibG9ja0hlaWdodCIsICJibG9ja0hhc2giLCAiY3JlYXRpb25UaW1lc3RhbXAiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0V2FsbGV0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEFzc2V0V2FsbGV0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInZhdWx0SWQiOiBvYmouZ2V0KCJ2YXVsdElkIiksCiAgICAgICAgICAgICJhc3NldElkIjogb2JqLmdldCgiYXNzZXRJZCIpLAogICAgICAgICAgICAiYXZhaWxhYmxlIjogb2JqLmdldCgiYXZhaWxhYmxlIiksCiAgICAgICAgICAgICJ0b3RhbCI6IG9iai5nZXQoInRvdGFsIiksCiAgICAgICAgICAgICJwZW5kaW5nIjogb2JqLmdldCgicGVuZGluZyIpLAogICAgICAgICAgICAic3Rha2VkIjogb2JqLmdldCgic3Rha2VkIiksCiAgICAgICAgICAgICJmcm96ZW4iOiBvYmouZ2V0KCJmcm96ZW4iKSwKICAgICAgICAgICAgImxvY2tlZEFtb3VudCI6IG9iai5nZXQoImxvY2tlZEFtb3VudCIpLAogICAgICAgICAgICAiYmxvY2tIZWlnaHQiOiBvYmouZ2V0KCJibG9ja0hlaWdodCIpLAogICAgICAgICAgICAiYmxvY2tIYXNoIjogb2JqLmdldCgiYmxvY2tIYXNoIiksCiAgICAgICAgICAgICJjcmVhdGlvblRpbWVzdGFtcCI6IG9iai5nZXQoImNyZWF0aW9uVGltZXN0YW1wIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/audit_log_data.py b/fireblocks/models/audit_log_data.py index 8a206ea1..8930a7c8 100644 --- a/fireblocks/models/audit_log_data.py +++ b/fireblocks/models/audit_log_data.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class AuditLogData(BaseModel): - """ - AuditLogData - """ # noqa: E501 - id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the audit log") - timestamp: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The timestamp of the audit log") - created_at: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The timestamp of the audit log creation", alias="createdAt") - user: Optional[StrictStr] = Field(default=None, description="The user who performed the action") - subject: Optional[StrictStr] = Field(default=None, description="The subject of the action") - event: Optional[StrictStr] = Field(default=None, description="The event that was performed") - tenant_id: Optional[StrictStr] = Field(default=None, description="The tenant ID of the audit log", alias="tenantId") - user_id: Optional[StrictStr] = Field(default=None, description="The user ID of the audit log", alias="userId") - __properties: ClassVar[List[str]] = ["id", "timestamp", "createdAt", "user", "subject", "event", "tenantId", "userId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AuditLogData from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AuditLogData from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "timestamp": obj.get("timestamp"), - "createdAt": obj.get("createdAt"), - "user": obj.get("user"), - "subject": obj.get("subject"), - "event": obj.get("event"), - "tenantId": obj.get("tenantId"), - "userId": obj.get("userId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQXVkaXRMb2dEYXRhKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEF1ZGl0TG9nRGF0YQogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGF1ZGl0IGxvZyIpCiAgICB0aW1lc3RhbXA6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSB0aW1lc3RhbXAgb2YgdGhlIGF1ZGl0IGxvZyIpCiAgICBjcmVhdGVkX2F0OiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgdGltZXN0YW1wIG9mIHRoZSBhdWRpdCBsb2cgY3JlYXRpb24iLCBhbGlhcz0iY3JlYXRlZEF0IikKICAgIHVzZXI6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgdXNlciB3aG8gcGVyZm9ybWVkIHRoZSBhY3Rpb24iKQogICAgc3ViamVjdDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBzdWJqZWN0IG9mIHRoZSBhY3Rpb24iKQogICAgZXZlbnQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgZXZlbnQgdGhhdCB3YXMgcGVyZm9ybWVkIikKICAgIHRlbmFudF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSB0ZW5hbnQgSUQgb2YgdGhlIGF1ZGl0IGxvZyIsIGFsaWFzPSJ0ZW5hbnRJZCIpCiAgICB1c2VyX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHVzZXIgSUQgb2YgdGhlIGF1ZGl0IGxvZyIsIGFsaWFzPSJ1c2VySWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJ0aW1lc3RhbXAiLCAiY3JlYXRlZEF0IiwgInVzZXIiLCAic3ViamVjdCIsICJldmVudCIsICJ0ZW5hbnRJZCIsICJ1c2VySWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEF1ZGl0TG9nRGF0YSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBBdWRpdExvZ0RhdGEgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAidGltZXN0YW1wIjogb2JqLmdldCgidGltZXN0YW1wIiksCiAgICAgICAgICAgICJjcmVhdGVkQXQiOiBvYmouZ2V0KCJjcmVhdGVkQXQiKSwKICAgICAgICAgICAgInVzZXIiOiBvYmouZ2V0KCJ1c2VyIiksCiAgICAgICAgICAgICJzdWJqZWN0Ijogb2JqLmdldCgic3ViamVjdCIpLAogICAgICAgICAgICAiZXZlbnQiOiBvYmouZ2V0KCJldmVudCIpLAogICAgICAgICAgICAidGVuYW50SWQiOiBvYmouZ2V0KCJ0ZW5hbnRJZCIpLAogICAgICAgICAgICAidXNlcklkIjogb2JqLmdldCgidXNlcklkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/auditor_data.py b/fireblocks/models/auditor_data.py index 6808687c..47ee0413 100644 --- a/fireblocks/models/auditor_data.py +++ b/fireblocks/models/auditor_data.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class AuditorData(BaseModel): - """ - AuditorData - """ # noqa: E501 - name: StrictStr - image_url: StrictStr = Field(alias="imageURL") - link: StrictStr - __properties: ClassVar[List[str]] = ["name", "imageURL", "link"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AuditorData from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AuditorData from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name"), - "imageURL": obj.get("imageURL"), - "link": obj.get("link") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEF1ZGl0b3JEYXRhKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEF1ZGl0b3JEYXRhCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBuYW1lOiBTdHJpY3RTdHIKICAgIGltYWdlX3VybDogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9ImltYWdlVVJMIikKICAgIGxpbms6IFN0cmljdFN0cgogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJuYW1lIiwgImltYWdlVVJMIiwgImxpbmsiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEF1ZGl0b3JEYXRhIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEF1ZGl0b3JEYXRhIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJpbWFnZVVSTCI6IG9iai5nZXQoImltYWdlVVJMIiksCiAgICAgICAgICAgICJsaW5rIjogb2JqLmdldCgibGluayIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/authorization_groups.py b/fireblocks/models/authorization_groups.py index 5c0a1224..daa640ea 100644 --- a/fireblocks/models/authorization_groups.py +++ b/fireblocks/models/authorization_groups.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class AuthorizationGroups(BaseModel): - """ - AuthorizationGroups - """ # noqa: E501 - th: Optional[Union[StrictFloat, StrictInt]] = None - users: Optional[Dict[str, StrictStr]] = None - __properties: ClassVar[List[str]] = ["th", "users"] - - @field_validator('users') - def users_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - for i in value.values(): - if i not in set(['PENDING_AUTHORIZATION', 'APPROVED', 'REJECTED', 'NA']): - raise ValueError("dict values must be one of enum values ('PENDING_AUTHORIZATION', 'APPROVED', 'REJECTED', 'NA')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AuthorizationGroups from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AuthorizationGroups from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "th": obj.get("th"), - "users": obj.get("users") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RGbG9hdCwgU3RyaWN0SW50LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwsIFVuaW9uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEF1dGhvcml6YXRpb25Hcm91cHMoQmFzZU1vZGVsKToKICAgICIiIgogICAgQXV0aG9yaXphdGlvbkdyb3VwcwogICAgIiIiICMgbm9xYTogRTUwMQogICAgdGg6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IE5vbmUKICAgIHVzZXJzOiBPcHRpb25hbFtEaWN0W3N0ciwgU3RyaWN0U3RyXV0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInRoIiwgInVzZXJzIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCd1c2VycycpCiAgICBkZWYgdXNlcnNfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gdmFsdWUKCiAgICAgICAgZm9yIGkgaW4gdmFsdWUudmFsdWVzKCk6CiAgICAgICAgICAgIGlmIGkgbm90IGluIHNldChbJ1BFTkRJTkdfQVVUSE9SSVpBVElPTicsICdBUFBST1ZFRCcsICdSRUpFQ1RFRCcsICdOQSddKToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImRpY3QgdmFsdWVzIG11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnUEVORElOR19BVVRIT1JJWkFUSU9OJywgJ0FQUFJPVkVEJywgJ1JFSkVDVEVEJywgJ05BJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEF1dGhvcml6YXRpb25Hcm91cHMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXV0aG9yaXphdGlvbkdyb3VwcyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0aCI6IG9iai5nZXQoInRoIiksCiAgICAgICAgICAgICJ1c2VycyI6IG9iai5nZXQoInVzZXJzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/authorization_info.py b/fireblocks/models/authorization_info.py index 00e8f5fe..f3410b9b 100644 --- a/fireblocks/models/authorization_info.py +++ b/fireblocks/models/authorization_info.py @@ -1,110 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.authorization_groups import AuthorizationGroups -from typing import Optional, Set -from typing_extensions import Self - -class AuthorizationInfo(BaseModel): - """ - The information about your [Transaction Authorization Policy (TAP).](https://developers.fireblocks.com/docs/capabilities#transaction-authorization-policy-tap) - """ # noqa: E501 - allow_operator_as_authorizer: Optional[StrictBool] = Field(default=None, alias="allowOperatorAsAuthorizer") - logic: Optional[StrictStr] = None - groups: Optional[List[AuthorizationGroups]] = None - __properties: ClassVar[List[str]] = ["allowOperatorAsAuthorizer", "logic", "groups"] - - @field_validator('logic') - def logic_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['AND', 'OR']): - raise ValueError("must be one of enum values ('AND', 'OR')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of AuthorizationInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in groups (list) - _items = [] - if self.groups: - for _item_groups in self.groups: - if _item_groups: - _items.append(_item_groups.to_dict()) - _dict['groups'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of AuthorizationInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "allowOperatorAsAuthorizer": obj.get("allowOperatorAsAuthorizer"), - "logic": obj.get("logic"), - "groups": [AuthorizationGroups.from_dict(_item) for _item in obj["groups"]] if obj.get("groups") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXV0aG9yaXphdGlvbl9ncm91cHMgaW1wb3J0IEF1dGhvcml6YXRpb25Hcm91cHMKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQXV0aG9yaXphdGlvbkluZm8oQmFzZU1vZGVsKToKICAgICIiIgogICAgVGhlIGluZm9ybWF0aW9uIGFib3V0IHlvdXIgW1RyYW5zYWN0aW9uIEF1dGhvcml6YXRpb24gUG9saWN5IChUQVApLl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL2RvY3MvY2FwYWJpbGl0aWVzI3RyYW5zYWN0aW9uLWF1dGhvcml6YXRpb24tcG9saWN5LXRhcCkKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFsbG93X29wZXJhdG9yX2FzX2F1dGhvcml6ZXI6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYWxsb3dPcGVyYXRvckFzQXV0aG9yaXplciIpCiAgICBsb2dpYzogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIGdyb3VwczogT3B0aW9uYWxbTGlzdFtBdXRob3JpemF0aW9uR3JvdXBzXV0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFsbG93T3BlcmF0b3JBc0F1dGhvcml6ZXIiLCAibG9naWMiLCAiZ3JvdXBzIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdsb2dpYycpCiAgICBkZWYgbG9naWNfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gdmFsdWUKCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0FORCcsICdPUiddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdBTkQnLCAnT1InKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXV0aG9yaXphdGlvbkluZm8gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZ3JvdXBzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5ncm91cHM6CiAgICAgICAgICAgIGZvciBfaXRlbV9ncm91cHMgaW4gc2VsZi5ncm91cHM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9ncm91cHM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9ncm91cHMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZ3JvdXBzJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEF1dGhvcml6YXRpb25JbmZvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFsbG93T3BlcmF0b3JBc0F1dGhvcml6ZXIiOiBvYmouZ2V0KCJhbGxvd09wZXJhdG9yQXNBdXRob3JpemVyIiksCiAgICAgICAgICAgICJsb2dpYyI6IG9iai5nZXQoImxvZ2ljIiksCiAgICAgICAgICAgICJncm91cHMiOiBbQXV0aG9yaXphdGlvbkdyb3Vwcy5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImdyb3VwcyJdXSBpZiBvYmouZ2V0KCJncm91cHMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/balance_history_item_dto.py b/fireblocks/models/balance_history_item_dto.py index 5fedb7a6..12006674 100644 --- a/fireblocks/models/balance_history_item_dto.py +++ b/fireblocks/models/balance_history_item_dto.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class BalanceHistoryItemDto(BaseModel): - """ - BalanceHistoryItemDto - """ # noqa: E501 - timestamp: datetime = Field(description="Timestamp of the data point") - balance: StrictStr = Field(description="Balance at the given timestamp") - __properties: ClassVar[List[str]] = ["timestamp", "balance"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of BalanceHistoryItemDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of BalanceHistoryItemDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "timestamp": obj.get("timestamp"), - "balance": obj.get("balance") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEJhbGFuY2VIaXN0b3J5SXRlbUR0byhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBCYWxhbmNlSGlzdG9yeUl0ZW1EdG8KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHRpbWVzdGFtcDogZGF0ZXRpbWUgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGltZXN0YW1wIG9mIHRoZSBkYXRhIHBvaW50IikKICAgIGJhbGFuY2U6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJCYWxhbmNlIGF0IHRoZSBnaXZlbiB0aW1lc3RhbXAiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0aW1lc3RhbXAiLCAiYmFsYW5jZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQmFsYW5jZUhpc3RvcnlJdGVtRHRvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEJhbGFuY2VIaXN0b3J5SXRlbUR0byBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0aW1lc3RhbXAiOiBvYmouZ2V0KCJ0aW1lc3RhbXAiKSwKICAgICAgICAgICAgImJhbGFuY2UiOiBvYmouZ2V0KCJiYWxhbmNlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/balance_history_paged_response.py b/fireblocks/models/balance_history_paged_response.py index dad261a9..2e589946 100644 --- a/fireblocks/models/balance_history_paged_response.py +++ b/fireblocks/models/balance_history_paged_response.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.balance_history_item_dto import BalanceHistoryItemDto -from typing import Optional, Set -from typing_extensions import Self - -class BalanceHistoryPagedResponse(BaseModel): - """ - BalanceHistoryPagedResponse - """ # noqa: E501 - data: List[BalanceHistoryItemDto] = Field(description="Array of balance history data points") - next: Optional[StrictStr] = Field(default=None, description="Cursor for next page") - prev: Optional[StrictStr] = Field(default=None, description="Cursor for previous page") - total: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Total count of items") - __properties: ClassVar[List[str]] = ["data", "next", "prev", "total"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of BalanceHistoryPagedResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of BalanceHistoryPagedResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [BalanceHistoryItemDto.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next"), - "prev": obj.get("prev"), - "total": obj.get("total") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5iYWxhbmNlX2hpc3RvcnlfaXRlbV9kdG8gaW1wb3J0IEJhbGFuY2VIaXN0b3J5SXRlbUR0bwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBCYWxhbmNlSGlzdG9yeVBhZ2VkUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgQmFsYW5jZUhpc3RvcnlQYWdlZFJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkYXRhOiBMaXN0W0JhbGFuY2VIaXN0b3J5SXRlbUR0b10gPSBGaWVsZChkZXNjcmlwdGlvbj0iQXJyYXkgb2YgYmFsYW5jZSBoaXN0b3J5IGRhdGEgcG9pbnRzIikKICAgIG5leHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJDdXJzb3IgZm9yIG5leHQgcGFnZSIpCiAgICBwcmV2OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3Vyc29yIGZvciBwcmV2aW91cyBwYWdlIikKICAgIHRvdGFsOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUb3RhbCBjb3VudCBvZiBpdGVtcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRhdGEiLCAibmV4dCIsICJwcmV2IiwgInRvdGFsIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCYWxhbmNlSGlzdG9yeVBhZ2VkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGF0YSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgZm9yIF9pdGVtX2RhdGEgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZGF0YToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2RhdGEudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCYWxhbmNlSGlzdG9yeVBhZ2VkUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZGF0YSI6IFtCYWxhbmNlSGlzdG9yeUl0ZW1EdG8uZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJkYXRhIl1dIGlmIG9iai5nZXQoImRhdGEiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJuZXh0Ijogb2JqLmdldCgibmV4dCIpLAogICAgICAgICAgICAicHJldiI6IG9iai5nZXQoInByZXYiKSwKICAgICAgICAgICAgInRvdGFsIjogb2JqLmdldCgidG90YWwiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/bank_address.py b/fireblocks/models/bank_address.py index bb452717..3c8981bd 100644 --- a/fireblocks/models/bank_address.py +++ b/fireblocks/models/bank_address.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class BankAddress(BaseModel): - """ - Address of the bank. - """ # noqa: E501 - street_name: Optional[StrictStr] = Field(default=None, alias="streetName") - building_number: Optional[StrictStr] = Field(default=None, alias="buildingNumber") - postal_code: Optional[StrictStr] = Field(default=None, alias="postalCode") - city: Optional[StrictStr] = None - subdivision: Optional[StrictStr] = None - district: Optional[StrictStr] = None - country: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["streetName", "buildingNumber", "postalCode", "city", "subdivision", "district", "country"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of BankAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of BankAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "streetName": obj.get("streetName"), - "buildingNumber": obj.get("buildingNumber"), - "postalCode": obj.get("postalCode"), - "city": obj.get("city"), - "subdivision": obj.get("subdivision"), - "district": obj.get("district"), - "country": obj.get("country") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBCYW5rQWRkcmVzcyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBZGRyZXNzIG9mIHRoZSBiYW5rLgogICAgIiIiICMgbm9xYTogRTUwMQogICAgc3RyZWV0X25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJzdHJlZXROYW1lIikKICAgIGJ1aWxkaW5nX251bWJlcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImJ1aWxkaW5nTnVtYmVyIikKICAgIHBvc3RhbF9jb2RlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0icG9zdGFsQ29kZSIpCiAgICBjaXR5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgc3ViZGl2aXNpb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBkaXN0cmljdDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIGNvdW50cnk6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInN0cmVldE5hbWUiLCAiYnVpbGRpbmdOdW1iZXIiLCAicG9zdGFsQ29kZSIsICJjaXR5IiwgInN1YmRpdmlzaW9uIiwgImRpc3RyaWN0IiwgImNvdW50cnkiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEJhbmtBZGRyZXNzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEJhbmtBZGRyZXNzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInN0cmVldE5hbWUiOiBvYmouZ2V0KCJzdHJlZXROYW1lIiksCiAgICAgICAgICAgICJidWlsZGluZ051bWJlciI6IG9iai5nZXQoImJ1aWxkaW5nTnVtYmVyIiksCiAgICAgICAgICAgICJwb3N0YWxDb2RlIjogb2JqLmdldCgicG9zdGFsQ29kZSIpLAogICAgICAgICAgICAiY2l0eSI6IG9iai5nZXQoImNpdHkiKSwKICAgICAgICAgICAgInN1YmRpdmlzaW9uIjogb2JqLmdldCgic3ViZGl2aXNpb24iKSwKICAgICAgICAgICAgImRpc3RyaWN0Ijogb2JqLmdldCgiZGlzdHJpY3QiKSwKICAgICAgICAgICAgImNvdW50cnkiOiBvYmouZ2V0KCJjb3VudHJ5IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/base_provider.py b/fireblocks/models/base_provider.py index d302dd36..82bfc1df 100644 --- a/fireblocks/models/base_provider.py +++ b/fireblocks/models/base_provider.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class BaseProvider(BaseModel): - """ - BaseProvider - """ # noqa: E501 - id: StrictStr = Field(description="Unique identifier for the provider") - name: StrictStr = Field(description="Display name of the provider") - logo: Optional[StrictStr] = Field(default=None, description="URL to the logo image of the provider") - account_based: StrictBool = Field(description="Indicates whether the provider access model is through accounts or directly", alias="accountBased") - __properties: ClassVar[List[str]] = ["id", "name", "logo", "accountBased"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of BaseProvider from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of BaseProvider from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name"), - "logo": obj.get("logo"), - "accountBased": obj.get("accountBased") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hbmlmZXN0IGltcG9ydCBNYW5pZmVzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBCYXNlUHJvdmlkZXIoQmFzZU1vZGVsKToKICAgICIiIgogICAgQmFzZVByb3ZpZGVyCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcHJvdmlkZXIiKQogICAgbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkRpc3BsYXkgbmFtZSBvZiB0aGUgcHJvdmlkZXIiKQogICAgbG9nbzogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlVSTCB0byB0aGUgbG9nbyBpbWFnZSBvZiB0aGUgcHJvdmlkZXIiKQogICAgYWNjb3VudF9iYXNlZDogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJbmRpY2F0ZXMgd2hldGhlciB0aGUgcHJvdmlkZXIgYWNjZXNzIG1vZGVsIGlzIHRocm91Z2ggYWNjb3VudHMgb3IgZGlyZWN0bHkiLCBhbGlhcz0iYWNjb3VudEJhc2VkIikKICAgIG1hbmlmZXN0OiBNYW5pZmVzdAogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJuYW1lIiwgImxvZ28iLCAiYWNjb3VudEJhc2VkIiwgIm1hbmlmZXN0Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCYXNlUHJvdmlkZXIgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBtYW5pZmVzdAogICAgICAgIGlmIHNlbGYubWFuaWZlc3Q6CiAgICAgICAgICAgIF9kaWN0WydtYW5pZmVzdCddID0gc2VsZi5tYW5pZmVzdC50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEJhc2VQcm92aWRlciBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAibG9nbyI6IG9iai5nZXQoImxvZ28iKSwKICAgICAgICAgICAgImFjY291bnRCYXNlZCI6IG9iai5nZXQoImFjY291bnRCYXNlZCIpLAogICAgICAgICAgICAibWFuaWZlc3QiOiBNYW5pZmVzdC5mcm9tX2RpY3Qob2JqWyJtYW5pZmVzdCJdKSBpZiBvYmouZ2V0KCJtYW5pZmVzdCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/basic_address_request.py b/fireblocks/models/basic_address_request.py index 7849122c..f86e7054 100644 --- a/fireblocks/models/basic_address_request.py +++ b/fireblocks/models/basic_address_request.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class BasicAddressRequest(BaseModel): - """ - Basic external wallet request with address information - """ # noqa: E501 - address: StrictStr = Field(description="The wallet's address (or xpub) of the external wallet") - tag: Optional[StrictStr] = Field(default=None, description="For XRP wallets, the destination tag; for EOS/XLM, the memo; for the fiat providers (BLINC by BCB Group), the Bank Transfer Description") - __properties: ClassVar[List[str]] = ["address", "tag"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of BasicAddressRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of BasicAddressRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "address": obj.get("address"), - "tag": obj.get("tag") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBCYXNpY0FkZHJlc3NSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEJhc2ljIGV4dGVybmFsIHdhbGxldCByZXF1ZXN0IHdpdGggYWRkcmVzcyBpbmZvcm1hdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgYWRkcmVzczogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB3YWxsZXQncyBhZGRyZXNzIChvciB4cHViKSBvZiB0aGUgZXh0ZXJuYWwgd2FsbGV0IikKICAgIHRhZzogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkZvciBYUlAgd2FsbGV0cywgdGhlIGRlc3RpbmF0aW9uIHRhZzsgZm9yIEVPUy9YTE0sIHRoZSBtZW1vOyBmb3IgdGhlIGZpYXQgcHJvdmlkZXJzIChCTElOQyBieSBCQ0IgR3JvdXApLCB0aGUgQmFuayBUcmFuc2ZlciBEZXNjcmlwdGlvbiIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFkZHJlc3MiLCAidGFnIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCYXNpY0FkZHJlc3NSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEJhc2ljQWRkcmVzc1JlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYWRkcmVzcyI6IG9iai5nZXQoImFkZHJlc3MiKSwKICAgICAgICAgICAgInRhZyI6IG9iai5nZXQoInRhZyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/block_info.py b/fireblocks/models/block_info.py index e1e56963..22606c7c 100644 --- a/fireblocks/models/block_info.py +++ b/fireblocks/models/block_info.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class BlockInfo(BaseModel): - """ - The block hash and height of the block that this transaction was mined in. **Note**: If an outgoing transaction uses the destinations object with more than one value in the array, blockHash is set to null. - """ # noqa: E501 - block_height: Optional[StrictStr] = Field(default=None, alias="blockHeight") - block_hash: Optional[StrictStr] = Field(default=None, alias="blockHash") - __properties: ClassVar[List[str]] = ["blockHeight", "blockHash"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of BlockInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if block_hash (nullable) is None - # and model_fields_set contains the field - if self.block_hash is None and "block_hash" in self.model_fields_set: - _dict['blockHash'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of BlockInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "blockHeight": obj.get("blockHeight"), - "blockHash": obj.get("blockHash") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBCbG9ja0luZm8oQmFzZU1vZGVsKToKICAgICIiIgogICAgVGhlIGJsb2NrIGhhc2ggYW5kIGhlaWdodCBvZiB0aGUgYmxvY2sgdGhhdCB0aGlzIHRyYW5zYWN0aW9uIHdhcyBtaW5lZCBpbi4gICAgICAqKk5vdGUqKjogSWYgYW4gb3V0Z29pbmcgdHJhbnNhY3Rpb24gdXNlcyB0aGUgZGVzdGluYXRpb25zIG9iamVjdCB3aXRoIG1vcmUgdGhhbiBvbmUgdmFsdWUgaW4gdGhlIGFycmF5LCBibG9ja0hhc2ggaXMgc2V0IHRvIG51bGwuCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBibG9ja19oZWlnaHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJibG9ja0hlaWdodCIpCiAgICBibG9ja19oYXNoOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYmxvY2tIYXNoIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYmxvY2tIZWlnaHQiLCAiYmxvY2tIYXNoIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCbG9ja0luZm8gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgYmxvY2tfaGFzaCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuYmxvY2tfaGFzaCBpcyBOb25lIGFuZCAiYmxvY2tfaGFzaCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnYmxvY2tIYXNoJ10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQmxvY2tJbmZvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImJsb2NrSGVpZ2h0Ijogb2JqLmdldCgiYmxvY2tIZWlnaHQiKSwKICAgICAgICAgICAgImJsb2NrSGFzaCI6IG9iai5nZXQoImJsb2NrSGFzaCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/blockchain_address.py b/fireblocks/models/blockchain_address.py index 78027aa0..e2ca269c 100644 --- a/fireblocks/models/blockchain_address.py +++ b/fireblocks/models/blockchain_address.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class BlockchainAddress(BaseModel): - """ - The blockchain address information. - """ # noqa: E501 - blockchain_address: StrictStr = Field(description="The blockchain address.", alias="blockchainAddress") - tag: Optional[StrictStr] = Field(default=None, description="The tag of the blockchain address. It is used to identify the address in the blockchain. It is optional.") - __properties: ClassVar[List[str]] = ["blockchainAddress", "tag"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of BlockchainAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of BlockchainAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "blockchainAddress": obj.get("blockchainAddress"), - "tag": obj.get("tag") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBCbG9ja2NoYWluQWRkcmVzcyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUaGUgYmxvY2tjaGFpbiBhZGRyZXNzIGluZm9ybWF0aW9uLgogICAgIiIiICMgbm9xYTogRTUwMQogICAgYmxvY2tjaGFpbl9hZGRyZXNzOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGJsb2NrY2hhaW4gYWRkcmVzcy4iLCBhbGlhcz0iYmxvY2tjaGFpbkFkZHJlc3MiKQogICAgdGFnOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHRhZyBvZiB0aGUgYmxvY2tjaGFpbiBhZGRyZXNzLiBJdCBpcyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBhZGRyZXNzIGluIHRoZSBibG9ja2NoYWluLiBJdCBpcyBvcHRpb25hbC4iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJibG9ja2NoYWluQWRkcmVzcyIsICJ0YWciXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEJsb2NrY2hhaW5BZGRyZXNzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEJsb2NrY2hhaW5BZGRyZXNzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImJsb2NrY2hhaW5BZGRyZXNzIjogb2JqLmdldCgiYmxvY2tjaGFpbkFkZHJlc3MiKSwKICAgICAgICAgICAgInRhZyI6IG9iai5nZXQoInRhZyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/blockchain_destination.py b/fireblocks/models/blockchain_destination.py index 562b9fe2..e2b2be0b 100644 --- a/fireblocks/models/blockchain_destination.py +++ b/fireblocks/models/blockchain_destination.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from fireblocks.models.blockchain_address import BlockchainAddress -from typing import Optional, Set -from typing_extensions import Self - -class BlockchainDestination(BaseModel): - """ - BlockchainDestination - """ # noqa: E501 - type: StrictStr = Field(description="The type of destination. Use \"BLOCKCHAIN\" for blockchain address destinations.") - address: BlockchainAddress - __properties: ClassVar[List[str]] = ["type", "address"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['BLOCKCHAIN']): - raise ValueError("must be one of enum values ('BLOCKCHAIN')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of BlockchainDestination from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of address - if self.address: - _dict['address'] = self.address.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of BlockchainDestination from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "address": BlockchainAddress.from_dict(obj["address"]) if obj.get("address") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ibG9ja2NoYWluX2FkZHJlc3MgaW1wb3J0IEJsb2NrY2hhaW5BZGRyZXNzCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEJsb2NrY2hhaW5EZXN0aW5hdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBCbG9ja2NoYWluRGVzdGluYXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR5cGU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdHlwZSBvZiBkZXN0aW5hdGlvbi4gVXNlIFwiQkxPQ0tDSEFJTlwiIGZvciBibG9ja2NoYWluIGFkZHJlc3MgZGVzdGluYXRpb25zLiIpCiAgICBhZGRyZXNzOiBCbG9ja2NoYWluQWRkcmVzcwogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgImFkZHJlc3MiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3R5cGUnKQogICAgZGVmIHR5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnQkxPQ0tDSEFJTiddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdCTE9DS0NIQUlOJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEJsb2NrY2hhaW5EZXN0aW5hdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFkZHJlc3MKICAgICAgICBpZiBzZWxmLmFkZHJlc3M6CiAgICAgICAgICAgIF9kaWN0WydhZGRyZXNzJ10gPSBzZWxmLmFkZHJlc3MudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCbG9ja2NoYWluRGVzdGluYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImFkZHJlc3MiOiBCbG9ja2NoYWluQWRkcmVzcy5mcm9tX2RpY3Qob2JqWyJhZGRyZXNzIl0pIGlmIG9iai5nZXQoImFkZHJlc3MiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/blockchain_explorer.py b/fireblocks/models/blockchain_explorer.py index d97ff9d2..b48730b0 100644 --- a/fireblocks/models/blockchain_explorer.py +++ b/fireblocks/models/blockchain_explorer.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class BlockchainExplorer(BaseModel): - """ - BlockchainExplorer - """ # noqa: E501 - base: StrictStr = Field(description="Explorer base url") - address: Optional[StrictStr] = Field(default=None, description="Explorer address url") - tx: Optional[StrictStr] = Field(default=None, description="Explorer transaction url") - token: Optional[StrictStr] = Field(default=None, description="Explorer token url") - __properties: ClassVar[List[str]] = ["base", "address", "tx", "token"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of BlockchainExplorer from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of BlockchainExplorer from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "base": obj.get("base"), - "address": obj.get("address"), - "tx": obj.get("tx"), - "token": obj.get("token") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBCbG9ja2NoYWluRXhwbG9yZXIoQmFzZU1vZGVsKToKICAgICIiIgogICAgQmxvY2tjaGFpbkV4cGxvcmVyCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBiYXNlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iRXhwbG9yZXIgYmFzZSB1cmwiKQogICAgYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkV4cGxvcmVyIGFkZHJlc3MgdXJsIikKICAgIHR4OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRXhwbG9yZXIgdHJhbnNhY3Rpb24gdXJsIikKICAgIHRva2VuOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRXhwbG9yZXIgdG9rZW4gdXJsIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYmFzZSIsICJhZGRyZXNzIiwgInR4IiwgInRva2VuIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCbG9ja2NoYWluRXhwbG9yZXIgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQmxvY2tjaGFpbkV4cGxvcmVyIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImJhc2UiOiBvYmouZ2V0KCJiYXNlIiksCiAgICAgICAgICAgICJhZGRyZXNzIjogb2JqLmdldCgiYWRkcmVzcyIpLAogICAgICAgICAgICAidHgiOiBvYmouZ2V0KCJ0eCIpLAogICAgICAgICAgICAidG9rZW4iOiBvYmouZ2V0KCJ0b2tlbiIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/blockchain_media.py b/fireblocks/models/blockchain_media.py index ee87aa53..e62491f0 100644 --- a/fireblocks/models/blockchain_media.py +++ b/fireblocks/models/blockchain_media.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class BlockchainMedia(BaseModel): - """ - BlockchainMedia - """ # noqa: E501 - url: StrictStr = Field(description="Media URL") - type: StrictStr = Field(description="Media type") - __properties: ClassVar[List[str]] = ["url", "type"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['image/svg+xml', 'image/png']): - raise ValueError("must be one of enum values ('image/svg+xml', 'image/png')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of BlockchainMedia from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of BlockchainMedia from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "url": obj.get("url"), - "type": obj.get("type") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQmxvY2tjaGFpbk1lZGlhKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEJsb2NrY2hhaW5NZWRpYQogICAgIiIiICMgbm9xYTogRTUwMQogICAgdXJsOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iTWVkaWEgVVJMIikKICAgIHR5cGU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJNZWRpYSB0eXBlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidXJsIiwgInR5cGUiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3R5cGUnKQogICAgZGVmIHR5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnaW1hZ2Uvc3ZnK3htbCcsICdpbWFnZS9wbmcnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnaW1hZ2Uvc3ZnK3htbCcsICdpbWFnZS9wbmcnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQmxvY2tjaGFpbk1lZGlhIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEJsb2NrY2hhaW5NZWRpYSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ1cmwiOiBvYmouZ2V0KCJ1cmwiKSwKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/blockchain_metadata.py b/fireblocks/models/blockchain_metadata.py index 77981cf8..4896032a 100644 --- a/fireblocks/models/blockchain_metadata.py +++ b/fireblocks/models/blockchain_metadata.py @@ -1,107 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.asset_scope import AssetScope -from fireblocks.models.blockchain_explorer import BlockchainExplorer -from fireblocks.models.blockchain_media import BlockchainMedia -from typing import Optional, Set -from typing_extensions import Self - -class BlockchainMetadata(BaseModel): - """ - BlockchainMetadata - """ # noqa: E501 - scope: AssetScope - deprecated: StrictBool = Field(description="Is blockchain deprecated") - media: Optional[List[BlockchainMedia]] = Field(default=None, description="Blockchain’s media") - explorer: Optional[BlockchainExplorer] = None - __properties: ClassVar[List[str]] = ["scope", "deprecated", "media", "explorer"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of BlockchainMetadata from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in media (list) - _items = [] - if self.media: - for _item_media in self.media: - if _item_media: - _items.append(_item_media.to_dict()) - _dict['media'] = _items - # override the default output from pydantic by calling `to_dict()` of explorer - if self.explorer: - _dict['explorer'] = self.explorer.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of BlockchainMetadata from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "scope": obj.get("scope"), - "deprecated": obj.get("deprecated"), - "media": [BlockchainMedia.from_dict(_item) for _item in obj["media"]] if obj.get("media") is not None else None, - "explorer": BlockchainExplorer.from_dict(obj["explorer"]) if obj.get("explorer") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9zY29wZSBpbXBvcnQgQXNzZXRTY29wZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fZXhwbG9yZXIgaW1wb3J0IEJsb2NrY2hhaW5FeHBsb3Jlcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fbWVkaWEgaW1wb3J0IEJsb2NrY2hhaW5NZWRpYQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBCbG9ja2NoYWluTWV0YWRhdGEoQmFzZU1vZGVsKToKICAgICIiIgogICAgQmxvY2tjaGFpbk1ldGFkYXRhCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzY29wZTogQXNzZXRTY29wZQogICAgZGVwcmVjYXRlZDogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJcyBibG9ja2NoYWluIGRlcHJlY2F0ZWQiKQogICAgbWVkaWE6IE9wdGlvbmFsW0xpc3RbQmxvY2tjaGFpbk1lZGlhXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJCbG9ja2NoYWlu4oCZcyBtZWRpYSIpCiAgICBleHBsb3JlcjogT3B0aW9uYWxbQmxvY2tjaGFpbkV4cGxvcmVyXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic2NvcGUiLCAiZGVwcmVjYXRlZCIsICJtZWRpYSIsICJleHBsb3JlciJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQmxvY2tjaGFpbk1ldGFkYXRhIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIG1lZGlhIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5tZWRpYToKICAgICAgICAgICAgZm9yIF9pdGVtX21lZGlhIGluIHNlbGYubWVkaWE6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9tZWRpYToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX21lZGlhLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ21lZGlhJ10gPSBfaXRlbXMKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZXhwbG9yZXIKICAgICAgICBpZiBzZWxmLmV4cGxvcmVyOgogICAgICAgICAgICBfZGljdFsnZXhwbG9yZXInXSA9IHNlbGYuZXhwbG9yZXIudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCbG9ja2NoYWluTWV0YWRhdGEgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic2NvcGUiOiBvYmouZ2V0KCJzY29wZSIpLAogICAgICAgICAgICAiZGVwcmVjYXRlZCI6IG9iai5nZXQoImRlcHJlY2F0ZWQiKSwKICAgICAgICAgICAgIm1lZGlhIjogW0Jsb2NrY2hhaW5NZWRpYS5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbIm1lZGlhIl1dIGlmIG9iai5nZXQoIm1lZGlhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZXhwbG9yZXIiOiBCbG9ja2NoYWluRXhwbG9yZXIuZnJvbV9kaWN0KG9ialsiZXhwbG9yZXIiXSkgaWYgb2JqLmdldCgiZXhwbG9yZXIiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/blockchain_not_found_error_response.py b/fireblocks/models/blockchain_not_found_error_response.py index 4139f5ec..c0d00915 100644 --- a/fireblocks/models/blockchain_not_found_error_response.py +++ b/fireblocks/models/blockchain_not_found_error_response.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class BlockchainNotFoundErrorResponse(BaseModel): - """ - BlockchainNotFoundErrorResponse - """ # noqa: E501 - message: StrictStr = Field(description="Not found error code") - code: Union[StrictFloat, StrictInt] = Field(description="Error code") - __properties: ClassVar[List[str]] = ["message", "code"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of BlockchainNotFoundErrorResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of BlockchainNotFoundErrorResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "code": obj.get("code") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBCbG9ja2NoYWluTm90Rm91bmRFcnJvclJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEJsb2NrY2hhaW5Ob3RGb3VuZEVycm9yUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG1lc3NhZ2U6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJOb3QgZm91bmQgZXJyb3IgY29kZSIpCiAgICBjb2RlOiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJFcnJvciBjb2RlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibWVzc2FnZSIsICJjb2RlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCbG9ja2NoYWluTm90Rm91bmRFcnJvclJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEJsb2NrY2hhaW5Ob3RGb3VuZEVycm9yUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibWVzc2FnZSI6IG9iai5nZXQoIm1lc3NhZ2UiKSwKICAgICAgICAgICAgImNvZGUiOiBvYmouZ2V0KCJjb2RlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/blockchain_onchain.py b/fireblocks/models/blockchain_onchain.py index 4aa468bd..b44411ea 100644 --- a/fireblocks/models/blockchain_onchain.py +++ b/fireblocks/models/blockchain_onchain.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class BlockchainOnchain(BaseModel): - """ - BlockchainOnchain - """ # noqa: E501 - protocol: StrictStr = Field(description="The protocol of the blockchain") - chain_id: Optional[StrictStr] = Field(default=None, description="Network/chain ID", alias="chainId") - test: StrictBool = Field(description="Is test blockchain") - signing_algo: StrictStr = Field(description="Signing alghorithm", alias="signingAlgo") - __properties: ClassVar[List[str]] = ["protocol", "chainId", "test", "signingAlgo"] - - @field_validator('signing_algo') - def signing_algo_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['ECDSA_SECP256K1', 'EDDSA_ED25519']): - raise ValueError("must be one of enum values ('ECDSA_SECP256K1', 'EDDSA_ED25519')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of BlockchainOnchain from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of BlockchainOnchain from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "protocol": obj.get("protocol"), - "chainId": obj.get("chainId"), - "test": obj.get("test"), - "signingAlgo": obj.get("signingAlgo") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEJsb2NrY2hhaW5PbmNoYWluKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEJsb2NrY2hhaW5PbmNoYWluCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBwcm90b2NvbDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBwcm90b2NvbCBvZiB0aGUgYmxvY2tjaGFpbiIpCiAgICBjaGFpbl9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik5ldHdvcmsvY2hhaW4gSUQiLCBhbGlhcz0iY2hhaW5JZCIpCiAgICB0ZXN0OiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IklzIHRlc3QgYmxvY2tjaGFpbiIpCiAgICBzaWduaW5nX2FsZ286IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJTaWduaW5nIGFsZ2hvcml0aG0iLCBhbGlhcz0ic2lnbmluZ0FsZ28iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJwcm90b2NvbCIsICJjaGFpbklkIiwgInRlc3QiLCAic2lnbmluZ0FsZ28iXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3NpZ25pbmdfYWxnbycpCiAgICBkZWYgc2lnbmluZ19hbGdvX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0VDRFNBX1NFQ1AyNTZLMScsICdFRERTQV9FRDI1NTE5J10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0VDRFNBX1NFQ1AyNTZLMScsICdFRERTQV9FRDI1NTE5JykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEJsb2NrY2hhaW5PbmNoYWluIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEJsb2NrY2hhaW5PbmNoYWluIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInByb3RvY29sIjogb2JqLmdldCgicHJvdG9jb2wiKSwKICAgICAgICAgICAgImNoYWluSWQiOiBvYmouZ2V0KCJjaGFpbklkIiksCiAgICAgICAgICAgICJ0ZXN0Ijogb2JqLmdldCgidGVzdCIpLAogICAgICAgICAgICAic2lnbmluZ0FsZ28iOiBvYmouZ2V0KCJzaWduaW5nQWxnbyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/blockchain_response.py b/fireblocks/models/blockchain_response.py index c5067d1c..fd7abb3a 100644 --- a/fireblocks/models/blockchain_response.py +++ b/fireblocks/models/blockchain_response.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.blockchain_metadata import BlockchainMetadata -from fireblocks.models.blockchain_onchain import BlockchainOnchain -from typing import Optional, Set -from typing_extensions import Self - -class BlockchainResponse(BaseModel): - """ - BlockchainResponse - """ # noqa: E501 - id: StrictStr = Field(description="The ID of the blockchain") - legacy_id: StrictStr = Field(description="The old blockchain ID representation of the blockchain", alias="legacyId") - display_name: StrictStr = Field(description="The name of the blockchain", alias="displayName") - native_asset_id: StrictStr = Field(description="Native asset ID of this blockchain", alias="nativeAssetId") - onchain: BlockchainOnchain - metadata: BlockchainMetadata - __properties: ClassVar[List[str]] = ["id", "legacyId", "displayName", "nativeAssetId", "onchain", "metadata"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of BlockchainResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of onchain - if self.onchain: - _dict['onchain'] = self.onchain.to_dict() - # override the default output from pydantic by calling `to_dict()` of metadata - if self.metadata: - _dict['metadata'] = self.metadata.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of BlockchainResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "legacyId": obj.get("legacyId"), - "displayName": obj.get("displayName"), - "nativeAssetId": obj.get("nativeAssetId"), - "onchain": BlockchainOnchain.from_dict(obj["onchain"]) if obj.get("onchain") is not None else None, - "metadata": BlockchainMetadata.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9tZXRhZGF0YSBpbXBvcnQgQmxvY2tjaGFpbk1ldGFkYXRhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9vbmNoYWluIGltcG9ydCBCbG9ja2NoYWluT25jaGFpbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBCbG9ja2NoYWluUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgQmxvY2tjaGFpblJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYmxvY2tjaGFpbiIpCiAgICBsZWdhY3lfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgb2xkIGJsb2NrY2hhaW4gSUQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGJsb2NrY2hhaW4iLCBhbGlhcz0ibGVnYWN5SWQiKQogICAgZGlzcGxheV9uYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIG5hbWUgb2YgdGhlIGJsb2NrY2hhaW4iLCBhbGlhcz0iZGlzcGxheU5hbWUiKQogICAgbmF0aXZlX2Fzc2V0X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iTmF0aXZlIGFzc2V0IElEIG9mIHRoaXMgYmxvY2tjaGFpbiIsIGFsaWFzPSJuYXRpdmVBc3NldElkIikKICAgIG9uY2hhaW46IEJsb2NrY2hhaW5PbmNoYWluCiAgICBtZXRhZGF0YTogQmxvY2tjaGFpbk1ldGFkYXRhCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgImxlZ2FjeUlkIiwgImRpc3BsYXlOYW1lIiwgIm5hdGl2ZUFzc2V0SWQiLCAib25jaGFpbiIsICJtZXRhZGF0YSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQmxvY2tjaGFpblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2Ygb25jaGFpbgogICAgICAgIGlmIHNlbGYub25jaGFpbjoKICAgICAgICAgICAgX2RpY3RbJ29uY2hhaW4nXSA9IHNlbGYub25jaGFpbi50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgbWV0YWRhdGEKICAgICAgICBpZiBzZWxmLm1ldGFkYXRhOgogICAgICAgICAgICBfZGljdFsnbWV0YWRhdGEnXSA9IHNlbGYubWV0YWRhdGEudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCbG9ja2NoYWluUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAibGVnYWN5SWQiOiBvYmouZ2V0KCJsZWdhY3lJZCIpLAogICAgICAgICAgICAiZGlzcGxheU5hbWUiOiBvYmouZ2V0KCJkaXNwbGF5TmFtZSIpLAogICAgICAgICAgICAibmF0aXZlQXNzZXRJZCI6IG9iai5nZXQoIm5hdGl2ZUFzc2V0SWQiKSwKICAgICAgICAgICAgIm9uY2hhaW4iOiBCbG9ja2NoYWluT25jaGFpbi5mcm9tX2RpY3Qob2JqWyJvbmNoYWluIl0pIGlmIG9iai5nZXQoIm9uY2hhaW4iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJtZXRhZGF0YSI6IEJsb2NrY2hhaW5NZXRhZGF0YS5mcm9tX2RpY3Qob2JqWyJtZXRhZGF0YSJdKSBpZiBvYmouZ2V0KCJtZXRhZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/blockchain_transfer.py b/fireblocks/models/blockchain_transfer.py index 17abe5f7..73913915 100644 --- a/fireblocks/models/blockchain_transfer.py +++ b/fireblocks/models/blockchain_transfer.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class BlockchainTransfer(BaseModel): - """ - BlockchainTransfer - """ # noqa: E501 - type: Optional[StrictStr] = None - tx_hash: Optional[StrictStr] = Field(default=None, description="The hash of the transaction on the blockchain.", alias="txHash") - amount: StrictStr = Field(description="The amount of the transaction.") - __properties: ClassVar[List[str]] = ["type", "txHash", "amount"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['BLOCKCHAIN']): - raise ValueError("must be one of enum values ('BLOCKCHAIN')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of BlockchainTransfer from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of BlockchainTransfer from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "txHash": obj.get("txHash"), - "amount": obj.get("amount") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEJsb2NrY2hhaW5UcmFuc2ZlcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBCbG9ja2NoYWluVHJhbnNmZXIKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICB0eF9oYXNoOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGhhc2ggb2YgdGhlIHRyYW5zYWN0aW9uIG9uIHRoZSBibG9ja2NoYWluLiIsIGFsaWFzPSJ0eEhhc2giKQogICAgYW1vdW50OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGFtb3VudCBvZiB0aGUgdHJhbnNhY3Rpb24uIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidHlwZSIsICJ0eEhhc2giLCAiYW1vdW50Il0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCd0eXBlJykKICAgIGRlZiB0eXBlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydCTE9DS0NIQUlOJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0JMT0NLQ0hBSU4nKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQmxvY2tjaGFpblRyYW5zZmVyIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEJsb2NrY2hhaW5UcmFuc2ZlciBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAidHhIYXNoIjogb2JqLmdldCgidHhIYXNoIiksCiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/bps_fee.py b/fireblocks/models/bps_fee.py index bbed5604..0b108e18 100644 --- a/fireblocks/models/bps_fee.py +++ b/fireblocks/models/bps_fee.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Union -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class BpsFee(BaseModel): - """ - BpsFee - """ # noqa: E501 - amount_type: StrictStr = Field(alias="amountType") - amount: Union[Annotated[float, Field(le=10000, strict=True, ge=0)], Annotated[int, Field(le=10000, strict=True, ge=0)]] = Field(description="Fee in basis points (1 = 0.01%, 10000 = 100%)") - __properties: ClassVar[List[str]] = ["amountType", "amount"] - - @field_validator('amount_type') - def amount_type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['BPS']): - raise ValueError("must be one of enum values ('BPS')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of BpsFee from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of BpsFee from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amountType": obj.get("amountType"), - "amount": obj.get("amount") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBCcHNGZWUoQmFzZU1vZGVsKToKICAgICIiIgogICAgQnBzRmVlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhbW91bnRfdHlwZTogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9ImFtb3VudFR5cGUiKQogICAgYW1vdW50OiBVbmlvbltBbm5vdGF0ZWRbZmxvYXQsIEZpZWxkKGxlPTEwMDAwLCBzdHJpY3Q9VHJ1ZSwgZ2U9MCldLCBBbm5vdGF0ZWRbaW50LCBGaWVsZChsZT0xMDAwMCwgc3RyaWN0PVRydWUsIGdlPTApXV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iRmVlIGluIGJhc2lzIHBvaW50cyAoMSA9IDAuMDElLCAxMDAwMCA9IDEwMCUpIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYW1vdW50VHlwZSIsICJhbW91bnQiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2Ftb3VudF90eXBlJykKICAgIGRlZiBhbW91bnRfdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydCUFMnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnQlBTJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEJwc0ZlZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCcHNGZWUgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYW1vdW50VHlwZSI6IG9iai5nZXQoImFtb3VudFR5cGUiKSwKICAgICAgICAgICAgImFtb3VudCI6IG9iai5nZXQoImFtb3VudCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/business_entity_type_enum.py b/fireblocks/models/business_entity_type_enum.py index 9d61f8ed..7a824b48 100644 --- a/fireblocks/models/business_entity_type_enum.py +++ b/fireblocks/models/business_entity_type_enum.py @@ -1,37 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class BusinessEntityTypeEnum(str, Enum): - """ - BusinessEntityTypeEnum - """ - - """ - allowed enum values - """ - BUSINESS = 'BUSINESS' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of BusinessEntityTypeEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBCdXNpbmVzc0VudGl0eVR5cGVFbnVtKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIEJ1c2luZXNzRW50aXR5VHlwZUVudW0KICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBCVVNJTkVTUyA9ICdCVVNJTkVTUycKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBCdXNpbmVzc0VudGl0eVR5cGVFbnVtIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/business_identification.py b/fireblocks/models/business_identification.py index ec1ffd08..6294c439 100644 --- a/fireblocks/models/business_identification.py +++ b/fireblocks/models/business_identification.py @@ -1,119 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from fireblocks.models.business_entity_type_enum import BusinessEntityTypeEnum -from fireblocks.models.participant_relationship_type import ParticipantRelationshipType -from fireblocks.models.postal_address import PostalAddress -from typing import Optional, Set -from typing_extensions import Self - -class BusinessIdentification(BaseModel): - """ - BusinessIdentification - """ # noqa: E501 - external_reference_id: StrictStr = Field(alias="externalReferenceId") - entity_type: BusinessEntityTypeEnum = Field(alias="entityType") - participant_relationship_type: ParticipantRelationshipType = Field(alias="participantRelationshipType") - business_name: StrictStr = Field(alias="businessName") - registration_number: StrictStr = Field(alias="registrationNumber") - postal_address: PostalAddress = Field(alias="postalAddress") - email: Optional[StrictStr] = None - phone: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="Mobile phone number in E.164 format") - __properties: ClassVar[List[str]] = ["externalReferenceId", "entityType", "participantRelationshipType", "businessName", "registrationNumber", "postalAddress", "email", "phone"] - - @field_validator('phone') - def phone_validate_regular_expression(cls, value): - """Validates the regular expression""" - if value is None: - return value - - if not re.match(r"^\+[1-9]\d{1,14}$", value): - raise ValueError(r"must validate the regular expression /^\+[1-9]\d{1,14}$/") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of BusinessIdentification from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of postal_address - if self.postal_address: - _dict['postalAddress'] = self.postal_address.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of BusinessIdentification from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "externalReferenceId": obj.get("externalReferenceId"), - "entityType": obj.get("entityType"), - "participantRelationshipType": obj.get("participantRelationshipType"), - "businessName": obj.get("businessName"), - "registrationNumber": obj.get("registrationNumber"), - "postalAddress": PostalAddress.from_dict(obj["postalAddress"]) if obj.get("postalAddress") is not None else None, - "email": obj.get("email"), - "phone": obj.get("phone") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJ1c2luZXNzX2VudGl0eV90eXBlX2VudW0gaW1wb3J0IEJ1c2luZXNzRW50aXR5VHlwZUVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXJ0aWNpcGFudF9yZWxhdGlvbnNoaXBfdHlwZSBpbXBvcnQgUGFydGljaXBhbnRSZWxhdGlvbnNoaXBUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9zdGFsX2FkZHJlc3MgaW1wb3J0IFBvc3RhbEFkZHJlc3MKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQnVzaW5lc3NJZGVudGlmaWNhdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBCdXNpbmVzc0lkZW50aWZpY2F0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBleHRlcm5hbF9yZWZlcmVuY2VfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJleHRlcm5hbFJlZmVyZW5jZUlkIikKICAgIGVudGl0eV90eXBlOiBCdXNpbmVzc0VudGl0eVR5cGVFbnVtID0gRmllbGQoYWxpYXM9ImVudGl0eVR5cGUiKQogICAgcGFydGljaXBhbnRfcmVsYXRpb25zaGlwX3R5cGU6IFBhcnRpY2lwYW50UmVsYXRpb25zaGlwVHlwZSA9IEZpZWxkKGFsaWFzPSJwYXJ0aWNpcGFudFJlbGF0aW9uc2hpcFR5cGUiKQogICAgYnVzaW5lc3NfbmFtZTogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9ImJ1c2luZXNzTmFtZSIpCiAgICByZWdpc3RyYXRpb25fbnVtYmVyOiBTdHJpY3RTdHIgPSBGaWVsZChhbGlhcz0icmVnaXN0cmF0aW9uTnVtYmVyIikKICAgIHBvc3RhbF9hZGRyZXNzOiBQb3N0YWxBZGRyZXNzID0gRmllbGQoYWxpYXM9InBvc3RhbEFkZHJlc3MiKQogICAgZW1haWw6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBwaG9uZTogT3B0aW9uYWxbQW5ub3RhdGVkW3N0ciwgRmllbGQoc3RyaWN0PVRydWUpXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJNb2JpbGUgcGhvbmUgbnVtYmVyIGluIEUuMTY0IGZvcm1hdCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImV4dGVybmFsUmVmZXJlbmNlSWQiLCAiZW50aXR5VHlwZSIsICJwYXJ0aWNpcGFudFJlbGF0aW9uc2hpcFR5cGUiLCAiYnVzaW5lc3NOYW1lIiwgInJlZ2lzdHJhdGlvbk51bWJlciIsICJwb3N0YWxBZGRyZXNzIiwgImVtYWlsIiwgInBob25lIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdwaG9uZScpCiAgICBkZWYgcGhvbmVfdmFsaWRhdGVfcmVndWxhcl9leHByZXNzaW9uKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgcmVndWxhciBleHByZXNzaW9uIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIG5vdCByZS5tYXRjaChyIl5cK1sxLTldXGR7MSwxNH0kIiwgdmFsdWUpOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKHIibXVzdCB2YWxpZGF0ZSB0aGUgcmVndWxhciBleHByZXNzaW9uIC9eXCtbMS05XVxkezEsMTR9JC8iKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEJ1c2luZXNzSWRlbnRpZmljYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBwb3N0YWxfYWRkcmVzcwogICAgICAgIGlmIHNlbGYucG9zdGFsX2FkZHJlc3M6CiAgICAgICAgICAgIF9kaWN0Wydwb3N0YWxBZGRyZXNzJ10gPSBzZWxmLnBvc3RhbF9hZGRyZXNzLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQnVzaW5lc3NJZGVudGlmaWNhdGlvbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJleHRlcm5hbFJlZmVyZW5jZUlkIjogb2JqLmdldCgiZXh0ZXJuYWxSZWZlcmVuY2VJZCIpLAogICAgICAgICAgICAiZW50aXR5VHlwZSI6IG9iai5nZXQoImVudGl0eVR5cGUiKSwKICAgICAgICAgICAgInBhcnRpY2lwYW50UmVsYXRpb25zaGlwVHlwZSI6IG9iai5nZXQoInBhcnRpY2lwYW50UmVsYXRpb25zaGlwVHlwZSIpLAogICAgICAgICAgICAiYnVzaW5lc3NOYW1lIjogb2JqLmdldCgiYnVzaW5lc3NOYW1lIiksCiAgICAgICAgICAgICJyZWdpc3RyYXRpb25OdW1iZXIiOiBvYmouZ2V0KCJyZWdpc3RyYXRpb25OdW1iZXIiKSwKICAgICAgICAgICAgInBvc3RhbEFkZHJlc3MiOiBQb3N0YWxBZGRyZXNzLmZyb21fZGljdChvYmpbInBvc3RhbEFkZHJlc3MiXSkgaWYgb2JqLmdldCgicG9zdGFsQWRkcmVzcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImVtYWlsIjogb2JqLmdldCgiZW1haWwiKSwKICAgICAgICAgICAgInBob25lIjogb2JqLmdldCgicGhvbmUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/callback_handler.py b/fireblocks/models/callback_handler.py index 370c7515..cadc14ac 100644 --- a/fireblocks/models/callback_handler.py +++ b/fireblocks/models/callback_handler.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class CallbackHandler(BaseModel): - """ - CallbackHandler - """ # noqa: E501 - url: StrictStr = Field(description="The callback handler's URL") - public_key: Optional[StrictStr] = Field(default=None, description="The callback handler's public key", alias="publicKey") - cert_public_key_hash: Optional[StrictStr] = Field(default=None, description="A hashed representation of the public key of the callback handler's certificate", alias="certPublicKeyHash") - __properties: ClassVar[List[str]] = ["url", "publicKey", "certPublicKeyHash"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CallbackHandler from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CallbackHandler from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "url": obj.get("url"), - "publicKey": obj.get("publicKey"), - "certPublicKeyHash": obj.get("certPublicKeyHash") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDYWxsYmFja0hhbmRsZXIoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ2FsbGJhY2tIYW5kbGVyCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB1cmw6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgY2FsbGJhY2sgaGFuZGxlcidzIFVSTCIpCiAgICBwdWJsaWNfa2V5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGNhbGxiYWNrIGhhbmRsZXIncyBwdWJsaWMga2V5IiwgYWxpYXM9InB1YmxpY0tleSIpCiAgICBjZXJ0X3B1YmxpY19rZXlfaGFzaDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkEgaGFzaGVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwdWJsaWMga2V5IG9mIHRoZSBjYWxsYmFjayBoYW5kbGVyJ3MgY2VydGlmaWNhdGUiLCBhbGlhcz0iY2VydFB1YmxpY0tleUhhc2giKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ1cmwiLCAicHVibGljS2V5IiwgImNlcnRQdWJsaWNLZXlIYXNoIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDYWxsYmFja0hhbmRsZXIgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ2FsbGJhY2tIYW5kbGVyIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInVybCI6IG9iai5nZXQoInVybCIpLAogICAgICAgICAgICAicHVibGljS2V5Ijogb2JqLmdldCgicHVibGljS2V5IiksCiAgICAgICAgICAgICJjZXJ0UHVibGljS2V5SGFzaCI6IG9iai5nZXQoImNlcnRQdWJsaWNLZXlIYXNoIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/callback_handler_request.py b/fireblocks/models/callback_handler_request.py index c928bd65..eb77083c 100644 --- a/fireblocks/models/callback_handler_request.py +++ b/fireblocks/models/callback_handler_request.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class CallbackHandlerRequest(BaseModel): - """ - CallbackHandlerRequest - """ # noqa: E501 - url: StrictStr = Field(description="The callback handler's URL") - public_key: Optional[StrictStr] = Field(default=None, description="The callback handler's public key", alias="publicKey") - cert: Optional[StrictStr] = Field(default=None, description="The callback handler's certificate") - __properties: ClassVar[List[str]] = ["url", "publicKey", "cert"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CallbackHandlerRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CallbackHandlerRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "url": obj.get("url"), - "publicKey": obj.get("publicKey"), - "cert": obj.get("cert") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDYWxsYmFja0hhbmRsZXJSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENhbGxiYWNrSGFuZGxlclJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHVybDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBjYWxsYmFjayBoYW5kbGVyJ3MgVVJMIikKICAgIHB1YmxpY19rZXk6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgY2FsbGJhY2sgaGFuZGxlcidzIHB1YmxpYyBrZXkiLCBhbGlhcz0icHVibGljS2V5IikKICAgIGNlcnQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgY2FsbGJhY2sgaGFuZGxlcidzIGNlcnRpZmljYXRlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidXJsIiwgInB1YmxpY0tleSIsICJjZXJ0Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDYWxsYmFja0hhbmRsZXJSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENhbGxiYWNrSGFuZGxlclJlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidXJsIjogb2JqLmdldCgidXJsIiksCiAgICAgICAgICAgICJwdWJsaWNLZXkiOiBvYmouZ2V0KCJwdWJsaWNLZXkiKSwKICAgICAgICAgICAgImNlcnQiOiBvYmouZ2V0KCJjZXJ0IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/cancel_transaction_response.py b/fireblocks/models/cancel_transaction_response.py index 98ecd9ac..2b55ce83 100644 --- a/fireblocks/models/cancel_transaction_response.py +++ b/fireblocks/models/cancel_transaction_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictBool -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class CancelTransactionResponse(BaseModel): - """ - CancelTransactionResponse - """ # noqa: E501 - success: Optional[StrictBool] = None - __properties: ClassVar[List[str]] = ["success"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CancelTransactionResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CancelTransactionResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "success": obj.get("success") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RCb29sCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDYW5jZWxUcmFuc2FjdGlvblJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENhbmNlbFRyYW5zYWN0aW9uUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHN1Y2Nlc3M6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzdWNjZXNzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDYW5jZWxUcmFuc2FjdGlvblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENhbmNlbFRyYW5zYWN0aW9uUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3VjY2VzcyI6IG9iai5nZXQoInN1Y2Nlc3MiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/chain_descriptor.py b/fireblocks/models/chain_descriptor.py index 9c100eb3..87760d84 100644 --- a/fireblocks/models/chain_descriptor.py +++ b/fireblocks/models/chain_descriptor.py @@ -1,53 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ChainDescriptor(str, Enum): - """ - Protocol identifier for the staking operation. - """ - - """ - allowed enum values - """ - ATOM_COS = 'ATOM_COS' - AXL = 'AXL' - AXL_TEST = 'AXL_TEST' - CELESTIA = 'CELESTIA' - DYDX_DYDX = 'DYDX_DYDX' - ETH = 'ETH' - ETH_TEST6 = 'ETH_TEST6' - ETH_TEST_HOODI = 'ETH_TEST_HOODI' - INJ_INJ = 'INJ_INJ' - MANTRA = 'MANTRA' - MATIC = 'MATIC' - OSMO = 'OSMO' - SOL = 'SOL' - SOL_TEST = 'SOL_TEST' - STETH_ETH = 'STETH_ETH' - STETH_ETH_TEST6_DZFA = 'STETH_ETH_TEST6_DZFA' - STETH_ETH_TEST_HOODI = 'STETH_ETH_TEST_HOODI' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ChainDescriptor from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBDaGFpbkRlc2NyaXB0b3Ioc3RyLCBFbnVtKToKICAgICIiIgogICAgUHJvdG9jb2wgaWRlbnRpZmllciBmb3IgdGhlIHN0YWtpbmcgb3BlcmF0aW9uLgogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIEFUT01fQ09TID0gJ0FUT01fQ09TJwogICAgQVhMID0gJ0FYTCcKICAgIEFYTF9URVNUID0gJ0FYTF9URVNUJwogICAgQ0VMRVNUSUEgPSAnQ0VMRVNUSUEnCiAgICBEWURYX0RZRFggPSAnRFlEWF9EWURYJwogICAgRVRIID0gJ0VUSCcKICAgIEVUSF9URVNUNiA9ICdFVEhfVEVTVDYnCiAgICBFVEhfVEVTVF9IT09ESSA9ICdFVEhfVEVTVF9IT09ESScKICAgIElOSl9JTkogPSAnSU5KX0lOSicKICAgIE1BTlRSQSA9ICdNQU5UUkEnCiAgICBNQVRJQyA9ICdNQVRJQycKICAgIE9TTU8gPSAnT1NNTycKICAgIFNPTCA9ICdTT0wnCiAgICBTT0xfVEVTVCA9ICdTT0xfVEVTVCcKICAgIFNURVRIX0VUSCA9ICdTVEVUSF9FVEgnCiAgICBTVEVUSF9FVEhfVEVTVDZfRFpGQSA9ICdTVEVUSF9FVEhfVEVTVDZfRFpGQScKICAgIFNURVRIX0VUSF9URVNUX0hPT0RJID0gJ1NURVRIX0VUSF9URVNUX0hPT0RJJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENoYWluRGVzY3JpcHRvciBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/chain_info_response.py b/fireblocks/models/chain_info_response.py index 478a3946..225bd22a 100644 --- a/fireblocks/models/chain_info_response.py +++ b/fireblocks/models/chain_info_response.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from fireblocks.models.additional_info import AdditionalInfo -from typing import Optional, Set -from typing_extensions import Self - -class ChainInfoResponse(BaseModel): - """ - ChainInfoResponse - """ # noqa: E501 - chain_descriptor: StrictStr = Field(description="The protocol identifier (e.g. \"ETH\"/\"SOL\").", alias="chainDescriptor") - current_epoch: Union[StrictFloat, StrictInt] = Field(description="The current epoch number of the blockchain network.", alias="currentEpoch") - epoch_elapsed: Union[StrictFloat, StrictInt] = Field(description="The percentage of time that has elapsed within the current epoch, represented as a decimal value between 0 and 1.", alias="epochElapsed") - epoch_duration: Union[StrictFloat, StrictInt] = Field(description="The total duration in milliseconds of a single epoch.", alias="epochDuration") - additional_info: AdditionalInfo = Field(alias="additionalInfo") - last_updated: Union[StrictFloat, StrictInt] = Field(description="timestamp (in milliseconds) of last update time", alias="lastUpdated") - __properties: ClassVar[List[str]] = ["chainDescriptor", "currentEpoch", "epochElapsed", "epochDuration", "additionalInfo", "lastUpdated"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ChainInfoResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of additional_info - if self.additional_info: - _dict['additionalInfo'] = self.additional_info.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ChainInfoResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "chainDescriptor": obj.get("chainDescriptor"), - "currentEpoch": obj.get("currentEpoch"), - "epochElapsed": obj.get("epochElapsed"), - "epochDuration": obj.get("epochDuration"), - "additionalInfo": AdditionalInfo.from_dict(obj["additionalInfo"]) if obj.get("additionalInfo") is not None else None, - "lastUpdated": obj.get("lastUpdated") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZGl0aW9uYWxfaW5mbyBpbXBvcnQgQWRkaXRpb25hbEluZm8KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ2hhaW5JbmZvUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ2hhaW5JbmZvUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGNoYWluX2Rlc2NyaXB0b3I6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgcHJvdG9jb2wgaWRlbnRpZmllciAoZS5nLiBcIkVUSFwiL1wiU09MXCIpLiIsIGFsaWFzPSJjaGFpbkRlc2NyaXB0b3IiKQogICAgY3VycmVudF9lcG9jaDogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGN1cnJlbnQgZXBvY2ggbnVtYmVyIG9mIHRoZSBibG9ja2NoYWluIG5ldHdvcmsuIiwgYWxpYXM9ImN1cnJlbnRFcG9jaCIpCiAgICBlcG9jaF9lbGFwc2VkOiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgcGVyY2VudGFnZSBvZiB0aW1lIHRoYXQgaGFzIGVsYXBzZWQgd2l0aGluIHRoZSBjdXJyZW50IGVwb2NoLCByZXByZXNlbnRlZCBhcyBhIGRlY2ltYWwgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLiIsIGFsaWFzPSJlcG9jaEVsYXBzZWQiKQogICAgZXBvY2hfZHVyYXRpb246IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB0b3RhbCBkdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMgb2YgYSBzaW5nbGUgZXBvY2guIiwgYWxpYXM9ImVwb2NoRHVyYXRpb24iKQogICAgYWRkaXRpb25hbF9pbmZvOiBBZGRpdGlvbmFsSW5mbyA9IEZpZWxkKGFsaWFzPSJhZGRpdGlvbmFsSW5mbyIpCiAgICBsYXN0X3VwZGF0ZWQ6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoZGVzY3JpcHRpb249InRpbWVzdGFtcCAoaW4gbWlsbGlzZWNvbmRzKSBvZiBsYXN0IHVwZGF0ZSB0aW1lIiwgYWxpYXM9Imxhc3RVcGRhdGVkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiY2hhaW5EZXNjcmlwdG9yIiwgImN1cnJlbnRFcG9jaCIsICJlcG9jaEVsYXBzZWQiLCAiZXBvY2hEdXJhdGlvbiIsICJhZGRpdGlvbmFsSW5mbyIsICJsYXN0VXBkYXRlZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ2hhaW5JbmZvUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhZGRpdGlvbmFsX2luZm8KICAgICAgICBpZiBzZWxmLmFkZGl0aW9uYWxfaW5mbzoKICAgICAgICAgICAgX2RpY3RbJ2FkZGl0aW9uYWxJbmZvJ10gPSBzZWxmLmFkZGl0aW9uYWxfaW5mby50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENoYWluSW5mb1Jlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImNoYWluRGVzY3JpcHRvciI6IG9iai5nZXQoImNoYWluRGVzY3JpcHRvciIpLAogICAgICAgICAgICAiY3VycmVudEVwb2NoIjogb2JqLmdldCgiY3VycmVudEVwb2NoIiksCiAgICAgICAgICAgICJlcG9jaEVsYXBzZWQiOiBvYmouZ2V0KCJlcG9jaEVsYXBzZWQiKSwKICAgICAgICAgICAgImVwb2NoRHVyYXRpb24iOiBvYmouZ2V0KCJlcG9jaER1cmF0aW9uIiksCiAgICAgICAgICAgICJhZGRpdGlvbmFsSW5mbyI6IEFkZGl0aW9uYWxJbmZvLmZyb21fZGljdChvYmpbImFkZGl0aW9uYWxJbmZvIl0pIGlmIG9iai5nZXQoImFkZGl0aW9uYWxJbmZvIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibGFzdFVwZGF0ZWQiOiBvYmouZ2V0KCJsYXN0VXBkYXRlZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/channel_dvn_config_with_confirmations.py b/fireblocks/models/channel_dvn_config_with_confirmations.py index da02b5b8..de484320 100644 --- a/fireblocks/models/channel_dvn_config_with_confirmations.py +++ b/fireblocks/models/channel_dvn_config_with_confirmations.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.channel_dvn_config_with_confirmations_receive_config import ChannelDvnConfigWithConfirmationsReceiveConfig -from fireblocks.models.channel_dvn_config_with_confirmations_send_config import ChannelDvnConfigWithConfirmationsSendConfig -from typing import Optional, Set -from typing_extensions import Self - -class ChannelDvnConfigWithConfirmations(BaseModel): - """ - ChannelDvnConfigWithConfirmations - """ # noqa: E501 - send_config: Optional[ChannelDvnConfigWithConfirmationsSendConfig] = Field(default=None, alias="sendConfig") - receive_config: Optional[ChannelDvnConfigWithConfirmationsReceiveConfig] = Field(default=None, alias="receiveConfig") - __properties: ClassVar[List[str]] = ["sendConfig", "receiveConfig"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ChannelDvnConfigWithConfirmations from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of send_config - if self.send_config: - _dict['sendConfig'] = self.send_config.to_dict() - # override the default output from pydantic by calling `to_dict()` of receive_config - if self.receive_config: - _dict['receiveConfig'] = self.receive_config.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ChannelDvnConfigWithConfirmations from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "sendConfig": ChannelDvnConfigWithConfirmationsSendConfig.from_dict(obj["sendConfig"]) if obj.get("sendConfig") is not None else None, - "receiveConfig": ChannelDvnConfigWithConfirmationsReceiveConfig.from_dict(obj["receiveConfig"]) if obj.get("receiveConfig") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jaGFubmVsX2R2bl9jb25maWdfd2l0aF9jb25maXJtYXRpb25zX3JlY2VpdmVfY29uZmlnIGltcG9ydCBDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNSZWNlaXZlQ29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY2hhbm5lbF9kdm5fY29uZmlnX3dpdGhfY29uZmlybWF0aW9uc19zZW5kX2NvbmZpZyBpbXBvcnQgQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zU2VuZENvbmZpZwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnMoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzZW5kX2NvbmZpZzogT3B0aW9uYWxbQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zU2VuZENvbmZpZ10gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJzZW5kQ29uZmlnIikKICAgIHJlY2VpdmVfY29uZmlnOiBPcHRpb25hbFtDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNSZWNlaXZlQ29uZmlnXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InJlY2VpdmVDb25maWciKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzZW5kQ29uZmlnIiwgInJlY2VpdmVDb25maWciXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9ucyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHNlbmRfY29uZmlnCiAgICAgICAgaWYgc2VsZi5zZW5kX2NvbmZpZzoKICAgICAgICAgICAgX2RpY3RbJ3NlbmRDb25maWcnXSA9IHNlbGYuc2VuZF9jb25maWcudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHJlY2VpdmVfY29uZmlnCiAgICAgICAgaWYgc2VsZi5yZWNlaXZlX2NvbmZpZzoKICAgICAgICAgICAgX2RpY3RbJ3JlY2VpdmVDb25maWcnXSA9IHNlbGYucmVjZWl2ZV9jb25maWcudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic2VuZENvbmZpZyI6IENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1NlbmRDb25maWcuZnJvbV9kaWN0KG9ialsic2VuZENvbmZpZyJdKSBpZiBvYmouZ2V0KCJzZW5kQ29uZmlnIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAicmVjZWl2ZUNvbmZpZyI6IENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1JlY2VpdmVDb25maWcuZnJvbV9kaWN0KG9ialsicmVjZWl2ZUNvbmZpZyJdKSBpZiBvYmouZ2V0KCJyZWNlaXZlQ29uZmlnIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/channel_dvn_config_with_confirmations_receive_config.py b/fireblocks/models/channel_dvn_config_with_confirmations_receive_config.py index 453a8345..d819819e 100644 --- a/fireblocks/models/channel_dvn_config_with_confirmations_receive_config.py +++ b/fireblocks/models/channel_dvn_config_with_confirmations_receive_config.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class ChannelDvnConfigWithConfirmationsReceiveConfig(BaseModel): - """ - ChannelDvnConfigWithConfirmationsReceiveConfig - """ # noqa: E501 - dvn_addresses: Annotated[List[StrictStr], Field(min_length=1)] = Field(description="Array of required DVN Ethereum addresses that sign ULN messages.", alias="dvnAddresses") - optional_dvn_addresses: Optional[List[StrictStr]] = Field(default=None, description="Array of optional DVN Ethereum addresses that sign ULN messages.", alias="optionalDVNAddresses") - optional_threshold: Union[StrictFloat, StrictInt] = Field(description="Minimum number of DVN signatures required (M-of-N).", alias="optionalThreshold") - confirmations: Union[StrictFloat, StrictInt] = Field(description="Number of block confirmations required") - __properties: ClassVar[List[str]] = ["dvnAddresses", "optionalDVNAddresses", "optionalThreshold", "confirmations"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ChannelDvnConfigWithConfirmationsReceiveConfig from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ChannelDvnConfigWithConfirmationsReceiveConfig from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "dvnAddresses": obj.get("dvnAddresses"), - "optionalDVNAddresses": obj.get("optionalDVNAddresses"), - "optionalThreshold": obj.get("optionalThreshold"), - "confirmations": obj.get("confirmations") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1JlY2VpdmVDb25maWcoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zUmVjZWl2ZUNvbmZpZwogICAgIiIiICMgbm9xYTogRTUwMQogICAgZHZuX2FkZHJlc3NlczogQW5ub3RhdGVkW0xpc3RbU3RyaWN0U3RyXSwgRmllbGQobWluX2xlbmd0aD0xKV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iQXJyYXkgb2YgcmVxdWlyZWQgRFZOIEV0aGVyZXVtIGFkZHJlc3NlcyB0aGF0IHNpZ24gVUxOIG1lc3NhZ2VzLiIsIGFsaWFzPSJkdm5BZGRyZXNzZXMiKQogICAgb3B0aW9uYWxfZHZuX2FkZHJlc3NlczogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFycmF5IG9mIG9wdGlvbmFsIERWTiBFdGhlcmV1bSBhZGRyZXNzZXMgdGhhdCBzaWduIFVMTiBtZXNzYWdlcy4iLCBhbGlhcz0ib3B0aW9uYWxEVk5BZGRyZXNzZXMiKQogICAgb3B0aW9uYWxfdGhyZXNob2xkOiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJNaW5pbXVtIG51bWJlciBvZiBEVk4gc2lnbmF0dXJlcyByZXF1aXJlZCAoTS1vZi1OKS4iLCBhbGlhcz0ib3B0aW9uYWxUaHJlc2hvbGQiKQogICAgY29uZmlybWF0aW9uczogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iTnVtYmVyIG9mIGJsb2NrIGNvbmZpcm1hdGlvbnMgcmVxdWlyZWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJkdm5BZGRyZXNzZXMiLCAib3B0aW9uYWxEVk5BZGRyZXNzZXMiLCAib3B0aW9uYWxUaHJlc2hvbGQiLCAiY29uZmlybWF0aW9ucyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zUmVjZWl2ZUNvbmZpZyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNSZWNlaXZlQ29uZmlnIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImR2bkFkZHJlc3NlcyI6IG9iai5nZXQoImR2bkFkZHJlc3NlcyIpLAogICAgICAgICAgICAib3B0aW9uYWxEVk5BZGRyZXNzZXMiOiBvYmouZ2V0KCJvcHRpb25hbERWTkFkZHJlc3NlcyIpLAogICAgICAgICAgICAib3B0aW9uYWxUaHJlc2hvbGQiOiBvYmouZ2V0KCJvcHRpb25hbFRocmVzaG9sZCIpLAogICAgICAgICAgICAiY29uZmlybWF0aW9ucyI6IG9iai5nZXQoImNvbmZpcm1hdGlvbnMiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/channel_dvn_config_with_confirmations_send_config.py b/fireblocks/models/channel_dvn_config_with_confirmations_send_config.py index d7fc10a7..b55644bc 100644 --- a/fireblocks/models/channel_dvn_config_with_confirmations_send_config.py +++ b/fireblocks/models/channel_dvn_config_with_confirmations_send_config.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class ChannelDvnConfigWithConfirmationsSendConfig(BaseModel): - """ - ChannelDvnConfigWithConfirmationsSendConfig - """ # noqa: E501 - dvn_addresses: Annotated[List[StrictStr], Field(min_length=1)] = Field(description="Array of required DVN Ethereum addresses that sign ULN messages.", alias="dvnAddresses") - optional_dvn_addresses: Optional[List[StrictStr]] = Field(default=None, description="Array of optional DVN Ethereum addresses that sign ULN messages.", alias="optionalDVNAddresses") - optional_threshold: Union[StrictFloat, StrictInt] = Field(description="Minimum number of DVN signatures required (M-of-N).", alias="optionalThreshold") - confirmations: Union[StrictFloat, StrictInt] = Field(description="Number of block confirmations required") - __properties: ClassVar[List[str]] = ["dvnAddresses", "optionalDVNAddresses", "optionalThreshold", "confirmations"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ChannelDvnConfigWithConfirmationsSendConfig from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ChannelDvnConfigWithConfirmationsSendConfig from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "dvnAddresses": obj.get("dvnAddresses"), - "optionalDVNAddresses": obj.get("optionalDVNAddresses"), - "optionalThreshold": obj.get("optionalThreshold"), - "confirmations": obj.get("confirmations") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1NlbmRDb25maWcoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zU2VuZENvbmZpZwogICAgIiIiICMgbm9xYTogRTUwMQogICAgZHZuX2FkZHJlc3NlczogQW5ub3RhdGVkW0xpc3RbU3RyaWN0U3RyXSwgRmllbGQobWluX2xlbmd0aD0xKV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iQXJyYXkgb2YgcmVxdWlyZWQgRFZOIEV0aGVyZXVtIGFkZHJlc3NlcyB0aGF0IHNpZ24gVUxOIG1lc3NhZ2VzLiIsIGFsaWFzPSJkdm5BZGRyZXNzZXMiKQogICAgb3B0aW9uYWxfZHZuX2FkZHJlc3NlczogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFycmF5IG9mIG9wdGlvbmFsIERWTiBFdGhlcmV1bSBhZGRyZXNzZXMgdGhhdCBzaWduIFVMTiBtZXNzYWdlcy4iLCBhbGlhcz0ib3B0aW9uYWxEVk5BZGRyZXNzZXMiKQogICAgb3B0aW9uYWxfdGhyZXNob2xkOiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJNaW5pbXVtIG51bWJlciBvZiBEVk4gc2lnbmF0dXJlcyByZXF1aXJlZCAoTS1vZi1OKS4iLCBhbGlhcz0ib3B0aW9uYWxUaHJlc2hvbGQiKQogICAgY29uZmlybWF0aW9uczogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iTnVtYmVyIG9mIGJsb2NrIGNvbmZpcm1hdGlvbnMgcmVxdWlyZWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJkdm5BZGRyZXNzZXMiLCAib3B0aW9uYWxEVk5BZGRyZXNzZXMiLCAib3B0aW9uYWxUaHJlc2hvbGQiLCAiY29uZmlybWF0aW9ucyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zU2VuZENvbmZpZyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNTZW5kQ29uZmlnIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImR2bkFkZHJlc3NlcyI6IG9iai5nZXQoImR2bkFkZHJlc3NlcyIpLAogICAgICAgICAgICAib3B0aW9uYWxEVk5BZGRyZXNzZXMiOiBvYmouZ2V0KCJvcHRpb25hbERWTkFkZHJlc3NlcyIpLAogICAgICAgICAgICAib3B0aW9uYWxUaHJlc2hvbGQiOiBvYmouZ2V0KCJvcHRpb25hbFRocmVzaG9sZCIpLAogICAgICAgICAgICAiY29uZmlybWF0aW9ucyI6IG9iai5nZXQoImNvbmZpcm1hdGlvbnMiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/chaps_address.py b/fireblocks/models/chaps_address.py index f1f0e551..0ff8bea2 100644 --- a/fireblocks/models/chaps_address.py +++ b/fireblocks/models/chaps_address.py @@ -1,117 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from fireblocks.models.account_holder_details import AccountHolderDetails -from typing import Optional, Set -from typing_extensions import Self - -class ChapsAddress(BaseModel): - """ - ChapsAddress - """ # noqa: E501 - account_holder: AccountHolderDetails = Field(alias="accountHolder") - sort_code: StrictStr = Field(description="UK bank sort code (format XX-XX-XX)", alias="sortCode") - account_number: StrictStr = Field(description="UK bank account number", alias="accountNumber") - bank_name: Optional[StrictStr] = Field(default=None, description="Name of the bank", alias="bankName") - bank_account_country: Annotated[str, Field(strict=True)] = Field(description="CHAPS bank account holder name", alias="bankAccountCountry") - bank_account_holder_name: Annotated[str, Field(strict=True)] = Field(description="CHAPS bank account holder name", alias="bankAccountHolderName") - __properties: ClassVar[List[str]] = ["accountHolder", "sortCode", "accountNumber", "bankName", "bankAccountCountry", "bankAccountHolderName"] - - @field_validator('bank_account_country') - def bank_account_country_validate_regular_expression(cls, value): - """Validates the regular expression""" - if not re.match(r"^\d{2}$", value): - raise ValueError(r"must validate the regular expression /^\d{2}$/") - return value - - @field_validator('bank_account_holder_name') - def bank_account_holder_name_validate_regular_expression(cls, value): - """Validates the regular expression""" - if not re.match(r"^(?=.{1,140}$)[^\s]+(\s+[^\s]+)*$", value): - raise ValueError(r"must validate the regular expression /^(?=.{1,140}$)[^\s]+(\s+[^\s]+)*$/") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ChapsAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of account_holder - if self.account_holder: - _dict['accountHolder'] = self.account_holder.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ChapsAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None, - "sortCode": obj.get("sortCode"), - "accountNumber": obj.get("accountNumber"), - "bankName": obj.get("bankName"), - "bankAccountCountry": obj.get("bankAccountCountry"), - "bankAccountHolderName": obj.get("bankAccountHolderName") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaG9sZGVyX2RldGFpbHMgaW1wb3J0IEFjY291bnRIb2xkZXJEZXRhaWxzCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENoYXBzQWRkcmVzcyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDaGFwc0FkZHJlc3MKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFjY291bnRfaG9sZGVyOiBBY2NvdW50SG9sZGVyRGV0YWlscyA9IEZpZWxkKGFsaWFzPSJhY2NvdW50SG9sZGVyIikKICAgIHNvcnRfY29kZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlVLIGJhbmsgc29ydCBjb2RlIChmb3JtYXQgWFgtWFgtWFgpIiwgYWxpYXM9InNvcnRDb2RlIikKICAgIGFjY291bnRfbnVtYmVyOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVUsgYmFuayBhY2NvdW50IG51bWJlciIsIGFsaWFzPSJhY2NvdW50TnVtYmVyIikKICAgIGJhbmtfbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik5hbWUgb2YgdGhlIGJhbmsiLCBhbGlhcz0iYmFua05hbWUiKQogICAgYmFua19hY2NvdW50X2NvdW50cnk6IEFubm90YXRlZFtzdHIsIEZpZWxkKHN0cmljdD1UcnVlKV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iQ0hBUFMgYmFuayBhY2NvdW50IGhvbGRlciBuYW1lIiwgYWxpYXM9ImJhbmtBY2NvdW50Q291bnRyeSIpCiAgICBiYW5rX2FjY291bnRfaG9sZGVyX25hbWU6IEFubm90YXRlZFtzdHIsIEZpZWxkKHN0cmljdD1UcnVlKV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iQ0hBUFMgYmFuayBhY2NvdW50IGhvbGRlciBuYW1lIiwgYWxpYXM9ImJhbmtBY2NvdW50SG9sZGVyTmFtZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFjY291bnRIb2xkZXIiLCAic29ydENvZGUiLCAiYWNjb3VudE51bWJlciIsICJiYW5rTmFtZSIsICJiYW5rQWNjb3VudENvdW50cnkiLCAiYmFua0FjY291bnRIb2xkZXJOYW1lIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdiYW5rX2FjY291bnRfY291bnRyeScpCiAgICBkZWYgYmFua19hY2NvdW50X2NvdW50cnlfdmFsaWRhdGVfcmVndWxhcl9leHByZXNzaW9uKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgcmVndWxhciBleHByZXNzaW9uIiIiCiAgICAgICAgaWYgbm90IHJlLm1hdGNoKHIiXlxkezJ9JCIsIHZhbHVlKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihyIm11c3QgdmFsaWRhdGUgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiAvXlxkezJ9JC8iKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2JhbmtfYWNjb3VudF9ob2xkZXJfbmFtZScpCiAgICBkZWYgYmFua19hY2NvdW50X2hvbGRlcl9uYW1lX3ZhbGlkYXRlX3JlZ3VsYXJfZXhwcmVzc2lvbihjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiIiIgogICAgICAgIGlmIG5vdCByZS5tYXRjaChyIl4oPz0uezEsMTQwfSQpW15cc10rKFxzK1teXHNdKykqJCIsIHZhbHVlKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihyIm11c3QgdmFsaWRhdGUgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiAvXig/PS57MSwxNDB9JClbXlxzXSsoXHMrW15cc10rKSokLyIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ2hhcHNBZGRyZXNzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYWNjb3VudF9ob2xkZXIKICAgICAgICBpZiBzZWxmLmFjY291bnRfaG9sZGVyOgogICAgICAgICAgICBfZGljdFsnYWNjb3VudEhvbGRlciddID0gc2VsZi5hY2NvdW50X2hvbGRlci50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENoYXBzQWRkcmVzcyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyIjogQWNjb3VudEhvbGRlckRldGFpbHMuZnJvbV9kaWN0KG9ialsiYWNjb3VudEhvbGRlciJdKSBpZiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAic29ydENvZGUiOiBvYmouZ2V0KCJzb3J0Q29kZSIpLAogICAgICAgICAgICAiYWNjb3VudE51bWJlciI6IG9iai5nZXQoImFjY291bnROdW1iZXIiKSwKICAgICAgICAgICAgImJhbmtOYW1lIjogb2JqLmdldCgiYmFua05hbWUiKSwKICAgICAgICAgICAgImJhbmtBY2NvdW50Q291bnRyeSI6IG9iai5nZXQoImJhbmtBY2NvdW50Q291bnRyeSIpLAogICAgICAgICAgICAiYmFua0FjY291bnRIb2xkZXJOYW1lIjogb2JqLmdldCgiYmFua0FjY291bnRIb2xkZXJOYW1lIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/chaps_destination.py b/fireblocks/models/chaps_destination.py index d49cea6d..b34edacf 100644 --- a/fireblocks/models/chaps_destination.py +++ b/fireblocks/models/chaps_destination.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from fireblocks.models.chaps_address import ChapsAddress -from typing import Optional, Set -from typing_extensions import Self - -class ChapsDestination(BaseModel): - """ - ChapsDestination - """ # noqa: E501 - type: StrictStr - address: ChapsAddress - __properties: ClassVar[List[str]] = ["type", "address"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['CHAPS']): - raise ValueError("must be one of enum values ('CHAPS')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ChapsDestination from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of address - if self.address: - _dict['address'] = self.address.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ChapsDestination from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "address": ChapsAddress.from_dict(obj["address"]) if obj.get("address") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYXBzX2FkZHJlc3MgaW1wb3J0IENoYXBzQWRkcmVzcwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDaGFwc0Rlc3RpbmF0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENoYXBzRGVzdGluYXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR5cGU6IFN0cmljdFN0cgogICAgYWRkcmVzczogQ2hhcHNBZGRyZXNzCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiLCAiYWRkcmVzcyJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigndHlwZScpCiAgICBkZWYgdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydDSEFQUyddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdDSEFQUycpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDaGFwc0Rlc3RpbmF0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYWRkcmVzcwogICAgICAgIGlmIHNlbGYuYWRkcmVzczoKICAgICAgICAgICAgX2RpY3RbJ2FkZHJlc3MnXSA9IHNlbGYuYWRkcmVzcy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENoYXBzRGVzdGluYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImFkZHJlc3MiOiBDaGFwc0FkZHJlc3MuZnJvbV9kaWN0KG9ialsiYWRkcmVzcyJdKSBpZiBvYmouZ2V0KCJhZGRyZXNzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/chaps_payment_info.py b/fireblocks/models/chaps_payment_info.py index 9bba3de0..75bd76be 100644 --- a/fireblocks/models/chaps_payment_info.py +++ b/fireblocks/models/chaps_payment_info.py @@ -1,149 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class ChapsPaymentInfo(BaseModel): - """ - CHAPS payment information for UK pound sterling same-day transfers - """ # noqa: E501 - rail: StrictStr = Field(description="The payment rail type for CHAPS transfers") - addressing_system: StrictStr = Field(description="The addressing system used for CHAPS transfers", alias="addressingSystem") - account_holder_given_name: StrictStr = Field(description="The given name (first name) of the account holder", alias="accountHolderGivenName") - account_holder_surname: StrictStr = Field(description="The surname (last name) of the account holder", alias="accountHolderSurname") - country: StrictStr = Field(description="The country for the transfer (ISO 3166-1 alpha-2 code)") - sort_code: Annotated[str, Field(strict=True)] = Field(description="UK bank sort code (format XX-XX-XX)", alias="sortCode") - account_number: Annotated[str, Field(strict=True)] = Field(description="UK bank account number", alias="accountNumber") - bank_name: Optional[StrictStr] = Field(default=None, description="The name of the bank", alias="bankName") - bank_account_country: Annotated[str, Field(strict=True)] = Field(description="CHAPS bank account holder name", alias="bankAccountCountry") - bank_account_holder_name: Annotated[str, Field(strict=True)] = Field(description="CHAPS bank account holder name", alias="bankAccountHolderName") - __properties: ClassVar[List[str]] = ["rail", "addressingSystem", "accountHolderGivenName", "accountHolderSurname", "country", "sortCode", "accountNumber", "bankName", "bankAccountCountry", "bankAccountHolderName"] - - @field_validator('rail') - def rail_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['CHAPS']): - raise ValueError("must be one of enum values ('CHAPS')") - return value - - @field_validator('addressing_system') - def addressing_system_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['CHAPS']): - raise ValueError("must be one of enum values ('CHAPS')") - return value - - @field_validator('sort_code') - def sort_code_validate_regular_expression(cls, value): - """Validates the regular expression""" - if not re.match(r"^\d{6}$", value): - raise ValueError(r"must validate the regular expression /^\d{6}$/") - return value - - @field_validator('account_number') - def account_number_validate_regular_expression(cls, value): - """Validates the regular expression""" - if not re.match(r"^\d{8}$", value): - raise ValueError(r"must validate the regular expression /^\d{8}$/") - return value - - @field_validator('bank_account_country') - def bank_account_country_validate_regular_expression(cls, value): - """Validates the regular expression""" - if not re.match(r"^\d{2}$", value): - raise ValueError(r"must validate the regular expression /^\d{2}$/") - return value - - @field_validator('bank_account_holder_name') - def bank_account_holder_name_validate_regular_expression(cls, value): - """Validates the regular expression""" - if not re.match(r"^(?=.{1,140}$)[^\s]+(\s+[^\s]+)*$", value): - raise ValueError(r"must validate the regular expression /^(?=.{1,140}$)[^\s]+(\s+[^\s]+)*$/") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ChapsPaymentInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ChapsPaymentInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "rail": obj.get("rail"), - "addressingSystem": obj.get("addressingSystem"), - "accountHolderGivenName": obj.get("accountHolderGivenName"), - "accountHolderSurname": obj.get("accountHolderSurname"), - "country": obj.get("country"), - "sortCode": obj.get("sortCode"), - "accountNumber": obj.get("accountNumber"), - "bankName": obj.get("bankName"), - "bankAccountCountry": obj.get("bankAccountCountry"), - "bankAccountHolderName": obj.get("bankAccountHolderName") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDaGFwc1BheW1lbnRJbmZvKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENIQVBTIHBheW1lbnQgaW5mb3JtYXRpb24gZm9yIFVLIHBvdW5kIHN0ZXJsaW5nIHNhbWUtZGF5IHRyYW5zZmVycwogICAgIiIiICMgbm9xYTogRTUwMQogICAgcmFpbDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBwYXltZW50IHJhaWwgdHlwZSBmb3IgQ0hBUFMgdHJhbnNmZXJzIikKICAgIGFkZHJlc3Npbmdfc3lzdGVtOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGFkZHJlc3Npbmcgc3lzdGVtIHVzZWQgZm9yIENIQVBTIHRyYW5zZmVycyIsIGFsaWFzPSJhZGRyZXNzaW5nU3lzdGVtIikKICAgIGFjY291bnRfaG9sZGVyX2dpdmVuX25hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZ2l2ZW4gbmFtZSAoZmlyc3QgbmFtZSkgb2YgdGhlIGFjY291bnQgaG9sZGVyIiwgYWxpYXM9ImFjY291bnRIb2xkZXJHaXZlbk5hbWUiKQogICAgYWNjb3VudF9ob2xkZXJfc3VybmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBzdXJuYW1lIChsYXN0IG5hbWUpIG9mIHRoZSBhY2NvdW50IGhvbGRlciIsIGFsaWFzPSJhY2NvdW50SG9sZGVyU3VybmFtZSIpCiAgICBjb3VudHJ5OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNvdW50cnkgZm9yIHRoZSB0cmFuc2ZlciAoSVNPIDMxNjYtMSBhbHBoYS0yIGNvZGUpIikKICAgIHNvcnRfY29kZTogQW5ub3RhdGVkW3N0ciwgRmllbGQoc3RyaWN0PVRydWUpXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJVSyBiYW5rIHNvcnQgY29kZSAoZm9ybWF0IFhYLVhYLVhYKSIsIGFsaWFzPSJzb3J0Q29kZSIpCiAgICBhY2NvdW50X251bWJlcjogQW5ub3RhdGVkW3N0ciwgRmllbGQoc3RyaWN0PVRydWUpXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJVSyBiYW5rIGFjY291bnQgbnVtYmVyIiwgYWxpYXM9ImFjY291bnROdW1iZXIiKQogICAgYmFua19uYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIG5hbWUgb2YgdGhlIGJhbmsiLCBhbGlhcz0iYmFua05hbWUiKQogICAgYmFua19hY2NvdW50X2NvdW50cnk6IEFubm90YXRlZFtzdHIsIEZpZWxkKHN0cmljdD1UcnVlKV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iQ0hBUFMgYmFuayBhY2NvdW50IGhvbGRlciBuYW1lIiwgYWxpYXM9ImJhbmtBY2NvdW50Q291bnRyeSIpCiAgICBiYW5rX2FjY291bnRfaG9sZGVyX25hbWU6IEFubm90YXRlZFtzdHIsIEZpZWxkKHN0cmljdD1UcnVlKV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iQ0hBUFMgYmFuayBhY2NvdW50IGhvbGRlciBuYW1lIiwgYWxpYXM9ImJhbmtBY2NvdW50SG9sZGVyTmFtZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInJhaWwiLCAiYWRkcmVzc2luZ1N5c3RlbSIsICJhY2NvdW50SG9sZGVyR2l2ZW5OYW1lIiwgImFjY291bnRIb2xkZXJTdXJuYW1lIiwgImNvdW50cnkiLCAic29ydENvZGUiLCAiYWNjb3VudE51bWJlciIsICJiYW5rTmFtZSIsICJiYW5rQWNjb3VudENvdW50cnkiLCAiYmFua0FjY291bnRIb2xkZXJOYW1lIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdyYWlsJykKICAgIGRlZiByYWlsX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0NIQVBTJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0NIQVBTJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FkZHJlc3Npbmdfc3lzdGVtJykKICAgIGRlZiBhZGRyZXNzaW5nX3N5c3RlbV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydDSEFQUyddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdDSEFQUycpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdzb3J0X2NvZGUnKQogICAgZGVmIHNvcnRfY29kZV92YWxpZGF0ZV9yZWd1bGFyX2V4cHJlc3Npb24oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSByZWd1bGFyIGV4cHJlc3Npb24iIiIKICAgICAgICBpZiBub3QgcmUubWF0Y2gociJeXGR7Nn0kIiwgdmFsdWUpOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKHIibXVzdCB2YWxpZGF0ZSB0aGUgcmVndWxhciBleHByZXNzaW9uIC9eXGR7Nn0kLyIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWNjb3VudF9udW1iZXInKQogICAgZGVmIGFjY291bnRfbnVtYmVyX3ZhbGlkYXRlX3JlZ3VsYXJfZXhwcmVzc2lvbihjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiIiIgogICAgICAgIGlmIG5vdCByZS5tYXRjaChyIl5cZHs4fSQiLCB2YWx1ZSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IociJtdXN0IHZhbGlkYXRlIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gL15cZHs4fSQvIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdiYW5rX2FjY291bnRfY291bnRyeScpCiAgICBkZWYgYmFua19hY2NvdW50X2NvdW50cnlfdmFsaWRhdGVfcmVndWxhcl9leHByZXNzaW9uKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgcmVndWxhciBleHByZXNzaW9uIiIiCiAgICAgICAgaWYgbm90IHJlLm1hdGNoKHIiXlxkezJ9JCIsIHZhbHVlKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihyIm11c3QgdmFsaWRhdGUgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiAvXlxkezJ9JC8iKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2JhbmtfYWNjb3VudF9ob2xkZXJfbmFtZScpCiAgICBkZWYgYmFua19hY2NvdW50X2hvbGRlcl9uYW1lX3ZhbGlkYXRlX3JlZ3VsYXJfZXhwcmVzc2lvbihjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiIiIgogICAgICAgIGlmIG5vdCByZS5tYXRjaChyIl4oPz0uezEsMTQwfSQpW15cc10rKFxzK1teXHNdKykqJCIsIHZhbHVlKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihyIm11c3QgdmFsaWRhdGUgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiAvXig/PS57MSwxNDB9JClbXlxzXSsoXHMrW15cc10rKSokLyIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ2hhcHNQYXltZW50SW5mbyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDaGFwc1BheW1lbnRJbmZvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInJhaWwiOiBvYmouZ2V0KCJyYWlsIiksCiAgICAgICAgICAgICJhZGRyZXNzaW5nU3lzdGVtIjogb2JqLmdldCgiYWRkcmVzc2luZ1N5c3RlbSIpLAogICAgICAgICAgICAiYWNjb3VudEhvbGRlckdpdmVuTmFtZSI6IG9iai5nZXQoImFjY291bnRIb2xkZXJHaXZlbk5hbWUiKSwKICAgICAgICAgICAgImFjY291bnRIb2xkZXJTdXJuYW1lIjogb2JqLmdldCgiYWNjb3VudEhvbGRlclN1cm5hbWUiKSwKICAgICAgICAgICAgImNvdW50cnkiOiBvYmouZ2V0KCJjb3VudHJ5IiksCiAgICAgICAgICAgICJzb3J0Q29kZSI6IG9iai5nZXQoInNvcnRDb2RlIiksCiAgICAgICAgICAgICJhY2NvdW50TnVtYmVyIjogb2JqLmdldCgiYWNjb3VudE51bWJlciIpLAogICAgICAgICAgICAiYmFua05hbWUiOiBvYmouZ2V0KCJiYW5rTmFtZSIpLAogICAgICAgICAgICAiYmFua0FjY291bnRDb3VudHJ5Ijogb2JqLmdldCgiYmFua0FjY291bnRDb3VudHJ5IiksCiAgICAgICAgICAgICJiYW5rQWNjb3VudEhvbGRlck5hbWUiOiBvYmouZ2V0KCJiYW5rQWNjb3VudEhvbGRlck5hbWUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/claim_rewards_request.py b/fireblocks/models/claim_rewards_request.py index bbf98e25..f55a1344 100644 --- a/fireblocks/models/claim_rewards_request.py +++ b/fireblocks/models/claim_rewards_request.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.fee_level import FeeLevel -from typing import Optional, Set -from typing_extensions import Self - -class ClaimRewardsRequest(BaseModel): - """ - ClaimRewardsRequest - """ # noqa: E501 - id: StrictStr = Field(description="id of position to withdraw rewards from") - fee: Optional[StrictStr] = Field(default=None, description="Represents the fee for a transaction, which can be specified as a percentage value. Only one of fee/feeLevel is required.") - fee_level: Optional[FeeLevel] = Field(default=None, alias="feeLevel") - tx_note: Optional[StrictStr] = Field(default=None, description="The note to associate with the transactions.", alias="txNote") - __properties: ClassVar[List[str]] = ["id", "fee", "feeLevel", "txNote"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ClaimRewardsRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ClaimRewardsRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "fee": obj.get("fee"), - "feeLevel": obj.get("feeLevel"), - "txNote": obj.get("txNote") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZV9sZXZlbCBpbXBvcnQgRmVlTGV2ZWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ2xhaW1SZXdhcmRzUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDbGFpbVJld2FyZHNSZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249ImlkIG9mIHBvc2l0aW9uIHRvIHdpdGhkcmF3IHJld2FyZHMgZnJvbSIpCiAgICBmZWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSZXByZXNlbnRzIHRoZSBmZWUgZm9yIGEgdHJhbnNhY3Rpb24sIHdoaWNoIGNhbiBiZSBzcGVjaWZpZWQgYXMgYSBwZXJjZW50YWdlIHZhbHVlLiBPbmx5IG9uZSBvZiBmZWUvZmVlTGV2ZWwgaXMgcmVxdWlyZWQuIikKICAgIGZlZV9sZXZlbDogT3B0aW9uYWxbRmVlTGV2ZWxdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZmVlTGV2ZWwiKQogICAgdHhfbm90ZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBub3RlIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSB0cmFuc2FjdGlvbnMuIiwgYWxpYXM9InR4Tm90ZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgImZlZSIsICJmZWVMZXZlbCIsICJ0eE5vdGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENsYWltUmV3YXJkc1JlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ2xhaW1SZXdhcmRzUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJmZWUiOiBvYmouZ2V0KCJmZWUiKSwKICAgICAgICAgICAgImZlZUxldmVsIjogb2JqLmdldCgiZmVlTGV2ZWwiKSwKICAgICAgICAgICAgInR4Tm90ZSI6IG9iai5nZXQoInR4Tm90ZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/collection_burn_request_dto.py b/fireblocks/models/collection_burn_request_dto.py index b02bb962..cd454a51 100644 --- a/fireblocks/models/collection_burn_request_dto.py +++ b/fireblocks/models/collection_burn_request_dto.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class CollectionBurnRequestDto(BaseModel): - """ - CollectionBurnRequestDto - """ # noqa: E501 - vault_account_id: StrictStr = Field(description="The id of the vault account that initiates the burn function", alias="vaultAccountId") - token_id: StrictStr = Field(description="The token id", alias="tokenId") - amount: Optional[StrictStr] = Field(default=None, description="For ERC721, amount is optional or should always be 1 and for ERC1155, amount should be 1 or greater") - external_id: Optional[StrictStr] = Field(default=None, description="External id that can be used to identify the transaction in your system. The unique identifier of the transaction outside of Fireblocks with max length of 255 characters", alias="externalId") - __properties: ClassVar[List[str]] = ["vaultAccountId", "tokenId", "amount", "externalId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CollectionBurnRequestDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CollectionBurnRequestDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "vaultAccountId": obj.get("vaultAccountId"), - "tokenId": obj.get("tokenId"), - "amount": obj.get("amount"), - "externalId": obj.get("externalId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb2xsZWN0aW9uQnVyblJlcXVlc3REdG8oQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29sbGVjdGlvbkJ1cm5SZXF1ZXN0RHRvCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB2YXVsdF9hY2NvdW50X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGlkIG9mIHRoZSB2YXVsdCBhY2NvdW50IHRoYXQgaW5pdGlhdGVzIHRoZSBidXJuIGZ1bmN0aW9uIiwgYWxpYXM9InZhdWx0QWNjb3VudElkIikKICAgIHRva2VuX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHRva2VuIGlkIiwgYWxpYXM9InRva2VuSWQiKQogICAgYW1vdW50OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRm9yIEVSQzcyMSwgYW1vdW50IGlzIG9wdGlvbmFsIG9yIHNob3VsZCBhbHdheXMgYmUgMSBhbmQgZm9yIEVSQzExNTUsIGFtb3VudCBzaG91bGQgYmUgMSBvciBncmVhdGVyIikKICAgIGV4dGVybmFsX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRXh0ZXJuYWwgaWQgdGhhdCBjYW4gYmUgdXNlZCB0byBpZGVudGlmeSB0aGUgdHJhbnNhY3Rpb24gaW4geW91ciBzeXN0ZW0uIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgdHJhbnNhY3Rpb24gb3V0c2lkZSBvZiBGaXJlYmxvY2tzIHdpdGggbWF4IGxlbmd0aCBvZiAyNTUgY2hhcmFjdGVycyIsIGFsaWFzPSJleHRlcm5hbElkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidmF1bHRBY2NvdW50SWQiLCAidG9rZW5JZCIsICJhbW91bnQiLCAiZXh0ZXJuYWxJZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29sbGVjdGlvbkJ1cm5SZXF1ZXN0RHRvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbGxlY3Rpb25CdXJuUmVxdWVzdER0byBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ2YXVsdEFjY291bnRJZCI6IG9iai5nZXQoInZhdWx0QWNjb3VudElkIiksCiAgICAgICAgICAgICJ0b2tlbklkIjogb2JqLmdldCgidG9rZW5JZCIpLAogICAgICAgICAgICAiYW1vdW50Ijogb2JqLmdldCgiYW1vdW50IiksCiAgICAgICAgICAgICJleHRlcm5hbElkIjogb2JqLmdldCgiZXh0ZXJuYWxJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/collection_burn_response_dto.py b/fireblocks/models/collection_burn_response_dto.py index 9bf84da1..5e9e8d99 100644 --- a/fireblocks/models/collection_burn_response_dto.py +++ b/fireblocks/models/collection_burn_response_dto.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class CollectionBurnResponseDto(BaseModel): - """ - CollectionBurnResponseDto - """ # noqa: E501 - tx_id: StrictStr = Field(description="Transaction Id for the burn operation", alias="txId") - __properties: ClassVar[List[str]] = ["txId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CollectionBurnResponseDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CollectionBurnResponseDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "txId": obj.get("txId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENvbGxlY3Rpb25CdXJuUmVzcG9uc2VEdG8oQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29sbGVjdGlvbkJ1cm5SZXNwb25zZUR0bwogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHhfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUcmFuc2FjdGlvbiBJZCBmb3IgdGhlIGJ1cm4gb3BlcmF0aW9uIiwgYWxpYXM9InR4SWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eElkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb2xsZWN0aW9uQnVyblJlc3BvbnNlRHRvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbGxlY3Rpb25CdXJuUmVzcG9uc2VEdG8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHhJZCI6IG9iai5nZXQoInR4SWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/collection_deploy_request_dto.py b/fireblocks/models/collection_deploy_request_dto.py index 32ee929e..8faba226 100644 --- a/fireblocks/models/collection_deploy_request_dto.py +++ b/fireblocks/models/collection_deploy_request_dto.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.collection_type import CollectionType -from typing import Optional, Set -from typing_extensions import Self - -class CollectionDeployRequestDto(BaseModel): - """ - CollectionDeployRequestDto - """ # noqa: E501 - base_asset_id: StrictStr = Field(description="The blockchain base assetId", alias="baseAssetId") - vault_account_id: StrictStr = Field(description="The id of the vault account that initiated the request to issue the token", alias="vaultAccountId") - type: CollectionType - name: StrictStr = Field(description="A string that represents the name of the collection") - symbol: StrictStr = Field(description="A string that represents the symbol of the collection") - admin_address: StrictStr = Field(description="The EVM address of the user that will be set as the admin user of the collection", alias="adminAddress") - display_name: Optional[StrictStr] = Field(default=None, description="A string to display as a name of the collection", alias="displayName") - __properties: ClassVar[List[str]] = ["baseAssetId", "vaultAccountId", "type", "name", "symbol", "adminAddress", "displayName"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CollectionDeployRequestDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CollectionDeployRequestDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "baseAssetId": obj.get("baseAssetId"), - "vaultAccountId": obj.get("vaultAccountId"), - "type": obj.get("type"), - "name": obj.get("name"), - "symbol": obj.get("symbol"), - "adminAddress": obj.get("adminAddress"), - "displayName": obj.get("displayName") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fdHlwZSBpbXBvcnQgQ29sbGVjdGlvblR5cGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ29sbGVjdGlvbkRlcGxveVJlcXVlc3REdG8oQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29sbGVjdGlvbkRlcGxveVJlcXVlc3REdG8KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGJhc2VfYXNzZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQiLCBhbGlhcz0iYmFzZUFzc2V0SWQiKQogICAgdmF1bHRfYWNjb3VudF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBpZCBvZiB0aGUgdmF1bHQgYWNjb3VudCB0aGF0IGluaXRpYXRlZCB0aGUgcmVxdWVzdCB0byBpc3N1ZSB0aGUgdG9rZW4iLCBhbGlhcz0idmF1bHRBY2NvdW50SWQiKQogICAgdHlwZTogQ29sbGVjdGlvblR5cGUKICAgIG5hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBIHN0cmluZyB0aGF0IHJlcHJlc2VudHMgdGhlIG5hbWUgb2YgdGhlIGNvbGxlY3Rpb24iKQogICAgc3ltYm9sOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQSBzdHJpbmcgdGhhdCByZXByZXNlbnRzIHRoZSBzeW1ib2wgb2YgdGhlIGNvbGxlY3Rpb24iKQogICAgYWRtaW5fYWRkcmVzczogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBFVk0gYWRkcmVzcyBvZiB0aGUgdXNlciB0aGF0IHdpbGwgYmUgc2V0IGFzIHRoZSBhZG1pbiB1c2VyIG9mIHRoZSBjb2xsZWN0aW9uIiwgYWxpYXM9ImFkbWluQWRkcmVzcyIpCiAgICBkaXNwbGF5X25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBIHN0cmluZyB0byBkaXNwbGF5IGFzIGEgbmFtZSBvZiB0aGUgY29sbGVjdGlvbiIsIGFsaWFzPSJkaXNwbGF5TmFtZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImJhc2VBc3NldElkIiwgInZhdWx0QWNjb3VudElkIiwgInR5cGUiLCAibmFtZSIsICJzeW1ib2wiLCAiYWRtaW5BZGRyZXNzIiwgImRpc3BsYXlOYW1lIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb2xsZWN0aW9uRGVwbG95UmVxdWVzdER0byBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb2xsZWN0aW9uRGVwbG95UmVxdWVzdER0byBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJiYXNlQXNzZXRJZCI6IG9iai5nZXQoImJhc2VBc3NldElkIiksCiAgICAgICAgICAgICJ2YXVsdEFjY291bnRJZCI6IG9iai5nZXQoInZhdWx0QWNjb3VudElkIiksCiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKSwKICAgICAgICAgICAgInN5bWJvbCI6IG9iai5nZXQoInN5bWJvbCIpLAogICAgICAgICAgICAiYWRtaW5BZGRyZXNzIjogb2JqLmdldCgiYWRtaW5BZGRyZXNzIiksCiAgICAgICAgICAgICJkaXNwbGF5TmFtZSI6IG9iai5nZXQoImRpc3BsYXlOYW1lIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/collection_link_dto.py b/fireblocks/models/collection_link_dto.py index 13b04273..b40c6179 100644 --- a/fireblocks/models/collection_link_dto.py +++ b/fireblocks/models/collection_link_dto.py @@ -1,108 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.collection_metadata_dto import CollectionMetadataDto -from fireblocks.models.collection_type import CollectionType -from typing import Optional, Set -from typing_extensions import Self - -class CollectionLinkDto(BaseModel): - """ - CollectionLinkDto - """ # noqa: E501 - id: StrictStr = Field(description="The collection id") - status: StrictStr = Field(description="The collection status") - type: CollectionType - display_name: Optional[StrictStr] = Field(default=None, description="The display name of the collection. If was not provided, would be taken from the contract template", alias="displayName") - collection_metadata: Optional[CollectionMetadataDto] = Field(default=None, description="The collection's metadata", alias="collectionMetadata") - __properties: ClassVar[List[str]] = ["id", "status", "type", "displayName", "collectionMetadata"] - - @field_validator('status') - def status_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['PENDING', 'COMPLETED']): - raise ValueError("must be one of enum values ('PENDING', 'COMPLETED')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CollectionLinkDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of collection_metadata - if self.collection_metadata: - _dict['collectionMetadata'] = self.collection_metadata.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CollectionLinkDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "status": obj.get("status"), - "type": obj.get("type"), - "displayName": obj.get("displayName"), - "collectionMetadata": CollectionMetadataDto.from_dict(obj["collectionMetadata"]) if obj.get("collectionMetadata") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29sbGVjdGlvbl9tZXRhZGF0YV9kdG8gaW1wb3J0IENvbGxlY3Rpb25NZXRhZGF0YUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fdHlwZSBpbXBvcnQgQ29sbGVjdGlvblR5cGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ29sbGVjdGlvbkxpbmtEdG8oQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29sbGVjdGlvbkxpbmtEdG8KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNvbGxlY3Rpb24gaWQiKQogICAgc3RhdHVzOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNvbGxlY3Rpb24gc3RhdHVzIikKICAgIHR5cGU6IENvbGxlY3Rpb25UeXBlCiAgICBkaXNwbGF5X25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgZGlzcGxheSBuYW1lIG9mIHRoZSBjb2xsZWN0aW9uLiBJZiB3YXMgbm90IHByb3ZpZGVkLCB3b3VsZCBiZSB0YWtlbiBmcm9tIHRoZSBjb250cmFjdCB0ZW1wbGF0ZSIsIGFsaWFzPSJkaXNwbGF5TmFtZSIpCiAgICBjb2xsZWN0aW9uX21ldGFkYXRhOiBPcHRpb25hbFtDb2xsZWN0aW9uTWV0YWRhdGFEdG9dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGNvbGxlY3Rpb24ncyBtZXRhZGF0YSIsIGFsaWFzPSJjb2xsZWN0aW9uTWV0YWRhdGEiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJzdGF0dXMiLCAidHlwZSIsICJkaXNwbGF5TmFtZSIsICJjb2xsZWN0aW9uTWV0YWRhdGEiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3N0YXR1cycpCiAgICBkZWYgc3RhdHVzX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ1BFTkRJTkcnLCAnQ09NUExFVEVEJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ1BFTkRJTkcnLCAnQ09NUExFVEVEJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbGxlY3Rpb25MaW5rRHRvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgY29sbGVjdGlvbl9tZXRhZGF0YQogICAgICAgIGlmIHNlbGYuY29sbGVjdGlvbl9tZXRhZGF0YToKICAgICAgICAgICAgX2RpY3RbJ2NvbGxlY3Rpb25NZXRhZGF0YSddID0gc2VsZi5jb2xsZWN0aW9uX21ldGFkYXRhLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29sbGVjdGlvbkxpbmtEdG8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAic3RhdHVzIjogb2JqLmdldCgic3RhdHVzIiksCiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAiZGlzcGxheU5hbWUiOiBvYmouZ2V0KCJkaXNwbGF5TmFtZSIpLAogICAgICAgICAgICAiY29sbGVjdGlvbk1ldGFkYXRhIjogQ29sbGVjdGlvbk1ldGFkYXRhRHRvLmZyb21fZGljdChvYmpbImNvbGxlY3Rpb25NZXRhZGF0YSJdKSBpZiBvYmouZ2V0KCJjb2xsZWN0aW9uTWV0YWRhdGEiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/collection_metadata_dto.py b/fireblocks/models/collection_metadata_dto.py index 7c5f56eb..05c0993c 100644 --- a/fireblocks/models/collection_metadata_dto.py +++ b/fireblocks/models/collection_metadata_dto.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class CollectionMetadataDto(BaseModel): - """ - CollectionMetadataDto - """ # noqa: E501 - fb_collection_id: StrictStr = Field(description="Fireblocks collection id", alias="fbCollectionId") - name: Optional[StrictStr] = Field(default=None, description="Collection name") - symbol: Optional[StrictStr] = Field(default=None, description="Collection symbol") - standard: Optional[StrictStr] = Field(default=None, description="Collection contract standard") - blockchain_descriptor: StrictStr = Field(description="Collection's blockchain", alias="blockchainDescriptor") - contract_address: Optional[StrictStr] = Field(default=None, description="Collection contract address", alias="contractAddress") - __properties: ClassVar[List[str]] = ["fbCollectionId", "name", "symbol", "standard", "blockchainDescriptor", "contractAddress"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CollectionMetadataDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CollectionMetadataDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "fbCollectionId": obj.get("fbCollectionId"), - "name": obj.get("name"), - "symbol": obj.get("symbol"), - "standard": obj.get("standard"), - "blockchainDescriptor": obj.get("blockchainDescriptor"), - "contractAddress": obj.get("contractAddress") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb2xsZWN0aW9uTWV0YWRhdGFEdG8oQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29sbGVjdGlvbk1ldGFkYXRhRHRvCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBmYl9jb2xsZWN0aW9uX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iRmlyZWJsb2NrcyBjb2xsZWN0aW9uIGlkIiwgYWxpYXM9ImZiQ29sbGVjdGlvbklkIikKICAgIG5hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJDb2xsZWN0aW9uIG5hbWUiKQogICAgc3ltYm9sOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ29sbGVjdGlvbiBzeW1ib2wiKQogICAgc3RhbmRhcmQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJDb2xsZWN0aW9uIGNvbnRyYWN0IHN0YW5kYXJkIikKICAgIGJsb2NrY2hhaW5fZGVzY3JpcHRvcjogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkNvbGxlY3Rpb24ncyBibG9ja2NoYWluIiwgYWxpYXM9ImJsb2NrY2hhaW5EZXNjcmlwdG9yIikKICAgIGNvbnRyYWN0X2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJDb2xsZWN0aW9uIGNvbnRyYWN0IGFkZHJlc3MiLCBhbGlhcz0iY29udHJhY3RBZGRyZXNzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZmJDb2xsZWN0aW9uSWQiLCAibmFtZSIsICJzeW1ib2wiLCAic3RhbmRhcmQiLCAiYmxvY2tjaGFpbkRlc2NyaXB0b3IiLCAiY29udHJhY3RBZGRyZXNzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb2xsZWN0aW9uTWV0YWRhdGFEdG8gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29sbGVjdGlvbk1ldGFkYXRhRHRvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImZiQ29sbGVjdGlvbklkIjogb2JqLmdldCgiZmJDb2xsZWN0aW9uSWQiKSwKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJzeW1ib2wiOiBvYmouZ2V0KCJzeW1ib2wiKSwKICAgICAgICAgICAgInN0YW5kYXJkIjogb2JqLmdldCgic3RhbmRhcmQiKSwKICAgICAgICAgICAgImJsb2NrY2hhaW5EZXNjcmlwdG9yIjogb2JqLmdldCgiYmxvY2tjaGFpbkRlc2NyaXB0b3IiKSwKICAgICAgICAgICAgImNvbnRyYWN0QWRkcmVzcyI6IG9iai5nZXQoImNvbnRyYWN0QWRkcmVzcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/collection_mint_request_dto.py b/fireblocks/models/collection_mint_request_dto.py index 27c37bd0..bebf5f5b 100644 --- a/fireblocks/models/collection_mint_request_dto.py +++ b/fireblocks/models/collection_mint_request_dto.py @@ -1,104 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.collection_token_metadata_dto import CollectionTokenMetadataDto -from typing import Optional, Set -from typing_extensions import Self - -class CollectionMintRequestDto(BaseModel): - """ - CollectionMintRequestDto - """ # noqa: E501 - vault_account_id: StrictStr = Field(description="The id of the vault account that initiates the mint function.", alias="vaultAccountId") - to: StrictStr = Field(description="The EVM address to mint to ") - token_id: StrictStr = Field(description="The token id, recommended to have numerical format and in sequential order", alias="tokenId") - amount: Optional[StrictStr] = Field(default=None, description="For ERC721, amount is optional or should always be 1 and for ERC1155, amount should be 1 or greater") - metadata_uri: Optional[StrictStr] = Field(default=None, description="URL of metadata uploaded, skip uploading to IPFS if this field is provided with any value", alias="metadataURI") - metadata: Optional[CollectionTokenMetadataDto] = Field(default=None, description="Metadata to upload") - external_id: Optional[StrictStr] = Field(default=None, description="External id that can be used to identify the transaction in your system. The unique identifier of the transaction outside of Fireblocks with max length of 255 characters", alias="externalId") - __properties: ClassVar[List[str]] = ["vaultAccountId", "to", "tokenId", "amount", "metadataURI", "metadata", "externalId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CollectionMintRequestDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of metadata - if self.metadata: - _dict['metadata'] = self.metadata.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CollectionMintRequestDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "vaultAccountId": obj.get("vaultAccountId"), - "to": obj.get("to"), - "tokenId": obj.get("tokenId"), - "amount": obj.get("amount"), - "metadataURI": obj.get("metadataURI"), - "metadata": CollectionTokenMetadataDto.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None, - "externalId": obj.get("externalId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fdG9rZW5fbWV0YWRhdGFfZHRvIGltcG9ydCBDb2xsZWN0aW9uVG9rZW5NZXRhZGF0YUR0bwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb2xsZWN0aW9uTWludFJlcXVlc3REdG8oQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29sbGVjdGlvbk1pbnRSZXF1ZXN0RHRvCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB2YXVsdF9hY2NvdW50X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGlkIG9mIHRoZSB2YXVsdCBhY2NvdW50IHRoYXQgaW5pdGlhdGVzIHRoZSBtaW50IGZ1bmN0aW9uLiIsIGFsaWFzPSJ2YXVsdEFjY291bnRJZCIpCiAgICB0bzogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBFVk0gYWRkcmVzcyB0byBtaW50IHRvICIpCiAgICB0b2tlbl9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB0b2tlbiBpZCwgcmVjb21tZW5kZWQgdG8gaGF2ZSBudW1lcmljYWwgZm9ybWF0IGFuZCBpbiBzZXF1ZW50aWFsIG9yZGVyIiwgYWxpYXM9InRva2VuSWQiKQogICAgYW1vdW50OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRm9yIEVSQzcyMSwgYW1vdW50IGlzIG9wdGlvbmFsIG9yIHNob3VsZCBhbHdheXMgYmUgMSBhbmQgZm9yIEVSQzExNTUsIGFtb3VudCBzaG91bGQgYmUgMSBvciBncmVhdGVyIikKICAgIG1ldGFkYXRhX3VyaTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlVSTCBvZiBtZXRhZGF0YSB1cGxvYWRlZCwgc2tpcCB1cGxvYWRpbmcgdG8gSVBGUyBpZiB0aGlzIGZpZWxkIGlzIHByb3ZpZGVkIHdpdGggYW55IHZhbHVlIiwgYWxpYXM9Im1ldGFkYXRhVVJJIikKICAgIG1ldGFkYXRhOiBPcHRpb25hbFtDb2xsZWN0aW9uVG9rZW5NZXRhZGF0YUR0b10gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJNZXRhZGF0YSB0byB1cGxvYWQiKQogICAgZXh0ZXJuYWxfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJFeHRlcm5hbCBpZCB0aGF0IGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSB0cmFuc2FjdGlvbiBpbiB5b3VyIHN5c3RlbS4gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSB0cmFuc2FjdGlvbiBvdXRzaWRlIG9mIEZpcmVibG9ja3Mgd2l0aCBtYXggbGVuZ3RoIG9mIDI1NSBjaGFyYWN0ZXJzIiwgYWxpYXM9ImV4dGVybmFsSWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ2YXVsdEFjY291bnRJZCIsICJ0byIsICJ0b2tlbklkIiwgImFtb3VudCIsICJtZXRhZGF0YVVSSSIsICJtZXRhZGF0YSIsICJleHRlcm5hbElkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb2xsZWN0aW9uTWludFJlcXVlc3REdG8gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBtZXRhZGF0YQogICAgICAgIGlmIHNlbGYubWV0YWRhdGE6CiAgICAgICAgICAgIF9kaWN0WydtZXRhZGF0YSddID0gc2VsZi5tZXRhZGF0YS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbGxlY3Rpb25NaW50UmVxdWVzdER0byBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ2YXVsdEFjY291bnRJZCI6IG9iai5nZXQoInZhdWx0QWNjb3VudElkIiksCiAgICAgICAgICAgICJ0byI6IG9iai5nZXQoInRvIiksCiAgICAgICAgICAgICJ0b2tlbklkIjogb2JqLmdldCgidG9rZW5JZCIpLAogICAgICAgICAgICAiYW1vdW50Ijogb2JqLmdldCgiYW1vdW50IiksCiAgICAgICAgICAgICJtZXRhZGF0YVVSSSI6IG9iai5nZXQoIm1ldGFkYXRhVVJJIiksCiAgICAgICAgICAgICJtZXRhZGF0YSI6IENvbGxlY3Rpb25Ub2tlbk1ldGFkYXRhRHRvLmZyb21fZGljdChvYmpbIm1ldGFkYXRhIl0pIGlmIG9iai5nZXQoIm1ldGFkYXRhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZXh0ZXJuYWxJZCI6IG9iai5nZXQoImV4dGVybmFsSWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/collection_mint_response_dto.py b/fireblocks/models/collection_mint_response_dto.py index 39cbcc9d..6e39ca42 100644 --- a/fireblocks/models/collection_mint_response_dto.py +++ b/fireblocks/models/collection_mint_response_dto.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class CollectionMintResponseDto(BaseModel): - """ - CollectionMintResponseDto - """ # noqa: E501 - tx_id: StrictStr = Field(description="Transaction Id for the mint operation", alias="txId") - __properties: ClassVar[List[str]] = ["txId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CollectionMintResponseDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CollectionMintResponseDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "txId": obj.get("txId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENvbGxlY3Rpb25NaW50UmVzcG9uc2VEdG8oQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29sbGVjdGlvbk1pbnRSZXNwb25zZUR0bwogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHhfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUcmFuc2FjdGlvbiBJZCBmb3IgdGhlIG1pbnQgb3BlcmF0aW9uIiwgYWxpYXM9InR4SWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eElkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb2xsZWN0aW9uTWludFJlc3BvbnNlRHRvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbGxlY3Rpb25NaW50UmVzcG9uc2VEdG8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHhJZCI6IG9iai5nZXQoInR4SWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/collection_ownership_response.py b/fireblocks/models/collection_ownership_response.py index fb359b74..450a18cd 100644 --- a/fireblocks/models/collection_ownership_response.py +++ b/fireblocks/models/collection_ownership_response.py @@ -1,105 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class CollectionOwnershipResponse(BaseModel): - """ - CollectionOwnershipResponse - """ # noqa: E501 - id: StrictStr = Field(description="Fireblocks collection id") - name: Optional[StrictStr] = Field(default=None, description="Collection name") - symbol: Optional[StrictStr] = Field(default=None, description="Collection symbol") - standard: Optional[StrictStr] = Field(default=None, description="Collection contract standard") - blockchain_descriptor: StrictStr = Field(description="Collection's blockchain", alias="blockchainDescriptor") - contract_address: Optional[StrictStr] = Field(default=None, description="Collection contract standard", alias="contractAddress") - __properties: ClassVar[List[str]] = ["id", "name", "symbol", "standard", "blockchainDescriptor", "contractAddress"] - - @field_validator('blockchain_descriptor') - def blockchain_descriptor_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST']): - raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CollectionOwnershipResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CollectionOwnershipResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name"), - "symbol": obj.get("symbol"), - "standard": obj.get("standard"), - "blockchainDescriptor": obj.get("blockchainDescriptor"), - "contractAddress": obj.get("contractAddress") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENvbGxlY3Rpb25Pd25lcnNoaXBSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDb2xsZWN0aW9uT3duZXJzaGlwUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iRmlyZWJsb2NrcyBjb2xsZWN0aW9uIGlkIikKICAgIG5hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJDb2xsZWN0aW9uIG5hbWUiKQogICAgc3ltYm9sOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ29sbGVjdGlvbiBzeW1ib2wiKQogICAgc3RhbmRhcmQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJDb2xsZWN0aW9uIGNvbnRyYWN0IHN0YW5kYXJkIikKICAgIGJsb2NrY2hhaW5fZGVzY3JpcHRvcjogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkNvbGxlY3Rpb24ncyBibG9ja2NoYWluIiwgYWxpYXM9ImJsb2NrY2hhaW5EZXNjcmlwdG9yIikKICAgIGNvbnRyYWN0X2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJDb2xsZWN0aW9uIGNvbnRyYWN0IHN0YW5kYXJkIiwgYWxpYXM9ImNvbnRyYWN0QWRkcmVzcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgIm5hbWUiLCAic3ltYm9sIiwgInN0YW5kYXJkIiwgImJsb2NrY2hhaW5EZXNjcmlwdG9yIiwgImNvbnRyYWN0QWRkcmVzcyJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYmxvY2tjaGFpbl9kZXNjcmlwdG9yJykKICAgIGRlZiBibG9ja2NoYWluX2Rlc2NyaXB0b3JfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnRVRIJywgJ0VUSF9URVNUMycsICdFVEhfVEVTVDUnLCAnRVRIX1RFU1Q2JywgJ1BPTFlHT04nLCAnUE9MWUdPTl9URVNUX01VTUJBSScsICdBTU9ZX1BPTFlHT05fVEVTVCcsICdYVFonLCAnWFRaX1RFU1QnLCAnQkFTRUNIQUlOX0VUSCcsICdCQVNFQ0hBSU5fRVRIX1RFU1QzJywgJ0JBU0VDSEFJTl9FVEhfVEVTVDUnLCAnRVRIRVJMSU5LJywgJ0VUSEVSTElOS19URVNUJywgJ01BTlRMRScsICdNQU5UTEVfVEVTVCcsICdHVU5fR1VOWklMTEEnLCAnR1VOX0dVTlpJTExBX1RFU1QnLCAnRVRIX1NPTkVJVU0nLCAnU09ORUlVTV9NSU5BVE9fVEVTVCcsICdJT1RYX0lPVEVYJywgJ0tMQVlfS0FJQScsICdLTEFZX0tBSUFfVEVTVCcsICdBUEVDSEFJTicsICdBUEVDSEFJTl9URVNUJywgJ0NST05PUycsICdDUk9OT1NfVEVTVCcsICdST0JJTkhPT0RfQ0hBSU5fVEVTVE5FVF9URVNUJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0VUSCcsICdFVEhfVEVTVDMnLCAnRVRIX1RFU1Q1JywgJ0VUSF9URVNUNicsICdQT0xZR09OJywgJ1BPTFlHT05fVEVTVF9NVU1CQUknLCAnQU1PWV9QT0xZR09OX1RFU1QnLCAnWFRaJywgJ1hUWl9URVNUJywgJ0JBU0VDSEFJTl9FVEgnLCAnQkFTRUNIQUlOX0VUSF9URVNUMycsICdCQVNFQ0hBSU5fRVRIX1RFU1Q1JywgJ0VUSEVSTElOSycsICdFVEhFUkxJTktfVEVTVCcsICdNQU5UTEUnLCAnTUFOVExFX1RFU1QnLCAnR1VOX0dVTlpJTExBJywgJ0dVTl9HVU5aSUxMQV9URVNUJywgJ0VUSF9TT05FSVVNJywgJ1NPTkVJVU1fTUlOQVRPX1RFU1QnLCAnSU9UWF9JT1RFWCcsICdLTEFZX0tBSUEnLCAnS0xBWV9LQUlBX1RFU1QnLCAnQVBFQ0hBSU4nLCAnQVBFQ0hBSU5fVEVTVCcsICdDUk9OT1MnLCAnQ1JPTk9TX1RFU1QnLCAnUk9CSU5IT09EX0NIQUlOX1RFU1RORVRfVEVTVCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb2xsZWN0aW9uT3duZXJzaGlwUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29sbGVjdGlvbk93bmVyc2hpcFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJzeW1ib2wiOiBvYmouZ2V0KCJzeW1ib2wiKSwKICAgICAgICAgICAgInN0YW5kYXJkIjogb2JqLmdldCgic3RhbmRhcmQiKSwKICAgICAgICAgICAgImJsb2NrY2hhaW5EZXNjcmlwdG9yIjogb2JqLmdldCgiYmxvY2tjaGFpbkRlc2NyaXB0b3IiKSwKICAgICAgICAgICAgImNvbnRyYWN0QWRkcmVzcyI6IG9iai5nZXQoImNvbnRyYWN0QWRkcmVzcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/collection_token_metadata_attribute_dto.py b/fireblocks/models/collection_token_metadata_attribute_dto.py index d371be41..fb065fa5 100644 --- a/fireblocks/models/collection_token_metadata_attribute_dto.py +++ b/fireblocks/models/collection_token_metadata_attribute_dto.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class CollectionTokenMetadataAttributeDto(BaseModel): - """ - CollectionTokenMetadataAttributeDto - """ # noqa: E501 - trait_type: StrictStr = Field(description="Name of the trait") - value: StrictStr = Field(description="Value of the trait") - display_type: Optional[StrictStr] = Field(default=None, description="A field indicating how you would like trait to be displayed") - __properties: ClassVar[List[str]] = ["trait_type", "value", "display_type"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CollectionTokenMetadataAttributeDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CollectionTokenMetadataAttributeDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "trait_type": obj.get("trait_type"), - "value": obj.get("value"), - "display_type": obj.get("display_type") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb2xsZWN0aW9uVG9rZW5NZXRhZGF0YUF0dHJpYnV0ZUR0byhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDb2xsZWN0aW9uVG9rZW5NZXRhZGF0YUF0dHJpYnV0ZUR0bwogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHJhaXRfdHlwZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249Ik5hbWUgb2YgdGhlIHRyYWl0IikKICAgIHZhbHVlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVmFsdWUgb2YgdGhlIHRyYWl0IikKICAgIGRpc3BsYXlfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkEgZmllbGQgaW5kaWNhdGluZyBob3cgeW91IHdvdWxkIGxpa2UgdHJhaXQgdG8gYmUgZGlzcGxheWVkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidHJhaXRfdHlwZSIsICJ2YWx1ZSIsICJkaXNwbGF5X3R5cGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbGxlY3Rpb25Ub2tlbk1ldGFkYXRhQXR0cmlidXRlRHRvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbGxlY3Rpb25Ub2tlbk1ldGFkYXRhQXR0cmlidXRlRHRvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInRyYWl0X3R5cGUiOiBvYmouZ2V0KCJ0cmFpdF90eXBlIiksCiAgICAgICAgICAgICJ2YWx1ZSI6IG9iai5nZXQoInZhbHVlIiksCiAgICAgICAgICAgICJkaXNwbGF5X3R5cGUiOiBvYmouZ2V0KCJkaXNwbGF5X3R5cGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/collection_token_metadata_dto.py b/fireblocks/models/collection_token_metadata_dto.py index cf394a79..bd8fdc4d 100644 --- a/fireblocks/models/collection_token_metadata_dto.py +++ b/fireblocks/models/collection_token_metadata_dto.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.collection_token_metadata_attribute_dto import CollectionTokenMetadataAttributeDto -from typing import Optional, Set -from typing_extensions import Self - -class CollectionTokenMetadataDto(BaseModel): - """ - CollectionTokenMetadataDto - """ # noqa: E501 - name: StrictStr = Field(description="Token's name") - description: StrictStr = Field(description="Token's description") - image: Optional[StrictStr] = Field(default=None, description="Token's image URL") - animation_url: Optional[StrictStr] = Field(default=None, description="Token's animation URL") - external_url: Optional[StrictStr] = Field(default=None, description="Token's external URL") - attributes: Optional[List[CollectionTokenMetadataAttributeDto]] = Field(default=None, description="Token's metadata attributes") - __properties: ClassVar[List[str]] = ["name", "description", "image", "animation_url", "external_url", "attributes"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CollectionTokenMetadataDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in attributes (list) - _items = [] - if self.attributes: - for _item_attributes in self.attributes: - if _item_attributes: - _items.append(_item_attributes.to_dict()) - _dict['attributes'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CollectionTokenMetadataDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name"), - "description": obj.get("description"), - "image": obj.get("image"), - "animation_url": obj.get("animation_url"), - "external_url": obj.get("external_url"), - "attributes": [CollectionTokenMetadataAttributeDto.from_dict(_item) for _item in obj["attributes"]] if obj.get("attributes") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fdG9rZW5fbWV0YWRhdGFfYXR0cmlidXRlX2R0byBpbXBvcnQgQ29sbGVjdGlvblRva2VuTWV0YWRhdGFBdHRyaWJ1dGVEdG8KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ29sbGVjdGlvblRva2VuTWV0YWRhdGFEdG8oQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29sbGVjdGlvblRva2VuTWV0YWRhdGFEdG8KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG5hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUb2tlbidzIG5hbWUiKQogICAgZGVzY3JpcHRpb246IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUb2tlbidzIGRlc2NyaXB0aW9uIikKICAgIGltYWdlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVG9rZW4ncyBpbWFnZSBVUkwiKQogICAgYW5pbWF0aW9uX3VybDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRva2VuJ3MgYW5pbWF0aW9uIFVSTCIpCiAgICBleHRlcm5hbF91cmw6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUb2tlbidzIGV4dGVybmFsIFVSTCIpCiAgICBhdHRyaWJ1dGVzOiBPcHRpb25hbFtMaXN0W0NvbGxlY3Rpb25Ub2tlbk1ldGFkYXRhQXR0cmlidXRlRHRvXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUb2tlbidzIG1ldGFkYXRhIGF0dHJpYnV0ZXMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJuYW1lIiwgImRlc2NyaXB0aW9uIiwgImltYWdlIiwgImFuaW1hdGlvbl91cmwiLCAiZXh0ZXJuYWxfdXJsIiwgImF0dHJpYnV0ZXMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbGxlY3Rpb25Ub2tlbk1ldGFkYXRhRHRvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGF0dHJpYnV0ZXMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmF0dHJpYnV0ZXM6CiAgICAgICAgICAgIGZvciBfaXRlbV9hdHRyaWJ1dGVzIGluIHNlbGYuYXR0cmlidXRlczoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2F0dHJpYnV0ZXM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9hdHRyaWJ1dGVzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2F0dHJpYnV0ZXMnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29sbGVjdGlvblRva2VuTWV0YWRhdGFEdG8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKSwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogb2JqLmdldCgiZGVzY3JpcHRpb24iKSwKICAgICAgICAgICAgImltYWdlIjogb2JqLmdldCgiaW1hZ2UiKSwKICAgICAgICAgICAgImFuaW1hdGlvbl91cmwiOiBvYmouZ2V0KCJhbmltYXRpb25fdXJsIiksCiAgICAgICAgICAgICJleHRlcm5hbF91cmwiOiBvYmouZ2V0KCJleHRlcm5hbF91cmwiKSwKICAgICAgICAgICAgImF0dHJpYnV0ZXMiOiBbQ29sbGVjdGlvblRva2VuTWV0YWRhdGFBdHRyaWJ1dGVEdG8uZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJhdHRyaWJ1dGVzIl1dIGlmIG9iai5nZXQoImF0dHJpYnV0ZXMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/collection_type.py b/fireblocks/models/collection_type.py index cbd6e493..e27d1ff6 100644 --- a/fireblocks/models/collection_type.py +++ b/fireblocks/models/collection_type.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class CollectionType(str, Enum): - """ - The type of collection - """ - - """ - allowed enum values - """ - NON_FUNGIBLE_TOKEN = 'NON_FUNGIBLE_TOKEN' - SEMI_FUNGIBLE_TOKEN = 'SEMI_FUNGIBLE_TOKEN' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of CollectionType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBDb2xsZWN0aW9uVHlwZShzdHIsIEVudW0pOgogICAgIiIiCiAgICBUaGUgdHlwZSBvZiBjb2xsZWN0aW9uCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgTk9OX0ZVTkdJQkxFX1RPS0VOID0gJ05PTl9GVU5HSUJMRV9UT0tFTicKICAgIFNFTUlfRlVOR0lCTEVfVE9LRU4gPSAnU0VNSV9GVU5HSUJMRV9UT0tFTicKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb2xsZWN0aW9uVHlwZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/committed_quote_enum.py b/fireblocks/models/committed_quote_enum.py index da77f1cb..d072802e 100644 --- a/fireblocks/models/committed_quote_enum.py +++ b/fireblocks/models/committed_quote_enum.py @@ -1,37 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class CommittedQuoteEnum(str, Enum): - """ - Indicates this is a committed quote - """ - - """ - allowed enum values - """ - COMMITTED = 'COMMITTED' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of CommittedQuoteEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBDb21taXR0ZWRRdW90ZUVudW0oc3RyLCBFbnVtKToKICAgICIiIgogICAgSW5kaWNhdGVzIHRoaXMgaXMgYSBjb21taXR0ZWQgcXVvdGUKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBDT01NSVRURUQgPSAnQ09NTUlUVEVEJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbW1pdHRlZFF1b3RlRW51bSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/committed_quote_type.py b/fireblocks/models/committed_quote_type.py index f236a980..abc86684 100644 --- a/fireblocks/models/committed_quote_type.py +++ b/fireblocks/models/committed_quote_type.py @@ -1,89 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List -from fireblocks.models.committed_quote_enum import CommittedQuoteEnum -from typing import Optional, Set -from typing_extensions import Self - -class CommittedQuoteType(BaseModel): - """ - CommittedQuoteType - """ # noqa: E501 - type: CommittedQuoteEnum - __properties: ClassVar[List[str]] = ["type"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CommittedQuoteType from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CommittedQuoteType from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29tbWl0dGVkX3F1b3RlX2VudW0gaW1wb3J0IENvbW1pdHRlZFF1b3RlRW51bQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb21taXR0ZWRRdW90ZVR5cGUoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29tbWl0dGVkUXVvdGVUeXBlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBDb21taXR0ZWRRdW90ZUVudW0KICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidHlwZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29tbWl0dGVkUXVvdGVUeXBlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbW1pdHRlZFF1b3RlVHlwZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/compliance_result_full_payload.py b/fireblocks/models/compliance_result_full_payload.py index 20479925..ff2e86e1 100644 --- a/fireblocks/models/compliance_result_full_payload.py +++ b/fireblocks/models/compliance_result_full_payload.py @@ -1,131 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.aml_registration_result_full_payload import AmlRegistrationResultFullPayload -from fireblocks.models.compliance_result_statuses_enum import ComplianceResultStatusesEnum -from fireblocks.models.compliance_screening_result_full_payload import ComplianceScreeningResultFullPayload -from fireblocks.models.tr_link_registration_result_full_payload import TRLinkRegistrationResultFullPayload -from fireblocks.models.tr_link_result_full_payload import TRLinkResultFullPayload -from typing import Optional, Set -from typing_extensions import Self - -class ComplianceResultFullPayload(BaseModel): - """ - The result of the Compliance AML/Travel Rule screening. - """ # noqa: E501 - aml: Optional[ComplianceScreeningResultFullPayload] = None - tr: Optional[ComplianceScreeningResultFullPayload] = None - aml_list: Optional[List[ComplianceScreeningResultFullPayload]] = Field(default=None, description="The list of all results of the AML screening.", alias="amlList") - status: Optional[ComplianceResultStatusesEnum] = None - aml_registration: Optional[AmlRegistrationResultFullPayload] = Field(default=None, alias="amlRegistration") - trlink_registration: Optional[TRLinkRegistrationResultFullPayload] = Field(default=None, alias="trlinkRegistration") - trlink_destinations: Optional[List[TRLinkResultFullPayload]] = Field(default=None, description="The list of TRLink destination screening results.", alias="trlinkDestinations") - __properties: ClassVar[List[str]] = ["aml", "tr", "amlList", "status", "amlRegistration", "trlinkRegistration", "trlinkDestinations"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ComplianceResultFullPayload from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of aml - if self.aml: - _dict['aml'] = self.aml.to_dict() - # override the default output from pydantic by calling `to_dict()` of tr - if self.tr: - _dict['tr'] = self.tr.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in aml_list (list) - _items = [] - if self.aml_list: - for _item_aml_list in self.aml_list: - if _item_aml_list: - _items.append(_item_aml_list.to_dict()) - _dict['amlList'] = _items - # override the default output from pydantic by calling `to_dict()` of aml_registration - if self.aml_registration: - _dict['amlRegistration'] = self.aml_registration.to_dict() - # override the default output from pydantic by calling `to_dict()` of trlink_registration - if self.trlink_registration: - _dict['trlinkRegistration'] = self.trlink_registration.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in trlink_destinations (list) - _items = [] - if self.trlink_destinations: - for _item_trlink_destinations in self.trlink_destinations: - if _item_trlink_destinations: - _items.append(_item_trlink_destinations.to_dict()) - _dict['trlinkDestinations'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ComplianceResultFullPayload from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "aml": ComplianceScreeningResultFullPayload.from_dict(obj["aml"]) if obj.get("aml") is not None else None, - "tr": ComplianceScreeningResultFullPayload.from_dict(obj["tr"]) if obj.get("tr") is not None else None, - "amlList": [ComplianceScreeningResultFullPayload.from_dict(_item) for _item in obj["amlList"]] if obj.get("amlList") is not None else None, - "status": obj.get("status"), - "amlRegistration": AmlRegistrationResultFullPayload.from_dict(obj["amlRegistration"]) if obj.get("amlRegistration") is not None else None, - "trlinkRegistration": TRLinkRegistrationResultFullPayload.from_dict(obj["trlinkRegistration"]) if obj.get("trlinkRegistration") is not None else None, - "trlinkDestinations": [TRLinkResultFullPayload.from_dict(_item) for _item in obj["trlinkDestinations"]] if obj.get("trlinkDestinations") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfcmVnaXN0cmF0aW9uX3Jlc3VsdF9mdWxsX3BheWxvYWQgaW1wb3J0IEFtbFJlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29tcGxpYW5jZV9yZXN1bHRfc3RhdHVzZXNfZW51bSBpbXBvcnQgQ29tcGxpYW5jZVJlc3VsdFN0YXR1c2VzRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbXBsaWFuY2Vfc2NyZWVuaW5nX3Jlc3VsdF9mdWxsX3BheWxvYWQgaW1wb3J0IENvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHRGdWxsUGF5bG9hZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcmVnaXN0cmF0aW9uX3Jlc3VsdF9mdWxsX3BheWxvYWQgaW1wb3J0IFRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19yZXN1bHRfZnVsbF9wYXlsb2FkIGltcG9ydCBUUkxpbmtSZXN1bHRGdWxsUGF5bG9hZApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb21wbGlhbmNlUmVzdWx0RnVsbFBheWxvYWQoQmFzZU1vZGVsKToKICAgICIiIgogICAgVGhlIHJlc3VsdCBvZiB0aGUgQ29tcGxpYW5jZSBBTUwvVHJhdmVsIFJ1bGUgc2NyZWVuaW5nLgogICAgIiIiICMgbm9xYTogRTUwMQogICAgYW1sOiBPcHRpb25hbFtDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0RnVsbFBheWxvYWRdID0gTm9uZQogICAgdHI6IE9wdGlvbmFsW0NvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHRGdWxsUGF5bG9hZF0gPSBOb25lCiAgICBhbWxfbGlzdDogT3B0aW9uYWxbTGlzdFtDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0RnVsbFBheWxvYWRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBsaXN0IG9mIGFsbCByZXN1bHRzIG9mIHRoZSBBTUwgc2NyZWVuaW5nLiIsIGFsaWFzPSJhbWxMaXN0IikKICAgIHN0YXR1czogT3B0aW9uYWxbQ29tcGxpYW5jZVJlc3VsdFN0YXR1c2VzRW51bV0gPSBOb25lCiAgICBhbWxfcmVnaXN0cmF0aW9uOiBPcHRpb25hbFtBbWxSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJhbWxSZWdpc3RyYXRpb24iKQogICAgdHJsaW5rX3JlZ2lzdHJhdGlvbjogT3B0aW9uYWxbVFJMaW5rUmVnaXN0cmF0aW9uUmVzdWx0RnVsbFBheWxvYWRdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0idHJsaW5rUmVnaXN0cmF0aW9uIikKICAgIHRybGlua19kZXN0aW5hdGlvbnM6IE9wdGlvbmFsW0xpc3RbVFJMaW5rUmVzdWx0RnVsbFBheWxvYWRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBsaXN0IG9mIFRSTGluayBkZXN0aW5hdGlvbiBzY3JlZW5pbmcgcmVzdWx0cy4iLCBhbGlhcz0idHJsaW5rRGVzdGluYXRpb25zIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYW1sIiwgInRyIiwgImFtbExpc3QiLCAic3RhdHVzIiwgImFtbFJlZ2lzdHJhdGlvbiIsICJ0cmxpbmtSZWdpc3RyYXRpb24iLCAidHJsaW5rRGVzdGluYXRpb25zIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb21wbGlhbmNlUmVzdWx0RnVsbFBheWxvYWQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhbWwKICAgICAgICBpZiBzZWxmLmFtbDoKICAgICAgICAgICAgX2RpY3RbJ2FtbCddID0gc2VsZi5hbWwudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHRyCiAgICAgICAgaWYgc2VsZi50cjoKICAgICAgICAgICAgX2RpY3RbJ3RyJ10gPSBzZWxmLnRyLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gYW1sX2xpc3QgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmFtbF9saXN0OgogICAgICAgICAgICBmb3IgX2l0ZW1fYW1sX2xpc3QgaW4gc2VsZi5hbWxfbGlzdDoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2FtbF9saXN0OgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fYW1sX2xpc3QudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnYW1sTGlzdCddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFtbF9yZWdpc3RyYXRpb24KICAgICAgICBpZiBzZWxmLmFtbF9yZWdpc3RyYXRpb246CiAgICAgICAgICAgIF9kaWN0WydhbWxSZWdpc3RyYXRpb24nXSA9IHNlbGYuYW1sX3JlZ2lzdHJhdGlvbi50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgdHJsaW5rX3JlZ2lzdHJhdGlvbgogICAgICAgIGlmIHNlbGYudHJsaW5rX3JlZ2lzdHJhdGlvbjoKICAgICAgICAgICAgX2RpY3RbJ3RybGlua1JlZ2lzdHJhdGlvbiddID0gc2VsZi50cmxpbmtfcmVnaXN0cmF0aW9uLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gdHJsaW5rX2Rlc3RpbmF0aW9ucyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYudHJsaW5rX2Rlc3RpbmF0aW9uczoKICAgICAgICAgICAgZm9yIF9pdGVtX3RybGlua19kZXN0aW5hdGlvbnMgaW4gc2VsZi50cmxpbmtfZGVzdGluYXRpb25zOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fdHJsaW5rX2Rlc3RpbmF0aW9uczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX3RybGlua19kZXN0aW5hdGlvbnMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsndHJsaW5rRGVzdGluYXRpb25zJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbXBsaWFuY2VSZXN1bHRGdWxsUGF5bG9hZCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhbWwiOiBDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0RnVsbFBheWxvYWQuZnJvbV9kaWN0KG9ialsiYW1sIl0pIGlmIG9iai5nZXQoImFtbCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInRyIjogQ29tcGxpYW5jZVNjcmVlbmluZ1Jlc3VsdEZ1bGxQYXlsb2FkLmZyb21fZGljdChvYmpbInRyIl0pIGlmIG9iai5nZXQoInRyIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiYW1sTGlzdCI6IFtDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0RnVsbFBheWxvYWQuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJhbWxMaXN0Il1dIGlmIG9iai5nZXQoImFtbExpc3QiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgImFtbFJlZ2lzdHJhdGlvbiI6IEFtbFJlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkLmZyb21fZGljdChvYmpbImFtbFJlZ2lzdHJhdGlvbiJdKSBpZiBvYmouZ2V0KCJhbWxSZWdpc3RyYXRpb24iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJ0cmxpbmtSZWdpc3RyYXRpb24iOiBUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZC5mcm9tX2RpY3Qob2JqWyJ0cmxpbmtSZWdpc3RyYXRpb24iXSkgaWYgb2JqLmdldCgidHJsaW5rUmVnaXN0cmF0aW9uIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAidHJsaW5rRGVzdGluYXRpb25zIjogW1RSTGlua1Jlc3VsdEZ1bGxQYXlsb2FkLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsidHJsaW5rRGVzdGluYXRpb25zIl1dIGlmIG9iai5nZXQoInRybGlua0Rlc3RpbmF0aW9ucyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/compliance_result_statuses_enum.py b/fireblocks/models/compliance_result_statuses_enum.py index fc9c8956..c646f292 100644 --- a/fireblocks/models/compliance_result_statuses_enum.py +++ b/fireblocks/models/compliance_result_statuses_enum.py @@ -1,84 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ComplianceResultStatusesEnum(str, Enum): - """ - Status of compliance result screening - """ - - """ - allowed enum values - """ - UNKNOWN = 'Unknown' - STALLED = 'Stalled' - STARTED = 'Started' - NETWORKCONNECTIONADDRESSRESOLVE = 'NetworkConnectionAddressResolve' - SCREENINGPREPARE = 'ScreeningPrepare' - AMLSTARTED = 'AMLStarted' - AMLCOMPLETED = 'AMLCompleted' - AMLFAILED = 'AMLFailed' - AMLINBACKGROUND = 'AMLInBackground' - TRPRECONDITIONCHECKS = 'TRPreconditionChecks' - TRSTARTED = 'TRStarted' - TRLINKSTARTED = 'TRLinkStarted' - TRLINKDESTINATIONSTARTED = 'TRLinkDestinationStarted' - TRLINKDESTINATIONPRESCREENPOLICY = 'TRLinkDestinationPrescreenPolicy' - TRLINKDESTINATIONNOTRMPOLICY = 'TRLinkDestinationNoTRMPolicy' - TRLINKDESTINATIONSCREEN = 'TRLinkDestinationScreen' - TRLINKDESTINATIONPOSTSCREENPOLICY = 'TRLinkDestinationPostscreenPolicy' - TRLINKDESTINATIONCOMPLETED = 'TRLinkDestinationCompleted' - TRLINKCOMPLETED = 'TRLinkCompleted' - TRCOMPLETED = 'TRCompleted' - TRFAILED = 'TRFailed' - COMPLETED = 'Completed' - REGISTRATIONSTARTED = 'RegistrationStarted' - REGISTRATIONWAITFORFIRSTCONFIRMATION = 'RegistrationWaitForFirstConfirmation' - AMLREGISTRATIONSTARTED = 'AMLRegistrationStarted' - AMLREGISTRATIONCOMPLETED = 'AMLRegistrationCompleted' - TRUPDATESTARTED = 'TRUpdateStarted' - TRUPDATECOMPLETED = 'TRUpdateCompleted' - UPDATECOMPLETED = 'UpdateCompleted' - INCOMINGSTARTED = 'IncomingStarted' - INCOMINGBYORKSL = 'IncomingByorkSL' - INCOMINGSCREENINGPREPARE = 'IncomingScreeningPrepare' - INCOMINGWAITFORFIRSTCONFIRMATION = 'IncomingWaitForFirstConfirmation' - AMLINCOMINGSTARTED = 'AMLIncomingStarted' - AMLINCOMINGCOMPLETED = 'AMLIncomingCompleted' - AMLINCOMINGFAILED = 'AMLIncomingFailed' - AMLINCOMINGINBACKGROUND = 'AMLIncomingInBackground' - TRINCOMINGSTARTED = 'TRIncomingStarted' - TRINCOMINGCOMPLETED = 'TRIncomingCompleted' - TRINCOMINGFAILED = 'TRIncomingFailed' - INCOMINGCOMPLETED = 'IncomingCompleted' - ADDRESSAMLINITIATED = 'AddressAmlInitiated' - ADDRESSAMLADDRESSRESOLVE = 'AddressAmlAddressResolve' - ADDRESSAMLPREPARE = 'AddressAmlPrepare' - ADDRESSAMLPROCESSING = 'AddressAmlProcessing' - ADDRESSAMLSUCCEEDED = 'AddressAmlSucceeded' - ADDRESSAMLFAILED = 'AddressAmlFailed' - ADDRESSAMLCOMPLETED = 'AddressAmlCompleted' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ComplianceResultStatusesEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBDb21wbGlhbmNlUmVzdWx0U3RhdHVzZXNFbnVtKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIFN0YXR1cyBvZiBjb21wbGlhbmNlIHJlc3VsdCBzY3JlZW5pbmcKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBVTktOT1dOID0gJ1Vua25vd24nCiAgICBTVEFMTEVEID0gJ1N0YWxsZWQnCiAgICBTVEFSVEVEID0gJ1N0YXJ0ZWQnCiAgICBORVRXT1JLQ09OTkVDVElPTkFERFJFU1NSRVNPTFZFID0gJ05ldHdvcmtDb25uZWN0aW9uQWRkcmVzc1Jlc29sdmUnCiAgICBTQ1JFRU5JTkdQUkVQQVJFID0gJ1NjcmVlbmluZ1ByZXBhcmUnCiAgICBBTUxTVEFSVEVEID0gJ0FNTFN0YXJ0ZWQnCiAgICBBTUxDT01QTEVURUQgPSAnQU1MQ29tcGxldGVkJwogICAgQU1MRkFJTEVEID0gJ0FNTEZhaWxlZCcKICAgIEFNTElOQkFDS0dST1VORCA9ICdBTUxJbkJhY2tncm91bmQnCiAgICBUUlBSRUNPTkRJVElPTkNIRUNLUyA9ICdUUlByZWNvbmRpdGlvbkNoZWNrcycKICAgIFRSU1RBUlRFRCA9ICdUUlN0YXJ0ZWQnCiAgICBUUkxJTktTVEFSVEVEID0gJ1RSTGlua1N0YXJ0ZWQnCiAgICBUUkxJTktERVNUSU5BVElPTlNUQVJURUQgPSAnVFJMaW5rRGVzdGluYXRpb25TdGFydGVkJwogICAgVFJMSU5LREVTVElOQVRJT05QUkVTQ1JFRU5QT0xJQ1kgPSAnVFJMaW5rRGVzdGluYXRpb25QcmVzY3JlZW5Qb2xpY3knCiAgICBUUkxJTktERVNUSU5BVElPTk5PVFJNUE9MSUNZID0gJ1RSTGlua0Rlc3RpbmF0aW9uTm9UUk1Qb2xpY3knCiAgICBUUkxJTktERVNUSU5BVElPTlNDUkVFTiA9ICdUUkxpbmtEZXN0aW5hdGlvblNjcmVlbicKICAgIFRSTElOS0RFU1RJTkFUSU9OUE9TVFNDUkVFTlBPTElDWSA9ICdUUkxpbmtEZXN0aW5hdGlvblBvc3RzY3JlZW5Qb2xpY3knCiAgICBUUkxJTktERVNUSU5BVElPTkNPTVBMRVRFRCA9ICdUUkxpbmtEZXN0aW5hdGlvbkNvbXBsZXRlZCcKICAgIFRSTElOS0NPTVBMRVRFRCA9ICdUUkxpbmtDb21wbGV0ZWQnCiAgICBUUkNPTVBMRVRFRCA9ICdUUkNvbXBsZXRlZCcKICAgIFRSRkFJTEVEID0gJ1RSRmFpbGVkJwogICAgQ09NUExFVEVEID0gJ0NvbXBsZXRlZCcKICAgIFJFR0lTVFJBVElPTlNUQVJURUQgPSAnUmVnaXN0cmF0aW9uU3RhcnRlZCcKICAgIFJFR0lTVFJBVElPTldBSVRGT1JGSVJTVENPTkZJUk1BVElPTiA9ICdSZWdpc3RyYXRpb25XYWl0Rm9yRmlyc3RDb25maXJtYXRpb24nCiAgICBBTUxSRUdJU1RSQVRJT05TVEFSVEVEID0gJ0FNTFJlZ2lzdHJhdGlvblN0YXJ0ZWQnCiAgICBBTUxSRUdJU1RSQVRJT05DT01QTEVURUQgPSAnQU1MUmVnaXN0cmF0aW9uQ29tcGxldGVkJwogICAgVFJVUERBVEVTVEFSVEVEID0gJ1RSVXBkYXRlU3RhcnRlZCcKICAgIFRSVVBEQVRFQ09NUExFVEVEID0gJ1RSVXBkYXRlQ29tcGxldGVkJwogICAgVVBEQVRFQ09NUExFVEVEID0gJ1VwZGF0ZUNvbXBsZXRlZCcKICAgIElOQ09NSU5HU1RBUlRFRCA9ICdJbmNvbWluZ1N0YXJ0ZWQnCiAgICBJTkNPTUlOR0JZT1JLU0wgPSAnSW5jb21pbmdCeW9ya1NMJwogICAgSU5DT01JTkdTQ1JFRU5JTkdQUkVQQVJFID0gJ0luY29taW5nU2NyZWVuaW5nUHJlcGFyZScKICAgIElOQ09NSU5HV0FJVEZPUkZJUlNUQ09ORklSTUFUSU9OID0gJ0luY29taW5nV2FpdEZvckZpcnN0Q29uZmlybWF0aW9uJwogICAgQU1MSU5DT01JTkdTVEFSVEVEID0gJ0FNTEluY29taW5nU3RhcnRlZCcKICAgIEFNTElOQ09NSU5HQ09NUExFVEVEID0gJ0FNTEluY29taW5nQ29tcGxldGVkJwogICAgQU1MSU5DT01JTkdGQUlMRUQgPSAnQU1MSW5jb21pbmdGYWlsZWQnCiAgICBBTUxJTkNPTUlOR0lOQkFDS0dST1VORCA9ICdBTUxJbmNvbWluZ0luQmFja2dyb3VuZCcKICAgIFRSSU5DT01JTkdTVEFSVEVEID0gJ1RSSW5jb21pbmdTdGFydGVkJwogICAgVFJJTkNPTUlOR0NPTVBMRVRFRCA9ICdUUkluY29taW5nQ29tcGxldGVkJwogICAgVFJJTkNPTUlOR0ZBSUxFRCA9ICdUUkluY29taW5nRmFpbGVkJwogICAgSU5DT01JTkdDT01QTEVURUQgPSAnSW5jb21pbmdDb21wbGV0ZWQnCiAgICBBRERSRVNTQU1MSU5JVElBVEVEID0gJ0FkZHJlc3NBbWxJbml0aWF0ZWQnCiAgICBBRERSRVNTQU1MQUREUkVTU1JFU09MVkUgPSAnQWRkcmVzc0FtbEFkZHJlc3NSZXNvbHZlJwogICAgQUREUkVTU0FNTFBSRVBBUkUgPSAnQWRkcmVzc0FtbFByZXBhcmUnCiAgICBBRERSRVNTQU1MUFJPQ0VTU0lORyA9ICdBZGRyZXNzQW1sUHJvY2Vzc2luZycKICAgIEFERFJFU1NBTUxTVUNDRUVERUQgPSAnQWRkcmVzc0FtbFN1Y2NlZWRlZCcKICAgIEFERFJFU1NBTUxGQUlMRUQgPSAnQWRkcmVzc0FtbEZhaWxlZCcKICAgIEFERFJFU1NBTUxDT01QTEVURUQgPSAnQWRkcmVzc0FtbENvbXBsZXRlZCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb21wbGlhbmNlUmVzdWx0U3RhdHVzZXNFbnVtIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/compliance_results.py b/fireblocks/models/compliance_results.py index a06907a8..82a8b85e 100644 --- a/fireblocks/models/compliance_results.py +++ b/fireblocks/models/compliance_results.py @@ -1,131 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.aml_registration_result import AmlRegistrationResult -from fireblocks.models.compliance_result_statuses_enum import ComplianceResultStatusesEnum -from fireblocks.models.compliance_screening_result import ComplianceScreeningResult -from fireblocks.models.tr_link_registration_result import TRLinkRegistrationResult -from fireblocks.models.tr_link_result import TRLinkResult -from typing import Optional, Set -from typing_extensions import Self - -class ComplianceResults(BaseModel): - """ - The result of the Compliance AML/Travel Rule screening. - """ # noqa: E501 - aml: Optional[ComplianceScreeningResult] = None - tr: Optional[ComplianceScreeningResult] = None - aml_list: Optional[List[ComplianceScreeningResult]] = Field(default=None, description="The list of all results of the AML screening.", alias="amlList") - status: Optional[ComplianceResultStatusesEnum] = None - aml_registration: Optional[AmlRegistrationResult] = Field(default=None, alias="amlRegistration") - trlink_registration: Optional[TRLinkRegistrationResult] = Field(default=None, alias="trlinkRegistration") - trlink_destinations: Optional[List[TRLinkResult]] = Field(default=None, description="The list of TRLink destination screening results.", alias="trlinkDestinations") - __properties: ClassVar[List[str]] = ["aml", "tr", "amlList", "status", "amlRegistration", "trlinkRegistration", "trlinkDestinations"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ComplianceResults from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of aml - if self.aml: - _dict['aml'] = self.aml.to_dict() - # override the default output from pydantic by calling `to_dict()` of tr - if self.tr: - _dict['tr'] = self.tr.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in aml_list (list) - _items = [] - if self.aml_list: - for _item_aml_list in self.aml_list: - if _item_aml_list: - _items.append(_item_aml_list.to_dict()) - _dict['amlList'] = _items - # override the default output from pydantic by calling `to_dict()` of aml_registration - if self.aml_registration: - _dict['amlRegistration'] = self.aml_registration.to_dict() - # override the default output from pydantic by calling `to_dict()` of trlink_registration - if self.trlink_registration: - _dict['trlinkRegistration'] = self.trlink_registration.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in trlink_destinations (list) - _items = [] - if self.trlink_destinations: - for _item_trlink_destinations in self.trlink_destinations: - if _item_trlink_destinations: - _items.append(_item_trlink_destinations.to_dict()) - _dict['trlinkDestinations'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ComplianceResults from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "aml": ComplianceScreeningResult.from_dict(obj["aml"]) if obj.get("aml") is not None else None, - "tr": ComplianceScreeningResult.from_dict(obj["tr"]) if obj.get("tr") is not None else None, - "amlList": [ComplianceScreeningResult.from_dict(_item) for _item in obj["amlList"]] if obj.get("amlList") is not None else None, - "status": obj.get("status"), - "amlRegistration": AmlRegistrationResult.from_dict(obj["amlRegistration"]) if obj.get("amlRegistration") is not None else None, - "trlinkRegistration": TRLinkRegistrationResult.from_dict(obj["trlinkRegistration"]) if obj.get("trlinkRegistration") is not None else None, - "trlinkDestinations": [TRLinkResult.from_dict(_item) for _item in obj["trlinkDestinations"]] if obj.get("trlinkDestinations") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfcmVnaXN0cmF0aW9uX3Jlc3VsdCBpbXBvcnQgQW1sUmVnaXN0cmF0aW9uUmVzdWx0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29tcGxpYW5jZV9yZXN1bHRfc3RhdHVzZXNfZW51bSBpbXBvcnQgQ29tcGxpYW5jZVJlc3VsdFN0YXR1c2VzRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbXBsaWFuY2Vfc2NyZWVuaW5nX3Jlc3VsdCBpbXBvcnQgQ29tcGxpYW5jZVNjcmVlbmluZ1Jlc3VsdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcmVnaXN0cmF0aW9uX3Jlc3VsdCBpbXBvcnQgVFJMaW5rUmVnaXN0cmF0aW9uUmVzdWx0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19yZXN1bHQgaW1wb3J0IFRSTGlua1Jlc3VsdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb21wbGlhbmNlUmVzdWx0cyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUaGUgcmVzdWx0IG9mIHRoZSBDb21wbGlhbmNlIEFNTC9UcmF2ZWwgUnVsZSBzY3JlZW5pbmcuCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhbWw6IE9wdGlvbmFsW0NvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHRdID0gTm9uZQogICAgdHI6IE9wdGlvbmFsW0NvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHRdID0gTm9uZQogICAgYW1sX2xpc3Q6IE9wdGlvbmFsW0xpc3RbQ29tcGxpYW5jZVNjcmVlbmluZ1Jlc3VsdF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGxpc3Qgb2YgYWxsIHJlc3VsdHMgb2YgdGhlIEFNTCBzY3JlZW5pbmcuIiwgYWxpYXM9ImFtbExpc3QiKQogICAgc3RhdHVzOiBPcHRpb25hbFtDb21wbGlhbmNlUmVzdWx0U3RhdHVzZXNFbnVtXSA9IE5vbmUKICAgIGFtbF9yZWdpc3RyYXRpb246IE9wdGlvbmFsW0FtbFJlZ2lzdHJhdGlvblJlc3VsdF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJhbWxSZWdpc3RyYXRpb24iKQogICAgdHJsaW5rX3JlZ2lzdHJhdGlvbjogT3B0aW9uYWxbVFJMaW5rUmVnaXN0cmF0aW9uUmVzdWx0XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InRybGlua1JlZ2lzdHJhdGlvbiIpCiAgICB0cmxpbmtfZGVzdGluYXRpb25zOiBPcHRpb25hbFtMaXN0W1RSTGlua1Jlc3VsdF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGxpc3Qgb2YgVFJMaW5rIGRlc3RpbmF0aW9uIHNjcmVlbmluZyByZXN1bHRzLiIsIGFsaWFzPSJ0cmxpbmtEZXN0aW5hdGlvbnMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhbWwiLCAidHIiLCAiYW1sTGlzdCIsICJzdGF0dXMiLCAiYW1sUmVnaXN0cmF0aW9uIiwgInRybGlua1JlZ2lzdHJhdGlvbiIsICJ0cmxpbmtEZXN0aW5hdGlvbnMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbXBsaWFuY2VSZXN1bHRzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYW1sCiAgICAgICAgaWYgc2VsZi5hbWw6CiAgICAgICAgICAgIF9kaWN0WydhbWwnXSA9IHNlbGYuYW1sLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiB0cgogICAgICAgIGlmIHNlbGYudHI6CiAgICAgICAgICAgIF9kaWN0Wyd0ciddID0gc2VsZi50ci50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGFtbF9saXN0IChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5hbWxfbGlzdDoKICAgICAgICAgICAgZm9yIF9pdGVtX2FtbF9saXN0IGluIHNlbGYuYW1sX2xpc3Q6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9hbWxfbGlzdDoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2FtbF9saXN0LnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2FtbExpc3QnXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhbWxfcmVnaXN0cmF0aW9uCiAgICAgICAgaWYgc2VsZi5hbWxfcmVnaXN0cmF0aW9uOgogICAgICAgICAgICBfZGljdFsnYW1sUmVnaXN0cmF0aW9uJ10gPSBzZWxmLmFtbF9yZWdpc3RyYXRpb24udG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHRybGlua19yZWdpc3RyYXRpb24KICAgICAgICBpZiBzZWxmLnRybGlua19yZWdpc3RyYXRpb246CiAgICAgICAgICAgIF9kaWN0Wyd0cmxpbmtSZWdpc3RyYXRpb24nXSA9IHNlbGYudHJsaW5rX3JlZ2lzdHJhdGlvbi50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIHRybGlua19kZXN0aW5hdGlvbnMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLnRybGlua19kZXN0aW5hdGlvbnM6CiAgICAgICAgICAgIGZvciBfaXRlbV90cmxpbmtfZGVzdGluYXRpb25zIGluIHNlbGYudHJsaW5rX2Rlc3RpbmF0aW9uczoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX3RybGlua19kZXN0aW5hdGlvbnM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV90cmxpbmtfZGVzdGluYXRpb25zLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ3RybGlua0Rlc3RpbmF0aW9ucyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb21wbGlhbmNlUmVzdWx0cyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhbWwiOiBDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0LmZyb21fZGljdChvYmpbImFtbCJdKSBpZiBvYmouZ2V0KCJhbWwiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJ0ciI6IENvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHQuZnJvbV9kaWN0KG9ialsidHIiXSkgaWYgb2JqLmdldCgidHIiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJhbWxMaXN0IjogW0NvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHQuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJhbWxMaXN0Il1dIGlmIG9iai5nZXQoImFtbExpc3QiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgImFtbFJlZ2lzdHJhdGlvbiI6IEFtbFJlZ2lzdHJhdGlvblJlc3VsdC5mcm9tX2RpY3Qob2JqWyJhbWxSZWdpc3RyYXRpb24iXSkgaWYgb2JqLmdldCgiYW1sUmVnaXN0cmF0aW9uIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAidHJsaW5rUmVnaXN0cmF0aW9uIjogVFJMaW5rUmVnaXN0cmF0aW9uUmVzdWx0LmZyb21fZGljdChvYmpbInRybGlua1JlZ2lzdHJhdGlvbiJdKSBpZiBvYmouZ2V0KCJ0cmxpbmtSZWdpc3RyYXRpb24iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJ0cmxpbmtEZXN0aW5hdGlvbnMiOiBbVFJMaW5rUmVzdWx0LmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsidHJsaW5rRGVzdGluYXRpb25zIl1dIGlmIG9iai5nZXQoInRybGlua0Rlc3RpbmF0aW9ucyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/compliance_screening_result.py b/fireblocks/models/compliance_screening_result.py index dcf3cd2b..61f9a852 100644 --- a/fireblocks/models/compliance_screening_result.py +++ b/fireblocks/models/compliance_screening_result.py @@ -1,171 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.aml_result import AmlResult -from fireblocks.models.aml_status_enum import AmlStatusEnum -from fireblocks.models.screening_risk_level_enum import ScreeningRiskLevelEnum -from fireblocks.models.screening_verdict_enum import ScreeningVerdictEnum -from fireblocks.models.travel_rule_prescreening_rule import TravelRulePrescreeningRule -from fireblocks.models.travel_rule_result import TravelRuleResult -from typing import Optional, Set -from typing_extensions import Self - -class ComplianceScreeningResult(BaseModel): - """ - The result of the AML/Travel Rule screening. This unified schema contains all fields that may be returned for both AML and Travel Rule screening results. Not all fields will be present in every response - the actual fields depend on the screening type and provider. - """ # noqa: E501 - provider: Optional[StrictStr] = Field(default=None, description="The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, SCORECHAIN, MERKLE_SCIENCE, etc. For Travel Rule: NOTABENE, SYGNA, or any TRLink provider name ") - payload: Optional[Dict[str, Any]] = Field(default=None, description="The raw payload of the screening result from the provider. The payload is a JSON object that contains the screening result. The payload structure is different for each screening provider. This field contains the complete, unmodified response from the screening service. ") - timestamp: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp in milliseconds when the screening result was generated") - screening_status: Optional[StrictStr] = Field(default=None, description="Current status of the screening process", alias="screeningStatus") - bypass_reason: Optional[StrictStr] = Field(default=None, description="Reason for bypassing the screening, if applicable. For AML: SANCTIONS_SCREENING_BYPASS, SANCTIONS_RECIPIENT_BYPASS, etc. For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc. ", alias="bypassReason") - status: Optional[AmlStatusEnum] = None - prev_status: Optional[AmlStatusEnum] = Field(default=None, alias="prevStatus") - prev_bypass_reason: Optional[StrictStr] = Field(default=None, description="Previous bypass reason before the current bypass reason change", alias="prevBypassReason") - verdict: Optional[ScreeningVerdictEnum] = None - risk: Optional[ScreeningRiskLevelEnum] = None - extended_risk: Optional[ScreeningRiskLevelEnum] = Field(default=None, alias="extendedRisk") - external_id: Optional[StrictStr] = Field(default=None, description="External identifier for the screening (provider-specific)", alias="externalId") - customer_ref_id: Optional[StrictStr] = Field(default=None, description="Customer-provided reference identifier for tracking", alias="customerRefId") - ref_id: Optional[StrictStr] = Field(default=None, description="Internal reference identifier", alias="refId") - category: Optional[StrictStr] = Field(default=None, description="Risk category classification. Examples: EXCHANGE, GAMBLING, MIXER, DARKNET_SERVICE, SANCTIONED_ENTITY ") - category_id: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Numeric identifier for the risk category", alias="categoryId") - dest_address: Optional[StrictStr] = Field(default=None, description="The destination blockchain address associated with the screening", alias="destAddress") - dest_tag: Optional[StrictStr] = Field(default=None, description="Destination tag or memo (for chains that support it like XRP, XLM)", alias="destTag") - dest_record_id: Optional[StrictStr] = Field(default=None, description="The destination record identifier used by the screening provider", alias="destRecordId") - address_resolution_signature: Optional[StrictStr] = Field(default=None, description="Cryptographic signature for address resolution verification", alias="addressResolutionSignature") - aml_result: Optional[AmlResult] = Field(default=None, alias="amlResult") - result: Optional[TravelRuleResult] = None - details_message: Optional[StrictStr] = Field(default=None, description="Additional human-readable details or message about the screening result", alias="detailsMessage") - matched_alert: Optional[Dict[str, Any]] = Field(default=None, description="Information about the AML alert that was matched, if any. Contains details about the specific alert that triggered during screening. ", alias="matchedAlert") - matched_rule: Optional[Dict[str, Any]] = Field(default=None, description="The matched rule information for this screening result. Contains details about which screening rule was applied and matched. ", alias="matchedRule") - matched_prescreening_rule: Optional[TravelRulePrescreeningRule] = Field(default=None, alias="matchedPrescreeningRule") - matched_no_trm_screening_rule: Optional[Dict[str, Any]] = Field(default=None, description="Matched no-TRM (Travel Rule Message) screening rule details. Used when TRLink screening detects a missing TRM scenario. ", alias="matchedNoTrmScreeningRule") - customer_integration_id: Optional[StrictStr] = Field(default=None, description="Customer integration identifier used by Travel Rule providers", alias="customerIntegrationId") - customer_short_name: Optional[StrictStr] = Field(default=None, description="Customer short name registered with Travel Rule providers", alias="customerShortName") - travel_rule_message_id: Optional[StrictStr] = Field(default=None, description="Travel rule message identifier for linking and tracking across providers", alias="travelRuleMessageId") - __properties: ClassVar[List[str]] = ["provider", "payload", "timestamp", "screeningStatus", "bypassReason", "status", "prevStatus", "prevBypassReason", "verdict", "risk", "extendedRisk", "externalId", "customerRefId", "refId", "category", "categoryId", "destAddress", "destTag", "destRecordId", "addressResolutionSignature", "amlResult", "result", "detailsMessage", "matchedAlert", "matchedRule", "matchedPrescreeningRule", "matchedNoTrmScreeningRule", "customerIntegrationId", "customerShortName", "travelRuleMessageId"] - - @field_validator('screening_status') - def screening_status_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['COMPLETED', 'PENDING', 'BYPASSED', 'FAILED', 'FROZEN']): - raise ValueError("must be one of enum values ('COMPLETED', 'PENDING', 'BYPASSED', 'FAILED', 'FROZEN')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ComplianceScreeningResult from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of aml_result - if self.aml_result: - _dict['amlResult'] = self.aml_result.to_dict() - # override the default output from pydantic by calling `to_dict()` of result - if self.result: - _dict['result'] = self.result.to_dict() - # override the default output from pydantic by calling `to_dict()` of matched_prescreening_rule - if self.matched_prescreening_rule: - _dict['matchedPrescreeningRule'] = self.matched_prescreening_rule.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ComplianceScreeningResult from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "provider": obj.get("provider"), - "payload": obj.get("payload"), - "timestamp": obj.get("timestamp"), - "screeningStatus": obj.get("screeningStatus"), - "bypassReason": obj.get("bypassReason"), - "status": obj.get("status"), - "prevStatus": obj.get("prevStatus"), - "prevBypassReason": obj.get("prevBypassReason"), - "verdict": obj.get("verdict"), - "risk": obj.get("risk"), - "extendedRisk": obj.get("extendedRisk"), - "externalId": obj.get("externalId"), - "customerRefId": obj.get("customerRefId"), - "refId": obj.get("refId"), - "category": obj.get("category"), - "categoryId": obj.get("categoryId"), - "destAddress": obj.get("destAddress"), - "destTag": obj.get("destTag"), - "destRecordId": obj.get("destRecordId"), - "addressResolutionSignature": obj.get("addressResolutionSignature"), - "amlResult": AmlResult.from_dict(obj["amlResult"]) if obj.get("amlResult") is not None else None, - "result": TravelRuleResult.from_dict(obj["result"]) if obj.get("result") is not None else None, - "detailsMessage": obj.get("detailsMessage"), - "matchedAlert": obj.get("matchedAlert"), - "matchedRule": obj.get("matchedRule"), - "matchedPrescreeningRule": TravelRulePrescreeningRule.from_dict(obj["matchedPrescreeningRule"]) if obj.get("matchedPrescreeningRule") is not None else None, - "matchedNoTrmScreeningRule": obj.get("matchedNoTrmScreeningRule"), - "customerIntegrationId": obj.get("customerIntegrationId"), - "customerShortName": obj.get("customerShortName"), - "travelRuleMessageId": obj.get("travelRuleMessageId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF9yZXN1bHQgaW1wb3J0IEFtbFJlc3VsdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF9zdGF0dXNfZW51bSBpbXBvcnQgQW1sU3RhdHVzRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ192ZXJkaWN0X2VudW0gaW1wb3J0IFNjcmVlbmluZ1ZlcmRpY3RFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfcHJlc2NyZWVuaW5nX3J1bGUgaW1wb3J0IFRyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfcmVzdWx0IGltcG9ydCBUcmF2ZWxSdWxlUmVzdWx0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHQoQmFzZU1vZGVsKToKICAgICIiIgogICAgVGhlIHJlc3VsdCBvZiB0aGUgQU1ML1RyYXZlbCBSdWxlIHNjcmVlbmluZy4gVGhpcyB1bmlmaWVkIHNjaGVtYSBjb250YWlucyBhbGwgZmllbGRzIHRoYXQgbWF5IGJlIHJldHVybmVkIGZvciBib3RoIEFNTCBhbmQgVHJhdmVsIFJ1bGUgc2NyZWVuaW5nIHJlc3VsdHMuIE5vdCBhbGwgZmllbGRzIHdpbGwgYmUgcHJlc2VudCBpbiBldmVyeSByZXNwb25zZSAtIHRoZSBhY3R1YWwgZmllbGRzIGRlcGVuZCBvbiB0aGUgc2NyZWVuaW5nIHR5cGUgYW5kIHByb3ZpZGVyLiAKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHByb3ZpZGVyOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIEFNTC9UcmF2ZWwgUnVsZSBwcm92aWRlciBuYW1lLiBGb3IgQU1MOiBFTExJUFRJQywgQ0hBSU5BTFlTSVMsIGV0Yy4gRm9yIFRyYXZlbCBSdWxlOiBOT1RBQkVORSwgU1VNU1VCLCBHVFIsIG9yIGFueSBUUkxpbmsgcHJvdmlkZXIgbmFtZS4gIikKICAgIHBheWxvYWQ6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSByYXcgcGF5bG9hZCBvZiB0aGUgc2NyZWVuaW5nIHJlc3VsdCBmcm9tIHRoZSBwcm92aWRlci4gVGhlIHBheWxvYWQgaXMgYSBKU09OIG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBzY3JlZW5pbmcgcmVzdWx0LiBUaGUgcGF5bG9hZCBzdHJ1Y3R1cmUgaXMgZGlmZmVyZW50IGZvciBlYWNoIHNjcmVlbmluZyBwcm92aWRlci4gVGhpcyBmaWVsZCBjb250YWlucyB0aGUgY29tcGxldGUsIHVubW9kaWZpZWQgcmVzcG9uc2UgZnJvbSB0aGUgc2NyZWVuaW5nIHNlcnZpY2UuICIpCiAgICB0aW1lc3RhbXA6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlVuaXggdGltZXN0YW1wIGluIG1pbGxpc2Vjb25kcyB3aGVuIHRoZSBzY3JlZW5pbmcgcmVzdWx0IHdhcyBnZW5lcmF0ZWQiKQogICAgc2NyZWVuaW5nX3N0YXR1czogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkN1cnJlbnQgc3RhdHVzIG9mIHRoZSBzY3JlZW5pbmcgcHJvY2VzcyIsIGFsaWFzPSJzY3JlZW5pbmdTdGF0dXMiKQogICAgYnlwYXNzX3JlYXNvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlJlYXNvbiBmb3IgYnlwYXNzaW5nIHRoZSBzY3JlZW5pbmcsIGlmIGFwcGxpY2FibGUuIEZvciBBTUw6IFVOU1VQUE9SVEVEX0FTU0VULCBQQVNTRURfQllfUE9MSUNZLiBGb3IgVHJhdmVsIFJ1bGU6IFVOU1VQUE9SVEVEX0FTU0VULCBOT19UUkFWRUxfUlVMRV9NRVNTQUdFLCBUUkFOU0FDVElPTl9aRVJPX0FNT1VOVC4gIiwgYWxpYXM9ImJ5cGFzc1JlYXNvbiIpCiAgICBzdGF0dXM6IE9wdGlvbmFsW0FtbFN0YXR1c0VudW1dID0gTm9uZQogICAgcHJldl9zdGF0dXM6IE9wdGlvbmFsW0FtbFN0YXR1c0VudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0icHJldlN0YXR1cyIpCiAgICBwcmV2X2J5cGFzc19yZWFzb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXByZWNhdGVkOiBUaGlzIGZpZWxkIGlzIG5vdCBjdXJyZW50bHkgcmV0dXJuZWQgaW4gdGhlIEFQSSByZXNwb25zZS4gUHJldmlvdXMgYnlwYXNzIHJlYXNvbiBiZWZvcmUgdGhlIGN1cnJlbnQgYnlwYXNzIHJlYXNvbiBjaGFuZ2UuICIsIGFsaWFzPSJwcmV2QnlwYXNzUmVhc29uIikKICAgIHZlcmRpY3Q6IE9wdGlvbmFsW1NjcmVlbmluZ1ZlcmRpY3RFbnVtXSA9IE5vbmUKICAgIHJpc2s6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSaXNrIGxldmVsIGFzc2Vzc21lbnQgZm9yIHNjcmVlbmluZyByZXN1bHRzLiBWYWx1ZXMgdmFyeSBieSBwcm92aWRlciBhbmQgYXJlIG5vdCBtYW5hZ2VkIGJ5IHRoaXMgc2VydmljZS4gIEtub3duIHZhbHVlcyBieSBwcm92aWRlcjogLSBDaGFpbmFseXNpczogc2V2ZXJlUmlzaywgaGlnaFJpc2ssIG1lZGl1bVJpc2ssIGxvd1Jpc2ssIG5vUmlza0luZm8gLSBFbGxpcHRpYzogbm9SaXNrRGV0ZWN0ZWQgIExlZ2FjeSB2YWx1ZXMgKFNDUkVBTUlOR19TTkFLRV9DQVNFLCBtYXkgYXBwZWFyIGluIG9sZCB0cmFuc2FjdGlvbnMpOiBWRVJZX0hJR0gsIFNFVkVSRSwgSElHSCwgTUVESVVNLCBMT1csIE5PX1JJU0tfSU5GTywgVU5LTk9XTiAiKQogICAgZXh0ZW5kZWRfcmlzazogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRlcHJlY2F0ZWQ6IFRoaXMgZmllbGQgaXMgbm90IGN1cnJlbnRseSByZXR1cm5lZCBpbiB0aGUgQVBJIHJlc3BvbnNlLiBVc2UgcmlzayBpbnN0ZWFkLiAiLCBhbGlhcz0iZXh0ZW5kZWRSaXNrIikKICAgIGV4dGVybmFsX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRXh0ZXJuYWwgaWRlbnRpZmllciBmb3IgdGhlIHNjcmVlbmluZyAocHJvdmlkZXItc3BlY2lmaWMpIiwgYWxpYXM9ImV4dGVybmFsSWQiKQogICAgY3VzdG9tZXJfcmVmX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3VzdG9tZXItcHJvdmlkZWQgcmVmZXJlbmNlIGlkZW50aWZpZXIgZm9yIHRyYWNraW5nIiwgYWxpYXM9ImN1c3RvbWVyUmVmSWQiKQogICAgcmVmX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVwcmVjYXRlZDogVGhpcyBmaWVsZCBpcyBub3QgY3VycmVudGx5IHJldHVybmVkIGluIHRoZSBBUEkgcmVzcG9uc2UuIEludGVybmFsIHJlZmVyZW5jZSBpZGVudGlmaWVyLiAiLCBhbGlhcz0icmVmSWQiKQogICAgY2F0ZWdvcnk6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSaXNrIGNhdGVnb3J5IGNsYXNzaWZpY2F0aW9uLiBFeGFtcGxlczogRVhDSEFOR0UsIEdBTUJMSU5HLCBNSVhFUiwgREFSS05FVF9TRVJWSUNFLCBTQU5DVElPTkVEX0VOVElUWSAiKQogICAgY2F0ZWdvcnlfaWQ6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik51bWVyaWMgaWRlbnRpZmllciBmb3IgdGhlIHJpc2sgY2F0ZWdvcnkiLCBhbGlhcz0iY2F0ZWdvcnlJZCIpCiAgICBkZXN0X2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgZGVzdGluYXRpb24gYmxvY2tjaGFpbiBhZGRyZXNzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2NyZWVuaW5nIiwgYWxpYXM9ImRlc3RBZGRyZXNzIikKICAgIGRlc3RfdGFnOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVzdGluYXRpb24gdGFnIG9yIG1lbW8gKGZvciBjaGFpbnMgdGhhdCBzdXBwb3J0IGl0IGxpa2UgWFJQLCBYTE0pIiwgYWxpYXM9ImRlc3RUYWciKQogICAgZGVzdF9yZWNvcmRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXByZWNhdGVkOiBUaGlzIGZpZWxkIGlzIG5vdCBjdXJyZW50bHkgcmV0dXJuZWQgaW4gdGhlIEFQSSByZXNwb25zZS4gVGhlIGRlc3RpbmF0aW9uIHJlY29yZCBpZGVudGlmaWVyIHVzZWQgYnkgdGhlIHNjcmVlbmluZyBwcm92aWRlci4gIiwgYWxpYXM9ImRlc3RSZWNvcmRJZCIpCiAgICBhZGRyZXNzX3Jlc29sdXRpb25fc2lnbmF0dXJlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVwcmVjYXRlZDogVGhpcyBmaWVsZCBpcyBub3QgY3VycmVudGx5IHJldHVybmVkIGluIHRoZSBBUEkgcmVzcG9uc2UuIENyeXB0b2dyYXBoaWMgc2lnbmF0dXJlIGZvciBhZGRyZXNzIHJlc29sdXRpb24gdmVyaWZpY2F0aW9uLiAiLCBhbGlhcz0iYWRkcmVzc1Jlc29sdXRpb25TaWduYXR1cmUiKQogICAgYW1sX3Jlc3VsdDogT3B0aW9uYWxbQW1sUmVzdWx0XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImFtbFJlc3VsdCIpCiAgICByZXN1bHQ6IE9wdGlvbmFsW1RyYXZlbFJ1bGVSZXN1bHRdID0gTm9uZQogICAgZGV0YWlsc19tZXNzYWdlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQWRkaXRpb25hbCBodW1hbi1yZWFkYWJsZSBkZXRhaWxzIG9yIG1lc3NhZ2UgYWJvdXQgdGhlIHNjcmVlbmluZyByZXN1bHQiLCBhbGlhcz0iZGV0YWlsc01lc3NhZ2UiKQogICAgbWF0Y2hlZF9hbGVydDogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSW5mb3JtYXRpb24gYWJvdXQgdGhlIEFNTCBhbGVydCB0aGF0IHdhcyBtYXRjaGVkLCBpZiBhbnkuIENvbnRhaW5zIGRldGFpbHMgYWJvdXQgdGhlIHNwZWNpZmljIGFsZXJ0IHRoYXQgdHJpZ2dlcmVkIGR1cmluZyBzY3JlZW5pbmcuICIsIGFsaWFzPSJtYXRjaGVkQWxlcnQiKQogICAgbWF0Y2hlZF9ydWxlOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgbWF0Y2hlZCBydWxlIGluZm9ybWF0aW9uIGZvciB0aGlzIHNjcmVlbmluZyByZXN1bHQuIENvbnRhaW5zIGRldGFpbHMgYWJvdXQgd2hpY2ggc2NyZWVuaW5nIHJ1bGUgd2FzIGFwcGxpZWQgYW5kIG1hdGNoZWQuICIsIGFsaWFzPSJtYXRjaGVkUnVsZSIpCiAgICBtYXRjaGVkX3ByZXNjcmVlbmluZ19ydWxlOiBPcHRpb25hbFtUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJtYXRjaGVkUHJlc2NyZWVuaW5nUnVsZSIpCiAgICBtYXRjaGVkX25vX3RybV9zY3JlZW5pbmdfcnVsZTogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTWF0Y2hlZCBuby1UUk0gKFRyYXZlbCBSdWxlIE1lc3NhZ2UpIHNjcmVlbmluZyBydWxlIGRldGFpbHMuIFVzZWQgd2hlbiBUUkxpbmsgc2NyZWVuaW5nIGRldGVjdHMgYSBtaXNzaW5nIFRSTSBzY2VuYXJpby4gIiwgYWxpYXM9Im1hdGNoZWROb1RybVNjcmVlbmluZ1J1bGUiKQogICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJDdXN0b21lciBpbnRlZ3JhdGlvbiBpZGVudGlmaWVyIHVzZWQgYnkgVHJhdmVsIFJ1bGUgcHJvdmlkZXJzIiwgYWxpYXM9ImN1c3RvbWVySW50ZWdyYXRpb25JZCIpCiAgICBjdXN0b21lcl9zaG9ydF9uYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3VzdG9tZXIgc2hvcnQgbmFtZSByZWdpc3RlcmVkIHdpdGggVHJhdmVsIFJ1bGUgcHJvdmlkZXJzIiwgYWxpYXM9ImN1c3RvbWVyU2hvcnROYW1lIikKICAgIHRyYXZlbF9ydWxlX21lc3NhZ2VfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUcmF2ZWwgcnVsZSBtZXNzYWdlIGlkZW50aWZpZXIgZm9yIGxpbmtpbmcgYW5kIHRyYWNraW5nIGFjcm9zcyBwcm92aWRlcnMiLCBhbGlhcz0idHJhdmVsUnVsZU1lc3NhZ2VJZCIpCiAgICBwcm92aWRlcl9yZXNwb25zZTogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ29tcGxldGUgcmVzcG9uc2UgZnJvbSB0aGUgc2NyZWVuaW5nIHByb3ZpZGVyLiBUaGlzIGlzIGEgZHluYW1pYyBvYmplY3QgdGhhdCB2YXJpZXMgc2lnbmlmaWNhbnRseSBiZXR3ZWVuIGRpZmZlcmVudCBwcm92aWRlcnMgKENoYWluYWx5c2lzLCBFbGxpcHRpYywgTk9UQUJFTkUsIGV0Yy4pLiBFYWNoIHByb3ZpZGVyIGhhcyB0aGVpciBvd24gcHJvcHJpZXRhcnkgcmVzcG9uc2UgZm9ybWF0IGFuZCBzY2hlbWEuICBGb3IgQU1MIHByb3ZpZGVyczogQ29udGFpbnMgcmlzayBzY29yZXMsIGFsZXJ0cywgZW50aXR5IGluZm9ybWF0aW9uIEZvciBUcmF2ZWwgUnVsZSBwcm92aWRlcnM6IENvbnRhaW5zIFZBU1AgaW5mb3JtYXRpb24sIFBJSSBkYXRhLCBwcm90b2NvbC1zcGVjaWZpYyBmaWVsZHMgIFRoZSBzdHJ1Y3R1cmUgaXMgcHJvdmlkZXItZGVwZW5kZW50IGFuZCBjYW5ub3QgYmUgc3RhbmRhcmRpemVkIGFzIGVhY2ggdmVuZG9yIGltcGxlbWVudHMgdGhlaXIgb3duIHByb3ByaWV0YXJ5IGRhdGEgbW9kZWxzIGFuZCByZXNwb25zZSBmb3JtYXRzLiAiLCBhbGlhcz0icHJvdmlkZXJSZXNwb25zZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInByb3ZpZGVyIiwgInBheWxvYWQiLCAidGltZXN0YW1wIiwgInNjcmVlbmluZ1N0YXR1cyIsICJieXBhc3NSZWFzb24iLCAic3RhdHVzIiwgInByZXZTdGF0dXMiLCAicHJldkJ5cGFzc1JlYXNvbiIsICJ2ZXJkaWN0IiwgInJpc2siLCAiZXh0ZW5kZWRSaXNrIiwgImV4dGVybmFsSWQiLCAiY3VzdG9tZXJSZWZJZCIsICJyZWZJZCIsICJjYXRlZ29yeSIsICJjYXRlZ29yeUlkIiwgImRlc3RBZGRyZXNzIiwgImRlc3RUYWciLCAiZGVzdFJlY29yZElkIiwgImFkZHJlc3NSZXNvbHV0aW9uU2lnbmF0dXJlIiwgImFtbFJlc3VsdCIsICJyZXN1bHQiLCAiZGV0YWlsc01lc3NhZ2UiLCAibWF0Y2hlZEFsZXJ0IiwgIm1hdGNoZWRSdWxlIiwgIm1hdGNoZWRQcmVzY3JlZW5pbmdSdWxlIiwgIm1hdGNoZWROb1RybVNjcmVlbmluZ1J1bGUiLCAiY3VzdG9tZXJJbnRlZ3JhdGlvbklkIiwgImN1c3RvbWVyU2hvcnROYW1lIiwgInRyYXZlbFJ1bGVNZXNzYWdlSWQiLCAicHJvdmlkZXJSZXNwb25zZSJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignc2NyZWVuaW5nX3N0YXR1cycpCiAgICBkZWYgc2NyZWVuaW5nX3N0YXR1c192YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnQ09NUExFVEVEJywgJ1BFTkRJTkcnLCAnQllQQVNTRUQnLCAnRkFJTEVEJywgJ0ZST1pFTiddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdDT01QTEVURUQnLCAnUEVORElORycsICdCWVBBU1NFRCcsICdGQUlMRUQnLCAnRlJPWkVOJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhbWxfcmVzdWx0CiAgICAgICAgaWYgc2VsZi5hbWxfcmVzdWx0OgogICAgICAgICAgICBfZGljdFsnYW1sUmVzdWx0J10gPSBzZWxmLmFtbF9yZXN1bHQudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHJlc3VsdAogICAgICAgIGlmIHNlbGYucmVzdWx0OgogICAgICAgICAgICBfZGljdFsncmVzdWx0J10gPSBzZWxmLnJlc3VsdC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgbWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZQogICAgICAgIGlmIHNlbGYubWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZToKICAgICAgICAgICAgX2RpY3RbJ21hdGNoZWRQcmVzY3JlZW5pbmdSdWxlJ10gPSBzZWxmLm1hdGNoZWRfcHJlc2NyZWVuaW5nX3J1bGUudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInByb3ZpZGVyIjogb2JqLmdldCgicHJvdmlkZXIiKSwKICAgICAgICAgICAgInBheWxvYWQiOiBvYmouZ2V0KCJwYXlsb2FkIiksCiAgICAgICAgICAgICJ0aW1lc3RhbXAiOiBvYmouZ2V0KCJ0aW1lc3RhbXAiKSwKICAgICAgICAgICAgInNjcmVlbmluZ1N0YXR1cyI6IG9iai5nZXQoInNjcmVlbmluZ1N0YXR1cyIpLAogICAgICAgICAgICAiYnlwYXNzUmVhc29uIjogb2JqLmdldCgiYnlwYXNzUmVhc29uIiksCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgInByZXZTdGF0dXMiOiBvYmouZ2V0KCJwcmV2U3RhdHVzIiksCiAgICAgICAgICAgICJwcmV2QnlwYXNzUmVhc29uIjogb2JqLmdldCgicHJldkJ5cGFzc1JlYXNvbiIpLAogICAgICAgICAgICAidmVyZGljdCI6IG9iai5nZXQoInZlcmRpY3QiKSwKICAgICAgICAgICAgInJpc2siOiBvYmouZ2V0KCJyaXNrIiksCiAgICAgICAgICAgICJleHRlbmRlZFJpc2siOiBvYmouZ2V0KCJleHRlbmRlZFJpc2siKSwKICAgICAgICAgICAgImV4dGVybmFsSWQiOiBvYmouZ2V0KCJleHRlcm5hbElkIiksCiAgICAgICAgICAgICJjdXN0b21lclJlZklkIjogb2JqLmdldCgiY3VzdG9tZXJSZWZJZCIpLAogICAgICAgICAgICAicmVmSWQiOiBvYmouZ2V0KCJyZWZJZCIpLAogICAgICAgICAgICAiY2F0ZWdvcnkiOiBvYmouZ2V0KCJjYXRlZ29yeSIpLAogICAgICAgICAgICAiY2F0ZWdvcnlJZCI6IG9iai5nZXQoImNhdGVnb3J5SWQiKSwKICAgICAgICAgICAgImRlc3RBZGRyZXNzIjogb2JqLmdldCgiZGVzdEFkZHJlc3MiKSwKICAgICAgICAgICAgImRlc3RUYWciOiBvYmouZ2V0KCJkZXN0VGFnIiksCiAgICAgICAgICAgICJkZXN0UmVjb3JkSWQiOiBvYmouZ2V0KCJkZXN0UmVjb3JkSWQiKSwKICAgICAgICAgICAgImFkZHJlc3NSZXNvbHV0aW9uU2lnbmF0dXJlIjogb2JqLmdldCgiYWRkcmVzc1Jlc29sdXRpb25TaWduYXR1cmUiKSwKICAgICAgICAgICAgImFtbFJlc3VsdCI6IEFtbFJlc3VsdC5mcm9tX2RpY3Qob2JqWyJhbWxSZXN1bHQiXSkgaWYgb2JqLmdldCgiYW1sUmVzdWx0IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAicmVzdWx0IjogVHJhdmVsUnVsZVJlc3VsdC5mcm9tX2RpY3Qob2JqWyJyZXN1bHQiXSkgaWYgb2JqLmdldCgicmVzdWx0IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZGV0YWlsc01lc3NhZ2UiOiBvYmouZ2V0KCJkZXRhaWxzTWVzc2FnZSIpLAogICAgICAgICAgICAibWF0Y2hlZEFsZXJ0Ijogb2JqLmdldCgibWF0Y2hlZEFsZXJ0IiksCiAgICAgICAgICAgICJtYXRjaGVkUnVsZSI6IG9iai5nZXQoIm1hdGNoZWRSdWxlIiksCiAgICAgICAgICAgICJtYXRjaGVkUHJlc2NyZWVuaW5nUnVsZSI6IFRyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlLmZyb21fZGljdChvYmpbIm1hdGNoZWRQcmVzY3JlZW5pbmdSdWxlIl0pIGlmIG9iai5nZXQoIm1hdGNoZWRQcmVzY3JlZW5pbmdSdWxlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibWF0Y2hlZE5vVHJtU2NyZWVuaW5nUnVsZSI6IG9iai5nZXQoIm1hdGNoZWROb1RybVNjcmVlbmluZ1J1bGUiKSwKICAgICAgICAgICAgImN1c3RvbWVySW50ZWdyYXRpb25JZCI6IG9iai5nZXQoImN1c3RvbWVySW50ZWdyYXRpb25JZCIpLAogICAgICAgICAgICAiY3VzdG9tZXJTaG9ydE5hbWUiOiBvYmouZ2V0KCJjdXN0b21lclNob3J0TmFtZSIpLAogICAgICAgICAgICAidHJhdmVsUnVsZU1lc3NhZ2VJZCI6IG9iai5nZXQoInRyYXZlbFJ1bGVNZXNzYWdlSWQiKSwKICAgICAgICAgICAgInByb3ZpZGVyUmVzcG9uc2UiOiBvYmouZ2V0KCJwcm92aWRlclJlc3BvbnNlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/compliance_screening_result_full_payload.py b/fireblocks/models/compliance_screening_result_full_payload.py index 62cad8b8..77cd7b8f 100644 --- a/fireblocks/models/compliance_screening_result_full_payload.py +++ b/fireblocks/models/compliance_screening_result_full_payload.py @@ -1,171 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.aml_status_enum import AmlStatusEnum -from fireblocks.models.screening_aml_result import ScreeningAmlResult -from fireblocks.models.screening_risk_level_enum import ScreeningRiskLevelEnum -from fireblocks.models.screening_travel_rule_prescreening_rule import ScreeningTravelRulePrescreeningRule -from fireblocks.models.screening_travel_rule_result import ScreeningTravelRuleResult -from fireblocks.models.screening_verdict_enum import ScreeningVerdictEnum -from typing import Optional, Set -from typing_extensions import Self - -class ComplianceScreeningResultFullPayload(BaseModel): - """ - The result of the AML/Travel Rule screening. This unified schema contains all fields that may be returned for both AML and Travel Rule screening results. Not all fields will be present in every response - the actual fields depend on the screening type and provider. - """ # noqa: E501 - provider: Optional[StrictStr] = Field(default=None, description="The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. For Travel Rule: NOTABENE, SUMSUB, or any TRLink provider name ") - payload: Optional[Dict[str, Any]] = Field(default=None, description="The raw payload of the screening result from the provider. The payload is a JSON object that contains the screening result. The payload structure is different for each screening provider. This field contains the complete, unmodified response from the screening service. ") - timestamp: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp in milliseconds when the screening result was generated") - screening_status: Optional[StrictStr] = Field(default=None, description="Current status of the screening process", alias="screeningStatus") - bypass_reason: Optional[StrictStr] = Field(default=None, description="Reason for bypassing the screening, if applicable. For AML: SANCTIONS_SCREENING_BYPASS, SANCTIONS_RECIPIENT_BYPASS, etc. For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc. ", alias="bypassReason") - status: Optional[AmlStatusEnum] = None - prev_status: Optional[AmlStatusEnum] = Field(default=None, alias="prevStatus") - prev_bypass_reason: Optional[StrictStr] = Field(default=None, description="Previous bypass reason before the current bypass reason change", alias="prevBypassReason") - verdict: Optional[ScreeningVerdictEnum] = None - risk: Optional[ScreeningRiskLevelEnum] = None - extended_risk: Optional[ScreeningRiskLevelEnum] = Field(default=None, alias="extendedRisk") - external_id: Optional[StrictStr] = Field(default=None, description="External identifier for the screening (provider-specific)", alias="externalId") - customer_ref_id: Optional[StrictStr] = Field(default=None, description="Customer-provided reference identifier for tracking", alias="customerRefId") - ref_id: Optional[StrictStr] = Field(default=None, description="Internal reference identifier", alias="refId") - category: Optional[StrictStr] = Field(default=None, description="Risk category classification. Examples: EXCHANGE, GAMBLING, MIXER, DARKNET_SERVICE, SANCTIONED_ENTITY ") - category_id: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Numeric identifier for the risk category", alias="categoryId") - dest_address: Optional[StrictStr] = Field(default=None, description="The destination blockchain address associated with the screening", alias="destAddress") - dest_tag: Optional[StrictStr] = Field(default=None, description="Destination tag or memo (for chains that support it like XRP, XLM)", alias="destTag") - dest_record_id: Optional[StrictStr] = Field(default=None, description="The destination record identifier used by the screening provider", alias="destRecordId") - address_resolution_signature: Optional[StrictStr] = Field(default=None, description="Cryptographic signature for address resolution verification", alias="addressResolutionSignature") - aml_result: Optional[ScreeningAmlResult] = Field(default=None, alias="amlResult") - result: Optional[ScreeningTravelRuleResult] = None - details_message: Optional[StrictStr] = Field(default=None, description="Additional human-readable details or message about the screening result", alias="detailsMessage") - matched_alert: Optional[Dict[str, Any]] = Field(default=None, description="Information about the AML alert that was matched, if any. Contains details about the specific alert that triggered during screening. ", alias="matchedAlert") - matched_rule: Optional[Dict[str, Any]] = Field(default=None, description="The matched rule information for this screening result. Contains details about which screening rule was applied and matched. ", alias="matchedRule") - matched_prescreening_rule: Optional[ScreeningTravelRulePrescreeningRule] = Field(default=None, alias="matchedPrescreeningRule") - matched_no_trm_screening_rule: Optional[Dict[str, Any]] = Field(default=None, description="Matched no-TRM (Travel Rule Message) screening rule details. Used when TRLink screening detects a missing TRM scenario. ", alias="matchedNoTrmScreeningRule") - customer_integration_id: Optional[StrictStr] = Field(default=None, description="Customer integration identifier used by Travel Rule providers", alias="customerIntegrationId") - customer_short_name: Optional[StrictStr] = Field(default=None, description="Customer short name registered with Travel Rule providers", alias="customerShortName") - travel_rule_message_id: Optional[StrictStr] = Field(default=None, description="Travel rule message identifier for linking and tracking across providers", alias="travelRuleMessageId") - __properties: ClassVar[List[str]] = ["provider", "payload", "timestamp", "screeningStatus", "bypassReason", "status", "prevStatus", "prevBypassReason", "verdict", "risk", "extendedRisk", "externalId", "customerRefId", "refId", "category", "categoryId", "destAddress", "destTag", "destRecordId", "addressResolutionSignature", "amlResult", "result", "detailsMessage", "matchedAlert", "matchedRule", "matchedPrescreeningRule", "matchedNoTrmScreeningRule", "customerIntegrationId", "customerShortName", "travelRuleMessageId"] - - @field_validator('screening_status') - def screening_status_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['COMPLETED', 'PENDING', 'BYPASSED', 'FAILED', 'FROZEN']): - raise ValueError("must be one of enum values ('COMPLETED', 'PENDING', 'BYPASSED', 'FAILED', 'FROZEN')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ComplianceScreeningResultFullPayload from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of aml_result - if self.aml_result: - _dict['amlResult'] = self.aml_result.to_dict() - # override the default output from pydantic by calling `to_dict()` of result - if self.result: - _dict['result'] = self.result.to_dict() - # override the default output from pydantic by calling `to_dict()` of matched_prescreening_rule - if self.matched_prescreening_rule: - _dict['matchedPrescreeningRule'] = self.matched_prescreening_rule.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ComplianceScreeningResultFullPayload from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "provider": obj.get("provider"), - "payload": obj.get("payload"), - "timestamp": obj.get("timestamp"), - "screeningStatus": obj.get("screeningStatus"), - "bypassReason": obj.get("bypassReason"), - "status": obj.get("status"), - "prevStatus": obj.get("prevStatus"), - "prevBypassReason": obj.get("prevBypassReason"), - "verdict": obj.get("verdict"), - "risk": obj.get("risk"), - "extendedRisk": obj.get("extendedRisk"), - "externalId": obj.get("externalId"), - "customerRefId": obj.get("customerRefId"), - "refId": obj.get("refId"), - "category": obj.get("category"), - "categoryId": obj.get("categoryId"), - "destAddress": obj.get("destAddress"), - "destTag": obj.get("destTag"), - "destRecordId": obj.get("destRecordId"), - "addressResolutionSignature": obj.get("addressResolutionSignature"), - "amlResult": ScreeningAmlResult.from_dict(obj["amlResult"]) if obj.get("amlResult") is not None else None, - "result": ScreeningTravelRuleResult.from_dict(obj["result"]) if obj.get("result") is not None else None, - "detailsMessage": obj.get("detailsMessage"), - "matchedAlert": obj.get("matchedAlert"), - "matchedRule": obj.get("matchedRule"), - "matchedPrescreeningRule": ScreeningTravelRulePrescreeningRule.from_dict(obj["matchedPrescreeningRule"]) if obj.get("matchedPrescreeningRule") is not None else None, - "matchedNoTrmScreeningRule": obj.get("matchedNoTrmScreeningRule"), - "customerIntegrationId": obj.get("customerIntegrationId"), - "customerShortName": obj.get("customerShortName"), - "travelRuleMessageId": obj.get("travelRuleMessageId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF9zdGF0dXNfZW51bSBpbXBvcnQgQW1sU3RhdHVzRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19hbWxfcmVzdWx0IGltcG9ydCBTY3JlZW5pbmdBbWxSZXN1bHQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdHJhdmVsX3J1bGVfcHJlc2NyZWVuaW5nX3J1bGUgaW1wb3J0IFNjcmVlbmluZ1RyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyYXZlbF9ydWxlX3Jlc3VsdCBpbXBvcnQgU2NyZWVuaW5nVHJhdmVsUnVsZVJlc3VsdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ192ZXJkaWN0X2VudW0gaW1wb3J0IFNjcmVlbmluZ1ZlcmRpY3RFbnVtCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHRGdWxsUGF5bG9hZChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUaGUgcmVzdWx0IG9mIHRoZSBBTUwvVHJhdmVsIFJ1bGUgc2NyZWVuaW5nLiBUaGlzIHVuaWZpZWQgc2NoZW1hIGNvbnRhaW5zIGFsbCBmaWVsZHMgdGhhdCBtYXkgYmUgcmV0dXJuZWQgZm9yIGJvdGggQU1MIGFuZCBUcmF2ZWwgUnVsZSBzY3JlZW5pbmcgcmVzdWx0cy4gTm90IGFsbCBmaWVsZHMgd2lsbCBiZSBwcmVzZW50IGluIGV2ZXJ5IHJlc3BvbnNlIC0gdGhlIGFjdHVhbCBmaWVsZHMgZGVwZW5kIG9uIHRoZSBzY3JlZW5pbmcgdHlwZSBhbmQgcHJvdmlkZXIuIAogICAgIiIiICMgbm9xYTogRTUwMQogICAgcHJvdmlkZXI6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgQU1ML1RyYXZlbCBSdWxlIHByb3ZpZGVyIG5hbWUuIEZvciBBTUw6IEVMTElQVElDLCBDSEFJTkFMWVNJUywgZXRjLiBGb3IgVHJhdmVsIFJ1bGU6IE5PVEFCRU5FLCBTVU1TVUIsIEdUUiwgb3IgYW55IFRSTGluayBwcm92aWRlciBuYW1lICIpCiAgICBwYXlsb2FkOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgcmF3IHBheWxvYWQgb2YgdGhlIHNjcmVlbmluZyByZXN1bHQgZnJvbSB0aGUgcHJvdmlkZXIuIFRoZSBwYXlsb2FkIGlzIGEgSlNPTiBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgc2NyZWVuaW5nIHJlc3VsdC4gVGhlIHBheWxvYWQgc3RydWN0dXJlIGlzIGRpZmZlcmVudCBmb3IgZWFjaCBzY3JlZW5pbmcgcHJvdmlkZXIuIFRoaXMgZmllbGQgY29udGFpbnMgdGhlIGNvbXBsZXRlLCB1bm1vZGlmaWVkIHJlc3BvbnNlIGZyb20gdGhlIHNjcmVlbmluZyBzZXJ2aWNlLiAiKQogICAgdGltZXN0YW1wOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJVbml4IHRpbWVzdGFtcCBpbiBtaWxsaXNlY29uZHMgd2hlbiB0aGUgc2NyZWVuaW5nIHJlc3VsdCB3YXMgZ2VuZXJhdGVkIikKICAgIHNjcmVlbmluZ19zdGF0dXM6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJDdXJyZW50IHN0YXR1cyBvZiB0aGUgc2NyZWVuaW5nIHByb2Nlc3MiLCBhbGlhcz0ic2NyZWVuaW5nU3RhdHVzIikKICAgIGJ5cGFzc19yZWFzb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSZWFzb24gZm9yIGJ5cGFzc2luZyB0aGUgc2NyZWVuaW5nLCBpZiBhcHBsaWNhYmxlLiBGb3IgQU1MOiBVTlNVUFBPUlRFRF9BU1NFVCwgUEFTU0VEX0JZX1BPTElDWS4gRm9yIFRyYXZlbCBSdWxlOiBVTlNVUFBPUlRFRF9BU1NFVCwgTk9fVFJBVkVMX1JVTEVfTUVTU0FHRSwgVFJBTlNBQ1RJT05fWkVST19BTU9VTlQuICIsIGFsaWFzPSJieXBhc3NSZWFzb24iKQogICAgc3RhdHVzOiBPcHRpb25hbFtBbWxTdGF0dXNFbnVtXSA9IE5vbmUKICAgIHByZXZfc3RhdHVzOiBPcHRpb25hbFtBbWxTdGF0dXNFbnVtXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InByZXZTdGF0dXMiKQogICAgcHJldl9ieXBhc3NfcmVhc29uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVwcmVjYXRlZDogVGhpcyBmaWVsZCBpcyBub3QgY3VycmVudGx5IHJldHVybmVkIGluIHRoZSBBUEkgcmVzcG9uc2UuIFByZXZpb3VzIGJ5cGFzcyByZWFzb24gYmVmb3JlIHRoZSBjdXJyZW50IGJ5cGFzcyByZWFzb24gY2hhbmdlLiAiLCBhbGlhcz0icHJldkJ5cGFzc1JlYXNvbiIpCiAgICB2ZXJkaWN0OiBPcHRpb25hbFtTY3JlZW5pbmdWZXJkaWN0RW51bV0gPSBOb25lCiAgICByaXNrOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUmlzayBsZXZlbCBhc3Nlc3NtZW50IGZvciBzY3JlZW5pbmcgcmVzdWx0cy4gVmFsdWVzIHZhcnkgYnkgcHJvdmlkZXIgYW5kIGFyZSBub3QgbWFuYWdlZCBieSB0aGlzIHNlcnZpY2UuICBLbm93biB2YWx1ZXMgYnkgcHJvdmlkZXI6IC0gQ2hhaW5hbHlzaXM6IHNldmVyZVJpc2ssIGhpZ2hSaXNrLCBtZWRpdW1SaXNrLCBsb3dSaXNrLCBub1Jpc2tJbmZvIC0gRWxsaXB0aWM6IG5vUmlza0RldGVjdGVkICBMZWdhY3kgdmFsdWVzIChTQ1JFQU1JTkdfU05BS0VfQ0FTRSwgbWF5IGFwcGVhciBpbiBvbGQgdHJhbnNhY3Rpb25zKTogVkVSWV9ISUdILCBTRVZFUkUsIEhJR0gsIE1FRElVTSwgTE9XLCBOT19SSVNLX0lORk8sIFVOS05PV04gIikKICAgIGV4dGVuZGVkX3Jpc2s6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXByZWNhdGVkOiBUaGlzIGZpZWxkIGlzIG5vdCBjdXJyZW50bHkgcmV0dXJuZWQgaW4gdGhlIEFQSSByZXNwb25zZS4gVXNlIHJpc2sgaW5zdGVhZC4gIiwgYWxpYXM9ImV4dGVuZGVkUmlzayIpCiAgICBleHRlcm5hbF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkV4dGVybmFsIGlkZW50aWZpZXIgZm9yIHRoZSBzY3JlZW5pbmcgKHByb3ZpZGVyLXNwZWNpZmljKSIsIGFsaWFzPSJleHRlcm5hbElkIikKICAgIGN1c3RvbWVyX3JlZl9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkN1c3RvbWVyLXByb3ZpZGVkIHJlZmVyZW5jZSBpZGVudGlmaWVyIGZvciB0cmFja2luZyIsIGFsaWFzPSJjdXN0b21lclJlZklkIikKICAgIHJlZl9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRlcHJlY2F0ZWQ6IFRoaXMgZmllbGQgaXMgbm90IGN1cnJlbnRseSByZXR1cm5lZCBpbiB0aGUgQVBJIHJlc3BvbnNlLiBJbnRlcm5hbCByZWZlcmVuY2UgaWRlbnRpZmllci4gIiwgYWxpYXM9InJlZklkIikKICAgIGNhdGVnb3J5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUmlzayBjYXRlZ29yeSBjbGFzc2lmaWNhdGlvbi4gRXhhbXBsZXM6IEVYQ0hBTkdFLCBHQU1CTElORywgTUlYRVIsIERBUktORVRfU0VSVklDRSwgU0FOQ1RJT05FRF9FTlRJVFkgIikKICAgIGNhdGVnb3J5X2lkOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOdW1lcmljIGlkZW50aWZpZXIgZm9yIHRoZSByaXNrIGNhdGVnb3J5IiwgYWxpYXM9ImNhdGVnb3J5SWQiKQogICAgZGVzdF9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGRlc3RpbmF0aW9uIGJsb2NrY2hhaW4gYWRkcmVzcyBhc3NvY2lhdGVkIHdpdGggdGhlIHNjcmVlbmluZyIsIGFsaWFzPSJkZXN0QWRkcmVzcyIpCiAgICBkZXN0X3RhZzogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRlc3RpbmF0aW9uIHRhZyBvciBtZW1vIChmb3IgY2hhaW5zIHRoYXQgc3VwcG9ydCBpdCBsaWtlIFhSUCwgWExNKSIsIGFsaWFzPSJkZXN0VGFnIikKICAgIGRlc3RfcmVjb3JkX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVwcmVjYXRlZDogVGhpcyBmaWVsZCBpcyBub3QgY3VycmVudGx5IHJldHVybmVkIGluIHRoZSBBUEkgcmVzcG9uc2UuIFRoZSBkZXN0aW5hdGlvbiByZWNvcmQgaWRlbnRpZmllciB1c2VkIGJ5IHRoZSBzY3JlZW5pbmcgcHJvdmlkZXIuICIsIGFsaWFzPSJkZXN0UmVjb3JkSWQiKQogICAgYWRkcmVzc19yZXNvbHV0aW9uX3NpZ25hdHVyZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRlcHJlY2F0ZWQ6IFRoaXMgZmllbGQgaXMgbm90IGN1cnJlbnRseSByZXR1cm5lZCBpbiB0aGUgQVBJIHJlc3BvbnNlLiBDcnlwdG9ncmFwaGljIHNpZ25hdHVyZSBmb3IgYWRkcmVzcyByZXNvbHV0aW9uIHZlcmlmaWNhdGlvbi4gIiwgYWxpYXM9ImFkZHJlc3NSZXNvbHV0aW9uU2lnbmF0dXJlIikKICAgIGFtbF9yZXN1bHQ6IE9wdGlvbmFsW1NjcmVlbmluZ0FtbFJlc3VsdF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJhbWxSZXN1bHQiKQogICAgcmVzdWx0OiBPcHRpb25hbFtTY3JlZW5pbmdUcmF2ZWxSdWxlUmVzdWx0XSA9IE5vbmUKICAgIGRldGFpbHNfbWVzc2FnZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFkZGl0aW9uYWwgaHVtYW4tcmVhZGFibGUgZGV0YWlscyBvciBtZXNzYWdlIGFib3V0IHRoZSBzY3JlZW5pbmcgcmVzdWx0IiwgYWxpYXM9ImRldGFpbHNNZXNzYWdlIikKICAgIG1hdGNoZWRfYWxlcnQ6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkluZm9ybWF0aW9uIGFib3V0IHRoZSBBTUwgYWxlcnQgdGhhdCB3YXMgbWF0Y2hlZCwgaWYgYW55LiBDb250YWlucyBkZXRhaWxzIGFib3V0IHRoZSBzcGVjaWZpYyBhbGVydCB0aGF0IHRyaWdnZXJlZCBkdXJpbmcgc2NyZWVuaW5nLiAiLCBhbGlhcz0ibWF0Y2hlZEFsZXJ0IikKICAgIG1hdGNoZWRfcnVsZTogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIG1hdGNoZWQgcnVsZSBpbmZvcm1hdGlvbiBmb3IgdGhpcyBzY3JlZW5pbmcgcmVzdWx0LiBDb250YWlucyBkZXRhaWxzIGFib3V0IHdoaWNoIHNjcmVlbmluZyBydWxlIHdhcyBhcHBsaWVkIGFuZCBtYXRjaGVkLiAiLCBhbGlhcz0ibWF0Y2hlZFJ1bGUiKQogICAgbWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZTogT3B0aW9uYWxbU2NyZWVuaW5nVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGVdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ibWF0Y2hlZFByZXNjcmVlbmluZ1J1bGUiKQogICAgbWF0Y2hlZF9ub190cm1fc2NyZWVuaW5nX3J1bGU6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik1hdGNoZWQgbm8tVFJNIChUcmF2ZWwgUnVsZSBNZXNzYWdlKSBzY3JlZW5pbmcgcnVsZSBkZXRhaWxzLiBVc2VkIHdoZW4gVFJMaW5rIHNjcmVlbmluZyBkZXRlY3RzIGEgbWlzc2luZyBUUk0gc2NlbmFyaW8uICIsIGFsaWFzPSJtYXRjaGVkTm9Ucm1TY3JlZW5pbmdSdWxlIikKICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3VzdG9tZXIgaW50ZWdyYXRpb24gaWRlbnRpZmllciB1c2VkIGJ5IFRyYXZlbCBSdWxlIHByb3ZpZGVycyIsIGFsaWFzPSJjdXN0b21lckludGVncmF0aW9uSWQiKQogICAgY3VzdG9tZXJfc2hvcnRfbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkN1c3RvbWVyIHNob3J0IG5hbWUgcmVnaXN0ZXJlZCB3aXRoIFRyYXZlbCBSdWxlIHByb3ZpZGVycyIsIGFsaWFzPSJjdXN0b21lclNob3J0TmFtZSIpCiAgICB0cmF2ZWxfcnVsZV9tZXNzYWdlX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVHJhdmVsIHJ1bGUgbWVzc2FnZSBpZGVudGlmaWVyIGZvciBsaW5raW5nIGFuZCB0cmFja2luZyBhY3Jvc3MgcHJvdmlkZXJzIiwgYWxpYXM9InRyYXZlbFJ1bGVNZXNzYWdlSWQiKQogICAgcHJvdmlkZXJfcmVzcG9uc2U6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkNvbXBsZXRlIHJlc3BvbnNlIGZyb20gdGhlIHNjcmVlbmluZyBwcm92aWRlci4gVGhpcyBpcyBhIGR5bmFtaWMgb2JqZWN0IHRoYXQgdmFyaWVzIHNpZ25pZmljYW50bHkgYmV0d2VlbiBkaWZmZXJlbnQgcHJvdmlkZXJzIChDaGFpbmFseXNpcywgRWxsaXB0aWMsIE5PVEFCRU5FLCBldGMuKS4gRWFjaCBwcm92aWRlciBoYXMgdGhlaXIgb3duIHByb3ByaWV0YXJ5IHJlc3BvbnNlIGZvcm1hdCBhbmQgc2NoZW1hLiAgRm9yIEFNTCBwcm92aWRlcnM6IENvbnRhaW5zIHJpc2sgc2NvcmVzLCBhbGVydHMsIGVudGl0eSBpbmZvcm1hdGlvbiBGb3IgVHJhdmVsIFJ1bGUgcHJvdmlkZXJzOiBDb250YWlucyBWQVNQIGluZm9ybWF0aW9uLCBQSUkgZGF0YSwgcHJvdG9jb2wtc3BlY2lmaWMgZmllbGRzICBUaGUgc3RydWN0dXJlIGlzIHByb3ZpZGVyLWRlcGVuZGVudCBhbmQgY2Fubm90IGJlIHN0YW5kYXJkaXplZCBhcyBlYWNoIHZlbmRvciBpbXBsZW1lbnRzIHRoZWlyIG93biBwcm9wcmlldGFyeSBkYXRhIG1vZGVscyBhbmQgcmVzcG9uc2UgZm9ybWF0cy4gIiwgYWxpYXM9InByb3ZpZGVyUmVzcG9uc2UiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJwcm92aWRlciIsICJwYXlsb2FkIiwgInRpbWVzdGFtcCIsICJzY3JlZW5pbmdTdGF0dXMiLCAiYnlwYXNzUmVhc29uIiwgInN0YXR1cyIsICJwcmV2U3RhdHVzIiwgInByZXZCeXBhc3NSZWFzb24iLCAidmVyZGljdCIsICJyaXNrIiwgImV4dGVuZGVkUmlzayIsICJleHRlcm5hbElkIiwgImN1c3RvbWVyUmVmSWQiLCAicmVmSWQiLCAiY2F0ZWdvcnkiLCAiY2F0ZWdvcnlJZCIsICJkZXN0QWRkcmVzcyIsICJkZXN0VGFnIiwgImRlc3RSZWNvcmRJZCIsICJhZGRyZXNzUmVzb2x1dGlvblNpZ25hdHVyZSIsICJhbWxSZXN1bHQiLCAicmVzdWx0IiwgImRldGFpbHNNZXNzYWdlIiwgIm1hdGNoZWRBbGVydCIsICJtYXRjaGVkUnVsZSIsICJtYXRjaGVkUHJlc2NyZWVuaW5nUnVsZSIsICJtYXRjaGVkTm9Ucm1TY3JlZW5pbmdSdWxlIiwgImN1c3RvbWVySW50ZWdyYXRpb25JZCIsICJjdXN0b21lclNob3J0TmFtZSIsICJ0cmF2ZWxSdWxlTWVzc2FnZUlkIiwgInByb3ZpZGVyUmVzcG9uc2UiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3NjcmVlbmluZ19zdGF0dXMnKQogICAgZGVmIHNjcmVlbmluZ19zdGF0dXNfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gdmFsdWUKCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0NPTVBMRVRFRCcsICdQRU5ESU5HJywgJ0JZUEFTU0VEJywgJ0ZBSUxFRCcsICdGUk9aRU4nXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnQ09NUExFVEVEJywgJ1BFTkRJTkcnLCAnQllQQVNTRUQnLCAnRkFJTEVEJywgJ0ZST1pFTicpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0RnVsbFBheWxvYWQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhbWxfcmVzdWx0CiAgICAgICAgaWYgc2VsZi5hbWxfcmVzdWx0OgogICAgICAgICAgICBfZGljdFsnYW1sUmVzdWx0J10gPSBzZWxmLmFtbF9yZXN1bHQudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHJlc3VsdAogICAgICAgIGlmIHNlbGYucmVzdWx0OgogICAgICAgICAgICBfZGljdFsncmVzdWx0J10gPSBzZWxmLnJlc3VsdC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgbWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZQogICAgICAgIGlmIHNlbGYubWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZToKICAgICAgICAgICAgX2RpY3RbJ21hdGNoZWRQcmVzY3JlZW5pbmdSdWxlJ10gPSBzZWxmLm1hdGNoZWRfcHJlc2NyZWVuaW5nX3J1bGUudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0RnVsbFBheWxvYWQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicHJvdmlkZXIiOiBvYmouZ2V0KCJwcm92aWRlciIpLAogICAgICAgICAgICAicGF5bG9hZCI6IG9iai5nZXQoInBheWxvYWQiKSwKICAgICAgICAgICAgInRpbWVzdGFtcCI6IG9iai5nZXQoInRpbWVzdGFtcCIpLAogICAgICAgICAgICAic2NyZWVuaW5nU3RhdHVzIjogb2JqLmdldCgic2NyZWVuaW5nU3RhdHVzIiksCiAgICAgICAgICAgICJieXBhc3NSZWFzb24iOiBvYmouZ2V0KCJieXBhc3NSZWFzb24iKSwKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAicHJldlN0YXR1cyI6IG9iai5nZXQoInByZXZTdGF0dXMiKSwKICAgICAgICAgICAgInByZXZCeXBhc3NSZWFzb24iOiBvYmouZ2V0KCJwcmV2QnlwYXNzUmVhc29uIiksCiAgICAgICAgICAgICJ2ZXJkaWN0Ijogb2JqLmdldCgidmVyZGljdCIpLAogICAgICAgICAgICAicmlzayI6IG9iai5nZXQoInJpc2siKSwKICAgICAgICAgICAgImV4dGVuZGVkUmlzayI6IG9iai5nZXQoImV4dGVuZGVkUmlzayIpLAogICAgICAgICAgICAiZXh0ZXJuYWxJZCI6IG9iai5nZXQoImV4dGVybmFsSWQiKSwKICAgICAgICAgICAgImN1c3RvbWVyUmVmSWQiOiBvYmouZ2V0KCJjdXN0b21lclJlZklkIiksCiAgICAgICAgICAgICJyZWZJZCI6IG9iai5nZXQoInJlZklkIiksCiAgICAgICAgICAgICJjYXRlZ29yeSI6IG9iai5nZXQoImNhdGVnb3J5IiksCiAgICAgICAgICAgICJjYXRlZ29yeUlkIjogb2JqLmdldCgiY2F0ZWdvcnlJZCIpLAogICAgICAgICAgICAiZGVzdEFkZHJlc3MiOiBvYmouZ2V0KCJkZXN0QWRkcmVzcyIpLAogICAgICAgICAgICAiZGVzdFRhZyI6IG9iai5nZXQoImRlc3RUYWciKSwKICAgICAgICAgICAgImRlc3RSZWNvcmRJZCI6IG9iai5nZXQoImRlc3RSZWNvcmRJZCIpLAogICAgICAgICAgICAiYWRkcmVzc1Jlc29sdXRpb25TaWduYXR1cmUiOiBvYmouZ2V0KCJhZGRyZXNzUmVzb2x1dGlvblNpZ25hdHVyZSIpLAogICAgICAgICAgICAiYW1sUmVzdWx0IjogU2NyZWVuaW5nQW1sUmVzdWx0LmZyb21fZGljdChvYmpbImFtbFJlc3VsdCJdKSBpZiBvYmouZ2V0KCJhbWxSZXN1bHQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJyZXN1bHQiOiBTY3JlZW5pbmdUcmF2ZWxSdWxlUmVzdWx0LmZyb21fZGljdChvYmpbInJlc3VsdCJdKSBpZiBvYmouZ2V0KCJyZXN1bHQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJkZXRhaWxzTWVzc2FnZSI6IG9iai5nZXQoImRldGFpbHNNZXNzYWdlIiksCiAgICAgICAgICAgICJtYXRjaGVkQWxlcnQiOiBvYmouZ2V0KCJtYXRjaGVkQWxlcnQiKSwKICAgICAgICAgICAgIm1hdGNoZWRSdWxlIjogb2JqLmdldCgibWF0Y2hlZFJ1bGUiKSwKICAgICAgICAgICAgIm1hdGNoZWRQcmVzY3JlZW5pbmdSdWxlIjogU2NyZWVuaW5nVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGUuZnJvbV9kaWN0KG9ialsibWF0Y2hlZFByZXNjcmVlbmluZ1J1bGUiXSkgaWYgb2JqLmdldCgibWF0Y2hlZFByZXNjcmVlbmluZ1J1bGUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJtYXRjaGVkTm9Ucm1TY3JlZW5pbmdSdWxlIjogb2JqLmdldCgibWF0Y2hlZE5vVHJtU2NyZWVuaW5nUnVsZSIpLAogICAgICAgICAgICAiY3VzdG9tZXJJbnRlZ3JhdGlvbklkIjogb2JqLmdldCgiY3VzdG9tZXJJbnRlZ3JhdGlvbklkIiksCiAgICAgICAgICAgICJjdXN0b21lclNob3J0TmFtZSI6IG9iai5nZXQoImN1c3RvbWVyU2hvcnROYW1lIiksCiAgICAgICAgICAgICJ0cmF2ZWxSdWxlTWVzc2FnZUlkIjogb2JqLmdldCgidHJhdmVsUnVsZU1lc3NhZ2VJZCIpLAogICAgICAgICAgICAicHJvdmlkZXJSZXNwb25zZSI6IG9iai5nZXQoInByb3ZpZGVyUmVzcG9uc2UiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/config_change_request_status.py b/fireblocks/models/config_change_request_status.py index d8e70043..f77d7c16 100644 --- a/fireblocks/models/config_change_request_status.py +++ b/fireblocks/models/config_change_request_status.py @@ -1,41 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ConfigChangeRequestStatus(str, Enum): - """ - ConfigChangeRequestStatus - """ - - """ - allowed enum values - """ - WAITING_FOR_APPROVAL = 'WAITING_FOR_APPROVAL' - APPROVED = 'APPROVED' - CANCELLED = 'CANCELLED' - REJECTED = 'REJECTED' - FAILED = 'FAILED' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ConfigChangeRequestStatus from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBDb25maWdDaGFuZ2VSZXF1ZXN0U3RhdHVzKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIENvbmZpZ0NoYW5nZVJlcXVlc3RTdGF0dXMKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBXQUlUSU5HX0ZPUl9BUFBST1ZBTCA9ICdXQUlUSU5HX0ZPUl9BUFBST1ZBTCcKICAgIEFQUFJPVkVEID0gJ0FQUFJPVkVEJwogICAgQ0FOQ0VMTEVEID0gJ0NBTkNFTExFRCcKICAgIFJFSkVDVEVEID0gJ1JFSkVDVEVEJwogICAgRkFJTEVEID0gJ0ZBSUxFRCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb25maWdDaGFuZ2VSZXF1ZXN0U3RhdHVzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/config_conversion_operation_snapshot.py b/fireblocks/models/config_conversion_operation_snapshot.py index c5297284..184ae1cd 100644 --- a/fireblocks/models/config_conversion_operation_snapshot.py +++ b/fireblocks/models/config_conversion_operation_snapshot.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.conversion_operation_config_params import ConversionOperationConfigParams -from fireblocks.models.conversion_operation_type import ConversionOperationType -from typing import Optional, Set -from typing_extensions import Self - -class ConfigConversionOperationSnapshot(BaseModel): - """ - ConfigConversionOperationSnapshot - """ # noqa: E501 - operation_id: StrictStr = Field(alias="operationId") - type: ConversionOperationType - params: ConversionOperationConfigParams - __properties: ClassVar[List[str]] = ["operationId", "type", "params"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConfigConversionOperationSnapshot from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of params - if self.params: - _dict['params'] = self.params.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConfigConversionOperationSnapshot from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "operationId": obj.get("operationId"), - "type": obj.get("type"), - "params": ConversionOperationConfigParams.from_dict(obj["params"]) if obj.get("params") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fY29uZmlnX3BhcmFtcyBpbXBvcnQgQ29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX3R5cGUgaW1wb3J0IENvbnZlcnNpb25PcGVyYXRpb25UeXBlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENvbmZpZ0NvbnZlcnNpb25PcGVyYXRpb25TbmFwc2hvdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDb25maWdDb252ZXJzaW9uT3BlcmF0aW9uU25hcHNob3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG9wZXJhdGlvbl9pZDogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9Im9wZXJhdGlvbklkIikKICAgIHR5cGU6IENvbnZlcnNpb25PcGVyYXRpb25UeXBlCiAgICBwYXJhbXM6IENvbnZlcnNpb25PcGVyYXRpb25Db25maWdQYXJhbXMKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsib3BlcmF0aW9uSWQiLCAidHlwZSIsICJwYXJhbXMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbmZpZ0NvbnZlcnNpb25PcGVyYXRpb25TbmFwc2hvdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHBhcmFtcwogICAgICAgIGlmIHNlbGYucGFyYW1zOgogICAgICAgICAgICBfZGljdFsncGFyYW1zJ10gPSBzZWxmLnBhcmFtcy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbmZpZ0NvbnZlcnNpb25PcGVyYXRpb25TbmFwc2hvdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJvcGVyYXRpb25JZCI6IG9iai5nZXQoIm9wZXJhdGlvbklkIiksCiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAicGFyYW1zIjogQ29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtcy5mcm9tX2RpY3Qob2JqWyJwYXJhbXMiXSkgaWYgb2JqLmdldCgicGFyYW1zIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/config_disbursement_operation_snapshot.py b/fireblocks/models/config_disbursement_operation_snapshot.py index 01b4f4e1..2c6c7cd2 100644 --- a/fireblocks/models/config_disbursement_operation_snapshot.py +++ b/fireblocks/models/config_disbursement_operation_snapshot.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.disbursement_operation_config_params import DisbursementOperationConfigParams -from fireblocks.models.disbursement_operation_type import DisbursementOperationType -from typing import Optional, Set -from typing_extensions import Self - -class ConfigDisbursementOperationSnapshot(BaseModel): - """ - ConfigDisbursementOperationSnapshot - """ # noqa: E501 - operation_id: StrictStr = Field(alias="operationId") - type: DisbursementOperationType - params: DisbursementOperationConfigParams - __properties: ClassVar[List[str]] = ["operationId", "type", "params"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConfigDisbursementOperationSnapshot from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of params - if self.params: - _dict['params'] = self.params.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConfigDisbursementOperationSnapshot from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "operationId": obj.get("operationId"), - "type": obj.get("type"), - "params": DisbursementOperationConfigParams.from_dict(obj["params"]) if obj.get("params") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9jb25maWdfcGFyYW1zIGltcG9ydCBEaXNidXJzZW1lbnRPcGVyYXRpb25Db25maWdQYXJhbXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX3R5cGUgaW1wb3J0IERpc2J1cnNlbWVudE9wZXJhdGlvblR5cGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ29uZmlnRGlzYnVyc2VtZW50T3BlcmF0aW9uU25hcHNob3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29uZmlnRGlzYnVyc2VtZW50T3BlcmF0aW9uU25hcHNob3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG9wZXJhdGlvbl9pZDogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9Im9wZXJhdGlvbklkIikKICAgIHR5cGU6IERpc2J1cnNlbWVudE9wZXJhdGlvblR5cGUKICAgIHBhcmFtczogRGlzYnVyc2VtZW50T3BlcmF0aW9uQ29uZmlnUGFyYW1zCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm9wZXJhdGlvbklkIiwgInR5cGUiLCAicGFyYW1zIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb25maWdEaXNidXJzZW1lbnRPcGVyYXRpb25TbmFwc2hvdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHBhcmFtcwogICAgICAgIGlmIHNlbGYucGFyYW1zOgogICAgICAgICAgICBfZGljdFsncGFyYW1zJ10gPSBzZWxmLnBhcmFtcy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbmZpZ0Rpc2J1cnNlbWVudE9wZXJhdGlvblNuYXBzaG90IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm9wZXJhdGlvbklkIjogb2JqLmdldCgib3BlcmF0aW9uSWQiKSwKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIiksCiAgICAgICAgICAgICJwYXJhbXMiOiBEaXNidXJzZW1lbnRPcGVyYXRpb25Db25maWdQYXJhbXMuZnJvbV9kaWN0KG9ialsicGFyYW1zIl0pIGlmIG9iai5nZXQoInBhcmFtcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/config_operation.py b/fireblocks/models/config_operation.py index 65097d49..883d1d92 100644 --- a/fireblocks/models/config_operation.py +++ b/fireblocks/models/config_operation.py @@ -1,152 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.conversion_config_operation import ConversionConfigOperation -from fireblocks.models.disbursement_config_operation import DisbursementConfigOperation -from fireblocks.models.transfer_config_operation import TransferConfigOperation -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -CONFIGOPERATION_ONE_OF_SCHEMAS = ["ConversionConfigOperation", "DisbursementConfigOperation", "TransferConfigOperation"] - -class ConfigOperation(BaseModel): - """ - ConfigOperation - """ - # data type: ConversionConfigOperation - oneof_schema_1_validator: Optional[ConversionConfigOperation] = None - # data type: TransferConfigOperation - oneof_schema_2_validator: Optional[TransferConfigOperation] = None - # data type: DisbursementConfigOperation - oneof_schema_3_validator: Optional[DisbursementConfigOperation] = None - actual_instance: Optional[Union[ConversionConfigOperation, DisbursementConfigOperation, TransferConfigOperation]] = None - one_of_schemas: Set[str] = { "ConversionConfigOperation", "DisbursementConfigOperation", "TransferConfigOperation" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = ConfigOperation.model_construct() - error_messages = [] - match = 0 - # validate data type: ConversionConfigOperation - if not isinstance(v, ConversionConfigOperation): - error_messages.append(f"Error! Input type `{type(v)}` is not `ConversionConfigOperation`") - else: - match += 1 - # validate data type: TransferConfigOperation - if not isinstance(v, TransferConfigOperation): - error_messages.append(f"Error! Input type `{type(v)}` is not `TransferConfigOperation`") - else: - match += 1 - # validate data type: DisbursementConfigOperation - if not isinstance(v, DisbursementConfigOperation): - error_messages.append(f"Error! Input type `{type(v)}` is not `DisbursementConfigOperation`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in ConfigOperation with oneOf schemas: ConversionConfigOperation, DisbursementConfigOperation, TransferConfigOperation. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in ConfigOperation with oneOf schemas: ConversionConfigOperation, DisbursementConfigOperation, TransferConfigOperation. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into ConversionConfigOperation - try: - instance.actual_instance = ConversionConfigOperation.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into TransferConfigOperation - try: - instance.actual_instance = TransferConfigOperation.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into DisbursementConfigOperation - try: - instance.actual_instance = DisbursementConfigOperation.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into ConfigOperation with oneOf schemas: ConversionConfigOperation, DisbursementConfigOperation, TransferConfigOperation. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into ConfigOperation with oneOf schemas: ConversionConfigOperation, DisbursementConfigOperation, TransferConfigOperation. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], ConversionConfigOperation, DisbursementConfigOperation, TransferConfigOperation]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9jb25maWdfb3BlcmF0aW9uIGltcG9ydCBDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X2NvbmZpZ19vcGVyYXRpb24gaW1wb3J0IERpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX2NvbmZpZ19vcGVyYXRpb24gaW1wb3J0IFRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uCmZyb20gcHlkYW50aWMgaW1wb3J0IFN0cmljdFN0ciwgRmllbGQKZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uLCBMaXN0LCBTZXQsIE9wdGlvbmFsLCBEaWN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IExpdGVyYWwsIFNlbGYKCkNPTkZJR09QRVJBVElPTl9PTkVfT0ZfU0NIRU1BUyA9IFsiQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvbiIsICJEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb24iLCAiVHJhbnNmZXJDb25maWdPcGVyYXRpb24iXQoKY2xhc3MgQ29uZmlnT3BlcmF0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENvbmZpZ09wZXJhdGlvbgogICAgIiIiCiAgICAjIGRhdGEgdHlwZTogQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvbgogICAgb25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yOiBPcHRpb25hbFtDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uXSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBUcmFuc2ZlckNvbmZpZ09wZXJhdGlvbgogICAgb25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yOiBPcHRpb25hbFtUcmFuc2ZlckNvbmZpZ09wZXJhdGlvbl0gPSBOb25lCiAgICAjIGRhdGEgdHlwZTogRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uCiAgICBvbmVvZl9zY2hlbWFfM192YWxpZGF0b3I6IE9wdGlvbmFsW0Rpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvbl0gPSBOb25lCiAgICBhY3R1YWxfaW5zdGFuY2U6IE9wdGlvbmFsW1VuaW9uW0NvbnZlcnNpb25Db25maWdPcGVyYXRpb24sIERpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvbiwgVHJhbnNmZXJDb25maWdPcGVyYXRpb25dXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgIkNvbnZlcnNpb25Db25maWdPcGVyYXRpb24iLCAiRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uIiwgIlRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uIiB9CgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gQ29uZmlnT3BlcmF0aW9uLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvbik6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvbmAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogVHJhbnNmZXJDb25maWdPcGVyYXRpb24KICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBUcmFuc2ZlckNvbmZpZ09wZXJhdGlvbik6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgVHJhbnNmZXJDb25maWdPcGVyYXRpb25gIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IERpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvbgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIERpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvbik6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBDb25maWdPcGVyYXRpb24gd2l0aCBvbmVPZiBzY2hlbWFzOiBDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uLCBEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb24sIFRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIENvbmZpZ09wZXJhdGlvbiB3aXRoIG9uZU9mIHNjaGVtYXM6IENvbnZlcnNpb25Db25maWdPcGVyYXRpb24sIERpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvbiwgVHJhbnNmZXJDb25maWdPcGVyYXRpb24uIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBVbmlvbltzdHIsIERpY3Rbc3RyLCBBbnldXSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCgogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIENvbnZlcnNpb25Db25maWdPcGVyYXRpb24KICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IENvbnZlcnNpb25Db25maWdPcGVyYXRpb24uZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gVHJhbnNmZXJDb25maWdPcGVyYXRpb24KICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IFRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIERpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvbgogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQoKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gQ29uZmlnT3BlcmF0aW9uIHdpdGggb25lT2Ygc2NoZW1hczogQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvbiwgRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uLCBUcmFuc2ZlckNvbmZpZ09wZXJhdGlvbi4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBDb25maWdPcGVyYXRpb24gd2l0aCBvbmVPZiBzY2hlbWFzOiBDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uLCBEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb24sIFRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuICJudWxsIgoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fanNvbiIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24oKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYuYWN0dWFsX2luc3RhbmNlKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IE9wdGlvbmFsW1VuaW9uW0RpY3Rbc3RyLCBBbnldLCBDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uLCBEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb24sIFRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uXV06CiAgICAgICAgIiIiUmV0dXJucyB0aGUgZGljdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2RpY3QiKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCk6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KCkKICAgICAgICBlbHNlOgogICAgICAgICAgICAjIHByaW1pdGl2ZSB0eXBlCiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZQoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcCgpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/config_operation_snapshot.py b/fireblocks/models/config_operation_snapshot.py index 314d4c26..5a9e5f72 100644 --- a/fireblocks/models/config_operation_snapshot.py +++ b/fireblocks/models/config_operation_snapshot.py @@ -1,152 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.config_conversion_operation_snapshot import ConfigConversionOperationSnapshot -from fireblocks.models.config_disbursement_operation_snapshot import ConfigDisbursementOperationSnapshot -from fireblocks.models.config_transfer_operation_snapshot import ConfigTransferOperationSnapshot -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -CONFIGOPERATIONSNAPSHOT_ONE_OF_SCHEMAS = ["ConfigConversionOperationSnapshot", "ConfigDisbursementOperationSnapshot", "ConfigTransferOperationSnapshot"] - -class ConfigOperationSnapshot(BaseModel): - """ - ConfigOperationSnapshot - """ - # data type: ConfigConversionOperationSnapshot - oneof_schema_1_validator: Optional[ConfigConversionOperationSnapshot] = None - # data type: ConfigTransferOperationSnapshot - oneof_schema_2_validator: Optional[ConfigTransferOperationSnapshot] = None - # data type: ConfigDisbursementOperationSnapshot - oneof_schema_3_validator: Optional[ConfigDisbursementOperationSnapshot] = None - actual_instance: Optional[Union[ConfigConversionOperationSnapshot, ConfigDisbursementOperationSnapshot, ConfigTransferOperationSnapshot]] = None - one_of_schemas: Set[str] = { "ConfigConversionOperationSnapshot", "ConfigDisbursementOperationSnapshot", "ConfigTransferOperationSnapshot" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = ConfigOperationSnapshot.model_construct() - error_messages = [] - match = 0 - # validate data type: ConfigConversionOperationSnapshot - if not isinstance(v, ConfigConversionOperationSnapshot): - error_messages.append(f"Error! Input type `{type(v)}` is not `ConfigConversionOperationSnapshot`") - else: - match += 1 - # validate data type: ConfigTransferOperationSnapshot - if not isinstance(v, ConfigTransferOperationSnapshot): - error_messages.append(f"Error! Input type `{type(v)}` is not `ConfigTransferOperationSnapshot`") - else: - match += 1 - # validate data type: ConfigDisbursementOperationSnapshot - if not isinstance(v, ConfigDisbursementOperationSnapshot): - error_messages.append(f"Error! Input type `{type(v)}` is not `ConfigDisbursementOperationSnapshot`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in ConfigOperationSnapshot with oneOf schemas: ConfigConversionOperationSnapshot, ConfigDisbursementOperationSnapshot, ConfigTransferOperationSnapshot. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in ConfigOperationSnapshot with oneOf schemas: ConfigConversionOperationSnapshot, ConfigDisbursementOperationSnapshot, ConfigTransferOperationSnapshot. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into ConfigConversionOperationSnapshot - try: - instance.actual_instance = ConfigConversionOperationSnapshot.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into ConfigTransferOperationSnapshot - try: - instance.actual_instance = ConfigTransferOperationSnapshot.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into ConfigDisbursementOperationSnapshot - try: - instance.actual_instance = ConfigDisbursementOperationSnapshot.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into ConfigOperationSnapshot with oneOf schemas: ConfigConversionOperationSnapshot, ConfigDisbursementOperationSnapshot, ConfigTransferOperationSnapshot. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into ConfigOperationSnapshot with oneOf schemas: ConfigConversionOperationSnapshot, ConfigDisbursementOperationSnapshot, ConfigTransferOperationSnapshot. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], ConfigConversionOperationSnapshot, ConfigDisbursementOperationSnapshot, ConfigTransferOperationSnapshot]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29uZmlnX2NvbnZlcnNpb25fb3BlcmF0aW9uX3NuYXBzaG90IGltcG9ydCBDb25maWdDb252ZXJzaW9uT3BlcmF0aW9uU25hcHNob3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25maWdfZGlzYnVyc2VtZW50X29wZXJhdGlvbl9zbmFwc2hvdCBpbXBvcnQgQ29uZmlnRGlzYnVyc2VtZW50T3BlcmF0aW9uU25hcHNob3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25maWdfdHJhbnNmZXJfb3BlcmF0aW9uX3NuYXBzaG90IGltcG9ydCBDb25maWdUcmFuc2Zlck9wZXJhdGlvblNuYXBzaG90CmZyb20gcHlkYW50aWMgaW1wb3J0IFN0cmljdFN0ciwgRmllbGQKZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uLCBMaXN0LCBTZXQsIE9wdGlvbmFsLCBEaWN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IExpdGVyYWwsIFNlbGYKCkNPTkZJR09QRVJBVElPTlNOQVBTSE9UX09ORV9PRl9TQ0hFTUFTID0gWyJDb25maWdDb252ZXJzaW9uT3BlcmF0aW9uU25hcHNob3QiLCAiQ29uZmlnRGlzYnVyc2VtZW50T3BlcmF0aW9uU25hcHNob3QiLCAiQ29uZmlnVHJhbnNmZXJPcGVyYXRpb25TbmFwc2hvdCJdCgpjbGFzcyBDb25maWdPcGVyYXRpb25TbmFwc2hvdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDb25maWdPcGVyYXRpb25TbmFwc2hvdAogICAgIiIiCiAgICAjIGRhdGEgdHlwZTogQ29uZmlnQ29udmVyc2lvbk9wZXJhdGlvblNuYXBzaG90CiAgICBvbmVvZl9zY2hlbWFfMV92YWxpZGF0b3I6IE9wdGlvbmFsW0NvbmZpZ0NvbnZlcnNpb25PcGVyYXRpb25TbmFwc2hvdF0gPSBOb25lCiAgICAjIGRhdGEgdHlwZTogQ29uZmlnVHJhbnNmZXJPcGVyYXRpb25TbmFwc2hvdAogICAgb25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yOiBPcHRpb25hbFtDb25maWdUcmFuc2Zlck9wZXJhdGlvblNuYXBzaG90XSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBDb25maWdEaXNidXJzZW1lbnRPcGVyYXRpb25TbmFwc2hvdAogICAgb25lb2Zfc2NoZW1hXzNfdmFsaWRhdG9yOiBPcHRpb25hbFtDb25maWdEaXNidXJzZW1lbnRPcGVyYXRpb25TbmFwc2hvdF0gPSBOb25lCiAgICBhY3R1YWxfaW5zdGFuY2U6IE9wdGlvbmFsW1VuaW9uW0NvbmZpZ0NvbnZlcnNpb25PcGVyYXRpb25TbmFwc2hvdCwgQ29uZmlnRGlzYnVyc2VtZW50T3BlcmF0aW9uU25hcHNob3QsIENvbmZpZ1RyYW5zZmVyT3BlcmF0aW9uU25hcHNob3RdXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgIkNvbmZpZ0NvbnZlcnNpb25PcGVyYXRpb25TbmFwc2hvdCIsICJDb25maWdEaXNidXJzZW1lbnRPcGVyYXRpb25TbmFwc2hvdCIsICJDb25maWdUcmFuc2Zlck9wZXJhdGlvblNuYXBzaG90IiB9CgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gQ29uZmlnT3BlcmF0aW9uU25hcHNob3QubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IENvbmZpZ0NvbnZlcnNpb25PcGVyYXRpb25TbmFwc2hvdAogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIENvbmZpZ0NvbnZlcnNpb25PcGVyYXRpb25TbmFwc2hvdCk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgQ29uZmlnQ29udmVyc2lvbk9wZXJhdGlvblNuYXBzaG90YCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBDb25maWdUcmFuc2Zlck9wZXJhdGlvblNuYXBzaG90CiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgQ29uZmlnVHJhbnNmZXJPcGVyYXRpb25TbmFwc2hvdCk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgQ29uZmlnVHJhbnNmZXJPcGVyYXRpb25TbmFwc2hvdGAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogQ29uZmlnRGlzYnVyc2VtZW50T3BlcmF0aW9uU25hcHNob3QKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBDb25maWdEaXNidXJzZW1lbnRPcGVyYXRpb25TbmFwc2hvdCk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgQ29uZmlnRGlzYnVyc2VtZW50T3BlcmF0aW9uU25hcHNob3RgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIENvbmZpZ09wZXJhdGlvblNuYXBzaG90IHdpdGggb25lT2Ygc2NoZW1hczogQ29uZmlnQ29udmVyc2lvbk9wZXJhdGlvblNuYXBzaG90LCBDb25maWdEaXNidXJzZW1lbnRPcGVyYXRpb25TbmFwc2hvdCwgQ29uZmlnVHJhbnNmZXJPcGVyYXRpb25TbmFwc2hvdC4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBDb25maWdPcGVyYXRpb25TbmFwc2hvdCB3aXRoIG9uZU9mIHNjaGVtYXM6IENvbmZpZ0NvbnZlcnNpb25PcGVyYXRpb25TbmFwc2hvdCwgQ29uZmlnRGlzYnVyc2VtZW50T3BlcmF0aW9uU25hcHNob3QsIENvbmZpZ1RyYW5zZmVyT3BlcmF0aW9uU25hcHNob3QuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBVbmlvbltzdHIsIERpY3Rbc3RyLCBBbnldXSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCgogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIENvbmZpZ0NvbnZlcnNpb25PcGVyYXRpb25TbmFwc2hvdAogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gQ29uZmlnQ29udmVyc2lvbk9wZXJhdGlvblNuYXBzaG90LmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIENvbmZpZ1RyYW5zZmVyT3BlcmF0aW9uU25hcHNob3QKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IENvbmZpZ1RyYW5zZmVyT3BlcmF0aW9uU25hcHNob3QuZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gQ29uZmlnRGlzYnVyc2VtZW50T3BlcmF0aW9uU25hcHNob3QKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IENvbmZpZ0Rpc2J1cnNlbWVudE9wZXJhdGlvblNuYXBzaG90LmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQoKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gQ29uZmlnT3BlcmF0aW9uU25hcHNob3Qgd2l0aCBvbmVPZiBzY2hlbWFzOiBDb25maWdDb252ZXJzaW9uT3BlcmF0aW9uU25hcHNob3QsIENvbmZpZ0Rpc2J1cnNlbWVudE9wZXJhdGlvblNuYXBzaG90LCBDb25maWdUcmFuc2Zlck9wZXJhdGlvblNuYXBzaG90LiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIENvbmZpZ09wZXJhdGlvblNuYXBzaG90IHdpdGggb25lT2Ygc2NoZW1hczogQ29uZmlnQ29udmVyc2lvbk9wZXJhdGlvblNuYXBzaG90LCBDb25maWdEaXNidXJzZW1lbnRPcGVyYXRpb25TbmFwc2hvdCwgQ29uZmlnVHJhbnNmZXJPcGVyYXRpb25TbmFwc2hvdC4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiAibnVsbCIKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2pzb24iKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbik6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKCkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLmFjdHVhbF9pbnN0YW5jZSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBPcHRpb25hbFtVbmlvbltEaWN0W3N0ciwgQW55XSwgQ29uZmlnQ29udmVyc2lvbk9wZXJhdGlvblNuYXBzaG90LCBDb25maWdEaXNidXJzZW1lbnRPcGVyYXRpb25TbmFwc2hvdCwgQ29uZmlnVHJhbnNmZXJPcGVyYXRpb25TbmFwc2hvdF1dOgogICAgICAgICIiIlJldHVybnMgdGhlIGRpY3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19kaWN0IikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QpOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCgpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgIyBwcmltaXRpdmUgdHlwZQogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/config_operation_status.py b/fireblocks/models/config_operation_status.py index 77ad0964..3ea2488f 100644 --- a/fireblocks/models/config_operation_status.py +++ b/fireblocks/models/config_operation_status.py @@ -1,40 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ConfigOperationStatus(str, Enum): - """ - ConfigOperationStatus - """ - - """ - allowed enum values - """ - PENDING = 'PENDING' - VALIDATION_IN_PROGRESS = 'VALIDATION_IN_PROGRESS' - READY_FOR_EXECUTION = 'READY_FOR_EXECUTION' - VALIDATION_FAILED = 'VALIDATION_FAILED' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ConfigOperationStatus from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBDb25maWdPcGVyYXRpb25TdGF0dXMoc3RyLCBFbnVtKToKICAgICIiIgogICAgQ29uZmlnT3BlcmF0aW9uU3RhdHVzCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgUEVORElORyA9ICdQRU5ESU5HJwogICAgVkFMSURBVElPTl9JTl9QUk9HUkVTUyA9ICdWQUxJREFUSU9OX0lOX1BST0dSRVNTJwogICAgUkVBRFlfRk9SX0VYRUNVVElPTiA9ICdSRUFEWV9GT1JfRVhFQ1VUSU9OJwogICAgVkFMSURBVElPTl9GQUlMRUQgPSAnVkFMSURBVElPTl9GQUlMRUQnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29uZmlnT3BlcmF0aW9uU3RhdHVzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/config_transfer_operation_snapshot.py b/fireblocks/models/config_transfer_operation_snapshot.py index 7501e032..ee58c2eb 100644 --- a/fireblocks/models/config_transfer_operation_snapshot.py +++ b/fireblocks/models/config_transfer_operation_snapshot.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.transfer_operation_config_params import TransferOperationConfigParams -from fireblocks.models.transfer_operation_type import TransferOperationType -from typing import Optional, Set -from typing_extensions import Self - -class ConfigTransferOperationSnapshot(BaseModel): - """ - ConfigTransferOperationSnapshot - """ # noqa: E501 - operation_id: StrictStr = Field(alias="operationId") - type: TransferOperationType - params: TransferOperationConfigParams - __properties: ClassVar[List[str]] = ["operationId", "type", "params"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConfigTransferOperationSnapshot from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of params - if self.params: - _dict['params'] = self.params.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConfigTransferOperationSnapshot from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "operationId": obj.get("operationId"), - "type": obj.get("type"), - "params": TransferOperationConfigParams.from_dict(obj["params"]) if obj.get("params") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMgaW1wb3J0IFRyYW5zZmVyT3BlcmF0aW9uQ29uZmlnUGFyYW1zCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX3R5cGUgaW1wb3J0IFRyYW5zZmVyT3BlcmF0aW9uVHlwZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb25maWdUcmFuc2Zlck9wZXJhdGlvblNuYXBzaG90KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENvbmZpZ1RyYW5zZmVyT3BlcmF0aW9uU25hcHNob3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG9wZXJhdGlvbl9pZDogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9Im9wZXJhdGlvbklkIikKICAgIHR5cGU6IFRyYW5zZmVyT3BlcmF0aW9uVHlwZQogICAgcGFyYW1zOiBUcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcwogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJvcGVyYXRpb25JZCIsICJ0eXBlIiwgInBhcmFtcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29uZmlnVHJhbnNmZXJPcGVyYXRpb25TbmFwc2hvdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHBhcmFtcwogICAgICAgIGlmIHNlbGYucGFyYW1zOgogICAgICAgICAgICBfZGljdFsncGFyYW1zJ10gPSBzZWxmLnBhcmFtcy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbmZpZ1RyYW5zZmVyT3BlcmF0aW9uU25hcHNob3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAib3BlcmF0aW9uSWQiOiBvYmouZ2V0KCJvcGVyYXRpb25JZCIpLAogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgInBhcmFtcyI6IFRyYW5zZmVyT3BlcmF0aW9uQ29uZmlnUGFyYW1zLmZyb21fZGljdChvYmpbInBhcmFtcyJdKSBpZiBvYmouZ2V0KCJwYXJhbXMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/connected_account.py b/fireblocks/models/connected_account.py index 9191ff8e..6818c834 100644 --- a/fireblocks/models/connected_account.py +++ b/fireblocks/models/connected_account.py @@ -1,109 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.connected_account_approval_status import ConnectedAccountApprovalStatus -from fireblocks.models.connected_account_manifest import ConnectedAccountManifest -from fireblocks.models.connected_account_total_balance import ConnectedAccountTotalBalance -from typing import Optional, Set -from typing_extensions import Self - -class ConnectedAccount(BaseModel): - """ - ConnectedAccount - """ # noqa: E501 - id: StrictStr = Field(description="Unique identifier of the connected account.") - name: StrictStr = Field(description="Human-readable name of the connected account.") - provider_id: StrictStr = Field(description="The ID of the venue the account belongs to.", alias="providerId") - status: ConnectedAccountApprovalStatus - total_balance: ConnectedAccountTotalBalance = Field(alias="totalBalance") - manifest: ConnectedAccountManifest - parent_id: Optional[StrictStr] = Field(default=None, description="The ID of the parent main account, if this is a sub account.", alias="parentId") - __properties: ClassVar[List[str]] = ["id", "name", "providerId", "status", "totalBalance", "manifest", "parentId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConnectedAccount from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of total_balance - if self.total_balance: - _dict['totalBalance'] = self.total_balance.to_dict() - # override the default output from pydantic by calling `to_dict()` of manifest - if self.manifest: - _dict['manifest'] = self.manifest.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConnectedAccount from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name"), - "providerId": obj.get("providerId"), - "status": obj.get("status"), - "totalBalance": ConnectedAccountTotalBalance.from_dict(obj["totalBalance"]) if obj.get("totalBalance") is not None else None, - "manifest": ConnectedAccountManifest.from_dict(obj["manifest"]) if obj.get("manifest") is not None else None, - "parentId": obj.get("parentId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X2FwcHJvdmFsX3N0YXR1cyBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudEFwcHJvdmFsU3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRfbWFuaWZlc3QgaW1wb3J0IENvbm5lY3RlZEFjY291bnRNYW5pZmVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X3RvdGFsX2JhbGFuY2UgaW1wb3J0IENvbm5lY3RlZEFjY291bnRUb3RhbEJhbGFuY2UKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ29ubmVjdGVkQWNjb3VudChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDb25uZWN0ZWRBY2NvdW50CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb25uZWN0ZWQgYWNjb3VudC4iKQogICAgbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249Ikh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhlIGNvbm5lY3RlZCBhY2NvdW50LiIpCiAgICBwcm92aWRlcl9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgdmVudWUgdGhlIGFjY291bnQgYmVsb25ncyB0by4iLCBhbGlhcz0icHJvdmlkZXJJZCIpCiAgICBzdGF0dXM6IENvbm5lY3RlZEFjY291bnRBcHByb3ZhbFN0YXR1cwogICAgdG90YWxfYmFsYW5jZTogQ29ubmVjdGVkQWNjb3VudFRvdGFsQmFsYW5jZSA9IEZpZWxkKGFsaWFzPSJ0b3RhbEJhbGFuY2UiKQogICAgbWFuaWZlc3Q6IENvbm5lY3RlZEFjY291bnRNYW5pZmVzdAogICAgcGFyZW50X2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBwYXJlbnQgbWFpbiBhY2NvdW50LCBpZiB0aGlzIGlzIGEgc3ViIGFjY291bnQuIiwgYWxpYXM9InBhcmVudElkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAibmFtZSIsICJwcm92aWRlcklkIiwgInN0YXR1cyIsICJ0b3RhbEJhbGFuY2UiLCAibWFuaWZlc3QiLCAicGFyZW50SWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbm5lY3RlZEFjY291bnQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiB0b3RhbF9iYWxhbmNlCiAgICAgICAgaWYgc2VsZi50b3RhbF9iYWxhbmNlOgogICAgICAgICAgICBfZGljdFsndG90YWxCYWxhbmNlJ10gPSBzZWxmLnRvdGFsX2JhbGFuY2UudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG1hbmlmZXN0CiAgICAgICAgaWYgc2VsZi5tYW5pZmVzdDoKICAgICAgICAgICAgX2RpY3RbJ21hbmlmZXN0J10gPSBzZWxmLm1hbmlmZXN0LnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29ubmVjdGVkQWNjb3VudCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAicHJvdmlkZXJJZCI6IG9iai5nZXQoInByb3ZpZGVySWQiKSwKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAidG90YWxCYWxhbmNlIjogQ29ubmVjdGVkQWNjb3VudFRvdGFsQmFsYW5jZS5mcm9tX2RpY3Qob2JqWyJ0b3RhbEJhbGFuY2UiXSkgaWYgb2JqLmdldCgidG90YWxCYWxhbmNlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibWFuaWZlc3QiOiBDb25uZWN0ZWRBY2NvdW50TWFuaWZlc3QuZnJvbV9kaWN0KG9ialsibWFuaWZlc3QiXSkgaWYgb2JqLmdldCgibWFuaWZlc3QiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJwYXJlbnRJZCI6IG9iai5nZXQoInBhcmVudElkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/connected_account_approval_status.py b/fireblocks/models/connected_account_approval_status.py index 7877ff22..e950eef7 100644 --- a/fireblocks/models/connected_account_approval_status.py +++ b/fireblocks/models/connected_account_approval_status.py @@ -1,41 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ConnectedAccountApprovalStatus(str, Enum): - """ - ConnectedAccountApprovalStatus - """ - - """ - allowed enum values - """ - WAITING_FOR_APPROVAL = 'WAITING_FOR_APPROVAL' - APPROVED = 'APPROVED' - REJECTED = 'REJECTED' - CANCELLED = 'CANCELLED' - FAILED = 'FAILED' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ConnectedAccountApprovalStatus from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBDb25uZWN0ZWRBY2NvdW50QXBwcm92YWxTdGF0dXMoc3RyLCBFbnVtKToKICAgICIiIgogICAgQ29ubmVjdGVkQWNjb3VudEFwcHJvdmFsU3RhdHVzCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgV0FJVElOR19GT1JfQVBQUk9WQUwgPSAnV0FJVElOR19GT1JfQVBQUk9WQUwnCiAgICBBUFBST1ZFRCA9ICdBUFBST1ZFRCcKICAgIFJFSkVDVEVEID0gJ1JFSkVDVEVEJwogICAgQ0FOQ0VMTEVEID0gJ0NBTkNFTExFRCcKICAgIEZBSUxFRCA9ICdGQUlMRUQnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29ubmVjdGVkQWNjb3VudEFwcHJvdmFsU3RhdHVzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/connected_account_asset_type.py b/fireblocks/models/connected_account_asset_type.py index c7fffc58..439df37e 100644 --- a/fireblocks/models/connected_account_asset_type.py +++ b/fireblocks/models/connected_account_asset_type.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ConnectedAccountAssetType(str, Enum): - """ - ConnectedAccountAssetType - """ - - """ - allowed enum values - """ - DIGITAL = 'DIGITAL' - FIAT = 'FIAT' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ConnectedAccountAssetType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBDb25uZWN0ZWRBY2NvdW50QXNzZXRUeXBlKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIENvbm5lY3RlZEFjY291bnRBc3NldFR5cGUKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBESUdJVEFMID0gJ0RJR0lUQUwnCiAgICBGSUFUID0gJ0ZJQVQnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29ubmVjdGVkQWNjb3VudEFzc2V0VHlwZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/connected_account_balances.py b/fireblocks/models/connected_account_balances.py index b4fc282d..2aa73d29 100644 --- a/fireblocks/models/connected_account_balances.py +++ b/fireblocks/models/connected_account_balances.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class ConnectedAccountBalances(BaseModel): - """ - ConnectedAccountBalances - """ # noqa: E501 - asset_id: StrictStr = Field(description="Asset identifier (e.g., BTC, ETH, USDC).", alias="assetId") - available_amount: StrictStr = Field(description="Amount available for use.", alias="availableAmount") - total_amount: StrictStr = Field(description="Total amount including locked/held balances.", alias="totalAmount") - locked_amount: Optional[StrictStr] = Field(default=None, description="Amount currently locked/held.", alias="lockedAmount") - credit_amount: Optional[StrictStr] = Field(default=None, description="Credit line amount, if applicable (0 when not used).", alias="creditAmount") - balance_type: StrictStr = Field(description="Wallet type/category (e.g., SPOT, MARGIN, FUNDING).", alias="balanceType") - balance_name: Optional[StrictStr] = Field(default=None, description="Display name for the balance type (at the provider)", alias="balanceName") - __properties: ClassVar[List[str]] = ["assetId", "availableAmount", "totalAmount", "lockedAmount", "creditAmount", "balanceType", "balanceName"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConnectedAccountBalances from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConnectedAccountBalances from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "assetId": obj.get("assetId"), - "availableAmount": obj.get("availableAmount"), - "totalAmount": obj.get("totalAmount"), - "lockedAmount": obj.get("lockedAmount"), - "creditAmount": obj.get("creditAmount"), - "balanceType": obj.get("balanceType"), - "balanceName": obj.get("balanceName") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXMoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29ubmVjdGVkQWNjb3VudEJhbGFuY2VzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhc3NldF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkFzc2V0IGlkZW50aWZpZXIgKGUuZy4sIEJUQywgRVRILCBVU0RDKS4iLCBhbGlhcz0iYXNzZXRJZCIpCiAgICBhdmFpbGFibGVfYW1vdW50OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQW1vdW50IGF2YWlsYWJsZSBmb3IgdXNlLiIsIGFsaWFzPSJhdmFpbGFibGVBbW91bnQiKQogICAgdG90YWxfYW1vdW50OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVG90YWwgYW1vdW50IGluY2x1ZGluZyBsb2NrZWQvaGVsZCBiYWxhbmNlcy4iLCBhbGlhcz0idG90YWxBbW91bnQiKQogICAgbG9ja2VkX2Ftb3VudDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFtb3VudCBjdXJyZW50bHkgbG9ja2VkL2hlbGQuIiwgYWxpYXM9ImxvY2tlZEFtb3VudCIpCiAgICBjcmVkaXRfYW1vdW50OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3JlZGl0IGxpbmUgYW1vdW50LCBpZiBhcHBsaWNhYmxlICgwIHdoZW4gbm90IHVzZWQpLiIsIGFsaWFzPSJjcmVkaXRBbW91bnQiKQogICAgYmFsYW5jZV90eXBlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iV2FsbGV0IHR5cGUvY2F0ZWdvcnkgKGUuZy4sIFNQT1QsIE1BUkdJTiwgRlVORElORykuIiwgYWxpYXM9ImJhbGFuY2VUeXBlIikKICAgIGJhbGFuY2VfbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRpc3BsYXkgbmFtZSBmb3IgdGhlIGJhbGFuY2UgdHlwZSAoYXQgdGhlIHByb3ZpZGVyKSIsIGFsaWFzPSJiYWxhbmNlTmFtZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFzc2V0SWQiLCAiYXZhaWxhYmxlQW1vdW50IiwgInRvdGFsQW1vdW50IiwgImxvY2tlZEFtb3VudCIsICJjcmVkaXRBbW91bnQiLCAiYmFsYW5jZVR5cGUiLCAiYmFsYW5jZU5hbWUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbm5lY3RlZEFjY291bnRCYWxhbmNlcyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYXNzZXRJZCI6IG9iai5nZXQoImFzc2V0SWQiKSwKICAgICAgICAgICAgImF2YWlsYWJsZUFtb3VudCI6IG9iai5nZXQoImF2YWlsYWJsZUFtb3VudCIpLAogICAgICAgICAgICAidG90YWxBbW91bnQiOiBvYmouZ2V0KCJ0b3RhbEFtb3VudCIpLAogICAgICAgICAgICAibG9ja2VkQW1vdW50Ijogb2JqLmdldCgibG9ja2VkQW1vdW50IiksCiAgICAgICAgICAgICJjcmVkaXRBbW91bnQiOiBvYmouZ2V0KCJjcmVkaXRBbW91bnQiKSwKICAgICAgICAgICAgImJhbGFuY2VUeXBlIjogb2JqLmdldCgiYmFsYW5jZVR5cGUiKSwKICAgICAgICAgICAgImJhbGFuY2VOYW1lIjogb2JqLmdldCgiYmFsYW5jZU5hbWUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/connected_account_balances_response.py b/fireblocks/models/connected_account_balances_response.py index f0440f34..5f49af97 100644 --- a/fireblocks/models/connected_account_balances_response.py +++ b/fireblocks/models/connected_account_balances_response.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.connected_account_balances import ConnectedAccountBalances -from typing import Optional, Set -from typing_extensions import Self - -class ConnectedAccountBalancesResponse(BaseModel): - """ - ConnectedAccountBalancesResponse - """ # noqa: E501 - data: List[ConnectedAccountBalances] = Field(description="Flat balance row for a single asset within an account and wallet type. One row per (assetId, balanceType).") - total: Optional[StrictInt] = Field(default=None, description="Total number of balance rows by query.") - next: Optional[StrictStr] = Field(default=None, description="A cursor for the next page of results, if available.") - __properties: ClassVar[List[str]] = ["data", "total", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConnectedAccountBalancesResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConnectedAccountBalancesResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [ConnectedAccountBalances.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "total": obj.get("total"), - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRfYmFsYW5jZXMgaW1wb3J0IENvbm5lY3RlZEFjY291bnRCYWxhbmNlcwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXNSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXNSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGF0YTogTGlzdFtDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXNdID0gRmllbGQoZGVzY3JpcHRpb249IkZsYXQgYmFsYW5jZSByb3cgZm9yIGEgc2luZ2xlIGFzc2V0IHdpdGhpbiBhbiBhY2NvdW50IGFuZCB3YWxsZXQgdHlwZS4gT25lIHJvdyBwZXIgKGFzc2V0SWQsIGJhbGFuY2VUeXBlKS4iKQogICAgdG90YWw6IE9wdGlvbmFsW1N0cmljdEludF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUb3RhbCBudW1iZXIgb2YgYmFsYW5jZSByb3dzIGJ5IHF1ZXJ5LiIpCiAgICBuZXh0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQSBjdXJzb3IgZm9yIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cywgaWYgYXZhaWxhYmxlLiIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRhdGEiLCAidG90YWwiLCAibmV4dCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29ubmVjdGVkQWNjb3VudEJhbGFuY2VzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGF0YSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgZm9yIF9pdGVtX2RhdGEgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZGF0YToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2RhdGEudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXNSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkYXRhIjogW0Nvbm5lY3RlZEFjY291bnRCYWxhbmNlcy5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImRhdGEiXV0gaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInRvdGFsIjogb2JqLmdldCgidG90YWwiKSwKICAgICAgICAgICAgIm5leHQiOiBvYmouZ2V0KCJuZXh0IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/connected_account_capability.py b/fireblocks/models/connected_account_capability.py index 5ccc5ae9..273e41cc 100644 --- a/fireblocks/models/connected_account_capability.py +++ b/fireblocks/models/connected_account_capability.py @@ -1,39 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ConnectedAccountCapability(str, Enum): - """ - ConnectedAccountCapability - """ - - """ - allowed enum values - """ - WITHDRAWALS = 'WITHDRAWALS' - DEPOSITS = 'DEPOSITS' - TRADING = 'TRADING' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ConnectedAccountCapability from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBDb25uZWN0ZWRBY2NvdW50Q2FwYWJpbGl0eShzdHIsIEVudW0pOgogICAgIiIiCiAgICBDb25uZWN0ZWRBY2NvdW50Q2FwYWJpbGl0eQogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIFdJVEhEUkFXQUxTID0gJ1dJVEhEUkFXQUxTJwogICAgREVQT1NJVFMgPSAnREVQT1NJVFMnCiAgICBUUkFESU5HID0gJ1RSQURJTkcnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29ubmVjdGVkQWNjb3VudENhcGFiaWxpdHkgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/connected_account_error_response.py b/fireblocks/models/connected_account_error_response.py index d1269b2c..7430c661 100644 --- a/fireblocks/models/connected_account_error_response.py +++ b/fireblocks/models/connected_account_error_response.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class ConnectedAccountErrorResponse(BaseModel): - """ - ConnectedAccountErrorResponse - """ # noqa: E501 - error_message: StrictStr = Field(description="Error message describing what went wrong", alias="errorMessage") - error_code: StrictStr = Field(description="Error code identifying the type of error", alias="errorCode") - __properties: ClassVar[List[str]] = ["errorMessage", "errorCode"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConnectedAccountErrorResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConnectedAccountErrorResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "errorMessage": obj.get("errorMessage"), - "errorCode": obj.get("errorCode") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENvbm5lY3RlZEFjY291bnRFcnJvclJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENvbm5lY3RlZEFjY291bnRFcnJvclJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBlcnJvcl9tZXNzYWdlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iRXJyb3IgbWVzc2FnZSBkZXNjcmliaW5nIHdoYXQgd2VudCB3cm9uZyIsIGFsaWFzPSJlcnJvck1lc3NhZ2UiKQogICAgZXJyb3JfY29kZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkVycm9yIGNvZGUgaWRlbnRpZnlpbmcgdGhlIHR5cGUgb2YgZXJyb3IiLCBhbGlhcz0iZXJyb3JDb2RlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZXJyb3JNZXNzYWdlIiwgImVycm9yQ29kZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29ubmVjdGVkQWNjb3VudEVycm9yUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29ubmVjdGVkQWNjb3VudEVycm9yUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZXJyb3JNZXNzYWdlIjogb2JqLmdldCgiZXJyb3JNZXNzYWdlIiksCiAgICAgICAgICAgICJlcnJvckNvZGUiOiBvYmouZ2V0KCJlcnJvckNvZGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/connected_account_manifest.py b/fireblocks/models/connected_account_manifest.py index e17f4234..948c3657 100644 --- a/fireblocks/models/connected_account_manifest.py +++ b/fireblocks/models/connected_account_manifest.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.connected_account_asset_type import ConnectedAccountAssetType -from fireblocks.models.connected_account_capability import ConnectedAccountCapability -from typing import Optional, Set -from typing_extensions import Self - -class ConnectedAccountManifest(BaseModel): - """ - ConnectedAccountManifest - """ # noqa: E501 - asset_types: List[ConnectedAccountAssetType] = Field(description="Asset types supported by the connected account.", alias="assetTypes") - capabilities: List[ConnectedAccountCapability] = Field(description="Features supported for the connected account. Logic: - If account capabilities include ramp -> TRADING - If account capabilities include transfers -> DEPOSITS - If account capabilities include transfersBlockchain / transfersFiat / transfersPeerAccounts / transfersInternal -> WITHDRAWALS ") - __properties: ClassVar[List[str]] = ["assetTypes", "capabilities"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConnectedAccountManifest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConnectedAccountManifest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "assetTypes": obj.get("assetTypes"), - "capabilities": obj.get("capabilities") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X2Fzc2V0X3R5cGUgaW1wb3J0IENvbm5lY3RlZEFjY291bnRBc3NldFR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfYWNjb3VudF9jYXBhYmlsaXR5IGltcG9ydCBDb25uZWN0ZWRBY2NvdW50Q2FwYWJpbGl0eQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb25uZWN0ZWRBY2NvdW50TWFuaWZlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29ubmVjdGVkQWNjb3VudE1hbmlmZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhc3NldF90eXBlczogTGlzdFtDb25uZWN0ZWRBY2NvdW50QXNzZXRUeXBlXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBc3NldCB0eXBlcyBzdXBwb3J0ZWQgYnkgdGhlIGNvbm5lY3RlZCBhY2NvdW50LiIsIGFsaWFzPSJhc3NldFR5cGVzIikKICAgIGNhcGFiaWxpdGllczogTGlzdFtDb25uZWN0ZWRBY2NvdW50Q2FwYWJpbGl0eV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iRmVhdHVyZXMgc3VwcG9ydGVkIGZvciB0aGUgY29ubmVjdGVkIGFjY291bnQuIExvZ2ljOiAtIElmIGFjY291bnQgY2FwYWJpbGl0aWVzIGluY2x1ZGUgcmFtcCAtPiBUUkFESU5HIC0gSWYgYWNjb3VudCBjYXBhYmlsaXRpZXMgaW5jbHVkZSB0cmFuc2ZlcnMgLT4gREVQT1NJVFMgLSBJZiBhY2NvdW50IGNhcGFiaWxpdGllcyBpbmNsdWRlIHRyYW5zZmVyc0Jsb2NrY2hhaW4gLyB0cmFuc2ZlcnNGaWF0IC8gdHJhbnNmZXJzUGVlckFjY291bnRzIC8gdHJhbnNmZXJzSW50ZXJuYWwgLT4gV0lUSERSQVdBTFMgIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYXNzZXRUeXBlcyIsICJjYXBhYmlsaXRpZXMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbm5lY3RlZEFjY291bnRNYW5pZmVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb25uZWN0ZWRBY2NvdW50TWFuaWZlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYXNzZXRUeXBlcyI6IG9iai5nZXQoImFzc2V0VHlwZXMiKSwKICAgICAgICAgICAgImNhcGFiaWxpdGllcyI6IG9iai5nZXQoImNhcGFiaWxpdGllcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/connected_account_rate_response.py b/fireblocks/models/connected_account_rate_response.py index e459a3de..c9e8fe59 100644 --- a/fireblocks/models/connected_account_rate_response.py +++ b/fireblocks/models/connected_account_rate_response.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class ConnectedAccountRateResponse(BaseModel): - """ - ConnectedAccountRateResponse - """ # noqa: E501 - account_id: StrictStr = Field(description="The ID of the account that generated the quote.", alias="accountId") - base_asset_id: StrictStr = Field(description="The source asset identifier", alias="baseAssetId") - quote_asset_id: StrictStr = Field(description="The target asset identifier", alias="quoteAssetId") - rate: StrictStr = Field(description="The exchange rate value") - __properties: ClassVar[List[str]] = ["accountId", "baseAssetId", "quoteAssetId", "rate"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConnectedAccountRateResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConnectedAccountRateResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountId": obj.get("accountId"), - "baseAssetId": obj.get("baseAssetId"), - "quoteAssetId": obj.get("quoteAssetId"), - "rate": obj.get("rate") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENvbm5lY3RlZEFjY291bnRSYXRlUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29ubmVjdGVkQWNjb3VudFJhdGVSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgYWNjb3VudF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYWNjb3VudCB0aGF0IGdlbmVyYXRlZCB0aGUgcXVvdGUuIiwgYWxpYXM9ImFjY291bnRJZCIpCiAgICBiYXNlX2Fzc2V0X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHNvdXJjZSBhc3NldCBpZGVudGlmaWVyIiwgYWxpYXM9ImJhc2VBc3NldElkIikKICAgIHF1b3RlX2Fzc2V0X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHRhcmdldCBhc3NldCBpZGVudGlmaWVyIiwgYWxpYXM9InF1b3RlQXNzZXRJZCIpCiAgICByYXRlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGV4Y2hhbmdlIHJhdGUgdmFsdWUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhY2NvdW50SWQiLCAiYmFzZUFzc2V0SWQiLCAicXVvdGVBc3NldElkIiwgInJhdGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbm5lY3RlZEFjY291bnRSYXRlUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29ubmVjdGVkQWNjb3VudFJhdGVSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhY2NvdW50SWQiOiBvYmouZ2V0KCJhY2NvdW50SWQiKSwKICAgICAgICAgICAgImJhc2VBc3NldElkIjogb2JqLmdldCgiYmFzZUFzc2V0SWQiKSwKICAgICAgICAgICAgInF1b3RlQXNzZXRJZCI6IG9iai5nZXQoInF1b3RlQXNzZXRJZCIpLAogICAgICAgICAgICAicmF0ZSI6IG9iai5nZXQoInJhdGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/connected_account_total_balance.py b/fireblocks/models/connected_account_total_balance.py index b544106e..ed2ebfbf 100644 --- a/fireblocks/models/connected_account_total_balance.py +++ b/fireblocks/models/connected_account_total_balance.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class ConnectedAccountTotalBalance(BaseModel): - """ - ConnectedAccountTotalBalance - """ # noqa: E501 - amount: StrictStr = Field(description="The denominated currency value of the account.") - denominated_asset_id: StrictStr = Field(description="The asset ID of the total balance.", alias="denominatedAssetId") - has_full_asset_coverage: StrictBool = Field(description="Indicates whether the total amount represents the complete balance of all assets in the account. When true, all asset balances have been successfully converted to the denominated currency. When false, some assets could not be included in the total due to missing exchange rates or non-convertible assets.", alias="hasFullAssetCoverage") - __properties: ClassVar[List[str]] = ["amount", "denominatedAssetId", "hasFullAssetCoverage"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConnectedAccountTotalBalance from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConnectedAccountTotalBalance from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": obj.get("amount"), - "denominatedAssetId": obj.get("denominatedAssetId"), - "hasFullAssetCoverage": obj.get("hasFullAssetCoverage") if obj.get("hasFullAssetCoverage") is not None else False - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENvbm5lY3RlZEFjY291bnRUb3RhbEJhbGFuY2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29ubmVjdGVkQWNjb3VudFRvdGFsQmFsYW5jZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgYW1vdW50OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGRlbm9taW5hdGVkIGN1cnJlbmN5IHZhbHVlIG9mIHRoZSBhY2NvdW50LiIpCiAgICBkZW5vbWluYXRlZF9hc3NldF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBhc3NldCBJRCBvZiB0aGUgdG90YWwgYmFsYW5jZS4iLCBhbGlhcz0iZGVub21pbmF0ZWRBc3NldElkIikKICAgIGhhc19mdWxsX2Fzc2V0X2NvdmVyYWdlOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IkluZGljYXRlcyB3aGV0aGVyIHRoZSB0b3RhbCBhbW91bnQgcmVwcmVzZW50cyB0aGUgY29tcGxldGUgYmFsYW5jZSBvZiBhbGwgYXNzZXRzIGluIHRoZSBhY2NvdW50LiBXaGVuIHRydWUsIGFsbCBhc3NldCBiYWxhbmNlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IGNvbnZlcnRlZCB0byB0aGUgZGVub21pbmF0ZWQgY3VycmVuY3kuIFdoZW4gZmFsc2UsIHNvbWUgYXNzZXRzIGNvdWxkIG5vdCBiZSBpbmNsdWRlZCBpbiB0aGUgdG90YWwgZHVlIHRvIG1pc3NpbmcgZXhjaGFuZ2UgcmF0ZXMgb3Igbm9uLWNvbnZlcnRpYmxlIGFzc2V0cy4iLCBhbGlhcz0iaGFzRnVsbEFzc2V0Q292ZXJhZ2UiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhbW91bnQiLCAiZGVub21pbmF0ZWRBc3NldElkIiwgImhhc0Z1bGxBc3NldENvdmVyYWdlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb25uZWN0ZWRBY2NvdW50VG90YWxCYWxhbmNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbm5lY3RlZEFjY291bnRUb3RhbEJhbGFuY2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYW1vdW50Ijogb2JqLmdldCgiYW1vdW50IiksCiAgICAgICAgICAgICJkZW5vbWluYXRlZEFzc2V0SWQiOiBvYmouZ2V0KCJkZW5vbWluYXRlZEFzc2V0SWQiKSwKICAgICAgICAgICAgImhhc0Z1bGxBc3NldENvdmVyYWdlIjogb2JqLmdldCgiaGFzRnVsbEFzc2V0Q292ZXJhZ2UiKSBpZiBvYmouZ2V0KCJoYXNGdWxsQXNzZXRDb3ZlcmFnZSIpIGlzIG5vdCBOb25lIGVsc2UgRmFsc2UKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/connected_account_trading_pair.py b/fireblocks/models/connected_account_trading_pair.py index 4a1cae92..307fd4c5 100644 --- a/fireblocks/models/connected_account_trading_pair.py +++ b/fireblocks/models/connected_account_trading_pair.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.connected_account_trading_pair_supported_type import ConnectedAccountTradingPairSupportedType -from typing import Optional, Set -from typing_extensions import Self - -class ConnectedAccountTradingPair(BaseModel): - """ - ConnectedAccountTradingPair - """ # noqa: E501 - id: StrictStr = Field(description="The ID of the trading pair.") - base_asset_id: StrictStr = Field(description="The Symbol of the base asset.", alias="baseAssetId") - quote_asset_id: StrictStr = Field(description="The symbol of the quote asset.", alias="quoteAssetId") - supported_types: List[ConnectedAccountTradingPairSupportedType] = Field(alias="supportedTypes") - __properties: ClassVar[List[str]] = ["id", "baseAssetId", "quoteAssetId", "supportedTypes"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConnectedAccountTradingPair from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConnectedAccountTradingPair from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "baseAssetId": obj.get("baseAssetId"), - "quoteAssetId": obj.get("quoteAssetId"), - "supportedTypes": obj.get("supportedTypes") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRfdHJhZGluZ19wYWlyX3N1cHBvcnRlZF90eXBlIGltcG9ydCBDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXJTdXBwb3J0ZWRUeXBlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXIKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB0cmFkaW5nIHBhaXIuIikKICAgIGJhc2VfYXNzZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgU3ltYm9sIG9mIHRoZSBiYXNlIGFzc2V0LiIsIGFsaWFzPSJiYXNlQXNzZXRJZCIpCiAgICBxdW90ZV9hc3NldF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBzeW1ib2wgb2YgdGhlIHF1b3RlIGFzc2V0LiIsIGFsaWFzPSJxdW90ZUFzc2V0SWQiKQogICAgc3VwcG9ydGVkX3R5cGVzOiBMaXN0W0Nvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpclN1cHBvcnRlZFR5cGVdID0gRmllbGQoYWxpYXM9InN1cHBvcnRlZFR5cGVzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAiYmFzZUFzc2V0SWQiLCAicXVvdGVBc3NldElkIiwgInN1cHBvcnRlZFR5cGVzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXIgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgImJhc2VBc3NldElkIjogb2JqLmdldCgiYmFzZUFzc2V0SWQiKSwKICAgICAgICAgICAgInF1b3RlQXNzZXRJZCI6IG9iai5nZXQoInF1b3RlQXNzZXRJZCIpLAogICAgICAgICAgICAic3VwcG9ydGVkVHlwZXMiOiBvYmouZ2V0KCJzdXBwb3J0ZWRUeXBlcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/connected_account_trading_pair_supported_type.py b/fireblocks/models/connected_account_trading_pair_supported_type.py index bbecadc6..63a36fb1 100644 --- a/fireblocks/models/connected_account_trading_pair_supported_type.py +++ b/fireblocks/models/connected_account_trading_pair_supported_type.py @@ -1,39 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ConnectedAccountTradingPairSupportedType(str, Enum): - """ - ConnectedAccountTradingPairSupportedType - """ - - """ - allowed enum values - """ - QUOTE = 'QUOTE' - MARKET = 'MARKET' - LIMIT = 'LIMIT' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ConnectedAccountTradingPairSupportedType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXJTdXBwb3J0ZWRUeXBlKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpclN1cHBvcnRlZFR5cGUKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBRVU9URSA9ICdRVU9URScKICAgIE1BUktFVCA9ICdNQVJLRVQnCiAgICBMSU1JVCA9ICdMSU1JVCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXJTdXBwb3J0ZWRUeXBlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/connected_account_trading_pairs_response.py b/fireblocks/models/connected_account_trading_pairs_response.py index fcba42fa..1aafd988 100644 --- a/fireblocks/models/connected_account_trading_pairs_response.py +++ b/fireblocks/models/connected_account_trading_pairs_response.py @@ -1,105 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.connected_account_trading_pair import ConnectedAccountTradingPair -from typing import Optional, Set -from typing_extensions import Self - -class ConnectedAccountTradingPairsResponse(BaseModel): - """ - ConnectedAccountTradingPairsResponse - """ # noqa: E501 - data: List[ConnectedAccountTradingPair] - total: Optional[StrictInt] = Field(default=None, description="Total number of asset pairs matching the query.") - next: Optional[StrictStr] = Field(default=None, description="A cursor for the next page of results, if available.") - __properties: ClassVar[List[str]] = ["data", "total", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConnectedAccountTradingPairsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # set to None if next (nullable) is None - # and model_fields_set contains the field - if self.next is None and "next" in self.model_fields_set: - _dict['next'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConnectedAccountTradingPairsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [ConnectedAccountTradingPair.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "total": obj.get("total"), - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRfdHJhZGluZ19wYWlyIGltcG9ydCBDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXIKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyc1Jlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpcnNSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGF0YTogTGlzdFtDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXJdCiAgICB0b3RhbDogT3B0aW9uYWxbU3RyaWN0SW50XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRvdGFsIG51bWJlciBvZiBhc3NldCBwYWlycyBtYXRjaGluZyB0aGUgcXVlcnkuIikKICAgIG5leHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBIGN1cnNvciBmb3IgdGhlIG5leHQgcGFnZSBvZiByZXN1bHRzLCBpZiBhdmFpbGFibGUuIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZGF0YSIsICJ0b3RhbCIsICJuZXh0Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXJzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGF0YSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgZm9yIF9pdGVtX2RhdGEgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZGF0YToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2RhdGEudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gX2l0ZW1zCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBuZXh0IChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5uZXh0IGlzIE5vbmUgYW5kICJuZXh0IiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WyduZXh0J10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyc1Jlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRhdGEiOiBbQ29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiZGF0YSJdXSBpZiBvYmouZ2V0KCJkYXRhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAidG90YWwiOiBvYmouZ2V0KCJ0b3RhbCIpLAogICAgICAgICAgICAibmV4dCI6IG9iai5nZXQoIm5leHQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/connected_accounts_response.py b/fireblocks/models/connected_accounts_response.py index f540706c..b3296ea6 100644 --- a/fireblocks/models/connected_accounts_response.py +++ b/fireblocks/models/connected_accounts_response.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.connected_account import ConnectedAccount -from typing import Optional, Set -from typing_extensions import Self - -class ConnectedAccountsResponse(BaseModel): - """ - ConnectedAccountsResponse - """ # noqa: E501 - data: List[ConnectedAccount] = Field(description="List of connected accounts matching the query.") - total: Optional[StrictInt] = Field(default=None, description="Total number of accounts by query.") - next: Optional[StrictStr] = Field(default=None, description="A cursor for the next page of results, if available.") - __properties: ClassVar[List[str]] = ["data", "total", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConnectedAccountsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConnectedAccountsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [ConnectedAccount.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "total": obj.get("total"), - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnQgaW1wb3J0IENvbm5lY3RlZEFjY291bnQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ29ubmVjdGVkQWNjb3VudHNSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDb25uZWN0ZWRBY2NvdW50c1Jlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkYXRhOiBMaXN0W0Nvbm5lY3RlZEFjY291bnRdID0gRmllbGQoZGVzY3JpcHRpb249Ikxpc3Qgb2YgY29ubmVjdGVkIGFjY291bnRzIG1hdGNoaW5nIHRoZSBxdWVyeS4iKQogICAgdG90YWw6IE9wdGlvbmFsW1N0cmljdEludF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUb3RhbCBudW1iZXIgb2YgYWNjb3VudHMgYnkgcXVlcnkuIikKICAgIG5leHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBIGN1cnNvciBmb3IgdGhlIG5leHQgcGFnZSBvZiByZXN1bHRzLCBpZiBhdmFpbGFibGUuIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZGF0YSIsICJ0b3RhbCIsICJuZXh0Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb25uZWN0ZWRBY2NvdW50c1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGRhdGEgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmRhdGE6CiAgICAgICAgICAgIGZvciBfaXRlbV9kYXRhIGluIHNlbGYuZGF0YToKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2RhdGE6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9kYXRhLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2RhdGEnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29ubmVjdGVkQWNjb3VudHNSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkYXRhIjogW0Nvbm5lY3RlZEFjY291bnQuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJkYXRhIl1dIGlmIG9iai5nZXQoImRhdGEiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJ0b3RhbCI6IG9iai5nZXQoInRvdGFsIiksCiAgICAgICAgICAgICJuZXh0Ijogb2JqLmdldCgibmV4dCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/connected_single_account.py b/fireblocks/models/connected_single_account.py index ea87f367..901840ec 100644 --- a/fireblocks/models/connected_single_account.py +++ b/fireblocks/models/connected_single_account.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class ConnectedSingleAccount(BaseModel): - """ - ConnectedSingleAccount - """ # noqa: E501 - sub_accounts_ids: Optional[List[StrictStr]] = Field(default=None, description="IDs of sub-accounts associated with this connected account.", alias="subAccountsIds") - __properties: ClassVar[List[str]] = ["subAccountsIds"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConnectedSingleAccount from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConnectedSingleAccount from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "subAccountsIds": obj.get("subAccountsIds") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb25uZWN0ZWRTaW5nbGVBY2NvdW50KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENvbm5lY3RlZFNpbmdsZUFjY291bnQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHN1Yl9hY2NvdW50c19pZHM6IE9wdGlvbmFsW0xpc3RbU3RyaWN0U3RyXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJRHMgb2Ygc3ViLWFjY291bnRzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbm5lY3RlZCBhY2NvdW50LiIsIGFsaWFzPSJzdWJBY2NvdW50c0lkcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInN1YkFjY291bnRzSWRzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb25uZWN0ZWRTaW5nbGVBY2NvdW50IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbm5lY3RlZFNpbmdsZUFjY291bnQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3ViQWNjb3VudHNJZHMiOiBvYmouZ2V0KCJzdWJBY2NvdW50c0lkcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/connected_single_account_response.py b/fireblocks/models/connected_single_account_response.py index dc35dca6..11dc2b57 100644 --- a/fireblocks/models/connected_single_account_response.py +++ b/fireblocks/models/connected_single_account_response.py @@ -1,111 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.connected_account_approval_status import ConnectedAccountApprovalStatus -from fireblocks.models.connected_account_manifest import ConnectedAccountManifest -from fireblocks.models.connected_account_total_balance import ConnectedAccountTotalBalance -from typing import Optional, Set -from typing_extensions import Self - -class ConnectedSingleAccountResponse(BaseModel): - """ - ConnectedSingleAccountResponse - """ # noqa: E501 - id: StrictStr = Field(description="Unique identifier of the connected account.") - name: StrictStr = Field(description="Human-readable name of the connected account.") - provider_id: StrictStr = Field(description="The ID of the venue the account belongs to.", alias="providerId") - status: ConnectedAccountApprovalStatus - total_balance: ConnectedAccountTotalBalance = Field(alias="totalBalance") - manifest: ConnectedAccountManifest - parent_id: Optional[StrictStr] = Field(default=None, description="The ID of the parent main account, if this is a sub account.", alias="parentId") - sub_accounts_ids: Optional[List[StrictStr]] = Field(default=None, description="IDs of sub-accounts associated with this connected account.", alias="subAccountsIds") - __properties: ClassVar[List[str]] = ["id", "name", "providerId", "status", "totalBalance", "manifest", "parentId", "subAccountsIds"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConnectedSingleAccountResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of total_balance - if self.total_balance: - _dict['totalBalance'] = self.total_balance.to_dict() - # override the default output from pydantic by calling `to_dict()` of manifest - if self.manifest: - _dict['manifest'] = self.manifest.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConnectedSingleAccountResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name"), - "providerId": obj.get("providerId"), - "status": obj.get("status"), - "totalBalance": ConnectedAccountTotalBalance.from_dict(obj["totalBalance"]) if obj.get("totalBalance") is not None else None, - "manifest": ConnectedAccountManifest.from_dict(obj["manifest"]) if obj.get("manifest") is not None else None, - "parentId": obj.get("parentId"), - "subAccountsIds": obj.get("subAccountsIds") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X2FwcHJvdmFsX3N0YXR1cyBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudEFwcHJvdmFsU3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRfbWFuaWZlc3QgaW1wb3J0IENvbm5lY3RlZEFjY291bnRNYW5pZmVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X3RvdGFsX2JhbGFuY2UgaW1wb3J0IENvbm5lY3RlZEFjY291bnRUb3RhbEJhbGFuY2UKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ29ubmVjdGVkU2luZ2xlQWNjb3VudFJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENvbm5lY3RlZFNpbmdsZUFjY291bnRSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29ubmVjdGVkIGFjY291bnQuIikKICAgIG5hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJIdW1hbi1yZWFkYWJsZSBuYW1lIG9mIHRoZSBjb25uZWN0ZWQgYWNjb3VudC4iKQogICAgcHJvdmlkZXJfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIHZlbnVlIHRoZSBhY2NvdW50IGJlbG9uZ3MgdG8uIiwgYWxpYXM9InByb3ZpZGVySWQiKQogICAgc3RhdHVzOiBDb25uZWN0ZWRBY2NvdW50QXBwcm92YWxTdGF0dXMKICAgIHRvdGFsX2JhbGFuY2U6IENvbm5lY3RlZEFjY291bnRUb3RhbEJhbGFuY2UgPSBGaWVsZChhbGlhcz0idG90YWxCYWxhbmNlIikKICAgIG1hbmlmZXN0OiBDb25uZWN0ZWRBY2NvdW50TWFuaWZlc3QKICAgIHBhcmVudF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgcGFyZW50IG1haW4gYWNjb3VudCwgaWYgdGhpcyBpcyBhIHN1YiBhY2NvdW50LiIsIGFsaWFzPSJwYXJlbnRJZCIpCiAgICBzdWJfYWNjb3VudHNfaWRzOiBPcHRpb25hbFtMaXN0W1N0cmljdFN0cl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSURzIG9mIHN1Yi1hY2NvdW50cyBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb25uZWN0ZWQgYWNjb3VudC4iLCBhbGlhcz0ic3ViQWNjb3VudHNJZHMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJuYW1lIiwgInByb3ZpZGVySWQiLCAic3RhdHVzIiwgInRvdGFsQmFsYW5jZSIsICJtYW5pZmVzdCIsICJwYXJlbnRJZCIsICJzdWJBY2NvdW50c0lkcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29ubmVjdGVkU2luZ2xlQWNjb3VudFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgdG90YWxfYmFsYW5jZQogICAgICAgIGlmIHNlbGYudG90YWxfYmFsYW5jZToKICAgICAgICAgICAgX2RpY3RbJ3RvdGFsQmFsYW5jZSddID0gc2VsZi50b3RhbF9iYWxhbmNlLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBtYW5pZmVzdAogICAgICAgIGlmIHNlbGYubWFuaWZlc3Q6CiAgICAgICAgICAgIF9kaWN0WydtYW5pZmVzdCddID0gc2VsZi5tYW5pZmVzdC50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbm5lY3RlZFNpbmdsZUFjY291bnRSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAicHJvdmlkZXJJZCI6IG9iai5nZXQoInByb3ZpZGVySWQiKSwKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAidG90YWxCYWxhbmNlIjogQ29ubmVjdGVkQWNjb3VudFRvdGFsQmFsYW5jZS5mcm9tX2RpY3Qob2JqWyJ0b3RhbEJhbGFuY2UiXSkgaWYgb2JqLmdldCgidG90YWxCYWxhbmNlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibWFuaWZlc3QiOiBDb25uZWN0ZWRBY2NvdW50TWFuaWZlc3QuZnJvbV9kaWN0KG9ialsibWFuaWZlc3QiXSkgaWYgb2JqLmdldCgibWFuaWZlc3QiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJwYXJlbnRJZCI6IG9iai5nZXQoInBhcmVudElkIiksCiAgICAgICAgICAgICJzdWJBY2NvdW50c0lkcyI6IG9iai5nZXQoInN1YkFjY291bnRzSWRzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/console_user.py b/fireblocks/models/console_user.py index eeb586ef..55610d0d 100644 --- a/fireblocks/models/console_user.py +++ b/fireblocks/models/console_user.py @@ -1,105 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.user_role import UserRole -from fireblocks.models.user_status import UserStatus -from fireblocks.models.user_type import UserType -from typing import Optional, Set -from typing_extensions import Self - -class ConsoleUser(BaseModel): - """ - ConsoleUser - """ # noqa: E501 - id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the user") - first_name: Optional[StrictStr] = Field(default=None, description="The first name of the user", alias="firstName") - last_name: Optional[StrictStr] = Field(default=None, description="The last name of the user", alias="lastName") - email: Optional[StrictStr] = Field(default=None, description="The email address of the user") - role: Optional[UserRole] = None - enabled: Optional[StrictBool] = Field(default=None, description="Whether the user is enabled") - status: Optional[UserStatus] = None - user_type: Optional[UserType] = Field(default=None, alias="userType") - __properties: ClassVar[List[str]] = ["id", "firstName", "lastName", "email", "role", "enabled", "status", "userType"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConsoleUser from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConsoleUser from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "firstName": obj.get("firstName"), - "lastName": obj.get("lastName"), - "email": obj.get("email"), - "role": obj.get("role"), - "enabled": obj.get("enabled"), - "status": obj.get("status"), - "userType": obj.get("userType") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfcm9sZSBpbXBvcnQgVXNlclJvbGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51c2VyX3N0YXR1cyBpbXBvcnQgVXNlclN0YXR1cwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfdHlwZSBpbXBvcnQgVXNlclR5cGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ29uc29sZVVzZXIoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29uc29sZVVzZXIKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSB1c2VyIikKICAgIGZpcnN0X25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgZmlyc3QgbmFtZSBvZiB0aGUgdXNlciIsIGFsaWFzPSJmaXJzdE5hbWUiKQogICAgbGFzdF9uYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGxhc3QgbmFtZSBvZiB0aGUgdXNlciIsIGFsaWFzPSJsYXN0TmFtZSIpCiAgICBlbWFpbDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSB1c2VyIikKICAgIHJvbGU6IE9wdGlvbmFsW1VzZXJSb2xlXSA9IE5vbmUKICAgIGVuYWJsZWQ6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iV2hldGhlciB0aGUgdXNlciBpcyBlbmFibGVkIikKICAgIHN0YXR1czogT3B0aW9uYWxbVXNlclN0YXR1c10gPSBOb25lCiAgICB1c2VyX3R5cGU6IE9wdGlvbmFsW1VzZXJUeXBlXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InVzZXJUeXBlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAiZmlyc3ROYW1lIiwgImxhc3ROYW1lIiwgImVtYWlsIiwgInJvbGUiLCAiZW5hYmxlZCIsICJzdGF0dXMiLCAidXNlclR5cGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnNvbGVVc2VyIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnNvbGVVc2VyIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgImZpcnN0TmFtZSI6IG9iai5nZXQoImZpcnN0TmFtZSIpLAogICAgICAgICAgICAibGFzdE5hbWUiOiBvYmouZ2V0KCJsYXN0TmFtZSIpLAogICAgICAgICAgICAiZW1haWwiOiBvYmouZ2V0KCJlbWFpbCIpLAogICAgICAgICAgICAicm9sZSI6IG9iai5nZXQoInJvbGUiKSwKICAgICAgICAgICAgImVuYWJsZWQiOiBvYmouZ2V0KCJlbmFibGVkIiksCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgInVzZXJUeXBlIjogb2JqLmdldCgidXNlclR5cGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/contract_abi_response_dto.py b/fireblocks/models/contract_abi_response_dto.py index de293708..e956e88a 100644 --- a/fireblocks/models/contract_abi_response_dto.py +++ b/fireblocks/models/contract_abi_response_dto.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.abi_function import AbiFunction -from fireblocks.models.contract_abi_response_dto_abi_inner import ContractAbiResponseDtoAbiInner -from typing import Optional, Set -from typing_extensions import Self - -class ContractAbiResponseDto(BaseModel): - """ - ContractAbiResponseDto - """ # noqa: E501 - abi: List[ContractAbiResponseDtoAbiInner] = Field(description="The abi of the contract") - implementation_abi: Optional[List[AbiFunction]] = Field(default=None, description="The abi of the implementation contract if exists. Relevant only for proxy patterns", alias="implementationAbi") - __properties: ClassVar[List[str]] = ["abi", "implementationAbi"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ContractAbiResponseDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in abi (list) - _items = [] - if self.abi: - for _item_abi in self.abi: - if _item_abi: - _items.append(_item_abi.to_dict()) - _dict['abi'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in implementation_abi (list) - _items = [] - if self.implementation_abi: - for _item_implementation_abi in self.implementation_abi: - if _item_implementation_abi: - _items.append(_item_implementation_abi.to_dict()) - _dict['implementationAbi'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ContractAbiResponseDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "abi": [ContractAbiResponseDtoAbiInner.from_dict(_item) for _item in obj["abi"]] if obj.get("abi") is not None else None, - "implementationAbi": [AbiFunction.from_dict(_item) for _item in obj["implementationAbi"]] if obj.get("implementationAbi") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hYmlfZnVuY3Rpb24gaW1wb3J0IEFiaUZ1bmN0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfYWJpX3Jlc3BvbnNlX2R0b19hYmlfaW5uZXIgaW1wb3J0IENvbnRyYWN0QWJpUmVzcG9uc2VEdG9BYmlJbm5lcgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb250cmFjdEFiaVJlc3BvbnNlRHRvKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENvbnRyYWN0QWJpUmVzcG9uc2VEdG8KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFiaTogTGlzdFtDb250cmFjdEFiaVJlc3BvbnNlRHRvQWJpSW5uZXJdID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBhYmkgb2YgdGhlIGNvbnRyYWN0IikKICAgIGltcGxlbWVudGF0aW9uX2FiaTogT3B0aW9uYWxbTGlzdFtBYmlGdW5jdGlvbl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGFiaSBvZiB0aGUgaW1wbGVtZW50YXRpb24gY29udHJhY3QgaWYgZXhpc3RzLiBSZWxldmFudCBvbmx5IGZvciBwcm94eSBwYXR0ZXJucyIsIGFsaWFzPSJpbXBsZW1lbnRhdGlvbkFiaSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFiaSIsICJpbXBsZW1lbnRhdGlvbkFiaSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3RBYmlSZXNwb25zZUR0byBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBhYmkgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmFiaToKICAgICAgICAgICAgZm9yIF9pdGVtX2FiaSBpbiBzZWxmLmFiaToKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2FiaToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2FiaS50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydhYmknXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gaW1wbGVtZW50YXRpb25fYWJpIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5pbXBsZW1lbnRhdGlvbl9hYmk6CiAgICAgICAgICAgIGZvciBfaXRlbV9pbXBsZW1lbnRhdGlvbl9hYmkgaW4gc2VsZi5pbXBsZW1lbnRhdGlvbl9hYmk6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9pbXBsZW1lbnRhdGlvbl9hYmk6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9pbXBsZW1lbnRhdGlvbl9hYmkudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnaW1wbGVtZW50YXRpb25BYmknXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3RBYmlSZXNwb25zZUR0byBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhYmkiOiBbQ29udHJhY3RBYmlSZXNwb25zZUR0b0FiaUlubmVyLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiYWJpIl1dIGlmIG9iai5nZXQoImFiaSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImltcGxlbWVudGF0aW9uQWJpIjogW0FiaUZ1bmN0aW9uLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiaW1wbGVtZW50YXRpb25BYmkiXV0gaWYgb2JqLmdldCgiaW1wbGVtZW50YXRpb25BYmkiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/contract_abi_response_dto_abi_inner.py b/fireblocks/models/contract_abi_response_dto_abi_inner.py index 4e6ea171..0794f76d 100644 --- a/fireblocks/models/contract_abi_response_dto_abi_inner.py +++ b/fireblocks/models/contract_abi_response_dto_abi_inner.py @@ -1,138 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.abi_function import AbiFunction -from fireblocks.models.solana_instruction import SolanaInstruction -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -CONTRACTABIRESPONSEDTOABIINNER_ONE_OF_SCHEMAS = ["AbiFunction", "SolanaInstruction"] - -class ContractAbiResponseDtoAbiInner(BaseModel): - """ - ContractAbiResponseDtoAbiInner - """ - # data type: AbiFunction - oneof_schema_1_validator: Optional[AbiFunction] = None - # data type: SolanaInstruction - oneof_schema_2_validator: Optional[SolanaInstruction] = None - actual_instance: Optional[Union[AbiFunction, SolanaInstruction]] = None - one_of_schemas: Set[str] = { "AbiFunction", "SolanaInstruction" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = ContractAbiResponseDtoAbiInner.model_construct() - error_messages = [] - match = 0 - # validate data type: AbiFunction - if not isinstance(v, AbiFunction): - error_messages.append(f"Error! Input type `{type(v)}` is not `AbiFunction`") - else: - match += 1 - # validate data type: SolanaInstruction - if not isinstance(v, SolanaInstruction): - error_messages.append(f"Error! Input type `{type(v)}` is not `SolanaInstruction`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in ContractAbiResponseDtoAbiInner with oneOf schemas: AbiFunction, SolanaInstruction. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in ContractAbiResponseDtoAbiInner with oneOf schemas: AbiFunction, SolanaInstruction. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into AbiFunction - try: - instance.actual_instance = AbiFunction.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into SolanaInstruction - try: - instance.actual_instance = SolanaInstruction.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into ContractAbiResponseDtoAbiInner with oneOf schemas: AbiFunction, SolanaInstruction. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into ContractAbiResponseDtoAbiInner with oneOf schemas: AbiFunction, SolanaInstruction. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], AbiFunction, SolanaInstruction]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWJpX2Z1bmN0aW9uIGltcG9ydCBBYmlGdW5jdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvbGFuYV9pbnN0cnVjdGlvbiBpbXBvcnQgU29sYW5hSW5zdHJ1Y3Rpb24KZnJvbSBweWRhbnRpYyBpbXBvcnQgU3RyaWN0U3RyLCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgVW5pb24sIExpc3QsIFNldCwgT3B0aW9uYWwsIERpY3QKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgTGl0ZXJhbCwgU2VsZgoKQ09OVFJBQ1RBQklSRVNQT05TRURUT0FCSUlOTkVSX09ORV9PRl9TQ0hFTUFTID0gWyJBYmlGdW5jdGlvbiIsICJTb2xhbmFJbnN0cnVjdGlvbiJdCgpjbGFzcyBDb250cmFjdEFiaVJlc3BvbnNlRHRvQWJpSW5uZXIoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29udHJhY3RBYmlSZXNwb25zZUR0b0FiaUlubmVyCiAgICAiIiIKICAgICMgZGF0YSB0eXBlOiBBYmlGdW5jdGlvbgogICAgb25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yOiBPcHRpb25hbFtBYmlGdW5jdGlvbl0gPSBOb25lCiAgICAjIGRhdGEgdHlwZTogU29sYW5hSW5zdHJ1Y3Rpb24KICAgIG9uZW9mX3NjaGVtYV8yX3ZhbGlkYXRvcjogT3B0aW9uYWxbU29sYW5hSW5zdHJ1Y3Rpb25dID0gTm9uZQogICAgYWN0dWFsX2luc3RhbmNlOiBPcHRpb25hbFtVbmlvbltBYmlGdW5jdGlvbiwgU29sYW5hSW5zdHJ1Y3Rpb25dXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgIkFiaUZ1bmN0aW9uIiwgIlNvbGFuYUluc3RydWN0aW9uIiB9CgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gQ29udHJhY3RBYmlSZXNwb25zZUR0b0FiaUlubmVyLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBBYmlGdW5jdGlvbgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIEFiaUZ1bmN0aW9uKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBBYmlGdW5jdGlvbmAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogU29sYW5hSW5zdHJ1Y3Rpb24KICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBTb2xhbmFJbnN0cnVjdGlvbik6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgU29sYW5hSW5zdHJ1Y3Rpb25gIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIENvbnRyYWN0QWJpUmVzcG9uc2VEdG9BYmlJbm5lciB3aXRoIG9uZU9mIHNjaGVtYXM6IEFiaUZ1bmN0aW9uLCBTb2xhbmFJbnN0cnVjdGlvbi4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBDb250cmFjdEFiaVJlc3BvbnNlRHRvQWJpSW5uZXIgd2l0aCBvbmVPZiBzY2hlbWFzOiBBYmlGdW5jdGlvbiwgU29sYW5hSW5zdHJ1Y3Rpb24uIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBVbmlvbltzdHIsIERpY3Rbc3RyLCBBbnldXSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCgogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIEFiaUZ1bmN0aW9uCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBBYmlGdW5jdGlvbi5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBTb2xhbmFJbnN0cnVjdGlvbgogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gU29sYW5hSW5zdHJ1Y3Rpb24uZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCgogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBDb250cmFjdEFiaVJlc3BvbnNlRHRvQWJpSW5uZXIgd2l0aCBvbmVPZiBzY2hlbWFzOiBBYmlGdW5jdGlvbiwgU29sYW5hSW5zdHJ1Y3Rpb24uIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gQ29udHJhY3RBYmlSZXNwb25zZUR0b0FiaUlubmVyIHdpdGggb25lT2Ygc2NoZW1hczogQWJpRnVuY3Rpb24sIFNvbGFuYUluc3RydWN0aW9uLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuICJudWxsIgoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fanNvbiIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24oKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYuYWN0dWFsX2luc3RhbmNlKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IE9wdGlvbmFsW1VuaW9uW0RpY3Rbc3RyLCBBbnldLCBBYmlGdW5jdGlvbiwgU29sYW5hSW5zdHJ1Y3Rpb25dXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgcHJpbWl0aXZlIHR5cGUKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/contract_address_response.py b/fireblocks/models/contract_address_response.py index be691781..a5d672b1 100644 --- a/fireblocks/models/contract_address_response.py +++ b/fireblocks/models/contract_address_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class ContractAddressResponse(BaseModel): - """ - ContractAddressResponse - """ # noqa: E501 - contract_address: StrictStr = Field(description="The contract's onchain address", alias="contractAddress") - __properties: ClassVar[List[str]] = ["contractAddress"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ContractAddressResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ContractAddressResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "contractAddress": obj.get("contractAddress") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENvbnRyYWN0QWRkcmVzc1Jlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENvbnRyYWN0QWRkcmVzc1Jlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBjb250cmFjdF9hZGRyZXNzOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNvbnRyYWN0J3Mgb25jaGFpbiBhZGRyZXNzIiwgYWxpYXM9ImNvbnRyYWN0QWRkcmVzcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImNvbnRyYWN0QWRkcmVzcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3RBZGRyZXNzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3RBZGRyZXNzUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiY29udHJhY3RBZGRyZXNzIjogb2JqLmdldCgiY29udHJhY3RBZGRyZXNzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/contract_attributes.py b/fireblocks/models/contract_attributes.py index 5111169f..63892a6a 100644 --- a/fireblocks/models/contract_attributes.py +++ b/fireblocks/models/contract_attributes.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.auditor_data import AuditorData -from typing import Optional, Set -from typing_extensions import Self - -class ContractAttributes(BaseModel): - """ - ContractAttributes - """ # noqa: E501 - use_cases: List[StrictStr] = Field(alias="useCases") - standards: List[StrictStr] - auditor: AuditorData - __properties: ClassVar[List[str]] = ["useCases", "standards", "auditor"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ContractAttributes from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of auditor - if self.auditor: - _dict['auditor'] = self.auditor.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ContractAttributes from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "useCases": obj.get("useCases"), - "standards": obj.get("standards"), - "auditor": AuditorData.from_dict(obj["auditor"]) if obj.get("auditor") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXVkaXRvcl9kYXRhIGltcG9ydCBBdWRpdG9yRGF0YQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb250cmFjdEF0dHJpYnV0ZXMoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29udHJhY3RBdHRyaWJ1dGVzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB1c2VfY2FzZXM6IExpc3RbU3RyaWN0U3RyXSA9IEZpZWxkKGFsaWFzPSJ1c2VDYXNlcyIpCiAgICBzdGFuZGFyZHM6IExpc3RbU3RyaWN0U3RyXQogICAgYXVkaXRvcjogQXVkaXRvckRhdGEKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidXNlQ2FzZXMiLCAic3RhbmRhcmRzIiwgImF1ZGl0b3IiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0QXR0cmlidXRlcyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGF1ZGl0b3IKICAgICAgICBpZiBzZWxmLmF1ZGl0b3I6CiAgICAgICAgICAgIF9kaWN0WydhdWRpdG9yJ10gPSBzZWxmLmF1ZGl0b3IudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb250cmFjdEF0dHJpYnV0ZXMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidXNlQ2FzZXMiOiBvYmouZ2V0KCJ1c2VDYXNlcyIpLAogICAgICAgICAgICAic3RhbmRhcmRzIjogb2JqLmdldCgic3RhbmRhcmRzIiksCiAgICAgICAgICAgICJhdWRpdG9yIjogQXVkaXRvckRhdGEuZnJvbV9kaWN0KG9ialsiYXVkaXRvciJdKSBpZiBvYmouZ2V0KCJhdWRpdG9yIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/contract_data_decode_data_type.py b/fireblocks/models/contract_data_decode_data_type.py index 500b4a87..585ef3c6 100644 --- a/fireblocks/models/contract_data_decode_data_type.py +++ b/fireblocks/models/contract_data_decode_data_type.py @@ -1,39 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ContractDataDecodeDataType(str, Enum): - """ - The type of the data to decode. - """ - - """ - allowed enum values - """ - ERROR = 'ERROR' - LOG = 'LOG' - FUNCTION = 'FUNCTION' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ContractDataDecodeDataType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBDb250cmFjdERhdGFEZWNvZGVEYXRhVHlwZShzdHIsIEVudW0pOgogICAgIiIiCiAgICBUaGUgdHlwZSBvZiB0aGUgZGF0YSB0byBkZWNvZGUuCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgRVJST1IgPSAnRVJST1InCiAgICBMT0cgPSAnTE9HJwogICAgRlVOQ1RJT04gPSAnRlVOQ1RJT04nCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3REYXRhRGVjb2RlRGF0YVR5cGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/contract_data_decode_error.py b/fireblocks/models/contract_data_decode_error.py index 49606edd..e4b09d94 100644 --- a/fireblocks/models/contract_data_decode_error.py +++ b/fireblocks/models/contract_data_decode_error.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class ContractDataDecodeError(BaseModel): - """ - ContractDataDecodeError - """ # noqa: E501 - message: StrictStr = Field(description="Bad request error message") - code: Union[StrictFloat, StrictInt] = Field(description="Error code") - __properties: ClassVar[List[str]] = ["message", "code"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ContractDataDecodeError from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ContractDataDecodeError from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "code": obj.get("code") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb250cmFjdERhdGFEZWNvZGVFcnJvcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDb250cmFjdERhdGFEZWNvZGVFcnJvcgogICAgIiIiICMgbm9xYTogRTUwMQogICAgbWVzc2FnZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkJhZCByZXF1ZXN0IGVycm9yIG1lc3NhZ2UiKQogICAgY29kZTogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iRXJyb3IgY29kZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm1lc3NhZ2UiLCAiY29kZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3REYXRhRGVjb2RlRXJyb3IgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3REYXRhRGVjb2RlRXJyb3IgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibWVzc2FnZSI6IG9iai5nZXQoIm1lc3NhZ2UiKSwKICAgICAgICAgICAgImNvZGUiOiBvYmouZ2V0KCJjb2RlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/contract_data_decode_request.py b/fireblocks/models/contract_data_decode_request.py index 5483ef23..f5e24528 100644 --- a/fireblocks/models/contract_data_decode_request.py +++ b/fireblocks/models/contract_data_decode_request.py @@ -1,105 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.abi_function import AbiFunction -from fireblocks.models.contract_data_decode_data_type import ContractDataDecodeDataType -from fireblocks.models.contract_data_decode_request_data import ContractDataDecodeRequestData -from typing import Optional, Set -from typing_extensions import Self - -class ContractDataDecodeRequest(BaseModel): - """ - ContractDataDecodeRequest - """ # noqa: E501 - data: ContractDataDecodeRequestData - data_type: ContractDataDecodeDataType = Field(alias="dataType") - abi: Optional[List[AbiFunction]] = Field(default=None, description="The abi of the function/error/log to decode.") - __properties: ClassVar[List[str]] = ["data", "dataType", "abi"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ContractDataDecodeRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of data - if self.data: - _dict['data'] = self.data.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in abi (list) - _items = [] - if self.abi: - for _item_abi in self.abi: - if _item_abi: - _items.append(_item_abi.to_dict()) - _dict['abi'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ContractDataDecodeRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": ContractDataDecodeRequestData.from_dict(obj["data"]) if obj.get("data") is not None else None, - "dataType": obj.get("dataType"), - "abi": [AbiFunction.from_dict(_item) for _item in obj["abi"]] if obj.get("abi") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hYmlfZnVuY3Rpb24gaW1wb3J0IEFiaUZ1bmN0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfZGF0YV9kZWNvZGVfZGF0YV90eXBlIGltcG9ydCBDb250cmFjdERhdGFEZWNvZGVEYXRhVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RhdGFfZGVjb2RlX3JlcXVlc3RfZGF0YSBpbXBvcnQgQ29udHJhY3REYXRhRGVjb2RlUmVxdWVzdERhdGEKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ29udHJhY3REYXRhRGVjb2RlUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDb250cmFjdERhdGFEZWNvZGVSZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkYXRhOiBDb250cmFjdERhdGFEZWNvZGVSZXF1ZXN0RGF0YQogICAgZGF0YV90eXBlOiBDb250cmFjdERhdGFEZWNvZGVEYXRhVHlwZSA9IEZpZWxkKGFsaWFzPSJkYXRhVHlwZSIpCiAgICBhYmk6IE9wdGlvbmFsW0xpc3RbQWJpRnVuY3Rpb25dXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBhYmkgb2YgdGhlIGZ1bmN0aW9uL2Vycm9yL2xvZyB0byBkZWNvZGUuIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZGF0YSIsICJkYXRhVHlwZSIsICJhYmkiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBkYXRhCiAgICAgICAgaWYgc2VsZi5kYXRhOgogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gc2VsZi5kYXRhLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gYWJpIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5hYmk6CiAgICAgICAgICAgIGZvciBfaXRlbV9hYmkgaW4gc2VsZi5hYmk6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9hYmk6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9hYmkudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnYWJpJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZGF0YSI6IENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3REYXRhLmZyb21fZGljdChvYmpbImRhdGEiXSkgaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImRhdGFUeXBlIjogb2JqLmdldCgiZGF0YVR5cGUiKSwKICAgICAgICAgICAgImFiaSI6IFtBYmlGdW5jdGlvbi5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImFiaSJdXSBpZiBvYmouZ2V0KCJhYmkiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/contract_data_decode_request_data.py b/fireblocks/models/contract_data_decode_request_data.py index 54e08abb..40398edd 100644 --- a/fireblocks/models/contract_data_decode_request_data.py +++ b/fireblocks/models/contract_data_decode_request_data.py @@ -1,141 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.contract_data_log_data_param import ContractDataLogDataParam -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -CONTRACTDATADECODEREQUESTDATA_ONE_OF_SCHEMAS = ["ContractDataLogDataParam", "str"] - -class ContractDataDecodeRequestData(BaseModel): - """ - The data to decode, which can be a string or an object containing the data and its type. - """ - # data type: str - oneof_schema_1_validator: Optional[StrictStr] = Field(default=None, description="The encoded data to decode") - # data type: ContractDataLogDataParam - oneof_schema_2_validator: Optional[ContractDataLogDataParam] = None - actual_instance: Optional[Union[ContractDataLogDataParam, str]] = None - one_of_schemas: Set[str] = { "ContractDataLogDataParam", "str" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = ContractDataDecodeRequestData.model_construct() - error_messages = [] - match = 0 - # validate data type: str - try: - instance.oneof_schema_1_validator = v - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # validate data type: ContractDataLogDataParam - if not isinstance(v, ContractDataLogDataParam): - error_messages.append(f"Error! Input type `{type(v)}` is not `ContractDataLogDataParam`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in ContractDataDecodeRequestData with oneOf schemas: ContractDataLogDataParam, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in ContractDataDecodeRequestData with oneOf schemas: ContractDataLogDataParam, str. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into str - try: - # validation - instance.oneof_schema_1_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.oneof_schema_1_validator - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into ContractDataLogDataParam - try: - instance.actual_instance = ContractDataLogDataParam.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into ContractDataDecodeRequestData with oneOf schemas: ContractDataLogDataParam, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into ContractDataDecodeRequestData with oneOf schemas: ContractDataLogDataParam, str. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], ContractDataLogDataParam, str]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfZGF0YV9sb2dfZGF0YV9wYXJhbSBpbXBvcnQgQ29udHJhY3REYXRhTG9nRGF0YVBhcmFtCmZyb20gcHlkYW50aWMgaW1wb3J0IFN0cmljdFN0ciwgRmllbGQKZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uLCBMaXN0LCBTZXQsIE9wdGlvbmFsLCBEaWN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IExpdGVyYWwsIFNlbGYKCkNPTlRSQUNUREFUQURFQ09ERVJFUVVFU1REQVRBX09ORV9PRl9TQ0hFTUFTID0gWyJDb250cmFjdERhdGFMb2dEYXRhUGFyYW0iLCAic3RyIl0KCmNsYXNzIENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3REYXRhKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRoZSBkYXRhIHRvIGRlY29kZSwgd2hpY2ggY2FuIGJlIGEgc3RyaW5nIG9yIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBkYXRhIGFuZCBpdHMgdHlwZS4KICAgICIiIgogICAgIyBkYXRhIHR5cGU6IHN0cgogICAgb25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGVuY29kZWQgZGF0YSB0byBkZWNvZGUiKQogICAgIyBkYXRhIHR5cGU6IENvbnRyYWN0RGF0YUxvZ0RhdGFQYXJhbQogICAgb25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yOiBPcHRpb25hbFtDb250cmFjdERhdGFMb2dEYXRhUGFyYW1dID0gTm9uZQogICAgYWN0dWFsX2luc3RhbmNlOiBPcHRpb25hbFtVbmlvbltDb250cmFjdERhdGFMb2dEYXRhUGFyYW0sIHN0cl1dID0gTm9uZQogICAgb25lX29mX3NjaGVtYXM6IFNldFtzdHJdID0geyAiQ29udHJhY3REYXRhTG9nRGF0YVBhcmFtIiwgInN0ciIgfQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKSAtPiBOb25lOgogICAgICAgIGlmIGFyZ3M6CiAgICAgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIG9ubHkgMSBpcyBhbGxvd2VkIHRvIHNldCBgYWN0dWFsX2luc3RhbmNlYCIpCiAgICAgICAgICAgIGlmIGt3YXJnczoKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwga2V5d29yZCBhcmd1bWVudHMgY2Fubm90IGJlIHVzZWQuIikKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhhY3R1YWxfaW5zdGFuY2U9YXJnc1swXSkKICAgICAgICBlbHNlOgogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FjdHVhbF9pbnN0YW5jZScpCiAgICBkZWYgYWN0dWFsX2luc3RhbmNlX211c3RfdmFsaWRhdGVfb25lb2YoY2xzLCB2KToKICAgICAgICBpbnN0YW5jZSA9IENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3REYXRhLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBzdHIKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLm9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvciA9IHYKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBDb250cmFjdERhdGFMb2dEYXRhUGFyYW0KICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBDb250cmFjdERhdGFMb2dEYXRhUGFyYW0pOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYENvbnRyYWN0RGF0YUxvZ0RhdGFQYXJhbWAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gQ29udHJhY3REYXRhRGVjb2RlUmVxdWVzdERhdGEgd2l0aCBvbmVPZiBzY2hlbWFzOiBDb250cmFjdERhdGFMb2dEYXRhUGFyYW0sIHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBDb250cmFjdERhdGFEZWNvZGVSZXF1ZXN0RGF0YSB3aXRoIG9uZU9mIHNjaGVtYXM6IENvbnRyYWN0RGF0YUxvZ0RhdGFQYXJhbSwgc3RyLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gdgoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogVW5pb25bc3RyLCBEaWN0W3N0ciwgQW55XV0pIC0+IFNlbGY6CiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2pzb24oanNvbi5kdW1wcyhvYmopKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgb2JqZWN0IHJlcHJlc2VudGVkIGJ5IHRoZSBqc29uIHN0cmluZyIiIgogICAgICAgIGluc3RhbmNlID0gY2xzLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAoKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBzdHIKICAgICAgICB0cnk6CiAgICAgICAgICAgICMgdmFsaWRhdGlvbgogICAgICAgICAgICBpbnN0YW5jZS5vbmVvZl9zY2hlbWFfMV92YWxpZGF0b3IgPSBqc29uLmxvYWRzKGpzb25fc3RyKQogICAgICAgICAgICAjIGFzc2lnbiB2YWx1ZSB0byBhY3R1YWxfaW5zdGFuY2UKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gaW5zdGFuY2Uub25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBDb250cmFjdERhdGFMb2dEYXRhUGFyYW0KICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IENvbnRyYWN0RGF0YUxvZ0RhdGFQYXJhbS5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3REYXRhIHdpdGggb25lT2Ygc2NoZW1hczogQ29udHJhY3REYXRhTG9nRGF0YVBhcmFtLCBzdHIuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gQ29udHJhY3REYXRhRGVjb2RlUmVxdWVzdERhdGEgd2l0aCBvbmVPZiBzY2hlbWFzOiBDb250cmFjdERhdGFMb2dEYXRhUGFyYW0sIHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiAibnVsbCIKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2pzb24iKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbik6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKCkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLmFjdHVhbF9pbnN0YW5jZSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBPcHRpb25hbFtVbmlvbltEaWN0W3N0ciwgQW55XSwgQ29udHJhY3REYXRhTG9nRGF0YVBhcmFtLCBzdHJdXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgcHJpbWl0aXZlIHR5cGUKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/contract_data_decode_response_params.py b/fireblocks/models/contract_data_decode_response_params.py index aca4c0c2..cd7bbddb 100644 --- a/fireblocks/models/contract_data_decode_response_params.py +++ b/fireblocks/models/contract_data_decode_response_params.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.parameter_with_value import ParameterWithValue -from typing import Optional, Set -from typing_extensions import Self - -class ContractDataDecodeResponseParams(BaseModel): - """ - ContractDataDecodeResponseParams - """ # noqa: E501 - name: StrictStr = Field(description="The name of the contract function.") - signature: StrictStr = Field(description="The signature of the contract function.") - args: List[ParameterWithValue] - __properties: ClassVar[List[str]] = ["name", "signature", "args"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ContractDataDecodeResponseParams from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in args (list) - _items = [] - if self.args: - for _item_args in self.args: - if _item_args: - _items.append(_item_args.to_dict()) - _dict['args'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ContractDataDecodeResponseParams from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name"), - "signature": obj.get("signature"), - "args": [ParameterWithValue.from_dict(_item) for _item in obj["args"]] if obj.get("args") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyX3dpdGhfdmFsdWUgaW1wb3J0IFBhcmFtZXRlcldpdGhWYWx1ZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb250cmFjdERhdGFEZWNvZGVSZXNwb25zZVBhcmFtcyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDb250cmFjdERhdGFEZWNvZGVSZXNwb25zZVBhcmFtcwogICAgIiIiICMgbm9xYTogRTUwMQogICAgbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBuYW1lIG9mIHRoZSBjb250cmFjdCBmdW5jdGlvbi4iKQogICAgc2lnbmF0dXJlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHNpZ25hdHVyZSBvZiB0aGUgY29udHJhY3QgZnVuY3Rpb24uIikKICAgIGFyZ3M6IExpc3RbUGFyYW1ldGVyV2l0aFZhbHVlXQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJuYW1lIiwgInNpZ25hdHVyZSIsICJhcmdzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb250cmFjdERhdGFEZWNvZGVSZXNwb25zZVBhcmFtcyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBhcmdzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5hcmdzOgogICAgICAgICAgICBmb3IgX2l0ZW1fYXJncyBpbiBzZWxmLmFyZ3M6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9hcmdzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fYXJncy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydhcmdzJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0RGF0YURlY29kZVJlc3BvbnNlUGFyYW1zIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJzaWduYXR1cmUiOiBvYmouZ2V0KCJzaWduYXR1cmUiKSwKICAgICAgICAgICAgImFyZ3MiOiBbUGFyYW1ldGVyV2l0aFZhbHVlLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiYXJncyJdXSBpZiBvYmouZ2V0KCJhcmdzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/contract_data_decoded_response.py b/fireblocks/models/contract_data_decoded_response.py index 8b6fb620..b2045d1a 100644 --- a/fireblocks/models/contract_data_decoded_response.py +++ b/fireblocks/models/contract_data_decoded_response.py @@ -1,99 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.contract_data_decode_data_type import ContractDataDecodeDataType -from fireblocks.models.contract_data_decode_response_params import ContractDataDecodeResponseParams -from typing import Optional, Set -from typing_extensions import Self - -class ContractDataDecodedResponse(BaseModel): - """ - ContractDataDecodedResponse - """ # noqa: E501 - result: List[ContractDataDecodeResponseParams] = Field(description="The decoded parameters of the contract function call.") - type: ContractDataDecodeDataType - __properties: ClassVar[List[str]] = ["result", "type"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ContractDataDecodedResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in result (list) - _items = [] - if self.result: - for _item_result in self.result: - if _item_result: - _items.append(_item_result.to_dict()) - _dict['result'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ContractDataDecodedResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "result": [ContractDataDecodeResponseParams.from_dict(_item) for _item in obj["result"]] if obj.get("result") is not None else None, - "type": obj.get("type") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RhdGFfZGVjb2RlX2RhdGFfdHlwZSBpbXBvcnQgQ29udHJhY3REYXRhRGVjb2RlRGF0YVR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9kYXRhX2RlY29kZV9yZXNwb25zZV9wYXJhbXMgaW1wb3J0IENvbnRyYWN0RGF0YURlY29kZVJlc3BvbnNlUGFyYW1zCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENvbnRyYWN0RGF0YURlY29kZWRSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDb250cmFjdERhdGFEZWNvZGVkUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHJlc3VsdDogTGlzdFtDb250cmFjdERhdGFEZWNvZGVSZXNwb25zZVBhcmFtc10gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGRlY29kZWQgcGFyYW1ldGVycyBvZiB0aGUgY29udHJhY3QgZnVuY3Rpb24gY2FsbC4iKQogICAgdHlwZTogQ29udHJhY3REYXRhRGVjb2RlRGF0YVR5cGUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicmVzdWx0IiwgInR5cGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0RGF0YURlY29kZWRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiByZXN1bHQgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLnJlc3VsdDoKICAgICAgICAgICAgZm9yIF9pdGVtX3Jlc3VsdCBpbiBzZWxmLnJlc3VsdDoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX3Jlc3VsdDoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX3Jlc3VsdC50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydyZXN1bHQnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3REYXRhRGVjb2RlZFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInJlc3VsdCI6IFtDb250cmFjdERhdGFEZWNvZGVSZXNwb25zZVBhcmFtcy5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbInJlc3VsdCJdXSBpZiBvYmouZ2V0KCJyZXN1bHQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/contract_data_log_data_param.py b/fireblocks/models/contract_data_log_data_param.py index f29d1d71..620d051f 100644 --- a/fireblocks/models/contract_data_log_data_param.py +++ b/fireblocks/models/contract_data_log_data_param.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class ContractDataLogDataParam(BaseModel): - """ - ContractDataLogDataParam - """ # noqa: E501 - data: StrictStr = Field(description="The data to decode, which can be a string or an object containing the data and its type.") - topics: List[StrictStr] = Field(description="The topics of the log, which is an array of strings.") - __properties: ClassVar[List[str]] = ["data", "topics"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ContractDataLogDataParam from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ContractDataLogDataParam from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": obj.get("data"), - "topics": obj.get("topics") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENvbnRyYWN0RGF0YUxvZ0RhdGFQYXJhbShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDb250cmFjdERhdGFMb2dEYXRhUGFyYW0KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGRhdGE6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGF0YSB0byBkZWNvZGUsIHdoaWNoIGNhbiBiZSBhIHN0cmluZyBvciBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgZGF0YSBhbmQgaXRzIHR5cGUuIikKICAgIHRvcGljczogTGlzdFtTdHJpY3RTdHJdID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB0b3BpY3Mgb2YgdGhlIGxvZywgd2hpY2ggaXMgYW4gYXJyYXkgb2Ygc3RyaW5ncy4iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJkYXRhIiwgInRvcGljcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3REYXRhTG9nRGF0YVBhcmFtIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0RGF0YUxvZ0RhdGFQYXJhbSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkYXRhIjogb2JqLmdldCgiZGF0YSIpLAogICAgICAgICAgICAidG9waWNzIjogb2JqLmdldCgidG9waWNzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/contract_deploy_request.py b/fireblocks/models/contract_deploy_request.py index 767c2c48..5132fce1 100644 --- a/fireblocks/models/contract_deploy_request.py +++ b/fireblocks/models/contract_deploy_request.py @@ -1,116 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.parameter_with_value import ParameterWithValue -from typing import Optional, Set -from typing_extensions import Self - -class ContractDeployRequest(BaseModel): - """ - ContractDeployRequest - """ # noqa: E501 - asset_id: StrictStr = Field(description="The base asset identifier of the blockchain you want to deploy to", alias="assetId") - vault_account_id: StrictStr = Field(description="The vault account id you wish to deploy from", alias="vaultAccountId") - constructor_parameters: Optional[List[ParameterWithValue]] = Field(default=None, description="The constructor parameters of this contract", alias="constructorParameters") - use_gasless: Optional[StrictBool] = Field(default=None, description="Indicates whether the token should be created in a gasless manner, utilizing the ERC-2771 standard. When set to true, the transaction will be relayed by a designated relayer. The workspace must be configured to use Fireblocks gasless relay.", alias="useGasless") - fee: Optional[StrictStr] = Field(default=None, description="Max fee amount for the write function transaction. interchangeable with the 'feeLevel' field") - fee_level: Optional[StrictStr] = Field(default=None, description="Fee level for the write function transaction. interchangeable with the 'fee' field", alias="feeLevel") - __properties: ClassVar[List[str]] = ["assetId", "vaultAccountId", "constructorParameters", "useGasless", "fee", "feeLevel"] - - @field_validator('fee_level') - def fee_level_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['LOW', 'MEDIUM', 'HIGH']): - raise ValueError("must be one of enum values ('LOW', 'MEDIUM', 'HIGH')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ContractDeployRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in constructor_parameters (list) - _items = [] - if self.constructor_parameters: - for _item_constructor_parameters in self.constructor_parameters: - if _item_constructor_parameters: - _items.append(_item_constructor_parameters.to_dict()) - _dict['constructorParameters'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ContractDeployRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "assetId": obj.get("assetId"), - "vaultAccountId": obj.get("vaultAccountId"), - "constructorParameters": [ParameterWithValue.from_dict(_item) for _item in obj["constructorParameters"]] if obj.get("constructorParameters") is not None else None, - "useGasless": obj.get("useGasless"), - "fee": obj.get("fee"), - "feeLevel": obj.get("feeLevel") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyX3dpdGhfdmFsdWUgaW1wb3J0IFBhcmFtZXRlcldpdGhWYWx1ZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb250cmFjdERlcGxveVJlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29udHJhY3REZXBsb3lSZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhc3NldF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBiYXNlIGFzc2V0IGlkZW50aWZpZXIgb2YgdGhlIGJsb2NrY2hhaW4geW91IHdhbnQgdG8gZGVwbG95IHRvIiwgYWxpYXM9ImFzc2V0SWQiKQogICAgdmF1bHRfYWNjb3VudF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB2YXVsdCBhY2NvdW50IGlkIHlvdSB3aXNoIHRvIGRlcGxveSBmcm9tIiwgYWxpYXM9InZhdWx0QWNjb3VudElkIikKICAgIGNvbnN0cnVjdG9yX3BhcmFtZXRlcnM6IE9wdGlvbmFsW0xpc3RbUGFyYW1ldGVyV2l0aFZhbHVlXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgY29uc3RydWN0b3IgcGFyYW1ldGVycyBvZiB0aGlzIGNvbnRyYWN0IiwgYWxpYXM9ImNvbnN0cnVjdG9yUGFyYW1ldGVycyIpCiAgICB1c2VfZ2FzbGVzczogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJbmRpY2F0ZXMgd2hldGhlciB0aGUgdG9rZW4gc2hvdWxkIGJlIGNyZWF0ZWQgaW4gYSBnYXNsZXNzIG1hbm5lciwgdXRpbGl6aW5nIHRoZSBFUkMtMjc3MSBzdGFuZGFyZC4gV2hlbiBzZXQgdG8gdHJ1ZSwgdGhlIHRyYW5zYWN0aW9uIHdpbGwgYmUgcmVsYXllZCBieSBhIGRlc2lnbmF0ZWQgcmVsYXllci4gVGhlIHdvcmtzcGFjZSBtdXN0IGJlIGNvbmZpZ3VyZWQgdG8gdXNlIEZpcmVibG9ja3MgZ2FzbGVzcyByZWxheS4iLCBhbGlhcz0idXNlR2FzbGVzcyIpCiAgICBmZWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJNYXggZmVlIGFtb3VudCBmb3IgdGhlIHdyaXRlIGZ1bmN0aW9uIHRyYW5zYWN0aW9uLiBpbnRlcmNoYW5nZWFibGUgd2l0aCB0aGUgJ2ZlZUxldmVsJyBmaWVsZCIpCiAgICBmZWVfbGV2ZWw6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJGZWUgbGV2ZWwgZm9yIHRoZSB3cml0ZSBmdW5jdGlvbiB0cmFuc2FjdGlvbi4gaW50ZXJjaGFuZ2VhYmxlIHdpdGggdGhlICdmZWUnIGZpZWxkIiwgYWxpYXM9ImZlZUxldmVsIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYXNzZXRJZCIsICJ2YXVsdEFjY291bnRJZCIsICJjb25zdHJ1Y3RvclBhcmFtZXRlcnMiLCAidXNlR2FzbGVzcyIsICJmZWUiLCAiZmVlTGV2ZWwiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2ZlZV9sZXZlbCcpCiAgICBkZWYgZmVlX2xldmVsX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydMT1cnLCAnTUVESVVNJywgJ0hJR0gnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnTE9XJywgJ01FRElVTScsICdISUdIJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0RGVwbG95UmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBjb25zdHJ1Y3Rvcl9wYXJhbWV0ZXJzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5jb25zdHJ1Y3Rvcl9wYXJhbWV0ZXJzOgogICAgICAgICAgICBmb3IgX2l0ZW1fY29uc3RydWN0b3JfcGFyYW1ldGVycyBpbiBzZWxmLmNvbnN0cnVjdG9yX3BhcmFtZXRlcnM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9jb25zdHJ1Y3Rvcl9wYXJhbWV0ZXJzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fY29uc3RydWN0b3JfcGFyYW1ldGVycy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0Wydjb25zdHJ1Y3RvclBhcmFtZXRlcnMnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3REZXBsb3lSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFzc2V0SWQiOiBvYmouZ2V0KCJhc3NldElkIiksCiAgICAgICAgICAgICJ2YXVsdEFjY291bnRJZCI6IG9iai5nZXQoInZhdWx0QWNjb3VudElkIiksCiAgICAgICAgICAgICJjb25zdHJ1Y3RvclBhcmFtZXRlcnMiOiBbUGFyYW1ldGVyV2l0aFZhbHVlLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiY29uc3RydWN0b3JQYXJhbWV0ZXJzIl1dIGlmIG9iai5nZXQoImNvbnN0cnVjdG9yUGFyYW1ldGVycyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInVzZUdhc2xlc3MiOiBvYmouZ2V0KCJ1c2VHYXNsZXNzIiksCiAgICAgICAgICAgICJmZWUiOiBvYmouZ2V0KCJmZWUiKSwKICAgICAgICAgICAgImZlZUxldmVsIjogb2JqLmdldCgiZmVlTGV2ZWwiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/contract_deploy_response.py b/fireblocks/models/contract_deploy_response.py index 6fa0b264..da5be909 100644 --- a/fireblocks/models/contract_deploy_response.py +++ b/fireblocks/models/contract_deploy_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class ContractDeployResponse(BaseModel): - """ - ContractDeployResponse - """ # noqa: E501 - tx_id: StrictStr = Field(description="The transaction id of the deployment request", alias="txId") - __properties: ClassVar[List[str]] = ["txId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ContractDeployResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ContractDeployResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "txId": obj.get("txId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENvbnRyYWN0RGVwbG95UmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29udHJhY3REZXBsb3lSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHhfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdHJhbnNhY3Rpb24gaWQgb2YgdGhlIGRlcGxveW1lbnQgcmVxdWVzdCIsIGFsaWFzPSJ0eElkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidHhJZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3REZXBsb3lSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb250cmFjdERlcGxveVJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInR4SWQiOiBvYmouZ2V0KCJ0eElkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/contract_doc.py b/fireblocks/models/contract_doc.py index 06e9ef85..6a33dbee 100644 --- a/fireblocks/models/contract_doc.py +++ b/fireblocks/models/contract_doc.py @@ -1,109 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.function_doc import FunctionDoc -from typing import Optional, Set -from typing_extensions import Self - -class ContractDoc(BaseModel): - """ - ContractDoc - """ # noqa: E501 - details: Optional[StrictStr] = Field(default=None, description="A description of the contract") - events: Optional[StrictStr] = Field(default=None, description="A description of the contract`s events") - kind: StrictStr = Field(description="Is it devdoc or userdoc") - methods: Dict[str, FunctionDoc] = Field(description="The description of the contract functions") - version: Union[StrictFloat, StrictInt] = Field(description="The version of the contract") - __properties: ClassVar[List[str]] = ["details", "events", "kind", "methods", "version"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ContractDoc from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each value in methods (dict) - _field_dict = {} - if self.methods: - for _key_methods in self.methods: - if self.methods[_key_methods]: - _field_dict[_key_methods] = self.methods[_key_methods].to_dict() - _dict['methods'] = _field_dict - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ContractDoc from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "details": obj.get("details"), - "events": obj.get("events"), - "kind": obj.get("kind"), - "methods": dict( - (_k, FunctionDoc.from_dict(_v)) - for _k, _v in obj["methods"].items() - ) - if obj.get("methods") is not None - else None, - "version": obj.get("version") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5mdW5jdGlvbl9kb2MgaW1wb3J0IEZ1bmN0aW9uRG9jCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENvbnRyYWN0RG9jKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENvbnRyYWN0RG9jCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkZXRhaWxzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQSBkZXNjcmlwdGlvbiBvZiB0aGUgY29udHJhY3QiKQogICAgZXZlbnRzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQSBkZXNjcmlwdGlvbiBvZiB0aGUgY29udHJhY3RgcyBldmVudHMiKQogICAga2luZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IklzIGl0IGRldmRvYyBvciB1c2VyZG9jIikKICAgIG1ldGhvZHM6IERpY3Rbc3RyLCBGdW5jdGlvbkRvY10gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBjb250cmFjdCBmdW5jdGlvbnMiKQogICAgdmVyc2lvbjogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHZlcnNpb24gb2YgdGhlIGNvbnRyYWN0IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZGV0YWlscyIsICJldmVudHMiLCAia2luZCIsICJtZXRob2RzIiwgInZlcnNpb24iXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0RG9jIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCB2YWx1ZSBpbiBtZXRob2RzIChkaWN0KQogICAgICAgIF9maWVsZF9kaWN0ID0ge30KICAgICAgICBpZiBzZWxmLm1ldGhvZHM6CiAgICAgICAgICAgIGZvciBfa2V5X21ldGhvZHMgaW4gc2VsZi5tZXRob2RzOgogICAgICAgICAgICAgICAgaWYgc2VsZi5tZXRob2RzW19rZXlfbWV0aG9kc106CiAgICAgICAgICAgICAgICAgICAgX2ZpZWxkX2RpY3RbX2tleV9tZXRob2RzXSA9IHNlbGYubWV0aG9kc1tfa2V5X21ldGhvZHNdLnRvX2RpY3QoKQogICAgICAgICAgICBfZGljdFsnbWV0aG9kcyddID0gX2ZpZWxkX2RpY3QKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnRyYWN0RG9jIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRldGFpbHMiOiBvYmouZ2V0KCJkZXRhaWxzIiksCiAgICAgICAgICAgICJldmVudHMiOiBvYmouZ2V0KCJldmVudHMiKSwKICAgICAgICAgICAgImtpbmQiOiBvYmouZ2V0KCJraW5kIiksCiAgICAgICAgICAgICJtZXRob2RzIjogZGljdCgKICAgICAgICAgICAgICAgIChfaywgRnVuY3Rpb25Eb2MuZnJvbV9kaWN0KF92KSkKICAgICAgICAgICAgICAgIGZvciBfaywgX3YgaW4gb2JqWyJtZXRob2RzIl0uaXRlbXMoKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIG9iai5nZXQoIm1ldGhvZHMiKSBpcyBub3QgTm9uZQogICAgICAgICAgICBlbHNlIE5vbmUsCiAgICAgICAgICAgICJ2ZXJzaW9uIjogb2JqLmdldCgidmVyc2lvbiIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/contract_metadata_dto.py b/fireblocks/models/contract_metadata_dto.py index 96799802..9dc375e9 100644 --- a/fireblocks/models/contract_metadata_dto.py +++ b/fireblocks/models/contract_metadata_dto.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class ContractMetadataDto(BaseModel): - """ - ContractMetadataDto - """ # noqa: E501 - id: StrictStr = Field(description="The deployed contract ID") - blockchain_id: StrictStr = Field(description="The blockchain ID", alias="blockchainId") - contract_address: StrictStr = Field(description="The address of the token contract", alias="contractAddress") - contract_template_id: StrictStr = Field(description="The contract template ID", alias="contractTemplateId") - vault_account_id: Optional[StrictStr] = Field(default=None, description="The vault account ID that initiated the request to issue the token", alias="vaultAccountId") - __properties: ClassVar[List[str]] = ["id", "blockchainId", "contractAddress", "contractTemplateId", "vaultAccountId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ContractMetadataDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ContractMetadataDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "blockchainId": obj.get("blockchainId"), - "contractAddress": obj.get("contractAddress"), - "contractTemplateId": obj.get("contractTemplateId"), - "vaultAccountId": obj.get("vaultAccountId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb250cmFjdE1ldGFkYXRhRHRvKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENvbnRyYWN0TWV0YWRhdGFEdG8KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGRlcGxveWVkIGNvbnRyYWN0IElEIikKICAgIGJsb2NrY2hhaW5faWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmxvY2tjaGFpbiBJRCIsIGFsaWFzPSJibG9ja2NoYWluSWQiKQogICAgY29udHJhY3RfYWRkcmVzczogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBhZGRyZXNzIG9mIHRoZSB0b2tlbiBjb250cmFjdCIsIGFsaWFzPSJjb250cmFjdEFkZHJlc3MiKQogICAgY29udHJhY3RfdGVtcGxhdGVfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgY29udHJhY3QgdGVtcGxhdGUgSUQiLCBhbGlhcz0iY29udHJhY3RUZW1wbGF0ZUlkIikKICAgIHZhdWx0X2FjY291bnRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgdmF1bHQgYWNjb3VudCBJRCB0aGF0IGluaXRpYXRlZCB0aGUgcmVxdWVzdCB0byBpc3N1ZSB0aGUgdG9rZW4iLCBhbGlhcz0idmF1bHRBY2NvdW50SWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJibG9ja2NoYWluSWQiLCAiY29udHJhY3RBZGRyZXNzIiwgImNvbnRyYWN0VGVtcGxhdGVJZCIsICJ2YXVsdEFjY291bnRJZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3RNZXRhZGF0YUR0byBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb250cmFjdE1ldGFkYXRhRHRvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgImJsb2NrY2hhaW5JZCI6IG9iai5nZXQoImJsb2NrY2hhaW5JZCIpLAogICAgICAgICAgICAiY29udHJhY3RBZGRyZXNzIjogb2JqLmdldCgiY29udHJhY3RBZGRyZXNzIiksCiAgICAgICAgICAgICJjb250cmFjdFRlbXBsYXRlSWQiOiBvYmouZ2V0KCJjb250cmFjdFRlbXBsYXRlSWQiKSwKICAgICAgICAgICAgInZhdWx0QWNjb3VudElkIjogb2JqLmdldCgidmF1bHRBY2NvdW50SWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/contract_method_config.py b/fireblocks/models/contract_method_config.py index db094604..57477b88 100644 --- a/fireblocks/models/contract_method_config.py +++ b/fireblocks/models/contract_method_config.py @@ -1,99 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class ContractMethodConfig(BaseModel): - """ - Contract method configuration - """ # noqa: E501 - method_calls: List[StrictStr] = Field(alias="methodCalls") - operator: StrictStr = Field(description="Operator for method calls") - payload_suffix: Optional[StrictStr] = Field(default=None, description="Payload suffix for method calls", alias="payloadSuffix") - __properties: ClassVar[List[str]] = ["methodCalls", "operator", "payloadSuffix"] - - @field_validator('operator') - def operator_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['EITHER', 'EXACT']): - raise ValueError("must be one of enum values ('EITHER', 'EXACT')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ContractMethodConfig from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ContractMethodConfig from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "methodCalls": obj.get("methodCalls"), - "operator": obj.get("operator"), - "payloadSuffix": obj.get("payloadSuffix") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENvbnRyYWN0TWV0aG9kQ29uZmlnKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENvbnRyYWN0IG1ldGhvZCBjb25maWd1cmF0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBtZXRob2RfY2FsbHM6IExpc3RbU3RyaWN0U3RyXSA9IEZpZWxkKGFsaWFzPSJtZXRob2RDYWxscyIpCiAgICBvcGVyYXRvcjogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249Ik9wZXJhdG9yIGZvciBtZXRob2QgY2FsbHMiKQogICAgcGF5bG9hZF9zdWZmaXg6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJQYXlsb2FkIHN1ZmZpeCBmb3IgbWV0aG9kIGNhbGxzIiwgYWxpYXM9InBheWxvYWRTdWZmaXgiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJtZXRob2RDYWxscyIsICJvcGVyYXRvciIsICJwYXlsb2FkU3VmZml4Il0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdvcGVyYXRvcicpCiAgICBkZWYgb3BlcmF0b3JfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnRUlUSEVSJywgJ0VYQUNUJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0VJVEhFUicsICdFWEFDVCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb250cmFjdE1ldGhvZENvbmZpZyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb250cmFjdE1ldGhvZENvbmZpZyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJtZXRob2RDYWxscyI6IG9iai5nZXQoIm1ldGhvZENhbGxzIiksCiAgICAgICAgICAgICJvcGVyYXRvciI6IG9iai5nZXQoIm9wZXJhdG9yIiksCiAgICAgICAgICAgICJwYXlsb2FkU3VmZml4Ijogb2JqLmdldCgicGF5bG9hZFN1ZmZpeCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/contract_method_pattern.py b/fireblocks/models/contract_method_pattern.py index 433cce7f..51603e3b 100644 --- a/fireblocks/models/contract_method_pattern.py +++ b/fireblocks/models/contract_method_pattern.py @@ -1,141 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.contract_method_config import ContractMethodConfig -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -CONTRACTMETHODPATTERN_ONE_OF_SCHEMAS = ["ContractMethodConfig", "str"] - -class ContractMethodPattern(BaseModel): - """ - ContractMethodPattern - """ - # data type: str - oneof_schema_1_validator: Optional[StrictStr] = Field(default=None, description="All methods allowed") - # data type: ContractMethodConfig - oneof_schema_2_validator: Optional[ContractMethodConfig] = None - actual_instance: Optional[Union[ContractMethodConfig, str]] = None - one_of_schemas: Set[str] = { "ContractMethodConfig", "str" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = ContractMethodPattern.model_construct() - error_messages = [] - match = 0 - # validate data type: str - try: - instance.oneof_schema_1_validator = v - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # validate data type: ContractMethodConfig - if not isinstance(v, ContractMethodConfig): - error_messages.append(f"Error! Input type `{type(v)}` is not `ContractMethodConfig`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in ContractMethodPattern with oneOf schemas: ContractMethodConfig, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in ContractMethodPattern with oneOf schemas: ContractMethodConfig, str. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into str - try: - # validation - instance.oneof_schema_1_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.oneof_schema_1_validator - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into ContractMethodConfig - try: - instance.actual_instance = ContractMethodConfig.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into ContractMethodPattern with oneOf schemas: ContractMethodConfig, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into ContractMethodPattern with oneOf schemas: ContractMethodConfig, str. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], ContractMethodConfig, str]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfbWV0aG9kX2NvbmZpZyBpbXBvcnQgQ29udHJhY3RNZXRob2RDb25maWcKZnJvbSBweWRhbnRpYyBpbXBvcnQgU3RyaWN0U3RyLCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgVW5pb24sIExpc3QsIFNldCwgT3B0aW9uYWwsIERpY3QKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgTGl0ZXJhbCwgU2VsZgoKQ09OVFJBQ1RNRVRIT0RQQVRURVJOX09ORV9PRl9TQ0hFTUFTID0gWyJDb250cmFjdE1ldGhvZENvbmZpZyIsICJzdHIiXQoKY2xhc3MgQ29udHJhY3RNZXRob2RQYXR0ZXJuKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENvbnRyYWN0TWV0aG9kUGF0dGVybgogICAgIiIiCiAgICAjIGRhdGEgdHlwZTogc3RyCiAgICBvbmVvZl9zY2hlbWFfMV92YWxpZGF0b3I6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBbGwgbWV0aG9kcyBhbGxvd2VkIikKICAgICMgZGF0YSB0eXBlOiBDb250cmFjdE1ldGhvZENvbmZpZwogICAgb25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yOiBPcHRpb25hbFtDb250cmFjdE1ldGhvZENvbmZpZ10gPSBOb25lCiAgICBhY3R1YWxfaW5zdGFuY2U6IE9wdGlvbmFsW1VuaW9uW0NvbnRyYWN0TWV0aG9kQ29uZmlnLCBzdHJdXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgIkNvbnRyYWN0TWV0aG9kQ29uZmlnIiwgInN0ciIgfQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKSAtPiBOb25lOgogICAgICAgIGlmIGFyZ3M6CiAgICAgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIG9ubHkgMSBpcyBhbGxvd2VkIHRvIHNldCBgYWN0dWFsX2luc3RhbmNlYCIpCiAgICAgICAgICAgIGlmIGt3YXJnczoKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwga2V5d29yZCBhcmd1bWVudHMgY2Fubm90IGJlIHVzZWQuIikKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhhY3R1YWxfaW5zdGFuY2U9YXJnc1swXSkKICAgICAgICBlbHNlOgogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FjdHVhbF9pbnN0YW5jZScpCiAgICBkZWYgYWN0dWFsX2luc3RhbmNlX211c3RfdmFsaWRhdGVfb25lb2YoY2xzLCB2KToKICAgICAgICBpbnN0YW5jZSA9IENvbnRyYWN0TWV0aG9kUGF0dGVybi5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogc3RyCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5vbmVvZl9zY2hlbWFfMV92YWxpZGF0b3IgPSB2CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogQ29udHJhY3RNZXRob2RDb25maWcKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBDb250cmFjdE1ldGhvZENvbmZpZyk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgQ29udHJhY3RNZXRob2RDb25maWdgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIENvbnRyYWN0TWV0aG9kUGF0dGVybiB3aXRoIG9uZU9mIHNjaGVtYXM6IENvbnRyYWN0TWV0aG9kQ29uZmlnLCBzdHIuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gQ29udHJhY3RNZXRob2RQYXR0ZXJuIHdpdGggb25lT2Ygc2NoZW1hczogQ29udHJhY3RNZXRob2RDb25maWcsIHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIHYKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IFVuaW9uW3N0ciwgRGljdFtzdHIsIEFueV1dKSAtPiBTZWxmOgogICAgICAgIHJldHVybiBjbHMuZnJvbV9qc29uKGpzb24uZHVtcHMob2JqKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIlJldHVybnMgdGhlIG9iamVjdCByZXByZXNlbnRlZCBieSB0aGUganNvbiBzdHJpbmciIiIKICAgICAgICBpbnN0YW5jZSA9IGNscy5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gc3RyCiAgICAgICAgdHJ5OgogICAgICAgICAgICAjIHZhbGlkYXRpb24KICAgICAgICAgICAgaW5zdGFuY2Uub25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yID0ganNvbi5sb2Fkcyhqc29uX3N0cikKICAgICAgICAgICAgIyBhc3NpZ24gdmFsdWUgdG8gYWN0dWFsX2luc3RhbmNlCiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IGluc3RhbmNlLm9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvcgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gQ29udHJhY3RNZXRob2RDb25maWcKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IENvbnRyYWN0TWV0aG9kQ29uZmlnLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQoKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gQ29udHJhY3RNZXRob2RQYXR0ZXJuIHdpdGggb25lT2Ygc2NoZW1hczogQ29udHJhY3RNZXRob2RDb25maWcsIHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBDb250cmFjdE1ldGhvZFBhdHRlcm4gd2l0aCBvbmVPZiBzY2hlbWFzOiBDb250cmFjdE1ldGhvZENvbmZpZywgc3RyLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuICJudWxsIgoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fanNvbiIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24oKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYuYWN0dWFsX2luc3RhbmNlKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IE9wdGlvbmFsW1VuaW9uW0RpY3Rbc3RyLCBBbnldLCBDb250cmFjdE1ldGhvZENvbmZpZywgc3RyXV06CiAgICAgICAgIiIiUmV0dXJucyB0aGUgZGljdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2RpY3QiKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCk6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KCkKICAgICAgICBlbHNlOgogICAgICAgICAgICAjIHByaW1pdGl2ZSB0eXBlCiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZQoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcCgpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/contract_template_dto.py b/fireblocks/models/contract_template_dto.py index ef2c5f50..4749cc36 100644 --- a/fireblocks/models/contract_template_dto.py +++ b/fireblocks/models/contract_template_dto.py @@ -1,151 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.abi_function import AbiFunction -from fireblocks.models.contract_attributes import ContractAttributes -from fireblocks.models.contract_doc import ContractDoc -from fireblocks.models.vendor_dto import VendorDto -from typing import Optional, Set -from typing_extensions import Self - -class ContractTemplateDto(BaseModel): - """ - ContractTemplateDto - """ # noqa: E501 - id: StrictStr = Field(description="The unique identifier of the contract template") - name: StrictStr = Field(description="The name of the contract template") - description: StrictStr = Field(description="A short description of the contract template") - long_description: Optional[StrictStr] = Field(default=None, description="A full description of the contract template. May contain to break the lines", alias="longDescription") - abi: List[AbiFunction] = Field(description="The abi of the contract template. Necessary for displaying and for after deployment encoding") - attributes: Optional[ContractAttributes] = Field(default=None, description="The attributes related to this contract template. It will be displayed in the tokenization page") - docs: Optional[ContractDoc] = Field(default=None, description="A `natspec` compliant documentation json. Can be retrieved from the output json after compilation") - owner: Optional[StrictStr] = Field(default=None, description="The workspace id of the owner of this contract template. If it's a private contract, only this workspace will be allowed to deploy it") - vendor: Optional[VendorDto] = Field(default=None, description="The details of the vendor of this contract template. Applicable only for public contract templates") - is_public: StrictBool = Field(description="Is this a contract that is viewable by all fireblocks's users or is it visible only for this workspace", alias="isPublic") - can_deploy: Optional[StrictBool] = Field(default=None, description="True if the workspace allowed to deploy this contract, false otherwise", alias="canDeploy") - type: Optional[StrictStr] = Field(default=None, description="The type of the contract template") - implementation_contract_id: Optional[StrictStr] = Field(default=None, alias="implementationContractId") - initialization_phase: StrictStr = Field(alias="initializationPhase") - __properties: ClassVar[List[str]] = ["id", "name", "description", "longDescription", "abi", "attributes", "docs", "owner", "vendor", "isPublic", "canDeploy", "type", "implementationContractId", "initializationPhase"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['FUNGIBLE_TOKEN', 'NON_FUNGIBLE_TOKEN', 'NON_TOKEN', 'TOKEN_EXTENSION', 'TOKEN_UTILITY']): - raise ValueError("must be one of enum values ('FUNGIBLE_TOKEN', 'NON_FUNGIBLE_TOKEN', 'NON_TOKEN', 'TOKEN_EXTENSION', 'TOKEN_UTILITY')") - return value - - @field_validator('initialization_phase') - def initialization_phase_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['ON_DEPLOYMENT', 'POST_DEPLOYMENT']): - raise ValueError("must be one of enum values ('ON_DEPLOYMENT', 'POST_DEPLOYMENT')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ContractTemplateDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in abi (list) - _items = [] - if self.abi: - for _item_abi in self.abi: - if _item_abi: - _items.append(_item_abi.to_dict()) - _dict['abi'] = _items - # override the default output from pydantic by calling `to_dict()` of attributes - if self.attributes: - _dict['attributes'] = self.attributes.to_dict() - # override the default output from pydantic by calling `to_dict()` of docs - if self.docs: - _dict['docs'] = self.docs.to_dict() - # override the default output from pydantic by calling `to_dict()` of vendor - if self.vendor: - _dict['vendor'] = self.vendor.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ContractTemplateDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name"), - "description": obj.get("description"), - "longDescription": obj.get("longDescription"), - "abi": [AbiFunction.from_dict(_item) for _item in obj["abi"]] if obj.get("abi") is not None else None, - "attributes": ContractAttributes.from_dict(obj["attributes"]) if obj.get("attributes") is not None else None, - "docs": ContractDoc.from_dict(obj["docs"]) if obj.get("docs") is not None else None, - "owner": obj.get("owner"), - "vendor": VendorDto.from_dict(obj["vendor"]) if obj.get("vendor") is not None else None, - "isPublic": obj.get("isPublic"), - "canDeploy": obj.get("canDeploy"), - "type": obj.get("type"), - "implementationContractId": obj.get("implementationContractId"), - "initializationPhase": obj.get("initializationPhase") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWJpX2Z1bmN0aW9uIGltcG9ydCBBYmlGdW5jdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2F0dHJpYnV0ZXMgaW1wb3J0IENvbnRyYWN0QXR0cmlidXRlcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RvYyBpbXBvcnQgQ29udHJhY3REb2MKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52ZW5kb3JfZHRvIGltcG9ydCBWZW5kb3JEdG8KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ29udHJhY3RUZW1wbGF0ZUR0byhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDb250cmFjdFRlbXBsYXRlRHRvCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29udHJhY3QgdGVtcGxhdGUiKQogICAgbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBuYW1lIG9mIHRoZSBjb250cmFjdCB0ZW1wbGF0ZSIpCiAgICBkZXNjcmlwdGlvbjogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkEgc2hvcnQgZGVzY3JpcHRpb24gb2YgdGhlIGNvbnRyYWN0IHRlbXBsYXRlIikKICAgIGxvbmdfZGVzY3JpcHRpb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBIGZ1bGwgZGVzY3JpcHRpb24gb2YgdGhlIGNvbnRyYWN0IHRlbXBsYXRlLiBNYXkgY29udGFpbiAgIHRvIGJyZWFrIHRoZSBsaW5lcyIsIGFsaWFzPSJsb25nRGVzY3JpcHRpb24iKQogICAgYWJpOiBMaXN0W0FiaUZ1bmN0aW9uXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYWJpIG9mIHRoZSBjb250cmFjdCB0ZW1wbGF0ZS4gTmVjZXNzYXJ5IGZvciBkaXNwbGF5aW5nIGFuZCBmb3IgYWZ0ZXIgZGVwbG95bWVudCBlbmNvZGluZyIpCiAgICBhdHRyaWJ1dGVzOiBPcHRpb25hbFtDb250cmFjdEF0dHJpYnV0ZXNdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGF0dHJpYnV0ZXMgcmVsYXRlZCB0byB0aGlzIGNvbnRyYWN0IHRlbXBsYXRlLiBJdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgdG9rZW5pemF0aW9uIHBhZ2UiKQogICAgZG9jczogT3B0aW9uYWxbQ29udHJhY3REb2NdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQSBgbmF0c3BlY2AgY29tcGxpYW50IGRvY3VtZW50YXRpb24ganNvbi4gQ2FuIGJlIHJldHJpZXZlZCBmcm9tIHRoZSBvdXRwdXQganNvbiBhZnRlciBjb21waWxhdGlvbiIpCiAgICBvd25lcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSB3b3Jrc3BhY2UgaWQgb2YgdGhlIG93bmVyIG9mIHRoaXMgY29udHJhY3QgdGVtcGxhdGUuIElmIGl0J3MgYSBwcml2YXRlIGNvbnRyYWN0LCBvbmx5IHRoaXMgd29ya3NwYWNlIHdpbGwgYmUgYWxsb3dlZCB0byBkZXBsb3kgaXQiKQogICAgdmVuZG9yOiBPcHRpb25hbFtWZW5kb3JEdG9dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGRldGFpbHMgb2YgdGhlIHZlbmRvciBvZiB0aGlzIGNvbnRyYWN0IHRlbXBsYXRlLiBBcHBsaWNhYmxlIG9ubHkgZm9yIHB1YmxpYyBjb250cmFjdCB0ZW1wbGF0ZXMiKQogICAgaXNfcHVibGljOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IklzIHRoaXMgYSBjb250cmFjdCB0aGF0IGlzIHZpZXdhYmxlIGJ5IGFsbCBmaXJlYmxvY2tzJ3MgdXNlcnMgb3IgaXMgaXQgdmlzaWJsZSBvbmx5IGZvciB0aGlzIHdvcmtzcGFjZSIsIGFsaWFzPSJpc1B1YmxpYyIpCiAgICBjYW5fZGVwbG95OiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRydWUgaWYgdGhlIHdvcmtzcGFjZSBhbGxvd2VkIHRvIGRlcGxveSB0aGlzIGNvbnRyYWN0LCBmYWxzZSBvdGhlcndpc2UiLCBhbGlhcz0iY2FuRGVwbG95IikKICAgIHR5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgdHlwZSBvZiB0aGUgY29udHJhY3QgdGVtcGxhdGUiKQogICAgaW1wbGVtZW50YXRpb25fY29udHJhY3RfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJpbXBsZW1lbnRhdGlvbkNvbnRyYWN0SWQiKQogICAgaW5pdGlhbGl6YXRpb25fcGhhc2U6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJpbml0aWFsaXphdGlvblBoYXNlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAibmFtZSIsICJkZXNjcmlwdGlvbiIsICJsb25nRGVzY3JpcHRpb24iLCAiYWJpIiwgImF0dHJpYnV0ZXMiLCAiZG9jcyIsICJvd25lciIsICJ2ZW5kb3IiLCAiaXNQdWJsaWMiLCAiY2FuRGVwbG95IiwgInR5cGUiLCAiaW1wbGVtZW50YXRpb25Db250cmFjdElkIiwgImluaXRpYWxpemF0aW9uUGhhc2UiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3R5cGUnKQogICAgZGVmIHR5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gdmFsdWUKCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0ZVTkdJQkxFX1RPS0VOJywgJ05PTl9GVU5HSUJMRV9UT0tFTicsICdOT05fVE9LRU4nLCAnVE9LRU5fRVhURU5TSU9OJywgJ1RPS0VOX1VUSUxJVFknXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnRlVOR0lCTEVfVE9LRU4nLCAnTk9OX0ZVTkdJQkxFX1RPS0VOJywgJ05PTl9UT0tFTicsICdUT0tFTl9FWFRFTlNJT04nLCAnVE9LRU5fVVRJTElUWScpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdpbml0aWFsaXphdGlvbl9waGFzZScpCiAgICBkZWYgaW5pdGlhbGl6YXRpb25fcGhhc2VfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnT05fREVQTE9ZTUVOVCcsICdQT1NUX0RFUExPWU1FTlQnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnT05fREVQTE9ZTUVOVCcsICdQT1NUX0RFUExPWU1FTlQnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3RUZW1wbGF0ZUR0byBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBhYmkgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmFiaToKICAgICAgICAgICAgZm9yIF9pdGVtX2FiaSBpbiBzZWxmLmFiaToKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2FiaToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2FiaS50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydhYmknXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhdHRyaWJ1dGVzCiAgICAgICAgaWYgc2VsZi5hdHRyaWJ1dGVzOgogICAgICAgICAgICBfZGljdFsnYXR0cmlidXRlcyddID0gc2VsZi5hdHRyaWJ1dGVzLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBkb2NzCiAgICAgICAgaWYgc2VsZi5kb2NzOgogICAgICAgICAgICBfZGljdFsnZG9jcyddID0gc2VsZi5kb2NzLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiB2ZW5kb3IKICAgICAgICBpZiBzZWxmLnZlbmRvcjoKICAgICAgICAgICAgX2RpY3RbJ3ZlbmRvciddID0gc2VsZi52ZW5kb3IudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb250cmFjdFRlbXBsYXRlRHRvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IG9iai5nZXQoImRlc2NyaXB0aW9uIiksCiAgICAgICAgICAgICJsb25nRGVzY3JpcHRpb24iOiBvYmouZ2V0KCJsb25nRGVzY3JpcHRpb24iKSwKICAgICAgICAgICAgImFiaSI6IFtBYmlGdW5jdGlvbi5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImFiaSJdXSBpZiBvYmouZ2V0KCJhYmkiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJhdHRyaWJ1dGVzIjogQ29udHJhY3RBdHRyaWJ1dGVzLmZyb21fZGljdChvYmpbImF0dHJpYnV0ZXMiXSkgaWYgb2JqLmdldCgiYXR0cmlidXRlcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImRvY3MiOiBDb250cmFjdERvYy5mcm9tX2RpY3Qob2JqWyJkb2NzIl0pIGlmIG9iai5nZXQoImRvY3MiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJvd25lciI6IG9iai5nZXQoIm93bmVyIiksCiAgICAgICAgICAgICJ2ZW5kb3IiOiBWZW5kb3JEdG8uZnJvbV9kaWN0KG9ialsidmVuZG9yIl0pIGlmIG9iai5nZXQoInZlbmRvciIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImlzUHVibGljIjogb2JqLmdldCgiaXNQdWJsaWMiKSwKICAgICAgICAgICAgImNhbkRlcGxveSI6IG9iai5nZXQoImNhbkRlcGxveSIpLAogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImltcGxlbWVudGF0aW9uQ29udHJhY3RJZCI6IG9iai5nZXQoImltcGxlbWVudGF0aW9uQ29udHJhY3RJZCIpLAogICAgICAgICAgICAiaW5pdGlhbGl6YXRpb25QaGFzZSI6IG9iai5nZXQoImluaXRpYWxpemF0aW9uUGhhc2UiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/contract_upload_request.py b/fireblocks/models/contract_upload_request.py index d263b280..a9197f14 100644 --- a/fireblocks/models/contract_upload_request.py +++ b/fireblocks/models/contract_upload_request.py @@ -1,139 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.abi_function import AbiFunction -from fireblocks.models.contract_attributes import ContractAttributes -from fireblocks.models.contract_doc import ContractDoc -from typing import Optional, Set -from typing_extensions import Self - -class ContractUploadRequest(BaseModel): - """ - ContractUploadRequest - """ # noqa: E501 - name: StrictStr = Field(description="The name of the contract template") - description: StrictStr = Field(description="A short description of the contract template") - long_description: Optional[StrictStr] = Field(default=None, description="A full description of the contract template. May contain to break the lines", alias="longDescription") - bytecode: StrictStr = Field(description="The compiled artifact of this smart contract. Used for deployment of this contract template") - sourcecode: Optional[StrictStr] = Field(default=None, description="The source code of the contract. Optional.") - type: StrictStr = Field(description="The type of the contract template") - docs: Optional[ContractDoc] = Field(default=None, description="A `natspec` compliant documentation json. Can be retrieved from the output json after compilation") - abi: List[AbiFunction] = Field(description="The abi of the contract template. Necessary for displaying and for after deployment encoding") - attributes: Optional[ContractAttributes] = Field(default=None, description="The attributes related to this contract template. It will be displayed in the tokenization page") - protocol: Optional[StrictStr] = Field(default=None, description="The protocol that the template will be used for") - __properties: ClassVar[List[str]] = ["name", "description", "longDescription", "bytecode", "sourcecode", "type", "docs", "abi", "attributes", "protocol"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['FUNGIBLE_TOKEN', 'NON_FUNGIBLE_TOKEN', 'NON_TOKEN', 'TOKEN_EXTENSION', 'TOKEN_UTILITY']): - raise ValueError("must be one of enum values ('FUNGIBLE_TOKEN', 'NON_FUNGIBLE_TOKEN', 'NON_TOKEN', 'TOKEN_EXTENSION', 'TOKEN_UTILITY')") - return value - - @field_validator('protocol') - def protocol_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['ETH', 'SOL']): - raise ValueError("must be one of enum values ('ETH', 'SOL')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ContractUploadRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of docs - if self.docs: - _dict['docs'] = self.docs.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in abi (list) - _items = [] - if self.abi: - for _item_abi in self.abi: - if _item_abi: - _items.append(_item_abi.to_dict()) - _dict['abi'] = _items - # override the default output from pydantic by calling `to_dict()` of attributes - if self.attributes: - _dict['attributes'] = self.attributes.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ContractUploadRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name"), - "description": obj.get("description"), - "longDescription": obj.get("longDescription"), - "bytecode": obj.get("bytecode"), - "sourcecode": obj.get("sourcecode"), - "type": obj.get("type"), - "docs": ContractDoc.from_dict(obj["docs"]) if obj.get("docs") is not None else None, - "abi": [AbiFunction.from_dict(_item) for _item in obj["abi"]] if obj.get("abi") is not None else None, - "attributes": ContractAttributes.from_dict(obj["attributes"]) if obj.get("attributes") is not None else None, - "protocol": obj.get("protocol") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWJpX2Z1bmN0aW9uIGltcG9ydCBBYmlGdW5jdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2F0dHJpYnV0ZXMgaW1wb3J0IENvbnRyYWN0QXR0cmlidXRlcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RvYyBpbXBvcnQgQ29udHJhY3REb2MKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ29udHJhY3RVcGxvYWRSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENvbnRyYWN0VXBsb2FkUmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBuYW1lIG9mIHRoZSBjb250cmFjdCB0ZW1wbGF0ZSIpCiAgICBkZXNjcmlwdGlvbjogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkEgc2hvcnQgZGVzY3JpcHRpb24gb2YgdGhlIGNvbnRyYWN0IHRlbXBsYXRlIikKICAgIGxvbmdfZGVzY3JpcHRpb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBIGZ1bGwgZGVzY3JpcHRpb24gb2YgdGhlIGNvbnRyYWN0IHRlbXBsYXRlLiBNYXkgY29udGFpbiAgIHRvIGJyZWFrIHRoZSBsaW5lcyIsIGFsaWFzPSJsb25nRGVzY3JpcHRpb24iKQogICAgYnl0ZWNvZGU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgY29tcGlsZWQgYXJ0aWZhY3Qgb2YgdGhpcyBzbWFydCBjb250cmFjdC4gVXNlZCBmb3IgZGVwbG95bWVudCBvZiB0aGlzIGNvbnRyYWN0IHRlbXBsYXRlIikKICAgIHNvdXJjZWNvZGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgc291cmNlIGNvZGUgb2YgdGhlIGNvbnRyYWN0LiBPcHRpb25hbC4iKQogICAgdHlwZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB0eXBlIG9mIHRoZSBjb250cmFjdCB0ZW1wbGF0ZSIpCiAgICBkb2NzOiBPcHRpb25hbFtDb250cmFjdERvY10gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBIGBuYXRzcGVjYCBjb21wbGlhbnQgZG9jdW1lbnRhdGlvbiBqc29uLiBDYW4gYmUgcmV0cmlldmVkIGZyb20gdGhlIG91dHB1dCBqc29uIGFmdGVyIGNvbXBpbGF0aW9uIikKICAgIGFiaTogTGlzdFtBYmlGdW5jdGlvbl0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGFiaSBvZiB0aGUgY29udHJhY3QgdGVtcGxhdGUuIE5lY2Vzc2FyeSBmb3IgZGlzcGxheWluZyBhbmQgZm9yIGFmdGVyIGRlcGxveW1lbnQgZW5jb2RpbmciKQogICAgYXR0cmlidXRlczogT3B0aW9uYWxbQ29udHJhY3RBdHRyaWJ1dGVzXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBhdHRyaWJ1dGVzIHJlbGF0ZWQgdG8gdGhpcyBjb250cmFjdCB0ZW1wbGF0ZS4gSXQgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIHRva2VuaXphdGlvbiBwYWdlIikKICAgIHByb3RvY29sOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHByb3RvY29sIHRoYXQgdGhlIHRlbXBsYXRlIHdpbGwgYmUgdXNlZCBmb3IiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJuYW1lIiwgImRlc2NyaXB0aW9uIiwgImxvbmdEZXNjcmlwdGlvbiIsICJieXRlY29kZSIsICJzb3VyY2Vjb2RlIiwgInR5cGUiLCAiZG9jcyIsICJhYmkiLCAiYXR0cmlidXRlcyIsICJwcm90b2NvbCJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigndHlwZScpCiAgICBkZWYgdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydGVU5HSUJMRV9UT0tFTicsICdOT05fRlVOR0lCTEVfVE9LRU4nLCAnTk9OX1RPS0VOJywgJ1RPS0VOX0VYVEVOU0lPTicsICdUT0tFTl9VVElMSVRZJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0ZVTkdJQkxFX1RPS0VOJywgJ05PTl9GVU5HSUJMRV9UT0tFTicsICdOT05fVE9LRU4nLCAnVE9LRU5fRVhURU5TSU9OJywgJ1RPS0VOX1VUSUxJVFknKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgQGZpZWxkX3ZhbGlkYXRvcigncHJvdG9jb2wnKQogICAgZGVmIHByb3RvY29sX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydFVEgnLCAnU09MJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0VUSCcsICdTT0wnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3RVcGxvYWRSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZG9jcwogICAgICAgIGlmIHNlbGYuZG9jczoKICAgICAgICAgICAgX2RpY3RbJ2RvY3MnXSA9IHNlbGYuZG9jcy50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGFiaSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuYWJpOgogICAgICAgICAgICBmb3IgX2l0ZW1fYWJpIGluIHNlbGYuYWJpOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fYWJpOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fYWJpLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2FiaSddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGF0dHJpYnV0ZXMKICAgICAgICBpZiBzZWxmLmF0dHJpYnV0ZXM6CiAgICAgICAgICAgIF9kaWN0WydhdHRyaWJ1dGVzJ10gPSBzZWxmLmF0dHJpYnV0ZXMudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb250cmFjdFVwbG9hZFJlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKSwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogb2JqLmdldCgiZGVzY3JpcHRpb24iKSwKICAgICAgICAgICAgImxvbmdEZXNjcmlwdGlvbiI6IG9iai5nZXQoImxvbmdEZXNjcmlwdGlvbiIpLAogICAgICAgICAgICAiYnl0ZWNvZGUiOiBvYmouZ2V0KCJieXRlY29kZSIpLAogICAgICAgICAgICAic291cmNlY29kZSI6IG9iai5nZXQoInNvdXJjZWNvZGUiKSwKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIiksCiAgICAgICAgICAgICJkb2NzIjogQ29udHJhY3REb2MuZnJvbV9kaWN0KG9ialsiZG9jcyJdKSBpZiBvYmouZ2V0KCJkb2NzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiYWJpIjogW0FiaUZ1bmN0aW9uLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiYWJpIl1dIGlmIG9iai5nZXQoImFiaSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImF0dHJpYnV0ZXMiOiBDb250cmFjdEF0dHJpYnV0ZXMuZnJvbV9kaWN0KG9ialsiYXR0cmlidXRlcyJdKSBpZiBvYmouZ2V0KCJhdHRyaWJ1dGVzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAicHJvdG9jb2wiOiBvYmouZ2V0KCJwcm90b2NvbCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/contract_with_abi_dto.py b/fireblocks/models/contract_with_abi_dto.py index 2630f739..89abf6d5 100644 --- a/fireblocks/models/contract_with_abi_dto.py +++ b/fireblocks/models/contract_with_abi_dto.py @@ -1,108 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.abi_function import AbiFunction -from typing import Optional, Set -from typing_extensions import Self - -class ContractWithAbiDto(BaseModel): - """ - ContractWithAbiDto - """ # noqa: E501 - contract_address: StrictStr = Field(description="The address of the contract", alias="contractAddress") - base_asset_id: StrictStr = Field(description="The blockchain base assetId", alias="baseAssetId") - name: StrictStr = Field(description="The name of the contract") - abi: List[AbiFunction] = Field(description="The ABI of the contract") - is_proxy: Optional[StrictBool] = Field(default=None, description="Whether the contract is a proxy contract", alias="isProxy") - implementation: Optional[StrictStr] = Field(default=None, description="The implementation contract address") - is_public: StrictBool = Field(description="Whether the contract ABI is public", alias="isPublic") - __properties: ClassVar[List[str]] = ["contractAddress", "baseAssetId", "name", "abi", "isProxy", "implementation", "isPublic"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ContractWithAbiDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in abi (list) - _items = [] - if self.abi: - for _item_abi in self.abi: - if _item_abi: - _items.append(_item_abi.to_dict()) - _dict['abi'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ContractWithAbiDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "contractAddress": obj.get("contractAddress"), - "baseAssetId": obj.get("baseAssetId"), - "name": obj.get("name"), - "abi": [AbiFunction.from_dict(_item) for _item in obj["abi"]] if obj.get("abi") is not None else None, - "isProxy": obj.get("isProxy"), - "implementation": obj.get("implementation"), - "isPublic": obj.get("isPublic") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFiaV9mdW5jdGlvbiBpbXBvcnQgQWJpRnVuY3Rpb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ29udHJhY3RXaXRoQWJpRHRvKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENvbnRyYWN0V2l0aEFiaUR0bwogICAgIiIiICMgbm9xYTogRTUwMQogICAgY29udHJhY3RfYWRkcmVzczogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBhZGRyZXNzIG9mIHRoZSBjb250cmFjdCIsIGFsaWFzPSJjb250cmFjdEFkZHJlc3MiKQogICAgYmFzZV9hc3NldF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBibG9ja2NoYWluIGJhc2UgYXNzZXRJZCIsIGFsaWFzPSJiYXNlQXNzZXRJZCIpCiAgICBuYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIG5hbWUgb2YgdGhlIGNvbnRyYWN0IikKICAgIGFiaTogTGlzdFtBYmlGdW5jdGlvbl0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIEFCSSBvZiB0aGUgY29udHJhY3QiKQogICAgaXNfcHJveHk6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iV2hldGhlciB0aGUgY29udHJhY3QgaXMgYSBwcm94eSBjb250cmFjdCIsIGFsaWFzPSJpc1Byb3h5IikKICAgIGltcGxlbWVudGF0aW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGltcGxlbWVudGF0aW9uIGNvbnRyYWN0IGFkZHJlc3MiKQogICAgaXNfcHVibGljOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IldoZXRoZXIgdGhlIGNvbnRyYWN0IEFCSSBpcyBwdWJsaWMiLCBhbGlhcz0iaXNQdWJsaWMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJjb250cmFjdEFkZHJlc3MiLCAiYmFzZUFzc2V0SWQiLCAibmFtZSIsICJhYmkiLCAiaXNQcm94eSIsICJpbXBsZW1lbnRhdGlvbiIsICJpc1B1YmxpYyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udHJhY3RXaXRoQWJpRHRvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGFiaSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuYWJpOgogICAgICAgICAgICBmb3IgX2l0ZW1fYWJpIGluIHNlbGYuYWJpOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fYWJpOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fYWJpLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2FiaSddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb250cmFjdFdpdGhBYmlEdG8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiY29udHJhY3RBZGRyZXNzIjogb2JqLmdldCgiY29udHJhY3RBZGRyZXNzIiksCiAgICAgICAgICAgICJiYXNlQXNzZXRJZCI6IG9iai5nZXQoImJhc2VBc3NldElkIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAiYWJpIjogW0FiaUZ1bmN0aW9uLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiYWJpIl1dIGlmIG9iai5nZXQoImFiaSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImlzUHJveHkiOiBvYmouZ2V0KCJpc1Byb3h5IiksCiAgICAgICAgICAgICJpbXBsZW1lbnRhdGlvbiI6IG9iai5nZXQoImltcGxlbWVudGF0aW9uIiksCiAgICAgICAgICAgICJpc1B1YmxpYyI6IG9iai5nZXQoImlzUHVibGljIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/conversion_config_operation.py b/fireblocks/models/conversion_config_operation.py index bb11d798..0d34136b 100644 --- a/fireblocks/models/conversion_config_operation.py +++ b/fireblocks/models/conversion_config_operation.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.config_operation_status import ConfigOperationStatus -from fireblocks.models.conversion_operation_config_params import ConversionOperationConfigParams -from fireblocks.models.conversion_operation_type import ConversionOperationType -from fireblocks.models.conversion_validation_failure import ConversionValidationFailure -from typing import Optional, Set -from typing_extensions import Self - -class ConversionConfigOperation(BaseModel): - """ - ConversionConfigOperation - """ # noqa: E501 - operation_id: StrictStr = Field(alias="operationId") - type: ConversionOperationType - params: ConversionOperationConfigParams - status: ConfigOperationStatus - validation_failure: Optional[ConversionValidationFailure] = Field(default=None, alias="validationFailure") - __properties: ClassVar[List[str]] = ["operationId", "type", "params", "status", "validationFailure"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConversionConfigOperation from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of params - if self.params: - _dict['params'] = self.params.to_dict() - # override the default output from pydantic by calling `to_dict()` of validation_failure - if self.validation_failure: - _dict['validationFailure'] = self.validation_failure.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConversionConfigOperation from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "operationId": obj.get("operationId"), - "type": obj.get("type"), - "params": ConversionOperationConfigParams.from_dict(obj["params"]) if obj.get("params") is not None else None, - "status": obj.get("status"), - "validationFailure": ConversionValidationFailure.from_dict(obj["validationFailure"]) if obj.get("validationFailure") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbmZpZ19vcGVyYXRpb25fc3RhdHVzIGltcG9ydCBDb25maWdPcGVyYXRpb25TdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJzaW9uX29wZXJhdGlvbl9jb25maWdfcGFyYW1zIGltcG9ydCBDb252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fdHlwZSBpbXBvcnQgQ29udmVyc2lvbk9wZXJhdGlvblR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJzaW9uX3ZhbGlkYXRpb25fZmFpbHVyZSBpbXBvcnQgQ29udmVyc2lvblZhbGlkYXRpb25GYWlsdXJlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENvbnZlcnNpb25Db25maWdPcGVyYXRpb24oQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgb3BlcmF0aW9uX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChhbGlhcz0ib3BlcmF0aW9uSWQiKQogICAgdHlwZTogQ29udmVyc2lvbk9wZXJhdGlvblR5cGUKICAgIHBhcmFtczogQ29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtcwogICAgc3RhdHVzOiBDb25maWdPcGVyYXRpb25TdGF0dXMKICAgIHZhbGlkYXRpb25fZmFpbHVyZTogT3B0aW9uYWxbQ29udmVyc2lvblZhbGlkYXRpb25GYWlsdXJlXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InZhbGlkYXRpb25GYWlsdXJlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsib3BlcmF0aW9uSWQiLCAidHlwZSIsICJwYXJhbXMiLCAic3RhdHVzIiwgInZhbGlkYXRpb25GYWlsdXJlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcGFyYW1zCiAgICAgICAgaWYgc2VsZi5wYXJhbXM6CiAgICAgICAgICAgIF9kaWN0WydwYXJhbXMnXSA9IHNlbGYucGFyYW1zLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiB2YWxpZGF0aW9uX2ZhaWx1cmUKICAgICAgICBpZiBzZWxmLnZhbGlkYXRpb25fZmFpbHVyZToKICAgICAgICAgICAgX2RpY3RbJ3ZhbGlkYXRpb25GYWlsdXJlJ10gPSBzZWxmLnZhbGlkYXRpb25fZmFpbHVyZS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnZlcnNpb25Db25maWdPcGVyYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAib3BlcmF0aW9uSWQiOiBvYmouZ2V0KCJvcGVyYXRpb25JZCIpLAogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgInBhcmFtcyI6IENvbnZlcnNpb25PcGVyYXRpb25Db25maWdQYXJhbXMuZnJvbV9kaWN0KG9ialsicGFyYW1zIl0pIGlmIG9iai5nZXQoInBhcmFtcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAidmFsaWRhdGlvbkZhaWx1cmUiOiBDb252ZXJzaW9uVmFsaWRhdGlvbkZhaWx1cmUuZnJvbV9kaWN0KG9ialsidmFsaWRhdGlvbkZhaWx1cmUiXSkgaWYgb2JqLmdldCgidmFsaWRhdGlvbkZhaWx1cmUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/conversion_operation_config_params.py b/fireblocks/models/conversion_operation_config_params.py index 9720d1b8..70337235 100644 --- a/fireblocks/models/conversion_operation_config_params.py +++ b/fireblocks/models/conversion_operation_config_params.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class ConversionOperationConfigParams(BaseModel): - """ - ConversionOperationConfigParams - """ # noqa: E501 - amount: Optional[StrictStr] = None - account_id: Optional[StrictStr] = Field(default=None, alias="accountId") - src_asset_id: Optional[StrictStr] = Field(default=None, alias="srcAssetId") - dest_asset_id: StrictStr = Field(alias="destAssetId") - slippage_basis_points: Optional[Annotated[int, Field(le=10000, strict=True, ge=0)]] = Field(default=None, alias="slippageBasisPoints") - __properties: ClassVar[List[str]] = ["amount", "accountId", "srcAssetId", "destAssetId", "slippageBasisPoints"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConversionOperationConfigParams from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConversionOperationConfigParams from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": obj.get("amount"), - "accountId": obj.get("accountId"), - "srcAssetId": obj.get("srcAssetId"), - "destAssetId": obj.get("destAssetId"), - "slippageBasisPoints": obj.get("slippageBasisPoints") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtcyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDb252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhbW91bnQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBhY2NvdW50X2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYWNjb3VudElkIikKICAgIHNyY19hc3NldF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InNyY0Fzc2V0SWQiKQogICAgZGVzdF9hc3NldF9pZDogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9ImRlc3RBc3NldElkIikKICAgIHNsaXBwYWdlX2Jhc2lzX3BvaW50czogT3B0aW9uYWxbQW5ub3RhdGVkW2ludCwgRmllbGQobGU9MTAwMDAsIHN0cmljdD1UcnVlLCBnZT0wKV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ic2xpcHBhZ2VCYXNpc1BvaW50cyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFtb3VudCIsICJhY2NvdW50SWQiLCAic3JjQXNzZXRJZCIsICJkZXN0QXNzZXRJZCIsICJzbGlwcGFnZUJhc2lzUG9pbnRzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnZlcnNpb25PcGVyYXRpb25Db25maWdQYXJhbXMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYW1vdW50Ijogb2JqLmdldCgiYW1vdW50IiksCiAgICAgICAgICAgICJhY2NvdW50SWQiOiBvYmouZ2V0KCJhY2NvdW50SWQiKSwKICAgICAgICAgICAgInNyY0Fzc2V0SWQiOiBvYmouZ2V0KCJzcmNBc3NldElkIiksCiAgICAgICAgICAgICJkZXN0QXNzZXRJZCI6IG9iai5nZXQoImRlc3RBc3NldElkIiksCiAgICAgICAgICAgICJzbGlwcGFnZUJhc2lzUG9pbnRzIjogb2JqLmdldCgic2xpcHBhZ2VCYXNpc1BvaW50cyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/conversion_operation_execution.py b/fireblocks/models/conversion_operation_execution.py index c92fa0f0..d1b915db 100644 --- a/fireblocks/models/conversion_operation_execution.py +++ b/fireblocks/models/conversion_operation_execution.py @@ -1,108 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.conversion_operation_config_params import ConversionOperationConfigParams -from fireblocks.models.conversion_operation_execution_output import ConversionOperationExecutionOutput -from fireblocks.models.conversion_operation_failure import ConversionOperationFailure -from typing import Optional, Set -from typing_extensions import Self - -class ConversionOperationExecution(BaseModel): - """ - ConversionOperationExecution - """ # noqa: E501 - input: ConversionOperationConfigParams - output: Optional[ConversionOperationExecutionOutput] = None - started_at: Union[StrictFloat, StrictInt] = Field(alias="startedAt") - finished_at: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="finishedAt") - failure: Optional[ConversionOperationFailure] = None - __properties: ClassVar[List[str]] = ["input", "output", "startedAt", "finishedAt", "failure"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConversionOperationExecution from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of input - if self.input: - _dict['input'] = self.input.to_dict() - # override the default output from pydantic by calling `to_dict()` of output - if self.output: - _dict['output'] = self.output.to_dict() - # override the default output from pydantic by calling `to_dict()` of failure - if self.failure: - _dict['failure'] = self.failure.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConversionOperationExecution from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "input": ConversionOperationConfigParams.from_dict(obj["input"]) if obj.get("input") is not None else None, - "output": ConversionOperationExecutionOutput.from_dict(obj["output"]) if obj.get("output") is not None else None, - "startedAt": obj.get("startedAt"), - "finishedAt": obj.get("finishedAt"), - "failure": ConversionOperationFailure.from_dict(obj["failure"]) if obj.get("failure") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwsIFVuaW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fY29uZmlnX3BhcmFtcyBpbXBvcnQgQ29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXQgaW1wb3J0IENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25PdXRwdXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJzaW9uX29wZXJhdGlvbl9mYWlsdXJlIGltcG9ydCBDb252ZXJzaW9uT3BlcmF0aW9uRmFpbHVyZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlucHV0OiBDb252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zCiAgICBvdXRwdXQ6IE9wdGlvbmFsW0NvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25PdXRwdXRdID0gTm9uZQogICAgc3RhcnRlZF9hdDogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChhbGlhcz0ic3RhcnRlZEF0IikKICAgIGZpbmlzaGVkX2F0OiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJmaW5pc2hlZEF0IikKICAgIGZhaWx1cmU6IE9wdGlvbmFsW0NvbnZlcnNpb25PcGVyYXRpb25GYWlsdXJlXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaW5wdXQiLCAib3V0cHV0IiwgInN0YXJ0ZWRBdCIsICJmaW5pc2hlZEF0IiwgImZhaWx1cmUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb24gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBpbnB1dAogICAgICAgIGlmIHNlbGYuaW5wdXQ6CiAgICAgICAgICAgIF9kaWN0WydpbnB1dCddID0gc2VsZi5pbnB1dC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2Ygb3V0cHV0CiAgICAgICAgaWYgc2VsZi5vdXRwdXQ6CiAgICAgICAgICAgIF9kaWN0WydvdXRwdXQnXSA9IHNlbGYub3V0cHV0LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBmYWlsdXJlCiAgICAgICAgaWYgc2VsZi5mYWlsdXJlOgogICAgICAgICAgICBfZGljdFsnZmFpbHVyZSddID0gc2VsZi5mYWlsdXJlLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpbnB1dCI6IENvbnZlcnNpb25PcGVyYXRpb25Db25maWdQYXJhbXMuZnJvbV9kaWN0KG9ialsiaW5wdXQiXSkgaWYgb2JqLmdldCgiaW5wdXQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJvdXRwdXQiOiBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0LmZyb21fZGljdChvYmpbIm91dHB1dCJdKSBpZiBvYmouZ2V0KCJvdXRwdXQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJzdGFydGVkQXQiOiBvYmouZ2V0KCJzdGFydGVkQXQiKSwKICAgICAgICAgICAgImZpbmlzaGVkQXQiOiBvYmouZ2V0KCJmaW5pc2hlZEF0IiksCiAgICAgICAgICAgICJmYWlsdXJlIjogQ29udmVyc2lvbk9wZXJhdGlvbkZhaWx1cmUuZnJvbV9kaWN0KG9ialsiZmFpbHVyZSJdKSBpZiBvYmouZ2V0KCJmYWlsdXJlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/conversion_operation_execution_output.py b/fireblocks/models/conversion_operation_execution_output.py index 0784c9e5..86d5f861 100644 --- a/fireblocks/models/conversion_operation_execution_output.py +++ b/fireblocks/models/conversion_operation_execution_output.py @@ -1,99 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.asset_amount import AssetAmount -from typing import Optional, Set -from typing_extensions import Self - -class ConversionOperationExecutionOutput(BaseModel): - """ - ConversionOperationExecutionOutput - """ # noqa: E501 - amount: AssetAmount - fee: AssetAmount - conversion_rate: StrictStr = Field(alias="conversionRate") - __properties: ClassVar[List[str]] = ["amount", "fee", "conversionRate"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConversionOperationExecutionOutput from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - # override the default output from pydantic by calling `to_dict()` of fee - if self.fee: - _dict['fee'] = self.fee.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConversionOperationExecutionOutput from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": AssetAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "fee": AssetAmount.from_dict(obj["fee"]) if obj.get("fee") is not None else None, - "conversionRate": obj.get("conversionRate") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfYW1vdW50IGltcG9ydCBBc3NldEFtb3VudApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25PdXRwdXQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFtb3VudDogQXNzZXRBbW91bnQKICAgIGZlZTogQXNzZXRBbW91bnQKICAgIGNvbnZlcnNpb25fcmF0ZTogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9ImNvbnZlcnNpb25SYXRlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYW1vdW50IiwgImZlZSIsICJjb252ZXJzaW9uUmF0ZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFtb3VudAogICAgICAgIGlmIHNlbGYuYW1vdW50OgogICAgICAgICAgICBfZGljdFsnYW1vdW50J10gPSBzZWxmLmFtb3VudC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZmVlCiAgICAgICAgaWYgc2VsZi5mZWU6CiAgICAgICAgICAgIF9kaWN0WydmZWUnXSA9IHNlbGYuZmVlLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhbW91bnQiOiBBc3NldEFtb3VudC5mcm9tX2RpY3Qob2JqWyJhbW91bnQiXSkgaWYgb2JqLmdldCgiYW1vdW50IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZmVlIjogQXNzZXRBbW91bnQuZnJvbV9kaWN0KG9ialsiZmVlIl0pIGlmIG9iai5nZXQoImZlZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImNvbnZlcnNpb25SYXRlIjogb2JqLmdldCgiY29udmVyc2lvblJhdGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/conversion_operation_execution_params.py b/fireblocks/models/conversion_operation_execution_params.py index ed192620..f2e46b9c 100644 --- a/fireblocks/models/conversion_operation_execution_params.py +++ b/fireblocks/models/conversion_operation_execution_params.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.conversion_operation_execution_params_execution_params import ConversionOperationExecutionParamsExecutionParams -from typing import Optional, Set -from typing_extensions import Self - -class ConversionOperationExecutionParams(BaseModel): - """ - ConversionOperationExecutionParams - """ # noqa: E501 - config_operation_id: StrictStr = Field(alias="configOperationId") - execution_params: Optional[ConversionOperationExecutionParamsExecutionParams] = Field(default=None, alias="executionParams") - __properties: ClassVar[List[str]] = ["configOperationId", "executionParams"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConversionOperationExecutionParams from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of execution_params - if self.execution_params: - _dict['executionParams'] = self.execution_params.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConversionOperationExecutionParams from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "configOperationId": obj.get("configOperationId"), - "executionParams": ConversionOperationExecutionParamsExecutionParams.from_dict(obj["executionParams"]) if obj.get("executionParams") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXNfZXhlY3V0aW9uX3BhcmFtcyBpbXBvcnQgQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtcwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGNvbmZpZ19vcGVyYXRpb25faWQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJjb25maWdPcGVyYXRpb25JZCIpCiAgICBleGVjdXRpb25fcGFyYW1zOiBPcHRpb25hbFtDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImV4ZWN1dGlvblBhcmFtcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImNvbmZpZ09wZXJhdGlvbklkIiwgImV4ZWN1dGlvblBhcmFtcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGV4ZWN1dGlvbl9wYXJhbXMKICAgICAgICBpZiBzZWxmLmV4ZWN1dGlvbl9wYXJhbXM6CiAgICAgICAgICAgIF9kaWN0WydleGVjdXRpb25QYXJhbXMnXSA9IHNlbGYuZXhlY3V0aW9uX3BhcmFtcy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiY29uZmlnT3BlcmF0aW9uSWQiOiBvYmouZ2V0KCJjb25maWdPcGVyYXRpb25JZCIpLAogICAgICAgICAgICAiZXhlY3V0aW9uUGFyYW1zIjogQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtcy5mcm9tX2RpY3Qob2JqWyJleGVjdXRpb25QYXJhbXMiXSkgaWYgb2JqLmdldCgiZXhlY3V0aW9uUGFyYW1zIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/conversion_operation_execution_params_execution_params.py b/fireblocks/models/conversion_operation_execution_params_execution_params.py index 6d3b3ce2..4a727993 100644 --- a/fireblocks/models/conversion_operation_execution_params_execution_params.py +++ b/fireblocks/models/conversion_operation_execution_params_execution_params.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class ConversionOperationExecutionParamsExecutionParams(BaseModel): - """ - ConversionOperationExecutionParamsExecutionParams - """ # noqa: E501 - amount: Optional[StrictStr] = None - account_id: Optional[StrictStr] = Field(default=None, alias="accountId") - src_asset_id: Optional[StrictStr] = Field(default=None, alias="srcAssetId") - dest_asset_id: Optional[StrictStr] = Field(default=None, alias="destAssetId") - slippage_basis_points: Optional[Annotated[int, Field(le=10000, strict=True, ge=0)]] = Field(default=None, alias="slippageBasisPoints") - __properties: ClassVar[List[str]] = ["amount", "accountId", "srcAssetId", "destAssetId", "slippageBasisPoints"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConversionOperationExecutionParamsExecutionParams from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConversionOperationExecutionParamsExecutionParams from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": obj.get("amount"), - "accountId": obj.get("accountId"), - "srcAssetId": obj.get("srcAssetId"), - "destAssetId": obj.get("destAssetId"), - "slippageBasisPoints": obj.get("slippageBasisPoints") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtcyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhbW91bnQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBhY2NvdW50X2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYWNjb3VudElkIikKICAgIHNyY19hc3NldF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InNyY0Fzc2V0SWQiKQogICAgZGVzdF9hc3NldF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImRlc3RBc3NldElkIikKICAgIHNsaXBwYWdlX2Jhc2lzX3BvaW50czogT3B0aW9uYWxbQW5ub3RhdGVkW2ludCwgRmllbGQobGU9MTAwMDAsIHN0cmljdD1UcnVlLCBnZT0wKV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ic2xpcHBhZ2VCYXNpc1BvaW50cyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFtb3VudCIsICJhY2NvdW50SWQiLCAic3JjQXNzZXRJZCIsICJkZXN0QXNzZXRJZCIsICJzbGlwcGFnZUJhc2lzUG9pbnRzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYW1vdW50Ijogb2JqLmdldCgiYW1vdW50IiksCiAgICAgICAgICAgICJhY2NvdW50SWQiOiBvYmouZ2V0KCJhY2NvdW50SWQiKSwKICAgICAgICAgICAgInNyY0Fzc2V0SWQiOiBvYmouZ2V0KCJzcmNBc3NldElkIiksCiAgICAgICAgICAgICJkZXN0QXNzZXRJZCI6IG9iai5nZXQoImRlc3RBc3NldElkIiksCiAgICAgICAgICAgICJzbGlwcGFnZUJhc2lzUG9pbnRzIjogb2JqLmdldCgic2xpcHBhZ2VCYXNpc1BvaW50cyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/conversion_operation_failure.py b/fireblocks/models/conversion_operation_failure.py index 0794e02e..6234eeb2 100644 --- a/fireblocks/models/conversion_operation_failure.py +++ b/fireblocks/models/conversion_operation_failure.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class ConversionOperationFailure(BaseModel): - """ - ConversionOperationFailure - """ # noqa: E501 - reason: StrictStr - data: Optional[Dict[str, Any]] = None - __properties: ClassVar[List[str]] = ["reason", "data"] - - @field_validator('reason') - def reason_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['INVALID_AMOUNT', 'SLIPPAGE_EXCEEDED', 'AMOUNT_TOO_SMALL', 'INSUFFICIENT_FUNDS']): - raise ValueError("must be one of enum values ('INVALID_AMOUNT', 'SLIPPAGE_EXCEEDED', 'AMOUNT_TOO_SMALL', 'INSUFFICIENT_FUNDS')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConversionOperationFailure from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConversionOperationFailure from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "reason": obj.get("reason"), - "data": obj.get("data") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ29udmVyc2lvbk9wZXJhdGlvbkZhaWx1cmUoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29udmVyc2lvbk9wZXJhdGlvbkZhaWx1cmUKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHJlYXNvbjogU3RyaWN0U3RyCiAgICBkYXRhOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInJlYXNvbiIsICJkYXRhIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdyZWFzb24nKQogICAgZGVmIHJlYXNvbl92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydJTlZBTElEX0FNT1VOVCcsICdTTElQUEFHRV9FWENFRURFRCcsICdBTU9VTlRfVE9PX1NNQUxMJywgJ0lOU1VGRklDSUVOVF9GVU5EUyddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdJTlZBTElEX0FNT1VOVCcsICdTTElQUEFHRV9FWENFRURFRCcsICdBTU9VTlRfVE9PX1NNQUxMJywgJ0lOU1VGRklDSUVOVF9GVU5EUycpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb252ZXJzaW9uT3BlcmF0aW9uRmFpbHVyZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb252ZXJzaW9uT3BlcmF0aW9uRmFpbHVyZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJyZWFzb24iOiBvYmouZ2V0KCJyZWFzb24iKSwKICAgICAgICAgICAgImRhdGEiOiBvYmouZ2V0KCJkYXRhIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/conversion_operation_preview.py b/fireblocks/models/conversion_operation_preview.py index 06f2c22a..8670e917 100644 --- a/fireblocks/models/conversion_operation_preview.py +++ b/fireblocks/models/conversion_operation_preview.py @@ -1,104 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.conversion_operation_config_params import ConversionOperationConfigParams -from fireblocks.models.conversion_operation_failure import ConversionOperationFailure -from fireblocks.models.conversion_operation_preview_output import ConversionOperationPreviewOutput -from typing import Optional, Set -from typing_extensions import Self - -class ConversionOperationPreview(BaseModel): - """ - ConversionOperationPreview - """ # noqa: E501 - input: ConversionOperationConfigParams - output: Optional[ConversionOperationPreviewOutput] = None - failure: Optional[ConversionOperationFailure] = None - __properties: ClassVar[List[str]] = ["input", "output", "failure"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConversionOperationPreview from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of input - if self.input: - _dict['input'] = self.input.to_dict() - # override the default output from pydantic by calling `to_dict()` of output - if self.output: - _dict['output'] = self.output.to_dict() - # override the default output from pydantic by calling `to_dict()` of failure - if self.failure: - _dict['failure'] = self.failure.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConversionOperationPreview from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "input": ConversionOperationConfigParams.from_dict(obj["input"]) if obj.get("input") is not None else None, - "output": ConversionOperationPreviewOutput.from_dict(obj["output"]) if obj.get("output") is not None else None, - "failure": ConversionOperationFailure.from_dict(obj["failure"]) if obj.get("failure") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMgaW1wb3J0IENvbnZlcnNpb25PcGVyYXRpb25Db25maWdQYXJhbXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJzaW9uX29wZXJhdGlvbl9mYWlsdXJlIGltcG9ydCBDb252ZXJzaW9uT3BlcmF0aW9uRmFpbHVyZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX3ByZXZpZXdfb3V0cHV0IGltcG9ydCBDb252ZXJzaW9uT3BlcmF0aW9uUHJldmlld091dHB1dApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb252ZXJzaW9uT3BlcmF0aW9uUHJldmlldyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDb252ZXJzaW9uT3BlcmF0aW9uUHJldmlldwogICAgIiIiICMgbm9xYTogRTUwMQogICAgaW5wdXQ6IENvbnZlcnNpb25PcGVyYXRpb25Db25maWdQYXJhbXMKICAgIG91dHB1dDogT3B0aW9uYWxbQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXdPdXRwdXRdID0gTm9uZQogICAgZmFpbHVyZTogT3B0aW9uYWxbQ29udmVyc2lvbk9wZXJhdGlvbkZhaWx1cmVdID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpbnB1dCIsICJvdXRwdXQiLCAiZmFpbHVyZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXcgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBpbnB1dAogICAgICAgIGlmIHNlbGYuaW5wdXQ6CiAgICAgICAgICAgIF9kaWN0WydpbnB1dCddID0gc2VsZi5pbnB1dC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2Ygb3V0cHV0CiAgICAgICAgaWYgc2VsZi5vdXRwdXQ6CiAgICAgICAgICAgIF9kaWN0WydvdXRwdXQnXSA9IHNlbGYub3V0cHV0LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBmYWlsdXJlCiAgICAgICAgaWYgc2VsZi5mYWlsdXJlOgogICAgICAgICAgICBfZGljdFsnZmFpbHVyZSddID0gc2VsZi5mYWlsdXJlLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXcgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaW5wdXQiOiBDb252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zLmZyb21fZGljdChvYmpbImlucHV0Il0pIGlmIG9iai5nZXQoImlucHV0IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAib3V0cHV0IjogQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXdPdXRwdXQuZnJvbV9kaWN0KG9ialsib3V0cHV0Il0pIGlmIG9iai5nZXQoIm91dHB1dCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImZhaWx1cmUiOiBDb252ZXJzaW9uT3BlcmF0aW9uRmFpbHVyZS5mcm9tX2RpY3Qob2JqWyJmYWlsdXJlIl0pIGlmIG9iai5nZXQoImZhaWx1cmUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/conversion_operation_preview_output.py b/fireblocks/models/conversion_operation_preview_output.py index 29413396..1b58816b 100644 --- a/fireblocks/models/conversion_operation_preview_output.py +++ b/fireblocks/models/conversion_operation_preview_output.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from fireblocks.models.asset_amount import AssetAmount -from typing import Optional, Set -from typing_extensions import Self - -class ConversionOperationPreviewOutput(BaseModel): - """ - ConversionOperationPreviewOutput - """ # noqa: E501 - amount: AssetAmount - fee: AssetAmount - conversion_rate: StrictStr = Field(alias="conversionRate") - time_seconds: Union[StrictFloat, StrictInt] = Field(alias="timeSeconds") - __properties: ClassVar[List[str]] = ["amount", "fee", "conversionRate", "timeSeconds"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConversionOperationPreviewOutput from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - # override the default output from pydantic by calling `to_dict()` of fee - if self.fee: - _dict['fee'] = self.fee.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConversionOperationPreviewOutput from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": AssetAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "fee": AssetAmount.from_dict(obj["fee"]) if obj.get("fee") is not None else None, - "conversionRate": obj.get("conversionRate"), - "timeSeconds": obj.get("timeSeconds") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2Ftb3VudCBpbXBvcnQgQXNzZXRBbW91bnQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXdPdXRwdXQoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXdPdXRwdXQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFtb3VudDogQXNzZXRBbW91bnQKICAgIGZlZTogQXNzZXRBbW91bnQKICAgIGNvbnZlcnNpb25fcmF0ZTogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9ImNvbnZlcnNpb25SYXRlIikKICAgIHRpbWVfc2Vjb25kczogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChhbGlhcz0idGltZVNlY29uZHMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhbW91bnQiLCAiZmVlIiwgImNvbnZlcnNpb25SYXRlIiwgInRpbWVTZWNvbmRzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb252ZXJzaW9uT3BlcmF0aW9uUHJldmlld091dHB1dCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFtb3VudAogICAgICAgIGlmIHNlbGYuYW1vdW50OgogICAgICAgICAgICBfZGljdFsnYW1vdW50J10gPSBzZWxmLmFtb3VudC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZmVlCiAgICAgICAgaWYgc2VsZi5mZWU6CiAgICAgICAgICAgIF9kaWN0WydmZWUnXSA9IHNlbGYuZmVlLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXdPdXRwdXQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYW1vdW50IjogQXNzZXRBbW91bnQuZnJvbV9kaWN0KG9ialsiYW1vdW50Il0pIGlmIG9iai5nZXQoImFtb3VudCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImZlZSI6IEFzc2V0QW1vdW50LmZyb21fZGljdChvYmpbImZlZSJdKSBpZiBvYmouZ2V0KCJmZWUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJjb252ZXJzaW9uUmF0ZSI6IG9iai5nZXQoImNvbnZlcnNpb25SYXRlIiksCiAgICAgICAgICAgICJ0aW1lU2Vjb25kcyI6IG9iai5nZXQoInRpbWVTZWNvbmRzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/conversion_operation_type.py b/fireblocks/models/conversion_operation_type.py index 64c72c87..ff28e3b5 100644 --- a/fireblocks/models/conversion_operation_type.py +++ b/fireblocks/models/conversion_operation_type.py @@ -1,37 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ConversionOperationType(str, Enum): - """ - ConversionOperationType - """ - - """ - allowed enum values - """ - CONVERSION = 'CONVERSION' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ConversionOperationType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBDb252ZXJzaW9uT3BlcmF0aW9uVHlwZShzdHIsIEVudW0pOgogICAgIiIiCiAgICBDb252ZXJzaW9uT3BlcmF0aW9uVHlwZQogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIENPTlZFUlNJT04gPSAnQ09OVkVSU0lPTicKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb252ZXJzaW9uT3BlcmF0aW9uVHlwZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/conversion_validation_failure.py b/fireblocks/models/conversion_validation_failure.py index bcf094ee..e845553b 100644 --- a/fireblocks/models/conversion_validation_failure.py +++ b/fireblocks/models/conversion_validation_failure.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class ConversionValidationFailure(BaseModel): - """ - ConversionValidationFailure - """ # noqa: E501 - reason: StrictStr - data: Optional[Dict[str, Any]] = None - __properties: ClassVar[List[str]] = ["reason", "data"] - - @field_validator('reason') - def reason_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['ACCOUNT_NOT_FOUND', 'ACCOUNT_TYPE_NOT_SUPPORTED', 'INSUFFICIENT_BALANCE', 'ASSET_NOT_FOUND', 'ASSETS_CONTINUITY_MISMATCH', 'EXCHANGE_BASKETS_MISMATCH', 'ACCOUNTS_CONTINUITY_MISMATCH', 'ONE_TIME_ADDRESS_CONTINUITY_NOT_ALLOWED', 'EQUAL_ACCOUNTS_NOT_ALLOWED', 'EQUAL_ASSETS_NOT_ALLOWED', 'INVALID_AMOUNT', 'UNMANAGED_WALLET_AS_SOURCE_NOT_ALLOWED', 'MANAGED_OPERATION_PARAMS_INVALID_SCHEMA', 'ACCOUNT_IS_NOT_EXCHANGE', 'UNSUPPORTED_TRADING_METHOD', 'ASSETS_CAN_NOT_CONVERTED']): - raise ValueError("must be one of enum values ('ACCOUNT_NOT_FOUND', 'ACCOUNT_TYPE_NOT_SUPPORTED', 'INSUFFICIENT_BALANCE', 'ASSET_NOT_FOUND', 'ASSETS_CONTINUITY_MISMATCH', 'EXCHANGE_BASKETS_MISMATCH', 'ACCOUNTS_CONTINUITY_MISMATCH', 'ONE_TIME_ADDRESS_CONTINUITY_NOT_ALLOWED', 'EQUAL_ACCOUNTS_NOT_ALLOWED', 'EQUAL_ASSETS_NOT_ALLOWED', 'INVALID_AMOUNT', 'UNMANAGED_WALLET_AS_SOURCE_NOT_ALLOWED', 'MANAGED_OPERATION_PARAMS_INVALID_SCHEMA', 'ACCOUNT_IS_NOT_EXCHANGE', 'UNSUPPORTED_TRADING_METHOD', 'ASSETS_CAN_NOT_CONVERTED')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConversionValidationFailure from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConversionValidationFailure from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "reason": obj.get("reason"), - "data": obj.get("data") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ29udmVyc2lvblZhbGlkYXRpb25GYWlsdXJlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENvbnZlcnNpb25WYWxpZGF0aW9uRmFpbHVyZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgcmVhc29uOiBTdHJpY3RTdHIKICAgIGRhdGE6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicmVhc29uIiwgImRhdGEiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3JlYXNvbicpCiAgICBkZWYgcmVhc29uX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0FDQ09VTlRfTk9UX0ZPVU5EJywgJ0FDQ09VTlRfVFlQRV9OT1RfU1VQUE9SVEVEJywgJ0lOU1VGRklDSUVOVF9CQUxBTkNFJywgJ0FTU0VUX05PVF9GT1VORCcsICdBU1NFVFNfQ09OVElOVUlUWV9NSVNNQVRDSCcsICdFWENIQU5HRV9CQVNLRVRTX01JU01BVENIJywgJ0FDQ09VTlRTX0NPTlRJTlVJVFlfTUlTTUFUQ0gnLCAnT05FX1RJTUVfQUREUkVTU19DT05USU5VSVRZX05PVF9BTExPV0VEJywgJ0VRVUFMX0FDQ09VTlRTX05PVF9BTExPV0VEJywgJ0VRVUFMX0FTU0VUU19OT1RfQUxMT1dFRCcsICdJTlZBTElEX0FNT1VOVCcsICdVTk1BTkFHRURfV0FMTEVUX0FTX1NPVVJDRV9OT1RfQUxMT1dFRCcsICdNQU5BR0VEX09QRVJBVElPTl9QQVJBTVNfSU5WQUxJRF9TQ0hFTUEnLCAnQUNDT1VOVF9JU19OT1RfRVhDSEFOR0UnLCAnVU5TVVBQT1JURURfVFJBRElOR19NRVRIT0QnLCAnQVNTRVRTX0NBTl9OT1RfQ09OVkVSVEVEJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0FDQ09VTlRfTk9UX0ZPVU5EJywgJ0FDQ09VTlRfVFlQRV9OT1RfU1VQUE9SVEVEJywgJ0lOU1VGRklDSUVOVF9CQUxBTkNFJywgJ0FTU0VUX05PVF9GT1VORCcsICdBU1NFVFNfQ09OVElOVUlUWV9NSVNNQVRDSCcsICdFWENIQU5HRV9CQVNLRVRTX01JU01BVENIJywgJ0FDQ09VTlRTX0NPTlRJTlVJVFlfTUlTTUFUQ0gnLCAnT05FX1RJTUVfQUREUkVTU19DT05USU5VSVRZX05PVF9BTExPV0VEJywgJ0VRVUFMX0FDQ09VTlRTX05PVF9BTExPV0VEJywgJ0VRVUFMX0FTU0VUU19OT1RfQUxMT1dFRCcsICdJTlZBTElEX0FNT1VOVCcsICdVTk1BTkFHRURfV0FMTEVUX0FTX1NPVVJDRV9OT1RfQUxMT1dFRCcsICdNQU5BR0VEX09QRVJBVElPTl9QQVJBTVNfSU5WQUxJRF9TQ0hFTUEnLCAnQUNDT1VOVF9JU19OT1RfRVhDSEFOR0UnLCAnVU5TVVBQT1JURURfVFJBRElOR19NRVRIT0QnLCAnQVNTRVRTX0NBTl9OT1RfQ09OVkVSVEVEJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnZlcnNpb25WYWxpZGF0aW9uRmFpbHVyZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb252ZXJzaW9uVmFsaWRhdGlvbkZhaWx1cmUgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicmVhc29uIjogb2JqLmdldCgicmVhc29uIiksCiAgICAgICAgICAgICJkYXRhIjogb2JqLmdldCgiZGF0YSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/convert_assets_request.py b/fireblocks/models/convert_assets_request.py index 8988cd26..e58f3955 100644 --- a/fireblocks/models/convert_assets_request.py +++ b/fireblocks/models/convert_assets_request.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class ConvertAssetsRequest(BaseModel): - """ - ConvertAssetsRequest - """ # noqa: E501 - src_asset: StrictStr = Field(description="Name of the source asset (must be in a currency that is supported for conversions in the selected exchange type that corresponds to your exchange ID)", alias="srcAsset") - dest_asset: StrictStr = Field(description="Name of the destination asset (must be in a currency that is supported for conversions in the selected exchange type that corresponds to your exchange ID)", alias="destAsset") - amount: Union[StrictFloat, StrictInt] = Field(description="The amount to transfer (in the currency of the source asset)") - __properties: ClassVar[List[str]] = ["srcAsset", "destAsset", "amount"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConvertAssetsRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConvertAssetsRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "srcAsset": obj.get("srcAsset"), - "destAsset": obj.get("destAsset"), - "amount": obj.get("amount") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb252ZXJ0QXNzZXRzUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDb252ZXJ0QXNzZXRzUmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgc3JjX2Fzc2V0OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iTmFtZSBvZiB0aGUgc291cmNlIGFzc2V0IChtdXN0IGJlIGluIGEgY3VycmVuY3kgdGhhdCBpcyBzdXBwb3J0ZWQgZm9yIGNvbnZlcnNpb25zIGluIHRoZSBzZWxlY3RlZCBleGNoYW5nZSB0eXBlIHRoYXQgY29ycmVzcG9uZHMgdG8geW91ciBleGNoYW5nZSBJRCkiLCBhbGlhcz0ic3JjQXNzZXQiKQogICAgZGVzdF9hc3NldDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249Ik5hbWUgb2YgdGhlIGRlc3RpbmF0aW9uIGFzc2V0IChtdXN0IGJlIGluIGEgY3VycmVuY3kgdGhhdCBpcyBzdXBwb3J0ZWQgZm9yIGNvbnZlcnNpb25zIGluIHRoZSBzZWxlY3RlZCBleGNoYW5nZSB0eXBlIHRoYXQgY29ycmVzcG9uZHMgdG8geW91ciBleGNoYW5nZSBJRCkiLCBhbGlhcz0iZGVzdEFzc2V0IikKICAgIGFtb3VudDogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGFtb3VudCB0byB0cmFuc2ZlciAoaW4gdGhlIGN1cnJlbmN5IG9mIHRoZSBzb3VyY2UgYXNzZXQpIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3JjQXNzZXQiLCAiZGVzdEFzc2V0IiwgImFtb3VudCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udmVydEFzc2V0c1JlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udmVydEFzc2V0c1JlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3JjQXNzZXQiOiBvYmouZ2V0KCJzcmNBc3NldCIpLAogICAgICAgICAgICAiZGVzdEFzc2V0Ijogb2JqLmdldCgiZGVzdEFzc2V0IiksCiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/convert_assets_response.py b/fireblocks/models/convert_assets_response.py index f4e16e0a..7c97e0d1 100644 --- a/fireblocks/models/convert_assets_response.py +++ b/fireblocks/models/convert_assets_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class ConvertAssetsResponse(BaseModel): - """ - ConvertAssetsResponse - """ # noqa: E501 - success: StrictBool = Field(description="Indicates whether the conversion was successful") - __properties: ClassVar[List[str]] = ["success"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ConvertAssetsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ConvertAssetsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "success": obj.get("success") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb252ZXJ0QXNzZXRzUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ29udmVydEFzc2V0c1Jlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzdWNjZXNzOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IkluZGljYXRlcyB3aGV0aGVyIHRoZSBjb252ZXJzaW9uIHdhcyBzdWNjZXNzZnVsIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3VjY2VzcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ29udmVydEFzc2V0c1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvbnZlcnRBc3NldHNSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzdWNjZXNzIjogb2JqLmdldCgic3VjY2VzcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/cosigner.py b/fireblocks/models/cosigner.py index 132398ac..5cdc0c0b 100644 --- a/fireblocks/models/cosigner.py +++ b/fireblocks/models/cosigner.py @@ -1,110 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.version_summary import VersionSummary -from typing import Optional, Set -from typing_extensions import Self - -class Cosigner(BaseModel): - """ - Cosigner - """ # noqa: E501 - archived: StrictBool = Field(description="Whether the cosigner is archived") - id: StrictStr = Field(description="The unique identifier of the cosigner") - name: Optional[StrictStr] = Field(default=None, description="The name of the cosigner") - type: Optional[StrictStr] = Field(default=None, description="The type of the cosigner") - version: Optional[VersionSummary] = None - __properties: ClassVar[List[str]] = ["archived", "id", "name", "type", "version"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['SANDBOX', 'SGX', 'GCP-CONFSPACE', 'AWS-NITRO', 'PLAIN']): - raise ValueError("must be one of enum values ('SANDBOX', 'SGX', 'GCP-CONFSPACE', 'AWS-NITRO', 'PLAIN')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of Cosigner from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of version - if self.version: - _dict['version'] = self.version.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of Cosigner from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "archived": obj.get("archived"), - "id": obj.get("id"), - "name": obj.get("name"), - "type": obj.get("type"), - "version": VersionSummary.from_dict(obj["version"]) if obj.get("version") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmVyc2lvbl9zdW1tYXJ5IGltcG9ydCBWZXJzaW9uU3VtbWFyeQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb3NpZ25lcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDb3NpZ25lcgogICAgIiIiICMgbm9xYTogRTUwMQogICAgYXJjaGl2ZWQ6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iV2hldGhlciB0aGUgY29zaWduZXIgaXMgYXJjaGl2ZWQiKQogICAgaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvc2lnbmVyIikKICAgIG5hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgbmFtZSBvZiB0aGUgY29zaWduZXIiKQogICAgdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSB0eXBlIG9mIHRoZSBjb3NpZ25lciIpCiAgICB2ZXJzaW9uOiBPcHRpb25hbFtWZXJzaW9uU3VtbWFyeV0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFyY2hpdmVkIiwgImlkIiwgIm5hbWUiLCAidHlwZSIsICJ2ZXJzaW9uIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCd0eXBlJykKICAgIGRlZiB0eXBlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydTQU5EQk9YJywgJ1NHWCcsICdHQ1AtQ09ORlNQQUNFJywgJ0FXUy1OSVRSTycsICdQTEFJTiddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdTQU5EQk9YJywgJ1NHWCcsICdHQ1AtQ09ORlNQQUNFJywgJ0FXUy1OSVRSTycsICdQTEFJTicpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb3NpZ25lciBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHZlcnNpb24KICAgICAgICBpZiBzZWxmLnZlcnNpb246CiAgICAgICAgICAgIF9kaWN0Wyd2ZXJzaW9uJ10gPSBzZWxmLnZlcnNpb24udG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDb3NpZ25lciBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhcmNoaXZlZCI6IG9iai5nZXQoImFyY2hpdmVkIiksCiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgInZlcnNpb24iOiBWZXJzaW9uU3VtbWFyeS5mcm9tX2RpY3Qob2JqWyJ2ZXJzaW9uIl0pIGlmIG9iai5nZXQoInZlcnNpb24iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/cosigners_paginated_response.py b/fireblocks/models/cosigners_paginated_response.py index 854623a0..6d002f5d 100644 --- a/fireblocks/models/cosigners_paginated_response.py +++ b/fireblocks/models/cosigners_paginated_response.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.cosigner import Cosigner -from typing import Optional, Set -from typing_extensions import Self - -class CosignersPaginatedResponse(BaseModel): - """ - CosignersPaginatedResponse - """ # noqa: E501 - data: List[Cosigner] = Field(description="The data of the current page") - next: Optional[StrictStr] = Field(default=None, description="The ID of the next page") - __properties: ClassVar[List[str]] = ["data", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CosignersPaginatedResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # set to None if next (nullable) is None - # and model_fields_set contains the field - if self.next is None and "next" in self.model_fields_set: - _dict['next'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CosignersPaginatedResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [Cosigner.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvc2lnbmVyIGltcG9ydCBDb3NpZ25lcgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDb3NpZ25lcnNQYWdpbmF0ZWRSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDb3NpZ25lcnNQYWdpbmF0ZWRSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGF0YTogTGlzdFtDb3NpZ25lcl0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGRhdGEgb2YgdGhlIGN1cnJlbnQgcGFnZSIpCiAgICBuZXh0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBuZXh0IHBhZ2UiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJkYXRhIiwgIm5leHQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvc2lnbmVyc1BhZ2luYXRlZFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGRhdGEgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmRhdGE6CiAgICAgICAgICAgIGZvciBfaXRlbV9kYXRhIGluIHNlbGYuZGF0YToKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2RhdGE6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9kYXRhLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2RhdGEnXSA9IF9pdGVtcwogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgbmV4dCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYubmV4dCBpcyBOb25lIGFuZCAibmV4dCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnbmV4dCddID0gTm9uZQoKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENvc2lnbmVyc1BhZ2luYXRlZFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRhdGEiOiBbQ29zaWduZXIuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJkYXRhIl1dIGlmIG9iai5nZXQoImRhdGEiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJuZXh0Ijogb2JqLmdldCgibmV4dCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/create_address_request.py b/fireblocks/models/create_address_request.py index 223da891..40381698 100644 --- a/fireblocks/models/create_address_request.py +++ b/fireblocks/models/create_address_request.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class CreateAddressRequest(BaseModel): - """ - CreateAddressRequest - """ # noqa: E501 - description: Optional[StrictStr] = Field(default=None, description="(Optional) Attach a description to the new address") - customer_ref_id: Optional[StrictStr] = Field(default=None, description="Optional - Sets a customer reference ID", alias="customerRefId") - __properties: ClassVar[List[str]] = ["description", "customerRefId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateAddressRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateAddressRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "description": obj.get("description"), - "customerRefId": obj.get("customerRefId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDcmVhdGVBZGRyZXNzUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDcmVhdGVBZGRyZXNzUmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGVzY3JpcHRpb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSIoT3B0aW9uYWwpIEF0dGFjaCBhIGRlc2NyaXB0aW9uIHRvIHRoZSBuZXcgYWRkcmVzcyIpCiAgICBjdXN0b21lcl9yZWZfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJPcHRpb25hbCAtIFNldHMgYSBjdXN0b21lciByZWZlcmVuY2UgSUQiLCBhbGlhcz0iY3VzdG9tZXJSZWZJZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRlc2NyaXB0aW9uIiwgImN1c3RvbWVyUmVmSWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZUFkZHJlc3NSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZUFkZHJlc3NSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogb2JqLmdldCgiZGVzY3JpcHRpb24iKSwKICAgICAgICAgICAgImN1c3RvbWVyUmVmSWQiOiBvYmouZ2V0KCJjdXN0b21lclJlZklkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/create_address_response.py b/fireblocks/models/create_address_response.py index c2cf3d4d..3bbd4e92 100644 --- a/fireblocks/models/create_address_response.py +++ b/fireblocks/models/create_address_response.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class CreateAddressResponse(BaseModel): - """ - CreateAddressResponse - """ # noqa: E501 - address: Optional[StrictStr] = None - legacy_address: Optional[StrictStr] = Field(default=None, alias="legacyAddress") - enterprise_address: Optional[StrictStr] = Field(default=None, alias="enterpriseAddress") - tag: Optional[StrictStr] = None - bip44_address_index: Optional[StrictInt] = Field(default=None, alias="bip44AddressIndex") - __properties: ClassVar[List[str]] = ["address", "legacyAddress", "enterpriseAddress", "tag", "bip44AddressIndex"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateAddressResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateAddressResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "address": obj.get("address"), - "legacyAddress": obj.get("legacyAddress"), - "enterpriseAddress": obj.get("enterpriseAddress"), - "tag": obj.get("tag"), - "bip44AddressIndex": obj.get("bip44AddressIndex") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENyZWF0ZUFkZHJlc3NSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDcmVhdGVBZGRyZXNzUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBsZWdhY3lfYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImxlZ2FjeUFkZHJlc3MiKQogICAgZW50ZXJwcmlzZV9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZW50ZXJwcmlzZUFkZHJlc3MiKQogICAgdGFnOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgYmlwNDRfYWRkcmVzc19pbmRleDogT3B0aW9uYWxbU3RyaWN0SW50XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImJpcDQ0QWRkcmVzc0luZGV4IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYWRkcmVzcyIsICJsZWdhY3lBZGRyZXNzIiwgImVudGVycHJpc2VBZGRyZXNzIiwgInRhZyIsICJiaXA0NEFkZHJlc3NJbmRleCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlQWRkcmVzc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZUFkZHJlc3NSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhZGRyZXNzIjogb2JqLmdldCgiYWRkcmVzcyIpLAogICAgICAgICAgICAibGVnYWN5QWRkcmVzcyI6IG9iai5nZXQoImxlZ2FjeUFkZHJlc3MiKSwKICAgICAgICAgICAgImVudGVycHJpc2VBZGRyZXNzIjogb2JqLmdldCgiZW50ZXJwcmlzZUFkZHJlc3MiKSwKICAgICAgICAgICAgInRhZyI6IG9iai5nZXQoInRhZyIpLAogICAgICAgICAgICAiYmlwNDRBZGRyZXNzSW5kZXgiOiBvYmouZ2V0KCJiaXA0NEFkZHJlc3NJbmRleCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/create_api_user.py b/fireblocks/models/create_api_user.py index 429afc95..5222ff89 100644 --- a/fireblocks/models/create_api_user.py +++ b/fireblocks/models/create_api_user.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class CreateAPIUser(BaseModel): - """ - CreateAPIUser - """ # noqa: E501 - role: StrictStr = Field(description="Users role") - name: StrictStr = Field(description="Users name") - csr_pem: StrictStr = Field(description="CSR file that is used to verify API requests. read more https://developers.fireblocks.com/docs/quickstart", alias="csrPem") - co_signer_setup_type: Optional[StrictStr] = Field(default=None, description="Different environments allow for different setup options, field is required for management/signer role", alias="coSignerSetupType") - co_signer_setup_is_first_user: Optional[StrictBool] = Field(default=None, description="pass as true if this is the first user on the coSigner machine", alias="coSignerSetupIsFirstUser") - __properties: ClassVar[List[str]] = ["role", "name", "csrPem", "coSignerSetupType", "coSignerSetupIsFirstUser"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateAPIUser from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateAPIUser from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "role": obj.get("role"), - "name": obj.get("name"), - "csrPem": obj.get("csrPem"), - "coSignerSetupType": obj.get("coSignerSetupType"), - "coSignerSetupIsFirstUser": obj.get("coSignerSetupIsFirstUser") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDcmVhdGVBUElVc2VyKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENyZWF0ZUFQSVVzZXIKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHJvbGU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJVc2VycyByb2xlIikKICAgIG5hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJVc2VycyBuYW1lIikKICAgIGNzcl9wZW06IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJDU1IgZmlsZSB0aGF0IGlzIHVzZWQgdG8gdmVyaWZ5IEFQSSByZXF1ZXN0cy4gcmVhZCBtb3JlIGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL3F1aWNrc3RhcnQiLCBhbGlhcz0iY3NyUGVtIikKICAgIGNvX3NpZ25lcl9zZXR1cF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGlmZmVyZW50IGVudmlyb25tZW50cyBhbGxvdyBmb3IgZGlmZmVyZW50IHNldHVwIG9wdGlvbnMsIGZpZWxkIGlzIHJlcXVpcmVkIGZvciBtYW5hZ2VtZW50L3NpZ25lciByb2xlIiwgYWxpYXM9ImNvU2lnbmVyU2V0dXBUeXBlIikKICAgIGNvX3NpZ25lcl9zZXR1cF9pc19maXJzdF91c2VyOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249InBhc3MgYXMgdHJ1ZSBpZiB0aGlzIGlzIHRoZSBmaXJzdCB1c2VyIG9uIHRoZSBjb1NpZ25lciBtYWNoaW5lIiwgYWxpYXM9ImNvU2lnbmVyU2V0dXBJc0ZpcnN0VXNlciIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInJvbGUiLCAibmFtZSIsICJjc3JQZW0iLCAiY29TaWduZXJTZXR1cFR5cGUiLCAiY29TaWduZXJTZXR1cElzRmlyc3RVc2VyIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVBUElVc2VyIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZUFQSVVzZXIgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicm9sZSI6IG9iai5nZXQoInJvbGUiKSwKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJjc3JQZW0iOiBvYmouZ2V0KCJjc3JQZW0iKSwKICAgICAgICAgICAgImNvU2lnbmVyU2V0dXBUeXBlIjogb2JqLmdldCgiY29TaWduZXJTZXR1cFR5cGUiKSwKICAgICAgICAgICAgImNvU2lnbmVyU2V0dXBJc0ZpcnN0VXNlciI6IG9iai5nZXQoImNvU2lnbmVyU2V0dXBJc0ZpcnN0VXNlciIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/create_assets_request.py b/fireblocks/models/create_assets_request.py index 1c0d042c..ec3d5ba2 100644 --- a/fireblocks/models/create_assets_request.py +++ b/fireblocks/models/create_assets_request.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class CreateAssetsRequest(BaseModel): - """ - CreateAssetsRequest - """ # noqa: E501 - eos_account_name: Optional[StrictStr] = Field(default=None, description="Optional - when creating an EOS wallet, the account name. If not provided, a random name will be generated", alias="eosAccountName") - __properties: ClassVar[List[str]] = ["eosAccountName"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateAssetsRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateAssetsRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "eosAccountName": obj.get("eosAccountName") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDcmVhdGVBc3NldHNSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENyZWF0ZUFzc2V0c1JlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGVvc19hY2NvdW50X25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJPcHRpb25hbCAtIHdoZW4gY3JlYXRpbmcgYW4gRU9TIHdhbGxldCwgdGhlIGFjY291bnQgbmFtZS4gSWYgbm90IHByb3ZpZGVkLCBhIHJhbmRvbSBuYW1lIHdpbGwgYmUgZ2VuZXJhdGVkIiwgYWxpYXM9ImVvc0FjY291bnROYW1lIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZW9zQWNjb3VudE5hbWUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZUFzc2V0c1JlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlQXNzZXRzUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJlb3NBY2NvdW50TmFtZSI6IG9iai5nZXQoImVvc0FjY291bnROYW1lIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/create_config_operation_request.py b/fireblocks/models/create_config_operation_request.py index a36637b3..61cb6f94 100644 --- a/fireblocks/models/create_config_operation_request.py +++ b/fireblocks/models/create_config_operation_request.py @@ -1,152 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.create_conversion_config_operation_request import CreateConversionConfigOperationRequest -from fireblocks.models.create_disbursement_config_operation_request import CreateDisbursementConfigOperationRequest -from fireblocks.models.create_transfer_config_operation_request import CreateTransferConfigOperationRequest -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -CREATECONFIGOPERATIONREQUEST_ONE_OF_SCHEMAS = ["CreateConversionConfigOperationRequest", "CreateDisbursementConfigOperationRequest", "CreateTransferConfigOperationRequest"] - -class CreateConfigOperationRequest(BaseModel): - """ - CreateConfigOperationRequest - """ - # data type: CreateConversionConfigOperationRequest - oneof_schema_1_validator: Optional[CreateConversionConfigOperationRequest] = None - # data type: CreateTransferConfigOperationRequest - oneof_schema_2_validator: Optional[CreateTransferConfigOperationRequest] = None - # data type: CreateDisbursementConfigOperationRequest - oneof_schema_3_validator: Optional[CreateDisbursementConfigOperationRequest] = None - actual_instance: Optional[Union[CreateConversionConfigOperationRequest, CreateDisbursementConfigOperationRequest, CreateTransferConfigOperationRequest]] = None - one_of_schemas: Set[str] = { "CreateConversionConfigOperationRequest", "CreateDisbursementConfigOperationRequest", "CreateTransferConfigOperationRequest" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = CreateConfigOperationRequest.model_construct() - error_messages = [] - match = 0 - # validate data type: CreateConversionConfigOperationRequest - if not isinstance(v, CreateConversionConfigOperationRequest): - error_messages.append(f"Error! Input type `{type(v)}` is not `CreateConversionConfigOperationRequest`") - else: - match += 1 - # validate data type: CreateTransferConfigOperationRequest - if not isinstance(v, CreateTransferConfigOperationRequest): - error_messages.append(f"Error! Input type `{type(v)}` is not `CreateTransferConfigOperationRequest`") - else: - match += 1 - # validate data type: CreateDisbursementConfigOperationRequest - if not isinstance(v, CreateDisbursementConfigOperationRequest): - error_messages.append(f"Error! Input type `{type(v)}` is not `CreateDisbursementConfigOperationRequest`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in CreateConfigOperationRequest with oneOf schemas: CreateConversionConfigOperationRequest, CreateDisbursementConfigOperationRequest, CreateTransferConfigOperationRequest. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in CreateConfigOperationRequest with oneOf schemas: CreateConversionConfigOperationRequest, CreateDisbursementConfigOperationRequest, CreateTransferConfigOperationRequest. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into CreateConversionConfigOperationRequest - try: - instance.actual_instance = CreateConversionConfigOperationRequest.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into CreateTransferConfigOperationRequest - try: - instance.actual_instance = CreateTransferConfigOperationRequest.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into CreateDisbursementConfigOperationRequest - try: - instance.actual_instance = CreateDisbursementConfigOperationRequest.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into CreateConfigOperationRequest with oneOf schemas: CreateConversionConfigOperationRequest, CreateDisbursementConfigOperationRequest, CreateTransferConfigOperationRequest. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into CreateConfigOperationRequest with oneOf schemas: CreateConversionConfigOperationRequest, CreateDisbursementConfigOperationRequest, CreateTransferConfigOperationRequest. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], CreateConversionConfigOperationRequest, CreateDisbursementConfigOperationRequest, CreateTransferConfigOperationRequest]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX2NvbnZlcnNpb25fY29uZmlnX29wZXJhdGlvbl9yZXF1ZXN0IGltcG9ydCBDcmVhdGVDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uUmVxdWVzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9kaXNidXJzZW1lbnRfY29uZmlnX29wZXJhdGlvbl9yZXF1ZXN0IGltcG9ydCBDcmVhdGVEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb25SZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3RyYW5zZmVyX2NvbmZpZ19vcGVyYXRpb25fcmVxdWVzdCBpbXBvcnQgQ3JlYXRlVHJhbnNmZXJDb25maWdPcGVyYXRpb25SZXF1ZXN0CmZyb20gcHlkYW50aWMgaW1wb3J0IFN0cmljdFN0ciwgRmllbGQKZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uLCBMaXN0LCBTZXQsIE9wdGlvbmFsLCBEaWN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IExpdGVyYWwsIFNlbGYKCkNSRUFURUNPTkZJR09QRVJBVElPTlJFUVVFU1RfT05FX09GX1NDSEVNQVMgPSBbIkNyZWF0ZUNvbnZlcnNpb25Db25maWdPcGVyYXRpb25SZXF1ZXN0IiwgIkNyZWF0ZURpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvblJlcXVlc3QiLCAiQ3JlYXRlVHJhbnNmZXJDb25maWdPcGVyYXRpb25SZXF1ZXN0Il0KCmNsYXNzIENyZWF0ZUNvbmZpZ09wZXJhdGlvblJlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ3JlYXRlQ29uZmlnT3BlcmF0aW9uUmVxdWVzdAogICAgIiIiCiAgICAjIGRhdGEgdHlwZTogQ3JlYXRlQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvblJlcXVlc3QKICAgIG9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvcjogT3B0aW9uYWxbQ3JlYXRlQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvblJlcXVlc3RdID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IENyZWF0ZVRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uUmVxdWVzdAogICAgb25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yOiBPcHRpb25hbFtDcmVhdGVUcmFuc2ZlckNvbmZpZ09wZXJhdGlvblJlcXVlc3RdID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IENyZWF0ZURpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvblJlcXVlc3QKICAgIG9uZW9mX3NjaGVtYV8zX3ZhbGlkYXRvcjogT3B0aW9uYWxbQ3JlYXRlRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uUmVxdWVzdF0gPSBOb25lCiAgICBhY3R1YWxfaW5zdGFuY2U6IE9wdGlvbmFsW1VuaW9uW0NyZWF0ZUNvbnZlcnNpb25Db25maWdPcGVyYXRpb25SZXF1ZXN0LCBDcmVhdGVEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb25SZXF1ZXN0LCBDcmVhdGVUcmFuc2ZlckNvbmZpZ09wZXJhdGlvblJlcXVlc3RdXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgIkNyZWF0ZUNvbnZlcnNpb25Db25maWdPcGVyYXRpb25SZXF1ZXN0IiwgIkNyZWF0ZURpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvblJlcXVlc3QiLCAiQ3JlYXRlVHJhbnNmZXJDb25maWdPcGVyYXRpb25SZXF1ZXN0IiB9CgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gQ3JlYXRlQ29uZmlnT3BlcmF0aW9uUmVxdWVzdC5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogQ3JlYXRlQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvblJlcXVlc3QKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBDcmVhdGVDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uUmVxdWVzdCk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgQ3JlYXRlQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvblJlcXVlc3RgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IENyZWF0ZVRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uUmVxdWVzdAogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIENyZWF0ZVRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uUmVxdWVzdCk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgQ3JlYXRlVHJhbnNmZXJDb25maWdPcGVyYXRpb25SZXF1ZXN0YCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBDcmVhdGVEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb25SZXF1ZXN0CiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgQ3JlYXRlRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uUmVxdWVzdCk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgQ3JlYXRlRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uUmVxdWVzdGAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gQ3JlYXRlQ29uZmlnT3BlcmF0aW9uUmVxdWVzdCB3aXRoIG9uZU9mIHNjaGVtYXM6IENyZWF0ZUNvbnZlcnNpb25Db25maWdPcGVyYXRpb25SZXF1ZXN0LCBDcmVhdGVEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb25SZXF1ZXN0LCBDcmVhdGVUcmFuc2ZlckNvbmZpZ09wZXJhdGlvblJlcXVlc3QuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gQ3JlYXRlQ29uZmlnT3BlcmF0aW9uUmVxdWVzdCB3aXRoIG9uZU9mIHNjaGVtYXM6IENyZWF0ZUNvbnZlcnNpb25Db25maWdPcGVyYXRpb25SZXF1ZXN0LCBDcmVhdGVEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb25SZXF1ZXN0LCBDcmVhdGVUcmFuc2ZlckNvbmZpZ09wZXJhdGlvblJlcXVlc3QuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBVbmlvbltzdHIsIERpY3Rbc3RyLCBBbnldXSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCgogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIENyZWF0ZUNvbnZlcnNpb25Db25maWdPcGVyYXRpb25SZXF1ZXN0CiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBDcmVhdGVDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uUmVxdWVzdC5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBDcmVhdGVUcmFuc2ZlckNvbmZpZ09wZXJhdGlvblJlcXVlc3QKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IENyZWF0ZVRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uUmVxdWVzdC5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBDcmVhdGVEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb25SZXF1ZXN0CiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBDcmVhdGVEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb25SZXF1ZXN0LmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQoKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gQ3JlYXRlQ29uZmlnT3BlcmF0aW9uUmVxdWVzdCB3aXRoIG9uZU9mIHNjaGVtYXM6IENyZWF0ZUNvbnZlcnNpb25Db25maWdPcGVyYXRpb25SZXF1ZXN0LCBDcmVhdGVEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb25SZXF1ZXN0LCBDcmVhdGVUcmFuc2ZlckNvbmZpZ09wZXJhdGlvblJlcXVlc3QuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gQ3JlYXRlQ29uZmlnT3BlcmF0aW9uUmVxdWVzdCB3aXRoIG9uZU9mIHNjaGVtYXM6IENyZWF0ZUNvbnZlcnNpb25Db25maWdPcGVyYXRpb25SZXF1ZXN0LCBDcmVhdGVEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb25SZXF1ZXN0LCBDcmVhdGVUcmFuc2ZlckNvbmZpZ09wZXJhdGlvblJlcXVlc3QuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gIm51bGwiCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19qc29uIikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24pOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbigpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi5hY3R1YWxfaW5zdGFuY2UpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gT3B0aW9uYWxbVW5pb25bRGljdFtzdHIsIEFueV0sIENyZWF0ZUNvbnZlcnNpb25Db25maWdPcGVyYXRpb25SZXF1ZXN0LCBDcmVhdGVEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb25SZXF1ZXN0LCBDcmVhdGVUcmFuc2ZlckNvbmZpZ09wZXJhdGlvblJlcXVlc3RdXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgcHJpbWl0aXZlIHR5cGUKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/create_connection_request.py b/fireblocks/models/create_connection_request.py index 01aa516e..a17a9464 100644 --- a/fireblocks/models/create_connection_request.py +++ b/fireblocks/models/create_connection_request.py @@ -1,138 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.create_ncw_connection_request import CreateNcwConnectionRequest -from fireblocks.models.create_vault_account_connection_request import CreateVaultAccountConnectionRequest -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -CREATECONNECTIONREQUEST_ONE_OF_SCHEMAS = ["CreateNcwConnectionRequest", "CreateVaultAccountConnectionRequest"] - -class CreateConnectionRequest(BaseModel): - """ - CreateConnectionRequest - """ - # data type: CreateVaultAccountConnectionRequest - oneof_schema_1_validator: Optional[CreateVaultAccountConnectionRequest] = None - # data type: CreateNcwConnectionRequest - oneof_schema_2_validator: Optional[CreateNcwConnectionRequest] = None - actual_instance: Optional[Union[CreateNcwConnectionRequest, CreateVaultAccountConnectionRequest]] = None - one_of_schemas: Set[str] = { "CreateNcwConnectionRequest", "CreateVaultAccountConnectionRequest" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = CreateConnectionRequest.model_construct() - error_messages = [] - match = 0 - # validate data type: CreateVaultAccountConnectionRequest - if not isinstance(v, CreateVaultAccountConnectionRequest): - error_messages.append(f"Error! Input type `{type(v)}` is not `CreateVaultAccountConnectionRequest`") - else: - match += 1 - # validate data type: CreateNcwConnectionRequest - if not isinstance(v, CreateNcwConnectionRequest): - error_messages.append(f"Error! Input type `{type(v)}` is not `CreateNcwConnectionRequest`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in CreateConnectionRequest with oneOf schemas: CreateNcwConnectionRequest, CreateVaultAccountConnectionRequest. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in CreateConnectionRequest with oneOf schemas: CreateNcwConnectionRequest, CreateVaultAccountConnectionRequest. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into CreateVaultAccountConnectionRequest - try: - instance.actual_instance = CreateVaultAccountConnectionRequest.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into CreateNcwConnectionRequest - try: - instance.actual_instance = CreateNcwConnectionRequest.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into CreateConnectionRequest with oneOf schemas: CreateNcwConnectionRequest, CreateVaultAccountConnectionRequest. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into CreateConnectionRequest with oneOf schemas: CreateNcwConnectionRequest, CreateVaultAccountConnectionRequest. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], CreateNcwConnectionRequest, CreateVaultAccountConnectionRequest]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX25jd19jb25uZWN0aW9uX3JlcXVlc3QgaW1wb3J0IENyZWF0ZU5jd0Nvbm5lY3Rpb25SZXF1ZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3ZhdWx0X2FjY291bnRfY29ubmVjdGlvbl9yZXF1ZXN0IGltcG9ydCBDcmVhdGVWYXVsdEFjY291bnRDb25uZWN0aW9uUmVxdWVzdApmcm9tIHB5ZGFudGljIGltcG9ydCBTdHJpY3RTdHIsIEZpZWxkCmZyb20gdHlwaW5nIGltcG9ydCBVbmlvbiwgTGlzdCwgU2V0LCBPcHRpb25hbCwgRGljdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBMaXRlcmFsLCBTZWxmCgpDUkVBVEVDT05ORUNUSU9OUkVRVUVTVF9PTkVfT0ZfU0NIRU1BUyA9IFsiQ3JlYXRlTmN3Q29ubmVjdGlvblJlcXVlc3QiLCAiQ3JlYXRlVmF1bHRBY2NvdW50Q29ubmVjdGlvblJlcXVlc3QiXQoKY2xhc3MgQ3JlYXRlQ29ubmVjdGlvblJlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ3JlYXRlQ29ubmVjdGlvblJlcXVlc3QKICAgICIiIgogICAgIyBkYXRhIHR5cGU6IENyZWF0ZVZhdWx0QWNjb3VudENvbm5lY3Rpb25SZXF1ZXN0CiAgICBvbmVvZl9zY2hlbWFfMV92YWxpZGF0b3I6IE9wdGlvbmFsW0NyZWF0ZVZhdWx0QWNjb3VudENvbm5lY3Rpb25SZXF1ZXN0XSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBDcmVhdGVOY3dDb25uZWN0aW9uUmVxdWVzdAogICAgb25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yOiBPcHRpb25hbFtDcmVhdGVOY3dDb25uZWN0aW9uUmVxdWVzdF0gPSBOb25lCiAgICBhY3R1YWxfaW5zdGFuY2U6IE9wdGlvbmFsW1VuaW9uW0NyZWF0ZU5jd0Nvbm5lY3Rpb25SZXF1ZXN0LCBDcmVhdGVWYXVsdEFjY291bnRDb25uZWN0aW9uUmVxdWVzdF1dID0gTm9uZQogICAgb25lX29mX3NjaGVtYXM6IFNldFtzdHJdID0geyAiQ3JlYXRlTmN3Q29ubmVjdGlvblJlcXVlc3QiLCAiQ3JlYXRlVmF1bHRBY2NvdW50Q29ubmVjdGlvblJlcXVlc3QiIH0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncykgLT4gTm9uZToKICAgICAgICBpZiBhcmdzOgogICAgICAgICAgICBpZiBsZW4oYXJncykgPiAxOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBvbmx5IDEgaXMgYWxsb3dlZCB0byBzZXQgYGFjdHVhbF9pbnN0YW5jZWAiKQogICAgICAgICAgICBpZiBrd2FyZ3M6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIGtleXdvcmQgYXJndW1lbnRzIGNhbm5vdCBiZSB1c2VkLiIpCiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oYWN0dWFsX2luc3RhbmNlPWFyZ3NbMF0pCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhY3R1YWxfaW5zdGFuY2UnKQogICAgZGVmIGFjdHVhbF9pbnN0YW5jZV9tdXN0X3ZhbGlkYXRlX29uZW9mKGNscywgdik6CiAgICAgICAgaW5zdGFuY2UgPSBDcmVhdGVDb25uZWN0aW9uUmVxdWVzdC5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogQ3JlYXRlVmF1bHRBY2NvdW50Q29ubmVjdGlvblJlcXVlc3QKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBDcmVhdGVWYXVsdEFjY291bnRDb25uZWN0aW9uUmVxdWVzdCk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgQ3JlYXRlVmF1bHRBY2NvdW50Q29ubmVjdGlvblJlcXVlc3RgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IENyZWF0ZU5jd0Nvbm5lY3Rpb25SZXF1ZXN0CiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgQ3JlYXRlTmN3Q29ubmVjdGlvblJlcXVlc3QpOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYENyZWF0ZU5jd0Nvbm5lY3Rpb25SZXF1ZXN0YCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBDcmVhdGVDb25uZWN0aW9uUmVxdWVzdCB3aXRoIG9uZU9mIHNjaGVtYXM6IENyZWF0ZU5jd0Nvbm5lY3Rpb25SZXF1ZXN0LCBDcmVhdGVWYXVsdEFjY291bnRDb25uZWN0aW9uUmVxdWVzdC4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBDcmVhdGVDb25uZWN0aW9uUmVxdWVzdCB3aXRoIG9uZU9mIHNjaGVtYXM6IENyZWF0ZU5jd0Nvbm5lY3Rpb25SZXF1ZXN0LCBDcmVhdGVWYXVsdEFjY291bnRDb25uZWN0aW9uUmVxdWVzdC4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIHYKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IFVuaW9uW3N0ciwgRGljdFtzdHIsIEFueV1dKSAtPiBTZWxmOgogICAgICAgIHJldHVybiBjbHMuZnJvbV9qc29uKGpzb24uZHVtcHMob2JqKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIlJldHVybnMgdGhlIG9iamVjdCByZXByZXNlbnRlZCBieSB0aGUganNvbiBzdHJpbmciIiIKICAgICAgICBpbnN0YW5jZSA9IGNscy5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gQ3JlYXRlVmF1bHRBY2NvdW50Q29ubmVjdGlvblJlcXVlc3QKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IENyZWF0ZVZhdWx0QWNjb3VudENvbm5lY3Rpb25SZXF1ZXN0LmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIENyZWF0ZU5jd0Nvbm5lY3Rpb25SZXF1ZXN0CiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBDcmVhdGVOY3dDb25uZWN0aW9uUmVxdWVzdC5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIENyZWF0ZUNvbm5lY3Rpb25SZXF1ZXN0IHdpdGggb25lT2Ygc2NoZW1hczogQ3JlYXRlTmN3Q29ubmVjdGlvblJlcXVlc3QsIENyZWF0ZVZhdWx0QWNjb3VudENvbm5lY3Rpb25SZXF1ZXN0LiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIENyZWF0ZUNvbm5lY3Rpb25SZXF1ZXN0IHdpdGggb25lT2Ygc2NoZW1hczogQ3JlYXRlTmN3Q29ubmVjdGlvblJlcXVlc3QsIENyZWF0ZVZhdWx0QWNjb3VudENvbm5lY3Rpb25SZXF1ZXN0LiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuICJudWxsIgoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fanNvbiIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24oKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYuYWN0dWFsX2luc3RhbmNlKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IE9wdGlvbmFsW1VuaW9uW0RpY3Rbc3RyLCBBbnldLCBDcmVhdGVOY3dDb25uZWN0aW9uUmVxdWVzdCwgQ3JlYXRlVmF1bHRBY2NvdW50Q29ubmVjdGlvblJlcXVlc3RdXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgcHJpbWl0aXZlIHR5cGUKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/create_connection_response.py b/fireblocks/models/create_connection_response.py index 4d68f3aa..2f8e49f7 100644 --- a/fireblocks/models/create_connection_response.py +++ b/fireblocks/models/create_connection_response.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.session_metadata import SessionMetadata -from typing import Optional, Set -from typing_extensions import Self - -class CreateConnectionResponse(BaseModel): - """ - CreateConnectionResponse - """ # noqa: E501 - id: StrictStr = Field(description="The ID of the Web3 connection initiated.") - session_metadata: SessionMetadata = Field(description="Metadata of the Web3 connection (provided by the DApp).", alias="sessionMetadata") - __properties: ClassVar[List[str]] = ["id", "sessionMetadata"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateConnectionResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of session_metadata - if self.session_metadata: - _dict['sessionMetadata'] = self.session_metadata.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateConnectionResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "sessionMetadata": SessionMetadata.from_dict(obj["sessionMetadata"]) if obj.get("sessionMetadata") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2Vzc2lvbl9tZXRhZGF0YSBpbXBvcnQgU2Vzc2lvbk1ldGFkYXRhCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENyZWF0ZUNvbm5lY3Rpb25SZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDcmVhdGVDb25uZWN0aW9uUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBXZWIzIGNvbm5lY3Rpb24gaW5pdGlhdGVkLiIpCiAgICBzZXNzaW9uX21ldGFkYXRhOiBTZXNzaW9uTWV0YWRhdGEgPSBGaWVsZChkZXNjcmlwdGlvbj0iTWV0YWRhdGEgb2YgdGhlIFdlYjMgY29ubmVjdGlvbiAocHJvdmlkZWQgYnkgdGhlIERBcHApLiIsIGFsaWFzPSJzZXNzaW9uTWV0YWRhdGEiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJzZXNzaW9uTWV0YWRhdGEiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZUNvbm5lY3Rpb25SZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHNlc3Npb25fbWV0YWRhdGEKICAgICAgICBpZiBzZWxmLnNlc3Npb25fbWV0YWRhdGE6CiAgICAgICAgICAgIF9kaWN0WydzZXNzaW9uTWV0YWRhdGEnXSA9IHNlbGYuc2Vzc2lvbl9tZXRhZGF0YS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZUNvbm5lY3Rpb25SZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJzZXNzaW9uTWV0YWRhdGEiOiBTZXNzaW9uTWV0YWRhdGEuZnJvbV9kaWN0KG9ialsic2Vzc2lvbk1ldGFkYXRhIl0pIGlmIG9iai5nZXQoInNlc3Npb25NZXRhZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/create_console_user.py b/fireblocks/models/create_console_user.py index b6fb8f2d..f85e03e0 100644 --- a/fireblocks/models/create_console_user.py +++ b/fireblocks/models/create_console_user.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class CreateConsoleUser(BaseModel): - """ - CreateConsoleUser - """ # noqa: E501 - first_name: StrictStr = Field(description="users firstName", alias="firstName") - last_name: StrictStr = Field(description="users lastName", alias="lastName") - role: StrictStr = Field(description="users role") - email: StrictStr = Field(description="valid email address") - __properties: ClassVar[List[str]] = ["firstName", "lastName", "role", "email"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateConsoleUser from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateConsoleUser from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "firstName": obj.get("firstName"), - "lastName": obj.get("lastName"), - "role": obj.get("role"), - "email": obj.get("email") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENyZWF0ZUNvbnNvbGVVc2VyKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENyZWF0ZUNvbnNvbGVVc2VyCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBmaXJzdF9uYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0idXNlcnMgZmlyc3ROYW1lIiwgYWxpYXM9ImZpcnN0TmFtZSIpCiAgICBsYXN0X25hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJ1c2VycyBsYXN0TmFtZSIsIGFsaWFzPSJsYXN0TmFtZSIpCiAgICByb2xlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0idXNlcnMgcm9sZSIpCiAgICBlbWFpbDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249InZhbGlkIGVtYWlsIGFkZHJlc3MiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJmaXJzdE5hbWUiLCAibGFzdE5hbWUiLCAicm9sZSIsICJlbWFpbCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlQ29uc29sZVVzZXIgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlQ29uc29sZVVzZXIgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZmlyc3ROYW1lIjogb2JqLmdldCgiZmlyc3ROYW1lIiksCiAgICAgICAgICAgICJsYXN0TmFtZSI6IG9iai5nZXQoImxhc3ROYW1lIiksCiAgICAgICAgICAgICJyb2xlIjogb2JqLmdldCgicm9sZSIpLAogICAgICAgICAgICAiZW1haWwiOiBvYmouZ2V0KCJlbWFpbCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/create_contract_request.py b/fireblocks/models/create_contract_request.py index 8e312c41..6b87cf7a 100644 --- a/fireblocks/models/create_contract_request.py +++ b/fireblocks/models/create_contract_request.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class CreateContractRequest(BaseModel): - """ - CreateContractRequest - """ # noqa: E501 - name: Optional[StrictStr] = Field(default=None, description="the contract's display name") - __properties: ClassVar[List[str]] = ["name"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateContractRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateContractRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDcmVhdGVDb250cmFjdFJlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ3JlYXRlQ29udHJhY3RSZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBuYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0idGhlIGNvbnRyYWN0J3MgZGlzcGxheSBuYW1lIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibmFtZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlQ29udHJhY3RSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZUNvbnRyYWN0UmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/create_conversion_config_operation_request.py b/fireblocks/models/create_conversion_config_operation_request.py index 8ef2d342..45d5b20b 100644 --- a/fireblocks/models/create_conversion_config_operation_request.py +++ b/fireblocks/models/create_conversion_config_operation_request.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List -from fireblocks.models.conversion_operation_config_params import ConversionOperationConfigParams -from fireblocks.models.conversion_operation_type import ConversionOperationType -from typing import Optional, Set -from typing_extensions import Self - -class CreateConversionConfigOperationRequest(BaseModel): - """ - CreateConversionConfigOperationRequest - """ # noqa: E501 - type: ConversionOperationType - params: ConversionOperationConfigParams - __properties: ClassVar[List[str]] = ["type", "params"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateConversionConfigOperationRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of params - if self.params: - _dict['params'] = self.params.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateConversionConfigOperationRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "params": ConversionOperationConfigParams.from_dict(obj["params"]) if obj.get("params") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fY29uZmlnX3BhcmFtcyBpbXBvcnQgQ29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX3R5cGUgaW1wb3J0IENvbnZlcnNpb25PcGVyYXRpb25UeXBlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENyZWF0ZUNvbnZlcnNpb25Db25maWdPcGVyYXRpb25SZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENyZWF0ZUNvbnZlcnNpb25Db25maWdPcGVyYXRpb25SZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBDb252ZXJzaW9uT3BlcmF0aW9uVHlwZQogICAgcGFyYW1zOiBDb252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiLCAicGFyYW1zIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHBhcmFtcwogICAgICAgIGlmIHNlbGYucGFyYW1zOgogICAgICAgICAgICBfZGljdFsncGFyYW1zJ10gPSBzZWxmLnBhcmFtcy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZUNvbnZlcnNpb25Db25maWdPcGVyYXRpb25SZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIiksCiAgICAgICAgICAgICJwYXJhbXMiOiBDb252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zLmZyb21fZGljdChvYmpbInBhcmFtcyJdKSBpZiBvYmouZ2V0KCJwYXJhbXMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/create_disbursement_config_operation_request.py b/fireblocks/models/create_disbursement_config_operation_request.py index 3176eaf7..89f02634 100644 --- a/fireblocks/models/create_disbursement_config_operation_request.py +++ b/fireblocks/models/create_disbursement_config_operation_request.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List -from fireblocks.models.disbursement_operation_config_params import DisbursementOperationConfigParams -from fireblocks.models.disbursement_operation_type import DisbursementOperationType -from typing import Optional, Set -from typing_extensions import Self - -class CreateDisbursementConfigOperationRequest(BaseModel): - """ - CreateDisbursementConfigOperationRequest - """ # noqa: E501 - type: DisbursementOperationType - params: DisbursementOperationConfigParams - __properties: ClassVar[List[str]] = ["type", "params"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateDisbursementConfigOperationRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of params - if self.params: - _dict['params'] = self.params.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateDisbursementConfigOperationRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "params": DisbursementOperationConfigParams.from_dict(obj["params"]) if obj.get("params") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9jb25maWdfcGFyYW1zIGltcG9ydCBEaXNidXJzZW1lbnRPcGVyYXRpb25Db25maWdQYXJhbXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX3R5cGUgaW1wb3J0IERpc2J1cnNlbWVudE9wZXJhdGlvblR5cGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ3JlYXRlRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDcmVhdGVEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb25SZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBEaXNidXJzZW1lbnRPcGVyYXRpb25UeXBlCiAgICBwYXJhbXM6IERpc2J1cnNlbWVudE9wZXJhdGlvbkNvbmZpZ1BhcmFtcwogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgInBhcmFtcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHBhcmFtcwogICAgICAgIGlmIHNlbGYucGFyYW1zOgogICAgICAgICAgICBfZGljdFsncGFyYW1zJ10gPSBzZWxmLnBhcmFtcy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZURpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvblJlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgInBhcmFtcyI6IERpc2J1cnNlbWVudE9wZXJhdGlvbkNvbmZpZ1BhcmFtcy5mcm9tX2RpY3Qob2JqWyJwYXJhbXMiXSkgaWYgb2JqLmdldCgicGFyYW1zIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/create_internal_transfer_request.py b/fireblocks/models/create_internal_transfer_request.py index 8746f1e2..52fb268f 100644 --- a/fireblocks/models/create_internal_transfer_request.py +++ b/fireblocks/models/create_internal_transfer_request.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.trading_account_type import TradingAccountType -from typing import Optional, Set -from typing_extensions import Self - -class CreateInternalTransferRequest(BaseModel): - """ - CreateInternalTransferRequest - """ # noqa: E501 - asset: StrictStr - amount: StrictStr - source_type: TradingAccountType = Field(alias="sourceType") - dest_type: TradingAccountType = Field(alias="destType") - __properties: ClassVar[List[str]] = ["asset", "amount", "sourceType", "destType"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateInternalTransferRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateInternalTransferRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "asset": obj.get("asset"), - "amount": obj.get("amount"), - "sourceType": obj.get("sourceType"), - "destType": obj.get("destType") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhZGluZ19hY2NvdW50X3R5cGUgaW1wb3J0IFRyYWRpbmdBY2NvdW50VHlwZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDcmVhdGVJbnRlcm5hbFRyYW5zZmVyUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDcmVhdGVJbnRlcm5hbFRyYW5zZmVyUmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgYXNzZXQ6IFN0cmljdFN0cgogICAgYW1vdW50OiBTdHJpY3RTdHIKICAgIHNvdXJjZV90eXBlOiBUcmFkaW5nQWNjb3VudFR5cGUgPSBGaWVsZChhbGlhcz0ic291cmNlVHlwZSIpCiAgICBkZXN0X3R5cGU6IFRyYWRpbmdBY2NvdW50VHlwZSA9IEZpZWxkKGFsaWFzPSJkZXN0VHlwZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFzc2V0IiwgImFtb3VudCIsICJzb3VyY2VUeXBlIiwgImRlc3RUeXBlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVJbnRlcm5hbFRyYW5zZmVyUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVJbnRlcm5hbFRyYW5zZmVyUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhc3NldCI6IG9iai5nZXQoImFzc2V0IiksCiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKSwKICAgICAgICAgICAgInNvdXJjZVR5cGUiOiBvYmouZ2V0KCJzb3VyY2VUeXBlIiksCiAgICAgICAgICAgICJkZXN0VHlwZSI6IG9iai5nZXQoImRlc3RUeXBlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/create_internal_wallet_asset_request.py b/fireblocks/models/create_internal_wallet_asset_request.py index 2ab4498e..21f23aae 100644 --- a/fireblocks/models/create_internal_wallet_asset_request.py +++ b/fireblocks/models/create_internal_wallet_asset_request.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class CreateInternalWalletAssetRequest(BaseModel): - """ - CreateInternalWalletAssetRequest - """ # noqa: E501 - address: StrictStr = Field(description="The wallet's address or, for EOS wallets, the account name") - tag: Optional[StrictStr] = Field(default=None, description="for XRP wallets, the destination tag; for EOS, the memo; for the fiat providers (BLINC by BCB Group), the Bank Transfer Description") - __properties: ClassVar[List[str]] = ["address", "tag"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateInternalWalletAssetRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateInternalWalletAssetRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "address": obj.get("address"), - "tag": obj.get("tag") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDcmVhdGVJbnRlcm5hbFdhbGxldEFzc2V0UmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDcmVhdGVJbnRlcm5hbFdhbGxldEFzc2V0UmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgYWRkcmVzczogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB3YWxsZXQncyBhZGRyZXNzIG9yLCBmb3IgRU9TIHdhbGxldHMsIHRoZSBhY2NvdW50IG5hbWUiKQogICAgdGFnOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iZm9yIFhSUCB3YWxsZXRzLCB0aGUgZGVzdGluYXRpb24gdGFnOyBmb3IgRU9TLCB0aGUgbWVtbzsgZm9yIHRoZSBmaWF0IHByb3ZpZGVycyAoQkxJTkMgYnkgQkNCIEdyb3VwKSwgdGhlIEJhbmsgVHJhbnNmZXIgRGVzY3JpcHRpb24iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhZGRyZXNzIiwgInRhZyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlSW50ZXJuYWxXYWxsZXRBc3NldFJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlSW50ZXJuYWxXYWxsZXRBc3NldFJlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYWRkcmVzcyI6IG9iai5nZXQoImFkZHJlc3MiKSwKICAgICAgICAgICAgInRhZyI6IG9iai5nZXQoInRhZyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/create_multichain_token_request.py b/fireblocks/models/create_multichain_token_request.py index 01414fd9..d0603332 100644 --- a/fireblocks/models/create_multichain_token_request.py +++ b/fireblocks/models/create_multichain_token_request.py @@ -1,116 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.create_multichain_token_request_create_params import CreateMultichainTokenRequestCreateParams -from typing import Optional, Set -from typing_extensions import Self - -class CreateMultichainTokenRequest(BaseModel): - """ - CreateMultichainTokenRequest - """ # noqa: E501 - vault_account_id: StrictStr = Field(description="The id of the vault account that initiated the request to issue the token", alias="vaultAccountId") - create_params: CreateMultichainTokenRequestCreateParams = Field(alias="createParams") - salt: Optional[StrictStr] = Field(default=None, description="The salt to calculate the deterministic address. Must be a number between 0 and 2^256 -1, for it to fit in the bytes32 parameter.") - chains: List[StrictStr] = Field(description="The base asset identifiers of the blockchains (legacyId) to calculate deterministic addresses") - display_name: Optional[StrictStr] = Field(default=None, alias="displayName") - use_gasless: Optional[StrictBool] = Field(default=None, description="Indicates whether the token should be created in a gasless manner, utilizing the ERC-2771 standard. When set to true, the transaction will be relayed by a designated relayer. The workspace must be configured to use Fireblocks gasless relay.", alias="useGasless") - fee: Optional[StrictStr] = Field(default=None, description="Max fee amount for the write function transaction. interchangeable with the 'feeLevel' field") - fee_level: Optional[StrictStr] = Field(default=None, description="Fee level for the write function transaction. interchangeable with the 'fee' field", alias="feeLevel") - __properties: ClassVar[List[str]] = ["vaultAccountId", "createParams", "salt", "chains", "displayName", "useGasless", "fee", "feeLevel"] - - @field_validator('fee_level') - def fee_level_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['LOW', 'MEDIUM', 'HIGH']): - raise ValueError("must be one of enum values ('LOW', 'MEDIUM', 'HIGH')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateMultichainTokenRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of create_params - if self.create_params: - _dict['createParams'] = self.create_params.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateMultichainTokenRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "vaultAccountId": obj.get("vaultAccountId"), - "createParams": CreateMultichainTokenRequestCreateParams.from_dict(obj["createParams"]) if obj.get("createParams") is not None else None, - "salt": obj.get("salt"), - "chains": obj.get("chains"), - "displayName": obj.get("displayName"), - "useGasless": obj.get("useGasless"), - "fee": obj.get("fee"), - "feeLevel": obj.get("feeLevel") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX211bHRpY2hhaW5fdG9rZW5fcmVxdWVzdF9jcmVhdGVfcGFyYW1zIGltcG9ydCBDcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0Q3JlYXRlUGFyYW1zCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgdmF1bHRfYWNjb3VudF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBpZCBvZiB0aGUgdmF1bHQgYWNjb3VudCB0aGF0IGluaXRpYXRlZCB0aGUgcmVxdWVzdCB0byBpc3N1ZSB0aGUgdG9rZW4iLCBhbGlhcz0idmF1bHRBY2NvdW50SWQiKQogICAgY3JlYXRlX3BhcmFtczogQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdENyZWF0ZVBhcmFtcyA9IEZpZWxkKGFsaWFzPSJjcmVhdGVQYXJhbXMiKQogICAgc2FsdDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBzYWx0IHRvIGNhbGN1bGF0ZSB0aGUgZGV0ZXJtaW5pc3RpYyBhZGRyZXNzLiBNdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMl4yNTYgLTEsIGZvciBpdCB0byBmaXQgaW4gdGhlIGJ5dGVzMzIgcGFyYW1ldGVyLiIpCiAgICBjaGFpbnM6IExpc3RbU3RyaWN0U3RyXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmFzZSBhc3NldCBpZGVudGlmaWVycyBvZiB0aGUgYmxvY2tjaGFpbnMgKGxlZ2FjeUlkKSB0byBjYWxjdWxhdGUgZGV0ZXJtaW5pc3RpYyBhZGRyZXNzZXMiKQogICAgZGlzcGxheV9uYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZGlzcGxheU5hbWUiKQogICAgdXNlX2dhc2xlc3M6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRva2VuIHNob3VsZCBiZSBjcmVhdGVkIGluIGEgZ2FzbGVzcyBtYW5uZXIsIHV0aWxpemluZyB0aGUgRVJDLTI3NzEgc3RhbmRhcmQuIFdoZW4gc2V0IHRvIHRydWUsIHRoZSB0cmFuc2FjdGlvbiB3aWxsIGJlIHJlbGF5ZWQgYnkgYSBkZXNpZ25hdGVkIHJlbGF5ZXIuIFRoZSB3b3Jrc3BhY2UgbXVzdCBiZSBjb25maWd1cmVkIHRvIHVzZSBGaXJlYmxvY2tzIGdhc2xlc3MgcmVsYXkuIiwgYWxpYXM9InVzZUdhc2xlc3MiKQogICAgZmVlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTWF4IGZlZSBhbW91bnQgZm9yIHRoZSB3cml0ZSBmdW5jdGlvbiB0cmFuc2FjdGlvbi4gaW50ZXJjaGFuZ2VhYmxlIHdpdGggdGhlICdmZWVMZXZlbCcgZmllbGQiKQogICAgZmVlX2xldmVsOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRmVlIGxldmVsIGZvciB0aGUgd3JpdGUgZnVuY3Rpb24gdHJhbnNhY3Rpb24uIGludGVyY2hhbmdlYWJsZSB3aXRoIHRoZSAnZmVlJyBmaWVsZCIsIGFsaWFzPSJmZWVMZXZlbCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInZhdWx0QWNjb3VudElkIiwgImNyZWF0ZVBhcmFtcyIsICJzYWx0IiwgImNoYWlucyIsICJkaXNwbGF5TmFtZSIsICJ1c2VHYXNsZXNzIiwgImZlZSIsICJmZWVMZXZlbCJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignZmVlX2xldmVsJykKICAgIGRlZiBmZWVfbGV2ZWxfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gdmFsdWUKCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0xPVycsICdNRURJVU0nLCAnSElHSCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdMT1cnLCAnTUVESVVNJywgJ0hJR0gnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGNyZWF0ZV9wYXJhbXMKICAgICAgICBpZiBzZWxmLmNyZWF0ZV9wYXJhbXM6CiAgICAgICAgICAgIF9kaWN0WydjcmVhdGVQYXJhbXMnXSA9IHNlbGYuY3JlYXRlX3BhcmFtcy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidmF1bHRBY2NvdW50SWQiOiBvYmouZ2V0KCJ2YXVsdEFjY291bnRJZCIpLAogICAgICAgICAgICAiY3JlYXRlUGFyYW1zIjogQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdENyZWF0ZVBhcmFtcy5mcm9tX2RpY3Qob2JqWyJjcmVhdGVQYXJhbXMiXSkgaWYgb2JqLmdldCgiY3JlYXRlUGFyYW1zIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAic2FsdCI6IG9iai5nZXQoInNhbHQiKSwKICAgICAgICAgICAgImNoYWlucyI6IG9iai5nZXQoImNoYWlucyIpLAogICAgICAgICAgICAiZGlzcGxheU5hbWUiOiBvYmouZ2V0KCJkaXNwbGF5TmFtZSIpLAogICAgICAgICAgICAidXNlR2FzbGVzcyI6IG9iai5nZXQoInVzZUdhc2xlc3MiKSwKICAgICAgICAgICAgImZlZSI6IG9iai5nZXQoImZlZSIpLAogICAgICAgICAgICAiZmVlTGV2ZWwiOiBvYmouZ2V0KCJmZWVMZXZlbCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/create_multichain_token_request_create_params.py b/fireblocks/models/create_multichain_token_request_create_params.py index bf5dffd1..b102601c 100644 --- a/fireblocks/models/create_multichain_token_request_create_params.py +++ b/fireblocks/models/create_multichain_token_request_create_params.py @@ -1,124 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.evm_token_create_params_dto import EVMTokenCreateParamsDto -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -CREATEMULTICHAINTOKENREQUESTCREATEPARAMS_ONE_OF_SCHEMAS = ["EVMTokenCreateParamsDto"] - -class CreateMultichainTokenRequestCreateParams(BaseModel): - """ - CreateMultichainTokenRequestCreateParams - """ - # data type: EVMTokenCreateParamsDto - oneof_schema_1_validator: Optional[EVMTokenCreateParamsDto] = None - actual_instance: Optional[Union[EVMTokenCreateParamsDto]] = None - one_of_schemas: Set[str] = { "EVMTokenCreateParamsDto" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = CreateMultichainTokenRequestCreateParams.model_construct() - error_messages = [] - match = 0 - # validate data type: EVMTokenCreateParamsDto - if not isinstance(v, EVMTokenCreateParamsDto): - error_messages.append(f"Error! Input type `{type(v)}` is not `EVMTokenCreateParamsDto`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in CreateMultichainTokenRequestCreateParams with oneOf schemas: EVMTokenCreateParamsDto. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in CreateMultichainTokenRequestCreateParams with oneOf schemas: EVMTokenCreateParamsDto. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into EVMTokenCreateParamsDto - try: - instance.actual_instance = EVMTokenCreateParamsDto.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into CreateMultichainTokenRequestCreateParams with oneOf schemas: EVMTokenCreateParamsDto. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into CreateMultichainTokenRequestCreateParams with oneOf schemas: EVMTokenCreateParamsDto. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], EVMTokenCreateParamsDto]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXZtX3Rva2VuX2NyZWF0ZV9wYXJhbXNfZHRvIGltcG9ydCBFVk1Ub2tlbkNyZWF0ZVBhcmFtc0R0bwpmcm9tIHB5ZGFudGljIGltcG9ydCBTdHJpY3RTdHIsIEZpZWxkCmZyb20gdHlwaW5nIGltcG9ydCBVbmlvbiwgTGlzdCwgU2V0LCBPcHRpb25hbCwgRGljdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBMaXRlcmFsLCBTZWxmCgpDUkVBVEVNVUxUSUNIQUlOVE9LRU5SRVFVRVNUQ1JFQVRFUEFSQU1TX09ORV9PRl9TQ0hFTUFTID0gWyJFVk1Ub2tlbkNyZWF0ZVBhcmFtc0R0byJdCgpjbGFzcyBDcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0Q3JlYXRlUGFyYW1zKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3RDcmVhdGVQYXJhbXMKICAgICIiIgogICAgIyBkYXRhIHR5cGU6IEVWTVRva2VuQ3JlYXRlUGFyYW1zRHRvCiAgICBvbmVvZl9zY2hlbWFfMV92YWxpZGF0b3I6IE9wdGlvbmFsW0VWTVRva2VuQ3JlYXRlUGFyYW1zRHRvXSA9IE5vbmUKICAgIGFjdHVhbF9pbnN0YW5jZTogT3B0aW9uYWxbVW5pb25bRVZNVG9rZW5DcmVhdGVQYXJhbXNEdG9dXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgIkVWTVRva2VuQ3JlYXRlUGFyYW1zRHRvIiB9CgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdENyZWF0ZVBhcmFtcy5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogRVZNVG9rZW5DcmVhdGVQYXJhbXNEdG8KICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBFVk1Ub2tlbkNyZWF0ZVBhcmFtc0R0byk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgRVZNVG9rZW5DcmVhdGVQYXJhbXNEdG9gIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIENyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3RDcmVhdGVQYXJhbXMgd2l0aCBvbmVPZiBzY2hlbWFzOiBFVk1Ub2tlbkNyZWF0ZVBhcmFtc0R0by4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBDcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0Q3JlYXRlUGFyYW1zIHdpdGggb25lT2Ygc2NoZW1hczogRVZNVG9rZW5DcmVhdGVQYXJhbXNEdG8uIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBVbmlvbltzdHIsIERpY3Rbc3RyLCBBbnldXSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCgogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIEVWTVRva2VuQ3JlYXRlUGFyYW1zRHRvCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBFVk1Ub2tlbkNyZWF0ZVBhcmFtc0R0by5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIENyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3RDcmVhdGVQYXJhbXMgd2l0aCBvbmVPZiBzY2hlbWFzOiBFVk1Ub2tlbkNyZWF0ZVBhcmFtc0R0by4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBDcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0Q3JlYXRlUGFyYW1zIHdpdGggb25lT2Ygc2NoZW1hczogRVZNVG9rZW5DcmVhdGVQYXJhbXNEdG8uIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gIm51bGwiCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19qc29uIikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24pOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbigpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi5hY3R1YWxfaW5zdGFuY2UpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gT3B0aW9uYWxbVW5pb25bRGljdFtzdHIsIEFueV0sIEVWTVRva2VuQ3JlYXRlUGFyYW1zRHRvXV06CiAgICAgICAgIiIiUmV0dXJucyB0aGUgZGljdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2RpY3QiKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCk6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KCkKICAgICAgICBlbHNlOgogICAgICAgICAgICAjIHByaW1pdGl2ZSB0eXBlCiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZQoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcCgpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/create_multiple_accounts_request.py b/fireblocks/models/create_multiple_accounts_request.py index bdfc678a..7fc2cff4 100644 --- a/fireblocks/models/create_multiple_accounts_request.py +++ b/fireblocks/models/create_multiple_accounts_request.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class CreateMultipleAccountsRequest(BaseModel): - """ - CreateMultipleAccountsRequest - """ # noqa: E501 - count: StrictInt = Field(description="Count") - base_asset_ids: List[StrictStr] = Field(description="Array of base asset IDs", alias="baseAssetIds") - names: Optional[List[StrictStr]] = Field(default=None, description="Names to assign to vault accounts. if vaultAccountNamesStartingIndex or prefix is used it'll fail") - vault_account_names_starting_index: Optional[StrictInt] = Field(default=None, description="Copy vault accounts names starting from this index. If names array is used it'll fail", alias="vaultAccountNamesStartingIndex") - prefix: Optional[StrictStr] = Field(default=None, description="When copying from existing vault accounts (vaultAccountNamesStartingIndex) then adding a prefix to the names. If names array is used it'll fail") - __properties: ClassVar[List[str]] = ["count", "baseAssetIds", "names", "vaultAccountNamesStartingIndex", "prefix"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateMultipleAccountsRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateMultipleAccountsRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "count": obj.get("count"), - "baseAssetIds": obj.get("baseAssetIds"), - "names": obj.get("names"), - "vaultAccountNamesStartingIndex": obj.get("vaultAccountNamesStartingIndex"), - "prefix": obj.get("prefix") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDcmVhdGVNdWx0aXBsZUFjY291bnRzUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDcmVhdGVNdWx0aXBsZUFjY291bnRzUmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgY291bnQ6IFN0cmljdEludCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJDb3VudCIpCiAgICBiYXNlX2Fzc2V0X2lkczogTGlzdFtTdHJpY3RTdHJdID0gRmllbGQoZGVzY3JpcHRpb249IkFycmF5IG9mIGJhc2UgYXNzZXQgSURzIiwgYWxpYXM9ImJhc2VBc3NldElkcyIpCiAgICBuYW1lczogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik5hbWVzIHRvIGFzc2lnbiB0byB2YXVsdCBhY2NvdW50cy4gaWYgdmF1bHRBY2NvdW50TmFtZXNTdGFydGluZ0luZGV4IG9yIHByZWZpeCBpcyB1c2VkIGl0J2xsIGZhaWwiKQogICAgdmF1bHRfYWNjb3VudF9uYW1lc19zdGFydGluZ19pbmRleDogT3B0aW9uYWxbU3RyaWN0SW50XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkNvcHkgdmF1bHQgYWNjb3VudHMgbmFtZXMgc3RhcnRpbmcgZnJvbSB0aGlzIGluZGV4LiBJZiBuYW1lcyBhcnJheSBpcyB1c2VkIGl0J2xsIGZhaWwiLCBhbGlhcz0idmF1bHRBY2NvdW50TmFtZXNTdGFydGluZ0luZGV4IikKICAgIHByZWZpeDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IldoZW4gY29weWluZyBmcm9tIGV4aXN0aW5nIHZhdWx0IGFjY291bnRzICh2YXVsdEFjY291bnROYW1lc1N0YXJ0aW5nSW5kZXgpIHRoZW4gYWRkaW5nIGEgcHJlZml4IHRvIHRoZSBuYW1lcy4gSWYgbmFtZXMgYXJyYXkgaXMgdXNlZCBpdCdsbCBmYWlsIikKICAgIHRhZ19pZHM6IE9wdGlvbmFsW0Fubm90YXRlZFtMaXN0W1N0cmljdFN0cl0sIEZpZWxkKG1heF9sZW5ndGg9MjApXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJPcHRpb25hbCBsaXN0IG9mIHRhZyBJRHMgdG8gYXR0YWNoIHRvIGFsbCBjcmVhdGVkIHZhdWx0IGFjY291bnRzIiwgYWxpYXM9InRhZ0lkcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImNvdW50IiwgImJhc2VBc3NldElkcyIsICJuYW1lcyIsICJ2YXVsdEFjY291bnROYW1lc1N0YXJ0aW5nSW5kZXgiLCAicHJlZml4IiwgInRhZ0lkcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlTXVsdGlwbGVBY2NvdW50c1JlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlTXVsdGlwbGVBY2NvdW50c1JlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiY291bnQiOiBvYmouZ2V0KCJjb3VudCIpLAogICAgICAgICAgICAiYmFzZUFzc2V0SWRzIjogb2JqLmdldCgiYmFzZUFzc2V0SWRzIiksCiAgICAgICAgICAgICJuYW1lcyI6IG9iai5nZXQoIm5hbWVzIiksCiAgICAgICAgICAgICJ2YXVsdEFjY291bnROYW1lc1N0YXJ0aW5nSW5kZXgiOiBvYmouZ2V0KCJ2YXVsdEFjY291bnROYW1lc1N0YXJ0aW5nSW5kZXgiKSwKICAgICAgICAgICAgInByZWZpeCI6IG9iai5nZXQoInByZWZpeCIpLAogICAgICAgICAgICAidGFnSWRzIjogb2JqLmdldCgidGFnSWRzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/create_multiple_deposit_addresses_job_status.py b/fireblocks/models/create_multiple_deposit_addresses_job_status.py index 439ca4ae..4a7700b1 100644 --- a/fireblocks/models/create_multiple_deposit_addresses_job_status.py +++ b/fireblocks/models/create_multiple_deposit_addresses_job_status.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.new_address import NewAddress -from typing import Optional, Set -from typing_extensions import Self - -class CreateMultipleDepositAddressesJobStatus(BaseModel): - """ - CreateMultipleDepositAddressesJobStatus - """ # noqa: E501 - status: StrictStr - addresses: Optional[List[NewAddress]] = None - error_message: Optional[StrictStr] = Field(default=None, alias="errorMessage") - __properties: ClassVar[List[str]] = ["status", "addresses", "errorMessage"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateMultipleDepositAddressesJobStatus from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in addresses (list) - _items = [] - if self.addresses: - for _item_addresses in self.addresses: - if _item_addresses: - _items.append(_item_addresses.to_dict()) - _dict['addresses'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateMultipleDepositAddressesJobStatus from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "status": obj.get("status"), - "addresses": [NewAddress.from_dict(_item) for _item in obj["addresses"]] if obj.get("addresses") is not None else None, - "errorMessage": obj.get("errorMessage") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ld19hZGRyZXNzIGltcG9ydCBOZXdBZGRyZXNzCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENyZWF0ZU11bHRpcGxlRGVwb3NpdEFkZHJlc3Nlc0pvYlN0YXR1cyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNKb2JTdGF0dXMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHN0YXR1czogU3RyaWN0U3RyCiAgICBhZGRyZXNzZXM6IE9wdGlvbmFsW0xpc3RbTmV3QWRkcmVzc11dID0gTm9uZQogICAgZXJyb3JfbWVzc2FnZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImVycm9yTWVzc2FnZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInN0YXR1cyIsICJhZGRyZXNzZXMiLCAiZXJyb3JNZXNzYWdlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNKb2JTdGF0dXMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gYWRkcmVzc2VzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5hZGRyZXNzZXM6CiAgICAgICAgICAgIGZvciBfaXRlbV9hZGRyZXNzZXMgaW4gc2VsZi5hZGRyZXNzZXM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9hZGRyZXNzZXM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9hZGRyZXNzZXMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnYWRkcmVzc2VzJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZU11bHRpcGxlRGVwb3NpdEFkZHJlc3Nlc0pvYlN0YXR1cyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgImFkZHJlc3NlcyI6IFtOZXdBZGRyZXNzLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiYWRkcmVzc2VzIl1dIGlmIG9iai5nZXQoImFkZHJlc3NlcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImVycm9yTWVzc2FnZSI6IG9iai5nZXQoImVycm9yTWVzc2FnZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/create_multiple_deposit_addresses_request.py b/fireblocks/models/create_multiple_deposit_addresses_request.py index 1999af6d..02af21c0 100644 --- a/fireblocks/models/create_multiple_deposit_addresses_request.py +++ b/fireblocks/models/create_multiple_deposit_addresses_request.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class CreateMultipleDepositAddressesRequest(BaseModel): - """ - CreateMultipleDepositAddressesRequest - """ # noqa: E501 - vault_account_id: StrictInt = Field(description="Existing Vault account ID to add deposit addresses to", alias="vaultAccountId") - asset_id: StrictStr = Field(description="asset ID", alias="assetId") - count: StrictInt = Field(description="Count of deposit addresses to issue") - descriptions: Optional[List[StrictStr]] = Field(default=None, description="Desctiptions of the newly created addresses") - vault_account_to_copy_desc_from: Optional[StrictInt] = Field(default=None, description="Existing Vault Account ID to copy deposit addresses descriptions from in case no descriptions were provided", alias="vaultAccountToCopyDescFrom") - vault_account_to_copy_desc_from_index: Optional[StrictInt] = Field(default=None, description="Existing length within the vault account to copy deposit addresses descriptions from", alias="vaultAccountToCopyDescFromIndex") - __properties: ClassVar[List[str]] = ["vaultAccountId", "assetId", "count", "descriptions", "vaultAccountToCopyDescFrom", "vaultAccountToCopyDescFromIndex"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateMultipleDepositAddressesRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateMultipleDepositAddressesRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "vaultAccountId": obj.get("vaultAccountId"), - "assetId": obj.get("assetId"), - "count": obj.get("count"), - "descriptions": obj.get("descriptions"), - "vaultAccountToCopyDescFrom": obj.get("vaultAccountToCopyDescFrom"), - "vaultAccountToCopyDescFromIndex": obj.get("vaultAccountToCopyDescFromIndex") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENyZWF0ZU11bHRpcGxlRGVwb3NpdEFkZHJlc3Nlc1JlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzUmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgdmF1bHRfYWNjb3VudF9pZDogU3RyaWN0SW50ID0gRmllbGQoZGVzY3JpcHRpb249IkV4aXN0aW5nIFZhdWx0IGFjY291bnQgSUQgdG8gYWRkIGRlcG9zaXQgYWRkcmVzc2VzIHRvIiwgYWxpYXM9InZhdWx0QWNjb3VudElkIikKICAgIGFzc2V0X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iYXNzZXQgSUQiLCBhbGlhcz0iYXNzZXRJZCIpCiAgICBjb3VudDogU3RyaWN0SW50ID0gRmllbGQoZGVzY3JpcHRpb249IkNvdW50IG9mIGRlcG9zaXQgYWRkcmVzc2VzIHRvIGlzc3VlIikKICAgIGRlc2NyaXB0aW9uczogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRlc2N0aXB0aW9ucyBvZiB0aGUgbmV3bHkgY3JlYXRlZCBhZGRyZXNzZXMiKQogICAgdmF1bHRfYWNjb3VudF90b19jb3B5X2Rlc2NfZnJvbTogT3B0aW9uYWxbU3RyaWN0SW50XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkV4aXN0aW5nIFZhdWx0IEFjY291bnQgSUQgdG8gY29weSBkZXBvc2l0IGFkZHJlc3NlcyBkZXNjcmlwdGlvbnMgZnJvbSBpbiBjYXNlIG5vIGRlc2NyaXB0aW9ucyB3ZXJlIHByb3ZpZGVkIiwgYWxpYXM9InZhdWx0QWNjb3VudFRvQ29weURlc2NGcm9tIikKICAgIHZhdWx0X2FjY291bnRfdG9fY29weV9kZXNjX2Zyb21faW5kZXg6IE9wdGlvbmFsW1N0cmljdEludF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJFeGlzdGluZyBsZW5ndGggd2l0aGluIHRoZSB2YXVsdCBhY2NvdW50IHRvIGNvcHkgZGVwb3NpdCBhZGRyZXNzZXMgZGVzY3JpcHRpb25zIGZyb20iLCBhbGlhcz0idmF1bHRBY2NvdW50VG9Db3B5RGVzY0Zyb21JbmRleCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInZhdWx0QWNjb3VudElkIiwgImFzc2V0SWQiLCAiY291bnQiLCAiZGVzY3JpcHRpb25zIiwgInZhdWx0QWNjb3VudFRvQ29weURlc2NGcm9tIiwgInZhdWx0QWNjb3VudFRvQ29weURlc2NGcm9tSW5kZXgiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZU11bHRpcGxlRGVwb3NpdEFkZHJlc3Nlc1JlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ2YXVsdEFjY291bnRJZCI6IG9iai5nZXQoInZhdWx0QWNjb3VudElkIiksCiAgICAgICAgICAgICJhc3NldElkIjogb2JqLmdldCgiYXNzZXRJZCIpLAogICAgICAgICAgICAiY291bnQiOiBvYmouZ2V0KCJjb3VudCIpLAogICAgICAgICAgICAiZGVzY3JpcHRpb25zIjogb2JqLmdldCgiZGVzY3JpcHRpb25zIiksCiAgICAgICAgICAgICJ2YXVsdEFjY291bnRUb0NvcHlEZXNjRnJvbSI6IG9iai5nZXQoInZhdWx0QWNjb3VudFRvQ29weURlc2NGcm9tIiksCiAgICAgICAgICAgICJ2YXVsdEFjY291bnRUb0NvcHlEZXNjRnJvbUluZGV4Ijogb2JqLmdldCgidmF1bHRBY2NvdW50VG9Db3B5RGVzY0Zyb21JbmRleCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/create_multiple_vault_accounts_job_status.py b/fireblocks/models/create_multiple_vault_accounts_job_status.py index 88340f5e..acaf66b1 100644 --- a/fireblocks/models/create_multiple_vault_accounts_job_status.py +++ b/fireblocks/models/create_multiple_vault_accounts_job_status.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class CreateMultipleVaultAccountsJobStatus(BaseModel): - """ - CreateMultipleVaultAccountsJobStatus - """ # noqa: E501 - status: StrictStr - vault_accounts: Optional[Dict[str, Dict[str, StrictStr]]] = Field(default=None, description="Mapping between VaultAccountId to a mapping of asset to address", alias="vaultAccounts") - error_message: Optional[StrictStr] = Field(default=None, alias="errorMessage") - __properties: ClassVar[List[str]] = ["status", "vaultAccounts", "errorMessage"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateMultipleVaultAccountsJobStatus from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateMultipleVaultAccountsJobStatus from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "status": obj.get("status"), - "vaultAccounts": obj.get("vaultAccounts"), - "errorMessage": obj.get("errorMessage") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDcmVhdGVNdWx0aXBsZVZhdWx0QWNjb3VudHNKb2JTdGF0dXMoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ3JlYXRlTXVsdGlwbGVWYXVsdEFjY291bnRzSm9iU3RhdHVzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzdGF0dXM6IFN0cmljdFN0cgogICAgdmF1bHRfYWNjb3VudHM6IE9wdGlvbmFsW0RpY3Rbc3RyLCBEaWN0W3N0ciwgU3RyaWN0U3RyXV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTWFwcGluZyBiZXR3ZWVuIFZhdWx0QWNjb3VudElkIHRvIGEgbWFwcGluZyBvZiBhc3NldCB0byBhZGRyZXNzIiwgYWxpYXM9InZhdWx0QWNjb3VudHMiKQogICAgZXJyb3JfbWVzc2FnZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImVycm9yTWVzc2FnZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInN0YXR1cyIsICJ2YXVsdEFjY291bnRzIiwgImVycm9yTWVzc2FnZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlTXVsdGlwbGVWYXVsdEFjY291bnRzSm9iU3RhdHVzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZU11bHRpcGxlVmF1bHRBY2NvdW50c0pvYlN0YXR1cyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgInZhdWx0QWNjb3VudHMiOiBvYmouZ2V0KCJ2YXVsdEFjY291bnRzIiksCiAgICAgICAgICAgICJlcnJvck1lc3NhZ2UiOiBvYmouZ2V0KCJlcnJvck1lc3NhZ2UiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/create_ncw_connection_request.py b/fireblocks/models/create_ncw_connection_request.py index f7e7641c..bd7db7eb 100644 --- a/fireblocks/models/create_ncw_connection_request.py +++ b/fireblocks/models/create_ncw_connection_request.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class CreateNcwConnectionRequest(BaseModel): - """ - CreateNcwConnectionRequest - """ # noqa: E501 - ncw_id: StrictStr = Field(description="The ID of the Non-Custodial Wallet to connect to the dApp.", alias="ncwId") - ncw_account_id: Union[StrictFloat, StrictInt] = Field(description="The NCW account ID to connect to the dApp.", alias="ncwAccountId") - fee_level: StrictStr = Field(description="The default fee level. Valid values are `MEDIUM` and `HIGH`.", alias="feeLevel") - uri: StrictStr = Field(description="The WalletConnect uri provided by the dapp.") - chain_ids: Optional[List[StrictStr]] = Field(default=None, description="The IDs of the blockchain networks used in the Web3 connection (Currently required in V1 connections only).", alias="chainIds") - __properties: ClassVar[List[str]] = ["ncwId", "ncwAccountId", "feeLevel", "uri", "chainIds"] - - @field_validator('fee_level') - def fee_level_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['MEDIUM', 'HIGH']): - raise ValueError("must be one of enum values ('MEDIUM', 'HIGH')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateNcwConnectionRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateNcwConnectionRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "ncwId": obj.get("ncwId"), - "ncwAccountId": obj.get("ncwAccountId"), - "feeLevel": obj.get("feeLevel"), - "uri": obj.get("uri"), - "chainIds": obj.get("chainIds") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDcmVhdGVOY3dDb25uZWN0aW9uUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDcmVhdGVOY3dDb25uZWN0aW9uUmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgbmN3X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBOb24tQ3VzdG9kaWFsIFdhbGxldCB0byBjb25uZWN0IHRvIHRoZSBkQXBwLiIsIGFsaWFzPSJuY3dJZCIpCiAgICBuY3dfYWNjb3VudF9pZDogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIE5DVyBhY2NvdW50IElEIHRvIGNvbm5lY3QgdG8gdGhlIGRBcHAuIiwgYWxpYXM9Im5jd0FjY291bnRJZCIpCiAgICBmZWVfbGV2ZWw6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGVmYXVsdCBmZWUgbGV2ZWwuIFZhbGlkIHZhbHVlcyBhcmUgYE1FRElVTWAgYW5kIGBISUdIYC4iLCBhbGlhcz0iZmVlTGV2ZWwiKQogICAgdXJpOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIFdhbGxldENvbm5lY3QgdXJpIHByb3ZpZGVkIGJ5IHRoZSBkYXBwLiIpCiAgICBjaGFpbl9pZHM6IE9wdGlvbmFsW0xpc3RbU3RyaWN0U3RyXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSURzIG9mIHRoZSBibG9ja2NoYWluIG5ldHdvcmtzIHVzZWQgaW4gdGhlIFdlYjMgY29ubmVjdGlvbiAoQ3VycmVudGx5IHJlcXVpcmVkIGluIFYxIGNvbm5lY3Rpb25zIG9ubHkpLiIsIGFsaWFzPSJjaGFpbklkcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm5jd0lkIiwgIm5jd0FjY291bnRJZCIsICJmZWVMZXZlbCIsICJ1cmkiLCAiY2hhaW5JZHMiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2ZlZV9sZXZlbCcpCiAgICBkZWYgZmVlX2xldmVsX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ01FRElVTScsICdISUdIJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ01FRElVTScsICdISUdIJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZU5jd0Nvbm5lY3Rpb25SZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZU5jd0Nvbm5lY3Rpb25SZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm5jd0lkIjogb2JqLmdldCgibmN3SWQiKSwKICAgICAgICAgICAgIm5jd0FjY291bnRJZCI6IG9iai5nZXQoIm5jd0FjY291bnRJZCIpLAogICAgICAgICAgICAiZmVlTGV2ZWwiOiBvYmouZ2V0KCJmZWVMZXZlbCIpLAogICAgICAgICAgICAidXJpIjogb2JqLmdldCgidXJpIiksCiAgICAgICAgICAgICJjaGFpbklkcyI6IG9iai5nZXQoImNoYWluSWRzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/create_network_id_request.py b/fireblocks/models/create_network_id_request.py index 702bb15e..e6f75ccf 100644 --- a/fireblocks/models/create_network_id_request.py +++ b/fireblocks/models/create_network_id_request.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.network_id_routing_policy_value import NetworkIdRoutingPolicyValue -from typing import Optional, Set -from typing_extensions import Self - -class CreateNetworkIdRequest(BaseModel): - """ - CreateNetworkIdRequest - """ # noqa: E501 - name: StrictStr - routing_policy: Optional[Dict[str, NetworkIdRoutingPolicyValue]] = Field(default=None, alias="routingPolicy") - __properties: ClassVar[List[str]] = ["name", "routingPolicy"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateNetworkIdRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each value in routing_policy (dict) - _field_dict = {} - if self.routing_policy: - for _key_routing_policy in self.routing_policy: - if self.routing_policy[_key_routing_policy]: - _field_dict[_key_routing_policy] = self.routing_policy[_key_routing_policy].to_dict() - _dict['routingPolicy'] = _field_dict - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateNetworkIdRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name"), - "routingPolicy": dict( - (_k, NetworkIdRoutingPolicyValue.from_dict(_v)) - for _k, _v in obj["routingPolicy"].items() - ) - if obj.get("routingPolicy") is not None - else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfaWRfcm91dGluZ19wb2xpY3lfdmFsdWUgaW1wb3J0IE5ldHdvcmtJZFJvdXRpbmdQb2xpY3lWYWx1ZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDcmVhdGVOZXR3b3JrSWRSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENyZWF0ZU5ldHdvcmtJZFJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG5hbWU6IFN0cmljdFN0cgogICAgcm91dGluZ19wb2xpY3k6IE9wdGlvbmFsW0RpY3Rbc3RyLCBOZXR3b3JrSWRSb3V0aW5nUG9saWN5VmFsdWVdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InJvdXRpbmdQb2xpY3kiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJuYW1lIiwgInJvdXRpbmdQb2xpY3kiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZU5ldHdvcmtJZFJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIHZhbHVlIGluIHJvdXRpbmdfcG9saWN5IChkaWN0KQogICAgICAgIF9maWVsZF9kaWN0ID0ge30KICAgICAgICBpZiBzZWxmLnJvdXRpbmdfcG9saWN5OgogICAgICAgICAgICBmb3IgX2tleV9yb3V0aW5nX3BvbGljeSBpbiBzZWxmLnJvdXRpbmdfcG9saWN5OgogICAgICAgICAgICAgICAgaWYgc2VsZi5yb3V0aW5nX3BvbGljeVtfa2V5X3JvdXRpbmdfcG9saWN5XToKICAgICAgICAgICAgICAgICAgICBfZmllbGRfZGljdFtfa2V5X3JvdXRpbmdfcG9saWN5XSA9IHNlbGYucm91dGluZ19wb2xpY3lbX2tleV9yb3V0aW5nX3BvbGljeV0udG9fZGljdCgpCiAgICAgICAgICAgIF9kaWN0Wydyb3V0aW5nUG9saWN5J10gPSBfZmllbGRfZGljdAogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlTmV0d29ya0lkUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAicm91dGluZ1BvbGljeSI6IGRpY3QoCiAgICAgICAgICAgICAgICAoX2ssIE5ldHdvcmtJZFJvdXRpbmdQb2xpY3lWYWx1ZS5mcm9tX2RpY3QoX3YpKQogICAgICAgICAgICAgICAgZm9yIF9rLCBfdiBpbiBvYmpbInJvdXRpbmdQb2xpY3kiXS5pdGVtcygpCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgb2JqLmdldCgicm91dGluZ1BvbGljeSIpIGlzIG5vdCBOb25lCiAgICAgICAgICAgIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/create_order_request.py b/fireblocks/models/create_order_request.py index 3abb5d62..8bf5c8bd 100644 --- a/fireblocks/models/create_order_request.py +++ b/fireblocks/models/create_order_request.py @@ -1,115 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from fireblocks.models.access_type import AccessType -from fireblocks.models.execution_request_details import ExecutionRequestDetails -from fireblocks.models.participants_identification import ParticipantsIdentification -from fireblocks.models.settlement import Settlement -from typing import Optional, Set -from typing_extensions import Self - -class CreateOrderRequest(BaseModel): - """ - CreateOrderRequest - """ # noqa: E501 - via: AccessType - execution_request_details: ExecutionRequestDetails = Field(alias="executionRequestDetails") - settlement: Settlement - participants_identification: Optional[ParticipantsIdentification] = Field(default=None, alias="participantsIdentification") - customer_internal_reference_id: Optional[StrictStr] = Field(default=None, description="Internal reference ID for the customer", alias="customerInternalReferenceId") - note: Optional[Annotated[str, Field(strict=True, max_length=512)]] = Field(default=None, description="Optional note for the order") - __properties: ClassVar[List[str]] = ["via", "executionRequestDetails", "settlement", "participantsIdentification", "customerInternalReferenceId", "note"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateOrderRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of via - if self.via: - _dict['via'] = self.via.to_dict() - # override the default output from pydantic by calling `to_dict()` of execution_request_details - if self.execution_request_details: - _dict['executionRequestDetails'] = self.execution_request_details.to_dict() - # override the default output from pydantic by calling `to_dict()` of settlement - if self.settlement: - _dict['settlement'] = self.settlement.to_dict() - # override the default output from pydantic by calling `to_dict()` of participants_identification - if self.participants_identification: - _dict['participantsIdentification'] = self.participants_identification.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateOrderRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "via": AccessType.from_dict(obj["via"]) if obj.get("via") is not None else None, - "executionRequestDetails": ExecutionRequestDetails.from_dict(obj["executionRequestDetails"]) if obj.get("executionRequestDetails") is not None else None, - "settlement": Settlement.from_dict(obj["settlement"]) if obj.get("settlement") is not None else None, - "participantsIdentification": ParticipantsIdentification.from_dict(obj["participantsIdentification"]) if obj.get("participantsIdentification") is not None else None, - "customerInternalReferenceId": obj.get("customerInternalReferenceId"), - "note": obj.get("note") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2Nlc3NfdHlwZSBpbXBvcnQgQWNjZXNzVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHMgaW1wb3J0IEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFydGljaXBhbnRzX2lkZW50aWZpY2F0aW9uIGltcG9ydCBQYXJ0aWNpcGFudHNJZGVudGlmaWNhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldHRsZW1lbnQgaW1wb3J0IFNldHRsZW1lbnQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ3JlYXRlT3JkZXJSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENyZWF0ZU9yZGVyUmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgdmlhOiBBY2Nlc3NUeXBlCiAgICBleGVjdXRpb25fcmVxdWVzdF9kZXRhaWxzOiBFeGVjdXRpb25SZXF1ZXN0RGV0YWlscyA9IEZpZWxkKGFsaWFzPSJleGVjdXRpb25SZXF1ZXN0RGV0YWlscyIpCiAgICBzZXR0bGVtZW50OiBTZXR0bGVtZW50CiAgICBwYXJ0aWNpcGFudHNfaWRlbnRpZmljYXRpb246IE9wdGlvbmFsW1BhcnRpY2lwYW50c0lkZW50aWZpY2F0aW9uXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InBhcnRpY2lwYW50c0lkZW50aWZpY2F0aW9uIikKICAgIGN1c3RvbWVyX2ludGVybmFsX3JlZmVyZW5jZV9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkludGVybmFsIHJlZmVyZW5jZSBJRCBmb3IgdGhlIGN1c3RvbWVyIiwgYWxpYXM9ImN1c3RvbWVySW50ZXJuYWxSZWZlcmVuY2VJZCIpCiAgICBub3RlOiBPcHRpb25hbFtBbm5vdGF0ZWRbc3RyLCBGaWVsZChzdHJpY3Q9VHJ1ZSwgbWF4X2xlbmd0aD01MTIpXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJPcHRpb25hbCBub3RlIGZvciB0aGUgb3JkZXIiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ2aWEiLCAiZXhlY3V0aW9uUmVxdWVzdERldGFpbHMiLCAic2V0dGxlbWVudCIsICJwYXJ0aWNpcGFudHNJZGVudGlmaWNhdGlvbiIsICJjdXN0b21lckludGVybmFsUmVmZXJlbmNlSWQiLCAibm90ZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlT3JkZXJSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgdmlhCiAgICAgICAgaWYgc2VsZi52aWE6CiAgICAgICAgICAgIF9kaWN0Wyd2aWEnXSA9IHNlbGYudmlhLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBleGVjdXRpb25fcmVxdWVzdF9kZXRhaWxzCiAgICAgICAgaWYgc2VsZi5leGVjdXRpb25fcmVxdWVzdF9kZXRhaWxzOgogICAgICAgICAgICBfZGljdFsnZXhlY3V0aW9uUmVxdWVzdERldGFpbHMnXSA9IHNlbGYuZXhlY3V0aW9uX3JlcXVlc3RfZGV0YWlscy50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2Ygc2V0dGxlbWVudAogICAgICAgIGlmIHNlbGYuc2V0dGxlbWVudDoKICAgICAgICAgICAgX2RpY3RbJ3NldHRsZW1lbnQnXSA9IHNlbGYuc2V0dGxlbWVudC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcGFydGljaXBhbnRzX2lkZW50aWZpY2F0aW9uCiAgICAgICAgaWYgc2VsZi5wYXJ0aWNpcGFudHNfaWRlbnRpZmljYXRpb246CiAgICAgICAgICAgIF9kaWN0WydwYXJ0aWNpcGFudHNJZGVudGlmaWNhdGlvbiddID0gc2VsZi5wYXJ0aWNpcGFudHNfaWRlbnRpZmljYXRpb24udG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVPcmRlclJlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidmlhIjogQWNjZXNzVHlwZS5mcm9tX2RpY3Qob2JqWyJ2aWEiXSkgaWYgb2JqLmdldCgidmlhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZXhlY3V0aW9uUmVxdWVzdERldGFpbHMiOiBFeGVjdXRpb25SZXF1ZXN0RGV0YWlscy5mcm9tX2RpY3Qob2JqWyJleGVjdXRpb25SZXF1ZXN0RGV0YWlscyJdKSBpZiBvYmouZ2V0KCJleGVjdXRpb25SZXF1ZXN0RGV0YWlscyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInNldHRsZW1lbnQiOiBTZXR0bGVtZW50LmZyb21fZGljdChvYmpbInNldHRsZW1lbnQiXSkgaWYgb2JqLmdldCgic2V0dGxlbWVudCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInBhcnRpY2lwYW50c0lkZW50aWZpY2F0aW9uIjogUGFydGljaXBhbnRzSWRlbnRpZmljYXRpb24uZnJvbV9kaWN0KG9ialsicGFydGljaXBhbnRzSWRlbnRpZmljYXRpb24iXSkgaWYgb2JqLmdldCgicGFydGljaXBhbnRzSWRlbnRpZmljYXRpb24iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJjdXN0b21lckludGVybmFsUmVmZXJlbmNlSWQiOiBvYmouZ2V0KCJjdXN0b21lckludGVybmFsUmVmZXJlbmNlSWQiKSwKICAgICAgICAgICAgIm5vdGUiOiBvYmouZ2V0KCJub3RlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/create_payout_request.py b/fireblocks/models/create_payout_request.py index c95d663a..146bfbfa 100644 --- a/fireblocks/models/create_payout_request.py +++ b/fireblocks/models/create_payout_request.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.payment_account import PaymentAccount -from fireblocks.models.payout_instruction import PayoutInstruction -from typing import Optional, Set -from typing_extensions import Self - -class CreatePayoutRequest(BaseModel): - """ - CreatePayoutRequest - """ # noqa: E501 - payment_account: PaymentAccount = Field(alias="paymentAccount") - instruction_set: List[PayoutInstruction] = Field(alias="instructionSet") - __properties: ClassVar[List[str]] = ["paymentAccount", "instructionSet"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreatePayoutRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of payment_account - if self.payment_account: - _dict['paymentAccount'] = self.payment_account.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in instruction_set (list) - _items = [] - if self.instruction_set: - for _item_instruction_set in self.instruction_set: - if _item_instruction_set: - _items.append(_item_instruction_set.to_dict()) - _dict['instructionSet'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreatePayoutRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "paymentAccount": PaymentAccount.from_dict(obj["paymentAccount"]) if obj.get("paymentAccount") is not None else None, - "instructionSet": [PayoutInstruction.from_dict(_item) for _item in obj["instructionSet"]] if obj.get("instructionSet") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW1lbnRfYWNjb3VudCBpbXBvcnQgUGF5bWVudEFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXlvdXRfaW5zdHJ1Y3Rpb24gaW1wb3J0IFBheW91dEluc3RydWN0aW9uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENyZWF0ZVBheW91dFJlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ3JlYXRlUGF5b3V0UmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgcGF5bWVudF9hY2NvdW50OiBQYXltZW50QWNjb3VudCA9IEZpZWxkKGFsaWFzPSJwYXltZW50QWNjb3VudCIpCiAgICBpbnN0cnVjdGlvbl9zZXQ6IExpc3RbUGF5b3V0SW5zdHJ1Y3Rpb25dID0gRmllbGQoYWxpYXM9Imluc3RydWN0aW9uU2V0IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicGF5bWVudEFjY291bnQiLCAiaW5zdHJ1Y3Rpb25TZXQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVBheW91dFJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBwYXltZW50X2FjY291bnQKICAgICAgICBpZiBzZWxmLnBheW1lbnRfYWNjb3VudDoKICAgICAgICAgICAgX2RpY3RbJ3BheW1lbnRBY2NvdW50J10gPSBzZWxmLnBheW1lbnRfYWNjb3VudC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGluc3RydWN0aW9uX3NldCAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuaW5zdHJ1Y3Rpb25fc2V0OgogICAgICAgICAgICBmb3IgX2l0ZW1faW5zdHJ1Y3Rpb25fc2V0IGluIHNlbGYuaW5zdHJ1Y3Rpb25fc2V0OgogICAgICAgICAgICAgICAgaWYgX2l0ZW1faW5zdHJ1Y3Rpb25fc2V0OgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1faW5zdHJ1Y3Rpb25fc2V0LnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2luc3RydWN0aW9uU2V0J10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVBheW91dFJlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicGF5bWVudEFjY291bnQiOiBQYXltZW50QWNjb3VudC5mcm9tX2RpY3Qob2JqWyJwYXltZW50QWNjb3VudCJdKSBpZiBvYmouZ2V0KCJwYXltZW50QWNjb3VudCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImluc3RydWN0aW9uU2V0IjogW1BheW91dEluc3RydWN0aW9uLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiaW5zdHJ1Y3Rpb25TZXQiXV0gaWYgb2JqLmdldCgiaW5zdHJ1Y3Rpb25TZXQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/create_quote.py b/fireblocks/models/create_quote.py index fafb1887..af79aec6 100644 --- a/fireblocks/models/create_quote.py +++ b/fireblocks/models/create_quote.py @@ -1,126 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing_extensions import Annotated -from fireblocks.models.create_quote_scope_inner import CreateQuoteScopeInner -from fireblocks.models.dvp_settlement import DVPSettlement -from fireblocks.models.side import Side -from fireblocks.models.transfer_rail import TransferRail -from typing import Optional, Set -from typing_extensions import Self - -class CreateQuote(BaseModel): - """ - CreateQuote - """ # noqa: E501 - scope: List[CreateQuoteScopeInner] - base_asset_id: StrictStr = Field(description="The asset you receive on BUY / give on SELL.", alias="baseAssetId") - base_asset_rail: Optional[TransferRail] = Field(default=None, alias="baseAssetRail") - quote_asset_id: StrictStr = Field(description="The counter asset used to pay/receive.", alias="quoteAssetId") - quote_asset_rail: Optional[TransferRail] = Field(default=None, alias="quoteAssetRail") - base_amount: Annotated[str, Field(strict=True)] = Field(description="Amount in baseAssetId. BUY = base amount to receive; SELL = base amount to sell.", alias="baseAmount") - slippage_bps: Optional[Union[Annotated[float, Field(le=10000, strict=True, ge=1)], Annotated[int, Field(le=10000, strict=True, ge=1)]]] = Field(default=50, description="Slippage tolerance in basis points (bps) for defi quotes - 1 is 0.01% and 10000 is 100%", alias="slippageBps") - settlement: Optional[DVPSettlement] = None - side: Side - __properties: ClassVar[List[str]] = ["scope", "baseAssetId", "baseAssetRail", "quoteAssetId", "quoteAssetRail", "baseAmount", "slippageBps", "settlement", "side"] - - @field_validator('base_amount') - def base_amount_validate_regular_expression(cls, value): - """Validates the regular expression""" - if not re.match(r"^\d+(\.\d+)?$", value): - raise ValueError(r"must validate the regular expression /^\d+(\.\d+)?$/") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateQuote from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in scope (list) - _items = [] - if self.scope: - for _item_scope in self.scope: - if _item_scope: - _items.append(_item_scope.to_dict()) - _dict['scope'] = _items - # override the default output from pydantic by calling `to_dict()` of settlement - if self.settlement: - _dict['settlement'] = self.settlement.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateQuote from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "scope": [CreateQuoteScopeInner.from_dict(_item) for _item in obj["scope"]] if obj.get("scope") is not None else None, - "baseAssetId": obj.get("baseAssetId"), - "baseAssetRail": obj.get("baseAssetRail"), - "quoteAssetId": obj.get("quoteAssetId"), - "quoteAssetRail": obj.get("quoteAssetRail"), - "baseAmount": obj.get("baseAmount"), - "slippageBps": obj.get("slippageBps") if obj.get("slippageBps") is not None else 50, - "settlement": DVPSettlement.from_dict(obj["settlement"]) if obj.get("settlement") is not None else None, - "side": obj.get("side") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfcXVvdGVfc2NvcGVfaW5uZXIgaW1wb3J0IENyZWF0ZVF1b3RlU2NvcGVJbm5lcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmR2cF9zZXR0bGVtZW50IGltcG9ydCBEVlBTZXR0bGVtZW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2lkZSBpbXBvcnQgU2lkZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3JhaWwgaW1wb3J0IFRyYW5zZmVyUmFpbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDcmVhdGVRdW90ZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDcmVhdGVRdW90ZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgc2NvcGU6IExpc3RbQ3JlYXRlUXVvdGVTY29wZUlubmVyXQogICAgYmFzZV9hc3NldF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBhc3NldCB5b3UgcmVjZWl2ZSBvbiBCVVkgLyBnaXZlIG9uIFNFTEwuIiwgYWxpYXM9ImJhc2VBc3NldElkIikKICAgIGJhc2VfYXNzZXRfcmFpbDogT3B0aW9uYWxbVHJhbnNmZXJSYWlsXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImJhc2VBc3NldFJhaWwiKQogICAgcXVvdGVfYXNzZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgY291bnRlciBhc3NldCB1c2VkIHRvIHBheS9yZWNlaXZlLiIsIGFsaWFzPSJxdW90ZUFzc2V0SWQiKQogICAgcXVvdGVfYXNzZXRfcmFpbDogT3B0aW9uYWxbVHJhbnNmZXJSYWlsXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InF1b3RlQXNzZXRSYWlsIikKICAgIGJhc2VfYW1vdW50OiBBbm5vdGF0ZWRbc3RyLCBGaWVsZChzdHJpY3Q9VHJ1ZSldID0gRmllbGQoZGVzY3JpcHRpb249IkFtb3VudCBpbiBiYXNlQXNzZXRJZC4gQlVZID0gYmFzZSBhbW91bnQgdG8gcmVjZWl2ZTsgU0VMTCA9IGJhc2UgYW1vdW50IHRvIHNlbGwuIiwgYWxpYXM9ImJhc2VBbW91bnQiKQogICAgc2xpcHBhZ2VfYnBzOiBPcHRpb25hbFtVbmlvbltBbm5vdGF0ZWRbZmxvYXQsIEZpZWxkKGxlPTEwMDAwLCBzdHJpY3Q9VHJ1ZSwgZ2U9MSldLCBBbm5vdGF0ZWRbaW50LCBGaWVsZChsZT0xMDAwMCwgc3RyaWN0PVRydWUsIGdlPTEpXV1dID0gRmllbGQoZGVmYXVsdD01MCwgZGVzY3JpcHRpb249IlNsaXBwYWdlIHRvbGVyYW5jZSBpbiBiYXNpcyBwb2ludHMgKGJwcykgZm9yIGRlZmkgcXVvdGVzIC0gMSBpcyAwLjAxJSBhbmQgMTAwMDAgaXMgMTAwJSIsIGFsaWFzPSJzbGlwcGFnZUJwcyIpCiAgICBzZXR0bGVtZW50OiBPcHRpb25hbFtEVlBTZXR0bGVtZW50XSA9IE5vbmUKICAgIHNpZGU6IFNpZGUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic2NvcGUiLCAiYmFzZUFzc2V0SWQiLCAiYmFzZUFzc2V0UmFpbCIsICJxdW90ZUFzc2V0SWQiLCAicXVvdGVBc3NldFJhaWwiLCAiYmFzZUFtb3VudCIsICJzbGlwcGFnZUJwcyIsICJzZXR0bGVtZW50IiwgInNpZGUiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2Jhc2VfYW1vdW50JykKICAgIGRlZiBiYXNlX2Ftb3VudF92YWxpZGF0ZV9yZWd1bGFyX2V4cHJlc3Npb24oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSByZWd1bGFyIGV4cHJlc3Npb24iIiIKICAgICAgICBpZiBub3QgcmUubWF0Y2gociJeXGQrKFwuXGQrKT8kIiwgdmFsdWUpOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKHIibXVzdCB2YWxpZGF0ZSB0aGUgcmVndWxhciBleHByZXNzaW9uIC9eXGQrKFwuXGQrKT8kLyIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlUXVvdGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gc2NvcGUgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLnNjb3BlOgogICAgICAgICAgICBmb3IgX2l0ZW1fc2NvcGUgaW4gc2VsZi5zY29wZToKICAgICAgICAgICAgICAgIGlmIF9pdGVtX3Njb3BlOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fc2NvcGUudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnc2NvcGUnXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBzZXR0bGVtZW50CiAgICAgICAgaWYgc2VsZi5zZXR0bGVtZW50OgogICAgICAgICAgICBfZGljdFsnc2V0dGxlbWVudCddID0gc2VsZi5zZXR0bGVtZW50LnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlUXVvdGUgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic2NvcGUiOiBbQ3JlYXRlUXVvdGVTY29wZUlubmVyLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsic2NvcGUiXV0gaWYgb2JqLmdldCgic2NvcGUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJiYXNlQXNzZXRJZCI6IG9iai5nZXQoImJhc2VBc3NldElkIiksCiAgICAgICAgICAgICJiYXNlQXNzZXRSYWlsIjogb2JqLmdldCgiYmFzZUFzc2V0UmFpbCIpLAogICAgICAgICAgICAicXVvdGVBc3NldElkIjogb2JqLmdldCgicXVvdGVBc3NldElkIiksCiAgICAgICAgICAgICJxdW90ZUFzc2V0UmFpbCI6IG9iai5nZXQoInF1b3RlQXNzZXRSYWlsIiksCiAgICAgICAgICAgICJiYXNlQW1vdW50Ijogb2JqLmdldCgiYmFzZUFtb3VudCIpLAogICAgICAgICAgICAic2xpcHBhZ2VCcHMiOiBvYmouZ2V0KCJzbGlwcGFnZUJwcyIpIGlmIG9iai5nZXQoInNsaXBwYWdlQnBzIikgaXMgbm90IE5vbmUgZWxzZSA1MCwKICAgICAgICAgICAgInNldHRsZW1lbnQiOiBEVlBTZXR0bGVtZW50LmZyb21fZGljdChvYmpbInNldHRsZW1lbnQiXSkgaWYgb2JqLmdldCgic2V0dGxlbWVudCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInNpZGUiOiBvYmouZ2V0KCJzaWRlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/create_quote_scope_inner.py b/fireblocks/models/create_quote_scope_inner.py index 43641a64..b4b103e8 100644 --- a/fireblocks/models/create_quote_scope_inner.py +++ b/fireblocks/models/create_quote_scope_inner.py @@ -1,124 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.scope_item import ScopeItem -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -CREATEQUOTESCOPEINNER_ONE_OF_SCHEMAS = ["ScopeItem"] - -class CreateQuoteScopeInner(BaseModel): - """ - CreateQuoteScopeInner - """ - # data type: ScopeItem - oneof_schema_1_validator: Optional[ScopeItem] = None - actual_instance: Optional[Union[ScopeItem]] = None - one_of_schemas: Set[str] = { "ScopeItem" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = CreateQuoteScopeInner.model_construct() - error_messages = [] - match = 0 - # validate data type: ScopeItem - if not isinstance(v, ScopeItem): - error_messages.append(f"Error! Input type `{type(v)}` is not `ScopeItem`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in CreateQuoteScopeInner with oneOf schemas: ScopeItem. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in CreateQuoteScopeInner with oneOf schemas: ScopeItem. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into ScopeItem - try: - instance.actual_instance = ScopeItem.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into CreateQuoteScopeInner with oneOf schemas: ScopeItem. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into CreateQuoteScopeInner with oneOf schemas: ScopeItem. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], ScopeItem]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NvcGVfaXRlbSBpbXBvcnQgU2NvcGVJdGVtCmZyb20gcHlkYW50aWMgaW1wb3J0IFN0cmljdFN0ciwgRmllbGQKZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uLCBMaXN0LCBTZXQsIE9wdGlvbmFsLCBEaWN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IExpdGVyYWwsIFNlbGYKCkNSRUFURVFVT1RFU0NPUEVJTk5FUl9PTkVfT0ZfU0NIRU1BUyA9IFsiU2NvcGVJdGVtIl0KCmNsYXNzIENyZWF0ZVF1b3RlU2NvcGVJbm5lcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDcmVhdGVRdW90ZVNjb3BlSW5uZXIKICAgICIiIgogICAgIyBkYXRhIHR5cGU6IFNjb3BlSXRlbQogICAgb25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yOiBPcHRpb25hbFtTY29wZUl0ZW1dID0gTm9uZQogICAgYWN0dWFsX2luc3RhbmNlOiBPcHRpb25hbFtVbmlvbltTY29wZUl0ZW1dXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgIlNjb3BlSXRlbSIgfQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKSAtPiBOb25lOgogICAgICAgIGlmIGFyZ3M6CiAgICAgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIG9ubHkgMSBpcyBhbGxvd2VkIHRvIHNldCBgYWN0dWFsX2luc3RhbmNlYCIpCiAgICAgICAgICAgIGlmIGt3YXJnczoKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwga2V5d29yZCBhcmd1bWVudHMgY2Fubm90IGJlIHVzZWQuIikKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhhY3R1YWxfaW5zdGFuY2U9YXJnc1swXSkKICAgICAgICBlbHNlOgogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FjdHVhbF9pbnN0YW5jZScpCiAgICBkZWYgYWN0dWFsX2luc3RhbmNlX211c3RfdmFsaWRhdGVfb25lb2YoY2xzLCB2KToKICAgICAgICBpbnN0YW5jZSA9IENyZWF0ZVF1b3RlU2NvcGVJbm5lci5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogU2NvcGVJdGVtCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgU2NvcGVJdGVtKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBTY29wZUl0ZW1gIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIENyZWF0ZVF1b3RlU2NvcGVJbm5lciB3aXRoIG9uZU9mIHNjaGVtYXM6IFNjb3BlSXRlbS4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBDcmVhdGVRdW90ZVNjb3BlSW5uZXIgd2l0aCBvbmVPZiBzY2hlbWFzOiBTY29wZUl0ZW0uIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBVbmlvbltzdHIsIERpY3Rbc3RyLCBBbnldXSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCgogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIFNjb3BlSXRlbQogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gU2NvcGVJdGVtLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQoKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gQ3JlYXRlUXVvdGVTY29wZUlubmVyIHdpdGggb25lT2Ygc2NoZW1hczogU2NvcGVJdGVtLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIENyZWF0ZVF1b3RlU2NvcGVJbm5lciB3aXRoIG9uZU9mIHNjaGVtYXM6IFNjb3BlSXRlbS4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiAibnVsbCIKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2pzb24iKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbik6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKCkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLmFjdHVhbF9pbnN0YW5jZSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBPcHRpb25hbFtVbmlvbltEaWN0W3N0ciwgQW55XSwgU2NvcGVJdGVtXV06CiAgICAgICAgIiIiUmV0dXJucyB0aGUgZGljdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2RpY3QiKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCk6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KCkKICAgICAgICBlbHNlOgogICAgICAgICAgICAjIHByaW1pdGl2ZSB0eXBlCiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZQoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcCgpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/create_signing_key_dto.py b/fireblocks/models/create_signing_key_dto.py index 5950d5c9..309117a6 100644 --- a/fireblocks/models/create_signing_key_dto.py +++ b/fireblocks/models/create_signing_key_dto.py @@ -1,99 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from fireblocks.models.create_signing_key_dto_proof_of_ownership import CreateSigningKeyDtoProofOfOwnership -from typing import Optional, Set -from typing_extensions import Self - -class CreateSigningKeyDto(BaseModel): - """ - CreateSigningKeyDto - """ # noqa: E501 - signing_device_key_id: Annotated[str, Field(strict=True, max_length=256)] = Field(description="The ID, name or label of the key specified on the customer's signing device.", alias="signingDeviceKeyId") - signed_cert_pem: StrictStr = Field(description="The signed certificate that includes the public key PEM of the signing key, signed by a validation key.", alias="signedCertPem") - agent_user_id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field(description="Id of user to which this key belongs", alias="agentUserId") - proof_of_ownership: Optional[CreateSigningKeyDtoProofOfOwnership] = Field(default=None, alias="proofOfOwnership") - __properties: ClassVar[List[str]] = ["signingDeviceKeyId", "signedCertPem", "agentUserId", "proofOfOwnership"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateSigningKeyDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of proof_of_ownership - if self.proof_of_ownership: - _dict['proofOfOwnership'] = self.proof_of_ownership.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateSigningKeyDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "signingDeviceKeyId": obj.get("signingDeviceKeyId"), - "signedCertPem": obj.get("signedCertPem"), - "agentUserId": obj.get("agentUserId"), - "proofOfOwnership": CreateSigningKeyDtoProofOfOwnership.from_dict(obj["proofOfOwnership"]) if obj.get("proofOfOwnership") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfc2lnbmluZ19rZXlfZHRvX3Byb29mX29mX293bmVyc2hpcCBpbXBvcnQgQ3JlYXRlU2lnbmluZ0tleUR0b1Byb29mT2ZPd25lcnNoaXAKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ3JlYXRlU2lnbmluZ0tleUR0byhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDcmVhdGVTaWduaW5nS2V5RHRvCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzaWduaW5nX2RldmljZV9rZXlfaWQ6IEFubm90YXRlZFtzdHIsIEZpZWxkKHN0cmljdD1UcnVlLCBtYXhfbGVuZ3RoPTI1NildID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCwgbmFtZSBvciBsYWJlbCBvZiB0aGUga2V5IHNwZWNpZmllZCBvbiB0aGUgY3VzdG9tZXIncyBzaWduaW5nIGRldmljZS4iLCBhbGlhcz0ic2lnbmluZ0RldmljZUtleUlkIikKICAgIHNpZ25lZF9jZXJ0X3BlbTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBzaWduZWQgY2VydGlmaWNhdGUgdGhhdCBpbmNsdWRlcyB0aGUgcHVibGljIGtleSBQRU0gb2YgdGhlIHNpZ25pbmcga2V5LCBzaWduZWQgYnkgYSB2YWxpZGF0aW9uIGtleS4iLCBhbGlhcz0ic2lnbmVkQ2VydFBlbSIpCiAgICBhZ2VudF91c2VyX2lkOiBBbm5vdGF0ZWRbc3RyLCBGaWVsZChtaW5fbGVuZ3RoPTM2LCBzdHJpY3Q9VHJ1ZSwgbWF4X2xlbmd0aD0zNildID0gRmllbGQoZGVzY3JpcHRpb249IklkIG9mIHVzZXIgdG8gd2hpY2ggdGhpcyBrZXkgYmVsb25ncyIsIGFsaWFzPSJhZ2VudFVzZXJJZCIpCiAgICBwcm9vZl9vZl9vd25lcnNoaXA6IE9wdGlvbmFsW0NyZWF0ZVNpZ25pbmdLZXlEdG9Qcm9vZk9mT3duZXJzaGlwXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InByb29mT2ZPd25lcnNoaXAiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzaWduaW5nRGV2aWNlS2V5SWQiLCAic2lnbmVkQ2VydFBlbSIsICJhZ2VudFVzZXJJZCIsICJwcm9vZk9mT3duZXJzaGlwIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVTaWduaW5nS2V5RHRvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcHJvb2Zfb2Zfb3duZXJzaGlwCiAgICAgICAgaWYgc2VsZi5wcm9vZl9vZl9vd25lcnNoaXA6CiAgICAgICAgICAgIF9kaWN0Wydwcm9vZk9mT3duZXJzaGlwJ10gPSBzZWxmLnByb29mX29mX293bmVyc2hpcC50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVNpZ25pbmdLZXlEdG8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic2lnbmluZ0RldmljZUtleUlkIjogb2JqLmdldCgic2lnbmluZ0RldmljZUtleUlkIiksCiAgICAgICAgICAgICJzaWduZWRDZXJ0UGVtIjogb2JqLmdldCgic2lnbmVkQ2VydFBlbSIpLAogICAgICAgICAgICAiYWdlbnRVc2VySWQiOiBvYmouZ2V0KCJhZ2VudFVzZXJJZCIpLAogICAgICAgICAgICAicHJvb2ZPZk93bmVyc2hpcCI6IENyZWF0ZVNpZ25pbmdLZXlEdG9Qcm9vZk9mT3duZXJzaGlwLmZyb21fZGljdChvYmpbInByb29mT2ZPd25lcnNoaXAiXSkgaWYgb2JqLmdldCgicHJvb2ZPZk93bmVyc2hpcCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/create_signing_key_dto_proof_of_ownership.py b/fireblocks/models/create_signing_key_dto_proof_of_ownership.py index 0a68323f..820baa14 100644 --- a/fireblocks/models/create_signing_key_dto_proof_of_ownership.py +++ b/fireblocks/models/create_signing_key_dto_proof_of_ownership.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class CreateSigningKeyDtoProofOfOwnership(BaseModel): - """ - An object containing proof of ownership for the signing key. - """ # noqa: E501 - message: Annotated[str, Field(min_length=64, strict=True, max_length=2048)] = Field(description="The message to be signed by the key as proof of ownership. 64 to 1024 bytes in hexadecimal format.") - signature: Annotated[str, Field(min_length=64, strict=True, max_length=128)] = Field(description="The signature of the message. 64 bytes in hexadecimal format.") - __properties: ClassVar[List[str]] = ["message", "signature"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateSigningKeyDtoProofOfOwnership from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateSigningKeyDtoProofOfOwnership from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "signature": obj.get("signature") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ3JlYXRlU2lnbmluZ0tleUR0b1Byb29mT2ZPd25lcnNoaXAoQmFzZU1vZGVsKToKICAgICIiIgogICAgQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvb2Ygb2Ygb3duZXJzaGlwIGZvciB0aGUgc2lnbmluZyBrZXkuCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBtZXNzYWdlOiBBbm5vdGF0ZWRbc3RyLCBGaWVsZChtaW5fbGVuZ3RoPTY0LCBzdHJpY3Q9VHJ1ZSwgbWF4X2xlbmd0aD0yMDQ4KV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIG1lc3NhZ2UgdG8gYmUgc2lnbmVkIGJ5IHRoZSBrZXkgYXMgcHJvb2Ygb2Ygb3duZXJzaGlwLiA2NCB0byAxMDI0IGJ5dGVzIGluIGhleGFkZWNpbWFsIGZvcm1hdC4iKQogICAgc2lnbmF0dXJlOiBBbm5vdGF0ZWRbc3RyLCBGaWVsZChtaW5fbGVuZ3RoPTY0LCBzdHJpY3Q9VHJ1ZSwgbWF4X2xlbmd0aD0xMjgpXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgc2lnbmF0dXJlIG9mIHRoZSBtZXNzYWdlLiA2NCBieXRlcyBpbiBoZXhhZGVjaW1hbCBmb3JtYXQuIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibWVzc2FnZSIsICJzaWduYXR1cmUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVNpZ25pbmdLZXlEdG9Qcm9vZk9mT3duZXJzaGlwIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVNpZ25pbmdLZXlEdG9Qcm9vZk9mT3duZXJzaGlwIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm1lc3NhZ2UiOiBvYmouZ2V0KCJtZXNzYWdlIiksCiAgICAgICAgICAgICJzaWduYXR1cmUiOiBvYmouZ2V0KCJzaWduYXR1cmUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/create_tag_request.py b/fireblocks/models/create_tag_request.py index 8a7fa223..58c85012 100644 --- a/fireblocks/models/create_tag_request.py +++ b/fireblocks/models/create_tag_request.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class CreateTagRequest(BaseModel): - """ - CreateTagRequest - """ # noqa: E501 - label: Annotated[str, Field(min_length=2, strict=True, max_length=30)] = Field(description="The tag label") - description: Optional[Annotated[str, Field(strict=True, max_length=250)]] = Field(default=None, description="Description for the tag") - color: Optional[StrictStr] = Field(default=None, description="The tag color in hex format") - is_protected: Optional[StrictBool] = Field(default=False, description="Indication if the tag is protected tag", alias="isProtected") - __properties: ClassVar[List[str]] = ["label", "description", "color", "isProtected"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateTagRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateTagRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "label": obj.get("label"), - "description": obj.get("description"), - "color": obj.get("color"), - "isProtected": obj.get("isProtected") if obj.get("isProtected") is not None else False - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ3JlYXRlVGFnUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDcmVhdGVUYWdSZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBsYWJlbDogQW5ub3RhdGVkW3N0ciwgRmllbGQobWluX2xlbmd0aD0yLCBzdHJpY3Q9VHJ1ZSwgbWF4X2xlbmd0aD0zMCldID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB0YWcgbGFiZWwiKQogICAgZGVzY3JpcHRpb246IE9wdGlvbmFsW0Fubm90YXRlZFtzdHIsIEZpZWxkKHN0cmljdD1UcnVlLCBtYXhfbGVuZ3RoPTI1MCldXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRlc2NyaXB0aW9uIGZvciB0aGUgdGFnIikKICAgIGNvbG9yOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHRhZyBjb2xvciBpbiBoZXggZm9ybWF0IikKICAgIGlzX3Byb3RlY3RlZDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PUZhbHNlLCBkZXNjcmlwdGlvbj0iSW5kaWNhdGlvbiBpZiB0aGUgdGFnIGlzIHByb3RlY3RlZCB0YWciLCBhbGlhcz0iaXNQcm90ZWN0ZWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJsYWJlbCIsICJkZXNjcmlwdGlvbiIsICJjb2xvciIsICJpc1Byb3RlY3RlZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlVGFnUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVUYWdSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImxhYmVsIjogb2JqLmdldCgibGFiZWwiKSwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogb2JqLmdldCgiZGVzY3JpcHRpb24iKSwKICAgICAgICAgICAgImNvbG9yIjogb2JqLmdldCgiY29sb3IiKSwKICAgICAgICAgICAgImlzUHJvdGVjdGVkIjogb2JqLmdldCgiaXNQcm90ZWN0ZWQiKSBpZiBvYmouZ2V0KCJpc1Byb3RlY3RlZCIpIGlzIG5vdCBOb25lIGVsc2UgRmFsc2UKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/create_token_request_dto.py b/fireblocks/models/create_token_request_dto.py index 560de5b2..9ee7a9e6 100644 --- a/fireblocks/models/create_token_request_dto.py +++ b/fireblocks/models/create_token_request_dto.py @@ -1,120 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.create_token_request_dto_create_params import CreateTokenRequestDtoCreateParams -from typing import Optional, Set -from typing_extensions import Self - -class CreateTokenRequestDto(BaseModel): - """ - CreateTokenRequestDto - """ # noqa: E501 - blockchain_id: Optional[StrictStr] = Field(default=None, description="The id of the blockchain the request was initiated on", alias="blockchainId") - asset_id: Optional[StrictStr] = Field(default=None, description="The base asset identifier of the blockchain you want to deploy to", alias="assetId") - vault_account_id: StrictStr = Field(description="The id of the vault account that initiated the request to issue the token", alias="vaultAccountId") - create_params: CreateTokenRequestDtoCreateParams = Field(alias="createParams") - display_name: Optional[StrictStr] = Field(default=None, alias="displayName") - use_gasless: Optional[StrictBool] = Field(default=None, description="Indicates whether the token should be created in a gasless manner, utilizing the ERC-2771 standard. When set to true, the transaction will be relayed by a designated relayer. The workspace must be configured to use Fireblocks gasless relay.", alias="useGasless") - fee: Optional[StrictStr] = Field(default=None, description="Max fee amount for the write function transaction. interchangeable with the 'feeLevel' field") - fee_level: Optional[StrictStr] = Field(default=None, description="Fee level for the write function transaction. interchangeable with the 'fee' field", alias="feeLevel") - tx_note: Optional[StrictStr] = Field(default=None, description="Custom note that describes the transaction at your Fireblocks workspace. This note will be visible in the Fireblocks UI and in the transaction details and not on the blockchain.", alias="txNote") - external_id: Optional[StrictStr] = Field(default=None, description="External id that can be used to identify the transaction in your system. The unique identifier of the transaction outside of Fireblocks with max length of 255 characters", alias="externalId") - __properties: ClassVar[List[str]] = ["blockchainId", "assetId", "vaultAccountId", "createParams", "displayName", "useGasless", "fee", "feeLevel", "txNote", "externalId"] - - @field_validator('fee_level') - def fee_level_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['LOW', 'MEDIUM', 'HIGH']): - raise ValueError("must be one of enum values ('LOW', 'MEDIUM', 'HIGH')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateTokenRequestDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of create_params - if self.create_params: - _dict['createParams'] = self.create_params.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateTokenRequestDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "blockchainId": obj.get("blockchainId"), - "assetId": obj.get("assetId"), - "vaultAccountId": obj.get("vaultAccountId"), - "createParams": CreateTokenRequestDtoCreateParams.from_dict(obj["createParams"]) if obj.get("createParams") is not None else None, - "displayName": obj.get("displayName"), - "useGasless": obj.get("useGasless"), - "fee": obj.get("fee"), - "feeLevel": obj.get("feeLevel"), - "txNote": obj.get("txNote"), - "externalId": obj.get("externalId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3JlYXRlX3Rva2VuX3JlcXVlc3RfZHRvX2NyZWF0ZV9wYXJhbXMgaW1wb3J0IENyZWF0ZVRva2VuUmVxdWVzdER0b0NyZWF0ZVBhcmFtcwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDcmVhdGVUb2tlblJlcXVlc3REdG8oQmFzZU1vZGVsKToKICAgICIiIgogICAgQ3JlYXRlVG9rZW5SZXF1ZXN0RHRvCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBibG9ja2NoYWluX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGlkIG9mIHRoZSBibG9ja2NoYWluIHRoZSByZXF1ZXN0IHdhcyBpbml0aWF0ZWQgb24iLCBhbGlhcz0iYmxvY2tjaGFpbklkIikKICAgIGFzc2V0X2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGJhc2UgYXNzZXQgaWRlbnRpZmllciBvZiB0aGUgYmxvY2tjaGFpbiB5b3Ugd2FudCB0byBkZXBsb3kgdG8iLCBhbGlhcz0iYXNzZXRJZCIpCiAgICB2YXVsdF9hY2NvdW50X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGlkIG9mIHRoZSB2YXVsdCBhY2NvdW50IHRoYXQgaW5pdGlhdGVkIHRoZSByZXF1ZXN0IHRvIGlzc3VlIHRoZSB0b2tlbiIsIGFsaWFzPSJ2YXVsdEFjY291bnRJZCIpCiAgICBjcmVhdGVfcGFyYW1zOiBDcmVhdGVUb2tlblJlcXVlc3REdG9DcmVhdGVQYXJhbXMgPSBGaWVsZChhbGlhcz0iY3JlYXRlUGFyYW1zIikKICAgIGRpc3BsYXlfbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImRpc3BsYXlOYW1lIikKICAgIHVzZV9nYXNsZXNzOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkluZGljYXRlcyB3aGV0aGVyIHRoZSB0b2tlbiBzaG91bGQgYmUgY3JlYXRlZCBpbiBhIGdhc2xlc3MgbWFubmVyLCB1dGlsaXppbmcgdGhlIEVSQy0yNzcxIHN0YW5kYXJkLiBXaGVuIHNldCB0byB0cnVlLCB0aGUgdHJhbnNhY3Rpb24gd2lsbCBiZSByZWxheWVkIGJ5IGEgZGVzaWduYXRlZCByZWxheWVyLiBUaGUgd29ya3NwYWNlIG11c3QgYmUgY29uZmlndXJlZCB0byB1c2UgRmlyZWJsb2NrcyBnYXNsZXNzIHJlbGF5LiIsIGFsaWFzPSJ1c2VHYXNsZXNzIikKICAgIGZlZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik1heCBmZWUgYW1vdW50IGZvciB0aGUgd3JpdGUgZnVuY3Rpb24gdHJhbnNhY3Rpb24uIGludGVyY2hhbmdlYWJsZSB3aXRoIHRoZSAnZmVlTGV2ZWwnIGZpZWxkIikKICAgIGZlZV9sZXZlbDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkZlZSBsZXZlbCBmb3IgdGhlIHdyaXRlIGZ1bmN0aW9uIHRyYW5zYWN0aW9uLiBpbnRlcmNoYW5nZWFibGUgd2l0aCB0aGUgJ2ZlZScgZmllbGQiLCBhbGlhcz0iZmVlTGV2ZWwiKQogICAgdHhfbm90ZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkN1c3RvbSBub3RlIHRoYXQgZGVzY3JpYmVzIHRoZSB0cmFuc2FjdGlvbiBhdCB5b3VyIEZpcmVibG9ja3Mgd29ya3NwYWNlLiBUaGlzIG5vdGUgd2lsbCBiZSB2aXNpYmxlIGluIHRoZSBGaXJlYmxvY2tzIFVJIGFuZCBpbiB0aGUgdHJhbnNhY3Rpb24gZGV0YWlscyBhbmQgbm90IG9uIHRoZSBibG9ja2NoYWluLiIsIGFsaWFzPSJ0eE5vdGUiKQogICAgZXh0ZXJuYWxfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJFeHRlcm5hbCBpZCB0aGF0IGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSB0cmFuc2FjdGlvbiBpbiB5b3VyIHN5c3RlbS4gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSB0cmFuc2FjdGlvbiBvdXRzaWRlIG9mIEZpcmVibG9ja3Mgd2l0aCBtYXggbGVuZ3RoIG9mIDI1NSBjaGFyYWN0ZXJzIiwgYWxpYXM9ImV4dGVybmFsSWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJibG9ja2NoYWluSWQiLCAiYXNzZXRJZCIsICJ2YXVsdEFjY291bnRJZCIsICJjcmVhdGVQYXJhbXMiLCAiZGlzcGxheU5hbWUiLCAidXNlR2FzbGVzcyIsICJmZWUiLCAiZmVlTGV2ZWwiLCAidHhOb3RlIiwgImV4dGVybmFsSWQiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2ZlZV9sZXZlbCcpCiAgICBkZWYgZmVlX2xldmVsX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydMT1cnLCAnTUVESVVNJywgJ0hJR0gnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnTE9XJywgJ01FRElVTScsICdISUdIJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVRva2VuUmVxdWVzdER0byBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGNyZWF0ZV9wYXJhbXMKICAgICAgICBpZiBzZWxmLmNyZWF0ZV9wYXJhbXM6CiAgICAgICAgICAgIF9kaWN0WydjcmVhdGVQYXJhbXMnXSA9IHNlbGYuY3JlYXRlX3BhcmFtcy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVRva2VuUmVxdWVzdER0byBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJibG9ja2NoYWluSWQiOiBvYmouZ2V0KCJibG9ja2NoYWluSWQiKSwKICAgICAgICAgICAgImFzc2V0SWQiOiBvYmouZ2V0KCJhc3NldElkIiksCiAgICAgICAgICAgICJ2YXVsdEFjY291bnRJZCI6IG9iai5nZXQoInZhdWx0QWNjb3VudElkIiksCiAgICAgICAgICAgICJjcmVhdGVQYXJhbXMiOiBDcmVhdGVUb2tlblJlcXVlc3REdG9DcmVhdGVQYXJhbXMuZnJvbV9kaWN0KG9ialsiY3JlYXRlUGFyYW1zIl0pIGlmIG9iai5nZXQoImNyZWF0ZVBhcmFtcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImRpc3BsYXlOYW1lIjogb2JqLmdldCgiZGlzcGxheU5hbWUiKSwKICAgICAgICAgICAgInVzZUdhc2xlc3MiOiBvYmouZ2V0KCJ1c2VHYXNsZXNzIiksCiAgICAgICAgICAgICJmZWUiOiBvYmouZ2V0KCJmZWUiKSwKICAgICAgICAgICAgImZlZUxldmVsIjogb2JqLmdldCgiZmVlTGV2ZWwiKSwKICAgICAgICAgICAgInR4Tm90ZSI6IG9iai5nZXQoInR4Tm90ZSIpLAogICAgICAgICAgICAiZXh0ZXJuYWxJZCI6IG9iai5nZXQoImV4dGVybmFsSWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/create_token_request_dto_create_params.py b/fireblocks/models/create_token_request_dto_create_params.py index 6693c416..77ec029e 100644 --- a/fireblocks/models/create_token_request_dto_create_params.py +++ b/fireblocks/models/create_token_request_dto_create_params.py @@ -1,152 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.evm_token_create_params_dto import EVMTokenCreateParamsDto -from fireblocks.models.solana_simple_create_params import SolanaSimpleCreateParams -from fireblocks.models.stellar_ripple_create_params_dto import StellarRippleCreateParamsDto -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -CREATETOKENREQUESTDTOCREATEPARAMS_ONE_OF_SCHEMAS = ["EVMTokenCreateParamsDto", "SolanaSimpleCreateParams", "StellarRippleCreateParamsDto"] - -class CreateTokenRequestDtoCreateParams(BaseModel): - """ - CreateTokenRequestDtoCreateParams - """ - # data type: EVMTokenCreateParamsDto - oneof_schema_1_validator: Optional[EVMTokenCreateParamsDto] = None - # data type: StellarRippleCreateParamsDto - oneof_schema_2_validator: Optional[StellarRippleCreateParamsDto] = None - # data type: SolanaSimpleCreateParams - oneof_schema_3_validator: Optional[SolanaSimpleCreateParams] = None - actual_instance: Optional[Union[EVMTokenCreateParamsDto, SolanaSimpleCreateParams, StellarRippleCreateParamsDto]] = None - one_of_schemas: Set[str] = { "EVMTokenCreateParamsDto", "SolanaSimpleCreateParams", "StellarRippleCreateParamsDto" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = CreateTokenRequestDtoCreateParams.model_construct() - error_messages = [] - match = 0 - # validate data type: EVMTokenCreateParamsDto - if not isinstance(v, EVMTokenCreateParamsDto): - error_messages.append(f"Error! Input type `{type(v)}` is not `EVMTokenCreateParamsDto`") - else: - match += 1 - # validate data type: StellarRippleCreateParamsDto - if not isinstance(v, StellarRippleCreateParamsDto): - error_messages.append(f"Error! Input type `{type(v)}` is not `StellarRippleCreateParamsDto`") - else: - match += 1 - # validate data type: SolanaSimpleCreateParams - if not isinstance(v, SolanaSimpleCreateParams): - error_messages.append(f"Error! Input type `{type(v)}` is not `SolanaSimpleCreateParams`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in CreateTokenRequestDtoCreateParams with oneOf schemas: EVMTokenCreateParamsDto, SolanaSimpleCreateParams, StellarRippleCreateParamsDto. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in CreateTokenRequestDtoCreateParams with oneOf schemas: EVMTokenCreateParamsDto, SolanaSimpleCreateParams, StellarRippleCreateParamsDto. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into EVMTokenCreateParamsDto - try: - instance.actual_instance = EVMTokenCreateParamsDto.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into StellarRippleCreateParamsDto - try: - instance.actual_instance = StellarRippleCreateParamsDto.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into SolanaSimpleCreateParams - try: - instance.actual_instance = SolanaSimpleCreateParams.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into CreateTokenRequestDtoCreateParams with oneOf schemas: EVMTokenCreateParamsDto, SolanaSimpleCreateParams, StellarRippleCreateParamsDto. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into CreateTokenRequestDtoCreateParams with oneOf schemas: EVMTokenCreateParamsDto, SolanaSimpleCreateParams, StellarRippleCreateParamsDto. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], EVMTokenCreateParamsDto, SolanaSimpleCreateParams, StellarRippleCreateParamsDto]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXZtX3Rva2VuX2NyZWF0ZV9wYXJhbXNfZHRvIGltcG9ydCBFVk1Ub2tlbkNyZWF0ZVBhcmFtc0R0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvbGFuYV9zaW1wbGVfY3JlYXRlX3BhcmFtcyBpbXBvcnQgU29sYW5hU2ltcGxlQ3JlYXRlUGFyYW1zCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3RlbGxhcl9yaXBwbGVfY3JlYXRlX3BhcmFtc19kdG8gaW1wb3J0IFN0ZWxsYXJSaXBwbGVDcmVhdGVQYXJhbXNEdG8KZnJvbSBweWRhbnRpYyBpbXBvcnQgU3RyaWN0U3RyLCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgVW5pb24sIExpc3QsIFNldCwgT3B0aW9uYWwsIERpY3QKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgTGl0ZXJhbCwgU2VsZgoKQ1JFQVRFVE9LRU5SRVFVRVNURFRPQ1JFQVRFUEFSQU1TX09ORV9PRl9TQ0hFTUFTID0gWyJFVk1Ub2tlbkNyZWF0ZVBhcmFtc0R0byIsICJTb2xhbmFTaW1wbGVDcmVhdGVQYXJhbXMiLCAiU3RlbGxhclJpcHBsZUNyZWF0ZVBhcmFtc0R0byJdCgpjbGFzcyBDcmVhdGVUb2tlblJlcXVlc3REdG9DcmVhdGVQYXJhbXMoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ3JlYXRlVG9rZW5SZXF1ZXN0RHRvQ3JlYXRlUGFyYW1zCiAgICAiIiIKICAgICMgZGF0YSB0eXBlOiBFVk1Ub2tlbkNyZWF0ZVBhcmFtc0R0bwogICAgb25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yOiBPcHRpb25hbFtFVk1Ub2tlbkNyZWF0ZVBhcmFtc0R0b10gPSBOb25lCiAgICAjIGRhdGEgdHlwZTogU3RlbGxhclJpcHBsZUNyZWF0ZVBhcmFtc0R0bwogICAgb25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yOiBPcHRpb25hbFtTdGVsbGFyUmlwcGxlQ3JlYXRlUGFyYW1zRHRvXSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBTb2xhbmFTaW1wbGVDcmVhdGVQYXJhbXMKICAgIG9uZW9mX3NjaGVtYV8zX3ZhbGlkYXRvcjogT3B0aW9uYWxbU29sYW5hU2ltcGxlQ3JlYXRlUGFyYW1zXSA9IE5vbmUKICAgIGFjdHVhbF9pbnN0YW5jZTogT3B0aW9uYWxbVW5pb25bRVZNVG9rZW5DcmVhdGVQYXJhbXNEdG8sIFNvbGFuYVNpbXBsZUNyZWF0ZVBhcmFtcywgU3RlbGxhclJpcHBsZUNyZWF0ZVBhcmFtc0R0b11dID0gTm9uZQogICAgb25lX29mX3NjaGVtYXM6IFNldFtzdHJdID0geyAiRVZNVG9rZW5DcmVhdGVQYXJhbXNEdG8iLCAiU29sYW5hU2ltcGxlQ3JlYXRlUGFyYW1zIiwgIlN0ZWxsYXJSaXBwbGVDcmVhdGVQYXJhbXNEdG8iIH0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncykgLT4gTm9uZToKICAgICAgICBpZiBhcmdzOgogICAgICAgICAgICBpZiBsZW4oYXJncykgPiAxOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBvbmx5IDEgaXMgYWxsb3dlZCB0byBzZXQgYGFjdHVhbF9pbnN0YW5jZWAiKQogICAgICAgICAgICBpZiBrd2FyZ3M6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIGtleXdvcmQgYXJndW1lbnRzIGNhbm5vdCBiZSB1c2VkLiIpCiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oYWN0dWFsX2luc3RhbmNlPWFyZ3NbMF0pCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhY3R1YWxfaW5zdGFuY2UnKQogICAgZGVmIGFjdHVhbF9pbnN0YW5jZV9tdXN0X3ZhbGlkYXRlX29uZW9mKGNscywgdik6CiAgICAgICAgaW5zdGFuY2UgPSBDcmVhdGVUb2tlblJlcXVlc3REdG9DcmVhdGVQYXJhbXMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IEVWTVRva2VuQ3JlYXRlUGFyYW1zRHRvCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgRVZNVG9rZW5DcmVhdGVQYXJhbXNEdG8pOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYEVWTVRva2VuQ3JlYXRlUGFyYW1zRHRvYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBTdGVsbGFyUmlwcGxlQ3JlYXRlUGFyYW1zRHRvCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgU3RlbGxhclJpcHBsZUNyZWF0ZVBhcmFtc0R0byk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgU3RlbGxhclJpcHBsZUNyZWF0ZVBhcmFtc0R0b2AiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogU29sYW5hU2ltcGxlQ3JlYXRlUGFyYW1zCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgU29sYW5hU2ltcGxlQ3JlYXRlUGFyYW1zKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBTb2xhbmFTaW1wbGVDcmVhdGVQYXJhbXNgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIENyZWF0ZVRva2VuUmVxdWVzdER0b0NyZWF0ZVBhcmFtcyB3aXRoIG9uZU9mIHNjaGVtYXM6IEVWTVRva2VuQ3JlYXRlUGFyYW1zRHRvLCBTb2xhbmFTaW1wbGVDcmVhdGVQYXJhbXMsIFN0ZWxsYXJSaXBwbGVDcmVhdGVQYXJhbXNEdG8uIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gQ3JlYXRlVG9rZW5SZXF1ZXN0RHRvQ3JlYXRlUGFyYW1zIHdpdGggb25lT2Ygc2NoZW1hczogRVZNVG9rZW5DcmVhdGVQYXJhbXNEdG8sIFNvbGFuYVNpbXBsZUNyZWF0ZVBhcmFtcywgU3RlbGxhclJpcHBsZUNyZWF0ZVBhcmFtc0R0by4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIHYKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IFVuaW9uW3N0ciwgRGljdFtzdHIsIEFueV1dKSAtPiBTZWxmOgogICAgICAgIHJldHVybiBjbHMuZnJvbV9qc29uKGpzb24uZHVtcHMob2JqKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIlJldHVybnMgdGhlIG9iamVjdCByZXByZXNlbnRlZCBieSB0aGUganNvbiBzdHJpbmciIiIKICAgICAgICBpbnN0YW5jZSA9IGNscy5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gRVZNVG9rZW5DcmVhdGVQYXJhbXNEdG8KICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IEVWTVRva2VuQ3JlYXRlUGFyYW1zRHRvLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIFN0ZWxsYXJSaXBwbGVDcmVhdGVQYXJhbXNEdG8KICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IFN0ZWxsYXJSaXBwbGVDcmVhdGVQYXJhbXNEdG8uZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gU29sYW5hU2ltcGxlQ3JlYXRlUGFyYW1zCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBTb2xhbmFTaW1wbGVDcmVhdGVQYXJhbXMuZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCgogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBDcmVhdGVUb2tlblJlcXVlc3REdG9DcmVhdGVQYXJhbXMgd2l0aCBvbmVPZiBzY2hlbWFzOiBFVk1Ub2tlbkNyZWF0ZVBhcmFtc0R0bywgU29sYW5hU2ltcGxlQ3JlYXRlUGFyYW1zLCBTdGVsbGFyUmlwcGxlQ3JlYXRlUGFyYW1zRHRvLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIENyZWF0ZVRva2VuUmVxdWVzdER0b0NyZWF0ZVBhcmFtcyB3aXRoIG9uZU9mIHNjaGVtYXM6IEVWTVRva2VuQ3JlYXRlUGFyYW1zRHRvLCBTb2xhbmFTaW1wbGVDcmVhdGVQYXJhbXMsIFN0ZWxsYXJSaXBwbGVDcmVhdGVQYXJhbXNEdG8uIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gIm51bGwiCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19qc29uIikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24pOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbigpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi5hY3R1YWxfaW5zdGFuY2UpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gT3B0aW9uYWxbVW5pb25bRGljdFtzdHIsIEFueV0sIEVWTVRva2VuQ3JlYXRlUGFyYW1zRHRvLCBTb2xhbmFTaW1wbGVDcmVhdGVQYXJhbXMsIFN0ZWxsYXJSaXBwbGVDcmVhdGVQYXJhbXNEdG9dXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgcHJpbWl0aXZlIHR5cGUKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/create_transaction_response.py b/fireblocks/models/create_transaction_response.py index b624c580..09bee914 100644 --- a/fireblocks/models/create_transaction_response.py +++ b/fireblocks/models/create_transaction_response.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.system_message_info import SystemMessageInfo -from typing import Optional, Set -from typing_extensions import Self - -class CreateTransactionResponse(BaseModel): - """ - CreateTransactionResponse - """ # noqa: E501 - id: Optional[StrictStr] = Field(default=None, description="The ID of the transaction.") - status: Optional[StrictStr] = Field(default=None, description="The primary status of the transaction. For details, see [Primary transaction statuses.] (https://developers.fireblocks.com/reference/primary-transaction-statuses)") - system_messages: Optional[List[SystemMessageInfo]] = Field(default=None, alias="systemMessages") - __properties: ClassVar[List[str]] = ["id", "status", "systemMessages"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateTransactionResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in system_messages (list) - _items = [] - if self.system_messages: - for _item_system_messages in self.system_messages: - if _item_system_messages: - _items.append(_item_system_messages.to_dict()) - _dict['systemMessages'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateTransactionResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "status": obj.get("status"), - "systemMessages": [SystemMessageInfo.from_dict(_item) for _item in obj["systemMessages"]] if obj.get("systemMessages") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN5c3RlbV9tZXNzYWdlX2luZm8gaW1wb3J0IFN5c3RlbU1lc3NhZ2VJbmZvCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENyZWF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ3JlYXRlVHJhbnNhY3Rpb25SZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIHRyYW5zYWN0aW9uLiIpCiAgICBzdGF0dXM6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgcHJpbWFyeSBzdGF0dXMgb2YgdGhlIHRyYW5zYWN0aW9uLiBGb3IgZGV0YWlscywgc2VlIFtQcmltYXJ5IHRyYW5zYWN0aW9uIHN0YXR1c2VzLl0gKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9yZWZlcmVuY2UvcHJpbWFyeS10cmFuc2FjdGlvbi1zdGF0dXNlcykiKQogICAgc3lzdGVtX21lc3NhZ2VzOiBPcHRpb25hbFtMaXN0W1N5c3RlbU1lc3NhZ2VJbmZvXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJzeXN0ZW1NZXNzYWdlcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgInN0YXR1cyIsICJzeXN0ZW1NZXNzYWdlcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlVHJhbnNhY3Rpb25SZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBzeXN0ZW1fbWVzc2FnZXMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLnN5c3RlbV9tZXNzYWdlczoKICAgICAgICAgICAgZm9yIF9pdGVtX3N5c3RlbV9tZXNzYWdlcyBpbiBzZWxmLnN5c3RlbV9tZXNzYWdlczoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX3N5c3RlbV9tZXNzYWdlczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX3N5c3RlbV9tZXNzYWdlcy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydzeXN0ZW1NZXNzYWdlcyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVUcmFuc2FjdGlvblJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAic3lzdGVtTWVzc2FnZXMiOiBbU3lzdGVtTWVzc2FnZUluZm8uZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJzeXN0ZW1NZXNzYWdlcyJdXSBpZiBvYmouZ2V0KCJzeXN0ZW1NZXNzYWdlcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/create_transfer_config_operation_request.py b/fireblocks/models/create_transfer_config_operation_request.py index f390bebf..94069305 100644 --- a/fireblocks/models/create_transfer_config_operation_request.py +++ b/fireblocks/models/create_transfer_config_operation_request.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List -from fireblocks.models.transfer_operation_config_params import TransferOperationConfigParams -from fireblocks.models.transfer_operation_type import TransferOperationType -from typing import Optional, Set -from typing_extensions import Self - -class CreateTransferConfigOperationRequest(BaseModel): - """ - CreateTransferConfigOperationRequest - """ # noqa: E501 - type: TransferOperationType - params: TransferOperationConfigParams - __properties: ClassVar[List[str]] = ["type", "params"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateTransferConfigOperationRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of params - if self.params: - _dict['params'] = self.params.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateTransferConfigOperationRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "params": TransferOperationConfigParams.from_dict(obj["params"]) if obj.get("params") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMgaW1wb3J0IFRyYW5zZmVyT3BlcmF0aW9uQ29uZmlnUGFyYW1zCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX3R5cGUgaW1wb3J0IFRyYW5zZmVyT3BlcmF0aW9uVHlwZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDcmVhdGVUcmFuc2ZlckNvbmZpZ09wZXJhdGlvblJlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ3JlYXRlVHJhbnNmZXJDb25maWdPcGVyYXRpb25SZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBUcmFuc2Zlck9wZXJhdGlvblR5cGUKICAgIHBhcmFtczogVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidHlwZSIsICJwYXJhbXMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHBhcmFtcwogICAgICAgIGlmIHNlbGYucGFyYW1zOgogICAgICAgICAgICBfZGljdFsncGFyYW1zJ10gPSBzZWxmLnBhcmFtcy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAicGFyYW1zIjogVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMuZnJvbV9kaWN0KG9ialsicGFyYW1zIl0pIGlmIG9iai5nZXQoInBhcmFtcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/create_user_group_response.py b/fireblocks/models/create_user_group_response.py index 9b664eb8..ab8cef6c 100644 --- a/fireblocks/models/create_user_group_response.py +++ b/fireblocks/models/create_user_group_response.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class CreateUserGroupResponse(BaseModel): - """ - CreateUserGroupResponse - """ # noqa: E501 - id: Optional[StrictStr] = None - name: Optional[StrictStr] = None - member_ids: Optional[List[StrictStr]] = Field(default=None, alias="memberIds") - status: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["id", "name", "memberIds", "status"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateUserGroupResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateUserGroupResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name"), - "memberIds": obj.get("memberIds"), - "status": obj.get("status") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDcmVhdGVVc2VyR3JvdXBSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDcmVhdGVVc2VyR3JvdXBSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBuYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgbWVtYmVyX2lkczogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im1lbWJlcklkcyIpCiAgICBzdGF0dXM6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgIm5hbWUiLCAibWVtYmVySWRzIiwgInN0YXR1cyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlVXNlckdyb3VwUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlVXNlckdyb3VwUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKSwKICAgICAgICAgICAgIm1lbWJlcklkcyI6IG9iai5nZXQoIm1lbWJlcklkcyIpLAogICAgICAgICAgICAic3RhdHVzIjogb2JqLmdldCgic3RhdHVzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/create_validation_key_dto.py b/fireblocks/models/create_validation_key_dto.py index ae1d86ba..02bcf75a 100644 --- a/fireblocks/models/create_validation_key_dto.py +++ b/fireblocks/models/create_validation_key_dto.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class CreateValidationKeyDto(BaseModel): - """ - CreateValidationKeyDto - """ # noqa: E501 - public_key_pem: StrictStr = Field(description="The PEM encoded public key of the validation key being added", alias="publicKeyPem") - days_till_expired: Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]] = Field(description="The number of days from the date the validation key was added until it expires", alias="daysTillExpired") - __properties: ClassVar[List[str]] = ["publicKeyPem", "daysTillExpired"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateValidationKeyDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateValidationKeyDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "publicKeyPem": obj.get("publicKeyPem"), - "daysTillExpired": obj.get("daysTillExpired") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ3JlYXRlVmFsaWRhdGlvbktleUR0byhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDcmVhdGVWYWxpZGF0aW9uS2V5RHRvCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBwdWJsaWNfa2V5X3BlbTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBQRU0gZW5jb2RlZCBwdWJsaWMga2V5IG9mIHRoZSB2YWxpZGF0aW9uIGtleSBiZWluZyBhZGRlZCIsIGFsaWFzPSJwdWJsaWNLZXlQZW0iKQogICAgZGF5c190aWxsX2V4cGlyZWQ6IFVuaW9uW0Fubm90YXRlZFtmbG9hdCwgRmllbGQoc3RyaWN0PVRydWUsIGdlPTEpXSwgQW5ub3RhdGVkW2ludCwgRmllbGQoc3RyaWN0PVRydWUsIGdlPTEpXV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIG51bWJlciBvZiBkYXlzIGZyb20gdGhlIGRhdGUgdGhlIHZhbGlkYXRpb24ga2V5IHdhcyBhZGRlZCB1bnRpbCBpdCBleHBpcmVzIiwgYWxpYXM9ImRheXNUaWxsRXhwaXJlZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInB1YmxpY0tleVBlbSIsICJkYXlzVGlsbEV4cGlyZWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVZhbGlkYXRpb25LZXlEdG8gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlVmFsaWRhdGlvbktleUR0byBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJwdWJsaWNLZXlQZW0iOiBvYmouZ2V0KCJwdWJsaWNLZXlQZW0iKSwKICAgICAgICAgICAgImRheXNUaWxsRXhwaXJlZCI6IG9iai5nZXQoImRheXNUaWxsRXhwaXJlZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/create_validation_key_response_dto.py b/fireblocks/models/create_validation_key_response_dto.py index e5a95fc6..a340a6b5 100644 --- a/fireblocks/models/create_validation_key_response_dto.py +++ b/fireblocks/models/create_validation_key_response_dto.py @@ -1,99 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from typing_extensions import Annotated -from fireblocks.models.validation_key_dto import ValidationKeyDto -from typing import Optional, Set -from typing_extensions import Self - -class CreateValidationKeyResponseDto(BaseModel): - """ - CreateValidationKeyResponseDto - """ # noqa: E501 - validation_key: ValidationKeyDto = Field(description="Created validation key", alias="validationKey") - admins: List[StrictStr] = Field(description="Admins who have to approve the validation key addition") - approval_threshold: Union[Annotated[float, Field(strict=True, ge=0)], Annotated[int, Field(strict=True, ge=0)]] = Field(description="Minimal number of approvers required. 0 for all", alias="approvalThreshold") - request_id: Union[StrictFloat, StrictInt] = Field(description="Approval request id. Can be cancelled", alias="requestId") - __properties: ClassVar[List[str]] = ["validationKey", "admins", "approvalThreshold", "requestId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateValidationKeyResponseDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of validation_key - if self.validation_key: - _dict['validationKey'] = self.validation_key.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateValidationKeyResponseDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "validationKey": ValidationKeyDto.from_dict(obj["validationKey"]) if obj.get("validationKey") is not None else None, - "admins": obj.get("admins"), - "approvalThreshold": obj.get("approvalThreshold"), - "requestId": obj.get("requestId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YWxpZGF0aW9uX2tleV9kdG8gaW1wb3J0IFZhbGlkYXRpb25LZXlEdG8KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ3JlYXRlVmFsaWRhdGlvbktleVJlc3BvbnNlRHRvKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENyZWF0ZVZhbGlkYXRpb25LZXlSZXNwb25zZUR0bwogICAgIiIiICMgbm9xYTogRTUwMQogICAgdmFsaWRhdGlvbl9rZXk6IFZhbGlkYXRpb25LZXlEdG8gPSBGaWVsZChkZXNjcmlwdGlvbj0iQ3JlYXRlZCB2YWxpZGF0aW9uIGtleSIsIGFsaWFzPSJ2YWxpZGF0aW9uS2V5IikKICAgIGFkbWluczogTGlzdFtTdHJpY3RTdHJdID0gRmllbGQoZGVzY3JpcHRpb249IkFkbWlucyB3aG8gaGF2ZSB0byBhcHByb3ZlIHRoZSB2YWxpZGF0aW9uIGtleSBhZGRpdGlvbiIpCiAgICBhcHByb3ZhbF90aHJlc2hvbGQ6IFVuaW9uW0Fubm90YXRlZFtmbG9hdCwgRmllbGQoc3RyaWN0PVRydWUsIGdlPTApXSwgQW5ub3RhdGVkW2ludCwgRmllbGQoc3RyaWN0PVRydWUsIGdlPTApXV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iTWluaW1hbCBudW1iZXIgb2YgYXBwcm92ZXJzIHJlcXVpcmVkLiAwIGZvciBhbGwiLCBhbGlhcz0iYXBwcm92YWxUaHJlc2hvbGQiKQogICAgcmVxdWVzdF9pZDogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iQXBwcm92YWwgcmVxdWVzdCBpZC4gQ2FuIGJlIGNhbmNlbGxlZCIsIGFsaWFzPSJyZXF1ZXN0SWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ2YWxpZGF0aW9uS2V5IiwgImFkbWlucyIsICJhcHByb3ZhbFRocmVzaG9sZCIsICJyZXF1ZXN0SWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVZhbGlkYXRpb25LZXlSZXNwb25zZUR0byBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHZhbGlkYXRpb25fa2V5CiAgICAgICAgaWYgc2VsZi52YWxpZGF0aW9uX2tleToKICAgICAgICAgICAgX2RpY3RbJ3ZhbGlkYXRpb25LZXknXSA9IHNlbGYudmFsaWRhdGlvbl9rZXkudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidmFsaWRhdGlvbktleSI6IFZhbGlkYXRpb25LZXlEdG8uZnJvbV9kaWN0KG9ialsidmFsaWRhdGlvbktleSJdKSBpZiBvYmouZ2V0KCJ2YWxpZGF0aW9uS2V5IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiYWRtaW5zIjogb2JqLmdldCgiYWRtaW5zIiksCiAgICAgICAgICAgICJhcHByb3ZhbFRocmVzaG9sZCI6IG9iai5nZXQoImFwcHJvdmFsVGhyZXNob2xkIiksCiAgICAgICAgICAgICJyZXF1ZXN0SWQiOiBvYmouZ2V0KCJyZXF1ZXN0SWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/create_vault_account_connection_request.py b/fireblocks/models/create_vault_account_connection_request.py index 3df33025..947d109c 100644 --- a/fireblocks/models/create_vault_account_connection_request.py +++ b/fireblocks/models/create_vault_account_connection_request.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class CreateVaultAccountConnectionRequest(BaseModel): - """ - CreateVaultAccountConnectionRequest - """ # noqa: E501 - vault_account_id: Union[StrictFloat, StrictInt] = Field(description="The ID of the vault to connect to the dApp.", alias="vaultAccountId") - fee_level: StrictStr = Field(description="The default fee level. Valid values are `MEDIUM` and `HIGH`.", alias="feeLevel") - uri: StrictStr = Field(description="The WalletConnect uri provided by the dapp.") - chain_ids: Optional[List[StrictStr]] = Field(default=None, description="The IDs of the blockchain networks used in the Web3 connection (Currently required in V1 connections only).", alias="chainIds") - __properties: ClassVar[List[str]] = ["vaultAccountId", "feeLevel", "uri", "chainIds"] - - @field_validator('fee_level') - def fee_level_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['MEDIUM', 'HIGH']): - raise ValueError("must be one of enum values ('MEDIUM', 'HIGH')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateVaultAccountConnectionRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateVaultAccountConnectionRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "vaultAccountId": obj.get("vaultAccountId"), - "feeLevel": obj.get("feeLevel"), - "uri": obj.get("uri"), - "chainIds": obj.get("chainIds") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDcmVhdGVWYXVsdEFjY291bnRDb25uZWN0aW9uUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDcmVhdGVWYXVsdEFjY291bnRDb25uZWN0aW9uUmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgdmF1bHRfYWNjb3VudF9pZDogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB2YXVsdCB0byBjb25uZWN0IHRvIHRoZSBkQXBwLiIsIGFsaWFzPSJ2YXVsdEFjY291bnRJZCIpCiAgICBmZWVfbGV2ZWw6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGVmYXVsdCBmZWUgbGV2ZWwuIFZhbGlkIHZhbHVlcyBhcmUgYE1FRElVTWAgYW5kIGBISUdIYC4iLCBhbGlhcz0iZmVlTGV2ZWwiKQogICAgdXJpOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIFdhbGxldENvbm5lY3QgdXJpIHByb3ZpZGVkIGJ5IHRoZSBkYXBwLiIpCiAgICBjaGFpbl9pZHM6IE9wdGlvbmFsW0xpc3RbU3RyaWN0U3RyXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSURzIG9mIHRoZSBibG9ja2NoYWluIG5ldHdvcmtzIHVzZWQgaW4gdGhlIFdlYjMgY29ubmVjdGlvbiAoQ3VycmVudGx5IHJlcXVpcmVkIGluIFYxIGNvbm5lY3Rpb25zIG9ubHkpLiIsIGFsaWFzPSJjaGFpbklkcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInZhdWx0QWNjb3VudElkIiwgImZlZUxldmVsIiwgInVyaSIsICJjaGFpbklkcyJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignZmVlX2xldmVsJykKICAgIGRlZiBmZWVfbGV2ZWxfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnTUVESVVNJywgJ0hJR0gnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnTUVESVVNJywgJ0hJR0gnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlVmF1bHRBY2NvdW50Q29ubmVjdGlvblJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlVmF1bHRBY2NvdW50Q29ubmVjdGlvblJlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidmF1bHRBY2NvdW50SWQiOiBvYmouZ2V0KCJ2YXVsdEFjY291bnRJZCIpLAogICAgICAgICAgICAiZmVlTGV2ZWwiOiBvYmouZ2V0KCJmZWVMZXZlbCIpLAogICAgICAgICAgICAidXJpIjogb2JqLmdldCgidXJpIiksCiAgICAgICAgICAgICJjaGFpbklkcyI6IG9iai5nZXQoImNoYWluSWRzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/create_vault_account_request.py b/fireblocks/models/create_vault_account_request.py index 915d2ace..fccfcd76 100644 --- a/fireblocks/models/create_vault_account_request.py +++ b/fireblocks/models/create_vault_account_request.py @@ -1,108 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class CreateVaultAccountRequest(BaseModel): - """ - CreateVaultAccountRequest - """ # noqa: E501 - name: Optional[StrictStr] = Field(default=None, description="Account Name") - hidden_on_ui: Optional[StrictBool] = Field(default=None, description="Optional - if true, the created account and all related transactions will not be shown on Fireblocks console", alias="hiddenOnUI") - customer_ref_id: Optional[StrictStr] = Field(default=None, description="Optional - Sets a customer reference ID", alias="customerRefId") - auto_fuel: Optional[StrictBool] = Field(default=None, description="Optional - Sets the autoFuel property of the vault account", alias="autoFuel") - vault_type: Optional[StrictStr] = Field(default='MPC', description="Type of vault account. The default type will be set to MPC.
If the workspace does not support the selected type, it will return an error.", alias="vaultType") - auto_assign: Optional[StrictBool] = Field(default=False, description="Applicable only when the vault account type is KEY_LINK. For MPC, this parameter will be ignored.
If set to true and there are available keys, random keys will be assigned to the newly created vault account.
If set to true and there are no available keys to be assigned, it will return an error.
If set to false, the vault account will be created without any keys.", alias="autoAssign") - __properties: ClassVar[List[str]] = ["name", "hiddenOnUI", "customerRefId", "autoFuel", "vaultType", "autoAssign"] - - @field_validator('vault_type') - def vault_type_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['MPC', 'KEY_LINK']): - raise ValueError("must be one of enum values ('MPC', 'KEY_LINK')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateVaultAccountRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateVaultAccountRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name"), - "hiddenOnUI": obj.get("hiddenOnUI"), - "customerRefId": obj.get("customerRefId"), - "autoFuel": obj.get("autoFuel"), - "vaultType": obj.get("vaultType") if obj.get("vaultType") is not None else 'MPC', - "autoAssign": obj.get("autoAssign") if obj.get("autoAssign") is not None else False - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENyZWF0ZVZhdWx0QWNjb3VudFJlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ3JlYXRlVmF1bHRBY2NvdW50UmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFjY291bnQgTmFtZSIpCiAgICBoaWRkZW5fb25fdWk6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iT3B0aW9uYWwgLSBpZiB0cnVlLCB0aGUgY3JlYXRlZCBhY2NvdW50IGFuZCBhbGwgcmVsYXRlZCB0cmFuc2FjdGlvbnMgd2lsbCBub3QgYmUgc2hvd24gb24gRmlyZWJsb2NrcyBjb25zb2xlIiwgYWxpYXM9ImhpZGRlbk9uVUkiKQogICAgY3VzdG9tZXJfcmVmX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iT3B0aW9uYWwgLSBTZXRzIGEgY3VzdG9tZXIgcmVmZXJlbmNlIElEIiwgYWxpYXM9ImN1c3RvbWVyUmVmSWQiKQogICAgYXV0b19mdWVsOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik9wdGlvbmFsIC0gU2V0cyB0aGUgYXV0b0Z1ZWwgcHJvcGVydHkgb2YgdGhlIHZhdWx0IGFjY291bnQiLCBhbGlhcz0iYXV0b0Z1ZWwiKQogICAgdmF1bHRfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9J01QQycsIGRlc2NyaXB0aW9uPSJUeXBlIG9mIHZhdWx0IGFjY291bnQuIFRoZSBkZWZhdWx0IHR5cGUgd2lsbCBiZSBzZXQgdG8gTVBDLjxici8+ICBJZiB0aGUgd29ya3NwYWNlIGRvZXMgbm90IHN1cHBvcnQgdGhlIHNlbGVjdGVkIHR5cGUsIGl0IHdpbGwgcmV0dXJuIGFuIGVycm9yLiIsIGFsaWFzPSJ2YXVsdFR5cGUiKQogICAgYXV0b19hc3NpZ246IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1GYWxzZSwgZGVzY3JpcHRpb249IkFwcGxpY2FibGUgb25seSB3aGVuIHRoZSB2YXVsdCBhY2NvdW50IHR5cGUgaXMgS0VZX0xJTksuIEZvciBNUEMsIHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgaWdub3JlZC48YnIvPiBJZiBzZXQgdG8gdHJ1ZSBhbmQgdGhlcmUgYXJlIGF2YWlsYWJsZSBrZXlzLCByYW5kb20ga2V5cyB3aWxsIGJlIGFzc2lnbmVkIHRvIHRoZSBuZXdseSBjcmVhdGVkIHZhdWx0IGFjY291bnQuPGJyLz4gSWYgc2V0IHRvIHRydWUgYW5kIHRoZXJlIGFyZSBubyBhdmFpbGFibGUga2V5cyB0byBiZSBhc3NpZ25lZCwgaXQgd2lsbCByZXR1cm4gYW4gZXJyb3IuPGJyLz4gSWYgc2V0IHRvIGZhbHNlLCB0aGUgdmF1bHQgYWNjb3VudCB3aWxsIGJlIGNyZWF0ZWQgd2l0aG91dCBhbnkga2V5cy4iLCBhbGlhcz0iYXV0b0Fzc2lnbiIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm5hbWUiLCAiaGlkZGVuT25VSSIsICJjdXN0b21lclJlZklkIiwgImF1dG9GdWVsIiwgInZhdWx0VHlwZSIsICJhdXRvQXNzaWduIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCd2YXVsdF90eXBlJykKICAgIGRlZiB2YXVsdF90eXBlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydNUEMnLCAnS0VZX0xJTksnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnTVBDJywgJ0tFWV9MSU5LJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVZhdWx0QWNjb3VudFJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlVmF1bHRBY2NvdW50UmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAiaGlkZGVuT25VSSI6IG9iai5nZXQoImhpZGRlbk9uVUkiKSwKICAgICAgICAgICAgImN1c3RvbWVyUmVmSWQiOiBvYmouZ2V0KCJjdXN0b21lclJlZklkIiksCiAgICAgICAgICAgICJhdXRvRnVlbCI6IG9iai5nZXQoImF1dG9GdWVsIiksCiAgICAgICAgICAgICJ2YXVsdFR5cGUiOiBvYmouZ2V0KCJ2YXVsdFR5cGUiKSBpZiBvYmouZ2V0KCJ2YXVsdFR5cGUiKSBpcyBub3QgTm9uZSBlbHNlICdNUEMnLAogICAgICAgICAgICAiYXV0b0Fzc2lnbiI6IG9iai5nZXQoImF1dG9Bc3NpZ24iKSBpZiBvYmouZ2V0KCJhdXRvQXNzaWduIikgaXMgbm90IE5vbmUgZWxzZSBGYWxzZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/create_vault_asset_response.py b/fireblocks/models/create_vault_asset_response.py index 46a85e6e..a31cd383 100644 --- a/fireblocks/models/create_vault_asset_response.py +++ b/fireblocks/models/create_vault_asset_response.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class CreateVaultAssetResponse(BaseModel): - """ - CreateVaultAssetResponse - """ # noqa: E501 - id: Optional[StrictStr] = None - address: Optional[StrictStr] = None - legacy_address: Optional[StrictStr] = Field(default=None, alias="legacyAddress") - enterprise_address: Optional[StrictStr] = Field(default=None, alias="enterpriseAddress") - tag: Optional[StrictStr] = None - eos_account_name: Optional[StrictStr] = Field(default=None, alias="eosAccountName") - status: Optional[StrictStr] = None - activation_tx_id: Optional[StrictStr] = Field(default=None, alias="activationTxId") - __properties: ClassVar[List[str]] = ["id", "address", "legacyAddress", "enterpriseAddress", "tag", "eosAccountName", "status", "activationTxId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateVaultAssetResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateVaultAssetResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "address": obj.get("address"), - "legacyAddress": obj.get("legacyAddress"), - "enterpriseAddress": obj.get("enterpriseAddress"), - "tag": obj.get("tag"), - "eosAccountName": obj.get("eosAccountName"), - "status": obj.get("status"), - "activationTxId": obj.get("activationTxId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDcmVhdGVWYXVsdEFzc2V0UmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ3JlYXRlVmF1bHRBc3NldFJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIGFkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBsZWdhY3lfYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImxlZ2FjeUFkZHJlc3MiKQogICAgZW50ZXJwcmlzZV9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZW50ZXJwcmlzZUFkZHJlc3MiKQogICAgdGFnOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgZW9zX2FjY291bnRfbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImVvc0FjY291bnROYW1lIikKICAgIHN0YXR1czogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIGFjdGl2YXRpb25fdHhfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJhY3RpdmF0aW9uVHhJZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgImFkZHJlc3MiLCAibGVnYWN5QWRkcmVzcyIsICJlbnRlcnByaXNlQWRkcmVzcyIsICJ0YWciLCAiZW9zQWNjb3VudE5hbWUiLCAic3RhdHVzIiwgImFjdGl2YXRpb25UeElkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVWYXVsdEFzc2V0UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlVmF1bHRBc3NldFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgImFkZHJlc3MiOiBvYmouZ2V0KCJhZGRyZXNzIiksCiAgICAgICAgICAgICJsZWdhY3lBZGRyZXNzIjogb2JqLmdldCgibGVnYWN5QWRkcmVzcyIpLAogICAgICAgICAgICAiZW50ZXJwcmlzZUFkZHJlc3MiOiBvYmouZ2V0KCJlbnRlcnByaXNlQWRkcmVzcyIpLAogICAgICAgICAgICAidGFnIjogb2JqLmdldCgidGFnIiksCiAgICAgICAgICAgICJlb3NBY2NvdW50TmFtZSI6IG9iai5nZXQoImVvc0FjY291bnROYW1lIiksCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgImFjdGl2YXRpb25UeElkIjogb2JqLmdldCgiYWN0aXZhdGlvblR4SWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/create_wallet_request.py b/fireblocks/models/create_wallet_request.py index 80280cb7..69a5e9d9 100644 --- a/fireblocks/models/create_wallet_request.py +++ b/fireblocks/models/create_wallet_request.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class CreateWalletRequest(BaseModel): - """ - CreateWalletRequest - """ # noqa: E501 - name: Optional[StrictStr] = Field(default=None, description="the wallet's display name") - customer_ref_id: Optional[StrictStr] = Field(default=None, description="Optional - Sets a customer reference ID", alias="customerRefId") - __properties: ClassVar[List[str]] = ["name", "customerRefId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateWalletRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateWalletRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name"), - "customerRefId": obj.get("customerRefId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBDcmVhdGVXYWxsZXRSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENyZWF0ZVdhbGxldFJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG5hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJ0aGUgd2FsbGV0J3MgZGlzcGxheSBuYW1lIikKICAgIGN1c3RvbWVyX3JlZl9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik9wdGlvbmFsIC0gU2V0cyBhIGN1c3RvbWVyIHJlZmVyZW5jZSBJRCIsIGFsaWFzPSJjdXN0b21lclJlZklkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibmFtZSIsICJjdXN0b21lclJlZklkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBDcmVhdGVXYWxsZXRSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIENyZWF0ZVdhbGxldFJlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKSwKICAgICAgICAgICAgImN1c3RvbWVyUmVmSWQiOiBvYmouZ2V0KCJjdXN0b21lclJlZklkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/create_webhook_request.py b/fireblocks/models/create_webhook_request.py index be6964f1..8114a6ab 100644 --- a/fireblocks/models/create_webhook_request.py +++ b/fireblocks/models/create_webhook_request.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from fireblocks.models.webhook_event import WebhookEvent -from typing import Optional, Set -from typing_extensions import Self - -class CreateWebhookRequest(BaseModel): - """ - CreateWebhookRequest - """ # noqa: E501 - url: Annotated[str, Field(min_length=1, strict=True)] = Field(description="The url of the webhook where notifications will be sent. URL must be valid, unique and https.") - description: Optional[Annotated[str, Field(min_length=1, strict=True)]] = Field(default=None, description="description of the webhook. should not contain special characters.") - events: List[WebhookEvent] = Field(description="event types the webhook will subscribe to") - enabled: Optional[StrictBool] = Field(default=True, description="The status of the webhook. If false, the webhook will not receive notifications.") - __properties: ClassVar[List[str]] = ["url", "description", "events", "enabled"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CreateWebhookRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CreateWebhookRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "url": obj.get("url"), - "description": obj.get("description"), - "events": obj.get("events"), - "enabled": obj.get("enabled") if obj.get("enabled") is not None else True - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud2ViaG9va19ldmVudCBpbXBvcnQgV2ViaG9va0V2ZW50CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIENyZWF0ZVdlYmhvb2tSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIENyZWF0ZVdlYmhvb2tSZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB1cmw6IEFubm90YXRlZFtzdHIsIEZpZWxkKG1pbl9sZW5ndGg9MSwgc3RyaWN0PVRydWUpXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdXJsIG9mIHRoZSB3ZWJob29rIHdoZXJlIG5vdGlmaWNhdGlvbnMgd2lsbCBiZSBzZW50LiBVUkwgbXVzdCBiZSB2YWxpZCwgdW5pcXVlIGFuZCBodHRwcy4iKQogICAgZGVzY3JpcHRpb246IE9wdGlvbmFsW0Fubm90YXRlZFtzdHIsIEZpZWxkKG1pbl9sZW5ndGg9MSwgc3RyaWN0PVRydWUpXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJkZXNjcmlwdGlvbiBvZiB0aGUgd2ViaG9vay4gc2hvdWxkIG5vdCBjb250YWluIHNwZWNpYWwgY2hhcmFjdGVycy4iKQogICAgZXZlbnRzOiBMaXN0W1dlYmhvb2tFdmVudF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iZXZlbnQgdHlwZXMgdGhlIHdlYmhvb2sgd2lsbCBzdWJzY3JpYmUgdG8iKQogICAgZW5hYmxlZDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PVRydWUsIGRlc2NyaXB0aW9uPSJUaGUgc3RhdHVzIG9mIHRoZSB3ZWJob29rLiBJZiBmYWxzZSwgdGhlIHdlYmhvb2sgd2lsbCBub3QgcmVjZWl2ZSBub3RpZmljYXRpb25zLiIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInVybCIsICJkZXNjcmlwdGlvbiIsICJldmVudHMiLCAiZW5hYmxlZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlV2ViaG9va1JlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3JlYXRlV2ViaG9va1JlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidXJsIjogb2JqLmdldCgidXJsIiksCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IG9iai5nZXQoImRlc2NyaXB0aW9uIiksCiAgICAgICAgICAgICJldmVudHMiOiBvYmouZ2V0KCJldmVudHMiKSwKICAgICAgICAgICAgImVuYWJsZWQiOiBvYmouZ2V0KCJlbmFibGVkIikgaWYgb2JqLmdldCgiZW5hYmxlZCIpIGlzIG5vdCBOb25lIGVsc2UgVHJ1ZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/create_workflow_execution_request_params_inner.py b/fireblocks/models/create_workflow_execution_request_params_inner.py index 27cf27bc..16877ea6 100644 --- a/fireblocks/models/create_workflow_execution_request_params_inner.py +++ b/fireblocks/models/create_workflow_execution_request_params_inner.py @@ -1,150 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -from inspect import getfullargspec -import json -import pprint -import re # noqa: F401 -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Optional -from fireblocks.models.conversion_operation_execution_params import ConversionOperationExecutionParams -from fireblocks.models.disbursement_operation_execution_params import DisbursementOperationExecutionParams -from fireblocks.models.transfer_operation_execution_params import TransferOperationExecutionParams -from typing import Union, Any, List, Set, TYPE_CHECKING, Optional, Dict -from typing_extensions import Literal, Self -from pydantic import Field - -CREATEWORKFLOWEXECUTIONREQUESTPARAMSINNER_ANY_OF_SCHEMAS = ["ConversionOperationExecutionParams", "DisbursementOperationExecutionParams", "TransferOperationExecutionParams"] - -class CreateWorkflowExecutionRequestParamsInner(BaseModel): - """ - CreateWorkflowExecutionRequestParamsInner - """ - - # data type: ConversionOperationExecutionParams - anyof_schema_1_validator: Optional[ConversionOperationExecutionParams] = None - # data type: TransferOperationExecutionParams - anyof_schema_2_validator: Optional[TransferOperationExecutionParams] = None - # data type: DisbursementOperationExecutionParams - anyof_schema_3_validator: Optional[DisbursementOperationExecutionParams] = None - if TYPE_CHECKING: - actual_instance: Optional[Union[ConversionOperationExecutionParams, DisbursementOperationExecutionParams, TransferOperationExecutionParams]] = None - else: - actual_instance: Any = None - any_of_schemas: Set[str] = { "ConversionOperationExecutionParams", "DisbursementOperationExecutionParams", "TransferOperationExecutionParams" } - - model_config = { - "validate_assignment": True, - "protected_namespaces": (), - } - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_anyof(cls, v): - instance = CreateWorkflowExecutionRequestParamsInner.model_construct() - error_messages = [] - # validate data type: ConversionOperationExecutionParams - if not isinstance(v, ConversionOperationExecutionParams): - error_messages.append(f"Error! Input type `{type(v)}` is not `ConversionOperationExecutionParams`") - else: - return v - - # validate data type: TransferOperationExecutionParams - if not isinstance(v, TransferOperationExecutionParams): - error_messages.append(f"Error! Input type `{type(v)}` is not `TransferOperationExecutionParams`") - else: - return v - - # validate data type: DisbursementOperationExecutionParams - if not isinstance(v, DisbursementOperationExecutionParams): - error_messages.append(f"Error! Input type `{type(v)}` is not `DisbursementOperationExecutionParams`") - else: - return v - - if error_messages: - # no match - raise ValueError("No match found when setting the actual_instance in CreateWorkflowExecutionRequestParamsInner with anyOf schemas: ConversionOperationExecutionParams, DisbursementOperationExecutionParams, TransferOperationExecutionParams. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Dict[str, Any]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - # anyof_schema_1_validator: Optional[ConversionOperationExecutionParams] = None - try: - instance.actual_instance = ConversionOperationExecutionParams.from_json(json_str) - return instance - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # anyof_schema_2_validator: Optional[TransferOperationExecutionParams] = None - try: - instance.actual_instance = TransferOperationExecutionParams.from_json(json_str) - return instance - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # anyof_schema_3_validator: Optional[DisbursementOperationExecutionParams] = None - try: - instance.actual_instance = DisbursementOperationExecutionParams.from_json(json_str) - return instance - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if error_messages: - # no match - raise ValueError("No match found when deserializing the JSON string into CreateWorkflowExecutionRequestParamsInner with anyOf schemas: ConversionOperationExecutionParams, DisbursementOperationExecutionParams, TransferOperationExecutionParams. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], ConversionOperationExecutionParams, DisbursementOperationExecutionParams, TransferOperationExecutionParams]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKZnJvbSBpbnNwZWN0IGltcG9ydCBnZXRmdWxsYXJnc3BlYwppbXBvcnQganNvbgppbXBvcnQgcHByaW50CmltcG9ydCByZSAgIyBub3FhOiBGNDAxCmZyb20gcHlkYW50aWMgaW1wb3J0IEJhc2VNb2RlbCwgQ29uZmlnRGljdCwgRmllbGQsIFN0cmljdFN0ciwgVmFsaWRhdGlvbkVycm9yLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtcyBpbXBvcnQgQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtcyBpbXBvcnQgRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXMgaW1wb3J0IFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zCmZyb20gdHlwaW5nIGltcG9ydCBVbmlvbiwgQW55LCBMaXN0LCBTZXQsIFRZUEVfQ0hFQ0tJTkcsIE9wdGlvbmFsLCBEaWN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IExpdGVyYWwsIFNlbGYKZnJvbSBweWRhbnRpYyBpbXBvcnQgRmllbGQKCkNSRUFURVdPUktGTE9XRVhFQ1VUSU9OUkVRVUVTVFBBUkFNU0lOTkVSX0FOWV9PRl9TQ0hFTUFTID0gWyJDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zIiwgIkRpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcyIsICJUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcyJdCgpjbGFzcyBDcmVhdGVXb3JrZmxvd0V4ZWN1dGlvblJlcXVlc3RQYXJhbXNJbm5lcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBDcmVhdGVXb3JrZmxvd0V4ZWN1dGlvblJlcXVlc3RQYXJhbXNJbm5lcgogICAgIiIiCgogICAgIyBkYXRhIHR5cGU6IENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXMKICAgIGFueW9mX3NjaGVtYV8xX3ZhbGlkYXRvcjogT3B0aW9uYWxbQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc10gPSBOb25lCiAgICAjIGRhdGEgdHlwZTogVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXMKICAgIGFueW9mX3NjaGVtYV8yX3ZhbGlkYXRvcjogT3B0aW9uYWxbVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNdID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcwogICAgYW55b2Zfc2NoZW1hXzNfdmFsaWRhdG9yOiBPcHRpb25hbFtEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNdID0gTm9uZQogICAgaWYgVFlQRV9DSEVDS0lORzoKICAgICAgICBhY3R1YWxfaW5zdGFuY2U6IE9wdGlvbmFsW1VuaW9uW0NvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXMsIERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcywgVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNdXSA9IE5vbmUKICAgIGVsc2U6CiAgICAgICAgYWN0dWFsX2luc3RhbmNlOiBBbnkgPSBOb25lCiAgICBhbnlfb2Zfc2NoZW1hczogU2V0W3N0cl0gPSB7ICJDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zIiwgIkRpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcyIsICJUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcyIgfQoKICAgIG1vZGVsX2NvbmZpZyA9IHsKICAgICAgICAidmFsaWRhdGVfYXNzaWdubWVudCI6IFRydWUsCiAgICAgICAgInByb3RlY3RlZF9uYW1lc3BhY2VzIjogKCksCiAgICB9CgogICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncykgLT4gTm9uZToKICAgICAgICBpZiBhcmdzOgogICAgICAgICAgICBpZiBsZW4oYXJncykgPiAxOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBvbmx5IDEgaXMgYWxsb3dlZCB0byBzZXQgYGFjdHVhbF9pbnN0YW5jZWAiKQogICAgICAgICAgICBpZiBrd2FyZ3M6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIGtleXdvcmQgYXJndW1lbnRzIGNhbm5vdCBiZSB1c2VkLiIpCiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oYWN0dWFsX2luc3RhbmNlPWFyZ3NbMF0pCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhY3R1YWxfaW5zdGFuY2UnKQogICAgZGVmIGFjdHVhbF9pbnN0YW5jZV9tdXN0X3ZhbGlkYXRlX2FueW9mKGNscywgdik6CiAgICAgICAgaW5zdGFuY2UgPSBDcmVhdGVXb3JrZmxvd0V4ZWN1dGlvblJlcXVlc3RQYXJhbXNJbm5lci5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcwogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXMpOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXNgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gdgoKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXMKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcyk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gdgoKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gdgoKICAgICAgICBpZiBlcnJvcl9tZXNzYWdlczoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIHNldHRpbmcgdGhlIGFjdHVhbF9pbnN0YW5jZSBpbiBDcmVhdGVXb3JrZmxvd0V4ZWN1dGlvblJlcXVlc3RQYXJhbXNJbm5lciB3aXRoIGFueU9mIHNjaGVtYXM6IENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXMsIERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcywgVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXMuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBEaWN0W3N0ciwgQW55XSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgIyBhbnlvZl9zY2hlbWFfMV92YWxpZGF0b3I6IE9wdGlvbmFsW0NvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXNdID0gTm9uZQogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcy5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGFueW9mX3NjaGVtYV8yX3ZhbGlkYXRvcjogT3B0aW9uYWxbVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNdID0gTm9uZQogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXMuZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBhbnlvZl9zY2hlbWFfM192YWxpZGF0b3I6IE9wdGlvbmFsW0Rpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc10gPSBOb25lCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXMuZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCgogICAgICAgIGlmIGVycm9yX21lc3NhZ2VzOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBDcmVhdGVXb3JrZmxvd0V4ZWN1dGlvblJlcXVlc3RQYXJhbXNJbm5lciB3aXRoIGFueU9mIHNjaGVtYXM6IENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXMsIERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcywgVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXMuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gIm51bGwiCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19qc29uIikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24pOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbigpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi5hY3R1YWxfaW5zdGFuY2UpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gT3B0aW9uYWxbVW5pb25bRGljdFtzdHIsIEFueV0sIENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXMsIERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcywgVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNdXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZQoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcCgpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/custom_routing_dest.py b/fireblocks/models/custom_routing_dest.py index 323394ab..ce87bb2c 100644 --- a/fireblocks/models/custom_routing_dest.py +++ b/fireblocks/models/custom_routing_dest.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class CustomRoutingDest(BaseModel): - """ - CustomRoutingDest - """ # noqa: E501 - scheme: StrictStr = Field(description="The network routing logic.") - dst_type: StrictStr = Field(description="The account the funds are being sent to.", alias="dstType") - dst_id: StrictStr = Field(description="The ID of the account the funds are being sent to.", alias="dstId") - __properties: ClassVar[List[str]] = ["scheme", "dstType", "dstId"] - - @field_validator('scheme') - def scheme_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['CUSTOM']): - raise ValueError("must be one of enum values ('CUSTOM')") - return value - - @field_validator('dst_type') - def dst_type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['FIAT_ACCOUNT', 'VAULT', 'EXCHANGE']): - raise ValueError("must be one of enum values ('FIAT_ACCOUNT', 'VAULT', 'EXCHANGE')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of CustomRoutingDest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of CustomRoutingDest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "scheme": obj.get("scheme"), - "dstType": obj.get("dstType"), - "dstId": obj.get("dstId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgQ3VzdG9tUm91dGluZ0Rlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgQ3VzdG9tUm91dGluZ0Rlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHNjaGVtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBuZXR3b3JrIHJvdXRpbmcgbG9naWMuIikKICAgIGRzdF90eXBlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGFjY291bnQgdGhlIGZ1bmRzIGFyZSBiZWluZyBzZW50IHRvLiIsIGFsaWFzPSJkc3RUeXBlIikKICAgIGRzdF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgYWNjb3VudCB0aGUgZnVuZHMgYXJlIGJlaW5nIHNlbnQgdG8uIiwgYWxpYXM9ImRzdElkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic2NoZW1lIiwgImRzdFR5cGUiLCAiZHN0SWQiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3NjaGVtZScpCiAgICBkZWYgc2NoZW1lX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0NVU1RPTSddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdDVVNUT00nKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgQGZpZWxkX3ZhbGlkYXRvcignZHN0X3R5cGUnKQogICAgZGVmIGRzdF90eXBlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0ZJQVRfQUNDT1VOVCcsICdWQVVMVCcsICdFWENIQU5HRSddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdGSUFUX0FDQ09VTlQnLCAnVkFVTFQnLCAnRVhDSEFOR0UnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3VzdG9tUm91dGluZ0Rlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQ3VzdG9tUm91dGluZ0Rlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic2NoZW1lIjogb2JqLmdldCgic2NoZW1lIiksCiAgICAgICAgICAgICJkc3RUeXBlIjogb2JqLmdldCgiZHN0VHlwZSIpLAogICAgICAgICAgICAiZHN0SWQiOiBvYmouZ2V0KCJkc3RJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/d_app_address_config.py b/fireblocks/models/d_app_address_config.py index 2159cc7d..7915ed68 100644 --- a/fireblocks/models/d_app_address_config.py +++ b/fireblocks/models/d_app_address_config.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.policy_operator import PolicyOperator -from typing import Optional, Set -from typing_extensions import Self - -class DAppAddressConfig(BaseModel): - """ - dApp address configuration for policy rules - """ # noqa: E501 - global_whitelisted: List[StrictStr] = Field(description="Globally whitelisted addresses", alias="globalWhitelisted") - tenant_whitelisted: List[StrictStr] = Field(description="Tenant whitelisted addresses", alias="tenantWhitelisted") - urls: List[StrictStr] = Field(description="Allowed all address") - operator: PolicyOperator - __properties: ClassVar[List[str]] = ["globalWhitelisted", "tenantWhitelisted", "urls", "operator"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DAppAddressConfig from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DAppAddressConfig from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "globalWhitelisted": obj.get("globalWhitelisted"), - "tenantWhitelisted": obj.get("tenantWhitelisted"), - "urls": obj.get("urls"), - "operator": obj.get("operator") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X29wZXJhdG9yIGltcG9ydCBQb2xpY3lPcGVyYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBEQXBwQWRkcmVzc0NvbmZpZyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBkQXBwIGFkZHJlc3MgY29uZmlndXJhdGlvbiBmb3IgcG9saWN5IHJ1bGVzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBnbG9iYWxfd2hpdGVsaXN0ZWQ6IExpc3RbU3RyaWN0U3RyXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJHbG9iYWxseSB3aGl0ZWxpc3RlZCBhZGRyZXNzZXMiLCBhbGlhcz0iZ2xvYmFsV2hpdGVsaXN0ZWQiKQogICAgdGVuYW50X3doaXRlbGlzdGVkOiBMaXN0W1N0cmljdFN0cl0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGVuYW50IHdoaXRlbGlzdGVkIGFkZHJlc3NlcyIsIGFsaWFzPSJ0ZW5hbnRXaGl0ZWxpc3RlZCIpCiAgICB1cmxzOiBMaXN0W1N0cmljdFN0cl0gPSBGaWVsZChkZXNjcmlwdGlvbj0iQWxsb3dlZCBhbGwgYWRkcmVzcyIpCiAgICBvcGVyYXRvcjogUG9saWN5T3BlcmF0b3IKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZ2xvYmFsV2hpdGVsaXN0ZWQiLCAidGVuYW50V2hpdGVsaXN0ZWQiLCAidXJscyIsICJvcGVyYXRvciJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgREFwcEFkZHJlc3NDb25maWcgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgREFwcEFkZHJlc3NDb25maWcgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZ2xvYmFsV2hpdGVsaXN0ZWQiOiBvYmouZ2V0KCJnbG9iYWxXaGl0ZWxpc3RlZCIpLAogICAgICAgICAgICAidGVuYW50V2hpdGVsaXN0ZWQiOiBvYmouZ2V0KCJ0ZW5hbnRXaGl0ZWxpc3RlZCIpLAogICAgICAgICAgICAidXJscyI6IG9iai5nZXQoInVybHMiKSwKICAgICAgICAgICAgIm9wZXJhdG9yIjogb2JqLmdldCgib3BlcmF0b3IiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/decoded_log.py b/fireblocks/models/decoded_log.py index 386ba7a9..3ab9471c 100644 --- a/fireblocks/models/decoded_log.py +++ b/fireblocks/models/decoded_log.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class DecodedLog(BaseModel): - """ - Decoded event log from a blockchain transaction. Note - Additional dynamic properties may be present beyond the required ones. - """ # noqa: E501 - address: StrictStr = Field(description="Contract address that emitted the log") - block_hash: StrictStr = Field(description="Hash of the block containing this log", alias="blockHash") - block_number: StrictStr = Field(description="Block number containing this log", alias="blockNumber") - transaction_hash: StrictStr = Field(description="Hash of the transaction that generated this log", alias="transactionHash") - log_index: StrictStr = Field(description="Index of the log in the transaction", alias="logIndex") - __properties: ClassVar[List[str]] = ["address", "blockHash", "blockNumber", "transactionHash", "logIndex"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DecodedLog from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DecodedLog from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "address": obj.get("address"), - "blockHash": obj.get("blockHash"), - "blockNumber": obj.get("blockNumber"), - "transactionHash": obj.get("transactionHash"), - "logIndex": obj.get("logIndex") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIERlY29kZWRMb2coQmFzZU1vZGVsKToKICAgICIiIgogICAgRGVjb2RlZCBldmVudCBsb2cgZnJvbSBhIGJsb2NrY2hhaW4gdHJhbnNhY3Rpb24uIE5vdGUgLSBBZGRpdGlvbmFsIGR5bmFtaWMgcHJvcGVydGllcyBtYXkgYmUgcHJlc2VudCBiZXlvbmQgdGhlIHJlcXVpcmVkIG9uZXMuCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhZGRyZXNzOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQ29udHJhY3QgYWRkcmVzcyB0aGF0IGVtaXR0ZWQgdGhlIGxvZyIpCiAgICBibG9ja19oYXNoOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iSGFzaCBvZiB0aGUgYmxvY2sgY29udGFpbmluZyB0aGlzIGxvZyIsIGFsaWFzPSJibG9ja0hhc2giKQogICAgYmxvY2tfbnVtYmVyOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQmxvY2sgbnVtYmVyIGNvbnRhaW5pbmcgdGhpcyBsb2ciLCBhbGlhcz0iYmxvY2tOdW1iZXIiKQogICAgdHJhbnNhY3Rpb25faGFzaDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249Ikhhc2ggb2YgdGhlIHRyYW5zYWN0aW9uIHRoYXQgZ2VuZXJhdGVkIHRoaXMgbG9nIiwgYWxpYXM9InRyYW5zYWN0aW9uSGFzaCIpCiAgICBsb2dfaW5kZXg6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJbmRleCBvZiB0aGUgbG9nIGluIHRoZSB0cmFuc2FjdGlvbiIsIGFsaWFzPSJsb2dJbmRleCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFkZHJlc3MiLCAiYmxvY2tIYXNoIiwgImJsb2NrTnVtYmVyIiwgInRyYW5zYWN0aW9uSGFzaCIsICJsb2dJbmRleCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGVjb2RlZExvZyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZWNvZGVkTG9nIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFkZHJlc3MiOiBvYmouZ2V0KCJhZGRyZXNzIiksCiAgICAgICAgICAgICJibG9ja0hhc2giOiBvYmouZ2V0KCJibG9ja0hhc2giKSwKICAgICAgICAgICAgImJsb2NrTnVtYmVyIjogb2JqLmdldCgiYmxvY2tOdW1iZXIiKSwKICAgICAgICAgICAgInRyYW5zYWN0aW9uSGFzaCI6IG9iai5nZXQoInRyYW5zYWN0aW9uSGFzaCIpLAogICAgICAgICAgICAibG9nSW5kZXgiOiBvYmouZ2V0KCJsb2dJbmRleCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/default_network_routing_dest.py b/fireblocks/models/default_network_routing_dest.py index ea9e5947..076e725b 100644 --- a/fireblocks/models/default_network_routing_dest.py +++ b/fireblocks/models/default_network_routing_dest.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class DefaultNetworkRoutingDest(BaseModel): - """ - DefaultNetworkRoutingDest - """ # noqa: E501 - scheme: StrictStr = Field(description="The network routing logic.") - __properties: ClassVar[List[str]] = ["scheme"] - - @field_validator('scheme') - def scheme_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['DEFAULT']): - raise ValueError("must be one of enum values ('DEFAULT')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DefaultNetworkRoutingDest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DefaultNetworkRoutingDest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "scheme": obj.get("scheme") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRGVmYXVsdE5ldHdvcmtSb3V0aW5nRGVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBEZWZhdWx0TmV0d29ya1JvdXRpbmdEZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzY2hlbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgbmV0d29yayByb3V0aW5nIGxvZ2ljLiIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInNjaGVtZSJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignc2NoZW1lJykKICAgIGRlZiBzY2hlbWVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnREVGQVVMVCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdERUZBVUxUJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERlZmF1bHROZXR3b3JrUm91dGluZ0Rlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGVmYXVsdE5ldHdvcmtSb3V0aW5nRGVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzY2hlbWUiOiBvYmouZ2V0KCJzY2hlbWUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/delegation.py b/fireblocks/models/delegation.py index 93ee0e9d..65dc9aee 100644 --- a/fireblocks/models/delegation.py +++ b/fireblocks/models/delegation.py @@ -1,144 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.delegation_blockchain_position_info import DelegationBlockchainPositionInfo -from fireblocks.models.related_request import RelatedRequest -from fireblocks.models.related_transaction import RelatedTransaction -from fireblocks.models.staking_provider import StakingProvider -from typing import Optional, Set -from typing_extensions import Self - -class Delegation(BaseModel): - """ - Delegation - """ # noqa: E501 - id: StrictStr = Field(description="The unique identifier of the staking position") - vault_account_id: StrictStr = Field(description="The source vault account to stake from", alias="vaultAccountId") - validator_name: StrictStr = Field(description="The destination validator address name", alias="validatorName") - provider_name: StrictStr = Field(description="The destination validator provider name", alias="providerName") - chain_descriptor: StrictStr = Field(description="The protocol identifier (e.g. \"ETH\"/ \"SOL\") to use", alias="chainDescriptor") - amount: StrictStr = Field(description="Total value of the staking position. For Solana, Lido and Ethereum (compounding validator): includes the original stake plus accumulated rewards. For MATIC, Cosmos and Ethereum (legacy validator): refers to the amount currently staked.") - rewards_amount: StrictStr = Field(description="The amount staked in the position, measured in the staked asset unit.", alias="rewardsAmount") - date_created: datetime = Field(description="When was the request made (ISO Date).", alias="dateCreated") - date_updated: datetime = Field(description="When has the position last changed (ISO Date).", alias="dateUpdated") - status: StrictStr = Field(description="The current status.") - related_transactions: List[RelatedTransaction] = Field(description="An array of transaction objects related to this position. Each object includes a 'txId' representing the transaction ID and a 'completed' boolean indicating if the transaction was completed.", alias="relatedTransactions") - validator_address: StrictStr = Field(description="The destination address of the staking transaction.", alias="validatorAddress") - provider_id: StakingProvider = Field(alias="providerId") - available_actions: List[StrictStr] = Field(description="An array of available actions that can be performed. for example, actions like \"unstake\" or \"withdraw\".", alias="availableActions") - in_progress: StrictBool = Field(description="Indicates whether there is an ongoing action for this position related to this request", alias="inProgress") - in_progress_tx_id: Optional[StrictStr] = Field(default=None, description="The transaction ID of the initial stake position request only. Only present when there is an active initial stake transaction.", alias="inProgressTxId") - blockchain_position_info: DelegationBlockchainPositionInfo = Field(alias="blockchainPositionInfo") - related_requests: Optional[List[RelatedRequest]] = Field(default=None, alias="relatedRequests") - __properties: ClassVar[List[str]] = ["id", "vaultAccountId", "validatorName", "providerName", "chainDescriptor", "amount", "rewardsAmount", "dateCreated", "dateUpdated", "status", "relatedTransactions", "validatorAddress", "providerId", "availableActions", "inProgress", "inProgressTxId", "blockchainPositionInfo", "relatedRequests"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of Delegation from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in related_transactions (list) - _items = [] - if self.related_transactions: - for _item_related_transactions in self.related_transactions: - if _item_related_transactions: - _items.append(_item_related_transactions.to_dict()) - _dict['relatedTransactions'] = _items - # override the default output from pydantic by calling `to_dict()` of blockchain_position_info - if self.blockchain_position_info: - _dict['blockchainPositionInfo'] = self.blockchain_position_info.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in related_requests (list) - _items = [] - if self.related_requests: - for _item_related_requests in self.related_requests: - if _item_related_requests: - _items.append(_item_related_requests.to_dict()) - _dict['relatedRequests'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of Delegation from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "vaultAccountId": obj.get("vaultAccountId"), - "validatorName": obj.get("validatorName"), - "providerName": obj.get("providerName"), - "chainDescriptor": obj.get("chainDescriptor"), - "amount": obj.get("amount"), - "rewardsAmount": obj.get("rewardsAmount"), - "dateCreated": obj.get("dateCreated"), - "dateUpdated": obj.get("dateUpdated"), - "status": obj.get("status"), - "relatedTransactions": [RelatedTransaction.from_dict(_item) for _item in obj["relatedTransactions"]] if obj.get("relatedTransactions") is not None else None, - "validatorAddress": obj.get("validatorAddress"), - "providerId": obj.get("providerId"), - "availableActions": obj.get("availableActions"), - "inProgress": obj.get("inProgress"), - "inProgressTxId": obj.get("inProgressTxId"), - "blockchainPositionInfo": DelegationBlockchainPositionInfo.from_dict(obj["blockchainPositionInfo"]) if obj.get("blockchainPositionInfo") is not None else None, - "relatedRequests": [RelatedRequest.from_dict(_item) for _item in obj["relatedRequests"]] if obj.get("relatedRequests") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlbGVnYXRpb25fYmxvY2tjaGFpbl9wb3NpdGlvbl9pbmZvIGltcG9ydCBEZWxlZ2F0aW9uQmxvY2tjaGFpblBvc2l0aW9uSW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbGF0ZWRfcmVxdWVzdCBpbXBvcnQgUmVsYXRlZFJlcXVlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZWxhdGVkX3RyYW5zYWN0aW9uIGltcG9ydCBSZWxhdGVkVHJhbnNhY3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zdGFraW5nX3Byb3ZpZGVyIGltcG9ydCBTdGFraW5nUHJvdmlkZXIKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRGVsZWdhdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBEZWxlZ2F0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgc3Rha2luZyBwb3NpdGlvbiIpCiAgICB2YXVsdF9hY2NvdW50X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHNvdXJjZSB2YXVsdCBhY2NvdW50IHRvIHN0YWtlIGZyb20iLCBhbGlhcz0idmF1bHRBY2NvdW50SWQiKQogICAgdmFsaWRhdG9yX25hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGVzdGluYXRpb24gdmFsaWRhdG9yIGFkZHJlc3MgbmFtZSIsIGFsaWFzPSJ2YWxpZGF0b3JOYW1lIikKICAgIHByb3ZpZGVyX25hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGVzdGluYXRpb24gdmFsaWRhdG9yIHByb3ZpZGVyIG5hbWUiLCBhbGlhcz0icHJvdmlkZXJOYW1lIikKICAgIGNoYWluX2Rlc2NyaXB0b3I6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgcHJvdG9jb2wgaWRlbnRpZmllciAoZS5nLiBcIkVUSFwiLyBcIlNPTFwiKSB0byB1c2UiLCBhbGlhcz0iY2hhaW5EZXNjcmlwdG9yIikKICAgIGFtb3VudDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRvdGFsIHZhbHVlIG9mIHRoZSBzdGFraW5nIHBvc2l0aW9uLiBGb3IgU29sYW5hLCBMaWRvIGFuZCBFdGhlcmV1bSAoY29tcG91bmRpbmcgdmFsaWRhdG9yKTogaW5jbHVkZXMgdGhlIG9yaWdpbmFsIHN0YWtlIHBsdXMgYWNjdW11bGF0ZWQgcmV3YXJkcy4gRm9yIE1BVElDLCBDb3Ntb3MgYW5kIEV0aGVyZXVtIChsZWdhY3kgdmFsaWRhdG9yKTogcmVmZXJzIHRvIHRoZSBhbW91bnQgY3VycmVudGx5IHN0YWtlZC4iKQogICAgcmV3YXJkc19hbW91bnQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYW1vdW50IHN0YWtlZCBpbiB0aGUgcG9zaXRpb24sIG1lYXN1cmVkIGluIHRoZSBzdGFrZWQgYXNzZXQgdW5pdC4iLCBhbGlhcz0icmV3YXJkc0Ftb3VudCIpCiAgICBkYXRlX2NyZWF0ZWQ6IGRhdGV0aW1lID0gRmllbGQoZGVzY3JpcHRpb249IldoZW4gd2FzIHRoZSByZXF1ZXN0IG1hZGUgKElTTyBEYXRlKS4iLCBhbGlhcz0iZGF0ZUNyZWF0ZWQiKQogICAgZGF0ZV91cGRhdGVkOiBkYXRldGltZSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJXaGVuIGhhcyB0aGUgcG9zaXRpb24gbGFzdCBjaGFuZ2VkIChJU08gRGF0ZSkuIiwgYWxpYXM9ImRhdGVVcGRhdGVkIikKICAgIHN0YXR1czogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBjdXJyZW50IHN0YXR1cy4iKQogICAgcmVsYXRlZF90cmFuc2FjdGlvbnM6IExpc3RbUmVsYXRlZFRyYW5zYWN0aW9uXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBbiBhcnJheSBvZiB0cmFuc2FjdGlvbiBvYmplY3RzIHJlbGF0ZWQgdG8gdGhpcyBwb3NpdGlvbi4gRWFjaCBvYmplY3QgaW5jbHVkZXMgYSAndHhJZCcgcmVwcmVzZW50aW5nIHRoZSB0cmFuc2FjdGlvbiBJRCBhbmQgYSAnY29tcGxldGVkJyBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIHRyYW5zYWN0aW9uIHdhcyBjb21wbGV0ZWQuIiwgYWxpYXM9InJlbGF0ZWRUcmFuc2FjdGlvbnMiKQogICAgdmFsaWRhdG9yX2FkZHJlc3M6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGVzdGluYXRpb24gYWRkcmVzcyBvZiB0aGUgc3Rha2luZyB0cmFuc2FjdGlvbi4iLCBhbGlhcz0idmFsaWRhdG9yQWRkcmVzcyIpCiAgICBwcm92aWRlcl9pZDogU3Rha2luZ1Byb3ZpZGVyID0gRmllbGQoYWxpYXM9InByb3ZpZGVySWQiKQogICAgYXZhaWxhYmxlX2FjdGlvbnM6IExpc3RbU3RyaWN0U3RyXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBbiBhcnJheSBvZiBhdmFpbGFibGUgYWN0aW9ucyB0aGF0IGNhbiBiZSBwZXJmb3JtZWQuIGZvciBleGFtcGxlLCBhY3Rpb25zIGxpa2UgXCJ1bnN0YWtlXCIgb3IgXCJ3aXRoZHJhd1wiLiIsIGFsaWFzPSJhdmFpbGFibGVBY3Rpb25zIikKICAgIGluX3Byb2dyZXNzOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IkluZGljYXRlcyB3aGV0aGVyIHRoZXJlIGlzIGFuIG9uZ29pbmcgYWN0aW9uIGZvciB0aGlzIHBvc2l0aW9uIHJlbGF0ZWQgdG8gdGhpcyByZXF1ZXN0IiwgYWxpYXM9ImluUHJvZ3Jlc3MiKQogICAgaW5fcHJvZ3Jlc3NfdHhfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgdHJhbnNhY3Rpb24gSUQgb2YgdGhlIGluaXRpYWwgc3Rha2UgcG9zaXRpb24gcmVxdWVzdCBvbmx5LiBPbmx5IHByZXNlbnQgd2hlbiB0aGVyZSBpcyBhbiBhY3RpdmUgaW5pdGlhbCBzdGFrZSB0cmFuc2FjdGlvbi4iLCBhbGlhcz0iaW5Qcm9ncmVzc1R4SWQiKQogICAgYmxvY2tjaGFpbl9wb3NpdGlvbl9pbmZvOiBEZWxlZ2F0aW9uQmxvY2tjaGFpblBvc2l0aW9uSW5mbyA9IEZpZWxkKGFsaWFzPSJibG9ja2NoYWluUG9zaXRpb25JbmZvIikKICAgIHJlbGF0ZWRfcmVxdWVzdHM6IE9wdGlvbmFsW0xpc3RbUmVsYXRlZFJlcXVlc3RdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InJlbGF0ZWRSZXF1ZXN0cyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgInZhdWx0QWNjb3VudElkIiwgInZhbGlkYXRvck5hbWUiLCAicHJvdmlkZXJOYW1lIiwgImNoYWluRGVzY3JpcHRvciIsICJhbW91bnQiLCAicmV3YXJkc0Ftb3VudCIsICJkYXRlQ3JlYXRlZCIsICJkYXRlVXBkYXRlZCIsICJzdGF0dXMiLCAicmVsYXRlZFRyYW5zYWN0aW9ucyIsICJ2YWxpZGF0b3JBZGRyZXNzIiwgInByb3ZpZGVySWQiLCAiYXZhaWxhYmxlQWN0aW9ucyIsICJpblByb2dyZXNzIiwgImluUHJvZ3Jlc3NUeElkIiwgImJsb2NrY2hhaW5Qb3NpdGlvbkluZm8iLCAicmVsYXRlZFJlcXVlc3RzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZWxlZ2F0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIHJlbGF0ZWRfdHJhbnNhY3Rpb25zIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5yZWxhdGVkX3RyYW5zYWN0aW9uczoKICAgICAgICAgICAgZm9yIF9pdGVtX3JlbGF0ZWRfdHJhbnNhY3Rpb25zIGluIHNlbGYucmVsYXRlZF90cmFuc2FjdGlvbnM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9yZWxhdGVkX3RyYW5zYWN0aW9uczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX3JlbGF0ZWRfdHJhbnNhY3Rpb25zLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ3JlbGF0ZWRUcmFuc2FjdGlvbnMnXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBibG9ja2NoYWluX3Bvc2l0aW9uX2luZm8KICAgICAgICBpZiBzZWxmLmJsb2NrY2hhaW5fcG9zaXRpb25faW5mbzoKICAgICAgICAgICAgX2RpY3RbJ2Jsb2NrY2hhaW5Qb3NpdGlvbkluZm8nXSA9IHNlbGYuYmxvY2tjaGFpbl9wb3NpdGlvbl9pbmZvLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gcmVsYXRlZF9yZXF1ZXN0cyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYucmVsYXRlZF9yZXF1ZXN0czoKICAgICAgICAgICAgZm9yIF9pdGVtX3JlbGF0ZWRfcmVxdWVzdHMgaW4gc2VsZi5yZWxhdGVkX3JlcXVlc3RzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fcmVsYXRlZF9yZXF1ZXN0czoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX3JlbGF0ZWRfcmVxdWVzdHMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsncmVsYXRlZFJlcXVlc3RzJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERlbGVnYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAidmF1bHRBY2NvdW50SWQiOiBvYmouZ2V0KCJ2YXVsdEFjY291bnRJZCIpLAogICAgICAgICAgICAidmFsaWRhdG9yTmFtZSI6IG9iai5nZXQoInZhbGlkYXRvck5hbWUiKSwKICAgICAgICAgICAgInByb3ZpZGVyTmFtZSI6IG9iai5nZXQoInByb3ZpZGVyTmFtZSIpLAogICAgICAgICAgICAiY2hhaW5EZXNjcmlwdG9yIjogb2JqLmdldCgiY2hhaW5EZXNjcmlwdG9yIiksCiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKSwKICAgICAgICAgICAgInJld2FyZHNBbW91bnQiOiBvYmouZ2V0KCJyZXdhcmRzQW1vdW50IiksCiAgICAgICAgICAgICJkYXRlQ3JlYXRlZCI6IG9iai5nZXQoImRhdGVDcmVhdGVkIiksCiAgICAgICAgICAgICJkYXRlVXBkYXRlZCI6IG9iai5nZXQoImRhdGVVcGRhdGVkIiksCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgInJlbGF0ZWRUcmFuc2FjdGlvbnMiOiBbUmVsYXRlZFRyYW5zYWN0aW9uLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsicmVsYXRlZFRyYW5zYWN0aW9ucyJdXSBpZiBvYmouZ2V0KCJyZWxhdGVkVHJhbnNhY3Rpb25zIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAidmFsaWRhdG9yQWRkcmVzcyI6IG9iai5nZXQoInZhbGlkYXRvckFkZHJlc3MiKSwKICAgICAgICAgICAgInByb3ZpZGVySWQiOiBvYmouZ2V0KCJwcm92aWRlcklkIiksCiAgICAgICAgICAgICJhdmFpbGFibGVBY3Rpb25zIjogb2JqLmdldCgiYXZhaWxhYmxlQWN0aW9ucyIpLAogICAgICAgICAgICAiaW5Qcm9ncmVzcyI6IG9iai5nZXQoImluUHJvZ3Jlc3MiKSwKICAgICAgICAgICAgImluUHJvZ3Jlc3NUeElkIjogb2JqLmdldCgiaW5Qcm9ncmVzc1R4SWQiKSwKICAgICAgICAgICAgImJsb2NrY2hhaW5Qb3NpdGlvbkluZm8iOiBEZWxlZ2F0aW9uQmxvY2tjaGFpblBvc2l0aW9uSW5mby5mcm9tX2RpY3Qob2JqWyJibG9ja2NoYWluUG9zaXRpb25JbmZvIl0pIGlmIG9iai5nZXQoImJsb2NrY2hhaW5Qb3NpdGlvbkluZm8iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJyZWxhdGVkUmVxdWVzdHMiOiBbUmVsYXRlZFJlcXVlc3QuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJyZWxhdGVkUmVxdWVzdHMiXV0gaWYgb2JqLmdldCgicmVsYXRlZFJlcXVlc3RzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/delegation_blockchain_position_info.py b/fireblocks/models/delegation_blockchain_position_info.py index 944a6807..5d0cf29e 100644 --- a/fireblocks/models/delegation_blockchain_position_info.py +++ b/fireblocks/models/delegation_blockchain_position_info.py @@ -1,155 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.ethereum_blockchain_data import EthereumBlockchainData -from fireblocks.models.solana_blockchain_data import SolanaBlockchainData -from fireblocks.models.st_eth_blockchain_data import StEthBlockchainData -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -DELEGATIONBLOCKCHAINPOSITIONINFO_ONE_OF_SCHEMAS = ["EthereumBlockchainData", "SolanaBlockchainData", "StEthBlockchainData"] - -class DelegationBlockchainPositionInfo(BaseModel): - """ - Additional fields per blockchain - can be empty or missing if not initialized or no additional info exists. - """ - # data type: SolanaBlockchainData - oneof_schema_1_validator: Optional[SolanaBlockchainData] = None - # data type: EthereumBlockchainData - oneof_schema_2_validator: Optional[EthereumBlockchainData] = None - # data type: StEthBlockchainData - oneof_schema_3_validator: Optional[StEthBlockchainData] = None - actual_instance: Optional[Union[EthereumBlockchainData, SolanaBlockchainData, StEthBlockchainData]] = None - one_of_schemas: Set[str] = { "EthereumBlockchainData", "SolanaBlockchainData", "StEthBlockchainData" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - discriminator_value_class_map: Dict[str, str] = { - } - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = DelegationBlockchainPositionInfo.model_construct() - error_messages = [] - match = 0 - # validate data type: SolanaBlockchainData - if not isinstance(v, SolanaBlockchainData): - error_messages.append(f"Error! Input type `{type(v)}` is not `SolanaBlockchainData`") - else: - match += 1 - # validate data type: EthereumBlockchainData - if not isinstance(v, EthereumBlockchainData): - error_messages.append(f"Error! Input type `{type(v)}` is not `EthereumBlockchainData`") - else: - match += 1 - # validate data type: StEthBlockchainData - if not isinstance(v, StEthBlockchainData): - error_messages.append(f"Error! Input type `{type(v)}` is not `StEthBlockchainData`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in DelegationBlockchainPositionInfo with oneOf schemas: EthereumBlockchainData, SolanaBlockchainData, StEthBlockchainData. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in DelegationBlockchainPositionInfo with oneOf schemas: EthereumBlockchainData, SolanaBlockchainData, StEthBlockchainData. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into SolanaBlockchainData - try: - instance.actual_instance = SolanaBlockchainData.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into EthereumBlockchainData - try: - instance.actual_instance = EthereumBlockchainData.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into StEthBlockchainData - try: - instance.actual_instance = StEthBlockchainData.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into DelegationBlockchainPositionInfo with oneOf schemas: EthereumBlockchainData, SolanaBlockchainData, StEthBlockchainData. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into DelegationBlockchainPositionInfo with oneOf schemas: EthereumBlockchainData, SolanaBlockchainData, StEthBlockchainData. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], EthereumBlockchainData, SolanaBlockchainData, StEthBlockchainData]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXRoZXJldW1fYmxvY2tjaGFpbl9kYXRhIGltcG9ydCBFdGhlcmV1bUJsb2NrY2hhaW5EYXRhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc29sYW5hX2Jsb2NrY2hhaW5fZGF0YSBpbXBvcnQgU29sYW5hQmxvY2tjaGFpbkRhdGEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zdF9ldGhfYmxvY2tjaGFpbl9kYXRhIGltcG9ydCBTdEV0aEJsb2NrY2hhaW5EYXRhCmZyb20gcHlkYW50aWMgaW1wb3J0IFN0cmljdFN0ciwgRmllbGQKZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uLCBMaXN0LCBTZXQsIE9wdGlvbmFsLCBEaWN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IExpdGVyYWwsIFNlbGYKCkRFTEVHQVRJT05CTE9DS0NIQUlOUE9TSVRJT05JTkZPX09ORV9PRl9TQ0hFTUFTID0gWyJFdGhlcmV1bUJsb2NrY2hhaW5EYXRhIiwgIlNvbGFuYUJsb2NrY2hhaW5EYXRhIiwgIlN0RXRoQmxvY2tjaGFpbkRhdGEiXQoKY2xhc3MgRGVsZWdhdGlvbkJsb2NrY2hhaW5Qb3NpdGlvbkluZm8oQmFzZU1vZGVsKToKICAgICIiIgogICAgQWRkaXRpb25hbCBmaWVsZHMgcGVyIGJsb2NrY2hhaW4gLSBjYW4gYmUgZW1wdHkgb3IgbWlzc2luZyBpZiBub3QgaW5pdGlhbGl6ZWQgb3Igbm8gYWRkaXRpb25hbCBpbmZvIGV4aXN0cy4KICAgICIiIgogICAgIyBkYXRhIHR5cGU6IFNvbGFuYUJsb2NrY2hhaW5EYXRhCiAgICBvbmVvZl9zY2hlbWFfMV92YWxpZGF0b3I6IE9wdGlvbmFsW1NvbGFuYUJsb2NrY2hhaW5EYXRhXSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBFdGhlcmV1bUJsb2NrY2hhaW5EYXRhCiAgICBvbmVvZl9zY2hlbWFfMl92YWxpZGF0b3I6IE9wdGlvbmFsW0V0aGVyZXVtQmxvY2tjaGFpbkRhdGFdID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IFN0RXRoQmxvY2tjaGFpbkRhdGEKICAgIG9uZW9mX3NjaGVtYV8zX3ZhbGlkYXRvcjogT3B0aW9uYWxbU3RFdGhCbG9ja2NoYWluRGF0YV0gPSBOb25lCiAgICBhY3R1YWxfaW5zdGFuY2U6IE9wdGlvbmFsW1VuaW9uW0V0aGVyZXVtQmxvY2tjaGFpbkRhdGEsIFNvbGFuYUJsb2NrY2hhaW5EYXRhLCBTdEV0aEJsb2NrY2hhaW5EYXRhXV0gPSBOb25lCiAgICBvbmVfb2Zfc2NoZW1hczogU2V0W3N0cl0gPSB7ICJFdGhlcmV1bUJsb2NrY2hhaW5EYXRhIiwgIlNvbGFuYUJsb2NrY2hhaW5EYXRhIiwgIlN0RXRoQmxvY2tjaGFpbkRhdGEiIH0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGlzY3JpbWluYXRvcl92YWx1ZV9jbGFzc19tYXA6IERpY3Rbc3RyLCBzdHJdID0gewogICAgfQoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gRGVsZWdhdGlvbkJsb2NrY2hhaW5Qb3NpdGlvbkluZm8ubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IFNvbGFuYUJsb2NrY2hhaW5EYXRhCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgU29sYW5hQmxvY2tjaGFpbkRhdGEpOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYFNvbGFuYUJsb2NrY2hhaW5EYXRhYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBFdGhlcmV1bUJsb2NrY2hhaW5EYXRhCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgRXRoZXJldW1CbG9ja2NoYWluRGF0YSk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgRXRoZXJldW1CbG9ja2NoYWluRGF0YWAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogU3RFdGhCbG9ja2NoYWluRGF0YQogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIFN0RXRoQmxvY2tjaGFpbkRhdGEpOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYFN0RXRoQmxvY2tjaGFpbkRhdGFgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIERlbGVnYXRpb25CbG9ja2NoYWluUG9zaXRpb25JbmZvIHdpdGggb25lT2Ygc2NoZW1hczogRXRoZXJldW1CbG9ja2NoYWluRGF0YSwgU29sYW5hQmxvY2tjaGFpbkRhdGEsIFN0RXRoQmxvY2tjaGFpbkRhdGEuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gRGVsZWdhdGlvbkJsb2NrY2hhaW5Qb3NpdGlvbkluZm8gd2l0aCBvbmVPZiBzY2hlbWFzOiBFdGhlcmV1bUJsb2NrY2hhaW5EYXRhLCBTb2xhbmFCbG9ja2NoYWluRGF0YSwgU3RFdGhCbG9ja2NoYWluRGF0YS4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIHYKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IFVuaW9uW3N0ciwgRGljdFtzdHIsIEFueV1dKSAtPiBTZWxmOgogICAgICAgIHJldHVybiBjbHMuZnJvbV9qc29uKGpzb24uZHVtcHMob2JqKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIlJldHVybnMgdGhlIG9iamVjdCByZXByZXNlbnRlZCBieSB0aGUganNvbiBzdHJpbmciIiIKICAgICAgICBpbnN0YW5jZSA9IGNscy5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gU29sYW5hQmxvY2tjaGFpbkRhdGEKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IFNvbGFuYUJsb2NrY2hhaW5EYXRhLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIEV0aGVyZXVtQmxvY2tjaGFpbkRhdGEKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IEV0aGVyZXVtQmxvY2tjaGFpbkRhdGEuZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gU3RFdGhCbG9ja2NoYWluRGF0YQogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gU3RFdGhCbG9ja2NoYWluRGF0YS5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIERlbGVnYXRpb25CbG9ja2NoYWluUG9zaXRpb25JbmZvIHdpdGggb25lT2Ygc2NoZW1hczogRXRoZXJldW1CbG9ja2NoYWluRGF0YSwgU29sYW5hQmxvY2tjaGFpbkRhdGEsIFN0RXRoQmxvY2tjaGFpbkRhdGEuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gRGVsZWdhdGlvbkJsb2NrY2hhaW5Qb3NpdGlvbkluZm8gd2l0aCBvbmVPZiBzY2hlbWFzOiBFdGhlcmV1bUJsb2NrY2hhaW5EYXRhLCBTb2xhbmFCbG9ja2NoYWluRGF0YSwgU3RFdGhCbG9ja2NoYWluRGF0YS4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiAibnVsbCIKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2pzb24iKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbik6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKCkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLmFjdHVhbF9pbnN0YW5jZSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBPcHRpb25hbFtVbmlvbltEaWN0W3N0ciwgQW55XSwgRXRoZXJldW1CbG9ja2NoYWluRGF0YSwgU29sYW5hQmxvY2tjaGFpbkRhdGEsIFN0RXRoQmxvY2tjaGFpbkRhdGFdXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgcHJpbWl0aXZlIHR5cGUKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/delegation_summary.py b/fireblocks/models/delegation_summary.py index 676b53c5..984c1db6 100644 --- a/fireblocks/models/delegation_summary.py +++ b/fireblocks/models/delegation_summary.py @@ -1,123 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.amount_and_chain_descriptor import AmountAndChainDescriptor -from typing import Optional, Set -from typing_extensions import Self - -class DelegationSummary(BaseModel): - """ - DelegationSummary - """ # noqa: E501 - active: List[AmountAndChainDescriptor] = Field(description="An array of objects containing chain descriptors and associated amounts, representing active positions.") - inactive: List[AmountAndChainDescriptor] = Field(description="An array of objects containing chain descriptors and associated amounts, representing inactive positions.") - rewards_amount: List[AmountAndChainDescriptor] = Field(description="An array of objects containing chain descriptors and associated amounts, representing rewards positions.", alias="rewardsAmount") - total_staked: List[AmountAndChainDescriptor] = Field(description="An array of objects with chain descriptors and total staked amounts, representing the combined staked totals of active and inactive positions.", alias="totalStaked") - __properties: ClassVar[List[str]] = ["active", "inactive", "rewardsAmount", "totalStaked"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DelegationSummary from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in active (list) - _items = [] - if self.active: - for _item_active in self.active: - if _item_active: - _items.append(_item_active.to_dict()) - _dict['active'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in inactive (list) - _items = [] - if self.inactive: - for _item_inactive in self.inactive: - if _item_inactive: - _items.append(_item_inactive.to_dict()) - _dict['inactive'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in rewards_amount (list) - _items = [] - if self.rewards_amount: - for _item_rewards_amount in self.rewards_amount: - if _item_rewards_amount: - _items.append(_item_rewards_amount.to_dict()) - _dict['rewardsAmount'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in total_staked (list) - _items = [] - if self.total_staked: - for _item_total_staked in self.total_staked: - if _item_total_staked: - _items.append(_item_total_staked.to_dict()) - _dict['totalStaked'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DelegationSummary from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "active": [AmountAndChainDescriptor.from_dict(_item) for _item in obj["active"]] if obj.get("active") is not None else None, - "inactive": [AmountAndChainDescriptor.from_dict(_item) for _item in obj["inactive"]] if obj.get("inactive") is not None else None, - "rewardsAmount": [AmountAndChainDescriptor.from_dict(_item) for _item in obj["rewardsAmount"]] if obj.get("rewardsAmount") is not None else None, - "totalStaked": [AmountAndChainDescriptor.from_dict(_item) for _item in obj["totalStaked"]] if obj.get("totalStaked") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9hbmRfY2hhaW5fZGVzY3JpcHRvciBpbXBvcnQgQW1vdW50QW5kQ2hhaW5EZXNjcmlwdG9yCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIERlbGVnYXRpb25TdW1tYXJ5KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIERlbGVnYXRpb25TdW1tYXJ5CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhY3RpdmU6IExpc3RbQW1vdW50QW5kQ2hhaW5EZXNjcmlwdG9yXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBbiBhcnJheSBvZiBvYmplY3RzIGNvbnRhaW5pbmcgY2hhaW4gZGVzY3JpcHRvcnMgYW5kIGFzc29jaWF0ZWQgYW1vdW50cywgcmVwcmVzZW50aW5nIGFjdGl2ZSBwb3NpdGlvbnMuIikKICAgIGluYWN0aXZlOiBMaXN0W0Ftb3VudEFuZENoYWluRGVzY3JpcHRvcl0gPSBGaWVsZChkZXNjcmlwdGlvbj0iQW4gYXJyYXkgb2Ygb2JqZWN0cyBjb250YWluaW5nIGNoYWluIGRlc2NyaXB0b3JzIGFuZCBhc3NvY2lhdGVkIGFtb3VudHMsIHJlcHJlc2VudGluZyBpbmFjdGl2ZSBwb3NpdGlvbnMuIikKICAgIHJld2FyZHNfYW1vdW50OiBMaXN0W0Ftb3VudEFuZENoYWluRGVzY3JpcHRvcl0gPSBGaWVsZChkZXNjcmlwdGlvbj0iQW4gYXJyYXkgb2Ygb2JqZWN0cyBjb250YWluaW5nIGNoYWluIGRlc2NyaXB0b3JzIGFuZCBhc3NvY2lhdGVkIGFtb3VudHMsIHJlcHJlc2VudGluZyByZXdhcmRzIHBvc2l0aW9ucy4iLCBhbGlhcz0icmV3YXJkc0Ftb3VudCIpCiAgICB0b3RhbF9zdGFrZWQ6IExpc3RbQW1vdW50QW5kQ2hhaW5EZXNjcmlwdG9yXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBbiBhcnJheSBvZiBvYmplY3RzIHdpdGggY2hhaW4gZGVzY3JpcHRvcnMgYW5kIHRvdGFsIHN0YWtlZCBhbW91bnRzLCByZXByZXNlbnRpbmcgdGhlIGNvbWJpbmVkIHN0YWtlZCB0b3RhbHMgb2YgYWN0aXZlIGFuZCBpbmFjdGl2ZSBwb3NpdGlvbnMuIiwgYWxpYXM9InRvdGFsU3Rha2VkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYWN0aXZlIiwgImluYWN0aXZlIiwgInJld2FyZHNBbW91bnQiLCAidG90YWxTdGFrZWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERlbGVnYXRpb25TdW1tYXJ5IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGFjdGl2ZSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuYWN0aXZlOgogICAgICAgICAgICBmb3IgX2l0ZW1fYWN0aXZlIGluIHNlbGYuYWN0aXZlOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fYWN0aXZlOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fYWN0aXZlLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2FjdGl2ZSddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBpbmFjdGl2ZSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuaW5hY3RpdmU6CiAgICAgICAgICAgIGZvciBfaXRlbV9pbmFjdGl2ZSBpbiBzZWxmLmluYWN0aXZlOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1faW5hY3RpdmU6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9pbmFjdGl2ZS50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydpbmFjdGl2ZSddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiByZXdhcmRzX2Ftb3VudCAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYucmV3YXJkc19hbW91bnQ6CiAgICAgICAgICAgIGZvciBfaXRlbV9yZXdhcmRzX2Ftb3VudCBpbiBzZWxmLnJld2FyZHNfYW1vdW50OgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fcmV3YXJkc19hbW91bnQ6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9yZXdhcmRzX2Ftb3VudC50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydyZXdhcmRzQW1vdW50J10gPSBfaXRlbXMKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIHRvdGFsX3N0YWtlZCAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYudG90YWxfc3Rha2VkOgogICAgICAgICAgICBmb3IgX2l0ZW1fdG90YWxfc3Rha2VkIGluIHNlbGYudG90YWxfc3Rha2VkOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fdG90YWxfc3Rha2VkOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fdG90YWxfc3Rha2VkLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ3RvdGFsU3Rha2VkJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERlbGVnYXRpb25TdW1tYXJ5IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFjdGl2ZSI6IFtBbW91bnRBbmRDaGFpbkRlc2NyaXB0b3IuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJhY3RpdmUiXV0gaWYgb2JqLmdldCgiYWN0aXZlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiaW5hY3RpdmUiOiBbQW1vdW50QW5kQ2hhaW5EZXNjcmlwdG9yLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiaW5hY3RpdmUiXV0gaWYgb2JqLmdldCgiaW5hY3RpdmUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJyZXdhcmRzQW1vdW50IjogW0Ftb3VudEFuZENoYWluRGVzY3JpcHRvci5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbInJld2FyZHNBbW91bnQiXV0gaWYgb2JqLmdldCgicmV3YXJkc0Ftb3VudCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInRvdGFsU3Rha2VkIjogW0Ftb3VudEFuZENoYWluRGVzY3JpcHRvci5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbInRvdGFsU3Rha2VkIl1dIGlmIG9iai5nZXQoInRvdGFsU3Rha2VkIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/delete_network_connection_response.py b/fireblocks/models/delete_network_connection_response.py index d53e8f65..d126b351 100644 --- a/fireblocks/models/delete_network_connection_response.py +++ b/fireblocks/models/delete_network_connection_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictBool -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class DeleteNetworkConnectionResponse(BaseModel): - """ - DeleteNetworkConnectionResponse - """ # noqa: E501 - success: StrictBool - __properties: ClassVar[List[str]] = ["success"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DeleteNetworkConnectionResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DeleteNetworkConnectionResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "success": obj.get("success") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RCb29sCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIERlbGV0ZU5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgRGVsZXRlTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgc3VjY2VzczogU3RyaWN0Qm9vbAogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzdWNjZXNzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZWxldGVOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERlbGV0ZU5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3VjY2VzcyI6IG9iai5nZXQoInN1Y2Nlc3MiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/delete_network_id_response.py b/fireblocks/models/delete_network_id_response.py index 3f300c51..19f1277e 100644 --- a/fireblocks/models/delete_network_id_response.py +++ b/fireblocks/models/delete_network_id_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictBool -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class DeleteNetworkIdResponse(BaseModel): - """ - DeleteNetworkIdResponse - """ # noqa: E501 - success: StrictBool - __properties: ClassVar[List[str]] = ["success"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DeleteNetworkIdResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DeleteNetworkIdResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "success": obj.get("success") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RCb29sCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIERlbGV0ZU5ldHdvcmtJZFJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIERlbGV0ZU5ldHdvcmtJZFJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzdWNjZXNzOiBTdHJpY3RCb29sCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInN1Y2Nlc3MiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERlbGV0ZU5ldHdvcmtJZFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERlbGV0ZU5ldHdvcmtJZFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInN1Y2Nlc3MiOiBvYmouZ2V0KCJzdWNjZXNzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/deploy_layer_zero_adapters_request.py b/fireblocks/models/deploy_layer_zero_adapters_request.py index 18bf394b..c614dc9a 100644 --- a/fireblocks/models/deploy_layer_zero_adapters_request.py +++ b/fireblocks/models/deploy_layer_zero_adapters_request.py @@ -1,119 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from fireblocks.models.layer_zero_adapter_create_params import LayerZeroAdapterCreateParams -from typing import Optional, Set -from typing_extensions import Self - -class DeployLayerZeroAdaptersRequest(BaseModel): - """ - DeployLayerZeroAdaptersRequest - """ # noqa: E501 - vault_account_id: StrictStr = Field(description="The id of the vault account that initiated the request to deploy adapter for the token", alias="vaultAccountId") - create_params: Annotated[List[LayerZeroAdapterCreateParams], Field(min_length=1)] = Field(description="Array of creation parameters for LayerZero adapters, one per tokenLink.", alias="createParams") - display_name: Optional[StrictStr] = Field(default=None, description="The display name of the contract", alias="displayName") - use_gasless: Optional[StrictBool] = Field(default=None, description="Whether to use gasless deployment or not", alias="useGasless") - fee_level: Optional[StrictStr] = Field(default=None, description="Fee level for the write function transaction. interchangeable with the 'fee' field", alias="feeLevel") - fee: Optional[StrictStr] = Field(default=None, description="Max fee amount for the write function transaction. interchangeable with the 'feeLevel' field") - salt: Optional[StrictStr] = Field(default=None, description="The salt to calculate the deterministic address. Must be a number between 0 and 2^256 -1, for it to fit in the bytes32 parameter") - __properties: ClassVar[List[str]] = ["vaultAccountId", "createParams", "displayName", "useGasless", "feeLevel", "fee", "salt"] - - @field_validator('fee_level') - def fee_level_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['LOW', 'MEDIUM', 'HIGH']): - raise ValueError("must be one of enum values ('LOW', 'MEDIUM', 'HIGH')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DeployLayerZeroAdaptersRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in create_params (list) - _items = [] - if self.create_params: - for _item_create_params in self.create_params: - if _item_create_params: - _items.append(_item_create_params.to_dict()) - _dict['createParams'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DeployLayerZeroAdaptersRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "vaultAccountId": obj.get("vaultAccountId"), - "createParams": [LayerZeroAdapterCreateParams.from_dict(_item) for _item in obj["createParams"]] if obj.get("createParams") is not None else None, - "displayName": obj.get("displayName"), - "useGasless": obj.get("useGasless"), - "feeLevel": obj.get("feeLevel"), - "fee": obj.get("fee"), - "salt": obj.get("salt") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxheWVyX3plcm9fYWRhcHRlcl9jcmVhdGVfcGFyYW1zIGltcG9ydCBMYXllclplcm9BZGFwdGVyQ3JlYXRlUGFyYW1zCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIERlcGxveUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBEZXBsb3lMYXllclplcm9BZGFwdGVyc1JlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHZhdWx0X2FjY291bnRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgaWQgb2YgdGhlIHZhdWx0IGFjY291bnQgdGhhdCBpbml0aWF0ZWQgdGhlIHJlcXVlc3QgdG8gZGVwbG95IGFkYXB0ZXIgZm9yIHRoZSB0b2tlbiIsIGFsaWFzPSJ2YXVsdEFjY291bnRJZCIpCiAgICBjcmVhdGVfcGFyYW1zOiBBbm5vdGF0ZWRbTGlzdFtMYXllclplcm9BZGFwdGVyQ3JlYXRlUGFyYW1zXSwgRmllbGQobWluX2xlbmd0aD0xKV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iQXJyYXkgb2YgY3JlYXRpb24gcGFyYW1ldGVycyBmb3IgTGF5ZXJaZXJvIGFkYXB0ZXJzLCBvbmUgcGVyIHRva2VuTGluay4iLCBhbGlhcz0iY3JlYXRlUGFyYW1zIikKICAgIGRpc3BsYXlfbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIGNvbnRyYWN0IiwgYWxpYXM9ImRpc3BsYXlOYW1lIikKICAgIHVzZV9nYXNsZXNzOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IldoZXRoZXIgdG8gdXNlIGdhc2xlc3MgZGVwbG95bWVudCBvciBub3QiLCBhbGlhcz0idXNlR2FzbGVzcyIpCiAgICBmZWVfbGV2ZWw6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJGZWUgbGV2ZWwgZm9yIHRoZSB3cml0ZSBmdW5jdGlvbiB0cmFuc2FjdGlvbi4gaW50ZXJjaGFuZ2VhYmxlIHdpdGggdGhlICdmZWUnIGZpZWxkIiwgYWxpYXM9ImZlZUxldmVsIikKICAgIGZlZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik1heCBmZWUgYW1vdW50IGZvciB0aGUgd3JpdGUgZnVuY3Rpb24gdHJhbnNhY3Rpb24uIGludGVyY2hhbmdlYWJsZSB3aXRoIHRoZSAnZmVlTGV2ZWwnIGZpZWxkIikKICAgIHNhbHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgc2FsdCB0byBjYWxjdWxhdGUgdGhlIGRldGVybWluaXN0aWMgYWRkcmVzcy4gTXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDJeMjU2IC0xLCBmb3IgaXQgdG8gZml0IGluIHRoZSBieXRlczMyIHBhcmFtZXRlciIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInZhdWx0QWNjb3VudElkIiwgImNyZWF0ZVBhcmFtcyIsICJkaXNwbGF5TmFtZSIsICJ1c2VHYXNsZXNzIiwgImZlZUxldmVsIiwgImZlZSIsICJzYWx0Il0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdmZWVfbGV2ZWwnKQogICAgZGVmIGZlZV9sZXZlbF92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnTE9XJywgJ01FRElVTScsICdISUdIJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0xPVycsICdNRURJVU0nLCAnSElHSCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZXBsb3lMYXllclplcm9BZGFwdGVyc1JlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gY3JlYXRlX3BhcmFtcyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuY3JlYXRlX3BhcmFtczoKICAgICAgICAgICAgZm9yIF9pdGVtX2NyZWF0ZV9wYXJhbXMgaW4gc2VsZi5jcmVhdGVfcGFyYW1zOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fY3JlYXRlX3BhcmFtczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2NyZWF0ZV9wYXJhbXMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnY3JlYXRlUGFyYW1zJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERlcGxveUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ2YXVsdEFjY291bnRJZCI6IG9iai5nZXQoInZhdWx0QWNjb3VudElkIiksCiAgICAgICAgICAgICJjcmVhdGVQYXJhbXMiOiBbTGF5ZXJaZXJvQWRhcHRlckNyZWF0ZVBhcmFtcy5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImNyZWF0ZVBhcmFtcyJdXSBpZiBvYmouZ2V0KCJjcmVhdGVQYXJhbXMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJkaXNwbGF5TmFtZSI6IG9iai5nZXQoImRpc3BsYXlOYW1lIiksCiAgICAgICAgICAgICJ1c2VHYXNsZXNzIjogb2JqLmdldCgidXNlR2FzbGVzcyIpLAogICAgICAgICAgICAiZmVlTGV2ZWwiOiBvYmouZ2V0KCJmZWVMZXZlbCIpLAogICAgICAgICAgICAiZmVlIjogb2JqLmdldCgiZmVlIiksCiAgICAgICAgICAgICJzYWx0Ijogb2JqLmdldCgic2FsdCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/deployable_address_response.py b/fireblocks/models/deployable_address_response.py index 6e10cbbd..f790f3ac 100644 --- a/fireblocks/models/deployable_address_response.py +++ b/fireblocks/models/deployable_address_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class DeployableAddressResponse(BaseModel): - """ - Response DTO containing a deployable address - """ # noqa: E501 - address: StrictStr = Field(description="The deployable address") - __properties: ClassVar[List[str]] = ["address"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DeployableAddressResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DeployableAddressResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "address": obj.get("address") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIERlcGxveWFibGVBZGRyZXNzUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgUmVzcG9uc2UgRFRPIGNvbnRhaW5pbmcgYSBkZXBsb3lhYmxlIGFkZHJlc3MKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFkZHJlc3M6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGVwbG95YWJsZSBhZGRyZXNzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYWRkcmVzcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGVwbG95YWJsZUFkZHJlc3NSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZXBsb3lhYmxlQWRkcmVzc1Jlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFkZHJlc3MiOiBvYmouZ2V0KCJhZGRyZXNzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/deployed_contract_not_found_error.py b/fireblocks/models/deployed_contract_not_found_error.py index 8d971883..1c418d3e 100644 --- a/fireblocks/models/deployed_contract_not_found_error.py +++ b/fireblocks/models/deployed_contract_not_found_error.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class DeployedContractNotFoundError(BaseModel): - """ - DeployedContractNotFoundError - """ # noqa: E501 - message: StrictStr = Field(description="Not Found error message") - code: Union[StrictFloat, StrictInt] = Field(description="Error code") - __properties: ClassVar[List[str]] = ["message", "code"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DeployedContractNotFoundError from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DeployedContractNotFoundError from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "code": obj.get("code") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBEZXBsb3llZENvbnRyYWN0Tm90Rm91bmRFcnJvcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBEZXBsb3llZENvbnRyYWN0Tm90Rm91bmRFcnJvcgogICAgIiIiICMgbm9xYTogRTUwMQogICAgbWVzc2FnZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249Ik5vdCBGb3VuZCBlcnJvciBtZXNzYWdlIikKICAgIGNvZGU6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoZGVzY3JpcHRpb249IkVycm9yIGNvZGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJtZXNzYWdlIiwgImNvZGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERlcGxveWVkQ29udHJhY3ROb3RGb3VuZEVycm9yIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERlcGxveWVkQ29udHJhY3ROb3RGb3VuZEVycm9yIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm1lc3NhZ2UiOiBvYmouZ2V0KCJtZXNzYWdlIiksCiAgICAgICAgICAgICJjb2RlIjogb2JqLmdldCgiY29kZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/deployed_contract_response_dto.py b/fireblocks/models/deployed_contract_response_dto.py index 9897da63..ff218b6b 100644 --- a/fireblocks/models/deployed_contract_response_dto.py +++ b/fireblocks/models/deployed_contract_response_dto.py @@ -1,116 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.gassless_standard_configurations import GasslessStandardConfigurations -from fireblocks.models.multichain_deployment_metadata import MultichainDeploymentMetadata -from fireblocks.models.solana_config import SolanaConfig -from typing import Optional, Set -from typing_extensions import Self - -class DeployedContractResponseDto(BaseModel): - """ - DeployedContractResponseDto - """ # noqa: E501 - id: StrictStr = Field(description="The deployed contract data identifier") - contract_address: StrictStr = Field(description="The contract's onchain address", alias="contractAddress") - contract_template_id: StrictStr = Field(description="The contract template identifier", alias="contractTemplateId") - vault_account_id: Optional[StrictStr] = Field(default=None, description="The vault account id this contract was deploy from", alias="vaultAccountId") - blockchain_id: StrictStr = Field(alias="blockchainId") - base_asset_id: Optional[StrictStr] = Field(default=None, description="The blockchain base assetId", alias="baseAssetId") - gasless_config: Optional[GasslessStandardConfigurations] = Field(default=None, alias="gaslessConfig") - multichain_deployment_metadata: Optional[MultichainDeploymentMetadata] = Field(default=None, alias="multichainDeploymentMetadata") - solana_config: Optional[SolanaConfig] = Field(default=None, alias="solanaConfig") - __properties: ClassVar[List[str]] = ["id", "contractAddress", "contractTemplateId", "vaultAccountId", "blockchainId", "baseAssetId", "gaslessConfig", "multichainDeploymentMetadata", "solanaConfig"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DeployedContractResponseDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of gasless_config - if self.gasless_config: - _dict['gaslessConfig'] = self.gasless_config.to_dict() - # override the default output from pydantic by calling `to_dict()` of multichain_deployment_metadata - if self.multichain_deployment_metadata: - _dict['multichainDeploymentMetadata'] = self.multichain_deployment_metadata.to_dict() - # override the default output from pydantic by calling `to_dict()` of solana_config - if self.solana_config: - _dict['solanaConfig'] = self.solana_config.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DeployedContractResponseDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "contractAddress": obj.get("contractAddress"), - "contractTemplateId": obj.get("contractTemplateId"), - "vaultAccountId": obj.get("vaultAccountId"), - "blockchainId": obj.get("blockchainId"), - "baseAssetId": obj.get("baseAssetId"), - "gaslessConfig": GasslessStandardConfigurations.from_dict(obj["gaslessConfig"]) if obj.get("gaslessConfig") is not None else None, - "multichainDeploymentMetadata": MultichainDeploymentMetadata.from_dict(obj["multichainDeploymentMetadata"]) if obj.get("multichainDeploymentMetadata") is not None else None, - "solanaConfig": SolanaConfig.from_dict(obj["solanaConfig"]) if obj.get("solanaConfig") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdhc3NsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zIGltcG9ydCBHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tdWx0aWNoYWluX2RlcGxveW1lbnRfbWV0YWRhdGEgaW1wb3J0IE11bHRpY2hhaW5EZXBsb3ltZW50TWV0YWRhdGEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zb2xhbmFfY29uZmlnIGltcG9ydCBTb2xhbmFDb25maWcKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIERlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0bwogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGVwbG95ZWQgY29udHJhY3QgZGF0YSBpZGVudGlmaWVyIikKICAgIGNvbnRyYWN0X2FkZHJlc3M6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgY29udHJhY3QncyBvbmNoYWluIGFkZHJlc3MiLCBhbGlhcz0iY29udHJhY3RBZGRyZXNzIikKICAgIGNvbnRyYWN0X3RlbXBsYXRlX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNvbnRyYWN0IHRlbXBsYXRlIGlkZW50aWZpZXIiLCBhbGlhcz0iY29udHJhY3RUZW1wbGF0ZUlkIikKICAgIHZhdWx0X2FjY291bnRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgdmF1bHQgYWNjb3VudCBpZCB0aGlzIGNvbnRyYWN0IHdhcyBkZXBsb3kgZnJvbSIsIGFsaWFzPSJ2YXVsdEFjY291bnRJZCIpCiAgICBibG9ja2NoYWluX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChhbGlhcz0iYmxvY2tjaGFpbklkIikKICAgIGJhc2VfYXNzZXRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQiLCBhbGlhcz0iYmFzZUFzc2V0SWQiKQogICAgZ2FzbGVzc19jb25maWc6IE9wdGlvbmFsW0dhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc10gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJnYXNsZXNzQ29uZmlnIikKICAgIG11bHRpY2hhaW5fZGVwbG95bWVudF9tZXRhZGF0YTogT3B0aW9uYWxbTXVsdGljaGFpbkRlcGxveW1lbnRNZXRhZGF0YV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJtdWx0aWNoYWluRGVwbG95bWVudE1ldGFkYXRhIikKICAgIHNvbGFuYV9jb25maWc6IE9wdGlvbmFsW1NvbGFuYUNvbmZpZ10gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJzb2xhbmFDb25maWciKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJjb250cmFjdEFkZHJlc3MiLCAiY29udHJhY3RUZW1wbGF0ZUlkIiwgInZhdWx0QWNjb3VudElkIiwgImJsb2NrY2hhaW5JZCIsICJiYXNlQXNzZXRJZCIsICJnYXNsZXNzQ29uZmlnIiwgIm11bHRpY2hhaW5EZXBsb3ltZW50TWV0YWRhdGEiLCAic29sYW5hQ29uZmlnIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBnYXNsZXNzX2NvbmZpZwogICAgICAgIGlmIHNlbGYuZ2FzbGVzc19jb25maWc6CiAgICAgICAgICAgIF9kaWN0WydnYXNsZXNzQ29uZmlnJ10gPSBzZWxmLmdhc2xlc3NfY29uZmlnLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBtdWx0aWNoYWluX2RlcGxveW1lbnRfbWV0YWRhdGEKICAgICAgICBpZiBzZWxmLm11bHRpY2hhaW5fZGVwbG95bWVudF9tZXRhZGF0YToKICAgICAgICAgICAgX2RpY3RbJ211bHRpY2hhaW5EZXBsb3ltZW50TWV0YWRhdGEnXSA9IHNlbGYubXVsdGljaGFpbl9kZXBsb3ltZW50X21ldGFkYXRhLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBzb2xhbmFfY29uZmlnCiAgICAgICAgaWYgc2VsZi5zb2xhbmFfY29uZmlnOgogICAgICAgICAgICBfZGljdFsnc29sYW5hQ29uZmlnJ10gPSBzZWxmLnNvbGFuYV9jb25maWcudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAiY29udHJhY3RBZGRyZXNzIjogb2JqLmdldCgiY29udHJhY3RBZGRyZXNzIiksCiAgICAgICAgICAgICJjb250cmFjdFRlbXBsYXRlSWQiOiBvYmouZ2V0KCJjb250cmFjdFRlbXBsYXRlSWQiKSwKICAgICAgICAgICAgInZhdWx0QWNjb3VudElkIjogb2JqLmdldCgidmF1bHRBY2NvdW50SWQiKSwKICAgICAgICAgICAgImJsb2NrY2hhaW5JZCI6IG9iai5nZXQoImJsb2NrY2hhaW5JZCIpLAogICAgICAgICAgICAiYmFzZUFzc2V0SWQiOiBvYmouZ2V0KCJiYXNlQXNzZXRJZCIpLAogICAgICAgICAgICAiZ2FzbGVzc0NvbmZpZyI6IEdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9ucy5mcm9tX2RpY3Qob2JqWyJnYXNsZXNzQ29uZmlnIl0pIGlmIG9iai5nZXQoImdhc2xlc3NDb25maWciKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJtdWx0aWNoYWluRGVwbG95bWVudE1ldGFkYXRhIjogTXVsdGljaGFpbkRlcGxveW1lbnRNZXRhZGF0YS5mcm9tX2RpY3Qob2JqWyJtdWx0aWNoYWluRGVwbG95bWVudE1ldGFkYXRhIl0pIGlmIG9iai5nZXQoIm11bHRpY2hhaW5EZXBsb3ltZW50TWV0YWRhdGEiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJzb2xhbmFDb25maWciOiBTb2xhbmFDb25maWcuZnJvbV9kaWN0KG9ialsic29sYW5hQ29uZmlnIl0pIGlmIG9iai5nZXQoInNvbGFuYUNvbmZpZyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/deployed_contracts_paginated_response.py b/fireblocks/models/deployed_contracts_paginated_response.py index 33cf6bfa..0539184b 100644 --- a/fireblocks/models/deployed_contracts_paginated_response.py +++ b/fireblocks/models/deployed_contracts_paginated_response.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.lean_deployed_contract_response_dto import LeanDeployedContractResponseDto -from typing import Optional, Set -from typing_extensions import Self - -class DeployedContractsPaginatedResponse(BaseModel): - """ - DeployedContractsPaginatedResponse - """ # noqa: E501 - data: List[LeanDeployedContractResponseDto] = Field(description="The data of the current page") - next: Optional[StrictStr] = Field(default=None, description="The ID of the next page") - __properties: ClassVar[List[str]] = ["data", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DeployedContractsPaginatedResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # set to None if next (nullable) is None - # and model_fields_set contains the field - if self.next is None and "next" in self.model_fields_set: - _dict['next'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DeployedContractsPaginatedResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [LeanDeployedContractResponseDto.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlYW5fZGVwbG95ZWRfY29udHJhY3RfcmVzcG9uc2VfZHRvIGltcG9ydCBMZWFuRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIERlcGxveWVkQ29udHJhY3RzUGFnaW5hdGVkUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgRGVwbG95ZWRDb250cmFjdHNQYWdpbmF0ZWRSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGF0YTogTGlzdFtMZWFuRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGF0YSBvZiB0aGUgY3VycmVudCBwYWdlIikKICAgIG5leHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIG5leHQgcGFnZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRhdGEiLCAibmV4dCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGVwbG95ZWRDb250cmFjdHNQYWdpbmF0ZWRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBkYXRhIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5kYXRhOgogICAgICAgICAgICBmb3IgX2l0ZW1fZGF0YSBpbiBzZWxmLmRhdGE6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9kYXRhOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fZGF0YS50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydkYXRhJ10gPSBfaXRlbXMKICAgICAgICAjIHNldCB0byBOb25lIGlmIG5leHQgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLm5leHQgaXMgTm9uZSBhbmQgIm5leHQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ25leHQnXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZXBsb3llZENvbnRyYWN0c1BhZ2luYXRlZFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRhdGEiOiBbTGVhbkRlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0by5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImRhdGEiXV0gaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm5leHQiOiBvYmouZ2V0KCJuZXh0IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/deposit_funds_from_linked_dda_response.py b/fireblocks/models/deposit_funds_from_linked_dda_response.py index 2fe7e042..85743ab6 100644 --- a/fireblocks/models/deposit_funds_from_linked_dda_response.py +++ b/fireblocks/models/deposit_funds_from_linked_dda_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class DepositFundsFromLinkedDDAResponse(BaseModel): - """ - DepositFundsFromLinkedDDAResponse - """ # noqa: E501 - success: StrictBool = Field(description="Indicates whether the funds were successfully deposited from the linked DDA") - __properties: ClassVar[List[str]] = ["success"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DepositFundsFromLinkedDDAResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DepositFundsFromLinkedDDAResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "success": obj.get("success") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBEZXBvc2l0RnVuZHNGcm9tTGlua2VkRERBUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgRGVwb3NpdEZ1bmRzRnJvbUxpbmtlZEREQVJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzdWNjZXNzOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IkluZGljYXRlcyB3aGV0aGVyIHRoZSBmdW5kcyB3ZXJlIHN1Y2Nlc3NmdWxseSBkZXBvc2l0ZWQgZnJvbSB0aGUgbGlua2VkIEREQSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInN1Y2Nlc3MiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERlcG9zaXRGdW5kc0Zyb21MaW5rZWREREFSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZXBvc2l0RnVuZHNGcm9tTGlua2VkRERBUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3VjY2VzcyI6IG9iai5nZXQoInN1Y2Nlc3MiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/derivation_path_config.py b/fireblocks/models/derivation_path_config.py index bf754a5c..6e22332a 100644 --- a/fireblocks/models/derivation_path_config.py +++ b/fireblocks/models/derivation_path_config.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class DerivationPathConfig(BaseModel): - """ - Derivation path configuration - """ # noqa: E501 - path: List[Union[StrictFloat, StrictInt]] = Field(description="Derivation path as array of numbers") - partial: Optional[StrictBool] = Field(default=None, description="Whether this is a partial path") - __properties: ClassVar[List[str]] = ["path", "partial"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DerivationPathConfig from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DerivationPathConfig from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "path": obj.get("path"), - "partial": obj.get("partial") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwsIFVuaW9uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIERlcml2YXRpb25QYXRoQ29uZmlnKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIERlcml2YXRpb24gcGF0aCBjb25maWd1cmF0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBwYXRoOiBMaXN0W1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJEZXJpdmF0aW9uIHBhdGggYXMgYXJyYXkgb2YgbnVtYmVycyIpCiAgICBwYXJ0aWFsOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IldoZXRoZXIgdGhpcyBpcyBhIHBhcnRpYWwgcGF0aCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInBhdGgiLCAicGFydGlhbCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGVyaXZhdGlvblBhdGhDb25maWcgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGVyaXZhdGlvblBhdGhDb25maWcgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicGF0aCI6IG9iai5nZXQoInBhdGgiKSwKICAgICAgICAgICAgInBhcnRpYWwiOiBvYmouZ2V0KCJwYXJ0aWFsIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/designated_signers_config.py b/fireblocks/models/designated_signers_config.py index d5eab3ad..f1699037 100644 --- a/fireblocks/models/designated_signers_config.py +++ b/fireblocks/models/designated_signers_config.py @@ -1,99 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class DesignatedSignersConfig(BaseModel): - """ - Designated signers configuration - """ # noqa: E501 - type: StrictStr = Field(description="Type of designated signers") - users: Optional[List[StrictStr]] = Field(default=None, description="List of user IDs") - groups: Optional[List[StrictStr]] = Field(default=None, description="List of policy group IDs") - __properties: ClassVar[List[str]] = ["type", "users", "groups"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['SINGLE', 'MULTIPLE', 'INITIATOR']): - raise ValueError("must be one of enum values ('SINGLE', 'MULTIPLE', 'INITIATOR')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DesignatedSignersConfig from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DesignatedSignersConfig from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "users": obj.get("users"), - "groups": obj.get("groups") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIERlc2lnbmF0ZWRTaWduZXJzQ29uZmlnKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIERlc2lnbmF0ZWQgc2lnbmVycyBjb25maWd1cmF0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVHlwZSBvZiBkZXNpZ25hdGVkIHNpZ25lcnMiKQogICAgdXNlcnM6IE9wdGlvbmFsW0xpc3RbU3RyaWN0U3RyXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJMaXN0IG9mIHVzZXIgSURzIikKICAgIGdyb3VwczogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ikxpc3Qgb2YgcG9saWN5IGdyb3VwIElEcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiLCAidXNlcnMiLCAiZ3JvdXBzIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCd0eXBlJykKICAgIGRlZiB0eXBlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ1NJTkdMRScsICdNVUxUSVBMRScsICdJTklUSUFUT1InXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnU0lOR0xFJywgJ01VTFRJUExFJywgJ0lOSVRJQVRPUicpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZXNpZ25hdGVkU2lnbmVyc0NvbmZpZyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZXNpZ25hdGVkU2lnbmVyc0NvbmZpZyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAidXNlcnMiOiBvYmouZ2V0KCJ1c2VycyIpLAogICAgICAgICAgICAiZ3JvdXBzIjogb2JqLmdldCgiZ3JvdXBzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/destination.py b/fireblocks/models/destination.py index 5d545216..87139797 100644 --- a/fireblocks/models/destination.py +++ b/fireblocks/models/destination.py @@ -1,138 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.account import Account -from fireblocks.models.one_time_address_account import OneTimeAddressAccount -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -DESTINATION_ONE_OF_SCHEMAS = ["Account", "OneTimeAddressAccount"] - -class Destination(BaseModel): - """ - Destination - """ - # data type: Account - oneof_schema_1_validator: Optional[Account] = None - # data type: OneTimeAddressAccount - oneof_schema_2_validator: Optional[OneTimeAddressAccount] = None - actual_instance: Optional[Union[Account, OneTimeAddressAccount]] = None - one_of_schemas: Set[str] = { "Account", "OneTimeAddressAccount" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = Destination.model_construct() - error_messages = [] - match = 0 - # validate data type: Account - if not isinstance(v, Account): - error_messages.append(f"Error! Input type `{type(v)}` is not `Account`") - else: - match += 1 - # validate data type: OneTimeAddressAccount - if not isinstance(v, OneTimeAddressAccount): - error_messages.append(f"Error! Input type `{type(v)}` is not `OneTimeAddressAccount`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in Destination with oneOf schemas: Account, OneTimeAddressAccount. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in Destination with oneOf schemas: Account, OneTimeAddressAccount. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into Account - try: - instance.actual_instance = Account.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into OneTimeAddressAccount - try: - instance.actual_instance = OneTimeAddressAccount.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into Destination with oneOf schemas: Account, OneTimeAddressAccount. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into Destination with oneOf schemas: Account, OneTimeAddressAccount. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], Account, OneTimeAddressAccount]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudCBpbXBvcnQgQWNjb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9uZV90aW1lX2FkZHJlc3NfYWNjb3VudCBpbXBvcnQgT25lVGltZUFkZHJlc3NBY2NvdW50CmZyb20gcHlkYW50aWMgaW1wb3J0IFN0cmljdFN0ciwgRmllbGQKZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uLCBMaXN0LCBTZXQsIE9wdGlvbmFsLCBEaWN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IExpdGVyYWwsIFNlbGYKCkRFU1RJTkFUSU9OX09ORV9PRl9TQ0hFTUFTID0gWyJBY2NvdW50IiwgIk9uZVRpbWVBZGRyZXNzQWNjb3VudCJdCgpjbGFzcyBEZXN0aW5hdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBEZXN0aW5hdGlvbgogICAgIiIiCiAgICAjIGRhdGEgdHlwZTogQWNjb3VudAogICAgb25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yOiBPcHRpb25hbFtBY2NvdW50XSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBPbmVUaW1lQWRkcmVzc0FjY291bnQKICAgIG9uZW9mX3NjaGVtYV8yX3ZhbGlkYXRvcjogT3B0aW9uYWxbT25lVGltZUFkZHJlc3NBY2NvdW50XSA9IE5vbmUKICAgIGFjdHVhbF9pbnN0YW5jZTogT3B0aW9uYWxbVW5pb25bQWNjb3VudCwgT25lVGltZUFkZHJlc3NBY2NvdW50XV0gPSBOb25lCiAgICBvbmVfb2Zfc2NoZW1hczogU2V0W3N0cl0gPSB7ICJBY2NvdW50IiwgIk9uZVRpbWVBZGRyZXNzQWNjb3VudCIgfQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKSAtPiBOb25lOgogICAgICAgIGlmIGFyZ3M6CiAgICAgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIG9ubHkgMSBpcyBhbGxvd2VkIHRvIHNldCBgYWN0dWFsX2luc3RhbmNlYCIpCiAgICAgICAgICAgIGlmIGt3YXJnczoKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwga2V5d29yZCBhcmd1bWVudHMgY2Fubm90IGJlIHVzZWQuIikKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhhY3R1YWxfaW5zdGFuY2U9YXJnc1swXSkKICAgICAgICBlbHNlOgogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FjdHVhbF9pbnN0YW5jZScpCiAgICBkZWYgYWN0dWFsX2luc3RhbmNlX211c3RfdmFsaWRhdGVfb25lb2YoY2xzLCB2KToKICAgICAgICBpbnN0YW5jZSA9IERlc3RpbmF0aW9uLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBBY2NvdW50CiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgQWNjb3VudCk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgQWNjb3VudGAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogT25lVGltZUFkZHJlc3NBY2NvdW50CiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgT25lVGltZUFkZHJlc3NBY2NvdW50KToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBPbmVUaW1lQWRkcmVzc0FjY291bnRgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIERlc3RpbmF0aW9uIHdpdGggb25lT2Ygc2NoZW1hczogQWNjb3VudCwgT25lVGltZUFkZHJlc3NBY2NvdW50LiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIERlc3RpbmF0aW9uIHdpdGggb25lT2Ygc2NoZW1hczogQWNjb3VudCwgT25lVGltZUFkZHJlc3NBY2NvdW50LiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gdgoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogVW5pb25bc3RyLCBEaWN0W3N0ciwgQW55XV0pIC0+IFNlbGY6CiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2pzb24oanNvbi5kdW1wcyhvYmopKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgb2JqZWN0IHJlcHJlc2VudGVkIGJ5IHRoZSBqc29uIHN0cmluZyIiIgogICAgICAgIGluc3RhbmNlID0gY2xzLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAoKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBBY2NvdW50CiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBBY2NvdW50LmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIE9uZVRpbWVBZGRyZXNzQWNjb3VudAogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gT25lVGltZUFkZHJlc3NBY2NvdW50LmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQoKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gRGVzdGluYXRpb24gd2l0aCBvbmVPZiBzY2hlbWFzOiBBY2NvdW50LCBPbmVUaW1lQWRkcmVzc0FjY291bnQuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gRGVzdGluYXRpb24gd2l0aCBvbmVPZiBzY2hlbWFzOiBBY2NvdW50LCBPbmVUaW1lQWRkcmVzc0FjY291bnQuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gIm51bGwiCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19qc29uIikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24pOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbigpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi5hY3R1YWxfaW5zdGFuY2UpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gT3B0aW9uYWxbVW5pb25bRGljdFtzdHIsIEFueV0sIEFjY291bnQsIE9uZVRpbWVBZGRyZXNzQWNjb3VudF1dOgogICAgICAgICIiIlJldHVybnMgdGhlIGRpY3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19kaWN0IikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QpOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCgpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgIyBwcmltaXRpdmUgdHlwZQogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/destination_config.py b/fireblocks/models/destination_config.py index 3c0db634..dfc3e24e 100644 --- a/fireblocks/models/destination_config.py +++ b/fireblocks/models/destination_config.py @@ -1,142 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.account_identifier import AccountIdentifier -from fireblocks.models.account_type2 import AccountType2 -from fireblocks.models.policy_operator import PolicyOperator -from fireblocks.models.policy_tag import PolicyTag -from typing import Optional, Set -from typing_extensions import Self - -class DestinationConfig(BaseModel): - """ - Destination configuration for policy rules - """ # noqa: E501 - type: Optional[List[AccountType2]] = Field(default=None, description="Destination account types") - sub_type: Optional[List[AccountIdentifier]] = Field(default=None, alias="subType") - ids: Optional[List[AccountIdentifier]] = None - tags: Optional[List[PolicyTag]] = Field(default=None, description="Tags for destination matching") - operator: PolicyOperator - match_from: Optional[StrictStr] = Field(default=None, description="Whether to match from account or source (relevant only for ORDER policy type). If set to ACCOUNT, only matchFrom is allowed and other fields are not required.", alias="matchFrom") - address_type: StrictStr = Field(description="Type of destination addresses allowed", alias="addressType") - __properties: ClassVar[List[str]] = ["type", "subType", "ids", "tags", "operator", "matchFrom", "addressType"] - - @field_validator('match_from') - def match_from_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['ACCOUNT', 'SOURCE']): - raise ValueError("must be one of enum values ('ACCOUNT', 'SOURCE')") - return value - - @field_validator('address_type') - def address_type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['*', 'WHITELISTED', 'ONE_TIME']): - raise ValueError("must be one of enum values ('*', 'WHITELISTED', 'ONE_TIME')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DestinationConfig from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in sub_type (list) - _items = [] - if self.sub_type: - for _item_sub_type in self.sub_type: - if _item_sub_type: - _items.append(_item_sub_type.to_dict()) - _dict['subType'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in ids (list) - _items = [] - if self.ids: - for _item_ids in self.ids: - if _item_ids: - _items.append(_item_ids.to_dict()) - _dict['ids'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in tags (list) - _items = [] - if self.tags: - for _item_tags in self.tags: - if _item_tags: - _items.append(_item_tags.to_dict()) - _dict['tags'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DestinationConfig from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "subType": [AccountIdentifier.from_dict(_item) for _item in obj["subType"]] if obj.get("subType") is not None else None, - "ids": [AccountIdentifier.from_dict(_item) for _item in obj["ids"]] if obj.get("ids") is not None else None, - "tags": [PolicyTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, - "operator": obj.get("operator"), - "matchFrom": obj.get("matchFrom"), - "addressType": obj.get("addressType") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9pZGVudGlmaWVyIGltcG9ydCBBY2NvdW50SWRlbnRpZmllcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfdHlwZTIgaW1wb3J0IEFjY291bnRUeXBlMgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9vcGVyYXRvciBpbXBvcnQgUG9saWN5T3BlcmF0b3IKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfdGFnIGltcG9ydCBQb2xpY3lUYWcKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRGVzdGluYXRpb25Db25maWcoQmFzZU1vZGVsKToKICAgICIiIgogICAgRGVzdGluYXRpb24gY29uZmlndXJhdGlvbiBmb3IgcG9saWN5IHJ1bGVzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBPcHRpb25hbFtMaXN0W0FjY291bnRUeXBlMl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVzdGluYXRpb24gYWNjb3VudCB0eXBlcyIpCiAgICBzdWJfdHlwZTogT3B0aW9uYWxbTGlzdFtBY2NvdW50SWRlbnRpZmllcl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ic3ViVHlwZSIpCiAgICBpZHM6IE9wdGlvbmFsW0xpc3RbQWNjb3VudElkZW50aWZpZXJdXSA9IE5vbmUKICAgIHRhZ3M6IE9wdGlvbmFsW0xpc3RbUG9saWN5VGFnXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUYWdzIGZvciBkZXN0aW5hdGlvbiBtYXRjaGluZyIpCiAgICBvcGVyYXRvcjogUG9saWN5T3BlcmF0b3IKICAgIG1hdGNoX2Zyb206IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJXaGV0aGVyIHRvIG1hdGNoIGZyb20gYWNjb3VudCBvciBzb3VyY2UgKHJlbGV2YW50IG9ubHkgZm9yIE9SREVSIHBvbGljeSB0eXBlKS4gSWYgc2V0IHRvIEFDQ09VTlQsIG9ubHkgbWF0Y2hGcm9tIGlzIGFsbG93ZWQgYW5kIG90aGVyIGZpZWxkcyBhcmUgbm90IHJlcXVpcmVkLiIsIGFsaWFzPSJtYXRjaEZyb20iKQogICAgYWRkcmVzc190eXBlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVHlwZSBvZiBkZXN0aW5hdGlvbiBhZGRyZXNzZXMgYWxsb3dlZCIsIGFsaWFzPSJhZGRyZXNzVHlwZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiLCAic3ViVHlwZSIsICJpZHMiLCAidGFncyIsICJvcGVyYXRvciIsICJtYXRjaEZyb20iLCAiYWRkcmVzc1R5cGUiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ21hdGNoX2Zyb20nKQogICAgZGVmIG1hdGNoX2Zyb21fdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gdmFsdWUKCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0FDQ09VTlQnLCAnU09VUkNFJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0FDQ09VTlQnLCAnU09VUkNFJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FkZHJlc3NfdHlwZScpCiAgICBkZWYgYWRkcmVzc190eXBlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJyonLCAnV0hJVEVMSVNURUQnLCAnT05FX1RJTUUnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnKicsICdXSElURUxJU1RFRCcsICdPTkVfVElNRScpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZXN0aW5hdGlvbkNvbmZpZyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBzdWJfdHlwZSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuc3ViX3R5cGU6CiAgICAgICAgICAgIGZvciBfaXRlbV9zdWJfdHlwZSBpbiBzZWxmLnN1Yl90eXBlOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fc3ViX3R5cGU6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9zdWJfdHlwZS50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydzdWJUeXBlJ10gPSBfaXRlbXMKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGlkcyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuaWRzOgogICAgICAgICAgICBmb3IgX2l0ZW1faWRzIGluIHNlbGYuaWRzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1faWRzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1faWRzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2lkcyddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiB0YWdzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi50YWdzOgogICAgICAgICAgICBmb3IgX2l0ZW1fdGFncyBpbiBzZWxmLnRhZ3M6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV90YWdzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fdGFncy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0Wyd0YWdzJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERlc3RpbmF0aW9uQ29uZmlnIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIiksCiAgICAgICAgICAgICJzdWJUeXBlIjogW0FjY291bnRJZGVudGlmaWVyLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsic3ViVHlwZSJdXSBpZiBvYmouZ2V0KCJzdWJUeXBlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiaWRzIjogW0FjY291bnRJZGVudGlmaWVyLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiaWRzIl1dIGlmIG9iai5nZXQoImlkcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInRhZ3MiOiBbUG9saWN5VGFnLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsidGFncyJdXSBpZiBvYmouZ2V0KCJ0YWdzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAib3BlcmF0b3IiOiBvYmouZ2V0KCJvcGVyYXRvciIpLAogICAgICAgICAgICAibWF0Y2hGcm9tIjogb2JqLmdldCgibWF0Y2hGcm9tIiksCiAgICAgICAgICAgICJhZGRyZXNzVHlwZSI6IG9iai5nZXQoImFkZHJlc3NUeXBlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/destination_transfer_peer_path.py b/fireblocks/models/destination_transfer_peer_path.py index ca172874..b2138bcd 100644 --- a/fireblocks/models/destination_transfer_peer_path.py +++ b/fireblocks/models/destination_transfer_peer_path.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.one_time_address import OneTimeAddress -from fireblocks.models.transfer_peer_path_sub_type import TransferPeerPathSubType -from fireblocks.models.transfer_peer_path_type import TransferPeerPathType -from typing import Optional, Set -from typing_extensions import Self - -class DestinationTransferPeerPath(BaseModel): - """ - The destination of the transaction. - """ # noqa: E501 - type: TransferPeerPathType - sub_type: Optional[TransferPeerPathSubType] = Field(default=None, alias="subType") - id: Optional[StrictStr] = None - name: Optional[StrictStr] = None - wallet_id: Optional[StrictStr] = Field(default=None, alias="walletId") - one_time_address: Optional[OneTimeAddress] = Field(default=None, alias="oneTimeAddress") - is_collateral: Optional[StrictBool] = Field(default=None, description="indicate if the destination is collateral account", alias="isCollateral") - __properties: ClassVar[List[str]] = ["type", "subType", "id", "name", "walletId", "oneTimeAddress", "isCollateral"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DestinationTransferPeerPath from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of one_time_address - if self.one_time_address: - _dict['oneTimeAddress'] = self.one_time_address.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DestinationTransferPeerPath from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "subType": obj.get("subType"), - "id": obj.get("id"), - "name": obj.get("name"), - "walletId": obj.get("walletId"), - "oneTimeAddress": OneTimeAddress.from_dict(obj["oneTimeAddress"]) if obj.get("oneTimeAddress") is not None else None, - "isCollateral": obj.get("isCollateral") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9uZV90aW1lX2FkZHJlc3MgaW1wb3J0IE9uZVRpbWVBZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfcGVlcl9wYXRoX3N1Yl90eXBlIGltcG9ydCBUcmFuc2ZlclBlZXJQYXRoU3ViVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3BlZXJfcGF0aF90eXBlIGltcG9ydCBUcmFuc2ZlclBlZXJQYXRoVHlwZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgoQmFzZU1vZGVsKToKICAgICIiIgogICAgVGhlIGRlc3RpbmF0aW9uIG9mIHRoZSB0cmFuc2FjdGlvbi4KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR5cGU6IFRyYW5zZmVyUGVlclBhdGhUeXBlCiAgICBzdWJfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyUGF0aFN1YlR5cGVdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ic3ViVHlwZSIpCiAgICBpZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIG5hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICB3YWxsZXRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJ3YWxsZXRJZCIpCiAgICBvbmVfdGltZV9hZGRyZXNzOiBPcHRpb25hbFtPbmVUaW1lQWRkcmVzc10gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJvbmVUaW1lQWRkcmVzcyIpCiAgICBpc19jb2xsYXRlcmFsOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249ImluZGljYXRlIGlmIHRoZSBkZXN0aW5hdGlvbiBpcyBjb2xsYXRlcmFsIGFjY291bnQiLCBhbGlhcz0iaXNDb2xsYXRlcmFsIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidHlwZSIsICJzdWJUeXBlIiwgImlkIiwgIm5hbWUiLCAid2FsbGV0SWQiLCAib25lVGltZUFkZHJlc3MiLCAiaXNDb2xsYXRlcmFsIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGggZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBvbmVfdGltZV9hZGRyZXNzCiAgICAgICAgaWYgc2VsZi5vbmVfdGltZV9hZGRyZXNzOgogICAgICAgICAgICBfZGljdFsnb25lVGltZUFkZHJlc3MnXSA9IHNlbGYub25lX3RpbWVfYWRkcmVzcy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAic3ViVHlwZSI6IG9iai5nZXQoInN1YlR5cGUiKSwKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJ3YWxsZXRJZCI6IG9iai5nZXQoIndhbGxldElkIiksCiAgICAgICAgICAgICJvbmVUaW1lQWRkcmVzcyI6IE9uZVRpbWVBZGRyZXNzLmZyb21fZGljdChvYmpbIm9uZVRpbWVBZGRyZXNzIl0pIGlmIG9iai5nZXQoIm9uZVRpbWVBZGRyZXNzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiaXNDb2xsYXRlcmFsIjogb2JqLmdldCgiaXNDb2xsYXRlcmFsIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/destination_transfer_peer_path_response.py b/fireblocks/models/destination_transfer_peer_path_response.py index 28b2f303..254669df 100644 --- a/fireblocks/models/destination_transfer_peer_path_response.py +++ b/fireblocks/models/destination_transfer_peer_path_response.py @@ -1,109 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.transfer_peer_path_type import TransferPeerPathType -from typing import Optional, Set -from typing_extensions import Self - -class DestinationTransferPeerPathResponse(BaseModel): - """ - Destination of the transaction. **Note:** In case the transaction is sent to multiple destinations, the `destinations` parameter is be used instead of this. - """ # noqa: E501 - type: TransferPeerPathType - sub_type: Optional[StrictStr] = Field(default=None, description="In case the type is set to `EXCHANGE_ACCOUNT` or `FIAT_ACCOUNT`, the specific exchange vendor name or fiat vendor name.In case the type is set to `INTERNAL_WALLET` or `EXTERNAL_WALLET`, the subType is set to `Internal` or `External`.", alias="subType") - id: Optional[StrictStr] = Field(default=None, description="The ID of the peer. You can retrieve the ID of each venue object using the endpoints for [listing vault accounts](https://developers.fireblocks.com/reference/getpagedvaultaccounts), [listing exchange account](https://developers.fireblocks.com/reference/getexchangeaccounts), [listing fiat accounts](https://developers.fireblocks.com/reference/getfiataccounts), [listing internal wallets](https://developers.fireblocks.com/reference/getinternalwallets), [listing external wallets](https://developers.fireblocks.com/reference/getexternalwallets), [listing network connections](https://developers.fireblocks.com/reference/getnetworkconnections). For the other types, this parameter is not needed.") - name: Optional[StrictStr] = Field(default=None, description="The name of the peer.") - wallet_id: Optional[StrictStr] = Field(default=None, alias="walletId") - trading_account: Optional[StrictStr] = Field(default=None, description="If this transaction is an exchange internal transfer, this field will be populated with the type of that trading account.", alias="tradingAccount") - __properties: ClassVar[List[str]] = ["type", "subType", "id", "name", "walletId", "tradingAccount"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DestinationTransferPeerPathResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if id (nullable) is None - # and model_fields_set contains the field - if self.id is None and "id" in self.model_fields_set: - _dict['id'] = None - - # set to None if trading_account (nullable) is None - # and model_fields_set contains the field - if self.trading_account is None and "trading_account" in self.model_fields_set: - _dict['tradingAccount'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DestinationTransferPeerPathResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "subType": obj.get("subType"), - "id": obj.get("id"), - "name": obj.get("name"), - "walletId": obj.get("walletId"), - "tradingAccount": obj.get("tradingAccount") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3BlZXJfcGF0aF90eXBlIGltcG9ydCBUcmFuc2ZlclBlZXJQYXRoVHlwZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGhSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBEZXN0aW5hdGlvbiBvZiB0aGUgdHJhbnNhY3Rpb24uICAqKk5vdGU6KiogSW4gY2FzZSB0aGUgdHJhbnNhY3Rpb24gaXMgc2VudCB0byBtdWx0aXBsZSBkZXN0aW5hdGlvbnMsIHRoZSBgZGVzdGluYXRpb25zYCBwYXJhbWV0ZXIgaXMgYmUgdXNlZCBpbnN0ZWFkIG9mIHRoaXMuCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBUcmFuc2ZlclBlZXJQYXRoVHlwZQogICAgc3ViX3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJbiBjYXNlIHRoZSB0eXBlIGlzIHNldCB0byBgRVhDSEFOR0VfQUNDT1VOVGAgb3IgYEZJQVRfQUNDT1VOVGAsIHRoZSBzcGVjaWZpYyBleGNoYW5nZSB2ZW5kb3IgbmFtZSBvciBmaWF0IHZlbmRvciBuYW1lLkluIGNhc2UgdGhlIHR5cGUgaXMgc2V0IHRvIGBJTlRFUk5BTF9XQUxMRVRgIG9yIGBFWFRFUk5BTF9XQUxMRVRgLCB0aGUgc3ViVHlwZSBpcyBzZXQgdG8gYEludGVybmFsYCBvciBgRXh0ZXJuYWxgLiIsIGFsaWFzPSJzdWJUeXBlIikKICAgIGlkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBwZWVyLiBZb3UgY2FuIHJldHJpZXZlIHRoZSBJRCBvZiBlYWNoIHZlbnVlIG9iamVjdCB1c2luZyB0aGUgZW5kcG9pbnRzIGZvciBbbGlzdGluZyB2YXVsdCBhY2NvdW50c10oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS9nZXRwYWdlZHZhdWx0YWNjb3VudHMpLCBbbGlzdGluZyBleGNoYW5nZSBhY2NvdW50XShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2dldGV4Y2hhbmdlYWNjb3VudHMpLCBbbGlzdGluZyBmaWF0IGFjY291bnRzXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2dldGZpYXRhY2NvdW50cyksIFtsaXN0aW5nIGludGVybmFsIHdhbGxldHNdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9yZWZlcmVuY2UvZ2V0aW50ZXJuYWx3YWxsZXRzKSwgW2xpc3RpbmcgZXh0ZXJuYWwgd2FsbGV0c10oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS9nZXRleHRlcm5hbHdhbGxldHMpLCBbbGlzdGluZyBuZXR3b3JrIGNvbm5lY3Rpb25zXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2dldG5ldHdvcmtjb25uZWN0aW9ucykuIEZvciB0aGUgb3RoZXIgdHlwZXMsIHRoaXMgcGFyYW1ldGVyIGlzIG5vdCBuZWVkZWQuIikKICAgIG5hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgbmFtZSBvZiB0aGUgcGVlci4iKQogICAgd2FsbGV0X2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0id2FsbGV0SWQiKQogICAgdHJhZGluZ19hY2NvdW50OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSWYgdGhpcyB0cmFuc2FjdGlvbiBpcyBhbiBleGNoYW5nZSBpbnRlcm5hbCB0cmFuc2ZlciwgdGhpcyBmaWVsZCB3aWxsIGJlIHBvcHVsYXRlZCB3aXRoIHRoZSB0eXBlIG9mIHRoYXQgdHJhZGluZyBhY2NvdW50LiIsIGFsaWFzPSJ0cmFkaW5nQWNjb3VudCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiLCAic3ViVHlwZSIsICJpZCIsICJuYW1lIiwgIndhbGxldElkIiwgInRyYWRpbmdBY2NvdW50Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGhSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBpZCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuaWQgaXMgTm9uZSBhbmQgImlkIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydpZCddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIHRyYWRpbmdfYWNjb3VudCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYudHJhZGluZ19hY2NvdW50IGlzIE5vbmUgYW5kICJ0cmFkaW5nX2FjY291bnQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3RyYWRpbmdBY2NvdW50J10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgInN1YlR5cGUiOiBvYmouZ2V0KCJzdWJUeXBlIiksCiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAid2FsbGV0SWQiOiBvYmouZ2V0KCJ3YWxsZXRJZCIpLAogICAgICAgICAgICAidHJhZGluZ0FjY291bnQiOiBvYmouZ2V0KCJ0cmFkaW5nQWNjb3VudCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/direct_access.py b/fireblocks/models/direct_access.py index ef18515f..f296ec3f 100644 --- a/fireblocks/models/direct_access.py +++ b/fireblocks/models/direct_access.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class DirectAccess(BaseModel): - """ - DirectAccess - """ # noqa: E501 - type: StrictStr = Field(description="Indicates this uses direct provider access") - provider_id: StrictStr = Field(description="The ID of the provider", alias="providerId") - __properties: ClassVar[List[str]] = ["type", "providerId"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['PROVIDER']): - raise ValueError("must be one of enum values ('PROVIDER')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DirectAccess from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DirectAccess from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "providerId": obj.get("providerId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRGlyZWN0QWNjZXNzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIERpcmVjdEFjY2VzcwogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkluZGljYXRlcyB0aGlzIHVzZXMgZGlyZWN0IHByb3ZpZGVyIGFjY2VzcyIpCiAgICBwcm92aWRlcl9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgcHJvdmlkZXIiLCBhbGlhcz0icHJvdmlkZXJJZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiLCAicHJvdmlkZXJJZCJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigndHlwZScpCiAgICBkZWYgdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydQUk9WSURFUiddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdQUk9WSURFUicpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXJlY3RBY2Nlc3MgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlyZWN0QWNjZXNzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIiksCiAgICAgICAgICAgICJwcm92aWRlcklkIjogb2JqLmdldCgicHJvdmlkZXJJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/direct_access_provider.py b/fireblocks/models/direct_access_provider.py index 8ef16c8d..9891e6cc 100644 --- a/fireblocks/models/direct_access_provider.py +++ b/fireblocks/models/direct_access_provider.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class DirectAccessProvider(BaseModel): - """ - DirectAccessProvider - """ # noqa: E501 - id: StrictStr = Field(description="Unique identifier for the provider") - name: StrictStr = Field(description="Display name of the provider") - logo: Optional[StrictStr] = Field(default=None, description="URL to the logo image of the provider") - account_based: StrictBool = Field(description="Indicates whether the provider access model is through accounts or directly", alias="accountBased") - approved: Optional[StrictBool] = Field(default=None, description="Whether the provider was approved for use") - has_terms_of_service: StrictBool = Field(description="Whether the provider has terms of service", alias="hasTermsOfService") - terms_of_service_url: Optional[StrictStr] = Field(default=None, description="URL to the terms of service document", alias="termsOfServiceUrl") - __properties: ClassVar[List[str]] = ["id", "name", "logo", "accountBased", "approved", "hasTermsOfService", "termsOfServiceUrl"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DirectAccessProvider from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DirectAccessProvider from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name"), - "logo": obj.get("logo"), - "accountBased": obj.get("accountBased"), - "approved": obj.get("approved"), - "hasTermsOfService": obj.get("hasTermsOfService"), - "termsOfServiceUrl": obj.get("termsOfServiceUrl") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hbmlmZXN0IGltcG9ydCBNYW5pZmVzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBEaXJlY3RBY2Nlc3NQcm92aWRlcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBEaXJlY3RBY2Nlc3NQcm92aWRlcgogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHByb3ZpZGVyIikKICAgIG5hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJEaXNwbGF5IG5hbWUgb2YgdGhlIHByb3ZpZGVyIikKICAgIGxvZ286IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJVUkwgdG8gdGhlIGxvZ28gaW1hZ2Ugb2YgdGhlIHByb3ZpZGVyIikKICAgIGFjY291bnRfYmFzZWQ6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHByb3ZpZGVyIGFjY2VzcyBtb2RlbCBpcyB0aHJvdWdoIGFjY291bnRzIG9yIGRpcmVjdGx5IiwgYWxpYXM9ImFjY291bnRCYXNlZCIpCiAgICBtYW5pZmVzdDogTWFuaWZlc3QKICAgIGFwcHJvdmVkOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IldoZXRoZXIgdGhlIHByb3ZpZGVyIHdhcyBhcHByb3ZlZCBmb3IgdXNlIikKICAgIGhhc190ZXJtc19vZl9zZXJ2aWNlOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IldoZXRoZXIgdGhlIHByb3ZpZGVyIGhhcyB0ZXJtcyBvZiBzZXJ2aWNlIiwgYWxpYXM9Imhhc1Rlcm1zT2ZTZXJ2aWNlIikKICAgIHRlcm1zX29mX3NlcnZpY2VfdXJsOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVVJMIHRvIHRoZSB0ZXJtcyBvZiBzZXJ2aWNlIGRvY3VtZW50IiwgYWxpYXM9InRlcm1zT2ZTZXJ2aWNlVXJsIikKICAgIHByaXZhY3lfcG9saWN5X3VybDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlVSTCB0byB0aGUgcHJpdmFjeSBwb2xpY3kgZG9jdW1lbnQiLCBhbGlhcz0icHJpdmFjeVBvbGljeVVybCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgIm5hbWUiLCAibG9nbyIsICJhY2NvdW50QmFzZWQiLCAibWFuaWZlc3QiLCAiYXBwcm92ZWQiLCAiaGFzVGVybXNPZlNlcnZpY2UiLCAidGVybXNPZlNlcnZpY2VVcmwiLCAicHJpdmFjeVBvbGljeVVybCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlyZWN0QWNjZXNzUHJvdmlkZXIgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBtYW5pZmVzdAogICAgICAgIGlmIHNlbGYubWFuaWZlc3Q6CiAgICAgICAgICAgIF9kaWN0WydtYW5pZmVzdCddID0gc2VsZi5tYW5pZmVzdC50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERpcmVjdEFjY2Vzc1Byb3ZpZGVyIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJsb2dvIjogb2JqLmdldCgibG9nbyIpLAogICAgICAgICAgICAiYWNjb3VudEJhc2VkIjogb2JqLmdldCgiYWNjb3VudEJhc2VkIiksCiAgICAgICAgICAgICJtYW5pZmVzdCI6IE1hbmlmZXN0LmZyb21fZGljdChvYmpbIm1hbmlmZXN0Il0pIGlmIG9iai5nZXQoIm1hbmlmZXN0IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiYXBwcm92ZWQiOiBvYmouZ2V0KCJhcHByb3ZlZCIpLAogICAgICAgICAgICAiaGFzVGVybXNPZlNlcnZpY2UiOiBvYmouZ2V0KCJoYXNUZXJtc09mU2VydmljZSIpLAogICAgICAgICAgICAidGVybXNPZlNlcnZpY2VVcmwiOiBvYmouZ2V0KCJ0ZXJtc09mU2VydmljZVVybCIpLAogICAgICAgICAgICAicHJpdmFjeVBvbGljeVVybCI6IG9iai5nZXQoInByaXZhY3lQb2xpY3lVcmwiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/direct_access_provider_info.py b/fireblocks/models/direct_access_provider_info.py new file mode 100644 index 00000000..43d9b2ed --- /dev/null +++ b/fireblocks/models/direct_access_provider_info.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBEaXJlY3RBY2Nlc3NQcm92aWRlckluZm8oQmFzZU1vZGVsKToKICAgICIiIgogICAgRGlyZWN0QWNjZXNzUHJvdmlkZXJJbmZvCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhcHByb3ZlZDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJXaGV0aGVyIHRoZSBwcm92aWRlciB3YXMgYXBwcm92ZWQgZm9yIHVzZSIpCiAgICBoYXNfdGVybXNfb2Zfc2VydmljZTogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJXaGV0aGVyIHRoZSBwcm92aWRlciBoYXMgdGVybXMgb2Ygc2VydmljZSIsIGFsaWFzPSJoYXNUZXJtc09mU2VydmljZSIpCiAgICB0ZXJtc19vZl9zZXJ2aWNlX3VybDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlVSTCB0byB0aGUgdGVybXMgb2Ygc2VydmljZSBkb2N1bWVudCIsIGFsaWFzPSJ0ZXJtc09mU2VydmljZVVybCIpCiAgICBwcml2YWN5X3BvbGljeV91cmw6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJVUkwgdG8gdGhlIHByaXZhY3kgcG9saWN5IGRvY3VtZW50IiwgYWxpYXM9InByaXZhY3lQb2xpY3lVcmwiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhcHByb3ZlZCIsICJoYXNUZXJtc09mU2VydmljZSIsICJ0ZXJtc09mU2VydmljZVVybCIsICJwcml2YWN5UG9saWN5VXJsIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXJlY3RBY2Nlc3NQcm92aWRlckluZm8gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlyZWN0QWNjZXNzUHJvdmlkZXJJbmZvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFwcHJvdmVkIjogb2JqLmdldCgiYXBwcm92ZWQiKSwKICAgICAgICAgICAgImhhc1Rlcm1zT2ZTZXJ2aWNlIjogb2JqLmdldCgiaGFzVGVybXNPZlNlcnZpY2UiKSwKICAgICAgICAgICAgInRlcm1zT2ZTZXJ2aWNlVXJsIjogb2JqLmdldCgidGVybXNPZlNlcnZpY2VVcmwiKSwKICAgICAgICAgICAgInByaXZhY3lQb2xpY3lVcmwiOiBvYmouZ2V0KCJwcml2YWN5UG9saWN5VXJsIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/direct_provider_details.py b/fireblocks/models/direct_provider_details.py new file mode 100644 index 00000000..f1440c56 --- /dev/null +++ b/fireblocks/models/direct_provider_details.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hbmlmZXN0IGltcG9ydCBNYW5pZmVzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBEaXJlY3RQcm92aWRlckRldGFpbHMoQmFzZU1vZGVsKToKICAgICIiIgogICAgRGlyZWN0UHJvdmlkZXJEZXRhaWxzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcHJvdmlkZXIiKQogICAgbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkRpc3BsYXkgbmFtZSBvZiB0aGUgcHJvdmlkZXIiKQogICAgbG9nbzogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlVSTCB0byB0aGUgbG9nbyBpbWFnZSBvZiB0aGUgcHJvdmlkZXIiKQogICAgYWNjb3VudF9iYXNlZDogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJbmRpY2F0ZXMgd2hldGhlciB0aGUgcHJvdmlkZXIgYWNjZXNzIG1vZGVsIGlzIHRocm91Z2ggYWNjb3VudHMgb3IgZGlyZWN0bHkiLCBhbGlhcz0iYWNjb3VudEJhc2VkIikKICAgIG1hbmlmZXN0OiBNYW5pZmVzdAogICAgYXBwcm92ZWQ6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iV2hldGhlciB0aGUgcHJvdmlkZXIgd2FzIGFwcHJvdmVkIGZvciB1c2UiKQogICAgaGFzX3Rlcm1zX29mX3NlcnZpY2U6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iV2hldGhlciB0aGUgcHJvdmlkZXIgaGFzIHRlcm1zIG9mIHNlcnZpY2UiLCBhbGlhcz0iaGFzVGVybXNPZlNlcnZpY2UiKQogICAgdGVybXNfb2Zfc2VydmljZV91cmw6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJVUkwgdG8gdGhlIHRlcm1zIG9mIHNlcnZpY2UgZG9jdW1lbnQiLCBhbGlhcz0idGVybXNPZlNlcnZpY2VVcmwiKQogICAgcHJpdmFjeV9wb2xpY3lfdXJsOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVVJMIHRvIHRoZSBwcml2YWN5IHBvbGljeSBkb2N1bWVudCIsIGFsaWFzPSJwcml2YWN5UG9saWN5VXJsIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAibmFtZSIsICJsb2dvIiwgImFjY291bnRCYXNlZCIsICJtYW5pZmVzdCIsICJhcHByb3ZlZCIsICJoYXNUZXJtc09mU2VydmljZSIsICJ0ZXJtc09mU2VydmljZVVybCIsICJwcml2YWN5UG9saWN5VXJsIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXJlY3RQcm92aWRlckRldGFpbHMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBtYW5pZmVzdAogICAgICAgIGlmIHNlbGYubWFuaWZlc3Q6CiAgICAgICAgICAgIF9kaWN0WydtYW5pZmVzdCddID0gc2VsZi5tYW5pZmVzdC50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERpcmVjdFByb3ZpZGVyRGV0YWlscyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAibG9nbyI6IG9iai5nZXQoImxvZ28iKSwKICAgICAgICAgICAgImFjY291bnRCYXNlZCI6IG9iai5nZXQoImFjY291bnRCYXNlZCIpLAogICAgICAgICAgICAibWFuaWZlc3QiOiBNYW5pZmVzdC5mcm9tX2RpY3Qob2JqWyJtYW5pZmVzdCJdKSBpZiBvYmouZ2V0KCJtYW5pZmVzdCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImFwcHJvdmVkIjogb2JqLmdldCgiYXBwcm92ZWQiKSwKICAgICAgICAgICAgImhhc1Rlcm1zT2ZTZXJ2aWNlIjogb2JqLmdldCgiaGFzVGVybXNPZlNlcnZpY2UiKSwKICAgICAgICAgICAgInRlcm1zT2ZTZXJ2aWNlVXJsIjogb2JqLmdldCgidGVybXNPZlNlcnZpY2VVcmwiKSwKICAgICAgICAgICAgInByaXZhY3lQb2xpY3lVcmwiOiBvYmouZ2V0KCJwcml2YWN5UG9saWN5VXJsIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/disbursement_amount_instruction.py b/fireblocks/models/disbursement_amount_instruction.py index 69272edf..90ea693b 100644 --- a/fireblocks/models/disbursement_amount_instruction.py +++ b/fireblocks/models/disbursement_amount_instruction.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.destination import Destination -from typing import Optional, Set -from typing_extensions import Self - -class DisbursementAmountInstruction(BaseModel): - """ - DisbursementAmountInstruction - """ # noqa: E501 - payee_account: Destination = Field(alias="payeeAccount") - asset_id: StrictStr = Field(alias="assetId") - amount: StrictStr - __properties: ClassVar[List[str]] = ["payeeAccount", "assetId", "amount"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DisbursementAmountInstruction from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of payee_account - if self.payee_account: - _dict['payeeAccount'] = self.payee_account.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DisbursementAmountInstruction from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "payeeAccount": Destination.from_dict(obj["payeeAccount"]) if obj.get("payeeAccount") is not None else None, - "assetId": obj.get("assetId"), - "amount": obj.get("amount") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzdGluYXRpb24gaW1wb3J0IERlc3RpbmF0aW9uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIERpc2J1cnNlbWVudEFtb3VudEluc3RydWN0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIERpc2J1cnNlbWVudEFtb3VudEluc3RydWN0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBwYXllZV9hY2NvdW50OiBEZXN0aW5hdGlvbiA9IEZpZWxkKGFsaWFzPSJwYXllZUFjY291bnQiKQogICAgYXNzZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJhc3NldElkIikKICAgIGFtb3VudDogU3RyaWN0U3RyCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInBheWVlQWNjb3VudCIsICJhc3NldElkIiwgImFtb3VudCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlzYnVyc2VtZW50QW1vdW50SW5zdHJ1Y3Rpb24gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBwYXllZV9hY2NvdW50CiAgICAgICAgaWYgc2VsZi5wYXllZV9hY2NvdW50OgogICAgICAgICAgICBfZGljdFsncGF5ZWVBY2NvdW50J10gPSBzZWxmLnBheWVlX2FjY291bnQudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNidXJzZW1lbnRBbW91bnRJbnN0cnVjdGlvbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJwYXllZUFjY291bnQiOiBEZXN0aW5hdGlvbi5mcm9tX2RpY3Qob2JqWyJwYXllZUFjY291bnQiXSkgaWYgb2JqLmdldCgicGF5ZWVBY2NvdW50IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiYXNzZXRJZCI6IG9iai5nZXQoImFzc2V0SWQiKSwKICAgICAgICAgICAgImFtb3VudCI6IG9iai5nZXQoImFtb3VudCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/disbursement_config_operation.py b/fireblocks/models/disbursement_config_operation.py index a2af354c..5176a57b 100644 --- a/fireblocks/models/disbursement_config_operation.py +++ b/fireblocks/models/disbursement_config_operation.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.config_operation_status import ConfigOperationStatus -from fireblocks.models.disbursement_operation_config_params import DisbursementOperationConfigParams -from fireblocks.models.disbursement_operation_type import DisbursementOperationType -from fireblocks.models.disbursement_validation_failure import DisbursementValidationFailure -from typing import Optional, Set -from typing_extensions import Self - -class DisbursementConfigOperation(BaseModel): - """ - DisbursementConfigOperation - """ # noqa: E501 - operation_id: StrictStr = Field(alias="operationId") - type: DisbursementOperationType - params: DisbursementOperationConfigParams - status: ConfigOperationStatus - validation_failure: Optional[DisbursementValidationFailure] = Field(default=None, alias="validationFailure") - __properties: ClassVar[List[str]] = ["operationId", "type", "params", "status", "validationFailure"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DisbursementConfigOperation from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of params - if self.params: - _dict['params'] = self.params.to_dict() - # override the default output from pydantic by calling `to_dict()` of validation_failure - if self.validation_failure: - _dict['validationFailure'] = self.validation_failure.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DisbursementConfigOperation from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "operationId": obj.get("operationId"), - "type": obj.get("type"), - "params": DisbursementOperationConfigParams.from_dict(obj["params"]) if obj.get("params") is not None else None, - "status": obj.get("status"), - "validationFailure": DisbursementValidationFailure.from_dict(obj["validationFailure"]) if obj.get("validationFailure") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbmZpZ19vcGVyYXRpb25fc3RhdHVzIGltcG9ydCBDb25maWdPcGVyYXRpb25TdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMgaW1wb3J0IERpc2J1cnNlbWVudE9wZXJhdGlvbkNvbmZpZ1BhcmFtcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fdHlwZSBpbXBvcnQgRGlzYnVyc2VtZW50T3BlcmF0aW9uVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF92YWxpZGF0aW9uX2ZhaWx1cmUgaW1wb3J0IERpc2J1cnNlbWVudFZhbGlkYXRpb25GYWlsdXJlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIERpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG9wZXJhdGlvbl9pZDogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9Im9wZXJhdGlvbklkIikKICAgIHR5cGU6IERpc2J1cnNlbWVudE9wZXJhdGlvblR5cGUKICAgIHBhcmFtczogRGlzYnVyc2VtZW50T3BlcmF0aW9uQ29uZmlnUGFyYW1zCiAgICBzdGF0dXM6IENvbmZpZ09wZXJhdGlvblN0YXR1cwogICAgdmFsaWRhdGlvbl9mYWlsdXJlOiBPcHRpb25hbFtEaXNidXJzZW1lbnRWYWxpZGF0aW9uRmFpbHVyZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJ2YWxpZGF0aW9uRmFpbHVyZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm9wZXJhdGlvbklkIiwgInR5cGUiLCAicGFyYW1zIiwgInN0YXR1cyIsICJ2YWxpZGF0aW9uRmFpbHVyZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcGFyYW1zCiAgICAgICAgaWYgc2VsZi5wYXJhbXM6CiAgICAgICAgICAgIF9kaWN0WydwYXJhbXMnXSA9IHNlbGYucGFyYW1zLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiB2YWxpZGF0aW9uX2ZhaWx1cmUKICAgICAgICBpZiBzZWxmLnZhbGlkYXRpb25fZmFpbHVyZToKICAgICAgICAgICAgX2RpY3RbJ3ZhbGlkYXRpb25GYWlsdXJlJ10gPSBzZWxmLnZhbGlkYXRpb25fZmFpbHVyZS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJvcGVyYXRpb25JZCI6IG9iai5nZXQoIm9wZXJhdGlvbklkIiksCiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAicGFyYW1zIjogRGlzYnVyc2VtZW50T3BlcmF0aW9uQ29uZmlnUGFyYW1zLmZyb21fZGljdChvYmpbInBhcmFtcyJdKSBpZiBvYmouZ2V0KCJwYXJhbXMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgInZhbGlkYXRpb25GYWlsdXJlIjogRGlzYnVyc2VtZW50VmFsaWRhdGlvbkZhaWx1cmUuZnJvbV9kaWN0KG9ialsidmFsaWRhdGlvbkZhaWx1cmUiXSkgaWYgb2JqLmdldCgidmFsaWRhdGlvbkZhaWx1cmUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/disbursement_instruction.py b/fireblocks/models/disbursement_instruction.py index 38b21f02..9640dc8a 100644 --- a/fireblocks/models/disbursement_instruction.py +++ b/fireblocks/models/disbursement_instruction.py @@ -1,138 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.disbursement_amount_instruction import DisbursementAmountInstruction -from fireblocks.models.disbursement_percentage_instruction import DisbursementPercentageInstruction -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -DISBURSEMENTINSTRUCTION_ONE_OF_SCHEMAS = ["DisbursementAmountInstruction", "DisbursementPercentageInstruction"] - -class DisbursementInstruction(BaseModel): - """ - DisbursementInstruction - """ - # data type: DisbursementAmountInstruction - oneof_schema_1_validator: Optional[DisbursementAmountInstruction] = None - # data type: DisbursementPercentageInstruction - oneof_schema_2_validator: Optional[DisbursementPercentageInstruction] = None - actual_instance: Optional[Union[DisbursementAmountInstruction, DisbursementPercentageInstruction]] = None - one_of_schemas: Set[str] = { "DisbursementAmountInstruction", "DisbursementPercentageInstruction" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = DisbursementInstruction.model_construct() - error_messages = [] - match = 0 - # validate data type: DisbursementAmountInstruction - if not isinstance(v, DisbursementAmountInstruction): - error_messages.append(f"Error! Input type `{type(v)}` is not `DisbursementAmountInstruction`") - else: - match += 1 - # validate data type: DisbursementPercentageInstruction - if not isinstance(v, DisbursementPercentageInstruction): - error_messages.append(f"Error! Input type `{type(v)}` is not `DisbursementPercentageInstruction`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in DisbursementInstruction with oneOf schemas: DisbursementAmountInstruction, DisbursementPercentageInstruction. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in DisbursementInstruction with oneOf schemas: DisbursementAmountInstruction, DisbursementPercentageInstruction. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into DisbursementAmountInstruction - try: - instance.actual_instance = DisbursementAmountInstruction.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into DisbursementPercentageInstruction - try: - instance.actual_instance = DisbursementPercentageInstruction.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into DisbursementInstruction with oneOf schemas: DisbursementAmountInstruction, DisbursementPercentageInstruction. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into DisbursementInstruction with oneOf schemas: DisbursementAmountInstruction, DisbursementPercentageInstruction. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], DisbursementAmountInstruction, DisbursementPercentageInstruction]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X2Ftb3VudF9pbnN0cnVjdGlvbiBpbXBvcnQgRGlzYnVyc2VtZW50QW1vdW50SW5zdHJ1Y3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfcGVyY2VudGFnZV9pbnN0cnVjdGlvbiBpbXBvcnQgRGlzYnVyc2VtZW50UGVyY2VudGFnZUluc3RydWN0aW9uCmZyb20gcHlkYW50aWMgaW1wb3J0IFN0cmljdFN0ciwgRmllbGQKZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uLCBMaXN0LCBTZXQsIE9wdGlvbmFsLCBEaWN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IExpdGVyYWwsIFNlbGYKCkRJU0JVUlNFTUVOVElOU1RSVUNUSU9OX09ORV9PRl9TQ0hFTUFTID0gWyJEaXNidXJzZW1lbnRBbW91bnRJbnN0cnVjdGlvbiIsICJEaXNidXJzZW1lbnRQZXJjZW50YWdlSW5zdHJ1Y3Rpb24iXQoKY2xhc3MgRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb24oQmFzZU1vZGVsKToKICAgICIiIgogICAgRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb24KICAgICIiIgogICAgIyBkYXRhIHR5cGU6IERpc2J1cnNlbWVudEFtb3VudEluc3RydWN0aW9uCiAgICBvbmVvZl9zY2hlbWFfMV92YWxpZGF0b3I6IE9wdGlvbmFsW0Rpc2J1cnNlbWVudEFtb3VudEluc3RydWN0aW9uXSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBEaXNidXJzZW1lbnRQZXJjZW50YWdlSW5zdHJ1Y3Rpb24KICAgIG9uZW9mX3NjaGVtYV8yX3ZhbGlkYXRvcjogT3B0aW9uYWxbRGlzYnVyc2VtZW50UGVyY2VudGFnZUluc3RydWN0aW9uXSA9IE5vbmUKICAgIGFjdHVhbF9pbnN0YW5jZTogT3B0aW9uYWxbVW5pb25bRGlzYnVyc2VtZW50QW1vdW50SW5zdHJ1Y3Rpb24sIERpc2J1cnNlbWVudFBlcmNlbnRhZ2VJbnN0cnVjdGlvbl1dID0gTm9uZQogICAgb25lX29mX3NjaGVtYXM6IFNldFtzdHJdID0geyAiRGlzYnVyc2VtZW50QW1vdW50SW5zdHJ1Y3Rpb24iLCAiRGlzYnVyc2VtZW50UGVyY2VudGFnZUluc3RydWN0aW9uIiB9CgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb24ubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IERpc2J1cnNlbWVudEFtb3VudEluc3RydWN0aW9uCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgRGlzYnVyc2VtZW50QW1vdW50SW5zdHJ1Y3Rpb24pOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYERpc2J1cnNlbWVudEFtb3VudEluc3RydWN0aW9uYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBEaXNidXJzZW1lbnRQZXJjZW50YWdlSW5zdHJ1Y3Rpb24KICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBEaXNidXJzZW1lbnRQZXJjZW50YWdlSW5zdHJ1Y3Rpb24pOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYERpc2J1cnNlbWVudFBlcmNlbnRhZ2VJbnN0cnVjdGlvbmAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb24gd2l0aCBvbmVPZiBzY2hlbWFzOiBEaXNidXJzZW1lbnRBbW91bnRJbnN0cnVjdGlvbiwgRGlzYnVyc2VtZW50UGVyY2VudGFnZUluc3RydWN0aW9uLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIERpc2J1cnNlbWVudEluc3RydWN0aW9uIHdpdGggb25lT2Ygc2NoZW1hczogRGlzYnVyc2VtZW50QW1vdW50SW5zdHJ1Y3Rpb24sIERpc2J1cnNlbWVudFBlcmNlbnRhZ2VJbnN0cnVjdGlvbi4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIHYKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IFVuaW9uW3N0ciwgRGljdFtzdHIsIEFueV1dKSAtPiBTZWxmOgogICAgICAgIHJldHVybiBjbHMuZnJvbV9qc29uKGpzb24uZHVtcHMob2JqKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIlJldHVybnMgdGhlIG9iamVjdCByZXByZXNlbnRlZCBieSB0aGUganNvbiBzdHJpbmciIiIKICAgICAgICBpbnN0YW5jZSA9IGNscy5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gRGlzYnVyc2VtZW50QW1vdW50SW5zdHJ1Y3Rpb24KICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IERpc2J1cnNlbWVudEFtb3VudEluc3RydWN0aW9uLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIERpc2J1cnNlbWVudFBlcmNlbnRhZ2VJbnN0cnVjdGlvbgogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gRGlzYnVyc2VtZW50UGVyY2VudGFnZUluc3RydWN0aW9uLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQoKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb24gd2l0aCBvbmVPZiBzY2hlbWFzOiBEaXNidXJzZW1lbnRBbW91bnRJbnN0cnVjdGlvbiwgRGlzYnVyc2VtZW50UGVyY2VudGFnZUluc3RydWN0aW9uLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIERpc2J1cnNlbWVudEluc3RydWN0aW9uIHdpdGggb25lT2Ygc2NoZW1hczogRGlzYnVyc2VtZW50QW1vdW50SW5zdHJ1Y3Rpb24sIERpc2J1cnNlbWVudFBlcmNlbnRhZ2VJbnN0cnVjdGlvbi4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiAibnVsbCIKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2pzb24iKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbik6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKCkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLmFjdHVhbF9pbnN0YW5jZSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBPcHRpb25hbFtVbmlvbltEaWN0W3N0ciwgQW55XSwgRGlzYnVyc2VtZW50QW1vdW50SW5zdHJ1Y3Rpb24sIERpc2J1cnNlbWVudFBlcmNlbnRhZ2VJbnN0cnVjdGlvbl1dOgogICAgICAgICIiIlJldHVybnMgdGhlIGRpY3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19kaWN0IikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QpOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCgpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgIyBwcmltaXRpdmUgdHlwZQogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/disbursement_instruction_output.py b/fireblocks/models/disbursement_instruction_output.py index c98f996b..06ef6442 100644 --- a/fireblocks/models/disbursement_instruction_output.py +++ b/fireblocks/models/disbursement_instruction_output.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.asset_amount import AssetAmount -from fireblocks.models.destination import Destination -from typing import Optional, Set -from typing_extensions import Self - -class DisbursementInstructionOutput(BaseModel): - """ - DisbursementInstructionOutput - """ # noqa: E501 - amount: AssetAmount - fee: AssetAmount - payee_account: Destination = Field(alias="payeeAccount") - __properties: ClassVar[List[str]] = ["amount", "fee", "payeeAccount"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DisbursementInstructionOutput from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - # override the default output from pydantic by calling `to_dict()` of fee - if self.fee: - _dict['fee'] = self.fee.to_dict() - # override the default output from pydantic by calling `to_dict()` of payee_account - if self.payee_account: - _dict['payeeAccount'] = self.payee_account.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DisbursementInstructionOutput from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": AssetAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "fee": AssetAmount.from_dict(obj["fee"]) if obj.get("fee") is not None else None, - "payeeAccount": Destination.from_dict(obj["payeeAccount"]) if obj.get("payeeAccount") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2Ftb3VudCBpbXBvcnQgQXNzZXRBbW91bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZXN0aW5hdGlvbiBpbXBvcnQgRGVzdGluYXRpb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb25PdXRwdXQoQmFzZU1vZGVsKToKICAgICIiIgogICAgRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb25PdXRwdXQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFtb3VudDogQXNzZXRBbW91bnQKICAgIGZlZTogQXNzZXRBbW91bnQKICAgIHBheWVlX2FjY291bnQ6IERlc3RpbmF0aW9uID0gRmllbGQoYWxpYXM9InBheWVlQWNjb3VudCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFtb3VudCIsICJmZWUiLCAicGF5ZWVBY2NvdW50Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNidXJzZW1lbnRJbnN0cnVjdGlvbk91dHB1dCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFtb3VudAogICAgICAgIGlmIHNlbGYuYW1vdW50OgogICAgICAgICAgICBfZGljdFsnYW1vdW50J10gPSBzZWxmLmFtb3VudC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZmVlCiAgICAgICAgaWYgc2VsZi5mZWU6CiAgICAgICAgICAgIF9kaWN0WydmZWUnXSA9IHNlbGYuZmVlLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBwYXllZV9hY2NvdW50CiAgICAgICAgaWYgc2VsZi5wYXllZV9hY2NvdW50OgogICAgICAgICAgICBfZGljdFsncGF5ZWVBY2NvdW50J10gPSBzZWxmLnBheWVlX2FjY291bnQudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNidXJzZW1lbnRJbnN0cnVjdGlvbk91dHB1dCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhbW91bnQiOiBBc3NldEFtb3VudC5mcm9tX2RpY3Qob2JqWyJhbW91bnQiXSkgaWYgb2JqLmdldCgiYW1vdW50IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZmVlIjogQXNzZXRBbW91bnQuZnJvbV9kaWN0KG9ialsiZmVlIl0pIGlmIG9iai5nZXQoImZlZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInBheWVlQWNjb3VudCI6IERlc3RpbmF0aW9uLmZyb21fZGljdChvYmpbInBheWVlQWNjb3VudCJdKSBpZiBvYmouZ2V0KCJwYXllZUFjY291bnQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/disbursement_operation_config_params.py b/fireblocks/models/disbursement_operation_config_params.py index d44aabd9..6f19a4d4 100644 --- a/fireblocks/models/disbursement_operation_config_params.py +++ b/fireblocks/models/disbursement_operation_config_params.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.account import Account -from fireblocks.models.disbursement_instruction import DisbursementInstruction -from typing import Optional, Set -from typing_extensions import Self - -class DisbursementOperationConfigParams(BaseModel): - """ - DisbursementOperationConfigParams - """ # noqa: E501 - payment_account: Optional[Account] = Field(default=None, alias="paymentAccount") - instruction_set: List[DisbursementInstruction] = Field(alias="instructionSet") - __properties: ClassVar[List[str]] = ["paymentAccount", "instructionSet"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DisbursementOperationConfigParams from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of payment_account - if self.payment_account: - _dict['paymentAccount'] = self.payment_account.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in instruction_set (list) - _items = [] - if self.instruction_set: - for _item_instruction_set in self.instruction_set: - if _item_instruction_set: - _items.append(_item_instruction_set.to_dict()) - _dict['instructionSet'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DisbursementOperationConfigParams from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "paymentAccount": Account.from_dict(obj["paymentAccount"]) if obj.get("paymentAccount") is not None else None, - "instructionSet": [DisbursementInstruction.from_dict(_item) for _item in obj["instructionSet"]] if obj.get("instructionSet") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50IGltcG9ydCBBY2NvdW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X2luc3RydWN0aW9uIGltcG9ydCBEaXNidXJzZW1lbnRJbnN0cnVjdGlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBEaXNidXJzZW1lbnRPcGVyYXRpb25Db25maWdQYXJhbXMoQmFzZU1vZGVsKToKICAgICIiIgogICAgRGlzYnVyc2VtZW50T3BlcmF0aW9uQ29uZmlnUGFyYW1zCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBwYXltZW50X2FjY291bnQ6IE9wdGlvbmFsW0FjY291bnRdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0icGF5bWVudEFjY291bnQiKQogICAgaW5zdHJ1Y3Rpb25fc2V0OiBMaXN0W0Rpc2J1cnNlbWVudEluc3RydWN0aW9uXSA9IEZpZWxkKGFsaWFzPSJpbnN0cnVjdGlvblNldCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInBheW1lbnRBY2NvdW50IiwgImluc3RydWN0aW9uU2V0Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNidXJzZW1lbnRPcGVyYXRpb25Db25maWdQYXJhbXMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBwYXltZW50X2FjY291bnQKICAgICAgICBpZiBzZWxmLnBheW1lbnRfYWNjb3VudDoKICAgICAgICAgICAgX2RpY3RbJ3BheW1lbnRBY2NvdW50J10gPSBzZWxmLnBheW1lbnRfYWNjb3VudC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGluc3RydWN0aW9uX3NldCAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuaW5zdHJ1Y3Rpb25fc2V0OgogICAgICAgICAgICBmb3IgX2l0ZW1faW5zdHJ1Y3Rpb25fc2V0IGluIHNlbGYuaW5zdHJ1Y3Rpb25fc2V0OgogICAgICAgICAgICAgICAgaWYgX2l0ZW1faW5zdHJ1Y3Rpb25fc2V0OgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1faW5zdHJ1Y3Rpb25fc2V0LnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2luc3RydWN0aW9uU2V0J10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudE9wZXJhdGlvbkNvbmZpZ1BhcmFtcyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJwYXltZW50QWNjb3VudCI6IEFjY291bnQuZnJvbV9kaWN0KG9ialsicGF5bWVudEFjY291bnQiXSkgaWYgb2JqLmdldCgicGF5bWVudEFjY291bnQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJpbnN0cnVjdGlvblNldCI6IFtEaXNidXJzZW1lbnRJbnN0cnVjdGlvbi5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImluc3RydWN0aW9uU2V0Il1dIGlmIG9iai5nZXQoImluc3RydWN0aW9uU2V0IikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/disbursement_operation_execution.py b/fireblocks/models/disbursement_operation_execution.py index 8cc90f8a..b2b9abaa 100644 --- a/fireblocks/models/disbursement_operation_execution.py +++ b/fireblocks/models/disbursement_operation_execution.py @@ -1,110 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.disbursement_operation_execution_output import DisbursementOperationExecutionOutput -from fireblocks.models.disbursement_operation_input import DisbursementOperationInput -from fireblocks.models.operation_execution_failure import OperationExecutionFailure -from typing import Optional, Set -from typing_extensions import Self - -class DisbursementOperationExecution(BaseModel): - """ - DisbursementOperationExecution - """ # noqa: E501 - input: DisbursementOperationInput - output: Optional[DisbursementOperationExecutionOutput] = None - payout_id: Optional[StrictStr] = Field(default=None, alias="payoutId") - started_at: Union[StrictFloat, StrictInt] = Field(alias="startedAt") - finished_at: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="finishedAt") - failure: Optional[OperationExecutionFailure] = None - __properties: ClassVar[List[str]] = ["input", "output", "payoutId", "startedAt", "finishedAt", "failure"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DisbursementOperationExecution from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of input - if self.input: - _dict['input'] = self.input.to_dict() - # override the default output from pydantic by calling `to_dict()` of output - if self.output: - _dict['output'] = self.output.to_dict() - # override the default output from pydantic by calling `to_dict()` of failure - if self.failure: - _dict['failure'] = self.failure.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DisbursementOperationExecution from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "input": DisbursementOperationInput.from_dict(obj["input"]) if obj.get("input") is not None else None, - "output": DisbursementOperationExecutionOutput.from_dict(obj["output"]) if obj.get("output") is not None else None, - "payoutId": obj.get("payoutId"), - "startedAt": obj.get("startedAt"), - "finishedAt": obj.get("finishedAt"), - "failure": OperationExecutionFailure.from_dict(obj["failure"]) if obj.get("failure") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXQgaW1wb3J0IERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25faW5wdXQgaW1wb3J0IERpc2J1cnNlbWVudE9wZXJhdGlvbklucHV0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMub3BlcmF0aW9uX2V4ZWN1dGlvbl9mYWlsdXJlIGltcG9ydCBPcGVyYXRpb25FeGVjdXRpb25GYWlsdXJlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlucHV0OiBEaXNidXJzZW1lbnRPcGVyYXRpb25JbnB1dAogICAgb3V0cHV0OiBPcHRpb25hbFtEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25PdXRwdXRdID0gTm9uZQogICAgcGF5b3V0X2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0icGF5b3V0SWQiKQogICAgc3RhcnRlZF9hdDogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChhbGlhcz0ic3RhcnRlZEF0IikKICAgIGZpbmlzaGVkX2F0OiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJmaW5pc2hlZEF0IikKICAgIGZhaWx1cmU6IE9wdGlvbmFsW09wZXJhdGlvbkV4ZWN1dGlvbkZhaWx1cmVdID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpbnB1dCIsICJvdXRwdXQiLCAicGF5b3V0SWQiLCAic3RhcnRlZEF0IiwgImZpbmlzaGVkQXQiLCAiZmFpbHVyZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgaW5wdXQKICAgICAgICBpZiBzZWxmLmlucHV0OgogICAgICAgICAgICBfZGljdFsnaW5wdXQnXSA9IHNlbGYuaW5wdXQudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG91dHB1dAogICAgICAgIGlmIHNlbGYub3V0cHV0OgogICAgICAgICAgICBfZGljdFsnb3V0cHV0J10gPSBzZWxmLm91dHB1dC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZmFpbHVyZQogICAgICAgIGlmIHNlbGYuZmFpbHVyZToKICAgICAgICAgICAgX2RpY3RbJ2ZhaWx1cmUnXSA9IHNlbGYuZmFpbHVyZS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpbnB1dCI6IERpc2J1cnNlbWVudE9wZXJhdGlvbklucHV0LmZyb21fZGljdChvYmpbImlucHV0Il0pIGlmIG9iai5nZXQoImlucHV0IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAib3V0cHV0IjogRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0LmZyb21fZGljdChvYmpbIm91dHB1dCJdKSBpZiBvYmouZ2V0KCJvdXRwdXQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJwYXlvdXRJZCI6IG9iai5nZXQoInBheW91dElkIiksCiAgICAgICAgICAgICJzdGFydGVkQXQiOiBvYmouZ2V0KCJzdGFydGVkQXQiKSwKICAgICAgICAgICAgImZpbmlzaGVkQXQiOiBvYmouZ2V0KCJmaW5pc2hlZEF0IiksCiAgICAgICAgICAgICJmYWlsdXJlIjogT3BlcmF0aW9uRXhlY3V0aW9uRmFpbHVyZS5mcm9tX2RpY3Qob2JqWyJmYWlsdXJlIl0pIGlmIG9iai5nZXQoImZhaWx1cmUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/disbursement_operation_execution_output.py b/fireblocks/models/disbursement_operation_execution_output.py index 9f93bc73..e6b49257 100644 --- a/fireblocks/models/disbursement_operation_execution_output.py +++ b/fireblocks/models/disbursement_operation_execution_output.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.disbursement_instruction_output import DisbursementInstructionOutput -from typing import Optional, Set -from typing_extensions import Self - -class DisbursementOperationExecutionOutput(BaseModel): - """ - DisbursementOperationExecutionOutput - """ # noqa: E501 - instruction_set: List[DisbursementInstructionOutput] = Field(alias="instructionSet") - __properties: ClassVar[List[str]] = ["instructionSet"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DisbursementOperationExecutionOutput from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in instruction_set (list) - _items = [] - if self.instruction_set: - for _item_instruction_set in self.instruction_set: - if _item_instruction_set: - _items.append(_item_instruction_set.to_dict()) - _dict['instructionSet'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DisbursementOperationExecutionOutput from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "instructionSet": [DisbursementInstructionOutput.from_dict(_item) for _item in obj["instructionSet"]] if obj.get("instructionSet") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9pbnN0cnVjdGlvbl9vdXRwdXQgaW1wb3J0IERpc2J1cnNlbWVudEluc3RydWN0aW9uT3V0cHV0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGluc3RydWN0aW9uX3NldDogTGlzdFtEaXNidXJzZW1lbnRJbnN0cnVjdGlvbk91dHB1dF0gPSBGaWVsZChhbGlhcz0iaW5zdHJ1Y3Rpb25TZXQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpbnN0cnVjdGlvblNldCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGluc3RydWN0aW9uX3NldCAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuaW5zdHJ1Y3Rpb25fc2V0OgogICAgICAgICAgICBmb3IgX2l0ZW1faW5zdHJ1Y3Rpb25fc2V0IGluIHNlbGYuaW5zdHJ1Y3Rpb25fc2V0OgogICAgICAgICAgICAgICAgaWYgX2l0ZW1faW5zdHJ1Y3Rpb25fc2V0OgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1faW5zdHJ1Y3Rpb25fc2V0LnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2luc3RydWN0aW9uU2V0J10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpbnN0cnVjdGlvblNldCI6IFtEaXNidXJzZW1lbnRJbnN0cnVjdGlvbk91dHB1dC5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImluc3RydWN0aW9uU2V0Il1dIGlmIG9iai5nZXQoImluc3RydWN0aW9uU2V0IikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/disbursement_operation_execution_params.py b/fireblocks/models/disbursement_operation_execution_params.py index 4d1a2931..a8b33c8f 100644 --- a/fireblocks/models/disbursement_operation_execution_params.py +++ b/fireblocks/models/disbursement_operation_execution_params.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.disbursement_operation_execution_params_execution_params import DisbursementOperationExecutionParamsExecutionParams -from typing import Optional, Set -from typing_extensions import Self - -class DisbursementOperationExecutionParams(BaseModel): - """ - DisbursementOperationExecutionParams - """ # noqa: E501 - config_operation_id: StrictStr = Field(alias="configOperationId") - execution_params: Optional[DisbursementOperationExecutionParamsExecutionParams] = Field(default=None, alias="executionParams") - __properties: ClassVar[List[str]] = ["configOperationId", "executionParams"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DisbursementOperationExecutionParams from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of execution_params - if self.execution_params: - _dict['executionParams'] = self.execution_params.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DisbursementOperationExecutionParams from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "configOperationId": obj.get("configOperationId"), - "executionParams": DisbursementOperationExecutionParamsExecutionParams.from_dict(obj["executionParams"]) if obj.get("executionParams") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtc19leGVjdXRpb25fcGFyYW1zIGltcG9ydCBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcwogICAgIiIiICMgbm9xYTogRTUwMQogICAgY29uZmlnX29wZXJhdGlvbl9pZDogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9ImNvbmZpZ09wZXJhdGlvbklkIikKICAgIGV4ZWN1dGlvbl9wYXJhbXM6IE9wdGlvbmFsW0Rpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtc10gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJleGVjdXRpb25QYXJhbXMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJjb25maWdPcGVyYXRpb25JZCIsICJleGVjdXRpb25QYXJhbXMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGV4ZWN1dGlvbl9wYXJhbXMKICAgICAgICBpZiBzZWxmLmV4ZWN1dGlvbl9wYXJhbXM6CiAgICAgICAgICAgIF9kaWN0WydleGVjdXRpb25QYXJhbXMnXSA9IHNlbGYuZXhlY3V0aW9uX3BhcmFtcy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJjb25maWdPcGVyYXRpb25JZCI6IG9iai5nZXQoImNvbmZpZ09wZXJhdGlvbklkIiksCiAgICAgICAgICAgICJleGVjdXRpb25QYXJhbXMiOiBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMuZnJvbV9kaWN0KG9ialsiZXhlY3V0aW9uUGFyYW1zIl0pIGlmIG9iai5nZXQoImV4ZWN1dGlvblBhcmFtcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/disbursement_operation_execution_params_execution_params.py b/fireblocks/models/disbursement_operation_execution_params_execution_params.py index 6f8e8030..7805f2b9 100644 --- a/fireblocks/models/disbursement_operation_execution_params_execution_params.py +++ b/fireblocks/models/disbursement_operation_execution_params_execution_params.py @@ -1,104 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.account import Account -from fireblocks.models.disbursement_instruction import DisbursementInstruction -from typing import Optional, Set -from typing_extensions import Self - -class DisbursementOperationExecutionParamsExecutionParams(BaseModel): - """ - DisbursementOperationExecutionParamsExecutionParams - """ # noqa: E501 - amount: Optional[StrictStr] = None - payment_account: Optional[Account] = Field(default=None, alias="paymentAccount") - instruction_set: Optional[List[DisbursementInstruction]] = Field(default=None, alias="instructionSet") - __properties: ClassVar[List[str]] = ["amount", "paymentAccount", "instructionSet"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DisbursementOperationExecutionParamsExecutionParams from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of payment_account - if self.payment_account: - _dict['paymentAccount'] = self.payment_account.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in instruction_set (list) - _items = [] - if self.instruction_set: - for _item_instruction_set in self.instruction_set: - if _item_instruction_set: - _items.append(_item_instruction_set.to_dict()) - _dict['instructionSet'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DisbursementOperationExecutionParamsExecutionParams from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": obj.get("amount"), - "paymentAccount": Account.from_dict(obj["paymentAccount"]) if obj.get("paymentAccount") is not None else None, - "instructionSet": [DisbursementInstruction.from_dict(_item) for _item in obj["instructionSet"]] if obj.get("instructionSet") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnQgaW1wb3J0IEFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfaW5zdHJ1Y3Rpb24gaW1wb3J0IERpc2J1cnNlbWVudEluc3RydWN0aW9uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtcyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFtb3VudDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIHBheW1lbnRfYWNjb3VudDogT3B0aW9uYWxbQWNjb3VudF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJwYXltZW50QWNjb3VudCIpCiAgICBpbnN0cnVjdGlvbl9zZXQ6IE9wdGlvbmFsW0xpc3RbRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb25dXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Imluc3RydWN0aW9uU2V0IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYW1vdW50IiwgInBheW1lbnRBY2NvdW50IiwgImluc3RydWN0aW9uU2V0Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBwYXltZW50X2FjY291bnQKICAgICAgICBpZiBzZWxmLnBheW1lbnRfYWNjb3VudDoKICAgICAgICAgICAgX2RpY3RbJ3BheW1lbnRBY2NvdW50J10gPSBzZWxmLnBheW1lbnRfYWNjb3VudC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGluc3RydWN0aW9uX3NldCAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuaW5zdHJ1Y3Rpb25fc2V0OgogICAgICAgICAgICBmb3IgX2l0ZW1faW5zdHJ1Y3Rpb25fc2V0IGluIHNlbGYuaW5zdHJ1Y3Rpb25fc2V0OgogICAgICAgICAgICAgICAgaWYgX2l0ZW1faW5zdHJ1Y3Rpb25fc2V0OgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1faW5zdHJ1Y3Rpb25fc2V0LnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2luc3RydWN0aW9uU2V0J10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtcyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKSwKICAgICAgICAgICAgInBheW1lbnRBY2NvdW50IjogQWNjb3VudC5mcm9tX2RpY3Qob2JqWyJwYXltZW50QWNjb3VudCJdKSBpZiBvYmouZ2V0KCJwYXltZW50QWNjb3VudCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImluc3RydWN0aW9uU2V0IjogW0Rpc2J1cnNlbWVudEluc3RydWN0aW9uLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiaW5zdHJ1Y3Rpb25TZXQiXV0gaWYgb2JqLmdldCgiaW5zdHJ1Y3Rpb25TZXQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/disbursement_operation_input.py b/fireblocks/models/disbursement_operation_input.py index 1dabd648..08f4fa12 100644 --- a/fireblocks/models/disbursement_operation_input.py +++ b/fireblocks/models/disbursement_operation_input.py @@ -1,104 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.account import Account -from fireblocks.models.disbursement_instruction import DisbursementInstruction -from typing import Optional, Set -from typing_extensions import Self - -class DisbursementOperationInput(BaseModel): - """ - DisbursementOperationInput - """ # noqa: E501 - amount: Optional[StrictStr] = None - payment_account: Account = Field(alias="paymentAccount") - instruction_set: List[DisbursementInstruction] = Field(alias="instructionSet") - __properties: ClassVar[List[str]] = ["amount", "paymentAccount", "instructionSet"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DisbursementOperationInput from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of payment_account - if self.payment_account: - _dict['paymentAccount'] = self.payment_account.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in instruction_set (list) - _items = [] - if self.instruction_set: - for _item_instruction_set in self.instruction_set: - if _item_instruction_set: - _items.append(_item_instruction_set.to_dict()) - _dict['instructionSet'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DisbursementOperationInput from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": obj.get("amount"), - "paymentAccount": Account.from_dict(obj["paymentAccount"]) if obj.get("paymentAccount") is not None else None, - "instructionSet": [DisbursementInstruction.from_dict(_item) for _item in obj["instructionSet"]] if obj.get("instructionSet") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnQgaW1wb3J0IEFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfaW5zdHJ1Y3Rpb24gaW1wb3J0IERpc2J1cnNlbWVudEluc3RydWN0aW9uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIERpc2J1cnNlbWVudE9wZXJhdGlvbklucHV0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIERpc2J1cnNlbWVudE9wZXJhdGlvbklucHV0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhbW91bnQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBwYXltZW50X2FjY291bnQ6IEFjY291bnQgPSBGaWVsZChhbGlhcz0icGF5bWVudEFjY291bnQiKQogICAgaW5zdHJ1Y3Rpb25fc2V0OiBMaXN0W0Rpc2J1cnNlbWVudEluc3RydWN0aW9uXSA9IEZpZWxkKGFsaWFzPSJpbnN0cnVjdGlvblNldCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFtb3VudCIsICJwYXltZW50QWNjb3VudCIsICJpbnN0cnVjdGlvblNldCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlzYnVyc2VtZW50T3BlcmF0aW9uSW5wdXQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBwYXltZW50X2FjY291bnQKICAgICAgICBpZiBzZWxmLnBheW1lbnRfYWNjb3VudDoKICAgICAgICAgICAgX2RpY3RbJ3BheW1lbnRBY2NvdW50J10gPSBzZWxmLnBheW1lbnRfYWNjb3VudC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGluc3RydWN0aW9uX3NldCAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuaW5zdHJ1Y3Rpb25fc2V0OgogICAgICAgICAgICBmb3IgX2l0ZW1faW5zdHJ1Y3Rpb25fc2V0IGluIHNlbGYuaW5zdHJ1Y3Rpb25fc2V0OgogICAgICAgICAgICAgICAgaWYgX2l0ZW1faW5zdHJ1Y3Rpb25fc2V0OgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1faW5zdHJ1Y3Rpb25fc2V0LnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2luc3RydWN0aW9uU2V0J10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudE9wZXJhdGlvbklucHV0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFtb3VudCI6IG9iai5nZXQoImFtb3VudCIpLAogICAgICAgICAgICAicGF5bWVudEFjY291bnQiOiBBY2NvdW50LmZyb21fZGljdChvYmpbInBheW1lbnRBY2NvdW50Il0pIGlmIG9iai5nZXQoInBheW1lbnRBY2NvdW50IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiaW5zdHJ1Y3Rpb25TZXQiOiBbRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb24uZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJpbnN0cnVjdGlvblNldCJdXSBpZiBvYmouZ2V0KCJpbnN0cnVjdGlvblNldCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/disbursement_operation_preview.py b/fireblocks/models/disbursement_operation_preview.py index c3f41ef8..93ccf67e 100644 --- a/fireblocks/models/disbursement_operation_preview.py +++ b/fireblocks/models/disbursement_operation_preview.py @@ -1,104 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.disbursement_operation_input import DisbursementOperationInput -from fireblocks.models.disbursement_operation_preview_output import DisbursementOperationPreviewOutput -from fireblocks.models.operation_execution_failure import OperationExecutionFailure -from typing import Optional, Set -from typing_extensions import Self - -class DisbursementOperationPreview(BaseModel): - """ - DisbursementOperationPreview - """ # noqa: E501 - input: DisbursementOperationInput - output: Optional[DisbursementOperationPreviewOutput] = None - failure: Optional[OperationExecutionFailure] = None - __properties: ClassVar[List[str]] = ["input", "output", "failure"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DisbursementOperationPreview from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of input - if self.input: - _dict['input'] = self.input.to_dict() - # override the default output from pydantic by calling `to_dict()` of output - if self.output: - _dict['output'] = self.output.to_dict() - # override the default output from pydantic by calling `to_dict()` of failure - if self.failure: - _dict['failure'] = self.failure.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DisbursementOperationPreview from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "input": DisbursementOperationInput.from_dict(obj["input"]) if obj.get("input") is not None else None, - "output": DisbursementOperationPreviewOutput.from_dict(obj["output"]) if obj.get("output") is not None else None, - "failure": OperationExecutionFailure.from_dict(obj["failure"]) if obj.get("failure") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25faW5wdXQgaW1wb3J0IERpc2J1cnNlbWVudE9wZXJhdGlvbklucHV0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9wcmV2aWV3X291dHB1dCBpbXBvcnQgRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlld091dHB1dApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9wZXJhdGlvbl9leGVjdXRpb25fZmFpbHVyZSBpbXBvcnQgT3BlcmF0aW9uRXhlY3V0aW9uRmFpbHVyZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIERpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXcKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlucHV0OiBEaXNidXJzZW1lbnRPcGVyYXRpb25JbnB1dAogICAgb3V0cHV0OiBPcHRpb25hbFtEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0XSA9IE5vbmUKICAgIGZhaWx1cmU6IE9wdGlvbmFsW09wZXJhdGlvbkV4ZWN1dGlvbkZhaWx1cmVdID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpbnB1dCIsICJvdXRwdXQiLCAiZmFpbHVyZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlldyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGlucHV0CiAgICAgICAgaWYgc2VsZi5pbnB1dDoKICAgICAgICAgICAgX2RpY3RbJ2lucHV0J10gPSBzZWxmLmlucHV0LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBvdXRwdXQKICAgICAgICBpZiBzZWxmLm91dHB1dDoKICAgICAgICAgICAgX2RpY3RbJ291dHB1dCddID0gc2VsZi5vdXRwdXQudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGZhaWx1cmUKICAgICAgICBpZiBzZWxmLmZhaWx1cmU6CiAgICAgICAgICAgIF9kaWN0WydmYWlsdXJlJ10gPSBzZWxmLmZhaWx1cmUudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlucHV0IjogRGlzYnVyc2VtZW50T3BlcmF0aW9uSW5wdXQuZnJvbV9kaWN0KG9ialsiaW5wdXQiXSkgaWYgb2JqLmdldCgiaW5wdXQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJvdXRwdXQiOiBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0LmZyb21fZGljdChvYmpbIm91dHB1dCJdKSBpZiBvYmouZ2V0KCJvdXRwdXQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJmYWlsdXJlIjogT3BlcmF0aW9uRXhlY3V0aW9uRmFpbHVyZS5mcm9tX2RpY3Qob2JqWyJmYWlsdXJlIl0pIGlmIG9iai5nZXQoImZhaWx1cmUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/disbursement_operation_preview_output.py b/fireblocks/models/disbursement_operation_preview_output.py index 5c8234a8..a315f959 100644 --- a/fireblocks/models/disbursement_operation_preview_output.py +++ b/fireblocks/models/disbursement_operation_preview_output.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.disbursement_operation_preview_output_instruction_set_inner import DisbursementOperationPreviewOutputInstructionSetInner -from typing import Optional, Set -from typing_extensions import Self - -class DisbursementOperationPreviewOutput(BaseModel): - """ - DisbursementOperationPreviewOutput - """ # noqa: E501 - instruction_set: List[DisbursementOperationPreviewOutputInstructionSetInner] = Field(alias="instructionSet") - __properties: ClassVar[List[str]] = ["instructionSet"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DisbursementOperationPreviewOutput from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in instruction_set (list) - _items = [] - if self.instruction_set: - for _item_instruction_set in self.instruction_set: - if _item_instruction_set: - _items.append(_item_instruction_set.to_dict()) - _dict['instructionSet'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DisbursementOperationPreviewOutput from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "instructionSet": [DisbursementOperationPreviewOutputInstructionSetInner.from_dict(_item) for _item in obj["instructionSet"]] if obj.get("instructionSet") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fcHJldmlld19vdXRwdXRfaW5zdHJ1Y3Rpb25fc2V0X2lubmVyIGltcG9ydCBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0SW5zdHJ1Y3Rpb25TZXRJbm5lcgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIERpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXdPdXRwdXQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGluc3RydWN0aW9uX3NldDogTGlzdFtEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0SW5zdHJ1Y3Rpb25TZXRJbm5lcl0gPSBGaWVsZChhbGlhcz0iaW5zdHJ1Y3Rpb25TZXQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpbnN0cnVjdGlvblNldCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlld091dHB1dCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBpbnN0cnVjdGlvbl9zZXQgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmluc3RydWN0aW9uX3NldDoKICAgICAgICAgICAgZm9yIF9pdGVtX2luc3RydWN0aW9uX3NldCBpbiBzZWxmLmluc3RydWN0aW9uX3NldDoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2luc3RydWN0aW9uX3NldDoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2luc3RydWN0aW9uX3NldC50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydpbnN0cnVjdGlvblNldCddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImluc3RydWN0aW9uU2V0IjogW0Rpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXdPdXRwdXRJbnN0cnVjdGlvblNldElubmVyLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiaW5zdHJ1Y3Rpb25TZXQiXV0gaWYgb2JqLmdldCgiaW5zdHJ1Y3Rpb25TZXQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/disbursement_operation_preview_output_instruction_set_inner.py b/fireblocks/models/disbursement_operation_preview_output_instruction_set_inner.py index 37d87e86..f3195c29 100644 --- a/fireblocks/models/disbursement_operation_preview_output_instruction_set_inner.py +++ b/fireblocks/models/disbursement_operation_preview_output_instruction_set_inner.py @@ -1,105 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt -from typing import Any, ClassVar, Dict, List, Union -from fireblocks.models.asset_amount import AssetAmount -from fireblocks.models.destination import Destination -from typing import Optional, Set -from typing_extensions import Self - -class DisbursementOperationPreviewOutputInstructionSetInner(BaseModel): - """ - DisbursementOperationPreviewOutputInstructionSetInner - """ # noqa: E501 - amount: AssetAmount - fee: AssetAmount - payee_account: Destination = Field(alias="payeeAccount") - time_seconds: Union[StrictFloat, StrictInt] = Field(alias="timeSeconds") - __properties: ClassVar[List[str]] = ["amount", "fee", "payeeAccount", "timeSeconds"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DisbursementOperationPreviewOutputInstructionSetInner from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - # override the default output from pydantic by calling `to_dict()` of fee - if self.fee: - _dict['fee'] = self.fee.to_dict() - # override the default output from pydantic by calling `to_dict()` of payee_account - if self.payee_account: - _dict['payeeAccount'] = self.payee_account.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DisbursementOperationPreviewOutputInstructionSetInner from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": AssetAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "fee": AssetAmount.from_dict(obj["fee"]) if obj.get("fee") is not None else None, - "payeeAccount": Destination.from_dict(obj["payeeAccount"]) if obj.get("payeeAccount") is not None else None, - "timeSeconds": obj.get("timeSeconds") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQgaW1wb3J0IEFzc2V0QW1vdW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzdGluYXRpb24gaW1wb3J0IERlc3RpbmF0aW9uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIERpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXdPdXRwdXRJbnN0cnVjdGlvblNldElubmVyKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIERpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXdPdXRwdXRJbnN0cnVjdGlvblNldElubmVyCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhbW91bnQ6IEFzc2V0QW1vdW50CiAgICBmZWU6IEFzc2V0QW1vdW50CiAgICBwYXllZV9hY2NvdW50OiBEZXN0aW5hdGlvbiA9IEZpZWxkKGFsaWFzPSJwYXllZUFjY291bnQiKQogICAgdGltZV9zZWNvbmRzOiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGFsaWFzPSJ0aW1lU2Vjb25kcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFtb3VudCIsICJmZWUiLCAicGF5ZWVBY2NvdW50IiwgInRpbWVTZWNvbmRzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0SW5zdHJ1Y3Rpb25TZXRJbm5lciBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFtb3VudAogICAgICAgIGlmIHNlbGYuYW1vdW50OgogICAgICAgICAgICBfZGljdFsnYW1vdW50J10gPSBzZWxmLmFtb3VudC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZmVlCiAgICAgICAgaWYgc2VsZi5mZWU6CiAgICAgICAgICAgIF9kaWN0WydmZWUnXSA9IHNlbGYuZmVlLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBwYXllZV9hY2NvdW50CiAgICAgICAgaWYgc2VsZi5wYXllZV9hY2NvdW50OgogICAgICAgICAgICBfZGljdFsncGF5ZWVBY2NvdW50J10gPSBzZWxmLnBheWVlX2FjY291bnQudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0SW5zdHJ1Y3Rpb25TZXRJbm5lciBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhbW91bnQiOiBBc3NldEFtb3VudC5mcm9tX2RpY3Qob2JqWyJhbW91bnQiXSkgaWYgb2JqLmdldCgiYW1vdW50IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZmVlIjogQXNzZXRBbW91bnQuZnJvbV9kaWN0KG9ialsiZmVlIl0pIGlmIG9iai5nZXQoImZlZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInBheWVlQWNjb3VudCI6IERlc3RpbmF0aW9uLmZyb21fZGljdChvYmpbInBheWVlQWNjb3VudCJdKSBpZiBvYmouZ2V0KCJwYXllZUFjY291bnQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJ0aW1lU2Vjb25kcyI6IG9iai5nZXQoInRpbWVTZWNvbmRzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/disbursement_operation_type.py b/fireblocks/models/disbursement_operation_type.py index f03703f1..be519e0c 100644 --- a/fireblocks/models/disbursement_operation_type.py +++ b/fireblocks/models/disbursement_operation_type.py @@ -1,37 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class DisbursementOperationType(str, Enum): - """ - DisbursementOperationType - """ - - """ - allowed enum values - """ - DISBURSEMENT = 'DISBURSEMENT' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of DisbursementOperationType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBEaXNidXJzZW1lbnRPcGVyYXRpb25UeXBlKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIERpc2J1cnNlbWVudE9wZXJhdGlvblR5cGUKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBESVNCVVJTRU1FTlQgPSAnRElTQlVSU0VNRU5UJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudE9wZXJhdGlvblR5cGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/disbursement_percentage_instruction.py b/fireblocks/models/disbursement_percentage_instruction.py index 40e0ea50..f29d8f12 100644 --- a/fireblocks/models/disbursement_percentage_instruction.py +++ b/fireblocks/models/disbursement_percentage_instruction.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.destination import Destination -from typing import Optional, Set -from typing_extensions import Self - -class DisbursementPercentageInstruction(BaseModel): - """ - DisbursementPercentageInstruction - """ # noqa: E501 - payee_account: Destination = Field(alias="payeeAccount") - asset_id: StrictStr = Field(alias="assetId") - percentage: StrictStr - __properties: ClassVar[List[str]] = ["payeeAccount", "assetId", "percentage"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DisbursementPercentageInstruction from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of payee_account - if self.payee_account: - _dict['payeeAccount'] = self.payee_account.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DisbursementPercentageInstruction from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "payeeAccount": Destination.from_dict(obj["payeeAccount"]) if obj.get("payeeAccount") is not None else None, - "assetId": obj.get("assetId"), - "percentage": obj.get("percentage") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzdGluYXRpb24gaW1wb3J0IERlc3RpbmF0aW9uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIERpc2J1cnNlbWVudFBlcmNlbnRhZ2VJbnN0cnVjdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBEaXNidXJzZW1lbnRQZXJjZW50YWdlSW5zdHJ1Y3Rpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHBheWVlX2FjY291bnQ6IERlc3RpbmF0aW9uID0gRmllbGQoYWxpYXM9InBheWVlQWNjb3VudCIpCiAgICBhc3NldF9pZDogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9ImFzc2V0SWQiKQogICAgcGVyY2VudGFnZTogU3RyaWN0U3RyCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInBheWVlQWNjb3VudCIsICJhc3NldElkIiwgInBlcmNlbnRhZ2UiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudFBlcmNlbnRhZ2VJbnN0cnVjdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHBheWVlX2FjY291bnQKICAgICAgICBpZiBzZWxmLnBheWVlX2FjY291bnQ6CiAgICAgICAgICAgIF9kaWN0WydwYXllZUFjY291bnQnXSA9IHNlbGYucGF5ZWVfYWNjb3VudC50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERpc2J1cnNlbWVudFBlcmNlbnRhZ2VJbnN0cnVjdGlvbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJwYXllZUFjY291bnQiOiBEZXN0aW5hdGlvbi5mcm9tX2RpY3Qob2JqWyJwYXllZUFjY291bnQiXSkgaWYgb2JqLmdldCgicGF5ZWVBY2NvdW50IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiYXNzZXRJZCI6IG9iai5nZXQoImFzc2V0SWQiKSwKICAgICAgICAgICAgInBlcmNlbnRhZ2UiOiBvYmouZ2V0KCJwZXJjZW50YWdlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/disbursement_validation_failure.py b/fireblocks/models/disbursement_validation_failure.py index 89aa1f6a..df35abb4 100644 --- a/fireblocks/models/disbursement_validation_failure.py +++ b/fireblocks/models/disbursement_validation_failure.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class DisbursementValidationFailure(BaseModel): - """ - DisbursementValidationFailure - """ # noqa: E501 - reason: StrictStr - data: Optional[Dict[str, Any]] = None - __properties: ClassVar[List[str]] = ["reason", "data"] - - @field_validator('reason') - def reason_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['ACCOUNT_NOT_FOUND', 'ACCOUNT_TYPE_NOT_SUPPORTED', 'INSUFFICIENT_BALANCE', 'ASSET_NOT_FOUND', 'ASSETS_CONTINUITY_MISMATCH', 'EXCHANGE_BASKETS_MISMATCH', 'ACCOUNTS_CONTINUITY_MISMATCH', 'ONE_TIME_ADDRESS_CONTINUITY_NOT_ALLOWED', 'EQUAL_ACCOUNTS_NOT_ALLOWED', 'EQUAL_ASSETS_NOT_ALLOWED', 'INVALID_AMOUNT', 'UNMANAGED_WALLET_AS_SOURCE_NOT_ALLOWED', 'MANAGED_OPERATION_PARAMS_INVALID_SCHEMA', 'INSTRUCTIONS_EXCEED_HUNDRED_PERCENT', 'INSTRUCTIONS_ARRAY_EMPTY']): - raise ValueError("must be one of enum values ('ACCOUNT_NOT_FOUND', 'ACCOUNT_TYPE_NOT_SUPPORTED', 'INSUFFICIENT_BALANCE', 'ASSET_NOT_FOUND', 'ASSETS_CONTINUITY_MISMATCH', 'EXCHANGE_BASKETS_MISMATCH', 'ACCOUNTS_CONTINUITY_MISMATCH', 'ONE_TIME_ADDRESS_CONTINUITY_NOT_ALLOWED', 'EQUAL_ACCOUNTS_NOT_ALLOWED', 'EQUAL_ASSETS_NOT_ALLOWED', 'INVALID_AMOUNT', 'UNMANAGED_WALLET_AS_SOURCE_NOT_ALLOWED', 'MANAGED_OPERATION_PARAMS_INVALID_SCHEMA', 'INSTRUCTIONS_EXCEED_HUNDRED_PERCENT', 'INSTRUCTIONS_ARRAY_EMPTY')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DisbursementValidationFailure from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DisbursementValidationFailure from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "reason": obj.get("reason"), - "data": obj.get("data") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRGlzYnVyc2VtZW50VmFsaWRhdGlvbkZhaWx1cmUoQmFzZU1vZGVsKToKICAgICIiIgogICAgRGlzYnVyc2VtZW50VmFsaWRhdGlvbkZhaWx1cmUKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHJlYXNvbjogU3RyaWN0U3RyCiAgICBkYXRhOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInJlYXNvbiIsICJkYXRhIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdyZWFzb24nKQogICAgZGVmIHJlYXNvbl92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydBQ0NPVU5UX05PVF9GT1VORCcsICdBQ0NPVU5UX1RZUEVfTk9UX1NVUFBPUlRFRCcsICdJTlNVRkZJQ0lFTlRfQkFMQU5DRScsICdBU1NFVF9OT1RfRk9VTkQnLCAnQVNTRVRTX0NPTlRJTlVJVFlfTUlTTUFUQ0gnLCAnRVhDSEFOR0VfQkFTS0VUU19NSVNNQVRDSCcsICdBQ0NPVU5UU19DT05USU5VSVRZX01JU01BVENIJywgJ09ORV9USU1FX0FERFJFU1NfQ09OVElOVUlUWV9OT1RfQUxMT1dFRCcsICdFUVVBTF9BQ0NPVU5UU19OT1RfQUxMT1dFRCcsICdFUVVBTF9BU1NFVFNfTk9UX0FMTE9XRUQnLCAnSU5WQUxJRF9BTU9VTlQnLCAnVU5NQU5BR0VEX1dBTExFVF9BU19TT1VSQ0VfTk9UX0FMTE9XRUQnLCAnTUFOQUdFRF9PUEVSQVRJT05fUEFSQU1TX0lOVkFMSURfU0NIRU1BJywgJ0lOU1RSVUNUSU9OU19FWENFRURfSFVORFJFRF9QRVJDRU5UJywgJ0lOU1RSVUNUSU9OU19BUlJBWV9FTVBUWSddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdBQ0NPVU5UX05PVF9GT1VORCcsICdBQ0NPVU5UX1RZUEVfTk9UX1NVUFBPUlRFRCcsICdJTlNVRkZJQ0lFTlRfQkFMQU5DRScsICdBU1NFVF9OT1RfRk9VTkQnLCAnQVNTRVRTX0NPTlRJTlVJVFlfTUlTTUFUQ0gnLCAnRVhDSEFOR0VfQkFTS0VUU19NSVNNQVRDSCcsICdBQ0NPVU5UU19DT05USU5VSVRZX01JU01BVENIJywgJ09ORV9USU1FX0FERFJFU1NfQ09OVElOVUlUWV9OT1RfQUxMT1dFRCcsICdFUVVBTF9BQ0NPVU5UU19OT1RfQUxMT1dFRCcsICdFUVVBTF9BU1NFVFNfTk9UX0FMTE9XRUQnLCAnSU5WQUxJRF9BTU9VTlQnLCAnVU5NQU5BR0VEX1dBTExFVF9BU19TT1VSQ0VfTk9UX0FMTE9XRUQnLCAnTUFOQUdFRF9PUEVSQVRJT05fUEFSQU1TX0lOVkFMSURfU0NIRU1BJywgJ0lOU1RSVUNUSU9OU19FWENFRURfSFVORFJFRF9QRVJDRU5UJywgJ0lOU1RSVUNUSU9OU19BUlJBWV9FTVBUWScpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNidXJzZW1lbnRWYWxpZGF0aW9uRmFpbHVyZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNidXJzZW1lbnRWYWxpZGF0aW9uRmFpbHVyZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJyZWFzb24iOiBvYmouZ2V0KCJyZWFzb24iKSwKICAgICAgICAgICAgImRhdGEiOiBvYmouZ2V0KCJkYXRhIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/dispatch_payout_response.py b/fireblocks/models/dispatch_payout_response.py index f029ff34..c917a4ac 100644 --- a/fireblocks/models/dispatch_payout_response.py +++ b/fireblocks/models/dispatch_payout_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class DispatchPayoutResponse(BaseModel): - """ - DispatchPayoutResponse - """ # noqa: E501 - payout_id: StrictStr = Field(alias="payoutId") - __properties: ClassVar[List[str]] = ["payoutId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DispatchPayoutResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DispatchPayoutResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "payoutId": obj.get("payoutId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIERpc3BhdGNoUGF5b3V0UmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgRGlzcGF0Y2hQYXlvdXRSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgcGF5b3V0X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChhbGlhcz0icGF5b3V0SWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJwYXlvdXRJZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRGlzcGF0Y2hQYXlvdXRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEaXNwYXRjaFBheW91dFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInBheW91dElkIjogb2JqLmdldCgicGF5b3V0SWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/draft_response.py b/fireblocks/models/draft_response.py index 118873f8..d6274806 100644 --- a/fireblocks/models/draft_response.py +++ b/fireblocks/models/draft_response.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.policy_metadata import PolicyMetadata -from fireblocks.models.policy_rule import PolicyRule -from typing import Optional, Set -from typing_extensions import Self - -class DraftResponse(BaseModel): - """ - Response object for draft operations - """ # noqa: E501 - status: StrictStr = Field(description="Operation status") - rules: List[PolicyRule] = Field(description="Draft rules") - draft_id: StrictStr = Field(description="Draft unique id", alias="draftId") - metadata: PolicyMetadata - __properties: ClassVar[List[str]] = ["status", "rules", "draftId", "metadata"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DraftResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in rules (list) - _items = [] - if self.rules: - for _item_rules in self.rules: - if _item_rules: - _items.append(_item_rules.to_dict()) - _dict['rules'] = _items - # override the default output from pydantic by calling `to_dict()` of metadata - if self.metadata: - _dict['metadata'] = self.metadata.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DraftResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "status": obj.get("status"), - "rules": [PolicyRule.from_dict(_item) for _item in obj["rules"]] if obj.get("rules") is not None else None, - "draftId": obj.get("draftId"), - "metadata": PolicyMetadata.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X21ldGFkYXRhIGltcG9ydCBQb2xpY3lNZXRhZGF0YQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9ydWxlIGltcG9ydCBQb2xpY3lSdWxlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIERyYWZ0UmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgUmVzcG9uc2Ugb2JqZWN0IGZvciBkcmFmdCBvcGVyYXRpb25zCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzdGF0dXM6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJPcGVyYXRpb24gc3RhdHVzIikKICAgIHJ1bGVzOiBMaXN0W1BvbGljeVJ1bGVdID0gRmllbGQoZGVzY3JpcHRpb249IkRyYWZ0IHJ1bGVzIikKICAgIGRyYWZ0X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iRHJhZnQgdW5pcXVlIGlkIiwgYWxpYXM9ImRyYWZ0SWQiKQogICAgbWV0YWRhdGE6IFBvbGljeU1ldGFkYXRhCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInN0YXR1cyIsICJydWxlcyIsICJkcmFmdElkIiwgIm1ldGFkYXRhIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEcmFmdFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIHJ1bGVzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5ydWxlczoKICAgICAgICAgICAgZm9yIF9pdGVtX3J1bGVzIGluIHNlbGYucnVsZXM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9ydWxlczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX3J1bGVzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ3J1bGVzJ10gPSBfaXRlbXMKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgbWV0YWRhdGEKICAgICAgICBpZiBzZWxmLm1ldGFkYXRhOgogICAgICAgICAgICBfZGljdFsnbWV0YWRhdGEnXSA9IHNlbGYubWV0YWRhdGEudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEcmFmdFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAicnVsZXMiOiBbUG9saWN5UnVsZS5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbInJ1bGVzIl1dIGlmIG9iai5nZXQoInJ1bGVzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZHJhZnRJZCI6IG9iai5nZXQoImRyYWZ0SWQiKSwKICAgICAgICAgICAgIm1ldGFkYXRhIjogUG9saWN5TWV0YWRhdGEuZnJvbV9kaWN0KG9ialsibWV0YWRhdGEiXSkgaWYgb2JqLmdldCgibWV0YWRhdGEiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/draft_review_and_validation_response.py b/fireblocks/models/draft_review_and_validation_response.py index 533838cb..dd94ebbe 100644 --- a/fireblocks/models/draft_review_and_validation_response.py +++ b/fireblocks/models/draft_review_and_validation_response.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.draft_response import DraftResponse -from fireblocks.models.policy_validation import PolicyValidation -from typing import Optional, Set -from typing_extensions import Self - -class DraftReviewAndValidationResponse(BaseModel): - """ - Draft validation - """ # noqa: E501 - draft_response: DraftResponse = Field(alias="draftResponse") - validation: PolicyValidation - __properties: ClassVar[List[str]] = ["draftResponse", "validation"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DraftReviewAndValidationResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of draft_response - if self.draft_response: - _dict['draftResponse'] = self.draft_response.to_dict() - # override the default output from pydantic by calling `to_dict()` of validation - if self.validation: - _dict['validation'] = self.validation.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DraftReviewAndValidationResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "draftResponse": DraftResponse.from_dict(obj["draftResponse"]) if obj.get("draftResponse") is not None else None, - "validation": PolicyValidation.from_dict(obj["validation"]) if obj.get("validation") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRyYWZ0X3Jlc3BvbnNlIGltcG9ydCBEcmFmdFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3ZhbGlkYXRpb24gaW1wb3J0IFBvbGljeVZhbGlkYXRpb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgRHJhZnQgdmFsaWRhdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgZHJhZnRfcmVzcG9uc2U6IERyYWZ0UmVzcG9uc2UgPSBGaWVsZChhbGlhcz0iZHJhZnRSZXNwb25zZSIpCiAgICB2YWxpZGF0aW9uOiBQb2xpY3lWYWxpZGF0aW9uCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRyYWZ0UmVzcG9uc2UiLCAidmFsaWRhdGlvbiJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBkcmFmdF9yZXNwb25zZQogICAgICAgIGlmIHNlbGYuZHJhZnRfcmVzcG9uc2U6CiAgICAgICAgICAgIF9kaWN0WydkcmFmdFJlc3BvbnNlJ10gPSBzZWxmLmRyYWZ0X3Jlc3BvbnNlLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiB2YWxpZGF0aW9uCiAgICAgICAgaWYgc2VsZi52YWxpZGF0aW9uOgogICAgICAgICAgICBfZGljdFsndmFsaWRhdGlvbiddID0gc2VsZi52YWxpZGF0aW9uLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZHJhZnRSZXNwb25zZSI6IERyYWZ0UmVzcG9uc2UuZnJvbV9kaWN0KG9ialsiZHJhZnRSZXNwb25zZSJdKSBpZiBvYmouZ2V0KCJkcmFmdFJlc3BvbnNlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAidmFsaWRhdGlvbiI6IFBvbGljeVZhbGlkYXRpb24uZnJvbV9kaWN0KG9ialsidmFsaWRhdGlvbiJdKSBpZiBvYmouZ2V0KCJ2YWxpZGF0aW9uIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/drop_transaction_request.py b/fireblocks/models/drop_transaction_request.py index 28c48895..c049b6d9 100644 --- a/fireblocks/models/drop_transaction_request.py +++ b/fireblocks/models/drop_transaction_request.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class DropTransactionRequest(BaseModel): - """ - DropTransactionRequest - """ # noqa: E501 - tx_id: Optional[StrictStr] = Field(default=None, alias="txId") - fee_level: Optional[StrictStr] = Field(default=None, alias="feeLevel") - gas_price: Optional[StrictStr] = Field(default=None, alias="gasPrice") - __properties: ClassVar[List[str]] = ["txId", "feeLevel", "gasPrice"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DropTransactionRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DropTransactionRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "txId": obj.get("txId"), - "feeLevel": obj.get("feeLevel"), - "gasPrice": obj.get("gasPrice") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBEcm9wVHJhbnNhY3Rpb25SZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIERyb3BUcmFuc2FjdGlvblJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR4X2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0idHhJZCIpCiAgICBmZWVfbGV2ZWw6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJmZWVMZXZlbCIpCiAgICBnYXNfcHJpY2U6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJnYXNQcmljZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR4SWQiLCAiZmVlTGV2ZWwiLCAiZ2FzUHJpY2UiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERyb3BUcmFuc2FjdGlvblJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRHJvcFRyYW5zYWN0aW9uUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eElkIjogb2JqLmdldCgidHhJZCIpLAogICAgICAgICAgICAiZmVlTGV2ZWwiOiBvYmouZ2V0KCJmZWVMZXZlbCIpLAogICAgICAgICAgICAiZ2FzUHJpY2UiOiBvYmouZ2V0KCJnYXNQcmljZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/drop_transaction_response.py b/fireblocks/models/drop_transaction_response.py index a4a49bc9..9d7d2766 100644 --- a/fireblocks/models/drop_transaction_response.py +++ b/fireblocks/models/drop_transaction_response.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class DropTransactionResponse(BaseModel): - """ - DropTransactionResponse - """ # noqa: E501 - tx_status: Optional[StrictStr] = Field(default=None, alias="txStatus") - tx_id: Optional[StrictStr] = Field(default=None, alias="txId") - replaced_tx_hash: Optional[StrictStr] = Field(default=None, alias="replacedTxHash") - __properties: ClassVar[List[str]] = ["txStatus", "txId", "replacedTxHash"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DropTransactionResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DropTransactionResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "txStatus": obj.get("txStatus"), - "txId": obj.get("txId"), - "replacedTxHash": obj.get("replacedTxHash") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBEcm9wVHJhbnNhY3Rpb25SZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBEcm9wVHJhbnNhY3Rpb25SZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHhfc3RhdHVzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0idHhTdGF0dXMiKQogICAgdHhfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJ0eElkIikKICAgIHJlcGxhY2VkX3R4X2hhc2g6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJyZXBsYWNlZFR4SGFzaCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR4U3RhdHVzIiwgInR4SWQiLCAicmVwbGFjZWRUeEhhc2giXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERyb3BUcmFuc2FjdGlvblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERyb3BUcmFuc2FjdGlvblJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInR4U3RhdHVzIjogb2JqLmdldCgidHhTdGF0dXMiKSwKICAgICAgICAgICAgInR4SWQiOiBvYmouZ2V0KCJ0eElkIiksCiAgICAgICAgICAgICJyZXBsYWNlZFR4SGFzaCI6IG9iai5nZXQoInJlcGxhY2VkVHhIYXNoIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/dvn_config.py b/fireblocks/models/dvn_config.py index b4b9cebb..090987c5 100644 --- a/fireblocks/models/dvn_config.py +++ b/fireblocks/models/dvn_config.py @@ -1,93 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class DvnConfig(BaseModel): - """ - DvnConfig - """ # noqa: E501 - dvn_addresses: Annotated[List[StrictStr], Field(min_length=1)] = Field(description="Array of required DVN Ethereum addresses that sign ULN messages.", alias="dvnAddresses") - optional_dvn_addresses: Optional[List[StrictStr]] = Field(default=None, description="Array of optional DVN Ethereum addresses that sign ULN messages.", alias="optionalDVNAddresses") - optional_threshold: Union[StrictFloat, StrictInt] = Field(description="Minimum number of DVN signatures required (M-of-N).", alias="optionalThreshold") - __properties: ClassVar[List[str]] = ["dvnAddresses", "optionalDVNAddresses", "optionalThreshold"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DvnConfig from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DvnConfig from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "dvnAddresses": obj.get("dvnAddresses"), - "optionalDVNAddresses": obj.get("optionalDVNAddresses"), - "optionalThreshold": obj.get("optionalThreshold") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIER2bkNvbmZpZyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBEdm5Db25maWcKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGR2bl9hZGRyZXNzZXM6IEFubm90YXRlZFtMaXN0W1N0cmljdFN0cl0sIEZpZWxkKG1pbl9sZW5ndGg9MSldID0gRmllbGQoZGVzY3JpcHRpb249IkFycmF5IG9mIHJlcXVpcmVkIERWTiBFdGhlcmV1bSBhZGRyZXNzZXMgdGhhdCBzaWduIFVMTiBtZXNzYWdlcy4iLCBhbGlhcz0iZHZuQWRkcmVzc2VzIikKICAgIG9wdGlvbmFsX2R2bl9hZGRyZXNzZXM6IE9wdGlvbmFsW0xpc3RbU3RyaWN0U3RyXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBcnJheSBvZiBvcHRpb25hbCBEVk4gRXRoZXJldW0gYWRkcmVzc2VzIHRoYXQgc2lnbiBVTE4gbWVzc2FnZXMuIiwgYWxpYXM9Im9wdGlvbmFsRFZOQWRkcmVzc2VzIikKICAgIG9wdGlvbmFsX3RocmVzaG9sZDogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iTWluaW11bSBudW1iZXIgb2YgRFZOIHNpZ25hdHVyZXMgcmVxdWlyZWQgKE0tb2YtTikuIiwgYWxpYXM9Im9wdGlvbmFsVGhyZXNob2xkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZHZuQWRkcmVzc2VzIiwgIm9wdGlvbmFsRFZOQWRkcmVzc2VzIiwgIm9wdGlvbmFsVGhyZXNob2xkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEdm5Db25maWcgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRHZuQ29uZmlnIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImR2bkFkZHJlc3NlcyI6IG9iai5nZXQoImR2bkFkZHJlc3NlcyIpLAogICAgICAgICAgICAib3B0aW9uYWxEVk5BZGRyZXNzZXMiOiBvYmouZ2V0KCJvcHRpb25hbERWTkFkZHJlc3NlcyIpLAogICAgICAgICAgICAib3B0aW9uYWxUaHJlc2hvbGQiOiBvYmouZ2V0KCJvcHRpb25hbFRocmVzaG9sZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/dvn_config_with_confirmations.py b/fireblocks/models/dvn_config_with_confirmations.py index bbafd132..f6e2931c 100644 --- a/fireblocks/models/dvn_config_with_confirmations.py +++ b/fireblocks/models/dvn_config_with_confirmations.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class DvnConfigWithConfirmations(BaseModel): - """ - DvnConfigWithConfirmations - """ # noqa: E501 - dvn_addresses: Annotated[List[StrictStr], Field(min_length=1)] = Field(description="Array of required DVN Ethereum addresses that sign ULN messages.", alias="dvnAddresses") - optional_dvn_addresses: Optional[List[StrictStr]] = Field(default=None, description="Array of optional DVN Ethereum addresses that sign ULN messages.", alias="optionalDVNAddresses") - optional_threshold: Union[StrictFloat, StrictInt] = Field(description="Minimum number of DVN signatures required (M-of-N).", alias="optionalThreshold") - confirmations: Union[StrictFloat, StrictInt] = Field(description="Number of block confirmations required") - __properties: ClassVar[List[str]] = ["dvnAddresses", "optionalDVNAddresses", "optionalThreshold", "confirmations"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DvnConfigWithConfirmations from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DvnConfigWithConfirmations from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "dvnAddresses": obj.get("dvnAddresses"), - "optionalDVNAddresses": obj.get("optionalDVNAddresses"), - "optionalThreshold": obj.get("optionalThreshold"), - "confirmations": obj.get("confirmations") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkdm5fYWRkcmVzc2VzOiBBbm5vdGF0ZWRbTGlzdFtTdHJpY3RTdHJdLCBGaWVsZChtaW5fbGVuZ3RoPTEpXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBcnJheSBvZiByZXF1aXJlZCBEVk4gRXRoZXJldW0gYWRkcmVzc2VzIHRoYXQgc2lnbiBVTE4gbWVzc2FnZXMuIiwgYWxpYXM9ImR2bkFkZHJlc3NlcyIpCiAgICBvcHRpb25hbF9kdm5fYWRkcmVzc2VzOiBPcHRpb25hbFtMaXN0W1N0cmljdFN0cl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQXJyYXkgb2Ygb3B0aW9uYWwgRFZOIEV0aGVyZXVtIGFkZHJlc3NlcyB0aGF0IHNpZ24gVUxOIG1lc3NhZ2VzLiIsIGFsaWFzPSJvcHRpb25hbERWTkFkZHJlc3NlcyIpCiAgICBvcHRpb25hbF90aHJlc2hvbGQ6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoZGVzY3JpcHRpb249Ik1pbmltdW0gbnVtYmVyIG9mIERWTiBzaWduYXR1cmVzIHJlcXVpcmVkIChNLW9mLU4pLiIsIGFsaWFzPSJvcHRpb25hbFRocmVzaG9sZCIpCiAgICBjb25maXJtYXRpb25zOiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJOdW1iZXIgb2YgYmxvY2sgY29uZmlybWF0aW9ucyByZXF1aXJlZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImR2bkFkZHJlc3NlcyIsICJvcHRpb25hbERWTkFkZHJlc3NlcyIsICJvcHRpb25hbFRocmVzaG9sZCIsICJjb25maXJtYXRpb25zIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEdm5Db25maWdXaXRoQ29uZmlybWF0aW9ucyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBEdm5Db25maWdXaXRoQ29uZmlybWF0aW9ucyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkdm5BZGRyZXNzZXMiOiBvYmouZ2V0KCJkdm5BZGRyZXNzZXMiKSwKICAgICAgICAgICAgIm9wdGlvbmFsRFZOQWRkcmVzc2VzIjogb2JqLmdldCgib3B0aW9uYWxEVk5BZGRyZXNzZXMiKSwKICAgICAgICAgICAgIm9wdGlvbmFsVGhyZXNob2xkIjogb2JqLmdldCgib3B0aW9uYWxUaHJlc2hvbGQiKSwKICAgICAgICAgICAgImNvbmZpcm1hdGlvbnMiOiBvYmouZ2V0KCJjb25maXJtYXRpb25zIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/dvp_settlement.py b/fireblocks/models/dvp_settlement.py index aa4105d5..fed0da3c 100644 --- a/fireblocks/models/dvp_settlement.py +++ b/fireblocks/models/dvp_settlement.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.account_reference import AccountReference -from fireblocks.models.dvp_settlement_type import DVPSettlementType -from fireblocks.models.settlement_source_account import SettlementSourceAccount -from typing import Optional, Set -from typing_extensions import Self - -class DVPSettlement(BaseModel): - """ - Source/Destination accounts for the quote (must have for defi quotes) - """ # noqa: E501 - type: DVPSettlementType - source_account: SettlementSourceAccount = Field(alias="sourceAccount") - destination_account: AccountReference = Field(alias="destinationAccount") - __properties: ClassVar[List[str]] = ["type", "sourceAccount", "destinationAccount"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DVPSettlement from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of source_account - if self.source_account: - _dict['sourceAccount'] = self.source_account.to_dict() - # override the default output from pydantic by calling `to_dict()` of destination_account - if self.destination_account: - _dict['destinationAccount'] = self.destination_account.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DVPSettlement from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "sourceAccount": SettlementSourceAccount.from_dict(obj["sourceAccount"]) if obj.get("sourceAccount") is not None else None, - "destinationAccount": AccountReference.from_dict(obj["destinationAccount"]) if obj.get("destinationAccount") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfcmVmZXJlbmNlIGltcG9ydCBBY2NvdW50UmVmZXJlbmNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZHZwX3NldHRsZW1lbnRfdHlwZSBpbXBvcnQgRFZQU2V0dGxlbWVudFR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXR0bGVtZW50X3NvdXJjZV9hY2NvdW50IGltcG9ydCBTZXR0bGVtZW50U291cmNlQWNjb3VudApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBEVlBTZXR0bGVtZW50KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNvdXJjZS9EZXN0aW5hdGlvbiBhY2NvdW50cyBmb3IgdGhlIHF1b3RlIChtdXN0IGhhdmUgZm9yIGRlZmkgcXVvdGVzKQogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogRFZQU2V0dGxlbWVudFR5cGUKICAgIHNvdXJjZV9hY2NvdW50OiBTZXR0bGVtZW50U291cmNlQWNjb3VudCA9IEZpZWxkKGFsaWFzPSJzb3VyY2VBY2NvdW50IikKICAgIGRlc3RpbmF0aW9uX2FjY291bnQ6IEFjY291bnRSZWZlcmVuY2UgPSBGaWVsZChhbGlhcz0iZGVzdGluYXRpb25BY2NvdW50IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidHlwZSIsICJzb3VyY2VBY2NvdW50IiwgImRlc3RpbmF0aW9uQWNjb3VudCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRFZQU2V0dGxlbWVudCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHNvdXJjZV9hY2NvdW50CiAgICAgICAgaWYgc2VsZi5zb3VyY2VfYWNjb3VudDoKICAgICAgICAgICAgX2RpY3RbJ3NvdXJjZUFjY291bnQnXSA9IHNlbGYuc291cmNlX2FjY291bnQudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGRlc3RpbmF0aW9uX2FjY291bnQKICAgICAgICBpZiBzZWxmLmRlc3RpbmF0aW9uX2FjY291bnQ6CiAgICAgICAgICAgIF9kaWN0WydkZXN0aW5hdGlvbkFjY291bnQnXSA9IHNlbGYuZGVzdGluYXRpb25fYWNjb3VudC50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIERWUFNldHRsZW1lbnQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgInNvdXJjZUFjY291bnQiOiBTZXR0bGVtZW50U291cmNlQWNjb3VudC5mcm9tX2RpY3Qob2JqWyJzb3VyY2VBY2NvdW50Il0pIGlmIG9iai5nZXQoInNvdXJjZUFjY291bnQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJkZXN0aW5hdGlvbkFjY291bnQiOiBBY2NvdW50UmVmZXJlbmNlLmZyb21fZGljdChvYmpbImRlc3RpbmF0aW9uQWNjb3VudCJdKSBpZiBvYmouZ2V0KCJkZXN0aW5hdGlvbkFjY291bnQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/dvp_settlement_type.py b/fireblocks/models/dvp_settlement_type.py index f56f7f4f..7b974265 100644 --- a/fireblocks/models/dvp_settlement_type.py +++ b/fireblocks/models/dvp_settlement_type.py @@ -1,37 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class DVPSettlementType(str, Enum): - """ - DVPSettlementType - """ - - """ - allowed enum values - """ - DVP = 'DVP' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of DVPSettlementType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBEVlBTZXR0bGVtZW50VHlwZShzdHIsIEVudW0pOgogICAgIiIiCiAgICBEVlBTZXR0bGVtZW50VHlwZQogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIERWUCA9ICdEVlAnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRFZQU2V0dGxlbWVudFR5cGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/edit_gas_station_configuration_response.py b/fireblocks/models/edit_gas_station_configuration_response.py index 5106373f..42b792d7 100644 --- a/fireblocks/models/edit_gas_station_configuration_response.py +++ b/fireblocks/models/edit_gas_station_configuration_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class EditGasStationConfigurationResponse(BaseModel): - """ - EditGasStationConfigurationResponse - """ # noqa: E501 - success: StrictBool = Field(description="Indicates whether editing the gas station configuration was successful") - __properties: ClassVar[List[str]] = ["success"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EditGasStationConfigurationResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EditGasStationConfigurationResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "success": obj.get("success") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBFZGl0R2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBFZGl0R2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgc3VjY2VzczogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJbmRpY2F0ZXMgd2hldGhlciBlZGl0aW5nIHRoZSBnYXMgc3RhdGlvbiBjb25maWd1cmF0aW9uIHdhcyBzdWNjZXNzZnVsIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3VjY2VzcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRWRpdEdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRWRpdEdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3VjY2VzcyI6IG9iai5nZXQoInN1Y2Nlc3MiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/embedded_wallet.py b/fireblocks/models/embedded_wallet.py index 9c4146d9..3a781529 100644 --- a/fireblocks/models/embedded_wallet.py +++ b/fireblocks/models/embedded_wallet.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class EmbeddedWallet(BaseModel): - """ - EmbeddedWallet - """ # noqa: E501 - wallet_id: StrictStr = Field(description="walletId", alias="walletId") - enabled: StrictBool = Field(description="enabled") - __properties: ClassVar[List[str]] = ["walletId", "enabled"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EmbeddedWallet from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EmbeddedWallet from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "walletId": obj.get("walletId"), - "enabled": obj.get("enabled") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEVtYmVkZGVkV2FsbGV0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEVtYmVkZGVkV2FsbGV0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB3YWxsZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJ3YWxsZXRJZCIsIGFsaWFzPSJ3YWxsZXRJZCIpCiAgICBlbmFibGVkOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249ImVuYWJsZWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ3YWxsZXRJZCIsICJlbmFibGVkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ3YWxsZXRJZCI6IG9iai5nZXQoIndhbGxldElkIiksCiAgICAgICAgICAgICJlbmFibGVkIjogb2JqLmdldCgiZW5hYmxlZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/embedded_wallet_account.py b/fireblocks/models/embedded_wallet_account.py index ed2328d9..18a6272c 100644 --- a/fireblocks/models/embedded_wallet_account.py +++ b/fireblocks/models/embedded_wallet_account.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class EmbeddedWalletAccount(BaseModel): - """ - EmbeddedWalletAccount - """ # noqa: E501 - account_id: StrictStr = Field(description="The ID of the account", alias="accountId") - wallet_id: StrictStr = Field(description="Unique identifier of the Non-Custodial Wallet (UUID)", alias="walletId") - __properties: ClassVar[List[str]] = ["accountId", "walletId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EmbeddedWalletAccount from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EmbeddedWalletAccount from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountId": obj.get("accountId"), - "walletId": obj.get("walletId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEVtYmVkZGVkV2FsbGV0QWNjb3VudChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBFbWJlZGRlZFdhbGxldEFjY291bnQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFjY291bnRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFjY291bnQiLCBhbGlhcz0iYWNjb3VudElkIikKICAgIHdhbGxldF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBOb24tQ3VzdG9kaWFsIFdhbGxldCAoVVVJRCkiLCBhbGlhcz0id2FsbGV0SWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhY2NvdW50SWQiLCAid2FsbGV0SWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0QWNjb3VudCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldEFjY291bnQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYWNjb3VudElkIjogb2JqLmdldCgiYWNjb3VudElkIiksCiAgICAgICAgICAgICJ3YWxsZXRJZCI6IG9iai5nZXQoIndhbGxldElkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/embedded_wallet_address_details.py b/fireblocks/models/embedded_wallet_address_details.py index 09cb7a2b..7770b039 100644 --- a/fireblocks/models/embedded_wallet_address_details.py +++ b/fireblocks/models/embedded_wallet_address_details.py @@ -1,135 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class EmbeddedWalletAddressDetails(BaseModel): - """ - EmbeddedWalletAddressDetails - """ # noqa: E501 - account_name: StrictStr = Field(description="accountName", alias="accountName") - account_id: StrictStr = Field(description="accountId", alias="accountId") - asset: StrictStr = Field(description="asset") - address: StrictStr = Field(description="address") - address_type: StrictStr = Field(description="addressType", alias="addressType") - address_description: StrictStr = Field(description="addressDescription", alias="addressDescription") - tag: StrictStr = Field(description="tag") - address_index: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="addressIndex", alias="addressIndex") - change: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="change") - coin_type: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unique identifier of an asset (0 for BTC, 60 for ETH, etc.)", alias="coinType") - customer_ref_id: Optional[StrictStr] = Field(default=None, description="customerRefId", alias="customerRefId") - address_format: Optional[StrictStr] = Field(default=None, description="addressFormat", alias="addressFormat") - legacy_address: Optional[StrictStr] = Field(default=None, description="legacyAddress", alias="legacyAddress") - payment_address: Optional[StrictStr] = Field(default=None, description="paymentAddress", alias="paymentAddress") - user_defined: Optional[StrictBool] = Field(default=None, description="userDefined", alias="userDefined") - state: Optional[StrictStr] = Field(default=None, description="state") - __properties: ClassVar[List[str]] = ["accountName", "accountId", "asset", "address", "addressType", "addressDescription", "tag", "addressIndex", "change", "coinType", "customerRefId", "addressFormat", "legacyAddress", "paymentAddress", "userDefined", "state"] - - @field_validator('address_type') - def address_type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['PERMANENT', 'CHANGE', 'DEFAULT', 'ADDRESS']): - raise ValueError("must be one of enum values ('PERMANENT', 'CHANGE', 'DEFAULT', 'ADDRESS')") - return value - - @field_validator('state') - def state_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['PENDING_ACTIVATION', 'ACTIVATION_FAILED', 'READY']): - raise ValueError("must be one of enum values ('PENDING_ACTIVATION', 'ACTIVATION_FAILED', 'READY')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EmbeddedWalletAddressDetails from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EmbeddedWalletAddressDetails from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountName": obj.get("accountName"), - "accountId": obj.get("accountId"), - "asset": obj.get("asset"), - "address": obj.get("address"), - "addressType": obj.get("addressType"), - "addressDescription": obj.get("addressDescription"), - "tag": obj.get("tag"), - "addressIndex": obj.get("addressIndex"), - "change": obj.get("change"), - "coinType": obj.get("coinType"), - "customerRefId": obj.get("customerRefId"), - "addressFormat": obj.get("addressFormat"), - "legacyAddress": obj.get("legacyAddress"), - "paymentAddress": obj.get("paymentAddress"), - "userDefined": obj.get("userDefined"), - "state": obj.get("state") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBFbWJlZGRlZFdhbGxldEFkZHJlc3NEZXRhaWxzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEVtYmVkZGVkV2FsbGV0QWRkcmVzc0RldGFpbHMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFjY291bnRfbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249ImFjY291bnROYW1lIiwgYWxpYXM9ImFjY291bnROYW1lIikKICAgIGFjY291bnRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJhY2NvdW50SWQiLCBhbGlhcz0iYWNjb3VudElkIikKICAgIGFzc2V0OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iYXNzZXQiKQogICAgYWRkcmVzczogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249ImFkZHJlc3MiKQogICAgYWRkcmVzc190eXBlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iYWRkcmVzc1R5cGUiLCBhbGlhcz0iYWRkcmVzc1R5cGUiKQogICAgYWRkcmVzc19kZXNjcmlwdGlvbjogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249ImFkZHJlc3NEZXNjcmlwdGlvbiIsIGFsaWFzPSJhZGRyZXNzRGVzY3JpcHRpb24iKQogICAgdGFnOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0idGFnIikKICAgIGFkZHJlc3NfaW5kZXg6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249ImFkZHJlc3NJbmRleCIsIGFsaWFzPSJhZGRyZXNzSW5kZXgiKQogICAgY2hhbmdlOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJjaGFuZ2UiKQogICAgY29pbl90eXBlOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJVbmlxdWUgaWRlbnRpZmllciBvZiBhbiBhc3NldCAoMCBmb3IgQlRDLCA2MCBmb3IgRVRILCBldGMuKSIsIGFsaWFzPSJjb2luVHlwZSIpCiAgICBjdXN0b21lcl9yZWZfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJjdXN0b21lclJlZklkIiwgYWxpYXM9ImN1c3RvbWVyUmVmSWQiKQogICAgYWRkcmVzc19mb3JtYXQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJhZGRyZXNzRm9ybWF0IiwgYWxpYXM9ImFkZHJlc3NGb3JtYXQiKQogICAgbGVnYWN5X2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJsZWdhY3lBZGRyZXNzIiwgYWxpYXM9ImxlZ2FjeUFkZHJlc3MiKQogICAgcGF5bWVudF9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0icGF5bWVudEFkZHJlc3MiLCBhbGlhcz0icGF5bWVudEFkZHJlc3MiKQogICAgdXNlcl9kZWZpbmVkOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249InVzZXJEZWZpbmVkIiwgYWxpYXM9InVzZXJEZWZpbmVkIikKICAgIHN0YXRlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0ic3RhdGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhY2NvdW50TmFtZSIsICJhY2NvdW50SWQiLCAiYXNzZXQiLCAiYWRkcmVzcyIsICJhZGRyZXNzVHlwZSIsICJhZGRyZXNzRGVzY3JpcHRpb24iLCAidGFnIiwgImFkZHJlc3NJbmRleCIsICJjaGFuZ2UiLCAiY29pblR5cGUiLCAiY3VzdG9tZXJSZWZJZCIsICJhZGRyZXNzRm9ybWF0IiwgImxlZ2FjeUFkZHJlc3MiLCAicGF5bWVudEFkZHJlc3MiLCAidXNlckRlZmluZWQiLCAic3RhdGUiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FkZHJlc3NfdHlwZScpCiAgICBkZWYgYWRkcmVzc190eXBlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ1BFUk1BTkVOVCcsICdDSEFOR0UnLCAnREVGQVVMVCcsICdBRERSRVNTJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ1BFUk1BTkVOVCcsICdDSEFOR0UnLCAnREVGQVVMVCcsICdBRERSRVNTJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3N0YXRlJykKICAgIGRlZiBzdGF0ZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnUEVORElOR19BQ1RJVkFUSU9OJywgJ0FDVElWQVRJT05fRkFJTEVEJywgJ1JFQURZJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ1BFTkRJTkdfQUNUSVZBVElPTicsICdBQ1RJVkFUSU9OX0ZBSUxFRCcsICdSRUFEWScpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldEFkZHJlc3NEZXRhaWxzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0QWRkcmVzc0RldGFpbHMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYWNjb3VudE5hbWUiOiBvYmouZ2V0KCJhY2NvdW50TmFtZSIpLAogICAgICAgICAgICAiYWNjb3VudElkIjogb2JqLmdldCgiYWNjb3VudElkIiksCiAgICAgICAgICAgICJhc3NldCI6IG9iai5nZXQoImFzc2V0IiksCiAgICAgICAgICAgICJhZGRyZXNzIjogb2JqLmdldCgiYWRkcmVzcyIpLAogICAgICAgICAgICAiYWRkcmVzc1R5cGUiOiBvYmouZ2V0KCJhZGRyZXNzVHlwZSIpLAogICAgICAgICAgICAiYWRkcmVzc0Rlc2NyaXB0aW9uIjogb2JqLmdldCgiYWRkcmVzc0Rlc2NyaXB0aW9uIiksCiAgICAgICAgICAgICJ0YWciOiBvYmouZ2V0KCJ0YWciKSwKICAgICAgICAgICAgImFkZHJlc3NJbmRleCI6IG9iai5nZXQoImFkZHJlc3NJbmRleCIpLAogICAgICAgICAgICAiY2hhbmdlIjogb2JqLmdldCgiY2hhbmdlIiksCiAgICAgICAgICAgICJjb2luVHlwZSI6IG9iai5nZXQoImNvaW5UeXBlIiksCiAgICAgICAgICAgICJjdXN0b21lclJlZklkIjogb2JqLmdldCgiY3VzdG9tZXJSZWZJZCIpLAogICAgICAgICAgICAiYWRkcmVzc0Zvcm1hdCI6IG9iai5nZXQoImFkZHJlc3NGb3JtYXQiKSwKICAgICAgICAgICAgImxlZ2FjeUFkZHJlc3MiOiBvYmouZ2V0KCJsZWdhY3lBZGRyZXNzIiksCiAgICAgICAgICAgICJwYXltZW50QWRkcmVzcyI6IG9iai5nZXQoInBheW1lbnRBZGRyZXNzIiksCiAgICAgICAgICAgICJ1c2VyRGVmaW5lZCI6IG9iai5nZXQoInVzZXJEZWZpbmVkIiksCiAgICAgICAgICAgICJzdGF0ZSI6IG9iai5nZXQoInN0YXRlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/embedded_wallet_algoritm.py b/fireblocks/models/embedded_wallet_algoritm.py index 83ae876e..fc2da16c 100644 --- a/fireblocks/models/embedded_wallet_algoritm.py +++ b/fireblocks/models/embedded_wallet_algoritm.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class EmbeddedWalletAlgoritm(BaseModel): - """ - algorithm name - """ # noqa: E501 - algorithm: StrictStr = Field(description="algorithm") - __properties: ClassVar[List[str]] = ["algorithm"] - - @field_validator('algorithm') - def algorithm_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['MPC_ECDSA_SECP256K1', 'MPC_EDDSA_ED25519']): - raise ValueError("must be one of enum values ('MPC_ECDSA_SECP256K1', 'MPC_EDDSA_ED25519')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EmbeddedWalletAlgoritm from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EmbeddedWalletAlgoritm from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "algorithm": obj.get("algorithm") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRW1iZWRkZWRXYWxsZXRBbGdvcml0bShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBhbGdvcml0aG0gbmFtZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgYWxnb3JpdGhtOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iYWxnb3JpdGhtIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYWxnb3JpdGhtIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhbGdvcml0aG0nKQogICAgZGVmIGFsZ29yaXRobV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydNUENfRUNEU0FfU0VDUDI1NksxJywgJ01QQ19FRERTQV9FRDI1NTE5J10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ01QQ19FQ0RTQV9TRUNQMjU2SzEnLCAnTVBDX0VERFNBX0VEMjU1MTknKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRW1iZWRkZWRXYWxsZXRBbGdvcml0bSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldEFsZ29yaXRtIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFsZ29yaXRobSI6IG9iai5nZXQoImFsZ29yaXRobSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/embedded_wallet_asset_balance.py b/fireblocks/models/embedded_wallet_asset_balance.py index 2536f9cc..ffa7047c 100644 --- a/fireblocks/models/embedded_wallet_asset_balance.py +++ b/fireblocks/models/embedded_wallet_asset_balance.py @@ -1,108 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.embedded_wallet_asset_reward_info import EmbeddedWalletAssetRewardInfo -from typing import Optional, Set -from typing_extensions import Self - -class EmbeddedWalletAssetBalance(BaseModel): - """ - EmbeddedWalletAssetBalance - """ # noqa: E501 - id: StrictStr = Field(description="Unique identifier of the asset balance entry") - total: StrictStr = Field(description="Total balance amount for the asset in the account (including pending, locked, and available)") - available: StrictStr = Field(description="The balance available for use or withdrawal") - pending: StrictStr = Field(description="Amount pending confirmation from blockchain (e.g., unconfirmed deposits)") - frozen: StrictStr = Field(description="Balance that is frozen due to policy or regulatory lock") - locked_amount: StrictStr = Field(description="Funds locked for operations such as staking or delegation", alias="lockedAmount") - block_height: Optional[StrictStr] = Field(default=None, description="Latest known blockchain height when balance was fetched", alias="blockHeight") - block_hash: Optional[StrictStr] = Field(default=None, description="Hash of the blockchain block associated with the current balance state", alias="blockHash") - reward_info: Optional[EmbeddedWalletAssetRewardInfo] = Field(default=None, alias="rewardInfo") - __properties: ClassVar[List[str]] = ["id", "total", "available", "pending", "frozen", "lockedAmount", "blockHeight", "blockHash", "rewardInfo"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EmbeddedWalletAssetBalance from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of reward_info - if self.reward_info: - _dict['rewardInfo'] = self.reward_info.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EmbeddedWalletAssetBalance from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "total": obj.get("total"), - "available": obj.get("available"), - "pending": obj.get("pending"), - "frozen": obj.get("frozen"), - "lockedAmount": obj.get("lockedAmount"), - "blockHeight": obj.get("blockHeight"), - "blockHash": obj.get("blockHash"), - "rewardInfo": EmbeddedWalletAssetRewardInfo.from_dict(obj["rewardInfo"]) if obj.get("rewardInfo") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9hc3NldF9yZXdhcmRfaW5mbyBpbXBvcnQgRW1iZWRkZWRXYWxsZXRBc3NldFJld2FyZEluZm8KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRW1iZWRkZWRXYWxsZXRBc3NldEJhbGFuY2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgRW1iZWRkZWRXYWxsZXRBc3NldEJhbGFuY2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGJhbGFuY2UgZW50cnkiKQogICAgdG90YWw6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUb3RhbCBiYWxhbmNlIGFtb3VudCBmb3IgdGhlIGFzc2V0IGluIHRoZSBhY2NvdW50IChpbmNsdWRpbmcgcGVuZGluZywgbG9ja2VkLCBhbmQgYXZhaWxhYmxlKSIpCiAgICBhdmFpbGFibGU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmFsYW5jZSBhdmFpbGFibGUgZm9yIHVzZSBvciB3aXRoZHJhd2FsIikKICAgIHBlbmRpbmc6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBbW91bnQgcGVuZGluZyBjb25maXJtYXRpb24gZnJvbSBibG9ja2NoYWluIChlLmcuLCB1bmNvbmZpcm1lZCBkZXBvc2l0cykiKQogICAgZnJvemVuOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQmFsYW5jZSB0aGF0IGlzIGZyb3plbiBkdWUgdG8gcG9saWN5IG9yIHJlZ3VsYXRvcnkgbG9jayIpCiAgICBsb2NrZWRfYW1vdW50OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iRnVuZHMgbG9ja2VkIGZvciBvcGVyYXRpb25zIHN1Y2ggYXMgc3Rha2luZyBvciBkZWxlZ2F0aW9uIiwgYWxpYXM9ImxvY2tlZEFtb3VudCIpCiAgICBibG9ja19oZWlnaHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJMYXRlc3Qga25vd24gYmxvY2tjaGFpbiBoZWlnaHQgd2hlbiBiYWxhbmNlIHdhcyBmZXRjaGVkIiwgYWxpYXM9ImJsb2NrSGVpZ2h0IikKICAgIGJsb2NrX2hhc2g6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJIYXNoIG9mIHRoZSBibG9ja2NoYWluIGJsb2NrIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBiYWxhbmNlIHN0YXRlIiwgYWxpYXM9ImJsb2NrSGFzaCIpCiAgICByZXdhcmRfaW5mbzogT3B0aW9uYWxbRW1iZWRkZWRXYWxsZXRBc3NldFJld2FyZEluZm9dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0icmV3YXJkSW5mbyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgInRvdGFsIiwgImF2YWlsYWJsZSIsICJwZW5kaW5nIiwgImZyb3plbiIsICJsb2NrZWRBbW91bnQiLCAiYmxvY2tIZWlnaHQiLCAiYmxvY2tIYXNoIiwgInJld2FyZEluZm8iXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0QXNzZXRCYWxhbmNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcmV3YXJkX2luZm8KICAgICAgICBpZiBzZWxmLnJld2FyZF9pbmZvOgogICAgICAgICAgICBfZGljdFsncmV3YXJkSW5mbyddID0gc2VsZi5yZXdhcmRfaW5mby50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0QXNzZXRCYWxhbmNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgInRvdGFsIjogb2JqLmdldCgidG90YWwiKSwKICAgICAgICAgICAgImF2YWlsYWJsZSI6IG9iai5nZXQoImF2YWlsYWJsZSIpLAogICAgICAgICAgICAicGVuZGluZyI6IG9iai5nZXQoInBlbmRpbmciKSwKICAgICAgICAgICAgImZyb3plbiI6IG9iai5nZXQoImZyb3plbiIpLAogICAgICAgICAgICAibG9ja2VkQW1vdW50Ijogb2JqLmdldCgibG9ja2VkQW1vdW50IiksCiAgICAgICAgICAgICJibG9ja0hlaWdodCI6IG9iai5nZXQoImJsb2NrSGVpZ2h0IiksCiAgICAgICAgICAgICJibG9ja0hhc2giOiBvYmouZ2V0KCJibG9ja0hhc2giKSwKICAgICAgICAgICAgInJld2FyZEluZm8iOiBFbWJlZGRlZFdhbGxldEFzc2V0UmV3YXJkSW5mby5mcm9tX2RpY3Qob2JqWyJyZXdhcmRJbmZvIl0pIGlmIG9iai5nZXQoInJld2FyZEluZm8iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/embedded_wallet_asset_response.py b/fireblocks/models/embedded_wallet_asset_response.py index b4317ee5..7fe6d42d 100644 --- a/fireblocks/models/embedded_wallet_asset_response.py +++ b/fireblocks/models/embedded_wallet_asset_response.py @@ -1,130 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class EmbeddedWalletAssetResponse(BaseModel): - """ - EmbeddedWalletAssetResponse - """ # noqa: E501 - id: StrictStr - symbol: StrictStr = Field(description="The asset symbol") - name: StrictStr = Field(description="The asset name") - decimals: Union[StrictFloat, StrictInt] = Field(description="Number of decimals") - network_protocol: StrictStr = Field(description="Netowrk protocol of the blockchain (BTC, ETH)", alias="networkProtocol") - testnet: StrictBool = Field(description="Is in testnet") - has_fee: StrictBool = Field(description="Has fee", alias="hasFee") - base_asset: StrictStr = Field(description="Base asset symbol BTC_TEST, ETH_TEST5)", alias="baseAsset") - eth_network: Optional[StrictStr] = Field(default=None, alias="ethNetwork") - eth_contract_address: Optional[StrictStr] = Field(default=None, alias="ethContractAddress") - issuer_address: Optional[StrictStr] = Field(default=None, description="The address of the issuer of this token. Will be part of the identifier of this token on chain.", alias="issuerAddress") - blockchain_symbol: Optional[StrictStr] = Field(default=None, description="Name of blockchain", alias="blockchainSymbol") - deprecated: Optional[StrictBool] = Field(default=None, description="Is blockchain deprecated") - coin_type: Union[StrictFloat, StrictInt] = Field(description="Unique identifier of an asset (0 for BTC, 60 for ETH, etc.)", alias="coinType") - blockchain: StrictStr = Field(description="The blockchain native asset id which the token is deployed on") - blockchain_display_name: Optional[StrictStr] = Field(default=None, description="Name of blockchain", alias="blockchainDisplayName") - algorithm: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["id", "symbol", "name", "decimals", "networkProtocol", "testnet", "hasFee", "baseAsset", "ethNetwork", "ethContractAddress", "issuerAddress", "blockchainSymbol", "deprecated", "coinType", "blockchain", "blockchainDisplayName", "algorithm"] - - @field_validator('algorithm') - def algorithm_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['MPC_ECDSA_SECP256K1', 'MPC_EDDSA_ED25519']): - raise ValueError("must be one of enum values ('MPC_ECDSA_SECP256K1', 'MPC_EDDSA_ED25519')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EmbeddedWalletAssetResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EmbeddedWalletAssetResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "symbol": obj.get("symbol"), - "name": obj.get("name"), - "decimals": obj.get("decimals"), - "networkProtocol": obj.get("networkProtocol"), - "testnet": obj.get("testnet"), - "hasFee": obj.get("hasFee"), - "baseAsset": obj.get("baseAsset"), - "ethNetwork": obj.get("ethNetwork"), - "ethContractAddress": obj.get("ethContractAddress"), - "issuerAddress": obj.get("issuerAddress"), - "blockchainSymbol": obj.get("blockchainSymbol"), - "deprecated": obj.get("deprecated"), - "coinType": obj.get("coinType"), - "blockchain": obj.get("blockchain"), - "blockchainDisplayName": obj.get("blockchainDisplayName"), - "algorithm": obj.get("algorithm") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBFbWJlZGRlZFdhbGxldEFzc2V0UmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgRW1iZWRkZWRXYWxsZXRBc3NldFJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyCiAgICBzeW1ib2w6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYXNzZXQgc3ltYm9sIikKICAgIG5hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYXNzZXQgbmFtZSIpCiAgICBkZWNpbWFsczogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iTnVtYmVyIG9mIGRlY2ltYWxzIikKICAgIG5ldHdvcmtfcHJvdG9jb2w6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJOZXRvd3JrIHByb3RvY29sIG9mIHRoZSBibG9ja2NoYWluIChCVEMsIEVUSCkiLCBhbGlhcz0ibmV0d29ya1Byb3RvY29sIikKICAgIHRlc3RuZXQ6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iSXMgaW4gdGVzdG5ldCIpCiAgICBoYXNfZmVlOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IkhhcyBmZWUiLCBhbGlhcz0iaGFzRmVlIikKICAgIGJhc2VfYXNzZXQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJCYXNlIGFzc2V0IHN5bWJvbCBCVENfVEVTVCwgRVRIX1RFU1Q1KSIsIGFsaWFzPSJiYXNlQXNzZXQiKQogICAgZXRoX25ldHdvcms6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJldGhOZXR3b3JrIikKICAgIGV0aF9jb250cmFjdF9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZXRoQ29udHJhY3RBZGRyZXNzIikKICAgIGlzc3Vlcl9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGFkZHJlc3Mgb2YgdGhlIGlzc3VlciBvZiB0aGlzIHRva2VuLiBXaWxsIGJlIHBhcnQgb2YgdGhlIGlkZW50aWZpZXIgb2YgdGhpcyB0b2tlbiBvbiBjaGFpbi4iLCBhbGlhcz0iaXNzdWVyQWRkcmVzcyIpCiAgICBibG9ja2NoYWluX3N5bWJvbDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik5hbWUgb2YgYmxvY2tjaGFpbiIsIGFsaWFzPSJibG9ja2NoYWluU3ltYm9sIikKICAgIGRlcHJlY2F0ZWQ6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSXMgYmxvY2tjaGFpbiBkZXByZWNhdGVkIikKICAgIGNvaW5fdHlwZTogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVW5pcXVlIGlkZW50aWZpZXIgb2YgYW4gYXNzZXQgKDAgZm9yIEJUQywgNjAgZm9yIEVUSCwgZXRjLikiLCBhbGlhcz0iY29pblR5cGUiKQogICAgYmxvY2tjaGFpbjogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBibG9ja2NoYWluIG5hdGl2ZSBhc3NldCBpZCB3aGljaCB0aGUgdG9rZW4gaXMgZGVwbG95ZWQgb24iKQogICAgYmxvY2tjaGFpbl9kaXNwbGF5X25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOYW1lIG9mIGJsb2NrY2hhaW4iLCBhbGlhcz0iYmxvY2tjaGFpbkRpc3BsYXlOYW1lIikKICAgIGFsZ29yaXRobTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAic3ltYm9sIiwgIm5hbWUiLCAiZGVjaW1hbHMiLCAibmV0d29ya1Byb3RvY29sIiwgInRlc3RuZXQiLCAiaGFzRmVlIiwgImJhc2VBc3NldCIsICJldGhOZXR3b3JrIiwgImV0aENvbnRyYWN0QWRkcmVzcyIsICJpc3N1ZXJBZGRyZXNzIiwgImJsb2NrY2hhaW5TeW1ib2wiLCAiZGVwcmVjYXRlZCIsICJjb2luVHlwZSIsICJibG9ja2NoYWluIiwgImJsb2NrY2hhaW5EaXNwbGF5TmFtZSIsICJhbGdvcml0aG0iXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FsZ29yaXRobScpCiAgICBkZWYgYWxnb3JpdGhtX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydNUENfRUNEU0FfU0VDUDI1NksxJywgJ01QQ19FRERTQV9FRDI1NTE5J10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ01QQ19FQ0RTQV9TRUNQMjU2SzEnLCAnTVBDX0VERFNBX0VEMjU1MTknKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRW1iZWRkZWRXYWxsZXRBc3NldFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0QXNzZXRSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJzeW1ib2wiOiBvYmouZ2V0KCJzeW1ib2wiKSwKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJkZWNpbWFscyI6IG9iai5nZXQoImRlY2ltYWxzIiksCiAgICAgICAgICAgICJuZXR3b3JrUHJvdG9jb2wiOiBvYmouZ2V0KCJuZXR3b3JrUHJvdG9jb2wiKSwKICAgICAgICAgICAgInRlc3RuZXQiOiBvYmouZ2V0KCJ0ZXN0bmV0IiksCiAgICAgICAgICAgICJoYXNGZWUiOiBvYmouZ2V0KCJoYXNGZWUiKSwKICAgICAgICAgICAgImJhc2VBc3NldCI6IG9iai5nZXQoImJhc2VBc3NldCIpLAogICAgICAgICAgICAiZXRoTmV0d29yayI6IG9iai5nZXQoImV0aE5ldHdvcmsiKSwKICAgICAgICAgICAgImV0aENvbnRyYWN0QWRkcmVzcyI6IG9iai5nZXQoImV0aENvbnRyYWN0QWRkcmVzcyIpLAogICAgICAgICAgICAiaXNzdWVyQWRkcmVzcyI6IG9iai5nZXQoImlzc3VlckFkZHJlc3MiKSwKICAgICAgICAgICAgImJsb2NrY2hhaW5TeW1ib2wiOiBvYmouZ2V0KCJibG9ja2NoYWluU3ltYm9sIiksCiAgICAgICAgICAgICJkZXByZWNhdGVkIjogb2JqLmdldCgiZGVwcmVjYXRlZCIpLAogICAgICAgICAgICAiY29pblR5cGUiOiBvYmouZ2V0KCJjb2luVHlwZSIpLAogICAgICAgICAgICAiYmxvY2tjaGFpbiI6IG9iai5nZXQoImJsb2NrY2hhaW4iKSwKICAgICAgICAgICAgImJsb2NrY2hhaW5EaXNwbGF5TmFtZSI6IG9iai5nZXQoImJsb2NrY2hhaW5EaXNwbGF5TmFtZSIpLAogICAgICAgICAgICAiYWxnb3JpdGhtIjogb2JqLmdldCgiYWxnb3JpdGhtIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/embedded_wallet_asset_reward_info.py b/fireblocks/models/embedded_wallet_asset_reward_info.py index 69c91354..59fd303d 100644 --- a/fireblocks/models/embedded_wallet_asset_reward_info.py +++ b/fireblocks/models/embedded_wallet_asset_reward_info.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class EmbeddedWalletAssetRewardInfo(BaseModel): - """ - EmbeddedWalletAssetRewardInfo - """ # noqa: E501 - pending_rewards: StrictStr = Field(description="Amount that is pending for rewards", alias="pendingRewards") - __properties: ClassVar[List[str]] = ["pendingRewards"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EmbeddedWalletAssetRewardInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EmbeddedWalletAssetRewardInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "pendingRewards": obj.get("pendingRewards") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEVtYmVkZGVkV2FsbGV0QXNzZXRSZXdhcmRJbmZvKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEVtYmVkZGVkV2FsbGV0QXNzZXRSZXdhcmRJbmZvCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBwZW5kaW5nX3Jld2FyZHM6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBbW91bnQgdGhhdCBpcyBwZW5kaW5nIGZvciByZXdhcmRzIiwgYWxpYXM9InBlbmRpbmdSZXdhcmRzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicGVuZGluZ1Jld2FyZHMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0QXNzZXRSZXdhcmRJbmZvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0QXNzZXRSZXdhcmRJbmZvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInBlbmRpbmdSZXdhcmRzIjogb2JqLmdldCgicGVuZGluZ1Jld2FyZHMiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/embedded_wallet_device.py b/fireblocks/models/embedded_wallet_device.py index 884819d5..963c2351 100644 --- a/fireblocks/models/embedded_wallet_device.py +++ b/fireblocks/models/embedded_wallet_device.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class EmbeddedWalletDevice(BaseModel): - """ - EmbeddedWalletDevice - """ # noqa: E501 - device_id: StrictStr = Field(description="deviceId", alias="deviceId") - enabled: StrictBool = Field(description="enabled") - physical_device_id: StrictStr = Field(description="physicalDeviceId", alias="physicalDeviceId") - __properties: ClassVar[List[str]] = ["deviceId", "enabled", "physicalDeviceId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EmbeddedWalletDevice from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EmbeddedWalletDevice from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "deviceId": obj.get("deviceId"), - "enabled": obj.get("enabled"), - "physicalDeviceId": obj.get("physicalDeviceId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEVtYmVkZGVkV2FsbGV0RGV2aWNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEVtYmVkZGVkV2FsbGV0RGV2aWNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkZXZpY2VfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJkZXZpY2VJZCIsIGFsaWFzPSJkZXZpY2VJZCIpCiAgICBlbmFibGVkOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249ImVuYWJsZWQiKQogICAgcGh5c2ljYWxfZGV2aWNlX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0icGh5c2ljYWxEZXZpY2VJZCIsIGFsaWFzPSJwaHlzaWNhbERldmljZUlkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZGV2aWNlSWQiLCAiZW5hYmxlZCIsICJwaHlzaWNhbERldmljZUlkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldERldmljZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldERldmljZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkZXZpY2VJZCI6IG9iai5nZXQoImRldmljZUlkIiksCiAgICAgICAgICAgICJlbmFibGVkIjogb2JqLmdldCgiZW5hYmxlZCIpLAogICAgICAgICAgICAicGh5c2ljYWxEZXZpY2VJZCI6IG9iai5nZXQoInBoeXNpY2FsRGV2aWNlSWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/embedded_wallet_device_key_setup_response.py b/fireblocks/models/embedded_wallet_device_key_setup_response.py index 66e04d1c..10b1204f 100644 --- a/fireblocks/models/embedded_wallet_device_key_setup_response.py +++ b/fireblocks/models/embedded_wallet_device_key_setup_response.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.embedded_wallet_device_key_setup_response_setup_status_inner import EmbeddedWalletDeviceKeySetupResponseSetupStatusInner -from fireblocks.models.embedded_wallet_set_up_status import EmbeddedWalletSetUpStatus -from typing import Optional, Set -from typing_extensions import Self - -class EmbeddedWalletDeviceKeySetupResponse(BaseModel): - """ - EmbeddedWalletDeviceKeySetupResponse - """ # noqa: E501 - status: EmbeddedWalletSetUpStatus - device_id: StrictStr = Field(description="deviceId", alias="deviceId") - enabled: StrictBool = Field(description="enabled") - setup_status: List[EmbeddedWalletDeviceKeySetupResponseSetupStatusInner] = Field(description="setupStatus", alias="setupStatus") - __properties: ClassVar[List[str]] = ["status", "deviceId", "enabled", "setupStatus"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EmbeddedWalletDeviceKeySetupResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of status - if self.status: - _dict['status'] = self.status.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in setup_status (list) - _items = [] - if self.setup_status: - for _item_setup_status in self.setup_status: - if _item_setup_status: - _items.append(_item_setup_status.to_dict()) - _dict['setupStatus'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EmbeddedWalletDeviceKeySetupResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "status": EmbeddedWalletSetUpStatus.from_dict(obj["status"]) if obj.get("status") is not None else None, - "deviceId": obj.get("deviceId"), - "enabled": obj.get("enabled"), - "setupStatus": [EmbeddedWalletDeviceKeySetupResponseSetupStatusInner.from_dict(_item) for _item in obj["setupStatus"]] if obj.get("setupStatus") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X2RldmljZV9rZXlfc2V0dXBfcmVzcG9uc2Vfc2V0dXBfc3RhdHVzX2lubmVyIGltcG9ydCBFbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2VTZXR1cFN0YXR1c0lubmVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X3NldF91cF9zdGF0dXMgaW1wb3J0IEVtYmVkZGVkV2FsbGV0U2V0VXBTdGF0dXMKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEVtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgc3RhdHVzOiBFbWJlZGRlZFdhbGxldFNldFVwU3RhdHVzCiAgICBkZXZpY2VfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJkZXZpY2VJZCIsIGFsaWFzPSJkZXZpY2VJZCIpCiAgICBlbmFibGVkOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249ImVuYWJsZWQiKQogICAgc2V0dXBfc3RhdHVzOiBMaXN0W0VtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZVNldHVwU3RhdHVzSW5uZXJdID0gRmllbGQoZGVzY3JpcHRpb249InNldHVwU3RhdHVzIiwgYWxpYXM9InNldHVwU3RhdHVzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3RhdHVzIiwgImRldmljZUlkIiwgImVuYWJsZWQiLCAic2V0dXBTdGF0dXMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHN0YXR1cwogICAgICAgIGlmIHNlbGYuc3RhdHVzOgogICAgICAgICAgICBfZGljdFsnc3RhdHVzJ10gPSBzZWxmLnN0YXR1cy50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIHNldHVwX3N0YXR1cyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuc2V0dXBfc3RhdHVzOgogICAgICAgICAgICBmb3IgX2l0ZW1fc2V0dXBfc3RhdHVzIGluIHNlbGYuc2V0dXBfc3RhdHVzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fc2V0dXBfc3RhdHVzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fc2V0dXBfc3RhdHVzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ3NldHVwU3RhdHVzJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzdGF0dXMiOiBFbWJlZGRlZFdhbGxldFNldFVwU3RhdHVzLmZyb21fZGljdChvYmpbInN0YXR1cyJdKSBpZiBvYmouZ2V0KCJzdGF0dXMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJkZXZpY2VJZCI6IG9iai5nZXQoImRldmljZUlkIiksCiAgICAgICAgICAgICJlbmFibGVkIjogb2JqLmdldCgiZW5hYmxlZCIpLAogICAgICAgICAgICAic2V0dXBTdGF0dXMiOiBbRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlU2V0dXBTdGF0dXNJbm5lci5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbInNldHVwU3RhdHVzIl1dIGlmIG9iai5nZXQoInNldHVwU3RhdHVzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/embedded_wallet_device_key_setup_response_setup_status_inner.py b/fireblocks/models/embedded_wallet_device_key_setup_response_setup_status_inner.py index a6e61c58..650066fd 100644 --- a/fireblocks/models/embedded_wallet_device_key_setup_response_setup_status_inner.py +++ b/fireblocks/models/embedded_wallet_device_key_setup_response_setup_status_inner.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List -from fireblocks.models.embedded_wallet_algoritm import EmbeddedWalletAlgoritm -from typing import Optional, Set -from typing_extensions import Self - -class EmbeddedWalletDeviceKeySetupResponseSetupStatusInner(BaseModel): - """ - EmbeddedWalletDeviceKeySetupResponseSetupStatusInner - """ # noqa: E501 - algorithm_name: EmbeddedWalletAlgoritm = Field(alias="algorithmName") - confirmed: StrictBool = Field(description="confirmed") - backed_up: StrictBool = Field(description="backedUp", alias="backedUp") - __properties: ClassVar[List[str]] = ["algorithmName", "confirmed", "backedUp"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EmbeddedWalletDeviceKeySetupResponseSetupStatusInner from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of algorithm_name - if self.algorithm_name: - _dict['algorithmName'] = self.algorithm_name.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EmbeddedWalletDeviceKeySetupResponseSetupStatusInner from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "algorithmName": EmbeddedWalletAlgoritm.from_dict(obj["algorithmName"]) if obj.get("algorithmName") is not None else None, - "confirmed": obj.get("confirmed"), - "backedUp": obj.get("backedUp") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9hbGdvcml0bSBpbXBvcnQgRW1iZWRkZWRXYWxsZXRBbGdvcml0bQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBFbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2VTZXR1cFN0YXR1c0lubmVyKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEVtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZVNldHVwU3RhdHVzSW5uZXIKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFsZ29yaXRobV9uYW1lOiBFbWJlZGRlZFdhbGxldEFsZ29yaXRtID0gRmllbGQoYWxpYXM9ImFsZ29yaXRobU5hbWUiKQogICAgY29uZmlybWVkOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249ImNvbmZpcm1lZCIpCiAgICBiYWNrZWRfdXA6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iYmFja2VkVXAiLCBhbGlhcz0iYmFja2VkVXAiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhbGdvcml0aG1OYW1lIiwgImNvbmZpcm1lZCIsICJiYWNrZWRVcCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlU2V0dXBTdGF0dXNJbm5lciBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFsZ29yaXRobV9uYW1lCiAgICAgICAgaWYgc2VsZi5hbGdvcml0aG1fbmFtZToKICAgICAgICAgICAgX2RpY3RbJ2FsZ29yaXRobU5hbWUnXSA9IHNlbGYuYWxnb3JpdGhtX25hbWUudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2VTZXR1cFN0YXR1c0lubmVyIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFsZ29yaXRobU5hbWUiOiBFbWJlZGRlZFdhbGxldEFsZ29yaXRtLmZyb21fZGljdChvYmpbImFsZ29yaXRobU5hbWUiXSkgaWYgb2JqLmdldCgiYWxnb3JpdGhtTmFtZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImNvbmZpcm1lZCI6IG9iai5nZXQoImNvbmZpcm1lZCIpLAogICAgICAgICAgICAiYmFja2VkVXAiOiBvYmouZ2V0KCJiYWNrZWRVcCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/embedded_wallet_latest_backup_key.py b/fireblocks/models/embedded_wallet_latest_backup_key.py index 001dd0d9..5f02516e 100644 --- a/fireblocks/models/embedded_wallet_latest_backup_key.py +++ b/fireblocks/models/embedded_wallet_latest_backup_key.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class EmbeddedWalletLatestBackupKey(BaseModel): - """ - EmbeddedWalletLatestBackupKey - """ # noqa: E501 - device_id: StrictStr = Field(description="deviceId", alias="deviceId") - public_key: StrictStr = Field(description="publicKey", alias="publicKey") - key_id: StrictStr = Field(description="keyId", alias="keyId") - algorithm: StrictStr = Field(description="algorithm") - __properties: ClassVar[List[str]] = ["deviceId", "publicKey", "keyId", "algorithm"] - - @field_validator('algorithm') - def algorithm_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['MPC_CMP_ECDSA_SECP256K1', 'MPC_CMP_EDDSA_ED25519', 'MPC_ECDSA_SECP256K1']): - raise ValueError("must be one of enum values ('MPC_CMP_ECDSA_SECP256K1', 'MPC_CMP_EDDSA_ED25519', 'MPC_ECDSA_SECP256K1')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EmbeddedWalletLatestBackupKey from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EmbeddedWalletLatestBackupKey from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "deviceId": obj.get("deviceId"), - "publicKey": obj.get("publicKey"), - "keyId": obj.get("keyId"), - "algorithm": obj.get("algorithm") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRW1iZWRkZWRXYWxsZXRMYXRlc3RCYWNrdXBLZXkoQmFzZU1vZGVsKToKICAgICIiIgogICAgRW1iZWRkZWRXYWxsZXRMYXRlc3RCYWNrdXBLZXkKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGRldmljZV9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249ImRldmljZUlkIiwgYWxpYXM9ImRldmljZUlkIikKICAgIHB1YmxpY19rZXk6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJwdWJsaWNLZXkiLCBhbGlhcz0icHVibGljS2V5IikKICAgIGtleV9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249ImtleUlkIiwgYWxpYXM9ImtleUlkIikKICAgIGFsZ29yaXRobTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249ImFsZ29yaXRobSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRldmljZUlkIiwgInB1YmxpY0tleSIsICJrZXlJZCIsICJhbGdvcml0aG0iXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FsZ29yaXRobScpCiAgICBkZWYgYWxnb3JpdGhtX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ01QQ19DTVBfRUNEU0FfU0VDUDI1NksxJywgJ01QQ19DTVBfRUREU0FfRUQyNTUxOScsICdNUENfRUNEU0FfU0VDUDI1NksxJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ01QQ19DTVBfRUNEU0FfU0VDUDI1NksxJywgJ01QQ19DTVBfRUREU0FfRUQyNTUxOScsICdNUENfRUNEU0FfU0VDUDI1NksxJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwS2V5IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwS2V5IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRldmljZUlkIjogb2JqLmdldCgiZGV2aWNlSWQiKSwKICAgICAgICAgICAgInB1YmxpY0tleSI6IG9iai5nZXQoInB1YmxpY0tleSIpLAogICAgICAgICAgICAia2V5SWQiOiBvYmouZ2V0KCJrZXlJZCIpLAogICAgICAgICAgICAiYWxnb3JpdGhtIjogb2JqLmdldCgiYWxnb3JpdGhtIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/embedded_wallet_latest_backup_response.py b/fireblocks/models/embedded_wallet_latest_backup_response.py index 025b75de..67a1f65f 100644 --- a/fireblocks/models/embedded_wallet_latest_backup_response.py +++ b/fireblocks/models/embedded_wallet_latest_backup_response.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from fireblocks.models.embedded_wallet_latest_backup_key import EmbeddedWalletLatestBackupKey -from typing import Optional, Set -from typing_extensions import Self - -class EmbeddedWalletLatestBackupResponse(BaseModel): - """ - EmbeddedWalletLatestBackupResponse - """ # noqa: E501 - passphrase_id: StrictStr = Field(description="passphraseId", alias="passphraseId") - created_at: Union[StrictFloat, StrictInt] = Field(description="createdAt", alias="createdAt") - keys: List[EmbeddedWalletLatestBackupKey] = Field(description="keys") - __properties: ClassVar[List[str]] = ["passphraseId", "createdAt", "keys"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EmbeddedWalletLatestBackupResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in keys (list) - _items = [] - if self.keys: - for _item_keys in self.keys: - if _item_keys: - _items.append(_item_keys.to_dict()) - _dict['keys'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EmbeddedWalletLatestBackupResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "passphraseId": obj.get("passphraseId"), - "createdAt": obj.get("createdAt"), - "keys": [EmbeddedWalletLatestBackupKey.from_dict(_item) for _item in obj["keys"]] if obj.get("keys") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9sYXRlc3RfYmFja3VwX2tleSBpbXBvcnQgRW1iZWRkZWRXYWxsZXRMYXRlc3RCYWNrdXBLZXkKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRW1iZWRkZWRXYWxsZXRMYXRlc3RCYWNrdXBSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBFbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cFJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBwYXNzcGhyYXNlX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0icGFzc3BocmFzZUlkIiwgYWxpYXM9InBhc3NwaHJhc2VJZCIpCiAgICBjcmVhdGVkX2F0OiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJjcmVhdGVkQXQiLCBhbGlhcz0iY3JlYXRlZEF0IikKICAgIGtleXM6IExpc3RbRW1iZWRkZWRXYWxsZXRMYXRlc3RCYWNrdXBLZXldID0gRmllbGQoZGVzY3JpcHRpb249ImtleXMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJwYXNzcGhyYXNlSWQiLCAiY3JlYXRlZEF0IiwgImtleXMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4ga2V5cyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYua2V5czoKICAgICAgICAgICAgZm9yIF9pdGVtX2tleXMgaW4gc2VsZi5rZXlzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fa2V5czoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2tleXMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsna2V5cyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInBhc3NwaHJhc2VJZCI6IG9iai5nZXQoInBhc3NwaHJhc2VJZCIpLAogICAgICAgICAgICAiY3JlYXRlZEF0Ijogb2JqLmdldCgiY3JlYXRlZEF0IiksCiAgICAgICAgICAgICJrZXlzIjogW0VtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwS2V5LmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsia2V5cyJdXSBpZiBvYmouZ2V0KCJrZXlzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/embedded_wallet_paginated_addresses_response.py b/fireblocks/models/embedded_wallet_paginated_addresses_response.py index 4ae6ac4f..1182da38 100644 --- a/fireblocks/models/embedded_wallet_paginated_addresses_response.py +++ b/fireblocks/models/embedded_wallet_paginated_addresses_response.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.embedded_wallet_address_details import EmbeddedWalletAddressDetails -from typing import Optional, Set -from typing_extensions import Self - -class EmbeddedWalletPaginatedAddressesResponse(BaseModel): - """ - EmbeddedWalletPaginatedAddressesResponse - """ # noqa: E501 - data: List[EmbeddedWalletAddressDetails] = Field(description="The data of the current page") - next: Optional[StrictStr] = Field(default=None, description="The ID of the next page") - __properties: ClassVar[List[str]] = ["data", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EmbeddedWalletPaginatedAddressesResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # set to None if next (nullable) is None - # and model_fields_set contains the field - if self.next is None and "next" in self.model_fields_set: - _dict['next'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EmbeddedWalletPaginatedAddressesResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [EmbeddedWalletAddressDetails.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9hZGRyZXNzX2RldGFpbHMgaW1wb3J0IEVtYmVkZGVkV2FsbGV0QWRkcmVzc0RldGFpbHMKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBZGRyZXNzZXNSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFkZHJlc3Nlc1Jlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkYXRhOiBMaXN0W0VtYmVkZGVkV2FsbGV0QWRkcmVzc0RldGFpbHNdID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBkYXRhIG9mIHRoZSBjdXJyZW50IHBhZ2UiKQogICAgbmV4dDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgbmV4dCBwYWdlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZGF0YSIsICJuZXh0Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFkZHJlc3Nlc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGRhdGEgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmRhdGE6CiAgICAgICAgICAgIGZvciBfaXRlbV9kYXRhIGluIHNlbGYuZGF0YToKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2RhdGE6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9kYXRhLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2RhdGEnXSA9IF9pdGVtcwogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgbmV4dCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYubmV4dCBpcyBOb25lIGFuZCAibmV4dCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnbmV4dCddID0gTm9uZQoKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkQWRkcmVzc2VzUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZGF0YSI6IFtFbWJlZGRlZFdhbGxldEFkZHJlc3NEZXRhaWxzLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiZGF0YSJdXSBpZiBvYmouZ2V0KCJkYXRhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibmV4dCI6IG9iai5nZXQoIm5leHQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/embedded_wallet_paginated_assets_response.py b/fireblocks/models/embedded_wallet_paginated_assets_response.py index aa5a7e76..bd77c3a9 100644 --- a/fireblocks/models/embedded_wallet_paginated_assets_response.py +++ b/fireblocks/models/embedded_wallet_paginated_assets_response.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.embedded_wallet_asset_response import EmbeddedWalletAssetResponse -from typing import Optional, Set -from typing_extensions import Self - -class EmbeddedWalletPaginatedAssetsResponse(BaseModel): - """ - EmbeddedWalletPaginatedAssetsResponse - """ # noqa: E501 - data: List[EmbeddedWalletAssetResponse] = Field(description="The data of the current page") - next: Optional[StrictStr] = Field(default=None, description="The ID of the next page") - __properties: ClassVar[List[str]] = ["data", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EmbeddedWalletPaginatedAssetsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # set to None if next (nullable) is None - # and model_fields_set contains the field - if self.next is None and "next" in self.model_fields_set: - _dict['next'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EmbeddedWalletPaginatedAssetsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [EmbeddedWalletAssetResponse.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9hc3NldF9yZXNwb25zZSBpbXBvcnQgRW1iZWRkZWRXYWxsZXRBc3NldFJlc3BvbnNlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkQXNzZXRzUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBc3NldHNSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGF0YTogTGlzdFtFbWJlZGRlZFdhbGxldEFzc2V0UmVzcG9uc2VdID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBkYXRhIG9mIHRoZSBjdXJyZW50IHBhZ2UiKQogICAgbmV4dDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgbmV4dCBwYWdlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZGF0YSIsICJuZXh0Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGRhdGEgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmRhdGE6CiAgICAgICAgICAgIGZvciBfaXRlbV9kYXRhIGluIHNlbGYuZGF0YToKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2RhdGE6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9kYXRhLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2RhdGEnXSA9IF9pdGVtcwogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgbmV4dCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYubmV4dCBpcyBOb25lIGFuZCAibmV4dCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnbmV4dCddID0gTm9uZQoKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkQXNzZXRzUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZGF0YSI6IFtFbWJlZGRlZFdhbGxldEFzc2V0UmVzcG9uc2UuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJkYXRhIl1dIGlmIG9iai5nZXQoImRhdGEiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJuZXh0Ijogb2JqLmdldCgibmV4dCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/embedded_wallet_paginated_devices_response.py b/fireblocks/models/embedded_wallet_paginated_devices_response.py index 14a4e320..38de299f 100644 --- a/fireblocks/models/embedded_wallet_paginated_devices_response.py +++ b/fireblocks/models/embedded_wallet_paginated_devices_response.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.embedded_wallet_device import EmbeddedWalletDevice -from typing import Optional, Set -from typing_extensions import Self - -class EmbeddedWalletPaginatedDevicesResponse(BaseModel): - """ - EmbeddedWalletPaginatedDevicesResponse - """ # noqa: E501 - data: List[EmbeddedWalletDevice] = Field(description="The data of the current page") - next: Optional[StrictStr] = Field(default=None, description="The ID of the next page") - __properties: ClassVar[List[str]] = ["data", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EmbeddedWalletPaginatedDevicesResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # set to None if next (nullable) is None - # and model_fields_set contains the field - if self.next is None and "next" in self.model_fields_set: - _dict['next'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EmbeddedWalletPaginatedDevicesResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [EmbeddedWalletDevice.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9kZXZpY2UgaW1wb3J0IEVtYmVkZGVkV2FsbGV0RGV2aWNlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkRGV2aWNlc1Jlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkRGV2aWNlc1Jlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkYXRhOiBMaXN0W0VtYmVkZGVkV2FsbGV0RGV2aWNlXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGF0YSBvZiB0aGUgY3VycmVudCBwYWdlIikKICAgIG5leHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIG5leHQgcGFnZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRhdGEiLCAibmV4dCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWREZXZpY2VzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGF0YSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgZm9yIF9pdGVtX2RhdGEgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZGF0YToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2RhdGEudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gX2l0ZW1zCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBuZXh0IChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5uZXh0IGlzIE5vbmUgYW5kICJuZXh0IiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WyduZXh0J10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWREZXZpY2VzUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZGF0YSI6IFtFbWJlZGRlZFdhbGxldERldmljZS5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImRhdGEiXV0gaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm5leHQiOiBvYmouZ2V0KCJuZXh0IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/embedded_wallet_paginated_wallets_response.py b/fireblocks/models/embedded_wallet_paginated_wallets_response.py index f8a200f9..177f081e 100644 --- a/fireblocks/models/embedded_wallet_paginated_wallets_response.py +++ b/fireblocks/models/embedded_wallet_paginated_wallets_response.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.embedded_wallet import EmbeddedWallet -from typing import Optional, Set -from typing_extensions import Self - -class EmbeddedWalletPaginatedWalletsResponse(BaseModel): - """ - EmbeddedWalletPaginatedWalletsResponse - """ # noqa: E501 - data: List[EmbeddedWallet] = Field(description="The data of the current page") - next: Optional[StrictStr] = Field(default=None, description="The ID of the next page") - __properties: ClassVar[List[str]] = ["data", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EmbeddedWalletPaginatedWalletsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # set to None if next (nullable) is None - # and model_fields_set contains the field - if self.next is None and "next" in self.model_fields_set: - _dict['next'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EmbeddedWalletPaginatedWalletsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [EmbeddedWallet.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldCBpbXBvcnQgRW1iZWRkZWRXYWxsZXQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRXYWxsZXRzUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRXYWxsZXRzUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGRhdGE6IExpc3RbRW1iZWRkZWRXYWxsZXRdID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBkYXRhIG9mIHRoZSBjdXJyZW50IHBhZ2UiKQogICAgbmV4dDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgbmV4dCBwYWdlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZGF0YSIsICJuZXh0Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZFdhbGxldHNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBkYXRhIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5kYXRhOgogICAgICAgICAgICBmb3IgX2l0ZW1fZGF0YSBpbiBzZWxmLmRhdGE6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9kYXRhOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fZGF0YS50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydkYXRhJ10gPSBfaXRlbXMKICAgICAgICAjIHNldCB0byBOb25lIGlmIG5leHQgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLm5leHQgaXMgTm9uZSBhbmQgIm5leHQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ25leHQnXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZFdhbGxldHNSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkYXRhIjogW0VtYmVkZGVkV2FsbGV0LmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiZGF0YSJdXSBpZiBvYmouZ2V0KCJkYXRhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibmV4dCI6IG9iai5nZXQoIm5leHQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/embedded_wallet_required_algorithms.py b/fireblocks/models/embedded_wallet_required_algorithms.py index c2bd928e..912b2d74 100644 --- a/fireblocks/models/embedded_wallet_required_algorithms.py +++ b/fireblocks/models/embedded_wallet_required_algorithms.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class EmbeddedWalletRequiredAlgorithms(str, Enum): - """ - EmbeddedWalletRequiredAlgorithms - """ - - """ - allowed enum values - """ - MPC_ECDSA_SECP256_K1 = 'MPC_ECDSA_SECP256K1' - MPC_EDDSA_ED25519 = 'MPC_EDDSA_ED25519' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of EmbeddedWalletRequiredAlgorithms from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBFbWJlZGRlZFdhbGxldFJlcXVpcmVkQWxnb3JpdGhtcyhzdHIsIEVudW0pOgogICAgIiIiCiAgICBFbWJlZGRlZFdhbGxldFJlcXVpcmVkQWxnb3JpdGhtcwogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIE1QQ19FQ0RTQV9TRUNQMjU2X0sxID0gJ01QQ19FQ0RTQV9TRUNQMjU2SzEnCiAgICBNUENfRUREU0FfRUQyNTUxOSA9ICdNUENfRUREU0FfRUQyNTUxOScKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldFJlcXVpcmVkQWxnb3JpdGhtcyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/embedded_wallet_set_up_status.py b/fireblocks/models/embedded_wallet_set_up_status.py index 21768a39..834c6670 100644 --- a/fireblocks/models/embedded_wallet_set_up_status.py +++ b/fireblocks/models/embedded_wallet_set_up_status.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class EmbeddedWalletSetUpStatus(BaseModel): - """ - embedded wallet setup status - """ # noqa: E501 - status: StrictStr = Field(description="status") - __properties: ClassVar[List[str]] = ["status"] - - @field_validator('status') - def status_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['COMPLETE', 'INCOMPLETE']): - raise ValueError("must be one of enum values ('COMPLETE', 'INCOMPLETE')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EmbeddedWalletSetUpStatus from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EmbeddedWalletSetUpStatus from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "status": obj.get("status") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRW1iZWRkZWRXYWxsZXRTZXRVcFN0YXR1cyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBlbWJlZGRlZCB3YWxsZXQgc2V0dXAgc3RhdHVzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzdGF0dXM6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJzdGF0dXMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzdGF0dXMiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3N0YXR1cycpCiAgICBkZWYgc3RhdHVzX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0NPTVBMRVRFJywgJ0lOQ09NUExFVEUnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnQ09NUExFVEUnLCAnSU5DT01QTEVURScpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbWJlZGRlZFdhbGxldFNldFVwU3RhdHVzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVtYmVkZGVkV2FsbGV0U2V0VXBTdGF0dXMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3RhdHVzIjogb2JqLmdldCgic3RhdHVzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/embedded_wallet_setup_status_response.py b/fireblocks/models/embedded_wallet_setup_status_response.py index 346b0295..db137451 100644 --- a/fireblocks/models/embedded_wallet_setup_status_response.py +++ b/fireblocks/models/embedded_wallet_setup_status_response.py @@ -1,105 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.embedded_wallet_device_key_setup_response import EmbeddedWalletDeviceKeySetupResponse -from fireblocks.models.embedded_wallet_required_algorithms import EmbeddedWalletRequiredAlgorithms -from fireblocks.models.embedded_wallet_set_up_status import EmbeddedWalletSetUpStatus -from typing import Optional, Set -from typing_extensions import Self - -class EmbeddedWalletSetupStatusResponse(BaseModel): - """ - EmbeddedWalletSetupStatusResponse - """ # noqa: E501 - status: EmbeddedWalletSetUpStatus - required_algorithms: List[EmbeddedWalletRequiredAlgorithms] = Field(description="Required algorithms for the wallet", alias="requiredAlgorithms") - device_setup_status: List[EmbeddedWalletDeviceKeySetupResponse] = Field(description="Setup status for each device", alias="deviceSetupStatus") - __properties: ClassVar[List[str]] = ["status", "requiredAlgorithms", "deviceSetupStatus"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EmbeddedWalletSetupStatusResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of status - if self.status: - _dict['status'] = self.status.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in device_setup_status (list) - _items = [] - if self.device_setup_status: - for _item_device_setup_status in self.device_setup_status: - if _item_device_setup_status: - _items.append(_item_device_setup_status.to_dict()) - _dict['deviceSetupStatus'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EmbeddedWalletSetupStatusResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "status": EmbeddedWalletSetUpStatus.from_dict(obj["status"]) if obj.get("status") is not None else None, - "requiredAlgorithms": obj.get("requiredAlgorithms"), - "deviceSetupStatus": [EmbeddedWalletDeviceKeySetupResponse.from_dict(_item) for _item in obj["deviceSetupStatus"]] if obj.get("deviceSetupStatus") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9kZXZpY2Vfa2V5X3NldHVwX3Jlc3BvbnNlIGltcG9ydCBFbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfcmVxdWlyZWRfYWxnb3JpdGhtcyBpbXBvcnQgRW1iZWRkZWRXYWxsZXRSZXF1aXJlZEFsZ29yaXRobXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfc2V0X3VwX3N0YXR1cyBpbXBvcnQgRW1iZWRkZWRXYWxsZXRTZXRVcFN0YXR1cwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBFbWJlZGRlZFdhbGxldFNldHVwU3RhdHVzUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgRW1iZWRkZWRXYWxsZXRTZXR1cFN0YXR1c1Jlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzdGF0dXM6IEVtYmVkZGVkV2FsbGV0U2V0VXBTdGF0dXMKICAgIHJlcXVpcmVkX2FsZ29yaXRobXM6IExpc3RbRW1iZWRkZWRXYWxsZXRSZXF1aXJlZEFsZ29yaXRobXNdID0gRmllbGQoZGVzY3JpcHRpb249IlJlcXVpcmVkIGFsZ29yaXRobXMgZm9yIHRoZSB3YWxsZXQiLCBhbGlhcz0icmVxdWlyZWRBbGdvcml0aG1zIikKICAgIGRldmljZV9zZXR1cF9zdGF0dXM6IExpc3RbRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJTZXR1cCBzdGF0dXMgZm9yIGVhY2ggZGV2aWNlIiwgYWxpYXM9ImRldmljZVNldHVwU3RhdHVzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3RhdHVzIiwgInJlcXVpcmVkQWxnb3JpdGhtcyIsICJkZXZpY2VTZXR1cFN0YXR1cyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRW1iZWRkZWRXYWxsZXRTZXR1cFN0YXR1c1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2Ygc3RhdHVzCiAgICAgICAgaWYgc2VsZi5zdGF0dXM6CiAgICAgICAgICAgIF9kaWN0WydzdGF0dXMnXSA9IHNlbGYuc3RhdHVzLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGV2aWNlX3NldHVwX3N0YXR1cyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZGV2aWNlX3NldHVwX3N0YXR1czoKICAgICAgICAgICAgZm9yIF9pdGVtX2RldmljZV9zZXR1cF9zdGF0dXMgaW4gc2VsZi5kZXZpY2Vfc2V0dXBfc3RhdHVzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZGV2aWNlX3NldHVwX3N0YXR1czoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2RldmljZV9zZXR1cF9zdGF0dXMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGV2aWNlU2V0dXBTdGF0dXMnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRW1iZWRkZWRXYWxsZXRTZXR1cFN0YXR1c1Jlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInN0YXR1cyI6IEVtYmVkZGVkV2FsbGV0U2V0VXBTdGF0dXMuZnJvbV9kaWN0KG9ialsic3RhdHVzIl0pIGlmIG9iai5nZXQoInN0YXR1cyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInJlcXVpcmVkQWxnb3JpdGhtcyI6IG9iai5nZXQoInJlcXVpcmVkQWxnb3JpdGhtcyIpLAogICAgICAgICAgICAiZGV2aWNlU2V0dXBTdGF0dXMiOiBbRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiZGV2aWNlU2V0dXBTdGF0dXMiXV0gaWYgb2JqLmdldCgiZGV2aWNlU2V0dXBTdGF0dXMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/enable_device.py b/fireblocks/models/enable_device.py index 3cbd9356..68bc13d6 100644 --- a/fireblocks/models/enable_device.py +++ b/fireblocks/models/enable_device.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class EnableDevice(BaseModel): - """ - EnableDevice - """ # noqa: E501 - enabled: StrictBool = Field(description="Whether the device should be enabled or disabled") - __properties: ClassVar[List[str]] = ["enabled"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EnableDevice from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EnableDevice from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "enabled": obj.get("enabled") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBFbmFibGVEZXZpY2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgRW5hYmxlRGV2aWNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBlbmFibGVkOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IldoZXRoZXIgdGhlIGRldmljZSBzaG91bGQgYmUgZW5hYmxlZCBvciBkaXNhYmxlZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImVuYWJsZWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVuYWJsZURldmljZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbmFibGVEZXZpY2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZW5hYmxlZCI6IG9iai5nZXQoImVuYWJsZWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/enable_wallet.py b/fireblocks/models/enable_wallet.py index e8cfa720..10910282 100644 --- a/fireblocks/models/enable_wallet.py +++ b/fireblocks/models/enable_wallet.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class EnableWallet(BaseModel): - """ - EnableWallet - """ # noqa: E501 - enabled: StrictBool = Field(description="Whether the wallet should be enabled or disabled") - __properties: ClassVar[List[str]] = ["enabled"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EnableWallet from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EnableWallet from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "enabled": obj.get("enabled") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBFbmFibGVXYWxsZXQoQmFzZU1vZGVsKToKICAgICIiIgogICAgRW5hYmxlV2FsbGV0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBlbmFibGVkOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IldoZXRoZXIgdGhlIHdhbGxldCBzaG91bGQgYmUgZW5hYmxlZCBvciBkaXNhYmxlZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImVuYWJsZWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVuYWJsZVdhbGxldCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFbmFibGVXYWxsZXQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZW5hYmxlZCI6IG9iai5nZXQoImVuYWJsZWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/error_response.py b/fireblocks/models/error_response.py index a82927a6..6f0a70cd 100644 --- a/fireblocks/models/error_response.py +++ b/fireblocks/models/error_response.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List -from fireblocks.models.error_response_error import ErrorResponseError -from typing import Optional, Set -from typing_extensions import Self - -class ErrorResponse(BaseModel): - """ - ErrorResponse - """ # noqa: E501 - error: ErrorResponseError - __properties: ClassVar[List[str]] = ["error"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ErrorResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of error - if self.error: - _dict['error'] = self.error.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ErrorResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "error": ErrorResponseError.from_dict(obj["error"]) if obj.get("error") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXJyb3JfcmVzcG9uc2VfZXJyb3IgaW1wb3J0IEVycm9yUmVzcG9uc2VFcnJvcgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBFcnJvclJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEVycm9yUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGVycm9yOiBFcnJvclJlc3BvbnNlRXJyb3IKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZXJyb3IiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVycm9yUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlcnJvcgogICAgICAgIGlmIHNlbGYuZXJyb3I6CiAgICAgICAgICAgIF9kaWN0WydlcnJvciddID0gc2VsZi5lcnJvci50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVycm9yUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZXJyb3IiOiBFcnJvclJlc3BvbnNlRXJyb3IuZnJvbV9kaWN0KG9ialsiZXJyb3IiXSkgaWYgb2JqLmdldCgiZXJyb3IiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/error_response_error.py b/fireblocks/models/error_response_error.py index c1e09e8d..6d8a42d5 100644 --- a/fireblocks/models/error_response_error.py +++ b/fireblocks/models/error_response_error.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class ErrorResponseError(BaseModel): - """ - ErrorResponseError - """ # noqa: E501 - type: StrictStr - message: StrictStr - __properties: ClassVar[List[str]] = ["type", "message"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['INTERNAL', 'AUTHENTICATION', 'AUTHORIZATION', 'VALIDATION', 'NOT_FOUND', 'UNPROCESSABLE_ENTITY', 'FORBIDDEN']): - raise ValueError("must be one of enum values ('INTERNAL', 'AUTHENTICATION', 'AUTHORIZATION', 'VALIDATION', 'NOT_FOUND', 'UNPROCESSABLE_ENTITY', 'FORBIDDEN')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ErrorResponseError from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ErrorResponseError from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "message": obj.get("message") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBFcnJvclJlc3BvbnNlRXJyb3IoQmFzZU1vZGVsKToKICAgICIiIgogICAgRXJyb3JSZXNwb25zZUVycm9yCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBTdHJpY3RTdHIKICAgIG1lc3NhZ2U6IFN0cmljdFN0cgogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgIm1lc3NhZ2UiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3R5cGUnKQogICAgZGVmIHR5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnSU5URVJOQUwnLCAnQVVUSEVOVElDQVRJT04nLCAnQVVUSE9SSVpBVElPTicsICdWQUxJREFUSU9OJywgJ05PVF9GT1VORCcsICdVTlBST0NFU1NBQkxFX0VOVElUWScsICdGT1JCSURERU4nXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnSU5URVJOQUwnLCAnQVVUSEVOVElDQVRJT04nLCAnQVVUSE9SSVpBVElPTicsICdWQUxJREFUSU9OJywgJ05PVF9GT1VORCcsICdVTlBST0NFU1NBQkxFX0VOVElUWScsICdGT1JCSURERU4nKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXJyb3JSZXNwb25zZUVycm9yIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVycm9yUmVzcG9uc2VFcnJvciBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAibWVzc2FnZSI6IG9iai5nZXQoIm1lc3NhZ2UiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/error_schema.py b/fireblocks/models/error_schema.py index 5837eb2b..3512e2aa 100644 --- a/fireblocks/models/error_schema.py +++ b/fireblocks/models/error_schema.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class ErrorSchema(BaseModel): - """ - ErrorSchema - """ # noqa: E501 - message: Optional[StrictStr] = None - code: Optional[Union[StrictFloat, StrictInt]] = None - __properties: ClassVar[List[str]] = ["message", "code"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ErrorSchema from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ErrorSchema from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "code": obj.get("code") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RGbG9hdCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBFcnJvclNjaGVtYShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBFcnJvclNjaGVtYQogICAgIiIiICMgbm9xYTogRTUwMQogICAgbWVzc2FnZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIGNvZGU6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibWVzc2FnZSIsICJjb2RlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFcnJvclNjaGVtYSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFcnJvclNjaGVtYSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJtZXNzYWdlIjogb2JqLmdldCgibWVzc2FnZSIpLAogICAgICAgICAgICAiY29kZSI6IG9iai5nZXQoImNvZGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/estimated_fee_details.py b/fireblocks/models/estimated_fee_details.py index 8be71dd5..bebcad3d 100644 --- a/fireblocks/models/estimated_fee_details.py +++ b/fireblocks/models/estimated_fee_details.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.fee_breakdown import FeeBreakdown -from typing import Optional, Set -from typing_extensions import Self - -class EstimatedFeeDetails(BaseModel): - """ - Optional detailed fee breakdown for high/medium/low estimates - """ # noqa: E501 - low: Optional[FeeBreakdown] = None - medium: Optional[FeeBreakdown] = None - high: Optional[FeeBreakdown] = None - __properties: ClassVar[List[str]] = ["low", "medium", "high"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EstimatedFeeDetails from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of low - if self.low: - _dict['low'] = self.low.to_dict() - # override the default output from pydantic by calling `to_dict()` of medium - if self.medium: - _dict['medium'] = self.medium.to_dict() - # override the default output from pydantic by calling `to_dict()` of high - if self.high: - _dict['high'] = self.high.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EstimatedFeeDetails from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "low": FeeBreakdown.from_dict(obj["low"]) if obj.get("low") is not None else None, - "medium": FeeBreakdown.from_dict(obj["medium"]) if obj.get("medium") is not None else None, - "high": FeeBreakdown.from_dict(obj["high"]) if obj.get("high") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZV9icmVha2Rvd24gaW1wb3J0IEZlZUJyZWFrZG93bgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBFc3RpbWF0ZWRGZWVEZXRhaWxzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIE9wdGlvbmFsIGRldGFpbGVkIGZlZSBicmVha2Rvd24gZm9yIGhpZ2gvbWVkaXVtL2xvdyBlc3RpbWF0ZXMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGxvdzogT3B0aW9uYWxbRmVlQnJlYWtkb3duXSA9IE5vbmUKICAgIG1lZGl1bTogT3B0aW9uYWxbRmVlQnJlYWtkb3duXSA9IE5vbmUKICAgIGhpZ2g6IE9wdGlvbmFsW0ZlZUJyZWFrZG93bl0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImxvdyIsICJtZWRpdW0iLCAiaGlnaCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXN0aW1hdGVkRmVlRGV0YWlscyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGxvdwogICAgICAgIGlmIHNlbGYubG93OgogICAgICAgICAgICBfZGljdFsnbG93J10gPSBzZWxmLmxvdy50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgbWVkaXVtCiAgICAgICAgaWYgc2VsZi5tZWRpdW06CiAgICAgICAgICAgIF9kaWN0WydtZWRpdW0nXSA9IHNlbGYubWVkaXVtLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBoaWdoCiAgICAgICAgaWYgc2VsZi5oaWdoOgogICAgICAgICAgICBfZGljdFsnaGlnaCddID0gc2VsZi5oaWdoLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXN0aW1hdGVkRmVlRGV0YWlscyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJsb3ciOiBGZWVCcmVha2Rvd24uZnJvbV9kaWN0KG9ialsibG93Il0pIGlmIG9iai5nZXQoImxvdyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm1lZGl1bSI6IEZlZUJyZWFrZG93bi5mcm9tX2RpY3Qob2JqWyJtZWRpdW0iXSkgaWYgb2JqLmdldCgibWVkaXVtIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiaGlnaCI6IEZlZUJyZWFrZG93bi5mcm9tX2RpY3Qob2JqWyJoaWdoIl0pIGlmIG9iai5nZXQoImhpZ2giKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/estimated_network_fee_response.py b/fireblocks/models/estimated_network_fee_response.py index 9bc3a99b..ffee9280 100644 --- a/fireblocks/models/estimated_network_fee_response.py +++ b/fireblocks/models/estimated_network_fee_response.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List -from fireblocks.models.network_fee import NetworkFee -from typing import Optional, Set -from typing_extensions import Self - -class EstimatedNetworkFeeResponse(BaseModel): - """ - EstimatedNetworkFeeResponse - """ # noqa: E501 - low: NetworkFee - medium: NetworkFee - high: NetworkFee - __properties: ClassVar[List[str]] = ["low", "medium", "high"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EstimatedNetworkFeeResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of low - if self.low: - _dict['low'] = self.low.to_dict() - # override the default output from pydantic by calling `to_dict()` of medium - if self.medium: - _dict['medium'] = self.medium.to_dict() - # override the default output from pydantic by calling `to_dict()` of high - if self.high: - _dict['high'] = self.high.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EstimatedNetworkFeeResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "low": NetworkFee.from_dict(obj["low"]) if obj.get("low") is not None else None, - "medium": NetworkFee.from_dict(obj["medium"]) if obj.get("medium") is not None else None, - "high": NetworkFee.from_dict(obj["high"]) if obj.get("high") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19mZWUgaW1wb3J0IE5ldHdvcmtGZWUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRXN0aW1hdGVkTmV0d29ya0ZlZVJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEVzdGltYXRlZE5ldHdvcmtGZWVSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgbG93OiBOZXR3b3JrRmVlCiAgICBtZWRpdW06IE5ldHdvcmtGZWUKICAgIGhpZ2g6IE5ldHdvcmtGZWUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibG93IiwgIm1lZGl1bSIsICJoaWdoIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFc3RpbWF0ZWROZXR3b3JrRmVlUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBsb3cKICAgICAgICBpZiBzZWxmLmxvdzoKICAgICAgICAgICAgX2RpY3RbJ2xvdyddID0gc2VsZi5sb3cudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG1lZGl1bQogICAgICAgIGlmIHNlbGYubWVkaXVtOgogICAgICAgICAgICBfZGljdFsnbWVkaXVtJ10gPSBzZWxmLm1lZGl1bS50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgaGlnaAogICAgICAgIGlmIHNlbGYuaGlnaDoKICAgICAgICAgICAgX2RpY3RbJ2hpZ2gnXSA9IHNlbGYuaGlnaC50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVzdGltYXRlZE5ldHdvcmtGZWVSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJsb3ciOiBOZXR3b3JrRmVlLmZyb21fZGljdChvYmpbImxvdyJdKSBpZiBvYmouZ2V0KCJsb3ciKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJtZWRpdW0iOiBOZXR3b3JrRmVlLmZyb21fZGljdChvYmpbIm1lZGl1bSJdKSBpZiBvYmouZ2V0KCJtZWRpdW0iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJoaWdoIjogTmV0d29ya0ZlZS5mcm9tX2RpY3Qob2JqWyJoaWdoIl0pIGlmIG9iai5nZXQoImhpZ2giKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/estimated_transaction_fee_response.py b/fireblocks/models/estimated_transaction_fee_response.py index 8a57bcea..f2cc61ff 100644 --- a/fireblocks/models/estimated_transaction_fee_response.py +++ b/fireblocks/models/estimated_transaction_fee_response.py @@ -1,108 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.estimated_fee_details import EstimatedFeeDetails -from fireblocks.models.transaction_fee import TransactionFee -from typing import Optional, Set -from typing_extensions import Self - -class EstimatedTransactionFeeResponse(BaseModel): - """ - EstimatedTransactionFeeResponse - """ # noqa: E501 - low: TransactionFee - medium: TransactionFee - high: TransactionFee - fee_details: Optional[EstimatedFeeDetails] = Field(default=None, alias="feeDetails") - __properties: ClassVar[List[str]] = ["low", "medium", "high", "feeDetails"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EstimatedTransactionFeeResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of low - if self.low: - _dict['low'] = self.low.to_dict() - # override the default output from pydantic by calling `to_dict()` of medium - if self.medium: - _dict['medium'] = self.medium.to_dict() - # override the default output from pydantic by calling `to_dict()` of high - if self.high: - _dict['high'] = self.high.to_dict() - # override the default output from pydantic by calling `to_dict()` of fee_details - if self.fee_details: - _dict['feeDetails'] = self.fee_details.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EstimatedTransactionFeeResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "low": TransactionFee.from_dict(obj["low"]) if obj.get("low") is not None else None, - "medium": TransactionFee.from_dict(obj["medium"]) if obj.get("medium") is not None else None, - "high": TransactionFee.from_dict(obj["high"]) if obj.get("high") is not None else None, - "feeDetails": EstimatedFeeDetails.from_dict(obj["feeDetails"]) if obj.get("feeDetails") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5lc3RpbWF0ZWRfZmVlX2RldGFpbHMgaW1wb3J0IEVzdGltYXRlZEZlZURldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9mZWUgaW1wb3J0IFRyYW5zYWN0aW9uRmVlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEVzdGltYXRlZFRyYW5zYWN0aW9uRmVlUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgRXN0aW1hdGVkVHJhbnNhY3Rpb25GZWVSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgbG93OiBUcmFuc2FjdGlvbkZlZQogICAgbWVkaXVtOiBUcmFuc2FjdGlvbkZlZQogICAgaGlnaDogVHJhbnNhY3Rpb25GZWUKICAgIGZlZV9kZXRhaWxzOiBPcHRpb25hbFtFc3RpbWF0ZWRGZWVEZXRhaWxzXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImZlZURldGFpbHMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJsb3ciLCAibWVkaXVtIiwgImhpZ2giLCAiZmVlRGV0YWlscyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXN0aW1hdGVkVHJhbnNhY3Rpb25GZWVSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGxvdwogICAgICAgIGlmIHNlbGYubG93OgogICAgICAgICAgICBfZGljdFsnbG93J10gPSBzZWxmLmxvdy50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgbWVkaXVtCiAgICAgICAgaWYgc2VsZi5tZWRpdW06CiAgICAgICAgICAgIF9kaWN0WydtZWRpdW0nXSA9IHNlbGYubWVkaXVtLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBoaWdoCiAgICAgICAgaWYgc2VsZi5oaWdoOgogICAgICAgICAgICBfZGljdFsnaGlnaCddID0gc2VsZi5oaWdoLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBmZWVfZGV0YWlscwogICAgICAgIGlmIHNlbGYuZmVlX2RldGFpbHM6CiAgICAgICAgICAgIF9kaWN0WydmZWVEZXRhaWxzJ10gPSBzZWxmLmZlZV9kZXRhaWxzLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXN0aW1hdGVkVHJhbnNhY3Rpb25GZWVSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJsb3ciOiBUcmFuc2FjdGlvbkZlZS5mcm9tX2RpY3Qob2JqWyJsb3ciXSkgaWYgb2JqLmdldCgibG93IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibWVkaXVtIjogVHJhbnNhY3Rpb25GZWUuZnJvbV9kaWN0KG9ialsibWVkaXVtIl0pIGlmIG9iai5nZXQoIm1lZGl1bSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImhpZ2giOiBUcmFuc2FjdGlvbkZlZS5mcm9tX2RpY3Qob2JqWyJoaWdoIl0pIGlmIG9iai5nZXQoImhpZ2giKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJmZWVEZXRhaWxzIjogRXN0aW1hdGVkRmVlRGV0YWlscy5mcm9tX2RpY3Qob2JqWyJmZWVEZXRhaWxzIl0pIGlmIG9iai5nZXQoImZlZURldGFpbHMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/ethereum_blockchain_data.py b/fireblocks/models/ethereum_blockchain_data.py index 403b2dd3..9166cbf3 100644 --- a/fireblocks/models/ethereum_blockchain_data.py +++ b/fireblocks/models/ethereum_blockchain_data.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class EthereumBlockchainData(BaseModel): - """ - Additional fields per blockchain for Ethereum (ETH) - can be empty or missing if not initialized or no specific data is available. - """ # noqa: E501 - is_compounding_validator: StrictBool = Field(description="Is the validator compounding (i.e it was created with compounding validator type).", alias="isCompoundingValidator") - __properties: ClassVar[List[str]] = ["isCompoundingValidator"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EthereumBlockchainData from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EthereumBlockchainData from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "isCompoundingValidator": obj.get("isCompoundingValidator") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBFdGhlcmV1bUJsb2NrY2hhaW5EYXRhKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFkZGl0aW9uYWwgZmllbGRzIHBlciBibG9ja2NoYWluIGZvciBFdGhlcmV1bSAoRVRIKSAtIGNhbiBiZSBlbXB0eSBvciBtaXNzaW5nIGlmIG5vdCBpbml0aWFsaXplZCBvciBubyBzcGVjaWZpYyBkYXRhIGlzIGF2YWlsYWJsZS4KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlzX2NvbXBvdW5kaW5nX3ZhbGlkYXRvcjogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJcyB0aGUgdmFsaWRhdG9yIGNvbXBvdW5kaW5nIChpLmUgaXQgd2FzIGNyZWF0ZWQgd2l0aCBjb21wb3VuZGluZyB2YWxpZGF0b3IgdHlwZSkuIiwgYWxpYXM9ImlzQ29tcG91bmRpbmdWYWxpZGF0b3IiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpc0NvbXBvdW5kaW5nVmFsaWRhdG9yIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFdGhlcmV1bUJsb2NrY2hhaW5EYXRhIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEV0aGVyZXVtQmxvY2tjaGFpbkRhdGEgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaXNDb21wb3VuZGluZ1ZhbGlkYXRvciI6IG9iai5nZXQoImlzQ29tcG91bmRpbmdWYWxpZGF0b3IiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/european_sepa_address.py b/fireblocks/models/european_sepa_address.py index 7c45bda4..2721d286 100644 --- a/fireblocks/models/european_sepa_address.py +++ b/fireblocks/models/european_sepa_address.py @@ -1,114 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from fireblocks.models.account_holder_details import AccountHolderDetails -from typing import Optional, Set -from typing_extensions import Self - -class EuropeanSEPAAddress(BaseModel): - """ - EuropeanSEPAAddress - """ # noqa: E501 - account_holder: AccountHolderDetails = Field(alias="accountHolder") - iban: Annotated[str, Field(strict=True)] - bic: Optional[StrictStr] = None - bank_name: Optional[StrictStr] = Field(default=None, alias="bankName") - bank_branch: Optional[StrictStr] = Field(default=None, alias="bankBranch") - bank_address: Optional[StrictStr] = Field(default=None, alias="bankAddress") - purpose_code: Optional[StrictStr] = Field(default=None, alias="purposeCode") - tax_id: Optional[StrictStr] = Field(default=None, alias="taxId") - __properties: ClassVar[List[str]] = ["accountHolder", "iban", "bic", "bankName", "bankBranch", "bankAddress", "purposeCode", "taxId"] - - @field_validator('iban') - def iban_validate_regular_expression(cls, value): - """Validates the regular expression""" - if not re.match(r"^[A-Z]{2}\d{2}[a-zA-Z0-9]{1,30}$", value): - raise ValueError(r"must validate the regular expression /^[A-Z]{2}\d{2}[a-zA-Z0-9]{1,30}$/") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EuropeanSEPAAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of account_holder - if self.account_holder: - _dict['accountHolder'] = self.account_holder.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EuropeanSEPAAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None, - "iban": obj.get("iban"), - "bic": obj.get("bic"), - "bankName": obj.get("bankName"), - "bankBranch": obj.get("bankBranch"), - "bankAddress": obj.get("bankAddress"), - "purposeCode": obj.get("purposeCode"), - "taxId": obj.get("taxId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaG9sZGVyX2RldGFpbHMgaW1wb3J0IEFjY291bnRIb2xkZXJEZXRhaWxzCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEV1cm9wZWFuU0VQQUFkZHJlc3MoQmFzZU1vZGVsKToKICAgICIiIgogICAgRXVyb3BlYW5TRVBBQWRkcmVzcwogICAgIiIiICMgbm9xYTogRTUwMQogICAgYWNjb3VudF9ob2xkZXI6IEFjY291bnRIb2xkZXJEZXRhaWxzID0gRmllbGQoYWxpYXM9ImFjY291bnRIb2xkZXIiKQogICAgaWJhbjogQW5ub3RhdGVkW3N0ciwgRmllbGQoc3RyaWN0PVRydWUpXQogICAgYmljOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgYmFua19uYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYmFua05hbWUiKQogICAgYmFua19icmFuY2g6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJiYW5rQnJhbmNoIikKICAgIGJhbmtfYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImJhbmtBZGRyZXNzIikKICAgIHB1cnBvc2VfY29kZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InB1cnBvc2VDb2RlIikKICAgIHRheF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InRheElkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYWNjb3VudEhvbGRlciIsICJpYmFuIiwgImJpYyIsICJiYW5rTmFtZSIsICJiYW5rQnJhbmNoIiwgImJhbmtBZGRyZXNzIiwgInB1cnBvc2VDb2RlIiwgInRheElkIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdpYmFuJykKICAgIGRlZiBpYmFuX3ZhbGlkYXRlX3JlZ3VsYXJfZXhwcmVzc2lvbihjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiIiIgogICAgICAgIGlmIG5vdCByZS5tYXRjaChyIl5bQS1aXXsyfVxkezJ9W2EtekEtWjAtOV17MSwzMH0kIiwgdmFsdWUpOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKHIibXVzdCB2YWxpZGF0ZSB0aGUgcmVndWxhciBleHByZXNzaW9uIC9eW0EtWl17Mn1cZHsyfVthLXpBLVowLTldezEsMzB9JC8iKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEV1cm9wZWFuU0VQQUFkZHJlc3MgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhY2NvdW50X2hvbGRlcgogICAgICAgIGlmIHNlbGYuYWNjb3VudF9ob2xkZXI6CiAgICAgICAgICAgIF9kaWN0WydhY2NvdW50SG9sZGVyJ10gPSBzZWxmLmFjY291bnRfaG9sZGVyLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXVyb3BlYW5TRVBBQWRkcmVzcyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyIjogQWNjb3VudEhvbGRlckRldGFpbHMuZnJvbV9kaWN0KG9ialsiYWNjb3VudEhvbGRlciJdKSBpZiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiaWJhbiI6IG9iai5nZXQoImliYW4iKSwKICAgICAgICAgICAgImJpYyI6IG9iai5nZXQoImJpYyIpLAogICAgICAgICAgICAiYmFua05hbWUiOiBvYmouZ2V0KCJiYW5rTmFtZSIpLAogICAgICAgICAgICAiYmFua0JyYW5jaCI6IG9iai5nZXQoImJhbmtCcmFuY2giKSwKICAgICAgICAgICAgImJhbmtBZGRyZXNzIjogb2JqLmdldCgiYmFua0FkZHJlc3MiKSwKICAgICAgICAgICAgInB1cnBvc2VDb2RlIjogb2JqLmdldCgicHVycG9zZUNvZGUiKSwKICAgICAgICAgICAgInRheElkIjogb2JqLmdldCgidGF4SWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/european_sepa_destination.py b/fireblocks/models/european_sepa_destination.py index 4d348aa4..3033db36 100644 --- a/fireblocks/models/european_sepa_destination.py +++ b/fireblocks/models/european_sepa_destination.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from fireblocks.models.european_sepa_address import EuropeanSEPAAddress -from typing import Optional, Set -from typing_extensions import Self - -class EuropeanSEPADestination(BaseModel): - """ - EuropeanSEPADestination - """ # noqa: E501 - type: StrictStr - address: EuropeanSEPAAddress - __properties: ClassVar[List[str]] = ["type", "address"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['EUROPEAN_SEPA']): - raise ValueError("must be one of enum values ('EUROPEAN_SEPA')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EuropeanSEPADestination from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of address - if self.address: - _dict['address'] = self.address.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EuropeanSEPADestination from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "address": EuropeanSEPAAddress.from_dict(obj["address"]) if obj.get("address") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV1cm9wZWFuX3NlcGFfYWRkcmVzcyBpbXBvcnQgRXVyb3BlYW5TRVBBQWRkcmVzcwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBFdXJvcGVhblNFUEFEZXN0aW5hdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBFdXJvcGVhblNFUEFEZXN0aW5hdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogU3RyaWN0U3RyCiAgICBhZGRyZXNzOiBFdXJvcGVhblNFUEFBZGRyZXNzCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiLCAiYWRkcmVzcyJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigndHlwZScpCiAgICBkZWYgdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydFVVJPUEVBTl9TRVBBJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0VVUk9QRUFOX1NFUEEnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXVyb3BlYW5TRVBBRGVzdGluYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhZGRyZXNzCiAgICAgICAgaWYgc2VsZi5hZGRyZXNzOgogICAgICAgICAgICBfZGljdFsnYWRkcmVzcyddID0gc2VsZi5hZGRyZXNzLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXVyb3BlYW5TRVBBRGVzdGluYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImFkZHJlc3MiOiBFdXJvcGVhblNFUEFBZGRyZXNzLmZyb21fZGljdChvYmpbImFkZHJlc3MiXSkgaWYgb2JqLmdldCgiYWRkcmVzcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/evm_token_create_params_dto.py b/fireblocks/models/evm_token_create_params_dto.py index 07815c75..9862a376 100644 --- a/fireblocks/models/evm_token_create_params_dto.py +++ b/fireblocks/models/evm_token_create_params_dto.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.parameter_with_value import ParameterWithValue -from typing import Optional, Set -from typing_extensions import Self - -class EVMTokenCreateParamsDto(BaseModel): - """ - EVMTokenCreateParamsDto - """ # noqa: E501 - contract_id: StrictStr = Field(description="The id of the contract template that will be used to create the token", alias="contractId") - deploy_function_params: Optional[List[ParameterWithValue]] = Field(default=None, description="The deploy function parameters and values of the contract template", alias="deployFunctionParams") - __properties: ClassVar[List[str]] = ["contractId", "deployFunctionParams"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of EVMTokenCreateParamsDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in deploy_function_params (list) - _items = [] - if self.deploy_function_params: - for _item_deploy_function_params in self.deploy_function_params: - if _item_deploy_function_params: - _items.append(_item_deploy_function_params.to_dict()) - _dict['deployFunctionParams'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of EVMTokenCreateParamsDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "contractId": obj.get("contractId"), - "deployFunctionParams": [ParameterWithValue.from_dict(_item) for _item in obj["deployFunctionParams"]] if obj.get("deployFunctionParams") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlcl93aXRoX3ZhbHVlIGltcG9ydCBQYXJhbWV0ZXJXaXRoVmFsdWUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRVZNVG9rZW5DcmVhdGVQYXJhbXNEdG8oQmFzZU1vZGVsKToKICAgICIiIgogICAgRVZNVG9rZW5DcmVhdGVQYXJhbXNEdG8KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGNvbnRyYWN0X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGlkIG9mIHRoZSBjb250cmFjdCB0ZW1wbGF0ZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgdGhlIHRva2VuIiwgYWxpYXM9ImNvbnRyYWN0SWQiKQogICAgZGVwbG95X2Z1bmN0aW9uX3BhcmFtczogT3B0aW9uYWxbTGlzdFtQYXJhbWV0ZXJXaXRoVmFsdWVdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBkZXBsb3kgZnVuY3Rpb24gcGFyYW1ldGVycyBhbmQgdmFsdWVzIG9mIHRoZSBjb250cmFjdCB0ZW1wbGF0ZSIsIGFsaWFzPSJkZXBsb3lGdW5jdGlvblBhcmFtcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImNvbnRyYWN0SWQiLCAiZGVwbG95RnVuY3Rpb25QYXJhbXMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVWTVRva2VuQ3JlYXRlUGFyYW1zRHRvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGRlcGxveV9mdW5jdGlvbl9wYXJhbXMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmRlcGxveV9mdW5jdGlvbl9wYXJhbXM6CiAgICAgICAgICAgIGZvciBfaXRlbV9kZXBsb3lfZnVuY3Rpb25fcGFyYW1zIGluIHNlbGYuZGVwbG95X2Z1bmN0aW9uX3BhcmFtczoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2RlcGxveV9mdW5jdGlvbl9wYXJhbXM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9kZXBsb3lfZnVuY3Rpb25fcGFyYW1zLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2RlcGxveUZ1bmN0aW9uUGFyYW1zJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEVWTVRva2VuQ3JlYXRlUGFyYW1zRHRvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImNvbnRyYWN0SWQiOiBvYmouZ2V0KCJjb250cmFjdElkIiksCiAgICAgICAgICAgICJkZXBsb3lGdW5jdGlvblBhcmFtcyI6IFtQYXJhbWV0ZXJXaXRoVmFsdWUuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJkZXBsb3lGdW5jdGlvblBhcmFtcyJdXSBpZiBvYmouZ2V0KCJkZXBsb3lGdW5jdGlvblBhcmFtcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/exchange_account.py b/fireblocks/models/exchange_account.py index 8f15ab3d..c3fc3435 100644 --- a/fireblocks/models/exchange_account.py +++ b/fireblocks/models/exchange_account.py @@ -1,121 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.exchange_asset import ExchangeAsset -from fireblocks.models.exchange_trading_account import ExchangeTradingAccount -from fireblocks.models.exchange_type import ExchangeType -from typing import Optional, Set -from typing_extensions import Self - -class ExchangeAccount(BaseModel): - """ - ExchangeAccount - """ # noqa: E501 - id: Optional[StrictStr] = None - type: Optional[ExchangeType] = None - name: Optional[StrictStr] = Field(default=None, description="Display name of the exchange account") - status: Optional[StrictStr] = None - assets: Optional[List[ExchangeAsset]] = None - success: Optional[StrictBool] = Field(default=None, description="Did succeed in retrieve balance data") - trading_accounts: Optional[List[ExchangeTradingAccount]] = Field(default=None, alias="tradingAccounts") - is_subaccount: Optional[StrictBool] = Field(default=None, description="True if the account is a subaccount in an exchange", alias="isSubaccount") - main_account_id: Optional[StrictStr] = Field(default=None, description="if the account is a sub-account, the ID of the main account", alias="mainAccountId") - __properties: ClassVar[List[str]] = ["id", "type", "name", "status", "assets", "success", "tradingAccounts", "isSubaccount", "mainAccountId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ExchangeAccount from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in assets (list) - _items = [] - if self.assets: - for _item_assets in self.assets: - if _item_assets: - _items.append(_item_assets.to_dict()) - _dict['assets'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in trading_accounts (list) - _items = [] - if self.trading_accounts: - for _item_trading_accounts in self.trading_accounts: - if _item_trading_accounts: - _items.append(_item_trading_accounts.to_dict()) - _dict['tradingAccounts'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ExchangeAccount from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "type": obj.get("type"), - "name": obj.get("name"), - "status": obj.get("status"), - "assets": [ExchangeAsset.from_dict(_item) for _item in obj["assets"]] if obj.get("assets") is not None else None, - "success": obj.get("success"), - "tradingAccounts": [ExchangeTradingAccount.from_dict(_item) for _item in obj["tradingAccounts"]] if obj.get("tradingAccounts") is not None else None, - "isSubaccount": obj.get("isSubaccount"), - "mainAccountId": obj.get("mainAccountId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4Y2hhbmdlX2Fzc2V0IGltcG9ydCBFeGNoYW5nZUFzc2V0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhjaGFuZ2VfdHJhZGluZ19hY2NvdW50IGltcG9ydCBFeGNoYW5nZVRyYWRpbmdBY2NvdW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhjaGFuZ2VfdHlwZSBpbXBvcnQgRXhjaGFuZ2VUeXBlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEV4Y2hhbmdlQWNjb3VudChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBFeGNoYW5nZUFjY291bnQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgdHlwZTogT3B0aW9uYWxbRXhjaGFuZ2VUeXBlXSA9IE5vbmUKICAgIG5hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEaXNwbGF5IG5hbWUgb2YgdGhlIGV4Y2hhbmdlIGFjY291bnQiKQogICAgc3RhdHVzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgYXNzZXRzOiBPcHRpb25hbFtMaXN0W0V4Y2hhbmdlQXNzZXRdXSA9IE5vbmUKICAgIHN1Y2Nlc3M6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGlkIHN1Y2NlZWQgaW4gcmV0cmlldmUgYmFsYW5jZSBkYXRhIikKICAgIHRyYWRpbmdfYWNjb3VudHM6IE9wdGlvbmFsW0xpc3RbRXhjaGFuZ2VUcmFkaW5nQWNjb3VudF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0idHJhZGluZ0FjY291bnRzIikKICAgIGlzX3N1YmFjY291bnQ6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVHJ1ZSBpZiB0aGUgYWNjb3VudCBpcyBhIHN1YmFjY291bnQgaW4gYW4gZXhjaGFuZ2UiLCBhbGlhcz0iaXNTdWJhY2NvdW50IikKICAgIG1haW5fYWNjb3VudF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249ImlmIHRoZSBhY2NvdW50IGlzIGEgc3ViLWFjY291bnQsIHRoZSBJRCBvZiB0aGUgbWFpbiBhY2NvdW50IiwgYWxpYXM9Im1haW5BY2NvdW50SWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJ0eXBlIiwgIm5hbWUiLCAic3RhdHVzIiwgImFzc2V0cyIsICJzdWNjZXNzIiwgInRyYWRpbmdBY2NvdW50cyIsICJpc1N1YmFjY291bnQiLCAibWFpbkFjY291bnRJZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXhjaGFuZ2VBY2NvdW50IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGFzc2V0cyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuYXNzZXRzOgogICAgICAgICAgICBmb3IgX2l0ZW1fYXNzZXRzIGluIHNlbGYuYXNzZXRzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fYXNzZXRzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fYXNzZXRzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2Fzc2V0cyddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiB0cmFkaW5nX2FjY291bnRzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi50cmFkaW5nX2FjY291bnRzOgogICAgICAgICAgICBmb3IgX2l0ZW1fdHJhZGluZ19hY2NvdW50cyBpbiBzZWxmLnRyYWRpbmdfYWNjb3VudHM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV90cmFkaW5nX2FjY291bnRzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fdHJhZGluZ19hY2NvdW50cy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0Wyd0cmFkaW5nQWNjb3VudHMnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXhjaGFuZ2VBY2NvdW50IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAic3RhdHVzIjogb2JqLmdldCgic3RhdHVzIiksCiAgICAgICAgICAgICJhc3NldHMiOiBbRXhjaGFuZ2VBc3NldC5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImFzc2V0cyJdXSBpZiBvYmouZ2V0KCJhc3NldHMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJzdWNjZXNzIjogb2JqLmdldCgic3VjY2VzcyIpLAogICAgICAgICAgICAidHJhZGluZ0FjY291bnRzIjogW0V4Y2hhbmdlVHJhZGluZ0FjY291bnQuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJ0cmFkaW5nQWNjb3VudHMiXV0gaWYgb2JqLmdldCgidHJhZGluZ0FjY291bnRzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiaXNTdWJhY2NvdW50Ijogb2JqLmdldCgiaXNTdWJhY2NvdW50IiksCiAgICAgICAgICAgICJtYWluQWNjb3VudElkIjogb2JqLmdldCgibWFpbkFjY291bnRJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/exchange_asset.py b/fireblocks/models/exchange_asset.py index 7fde8ae0..3f9ddf3b 100644 --- a/fireblocks/models/exchange_asset.py +++ b/fireblocks/models/exchange_asset.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class ExchangeAsset(BaseModel): - """ - ExchangeAsset - """ # noqa: E501 - id: Optional[StrictStr] = None - balance: Optional[StrictStr] = None - locked_amount: Optional[StrictStr] = Field(default=None, alias="lockedAmount") - total: Optional[StrictStr] = None - available: Optional[StrictStr] = None - credit: Optional[StrictStr] = None - asset_id: Optional[StrictStr] = Field(default=None, description="The id of the asset", alias="assetId") - provider_symbol: Optional[StrictStr] = Field(default=None, description="The provider symbol of the asset", alias="providerSymbol") - asset_symbol: Optional[StrictStr] = Field(default=None, description="The asset symbol of the asset", alias="assetSymbol") - asset_legacy_id: Optional[StrictStr] = Field(default=None, description="The asset legacy id of the asset", alias="assetLegacyId") - __properties: ClassVar[List[str]] = ["id", "balance", "lockedAmount", "total", "available", "credit", "assetId", "providerSymbol", "assetSymbol", "assetLegacyId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ExchangeAsset from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ExchangeAsset from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "balance": obj.get("balance"), - "lockedAmount": obj.get("lockedAmount"), - "total": obj.get("total"), - "available": obj.get("available"), - "credit": obj.get("credit"), - "assetId": obj.get("assetId"), - "providerSymbol": obj.get("providerSymbol"), - "assetSymbol": obj.get("assetSymbol"), - "assetLegacyId": obj.get("assetLegacyId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBFeGNoYW5nZUFzc2V0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEV4Y2hhbmdlQXNzZXQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgYmFsYW5jZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIGxvY2tlZF9hbW91bnQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJsb2NrZWRBbW91bnQiKQogICAgdG90YWw6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBhdmFpbGFibGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBjcmVkaXQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBhc3NldF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBpZCBvZiB0aGUgYXNzZXQiLCBhbGlhcz0iYXNzZXRJZCIpCiAgICBwcm92aWRlcl9zeW1ib2w6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgcHJvdmlkZXIgc3ltYm9sIG9mIHRoZSBhc3NldCIsIGFsaWFzPSJwcm92aWRlclN5bWJvbCIpCiAgICBhc3NldF9zeW1ib2w6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgYXNzZXQgc3ltYm9sIG9mIHRoZSBhc3NldCIsIGFsaWFzPSJhc3NldFN5bWJvbCIpCiAgICBhc3NldF9sZWdhY3lfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgYXNzZXQgbGVnYWN5IGlkIG9mIHRoZSBhc3NldCIsIGFsaWFzPSJhc3NldExlZ2FjeUlkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAiYmFsYW5jZSIsICJsb2NrZWRBbW91bnQiLCAidG90YWwiLCAiYXZhaWxhYmxlIiwgImNyZWRpdCIsICJhc3NldElkIiwgInByb3ZpZGVyU3ltYm9sIiwgImFzc2V0U3ltYm9sIiwgImFzc2V0TGVnYWN5SWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEV4Y2hhbmdlQXNzZXQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXhjaGFuZ2VBc3NldCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJiYWxhbmNlIjogb2JqLmdldCgiYmFsYW5jZSIpLAogICAgICAgICAgICAibG9ja2VkQW1vdW50Ijogb2JqLmdldCgibG9ja2VkQW1vdW50IiksCiAgICAgICAgICAgICJ0b3RhbCI6IG9iai5nZXQoInRvdGFsIiksCiAgICAgICAgICAgICJhdmFpbGFibGUiOiBvYmouZ2V0KCJhdmFpbGFibGUiKSwKICAgICAgICAgICAgImNyZWRpdCI6IG9iai5nZXQoImNyZWRpdCIpLAogICAgICAgICAgICAiYXNzZXRJZCI6IG9iai5nZXQoImFzc2V0SWQiKSwKICAgICAgICAgICAgInByb3ZpZGVyU3ltYm9sIjogb2JqLmdldCgicHJvdmlkZXJTeW1ib2wiKSwKICAgICAgICAgICAgImFzc2V0U3ltYm9sIjogb2JqLmdldCgiYXNzZXRTeW1ib2wiKSwKICAgICAgICAgICAgImFzc2V0TGVnYWN5SWQiOiBvYmouZ2V0KCJhc3NldExlZ2FjeUlkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/exchange_settlement_transactions_response.py b/fireblocks/models/exchange_settlement_transactions_response.py index 0ce3c8a5..72e6c29a 100644 --- a/fireblocks/models/exchange_settlement_transactions_response.py +++ b/fireblocks/models/exchange_settlement_transactions_response.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.to_collateral_transaction import ToCollateralTransaction -from fireblocks.models.to_exchange_transaction import ToExchangeTransaction -from typing import Optional, Set -from typing_extensions import Self - -class ExchangeSettlementTransactionsResponse(BaseModel): - """ - ExchangeSettlementTransactionsResponse - """ # noqa: E501 - to_exchange: Optional[List[ToExchangeTransaction]] = Field(default=None, alias="toExchange") - to_collateral: Optional[List[ToCollateralTransaction]] = Field(default=None, alias="toCollateral") - __properties: ClassVar[List[str]] = ["toExchange", "toCollateral"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ExchangeSettlementTransactionsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in to_exchange (list) - _items = [] - if self.to_exchange: - for _item_to_exchange in self.to_exchange: - if _item_to_exchange: - _items.append(_item_to_exchange.to_dict()) - _dict['toExchange'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in to_collateral (list) - _items = [] - if self.to_collateral: - for _item_to_collateral in self.to_collateral: - if _item_to_collateral: - _items.append(_item_to_collateral.to_dict()) - _dict['toCollateral'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ExchangeSettlementTransactionsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "toExchange": [ToExchangeTransaction.from_dict(_item) for _item in obj["toExchange"]] if obj.get("toExchange") is not None else None, - "toCollateral": [ToCollateralTransaction.from_dict(_item) for _item in obj["toCollateral"]] if obj.get("toCollateral") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b19jb2xsYXRlcmFsX3RyYW5zYWN0aW9uIGltcG9ydCBUb0NvbGxhdGVyYWxUcmFuc2FjdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRvX2V4Y2hhbmdlX3RyYW5zYWN0aW9uIGltcG9ydCBUb0V4Y2hhbmdlVHJhbnNhY3Rpb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRXhjaGFuZ2VTZXR0bGVtZW50VHJhbnNhY3Rpb25zUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgRXhjaGFuZ2VTZXR0bGVtZW50VHJhbnNhY3Rpb25zUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHRvX2V4Y2hhbmdlOiBPcHRpb25hbFtMaXN0W1RvRXhjaGFuZ2VUcmFuc2FjdGlvbl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0idG9FeGNoYW5nZSIpCiAgICB0b19jb2xsYXRlcmFsOiBPcHRpb25hbFtMaXN0W1RvQ29sbGF0ZXJhbFRyYW5zYWN0aW9uXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJ0b0NvbGxhdGVyYWwiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0b0V4Y2hhbmdlIiwgInRvQ29sbGF0ZXJhbCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXhjaGFuZ2VTZXR0bGVtZW50VHJhbnNhY3Rpb25zUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gdG9fZXhjaGFuZ2UgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLnRvX2V4Y2hhbmdlOgogICAgICAgICAgICBmb3IgX2l0ZW1fdG9fZXhjaGFuZ2UgaW4gc2VsZi50b19leGNoYW5nZToKICAgICAgICAgICAgICAgIGlmIF9pdGVtX3RvX2V4Y2hhbmdlOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fdG9fZXhjaGFuZ2UudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsndG9FeGNoYW5nZSddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiB0b19jb2xsYXRlcmFsIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi50b19jb2xsYXRlcmFsOgogICAgICAgICAgICBmb3IgX2l0ZW1fdG9fY29sbGF0ZXJhbCBpbiBzZWxmLnRvX2NvbGxhdGVyYWw6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV90b19jb2xsYXRlcmFsOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fdG9fY29sbGF0ZXJhbC50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0Wyd0b0NvbGxhdGVyYWwnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXhjaGFuZ2VTZXR0bGVtZW50VHJhbnNhY3Rpb25zUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidG9FeGNoYW5nZSI6IFtUb0V4Y2hhbmdlVHJhbnNhY3Rpb24uZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJ0b0V4Y2hhbmdlIl1dIGlmIG9iai5nZXQoInRvRXhjaGFuZ2UiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJ0b0NvbGxhdGVyYWwiOiBbVG9Db2xsYXRlcmFsVHJhbnNhY3Rpb24uZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJ0b0NvbGxhdGVyYWwiXV0gaWYgb2JqLmdldCgidG9Db2xsYXRlcmFsIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/exchange_trading_account.py b/fireblocks/models/exchange_trading_account.py index a70b2543..541f2146 100644 --- a/fireblocks/models/exchange_trading_account.py +++ b/fireblocks/models/exchange_trading_account.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.exchange_asset import ExchangeAsset -from typing import Optional, Set -from typing_extensions import Self - -class ExchangeTradingAccount(BaseModel): - """ - ExchangeTradingAccount - """ # noqa: E501 - type: Optional[StrictStr] = None - name: Optional[StrictStr] = None - assets: Optional[List[ExchangeAsset]] = None - __properties: ClassVar[List[str]] = ["type", "name", "assets"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ExchangeTradingAccount from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in assets (list) - _items = [] - if self.assets: - for _item_assets in self.assets: - if _item_assets: - _items.append(_item_assets.to_dict()) - _dict['assets'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ExchangeTradingAccount from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "name": obj.get("name"), - "assets": [ExchangeAsset.from_dict(_item) for _item in obj["assets"]] if obj.get("assets") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhjaGFuZ2VfYXNzZXQgaW1wb3J0IEV4Y2hhbmdlQXNzZXQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRXhjaGFuZ2VUcmFkaW5nQWNjb3VudChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBFeGNoYW5nZVRyYWRpbmdBY2NvdW50CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIGFzc2V0czogT3B0aW9uYWxbTGlzdFtFeGNoYW5nZUFzc2V0XV0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiLCAibmFtZSIsICJhc3NldHMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEV4Y2hhbmdlVHJhZGluZ0FjY291bnQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gYXNzZXRzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5hc3NldHM6CiAgICAgICAgICAgIGZvciBfaXRlbV9hc3NldHMgaW4gc2VsZi5hc3NldHM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9hc3NldHM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9hc3NldHMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnYXNzZXRzJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEV4Y2hhbmdlVHJhZGluZ0FjY291bnQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJhc3NldHMiOiBbRXhjaGFuZ2VBc3NldC5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImFzc2V0cyJdXSBpZiBvYmouZ2V0KCJhc3NldHMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/exchange_type.py b/fireblocks/models/exchange_type.py index 45fa1cc6..a841e6c4 100644 --- a/fireblocks/models/exchange_type.py +++ b/fireblocks/models/exchange_type.py @@ -1,78 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ExchangeType(str, Enum): - """ - Exchange account's type - """ - - """ - allowed enum values - """ - INDEPENDENT_RESERVE = 'INDEPENDENT_RESERVE' - ENCLAVE_MARKETS = 'ENCLAVE_MARKETS' - BIT = 'BIT' - COINFLEX = 'COINFLEX' - KUCOIN = 'KUCOIN' - PXS = 'PXS' - LIQUID = 'LIQUID' - BITHUMB = 'BITHUMB' - BITFINEX = 'BITFINEX' - BITSO = 'BITSO' - BITSTAMP = 'BITSTAMP' - KRAKEN = 'KRAKEN' - KRAKENINTL = 'KRAKENINTL' - BINANCE = 'BINANCE' - BINANCEUS = 'BINANCEUS' - CRYPTOCOM = 'CRYPTOCOM' - BYBIT_V2 = 'BYBIT_V2' - COINBASEPRO = 'COINBASEPRO' - COINBASEPRIME = 'COINBASEPRIME' - COINBASEINTERNATIONAL = 'COINBASEINTERNATIONAL' - WHITEBIT = 'WHITEBIT' - COINBASEEXCHANGE = 'COINBASEEXCHANGE' - KORBIT = 'KORBIT' - HITBTC = 'HITBTC' - GEMINI = 'GEMINI' - CIRCLE = 'CIRCLE' - BITMEX = 'BITMEX' - HUOBI = 'HUOBI' - DERIBIT = 'DERIBIT' - OKCOIN_V5 = 'OKCOIN_V5' - OKEX = 'OKEX' - COINMETRO = 'COINMETRO' - GATEIO = 'GATEIO' - SCRYPT = 'SCRYPT' - COINHAKO = 'COINHAKO' - LIGHTBIT = 'LIGHTBIT' - BULLISH = 'BULLISH' - CANVAS_CONNECT = 'CANVAS_CONNECT' - BITGET = 'BITGET' - LUNO = 'LUNO' - BIT_GENERA = 'BIT_GENERA' - TRANSFERO = 'TRANSFERO' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ExchangeType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBFeGNoYW5nZVR5cGUoc3RyLCBFbnVtKToKICAgICIiIgogICAgRXhjaGFuZ2UgYWNjb3VudCdzIHR5cGUKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBJTkRFUEVOREVOVF9SRVNFUlZFID0gJ0lOREVQRU5ERU5UX1JFU0VSVkUnCiAgICBFTkNMQVZFX01BUktFVFMgPSAnRU5DTEFWRV9NQVJLRVRTJwogICAgQklUID0gJ0JJVCcKICAgIENPSU5GTEVYID0gJ0NPSU5GTEVYJwogICAgS1VDT0lOID0gJ0tVQ09JTicKICAgIFBYUyA9ICdQWFMnCiAgICBMSVFVSUQgPSAnTElRVUlEJwogICAgQklUSFVNQiA9ICdCSVRIVU1CJwogICAgQklURklORVggPSAnQklURklORVgnCiAgICBCSVRTTyA9ICdCSVRTTycKICAgIEJJVFNUQU1QID0gJ0JJVFNUQU1QJwogICAgS1JBS0VOID0gJ0tSQUtFTicKICAgIEtSQUtFTklOVEwgPSAnS1JBS0VOSU5UTCcKICAgIEJJTkFOQ0UgPSAnQklOQU5DRScKICAgIEJJTkFOQ0VVUyA9ICdCSU5BTkNFVVMnCiAgICBDUllQVE9DT00gPSAnQ1JZUFRPQ09NJwogICAgQllCSVRfVjIgPSAnQllCSVRfVjInCiAgICBDT0lOQkFTRVBSTyA9ICdDT0lOQkFTRVBSTycKICAgIENPSU5CQVNFUFJJTUUgPSAnQ09JTkJBU0VQUklNRScKICAgIENPSU5CQVNFSU5URVJOQVRJT05BTCA9ICdDT0lOQkFTRUlOVEVSTkFUSU9OQUwnCiAgICBXSElURUJJVCA9ICdXSElURUJJVCcKICAgIENPSU5CQVNFRVhDSEFOR0UgPSAnQ09JTkJBU0VFWENIQU5HRScKICAgIEtPUkJJVCA9ICdLT1JCSVQnCiAgICBISVRCVEMgPSAnSElUQlRDJwogICAgR0VNSU5JID0gJ0dFTUlOSScKICAgIENJUkNMRSA9ICdDSVJDTEUnCiAgICBCSVRNRVggPSAnQklUTUVYJwogICAgSFVPQkkgPSAnSFVPQkknCiAgICBERVJJQklUID0gJ0RFUklCSVQnCiAgICBPS0NPSU5fVjUgPSAnT0tDT0lOX1Y1JwogICAgT0tFWCA9ICdPS0VYJwogICAgQ09JTk1FVFJPID0gJ0NPSU5NRVRSTycKICAgIEdBVEVJTyA9ICdHQVRFSU8nCiAgICBTQ1JZUFQgPSAnU0NSWVBUJwogICAgQ09JTkhBS08gPSAnQ09JTkhBS08nCiAgICBMSUdIVEJJVCA9ICdMSUdIVEJJVCcKICAgIEJVTExJU0ggPSAnQlVMTElTSCcKICAgIENBTlZBU19DT05ORUNUID0gJ0NBTlZBU19DT05ORUNUJwogICAgQklUR0VUID0gJ0JJVEdFVCcKICAgIExVTk8gPSAnTFVOTycKICAgIEJJVF9HRU5FUkEgPSAnQklUX0dFTkVSQScKICAgIFRSQU5TRkVSTyA9ICdUUkFOU0ZFUk8nCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXhjaGFuZ2VUeXBlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/execution_conversion_operation.py b/fireblocks/models/execution_conversion_operation.py index df28dde5..aaf7e14f 100644 --- a/fireblocks/models/execution_conversion_operation.py +++ b/fireblocks/models/execution_conversion_operation.py @@ -1,112 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.conversion_operation_execution import ConversionOperationExecution -from fireblocks.models.conversion_operation_preview import ConversionOperationPreview -from fireblocks.models.conversion_operation_type import ConversionOperationType -from fireblocks.models.conversion_validation_failure import ConversionValidationFailure -from fireblocks.models.execution_operation_status import ExecutionOperationStatus -from typing import Optional, Set -from typing_extensions import Self - -class ExecutionConversionOperation(BaseModel): - """ - ExecutionConversionOperation - """ # noqa: E501 - operation_id: StrictStr = Field(alias="operationId") - status: ExecutionOperationStatus - validation_failure: Optional[ConversionValidationFailure] = Field(default=None, alias="validationFailure") - operation_type: ConversionOperationType = Field(alias="operationType") - preview: Optional[ConversionOperationPreview] = None - execution: Optional[ConversionOperationExecution] = None - __properties: ClassVar[List[str]] = ["operationId", "status", "validationFailure", "operationType", "preview", "execution"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ExecutionConversionOperation from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of validation_failure - if self.validation_failure: - _dict['validationFailure'] = self.validation_failure.to_dict() - # override the default output from pydantic by calling `to_dict()` of preview - if self.preview: - _dict['preview'] = self.preview.to_dict() - # override the default output from pydantic by calling `to_dict()` of execution - if self.execution: - _dict['execution'] = self.execution.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ExecutionConversionOperation from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "operationId": obj.get("operationId"), - "status": obj.get("status"), - "validationFailure": ConversionValidationFailure.from_dict(obj["validationFailure"]) if obj.get("validationFailure") is not None else None, - "operationType": obj.get("operationType"), - "preview": ConversionOperationPreview.from_dict(obj["preview"]) if obj.get("preview") is not None else None, - "execution": ConversionOperationExecution.from_dict(obj["execution"]) if obj.get("execution") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbiBpbXBvcnQgQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX3ByZXZpZXcgaW1wb3J0IENvbnZlcnNpb25PcGVyYXRpb25QcmV2aWV3CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fdHlwZSBpbXBvcnQgQ29udmVyc2lvbk9wZXJhdGlvblR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJzaW9uX3ZhbGlkYXRpb25fZmFpbHVyZSBpbXBvcnQgQ29udmVyc2lvblZhbGlkYXRpb25GYWlsdXJlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhlY3V0aW9uX29wZXJhdGlvbl9zdGF0dXMgaW1wb3J0IEV4ZWN1dGlvbk9wZXJhdGlvblN0YXR1cwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBFeGVjdXRpb25Db252ZXJzaW9uT3BlcmF0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEV4ZWN1dGlvbkNvbnZlcnNpb25PcGVyYXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG9wZXJhdGlvbl9pZDogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9Im9wZXJhdGlvbklkIikKICAgIHN0YXR1czogRXhlY3V0aW9uT3BlcmF0aW9uU3RhdHVzCiAgICB2YWxpZGF0aW9uX2ZhaWx1cmU6IE9wdGlvbmFsW0NvbnZlcnNpb25WYWxpZGF0aW9uRmFpbHVyZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJ2YWxpZGF0aW9uRmFpbHVyZSIpCiAgICBvcGVyYXRpb25fdHlwZTogQ29udmVyc2lvbk9wZXJhdGlvblR5cGUgPSBGaWVsZChhbGlhcz0ib3BlcmF0aW9uVHlwZSIpCiAgICBwcmV2aWV3OiBPcHRpb25hbFtDb252ZXJzaW9uT3BlcmF0aW9uUHJldmlld10gPSBOb25lCiAgICBleGVjdXRpb246IE9wdGlvbmFsW0NvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25dID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJvcGVyYXRpb25JZCIsICJzdGF0dXMiLCAidmFsaWRhdGlvbkZhaWx1cmUiLCAib3BlcmF0aW9uVHlwZSIsICJwcmV2aWV3IiwgImV4ZWN1dGlvbiJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXhlY3V0aW9uQ29udmVyc2lvbk9wZXJhdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHZhbGlkYXRpb25fZmFpbHVyZQogICAgICAgIGlmIHNlbGYudmFsaWRhdGlvbl9mYWlsdXJlOgogICAgICAgICAgICBfZGljdFsndmFsaWRhdGlvbkZhaWx1cmUnXSA9IHNlbGYudmFsaWRhdGlvbl9mYWlsdXJlLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBwcmV2aWV3CiAgICAgICAgaWYgc2VsZi5wcmV2aWV3OgogICAgICAgICAgICBfZGljdFsncHJldmlldyddID0gc2VsZi5wcmV2aWV3LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBleGVjdXRpb24KICAgICAgICBpZiBzZWxmLmV4ZWN1dGlvbjoKICAgICAgICAgICAgX2RpY3RbJ2V4ZWN1dGlvbiddID0gc2VsZi5leGVjdXRpb24udG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeGVjdXRpb25Db252ZXJzaW9uT3BlcmF0aW9uIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm9wZXJhdGlvbklkIjogb2JqLmdldCgib3BlcmF0aW9uSWQiKSwKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAidmFsaWRhdGlvbkZhaWx1cmUiOiBDb252ZXJzaW9uVmFsaWRhdGlvbkZhaWx1cmUuZnJvbV9kaWN0KG9ialsidmFsaWRhdGlvbkZhaWx1cmUiXSkgaWYgb2JqLmdldCgidmFsaWRhdGlvbkZhaWx1cmUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJvcGVyYXRpb25UeXBlIjogb2JqLmdldCgib3BlcmF0aW9uVHlwZSIpLAogICAgICAgICAgICAicHJldmlldyI6IENvbnZlcnNpb25PcGVyYXRpb25QcmV2aWV3LmZyb21fZGljdChvYmpbInByZXZpZXciXSkgaWYgb2JqLmdldCgicHJldmlldyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImV4ZWN1dGlvbiI6IENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb24uZnJvbV9kaWN0KG9ialsiZXhlY3V0aW9uIl0pIGlmIG9iai5nZXQoImV4ZWN1dGlvbiIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/execution_disbursement_operation.py b/fireblocks/models/execution_disbursement_operation.py index fc210bc9..72658175 100644 --- a/fireblocks/models/execution_disbursement_operation.py +++ b/fireblocks/models/execution_disbursement_operation.py @@ -1,112 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.disbursement_operation_execution import DisbursementOperationExecution -from fireblocks.models.disbursement_operation_preview import DisbursementOperationPreview -from fireblocks.models.disbursement_operation_type import DisbursementOperationType -from fireblocks.models.disbursement_validation_failure import DisbursementValidationFailure -from fireblocks.models.execution_operation_status import ExecutionOperationStatus -from typing import Optional, Set -from typing_extensions import Self - -class ExecutionDisbursementOperation(BaseModel): - """ - ExecutionDisbursementOperation - """ # noqa: E501 - operation_id: StrictStr = Field(alias="operationId") - status: ExecutionOperationStatus - validation_failure: Optional[DisbursementValidationFailure] = Field(default=None, alias="validationFailure") - operation_type: DisbursementOperationType = Field(alias="operationType") - preview: Optional[DisbursementOperationPreview] = None - execution: Optional[DisbursementOperationExecution] = None - __properties: ClassVar[List[str]] = ["operationId", "status", "validationFailure", "operationType", "preview", "execution"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ExecutionDisbursementOperation from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of validation_failure - if self.validation_failure: - _dict['validationFailure'] = self.validation_failure.to_dict() - # override the default output from pydantic by calling `to_dict()` of preview - if self.preview: - _dict['preview'] = self.preview.to_dict() - # override the default output from pydantic by calling `to_dict()` of execution - if self.execution: - _dict['execution'] = self.execution.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ExecutionDisbursementOperation from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "operationId": obj.get("operationId"), - "status": obj.get("status"), - "validationFailure": DisbursementValidationFailure.from_dict(obj["validationFailure"]) if obj.get("validationFailure") is not None else None, - "operationType": obj.get("operationType"), - "preview": DisbursementOperationPreview.from_dict(obj["preview"]) if obj.get("preview") is not None else None, - "execution": DisbursementOperationExecution.from_dict(obj["execution"]) if obj.get("execution") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uIGltcG9ydCBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX3ByZXZpZXcgaW1wb3J0IERpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX3R5cGUgaW1wb3J0IERpc2J1cnNlbWVudE9wZXJhdGlvblR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfdmFsaWRhdGlvbl9mYWlsdXJlIGltcG9ydCBEaXNidXJzZW1lbnRWYWxpZGF0aW9uRmFpbHVyZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9vcGVyYXRpb25fc3RhdHVzIGltcG9ydCBFeGVjdXRpb25PcGVyYXRpb25TdGF0dXMKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRXhlY3V0aW9uRGlzYnVyc2VtZW50T3BlcmF0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEV4ZWN1dGlvbkRpc2J1cnNlbWVudE9wZXJhdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgb3BlcmF0aW9uX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChhbGlhcz0ib3BlcmF0aW9uSWQiKQogICAgc3RhdHVzOiBFeGVjdXRpb25PcGVyYXRpb25TdGF0dXMKICAgIHZhbGlkYXRpb25fZmFpbHVyZTogT3B0aW9uYWxbRGlzYnVyc2VtZW50VmFsaWRhdGlvbkZhaWx1cmVdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0idmFsaWRhdGlvbkZhaWx1cmUiKQogICAgb3BlcmF0aW9uX3R5cGU6IERpc2J1cnNlbWVudE9wZXJhdGlvblR5cGUgPSBGaWVsZChhbGlhcz0ib3BlcmF0aW9uVHlwZSIpCiAgICBwcmV2aWV3OiBPcHRpb25hbFtEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3XSA9IE5vbmUKICAgIGV4ZWN1dGlvbjogT3B0aW9uYWxbRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsib3BlcmF0aW9uSWQiLCAic3RhdHVzIiwgInZhbGlkYXRpb25GYWlsdXJlIiwgIm9wZXJhdGlvblR5cGUiLCAicHJldmlldyIsICJleGVjdXRpb24iXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEV4ZWN1dGlvbkRpc2J1cnNlbWVudE9wZXJhdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHZhbGlkYXRpb25fZmFpbHVyZQogICAgICAgIGlmIHNlbGYudmFsaWRhdGlvbl9mYWlsdXJlOgogICAgICAgICAgICBfZGljdFsndmFsaWRhdGlvbkZhaWx1cmUnXSA9IHNlbGYudmFsaWRhdGlvbl9mYWlsdXJlLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBwcmV2aWV3CiAgICAgICAgaWYgc2VsZi5wcmV2aWV3OgogICAgICAgICAgICBfZGljdFsncHJldmlldyddID0gc2VsZi5wcmV2aWV3LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBleGVjdXRpb24KICAgICAgICBpZiBzZWxmLmV4ZWN1dGlvbjoKICAgICAgICAgICAgX2RpY3RbJ2V4ZWN1dGlvbiddID0gc2VsZi5leGVjdXRpb24udG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeGVjdXRpb25EaXNidXJzZW1lbnRPcGVyYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAib3BlcmF0aW9uSWQiOiBvYmouZ2V0KCJvcGVyYXRpb25JZCIpLAogICAgICAgICAgICAic3RhdHVzIjogb2JqLmdldCgic3RhdHVzIiksCiAgICAgICAgICAgICJ2YWxpZGF0aW9uRmFpbHVyZSI6IERpc2J1cnNlbWVudFZhbGlkYXRpb25GYWlsdXJlLmZyb21fZGljdChvYmpbInZhbGlkYXRpb25GYWlsdXJlIl0pIGlmIG9iai5nZXQoInZhbGlkYXRpb25GYWlsdXJlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAib3BlcmF0aW9uVHlwZSI6IG9iai5nZXQoIm9wZXJhdGlvblR5cGUiKSwKICAgICAgICAgICAgInByZXZpZXciOiBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3LmZyb21fZGljdChvYmpbInByZXZpZXciXSkgaWYgb2JqLmdldCgicHJldmlldyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImV4ZWN1dGlvbiI6IERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbi5mcm9tX2RpY3Qob2JqWyJleGVjdXRpb24iXSkgaWYgb2JqLmdldCgiZXhlY3V0aW9uIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/execution_operation_status.py b/fireblocks/models/execution_operation_status.py index a6f90991..78b02ac0 100644 --- a/fireblocks/models/execution_operation_status.py +++ b/fireblocks/models/execution_operation_status.py @@ -1,48 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ExecutionOperationStatus(str, Enum): - """ - ExecutionOperationStatus - """ - - """ - allowed enum values - """ - PENDING = 'PENDING' - VALIDATION_IN_PROGRESS = 'VALIDATION_IN_PROGRESS' - VALIDATION_FAILED = 'VALIDATION_FAILED' - VALIDATION_COMPLETED = 'VALIDATION_COMPLETED' - PREVIEW_REQUESTED = 'PREVIEW_REQUESTED' - PREVIEW_IN_PROGRESS = 'PREVIEW_IN_PROGRESS' - PREVIEW_FAILED = 'PREVIEW_FAILED' - READY_FOR_LAUNCH = 'READY_FOR_LAUNCH' - EXECUTION_REQUESTED = 'EXECUTION_REQUESTED' - EXECUTION_IN_PROGRESS = 'EXECUTION_IN_PROGRESS' - EXECUTION_COMPLETED = 'EXECUTION_COMPLETED' - EXECUTION_FAILED = 'EXECUTION_FAILED' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ExecutionOperationStatus from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBFeGVjdXRpb25PcGVyYXRpb25TdGF0dXMoc3RyLCBFbnVtKToKICAgICIiIgogICAgRXhlY3V0aW9uT3BlcmF0aW9uU3RhdHVzCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgUEVORElORyA9ICdQRU5ESU5HJwogICAgVkFMSURBVElPTl9JTl9QUk9HUkVTUyA9ICdWQUxJREFUSU9OX0lOX1BST0dSRVNTJwogICAgVkFMSURBVElPTl9GQUlMRUQgPSAnVkFMSURBVElPTl9GQUlMRUQnCiAgICBWQUxJREFUSU9OX0NPTVBMRVRFRCA9ICdWQUxJREFUSU9OX0NPTVBMRVRFRCcKICAgIFBSRVZJRVdfUkVRVUVTVEVEID0gJ1BSRVZJRVdfUkVRVUVTVEVEJwogICAgUFJFVklFV19JTl9QUk9HUkVTUyA9ICdQUkVWSUVXX0lOX1BST0dSRVNTJwogICAgUFJFVklFV19GQUlMRUQgPSAnUFJFVklFV19GQUlMRUQnCiAgICBSRUFEWV9GT1JfTEFVTkNIID0gJ1JFQURZX0ZPUl9MQVVOQ0gnCiAgICBFWEVDVVRJT05fUkVRVUVTVEVEID0gJ0VYRUNVVElPTl9SRVFVRVNURUQnCiAgICBFWEVDVVRJT05fSU5fUFJPR1JFU1MgPSAnRVhFQ1VUSU9OX0lOX1BST0dSRVNTJwogICAgRVhFQ1VUSU9OX0NPTVBMRVRFRCA9ICdFWEVDVVRJT05fQ09NUExFVEVEJwogICAgRVhFQ1VUSU9OX0ZBSUxFRCA9ICdFWEVDVVRJT05fRkFJTEVEJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEV4ZWN1dGlvbk9wZXJhdGlvblN0YXR1cyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/execution_request_base_details.py b/fireblocks/models/execution_request_base_details.py index 92a0ae7d..996bd6fe 100644 --- a/fireblocks/models/execution_request_base_details.py +++ b/fireblocks/models/execution_request_base_details.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.side import Side -from fireblocks.models.transfer_rail import TransferRail -from typing import Optional, Set -from typing_extensions import Self - -class ExecutionRequestBaseDetails(BaseModel): - """ - ExecutionRequestBaseDetails - """ # noqa: E501 - side: Side - base_amount: StrictStr = Field(description="Amount in baseAssetId. BUY = base amount to receive; SELL = base amount to sell.", alias="baseAmount") - base_asset_id: StrictStr = Field(description="The asset you receive on BUY / give on SELL.", alias="baseAssetId") - base_asset_rail: Optional[TransferRail] = Field(default=None, alias="baseAssetRail") - quote_asset_id: StrictStr = Field(description="Counter asset used to pay/receive", alias="quoteAssetId") - quote_asset_rail: Optional[TransferRail] = Field(default=None, alias="quoteAssetRail") - __properties: ClassVar[List[str]] = ["side", "baseAmount", "baseAssetId", "baseAssetRail", "quoteAssetId", "quoteAssetRail"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ExecutionRequestBaseDetails from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ExecutionRequestBaseDetails from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "side": obj.get("side"), - "baseAmount": obj.get("baseAmount"), - "baseAssetId": obj.get("baseAssetId"), - "baseAssetRail": obj.get("baseAssetRail"), - "quoteAssetId": obj.get("quoteAssetId"), - "quoteAssetRail": obj.get("quoteAssetRail") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNpZGUgaW1wb3J0IFNpZGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9yYWlsIGltcG9ydCBUcmFuc2ZlclJhaWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRXhlY3V0aW9uUmVxdWVzdEJhc2VEZXRhaWxzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEV4ZWN1dGlvblJlcXVlc3RCYXNlRGV0YWlscwogICAgIiIiICMgbm9xYTogRTUwMQogICAgc2lkZTogU2lkZQogICAgYmFzZV9hbW91bnQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBbW91bnQgaW4gYmFzZUFzc2V0SWQuIEJVWSA9IGJhc2UgYW1vdW50IHRvIHJlY2VpdmU7IFNFTEwgPSBiYXNlIGFtb3VudCB0byBzZWxsLiIsIGFsaWFzPSJiYXNlQW1vdW50IikKICAgIGJhc2VfYXNzZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYXNzZXQgeW91IHJlY2VpdmUgb24gQlVZIC8gZ2l2ZSBvbiBTRUxMLiIsIGFsaWFzPSJiYXNlQXNzZXRJZCIpCiAgICBiYXNlX2Fzc2V0X3JhaWw6IE9wdGlvbmFsW1RyYW5zZmVyUmFpbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJiYXNlQXNzZXRSYWlsIikKICAgIHF1b3RlX2Fzc2V0X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQ291bnRlciBhc3NldCB1c2VkIHRvIHBheS9yZWNlaXZlIiwgYWxpYXM9InF1b3RlQXNzZXRJZCIpCiAgICBxdW90ZV9hc3NldF9yYWlsOiBPcHRpb25hbFtUcmFuc2ZlclJhaWxdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0icXVvdGVBc3NldFJhaWwiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzaWRlIiwgImJhc2VBbW91bnQiLCAiYmFzZUFzc2V0SWQiLCAiYmFzZUFzc2V0UmFpbCIsICJxdW90ZUFzc2V0SWQiLCAicXVvdGVBc3NldFJhaWwiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEV4ZWN1dGlvblJlcXVlc3RCYXNlRGV0YWlscyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeGVjdXRpb25SZXF1ZXN0QmFzZURldGFpbHMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic2lkZSI6IG9iai5nZXQoInNpZGUiKSwKICAgICAgICAgICAgImJhc2VBbW91bnQiOiBvYmouZ2V0KCJiYXNlQW1vdW50IiksCiAgICAgICAgICAgICJiYXNlQXNzZXRJZCI6IG9iai5nZXQoImJhc2VBc3NldElkIiksCiAgICAgICAgICAgICJiYXNlQXNzZXRSYWlsIjogb2JqLmdldCgiYmFzZUFzc2V0UmFpbCIpLAogICAgICAgICAgICAicXVvdGVBc3NldElkIjogb2JqLmdldCgicXVvdGVBc3NldElkIiksCiAgICAgICAgICAgICJxdW90ZUFzc2V0UmFpbCI6IG9iai5nZXQoInF1b3RlQXNzZXRSYWlsIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/execution_request_details.py b/fireblocks/models/execution_request_details.py index 0fab0ab9..37ab9bc8 100644 --- a/fireblocks/models/execution_request_details.py +++ b/fireblocks/models/execution_request_details.py @@ -1,141 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.market_execution_request_details import MarketExecutionRequestDetails -from fireblocks.models.quote_execution_with_requote_request_details import QuoteExecutionWithRequoteRequestDetails -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -EXECUTIONREQUESTDETAILS_ONE_OF_SCHEMAS = ["MarketExecutionRequestDetails", "QuoteExecutionWithRequoteRequestDetails"] - -class ExecutionRequestDetails(BaseModel): - """ - Order execution details - """ - # data type: MarketExecutionRequestDetails - oneof_schema_1_validator: Optional[MarketExecutionRequestDetails] = None - # data type: QuoteExecutionWithRequoteRequestDetails - oneof_schema_2_validator: Optional[QuoteExecutionWithRequoteRequestDetails] = None - actual_instance: Optional[Union[MarketExecutionRequestDetails, QuoteExecutionWithRequoteRequestDetails]] = None - one_of_schemas: Set[str] = { "MarketExecutionRequestDetails", "QuoteExecutionWithRequoteRequestDetails" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - discriminator_value_class_map: Dict[str, str] = { - } - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = ExecutionRequestDetails.model_construct() - error_messages = [] - match = 0 - # validate data type: MarketExecutionRequestDetails - if not isinstance(v, MarketExecutionRequestDetails): - error_messages.append(f"Error! Input type `{type(v)}` is not `MarketExecutionRequestDetails`") - else: - match += 1 - # validate data type: QuoteExecutionWithRequoteRequestDetails - if not isinstance(v, QuoteExecutionWithRequoteRequestDetails): - error_messages.append(f"Error! Input type `{type(v)}` is not `QuoteExecutionWithRequoteRequestDetails`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in ExecutionRequestDetails with oneOf schemas: MarketExecutionRequestDetails, QuoteExecutionWithRequoteRequestDetails. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in ExecutionRequestDetails with oneOf schemas: MarketExecutionRequestDetails, QuoteExecutionWithRequoteRequestDetails. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into MarketExecutionRequestDetails - try: - instance.actual_instance = MarketExecutionRequestDetails.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into QuoteExecutionWithRequoteRequestDetails - try: - instance.actual_instance = QuoteExecutionWithRequoteRequestDetails.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into ExecutionRequestDetails with oneOf schemas: MarketExecutionRequestDetails, QuoteExecutionWithRequoteRequestDetails. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into ExecutionRequestDetails with oneOf schemas: MarketExecutionRequestDetails, QuoteExecutionWithRequoteRequestDetails. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], MarketExecutionRequestDetails, QuoteExecutionWithRequoteRequestDetails]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubWFya2V0X2V4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHMgaW1wb3J0IE1hcmtldEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucXVvdGVfZXhlY3V0aW9uX3dpdGhfcmVxdW90ZV9yZXF1ZXN0X2RldGFpbHMgaW1wb3J0IFF1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXF1ZXN0RGV0YWlscwpmcm9tIHB5ZGFudGljIGltcG9ydCBTdHJpY3RTdHIsIEZpZWxkCmZyb20gdHlwaW5nIGltcG9ydCBVbmlvbiwgTGlzdCwgU2V0LCBPcHRpb25hbCwgRGljdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBMaXRlcmFsLCBTZWxmCgpFWEVDVVRJT05SRVFVRVNUREVUQUlMU19PTkVfT0ZfU0NIRU1BUyA9IFsiTWFya2V0RXhlY3V0aW9uUmVxdWVzdERldGFpbHMiLCAiUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlcXVlc3REZXRhaWxzIl0KCmNsYXNzIEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIE9yZGVyIGV4ZWN1dGlvbiBkZXRhaWxzCiAgICAiIiIKICAgICMgZGF0YSB0eXBlOiBNYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlscwogICAgb25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yOiBPcHRpb25hbFtNYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlsc10gPSBOb25lCiAgICAjIGRhdGEgdHlwZTogUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlcXVlc3REZXRhaWxzCiAgICBvbmVvZl9zY2hlbWFfMl92YWxpZGF0b3I6IE9wdGlvbmFsW1F1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXF1ZXN0RGV0YWlsc10gPSBOb25lCiAgICBhY3R1YWxfaW5zdGFuY2U6IE9wdGlvbmFsW1VuaW9uW01hcmtldEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzLCBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVxdWVzdERldGFpbHNdXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgIk1hcmtldEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzIiwgIlF1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXF1ZXN0RGV0YWlscyIgfQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkaXNjcmltaW5hdG9yX3ZhbHVlX2NsYXNzX21hcDogRGljdFtzdHIsIHN0cl0gPSB7CiAgICB9CgogICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncykgLT4gTm9uZToKICAgICAgICBpZiBhcmdzOgogICAgICAgICAgICBpZiBsZW4oYXJncykgPiAxOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBvbmx5IDEgaXMgYWxsb3dlZCB0byBzZXQgYGFjdHVhbF9pbnN0YW5jZWAiKQogICAgICAgICAgICBpZiBrd2FyZ3M6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIGtleXdvcmQgYXJndW1lbnRzIGNhbm5vdCBiZSB1c2VkLiIpCiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oYWN0dWFsX2luc3RhbmNlPWFyZ3NbMF0pCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhY3R1YWxfaW5zdGFuY2UnKQogICAgZGVmIGFjdHVhbF9pbnN0YW5jZV9tdXN0X3ZhbGlkYXRlX29uZW9mKGNscywgdik6CiAgICAgICAgaW5zdGFuY2UgPSBFeGVjdXRpb25SZXF1ZXN0RGV0YWlscy5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogTWFya2V0RXhlY3V0aW9uUmVxdWVzdERldGFpbHMKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBNYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlscyk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgTWFya2V0RXhlY3V0aW9uUmVxdWVzdERldGFpbHNgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IFF1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXF1ZXN0RGV0YWlscwogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIFF1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXF1ZXN0RGV0YWlscyk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlcXVlc3REZXRhaWxzYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBFeGVjdXRpb25SZXF1ZXN0RGV0YWlscyB3aXRoIG9uZU9mIHNjaGVtYXM6IE1hcmtldEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzLCBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVxdWVzdERldGFpbHMuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gRXhlY3V0aW9uUmVxdWVzdERldGFpbHMgd2l0aCBvbmVPZiBzY2hlbWFzOiBNYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlscywgUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlcXVlc3REZXRhaWxzLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gdgoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogVW5pb25bc3RyLCBEaWN0W3N0ciwgQW55XV0pIC0+IFNlbGY6CiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2pzb24oanNvbi5kdW1wcyhvYmopKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgb2JqZWN0IHJlcHJlc2VudGVkIGJ5IHRoZSBqc29uIHN0cmluZyIiIgogICAgICAgIGluc3RhbmNlID0gY2xzLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAoKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBNYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlscwogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gTWFya2V0RXhlY3V0aW9uUmVxdWVzdERldGFpbHMuZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlcXVlc3REZXRhaWxzCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVxdWVzdERldGFpbHMuZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCgogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBFeGVjdXRpb25SZXF1ZXN0RGV0YWlscyB3aXRoIG9uZU9mIHNjaGVtYXM6IE1hcmtldEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzLCBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVxdWVzdERldGFpbHMuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gRXhlY3V0aW9uUmVxdWVzdERldGFpbHMgd2l0aCBvbmVPZiBzY2hlbWFzOiBNYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlscywgUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlcXVlc3REZXRhaWxzLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuICJudWxsIgoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fanNvbiIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24oKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYuYWN0dWFsX2luc3RhbmNlKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IE9wdGlvbmFsW1VuaW9uW0RpY3Rbc3RyLCBBbnldLCBNYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlscywgUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlcXVlc3REZXRhaWxzXV06CiAgICAgICAgIiIiUmV0dXJucyB0aGUgZGljdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2RpY3QiKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCk6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KCkKICAgICAgICBlbHNlOgogICAgICAgICAgICAjIHByaW1pdGl2ZSB0eXBlCiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZQoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcCgpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/execution_request_details_type.py b/fireblocks/models/execution_request_details_type.py new file mode 100644 index 00000000..6b49bb73 --- /dev/null +++ b/fireblocks/models/execution_request_details_type.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBFeGVjdXRpb25SZXF1ZXN0RGV0YWlsc1R5cGUoc3RyLCBFbnVtKToKICAgICIiIgogICAgRXhlY3V0aW9uIHR5cGUgc3VwcG9ydGVkIGJ5IHRoZSBwcm92aWRlcgogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIFFVT1RFID0gJ1FVT1RFJwogICAgTUFSS0VUID0gJ01BUktFVCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeGVjdXRpb25SZXF1ZXN0RGV0YWlsc1R5cGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/execution_response_base_details.py b/fireblocks/models/execution_response_base_details.py index 480e2524..cbf32458 100644 --- a/fireblocks/models/execution_response_base_details.py +++ b/fireblocks/models/execution_response_base_details.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.side import Side -from fireblocks.models.transfer_rail import TransferRail -from typing import Optional, Set -from typing_extensions import Self - -class ExecutionResponseBaseDetails(BaseModel): - """ - ExecutionResponseBaseDetails - """ # noqa: E501 - side: Side - base_amount: StrictStr = Field(description="Amount to convert", alias="baseAmount") - base_asset_id: StrictStr = Field(description="Source asset identifier", alias="baseAssetId") - base_asset_rail: Optional[TransferRail] = Field(default=None, alias="baseAssetRail") - quote_asset_id: StrictStr = Field(description="Target asset identifier", alias="quoteAssetId") - quote_asset_rail: Optional[TransferRail] = Field(default=None, alias="quoteAssetRail") - __properties: ClassVar[List[str]] = ["side", "baseAmount", "baseAssetId", "baseAssetRail", "quoteAssetId", "quoteAssetRail"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ExecutionResponseBaseDetails from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ExecutionResponseBaseDetails from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "side": obj.get("side"), - "baseAmount": obj.get("baseAmount"), - "baseAssetId": obj.get("baseAssetId"), - "baseAssetRail": obj.get("baseAssetRail"), - "quoteAssetId": obj.get("quoteAssetId"), - "quoteAssetRail": obj.get("quoteAssetRail") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNpZGUgaW1wb3J0IFNpZGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9yYWlsIGltcG9ydCBUcmFuc2ZlclJhaWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRXhlY3V0aW9uUmVzcG9uc2VCYXNlRGV0YWlscyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBFeGVjdXRpb25SZXNwb25zZUJhc2VEZXRhaWxzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzaWRlOiBTaWRlCiAgICBiYXNlX2Ftb3VudDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkFtb3VudCB0byBjb252ZXJ0IiwgYWxpYXM9ImJhc2VBbW91bnQiKQogICAgYmFzZV9hc3NldF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlNvdXJjZSBhc3NldCBpZGVudGlmaWVyIiwgYWxpYXM9ImJhc2VBc3NldElkIikKICAgIGJhc2VfYXNzZXRfcmFpbDogT3B0aW9uYWxbVHJhbnNmZXJSYWlsXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImJhc2VBc3NldFJhaWwiKQogICAgcXVvdGVfYXNzZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUYXJnZXQgYXNzZXQgaWRlbnRpZmllciIsIGFsaWFzPSJxdW90ZUFzc2V0SWQiKQogICAgcXVvdGVfYXNzZXRfcmFpbDogT3B0aW9uYWxbVHJhbnNmZXJSYWlsXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InF1b3RlQXNzZXRSYWlsIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic2lkZSIsICJiYXNlQW1vdW50IiwgImJhc2VBc3NldElkIiwgImJhc2VBc3NldFJhaWwiLCAicXVvdGVBc3NldElkIiwgInF1b3RlQXNzZXRSYWlsIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeGVjdXRpb25SZXNwb25zZUJhc2VEZXRhaWxzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEV4ZWN1dGlvblJlc3BvbnNlQmFzZURldGFpbHMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic2lkZSI6IG9iai5nZXQoInNpZGUiKSwKICAgICAgICAgICAgImJhc2VBbW91bnQiOiBvYmouZ2V0KCJiYXNlQW1vdW50IiksCiAgICAgICAgICAgICJiYXNlQXNzZXRJZCI6IG9iai5nZXQoImJhc2VBc3NldElkIiksCiAgICAgICAgICAgICJiYXNlQXNzZXRSYWlsIjogb2JqLmdldCgiYmFzZUFzc2V0UmFpbCIpLAogICAgICAgICAgICAicXVvdGVBc3NldElkIjogb2JqLmdldCgicXVvdGVBc3NldElkIiksCiAgICAgICAgICAgICJxdW90ZUFzc2V0UmFpbCI6IG9iai5nZXQoInF1b3RlQXNzZXRSYWlsIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/execution_response_details.py b/fireblocks/models/execution_response_details.py index ce7cbbbb..d3d00c5d 100644 --- a/fireblocks/models/execution_response_details.py +++ b/fireblocks/models/execution_response_details.py @@ -1,141 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.market_execution_response_details import MarketExecutionResponseDetails -from fireblocks.models.quote_execution_with_requote_response_details import QuoteExecutionWithRequoteResponseDetails -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -EXECUTIONRESPONSEDETAILS_ONE_OF_SCHEMAS = ["MarketExecutionResponseDetails", "QuoteExecutionWithRequoteResponseDetails"] - -class ExecutionResponseDetails(BaseModel): - """ - ExecutionResponseDetails - """ - # data type: MarketExecutionResponseDetails - oneof_schema_1_validator: Optional[MarketExecutionResponseDetails] = None - # data type: QuoteExecutionWithRequoteResponseDetails - oneof_schema_2_validator: Optional[QuoteExecutionWithRequoteResponseDetails] = None - actual_instance: Optional[Union[MarketExecutionResponseDetails, QuoteExecutionWithRequoteResponseDetails]] = None - one_of_schemas: Set[str] = { "MarketExecutionResponseDetails", "QuoteExecutionWithRequoteResponseDetails" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - discriminator_value_class_map: Dict[str, str] = { - } - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = ExecutionResponseDetails.model_construct() - error_messages = [] - match = 0 - # validate data type: MarketExecutionResponseDetails - if not isinstance(v, MarketExecutionResponseDetails): - error_messages.append(f"Error! Input type `{type(v)}` is not `MarketExecutionResponseDetails`") - else: - match += 1 - # validate data type: QuoteExecutionWithRequoteResponseDetails - if not isinstance(v, QuoteExecutionWithRequoteResponseDetails): - error_messages.append(f"Error! Input type `{type(v)}` is not `QuoteExecutionWithRequoteResponseDetails`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in ExecutionResponseDetails with oneOf schemas: MarketExecutionResponseDetails, QuoteExecutionWithRequoteResponseDetails. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in ExecutionResponseDetails with oneOf schemas: MarketExecutionResponseDetails, QuoteExecutionWithRequoteResponseDetails. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into MarketExecutionResponseDetails - try: - instance.actual_instance = MarketExecutionResponseDetails.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into QuoteExecutionWithRequoteResponseDetails - try: - instance.actual_instance = QuoteExecutionWithRequoteResponseDetails.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into ExecutionResponseDetails with oneOf schemas: MarketExecutionResponseDetails, QuoteExecutionWithRequoteResponseDetails. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into ExecutionResponseDetails with oneOf schemas: MarketExecutionResponseDetails, QuoteExecutionWithRequoteResponseDetails. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], MarketExecutionResponseDetails, QuoteExecutionWithRequoteResponseDetails]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubWFya2V0X2V4ZWN1dGlvbl9yZXNwb25zZV9kZXRhaWxzIGltcG9ydCBNYXJrZXRFeGVjdXRpb25SZXNwb25zZURldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5xdW90ZV9leGVjdXRpb25fd2l0aF9yZXF1b3RlX3Jlc3BvbnNlX2RldGFpbHMgaW1wb3J0IFF1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXNwb25zZURldGFpbHMKZnJvbSBweWRhbnRpYyBpbXBvcnQgU3RyaWN0U3RyLCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgVW5pb24sIExpc3QsIFNldCwgT3B0aW9uYWwsIERpY3QKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgTGl0ZXJhbCwgU2VsZgoKRVhFQ1VUSU9OUkVTUE9OU0VERVRBSUxTX09ORV9PRl9TQ0hFTUFTID0gWyJNYXJrZXRFeGVjdXRpb25SZXNwb25zZURldGFpbHMiLCAiUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlc3BvbnNlRGV0YWlscyJdCgpjbGFzcyBFeGVjdXRpb25SZXNwb25zZURldGFpbHMoQmFzZU1vZGVsKToKICAgICIiIgogICAgRXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzCiAgICAiIiIKICAgICMgZGF0YSB0eXBlOiBNYXJrZXRFeGVjdXRpb25SZXNwb25zZURldGFpbHMKICAgIG9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvcjogT3B0aW9uYWxbTWFya2V0RXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzXSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVzcG9uc2VEZXRhaWxzCiAgICBvbmVvZl9zY2hlbWFfMl92YWxpZGF0b3I6IE9wdGlvbmFsW1F1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXNwb25zZURldGFpbHNdID0gTm9uZQogICAgYWN0dWFsX2luc3RhbmNlOiBPcHRpb25hbFtVbmlvbltNYXJrZXRFeGVjdXRpb25SZXNwb25zZURldGFpbHMsIFF1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXNwb25zZURldGFpbHNdXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgIk1hcmtldEV4ZWN1dGlvblJlc3BvbnNlRGV0YWlscyIsICJRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVzcG9uc2VEZXRhaWxzIiB9CgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRpc2NyaW1pbmF0b3JfdmFsdWVfY2xhc3NfbWFwOiBEaWN0W3N0ciwgc3RyXSA9IHsKICAgIH0KCiAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKSAtPiBOb25lOgogICAgICAgIGlmIGFyZ3M6CiAgICAgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIG9ubHkgMSBpcyBhbGxvd2VkIHRvIHNldCBgYWN0dWFsX2luc3RhbmNlYCIpCiAgICAgICAgICAgIGlmIGt3YXJnczoKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwga2V5d29yZCBhcmd1bWVudHMgY2Fubm90IGJlIHVzZWQuIikKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhhY3R1YWxfaW5zdGFuY2U9YXJnc1swXSkKICAgICAgICBlbHNlOgogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FjdHVhbF9pbnN0YW5jZScpCiAgICBkZWYgYWN0dWFsX2luc3RhbmNlX211c3RfdmFsaWRhdGVfb25lb2YoY2xzLCB2KToKICAgICAgICBpbnN0YW5jZSA9IEV4ZWN1dGlvblJlc3BvbnNlRGV0YWlscy5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogTWFya2V0RXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgTWFya2V0RXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBNYXJrZXRFeGVjdXRpb25SZXNwb25zZURldGFpbHNgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IFF1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXNwb25zZURldGFpbHMKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVzcG9uc2VEZXRhaWxzKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVzcG9uc2VEZXRhaWxzYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBFeGVjdXRpb25SZXNwb25zZURldGFpbHMgd2l0aCBvbmVPZiBzY2hlbWFzOiBNYXJrZXRFeGVjdXRpb25SZXNwb25zZURldGFpbHMsIFF1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXNwb25zZURldGFpbHMuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gRXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzIHdpdGggb25lT2Ygc2NoZW1hczogTWFya2V0RXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzLCBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVzcG9uc2VEZXRhaWxzLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gdgoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogVW5pb25bc3RyLCBEaWN0W3N0ciwgQW55XV0pIC0+IFNlbGY6CiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2pzb24oanNvbi5kdW1wcyhvYmopKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgb2JqZWN0IHJlcHJlc2VudGVkIGJ5IHRoZSBqc29uIHN0cmluZyIiIgogICAgICAgIGluc3RhbmNlID0gY2xzLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAoKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBNYXJrZXRFeGVjdXRpb25SZXNwb25zZURldGFpbHMKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IE1hcmtldEV4ZWN1dGlvblJlc3BvbnNlRGV0YWlscy5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVzcG9uc2VEZXRhaWxzCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVzcG9uc2VEZXRhaWxzLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQoKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gRXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzIHdpdGggb25lT2Ygc2NoZW1hczogTWFya2V0RXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzLCBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVzcG9uc2VEZXRhaWxzLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIEV4ZWN1dGlvblJlc3BvbnNlRGV0YWlscyB3aXRoIG9uZU9mIHNjaGVtYXM6IE1hcmtldEV4ZWN1dGlvblJlc3BvbnNlRGV0YWlscywgUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlc3BvbnNlRGV0YWlscy4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiAibnVsbCIKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2pzb24iKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbik6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKCkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLmFjdHVhbF9pbnN0YW5jZSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBPcHRpb25hbFtVbmlvbltEaWN0W3N0ciwgQW55XSwgTWFya2V0RXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzLCBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVzcG9uc2VEZXRhaWxzXV06CiAgICAgICAgIiIiUmV0dXJucyB0aGUgZGljdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2RpY3QiKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCk6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KCkKICAgICAgICBlbHNlOgogICAgICAgICAgICAjIHByaW1pdGl2ZSB0eXBlCiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZQoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcCgpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/execution_screening_operation.py b/fireblocks/models/execution_screening_operation.py index 49d7280e..6873388e 100644 --- a/fireblocks/models/execution_screening_operation.py +++ b/fireblocks/models/execution_screening_operation.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.execution_operation_status import ExecutionOperationStatus -from fireblocks.models.screening_operation_execution import ScreeningOperationExecution -from fireblocks.models.screening_operation_type import ScreeningOperationType -from fireblocks.models.screening_validation_failure import ScreeningValidationFailure -from typing import Optional, Set -from typing_extensions import Self - -class ExecutionScreeningOperation(BaseModel): - """ - ExecutionScreeningOperation - """ # noqa: E501 - operation_id: StrictStr = Field(alias="operationId") - status: ExecutionOperationStatus - operation_type: ScreeningOperationType = Field(alias="operationType") - validation_failure: Optional[ScreeningValidationFailure] = Field(default=None, alias="validationFailure") - execution: Optional[ScreeningOperationExecution] = None - __properties: ClassVar[List[str]] = ["operationId", "status", "operationType", "validationFailure", "execution"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ExecutionScreeningOperation from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of validation_failure - if self.validation_failure: - _dict['validationFailure'] = self.validation_failure.to_dict() - # override the default output from pydantic by calling `to_dict()` of execution - if self.execution: - _dict['execution'] = self.execution.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ExecutionScreeningOperation from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "operationId": obj.get("operationId"), - "status": obj.get("status"), - "operationType": obj.get("operationType"), - "validationFailure": ScreeningValidationFailure.from_dict(obj["validationFailure"]) if obj.get("validationFailure") is not None else None, - "execution": ScreeningOperationExecution.from_dict(obj["execution"]) if obj.get("execution") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9vcGVyYXRpb25fc3RhdHVzIGltcG9ydCBFeGVjdXRpb25PcGVyYXRpb25TdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfb3BlcmF0aW9uX2V4ZWN1dGlvbiBpbXBvcnQgU2NyZWVuaW5nT3BlcmF0aW9uRXhlY3V0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX29wZXJhdGlvbl90eXBlIGltcG9ydCBTY3JlZW5pbmdPcGVyYXRpb25UeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3ZhbGlkYXRpb25fZmFpbHVyZSBpbXBvcnQgU2NyZWVuaW5nVmFsaWRhdGlvbkZhaWx1cmUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRXhlY3V0aW9uU2NyZWVuaW5nT3BlcmF0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEV4ZWN1dGlvblNjcmVlbmluZ09wZXJhdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgb3BlcmF0aW9uX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChhbGlhcz0ib3BlcmF0aW9uSWQiKQogICAgc3RhdHVzOiBFeGVjdXRpb25PcGVyYXRpb25TdGF0dXMKICAgIG9wZXJhdGlvbl90eXBlOiBTY3JlZW5pbmdPcGVyYXRpb25UeXBlID0gRmllbGQoYWxpYXM9Im9wZXJhdGlvblR5cGUiKQogICAgdmFsaWRhdGlvbl9mYWlsdXJlOiBPcHRpb25hbFtTY3JlZW5pbmdWYWxpZGF0aW9uRmFpbHVyZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJ2YWxpZGF0aW9uRmFpbHVyZSIpCiAgICBleGVjdXRpb246IE9wdGlvbmFsW1NjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbl0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm9wZXJhdGlvbklkIiwgInN0YXR1cyIsICJvcGVyYXRpb25UeXBlIiwgInZhbGlkYXRpb25GYWlsdXJlIiwgImV4ZWN1dGlvbiJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXhlY3V0aW9uU2NyZWVuaW5nT3BlcmF0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgdmFsaWRhdGlvbl9mYWlsdXJlCiAgICAgICAgaWYgc2VsZi52YWxpZGF0aW9uX2ZhaWx1cmU6CiAgICAgICAgICAgIF9kaWN0Wyd2YWxpZGF0aW9uRmFpbHVyZSddID0gc2VsZi52YWxpZGF0aW9uX2ZhaWx1cmUudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGV4ZWN1dGlvbgogICAgICAgIGlmIHNlbGYuZXhlY3V0aW9uOgogICAgICAgICAgICBfZGljdFsnZXhlY3V0aW9uJ10gPSBzZWxmLmV4ZWN1dGlvbi50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEV4ZWN1dGlvblNjcmVlbmluZ09wZXJhdGlvbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJvcGVyYXRpb25JZCI6IG9iai5nZXQoIm9wZXJhdGlvbklkIiksCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgIm9wZXJhdGlvblR5cGUiOiBvYmouZ2V0KCJvcGVyYXRpb25UeXBlIiksCiAgICAgICAgICAgICJ2YWxpZGF0aW9uRmFpbHVyZSI6IFNjcmVlbmluZ1ZhbGlkYXRpb25GYWlsdXJlLmZyb21fZGljdChvYmpbInZhbGlkYXRpb25GYWlsdXJlIl0pIGlmIG9iai5nZXQoInZhbGlkYXRpb25GYWlsdXJlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZXhlY3V0aW9uIjogU2NyZWVuaW5nT3BlcmF0aW9uRXhlY3V0aW9uLmZyb21fZGljdChvYmpbImV4ZWN1dGlvbiJdKSBpZiBvYmouZ2V0KCJleGVjdXRpb24iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/execution_step_error.py b/fireblocks/models/execution_step_error.py index b4274b7a..bbe43172 100644 --- a/fireblocks/models/execution_step_error.py +++ b/fireblocks/models/execution_step_error.py @@ -1,43 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ExecutionStepError(str, Enum): - """ - ExecutionStepError - """ - - """ - allowed enum values - """ - INTERNAL_ERROR = 'INTERNAL_ERROR' - QUOTE_EXPIRED = 'QUOTE_EXPIRED' - INSUFFICIENT_OUTPUT_AMOUNT = 'INSUFFICIENT_OUTPUT_AMOUNT' - INSUFFICIENT_FUNDS = 'INSUFFICIENT_FUNDS' - LAST_TRANSACTION_FAILED = 'LAST_TRANSACTION_FAILED' - SWAP_APPROVAL_FAILED = 'SWAP_APPROVAL_FAILED' - PROVIDER_EXECUTION_ERROR = 'PROVIDER_EXECUTION_ERROR' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ExecutionStepError from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBFeGVjdXRpb25TdGVwRXJyb3Ioc3RyLCBFbnVtKToKICAgICIiIgogICAgRXhlY3V0aW9uU3RlcEVycm9yCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgSU5URVJOQUxfRVJST1IgPSAnSU5URVJOQUxfRVJST1InCiAgICBRVU9URV9FWFBJUkVEID0gJ1FVT1RFX0VYUElSRUQnCiAgICBJTlNVRkZJQ0lFTlRfT1VUUFVUX0FNT1VOVCA9ICdJTlNVRkZJQ0lFTlRfT1VUUFVUX0FNT1VOVCcKICAgIElOU1VGRklDSUVOVF9GVU5EUyA9ICdJTlNVRkZJQ0lFTlRfRlVORFMnCiAgICBMQVNUX1RSQU5TQUNUSU9OX0ZBSUxFRCA9ICdMQVNUX1RSQU5TQUNUSU9OX0ZBSUxFRCcKICAgIFNXQVBfQVBQUk9WQUxfRkFJTEVEID0gJ1NXQVBfQVBQUk9WQUxfRkFJTEVEJwogICAgUFJPVklERVJfRVhFQ1VUSU9OX0VSUk9SID0gJ1BST1ZJREVSX0VYRUNVVElPTl9FUlJPUicKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeGVjdXRpb25TdGVwRXJyb3IgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/execution_step_status_enum.py b/fireblocks/models/execution_step_status_enum.py index 7ff1ece6..8325b7ee 100644 --- a/fireblocks/models/execution_step_status_enum.py +++ b/fireblocks/models/execution_step_status_enum.py @@ -1,41 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ExecutionStepStatusEnum(str, Enum): - """ - ExecutionStepStatusEnum - """ - - """ - allowed enum values - """ - WAITING = 'WAITING' - PROCESSING = 'PROCESSING' - COMPLETED = 'COMPLETED' - FAILED = 'FAILED' - CANCELLED = 'CANCELLED' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ExecutionStepStatusEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBFeGVjdXRpb25TdGVwU3RhdHVzRW51bShzdHIsIEVudW0pOgogICAgIiIiCiAgICBFeGVjdXRpb25TdGVwU3RhdHVzRW51bQogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIFdBSVRJTkcgPSAnV0FJVElORycKICAgIFBST0NFU1NJTkcgPSAnUFJPQ0VTU0lORycKICAgIENPTVBMRVRFRCA9ICdDT01QTEVURUQnCiAgICBGQUlMRUQgPSAnRkFJTEVEJwogICAgQ0FOQ0VMTEVEID0gJ0NBTkNFTExFRCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeGVjdXRpb25TdGVwU3RhdHVzRW51bSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/execution_step_type.py b/fireblocks/models/execution_step_type.py index cb7fc798..50cffe63 100644 --- a/fireblocks/models/execution_step_type.py +++ b/fireblocks/models/execution_step_type.py @@ -1,42 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ExecutionStepType(str, Enum): - """ - ExecutionStepType - """ - - """ - allowed enum values - """ - APPROVE = 'APPROVE' - PERMIT = 'PERMIT' - CONTRACT_CALL = 'CONTRACT_CALL' - EXECUTE = 'EXECUTE' - SETTLEMENT = 'SETTLEMENT' - DELIVERY = 'DELIVERY' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ExecutionStepType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBFeGVjdXRpb25TdGVwVHlwZShzdHIsIEVudW0pOgogICAgIiIiCiAgICBFeGVjdXRpb25TdGVwVHlwZQogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIEFQUFJPVkUgPSAnQVBQUk9WRScKICAgIFBFUk1JVCA9ICdQRVJNSVQnCiAgICBDT05UUkFDVF9DQUxMID0gJ0NPTlRSQUNUX0NBTEwnCiAgICBFWEVDVVRFID0gJ0VYRUNVVEUnCiAgICBTRVRUTEVNRU5UID0gJ1NFVFRMRU1FTlQnCiAgICBERUxJVkVSWSA9ICdERUxJVkVSWScKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeGVjdXRpb25TdGVwVHlwZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/execution_transfer_operation.py b/fireblocks/models/execution_transfer_operation.py index e09c4c64..97b6ef4a 100644 --- a/fireblocks/models/execution_transfer_operation.py +++ b/fireblocks/models/execution_transfer_operation.py @@ -1,112 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.execution_operation_status import ExecutionOperationStatus -from fireblocks.models.transfer_operation_execution import TransferOperationExecution -from fireblocks.models.transfer_operation_preview import TransferOperationPreview -from fireblocks.models.transfer_operation_type import TransferOperationType -from fireblocks.models.transfer_validation_failure import TransferValidationFailure -from typing import Optional, Set -from typing_extensions import Self - -class ExecutionTransferOperation(BaseModel): - """ - ExecutionTransferOperation - """ # noqa: E501 - operation_id: StrictStr = Field(alias="operationId") - status: ExecutionOperationStatus - validation_failure: Optional[TransferValidationFailure] = Field(default=None, alias="validationFailure") - operation_type: TransferOperationType = Field(alias="operationType") - preview: Optional[TransferOperationPreview] = None - execution: Optional[TransferOperationExecution] = None - __properties: ClassVar[List[str]] = ["operationId", "status", "validationFailure", "operationType", "preview", "execution"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ExecutionTransferOperation from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of validation_failure - if self.validation_failure: - _dict['validationFailure'] = self.validation_failure.to_dict() - # override the default output from pydantic by calling `to_dict()` of preview - if self.preview: - _dict['preview'] = self.preview.to_dict() - # override the default output from pydantic by calling `to_dict()` of execution - if self.execution: - _dict['execution'] = self.execution.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ExecutionTransferOperation from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "operationId": obj.get("operationId"), - "status": obj.get("status"), - "validationFailure": TransferValidationFailure.from_dict(obj["validationFailure"]) if obj.get("validationFailure") is not None else None, - "operationType": obj.get("operationType"), - "preview": TransferOperationPreview.from_dict(obj["preview"]) if obj.get("preview") is not None else None, - "execution": TransferOperationExecution.from_dict(obj["execution"]) if obj.get("execution") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9vcGVyYXRpb25fc3RhdHVzIGltcG9ydCBFeGVjdXRpb25PcGVyYXRpb25TdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fZXhlY3V0aW9uIGltcG9ydCBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9wcmV2aWV3IGltcG9ydCBUcmFuc2Zlck9wZXJhdGlvblByZXZpZXcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fdHlwZSBpbXBvcnQgVHJhbnNmZXJPcGVyYXRpb25UeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfdmFsaWRhdGlvbl9mYWlsdXJlIGltcG9ydCBUcmFuc2ZlclZhbGlkYXRpb25GYWlsdXJlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEV4ZWN1dGlvblRyYW5zZmVyT3BlcmF0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEV4ZWN1dGlvblRyYW5zZmVyT3BlcmF0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBvcGVyYXRpb25faWQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJvcGVyYXRpb25JZCIpCiAgICBzdGF0dXM6IEV4ZWN1dGlvbk9wZXJhdGlvblN0YXR1cwogICAgdmFsaWRhdGlvbl9mYWlsdXJlOiBPcHRpb25hbFtUcmFuc2ZlclZhbGlkYXRpb25GYWlsdXJlXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InZhbGlkYXRpb25GYWlsdXJlIikKICAgIG9wZXJhdGlvbl90eXBlOiBUcmFuc2Zlck9wZXJhdGlvblR5cGUgPSBGaWVsZChhbGlhcz0ib3BlcmF0aW9uVHlwZSIpCiAgICBwcmV2aWV3OiBPcHRpb25hbFtUcmFuc2Zlck9wZXJhdGlvblByZXZpZXddID0gTm9uZQogICAgZXhlY3V0aW9uOiBPcHRpb25hbFtUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbl0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm9wZXJhdGlvbklkIiwgInN0YXR1cyIsICJ2YWxpZGF0aW9uRmFpbHVyZSIsICJvcGVyYXRpb25UeXBlIiwgInByZXZpZXciLCAiZXhlY3V0aW9uIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeGVjdXRpb25UcmFuc2Zlck9wZXJhdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHZhbGlkYXRpb25fZmFpbHVyZQogICAgICAgIGlmIHNlbGYudmFsaWRhdGlvbl9mYWlsdXJlOgogICAgICAgICAgICBfZGljdFsndmFsaWRhdGlvbkZhaWx1cmUnXSA9IHNlbGYudmFsaWRhdGlvbl9mYWlsdXJlLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBwcmV2aWV3CiAgICAgICAgaWYgc2VsZi5wcmV2aWV3OgogICAgICAgICAgICBfZGljdFsncHJldmlldyddID0gc2VsZi5wcmV2aWV3LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBleGVjdXRpb24KICAgICAgICBpZiBzZWxmLmV4ZWN1dGlvbjoKICAgICAgICAgICAgX2RpY3RbJ2V4ZWN1dGlvbiddID0gc2VsZi5leGVjdXRpb24udG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeGVjdXRpb25UcmFuc2Zlck9wZXJhdGlvbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJvcGVyYXRpb25JZCI6IG9iai5nZXQoIm9wZXJhdGlvbklkIiksCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgInZhbGlkYXRpb25GYWlsdXJlIjogVHJhbnNmZXJWYWxpZGF0aW9uRmFpbHVyZS5mcm9tX2RpY3Qob2JqWyJ2YWxpZGF0aW9uRmFpbHVyZSJdKSBpZiBvYmouZ2V0KCJ2YWxpZGF0aW9uRmFpbHVyZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm9wZXJhdGlvblR5cGUiOiBvYmouZ2V0KCJvcGVyYXRpb25UeXBlIiksCiAgICAgICAgICAgICJwcmV2aWV3IjogVHJhbnNmZXJPcGVyYXRpb25QcmV2aWV3LmZyb21fZGljdChvYmpbInByZXZpZXciXSkgaWYgb2JqLmdldCgicHJldmlldyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImV4ZWN1dGlvbiI6IFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uLmZyb21fZGljdChvYmpbImV4ZWN1dGlvbiJdKSBpZiBvYmouZ2V0KCJleGVjdXRpb24iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/external_account.py b/fireblocks/models/external_account.py index b66f1513..831e5fa1 100644 --- a/fireblocks/models/external_account.py +++ b/fireblocks/models/external_account.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.external_account_sender_information import ExternalAccountSenderInformation -from fireblocks.models.external_account_type import ExternalAccountType -from typing import Optional, Set -from typing_extensions import Self - -class ExternalAccount(BaseModel): - """ - ExternalAccount - """ # noqa: E501 - type: ExternalAccountType - sender_information: Optional[ExternalAccountSenderInformation] = Field(default=None, alias="senderInformation") - __properties: ClassVar[List[str]] = ["type", "senderInformation"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ExternalAccount from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of sender_information - if self.sender_information: - _dict['senderInformation'] = self.sender_information.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ExternalAccount from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "senderInformation": ExternalAccountSenderInformation.from_dict(obj["senderInformation"]) if obj.get("senderInformation") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leHRlcm5hbF9hY2NvdW50X3NlbmRlcl9pbmZvcm1hdGlvbiBpbXBvcnQgRXh0ZXJuYWxBY2NvdW50U2VuZGVySW5mb3JtYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leHRlcm5hbF9hY2NvdW50X3R5cGUgaW1wb3J0IEV4dGVybmFsQWNjb3VudFR5cGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRXh0ZXJuYWxBY2NvdW50KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEV4dGVybmFsQWNjb3VudAogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogRXh0ZXJuYWxBY2NvdW50VHlwZQogICAgc2VuZGVyX2luZm9ybWF0aW9uOiBPcHRpb25hbFtFeHRlcm5hbEFjY291bnRTZW5kZXJJbmZvcm1hdGlvbl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJzZW5kZXJJbmZvcm1hdGlvbiIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiLCAic2VuZGVySW5mb3JtYXRpb24iXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEV4dGVybmFsQWNjb3VudCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHNlbmRlcl9pbmZvcm1hdGlvbgogICAgICAgIGlmIHNlbGYuc2VuZGVyX2luZm9ybWF0aW9uOgogICAgICAgICAgICBfZGljdFsnc2VuZGVySW5mb3JtYXRpb24nXSA9IHNlbGYuc2VuZGVyX2luZm9ybWF0aW9uLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXh0ZXJuYWxBY2NvdW50IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIiksCiAgICAgICAgICAgICJzZW5kZXJJbmZvcm1hdGlvbiI6IEV4dGVybmFsQWNjb3VudFNlbmRlckluZm9ybWF0aW9uLmZyb21fZGljdChvYmpbInNlbmRlckluZm9ybWF0aW9uIl0pIGlmIG9iai5nZXQoInNlbmRlckluZm9ybWF0aW9uIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/external_account_local_bank_africa.py b/fireblocks/models/external_account_local_bank_africa.py index 3b74fd0e..7cfaf04c 100644 --- a/fireblocks/models/external_account_local_bank_africa.py +++ b/fireblocks/models/external_account_local_bank_africa.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class ExternalAccountLocalBankAfrica(BaseModel): - """ - ExternalAccountLocalBankAfrica - """ # noqa: E501 - success_redirect_url: Optional[StrictStr] = Field(default=None, description="URL to redirect the end user back to after they complete the payment on the bank/mobile provider page (e.g., the merchant checkout page)", alias="successRedirectUrl") - __properties: ClassVar[List[str]] = ["successRedirectUrl"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ExternalAccountLocalBankAfrica from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ExternalAccountLocalBankAfrica from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "successRedirectUrl": obj.get("successRedirectUrl") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBFeHRlcm5hbEFjY291bnRMb2NhbEJhbmtBZnJpY2EoQmFzZU1vZGVsKToKICAgICIiIgogICAgRXh0ZXJuYWxBY2NvdW50TG9jYWxCYW5rQWZyaWNhCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzdWNjZXNzX3JlZGlyZWN0X3VybDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlVSTCB0byByZWRpcmVjdCB0aGUgZW5kIHVzZXIgYmFjayB0byBhZnRlciB0aGV5IGNvbXBsZXRlIHRoZSBwYXltZW50IG9uIHRoZSBiYW5rL21vYmlsZSBwcm92aWRlciBwYWdlIChlLmcuLCB0aGUgbWVyY2hhbnQgY2hlY2tvdXQgcGFnZSkiLCBhbGlhcz0ic3VjY2Vzc1JlZGlyZWN0VXJsIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3VjY2Vzc1JlZGlyZWN0VXJsIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeHRlcm5hbEFjY291bnRMb2NhbEJhbmtBZnJpY2EgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXh0ZXJuYWxBY2NvdW50TG9jYWxCYW5rQWZyaWNhIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInN1Y2Nlc3NSZWRpcmVjdFVybCI6IG9iai5nZXQoInN1Y2Nlc3NSZWRpcmVjdFVybCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/external_account_mobile_money.py b/fireblocks/models/external_account_mobile_money.py index 99c8fa2a..679a467f 100644 --- a/fireblocks/models/external_account_mobile_money.py +++ b/fireblocks/models/external_account_mobile_money.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from fireblocks.models.external_account_mobile_money_provider import ExternalAccountMobileMoneyProvider -from fireblocks.models.external_account_mobile_money_type import ExternalAccountMobileMoneyType -from typing import Optional, Set -from typing_extensions import Self - -class ExternalAccountMobileMoney(BaseModel): - """ - ExternalAccountMobileMoney - """ # noqa: E501 - type: ExternalAccountMobileMoneyType - mobile_phone_number: Annotated[str, Field(strict=True)] = Field(description="Mobile phone number in E.164 format", alias="mobilePhoneNumber") - provider: ExternalAccountMobileMoneyProvider - email: StrictStr - success_redirect_url: Optional[StrictStr] = Field(default=None, description="URL to redirect the end user back to after they complete the payment on the bank/mobile provider page (e.g., the merchant checkout page)", alias="successRedirectUrl") - __properties: ClassVar[List[str]] = ["type", "mobilePhoneNumber", "provider", "email", "successRedirectUrl"] - - @field_validator('mobile_phone_number') - def mobile_phone_number_validate_regular_expression(cls, value): - """Validates the regular expression""" - if not re.match(r"^\+[1-9]\d{1,14}$", value): - raise ValueError(r"must validate the regular expression /^\+[1-9]\d{1,14}$/") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ExternalAccountMobileMoney from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ExternalAccountMobileMoney from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "mobilePhoneNumber": obj.get("mobilePhoneNumber"), - "provider": obj.get("provider"), - "email": obj.get("email"), - "successRedirectUrl": obj.get("successRedirectUrl") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX2FjY291bnRfbW9iaWxlX21vbmV5X3Byb3ZpZGVyIGltcG9ydCBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leVByb3ZpZGVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXh0ZXJuYWxfYWNjb3VudF9tb2JpbGVfbW9uZXlfdHlwZSBpbXBvcnQgRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXlUeXBlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leVR5cGUKICAgIG1vYmlsZV9waG9uZV9udW1iZXI6IEFubm90YXRlZFtzdHIsIEZpZWxkKHN0cmljdD1UcnVlKV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iTW9iaWxlIHBob25lIG51bWJlciBpbiBFLjE2NCBmb3JtYXQiLCBhbGlhcz0ibW9iaWxlUGhvbmVOdW1iZXIiKQogICAgcHJvdmlkZXI6IEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5UHJvdmlkZXIKICAgIGVtYWlsOiBTdHJpY3RTdHIKICAgIHN1Y2Nlc3NfcmVkaXJlY3RfdXJsOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVVJMIHRvIHJlZGlyZWN0IHRoZSBlbmQgdXNlciBiYWNrIHRvIGFmdGVyIHRoZXkgY29tcGxldGUgdGhlIHBheW1lbnQgb24gdGhlIGJhbmsvbW9iaWxlIHByb3ZpZGVyIHBhZ2UgKGUuZy4sIHRoZSBtZXJjaGFudCBjaGVja291dCBwYWdlKSIsIGFsaWFzPSJzdWNjZXNzUmVkaXJlY3RVcmwiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgIm1vYmlsZVBob25lTnVtYmVyIiwgInByb3ZpZGVyIiwgImVtYWlsIiwgInN1Y2Nlc3NSZWRpcmVjdFVybCJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignbW9iaWxlX3Bob25lX251bWJlcicpCiAgICBkZWYgbW9iaWxlX3Bob25lX251bWJlcl92YWxpZGF0ZV9yZWd1bGFyX2V4cHJlc3Npb24oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSByZWd1bGFyIGV4cHJlc3Npb24iIiIKICAgICAgICBpZiBub3QgcmUubWF0Y2gociJeXCtbMS05XVxkezEsMTR9JCIsIHZhbHVlKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihyIm11c3QgdmFsaWRhdGUgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiAvXlwrWzEtOV1cZHsxLDE0fSQvIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAibW9iaWxlUGhvbmVOdW1iZXIiOiBvYmouZ2V0KCJtb2JpbGVQaG9uZU51bWJlciIpLAogICAgICAgICAgICAicHJvdmlkZXIiOiBvYmouZ2V0KCJwcm92aWRlciIpLAogICAgICAgICAgICAiZW1haWwiOiBvYmouZ2V0KCJlbWFpbCIpLAogICAgICAgICAgICAic3VjY2Vzc1JlZGlyZWN0VXJsIjogb2JqLmdldCgic3VjY2Vzc1JlZGlyZWN0VXJsIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/external_account_mobile_money_provider.py b/fireblocks/models/external_account_mobile_money_provider.py index 337c7c89..872d6006 100644 --- a/fireblocks/models/external_account_mobile_money_provider.py +++ b/fireblocks/models/external_account_mobile_money_provider.py @@ -1,41 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ExternalAccountMobileMoneyProvider(str, Enum): - """ - ExternalAccountMobileMoneyProvider - """ - - """ - allowed enum values - """ - M_PESA = 'M_PESA' - AIRTEL = 'AIRTEL' - MTN = 'MTN' - TIGO = 'TIGO' - ORANGE = 'ORANGE' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ExternalAccountMobileMoneyProvider from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leVByb3ZpZGVyKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5UHJvdmlkZXIKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBNX1BFU0EgPSAnTV9QRVNBJwogICAgQUlSVEVMID0gJ0FJUlRFTCcKICAgIE1UTiA9ICdNVE4nCiAgICBUSUdPID0gJ1RJR08nCiAgICBPUkFOR0UgPSAnT1JBTkdFJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5UHJvdmlkZXIgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/external_account_mobile_money_type.py b/fireblocks/models/external_account_mobile_money_type.py index df4bb1cb..25be7577 100644 --- a/fireblocks/models/external_account_mobile_money_type.py +++ b/fireblocks/models/external_account_mobile_money_type.py @@ -1,37 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ExternalAccountMobileMoneyType(str, Enum): - """ - ExternalAccountMobileMoneyType - """ - - """ - allowed enum values - """ - MOBILE_MONEY_RAIL = 'MOBILE_MONEY_RAIL' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ExternalAccountMobileMoneyType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leVR5cGUoc3RyLCBFbnVtKToKICAgICIiIgogICAgRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXlUeXBlCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgTU9CSUxFX01PTkVZX1JBSUwgPSAnTU9CSUxFX01PTkVZX1JBSUwnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXlUeXBlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/external_account_sender_information.py b/fireblocks/models/external_account_sender_information.py index 3d22e348..df686a30 100644 --- a/fireblocks/models/external_account_sender_information.py +++ b/fireblocks/models/external_account_sender_information.py @@ -1,138 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.external_account_local_bank_africa import ExternalAccountLocalBankAfrica -from fireblocks.models.external_account_mobile_money import ExternalAccountMobileMoney -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -EXTERNALACCOUNTSENDERINFORMATION_ONE_OF_SCHEMAS = ["ExternalAccountLocalBankAfrica", "ExternalAccountMobileMoney"] - -class ExternalAccountSenderInformation(BaseModel): - """ - Additional data for the external account, depending on the type used. - """ - # data type: ExternalAccountMobileMoney - oneof_schema_1_validator: Optional[ExternalAccountMobileMoney] = None - # data type: ExternalAccountLocalBankAfrica - oneof_schema_2_validator: Optional[ExternalAccountLocalBankAfrica] = None - actual_instance: Optional[Union[ExternalAccountLocalBankAfrica, ExternalAccountMobileMoney]] = None - one_of_schemas: Set[str] = { "ExternalAccountLocalBankAfrica", "ExternalAccountMobileMoney" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = ExternalAccountSenderInformation.model_construct() - error_messages = [] - match = 0 - # validate data type: ExternalAccountMobileMoney - if not isinstance(v, ExternalAccountMobileMoney): - error_messages.append(f"Error! Input type `{type(v)}` is not `ExternalAccountMobileMoney`") - else: - match += 1 - # validate data type: ExternalAccountLocalBankAfrica - if not isinstance(v, ExternalAccountLocalBankAfrica): - error_messages.append(f"Error! Input type `{type(v)}` is not `ExternalAccountLocalBankAfrica`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in ExternalAccountSenderInformation with oneOf schemas: ExternalAccountLocalBankAfrica, ExternalAccountMobileMoney. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in ExternalAccountSenderInformation with oneOf schemas: ExternalAccountLocalBankAfrica, ExternalAccountMobileMoney. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into ExternalAccountMobileMoney - try: - instance.actual_instance = ExternalAccountMobileMoney.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into ExternalAccountLocalBankAfrica - try: - instance.actual_instance = ExternalAccountLocalBankAfrica.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into ExternalAccountSenderInformation with oneOf schemas: ExternalAccountLocalBankAfrica, ExternalAccountMobileMoney. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into ExternalAccountSenderInformation with oneOf schemas: ExternalAccountLocalBankAfrica, ExternalAccountMobileMoney. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], ExternalAccountLocalBankAfrica, ExternalAccountMobileMoney]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXh0ZXJuYWxfYWNjb3VudF9sb2NhbF9iYW5rX2FmcmljYSBpbXBvcnQgRXh0ZXJuYWxBY2NvdW50TG9jYWxCYW5rQWZyaWNhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXh0ZXJuYWxfYWNjb3VudF9tb2JpbGVfbW9uZXkgaW1wb3J0IEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5CmZyb20gcHlkYW50aWMgaW1wb3J0IFN0cmljdFN0ciwgRmllbGQKZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uLCBMaXN0LCBTZXQsIE9wdGlvbmFsLCBEaWN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IExpdGVyYWwsIFNlbGYKCkVYVEVSTkFMQUNDT1VOVFNFTkRFUklORk9STUFUSU9OX09ORV9PRl9TQ0hFTUFTID0gWyJFeHRlcm5hbEFjY291bnRMb2NhbEJhbmtBZnJpY2EiLCAiRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXkiXQoKY2xhc3MgRXh0ZXJuYWxBY2NvdW50U2VuZGVySW5mb3JtYXRpb24oQmFzZU1vZGVsKToKICAgICIiIgogICAgQWRkaXRpb25hbCBkYXRhIGZvciB0aGUgZXh0ZXJuYWwgYWNjb3VudCwgZGVwZW5kaW5nIG9uIHRoZSB0eXBlIHVzZWQuCiAgICAiIiIKICAgICMgZGF0YSB0eXBlOiBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leQogICAgb25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yOiBPcHRpb25hbFtFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leV0gPSBOb25lCiAgICAjIGRhdGEgdHlwZTogRXh0ZXJuYWxBY2NvdW50TG9jYWxCYW5rQWZyaWNhCiAgICBvbmVvZl9zY2hlbWFfMl92YWxpZGF0b3I6IE9wdGlvbmFsW0V4dGVybmFsQWNjb3VudExvY2FsQmFua0FmcmljYV0gPSBOb25lCiAgICBhY3R1YWxfaW5zdGFuY2U6IE9wdGlvbmFsW1VuaW9uW0V4dGVybmFsQWNjb3VudExvY2FsQmFua0FmcmljYSwgRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXldXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgIkV4dGVybmFsQWNjb3VudExvY2FsQmFua0FmcmljYSIsICJFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leSIgfQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKSAtPiBOb25lOgogICAgICAgIGlmIGFyZ3M6CiAgICAgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIG9ubHkgMSBpcyBhbGxvd2VkIHRvIHNldCBgYWN0dWFsX2luc3RhbmNlYCIpCiAgICAgICAgICAgIGlmIGt3YXJnczoKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwga2V5d29yZCBhcmd1bWVudHMgY2Fubm90IGJlIHVzZWQuIikKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhhY3R1YWxfaW5zdGFuY2U9YXJnc1swXSkKICAgICAgICBlbHNlOgogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FjdHVhbF9pbnN0YW5jZScpCiAgICBkZWYgYWN0dWFsX2luc3RhbmNlX211c3RfdmFsaWRhdGVfb25lb2YoY2xzLCB2KToKICAgICAgICBpbnN0YW5jZSA9IEV4dGVybmFsQWNjb3VudFNlbmRlckluZm9ybWF0aW9uLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leQogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5KToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leWAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogRXh0ZXJuYWxBY2NvdW50TG9jYWxCYW5rQWZyaWNhCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgRXh0ZXJuYWxBY2NvdW50TG9jYWxCYW5rQWZyaWNhKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBFeHRlcm5hbEFjY291bnRMb2NhbEJhbmtBZnJpY2FgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIEV4dGVybmFsQWNjb3VudFNlbmRlckluZm9ybWF0aW9uIHdpdGggb25lT2Ygc2NoZW1hczogRXh0ZXJuYWxBY2NvdW50TG9jYWxCYW5rQWZyaWNhLCBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leS4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBFeHRlcm5hbEFjY291bnRTZW5kZXJJbmZvcm1hdGlvbiB3aXRoIG9uZU9mIHNjaGVtYXM6IEV4dGVybmFsQWNjb3VudExvY2FsQmFua0FmcmljYSwgRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXkuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBVbmlvbltzdHIsIERpY3Rbc3RyLCBBbnldXSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCgogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5CiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leS5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBFeHRlcm5hbEFjY291bnRMb2NhbEJhbmtBZnJpY2EKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IEV4dGVybmFsQWNjb3VudExvY2FsQmFua0FmcmljYS5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIEV4dGVybmFsQWNjb3VudFNlbmRlckluZm9ybWF0aW9uIHdpdGggb25lT2Ygc2NoZW1hczogRXh0ZXJuYWxBY2NvdW50TG9jYWxCYW5rQWZyaWNhLCBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leS4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBFeHRlcm5hbEFjY291bnRTZW5kZXJJbmZvcm1hdGlvbiB3aXRoIG9uZU9mIHNjaGVtYXM6IEV4dGVybmFsQWNjb3VudExvY2FsQmFua0FmcmljYSwgRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXkuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gIm51bGwiCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19qc29uIikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24pOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbigpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi5hY3R1YWxfaW5zdGFuY2UpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gT3B0aW9uYWxbVW5pb25bRGljdFtzdHIsIEFueV0sIEV4dGVybmFsQWNjb3VudExvY2FsQmFua0FmcmljYSwgRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXldXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgcHJpbWl0aXZlIHR5cGUKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/external_account_type.py b/fireblocks/models/external_account_type.py index 5bc8ccd4..60872414 100644 --- a/fireblocks/models/external_account_type.py +++ b/fireblocks/models/external_account_type.py @@ -1,37 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ExternalAccountType(str, Enum): - """ - ExternalAccountType - """ - - """ - allowed enum values - """ - EXTERNAL = 'EXTERNAL' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ExternalAccountType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBFeHRlcm5hbEFjY291bnRUeXBlKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIEV4dGVybmFsQWNjb3VudFR5cGUKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBFWFRFUk5BTCA9ICdFWFRFUk5BTCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeHRlcm5hbEFjY291bnRUeXBlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/external_wallet_asset.py b/fireblocks/models/external_wallet_asset.py index 9dcdef9b..d08dede9 100644 --- a/fireblocks/models/external_wallet_asset.py +++ b/fireblocks/models/external_wallet_asset.py @@ -1,111 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.config_change_request_status import ConfigChangeRequestStatus -from fireblocks.models.wallet_asset_additional_info import WalletAssetAdditionalInfo -from typing import Optional, Set -from typing_extensions import Self - -class ExternalWalletAsset(BaseModel): - """ - ExternalWalletAsset - """ # noqa: E501 - id: Optional[StrictStr] = None - status: Optional[ConfigChangeRequestStatus] = None - address: Optional[StrictStr] = None - balance: Optional[Union[StrictFloat, StrictInt]] = None - locked_amount: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="lockedAmount") - tag: Optional[StrictStr] = None - activation_time: Optional[StrictStr] = Field(default=None, alias="activationTime") - additional_info: Optional[List[WalletAssetAdditionalInfo]] = Field(default=None, alias="additionalInfo") - __properties: ClassVar[List[str]] = ["id", "status", "address", "balance", "lockedAmount", "tag", "activationTime", "additionalInfo"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ExternalWalletAsset from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in additional_info (list) - _items = [] - if self.additional_info: - for _item_additional_info in self.additional_info: - if _item_additional_info: - _items.append(_item_additional_info.to_dict()) - _dict['additionalInfo'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ExternalWalletAsset from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "status": obj.get("status"), - "address": obj.get("address"), - "balance": obj.get("balance"), - "lockedAmount": obj.get("lockedAmount"), - "tag": obj.get("tag"), - "activationTime": obj.get("activationTime"), - "additionalInfo": [WalletAssetAdditionalInfo.from_dict(_item) for _item in obj["additionalInfo"]] if obj.get("additionalInfo") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb25maWdfY2hhbmdlX3JlcXVlc3Rfc3RhdHVzIGltcG9ydCBDb25maWdDaGFuZ2VSZXF1ZXN0U3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud2FsbGV0X2Fzc2V0X2FkZGl0aW9uYWxfaW5mbyBpbXBvcnQgV2FsbGV0QXNzZXRBZGRpdGlvbmFsSW5mbwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBFeHRlcm5hbFdhbGxldEFzc2V0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEV4dGVybmFsV2FsbGV0QXNzZXQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgc3RhdHVzOiBPcHRpb25hbFtDb25maWdDaGFuZ2VSZXF1ZXN0U3RhdHVzXSA9IE5vbmUKICAgIGFkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBiYWxhbmNlOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBOb25lCiAgICBsb2NrZWRfYW1vdW50OiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJsb2NrZWRBbW91bnQiKQogICAgdGFnOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgYWN0aXZhdGlvbl90aW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYWN0aXZhdGlvblRpbWUiKQogICAgYWRkaXRpb25hbF9pbmZvOiBPcHRpb25hbFtMaXN0W1dhbGxldEFzc2V0QWRkaXRpb25hbEluZm9dXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImFkZGl0aW9uYWxJbmZvIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAic3RhdHVzIiwgImFkZHJlc3MiLCAiYmFsYW5jZSIsICJsb2NrZWRBbW91bnQiLCAidGFnIiwgImFjdGl2YXRpb25UaW1lIiwgImFkZGl0aW9uYWxJbmZvIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBFeHRlcm5hbFdhbGxldEFzc2V0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGFkZGl0aW9uYWxfaW5mbyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuYWRkaXRpb25hbF9pbmZvOgogICAgICAgICAgICBmb3IgX2l0ZW1fYWRkaXRpb25hbF9pbmZvIGluIHNlbGYuYWRkaXRpb25hbF9pbmZvOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fYWRkaXRpb25hbF9pbmZvOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fYWRkaXRpb25hbF9pbmZvLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2FkZGl0aW9uYWxJbmZvJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEV4dGVybmFsV2FsbGV0QXNzZXQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAic3RhdHVzIjogb2JqLmdldCgic3RhdHVzIiksCiAgICAgICAgICAgICJhZGRyZXNzIjogb2JqLmdldCgiYWRkcmVzcyIpLAogICAgICAgICAgICAiYmFsYW5jZSI6IG9iai5nZXQoImJhbGFuY2UiKSwKICAgICAgICAgICAgImxvY2tlZEFtb3VudCI6IG9iai5nZXQoImxvY2tlZEFtb3VudCIpLAogICAgICAgICAgICAidGFnIjogb2JqLmdldCgidGFnIiksCiAgICAgICAgICAgICJhY3RpdmF0aW9uVGltZSI6IG9iai5nZXQoImFjdGl2YXRpb25UaW1lIiksCiAgICAgICAgICAgICJhZGRpdGlvbmFsSW5mbyI6IFtXYWxsZXRBc3NldEFkZGl0aW9uYWxJbmZvLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiYWRkaXRpb25hbEluZm8iXV0gaWYgb2JqLmdldCgiYWRkaXRpb25hbEluZm8iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/extra_parameters.py b/fireblocks/models/extra_parameters.py index 1a481e0e..8aef5eae 100644 --- a/fireblocks/models/extra_parameters.py +++ b/fireblocks/models/extra_parameters.py @@ -1,148 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class ExtraParameters(BaseModel): - """ - Additional protocol / operation specific key-value parameters: For UTXO-based blockchain input selection, add the key `inputsSelection` with the value set to the [input selection structure.](https://developers.fireblocks.com/reference/transaction-objects#inputsselection) The inputs can be retrieved from the [Retrieve Unspent Inputs endpoint.](https://developers.fireblocks.com/reference/get_vault-accounts-vaultaccountid-assetid-unspent-inputs) For `RAW` operations, add the key `rawMessageData` with the value set to the [raw message data structure.](https://developers.fireblocks.com/reference/raw-signing-objects#rawmessagedata) For `CONTRACT_CALL` operations, add the key `contractCallData` with the value set to the Ethereum smart contract Application Binary Interface (ABI) payload. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions. For **exchange compliance (e.g., Binance) and Travel Rule purposes**, include the key `piiData` containing a **custom JSON structure** with Personally Identifiable Information (PII) relevant to the transaction. This data must be fully **encrypted by the sender** before being submitted to the Fireblocks API. The recommended encryption method is **hybrid encryption** using AES-256-GCM for the payload and RSA-OAEP for key exchange, with the recipient exchange's public key. [development libraries](https://developers.fireblocks.com/docs/a-developers-guide-to-constructing-encrypted-pii-messages-for-binance-via-fireblocks) **Note:** `rawMessageData`, `contractCallData`, and `inputsSelection` cannot be used together in the same call. - """ # noqa: E501 - node_controls: Optional[Dict[str, Any]] = Field(default=None, alias="nodeControls") - raw_message_data: Optional[Dict[str, Any]] = Field(default=None, alias="rawMessageData") - contract_call_data: Optional[StrictStr] = Field(default=None, alias="contractCallData") - program_call_data: Optional[StrictStr] = Field(default=None, alias="programCallData") - inputs_selection: Optional[Dict[str, Any]] = Field(default=None, alias="inputsSelection") - allow_base_asset_address: Optional[StrictBool] = Field(default=None, alias="allowBaseAssetAddress") - pii_data: Optional[Dict[str, Any]] = Field(default=None, alias="piiData") - additional_properties: Dict[str, Any] = {} - __properties: ClassVar[List[str]] = ["nodeControls", "rawMessageData", "contractCallData", "programCallData", "inputsSelection", "allowBaseAssetAddress", "piiData"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ExtraParameters from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - * Fields in `self.additional_properties` are added to the output dict. - """ - excluded_fields: Set[str] = set([ - "additional_properties", - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # puts key-value pairs in additional_properties in the top level - if self.additional_properties is not None: - for _key, _value in self.additional_properties.items(): - _dict[_key] = _value - - # set to None if node_controls (nullable) is None - # and model_fields_set contains the field - if self.node_controls is None and "node_controls" in self.model_fields_set: - _dict['nodeControls'] = None - - # set to None if raw_message_data (nullable) is None - # and model_fields_set contains the field - if self.raw_message_data is None and "raw_message_data" in self.model_fields_set: - _dict['rawMessageData'] = None - - # set to None if contract_call_data (nullable) is None - # and model_fields_set contains the field - if self.contract_call_data is None and "contract_call_data" in self.model_fields_set: - _dict['contractCallData'] = None - - # set to None if program_call_data (nullable) is None - # and model_fields_set contains the field - if self.program_call_data is None and "program_call_data" in self.model_fields_set: - _dict['programCallData'] = None - - # set to None if inputs_selection (nullable) is None - # and model_fields_set contains the field - if self.inputs_selection is None and "inputs_selection" in self.model_fields_set: - _dict['inputsSelection'] = None - - # set to None if allow_base_asset_address (nullable) is None - # and model_fields_set contains the field - if self.allow_base_asset_address is None and "allow_base_asset_address" in self.model_fields_set: - _dict['allowBaseAssetAddress'] = None - - # set to None if pii_data (nullable) is None - # and model_fields_set contains the field - if self.pii_data is None and "pii_data" in self.model_fields_set: - _dict['piiData'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ExtraParameters from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "nodeControls": obj.get("nodeControls"), - "rawMessageData": obj.get("rawMessageData"), - "contractCallData": obj.get("contractCallData"), - "programCallData": obj.get("programCallData"), - "inputsSelection": obj.get("inputsSelection"), - "allowBaseAssetAddress": obj.get("allowBaseAssetAddress"), - "piiData": obj.get("piiData") - }) - # store additional fields in additional_properties - for _key in obj.keys(): - if _key not in cls.__properties: - _obj.additional_properties[_key] = obj.get(_key) - - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBFeHRyYVBhcmFtZXRlcnMoQmFzZU1vZGVsKToKICAgICIiIgogICAgQWRkaXRpb25hbCBwcm90b2NvbCAvIG9wZXJhdGlvbiBzcGVjaWZpYyBrZXktdmFsdWUgcGFyYW1ldGVyczogIEZvciBVVFhPLWJhc2VkIGJsb2NrY2hhaW4gaW5wdXQgc2VsZWN0aW9uLCBhZGQgdGhlIGtleSBgaW5wdXRzU2VsZWN0aW9uYCB3aXRoIHRoZSB2YWx1ZSBzZXQgdG8gdGhlIFtpbnB1dCBzZWxlY3Rpb24gc3RydWN0dXJlLl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS90cmFuc2FjdGlvbi1vYmplY3RzI2lucHV0c3NlbGVjdGlvbikgVGhlIGlucHV0cyBjYW4gYmUgcmV0cmlldmVkIGZyb20gdGhlIFtSZXRyaWV2ZSBVbnNwZW50IElucHV0cyBlbmRwb2ludC5dKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9yZWZlcmVuY2UvZ2V0X3ZhdWx0LWFjY291bnRzLXZhdWx0YWNjb3VudGlkLWFzc2V0aWQtdW5zcGVudC1pbnB1dHMpICBGb3IgYFJBV2Agb3BlcmF0aW9ucywgYWRkIHRoZSBrZXkgYHJhd01lc3NhZ2VEYXRhYCB3aXRoIHRoZSB2YWx1ZSBzZXQgdG8gdGhlIFtyYXcgbWVzc2FnZSBkYXRhIHN0cnVjdHVyZS5dKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9yZWZlcmVuY2UvcmF3LXNpZ25pbmctb2JqZWN0cyNyYXdtZXNzYWdlZGF0YSkgIEZvciBgQ09OVFJBQ1RfQ0FMTGAgb3BlcmF0aW9ucywgYWRkIHRoZSBrZXkgYGNvbnRyYWN0Q2FsbERhdGFgIHdpdGggdGhlIHZhbHVlIHNldCB0byB0aGUgRXRoZXJldW0gc21hcnQgY29udHJhY3QgQXBwbGljYXRpb24gQmluYXJ5IEludGVyZmFjZSAoQUJJKSBwYXlsb2FkLiBUaGUgRmlyZWJsb2NrcyBbZGV2ZWxvcG1lbnQgbGlicmFyaWVzXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vZG9jcy9ldGhlcmV1bS1kZXZlbG9wbWVudCNjb252ZW5pZW5jZS1saWJyYXJpZXMpIGFyZSByZWNvbW1lbmRlZCBmb3IgYnVpbGRpbmcgY29udHJhY3QgY2FsbCB0cmFuc2FjdGlvbnMuIEZvciAqKmV4Y2hhbmdlIGNvbXBsaWFuY2UgKGUuZy4sIEJpbmFuY2UpIGFuZCBUcmF2ZWwgUnVsZSBwdXJwb3NlcyoqLCBpbmNsdWRlIHRoZSBrZXkgYHBpaURhdGFgIGNvbnRhaW5pbmcgYSAqKmN1c3RvbSBKU09OIHN0cnVjdHVyZSoqIHdpdGggUGVyc29uYWxseSBJZGVudGlmaWFibGUgSW5mb3JtYXRpb24gKFBJSSkgcmVsZXZhbnQgdG8gdGhlIHRyYW5zYWN0aW9uLiBUaGlzIGRhdGEgbXVzdCBiZSBmdWxseSAqKmVuY3J5cHRlZCBieSB0aGUgc2VuZGVyKiogYmVmb3JlIGJlaW5nIHN1Ym1pdHRlZCB0byB0aGUgRmlyZWJsb2NrcyBBUEkuIFRoZSByZWNvbW1lbmRlZCBlbmNyeXB0aW9uIG1ldGhvZCBpcyAqKmh5YnJpZCBlbmNyeXB0aW9uKiogdXNpbmcgQUVTLTI1Ni1HQ00gZm9yIHRoZSBwYXlsb2FkIGFuZCBSU0EtT0FFUCBmb3Iga2V5IGV4Y2hhbmdlLCB3aXRoIHRoZSByZWNpcGllbnQgZXhjaGFuZ2UncyBwdWJsaWMga2V5LiBbZGV2ZWxvcG1lbnQgbGlicmFyaWVzXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vZG9jcy9hLWRldmVsb3BlcnMtZ3VpZGUtdG8tY29uc3RydWN0aW5nLWVuY3J5cHRlZC1waWktbWVzc2FnZXMtZm9yLWJpbmFuY2UtdmlhLWZpcmVibG9ja3MpICAqKk5vdGU6KiogYHJhd01lc3NhZ2VEYXRhYCwgYGNvbnRyYWN0Q2FsbERhdGFgLCBhbmQgYGlucHV0c1NlbGVjdGlvbmAgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIgaW4gdGhlIHNhbWUgY2FsbC4gCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBub2RlX2NvbnRyb2xzOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJub2RlQ29udHJvbHMiKQogICAgcmF3X21lc3NhZ2VfZGF0YTogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0icmF3TWVzc2FnZURhdGEiKQogICAgY29udHJhY3RfY2FsbF9kYXRhOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iY29udHJhY3RDYWxsRGF0YSIpCiAgICBwcm9ncmFtX2NhbGxfZGF0YTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InByb2dyYW1DYWxsRGF0YSIpCiAgICBpbnB1dHNfc2VsZWN0aW9uOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJpbnB1dHNTZWxlY3Rpb24iKQogICAgYWxsb3dfYmFzZV9hc3NldF9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImFsbG93QmFzZUFzc2V0QWRkcmVzcyIpCiAgICBwaWlfZGF0YTogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0icGlpRGF0YSIpCiAgICBhZGRpdGlvbmFsX3Byb3BlcnRpZXM6IERpY3Rbc3RyLCBBbnldID0ge30KICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibm9kZUNvbnRyb2xzIiwgInJhd01lc3NhZ2VEYXRhIiwgImNvbnRyYWN0Q2FsbERhdGEiLCAicHJvZ3JhbUNhbGxEYXRhIiwgImlucHV0c1NlbGVjdGlvbiIsICJhbGxvd0Jhc2VBc3NldEFkZHJlc3MiLCAicGlpRGF0YSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXh0cmFQYXJhbWV0ZXJzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAqIEZpZWxkcyBpbiBgc2VsZi5hZGRpdGlvbmFsX3Byb3BlcnRpZXNgIGFyZSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgICAgICJhZGRpdGlvbmFsX3Byb3BlcnRpZXMiLAogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgcHV0cyBrZXktdmFsdWUgcGFpcnMgaW4gYWRkaXRpb25hbF9wcm9wZXJ0aWVzIGluIHRoZSB0b3AgbGV2ZWwKICAgICAgICBpZiBzZWxmLmFkZGl0aW9uYWxfcHJvcGVydGllcyBpcyBub3QgTm9uZToKICAgICAgICAgICAgZm9yIF9rZXksIF92YWx1ZSBpbiBzZWxmLmFkZGl0aW9uYWxfcHJvcGVydGllcy5pdGVtcygpOgogICAgICAgICAgICAgICAgX2RpY3RbX2tleV0gPSBfdmFsdWUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBub2RlX2NvbnRyb2xzIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5ub2RlX2NvbnRyb2xzIGlzIE5vbmUgYW5kICJub2RlX2NvbnRyb2xzIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wydub2RlQ29udHJvbHMnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiByYXdfbWVzc2FnZV9kYXRhIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5yYXdfbWVzc2FnZV9kYXRhIGlzIE5vbmUgYW5kICJyYXdfbWVzc2FnZV9kYXRhIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydyYXdNZXNzYWdlRGF0YSddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGNvbnRyYWN0X2NhbGxfZGF0YSAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuY29udHJhY3RfY2FsbF9kYXRhIGlzIE5vbmUgYW5kICJjb250cmFjdF9jYWxsX2RhdGEiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2NvbnRyYWN0Q2FsbERhdGEnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBwcm9ncmFtX2NhbGxfZGF0YSAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYucHJvZ3JhbV9jYWxsX2RhdGEgaXMgTm9uZSBhbmQgInByb2dyYW1fY2FsbF9kYXRhIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wydwcm9ncmFtQ2FsbERhdGEnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBpbnB1dHNfc2VsZWN0aW9uIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5pbnB1dHNfc2VsZWN0aW9uIGlzIE5vbmUgYW5kICJpbnB1dHNfc2VsZWN0aW9uIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydpbnB1dHNTZWxlY3Rpb24nXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBhbGxvd19iYXNlX2Fzc2V0X2FkZHJlc3MgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmFsbG93X2Jhc2VfYXNzZXRfYWRkcmVzcyBpcyBOb25lIGFuZCAiYWxsb3dfYmFzZV9hc3NldF9hZGRyZXNzIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydhbGxvd0Jhc2VBc3NldEFkZHJlc3MnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBwaWlfZGF0YSAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYucGlpX2RhdGEgaXMgTm9uZSBhbmQgInBpaV9kYXRhIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydwaWlEYXRhJ10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRXh0cmFQYXJhbWV0ZXJzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm5vZGVDb250cm9scyI6IG9iai5nZXQoIm5vZGVDb250cm9scyIpLAogICAgICAgICAgICAicmF3TWVzc2FnZURhdGEiOiBvYmouZ2V0KCJyYXdNZXNzYWdlRGF0YSIpLAogICAgICAgICAgICAiY29udHJhY3RDYWxsRGF0YSI6IG9iai5nZXQoImNvbnRyYWN0Q2FsbERhdGEiKSwKICAgICAgICAgICAgInByb2dyYW1DYWxsRGF0YSI6IG9iai5nZXQoInByb2dyYW1DYWxsRGF0YSIpLAogICAgICAgICAgICAiaW5wdXRzU2VsZWN0aW9uIjogb2JqLmdldCgiaW5wdXRzU2VsZWN0aW9uIiksCiAgICAgICAgICAgICJhbGxvd0Jhc2VBc3NldEFkZHJlc3MiOiBvYmouZ2V0KCJhbGxvd0Jhc2VBc3NldEFkZHJlc3MiKSwKICAgICAgICAgICAgInBpaURhdGEiOiBvYmouZ2V0KCJwaWlEYXRhIikKICAgICAgICB9KQogICAgICAgICMgc3RvcmUgYWRkaXRpb25hbCBmaWVsZHMgaW4gYWRkaXRpb25hbF9wcm9wZXJ0aWVzCiAgICAgICAgZm9yIF9rZXkgaW4gb2JqLmtleXMoKToKICAgICAgICAgICAgaWYgX2tleSBub3QgaW4gY2xzLl9fcHJvcGVydGllczoKICAgICAgICAgICAgICAgIF9vYmouYWRkaXRpb25hbF9wcm9wZXJ0aWVzW19rZXldID0gb2JqLmdldChfa2V5KQoKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/failure.py b/fireblocks/models/failure.py index 25b8de14..f3b10f0b 100644 --- a/fireblocks/models/failure.py +++ b/fireblocks/models/failure.py @@ -1,89 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List -from fireblocks.models.failure_reason import FailureReason -from typing import Optional, Set -from typing_extensions import Self - -class Failure(BaseModel): - """ - Failure - """ # noqa: E501 - reason: FailureReason - __properties: ClassVar[List[str]] = ["reason"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of Failure from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of Failure from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "reason": obj.get("reason") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmFpbHVyZV9yZWFzb24gaW1wb3J0IEZhaWx1cmVSZWFzb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRmFpbHVyZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBGYWlsdXJlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICByZWFzb246IEZhaWx1cmVSZWFzb24KICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicmVhc29uIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGYWlsdXJlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEZhaWx1cmUgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicmVhc29uIjogb2JqLmdldCgicmVhc29uIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/failure_reason.py b/fireblocks/models/failure_reason.py index 70506ad3..9c317f21 100644 --- a/fireblocks/models/failure_reason.py +++ b/fireblocks/models/failure_reason.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class FailureReason(str, Enum): - """ - FailureReason - """ - - """ - allowed enum values - """ - INSUFFICIENT_FUNDS = 'INSUFFICIENT_FUNDS' - UNKNOWN_REASON = 'UNKNOWN_REASON' - INITIATE_PAYMENT_FAILURE = 'INITIATE_PAYMENT_FAILURE' - POLICY_REJECTION = 'POLICY_REJECTION' - TRANSACTION_FAILED = 'TRANSACTION_FAILED' - ACCOUNT_NOT_ACTIVE = 'ACCOUNT_NOT_ACTIVE' - ACCOUNT_NOT_FOUND = 'ACCOUNT_NOT_FOUND' - BAD_REQUEST = 'BAD_REQUEST' - QUOTE_NOT_READY = 'QUOTE_NOT_READY' - INVALID_DATA = 'INVALID_DATA' - UNSUPPORTED_CONVERSION = 'UNSUPPORTED_CONVERSION' - UNSUPPORTED_RAMP_METHOD = 'UNSUPPORTED_RAMP_METHOD' - REFUNDED = 'REFUNDED' - FAILED_BY_PROVIDER = 'FAILED_BY_PROVIDER' - ORDER_EXPIRED = 'ORDER_EXPIRED' - TRANSACTION_CANCELLED = 'TRANSACTION_CANCELLED' - TRANSACTION_REJECTED = 'TRANSACTION_REJECTED' - TRANSACTION_BLOCKED = 'TRANSACTION_BLOCKED' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of FailureReason from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBGYWlsdXJlUmVhc29uKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIEZhaWx1cmVSZWFzb24KICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBJTlNVRkZJQ0lFTlRfRlVORFMgPSAnSU5TVUZGSUNJRU5UX0ZVTkRTJwogICAgVU5LTk9XTl9SRUFTT04gPSAnVU5LTk9XTl9SRUFTT04nCiAgICBJTklUSUFURV9QQVlNRU5UX0ZBSUxVUkUgPSAnSU5JVElBVEVfUEFZTUVOVF9GQUlMVVJFJwogICAgUE9MSUNZX1JFSkVDVElPTiA9ICdQT0xJQ1lfUkVKRUNUSU9OJwogICAgVFJBTlNBQ1RJT05fRkFJTEVEID0gJ1RSQU5TQUNUSU9OX0ZBSUxFRCcKICAgIEFDQ09VTlRfTk9UX0FDVElWRSA9ICdBQ0NPVU5UX05PVF9BQ1RJVkUnCiAgICBBQ0NPVU5UX05PVF9GT1VORCA9ICdBQ0NPVU5UX05PVF9GT1VORCcKICAgIEJBRF9SRVFVRVNUID0gJ0JBRF9SRVFVRVNUJwogICAgUVVPVEVfTk9UX1JFQURZID0gJ1FVT1RFX05PVF9SRUFEWScKICAgIElOVkFMSURfREFUQSA9ICdJTlZBTElEX0RBVEEnCiAgICBVTlNVUFBPUlRFRF9DT05WRVJTSU9OID0gJ1VOU1VQUE9SVEVEX0NPTlZFUlNJT04nCiAgICBVTlNVUFBPUlRFRF9SQU1QX01FVEhPRCA9ICdVTlNVUFBPUlRFRF9SQU1QX01FVEhPRCcKICAgIFJFRlVOREVEID0gJ1JFRlVOREVEJwogICAgRkFJTEVEX0JZX1BST1ZJREVSID0gJ0ZBSUxFRF9CWV9QUk9WSURFUicKICAgIE9SREVSX0VYUElSRUQgPSAnT1JERVJfRVhQSVJFRCcKICAgIFRSQU5TQUNUSU9OX0NBTkNFTExFRCA9ICdUUkFOU0FDVElPTl9DQU5DRUxMRUQnCiAgICBUUkFOU0FDVElPTl9SRUpFQ1RFRCA9ICdUUkFOU0FDVElPTl9SRUpFQ1RFRCcKICAgIFRSQU5TQUNUSU9OX0JMT0NLRUQgPSAnVFJBTlNBQ1RJT05fQkxPQ0tFRCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGYWlsdXJlUmVhc29uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/fee.py b/fireblocks/models/fee.py index dd2e2995..88b19185 100644 --- a/fireblocks/models/fee.py +++ b/fireblocks/models/fee.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Union -from typing_extensions import Annotated -from fireblocks.models.fee_type_enum import FeeTypeEnum -from typing import Optional, Set -from typing_extensions import Self - -class Fee(BaseModel): - """ - Fee - """ # noqa: E501 - fee_type: FeeTypeEnum = Field(alias="feeType") - asset_id: StrictStr = Field(description="The asset identifier for the fee.", alias="assetId") - amount_type: StrictStr = Field(alias="amountType") - amount: Union[Annotated[float, Field(le=10000, strict=True, ge=0)], Annotated[int, Field(le=10000, strict=True, ge=0)]] = Field(description="Fee in basis points (1 = 0.01%, 10000 = 100%)") - __properties: ClassVar[List[str]] = ["feeType", "assetId", "amountType", "amount"] - - @field_validator('amount_type') - def amount_type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['BPS']): - raise ValueError("must be one of enum values ('BPS')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of Fee from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of Fee from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "feeType": obj.get("feeType"), - "assetId": obj.get("assetId"), - "amountType": obj.get("amountType"), - "amount": obj.get("amount") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZV90eXBlX2VudW0gaW1wb3J0IEZlZVR5cGVFbnVtCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEZlZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBGZWUKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGZlZV90eXBlOiBGZWVUeXBlRW51bSA9IEZpZWxkKGFsaWFzPSJmZWVUeXBlIikKICAgIGFzc2V0X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGFzc2V0IGlkZW50aWZpZXIgZm9yIHRoZSBmZWUuIiwgYWxpYXM9ImFzc2V0SWQiKQogICAgYW1vdW50X3R5cGU6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJhbW91bnRUeXBlIikKICAgIGFtb3VudDogVW5pb25bQW5ub3RhdGVkW2Zsb2F0LCBGaWVsZChsZT0xMDAwMCwgc3RyaWN0PVRydWUsIGdlPTApXSwgQW5ub3RhdGVkW2ludCwgRmllbGQobGU9MTAwMDAsIHN0cmljdD1UcnVlLCBnZT0wKV1dID0gRmllbGQoZGVzY3JpcHRpb249IkZlZSBpbiBiYXNpcyBwb2ludHMgKDEgPSAwLjAxJSwgMTAwMDAgPSAxMDAlKSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImZlZVR5cGUiLCAiYXNzZXRJZCIsICJhbW91bnRUeXBlIiwgImFtb3VudCJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYW1vdW50X3R5cGUnKQogICAgZGVmIGFtb3VudF90eXBlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0JQUyddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdCUFMnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRmVlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEZlZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJmZWVUeXBlIjogb2JqLmdldCgiZmVlVHlwZSIpLAogICAgICAgICAgICAiYXNzZXRJZCI6IG9iai5nZXQoImFzc2V0SWQiKSwKICAgICAgICAgICAgImFtb3VudFR5cGUiOiBvYmouZ2V0KCJhbW91bnRUeXBlIiksCiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/fee_breakdown.py b/fireblocks/models/fee_breakdown.py index 3e83c755..f8390318 100644 --- a/fireblocks/models/fee_breakdown.py +++ b/fireblocks/models/fee_breakdown.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class FeeBreakdown(BaseModel): - """ - Fee breakdown details for a transaction estimate - """ # noqa: E501 - base_fee: Optional[StrictStr] = Field(default=None, description="Base fee component", alias="baseFee") - priority_fee: Optional[StrictStr] = Field(default=None, description="Priority fee component", alias="priorityFee") - rent: Optional[StrictStr] = Field(default=None, description="Rent fee for account creation/storage (Solana-specific, optional)") - total_fee: Optional[StrictStr] = Field(default=None, description="Total fee amount", alias="totalFee") - __properties: ClassVar[List[str]] = ["baseFee", "priorityFee", "rent", "totalFee"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of FeeBreakdown from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of FeeBreakdown from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "baseFee": obj.get("baseFee"), - "priorityFee": obj.get("priorityFee"), - "rent": obj.get("rent"), - "totalFee": obj.get("totalFee") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBGZWVCcmVha2Rvd24oQmFzZU1vZGVsKToKICAgICIiIgogICAgRmVlIGJyZWFrZG93biBkZXRhaWxzIGZvciBhIHRyYW5zYWN0aW9uIGVzdGltYXRlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBiYXNlX2ZlZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkJhc2UgZmVlIGNvbXBvbmVudCIsIGFsaWFzPSJiYXNlRmVlIikKICAgIHByaW9yaXR5X2ZlZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlByaW9yaXR5IGZlZSBjb21wb25lbnQiLCBhbGlhcz0icHJpb3JpdHlGZWUiKQogICAgcmVudDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlJlbnQgZmVlIGZvciBhY2NvdW50IGNyZWF0aW9uL3N0b3JhZ2UgKFNvbGFuYS1zcGVjaWZpYywgb3B0aW9uYWwpIikKICAgIHRvdGFsX2ZlZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRvdGFsIGZlZSBhbW91bnQiLCBhbGlhcz0idG90YWxGZWUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJiYXNlRmVlIiwgInByaW9yaXR5RmVlIiwgInJlbnQiLCAidG90YWxGZWUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEZlZUJyZWFrZG93biBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGZWVCcmVha2Rvd24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYmFzZUZlZSI6IG9iai5nZXQoImJhc2VGZWUiKSwKICAgICAgICAgICAgInByaW9yaXR5RmVlIjogb2JqLmdldCgicHJpb3JpdHlGZWUiKSwKICAgICAgICAgICAgInJlbnQiOiBvYmouZ2V0KCJyZW50IiksCiAgICAgICAgICAgICJ0b3RhbEZlZSI6IG9iai5nZXQoInRvdGFsRmVlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/fee_info.py b/fireblocks/models/fee_info.py index 6e52508a..b5a5840f 100644 --- a/fireblocks/models/fee_info.py +++ b/fireblocks/models/fee_info.py @@ -1,116 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class FeeInfo(BaseModel): - """ - Details of the transaction's fee. - """ # noqa: E501 - network_fee: Optional[StrictStr] = Field(default=None, description="The fee paid to the network", alias="networkFee") - service_fee: Optional[StrictStr] = Field(default=None, description="The total fee deducted by the exchange from the actual requested amount (serviceFee = amount - netAmount)", alias="serviceFee") - gas_price: Optional[StrictStr] = Field(default=None, alias="gasPrice") - l1network_fee: Optional[StrictStr] = Field(default=None, description="Layer 1 network fee for Layer 2 blockchain transactions", alias="L1networkFee") - l2network_fee: Optional[StrictStr] = Field(default=None, description="Layer 2 network fee (gas price component for Layer 2 transactions)", alias="L2networkFee") - paid_by_relay: Optional[StrictBool] = Field(default=None, description="Wether the fee was paid by the relay or not", alias="paidByRelay") - relay_type: Optional[StrictStr] = Field(default=None, description="Wether the relay is the same tenant (LOCAL) or another tenant (THIRD_PARTY)", alias="relayType") - relay_id: Optional[StrictStr] = Field(default=None, description="The vault account ID of the relay", alias="relayId") - relay_name: Optional[StrictStr] = Field(default=None, description="The name of the tenant, only for THIRD_PARTY relays", alias="relayName") - fee_usd: Optional[StrictStr] = Field(default=None, description="The USD value of the fee", alias="feeUSD") - __properties: ClassVar[List[str]] = ["networkFee", "serviceFee", "gasPrice", "L1networkFee", "L2networkFee", "paidByRelay", "relayType", "relayId", "relayName", "feeUSD"] - - @field_validator('relay_type') - def relay_type_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['LOCAL', 'THIRD_PARTY']): - raise ValueError("must be one of enum values ('LOCAL', 'THIRD_PARTY')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of FeeInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of FeeInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "networkFee": obj.get("networkFee"), - "serviceFee": obj.get("serviceFee"), - "gasPrice": obj.get("gasPrice"), - "L1networkFee": obj.get("L1networkFee"), - "L2networkFee": obj.get("L2networkFee"), - "paidByRelay": obj.get("paidByRelay"), - "relayType": obj.get("relayType"), - "relayId": obj.get("relayId"), - "relayName": obj.get("relayName"), - "feeUSD": obj.get("feeUSD") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEZlZUluZm8oQmFzZU1vZGVsKToKICAgICIiIgogICAgRGV0YWlscyBvZiB0aGUgdHJhbnNhY3Rpb24ncyBmZWUuCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBuZXR3b3JrX2ZlZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBmZWUgcGFpZCB0byB0aGUgbmV0d29yayIsIGFsaWFzPSJuZXR3b3JrRmVlIikKICAgIHNlcnZpY2VfZmVlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHRvdGFsIGZlZSBkZWR1Y3RlZCBieSB0aGUgZXhjaGFuZ2UgZnJvbSB0aGUgYWN0dWFsIHJlcXVlc3RlZCBhbW91bnQgKHNlcnZpY2VGZWUgPSBhbW91bnQgLSBuZXRBbW91bnQpIiwgYWxpYXM9InNlcnZpY2VGZWUiKQogICAgZ2FzX3ByaWNlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZ2FzUHJpY2UiKQogICAgbDFuZXR3b3JrX2ZlZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkxheWVyIDEgbmV0d29yayBmZWUgZm9yIExheWVyIDIgYmxvY2tjaGFpbiB0cmFuc2FjdGlvbnMiLCBhbGlhcz0iTDFuZXR3b3JrRmVlIikKICAgIGwybmV0d29ya19mZWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJMYXllciAyIG5ldHdvcmsgZmVlIChnYXMgcHJpY2UgY29tcG9uZW50IGZvciBMYXllciAyIHRyYW5zYWN0aW9ucykiLCBhbGlhcz0iTDJuZXR3b3JrRmVlIikKICAgIHBhaWRfYnlfcmVsYXk6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iV2V0aGVyIHRoZSBmZWUgd2FzIHBhaWQgYnkgdGhlIHJlbGF5IG9yIG5vdCIsIGFsaWFzPSJwYWlkQnlSZWxheSIpCiAgICByZWxheV90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iV2V0aGVyIHRoZSByZWxheSBpcyB0aGUgc2FtZSB0ZW5hbnQgKExPQ0FMKSBvciBhbm90aGVyIHRlbmFudCAoVEhJUkRfUEFSVFkpIiwgYWxpYXM9InJlbGF5VHlwZSIpCiAgICByZWxheV9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSB2YXVsdCBhY2NvdW50IElEIG9mIHRoZSByZWxheSIsIGFsaWFzPSJyZWxheUlkIikKICAgIHJlbGF5X25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgbmFtZSBvZiB0aGUgdGVuYW50LCBvbmx5IGZvciBUSElSRF9QQVJUWSByZWxheXMiLCBhbGlhcz0icmVsYXlOYW1lIikKICAgIGZlZV91c2Q6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgVVNEIHZhbHVlIG9mIHRoZSBmZWUiLCBhbGlhcz0iZmVlVVNEIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibmV0d29ya0ZlZSIsICJzZXJ2aWNlRmVlIiwgImdhc1ByaWNlIiwgIkwxbmV0d29ya0ZlZSIsICJMMm5ldHdvcmtGZWUiLCAicGFpZEJ5UmVsYXkiLCAicmVsYXlUeXBlIiwgInJlbGF5SWQiLCAicmVsYXlOYW1lIiwgImZlZVVTRCJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigncmVsYXlfdHlwZScpCiAgICBkZWYgcmVsYXlfdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnTE9DQUwnLCAnVEhJUkRfUEFSVFknXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnTE9DQUwnLCAnVEhJUkRfUEFSVFknKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRmVlSW5mbyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGZWVJbmZvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm5ldHdvcmtGZWUiOiBvYmouZ2V0KCJuZXR3b3JrRmVlIiksCiAgICAgICAgICAgICJzZXJ2aWNlRmVlIjogb2JqLmdldCgic2VydmljZUZlZSIpLAogICAgICAgICAgICAiZ2FzUHJpY2UiOiBvYmouZ2V0KCJnYXNQcmljZSIpLAogICAgICAgICAgICAiTDFuZXR3b3JrRmVlIjogb2JqLmdldCgiTDFuZXR3b3JrRmVlIiksCiAgICAgICAgICAgICJMMm5ldHdvcmtGZWUiOiBvYmouZ2V0KCJMMm5ldHdvcmtGZWUiKSwKICAgICAgICAgICAgInBhaWRCeVJlbGF5Ijogb2JqLmdldCgicGFpZEJ5UmVsYXkiKSwKICAgICAgICAgICAgInJlbGF5VHlwZSI6IG9iai5nZXQoInJlbGF5VHlwZSIpLAogICAgICAgICAgICAicmVsYXlJZCI6IG9iai5nZXQoInJlbGF5SWQiKSwKICAgICAgICAgICAgInJlbGF5TmFtZSI6IG9iai5nZXQoInJlbGF5TmFtZSIpLAogICAgICAgICAgICAiZmVlVVNEIjogb2JqLmdldCgiZmVlVVNEIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/fee_level.py b/fireblocks/models/fee_level.py index d1e9db86..66527144 100644 --- a/fireblocks/models/fee_level.py +++ b/fireblocks/models/fee_level.py @@ -1,39 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class FeeLevel(str, Enum): - """ - Represents the fee level for a transaction, which can be set as slow, medium, or fast. Only one of fee/feeLevel is required. - """ - - """ - allowed enum values - """ - LOW = 'LOW' - MEDIUM = 'MEDIUM' - HIGH = 'HIGH' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of FeeLevel from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBGZWVMZXZlbChzdHIsIEVudW0pOgogICAgIiIiCiAgICBSZXByZXNlbnRzIHRoZSBmZWUgbGV2ZWwgZm9yIGEgdHJhbnNhY3Rpb24sIHdoaWNoIGNhbiBiZSBzZXQgYXMgc2xvdywgbWVkaXVtLCBvciBmYXN0LiBPbmx5IG9uZSBvZiBmZWUvZmVlTGV2ZWwgaXMgcmVxdWlyZWQuCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgTE9XID0gJ0xPVycKICAgIE1FRElVTSA9ICdNRURJVU0nCiAgICBISUdIID0gJ0hJR0gnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRmVlTGV2ZWwgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/fee_payer_info.py b/fireblocks/models/fee_payer_info.py index 215cd766..30ce2f01 100644 --- a/fireblocks/models/fee_payer_info.py +++ b/fireblocks/models/fee_payer_info.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class FeePayerInfo(BaseModel): - """ - FeePayerInfo - """ # noqa: E501 - fee_payer_account_id: Optional[StrictStr] = Field(default=None, description="The account ID of the fee payer", alias="feePayerAccountId") - __properties: ClassVar[List[str]] = ["feePayerAccountId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of FeePayerInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of FeePayerInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "feePayerAccountId": obj.get("feePayerAccountId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBGZWVQYXllckluZm8oQmFzZU1vZGVsKToKICAgICIiIgogICAgRmVlUGF5ZXJJbmZvCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBmZWVfcGF5ZXJfYWNjb3VudF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBhY2NvdW50IElEIG9mIHRoZSBmZWUgcGF5ZXIiLCBhbGlhcz0iZmVlUGF5ZXJBY2NvdW50SWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJmZWVQYXllckFjY291bnRJZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRmVlUGF5ZXJJbmZvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEZlZVBheWVySW5mbyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJmZWVQYXllckFjY291bnRJZCI6IG9iai5nZXQoImZlZVBheWVyQWNjb3VudElkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/fee_properties_details.py b/fireblocks/models/fee_properties_details.py index dfc135e3..cdee4c95 100644 --- a/fireblocks/models/fee_properties_details.py +++ b/fireblocks/models/fee_properties_details.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.fee_type_enum import FeeTypeEnum -from typing import Optional, Set -from typing_extensions import Self - -class FeePropertiesDetails(BaseModel): - """ - FeePropertiesDetails - """ # noqa: E501 - fee_type: FeeTypeEnum = Field(alias="feeType") - asset_id: StrictStr = Field(description="The asset identifier for the fee.", alias="assetId") - __properties: ClassVar[List[str]] = ["feeType", "assetId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of FeePropertiesDetails from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of FeePropertiesDetails from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "feeType": obj.get("feeType"), - "assetId": obj.get("assetId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmVlX3R5cGVfZW51bSBpbXBvcnQgRmVlVHlwZUVudW0KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRmVlUHJvcGVydGllc0RldGFpbHMoQmFzZU1vZGVsKToKICAgICIiIgogICAgRmVlUHJvcGVydGllc0RldGFpbHMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGZlZV90eXBlOiBGZWVUeXBlRW51bSA9IEZpZWxkKGFsaWFzPSJmZWVUeXBlIikKICAgIGFzc2V0X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGFzc2V0IGlkZW50aWZpZXIgZm9yIHRoZSBmZWUuIiwgYWxpYXM9ImFzc2V0SWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJmZWVUeXBlIiwgImFzc2V0SWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEZlZVByb3BlcnRpZXNEZXRhaWxzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEZlZVByb3BlcnRpZXNEZXRhaWxzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImZlZVR5cGUiOiBvYmouZ2V0KCJmZWVUeXBlIiksCiAgICAgICAgICAgICJhc3NldElkIjogb2JqLmdldCgiYXNzZXRJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/fee_type_enum.py b/fireblocks/models/fee_type_enum.py index 4c9cc634..3b666c72 100644 --- a/fireblocks/models/fee_type_enum.py +++ b/fireblocks/models/fee_type_enum.py @@ -1,40 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class FeeTypeEnum(str, Enum): - """ - The type of fee, such as ORDER, NETWORK, or SPREAD. ORDER - Fee for executing the order. NETWORK - Fee for network transactions. SPREAD - Fee for the difference between buy and sell prices. REBATE - Negative fee returned to the user as a reward or incentive. - """ - - """ - allowed enum values - """ - ORDER = 'ORDER' - NETWORK = 'NETWORK' - SPREAD = 'SPREAD' - REBATE = 'REBATE' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of FeeTypeEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBGZWVUeXBlRW51bShzdHIsIEVudW0pOgogICAgIiIiCiAgICBUaGUgdHlwZSBvZiBmZWUsIHN1Y2ggYXMgT1JERVIsIE5FVFdPUkssIG9yIFNQUkVBRC4gT1JERVIgLSBGZWUgZm9yIGV4ZWN1dGluZyB0aGUgb3JkZXIuIE5FVFdPUksgLSBGZWUgZm9yIG5ldHdvcmsgdHJhbnNhY3Rpb25zLiBTUFJFQUQgLSBGZWUgZm9yIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYnV5IGFuZCBzZWxsIHByaWNlcy4gUkVCQVRFIC0gTmVnYXRpdmUgZmVlIHJldHVybmVkIHRvIHRoZSB1c2VyIGFzIGEgcmV3YXJkIG9yIGluY2VudGl2ZS4gCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgT1JERVIgPSAnT1JERVInCiAgICBORVRXT1JLID0gJ05FVFdPUksnCiAgICBTUFJFQUQgPSAnU1BSRUFEJwogICAgUkVCQVRFID0gJ1JFQkFURScKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGZWVUeXBlRW51bSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/fetch_abi_request_dto.py b/fireblocks/models/fetch_abi_request_dto.py index ea2f828b..b4e3028f 100644 --- a/fireblocks/models/fetch_abi_request_dto.py +++ b/fireblocks/models/fetch_abi_request_dto.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class FetchAbiRequestDto(BaseModel): - """ - FetchAbiRequestDto - """ # noqa: E501 - base_asset_id: StrictStr = Field(description="The blockchain base assetId", alias="baseAssetId") - contract_address: StrictStr = Field(description="The contract's onchain address", alias="contractAddress") - __properties: ClassVar[List[str]] = ["baseAssetId", "contractAddress"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of FetchAbiRequestDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of FetchAbiRequestDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "baseAssetId": obj.get("baseAssetId"), - "contractAddress": obj.get("contractAddress") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEZldGNoQWJpUmVxdWVzdER0byhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBGZXRjaEFiaVJlcXVlc3REdG8KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGJhc2VfYXNzZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQiLCBhbGlhcz0iYmFzZUFzc2V0SWQiKQogICAgY29udHJhY3RfYWRkcmVzczogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBjb250cmFjdCdzIG9uY2hhaW4gYWRkcmVzcyIsIGFsaWFzPSJjb250cmFjdEFkZHJlc3MiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJiYXNlQXNzZXRJZCIsICJjb250cmFjdEFkZHJlc3MiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEZldGNoQWJpUmVxdWVzdER0byBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGZXRjaEFiaVJlcXVlc3REdG8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYmFzZUFzc2V0SWQiOiBvYmouZ2V0KCJiYXNlQXNzZXRJZCIpLAogICAgICAgICAgICAiY29udHJhY3RBZGRyZXNzIjogb2JqLmdldCgiY29udHJhY3RBZGRyZXNzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/fiat_account.py b/fireblocks/models/fiat_account.py index 185ea8d0..4eaec18d 100644 --- a/fireblocks/models/fiat_account.py +++ b/fireblocks/models/fiat_account.py @@ -1,110 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.fiat_account_type import FiatAccountType -from fireblocks.models.fiat_asset import FiatAsset -from typing import Optional, Set -from typing_extensions import Self - -class FiatAccount(BaseModel): - """ - FiatAccount - """ # noqa: E501 - id: Optional[StrictStr] = None - type: Optional[FiatAccountType] = None - name: Optional[StrictStr] = Field(default=None, description="Display name of the fiat account") - address: Optional[StrictStr] = None - assets: Optional[List[FiatAsset]] = None - __properties: ClassVar[List[str]] = ["id", "type", "name", "address", "assets"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of FiatAccount from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in assets (list) - _items = [] - if self.assets: - for _item_assets in self.assets: - if _item_assets: - _items.append(_item_assets.to_dict()) - _dict['assets'] = _items - # set to None if address (nullable) is None - # and model_fields_set contains the field - if self.address is None and "address" in self.model_fields_set: - _dict['address'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of FiatAccount from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "type": obj.get("type"), - "name": obj.get("name"), - "address": obj.get("address"), - "assets": [FiatAsset.from_dict(_item) for _item in obj["assets"]] if obj.get("assets") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZpYXRfYWNjb3VudF90eXBlIGltcG9ydCBGaWF0QWNjb3VudFR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5maWF0X2Fzc2V0IGltcG9ydCBGaWF0QXNzZXQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRmlhdEFjY291bnQoQmFzZU1vZGVsKToKICAgICIiIgogICAgRmlhdEFjY291bnQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgdHlwZTogT3B0aW9uYWxbRmlhdEFjY291bnRUeXBlXSA9IE5vbmUKICAgIG5hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEaXNwbGF5IG5hbWUgb2YgdGhlIGZpYXQgYWNjb3VudCIpCiAgICBhZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgYXNzZXRzOiBPcHRpb25hbFtMaXN0W0ZpYXRBc3NldF1dID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJ0eXBlIiwgIm5hbWUiLCAiYWRkcmVzcyIsICJhc3NldHMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEZpYXRBY2NvdW50IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGFzc2V0cyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuYXNzZXRzOgogICAgICAgICAgICBmb3IgX2l0ZW1fYXNzZXRzIGluIHNlbGYuYXNzZXRzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fYXNzZXRzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fYXNzZXRzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2Fzc2V0cyddID0gX2l0ZW1zCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBhZGRyZXNzIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5hZGRyZXNzIGlzIE5vbmUgYW5kICJhZGRyZXNzIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydhZGRyZXNzJ10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRmlhdEFjY291bnQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJhZGRyZXNzIjogb2JqLmdldCgiYWRkcmVzcyIpLAogICAgICAgICAgICAiYXNzZXRzIjogW0ZpYXRBc3NldC5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImFzc2V0cyJdXSBpZiBvYmouZ2V0KCJhc3NldHMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/fiat_account_type.py b/fireblocks/models/fiat_account_type.py index 4eeb0b3e..3b758501 100644 --- a/fireblocks/models/fiat_account_type.py +++ b/fireblocks/models/fiat_account_type.py @@ -1,37 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class FiatAccountType(str, Enum): - """ - FiatAccountType - """ - - """ - allowed enum values - """ - BLINC = 'BLINC' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of FiatAccountType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBGaWF0QWNjb3VudFR5cGUoc3RyLCBFbnVtKToKICAgICIiIgogICAgRmlhdEFjY291bnRUeXBlCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgQkxJTkMgPSAnQkxJTkMnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRmlhdEFjY291bnRUeXBlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/fiat_asset.py b/fireblocks/models/fiat_asset.py index 121fc8ac..a98c833e 100644 --- a/fireblocks/models/fiat_asset.py +++ b/fireblocks/models/fiat_asset.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class FiatAsset(BaseModel): - """ - FiatAsset - """ # noqa: E501 - id: Optional[StrictStr] = None - balance: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["id", "balance"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of FiatAsset from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of FiatAsset from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "balance": obj.get("balance") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEZpYXRBc3NldChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBGaWF0QXNzZXQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgYmFsYW5jZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAiYmFsYW5jZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRmlhdEFzc2V0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEZpYXRBc3NldCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJiYWxhbmNlIjogb2JqLmdldCgiYmFsYW5jZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/fiat_destination.py b/fireblocks/models/fiat_destination.py index 549b24cb..d77d1144 100644 --- a/fireblocks/models/fiat_destination.py +++ b/fireblocks/models/fiat_destination.py @@ -1,306 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.ach_destination import AchDestination -from fireblocks.models.chaps_destination import ChapsDestination -from fireblocks.models.european_sepa_destination import EuropeanSEPADestination -from fireblocks.models.iban_destination import IbanDestination -from fireblocks.models.interac_destination import InteracDestination -from fireblocks.models.internal_transfer_destination import InternalTransferDestination -from fireblocks.models.local_bank_transfer_africa_destination import LocalBankTransferAfricaDestination -from fireblocks.models.mobile_money_destination import MobileMoneyDestination -from fireblocks.models.payid_destination import PayidDestination -from fireblocks.models.pix_destination import PixDestination -from fireblocks.models.sepa_destination import SEPADestination -from fireblocks.models.spei_destination import SpeiDestination -from fireblocks.models.swift_destination import SwiftDestination -from fireblocks.models.us_wire_destination import USWireDestination -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -FIATDESTINATION_ONE_OF_SCHEMAS = ["AchDestination", "ChapsDestination", "EuropeanSEPADestination", "IbanDestination", "InteracDestination", "InternalTransferDestination", "LocalBankTransferAfricaDestination", "MobileMoneyDestination", "PayidDestination", "PixDestination", "SEPADestination", "SpeiDestination", "SwiftDestination", "USWireDestination"] - -class FiatDestination(BaseModel): - """ - FiatDestination - """ - # data type: IbanDestination - oneof_schema_1_validator: Optional[IbanDestination] = None - # data type: SwiftDestination - oneof_schema_2_validator: Optional[SwiftDestination] = None - # data type: AchDestination - oneof_schema_3_validator: Optional[AchDestination] = None - # data type: USWireDestination - oneof_schema_4_validator: Optional[USWireDestination] = None - # data type: SpeiDestination - oneof_schema_5_validator: Optional[SpeiDestination] = None - # data type: SEPADestination - oneof_schema_6_validator: Optional[SEPADestination] = None - # data type: PixDestination - oneof_schema_7_validator: Optional[PixDestination] = None - # data type: LocalBankTransferAfricaDestination - oneof_schema_8_validator: Optional[LocalBankTransferAfricaDestination] = None - # data type: MobileMoneyDestination - oneof_schema_9_validator: Optional[MobileMoneyDestination] = None - # data type: EuropeanSEPADestination - oneof_schema_10_validator: Optional[EuropeanSEPADestination] = None - # data type: ChapsDestination - oneof_schema_11_validator: Optional[ChapsDestination] = None - # data type: InteracDestination - oneof_schema_12_validator: Optional[InteracDestination] = None - # data type: PayidDestination - oneof_schema_13_validator: Optional[PayidDestination] = None - # data type: InternalTransferDestination - oneof_schema_14_validator: Optional[InternalTransferDestination] = None - actual_instance: Optional[Union[AchDestination, ChapsDestination, EuropeanSEPADestination, IbanDestination, InteracDestination, InternalTransferDestination, LocalBankTransferAfricaDestination, MobileMoneyDestination, PayidDestination, PixDestination, SEPADestination, SpeiDestination, SwiftDestination, USWireDestination]] = None - one_of_schemas: Set[str] = { "AchDestination", "ChapsDestination", "EuropeanSEPADestination", "IbanDestination", "InteracDestination", "InternalTransferDestination", "LocalBankTransferAfricaDestination", "MobileMoneyDestination", "PayidDestination", "PixDestination", "SEPADestination", "SpeiDestination", "SwiftDestination", "USWireDestination" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = FiatDestination.model_construct() - error_messages = [] - match = 0 - # validate data type: IbanDestination - if not isinstance(v, IbanDestination): - error_messages.append(f"Error! Input type `{type(v)}` is not `IbanDestination`") - else: - match += 1 - # validate data type: SwiftDestination - if not isinstance(v, SwiftDestination): - error_messages.append(f"Error! Input type `{type(v)}` is not `SwiftDestination`") - else: - match += 1 - # validate data type: AchDestination - if not isinstance(v, AchDestination): - error_messages.append(f"Error! Input type `{type(v)}` is not `AchDestination`") - else: - match += 1 - # validate data type: USWireDestination - if not isinstance(v, USWireDestination): - error_messages.append(f"Error! Input type `{type(v)}` is not `USWireDestination`") - else: - match += 1 - # validate data type: SpeiDestination - if not isinstance(v, SpeiDestination): - error_messages.append(f"Error! Input type `{type(v)}` is not `SpeiDestination`") - else: - match += 1 - # validate data type: SEPADestination - if not isinstance(v, SEPADestination): - error_messages.append(f"Error! Input type `{type(v)}` is not `SEPADestination`") - else: - match += 1 - # validate data type: PixDestination - if not isinstance(v, PixDestination): - error_messages.append(f"Error! Input type `{type(v)}` is not `PixDestination`") - else: - match += 1 - # validate data type: LocalBankTransferAfricaDestination - if not isinstance(v, LocalBankTransferAfricaDestination): - error_messages.append(f"Error! Input type `{type(v)}` is not `LocalBankTransferAfricaDestination`") - else: - match += 1 - # validate data type: MobileMoneyDestination - if not isinstance(v, MobileMoneyDestination): - error_messages.append(f"Error! Input type `{type(v)}` is not `MobileMoneyDestination`") - else: - match += 1 - # validate data type: EuropeanSEPADestination - if not isinstance(v, EuropeanSEPADestination): - error_messages.append(f"Error! Input type `{type(v)}` is not `EuropeanSEPADestination`") - else: - match += 1 - # validate data type: ChapsDestination - if not isinstance(v, ChapsDestination): - error_messages.append(f"Error! Input type `{type(v)}` is not `ChapsDestination`") - else: - match += 1 - # validate data type: InteracDestination - if not isinstance(v, InteracDestination): - error_messages.append(f"Error! Input type `{type(v)}` is not `InteracDestination`") - else: - match += 1 - # validate data type: PayidDestination - if not isinstance(v, PayidDestination): - error_messages.append(f"Error! Input type `{type(v)}` is not `PayidDestination`") - else: - match += 1 - # validate data type: InternalTransferDestination - if not isinstance(v, InternalTransferDestination): - error_messages.append(f"Error! Input type `{type(v)}` is not `InternalTransferDestination`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in FiatDestination with oneOf schemas: AchDestination, ChapsDestination, EuropeanSEPADestination, IbanDestination, InteracDestination, InternalTransferDestination, LocalBankTransferAfricaDestination, MobileMoneyDestination, PayidDestination, PixDestination, SEPADestination, SpeiDestination, SwiftDestination, USWireDestination. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in FiatDestination with oneOf schemas: AchDestination, ChapsDestination, EuropeanSEPADestination, IbanDestination, InteracDestination, InternalTransferDestination, LocalBankTransferAfricaDestination, MobileMoneyDestination, PayidDestination, PixDestination, SEPADestination, SpeiDestination, SwiftDestination, USWireDestination. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into IbanDestination - try: - instance.actual_instance = IbanDestination.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into SwiftDestination - try: - instance.actual_instance = SwiftDestination.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into AchDestination - try: - instance.actual_instance = AchDestination.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into USWireDestination - try: - instance.actual_instance = USWireDestination.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into SpeiDestination - try: - instance.actual_instance = SpeiDestination.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into SEPADestination - try: - instance.actual_instance = SEPADestination.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into PixDestination - try: - instance.actual_instance = PixDestination.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into LocalBankTransferAfricaDestination - try: - instance.actual_instance = LocalBankTransferAfricaDestination.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into MobileMoneyDestination - try: - instance.actual_instance = MobileMoneyDestination.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into EuropeanSEPADestination - try: - instance.actual_instance = EuropeanSEPADestination.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into ChapsDestination - try: - instance.actual_instance = ChapsDestination.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into InteracDestination - try: - instance.actual_instance = InteracDestination.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into PayidDestination - try: - instance.actual_instance = PayidDestination.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into InternalTransferDestination - try: - instance.actual_instance = InternalTransferDestination.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into FiatDestination with oneOf schemas: AchDestination, ChapsDestination, EuropeanSEPADestination, IbanDestination, InteracDestination, InternalTransferDestination, LocalBankTransferAfricaDestination, MobileMoneyDestination, PayidDestination, PixDestination, SEPADestination, SpeiDestination, SwiftDestination, USWireDestination. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into FiatDestination with oneOf schemas: AchDestination, ChapsDestination, EuropeanSEPADestination, IbanDestination, InteracDestination, InternalTransferDestination, LocalBankTransferAfricaDestination, MobileMoneyDestination, PayidDestination, PixDestination, SEPADestination, SpeiDestination, SwiftDestination, USWireDestination. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], AchDestination, ChapsDestination, EuropeanSEPADestination, IbanDestination, InteracDestination, InternalTransferDestination, LocalBankTransferAfricaDestination, MobileMoneyDestination, PayidDestination, PixDestination, SEPADestination, SpeiDestination, SwiftDestination, USWireDestination]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNoX2Rlc3RpbmF0aW9uIGltcG9ydCBBY2hEZXN0aW5hdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYXBzX2Rlc3RpbmF0aW9uIGltcG9ydCBDaGFwc0Rlc3RpbmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXVyb3BlYW5fc2VwYV9kZXN0aW5hdGlvbiBpbXBvcnQgRXVyb3BlYW5TRVBBRGVzdGluYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5pYmFuX2Rlc3RpbmF0aW9uIGltcG9ydCBJYmFuRGVzdGluYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5pbnRlcmFjX2Rlc3RpbmF0aW9uIGltcG9ydCBJbnRlcmFjRGVzdGluYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5pbnRlcm5hbF90cmFuc2Zlcl9kZXN0aW5hdGlvbiBpbXBvcnQgSW50ZXJuYWxUcmFuc2ZlckRlc3RpbmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubG9jYWxfYmFua190cmFuc2Zlcl9hZnJpY2FfZGVzdGluYXRpb24gaW1wb3J0IExvY2FsQmFua1RyYW5zZmVyQWZyaWNhRGVzdGluYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tb2JpbGVfbW9uZXlfZGVzdGluYXRpb24gaW1wb3J0IE1vYmlsZU1vbmV5RGVzdGluYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXlpZF9kZXN0aW5hdGlvbiBpbXBvcnQgUGF5aWREZXN0aW5hdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBpeF9kZXN0aW5hdGlvbiBpbXBvcnQgUGl4RGVzdGluYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zZXBhX2Rlc3RpbmF0aW9uIGltcG9ydCBTRVBBRGVzdGluYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zcGVpX2Rlc3RpbmF0aW9uIGltcG9ydCBTcGVpRGVzdGluYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zd2lmdF9kZXN0aW5hdGlvbiBpbXBvcnQgU3dpZnREZXN0aW5hdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzX3dpcmVfZGVzdGluYXRpb24gaW1wb3J0IFVTV2lyZURlc3RpbmF0aW9uCmZyb20gcHlkYW50aWMgaW1wb3J0IFN0cmljdFN0ciwgRmllbGQKZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uLCBMaXN0LCBTZXQsIE9wdGlvbmFsLCBEaWN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IExpdGVyYWwsIFNlbGYKCkZJQVRERVNUSU5BVElPTl9PTkVfT0ZfU0NIRU1BUyA9IFsiQWNoRGVzdGluYXRpb24iLCAiQ2hhcHNEZXN0aW5hdGlvbiIsICJFdXJvcGVhblNFUEFEZXN0aW5hdGlvbiIsICJJYmFuRGVzdGluYXRpb24iLCAiSW50ZXJhY0Rlc3RpbmF0aW9uIiwgIkludGVybmFsVHJhbnNmZXJEZXN0aW5hdGlvbiIsICJMb2NhbEJhbmtUcmFuc2ZlckFmcmljYURlc3RpbmF0aW9uIiwgIk1vYmlsZU1vbmV5RGVzdGluYXRpb24iLCAiUGF5aWREZXN0aW5hdGlvbiIsICJQaXhEZXN0aW5hdGlvbiIsICJTRVBBRGVzdGluYXRpb24iLCAiU3BlaURlc3RpbmF0aW9uIiwgIlN3aWZ0RGVzdGluYXRpb24iLCAiVVNXaXJlRGVzdGluYXRpb24iXQoKY2xhc3MgRmlhdERlc3RpbmF0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEZpYXREZXN0aW5hdGlvbgogICAgIiIiCiAgICAjIGRhdGEgdHlwZTogSWJhbkRlc3RpbmF0aW9uCiAgICBvbmVvZl9zY2hlbWFfMV92YWxpZGF0b3I6IE9wdGlvbmFsW0liYW5EZXN0aW5hdGlvbl0gPSBOb25lCiAgICAjIGRhdGEgdHlwZTogU3dpZnREZXN0aW5hdGlvbgogICAgb25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yOiBPcHRpb25hbFtTd2lmdERlc3RpbmF0aW9uXSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBBY2hEZXN0aW5hdGlvbgogICAgb25lb2Zfc2NoZW1hXzNfdmFsaWRhdG9yOiBPcHRpb25hbFtBY2hEZXN0aW5hdGlvbl0gPSBOb25lCiAgICAjIGRhdGEgdHlwZTogVVNXaXJlRGVzdGluYXRpb24KICAgIG9uZW9mX3NjaGVtYV80X3ZhbGlkYXRvcjogT3B0aW9uYWxbVVNXaXJlRGVzdGluYXRpb25dID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IFNwZWlEZXN0aW5hdGlvbgogICAgb25lb2Zfc2NoZW1hXzVfdmFsaWRhdG9yOiBPcHRpb25hbFtTcGVpRGVzdGluYXRpb25dID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IFNFUEFEZXN0aW5hdGlvbgogICAgb25lb2Zfc2NoZW1hXzZfdmFsaWRhdG9yOiBPcHRpb25hbFtTRVBBRGVzdGluYXRpb25dID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IFBpeERlc3RpbmF0aW9uCiAgICBvbmVvZl9zY2hlbWFfN192YWxpZGF0b3I6IE9wdGlvbmFsW1BpeERlc3RpbmF0aW9uXSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBMb2NhbEJhbmtUcmFuc2ZlckFmcmljYURlc3RpbmF0aW9uCiAgICBvbmVvZl9zY2hlbWFfOF92YWxpZGF0b3I6IE9wdGlvbmFsW0xvY2FsQmFua1RyYW5zZmVyQWZyaWNhRGVzdGluYXRpb25dID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IE1vYmlsZU1vbmV5RGVzdGluYXRpb24KICAgIG9uZW9mX3NjaGVtYV85X3ZhbGlkYXRvcjogT3B0aW9uYWxbTW9iaWxlTW9uZXlEZXN0aW5hdGlvbl0gPSBOb25lCiAgICAjIGRhdGEgdHlwZTogRXVyb3BlYW5TRVBBRGVzdGluYXRpb24KICAgIG9uZW9mX3NjaGVtYV8xMF92YWxpZGF0b3I6IE9wdGlvbmFsW0V1cm9wZWFuU0VQQURlc3RpbmF0aW9uXSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBDaGFwc0Rlc3RpbmF0aW9uCiAgICBvbmVvZl9zY2hlbWFfMTFfdmFsaWRhdG9yOiBPcHRpb25hbFtDaGFwc0Rlc3RpbmF0aW9uXSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBJbnRlcmFjRGVzdGluYXRpb24KICAgIG9uZW9mX3NjaGVtYV8xMl92YWxpZGF0b3I6IE9wdGlvbmFsW0ludGVyYWNEZXN0aW5hdGlvbl0gPSBOb25lCiAgICAjIGRhdGEgdHlwZTogUGF5aWREZXN0aW5hdGlvbgogICAgb25lb2Zfc2NoZW1hXzEzX3ZhbGlkYXRvcjogT3B0aW9uYWxbUGF5aWREZXN0aW5hdGlvbl0gPSBOb25lCiAgICAjIGRhdGEgdHlwZTogSW50ZXJuYWxUcmFuc2ZlckRlc3RpbmF0aW9uCiAgICBvbmVvZl9zY2hlbWFfMTRfdmFsaWRhdG9yOiBPcHRpb25hbFtJbnRlcm5hbFRyYW5zZmVyRGVzdGluYXRpb25dID0gTm9uZQogICAgYWN0dWFsX2luc3RhbmNlOiBPcHRpb25hbFtVbmlvbltBY2hEZXN0aW5hdGlvbiwgQ2hhcHNEZXN0aW5hdGlvbiwgRXVyb3BlYW5TRVBBRGVzdGluYXRpb24sIEliYW5EZXN0aW5hdGlvbiwgSW50ZXJhY0Rlc3RpbmF0aW9uLCBJbnRlcm5hbFRyYW5zZmVyRGVzdGluYXRpb24sIExvY2FsQmFua1RyYW5zZmVyQWZyaWNhRGVzdGluYXRpb24sIE1vYmlsZU1vbmV5RGVzdGluYXRpb24sIFBheWlkRGVzdGluYXRpb24sIFBpeERlc3RpbmF0aW9uLCBTRVBBRGVzdGluYXRpb24sIFNwZWlEZXN0aW5hdGlvbiwgU3dpZnREZXN0aW5hdGlvbiwgVVNXaXJlRGVzdGluYXRpb25dXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgIkFjaERlc3RpbmF0aW9uIiwgIkNoYXBzRGVzdGluYXRpb24iLCAiRXVyb3BlYW5TRVBBRGVzdGluYXRpb24iLCAiSWJhbkRlc3RpbmF0aW9uIiwgIkludGVyYWNEZXN0aW5hdGlvbiIsICJJbnRlcm5hbFRyYW5zZmVyRGVzdGluYXRpb24iLCAiTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FEZXN0aW5hdGlvbiIsICJNb2JpbGVNb25leURlc3RpbmF0aW9uIiwgIlBheWlkRGVzdGluYXRpb24iLCAiUGl4RGVzdGluYXRpb24iLCAiU0VQQURlc3RpbmF0aW9uIiwgIlNwZWlEZXN0aW5hdGlvbiIsICJTd2lmdERlc3RpbmF0aW9uIiwgIlVTV2lyZURlc3RpbmF0aW9uIiB9CgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gRmlhdERlc3RpbmF0aW9uLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBJYmFuRGVzdGluYXRpb24KICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBJYmFuRGVzdGluYXRpb24pOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYEliYW5EZXN0aW5hdGlvbmAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogU3dpZnREZXN0aW5hdGlvbgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIFN3aWZ0RGVzdGluYXRpb24pOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYFN3aWZ0RGVzdGluYXRpb25gIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IEFjaERlc3RpbmF0aW9uCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgQWNoRGVzdGluYXRpb24pOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYEFjaERlc3RpbmF0aW9uYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBVU1dpcmVEZXN0aW5hdGlvbgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIFVTV2lyZURlc3RpbmF0aW9uKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBVU1dpcmVEZXN0aW5hdGlvbmAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogU3BlaURlc3RpbmF0aW9uCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgU3BlaURlc3RpbmF0aW9uKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBTcGVpRGVzdGluYXRpb25gIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IFNFUEFEZXN0aW5hdGlvbgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIFNFUEFEZXN0aW5hdGlvbik6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgU0VQQURlc3RpbmF0aW9uYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBQaXhEZXN0aW5hdGlvbgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIFBpeERlc3RpbmF0aW9uKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBQaXhEZXN0aW5hdGlvbmAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FEZXN0aW5hdGlvbgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIExvY2FsQmFua1RyYW5zZmVyQWZyaWNhRGVzdGluYXRpb24pOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYExvY2FsQmFua1RyYW5zZmVyQWZyaWNhRGVzdGluYXRpb25gIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IE1vYmlsZU1vbmV5RGVzdGluYXRpb24KICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBNb2JpbGVNb25leURlc3RpbmF0aW9uKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBNb2JpbGVNb25leURlc3RpbmF0aW9uYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBFdXJvcGVhblNFUEFEZXN0aW5hdGlvbgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIEV1cm9wZWFuU0VQQURlc3RpbmF0aW9uKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBFdXJvcGVhblNFUEFEZXN0aW5hdGlvbmAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogQ2hhcHNEZXN0aW5hdGlvbgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIENoYXBzRGVzdGluYXRpb24pOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYENoYXBzRGVzdGluYXRpb25gIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IEludGVyYWNEZXN0aW5hdGlvbgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIEludGVyYWNEZXN0aW5hdGlvbik6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgSW50ZXJhY0Rlc3RpbmF0aW9uYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBQYXlpZERlc3RpbmF0aW9uCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgUGF5aWREZXN0aW5hdGlvbik6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgUGF5aWREZXN0aW5hdGlvbmAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogSW50ZXJuYWxUcmFuc2ZlckRlc3RpbmF0aW9uCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgSW50ZXJuYWxUcmFuc2ZlckRlc3RpbmF0aW9uKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBJbnRlcm5hbFRyYW5zZmVyRGVzdGluYXRpb25gIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIEZpYXREZXN0aW5hdGlvbiB3aXRoIG9uZU9mIHNjaGVtYXM6IEFjaERlc3RpbmF0aW9uLCBDaGFwc0Rlc3RpbmF0aW9uLCBFdXJvcGVhblNFUEFEZXN0aW5hdGlvbiwgSWJhbkRlc3RpbmF0aW9uLCBJbnRlcmFjRGVzdGluYXRpb24sIEludGVybmFsVHJhbnNmZXJEZXN0aW5hdGlvbiwgTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FEZXN0aW5hdGlvbiwgTW9iaWxlTW9uZXlEZXN0aW5hdGlvbiwgUGF5aWREZXN0aW5hdGlvbiwgUGl4RGVzdGluYXRpb24sIFNFUEFEZXN0aW5hdGlvbiwgU3BlaURlc3RpbmF0aW9uLCBTd2lmdERlc3RpbmF0aW9uLCBVU1dpcmVEZXN0aW5hdGlvbi4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBGaWF0RGVzdGluYXRpb24gd2l0aCBvbmVPZiBzY2hlbWFzOiBBY2hEZXN0aW5hdGlvbiwgQ2hhcHNEZXN0aW5hdGlvbiwgRXVyb3BlYW5TRVBBRGVzdGluYXRpb24sIEliYW5EZXN0aW5hdGlvbiwgSW50ZXJhY0Rlc3RpbmF0aW9uLCBJbnRlcm5hbFRyYW5zZmVyRGVzdGluYXRpb24sIExvY2FsQmFua1RyYW5zZmVyQWZyaWNhRGVzdGluYXRpb24sIE1vYmlsZU1vbmV5RGVzdGluYXRpb24sIFBheWlkRGVzdGluYXRpb24sIFBpeERlc3RpbmF0aW9uLCBTRVBBRGVzdGluYXRpb24sIFNwZWlEZXN0aW5hdGlvbiwgU3dpZnREZXN0aW5hdGlvbiwgVVNXaXJlRGVzdGluYXRpb24uIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBVbmlvbltzdHIsIERpY3Rbc3RyLCBBbnldXSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCgogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIEliYW5EZXN0aW5hdGlvbgogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gSWJhbkRlc3RpbmF0aW9uLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIFN3aWZ0RGVzdGluYXRpb24KICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IFN3aWZ0RGVzdGluYXRpb24uZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gQWNoRGVzdGluYXRpb24KICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IEFjaERlc3RpbmF0aW9uLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIFVTV2lyZURlc3RpbmF0aW9uCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBVU1dpcmVEZXN0aW5hdGlvbi5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBTcGVpRGVzdGluYXRpb24KICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IFNwZWlEZXN0aW5hdGlvbi5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBTRVBBRGVzdGluYXRpb24KICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IFNFUEFEZXN0aW5hdGlvbi5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBQaXhEZXN0aW5hdGlvbgogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gUGl4RGVzdGluYXRpb24uZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FEZXN0aW5hdGlvbgogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FEZXN0aW5hdGlvbi5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBNb2JpbGVNb25leURlc3RpbmF0aW9uCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBNb2JpbGVNb25leURlc3RpbmF0aW9uLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIEV1cm9wZWFuU0VQQURlc3RpbmF0aW9uCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBFdXJvcGVhblNFUEFEZXN0aW5hdGlvbi5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBDaGFwc0Rlc3RpbmF0aW9uCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBDaGFwc0Rlc3RpbmF0aW9uLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIEludGVyYWNEZXN0aW5hdGlvbgogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gSW50ZXJhY0Rlc3RpbmF0aW9uLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIFBheWlkRGVzdGluYXRpb24KICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IFBheWlkRGVzdGluYXRpb24uZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gSW50ZXJuYWxUcmFuc2ZlckRlc3RpbmF0aW9uCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBJbnRlcm5hbFRyYW5zZmVyRGVzdGluYXRpb24uZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCgogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBGaWF0RGVzdGluYXRpb24gd2l0aCBvbmVPZiBzY2hlbWFzOiBBY2hEZXN0aW5hdGlvbiwgQ2hhcHNEZXN0aW5hdGlvbiwgRXVyb3BlYW5TRVBBRGVzdGluYXRpb24sIEliYW5EZXN0aW5hdGlvbiwgSW50ZXJhY0Rlc3RpbmF0aW9uLCBJbnRlcm5hbFRyYW5zZmVyRGVzdGluYXRpb24sIExvY2FsQmFua1RyYW5zZmVyQWZyaWNhRGVzdGluYXRpb24sIE1vYmlsZU1vbmV5RGVzdGluYXRpb24sIFBheWlkRGVzdGluYXRpb24sIFBpeERlc3RpbmF0aW9uLCBTRVBBRGVzdGluYXRpb24sIFNwZWlEZXN0aW5hdGlvbiwgU3dpZnREZXN0aW5hdGlvbiwgVVNXaXJlRGVzdGluYXRpb24uIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gRmlhdERlc3RpbmF0aW9uIHdpdGggb25lT2Ygc2NoZW1hczogQWNoRGVzdGluYXRpb24sIENoYXBzRGVzdGluYXRpb24sIEV1cm9wZWFuU0VQQURlc3RpbmF0aW9uLCBJYmFuRGVzdGluYXRpb24sIEludGVyYWNEZXN0aW5hdGlvbiwgSW50ZXJuYWxUcmFuc2ZlckRlc3RpbmF0aW9uLCBMb2NhbEJhbmtUcmFuc2ZlckFmcmljYURlc3RpbmF0aW9uLCBNb2JpbGVNb25leURlc3RpbmF0aW9uLCBQYXlpZERlc3RpbmF0aW9uLCBQaXhEZXN0aW5hdGlvbiwgU0VQQURlc3RpbmF0aW9uLCBTcGVpRGVzdGluYXRpb24sIFN3aWZ0RGVzdGluYXRpb24sIFVTV2lyZURlc3RpbmF0aW9uLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuICJudWxsIgoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fanNvbiIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24oKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYuYWN0dWFsX2luc3RhbmNlKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IE9wdGlvbmFsW1VuaW9uW0RpY3Rbc3RyLCBBbnldLCBBY2hEZXN0aW5hdGlvbiwgQ2hhcHNEZXN0aW5hdGlvbiwgRXVyb3BlYW5TRVBBRGVzdGluYXRpb24sIEliYW5EZXN0aW5hdGlvbiwgSW50ZXJhY0Rlc3RpbmF0aW9uLCBJbnRlcm5hbFRyYW5zZmVyRGVzdGluYXRpb24sIExvY2FsQmFua1RyYW5zZmVyQWZyaWNhRGVzdGluYXRpb24sIE1vYmlsZU1vbmV5RGVzdGluYXRpb24sIFBheWlkRGVzdGluYXRpb24sIFBpeERlc3RpbmF0aW9uLCBTRVBBRGVzdGluYXRpb24sIFNwZWlEZXN0aW5hdGlvbiwgU3dpZnREZXN0aW5hdGlvbiwgVVNXaXJlRGVzdGluYXRpb25dXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgcHJpbWl0aXZlIHR5cGUKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/fiat_payment_metadata.py b/fireblocks/models/fiat_payment_metadata.py index 8428650b..734be164 100644 --- a/fireblocks/models/fiat_payment_metadata.py +++ b/fireblocks/models/fiat_payment_metadata.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class FiatPaymentMetadata(BaseModel): - """ - FiatPaymentMetadata - """ # noqa: E501 - reference_id: Optional[StrictStr] = Field(default=None, alias="referenceId") - __properties: ClassVar[List[str]] = ["referenceId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of FiatPaymentMetadata from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of FiatPaymentMetadata from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "referenceId": obj.get("referenceId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBGaWF0UGF5bWVudE1ldGFkYXRhKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEZpYXRQYXltZW50TWV0YWRhdGEKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHJlZmVyZW5jZV9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InJlZmVyZW5jZUlkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicmVmZXJlbmNlSWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEZpYXRQYXltZW50TWV0YWRhdGEgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRmlhdFBheW1lbnRNZXRhZGF0YSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJyZWZlcmVuY2VJZCI6IG9iai5nZXQoInJlZmVyZW5jZUlkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/fiat_transfer.py b/fireblocks/models/fiat_transfer.py index 29d336ce..85042bcb 100644 --- a/fireblocks/models/fiat_transfer.py +++ b/fireblocks/models/fiat_transfer.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class FiatTransfer(BaseModel): - """ - FiatTransfer - """ # noqa: E501 - type: Optional[StrictStr] = None - amount: StrictStr = Field(description="The amount of the fiat transfer.") - reference_id: Optional[StrictStr] = Field(default=None, description="The reference ID for the fiat transfer.", alias="referenceId") - __properties: ClassVar[List[str]] = ["type", "amount", "referenceId"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['FIAT']): - raise ValueError("must be one of enum values ('FIAT')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of FiatTransfer from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of FiatTransfer from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "amount": obj.get("amount"), - "referenceId": obj.get("referenceId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEZpYXRUcmFuc2ZlcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBGaWF0VHJhbnNmZXIKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBhbW91bnQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYW1vdW50IG9mIHRoZSBmaWF0IHRyYW5zZmVyLiIpCiAgICByZWZlcmVuY2VfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgcmVmZXJlbmNlIElEIGZvciB0aGUgZmlhdCB0cmFuc2Zlci4iLCBhbGlhcz0icmVmZXJlbmNlSWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgImFtb3VudCIsICJyZWZlcmVuY2VJZCJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigndHlwZScpCiAgICBkZWYgdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnRklBVCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdGSUFUJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEZpYXRUcmFuc2ZlciBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGaWF0VHJhbnNmZXIgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImFtb3VudCI6IG9iai5nZXQoImFtb3VudCIpLAogICAgICAgICAgICAicmVmZXJlbmNlSWQiOiBvYmouZ2V0KCJyZWZlcmVuY2VJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/fixed_amount_type_enum.py b/fireblocks/models/fixed_amount_type_enum.py index f00fa89f..3626c9e0 100644 --- a/fireblocks/models/fixed_amount_type_enum.py +++ b/fireblocks/models/fixed_amount_type_enum.py @@ -1,37 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class FixedAmountTypeEnum(str, Enum): - """ - The type of amount for the fee, indicating a fixed amount. - """ - - """ - allowed enum values - """ - FIXED = 'FIXED' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of FixedAmountTypeEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBGaXhlZEFtb3VudFR5cGVFbnVtKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIFRoZSB0eXBlIG9mIGFtb3VudCBmb3IgdGhlIGZlZSwgaW5kaWNhdGluZyBhIGZpeGVkIGFtb3VudC4KICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBGSVhFRCA9ICdGSVhFRCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGaXhlZEFtb3VudFR5cGVFbnVtIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/fixed_fee.py b/fireblocks/models/fixed_fee.py index e804b973..2c339988 100644 --- a/fireblocks/models/fixed_fee.py +++ b/fireblocks/models/fixed_fee.py @@ -1,99 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, field_validator -from typing import Any, ClassVar, Dict, List -from typing_extensions import Annotated -from fireblocks.models.fixed_amount_type_enum import FixedAmountTypeEnum -from typing import Optional, Set -from typing_extensions import Self - -class FixedFee(BaseModel): - """ - FixedFee - """ # noqa: E501 - amount_type: FixedAmountTypeEnum = Field(alias="amountType") - amount: Annotated[str, Field(strict=True)] = Field(description="The fixed amount of the fee") - __properties: ClassVar[List[str]] = ["amountType", "amount"] - - @field_validator('amount') - def amount_validate_regular_expression(cls, value): - """Validates the regular expression""" - if not re.match(r"^\d+(\.\d+)?$", value): - raise ValueError(r"must validate the regular expression /^\d+(\.\d+)?$/") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of FixedFee from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of FixedFee from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amountType": obj.get("amountType"), - "amount": obj.get("amount") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZpeGVkX2Ftb3VudF90eXBlX2VudW0gaW1wb3J0IEZpeGVkQW1vdW50VHlwZUVudW0KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRml4ZWRGZWUoQmFzZU1vZGVsKToKICAgICIiIgogICAgRml4ZWRGZWUKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFtb3VudF90eXBlOiBGaXhlZEFtb3VudFR5cGVFbnVtID0gRmllbGQoYWxpYXM9ImFtb3VudFR5cGUiKQogICAgYW1vdW50OiBBbm5vdGF0ZWRbc3RyLCBGaWVsZChzdHJpY3Q9VHJ1ZSldID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBmaXhlZCBhbW91bnQgb2YgdGhlIGZlZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFtb3VudFR5cGUiLCAiYW1vdW50Il0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhbW91bnQnKQogICAgZGVmIGFtb3VudF92YWxpZGF0ZV9yZWd1bGFyX2V4cHJlc3Npb24oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSByZWd1bGFyIGV4cHJlc3Npb24iIiIKICAgICAgICBpZiBub3QgcmUubWF0Y2gociJeXGQrKFwuXGQrKT8kIiwgdmFsdWUpOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKHIibXVzdCB2YWxpZGF0ZSB0aGUgcmVndWxhciBleHByZXNzaW9uIC9eXGQrKFwuXGQrKT8kLyIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRml4ZWRGZWUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgRml4ZWRGZWUgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYW1vdW50VHlwZSI6IG9iai5nZXQoImFtb3VudFR5cGUiKSwKICAgICAgICAgICAgImFtb3VudCI6IG9iai5nZXQoImFtb3VudCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/freeze_transaction_response.py b/fireblocks/models/freeze_transaction_response.py index 4b038ef7..0e594ccc 100644 --- a/fireblocks/models/freeze_transaction_response.py +++ b/fireblocks/models/freeze_transaction_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictBool -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class FreezeTransactionResponse(BaseModel): - """ - FreezeTransactionResponse - """ # noqa: E501 - success: Optional[StrictBool] = None - __properties: ClassVar[List[str]] = ["success"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of FreezeTransactionResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of FreezeTransactionResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "success": obj.get("success") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RCb29sCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBGcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEZyZWV6ZVRyYW5zYWN0aW9uUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHN1Y2Nlc3M6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzdWNjZXNzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBGcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEZyZWV6ZVRyYW5zYWN0aW9uUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3VjY2VzcyI6IG9iai5nZXQoInN1Y2Nlc3MiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/function_doc.py b/fireblocks/models/function_doc.py index 743ee821..56025e66 100644 --- a/fireblocks/models/function_doc.py +++ b/fireblocks/models/function_doc.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class FunctionDoc(BaseModel): - """ - FunctionDoc - """ # noqa: E501 - details: Optional[StrictStr] = Field(default=None, description="A description of the function") - params: Optional[Dict[str, StrictStr]] = Field(default=None, description="A description of the function parameters") - returns: Optional[Dict[str, StrictStr]] = Field(default=None, description="A description of the function return values. only for read functions") - __properties: ClassVar[List[str]] = ["details", "params", "returns"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of FunctionDoc from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of FunctionDoc from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "details": obj.get("details"), - "params": obj.get("params"), - "returns": obj.get("returns") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBGdW5jdGlvbkRvYyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBGdW5jdGlvbkRvYwogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGV0YWlsczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkEgZGVzY3JpcHRpb24gb2YgdGhlIGZ1bmN0aW9uIikKICAgIHBhcmFtczogT3B0aW9uYWxbRGljdFtzdHIsIFN0cmljdFN0cl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQSBkZXNjcmlwdGlvbiBvZiB0aGUgZnVuY3Rpb24gcGFyYW1ldGVycyIpCiAgICByZXR1cm5zOiBPcHRpb25hbFtEaWN0W3N0ciwgU3RyaWN0U3RyXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBIGRlc2NyaXB0aW9uIG9mIHRoZSBmdW5jdGlvbiByZXR1cm4gdmFsdWVzLiBvbmx5IGZvciByZWFkIGZ1bmN0aW9ucyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRldGFpbHMiLCAicGFyYW1zIiwgInJldHVybnMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEZ1bmN0aW9uRG9jIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEZ1bmN0aW9uRG9jIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRldGFpbHMiOiBvYmouZ2V0KCJkZXRhaWxzIiksCiAgICAgICAgICAgICJwYXJhbXMiOiBvYmouZ2V0KCJwYXJhbXMiKSwKICAgICAgICAgICAgInJldHVybnMiOiBvYmouZ2V0KCJyZXR1cm5zIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/funds.py b/fireblocks/models/funds.py index b05c3567..ab187efd 100644 --- a/fireblocks/models/funds.py +++ b/fireblocks/models/funds.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class Funds(BaseModel): - """ - Funds - """ # noqa: E501 - amount: Optional[Union[StrictFloat, StrictInt]] = None - __properties: ClassVar[List[str]] = ["amount"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of Funds from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of Funds from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": obj.get("amount") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RGbG9hdCwgU3RyaWN0SW50CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgRnVuZHMoQmFzZU1vZGVsKToKICAgICIiIgogICAgRnVuZHMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFtb3VudDogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhbW91bnQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEZ1bmRzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEZ1bmRzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFtb3VudCI6IG9iai5nZXQoImFtb3VudCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/gas_station_configuration.py b/fireblocks/models/gas_station_configuration.py index f85f953c..40cb9f38 100644 --- a/fireblocks/models/gas_station_configuration.py +++ b/fireblocks/models/gas_station_configuration.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class GasStationConfiguration(BaseModel): - """ - GasStationConfiguration - """ # noqa: E501 - gas_threshold: Optional[StrictStr] = Field(default=None, alias="gasThreshold") - gas_cap: Optional[StrictStr] = Field(default=None, alias="gasCap") - max_gas_price: Optional[StrictStr] = Field(default=None, alias="maxGasPrice") - __properties: ClassVar[List[str]] = ["gasThreshold", "gasCap", "maxGasPrice"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GasStationConfiguration from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GasStationConfiguration from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "gasThreshold": obj.get("gasThreshold"), - "gasCap": obj.get("gasCap"), - "maxGasPrice": obj.get("maxGasPrice") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBHYXNTdGF0aW9uQ29uZmlndXJhdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBHYXNTdGF0aW9uQ29uZmlndXJhdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgZ2FzX3RocmVzaG9sZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Imdhc1RocmVzaG9sZCIpCiAgICBnYXNfY2FwOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZ2FzQ2FwIikKICAgIG1heF9nYXNfcHJpY2U6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJtYXhHYXNQcmljZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImdhc1RocmVzaG9sZCIsICJnYXNDYXAiLCAibWF4R2FzUHJpY2UiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEdhc1N0YXRpb25Db25maWd1cmF0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEdhc1N0YXRpb25Db25maWd1cmF0aW9uIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImdhc1RocmVzaG9sZCI6IG9iai5nZXQoImdhc1RocmVzaG9sZCIpLAogICAgICAgICAgICAiZ2FzQ2FwIjogb2JqLmdldCgiZ2FzQ2FwIiksCiAgICAgICAgICAgICJtYXhHYXNQcmljZSI6IG9iai5nZXQoIm1heEdhc1ByaWNlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/gas_station_configuration_response.py b/fireblocks/models/gas_station_configuration_response.py index 653f5713..a8c05d31 100644 --- a/fireblocks/models/gas_station_configuration_response.py +++ b/fireblocks/models/gas_station_configuration_response.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class GasStationConfigurationResponse(BaseModel): - """ - GasStationConfigurationResponse - """ # noqa: E501 - gas_threshold: Optional[StrictStr] = Field(default=None, alias="gasThreshold") - gas_cap: Optional[StrictStr] = Field(default=None, alias="gasCap") - max_gas_price: Optional[StrictStr] = Field(default=None, alias="maxGasPrice") - __properties: ClassVar[List[str]] = ["gasThreshold", "gasCap", "maxGasPrice"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GasStationConfigurationResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if max_gas_price (nullable) is None - # and model_fields_set contains the field - if self.max_gas_price is None and "max_gas_price" in self.model_fields_set: - _dict['maxGasPrice'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GasStationConfigurationResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "gasThreshold": obj.get("gasThreshold"), - "gasCap": obj.get("gasCap"), - "maxGasPrice": obj.get("maxGasPrice") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGdhc190aHJlc2hvbGQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJnYXNUaHJlc2hvbGQiKQogICAgZ2FzX2NhcDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Imdhc0NhcCIpCiAgICBtYXhfZ2FzX3ByaWNlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ibWF4R2FzUHJpY2UiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJnYXNUaHJlc2hvbGQiLCAiZ2FzQ2FwIiwgIm1heEdhc1ByaWNlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIHNldCB0byBOb25lIGlmIG1heF9nYXNfcHJpY2UgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLm1heF9nYXNfcHJpY2UgaXMgTm9uZSBhbmQgIm1heF9nYXNfcHJpY2UiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ21heEdhc1ByaWNlJ10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJnYXNUaHJlc2hvbGQiOiBvYmouZ2V0KCJnYXNUaHJlc2hvbGQiKSwKICAgICAgICAgICAgImdhc0NhcCI6IG9iai5nZXQoImdhc0NhcCIpLAogICAgICAgICAgICAibWF4R2FzUHJpY2UiOiBvYmouZ2V0KCJtYXhHYXNQcmljZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/gas_station_properties_response.py b/fireblocks/models/gas_station_properties_response.py index 4cf56dad..a118d063 100644 --- a/fireblocks/models/gas_station_properties_response.py +++ b/fireblocks/models/gas_station_properties_response.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.gas_station_configuration_response import GasStationConfigurationResponse -from typing import Optional, Set -from typing_extensions import Self - -class GasStationPropertiesResponse(BaseModel): - """ - GasStationPropertiesResponse - """ # noqa: E501 - balance: Optional[Dict[str, Any]] = None - configuration: Optional[GasStationConfigurationResponse] = None - __properties: ClassVar[List[str]] = ["balance", "configuration"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GasStationPropertiesResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of configuration - if self.configuration: - _dict['configuration'] = self.configuration.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GasStationPropertiesResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "balance": obj.get("balance"), - "configuration": GasStationConfigurationResponse.from_dict(obj["configuration"]) if obj.get("configuration") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25fcmVzcG9uc2UgaW1wb3J0IEdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2UKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgR2FzU3RhdGlvblByb3BlcnRpZXNSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBHYXNTdGF0aW9uUHJvcGVydGllc1Jlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBiYWxhbmNlOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0gPSBOb25lCiAgICBjb25maWd1cmF0aW9uOiBPcHRpb25hbFtHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYmFsYW5jZSIsICJjb25maWd1cmF0aW9uIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHYXNTdGF0aW9uUHJvcGVydGllc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgY29uZmlndXJhdGlvbgogICAgICAgIGlmIHNlbGYuY29uZmlndXJhdGlvbjoKICAgICAgICAgICAgX2RpY3RbJ2NvbmZpZ3VyYXRpb24nXSA9IHNlbGYuY29uZmlndXJhdGlvbi50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEdhc1N0YXRpb25Qcm9wZXJ0aWVzUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYmFsYW5jZSI6IG9iai5nZXQoImJhbGFuY2UiKSwKICAgICAgICAgICAgImNvbmZpZ3VyYXRpb24iOiBHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlLmZyb21fZGljdChvYmpbImNvbmZpZ3VyYXRpb24iXSkgaWYgb2JqLmdldCgiY29uZmlndXJhdGlvbiIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/gassless_standard_configurations.py b/fireblocks/models/gassless_standard_configurations.py index 69202b1e..7cea845c 100644 --- a/fireblocks/models/gassless_standard_configurations.py +++ b/fireblocks/models/gassless_standard_configurations.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.gassless_standard_configurations_gasless_standard_configurations_value import GasslessStandardConfigurationsGaslessStandardConfigurationsValue -from typing import Optional, Set -from typing_extensions import Self - -class GasslessStandardConfigurations(BaseModel): - """ - The gasless configuration of the contract - """ # noqa: E501 - gasless_standard_configurations: Optional[Dict[str, GasslessStandardConfigurationsGaslessStandardConfigurationsValue]] = Field(default=None, alias="gaslessStandardConfigurations") - __properties: ClassVar[List[str]] = ["gaslessStandardConfigurations"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GasslessStandardConfigurations from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each value in gasless_standard_configurations (dict) - _field_dict = {} - if self.gasless_standard_configurations: - for _key_gasless_standard_configurations in self.gasless_standard_configurations: - if self.gasless_standard_configurations[_key_gasless_standard_configurations]: - _field_dict[_key_gasless_standard_configurations] = self.gasless_standard_configurations[_key_gasless_standard_configurations].to_dict() - _dict['gaslessStandardConfigurations'] = _field_dict - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GasslessStandardConfigurations from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "gaslessStandardConfigurations": dict( - (_k, GasslessStandardConfigurationsGaslessStandardConfigurationsValue.from_dict(_v)) - for _k, _v in obj["gaslessStandardConfigurations"].items() - ) - if obj.get("gaslessStandardConfigurations") is not None - else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5nYXNzbGVzc19zdGFuZGFyZF9jb25maWd1cmF0aW9uc19nYXNsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zX3ZhbHVlIGltcG9ydCBHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnNHYXNsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc1ZhbHVlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9ucyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUaGUgZ2FzbGVzcyBjb25maWd1cmF0aW9uIG9mIHRoZSBjb250cmFjdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgZ2FzbGVzc19zdGFuZGFyZF9jb25maWd1cmF0aW9uczogT3B0aW9uYWxbRGljdFtzdHIsIEdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc0dhc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zVmFsdWVdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Imdhc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZ2FzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9ucyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggdmFsdWUgaW4gZ2FzbGVzc19zdGFuZGFyZF9jb25maWd1cmF0aW9ucyAoZGljdCkKICAgICAgICBfZmllbGRfZGljdCA9IHt9CiAgICAgICAgaWYgc2VsZi5nYXNsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zOgogICAgICAgICAgICBmb3IgX2tleV9nYXNsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zIGluIHNlbGYuZ2FzbGVzc19zdGFuZGFyZF9jb25maWd1cmF0aW9uczoKICAgICAgICAgICAgICAgIGlmIHNlbGYuZ2FzbGVzc19zdGFuZGFyZF9jb25maWd1cmF0aW9uc1tfa2V5X2dhc2xlc3Nfc3RhbmRhcmRfY29uZmlndXJhdGlvbnNdOgogICAgICAgICAgICAgICAgICAgIF9maWVsZF9kaWN0W19rZXlfZ2FzbGVzc19zdGFuZGFyZF9jb25maWd1cmF0aW9uc10gPSBzZWxmLmdhc2xlc3Nfc3RhbmRhcmRfY29uZmlndXJhdGlvbnNbX2tleV9nYXNsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zXS50b19kaWN0KCkKICAgICAgICAgICAgX2RpY3RbJ2dhc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zJ10gPSBfZmllbGRfZGljdAogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2Fzc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImdhc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zIjogZGljdCgKICAgICAgICAgICAgICAgIChfaywgR2Fzc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zR2FzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnNWYWx1ZS5mcm9tX2RpY3QoX3YpKQogICAgICAgICAgICAgICAgZm9yIF9rLCBfdiBpbiBvYmpbImdhc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zIl0uaXRlbXMoKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIG9iai5nZXQoImdhc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zIikgaXMgbm90IE5vbmUKICAgICAgICAgICAgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/gassless_standard_configurations_gasless_standard_configurations_value.py b/fireblocks/models/gassless_standard_configurations_gasless_standard_configurations_value.py index 6c0fffbc..d1adc5dc 100644 --- a/fireblocks/models/gassless_standard_configurations_gasless_standard_configurations_value.py +++ b/fireblocks/models/gassless_standard_configurations_gasless_standard_configurations_value.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class GasslessStandardConfigurationsGaslessStandardConfigurationsValue(BaseModel): - """ - GasslessStandardConfigurationsGaslessStandardConfigurationsValue - """ # noqa: E501 - last_on_chain_check: Optional[datetime] = Field(default=None, alias="lastOnChainCheck") - forwarder_addresses: Optional[List[StrictStr]] = Field(default=None, alias="forwarderAddresses") - __properties: ClassVar[List[str]] = ["lastOnChainCheck", "forwarderAddresses"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GasslessStandardConfigurationsGaslessStandardConfigurationsValue from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GasslessStandardConfigurationsGaslessStandardConfigurationsValue from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "lastOnChainCheck": obj.get("lastOnChainCheck"), - "forwarderAddresses": obj.get("forwarderAddresses") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnNHYXNsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc1ZhbHVlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc0dhc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zVmFsdWUKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGxhc3Rfb25fY2hhaW5fY2hlY2s6IE9wdGlvbmFsW2RhdGV0aW1lXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Imxhc3RPbkNoYWluQ2hlY2siKQogICAgZm9yd2FyZGVyX2FkZHJlc3NlczogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImZvcndhcmRlckFkZHJlc3NlcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImxhc3RPbkNoYWluQ2hlY2siLCAiZm9yd2FyZGVyQWRkcmVzc2VzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnNHYXNsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc1ZhbHVlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc0dhc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zVmFsdWUgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibGFzdE9uQ2hhaW5DaGVjayI6IG9iai5nZXQoImxhc3RPbkNoYWluQ2hlY2siKSwKICAgICAgICAgICAgImZvcndhcmRlckFkZHJlc3NlcyI6IG9iai5nZXQoImZvcndhcmRlckFkZHJlc3NlcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/get_api_users_response.py b/fireblocks/models/get_api_users_response.py index 1be55a99..5ffe30b7 100644 --- a/fireblocks/models/get_api_users_response.py +++ b/fireblocks/models/get_api_users_response.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List -from fireblocks.models.api_user import APIUser -from typing import Optional, Set -from typing_extensions import Self - -class GetAPIUsersResponse(BaseModel): - """ - GetAPIUsersResponse - """ # noqa: E501 - users: List[APIUser] - __properties: ClassVar[List[str]] = ["users"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetAPIUsersResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in users (list) - _items = [] - if self.users: - for _item_users in self.users: - if _item_users: - _items.append(_item_users.to_dict()) - _dict['users'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetAPIUsersResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "users": [APIUser.from_dict(_item) for _item in obj["users"]] if obj.get("users") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXBpX3VzZXIgaW1wb3J0IEFQSVVzZXIKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgR2V0QVBJVXNlcnNSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBHZXRBUElVc2Vyc1Jlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB1c2VyczogTGlzdFtBUElVc2VyXQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ1c2VycyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0QVBJVXNlcnNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiB1c2VycyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYudXNlcnM6CiAgICAgICAgICAgIGZvciBfaXRlbV91c2VycyBpbiBzZWxmLnVzZXJzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fdXNlcnM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV91c2Vycy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0Wyd1c2VycyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRBUElVc2Vyc1Jlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInVzZXJzIjogW0FQSVVzZXIuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJ1c2VycyJdXSBpZiBvYmouZ2V0KCJ1c2VycyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/get_audit_logs_response.py b/fireblocks/models/get_audit_logs_response.py index 257fbc02..953737eb 100644 --- a/fireblocks/models/get_audit_logs_response.py +++ b/fireblocks/models/get_audit_logs_response.py @@ -1,105 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.audit_log_data import AuditLogData -from typing import Optional, Set -from typing_extensions import Self - -class GetAuditLogsResponse(BaseModel): - """ - GetAuditLogsResponse - """ # noqa: E501 - data: Optional[List[AuditLogData]] = None - cursor: Optional[StrictStr] = Field(default=None, description="The next id to start fetch audit logs from") - total: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The total number of audit logs") - __properties: ClassVar[List[str]] = ["data", "cursor", "total"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetAuditLogsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # set to None if cursor (nullable) is None - # and model_fields_set contains the field - if self.cursor is None and "cursor" in self.model_fields_set: - _dict['cursor'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetAuditLogsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [AuditLogData.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "cursor": obj.get("cursor"), - "total": obj.get("total") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hdWRpdF9sb2dfZGF0YSBpbXBvcnQgQXVkaXRMb2dEYXRhCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEdldEF1ZGl0TG9nc1Jlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEdldEF1ZGl0TG9nc1Jlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkYXRhOiBPcHRpb25hbFtMaXN0W0F1ZGl0TG9nRGF0YV1dID0gTm9uZQogICAgY3Vyc29yOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIG5leHQgaWQgdG8gc3RhcnQgZmV0Y2ggYXVkaXQgbG9ncyBmcm9tIikKICAgIHRvdGFsOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgdG90YWwgbnVtYmVyIG9mIGF1ZGl0IGxvZ3MiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJkYXRhIiwgImN1cnNvciIsICJ0b3RhbCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0QXVkaXRMb2dzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGF0YSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgZm9yIF9pdGVtX2RhdGEgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZGF0YToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2RhdGEudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gX2l0ZW1zCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBjdXJzb3IgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmN1cnNvciBpcyBOb25lIGFuZCAiY3Vyc29yIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydjdXJzb3InXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRBdWRpdExvZ3NSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkYXRhIjogW0F1ZGl0TG9nRGF0YS5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImRhdGEiXV0gaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImN1cnNvciI6IG9iai5nZXQoImN1cnNvciIpLAogICAgICAgICAgICAidG90YWwiOiBvYmouZ2V0KCJ0b3RhbCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/get_connections_response.py b/fireblocks/models/get_connections_response.py index eb8fa468..8584a919 100644 --- a/fireblocks/models/get_connections_response.py +++ b/fireblocks/models/get_connections_response.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.paging import Paging -from fireblocks.models.session_dto import SessionDTO -from typing import Optional, Set -from typing_extensions import Self - -class GetConnectionsResponse(BaseModel): - """ - GetConnectionsResponse - """ # noqa: E501 - data: List[SessionDTO] = Field(description="Array with the requested Web3 connection's data") - paging: Optional[Paging] = None - __properties: ClassVar[List[str]] = ["data", "paging"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetConnectionsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # override the default output from pydantic by calling `to_dict()` of paging - if self.paging: - _dict['paging'] = self.paging.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetConnectionsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [SessionDTO.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "paging": Paging.from_dict(obj["paging"]) if obj.get("paging") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYWdpbmcgaW1wb3J0IFBhZ2luZwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNlc3Npb25fZHRvIGltcG9ydCBTZXNzaW9uRFRPCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEdldENvbm5lY3Rpb25zUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgR2V0Q29ubmVjdGlvbnNSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGF0YTogTGlzdFtTZXNzaW9uRFRPXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBcnJheSB3aXRoIHRoZSByZXF1ZXN0ZWQgV2ViMyBjb25uZWN0aW9uJ3MgZGF0YSIpCiAgICBwYWdpbmc6IE9wdGlvbmFsW1BhZ2luZ10gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRhdGEiLCAicGFnaW5nIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRDb25uZWN0aW9uc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGRhdGEgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmRhdGE6CiAgICAgICAgICAgIGZvciBfaXRlbV9kYXRhIGluIHNlbGYuZGF0YToKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2RhdGE6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9kYXRhLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2RhdGEnXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBwYWdpbmcKICAgICAgICBpZiBzZWxmLnBhZ2luZzoKICAgICAgICAgICAgX2RpY3RbJ3BhZ2luZyddID0gc2VsZi5wYWdpbmcudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRDb25uZWN0aW9uc1Jlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRhdGEiOiBbU2Vzc2lvbkRUTy5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImRhdGEiXV0gaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInBhZ2luZyI6IFBhZ2luZy5mcm9tX2RpY3Qob2JqWyJwYWdpbmciXSkgaWYgb2JqLmdldCgicGFnaW5nIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/get_console_users_response.py b/fireblocks/models/get_console_users_response.py index e85d21c3..6c091060 100644 --- a/fireblocks/models/get_console_users_response.py +++ b/fireblocks/models/get_console_users_response.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List -from fireblocks.models.console_user import ConsoleUser -from typing import Optional, Set -from typing_extensions import Self - -class GetConsoleUsersResponse(BaseModel): - """ - GetConsoleUsersResponse - """ # noqa: E501 - users: List[ConsoleUser] - __properties: ClassVar[List[str]] = ["users"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetConsoleUsersResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in users (list) - _items = [] - if self.users: - for _item_users in self.users: - if _item_users: - _items.append(_item_users.to_dict()) - _dict['users'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetConsoleUsersResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "users": [ConsoleUser.from_dict(_item) for _item in obj["users"]] if obj.get("users") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29uc29sZV91c2VyIGltcG9ydCBDb25zb2xlVXNlcgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBHZXRDb25zb2xlVXNlcnNSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBHZXRDb25zb2xlVXNlcnNSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgdXNlcnM6IExpc3RbQ29uc29sZVVzZXJdCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInVzZXJzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRDb25zb2xlVXNlcnNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiB1c2VycyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYudXNlcnM6CiAgICAgICAgICAgIGZvciBfaXRlbV91c2VycyBpbiBzZWxmLnVzZXJzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fdXNlcnM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV91c2Vycy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0Wyd1c2VycyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRDb25zb2xlVXNlcnNSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ1c2VycyI6IFtDb25zb2xlVXNlci5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbInVzZXJzIl1dIGlmIG9iai5nZXQoInVzZXJzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/get_deployable_address_request.py b/fireblocks/models/get_deployable_address_request.py index 756d0df0..20c0c3b2 100644 --- a/fireblocks/models/get_deployable_address_request.py +++ b/fireblocks/models/get_deployable_address_request.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.parameter_with_value import ParameterWithValue -from typing import Optional, Set -from typing_extensions import Self - -class GetDeployableAddressRequest(BaseModel): - """ - Request body for calculating deterministic address - """ # noqa: E501 - chain_descriptor: StrictStr = Field(description="The base asset identifier of the blockchain (legacyId) to calculate deterministic address", alias="chainDescriptor") - template_id: StrictStr = Field(description="The template identifier", alias="templateId") - init_params: List[ParameterWithValue] = Field(description="The deploy function parameters and values of the contract template", alias="initParams") - salt: StrictStr = Field(description="The salt to calculate the deterministic address. Must be a number between 0 and 2^256 -1, for it to fit in the bytes32 parameter") - __properties: ClassVar[List[str]] = ["chainDescriptor", "templateId", "initParams", "salt"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetDeployableAddressRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in init_params (list) - _items = [] - if self.init_params: - for _item_init_params in self.init_params: - if _item_init_params: - _items.append(_item_init_params.to_dict()) - _dict['initParams'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetDeployableAddressRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "chainDescriptor": obj.get("chainDescriptor"), - "templateId": obj.get("templateId"), - "initParams": [ParameterWithValue.from_dict(_item) for _item in obj["initParams"]] if obj.get("initParams") is not None else None, - "salt": obj.get("salt") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyX3dpdGhfdmFsdWUgaW1wb3J0IFBhcmFtZXRlcldpdGhWYWx1ZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBHZXREZXBsb3lhYmxlQWRkcmVzc1JlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgUmVxdWVzdCBib2R5IGZvciBjYWxjdWxhdGluZyBkZXRlcm1pbmlzdGljIGFkZHJlc3MKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGNoYWluX2Rlc2NyaXB0b3I6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmFzZSBhc3NldCBpZGVudGlmaWVyIG9mIHRoZSBibG9ja2NoYWluIChsZWdhY3lJZCkgdG8gY2FsY3VsYXRlIGRldGVybWluaXN0aWMgYWRkcmVzcyIsIGFsaWFzPSJjaGFpbkRlc2NyaXB0b3IiKQogICAgdGVtcGxhdGVfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdGVtcGxhdGUgaWRlbnRpZmllciIsIGFsaWFzPSJ0ZW1wbGF0ZUlkIikKICAgIGluaXRfcGFyYW1zOiBMaXN0W1BhcmFtZXRlcldpdGhWYWx1ZV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGRlcGxveSBmdW5jdGlvbiBwYXJhbWV0ZXJzIGFuZCB2YWx1ZXMgb2YgdGhlIGNvbnRyYWN0IHRlbXBsYXRlIiwgYWxpYXM9ImluaXRQYXJhbXMiKQogICAgc2FsdDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBzYWx0IHRvIGNhbGN1bGF0ZSB0aGUgZGV0ZXJtaW5pc3RpYyBhZGRyZXNzLiBNdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMl4yNTYgLTEsIGZvciBpdCB0byBmaXQgaW4gdGhlIGJ5dGVzMzIgcGFyYW1ldGVyIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiY2hhaW5EZXNjcmlwdG9yIiwgInRlbXBsYXRlSWQiLCAiaW5pdFBhcmFtcyIsICJzYWx0Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXREZXBsb3lhYmxlQWRkcmVzc1JlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gaW5pdF9wYXJhbXMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmluaXRfcGFyYW1zOgogICAgICAgICAgICBmb3IgX2l0ZW1faW5pdF9wYXJhbXMgaW4gc2VsZi5pbml0X3BhcmFtczoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2luaXRfcGFyYW1zOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1faW5pdF9wYXJhbXMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnaW5pdFBhcmFtcyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXREZXBsb3lhYmxlQWRkcmVzc1JlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiY2hhaW5EZXNjcmlwdG9yIjogb2JqLmdldCgiY2hhaW5EZXNjcmlwdG9yIiksCiAgICAgICAgICAgICJ0ZW1wbGF0ZUlkIjogb2JqLmdldCgidGVtcGxhdGVJZCIpLAogICAgICAgICAgICAiaW5pdFBhcmFtcyI6IFtQYXJhbWV0ZXJXaXRoVmFsdWUuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJpbml0UGFyYW1zIl1dIGlmIG9iai5nZXQoImluaXRQYXJhbXMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJzYWx0Ijogb2JqLmdldCgic2FsdCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/get_exchange_accounts_credentials_public_key_response.py b/fireblocks/models/get_exchange_accounts_credentials_public_key_response.py index bae9fdd6..35d1691e 100644 --- a/fireblocks/models/get_exchange_accounts_credentials_public_key_response.py +++ b/fireblocks/models/get_exchange_accounts_credentials_public_key_response.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class GetExchangeAccountsCredentialsPublicKeyResponse(BaseModel): - """ - GetExchangeAccountsCredentialsPublicKeyResponse - """ # noqa: E501 - public_key: StrictStr = Field(description="Public key string", alias="publicKey") - tenant_id: StrictStr = Field(description="Tenant identifier", alias="tenantId") - __properties: ClassVar[List[str]] = ["publicKey", "tenantId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetExchangeAccountsCredentialsPublicKeyResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetExchangeAccountsCredentialsPublicKeyResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "publicKey": obj.get("publicKey"), - "tenantId": obj.get("tenantId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEdldEV4Y2hhbmdlQWNjb3VudHNDcmVkZW50aWFsc1B1YmxpY0tleVJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEdldEV4Y2hhbmdlQWNjb3VudHNDcmVkZW50aWFsc1B1YmxpY0tleVJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBwdWJsaWNfa2V5OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iUHVibGljIGtleSBzdHJpbmciLCBhbGlhcz0icHVibGljS2V5IikKICAgIHRlbmFudF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRlbmFudCBpZGVudGlmaWVyIiwgYWxpYXM9InRlbmFudElkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicHVibGljS2V5IiwgInRlbmFudElkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRFeGNoYW5nZUFjY291bnRzQ3JlZGVudGlhbHNQdWJsaWNLZXlSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRFeGNoYW5nZUFjY291bnRzQ3JlZGVudGlhbHNQdWJsaWNLZXlSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJwdWJsaWNLZXkiOiBvYmouZ2V0KCJwdWJsaWNLZXkiKSwKICAgICAgICAgICAgInRlbmFudElkIjogb2JqLmdldCgidGVuYW50SWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/get_filter_parameter.py b/fireblocks/models/get_filter_parameter.py index 101fa612..a0d44254 100644 --- a/fireblocks/models/get_filter_parameter.py +++ b/fireblocks/models/get_filter_parameter.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class GetFilterParameter(BaseModel): - """ - GetFilterParameter - """ # noqa: E501 - id: Optional[StrictStr] = None - user_id: Optional[StrictStr] = Field(default=None, alias="userId") - vault_account_id: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="vaultAccountId") - connection_method: Optional[StrictStr] = Field(default=None, alias="connectionMethod") - fee_level: Optional[StrictStr] = Field(default=None, alias="feeLevel") - app_url: Optional[StrictStr] = Field(default=None, alias="appUrl") - app_name: Optional[StrictStr] = Field(default=None, alias="appName") - __properties: ClassVar[List[str]] = ["id", "userId", "vaultAccountId", "connectionMethod", "feeLevel", "appUrl", "appName"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetFilterParameter from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetFilterParameter from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "userId": obj.get("userId"), - "vaultAccountId": obj.get("vaultAccountId"), - "connectionMethod": obj.get("connectionMethod"), - "feeLevel": obj.get("feeLevel"), - "appUrl": obj.get("appUrl"), - "appName": obj.get("appName") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgR2V0RmlsdGVyUGFyYW1ldGVyKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEdldEZpbHRlclBhcmFtZXRlcgogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICB1c2VyX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0idXNlcklkIikKICAgIHZhdWx0X2FjY291bnRfaWQ6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InZhdWx0QWNjb3VudElkIikKICAgIGNvbm5lY3Rpb25fbWV0aG9kOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iY29ubmVjdGlvbk1ldGhvZCIpCiAgICBmZWVfbGV2ZWw6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJmZWVMZXZlbCIpCiAgICBhcHBfdXJsOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYXBwVXJsIikKICAgIGFwcF9uYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYXBwTmFtZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgInVzZXJJZCIsICJ2YXVsdEFjY291bnRJZCIsICJjb25uZWN0aW9uTWV0aG9kIiwgImZlZUxldmVsIiwgImFwcFVybCIsICJhcHBOYW1lIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRGaWx0ZXJQYXJhbWV0ZXIgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0RmlsdGVyUGFyYW1ldGVyIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgInVzZXJJZCI6IG9iai5nZXQoInVzZXJJZCIpLAogICAgICAgICAgICAidmF1bHRBY2NvdW50SWQiOiBvYmouZ2V0KCJ2YXVsdEFjY291bnRJZCIpLAogICAgICAgICAgICAiY29ubmVjdGlvbk1ldGhvZCI6IG9iai5nZXQoImNvbm5lY3Rpb25NZXRob2QiKSwKICAgICAgICAgICAgImZlZUxldmVsIjogb2JqLmdldCgiZmVlTGV2ZWwiKSwKICAgICAgICAgICAgImFwcFVybCI6IG9iai5nZXQoImFwcFVybCIpLAogICAgICAgICAgICAiYXBwTmFtZSI6IG9iai5nZXQoImFwcE5hbWUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/get_layer_zero_dvn_config_response.py b/fireblocks/models/get_layer_zero_dvn_config_response.py index 7ca0f282..e02acf94 100644 --- a/fireblocks/models/get_layer_zero_dvn_config_response.py +++ b/fireblocks/models/get_layer_zero_dvn_config_response.py @@ -1,99 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing_extensions import Annotated -from fireblocks.models.channel_dvn_config_with_confirmations import ChannelDvnConfigWithConfirmations -from typing import Optional, Set -from typing_extensions import Self - -class GetLayerZeroDvnConfigResponse(BaseModel): - """ - GetLayerZeroDvnConfigResponse - """ # noqa: E501 - source_adapter_token_link_id: StrictStr = Field(description="Token-link ID of the adapter for which DVN configuration was queried.", alias="sourceAdapterTokenLinkId") - channel_configs: Annotated[List[ChannelDvnConfigWithConfirmations], Field(min_length=1)] = Field(description="DVN configurations for each discovered (or explicitly requested) channel between the source adapter and its peers.", alias="channelConfigs") - __properties: ClassVar[List[str]] = ["sourceAdapterTokenLinkId", "channelConfigs"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetLayerZeroDvnConfigResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in channel_configs (list) - _items = [] - if self.channel_configs: - for _item_channel_configs in self.channel_configs: - if _item_channel_configs: - _items.append(_item_channel_configs.to_dict()) - _dict['channelConfigs'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetLayerZeroDvnConfigResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "sourceAdapterTokenLinkId": obj.get("sourceAdapterTokenLinkId"), - "channelConfigs": [ChannelDvnConfigWithConfirmations.from_dict(_item) for _item in obj["channelConfigs"]] if obj.get("channelConfigs") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYW5uZWxfZHZuX2NvbmZpZ193aXRoX2NvbmZpcm1hdGlvbnMgaW1wb3J0IENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9ucwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBHZXRMYXllclplcm9Edm5Db25maWdSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBHZXRMYXllclplcm9Edm5Db25maWdSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgc291cmNlX2FkYXB0ZXJfdG9rZW5fbGlua19pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRva2VuLWxpbmsgSUQgb2YgdGhlIGFkYXB0ZXIgZm9yIHdoaWNoIERWTiBjb25maWd1cmF0aW9uIHdhcyBxdWVyaWVkLiIsIGFsaWFzPSJzb3VyY2VBZGFwdGVyVG9rZW5MaW5rSWQiKQogICAgY2hhbm5lbF9jb25maWdzOiBBbm5vdGF0ZWRbTGlzdFtDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNdLCBGaWVsZChtaW5fbGVuZ3RoPTEpXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJEVk4gY29uZmlndXJhdGlvbnMgZm9yIGVhY2ggZGlzY292ZXJlZCAob3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpIGNoYW5uZWwgYmV0d2VlbiB0aGUgc291cmNlIGFkYXB0ZXIgYW5kIGl0cyBwZWVycy4iLCBhbGlhcz0iY2hhbm5lbENvbmZpZ3MiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzb3VyY2VBZGFwdGVyVG9rZW5MaW5rSWQiLCAiY2hhbm5lbENvbmZpZ3MiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGNoYW5uZWxfY29uZmlncyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuY2hhbm5lbF9jb25maWdzOgogICAgICAgICAgICBmb3IgX2l0ZW1fY2hhbm5lbF9jb25maWdzIGluIHNlbGYuY2hhbm5lbF9jb25maWdzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fY2hhbm5lbF9jb25maWdzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fY2hhbm5lbF9jb25maWdzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2NoYW5uZWxDb25maWdzJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInNvdXJjZUFkYXB0ZXJUb2tlbkxpbmtJZCI6IG9iai5nZXQoInNvdXJjZUFkYXB0ZXJUb2tlbkxpbmtJZCIpLAogICAgICAgICAgICAiY2hhbm5lbENvbmZpZ3MiOiBbQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiY2hhbm5lbENvbmZpZ3MiXV0gaWYgb2JqLmdldCgiY2hhbm5lbENvbmZpZ3MiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/get_layer_zero_peers_response.py b/fireblocks/models/get_layer_zero_peers_response.py index efc3fd88..5cb84b2e 100644 --- a/fireblocks/models/get_layer_zero_peers_response.py +++ b/fireblocks/models/get_layer_zero_peers_response.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.peer_adapter_info import PeerAdapterInfo -from typing import Optional, Set -from typing_extensions import Self - -class GetLayerZeroPeersResponse(BaseModel): - """ - GetLayerZeroPeersResponse - """ # noqa: E501 - adapter_token_link_id: StrictStr = Field(description="The token link id of the adapter", alias="adapterTokenLinkId") - adapter_address: StrictStr = Field(description="The adapter address", alias="adapterAddress") - peers: List[PeerAdapterInfo] = Field(description="The peers for the adapter") - __properties: ClassVar[List[str]] = ["adapterTokenLinkId", "adapterAddress", "peers"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetLayerZeroPeersResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in peers (list) - _items = [] - if self.peers: - for _item_peers in self.peers: - if _item_peers: - _items.append(_item_peers.to_dict()) - _dict['peers'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetLayerZeroPeersResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "adapterTokenLinkId": obj.get("adapterTokenLinkId"), - "adapterAddress": obj.get("adapterAddress"), - "peers": [PeerAdapterInfo.from_dict(_item) for _item in obj["peers"]] if obj.get("peers") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGVlcl9hZGFwdGVyX2luZm8gaW1wb3J0IFBlZXJBZGFwdGVySW5mbwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBHZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEdldExheWVyWmVyb1BlZXJzUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFkYXB0ZXJfdG9rZW5fbGlua19pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB0b2tlbiBsaW5rIGlkIG9mIHRoZSBhZGFwdGVyIiwgYWxpYXM9ImFkYXB0ZXJUb2tlbkxpbmtJZCIpCiAgICBhZGFwdGVyX2FkZHJlc3M6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYWRhcHRlciBhZGRyZXNzIiwgYWxpYXM9ImFkYXB0ZXJBZGRyZXNzIikKICAgIHBlZXJzOiBMaXN0W1BlZXJBZGFwdGVySW5mb10gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHBlZXJzIGZvciB0aGUgYWRhcHRlciIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFkYXB0ZXJUb2tlbkxpbmtJZCIsICJhZGFwdGVyQWRkcmVzcyIsICJwZWVycyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0TGF5ZXJaZXJvUGVlcnNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBwZWVycyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYucGVlcnM6CiAgICAgICAgICAgIGZvciBfaXRlbV9wZWVycyBpbiBzZWxmLnBlZXJzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fcGVlcnM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9wZWVycy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydwZWVycyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFkYXB0ZXJUb2tlbkxpbmtJZCI6IG9iai5nZXQoImFkYXB0ZXJUb2tlbkxpbmtJZCIpLAogICAgICAgICAgICAiYWRhcHRlckFkZHJlc3MiOiBvYmouZ2V0KCJhZGFwdGVyQWRkcmVzcyIpLAogICAgICAgICAgICAicGVlcnMiOiBbUGVlckFkYXB0ZXJJbmZvLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsicGVlcnMiXV0gaWYgb2JqLmdldCgicGVlcnMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/get_linked_collections_paginated_response.py b/fireblocks/models/get_linked_collections_paginated_response.py index 70356c86..61244702 100644 --- a/fireblocks/models/get_linked_collections_paginated_response.py +++ b/fireblocks/models/get_linked_collections_paginated_response.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.collection_link_dto import CollectionLinkDto -from typing import Optional, Set -from typing_extensions import Self - -class GetLinkedCollectionsPaginatedResponse(BaseModel): - """ - GetLinkedCollectionsPaginatedResponse - """ # noqa: E501 - data: Optional[List[CollectionLinkDto]] = Field(default=None, description="The data of the current page") - next: Optional[StrictStr] = Field(default=None, description="The ID of the next page") - __properties: ClassVar[List[str]] = ["data", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetLinkedCollectionsPaginatedResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # set to None if next (nullable) is None - # and model_fields_set contains the field - if self.next is None and "next" in self.model_fields_set: - _dict['next'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetLinkedCollectionsPaginatedResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [CollectionLinkDto.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fbGlua19kdG8gaW1wb3J0IENvbGxlY3Rpb25MaW5rRHRvCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEdldExpbmtlZENvbGxlY3Rpb25zUGFnaW5hdGVkUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgR2V0TGlua2VkQ29sbGVjdGlvbnNQYWdpbmF0ZWRSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGF0YTogT3B0aW9uYWxbTGlzdFtDb2xsZWN0aW9uTGlua0R0b11dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGRhdGEgb2YgdGhlIGN1cnJlbnQgcGFnZSIpCiAgICBuZXh0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBuZXh0IHBhZ2UiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJkYXRhIiwgIm5leHQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldExpbmtlZENvbGxlY3Rpb25zUGFnaW5hdGVkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGF0YSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgZm9yIF9pdGVtX2RhdGEgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZGF0YToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2RhdGEudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gX2l0ZW1zCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBuZXh0IChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5uZXh0IGlzIE5vbmUgYW5kICJuZXh0IiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WyduZXh0J10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0TGlua2VkQ29sbGVjdGlvbnNQYWdpbmF0ZWRSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkYXRhIjogW0NvbGxlY3Rpb25MaW5rRHRvLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiZGF0YSJdXSBpZiBvYmouZ2V0KCJkYXRhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibmV4dCI6IG9iai5nZXQoIm5leHQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/get_max_bip_index_used_response.py b/fireblocks/models/get_max_bip_index_used_response.py index 6283e9e4..6e43d3f5 100644 --- a/fireblocks/models/get_max_bip_index_used_response.py +++ b/fireblocks/models/get_max_bip_index_used_response.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class GetMaxBipIndexUsedResponse(BaseModel): - """ - GetMaxBipIndexUsedResponse - """ # noqa: E501 - max_bip44_address_index_used: Optional[StrictInt] = Field(default=None, description="The maximum BIP44 address index used for the vault account and asset", alias="maxBip44AddressIndexUsed") - max_bip44_change_address_index_used: Optional[StrictInt] = Field(default=None, description="The maximum BIP44 change address index used for the vault account and asset", alias="maxBip44ChangeAddressIndexUsed") - __properties: ClassVar[List[str]] = ["maxBip44AddressIndexUsed", "maxBip44ChangeAddressIndexUsed"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetMaxBipIndexUsedResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetMaxBipIndexUsedResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "maxBip44AddressIndexUsed": obj.get("maxBip44AddressIndexUsed"), - "maxBip44ChangeAddressIndexUsed": obj.get("maxBip44ChangeAddressIndexUsed") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBHZXRNYXhCaXBJbmRleFVzZWRSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBHZXRNYXhCaXBJbmRleFVzZWRSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgbWF4X2JpcDQ0X2FkZHJlc3NfaW5kZXhfdXNlZDogT3B0aW9uYWxbU3RyaWN0SW50XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBtYXhpbXVtIEJJUDQ0IGFkZHJlc3MgaW5kZXggdXNlZCBmb3IgdGhlIHZhdWx0IGFjY291bnQgYW5kIGFzc2V0IiwgYWxpYXM9Im1heEJpcDQ0QWRkcmVzc0luZGV4VXNlZCIpCiAgICBtYXhfYmlwNDRfY2hhbmdlX2FkZHJlc3NfaW5kZXhfdXNlZDogT3B0aW9uYWxbU3RyaWN0SW50XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBtYXhpbXVtIEJJUDQ0IGNoYW5nZSBhZGRyZXNzIGluZGV4IHVzZWQgZm9yIHRoZSB2YXVsdCBhY2NvdW50IGFuZCBhc3NldCIsIGFsaWFzPSJtYXhCaXA0NENoYW5nZUFkZHJlc3NJbmRleFVzZWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJtYXhCaXA0NEFkZHJlc3NJbmRleFVzZWQiLCAibWF4QmlwNDRDaGFuZ2VBZGRyZXNzSW5kZXhVc2VkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRNYXhCaXBJbmRleFVzZWRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRNYXhCaXBJbmRleFVzZWRSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJtYXhCaXA0NEFkZHJlc3NJbmRleFVzZWQiOiBvYmouZ2V0KCJtYXhCaXA0NEFkZHJlc3NJbmRleFVzZWQiKSwKICAgICAgICAgICAgIm1heEJpcDQ0Q2hhbmdlQWRkcmVzc0luZGV4VXNlZCI6IG9iai5nZXQoIm1heEJpcDQ0Q2hhbmdlQWRkcmVzc0luZGV4VXNlZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/get_max_spendable_amount_response.py b/fireblocks/models/get_max_spendable_amount_response.py index 65c6d84f..f94740d4 100644 --- a/fireblocks/models/get_max_spendable_amount_response.py +++ b/fireblocks/models/get_max_spendable_amount_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class GetMaxSpendableAmountResponse(BaseModel): - """ - GetMaxSpendableAmountResponse - """ # noqa: E501 - max_spendable_amount: Optional[StrictStr] = Field(default=None, description="The maximum amount that can be spent from the vault account", alias="maxSpendableAmount") - __properties: ClassVar[List[str]] = ["maxSpendableAmount"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetMaxSpendableAmountResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetMaxSpendableAmountResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "maxSpendableAmount": obj.get("maxSpendableAmount") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBHZXRNYXhTcGVuZGFibGVBbW91bnRSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBHZXRNYXhTcGVuZGFibGVBbW91bnRSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgbWF4X3NwZW5kYWJsZV9hbW91bnQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgbWF4aW11bSBhbW91bnQgdGhhdCBjYW4gYmUgc3BlbnQgZnJvbSB0aGUgdmF1bHQgYWNjb3VudCIsIGFsaWFzPSJtYXhTcGVuZGFibGVBbW91bnQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJtYXhTcGVuZGFibGVBbW91bnQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldE1heFNwZW5kYWJsZUFtb3VudFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldE1heFNwZW5kYWJsZUFtb3VudFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm1heFNwZW5kYWJsZUFtb3VudCI6IG9iai5nZXQoIm1heFNwZW5kYWJsZUFtb3VudCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/get_mpc_keys_response.py b/fireblocks/models/get_mpc_keys_response.py index 1d4e6d54..5b1a501e 100644 --- a/fireblocks/models/get_mpc_keys_response.py +++ b/fireblocks/models/get_mpc_keys_response.py @@ -1,99 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from typing_extensions import Annotated -from fireblocks.models.mpc_key import MpcKey -from typing import Optional, Set -from typing_extensions import Self - -class GetMpcKeysResponse(BaseModel): - """ - GetMpcKeysResponse - """ # noqa: E501 - tenant_id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field(description="The workspace id of the keys", alias="tenantId") - keys: List[MpcKey] = Field(description="The keys that are associated with the workspace") - __properties: ClassVar[List[str]] = ["tenantId", "keys"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetMpcKeysResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in keys (list) - _items = [] - if self.keys: - for _item_keys in self.keys: - if _item_keys: - _items.append(_item_keys.to_dict()) - _dict['keys'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetMpcKeysResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "tenantId": obj.get("tenantId"), - "keys": [MpcKey.from_dict(_item) for _item in obj["keys"]] if obj.get("keys") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tcGNfa2V5IGltcG9ydCBNcGNLZXkKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgR2V0TXBjS2V5c1Jlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEdldE1wY0tleXNSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgdGVuYW50X2lkOiBBbm5vdGF0ZWRbc3RyLCBGaWVsZChtaW5fbGVuZ3RoPTM2LCBzdHJpY3Q9VHJ1ZSwgbWF4X2xlbmd0aD0zNildID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB3b3Jrc3BhY2UgaWQgb2YgdGhlIGtleXMiLCBhbGlhcz0idGVuYW50SWQiKQogICAga2V5czogTGlzdFtNcGNLZXldID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBrZXlzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgd29ya3NwYWNlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidGVuYW50SWQiLCAia2V5cyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0TXBjS2V5c1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGtleXMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmtleXM6CiAgICAgICAgICAgIGZvciBfaXRlbV9rZXlzIGluIHNlbGYua2V5czoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2tleXM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9rZXlzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2tleXMnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0TXBjS2V5c1Jlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInRlbmFudElkIjogb2JqLmdldCgidGVuYW50SWQiKSwKICAgICAgICAgICAgImtleXMiOiBbTXBjS2V5LmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsia2V5cyJdXSBpZiBvYmouZ2V0KCJrZXlzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/get_nfts_response.py b/fireblocks/models/get_nfts_response.py index ac607009..ca106523 100644 --- a/fireblocks/models/get_nfts_response.py +++ b/fireblocks/models/get_nfts_response.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.paging import Paging -from fireblocks.models.token_response import TokenResponse -from typing import Optional, Set -from typing_extensions import Self - -class GetNFTsResponse(BaseModel): - """ - GetNFTsResponse - """ # noqa: E501 - paging: Optional[Paging] = None - data: Optional[List[TokenResponse]] = None - __properties: ClassVar[List[str]] = ["paging", "data"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetNFTsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of paging - if self.paging: - _dict['paging'] = self.paging.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetNFTsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "paging": Paging.from_dict(obj["paging"]) if obj.get("paging") is not None else None, - "data": [TokenResponse.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhZ2luZyBpbXBvcnQgUGFnaW5nCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fcmVzcG9uc2UgaW1wb3J0IFRva2VuUmVzcG9uc2UKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgR2V0TkZUc1Jlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEdldE5GVHNSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgcGFnaW5nOiBPcHRpb25hbFtQYWdpbmddID0gTm9uZQogICAgZGF0YTogT3B0aW9uYWxbTGlzdFtUb2tlblJlc3BvbnNlXV0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInBhZ2luZyIsICJkYXRhIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRORlRzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBwYWdpbmcKICAgICAgICBpZiBzZWxmLnBhZ2luZzoKICAgICAgICAgICAgX2RpY3RbJ3BhZ2luZyddID0gc2VsZi5wYWdpbmcudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBkYXRhIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5kYXRhOgogICAgICAgICAgICBmb3IgX2l0ZW1fZGF0YSBpbiBzZWxmLmRhdGE6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9kYXRhOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fZGF0YS50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydkYXRhJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldE5GVHNSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJwYWdpbmciOiBQYWdpbmcuZnJvbV9kaWN0KG9ialsicGFnaW5nIl0pIGlmIG9iai5nZXQoInBhZ2luZyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImRhdGEiOiBbVG9rZW5SZXNwb25zZS5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImRhdGEiXV0gaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/get_orders_response.py b/fireblocks/models/get_orders_response.py index 74f7a2ed..1c0aefb5 100644 --- a/fireblocks/models/get_orders_response.py +++ b/fireblocks/models/get_orders_response.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.order_summary import OrderSummary -from typing import Optional, Set -from typing_extensions import Self - -class GetOrdersResponse(BaseModel): - """ - GetOrdersResponse - """ # noqa: E501 - data: List[OrderSummary] - total: StrictInt = Field(description="Total number of orders matching the query.") - next: Optional[StrictStr] = Field(default=None, description="A cursor for the next page of results, if available.") - __properties: ClassVar[List[str]] = ["data", "total", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetOrdersResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetOrdersResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [OrderSummary.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "total": obj.get("total"), - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMub3JkZXJfc3VtbWFyeSBpbXBvcnQgT3JkZXJTdW1tYXJ5CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEdldE9yZGVyc1Jlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEdldE9yZGVyc1Jlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkYXRhOiBMaXN0W09yZGVyU3VtbWFyeV0KICAgIHRvdGFsOiBTdHJpY3RJbnQgPSBGaWVsZChkZXNjcmlwdGlvbj0iVG90YWwgbnVtYmVyIG9mIG9yZGVycyBtYXRjaGluZyB0aGUgcXVlcnkuIikKICAgIG5leHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBIGN1cnNvciBmb3IgdGhlIG5leHQgcGFnZSBvZiByZXN1bHRzLCBpZiBhdmFpbGFibGUuIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZGF0YSIsICJ0b3RhbCIsICJuZXh0Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRPcmRlcnNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBkYXRhIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5kYXRhOgogICAgICAgICAgICBmb3IgX2l0ZW1fZGF0YSBpbiBzZWxmLmRhdGE6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9kYXRhOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fZGF0YS50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydkYXRhJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldE9yZGVyc1Jlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRhdGEiOiBbT3JkZXJTdW1tYXJ5LmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiZGF0YSJdXSBpZiBvYmouZ2V0KCJkYXRhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAidG90YWwiOiBvYmouZ2V0KCJ0b3RhbCIpLAogICAgICAgICAgICAibmV4dCI6IG9iai5nZXQoIm5leHQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/get_ota_status_response.py b/fireblocks/models/get_ota_status_response.py index 2e145334..b7b7b010 100644 --- a/fireblocks/models/get_ota_status_response.py +++ b/fireblocks/models/get_ota_status_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class GetOtaStatusResponse(BaseModel): - """ - GetOtaStatusResponse - """ # noqa: E501 - enabled: Optional[StrictBool] = Field(default=None, description="Current OTA status") - __properties: ClassVar[List[str]] = ["enabled"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetOtaStatusResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetOtaStatusResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "enabled": obj.get("enabled") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgR2V0T3RhU3RhdHVzUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgR2V0T3RhU3RhdHVzUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGVuYWJsZWQ6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3VycmVudCBPVEEgc3RhdHVzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZW5hYmxlZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0T3RhU3RhdHVzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0T3RhU3RhdHVzUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZW5hYmxlZCI6IG9iai5nZXQoImVuYWJsZWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/get_ownership_tokens_response.py b/fireblocks/models/get_ownership_tokens_response.py index c9107129..18e7ab83 100644 --- a/fireblocks/models/get_ownership_tokens_response.py +++ b/fireblocks/models/get_ownership_tokens_response.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.paging import Paging -from fireblocks.models.token_ownership_response import TokenOwnershipResponse -from typing import Optional, Set -from typing_extensions import Self - -class GetOwnershipTokensResponse(BaseModel): - """ - GetOwnershipTokensResponse - """ # noqa: E501 - paging: Optional[Paging] = None - data: Optional[List[TokenOwnershipResponse]] = None - __properties: ClassVar[List[str]] = ["paging", "data"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetOwnershipTokensResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of paging - if self.paging: - _dict['paging'] = self.paging.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetOwnershipTokensResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "paging": Paging.from_dict(obj["paging"]) if obj.get("paging") is not None else None, - "data": [TokenOwnershipResponse.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhZ2luZyBpbXBvcnQgUGFnaW5nCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fb3duZXJzaGlwX3Jlc3BvbnNlIGltcG9ydCBUb2tlbk93bmVyc2hpcFJlc3BvbnNlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEdldE93bmVyc2hpcFRva2Vuc1Jlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEdldE93bmVyc2hpcFRva2Vuc1Jlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBwYWdpbmc6IE9wdGlvbmFsW1BhZ2luZ10gPSBOb25lCiAgICBkYXRhOiBPcHRpb25hbFtMaXN0W1Rva2VuT3duZXJzaGlwUmVzcG9uc2VdXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicGFnaW5nIiwgImRhdGEiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldE93bmVyc2hpcFRva2Vuc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcGFnaW5nCiAgICAgICAgaWYgc2VsZi5wYWdpbmc6CiAgICAgICAgICAgIF9kaWN0WydwYWdpbmcnXSA9IHNlbGYucGFnaW5nLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGF0YSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgZm9yIF9pdGVtX2RhdGEgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZGF0YToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2RhdGEudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRPd25lcnNoaXBUb2tlbnNSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJwYWdpbmciOiBQYWdpbmcuZnJvbV9kaWN0KG9ialsicGFnaW5nIl0pIGlmIG9iai5nZXQoInBhZ2luZyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImRhdGEiOiBbVG9rZW5Pd25lcnNoaXBSZXNwb25zZS5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImRhdGEiXV0gaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/get_paged_exchange_accounts_response.py b/fireblocks/models/get_paged_exchange_accounts_response.py index bd7acad5..763d356b 100644 --- a/fireblocks/models/get_paged_exchange_accounts_response.py +++ b/fireblocks/models/get_paged_exchange_accounts_response.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.exchange_account import ExchangeAccount -from fireblocks.models.get_paged_exchange_accounts_response_paging import GetPagedExchangeAccountsResponsePaging -from typing import Optional, Set -from typing_extensions import Self - -class GetPagedExchangeAccountsResponse(BaseModel): - """ - GetPagedExchangeAccountsResponse - """ # noqa: E501 - exchanges: List[ExchangeAccount] - paging: Optional[GetPagedExchangeAccountsResponsePaging] = None - prev_url: Optional[StrictStr] = Field(default=None, alias="prevUrl") - next_url: Optional[StrictStr] = Field(default=None, alias="nextUrl") - __properties: ClassVar[List[str]] = ["exchanges", "paging", "prevUrl", "nextUrl"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetPagedExchangeAccountsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in exchanges (list) - _items = [] - if self.exchanges: - for _item_exchanges in self.exchanges: - if _item_exchanges: - _items.append(_item_exchanges.to_dict()) - _dict['exchanges'] = _items - # override the default output from pydantic by calling `to_dict()` of paging - if self.paging: - _dict['paging'] = self.paging.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetPagedExchangeAccountsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "exchanges": [ExchangeAccount.from_dict(_item) for _item in obj["exchanges"]] if obj.get("exchanges") is not None else None, - "paging": GetPagedExchangeAccountsResponsePaging.from_dict(obj["paging"]) if obj.get("paging") is not None else None, - "prevUrl": obj.get("prevUrl"), - "nextUrl": obj.get("nextUrl") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4Y2hhbmdlX2FjY291bnQgaW1wb3J0IEV4Y2hhbmdlQWNjb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9wYWdlZF9leGNoYW5nZV9hY2NvdW50c19yZXNwb25zZV9wYWdpbmcgaW1wb3J0IEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlUGFnaW5nCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBleGNoYW5nZXM6IExpc3RbRXhjaGFuZ2VBY2NvdW50XQogICAgcGFnaW5nOiBPcHRpb25hbFtHZXRQYWdlZEV4Y2hhbmdlQWNjb3VudHNSZXNwb25zZVBhZ2luZ10gPSBOb25lCiAgICBwcmV2X3VybDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InByZXZVcmwiKQogICAgbmV4dF91cmw6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJuZXh0VXJsIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZXhjaGFuZ2VzIiwgInBhZ2luZyIsICJwcmV2VXJsIiwgIm5leHRVcmwiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGV4Y2hhbmdlcyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZXhjaGFuZ2VzOgogICAgICAgICAgICBmb3IgX2l0ZW1fZXhjaGFuZ2VzIGluIHNlbGYuZXhjaGFuZ2VzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZXhjaGFuZ2VzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fZXhjaGFuZ2VzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2V4Y2hhbmdlcyddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHBhZ2luZwogICAgICAgIGlmIHNlbGYucGFnaW5nOgogICAgICAgICAgICBfZGljdFsncGFnaW5nJ10gPSBzZWxmLnBhZ2luZy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImV4Y2hhbmdlcyI6IFtFeGNoYW5nZUFjY291bnQuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJleGNoYW5nZXMiXV0gaWYgb2JqLmdldCgiZXhjaGFuZ2VzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAicGFnaW5nIjogR2V0UGFnZWRFeGNoYW5nZUFjY291bnRzUmVzcG9uc2VQYWdpbmcuZnJvbV9kaWN0KG9ialsicGFnaW5nIl0pIGlmIG9iai5nZXQoInBhZ2luZyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInByZXZVcmwiOiBvYmouZ2V0KCJwcmV2VXJsIiksCiAgICAgICAgICAgICJuZXh0VXJsIjogb2JqLmdldCgibmV4dFVybCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/get_paged_exchange_accounts_response_paging.py b/fireblocks/models/get_paged_exchange_accounts_response_paging.py index 067cabf6..87d1e9b3 100644 --- a/fireblocks/models/get_paged_exchange_accounts_response_paging.py +++ b/fireblocks/models/get_paged_exchange_accounts_response_paging.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class GetPagedExchangeAccountsResponsePaging(BaseModel): - """ - GetPagedExchangeAccountsResponsePaging - """ # noqa: E501 - after: Optional[StrictStr] = Field(default=None, description="Query value to the after page") - before: Optional[StrictStr] = Field(default=None, description="Query value to the before page") - __properties: ClassVar[List[str]] = ["after", "before"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetPagedExchangeAccountsResponsePaging from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetPagedExchangeAccountsResponsePaging from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "after": obj.get("after"), - "before": obj.get("before") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBHZXRQYWdlZEV4Y2hhbmdlQWNjb3VudHNSZXNwb25zZVBhZ2luZyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBHZXRQYWdlZEV4Y2hhbmdlQWNjb3VudHNSZXNwb25zZVBhZ2luZwogICAgIiIiICMgbm9xYTogRTUwMQogICAgYWZ0ZXI6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJRdWVyeSB2YWx1ZSB0byB0aGUgYWZ0ZXIgcGFnZSIpCiAgICBiZWZvcmU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJRdWVyeSB2YWx1ZSB0byB0aGUgYmVmb3JlIHBhZ2UiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhZnRlciIsICJiZWZvcmUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlUGFnaW5nIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlUGFnaW5nIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFmdGVyIjogb2JqLmdldCgiYWZ0ZXIiKSwKICAgICAgICAgICAgImJlZm9yZSI6IG9iai5nZXQoImJlZm9yZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/get_signing_key_response_dto.py b/fireblocks/models/get_signing_key_response_dto.py index 4adf0df6..91bc16ab 100644 --- a/fireblocks/models/get_signing_key_response_dto.py +++ b/fireblocks/models/get_signing_key_response_dto.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.signing_key_dto import SigningKeyDto -from typing import Optional, Set -from typing_extensions import Self - -class GetSigningKeyResponseDto(BaseModel): - """ - GetSigningKeyResponseDto - """ # noqa: E501 - data: List[SigningKeyDto] = Field(description="Response object for getting external signing keys.") - next: Optional[StrictStr] = Field(default=None, description="The ID of the next page") - __properties: ClassVar[List[str]] = ["data", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetSigningKeyResponseDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetSigningKeyResponseDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [SigningKeyDto.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNpZ25pbmdfa2V5X2R0byBpbXBvcnQgU2lnbmluZ0tleUR0bwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBHZXRTaWduaW5nS2V5UmVzcG9uc2VEdG8oQmFzZU1vZGVsKToKICAgICIiIgogICAgR2V0U2lnbmluZ0tleVJlc3BvbnNlRHRvCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkYXRhOiBMaXN0W1NpZ25pbmdLZXlEdG9dID0gRmllbGQoZGVzY3JpcHRpb249IlJlc3BvbnNlIG9iamVjdCBmb3IgZ2V0dGluZyBleHRlcm5hbCBzaWduaW5nIGtleXMuIikKICAgIG5leHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIG5leHQgcGFnZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRhdGEiLCAibmV4dCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0U2lnbmluZ0tleVJlc3BvbnNlRHRvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGRhdGEgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmRhdGE6CiAgICAgICAgICAgIGZvciBfaXRlbV9kYXRhIGluIHNlbGYuZGF0YToKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2RhdGE6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9kYXRhLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2RhdGEnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0U2lnbmluZ0tleVJlc3BvbnNlRHRvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRhdGEiOiBbU2lnbmluZ0tleUR0by5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImRhdGEiXV0gaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm5leHQiOiBvYmouZ2V0KCJuZXh0IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/get_transaction_operation.py b/fireblocks/models/get_transaction_operation.py index 089a58eb..247a0bd5 100644 --- a/fireblocks/models/get_transaction_operation.py +++ b/fireblocks/models/get_transaction_operation.py @@ -1,50 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class GetTransactionOperation(str, Enum): - """ - * `TRANSFER` - Transfers funds from one account to another. UTXO blockchains allow multi-input and multi-output transfers. All other blockchains allow transfers with one source address and one destination address. * `MINT` - Mints new tokens. Supported for Stellar, Ripple and EVM-based blockchains. * `BURN` - Burns tokens. Supported for Stellar, Ripple and EVM-based blockchains. * `CONTRACT_CALL` - Calls a smart contract method for web3 operations on any EVM blockchain. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions. * `TYPED_MESSAGE` - An off-chain message in either Ethereum Personal Message or EIP712 format. Use it to sign specific readable messages that are not actual transactions. [Learn more about typed messages](https://developers.fireblocks.com/docs/typed-message-signing). * `RAW` - An off-chain message with no predefined format. Use it to sign any message with your private key, including protocols such as blockchains and custom transaction types that are not natively supported by Fireblocks. [Learn more about raw signing transactions.](https://developers.fireblocks.com/docs/raw-message-signing) * `ENABLE_ASSET` - Algorand, DigitalBits, Solana, and Stellar require an on-chain transaction to create an asset wallet and enable the deposit address. This transaction is automatically created when adding assets on these blockchains at a vault account. * `STAKE` - Assign assets to a staking pool managed by a staking validator. Supported for Stellar and EVM-based blockchains. This transaction is automatically created when performing staking operations. * `UNSTAKE` - Remove assets from a staking pool managed by a staking validator. Supported for Stellar and EVM-based blockchains. This transaction is automatically created when performing staking operations. * `WITHDRAW` - Transfer assets from a dedicated staking vault account to another address. Supported for Stellar and EVM-based blockchains. This transaction is automatically created when performing staking operations. **Note:** Fireblocks will rename this type from `WITHDRAW` to a different type name soon. There will be a 7-day notice regarding the new type name. * `SUPPLY_TO_COMPOUND` - Deprecated since April 1st, 2023. Older transactions may have this as their operation, in case users in the workspace have used the direct integration between Fireblocks and the Compound DeFI protocol. * `REDEEM_FROM_COMPOUND` - Deprecated since April 1st, 2023. Older transactions may have this as their operation, in case users in the workspace have used the direct integration between Fireblocks and the Compound DeFI protocol. * `PROGRAM_CALL` - In Solana refers to invoking on-chain programs (smart contracts) to execute transactions and interact with the blockchain. * `APPROVE` - Enables the approve function for a smart contract or wallet to withdraw from a designated wallet. [Learn more](https://support.fireblocks.io/hc/en-us/articles/4404616097426-Amount-Cap-for-Approve-transactions). - """ - - """ - allowed enum values - """ - TRANSFER = 'TRANSFER' - BURN = 'BURN' - CONTRACT_CALL = 'CONTRACT_CALL' - MINT = 'MINT' - RAW = 'RAW' - TYPED_MESSAGE = 'TYPED_MESSAGE' - ENABLE_ASSET = 'ENABLE_ASSET' - STAKE = 'STAKE' - UNSTAKE = 'UNSTAKE' - WITHDRAW = 'WITHDRAW' - REDEEM_FROM_COMPOUND = 'REDEEM_FROM_COMPOUND' - SUPPLY_TO_COMPOUND = 'SUPPLY_TO_COMPOUND' - PROGRAM_CALL = 'PROGRAM_CALL' - APPROVE = 'APPROVE' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of GetTransactionOperation from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBHZXRUcmFuc2FjdGlvbk9wZXJhdGlvbihzdHIsIEVudW0pOgogICAgIiIiCiAgICAqIGBUUkFOU0ZFUmAgLSBUcmFuc2ZlcnMgZnVuZHMgZnJvbSBvbmUgYWNjb3VudCB0byBhbm90aGVyLiBVVFhPIGJsb2NrY2hhaW5zIGFsbG93IG11bHRpLWlucHV0IGFuZCBtdWx0aS1vdXRwdXQgdHJhbnNmZXJzLiBBbGwgb3RoZXIgYmxvY2tjaGFpbnMgYWxsb3cgdHJhbnNmZXJzIHdpdGggb25lIHNvdXJjZSBhZGRyZXNzIGFuZCBvbmUgZGVzdGluYXRpb24gYWRkcmVzcy4gKiBgTUlOVGAgLSBNaW50cyBuZXcgdG9rZW5zLiBTdXBwb3J0ZWQgZm9yIFN0ZWxsYXIsIFJpcHBsZSBhbmQgRVZNLWJhc2VkIGJsb2NrY2hhaW5zLiAqIGBCVVJOYCAtIEJ1cm5zIHRva2Vucy4gU3VwcG9ydGVkIGZvciBTdGVsbGFyLCBSaXBwbGUgYW5kIEVWTS1iYXNlZCBibG9ja2NoYWlucy4gKiBgQ09OVFJBQ1RfQ0FMTGAgLSBDYWxscyBhIHNtYXJ0IGNvbnRyYWN0IG1ldGhvZCBmb3Igd2ViMyBvcGVyYXRpb25zIG9uIGFueSBFVk0gYmxvY2tjaGFpbi4gVGhlIEZpcmVibG9ja3MgW2RldmVsb3BtZW50IGxpYnJhcmllc10oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL2RvY3MvZXRoZXJldW0tZGV2ZWxvcG1lbnQjY29udmVuaWVuY2UtbGlicmFyaWVzKSBhcmUgcmVjb21tZW5kZWQgZm9yIGJ1aWxkaW5nIGNvbnRyYWN0IGNhbGwgdHJhbnNhY3Rpb25zLiAqIGBUWVBFRF9NRVNTQUdFYCAtIEFuIG9mZi1jaGFpbiBtZXNzYWdlIGluIGVpdGhlciBFdGhlcmV1bSBQZXJzb25hbCBNZXNzYWdlIG9yIEVJUDcxMiBmb3JtYXQuIFVzZSBpdCB0byBzaWduIHNwZWNpZmljIHJlYWRhYmxlIG1lc3NhZ2VzIHRoYXQgYXJlIG5vdCBhY3R1YWwgdHJhbnNhY3Rpb25zLiBbTGVhcm4gbW9yZSBhYm91dCB0eXBlZCBtZXNzYWdlc10oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL2RvY3MvdHlwZWQtbWVzc2FnZS1zaWduaW5nKS4gKiBgUkFXYCAtIEFuIG9mZi1jaGFpbiBtZXNzYWdlIHdpdGggbm8gcHJlZGVmaW5lZCBmb3JtYXQuIFVzZSBpdCB0byBzaWduIGFueSBtZXNzYWdlIHdpdGggeW91ciBwcml2YXRlIGtleSwgaW5jbHVkaW5nIHByb3RvY29scyBzdWNoIGFzIGJsb2NrY2hhaW5zIGFuZCBjdXN0b20gdHJhbnNhY3Rpb24gdHlwZXMgdGhhdCBhcmUgbm90IG5hdGl2ZWx5IHN1cHBvcnRlZCBieSBGaXJlYmxvY2tzLiBbTGVhcm4gbW9yZSBhYm91dCByYXcgc2lnbmluZyB0cmFuc2FjdGlvbnMuXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vZG9jcy9yYXctbWVzc2FnZS1zaWduaW5nKSAqIGBFTkFCTEVfQVNTRVRgIC0gQWxnb3JhbmQsIERpZ2l0YWxCaXRzLCBTb2xhbmEsIGFuZCBTdGVsbGFyIHJlcXVpcmUgYW4gb24tY2hhaW4gdHJhbnNhY3Rpb24gdG8gY3JlYXRlIGFuIGFzc2V0IHdhbGxldCBhbmQgZW5hYmxlIHRoZSBkZXBvc2l0IGFkZHJlc3MuIFRoaXMgdHJhbnNhY3Rpb24gaXMgYXV0b21hdGljYWxseSBjcmVhdGVkIHdoZW4gYWRkaW5nIGFzc2V0cyBvbiB0aGVzZSBibG9ja2NoYWlucyBhdCBhIHZhdWx0IGFjY291bnQuICogYFNUQUtFYCAtIEFzc2lnbiBhc3NldHMgdG8gYSBzdGFraW5nIHBvb2wgbWFuYWdlZCBieSBhIHN0YWtpbmcgdmFsaWRhdG9yLiBTdXBwb3J0ZWQgZm9yIFN0ZWxsYXIgYW5kIEVWTS1iYXNlZCBibG9ja2NoYWlucy4gVGhpcyB0cmFuc2FjdGlvbiBpcyBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgd2hlbiBwZXJmb3JtaW5nIHN0YWtpbmcgb3BlcmF0aW9ucy4gKiBgVU5TVEFLRWAgLSBSZW1vdmUgYXNzZXRzIGZyb20gYSBzdGFraW5nIHBvb2wgbWFuYWdlZCBieSBhIHN0YWtpbmcgdmFsaWRhdG9yLiBTdXBwb3J0ZWQgZm9yIFN0ZWxsYXIgYW5kIEVWTS1iYXNlZCBibG9ja2NoYWlucy4gVGhpcyB0cmFuc2FjdGlvbiBpcyBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgd2hlbiBwZXJmb3JtaW5nIHN0YWtpbmcgb3BlcmF0aW9ucy4gKiBgV0lUSERSQVdgIC0gVHJhbnNmZXIgYXNzZXRzIGZyb20gYSBkZWRpY2F0ZWQgc3Rha2luZyB2YXVsdCBhY2NvdW50IHRvIGFub3RoZXIgYWRkcmVzcy4gU3VwcG9ydGVkIGZvciBTdGVsbGFyIGFuZCBFVk0tYmFzZWQgYmxvY2tjaGFpbnMuIFRoaXMgdHJhbnNhY3Rpb24gaXMgYXV0b21hdGljYWxseSBjcmVhdGVkIHdoZW4gcGVyZm9ybWluZyBzdGFraW5nIG9wZXJhdGlvbnMuICAgICAgKipOb3RlOioqIEZpcmVibG9ja3Mgd2lsbCByZW5hbWUgdGhpcyB0eXBlIGZyb20gYFdJVEhEUkFXYCB0byBhIGRpZmZlcmVudCB0eXBlIG5hbWUgc29vbi4gVGhlcmUgd2lsbCBiZSBhIDctZGF5IG5vdGljZSByZWdhcmRpbmcgdGhlIG5ldyB0eXBlIG5hbWUuICAqIGBTVVBQTFlfVE9fQ09NUE9VTkRgIC0gRGVwcmVjYXRlZCBzaW5jZSBBcHJpbCAxc3QsIDIwMjMuIE9sZGVyIHRyYW5zYWN0aW9ucyBtYXkgaGF2ZSB0aGlzIGFzIHRoZWlyIG9wZXJhdGlvbiwgaW4gY2FzZSB1c2VycyBpbiB0aGUgd29ya3NwYWNlIGhhdmUgdXNlZCB0aGUgZGlyZWN0IGludGVncmF0aW9uIGJldHdlZW4gRmlyZWJsb2NrcyBhbmQgdGhlIENvbXBvdW5kIERlRkkgcHJvdG9jb2wuICogYFJFREVFTV9GUk9NX0NPTVBPVU5EYCAtIERlcHJlY2F0ZWQgc2luY2UgQXByaWwgMXN0LCAyMDIzLiBPbGRlciB0cmFuc2FjdGlvbnMgbWF5IGhhdmUgdGhpcyBhcyB0aGVpciBvcGVyYXRpb24sIGluIGNhc2UgdXNlcnMgaW4gdGhlIHdvcmtzcGFjZSBoYXZlIHVzZWQgdGhlIGRpcmVjdCBpbnRlZ3JhdGlvbiBiZXR3ZWVuIEZpcmVibG9ja3MgYW5kIHRoZSBDb21wb3VuZCBEZUZJIHByb3RvY29sLiAqIGBQUk9HUkFNX0NBTExgIC0gSW4gU29sYW5hIHJlZmVycyB0byBpbnZva2luZyBvbi1jaGFpbiBwcm9ncmFtcyAoc21hcnQgY29udHJhY3RzKSB0byBleGVjdXRlIHRyYW5zYWN0aW9ucyBhbmQgaW50ZXJhY3Qgd2l0aCB0aGUgYmxvY2tjaGFpbi4gKiBgQVBQUk9WRWAgLSBFbmFibGVzIHRoZSBhcHByb3ZlIGZ1bmN0aW9uIGZvciBhIHNtYXJ0IGNvbnRyYWN0IG9yIHdhbGxldCB0byAgd2l0aGRyYXcgZnJvbSBhIGRlc2lnbmF0ZWQgd2FsbGV0LiBbTGVhcm4gbW9yZV0oaHR0cHM6Ly9zdXBwb3J0LmZpcmVibG9ja3MuaW8vaGMvZW4tdXMvYXJ0aWNsZXMvNDQwNDYxNjA5NzQyNi1BbW91bnQtQ2FwLWZvci1BcHByb3ZlLXRyYW5zYWN0aW9ucykuIAogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIFRSQU5TRkVSID0gJ1RSQU5TRkVSJwogICAgQlVSTiA9ICdCVVJOJwogICAgQ09OVFJBQ1RfQ0FMTCA9ICdDT05UUkFDVF9DQUxMJwogICAgTUlOVCA9ICdNSU5UJwogICAgUkFXID0gJ1JBVycKICAgIFRZUEVEX01FU1NBR0UgPSAnVFlQRURfTUVTU0FHRScKICAgIEVOQUJMRV9BU1NFVCA9ICdFTkFCTEVfQVNTRVQnCiAgICBTVEFLRSA9ICdTVEFLRScKICAgIFVOU1RBS0UgPSAnVU5TVEFLRScKICAgIFdJVEhEUkFXID0gJ1dJVEhEUkFXJwogICAgUkVERUVNX0ZST01fQ09NUE9VTkQgPSAnUkVERUVNX0ZST01fQ09NUE9VTkQnCiAgICBTVVBQTFlfVE9fQ09NUE9VTkQgPSAnU1VQUExZX1RPX0NPTVBPVU5EJwogICAgUFJPR1JBTV9DQUxMID0gJ1BST0dSQU1fQ0FMTCcKICAgIEFQUFJPVkUgPSAnQVBQUk9WRScKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRUcmFuc2FjdGlvbk9wZXJhdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/get_validation_key_response_dto.py b/fireblocks/models/get_validation_key_response_dto.py index 83e9e756..2399d1de 100644 --- a/fireblocks/models/get_validation_key_response_dto.py +++ b/fireblocks/models/get_validation_key_response_dto.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.validation_key_dto import ValidationKeyDto -from typing import Optional, Set -from typing_extensions import Self - -class GetValidationKeyResponseDto(BaseModel): - """ - GetValidationKeyResponseDto - """ # noqa: E501 - data: List[ValidationKeyDto] = Field(description="Response object for getting external validation keys.") - next: Optional[StrictStr] = Field(default=None, description="The ID of the next page") - __properties: ClassVar[List[str]] = ["data", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetValidationKeyResponseDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetValidationKeyResponseDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [ValidationKeyDto.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhbGlkYXRpb25fa2V5X2R0byBpbXBvcnQgVmFsaWRhdGlvbktleUR0bwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBHZXRWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8oQmFzZU1vZGVsKToKICAgICIiIgogICAgR2V0VmFsaWRhdGlvbktleVJlc3BvbnNlRHRvCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkYXRhOiBMaXN0W1ZhbGlkYXRpb25LZXlEdG9dID0gRmllbGQoZGVzY3JpcHRpb249IlJlc3BvbnNlIG9iamVjdCBmb3IgZ2V0dGluZyBleHRlcm5hbCB2YWxpZGF0aW9uIGtleXMuIikKICAgIG5leHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIG5leHQgcGFnZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRhdGEiLCAibmV4dCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0VmFsaWRhdGlvbktleVJlc3BvbnNlRHRvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGRhdGEgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmRhdGE6CiAgICAgICAgICAgIGZvciBfaXRlbV9kYXRhIGluIHNlbGYuZGF0YToKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2RhdGE6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9kYXRhLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2RhdGEnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0VmFsaWRhdGlvbktleVJlc3BvbnNlRHRvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRhdGEiOiBbVmFsaWRhdGlvbktleUR0by5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImRhdGEiXV0gaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm5leHQiOiBvYmouZ2V0KCJuZXh0IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/get_whitelist_ip_addresses_response.py b/fireblocks/models/get_whitelist_ip_addresses_response.py index 92d798ef..c1998665 100644 --- a/fireblocks/models/get_whitelist_ip_addresses_response.py +++ b/fireblocks/models/get_whitelist_ip_addresses_response.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class GetWhitelistIpAddressesResponse(BaseModel): - """ - GetWhitelistIpAddressesResponse - """ # noqa: E501 - user_id: Optional[StrictStr] = Field(default=None, description="The ID of the user", alias="userId") - whitelisted_ips: Optional[List[StrictStr]] = Field(default=None, description="List of whitelisted ip addresses", alias="whitelistedIps") - __properties: ClassVar[List[str]] = ["userId", "whitelistedIps"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetWhitelistIpAddressesResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if whitelisted_ips (nullable) is None - # and model_fields_set contains the field - if self.whitelisted_ips is None and "whitelisted_ips" in self.model_fields_set: - _dict['whitelistedIps'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetWhitelistIpAddressesResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "userId": obj.get("userId"), - "whitelistedIps": obj.get("whitelistedIps") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBHZXRXaGl0ZWxpc3RJcEFkZHJlc3Nlc1Jlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEdldFdoaXRlbGlzdElwQWRkcmVzc2VzUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHVzZXJfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIHVzZXIiLCBhbGlhcz0idXNlcklkIikKICAgIHdoaXRlbGlzdGVkX2lwczogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ikxpc3Qgb2Ygd2hpdGVsaXN0ZWQgaXAgYWRkcmVzc2VzIiwgYWxpYXM9IndoaXRlbGlzdGVkSXBzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidXNlcklkIiwgIndoaXRlbGlzdGVkSXBzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRXaGl0ZWxpc3RJcEFkZHJlc3Nlc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIHNldCB0byBOb25lIGlmIHdoaXRlbGlzdGVkX2lwcyAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYud2hpdGVsaXN0ZWRfaXBzIGlzIE5vbmUgYW5kICJ3aGl0ZWxpc3RlZF9pcHMiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3doaXRlbGlzdGVkSXBzJ10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgR2V0V2hpdGVsaXN0SXBBZGRyZXNzZXNSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ1c2VySWQiOiBvYmouZ2V0KCJ1c2VySWQiKSwKICAgICAgICAgICAgIndoaXRlbGlzdGVkSXBzIjogb2JqLmdldCgid2hpdGVsaXN0ZWRJcHMiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/get_workspace_status_response.py b/fireblocks/models/get_workspace_status_response.py index 920904b8..068f0a0d 100644 --- a/fireblocks/models/get_workspace_status_response.py +++ b/fireblocks/models/get_workspace_status_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class GetWorkspaceStatusResponse(BaseModel): - """ - GetWorkspaceStatusResponse - """ # noqa: E501 - status: Optional[StrictStr] = Field(default=None, description="Current workspace status") - __properties: ClassVar[List[str]] = ["status"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetWorkspaceStatusResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetWorkspaceStatusResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "status": obj.get("status") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBHZXRXb3Jrc3BhY2VTdGF0dXNSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBHZXRXb3Jrc3BhY2VTdGF0dXNSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgc3RhdHVzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3VycmVudCB3b3Jrc3BhY2Ugc3RhdHVzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3RhdHVzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRXb3Jrc3BhY2VTdGF0dXNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBHZXRXb3Jrc3BhY2VTdGF0dXNSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/http_contract_does_not_exist_error.py b/fireblocks/models/http_contract_does_not_exist_error.py index 941b08bc..6bc72d24 100644 --- a/fireblocks/models/http_contract_does_not_exist_error.py +++ b/fireblocks/models/http_contract_does_not_exist_error.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class HttpContractDoesNotExistError(BaseModel): - """ - HttpContractDoesNotExistError - """ # noqa: E501 - message: Optional[StrictStr] = Field(default=None, description="Not Found error code") - code: Optional[StrictStr] = Field(default=None, description="Error code") - __properties: ClassVar[List[str]] = ["message", "code"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of HttpContractDoesNotExistError from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of HttpContractDoesNotExistError from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "code": obj.get("code") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBIdHRwQ29udHJhY3REb2VzTm90RXhpc3RFcnJvcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBIdHRwQ29udHJhY3REb2VzTm90RXhpc3RFcnJvcgogICAgIiIiICMgbm9xYTogRTUwMQogICAgbWVzc2FnZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik5vdCBGb3VuZCBlcnJvciBjb2RlIikKICAgIGNvZGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJFcnJvciBjb2RlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibWVzc2FnZSIsICJjb2RlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBIdHRwQ29udHJhY3REb2VzTm90RXhpc3RFcnJvciBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBIdHRwQ29udHJhY3REb2VzTm90RXhpc3RFcnJvciBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJtZXNzYWdlIjogb2JqLmdldCgibWVzc2FnZSIpLAogICAgICAgICAgICAiY29kZSI6IG9iai5nZXQoImNvZGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/iban_address.py b/fireblocks/models/iban_address.py index ca0cc0a8..95e47d87 100644 --- a/fireblocks/models/iban_address.py +++ b/fireblocks/models/iban_address.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, field_validator -from typing import Any, ClassVar, Dict, List -from typing_extensions import Annotated -from fireblocks.models.account_holder_details import AccountHolderDetails -from typing import Optional, Set -from typing_extensions import Self - -class IbanAddress(BaseModel): - """ - IbanAddress - """ # noqa: E501 - account_holder: AccountHolderDetails = Field(alias="accountHolder") - iban: Annotated[str, Field(strict=True)] - __properties: ClassVar[List[str]] = ["accountHolder", "iban"] - - @field_validator('iban') - def iban_validate_regular_expression(cls, value): - """Validates the regular expression""" - if not re.match(r"^[A-Z]{2}\d{2}[a-zA-Z0-9]{1,30}$", value): - raise ValueError(r"must validate the regular expression /^[A-Z]{2}\d{2}[a-zA-Z0-9]{1,30}$/") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of IbanAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of account_holder - if self.account_holder: - _dict['accountHolder'] = self.account_holder.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of IbanAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None, - "iban": obj.get("iban") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaG9sZGVyX2RldGFpbHMgaW1wb3J0IEFjY291bnRIb2xkZXJEZXRhaWxzCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEliYW5BZGRyZXNzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEliYW5BZGRyZXNzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhY2NvdW50X2hvbGRlcjogQWNjb3VudEhvbGRlckRldGFpbHMgPSBGaWVsZChhbGlhcz0iYWNjb3VudEhvbGRlciIpCiAgICBpYmFuOiBBbm5vdGF0ZWRbc3RyLCBGaWVsZChzdHJpY3Q9VHJ1ZSldCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFjY291bnRIb2xkZXIiLCAiaWJhbiJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignaWJhbicpCiAgICBkZWYgaWJhbl92YWxpZGF0ZV9yZWd1bGFyX2V4cHJlc3Npb24oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSByZWd1bGFyIGV4cHJlc3Npb24iIiIKICAgICAgICBpZiBub3QgcmUubWF0Y2gociJeW0EtWl17Mn1cZHsyfVthLXpBLVowLTldezEsMzB9JCIsIHZhbHVlKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihyIm11c3QgdmFsaWRhdGUgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiAvXltBLVpdezJ9XGR7Mn1bYS16QS1aMC05XXsxLDMwfSQvIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJYmFuQWRkcmVzcyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFjY291bnRfaG9sZGVyCiAgICAgICAgaWYgc2VsZi5hY2NvdW50X2hvbGRlcjoKICAgICAgICAgICAgX2RpY3RbJ2FjY291bnRIb2xkZXInXSA9IHNlbGYuYWNjb3VudF9ob2xkZXIudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJYmFuQWRkcmVzcyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyIjogQWNjb3VudEhvbGRlckRldGFpbHMuZnJvbV9kaWN0KG9ialsiYWNjb3VudEhvbGRlciJdKSBpZiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiaWJhbiI6IG9iai5nZXQoImliYW4iKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/iban_destination.py b/fireblocks/models/iban_destination.py index 98b4bb10..88feaefd 100644 --- a/fireblocks/models/iban_destination.py +++ b/fireblocks/models/iban_destination.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from fireblocks.models.iban_address import IbanAddress -from typing import Optional, Set -from typing_extensions import Self - -class IbanDestination(BaseModel): - """ - IbanDestination - """ # noqa: E501 - type: StrictStr - address: IbanAddress - __properties: ClassVar[List[str]] = ["type", "address"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['IBAN']): - raise ValueError("must be one of enum values ('IBAN')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of IbanDestination from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of address - if self.address: - _dict['address'] = self.address.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of IbanDestination from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "address": IbanAddress.from_dict(obj["address"]) if obj.get("address") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmliYW5fYWRkcmVzcyBpbXBvcnQgSWJhbkFkZHJlc3MKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgSWJhbkRlc3RpbmF0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEliYW5EZXN0aW5hdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogU3RyaWN0U3RyCiAgICBhZGRyZXNzOiBJYmFuQWRkcmVzcwogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgImFkZHJlc3MiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3R5cGUnKQogICAgZGVmIHR5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnSUJBTiddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdJQkFOJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEliYW5EZXN0aW5hdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFkZHJlc3MKICAgICAgICBpZiBzZWxmLmFkZHJlc3M6CiAgICAgICAgICAgIF9kaWN0WydhZGRyZXNzJ10gPSBzZWxmLmFkZHJlc3MudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJYmFuRGVzdGluYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImFkZHJlc3MiOiBJYmFuQWRkcmVzcy5mcm9tX2RpY3Qob2JqWyJhZGRyZXNzIl0pIGlmIG9iai5nZXQoImFkZHJlc3MiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/iban_payment_info.py b/fireblocks/models/iban_payment_info.py index 202ddcbe..671e3dde 100644 --- a/fireblocks/models/iban_payment_info.py +++ b/fireblocks/models/iban_payment_info.py @@ -1,108 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class IbanPaymentInfo(BaseModel): - """ - IBAN payment information for European bank transfers - """ # noqa: E501 - account_holder_given_name: StrictStr = Field(description="The given name (first name) of the account holder", alias="accountHolderGivenName") - account_holder_surname: Optional[StrictStr] = Field(default=None, description="The surname (last name) of the account holder", alias="accountHolderSurname") - account_holder_city: StrictStr = Field(description="The city where the account holder resides", alias="accountHolderCity") - account_holder_country: StrictStr = Field(description="The country where the account holder resides (ISO 3166-1 alpha-2 code)", alias="accountHolderCountry") - account_holder_address1: StrictStr = Field(description="The primary address line of the account holder", alias="accountHolderAddress1") - account_holder_address2: Optional[StrictStr] = Field(default=None, description="The secondary address line of the account holder (optional)", alias="accountHolderAddress2") - account_holder_district: Optional[StrictStr] = Field(default=None, description="The district or region where the account holder resides", alias="accountHolderDistrict") - account_holder_postal_code: StrictStr = Field(description="The postal code of the account holder's address", alias="accountHolderPostalCode") - iban: StrictStr = Field(description="The International Bank Account Number (IBAN)") - iban_city: StrictStr = Field(description="The city associated with the IBAN", alias="ibanCity") - iban_country: StrictStr = Field(description="The country associated with the IBAN (ISO 3166-1 alpha-2 code)", alias="ibanCountry") - __properties: ClassVar[List[str]] = ["accountHolderGivenName", "accountHolderSurname", "accountHolderCity", "accountHolderCountry", "accountHolderAddress1", "accountHolderAddress2", "accountHolderDistrict", "accountHolderPostalCode", "iban", "ibanCity", "ibanCountry"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of IbanPaymentInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of IbanPaymentInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountHolderGivenName": obj.get("accountHolderGivenName"), - "accountHolderSurname": obj.get("accountHolderSurname"), - "accountHolderCity": obj.get("accountHolderCity"), - "accountHolderCountry": obj.get("accountHolderCountry"), - "accountHolderAddress1": obj.get("accountHolderAddress1"), - "accountHolderAddress2": obj.get("accountHolderAddress2"), - "accountHolderDistrict": obj.get("accountHolderDistrict"), - "accountHolderPostalCode": obj.get("accountHolderPostalCode"), - "iban": obj.get("iban"), - "ibanCity": obj.get("ibanCity"), - "ibanCountry": obj.get("ibanCountry") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBJYmFuUGF5bWVudEluZm8oQmFzZU1vZGVsKToKICAgICIiIgogICAgSUJBTiBwYXltZW50IGluZm9ybWF0aW9uIGZvciBFdXJvcGVhbiBiYW5rIHRyYW5zZmVycwogICAgIiIiICMgbm9xYTogRTUwMQogICAgYWNjb3VudF9ob2xkZXJfZ2l2ZW5fbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBnaXZlbiBuYW1lIChmaXJzdCBuYW1lKSBvZiB0aGUgYWNjb3VudCBob2xkZXIiLCBhbGlhcz0iYWNjb3VudEhvbGRlckdpdmVuTmFtZSIpCiAgICBhY2NvdW50X2hvbGRlcl9zdXJuYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHN1cm5hbWUgKGxhc3QgbmFtZSkgb2YgdGhlIGFjY291bnQgaG9sZGVyIiwgYWxpYXM9ImFjY291bnRIb2xkZXJTdXJuYW1lIikKICAgIGFjY291bnRfaG9sZGVyX2NpdHk6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgY2l0eSB3aGVyZSB0aGUgYWNjb3VudCBob2xkZXIgcmVzaWRlcyIsIGFsaWFzPSJhY2NvdW50SG9sZGVyQ2l0eSIpCiAgICBhY2NvdW50X2hvbGRlcl9jb3VudHJ5OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNvdW50cnkgd2hlcmUgdGhlIGFjY291bnQgaG9sZGVyIHJlc2lkZXMgKElTTyAzMTY2LTEgYWxwaGEtMiBjb2RlKSIsIGFsaWFzPSJhY2NvdW50SG9sZGVyQ291bnRyeSIpCiAgICBhY2NvdW50X2hvbGRlcl9hZGRyZXNzMTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBwcmltYXJ5IGFkZHJlc3MgbGluZSBvZiB0aGUgYWNjb3VudCBob2xkZXIiLCBhbGlhcz0iYWNjb3VudEhvbGRlckFkZHJlc3MxIikKICAgIGFjY291bnRfaG9sZGVyX2FkZHJlc3MyOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHNlY29uZGFyeSBhZGRyZXNzIGxpbmUgb2YgdGhlIGFjY291bnQgaG9sZGVyIChvcHRpb25hbCkiLCBhbGlhcz0iYWNjb3VudEhvbGRlckFkZHJlc3MyIikKICAgIGFjY291bnRfaG9sZGVyX2Rpc3RyaWN0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGRpc3RyaWN0IG9yIHJlZ2lvbiB3aGVyZSB0aGUgYWNjb3VudCBob2xkZXIgcmVzaWRlcyIsIGFsaWFzPSJhY2NvdW50SG9sZGVyRGlzdHJpY3QiKQogICAgYWNjb3VudF9ob2xkZXJfcG9zdGFsX2NvZGU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgcG9zdGFsIGNvZGUgb2YgdGhlIGFjY291bnQgaG9sZGVyJ3MgYWRkcmVzcyIsIGFsaWFzPSJhY2NvdW50SG9sZGVyUG9zdGFsQ29kZSIpCiAgICBpYmFuOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIEludGVybmF0aW9uYWwgQmFuayBBY2NvdW50IE51bWJlciAoSUJBTikiKQogICAgaWJhbl9jaXR5OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBJQkFOIiwgYWxpYXM9ImliYW5DaXR5IikKICAgIGliYW5fY291bnRyeTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBjb3VudHJ5IGFzc29jaWF0ZWQgd2l0aCB0aGUgSUJBTiAoSVNPIDMxNjYtMSBhbHBoYS0yIGNvZGUpIiwgYWxpYXM9ImliYW5Db3VudHJ5IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYWNjb3VudEhvbGRlckdpdmVuTmFtZSIsICJhY2NvdW50SG9sZGVyU3VybmFtZSIsICJhY2NvdW50SG9sZGVyQ2l0eSIsICJhY2NvdW50SG9sZGVyQ291bnRyeSIsICJhY2NvdW50SG9sZGVyQWRkcmVzczEiLCAiYWNjb3VudEhvbGRlckFkZHJlc3MyIiwgImFjY291bnRIb2xkZXJEaXN0cmljdCIsICJhY2NvdW50SG9sZGVyUG9zdGFsQ29kZSIsICJpYmFuIiwgImliYW5DaXR5IiwgImliYW5Db3VudHJ5Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJYmFuUGF5bWVudEluZm8gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgSWJhblBheW1lbnRJbmZvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFjY291bnRIb2xkZXJHaXZlbk5hbWUiOiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyR2l2ZW5OYW1lIiksCiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyU3VybmFtZSI6IG9iai5nZXQoImFjY291bnRIb2xkZXJTdXJuYW1lIiksCiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyQ2l0eSI6IG9iai5nZXQoImFjY291bnRIb2xkZXJDaXR5IiksCiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyQ291bnRyeSI6IG9iai5nZXQoImFjY291bnRIb2xkZXJDb3VudHJ5IiksCiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyQWRkcmVzczEiOiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyQWRkcmVzczEiKSwKICAgICAgICAgICAgImFjY291bnRIb2xkZXJBZGRyZXNzMiI6IG9iai5nZXQoImFjY291bnRIb2xkZXJBZGRyZXNzMiIpLAogICAgICAgICAgICAiYWNjb3VudEhvbGRlckRpc3RyaWN0Ijogb2JqLmdldCgiYWNjb3VudEhvbGRlckRpc3RyaWN0IiksCiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyUG9zdGFsQ29kZSI6IG9iai5nZXQoImFjY291bnRIb2xkZXJQb3N0YWxDb2RlIiksCiAgICAgICAgICAgICJpYmFuIjogb2JqLmdldCgiaWJhbiIpLAogICAgICAgICAgICAiaWJhbkNpdHkiOiBvYmouZ2V0KCJpYmFuQ2l0eSIpLAogICAgICAgICAgICAiaWJhbkNvdW50cnkiOiBvYmouZ2V0KCJpYmFuQ291bnRyeSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/identification.py b/fireblocks/models/identification.py index cc15480f..9d32e871 100644 --- a/fireblocks/models/identification.py +++ b/fireblocks/models/identification.py @@ -1,141 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.business_identification import BusinessIdentification -from fireblocks.models.personal_identification import PersonalIdentification -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -IDENTIFICATION_ONE_OF_SCHEMAS = ["BusinessIdentification", "PersonalIdentification"] - -class Identification(BaseModel): - """ - Identification - """ - # data type: PersonalIdentification - oneof_schema_1_validator: Optional[PersonalIdentification] = None - # data type: BusinessIdentification - oneof_schema_2_validator: Optional[BusinessIdentification] = None - actual_instance: Optional[Union[BusinessIdentification, PersonalIdentification]] = None - one_of_schemas: Set[str] = { "BusinessIdentification", "PersonalIdentification" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - discriminator_value_class_map: Dict[str, str] = { - } - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = Identification.model_construct() - error_messages = [] - match = 0 - # validate data type: PersonalIdentification - if not isinstance(v, PersonalIdentification): - error_messages.append(f"Error! Input type `{type(v)}` is not `PersonalIdentification`") - else: - match += 1 - # validate data type: BusinessIdentification - if not isinstance(v, BusinessIdentification): - error_messages.append(f"Error! Input type `{type(v)}` is not `BusinessIdentification`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in Identification with oneOf schemas: BusinessIdentification, PersonalIdentification. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in Identification with oneOf schemas: BusinessIdentification, PersonalIdentification. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into PersonalIdentification - try: - instance.actual_instance = PersonalIdentification.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into BusinessIdentification - try: - instance.actual_instance = BusinessIdentification.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into Identification with oneOf schemas: BusinessIdentification, PersonalIdentification. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into Identification with oneOf schemas: BusinessIdentification, PersonalIdentification. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], BusinessIdentification, PersonalIdentification]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYnVzaW5lc3NfaWRlbnRpZmljYXRpb24gaW1wb3J0IEJ1c2luZXNzSWRlbnRpZmljYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wZXJzb25hbF9pZGVudGlmaWNhdGlvbiBpbXBvcnQgUGVyc29uYWxJZGVudGlmaWNhdGlvbgpmcm9tIHB5ZGFudGljIGltcG9ydCBTdHJpY3RTdHIsIEZpZWxkCmZyb20gdHlwaW5nIGltcG9ydCBVbmlvbiwgTGlzdCwgU2V0LCBPcHRpb25hbCwgRGljdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBMaXRlcmFsLCBTZWxmCgpJREVOVElGSUNBVElPTl9PTkVfT0ZfU0NIRU1BUyA9IFsiQnVzaW5lc3NJZGVudGlmaWNhdGlvbiIsICJQZXJzb25hbElkZW50aWZpY2F0aW9uIl0KCmNsYXNzIElkZW50aWZpY2F0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIElkZW50aWZpY2F0aW9uCiAgICAiIiIKICAgICMgZGF0YSB0eXBlOiBQZXJzb25hbElkZW50aWZpY2F0aW9uCiAgICBvbmVvZl9zY2hlbWFfMV92YWxpZGF0b3I6IE9wdGlvbmFsW1BlcnNvbmFsSWRlbnRpZmljYXRpb25dID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IEJ1c2luZXNzSWRlbnRpZmljYXRpb24KICAgIG9uZW9mX3NjaGVtYV8yX3ZhbGlkYXRvcjogT3B0aW9uYWxbQnVzaW5lc3NJZGVudGlmaWNhdGlvbl0gPSBOb25lCiAgICBhY3R1YWxfaW5zdGFuY2U6IE9wdGlvbmFsW1VuaW9uW0J1c2luZXNzSWRlbnRpZmljYXRpb24sIFBlcnNvbmFsSWRlbnRpZmljYXRpb25dXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgIkJ1c2luZXNzSWRlbnRpZmljYXRpb24iLCAiUGVyc29uYWxJZGVudGlmaWNhdGlvbiIgfQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkaXNjcmltaW5hdG9yX3ZhbHVlX2NsYXNzX21hcDogRGljdFtzdHIsIHN0cl0gPSB7CiAgICB9CgogICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncykgLT4gTm9uZToKICAgICAgICBpZiBhcmdzOgogICAgICAgICAgICBpZiBsZW4oYXJncykgPiAxOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBvbmx5IDEgaXMgYWxsb3dlZCB0byBzZXQgYGFjdHVhbF9pbnN0YW5jZWAiKQogICAgICAgICAgICBpZiBrd2FyZ3M6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIGtleXdvcmQgYXJndW1lbnRzIGNhbm5vdCBiZSB1c2VkLiIpCiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oYWN0dWFsX2luc3RhbmNlPWFyZ3NbMF0pCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhY3R1YWxfaW5zdGFuY2UnKQogICAgZGVmIGFjdHVhbF9pbnN0YW5jZV9tdXN0X3ZhbGlkYXRlX29uZW9mKGNscywgdik6CiAgICAgICAgaW5zdGFuY2UgPSBJZGVudGlmaWNhdGlvbi5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogUGVyc29uYWxJZGVudGlmaWNhdGlvbgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIFBlcnNvbmFsSWRlbnRpZmljYXRpb24pOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYFBlcnNvbmFsSWRlbnRpZmljYXRpb25gIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IEJ1c2luZXNzSWRlbnRpZmljYXRpb24KICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBCdXNpbmVzc0lkZW50aWZpY2F0aW9uKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBCdXNpbmVzc0lkZW50aWZpY2F0aW9uYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBJZGVudGlmaWNhdGlvbiB3aXRoIG9uZU9mIHNjaGVtYXM6IEJ1c2luZXNzSWRlbnRpZmljYXRpb24sIFBlcnNvbmFsSWRlbnRpZmljYXRpb24uIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gSWRlbnRpZmljYXRpb24gd2l0aCBvbmVPZiBzY2hlbWFzOiBCdXNpbmVzc0lkZW50aWZpY2F0aW9uLCBQZXJzb25hbElkZW50aWZpY2F0aW9uLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gdgoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogVW5pb25bc3RyLCBEaWN0W3N0ciwgQW55XV0pIC0+IFNlbGY6CiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2pzb24oanNvbi5kdW1wcyhvYmopKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgb2JqZWN0IHJlcHJlc2VudGVkIGJ5IHRoZSBqc29uIHN0cmluZyIiIgogICAgICAgIGluc3RhbmNlID0gY2xzLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAoKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBQZXJzb25hbElkZW50aWZpY2F0aW9uCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBQZXJzb25hbElkZW50aWZpY2F0aW9uLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIEJ1c2luZXNzSWRlbnRpZmljYXRpb24KICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IEJ1c2luZXNzSWRlbnRpZmljYXRpb24uZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCgogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBJZGVudGlmaWNhdGlvbiB3aXRoIG9uZU9mIHNjaGVtYXM6IEJ1c2luZXNzSWRlbnRpZmljYXRpb24sIFBlcnNvbmFsSWRlbnRpZmljYXRpb24uIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gSWRlbnRpZmljYXRpb24gd2l0aCBvbmVPZiBzY2hlbWFzOiBCdXNpbmVzc0lkZW50aWZpY2F0aW9uLCBQZXJzb25hbElkZW50aWZpY2F0aW9uLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuICJudWxsIgoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fanNvbiIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24oKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYuYWN0dWFsX2luc3RhbmNlKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IE9wdGlvbmFsW1VuaW9uW0RpY3Rbc3RyLCBBbnldLCBCdXNpbmVzc0lkZW50aWZpY2F0aW9uLCBQZXJzb25hbElkZW50aWZpY2F0aW9uXV06CiAgICAgICAgIiIiUmV0dXJucyB0aGUgZGljdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2RpY3QiKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCk6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KCkKICAgICAgICBlbHNlOgogICAgICAgICAgICAjIHByaW1pdGl2ZSB0eXBlCiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZQoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcCgpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/idl_type.py b/fireblocks/models/idl_type.py index 06bbd719..fd9fe02b 100644 --- a/fireblocks/models/idl_type.py +++ b/fireblocks/models/idl_type.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class IdlType(str, Enum): - """ - The type of the parameter - """ - - """ - allowed enum values - """ - BOOL = 'bool' - U8 = 'u8' - I8 = 'i8' - U16 = 'u16' - I16 = 'i16' - U32 = 'u32' - I32 = 'i32' - F32 = 'f32' - U64 = 'u64' - I64 = 'i64' - F64 = 'f64' - U128 = 'u128' - I128 = 'i128' - U256 = 'u256' - I256 = 'i256' - BYTES = 'bytes' - STRING = 'string' - PUBKEY = 'pubkey' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of IdlType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBJZGxUeXBlKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIFRoZSB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBCT09MID0gJ2Jvb2wnCiAgICBVOCA9ICd1OCcKICAgIEk4ID0gJ2k4JwogICAgVTE2ID0gJ3UxNicKICAgIEkxNiA9ICdpMTYnCiAgICBVMzIgPSAndTMyJwogICAgSTMyID0gJ2kzMicKICAgIEYzMiA9ICdmMzInCiAgICBVNjQgPSAndTY0JwogICAgSTY0ID0gJ2k2NCcKICAgIEY2NCA9ICdmNjQnCiAgICBVMTI4ID0gJ3UxMjgnCiAgICBJMTI4ID0gJ2kxMjgnCiAgICBVMjU2ID0gJ3UyNTYnCiAgICBJMjU2ID0gJ2kyNTYnCiAgICBCWVRFUyA9ICdieXRlcycKICAgIFNUUklORyA9ICdzdHJpbmcnCiAgICBQVUJLRVkgPSAncHVia2V5JwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIElkbFR5cGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/indicative_quote_enum.py b/fireblocks/models/indicative_quote_enum.py index fd21330f..4e3a060f 100644 --- a/fireblocks/models/indicative_quote_enum.py +++ b/fireblocks/models/indicative_quote_enum.py @@ -1,37 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class IndicativeQuoteEnum(str, Enum): - """ - Indicates this is an indicative quote - """ - - """ - allowed enum values - """ - INDICATIVE = 'INDICATIVE' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of IndicativeQuoteEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBJbmRpY2F0aXZlUXVvdGVFbnVtKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIEluZGljYXRlcyB0aGlzIGlzIGFuIGluZGljYXRpdmUgcXVvdGUKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBJTkRJQ0FUSVZFID0gJ0lORElDQVRJVkUnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgSW5kaWNhdGl2ZVF1b3RlRW51bSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/indicative_quote_type.py b/fireblocks/models/indicative_quote_type.py index 9b8b3ded..156fbd13 100644 --- a/fireblocks/models/indicative_quote_type.py +++ b/fireblocks/models/indicative_quote_type.py @@ -1,89 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List -from fireblocks.models.indicative_quote_enum import IndicativeQuoteEnum -from typing import Optional, Set -from typing_extensions import Self - -class IndicativeQuoteType(BaseModel): - """ - IndicativeQuoteType - """ # noqa: E501 - type: IndicativeQuoteEnum - __properties: ClassVar[List[str]] = ["type"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of IndicativeQuoteType from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of IndicativeQuoteType from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaW5kaWNhdGl2ZV9xdW90ZV9lbnVtIGltcG9ydCBJbmRpY2F0aXZlUXVvdGVFbnVtCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEluZGljYXRpdmVRdW90ZVR5cGUoQmFzZU1vZGVsKToKICAgICIiIgogICAgSW5kaWNhdGl2ZVF1b3RlVHlwZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogSW5kaWNhdGl2ZVF1b3RlRW51bQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJbmRpY2F0aXZlUXVvdGVUeXBlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEluZGljYXRpdmVRdW90ZVR5cGUgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/initiator_config.py b/fireblocks/models/initiator_config.py index 7fb2782f..50bb97df 100644 --- a/fireblocks/models/initiator_config.py +++ b/fireblocks/models/initiator_config.py @@ -1,99 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.policy_operator import PolicyOperator -from typing import Optional, Set -from typing_extensions import Self - -class InitiatorConfig(BaseModel): - """ - Policy rule initiator configuration - """ # noqa: E501 - users: Optional[List[StrictStr]] = Field(default=None, description="List of user IDs") - groups: Optional[List[StrictStr]] = Field(default=None, description="List of policy group IDs") - services: Optional[List[StrictStr]] = None - fb_admin_groups: Optional[List[StrictStr]] = Field(default=None, alias="fbAdminGroups") - exchange: Optional[List[StrictStr]] = None - operator: Optional[PolicyOperator] = None - __properties: ClassVar[List[str]] = ["users", "groups", "services", "fbAdminGroups", "exchange", "operator"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of InitiatorConfig from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of InitiatorConfig from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "users": obj.get("users"), - "groups": obj.get("groups"), - "services": obj.get("services"), - "fbAdminGroups": obj.get("fbAdminGroups"), - "exchange": obj.get("exchange"), - "operator": obj.get("operator") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9vcGVyYXRvciBpbXBvcnQgUG9saWN5T3BlcmF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgSW5pdGlhdG9yQ29uZmlnKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFBvbGljeSBydWxlIGluaXRpYXRvciBjb25maWd1cmF0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB1c2VyczogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ikxpc3Qgb2YgdXNlciBJRHMiKQogICAgZ3JvdXBzOiBPcHRpb25hbFtMaXN0W1N0cmljdFN0cl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTGlzdCBvZiBwb2xpY3kgZ3JvdXAgSURzIikKICAgIHNlcnZpY2VzOiBPcHRpb25hbFtMaXN0W1N0cmljdFN0cl1dID0gTm9uZQogICAgZmJfYWRtaW5fZ3JvdXBzOiBPcHRpb25hbFtMaXN0W1N0cmljdFN0cl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZmJBZG1pbkdyb3VwcyIpCiAgICBleGNoYW5nZTogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IE5vbmUKICAgIG9wZXJhdG9yOiBPcHRpb25hbFtQb2xpY3lPcGVyYXRvcl0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInVzZXJzIiwgImdyb3VwcyIsICJzZXJ2aWNlcyIsICJmYkFkbWluR3JvdXBzIiwgImV4Y2hhbmdlIiwgIm9wZXJhdG9yIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJbml0aWF0b3JDb25maWcgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgSW5pdGlhdG9yQ29uZmlnIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInVzZXJzIjogb2JqLmdldCgidXNlcnMiKSwKICAgICAgICAgICAgImdyb3VwcyI6IG9iai5nZXQoImdyb3VwcyIpLAogICAgICAgICAgICAic2VydmljZXMiOiBvYmouZ2V0KCJzZXJ2aWNlcyIpLAogICAgICAgICAgICAiZmJBZG1pbkdyb3VwcyI6IG9iai5nZXQoImZiQWRtaW5Hcm91cHMiKSwKICAgICAgICAgICAgImV4Y2hhbmdlIjogb2JqLmdldCgiZXhjaGFuZ2UiKSwKICAgICAgICAgICAgIm9wZXJhdG9yIjogb2JqLmdldCgib3BlcmF0b3IiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/initiator_config_pattern.py b/fireblocks/models/initiator_config_pattern.py index 34c42418..45c380cf 100644 --- a/fireblocks/models/initiator_config_pattern.py +++ b/fireblocks/models/initiator_config_pattern.py @@ -1,141 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.initiator_config import InitiatorConfig -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -INITIATORCONFIGPATTERN_ONE_OF_SCHEMAS = ["InitiatorConfig", "str"] - -class InitiatorConfigPattern(BaseModel): - """ - InitiatorConfigPattern - """ - # data type: str - oneof_schema_1_validator: Optional[StrictStr] = Field(default=None, description="All users are allowed") - # data type: InitiatorConfig - oneof_schema_2_validator: Optional[InitiatorConfig] = None - actual_instance: Optional[Union[InitiatorConfig, str]] = None - one_of_schemas: Set[str] = { "InitiatorConfig", "str" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = InitiatorConfigPattern.model_construct() - error_messages = [] - match = 0 - # validate data type: str - try: - instance.oneof_schema_1_validator = v - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # validate data type: InitiatorConfig - if not isinstance(v, InitiatorConfig): - error_messages.append(f"Error! Input type `{type(v)}` is not `InitiatorConfig`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in InitiatorConfigPattern with oneOf schemas: InitiatorConfig, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in InitiatorConfigPattern with oneOf schemas: InitiatorConfig, str. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into str - try: - # validation - instance.oneof_schema_1_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.oneof_schema_1_validator - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into InitiatorConfig - try: - instance.actual_instance = InitiatorConfig.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into InitiatorConfigPattern with oneOf schemas: InitiatorConfig, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into InitiatorConfigPattern with oneOf schemas: InitiatorConfig, str. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], InitiatorConfig, str]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaW5pdGlhdG9yX2NvbmZpZyBpbXBvcnQgSW5pdGlhdG9yQ29uZmlnCmZyb20gcHlkYW50aWMgaW1wb3J0IFN0cmljdFN0ciwgRmllbGQKZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uLCBMaXN0LCBTZXQsIE9wdGlvbmFsLCBEaWN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IExpdGVyYWwsIFNlbGYKCklOSVRJQVRPUkNPTkZJR1BBVFRFUk5fT05FX09GX1NDSEVNQVMgPSBbIkluaXRpYXRvckNvbmZpZyIsICJzdHIiXQoKY2xhc3MgSW5pdGlhdG9yQ29uZmlnUGF0dGVybihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBJbml0aWF0b3JDb25maWdQYXR0ZXJuCiAgICAiIiIKICAgICMgZGF0YSB0eXBlOiBzdHIKICAgIG9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFsbCB1c2VycyBhcmUgYWxsb3dlZCIpCiAgICAjIGRhdGEgdHlwZTogSW5pdGlhdG9yQ29uZmlnCiAgICBvbmVvZl9zY2hlbWFfMl92YWxpZGF0b3I6IE9wdGlvbmFsW0luaXRpYXRvckNvbmZpZ10gPSBOb25lCiAgICBhY3R1YWxfaW5zdGFuY2U6IE9wdGlvbmFsW1VuaW9uW0luaXRpYXRvckNvbmZpZywgc3RyXV0gPSBOb25lCiAgICBvbmVfb2Zfc2NoZW1hczogU2V0W3N0cl0gPSB7ICJJbml0aWF0b3JDb25maWciLCAic3RyIiB9CgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gSW5pdGlhdG9yQ29uZmlnUGF0dGVybi5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogc3RyCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5vbmVvZl9zY2hlbWFfMV92YWxpZGF0b3IgPSB2CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogSW5pdGlhdG9yQ29uZmlnCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgSW5pdGlhdG9yQ29uZmlnKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBJbml0aWF0b3JDb25maWdgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIEluaXRpYXRvckNvbmZpZ1BhdHRlcm4gd2l0aCBvbmVPZiBzY2hlbWFzOiBJbml0aWF0b3JDb25maWcsIHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBJbml0aWF0b3JDb25maWdQYXR0ZXJuIHdpdGggb25lT2Ygc2NoZW1hczogSW5pdGlhdG9yQ29uZmlnLCBzdHIuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBVbmlvbltzdHIsIERpY3Rbc3RyLCBBbnldXSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCgogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIHN0cgogICAgICAgIHRyeToKICAgICAgICAgICAgIyB2YWxpZGF0aW9uCiAgICAgICAgICAgIGluc3RhbmNlLm9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvciA9IGpzb24ubG9hZHMoanNvbl9zdHIpCiAgICAgICAgICAgICMgYXNzaWduIHZhbHVlIHRvIGFjdHVhbF9pbnN0YW5jZQogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBpbnN0YW5jZS5vbmVvZl9zY2hlbWFfMV92YWxpZGF0b3IKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIEluaXRpYXRvckNvbmZpZwogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gSW5pdGlhdG9yQ29uZmlnLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQoKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gSW5pdGlhdG9yQ29uZmlnUGF0dGVybiB3aXRoIG9uZU9mIHNjaGVtYXM6IEluaXRpYXRvckNvbmZpZywgc3RyLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIEluaXRpYXRvckNvbmZpZ1BhdHRlcm4gd2l0aCBvbmVPZiBzY2hlbWFzOiBJbml0aWF0b3JDb25maWcsIHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiAibnVsbCIKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2pzb24iKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbik6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKCkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLmFjdHVhbF9pbnN0YW5jZSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBPcHRpb25hbFtVbmlvbltEaWN0W3N0ciwgQW55XSwgSW5pdGlhdG9yQ29uZmlnLCBzdHJdXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgcHJpbWl0aXZlIHR5cGUKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/instruction_amount.py b/fireblocks/models/instruction_amount.py index a0f2af41..0ab01ea7 100644 --- a/fireblocks/models/instruction_amount.py +++ b/fireblocks/models/instruction_amount.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class InstructionAmount(BaseModel): - """ - InstructionAmount - """ # noqa: E501 - amount: StrictStr - asset_id: StrictStr = Field(alias="assetId") - __properties: ClassVar[List[str]] = ["amount", "assetId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of InstructionAmount from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of InstructionAmount from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": obj.get("amount"), - "assetId": obj.get("assetId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEluc3RydWN0aW9uQW1vdW50KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEluc3RydWN0aW9uQW1vdW50CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhbW91bnQ6IFN0cmljdFN0cgogICAgYXNzZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJhc3NldElkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYW1vdW50IiwgImFzc2V0SWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEluc3RydWN0aW9uQW1vdW50IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEluc3RydWN0aW9uQW1vdW50IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFtb3VudCI6IG9iai5nZXQoImFtb3VudCIpLAogICAgICAgICAgICAiYXNzZXRJZCI6IG9iai5nZXQoImFzc2V0SWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/interac_address.py b/fireblocks/models/interac_address.py index 32f07a2a..9807cd0d 100644 --- a/fireblocks/models/interac_address.py +++ b/fireblocks/models/interac_address.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.account_holder_details import AccountHolderDetails -from fireblocks.models.recipient_handle import RecipientHandle -from typing import Optional, Set -from typing_extensions import Self - -class InteracAddress(BaseModel): - """ - InteracAddress - """ # noqa: E501 - account_holder: AccountHolderDetails = Field(alias="accountHolder") - recipient_handle: RecipientHandle = Field(alias="recipientHandle") - message: Optional[StrictStr] = Field(default=None, description="The message to be sent to the recipient") - __properties: ClassVar[List[str]] = ["accountHolder", "recipientHandle", "message"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of InteracAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of account_holder - if self.account_holder: - _dict['accountHolder'] = self.account_holder.to_dict() - # override the default output from pydantic by calling `to_dict()` of recipient_handle - if self.recipient_handle: - _dict['recipientHandle'] = self.recipient_handle.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of InteracAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None, - "recipientHandle": RecipientHandle.from_dict(obj["recipientHandle"]) if obj.get("recipientHandle") is not None else None, - "message": obj.get("message") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaG9sZGVyX2RldGFpbHMgaW1wb3J0IEFjY291bnRIb2xkZXJEZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVjaXBpZW50X2hhbmRsZSBpbXBvcnQgUmVjaXBpZW50SGFuZGxlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIEludGVyYWNBZGRyZXNzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEludGVyYWNBZGRyZXNzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhY2NvdW50X2hvbGRlcjogQWNjb3VudEhvbGRlckRldGFpbHMgPSBGaWVsZChhbGlhcz0iYWNjb3VudEhvbGRlciIpCiAgICByZWNpcGllbnRfaGFuZGxlOiBSZWNpcGllbnRIYW5kbGUgPSBGaWVsZChhbGlhcz0icmVjaXBpZW50SGFuZGxlIikKICAgIG1lc3NhZ2U6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgbWVzc2FnZSB0byBiZSBzZW50IHRvIHRoZSByZWNpcGllbnQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhY2NvdW50SG9sZGVyIiwgInJlY2lwaWVudEhhbmRsZSIsICJtZXNzYWdlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJbnRlcmFjQWRkcmVzcyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFjY291bnRfaG9sZGVyCiAgICAgICAgaWYgc2VsZi5hY2NvdW50X2hvbGRlcjoKICAgICAgICAgICAgX2RpY3RbJ2FjY291bnRIb2xkZXInXSA9IHNlbGYuYWNjb3VudF9ob2xkZXIudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHJlY2lwaWVudF9oYW5kbGUKICAgICAgICBpZiBzZWxmLnJlY2lwaWVudF9oYW5kbGU6CiAgICAgICAgICAgIF9kaWN0WydyZWNpcGllbnRIYW5kbGUnXSA9IHNlbGYucmVjaXBpZW50X2hhbmRsZS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEludGVyYWNBZGRyZXNzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFjY291bnRIb2xkZXIiOiBBY2NvdW50SG9sZGVyRGV0YWlscy5mcm9tX2RpY3Qob2JqWyJhY2NvdW50SG9sZGVyIl0pIGlmIG9iai5nZXQoImFjY291bnRIb2xkZXIiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJyZWNpcGllbnRIYW5kbGUiOiBSZWNpcGllbnRIYW5kbGUuZnJvbV9kaWN0KG9ialsicmVjaXBpZW50SGFuZGxlIl0pIGlmIG9iai5nZXQoInJlY2lwaWVudEhhbmRsZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm1lc3NhZ2UiOiBvYmouZ2V0KCJtZXNzYWdlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/interac_destination.py b/fireblocks/models/interac_destination.py index 78b5bda2..da1629a4 100644 --- a/fireblocks/models/interac_destination.py +++ b/fireblocks/models/interac_destination.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from fireblocks.models.interac_address import InteracAddress -from typing import Optional, Set -from typing_extensions import Self - -class InteracDestination(BaseModel): - """ - InteracDestination - """ # noqa: E501 - type: StrictStr - address: InteracAddress - __properties: ClassVar[List[str]] = ["type", "address"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['INTERAC']): - raise ValueError("must be one of enum values ('INTERAC')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of InteracDestination from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of address - if self.address: - _dict['address'] = self.address.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of InteracDestination from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "address": InteracAddress.from_dict(obj["address"]) if obj.get("address") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmludGVyYWNfYWRkcmVzcyBpbXBvcnQgSW50ZXJhY0FkZHJlc3MKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgSW50ZXJhY0Rlc3RpbmF0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEludGVyYWNEZXN0aW5hdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogU3RyaWN0U3RyCiAgICBhZGRyZXNzOiBJbnRlcmFjQWRkcmVzcwogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgImFkZHJlc3MiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3R5cGUnKQogICAgZGVmIHR5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnSU5URVJBQyddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdJTlRFUkFDJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEludGVyYWNEZXN0aW5hdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFkZHJlc3MKICAgICAgICBpZiBzZWxmLmFkZHJlc3M6CiAgICAgICAgICAgIF9kaWN0WydhZGRyZXNzJ10gPSBzZWxmLmFkZHJlc3MudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJbnRlcmFjRGVzdGluYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImFkZHJlc3MiOiBJbnRlcmFjQWRkcmVzcy5mcm9tX2RpY3Qob2JqWyJhZGRyZXNzIl0pIGlmIG9iai5nZXQoImFkZHJlc3MiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/interac_payment_info.py b/fireblocks/models/interac_payment_info.py index 80e1bde2..49d3ab54 100644 --- a/fireblocks/models/interac_payment_info.py +++ b/fireblocks/models/interac_payment_info.py @@ -1,123 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class InteracPaymentInfo(BaseModel): - """ - Interac e-Transfer payment information for Canadian dollar transfers - """ # noqa: E501 - rail: StrictStr = Field(description="The payment rail type for Interac transfers") - addressing_system: StrictStr = Field(description="The addressing system used for Interac transfers", alias="addressingSystem") - account_holder_given_name: StrictStr = Field(description="The given name (first name) of the account holder", alias="accountHolderGivenName") - account_holder_surname: StrictStr = Field(description="The surname (last name) of the account holder", alias="accountHolderSurname") - country: StrictStr = Field(description="The country for the transfer (ISO 3166-1 alpha-2 code)") - recipient_handle_type: StrictStr = Field(description="The type of recipient handler being used", alias="recipientHandleType") - recipient_handle_value: StrictStr = Field(description="Email address registered for Interac e-Transfer", alias="recipientHandleValue") - message: StrictStr = Field(description="The message to be sent to the recipient") - __properties: ClassVar[List[str]] = ["rail", "addressingSystem", "accountHolderGivenName", "accountHolderSurname", "country", "recipientHandleType", "recipientHandleValue", "message"] - - @field_validator('rail') - def rail_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['INTERAC']): - raise ValueError("must be one of enum values ('INTERAC')") - return value - - @field_validator('addressing_system') - def addressing_system_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['INTERAC']): - raise ValueError("must be one of enum values ('INTERAC')") - return value - - @field_validator('recipient_handle_type') - def recipient_handle_type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['EMAIL']): - raise ValueError("must be one of enum values ('EMAIL')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of InteracPaymentInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of InteracPaymentInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "rail": obj.get("rail"), - "addressingSystem": obj.get("addressingSystem"), - "accountHolderGivenName": obj.get("accountHolderGivenName"), - "accountHolderSurname": obj.get("accountHolderSurname"), - "country": obj.get("country"), - "recipientHandleType": obj.get("recipientHandleType"), - "recipientHandleValue": obj.get("recipientHandleValue"), - "message": obj.get("message") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgSW50ZXJhY1BheW1lbnRJbmZvKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEludGVyYWMgZS1UcmFuc2ZlciBwYXltZW50IGluZm9ybWF0aW9uIGZvciBDYW5hZGlhbiBkb2xsYXIgdHJhbnNmZXJzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICByYWlsOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHBheW1lbnQgcmFpbCB0eXBlIGZvciBJbnRlcmFjIHRyYW5zZmVycyIpCiAgICBhZGRyZXNzaW5nX3N5c3RlbTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBhZGRyZXNzaW5nIHN5c3RlbSB1c2VkIGZvciBJbnRlcmFjIHRyYW5zZmVycyIsIGFsaWFzPSJhZGRyZXNzaW5nU3lzdGVtIikKICAgIGFjY291bnRfaG9sZGVyX2dpdmVuX25hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZ2l2ZW4gbmFtZSAoZmlyc3QgbmFtZSkgb2YgdGhlIGFjY291bnQgaG9sZGVyIiwgYWxpYXM9ImFjY291bnRIb2xkZXJHaXZlbk5hbWUiKQogICAgYWNjb3VudF9ob2xkZXJfc3VybmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBzdXJuYW1lIChsYXN0IG5hbWUpIG9mIHRoZSBhY2NvdW50IGhvbGRlciIsIGFsaWFzPSJhY2NvdW50SG9sZGVyU3VybmFtZSIpCiAgICBjb3VudHJ5OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNvdW50cnkgZm9yIHRoZSB0cmFuc2ZlciAoSVNPIDMxNjYtMSBhbHBoYS0yIGNvZGUpIikKICAgIHJlY2lwaWVudF9oYW5kbGVfdHlwZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB0eXBlIG9mIHJlY2lwaWVudCBoYW5kbGVyIGJlaW5nIHVzZWQiLCBhbGlhcz0icmVjaXBpZW50SGFuZGxlVHlwZSIpCiAgICByZWNpcGllbnRfaGFuZGxlX3ZhbHVlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iRW1haWwgYWRkcmVzcyByZWdpc3RlcmVkIGZvciBJbnRlcmFjIGUtVHJhbnNmZXIiLCBhbGlhcz0icmVjaXBpZW50SGFuZGxlVmFsdWUiKQogICAgbWVzc2FnZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBtZXNzYWdlIHRvIGJlIHNlbnQgdG8gdGhlIHJlY2lwaWVudCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInJhaWwiLCAiYWRkcmVzc2luZ1N5c3RlbSIsICJhY2NvdW50SG9sZGVyR2l2ZW5OYW1lIiwgImFjY291bnRIb2xkZXJTdXJuYW1lIiwgImNvdW50cnkiLCAicmVjaXBpZW50SGFuZGxlVHlwZSIsICJyZWNpcGllbnRIYW5kbGVWYWx1ZSIsICJtZXNzYWdlIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdyYWlsJykKICAgIGRlZiByYWlsX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0lOVEVSQUMnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnSU5URVJBQycpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhZGRyZXNzaW5nX3N5c3RlbScpCiAgICBkZWYgYWRkcmVzc2luZ19zeXN0ZW1fdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnSU5URVJBQyddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdJTlRFUkFDJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3JlY2lwaWVudF9oYW5kbGVfdHlwZScpCiAgICBkZWYgcmVjaXBpZW50X2hhbmRsZV90eXBlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0VNQUlMJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0VNQUlMJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEludGVyYWNQYXltZW50SW5mbyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJbnRlcmFjUGF5bWVudEluZm8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicmFpbCI6IG9iai5nZXQoInJhaWwiKSwKICAgICAgICAgICAgImFkZHJlc3NpbmdTeXN0ZW0iOiBvYmouZ2V0KCJhZGRyZXNzaW5nU3lzdGVtIiksCiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyR2l2ZW5OYW1lIjogb2JqLmdldCgiYWNjb3VudEhvbGRlckdpdmVuTmFtZSIpLAogICAgICAgICAgICAiYWNjb3VudEhvbGRlclN1cm5hbWUiOiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyU3VybmFtZSIpLAogICAgICAgICAgICAiY291bnRyeSI6IG9iai5nZXQoImNvdW50cnkiKSwKICAgICAgICAgICAgInJlY2lwaWVudEhhbmRsZVR5cGUiOiBvYmouZ2V0KCJyZWNpcGllbnRIYW5kbGVUeXBlIiksCiAgICAgICAgICAgICJyZWNpcGllbnRIYW5kbGVWYWx1ZSI6IG9iai5nZXQoInJlY2lwaWVudEhhbmRsZVZhbHVlIiksCiAgICAgICAgICAgICJtZXNzYWdlIjogb2JqLmdldCgibWVzc2FnZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/internal_reference.py b/fireblocks/models/internal_reference.py index f98a6f99..d14e6c74 100644 --- a/fireblocks/models/internal_reference.py +++ b/fireblocks/models/internal_reference.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.peer_type import PeerType -from typing import Optional, Set -from typing_extensions import Self - -class InternalReference(BaseModel): - """ - InternalReference - """ # noqa: E501 - type: PeerType - account_id: StrictStr = Field(alias="accountId") - __properties: ClassVar[List[str]] = ["type", "accountId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of InternalReference from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of InternalReference from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "accountId": obj.get("accountId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGVlcl90eXBlIGltcG9ydCBQZWVyVHlwZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBJbnRlcm5hbFJlZmVyZW5jZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBJbnRlcm5hbFJlZmVyZW5jZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogUGVlclR5cGUKICAgIGFjY291bnRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJhY2NvdW50SWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgImFjY291bnRJZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgSW50ZXJuYWxSZWZlcmVuY2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgSW50ZXJuYWxSZWZlcmVuY2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImFjY291bnRJZCI6IG9iai5nZXQoImFjY291bnRJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/internal_transfer_address.py b/fireblocks/models/internal_transfer_address.py index 5f8aa08b..77f17bc0 100644 --- a/fireblocks/models/internal_transfer_address.py +++ b/fireblocks/models/internal_transfer_address.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class InternalTransferAddress(BaseModel): - """ - InternalTransferAddress - """ # noqa: E501 - external_account_id: Optional[StrictStr] = Field(default=None, description="The provider's identifier for the external account. This enables the user to fund the account externally (outside of Fireblocks) if needed.", alias="externalAccountId") - account_id: StrictStr = Field(description="The Fireblocks account ID where the user should deposit the funds.", alias="accountId") - __properties: ClassVar[List[str]] = ["externalAccountId", "accountId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of InternalTransferAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of InternalTransferAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "externalAccountId": obj.get("externalAccountId"), - "accountId": obj.get("accountId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBJbnRlcm5hbFRyYW5zZmVyQWRkcmVzcyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBJbnRlcm5hbFRyYW5zZmVyQWRkcmVzcwogICAgIiIiICMgbm9xYTogRTUwMQogICAgZXh0ZXJuYWxfYWNjb3VudF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBwcm92aWRlcidzIGlkZW50aWZpZXIgZm9yIHRoZSBleHRlcm5hbCBhY2NvdW50LiBUaGlzIGVuYWJsZXMgdGhlIHVzZXIgdG8gZnVuZCB0aGUgYWNjb3VudCBleHRlcm5hbGx5IChvdXRzaWRlIG9mIEZpcmVibG9ja3MpIGlmIG5lZWRlZC4iLCBhbGlhcz0iZXh0ZXJuYWxBY2NvdW50SWQiKQogICAgYWNjb3VudF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBGaXJlYmxvY2tzIGFjY291bnQgSUQgd2hlcmUgdGhlIHVzZXIgc2hvdWxkIGRlcG9zaXQgdGhlIGZ1bmRzLiIsIGFsaWFzPSJhY2NvdW50SWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJleHRlcm5hbEFjY291bnRJZCIsICJhY2NvdW50SWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEludGVybmFsVHJhbnNmZXJBZGRyZXNzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEludGVybmFsVHJhbnNmZXJBZGRyZXNzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImV4dGVybmFsQWNjb3VudElkIjogb2JqLmdldCgiZXh0ZXJuYWxBY2NvdW50SWQiKSwKICAgICAgICAgICAgImFjY291bnRJZCI6IG9iai5nZXQoImFjY291bnRJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/internal_transfer_destination.py b/fireblocks/models/internal_transfer_destination.py index 5d1346cf..2b6f5a28 100644 --- a/fireblocks/models/internal_transfer_destination.py +++ b/fireblocks/models/internal_transfer_destination.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.internal_transfer_address import InternalTransferAddress -from typing import Optional, Set -from typing_extensions import Self - -class InternalTransferDestination(BaseModel): - """ - InternalTransferDestination - """ # noqa: E501 - type: StrictStr - address: Optional[InternalTransferAddress] = None - __properties: ClassVar[List[str]] = ["type", "address"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['INTERNAL_TRANSFER']): - raise ValueError("must be one of enum values ('INTERNAL_TRANSFER')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of InternalTransferDestination from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of address - if self.address: - _dict['address'] = self.address.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of InternalTransferDestination from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "address": InternalTransferAddress.from_dict(obj["address"]) if obj.get("address") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5pbnRlcm5hbF90cmFuc2Zlcl9hZGRyZXNzIGltcG9ydCBJbnRlcm5hbFRyYW5zZmVyQWRkcmVzcwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBJbnRlcm5hbFRyYW5zZmVyRGVzdGluYXRpb24oQmFzZU1vZGVsKToKICAgICIiIgogICAgSW50ZXJuYWxUcmFuc2ZlckRlc3RpbmF0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBTdHJpY3RTdHIKICAgIGFkZHJlc3M6IE9wdGlvbmFsW0ludGVybmFsVHJhbnNmZXJBZGRyZXNzXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidHlwZSIsICJhZGRyZXNzIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCd0eXBlJykKICAgIGRlZiB0eXBlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0lOVEVSTkFMX1RSQU5TRkVSJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0lOVEVSTkFMX1RSQU5TRkVSJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEludGVybmFsVHJhbnNmZXJEZXN0aW5hdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFkZHJlc3MKICAgICAgICBpZiBzZWxmLmFkZHJlc3M6CiAgICAgICAgICAgIF9kaWN0WydhZGRyZXNzJ10gPSBzZWxmLmFkZHJlc3MudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJbnRlcm5hbFRyYW5zZmVyRGVzdGluYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImFkZHJlc3MiOiBJbnRlcm5hbFRyYW5zZmVyQWRkcmVzcy5mcm9tX2RpY3Qob2JqWyJhZGRyZXNzIl0pIGlmIG9iai5nZXQoImFkZHJlc3MiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/internal_transfer_response.py b/fireblocks/models/internal_transfer_response.py index 01697361..073cd8f2 100644 --- a/fireblocks/models/internal_transfer_response.py +++ b/fireblocks/models/internal_transfer_response.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class InternalTransferResponse(BaseModel): - """ - InternalTransferResponse - """ # noqa: E501 - success: StrictBool = Field(description="Indicates whether the transfer was successful") - id: Optional[StrictStr] = Field(default=None, description="The transaction ID of the internal transfer") - __properties: ClassVar[List[str]] = ["success", "id"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of InternalTransferResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if id (nullable) is None - # and model_fields_set contains the field - if self.id is None and "id" in self.model_fields_set: - _dict['id'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of InternalTransferResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "success": obj.get("success"), - "id": obj.get("id") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBJbnRlcm5hbFRyYW5zZmVyUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgSW50ZXJuYWxUcmFuc2ZlclJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzdWNjZXNzOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IkluZGljYXRlcyB3aGV0aGVyIHRoZSB0cmFuc2ZlciB3YXMgc3VjY2Vzc2Z1bCIpCiAgICBpZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSB0cmFuc2FjdGlvbiBJRCBvZiB0aGUgaW50ZXJuYWwgdHJhbnNmZXIiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzdWNjZXNzIiwgImlkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJbnRlcm5hbFRyYW5zZmVyUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgaWQgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmlkIGlzIE5vbmUgYW5kICJpZCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnaWQnXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBJbnRlcm5hbFRyYW5zZmVyUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3VjY2VzcyI6IG9iai5nZXQoInN1Y2Nlc3MiKSwKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/invalid_paramater_value_error.py b/fireblocks/models/invalid_paramater_value_error.py index cd941db2..d93ab2a5 100644 --- a/fireblocks/models/invalid_paramater_value_error.py +++ b/fireblocks/models/invalid_paramater_value_error.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class InvalidParamaterValueError(BaseModel): - """ - InvalidParamaterValueError - """ # noqa: E501 - message: StrictStr = Field(description="Bad request error message") - code: Union[StrictFloat, StrictInt] = Field(description="Error code") - __properties: ClassVar[List[str]] = ["message", "code"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of InvalidParamaterValueError from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of InvalidParamaterValueError from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "code": obj.get("code") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBJbnZhbGlkUGFyYW1hdGVyVmFsdWVFcnJvcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBJbnZhbGlkUGFyYW1hdGVyVmFsdWVFcnJvcgogICAgIiIiICMgbm9xYTogRTUwMQogICAgbWVzc2FnZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkJhZCByZXF1ZXN0IGVycm9yIG1lc3NhZ2UiKQogICAgY29kZTogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iRXJyb3IgY29kZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm1lc3NhZ2UiLCAiY29kZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgSW52YWxpZFBhcmFtYXRlclZhbHVlRXJyb3IgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgSW52YWxpZFBhcmFtYXRlclZhbHVlRXJyb3IgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibWVzc2FnZSI6IG9iai5nZXQoIm1lc3NhZ2UiKSwKICAgICAgICAgICAgImNvZGUiOiBvYmouZ2V0KCJjb2RlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/job_created.py b/fireblocks/models/job_created.py index 9dbb741b..26d316db 100644 --- a/fireblocks/models/job_created.py +++ b/fireblocks/models/job_created.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class JobCreated(BaseModel): - """ - JobCreated - """ # noqa: E501 - job_id: Optional[StrictStr] = Field(default=None, alias="jobId") - __properties: ClassVar[List[str]] = ["jobId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of JobCreated from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of JobCreated from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "jobId": obj.get("jobId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBKb2JDcmVhdGVkKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEpvYkNyZWF0ZWQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGpvYl9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImpvYklkIikKICAgIGFwcHJvdmFsX3JlcXVlc3RfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBcHByb3ZhbCByZXF1ZXN0IElELiBSZXR1cm5lZCB3aGVuIGEgdGFnIHRyaWdnZXJzIGFuIGFwcHJvdmFsIGZsb3cuIiwgYWxpYXM9ImFwcHJvdmFsUmVxdWVzdElkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiam9iSWQiLCAiYXBwcm92YWxSZXF1ZXN0SWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIEpvYkNyZWF0ZWQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgSm9iQ3JlYXRlZCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJqb2JJZCI6IG9iai5nZXQoImpvYklkIiksCiAgICAgICAgICAgICJhcHByb3ZhbFJlcXVlc3RJZCI6IG9iai5nZXQoImFwcHJvdmFsUmVxdWVzdElkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/layer_zero_adapter_create_params.py b/fireblocks/models/layer_zero_adapter_create_params.py index 20b96c73..0d6c644f 100644 --- a/fireblocks/models/layer_zero_adapter_create_params.py +++ b/fireblocks/models/layer_zero_adapter_create_params.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class LayerZeroAdapterCreateParams(BaseModel): - """ - LayerZeroAdapterCreateParams - """ # noqa: E501 - token_link_id: StrictStr = Field(description="The token link id of the base token to deploy the adapters for", alias="tokenLinkId") - delegate_address: StrictStr = Field(description="Address that will receive `CONTRACT_ADMIN_ROLE`.", alias="delegateAddress") - default_admin_address: StrictStr = Field(description="Address that will receive `DEFAULT_ADMIN_ROLE` on the adapter contract.", alias="defaultAdminAddress") - pauser_address: StrictStr = Field(description="Address that will receive `PAUSER_ROLE`.", alias="pauserAddress") - __properties: ClassVar[List[str]] = ["tokenLinkId", "delegateAddress", "defaultAdminAddress", "pauserAddress"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LayerZeroAdapterCreateParams from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LayerZeroAdapterCreateParams from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "tokenLinkId": obj.get("tokenLinkId"), - "delegateAddress": obj.get("delegateAddress"), - "defaultAdminAddress": obj.get("defaultAdminAddress"), - "pauserAddress": obj.get("pauserAddress") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIExheWVyWmVyb0FkYXB0ZXJDcmVhdGVQYXJhbXMoQmFzZU1vZGVsKToKICAgICIiIgogICAgTGF5ZXJaZXJvQWRhcHRlckNyZWF0ZVBhcmFtcwogICAgIiIiICMgbm9xYTogRTUwMQogICAgdG9rZW5fbGlua19pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB0b2tlbiBsaW5rIGlkIG9mIHRoZSBiYXNlIHRva2VuIHRvIGRlcGxveSB0aGUgYWRhcHRlcnMgZm9yIiwgYWxpYXM9InRva2VuTGlua0lkIikKICAgIGRlbGVnYXRlX2FkZHJlc3M6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBZGRyZXNzIHRoYXQgd2lsbCByZWNlaXZlIGBDT05UUkFDVF9BRE1JTl9ST0xFYC4iLCBhbGlhcz0iZGVsZWdhdGVBZGRyZXNzIikKICAgIGRlZmF1bHRfYWRtaW5fYWRkcmVzczogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkFkZHJlc3MgdGhhdCB3aWxsIHJlY2VpdmUgYERFRkFVTFRfQURNSU5fUk9MRWAgb24gdGhlIGFkYXB0ZXIgY29udHJhY3QuIiwgYWxpYXM9ImRlZmF1bHRBZG1pbkFkZHJlc3MiKQogICAgcGF1c2VyX2FkZHJlc3M6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBZGRyZXNzIHRoYXQgd2lsbCByZWNlaXZlIGBQQVVTRVJfUk9MRWAuIiwgYWxpYXM9InBhdXNlckFkZHJlc3MiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0b2tlbkxpbmtJZCIsICJkZWxlZ2F0ZUFkZHJlc3MiLCAiZGVmYXVsdEFkbWluQWRkcmVzcyIsICJwYXVzZXJBZGRyZXNzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMYXllclplcm9BZGFwdGVyQ3JlYXRlUGFyYW1zIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExheWVyWmVyb0FkYXB0ZXJDcmVhdGVQYXJhbXMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidG9rZW5MaW5rSWQiOiBvYmouZ2V0KCJ0b2tlbkxpbmtJZCIpLAogICAgICAgICAgICAiZGVsZWdhdGVBZGRyZXNzIjogb2JqLmdldCgiZGVsZWdhdGVBZGRyZXNzIiksCiAgICAgICAgICAgICJkZWZhdWx0QWRtaW5BZGRyZXNzIjogb2JqLmdldCgiZGVmYXVsdEFkbWluQWRkcmVzcyIpLAogICAgICAgICAgICAicGF1c2VyQWRkcmVzcyI6IG9iai5nZXQoInBhdXNlckFkZHJlc3MiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/lbt_payment_info.py b/fireblocks/models/lbt_payment_info.py index 9b00d323..a1f36ff9 100644 --- a/fireblocks/models/lbt_payment_info.py +++ b/fireblocks/models/lbt_payment_info.py @@ -1,116 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class LbtPaymentInfo(BaseModel): - """ - LBT (Lebanese Bank Transfer) payment information for Lebanese bank transfers - """ # noqa: E501 - rail: StrictStr = Field(description="The payment rail type for Lebanese bank transfers") - addressing_system: StrictStr = Field(description="The addressing system used for Lebanese bank transfers (Bank Account Number)", alias="addressingSystem") - account_holder_given_name: StrictStr = Field(description="The given name (first name) of the account holder", alias="accountHolderGivenName") - account_holder_surname: StrictStr = Field(description="The surname (last name) of the account holder", alias="accountHolderSurname") - country: StrictStr = Field(description="The country for the transfer (ISO 3166-1 alpha-2 code)") - account_number: StrictStr = Field(description="The bank account number", alias="accountNumber") - bank_name: StrictStr = Field(description="The name of the bank", alias="bankName") - bank_code: StrictStr = Field(description="The bank code or identifier", alias="bankCode") - __properties: ClassVar[List[str]] = ["rail", "addressingSystem", "accountHolderGivenName", "accountHolderSurname", "country", "accountNumber", "bankName", "bankCode"] - - @field_validator('rail') - def rail_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['LBT']): - raise ValueError("must be one of enum values ('LBT')") - return value - - @field_validator('addressing_system') - def addressing_system_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['BAN']): - raise ValueError("must be one of enum values ('BAN')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LbtPaymentInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LbtPaymentInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "rail": obj.get("rail"), - "addressingSystem": obj.get("addressingSystem"), - "accountHolderGivenName": obj.get("accountHolderGivenName"), - "accountHolderSurname": obj.get("accountHolderSurname"), - "country": obj.get("country"), - "accountNumber": obj.get("accountNumber"), - "bankName": obj.get("bankName"), - "bankCode": obj.get("bankCode") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTGJ0UGF5bWVudEluZm8oQmFzZU1vZGVsKToKICAgICIiIgogICAgTEJUIChMZWJhbmVzZSBCYW5rIFRyYW5zZmVyKSBwYXltZW50IGluZm9ybWF0aW9uIGZvciBMZWJhbmVzZSBiYW5rIHRyYW5zZmVycwogICAgIiIiICMgbm9xYTogRTUwMQogICAgcmFpbDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBwYXltZW50IHJhaWwgdHlwZSBmb3IgTGViYW5lc2UgYmFuayB0cmFuc2ZlcnMiKQogICAgYWRkcmVzc2luZ19zeXN0ZW06IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYWRkcmVzc2luZyBzeXN0ZW0gdXNlZCBmb3IgTGViYW5lc2UgYmFuayB0cmFuc2ZlcnMgKEJhbmsgQWNjb3VudCBOdW1iZXIpIiwgYWxpYXM9ImFkZHJlc3NpbmdTeXN0ZW0iKQogICAgYWNjb3VudF9ob2xkZXJfZ2l2ZW5fbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBnaXZlbiBuYW1lIChmaXJzdCBuYW1lKSBvZiB0aGUgYWNjb3VudCBob2xkZXIiLCBhbGlhcz0iYWNjb3VudEhvbGRlckdpdmVuTmFtZSIpCiAgICBhY2NvdW50X2hvbGRlcl9zdXJuYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHN1cm5hbWUgKGxhc3QgbmFtZSkgb2YgdGhlIGFjY291bnQgaG9sZGVyIiwgYWxpYXM9ImFjY291bnRIb2xkZXJTdXJuYW1lIikKICAgIGNvdW50cnk6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgY291bnRyeSBmb3IgdGhlIHRyYW5zZmVyIChJU08gMzE2Ni0xIGFscGhhLTIgY29kZSkiKQogICAgYWNjb3VudF9udW1iZXI6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmFuayBhY2NvdW50IG51bWJlciIsIGFsaWFzPSJhY2NvdW50TnVtYmVyIikKICAgIGJhbmtfbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBuYW1lIG9mIHRoZSBiYW5rIiwgYWxpYXM9ImJhbmtOYW1lIikKICAgIGJhbmtfY29kZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBiYW5rIGNvZGUgb3IgaWRlbnRpZmllciIsIGFsaWFzPSJiYW5rQ29kZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInJhaWwiLCAiYWRkcmVzc2luZ1N5c3RlbSIsICJhY2NvdW50SG9sZGVyR2l2ZW5OYW1lIiwgImFjY291bnRIb2xkZXJTdXJuYW1lIiwgImNvdW50cnkiLCAiYWNjb3VudE51bWJlciIsICJiYW5rTmFtZSIsICJiYW5rQ29kZSJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigncmFpbCcpCiAgICBkZWYgcmFpbF92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydMQlQnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnTEJUJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FkZHJlc3Npbmdfc3lzdGVtJykKICAgIGRlZiBhZGRyZXNzaW5nX3N5c3RlbV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydCQU4nXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnQkFOJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExidFBheW1lbnRJbmZvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExidFBheW1lbnRJbmZvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInJhaWwiOiBvYmouZ2V0KCJyYWlsIiksCiAgICAgICAgICAgICJhZGRyZXNzaW5nU3lzdGVtIjogb2JqLmdldCgiYWRkcmVzc2luZ1N5c3RlbSIpLAogICAgICAgICAgICAiYWNjb3VudEhvbGRlckdpdmVuTmFtZSI6IG9iai5nZXQoImFjY291bnRIb2xkZXJHaXZlbk5hbWUiKSwKICAgICAgICAgICAgImFjY291bnRIb2xkZXJTdXJuYW1lIjogb2JqLmdldCgiYWNjb3VudEhvbGRlclN1cm5hbWUiKSwKICAgICAgICAgICAgImNvdW50cnkiOiBvYmouZ2V0KCJjb3VudHJ5IiksCiAgICAgICAgICAgICJhY2NvdW50TnVtYmVyIjogb2JqLmdldCgiYWNjb3VudE51bWJlciIpLAogICAgICAgICAgICAiYmFua05hbWUiOiBvYmouZ2V0KCJiYW5rTmFtZSIpLAogICAgICAgICAgICAiYmFua0NvZGUiOiBvYmouZ2V0KCJiYW5rQ29kZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/lean_abi_function.py b/fireblocks/models/lean_abi_function.py index 192ba812..2f48e416 100644 --- a/fireblocks/models/lean_abi_function.py +++ b/fireblocks/models/lean_abi_function.py @@ -1,121 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class LeanAbiFunction(BaseModel): - """ - LeanAbiFunction - """ # noqa: E501 - name: Optional[StrictStr] = Field(default=None, description="The function name") - inputs: List[ParameterWithValue] = Field(description="The function inputs") - outputs: Optional[List[ParameterWithValue]] = Field(default=None, description="The function outputs") - state_mutability: Optional[StrictStr] = Field(default=None, description="The state mutability of the function (e.g., view, pure, nonpayable, payable)", alias="stateMutability") - __properties: ClassVar[List[str]] = ["name", "inputs", "outputs", "stateMutability"] - - @field_validator('state_mutability') - def state_mutability_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['view', 'pure', 'nonpayable', 'payable']): - raise ValueError("must be one of enum values ('view', 'pure', 'nonpayable', 'payable')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LeanAbiFunction from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in inputs (list) - _items = [] - if self.inputs: - for _item_inputs in self.inputs: - if _item_inputs: - _items.append(_item_inputs.to_dict()) - _dict['inputs'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in outputs (list) - _items = [] - if self.outputs: - for _item_outputs in self.outputs: - if _item_outputs: - _items.append(_item_outputs.to_dict()) - _dict['outputs'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LeanAbiFunction from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name"), - "inputs": [ParameterWithValue.from_dict(_item) for _item in obj["inputs"]] if obj.get("inputs") is not None else None, - "outputs": [ParameterWithValue.from_dict(_item) for _item in obj["outputs"]] if obj.get("outputs") is not None else None, - "stateMutability": obj.get("stateMutability") - }) - return _obj - -from fireblocks.models.parameter_with_value import ParameterWithValue -# TODO: Rewrite to not use raise_errors -LeanAbiFunction.model_rebuild(raise_errors=False) - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIExlYW5BYmlGdW5jdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBMZWFuQWJpRnVuY3Rpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG5hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgZnVuY3Rpb24gbmFtZSIpCiAgICBpbnB1dHM6IExpc3RbUGFyYW1ldGVyV2l0aFZhbHVlXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZnVuY3Rpb24gaW5wdXRzIikKICAgIG91dHB1dHM6IE9wdGlvbmFsW0xpc3RbUGFyYW1ldGVyV2l0aFZhbHVlXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgZnVuY3Rpb24gb3V0cHV0cyIpCiAgICBzdGF0ZV9tdXRhYmlsaXR5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHN0YXRlIG11dGFiaWxpdHkgb2YgdGhlIGZ1bmN0aW9uIChlLmcuLCB2aWV3LCBwdXJlLCBub25wYXlhYmxlLCBwYXlhYmxlKSIsIGFsaWFzPSJzdGF0ZU11dGFiaWxpdHkiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJuYW1lIiwgImlucHV0cyIsICJvdXRwdXRzIiwgInN0YXRlTXV0YWJpbGl0eSJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignc3RhdGVfbXV0YWJpbGl0eScpCiAgICBkZWYgc3RhdGVfbXV0YWJpbGl0eV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsndmlldycsICdwdXJlJywgJ25vbnBheWFibGUnLCAncGF5YWJsZSddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCd2aWV3JywgJ3B1cmUnLCAnbm9ucGF5YWJsZScsICdwYXlhYmxlJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExlYW5BYmlGdW5jdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBpbnB1dHMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmlucHV0czoKICAgICAgICAgICAgZm9yIF9pdGVtX2lucHV0cyBpbiBzZWxmLmlucHV0czoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2lucHV0czoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2lucHV0cy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydpbnB1dHMnXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gb3V0cHV0cyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYub3V0cHV0czoKICAgICAgICAgICAgZm9yIF9pdGVtX291dHB1dHMgaW4gc2VsZi5vdXRwdXRzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fb3V0cHV0czoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX291dHB1dHMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnb3V0cHV0cyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWFuQWJpRnVuY3Rpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKSwKICAgICAgICAgICAgImlucHV0cyI6IFtQYXJhbWV0ZXJXaXRoVmFsdWUuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJpbnB1dHMiXV0gaWYgb2JqLmdldCgiaW5wdXRzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAib3V0cHV0cyI6IFtQYXJhbWV0ZXJXaXRoVmFsdWUuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJvdXRwdXRzIl1dIGlmIG9iai5nZXQoIm91dHB1dHMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJzdGF0ZU11dGFiaWxpdHkiOiBvYmouZ2V0KCJzdGF0ZU11dGFiaWxpdHkiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyX3dpdGhfdmFsdWUgaW1wb3J0IFBhcmFtZXRlcldpdGhWYWx1ZQojIFRPRE86IFJld3JpdGUgdG8gbm90IHVzZSByYWlzZV9lcnJvcnMKTGVhbkFiaUZ1bmN0aW9uLm1vZGVsX3JlYnVpbGQocmFpc2VfZXJyb3JzPUZhbHNlKQoK \ No newline at end of file diff --git a/fireblocks/models/lean_contract_dto.py b/fireblocks/models/lean_contract_dto.py index 6a57b38e..0d314611 100644 --- a/fireblocks/models/lean_contract_dto.py +++ b/fireblocks/models/lean_contract_dto.py @@ -1,122 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.contract_attributes import ContractAttributes -from fireblocks.models.vendor_dto import VendorDto -from typing import Optional, Set -from typing_extensions import Self - -class LeanContractDto(BaseModel): - """ - LeanContractDto - """ # noqa: E501 - id: StrictStr = Field(description="The unique identifier of the contract template") - name: StrictStr = Field(description="The name of the contract template") - description: StrictStr = Field(description="A short description of the contract template") - attributes: Optional[ContractAttributes] = Field(default=None, description="The attributes related to this contract template. It will be displayed in the tokenization page") - is_public: StrictBool = Field(description="Is this a contract that is viewable by all fireblocks's users or is it visible only for this workspace", alias="isPublic") - can_deploy: Optional[StrictBool] = Field(default=None, description="True if the workspace allowed to deploy this contract, false otherwise", alias="canDeploy") - owner: Optional[StrictStr] = Field(default=None, description="The workspace id of the owner of this contract template. If it's a private contract, only this workspace will be allowed to deploy it") - vendor: Optional[VendorDto] = Field(default=None, description="The details of the vendor of this contract template. Applicable only for public contract templates") - type: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["id", "name", "description", "attributes", "isPublic", "canDeploy", "owner", "vendor", "type"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['FUNGIBLE_TOKEN', 'NON_FUNGIBLE_TOKEN', 'NON_TOKEN', 'TOKEN_EXTENSION', 'TOKEN_UTILITY']): - raise ValueError("must be one of enum values ('FUNGIBLE_TOKEN', 'NON_FUNGIBLE_TOKEN', 'NON_TOKEN', 'TOKEN_EXTENSION', 'TOKEN_UTILITY')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LeanContractDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of attributes - if self.attributes: - _dict['attributes'] = self.attributes.to_dict() - # override the default output from pydantic by calling `to_dict()` of vendor - if self.vendor: - _dict['vendor'] = self.vendor.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LeanContractDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name"), - "description": obj.get("description"), - "attributes": ContractAttributes.from_dict(obj["attributes"]) if obj.get("attributes") is not None else None, - "isPublic": obj.get("isPublic"), - "canDeploy": obj.get("canDeploy"), - "owner": obj.get("owner"), - "vendor": VendorDto.from_dict(obj["vendor"]) if obj.get("vendor") is not None else None, - "type": obj.get("type") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfYXR0cmlidXRlcyBpbXBvcnQgQ29udHJhY3RBdHRyaWJ1dGVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmVuZG9yX2R0byBpbXBvcnQgVmVuZG9yRHRvCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIExlYW5Db250cmFjdER0byhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBMZWFuQ29udHJhY3REdG8KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb250cmFjdCB0ZW1wbGF0ZSIpCiAgICBuYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIG5hbWUgb2YgdGhlIGNvbnRyYWN0IHRlbXBsYXRlIikKICAgIGRlc2NyaXB0aW9uOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQSBzaG9ydCBkZXNjcmlwdGlvbiBvZiB0aGUgY29udHJhY3QgdGVtcGxhdGUiKQogICAgYXR0cmlidXRlczogT3B0aW9uYWxbQ29udHJhY3RBdHRyaWJ1dGVzXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBhdHRyaWJ1dGVzIHJlbGF0ZWQgdG8gdGhpcyBjb250cmFjdCB0ZW1wbGF0ZS4gSXQgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIHRva2VuaXphdGlvbiBwYWdlIikKICAgIGlzX3B1YmxpYzogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJcyB0aGlzIGEgY29udHJhY3QgdGhhdCBpcyB2aWV3YWJsZSBieSBhbGwgZmlyZWJsb2NrcydzIHVzZXJzIG9yIGlzIGl0IHZpc2libGUgb25seSBmb3IgdGhpcyB3b3Jrc3BhY2UiLCBhbGlhcz0iaXNQdWJsaWMiKQogICAgY2FuX2RlcGxveTogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUcnVlIGlmIHRoZSB3b3Jrc3BhY2UgYWxsb3dlZCB0byBkZXBsb3kgdGhpcyBjb250cmFjdCwgZmFsc2Ugb3RoZXJ3aXNlIiwgYWxpYXM9ImNhbkRlcGxveSIpCiAgICBvd25lcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSB3b3Jrc3BhY2UgaWQgb2YgdGhlIG93bmVyIG9mIHRoaXMgY29udHJhY3QgdGVtcGxhdGUuIElmIGl0J3MgYSBwcml2YXRlIGNvbnRyYWN0LCBvbmx5IHRoaXMgd29ya3NwYWNlIHdpbGwgYmUgYWxsb3dlZCB0byBkZXBsb3kgaXQiKQogICAgdmVuZG9yOiBPcHRpb25hbFtWZW5kb3JEdG9dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGRldGFpbHMgb2YgdGhlIHZlbmRvciBvZiB0aGlzIGNvbnRyYWN0IHRlbXBsYXRlLiBBcHBsaWNhYmxlIG9ubHkgZm9yIHB1YmxpYyBjb250cmFjdCB0ZW1wbGF0ZXMiKQogICAgdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAibmFtZSIsICJkZXNjcmlwdGlvbiIsICJhdHRyaWJ1dGVzIiwgImlzUHVibGljIiwgImNhbkRlcGxveSIsICJvd25lciIsICJ2ZW5kb3IiLCAidHlwZSJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigndHlwZScpCiAgICBkZWYgdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnRlVOR0lCTEVfVE9LRU4nLCAnTk9OX0ZVTkdJQkxFX1RPS0VOJywgJ05PTl9UT0tFTicsICdUT0tFTl9FWFRFTlNJT04nLCAnVE9LRU5fVVRJTElUWSddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdGVU5HSUJMRV9UT0tFTicsICdOT05fRlVOR0lCTEVfVE9LRU4nLCAnTk9OX1RPS0VOJywgJ1RPS0VOX0VYVEVOU0lPTicsICdUT0tFTl9VVElMSVRZJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExlYW5Db250cmFjdER0byBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGF0dHJpYnV0ZXMKICAgICAgICBpZiBzZWxmLmF0dHJpYnV0ZXM6CiAgICAgICAgICAgIF9kaWN0WydhdHRyaWJ1dGVzJ10gPSBzZWxmLmF0dHJpYnV0ZXMudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHZlbmRvcgogICAgICAgIGlmIHNlbGYudmVuZG9yOgogICAgICAgICAgICBfZGljdFsndmVuZG9yJ10gPSBzZWxmLnZlbmRvci50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExlYW5Db250cmFjdER0byBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBvYmouZ2V0KCJkZXNjcmlwdGlvbiIpLAogICAgICAgICAgICAiYXR0cmlidXRlcyI6IENvbnRyYWN0QXR0cmlidXRlcy5mcm9tX2RpY3Qob2JqWyJhdHRyaWJ1dGVzIl0pIGlmIG9iai5nZXQoImF0dHJpYnV0ZXMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJpc1B1YmxpYyI6IG9iai5nZXQoImlzUHVibGljIiksCiAgICAgICAgICAgICJjYW5EZXBsb3kiOiBvYmouZ2V0KCJjYW5EZXBsb3kiKSwKICAgICAgICAgICAgIm93bmVyIjogb2JqLmdldCgib3duZXIiKSwKICAgICAgICAgICAgInZlbmRvciI6IFZlbmRvckR0by5mcm9tX2RpY3Qob2JqWyJ2ZW5kb3IiXSkgaWYgb2JqLmdldCgidmVuZG9yIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/lean_deployed_contract_response_dto.py b/fireblocks/models/lean_deployed_contract_response_dto.py index ea333ca8..a3ba7547 100644 --- a/fireblocks/models/lean_deployed_contract_response_dto.py +++ b/fireblocks/models/lean_deployed_contract_response_dto.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class LeanDeployedContractResponseDto(BaseModel): - """ - LeanDeployedContractResponseDto - """ # noqa: E501 - id: StrictStr = Field(description="The deployed contract data identifier") - contract_address: StrictStr = Field(description="The contract's onchain address", alias="contractAddress") - contract_template_id: StrictStr = Field(description="The contract template identifier", alias="contractTemplateId") - blockchain_id: StrictStr = Field(alias="blockchainId") - __properties: ClassVar[List[str]] = ["id", "contractAddress", "contractTemplateId", "blockchainId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LeanDeployedContractResponseDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LeanDeployedContractResponseDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "contractAddress": obj.get("contractAddress"), - "contractTemplateId": obj.get("contractTemplateId"), - "blockchainId": obj.get("blockchainId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIExlYW5EZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8oQmFzZU1vZGVsKToKICAgICIiIgogICAgTGVhbkRlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0bwogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGVwbG95ZWQgY29udHJhY3QgZGF0YSBpZGVudGlmaWVyIikKICAgIGNvbnRyYWN0X2FkZHJlc3M6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgY29udHJhY3QncyBvbmNoYWluIGFkZHJlc3MiLCBhbGlhcz0iY29udHJhY3RBZGRyZXNzIikKICAgIGNvbnRyYWN0X3RlbXBsYXRlX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNvbnRyYWN0IHRlbXBsYXRlIGlkZW50aWZpZXIiLCBhbGlhcz0iY29udHJhY3RUZW1wbGF0ZUlkIikKICAgIGJsb2NrY2hhaW5faWQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJibG9ja2NoYWluSWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJjb250cmFjdEFkZHJlc3MiLCAiY29udHJhY3RUZW1wbGF0ZUlkIiwgImJsb2NrY2hhaW5JZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVhbkRlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0byBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWFuRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgImNvbnRyYWN0QWRkcmVzcyI6IG9iai5nZXQoImNvbnRyYWN0QWRkcmVzcyIpLAogICAgICAgICAgICAiY29udHJhY3RUZW1wbGF0ZUlkIjogb2JqLmdldCgiY29udHJhY3RUZW1wbGF0ZUlkIiksCiAgICAgICAgICAgICJibG9ja2NoYWluSWQiOiBvYmouZ2V0KCJibG9ja2NoYWluSWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/legacy_amount_aggregation_time_period_method.py b/fireblocks/models/legacy_amount_aggregation_time_period_method.py index 802a61ee..d6d2525d 100644 --- a/fireblocks/models/legacy_amount_aggregation_time_period_method.py +++ b/fireblocks/models/legacy_amount_aggregation_time_period_method.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class LegacyAmountAggregationTimePeriodMethod(str, Enum): - """ - * PER_SINGLE_MATCH - Apply the limit to each listed entity * ACROSS_ALL_MATCHES - Apply the limit to the sum of all listed entities - """ - - """ - allowed enum values - """ - PER_SINGLE_MATCH = 'PER_SINGLE_MATCH' - ACROSS_ALL_MATCHES = 'ACROSS_ALL_MATCHES' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of LegacyAmountAggregationTimePeriodMethod from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBMZWdhY3lBbW91bnRBZ2dyZWdhdGlvblRpbWVQZXJpb2RNZXRob2Qoc3RyLCBFbnVtKToKICAgICIiIgogICAgKiBQRVJfU0lOR0xFX01BVENIIC0gQXBwbHkgdGhlIGxpbWl0IHRvIGVhY2ggbGlzdGVkIGVudGl0eSAqIEFDUk9TU19BTExfTUFUQ0hFUyAtIEFwcGx5IHRoZSBsaW1pdCB0byB0aGUgc3VtIG9mIGFsbCBsaXN0ZWQgZW50aXRpZXMgCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgUEVSX1NJTkdMRV9NQVRDSCA9ICdQRVJfU0lOR0xFX01BVENIJwogICAgQUNST1NTX0FMTF9NQVRDSEVTID0gJ0FDUk9TU19BTExfTUFUQ0hFUycKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lBbW91bnRBZ2dyZWdhdGlvblRpbWVQZXJpb2RNZXRob2QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/legacy_draft_response.py b/fireblocks/models/legacy_draft_response.py index 00b48e29..97a806b4 100644 --- a/fireblocks/models/legacy_draft_response.py +++ b/fireblocks/models/legacy_draft_response.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.legacy_policy_metadata import LegacyPolicyMetadata -from fireblocks.models.legacy_policy_rule import LegacyPolicyRule -from typing import Optional, Set -from typing_extensions import Self - -class LegacyDraftResponse(BaseModel): - """ - Response object for draft operations - """ # noqa: E501 - status: StrictStr = Field(description="Operation status") - rules: List[LegacyPolicyRule] = Field(description="Draft rules") - draft_id: StrictStr = Field(description="Draft unique id", alias="draftId") - metadata: LegacyPolicyMetadata - __properties: ClassVar[List[str]] = ["status", "rules", "draftId", "metadata"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyDraftResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in rules (list) - _items = [] - if self.rules: - for _item_rules in self.rules: - if _item_rules: - _items.append(_item_rules.to_dict()) - _dict['rules'] = _items - # override the default output from pydantic by calling `to_dict()` of metadata - if self.metadata: - _dict['metadata'] = self.metadata.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyDraftResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "status": obj.get("status"), - "rules": [LegacyPolicyRule.from_dict(_item) for _item in obj["rules"]] if obj.get("rules") is not None else None, - "draftId": obj.get("draftId"), - "metadata": LegacyPolicyMetadata.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9tZXRhZGF0YSBpbXBvcnQgTGVnYWN5UG9saWN5TWV0YWRhdGEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGUgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTGVnYWN5RHJhZnRSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSZXNwb25zZSBvYmplY3QgZm9yIGRyYWZ0IG9wZXJhdGlvbnMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHN0YXR1czogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249Ik9wZXJhdGlvbiBzdGF0dXMiKQogICAgcnVsZXM6IExpc3RbTGVnYWN5UG9saWN5UnVsZV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iRHJhZnQgcnVsZXMiKQogICAgZHJhZnRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJEcmFmdCB1bmlxdWUgaWQiLCBhbGlhcz0iZHJhZnRJZCIpCiAgICBtZXRhZGF0YTogTGVnYWN5UG9saWN5TWV0YWRhdGEKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3RhdHVzIiwgInJ1bGVzIiwgImRyYWZ0SWQiLCAibWV0YWRhdGEiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeURyYWZ0UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gcnVsZXMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLnJ1bGVzOgogICAgICAgICAgICBmb3IgX2l0ZW1fcnVsZXMgaW4gc2VsZi5ydWxlczoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX3J1bGVzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fcnVsZXMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsncnVsZXMnXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBtZXRhZGF0YQogICAgICAgIGlmIHNlbGYubWV0YWRhdGE6CiAgICAgICAgICAgIF9kaWN0WydtZXRhZGF0YSddID0gc2VsZi5tZXRhZGF0YS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeURyYWZ0UmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3RhdHVzIjogb2JqLmdldCgic3RhdHVzIiksCiAgICAgICAgICAgICJydWxlcyI6IFtMZWdhY3lQb2xpY3lSdWxlLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsicnVsZXMiXV0gaWYgb2JqLmdldCgicnVsZXMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJkcmFmdElkIjogb2JqLmdldCgiZHJhZnRJZCIpLAogICAgICAgICAgICAibWV0YWRhdGEiOiBMZWdhY3lQb2xpY3lNZXRhZGF0YS5mcm9tX2RpY3Qob2JqWyJtZXRhZGF0YSJdKSBpZiBvYmouZ2V0KCJtZXRhZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/legacy_draft_review_and_validation_response.py b/fireblocks/models/legacy_draft_review_and_validation_response.py index 6228384b..7176e56d 100644 --- a/fireblocks/models/legacy_draft_review_and_validation_response.py +++ b/fireblocks/models/legacy_draft_review_and_validation_response.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.legacy_draft_response import LegacyDraftResponse -from fireblocks.models.legacy_policy_validation import LegacyPolicyValidation -from typing import Optional, Set -from typing_extensions import Self - -class LegacyDraftReviewAndValidationResponse(BaseModel): - """ - Draft validation - """ # noqa: E501 - draft_response: LegacyDraftResponse = Field(alias="draftResponse") - validation: LegacyPolicyValidation - __properties: ClassVar[List[str]] = ["draftResponse", "validation"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyDraftReviewAndValidationResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of draft_response - if self.draft_response: - _dict['draftResponse'] = self.draft_response.to_dict() - # override the default output from pydantic by calling `to_dict()` of validation - if self.validation: - _dict['validation'] = self.validation.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyDraftReviewAndValidationResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "draftResponse": LegacyDraftResponse.from_dict(obj["draftResponse"]) if obj.get("draftResponse") is not None else None, - "validation": LegacyPolicyValidation.from_dict(obj["validation"]) if obj.get("validation") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9kcmFmdF9yZXNwb25zZSBpbXBvcnQgTGVnYWN5RHJhZnRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfdmFsaWRhdGlvbiBpbXBvcnQgTGVnYWN5UG9saWN5VmFsaWRhdGlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBMZWdhY3lEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBEcmFmdCB2YWxpZGF0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkcmFmdF9yZXNwb25zZTogTGVnYWN5RHJhZnRSZXNwb25zZSA9IEZpZWxkKGFsaWFzPSJkcmFmdFJlc3BvbnNlIikKICAgIHZhbGlkYXRpb246IExlZ2FjeVBvbGljeVZhbGlkYXRpb24KICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZHJhZnRSZXNwb25zZSIsICJ2YWxpZGF0aW9uIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGRyYWZ0X3Jlc3BvbnNlCiAgICAgICAgaWYgc2VsZi5kcmFmdF9yZXNwb25zZToKICAgICAgICAgICAgX2RpY3RbJ2RyYWZ0UmVzcG9uc2UnXSA9IHNlbGYuZHJhZnRfcmVzcG9uc2UudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHZhbGlkYXRpb24KICAgICAgICBpZiBzZWxmLnZhbGlkYXRpb246CiAgICAgICAgICAgIF9kaWN0Wyd2YWxpZGF0aW9uJ10gPSBzZWxmLnZhbGlkYXRpb24udG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkcmFmdFJlc3BvbnNlIjogTGVnYWN5RHJhZnRSZXNwb25zZS5mcm9tX2RpY3Qob2JqWyJkcmFmdFJlc3BvbnNlIl0pIGlmIG9iai5nZXQoImRyYWZ0UmVzcG9uc2UiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJ2YWxpZGF0aW9uIjogTGVnYWN5UG9saWN5VmFsaWRhdGlvbi5mcm9tX2RpY3Qob2JqWyJ2YWxpZGF0aW9uIl0pIGlmIG9iai5nZXQoInZhbGlkYXRpb24iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_and_validation_response.py b/fireblocks/models/legacy_policy_and_validation_response.py index ac8f1fd9..3110c12a 100644 --- a/fireblocks/models/legacy_policy_and_validation_response.py +++ b/fireblocks/models/legacy_policy_and_validation_response.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List -from fireblocks.models.legacy_policy_response import LegacyPolicyResponse -from fireblocks.models.legacy_policy_validation import LegacyPolicyValidation -from typing import Optional, Set -from typing_extensions import Self - -class LegacyPolicyAndValidationResponse(BaseModel): - """ - Policy validation - """ # noqa: E501 - policy: LegacyPolicyResponse - validation: LegacyPolicyValidation - __properties: ClassVar[List[str]] = ["policy", "validation"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyPolicyAndValidationResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of policy - if self.policy: - _dict['policy'] = self.policy.to_dict() - # override the default output from pydantic by calling `to_dict()` of validation - if self.validation: - _dict['validation'] = self.validation.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyPolicyAndValidationResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "policy": LegacyPolicyResponse.from_dict(obj["policy"]) if obj.get("policy") is not None else None, - "validation": LegacyPolicyValidation.from_dict(obj["validation"]) if obj.get("validation") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9yZXNwb25zZSBpbXBvcnQgTGVnYWN5UG9saWN5UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3ZhbGlkYXRpb24gaW1wb3J0IExlZ2FjeVBvbGljeVZhbGlkYXRpb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTGVnYWN5UG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFBvbGljeSB2YWxpZGF0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBwb2xpY3k6IExlZ2FjeVBvbGljeVJlc3BvbnNlCiAgICB2YWxpZGF0aW9uOiBMZWdhY3lQb2xpY3lWYWxpZGF0aW9uCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInBvbGljeSIsICJ2YWxpZGF0aW9uIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBwb2xpY3kKICAgICAgICBpZiBzZWxmLnBvbGljeToKICAgICAgICAgICAgX2RpY3RbJ3BvbGljeSddID0gc2VsZi5wb2xpY3kudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHZhbGlkYXRpb24KICAgICAgICBpZiBzZWxmLnZhbGlkYXRpb246CiAgICAgICAgICAgIF9kaWN0Wyd2YWxpZGF0aW9uJ10gPSBzZWxmLnZhbGlkYXRpb24udG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicG9saWN5IjogTGVnYWN5UG9saWN5UmVzcG9uc2UuZnJvbV9kaWN0KG9ialsicG9saWN5Il0pIGlmIG9iai5nZXQoInBvbGljeSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInZhbGlkYXRpb24iOiBMZWdhY3lQb2xpY3lWYWxpZGF0aW9uLmZyb21fZGljdChvYmpbInZhbGlkYXRpb24iXSkgaWYgb2JqLmdldCgidmFsaWRhdGlvbiIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_check_result.py b/fireblocks/models/legacy_policy_check_result.py index a4f99ca9..87c6d87c 100644 --- a/fireblocks/models/legacy_policy_check_result.py +++ b/fireblocks/models/legacy_policy_check_result.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt -from typing import Any, ClassVar, Dict, List, Union -from fireblocks.models.legacy_policy_rule_check_result import LegacyPolicyRuleCheckResult -from typing import Optional, Set -from typing_extensions import Self - -class LegacyPolicyCheckResult(BaseModel): - """ - Policy rules validation result - """ # noqa: E501 - errors: Union[StrictFloat, StrictInt] = Field(description="Number of errors") - results: List[LegacyPolicyRuleCheckResult] = Field(description="A set of validation results") - __properties: ClassVar[List[str]] = ["errors", "results"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyPolicyCheckResult from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in results (list) - _items = [] - if self.results: - for _item_results in self.results: - if _item_results: - _items.append(_item_results.to_dict()) - _dict['results'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyPolicyCheckResult from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "errors": obj.get("errors"), - "results": [LegacyPolicyRuleCheckResult.from_dict(_item) for _item in obj["results"]] if obj.get("results") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfY2hlY2tfcmVzdWx0IGltcG9ydCBMZWdhY3lQb2xpY3lSdWxlQ2hlY2tSZXN1bHQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTGVnYWN5UG9saWN5Q2hlY2tSZXN1bHQoQmFzZU1vZGVsKToKICAgICIiIgogICAgUG9saWN5IHJ1bGVzIHZhbGlkYXRpb24gcmVzdWx0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBlcnJvcnM6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoZGVzY3JpcHRpb249Ik51bWJlciBvZiBlcnJvcnMiKQogICAgcmVzdWx0czogTGlzdFtMZWdhY3lQb2xpY3lSdWxlQ2hlY2tSZXN1bHRdID0gRmllbGQoZGVzY3JpcHRpb249IkEgc2V0IG9mIHZhbGlkYXRpb24gcmVzdWx0cyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImVycm9ycyIsICJyZXN1bHRzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lDaGVja1Jlc3VsdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiByZXN1bHRzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5yZXN1bHRzOgogICAgICAgICAgICBmb3IgX2l0ZW1fcmVzdWx0cyBpbiBzZWxmLnJlc3VsdHM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9yZXN1bHRzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fcmVzdWx0cy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydyZXN1bHRzJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVBvbGljeUNoZWNrUmVzdWx0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImVycm9ycyI6IG9iai5nZXQoImVycm9ycyIpLAogICAgICAgICAgICAicmVzdWx0cyI6IFtMZWdhY3lQb2xpY3lSdWxlQ2hlY2tSZXN1bHQuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJyZXN1bHRzIl1dIGlmIG9iai5nZXQoInJlc3VsdHMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_metadata.py b/fireblocks/models/legacy_policy_metadata.py index 2a27ae9d..79f7d6c9 100644 --- a/fireblocks/models/legacy_policy_metadata.py +++ b/fireblocks/models/legacy_policy_metadata.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class LegacyPolicyMetadata(BaseModel): - """ - Policy related metadata - """ # noqa: E501 - edited_by: Optional[StrictStr] = Field(default=None, description="The user id of the user who last edited the policy", alias="editedBy") - edited_at: Optional[StrictStr] = Field(default=None, description="The timestamp of the last edit of the policy", alias="editedAt") - published_by: Optional[StrictStr] = Field(default=None, description="The user id of the user who last published the policy", alias="publishedBy") - published_at: Optional[StrictStr] = Field(default=None, description="The timestamp of the last publish of the policy", alias="publishedAt") - __properties: ClassVar[List[str]] = ["editedBy", "editedAt", "publishedBy", "publishedAt"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyPolicyMetadata from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyPolicyMetadata from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "editedBy": obj.get("editedBy"), - "editedAt": obj.get("editedAt"), - "publishedBy": obj.get("publishedBy"), - "publishedAt": obj.get("publishedAt") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBMZWdhY3lQb2xpY3lNZXRhZGF0YShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBQb2xpY3kgcmVsYXRlZCBtZXRhZGF0YQogICAgIiIiICMgbm9xYTogRTUwMQogICAgZWRpdGVkX2J5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHVzZXIgaWQgb2YgdGhlIHVzZXIgd2hvIGxhc3QgZWRpdGVkIHRoZSBwb2xpY3kiLCBhbGlhcz0iZWRpdGVkQnkiKQogICAgZWRpdGVkX2F0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHRpbWVzdGFtcCBvZiB0aGUgbGFzdCBlZGl0IG9mIHRoZSBwb2xpY3kiLCBhbGlhcz0iZWRpdGVkQXQiKQogICAgcHVibGlzaGVkX2J5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHVzZXIgaWQgb2YgdGhlIHVzZXIgd2hvIGxhc3QgcHVibGlzaGVkIHRoZSBwb2xpY3kiLCBhbGlhcz0icHVibGlzaGVkQnkiKQogICAgcHVibGlzaGVkX2F0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHRpbWVzdGFtcCBvZiB0aGUgbGFzdCBwdWJsaXNoIG9mIHRoZSBwb2xpY3kiLCBhbGlhcz0icHVibGlzaGVkQXQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJlZGl0ZWRCeSIsICJlZGl0ZWRBdCIsICJwdWJsaXNoZWRCeSIsICJwdWJsaXNoZWRBdCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5TWV0YWRhdGEgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5TWV0YWRhdGEgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZWRpdGVkQnkiOiBvYmouZ2V0KCJlZGl0ZWRCeSIpLAogICAgICAgICAgICAiZWRpdGVkQXQiOiBvYmouZ2V0KCJlZGl0ZWRBdCIpLAogICAgICAgICAgICAicHVibGlzaGVkQnkiOiBvYmouZ2V0KCJwdWJsaXNoZWRCeSIpLAogICAgICAgICAgICAicHVibGlzaGVkQXQiOiBvYmouZ2V0KCJwdWJsaXNoZWRBdCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_response.py b/fireblocks/models/legacy_policy_response.py index 973994df..01fa8670 100644 --- a/fireblocks/models/legacy_policy_response.py +++ b/fireblocks/models/legacy_policy_response.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.legacy_policy_metadata import LegacyPolicyMetadata -from fireblocks.models.legacy_policy_rule import LegacyPolicyRule -from typing import Optional, Set -from typing_extensions import Self - -class LegacyPolicyResponse(BaseModel): - """ - Response object for policy operations - """ # noqa: E501 - rules: List[LegacyPolicyRule] = Field(description="A set of policy rules") - metadata: LegacyPolicyMetadata - __properties: ClassVar[List[str]] = ["rules", "metadata"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyPolicyResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in rules (list) - _items = [] - if self.rules: - for _item_rules in self.rules: - if _item_rules: - _items.append(_item_rules.to_dict()) - _dict['rules'] = _items - # override the default output from pydantic by calling `to_dict()` of metadata - if self.metadata: - _dict['metadata'] = self.metadata.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyPolicyResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "rules": [LegacyPolicyRule.from_dict(_item) for _item in obj["rules"]] if obj.get("rules") is not None else None, - "metadata": LegacyPolicyMetadata.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfbWV0YWRhdGEgaW1wb3J0IExlZ2FjeVBvbGljeU1ldGFkYXRhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlIGltcG9ydCBMZWdhY3lQb2xpY3lSdWxlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIExlZ2FjeVBvbGljeVJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFJlc3BvbnNlIG9iamVjdCBmb3IgcG9saWN5IG9wZXJhdGlvbnMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHJ1bGVzOiBMaXN0W0xlZ2FjeVBvbGljeVJ1bGVdID0gRmllbGQoZGVzY3JpcHRpb249IkEgc2V0IG9mIHBvbGljeSBydWxlcyIpCiAgICBtZXRhZGF0YTogTGVnYWN5UG9saWN5TWV0YWRhdGEKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicnVsZXMiLCAibWV0YWRhdGEiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVBvbGljeVJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIHJ1bGVzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5ydWxlczoKICAgICAgICAgICAgZm9yIF9pdGVtX3J1bGVzIGluIHNlbGYucnVsZXM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9ydWxlczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX3J1bGVzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ3J1bGVzJ10gPSBfaXRlbXMKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgbWV0YWRhdGEKICAgICAgICBpZiBzZWxmLm1ldGFkYXRhOgogICAgICAgICAgICBfZGljdFsnbWV0YWRhdGEnXSA9IHNlbGYubWV0YWRhdGEudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJydWxlcyI6IFtMZWdhY3lQb2xpY3lSdWxlLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsicnVsZXMiXV0gaWYgb2JqLmdldCgicnVsZXMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJtZXRhZGF0YSI6IExlZ2FjeVBvbGljeU1ldGFkYXRhLmZyb21fZGljdChvYmpbIm1ldGFkYXRhIl0pIGlmIG9iai5nZXQoIm1ldGFkYXRhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_rule.py b/fireblocks/models/legacy_policy_rule.py index b882572f..98dca05f 100644 --- a/fireblocks/models/legacy_policy_rule.py +++ b/fireblocks/models/legacy_policy_rule.py @@ -1,226 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.legacy_policy_rule_amount import LegacyPolicyRuleAmount -from fireblocks.models.legacy_policy_rule_amount_aggregation import LegacyPolicyRuleAmountAggregation -from fireblocks.models.legacy_policy_rule_authorization_groups import LegacyPolicyRuleAuthorizationGroups -from fireblocks.models.legacy_policy_rule_designated_signers import LegacyPolicyRuleDesignatedSigners -from fireblocks.models.legacy_policy_rule_dst import LegacyPolicyRuleDst -from fireblocks.models.legacy_policy_rule_operators import LegacyPolicyRuleOperators -from fireblocks.models.legacy_policy_rule_raw_message_signing import LegacyPolicyRuleRawMessageSigning -from fireblocks.models.legacy_policy_rule_src import LegacyPolicyRuleSrc -from fireblocks.models.legacy_policy_src_or_dest_sub_type import LegacyPolicySrcOrDestSubType -from fireblocks.models.legacy_policy_src_or_dest_type import LegacyPolicySrcOrDestType -from typing import Optional, Set -from typing_extensions import Self - -class LegacyPolicyRule(BaseModel): - """ - Policy rule which is enforced on transactions - """ # noqa: E501 - operator: Optional[StrictStr] = Field(default=None, description="(deprecated - replaced by \"operators\") | Defines users who can initiate the type of transaction to which the rule applies. options are * \"*\" - All users are allowed * Specific User id") - operators: Optional[LegacyPolicyRuleOperators] = None - transaction_type: Optional[StrictStr] = Field(default=None, description="Defines the type of transaction to which the rule applies. * TRANSFER - Default. Transfers funds from one account to another * CONTRACT_CALL - Calls a smart contract, mainly for DeFi operations. * APPROVE - Allows a smart contract to withdraw from a designated wallet. * MINT - Perform a mint operation (increase supply) on a supported token * BURN - Perform a burn operation (reduce supply) on a supported token * SUPPLY - Use for DeFi to lend assets * REDEEM - Use for DeFi to get lending back * STAKE - Allows you to allocate and lock certain assets for earning staking rewards. * RAW - An off-chain message with no predefined format, use it to sign any message with your private key. * TYPED_MESSAGE - An off-chain message type that follows a predefined format, used to sign specific messages that are not actual transactions. * PROGRAM_CALL - In Solana refers to invoking on-chain programs (smart contracts) to execute transactions and interact with the blockchain. ", alias="transactionType") - designated_signer: Optional[StrictStr] = Field(default=None, description="(deprecated - replaced by \"designatedSigners\") Id representing the user who signs transactions that match a specific rule", alias="designatedSigner") - designated_signers: Optional[LegacyPolicyRuleDesignatedSigners] = Field(default=None, alias="designatedSigners") - type: StrictStr = Field(description="Policy rule type") - action: StrictStr = Field(description="Defines what occurs when a transaction meets the rule's criteria * ALLOW - The transaction goes through and can be signed without requiring additional approvals * BLOCK - The transaction is automatically blocked * 2-TIER - Only these users or user groups can approve If any of them reject the transaction before the required approval threshold is met, the transaction doesn't go through The list of entities are set is \"authorizationGroups\" field ") - asset: StrictStr = Field(description="Defines the type of asset being transacted, options are * \"*\" - All assets * Specific asset ") - src_type: Optional[LegacyPolicySrcOrDestType] = Field(default=None, description="(deprecated - replaced by \"src\") source account type", alias="srcType") - src_sub_type: Optional[LegacyPolicySrcOrDestSubType] = Field(default=None, description="(deprecated - replaced by \"src\") source sub account type", alias="srcSubType") - src_id: Optional[StrictStr] = Field(default=None, description="(deprecated - replaced by \"src\") source account id", alias="srcId") - src: Optional[LegacyPolicyRuleSrc] = None - dst_type: Optional[LegacyPolicySrcOrDestType] = Field(default=None, description="(deprecated - replaced by \"dst\") destination account type", alias="dstType") - dst_sub_type: Optional[LegacyPolicySrcOrDestSubType] = Field(default=None, description="(deprecated - replaced by \"dst\") destination sub account type", alias="dstSubType") - dst_id: Optional[StrictStr] = Field(default=None, description="(deprecated - replaced by \"dst\") destination account id", alias="dstId") - dst: Optional[LegacyPolicyRuleDst] = None - dst_address_type: Optional[StrictStr] = Field(default=None, description="Defines whether the destination to which you are sending funds must be whitelisted, to allow one-time transfers to non-whitelisted external addresses, or both. By default, you can only transfer to an external address after it’s whitelisted. * WHITELISTED - Can only be sent to whitelisted addresses. * ONE_TIME - Can only be sent to non-whitelisted external addresses. * \"*\" - can be sent to whitelisted addresses or non-whitelisted external ", alias="dstAddressType") - amount_currency: StrictStr = Field(description="* USD - Limits the amount of any asset users can transfer based on the USD equivalent of the asset. * EUR - Limits the amount of any asset users can transfer based on the EURO equivalent of the asset. * NATIVE - Limits the amount of an asset a user can transfer when using a specific asset. ", alias="amountCurrency") - amount_scope: StrictStr = Field(description="* SINGLE_TX - limit applies to a single transaction * TIMEFRAME - limit applies to all transactions within the defined time period ", alias="amountScope") - amount: LegacyPolicyRuleAmount - period_sec: Union[StrictFloat, StrictInt] = Field(description="Time period in seconds applied by the amountScope field to accumulate transferred amounts in transactions that match the rule, until the total exceeds the value you specify under Minimum. When the specified amount is reached within that period, whether by one or many transactions, further transactions in that period either fail or require more approvals. ", alias="periodSec") - authorizers: Optional[List[StrictStr]] = Field(default=None, description="(deprecated - replaced by \"authorizationGroups\") Allowed entities which can approves a transaction") - authorizers_count: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="(deprecated - replaced by \"authorizationGroups\") Min amount of entities which are needed to approve a transaction", alias="authorizersCount") - authorization_groups: Optional[LegacyPolicyRuleAuthorizationGroups] = Field(default=None, alias="authorizationGroups") - amount_aggregation: Optional[LegacyPolicyRuleAmountAggregation] = Field(default=None, alias="amountAggregation") - raw_message_signing: Optional[LegacyPolicyRuleRawMessageSigning] = Field(default=None, alias="rawMessageSigning") - apply_for_approve: Optional[StrictBool] = Field(default=None, description="Applying this rule over APPROVE type transactions (can only be enabled when rule's transaction type is TRANSFER)", alias="applyForApprove") - apply_for_typed_message: Optional[StrictBool] = Field(default=None, description="Applying this rule over TYPED_MESSAGE type transactions (can only be enabled when rule's transaction type is CONTRACT_CALL)", alias="applyForTypedMessage") - external_descriptor: Optional[StrictStr] = Field(default=None, description="A unique id identifying the rule", alias="externalDescriptor") - __properties: ClassVar[List[str]] = ["operator", "operators", "transactionType", "designatedSigner", "designatedSigners", "type", "action", "asset", "srcType", "srcSubType", "srcId", "src", "dstType", "dstSubType", "dstId", "dst", "dstAddressType", "amountCurrency", "amountScope", "amount", "periodSec", "authorizers", "authorizersCount", "authorizationGroups", "amountAggregation", "rawMessageSigning", "applyForApprove", "applyForTypedMessage", "externalDescriptor"] - - @field_validator('transaction_type') - def transaction_type_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['TRANSFER', 'CONTRACT_CALL', 'APPROVE', 'MINT', 'BURN', 'SUPPLY', 'REDEEM', 'STAKE', 'RAW', 'TYPED_MESSAGE', 'PROGRAM_CALL']): - raise ValueError("must be one of enum values ('TRANSFER', 'CONTRACT_CALL', 'APPROVE', 'MINT', 'BURN', 'SUPPLY', 'REDEEM', 'STAKE', 'RAW', 'TYPED_MESSAGE', 'PROGRAM_CALL')") - return value - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['TRANSFER']): - raise ValueError("must be one of enum values ('TRANSFER')") - return value - - @field_validator('action') - def action_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['ALLOW', 'BLOCK', '2-TIER']): - raise ValueError("must be one of enum values ('ALLOW', 'BLOCK', '2-TIER')") - return value - - @field_validator('dst_address_type') - def dst_address_type_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['WHITELISTED', 'ONE_TIME', '*']): - raise ValueError("must be one of enum values ('WHITELISTED', 'ONE_TIME', '*')") - return value - - @field_validator('amount_currency') - def amount_currency_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['USD', 'EUR', 'NATIVE']): - raise ValueError("must be one of enum values ('USD', 'EUR', 'NATIVE')") - return value - - @field_validator('amount_scope') - def amount_scope_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['SINGLE_TX', 'TIMEFRAME']): - raise ValueError("must be one of enum values ('SINGLE_TX', 'TIMEFRAME')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyPolicyRule from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of operators - if self.operators: - _dict['operators'] = self.operators.to_dict() - # override the default output from pydantic by calling `to_dict()` of designated_signers - if self.designated_signers: - _dict['designatedSigners'] = self.designated_signers.to_dict() - # override the default output from pydantic by calling `to_dict()` of src - if self.src: - _dict['src'] = self.src.to_dict() - # override the default output from pydantic by calling `to_dict()` of dst - if self.dst: - _dict['dst'] = self.dst.to_dict() - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - # override the default output from pydantic by calling `to_dict()` of authorization_groups - if self.authorization_groups: - _dict['authorizationGroups'] = self.authorization_groups.to_dict() - # override the default output from pydantic by calling `to_dict()` of amount_aggregation - if self.amount_aggregation: - _dict['amountAggregation'] = self.amount_aggregation.to_dict() - # override the default output from pydantic by calling `to_dict()` of raw_message_signing - if self.raw_message_signing: - _dict['rawMessageSigning'] = self.raw_message_signing.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyPolicyRule from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "operator": obj.get("operator"), - "operators": LegacyPolicyRuleOperators.from_dict(obj["operators"]) if obj.get("operators") is not None else None, - "transactionType": obj.get("transactionType"), - "designatedSigner": obj.get("designatedSigner"), - "designatedSigners": LegacyPolicyRuleDesignatedSigners.from_dict(obj["designatedSigners"]) if obj.get("designatedSigners") is not None else None, - "type": obj.get("type"), - "action": obj.get("action"), - "asset": obj.get("asset"), - "srcType": obj.get("srcType"), - "srcSubType": obj.get("srcSubType"), - "srcId": obj.get("srcId"), - "src": LegacyPolicyRuleSrc.from_dict(obj["src"]) if obj.get("src") is not None else None, - "dstType": obj.get("dstType"), - "dstSubType": obj.get("dstSubType"), - "dstId": obj.get("dstId"), - "dst": LegacyPolicyRuleDst.from_dict(obj["dst"]) if obj.get("dst") is not None else None, - "dstAddressType": obj.get("dstAddressType"), - "amountCurrency": obj.get("amountCurrency"), - "amountScope": obj.get("amountScope"), - "amount": LegacyPolicyRuleAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "periodSec": obj.get("periodSec"), - "authorizers": obj.get("authorizers"), - "authorizersCount": obj.get("authorizersCount"), - "authorizationGroups": LegacyPolicyRuleAuthorizationGroups.from_dict(obj["authorizationGroups"]) if obj.get("authorizationGroups") is not None else None, - "amountAggregation": LegacyPolicyRuleAmountAggregation.from_dict(obj["amountAggregation"]) if obj.get("amountAggregation") is not None else None, - "rawMessageSigning": LegacyPolicyRuleRawMessageSigning.from_dict(obj["rawMessageSigning"]) if obj.get("rawMessageSigning") is not None else None, - "applyForApprove": obj.get("applyForApprove"), - "applyForTypedMessage": obj.get("applyForTypedMessage"), - "externalDescriptor": obj.get("externalDescriptor") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hbW91bnQgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVBbW91bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfYW1vdW50X2FnZ3JlZ2F0aW9uIGltcG9ydCBMZWdhY3lQb2xpY3lSdWxlQW1vdW50QWdncmVnYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfYXV0aG9yaXphdGlvbl9ncm91cHMgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVBdXRob3JpemF0aW9uR3JvdXBzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2Rlc2lnbmF0ZWRfc2lnbmVycyBpbXBvcnQgTGVnYWN5UG9saWN5UnVsZURlc2lnbmF0ZWRTaWduZXJzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2RzdCBpbXBvcnQgTGVnYWN5UG9saWN5UnVsZURzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9vcGVyYXRvcnMgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVPcGVyYXRvcnMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfcmF3X21lc3NhZ2Vfc2lnbmluZyBpbXBvcnQgTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX3NyYyBpbXBvcnQgTGVnYWN5UG9saWN5UnVsZVNyYwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfc3JjX29yX2Rlc3Rfc3ViX3R5cGUgaW1wb3J0IExlZ2FjeVBvbGljeVNyY09yRGVzdFN1YlR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3NyY19vcl9kZXN0X3R5cGUgaW1wb3J0IExlZ2FjeVBvbGljeVNyY09yRGVzdFR5cGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTGVnYWN5UG9saWN5UnVsZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBQb2xpY3kgcnVsZSB3aGljaCBpcyBlbmZvcmNlZCBvbiB0cmFuc2FjdGlvbnMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG9wZXJhdG9yOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iKGRlcHJlY2F0ZWQgLSByZXBsYWNlZCBieSBcIm9wZXJhdG9yc1wiKSAgfCBEZWZpbmVzIHVzZXJzIHdobyBjYW4gaW5pdGlhdGUgdGhlIHR5cGUgb2YgdHJhbnNhY3Rpb24gdG8gd2hpY2ggdGhlIHJ1bGUgYXBwbGllcy4gb3B0aW9ucyBhcmUgKiBcIipcIiAtIEFsbCB1c2VycyBhcmUgYWxsb3dlZCAqIFNwZWNpZmljIFVzZXIgaWQiKQogICAgb3BlcmF0b3JzOiBPcHRpb25hbFtMZWdhY3lQb2xpY3lSdWxlT3BlcmF0b3JzXSA9IE5vbmUKICAgIHRyYW5zYWN0aW9uX3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZWZpbmVzIHRoZSB0eXBlIG9mIHRyYW5zYWN0aW9uIHRvIHdoaWNoIHRoZSBydWxlIGFwcGxpZXMuICAgKiBUUkFOU0ZFUiAtIERlZmF1bHQuIFRyYW5zZmVycyBmdW5kcyBmcm9tIG9uZSBhY2NvdW50IHRvIGFub3RoZXIgICAqIENPTlRSQUNUX0NBTEwgLSBDYWxscyBhIHNtYXJ0IGNvbnRyYWN0LCBtYWlubHkgZm9yIERlRmkgb3BlcmF0aW9ucy4gICAqIEFQUFJPVkUgLSBBbGxvd3MgYSBzbWFydCBjb250cmFjdCB0byB3aXRoZHJhdyBmcm9tIGEgZGVzaWduYXRlZCB3YWxsZXQuICAgKiBNSU5UIC0gUGVyZm9ybSBhIG1pbnQgb3BlcmF0aW9uIChpbmNyZWFzZSBzdXBwbHkpIG9uIGEgc3VwcG9ydGVkIHRva2VuICAgKiBCVVJOIC0gUGVyZm9ybSBhIGJ1cm4gb3BlcmF0aW9uIChyZWR1Y2Ugc3VwcGx5KSBvbiBhIHN1cHBvcnRlZCB0b2tlbiAgICogU1VQUExZIC0gVXNlIGZvciBEZUZpIHRvIGxlbmQgYXNzZXRzICAgKiBSRURFRU0gLSBVc2UgZm9yIERlRmkgdG8gZ2V0IGxlbmRpbmcgYmFjayAgICogU1RBS0UgLSBBbGxvd3MgeW91IHRvIGFsbG9jYXRlIGFuZCBsb2NrIGNlcnRhaW4gYXNzZXRzIGZvciBlYXJuaW5nIHN0YWtpbmcgcmV3YXJkcy4gICAqIFJBVyAtIEFuIG9mZi1jaGFpbiBtZXNzYWdlIHdpdGggbm8gcHJlZGVmaW5lZCBmb3JtYXQsIHVzZSBpdCB0byBzaWduIGFueSBtZXNzYWdlIHdpdGggeW91ciBwcml2YXRlIGtleS4gICAqIFRZUEVEX01FU1NBR0UgLSBBbiBvZmYtY2hhaW4gbWVzc2FnZSB0eXBlIHRoYXQgZm9sbG93cyBhIHByZWRlZmluZWQgZm9ybWF0LCB1c2VkIHRvIHNpZ24gc3BlY2lmaWMgbWVzc2FnZXMgdGhhdCBhcmUgbm90IGFjdHVhbCB0cmFuc2FjdGlvbnMuICAgKiBQUk9HUkFNX0NBTEwgLSBJbiBTb2xhbmEgcmVmZXJzIHRvIGludm9raW5nIG9uLWNoYWluIHByb2dyYW1zIChzbWFydCBjb250cmFjdHMpIHRvIGV4ZWN1dGUgdHJhbnNhY3Rpb25zIGFuZCBpbnRlcmFjdCB3aXRoIHRoZSBibG9ja2NoYWluLiAiLCBhbGlhcz0idHJhbnNhY3Rpb25UeXBlIikKICAgIGRlc2lnbmF0ZWRfc2lnbmVyOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iKGRlcHJlY2F0ZWQgLSByZXBsYWNlZCBieSBcImRlc2lnbmF0ZWRTaWduZXJzXCIpIElkIHJlcHJlc2VudGluZyB0aGUgdXNlciB3aG8gc2lnbnMgdHJhbnNhY3Rpb25zIHRoYXQgbWF0Y2ggYSBzcGVjaWZpYyBydWxlIiwgYWxpYXM9ImRlc2lnbmF0ZWRTaWduZXIiKQogICAgZGVzaWduYXRlZF9zaWduZXJzOiBPcHRpb25hbFtMZWdhY3lQb2xpY3lSdWxlRGVzaWduYXRlZFNpZ25lcnNdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZGVzaWduYXRlZFNpZ25lcnMiKQogICAgdHlwZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlBvbGljeSBydWxlIHR5cGUiKQogICAgYWN0aW9uOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iRGVmaW5lcyB3aGF0IG9jY3VycyB3aGVuIGEgdHJhbnNhY3Rpb24gbWVldHMgdGhlIHJ1bGUncyBjcml0ZXJpYSAqIEFMTE9XIC0gVGhlIHRyYW5zYWN0aW9uIGdvZXMgdGhyb3VnaCBhbmQgY2FuIGJlIHNpZ25lZCB3aXRob3V0IHJlcXVpcmluZyBhZGRpdGlvbmFsIGFwcHJvdmFscyAqIEJMT0NLIC0gVGhlIHRyYW5zYWN0aW9uIGlzIGF1dG9tYXRpY2FsbHkgYmxvY2tlZCAqIDItVElFUiAtIE9ubHkgdGhlc2UgdXNlcnMgb3IgdXNlciBncm91cHMgY2FuIGFwcHJvdmUgICAgICAgICAgICAgSWYgYW55IG9mIHRoZW0gcmVqZWN0IHRoZSB0cmFuc2FjdGlvbiBiZWZvcmUgdGhlIHJlcXVpcmVkIGFwcHJvdmFsIHRocmVzaG9sZCBpcyBtZXQsIHRoZSB0cmFuc2FjdGlvbiBkb2Vzbid0IGdvIHRocm91Z2ggICAgICAgICAgICBUaGUgbGlzdCBvZiBlbnRpdGllcyBhcmUgc2V0IGlzIFwiYXV0aG9yaXphdGlvbkdyb3Vwc1wiIGZpZWxkICIpCiAgICBhc3NldDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkRlZmluZXMgdGhlIHR5cGUgb2YgYXNzZXQgYmVpbmcgdHJhbnNhY3RlZCwgb3B0aW9ucyBhcmUgKiBcIipcIiAtIEFsbCBhc3NldHMgKiBTcGVjaWZpYyBhc3NldCAiKQogICAgc3JjX3R5cGU6IE9wdGlvbmFsW0xlZ2FjeVBvbGljeVNyY09yRGVzdFR5cGVdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iKGRlcHJlY2F0ZWQgLSByZXBsYWNlZCBieSBcInNyY1wiKSBzb3VyY2UgYWNjb3VudCB0eXBlIiwgYWxpYXM9InNyY1R5cGUiKQogICAgc3JjX3N1Yl90eXBlOiBPcHRpb25hbFtMZWdhY3lQb2xpY3lTcmNPckRlc3RTdWJUeXBlXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IihkZXByZWNhdGVkIC0gcmVwbGFjZWQgYnkgXCJzcmNcIikgc291cmNlIHN1YiBhY2NvdW50IHR5cGUiLCBhbGlhcz0ic3JjU3ViVHlwZSIpCiAgICBzcmNfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSIoZGVwcmVjYXRlZCAtIHJlcGxhY2VkIGJ5IFwic3JjXCIpIHNvdXJjZSBhY2NvdW50IGlkIiwgYWxpYXM9InNyY0lkIikKICAgIHNyYzogT3B0aW9uYWxbTGVnYWN5UG9saWN5UnVsZVNyY10gPSBOb25lCiAgICBkc3RfdHlwZTogT3B0aW9uYWxbTGVnYWN5UG9saWN5U3JjT3JEZXN0VHlwZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSIoZGVwcmVjYXRlZCAtIHJlcGxhY2VkIGJ5IFwiZHN0XCIpIGRlc3RpbmF0aW9uIGFjY291bnQgdHlwZSIsIGFsaWFzPSJkc3RUeXBlIikKICAgIGRzdF9zdWJfdHlwZTogT3B0aW9uYWxbTGVnYWN5UG9saWN5U3JjT3JEZXN0U3ViVHlwZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSIoZGVwcmVjYXRlZCAtIHJlcGxhY2VkIGJ5IFwiZHN0XCIpIGRlc3RpbmF0aW9uIHN1YiBhY2NvdW50IHR5cGUiLCBhbGlhcz0iZHN0U3ViVHlwZSIpCiAgICBkc3RfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSIoZGVwcmVjYXRlZCAtIHJlcGxhY2VkIGJ5IFwiZHN0XCIpIGRlc3RpbmF0aW9uIGFjY291bnQgaWQiLCBhbGlhcz0iZHN0SWQiKQogICAgZHN0OiBPcHRpb25hbFtMZWdhY3lQb2xpY3lSdWxlRHN0XSA9IE5vbmUKICAgIGRzdF9hZGRyZXNzX3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZWZpbmVzIHdoZXRoZXIgdGhlIGRlc3RpbmF0aW9uIHRvIHdoaWNoIHlvdSBhcmUgc2VuZGluZyBmdW5kcyBtdXN0IGJlIHdoaXRlbGlzdGVkLCB0byBhbGxvdyBvbmUtdGltZSB0cmFuc2ZlcnMgdG8gbm9uLXdoaXRlbGlzdGVkIGV4dGVybmFsIGFkZHJlc3Nlcywgb3IgYm90aC4gQnkgZGVmYXVsdCwgeW91IGNhbiBvbmx5IHRyYW5zZmVyIHRvIGFuIGV4dGVybmFsIGFkZHJlc3MgYWZ0ZXIgaXTigJlzIHdoaXRlbGlzdGVkLiAgICogV0hJVEVMSVNURUQgLSBDYW4gb25seSBiZSBzZW50IHRvIHdoaXRlbGlzdGVkIGFkZHJlc3Nlcy4gICAqIE9ORV9USU1FIC0gQ2FuIG9ubHkgYmUgc2VudCB0byBub24td2hpdGVsaXN0ZWQgZXh0ZXJuYWwgYWRkcmVzc2VzLiAgICogXCIqXCIgLSBjYW4gYmUgc2VudCB0byB3aGl0ZWxpc3RlZCBhZGRyZXNzZXMgb3Igbm9uLXdoaXRlbGlzdGVkIGV4dGVybmFsICIsIGFsaWFzPSJkc3RBZGRyZXNzVHlwZSIpCiAgICBhbW91bnRfY3VycmVuY3k6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSIqIFVTRCAtIExpbWl0cyB0aGUgYW1vdW50IG9mIGFueSBhc3NldCB1c2VycyBjYW4gdHJhbnNmZXIgYmFzZWQgb24gdGhlIFVTRCBlcXVpdmFsZW50IG9mIHRoZSBhc3NldC4gKiBFVVIgLSBMaW1pdHMgdGhlIGFtb3VudCBvZiBhbnkgYXNzZXQgdXNlcnMgY2FuIHRyYW5zZmVyIGJhc2VkIG9uIHRoZSBFVVJPIGVxdWl2YWxlbnQgb2YgdGhlIGFzc2V0LiAqIE5BVElWRSAtIExpbWl0cyB0aGUgYW1vdW50IG9mIGFuIGFzc2V0IGEgdXNlciBjYW4gdHJhbnNmZXIgd2hlbiB1c2luZyBhIHNwZWNpZmljIGFzc2V0LiAiLCBhbGlhcz0iYW1vdW50Q3VycmVuY3kiKQogICAgYW1vdW50X3Njb3BlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iKiBTSU5HTEVfVFggLSBsaW1pdCBhcHBsaWVzIHRvIGEgc2luZ2xlIHRyYW5zYWN0aW9uICogVElNRUZSQU1FIC0gbGltaXQgYXBwbGllcyB0byBhbGwgdHJhbnNhY3Rpb25zIHdpdGhpbiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZCAiLCBhbGlhcz0iYW1vdW50U2NvcGUiKQogICAgYW1vdW50OiBMZWdhY3lQb2xpY3lSdWxlQW1vdW50CiAgICBwZXJpb2Rfc2VjOiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaW1lIHBlcmlvZCBpbiBzZWNvbmRzIGFwcGxpZWQgYnkgdGhlIGFtb3VudFNjb3BlIGZpZWxkIHRvIGFjY3VtdWxhdGUgdHJhbnNmZXJyZWQgYW1vdW50cyBpbiB0cmFuc2FjdGlvbnMgdGhhdCBtYXRjaCB0aGUgcnVsZSwgdW50aWwgdGhlIHRvdGFsIGV4Y2VlZHMgdGhlIHZhbHVlIHlvdSBzcGVjaWZ5IHVuZGVyIE1pbmltdW0uIFdoZW4gdGhlIHNwZWNpZmllZCBhbW91bnQgaXMgcmVhY2hlZCB3aXRoaW4gdGhhdCBwZXJpb2QsIHdoZXRoZXIgYnkgb25lIG9yIG1hbnkgdHJhbnNhY3Rpb25zLCBmdXJ0aGVyIHRyYW5zYWN0aW9ucyBpbiB0aGF0IHBlcmlvZCBlaXRoZXIgZmFpbCBvciByZXF1aXJlIG1vcmUgYXBwcm92YWxzLiAiLCBhbGlhcz0icGVyaW9kU2VjIikKICAgIGF1dGhvcml6ZXJzOiBPcHRpb25hbFtMaXN0W1N0cmljdFN0cl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iKGRlcHJlY2F0ZWQgLSByZXBsYWNlZCBieSBcImF1dGhvcml6YXRpb25Hcm91cHNcIikgQWxsb3dlZCBlbnRpdGllcyB3aGljaCBjYW4gYXBwcm92ZXMgYSB0cmFuc2FjdGlvbiIpCiAgICBhdXRob3JpemVyc19jb3VudDogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iKGRlcHJlY2F0ZWQgLSByZXBsYWNlZCBieSBcImF1dGhvcml6YXRpb25Hcm91cHNcIikgTWluIGFtb3VudCBvZiBlbnRpdGllcyB3aGljaCBhcmUgbmVlZGVkIHRvIGFwcHJvdmUgYSB0cmFuc2FjdGlvbiIsIGFsaWFzPSJhdXRob3JpemVyc0NvdW50IikKICAgIGF1dGhvcml6YXRpb25fZ3JvdXBzOiBPcHRpb25hbFtMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3Vwc10gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJhdXRob3JpemF0aW9uR3JvdXBzIikKICAgIGFtb3VudF9hZ2dyZWdhdGlvbjogT3B0aW9uYWxbTGVnYWN5UG9saWN5UnVsZUFtb3VudEFnZ3JlZ2F0aW9uXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImFtb3VudEFnZ3JlZ2F0aW9uIikKICAgIHJhd19tZXNzYWdlX3NpZ25pbmc6IE9wdGlvbmFsW0xlZ2FjeVBvbGljeVJ1bGVSYXdNZXNzYWdlU2lnbmluZ10gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJyYXdNZXNzYWdlU2lnbmluZyIpCiAgICBhcHBseV9mb3JfYXBwcm92ZTogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBcHBseWluZyB0aGlzIHJ1bGUgb3ZlciBBUFBST1ZFIHR5cGUgdHJhbnNhY3Rpb25zIChjYW4gb25seSBiZSBlbmFibGVkIHdoZW4gcnVsZSdzIHRyYW5zYWN0aW9uIHR5cGUgaXMgVFJBTlNGRVIpIiwgYWxpYXM9ImFwcGx5Rm9yQXBwcm92ZSIpCiAgICBhcHBseV9mb3JfdHlwZWRfbWVzc2FnZTogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBcHBseWluZyB0aGlzIHJ1bGUgb3ZlciBUWVBFRF9NRVNTQUdFIHR5cGUgdHJhbnNhY3Rpb25zIChjYW4gb25seSBiZSBlbmFibGVkIHdoZW4gcnVsZSdzIHRyYW5zYWN0aW9uIHR5cGUgaXMgQ09OVFJBQ1RfQ0FMTCkiLCBhbGlhcz0iYXBwbHlGb3JUeXBlZE1lc3NhZ2UiKQogICAgZXh0ZXJuYWxfZGVzY3JpcHRvcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkIGlkZW50aWZ5aW5nIHRoZSBydWxlIiwgYWxpYXM9ImV4dGVybmFsRGVzY3JpcHRvciIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm9wZXJhdG9yIiwgIm9wZXJhdG9ycyIsICJ0cmFuc2FjdGlvblR5cGUiLCAiZGVzaWduYXRlZFNpZ25lciIsICJkZXNpZ25hdGVkU2lnbmVycyIsICJ0eXBlIiwgImFjdGlvbiIsICJhc3NldCIsICJzcmNUeXBlIiwgInNyY1N1YlR5cGUiLCAic3JjSWQiLCAic3JjIiwgImRzdFR5cGUiLCAiZHN0U3ViVHlwZSIsICJkc3RJZCIsICJkc3QiLCAiZHN0QWRkcmVzc1R5cGUiLCAiYW1vdW50Q3VycmVuY3kiLCAiYW1vdW50U2NvcGUiLCAiYW1vdW50IiwgInBlcmlvZFNlYyIsICJhdXRob3JpemVycyIsICJhdXRob3JpemVyc0NvdW50IiwgImF1dGhvcml6YXRpb25Hcm91cHMiLCAiYW1vdW50QWdncmVnYXRpb24iLCAicmF3TWVzc2FnZVNpZ25pbmciLCAiYXBwbHlGb3JBcHByb3ZlIiwgImFwcGx5Rm9yVHlwZWRNZXNzYWdlIiwgImV4dGVybmFsRGVzY3JpcHRvciJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigndHJhbnNhY3Rpb25fdHlwZScpCiAgICBkZWYgdHJhbnNhY3Rpb25fdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnVFJBTlNGRVInLCAnQ09OVFJBQ1RfQ0FMTCcsICdBUFBST1ZFJywgJ01JTlQnLCAnQlVSTicsICdTVVBQTFknLCAnUkVERUVNJywgJ1NUQUtFJywgJ1JBVycsICdUWVBFRF9NRVNTQUdFJywgJ1BST0dSQU1fQ0FMTCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdUUkFOU0ZFUicsICdDT05UUkFDVF9DQUxMJywgJ0FQUFJPVkUnLCAnTUlOVCcsICdCVVJOJywgJ1NVUFBMWScsICdSRURFRU0nLCAnU1RBS0UnLCAnUkFXJywgJ1RZUEVEX01FU1NBR0UnLCAnUFJPR1JBTV9DQUxMJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3R5cGUnKQogICAgZGVmIHR5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnVFJBTlNGRVInXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnVFJBTlNGRVInKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0aW9uJykKICAgIGRlZiBhY3Rpb25fdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnQUxMT1cnLCAnQkxPQ0snLCAnMi1USUVSJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0FMTE9XJywgJ0JMT0NLJywgJzItVElFUicpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdkc3RfYWRkcmVzc190eXBlJykKICAgIGRlZiBkc3RfYWRkcmVzc190eXBlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydXSElURUxJU1RFRCcsICdPTkVfVElNRScsICcqJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ1dISVRFTElTVEVEJywgJ09ORV9USU1FJywgJyonKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYW1vdW50X2N1cnJlbmN5JykKICAgIGRlZiBhbW91bnRfY3VycmVuY3lfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnVVNEJywgJ0VVUicsICdOQVRJVkUnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnVVNEJywgJ0VVUicsICdOQVRJVkUnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYW1vdW50X3Njb3BlJykKICAgIGRlZiBhbW91bnRfc2NvcGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnU0lOR0xFX1RYJywgJ1RJTUVGUkFNRSddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdTSU5HTEVfVFgnLCAnVElNRUZSQU1FJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVBvbGljeVJ1bGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBvcGVyYXRvcnMKICAgICAgICBpZiBzZWxmLm9wZXJhdG9yczoKICAgICAgICAgICAgX2RpY3RbJ29wZXJhdG9ycyddID0gc2VsZi5vcGVyYXRvcnMudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGRlc2lnbmF0ZWRfc2lnbmVycwogICAgICAgIGlmIHNlbGYuZGVzaWduYXRlZF9zaWduZXJzOgogICAgICAgICAgICBfZGljdFsnZGVzaWduYXRlZFNpZ25lcnMnXSA9IHNlbGYuZGVzaWduYXRlZF9zaWduZXJzLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBzcmMKICAgICAgICBpZiBzZWxmLnNyYzoKICAgICAgICAgICAgX2RpY3RbJ3NyYyddID0gc2VsZi5zcmMudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGRzdAogICAgICAgIGlmIHNlbGYuZHN0OgogICAgICAgICAgICBfZGljdFsnZHN0J10gPSBzZWxmLmRzdC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYW1vdW50CiAgICAgICAgaWYgc2VsZi5hbW91bnQ6CiAgICAgICAgICAgIF9kaWN0WydhbW91bnQnXSA9IHNlbGYuYW1vdW50LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhdXRob3JpemF0aW9uX2dyb3VwcwogICAgICAgIGlmIHNlbGYuYXV0aG9yaXphdGlvbl9ncm91cHM6CiAgICAgICAgICAgIF9kaWN0WydhdXRob3JpemF0aW9uR3JvdXBzJ10gPSBzZWxmLmF1dGhvcml6YXRpb25fZ3JvdXBzLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhbW91bnRfYWdncmVnYXRpb24KICAgICAgICBpZiBzZWxmLmFtb3VudF9hZ2dyZWdhdGlvbjoKICAgICAgICAgICAgX2RpY3RbJ2Ftb3VudEFnZ3JlZ2F0aW9uJ10gPSBzZWxmLmFtb3VudF9hZ2dyZWdhdGlvbi50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcmF3X21lc3NhZ2Vfc2lnbmluZwogICAgICAgIGlmIHNlbGYucmF3X21lc3NhZ2Vfc2lnbmluZzoKICAgICAgICAgICAgX2RpY3RbJ3Jhd01lc3NhZ2VTaWduaW5nJ10gPSBzZWxmLnJhd19tZXNzYWdlX3NpZ25pbmcudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm9wZXJhdG9yIjogb2JqLmdldCgib3BlcmF0b3IiKSwKICAgICAgICAgICAgIm9wZXJhdG9ycyI6IExlZ2FjeVBvbGljeVJ1bGVPcGVyYXRvcnMuZnJvbV9kaWN0KG9ialsib3BlcmF0b3JzIl0pIGlmIG9iai5nZXQoIm9wZXJhdG9ycyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInRyYW5zYWN0aW9uVHlwZSI6IG9iai5nZXQoInRyYW5zYWN0aW9uVHlwZSIpLAogICAgICAgICAgICAiZGVzaWduYXRlZFNpZ25lciI6IG9iai5nZXQoImRlc2lnbmF0ZWRTaWduZXIiKSwKICAgICAgICAgICAgImRlc2lnbmF0ZWRTaWduZXJzIjogTGVnYWN5UG9saWN5UnVsZURlc2lnbmF0ZWRTaWduZXJzLmZyb21fZGljdChvYmpbImRlc2lnbmF0ZWRTaWduZXJzIl0pIGlmIG9iai5nZXQoImRlc2lnbmF0ZWRTaWduZXJzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImFjdGlvbiI6IG9iai5nZXQoImFjdGlvbiIpLAogICAgICAgICAgICAiYXNzZXQiOiBvYmouZ2V0KCJhc3NldCIpLAogICAgICAgICAgICAic3JjVHlwZSI6IG9iai5nZXQoInNyY1R5cGUiKSwKICAgICAgICAgICAgInNyY1N1YlR5cGUiOiBvYmouZ2V0KCJzcmNTdWJUeXBlIiksCiAgICAgICAgICAgICJzcmNJZCI6IG9iai5nZXQoInNyY0lkIiksCiAgICAgICAgICAgICJzcmMiOiBMZWdhY3lQb2xpY3lSdWxlU3JjLmZyb21fZGljdChvYmpbInNyYyJdKSBpZiBvYmouZ2V0KCJzcmMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJkc3RUeXBlIjogb2JqLmdldCgiZHN0VHlwZSIpLAogICAgICAgICAgICAiZHN0U3ViVHlwZSI6IG9iai5nZXQoImRzdFN1YlR5cGUiKSwKICAgICAgICAgICAgImRzdElkIjogb2JqLmdldCgiZHN0SWQiKSwKICAgICAgICAgICAgImRzdCI6IExlZ2FjeVBvbGljeVJ1bGVEc3QuZnJvbV9kaWN0KG9ialsiZHN0Il0pIGlmIG9iai5nZXQoImRzdCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImRzdEFkZHJlc3NUeXBlIjogb2JqLmdldCgiZHN0QWRkcmVzc1R5cGUiKSwKICAgICAgICAgICAgImFtb3VudEN1cnJlbmN5Ijogb2JqLmdldCgiYW1vdW50Q3VycmVuY3kiKSwKICAgICAgICAgICAgImFtb3VudFNjb3BlIjogb2JqLmdldCgiYW1vdW50U2NvcGUiKSwKICAgICAgICAgICAgImFtb3VudCI6IExlZ2FjeVBvbGljeVJ1bGVBbW91bnQuZnJvbV9kaWN0KG9ialsiYW1vdW50Il0pIGlmIG9iai5nZXQoImFtb3VudCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInBlcmlvZFNlYyI6IG9iai5nZXQoInBlcmlvZFNlYyIpLAogICAgICAgICAgICAiYXV0aG9yaXplcnMiOiBvYmouZ2V0KCJhdXRob3JpemVycyIpLAogICAgICAgICAgICAiYXV0aG9yaXplcnNDb3VudCI6IG9iai5nZXQoImF1dGhvcml6ZXJzQ291bnQiKSwKICAgICAgICAgICAgImF1dGhvcml6YXRpb25Hcm91cHMiOiBMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3Vwcy5mcm9tX2RpY3Qob2JqWyJhdXRob3JpemF0aW9uR3JvdXBzIl0pIGlmIG9iai5nZXQoImF1dGhvcml6YXRpb25Hcm91cHMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJhbW91bnRBZ2dyZWdhdGlvbiI6IExlZ2FjeVBvbGljeVJ1bGVBbW91bnRBZ2dyZWdhdGlvbi5mcm9tX2RpY3Qob2JqWyJhbW91bnRBZ2dyZWdhdGlvbiJdKSBpZiBvYmouZ2V0KCJhbW91bnRBZ2dyZWdhdGlvbiIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInJhd01lc3NhZ2VTaWduaW5nIjogTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nLmZyb21fZGljdChvYmpbInJhd01lc3NhZ2VTaWduaW5nIl0pIGlmIG9iai5nZXQoInJhd01lc3NhZ2VTaWduaW5nIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiYXBwbHlGb3JBcHByb3ZlIjogb2JqLmdldCgiYXBwbHlGb3JBcHByb3ZlIiksCiAgICAgICAgICAgICJhcHBseUZvclR5cGVkTWVzc2FnZSI6IG9iai5nZXQoImFwcGx5Rm9yVHlwZWRNZXNzYWdlIiksCiAgICAgICAgICAgICJleHRlcm5hbERlc2NyaXB0b3IiOiBvYmouZ2V0KCJleHRlcm5hbERlc2NyaXB0b3IiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_rule_amount.py b/fireblocks/models/legacy_policy_rule_amount.py index b795ad5a..b8688b76 100644 --- a/fireblocks/models/legacy_policy_rule_amount.py +++ b/fireblocks/models/legacy_policy_rule_amount.py @@ -1,139 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -from inspect import getfullargspec -import json -import pprint -import re # noqa: F401 -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, ValidationError, field_validator -from typing import Optional, Union -from typing import Union, Any, List, Set, TYPE_CHECKING, Optional, Dict -from typing_extensions import Literal, Self -from pydantic import Field - -LEGACYPOLICYRULEAMOUNT_ANY_OF_SCHEMAS = ["float", "str"] - -class LegacyPolicyRuleAmount(BaseModel): - """ - Defines the value a transaction must exceed for the rule to apply to it (according to the amountCurrency field) - """ - - # data type: str - anyof_schema_1_validator: Optional[StrictStr] = Field(default=None, description="Numeric string (recommended)") - # data type: float - anyof_schema_2_validator: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Number (deprecated)") - if TYPE_CHECKING: - actual_instance: Optional[Union[float, str]] = None - else: - actual_instance: Any = None - any_of_schemas: Set[str] = { "float", "str" } - - model_config = { - "validate_assignment": True, - "protected_namespaces": (), - } - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_anyof(cls, v): - instance = LegacyPolicyRuleAmount.model_construct() - error_messages = [] - # validate data type: str - try: - instance.anyof_schema_1_validator = v - return v - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # validate data type: float - try: - instance.anyof_schema_2_validator = v - return v - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - if error_messages: - # no match - raise ValueError("No match found when setting the actual_instance in LegacyPolicyRuleAmount with anyOf schemas: float, str. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Dict[str, Any]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - # deserialize data into str - try: - # validation - instance.anyof_schema_1_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.anyof_schema_1_validator - return instance - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into float - try: - # validation - instance.anyof_schema_2_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.anyof_schema_2_validator - return instance - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if error_messages: - # no match - raise ValueError("No match found when deserializing the JSON string into LegacyPolicyRuleAmount with anyOf schemas: float, str. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], float, str]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKZnJvbSBpbnNwZWN0IGltcG9ydCBnZXRmdWxsYXJnc3BlYwppbXBvcnQganNvbgppbXBvcnQgcHByaW50CmltcG9ydCByZSAgIyBub3FhOiBGNDAxCmZyb20gcHlkYW50aWMgaW1wb3J0IEJhc2VNb2RlbCwgQ29uZmlnRGljdCwgRmllbGQsIFN0cmljdEZsb2F0LCBTdHJpY3RJbnQsIFN0cmljdFN0ciwgVmFsaWRhdGlvbkVycm9yLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgVW5pb24sIEFueSwgTGlzdCwgU2V0LCBUWVBFX0NIRUNLSU5HLCBPcHRpb25hbCwgRGljdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBMaXRlcmFsLCBTZWxmCmZyb20gcHlkYW50aWMgaW1wb3J0IEZpZWxkCgpMRUdBQ1lQT0xJQ1lSVUxFQU1PVU5UX0FOWV9PRl9TQ0hFTUFTID0gWyJmbG9hdCIsICJzdHIiXQoKY2xhc3MgTGVnYWN5UG9saWN5UnVsZUFtb3VudChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBEZWZpbmVzIHRoZSB2YWx1ZSBhIHRyYW5zYWN0aW9uIG11c3QgZXhjZWVkIGZvciB0aGUgcnVsZSB0byBhcHBseSB0byBpdCAoYWNjb3JkaW5nIHRvIHRoZSBhbW91bnRDdXJyZW5jeSBmaWVsZCkKICAgICIiIgoKICAgICMgZGF0YSB0eXBlOiBzdHIKICAgIGFueW9mX3NjaGVtYV8xX3ZhbGlkYXRvcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik51bWVyaWMgc3RyaW5nIChyZWNvbW1lbmRlZCkiKQogICAgIyBkYXRhIHR5cGU6IGZsb2F0CiAgICBhbnlvZl9zY2hlbWFfMl92YWxpZGF0b3I6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik51bWJlciAoZGVwcmVjYXRlZCkiKQogICAgaWYgVFlQRV9DSEVDS0lORzoKICAgICAgICBhY3R1YWxfaW5zdGFuY2U6IE9wdGlvbmFsW1VuaW9uW2Zsb2F0LCBzdHJdXSA9IE5vbmUKICAgIGVsc2U6CiAgICAgICAgYWN0dWFsX2luc3RhbmNlOiBBbnkgPSBOb25lCiAgICBhbnlfb2Zfc2NoZW1hczogU2V0W3N0cl0gPSB7ICJmbG9hdCIsICJzdHIiIH0KCiAgICBtb2RlbF9jb25maWcgPSB7CiAgICAgICAgInZhbGlkYXRlX2Fzc2lnbm1lbnQiOiBUcnVlLAogICAgICAgICJwcm90ZWN0ZWRfbmFtZXNwYWNlcyI6ICgpLAogICAgfQoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9hbnlvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gTGVnYWN5UG9saWN5UnVsZUFtb3VudC5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogc3RyCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hbnlvZl9zY2hlbWFfMV92YWxpZGF0b3IgPSB2CiAgICAgICAgICAgIHJldHVybiB2CiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IGZsb2F0CiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hbnlvZl9zY2hlbWFfMl92YWxpZGF0b3IgPSB2CiAgICAgICAgICAgIHJldHVybiB2CiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgaWYgZXJyb3JfbWVzc2FnZXM6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBzZXR0aW5nIHRoZSBhY3R1YWxfaW5zdGFuY2UgaW4gTGVnYWN5UG9saWN5UnVsZUFtb3VudCB3aXRoIGFueU9mIHNjaGVtYXM6IGZsb2F0LCBzdHIuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBEaWN0W3N0ciwgQW55XSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gc3RyCiAgICAgICAgdHJ5OgogICAgICAgICAgICAjIHZhbGlkYXRpb24KICAgICAgICAgICAgaW5zdGFuY2UuYW55b2Zfc2NoZW1hXzFfdmFsaWRhdG9yID0ganNvbi5sb2Fkcyhqc29uX3N0cikKICAgICAgICAgICAgIyBhc3NpZ24gdmFsdWUgdG8gYWN0dWFsX2luc3RhbmNlCiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IGluc3RhbmNlLmFueW9mX3NjaGVtYV8xX3ZhbGlkYXRvcgogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBmbG9hdAogICAgICAgIHRyeToKICAgICAgICAgICAgIyB2YWxpZGF0aW9uCiAgICAgICAgICAgIGluc3RhbmNlLmFueW9mX3NjaGVtYV8yX3ZhbGlkYXRvciA9IGpzb24ubG9hZHMoanNvbl9zdHIpCiAgICAgICAgICAgICMgYXNzaWduIHZhbHVlIHRvIGFjdHVhbF9pbnN0YW5jZQogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBpbnN0YW5jZS5hbnlvZl9zY2hlbWFfMl92YWxpZGF0b3IKICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCgogICAgICAgIGlmIGVycm9yX21lc3NhZ2VzOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBMZWdhY3lQb2xpY3lSdWxlQW1vdW50IHdpdGggYW55T2Ygc2NoZW1hczogZmxvYXQsIHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiAibnVsbCIKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2pzb24iKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbik6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKCkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLmFjdHVhbF9pbnN0YW5jZSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBPcHRpb25hbFtVbmlvbltEaWN0W3N0ciwgQW55XSwgZmxvYXQsIHN0cl1dOgogICAgICAgICIiIlJldHVybnMgdGhlIGRpY3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19kaWN0IikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QpOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCgpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_rule_amount_aggregation.py b/fireblocks/models/legacy_policy_rule_amount_aggregation.py index 25e0c74f..47e8c77d 100644 --- a/fireblocks/models/legacy_policy_rule_amount_aggregation.py +++ b/fireblocks/models/legacy_policy_rule_amount_aggregation.py @@ -1,93 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.legacy_amount_aggregation_time_period_method import LegacyAmountAggregationTimePeriodMethod -from typing import Optional, Set -from typing_extensions import Self - -class LegacyPolicyRuleAmountAggregation(BaseModel): - """ - Defines the method by which the Policy Engine calculates accumulation. It uses the Initiator, Source, and Destination to calculate accumulation toward the value under Minimum, for the time under Time Period. - """ # noqa: E501 - operators: Optional[LegacyAmountAggregationTimePeriodMethod] = None - src_transfer_peers: Optional[LegacyAmountAggregationTimePeriodMethod] = Field(default=None, alias="srcTransferPeers") - dst_transfer_peers: Optional[LegacyAmountAggregationTimePeriodMethod] = Field(default=None, alias="dstTransferPeers") - __properties: ClassVar[List[str]] = ["operators", "srcTransferPeers", "dstTransferPeers"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleAmountAggregation from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleAmountAggregation from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "operators": obj.get("operators"), - "srcTransferPeers": obj.get("srcTransferPeers"), - "dstTransferPeers": obj.get("dstTransferPeers") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfYW1vdW50X2FnZ3JlZ2F0aW9uX3RpbWVfcGVyaW9kX21ldGhvZCBpbXBvcnQgTGVnYWN5QW1vdW50QWdncmVnYXRpb25UaW1lUGVyaW9kTWV0aG9kCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIExlZ2FjeVBvbGljeVJ1bGVBbW91bnRBZ2dyZWdhdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBEZWZpbmVzIHRoZSBtZXRob2QgYnkgd2hpY2ggdGhlIFBvbGljeSBFbmdpbmUgY2FsY3VsYXRlcyBhY2N1bXVsYXRpb24uIEl0IHVzZXMgdGhlIEluaXRpYXRvciwgU291cmNlLCBhbmQgRGVzdGluYXRpb24gdG8gY2FsY3VsYXRlIGFjY3VtdWxhdGlvbiB0b3dhcmQgdGhlIHZhbHVlIHVuZGVyIE1pbmltdW0sIGZvciB0aGUgdGltZSB1bmRlciBUaW1lIFBlcmlvZC4gCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBvcGVyYXRvcnM6IE9wdGlvbmFsW0xlZ2FjeUFtb3VudEFnZ3JlZ2F0aW9uVGltZVBlcmlvZE1ldGhvZF0gPSBOb25lCiAgICBzcmNfdHJhbnNmZXJfcGVlcnM6IE9wdGlvbmFsW0xlZ2FjeUFtb3VudEFnZ3JlZ2F0aW9uVGltZVBlcmlvZE1ldGhvZF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJzcmNUcmFuc2ZlclBlZXJzIikKICAgIGRzdF90cmFuc2Zlcl9wZWVyczogT3B0aW9uYWxbTGVnYWN5QW1vdW50QWdncmVnYXRpb25UaW1lUGVyaW9kTWV0aG9kXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImRzdFRyYW5zZmVyUGVlcnMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJvcGVyYXRvcnMiLCAic3JjVHJhbnNmZXJQZWVycyIsICJkc3RUcmFuc2ZlclBlZXJzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlQW1vdW50QWdncmVnYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5UnVsZUFtb3VudEFnZ3JlZ2F0aW9uIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm9wZXJhdG9ycyI6IG9iai5nZXQoIm9wZXJhdG9ycyIpLAogICAgICAgICAgICAic3JjVHJhbnNmZXJQZWVycyI6IG9iai5nZXQoInNyY1RyYW5zZmVyUGVlcnMiKSwKICAgICAgICAgICAgImRzdFRyYW5zZmVyUGVlcnMiOiBvYmouZ2V0KCJkc3RUcmFuc2ZlclBlZXJzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_rule_authorization_groups.py b/fireblocks/models/legacy_policy_rule_authorization_groups.py index 2c842494..2d86f963 100644 --- a/fireblocks/models/legacy_policy_rule_authorization_groups.py +++ b/fireblocks/models/legacy_policy_rule_authorization_groups.py @@ -1,110 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.legacy_policy_rule_authorization_groups_groups_inner import LegacyPolicyRuleAuthorizationGroupsGroupsInner -from typing import Optional, Set -from typing_extensions import Self - -class LegacyPolicyRuleAuthorizationGroups(BaseModel): - """ - Defines the transaction approval terms - """ # noqa: E501 - logic: Optional[StrictStr] = Field(default=None, description="* AND - requires approval of all authorization groups * OR - requires approval of at least one of the authorization groups ") - allow_operator_as_authorizer: Optional[StrictBool] = Field(default=None, description="Defines whether the user who initiates a transaction can approve their own transaction and count toward the approval threshold for their transaction", alias="allowOperatorAsAuthorizer") - groups: Optional[List[LegacyPolicyRuleAuthorizationGroupsGroupsInner]] = Field(default=None, description="Groups of entities which can approve the transaction") - __properties: ClassVar[List[str]] = ["logic", "allowOperatorAsAuthorizer", "groups"] - - @field_validator('logic') - def logic_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['AND', 'OR']): - raise ValueError("must be one of enum values ('AND', 'OR')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleAuthorizationGroups from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in groups (list) - _items = [] - if self.groups: - for _item_groups in self.groups: - if _item_groups: - _items.append(_item_groups.to_dict()) - _dict['groups'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleAuthorizationGroups from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "logic": obj.get("logic"), - "allowOperatorAsAuthorizer": obj.get("allowOperatorAsAuthorizer"), - "groups": [LegacyPolicyRuleAuthorizationGroupsGroupsInner.from_dict(_item) for _item in obj["groups"]] if obj.get("groups") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2F1dGhvcml6YXRpb25fZ3JvdXBzX2dyb3Vwc19pbm5lciBpbXBvcnQgTGVnYWN5UG9saWN5UnVsZUF1dGhvcml6YXRpb25Hcm91cHNHcm91cHNJbm5lcgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3VwcyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBEZWZpbmVzIHRoZSB0cmFuc2FjdGlvbiBhcHByb3ZhbCB0ZXJtcwogICAgIiIiICMgbm9xYTogRTUwMQogICAgbG9naWM6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSIqIEFORCAtIHJlcXVpcmVzIGFwcHJvdmFsIG9mIGFsbCBhdXRob3JpemF0aW9uIGdyb3VwcyAqIE9SIC0gcmVxdWlyZXMgYXBwcm92YWwgb2YgYXQgbGVhc3Qgb25lIG9mIHRoZSBhdXRob3JpemF0aW9uIGdyb3VwcyAiKQogICAgYWxsb3dfb3BlcmF0b3JfYXNfYXV0aG9yaXplcjogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZWZpbmVzIHdoZXRoZXIgdGhlIHVzZXIgd2hvIGluaXRpYXRlcyBhIHRyYW5zYWN0aW9uIGNhbiBhcHByb3ZlIHRoZWlyIG93biB0cmFuc2FjdGlvbiBhbmQgY291bnQgdG93YXJkIHRoZSBhcHByb3ZhbCB0aHJlc2hvbGQgZm9yIHRoZWlyIHRyYW5zYWN0aW9uIiwgYWxpYXM9ImFsbG93T3BlcmF0b3JBc0F1dGhvcml6ZXIiKQogICAgZ3JvdXBzOiBPcHRpb25hbFtMaXN0W0xlZ2FjeVBvbGljeVJ1bGVBdXRob3JpemF0aW9uR3JvdXBzR3JvdXBzSW5uZXJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ikdyb3VwcyBvZiBlbnRpdGllcyB3aGljaCBjYW4gYXBwcm92ZSB0aGUgdHJhbnNhY3Rpb24iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJsb2dpYyIsICJhbGxvd09wZXJhdG9yQXNBdXRob3JpemVyIiwgImdyb3VwcyJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignbG9naWMnKQogICAgZGVmIGxvZ2ljX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydBTkQnLCAnT1InXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnQU5EJywgJ09SJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVBvbGljeVJ1bGVBdXRob3JpemF0aW9uR3JvdXBzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGdyb3VwcyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZ3JvdXBzOgogICAgICAgICAgICBmb3IgX2l0ZW1fZ3JvdXBzIGluIHNlbGYuZ3JvdXBzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZ3JvdXBzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fZ3JvdXBzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2dyb3VwcyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3VwcyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJsb2dpYyI6IG9iai5nZXQoImxvZ2ljIiksCiAgICAgICAgICAgICJhbGxvd09wZXJhdG9yQXNBdXRob3JpemVyIjogb2JqLmdldCgiYWxsb3dPcGVyYXRvckFzQXV0aG9yaXplciIpLAogICAgICAgICAgICAiZ3JvdXBzIjogW0xlZ2FjeVBvbGljeVJ1bGVBdXRob3JpemF0aW9uR3JvdXBzR3JvdXBzSW5uZXIuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJncm91cHMiXV0gaWYgb2JqLmdldCgiZ3JvdXBzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_rule_authorization_groups_groups_inner.py b/fireblocks/models/legacy_policy_rule_authorization_groups_groups_inner.py index 773ba71e..4b28e033 100644 --- a/fireblocks/models/legacy_policy_rule_authorization_groups_groups_inner.py +++ b/fireblocks/models/legacy_policy_rule_authorization_groups_groups_inner.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class LegacyPolicyRuleAuthorizationGroupsGroupsInner(BaseModel): - """ - LegacyPolicyRuleAuthorizationGroupsGroupsInner - """ # noqa: E501 - users: Optional[List[StrictStr]] = Field(default=None, description="User ids") - users_groups: Optional[List[StrictStr]] = Field(default=None, description="Group ids", alias="usersGroups") - th: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Represents the min amount of entities which are required to approve the transaction, default is 1.") - __properties: ClassVar[List[str]] = ["users", "usersGroups", "th"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleAuthorizationGroupsGroupsInner from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleAuthorizationGroupsGroupsInner from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "users": obj.get("users"), - "usersGroups": obj.get("usersGroups"), - "th": obj.get("th") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTGVnYWN5UG9saWN5UnVsZUF1dGhvcml6YXRpb25Hcm91cHNHcm91cHNJbm5lcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3Vwc0dyb3Vwc0lubmVyCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB1c2VyczogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlVzZXIgaWRzIikKICAgIHVzZXJzX2dyb3VwczogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ikdyb3VwIGlkcyIsIGFsaWFzPSJ1c2Vyc0dyb3VwcyIpCiAgICB0aDogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUmVwcmVzZW50cyB0aGUgbWluIGFtb3VudCBvZiBlbnRpdGllcyB3aGljaCBhcmUgcmVxdWlyZWQgdG8gYXBwcm92ZSB0aGUgdHJhbnNhY3Rpb24sIGRlZmF1bHQgaXMgMS4iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ1c2VycyIsICJ1c2Vyc0dyb3VwcyIsICJ0aCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5UnVsZUF1dGhvcml6YXRpb25Hcm91cHNHcm91cHNJbm5lciBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3Vwc0dyb3Vwc0lubmVyIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInVzZXJzIjogb2JqLmdldCgidXNlcnMiKSwKICAgICAgICAgICAgInVzZXJzR3JvdXBzIjogb2JqLmdldCgidXNlcnNHcm91cHMiKSwKICAgICAgICAgICAgInRoIjogb2JqLmdldCgidGgiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_rule_check_result.py b/fireblocks/models/legacy_policy_rule_check_result.py index 28490874..62975d2c 100644 --- a/fireblocks/models/legacy_policy_rule_check_result.py +++ b/fireblocks/models/legacy_policy_rule_check_result.py @@ -1,107 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Union -from fireblocks.models.legacy_policy_rule_error import LegacyPolicyRuleError -from typing import Optional, Set -from typing_extensions import Self - -class LegacyPolicyRuleCheckResult(BaseModel): - """ - The rule validation result - """ # noqa: E501 - index: Union[StrictFloat, StrictInt] = Field(description="Rule index number in the policy") - status: StrictStr = Field(description="Validation status") - errors: List[LegacyPolicyRuleError] = Field(description="A set of rule validation error objects") - __properties: ClassVar[List[str]] = ["index", "status", "errors"] - - @field_validator('status') - def status_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['ok', 'failure']): - raise ValueError("must be one of enum values ('ok', 'failure')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleCheckResult from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in errors (list) - _items = [] - if self.errors: - for _item_errors in self.errors: - if _item_errors: - _items.append(_item_errors.to_dict()) - _dict['errors'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleCheckResult from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "index": obj.get("index"), - "status": obj.get("status"), - "errors": [LegacyPolicyRuleError.from_dict(_item) for _item in obj["errors"]] if obj.get("errors") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIFVuaW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2Vycm9yIGltcG9ydCBMZWdhY3lQb2xpY3lSdWxlRXJyb3IKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTGVnYWN5UG9saWN5UnVsZUNoZWNrUmVzdWx0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRoZSBydWxlIHZhbGlkYXRpb24gcmVzdWx0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpbmRleDogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iUnVsZSBpbmRleCBudW1iZXIgaW4gdGhlIHBvbGljeSIpCiAgICBzdGF0dXM6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJWYWxpZGF0aW9uIHN0YXR1cyIpCiAgICBlcnJvcnM6IExpc3RbTGVnYWN5UG9saWN5UnVsZUVycm9yXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBIHNldCBvZiBydWxlIHZhbGlkYXRpb24gZXJyb3Igb2JqZWN0cyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImluZGV4IiwgInN0YXR1cyIsICJlcnJvcnMiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3N0YXR1cycpCiAgICBkZWYgc3RhdHVzX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ29rJywgJ2ZhaWx1cmUnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnb2snLCAnZmFpbHVyZScpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlQ2hlY2tSZXN1bHQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZXJyb3JzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5lcnJvcnM6CiAgICAgICAgICAgIGZvciBfaXRlbV9lcnJvcnMgaW4gc2VsZi5lcnJvcnM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9lcnJvcnM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9lcnJvcnMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZXJyb3JzJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVBvbGljeVJ1bGVDaGVja1Jlc3VsdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpbmRleCI6IG9iai5nZXQoImluZGV4IiksCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgImVycm9ycyI6IFtMZWdhY3lQb2xpY3lSdWxlRXJyb3IuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJlcnJvcnMiXV0gaWYgb2JqLmdldCgiZXJyb3JzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_rule_designated_signers.py b/fireblocks/models/legacy_policy_rule_designated_signers.py index f689d238..170c2dad 100644 --- a/fireblocks/models/legacy_policy_rule_designated_signers.py +++ b/fireblocks/models/legacy_policy_rule_designated_signers.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class LegacyPolicyRuleDesignatedSigners(BaseModel): - """ - Set of ids representing the users who signs transactions that match a specific rule - """ # noqa: E501 - users: Optional[List[StrictStr]] = Field(default=None, description="Set of users ids") - users_groups: Optional[List[StrictStr]] = Field(default=None, description="Set of group ids", alias="usersGroups") - __properties: ClassVar[List[str]] = ["users", "usersGroups"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleDesignatedSigners from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleDesignatedSigners from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "users": obj.get("users"), - "usersGroups": obj.get("usersGroups") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBMZWdhY3lQb2xpY3lSdWxlRGVzaWduYXRlZFNpZ25lcnMoQmFzZU1vZGVsKToKICAgICIiIgogICAgU2V0IG9mIGlkcyByZXByZXNlbnRpbmcgdGhlIHVzZXJzIHdobyBzaWducyB0cmFuc2FjdGlvbnMgdGhhdCBtYXRjaCBhIHNwZWNpZmljIHJ1bGUKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHVzZXJzOiBPcHRpb25hbFtMaXN0W1N0cmljdFN0cl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iU2V0IG9mIHVzZXJzIGlkcyIpCiAgICB1c2Vyc19ncm91cHM6IE9wdGlvbmFsW0xpc3RbU3RyaWN0U3RyXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTZXQgb2YgZ3JvdXAgaWRzIiwgYWxpYXM9InVzZXJzR3JvdXBzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidXNlcnMiLCAidXNlcnNHcm91cHMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVBvbGljeVJ1bGVEZXNpZ25hdGVkU2lnbmVycyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlRGVzaWduYXRlZFNpZ25lcnMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidXNlcnMiOiBvYmouZ2V0KCJ1c2VycyIpLAogICAgICAgICAgICAidXNlcnNHcm91cHMiOiBvYmouZ2V0KCJ1c2Vyc0dyb3VwcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_rule_dst.py b/fireblocks/models/legacy_policy_rule_dst.py index 1c6f9102..b0ef3ef8 100644 --- a/fireblocks/models/legacy_policy_rule_dst.py +++ b/fireblocks/models/legacy_policy_rule_dst.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from fireblocks.models.legacy_src_or_dest_attributes_inner import LegacySrcOrDestAttributesInner -from typing import Optional, Set -from typing_extensions import Self - -class LegacyPolicyRuleDst(BaseModel): - """ - Defines the destination accounts the rule allows transfers to - """ # noqa: E501 - ids: Optional[List[Annotated[List[LegacySrcOrDestAttributesInner], Field(min_length=1, max_length=3)]]] = Field(default=None, description="A set of ids in a tuple format") - __properties: ClassVar[List[str]] = ["ids"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleDst from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in ids (list of list) - _items = [] - if self.ids: - for _item_ids in self.ids: - if _item_ids: - _items.append( - [_inner_item.to_dict() for _inner_item in _item_ids if _inner_item is not None] - ) - _dict['ids'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleDst from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "ids": [ - [LegacySrcOrDestAttributesInner.from_dict(_inner_item) for _inner_item in _item] - for _item in obj["ids"] - ] if obj.get("ids") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3NyY19vcl9kZXN0X2F0dHJpYnV0ZXNfaW5uZXIgaW1wb3J0IExlZ2FjeVNyY09yRGVzdEF0dHJpYnV0ZXNJbm5lcgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBMZWdhY3lQb2xpY3lSdWxlRHN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIERlZmluZXMgdGhlIGRlc3RpbmF0aW9uIGFjY291bnRzIHRoZSBydWxlIGFsbG93cyB0cmFuc2ZlcnMgdG8KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkczogT3B0aW9uYWxbTGlzdFtBbm5vdGF0ZWRbTGlzdFtMZWdhY3lTcmNPckRlc3RBdHRyaWJ1dGVzSW5uZXJdLCBGaWVsZChtaW5fbGVuZ3RoPTEsIG1heF9sZW5ndGg9MyldXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBIHNldCBvZiBpZHMgaW4gYSB0dXBsZSBmb3JtYXQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZHMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVBvbGljeVJ1bGVEc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gaWRzIChsaXN0IG9mIGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmlkczoKICAgICAgICAgICAgZm9yIF9pdGVtX2lkcyBpbiBzZWxmLmlkczoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2lkczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKAogICAgICAgICAgICAgICAgICAgICAgICAgW19pbm5lcl9pdGVtLnRvX2RpY3QoKSBmb3IgX2lubmVyX2l0ZW0gaW4gX2l0ZW1faWRzIGlmIF9pbm5lcl9pdGVtIGlzIG5vdCBOb25lXQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgX2RpY3RbJ2lkcyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlRHN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkcyI6IFsKICAgICAgICAgICAgICAgICAgICBbTGVnYWN5U3JjT3JEZXN0QXR0cmlidXRlc0lubmVyLmZyb21fZGljdChfaW5uZXJfaXRlbSkgZm9yIF9pbm5lcl9pdGVtIGluIF9pdGVtXQogICAgICAgICAgICAgICAgICAgIGZvciBfaXRlbSBpbiBvYmpbImlkcyJdCiAgICAgICAgICAgICAgICBdIGlmIG9iai5nZXQoImlkcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_rule_error.py b/fireblocks/models/legacy_policy_rule_error.py index d618b1a5..9a2cb504 100644 --- a/fireblocks/models/legacy_policy_rule_error.py +++ b/fireblocks/models/legacy_policy_rule_error.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class LegacyPolicyRuleError(BaseModel): - """ - Rule validation result error - """ # noqa: E501 - error_message: StrictStr = Field(description="Error message", alias="errorMessage") - error_code: Union[StrictFloat, StrictInt] = Field(description="error code", alias="errorCode") - error_code_name: StrictStr = Field(description="error code name", alias="errorCodeName") - error_field: StrictStr = Field(description="The field which the error relates to * operator - transaction initiator * operators - transaction initiators * authorizationGroups - transaction authorizer groups * designatedSigner - transaction signer * designatedSigners - transaction signers * contractMethods - contract methods * amountAggregation - transaction amount aggregation configuration * src - transaction source asset configuration * dst - transaction destination asset configuration ", alias="errorField") - __properties: ClassVar[List[str]] = ["errorMessage", "errorCode", "errorCodeName", "errorField"] - - @field_validator('error_field') - def error_field_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['operator', 'operators', 'authorizationGroups', 'designatedSigner', 'designatedSigners', 'contractMethods', 'amountAggregation', 'src', 'dst']): - raise ValueError("must be one of enum values ('operator', 'operators', 'authorizationGroups', 'designatedSigner', 'designatedSigners', 'contractMethods', 'amountAggregation', 'src', 'dst')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleError from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleError from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "errorMessage": obj.get("errorMessage"), - "errorCode": obj.get("errorCode"), - "errorCodeName": obj.get("errorCodeName"), - "errorField": obj.get("errorField") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIFVuaW9uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIExlZ2FjeVBvbGljeVJ1bGVFcnJvcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSdWxlIHZhbGlkYXRpb24gcmVzdWx0IGVycm9yCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBlcnJvcl9tZXNzYWdlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iRXJyb3IgbWVzc2FnZSIsIGFsaWFzPSJlcnJvck1lc3NhZ2UiKQogICAgZXJyb3JfY29kZTogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iZXJyb3IgY29kZSIsIGFsaWFzPSJlcnJvckNvZGUiKQogICAgZXJyb3JfY29kZV9uYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iZXJyb3IgY29kZSBuYW1lIiwgYWxpYXM9ImVycm9yQ29kZU5hbWUiKQogICAgZXJyb3JfZmllbGQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZmllbGQgd2hpY2ggdGhlIGVycm9yIHJlbGF0ZXMgdG8gKiBvcGVyYXRvciAtIHRyYW5zYWN0aW9uIGluaXRpYXRvciAqIG9wZXJhdG9ycyAtIHRyYW5zYWN0aW9uIGluaXRpYXRvcnMgKiBhdXRob3JpemF0aW9uR3JvdXBzIC0gdHJhbnNhY3Rpb24gYXV0aG9yaXplciBncm91cHMgKiBkZXNpZ25hdGVkU2lnbmVyIC0gdHJhbnNhY3Rpb24gc2lnbmVyICogZGVzaWduYXRlZFNpZ25lcnMgLSB0cmFuc2FjdGlvbiBzaWduZXJzICogY29udHJhY3RNZXRob2RzIC0gY29udHJhY3QgbWV0aG9kcyAqIGFtb3VudEFnZ3JlZ2F0aW9uIC0gdHJhbnNhY3Rpb24gYW1vdW50IGFnZ3JlZ2F0aW9uIGNvbmZpZ3VyYXRpb24gKiBzcmMgLSB0cmFuc2FjdGlvbiBzb3VyY2UgYXNzZXQgY29uZmlndXJhdGlvbiAqIGRzdCAtIHRyYW5zYWN0aW9uIGRlc3RpbmF0aW9uIGFzc2V0IGNvbmZpZ3VyYXRpb24gIiwgYWxpYXM9ImVycm9yRmllbGQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJlcnJvck1lc3NhZ2UiLCAiZXJyb3JDb2RlIiwgImVycm9yQ29kZU5hbWUiLCAiZXJyb3JGaWVsZCJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignZXJyb3JfZmllbGQnKQogICAgZGVmIGVycm9yX2ZpZWxkX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ29wZXJhdG9yJywgJ29wZXJhdG9ycycsICdhdXRob3JpemF0aW9uR3JvdXBzJywgJ2Rlc2lnbmF0ZWRTaWduZXInLCAnZGVzaWduYXRlZFNpZ25lcnMnLCAnY29udHJhY3RNZXRob2RzJywgJ2Ftb3VudEFnZ3JlZ2F0aW9uJywgJ3NyYycsICdkc3QnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnb3BlcmF0b3InLCAnb3BlcmF0b3JzJywgJ2F1dGhvcml6YXRpb25Hcm91cHMnLCAnZGVzaWduYXRlZFNpZ25lcicsICdkZXNpZ25hdGVkU2lnbmVycycsICdjb250cmFjdE1ldGhvZHMnLCAnYW1vdW50QWdncmVnYXRpb24nLCAnc3JjJywgJ2RzdCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlRXJyb3IgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5UnVsZUVycm9yIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImVycm9yTWVzc2FnZSI6IG9iai5nZXQoImVycm9yTWVzc2FnZSIpLAogICAgICAgICAgICAiZXJyb3JDb2RlIjogb2JqLmdldCgiZXJyb3JDb2RlIiksCiAgICAgICAgICAgICJlcnJvckNvZGVOYW1lIjogb2JqLmdldCgiZXJyb3JDb2RlTmFtZSIpLAogICAgICAgICAgICAiZXJyb3JGaWVsZCI6IG9iai5nZXQoImVycm9yRmllbGQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_rule_operators.py b/fireblocks/models/legacy_policy_rule_operators.py index e69e9b21..a2b11cf1 100644 --- a/fireblocks/models/legacy_policy_rule_operators.py +++ b/fireblocks/models/legacy_policy_rule_operators.py @@ -1,104 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class LegacyPolicyRuleOperators(BaseModel): - """ - Defines users/groups who can initiate the type of transaction to which the rule applies. - """ # noqa: E501 - wildcard: Optional[StrictStr] = Field(default=None, description="If used then this property should appear as the only child property * \"*\" - All users are allowed ") - users: Optional[List[StrictStr]] = Field(default=None, description="Set of users ids") - users_groups: Optional[List[StrictStr]] = Field(default=None, description="Set of group ids", alias="usersGroups") - services: Optional[List[StrictStr]] = Field(default=None, description="set of services to initiate transactions") - __properties: ClassVar[List[str]] = ["wildcard", "users", "usersGroups", "services"] - - @field_validator('wildcard') - def wildcard_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['*']): - raise ValueError("must be one of enum values ('*')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleOperators from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleOperators from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "wildcard": obj.get("wildcard"), - "users": obj.get("users"), - "usersGroups": obj.get("usersGroups"), - "services": obj.get("services") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIExlZ2FjeVBvbGljeVJ1bGVPcGVyYXRvcnMoQmFzZU1vZGVsKToKICAgICIiIgogICAgRGVmaW5lcyB1c2Vycy9ncm91cHMgd2hvIGNhbiBpbml0aWF0ZSB0aGUgdHlwZSBvZiB0cmFuc2FjdGlvbiB0byB3aGljaCB0aGUgcnVsZSBhcHBsaWVzLgogICAgIiIiICMgbm9xYTogRTUwMQogICAgd2lsZGNhcmQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJZiB1c2VkIHRoZW4gdGhpcyBwcm9wZXJ0eSBzaG91bGQgYXBwZWFyIGFzIHRoZSBvbmx5IGNoaWxkIHByb3BlcnR5ICogXCIqXCIgLSBBbGwgdXNlcnMgYXJlIGFsbG93ZWQgIikKICAgIHVzZXJzOiBPcHRpb25hbFtMaXN0W1N0cmljdFN0cl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iU2V0IG9mIHVzZXJzIGlkcyIpCiAgICB1c2Vyc19ncm91cHM6IE9wdGlvbmFsW0xpc3RbU3RyaWN0U3RyXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTZXQgb2YgZ3JvdXAgaWRzIiwgYWxpYXM9InVzZXJzR3JvdXBzIikKICAgIHNlcnZpY2VzOiBPcHRpb25hbFtMaXN0W1N0cmljdFN0cl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0ic2V0IG9mIHNlcnZpY2VzIHRvIGluaXRpYXRlIHRyYW5zYWN0aW9ucyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIndpbGRjYXJkIiwgInVzZXJzIiwgInVzZXJzR3JvdXBzIiwgInNlcnZpY2VzIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCd3aWxkY2FyZCcpCiAgICBkZWYgd2lsZGNhcmRfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gdmFsdWUKCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJyonXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnKicpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlT3BlcmF0b3JzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVBvbGljeVJ1bGVPcGVyYXRvcnMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAid2lsZGNhcmQiOiBvYmouZ2V0KCJ3aWxkY2FyZCIpLAogICAgICAgICAgICAidXNlcnMiOiBvYmouZ2V0KCJ1c2VycyIpLAogICAgICAgICAgICAidXNlcnNHcm91cHMiOiBvYmouZ2V0KCJ1c2Vyc0dyb3VwcyIpLAogICAgICAgICAgICAic2VydmljZXMiOiBvYmouZ2V0KCJzZXJ2aWNlcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_rule_raw_message_signing.py b/fireblocks/models/legacy_policy_rule_raw_message_signing.py index 5b4aabdd..569a84a6 100644 --- a/fireblocks/models/legacy_policy_rule_raw_message_signing.py +++ b/fireblocks/models/legacy_policy_rule_raw_message_signing.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.legacy_policy_rule_raw_message_signing_derivation_path import LegacyPolicyRuleRawMessageSigningDerivationPath -from typing import Optional, Set -from typing_extensions import Self - -class LegacyPolicyRuleRawMessageSigning(BaseModel): - """ - Raw message signing configuration - """ # noqa: E501 - algorithm: Optional[StrictStr] = None - derivation_path: Optional[LegacyPolicyRuleRawMessageSigningDerivationPath] = Field(default=None, alias="derivationPath") - __properties: ClassVar[List[str]] = ["algorithm", "derivationPath"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleRawMessageSigning from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of derivation_path - if self.derivation_path: - _dict['derivationPath'] = self.derivation_path.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleRawMessageSigning from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "algorithm": obj.get("algorithm"), - "derivationPath": LegacyPolicyRuleRawMessageSigningDerivationPath.from_dict(obj["derivationPath"]) if obj.get("derivationPath") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9yYXdfbWVzc2FnZV9zaWduaW5nX2Rlcml2YXRpb25fcGF0aCBpbXBvcnQgTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nRGVyaXZhdGlvblBhdGgKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFJhdyBtZXNzYWdlIHNpZ25pbmcgY29uZmlndXJhdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgYWxnb3JpdGhtOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgZGVyaXZhdGlvbl9wYXRoOiBPcHRpb25hbFtMZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmdEZXJpdmF0aW9uUGF0aF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJkZXJpdmF0aW9uUGF0aCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFsZ29yaXRobSIsICJkZXJpdmF0aW9uUGF0aCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZGVyaXZhdGlvbl9wYXRoCiAgICAgICAgaWYgc2VsZi5kZXJpdmF0aW9uX3BhdGg6CiAgICAgICAgICAgIF9kaWN0WydkZXJpdmF0aW9uUGF0aCddID0gc2VsZi5kZXJpdmF0aW9uX3BhdGgudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmcgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYWxnb3JpdGhtIjogb2JqLmdldCgiYWxnb3JpdGhtIiksCiAgICAgICAgICAgICJkZXJpdmF0aW9uUGF0aCI6IExlZ2FjeVBvbGljeVJ1bGVSYXdNZXNzYWdlU2lnbmluZ0Rlcml2YXRpb25QYXRoLmZyb21fZGljdChvYmpbImRlcml2YXRpb25QYXRoIl0pIGlmIG9iai5nZXQoImRlcml2YXRpb25QYXRoIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_rule_raw_message_signing_derivation_path.py b/fireblocks/models/legacy_policy_rule_raw_message_signing_derivation_path.py index c72d63d1..82295544 100644 --- a/fireblocks/models/legacy_policy_rule_raw_message_signing_derivation_path.py +++ b/fireblocks/models/legacy_policy_rule_raw_message_signing_derivation_path.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class LegacyPolicyRuleRawMessageSigningDerivationPath(BaseModel): - """ - LegacyPolicyRuleRawMessageSigningDerivationPath - """ # noqa: E501 - path: Optional[List[Union[StrictFloat, StrictInt]]] = None - __properties: ClassVar[List[str]] = ["path"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleRawMessageSigningDerivationPath from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleRawMessageSigningDerivationPath from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "path": obj.get("path") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RGbG9hdCwgU3RyaWN0SW50CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nRGVyaXZhdGlvblBhdGgoQmFzZU1vZGVsKToKICAgICIiIgogICAgTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nRGVyaXZhdGlvblBhdGgKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHBhdGg6IE9wdGlvbmFsW0xpc3RbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicGF0aCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nRGVyaXZhdGlvblBhdGggZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nRGVyaXZhdGlvblBhdGggZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicGF0aCI6IG9iai5nZXQoInBhdGgiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_rule_src.py b/fireblocks/models/legacy_policy_rule_src.py index 9013783d..57147ade 100644 --- a/fireblocks/models/legacy_policy_rule_src.py +++ b/fireblocks/models/legacy_policy_rule_src.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from fireblocks.models.legacy_src_or_dest_attributes_inner import LegacySrcOrDestAttributesInner -from typing import Optional, Set -from typing_extensions import Self - -class LegacyPolicyRuleSrc(BaseModel): - """ - Defines source accounts the rule allows transfers to originate from - """ # noqa: E501 - ids: Optional[List[Annotated[List[LegacySrcOrDestAttributesInner], Field(min_length=1, max_length=3)]]] = Field(default=None, description="A set of ids in a tuple format") - __properties: ClassVar[List[str]] = ["ids"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleSrc from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in ids (list of list) - _items = [] - if self.ids: - for _item_ids in self.ids: - if _item_ids: - _items.append( - [_inner_item.to_dict() for _inner_item in _item_ids if _inner_item is not None] - ) - _dict['ids'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyPolicyRuleSrc from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "ids": [ - [LegacySrcOrDestAttributesInner.from_dict(_inner_item) for _inner_item in _item] - for _item in obj["ids"] - ] if obj.get("ids") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3NyY19vcl9kZXN0X2F0dHJpYnV0ZXNfaW5uZXIgaW1wb3J0IExlZ2FjeVNyY09yRGVzdEF0dHJpYnV0ZXNJbm5lcgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBMZWdhY3lQb2xpY3lSdWxlU3JjKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIERlZmluZXMgc291cmNlIGFjY291bnRzIHRoZSBydWxlIGFsbG93cyB0cmFuc2ZlcnMgdG8gb3JpZ2luYXRlIGZyb20KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkczogT3B0aW9uYWxbTGlzdFtBbm5vdGF0ZWRbTGlzdFtMZWdhY3lTcmNPckRlc3RBdHRyaWJ1dGVzSW5uZXJdLCBGaWVsZChtaW5fbGVuZ3RoPTEsIG1heF9sZW5ndGg9MyldXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBIHNldCBvZiBpZHMgaW4gYSB0dXBsZSBmb3JtYXQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZHMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVBvbGljeVJ1bGVTcmMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gaWRzIChsaXN0IG9mIGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmlkczoKICAgICAgICAgICAgZm9yIF9pdGVtX2lkcyBpbiBzZWxmLmlkczoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2lkczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKAogICAgICAgICAgICAgICAgICAgICAgICAgW19pbm5lcl9pdGVtLnRvX2RpY3QoKSBmb3IgX2lubmVyX2l0ZW0gaW4gX2l0ZW1faWRzIGlmIF9pbm5lcl9pdGVtIGlzIG5vdCBOb25lXQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgX2RpY3RbJ2lkcyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlU3JjIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkcyI6IFsKICAgICAgICAgICAgICAgICAgICBbTGVnYWN5U3JjT3JEZXN0QXR0cmlidXRlc0lubmVyLmZyb21fZGljdChfaW5uZXJfaXRlbSkgZm9yIF9pbm5lcl9pdGVtIGluIF9pdGVtXQogICAgICAgICAgICAgICAgICAgIGZvciBfaXRlbSBpbiBvYmpbImlkcyJdCiAgICAgICAgICAgICAgICBdIGlmIG9iai5nZXQoImlkcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_rules.py b/fireblocks/models/legacy_policy_rules.py index d8a6e84d..bd0aaf99 100644 --- a/fireblocks/models/legacy_policy_rules.py +++ b/fireblocks/models/legacy_policy_rules.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.legacy_policy_rule import LegacyPolicyRule -from typing import Optional, Set -from typing_extensions import Self - -class LegacyPolicyRules(BaseModel): - """ - LegacyPolicyRules - """ # noqa: E501 - rules: Optional[List[LegacyPolicyRule]] = Field(default=None, description="Policy rules") - __properties: ClassVar[List[str]] = ["rules"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyPolicyRules from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in rules (list) - _items = [] - if self.rules: - for _item_rules in self.rules: - if _item_rules: - _items.append(_item_rules.to_dict()) - _dict['rules'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyPolicyRules from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "rules": [LegacyPolicyRule.from_dict(_item) for _item in obj["rules"]] if obj.get("rules") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGUgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTGVnYWN5UG9saWN5UnVsZXMoQmFzZU1vZGVsKToKICAgICIiIgogICAgTGVnYWN5UG9saWN5UnVsZXMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHJ1bGVzOiBPcHRpb25hbFtMaXN0W0xlZ2FjeVBvbGljeVJ1bGVdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlBvbGljeSBydWxlcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInJ1bGVzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlcyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBydWxlcyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYucnVsZXM6CiAgICAgICAgICAgIGZvciBfaXRlbV9ydWxlcyBpbiBzZWxmLnJ1bGVzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fcnVsZXM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9ydWxlcy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydydWxlcyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lSdWxlcyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJydWxlcyI6IFtMZWdhY3lQb2xpY3lSdWxlLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsicnVsZXMiXV0gaWYgb2JqLmdldCgicnVsZXMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_src_or_dest_sub_type.py b/fireblocks/models/legacy_policy_src_or_dest_sub_type.py index cb828e71..72a0d1d3 100644 --- a/fireblocks/models/legacy_policy_src_or_dest_sub_type.py +++ b/fireblocks/models/legacy_policy_src_or_dest_sub_type.py @@ -1,41 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class LegacyPolicySrcOrDestSubType(str, Enum): - """ - * EXTERNAL - A whitelisted wallet assigned as external is typically used for addresses managed by your clients and counterparties * INTERNAL - A whitelisted wallet assigned as internal, is typically used for addresses that you control outside of your Fireblocks workspace * CONTRACT - A whitelisted wallet assigned as contract is for identifying and managing external smart contracts * EXCHANGETEST - Exchanges which operate only on testnet assets * \"*\" - All subtypes - """ - - """ - allowed enum values - """ - EXTERNAL = 'EXTERNAL' - INTERNAL = 'INTERNAL' - CONTRACT = 'CONTRACT' - EXCHANGETEST = 'EXCHANGETEST' - STAR = '*' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of LegacyPolicySrcOrDestSubType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBMZWdhY3lQb2xpY3lTcmNPckRlc3RTdWJUeXBlKHN0ciwgRW51bSk6CiAgICAiIiIKICAgICogRVhURVJOQUwgLSBBIHdoaXRlbGlzdGVkIHdhbGxldCBhc3NpZ25lZCBhcyBleHRlcm5hbCBpcyB0eXBpY2FsbHkgdXNlZCBmb3IgYWRkcmVzc2VzIG1hbmFnZWQgYnkgeW91ciBjbGllbnRzIGFuZCBjb3VudGVycGFydGllcyAqIElOVEVSTkFMIC0gQSB3aGl0ZWxpc3RlZCB3YWxsZXQgYXNzaWduZWQgYXMgaW50ZXJuYWwsIGlzIHR5cGljYWxseSB1c2VkIGZvciBhZGRyZXNzZXMgdGhhdCB5b3UgY29udHJvbCBvdXRzaWRlIG9mIHlvdXIgRmlyZWJsb2NrcyB3b3Jrc3BhY2UgKiBDT05UUkFDVCAtIEEgd2hpdGVsaXN0ZWQgd2FsbGV0IGFzc2lnbmVkIGFzIGNvbnRyYWN0IGlzIGZvciBpZGVudGlmeWluZyBhbmQgbWFuYWdpbmcgZXh0ZXJuYWwgc21hcnQgY29udHJhY3RzICogRVhDSEFOR0VURVNUIC0gRXhjaGFuZ2VzIHdoaWNoIG9wZXJhdGUgb25seSBvbiB0ZXN0bmV0IGFzc2V0cyAqIFwiKlwiIC0gQWxsIHN1YnR5cGVzIAogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIEVYVEVSTkFMID0gJ0VYVEVSTkFMJwogICAgSU5URVJOQUwgPSAnSU5URVJOQUwnCiAgICBDT05UUkFDVCA9ICdDT05UUkFDVCcKICAgIEVYQ0hBTkdFVEVTVCA9ICdFWENIQU5HRVRFU1QnCiAgICBTVEFSID0gJyonCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UG9saWN5U3JjT3JEZXN0U3ViVHlwZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_src_or_dest_type.py b/fireblocks/models/legacy_policy_src_or_dest_type.py index ba3112a4..e1dd01d6 100644 --- a/fireblocks/models/legacy_policy_src_or_dest_type.py +++ b/fireblocks/models/legacy_policy_src_or_dest_type.py @@ -1,44 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class LegacyPolicySrcOrDestType(str, Enum): - """ - * EXCHANGE - A third-party exchange account connected to your workspace * UNMANAGED - A unmanaged wallet outside of Fireblocks workspace * VAULT - An account in your Fireblocks Vault * NETWORK_CONNECTION - A connection in your Fireblocks network * COMPOUND - (deprecated) An asset retrieved by using the Compound DeFI protocol * FIAT_ACCOUNT - A third-party fiat account connected to your workspace * ONE_TIME_ADDRESS - A non-whitelisted asset from your Fireblocks Workspace * \"*\" - All types - """ - - """ - allowed enum values - """ - EXCHANGE = 'EXCHANGE' - UNMANAGED = 'UNMANAGED' - VAULT = 'VAULT' - NETWORK_CONNECTION = 'NETWORK_CONNECTION' - COMPOUND = 'COMPOUND' - FIAT_ACCOUNT = 'FIAT_ACCOUNT' - ONE_TIME_ADDRESS = 'ONE_TIME_ADDRESS' - STAR = '*' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of LegacyPolicySrcOrDestType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBMZWdhY3lQb2xpY3lTcmNPckRlc3RUeXBlKHN0ciwgRW51bSk6CiAgICAiIiIKICAgICogRVhDSEFOR0UgLSBBIHRoaXJkLXBhcnR5IGV4Y2hhbmdlIGFjY291bnQgY29ubmVjdGVkIHRvIHlvdXIgd29ya3NwYWNlICogVU5NQU5BR0VEIC0gQSB1bm1hbmFnZWQgd2FsbGV0IG91dHNpZGUgb2YgRmlyZWJsb2NrcyB3b3Jrc3BhY2UgKiBWQVVMVCAtIEFuIGFjY291bnQgaW4geW91ciBGaXJlYmxvY2tzIFZhdWx0ICogTkVUV09SS19DT05ORUNUSU9OIC0gQSBjb25uZWN0aW9uIGluIHlvdXIgRmlyZWJsb2NrcyBuZXR3b3JrICogQ09NUE9VTkQgLSAoZGVwcmVjYXRlZCkgQW4gYXNzZXQgcmV0cmlldmVkIGJ5IHVzaW5nIHRoZSBDb21wb3VuZCBEZUZJIHByb3RvY29sICogRklBVF9BQ0NPVU5UIC0gQSB0aGlyZC1wYXJ0eSBmaWF0IGFjY291bnQgY29ubmVjdGVkIHRvIHlvdXIgd29ya3NwYWNlICogT05FX1RJTUVfQUREUkVTUyAtIEEgbm9uLXdoaXRlbGlzdGVkIGFzc2V0IGZyb20geW91ciBGaXJlYmxvY2tzIFdvcmtzcGFjZSAqIFwiKlwiIC0gQWxsIHR5cGVzIAogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIEVYQ0hBTkdFID0gJ0VYQ0hBTkdFJwogICAgVU5NQU5BR0VEID0gJ1VOTUFOQUdFRCcKICAgIFZBVUxUID0gJ1ZBVUxUJwogICAgTkVUV09SS19DT05ORUNUSU9OID0gJ05FVFdPUktfQ09OTkVDVElPTicKICAgIENPTVBPVU5EID0gJ0NPTVBPVU5EJwogICAgRklBVF9BQ0NPVU5UID0gJ0ZJQVRfQUNDT1VOVCcKICAgIE9ORV9USU1FX0FERFJFU1MgPSAnT05FX1RJTUVfQUREUkVTUycKICAgIFNUQVIgPSAnKicKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lTcmNPckRlc3RUeXBlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_status.py b/fireblocks/models/legacy_policy_status.py index 348daf0f..b3f6a873 100644 --- a/fireblocks/models/legacy_policy_status.py +++ b/fireblocks/models/legacy_policy_status.py @@ -1,43 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class LegacyPolicyStatus(str, Enum): - """ - * SUCCESS - success * UNVALIDATED - not validated yet * INVALID_CONFIGURATION - at least one rule is invalid * PENDING - pending approval * PENDING_CONSOLE_APPROVAL - pending approval from the console app * AWAITING_QUORUM - pending quorum approval * UNHANDLED_ERROR - unhandled error - """ - - """ - allowed enum values - """ - SUCCESS = 'SUCCESS' - UNVALIDATED = 'UNVALIDATED' - INVALID_CONFIGURATION = 'INVALID_CONFIGURATION' - PENDING = 'PENDING' - PENDING_CONSOLE_APPROVAL = 'PENDING_CONSOLE_APPROVAL' - AWAITING_QUORUM = 'AWAITING_QUORUM' - UNHANDLED_ERROR = 'UNHANDLED_ERROR' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of LegacyPolicyStatus from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBMZWdhY3lQb2xpY3lTdGF0dXMoc3RyLCBFbnVtKToKICAgICIiIgogICAgKiBTVUNDRVNTIC0gc3VjY2VzcyAqIFVOVkFMSURBVEVEIC0gbm90IHZhbGlkYXRlZCB5ZXQgKiBJTlZBTElEX0NPTkZJR1VSQVRJT04gLSBhdCBsZWFzdCBvbmUgcnVsZSBpcyBpbnZhbGlkICogUEVORElORyAtIHBlbmRpbmcgYXBwcm92YWwgKiBQRU5ESU5HX0NPTlNPTEVfQVBQUk9WQUwgLSBwZW5kaW5nIGFwcHJvdmFsIGZyb20gdGhlIGNvbnNvbGUgYXBwICogQVdBSVRJTkdfUVVPUlVNIC0gcGVuZGluZyBxdW9ydW0gYXBwcm92YWwgKiBVTkhBTkRMRURfRVJST1IgLSB1bmhhbmRsZWQgZXJyb3IgCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgU1VDQ0VTUyA9ICdTVUNDRVNTJwogICAgVU5WQUxJREFURUQgPSAnVU5WQUxJREFURUQnCiAgICBJTlZBTElEX0NPTkZJR1VSQVRJT04gPSAnSU5WQUxJRF9DT05GSUdVUkFUSU9OJwogICAgUEVORElORyA9ICdQRU5ESU5HJwogICAgUEVORElOR19DT05TT0xFX0FQUFJPVkFMID0gJ1BFTkRJTkdfQ09OU09MRV9BUFBST1ZBTCcKICAgIEFXQUlUSU5HX1FVT1JVTSA9ICdBV0FJVElOR19RVU9SVU0nCiAgICBVTkhBTkRMRURfRVJST1IgPSAnVU5IQU5ETEVEX0VSUk9SJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVBvbGljeVN0YXR1cyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/legacy_policy_validation.py b/fireblocks/models/legacy_policy_validation.py index 33c636cd..abce643a 100644 --- a/fireblocks/models/legacy_policy_validation.py +++ b/fireblocks/models/legacy_policy_validation.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.legacy_policy_check_result import LegacyPolicyCheckResult -from typing import Optional, Set -from typing_extensions import Self - -class LegacyPolicyValidation(BaseModel): - """ - Policy validation object - """ # noqa: E501 - status: StrictStr = Field(description="Validation status") - check_result: LegacyPolicyCheckResult = Field(alias="checkResult") - __properties: ClassVar[List[str]] = ["status", "checkResult"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyPolicyValidation from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of check_result - if self.check_result: - _dict['checkResult'] = self.check_result.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyPolicyValidation from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "status": obj.get("status"), - "checkResult": LegacyPolicyCheckResult.from_dict(obj["checkResult"]) if obj.get("checkResult") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9jaGVja19yZXN1bHQgaW1wb3J0IExlZ2FjeVBvbGljeUNoZWNrUmVzdWx0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIExlZ2FjeVBvbGljeVZhbGlkYXRpb24oQmFzZU1vZGVsKToKICAgICIiIgogICAgUG9saWN5IHZhbGlkYXRpb24gb2JqZWN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzdGF0dXM6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJWYWxpZGF0aW9uIHN0YXR1cyIpCiAgICBjaGVja19yZXN1bHQ6IExlZ2FjeVBvbGljeUNoZWNrUmVzdWx0ID0gRmllbGQoYWxpYXM9ImNoZWNrUmVzdWx0IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3RhdHVzIiwgImNoZWNrUmVzdWx0Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lWYWxpZGF0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgY2hlY2tfcmVzdWx0CiAgICAgICAgaWYgc2VsZi5jaGVja19yZXN1bHQ6CiAgICAgICAgICAgIF9kaWN0WydjaGVja1Jlc3VsdCddID0gc2VsZi5jaGVja19yZXN1bHQudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMZWdhY3lQb2xpY3lWYWxpZGF0aW9uIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAiY2hlY2tSZXN1bHQiOiBMZWdhY3lQb2xpY3lDaGVja1Jlc3VsdC5mcm9tX2RpY3Qob2JqWyJjaGVja1Jlc3VsdCJdKSBpZiBvYmouZ2V0KCJjaGVja1Jlc3VsdCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/legacy_publish_draft_request.py b/fireblocks/models/legacy_publish_draft_request.py index 8c19dcab..37f1e66b 100644 --- a/fireblocks/models/legacy_publish_draft_request.py +++ b/fireblocks/models/legacy_publish_draft_request.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class LegacyPublishDraftRequest(BaseModel): - """ - LegacyPublishDraftRequest - """ # noqa: E501 - draft_id: Optional[StrictStr] = Field(default=None, description="draft unique identifier", alias="draftId") - __properties: ClassVar[List[str]] = ["draftId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyPublishDraftRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyPublishDraftRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "draftId": obj.get("draftId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBMZWdhY3lQdWJsaXNoRHJhZnRSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIExlZ2FjeVB1Ymxpc2hEcmFmdFJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGRyYWZ0X2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iZHJhZnQgdW5pcXVlIGlkZW50aWZpZXIiLCBhbGlhcz0iZHJhZnRJZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRyYWZ0SWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVB1Ymxpc2hEcmFmdFJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UHVibGlzaERyYWZ0UmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkcmFmdElkIjogb2JqLmdldCgiZHJhZnRJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/legacy_publish_result.py b/fireblocks/models/legacy_publish_result.py index 842b163a..527c6d88 100644 --- a/fireblocks/models/legacy_publish_result.py +++ b/fireblocks/models/legacy_publish_result.py @@ -1,111 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.legacy_policy_check_result import LegacyPolicyCheckResult -from fireblocks.models.legacy_policy_metadata import LegacyPolicyMetadata -from fireblocks.models.legacy_policy_rule import LegacyPolicyRule -from fireblocks.models.legacy_policy_status import LegacyPolicyStatus -from typing import Optional, Set -from typing_extensions import Self - -class LegacyPublishResult(BaseModel): - """ - Response object of the publish policy operation - """ # noqa: E501 - status: LegacyPolicyStatus - rules: List[LegacyPolicyRule] - check_result: LegacyPolicyCheckResult = Field(alias="checkResult") - metadata: LegacyPolicyMetadata - __properties: ClassVar[List[str]] = ["status", "rules", "checkResult", "metadata"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LegacyPublishResult from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in rules (list) - _items = [] - if self.rules: - for _item_rules in self.rules: - if _item_rules: - _items.append(_item_rules.to_dict()) - _dict['rules'] = _items - # override the default output from pydantic by calling `to_dict()` of check_result - if self.check_result: - _dict['checkResult'] = self.check_result.to_dict() - # override the default output from pydantic by calling `to_dict()` of metadata - if self.metadata: - _dict['metadata'] = self.metadata.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LegacyPublishResult from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "status": obj.get("status"), - "rules": [LegacyPolicyRule.from_dict(_item) for _item in obj["rules"]] if obj.get("rules") is not None else None, - "checkResult": LegacyPolicyCheckResult.from_dict(obj["checkResult"]) if obj.get("checkResult") is not None else None, - "metadata": LegacyPolicyMetadata.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfY2hlY2tfcmVzdWx0IGltcG9ydCBMZWdhY3lQb2xpY3lDaGVja1Jlc3VsdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfbWV0YWRhdGEgaW1wb3J0IExlZ2FjeVBvbGljeU1ldGFkYXRhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlIGltcG9ydCBMZWdhY3lQb2xpY3lSdWxlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9zdGF0dXMgaW1wb3J0IExlZ2FjeVBvbGljeVN0YXR1cwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBMZWdhY3lQdWJsaXNoUmVzdWx0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFJlc3BvbnNlIG9iamVjdCBvZiB0aGUgcHVibGlzaCBwb2xpY3kgb3BlcmF0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzdGF0dXM6IExlZ2FjeVBvbGljeVN0YXR1cwogICAgcnVsZXM6IExpc3RbTGVnYWN5UG9saWN5UnVsZV0KICAgIGNoZWNrX3Jlc3VsdDogTGVnYWN5UG9saWN5Q2hlY2tSZXN1bHQgPSBGaWVsZChhbGlhcz0iY2hlY2tSZXN1bHQiKQogICAgbWV0YWRhdGE6IExlZ2FjeVBvbGljeU1ldGFkYXRhCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInN0YXR1cyIsICJydWxlcyIsICJjaGVja1Jlc3VsdCIsICJtZXRhZGF0YSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGVnYWN5UHVibGlzaFJlc3VsdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBydWxlcyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYucnVsZXM6CiAgICAgICAgICAgIGZvciBfaXRlbV9ydWxlcyBpbiBzZWxmLnJ1bGVzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fcnVsZXM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9ydWxlcy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydydWxlcyddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGNoZWNrX3Jlc3VsdAogICAgICAgIGlmIHNlbGYuY2hlY2tfcmVzdWx0OgogICAgICAgICAgICBfZGljdFsnY2hlY2tSZXN1bHQnXSA9IHNlbGYuY2hlY2tfcmVzdWx0LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBtZXRhZGF0YQogICAgICAgIGlmIHNlbGYubWV0YWRhdGE6CiAgICAgICAgICAgIF9kaWN0WydtZXRhZGF0YSddID0gc2VsZi5tZXRhZGF0YS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExlZ2FjeVB1Ymxpc2hSZXN1bHQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3RhdHVzIjogb2JqLmdldCgic3RhdHVzIiksCiAgICAgICAgICAgICJydWxlcyI6IFtMZWdhY3lQb2xpY3lSdWxlLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsicnVsZXMiXV0gaWYgb2JqLmdldCgicnVsZXMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJjaGVja1Jlc3VsdCI6IExlZ2FjeVBvbGljeUNoZWNrUmVzdWx0LmZyb21fZGljdChvYmpbImNoZWNrUmVzdWx0Il0pIGlmIG9iai5nZXQoImNoZWNrUmVzdWx0IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibWV0YWRhdGEiOiBMZWdhY3lQb2xpY3lNZXRhZGF0YS5mcm9tX2RpY3Qob2JqWyJtZXRhZGF0YSJdKSBpZiBvYmouZ2V0KCJtZXRhZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/legacy_src_or_dest_attributes_inner.py b/fireblocks/models/legacy_src_or_dest_attributes_inner.py index 197de129..c0feb995 100644 --- a/fireblocks/models/legacy_src_or_dest_attributes_inner.py +++ b/fireblocks/models/legacy_src_or_dest_attributes_inner.py @@ -1,152 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -from inspect import getfullargspec -import json -import pprint -import re # noqa: F401 -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Optional -from fireblocks.models.legacy_policy_src_or_dest_sub_type import LegacyPolicySrcOrDestSubType -from fireblocks.models.legacy_policy_src_or_dest_type import LegacyPolicySrcOrDestType -from typing import Union, Any, List, Set, TYPE_CHECKING, Optional, Dict -from typing_extensions import Literal, Self -from pydantic import Field - -LEGACYSRCORDESTATTRIBUTESINNER_ANY_OF_SCHEMAS = ["LegacyPolicySrcOrDestSubType", "LegacyPolicySrcOrDestType", "str"] - -class LegacySrcOrDestAttributesInner(BaseModel): - """ - LegacySrcOrDestAttributesInner - """ - - # data type: str - anyof_schema_1_validator: Optional[StrictStr] = Field(default=None, description="Defines the account id, options are * \"*\" - All accounts * Specific account id ") - # data type: LegacyPolicySrcOrDestType - anyof_schema_2_validator: Optional[LegacyPolicySrcOrDestType] = None - # data type: LegacyPolicySrcOrDestSubType - anyof_schema_3_validator: Optional[LegacyPolicySrcOrDestSubType] = None - if TYPE_CHECKING: - actual_instance: Optional[Union[LegacyPolicySrcOrDestSubType, LegacyPolicySrcOrDestType, str]] = None - else: - actual_instance: Any = None - any_of_schemas: Set[str] = { "LegacyPolicySrcOrDestSubType", "LegacyPolicySrcOrDestType", "str" } - - model_config = { - "validate_assignment": True, - "protected_namespaces": (), - } - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_anyof(cls, v): - instance = LegacySrcOrDestAttributesInner.model_construct() - error_messages = [] - # validate data type: str - try: - instance.anyof_schema_1_validator = v - return v - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # validate data type: LegacyPolicySrcOrDestType - if not isinstance(v, LegacyPolicySrcOrDestType): - error_messages.append(f"Error! Input type `{type(v)}` is not `LegacyPolicySrcOrDestType`") - else: - return v - - # validate data type: LegacyPolicySrcOrDestSubType - if not isinstance(v, LegacyPolicySrcOrDestSubType): - error_messages.append(f"Error! Input type `{type(v)}` is not `LegacyPolicySrcOrDestSubType`") - else: - return v - - if error_messages: - # no match - raise ValueError("No match found when setting the actual_instance in LegacySrcOrDestAttributesInner with anyOf schemas: LegacyPolicySrcOrDestSubType, LegacyPolicySrcOrDestType, str. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Dict[str, Any]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - # deserialize data into str - try: - # validation - instance.anyof_schema_1_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.anyof_schema_1_validator - return instance - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # anyof_schema_2_validator: Optional[LegacyPolicySrcOrDestType] = None - try: - instance.actual_instance = LegacyPolicySrcOrDestType.from_json(json_str) - return instance - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # anyof_schema_3_validator: Optional[LegacyPolicySrcOrDestSubType] = None - try: - instance.actual_instance = LegacyPolicySrcOrDestSubType.from_json(json_str) - return instance - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if error_messages: - # no match - raise ValueError("No match found when deserializing the JSON string into LegacySrcOrDestAttributesInner with anyOf schemas: LegacyPolicySrcOrDestSubType, LegacyPolicySrcOrDestType, str. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], LegacyPolicySrcOrDestSubType, LegacyPolicySrcOrDestType, str]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKZnJvbSBpbnNwZWN0IGltcG9ydCBnZXRmdWxsYXJnc3BlYwppbXBvcnQganNvbgppbXBvcnQgcHByaW50CmltcG9ydCByZSAgIyBub3FhOiBGNDAxCmZyb20gcHlkYW50aWMgaW1wb3J0IEJhc2VNb2RlbCwgQ29uZmlnRGljdCwgRmllbGQsIFN0cmljdFN0ciwgVmFsaWRhdGlvbkVycm9yLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9zcmNfb3JfZGVzdF9zdWJfdHlwZSBpbXBvcnQgTGVnYWN5UG9saWN5U3JjT3JEZXN0U3ViVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfc3JjX29yX2Rlc3RfdHlwZSBpbXBvcnQgTGVnYWN5UG9saWN5U3JjT3JEZXN0VHlwZQpmcm9tIHR5cGluZyBpbXBvcnQgVW5pb24sIEFueSwgTGlzdCwgU2V0LCBUWVBFX0NIRUNLSU5HLCBPcHRpb25hbCwgRGljdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBMaXRlcmFsLCBTZWxmCmZyb20gcHlkYW50aWMgaW1wb3J0IEZpZWxkCgpMRUdBQ1lTUkNPUkRFU1RBVFRSSUJVVEVTSU5ORVJfQU5ZX09GX1NDSEVNQVMgPSBbIkxlZ2FjeVBvbGljeVNyY09yRGVzdFN1YlR5cGUiLCAiTGVnYWN5UG9saWN5U3JjT3JEZXN0VHlwZSIsICJzdHIiXQoKY2xhc3MgTGVnYWN5U3JjT3JEZXN0QXR0cmlidXRlc0lubmVyKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIExlZ2FjeVNyY09yRGVzdEF0dHJpYnV0ZXNJbm5lcgogICAgIiIiCgogICAgIyBkYXRhIHR5cGU6IHN0cgogICAgYW55b2Zfc2NoZW1hXzFfdmFsaWRhdG9yOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVmaW5lcyB0aGUgYWNjb3VudCBpZCwgb3B0aW9ucyBhcmUgKiBcIipcIiAtIEFsbCBhY2NvdW50cyAqIFNwZWNpZmljIGFjY291bnQgaWQgIikKICAgICMgZGF0YSB0eXBlOiBMZWdhY3lQb2xpY3lTcmNPckRlc3RUeXBlCiAgICBhbnlvZl9zY2hlbWFfMl92YWxpZGF0b3I6IE9wdGlvbmFsW0xlZ2FjeVBvbGljeVNyY09yRGVzdFR5cGVdID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IExlZ2FjeVBvbGljeVNyY09yRGVzdFN1YlR5cGUKICAgIGFueW9mX3NjaGVtYV8zX3ZhbGlkYXRvcjogT3B0aW9uYWxbTGVnYWN5UG9saWN5U3JjT3JEZXN0U3ViVHlwZV0gPSBOb25lCiAgICBpZiBUWVBFX0NIRUNLSU5HOgogICAgICAgIGFjdHVhbF9pbnN0YW5jZTogT3B0aW9uYWxbVW5pb25bTGVnYWN5UG9saWN5U3JjT3JEZXN0U3ViVHlwZSwgTGVnYWN5UG9saWN5U3JjT3JEZXN0VHlwZSwgc3RyXV0gPSBOb25lCiAgICBlbHNlOgogICAgICAgIGFjdHVhbF9pbnN0YW5jZTogQW55ID0gTm9uZQogICAgYW55X29mX3NjaGVtYXM6IFNldFtzdHJdID0geyAiTGVnYWN5UG9saWN5U3JjT3JEZXN0U3ViVHlwZSIsICJMZWdhY3lQb2xpY3lTcmNPckRlc3RUeXBlIiwgInN0ciIgfQoKICAgIG1vZGVsX2NvbmZpZyA9IHsKICAgICAgICAidmFsaWRhdGVfYXNzaWdubWVudCI6IFRydWUsCiAgICAgICAgInByb3RlY3RlZF9uYW1lc3BhY2VzIjogKCksCiAgICB9CgogICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncykgLT4gTm9uZToKICAgICAgICBpZiBhcmdzOgogICAgICAgICAgICBpZiBsZW4oYXJncykgPiAxOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBvbmx5IDEgaXMgYWxsb3dlZCB0byBzZXQgYGFjdHVhbF9pbnN0YW5jZWAiKQogICAgICAgICAgICBpZiBrd2FyZ3M6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIGtleXdvcmQgYXJndW1lbnRzIGNhbm5vdCBiZSB1c2VkLiIpCiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oYWN0dWFsX2luc3RhbmNlPWFyZ3NbMF0pCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhY3R1YWxfaW5zdGFuY2UnKQogICAgZGVmIGFjdHVhbF9pbnN0YW5jZV9tdXN0X3ZhbGlkYXRlX2FueW9mKGNscywgdik6CiAgICAgICAgaW5zdGFuY2UgPSBMZWdhY3lTcmNPckRlc3RBdHRyaWJ1dGVzSW5uZXIubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IHN0cgogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYW55b2Zfc2NoZW1hXzFfdmFsaWRhdG9yID0gdgogICAgICAgICAgICByZXR1cm4gdgogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBMZWdhY3lQb2xpY3lTcmNPckRlc3RUeXBlCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgTGVnYWN5UG9saWN5U3JjT3JEZXN0VHlwZSk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgTGVnYWN5UG9saWN5U3JjT3JEZXN0VHlwZWAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBMZWdhY3lQb2xpY3lTcmNPckRlc3RTdWJUeXBlCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgTGVnYWN5UG9saWN5U3JjT3JEZXN0U3ViVHlwZSk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgTGVnYWN5UG9saWN5U3JjT3JEZXN0U3ViVHlwZWAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgICAgIGlmIGVycm9yX21lc3NhZ2VzOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gc2V0dGluZyB0aGUgYWN0dWFsX2luc3RhbmNlIGluIExlZ2FjeVNyY09yRGVzdEF0dHJpYnV0ZXNJbm5lciB3aXRoIGFueU9mIHNjaGVtYXM6IExlZ2FjeVBvbGljeVNyY09yRGVzdFN1YlR5cGUsIExlZ2FjeVBvbGljeVNyY09yRGVzdFR5cGUsIHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIHYKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IERpY3Rbc3RyLCBBbnldKSAtPiBTZWxmOgogICAgICAgIHJldHVybiBjbHMuZnJvbV9qc29uKGpzb24uZHVtcHMob2JqKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIlJldHVybnMgdGhlIG9iamVjdCByZXByZXNlbnRlZCBieSB0aGUganNvbiBzdHJpbmciIiIKICAgICAgICBpbnN0YW5jZSA9IGNscy5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBzdHIKICAgICAgICB0cnk6CiAgICAgICAgICAgICMgdmFsaWRhdGlvbgogICAgICAgICAgICBpbnN0YW5jZS5hbnlvZl9zY2hlbWFfMV92YWxpZGF0b3IgPSBqc29uLmxvYWRzKGpzb25fc3RyKQogICAgICAgICAgICAjIGFzc2lnbiB2YWx1ZSB0byBhY3R1YWxfaW5zdGFuY2UKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gaW5zdGFuY2UuYW55b2Zfc2NoZW1hXzFfdmFsaWRhdG9yCiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgYW55b2Zfc2NoZW1hXzJfdmFsaWRhdG9yOiBPcHRpb25hbFtMZWdhY3lQb2xpY3lTcmNPckRlc3RUeXBlXSA9IE5vbmUKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IExlZ2FjeVBvbGljeVNyY09yRGVzdFR5cGUuZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBhbnlvZl9zY2hlbWFfM192YWxpZGF0b3I6IE9wdGlvbmFsW0xlZ2FjeVBvbGljeVNyY09yRGVzdFN1YlR5cGVdID0gTm9uZQogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gTGVnYWN5UG9saWN5U3JjT3JEZXN0U3ViVHlwZS5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKCiAgICAgICAgaWYgZXJyb3JfbWVzc2FnZXM6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIExlZ2FjeVNyY09yRGVzdEF0dHJpYnV0ZXNJbm5lciB3aXRoIGFueU9mIHNjaGVtYXM6IExlZ2FjeVBvbGljeVNyY09yRGVzdFN1YlR5cGUsIExlZ2FjeVBvbGljeVNyY09yRGVzdFR5cGUsIHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiAibnVsbCIKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2pzb24iKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbik6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKCkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLmFjdHVhbF9pbnN0YW5jZSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBPcHRpb25hbFtVbmlvbltEaWN0W3N0ciwgQW55XSwgTGVnYWN5UG9saWN5U3JjT3JEZXN0U3ViVHlwZSwgTGVnYWN5UG9saWN5U3JjT3JEZXN0VHlwZSwgc3RyXV06CiAgICAgICAgIiIiUmV0dXJucyB0aGUgZGljdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2RpY3QiKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCk6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KCkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/linked_tokens_count.py b/fireblocks/models/linked_tokens_count.py index 1225be5f..8298b90b 100644 --- a/fireblocks/models/linked_tokens_count.py +++ b/fireblocks/models/linked_tokens_count.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class LinkedTokensCount(BaseModel): - """ - LinkedTokensCount - """ # noqa: E501 - count: Union[StrictFloat, StrictInt] = Field(description="The total count of linked tokens") - __properties: ClassVar[List[str]] = ["count"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LinkedTokensCount from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LinkedTokensCount from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "count": obj.get("count") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgVW5pb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTGlua2VkVG9rZW5zQ291bnQoQmFzZU1vZGVsKToKICAgICIiIgogICAgTGlua2VkVG9rZW5zQ291bnQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGNvdW50OiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdG90YWwgY291bnQgb2YgbGlua2VkIHRva2VucyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImNvdW50Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMaW5rZWRUb2tlbnNDb3VudCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMaW5rZWRUb2tlbnNDb3VudCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJjb3VudCI6IG9iai5nZXQoImNvdW50IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/list_assets_response.py b/fireblocks/models/list_assets_response.py index 4a878e80..f107c8e5 100644 --- a/fireblocks/models/list_assets_response.py +++ b/fireblocks/models/list_assets_response.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.asset import Asset -from typing import Optional, Set -from typing_extensions import Self - -class ListAssetsResponse(BaseModel): - """ - ListAssetsResponse - """ # noqa: E501 - data: List[Asset] = Field(description="The data of the current page") - next: Optional[StrictStr] = Field(description="Cursor to the next page") - __properties: ClassVar[List[str]] = ["data", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ListAssetsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # set to None if next (nullable) is None - # and model_fields_set contains the field - if self.next is None and "next" in self.model_fields_set: - _dict['next'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ListAssetsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [Asset.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0IGltcG9ydCBBc3NldApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBMaXN0QXNzZXRzUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgTGlzdEFzc2V0c1Jlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkYXRhOiBMaXN0W0Fzc2V0XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGF0YSBvZiB0aGUgY3VycmVudCBwYWdlIikKICAgIG5leHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZXNjcmlwdGlvbj0iQ3Vyc29yIHRvIHRoZSBuZXh0IHBhZ2UiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJkYXRhIiwgIm5leHQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExpc3RBc3NldHNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBkYXRhIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5kYXRhOgogICAgICAgICAgICBmb3IgX2l0ZW1fZGF0YSBpbiBzZWxmLmRhdGE6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9kYXRhOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fZGF0YS50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydkYXRhJ10gPSBfaXRlbXMKICAgICAgICAjIHNldCB0byBOb25lIGlmIG5leHQgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLm5leHQgaXMgTm9uZSBhbmQgIm5leHQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ25leHQnXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMaXN0QXNzZXRzUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZGF0YSI6IFtBc3NldC5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImRhdGEiXV0gaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm5leHQiOiBvYmouZ2V0KCJuZXh0IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/list_blockchains_response.py b/fireblocks/models/list_blockchains_response.py index e280f46a..4cdd0991 100644 --- a/fireblocks/models/list_blockchains_response.py +++ b/fireblocks/models/list_blockchains_response.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.blockchain_response import BlockchainResponse -from typing import Optional, Set -from typing_extensions import Self - -class ListBlockchainsResponse(BaseModel): - """ - ListBlockchainsResponse - """ # noqa: E501 - data: List[BlockchainResponse] = Field(description="The data of the current page") - next: Optional[StrictStr] = Field(description="Cursor to the next page") - __properties: ClassVar[List[str]] = ["data", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ListBlockchainsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # set to None if next (nullable) is None - # and model_fields_set contains the field - if self.next is None and "next" in self.model_fields_set: - _dict['next'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ListBlockchainsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [BlockchainResponse.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fcmVzcG9uc2UgaW1wb3J0IEJsb2NrY2hhaW5SZXNwb25zZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBMaXN0QmxvY2tjaGFpbnNSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBMaXN0QmxvY2tjaGFpbnNSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGF0YTogTGlzdFtCbG9ja2NoYWluUmVzcG9uc2VdID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBkYXRhIG9mIHRoZSBjdXJyZW50IHBhZ2UiKQogICAgbmV4dDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJDdXJzb3IgdG8gdGhlIG5leHQgcGFnZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRhdGEiLCAibmV4dCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGlzdEJsb2NrY2hhaW5zUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGF0YSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgZm9yIF9pdGVtX2RhdGEgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZGF0YToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2RhdGEudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gX2l0ZW1zCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBuZXh0IChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5uZXh0IGlzIE5vbmUgYW5kICJuZXh0IiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WyduZXh0J10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGlzdEJsb2NrY2hhaW5zUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZGF0YSI6IFtCbG9ja2NoYWluUmVzcG9uc2UuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJkYXRhIl1dIGlmIG9iai5nZXQoImRhdGEiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJuZXh0Ijogb2JqLmdldCgibmV4dCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/list_owned_collections_response.py b/fireblocks/models/list_owned_collections_response.py index 8b918d8f..b3ec5593 100644 --- a/fireblocks/models/list_owned_collections_response.py +++ b/fireblocks/models/list_owned_collections_response.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.collection_ownership_response import CollectionOwnershipResponse -from fireblocks.models.paging import Paging -from typing import Optional, Set -from typing_extensions import Self - -class ListOwnedCollectionsResponse(BaseModel): - """ - ListOwnedCollectionsResponse - """ # noqa: E501 - paging: Optional[Paging] = None - data: Optional[List[CollectionOwnershipResponse]] = None - __properties: ClassVar[List[str]] = ["paging", "data"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ListOwnedCollectionsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of paging - if self.paging: - _dict['paging'] = self.paging.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ListOwnedCollectionsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "paging": Paging.from_dict(obj["paging"]) if obj.get("paging") is not None else None, - "data": [CollectionOwnershipResponse.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fb3duZXJzaGlwX3Jlc3BvbnNlIGltcG9ydCBDb2xsZWN0aW9uT3duZXJzaGlwUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYWdpbmcgaW1wb3J0IFBhZ2luZwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBMaXN0T3duZWRDb2xsZWN0aW9uc1Jlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIExpc3RPd25lZENvbGxlY3Rpb25zUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHBhZ2luZzogT3B0aW9uYWxbUGFnaW5nXSA9IE5vbmUKICAgIGRhdGE6IE9wdGlvbmFsW0xpc3RbQ29sbGVjdGlvbk93bmVyc2hpcFJlc3BvbnNlXV0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInBhZ2luZyIsICJkYXRhIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMaXN0T3duZWRDb2xsZWN0aW9uc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcGFnaW5nCiAgICAgICAgaWYgc2VsZi5wYWdpbmc6CiAgICAgICAgICAgIF9kaWN0WydwYWdpbmcnXSA9IHNlbGYucGFnaW5nLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGF0YSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgZm9yIF9pdGVtX2RhdGEgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZGF0YToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2RhdGEudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMaXN0T3duZWRDb2xsZWN0aW9uc1Jlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInBhZ2luZyI6IFBhZ2luZy5mcm9tX2RpY3Qob2JqWyJwYWdpbmciXSkgaWYgb2JqLmdldCgicGFnaW5nIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZGF0YSI6IFtDb2xsZWN0aW9uT3duZXJzaGlwUmVzcG9uc2UuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJkYXRhIl1dIGlmIG9iai5nZXQoImRhdGEiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/list_owned_tokens_response.py b/fireblocks/models/list_owned_tokens_response.py index 02a35d14..483bf5d9 100644 --- a/fireblocks/models/list_owned_tokens_response.py +++ b/fireblocks/models/list_owned_tokens_response.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.paging import Paging -from fireblocks.models.token_response import TokenResponse -from typing import Optional, Set -from typing_extensions import Self - -class ListOwnedTokensResponse(BaseModel): - """ - ListOwnedTokensResponse - """ # noqa: E501 - paging: Optional[Paging] = None - data: Optional[List[TokenResponse]] = None - __properties: ClassVar[List[str]] = ["paging", "data"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ListOwnedTokensResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of paging - if self.paging: - _dict['paging'] = self.paging.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ListOwnedTokensResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "paging": Paging.from_dict(obj["paging"]) if obj.get("paging") is not None else None, - "data": [TokenResponse.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhZ2luZyBpbXBvcnQgUGFnaW5nCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fcmVzcG9uc2UgaW1wb3J0IFRva2VuUmVzcG9uc2UKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTGlzdE93bmVkVG9rZW5zUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgTGlzdE93bmVkVG9rZW5zUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHBhZ2luZzogT3B0aW9uYWxbUGFnaW5nXSA9IE5vbmUKICAgIGRhdGE6IE9wdGlvbmFsW0xpc3RbVG9rZW5SZXNwb25zZV1dID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJwYWdpbmciLCAiZGF0YSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTGlzdE93bmVkVG9rZW5zUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBwYWdpbmcKICAgICAgICBpZiBzZWxmLnBhZ2luZzoKICAgICAgICAgICAgX2RpY3RbJ3BhZ2luZyddID0gc2VsZi5wYWdpbmcudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBkYXRhIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5kYXRhOgogICAgICAgICAgICBmb3IgX2l0ZW1fZGF0YSBpbiBzZWxmLmRhdGE6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9kYXRhOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fZGF0YS50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydkYXRhJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExpc3RPd25lZFRva2Vuc1Jlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInBhZ2luZyI6IFBhZ2luZy5mcm9tX2RpY3Qob2JqWyJwYWdpbmciXSkgaWYgb2JqLmdldCgicGFnaW5nIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZGF0YSI6IFtUb2tlblJlc3BvbnNlLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiZGF0YSJdXSBpZiBvYmouZ2V0KCJkYXRhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/local_bank_transfer_africa_address.py b/fireblocks/models/local_bank_transfer_africa_address.py index 913ea329..cdcbede7 100644 --- a/fireblocks/models/local_bank_transfer_africa_address.py +++ b/fireblocks/models/local_bank_transfer_africa_address.py @@ -1,114 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from fireblocks.models.account_holder_details import AccountHolderDetails -from fireblocks.models.payment_redirect import PaymentRedirect -from typing import Optional, Set -from typing_extensions import Self - -class LocalBankTransferAfricaAddress(BaseModel): - """ - LocalBankTransferAfricaAddress - """ # noqa: E501 - account_holder: AccountHolderDetails = Field(alias="accountHolder") - account_number: Annotated[str, Field(strict=True)] = Field(alias="accountNumber") - bank_name: StrictStr = Field(description="Name of the bank", alias="bankName") - bank_code: StrictStr = Field(description="Internal bank identifier", alias="bankCode") - success_payment_instruction_redirect_url: Optional[StrictStr] = Field(default=None, description="The URL to redirect to after the payment instruction is successful", alias="successPaymentInstructionRedirectUrl") - payment_redirect: Optional[PaymentRedirect] = Field(default=None, alias="paymentRedirect") - __properties: ClassVar[List[str]] = ["accountHolder", "accountNumber", "bankName", "bankCode", "successPaymentInstructionRedirectUrl", "paymentRedirect"] - - @field_validator('account_number') - def account_number_validate_regular_expression(cls, value): - """Validates the regular expression""" - if not re.match(r"^\d{4,17}$", value): - raise ValueError(r"must validate the regular expression /^\d{4,17}$/") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LocalBankTransferAfricaAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of account_holder - if self.account_holder: - _dict['accountHolder'] = self.account_holder.to_dict() - # override the default output from pydantic by calling `to_dict()` of payment_redirect - if self.payment_redirect: - _dict['paymentRedirect'] = self.payment_redirect.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LocalBankTransferAfricaAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None, - "accountNumber": obj.get("accountNumber"), - "bankName": obj.get("bankName"), - "bankCode": obj.get("bankCode"), - "successPaymentInstructionRedirectUrl": obj.get("successPaymentInstructionRedirectUrl"), - "paymentRedirect": PaymentRedirect.from_dict(obj["paymentRedirect"]) if obj.get("paymentRedirect") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaG9sZGVyX2RldGFpbHMgaW1wb3J0IEFjY291bnRIb2xkZXJEZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5bWVudF9yZWRpcmVjdCBpbXBvcnQgUGF5bWVudFJlZGlyZWN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIExvY2FsQmFua1RyYW5zZmVyQWZyaWNhQWRkcmVzcyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBMb2NhbEJhbmtUcmFuc2ZlckFmcmljYUFkZHJlc3MKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFjY291bnRfaG9sZGVyOiBBY2NvdW50SG9sZGVyRGV0YWlscyA9IEZpZWxkKGFsaWFzPSJhY2NvdW50SG9sZGVyIikKICAgIGFjY291bnRfbnVtYmVyOiBBbm5vdGF0ZWRbc3RyLCBGaWVsZChzdHJpY3Q9VHJ1ZSldID0gRmllbGQoYWxpYXM9ImFjY291bnROdW1iZXIiKQogICAgYmFua19uYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iTmFtZSBvZiB0aGUgYmFuayIsIGFsaWFzPSJiYW5rTmFtZSIpCiAgICBiYW5rX2NvZGU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJbnRlcm5hbCBiYW5rIGlkZW50aWZpZXIiLCBhbGlhcz0iYmFua0NvZGUiKQogICAgc3VjY2Vzc19wYXltZW50X2luc3RydWN0aW9uX3JlZGlyZWN0X3VybDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBVUkwgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgdGhlIHBheW1lbnQgaW5zdHJ1Y3Rpb24gaXMgc3VjY2Vzc2Z1bCIsIGFsaWFzPSJzdWNjZXNzUGF5bWVudEluc3RydWN0aW9uUmVkaXJlY3RVcmwiKQogICAgcGF5bWVudF9yZWRpcmVjdDogT3B0aW9uYWxbUGF5bWVudFJlZGlyZWN0XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InBheW1lbnRSZWRpcmVjdCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFjY291bnRIb2xkZXIiLCAiYWNjb3VudE51bWJlciIsICJiYW5rTmFtZSIsICJiYW5rQ29kZSIsICJzdWNjZXNzUGF5bWVudEluc3RydWN0aW9uUmVkaXJlY3RVcmwiLCAicGF5bWVudFJlZGlyZWN0Il0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhY2NvdW50X251bWJlcicpCiAgICBkZWYgYWNjb3VudF9udW1iZXJfdmFsaWRhdGVfcmVndWxhcl9leHByZXNzaW9uKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgcmVndWxhciBleHByZXNzaW9uIiIiCiAgICAgICAgaWYgbm90IHJlLm1hdGNoKHIiXlxkezQsMTd9JCIsIHZhbHVlKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihyIm11c3QgdmFsaWRhdGUgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiAvXlxkezQsMTd9JC8iKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExvY2FsQmFua1RyYW5zZmVyQWZyaWNhQWRkcmVzcyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFjY291bnRfaG9sZGVyCiAgICAgICAgaWYgc2VsZi5hY2NvdW50X2hvbGRlcjoKICAgICAgICAgICAgX2RpY3RbJ2FjY291bnRIb2xkZXInXSA9IHNlbGYuYWNjb3VudF9ob2xkZXIudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHBheW1lbnRfcmVkaXJlY3QKICAgICAgICBpZiBzZWxmLnBheW1lbnRfcmVkaXJlY3Q6CiAgICAgICAgICAgIF9kaWN0WydwYXltZW50UmVkaXJlY3QnXSA9IHNlbGYucGF5bWVudF9yZWRpcmVjdC50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIExvY2FsQmFua1RyYW5zZmVyQWZyaWNhQWRkcmVzcyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyIjogQWNjb3VudEhvbGRlckRldGFpbHMuZnJvbV9kaWN0KG9ialsiYWNjb3VudEhvbGRlciJdKSBpZiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiYWNjb3VudE51bWJlciI6IG9iai5nZXQoImFjY291bnROdW1iZXIiKSwKICAgICAgICAgICAgImJhbmtOYW1lIjogb2JqLmdldCgiYmFua05hbWUiKSwKICAgICAgICAgICAgImJhbmtDb2RlIjogb2JqLmdldCgiYmFua0NvZGUiKSwKICAgICAgICAgICAgInN1Y2Nlc3NQYXltZW50SW5zdHJ1Y3Rpb25SZWRpcmVjdFVybCI6IG9iai5nZXQoInN1Y2Nlc3NQYXltZW50SW5zdHJ1Y3Rpb25SZWRpcmVjdFVybCIpLAogICAgICAgICAgICAicGF5bWVudFJlZGlyZWN0IjogUGF5bWVudFJlZGlyZWN0LmZyb21fZGljdChvYmpbInBheW1lbnRSZWRpcmVjdCJdKSBpZiBvYmouZ2V0KCJwYXltZW50UmVkaXJlY3QiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/local_bank_transfer_africa_destination.py b/fireblocks/models/local_bank_transfer_africa_destination.py index 3ef4ae3a..2cc54876 100644 --- a/fireblocks/models/local_bank_transfer_africa_destination.py +++ b/fireblocks/models/local_bank_transfer_africa_destination.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from fireblocks.models.local_bank_transfer_africa_address import LocalBankTransferAfricaAddress -from typing import Optional, Set -from typing_extensions import Self - -class LocalBankTransferAfricaDestination(BaseModel): - """ - LocalBankTransferAfricaDestination - """ # noqa: E501 - type: StrictStr - address: LocalBankTransferAfricaAddress - __properties: ClassVar[List[str]] = ["type", "address"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['LOCAL_BANK_TRANSFER']): - raise ValueError("must be one of enum values ('LOCAL_BANK_TRANSFER')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of LocalBankTransferAfricaDestination from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of address - if self.address: - _dict['address'] = self.address.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of LocalBankTransferAfricaDestination from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "address": LocalBankTransferAfricaAddress.from_dict(obj["address"]) if obj.get("address") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxvY2FsX2JhbmtfdHJhbnNmZXJfYWZyaWNhX2FkZHJlc3MgaW1wb3J0IExvY2FsQmFua1RyYW5zZmVyQWZyaWNhQWRkcmVzcwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBMb2NhbEJhbmtUcmFuc2ZlckFmcmljYURlc3RpbmF0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIExvY2FsQmFua1RyYW5zZmVyQWZyaWNhRGVzdGluYXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR5cGU6IFN0cmljdFN0cgogICAgYWRkcmVzczogTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FBZGRyZXNzCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiLCAiYWRkcmVzcyJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigndHlwZScpCiAgICBkZWYgdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydMT0NBTF9CQU5LX1RSQU5TRkVSJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0xPQ0FMX0JBTktfVFJBTlNGRVInKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FEZXN0aW5hdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFkZHJlc3MKICAgICAgICBpZiBzZWxmLmFkZHJlc3M6CiAgICAgICAgICAgIF9kaWN0WydhZGRyZXNzJ10gPSBzZWxmLmFkZHJlc3MudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBMb2NhbEJhbmtUcmFuc2ZlckFmcmljYURlc3RpbmF0aW9uIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIiksCiAgICAgICAgICAgICJhZGRyZXNzIjogTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FBZGRyZXNzLmZyb21fZGljdChvYmpbImFkZHJlc3MiXSkgaWYgb2JqLmdldCgiYWRkcmVzcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/manifest.py b/fireblocks/models/manifest.py index 46d0a635..4812b79a 100644 --- a/fireblocks/models/manifest.py +++ b/fireblocks/models/manifest.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.asset_type_enum import AssetTypeEnum -from fireblocks.models.capability import Capability -from typing import Optional, Set -from typing_extensions import Self - -class Manifest(BaseModel): - """ - Manifest - """ # noqa: E501 - asset_types: List[AssetTypeEnum] = Field(alias="assetTypes") - capabilities: List[Capability] - __properties: ClassVar[List[str]] = ["assetTypes", "capabilities"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of Manifest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of Manifest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "assetTypes": obj.get("assetTypes"), - "capabilities": obj.get("capabilities") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubWFuaWZlc3RfYmFzZSBpbXBvcnQgTWFuaWZlc3RCYXNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubWFuaWZlc3Rfb3JkZXIgaW1wb3J0IE1hbmlmZXN0T3JkZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5tYW5pZmVzdF9xdW90ZSBpbXBvcnQgTWFuaWZlc3RRdW90ZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBNYW5pZmVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUaGUgbWFuaWZlc3Qgb2YgdGhlIHByb3ZpZGVyLCBkZXNjcmliaW5nIGl0cyBzdXBwb3J0ZWQgb3JkZXIsIHF1b3RlLCBhbmQgcmF0ZSByZXF1aXJlbWVudHMuCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBvcmRlcjogTWFuaWZlc3RPcmRlcgogICAgcXVvdGU6IE1hbmlmZXN0UXVvdGUKICAgIHJhdGU6IE1hbmlmZXN0QmFzZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJvcmRlciIsICJxdW90ZSIsICJyYXRlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNYW5pZmVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG9yZGVyCiAgICAgICAgaWYgc2VsZi5vcmRlcjoKICAgICAgICAgICAgX2RpY3RbJ29yZGVyJ10gPSBzZWxmLm9yZGVyLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBxdW90ZQogICAgICAgIGlmIHNlbGYucXVvdGU6CiAgICAgICAgICAgIF9kaWN0WydxdW90ZSddID0gc2VsZi5xdW90ZS50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcmF0ZQogICAgICAgIGlmIHNlbGYucmF0ZToKICAgICAgICAgICAgX2RpY3RbJ3JhdGUnXSA9IHNlbGYucmF0ZS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1hbmlmZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm9yZGVyIjogTWFuaWZlc3RPcmRlci5mcm9tX2RpY3Qob2JqWyJvcmRlciJdKSBpZiBvYmouZ2V0KCJvcmRlciIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInF1b3RlIjogTWFuaWZlc3RRdW90ZS5mcm9tX2RpY3Qob2JqWyJxdW90ZSJdKSBpZiBvYmouZ2V0KCJxdW90ZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInJhdGUiOiBNYW5pZmVzdEJhc2UuZnJvbV9kaWN0KG9ialsicmF0ZSJdKSBpZiBvYmouZ2V0KCJyYXRlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/manifest_base.py b/fireblocks/models/manifest_base.py new file mode 100644 index 00000000..85bf2d00 --- /dev/null +++ b/fireblocks/models/manifest_base.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBNYW5pZmVzdEJhc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgQmFzZSBtYW5pZmVzdCBzY2hlbWEgd2l0aCBjb21tb24gcHJvcGVydGllcwogICAgIiIiICMgbm9xYTogRTUwMQogICAgc3VwcG9ydGVkOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IkluZGljYXRlcyB3aGV0aGVyIHRoZSBlbmRwb2ludCBpcyBzdXBwb3J0ZWQgYnkgdGhlIHByb3ZpZGVyIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3VwcG9ydGVkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNYW5pZmVzdEJhc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTWFuaWZlc3RCYXNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInN1cHBvcnRlZCI6IG9iai5nZXQoInN1cHBvcnRlZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/manifest_order.py b/fireblocks/models/manifest_order.py new file mode 100644 index 00000000..28fa721a --- /dev/null +++ b/fireblocks/models/manifest_order.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGVjdXRpb25fcmVxdWVzdF9kZXRhaWxzX3R5cGUgaW1wb3J0IEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldHRsZW1lbnRfdHlwZV9lbnVtIGltcG9ydCBTZXR0bGVtZW50VHlwZUVudW0KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTWFuaWZlc3RPcmRlcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBNYW5pZmVzdE9yZGVyCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzdXBwb3J0ZWQ6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGVuZHBvaW50IGlzIHN1cHBvcnRlZCBieSB0aGUgcHJvdmlkZXIiKQogICAgc2V0dGxlbWVudF90eXBlczogT3B0aW9uYWxbTGlzdFtTZXR0bGVtZW50VHlwZUVudW1dXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlN1cHBvcnRlZCBzZXR0bGVtZW50IHR5cGVzIHdoZW4gY3JlYXRpbmcgYW4gb3JkZXIuIElmIHByZXNlbnQgLSBzZXR0bGVtZW50IGlzIHJlcXVpcmVkLiBJZiBhYnNlbnQgLSBubyBuZWVkIHRvIHByb3ZpZGUgc2V0dGxlbWVudC4gIiwgYWxpYXM9InNldHRsZW1lbnRUeXBlcyIpCiAgICBleGVjdXRpb25fdHlwZXM6IExpc3RbRXhlY3V0aW9uUmVxdWVzdERldGFpbHNUeXBlXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJTdXBwb3J0ZWQgZXhlY3V0aW9uIHR5cGVzIHdoZW4gY3JlYXRpbmcgYW4gb3JkZXIuIiwgYWxpYXM9ImV4ZWN1dGlvblR5cGVzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3VwcG9ydGVkIiwgInNldHRsZW1lbnRUeXBlcyIsICJleGVjdXRpb25UeXBlcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTWFuaWZlc3RPcmRlciBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNYW5pZmVzdE9yZGVyIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInN1cHBvcnRlZCI6IG9iai5nZXQoInN1cHBvcnRlZCIpLAogICAgICAgICAgICAic2V0dGxlbWVudFR5cGVzIjogb2JqLmdldCgic2V0dGxlbWVudFR5cGVzIiksCiAgICAgICAgICAgICJleGVjdXRpb25UeXBlcyI6IG9iai5nZXQoImV4ZWN1dGlvblR5cGVzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/manifest_order_info.py b/fireblocks/models/manifest_order_info.py new file mode 100644 index 00000000..f4db4092 --- /dev/null +++ b/fireblocks/models/manifest_order_info.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGVjdXRpb25fcmVxdWVzdF9kZXRhaWxzX3R5cGUgaW1wb3J0IEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldHRsZW1lbnRfdHlwZV9lbnVtIGltcG9ydCBTZXR0bGVtZW50VHlwZUVudW0KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTWFuaWZlc3RPcmRlckluZm8oQmFzZU1vZGVsKToKICAgICIiIgogICAgRGVmaW5lcyByZXF1aXJlbWVudHMgZm9yIHRoZSBQT1NUIC9vcmRlcnMgZW5kcG9pbnQuCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzZXR0bGVtZW50X3R5cGVzOiBPcHRpb25hbFtMaXN0W1NldHRsZW1lbnRUeXBlRW51bV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iU3VwcG9ydGVkIHNldHRsZW1lbnQgdHlwZXMgd2hlbiBjcmVhdGluZyBhbiBvcmRlci4gSWYgcHJlc2VudCAtIHNldHRsZW1lbnQgaXMgcmVxdWlyZWQuIElmIGFic2VudCAtIG5vIG5lZWQgdG8gcHJvdmlkZSBzZXR0bGVtZW50LiAiLCBhbGlhcz0ic2V0dGxlbWVudFR5cGVzIikKICAgIGV4ZWN1dGlvbl90eXBlczogTGlzdFtFeGVjdXRpb25SZXF1ZXN0RGV0YWlsc1R5cGVdID0gRmllbGQoZGVzY3JpcHRpb249IlN1cHBvcnRlZCBleGVjdXRpb24gdHlwZXMgd2hlbiBjcmVhdGluZyBhbiBvcmRlci4iLCBhbGlhcz0iZXhlY3V0aW9uVHlwZXMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzZXR0bGVtZW50VHlwZXMiLCAiZXhlY3V0aW9uVHlwZXMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1hbmlmZXN0T3JkZXJJbmZvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1hbmlmZXN0T3JkZXJJbmZvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInNldHRsZW1lbnRUeXBlcyI6IG9iai5nZXQoInNldHRsZW1lbnRUeXBlcyIpLAogICAgICAgICAgICAiZXhlY3V0aW9uVHlwZXMiOiBvYmouZ2V0KCJleGVjdXRpb25UeXBlcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/manifest_quote.py b/fireblocks/models/manifest_quote.py new file mode 100644 index 00000000..ceac9b8c --- /dev/null +++ b/fireblocks/models/manifest_quote.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kdnBfc2V0dGxlbWVudF90eXBlIGltcG9ydCBEVlBTZXR0bGVtZW50VHlwZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBNYW5pZmVzdFF1b3RlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIE1hbmlmZXN0UXVvdGUKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHN1cHBvcnRlZDogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJbmRpY2F0ZXMgd2hldGhlciB0aGUgZW5kcG9pbnQgaXMgc3VwcG9ydGVkIGJ5IHRoZSBwcm92aWRlciIpCiAgICBzZXR0bGVtZW50X3R5cGVzOiBPcHRpb25hbFtMaXN0W0RWUFNldHRsZW1lbnRUeXBlXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTdXBwb3J0ZWQgc2V0dGxlbWVudCB0eXBlcyB3aGVuIHJlcXVlc3RpbmcgYSBxdW90ZS4gSWYgcHJlc2VudCAtIHNldHRsZW1lbnQgaXMgcmVxdWlyZWQuIElmIGFic2VudCAtIG5vIG5lZWQgdG8gcHJvdmlkZSBzZXR0bGVtZW50LiAiLCBhbGlhcz0ic2V0dGxlbWVudFR5cGVzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3VwcG9ydGVkIiwgInNldHRsZW1lbnRUeXBlcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTWFuaWZlc3RRdW90ZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNYW5pZmVzdFF1b3RlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInN1cHBvcnRlZCI6IG9iai5nZXQoInN1cHBvcnRlZCIpLAogICAgICAgICAgICAic2V0dGxlbWVudFR5cGVzIjogb2JqLmdldCgic2V0dGxlbWVudFR5cGVzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/manifest_quote_info.py b/fireblocks/models/manifest_quote_info.py new file mode 100644 index 00000000..b2a06146 --- /dev/null +++ b/fireblocks/models/manifest_quote_info.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kdnBfc2V0dGxlbWVudF90eXBlIGltcG9ydCBEVlBTZXR0bGVtZW50VHlwZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBNYW5pZmVzdFF1b3RlSW5mbyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBEZWZpbmVzIHJlcXVpcmVtZW50cyBmb3IgdGhlIFBPU1QgL3F1b3RlcyBlbmRwb2ludC4KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHNldHRsZW1lbnRfdHlwZXM6IE9wdGlvbmFsW0xpc3RbRFZQU2V0dGxlbWVudFR5cGVdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlN1cHBvcnRlZCBzZXR0bGVtZW50IHR5cGVzIHdoZW4gcmVxdWVzdGluZyBhIHF1b3RlLiBJZiBwcmVzZW50IC0gc2V0dGxlbWVudCBpcyByZXF1aXJlZC4gSWYgYWJzZW50IC0gbm8gbmVlZCB0byBwcm92aWRlIHNldHRsZW1lbnQuICIsIGFsaWFzPSJzZXR0bGVtZW50VHlwZXMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzZXR0bGVtZW50VHlwZXMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1hbmlmZXN0UXVvdGVJbmZvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1hbmlmZXN0UXVvdGVJbmZvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInNldHRsZW1lbnRUeXBlcyI6IG9iai5nZXQoInNldHRsZW1lbnRUeXBlcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/market_execution_request_details.py b/fireblocks/models/market_execution_request_details.py index 35831273..7c0c3d53 100644 --- a/fireblocks/models/market_execution_request_details.py +++ b/fireblocks/models/market_execution_request_details.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.market_type_enum import MarketTypeEnum -from fireblocks.models.side import Side -from fireblocks.models.transfer_rail import TransferRail -from typing import Optional, Set -from typing_extensions import Self - -class MarketExecutionRequestDetails(BaseModel): - """ - MarketExecutionRequestDetails - """ # noqa: E501 - type: MarketTypeEnum - side: Side - base_amount: StrictStr = Field(description="Amount in baseAssetId. BUY = base amount to receive; SELL = base amount to sell.", alias="baseAmount") - base_asset_id: StrictStr = Field(description="The asset you receive on BUY / give on SELL.", alias="baseAssetId") - base_asset_rail: Optional[TransferRail] = Field(default=None, alias="baseAssetRail") - quote_asset_id: StrictStr = Field(description="Counter asset used to pay/receive", alias="quoteAssetId") - quote_asset_rail: Optional[TransferRail] = Field(default=None, alias="quoteAssetRail") - __properties: ClassVar[List[str]] = ["type", "side", "baseAmount", "baseAssetId", "baseAssetRail", "quoteAssetId", "quoteAssetRail"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of MarketExecutionRequestDetails from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of MarketExecutionRequestDetails from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "side": obj.get("side"), - "baseAmount": obj.get("baseAmount"), - "baseAssetId": obj.get("baseAssetId"), - "baseAssetRail": obj.get("baseAssetRail"), - "quoteAssetId": obj.get("quoteAssetId"), - "quoteAssetRail": obj.get("quoteAssetRail") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hcmtldF90eXBlX2VudW0gaW1wb3J0IE1hcmtldFR5cGVFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2lkZSBpbXBvcnQgU2lkZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3JhaWwgaW1wb3J0IFRyYW5zZmVyUmFpbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBNYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlscyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBNYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlscwogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogTWFya2V0VHlwZUVudW0KICAgIHNpZGU6IFNpZGUKICAgIGJhc2VfYW1vdW50OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQW1vdW50IGluIGJhc2VBc3NldElkLiBCVVkgPSBiYXNlIGFtb3VudCB0byByZWNlaXZlOyBTRUxMID0gYmFzZSBhbW91bnQgdG8gc2VsbC4iLCBhbGlhcz0iYmFzZUFtb3VudCIpCiAgICBiYXNlX2Fzc2V0X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGFzc2V0IHlvdSByZWNlaXZlIG9uIEJVWSAvIGdpdmUgb24gU0VMTC4iLCBhbGlhcz0iYmFzZUFzc2V0SWQiKQogICAgYmFzZV9hc3NldF9yYWlsOiBPcHRpb25hbFtUcmFuc2ZlclJhaWxdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYmFzZUFzc2V0UmFpbCIpCiAgICBxdW90ZV9hc3NldF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkNvdW50ZXIgYXNzZXQgdXNlZCB0byBwYXkvcmVjZWl2ZSIsIGFsaWFzPSJxdW90ZUFzc2V0SWQiKQogICAgcXVvdGVfYXNzZXRfcmFpbDogT3B0aW9uYWxbVHJhbnNmZXJSYWlsXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InF1b3RlQXNzZXRSYWlsIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidHlwZSIsICJzaWRlIiwgImJhc2VBbW91bnQiLCAiYmFzZUFzc2V0SWQiLCAiYmFzZUFzc2V0UmFpbCIsICJxdW90ZUFzc2V0SWQiLCAicXVvdGVBc3NldFJhaWwiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1hcmtldEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1hcmtldEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIiksCiAgICAgICAgICAgICJzaWRlIjogb2JqLmdldCgic2lkZSIpLAogICAgICAgICAgICAiYmFzZUFtb3VudCI6IG9iai5nZXQoImJhc2VBbW91bnQiKSwKICAgICAgICAgICAgImJhc2VBc3NldElkIjogb2JqLmdldCgiYmFzZUFzc2V0SWQiKSwKICAgICAgICAgICAgImJhc2VBc3NldFJhaWwiOiBvYmouZ2V0KCJiYXNlQXNzZXRSYWlsIiksCiAgICAgICAgICAgICJxdW90ZUFzc2V0SWQiOiBvYmouZ2V0KCJxdW90ZUFzc2V0SWQiKSwKICAgICAgICAgICAgInF1b3RlQXNzZXRSYWlsIjogb2JqLmdldCgicXVvdGVBc3NldFJhaWwiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/market_execution_response_details.py b/fireblocks/models/market_execution_response_details.py index 450ade7e..515fe1e1 100644 --- a/fireblocks/models/market_execution_response_details.py +++ b/fireblocks/models/market_execution_response_details.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.market_type_enum import MarketTypeEnum -from fireblocks.models.side import Side -from fireblocks.models.transfer_rail import TransferRail -from typing import Optional, Set -from typing_extensions import Self - -class MarketExecutionResponseDetails(BaseModel): - """ - MarketExecutionResponseDetails - """ # noqa: E501 - type: MarketTypeEnum - side: Side - base_amount: StrictStr = Field(description="Amount to convert", alias="baseAmount") - base_asset_id: StrictStr = Field(description="Source asset identifier", alias="baseAssetId") - base_asset_rail: Optional[TransferRail] = Field(default=None, alias="baseAssetRail") - quote_asset_id: StrictStr = Field(description="Target asset identifier", alias="quoteAssetId") - quote_asset_rail: Optional[TransferRail] = Field(default=None, alias="quoteAssetRail") - __properties: ClassVar[List[str]] = ["type", "side", "baseAmount", "baseAssetId", "baseAssetRail", "quoteAssetId", "quoteAssetRail"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of MarketExecutionResponseDetails from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of MarketExecutionResponseDetails from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "side": obj.get("side"), - "baseAmount": obj.get("baseAmount"), - "baseAssetId": obj.get("baseAssetId"), - "baseAssetRail": obj.get("baseAssetRail"), - "quoteAssetId": obj.get("quoteAssetId"), - "quoteAssetRail": obj.get("quoteAssetRail") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hcmtldF90eXBlX2VudW0gaW1wb3J0IE1hcmtldFR5cGVFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2lkZSBpbXBvcnQgU2lkZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3JhaWwgaW1wb3J0IFRyYW5zZmVyUmFpbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBNYXJrZXRFeGVjdXRpb25SZXNwb25zZURldGFpbHMoQmFzZU1vZGVsKToKICAgICIiIgogICAgTWFya2V0RXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBNYXJrZXRUeXBlRW51bQogICAgc2lkZTogU2lkZQogICAgYmFzZV9hbW91bnQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBbW91bnQgdG8gY29udmVydCIsIGFsaWFzPSJiYXNlQW1vdW50IikKICAgIGJhc2VfYXNzZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJTb3VyY2UgYXNzZXQgaWRlbnRpZmllciIsIGFsaWFzPSJiYXNlQXNzZXRJZCIpCiAgICBiYXNlX2Fzc2V0X3JhaWw6IE9wdGlvbmFsW1RyYW5zZmVyUmFpbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJiYXNlQXNzZXRSYWlsIikKICAgIHF1b3RlX2Fzc2V0X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGFyZ2V0IGFzc2V0IGlkZW50aWZpZXIiLCBhbGlhcz0icXVvdGVBc3NldElkIikKICAgIHF1b3RlX2Fzc2V0X3JhaWw6IE9wdGlvbmFsW1RyYW5zZmVyUmFpbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJxdW90ZUFzc2V0UmFpbCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiLCAic2lkZSIsICJiYXNlQW1vdW50IiwgImJhc2VBc3NldElkIiwgImJhc2VBc3NldFJhaWwiLCAicXVvdGVBc3NldElkIiwgInF1b3RlQXNzZXRSYWlsIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNYXJrZXRFeGVjdXRpb25SZXNwb25zZURldGFpbHMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTWFya2V0RXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIiksCiAgICAgICAgICAgICJzaWRlIjogb2JqLmdldCgic2lkZSIpLAogICAgICAgICAgICAiYmFzZUFtb3VudCI6IG9iai5nZXQoImJhc2VBbW91bnQiKSwKICAgICAgICAgICAgImJhc2VBc3NldElkIjogb2JqLmdldCgiYmFzZUFzc2V0SWQiKSwKICAgICAgICAgICAgImJhc2VBc3NldFJhaWwiOiBvYmouZ2V0KCJiYXNlQXNzZXRSYWlsIiksCiAgICAgICAgICAgICJxdW90ZUFzc2V0SWQiOiBvYmouZ2V0KCJxdW90ZUFzc2V0SWQiKSwKICAgICAgICAgICAgInF1b3RlQXNzZXRSYWlsIjogb2JqLmdldCgicXVvdGVBc3NldFJhaWwiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/market_requote_request_details.py b/fireblocks/models/market_requote_request_details.py index 12639465..4520d494 100644 --- a/fireblocks/models/market_requote_request_details.py +++ b/fireblocks/models/market_requote_request_details.py @@ -1,89 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List -from fireblocks.models.market_requote_type_enum import MarketRequoteTypeEnum -from typing import Optional, Set -from typing_extensions import Self - -class MarketRequoteRequestDetails(BaseModel): - """ - MarketRequoteRequestDetails - """ # noqa: E501 - type: MarketRequoteTypeEnum - __properties: ClassVar[List[str]] = ["type"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of MarketRequoteRequestDetails from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of MarketRequoteRequestDetails from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubWFya2V0X3JlcXVvdGVfdHlwZV9lbnVtIGltcG9ydCBNYXJrZXRSZXF1b3RlVHlwZUVudW0KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTWFya2V0UmVxdW90ZVJlcXVlc3REZXRhaWxzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIE1hcmtldFJlcXVvdGVSZXF1ZXN0RGV0YWlscwogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogTWFya2V0UmVxdW90ZVR5cGVFbnVtCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1hcmtldFJlcXVvdGVSZXF1ZXN0RGV0YWlscyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNYXJrZXRSZXF1b3RlUmVxdWVzdERldGFpbHMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/market_requote_type_enum.py b/fireblocks/models/market_requote_type_enum.py index d6e09ada..c661e201 100644 --- a/fireblocks/models/market_requote_type_enum.py +++ b/fireblocks/models/market_requote_type_enum.py @@ -1,37 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class MarketRequoteTypeEnum(str, Enum): - """ - Indicates that the order should be re-quoted if the original quote is expired. This will lead to a market order. - """ - - """ - allowed enum values - """ - MARKET = 'MARKET' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of MarketRequoteTypeEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBNYXJrZXRSZXF1b3RlVHlwZUVudW0oc3RyLCBFbnVtKToKICAgICIiIgogICAgSW5kaWNhdGVzIHRoYXQgdGhlIG9yZGVyIHNob3VsZCBiZSByZS1xdW90ZWQgaWYgdGhlIG9yaWdpbmFsIHF1b3RlIGlzIGV4cGlyZWQuIFRoaXMgd2lsbCBsZWFkIHRvIGEgbWFya2V0IG9yZGVyLgogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIE1BUktFVCA9ICdNQVJLRVQnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTWFya2V0UmVxdW90ZVR5cGVFbnVtIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/market_type_details.py b/fireblocks/models/market_type_details.py index 6f4d42d5..f841c6f0 100644 --- a/fireblocks/models/market_type_details.py +++ b/fireblocks/models/market_type_details.py @@ -1,89 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List -from fireblocks.models.market_type_enum import MarketTypeEnum -from typing import Optional, Set -from typing_extensions import Self - -class MarketTypeDetails(BaseModel): - """ - MarketTypeDetails - """ # noqa: E501 - type: MarketTypeEnum - __properties: ClassVar[List[str]] = ["type"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of MarketTypeDetails from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of MarketTypeDetails from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubWFya2V0X3R5cGVfZW51bSBpbXBvcnQgTWFya2V0VHlwZUVudW0KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTWFya2V0VHlwZURldGFpbHMoQmFzZU1vZGVsKToKICAgICIiIgogICAgTWFya2V0VHlwZURldGFpbHMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR5cGU6IE1hcmtldFR5cGVFbnVtCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1hcmtldFR5cGVEZXRhaWxzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1hcmtldFR5cGVEZXRhaWxzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/market_type_enum.py b/fireblocks/models/market_type_enum.py index 0dba2743..72b04a64 100644 --- a/fireblocks/models/market_type_enum.py +++ b/fireblocks/models/market_type_enum.py @@ -1,37 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class MarketTypeEnum(str, Enum): - """ - Order type for market orders - """ - - """ - allowed enum values - """ - MARKET = 'MARKET' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of MarketTypeEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBNYXJrZXRUeXBlRW51bShzdHIsIEVudW0pOgogICAgIiIiCiAgICBPcmRlciB0eXBlIGZvciBtYXJrZXQgb3JkZXJzCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgTUFSS0VUID0gJ01BUktFVCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNYXJrZXRUeXBlRW51bSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/media_entity_response.py b/fireblocks/models/media_entity_response.py index 5b4d342e..65c4a08c 100644 --- a/fireblocks/models/media_entity_response.py +++ b/fireblocks/models/media_entity_response.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class MediaEntityResponse(BaseModel): - """ - MediaEntityResponse - """ # noqa: E501 - url: StrictStr = Field(description="Cached accessible URL") - content_type: StrictStr = Field(description="Media type", alias="contentType") - __properties: ClassVar[List[str]] = ["url", "contentType"] - - @field_validator('content_type') - def content_type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['IMAGE', 'VIDEO', 'ANIMATION', 'THREE_D', 'TEXT', 'GIF', 'UNKNOWN_TYPE', 'SVG', 'AUDIO']): - raise ValueError("must be one of enum values ('IMAGE', 'VIDEO', 'ANIMATION', 'THREE_D', 'TEXT', 'GIF', 'UNKNOWN_TYPE', 'SVG', 'AUDIO')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of MediaEntityResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of MediaEntityResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "url": obj.get("url"), - "contentType": obj.get("contentType") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTWVkaWFFbnRpdHlSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBNZWRpYUVudGl0eVJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB1cmw6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJDYWNoZWQgYWNjZXNzaWJsZSBVUkwiKQogICAgY29udGVudF90eXBlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iTWVkaWEgdHlwZSIsIGFsaWFzPSJjb250ZW50VHlwZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInVybCIsICJjb250ZW50VHlwZSJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignY29udGVudF90eXBlJykKICAgIGRlZiBjb250ZW50X3R5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnSU1BR0UnLCAnVklERU8nLCAnQU5JTUFUSU9OJywgJ1RIUkVFX0QnLCAnVEVYVCcsICdHSUYnLCAnVU5LTk9XTl9UWVBFJywgJ1NWRycsICdBVURJTyddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdJTUFHRScsICdWSURFTycsICdBTklNQVRJT04nLCAnVEhSRUVfRCcsICdURVhUJywgJ0dJRicsICdVTktOT1dOX1RZUEUnLCAnU1ZHJywgJ0FVRElPJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1lZGlhRW50aXR5UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTWVkaWFFbnRpdHlSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ1cmwiOiBvYmouZ2V0KCJ1cmwiKSwKICAgICAgICAgICAgImNvbnRlbnRUeXBlIjogb2JqLmdldCgiY29udGVudFR5cGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/merge_stake_accounts_request.py b/fireblocks/models/merge_stake_accounts_request.py index 45cb1712..a11db9ea 100644 --- a/fireblocks/models/merge_stake_accounts_request.py +++ b/fireblocks/models/merge_stake_accounts_request.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.fee_level import FeeLevel -from typing import Optional, Set -from typing_extensions import Self - -class MergeStakeAccountsRequest(BaseModel): - """ - MergeStakeAccountsRequest - """ # noqa: E501 - source_id: StrictStr = Field(description="Id of the source position to merge from", alias="sourceId") - destination_id: StrictStr = Field(description="Id of the destination position to merge into", alias="destinationId") - fee: Optional[StrictStr] = Field(default=None, description="Represents the fee for a transaction, which can be specified as a percentage value. Only one of fee/feeLevel is required.") - fee_level: Optional[FeeLevel] = Field(default=None, alias="feeLevel") - tx_note: Optional[StrictStr] = Field(default=None, description="The note to associate with the merge transaction.", alias="txNote") - __properties: ClassVar[List[str]] = ["sourceId", "destinationId", "fee", "feeLevel", "txNote"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of MergeStakeAccountsRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of MergeStakeAccountsRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "sourceId": obj.get("sourceId"), - "destinationId": obj.get("destinationId"), - "fee": obj.get("fee"), - "feeLevel": obj.get("feeLevel"), - "txNote": obj.get("txNote") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZV9sZXZlbCBpbXBvcnQgRmVlTGV2ZWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTWVyZ2VTdGFrZUFjY291bnRzUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBNZXJnZVN0YWtlQWNjb3VudHNSZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzb3VyY2VfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJZCBvZiB0aGUgc291cmNlIHBvc2l0aW9uIHRvIG1lcmdlIGZyb20iLCBhbGlhcz0ic291cmNlSWQiKQogICAgZGVzdGluYXRpb25faWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJZCBvZiB0aGUgZGVzdGluYXRpb24gcG9zaXRpb24gdG8gbWVyZ2UgaW50byIsIGFsaWFzPSJkZXN0aW5hdGlvbklkIikKICAgIGZlZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlJlcHJlc2VudHMgdGhlIGZlZSBmb3IgYSB0cmFuc2FjdGlvbiwgd2hpY2ggY2FuIGJlIHNwZWNpZmllZCBhcyBhIHBlcmNlbnRhZ2UgdmFsdWUuIE9ubHkgb25lIG9mIGZlZS9mZWVMZXZlbCBpcyByZXF1aXJlZC4iKQogICAgZmVlX2xldmVsOiBPcHRpb25hbFtGZWVMZXZlbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJmZWVMZXZlbCIpCiAgICB0eF9ub3RlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIG5vdGUgdG8gYXNzb2NpYXRlIHdpdGggdGhlIG1lcmdlIHRyYW5zYWN0aW9uLiIsIGFsaWFzPSJ0eE5vdGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzb3VyY2VJZCIsICJkZXN0aW5hdGlvbklkIiwgImZlZSIsICJmZWVMZXZlbCIsICJ0eE5vdGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1lcmdlU3Rha2VBY2NvdW50c1JlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTWVyZ2VTdGFrZUFjY291bnRzUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzb3VyY2VJZCI6IG9iai5nZXQoInNvdXJjZUlkIiksCiAgICAgICAgICAgICJkZXN0aW5hdGlvbklkIjogb2JqLmdldCgiZGVzdGluYXRpb25JZCIpLAogICAgICAgICAgICAiZmVlIjogb2JqLmdldCgiZmVlIiksCiAgICAgICAgICAgICJmZWVMZXZlbCI6IG9iai5nZXQoImZlZUxldmVsIiksCiAgICAgICAgICAgICJ0eE5vdGUiOiBvYmouZ2V0KCJ0eE5vdGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/merge_stake_accounts_response.py b/fireblocks/models/merge_stake_accounts_response.py index 0e1caa0f..27623f13 100644 --- a/fireblocks/models/merge_stake_accounts_response.py +++ b/fireblocks/models/merge_stake_accounts_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class MergeStakeAccountsResponse(BaseModel): - """ - MergeStakeAccountsResponse - """ # noqa: E501 - id: StrictStr = Field(description="The unique identifier of the merge position (the id of the destination position)") - __properties: ClassVar[List[str]] = ["id"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of MergeStakeAccountsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of MergeStakeAccountsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIE1lcmdlU3Rha2VBY2NvdW50c1Jlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIE1lcmdlU3Rha2VBY2NvdW50c1Jlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgbWVyZ2UgcG9zaXRpb24gKHRoZSBpZCBvZiB0aGUgZGVzdGluYXRpb24gcG9zaXRpb24pIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1lcmdlU3Rha2VBY2NvdW50c1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1lcmdlU3Rha2VBY2NvdW50c1Jlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/mobile_money_address.py b/fireblocks/models/mobile_money_address.py index 0e75c3bc..1aec828a 100644 --- a/fireblocks/models/mobile_money_address.py +++ b/fireblocks/models/mobile_money_address.py @@ -1,123 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from fireblocks.models.account_holder_details import AccountHolderDetails -from fireblocks.models.payment_redirect import PaymentRedirect -from typing import Optional, Set -from typing_extensions import Self - -class MobileMoneyAddress(BaseModel): - """ - MobileMoneyAddress - """ # noqa: E501 - account_holder: AccountHolderDetails = Field(alias="accountHolder") - mobile_phone_number: Annotated[str, Field(strict=True)] = Field(description="Mobile phone number in E.164 format", alias="mobilePhoneNumber") - provider: StrictStr = Field(description="Mobile money provider") - beneficiary_document_id: Optional[StrictStr] = Field(default=None, description="Beneficiary document identification (may be required)", alias="beneficiaryDocumentId") - beneficiary_relationship: Optional[StrictStr] = Field(default=None, description="Relationship to beneficiary for AML purposes", alias="beneficiaryRelationship") - success_payment_instruction_redirect_url: Optional[StrictStr] = Field(default=None, description="The URL to redirect to after the payment instruction is successful", alias="successPaymentInstructionRedirectUrl") - payment_redirect: Optional[PaymentRedirect] = Field(default=None, alias="paymentRedirect") - __properties: ClassVar[List[str]] = ["accountHolder", "mobilePhoneNumber", "provider", "beneficiaryDocumentId", "beneficiaryRelationship", "successPaymentInstructionRedirectUrl", "paymentRedirect"] - - @field_validator('mobile_phone_number') - def mobile_phone_number_validate_regular_expression(cls, value): - """Validates the regular expression""" - if not re.match(r"^\+[1-9]\d{1,14}$", value): - raise ValueError(r"must validate the regular expression /^\+[1-9]\d{1,14}$/") - return value - - @field_validator('provider') - def provider_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['m-pesa', 'airtel', 'mtn', 'tigo', 'orange']): - raise ValueError("must be one of enum values ('m-pesa', 'airtel', 'mtn', 'tigo', 'orange')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of MobileMoneyAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of account_holder - if self.account_holder: - _dict['accountHolder'] = self.account_holder.to_dict() - # override the default output from pydantic by calling `to_dict()` of payment_redirect - if self.payment_redirect: - _dict['paymentRedirect'] = self.payment_redirect.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of MobileMoneyAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None, - "mobilePhoneNumber": obj.get("mobilePhoneNumber"), - "provider": obj.get("provider"), - "beneficiaryDocumentId": obj.get("beneficiaryDocumentId"), - "beneficiaryRelationship": obj.get("beneficiaryRelationship"), - "successPaymentInstructionRedirectUrl": obj.get("successPaymentInstructionRedirectUrl"), - "paymentRedirect": PaymentRedirect.from_dict(obj["paymentRedirect"]) if obj.get("paymentRedirect") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaG9sZGVyX2RldGFpbHMgaW1wb3J0IEFjY291bnRIb2xkZXJEZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5bWVudF9yZWRpcmVjdCBpbXBvcnQgUGF5bWVudFJlZGlyZWN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIE1vYmlsZU1vbmV5QWRkcmVzcyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBNb2JpbGVNb25leUFkZHJlc3MKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFjY291bnRfaG9sZGVyOiBBY2NvdW50SG9sZGVyRGV0YWlscyA9IEZpZWxkKGFsaWFzPSJhY2NvdW50SG9sZGVyIikKICAgIG1vYmlsZV9waG9uZV9udW1iZXI6IEFubm90YXRlZFtzdHIsIEZpZWxkKHN0cmljdD1UcnVlKV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iTW9iaWxlIHBob25lIG51bWJlciBpbiBFLjE2NCBmb3JtYXQiLCBhbGlhcz0ibW9iaWxlUGhvbmVOdW1iZXIiKQogICAgcHJvdmlkZXI6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJNb2JpbGUgbW9uZXkgcHJvdmlkZXIiKQogICAgYmVuZWZpY2lhcnlfZG9jdW1lbnRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJCZW5lZmljaWFyeSBkb2N1bWVudCBpZGVudGlmaWNhdGlvbiAobWF5IGJlIHJlcXVpcmVkKSIsIGFsaWFzPSJiZW5lZmljaWFyeURvY3VtZW50SWQiKQogICAgYmVuZWZpY2lhcnlfcmVsYXRpb25zaGlwOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUmVsYXRpb25zaGlwIHRvIGJlbmVmaWNpYXJ5IGZvciBBTUwgcHVycG9zZXMiLCBhbGlhcz0iYmVuZWZpY2lhcnlSZWxhdGlvbnNoaXAiKQogICAgc3VjY2Vzc19wYXltZW50X2luc3RydWN0aW9uX3JlZGlyZWN0X3VybDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBVUkwgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgdGhlIHBheW1lbnQgaW5zdHJ1Y3Rpb24gaXMgc3VjY2Vzc2Z1bCIsIGFsaWFzPSJzdWNjZXNzUGF5bWVudEluc3RydWN0aW9uUmVkaXJlY3RVcmwiKQogICAgcGF5bWVudF9yZWRpcmVjdDogT3B0aW9uYWxbUGF5bWVudFJlZGlyZWN0XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InBheW1lbnRSZWRpcmVjdCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFjY291bnRIb2xkZXIiLCAibW9iaWxlUGhvbmVOdW1iZXIiLCAicHJvdmlkZXIiLCAiYmVuZWZpY2lhcnlEb2N1bWVudElkIiwgImJlbmVmaWNpYXJ5UmVsYXRpb25zaGlwIiwgInN1Y2Nlc3NQYXltZW50SW5zdHJ1Y3Rpb25SZWRpcmVjdFVybCIsICJwYXltZW50UmVkaXJlY3QiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ21vYmlsZV9waG9uZV9udW1iZXInKQogICAgZGVmIG1vYmlsZV9waG9uZV9udW1iZXJfdmFsaWRhdGVfcmVndWxhcl9leHByZXNzaW9uKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgcmVndWxhciBleHByZXNzaW9uIiIiCiAgICAgICAgaWYgbm90IHJlLm1hdGNoKHIiXlwrWzEtOV1cZHsxLDE0fSQiLCB2YWx1ZSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IociJtdXN0IHZhbGlkYXRlIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gL15cK1sxLTldXGR7MSwxNH0kLyIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgQGZpZWxkX3ZhbGlkYXRvcigncHJvdmlkZXInKQogICAgZGVmIHByb3ZpZGVyX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ20tcGVzYScsICdhaXJ0ZWwnLCAnbXRuJywgJ3RpZ28nLCAnb3JhbmdlJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ20tcGVzYScsICdhaXJ0ZWwnLCAnbXRuJywgJ3RpZ28nLCAnb3JhbmdlJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1vYmlsZU1vbmV5QWRkcmVzcyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFjY291bnRfaG9sZGVyCiAgICAgICAgaWYgc2VsZi5hY2NvdW50X2hvbGRlcjoKICAgICAgICAgICAgX2RpY3RbJ2FjY291bnRIb2xkZXInXSA9IHNlbGYuYWNjb3VudF9ob2xkZXIudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHBheW1lbnRfcmVkaXJlY3QKICAgICAgICBpZiBzZWxmLnBheW1lbnRfcmVkaXJlY3Q6CiAgICAgICAgICAgIF9kaWN0WydwYXltZW50UmVkaXJlY3QnXSA9IHNlbGYucGF5bWVudF9yZWRpcmVjdC50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1vYmlsZU1vbmV5QWRkcmVzcyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyIjogQWNjb3VudEhvbGRlckRldGFpbHMuZnJvbV9kaWN0KG9ialsiYWNjb3VudEhvbGRlciJdKSBpZiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibW9iaWxlUGhvbmVOdW1iZXIiOiBvYmouZ2V0KCJtb2JpbGVQaG9uZU51bWJlciIpLAogICAgICAgICAgICAicHJvdmlkZXIiOiBvYmouZ2V0KCJwcm92aWRlciIpLAogICAgICAgICAgICAiYmVuZWZpY2lhcnlEb2N1bWVudElkIjogb2JqLmdldCgiYmVuZWZpY2lhcnlEb2N1bWVudElkIiksCiAgICAgICAgICAgICJiZW5lZmljaWFyeVJlbGF0aW9uc2hpcCI6IG9iai5nZXQoImJlbmVmaWNpYXJ5UmVsYXRpb25zaGlwIiksCiAgICAgICAgICAgICJzdWNjZXNzUGF5bWVudEluc3RydWN0aW9uUmVkaXJlY3RVcmwiOiBvYmouZ2V0KCJzdWNjZXNzUGF5bWVudEluc3RydWN0aW9uUmVkaXJlY3RVcmwiKSwKICAgICAgICAgICAgInBheW1lbnRSZWRpcmVjdCI6IFBheW1lbnRSZWRpcmVjdC5mcm9tX2RpY3Qob2JqWyJwYXltZW50UmVkaXJlY3QiXSkgaWYgb2JqLmdldCgicGF5bWVudFJlZGlyZWN0IikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/mobile_money_destination.py b/fireblocks/models/mobile_money_destination.py index c3817283..4720bd98 100644 --- a/fireblocks/models/mobile_money_destination.py +++ b/fireblocks/models/mobile_money_destination.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from fireblocks.models.mobile_money_address import MobileMoneyAddress -from typing import Optional, Set -from typing_extensions import Self - -class MobileMoneyDestination(BaseModel): - """ - MobileMoneyDestination - """ # noqa: E501 - type: StrictStr - address: MobileMoneyAddress - __properties: ClassVar[List[str]] = ["type", "address"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['MOBILE_MONEY']): - raise ValueError("must be one of enum values ('MOBILE_MONEY')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of MobileMoneyDestination from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of address - if self.address: - _dict['address'] = self.address.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of MobileMoneyDestination from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "address": MobileMoneyAddress.from_dict(obj["address"]) if obj.get("address") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1vYmlsZV9tb25leV9hZGRyZXNzIGltcG9ydCBNb2JpbGVNb25leUFkZHJlc3MKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTW9iaWxlTW9uZXlEZXN0aW5hdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBNb2JpbGVNb25leURlc3RpbmF0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBTdHJpY3RTdHIKICAgIGFkZHJlc3M6IE1vYmlsZU1vbmV5QWRkcmVzcwogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgImFkZHJlc3MiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3R5cGUnKQogICAgZGVmIHR5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnTU9CSUxFX01PTkVZJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ01PQklMRV9NT05FWScpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNb2JpbGVNb25leURlc3RpbmF0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYWRkcmVzcwogICAgICAgIGlmIHNlbGYuYWRkcmVzczoKICAgICAgICAgICAgX2RpY3RbJ2FkZHJlc3MnXSA9IHNlbGYuYWRkcmVzcy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1vYmlsZU1vbmV5RGVzdGluYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImFkZHJlc3MiOiBNb2JpbGVNb25leUFkZHJlc3MuZnJvbV9kaWN0KG9ialsiYWRkcmVzcyJdKSBpZiBvYmouZ2V0KCJhZGRyZXNzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/modify_signing_key_agent_id_dto.py b/fireblocks/models/modify_signing_key_agent_id_dto.py index bb03508a..5b267fbf 100644 --- a/fireblocks/models/modify_signing_key_agent_id_dto.py +++ b/fireblocks/models/modify_signing_key_agent_id_dto.py @@ -1,89 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class ModifySigningKeyAgentIdDto(BaseModel): - """ - ModifySigningKeyAgentIdDto - """ # noqa: E501 - agent_user_id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field(description="Id of user that represent agent servers which signs with the key", alias="agentUserId") - __properties: ClassVar[List[str]] = ["agentUserId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ModifySigningKeyAgentIdDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ModifySigningKeyAgentIdDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "agentUserId": obj.get("agentUserId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTW9kaWZ5U2lnbmluZ0tleUFnZW50SWREdG8oQmFzZU1vZGVsKToKICAgICIiIgogICAgTW9kaWZ5U2lnbmluZ0tleUFnZW50SWREdG8KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFnZW50X3VzZXJfaWQ6IEFubm90YXRlZFtzdHIsIEZpZWxkKG1pbl9sZW5ndGg9MzYsIHN0cmljdD1UcnVlLCBtYXhfbGVuZ3RoPTM2KV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iSWQgb2YgdXNlciB0aGF0IHJlcHJlc2VudCBhZ2VudCBzZXJ2ZXJzIHdoaWNoIHNpZ25zIHdpdGggdGhlIGtleSIsIGFsaWFzPSJhZ2VudFVzZXJJZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFnZW50VXNlcklkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNb2RpZnlTaWduaW5nS2V5QWdlbnRJZER0byBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNb2RpZnlTaWduaW5nS2V5QWdlbnRJZER0byBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhZ2VudFVzZXJJZCI6IG9iai5nZXQoImFnZW50VXNlcklkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/modify_signing_key_dto.py b/fireblocks/models/modify_signing_key_dto.py index f34fe812..df02c607 100644 --- a/fireblocks/models/modify_signing_key_dto.py +++ b/fireblocks/models/modify_signing_key_dto.py @@ -1,89 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Union -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class ModifySigningKeyDto(BaseModel): - """ - ModifySigningKeyDto - """ # noqa: E501 - vault_account_id: Union[Annotated[float, Field(strict=True, ge=0)], Annotated[int, Field(strict=True, ge=0)]] = Field(alias="vaultAccountId") - __properties: ClassVar[List[str]] = ["vaultAccountId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ModifySigningKeyDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ModifySigningKeyDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "vaultAccountId": obj.get("vaultAccountId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgVW5pb24KZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIE1vZGlmeVNpZ25pbmdLZXlEdG8oQmFzZU1vZGVsKToKICAgICIiIgogICAgTW9kaWZ5U2lnbmluZ0tleUR0bwogICAgIiIiICMgbm9xYTogRTUwMQogICAgdmF1bHRfYWNjb3VudF9pZDogVW5pb25bQW5ub3RhdGVkW2Zsb2F0LCBGaWVsZChzdHJpY3Q9VHJ1ZSwgZ2U9MCldLCBBbm5vdGF0ZWRbaW50LCBGaWVsZChzdHJpY3Q9VHJ1ZSwgZ2U9MCldXSA9IEZpZWxkKGFsaWFzPSJ2YXVsdEFjY291bnRJZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInZhdWx0QWNjb3VudElkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNb2RpZnlTaWduaW5nS2V5RHRvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1vZGlmeVNpZ25pbmdLZXlEdG8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidmF1bHRBY2NvdW50SWQiOiBvYmouZ2V0KCJ2YXVsdEFjY291bnRJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/modify_validation_key_dto.py b/fireblocks/models/modify_validation_key_dto.py index c60d3b2b..9901c8eb 100644 --- a/fireblocks/models/modify_validation_key_dto.py +++ b/fireblocks/models/modify_validation_key_dto.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class ModifyValidationKeyDto(BaseModel): - """ - ModifyValidationKeyDto - """ # noqa: E501 - enabled: StrictBool = Field(description="Disable validation key") - __properties: ClassVar[List[str]] = ["enabled"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ModifyValidationKeyDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ModifyValidationKeyDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "enabled": obj.get("enabled") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBNb2RpZnlWYWxpZGF0aW9uS2V5RHRvKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIE1vZGlmeVZhbGlkYXRpb25LZXlEdG8KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGVuYWJsZWQ6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iRGlzYWJsZSB2YWxpZGF0aW9uIGtleSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImVuYWJsZWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1vZGlmeVZhbGlkYXRpb25LZXlEdG8gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTW9kaWZ5VmFsaWRhdGlvbktleUR0byBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJlbmFibGVkIjogb2JqLmdldCgiZW5hYmxlZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/momo_payment_info.py b/fireblocks/models/momo_payment_info.py index c4c6f32c..c897da72 100644 --- a/fireblocks/models/momo_payment_info.py +++ b/fireblocks/models/momo_payment_info.py @@ -1,125 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class MomoPaymentInfo(BaseModel): - """ - Mobile Money (MOMO) payment information for African mobile payment services - """ # noqa: E501 - rail: StrictStr = Field(description="The payment rail type for mobile money transfers") - addressing_system: StrictStr = Field(description="The addressing system used for mobile money transfers", alias="addressingSystem") - account_holder_given_name: StrictStr = Field(description="The given name (first name) of the account holder", alias="accountHolderGivenName") - account_holder_surname: StrictStr = Field(description="The surname (last name) of the account holder", alias="accountHolderSurname") - country: StrictStr = Field(description="The country for the transfer (ISO 3166-1 alpha-2 code)") - mobile_phone_number: StrictStr = Field(description="The mobile phone number associated with the mobile money account", alias="mobilePhoneNumber") - provider: StrictStr = Field(description="The mobile money service provider") - beneficiary_document_id: Optional[StrictStr] = Field(default=None, description="The document ID of the beneficiary", alias="beneficiaryDocumentId") - beneficiary_relationship: Optional[StrictStr] = Field(default=None, description="The relationship between sender and beneficiary", alias="beneficiaryRelationship") - __properties: ClassVar[List[str]] = ["rail", "addressingSystem", "accountHolderGivenName", "accountHolderSurname", "country", "mobilePhoneNumber", "provider", "beneficiaryDocumentId", "beneficiaryRelationship"] - - @field_validator('rail') - def rail_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['MOMO']): - raise ValueError("must be one of enum values ('MOMO')") - return value - - @field_validator('addressing_system') - def addressing_system_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['MOMO']): - raise ValueError("must be one of enum values ('MOMO')") - return value - - @field_validator('provider') - def provider_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['M_PESA', 'AIRTEL', 'MTN', 'TIGO']): - raise ValueError("must be one of enum values ('M_PESA', 'AIRTEL', 'MTN', 'TIGO')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of MomoPaymentInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of MomoPaymentInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "rail": obj.get("rail"), - "addressingSystem": obj.get("addressingSystem"), - "accountHolderGivenName": obj.get("accountHolderGivenName"), - "accountHolderSurname": obj.get("accountHolderSurname"), - "country": obj.get("country"), - "mobilePhoneNumber": obj.get("mobilePhoneNumber"), - "provider": obj.get("provider"), - "beneficiaryDocumentId": obj.get("beneficiaryDocumentId"), - "beneficiaryRelationship": obj.get("beneficiaryRelationship") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIE1vbW9QYXltZW50SW5mbyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBNb2JpbGUgTW9uZXkgKE1PTU8pIHBheW1lbnQgaW5mb3JtYXRpb24gZm9yIEFmcmljYW4gbW9iaWxlIHBheW1lbnQgc2VydmljZXMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHJhaWw6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgcGF5bWVudCByYWlsIHR5cGUgZm9yIG1vYmlsZSBtb25leSB0cmFuc2ZlcnMiKQogICAgYWRkcmVzc2luZ19zeXN0ZW06IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYWRkcmVzc2luZyBzeXN0ZW0gdXNlZCBmb3IgbW9iaWxlIG1vbmV5IHRyYW5zZmVycyIsIGFsaWFzPSJhZGRyZXNzaW5nU3lzdGVtIikKICAgIGFjY291bnRfaG9sZGVyX2dpdmVuX25hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZ2l2ZW4gbmFtZSAoZmlyc3QgbmFtZSkgb2YgdGhlIGFjY291bnQgaG9sZGVyIiwgYWxpYXM9ImFjY291bnRIb2xkZXJHaXZlbk5hbWUiKQogICAgYWNjb3VudF9ob2xkZXJfc3VybmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBzdXJuYW1lIChsYXN0IG5hbWUpIG9mIHRoZSBhY2NvdW50IGhvbGRlciIsIGFsaWFzPSJhY2NvdW50SG9sZGVyU3VybmFtZSIpCiAgICBjb3VudHJ5OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNvdW50cnkgZm9yIHRoZSB0cmFuc2ZlciAoSVNPIDMxNjYtMSBhbHBoYS0yIGNvZGUpIikKICAgIG1vYmlsZV9waG9uZV9udW1iZXI6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgbW9iaWxlIHBob25lIG51bWJlciBhc3NvY2lhdGVkIHdpdGggdGhlIG1vYmlsZSBtb25leSBhY2NvdW50IiwgYWxpYXM9Im1vYmlsZVBob25lTnVtYmVyIikKICAgIHByb3ZpZGVyOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIG1vYmlsZSBtb25leSBzZXJ2aWNlIHByb3ZpZGVyIikKICAgIGJlbmVmaWNpYXJ5X2RvY3VtZW50X2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGRvY3VtZW50IElEIG9mIHRoZSBiZW5lZmljaWFyeSIsIGFsaWFzPSJiZW5lZmljaWFyeURvY3VtZW50SWQiKQogICAgYmVuZWZpY2lhcnlfcmVsYXRpb25zaGlwOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHNlbmRlciBhbmQgYmVuZWZpY2lhcnkiLCBhbGlhcz0iYmVuZWZpY2lhcnlSZWxhdGlvbnNoaXAiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJyYWlsIiwgImFkZHJlc3NpbmdTeXN0ZW0iLCAiYWNjb3VudEhvbGRlckdpdmVuTmFtZSIsICJhY2NvdW50SG9sZGVyU3VybmFtZSIsICJjb3VudHJ5IiwgIm1vYmlsZVBob25lTnVtYmVyIiwgInByb3ZpZGVyIiwgImJlbmVmaWNpYXJ5RG9jdW1lbnRJZCIsICJiZW5lZmljaWFyeVJlbGF0aW9uc2hpcCJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigncmFpbCcpCiAgICBkZWYgcmFpbF92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydNT01PJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ01PTU8nKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWRkcmVzc2luZ19zeXN0ZW0nKQogICAgZGVmIGFkZHJlc3Npbmdfc3lzdGVtX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ01PTU8nXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnTU9NTycpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdwcm92aWRlcicpCiAgICBkZWYgcHJvdmlkZXJfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnTV9QRVNBJywgJ0FJUlRFTCcsICdNVE4nLCAnVElHTyddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdNX1BFU0EnLCAnQUlSVEVMJywgJ01UTicsICdUSUdPJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1vbW9QYXltZW50SW5mbyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNb21vUGF5bWVudEluZm8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicmFpbCI6IG9iai5nZXQoInJhaWwiKSwKICAgICAgICAgICAgImFkZHJlc3NpbmdTeXN0ZW0iOiBvYmouZ2V0KCJhZGRyZXNzaW5nU3lzdGVtIiksCiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyR2l2ZW5OYW1lIjogb2JqLmdldCgiYWNjb3VudEhvbGRlckdpdmVuTmFtZSIpLAogICAgICAgICAgICAiYWNjb3VudEhvbGRlclN1cm5hbWUiOiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyU3VybmFtZSIpLAogICAgICAgICAgICAiY291bnRyeSI6IG9iai5nZXQoImNvdW50cnkiKSwKICAgICAgICAgICAgIm1vYmlsZVBob25lTnVtYmVyIjogb2JqLmdldCgibW9iaWxlUGhvbmVOdW1iZXIiKSwKICAgICAgICAgICAgInByb3ZpZGVyIjogb2JqLmdldCgicHJvdmlkZXIiKSwKICAgICAgICAgICAgImJlbmVmaWNpYXJ5RG9jdW1lbnRJZCI6IG9iai5nZXQoImJlbmVmaWNpYXJ5RG9jdW1lbnRJZCIpLAogICAgICAgICAgICAiYmVuZWZpY2lhcnlSZWxhdGlvbnNoaXAiOiBvYmouZ2V0KCJiZW5lZmljaWFyeVJlbGF0aW9uc2hpcCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/mpc_key.py b/fireblocks/models/mpc_key.py index 15dfebd5..16aa7e46 100644 --- a/fireblocks/models/mpc_key.py +++ b/fireblocks/models/mpc_key.py @@ -1,105 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing_extensions import Annotated -from fireblocks.models.players import Players -from typing import Optional, Set -from typing_extensions import Self - -class MpcKey(BaseModel): - """ - MpcKey - """ # noqa: E501 - key_id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field(alias="keyId") - user_id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field(description="The user id that owns the key", alias="userId") - algorithm: Union[StrictFloat, StrictInt] = Field(description="The algorithm of the key") - players: List[Players] = Field(description="The players that are associated with the key") - last_preprocessed_index: Optional[Union[Annotated[float, Field(strict=True, ge=0)], Annotated[int, Field(strict=True, ge=0)]]] = Field(default=None, description="The last index used on this key", alias="lastPreprocessedIndex") - __properties: ClassVar[List[str]] = ["keyId", "userId", "algorithm", "players", "lastPreprocessedIndex"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of MpcKey from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in players (list) - _items = [] - if self.players: - for _item_players in self.players: - if _item_players: - _items.append(_item_players.to_dict()) - _dict['players'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of MpcKey from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "keyId": obj.get("keyId"), - "userId": obj.get("userId"), - "algorithm": obj.get("algorithm"), - "players": [Players.from_dict(_item) for _item in obj["players"]] if obj.get("players") is not None else None, - "lastPreprocessedIndex": obj.get("lastPreprocessedIndex") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBsYXllcnMgaW1wb3J0IFBsYXllcnMKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTXBjS2V5KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIE1wY0tleQogICAgIiIiICMgbm9xYTogRTUwMQogICAga2V5X2lkOiBBbm5vdGF0ZWRbc3RyLCBGaWVsZChtaW5fbGVuZ3RoPTM2LCBzdHJpY3Q9VHJ1ZSwgbWF4X2xlbmd0aD0zNildID0gRmllbGQoYWxpYXM9ImtleUlkIikKICAgIHVzZXJfaWQ6IEFubm90YXRlZFtzdHIsIEZpZWxkKG1pbl9sZW5ndGg9MzYsIHN0cmljdD1UcnVlLCBtYXhfbGVuZ3RoPTM2KV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHVzZXIgaWQgdGhhdCBvd25zIHRoZSBrZXkiLCBhbGlhcz0idXNlcklkIikKICAgIGFsZ29yaXRobTogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGFsZ29yaXRobSBvZiB0aGUga2V5IikKICAgIHBsYXllcnM6IExpc3RbUGxheWVyc10gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHBsYXllcnMgdGhhdCBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBrZXkiKQogICAgbGFzdF9wcmVwcm9jZXNzZWRfaW5kZXg6IE9wdGlvbmFsW1VuaW9uW0Fubm90YXRlZFtmbG9hdCwgRmllbGQoc3RyaWN0PVRydWUsIGdlPTApXSwgQW5ub3RhdGVkW2ludCwgRmllbGQoc3RyaWN0PVRydWUsIGdlPTApXV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGxhc3QgaW5kZXggdXNlZCBvbiB0aGlzIGtleSIsIGFsaWFzPSJsYXN0UHJlcHJvY2Vzc2VkSW5kZXgiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJrZXlJZCIsICJ1c2VySWQiLCAiYWxnb3JpdGhtIiwgInBsYXllcnMiLCAibGFzdFByZXByb2Nlc3NlZEluZGV4Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNcGNLZXkgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gcGxheWVycyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYucGxheWVyczoKICAgICAgICAgICAgZm9yIF9pdGVtX3BsYXllcnMgaW4gc2VsZi5wbGF5ZXJzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fcGxheWVyczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX3BsYXllcnMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsncGxheWVycyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNcGNLZXkgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAia2V5SWQiOiBvYmouZ2V0KCJrZXlJZCIpLAogICAgICAgICAgICAidXNlcklkIjogb2JqLmdldCgidXNlcklkIiksCiAgICAgICAgICAgICJhbGdvcml0aG0iOiBvYmouZ2V0KCJhbGdvcml0aG0iKSwKICAgICAgICAgICAgInBsYXllcnMiOiBbUGxheWVycy5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbInBsYXllcnMiXV0gaWYgb2JqLmdldCgicGxheWVycyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImxhc3RQcmVwcm9jZXNzZWRJbmRleCI6IG9iai5nZXQoImxhc3RQcmVwcm9jZXNzZWRJbmRleCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/multichain_deployment_metadata.py b/fireblocks/models/multichain_deployment_metadata.py index d148c4c9..b2a3d9a0 100644 --- a/fireblocks/models/multichain_deployment_metadata.py +++ b/fireblocks/models/multichain_deployment_metadata.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.parameter_with_value import ParameterWithValue -from typing import Optional, Set -from typing_extensions import Self - -class MultichainDeploymentMetadata(BaseModel): - """ - The multichain deployment metadata - """ # noqa: E501 - id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the deployment metadata") - address: Optional[StrictStr] = Field(default=None, description="The address of the deployed contract") - template_id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the contract template", alias="templateId") - deployment_salt: Optional[StrictStr] = Field(default=None, description="The salt used for the deployment", alias="deploymentSalt") - init_params: Optional[List[ParameterWithValue]] = Field(default=None, alias="initParams") - encoded_init_params: Optional[StrictStr] = Field(default=None, description="The encoded init params", alias="encodedInitParams") - __properties: ClassVar[List[str]] = ["id", "address", "templateId", "deploymentSalt", "initParams", "encodedInitParams"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of MultichainDeploymentMetadata from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in init_params (list) - _items = [] - if self.init_params: - for _item_init_params in self.init_params: - if _item_init_params: - _items.append(_item_init_params.to_dict()) - _dict['initParams'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of MultichainDeploymentMetadata from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "address": obj.get("address"), - "templateId": obj.get("templateId"), - "deploymentSalt": obj.get("deploymentSalt"), - "initParams": [ParameterWithValue.from_dict(_item) for _item in obj["initParams"]] if obj.get("initParams") is not None else None, - "encodedInitParams": obj.get("encodedInitParams") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlcl93aXRoX3ZhbHVlIGltcG9ydCBQYXJhbWV0ZXJXaXRoVmFsdWUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTXVsdGljaGFpbkRlcGxveW1lbnRNZXRhZGF0YShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUaGUgbXVsdGljaGFpbiBkZXBsb3ltZW50IG1ldGFkYXRhCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZGVwbG95bWVudCBtZXRhZGF0YSIpCiAgICBhZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGFkZHJlc3Mgb2YgdGhlIGRlcGxveWVkIGNvbnRyYWN0IikKICAgIHRlbXBsYXRlX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb250cmFjdCB0ZW1wbGF0ZSIsIGFsaWFzPSJ0ZW1wbGF0ZUlkIikKICAgIGRlcGxveW1lbnRfc2FsdDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBzYWx0IHVzZWQgZm9yIHRoZSBkZXBsb3ltZW50IiwgYWxpYXM9ImRlcGxveW1lbnRTYWx0IikKICAgIGluaXRfcGFyYW1zOiBPcHRpb25hbFtMaXN0W1BhcmFtZXRlcldpdGhWYWx1ZV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iaW5pdFBhcmFtcyIpCiAgICBlbmNvZGVkX2luaXRfcGFyYW1zOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGVuY29kZWQgaW5pdCBwYXJhbXMiLCBhbGlhcz0iZW5jb2RlZEluaXRQYXJhbXMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJhZGRyZXNzIiwgInRlbXBsYXRlSWQiLCAiZGVwbG95bWVudFNhbHQiLCAiaW5pdFBhcmFtcyIsICJlbmNvZGVkSW5pdFBhcmFtcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTXVsdGljaGFpbkRlcGxveW1lbnRNZXRhZGF0YSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBpbml0X3BhcmFtcyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuaW5pdF9wYXJhbXM6CiAgICAgICAgICAgIGZvciBfaXRlbV9pbml0X3BhcmFtcyBpbiBzZWxmLmluaXRfcGFyYW1zOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1faW5pdF9wYXJhbXM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9pbml0X3BhcmFtcy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0Wydpbml0UGFyYW1zJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE11bHRpY2hhaW5EZXBsb3ltZW50TWV0YWRhdGEgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAiYWRkcmVzcyI6IG9iai5nZXQoImFkZHJlc3MiKSwKICAgICAgICAgICAgInRlbXBsYXRlSWQiOiBvYmouZ2V0KCJ0ZW1wbGF0ZUlkIiksCiAgICAgICAgICAgICJkZXBsb3ltZW50U2FsdCI6IG9iai5nZXQoImRlcGxveW1lbnRTYWx0IiksCiAgICAgICAgICAgICJpbml0UGFyYW1zIjogW1BhcmFtZXRlcldpdGhWYWx1ZS5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImluaXRQYXJhbXMiXV0gaWYgb2JqLmdldCgiaW5pdFBhcmFtcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImVuY29kZWRJbml0UGFyYW1zIjogb2JqLmdldCgiZW5jb2RlZEluaXRQYXJhbXMiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/network_channel.py b/fireblocks/models/network_channel.py index 45a5f75a..162f627d 100644 --- a/fireblocks/models/network_channel.py +++ b/fireblocks/models/network_channel.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class NetworkChannel(BaseModel): - """ - Deprecated in the only used reference - NetworkConnectionResponse - """ # noqa: E501 - network_id: Optional[StrictStr] = Field(default=None, alias="networkId") - name: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["networkId", "name"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of NetworkChannel from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of NetworkChannel from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "networkId": obj.get("networkId"), - "name": obj.get("name") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBOZXR3b3JrQ2hhbm5lbChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBEZXByZWNhdGVkIGluIHRoZSBvbmx5IHVzZWQgcmVmZXJlbmNlIC0gTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgbmV0d29ya19pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im5ldHdvcmtJZCIpCiAgICBuYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJuZXR3b3JrSWQiLCAibmFtZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTmV0d29ya0NoYW5uZWwgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTmV0d29ya0NoYW5uZWwgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibmV0d29ya0lkIjogb2JqLmdldCgibmV0d29ya0lkIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/network_connection.py b/fireblocks/models/network_connection.py index bc9c65da..890c8b12 100644 --- a/fireblocks/models/network_connection.py +++ b/fireblocks/models/network_connection.py @@ -1,105 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.network_connection_routing_policy_value import NetworkConnectionRoutingPolicyValue -from typing import Optional, Set -from typing_extensions import Self - -class NetworkConnection(BaseModel): - """ - NetworkConnection - """ # noqa: E501 - local_network_id: StrictStr = Field(description="The network ID of the profile trying to create the connection.", alias="localNetworkId") - remote_network_id: StrictStr = Field(description="The network ID the profile is attempting to connect to.", alias="remoteNetworkId") - routing_policy: Optional[Dict[str, NetworkConnectionRoutingPolicyValue]] = Field(default=None, alias="routingPolicy") - __properties: ClassVar[List[str]] = ["localNetworkId", "remoteNetworkId", "routingPolicy"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of NetworkConnection from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each value in routing_policy (dict) - _field_dict = {} - if self.routing_policy: - for _key_routing_policy in self.routing_policy: - if self.routing_policy[_key_routing_policy]: - _field_dict[_key_routing_policy] = self.routing_policy[_key_routing_policy].to_dict() - _dict['routingPolicy'] = _field_dict - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of NetworkConnection from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "localNetworkId": obj.get("localNetworkId"), - "remoteNetworkId": obj.get("remoteNetworkId"), - "routingPolicy": dict( - (_k, NetworkConnectionRoutingPolicyValue.from_dict(_v)) - for _k, _v in obj["routingPolicy"].items() - ) - if obj.get("routingPolicy") is not None - else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfY29ubmVjdGlvbl9yb3V0aW5nX3BvbGljeV92YWx1ZSBpbXBvcnQgTmV0d29ya0Nvbm5lY3Rpb25Sb3V0aW5nUG9saWN5VmFsdWUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTmV0d29ya0Nvbm5lY3Rpb24oQmFzZU1vZGVsKToKICAgICIiIgogICAgTmV0d29ya0Nvbm5lY3Rpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGxvY2FsX25ldHdvcmtfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgbmV0d29yayBJRCBvZiB0aGUgcHJvZmlsZSB0cnlpbmcgdG8gY3JlYXRlIHRoZSBjb25uZWN0aW9uLiIsIGFsaWFzPSJsb2NhbE5ldHdvcmtJZCIpCiAgICByZW1vdGVfbmV0d29ya19pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBuZXR3b3JrIElEIHRoZSBwcm9maWxlIGlzIGF0dGVtcHRpbmcgdG8gY29ubmVjdCB0by4iLCBhbGlhcz0icmVtb3RlTmV0d29ya0lkIikKICAgIHJvdXRpbmdfcG9saWN5OiBPcHRpb25hbFtEaWN0W3N0ciwgTmV0d29ya0Nvbm5lY3Rpb25Sb3V0aW5nUG9saWN5VmFsdWVdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InJvdXRpbmdQb2xpY3kiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJsb2NhbE5ldHdvcmtJZCIsICJyZW1vdGVOZXR3b3JrSWQiLCAicm91dGluZ1BvbGljeSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTmV0d29ya0Nvbm5lY3Rpb24gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIHZhbHVlIGluIHJvdXRpbmdfcG9saWN5IChkaWN0KQogICAgICAgIF9maWVsZF9kaWN0ID0ge30KICAgICAgICBpZiBzZWxmLnJvdXRpbmdfcG9saWN5OgogICAgICAgICAgICBmb3IgX2tleV9yb3V0aW5nX3BvbGljeSBpbiBzZWxmLnJvdXRpbmdfcG9saWN5OgogICAgICAgICAgICAgICAgaWYgc2VsZi5yb3V0aW5nX3BvbGljeVtfa2V5X3JvdXRpbmdfcG9saWN5XToKICAgICAgICAgICAgICAgICAgICBfZmllbGRfZGljdFtfa2V5X3JvdXRpbmdfcG9saWN5XSA9IHNlbGYucm91dGluZ19wb2xpY3lbX2tleV9yb3V0aW5nX3BvbGljeV0udG9fZGljdCgpCiAgICAgICAgICAgIF9kaWN0Wydyb3V0aW5nUG9saWN5J10gPSBfZmllbGRfZGljdAogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTmV0d29ya0Nvbm5lY3Rpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibG9jYWxOZXR3b3JrSWQiOiBvYmouZ2V0KCJsb2NhbE5ldHdvcmtJZCIpLAogICAgICAgICAgICAicmVtb3RlTmV0d29ya0lkIjogb2JqLmdldCgicmVtb3RlTmV0d29ya0lkIiksCiAgICAgICAgICAgICJyb3V0aW5nUG9saWN5IjogZGljdCgKICAgICAgICAgICAgICAgIChfaywgTmV0d29ya0Nvbm5lY3Rpb25Sb3V0aW5nUG9saWN5VmFsdWUuZnJvbV9kaWN0KF92KSkKICAgICAgICAgICAgICAgIGZvciBfaywgX3YgaW4gb2JqWyJyb3V0aW5nUG9saWN5Il0uaXRlbXMoKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIG9iai5nZXQoInJvdXRpbmdQb2xpY3kiKSBpcyBub3QgTm9uZQogICAgICAgICAgICBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/network_connection_response.py b/fireblocks/models/network_connection_response.py index 49b54a94..86c441a2 100644 --- a/fireblocks/models/network_connection_response.py +++ b/fireblocks/models/network_connection_response.py @@ -1,128 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.network_channel import NetworkChannel -from fireblocks.models.network_connection_routing_policy_value import NetworkConnectionRoutingPolicyValue -from fireblocks.models.network_connection_status import NetworkConnectionStatus -from fireblocks.models.network_id import NetworkId -from typing import Optional, Set -from typing_extensions import Self - -class NetworkConnectionResponse(BaseModel): - """ - NetworkConnectionResponse - """ # noqa: E501 - id: StrictStr - local_channel: Optional[NetworkChannel] = Field(default=None, description="Deprecated - Replaced by `localNetworkId`", alias="localChannel") - remote_channel: Optional[NetworkChannel] = Field(default=None, description="Deprecated - Replaced by `remoteNetworkId`", alias="remoteChannel") - status: NetworkConnectionStatus - local_network_id: NetworkId = Field(alias="localNetworkId") - remote_network_id: NetworkId = Field(alias="remoteNetworkId") - routing_policy: Dict[str, NetworkConnectionRoutingPolicyValue] = Field(alias="routingPolicy") - __properties: ClassVar[List[str]] = ["id", "localChannel", "remoteChannel", "status", "localNetworkId", "remoteNetworkId", "routingPolicy"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of NetworkConnectionResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of local_channel - if self.local_channel: - _dict['localChannel'] = self.local_channel.to_dict() - # override the default output from pydantic by calling `to_dict()` of remote_channel - if self.remote_channel: - _dict['remoteChannel'] = self.remote_channel.to_dict() - # override the default output from pydantic by calling `to_dict()` of local_network_id - if self.local_network_id: - _dict['localNetworkId'] = self.local_network_id.to_dict() - # override the default output from pydantic by calling `to_dict()` of remote_network_id - if self.remote_network_id: - _dict['remoteNetworkId'] = self.remote_network_id.to_dict() - # override the default output from pydantic by calling `to_dict()` of each value in routing_policy (dict) - _field_dict = {} - if self.routing_policy: - for _key_routing_policy in self.routing_policy: - if self.routing_policy[_key_routing_policy]: - _field_dict[_key_routing_policy] = self.routing_policy[_key_routing_policy].to_dict() - _dict['routingPolicy'] = _field_dict - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of NetworkConnectionResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "localChannel": NetworkChannel.from_dict(obj["localChannel"]) if obj.get("localChannel") is not None else None, - "remoteChannel": NetworkChannel.from_dict(obj["remoteChannel"]) if obj.get("remoteChannel") is not None else None, - "status": obj.get("status"), - "localNetworkId": NetworkId.from_dict(obj["localNetworkId"]) if obj.get("localNetworkId") is not None else None, - "remoteNetworkId": NetworkId.from_dict(obj["remoteNetworkId"]) if obj.get("remoteNetworkId") is not None else None, - "routingPolicy": dict( - (_k, NetworkConnectionRoutingPolicyValue.from_dict(_v)) - for _k, _v in obj["routingPolicy"].items() - ) - if obj.get("routingPolicy") is not None - else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfY2hhbm5lbCBpbXBvcnQgTmV0d29ya0NoYW5uZWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5uZXR3b3JrX2Nvbm5lY3Rpb25fcm91dGluZ19wb2xpY3lfdmFsdWUgaW1wb3J0IE5ldHdvcmtDb25uZWN0aW9uUm91dGluZ1BvbGljeVZhbHVlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19jb25uZWN0aW9uX3N0YXR1cyBpbXBvcnQgTmV0d29ya0Nvbm5lY3Rpb25TdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5uZXR3b3JrX2lkIGltcG9ydCBOZXR3b3JrSWQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyCiAgICBsb2NhbF9jaGFubmVsOiBPcHRpb25hbFtOZXR3b3JrQ2hhbm5lbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXByZWNhdGVkIC0gUmVwbGFjZWQgYnkgYGxvY2FsTmV0d29ya0lkYCIsIGFsaWFzPSJsb2NhbENoYW5uZWwiKQogICAgcmVtb3RlX2NoYW5uZWw6IE9wdGlvbmFsW05ldHdvcmtDaGFubmVsXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRlcHJlY2F0ZWQgLSBSZXBsYWNlZCBieSBgcmVtb3RlTmV0d29ya0lkYCIsIGFsaWFzPSJyZW1vdGVDaGFubmVsIikKICAgIHN0YXR1czogTmV0d29ya0Nvbm5lY3Rpb25TdGF0dXMKICAgIGxvY2FsX25ldHdvcmtfaWQ6IE5ldHdvcmtJZCA9IEZpZWxkKGFsaWFzPSJsb2NhbE5ldHdvcmtJZCIpCiAgICByZW1vdGVfbmV0d29ya19pZDogTmV0d29ya0lkID0gRmllbGQoYWxpYXM9InJlbW90ZU5ldHdvcmtJZCIpCiAgICByb3V0aW5nX3BvbGljeTogRGljdFtzdHIsIE5ldHdvcmtDb25uZWN0aW9uUm91dGluZ1BvbGljeVZhbHVlXSA9IEZpZWxkKGFsaWFzPSJyb3V0aW5nUG9saWN5IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAibG9jYWxDaGFubmVsIiwgInJlbW90ZUNoYW5uZWwiLCAic3RhdHVzIiwgImxvY2FsTmV0d29ya0lkIiwgInJlbW90ZU5ldHdvcmtJZCIsICJyb3V0aW5nUG9saWN5Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgbG9jYWxfY2hhbm5lbAogICAgICAgIGlmIHNlbGYubG9jYWxfY2hhbm5lbDoKICAgICAgICAgICAgX2RpY3RbJ2xvY2FsQ2hhbm5lbCddID0gc2VsZi5sb2NhbF9jaGFubmVsLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiByZW1vdGVfY2hhbm5lbAogICAgICAgIGlmIHNlbGYucmVtb3RlX2NoYW5uZWw6CiAgICAgICAgICAgIF9kaWN0WydyZW1vdGVDaGFubmVsJ10gPSBzZWxmLnJlbW90ZV9jaGFubmVsLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBsb2NhbF9uZXR3b3JrX2lkCiAgICAgICAgaWYgc2VsZi5sb2NhbF9uZXR3b3JrX2lkOgogICAgICAgICAgICBfZGljdFsnbG9jYWxOZXR3b3JrSWQnXSA9IHNlbGYubG9jYWxfbmV0d29ya19pZC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcmVtb3RlX25ldHdvcmtfaWQKICAgICAgICBpZiBzZWxmLnJlbW90ZV9uZXR3b3JrX2lkOgogICAgICAgICAgICBfZGljdFsncmVtb3RlTmV0d29ya0lkJ10gPSBzZWxmLnJlbW90ZV9uZXR3b3JrX2lkLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIHZhbHVlIGluIHJvdXRpbmdfcG9saWN5IChkaWN0KQogICAgICAgIF9maWVsZF9kaWN0ID0ge30KICAgICAgICBpZiBzZWxmLnJvdXRpbmdfcG9saWN5OgogICAgICAgICAgICBmb3IgX2tleV9yb3V0aW5nX3BvbGljeSBpbiBzZWxmLnJvdXRpbmdfcG9saWN5OgogICAgICAgICAgICAgICAgaWYgc2VsZi5yb3V0aW5nX3BvbGljeVtfa2V5X3JvdXRpbmdfcG9saWN5XToKICAgICAgICAgICAgICAgICAgICBfZmllbGRfZGljdFtfa2V5X3JvdXRpbmdfcG9saWN5XSA9IHNlbGYucm91dGluZ19wb2xpY3lbX2tleV9yb3V0aW5nX3BvbGljeV0udG9fZGljdCgpCiAgICAgICAgICAgIF9kaWN0Wydyb3V0aW5nUG9saWN5J10gPSBfZmllbGRfZGljdAogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJsb2NhbENoYW5uZWwiOiBOZXR3b3JrQ2hhbm5lbC5mcm9tX2RpY3Qob2JqWyJsb2NhbENoYW5uZWwiXSkgaWYgb2JqLmdldCgibG9jYWxDaGFubmVsIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAicmVtb3RlQ2hhbm5lbCI6IE5ldHdvcmtDaGFubmVsLmZyb21fZGljdChvYmpbInJlbW90ZUNoYW5uZWwiXSkgaWYgb2JqLmdldCgicmVtb3RlQ2hhbm5lbCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAibG9jYWxOZXR3b3JrSWQiOiBOZXR3b3JrSWQuZnJvbV9kaWN0KG9ialsibG9jYWxOZXR3b3JrSWQiXSkgaWYgb2JqLmdldCgibG9jYWxOZXR3b3JrSWQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJyZW1vdGVOZXR3b3JrSWQiOiBOZXR3b3JrSWQuZnJvbV9kaWN0KG9ialsicmVtb3RlTmV0d29ya0lkIl0pIGlmIG9iai5nZXQoInJlbW90ZU5ldHdvcmtJZCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInJvdXRpbmdQb2xpY3kiOiBkaWN0KAogICAgICAgICAgICAgICAgKF9rLCBOZXR3b3JrQ29ubmVjdGlvblJvdXRpbmdQb2xpY3lWYWx1ZS5mcm9tX2RpY3QoX3YpKQogICAgICAgICAgICAgICAgZm9yIF9rLCBfdiBpbiBvYmpbInJvdXRpbmdQb2xpY3kiXS5pdGVtcygpCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgb2JqLmdldCgicm91dGluZ1BvbGljeSIpIGlzIG5vdCBOb25lCiAgICAgICAgICAgIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/network_connection_routing_policy_value.py b/fireblocks/models/network_connection_routing_policy_value.py index a58608ae..1c6dfebe 100644 --- a/fireblocks/models/network_connection_routing_policy_value.py +++ b/fireblocks/models/network_connection_routing_policy_value.py @@ -1,152 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.custom_routing_dest import CustomRoutingDest -from fireblocks.models.default_network_routing_dest import DefaultNetworkRoutingDest -from fireblocks.models.none_network_routing_dest import NoneNetworkRoutingDest -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -NETWORKCONNECTIONROUTINGPOLICYVALUE_ONE_OF_SCHEMAS = ["CustomRoutingDest", "DefaultNetworkRoutingDest", "NoneNetworkRoutingDest"] - -class NetworkConnectionRoutingPolicyValue(BaseModel): - """ - NetworkConnectionRoutingPolicyValue - """ - # data type: CustomRoutingDest - oneof_schema_1_validator: Optional[CustomRoutingDest] = None - # data type: DefaultNetworkRoutingDest - oneof_schema_2_validator: Optional[DefaultNetworkRoutingDest] = None - # data type: NoneNetworkRoutingDest - oneof_schema_3_validator: Optional[NoneNetworkRoutingDest] = None - actual_instance: Optional[Union[CustomRoutingDest, DefaultNetworkRoutingDest, NoneNetworkRoutingDest]] = None - one_of_schemas: Set[str] = { "CustomRoutingDest", "DefaultNetworkRoutingDest", "NoneNetworkRoutingDest" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = NetworkConnectionRoutingPolicyValue.model_construct() - error_messages = [] - match = 0 - # validate data type: CustomRoutingDest - if not isinstance(v, CustomRoutingDest): - error_messages.append(f"Error! Input type `{type(v)}` is not `CustomRoutingDest`") - else: - match += 1 - # validate data type: DefaultNetworkRoutingDest - if not isinstance(v, DefaultNetworkRoutingDest): - error_messages.append(f"Error! Input type `{type(v)}` is not `DefaultNetworkRoutingDest`") - else: - match += 1 - # validate data type: NoneNetworkRoutingDest - if not isinstance(v, NoneNetworkRoutingDest): - error_messages.append(f"Error! Input type `{type(v)}` is not `NoneNetworkRoutingDest`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in NetworkConnectionRoutingPolicyValue with oneOf schemas: CustomRoutingDest, DefaultNetworkRoutingDest, NoneNetworkRoutingDest. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in NetworkConnectionRoutingPolicyValue with oneOf schemas: CustomRoutingDest, DefaultNetworkRoutingDest, NoneNetworkRoutingDest. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into CustomRoutingDest - try: - instance.actual_instance = CustomRoutingDest.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into DefaultNetworkRoutingDest - try: - instance.actual_instance = DefaultNetworkRoutingDest.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into NoneNetworkRoutingDest - try: - instance.actual_instance = NoneNetworkRoutingDest.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into NetworkConnectionRoutingPolicyValue with oneOf schemas: CustomRoutingDest, DefaultNetworkRoutingDest, NoneNetworkRoutingDest. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into NetworkConnectionRoutingPolicyValue with oneOf schemas: CustomRoutingDest, DefaultNetworkRoutingDest, NoneNetworkRoutingDest. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], CustomRoutingDest, DefaultNetworkRoutingDest, NoneNetworkRoutingDest]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3VzdG9tX3JvdXRpbmdfZGVzdCBpbXBvcnQgQ3VzdG9tUm91dGluZ0Rlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZWZhdWx0X25ldHdvcmtfcm91dGluZ19kZXN0IGltcG9ydCBEZWZhdWx0TmV0d29ya1JvdXRpbmdEZXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubm9uZV9uZXR3b3JrX3JvdXRpbmdfZGVzdCBpbXBvcnQgTm9uZU5ldHdvcmtSb3V0aW5nRGVzdApmcm9tIHB5ZGFudGljIGltcG9ydCBTdHJpY3RTdHIsIEZpZWxkCmZyb20gdHlwaW5nIGltcG9ydCBVbmlvbiwgTGlzdCwgU2V0LCBPcHRpb25hbCwgRGljdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBMaXRlcmFsLCBTZWxmCgpORVRXT1JLQ09OTkVDVElPTlJPVVRJTkdQT0xJQ1lWQUxVRV9PTkVfT0ZfU0NIRU1BUyA9IFsiQ3VzdG9tUm91dGluZ0Rlc3QiLCAiRGVmYXVsdE5ldHdvcmtSb3V0aW5nRGVzdCIsICJOb25lTmV0d29ya1JvdXRpbmdEZXN0Il0KCmNsYXNzIE5ldHdvcmtDb25uZWN0aW9uUm91dGluZ1BvbGljeVZhbHVlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIE5ldHdvcmtDb25uZWN0aW9uUm91dGluZ1BvbGljeVZhbHVlCiAgICAiIiIKICAgICMgZGF0YSB0eXBlOiBDdXN0b21Sb3V0aW5nRGVzdAogICAgb25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yOiBPcHRpb25hbFtDdXN0b21Sb3V0aW5nRGVzdF0gPSBOb25lCiAgICAjIGRhdGEgdHlwZTogRGVmYXVsdE5ldHdvcmtSb3V0aW5nRGVzdAogICAgb25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yOiBPcHRpb25hbFtEZWZhdWx0TmV0d29ya1JvdXRpbmdEZXN0XSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBOb25lTmV0d29ya1JvdXRpbmdEZXN0CiAgICBvbmVvZl9zY2hlbWFfM192YWxpZGF0b3I6IE9wdGlvbmFsW05vbmVOZXR3b3JrUm91dGluZ0Rlc3RdID0gTm9uZQogICAgYWN0dWFsX2luc3RhbmNlOiBPcHRpb25hbFtVbmlvbltDdXN0b21Sb3V0aW5nRGVzdCwgRGVmYXVsdE5ldHdvcmtSb3V0aW5nRGVzdCwgTm9uZU5ldHdvcmtSb3V0aW5nRGVzdF1dID0gTm9uZQogICAgb25lX29mX3NjaGVtYXM6IFNldFtzdHJdID0geyAiQ3VzdG9tUm91dGluZ0Rlc3QiLCAiRGVmYXVsdE5ldHdvcmtSb3V0aW5nRGVzdCIsICJOb25lTmV0d29ya1JvdXRpbmdEZXN0IiB9CgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gTmV0d29ya0Nvbm5lY3Rpb25Sb3V0aW5nUG9saWN5VmFsdWUubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IEN1c3RvbVJvdXRpbmdEZXN0CiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgQ3VzdG9tUm91dGluZ0Rlc3QpOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYEN1c3RvbVJvdXRpbmdEZXN0YCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBEZWZhdWx0TmV0d29ya1JvdXRpbmdEZXN0CiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgRGVmYXVsdE5ldHdvcmtSb3V0aW5nRGVzdCk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgRGVmYXVsdE5ldHdvcmtSb3V0aW5nRGVzdGAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogTm9uZU5ldHdvcmtSb3V0aW5nRGVzdAogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIE5vbmVOZXR3b3JrUm91dGluZ0Rlc3QpOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYE5vbmVOZXR3b3JrUm91dGluZ0Rlc3RgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIE5ldHdvcmtDb25uZWN0aW9uUm91dGluZ1BvbGljeVZhbHVlIHdpdGggb25lT2Ygc2NoZW1hczogQ3VzdG9tUm91dGluZ0Rlc3QsIERlZmF1bHROZXR3b3JrUm91dGluZ0Rlc3QsIE5vbmVOZXR3b3JrUm91dGluZ0Rlc3QuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gTmV0d29ya0Nvbm5lY3Rpb25Sb3V0aW5nUG9saWN5VmFsdWUgd2l0aCBvbmVPZiBzY2hlbWFzOiBDdXN0b21Sb3V0aW5nRGVzdCwgRGVmYXVsdE5ldHdvcmtSb3V0aW5nRGVzdCwgTm9uZU5ldHdvcmtSb3V0aW5nRGVzdC4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIHYKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IFVuaW9uW3N0ciwgRGljdFtzdHIsIEFueV1dKSAtPiBTZWxmOgogICAgICAgIHJldHVybiBjbHMuZnJvbV9qc29uKGpzb24uZHVtcHMob2JqKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIlJldHVybnMgdGhlIG9iamVjdCByZXByZXNlbnRlZCBieSB0aGUganNvbiBzdHJpbmciIiIKICAgICAgICBpbnN0YW5jZSA9IGNscy5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gQ3VzdG9tUm91dGluZ0Rlc3QKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IEN1c3RvbVJvdXRpbmdEZXN0LmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIERlZmF1bHROZXR3b3JrUm91dGluZ0Rlc3QKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IERlZmF1bHROZXR3b3JrUm91dGluZ0Rlc3QuZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gTm9uZU5ldHdvcmtSb3V0aW5nRGVzdAogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gTm9uZU5ldHdvcmtSb3V0aW5nRGVzdC5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIE5ldHdvcmtDb25uZWN0aW9uUm91dGluZ1BvbGljeVZhbHVlIHdpdGggb25lT2Ygc2NoZW1hczogQ3VzdG9tUm91dGluZ0Rlc3QsIERlZmF1bHROZXR3b3JrUm91dGluZ0Rlc3QsIE5vbmVOZXR3b3JrUm91dGluZ0Rlc3QuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gTmV0d29ya0Nvbm5lY3Rpb25Sb3V0aW5nUG9saWN5VmFsdWUgd2l0aCBvbmVPZiBzY2hlbWFzOiBDdXN0b21Sb3V0aW5nRGVzdCwgRGVmYXVsdE5ldHdvcmtSb3V0aW5nRGVzdCwgTm9uZU5ldHdvcmtSb3V0aW5nRGVzdC4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiAibnVsbCIKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2pzb24iKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbik6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKCkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLmFjdHVhbF9pbnN0YW5jZSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBPcHRpb25hbFtVbmlvbltEaWN0W3N0ciwgQW55XSwgQ3VzdG9tUm91dGluZ0Rlc3QsIERlZmF1bHROZXR3b3JrUm91dGluZ0Rlc3QsIE5vbmVOZXR3b3JrUm91dGluZ0Rlc3RdXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgcHJpbWl0aXZlIHR5cGUKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/network_connection_status.py b/fireblocks/models/network_connection_status.py index a55e3b84..1b28ac36 100644 --- a/fireblocks/models/network_connection_status.py +++ b/fireblocks/models/network_connection_status.py @@ -1,45 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class NetworkConnectionStatus(str, Enum): - """ - NetworkConnectionStatus - """ - - """ - allowed enum values - """ - WAITING_FOR_APPROVAL = 'WAITING_FOR_APPROVAL' - WAITING_FOR_PEER_APPROVAL = 'WAITING_FOR_PEER_APPROVAL' - APPROVED = 'APPROVED' - CANCELLED = 'CANCELLED' - FAILED = 'FAILED' - REJECTED = 'REJECTED' - REJECTED_BY_PEER = 'REJECTED_BY_PEER' - REMOVED = 'REMOVED' - REMOVED_BY_PEER = 'REMOVED_BY_PEER' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of NetworkConnectionStatus from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBOZXR3b3JrQ29ubmVjdGlvblN0YXR1cyhzdHIsIEVudW0pOgogICAgIiIiCiAgICBOZXR3b3JrQ29ubmVjdGlvblN0YXR1cwogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIFdBSVRJTkdfRk9SX0FQUFJPVkFMID0gJ1dBSVRJTkdfRk9SX0FQUFJPVkFMJwogICAgV0FJVElOR19GT1JfUEVFUl9BUFBST1ZBTCA9ICdXQUlUSU5HX0ZPUl9QRUVSX0FQUFJPVkFMJwogICAgQVBQUk9WRUQgPSAnQVBQUk9WRUQnCiAgICBDQU5DRUxMRUQgPSAnQ0FOQ0VMTEVEJwogICAgRkFJTEVEID0gJ0ZBSUxFRCcKICAgIFJFSkVDVEVEID0gJ1JFSkVDVEVEJwogICAgUkVKRUNURURfQllfUEVFUiA9ICdSRUpFQ1RFRF9CWV9QRUVSJwogICAgUkVNT1ZFRCA9ICdSRU1PVkVEJwogICAgUkVNT1ZFRF9CWV9QRUVSID0gJ1JFTU9WRURfQllfUEVFUicKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOZXR3b3JrQ29ubmVjdGlvblN0YXR1cyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/network_fee.py b/fireblocks/models/network_fee.py index b3af8e51..202e2f69 100644 --- a/fireblocks/models/network_fee.py +++ b/fireblocks/models/network_fee.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class NetworkFee(BaseModel): - """ - NetworkFee - """ # noqa: E501 - fee_per_byte: Optional[StrictStr] = Field(default=None, alias="feePerByte") - gas_price: Optional[StrictStr] = Field(default=None, alias="gasPrice") - network_fee: Optional[StrictStr] = Field(default=None, alias="networkFee") - base_fee: Optional[StrictStr] = Field(default=None, description="(optional) Base Fee according to EIP-1559 (ETH assets)", alias="baseFee") - priority_fee: Optional[StrictStr] = Field(default=None, description="(optional) Priority Fee according to EIP-1559 (ETH assets)", alias="priorityFee") - __properties: ClassVar[List[str]] = ["feePerByte", "gasPrice", "networkFee", "baseFee", "priorityFee"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of NetworkFee from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of NetworkFee from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "feePerByte": obj.get("feePerByte"), - "gasPrice": obj.get("gasPrice"), - "networkFee": obj.get("networkFee"), - "baseFee": obj.get("baseFee"), - "priorityFee": obj.get("priorityFee") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBOZXR3b3JrRmVlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIE5ldHdvcmtGZWUKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGZlZV9wZXJfYnl0ZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImZlZVBlckJ5dGUiKQogICAgZ2FzX3ByaWNlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZ2FzUHJpY2UiKQogICAgbmV0d29ya19mZWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJuZXR3b3JrRmVlIikKICAgIGJhc2VfZmVlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iKG9wdGlvbmFsKSBCYXNlIEZlZSBhY2NvcmRpbmcgdG8gRUlQLTE1NTkgKEVUSCBhc3NldHMpIiwgYWxpYXM9ImJhc2VGZWUiKQogICAgcHJpb3JpdHlfZmVlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iKG9wdGlvbmFsKSBQcmlvcml0eSBGZWUgYWNjb3JkaW5nIHRvIEVJUC0xNTU5IChFVEggYXNzZXRzKSIsIGFsaWFzPSJwcmlvcml0eUZlZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImZlZVBlckJ5dGUiLCAiZ2FzUHJpY2UiLCAibmV0d29ya0ZlZSIsICJiYXNlRmVlIiwgInByaW9yaXR5RmVlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOZXR3b3JrRmVlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE5ldHdvcmtGZWUgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZmVlUGVyQnl0ZSI6IG9iai5nZXQoImZlZVBlckJ5dGUiKSwKICAgICAgICAgICAgImdhc1ByaWNlIjogb2JqLmdldCgiZ2FzUHJpY2UiKSwKICAgICAgICAgICAgIm5ldHdvcmtGZWUiOiBvYmouZ2V0KCJuZXR3b3JrRmVlIiksCiAgICAgICAgICAgICJiYXNlRmVlIjogb2JqLmdldCgiYmFzZUZlZSIpLAogICAgICAgICAgICAicHJpb3JpdHlGZWUiOiBvYmouZ2V0KCJwcmlvcml0eUZlZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/network_id.py b/fireblocks/models/network_id.py index ea41e423..5398fa25 100644 --- a/fireblocks/models/network_id.py +++ b/fireblocks/models/network_id.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class NetworkId(BaseModel): - """ - NetworkId - """ # noqa: E501 - id: StrictStr - name: StrictStr - __properties: ClassVar[List[str]] = ["id", "name"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of NetworkId from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of NetworkId from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTmV0d29ya0lkKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIE5ldHdvcmtJZAogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0cgogICAgbmFtZTogU3RyaWN0U3RyCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgIm5hbWUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE5ldHdvcmtJZCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOZXR3b3JrSWQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/network_id_response.py b/fireblocks/models/network_id_response.py index c1896b1f..ecd437d0 100644 --- a/fireblocks/models/network_id_response.py +++ b/fireblocks/models/network_id_response.py @@ -1,107 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.network_id_routing_policy_value import NetworkIdRoutingPolicyValue -from typing import Optional, Set -from typing_extensions import Self - -class NetworkIdResponse(BaseModel): - """ - NetworkIdResponse - """ # noqa: E501 - routing_policy: Optional[Dict[str, NetworkIdRoutingPolicyValue]] = Field(default=None, alias="routingPolicy") - is_discoverable: Optional[StrictBool] = Field(default=None, description="The specific network is discoverable.", alias="isDiscoverable") - id: Optional[StrictStr] = Field(default=None, description="The specific network id") - name: Optional[StrictStr] = Field(default=None, description="The specific network name") - __properties: ClassVar[List[str]] = ["routingPolicy", "isDiscoverable", "id", "name"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of NetworkIdResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each value in routing_policy (dict) - _field_dict = {} - if self.routing_policy: - for _key_routing_policy in self.routing_policy: - if self.routing_policy[_key_routing_policy]: - _field_dict[_key_routing_policy] = self.routing_policy[_key_routing_policy].to_dict() - _dict['routingPolicy'] = _field_dict - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of NetworkIdResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "routingPolicy": dict( - (_k, NetworkIdRoutingPolicyValue.from_dict(_v)) - for _k, _v in obj["routingPolicy"].items() - ) - if obj.get("routingPolicy") is not None - else None, - "isDiscoverable": obj.get("isDiscoverable"), - "id": obj.get("id"), - "name": obj.get("name") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfaWRfcm91dGluZ19wb2xpY3lfdmFsdWUgaW1wb3J0IE5ldHdvcmtJZFJvdXRpbmdQb2xpY3lWYWx1ZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBOZXR3b3JrSWRSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBOZXR3b3JrSWRSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgcm91dGluZ19wb2xpY3k6IE9wdGlvbmFsW0RpY3Rbc3RyLCBOZXR3b3JrSWRSb3V0aW5nUG9saWN5VmFsdWVdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InJvdXRpbmdQb2xpY3kiKQogICAgaXNfZGlzY292ZXJhYmxlOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBzcGVjaWZpYyBuZXR3b3JrIGlzIGRpc2NvdmVyYWJsZS4iLCBhbGlhcz0iaXNEaXNjb3ZlcmFibGUiKQogICAgaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgc3BlY2lmaWMgbmV0d29yayBpZCIpCiAgICBuYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHNwZWNpZmljIG5ldHdvcmsgbmFtZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInJvdXRpbmdQb2xpY3kiLCAiaXNEaXNjb3ZlcmFibGUiLCAiaWQiLCAibmFtZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTmV0d29ya0lkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIHZhbHVlIGluIHJvdXRpbmdfcG9saWN5IChkaWN0KQogICAgICAgIF9maWVsZF9kaWN0ID0ge30KICAgICAgICBpZiBzZWxmLnJvdXRpbmdfcG9saWN5OgogICAgICAgICAgICBmb3IgX2tleV9yb3V0aW5nX3BvbGljeSBpbiBzZWxmLnJvdXRpbmdfcG9saWN5OgogICAgICAgICAgICAgICAgaWYgc2VsZi5yb3V0aW5nX3BvbGljeVtfa2V5X3JvdXRpbmdfcG9saWN5XToKICAgICAgICAgICAgICAgICAgICBfZmllbGRfZGljdFtfa2V5X3JvdXRpbmdfcG9saWN5XSA9IHNlbGYucm91dGluZ19wb2xpY3lbX2tleV9yb3V0aW5nX3BvbGljeV0udG9fZGljdCgpCiAgICAgICAgICAgIF9kaWN0Wydyb3V0aW5nUG9saWN5J10gPSBfZmllbGRfZGljdAogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTmV0d29ya0lkUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicm91dGluZ1BvbGljeSI6IGRpY3QoCiAgICAgICAgICAgICAgICAoX2ssIE5ldHdvcmtJZFJvdXRpbmdQb2xpY3lWYWx1ZS5mcm9tX2RpY3QoX3YpKQogICAgICAgICAgICAgICAgZm9yIF9rLCBfdiBpbiBvYmpbInJvdXRpbmdQb2xpY3kiXS5pdGVtcygpCiAgICAgICAgICAgICkKICAgICAgICAgICAgaWYgb2JqLmdldCgicm91dGluZ1BvbGljeSIpIGlzIG5vdCBOb25lCiAgICAgICAgICAgIGVsc2UgTm9uZSwKICAgICAgICAgICAgImlzRGlzY292ZXJhYmxlIjogb2JqLmdldCgiaXNEaXNjb3ZlcmFibGUiKSwKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/network_id_routing_policy_value.py b/fireblocks/models/network_id_routing_policy_value.py index a1d96c5a..de83db10 100644 --- a/fireblocks/models/network_id_routing_policy_value.py +++ b/fireblocks/models/network_id_routing_policy_value.py @@ -1,138 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.custom_routing_dest import CustomRoutingDest -from fireblocks.models.none_network_routing_dest import NoneNetworkRoutingDest -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -NETWORKIDROUTINGPOLICYVALUE_ONE_OF_SCHEMAS = ["CustomRoutingDest", "NoneNetworkRoutingDest"] - -class NetworkIdRoutingPolicyValue(BaseModel): - """ - NetworkIdRoutingPolicyValue - """ - # data type: CustomRoutingDest - oneof_schema_1_validator: Optional[CustomRoutingDest] = None - # data type: NoneNetworkRoutingDest - oneof_schema_2_validator: Optional[NoneNetworkRoutingDest] = None - actual_instance: Optional[Union[CustomRoutingDest, NoneNetworkRoutingDest]] = None - one_of_schemas: Set[str] = { "CustomRoutingDest", "NoneNetworkRoutingDest" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = NetworkIdRoutingPolicyValue.model_construct() - error_messages = [] - match = 0 - # validate data type: CustomRoutingDest - if not isinstance(v, CustomRoutingDest): - error_messages.append(f"Error! Input type `{type(v)}` is not `CustomRoutingDest`") - else: - match += 1 - # validate data type: NoneNetworkRoutingDest - if not isinstance(v, NoneNetworkRoutingDest): - error_messages.append(f"Error! Input type `{type(v)}` is not `NoneNetworkRoutingDest`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in NetworkIdRoutingPolicyValue with oneOf schemas: CustomRoutingDest, NoneNetworkRoutingDest. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in NetworkIdRoutingPolicyValue with oneOf schemas: CustomRoutingDest, NoneNetworkRoutingDest. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into CustomRoutingDest - try: - instance.actual_instance = CustomRoutingDest.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into NoneNetworkRoutingDest - try: - instance.actual_instance = NoneNetworkRoutingDest.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into NetworkIdRoutingPolicyValue with oneOf schemas: CustomRoutingDest, NoneNetworkRoutingDest. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into NetworkIdRoutingPolicyValue with oneOf schemas: CustomRoutingDest, NoneNetworkRoutingDest. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], CustomRoutingDest, NoneNetworkRoutingDest]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY3VzdG9tX3JvdXRpbmdfZGVzdCBpbXBvcnQgQ3VzdG9tUm91dGluZ0Rlc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ub25lX25ldHdvcmtfcm91dGluZ19kZXN0IGltcG9ydCBOb25lTmV0d29ya1JvdXRpbmdEZXN0CmZyb20gcHlkYW50aWMgaW1wb3J0IFN0cmljdFN0ciwgRmllbGQKZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uLCBMaXN0LCBTZXQsIE9wdGlvbmFsLCBEaWN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IExpdGVyYWwsIFNlbGYKCk5FVFdPUktJRFJPVVRJTkdQT0xJQ1lWQUxVRV9PTkVfT0ZfU0NIRU1BUyA9IFsiQ3VzdG9tUm91dGluZ0Rlc3QiLCAiTm9uZU5ldHdvcmtSb3V0aW5nRGVzdCJdCgpjbGFzcyBOZXR3b3JrSWRSb3V0aW5nUG9saWN5VmFsdWUoQmFzZU1vZGVsKToKICAgICIiIgogICAgTmV0d29ya0lkUm91dGluZ1BvbGljeVZhbHVlCiAgICAiIiIKICAgICMgZGF0YSB0eXBlOiBDdXN0b21Sb3V0aW5nRGVzdAogICAgb25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yOiBPcHRpb25hbFtDdXN0b21Sb3V0aW5nRGVzdF0gPSBOb25lCiAgICAjIGRhdGEgdHlwZTogTm9uZU5ldHdvcmtSb3V0aW5nRGVzdAogICAgb25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yOiBPcHRpb25hbFtOb25lTmV0d29ya1JvdXRpbmdEZXN0XSA9IE5vbmUKICAgIGFjdHVhbF9pbnN0YW5jZTogT3B0aW9uYWxbVW5pb25bQ3VzdG9tUm91dGluZ0Rlc3QsIE5vbmVOZXR3b3JrUm91dGluZ0Rlc3RdXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgIkN1c3RvbVJvdXRpbmdEZXN0IiwgIk5vbmVOZXR3b3JrUm91dGluZ0Rlc3QiIH0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncykgLT4gTm9uZToKICAgICAgICBpZiBhcmdzOgogICAgICAgICAgICBpZiBsZW4oYXJncykgPiAxOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBvbmx5IDEgaXMgYWxsb3dlZCB0byBzZXQgYGFjdHVhbF9pbnN0YW5jZWAiKQogICAgICAgICAgICBpZiBrd2FyZ3M6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIGtleXdvcmQgYXJndW1lbnRzIGNhbm5vdCBiZSB1c2VkLiIpCiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oYWN0dWFsX2luc3RhbmNlPWFyZ3NbMF0pCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhY3R1YWxfaW5zdGFuY2UnKQogICAgZGVmIGFjdHVhbF9pbnN0YW5jZV9tdXN0X3ZhbGlkYXRlX29uZW9mKGNscywgdik6CiAgICAgICAgaW5zdGFuY2UgPSBOZXR3b3JrSWRSb3V0aW5nUG9saWN5VmFsdWUubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IEN1c3RvbVJvdXRpbmdEZXN0CiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgQ3VzdG9tUm91dGluZ0Rlc3QpOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYEN1c3RvbVJvdXRpbmdEZXN0YCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBOb25lTmV0d29ya1JvdXRpbmdEZXN0CiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgTm9uZU5ldHdvcmtSb3V0aW5nRGVzdCk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgTm9uZU5ldHdvcmtSb3V0aW5nRGVzdGAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gTmV0d29ya0lkUm91dGluZ1BvbGljeVZhbHVlIHdpdGggb25lT2Ygc2NoZW1hczogQ3VzdG9tUm91dGluZ0Rlc3QsIE5vbmVOZXR3b3JrUm91dGluZ0Rlc3QuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gTmV0d29ya0lkUm91dGluZ1BvbGljeVZhbHVlIHdpdGggb25lT2Ygc2NoZW1hczogQ3VzdG9tUm91dGluZ0Rlc3QsIE5vbmVOZXR3b3JrUm91dGluZ0Rlc3QuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBVbmlvbltzdHIsIERpY3Rbc3RyLCBBbnldXSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCgogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIEN1c3RvbVJvdXRpbmdEZXN0CiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBDdXN0b21Sb3V0aW5nRGVzdC5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBOb25lTmV0d29ya1JvdXRpbmdEZXN0CiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBOb25lTmV0d29ya1JvdXRpbmdEZXN0LmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQoKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gTmV0d29ya0lkUm91dGluZ1BvbGljeVZhbHVlIHdpdGggb25lT2Ygc2NoZW1hczogQ3VzdG9tUm91dGluZ0Rlc3QsIE5vbmVOZXR3b3JrUm91dGluZ0Rlc3QuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gTmV0d29ya0lkUm91dGluZ1BvbGljeVZhbHVlIHdpdGggb25lT2Ygc2NoZW1hczogQ3VzdG9tUm91dGluZ0Rlc3QsIE5vbmVOZXR3b3JrUm91dGluZ0Rlc3QuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gIm51bGwiCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19qc29uIikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24pOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbigpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi5hY3R1YWxfaW5zdGFuY2UpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gT3B0aW9uYWxbVW5pb25bRGljdFtzdHIsIEFueV0sIEN1c3RvbVJvdXRpbmdEZXN0LCBOb25lTmV0d29ya1JvdXRpbmdEZXN0XV06CiAgICAgICAgIiIiUmV0dXJucyB0aGUgZGljdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2RpY3QiKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCk6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KCkKICAgICAgICBlbHNlOgogICAgICAgICAgICAjIHByaW1pdGl2ZSB0eXBlCiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZQoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcCgpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/network_record.py b/fireblocks/models/network_record.py index 17a6944c..51bb168e 100644 --- a/fireblocks/models/network_record.py +++ b/fireblocks/models/network_record.py @@ -1,120 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.destination_transfer_peer_path_response import DestinationTransferPeerPathResponse -from fireblocks.models.reward_info import RewardInfo -from fireblocks.models.source_transfer_peer_path_response import SourceTransferPeerPathResponse -from typing import Optional, Set -from typing_extensions import Self - -class NetworkRecord(BaseModel): - """ - NetworkRecord - """ # noqa: E501 - source: Optional[SourceTransferPeerPathResponse] = None - destination: Optional[DestinationTransferPeerPathResponse] = None - tx_hash: Optional[StrictStr] = Field(default=None, alias="txHash") - network_fee: Optional[StrictStr] = Field(default=None, alias="networkFee") - asset_id: Optional[StrictStr] = Field(default=None, alias="assetId") - net_amount: Optional[StrictStr] = Field(default=None, description="The net amount of the transaction, after fee deduction", alias="netAmount") - is_dropped: Optional[StrictBool] = Field(default=None, alias="isDropped") - type: Optional[StrictStr] = None - destination_address: Optional[StrictStr] = Field(default=None, alias="destinationAddress") - amount_usd: Optional[StrictStr] = Field(default=None, alias="amountUSD") - reward_info: Optional[RewardInfo] = Field(default=None, alias="rewardInfo") - __properties: ClassVar[List[str]] = ["source", "destination", "txHash", "networkFee", "assetId", "netAmount", "isDropped", "type", "destinationAddress", "amountUSD", "rewardInfo"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of NetworkRecord from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of source - if self.source: - _dict['source'] = self.source.to_dict() - # override the default output from pydantic by calling `to_dict()` of destination - if self.destination: - _dict['destination'] = self.destination.to_dict() - # override the default output from pydantic by calling `to_dict()` of reward_info - if self.reward_info: - _dict['rewardInfo'] = self.reward_info.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of NetworkRecord from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "source": SourceTransferPeerPathResponse.from_dict(obj["source"]) if obj.get("source") is not None else None, - "destination": DestinationTransferPeerPathResponse.from_dict(obj["destination"]) if obj.get("destination") is not None else None, - "txHash": obj.get("txHash"), - "networkFee": obj.get("networkFee"), - "assetId": obj.get("assetId"), - "netAmount": obj.get("netAmount"), - "isDropped": obj.get("isDropped"), - "type": obj.get("type"), - "destinationAddress": obj.get("destinationAddress"), - "amountUSD": obj.get("amountUSD"), - "rewardInfo": RewardInfo.from_dict(obj["rewardInfo"]) if obj.get("rewardInfo") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlc3RpbmF0aW9uX3RyYW5zZmVyX3BlZXJfcGF0aF9yZXNwb25zZSBpbXBvcnQgRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZXdhcmRfaW5mbyBpbXBvcnQgUmV3YXJkSW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvdXJjZV90cmFuc2Zlcl9wZWVyX3BhdGhfcmVzcG9uc2UgaW1wb3J0IFNvdXJjZVRyYW5zZmVyUGVlclBhdGhSZXNwb25zZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBOZXR3b3JrUmVjb3JkKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIE5ldHdvcmtSZWNvcmQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHNvdXJjZTogT3B0aW9uYWxbU291cmNlVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlXSA9IE5vbmUKICAgIGRlc3RpbmF0aW9uOiBPcHRpb25hbFtEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGhSZXNwb25zZV0gPSBOb25lCiAgICB0eF9oYXNoOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0idHhIYXNoIikKICAgIG5ldHdvcmtfZmVlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ibmV0d29ya0ZlZSIpCiAgICBhc3NldF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImFzc2V0SWQiKQogICAgbmV0X2Ftb3VudDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBuZXQgYW1vdW50IG9mIHRoZSB0cmFuc2FjdGlvbiwgYWZ0ZXIgZmVlIGRlZHVjdGlvbiIsIGFsaWFzPSJuZXRBbW91bnQiKQogICAgaXNfZHJvcHBlZDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJpc0Ryb3BwZWQiKQogICAgdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIGRlc3RpbmF0aW9uX2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJkZXN0aW5hdGlvbkFkZHJlc3MiKQogICAgYW1vdW50X3VzZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImFtb3VudFVTRCIpCiAgICByZXdhcmRfaW5mbzogT3B0aW9uYWxbUmV3YXJkSW5mb10gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJyZXdhcmRJbmZvIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic291cmNlIiwgImRlc3RpbmF0aW9uIiwgInR4SGFzaCIsICJuZXR3b3JrRmVlIiwgImFzc2V0SWQiLCAibmV0QW1vdW50IiwgImlzRHJvcHBlZCIsICJ0eXBlIiwgImRlc3RpbmF0aW9uQWRkcmVzcyIsICJhbW91bnRVU0QiLCAicmV3YXJkSW5mbyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTmV0d29ya1JlY29yZCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHNvdXJjZQogICAgICAgIGlmIHNlbGYuc291cmNlOgogICAgICAgICAgICBfZGljdFsnc291cmNlJ10gPSBzZWxmLnNvdXJjZS50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZGVzdGluYXRpb24KICAgICAgICBpZiBzZWxmLmRlc3RpbmF0aW9uOgogICAgICAgICAgICBfZGljdFsnZGVzdGluYXRpb24nXSA9IHNlbGYuZGVzdGluYXRpb24udG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHJld2FyZF9pbmZvCiAgICAgICAgaWYgc2VsZi5yZXdhcmRfaW5mbzoKICAgICAgICAgICAgX2RpY3RbJ3Jld2FyZEluZm8nXSA9IHNlbGYucmV3YXJkX2luZm8udG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOZXR3b3JrUmVjb3JkIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInNvdXJjZSI6IFNvdXJjZVRyYW5zZmVyUGVlclBhdGhSZXNwb25zZS5mcm9tX2RpY3Qob2JqWyJzb3VyY2UiXSkgaWYgb2JqLmdldCgic291cmNlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZGVzdGluYXRpb24iOiBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGhSZXNwb25zZS5mcm9tX2RpY3Qob2JqWyJkZXN0aW5hdGlvbiJdKSBpZiBvYmouZ2V0KCJkZXN0aW5hdGlvbiIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInR4SGFzaCI6IG9iai5nZXQoInR4SGFzaCIpLAogICAgICAgICAgICAibmV0d29ya0ZlZSI6IG9iai5nZXQoIm5ldHdvcmtGZWUiKSwKICAgICAgICAgICAgImFzc2V0SWQiOiBvYmouZ2V0KCJhc3NldElkIiksCiAgICAgICAgICAgICJuZXRBbW91bnQiOiBvYmouZ2V0KCJuZXRBbW91bnQiKSwKICAgICAgICAgICAgImlzRHJvcHBlZCI6IG9iai5nZXQoImlzRHJvcHBlZCIpLAogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImRlc3RpbmF0aW9uQWRkcmVzcyI6IG9iai5nZXQoImRlc3RpbmF0aW9uQWRkcmVzcyIpLAogICAgICAgICAgICAiYW1vdW50VVNEIjogb2JqLmdldCgiYW1vdW50VVNEIiksCiAgICAgICAgICAgICJyZXdhcmRJbmZvIjogUmV3YXJkSW5mby5mcm9tX2RpY3Qob2JqWyJyZXdhcmRJbmZvIl0pIGlmIG9iai5nZXQoInJld2FyZEluZm8iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/new_address.py b/fireblocks/models/new_address.py index ca123f34..2bf87847 100644 --- a/fireblocks/models/new_address.py +++ b/fireblocks/models/new_address.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class NewAddress(BaseModel): - """ - NewAddress - """ # noqa: E501 - address: StrictStr = Field(description="The address string.") - index: StrictInt = Field(description="The index of the address in the list.") - description: StrictStr = Field(description="A description of the address.") - __properties: ClassVar[List[str]] = ["address", "index", "description"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of NewAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of NewAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "address": obj.get("address"), - "index": obj.get("index"), - "description": obj.get("description") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTmV3QWRkcmVzcyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBOZXdBZGRyZXNzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhZGRyZXNzOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGFkZHJlc3Mgc3RyaW5nLiIpCiAgICBpbmRleDogU3RyaWN0SW50ID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBpbmRleCBvZiB0aGUgYWRkcmVzcyBpbiB0aGUgbGlzdC4iKQogICAgZGVzY3JpcHRpb246IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBIGRlc2NyaXB0aW9uIG9mIHRoZSBhZGRyZXNzLiIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFkZHJlc3MiLCAiaW5kZXgiLCAiZGVzY3JpcHRpb24iXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE5ld0FkZHJlc3MgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTmV3QWRkcmVzcyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhZGRyZXNzIjogb2JqLmdldCgiYWRkcmVzcyIpLAogICAgICAgICAgICAiaW5kZXgiOiBvYmouZ2V0KCJpbmRleCIpLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBvYmouZ2V0KCJkZXNjcmlwdGlvbiIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/none_network_routing_dest.py b/fireblocks/models/none_network_routing_dest.py index 0ba94c44..e1e038a6 100644 --- a/fireblocks/models/none_network_routing_dest.py +++ b/fireblocks/models/none_network_routing_dest.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class NoneNetworkRoutingDest(BaseModel): - """ - NoneNetworkRoutingDest - """ # noqa: E501 - scheme: StrictStr = Field(description="No network routing logic.") - __properties: ClassVar[List[str]] = ["scheme"] - - @field_validator('scheme') - def scheme_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['NONE']): - raise ValueError("must be one of enum values ('NONE')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of NoneNetworkRoutingDest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of NoneNetworkRoutingDest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "scheme": obj.get("scheme") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTm9uZU5ldHdvcmtSb3V0aW5nRGVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBOb25lTmV0d29ya1JvdXRpbmdEZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzY2hlbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJObyBuZXR3b3JrIHJvdXRpbmcgbG9naWMuIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic2NoZW1lIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdzY2hlbWUnKQogICAgZGVmIHNjaGVtZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydOT05FJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ05PTkUnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTm9uZU5ldHdvcmtSb3V0aW5nRGVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOb25lTmV0d29ya1JvdXRpbmdEZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInNjaGVtZSI6IG9iai5nZXQoInNjaGVtZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/not_found_exception.py b/fireblocks/models/not_found_exception.py index bea4afb5..4bfbdf5a 100644 --- a/fireblocks/models/not_found_exception.py +++ b/fireblocks/models/not_found_exception.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class NotFoundException(BaseModel): - """ - NotFoundException - """ # noqa: E501 - status_code: Optional[StrictInt] = Field(default=None, description="HTTP status code", alias="statusCode") - message: Optional[StrictStr] = Field(default=None, description="Error message") - error: Optional[StrictStr] = Field(default=None, description="Short description of the HTTP error") - __properties: ClassVar[List[str]] = ["statusCode", "message", "error"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of NotFoundException from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of NotFoundException from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "statusCode": obj.get("statusCode"), - "message": obj.get("message"), - "error": obj.get("error") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIE5vdEZvdW5kRXhjZXB0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIE5vdEZvdW5kRXhjZXB0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzdGF0dXNfY29kZTogT3B0aW9uYWxbU3RyaWN0SW50XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkhUVFAgc3RhdHVzIGNvZGUiLCBhbGlhcz0ic3RhdHVzQ29kZSIpCiAgICBtZXNzYWdlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRXJyb3IgbWVzc2FnZSIpCiAgICBlcnJvcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNob3J0IGRlc2NyaXB0aW9uIG9mIHRoZSBIVFRQIGVycm9yIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3RhdHVzQ29kZSIsICJtZXNzYWdlIiwgImVycm9yIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOb3RGb3VuZEV4Y2VwdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOb3RGb3VuZEV4Y2VwdGlvbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzdGF0dXNDb2RlIjogb2JqLmdldCgic3RhdHVzQ29kZSIpLAogICAgICAgICAgICAibWVzc2FnZSI6IG9iai5nZXQoIm1lc3NhZ2UiKSwKICAgICAgICAgICAgImVycm9yIjogb2JqLmdldCgiZXJyb3IiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/notification.py b/fireblocks/models/notification.py index 85d3761d..a107d138 100644 --- a/fireblocks/models/notification.py +++ b/fireblocks/models/notification.py @@ -1,105 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.notification_status import NotificationStatus -from fireblocks.models.webhook_event import WebhookEvent -from typing import Optional, Set -from typing_extensions import Self - -class Notification(BaseModel): - """ - Notification - """ # noqa: E501 - id: StrictStr = Field(description="The id of the Notification") - created_at: StrictInt = Field(description="The creation date of the notification in milliseconds", alias="createdAt") - updated_at: StrictInt = Field(description="The date when the notification was updated in milliseconds", alias="updatedAt") - status: NotificationStatus - event_type: WebhookEvent = Field(alias="eventType") - resource_id: Optional[StrictStr] = Field(default=None, description="The resource id of the event which the Notification is listen to", alias="resourceId") - __properties: ClassVar[List[str]] = ["id", "createdAt", "updatedAt", "status", "eventType", "resourceId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of Notification from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if resource_id (nullable) is None - # and model_fields_set contains the field - if self.resource_id is None and "resource_id" in self.model_fields_set: - _dict['resourceId'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of Notification from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "createdAt": obj.get("createdAt"), - "updatedAt": obj.get("updatedAt"), - "status": obj.get("status"), - "eventType": obj.get("eventType"), - "resourceId": obj.get("resourceId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubm90aWZpY2F0aW9uX3N0YXR1cyBpbXBvcnQgTm90aWZpY2F0aW9uU3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud2ViaG9va19ldmVudCBpbXBvcnQgV2ViaG9va0V2ZW50CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIE5vdGlmaWNhdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBOb3RpZmljYXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGlkIG9mIHRoZSBOb3RpZmljYXRpb24iKQogICAgY3JlYXRlZF9hdDogU3RyaWN0SW50ID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBjcmVhdGlvbiBkYXRlIG9mIHRoZSBub3RpZmljYXRpb24gaW4gbWlsbGlzZWNvbmRzIiwgYWxpYXM9ImNyZWF0ZWRBdCIpCiAgICB1cGRhdGVkX2F0OiBTdHJpY3RJbnQgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGRhdGUgd2hlbiB0aGUgbm90aWZpY2F0aW9uIHdhcyB1cGRhdGVkIGluIG1pbGxpc2Vjb25kcyIsIGFsaWFzPSJ1cGRhdGVkQXQiKQogICAgc3RhdHVzOiBOb3RpZmljYXRpb25TdGF0dXMKICAgIGV2ZW50X3R5cGU6IFdlYmhvb2tFdmVudCA9IEZpZWxkKGFsaWFzPSJldmVudFR5cGUiKQogICAgcmVzb3VyY2VfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgcmVzb3VyY2UgaWQgb2YgdGhlIGV2ZW50IHdoaWNoIHRoZSBOb3RpZmljYXRpb24gaXMgbGlzdGVuIHRvIiwgYWxpYXM9InJlc291cmNlSWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJjcmVhdGVkQXQiLCAidXBkYXRlZEF0IiwgInN0YXR1cyIsICJldmVudFR5cGUiLCAicmVzb3VyY2VJZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTm90aWZpY2F0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIHNldCB0byBOb25lIGlmIHJlc291cmNlX2lkIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5yZXNvdXJjZV9pZCBpcyBOb25lIGFuZCAicmVzb3VyY2VfaWQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3Jlc291cmNlSWQnXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOb3RpZmljYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAiY3JlYXRlZEF0Ijogb2JqLmdldCgiY3JlYXRlZEF0IiksCiAgICAgICAgICAgICJ1cGRhdGVkQXQiOiBvYmouZ2V0KCJ1cGRhdGVkQXQiKSwKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAiZXZlbnRUeXBlIjogb2JqLmdldCgiZXZlbnRUeXBlIiksCiAgICAgICAgICAgICJyZXNvdXJjZUlkIjogb2JqLmdldCgicmVzb3VyY2VJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/notification_attempt.py b/fireblocks/models/notification_attempt.py index 6848733b..fc0f6905 100644 --- a/fireblocks/models/notification_attempt.py +++ b/fireblocks/models/notification_attempt.py @@ -1,104 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class NotificationAttempt(BaseModel): - """ - NotificationAttempt - """ # noqa: E501 - sent_time: StrictInt = Field(description="The time when the attempt was sent in milliseconds.", alias="sentTime") - duration: StrictInt = Field(description="The duration of the attempt in milliseconds.") - response_code: Optional[StrictInt] = Field(default=None, description="The response code of the attempt, when missing refer to failureReason.", alias="responseCode") - failure_reason: Optional[StrictStr] = Field(default=None, description="The request failure reason in case responseCode is missing.", alias="failureReason") - __properties: ClassVar[List[str]] = ["sentTime", "duration", "responseCode", "failureReason"] - - @field_validator('failure_reason') - def failure_reason_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['TIMED_OUT', 'NO_RESPONSE']): - raise ValueError("must be one of enum values ('TIMED_OUT', 'NO_RESPONSE')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of NotificationAttempt from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of NotificationAttempt from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "sentTime": obj.get("sentTime"), - "duration": obj.get("duration"), - "responseCode": obj.get("responseCode"), - "failureReason": obj.get("failureReason") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgTm90aWZpY2F0aW9uQXR0ZW1wdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBOb3RpZmljYXRpb25BdHRlbXB0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzZW50X3RpbWU6IFN0cmljdEludCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdGltZSB3aGVuIHRoZSBhdHRlbXB0IHdhcyBzZW50IGluIG1pbGxpc2Vjb25kcy4iLCBhbGlhcz0ic2VudFRpbWUiKQogICAgZHVyYXRpb246IFN0cmljdEludCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZHVyYXRpb24gb2YgdGhlIGF0dGVtcHQgaW4gbWlsbGlzZWNvbmRzLiIpCiAgICByZXNwb25zZV9jb2RlOiBPcHRpb25hbFtTdHJpY3RJbnRdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHJlc3BvbnNlIGNvZGUgb2YgdGhlIGF0dGVtcHQsIHdoZW4gbWlzc2luZyByZWZlciB0byBmYWlsdXJlUmVhc29uLiIsIGFsaWFzPSJyZXNwb25zZUNvZGUiKQogICAgZmFpbHVyZV9yZWFzb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgcmVxdWVzdCBmYWlsdXJlIHJlYXNvbiBpbiBjYXNlIHJlc3BvbnNlQ29kZSBpcyBtaXNzaW5nLiIsIGFsaWFzPSJmYWlsdXJlUmVhc29uIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic2VudFRpbWUiLCAiZHVyYXRpb24iLCAicmVzcG9uc2VDb2RlIiwgImZhaWx1cmVSZWFzb24iXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2ZhaWx1cmVfcmVhc29uJykKICAgIGRlZiBmYWlsdXJlX3JlYXNvbl92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnVElNRURfT1VUJywgJ05PX1JFU1BPTlNFJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ1RJTUVEX09VVCcsICdOT19SRVNQT05TRScpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOb3RpZmljYXRpb25BdHRlbXB0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE5vdGlmaWNhdGlvbkF0dGVtcHQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic2VudFRpbWUiOiBvYmouZ2V0KCJzZW50VGltZSIpLAogICAgICAgICAgICAiZHVyYXRpb24iOiBvYmouZ2V0KCJkdXJhdGlvbiIpLAogICAgICAgICAgICAicmVzcG9uc2VDb2RlIjogb2JqLmdldCgicmVzcG9uc2VDb2RlIiksCiAgICAgICAgICAgICJmYWlsdXJlUmVhc29uIjogb2JqLmdldCgiZmFpbHVyZVJlYXNvbiIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/notification_attempts_paginated_response.py b/fireblocks/models/notification_attempts_paginated_response.py index efe984e5..e122b444 100644 --- a/fireblocks/models/notification_attempts_paginated_response.py +++ b/fireblocks/models/notification_attempts_paginated_response.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.notification_attempt import NotificationAttempt -from typing import Optional, Set -from typing_extensions import Self - -class NotificationAttemptsPaginatedResponse(BaseModel): - """ - NotificationAttemptsPaginatedResponse - """ # noqa: E501 - data: List[NotificationAttempt] = Field(description="The data of the current page") - next: Optional[StrictStr] = Field(default=None, description="The ID of the next page") - __properties: ClassVar[List[str]] = ["data", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of NotificationAttemptsPaginatedResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # set to None if next (nullable) is None - # and model_fields_set contains the field - if self.next is None and "next" in self.model_fields_set: - _dict['next'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of NotificationAttemptsPaginatedResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [NotificationAttempt.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vdGlmaWNhdGlvbl9hdHRlbXB0IGltcG9ydCBOb3RpZmljYXRpb25BdHRlbXB0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIE5vdGlmaWNhdGlvbkF0dGVtcHRzUGFnaW5hdGVkUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgTm90aWZpY2F0aW9uQXR0ZW1wdHNQYWdpbmF0ZWRSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGF0YTogTGlzdFtOb3RpZmljYXRpb25BdHRlbXB0XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGF0YSBvZiB0aGUgY3VycmVudCBwYWdlIikKICAgIG5leHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIG5leHQgcGFnZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRhdGEiLCAibmV4dCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTm90aWZpY2F0aW9uQXR0ZW1wdHNQYWdpbmF0ZWRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBkYXRhIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5kYXRhOgogICAgICAgICAgICBmb3IgX2l0ZW1fZGF0YSBpbiBzZWxmLmRhdGE6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9kYXRhOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fZGF0YS50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydkYXRhJ10gPSBfaXRlbXMKICAgICAgICAjIHNldCB0byBOb25lIGlmIG5leHQgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLm5leHQgaXMgTm9uZSBhbmQgIm5leHQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ25leHQnXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOb3RpZmljYXRpb25BdHRlbXB0c1BhZ2luYXRlZFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRhdGEiOiBbTm90aWZpY2F0aW9uQXR0ZW1wdC5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImRhdGEiXV0gaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm5leHQiOiBvYmouZ2V0KCJuZXh0IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/notification_paginated_response.py b/fireblocks/models/notification_paginated_response.py index 3585ed09..67cc5c07 100644 --- a/fireblocks/models/notification_paginated_response.py +++ b/fireblocks/models/notification_paginated_response.py @@ -1,110 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.notification import Notification -from typing import Optional, Set -from typing_extensions import Self - -class NotificationPaginatedResponse(BaseModel): - """ - NotificationPaginatedResponse - """ # noqa: E501 - data: List[Notification] = Field(description="The data of the current page") - total: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The total number of notifications after all filters applied (not returned when 'pageCursor' parameter is used)") - next: Optional[StrictStr] = Field(default=None, description="The ID of the next page") - __properties: ClassVar[List[str]] = ["data", "total", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of NotificationPaginatedResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # set to None if total (nullable) is None - # and model_fields_set contains the field - if self.total is None and "total" in self.model_fields_set: - _dict['total'] = None - - # set to None if next (nullable) is None - # and model_fields_set contains the field - if self.next is None and "next" in self.model_fields_set: - _dict['next'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of NotificationPaginatedResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [Notification.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "total": obj.get("total"), - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ub3RpZmljYXRpb24gaW1wb3J0IE5vdGlmaWNhdGlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBOb3RpZmljYXRpb25QYWdpbmF0ZWRSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBOb3RpZmljYXRpb25QYWdpbmF0ZWRSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGF0YTogTGlzdFtOb3RpZmljYXRpb25dID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBkYXRhIG9mIHRoZSBjdXJyZW50IHBhZ2UiKQogICAgdG90YWw6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSB0b3RhbCBudW1iZXIgb2Ygbm90aWZpY2F0aW9ucyBhZnRlciBhbGwgZmlsdGVycyBhcHBsaWVkIChub3QgcmV0dXJuZWQgd2hlbiAncGFnZUN1cnNvcicgcGFyYW1ldGVyIGlzIHVzZWQpIikKICAgIG5leHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIG5leHQgcGFnZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRhdGEiLCAidG90YWwiLCAibmV4dCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTm90aWZpY2F0aW9uUGFnaW5hdGVkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGF0YSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgZm9yIF9pdGVtX2RhdGEgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZGF0YToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2RhdGEudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gX2l0ZW1zCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiB0b3RhbCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYudG90YWwgaXMgTm9uZSBhbmQgInRvdGFsIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wyd0b3RhbCddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIG5leHQgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLm5leHQgaXMgTm9uZSBhbmQgIm5leHQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ25leHQnXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOb3RpZmljYXRpb25QYWdpbmF0ZWRSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkYXRhIjogW05vdGlmaWNhdGlvbi5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImRhdGEiXV0gaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInRvdGFsIjogb2JqLmdldCgidG90YWwiKSwKICAgICAgICAgICAgIm5leHQiOiBvYmouZ2V0KCJuZXh0IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/notification_status.py b/fireblocks/models/notification_status.py index 1fda028d..5eea1cb9 100644 --- a/fireblocks/models/notification_status.py +++ b/fireblocks/models/notification_status.py @@ -1,40 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class NotificationStatus(str, Enum): - """ - The status of the Notification - """ - - """ - allowed enum values - """ - COMPLETED = 'COMPLETED' - FAILED = 'FAILED' - IN_PROGRESS = 'IN_PROGRESS' - ON_HOLD = 'ON_HOLD' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of NotificationStatus from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBOb3RpZmljYXRpb25TdGF0dXMoc3RyLCBFbnVtKToKICAgICIiIgogICAgVGhlIHN0YXR1cyBvZiB0aGUgTm90aWZpY2F0aW9uCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgQ09NUExFVEVEID0gJ0NPTVBMRVRFRCcKICAgIEZBSUxFRCA9ICdGQUlMRUQnCiAgICBJTl9QUk9HUkVTUyA9ICdJTl9QUk9HUkVTUycKICAgIE9OX0hPTEQgPSAnT05fSE9MRCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOb3RpZmljYXRpb25TdGF0dXMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/notification_with_data.py b/fireblocks/models/notification_with_data.py index 3e06f85b..355d6607 100644 --- a/fireblocks/models/notification_with_data.py +++ b/fireblocks/models/notification_with_data.py @@ -1,107 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.notification_status import NotificationStatus -from fireblocks.models.webhook_event import WebhookEvent -from typing import Optional, Set -from typing_extensions import Self - -class NotificationWithData(BaseModel): - """ - NotificationWithData - """ # noqa: E501 - id: StrictStr - created_at: StrictInt = Field(description="The creation date of the notification in milliseconds", alias="createdAt") - updated_at: StrictInt = Field(description="The date when the notification was updated in milliseconds", alias="updatedAt") - status: NotificationStatus - event_type: WebhookEvent = Field(alias="eventType") - resource_id: Optional[StrictStr] = Field(default=None, description="The resource id of the event which the Notification is listen to", alias="resourceId") - data: Optional[Dict[str, Any]] = Field(default=None, description="notification data") - __properties: ClassVar[List[str]] = ["id", "createdAt", "updatedAt", "status", "eventType", "resourceId", "data"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of NotificationWithData from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if resource_id (nullable) is None - # and model_fields_set contains the field - if self.resource_id is None and "resource_id" in self.model_fields_set: - _dict['resourceId'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of NotificationWithData from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "createdAt": obj.get("createdAt"), - "updatedAt": obj.get("updatedAt"), - "status": obj.get("status"), - "eventType": obj.get("eventType"), - "resourceId": obj.get("resourceId"), - "data": obj.get("data") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubm90aWZpY2F0aW9uX3N0YXR1cyBpbXBvcnQgTm90aWZpY2F0aW9uU3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud2ViaG9va19ldmVudCBpbXBvcnQgV2ViaG9va0V2ZW50CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIE5vdGlmaWNhdGlvbldpdGhEYXRhKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIE5vdGlmaWNhdGlvbldpdGhEYXRhCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyCiAgICBjcmVhdGVkX2F0OiBTdHJpY3RJbnQgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNyZWF0aW9uIGRhdGUgb2YgdGhlIG5vdGlmaWNhdGlvbiBpbiBtaWxsaXNlY29uZHMiLCBhbGlhcz0iY3JlYXRlZEF0IikKICAgIHVwZGF0ZWRfYXQ6IFN0cmljdEludCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGF0ZSB3aGVuIHRoZSBub3RpZmljYXRpb24gd2FzIHVwZGF0ZWQgaW4gbWlsbGlzZWNvbmRzIiwgYWxpYXM9InVwZGF0ZWRBdCIpCiAgICBzdGF0dXM6IE5vdGlmaWNhdGlvblN0YXR1cwogICAgZXZlbnRfdHlwZTogV2ViaG9va0V2ZW50ID0gRmllbGQoYWxpYXM9ImV2ZW50VHlwZSIpCiAgICByZXNvdXJjZV9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSByZXNvdXJjZSBpZCBvZiB0aGUgZXZlbnQgd2hpY2ggdGhlIE5vdGlmaWNhdGlvbiBpcyBsaXN0ZW4gdG8iLCBhbGlhcz0icmVzb3VyY2VJZCIpCiAgICBkYXRhOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJub3RpZmljYXRpb24gZGF0YSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgImNyZWF0ZWRBdCIsICJ1cGRhdGVkQXQiLCAic3RhdHVzIiwgImV2ZW50VHlwZSIsICJyZXNvdXJjZUlkIiwgImRhdGEiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE5vdGlmaWNhdGlvbldpdGhEYXRhIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIHNldCB0byBOb25lIGlmIHJlc291cmNlX2lkIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5yZXNvdXJjZV9pZCBpcyBOb25lIGFuZCAicmVzb3VyY2VfaWQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3Jlc291cmNlSWQnXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOb3RpZmljYXRpb25XaXRoRGF0YSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJjcmVhdGVkQXQiOiBvYmouZ2V0KCJjcmVhdGVkQXQiKSwKICAgICAgICAgICAgInVwZGF0ZWRBdCI6IG9iai5nZXQoInVwZGF0ZWRBdCIpLAogICAgICAgICAgICAic3RhdHVzIjogb2JqLmdldCgic3RhdHVzIiksCiAgICAgICAgICAgICJldmVudFR5cGUiOiBvYmouZ2V0KCJldmVudFR5cGUiKSwKICAgICAgICAgICAgInJlc291cmNlSWQiOiBvYmouZ2V0KCJyZXNvdXJjZUlkIiksCiAgICAgICAgICAgICJkYXRhIjogb2JqLmdldCgiZGF0YSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/onchain_transaction.py b/fireblocks/models/onchain_transaction.py index b84e9613..e3149140 100644 --- a/fireblocks/models/onchain_transaction.py +++ b/fireblocks/models/onchain_transaction.py @@ -1,135 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.decoded_log import DecodedLog -from typing import Optional, Set -from typing_extensions import Self - -class OnchainTransaction(BaseModel): - """ - OnchainTransaction - """ # noqa: E501 - id: StrictStr = Field(description="Unique identifier for the transaction") - base_asset_id: StrictStr = Field(description="The blockchain base asset identifier", alias="baseAssetId") - block_hash: StrictStr = Field(description="Hash of the block containing this transaction", alias="blockHash") - block_number: StrictInt = Field(description="Block number containing this transaction", alias="blockNumber") - block_timestamp: datetime = Field(description="Timestamp when the block was mined", alias="blockTimestamp") - chain_id: StrictInt = Field(description="Chain ID of the blockchain", alias="chainId") - contract_address: Optional[StrictStr] = Field(default=None, description="Contract address if this is a contract transaction", alias="contractAddress") - cumulative_gas_used: StrictStr = Field(description="Cumulative gas used in the block up to this transaction", alias="cumulativeGasUsed") - decoded_logs: Optional[DecodedLog] = Field(default=None, alias="decodedLogs") - effective_gas_price: StrictStr = Field(description="Effective gas price paid for the transaction", alias="effectiveGasPrice") - from_address: StrictStr = Field(description="Address that initiated the transaction", alias="fromAddress") - gas_used: StrictStr = Field(description="Amount of gas used by this transaction", alias="gasUsed") - status: StrictStr = Field(description="Transaction status") - to_address: Optional[StrictStr] = Field(default=None, description="Address that received the transaction", alias="toAddress") - transaction_hash: StrictStr = Field(description="Hash of the transaction", alias="transactionHash") - transaction_index: StrictStr = Field(description="Index of the transaction in the block", alias="transactionIndex") - type: StrictStr = Field(description="Transaction type") - __properties: ClassVar[List[str]] = ["id", "baseAssetId", "blockHash", "blockNumber", "blockTimestamp", "chainId", "contractAddress", "cumulativeGasUsed", "decodedLogs", "effectiveGasPrice", "fromAddress", "gasUsed", "status", "toAddress", "transactionHash", "transactionIndex", "type"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of OnchainTransaction from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of decoded_logs - if self.decoded_logs: - _dict['decodedLogs'] = self.decoded_logs.to_dict() - # set to None if contract_address (nullable) is None - # and model_fields_set contains the field - if self.contract_address is None and "contract_address" in self.model_fields_set: - _dict['contractAddress'] = None - - # set to None if to_address (nullable) is None - # and model_fields_set contains the field - if self.to_address is None and "to_address" in self.model_fields_set: - _dict['toAddress'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of OnchainTransaction from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "baseAssetId": obj.get("baseAssetId"), - "blockHash": obj.get("blockHash"), - "blockNumber": obj.get("blockNumber"), - "blockTimestamp": obj.get("blockTimestamp"), - "chainId": obj.get("chainId"), - "contractAddress": obj.get("contractAddress"), - "cumulativeGasUsed": obj.get("cumulativeGasUsed"), - "decodedLogs": DecodedLog.from_dict(obj["decodedLogs"]) if obj.get("decodedLogs") is not None else None, - "effectiveGasPrice": obj.get("effectiveGasPrice"), - "fromAddress": obj.get("fromAddress"), - "gasUsed": obj.get("gasUsed"), - "status": obj.get("status"), - "toAddress": obj.get("toAddress"), - "transactionHash": obj.get("transactionHash"), - "transactionIndex": obj.get("transactionIndex"), - "type": obj.get("type") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVjb2RlZF9sb2cgaW1wb3J0IERlY29kZWRMb2cKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgT25jaGFpblRyYW5zYWN0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIE9uY2hhaW5UcmFuc2FjdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHRyYW5zYWN0aW9uIikKICAgIGJhc2VfYXNzZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0IGlkZW50aWZpZXIiLCBhbGlhcz0iYmFzZUFzc2V0SWQiKQogICAgYmxvY2tfaGFzaDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249Ikhhc2ggb2YgdGhlIGJsb2NrIGNvbnRhaW5pbmcgdGhpcyB0cmFuc2FjdGlvbiIsIGFsaWFzPSJibG9ja0hhc2giKQogICAgYmxvY2tfbnVtYmVyOiBTdHJpY3RJbnQgPSBGaWVsZChkZXNjcmlwdGlvbj0iQmxvY2sgbnVtYmVyIGNvbnRhaW5pbmcgdGhpcyB0cmFuc2FjdGlvbiIsIGFsaWFzPSJibG9ja051bWJlciIpCiAgICBibG9ja190aW1lc3RhbXA6IGRhdGV0aW1lID0gRmllbGQoZGVzY3JpcHRpb249IlRpbWVzdGFtcCB3aGVuIHRoZSBibG9jayB3YXMgbWluZWQiLCBhbGlhcz0iYmxvY2tUaW1lc3RhbXAiKQogICAgY2hhaW5faWQ6IFN0cmljdEludCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJDaGFpbiBJRCBvZiB0aGUgYmxvY2tjaGFpbiIsIGFsaWFzPSJjaGFpbklkIikKICAgIGNvbnRyYWN0X2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJDb250cmFjdCBhZGRyZXNzIGlmIHRoaXMgaXMgYSBjb250cmFjdCB0cmFuc2FjdGlvbiIsIGFsaWFzPSJjb250cmFjdEFkZHJlc3MiKQogICAgY3VtdWxhdGl2ZV9nYXNfdXNlZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkN1bXVsYXRpdmUgZ2FzIHVzZWQgaW4gdGhlIGJsb2NrIHVwIHRvIHRoaXMgdHJhbnNhY3Rpb24iLCBhbGlhcz0iY3VtdWxhdGl2ZUdhc1VzZWQiKQogICAgZGVjb2RlZF9sb2dzOiBPcHRpb25hbFtEZWNvZGVkTG9nXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImRlY29kZWRMb2dzIikKICAgIGVmZmVjdGl2ZV9nYXNfcHJpY2U6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJFZmZlY3RpdmUgZ2FzIHByaWNlIHBhaWQgZm9yIHRoZSB0cmFuc2FjdGlvbiIsIGFsaWFzPSJlZmZlY3RpdmVHYXNQcmljZSIpCiAgICBmcm9tX2FkZHJlc3M6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBZGRyZXNzIHRoYXQgaW5pdGlhdGVkIHRoZSB0cmFuc2FjdGlvbiIsIGFsaWFzPSJmcm9tQWRkcmVzcyIpCiAgICBnYXNfdXNlZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkFtb3VudCBvZiBnYXMgdXNlZCBieSB0aGlzIHRyYW5zYWN0aW9uIiwgYWxpYXM9Imdhc1VzZWQiKQogICAgc3RhdHVzOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVHJhbnNhY3Rpb24gc3RhdHVzIikKICAgIHRvX2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBZGRyZXNzIHRoYXQgcmVjZWl2ZWQgdGhlIHRyYW5zYWN0aW9uIiwgYWxpYXM9InRvQWRkcmVzcyIpCiAgICB0cmFuc2FjdGlvbl9oYXNoOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iSGFzaCBvZiB0aGUgdHJhbnNhY3Rpb24iLCBhbGlhcz0idHJhbnNhY3Rpb25IYXNoIikKICAgIHRyYW5zYWN0aW9uX2luZGV4OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iSW5kZXggb2YgdGhlIHRyYW5zYWN0aW9uIGluIHRoZSBibG9jayIsIGFsaWFzPSJ0cmFuc2FjdGlvbkluZGV4IikKICAgIHR5cGU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUcmFuc2FjdGlvbiB0eXBlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAiYmFzZUFzc2V0SWQiLCAiYmxvY2tIYXNoIiwgImJsb2NrTnVtYmVyIiwgImJsb2NrVGltZXN0YW1wIiwgImNoYWluSWQiLCAiY29udHJhY3RBZGRyZXNzIiwgImN1bXVsYXRpdmVHYXNVc2VkIiwgImRlY29kZWRMb2dzIiwgImVmZmVjdGl2ZUdhc1ByaWNlIiwgImZyb21BZGRyZXNzIiwgImdhc1VzZWQiLCAic3RhdHVzIiwgInRvQWRkcmVzcyIsICJ0cmFuc2FjdGlvbkhhc2giLCAidHJhbnNhY3Rpb25JbmRleCIsICJ0eXBlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBPbmNoYWluVHJhbnNhY3Rpb24gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBkZWNvZGVkX2xvZ3MKICAgICAgICBpZiBzZWxmLmRlY29kZWRfbG9nczoKICAgICAgICAgICAgX2RpY3RbJ2RlY29kZWRMb2dzJ10gPSBzZWxmLmRlY29kZWRfbG9ncy50b19kaWN0KCkKICAgICAgICAjIHNldCB0byBOb25lIGlmIGNvbnRyYWN0X2FkZHJlc3MgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmNvbnRyYWN0X2FkZHJlc3MgaXMgTm9uZSBhbmQgImNvbnRyYWN0X2FkZHJlc3MiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2NvbnRyYWN0QWRkcmVzcyddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIHRvX2FkZHJlc3MgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnRvX2FkZHJlc3MgaXMgTm9uZSBhbmQgInRvX2FkZHJlc3MiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3RvQWRkcmVzcyddID0gTm9uZQoKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE9uY2hhaW5UcmFuc2FjdGlvbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJiYXNlQXNzZXRJZCI6IG9iai5nZXQoImJhc2VBc3NldElkIiksCiAgICAgICAgICAgICJibG9ja0hhc2giOiBvYmouZ2V0KCJibG9ja0hhc2giKSwKICAgICAgICAgICAgImJsb2NrTnVtYmVyIjogb2JqLmdldCgiYmxvY2tOdW1iZXIiKSwKICAgICAgICAgICAgImJsb2NrVGltZXN0YW1wIjogb2JqLmdldCgiYmxvY2tUaW1lc3RhbXAiKSwKICAgICAgICAgICAgImNoYWluSWQiOiBvYmouZ2V0KCJjaGFpbklkIiksCiAgICAgICAgICAgICJjb250cmFjdEFkZHJlc3MiOiBvYmouZ2V0KCJjb250cmFjdEFkZHJlc3MiKSwKICAgICAgICAgICAgImN1bXVsYXRpdmVHYXNVc2VkIjogb2JqLmdldCgiY3VtdWxhdGl2ZUdhc1VzZWQiKSwKICAgICAgICAgICAgImRlY29kZWRMb2dzIjogRGVjb2RlZExvZy5mcm9tX2RpY3Qob2JqWyJkZWNvZGVkTG9ncyJdKSBpZiBvYmouZ2V0KCJkZWNvZGVkTG9ncyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImVmZmVjdGl2ZUdhc1ByaWNlIjogb2JqLmdldCgiZWZmZWN0aXZlR2FzUHJpY2UiKSwKICAgICAgICAgICAgImZyb21BZGRyZXNzIjogb2JqLmdldCgiZnJvbUFkZHJlc3MiKSwKICAgICAgICAgICAgImdhc1VzZWQiOiBvYmouZ2V0KCJnYXNVc2VkIiksCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgInRvQWRkcmVzcyI6IG9iai5nZXQoInRvQWRkcmVzcyIpLAogICAgICAgICAgICAidHJhbnNhY3Rpb25IYXNoIjogb2JqLmdldCgidHJhbnNhY3Rpb25IYXNoIiksCiAgICAgICAgICAgICJ0cmFuc2FjdGlvbkluZGV4Ijogb2JqLmdldCgidHJhbnNhY3Rpb25JbmRleCIpLAogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/onchain_transactions_paged_response.py b/fireblocks/models/onchain_transactions_paged_response.py index 971d1ac4..736af3f6 100644 --- a/fireblocks/models/onchain_transactions_paged_response.py +++ b/fireblocks/models/onchain_transactions_paged_response.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.onchain_transaction import OnchainTransaction -from typing import Optional, Set -from typing_extensions import Self - -class OnchainTransactionsPagedResponse(BaseModel): - """ - OnchainTransactionsPagedResponse - """ # noqa: E501 - data: List[OnchainTransaction] = Field(description="Array of onchain transactions") - next: Optional[StrictStr] = Field(default=None, description="Cursor for next page") - prev: Optional[StrictStr] = Field(default=None, description="Cursor for previous page") - total: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Total count of items") - __properties: ClassVar[List[str]] = ["data", "next", "prev", "total"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of OnchainTransactionsPagedResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of OnchainTransactionsPagedResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [OnchainTransaction.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next"), - "prev": obj.get("prev"), - "total": obj.get("total") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5vbmNoYWluX3RyYW5zYWN0aW9uIGltcG9ydCBPbmNoYWluVHJhbnNhY3Rpb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgT25jaGFpblRyYW5zYWN0aW9uc1BhZ2VkUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgT25jaGFpblRyYW5zYWN0aW9uc1BhZ2VkUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGRhdGE6IExpc3RbT25jaGFpblRyYW5zYWN0aW9uXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBcnJheSBvZiBvbmNoYWluIHRyYW5zYWN0aW9ucyIpCiAgICBuZXh0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3Vyc29yIGZvciBuZXh0IHBhZ2UiKQogICAgcHJldjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkN1cnNvciBmb3IgcHJldmlvdXMgcGFnZSIpCiAgICB0b3RhbDogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVG90YWwgY291bnQgb2YgaXRlbXMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJkYXRhIiwgIm5leHQiLCAicHJldiIsICJ0b3RhbCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgT25jaGFpblRyYW5zYWN0aW9uc1BhZ2VkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGF0YSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgZm9yIF9pdGVtX2RhdGEgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZGF0YToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2RhdGEudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBPbmNoYWluVHJhbnNhY3Rpb25zUGFnZWRSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkYXRhIjogW09uY2hhaW5UcmFuc2FjdGlvbi5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImRhdGEiXV0gaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm5leHQiOiBvYmouZ2V0KCJuZXh0IiksCiAgICAgICAgICAgICJwcmV2Ijogb2JqLmdldCgicHJldiIpLAogICAgICAgICAgICAidG90YWwiOiBvYmouZ2V0KCJ0b3RhbCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/one_time_address.py b/fireblocks/models/one_time_address.py index f0dcbe81..bf03ff92 100644 --- a/fireblocks/models/one_time_address.py +++ b/fireblocks/models/one_time_address.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class OneTimeAddress(BaseModel): - """ - OneTimeAddress - """ # noqa: E501 - address: StrictStr - tag: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["address", "tag"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of OneTimeAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of OneTimeAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "address": obj.get("address"), - "tag": obj.get("tag") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIE9uZVRpbWVBZGRyZXNzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIE9uZVRpbWVBZGRyZXNzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhZGRyZXNzOiBTdHJpY3RTdHIKICAgIHRhZzogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYWRkcmVzcyIsICJ0YWciXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE9uZVRpbWVBZGRyZXNzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE9uZVRpbWVBZGRyZXNzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFkZHJlc3MiOiBvYmouZ2V0KCJhZGRyZXNzIiksCiAgICAgICAgICAgICJ0YWciOiBvYmouZ2V0KCJ0YWciKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/one_time_address_account.py b/fireblocks/models/one_time_address_account.py index 26514d7c..816ccf35 100644 --- a/fireblocks/models/one_time_address_account.py +++ b/fireblocks/models/one_time_address_account.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class OneTimeAddressAccount(BaseModel): - """ - OneTimeAddressAccount - """ # noqa: E501 - one_time_address: StrictStr = Field(alias="oneTimeAddress") - tag: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["oneTimeAddress", "tag"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of OneTimeAddressAccount from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of OneTimeAddressAccount from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "oneTimeAddress": obj.get("oneTimeAddress"), - "tag": obj.get("tag") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBPbmVUaW1lQWRkcmVzc0FjY291bnQoQmFzZU1vZGVsKToKICAgICIiIgogICAgT25lVGltZUFkZHJlc3NBY2NvdW50CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBvbmVfdGltZV9hZGRyZXNzOiBTdHJpY3RTdHIgPSBGaWVsZChhbGlhcz0ib25lVGltZUFkZHJlc3MiKQogICAgdGFnOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJvbmVUaW1lQWRkcmVzcyIsICJ0YWciXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE9uZVRpbWVBZGRyZXNzQWNjb3VudCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBPbmVUaW1lQWRkcmVzc0FjY291bnQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAib25lVGltZUFkZHJlc3MiOiBvYmouZ2V0KCJvbmVUaW1lQWRkcmVzcyIpLAogICAgICAgICAgICAidGFnIjogb2JqLmdldCgidGFnIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/one_time_address_peer_type.py b/fireblocks/models/one_time_address_peer_type.py index f998b45e..5e1818af 100644 --- a/fireblocks/models/one_time_address_peer_type.py +++ b/fireblocks/models/one_time_address_peer_type.py @@ -1,37 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class OneTimeAddressPeerType(str, Enum): - """ - OneTimeAddressPeerType - """ - - """ - allowed enum values - """ - ONE_TIME_ADDRESS = 'ONE_TIME_ADDRESS' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of OneTimeAddressPeerType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBPbmVUaW1lQWRkcmVzc1BlZXJUeXBlKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIE9uZVRpbWVBZGRyZXNzUGVlclR5cGUKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBPTkVfVElNRV9BRERSRVNTID0gJ09ORV9USU1FX0FERFJFU1MnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgT25lVGltZUFkZHJlc3NQZWVyVHlwZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/one_time_address_reference.py b/fireblocks/models/one_time_address_reference.py index 3d7fa578..3a0ce443 100644 --- a/fireblocks/models/one_time_address_reference.py +++ b/fireblocks/models/one_time_address_reference.py @@ -1,93 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.one_time_address_peer_type import OneTimeAddressPeerType -from typing import Optional, Set -from typing_extensions import Self - -class OneTimeAddressReference(BaseModel): - """ - OneTimeAddressReference - """ # noqa: E501 - type: OneTimeAddressPeerType - address: StrictStr - tag: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["type", "address", "tag"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of OneTimeAddressReference from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of OneTimeAddressReference from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "address": obj.get("address"), - "tag": obj.get("tag") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMub25lX3RpbWVfYWRkcmVzc19wZWVyX3R5cGUgaW1wb3J0IE9uZVRpbWVBZGRyZXNzUGVlclR5cGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgT25lVGltZUFkZHJlc3NSZWZlcmVuY2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgT25lVGltZUFkZHJlc3NSZWZlcmVuY2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR5cGU6IE9uZVRpbWVBZGRyZXNzUGVlclR5cGUKICAgIGFkZHJlc3M6IFN0cmljdFN0cgogICAgdGFnOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgImFkZHJlc3MiLCAidGFnIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBPbmVUaW1lQWRkcmVzc1JlZmVyZW5jZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBPbmVUaW1lQWRkcmVzc1JlZmVyZW5jZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAiYWRkcmVzcyI6IG9iai5nZXQoImFkZHJlc3MiKSwKICAgICAgICAgICAgInRhZyI6IG9iai5nZXQoInRhZyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/operation_execution_failure.py b/fireblocks/models/operation_execution_failure.py index 387ef427..c2320118 100644 --- a/fireblocks/models/operation_execution_failure.py +++ b/fireblocks/models/operation_execution_failure.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class OperationExecutionFailure(BaseModel): - """ - OperationExecutionFailure - """ # noqa: E501 - reason: StrictStr - data: Optional[Dict[str, Any]] = None - __properties: ClassVar[List[str]] = ["reason", "data"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of OperationExecutionFailure from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of OperationExecutionFailure from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "reason": obj.get("reason"), - "data": obj.get("data") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIE9wZXJhdGlvbkV4ZWN1dGlvbkZhaWx1cmUoQmFzZU1vZGVsKToKICAgICIiIgogICAgT3BlcmF0aW9uRXhlY3V0aW9uRmFpbHVyZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgcmVhc29uOiBTdHJpY3RTdHIKICAgIGRhdGE6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicmVhc29uIiwgImRhdGEiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE9wZXJhdGlvbkV4ZWN1dGlvbkZhaWx1cmUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgT3BlcmF0aW9uRXhlY3V0aW9uRmFpbHVyZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJyZWFzb24iOiBvYmouZ2V0KCJyZWFzb24iKSwKICAgICAgICAgICAgImRhdGEiOiBvYmouZ2V0KCJkYXRhIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/order_details.py b/fireblocks/models/order_details.py index bc991dd8..e3a2c9a1 100644 --- a/fireblocks/models/order_details.py +++ b/fireblocks/models/order_details.py @@ -1,171 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from fireblocks.models.access_type import AccessType -from fireblocks.models.execution_response_details import ExecutionResponseDetails -from fireblocks.models.failure import Failure -from fireblocks.models.fee import Fee -from fireblocks.models.order_execution_step import OrderExecutionStep -from fireblocks.models.order_status import OrderStatus -from fireblocks.models.participants_identification import ParticipantsIdentification -from fireblocks.models.payment_instructions import PaymentInstructions -from fireblocks.models.settlement import Settlement -from fireblocks.models.transfer_receipt import TransferReceipt -from typing import Optional, Set -from typing_extensions import Self - -class OrderDetails(BaseModel): - """ - OrderDetails - """ # noqa: E501 - id: StrictStr - via: AccessType - status: OrderStatus - created_at: datetime = Field(alias="createdAt") - updated_at: Optional[datetime] = Field(default=None, alias="updatedAt") - receipt: Optional[TransferReceipt] = None - general_fees: Optional[List[Fee]] = Field(default=None, alias="generalFees") - execution_steps: List[OrderExecutionStep] = Field(alias="executionSteps") - execution_response_details: ExecutionResponseDetails = Field(alias="executionResponseDetails") - settlement: Settlement - participants_identification: Optional[ParticipantsIdentification] = Field(default=None, alias="participantsIdentification") - payment_instructions: Optional[List[PaymentInstructions]] = Field(default=None, description="Payment instructions for the order, the client can use one of these to pay the order.", alias="paymentInstructions") - created_by: StrictStr = Field(description="The ID of the user who created the order", alias="createdBy") - customer_internal_reference_id: Optional[StrictStr] = Field(default=None, description="Internal reference ID for the customer", alias="customerInternalReferenceId") - note: Optional[Annotated[str, Field(strict=True, max_length=512)]] = Field(default=None, description="Optional note for the Order") - expires_at: Optional[datetime] = Field(default=None, alias="expiresAt") - failure: Optional[Failure] = None - __properties: ClassVar[List[str]] = ["id", "via", "status", "createdAt", "updatedAt", "receipt", "generalFees", "executionSteps", "executionResponseDetails", "settlement", "participantsIdentification", "paymentInstructions", "createdBy", "customerInternalReferenceId", "note", "expiresAt", "failure"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of OrderDetails from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of via - if self.via: - _dict['via'] = self.via.to_dict() - # override the default output from pydantic by calling `to_dict()` of receipt - if self.receipt: - _dict['receipt'] = self.receipt.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in general_fees (list) - _items = [] - if self.general_fees: - for _item_general_fees in self.general_fees: - if _item_general_fees: - _items.append(_item_general_fees.to_dict()) - _dict['generalFees'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in execution_steps (list) - _items = [] - if self.execution_steps: - for _item_execution_steps in self.execution_steps: - if _item_execution_steps: - _items.append(_item_execution_steps.to_dict()) - _dict['executionSteps'] = _items - # override the default output from pydantic by calling `to_dict()` of execution_response_details - if self.execution_response_details: - _dict['executionResponseDetails'] = self.execution_response_details.to_dict() - # override the default output from pydantic by calling `to_dict()` of settlement - if self.settlement: - _dict['settlement'] = self.settlement.to_dict() - # override the default output from pydantic by calling `to_dict()` of participants_identification - if self.participants_identification: - _dict['participantsIdentification'] = self.participants_identification.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in payment_instructions (list) - _items = [] - if self.payment_instructions: - for _item_payment_instructions in self.payment_instructions: - if _item_payment_instructions: - _items.append(_item_payment_instructions.to_dict()) - _dict['paymentInstructions'] = _items - # override the default output from pydantic by calling `to_dict()` of failure - if self.failure: - _dict['failure'] = self.failure.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of OrderDetails from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "via": AccessType.from_dict(obj["via"]) if obj.get("via") is not None else None, - "status": obj.get("status"), - "createdAt": obj.get("createdAt"), - "updatedAt": obj.get("updatedAt"), - "receipt": TransferReceipt.from_dict(obj["receipt"]) if obj.get("receipt") is not None else None, - "generalFees": [Fee.from_dict(_item) for _item in obj["generalFees"]] if obj.get("generalFees") is not None else None, - "executionSteps": [OrderExecutionStep.from_dict(_item) for _item in obj["executionSteps"]] if obj.get("executionSteps") is not None else None, - "executionResponseDetails": ExecutionResponseDetails.from_dict(obj["executionResponseDetails"]) if obj.get("executionResponseDetails") is not None else None, - "settlement": Settlement.from_dict(obj["settlement"]) if obj.get("settlement") is not None else None, - "participantsIdentification": ParticipantsIdentification.from_dict(obj["participantsIdentification"]) if obj.get("participantsIdentification") is not None else None, - "paymentInstructions": [PaymentInstructions.from_dict(_item) for _item in obj["paymentInstructions"]] if obj.get("paymentInstructions") is not None else None, - "createdBy": obj.get("createdBy"), - "customerInternalReferenceId": obj.get("customerInternalReferenceId"), - "note": obj.get("note"), - "expiresAt": obj.get("expiresAt"), - "failure": Failure.from_dict(obj["failure"]) if obj.get("failure") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2Nlc3NfdHlwZSBpbXBvcnQgQWNjZXNzVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9yZXNwb25zZV9kZXRhaWxzIGltcG9ydCBFeGVjdXRpb25SZXNwb25zZURldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5mYWlsdXJlIGltcG9ydCBGYWlsdXJlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmVlIGltcG9ydCBGZWUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5vcmRlcl9leGVjdXRpb25fc3RlcCBpbXBvcnQgT3JkZXJFeGVjdXRpb25TdGVwCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMub3JkZXJfc3RhdHVzIGltcG9ydCBPcmRlclN0YXR1cwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhcnRpY2lwYW50c19pZGVudGlmaWNhdGlvbiBpbXBvcnQgUGFydGljaXBhbnRzSWRlbnRpZmljYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXltZW50X2luc3RydWN0aW9ucyBpbXBvcnQgUGF5bWVudEluc3RydWN0aW9ucwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldHRsZW1lbnQgaW1wb3J0IFNldHRsZW1lbnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9yZWNlaXB0IGltcG9ydCBUcmFuc2ZlclJlY2VpcHQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgT3JkZXJEZXRhaWxzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIE9yZGVyRGV0YWlscwogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0cgogICAgdmlhOiBBY2Nlc3NUeXBlCiAgICBzdGF0dXM6IE9yZGVyU3RhdHVzCiAgICBjcmVhdGVkX2F0OiBkYXRldGltZSA9IEZpZWxkKGFsaWFzPSJjcmVhdGVkQXQiKQogICAgdXBkYXRlZF9hdDogT3B0aW9uYWxbZGF0ZXRpbWVdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0idXBkYXRlZEF0IikKICAgIHJlY2VpcHQ6IE9wdGlvbmFsW1RyYW5zZmVyUmVjZWlwdF0gPSBOb25lCiAgICBnZW5lcmFsX2ZlZXM6IE9wdGlvbmFsW0xpc3RbRmVlXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJnZW5lcmFsRmVlcyIpCiAgICBleGVjdXRpb25fc3RlcHM6IExpc3RbT3JkZXJFeGVjdXRpb25TdGVwXSA9IEZpZWxkKGFsaWFzPSJleGVjdXRpb25TdGVwcyIpCiAgICBleGVjdXRpb25fcmVzcG9uc2VfZGV0YWlsczogRXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzID0gRmllbGQoYWxpYXM9ImV4ZWN1dGlvblJlc3BvbnNlRGV0YWlscyIpCiAgICBzZXR0bGVtZW50OiBTZXR0bGVtZW50CiAgICBwYXJ0aWNpcGFudHNfaWRlbnRpZmljYXRpb246IE9wdGlvbmFsW1BhcnRpY2lwYW50c0lkZW50aWZpY2F0aW9uXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InBhcnRpY2lwYW50c0lkZW50aWZpY2F0aW9uIikKICAgIHBheW1lbnRfaW5zdHJ1Y3Rpb25zOiBPcHRpb25hbFtMaXN0W1BheW1lbnRJbnN0cnVjdGlvbnNdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlBheW1lbnQgaW5zdHJ1Y3Rpb25zIGZvciB0aGUgb3JkZXIsIHRoZSBjbGllbnQgY2FuIHVzZSBvbmUgb2YgdGhlc2UgdG8gcGF5IHRoZSBvcmRlci4iLCBhbGlhcz0icGF5bWVudEluc3RydWN0aW9ucyIpCiAgICBjcmVhdGVkX2J5OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB1c2VyIHdobyBjcmVhdGVkIHRoZSBvcmRlciIsIGFsaWFzPSJjcmVhdGVkQnkiKQogICAgY3VzdG9tZXJfaW50ZXJuYWxfcmVmZXJlbmNlX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSW50ZXJuYWwgcmVmZXJlbmNlIElEIGZvciB0aGUgY3VzdG9tZXIiLCBhbGlhcz0iY3VzdG9tZXJJbnRlcm5hbFJlZmVyZW5jZUlkIikKICAgIG5vdGU6IE9wdGlvbmFsW0Fubm90YXRlZFtzdHIsIEZpZWxkKHN0cmljdD1UcnVlLCBtYXhfbGVuZ3RoPTUxMildXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik9wdGlvbmFsIG5vdGUgZm9yIHRoZSBPcmRlciIpCiAgICBleHBpcmVzX2F0OiBPcHRpb25hbFtkYXRldGltZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJleHBpcmVzQXQiKQogICAgZmFpbHVyZTogT3B0aW9uYWxbRmFpbHVyZV0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgInZpYSIsICJzdGF0dXMiLCAiY3JlYXRlZEF0IiwgInVwZGF0ZWRBdCIsICJyZWNlaXB0IiwgImdlbmVyYWxGZWVzIiwgImV4ZWN1dGlvblN0ZXBzIiwgImV4ZWN1dGlvblJlc3BvbnNlRGV0YWlscyIsICJzZXR0bGVtZW50IiwgInBhcnRpY2lwYW50c0lkZW50aWZpY2F0aW9uIiwgInBheW1lbnRJbnN0cnVjdGlvbnMiLCAiY3JlYXRlZEJ5IiwgImN1c3RvbWVySW50ZXJuYWxSZWZlcmVuY2VJZCIsICJub3RlIiwgImV4cGlyZXNBdCIsICJmYWlsdXJlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBPcmRlckRldGFpbHMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiB2aWEKICAgICAgICBpZiBzZWxmLnZpYToKICAgICAgICAgICAgX2RpY3RbJ3ZpYSddID0gc2VsZi52aWEudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHJlY2VpcHQKICAgICAgICBpZiBzZWxmLnJlY2VpcHQ6CiAgICAgICAgICAgIF9kaWN0WydyZWNlaXB0J10gPSBzZWxmLnJlY2VpcHQudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBnZW5lcmFsX2ZlZXMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmdlbmVyYWxfZmVlczoKICAgICAgICAgICAgZm9yIF9pdGVtX2dlbmVyYWxfZmVlcyBpbiBzZWxmLmdlbmVyYWxfZmVlczoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2dlbmVyYWxfZmVlczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2dlbmVyYWxfZmVlcy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydnZW5lcmFsRmVlcyddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBleGVjdXRpb25fc3RlcHMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmV4ZWN1dGlvbl9zdGVwczoKICAgICAgICAgICAgZm9yIF9pdGVtX2V4ZWN1dGlvbl9zdGVwcyBpbiBzZWxmLmV4ZWN1dGlvbl9zdGVwczoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2V4ZWN1dGlvbl9zdGVwczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2V4ZWN1dGlvbl9zdGVwcy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydleGVjdXRpb25TdGVwcyddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGV4ZWN1dGlvbl9yZXNwb25zZV9kZXRhaWxzCiAgICAgICAgaWYgc2VsZi5leGVjdXRpb25fcmVzcG9uc2VfZGV0YWlsczoKICAgICAgICAgICAgX2RpY3RbJ2V4ZWN1dGlvblJlc3BvbnNlRGV0YWlscyddID0gc2VsZi5leGVjdXRpb25fcmVzcG9uc2VfZGV0YWlscy50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2Ygc2V0dGxlbWVudAogICAgICAgIGlmIHNlbGYuc2V0dGxlbWVudDoKICAgICAgICAgICAgX2RpY3RbJ3NldHRsZW1lbnQnXSA9IHNlbGYuc2V0dGxlbWVudC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcGFydGljaXBhbnRzX2lkZW50aWZpY2F0aW9uCiAgICAgICAgaWYgc2VsZi5wYXJ0aWNpcGFudHNfaWRlbnRpZmljYXRpb246CiAgICAgICAgICAgIF9kaWN0WydwYXJ0aWNpcGFudHNJZGVudGlmaWNhdGlvbiddID0gc2VsZi5wYXJ0aWNpcGFudHNfaWRlbnRpZmljYXRpb24udG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBwYXltZW50X2luc3RydWN0aW9ucyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYucGF5bWVudF9pbnN0cnVjdGlvbnM6CiAgICAgICAgICAgIGZvciBfaXRlbV9wYXltZW50X2luc3RydWN0aW9ucyBpbiBzZWxmLnBheW1lbnRfaW5zdHJ1Y3Rpb25zOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fcGF5bWVudF9pbnN0cnVjdGlvbnM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9wYXltZW50X2luc3RydWN0aW9ucy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydwYXltZW50SW5zdHJ1Y3Rpb25zJ10gPSBfaXRlbXMKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZmFpbHVyZQogICAgICAgIGlmIHNlbGYuZmFpbHVyZToKICAgICAgICAgICAgX2RpY3RbJ2ZhaWx1cmUnXSA9IHNlbGYuZmFpbHVyZS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE9yZGVyRGV0YWlscyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJ2aWEiOiBBY2Nlc3NUeXBlLmZyb21fZGljdChvYmpbInZpYSJdKSBpZiBvYmouZ2V0KCJ2aWEiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgImNyZWF0ZWRBdCI6IG9iai5nZXQoImNyZWF0ZWRBdCIpLAogICAgICAgICAgICAidXBkYXRlZEF0Ijogb2JqLmdldCgidXBkYXRlZEF0IiksCiAgICAgICAgICAgICJyZWNlaXB0IjogVHJhbnNmZXJSZWNlaXB0LmZyb21fZGljdChvYmpbInJlY2VpcHQiXSkgaWYgb2JqLmdldCgicmVjZWlwdCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImdlbmVyYWxGZWVzIjogW0ZlZS5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImdlbmVyYWxGZWVzIl1dIGlmIG9iai5nZXQoImdlbmVyYWxGZWVzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZXhlY3V0aW9uU3RlcHMiOiBbT3JkZXJFeGVjdXRpb25TdGVwLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiZXhlY3V0aW9uU3RlcHMiXV0gaWYgb2JqLmdldCgiZXhlY3V0aW9uU3RlcHMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJleGVjdXRpb25SZXNwb25zZURldGFpbHMiOiBFeGVjdXRpb25SZXNwb25zZURldGFpbHMuZnJvbV9kaWN0KG9ialsiZXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzIl0pIGlmIG9iai5nZXQoImV4ZWN1dGlvblJlc3BvbnNlRGV0YWlscyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInNldHRsZW1lbnQiOiBTZXR0bGVtZW50LmZyb21fZGljdChvYmpbInNldHRsZW1lbnQiXSkgaWYgb2JqLmdldCgic2V0dGxlbWVudCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInBhcnRpY2lwYW50c0lkZW50aWZpY2F0aW9uIjogUGFydGljaXBhbnRzSWRlbnRpZmljYXRpb24uZnJvbV9kaWN0KG9ialsicGFydGljaXBhbnRzSWRlbnRpZmljYXRpb24iXSkgaWYgb2JqLmdldCgicGFydGljaXBhbnRzSWRlbnRpZmljYXRpb24iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJwYXltZW50SW5zdHJ1Y3Rpb25zIjogW1BheW1lbnRJbnN0cnVjdGlvbnMuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJwYXltZW50SW5zdHJ1Y3Rpb25zIl1dIGlmIG9iai5nZXQoInBheW1lbnRJbnN0cnVjdGlvbnMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJjcmVhdGVkQnkiOiBvYmouZ2V0KCJjcmVhdGVkQnkiKSwKICAgICAgICAgICAgImN1c3RvbWVySW50ZXJuYWxSZWZlcmVuY2VJZCI6IG9iai5nZXQoImN1c3RvbWVySW50ZXJuYWxSZWZlcmVuY2VJZCIpLAogICAgICAgICAgICAibm90ZSI6IG9iai5nZXQoIm5vdGUiKSwKICAgICAgICAgICAgImV4cGlyZXNBdCI6IG9iai5nZXQoImV4cGlyZXNBdCIpLAogICAgICAgICAgICAiZmFpbHVyZSI6IEZhaWx1cmUuZnJvbV9kaWN0KG9ialsiZmFpbHVyZSJdKSBpZiBvYmouZ2V0KCJmYWlsdXJlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/order_execution_step.py b/fireblocks/models/order_execution_step.py index 9c785de0..5ee69961 100644 --- a/fireblocks/models/order_execution_step.py +++ b/fireblocks/models/order_execution_step.py @@ -1,105 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.execution_step_error import ExecutionStepError -from fireblocks.models.execution_step_status_enum import ExecutionStepStatusEnum -from fireblocks.models.execution_step_type import ExecutionStepType -from fireblocks.models.fee import Fee -from typing import Optional, Set -from typing_extensions import Self - -class OrderExecutionStep(BaseModel): - """ - OrderExecutionStep - """ # noqa: E501 - type: ExecutionStepType - status: ExecutionStepStatusEnum - fee: Optional[Fee] = None - tx_id: Optional[StrictStr] = Field(default=None, alias="txId") - tx_hash: Optional[StrictStr] = Field(default=None, alias="txHash") - error: Optional[ExecutionStepError] = None - __properties: ClassVar[List[str]] = ["type", "status", "fee", "txId", "txHash", "error"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of OrderExecutionStep from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of fee - if self.fee: - _dict['fee'] = self.fee.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of OrderExecutionStep from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "status": obj.get("status"), - "fee": Fee.from_dict(obj["fee"]) if obj.get("fee") is not None else None, - "txId": obj.get("txId"), - "txHash": obj.get("txHash"), - "error": obj.get("error") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9zdGVwX2Vycm9yIGltcG9ydCBFeGVjdXRpb25TdGVwRXJyb3IKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGVjdXRpb25fc3RlcF9zdGF0dXNfZW51bSBpbXBvcnQgRXhlY3V0aW9uU3RlcFN0YXR1c0VudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGVjdXRpb25fc3RlcF90eXBlIGltcG9ydCBFeGVjdXRpb25TdGVwVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZSBpbXBvcnQgRmVlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIE9yZGVyRXhlY3V0aW9uU3RlcChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBPcmRlckV4ZWN1dGlvblN0ZXAKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR5cGU6IEV4ZWN1dGlvblN0ZXBUeXBlCiAgICBzdGF0dXM6IEV4ZWN1dGlvblN0ZXBTdGF0dXNFbnVtCiAgICBmZWU6IE9wdGlvbmFsW0ZlZV0gPSBOb25lCiAgICB0eF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InR4SWQiKQogICAgdHhfaGFzaDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InR4SGFzaCIpCiAgICBlcnJvcjogT3B0aW9uYWxbRXhlY3V0aW9uU3RlcEVycm9yXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidHlwZSIsICJzdGF0dXMiLCAiZmVlIiwgInR4SWQiLCAidHhIYXNoIiwgImVycm9yIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBPcmRlckV4ZWN1dGlvblN0ZXAgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBmZWUKICAgICAgICBpZiBzZWxmLmZlZToKICAgICAgICAgICAgX2RpY3RbJ2ZlZSddID0gc2VsZi5mZWUudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBPcmRlckV4ZWN1dGlvblN0ZXAgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAiZmVlIjogRmVlLmZyb21fZGljdChvYmpbImZlZSJdKSBpZiBvYmouZ2V0KCJmZWUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJ0eElkIjogb2JqLmdldCgidHhJZCIpLAogICAgICAgICAgICAidHhIYXNoIjogb2JqLmdldCgidHhIYXNoIiksCiAgICAgICAgICAgICJlcnJvciI6IG9iai5nZXQoImVycm9yIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/order_side.py b/fireblocks/models/order_side.py index 5d110e4a..cfc36926 100644 --- a/fireblocks/models/order_side.py +++ b/fireblocks/models/order_side.py @@ -1,39 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class OrderSide(str, Enum): - """ - Order side for trading operations - """ - - """ - allowed enum values - """ - BUY = 'BUY' - SELL = 'SELL' - ANY = 'ANY' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of OrderSide from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBPcmRlclNpZGUoc3RyLCBFbnVtKToKICAgICIiIgogICAgT3JkZXIgc2lkZSBmb3IgdHJhZGluZyBvcGVyYXRpb25zCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgQlVZID0gJ0JVWScKICAgIFNFTEwgPSAnU0VMTCcKICAgIEFOWSA9ICdBTlknCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgT3JkZXJTaWRlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/order_status.py b/fireblocks/models/order_status.py index b188296e..5576869f 100644 --- a/fireblocks/models/order_status.py +++ b/fireblocks/models/order_status.py @@ -1,43 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class OrderStatus(str, Enum): - """ - OrderStatus - """ - - """ - allowed enum values - """ - CREATED = 'CREATED' - AWAITING_PAYMENT = 'AWAITING_PAYMENT' - PENDING_USER_ACTION = 'PENDING_USER_ACTION' - PROCESSING = 'PROCESSING' - CANCELED = 'CANCELED' - COMPLETED = 'COMPLETED' - FAILED = 'FAILED' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of OrderStatus from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBPcmRlclN0YXR1cyhzdHIsIEVudW0pOgogICAgIiIiCiAgICBPcmRlclN0YXR1cwogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIENSRUFURUQgPSAnQ1JFQVRFRCcKICAgIEFXQUlUSU5HX1BBWU1FTlQgPSAnQVdBSVRJTkdfUEFZTUVOVCcKICAgIFBFTkRJTkdfVVNFUl9BQ1RJT04gPSAnUEVORElOR19VU0VSX0FDVElPTicKICAgIFBST0NFU1NJTkcgPSAnUFJPQ0VTU0lORycKICAgIENBTkNFTEVEID0gJ0NBTkNFTEVEJwogICAgQ09NUExFVEVEID0gJ0NPTVBMRVRFRCcKICAgIEZBSUxFRCA9ICdGQUlMRUQnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgT3JkZXJTdGF0dXMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/order_summary.py b/fireblocks/models/order_summary.py index e1072ce8..56bf5790 100644 --- a/fireblocks/models/order_summary.py +++ b/fireblocks/models/order_summary.py @@ -1,123 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.access_type import AccessType -from fireblocks.models.account_reference import AccountReference -from fireblocks.models.order_status import OrderStatus -from fireblocks.models.settlement_source_account import SettlementSourceAccount -from fireblocks.models.side import Side -from typing import Optional, Set -from typing_extensions import Self - -class OrderSummary(BaseModel): - """ - OrderSummary - """ # noqa: E501 - id: StrictStr - via: AccessType - side: Side - base_amount: StrictStr = Field(alias="baseAmount") - quote_amount: Optional[StrictStr] = Field(default=None, alias="quoteAmount") - base_asset_id: StrictStr = Field(alias="baseAssetId") - quote_asset_id: StrictStr = Field(alias="quoteAssetId") - status: OrderStatus - destination: AccountReference - source: Optional[SettlementSourceAccount] = None - created_at: datetime = Field(alias="createdAt") - __properties: ClassVar[List[str]] = ["id", "via", "side", "baseAmount", "quoteAmount", "baseAssetId", "quoteAssetId", "status", "destination", "source", "createdAt"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of OrderSummary from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of via - if self.via: - _dict['via'] = self.via.to_dict() - # override the default output from pydantic by calling `to_dict()` of destination - if self.destination: - _dict['destination'] = self.destination.to_dict() - # override the default output from pydantic by calling `to_dict()` of source - if self.source: - _dict['source'] = self.source.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of OrderSummary from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "via": AccessType.from_dict(obj["via"]) if obj.get("via") is not None else None, - "side": obj.get("side"), - "baseAmount": obj.get("baseAmount"), - "quoteAmount": obj.get("quoteAmount"), - "baseAssetId": obj.get("baseAssetId"), - "quoteAssetId": obj.get("quoteAssetId"), - "status": obj.get("status"), - "destination": AccountReference.from_dict(obj["destination"]) if obj.get("destination") is not None else None, - "source": SettlementSourceAccount.from_dict(obj["source"]) if obj.get("source") is not None else None, - "createdAt": obj.get("createdAt") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY2Vzc190eXBlIGltcG9ydCBBY2Nlc3NUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9yZWZlcmVuY2UgaW1wb3J0IEFjY291bnRSZWZlcmVuY2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5vcmRlcl9zdGF0dXMgaW1wb3J0IE9yZGVyU3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0dGxlbWVudF9zb3VyY2VfYWNjb3VudCBpbXBvcnQgU2V0dGxlbWVudFNvdXJjZUFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zaWRlIGltcG9ydCBTaWRlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIE9yZGVyU3VtbWFyeShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBPcmRlclN1bW1hcnkKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBTdHJpY3RTdHIKICAgIHZpYTogQWNjZXNzVHlwZQogICAgc2lkZTogU2lkZQogICAgYmFzZV9hbW91bnQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJiYXNlQW1vdW50IikKICAgIHF1b3RlX2Ftb3VudDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InF1b3RlQW1vdW50IikKICAgIGJhc2VfYXNzZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJiYXNlQXNzZXRJZCIpCiAgICBxdW90ZV9hc3NldF9pZDogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9InF1b3RlQXNzZXRJZCIpCiAgICBzdGF0dXM6IE9yZGVyU3RhdHVzCiAgICBkZXN0aW5hdGlvbjogQWNjb3VudFJlZmVyZW5jZQogICAgc291cmNlOiBPcHRpb25hbFtTZXR0bGVtZW50U291cmNlQWNjb3VudF0gPSBOb25lCiAgICBjcmVhdGVkX2F0OiBkYXRldGltZSA9IEZpZWxkKGFsaWFzPSJjcmVhdGVkQXQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJ2aWEiLCAic2lkZSIsICJiYXNlQW1vdW50IiwgInF1b3RlQW1vdW50IiwgImJhc2VBc3NldElkIiwgInF1b3RlQXNzZXRJZCIsICJzdGF0dXMiLCAiZGVzdGluYXRpb24iLCAic291cmNlIiwgImNyZWF0ZWRBdCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgT3JkZXJTdW1tYXJ5IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgdmlhCiAgICAgICAgaWYgc2VsZi52aWE6CiAgICAgICAgICAgIF9kaWN0Wyd2aWEnXSA9IHNlbGYudmlhLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBkZXN0aW5hdGlvbgogICAgICAgIGlmIHNlbGYuZGVzdGluYXRpb246CiAgICAgICAgICAgIF9kaWN0WydkZXN0aW5hdGlvbiddID0gc2VsZi5kZXN0aW5hdGlvbi50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2Ygc291cmNlCiAgICAgICAgaWYgc2VsZi5zb3VyY2U6CiAgICAgICAgICAgIF9kaWN0Wydzb3VyY2UnXSA9IHNlbGYuc291cmNlLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgT3JkZXJTdW1tYXJ5IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgInZpYSI6IEFjY2Vzc1R5cGUuZnJvbV9kaWN0KG9ialsidmlhIl0pIGlmIG9iai5nZXQoInZpYSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInNpZGUiOiBvYmouZ2V0KCJzaWRlIiksCiAgICAgICAgICAgICJiYXNlQW1vdW50Ijogb2JqLmdldCgiYmFzZUFtb3VudCIpLAogICAgICAgICAgICAicXVvdGVBbW91bnQiOiBvYmouZ2V0KCJxdW90ZUFtb3VudCIpLAogICAgICAgICAgICAiYmFzZUFzc2V0SWQiOiBvYmouZ2V0KCJiYXNlQXNzZXRJZCIpLAogICAgICAgICAgICAicXVvdGVBc3NldElkIjogb2JqLmdldCgicXVvdGVBc3NldElkIiksCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgImRlc3RpbmF0aW9uIjogQWNjb3VudFJlZmVyZW5jZS5mcm9tX2RpY3Qob2JqWyJkZXN0aW5hdGlvbiJdKSBpZiBvYmouZ2V0KCJkZXN0aW5hdGlvbiIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInNvdXJjZSI6IFNldHRsZW1lbnRTb3VyY2VBY2NvdW50LmZyb21fZGljdChvYmpbInNvdXJjZSJdKSBpZiBvYmouZ2V0KCJzb3VyY2UiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJjcmVhdGVkQXQiOiBvYmouZ2V0KCJjcmVhdGVkQXQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/paginated_address_response.py b/fireblocks/models/paginated_address_response.py index 2813457f..ce08ecaf 100644 --- a/fireblocks/models/paginated_address_response.py +++ b/fireblocks/models/paginated_address_response.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.paginated_address_response_paging import PaginatedAddressResponsePaging -from fireblocks.models.vault_wallet_address import VaultWalletAddress -from typing import Optional, Set -from typing_extensions import Self - -class PaginatedAddressResponse(BaseModel): - """ - PaginatedAddressResponse - """ # noqa: E501 - addresses: Optional[List[VaultWalletAddress]] = None - paging: Optional[PaginatedAddressResponsePaging] = None - __properties: ClassVar[List[str]] = ["addresses", "paging"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PaginatedAddressResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in addresses (list) - _items = [] - if self.addresses: - for _item_addresses in self.addresses: - if _item_addresses: - _items.append(_item_addresses.to_dict()) - _dict['addresses'] = _items - # override the default output from pydantic by calling `to_dict()` of paging - if self.paging: - _dict['paging'] = self.paging.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PaginatedAddressResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "addresses": [VaultWalletAddress.from_dict(_item) for _item in obj["addresses"]] if obj.get("addresses") is not None else None, - "paging": PaginatedAddressResponsePaging.from_dict(obj["paging"]) if obj.get("paging") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhZ2luYXRlZF9hZGRyZXNzX3Jlc3BvbnNlX3BhZ2luZyBpbXBvcnQgUGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlUGFnaW5nCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmF1bHRfd2FsbGV0X2FkZHJlc3MgaW1wb3J0IFZhdWx0V2FsbGV0QWRkcmVzcwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBQYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgUGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhZGRyZXNzZXM6IE9wdGlvbmFsW0xpc3RbVmF1bHRXYWxsZXRBZGRyZXNzXV0gPSBOb25lCiAgICBwYWdpbmc6IE9wdGlvbmFsW1BhZ2luYXRlZEFkZHJlc3NSZXNwb25zZVBhZ2luZ10gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFkZHJlc3NlcyIsICJwYWdpbmciXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBhZ2luYXRlZEFkZHJlc3NSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBhZGRyZXNzZXMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmFkZHJlc3NlczoKICAgICAgICAgICAgZm9yIF9pdGVtX2FkZHJlc3NlcyBpbiBzZWxmLmFkZHJlc3NlczoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2FkZHJlc3NlczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2FkZHJlc3Nlcy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydhZGRyZXNzZXMnXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBwYWdpbmcKICAgICAgICBpZiBzZWxmLnBhZ2luZzoKICAgICAgICAgICAgX2RpY3RbJ3BhZ2luZyddID0gc2VsZi5wYWdpbmcudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYWRkcmVzc2VzIjogW1ZhdWx0V2FsbGV0QWRkcmVzcy5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImFkZHJlc3NlcyJdXSBpZiBvYmouZ2V0KCJhZGRyZXNzZXMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJwYWdpbmciOiBQYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2VQYWdpbmcuZnJvbV9kaWN0KG9ialsicGFnaW5nIl0pIGlmIG9iai5nZXQoInBhZ2luZyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/paginated_address_response_paging.py b/fireblocks/models/paginated_address_response_paging.py index b1d79e9e..b13d2803 100644 --- a/fireblocks/models/paginated_address_response_paging.py +++ b/fireblocks/models/paginated_address_response_paging.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class PaginatedAddressResponsePaging(BaseModel): - """ - PaginatedAddressResponsePaging - """ # noqa: E501 - before: Optional[StrictStr] = Field(default=None, description="A string representing a cursor. Users can use this with a new request to this API endpoint as the “before” request parameter to fetch the previous page of results.") - after: Optional[StrictStr] = Field(default=None, description="A string representing a cursor. Users can use this with a new request to this API endpoint as the “after” request parameter to fetch the next page of results.") - __properties: ClassVar[List[str]] = ["before", "after"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PaginatedAddressResponsePaging from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PaginatedAddressResponsePaging from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "before": obj.get("before"), - "after": obj.get("after") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBQYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2VQYWdpbmcoQmFzZU1vZGVsKToKICAgICIiIgogICAgUGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlUGFnaW5nCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBiZWZvcmU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBIHN0cmluZyByZXByZXNlbnRpbmcgYSBjdXJzb3IuIFVzZXJzIGNhbiB1c2UgdGhpcyB3aXRoIGEgbmV3IHJlcXVlc3QgdG8gdGhpcyBBUEkgZW5kcG9pbnQgYXMgdGhlIOKAnGJlZm9yZeKAnSByZXF1ZXN0IHBhcmFtZXRlciB0byBmZXRjaCB0aGUgcHJldmlvdXMgcGFnZSBvZiByZXN1bHRzLiIpCiAgICBhZnRlcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkEgc3RyaW5nIHJlcHJlc2VudGluZyBhIGN1cnNvci4gVXNlcnMgY2FuIHVzZSB0aGlzIHdpdGggYSBuZXcgcmVxdWVzdCB0byB0aGlzIEFQSSBlbmRwb2ludCBhcyB0aGUg4oCcYWZ0ZXLigJ0gcmVxdWVzdCBwYXJhbWV0ZXIgdG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiByZXN1bHRzLiIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImJlZm9yZSIsICJhZnRlciJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlUGFnaW5nIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBhZ2luYXRlZEFkZHJlc3NSZXNwb25zZVBhZ2luZyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJiZWZvcmUiOiBvYmouZ2V0KCJiZWZvcmUiKSwKICAgICAgICAgICAgImFmdGVyIjogb2JqLmdldCgiYWZ0ZXIiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/paginated_asset_wallet_response.py b/fireblocks/models/paginated_asset_wallet_response.py index 5e32505a..37ebb90e 100644 --- a/fireblocks/models/paginated_asset_wallet_response.py +++ b/fireblocks/models/paginated_asset_wallet_response.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.asset_wallet import AssetWallet -from fireblocks.models.paginated_asset_wallet_response_paging import PaginatedAssetWalletResponsePaging -from typing import Optional, Set -from typing_extensions import Self - -class PaginatedAssetWalletResponse(BaseModel): - """ - PaginatedAssetWalletResponse - """ # noqa: E501 - asset_wallets: Optional[List[AssetWallet]] = Field(default=None, alias="assetWallets") - paging: Optional[PaginatedAssetWalletResponsePaging] = None - __properties: ClassVar[List[str]] = ["assetWallets", "paging"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PaginatedAssetWalletResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in asset_wallets (list) - _items = [] - if self.asset_wallets: - for _item_asset_wallets in self.asset_wallets: - if _item_asset_wallets: - _items.append(_item_asset_wallets.to_dict()) - _dict['assetWallets'] = _items - # override the default output from pydantic by calling `to_dict()` of paging - if self.paging: - _dict['paging'] = self.paging.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PaginatedAssetWalletResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "assetWallets": [AssetWallet.from_dict(_item) for _item in obj["assetWallets"]] if obj.get("assetWallets") is not None else None, - "paging": PaginatedAssetWalletResponsePaging.from_dict(obj["paging"]) if obj.get("paging") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF93YWxsZXQgaW1wb3J0IEFzc2V0V2FsbGV0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFnaW5hdGVkX2Fzc2V0X3dhbGxldF9yZXNwb25zZV9wYWdpbmcgaW1wb3J0IFBhZ2luYXRlZEFzc2V0V2FsbGV0UmVzcG9uc2VQYWdpbmcKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBQYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhc3NldF93YWxsZXRzOiBPcHRpb25hbFtMaXN0W0Fzc2V0V2FsbGV0XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJhc3NldFdhbGxldHMiKQogICAgcGFnaW5nOiBPcHRpb25hbFtQYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlUGFnaW5nXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYXNzZXRXYWxsZXRzIiwgInBhZ2luZyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBhc3NldF93YWxsZXRzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5hc3NldF93YWxsZXRzOgogICAgICAgICAgICBmb3IgX2l0ZW1fYXNzZXRfd2FsbGV0cyBpbiBzZWxmLmFzc2V0X3dhbGxldHM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9hc3NldF93YWxsZXRzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fYXNzZXRfd2FsbGV0cy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0Wydhc3NldFdhbGxldHMnXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBwYWdpbmcKICAgICAgICBpZiBzZWxmLnBhZ2luZzoKICAgICAgICAgICAgX2RpY3RbJ3BhZ2luZyddID0gc2VsZi5wYWdpbmcudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFzc2V0V2FsbGV0cyI6IFtBc3NldFdhbGxldC5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImFzc2V0V2FsbGV0cyJdXSBpZiBvYmouZ2V0KCJhc3NldFdhbGxldHMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJwYWdpbmciOiBQYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlUGFnaW5nLmZyb21fZGljdChvYmpbInBhZ2luZyJdKSBpZiBvYmouZ2V0KCJwYWdpbmciKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/paginated_asset_wallet_response_paging.py b/fireblocks/models/paginated_asset_wallet_response_paging.py index 6bb101da..71216fa7 100644 --- a/fireblocks/models/paginated_asset_wallet_response_paging.py +++ b/fireblocks/models/paginated_asset_wallet_response_paging.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class PaginatedAssetWalletResponsePaging(BaseModel): - """ - PaginatedAssetWalletResponsePaging - """ # noqa: E501 - before: Optional[StrictStr] = Field(default=None, description="A string representing a cursor. Users can use this with a new request to this API endpoint as the “before” request parameter to fetch the previous page of results.") - after: Optional[StrictStr] = Field(default=None, description="A string representing a cursor. Users can use this with a new request to this API endpoint as the “before” request parameter to fetch the next page of results.") - __properties: ClassVar[List[str]] = ["before", "after"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PaginatedAssetWalletResponsePaging from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PaginatedAssetWalletResponsePaging from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "before": obj.get("before"), - "after": obj.get("after") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBQYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlUGFnaW5nKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFBhZ2luYXRlZEFzc2V0V2FsbGV0UmVzcG9uc2VQYWdpbmcKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGJlZm9yZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkEgc3RyaW5nIHJlcHJlc2VudGluZyBhIGN1cnNvci4gVXNlcnMgY2FuIHVzZSB0aGlzIHdpdGggYSBuZXcgcmVxdWVzdCB0byB0aGlzIEFQSSBlbmRwb2ludCBhcyB0aGUg4oCcYmVmb3Jl4oCdIHJlcXVlc3QgcGFyYW1ldGVyIHRvIGZldGNoIHRoZSBwcmV2aW91cyBwYWdlIG9mIHJlc3VsdHMuIikKICAgIGFmdGVyOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQSBzdHJpbmcgcmVwcmVzZW50aW5nIGEgY3Vyc29yLiBVc2VycyBjYW4gdXNlIHRoaXMgd2l0aCBhIG5ldyByZXF1ZXN0IHRvIHRoaXMgQVBJIGVuZHBvaW50IGFzIHRoZSDigJxiZWZvcmXigJ0gcmVxdWVzdCBwYXJhbWV0ZXIgdG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiByZXN1bHRzLiIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImJlZm9yZSIsICJhZnRlciJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZVBhZ2luZyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlUGFnaW5nIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImJlZm9yZSI6IG9iai5nZXQoImJlZm9yZSIpLAogICAgICAgICAgICAiYWZ0ZXIiOiBvYmouZ2V0KCJhZnRlciIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/paginated_assets_response.py b/fireblocks/models/paginated_assets_response.py index 73eefeb0..a4291266 100644 --- a/fireblocks/models/paginated_assets_response.py +++ b/fireblocks/models/paginated_assets_response.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.unmanaged_wallet import UnmanagedWallet -from typing import Optional, Set -from typing_extensions import Self - -class PaginatedAssetsResponse(BaseModel): - """ - PaginatedAssetsResponse - """ # noqa: E501 - total: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Total number of assets in the internal wallet") - data: UnmanagedWallet - next: Optional[StrictStr] = Field(default=None, description="Cursor for the next page of results") - __properties: ClassVar[List[str]] = ["total", "data", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PaginatedAssetsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of data - if self.data: - _dict['data'] = self.data.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PaginatedAssetsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "total": obj.get("total"), - "data": UnmanagedWallet.from_dict(obj["data"]) if obj.get("data") is not None else None, - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy51bm1hbmFnZWRfd2FsbGV0IGltcG9ydCBVbm1hbmFnZWRXYWxsZXQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUGFnaW5hdGVkQXNzZXRzUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgUGFnaW5hdGVkQXNzZXRzUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHRvdGFsOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUb3RhbCBudW1iZXIgb2YgYXNzZXRzIGluIHRoZSBpbnRlcm5hbCB3YWxsZXQiKQogICAgZGF0YTogVW5tYW5hZ2VkV2FsbGV0CiAgICBuZXh0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3Vyc29yIGZvciB0aGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0b3RhbCIsICJkYXRhIiwgIm5leHQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZGF0YQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgX2RpY3RbJ2RhdGEnXSA9IHNlbGYuZGF0YS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInRvdGFsIjogb2JqLmdldCgidG90YWwiKSwKICAgICAgICAgICAgImRhdGEiOiBVbm1hbmFnZWRXYWxsZXQuZnJvbV9kaWN0KG9ialsiZGF0YSJdKSBpZiBvYmouZ2V0KCJkYXRhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibmV4dCI6IG9iai5nZXQoIm5leHQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/paging.py b/fireblocks/models/paging.py index d2b383da..e56f90fd 100644 --- a/fireblocks/models/paging.py +++ b/fireblocks/models/paging.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class Paging(BaseModel): - """ - Paging - """ # noqa: E501 - next: StrictStr = Field(description="Cursor to the next page") - __properties: ClassVar[List[str]] = ["next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of Paging from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of Paging from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFBhZ2luZyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBQYWdpbmcKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG5leHQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJDdXJzb3IgdG8gdGhlIG5leHQgcGFnZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm5leHQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBhZ2luZyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYWdpbmcgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibmV4dCI6IG9iai5nZXQoIm5leHQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/pair_api_key_request.py b/fireblocks/models/pair_api_key_request.py index c0262a63..c143025f 100644 --- a/fireblocks/models/pair_api_key_request.py +++ b/fireblocks/models/pair_api_key_request.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.callback_handler_request import CallbackHandlerRequest -from typing import Optional, Set -from typing_extensions import Self - -class PairApiKeyRequest(BaseModel): - """ - PairApiKeyRequest - """ # noqa: E501 - callback_handler: Optional[CallbackHandlerRequest] = Field(default=None, alias="callbackHandler") - __properties: ClassVar[List[str]] = ["callbackHandler"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PairApiKeyRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of callback_handler - if self.callback_handler: - _dict['callbackHandler'] = self.callback_handler.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PairApiKeyRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "callbackHandler": CallbackHandlerRequest.from_dict(obj["callbackHandler"]) if obj.get("callbackHandler") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jYWxsYmFja19oYW5kbGVyX3JlcXVlc3QgaW1wb3J0IENhbGxiYWNrSGFuZGxlclJlcXVlc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUGFpckFwaUtleVJlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgUGFpckFwaUtleVJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGNhbGxiYWNrX2hhbmRsZXI6IE9wdGlvbmFsW0NhbGxiYWNrSGFuZGxlclJlcXVlc3RdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iY2FsbGJhY2tIYW5kbGVyIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiY2FsbGJhY2tIYW5kbGVyIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYWlyQXBpS2V5UmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGNhbGxiYWNrX2hhbmRsZXIKICAgICAgICBpZiBzZWxmLmNhbGxiYWNrX2hhbmRsZXI6CiAgICAgICAgICAgIF9kaWN0WydjYWxsYmFja0hhbmRsZXInXSA9IHNlbGYuY2FsbGJhY2tfaGFuZGxlci50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBhaXJBcGlLZXlSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImNhbGxiYWNrSGFuZGxlciI6IENhbGxiYWNrSGFuZGxlclJlcXVlc3QuZnJvbV9kaWN0KG9ialsiY2FsbGJhY2tIYW5kbGVyIl0pIGlmIG9iai5nZXQoImNhbGxiYWNrSGFuZGxlciIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/pair_api_key_response.py b/fireblocks/models/pair_api_key_response.py index 4fcd4ff4..cccdccce 100644 --- a/fireblocks/models/pair_api_key_response.py +++ b/fireblocks/models/pair_api_key_response.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.callback_handler_request import CallbackHandlerRequest -from typing import Optional, Set -from typing_extensions import Self - -class PairApiKeyResponse(BaseModel): - """ - PairApiKeyResponse - """ # noqa: E501 - id: StrictStr = Field(description="The unique identifier of the API key") - callback_handler: Optional[CallbackHandlerRequest] = Field(default=None, alias="callbackHandler") - __properties: ClassVar[List[str]] = ["id", "callbackHandler"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PairApiKeyResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of callback_handler - if self.callback_handler: - _dict['callbackHandler'] = self.callback_handler.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PairApiKeyResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "callbackHandler": CallbackHandlerRequest.from_dict(obj["callbackHandler"]) if obj.get("callbackHandler") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNhbGxiYWNrX2hhbmRsZXJfcmVxdWVzdCBpbXBvcnQgQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBQYWlyQXBpS2V5UmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgUGFpckFwaUtleVJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgQVBJIGtleSIpCiAgICBjYWxsYmFja19oYW5kbGVyOiBPcHRpb25hbFtDYWxsYmFja0hhbmRsZXJSZXF1ZXN0XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImNhbGxiYWNrSGFuZGxlciIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgImNhbGxiYWNrSGFuZGxlciJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGFpckFwaUtleVJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgY2FsbGJhY2tfaGFuZGxlcgogICAgICAgIGlmIHNlbGYuY2FsbGJhY2tfaGFuZGxlcjoKICAgICAgICAgICAgX2RpY3RbJ2NhbGxiYWNrSGFuZGxlciddID0gc2VsZi5jYWxsYmFja19oYW5kbGVyLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGFpckFwaUtleVJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgImNhbGxiYWNrSGFuZGxlciI6IENhbGxiYWNrSGFuZGxlclJlcXVlc3QuZnJvbV9kaWN0KG9ialsiY2FsbGJhY2tIYW5kbGVyIl0pIGlmIG9iai5nZXQoImNhbGxiYWNrSGFuZGxlciIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/parameter.py b/fireblocks/models/parameter.py index 6f7b0324..0b59a03a 100644 --- a/fireblocks/models/parameter.py +++ b/fireblocks/models/parameter.py @@ -1,105 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class Parameter(BaseModel): - """ - Parameter - """ # noqa: E501 - name: StrictStr = Field(description="The name of the parameter as it appears in the ABI") - description: Optional[StrictStr] = Field(default=None, description="A description of the parameter, fetched from the devdoc of this contract") - internal_type: Optional[StrictStr] = Field(default=None, description="The internal type of the parameter as it appears in the ABI", alias="internalType") - type: StrictStr = Field(description="The type of the parameter as it appears in the ABI") - components: Optional[List[Parameter]] = None - __properties: ClassVar[List[str]] = ["name", "description", "internalType", "type", "components"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of Parameter from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in components (list) - _items = [] - if self.components: - for _item_components in self.components: - if _item_components: - _items.append(_item_components.to_dict()) - _dict['components'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of Parameter from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name"), - "description": obj.get("description"), - "internalType": obj.get("internalType"), - "type": obj.get("type"), - "components": [Parameter.from_dict(_item) for _item in obj["components"]] if obj.get("components") is not None else None - }) - return _obj - -# TODO: Rewrite to not use raise_errors -Parameter.model_rebuild(raise_errors=False) - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBQYXJhbWV0ZXIoQmFzZU1vZGVsKToKICAgICIiIgogICAgUGFyYW1ldGVyCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBuYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlciBhcyBpdCBhcHBlYXJzIGluIHRoZSBBQkkiKQogICAgZGVzY3JpcHRpb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBIGRlc2NyaXB0aW9uIG9mIHRoZSBwYXJhbWV0ZXIsIGZldGNoZWQgZnJvbSB0aGUgZGV2ZG9jIG9mIHRoaXMgY29udHJhY3QiKQogICAgaW50ZXJuYWxfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBpbnRlcm5hbCB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIgYXMgaXQgYXBwZWFycyBpbiB0aGUgQUJJIiwgYWxpYXM9ImludGVybmFsVHlwZSIpCiAgICB0eXBlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHR5cGUgb2YgdGhlIHBhcmFtZXRlciBhcyBpdCBhcHBlYXJzIGluIHRoZSBBQkkiKQogICAgY29tcG9uZW50czogT3B0aW9uYWxbTGlzdFtQYXJhbWV0ZXJdXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibmFtZSIsICJkZXNjcmlwdGlvbiIsICJpbnRlcm5hbFR5cGUiLCAidHlwZSIsICJjb21wb25lbnRzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXJhbWV0ZXIgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gY29tcG9uZW50cyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuY29tcG9uZW50czoKICAgICAgICAgICAgZm9yIF9pdGVtX2NvbXBvbmVudHMgaW4gc2VsZi5jb21wb25lbnRzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fY29tcG9uZW50czoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2NvbXBvbmVudHMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnY29tcG9uZW50cyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXJhbWV0ZXIgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKSwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogb2JqLmdldCgiZGVzY3JpcHRpb24iKSwKICAgICAgICAgICAgImludGVybmFsVHlwZSI6IG9iai5nZXQoImludGVybmFsVHlwZSIpLAogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImNvbXBvbmVudHMiOiBbUGFyYW1ldGVyLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiY29tcG9uZW50cyJdXSBpZiBvYmouZ2V0KCJjb21wb25lbnRzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKIyBUT0RPOiBSZXdyaXRlIHRvIG5vdCB1c2UgcmFpc2VfZXJyb3JzClBhcmFtZXRlci5tb2RlbF9yZWJ1aWxkKHJhaXNlX2Vycm9ycz1GYWxzZSkKCg== \ No newline at end of file diff --git a/fireblocks/models/parameter_with_value.py b/fireblocks/models/parameter_with_value.py index a8e1b06f..8b1e6503 100644 --- a/fireblocks/models/parameter_with_value.py +++ b/fireblocks/models/parameter_with_value.py @@ -1,114 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.parameter import Parameter -from typing import Optional, Set -from typing_extensions import Self - -class ParameterWithValue(BaseModel): - """ - ParameterWithValue - """ # noqa: E501 - name: StrictStr = Field(description="The name of the parameter as it appears in the ABI") - description: Optional[StrictStr] = Field(default=None, description="A description of the parameter, fetched from the devdoc of this contract") - internal_type: Optional[StrictStr] = Field(default=None, description="The internal type of the parameter as it appears in the ABI", alias="internalType") - type: StrictStr = Field(description="The type of the parameter as it appears in the ABI") - components: Optional[List[Parameter]] = None - value: Optional[StrictStr] = Field(default=None, description="The value of the parameter. can also be ParameterWithValue") - function_value: Optional[LeanAbiFunction] = Field(default=None, description="The function value of this param (if has one). If this is set, the `value` shouldn`t be. Used for proxies", alias="functionValue") - __properties: ClassVar[List[str]] = ["name", "description", "internalType", "type", "components", "value", "functionValue"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ParameterWithValue from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in components (list) - _items = [] - if self.components: - for _item_components in self.components: - if _item_components: - _items.append(_item_components.to_dict()) - _dict['components'] = _items - # override the default output from pydantic by calling `to_dict()` of function_value - if self.function_value: - _dict['functionValue'] = self.function_value.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ParameterWithValue from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name"), - "description": obj.get("description"), - "internalType": obj.get("internalType"), - "type": obj.get("type"), - "components": [Parameter.from_dict(_item) for _item in obj["components"]] if obj.get("components") is not None else None, - "value": obj.get("value"), - "functionValue": LeanAbiFunction.from_dict(obj["functionValue"]) if obj.get("functionValue") is not None else None - }) - return _obj - -from fireblocks.models.lean_abi_function import LeanAbiFunction -# TODO: Rewrite to not use raise_errors -ParameterWithValue.model_rebuild(raise_errors=False) - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlciBpbXBvcnQgUGFyYW1ldGVyCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFBhcmFtZXRlcldpdGhWYWx1ZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBQYXJhbWV0ZXJXaXRoVmFsdWUKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG5hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIGFzIGl0IGFwcGVhcnMgaW4gdGhlIEFCSSIpCiAgICBkZXNjcmlwdGlvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkEgZGVzY3JpcHRpb24gb2YgdGhlIHBhcmFtZXRlciwgZmV0Y2hlZCBmcm9tIHRoZSBkZXZkb2Mgb2YgdGhpcyBjb250cmFjdCIpCiAgICBpbnRlcm5hbF90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlICBpbnRlcm5hbCB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIgYXMgaXQgYXBwZWFycyBpbiB0aGUgQUJJIiwgYWxpYXM9ImludGVybmFsVHlwZSIpCiAgICB0eXBlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHR5cGUgb2YgdGhlIHBhcmFtZXRlciBhcyBpdCBhcHBlYXJzIGluIHRoZSBBQkkiKQogICAgY29tcG9uZW50czogT3B0aW9uYWxbTGlzdFtQYXJhbWV0ZXJdXSA9IE5vbmUKICAgIHZhbHVlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIuIGNhbiBhbHNvIGJlIFBhcmFtZXRlcldpdGhWYWx1ZSIpCiAgICBmdW5jdGlvbl92YWx1ZTogT3B0aW9uYWxbTGVhbkFiaUZ1bmN0aW9uXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBmdW5jdGlvbiB2YWx1ZSBvZiB0aGlzIHBhcmFtIChpZiBoYXMgb25lKS4gSWYgdGhpcyBpcyBzZXQsIHRoZSBgdmFsdWVgIHNob3VsZG5gdCBiZS4gVXNlZCBmb3IgcHJveGllcyIsIGFsaWFzPSJmdW5jdGlvblZhbHVlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibmFtZSIsICJkZXNjcmlwdGlvbiIsICJpbnRlcm5hbFR5cGUiLCAidHlwZSIsICJjb21wb25lbnRzIiwgInZhbHVlIiwgImZ1bmN0aW9uVmFsdWUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBhcmFtZXRlcldpdGhWYWx1ZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBjb21wb25lbnRzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5jb21wb25lbnRzOgogICAgICAgICAgICBmb3IgX2l0ZW1fY29tcG9uZW50cyBpbiBzZWxmLmNvbXBvbmVudHM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9jb21wb25lbnRzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fY29tcG9uZW50cy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0Wydjb21wb25lbnRzJ10gPSBfaXRlbXMKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZnVuY3Rpb25fdmFsdWUKICAgICAgICBpZiBzZWxmLmZ1bmN0aW9uX3ZhbHVlOgogICAgICAgICAgICBfZGljdFsnZnVuY3Rpb25WYWx1ZSddID0gc2VsZi5mdW5jdGlvbl92YWx1ZS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBhcmFtZXRlcldpdGhWYWx1ZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBvYmouZ2V0KCJkZXNjcmlwdGlvbiIpLAogICAgICAgICAgICAiaW50ZXJuYWxUeXBlIjogb2JqLmdldCgiaW50ZXJuYWxUeXBlIiksCiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAiY29tcG9uZW50cyI6IFtQYXJhbWV0ZXIuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJjb21wb25lbnRzIl1dIGlmIG9iai5nZXQoImNvbXBvbmVudHMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJ2YWx1ZSI6IG9iai5nZXQoInZhbHVlIiksCiAgICAgICAgICAgICJmdW5jdGlvblZhbHVlIjogTGVhbkFiaUZ1bmN0aW9uLmZyb21fZGljdChvYmpbImZ1bmN0aW9uVmFsdWUiXSkgaWYgb2JqLmdldCgiZnVuY3Rpb25WYWx1ZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubGVhbl9hYmlfZnVuY3Rpb24gaW1wb3J0IExlYW5BYmlGdW5jdGlvbgojIFRPRE86IFJld3JpdGUgdG8gbm90IHVzZSByYWlzZV9lcnJvcnMKUGFyYW1ldGVyV2l0aFZhbHVlLm1vZGVsX3JlYnVpbGQocmFpc2VfZXJyb3JzPUZhbHNlKQoK \ No newline at end of file diff --git a/fireblocks/models/participant_relationship_type.py b/fireblocks/models/participant_relationship_type.py index 18bde37e..c507d393 100644 --- a/fireblocks/models/participant_relationship_type.py +++ b/fireblocks/models/participant_relationship_type.py @@ -1,39 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ParticipantRelationshipType(str, Enum): - """ - ParticipantRelationshipType - """ - - """ - allowed enum values - """ - FIRSTPARTY = 'FirstParty' - SECONDPARTY = 'SecondParty' - THIRDPARTY = 'ThirdParty' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ParticipantRelationshipType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBQYXJ0aWNpcGFudFJlbGF0aW9uc2hpcFR5cGUoc3RyLCBFbnVtKToKICAgICIiIgogICAgUGFydGljaXBhbnRSZWxhdGlvbnNoaXBUeXBlCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgRklSU1RQQVJUWSA9ICdGaXJzdFBhcnR5JwogICAgU0VDT05EUEFSVFkgPSAnU2Vjb25kUGFydHknCiAgICBUSElSRFBBUlRZID0gJ1RoaXJkUGFydHknCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGFydGljaXBhbnRSZWxhdGlvbnNoaXBUeXBlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/participants_identification.py b/fireblocks/models/participants_identification.py index 9a752d1f..302e5c77 100644 --- a/fireblocks/models/participants_identification.py +++ b/fireblocks/models/participants_identification.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.identification import Identification -from typing import Optional, Set -from typing_extensions import Self - -class ParticipantsIdentification(BaseModel): - """ - KYC/AML participant identification - """ # noqa: E501 - originator: Optional[Identification] = None - beneficiary: Optional[Identification] = None - __properties: ClassVar[List[str]] = ["originator", "beneficiary"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ParticipantsIdentification from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of originator - if self.originator: - _dict['originator'] = self.originator.to_dict() - # override the default output from pydantic by calling `to_dict()` of beneficiary - if self.beneficiary: - _dict['beneficiary'] = self.beneficiary.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ParticipantsIdentification from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "originator": Identification.from_dict(obj["originator"]) if obj.get("originator") is not None else None, - "beneficiary": Identification.from_dict(obj["beneficiary"]) if obj.get("beneficiary") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmlkZW50aWZpY2F0aW9uIGltcG9ydCBJZGVudGlmaWNhdGlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBQYXJ0aWNpcGFudHNJZGVudGlmaWNhdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBLWUMvQU1MIHBhcnRpY2lwYW50IGlkZW50aWZpY2F0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBvcmlnaW5hdG9yOiBPcHRpb25hbFtJZGVudGlmaWNhdGlvbl0gPSBOb25lCiAgICBiZW5lZmljaWFyeTogT3B0aW9uYWxbSWRlbnRpZmljYXRpb25dID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJvcmlnaW5hdG9yIiwgImJlbmVmaWNpYXJ5Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXJ0aWNpcGFudHNJZGVudGlmaWNhdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG9yaWdpbmF0b3IKICAgICAgICBpZiBzZWxmLm9yaWdpbmF0b3I6CiAgICAgICAgICAgIF9kaWN0WydvcmlnaW5hdG9yJ10gPSBzZWxmLm9yaWdpbmF0b3IudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGJlbmVmaWNpYXJ5CiAgICAgICAgaWYgc2VsZi5iZW5lZmljaWFyeToKICAgICAgICAgICAgX2RpY3RbJ2JlbmVmaWNpYXJ5J10gPSBzZWxmLmJlbmVmaWNpYXJ5LnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGFydGljaXBhbnRzSWRlbnRpZmljYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAib3JpZ2luYXRvciI6IElkZW50aWZpY2F0aW9uLmZyb21fZGljdChvYmpbIm9yaWdpbmF0b3IiXSkgaWYgb2JqLmdldCgib3JpZ2luYXRvciIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImJlbmVmaWNpYXJ5IjogSWRlbnRpZmljYXRpb24uZnJvbV9kaWN0KG9ialsiYmVuZWZpY2lhcnkiXSkgaWYgb2JqLmdldCgiYmVuZWZpY2lhcnkiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/payee_account.py b/fireblocks/models/payee_account.py index b437b1c2..ac54d46b 100644 --- a/fireblocks/models/payee_account.py +++ b/fireblocks/models/payee_account.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.payee_account_type import PayeeAccountType -from typing import Optional, Set -from typing_extensions import Self - -class PayeeAccount(BaseModel): - """ - PayeeAccount - """ # noqa: E501 - id: StrictStr - type: PayeeAccountType - __properties: ClassVar[List[str]] = ["id", "type"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PayeeAccount from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PayeeAccount from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "type": obj.get("type") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXllZV9hY2NvdW50X3R5cGUgaW1wb3J0IFBheWVlQWNjb3VudFR5cGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUGF5ZWVBY2NvdW50KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFBheWVlQWNjb3VudAogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0cgogICAgdHlwZTogUGF5ZWVBY2NvdW50VHlwZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJ0eXBlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXllZUFjY291bnQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGF5ZWVBY2NvdW50IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/payee_account_response.py b/fireblocks/models/payee_account_response.py index 72732a26..09366ad1 100644 --- a/fireblocks/models/payee_account_response.py +++ b/fireblocks/models/payee_account_response.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.payee_account_type import PayeeAccountType -from typing import Optional, Set -from typing_extensions import Self - -class PayeeAccountResponse(BaseModel): - """ - PayeeAccountResponse - """ # noqa: E501 - id: Optional[StrictStr] = None - type: Optional[PayeeAccountType] = None - __properties: ClassVar[List[str]] = ["id", "type"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PayeeAccountResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PayeeAccountResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "type": obj.get("type") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5ZWVfYWNjb3VudF90eXBlIGltcG9ydCBQYXllZUFjY291bnRUeXBlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFBheWVlQWNjb3VudFJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFBheWVlQWNjb3VudFJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIHR5cGU6IE9wdGlvbmFsW1BheWVlQWNjb3VudFR5cGVdID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJ0eXBlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXllZUFjY291bnRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXllZUFjY291bnRSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/payee_account_type.py b/fireblocks/models/payee_account_type.py index c4cc62c6..6f31b2a6 100644 --- a/fireblocks/models/payee_account_type.py +++ b/fireblocks/models/payee_account_type.py @@ -1,42 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class PayeeAccountType(str, Enum): - """ - - VAULT_ACCOUNT a native Fireblocks vault account - EXCHANGE_ACCOUNT a third-party exchange account - INTERNAL_WALLET a whitelisted address marked as internal to the workspace/organization - EXTERNAL_WALLET a whitelisted address marked as external - NETWORK_CONNECTION a member of the Fireblocks network - FIAT_ACCOUNT a third-party account of a fiat bank (Signature, BCB, etc) - """ - - """ - allowed enum values - """ - VAULT_ACCOUNT = 'VAULT_ACCOUNT' - EXCHANGE_ACCOUNT = 'EXCHANGE_ACCOUNT' - INTERNAL_WALLET = 'INTERNAL_WALLET' - EXTERNAL_WALLET = 'EXTERNAL_WALLET' - NETWORK_CONNECTION = 'NETWORK_CONNECTION' - FIAT_ACCOUNT = 'FIAT_ACCOUNT' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of PayeeAccountType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBQYXllZUFjY291bnRUeXBlKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIC0gVkFVTFRfQUNDT1VOVCAgIGEgbmF0aXZlIEZpcmVibG9ja3MgdmF1bHQgYWNjb3VudCAtIEVYQ0hBTkdFX0FDQ09VTlQgIGEgdGhpcmQtcGFydHkgZXhjaGFuZ2UgYWNjb3VudCAtIElOVEVSTkFMX1dBTExFVCAgYSB3aGl0ZWxpc3RlZCBhZGRyZXNzIG1hcmtlZCBhcyBpbnRlcm5hbCB0byB0aGUgd29ya3NwYWNlL29yZ2FuaXphdGlvbiAtIEVYVEVSTkFMX1dBTExFVCBhIHdoaXRlbGlzdGVkIGFkZHJlc3MgbWFya2VkIGFzIGV4dGVybmFsIC0gTkVUV09SS19DT05ORUNUSU9OIGEgbWVtYmVyIG9mIHRoZSBGaXJlYmxvY2tzIG5ldHdvcmsgLSBGSUFUX0FDQ09VTlQgYSB0aGlyZC1wYXJ0eSBhY2NvdW50IG9mIGEgZmlhdCBiYW5rIChTaWduYXR1cmUsIEJDQiwgZXRjKSAKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBWQVVMVF9BQ0NPVU5UID0gJ1ZBVUxUX0FDQ09VTlQnCiAgICBFWENIQU5HRV9BQ0NPVU5UID0gJ0VYQ0hBTkdFX0FDQ09VTlQnCiAgICBJTlRFUk5BTF9XQUxMRVQgPSAnSU5URVJOQUxfV0FMTEVUJwogICAgRVhURVJOQUxfV0FMTEVUID0gJ0VYVEVSTkFMX1dBTExFVCcKICAgIE5FVFdPUktfQ09OTkVDVElPTiA9ICdORVRXT1JLX0NPTk5FQ1RJT04nCiAgICBGSUFUX0FDQ09VTlQgPSAnRklBVF9BQ0NPVU5UJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBheWVlQWNjb3VudFR5cGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/payid_address.py b/fireblocks/models/payid_address.py index 0c8e8aa3..6535de6a 100644 --- a/fireblocks/models/payid_address.py +++ b/fireblocks/models/payid_address.py @@ -1,107 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.account_holder_details import AccountHolderDetails -from typing import Optional, Set -from typing_extensions import Self - -class PayidAddress(BaseModel): - """ - PayidAddress - """ # noqa: E501 - account_holder: AccountHolderDetails = Field(alias="accountHolder") - value: StrictStr = Field(description="The PayID identifier (email, phone, ABN, or organization ID)") - type: StrictStr = Field(description="The type of PayID being used") - bsb: Optional[StrictStr] = Field(default=None, description="Bank State Branch (BSB) number (6 digits, format XXX-XXX)") - account_number: StrictStr = Field(description="Australian bank account number", alias="accountNumber") - __properties: ClassVar[List[str]] = ["accountHolder", "value", "type", "bsb", "accountNumber"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['EMAIL']): - raise ValueError("must be one of enum values ('EMAIL')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PayidAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of account_holder - if self.account_holder: - _dict['accountHolder'] = self.account_holder.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PayidAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None, - "value": obj.get("value"), - "type": obj.get("type"), - "bsb": obj.get("bsb"), - "accountNumber": obj.get("accountNumber") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9ob2xkZXJfZGV0YWlscyBpbXBvcnQgQWNjb3VudEhvbGRlckRldGFpbHMKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUGF5aWRBZGRyZXNzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFBheWlkQWRkcmVzcwogICAgIiIiICMgbm9xYTogRTUwMQogICAgYWNjb3VudF9ob2xkZXI6IEFjY291bnRIb2xkZXJEZXRhaWxzID0gRmllbGQoYWxpYXM9ImFjY291bnRIb2xkZXIiKQogICAgdmFsdWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgUGF5SUQgaWRlbnRpZmllciAoZW1haWwsIHBob25lLCBBQk4sIG9yIG9yZ2FuaXphdGlvbiBJRCkiKQogICAgdHlwZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB0eXBlIG9mIFBheUlEIGJlaW5nIHVzZWQiKQogICAgYnNiOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQmFuayBTdGF0ZSBCcmFuY2ggKEJTQikgbnVtYmVyICg2IGRpZ2l0cywgZm9ybWF0IFhYWC1YWFgpIikKICAgIGFjY291bnRfbnVtYmVyOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQXVzdHJhbGlhbiBiYW5rIGFjY291bnQgbnVtYmVyIiwgYWxpYXM9ImFjY291bnROdW1iZXIiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhY2NvdW50SG9sZGVyIiwgInZhbHVlIiwgInR5cGUiLCAiYnNiIiwgImFjY291bnROdW1iZXIiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3R5cGUnKQogICAgZGVmIHR5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnRU1BSUwnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnRU1BSUwnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGF5aWRBZGRyZXNzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYWNjb3VudF9ob2xkZXIKICAgICAgICBpZiBzZWxmLmFjY291bnRfaG9sZGVyOgogICAgICAgICAgICBfZGljdFsnYWNjb3VudEhvbGRlciddID0gc2VsZi5hY2NvdW50X2hvbGRlci50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBheWlkQWRkcmVzcyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyIjogQWNjb3VudEhvbGRlckRldGFpbHMuZnJvbV9kaWN0KG9ialsiYWNjb3VudEhvbGRlciJdKSBpZiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAidmFsdWUiOiBvYmouZ2V0KCJ2YWx1ZSIpLAogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImJzYiI6IG9iai5nZXQoImJzYiIpLAogICAgICAgICAgICAiYWNjb3VudE51bWJlciI6IG9iai5nZXQoImFjY291bnROdW1iZXIiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/payid_destination.py b/fireblocks/models/payid_destination.py index 15e456b4..5b4f8b26 100644 --- a/fireblocks/models/payid_destination.py +++ b/fireblocks/models/payid_destination.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from fireblocks.models.payid_address import PayidAddress -from typing import Optional, Set -from typing_extensions import Self - -class PayidDestination(BaseModel): - """ - PayidDestination - """ # noqa: E501 - type: StrictStr - address: PayidAddress - __properties: ClassVar[List[str]] = ["type", "address"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['PAYID']): - raise ValueError("must be one of enum values ('PAYID')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PayidDestination from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of address - if self.address: - _dict['address'] = self.address.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PayidDestination from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "address": PayidAddress.from_dict(obj["address"]) if obj.get("address") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheWlkX2FkZHJlc3MgaW1wb3J0IFBheWlkQWRkcmVzcwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBQYXlpZERlc3RpbmF0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFBheWlkRGVzdGluYXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR5cGU6IFN0cmljdFN0cgogICAgYWRkcmVzczogUGF5aWRBZGRyZXNzCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiLCAiYWRkcmVzcyJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigndHlwZScpCiAgICBkZWYgdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydQQVlJRCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdQQVlJRCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXlpZERlc3RpbmF0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYWRkcmVzcwogICAgICAgIGlmIHNlbGYuYWRkcmVzczoKICAgICAgICAgICAgX2RpY3RbJ2FkZHJlc3MnXSA9IHNlbGYuYWRkcmVzcy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBheWlkRGVzdGluYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImFkZHJlc3MiOiBQYXlpZEFkZHJlc3MuZnJvbV9kaWN0KG9ialsiYWRkcmVzcyJdKSBpZiBvYmouZ2V0KCJhZGRyZXNzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/payid_payment_info.py b/fireblocks/models/payid_payment_info.py index 67aebc48..95f47447 100644 --- a/fireblocks/models/payid_payment_info.py +++ b/fireblocks/models/payid_payment_info.py @@ -1,125 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class PayidPaymentInfo(BaseModel): - """ - PayID payment information for Australian dollar transfers - """ # noqa: E501 - rail: StrictStr = Field(description="The payment rail type for PayID transfers") - addressing_system: StrictStr = Field(description="The addressing system used for PayID transfers", alias="addressingSystem") - account_holder_given_name: StrictStr = Field(description="The given name (first name) of the account holder", alias="accountHolderGivenName") - account_holder_surname: StrictStr = Field(description="The surname (last name) of the account holder", alias="accountHolderSurname") - country: StrictStr = Field(description="The country for the transfer (ISO 3166-1 alpha-2 code)") - value: StrictStr = Field(description="The PayID identifier (email, phone, ABN, or organization ID)") - type: StrictStr = Field(description="The type of PayID being used") - bsb: Optional[StrictStr] = Field(default=None, description="Bank State Branch (BSB) number (6 digits, format XXX-XXX)") - account_number: StrictStr = Field(description="Australian bank account number", alias="accountNumber") - __properties: ClassVar[List[str]] = ["rail", "addressingSystem", "accountHolderGivenName", "accountHolderSurname", "country", "value", "type", "bsb", "accountNumber"] - - @field_validator('rail') - def rail_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['PAYID']): - raise ValueError("must be one of enum values ('PAYID')") - return value - - @field_validator('addressing_system') - def addressing_system_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['PAYID']): - raise ValueError("must be one of enum values ('PAYID')") - return value - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['EMAIL']): - raise ValueError("must be one of enum values ('EMAIL')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PayidPaymentInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PayidPaymentInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "rail": obj.get("rail"), - "addressingSystem": obj.get("addressingSystem"), - "accountHolderGivenName": obj.get("accountHolderGivenName"), - "accountHolderSurname": obj.get("accountHolderSurname"), - "country": obj.get("country"), - "value": obj.get("value"), - "type": obj.get("type"), - "bsb": obj.get("bsb"), - "accountNumber": obj.get("accountNumber") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFBheWlkUGF5bWVudEluZm8oQmFzZU1vZGVsKToKICAgICIiIgogICAgUGF5SUQgcGF5bWVudCBpbmZvcm1hdGlvbiBmb3IgQXVzdHJhbGlhbiBkb2xsYXIgdHJhbnNmZXJzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICByYWlsOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHBheW1lbnQgcmFpbCB0eXBlIGZvciBQYXlJRCB0cmFuc2ZlcnMiKQogICAgYWRkcmVzc2luZ19zeXN0ZW06IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYWRkcmVzc2luZyBzeXN0ZW0gdXNlZCBmb3IgUGF5SUQgdHJhbnNmZXJzIiwgYWxpYXM9ImFkZHJlc3NpbmdTeXN0ZW0iKQogICAgYWNjb3VudF9ob2xkZXJfZ2l2ZW5fbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBnaXZlbiBuYW1lIChmaXJzdCBuYW1lKSBvZiB0aGUgYWNjb3VudCBob2xkZXIiLCBhbGlhcz0iYWNjb3VudEhvbGRlckdpdmVuTmFtZSIpCiAgICBhY2NvdW50X2hvbGRlcl9zdXJuYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHN1cm5hbWUgKGxhc3QgbmFtZSkgb2YgdGhlIGFjY291bnQgaG9sZGVyIiwgYWxpYXM9ImFjY291bnRIb2xkZXJTdXJuYW1lIikKICAgIGNvdW50cnk6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgY291bnRyeSBmb3IgdGhlIHRyYW5zZmVyIChJU08gMzE2Ni0xIGFscGhhLTIgY29kZSkiKQogICAgdmFsdWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgUGF5SUQgaWRlbnRpZmllciAoZW1haWwsIHBob25lLCBBQk4sIG9yIG9yZ2FuaXphdGlvbiBJRCkiKQogICAgdHlwZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB0eXBlIG9mIFBheUlEIGJlaW5nIHVzZWQiKQogICAgYnNiOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQmFuayBTdGF0ZSBCcmFuY2ggKEJTQikgbnVtYmVyICg2IGRpZ2l0cywgZm9ybWF0IFhYWC1YWFgpIikKICAgIGFjY291bnRfbnVtYmVyOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQXVzdHJhbGlhbiBiYW5rIGFjY291bnQgbnVtYmVyIiwgYWxpYXM9ImFjY291bnROdW1iZXIiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJyYWlsIiwgImFkZHJlc3NpbmdTeXN0ZW0iLCAiYWNjb3VudEhvbGRlckdpdmVuTmFtZSIsICJhY2NvdW50SG9sZGVyU3VybmFtZSIsICJjb3VudHJ5IiwgInZhbHVlIiwgInR5cGUiLCAiYnNiIiwgImFjY291bnROdW1iZXIiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3JhaWwnKQogICAgZGVmIHJhaWxfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnUEFZSUQnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnUEFZSUQnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWRkcmVzc2luZ19zeXN0ZW0nKQogICAgZGVmIGFkZHJlc3Npbmdfc3lzdGVtX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ1BBWUlEJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ1BBWUlEJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3R5cGUnKQogICAgZGVmIHR5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnRU1BSUwnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnRU1BSUwnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGF5aWRQYXltZW50SW5mbyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXlpZFBheW1lbnRJbmZvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInJhaWwiOiBvYmouZ2V0KCJyYWlsIiksCiAgICAgICAgICAgICJhZGRyZXNzaW5nU3lzdGVtIjogb2JqLmdldCgiYWRkcmVzc2luZ1N5c3RlbSIpLAogICAgICAgICAgICAiYWNjb3VudEhvbGRlckdpdmVuTmFtZSI6IG9iai5nZXQoImFjY291bnRIb2xkZXJHaXZlbk5hbWUiKSwKICAgICAgICAgICAgImFjY291bnRIb2xkZXJTdXJuYW1lIjogb2JqLmdldCgiYWNjb3VudEhvbGRlclN1cm5hbWUiKSwKICAgICAgICAgICAgImNvdW50cnkiOiBvYmouZ2V0KCJjb3VudHJ5IiksCiAgICAgICAgICAgICJ2YWx1ZSI6IG9iai5nZXQoInZhbHVlIiksCiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAiYnNiIjogb2JqLmdldCgiYnNiIiksCiAgICAgICAgICAgICJhY2NvdW50TnVtYmVyIjogb2JqLmdldCgiYWNjb3VudE51bWJlciIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/payment_account.py b/fireblocks/models/payment_account.py index 66feca0d..142cc9eb 100644 --- a/fireblocks/models/payment_account.py +++ b/fireblocks/models/payment_account.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.payment_account_type import PaymentAccountType -from typing import Optional, Set -from typing_extensions import Self - -class PaymentAccount(BaseModel): - """ - PaymentAccount - """ # noqa: E501 - id: StrictStr - type: PaymentAccountType - __properties: ClassVar[List[str]] = ["id", "type"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PaymentAccount from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PaymentAccount from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "type": obj.get("type") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXltZW50X2FjY291bnRfdHlwZSBpbXBvcnQgUGF5bWVudEFjY291bnRUeXBlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFBheW1lbnRBY2NvdW50KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFBheW1lbnRBY2NvdW50CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyCiAgICB0eXBlOiBQYXltZW50QWNjb3VudFR5cGUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAidHlwZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGF5bWVudEFjY291bnQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGF5bWVudEFjY291bnQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/payment_account_response.py b/fireblocks/models/payment_account_response.py index 06f007e1..d56643e3 100644 --- a/fireblocks/models/payment_account_response.py +++ b/fireblocks/models/payment_account_response.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.payment_account_type import PaymentAccountType -from typing import Optional, Set -from typing_extensions import Self - -class PaymentAccountResponse(BaseModel): - """ - PaymentAccountResponse - """ # noqa: E501 - id: Optional[StrictStr] = None - type: Optional[PaymentAccountType] = None - __properties: ClassVar[List[str]] = ["id", "type"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PaymentAccountResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PaymentAccountResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "type": obj.get("type") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5bWVudF9hY2NvdW50X3R5cGUgaW1wb3J0IFBheW1lbnRBY2NvdW50VHlwZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBQYXltZW50QWNjb3VudFJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFBheW1lbnRBY2NvdW50UmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgdHlwZTogT3B0aW9uYWxbUGF5bWVudEFjY291bnRUeXBlXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAidHlwZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGF5bWVudEFjY291bnRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXltZW50QWNjb3VudFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/payment_account_type.py b/fireblocks/models/payment_account_type.py index 68caf422..26f89fca 100644 --- a/fireblocks/models/payment_account_type.py +++ b/fireblocks/models/payment_account_type.py @@ -1,39 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class PaymentAccountType(str, Enum): - """ - PaymentAccountType - """ - - """ - allowed enum values - """ - VAULT_ACCOUNT = 'VAULT_ACCOUNT' - EXCHANGE_ACCOUNT = 'EXCHANGE_ACCOUNT' - FIAT_ACCOUNT = 'FIAT_ACCOUNT' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of PaymentAccountType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBQYXltZW50QWNjb3VudFR5cGUoc3RyLCBFbnVtKToKICAgICIiIgogICAgUGF5bWVudEFjY291bnRUeXBlCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgVkFVTFRfQUNDT1VOVCA9ICdWQVVMVF9BQ0NPVU5UJwogICAgRVhDSEFOR0VfQUNDT1VOVCA9ICdFWENIQU5HRV9BQ0NPVU5UJwogICAgRklBVF9BQ0NPVU5UID0gJ0ZJQVRfQUNDT1VOVCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXltZW50QWNjb3VudFR5cGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/payment_instructions.py b/fireblocks/models/payment_instructions.py index 7701e083..b6892426 100644 --- a/fireblocks/models/payment_instructions.py +++ b/fireblocks/models/payment_instructions.py @@ -1,138 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.blockchain_destination import BlockchainDestination -from fireblocks.models.payment_instructions_one_of import PaymentInstructionsOneOf -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -PAYMENTINSTRUCTIONS_ONE_OF_SCHEMAS = ["BlockchainDestination", "PaymentInstructionsOneOf"] - -class PaymentInstructions(BaseModel): - """ - PaymentInstructions - """ - # data type: BlockchainDestination - oneof_schema_1_validator: Optional[BlockchainDestination] = None - # data type: PaymentInstructionsOneOf - oneof_schema_2_validator: Optional[PaymentInstructionsOneOf] = None - actual_instance: Optional[Union[BlockchainDestination, PaymentInstructionsOneOf]] = None - one_of_schemas: Set[str] = { "BlockchainDestination", "PaymentInstructionsOneOf" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = PaymentInstructions.model_construct() - error_messages = [] - match = 0 - # validate data type: BlockchainDestination - if not isinstance(v, BlockchainDestination): - error_messages.append(f"Error! Input type `{type(v)}` is not `BlockchainDestination`") - else: - match += 1 - # validate data type: PaymentInstructionsOneOf - if not isinstance(v, PaymentInstructionsOneOf): - error_messages.append(f"Error! Input type `{type(v)}` is not `PaymentInstructionsOneOf`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in PaymentInstructions with oneOf schemas: BlockchainDestination, PaymentInstructionsOneOf. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in PaymentInstructions with oneOf schemas: BlockchainDestination, PaymentInstructionsOneOf. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into BlockchainDestination - try: - instance.actual_instance = BlockchainDestination.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into PaymentInstructionsOneOf - try: - instance.actual_instance = PaymentInstructionsOneOf.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into PaymentInstructions with oneOf schemas: BlockchainDestination, PaymentInstructionsOneOf. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into PaymentInstructions with oneOf schemas: BlockchainDestination, PaymentInstructionsOneOf. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], BlockchainDestination, PaymentInstructionsOneOf]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9kZXN0aW5hdGlvbiBpbXBvcnQgQmxvY2tjaGFpbkRlc3RpbmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5bWVudF9pbnN0cnVjdGlvbnNfb25lX29mIGltcG9ydCBQYXltZW50SW5zdHJ1Y3Rpb25zT25lT2YKZnJvbSBweWRhbnRpYyBpbXBvcnQgU3RyaWN0U3RyLCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgVW5pb24sIExpc3QsIFNldCwgT3B0aW9uYWwsIERpY3QKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgTGl0ZXJhbCwgU2VsZgoKUEFZTUVOVElOU1RSVUNUSU9OU19PTkVfT0ZfU0NIRU1BUyA9IFsiQmxvY2tjaGFpbkRlc3RpbmF0aW9uIiwgIlBheW1lbnRJbnN0cnVjdGlvbnNPbmVPZiJdCgpjbGFzcyBQYXltZW50SW5zdHJ1Y3Rpb25zKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFBheW1lbnRJbnN0cnVjdGlvbnMKICAgICIiIgogICAgIyBkYXRhIHR5cGU6IEJsb2NrY2hhaW5EZXN0aW5hdGlvbgogICAgb25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yOiBPcHRpb25hbFtCbG9ja2NoYWluRGVzdGluYXRpb25dID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IFBheW1lbnRJbnN0cnVjdGlvbnNPbmVPZgogICAgb25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yOiBPcHRpb25hbFtQYXltZW50SW5zdHJ1Y3Rpb25zT25lT2ZdID0gTm9uZQogICAgYWN0dWFsX2luc3RhbmNlOiBPcHRpb25hbFtVbmlvbltCbG9ja2NoYWluRGVzdGluYXRpb24sIFBheW1lbnRJbnN0cnVjdGlvbnNPbmVPZl1dID0gTm9uZQogICAgb25lX29mX3NjaGVtYXM6IFNldFtzdHJdID0geyAiQmxvY2tjaGFpbkRlc3RpbmF0aW9uIiwgIlBheW1lbnRJbnN0cnVjdGlvbnNPbmVPZiIgfQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKSAtPiBOb25lOgogICAgICAgIGlmIGFyZ3M6CiAgICAgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIG9ubHkgMSBpcyBhbGxvd2VkIHRvIHNldCBgYWN0dWFsX2luc3RhbmNlYCIpCiAgICAgICAgICAgIGlmIGt3YXJnczoKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwga2V5d29yZCBhcmd1bWVudHMgY2Fubm90IGJlIHVzZWQuIikKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhhY3R1YWxfaW5zdGFuY2U9YXJnc1swXSkKICAgICAgICBlbHNlOgogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FjdHVhbF9pbnN0YW5jZScpCiAgICBkZWYgYWN0dWFsX2luc3RhbmNlX211c3RfdmFsaWRhdGVfb25lb2YoY2xzLCB2KToKICAgICAgICBpbnN0YW5jZSA9IFBheW1lbnRJbnN0cnVjdGlvbnMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IEJsb2NrY2hhaW5EZXN0aW5hdGlvbgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIEJsb2NrY2hhaW5EZXN0aW5hdGlvbik6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgQmxvY2tjaGFpbkRlc3RpbmF0aW9uYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBQYXltZW50SW5zdHJ1Y3Rpb25zT25lT2YKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBQYXltZW50SW5zdHJ1Y3Rpb25zT25lT2YpOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYFBheW1lbnRJbnN0cnVjdGlvbnNPbmVPZmAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gUGF5bWVudEluc3RydWN0aW9ucyB3aXRoIG9uZU9mIHNjaGVtYXM6IEJsb2NrY2hhaW5EZXN0aW5hdGlvbiwgUGF5bWVudEluc3RydWN0aW9uc09uZU9mLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIFBheW1lbnRJbnN0cnVjdGlvbnMgd2l0aCBvbmVPZiBzY2hlbWFzOiBCbG9ja2NoYWluRGVzdGluYXRpb24sIFBheW1lbnRJbnN0cnVjdGlvbnNPbmVPZi4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIHYKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IFVuaW9uW3N0ciwgRGljdFtzdHIsIEFueV1dKSAtPiBTZWxmOgogICAgICAgIHJldHVybiBjbHMuZnJvbV9qc29uKGpzb24uZHVtcHMob2JqKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIlJldHVybnMgdGhlIG9iamVjdCByZXByZXNlbnRlZCBieSB0aGUganNvbiBzdHJpbmciIiIKICAgICAgICBpbnN0YW5jZSA9IGNscy5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gQmxvY2tjaGFpbkRlc3RpbmF0aW9uCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBCbG9ja2NoYWluRGVzdGluYXRpb24uZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gUGF5bWVudEluc3RydWN0aW9uc09uZU9mCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBQYXltZW50SW5zdHJ1Y3Rpb25zT25lT2YuZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCgogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBQYXltZW50SW5zdHJ1Y3Rpb25zIHdpdGggb25lT2Ygc2NoZW1hczogQmxvY2tjaGFpbkRlc3RpbmF0aW9uLCBQYXltZW50SW5zdHJ1Y3Rpb25zT25lT2YuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gUGF5bWVudEluc3RydWN0aW9ucyB3aXRoIG9uZU9mIHNjaGVtYXM6IEJsb2NrY2hhaW5EZXN0aW5hdGlvbiwgUGF5bWVudEluc3RydWN0aW9uc09uZU9mLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuICJudWxsIgoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fanNvbiIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24oKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYuYWN0dWFsX2luc3RhbmNlKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IE9wdGlvbmFsW1VuaW9uW0RpY3Rbc3RyLCBBbnldLCBCbG9ja2NoYWluRGVzdGluYXRpb24sIFBheW1lbnRJbnN0cnVjdGlvbnNPbmVPZl1dOgogICAgICAgICIiIlJldHVybnMgdGhlIGRpY3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19kaWN0IikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QpOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCgpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgIyBwcmltaXRpdmUgdHlwZQogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/payment_instructions_one_of.py b/fireblocks/models/payment_instructions_one_of.py index 9a210e1b..6146a3c5 100644 --- a/fireblocks/models/payment_instructions_one_of.py +++ b/fireblocks/models/payment_instructions_one_of.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.internal_transfer_address import InternalTransferAddress -from typing import Optional, Set -from typing_extensions import Self - -class PaymentInstructionsOneOf(BaseModel): - """ - PaymentInstructionsOneOf - """ # noqa: E501 - type: StrictStr - address: InternalTransferAddress - reference_id: Optional[StrictStr] = Field(default=None, alias="referenceId") - __properties: ClassVar[List[str]] = ["type", "address", "referenceId"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['INTERNAL_TRANSFER']): - raise ValueError("must be one of enum values ('INTERNAL_TRANSFER')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PaymentInstructionsOneOf from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of address - if self.address: - _dict['address'] = self.address.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PaymentInstructionsOneOf from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "address": InternalTransferAddress.from_dict(obj["address"]) if obj.get("address") is not None else None, - "referenceId": obj.get("referenceId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaW50ZXJuYWxfdHJhbnNmZXJfYWRkcmVzcyBpbXBvcnQgSW50ZXJuYWxUcmFuc2ZlckFkZHJlc3MKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUGF5bWVudEluc3RydWN0aW9uc09uZU9mKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFBheW1lbnRJbnN0cnVjdGlvbnNPbmVPZgogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogU3RyaWN0U3RyCiAgICBhZGRyZXNzOiBJbnRlcm5hbFRyYW5zZmVyQWRkcmVzcwogICAgcmVmZXJlbmNlX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0icmVmZXJlbmNlSWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgImFkZHJlc3MiLCAicmVmZXJlbmNlSWQiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3R5cGUnKQogICAgZGVmIHR5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnSU5URVJOQUxfVFJBTlNGRVInXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnSU5URVJOQUxfVFJBTlNGRVInKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGF5bWVudEluc3RydWN0aW9uc09uZU9mIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYWRkcmVzcwogICAgICAgIGlmIHNlbGYuYWRkcmVzczoKICAgICAgICAgICAgX2RpY3RbJ2FkZHJlc3MnXSA9IHNlbGYuYWRkcmVzcy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBheW1lbnRJbnN0cnVjdGlvbnNPbmVPZiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAiYWRkcmVzcyI6IEludGVybmFsVHJhbnNmZXJBZGRyZXNzLmZyb21fZGljdChvYmpbImFkZHJlc3MiXSkgaWYgb2JqLmdldCgiYWRkcmVzcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInJlZmVyZW5jZUlkIjogb2JqLmdldCgicmVmZXJlbmNlSWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/payment_redirect.py b/fireblocks/models/payment_redirect.py index b2b8a0af..00886eb6 100644 --- a/fireblocks/models/payment_redirect.py +++ b/fireblocks/models/payment_redirect.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class PaymentRedirect(BaseModel): - """ - URL returned by the provider that the end user will be redirected to in order to complete the payment on the bank/mobile provider page. After completion, the bank/mobile provider redirects the end user back to successRedirectUrl (provided in the RAMP request) - """ # noqa: E501 - url: Optional[StrictStr] = Field(default=None, description="URL to redirect to") - expires_at: Optional[StrictStr] = Field(default=None, description="Expiration date of the redirect", alias="expiresAt") - __properties: ClassVar[List[str]] = ["url", "expiresAt"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PaymentRedirect from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PaymentRedirect from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "url": obj.get("url"), - "expiresAt": obj.get("expiresAt") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBQYXltZW50UmVkaXJlY3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgVVJMIHJldHVybmVkIGJ5IHRoZSBwcm92aWRlciB0aGF0IHRoZSBlbmQgdXNlciB3aWxsIGJlIHJlZGlyZWN0ZWQgdG8gaW4gb3JkZXIgdG8gY29tcGxldGUgdGhlIHBheW1lbnQgb24gdGhlIGJhbmsvbW9iaWxlIHByb3ZpZGVyIHBhZ2UuIEFmdGVyIGNvbXBsZXRpb24sIHRoZSBiYW5rL21vYmlsZSBwcm92aWRlciByZWRpcmVjdHMgdGhlIGVuZCB1c2VyIGJhY2sgdG8gc3VjY2Vzc1JlZGlyZWN0VXJsIChwcm92aWRlZCBpbiB0aGUgUkFNUCByZXF1ZXN0KQogICAgIiIiICMgbm9xYTogRTUwMQogICAgdXJsOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVVJMIHRvIHJlZGlyZWN0IHRvIikKICAgIGV4cGlyZXNfYXQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJFeHBpcmF0aW9uIGRhdGUgb2YgdGhlIHJlZGlyZWN0IiwgYWxpYXM9ImV4cGlyZXNBdCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInVybCIsICJleHBpcmVzQXQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBheW1lbnRSZWRpcmVjdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXltZW50UmVkaXJlY3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidXJsIjogb2JqLmdldCgidXJsIiksCiAgICAgICAgICAgICJleHBpcmVzQXQiOiBvYmouZ2V0KCJleHBpcmVzQXQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/payout_init_method.py b/fireblocks/models/payout_init_method.py index 74feb08f..7d2123f5 100644 --- a/fireblocks/models/payout_init_method.py +++ b/fireblocks/models/payout_init_method.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class PayoutInitMethod(str, Enum): - """ - PayoutInitMethod - """ - - """ - allowed enum values - """ - FILE = 'FILE' - API = 'API' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of PayoutInitMethod from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBQYXlvdXRJbml0TWV0aG9kKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIFBheW91dEluaXRNZXRob2QKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBGSUxFID0gJ0ZJTEUnCiAgICBBUEkgPSAnQVBJJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBheW91dEluaXRNZXRob2QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/payout_instruction.py b/fireblocks/models/payout_instruction.py index a78e6f90..4ba5b041 100644 --- a/fireblocks/models/payout_instruction.py +++ b/fireblocks/models/payout_instruction.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.instruction_amount import InstructionAmount -from fireblocks.models.payee_account import PayeeAccount -from typing import Optional, Set -from typing_extensions import Self - -class PayoutInstruction(BaseModel): - """ - PayoutInstruction - """ # noqa: E501 - id: Optional[StrictStr] = None - payee_account: PayeeAccount = Field(alias="payeeAccount") - amount: InstructionAmount - __properties: ClassVar[List[str]] = ["id", "payeeAccount", "amount"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PayoutInstruction from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of payee_account - if self.payee_account: - _dict['payeeAccount'] = self.payee_account.to_dict() - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PayoutInstruction from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "payeeAccount": PayeeAccount.from_dict(obj["payeeAccount"]) if obj.get("payeeAccount") is not None else None, - "amount": InstructionAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmluc3RydWN0aW9uX2Ftb3VudCBpbXBvcnQgSW5zdHJ1Y3Rpb25BbW91bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXllZV9hY2NvdW50IGltcG9ydCBQYXllZUFjY291bnQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUGF5b3V0SW5zdHJ1Y3Rpb24oQmFzZU1vZGVsKToKICAgICIiIgogICAgUGF5b3V0SW5zdHJ1Y3Rpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgcGF5ZWVfYWNjb3VudDogUGF5ZWVBY2NvdW50ID0gRmllbGQoYWxpYXM9InBheWVlQWNjb3VudCIpCiAgICBhbW91bnQ6IEluc3RydWN0aW9uQW1vdW50CiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgInBheWVlQWNjb3VudCIsICJhbW91bnQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBheW91dEluc3RydWN0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcGF5ZWVfYWNjb3VudAogICAgICAgIGlmIHNlbGYucGF5ZWVfYWNjb3VudDoKICAgICAgICAgICAgX2RpY3RbJ3BheWVlQWNjb3VudCddID0gc2VsZi5wYXllZV9hY2NvdW50LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhbW91bnQKICAgICAgICBpZiBzZWxmLmFtb3VudDoKICAgICAgICAgICAgX2RpY3RbJ2Ftb3VudCddID0gc2VsZi5hbW91bnQudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXlvdXRJbnN0cnVjdGlvbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJwYXllZUFjY291bnQiOiBQYXllZUFjY291bnQuZnJvbV9kaWN0KG9ialsicGF5ZWVBY2NvdW50Il0pIGlmIG9iai5nZXQoInBheWVlQWNjb3VudCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImFtb3VudCI6IEluc3RydWN0aW9uQW1vdW50LmZyb21fZGljdChvYmpbImFtb3VudCJdKSBpZiBvYmouZ2V0KCJhbW91bnQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/payout_instruction_response.py b/fireblocks/models/payout_instruction_response.py index e3ae1a29..32a23d7e 100644 --- a/fireblocks/models/payout_instruction_response.py +++ b/fireblocks/models/payout_instruction_response.py @@ -1,113 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.instruction_amount import InstructionAmount -from fireblocks.models.payee_account_response import PayeeAccountResponse -from fireblocks.models.payout_instruction_state import PayoutInstructionState -from fireblocks.models.transaction import Transaction -from typing import Optional, Set -from typing_extensions import Self - -class PayoutInstructionResponse(BaseModel): - """ - PayoutInstructionResponse - """ # noqa: E501 - id: Optional[StrictStr] = None - payee_account: PayeeAccountResponse = Field(alias="payeeAccount") - amount: InstructionAmount - state: PayoutInstructionState - transactions: List[Transaction] - __properties: ClassVar[List[str]] = ["id", "payeeAccount", "amount", "state", "transactions"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PayoutInstructionResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of payee_account - if self.payee_account: - _dict['payeeAccount'] = self.payee_account.to_dict() - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in transactions (list) - _items = [] - if self.transactions: - for _item_transactions in self.transactions: - if _item_transactions: - _items.append(_item_transactions.to_dict()) - _dict['transactions'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PayoutInstructionResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "payeeAccount": PayeeAccountResponse.from_dict(obj["payeeAccount"]) if obj.get("payeeAccount") is not None else None, - "amount": InstructionAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "state": obj.get("state"), - "transactions": [Transaction.from_dict(_item) for _item in obj["transactions"]] if obj.get("transactions") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmluc3RydWN0aW9uX2Ftb3VudCBpbXBvcnQgSW5zdHJ1Y3Rpb25BbW91bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXllZV9hY2NvdW50X3Jlc3BvbnNlIGltcG9ydCBQYXllZUFjY291bnRSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW91dF9pbnN0cnVjdGlvbl9zdGF0ZSBpbXBvcnQgUGF5b3V0SW5zdHJ1Y3Rpb25TdGF0ZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uIGltcG9ydCBUcmFuc2FjdGlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBQYXlvdXRJbnN0cnVjdGlvblJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFBheW91dEluc3RydWN0aW9uUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgcGF5ZWVfYWNjb3VudDogUGF5ZWVBY2NvdW50UmVzcG9uc2UgPSBGaWVsZChhbGlhcz0icGF5ZWVBY2NvdW50IikKICAgIGFtb3VudDogSW5zdHJ1Y3Rpb25BbW91bnQKICAgIHN0YXRlOiBQYXlvdXRJbnN0cnVjdGlvblN0YXRlCiAgICB0cmFuc2FjdGlvbnM6IExpc3RbVHJhbnNhY3Rpb25dCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgInBheWVlQWNjb3VudCIsICJhbW91bnQiLCAic3RhdGUiLCAidHJhbnNhY3Rpb25zIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXlvdXRJbnN0cnVjdGlvblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcGF5ZWVfYWNjb3VudAogICAgICAgIGlmIHNlbGYucGF5ZWVfYWNjb3VudDoKICAgICAgICAgICAgX2RpY3RbJ3BheWVlQWNjb3VudCddID0gc2VsZi5wYXllZV9hY2NvdW50LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhbW91bnQKICAgICAgICBpZiBzZWxmLmFtb3VudDoKICAgICAgICAgICAgX2RpY3RbJ2Ftb3VudCddID0gc2VsZi5hbW91bnQudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiB0cmFuc2FjdGlvbnMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLnRyYW5zYWN0aW9uczoKICAgICAgICAgICAgZm9yIF9pdGVtX3RyYW5zYWN0aW9ucyBpbiBzZWxmLnRyYW5zYWN0aW9uczoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX3RyYW5zYWN0aW9uczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX3RyYW5zYWN0aW9ucy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0Wyd0cmFuc2FjdGlvbnMnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGF5b3V0SW5zdHJ1Y3Rpb25SZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJwYXllZUFjY291bnQiOiBQYXllZUFjY291bnRSZXNwb25zZS5mcm9tX2RpY3Qob2JqWyJwYXllZUFjY291bnQiXSkgaWYgb2JqLmdldCgicGF5ZWVBY2NvdW50IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiYW1vdW50IjogSW5zdHJ1Y3Rpb25BbW91bnQuZnJvbV9kaWN0KG9ialsiYW1vdW50Il0pIGlmIG9iai5nZXQoImFtb3VudCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInN0YXRlIjogb2JqLmdldCgic3RhdGUiKSwKICAgICAgICAgICAgInRyYW5zYWN0aW9ucyI6IFtUcmFuc2FjdGlvbi5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbInRyYW5zYWN0aW9ucyJdXSBpZiBvYmouZ2V0KCJ0cmFuc2FjdGlvbnMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/payout_instruction_state.py b/fireblocks/models/payout_instruction_state.py index ba7e3218..ba2405c7 100644 --- a/fireblocks/models/payout_instruction_state.py +++ b/fireblocks/models/payout_instruction_state.py @@ -1,42 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class PayoutInstructionState(str, Enum): - """ - - NOT_STARTED - waiting to start - TRANSACTION_SENT - an underlying transaction was sent - COMPLETED - completed successfully - FAILED - failed - TRANSLATION_ERROR -lookup of the destination failed (due to changes in the underlying whitelisted external wallet or similar) - SKIPPED- no transaction(s) created for this instruction - """ - - """ - allowed enum values - """ - NOT_STARTED = 'NOT_STARTED' - TRANSACTION_SENT = 'TRANSACTION_SENT' - COMPLETED = 'COMPLETED' - FAILED = 'FAILED' - TRANSLATION_ERROR = 'TRANSLATION_ERROR' - SKIPPED = 'SKIPPED' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of PayoutInstructionState from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBQYXlvdXRJbnN0cnVjdGlvblN0YXRlKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIC0gTk9UX1NUQVJURUQgLSB3YWl0aW5nIHRvIHN0YXJ0IC0gVFJBTlNBQ1RJT05fU0VOVCAtIGFuIHVuZGVybHlpbmcgdHJhbnNhY3Rpb24gd2FzIHNlbnQgLSBDT01QTEVURUQgLSBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5IC0gRkFJTEVEIC0gZmFpbGVkIC0gVFJBTlNMQVRJT05fRVJST1IgLWxvb2t1cCBvZiB0aGUgZGVzdGluYXRpb24gZmFpbGVkIChkdWUgdG8gY2hhbmdlcyBpbiB0aGUgdW5kZXJseWluZyB3aGl0ZWxpc3RlZCBleHRlcm5hbCB3YWxsZXQgb3Igc2ltaWxhcikgLSBTS0lQUEVELSBubyB0cmFuc2FjdGlvbihzKSBjcmVhdGVkIGZvciB0aGlzIGluc3RydWN0aW9uIAogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIE5PVF9TVEFSVEVEID0gJ05PVF9TVEFSVEVEJwogICAgVFJBTlNBQ1RJT05fU0VOVCA9ICdUUkFOU0FDVElPTl9TRU5UJwogICAgQ09NUExFVEVEID0gJ0NPTVBMRVRFRCcKICAgIEZBSUxFRCA9ICdGQUlMRUQnCiAgICBUUkFOU0xBVElPTl9FUlJPUiA9ICdUUkFOU0xBVElPTl9FUlJPUicKICAgIFNLSVBQRUQgPSAnU0tJUFBFRCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXlvdXRJbnN0cnVjdGlvblN0YXRlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/payout_response.py b/fireblocks/models/payout_response.py index 7c9c8bf9..984f2263 100644 --- a/fireblocks/models/payout_response.py +++ b/fireblocks/models/payout_response.py @@ -1,119 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.payment_account_response import PaymentAccountResponse -from fireblocks.models.payout_init_method import PayoutInitMethod -from fireblocks.models.payout_instruction_response import PayoutInstructionResponse -from fireblocks.models.payout_state import PayoutState -from fireblocks.models.payout_status import PayoutStatus -from typing import Optional, Set -from typing_extensions import Self - -class PayoutResponse(BaseModel): - """ - PayoutResponse - """ # noqa: E501 - payout_id: StrictStr = Field(alias="payoutId") - payment_account: PaymentAccountResponse = Field(alias="paymentAccount") - created_at: Union[StrictFloat, StrictInt] = Field(alias="createdAt") - state: PayoutState - status: PayoutStatus - reason_of_failure: Optional[StrictStr] = Field(default=None, description="
  • INSUFFICIENT_BALANCE
  • SOURCE_TRANSLATION
  • SOURCE_NOT_UNIQUE
  • SOURCE_NOT_FOUND
  • SOURCE_TYPE_NOT_SUPPORTED
  • EMPTY_SOURCE
  • DESTINATION_TRANSLATION
  • DESTINATION_NOT_UNIQUE
  • DESTINATION_NOT_FOUND
  • EMPTY_DESTINATION
  • PARSING
  • UNKNOWN
  • FIREBLOCKS_CLIENT
  • TRANSACTION_SUBMISSION
", alias="reasonOfFailure") - init_method: Optional[PayoutInitMethod] = Field(default=None, alias="initMethod") - instruction_set: List[PayoutInstructionResponse] = Field(alias="instructionSet") - report_url: Optional[StrictStr] = Field(default=None, alias="reportUrl") - __properties: ClassVar[List[str]] = ["payoutId", "paymentAccount", "createdAt", "state", "status", "reasonOfFailure", "initMethod", "instructionSet", "reportUrl"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PayoutResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of payment_account - if self.payment_account: - _dict['paymentAccount'] = self.payment_account.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in instruction_set (list) - _items = [] - if self.instruction_set: - for _item_instruction_set in self.instruction_set: - if _item_instruction_set: - _items.append(_item_instruction_set.to_dict()) - _dict['instructionSet'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PayoutResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "payoutId": obj.get("payoutId"), - "paymentAccount": PaymentAccountResponse.from_dict(obj["paymentAccount"]) if obj.get("paymentAccount") is not None else None, - "createdAt": obj.get("createdAt"), - "state": obj.get("state"), - "status": obj.get("status"), - "reasonOfFailure": obj.get("reasonOfFailure"), - "initMethod": obj.get("initMethod"), - "instructionSet": [PayoutInstructionResponse.from_dict(_item) for _item in obj["instructionSet"]] if obj.get("instructionSet") is not None else None, - "reportUrl": obj.get("reportUrl") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXltZW50X2FjY291bnRfcmVzcG9uc2UgaW1wb3J0IFBheW1lbnRBY2NvdW50UmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXlvdXRfaW5pdF9tZXRob2QgaW1wb3J0IFBheW91dEluaXRNZXRob2QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXlvdXRfaW5zdHJ1Y3Rpb25fcmVzcG9uc2UgaW1wb3J0IFBheW91dEluc3RydWN0aW9uUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXlvdXRfc3RhdGUgaW1wb3J0IFBheW91dFN0YXRlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGF5b3V0X3N0YXR1cyBpbXBvcnQgUGF5b3V0U3RhdHVzCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFBheW91dFJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFBheW91dFJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBwYXlvdXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJwYXlvdXRJZCIpCiAgICBwYXltZW50X2FjY291bnQ6IFBheW1lbnRBY2NvdW50UmVzcG9uc2UgPSBGaWVsZChhbGlhcz0icGF5bWVudEFjY291bnQiKQogICAgY3JlYXRlZF9hdDogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChhbGlhcz0iY3JlYXRlZEF0IikKICAgIHN0YXRlOiBQYXlvdXRTdGF0ZQogICAgc3RhdHVzOiBQYXlvdXRTdGF0dXMKICAgIHJlYXNvbl9vZl9mYWlsdXJlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iPHVsPiAgPGxpPiBJTlNVRkZJQ0lFTlRfQkFMQU5DRTwvbGk+IDxsaT4gU09VUkNFX1RSQU5TTEFUSU9OPC9saT4gPGxpPiBTT1VSQ0VfTk9UX1VOSVFVRTwvbGk+IDxsaT4gU09VUkNFX05PVF9GT1VORDwvbGk+IDxsaT4gU09VUkNFX1RZUEVfTk9UX1NVUFBPUlRFRDwvbGk+IDxsaT4gRU1QVFlfU09VUkNFPC9saT4gPGxpPiBERVNUSU5BVElPTl9UUkFOU0xBVElPTjwvbGk+IDxsaT4gREVTVElOQVRJT05fTk9UX1VOSVFVRTwvbGk+IDxsaT4gREVTVElOQVRJT05fTk9UX0ZPVU5EPC9saT4gPGxpPiBFTVBUWV9ERVNUSU5BVElPTjwvbGk+IDxsaT4gUEFSU0lORyA8L2xpPiA8bGk+IFVOS05PV048L2xpPiA8bGk+IEZJUkVCTE9DS1NfQ0xJRU5UPC9saT4gPGxpPiBUUkFOU0FDVElPTl9TVUJNSVNTSU9OPC9saT4gPC91bD4gIiwgYWxpYXM9InJlYXNvbk9mRmFpbHVyZSIpCiAgICBpbml0X21ldGhvZDogT3B0aW9uYWxbUGF5b3V0SW5pdE1ldGhvZF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJpbml0TWV0aG9kIikKICAgIGluc3RydWN0aW9uX3NldDogTGlzdFtQYXlvdXRJbnN0cnVjdGlvblJlc3BvbnNlXSA9IEZpZWxkKGFsaWFzPSJpbnN0cnVjdGlvblNldCIpCiAgICByZXBvcnRfdXJsOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0icmVwb3J0VXJsIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicGF5b3V0SWQiLCAicGF5bWVudEFjY291bnQiLCAiY3JlYXRlZEF0IiwgInN0YXRlIiwgInN0YXR1cyIsICJyZWFzb25PZkZhaWx1cmUiLCAiaW5pdE1ldGhvZCIsICJpbnN0cnVjdGlvblNldCIsICJyZXBvcnRVcmwiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBheW91dFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcGF5bWVudF9hY2NvdW50CiAgICAgICAgaWYgc2VsZi5wYXltZW50X2FjY291bnQ6CiAgICAgICAgICAgIF9kaWN0WydwYXltZW50QWNjb3VudCddID0gc2VsZi5wYXltZW50X2FjY291bnQudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBpbnN0cnVjdGlvbl9zZXQgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmluc3RydWN0aW9uX3NldDoKICAgICAgICAgICAgZm9yIF9pdGVtX2luc3RydWN0aW9uX3NldCBpbiBzZWxmLmluc3RydWN0aW9uX3NldDoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2luc3RydWN0aW9uX3NldDoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2luc3RydWN0aW9uX3NldC50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydpbnN0cnVjdGlvblNldCddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXlvdXRSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJwYXlvdXRJZCI6IG9iai5nZXQoInBheW91dElkIiksCiAgICAgICAgICAgICJwYXltZW50QWNjb3VudCI6IFBheW1lbnRBY2NvdW50UmVzcG9uc2UuZnJvbV9kaWN0KG9ialsicGF5bWVudEFjY291bnQiXSkgaWYgb2JqLmdldCgicGF5bWVudEFjY291bnQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJjcmVhdGVkQXQiOiBvYmouZ2V0KCJjcmVhdGVkQXQiKSwKICAgICAgICAgICAgInN0YXRlIjogb2JqLmdldCgic3RhdGUiKSwKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAicmVhc29uT2ZGYWlsdXJlIjogb2JqLmdldCgicmVhc29uT2ZGYWlsdXJlIiksCiAgICAgICAgICAgICJpbml0TWV0aG9kIjogb2JqLmdldCgiaW5pdE1ldGhvZCIpLAogICAgICAgICAgICAiaW5zdHJ1Y3Rpb25TZXQiOiBbUGF5b3V0SW5zdHJ1Y3Rpb25SZXNwb25zZS5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImluc3RydWN0aW9uU2V0Il1dIGlmIG9iai5nZXQoImluc3RydWN0aW9uU2V0IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAicmVwb3J0VXJsIjogb2JqLmdldCgicmVwb3J0VXJsIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/payout_state.py b/fireblocks/models/payout_state.py index 0acde3b0..bc65106a 100644 --- a/fireblocks/models/payout_state.py +++ b/fireblocks/models/payout_state.py @@ -1,45 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class PayoutState(str, Enum): - """ - - CREATED - payout instruction set created with all its details - FILE_FOUND - new file found in the FTP - REQUESTED - payout requested with all its details - TRANSLATED - payout instruction account IDs identified and translated - PROCESSING - payout instruction set executed and is processing - SUBMITTED - transactions submitted for payout instructions - FINALIZED - payout finished processing, all transactions processed successfully - INSUFFICIENT_BALANCE - insufficient balance in the payment account (can be a temporary state) - FAILED - one or more of the payout instructions failed - """ - - """ - allowed enum values - """ - CREATED = 'CREATED' - FILE_FOUND = 'FILE_FOUND' - REQUESTED = 'REQUESTED' - TRANSLATED = 'TRANSLATED' - PROCESSING = 'PROCESSING' - SUBMITTED = 'SUBMITTED' - FINALIZED = 'FINALIZED' - INSUFFICIENT_BALANCE = 'INSUFFICIENT_BALANCE' - FAILED = 'FAILED' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of PayoutState from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBQYXlvdXRTdGF0ZShzdHIsIEVudW0pOgogICAgIiIiCiAgICAtIENSRUFURUQgLSBwYXlvdXQgaW5zdHJ1Y3Rpb24gc2V0IGNyZWF0ZWQgd2l0aCBhbGwgaXRzIGRldGFpbHMgLSBGSUxFX0ZPVU5EIC0gbmV3IGZpbGUgZm91bmQgaW4gdGhlIEZUUCAtIFJFUVVFU1RFRCAtIHBheW91dCByZXF1ZXN0ZWQgd2l0aCBhbGwgaXRzIGRldGFpbHMgLSBUUkFOU0xBVEVEIC0gcGF5b3V0IGluc3RydWN0aW9uIGFjY291bnQgSURzIGlkZW50aWZpZWQgYW5kIHRyYW5zbGF0ZWQgLSBQUk9DRVNTSU5HIC0gcGF5b3V0IGluc3RydWN0aW9uIHNldCBleGVjdXRlZCBhbmQgaXMgcHJvY2Vzc2luZyAtIFNVQk1JVFRFRCAtIHRyYW5zYWN0aW9ucyBzdWJtaXR0ZWQgZm9yIHBheW91dCBpbnN0cnVjdGlvbnMgLSBGSU5BTElaRUQgLSBwYXlvdXQgZmluaXNoZWQgcHJvY2Vzc2luZywgYWxsIHRyYW5zYWN0aW9ucyBwcm9jZXNzZWQgc3VjY2Vzc2Z1bGx5IC0gSU5TVUZGSUNJRU5UX0JBTEFOQ0UgLSBpbnN1ZmZpY2llbnQgYmFsYW5jZSBpbiB0aGUgcGF5bWVudCBhY2NvdW50IChjYW4gYmUgYSB0ZW1wb3Jhcnkgc3RhdGUpIC0gRkFJTEVEIC0gb25lIG9yIG1vcmUgb2YgdGhlIHBheW91dCBpbnN0cnVjdGlvbnMgZmFpbGVkIAogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIENSRUFURUQgPSAnQ1JFQVRFRCcKICAgIEZJTEVfRk9VTkQgPSAnRklMRV9GT1VORCcKICAgIFJFUVVFU1RFRCA9ICdSRVFVRVNURUQnCiAgICBUUkFOU0xBVEVEID0gJ1RSQU5TTEFURUQnCiAgICBQUk9DRVNTSU5HID0gJ1BST0NFU1NJTkcnCiAgICBTVUJNSVRURUQgPSAnU1VCTUlUVEVEJwogICAgRklOQUxJWkVEID0gJ0ZJTkFMSVpFRCcKICAgIElOU1VGRklDSUVOVF9CQUxBTkNFID0gJ0lOU1VGRklDSUVOVF9CQUxBTkNFJwogICAgRkFJTEVEID0gJ0ZBSUxFRCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXlvdXRTdGF0ZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/payout_status.py b/fireblocks/models/payout_status.py index 7a4e0561..16062273 100644 --- a/fireblocks/models/payout_status.py +++ b/fireblocks/models/payout_status.py @@ -1,42 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class PayoutStatus(str, Enum): - """ - - REQUESTED payout requested with all its details - VERIFIED payout instruction set details were verified - PROCESSING payout instruction set executed and is processing - FINALIZED payout done (all payout instructions completed successfully) - INSUFFICIENT_BALANCE insufficient balance in the payment account (can be a temporary state) - FAILED one or more of the payout instructions failed - """ - - """ - allowed enum values - """ - REGISTERED = 'REGISTERED' - VERIFYING = 'VERIFYING' - IN_PROGRESS = 'IN_PROGRESS' - DONE = 'DONE' - INSUFFICIENT_BALANCE = 'INSUFFICIENT_BALANCE' - FAILED = 'FAILED' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of PayoutStatus from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBQYXlvdXRTdGF0dXMoc3RyLCBFbnVtKToKICAgICIiIgogICAgLSBSRVFVRVNURUQgcGF5b3V0IHJlcXVlc3RlZCB3aXRoIGFsbCBpdHMgZGV0YWlscyAtIFZFUklGSUVEIHBheW91dCBpbnN0cnVjdGlvbiBzZXQgZGV0YWlscyB3ZXJlIHZlcmlmaWVkIC0gUFJPQ0VTU0lORyBwYXlvdXQgaW5zdHJ1Y3Rpb24gc2V0IGV4ZWN1dGVkIGFuZCBpcyBwcm9jZXNzaW5nIC0gRklOQUxJWkVEIHBheW91dCBkb25lIChhbGwgcGF5b3V0IGluc3RydWN0aW9ucyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5KSAtIElOU1VGRklDSUVOVF9CQUxBTkNFIGluc3VmZmljaWVudCBiYWxhbmNlIGluIHRoZSBwYXltZW50IGFjY291bnQgKGNhbiBiZSBhIHRlbXBvcmFyeSBzdGF0ZSkgLSBGQUlMRUQgb25lIG9yIG1vcmUgb2YgdGhlIHBheW91dCBpbnN0cnVjdGlvbnMgZmFpbGVkIAogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIFJFR0lTVEVSRUQgPSAnUkVHSVNURVJFRCcKICAgIFZFUklGWUlORyA9ICdWRVJJRllJTkcnCiAgICBJTl9QUk9HUkVTUyA9ICdJTl9QUk9HUkVTUycKICAgIERPTkUgPSAnRE9ORScKICAgIElOU1VGRklDSUVOVF9CQUxBTkNFID0gJ0lOU1VGRklDSUVOVF9CQUxBTkNFJwogICAgRkFJTEVEID0gJ0ZBSUxFRCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQYXlvdXRTdGF0dXMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/peer_adapter_info.py b/fireblocks/models/peer_adapter_info.py index b2188a57..655ad963 100644 --- a/fireblocks/models/peer_adapter_info.py +++ b/fireblocks/models/peer_adapter_info.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class PeerAdapterInfo(BaseModel): - """ - PeerAdapterInfo - """ # noqa: E501 - adapter_token_link_id: StrictStr = Field(description="The token link id of the adapter", alias="adapterTokenLinkId") - adapter_address: StrictStr = Field(description="The adapter address", alias="adapterAddress") - base_asset_id: StrictStr = Field(description="The base asset id for the base asset that the adapter is deployed on", alias="baseAssetId") - __properties: ClassVar[List[str]] = ["adapterTokenLinkId", "adapterAddress", "baseAssetId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PeerAdapterInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PeerAdapterInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "adapterTokenLinkId": obj.get("adapterTokenLinkId"), - "adapterAddress": obj.get("adapterAddress"), - "baseAssetId": obj.get("baseAssetId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFBlZXJBZGFwdGVySW5mbyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBQZWVyQWRhcHRlckluZm8KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFkYXB0ZXJfdG9rZW5fbGlua19pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB0b2tlbiBsaW5rIGlkIG9mIHRoZSBhZGFwdGVyIiwgYWxpYXM9ImFkYXB0ZXJUb2tlbkxpbmtJZCIpCiAgICBhZGFwdGVyX2FkZHJlc3M6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYWRhcHRlciBhZGRyZXNzIiwgYWxpYXM9ImFkYXB0ZXJBZGRyZXNzIikKICAgIGJhc2VfYXNzZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmFzZSBhc3NldCBpZCBmb3IgdGhlIGJhc2UgYXNzZXQgdGhhdCB0aGUgYWRhcHRlciBpcyBkZXBsb3llZCBvbiIsIGFsaWFzPSJiYXNlQXNzZXRJZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFkYXB0ZXJUb2tlbkxpbmtJZCIsICJhZGFwdGVyQWRkcmVzcyIsICJiYXNlQXNzZXRJZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGVlckFkYXB0ZXJJbmZvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBlZXJBZGFwdGVySW5mbyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhZGFwdGVyVG9rZW5MaW5rSWQiOiBvYmouZ2V0KCJhZGFwdGVyVG9rZW5MaW5rSWQiKSwKICAgICAgICAgICAgImFkYXB0ZXJBZGRyZXNzIjogb2JqLmdldCgiYWRhcHRlckFkZHJlc3MiKSwKICAgICAgICAgICAgImJhc2VBc3NldElkIjogb2JqLmdldCgiYmFzZUFzc2V0SWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/peer_type.py b/fireblocks/models/peer_type.py index 227cd346..17ea135c 100644 --- a/fireblocks/models/peer_type.py +++ b/fireblocks/models/peer_type.py @@ -1,41 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class PeerType(str, Enum): - """ - PeerType - """ - - """ - allowed enum values - """ - VAULT_ACCOUNT = 'VAULT_ACCOUNT' - EXCHANGE_ACCOUNT = 'EXCHANGE_ACCOUNT' - UNMANAGED_WALLET = 'UNMANAGED_WALLET' - FIAT_ACCOUNT = 'FIAT_ACCOUNT' - CONNECTED_ACCOUNT = 'CONNECTED_ACCOUNT' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of PeerType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBQZWVyVHlwZShzdHIsIEVudW0pOgogICAgIiIiCiAgICBQZWVyVHlwZQogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIFZBVUxUX0FDQ09VTlQgPSAnVkFVTFRfQUNDT1VOVCcKICAgIEVYQ0hBTkdFX0FDQ09VTlQgPSAnRVhDSEFOR0VfQUNDT1VOVCcKICAgIFVOTUFOQUdFRF9XQUxMRVQgPSAnVU5NQU5BR0VEX1dBTExFVCcKICAgIEZJQVRfQUNDT1VOVCA9ICdGSUFUX0FDQ09VTlQnCiAgICBDT05ORUNURURfQUNDT1VOVCA9ICdDT05ORUNURURfQUNDT1VOVCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQZWVyVHlwZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/personal_entity_type_enum.py b/fireblocks/models/personal_entity_type_enum.py index 4de6e3b2..59548df0 100644 --- a/fireblocks/models/personal_entity_type_enum.py +++ b/fireblocks/models/personal_entity_type_enum.py @@ -1,37 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class PersonalEntityTypeEnum(str, Enum): - """ - PersonalEntityTypeEnum - """ - - """ - allowed enum values - """ - INDIVIDUAL = 'INDIVIDUAL' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of PersonalEntityTypeEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBQZXJzb25hbEVudGl0eVR5cGVFbnVtKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIFBlcnNvbmFsRW50aXR5VHlwZUVudW0KICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBJTkRJVklEVUFMID0gJ0lORElWSURVQUwnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGVyc29uYWxFbnRpdHlUeXBlRW51bSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/personal_identification.py b/fireblocks/models/personal_identification.py index 7ebe1d83..d3ddb7f8 100644 --- a/fireblocks/models/personal_identification.py +++ b/fireblocks/models/personal_identification.py @@ -1,133 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import date -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from fireblocks.models.participant_relationship_type import ParticipantRelationshipType -from fireblocks.models.personal_entity_type_enum import PersonalEntityTypeEnum -from fireblocks.models.personal_identification_full_name import PersonalIdentificationFullName -from fireblocks.models.personal_identification_type import PersonalIdentificationType -from fireblocks.models.postal_address import PostalAddress -from typing import Optional, Set -from typing_extensions import Self - -class PersonalIdentification(BaseModel): - """ - PersonalIdentification - """ # noqa: E501 - external_reference_id: StrictStr = Field(alias="externalReferenceId") - entity_type: PersonalEntityTypeEnum = Field(alias="entityType") - participant_relationship_type: ParticipantRelationshipType = Field(alias="participantRelationshipType") - full_name: PersonalIdentificationFullName = Field(alias="fullName") - date_of_birth: date = Field(alias="dateOfBirth") - postal_address: PostalAddress = Field(alias="postalAddress") - email: Optional[StrictStr] = None - phone: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="Mobile phone number in E.164 format") - id_number: Optional[StrictStr] = Field(default=None, description="The identification number corresponding to the primary identification document type specified in idType", alias="idNumber") - id_type: Optional[PersonalIdentificationType] = Field(default=None, alias="idType") - additional_id_number: Optional[StrictStr] = Field(default=None, description="The identification number corresponding to the additional identification document type specified in additionalIdType", alias="additionalIdNumber") - additional_id_type: Optional[PersonalIdentificationType] = Field(default=None, alias="additionalIdType") - __properties: ClassVar[List[str]] = ["externalReferenceId", "entityType", "participantRelationshipType", "fullName", "dateOfBirth", "postalAddress", "email", "phone", "idNumber", "idType", "additionalIdNumber", "additionalIdType"] - - @field_validator('phone') - def phone_validate_regular_expression(cls, value): - """Validates the regular expression""" - if value is None: - return value - - if not re.match(r"^\+[1-9]\d{1,14}$", value): - raise ValueError(r"must validate the regular expression /^\+[1-9]\d{1,14}$/") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PersonalIdentification from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of full_name - if self.full_name: - _dict['fullName'] = self.full_name.to_dict() - # override the default output from pydantic by calling `to_dict()` of postal_address - if self.postal_address: - _dict['postalAddress'] = self.postal_address.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PersonalIdentification from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "externalReferenceId": obj.get("externalReferenceId"), - "entityType": obj.get("entityType"), - "participantRelationshipType": obj.get("participantRelationshipType"), - "fullName": PersonalIdentificationFullName.from_dict(obj["fullName"]) if obj.get("fullName") is not None else None, - "dateOfBirth": obj.get("dateOfBirth"), - "postalAddress": PostalAddress.from_dict(obj["postalAddress"]) if obj.get("postalAddress") is not None else None, - "email": obj.get("email"), - "phone": obj.get("phone"), - "idNumber": obj.get("idNumber"), - "idType": obj.get("idType"), - "additionalIdNumber": obj.get("additionalIdNumber"), - "additionalIdType": obj.get("additionalIdType") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZQpmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFydGljaXBhbnRfcmVsYXRpb25zaGlwX3R5cGUgaW1wb3J0IFBhcnRpY2lwYW50UmVsYXRpb25zaGlwVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBlcnNvbmFsX2VudGl0eV90eXBlX2VudW0gaW1wb3J0IFBlcnNvbmFsRW50aXR5VHlwZUVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wZXJzb25hbF9pZGVudGlmaWNhdGlvbl9mdWxsX25hbWUgaW1wb3J0IFBlcnNvbmFsSWRlbnRpZmljYXRpb25GdWxsTmFtZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBlcnNvbmFsX2lkZW50aWZpY2F0aW9uX3R5cGUgaW1wb3J0IFBlcnNvbmFsSWRlbnRpZmljYXRpb25UeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9zdGFsX2FkZHJlc3MgaW1wb3J0IFBvc3RhbEFkZHJlc3MKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUGVyc29uYWxJZGVudGlmaWNhdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBQZXJzb25hbElkZW50aWZpY2F0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBleHRlcm5hbF9yZWZlcmVuY2VfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJleHRlcm5hbFJlZmVyZW5jZUlkIikKICAgIGVudGl0eV90eXBlOiBQZXJzb25hbEVudGl0eVR5cGVFbnVtID0gRmllbGQoYWxpYXM9ImVudGl0eVR5cGUiKQogICAgcGFydGljaXBhbnRfcmVsYXRpb25zaGlwX3R5cGU6IFBhcnRpY2lwYW50UmVsYXRpb25zaGlwVHlwZSA9IEZpZWxkKGFsaWFzPSJwYXJ0aWNpcGFudFJlbGF0aW9uc2hpcFR5cGUiKQogICAgZnVsbF9uYW1lOiBQZXJzb25hbElkZW50aWZpY2F0aW9uRnVsbE5hbWUgPSBGaWVsZChhbGlhcz0iZnVsbE5hbWUiKQogICAgZGF0ZV9vZl9iaXJ0aDogZGF0ZSA9IEZpZWxkKGFsaWFzPSJkYXRlT2ZCaXJ0aCIpCiAgICBwb3N0YWxfYWRkcmVzczogUG9zdGFsQWRkcmVzcyA9IEZpZWxkKGFsaWFzPSJwb3N0YWxBZGRyZXNzIikKICAgIGVtYWlsOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgcGhvbmU6IE9wdGlvbmFsW0Fubm90YXRlZFtzdHIsIEZpZWxkKHN0cmljdD1UcnVlKV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTW9iaWxlIHBob25lIG51bWJlciBpbiBFLjE2NCBmb3JtYXQiKQogICAgaWRfbnVtYmVyOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGlkZW50aWZpY2F0aW9uIG51bWJlciBjb3JyZXNwb25kaW5nIHRvIHRoZSBwcmltYXJ5IGlkZW50aWZpY2F0aW9uIGRvY3VtZW50IHR5cGUgc3BlY2lmaWVkIGluIGlkVHlwZSIsIGFsaWFzPSJpZE51bWJlciIpCiAgICBpZF90eXBlOiBPcHRpb25hbFtQZXJzb25hbElkZW50aWZpY2F0aW9uVHlwZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJpZFR5cGUiKQogICAgYWRkaXRpb25hbF9pZF9udW1iZXI6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgaWRlbnRpZmljYXRpb24gbnVtYmVyIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGFkZGl0aW9uYWwgaWRlbnRpZmljYXRpb24gZG9jdW1lbnQgdHlwZSBzcGVjaWZpZWQgaW4gYWRkaXRpb25hbElkVHlwZSIsIGFsaWFzPSJhZGRpdGlvbmFsSWROdW1iZXIiKQogICAgYWRkaXRpb25hbF9pZF90eXBlOiBPcHRpb25hbFtQZXJzb25hbElkZW50aWZpY2F0aW9uVHlwZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJhZGRpdGlvbmFsSWRUeXBlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZXh0ZXJuYWxSZWZlcmVuY2VJZCIsICJlbnRpdHlUeXBlIiwgInBhcnRpY2lwYW50UmVsYXRpb25zaGlwVHlwZSIsICJmdWxsTmFtZSIsICJkYXRlT2ZCaXJ0aCIsICJwb3N0YWxBZGRyZXNzIiwgImVtYWlsIiwgInBob25lIiwgImlkTnVtYmVyIiwgImlkVHlwZSIsICJhZGRpdGlvbmFsSWROdW1iZXIiLCAiYWRkaXRpb25hbElkVHlwZSJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigncGhvbmUnKQogICAgZGVmIHBob25lX3ZhbGlkYXRlX3JlZ3VsYXJfZXhwcmVzc2lvbihjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiIiIgogICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgICAgICBpZiBub3QgcmUubWF0Y2gociJeXCtbMS05XVxkezEsMTR9JCIsIHZhbHVlKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihyIm11c3QgdmFsaWRhdGUgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiAvXlwrWzEtOV1cZHsxLDE0fSQvIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQZXJzb25hbElkZW50aWZpY2F0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZnVsbF9uYW1lCiAgICAgICAgaWYgc2VsZi5mdWxsX25hbWU6CiAgICAgICAgICAgIF9kaWN0WydmdWxsTmFtZSddID0gc2VsZi5mdWxsX25hbWUudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHBvc3RhbF9hZGRyZXNzCiAgICAgICAgaWYgc2VsZi5wb3N0YWxfYWRkcmVzczoKICAgICAgICAgICAgX2RpY3RbJ3Bvc3RhbEFkZHJlc3MnXSA9IHNlbGYucG9zdGFsX2FkZHJlc3MudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQZXJzb25hbElkZW50aWZpY2F0aW9uIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImV4dGVybmFsUmVmZXJlbmNlSWQiOiBvYmouZ2V0KCJleHRlcm5hbFJlZmVyZW5jZUlkIiksCiAgICAgICAgICAgICJlbnRpdHlUeXBlIjogb2JqLmdldCgiZW50aXR5VHlwZSIpLAogICAgICAgICAgICAicGFydGljaXBhbnRSZWxhdGlvbnNoaXBUeXBlIjogb2JqLmdldCgicGFydGljaXBhbnRSZWxhdGlvbnNoaXBUeXBlIiksCiAgICAgICAgICAgICJmdWxsTmFtZSI6IFBlcnNvbmFsSWRlbnRpZmljYXRpb25GdWxsTmFtZS5mcm9tX2RpY3Qob2JqWyJmdWxsTmFtZSJdKSBpZiBvYmouZ2V0KCJmdWxsTmFtZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImRhdGVPZkJpcnRoIjogb2JqLmdldCgiZGF0ZU9mQmlydGgiKSwKICAgICAgICAgICAgInBvc3RhbEFkZHJlc3MiOiBQb3N0YWxBZGRyZXNzLmZyb21fZGljdChvYmpbInBvc3RhbEFkZHJlc3MiXSkgaWYgb2JqLmdldCgicG9zdGFsQWRkcmVzcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImVtYWlsIjogb2JqLmdldCgiZW1haWwiKSwKICAgICAgICAgICAgInBob25lIjogb2JqLmdldCgicGhvbmUiKSwKICAgICAgICAgICAgImlkTnVtYmVyIjogb2JqLmdldCgiaWROdW1iZXIiKSwKICAgICAgICAgICAgImlkVHlwZSI6IG9iai5nZXQoImlkVHlwZSIpLAogICAgICAgICAgICAiYWRkaXRpb25hbElkTnVtYmVyIjogb2JqLmdldCgiYWRkaXRpb25hbElkTnVtYmVyIiksCiAgICAgICAgICAgICJhZGRpdGlvbmFsSWRUeXBlIjogb2JqLmdldCgiYWRkaXRpb25hbElkVHlwZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/personal_identification_full_name.py b/fireblocks/models/personal_identification_full_name.py index 7f7962e0..4f8f6d74 100644 --- a/fireblocks/models/personal_identification_full_name.py +++ b/fireblocks/models/personal_identification_full_name.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class PersonalIdentificationFullName(BaseModel): - """ - PersonalIdentificationFullName - """ # noqa: E501 - first_name: StrictStr = Field(alias="firstName") - last_name: StrictStr = Field(alias="lastName") - __properties: ClassVar[List[str]] = ["firstName", "lastName"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PersonalIdentificationFullName from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PersonalIdentificationFullName from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "firstName": obj.get("firstName"), - "lastName": obj.get("lastName") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFBlcnNvbmFsSWRlbnRpZmljYXRpb25GdWxsTmFtZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBQZXJzb25hbElkZW50aWZpY2F0aW9uRnVsbE5hbWUKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGZpcnN0X25hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJmaXJzdE5hbWUiKQogICAgbGFzdF9uYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChhbGlhcz0ibGFzdE5hbWUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJmaXJzdE5hbWUiLCAibGFzdE5hbWUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBlcnNvbmFsSWRlbnRpZmljYXRpb25GdWxsTmFtZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQZXJzb25hbElkZW50aWZpY2F0aW9uRnVsbE5hbWUgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZmlyc3ROYW1lIjogb2JqLmdldCgiZmlyc3ROYW1lIiksCiAgICAgICAgICAgICJsYXN0TmFtZSI6IG9iai5nZXQoImxhc3ROYW1lIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/personal_identification_type.py b/fireblocks/models/personal_identification_type.py index d01c46c7..ad8a09ad 100644 --- a/fireblocks/models/personal_identification_type.py +++ b/fireblocks/models/personal_identification_type.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class PersonalIdentificationType(str, Enum): - """ - Type of identification document. Acceptable values are: - 'NIN_SLIP_CARD': National Identification Number (NIN) Slip Card - temporary identification card issued in Nigeria - 'BVN': Bank Verification Number - unique identity number for bank account holders in Nigeria - 'ID_CARD': General national identity card - 'ID_BOOK': Identity book or booklet format identification document - 'NATIONAL_ID': National identity document issued by government authorities - 'ALIEN_CARD': Alien registration card for foreign nationals - 'PASSPORT': International travel document and proof of identity - 'ECOWAS_CARD': Economic Community of West African States identification card - 'RWANDA_CARD': Rwandan national identification card - 'DRIVERS_LICENSE': Driver's license or driving permit - 'RESIDENT_CARD': Resident permit or permanent resident card - 'VOTER_ID': Voter identification card used for electoral registration - 'HEALTH_INSURANCE_ID': Health insurance identification card - 'GHANA_CARD': Ghana Card - national identification card issued in Ghana - 'REFUGEE_ID': Refugee identification document - 'SSNIT': Social Security and National Insurance Trust ID - social security number in Ghana - 'NON_CITIZEN_ID': Identification document for non-citizens or foreign residents - 'NATIONAL_REGISTRATION_CARD': National registration card issued by national registration authority - """ - - """ - allowed enum values - """ - NIN_SLIP_CARD = 'NIN_SLIP_CARD' - BVN = 'BVN' - ID_CARD = 'ID_CARD' - ID_BOOK = 'ID_BOOK' - NATIONAL_ID = 'NATIONAL_ID' - ALIEN_CARD = 'ALIEN_CARD' - PASSPORT = 'PASSPORT' - ECOWAS_CARD = 'ECOWAS_CARD' - RWANDA_CARD = 'RWANDA_CARD' - DRIVERS_LICENSE = 'DRIVERS_LICENSE' - RESIDENT_CARD = 'RESIDENT_CARD' - VOTER_ID = 'VOTER_ID' - HEALTH_INSURANCE_ID = 'HEALTH_INSURANCE_ID' - GHANA_CARD = 'GHANA_CARD' - REFUGEE_ID = 'REFUGEE_ID' - SSNIT = 'SSNIT' - NON_CITIZEN_ID = 'NON_CITIZEN_ID' - NATIONAL_REGISTRATION_CARD = 'NATIONAL_REGISTRATION_CARD' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of PersonalIdentificationType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBQZXJzb25hbElkZW50aWZpY2F0aW9uVHlwZShzdHIsIEVudW0pOgogICAgIiIiCiAgICBUeXBlIG9mIGlkZW50aWZpY2F0aW9uIGRvY3VtZW50LiBBY2NlcHRhYmxlIHZhbHVlcyBhcmU6IC0gJ05JTl9TTElQX0NBUkQnOiBOYXRpb25hbCBJZGVudGlmaWNhdGlvbiBOdW1iZXIgKE5JTikgU2xpcCBDYXJkIC0gdGVtcG9yYXJ5IGlkZW50aWZpY2F0aW9uIGNhcmQgaXNzdWVkIGluIE5pZ2VyaWEgLSAnQlZOJzogQmFuayBWZXJpZmljYXRpb24gTnVtYmVyIC0gdW5pcXVlIGlkZW50aXR5IG51bWJlciBmb3IgYmFuayBhY2NvdW50IGhvbGRlcnMgaW4gTmlnZXJpYSAtICdJRF9DQVJEJzogR2VuZXJhbCBuYXRpb25hbCBpZGVudGl0eSBjYXJkIC0gJ0lEX0JPT0snOiBJZGVudGl0eSBib29rIG9yIGJvb2tsZXQgZm9ybWF0IGlkZW50aWZpY2F0aW9uIGRvY3VtZW50IC0gJ05BVElPTkFMX0lEJzogTmF0aW9uYWwgaWRlbnRpdHkgZG9jdW1lbnQgaXNzdWVkIGJ5IGdvdmVybm1lbnQgYXV0aG9yaXRpZXMgLSAnQUxJRU5fQ0FSRCc6IEFsaWVuIHJlZ2lzdHJhdGlvbiBjYXJkIGZvciBmb3JlaWduIG5hdGlvbmFscyAtICdQQVNTUE9SVCc6IEludGVybmF0aW9uYWwgdHJhdmVsIGRvY3VtZW50IGFuZCBwcm9vZiBvZiBpZGVudGl0eSAtICdFQ09XQVNfQ0FSRCc6IEVjb25vbWljIENvbW11bml0eSBvZiBXZXN0IEFmcmljYW4gU3RhdGVzIGlkZW50aWZpY2F0aW9uIGNhcmQgLSAnUldBTkRBX0NBUkQnOiBSd2FuZGFuIG5hdGlvbmFsIGlkZW50aWZpY2F0aW9uIGNhcmQgLSAnRFJJVkVSU19MSUNFTlNFJzogRHJpdmVyJ3MgbGljZW5zZSBvciBkcml2aW5nIHBlcm1pdCAtICdSRVNJREVOVF9DQVJEJzogUmVzaWRlbnQgcGVybWl0IG9yIHBlcm1hbmVudCByZXNpZGVudCBjYXJkIC0gJ1ZPVEVSX0lEJzogVm90ZXIgaWRlbnRpZmljYXRpb24gY2FyZCB1c2VkIGZvciBlbGVjdG9yYWwgcmVnaXN0cmF0aW9uIC0gJ0hFQUxUSF9JTlNVUkFOQ0VfSUQnOiBIZWFsdGggaW5zdXJhbmNlIGlkZW50aWZpY2F0aW9uIGNhcmQgLSAnR0hBTkFfQ0FSRCc6IEdoYW5hIENhcmQgLSBuYXRpb25hbCBpZGVudGlmaWNhdGlvbiBjYXJkIGlzc3VlZCBpbiBHaGFuYSAtICdSRUZVR0VFX0lEJzogUmVmdWdlZSBpZGVudGlmaWNhdGlvbiBkb2N1bWVudCAtICdTU05JVCc6IFNvY2lhbCBTZWN1cml0eSBhbmQgTmF0aW9uYWwgSW5zdXJhbmNlIFRydXN0IElEIC0gc29jaWFsIHNlY3VyaXR5IG51bWJlciBpbiBHaGFuYSAtICdOT05fQ0lUSVpFTl9JRCc6IElkZW50aWZpY2F0aW9uIGRvY3VtZW50IGZvciBub24tY2l0aXplbnMgb3IgZm9yZWlnbiByZXNpZGVudHMgLSAnTkFUSU9OQUxfUkVHSVNUUkFUSU9OX0NBUkQnOiBOYXRpb25hbCByZWdpc3RyYXRpb24gY2FyZCBpc3N1ZWQgYnkgbmF0aW9uYWwgcmVnaXN0cmF0aW9uIGF1dGhvcml0eQogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIE5JTl9TTElQX0NBUkQgPSAnTklOX1NMSVBfQ0FSRCcKICAgIEJWTiA9ICdCVk4nCiAgICBJRF9DQVJEID0gJ0lEX0NBUkQnCiAgICBJRF9CT09LID0gJ0lEX0JPT0snCiAgICBOQVRJT05BTF9JRCA9ICdOQVRJT05BTF9JRCcKICAgIEFMSUVOX0NBUkQgPSAnQUxJRU5fQ0FSRCcKICAgIFBBU1NQT1JUID0gJ1BBU1NQT1JUJwogICAgRUNPV0FTX0NBUkQgPSAnRUNPV0FTX0NBUkQnCiAgICBSV0FOREFfQ0FSRCA9ICdSV0FOREFfQ0FSRCcKICAgIERSSVZFUlNfTElDRU5TRSA9ICdEUklWRVJTX0xJQ0VOU0UnCiAgICBSRVNJREVOVF9DQVJEID0gJ1JFU0lERU5UX0NBUkQnCiAgICBWT1RFUl9JRCA9ICdWT1RFUl9JRCcKICAgIEhFQUxUSF9JTlNVUkFOQ0VfSUQgPSAnSEVBTFRIX0lOU1VSQU5DRV9JRCcKICAgIEdIQU5BX0NBUkQgPSAnR0hBTkFfQ0FSRCcKICAgIFJFRlVHRUVfSUQgPSAnUkVGVUdFRV9JRCcKICAgIFNTTklUID0gJ1NTTklUJwogICAgTk9OX0NJVElaRU5fSUQgPSAnTk9OX0NJVElaRU5fSUQnCiAgICBOQVRJT05BTF9SRUdJU1RSQVRJT05fQ0FSRCA9ICdOQVRJT05BTF9SRUdJU1RSQVRJT05fQ0FSRCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQZXJzb25hbElkZW50aWZpY2F0aW9uVHlwZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/pix_address.py b/fireblocks/models/pix_address.py index 1cf776f9..32ed6048 100644 --- a/fireblocks/models/pix_address.py +++ b/fireblocks/models/pix_address.py @@ -1,111 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.account_holder_details import AccountHolderDetails -from typing import Optional, Set -from typing_extensions import Self - -class PixAddress(BaseModel): - """ - PixAddress - """ # noqa: E501 - account_holder: AccountHolderDetails = Field(alias="accountHolder") - pix_key: StrictStr = Field(alias="pixKey") - key_type: StrictStr = Field(alias="keyType") - bank_name: Optional[StrictStr] = Field(default=None, alias="bankName") - bank_code: Optional[StrictStr] = Field(default=None, alias="bankCode") - qr_code: Optional[StrictStr] = Field(default=None, description="The QR code to be used for the transfer", alias="qrCode") - expiration_date: Optional[StrictStr] = Field(default=None, description="The expiration date of the QR code", alias="expirationDate") - __properties: ClassVar[List[str]] = ["accountHolder", "pixKey", "keyType", "bankName", "bankCode", "qrCode", "expirationDate"] - - @field_validator('key_type') - def key_type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['CPF', 'CNPJ', 'EMAIL', 'PHONE', 'RANDOM']): - raise ValueError("must be one of enum values ('CPF', 'CNPJ', 'EMAIL', 'PHONE', 'RANDOM')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PixAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of account_holder - if self.account_holder: - _dict['accountHolder'] = self.account_holder.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PixAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None, - "pixKey": obj.get("pixKey"), - "keyType": obj.get("keyType"), - "bankName": obj.get("bankName"), - "bankCode": obj.get("bankCode"), - "qrCode": obj.get("qrCode"), - "expirationDate": obj.get("expirationDate") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9ob2xkZXJfZGV0YWlscyBpbXBvcnQgQWNjb3VudEhvbGRlckRldGFpbHMKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUGl4QWRkcmVzcyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBQaXhBZGRyZXNzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhY2NvdW50X2hvbGRlcjogQWNjb3VudEhvbGRlckRldGFpbHMgPSBGaWVsZChhbGlhcz0iYWNjb3VudEhvbGRlciIpCiAgICBwaXhfa2V5OiBTdHJpY3RTdHIgPSBGaWVsZChhbGlhcz0icGl4S2V5IikKICAgIGtleV90eXBlOiBTdHJpY3RTdHIgPSBGaWVsZChhbGlhcz0ia2V5VHlwZSIpCiAgICBiYW5rX25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJiYW5rTmFtZSIpCiAgICBiYW5rX2NvZGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJiYW5rQ29kZSIpCiAgICBxcl9jb2RlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIFFSIGNvZGUgdG8gYmUgdXNlZCBmb3IgdGhlIHRyYW5zZmVyIiwgYWxpYXM9InFyQ29kZSIpCiAgICBleHBpcmF0aW9uX2RhdGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgZXhwaXJhdGlvbiBkYXRlIG9mIHRoZSBRUiBjb2RlIiwgYWxpYXM9ImV4cGlyYXRpb25EYXRlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYWNjb3VudEhvbGRlciIsICJwaXhLZXkiLCAia2V5VHlwZSIsICJiYW5rTmFtZSIsICJiYW5rQ29kZSIsICJxckNvZGUiLCAiZXhwaXJhdGlvbkRhdGUiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2tleV90eXBlJykKICAgIGRlZiBrZXlfdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydDUEYnLCAnQ05QSicsICdFTUFJTCcsICdQSE9ORScsICdSQU5ET00nXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnQ1BGJywgJ0NOUEonLCAnRU1BSUwnLCAnUEhPTkUnLCAnUkFORE9NJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBpeEFkZHJlc3MgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhY2NvdW50X2hvbGRlcgogICAgICAgIGlmIHNlbGYuYWNjb3VudF9ob2xkZXI6CiAgICAgICAgICAgIF9kaWN0WydhY2NvdW50SG9sZGVyJ10gPSBzZWxmLmFjY291bnRfaG9sZGVyLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGl4QWRkcmVzcyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyIjogQWNjb3VudEhvbGRlckRldGFpbHMuZnJvbV9kaWN0KG9ialsiYWNjb3VudEhvbGRlciJdKSBpZiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAicGl4S2V5Ijogb2JqLmdldCgicGl4S2V5IiksCiAgICAgICAgICAgICJrZXlUeXBlIjogb2JqLmdldCgia2V5VHlwZSIpLAogICAgICAgICAgICAiYmFua05hbWUiOiBvYmouZ2V0KCJiYW5rTmFtZSIpLAogICAgICAgICAgICAiYmFua0NvZGUiOiBvYmouZ2V0KCJiYW5rQ29kZSIpLAogICAgICAgICAgICAicXJDb2RlIjogb2JqLmdldCgicXJDb2RlIiksCiAgICAgICAgICAgICJleHBpcmF0aW9uRGF0ZSI6IG9iai5nZXQoImV4cGlyYXRpb25EYXRlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/pix_destination.py b/fireblocks/models/pix_destination.py index e300d0cf..36479446 100644 --- a/fireblocks/models/pix_destination.py +++ b/fireblocks/models/pix_destination.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from fireblocks.models.pix_address import PixAddress -from typing import Optional, Set -from typing_extensions import Self - -class PixDestination(BaseModel): - """ - PixDestination - """ # noqa: E501 - type: StrictStr - address: PixAddress - __properties: ClassVar[List[str]] = ["type", "address"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['PIX']): - raise ValueError("must be one of enum values ('PIX')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PixDestination from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of address - if self.address: - _dict['address'] = self.address.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PixDestination from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "address": PixAddress.from_dict(obj["address"]) if obj.get("address") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBpeF9hZGRyZXNzIGltcG9ydCBQaXhBZGRyZXNzCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFBpeERlc3RpbmF0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFBpeERlc3RpbmF0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBTdHJpY3RTdHIKICAgIGFkZHJlc3M6IFBpeEFkZHJlc3MKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidHlwZSIsICJhZGRyZXNzIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCd0eXBlJykKICAgIGRlZiB0eXBlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ1BJWCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdQSVgnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGl4RGVzdGluYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhZGRyZXNzCiAgICAgICAgaWYgc2VsZi5hZGRyZXNzOgogICAgICAgICAgICBfZGljdFsnYWRkcmVzcyddID0gc2VsZi5hZGRyZXNzLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGl4RGVzdGluYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImFkZHJlc3MiOiBQaXhBZGRyZXNzLmZyb21fZGljdChvYmpbImFkZHJlc3MiXSkgaWYgb2JqLmdldCgiYWRkcmVzcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/pix_payment_info.py b/fireblocks/models/pix_payment_info.py index 992ab483..d56dc484 100644 --- a/fireblocks/models/pix_payment_info.py +++ b/fireblocks/models/pix_payment_info.py @@ -1,125 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class PixPaymentInfo(BaseModel): - """ - PIX payment information for Brazilian instant payments - """ # noqa: E501 - rail: StrictStr = Field(description="The payment rail type for PIX transfers") - addressing_system: StrictStr = Field(description="The addressing system used for PIX transfers", alias="addressingSystem") - account_holder_given_name: StrictStr = Field(description="The given name (first name) of the account holder", alias="accountHolderGivenName") - account_holder_surname: StrictStr = Field(description="The surname (last name) of the account holder", alias="accountHolderSurname") - country: StrictStr = Field(description="The country for the transfer (ISO 3166-1 alpha-2 code)") - pix_key: StrictStr = Field(description="The PIX key used for the transfer", alias="pixKey") - bank_name: Optional[StrictStr] = Field(default=None, description="The name of the bank", alias="bankName") - bank_code: Optional[StrictStr] = Field(default=None, description="The bank code (ISPB - Identificador do Sistema de Pagamentos Brasileiros)", alias="bankCode") - key_type: StrictStr = Field(description="The type of PIX key being used", alias="keyType") - __properties: ClassVar[List[str]] = ["rail", "addressingSystem", "accountHolderGivenName", "accountHolderSurname", "country", "pixKey", "bankName", "bankCode", "keyType"] - - @field_validator('rail') - def rail_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['PIX']): - raise ValueError("must be one of enum values ('PIX')") - return value - - @field_validator('addressing_system') - def addressing_system_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['PIX']): - raise ValueError("must be one of enum values ('PIX')") - return value - - @field_validator('key_type') - def key_type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['CPF', 'CNPJ', 'EMAIL', 'PHONE', 'RANDOM']): - raise ValueError("must be one of enum values ('CPF', 'CNPJ', 'EMAIL', 'PHONE', 'RANDOM')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PixPaymentInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PixPaymentInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "rail": obj.get("rail"), - "addressingSystem": obj.get("addressingSystem"), - "accountHolderGivenName": obj.get("accountHolderGivenName"), - "accountHolderSurname": obj.get("accountHolderSurname"), - "country": obj.get("country"), - "pixKey": obj.get("pixKey"), - "bankName": obj.get("bankName"), - "bankCode": obj.get("bankCode"), - "keyType": obj.get("keyType") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFBpeFBheW1lbnRJbmZvKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFBJWCBwYXltZW50IGluZm9ybWF0aW9uIGZvciBCcmF6aWxpYW4gaW5zdGFudCBwYXltZW50cwogICAgIiIiICMgbm9xYTogRTUwMQogICAgcmFpbDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBwYXltZW50IHJhaWwgdHlwZSBmb3IgUElYIHRyYW5zZmVycyIpCiAgICBhZGRyZXNzaW5nX3N5c3RlbTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBhZGRyZXNzaW5nIHN5c3RlbSB1c2VkIGZvciBQSVggdHJhbnNmZXJzIiwgYWxpYXM9ImFkZHJlc3NpbmdTeXN0ZW0iKQogICAgYWNjb3VudF9ob2xkZXJfZ2l2ZW5fbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBnaXZlbiBuYW1lIChmaXJzdCBuYW1lKSBvZiB0aGUgYWNjb3VudCBob2xkZXIiLCBhbGlhcz0iYWNjb3VudEhvbGRlckdpdmVuTmFtZSIpCiAgICBhY2NvdW50X2hvbGRlcl9zdXJuYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHN1cm5hbWUgKGxhc3QgbmFtZSkgb2YgdGhlIGFjY291bnQgaG9sZGVyIiwgYWxpYXM9ImFjY291bnRIb2xkZXJTdXJuYW1lIikKICAgIGNvdW50cnk6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgY291bnRyeSBmb3IgdGhlIHRyYW5zZmVyIChJU08gMzE2Ni0xIGFscGhhLTIgY29kZSkiKQogICAgcGl4X2tleTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBQSVgga2V5IHVzZWQgZm9yIHRoZSB0cmFuc2ZlciIsIGFsaWFzPSJwaXhLZXkiKQogICAgYmFua19uYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIG5hbWUgb2YgdGhlIGJhbmsiLCBhbGlhcz0iYmFua05hbWUiKQogICAgYmFua19jb2RlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGJhbmsgY29kZSAoSVNQQiAtIElkZW50aWZpY2Fkb3IgZG8gU2lzdGVtYSBkZSBQYWdhbWVudG9zIEJyYXNpbGVpcm9zKSIsIGFsaWFzPSJiYW5rQ29kZSIpCiAgICBrZXlfdHlwZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB0eXBlIG9mIFBJWCBrZXkgYmVpbmcgdXNlZCIsIGFsaWFzPSJrZXlUeXBlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicmFpbCIsICJhZGRyZXNzaW5nU3lzdGVtIiwgImFjY291bnRIb2xkZXJHaXZlbk5hbWUiLCAiYWNjb3VudEhvbGRlclN1cm5hbWUiLCAiY291bnRyeSIsICJwaXhLZXkiLCAiYmFua05hbWUiLCAiYmFua0NvZGUiLCAia2V5VHlwZSJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigncmFpbCcpCiAgICBkZWYgcmFpbF92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydQSVgnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnUElYJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FkZHJlc3Npbmdfc3lzdGVtJykKICAgIGRlZiBhZGRyZXNzaW5nX3N5c3RlbV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydQSVgnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnUElYJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2tleV90eXBlJykKICAgIGRlZiBrZXlfdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydDUEYnLCAnQ05QSicsICdFTUFJTCcsICdQSE9ORScsICdSQU5ET00nXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnQ1BGJywgJ0NOUEonLCAnRU1BSUwnLCAnUEhPTkUnLCAnUkFORE9NJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBpeFBheW1lbnRJbmZvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBpeFBheW1lbnRJbmZvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInJhaWwiOiBvYmouZ2V0KCJyYWlsIiksCiAgICAgICAgICAgICJhZGRyZXNzaW5nU3lzdGVtIjogb2JqLmdldCgiYWRkcmVzc2luZ1N5c3RlbSIpLAogICAgICAgICAgICAiYWNjb3VudEhvbGRlckdpdmVuTmFtZSI6IG9iai5nZXQoImFjY291bnRIb2xkZXJHaXZlbk5hbWUiKSwKICAgICAgICAgICAgImFjY291bnRIb2xkZXJTdXJuYW1lIjogb2JqLmdldCgiYWNjb3VudEhvbGRlclN1cm5hbWUiKSwKICAgICAgICAgICAgImNvdW50cnkiOiBvYmouZ2V0KCJjb3VudHJ5IiksCiAgICAgICAgICAgICJwaXhLZXkiOiBvYmouZ2V0KCJwaXhLZXkiKSwKICAgICAgICAgICAgImJhbmtOYW1lIjogb2JqLmdldCgiYmFua05hbWUiKSwKICAgICAgICAgICAgImJhbmtDb2RlIjogb2JqLmdldCgiYmFua0NvZGUiKSwKICAgICAgICAgICAgImtleVR5cGUiOiBvYmouZ2V0KCJrZXlUeXBlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/platform_account.py b/fireblocks/models/platform_account.py index 7f38be3a..6199ebdf 100644 --- a/fireblocks/models/platform_account.py +++ b/fireblocks/models/platform_account.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.platform_peer_type import PlatformPeerType -from typing import Optional, Set -from typing_extensions import Self - -class PlatformAccount(BaseModel): - """ - PlatformAccount - """ # noqa: E501 - type: PlatformPeerType - account_id: StrictStr = Field(alias="accountId") - __properties: ClassVar[List[str]] = ["type", "accountId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PlatformAccount from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PlatformAccount from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "accountId": obj.get("accountId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGxhdGZvcm1fcGVlcl90eXBlIGltcG9ydCBQbGF0Zm9ybVBlZXJUeXBlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFBsYXRmb3JtQWNjb3VudChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBQbGF0Zm9ybUFjY291bnQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR5cGU6IFBsYXRmb3JtUGVlclR5cGUKICAgIGFjY291bnRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJhY2NvdW50SWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgImFjY291bnRJZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGxhdGZvcm1BY2NvdW50IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBsYXRmb3JtQWNjb3VudCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAiYWNjb3VudElkIjogb2JqLmdldCgiYWNjb3VudElkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/platform_peer_type.py b/fireblocks/models/platform_peer_type.py index 2ff8861e..45998c1c 100644 --- a/fireblocks/models/platform_peer_type.py +++ b/fireblocks/models/platform_peer_type.py @@ -1,39 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class PlatformPeerType(str, Enum): - """ - PlatformPeerType - """ - - """ - allowed enum values - """ - VAULT_ACCOUNT = 'VAULT_ACCOUNT' - CONNECTED_ACCOUNT = 'CONNECTED_ACCOUNT' - FIAT_ACCOUNT = 'FIAT_ACCOUNT' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of PlatformPeerType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBQbGF0Zm9ybVBlZXJUeXBlKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIFBsYXRmb3JtUGVlclR5cGUKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBWQVVMVF9BQ0NPVU5UID0gJ1ZBVUxUX0FDQ09VTlQnCiAgICBDT05ORUNURURfQUNDT1VOVCA9ICdDT05ORUNURURfQUNDT1VOVCcKICAgIEZJQVRfQUNDT1VOVCA9ICdGSUFUX0FDQ09VTlQnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGxhdGZvcm1QZWVyVHlwZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/players.py b/fireblocks/models/players.py index 86e665c3..71966edc 100644 --- a/fireblocks/models/players.py +++ b/fireblocks/models/players.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class Players(BaseModel): - """ - Players - """ # noqa: E501 - id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field(description="id of the player") - type: StrictStr = Field(description="Type of the player") - __properties: ClassVar[List[str]] = ["id", "type"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['MOBILE', 'CLOUD']): - raise ValueError("must be one of enum values ('MOBILE', 'CLOUD')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of Players from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of Players from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "type": obj.get("type") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFBsYXllcnMoQmFzZU1vZGVsKToKICAgICIiIgogICAgUGxheWVycwogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IEFubm90YXRlZFtzdHIsIEZpZWxkKG1pbl9sZW5ndGg9MzYsIHN0cmljdD1UcnVlLCBtYXhfbGVuZ3RoPTM2KV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iaWQgb2YgdGhlIHBsYXllciIpCiAgICB0eXBlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVHlwZSBvZiB0aGUgcGxheWVyIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAidHlwZSJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigndHlwZScpCiAgICBkZWYgdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydNT0JJTEUnLCAnQ0xPVUQnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnTU9CSUxFJywgJ0NMT1VEJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBsYXllcnMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUGxheWVycyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/policy_and_validation_response.py b/fireblocks/models/policy_and_validation_response.py index 36c250df..18179317 100644 --- a/fireblocks/models/policy_and_validation_response.py +++ b/fireblocks/models/policy_and_validation_response.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List -from fireblocks.models.policy_response import PolicyResponse -from fireblocks.models.policy_validation import PolicyValidation -from typing import Optional, Set -from typing_extensions import Self - -class PolicyAndValidationResponse(BaseModel): - """ - Policy validation - """ # noqa: E501 - policy: PolicyResponse - validation: PolicyValidation - __properties: ClassVar[List[str]] = ["policy", "validation"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PolicyAndValidationResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of policy - if self.policy: - _dict['policy'] = self.policy.to_dict() - # override the default output from pydantic by calling `to_dict()` of validation - if self.validation: - _dict['validation'] = self.validation.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PolicyAndValidationResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "policy": PolicyResponse.from_dict(obj["policy"]) if obj.get("policy") is not None else None, - "validation": PolicyValidation.from_dict(obj["validation"]) if obj.get("validation") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3Jlc3BvbnNlIGltcG9ydCBQb2xpY3lSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV92YWxpZGF0aW9uIGltcG9ydCBQb2xpY3lWYWxpZGF0aW9uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFBvbGljeUFuZFZhbGlkYXRpb25SZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBQb2xpY3kgdmFsaWRhdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgcG9saWN5OiBQb2xpY3lSZXNwb25zZQogICAgdmFsaWRhdGlvbjogUG9saWN5VmFsaWRhdGlvbgogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJwb2xpY3kiLCAidmFsaWRhdGlvbiJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcG9saWN5CiAgICAgICAgaWYgc2VsZi5wb2xpY3k6CiAgICAgICAgICAgIF9kaWN0Wydwb2xpY3knXSA9IHNlbGYucG9saWN5LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiB2YWxpZGF0aW9uCiAgICAgICAgaWYgc2VsZi52YWxpZGF0aW9uOgogICAgICAgICAgICBfZGljdFsndmFsaWRhdGlvbiddID0gc2VsZi52YWxpZGF0aW9uLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInBvbGljeSI6IFBvbGljeVJlc3BvbnNlLmZyb21fZGljdChvYmpbInBvbGljeSJdKSBpZiBvYmouZ2V0KCJwb2xpY3kiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJ2YWxpZGF0aW9uIjogUG9saWN5VmFsaWRhdGlvbi5mcm9tX2RpY3Qob2JqWyJ2YWxpZGF0aW9uIl0pIGlmIG9iai5nZXQoInZhbGlkYXRpb24iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/policy_check_result.py b/fireblocks/models/policy_check_result.py index 2f776a33..b04d6298 100644 --- a/fireblocks/models/policy_check_result.py +++ b/fireblocks/models/policy_check_result.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt -from typing import Any, ClassVar, Dict, List, Union -from fireblocks.models.policy_rule_check_result import PolicyRuleCheckResult -from typing import Optional, Set -from typing_extensions import Self - -class PolicyCheckResult(BaseModel): - """ - Policy rules validation result - """ # noqa: E501 - errors: Union[StrictFloat, StrictInt] = Field(description="Number of errors") - results: List[PolicyRuleCheckResult] = Field(description="A set of validation results") - __properties: ClassVar[List[str]] = ["errors", "results"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PolicyCheckResult from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in results (list) - _items = [] - if self.results: - for _item_results in self.results: - if _item_results: - _items.append(_item_results.to_dict()) - _dict['results'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PolicyCheckResult from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "errors": obj.get("errors"), - "results": [PolicyRuleCheckResult.from_dict(_item) for _item in obj["results"]] if obj.get("results") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfcnVsZV9jaGVja19yZXN1bHQgaW1wb3J0IFBvbGljeVJ1bGVDaGVja1Jlc3VsdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBQb2xpY3lDaGVja1Jlc3VsdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBQb2xpY3kgcnVsZXMgdmFsaWRhdGlvbiByZXN1bHQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGVycm9yczogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iTnVtYmVyIG9mIGVycm9ycyIpCiAgICByZXN1bHRzOiBMaXN0W1BvbGljeVJ1bGVDaGVja1Jlc3VsdF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iQSBzZXQgb2YgdmFsaWRhdGlvbiByZXN1bHRzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZXJyb3JzIiwgInJlc3VsdHMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBvbGljeUNoZWNrUmVzdWx0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIHJlc3VsdHMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLnJlc3VsdHM6CiAgICAgICAgICAgIGZvciBfaXRlbV9yZXN1bHRzIGluIHNlbGYucmVzdWx0czoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX3Jlc3VsdHM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9yZXN1bHRzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ3Jlc3VsdHMnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUG9saWN5Q2hlY2tSZXN1bHQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZXJyb3JzIjogb2JqLmdldCgiZXJyb3JzIiksCiAgICAgICAgICAgICJyZXN1bHRzIjogW1BvbGljeVJ1bGVDaGVja1Jlc3VsdC5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbInJlc3VsdHMiXV0gaWYgb2JqLmdldCgicmVzdWx0cyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/policy_currency.py b/fireblocks/models/policy_currency.py index 038c4678..e62f55d1 100644 --- a/fireblocks/models/policy_currency.py +++ b/fireblocks/models/policy_currency.py @@ -1,39 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class PolicyCurrency(str, Enum): - """ - Currency for the amount - """ - - """ - allowed enum values - """ - NATIVE = 'NATIVE' - USD = 'USD' - EUR = 'EUR' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of PolicyCurrency from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBQb2xpY3lDdXJyZW5jeShzdHIsIEVudW0pOgogICAgIiIiCiAgICBDdXJyZW5jeSBmb3IgdGhlIGFtb3VudAogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIE5BVElWRSA9ICdOQVRJVkUnCiAgICBVU0QgPSAnVVNEJwogICAgRVVSID0gJ0VVUicKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQb2xpY3lDdXJyZW5jeSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/policy_metadata.py b/fireblocks/models/policy_metadata.py index f20288a9..9ab0ec56 100644 --- a/fireblocks/models/policy_metadata.py +++ b/fireblocks/models/policy_metadata.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.policy_type import PolicyType -from typing import Optional, Set -from typing_extensions import Self - -class PolicyMetadata(BaseModel): - """ - Policy metadata - """ # noqa: E501 - edited_by: Optional[StrictStr] = Field(default=None, description="The user ID of the user who last edited the policy", alias="editedBy") - edited_at: Optional[StrictStr] = Field(default=None, description="The timestamp of the last edit of the policy", alias="editedAt") - published_by: Optional[StrictStr] = Field(default=None, description="The user ID of the user who last published the policy", alias="publishedBy") - published_at: Optional[StrictStr] = Field(default=None, description="The timestamp of the last publish of the policy", alias="publishedAt") - policy_type: PolicyType = Field(alias="policyType") - __properties: ClassVar[List[str]] = ["editedBy", "editedAt", "publishedBy", "publishedAt", "policyType"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PolicyMetadata from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PolicyMetadata from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "editedBy": obj.get("editedBy"), - "editedAt": obj.get("editedAt"), - "publishedBy": obj.get("publishedBy"), - "publishedAt": obj.get("publishedAt"), - "policyType": obj.get("policyType") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV90eXBlIGltcG9ydCBQb2xpY3lUeXBlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFBvbGljeU1ldGFkYXRhKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFBvbGljeSBtZXRhZGF0YQogICAgIiIiICMgbm9xYTogRTUwMQogICAgZWRpdGVkX2J5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHVzZXIgSUQgb2YgdGhlIHVzZXIgd2hvIGxhc3QgZWRpdGVkIHRoZSBwb2xpY3kiLCBhbGlhcz0iZWRpdGVkQnkiKQogICAgZWRpdGVkX2F0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHRpbWVzdGFtcCBvZiB0aGUgbGFzdCBlZGl0IG9mIHRoZSBwb2xpY3kiLCBhbGlhcz0iZWRpdGVkQXQiKQogICAgcHVibGlzaGVkX2J5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHVzZXIgSUQgb2YgdGhlIHVzZXIgd2hvIGxhc3QgcHVibGlzaGVkIHRoZSBwb2xpY3kiLCBhbGlhcz0icHVibGlzaGVkQnkiKQogICAgcHVibGlzaGVkX2F0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHRpbWVzdGFtcCBvZiB0aGUgbGFzdCBwdWJsaXNoIG9mIHRoZSBwb2xpY3kiLCBhbGlhcz0icHVibGlzaGVkQXQiKQogICAgcG9saWN5X3R5cGU6IFBvbGljeVR5cGUgPSBGaWVsZChhbGlhcz0icG9saWN5VHlwZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImVkaXRlZEJ5IiwgImVkaXRlZEF0IiwgInB1Ymxpc2hlZEJ5IiwgInB1Ymxpc2hlZEF0IiwgInBvbGljeVR5cGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBvbGljeU1ldGFkYXRhIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBvbGljeU1ldGFkYXRhIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImVkaXRlZEJ5Ijogb2JqLmdldCgiZWRpdGVkQnkiKSwKICAgICAgICAgICAgImVkaXRlZEF0Ijogb2JqLmdldCgiZWRpdGVkQXQiKSwKICAgICAgICAgICAgInB1Ymxpc2hlZEJ5Ijogb2JqLmdldCgicHVibGlzaGVkQnkiKSwKICAgICAgICAgICAgInB1Ymxpc2hlZEF0Ijogb2JqLmdldCgicHVibGlzaGVkQXQiKSwKICAgICAgICAgICAgInBvbGljeVR5cGUiOiBvYmouZ2V0KCJwb2xpY3lUeXBlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/policy_operator.py b/fireblocks/models/policy_operator.py index fe8d047d..4d448a56 100644 --- a/fireblocks/models/policy_operator.py +++ b/fireblocks/models/policy_operator.py @@ -1,37 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class PolicyOperator(str, Enum): - """ - Operator for selection - """ - - """ - allowed enum values - """ - INCLUDES = 'INCLUDES' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of PolicyOperator from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBQb2xpY3lPcGVyYXRvcihzdHIsIEVudW0pOgogICAgIiIiCiAgICBPcGVyYXRvciBmb3Igc2VsZWN0aW9uCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgSU5DTFVERVMgPSAnSU5DTFVERVMnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUG9saWN5T3BlcmF0b3IgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/policy_response.py b/fireblocks/models/policy_response.py index 8bdaf204..85d21cdd 100644 --- a/fireblocks/models/policy_response.py +++ b/fireblocks/models/policy_response.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.policy_metadata import PolicyMetadata -from fireblocks.models.policy_rule import PolicyRule -from typing import Optional, Set -from typing_extensions import Self - -class PolicyResponse(BaseModel): - """ - Response object for policy operations - """ # noqa: E501 - rules: List[PolicyRule] = Field(description="A set of policy rules") - metadata: PolicyMetadata - __properties: ClassVar[List[str]] = ["rules", "metadata"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PolicyResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in rules (list) - _items = [] - if self.rules: - for _item_rules in self.rules: - if _item_rules: - _items.append(_item_rules.to_dict()) - _dict['rules'] = _items - # override the default output from pydantic by calling `to_dict()` of metadata - if self.metadata: - _dict['metadata'] = self.metadata.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PolicyResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "rules": [PolicyRule.from_dict(_item) for _item in obj["rules"]] if obj.get("rules") is not None else None, - "metadata": PolicyMetadata.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9tZXRhZGF0YSBpbXBvcnQgUG9saWN5TWV0YWRhdGEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfcnVsZSBpbXBvcnQgUG9saWN5UnVsZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBQb2xpY3lSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSZXNwb25zZSBvYmplY3QgZm9yIHBvbGljeSBvcGVyYXRpb25zCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBydWxlczogTGlzdFtQb2xpY3lSdWxlXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBIHNldCBvZiBwb2xpY3kgcnVsZXMiKQogICAgbWV0YWRhdGE6IFBvbGljeU1ldGFkYXRhCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInJ1bGVzIiwgIm1ldGFkYXRhIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQb2xpY3lSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBydWxlcyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYucnVsZXM6CiAgICAgICAgICAgIGZvciBfaXRlbV9ydWxlcyBpbiBzZWxmLnJ1bGVzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fcnVsZXM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9ydWxlcy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydydWxlcyddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG1ldGFkYXRhCiAgICAgICAgaWYgc2VsZi5tZXRhZGF0YToKICAgICAgICAgICAgX2RpY3RbJ21ldGFkYXRhJ10gPSBzZWxmLm1ldGFkYXRhLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUG9saWN5UmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicnVsZXMiOiBbUG9saWN5UnVsZS5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbInJ1bGVzIl1dIGlmIG9iai5nZXQoInJ1bGVzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibWV0YWRhdGEiOiBQb2xpY3lNZXRhZGF0YS5mcm9tX2RpY3Qob2JqWyJtZXRhZGF0YSJdKSBpZiBvYmouZ2V0KCJtZXRhZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/policy_rule.py b/fireblocks/models/policy_rule.py index b459d7f8..6836dfc9 100644 --- a/fireblocks/models/policy_rule.py +++ b/fireblocks/models/policy_rule.py @@ -1,212 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.account_config import AccountConfig -from fireblocks.models.amount_config import AmountConfig -from fireblocks.models.amount_over_time_config import AmountOverTimeConfig -from fireblocks.models.amount_range import AmountRange -from fireblocks.models.asset_config import AssetConfig -from fireblocks.models.contract_method_pattern import ContractMethodPattern -from fireblocks.models.d_app_address_config import DAppAddressConfig -from fireblocks.models.derivation_path_config import DerivationPathConfig -from fireblocks.models.destination_config import DestinationConfig -from fireblocks.models.initiator_config_pattern import InitiatorConfigPattern -from fireblocks.models.order_side import OrderSide -from fireblocks.models.policy_type import PolicyType -from fireblocks.models.program_call_config import ProgramCallConfig -from fireblocks.models.screening_metadata_config import ScreeningMetadataConfig -from fireblocks.models.source_config import SourceConfig -from fireblocks.models.verdict_config import VerdictConfig -from typing import Optional, Set -from typing_extensions import Self - -class PolicyRule(BaseModel): - """ - V2 Policy rule which is enforced on transactions - """ # noqa: E501 - name: StrictStr = Field(description="Name of the policy rule") - id: StrictStr = Field(description="Unique identifier for the policy rule") - policy_engine_version: StrictStr = Field(description="Policy engine version", alias="policyEngineVersion") - type: PolicyType - sub_type: Optional[PolicyType] = Field(default=None, alias="subType") - initiator: InitiatorConfigPattern - asset: Optional[AssetConfig] = None - source: SourceConfig - destination: Optional[DestinationConfig] = None - account: Optional[AccountConfig] = None - side: Optional[OrderSide] = None - verdict: VerdictConfig - amount_over_time: Optional[AmountOverTimeConfig] = Field(default=None, alias="amountOverTime") - amount: Optional[AmountConfig] = None - external_descriptor: Optional[StrictStr] = Field(default=None, description="External descriptor for the rule", alias="externalDescriptor") - method: Optional[ContractMethodPattern] = None - is_global_policy: Optional[StrictBool] = Field(default=None, description="Whether this is a global policy", alias="isGlobalPolicy") - program_call: Optional[ProgramCallConfig] = Field(default=None, alias="programCall") - screening_metadata: Optional[ScreeningMetadataConfig] = Field(default=None, alias="screeningMetadata") - quote_asset: Optional[AssetConfig] = Field(default=None, alias="quoteAsset") - base_asset: Optional[AssetConfig] = Field(default=None, alias="baseAsset") - quote_amount: Optional[AmountRange] = Field(default=None, alias="quoteAmount") - base_amount: Optional[AmountRange] = Field(default=None, alias="baseAmount") - d_app_address: Optional[DAppAddressConfig] = Field(default=None, alias="dAppAddress") - derivation_path: Optional[DerivationPathConfig] = Field(default=None, alias="derivationPath") - index: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Index for the policy rule") - __properties: ClassVar[List[str]] = ["name", "id", "policyEngineVersion", "type", "subType", "initiator", "asset", "source", "destination", "account", "side", "verdict", "amountOverTime", "amount", "externalDescriptor", "method", "isGlobalPolicy", "programCall", "screeningMetadata", "quoteAsset", "baseAsset", "quoteAmount", "baseAmount", "dAppAddress", "derivationPath", "index"] - - @field_validator('policy_engine_version') - def policy_engine_version_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['v2']): - raise ValueError("must be one of enum values ('v2')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PolicyRule from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of initiator - if self.initiator: - _dict['initiator'] = self.initiator.to_dict() - # override the default output from pydantic by calling `to_dict()` of asset - if self.asset: - _dict['asset'] = self.asset.to_dict() - # override the default output from pydantic by calling `to_dict()` of source - if self.source: - _dict['source'] = self.source.to_dict() - # override the default output from pydantic by calling `to_dict()` of destination - if self.destination: - _dict['destination'] = self.destination.to_dict() - # override the default output from pydantic by calling `to_dict()` of account - if self.account: - _dict['account'] = self.account.to_dict() - # override the default output from pydantic by calling `to_dict()` of verdict - if self.verdict: - _dict['verdict'] = self.verdict.to_dict() - # override the default output from pydantic by calling `to_dict()` of amount_over_time - if self.amount_over_time: - _dict['amountOverTime'] = self.amount_over_time.to_dict() - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - # override the default output from pydantic by calling `to_dict()` of method - if self.method: - _dict['method'] = self.method.to_dict() - # override the default output from pydantic by calling `to_dict()` of program_call - if self.program_call: - _dict['programCall'] = self.program_call.to_dict() - # override the default output from pydantic by calling `to_dict()` of screening_metadata - if self.screening_metadata: - _dict['screeningMetadata'] = self.screening_metadata.to_dict() - # override the default output from pydantic by calling `to_dict()` of quote_asset - if self.quote_asset: - _dict['quoteAsset'] = self.quote_asset.to_dict() - # override the default output from pydantic by calling `to_dict()` of base_asset - if self.base_asset: - _dict['baseAsset'] = self.base_asset.to_dict() - # override the default output from pydantic by calling `to_dict()` of quote_amount - if self.quote_amount: - _dict['quoteAmount'] = self.quote_amount.to_dict() - # override the default output from pydantic by calling `to_dict()` of base_amount - if self.base_amount: - _dict['baseAmount'] = self.base_amount.to_dict() - # override the default output from pydantic by calling `to_dict()` of d_app_address - if self.d_app_address: - _dict['dAppAddress'] = self.d_app_address.to_dict() - # override the default output from pydantic by calling `to_dict()` of derivation_path - if self.derivation_path: - _dict['derivationPath'] = self.derivation_path.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PolicyRule from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name"), - "id": obj.get("id"), - "policyEngineVersion": obj.get("policyEngineVersion"), - "type": obj.get("type"), - "subType": obj.get("subType"), - "initiator": InitiatorConfigPattern.from_dict(obj["initiator"]) if obj.get("initiator") is not None else None, - "asset": AssetConfig.from_dict(obj["asset"]) if obj.get("asset") is not None else None, - "source": SourceConfig.from_dict(obj["source"]) if obj.get("source") is not None else None, - "destination": DestinationConfig.from_dict(obj["destination"]) if obj.get("destination") is not None else None, - "account": AccountConfig.from_dict(obj["account"]) if obj.get("account") is not None else None, - "side": obj.get("side"), - "verdict": VerdictConfig.from_dict(obj["verdict"]) if obj.get("verdict") is not None else None, - "amountOverTime": AmountOverTimeConfig.from_dict(obj["amountOverTime"]) if obj.get("amountOverTime") is not None else None, - "amount": AmountConfig.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "externalDescriptor": obj.get("externalDescriptor"), - "method": ContractMethodPattern.from_dict(obj["method"]) if obj.get("method") is not None else None, - "isGlobalPolicy": obj.get("isGlobalPolicy"), - "programCall": ProgramCallConfig.from_dict(obj["programCall"]) if obj.get("programCall") is not None else None, - "screeningMetadata": ScreeningMetadataConfig.from_dict(obj["screeningMetadata"]) if obj.get("screeningMetadata") is not None else None, - "quoteAsset": AssetConfig.from_dict(obj["quoteAsset"]) if obj.get("quoteAsset") is not None else None, - "baseAsset": AssetConfig.from_dict(obj["baseAsset"]) if obj.get("baseAsset") is not None else None, - "quoteAmount": AmountRange.from_dict(obj["quoteAmount"]) if obj.get("quoteAmount") is not None else None, - "baseAmount": AmountRange.from_dict(obj["baseAmount"]) if obj.get("baseAmount") is not None else None, - "dAppAddress": DAppAddressConfig.from_dict(obj["dAppAddress"]) if obj.get("dAppAddress") is not None else None, - "derivationPath": DerivationPathConfig.from_dict(obj["derivationPath"]) if obj.get("derivationPath") is not None else None, - "index": obj.get("index") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfY29uZmlnIGltcG9ydCBBY2NvdW50Q29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X2NvbmZpZyBpbXBvcnQgQW1vdW50Q29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X292ZXJfdGltZV9jb25maWcgaW1wb3J0IEFtb3VudE92ZXJUaW1lQ29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X3JhbmdlIGltcG9ydCBBbW91bnRSYW5nZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2NvbmZpZyBpbXBvcnQgQXNzZXRDb25maWcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9tZXRob2RfcGF0dGVybiBpbXBvcnQgQ29udHJhY3RNZXRob2RQYXR0ZXJuCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZF9hcHBfYWRkcmVzc19jb25maWcgaW1wb3J0IERBcHBBZGRyZXNzQ29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVyaXZhdGlvbl9wYXRoX2NvbmZpZyBpbXBvcnQgRGVyaXZhdGlvblBhdGhDb25maWcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZXN0aW5hdGlvbl9jb25maWcgaW1wb3J0IERlc3RpbmF0aW9uQ29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaW5pdGlhdG9yX2NvbmZpZ19wYXR0ZXJuIGltcG9ydCBJbml0aWF0b3JDb25maWdQYXR0ZXJuCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMub3JkZXJfc2lkZSBpbXBvcnQgT3JkZXJTaWRlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3R5cGUgaW1wb3J0IFBvbGljeVR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wcm9ncmFtX2NhbGxfY29uZmlnIGltcG9ydCBQcm9ncmFtQ2FsbENvbmZpZwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19tZXRhZGF0YV9jb25maWcgaW1wb3J0IFNjcmVlbmluZ01ldGFkYXRhQ29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc291cmNlX2NvbmZpZyBpbXBvcnQgU291cmNlQ29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmVyZGljdF9jb25maWcgaW1wb3J0IFZlcmRpY3RDb25maWcKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUG9saWN5UnVsZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBWMiBQb2xpY3kgcnVsZSB3aGljaCBpcyBlbmZvcmNlZCBvbiB0cmFuc2FjdGlvbnMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG5hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJOYW1lIG9mIHRoZSBwb2xpY3kgcnVsZSIpCiAgICBpZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcG9saWN5IHJ1bGUiKQogICAgcG9saWN5X2VuZ2luZV92ZXJzaW9uOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iUG9saWN5IGVuZ2luZSB2ZXJzaW9uIiwgYWxpYXM9InBvbGljeUVuZ2luZVZlcnNpb24iKQogICAgdHlwZTogUG9saWN5VHlwZQogICAgc3ViX3R5cGU6IE9wdGlvbmFsW1BvbGljeVR5cGVdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ic3ViVHlwZSIpCiAgICBpbml0aWF0b3I6IEluaXRpYXRvckNvbmZpZ1BhdHRlcm4KICAgIGFzc2V0OiBPcHRpb25hbFtBc3NldENvbmZpZ10gPSBOb25lCiAgICBzb3VyY2U6IFNvdXJjZUNvbmZpZwogICAgZGVzdGluYXRpb246IE9wdGlvbmFsW0Rlc3RpbmF0aW9uQ29uZmlnXSA9IE5vbmUKICAgIGFjY291bnQ6IE9wdGlvbmFsW0FjY291bnRDb25maWddID0gTm9uZQogICAgc2lkZTogT3B0aW9uYWxbT3JkZXJTaWRlXSA9IE5vbmUKICAgIHZlcmRpY3Q6IFZlcmRpY3RDb25maWcKICAgIGFtb3VudF9vdmVyX3RpbWU6IE9wdGlvbmFsW0Ftb3VudE92ZXJUaW1lQ29uZmlnXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImFtb3VudE92ZXJUaW1lIikKICAgIGFtb3VudDogT3B0aW9uYWxbQW1vdW50Q29uZmlnXSA9IE5vbmUKICAgIGV4dGVybmFsX2Rlc2NyaXB0b3I6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJFeHRlcm5hbCBkZXNjcmlwdG9yIGZvciB0aGUgcnVsZSIsIGFsaWFzPSJleHRlcm5hbERlc2NyaXB0b3IiKQogICAgbWV0aG9kOiBPcHRpb25hbFtDb250cmFjdE1ldGhvZFBhdHRlcm5dID0gTm9uZQogICAgaXNfZ2xvYmFsX3BvbGljeTogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJXaGV0aGVyIHRoaXMgaXMgYSBnbG9iYWwgcG9saWN5IiwgYWxpYXM9ImlzR2xvYmFsUG9saWN5IikKICAgIHByb2dyYW1fY2FsbDogT3B0aW9uYWxbUHJvZ3JhbUNhbGxDb25maWddID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0icHJvZ3JhbUNhbGwiKQogICAgc2NyZWVuaW5nX21ldGFkYXRhOiBPcHRpb25hbFtTY3JlZW5pbmdNZXRhZGF0YUNvbmZpZ10gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJzY3JlZW5pbmdNZXRhZGF0YSIpCiAgICBxdW90ZV9hc3NldDogT3B0aW9uYWxbQXNzZXRDb25maWddID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0icXVvdGVBc3NldCIpCiAgICBiYXNlX2Fzc2V0OiBPcHRpb25hbFtBc3NldENvbmZpZ10gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJiYXNlQXNzZXQiKQogICAgcXVvdGVfYW1vdW50OiBPcHRpb25hbFtBbW91bnRSYW5nZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJxdW90ZUFtb3VudCIpCiAgICBiYXNlX2Ftb3VudDogT3B0aW9uYWxbQW1vdW50UmFuZ2VdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYmFzZUFtb3VudCIpCiAgICBkX2FwcF9hZGRyZXNzOiBPcHRpb25hbFtEQXBwQWRkcmVzc0NvbmZpZ10gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJkQXBwQWRkcmVzcyIpCiAgICBkZXJpdmF0aW9uX3BhdGg6IE9wdGlvbmFsW0Rlcml2YXRpb25QYXRoQ29uZmlnXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImRlcml2YXRpb25QYXRoIikKICAgIGluZGV4OiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJbmRleCBmb3IgdGhlIHBvbGljeSBydWxlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibmFtZSIsICJpZCIsICJwb2xpY3lFbmdpbmVWZXJzaW9uIiwgInR5cGUiLCAic3ViVHlwZSIsICJpbml0aWF0b3IiLCAiYXNzZXQiLCAic291cmNlIiwgImRlc3RpbmF0aW9uIiwgImFjY291bnQiLCAic2lkZSIsICJ2ZXJkaWN0IiwgImFtb3VudE92ZXJUaW1lIiwgImFtb3VudCIsICJleHRlcm5hbERlc2NyaXB0b3IiLCAibWV0aG9kIiwgImlzR2xvYmFsUG9saWN5IiwgInByb2dyYW1DYWxsIiwgInNjcmVlbmluZ01ldGFkYXRhIiwgInF1b3RlQXNzZXQiLCAiYmFzZUFzc2V0IiwgInF1b3RlQW1vdW50IiwgImJhc2VBbW91bnQiLCAiZEFwcEFkZHJlc3MiLCAiZGVyaXZhdGlvblBhdGgiLCAiaW5kZXgiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3BvbGljeV9lbmdpbmVfdmVyc2lvbicpCiAgICBkZWYgcG9saWN5X2VuZ2luZV92ZXJzaW9uX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ3YyJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ3YyJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBvbGljeVJ1bGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBpbml0aWF0b3IKICAgICAgICBpZiBzZWxmLmluaXRpYXRvcjoKICAgICAgICAgICAgX2RpY3RbJ2luaXRpYXRvciddID0gc2VsZi5pbml0aWF0b3IudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFzc2V0CiAgICAgICAgaWYgc2VsZi5hc3NldDoKICAgICAgICAgICAgX2RpY3RbJ2Fzc2V0J10gPSBzZWxmLmFzc2V0LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBzb3VyY2UKICAgICAgICBpZiBzZWxmLnNvdXJjZToKICAgICAgICAgICAgX2RpY3RbJ3NvdXJjZSddID0gc2VsZi5zb3VyY2UudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGRlc3RpbmF0aW9uCiAgICAgICAgaWYgc2VsZi5kZXN0aW5hdGlvbjoKICAgICAgICAgICAgX2RpY3RbJ2Rlc3RpbmF0aW9uJ10gPSBzZWxmLmRlc3RpbmF0aW9uLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhY2NvdW50CiAgICAgICAgaWYgc2VsZi5hY2NvdW50OgogICAgICAgICAgICBfZGljdFsnYWNjb3VudCddID0gc2VsZi5hY2NvdW50LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiB2ZXJkaWN0CiAgICAgICAgaWYgc2VsZi52ZXJkaWN0OgogICAgICAgICAgICBfZGljdFsndmVyZGljdCddID0gc2VsZi52ZXJkaWN0LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhbW91bnRfb3Zlcl90aW1lCiAgICAgICAgaWYgc2VsZi5hbW91bnRfb3Zlcl90aW1lOgogICAgICAgICAgICBfZGljdFsnYW1vdW50T3ZlclRpbWUnXSA9IHNlbGYuYW1vdW50X292ZXJfdGltZS50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYW1vdW50CiAgICAgICAgaWYgc2VsZi5hbW91bnQ6CiAgICAgICAgICAgIF9kaWN0WydhbW91bnQnXSA9IHNlbGYuYW1vdW50LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBtZXRob2QKICAgICAgICBpZiBzZWxmLm1ldGhvZDoKICAgICAgICAgICAgX2RpY3RbJ21ldGhvZCddID0gc2VsZi5tZXRob2QudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHByb2dyYW1fY2FsbAogICAgICAgIGlmIHNlbGYucHJvZ3JhbV9jYWxsOgogICAgICAgICAgICBfZGljdFsncHJvZ3JhbUNhbGwnXSA9IHNlbGYucHJvZ3JhbV9jYWxsLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBzY3JlZW5pbmdfbWV0YWRhdGEKICAgICAgICBpZiBzZWxmLnNjcmVlbmluZ19tZXRhZGF0YToKICAgICAgICAgICAgX2RpY3RbJ3NjcmVlbmluZ01ldGFkYXRhJ10gPSBzZWxmLnNjcmVlbmluZ19tZXRhZGF0YS50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcXVvdGVfYXNzZXQKICAgICAgICBpZiBzZWxmLnF1b3RlX2Fzc2V0OgogICAgICAgICAgICBfZGljdFsncXVvdGVBc3NldCddID0gc2VsZi5xdW90ZV9hc3NldC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYmFzZV9hc3NldAogICAgICAgIGlmIHNlbGYuYmFzZV9hc3NldDoKICAgICAgICAgICAgX2RpY3RbJ2Jhc2VBc3NldCddID0gc2VsZi5iYXNlX2Fzc2V0LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBxdW90ZV9hbW91bnQKICAgICAgICBpZiBzZWxmLnF1b3RlX2Ftb3VudDoKICAgICAgICAgICAgX2RpY3RbJ3F1b3RlQW1vdW50J10gPSBzZWxmLnF1b3RlX2Ftb3VudC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYmFzZV9hbW91bnQKICAgICAgICBpZiBzZWxmLmJhc2VfYW1vdW50OgogICAgICAgICAgICBfZGljdFsnYmFzZUFtb3VudCddID0gc2VsZi5iYXNlX2Ftb3VudC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZF9hcHBfYWRkcmVzcwogICAgICAgIGlmIHNlbGYuZF9hcHBfYWRkcmVzczoKICAgICAgICAgICAgX2RpY3RbJ2RBcHBBZGRyZXNzJ10gPSBzZWxmLmRfYXBwX2FkZHJlc3MudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGRlcml2YXRpb25fcGF0aAogICAgICAgIGlmIHNlbGYuZGVyaXZhdGlvbl9wYXRoOgogICAgICAgICAgICBfZGljdFsnZGVyaXZhdGlvblBhdGgnXSA9IHNlbGYuZGVyaXZhdGlvbl9wYXRoLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUG9saWN5UnVsZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAicG9saWN5RW5naW5lVmVyc2lvbiI6IG9iai5nZXQoInBvbGljeUVuZ2luZVZlcnNpb24iKSwKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIiksCiAgICAgICAgICAgICJzdWJUeXBlIjogb2JqLmdldCgic3ViVHlwZSIpLAogICAgICAgICAgICAiaW5pdGlhdG9yIjogSW5pdGlhdG9yQ29uZmlnUGF0dGVybi5mcm9tX2RpY3Qob2JqWyJpbml0aWF0b3IiXSkgaWYgb2JqLmdldCgiaW5pdGlhdG9yIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiYXNzZXQiOiBBc3NldENvbmZpZy5mcm9tX2RpY3Qob2JqWyJhc3NldCJdKSBpZiBvYmouZ2V0KCJhc3NldCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInNvdXJjZSI6IFNvdXJjZUNvbmZpZy5mcm9tX2RpY3Qob2JqWyJzb3VyY2UiXSkgaWYgb2JqLmdldCgic291cmNlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZGVzdGluYXRpb24iOiBEZXN0aW5hdGlvbkNvbmZpZy5mcm9tX2RpY3Qob2JqWyJkZXN0aW5hdGlvbiJdKSBpZiBvYmouZ2V0KCJkZXN0aW5hdGlvbiIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImFjY291bnQiOiBBY2NvdW50Q29uZmlnLmZyb21fZGljdChvYmpbImFjY291bnQiXSkgaWYgb2JqLmdldCgiYWNjb3VudCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInNpZGUiOiBvYmouZ2V0KCJzaWRlIiksCiAgICAgICAgICAgICJ2ZXJkaWN0IjogVmVyZGljdENvbmZpZy5mcm9tX2RpY3Qob2JqWyJ2ZXJkaWN0Il0pIGlmIG9iai5nZXQoInZlcmRpY3QiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJhbW91bnRPdmVyVGltZSI6IEFtb3VudE92ZXJUaW1lQ29uZmlnLmZyb21fZGljdChvYmpbImFtb3VudE92ZXJUaW1lIl0pIGlmIG9iai5nZXQoImFtb3VudE92ZXJUaW1lIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiYW1vdW50IjogQW1vdW50Q29uZmlnLmZyb21fZGljdChvYmpbImFtb3VudCJdKSBpZiBvYmouZ2V0KCJhbW91bnQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJleHRlcm5hbERlc2NyaXB0b3IiOiBvYmouZ2V0KCJleHRlcm5hbERlc2NyaXB0b3IiKSwKICAgICAgICAgICAgIm1ldGhvZCI6IENvbnRyYWN0TWV0aG9kUGF0dGVybi5mcm9tX2RpY3Qob2JqWyJtZXRob2QiXSkgaWYgb2JqLmdldCgibWV0aG9kIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiaXNHbG9iYWxQb2xpY3kiOiBvYmouZ2V0KCJpc0dsb2JhbFBvbGljeSIpLAogICAgICAgICAgICAicHJvZ3JhbUNhbGwiOiBQcm9ncmFtQ2FsbENvbmZpZy5mcm9tX2RpY3Qob2JqWyJwcm9ncmFtQ2FsbCJdKSBpZiBvYmouZ2V0KCJwcm9ncmFtQ2FsbCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInNjcmVlbmluZ01ldGFkYXRhIjogU2NyZWVuaW5nTWV0YWRhdGFDb25maWcuZnJvbV9kaWN0KG9ialsic2NyZWVuaW5nTWV0YWRhdGEiXSkgaWYgb2JqLmdldCgic2NyZWVuaW5nTWV0YWRhdGEiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJxdW90ZUFzc2V0IjogQXNzZXRDb25maWcuZnJvbV9kaWN0KG9ialsicXVvdGVBc3NldCJdKSBpZiBvYmouZ2V0KCJxdW90ZUFzc2V0IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiYmFzZUFzc2V0IjogQXNzZXRDb25maWcuZnJvbV9kaWN0KG9ialsiYmFzZUFzc2V0Il0pIGlmIG9iai5nZXQoImJhc2VBc3NldCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInF1b3RlQW1vdW50IjogQW1vdW50UmFuZ2UuZnJvbV9kaWN0KG9ialsicXVvdGVBbW91bnQiXSkgaWYgb2JqLmdldCgicXVvdGVBbW91bnQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJiYXNlQW1vdW50IjogQW1vdW50UmFuZ2UuZnJvbV9kaWN0KG9ialsiYmFzZUFtb3VudCJdKSBpZiBvYmouZ2V0KCJiYXNlQW1vdW50IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZEFwcEFkZHJlc3MiOiBEQXBwQWRkcmVzc0NvbmZpZy5mcm9tX2RpY3Qob2JqWyJkQXBwQWRkcmVzcyJdKSBpZiBvYmouZ2V0KCJkQXBwQWRkcmVzcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImRlcml2YXRpb25QYXRoIjogRGVyaXZhdGlvblBhdGhDb25maWcuZnJvbV9kaWN0KG9ialsiZGVyaXZhdGlvblBhdGgiXSkgaWYgb2JqLmdldCgiZGVyaXZhdGlvblBhdGgiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJpbmRleCI6IG9iai5nZXQoImluZGV4IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/policy_rule_check_result.py b/fireblocks/models/policy_rule_check_result.py index ef5c9b00..4a7d124c 100644 --- a/fireblocks/models/policy_rule_check_result.py +++ b/fireblocks/models/policy_rule_check_result.py @@ -1,107 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Union -from fireblocks.models.policy_rule_error import PolicyRuleError -from typing import Optional, Set -from typing_extensions import Self - -class PolicyRuleCheckResult(BaseModel): - """ - The rule validation result - """ # noqa: E501 - index: Union[StrictFloat, StrictInt] = Field(description="Rule index number in the policy") - status: StrictStr = Field(description="Validation status") - errors: List[PolicyRuleError] = Field(description="A set of rule validation error objects") - __properties: ClassVar[List[str]] = ["index", "status", "errors"] - - @field_validator('status') - def status_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['ok', 'failure']): - raise ValueError("must be one of enum values ('ok', 'failure')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PolicyRuleCheckResult from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in errors (list) - _items = [] - if self.errors: - for _item_errors in self.errors: - if _item_errors: - _items.append(_item_errors.to_dict()) - _dict['errors'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PolicyRuleCheckResult from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "index": obj.get("index"), - "status": obj.get("status"), - "errors": [PolicyRuleError.from_dict(_item) for _item in obj["errors"]] if obj.get("errors") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIFVuaW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3J1bGVfZXJyb3IgaW1wb3J0IFBvbGljeVJ1bGVFcnJvcgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBQb2xpY3lSdWxlQ2hlY2tSZXN1bHQoQmFzZU1vZGVsKToKICAgICIiIgogICAgVGhlIHJ1bGUgdmFsaWRhdGlvbiByZXN1bHQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGluZGV4OiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJSdWxlIGluZGV4IG51bWJlciBpbiB0aGUgcG9saWN5IikKICAgIHN0YXR1czogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlZhbGlkYXRpb24gc3RhdHVzIikKICAgIGVycm9yczogTGlzdFtQb2xpY3lSdWxlRXJyb3JdID0gRmllbGQoZGVzY3JpcHRpb249IkEgc2V0IG9mIHJ1bGUgdmFsaWRhdGlvbiBlcnJvciBvYmplY3RzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaW5kZXgiLCAic3RhdHVzIiwgImVycm9ycyJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignc3RhdHVzJykKICAgIGRlZiBzdGF0dXNfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnb2snLCAnZmFpbHVyZSddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdvaycsICdmYWlsdXJlJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBvbGljeVJ1bGVDaGVja1Jlc3VsdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBlcnJvcnMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmVycm9yczoKICAgICAgICAgICAgZm9yIF9pdGVtX2Vycm9ycyBpbiBzZWxmLmVycm9yczoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2Vycm9yczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2Vycm9ycy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydlcnJvcnMnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUG9saWN5UnVsZUNoZWNrUmVzdWx0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImluZGV4Ijogb2JqLmdldCgiaW5kZXgiKSwKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAiZXJyb3JzIjogW1BvbGljeVJ1bGVFcnJvci5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImVycm9ycyJdXSBpZiBvYmouZ2V0KCJlcnJvcnMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/policy_rule_error.py b/fireblocks/models/policy_rule_error.py index f2f72b79..a97874e8 100644 --- a/fireblocks/models/policy_rule_error.py +++ b/fireblocks/models/policy_rule_error.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class PolicyRuleError(BaseModel): - """ - Rule validation result error - """ # noqa: E501 - error_message: StrictStr = Field(description="Error message", alias="errorMessage") - error_code: Union[StrictFloat, StrictInt] = Field(description="error code", alias="errorCode") - error_code_name: StrictStr = Field(description="error code name", alias="errorCodeName") - error_field: StrictStr = Field(description="The field which the error relates to * operator - transaction initiator * operators - transaction initiators * authorizationGroups - transaction authorizer groups * designatedSigner - transaction signer * designatedSigners - transaction signers * contractMethods - contract methods * amountAggregation - transaction amount aggregation configuration * src - transaction source asset configuration * dst - transaction destination asset configuration ", alias="errorField") - __properties: ClassVar[List[str]] = ["errorMessage", "errorCode", "errorCodeName", "errorField"] - - @field_validator('error_field') - def error_field_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['operator', 'operators', 'authorizationGroups', 'designatedSigner', 'designatedSigners', 'contractMethods', 'amountAggregation', 'src', 'dst']): - raise ValueError("must be one of enum values ('operator', 'operators', 'authorizationGroups', 'designatedSigner', 'designatedSigners', 'contractMethods', 'amountAggregation', 'src', 'dst')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PolicyRuleError from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PolicyRuleError from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "errorMessage": obj.get("errorMessage"), - "errorCode": obj.get("errorCode"), - "errorCodeName": obj.get("errorCodeName"), - "errorField": obj.get("errorField") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIFVuaW9uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFBvbGljeVJ1bGVFcnJvcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSdWxlIHZhbGlkYXRpb24gcmVzdWx0IGVycm9yCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBlcnJvcl9tZXNzYWdlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iRXJyb3IgbWVzc2FnZSIsIGFsaWFzPSJlcnJvck1lc3NhZ2UiKQogICAgZXJyb3JfY29kZTogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iZXJyb3IgY29kZSIsIGFsaWFzPSJlcnJvckNvZGUiKQogICAgZXJyb3JfY29kZV9uYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iZXJyb3IgY29kZSBuYW1lIiwgYWxpYXM9ImVycm9yQ29kZU5hbWUiKQogICAgZXJyb3JfZmllbGQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZmllbGQgd2hpY2ggdGhlIGVycm9yIHJlbGF0ZXMgdG8gKiBvcGVyYXRvciAtIHRyYW5zYWN0aW9uIGluaXRpYXRvciAqIG9wZXJhdG9ycyAtIHRyYW5zYWN0aW9uIGluaXRpYXRvcnMgKiBhdXRob3JpemF0aW9uR3JvdXBzIC0gdHJhbnNhY3Rpb24gYXV0aG9yaXplciBncm91cHMgKiBkZXNpZ25hdGVkU2lnbmVyIC0gdHJhbnNhY3Rpb24gc2lnbmVyICogZGVzaWduYXRlZFNpZ25lcnMgLSB0cmFuc2FjdGlvbiBzaWduZXJzICogY29udHJhY3RNZXRob2RzIC0gY29udHJhY3QgbWV0aG9kcyAqIGFtb3VudEFnZ3JlZ2F0aW9uIC0gdHJhbnNhY3Rpb24gYW1vdW50IGFnZ3JlZ2F0aW9uIGNvbmZpZ3VyYXRpb24gKiBzcmMgLSB0cmFuc2FjdGlvbiBzb3VyY2UgYXNzZXQgY29uZmlndXJhdGlvbiAqIGRzdCAtIHRyYW5zYWN0aW9uIGRlc3RpbmF0aW9uIGFzc2V0IGNvbmZpZ3VyYXRpb24gIiwgYWxpYXM9ImVycm9yRmllbGQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJlcnJvck1lc3NhZ2UiLCAiZXJyb3JDb2RlIiwgImVycm9yQ29kZU5hbWUiLCAiZXJyb3JGaWVsZCJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignZXJyb3JfZmllbGQnKQogICAgZGVmIGVycm9yX2ZpZWxkX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ29wZXJhdG9yJywgJ29wZXJhdG9ycycsICdhdXRob3JpemF0aW9uR3JvdXBzJywgJ2Rlc2lnbmF0ZWRTaWduZXInLCAnZGVzaWduYXRlZFNpZ25lcnMnLCAnY29udHJhY3RNZXRob2RzJywgJ2Ftb3VudEFnZ3JlZ2F0aW9uJywgJ3NyYycsICdkc3QnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnb3BlcmF0b3InLCAnb3BlcmF0b3JzJywgJ2F1dGhvcml6YXRpb25Hcm91cHMnLCAnZGVzaWduYXRlZFNpZ25lcicsICdkZXNpZ25hdGVkU2lnbmVycycsICdjb250cmFjdE1ldGhvZHMnLCAnYW1vdW50QWdncmVnYXRpb24nLCAnc3JjJywgJ2RzdCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQb2xpY3lSdWxlRXJyb3IgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUG9saWN5UnVsZUVycm9yIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImVycm9yTWVzc2FnZSI6IG9iai5nZXQoImVycm9yTWVzc2FnZSIpLAogICAgICAgICAgICAiZXJyb3JDb2RlIjogb2JqLmdldCgiZXJyb3JDb2RlIiksCiAgICAgICAgICAgICJlcnJvckNvZGVOYW1lIjogb2JqLmdldCgiZXJyb3JDb2RlTmFtZSIpLAogICAgICAgICAgICAiZXJyb3JGaWVsZCI6IG9iai5nZXQoImVycm9yRmllbGQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/policy_status.py b/fireblocks/models/policy_status.py index b7d9524e..eb92a874 100644 --- a/fireblocks/models/policy_status.py +++ b/fireblocks/models/policy_status.py @@ -1,43 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class PolicyStatus(str, Enum): - """ - * SUCCESS - success * UNVALIDATED - not validated yet * INVALID_CONFIGURATION - at least one rule is invalid * PENDING - pending approval * PENDING_CONSOLE_APPROVAL - pending approval from the console app * AWAITING_QUORUM - pending quorum approval * UNHANDLED_ERROR - unhandled error - """ - - """ - allowed enum values - """ - SUCCESS = 'SUCCESS' - UNVALIDATED = 'UNVALIDATED' - INVALID_CONFIGURATION = 'INVALID_CONFIGURATION' - PENDING = 'PENDING' - PENDING_CONSOLE_APPROVAL = 'PENDING_CONSOLE_APPROVAL' - AWAITING_QUORUM = 'AWAITING_QUORUM' - UNHANDLED_ERROR = 'UNHANDLED_ERROR' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of PolicyStatus from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBQb2xpY3lTdGF0dXMoc3RyLCBFbnVtKToKICAgICIiIgogICAgKiBTVUNDRVNTIC0gc3VjY2VzcyAqIFVOVkFMSURBVEVEIC0gbm90IHZhbGlkYXRlZCB5ZXQgKiBJTlZBTElEX0NPTkZJR1VSQVRJT04gLSBhdCBsZWFzdCBvbmUgcnVsZSBpcyBpbnZhbGlkICogUEVORElORyAtIHBlbmRpbmcgYXBwcm92YWwgKiBQRU5ESU5HX0NPTlNPTEVfQVBQUk9WQUwgLSBwZW5kaW5nIGFwcHJvdmFsIGZyb20gdGhlIGNvbnNvbGUgYXBwICogQVdBSVRJTkdfUVVPUlVNIC0gcGVuZGluZyBxdW9ydW0gYXBwcm92YWwgKiBVTkhBTkRMRURfRVJST1IgLSB1bmhhbmRsZWQgZXJyb3IgCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgU1VDQ0VTUyA9ICdTVUNDRVNTJwogICAgVU5WQUxJREFURUQgPSAnVU5WQUxJREFURUQnCiAgICBJTlZBTElEX0NPTkZJR1VSQVRJT04gPSAnSU5WQUxJRF9DT05GSUdVUkFUSU9OJwogICAgUEVORElORyA9ICdQRU5ESU5HJwogICAgUEVORElOR19DT05TT0xFX0FQUFJPVkFMID0gJ1BFTkRJTkdfQ09OU09MRV9BUFBST1ZBTCcKICAgIEFXQUlUSU5HX1FVT1JVTSA9ICdBV0FJVElOR19RVU9SVU0nCiAgICBVTkhBTkRMRURfRVJST1IgPSAnVU5IQU5ETEVEX0VSUk9SJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBvbGljeVN0YXR1cyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/policy_tag.py b/fireblocks/models/policy_tag.py index ff8dbfa1..60c5c19b 100644 --- a/fireblocks/models/policy_tag.py +++ b/fireblocks/models/policy_tag.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class PolicyTag(BaseModel): - """ - Policy tag for matching - """ # noqa: E501 - id: StrictStr = Field(description="Tag identifier") - __properties: ClassVar[List[str]] = ["id"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PolicyTag from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PolicyTag from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFBvbGljeVRhZyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBQb2xpY3kgdGFnIGZvciBtYXRjaGluZwogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUYWcgaWRlbnRpZmllciIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQb2xpY3lUYWcgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUG9saWN5VGFnIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/policy_type.py b/fireblocks/models/policy_type.py index 2dd45487..637083d3 100644 --- a/fireblocks/models/policy_type.py +++ b/fireblocks/models/policy_type.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class PolicyType(str, Enum): - """ - Policy type enumeration - """ - - """ - allowed enum values - """ - TRANSFER = 'TRANSFER' - STAKE = 'STAKE' - CONTRACT_CALL = 'CONTRACT_CALL' - TYPED_MESSAGE = 'TYPED_MESSAGE' - APPROVE = 'APPROVE' - MINT = 'MINT' - BURN = 'BURN' - RAW = 'RAW' - COMPLIANCE = 'COMPLIANCE' - DEPLOYMENT = 'DEPLOYMENT' - PROGRAM_CALL = 'PROGRAM_CALL' - DAPP_CONNECTION = 'DAPP_CONNECTION' - UPGRADE = 'UPGRADE' - ORDER = 'ORDER' - AML_CHAINALYSIS_V2_SCREENING = 'AML_CHAINALYSIS_V2_SCREENING' - AML_CHAINALYSIS_V2_POST_SCREENING = 'AML_CHAINALYSIS_V2_POST_SCREENING' - AML_ELLIPTIC_HOLISTIC_SCREENING = 'AML_ELLIPTIC_HOLISTIC_SCREENING' - AML_ELLIPTIC_HOLISTIC_POST_SCREENING = 'AML_ELLIPTIC_HOLISTIC_POST_SCREENING' - TR_NOTABENE_SCREENING = 'TR_NOTABENE_SCREENING' - TR_NOTABENE_POST_SCREENING = 'TR_NOTABENE_POST_SCREENING' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of PolicyType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBQb2xpY3lUeXBlKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIFBvbGljeSB0eXBlIGVudW1lcmF0aW9uCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgVFJBTlNGRVIgPSAnVFJBTlNGRVInCiAgICBTVEFLRSA9ICdTVEFLRScKICAgIENPTlRSQUNUX0NBTEwgPSAnQ09OVFJBQ1RfQ0FMTCcKICAgIFRZUEVEX01FU1NBR0UgPSAnVFlQRURfTUVTU0FHRScKICAgIEFQUFJPVkUgPSAnQVBQUk9WRScKICAgIE1JTlQgPSAnTUlOVCcKICAgIEJVUk4gPSAnQlVSTicKICAgIFJBVyA9ICdSQVcnCiAgICBDT01QTElBTkNFID0gJ0NPTVBMSUFOQ0UnCiAgICBERVBMT1lNRU5UID0gJ0RFUExPWU1FTlQnCiAgICBQUk9HUkFNX0NBTEwgPSAnUFJPR1JBTV9DQUxMJwogICAgREFQUF9DT05ORUNUSU9OID0gJ0RBUFBfQ09OTkVDVElPTicKICAgIFVQR1JBREUgPSAnVVBHUkFERScKICAgIE9SREVSID0gJ09SREVSJwogICAgQU1MX0NIQUlOQUxZU0lTX1YyX1NDUkVFTklORyA9ICdBTUxfQ0hBSU5BTFlTSVNfVjJfU0NSRUVOSU5HJwogICAgQU1MX0NIQUlOQUxZU0lTX1YyX1BPU1RfU0NSRUVOSU5HID0gJ0FNTF9DSEFJTkFMWVNJU19WMl9QT1NUX1NDUkVFTklORycKICAgIEFNTF9FTExJUFRJQ19IT0xJU1RJQ19TQ1JFRU5JTkcgPSAnQU1MX0VMTElQVElDX0hPTElTVElDX1NDUkVFTklORycKICAgIEFNTF9FTExJUFRJQ19IT0xJU1RJQ19QT1NUX1NDUkVFTklORyA9ICdBTUxfRUxMSVBUSUNfSE9MSVNUSUNfUE9TVF9TQ1JFRU5JTkcnCiAgICBUUl9OT1RBQkVORV9TQ1JFRU5JTkcgPSAnVFJfTk9UQUJFTkVfU0NSRUVOSU5HJwogICAgVFJfTk9UQUJFTkVfUE9TVF9TQ1JFRU5JTkcgPSAnVFJfTk9UQUJFTkVfUE9TVF9TQ1JFRU5JTkcnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUG9saWN5VHlwZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/policy_validation.py b/fireblocks/models/policy_validation.py index 5a1b8b23..18886dd3 100644 --- a/fireblocks/models/policy_validation.py +++ b/fireblocks/models/policy_validation.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.policy_check_result import PolicyCheckResult -from typing import Optional, Set -from typing_extensions import Self - -class PolicyValidation(BaseModel): - """ - Policy validation object - """ # noqa: E501 - status: StrictStr = Field(description="Validation status") - check_result: PolicyCheckResult = Field(alias="checkResult") - __properties: ClassVar[List[str]] = ["status", "checkResult"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PolicyValidation from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of check_result - if self.check_result: - _dict['checkResult'] = self.check_result.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PolicyValidation from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "status": obj.get("status"), - "checkResult": PolicyCheckResult.from_dict(obj["checkResult"]) if obj.get("checkResult") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X2NoZWNrX3Jlc3VsdCBpbXBvcnQgUG9saWN5Q2hlY2tSZXN1bHQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUG9saWN5VmFsaWRhdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBQb2xpY3kgdmFsaWRhdGlvbiBvYmplY3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHN0YXR1czogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlZhbGlkYXRpb24gc3RhdHVzIikKICAgIGNoZWNrX3Jlc3VsdDogUG9saWN5Q2hlY2tSZXN1bHQgPSBGaWVsZChhbGlhcz0iY2hlY2tSZXN1bHQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzdGF0dXMiLCAiY2hlY2tSZXN1bHQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBvbGljeVZhbGlkYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBjaGVja19yZXN1bHQKICAgICAgICBpZiBzZWxmLmNoZWNrX3Jlc3VsdDoKICAgICAgICAgICAgX2RpY3RbJ2NoZWNrUmVzdWx0J10gPSBzZWxmLmNoZWNrX3Jlc3VsdC50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBvbGljeVZhbGlkYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3RhdHVzIjogb2JqLmdldCgic3RhdHVzIiksCiAgICAgICAgICAgICJjaGVja1Jlc3VsdCI6IFBvbGljeUNoZWNrUmVzdWx0LmZyb21fZGljdChvYmpbImNoZWNrUmVzdWx0Il0pIGlmIG9iai5nZXQoImNoZWNrUmVzdWx0IikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/policy_verdict_action_enum.py b/fireblocks/models/policy_verdict_action_enum.py index 3e50f543..c383942e 100644 --- a/fireblocks/models/policy_verdict_action_enum.py +++ b/fireblocks/models/policy_verdict_action_enum.py @@ -1,46 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class PolicyVerdictActionEnum(str, Enum): - """ - Policy verdict action - """ - - """ - allowed enum values - """ - ALLOW = 'ALLOW' - BLOCK = 'BLOCK' - ENUM_2_MINUS_TIER = '2-TIER' - SCREEN = 'SCREEN' - ACCEPT = 'ACCEPT' - REJECT = 'REJECT' - ALERT = 'ALERT' - WAIT = 'WAIT' - FREEZE = 'FREEZE' - CANCEL = 'CANCEL' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of PolicyVerdictActionEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBQb2xpY3lWZXJkaWN0QWN0aW9uRW51bShzdHIsIEVudW0pOgogICAgIiIiCiAgICBQb2xpY3kgdmVyZGljdCBhY3Rpb24KICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBBTExPVyA9ICdBTExPVycKICAgIEJMT0NLID0gJ0JMT0NLJwogICAgRU5VTV8yX01JTlVTX1RJRVIgPSAnMi1USUVSJwogICAgU0NSRUVOID0gJ1NDUkVFTicKICAgIEFDQ0VQVCA9ICdBQ0NFUFQnCiAgICBSRUpFQ1QgPSAnUkVKRUNUJwogICAgQUxFUlQgPSAnQUxFUlQnCiAgICBXQUlUID0gJ1dBSVQnCiAgICBGUkVFWkUgPSAnRlJFRVpFJwogICAgQ0FOQ0VMID0gJ0NBTkNFTCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQb2xpY3lWZXJkaWN0QWN0aW9uRW51bSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/policy_verdict_action_enum2.py b/fireblocks/models/policy_verdict_action_enum2.py index ce4084ee..488d1274 100644 --- a/fireblocks/models/policy_verdict_action_enum2.py +++ b/fireblocks/models/policy_verdict_action_enum2.py @@ -1,45 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class PolicyVerdictActionEnum2(str, Enum): - """ - Policy verdict action - """ - - """ - allowed enum values - """ - ALLOW = 'ALLOW' - BLOCK = 'BLOCK' - SCREEN = 'SCREEN' - ACCEPT = 'ACCEPT' - REJECT = 'REJECT' - ALERT = 'ALERT' - WAIT = 'WAIT' - FREEZE = 'FREEZE' - CANCEL = 'CANCEL' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of PolicyVerdictActionEnum2 from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBQb2xpY3lWZXJkaWN0QWN0aW9uRW51bTIoc3RyLCBFbnVtKToKICAgICIiIgogICAgUG9saWN5IHZlcmRpY3QgYWN0aW9uCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgQUxMT1cgPSAnQUxMT1cnCiAgICBCTE9DSyA9ICdCTE9DSycKICAgIFNDUkVFTiA9ICdTQ1JFRU4nCiAgICBBQ0NFUFQgPSAnQUNDRVBUJwogICAgUkVKRUNUID0gJ1JFSkVDVCcKICAgIEFMRVJUID0gJ0FMRVJUJwogICAgV0FJVCA9ICdXQUlUJwogICAgRlJFRVpFID0gJ0ZSRUVaRScKICAgIENBTkNFTCA9ICdDQU5DRUwnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUG9saWN5VmVyZGljdEFjdGlvbkVudW0yIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/position.py b/fireblocks/models/position.py new file mode 100644 index 00000000..2d485e7f --- /dev/null +++ b/fireblocks/models/position.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVsZWdhdGlvbl9ibG9ja2NoYWluX3Bvc2l0aW9uX2luZm8gaW1wb3J0IERlbGVnYXRpb25CbG9ja2NoYWluUG9zaXRpb25JbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3Rha2luZ19wcm92aWRlciBpbXBvcnQgU3Rha2luZ1Byb3ZpZGVyCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFBvc2l0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFBvc2l0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgc3Rha2luZyBwb3NpdGlvbiIpCiAgICB2YXVsdF9hY2NvdW50X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHNvdXJjZSB2YXVsdCBhY2NvdW50IHRvIHN0YWtlIGZyb20iLCBhbGlhcz0idmF1bHRBY2NvdW50SWQiKQogICAgdmFsaWRhdG9yX25hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGVzdGluYXRpb24gdmFsaWRhdG9yIGFkZHJlc3MgbmFtZSIsIGFsaWFzPSJ2YWxpZGF0b3JOYW1lIikKICAgIHByb3ZpZGVyX25hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGVzdGluYXRpb24gdmFsaWRhdG9yIHByb3ZpZGVyIG5hbWUiLCBhbGlhcz0icHJvdmlkZXJOYW1lIikKICAgIGNoYWluX2Rlc2NyaXB0b3I6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgcHJvdG9jb2wgaWRlbnRpZmllciAoZS5nLiBcIkVUSFwiLyBcIlNPTFwiKSB0byB1c2UiLCBhbGlhcz0iY2hhaW5EZXNjcmlwdG9yIikKICAgIGFtb3VudDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRvdGFsIHZhbHVlIG9mIHRoZSBzdGFraW5nIHBvc2l0aW9uLiBGb3IgU29sYW5hLCBMaWRvIGFuZCBFdGhlcmV1bSAoY29tcG91bmRpbmcgdmFsaWRhdG9yKTogaW5jbHVkZXMgdGhlIG9yaWdpbmFsIHN0YWtlIHBsdXMgYWNjdW11bGF0ZWQgcmV3YXJkcy4gRm9yIE1BVElDLCBDb3Ntb3MgYW5kIEV0aGVyZXVtIChsZWdhY3kgdmFsaWRhdG9yKTogcmVmZXJzIHRvIHRoZSBhbW91bnQgY3VycmVudGx5IHN0YWtlZC4iKQogICAgcmV3YXJkc19hbW91bnQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYW1vdW50IHN0YWtlZCBpbiB0aGUgcG9zaXRpb24sIG1lYXN1cmVkIGluIHRoZSBzdGFrZWQgYXNzZXQgdW5pdC4iLCBhbGlhcz0icmV3YXJkc0Ftb3VudCIpCiAgICBkYXRlX2NyZWF0ZWQ6IGRhdGV0aW1lID0gRmllbGQoZGVzY3JpcHRpb249IldoZW4gd2FzIHRoZSByZXF1ZXN0IG1hZGUgKElTTyBEYXRlKS4iLCBhbGlhcz0iZGF0ZUNyZWF0ZWQiKQogICAgZGF0ZV91cGRhdGVkOiBkYXRldGltZSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJXaGVuIGhhcyB0aGUgcG9zaXRpb24gbGFzdCBjaGFuZ2VkIChJU08gRGF0ZSkuIiwgYWxpYXM9ImRhdGVVcGRhdGVkIikKICAgIHN0YXR1czogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBjdXJyZW50IHN0YXR1cy4iKQogICAgdmFsaWRhdG9yX2FkZHJlc3M6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGVzdGluYXRpb24gYWRkcmVzcyBvZiB0aGUgc3Rha2luZyB0cmFuc2FjdGlvbi4iLCBhbGlhcz0idmFsaWRhdG9yQWRkcmVzcyIpCiAgICBwcm92aWRlcl9pZDogU3Rha2luZ1Byb3ZpZGVyID0gRmllbGQoYWxpYXM9InByb3ZpZGVySWQiKQogICAgYXZhaWxhYmxlX2FjdGlvbnM6IExpc3RbU3RyaWN0U3RyXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBbiBhcnJheSBvZiBhdmFpbGFibGUgYWN0aW9ucyB0aGF0IGNhbiBiZSBwZXJmb3JtZWQuIGZvciBleGFtcGxlLCBhY3Rpb25zIGxpa2UgXCJVTlNUQUtFXCIgb3IgXCJXSVRIRFJBV1wiLiIsIGFsaWFzPSJhdmFpbGFibGVBY3Rpb25zIikKICAgIGluX3Byb2dyZXNzOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IkluZGljYXRlcyB3aGV0aGVyIHRoZXJlIGlzIGFuIG9uZ29pbmcgYWN0aW9uIGZvciB0aGlzIHBvc2l0aW9uIHJlbGF0ZWQgdG8gdGhpcyByZXF1ZXN0IiwgYWxpYXM9ImluUHJvZ3Jlc3MiKQogICAgaW5fcHJvZ3Jlc3NfdHhfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgdHJhbnNhY3Rpb24gSUQgb2YgdGhlIGluaXRpYWwgc3Rha2UgcG9zaXRpb24gcmVxdWVzdCBvbmx5LiBPbmx5IHByZXNlbnQgd2hlbiB0aGVyZSBpcyBhbiBhY3RpdmUgaW5pdGlhbCBzdGFrZSB0cmFuc2FjdGlvbi4iLCBhbGlhcz0iaW5Qcm9ncmVzc1R4SWQiKQogICAgYmxvY2tjaGFpbl9wb3NpdGlvbl9pbmZvOiBEZWxlZ2F0aW9uQmxvY2tjaGFpblBvc2l0aW9uSW5mbyA9IEZpZWxkKGFsaWFzPSJibG9ja2NoYWluUG9zaXRpb25JbmZvIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAidmF1bHRBY2NvdW50SWQiLCAidmFsaWRhdG9yTmFtZSIsICJwcm92aWRlck5hbWUiLCAiY2hhaW5EZXNjcmlwdG9yIiwgImFtb3VudCIsICJyZXdhcmRzQW1vdW50IiwgImRhdGVDcmVhdGVkIiwgImRhdGVVcGRhdGVkIiwgInN0YXR1cyIsICJ2YWxpZGF0b3JBZGRyZXNzIiwgInByb3ZpZGVySWQiLCAiYXZhaWxhYmxlQWN0aW9ucyIsICJpblByb2dyZXNzIiwgImluUHJvZ3Jlc3NUeElkIiwgImJsb2NrY2hhaW5Qb3NpdGlvbkluZm8iXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3N0YXR1cycpCiAgICBkZWYgc3RhdHVzX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0NSRUFUSU5HJywgJ1BFTkRJTkcnLCAnQUNUSVZBVElORycsICdBQ1RJVkUnLCAnREVBQ1RJVkFUSU5HJywgJ0RFQUNUSVZBVEVEJywgJ1dJVEhEUkFXSU5HJywgJ1dJVEhEUkFXTicsICdNRVJHRUQnLCAnQ09OU09MSURBVEVEJywgJ0NBTkNFTEVEJywgJ0ZBSUxFRCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdDUkVBVElORycsICdQRU5ESU5HJywgJ0FDVElWQVRJTkcnLCAnQUNUSVZFJywgJ0RFQUNUSVZBVElORycsICdERUFDVElWQVRFRCcsICdXSVRIRFJBV0lORycsICdXSVRIRFJBV04nLCAnTUVSR0VEJywgJ0NPTlNPTElEQVRFRCcsICdDQU5DRUxFRCcsICdGQUlMRUQnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYXZhaWxhYmxlX2FjdGlvbnMnKQogICAgZGVmIGF2YWlsYWJsZV9hY3Rpb25zX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgZm9yIGkgaW4gdmFsdWU6CiAgICAgICAgICAgIGlmIGkgbm90IGluIHNldChbJ1VOU1RBS0UnLCAnV0lUSERSQVcnLCAnQUREX1RPX1NUQUtFJywgJ1NQTElUJywgJ01FUkdFJywgJ0NMQUlNX1JFV0FSRFMnLCAnQ09OU09MSURBVEUnXSk6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJlYWNoIGxpc3QgaXRlbSBtdXN0IGJlIG9uZSBvZiAoJ1VOU1RBS0UnLCAnV0lUSERSQVcnLCAnQUREX1RPX1NUQUtFJywgJ1NQTElUJywgJ01FUkdFJywgJ0NMQUlNX1JFV0FSRFMnLCAnQ09OU09MSURBVEUnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUG9zaXRpb24gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBibG9ja2NoYWluX3Bvc2l0aW9uX2luZm8KICAgICAgICBpZiBzZWxmLmJsb2NrY2hhaW5fcG9zaXRpb25faW5mbzoKICAgICAgICAgICAgX2RpY3RbJ2Jsb2NrY2hhaW5Qb3NpdGlvbkluZm8nXSA9IHNlbGYuYmxvY2tjaGFpbl9wb3NpdGlvbl9pbmZvLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUG9zaXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAidmF1bHRBY2NvdW50SWQiOiBvYmouZ2V0KCJ2YXVsdEFjY291bnRJZCIpLAogICAgICAgICAgICAidmFsaWRhdG9yTmFtZSI6IG9iai5nZXQoInZhbGlkYXRvck5hbWUiKSwKICAgICAgICAgICAgInByb3ZpZGVyTmFtZSI6IG9iai5nZXQoInByb3ZpZGVyTmFtZSIpLAogICAgICAgICAgICAiY2hhaW5EZXNjcmlwdG9yIjogb2JqLmdldCgiY2hhaW5EZXNjcmlwdG9yIiksCiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKSwKICAgICAgICAgICAgInJld2FyZHNBbW91bnQiOiBvYmouZ2V0KCJyZXdhcmRzQW1vdW50IiksCiAgICAgICAgICAgICJkYXRlQ3JlYXRlZCI6IG9iai5nZXQoImRhdGVDcmVhdGVkIiksCiAgICAgICAgICAgICJkYXRlVXBkYXRlZCI6IG9iai5nZXQoImRhdGVVcGRhdGVkIiksCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgInZhbGlkYXRvckFkZHJlc3MiOiBvYmouZ2V0KCJ2YWxpZGF0b3JBZGRyZXNzIiksCiAgICAgICAgICAgICJwcm92aWRlcklkIjogb2JqLmdldCgicHJvdmlkZXJJZCIpLAogICAgICAgICAgICAiYXZhaWxhYmxlQWN0aW9ucyI6IG9iai5nZXQoImF2YWlsYWJsZUFjdGlvbnMiKSwKICAgICAgICAgICAgImluUHJvZ3Jlc3MiOiBvYmouZ2V0KCJpblByb2dyZXNzIiksCiAgICAgICAgICAgICJpblByb2dyZXNzVHhJZCI6IG9iai5nZXQoImluUHJvZ3Jlc3NUeElkIiksCiAgICAgICAgICAgICJibG9ja2NoYWluUG9zaXRpb25JbmZvIjogRGVsZWdhdGlvbkJsb2NrY2hhaW5Qb3NpdGlvbkluZm8uZnJvbV9kaWN0KG9ialsiYmxvY2tjaGFpblBvc2l0aW9uSW5mbyJdKSBpZiBvYmouZ2V0KCJibG9ja2NoYWluUG9zaXRpb25JbmZvIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/postal_address.py b/fireblocks/models/postal_address.py index 20e25d3d..f04c8595 100644 --- a/fireblocks/models/postal_address.py +++ b/fireblocks/models/postal_address.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class PostalAddress(BaseModel): - """ - PostalAddress - """ # noqa: E501 - street_name: StrictStr = Field(alias="streetName") - building_number: StrictStr = Field(alias="buildingNumber") - postal_code: StrictStr = Field(alias="postalCode") - city: StrictStr - subdivision: StrictStr - district: StrictStr - country: StrictStr - __properties: ClassVar[List[str]] = ["streetName", "buildingNumber", "postalCode", "city", "subdivision", "district", "country"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PostalAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PostalAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "streetName": obj.get("streetName"), - "buildingNumber": obj.get("buildingNumber"), - "postalCode": obj.get("postalCode"), - "city": obj.get("city"), - "subdivision": obj.get("subdivision"), - "district": obj.get("district"), - "country": obj.get("country") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFBvc3RhbEFkZHJlc3MoQmFzZU1vZGVsKToKICAgICIiIgogICAgUG9zdGFsQWRkcmVzcwogICAgIiIiICMgbm9xYTogRTUwMQogICAgc3RyZWV0X25hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJzdHJlZXROYW1lIikKICAgIGJ1aWxkaW5nX251bWJlcjogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9ImJ1aWxkaW5nTnVtYmVyIikKICAgIHBvc3RhbF9jb2RlOiBTdHJpY3RTdHIgPSBGaWVsZChhbGlhcz0icG9zdGFsQ29kZSIpCiAgICBjaXR5OiBTdHJpY3RTdHIKICAgIHN1YmRpdmlzaW9uOiBTdHJpY3RTdHIKICAgIGRpc3RyaWN0OiBTdHJpY3RTdHIKICAgIGNvdW50cnk6IFN0cmljdFN0cgogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzdHJlZXROYW1lIiwgImJ1aWxkaW5nTnVtYmVyIiwgInBvc3RhbENvZGUiLCAiY2l0eSIsICJzdWJkaXZpc2lvbiIsICJkaXN0cmljdCIsICJjb3VudHJ5Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQb3N0YWxBZGRyZXNzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFBvc3RhbEFkZHJlc3MgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3RyZWV0TmFtZSI6IG9iai5nZXQoInN0cmVldE5hbWUiKSwKICAgICAgICAgICAgImJ1aWxkaW5nTnVtYmVyIjogb2JqLmdldCgiYnVpbGRpbmdOdW1iZXIiKSwKICAgICAgICAgICAgInBvc3RhbENvZGUiOiBvYmouZ2V0KCJwb3N0YWxDb2RlIiksCiAgICAgICAgICAgICJjaXR5Ijogb2JqLmdldCgiY2l0eSIpLAogICAgICAgICAgICAic3ViZGl2aXNpb24iOiBvYmouZ2V0KCJzdWJkaXZpc2lvbiIpLAogICAgICAgICAgICAiZGlzdHJpY3QiOiBvYmouZ2V0KCJkaXN0cmljdCIpLAogICAgICAgICAgICAiY291bnRyeSI6IG9iai5nZXQoImNvdW50cnkiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/pre_screening.py b/fireblocks/models/pre_screening.py index 47aa1e92..42a12f05 100644 --- a/fireblocks/models/pre_screening.py +++ b/fireblocks/models/pre_screening.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictBool -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class PreScreening(BaseModel): - """ - PreScreening - """ # noqa: E501 - enabled: StrictBool - __properties: ClassVar[List[str]] = ["enabled"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PreScreening from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PreScreening from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "enabled": obj.get("enabled") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RCb29sCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFByZVNjcmVlbmluZyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBQcmVTY3JlZW5pbmcKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGVuYWJsZWQ6IFN0cmljdEJvb2wKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZW5hYmxlZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUHJlU2NyZWVuaW5nIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFByZVNjcmVlbmluZyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJlbmFibGVkIjogb2JqLmdldCgiZW5hYmxlZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/prefunded_settlement.py b/fireblocks/models/prefunded_settlement.py index c73dac0d..2bdc66b0 100644 --- a/fireblocks/models/prefunded_settlement.py +++ b/fireblocks/models/prefunded_settlement.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.account_reference import AccountReference -from fireblocks.models.prefunded_settlement_type import PrefundedSettlementType -from typing import Optional, Set -from typing_extensions import Self - -class PrefundedSettlement(BaseModel): - """ - PrefundedSettlement - """ # noqa: E501 - type: PrefundedSettlementType - destination_account: AccountReference = Field(alias="destinationAccount") - __properties: ClassVar[List[str]] = ["type", "destinationAccount"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PrefundedSettlement from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of destination_account - if self.destination_account: - _dict['destinationAccount'] = self.destination_account.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PrefundedSettlement from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "destinationAccount": AccountReference.from_dict(obj["destinationAccount"]) if obj.get("destinationAccount") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfcmVmZXJlbmNlIGltcG9ydCBBY2NvdW50UmVmZXJlbmNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucHJlZnVuZGVkX3NldHRsZW1lbnRfdHlwZSBpbXBvcnQgUHJlZnVuZGVkU2V0dGxlbWVudFR5cGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUHJlZnVuZGVkU2V0dGxlbWVudChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBQcmVmdW5kZWRTZXR0bGVtZW50CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBQcmVmdW5kZWRTZXR0bGVtZW50VHlwZQogICAgZGVzdGluYXRpb25fYWNjb3VudDogQWNjb3VudFJlZmVyZW5jZSA9IEZpZWxkKGFsaWFzPSJkZXN0aW5hdGlvbkFjY291bnQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgImRlc3RpbmF0aW9uQWNjb3VudCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUHJlZnVuZGVkU2V0dGxlbWVudCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGRlc3RpbmF0aW9uX2FjY291bnQKICAgICAgICBpZiBzZWxmLmRlc3RpbmF0aW9uX2FjY291bnQ6CiAgICAgICAgICAgIF9kaWN0WydkZXN0aW5hdGlvbkFjY291bnQnXSA9IHNlbGYuZGVzdGluYXRpb25fYWNjb3VudC50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFByZWZ1bmRlZFNldHRsZW1lbnQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImRlc3RpbmF0aW9uQWNjb3VudCI6IEFjY291bnRSZWZlcmVuY2UuZnJvbV9kaWN0KG9ialsiZGVzdGluYXRpb25BY2NvdW50Il0pIGlmIG9iai5nZXQoImRlc3RpbmF0aW9uQWNjb3VudCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/prefunded_settlement_type.py b/fireblocks/models/prefunded_settlement_type.py index 41209b4c..13260bb5 100644 --- a/fireblocks/models/prefunded_settlement_type.py +++ b/fireblocks/models/prefunded_settlement_type.py @@ -1,37 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class PrefundedSettlementType(str, Enum): - """ - PrefundedSettlementType - """ - - """ - allowed enum values - """ - PREFUNDED = 'PREFUNDED' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of PrefundedSettlementType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBQcmVmdW5kZWRTZXR0bGVtZW50VHlwZShzdHIsIEVudW0pOgogICAgIiIiCiAgICBQcmVmdW5kZWRTZXR0bGVtZW50VHlwZQogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIFBSRUZVTkRFRCA9ICdQUkVGVU5ERUQnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUHJlZnVuZGVkU2V0dGxlbWVudFR5cGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/program_call_config.py b/fireblocks/models/program_call_config.py index c3f5aff5..3082b83c 100644 --- a/fireblocks/models/program_call_config.py +++ b/fireblocks/models/program_call_config.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class ProgramCallConfig(BaseModel): - """ - Program call configuration - """ # noqa: E501 - allowed_solana_program_calls: StrictStr = Field(description="Whether Solana program calls are allowed", alias="allowedSolanaProgramCalls") - __properties: ClassVar[List[str]] = ["allowedSolanaProgramCalls"] - - @field_validator('allowed_solana_program_calls') - def allowed_solana_program_calls_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['*', 'WHITELISTED']): - raise ValueError("must be one of enum values ('*', 'WHITELISTED')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ProgramCallConfig from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ProgramCallConfig from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "allowedSolanaProgramCalls": obj.get("allowedSolanaProgramCalls") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUHJvZ3JhbUNhbGxDb25maWcoQmFzZU1vZGVsKToKICAgICIiIgogICAgUHJvZ3JhbSBjYWxsIGNvbmZpZ3VyYXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFsbG93ZWRfc29sYW5hX3Byb2dyYW1fY2FsbHM6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJXaGV0aGVyIFNvbGFuYSBwcm9ncmFtIGNhbGxzIGFyZSBhbGxvd2VkIiwgYWxpYXM9ImFsbG93ZWRTb2xhbmFQcm9ncmFtQ2FsbHMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhbGxvd2VkU29sYW5hUHJvZ3JhbUNhbGxzIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhbGxvd2VkX3NvbGFuYV9wcm9ncmFtX2NhbGxzJykKICAgIGRlZiBhbGxvd2VkX3NvbGFuYV9wcm9ncmFtX2NhbGxzX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJyonLCAnV0hJVEVMSVNURUQnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnKicsICdXSElURUxJU1RFRCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQcm9ncmFtQ2FsbENvbmZpZyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQcm9ncmFtQ2FsbENvbmZpZyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhbGxvd2VkU29sYW5hUHJvZ3JhbUNhbGxzIjogb2JqLmdldCgiYWxsb3dlZFNvbGFuYVByb2dyYW1DYWxscyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/provider.py b/fireblocks/models/provider.py index c495dba0..74e36c8f 100644 --- a/fireblocks/models/provider.py +++ b/fireblocks/models/provider.py @@ -1,110 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.validator import Validator -from typing import Optional, Set -from typing_extensions import Self - -class Provider(BaseModel): - """ - Provider - """ # noqa: E501 - id: StrictStr = Field(description="The ID of the provider") - provider_name: StrictStr = Field(description="Name of the provider", alias="providerName") - validators: List[Validator] = Field(description="An array of objects that includes chain descriptors and the corresponding fee percentages for validators supported by the provider") - icon_url: Optional[StrictStr] = Field(default=None, description="URL to the validator's icon", alias="iconUrl") - terms_of_service_url: Optional[StrictStr] = Field(default=None, description="URL to the terms of service", alias="termsOfServiceUrl") - is_terms_of_service_approved: StrictBool = Field(description="Indicates whether the terms of service are approved", alias="isTermsOfServiceApproved") - is_private: Optional[StrictBool] = Field(default=None, description="Is the provider private, i.e created by the user", alias="isPrivate") - is_liquid_staking: StrictBool = Field(description="Is the provider a liquid staking provider", alias="isLiquidStaking") - __properties: ClassVar[List[str]] = ["id", "providerName", "validators", "iconUrl", "termsOfServiceUrl", "isTermsOfServiceApproved", "isPrivate", "isLiquidStaking"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of Provider from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in validators (list) - _items = [] - if self.validators: - for _item_validators in self.validators: - if _item_validators: - _items.append(_item_validators.to_dict()) - _dict['validators'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of Provider from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "providerName": obj.get("providerName"), - "validators": [Validator.from_dict(_item) for _item in obj["validators"]] if obj.get("validators") is not None else None, - "iconUrl": obj.get("iconUrl"), - "termsOfServiceUrl": obj.get("termsOfServiceUrl"), - "isTermsOfServiceApproved": obj.get("isTermsOfServiceApproved"), - "isPrivate": obj.get("isPrivate"), - "isLiquidStaking": obj.get("isLiquidStaking") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhbGlkYXRvciBpbXBvcnQgVmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFByb3ZpZGVyKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFByb3ZpZGVyCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgcHJvdmlkZXIiKQogICAgcHJvdmlkZXJfbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249Ik5hbWUgb2YgdGhlIHByb3ZpZGVyIiwgYWxpYXM9InByb3ZpZGVyTmFtZSIpCiAgICB2YWxpZGF0b3JzOiBMaXN0W1ZhbGlkYXRvcl0gPSBGaWVsZChkZXNjcmlwdGlvbj0iQW4gYXJyYXkgb2Ygb2JqZWN0cyB0aGF0IGluY2x1ZGVzIGNoYWluIGRlc2NyaXB0b3JzIGFuZCB0aGUgY29ycmVzcG9uZGluZyBmZWUgcGVyY2VudGFnZXMgZm9yIHZhbGlkYXRvcnMgc3VwcG9ydGVkIGJ5IHRoZSBwcm92aWRlciIpCiAgICBpY29uX3VybDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlVSTCB0byB0aGUgdmFsaWRhdG9yJ3MgaWNvbiIsIGFsaWFzPSJpY29uVXJsIikKICAgIHRlcm1zX29mX3NlcnZpY2VfdXJsOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVVJMIHRvIHRoZSB0ZXJtcyBvZiBzZXJ2aWNlIiwgYWxpYXM9InRlcm1zT2ZTZXJ2aWNlVXJsIikKICAgIGlzX3Rlcm1zX29mX3NlcnZpY2VfYXBwcm92ZWQ6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRlcm1zIG9mIHNlcnZpY2UgYXJlIGFwcHJvdmVkIiwgYWxpYXM9ImlzVGVybXNPZlNlcnZpY2VBcHByb3ZlZCIpCiAgICBpc19wcml2YXRlOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IklzIHRoZSBwcm92aWRlciBwcml2YXRlLCBpLmUgY3JlYXRlZCBieSB0aGUgdXNlciIsIGFsaWFzPSJpc1ByaXZhdGUiKQogICAgaXNfbGlxdWlkX3N0YWtpbmc6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iSXMgdGhlIHByb3ZpZGVyIGEgbGlxdWlkIHN0YWtpbmcgcHJvdmlkZXIiLCBhbGlhcz0iaXNMaXF1aWRTdGFraW5nIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAicHJvdmlkZXJOYW1lIiwgInZhbGlkYXRvcnMiLCAiaWNvblVybCIsICJ0ZXJtc09mU2VydmljZVVybCIsICJpc1Rlcm1zT2ZTZXJ2aWNlQXBwcm92ZWQiLCAiaXNQcml2YXRlIiwgImlzTGlxdWlkU3Rha2luZyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUHJvdmlkZXIgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gdmFsaWRhdG9ycyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYudmFsaWRhdG9yczoKICAgICAgICAgICAgZm9yIF9pdGVtX3ZhbGlkYXRvcnMgaW4gc2VsZi52YWxpZGF0b3JzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fdmFsaWRhdG9yczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX3ZhbGlkYXRvcnMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsndmFsaWRhdG9ycyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQcm92aWRlciBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJwcm92aWRlck5hbWUiOiBvYmouZ2V0KCJwcm92aWRlck5hbWUiKSwKICAgICAgICAgICAgInZhbGlkYXRvcnMiOiBbVmFsaWRhdG9yLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsidmFsaWRhdG9ycyJdXSBpZiBvYmouZ2V0KCJ2YWxpZGF0b3JzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiaWNvblVybCI6IG9iai5nZXQoImljb25VcmwiKSwKICAgICAgICAgICAgInRlcm1zT2ZTZXJ2aWNlVXJsIjogb2JqLmdldCgidGVybXNPZlNlcnZpY2VVcmwiKSwKICAgICAgICAgICAgImlzVGVybXNPZlNlcnZpY2VBcHByb3ZlZCI6IG9iai5nZXQoImlzVGVybXNPZlNlcnZpY2VBcHByb3ZlZCIpLAogICAgICAgICAgICAiaXNQcml2YXRlIjogb2JqLmdldCgiaXNQcml2YXRlIiksCiAgICAgICAgICAgICJpc0xpcXVpZFN0YWtpbmciOiBvYmouZ2V0KCJpc0xpcXVpZFN0YWtpbmciKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/providers_list_response.py b/fireblocks/models/providers_list_response.py index 0f7db398..2308d5d1 100644 --- a/fireblocks/models/providers_list_response.py +++ b/fireblocks/models/providers_list_response.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.trading_provider import TradingProvider -from typing import Optional, Set -from typing_extensions import Self - -class ProvidersListResponse(BaseModel): - """ - ProvidersListResponse - """ # noqa: E501 - data: List[TradingProvider] = Field(description="List of available providers") - total: StrictInt = Field(description="Total number of providers matching the query.") - next: Optional[StrictStr] = Field(default=None, description="A cursor for the next page of results, if available.") - __properties: ClassVar[List[str]] = ["data", "total", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ProvidersListResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ProvidersListResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [TradingProvider.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "total": obj.get("total"), - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhZGluZ19wcm92aWRlciBpbXBvcnQgVHJhZGluZ1Byb3ZpZGVyCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFByb3ZpZGVyc0xpc3RSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBQcm92aWRlcnNMaXN0UmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGRhdGE6IExpc3RbVHJhZGluZ1Byb3ZpZGVyXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJMaXN0IG9mIGF2YWlsYWJsZSBwcm92aWRlcnMiKQogICAgdG90YWw6IFN0cmljdEludCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUb3RhbCBudW1iZXIgb2YgcHJvdmlkZXJzIG1hdGNoaW5nIHRoZSBxdWVyeS4iKQogICAgbmV4dDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkEgY3Vyc29yIGZvciB0aGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMsIGlmIGF2YWlsYWJsZS4iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJkYXRhIiwgInRvdGFsIiwgIm5leHQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFByb3ZpZGVyc0xpc3RSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBkYXRhIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5kYXRhOgogICAgICAgICAgICBmb3IgX2l0ZW1fZGF0YSBpbiBzZWxmLmRhdGE6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9kYXRhOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fZGF0YS50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydkYXRhJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFByb3ZpZGVyc0xpc3RSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkYXRhIjogW1RyYWRpbmdQcm92aWRlci5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImRhdGEiXV0gaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInRvdGFsIjogb2JqLmdldCgidG90YWwiKSwKICAgICAgICAgICAgIm5leHQiOiBvYmouZ2V0KCJuZXh0IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/public_key_information.py b/fireblocks/models/public_key_information.py index bdff2230..0fc4764c 100644 --- a/fireblocks/models/public_key_information.py +++ b/fireblocks/models/public_key_information.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class PublicKeyInformation(BaseModel): - """ - PublicKeyInformation - """ # noqa: E501 - algorithm: Optional[StrictStr] = Field(default=None, description="Elliptic Curve") - derivation_path: Optional[List[StrictInt]] = Field(default=None, description="BIP44 derivation path", alias="derivationPath") - public_key: Optional[StrictStr] = Field(default=None, description="Compressed/Uncompressed public key value in hex representation", alias="publicKey") - __properties: ClassVar[List[str]] = ["algorithm", "derivationPath", "publicKey"] - - @field_validator('algorithm') - def algorithm_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['MPC_ECDSA_SECP256K1', 'MPC_ECDSA_SECP256R1', 'MPC_EDDSA_ED25519']): - raise ValueError("must be one of enum values ('MPC_ECDSA_SECP256K1', 'MPC_ECDSA_SECP256R1', 'MPC_EDDSA_ED25519')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PublicKeyInformation from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PublicKeyInformation from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "algorithm": obj.get("algorithm"), - "derivationPath": obj.get("derivationPath"), - "publicKey": obj.get("publicKey") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUHVibGljS2V5SW5mb3JtYXRpb24oQmFzZU1vZGVsKToKICAgICIiIgogICAgUHVibGljS2V5SW5mb3JtYXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFsZ29yaXRobTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkVsbGlwdGljIEN1cnZlIikKICAgIGRlcml2YXRpb25fcGF0aDogT3B0aW9uYWxbTGlzdFtTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkJJUDQ0IGRlcml2YXRpb24gcGF0aCIsIGFsaWFzPSJkZXJpdmF0aW9uUGF0aCIpCiAgICBwdWJsaWNfa2V5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ29tcHJlc3NlZC9VbmNvbXByZXNzZWQgcHVibGljIGtleSB2YWx1ZSBpbiBoZXggcmVwcmVzZW50YXRpb24iLCBhbGlhcz0icHVibGljS2V5IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYWxnb3JpdGhtIiwgImRlcml2YXRpb25QYXRoIiwgInB1YmxpY0tleSJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWxnb3JpdGhtJykKICAgIGRlZiBhbGdvcml0aG1fdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gdmFsdWUKCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ01QQ19FQ0RTQV9TRUNQMjU2SzEnLCAnTVBDX0VDRFNBX1NFQ1AyNTZSMScsICdNUENfRUREU0FfRUQyNTUxOSddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdNUENfRUNEU0FfU0VDUDI1NksxJywgJ01QQ19FQ0RTQV9TRUNQMjU2UjEnLCAnTVBDX0VERFNBX0VEMjU1MTknKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUHVibGljS2V5SW5mb3JtYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUHVibGljS2V5SW5mb3JtYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYWxnb3JpdGhtIjogb2JqLmdldCgiYWxnb3JpdGhtIiksCiAgICAgICAgICAgICJkZXJpdmF0aW9uUGF0aCI6IG9iai5nZXQoImRlcml2YXRpb25QYXRoIiksCiAgICAgICAgICAgICJwdWJsaWNLZXkiOiBvYmouZ2V0KCJwdWJsaWNLZXkiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/publish_draft_request.py b/fireblocks/models/publish_draft_request.py index 60893c1a..4f1697b9 100644 --- a/fireblocks/models/publish_draft_request.py +++ b/fireblocks/models/publish_draft_request.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.policy_type import PolicyType -from typing import Optional, Set -from typing_extensions import Self - -class PublishDraftRequest(BaseModel): - """ - Request schema for publishing draft with policy types and draft ID - """ # noqa: E501 - policy_types: List[PolicyType] = Field(alias="policyTypes") - draft_id: StrictStr = Field(description="The ID of the draft to publish", alias="draftId") - __properties: ClassVar[List[str]] = ["policyTypes", "draftId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PublishDraftRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PublishDraftRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "policyTypes": obj.get("policyTypes"), - "draftId": obj.get("draftId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3R5cGUgaW1wb3J0IFBvbGljeVR5cGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUHVibGlzaERyYWZ0UmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSZXF1ZXN0IHNjaGVtYSBmb3IgcHVibGlzaGluZyBkcmFmdCB3aXRoIHBvbGljeSB0eXBlcyBhbmQgZHJhZnQgSUQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHBvbGljeV90eXBlczogTGlzdFtQb2xpY3lUeXBlXSA9IEZpZWxkKGFsaWFzPSJwb2xpY3lUeXBlcyIpCiAgICBkcmFmdF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgZHJhZnQgdG8gcHVibGlzaCIsIGFsaWFzPSJkcmFmdElkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicG9saWN5VHlwZXMiLCAiZHJhZnRJZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUHVibGlzaERyYWZ0UmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQdWJsaXNoRHJhZnRSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInBvbGljeVR5cGVzIjogb2JqLmdldCgicG9saWN5VHlwZXMiKSwKICAgICAgICAgICAgImRyYWZ0SWQiOiBvYmouZ2V0KCJkcmFmdElkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/publish_result.py b/fireblocks/models/publish_result.py index 78ff439b..4e3dc676 100644 --- a/fireblocks/models/publish_result.py +++ b/fireblocks/models/publish_result.py @@ -1,111 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.policy_check_result import PolicyCheckResult -from fireblocks.models.policy_metadata import PolicyMetadata -from fireblocks.models.policy_rule import PolicyRule -from fireblocks.models.policy_status import PolicyStatus -from typing import Optional, Set -from typing_extensions import Self - -class PublishResult(BaseModel): - """ - Response object of the publish policy operation - """ # noqa: E501 - status: PolicyStatus - rules: List[PolicyRule] - check_result: PolicyCheckResult = Field(alias="checkResult") - metadata: PolicyMetadata - __properties: ClassVar[List[str]] = ["status", "rules", "checkResult", "metadata"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of PublishResult from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in rules (list) - _items = [] - if self.rules: - for _item_rules in self.rules: - if _item_rules: - _items.append(_item_rules.to_dict()) - _dict['rules'] = _items - # override the default output from pydantic by calling `to_dict()` of check_result - if self.check_result: - _dict['checkResult'] = self.check_result.to_dict() - # override the default output from pydantic by calling `to_dict()` of metadata - if self.metadata: - _dict['metadata'] = self.metadata.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of PublishResult from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "status": obj.get("status"), - "rules": [PolicyRule.from_dict(_item) for _item in obj["rules"]] if obj.get("rules") is not None else None, - "checkResult": PolicyCheckResult.from_dict(obj["checkResult"]) if obj.get("checkResult") is not None else None, - "metadata": PolicyMetadata.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9jaGVja19yZXN1bHQgaW1wb3J0IFBvbGljeUNoZWNrUmVzdWx0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X21ldGFkYXRhIGltcG9ydCBQb2xpY3lNZXRhZGF0YQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9ydWxlIGltcG9ydCBQb2xpY3lSdWxlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3N0YXR1cyBpbXBvcnQgUG9saWN5U3RhdHVzCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFB1Ymxpc2hSZXN1bHQoQmFzZU1vZGVsKToKICAgICIiIgogICAgUmVzcG9uc2Ugb2JqZWN0IG9mIHRoZSBwdWJsaXNoIHBvbGljeSBvcGVyYXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHN0YXR1czogUG9saWN5U3RhdHVzCiAgICBydWxlczogTGlzdFtQb2xpY3lSdWxlXQogICAgY2hlY2tfcmVzdWx0OiBQb2xpY3lDaGVja1Jlc3VsdCA9IEZpZWxkKGFsaWFzPSJjaGVja1Jlc3VsdCIpCiAgICBtZXRhZGF0YTogUG9saWN5TWV0YWRhdGEKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3RhdHVzIiwgInJ1bGVzIiwgImNoZWNrUmVzdWx0IiwgIm1ldGFkYXRhIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBQdWJsaXNoUmVzdWx0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIHJ1bGVzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5ydWxlczoKICAgICAgICAgICAgZm9yIF9pdGVtX3J1bGVzIGluIHNlbGYucnVsZXM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9ydWxlczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX3J1bGVzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ3J1bGVzJ10gPSBfaXRlbXMKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgY2hlY2tfcmVzdWx0CiAgICAgICAgaWYgc2VsZi5jaGVja19yZXN1bHQ6CiAgICAgICAgICAgIF9kaWN0WydjaGVja1Jlc3VsdCddID0gc2VsZi5jaGVja19yZXN1bHQudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG1ldGFkYXRhCiAgICAgICAgaWYgc2VsZi5tZXRhZGF0YToKICAgICAgICAgICAgX2RpY3RbJ21ldGFkYXRhJ10gPSBzZWxmLm1ldGFkYXRhLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUHVibGlzaFJlc3VsdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgInJ1bGVzIjogW1BvbGljeVJ1bGUuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJydWxlcyJdXSBpZiBvYmouZ2V0KCJydWxlcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImNoZWNrUmVzdWx0IjogUG9saWN5Q2hlY2tSZXN1bHQuZnJvbV9kaWN0KG9ialsiY2hlY2tSZXN1bHQiXSkgaWYgb2JqLmdldCgiY2hlY2tSZXN1bHQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJtZXRhZGF0YSI6IFBvbGljeU1ldGFkYXRhLmZyb21fZGljdChvYmpbIm1ldGFkYXRhIl0pIGlmIG9iai5nZXQoIm1ldGFkYXRhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/quote.py b/fireblocks/models/quote.py index 32094464..8495ba65 100644 --- a/fireblocks/models/quote.py +++ b/fireblocks/models/quote.py @@ -1,134 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.access_type import AccessType -from fireblocks.models.fee import Fee -from fireblocks.models.indicative_quote_enum import IndicativeQuoteEnum -from fireblocks.models.quote_execution_step import QuoteExecutionStep -from fireblocks.models.side import Side -from typing import Optional, Set -from typing_extensions import Self - -class Quote(BaseModel): - """ - Quote - """ # noqa: E501 - via: AccessType - id: StrictStr - quote_asset_id: StrictStr = Field(alias="quoteAssetId") - base_asset_id: StrictStr = Field(alias="baseAssetId") - base_amount: StrictStr = Field(alias="baseAmount") - quote_amount: StrictStr = Field(alias="quoteAmount") - price_impact: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="priceImpact") - quote_min_amount: Optional[StrictStr] = Field(default=None, alias="quoteMinAmount") - execution_steps: Optional[List[QuoteExecutionStep]] = Field(default=None, alias="executionSteps") - general_fees: Optional[List[Fee]] = Field(default=None, alias="generalFees") - side: Side - expires_at: StrictStr = Field(description="The expiration time of the quote in ISO format.", alias="expiresAt") - type: IndicativeQuoteEnum - __properties: ClassVar[List[str]] = ["via", "id", "quoteAssetId", "baseAssetId", "baseAmount", "quoteAmount", "priceImpact", "quoteMinAmount", "executionSteps", "generalFees", "side", "expiresAt", "type"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of Quote from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of via - if self.via: - _dict['via'] = self.via.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in execution_steps (list) - _items = [] - if self.execution_steps: - for _item_execution_steps in self.execution_steps: - if _item_execution_steps: - _items.append(_item_execution_steps.to_dict()) - _dict['executionSteps'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in general_fees (list) - _items = [] - if self.general_fees: - for _item_general_fees in self.general_fees: - if _item_general_fees: - _items.append(_item_general_fees.to_dict()) - _dict['generalFees'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of Quote from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "via": AccessType.from_dict(obj["via"]) if obj.get("via") is not None else None, - "id": obj.get("id"), - "quoteAssetId": obj.get("quoteAssetId"), - "baseAssetId": obj.get("baseAssetId"), - "baseAmount": obj.get("baseAmount"), - "quoteAmount": obj.get("quoteAmount"), - "priceImpact": obj.get("priceImpact"), - "quoteMinAmount": obj.get("quoteMinAmount"), - "executionSteps": [QuoteExecutionStep.from_dict(_item) for _item in obj["executionSteps"]] if obj.get("executionSteps") is not None else None, - "generalFees": [Fee.from_dict(_item) for _item in obj["generalFees"]] if obj.get("generalFees") is not None else None, - "side": obj.get("side"), - "expiresAt": obj.get("expiresAt"), - "type": obj.get("type") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2Nlc3NfdHlwZSBpbXBvcnQgQWNjZXNzVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZSBpbXBvcnQgRmVlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaW5kaWNhdGl2ZV9xdW90ZV9lbnVtIGltcG9ydCBJbmRpY2F0aXZlUXVvdGVFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucXVvdGVfZXhlY3V0aW9uX3N0ZXAgaW1wb3J0IFF1b3RlRXhlY3V0aW9uU3RlcApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNpZGUgaW1wb3J0IFNpZGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUXVvdGUoQmFzZU1vZGVsKToKICAgICIiIgogICAgUXVvdGUKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHZpYTogQWNjZXNzVHlwZQogICAgaWQ6IFN0cmljdFN0cgogICAgcXVvdGVfYXNzZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJxdW90ZUFzc2V0SWQiKQogICAgYmFzZV9hc3NldF9pZDogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9ImJhc2VBc3NldElkIikKICAgIGJhc2VfYW1vdW50OiBTdHJpY3RTdHIgPSBGaWVsZChhbGlhcz0iYmFzZUFtb3VudCIpCiAgICBxdW90ZV9hbW91bnQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJxdW90ZUFtb3VudCIpCiAgICBwcmljZV9pbXBhY3Q6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InByaWNlSW1wYWN0IikKICAgIHF1b3RlX21pbl9hbW91bnQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJxdW90ZU1pbkFtb3VudCIpCiAgICBleGVjdXRpb25fc3RlcHM6IE9wdGlvbmFsW0xpc3RbUXVvdGVFeGVjdXRpb25TdGVwXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJleGVjdXRpb25TdGVwcyIpCiAgICBnZW5lcmFsX2ZlZXM6IE9wdGlvbmFsW0xpc3RbRmVlXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJnZW5lcmFsRmVlcyIpCiAgICBzaWRlOiBTaWRlCiAgICBleHBpcmVzX2F0OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGV4cGlyYXRpb24gdGltZSBvZiB0aGUgcXVvdGUgaW4gSVNPIGZvcm1hdC4iLCBhbGlhcz0iZXhwaXJlc0F0IikKICAgIHR5cGU6IEluZGljYXRpdmVRdW90ZUVudW0KICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidmlhIiwgImlkIiwgInF1b3RlQXNzZXRJZCIsICJiYXNlQXNzZXRJZCIsICJiYXNlQW1vdW50IiwgInF1b3RlQW1vdW50IiwgInByaWNlSW1wYWN0IiwgInF1b3RlTWluQW1vdW50IiwgImV4ZWN1dGlvblN0ZXBzIiwgImdlbmVyYWxGZWVzIiwgInNpZGUiLCAiZXhwaXJlc0F0IiwgInR5cGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFF1b3RlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgdmlhCiAgICAgICAgaWYgc2VsZi52aWE6CiAgICAgICAgICAgIF9kaWN0Wyd2aWEnXSA9IHNlbGYudmlhLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZXhlY3V0aW9uX3N0ZXBzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5leGVjdXRpb25fc3RlcHM6CiAgICAgICAgICAgIGZvciBfaXRlbV9leGVjdXRpb25fc3RlcHMgaW4gc2VsZi5leGVjdXRpb25fc3RlcHM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9leGVjdXRpb25fc3RlcHM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9leGVjdXRpb25fc3RlcHMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZXhlY3V0aW9uU3RlcHMnXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZ2VuZXJhbF9mZWVzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5nZW5lcmFsX2ZlZXM6CiAgICAgICAgICAgIGZvciBfaXRlbV9nZW5lcmFsX2ZlZXMgaW4gc2VsZi5nZW5lcmFsX2ZlZXM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9nZW5lcmFsX2ZlZXM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9nZW5lcmFsX2ZlZXMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZ2VuZXJhbEZlZXMnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUXVvdGUgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidmlhIjogQWNjZXNzVHlwZS5mcm9tX2RpY3Qob2JqWyJ2aWEiXSkgaWYgb2JqLmdldCgidmlhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAicXVvdGVBc3NldElkIjogb2JqLmdldCgicXVvdGVBc3NldElkIiksCiAgICAgICAgICAgICJiYXNlQXNzZXRJZCI6IG9iai5nZXQoImJhc2VBc3NldElkIiksCiAgICAgICAgICAgICJiYXNlQW1vdW50Ijogb2JqLmdldCgiYmFzZUFtb3VudCIpLAogICAgICAgICAgICAicXVvdGVBbW91bnQiOiBvYmouZ2V0KCJxdW90ZUFtb3VudCIpLAogICAgICAgICAgICAicHJpY2VJbXBhY3QiOiBvYmouZ2V0KCJwcmljZUltcGFjdCIpLAogICAgICAgICAgICAicXVvdGVNaW5BbW91bnQiOiBvYmouZ2V0KCJxdW90ZU1pbkFtb3VudCIpLAogICAgICAgICAgICAiZXhlY3V0aW9uU3RlcHMiOiBbUXVvdGVFeGVjdXRpb25TdGVwLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiZXhlY3V0aW9uU3RlcHMiXV0gaWYgb2JqLmdldCgiZXhlY3V0aW9uU3RlcHMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJnZW5lcmFsRmVlcyI6IFtGZWUuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJnZW5lcmFsRmVlcyJdXSBpZiBvYmouZ2V0KCJnZW5lcmFsRmVlcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInNpZGUiOiBvYmouZ2V0KCJzaWRlIiksCiAgICAgICAgICAgICJleHBpcmVzQXQiOiBvYmouZ2V0KCJleHBpcmVzQXQiKSwKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/quote_execution_request_details.py b/fireblocks/models/quote_execution_request_details.py index 1f8e9e7e..94ac5ed6 100644 --- a/fireblocks/models/quote_execution_request_details.py +++ b/fireblocks/models/quote_execution_request_details.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.quote_type_enum import QuoteTypeEnum -from typing import Optional, Set -from typing_extensions import Self - -class QuoteExecutionRequestDetails(BaseModel): - """ - QuoteExecutionRequestDetails - """ # noqa: E501 - type: QuoteTypeEnum - quote_id: StrictStr = Field(description="Quote ID for quote orders", alias="quoteId") - __properties: ClassVar[List[str]] = ["type", "quoteId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of QuoteExecutionRequestDetails from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of QuoteExecutionRequestDetails from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "quoteId": obj.get("quoteId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucXVvdGVfdHlwZV9lbnVtIGltcG9ydCBRdW90ZVR5cGVFbnVtCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFF1b3RlRXhlY3V0aW9uUmVxdWVzdERldGFpbHMoQmFzZU1vZGVsKToKICAgICIiIgogICAgUXVvdGVFeGVjdXRpb25SZXF1ZXN0RGV0YWlscwogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogUXVvdGVUeXBlRW51bQogICAgcXVvdGVfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJRdW90ZSBJRCBmb3IgcXVvdGUgb3JkZXJzIiwgYWxpYXM9InF1b3RlSWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgInF1b3RlSWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFF1b3RlRXhlY3V0aW9uUmVxdWVzdERldGFpbHMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUXVvdGVFeGVjdXRpb25SZXF1ZXN0RGV0YWlscyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAicXVvdGVJZCI6IG9iai5nZXQoInF1b3RlSWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/quote_execution_step.py b/fireblocks/models/quote_execution_step.py index 3a13af7f..7ab0dbbb 100644 --- a/fireblocks/models/quote_execution_step.py +++ b/fireblocks/models/quote_execution_step.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.execution_step_type import ExecutionStepType -from fireblocks.models.fee import Fee -from typing import Optional, Set -from typing_extensions import Self - -class QuoteExecutionStep(BaseModel): - """ - QuoteExecutionStep - """ # noqa: E501 - type: ExecutionStepType - fee: Optional[Fee] = None - __properties: ClassVar[List[str]] = ["type", "fee"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of QuoteExecutionStep from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of fee - if self.fee: - _dict['fee'] = self.fee.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of QuoteExecutionStep from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "fee": Fee.from_dict(obj["fee"]) if obj.get("fee") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9zdGVwX3R5cGUgaW1wb3J0IEV4ZWN1dGlvblN0ZXBUeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmVlIGltcG9ydCBGZWUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUXVvdGVFeGVjdXRpb25TdGVwKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFF1b3RlRXhlY3V0aW9uU3RlcAogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogRXhlY3V0aW9uU3RlcFR5cGUKICAgIGZlZTogT3B0aW9uYWxbRmVlXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidHlwZSIsICJmZWUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFF1b3RlRXhlY3V0aW9uU3RlcCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGZlZQogICAgICAgIGlmIHNlbGYuZmVlOgogICAgICAgICAgICBfZGljdFsnZmVlJ10gPSBzZWxmLmZlZS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFF1b3RlRXhlY3V0aW9uU3RlcCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAiZmVlIjogRmVlLmZyb21fZGljdChvYmpbImZlZSJdKSBpZiBvYmouZ2V0KCJmZWUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/quote_execution_type_details.py b/fireblocks/models/quote_execution_type_details.py index b7f23fdc..c71c3222 100644 --- a/fireblocks/models/quote_execution_type_details.py +++ b/fireblocks/models/quote_execution_type_details.py @@ -1,93 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.quote_type_enum import QuoteTypeEnum -from typing import Optional, Set -from typing_extensions import Self - -class QuoteExecutionTypeDetails(BaseModel): - """ - QuoteExecutionTypeDetails - """ # noqa: E501 - type: QuoteTypeEnum - quote_id: StrictStr = Field(description="Quote ID for quote orders", alias="quoteId") - quote_amount: StrictStr = Field(description="Quote amount for quote orders", alias="quoteAmount") - __properties: ClassVar[List[str]] = ["type", "quoteId", "quoteAmount"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of QuoteExecutionTypeDetails from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of QuoteExecutionTypeDetails from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "quoteId": obj.get("quoteId"), - "quoteAmount": obj.get("quoteAmount") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucXVvdGVfdHlwZV9lbnVtIGltcG9ydCBRdW90ZVR5cGVFbnVtCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFF1b3RlRXhlY3V0aW9uVHlwZURldGFpbHMoQmFzZU1vZGVsKToKICAgICIiIgogICAgUXVvdGVFeGVjdXRpb25UeXBlRGV0YWlscwogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogUXVvdGVUeXBlRW51bQogICAgcXVvdGVfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJRdW90ZSBJRCBmb3IgcXVvdGUgb3JkZXJzIiwgYWxpYXM9InF1b3RlSWQiKQogICAgcXVvdGVfYW1vdW50OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iUXVvdGUgYW1vdW50IGZvciBxdW90ZSBvcmRlcnMiLCBhbGlhcz0icXVvdGVBbW91bnQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgInF1b3RlSWQiLCAicXVvdGVBbW91bnQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFF1b3RlRXhlY3V0aW9uVHlwZURldGFpbHMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUXVvdGVFeGVjdXRpb25UeXBlRGV0YWlscyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAicXVvdGVJZCI6IG9iai5nZXQoInF1b3RlSWQiKSwKICAgICAgICAgICAgInF1b3RlQW1vdW50Ijogb2JqLmdldCgicXVvdGVBbW91bnQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/quote_execution_with_requote_request_details.py b/fireblocks/models/quote_execution_with_requote_request_details.py index 95ae7c0e..ef3bbeff 100644 --- a/fireblocks/models/quote_execution_with_requote_request_details.py +++ b/fireblocks/models/quote_execution_with_requote_request_details.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.quote_type_enum import QuoteTypeEnum -from fireblocks.models.re_quote_details_re_quote import ReQuoteDetailsReQuote -from typing import Optional, Set -from typing_extensions import Self - -class QuoteExecutionWithRequoteRequestDetails(BaseModel): - """ - QuoteExecutionWithRequoteRequestDetails - """ # noqa: E501 - type: QuoteTypeEnum - quote_id: StrictStr = Field(description="Quote ID for quote orders", alias="quoteId") - re_quote: Optional[ReQuoteDetailsReQuote] = Field(default=None, alias="reQuote") - __properties: ClassVar[List[str]] = ["type", "quoteId", "reQuote"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of QuoteExecutionWithRequoteRequestDetails from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of re_quote - if self.re_quote: - _dict['reQuote'] = self.re_quote.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of QuoteExecutionWithRequoteRequestDetails from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "quoteId": obj.get("quoteId"), - "reQuote": ReQuoteDetailsReQuote.from_dict(obj["reQuote"]) if obj.get("reQuote") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnF1b3RlX3R5cGVfZW51bSBpbXBvcnQgUXVvdGVUeXBlRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlX3F1b3RlX2RldGFpbHNfcmVfcXVvdGUgaW1wb3J0IFJlUXVvdGVEZXRhaWxzUmVRdW90ZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVxdWVzdERldGFpbHMoQmFzZU1vZGVsKToKICAgICIiIgogICAgUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlcXVlc3REZXRhaWxzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBRdW90ZVR5cGVFbnVtCiAgICBxdW90ZV9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlF1b3RlIElEIGZvciBxdW90ZSBvcmRlcnMiLCBhbGlhcz0icXVvdGVJZCIpCiAgICByZV9xdW90ZTogT3B0aW9uYWxbUmVRdW90ZURldGFpbHNSZVF1b3RlXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InJlUXVvdGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgInF1b3RlSWQiLCAicmVRdW90ZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlcXVlc3REZXRhaWxzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcmVfcXVvdGUKICAgICAgICBpZiBzZWxmLnJlX3F1b3RlOgogICAgICAgICAgICBfZGljdFsncmVRdW90ZSddID0gc2VsZi5yZV9xdW90ZS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFF1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXF1ZXN0RGV0YWlscyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAicXVvdGVJZCI6IG9iai5nZXQoInF1b3RlSWQiKSwKICAgICAgICAgICAgInJlUXVvdGUiOiBSZVF1b3RlRGV0YWlsc1JlUXVvdGUuZnJvbV9kaWN0KG9ialsicmVRdW90ZSJdKSBpZiBvYmouZ2V0KCJyZVF1b3RlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/quote_execution_with_requote_response_details.py b/fireblocks/models/quote_execution_with_requote_response_details.py index d79a0bf8..c075b6b4 100644 --- a/fireblocks/models/quote_execution_with_requote_response_details.py +++ b/fireblocks/models/quote_execution_with_requote_response_details.py @@ -1,113 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.quote_type_enum import QuoteTypeEnum -from fireblocks.models.re_quote_details_re_quote import ReQuoteDetailsReQuote -from fireblocks.models.side import Side -from fireblocks.models.transfer_rail import TransferRail -from typing import Optional, Set -from typing_extensions import Self - -class QuoteExecutionWithRequoteResponseDetails(BaseModel): - """ - QuoteExecutionWithRequoteResponseDetails - """ # noqa: E501 - type: QuoteTypeEnum - quote_id: StrictStr = Field(description="Quote ID for quote orders", alias="quoteId") - quote_amount: StrictStr = Field(description="Quote amount for quote orders", alias="quoteAmount") - side: Side - base_amount: StrictStr = Field(description="Amount to convert", alias="baseAmount") - base_asset_id: StrictStr = Field(description="Source asset identifier", alias="baseAssetId") - base_asset_rail: Optional[TransferRail] = Field(default=None, alias="baseAssetRail") - quote_asset_id: StrictStr = Field(description="Target asset identifier", alias="quoteAssetId") - quote_asset_rail: Optional[TransferRail] = Field(default=None, alias="quoteAssetRail") - re_quote: Optional[ReQuoteDetailsReQuote] = Field(default=None, alias="reQuote") - __properties: ClassVar[List[str]] = ["type", "quoteId", "quoteAmount", "side", "baseAmount", "baseAssetId", "baseAssetRail", "quoteAssetId", "quoteAssetRail", "reQuote"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of QuoteExecutionWithRequoteResponseDetails from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of re_quote - if self.re_quote: - _dict['reQuote'] = self.re_quote.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of QuoteExecutionWithRequoteResponseDetails from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "quoteId": obj.get("quoteId"), - "quoteAmount": obj.get("quoteAmount"), - "side": obj.get("side"), - "baseAmount": obj.get("baseAmount"), - "baseAssetId": obj.get("baseAssetId"), - "baseAssetRail": obj.get("baseAssetRail"), - "quoteAssetId": obj.get("quoteAssetId"), - "quoteAssetRail": obj.get("quoteAssetRail"), - "reQuote": ReQuoteDetailsReQuote.from_dict(obj["reQuote"]) if obj.get("reQuote") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnF1b3RlX3R5cGVfZW51bSBpbXBvcnQgUXVvdGVUeXBlRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlX3F1b3RlX2RldGFpbHNfcmVfcXVvdGUgaW1wb3J0IFJlUXVvdGVEZXRhaWxzUmVRdW90ZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNpZGUgaW1wb3J0IFNpZGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9yYWlsIGltcG9ydCBUcmFuc2ZlclJhaWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlc3BvbnNlRGV0YWlscyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVzcG9uc2VEZXRhaWxzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBRdW90ZVR5cGVFbnVtCiAgICBxdW90ZV9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlF1b3RlIElEIGZvciBxdW90ZSBvcmRlcnMiLCBhbGlhcz0icXVvdGVJZCIpCiAgICBxdW90ZV9hbW91bnQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJRdW90ZSBhbW91bnQgZm9yIHF1b3RlIG9yZGVycyIsIGFsaWFzPSJxdW90ZUFtb3VudCIpCiAgICBzaWRlOiBTaWRlCiAgICBiYXNlX2Ftb3VudDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkFtb3VudCB0byBjb252ZXJ0IiwgYWxpYXM9ImJhc2VBbW91bnQiKQogICAgYmFzZV9hc3NldF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlNvdXJjZSBhc3NldCBpZGVudGlmaWVyIiwgYWxpYXM9ImJhc2VBc3NldElkIikKICAgIGJhc2VfYXNzZXRfcmFpbDogT3B0aW9uYWxbVHJhbnNmZXJSYWlsXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImJhc2VBc3NldFJhaWwiKQogICAgcXVvdGVfYXNzZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUYXJnZXQgYXNzZXQgaWRlbnRpZmllciIsIGFsaWFzPSJxdW90ZUFzc2V0SWQiKQogICAgcXVvdGVfYXNzZXRfcmFpbDogT3B0aW9uYWxbVHJhbnNmZXJSYWlsXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InF1b3RlQXNzZXRSYWlsIikKICAgIHJlX3F1b3RlOiBPcHRpb25hbFtSZVF1b3RlRGV0YWlsc1JlUXVvdGVdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0icmVRdW90ZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiLCAicXVvdGVJZCIsICJxdW90ZUFtb3VudCIsICJzaWRlIiwgImJhc2VBbW91bnQiLCAiYmFzZUFzc2V0SWQiLCAiYmFzZUFzc2V0UmFpbCIsICJxdW90ZUFzc2V0SWQiLCAicXVvdGVBc3NldFJhaWwiLCAicmVRdW90ZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlc3BvbnNlRGV0YWlscyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHJlX3F1b3RlCiAgICAgICAgaWYgc2VsZi5yZV9xdW90ZToKICAgICAgICAgICAgX2RpY3RbJ3JlUXVvdGUnXSA9IHNlbGYucmVfcXVvdGUudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVzcG9uc2VEZXRhaWxzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIiksCiAgICAgICAgICAgICJxdW90ZUlkIjogb2JqLmdldCgicXVvdGVJZCIpLAogICAgICAgICAgICAicXVvdGVBbW91bnQiOiBvYmouZ2V0KCJxdW90ZUFtb3VudCIpLAogICAgICAgICAgICAic2lkZSI6IG9iai5nZXQoInNpZGUiKSwKICAgICAgICAgICAgImJhc2VBbW91bnQiOiBvYmouZ2V0KCJiYXNlQW1vdW50IiksCiAgICAgICAgICAgICJiYXNlQXNzZXRJZCI6IG9iai5nZXQoImJhc2VBc3NldElkIiksCiAgICAgICAgICAgICJiYXNlQXNzZXRSYWlsIjogb2JqLmdldCgiYmFzZUFzc2V0UmFpbCIpLAogICAgICAgICAgICAicXVvdGVBc3NldElkIjogb2JqLmdldCgicXVvdGVBc3NldElkIiksCiAgICAgICAgICAgICJxdW90ZUFzc2V0UmFpbCI6IG9iai5nZXQoInF1b3RlQXNzZXRSYWlsIiksCiAgICAgICAgICAgICJyZVF1b3RlIjogUmVRdW90ZURldGFpbHNSZVF1b3RlLmZyb21fZGljdChvYmpbInJlUXVvdGUiXSkgaWYgb2JqLmdldCgicmVRdW90ZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/quote_failure.py b/fireblocks/models/quote_failure.py index 102d3958..dc88094e 100644 --- a/fireblocks/models/quote_failure.py +++ b/fireblocks/models/quote_failure.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.trading_error_schema import TradingErrorSchema -from typing import Optional, Set -from typing_extensions import Self - -class QuoteFailure(BaseModel): - """ - QuoteFailure - """ # noqa: E501 - provider_id: StrictStr = Field(description="Identifier of the provider for which the quote request failed.", alias="providerId") - account_id: Optional[StrictStr] = Field(default=None, description="Identifier of the account for which the quote request failed (optional).", alias="accountId") - error: TradingErrorSchema - __properties: ClassVar[List[str]] = ["providerId", "accountId", "error"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of QuoteFailure from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of error - if self.error: - _dict['error'] = self.error.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of QuoteFailure from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "providerId": obj.get("providerId"), - "accountId": obj.get("accountId"), - "error": TradingErrorSchema.from_dict(obj["error"]) if obj.get("error") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYWRpbmdfZXJyb3Jfc2NoZW1hIGltcG9ydCBUcmFkaW5nRXJyb3JTY2hlbWEKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUXVvdGVGYWlsdXJlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFF1b3RlRmFpbHVyZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgcHJvdmlkZXJfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJZGVudGlmaWVyIG9mIHRoZSBwcm92aWRlciBmb3Igd2hpY2ggdGhlIHF1b3RlIHJlcXVlc3QgZmFpbGVkLiIsIGFsaWFzPSJwcm92aWRlcklkIikKICAgIGFjY291bnRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJZGVudGlmaWVyIG9mIHRoZSBhY2NvdW50IGZvciB3aGljaCB0aGUgcXVvdGUgcmVxdWVzdCBmYWlsZWQgKG9wdGlvbmFsKS4iLCBhbGlhcz0iYWNjb3VudElkIikKICAgIGVycm9yOiBUcmFkaW5nRXJyb3JTY2hlbWEKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicHJvdmlkZXJJZCIsICJhY2NvdW50SWQiLCAiZXJyb3IiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFF1b3RlRmFpbHVyZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVycm9yCiAgICAgICAgaWYgc2VsZi5lcnJvcjoKICAgICAgICAgICAgX2RpY3RbJ2Vycm9yJ10gPSBzZWxmLmVycm9yLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUXVvdGVGYWlsdXJlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInByb3ZpZGVySWQiOiBvYmouZ2V0KCJwcm92aWRlcklkIiksCiAgICAgICAgICAgICJhY2NvdW50SWQiOiBvYmouZ2V0KCJhY2NvdW50SWQiKSwKICAgICAgICAgICAgImVycm9yIjogVHJhZGluZ0Vycm9yU2NoZW1hLmZyb21fZGljdChvYmpbImVycm9yIl0pIGlmIG9iai5nZXQoImVycm9yIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/quote_properties_details.py b/fireblocks/models/quote_properties_details.py index c86624be..9bcbb329 100644 --- a/fireblocks/models/quote_properties_details.py +++ b/fireblocks/models/quote_properties_details.py @@ -1,131 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.access_type import AccessType -from fireblocks.models.fee import Fee -from fireblocks.models.quote_execution_step import QuoteExecutionStep -from fireblocks.models.side import Side -from typing import Optional, Set -from typing_extensions import Self - -class QuotePropertiesDetails(BaseModel): - """ - QuotePropertiesDetails - """ # noqa: E501 - via: AccessType - id: StrictStr - quote_asset_id: StrictStr = Field(alias="quoteAssetId") - base_asset_id: StrictStr = Field(alias="baseAssetId") - base_amount: StrictStr = Field(alias="baseAmount") - quote_amount: StrictStr = Field(alias="quoteAmount") - price_impact: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="priceImpact") - quote_min_amount: Optional[StrictStr] = Field(default=None, alias="quoteMinAmount") - execution_steps: Optional[List[QuoteExecutionStep]] = Field(default=None, alias="executionSteps") - general_fees: Optional[List[Fee]] = Field(default=None, alias="generalFees") - side: Side - expires_at: StrictStr = Field(description="The expiration time of the quote in ISO format.", alias="expiresAt") - __properties: ClassVar[List[str]] = ["via", "id", "quoteAssetId", "baseAssetId", "baseAmount", "quoteAmount", "priceImpact", "quoteMinAmount", "executionSteps", "generalFees", "side", "expiresAt"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of QuotePropertiesDetails from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of via - if self.via: - _dict['via'] = self.via.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in execution_steps (list) - _items = [] - if self.execution_steps: - for _item_execution_steps in self.execution_steps: - if _item_execution_steps: - _items.append(_item_execution_steps.to_dict()) - _dict['executionSteps'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in general_fees (list) - _items = [] - if self.general_fees: - for _item_general_fees in self.general_fees: - if _item_general_fees: - _items.append(_item_general_fees.to_dict()) - _dict['generalFees'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of QuotePropertiesDetails from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "via": AccessType.from_dict(obj["via"]) if obj.get("via") is not None else None, - "id": obj.get("id"), - "quoteAssetId": obj.get("quoteAssetId"), - "baseAssetId": obj.get("baseAssetId"), - "baseAmount": obj.get("baseAmount"), - "quoteAmount": obj.get("quoteAmount"), - "priceImpact": obj.get("priceImpact"), - "quoteMinAmount": obj.get("quoteMinAmount"), - "executionSteps": [QuoteExecutionStep.from_dict(_item) for _item in obj["executionSteps"]] if obj.get("executionSteps") is not None else None, - "generalFees": [Fee.from_dict(_item) for _item in obj["generalFees"]] if obj.get("generalFees") is not None else None, - "side": obj.get("side"), - "expiresAt": obj.get("expiresAt") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hY2Nlc3NfdHlwZSBpbXBvcnQgQWNjZXNzVHlwZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZSBpbXBvcnQgRmVlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucXVvdGVfZXhlY3V0aW9uX3N0ZXAgaW1wb3J0IFF1b3RlRXhlY3V0aW9uU3RlcApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNpZGUgaW1wb3J0IFNpZGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUXVvdGVQcm9wZXJ0aWVzRGV0YWlscyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBRdW90ZVByb3BlcnRpZXNEZXRhaWxzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB2aWE6IEFjY2Vzc1R5cGUKICAgIGlkOiBTdHJpY3RTdHIKICAgIHF1b3RlX2Fzc2V0X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChhbGlhcz0icXVvdGVBc3NldElkIikKICAgIGJhc2VfYXNzZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJiYXNlQXNzZXRJZCIpCiAgICBiYXNlX2Ftb3VudDogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9ImJhc2VBbW91bnQiKQogICAgcXVvdGVfYW1vdW50OiBTdHJpY3RTdHIgPSBGaWVsZChhbGlhcz0icXVvdGVBbW91bnQiKQogICAgcHJpY2VfaW1wYWN0OiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJwcmljZUltcGFjdCIpCiAgICBxdW90ZV9taW5fYW1vdW50OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0icXVvdGVNaW5BbW91bnQiKQogICAgZXhlY3V0aW9uX3N0ZXBzOiBPcHRpb25hbFtMaXN0W1F1b3RlRXhlY3V0aW9uU3RlcF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZXhlY3V0aW9uU3RlcHMiKQogICAgZ2VuZXJhbF9mZWVzOiBPcHRpb25hbFtMaXN0W0ZlZV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZ2VuZXJhbEZlZXMiKQogICAgc2lkZTogU2lkZQogICAgZXhwaXJlc19hdDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBleHBpcmF0aW9uIHRpbWUgb2YgdGhlIHF1b3RlIGluIElTTyBmb3JtYXQuIiwgYWxpYXM9ImV4cGlyZXNBdCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInZpYSIsICJpZCIsICJxdW90ZUFzc2V0SWQiLCAiYmFzZUFzc2V0SWQiLCAiYmFzZUFtb3VudCIsICJxdW90ZUFtb3VudCIsICJwcmljZUltcGFjdCIsICJxdW90ZU1pbkFtb3VudCIsICJleGVjdXRpb25TdGVwcyIsICJnZW5lcmFsRmVlcyIsICJzaWRlIiwgImV4cGlyZXNBdCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUXVvdGVQcm9wZXJ0aWVzRGV0YWlscyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHZpYQogICAgICAgIGlmIHNlbGYudmlhOgogICAgICAgICAgICBfZGljdFsndmlhJ10gPSBzZWxmLnZpYS50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGV4ZWN1dGlvbl9zdGVwcyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZXhlY3V0aW9uX3N0ZXBzOgogICAgICAgICAgICBmb3IgX2l0ZW1fZXhlY3V0aW9uX3N0ZXBzIGluIHNlbGYuZXhlY3V0aW9uX3N0ZXBzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZXhlY3V0aW9uX3N0ZXBzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fZXhlY3V0aW9uX3N0ZXBzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2V4ZWN1dGlvblN0ZXBzJ10gPSBfaXRlbXMKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGdlbmVyYWxfZmVlcyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZ2VuZXJhbF9mZWVzOgogICAgICAgICAgICBmb3IgX2l0ZW1fZ2VuZXJhbF9mZWVzIGluIHNlbGYuZ2VuZXJhbF9mZWVzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZ2VuZXJhbF9mZWVzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fZ2VuZXJhbF9mZWVzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2dlbmVyYWxGZWVzJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFF1b3RlUHJvcGVydGllc0RldGFpbHMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidmlhIjogQWNjZXNzVHlwZS5mcm9tX2RpY3Qob2JqWyJ2aWEiXSkgaWYgb2JqLmdldCgidmlhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAicXVvdGVBc3NldElkIjogb2JqLmdldCgicXVvdGVBc3NldElkIiksCiAgICAgICAgICAgICJiYXNlQXNzZXRJZCI6IG9iai5nZXQoImJhc2VBc3NldElkIiksCiAgICAgICAgICAgICJiYXNlQW1vdW50Ijogb2JqLmdldCgiYmFzZUFtb3VudCIpLAogICAgICAgICAgICAicXVvdGVBbW91bnQiOiBvYmouZ2V0KCJxdW90ZUFtb3VudCIpLAogICAgICAgICAgICAicHJpY2VJbXBhY3QiOiBvYmouZ2V0KCJwcmljZUltcGFjdCIpLAogICAgICAgICAgICAicXVvdGVNaW5BbW91bnQiOiBvYmouZ2V0KCJxdW90ZU1pbkFtb3VudCIpLAogICAgICAgICAgICAiZXhlY3V0aW9uU3RlcHMiOiBbUXVvdGVFeGVjdXRpb25TdGVwLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiZXhlY3V0aW9uU3RlcHMiXV0gaWYgb2JqLmdldCgiZXhlY3V0aW9uU3RlcHMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJnZW5lcmFsRmVlcyI6IFtGZWUuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJnZW5lcmFsRmVlcyJdXSBpZiBvYmouZ2V0KCJnZW5lcmFsRmVlcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInNpZGUiOiBvYmouZ2V0KCJzaWRlIiksCiAgICAgICAgICAgICJleHBpcmVzQXQiOiBvYmouZ2V0KCJleHBpcmVzQXQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/quote_type_enum.py b/fireblocks/models/quote_type_enum.py index 6822d5a1..d3fd66be 100644 --- a/fireblocks/models/quote_type_enum.py +++ b/fireblocks/models/quote_type_enum.py @@ -1,37 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class QuoteTypeEnum(str, Enum): - """ - Order type for quote orders - """ - - """ - allowed enum values - """ - QUOTE = 'QUOTE' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of QuoteTypeEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBRdW90ZVR5cGVFbnVtKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIE9yZGVyIHR5cGUgZm9yIHF1b3RlIG9yZGVycwogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIFFVT1RFID0gJ1FVT1RFJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFF1b3RlVHlwZUVudW0gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/quotes_response.py b/fireblocks/models/quotes_response.py index 363f71da..569ac450 100644 --- a/fireblocks/models/quotes_response.py +++ b/fireblocks/models/quotes_response.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.quote import Quote -from fireblocks.models.quote_failure import QuoteFailure -from typing import Optional, Set -from typing_extensions import Self - -class QuotesResponse(BaseModel): - """ - QuotesResponse - """ # noqa: E501 - quotes: List[Quote] - quote_failures: List[QuoteFailure] = Field(description="List of partial failures encountered while requesting quotes. Empty when all quote attempts succeed.", alias="quoteFailures") - __properties: ClassVar[List[str]] = ["quotes", "quoteFailures"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of QuotesResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in quotes (list) - _items = [] - if self.quotes: - for _item_quotes in self.quotes: - if _item_quotes: - _items.append(_item_quotes.to_dict()) - _dict['quotes'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in quote_failures (list) - _items = [] - if self.quote_failures: - for _item_quote_failures in self.quote_failures: - if _item_quote_failures: - _items.append(_item_quote_failures.to_dict()) - _dict['quoteFailures'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of QuotesResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "quotes": [Quote.from_dict(_item) for _item in obj["quotes"]] if obj.get("quotes") is not None else None, - "quoteFailures": [QuoteFailure.from_dict(_item) for _item in obj["quoteFailures"]] if obj.get("quoteFailures") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnF1b3RlIGltcG9ydCBRdW90ZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnF1b3RlX2ZhaWx1cmUgaW1wb3J0IFF1b3RlRmFpbHVyZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBRdW90ZXNSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBRdW90ZXNSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgcXVvdGVzOiBMaXN0W1F1b3RlXQogICAgcXVvdGVfZmFpbHVyZXM6IExpc3RbUXVvdGVGYWlsdXJlXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJMaXN0IG9mIHBhcnRpYWwgZmFpbHVyZXMgZW5jb3VudGVyZWQgd2hpbGUgcmVxdWVzdGluZyBxdW90ZXMuIEVtcHR5IHdoZW4gYWxsIHF1b3RlIGF0dGVtcHRzIHN1Y2NlZWQuIiwgYWxpYXM9InF1b3RlRmFpbHVyZXMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJxdW90ZXMiLCAicXVvdGVGYWlsdXJlcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUXVvdGVzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gcXVvdGVzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5xdW90ZXM6CiAgICAgICAgICAgIGZvciBfaXRlbV9xdW90ZXMgaW4gc2VsZi5xdW90ZXM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9xdW90ZXM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9xdW90ZXMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsncXVvdGVzJ10gPSBfaXRlbXMKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIHF1b3RlX2ZhaWx1cmVzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5xdW90ZV9mYWlsdXJlczoKICAgICAgICAgICAgZm9yIF9pdGVtX3F1b3RlX2ZhaWx1cmVzIGluIHNlbGYucXVvdGVfZmFpbHVyZXM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9xdW90ZV9mYWlsdXJlczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX3F1b3RlX2ZhaWx1cmVzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ3F1b3RlRmFpbHVyZXMnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUXVvdGVzUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicXVvdGVzIjogW1F1b3RlLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsicXVvdGVzIl1dIGlmIG9iai5nZXQoInF1b3RlcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInF1b3RlRmFpbHVyZXMiOiBbUXVvdGVGYWlsdXJlLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsicXVvdGVGYWlsdXJlcyJdXSBpZiBvYmouZ2V0KCJxdW90ZUZhaWx1cmVzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/re_quote_details.py b/fireblocks/models/re_quote_details.py index 857160ba..9f83c599 100644 --- a/fireblocks/models/re_quote_details.py +++ b/fireblocks/models/re_quote_details.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.re_quote_details_re_quote import ReQuoteDetailsReQuote -from typing import Optional, Set -from typing_extensions import Self - -class ReQuoteDetails(BaseModel): - """ - ReQuoteDetails - """ # noqa: E501 - re_quote: Optional[ReQuoteDetailsReQuote] = Field(default=None, alias="reQuote") - __properties: ClassVar[List[str]] = ["reQuote"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ReQuoteDetails from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of re_quote - if self.re_quote: - _dict['reQuote'] = self.re_quote.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ReQuoteDetails from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "reQuote": ReQuoteDetailsReQuote.from_dict(obj["reQuote"]) if obj.get("reQuote") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZV9xdW90ZV9kZXRhaWxzX3JlX3F1b3RlIGltcG9ydCBSZVF1b3RlRGV0YWlsc1JlUXVvdGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUmVRdW90ZURldGFpbHMoQmFzZU1vZGVsKToKICAgICIiIgogICAgUmVRdW90ZURldGFpbHMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHJlX3F1b3RlOiBPcHRpb25hbFtSZVF1b3RlRGV0YWlsc1JlUXVvdGVdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0icmVRdW90ZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInJlUXVvdGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlUXVvdGVEZXRhaWxzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcmVfcXVvdGUKICAgICAgICBpZiBzZWxmLnJlX3F1b3RlOgogICAgICAgICAgICBfZGljdFsncmVRdW90ZSddID0gc2VsZi5yZV9xdW90ZS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlUXVvdGVEZXRhaWxzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInJlUXVvdGUiOiBSZVF1b3RlRGV0YWlsc1JlUXVvdGUuZnJvbV9kaWN0KG9ialsicmVRdW90ZSJdKSBpZiBvYmouZ2V0KCJyZVF1b3RlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/re_quote_details_re_quote.py b/fireblocks/models/re_quote_details_re_quote.py index ba2d09bc..9f3c683c 100644 --- a/fireblocks/models/re_quote_details_re_quote.py +++ b/fireblocks/models/re_quote_details_re_quote.py @@ -1,141 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.market_requote_request_details import MarketRequoteRequestDetails -from fireblocks.models.retry_requote_request_details import RetryRequoteRequestDetails -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -REQUOTEDETAILSREQUOTE_ONE_OF_SCHEMAS = ["MarketRequoteRequestDetails", "RetryRequoteRequestDetails"] - -class ReQuoteDetailsReQuote(BaseModel): - """ - ReQuoteDetailsReQuote - """ - # data type: MarketRequoteRequestDetails - oneof_schema_1_validator: Optional[MarketRequoteRequestDetails] = None - # data type: RetryRequoteRequestDetails - oneof_schema_2_validator: Optional[RetryRequoteRequestDetails] = None - actual_instance: Optional[Union[MarketRequoteRequestDetails, RetryRequoteRequestDetails]] = None - one_of_schemas: Set[str] = { "MarketRequoteRequestDetails", "RetryRequoteRequestDetails" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - discriminator_value_class_map: Dict[str, str] = { - } - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = ReQuoteDetailsReQuote.model_construct() - error_messages = [] - match = 0 - # validate data type: MarketRequoteRequestDetails - if not isinstance(v, MarketRequoteRequestDetails): - error_messages.append(f"Error! Input type `{type(v)}` is not `MarketRequoteRequestDetails`") - else: - match += 1 - # validate data type: RetryRequoteRequestDetails - if not isinstance(v, RetryRequoteRequestDetails): - error_messages.append(f"Error! Input type `{type(v)}` is not `RetryRequoteRequestDetails`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in ReQuoteDetailsReQuote with oneOf schemas: MarketRequoteRequestDetails, RetryRequoteRequestDetails. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in ReQuoteDetailsReQuote with oneOf schemas: MarketRequoteRequestDetails, RetryRequoteRequestDetails. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into MarketRequoteRequestDetails - try: - instance.actual_instance = MarketRequoteRequestDetails.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into RetryRequoteRequestDetails - try: - instance.actual_instance = RetryRequoteRequestDetails.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into ReQuoteDetailsReQuote with oneOf schemas: MarketRequoteRequestDetails, RetryRequoteRequestDetails. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into ReQuoteDetailsReQuote with oneOf schemas: MarketRequoteRequestDetails, RetryRequoteRequestDetails. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], MarketRequoteRequestDetails, RetryRequoteRequestDetails]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubWFya2V0X3JlcXVvdGVfcmVxdWVzdF9kZXRhaWxzIGltcG9ydCBNYXJrZXRSZXF1b3RlUmVxdWVzdERldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZXRyeV9yZXF1b3RlX3JlcXVlc3RfZGV0YWlscyBpbXBvcnQgUmV0cnlSZXF1b3RlUmVxdWVzdERldGFpbHMKZnJvbSBweWRhbnRpYyBpbXBvcnQgU3RyaWN0U3RyLCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgVW5pb24sIExpc3QsIFNldCwgT3B0aW9uYWwsIERpY3QKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgTGl0ZXJhbCwgU2VsZgoKUkVRVU9URURFVEFJTFNSRVFVT1RFX09ORV9PRl9TQ0hFTUFTID0gWyJNYXJrZXRSZXF1b3RlUmVxdWVzdERldGFpbHMiLCAiUmV0cnlSZXF1b3RlUmVxdWVzdERldGFpbHMiXQoKY2xhc3MgUmVRdW90ZURldGFpbHNSZVF1b3RlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFJlUXVvdGVEZXRhaWxzUmVRdW90ZQogICAgIiIiCiAgICAjIGRhdGEgdHlwZTogTWFya2V0UmVxdW90ZVJlcXVlc3REZXRhaWxzCiAgICBvbmVvZl9zY2hlbWFfMV92YWxpZGF0b3I6IE9wdGlvbmFsW01hcmtldFJlcXVvdGVSZXF1ZXN0RGV0YWlsc10gPSBOb25lCiAgICAjIGRhdGEgdHlwZTogUmV0cnlSZXF1b3RlUmVxdWVzdERldGFpbHMKICAgIG9uZW9mX3NjaGVtYV8yX3ZhbGlkYXRvcjogT3B0aW9uYWxbUmV0cnlSZXF1b3RlUmVxdWVzdERldGFpbHNdID0gTm9uZQogICAgYWN0dWFsX2luc3RhbmNlOiBPcHRpb25hbFtVbmlvbltNYXJrZXRSZXF1b3RlUmVxdWVzdERldGFpbHMsIFJldHJ5UmVxdW90ZVJlcXVlc3REZXRhaWxzXV0gPSBOb25lCiAgICBvbmVfb2Zfc2NoZW1hczogU2V0W3N0cl0gPSB7ICJNYXJrZXRSZXF1b3RlUmVxdWVzdERldGFpbHMiLCAiUmV0cnlSZXF1b3RlUmVxdWVzdERldGFpbHMiIH0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGlzY3JpbWluYXRvcl92YWx1ZV9jbGFzc19tYXA6IERpY3Rbc3RyLCBzdHJdID0gewogICAgfQoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gUmVRdW90ZURldGFpbHNSZVF1b3RlLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBNYXJrZXRSZXF1b3RlUmVxdWVzdERldGFpbHMKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBNYXJrZXRSZXF1b3RlUmVxdWVzdERldGFpbHMpOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYE1hcmtldFJlcXVvdGVSZXF1ZXN0RGV0YWlsc2AiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogUmV0cnlSZXF1b3RlUmVxdWVzdERldGFpbHMKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBSZXRyeVJlcXVvdGVSZXF1ZXN0RGV0YWlscyk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgUmV0cnlSZXF1b3RlUmVxdWVzdERldGFpbHNgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIFJlUXVvdGVEZXRhaWxzUmVRdW90ZSB3aXRoIG9uZU9mIHNjaGVtYXM6IE1hcmtldFJlcXVvdGVSZXF1ZXN0RGV0YWlscywgUmV0cnlSZXF1b3RlUmVxdWVzdERldGFpbHMuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gUmVRdW90ZURldGFpbHNSZVF1b3RlIHdpdGggb25lT2Ygc2NoZW1hczogTWFya2V0UmVxdW90ZVJlcXVlc3REZXRhaWxzLCBSZXRyeVJlcXVvdGVSZXF1ZXN0RGV0YWlscy4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIHYKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IFVuaW9uW3N0ciwgRGljdFtzdHIsIEFueV1dKSAtPiBTZWxmOgogICAgICAgIHJldHVybiBjbHMuZnJvbV9qc29uKGpzb24uZHVtcHMob2JqKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIlJldHVybnMgdGhlIG9iamVjdCByZXByZXNlbnRlZCBieSB0aGUganNvbiBzdHJpbmciIiIKICAgICAgICBpbnN0YW5jZSA9IGNscy5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gTWFya2V0UmVxdW90ZVJlcXVlc3REZXRhaWxzCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBNYXJrZXRSZXF1b3RlUmVxdWVzdERldGFpbHMuZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gUmV0cnlSZXF1b3RlUmVxdWVzdERldGFpbHMKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IFJldHJ5UmVxdW90ZVJlcXVlc3REZXRhaWxzLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQoKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gUmVRdW90ZURldGFpbHNSZVF1b3RlIHdpdGggb25lT2Ygc2NoZW1hczogTWFya2V0UmVxdW90ZVJlcXVlc3REZXRhaWxzLCBSZXRyeVJlcXVvdGVSZXF1ZXN0RGV0YWlscy4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBSZVF1b3RlRGV0YWlsc1JlUXVvdGUgd2l0aCBvbmVPZiBzY2hlbWFzOiBNYXJrZXRSZXF1b3RlUmVxdWVzdERldGFpbHMsIFJldHJ5UmVxdW90ZVJlcXVlc3REZXRhaWxzLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuICJudWxsIgoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fanNvbiIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24oKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYuYWN0dWFsX2luc3RhbmNlKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IE9wdGlvbmFsW1VuaW9uW0RpY3Rbc3RyLCBBbnldLCBNYXJrZXRSZXF1b3RlUmVxdWVzdERldGFpbHMsIFJldHJ5UmVxdW90ZVJlcXVlc3REZXRhaWxzXV06CiAgICAgICAgIiIiUmV0dXJucyB0aGUgZGljdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2RpY3QiKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCk6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KCkKICAgICAgICBlbHNlOgogICAgICAgICAgICAjIHByaW1pdGl2ZSB0eXBlCiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZQoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcCgpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/read_abi_function.py b/fireblocks/models/read_abi_function.py index dba0319b..505c733e 100644 --- a/fireblocks/models/read_abi_function.py +++ b/fireblocks/models/read_abi_function.py @@ -1,121 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.parameter import Parameter -from fireblocks.models.parameter_with_value import ParameterWithValue -from typing import Optional, Set -from typing_extensions import Self - -class ReadAbiFunction(BaseModel): - """ - ReadAbiFunction - """ # noqa: E501 - state_mutability: StrictStr = Field(alias="stateMutability") - outputs: Optional[List[Parameter]] = None - name: Optional[StrictStr] = None - type: StrictStr - inputs: List[ParameterWithValue] - description: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["stateMutability", "outputs", "name", "type", "inputs", "description"] - - @field_validator('state_mutability') - def state_mutability_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['pure', 'view']): - raise ValueError("must be one of enum values ('pure', 'view')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ReadAbiFunction from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in outputs (list) - _items = [] - if self.outputs: - for _item_outputs in self.outputs: - if _item_outputs: - _items.append(_item_outputs.to_dict()) - _dict['outputs'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in inputs (list) - _items = [] - if self.inputs: - for _item_inputs in self.inputs: - if _item_inputs: - _items.append(_item_inputs.to_dict()) - _dict['inputs'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ReadAbiFunction from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "stateMutability": obj.get("stateMutability"), - "outputs": [Parameter.from_dict(_item) for _item in obj["outputs"]] if obj.get("outputs") is not None else None, - "name": obj.get("name"), - "type": obj.get("type"), - "inputs": [ParameterWithValue.from_dict(_item) for _item in obj["inputs"]] if obj.get("inputs") is not None else None, - "description": obj.get("description") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyIGltcG9ydCBQYXJhbWV0ZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXJfd2l0aF92YWx1ZSBpbXBvcnQgUGFyYW1ldGVyV2l0aFZhbHVlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFJlYWRBYmlGdW5jdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSZWFkQWJpRnVuY3Rpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHN0YXRlX211dGFiaWxpdHk6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJzdGF0ZU11dGFiaWxpdHkiKQogICAgb3V0cHV0czogT3B0aW9uYWxbTGlzdFtQYXJhbWV0ZXJdXSA9IE5vbmUKICAgIG5hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICB0eXBlOiBTdHJpY3RTdHIKICAgIGlucHV0czogTGlzdFtQYXJhbWV0ZXJXaXRoVmFsdWVdCiAgICBkZXNjcmlwdGlvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3RhdGVNdXRhYmlsaXR5IiwgIm91dHB1dHMiLCAibmFtZSIsICJ0eXBlIiwgImlucHV0cyIsICJkZXNjcmlwdGlvbiJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignc3RhdGVfbXV0YWJpbGl0eScpCiAgICBkZWYgc3RhdGVfbXV0YWJpbGl0eV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydwdXJlJywgJ3ZpZXcnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgncHVyZScsICd2aWV3JykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlYWRBYmlGdW5jdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBvdXRwdXRzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5vdXRwdXRzOgogICAgICAgICAgICBmb3IgX2l0ZW1fb3V0cHV0cyBpbiBzZWxmLm91dHB1dHM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9vdXRwdXRzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fb3V0cHV0cy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydvdXRwdXRzJ10gPSBfaXRlbXMKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGlucHV0cyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuaW5wdXRzOgogICAgICAgICAgICBmb3IgX2l0ZW1faW5wdXRzIGluIHNlbGYuaW5wdXRzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1faW5wdXRzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1faW5wdXRzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2lucHV0cyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZWFkQWJpRnVuY3Rpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3RhdGVNdXRhYmlsaXR5Ijogb2JqLmdldCgic3RhdGVNdXRhYmlsaXR5IiksCiAgICAgICAgICAgICJvdXRwdXRzIjogW1BhcmFtZXRlci5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbIm91dHB1dHMiXV0gaWYgb2JqLmdldCgib3V0cHV0cyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAiaW5wdXRzIjogW1BhcmFtZXRlcldpdGhWYWx1ZS5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImlucHV0cyJdXSBpZiBvYmouZ2V0KCJpbnB1dHMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IG9iai5nZXQoImRlc2NyaXB0aW9uIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/read_call_function_dto.py b/fireblocks/models/read_call_function_dto.py index d0b968e8..b1fdb887 100644 --- a/fireblocks/models/read_call_function_dto.py +++ b/fireblocks/models/read_call_function_dto.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.read_call_function_dto_abi_function import ReadCallFunctionDtoAbiFunction -from typing import Optional, Set -from typing_extensions import Self - -class ReadCallFunctionDto(BaseModel): - """ - ReadCallFunctionDto - """ # noqa: E501 - abi_function: ReadCallFunctionDtoAbiFunction = Field(alias="abiFunction") - __properties: ClassVar[List[str]] = ["abiFunction"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ReadCallFunctionDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of abi_function - if self.abi_function: - _dict['abiFunction'] = self.abi_function.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ReadCallFunctionDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "abiFunction": ReadCallFunctionDtoAbiFunction.from_dict(obj["abiFunction"]) if obj.get("abiFunction") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlYWRfY2FsbF9mdW5jdGlvbl9kdG9fYWJpX2Z1bmN0aW9uIGltcG9ydCBSZWFkQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUmVhZENhbGxGdW5jdGlvbkR0byhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSZWFkQ2FsbEZ1bmN0aW9uRHRvCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhYmlfZnVuY3Rpb246IFJlYWRDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbiA9IEZpZWxkKGFsaWFzPSJhYmlGdW5jdGlvbiIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFiaUZ1bmN0aW9uIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZWFkQ2FsbEZ1bmN0aW9uRHRvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYWJpX2Z1bmN0aW9uCiAgICAgICAgaWYgc2VsZi5hYmlfZnVuY3Rpb246CiAgICAgICAgICAgIF9kaWN0WydhYmlGdW5jdGlvbiddID0gc2VsZi5hYmlfZnVuY3Rpb24udG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZWFkQ2FsbEZ1bmN0aW9uRHRvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFiaUZ1bmN0aW9uIjogUmVhZENhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uLmZyb21fZGljdChvYmpbImFiaUZ1bmN0aW9uIl0pIGlmIG9iai5nZXQoImFiaUZ1bmN0aW9uIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/read_call_function_dto_abi_function.py b/fireblocks/models/read_call_function_dto_abi_function.py index 17142db5..b09bc56b 100644 --- a/fireblocks/models/read_call_function_dto_abi_function.py +++ b/fireblocks/models/read_call_function_dto_abi_function.py @@ -1,138 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.read_abi_function import ReadAbiFunction -from fireblocks.models.solana_instruction_with_value import SolanaInstructionWithValue -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -READCALLFUNCTIONDTOABIFUNCTION_ONE_OF_SCHEMAS = ["ReadAbiFunction", "SolanaInstructionWithValue"] - -class ReadCallFunctionDtoAbiFunction(BaseModel): - """ - ReadCallFunctionDtoAbiFunction - """ - # data type: ReadAbiFunction - oneof_schema_1_validator: Optional[ReadAbiFunction] = None - # data type: SolanaInstructionWithValue - oneof_schema_2_validator: Optional[SolanaInstructionWithValue] = None - actual_instance: Optional[Union[ReadAbiFunction, SolanaInstructionWithValue]] = None - one_of_schemas: Set[str] = { "ReadAbiFunction", "SolanaInstructionWithValue" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = ReadCallFunctionDtoAbiFunction.model_construct() - error_messages = [] - match = 0 - # validate data type: ReadAbiFunction - if not isinstance(v, ReadAbiFunction): - error_messages.append(f"Error! Input type `{type(v)}` is not `ReadAbiFunction`") - else: - match += 1 - # validate data type: SolanaInstructionWithValue - if not isinstance(v, SolanaInstructionWithValue): - error_messages.append(f"Error! Input type `{type(v)}` is not `SolanaInstructionWithValue`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in ReadCallFunctionDtoAbiFunction with oneOf schemas: ReadAbiFunction, SolanaInstructionWithValue. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in ReadCallFunctionDtoAbiFunction with oneOf schemas: ReadAbiFunction, SolanaInstructionWithValue. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into ReadAbiFunction - try: - instance.actual_instance = ReadAbiFunction.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into SolanaInstructionWithValue - try: - instance.actual_instance = SolanaInstructionWithValue.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into ReadCallFunctionDtoAbiFunction with oneOf schemas: ReadAbiFunction, SolanaInstructionWithValue. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into ReadCallFunctionDtoAbiFunction with oneOf schemas: ReadAbiFunction, SolanaInstructionWithValue. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], ReadAbiFunction, SolanaInstructionWithValue]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVhZF9hYmlfZnVuY3Rpb24gaW1wb3J0IFJlYWRBYmlGdW5jdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvbGFuYV9pbnN0cnVjdGlvbl93aXRoX3ZhbHVlIGltcG9ydCBTb2xhbmFJbnN0cnVjdGlvbldpdGhWYWx1ZQpmcm9tIHB5ZGFudGljIGltcG9ydCBTdHJpY3RTdHIsIEZpZWxkCmZyb20gdHlwaW5nIGltcG9ydCBVbmlvbiwgTGlzdCwgU2V0LCBPcHRpb25hbCwgRGljdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBMaXRlcmFsLCBTZWxmCgpSRUFEQ0FMTEZVTkNUSU9ORFRPQUJJRlVOQ1RJT05fT05FX09GX1NDSEVNQVMgPSBbIlJlYWRBYmlGdW5jdGlvbiIsICJTb2xhbmFJbnN0cnVjdGlvbldpdGhWYWx1ZSJdCgpjbGFzcyBSZWFkQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb24oQmFzZU1vZGVsKToKICAgICIiIgogICAgUmVhZENhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uCiAgICAiIiIKICAgICMgZGF0YSB0eXBlOiBSZWFkQWJpRnVuY3Rpb24KICAgIG9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvcjogT3B0aW9uYWxbUmVhZEFiaUZ1bmN0aW9uXSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBTb2xhbmFJbnN0cnVjdGlvbldpdGhWYWx1ZQogICAgb25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yOiBPcHRpb25hbFtTb2xhbmFJbnN0cnVjdGlvbldpdGhWYWx1ZV0gPSBOb25lCiAgICBhY3R1YWxfaW5zdGFuY2U6IE9wdGlvbmFsW1VuaW9uW1JlYWRBYmlGdW5jdGlvbiwgU29sYW5hSW5zdHJ1Y3Rpb25XaXRoVmFsdWVdXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgIlJlYWRBYmlGdW5jdGlvbiIsICJTb2xhbmFJbnN0cnVjdGlvbldpdGhWYWx1ZSIgfQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKSAtPiBOb25lOgogICAgICAgIGlmIGFyZ3M6CiAgICAgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIG9ubHkgMSBpcyBhbGxvd2VkIHRvIHNldCBgYWN0dWFsX2luc3RhbmNlYCIpCiAgICAgICAgICAgIGlmIGt3YXJnczoKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwga2V5d29yZCBhcmd1bWVudHMgY2Fubm90IGJlIHVzZWQuIikKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhhY3R1YWxfaW5zdGFuY2U9YXJnc1swXSkKICAgICAgICBlbHNlOgogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FjdHVhbF9pbnN0YW5jZScpCiAgICBkZWYgYWN0dWFsX2luc3RhbmNlX211c3RfdmFsaWRhdGVfb25lb2YoY2xzLCB2KToKICAgICAgICBpbnN0YW5jZSA9IFJlYWRDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbi5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogUmVhZEFiaUZ1bmN0aW9uCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgUmVhZEFiaUZ1bmN0aW9uKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBSZWFkQWJpRnVuY3Rpb25gIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IFNvbGFuYUluc3RydWN0aW9uV2l0aFZhbHVlCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgU29sYW5hSW5zdHJ1Y3Rpb25XaXRoVmFsdWUpOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYFNvbGFuYUluc3RydWN0aW9uV2l0aFZhbHVlYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBSZWFkQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb24gd2l0aCBvbmVPZiBzY2hlbWFzOiBSZWFkQWJpRnVuY3Rpb24sIFNvbGFuYUluc3RydWN0aW9uV2l0aFZhbHVlLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIFJlYWRDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbiB3aXRoIG9uZU9mIHNjaGVtYXM6IFJlYWRBYmlGdW5jdGlvbiwgU29sYW5hSW5zdHJ1Y3Rpb25XaXRoVmFsdWUuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBVbmlvbltzdHIsIERpY3Rbc3RyLCBBbnldXSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCgogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIFJlYWRBYmlGdW5jdGlvbgogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gUmVhZEFiaUZ1bmN0aW9uLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIFNvbGFuYUluc3RydWN0aW9uV2l0aFZhbHVlCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBTb2xhbmFJbnN0cnVjdGlvbldpdGhWYWx1ZS5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIFJlYWRDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbiB3aXRoIG9uZU9mIHNjaGVtYXM6IFJlYWRBYmlGdW5jdGlvbiwgU29sYW5hSW5zdHJ1Y3Rpb25XaXRoVmFsdWUuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gUmVhZENhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uIHdpdGggb25lT2Ygc2NoZW1hczogUmVhZEFiaUZ1bmN0aW9uLCBTb2xhbmFJbnN0cnVjdGlvbldpdGhWYWx1ZS4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiAibnVsbCIKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2pzb24iKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbik6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKCkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLmFjdHVhbF9pbnN0YW5jZSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBPcHRpb25hbFtVbmlvbltEaWN0W3N0ciwgQW55XSwgUmVhZEFiaUZ1bmN0aW9uLCBTb2xhbmFJbnN0cnVjdGlvbldpdGhWYWx1ZV1dOgogICAgICAgICIiIlJldHVybnMgdGhlIGRpY3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19kaWN0IikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QpOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCgpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgIyBwcmltaXRpdmUgdHlwZQogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/recipient_handle.py b/fireblocks/models/recipient_handle.py index fbf666bd..6fd40be9 100644 --- a/fireblocks/models/recipient_handle.py +++ b/fireblocks/models/recipient_handle.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class RecipientHandle(BaseModel): - """ - RecipientHandle - """ # noqa: E501 - type: StrictStr - value: StrictStr = Field(description="The value of the recipient handle") - __properties: ClassVar[List[str]] = ["type", "value"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['EMAIL']): - raise ValueError("must be one of enum values ('EMAIL')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of RecipientHandle from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of RecipientHandle from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "value": obj.get("value") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUmVjaXBpZW50SGFuZGxlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFJlY2lwaWVudEhhbmRsZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogU3RyaWN0U3RyCiAgICB2YWx1ZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB2YWx1ZSBvZiB0aGUgcmVjaXBpZW50IGhhbmRsZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiLCAidmFsdWUiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3R5cGUnKQogICAgZGVmIHR5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnRU1BSUwnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnRU1BSUwnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVjaXBpZW50SGFuZGxlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlY2lwaWVudEhhbmRsZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAidmFsdWUiOiBvYmouZ2V0KCJ2YWx1ZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/redeem_funds_to_linked_dda_response.py b/fireblocks/models/redeem_funds_to_linked_dda_response.py index 63f46b3a..d2214d73 100644 --- a/fireblocks/models/redeem_funds_to_linked_dda_response.py +++ b/fireblocks/models/redeem_funds_to_linked_dda_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class RedeemFundsToLinkedDDAResponse(BaseModel): - """ - RedeemFundsToLinkedDDAResponse - """ # noqa: E501 - success: StrictBool = Field(description="Indicates whether the funds were successfully redeemed to the linked DDA") - __properties: ClassVar[List[str]] = ["success"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of RedeemFundsToLinkedDDAResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of RedeemFundsToLinkedDDAResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "success": obj.get("success") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBSZWRlZW1GdW5kc1RvTGlua2VkRERBUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgUmVkZWVtRnVuZHNUb0xpbmtlZEREQVJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzdWNjZXNzOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IkluZGljYXRlcyB3aGV0aGVyIHRoZSBmdW5kcyB3ZXJlIHN1Y2Nlc3NmdWxseSByZWRlZW1lZCB0byB0aGUgbGlua2VkIEREQSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInN1Y2Nlc3MiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlZGVlbUZ1bmRzVG9MaW5rZWREREFSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZWRlZW1GdW5kc1RvTGlua2VkRERBUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3VjY2VzcyI6IG9iai5nZXQoInN1Y2Nlc3MiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/register_new_asset_request.py b/fireblocks/models/register_new_asset_request.py index 6ff04775..93e6ceaa 100644 --- a/fireblocks/models/register_new_asset_request.py +++ b/fireblocks/models/register_new_asset_request.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class RegisterNewAssetRequest(BaseModel): - """ - RegisterNewAssetRequest - """ # noqa: E501 - blockchain_id: StrictStr = Field(description="Native asset ID of the blockchain", alias="blockchainId") - address: StrictStr = Field(description="Asset address. - EVM-based chains: token contract address - Stellar (XLM): issuer address - Algorand (ALGO): asset ID - TRON (TRX): token contract address - NEAR: token address - Solana: token's mint account address - Sui: token's type - TON: token's address ") - symbol: Optional[StrictStr] = Field(default=None, description="Required for Stellar only, asset code is expected.") - __properties: ClassVar[List[str]] = ["blockchainId", "address", "symbol"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of RegisterNewAssetRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of RegisterNewAssetRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "blockchainId": obj.get("blockchainId"), - "address": obj.get("address"), - "symbol": obj.get("symbol") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBSZWdpc3Rlck5ld0Fzc2V0UmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSZWdpc3Rlck5ld0Fzc2V0UmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgYmxvY2tjaGFpbl9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249Ik5hdGl2ZSBhc3NldCBJRCBvZiB0aGUgYmxvY2tjaGFpbiIsIGFsaWFzPSJibG9ja2NoYWluSWQiKQogICAgYWRkcmVzczogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkFzc2V0IGFkZHJlc3MuIC0gRVZNLWJhc2VkIGNoYWluczogdG9rZW4gY29udHJhY3QgYWRkcmVzcyAtIFN0ZWxsYXIgKFhMTSk6IGlzc3VlciBhZGRyZXNzIC0gQWxnb3JhbmQgKEFMR08pOiBhc3NldCBJRCAtIFRST04gKFRSWCk6IHRva2VuIGNvbnRyYWN0IGFkZHJlc3MgLSBORUFSOiB0b2tlbiBhZGRyZXNzIC0gU29sYW5hOiB0b2tlbidzIG1pbnQgYWNjb3VudCBhZGRyZXNzIC0gU3VpOiB0b2tlbidzIHR5cGUgLSBUT046IHRva2VuJ3MgYWRkcmVzcyAiKQogICAgc3ltYm9sOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUmVxdWlyZWQgZm9yIFN0ZWxsYXIgb25seSwgYXNzZXQgY29kZSBpcyBleHBlY3RlZC4iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJibG9ja2NoYWluSWQiLCAiYWRkcmVzcyIsICJzeW1ib2wiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlZ2lzdGVyTmV3QXNzZXRSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlZ2lzdGVyTmV3QXNzZXRSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImJsb2NrY2hhaW5JZCI6IG9iai5nZXQoImJsb2NrY2hhaW5JZCIpLAogICAgICAgICAgICAiYWRkcmVzcyI6IG9iai5nZXQoImFkZHJlc3MiKSwKICAgICAgICAgICAgInN5bWJvbCI6IG9iai5nZXQoInN5bWJvbCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/reissue_multichain_token_request.py b/fireblocks/models/reissue_multichain_token_request.py index 0c113c56..d54e5472 100644 --- a/fireblocks/models/reissue_multichain_token_request.py +++ b/fireblocks/models/reissue_multichain_token_request.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class ReissueMultichainTokenRequest(BaseModel): - """ - ReissueMultichainTokenRequest - """ # noqa: E501 - vault_account_id: StrictStr = Field(description="The id of the vault account that initiated the request to issue the token", alias="vaultAccountId") - chains: List[StrictStr] = Field(description="The base asset identifiers of the blockchains you want to deploy to") - use_gasless: Optional[StrictBool] = Field(default=None, description="Whether to use gasless deployment or not", alias="useGasless") - fee: Optional[StrictStr] = Field(default=None, description="Max fee amount for the deploy request. Interchangeable with the 'feeLevel' field") - fee_level: Optional[StrictStr] = Field(default=None, description="Fee level for the deploy request. Interchangeable with the 'fee' field", alias="feeLevel") - __properties: ClassVar[List[str]] = ["vaultAccountId", "chains", "useGasless", "fee", "feeLevel"] - - @field_validator('fee_level') - def fee_level_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['LOW', 'MEDIUM', 'HIGH']): - raise ValueError("must be one of enum values ('LOW', 'MEDIUM', 'HIGH')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ReissueMultichainTokenRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ReissueMultichainTokenRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "vaultAccountId": obj.get("vaultAccountId"), - "chains": obj.get("chains"), - "useGasless": obj.get("useGasless"), - "fee": obj.get("fee"), - "feeLevel": obj.get("feeLevel") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFJlaXNzdWVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFJlaXNzdWVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB2YXVsdF9hY2NvdW50X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGlkIG9mIHRoZSB2YXVsdCBhY2NvdW50IHRoYXQgaW5pdGlhdGVkIHRoZSByZXF1ZXN0IHRvIGlzc3VlIHRoZSB0b2tlbiIsIGFsaWFzPSJ2YXVsdEFjY291bnRJZCIpCiAgICBjaGFpbnM6IExpc3RbU3RyaWN0U3RyXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmFzZSBhc3NldCBpZGVudGlmaWVycyBvZiB0aGUgYmxvY2tjaGFpbnMgeW91IHdhbnQgdG8gZGVwbG95IHRvIikKICAgIHVzZV9nYXNsZXNzOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IldoZXRoZXIgdG8gdXNlIGdhc2xlc3MgZGVwbG95bWVudCBvciBub3QiLCBhbGlhcz0idXNlR2FzbGVzcyIpCiAgICBmZWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJNYXggZmVlIGFtb3VudCBmb3IgdGhlIGRlcGxveSByZXF1ZXN0LiBJbnRlcmNoYW5nZWFibGUgd2l0aCB0aGUgJ2ZlZUxldmVsJyBmaWVsZCIpCiAgICBmZWVfbGV2ZWw6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJGZWUgbGV2ZWwgZm9yIHRoZSBkZXBsb3kgcmVxdWVzdC4gSW50ZXJjaGFuZ2VhYmxlIHdpdGggdGhlICdmZWUnIGZpZWxkIiwgYWxpYXM9ImZlZUxldmVsIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidmF1bHRBY2NvdW50SWQiLCAiY2hhaW5zIiwgInVzZUdhc2xlc3MiLCAiZmVlIiwgImZlZUxldmVsIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdmZWVfbGV2ZWwnKQogICAgZGVmIGZlZV9sZXZlbF92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnTE9XJywgJ01FRElVTScsICdISUdIJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0xPVycsICdNRURJVU0nLCAnSElHSCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZWlzc3VlTXVsdGljaGFpblRva2VuUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZWlzc3VlTXVsdGljaGFpblRva2VuUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ2YXVsdEFjY291bnRJZCI6IG9iai5nZXQoInZhdWx0QWNjb3VudElkIiksCiAgICAgICAgICAgICJjaGFpbnMiOiBvYmouZ2V0KCJjaGFpbnMiKSwKICAgICAgICAgICAgInVzZUdhc2xlc3MiOiBvYmouZ2V0KCJ1c2VHYXNsZXNzIiksCiAgICAgICAgICAgICJmZWUiOiBvYmouZ2V0KCJmZWUiKSwKICAgICAgICAgICAgImZlZUxldmVsIjogb2JqLmdldCgiZmVlTGV2ZWwiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/related_request.py b/fireblocks/models/related_request.py index 76d5f9b8..0e40cd34 100644 --- a/fireblocks/models/related_request.py +++ b/fireblocks/models/related_request.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class RelatedRequest(BaseModel): - """ - RelatedRequest - """ # noqa: E501 - status: StrictStr = Field(description="The status of the request") - in_progress: StrictBool = Field(description="Indicates whether there is an ongoing action for this position related to this request", alias="inProgress") - amount: StrictStr = Field(description="Amount of tokens") - tx_id: StrictStr = Field(description="The transaction ID of the ongoing request", alias="txId") - __properties: ClassVar[List[str]] = ["status", "inProgress", "amount", "txId"] - - @field_validator('status') - def status_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['deactivating']): - raise ValueError("must be one of enum values ('deactivating')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of RelatedRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of RelatedRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "status": obj.get("status"), - "inProgress": obj.get("inProgress"), - "amount": obj.get("amount"), - "txId": obj.get("txId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUmVsYXRlZFJlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgUmVsYXRlZFJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHN0YXR1czogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBzdGF0dXMgb2YgdGhlIHJlcXVlc3QiKQogICAgaW5fcHJvZ3Jlc3M6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iSW5kaWNhdGVzIHdoZXRoZXIgdGhlcmUgaXMgYW4gb25nb2luZyBhY3Rpb24gZm9yIHRoaXMgcG9zaXRpb24gcmVsYXRlZCB0byB0aGlzIHJlcXVlc3QiLCBhbGlhcz0iaW5Qcm9ncmVzcyIpCiAgICBhbW91bnQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBbW91bnQgb2YgdG9rZW5zIikKICAgIHR4X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHRyYW5zYWN0aW9uIElEIG9mIHRoZSBvbmdvaW5nIHJlcXVlc3QiLCBhbGlhcz0idHhJZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInN0YXR1cyIsICJpblByb2dyZXNzIiwgImFtb3VudCIsICJ0eElkIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdzdGF0dXMnKQogICAgZGVmIHN0YXR1c192YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydkZWFjdGl2YXRpbmcnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnZGVhY3RpdmF0aW5nJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlbGF0ZWRSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlbGF0ZWRSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAiaW5Qcm9ncmVzcyI6IG9iai5nZXQoImluUHJvZ3Jlc3MiKSwKICAgICAgICAgICAgImFtb3VudCI6IG9iai5nZXQoImFtb3VudCIpLAogICAgICAgICAgICAidHhJZCI6IG9iai5nZXQoInR4SWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/related_transaction.py b/fireblocks/models/related_transaction.py index 475dce10..fcddfc00 100644 --- a/fireblocks/models/related_transaction.py +++ b/fireblocks/models/related_transaction.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class RelatedTransaction(BaseModel): - """ - RelatedTransaction - """ # noqa: E501 - tx_id: StrictStr = Field(description="The transaction ID", alias="txId") - completed: StrictBool = Field(description="Is the transaction completed or not") - __properties: ClassVar[List[str]] = ["txId", "completed"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of RelatedTransaction from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of RelatedTransaction from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "txId": obj.get("txId"), - "completed": obj.get("completed") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFJlbGF0ZWRUcmFuc2FjdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSZWxhdGVkVHJhbnNhY3Rpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR4X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHRyYW5zYWN0aW9uIElEIiwgYWxpYXM9InR4SWQiKQogICAgY29tcGxldGVkOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IklzIHRoZSB0cmFuc2FjdGlvbiBjb21wbGV0ZWQgb3Igbm90IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidHhJZCIsICJjb21wbGV0ZWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlbGF0ZWRUcmFuc2FjdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZWxhdGVkVHJhbnNhY3Rpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHhJZCI6IG9iai5nZXQoInR4SWQiKSwKICAgICAgICAgICAgImNvbXBsZXRlZCI6IG9iai5nZXQoImNvbXBsZXRlZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/remove_collateral_request_body.py b/fireblocks/models/remove_collateral_request_body.py index dfdcfba8..e8632d25 100644 --- a/fireblocks/models/remove_collateral_request_body.py +++ b/fireblocks/models/remove_collateral_request_body.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.transaction_request import TransactionRequest -from typing import Optional, Set -from typing_extensions import Self - -class RemoveCollateralRequestBody(BaseModel): - """ - RemoveCollateralRequestBody - """ # noqa: E501 - transaction_request: Optional[TransactionRequest] = Field(default=None, alias="transactionRequest") - is_dst_collateral: Optional[StrictBool] = Field(default=None, description="optional", alias="isDstCollateral") - __properties: ClassVar[List[str]] = ["transactionRequest", "isDstCollateral"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of RemoveCollateralRequestBody from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of transaction_request - if self.transaction_request: - _dict['transactionRequest'] = self.transaction_request.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of RemoveCollateralRequestBody from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "transactionRequest": TransactionRequest.from_dict(obj["transactionRequest"]) if obj.get("transactionRequest") is not None else None, - "isDstCollateral": obj.get("isDstCollateral") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZXF1ZXN0IGltcG9ydCBUcmFuc2FjdGlvblJlcXVlc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUmVtb3ZlQ29sbGF0ZXJhbFJlcXVlc3RCb2R5KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFJlbW92ZUNvbGxhdGVyYWxSZXF1ZXN0Qm9keQogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHJhbnNhY3Rpb25fcmVxdWVzdDogT3B0aW9uYWxbVHJhbnNhY3Rpb25SZXF1ZXN0XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InRyYW5zYWN0aW9uUmVxdWVzdCIpCiAgICBpc19kc3RfY29sbGF0ZXJhbDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJvcHRpb25hbCIsIGFsaWFzPSJpc0RzdENvbGxhdGVyYWwiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0cmFuc2FjdGlvblJlcXVlc3QiLCAiaXNEc3RDb2xsYXRlcmFsIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZW1vdmVDb2xsYXRlcmFsUmVxdWVzdEJvZHkgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiB0cmFuc2FjdGlvbl9yZXF1ZXN0CiAgICAgICAgaWYgc2VsZi50cmFuc2FjdGlvbl9yZXF1ZXN0OgogICAgICAgICAgICBfZGljdFsndHJhbnNhY3Rpb25SZXF1ZXN0J10gPSBzZWxmLnRyYW5zYWN0aW9uX3JlcXVlc3QudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZW1vdmVDb2xsYXRlcmFsUmVxdWVzdEJvZHkgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHJhbnNhY3Rpb25SZXF1ZXN0IjogVHJhbnNhY3Rpb25SZXF1ZXN0LmZyb21fZGljdChvYmpbInRyYW5zYWN0aW9uUmVxdWVzdCJdKSBpZiBvYmouZ2V0KCJ0cmFuc2FjdGlvblJlcXVlc3QiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJpc0RzdENvbGxhdGVyYWwiOiBvYmouZ2V0KCJpc0RzdENvbGxhdGVyYWwiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/remove_layer_zero_adapter_failed_result.py b/fireblocks/models/remove_layer_zero_adapter_failed_result.py index 503fa7d9..4d677344 100644 --- a/fireblocks/models/remove_layer_zero_adapter_failed_result.py +++ b/fireblocks/models/remove_layer_zero_adapter_failed_result.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class RemoveLayerZeroAdapterFailedResult(BaseModel): - """ - RemoveLayerZeroAdapterFailedResult - """ # noqa: E501 - adapter_token_link_id: StrictStr = Field(description="The adapter token link ID that failed to be removed", alias="adapterTokenLinkId") - __properties: ClassVar[List[str]] = ["adapterTokenLinkId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of RemoveLayerZeroAdapterFailedResult from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of RemoveLayerZeroAdapterFailedResult from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "adapterTokenLinkId": obj.get("adapterTokenLinkId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJGYWlsZWRSZXN1bHQoQmFzZU1vZGVsKToKICAgICIiIgogICAgUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlckZhaWxlZFJlc3VsdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgYWRhcHRlcl90b2tlbl9saW5rX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGFkYXB0ZXIgdG9rZW4gbGluayBJRCB0aGF0IGZhaWxlZCB0byBiZSByZW1vdmVkIiwgYWxpYXM9ImFkYXB0ZXJUb2tlbkxpbmtJZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFkYXB0ZXJUb2tlbkxpbmtJZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlckZhaWxlZFJlc3VsdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZW1vdmVMYXllclplcm9BZGFwdGVyRmFpbGVkUmVzdWx0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFkYXB0ZXJUb2tlbkxpbmtJZCI6IG9iai5nZXQoImFkYXB0ZXJUb2tlbkxpbmtJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/remove_layer_zero_adapters_request.py b/fireblocks/models/remove_layer_zero_adapters_request.py index 715cf593..77866349 100644 --- a/fireblocks/models/remove_layer_zero_adapters_request.py +++ b/fireblocks/models/remove_layer_zero_adapters_request.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class RemoveLayerZeroAdaptersRequest(BaseModel): - """ - RemoveLayerZeroAdaptersRequest - """ # noqa: E501 - vault_account_id: StrictStr = Field(description="The vault account ID to use for signing the role revocation transactions.", alias="vaultAccountId") - adapter_token_link_ids: Annotated[List[StrictStr], Field(min_length=1)] = Field(description="A list of adapter token link IDs to be deactivated and unlinked.", alias="adapterTokenLinkIds") - __properties: ClassVar[List[str]] = ["vaultAccountId", "adapterTokenLinkIds"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of RemoveLayerZeroAdaptersRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of RemoveLayerZeroAdaptersRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "vaultAccountId": obj.get("vaultAccountId"), - "adapterTokenLinkIds": obj.get("adapterTokenLinkIds") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBSZW1vdmVMYXllclplcm9BZGFwdGVyc1JlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB2YXVsdF9hY2NvdW50X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHZhdWx0IGFjY291bnQgSUQgdG8gdXNlIGZvciBzaWduaW5nIHRoZSByb2xlIHJldm9jYXRpb24gdHJhbnNhY3Rpb25zLiIsIGFsaWFzPSJ2YXVsdEFjY291bnRJZCIpCiAgICBhZGFwdGVyX3Rva2VuX2xpbmtfaWRzOiBBbm5vdGF0ZWRbTGlzdFtTdHJpY3RTdHJdLCBGaWVsZChtaW5fbGVuZ3RoPTEpXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBIGxpc3Qgb2YgYWRhcHRlciB0b2tlbiBsaW5rIElEcyB0byBiZSBkZWFjdGl2YXRlZCBhbmQgdW5saW5rZWQuIiwgYWxpYXM9ImFkYXB0ZXJUb2tlbkxpbmtJZHMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ2YXVsdEFjY291bnRJZCIsICJhZGFwdGVyVG9rZW5MaW5rSWRzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZW1vdmVMYXllclplcm9BZGFwdGVyc1JlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInZhdWx0QWNjb3VudElkIjogb2JqLmdldCgidmF1bHRBY2NvdW50SWQiKSwKICAgICAgICAgICAgImFkYXB0ZXJUb2tlbkxpbmtJZHMiOiBvYmouZ2V0KCJhZGFwdGVyVG9rZW5MaW5rSWRzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/remove_layer_zero_adapters_response.py b/fireblocks/models/remove_layer_zero_adapters_response.py index ad7e9ee8..c43e61a1 100644 --- a/fireblocks/models/remove_layer_zero_adapters_response.py +++ b/fireblocks/models/remove_layer_zero_adapters_response.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.remove_layer_zero_adapter_failed_result import RemoveLayerZeroAdapterFailedResult -from typing import Optional, Set -from typing_extensions import Self - -class RemoveLayerZeroAdaptersResponse(BaseModel): - """ - RemoveLayerZeroAdaptersResponse - """ # noqa: E501 - deactivated: List[StrictStr] = Field(description="List of successfully deactivated adapter token link IDs") - failed: List[RemoveLayerZeroAdapterFailedResult] = Field(description="List of adapter token link IDs that failed to be removed") - __properties: ClassVar[List[str]] = ["deactivated", "failed"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of RemoveLayerZeroAdaptersResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in failed (list) - _items = [] - if self.failed: - for _item_failed in self.failed: - if _item_failed: - _items.append(_item_failed.to_dict()) - _dict['failed'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of RemoveLayerZeroAdaptersResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "deactivated": obj.get("deactivated"), - "failed": [RemoveLayerZeroAdapterFailedResult.from_dict(_item) for _item in obj["failed"]] if obj.get("failed") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmVtb3ZlX2xheWVyX3plcm9fYWRhcHRlcl9mYWlsZWRfcmVzdWx0IGltcG9ydCBSZW1vdmVMYXllclplcm9BZGFwdGVyRmFpbGVkUmVzdWx0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJzUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGVhY3RpdmF0ZWQ6IExpc3RbU3RyaWN0U3RyXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJMaXN0IG9mIHN1Y2Nlc3NmdWxseSBkZWFjdGl2YXRlZCBhZGFwdGVyIHRva2VuIGxpbmsgSURzIikKICAgIGZhaWxlZDogTGlzdFtSZW1vdmVMYXllclplcm9BZGFwdGVyRmFpbGVkUmVzdWx0XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJMaXN0IG9mIGFkYXB0ZXIgdG9rZW4gbGluayBJRHMgdGhhdCBmYWlsZWQgdG8gYmUgcmVtb3ZlZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRlYWN0aXZhdGVkIiwgImZhaWxlZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBmYWlsZWQgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmZhaWxlZDoKICAgICAgICAgICAgZm9yIF9pdGVtX2ZhaWxlZCBpbiBzZWxmLmZhaWxlZDoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2ZhaWxlZDoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2ZhaWxlZC50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydmYWlsZWQnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkZWFjdGl2YXRlZCI6IG9iai5nZXQoImRlYWN0aXZhdGVkIiksCiAgICAgICAgICAgICJmYWlsZWQiOiBbUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlckZhaWxlZFJlc3VsdC5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImZhaWxlZCJdXSBpZiBvYmouZ2V0KCJmYWlsZWQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/remove_layer_zero_peers_request.py b/fireblocks/models/remove_layer_zero_peers_request.py index 908c28a6..a71f946b 100644 --- a/fireblocks/models/remove_layer_zero_peers_request.py +++ b/fireblocks/models/remove_layer_zero_peers_request.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class RemoveLayerZeroPeersRequest(BaseModel): - """ - RemoveLayerZeroPeersRequest - """ # noqa: E501 - vault_account_id: StrictStr = Field(description="The id of the vault account that will be used to inititate transactions ot set peers", alias="vaultAccountId") - source_adapter_token_link_id: StrictStr = Field(description="`token_link` ID of the source adapter contract", alias="sourceAdapterTokenLinkId") - destination_adapter_token_link_ids: Annotated[List[StrictStr], Field(min_length=1)] = Field(description="Array of `token_link` IDs for destination adapter contracts", alias="destinationAdapterTokenLinkIds") - bidirectional: StrictBool = Field(description="If true, also sets peers from destination(s) back to source") - __properties: ClassVar[List[str]] = ["vaultAccountId", "sourceAdapterTokenLinkId", "destinationAdapterTokenLinkIds", "bidirectional"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of RemoveLayerZeroPeersRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of RemoveLayerZeroPeersRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "vaultAccountId": obj.get("vaultAccountId"), - "sourceAdapterTokenLinkId": obj.get("sourceAdapterTokenLinkId"), - "destinationAdapterTokenLinkIds": obj.get("destinationAdapterTokenLinkIds"), - "bidirectional": obj.get("bidirectional") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBSZW1vdmVMYXllclplcm9QZWVyc1JlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgUmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB2YXVsdF9hY2NvdW50X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGlkIG9mIHRoZSB2YXVsdCBhY2NvdW50IHRoYXQgd2lsbCBiZSB1c2VkIHRvIGluaXRpdGF0ZSB0cmFuc2FjdGlvbnMgb3Qgc2V0IHBlZXJzIiwgYWxpYXM9InZhdWx0QWNjb3VudElkIikKICAgIHNvdXJjZV9hZGFwdGVyX3Rva2VuX2xpbmtfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJgdG9rZW5fbGlua2AgSUQgb2YgdGhlIHNvdXJjZSBhZGFwdGVyIGNvbnRyYWN0IiwgYWxpYXM9InNvdXJjZUFkYXB0ZXJUb2tlbkxpbmtJZCIpCiAgICBkZXN0aW5hdGlvbl9hZGFwdGVyX3Rva2VuX2xpbmtfaWRzOiBBbm5vdGF0ZWRbTGlzdFtTdHJpY3RTdHJdLCBGaWVsZChtaW5fbGVuZ3RoPTEpXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBcnJheSBvZiBgdG9rZW5fbGlua2AgSURzIGZvciBkZXN0aW5hdGlvbiBhZGFwdGVyIGNvbnRyYWN0cyIsIGFsaWFzPSJkZXN0aW5hdGlvbkFkYXB0ZXJUb2tlbkxpbmtJZHMiKQogICAgYmlkaXJlY3Rpb25hbDogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJZiB0cnVlLCBhbHNvIHNldHMgcGVlcnMgZnJvbSBkZXN0aW5hdGlvbihzKSBiYWNrIHRvIHNvdXJjZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInZhdWx0QWNjb3VudElkIiwgInNvdXJjZUFkYXB0ZXJUb2tlbkxpbmtJZCIsICJkZXN0aW5hdGlvbkFkYXB0ZXJUb2tlbkxpbmtJZHMiLCAiYmlkaXJlY3Rpb25hbCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlbW92ZUxheWVyWmVyb1BlZXJzUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ2YXVsdEFjY291bnRJZCI6IG9iai5nZXQoInZhdWx0QWNjb3VudElkIiksCiAgICAgICAgICAgICJzb3VyY2VBZGFwdGVyVG9rZW5MaW5rSWQiOiBvYmouZ2V0KCJzb3VyY2VBZGFwdGVyVG9rZW5MaW5rSWQiKSwKICAgICAgICAgICAgImRlc3RpbmF0aW9uQWRhcHRlclRva2VuTGlua0lkcyI6IG9iai5nZXQoImRlc3RpbmF0aW9uQWRhcHRlclRva2VuTGlua0lkcyIpLAogICAgICAgICAgICAiYmlkaXJlY3Rpb25hbCI6IG9iai5nZXQoImJpZGlyZWN0aW9uYWwiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/remove_layer_zero_peers_response.py b/fireblocks/models/remove_layer_zero_peers_response.py index 32690954..f7ee3eca 100644 --- a/fireblocks/models/remove_layer_zero_peers_response.py +++ b/fireblocks/models/remove_layer_zero_peers_response.py @@ -1,89 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class RemoveLayerZeroPeersResponse(BaseModel): - """ - RemoveLayerZeroPeersResponse - """ # noqa: E501 - txn_ids: Annotated[List[StrictStr], Field(min_length=1)] = Field(description="Array of fireblocks transaction IDs, each corresponding to an on-chain transaction to set peers", alias="txnIds") - __properties: ClassVar[List[str]] = ["txnIds"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of RemoveLayerZeroPeersResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of RemoveLayerZeroPeersResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "txnIds": obj.get("txnIds") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBSZW1vdmVMYXllclplcm9QZWVyc1Jlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFJlbW92ZUxheWVyWmVyb1BlZXJzUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR4bl9pZHM6IEFubm90YXRlZFtMaXN0W1N0cmljdFN0cl0sIEZpZWxkKG1pbl9sZW5ndGg9MSldID0gRmllbGQoZGVzY3JpcHRpb249IkFycmF5IG9mIGZpcmVibG9ja3MgdHJhbnNhY3Rpb24gSURzLCBlYWNoIGNvcnJlc3BvbmRpbmcgdG8gYW4gb24tY2hhaW4gdHJhbnNhY3Rpb24gdG8gc2V0IHBlZXJzIiwgYWxpYXM9InR4bklkcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR4bklkcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZW1vdmVMYXllclplcm9QZWVyc1Jlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInR4bklkcyI6IG9iai5nZXQoInR4bklkcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/rename_connected_account_request.py b/fireblocks/models/rename_connected_account_request.py index 464b06e1..dc30f3f6 100644 --- a/fireblocks/models/rename_connected_account_request.py +++ b/fireblocks/models/rename_connected_account_request.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class RenameConnectedAccountRequest(BaseModel): - """ - RenameConnectedAccountRequest - """ # noqa: E501 - account_name: StrictStr = Field(description="The new name for the connected account", alias="accountName") - __properties: ClassVar[List[str]] = ["accountName"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of RenameConnectedAccountRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of RenameConnectedAccountRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountName": obj.get("accountName") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFJlbmFtZUNvbm5lY3RlZEFjY291bnRSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFJlbmFtZUNvbm5lY3RlZEFjY291bnRSZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhY2NvdW50X25hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgbmV3IG5hbWUgZm9yIHRoZSBjb25uZWN0ZWQgYWNjb3VudCIsIGFsaWFzPSJhY2NvdW50TmFtZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFjY291bnROYW1lIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhY2NvdW50TmFtZSI6IG9iai5nZXQoImFjY291bnROYW1lIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/rename_connected_account_response.py b/fireblocks/models/rename_connected_account_response.py index a470b8c9..dd4210ed 100644 --- a/fireblocks/models/rename_connected_account_response.py +++ b/fireblocks/models/rename_connected_account_response.py @@ -1,72 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class RenameConnectedAccountResponse(str, Enum): - """ - Status of the rename operation - """ - - """ - allowed enum values - """ - SUCCESS = 'SUCCESS' - UNAUTHORISED__USER = 'UNAUTHORISED__USER' - UNAUTHORISED__DEVICE = 'UNAUTHORISED__DEVICE' - INVALID_UNMANAGED_WALLET = 'INVALID_UNMANAGED_WALLET' - INVALID_EXCHANGE_ACCOUNT = 'INVALID_EXCHANGE_ACCOUNT' - NO_ACTIVE_ADMINS = 'NO_ACTIVE_ADMINS' - TIMEOUT = 'TIMEOUT' - INVALID_PARAMETERS = 'INVALID_PARAMETERS' - INTERNAL_ERROR = 'INTERNAL_ERROR' - INVALID_CREDENTIALS = 'INVALID_CREDENTIALS' - INVALID_OTP = 'INVALID_OTP' - INVALID_OTP_METHOD = 'INVALID_OTP_METHOD' - INVALID_NETWORK_CONNECTION = 'INVALID_NETWORK_CONNECTION' - NETWORK_CONNECTION_EXISTS = 'NETWORK_CONNECTION_EXISTS' - INVALID_CREDENTIALS__UNSUPPORTED_PROVIDER = 'INVALID_CREDENTIALS__UNSUPPORTED_PROVIDER' - UNSUPPORTED_ALGORITHM = 'UNSUPPORTED_ALGORITHM' - INVALID_CREDENTIALS__IP_WHITELISTING = 'INVALID_CREDENTIALS__IP_WHITELISTING' - INVALID_CREDENTIALS__OTP_FAILED = 'INVALID_CREDENTIALS__OTP_FAILED' - UNSUPPORTED_ASSET = 'UNSUPPORTED_ASSET' - ASSET_ALREADY_EXISTS = 'ASSET_ALREADY_EXISTS' - ENV_UNSUPPORTED_ASSET = 'ENV_UNSUPPORTED_ASSET' - NO_CONFIG_CHANGE_NEEDED = 'NO_CONFIG_CHANGE_NEEDED' - SIMILAR_REQUEST_ALREADY_PENDING = 'SIMILAR_REQUEST_ALREADY_PENDING' - CLOUD_COSIGNER_ALREADY_EXISTS = 'CLOUD_COSIGNER_ALREADY_EXISTS' - ILLEGAL_OPERATION = 'ILLEGAL_OPERATION' - OVERRIDING_PENDING_REQUEST = 'OVERRIDING_PENDING_REQUEST' - OWNER_NOT_IN_GROUP = 'OWNER_NOT_IN_GROUP' - INVALID_THIRD_PARTY_ACCOUNT_HIERARCHY = 'INVALID_THIRD_PARTY_ACCOUNT_HIERARCHY' - EXTERNAL_KEY_VALIDATION_FAILED = 'EXTERNAL_KEY_VALIDATION_FAILED' - NO_AVAILABLE_EXTERNAL_KEYS = 'NO_AVAILABLE_EXTERNAL_KEYS' - INVALID_PROOF_OF_OWNERSHIP_SIGNATURE = 'INVALID_PROOF_OF_OWNERSHIP_SIGNATURE' - USER_HAS_EXTERNAL_KEYS = 'USER_HAS_EXTERNAL_KEYS' - SCHEMA_ALREADY_EXISTS = 'SCHEMA_ALREADY_EXISTS' - SCHEMA_ID_OUT_OF_RANGE = 'SCHEMA_ID_OUT_OF_RANGE' - FORBIDDEN_SSO_IDP_DOMAIN = 'FORBIDDEN_SSO_IDP_DOMAIN' - UNKNOWN_ERROR = 'UNKNOWN_ERROR' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of RenameConnectedAccountResponse from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBSZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVzcG9uc2Uoc3RyLCBFbnVtKToKICAgICIiIgogICAgU3RhdHVzIG9mIHRoZSByZW5hbWUgb3BlcmF0aW9uCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgU1VDQ0VTUyA9ICdTVUNDRVNTJwogICAgVU5BVVRIT1JJU0VEX19VU0VSID0gJ1VOQVVUSE9SSVNFRF9fVVNFUicKICAgIFVOQVVUSE9SSVNFRF9fREVWSUNFID0gJ1VOQVVUSE9SSVNFRF9fREVWSUNFJwogICAgSU5WQUxJRF9VTk1BTkFHRURfV0FMTEVUID0gJ0lOVkFMSURfVU5NQU5BR0VEX1dBTExFVCcKICAgIElOVkFMSURfRVhDSEFOR0VfQUNDT1VOVCA9ICdJTlZBTElEX0VYQ0hBTkdFX0FDQ09VTlQnCiAgICBOT19BQ1RJVkVfQURNSU5TID0gJ05PX0FDVElWRV9BRE1JTlMnCiAgICBUSU1FT1VUID0gJ1RJTUVPVVQnCiAgICBJTlZBTElEX1BBUkFNRVRFUlMgPSAnSU5WQUxJRF9QQVJBTUVURVJTJwogICAgSU5URVJOQUxfRVJST1IgPSAnSU5URVJOQUxfRVJST1InCiAgICBJTlZBTElEX0NSRURFTlRJQUxTID0gJ0lOVkFMSURfQ1JFREVOVElBTFMnCiAgICBJTlZBTElEX09UUCA9ICdJTlZBTElEX09UUCcKICAgIElOVkFMSURfT1RQX01FVEhPRCA9ICdJTlZBTElEX09UUF9NRVRIT0QnCiAgICBJTlZBTElEX05FVFdPUktfQ09OTkVDVElPTiA9ICdJTlZBTElEX05FVFdPUktfQ09OTkVDVElPTicKICAgIE5FVFdPUktfQ09OTkVDVElPTl9FWElTVFMgPSAnTkVUV09SS19DT05ORUNUSU9OX0VYSVNUUycKICAgIElOVkFMSURfQ1JFREVOVElBTFNfX1VOU1VQUE9SVEVEX1BST1ZJREVSID0gJ0lOVkFMSURfQ1JFREVOVElBTFNfX1VOU1VQUE9SVEVEX1BST1ZJREVSJwogICAgVU5TVVBQT1JURURfQUxHT1JJVEhNID0gJ1VOU1VQUE9SVEVEX0FMR09SSVRITScKICAgIElOVkFMSURfQ1JFREVOVElBTFNfX0lQX1dISVRFTElTVElORyA9ICdJTlZBTElEX0NSRURFTlRJQUxTX19JUF9XSElURUxJU1RJTkcnCiAgICBJTlZBTElEX0NSRURFTlRJQUxTX19PVFBfRkFJTEVEID0gJ0lOVkFMSURfQ1JFREVOVElBTFNfX09UUF9GQUlMRUQnCiAgICBVTlNVUFBPUlRFRF9BU1NFVCA9ICdVTlNVUFBPUlRFRF9BU1NFVCcKICAgIEFTU0VUX0FMUkVBRFlfRVhJU1RTID0gJ0FTU0VUX0FMUkVBRFlfRVhJU1RTJwogICAgRU5WX1VOU1VQUE9SVEVEX0FTU0VUID0gJ0VOVl9VTlNVUFBPUlRFRF9BU1NFVCcKICAgIE5PX0NPTkZJR19DSEFOR0VfTkVFREVEID0gJ05PX0NPTkZJR19DSEFOR0VfTkVFREVEJwogICAgU0lNSUxBUl9SRVFVRVNUX0FMUkVBRFlfUEVORElORyA9ICdTSU1JTEFSX1JFUVVFU1RfQUxSRUFEWV9QRU5ESU5HJwogICAgQ0xPVURfQ09TSUdORVJfQUxSRUFEWV9FWElTVFMgPSAnQ0xPVURfQ09TSUdORVJfQUxSRUFEWV9FWElTVFMnCiAgICBJTExFR0FMX09QRVJBVElPTiA9ICdJTExFR0FMX09QRVJBVElPTicKICAgIE9WRVJSSURJTkdfUEVORElOR19SRVFVRVNUID0gJ09WRVJSSURJTkdfUEVORElOR19SRVFVRVNUJwogICAgT1dORVJfTk9UX0lOX0dST1VQID0gJ09XTkVSX05PVF9JTl9HUk9VUCcKICAgIElOVkFMSURfVEhJUkRfUEFSVFlfQUNDT1VOVF9ISUVSQVJDSFkgPSAnSU5WQUxJRF9USElSRF9QQVJUWV9BQ0NPVU5UX0hJRVJBUkNIWScKICAgIEVYVEVSTkFMX0tFWV9WQUxJREFUSU9OX0ZBSUxFRCA9ICdFWFRFUk5BTF9LRVlfVkFMSURBVElPTl9GQUlMRUQnCiAgICBOT19BVkFJTEFCTEVfRVhURVJOQUxfS0VZUyA9ICdOT19BVkFJTEFCTEVfRVhURVJOQUxfS0VZUycKICAgIElOVkFMSURfUFJPT0ZfT0ZfT1dORVJTSElQX1NJR05BVFVSRSA9ICdJTlZBTElEX1BST09GX09GX09XTkVSU0hJUF9TSUdOQVRVUkUnCiAgICBVU0VSX0hBU19FWFRFUk5BTF9LRVlTID0gJ1VTRVJfSEFTX0VYVEVSTkFMX0tFWVMnCiAgICBTQ0hFTUFfQUxSRUFEWV9FWElTVFMgPSAnU0NIRU1BX0FMUkVBRFlfRVhJU1RTJwogICAgU0NIRU1BX0lEX09VVF9PRl9SQU5HRSA9ICdTQ0hFTUFfSURfT1VUX09GX1JBTkdFJwogICAgRk9SQklEREVOX1NTT19JRFBfRE9NQUlOID0gJ0ZPUkJJRERFTl9TU09fSURQX0RPTUFJTicKICAgIFVOS05PV05fRVJST1IgPSAnVU5LTk9XTl9FUlJPUicKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/rename_cosigner.py b/fireblocks/models/rename_cosigner.py index 6d05a043..26f2ee96 100644 --- a/fireblocks/models/rename_cosigner.py +++ b/fireblocks/models/rename_cosigner.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class RenameCosigner(BaseModel): - """ - RenameCosigner - """ # noqa: E501 - name: Optional[StrictStr] = Field(default=None, description="The new name of the cosigner") - __properties: ClassVar[List[str]] = ["name"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of RenameCosigner from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of RenameCosigner from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBSZW5hbWVDb3NpZ25lcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSZW5hbWVDb3NpZ25lcgogICAgIiIiICMgbm9xYTogRTUwMQogICAgbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBuZXcgbmFtZSBvZiB0aGUgY29zaWduZXIiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJuYW1lIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZW5hbWVDb3NpZ25lciBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZW5hbWVDb3NpZ25lciBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/rename_vault_account_response.py b/fireblocks/models/rename_vault_account_response.py index c6ceb87d..e4076564 100644 --- a/fireblocks/models/rename_vault_account_response.py +++ b/fireblocks/models/rename_vault_account_response.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class RenameVaultAccountResponse(BaseModel): - """ - RenameVaultAccountResponse - """ # noqa: E501 - name: Optional[StrictStr] = Field(default=None, description="The new name of the vault account") - id: Optional[StrictStr] = Field(default=None, description="The ID of the vault account") - __properties: ClassVar[List[str]] = ["name", "id"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of RenameVaultAccountResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of RenameVaultAccountResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name"), - "id": obj.get("id") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBSZW5hbWVWYXVsdEFjY291bnRSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSZW5hbWVWYXVsdEFjY291bnRSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBuZXcgbmFtZSBvZiB0aGUgdmF1bHQgYWNjb3VudCIpCiAgICBpZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm5hbWUiLCAiaWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlbmFtZVZhdWx0QWNjb3VudFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlbmFtZVZhdWx0QWNjb3VudFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/resend_failed_notifications_job_status_response.py b/fireblocks/models/resend_failed_notifications_job_status_response.py index b0737d4c..49f21f09 100644 --- a/fireblocks/models/resend_failed_notifications_job_status_response.py +++ b/fireblocks/models/resend_failed_notifications_job_status_response.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class ResendFailedNotificationsJobStatusResponse(BaseModel): - """ - ResendFailedNotificationsJobStatusResponse - """ # noqa: E501 - job_id: StrictStr = Field(description="Bulk resend job ID", alias="jobId") - status: StrictStr = Field(description="Bulk resend job status") - processed: Union[StrictFloat, StrictInt] = Field(description="Number of notifications processed") - total: Union[StrictFloat, StrictInt] = Field(description="Total number of notifications to process") - __properties: ClassVar[List[str]] = ["jobId", "status", "processed", "total"] - - @field_validator('status') - def status_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['QUEUED', 'IN_PROGRESS', 'COMPLETED', 'FAILED']): - raise ValueError("must be one of enum values ('QUEUED', 'IN_PROGRESS', 'COMPLETED', 'FAILED')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ResendFailedNotificationsJobStatusResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ResendFailedNotificationsJobStatusResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "jobId": obj.get("jobId"), - "status": obj.get("status"), - "processed": obj.get("processed"), - "total": obj.get("total") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIFVuaW9uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNKb2JTdGF0dXNSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zSm9iU3RhdHVzUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGpvYl9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkJ1bGsgcmVzZW5kIGpvYiBJRCIsIGFsaWFzPSJqb2JJZCIpCiAgICBzdGF0dXM6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJCdWxrIHJlc2VuZCBqb2Igc3RhdHVzIikKICAgIHByb2Nlc3NlZDogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iTnVtYmVyIG9mIG5vdGlmaWNhdGlvbnMgcHJvY2Vzc2VkIikKICAgIHRvdGFsOiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUb3RhbCBudW1iZXIgb2Ygbm90aWZpY2F0aW9ucyB0byBwcm9jZXNzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiam9iSWQiLCAic3RhdHVzIiwgInByb2Nlc3NlZCIsICJ0b3RhbCJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignc3RhdHVzJykKICAgIGRlZiBzdGF0dXNfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnUVVFVUVEJywgJ0lOX1BST0dSRVNTJywgJ0NPTVBMRVRFRCcsICdGQUlMRUQnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnUVVFVUVEJywgJ0lOX1BST0dSRVNTJywgJ0NPTVBMRVRFRCcsICdGQUlMRUQnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc0pvYlN0YXR1c1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNKb2JTdGF0dXNSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJqb2JJZCI6IG9iai5nZXQoImpvYklkIiksCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgInByb2Nlc3NlZCI6IG9iai5nZXQoInByb2Nlc3NlZCIpLAogICAgICAgICAgICAidG90YWwiOiBvYmouZ2V0KCJ0b3RhbCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/resend_failed_notifications_request.py b/fireblocks/models/resend_failed_notifications_request.py index 387a3699..96aed82e 100644 --- a/fireblocks/models/resend_failed_notifications_request.py +++ b/fireblocks/models/resend_failed_notifications_request.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.webhook_event import WebhookEvent -from typing import Optional, Set -from typing_extensions import Self - -class ResendFailedNotificationsRequest(BaseModel): - """ - ResendFailedNotificationsRequest - """ # noqa: E501 - start_time: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="(optional) Start time for the resend window in milliseconds since epoch up to 24 hours before the current time - Default if missing means 24 hours before the current time in milliseconds since epoch - Maximum value is current time in milliseconds since epoch - Minimum value is 24 hours before the current time in milliseconds since epoch ", alias="startTime") - events: Optional[List[WebhookEvent]] = Field(default=None, description="(optional) Event types to resend, default is all event types - Default if missing means all events will be included - Empty array means all events will be included ") - __properties: ClassVar[List[str]] = ["startTime", "events"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ResendFailedNotificationsRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ResendFailedNotificationsRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "startTime": obj.get("startTime"), - "events": obj.get("events") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwsIFVuaW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud2ViaG9va19ldmVudCBpbXBvcnQgV2ViaG9va0V2ZW50CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzdGFydF90aW1lOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSIob3B0aW9uYWwpIFN0YXJ0IHRpbWUgZm9yIHRoZSByZXNlbmQgd2luZG93IGluIG1pbGxpc2Vjb25kcyBzaW5jZSBlcG9jaCB1cCB0byAyNCBob3VycyBiZWZvcmUgdGhlIGN1cnJlbnQgdGltZSAtIERlZmF1bHQgaWYgbWlzc2luZyBtZWFucyAyNCBob3VycyBiZWZvcmUgdGhlIGN1cnJlbnQgdGltZSBpbiBtaWxsaXNlY29uZHMgc2luY2UgZXBvY2ggLSBNYXhpbXVtIHZhbHVlIGlzIGN1cnJlbnQgdGltZSBpbiBtaWxsaXNlY29uZHMgc2luY2UgZXBvY2ggLSBNaW5pbXVtIHZhbHVlIGlzIDI0IGhvdXJzIGJlZm9yZSB0aGUgY3VycmVudCB0aW1lIGluIG1pbGxpc2Vjb25kcyBzaW5jZSBlcG9jaCAiLCBhbGlhcz0ic3RhcnRUaW1lIikKICAgIGV2ZW50czogT3B0aW9uYWxbTGlzdFtXZWJob29rRXZlbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IihvcHRpb25hbCkgRXZlbnQgdHlwZXMgdG8gcmVzZW5kLCBkZWZhdWx0IGlzIGFsbCBldmVudCB0eXBlcyAgICAgLSBEZWZhdWx0IGlmIG1pc3NpbmcgbWVhbnMgYWxsIGV2ZW50cyB3aWxsIGJlIGluY2x1ZGVkICAgICAtIEVtcHR5IGFycmF5IG1lYW5zIGFsbCBldmVudHMgd2lsbCBiZSBpbmNsdWRlZCAiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzdGFydFRpbWUiLCAiZXZlbnRzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzdGFydFRpbWUiOiBvYmouZ2V0KCJzdGFydFRpbWUiKSwKICAgICAgICAgICAgImV2ZW50cyI6IG9iai5nZXQoImV2ZW50cyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/resend_failed_notifications_response.py b/fireblocks/models/resend_failed_notifications_response.py index a5312866..69abf1c0 100644 --- a/fireblocks/models/resend_failed_notifications_response.py +++ b/fireblocks/models/resend_failed_notifications_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class ResendFailedNotificationsResponse(BaseModel): - """ - ResendFailedNotificationsResponse - """ # noqa: E501 - total: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The total number of failed notifications that are scheduled to be resent.") - __properties: ClassVar[List[str]] = ["total"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ResendFailedNotificationsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ResendFailedNotificationsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "total": obj.get("total") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwsIFVuaW9uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHRvdGFsOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgdG90YWwgbnVtYmVyIG9mIGZhaWxlZCBub3RpZmljYXRpb25zIHRoYXQgYXJlIHNjaGVkdWxlZCB0byBiZSByZXNlbnQuIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidG90YWwiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidG90YWwiOiBvYmouZ2V0KCJ0b3RhbCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/resend_notifications_by_resource_id_request.py b/fireblocks/models/resend_notifications_by_resource_id_request.py index e136f712..8696cde0 100644 --- a/fireblocks/models/resend_notifications_by_resource_id_request.py +++ b/fireblocks/models/resend_notifications_by_resource_id_request.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.notification_status import NotificationStatus -from typing import Optional, Set -from typing_extensions import Self - -class ResendNotificationsByResourceIdRequest(BaseModel): - """ - ResendNotificationsByResourceIdRequest - """ # noqa: E501 - resource_id: StrictStr = Field(description="The resource id to resend notifications for", alias="resourceId") - exclude_statuses: Optional[List[NotificationStatus]] = Field(default=None, description="(optional) List of notification statuses to exclude from the resend operation - Empty array means all statuses will be included - If you want to exclude some statuses, you can use the following example: [ IN_PROGRESS, FAILED ] - Default if missing, means all statuses other than \"COMPLETED\" will be included ", alias="excludeStatuses") - __properties: ClassVar[List[str]] = ["resourceId", "excludeStatuses"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ResendNotificationsByResourceIdRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ResendNotificationsByResourceIdRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "resourceId": obj.get("resourceId"), - "excludeStatuses": obj.get("excludeStatuses") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vdGlmaWNhdGlvbl9zdGF0dXMgaW1wb3J0IE5vdGlmaWNhdGlvblN0YXR1cwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBSZXNlbmROb3RpZmljYXRpb25zQnlSZXNvdXJjZUlkUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSZXNlbmROb3RpZmljYXRpb25zQnlSZXNvdXJjZUlkUmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgcmVzb3VyY2VfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgcmVzb3VyY2UgaWQgdG8gcmVzZW5kIG5vdGlmaWNhdGlvbnMgZm9yIiwgYWxpYXM9InJlc291cmNlSWQiKQogICAgZXhjbHVkZV9zdGF0dXNlczogT3B0aW9uYWxbTGlzdFtOb3RpZmljYXRpb25TdGF0dXNdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IihvcHRpb25hbCkgTGlzdCBvZiBub3RpZmljYXRpb24gc3RhdHVzZXMgdG8gZXhjbHVkZSBmcm9tIHRoZSByZXNlbmQgb3BlcmF0aW9uICAgICAtIEVtcHR5IGFycmF5IG1lYW5zIGFsbCBzdGF0dXNlcyB3aWxsIGJlIGluY2x1ZGVkICAgICAtIElmIHlvdSB3YW50IHRvIGV4Y2x1ZGUgc29tZSBzdGF0dXNlcywgeW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZyBleGFtcGxlOiBbIElOX1BST0dSRVNTLCBGQUlMRUQgXSAgICAgLSBEZWZhdWx0IGlmIG1pc3NpbmcsIG1lYW5zIGFsbCBzdGF0dXNlcyBvdGhlciB0aGFuIFwiQ09NUExFVEVEXCIgd2lsbCBiZSBpbmNsdWRlZCAiLCBhbGlhcz0iZXhjbHVkZVN0YXR1c2VzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicmVzb3VyY2VJZCIsICJleGNsdWRlU3RhdHVzZXMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlc2VuZE5vdGlmaWNhdGlvbnNCeVJlc291cmNlSWRSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlc2VuZE5vdGlmaWNhdGlvbnNCeVJlc291cmNlSWRSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInJlc291cmNlSWQiOiBvYmouZ2V0KCJyZXNvdXJjZUlkIiksCiAgICAgICAgICAgICJleGNsdWRlU3RhdHVzZXMiOiBvYmouZ2V0KCJleGNsdWRlU3RhdHVzZXMiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/resend_transaction_webhooks_request.py b/fireblocks/models/resend_transaction_webhooks_request.py index dacd04cc..61121083 100644 --- a/fireblocks/models/resend_transaction_webhooks_request.py +++ b/fireblocks/models/resend_transaction_webhooks_request.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class ResendTransactionWebhooksRequest(BaseModel): - """ - ResendTransactionWebhooksRequest - """ # noqa: E501 - resend_created: Optional[StrictBool] = Field(default=None, alias="resendCreated") - resend_status_updated: Optional[StrictBool] = Field(default=None, alias="resendStatusUpdated") - __properties: ClassVar[List[str]] = ["resendCreated", "resendStatusUpdated"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ResendTransactionWebhooksRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ResendTransactionWebhooksRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "resendCreated": obj.get("resendCreated"), - "resendStatusUpdated": obj.get("resendStatusUpdated") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgUmVzZW5kVHJhbnNhY3Rpb25XZWJob29rc1JlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgUmVzZW5kVHJhbnNhY3Rpb25XZWJob29rc1JlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHJlc2VuZF9jcmVhdGVkOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InJlc2VuZENyZWF0ZWQiKQogICAgcmVzZW5kX3N0YXR1c191cGRhdGVkOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InJlc2VuZFN0YXR1c1VwZGF0ZWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJyZXNlbmRDcmVhdGVkIiwgInJlc2VuZFN0YXR1c1VwZGF0ZWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlc2VuZFRyYW5zYWN0aW9uV2ViaG9va3NSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlc2VuZFRyYW5zYWN0aW9uV2ViaG9va3NSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInJlc2VuZENyZWF0ZWQiOiBvYmouZ2V0KCJyZXNlbmRDcmVhdGVkIiksCiAgICAgICAgICAgICJyZXNlbmRTdGF0dXNVcGRhdGVkIjogb2JqLmdldCgicmVzZW5kU3RhdHVzVXBkYXRlZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/resend_webhooks_by_transaction_id_response.py b/fireblocks/models/resend_webhooks_by_transaction_id_response.py index 5023176d..51796e3a 100644 --- a/fireblocks/models/resend_webhooks_by_transaction_id_response.py +++ b/fireblocks/models/resend_webhooks_by_transaction_id_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class ResendWebhooksByTransactionIdResponse(BaseModel): - """ - ResendWebhooksByTransactionIdResponse - """ # noqa: E501 - success: StrictBool = Field(description="Indicates whether the webhooks were successfully resent") - __properties: ClassVar[List[str]] = ["success"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ResendWebhooksByTransactionIdResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ResendWebhooksByTransactionIdResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "success": obj.get("success") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBSZXNlbmRXZWJob29rc0J5VHJhbnNhY3Rpb25JZFJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFJlc2VuZFdlYmhvb2tzQnlUcmFuc2FjdGlvbklkUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHN1Y2Nlc3M6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHdlYmhvb2tzIHdlcmUgc3VjY2Vzc2Z1bGx5IHJlc2VudCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInN1Y2Nlc3MiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlc2VuZFdlYmhvb2tzQnlUcmFuc2FjdGlvbklkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUmVzZW5kV2ViaG9va3NCeVRyYW5zYWN0aW9uSWRSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzdWNjZXNzIjogb2JqLmdldCgic3VjY2VzcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/resend_webhooks_response.py b/fireblocks/models/resend_webhooks_response.py index 71e81a2c..9ccd6a97 100644 --- a/fireblocks/models/resend_webhooks_response.py +++ b/fireblocks/models/resend_webhooks_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class ResendWebhooksResponse(BaseModel): - """ - ResendWebhooksResponse - """ # noqa: E501 - messages_count: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="messagesCount") - __properties: ClassVar[List[str]] = ["messagesCount"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ResendWebhooksResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ResendWebhooksResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "messagesCount": obj.get("messagesCount") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwsIFVuaW9uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFJlc2VuZFdlYmhvb2tzUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgUmVzZW5kV2ViaG9va3NSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgbWVzc2FnZXNfY291bnQ6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im1lc3NhZ2VzQ291bnQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJtZXNzYWdlc0NvdW50Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZXNlbmRXZWJob29rc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJlc2VuZFdlYmhvb2tzUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibWVzc2FnZXNDb3VudCI6IG9iai5nZXQoIm1lc3NhZ2VzQ291bnQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/respond_to_connection_request.py b/fireblocks/models/respond_to_connection_request.py index c3ebcea9..b061a6ab 100644 --- a/fireblocks/models/respond_to_connection_request.py +++ b/fireblocks/models/respond_to_connection_request.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class RespondToConnectionRequest(BaseModel): - """ - RespondToConnectionRequest - """ # noqa: E501 - approve: StrictBool = Field(description="Approval of the initiated Web3 connection.") - __properties: ClassVar[List[str]] = ["approve"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of RespondToConnectionRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of RespondToConnectionRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "approve": obj.get("approve") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBSZXNwb25kVG9Db25uZWN0aW9uUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSZXNwb25kVG9Db25uZWN0aW9uUmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgYXBwcm92ZTogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBcHByb3ZhbCBvZiB0aGUgaW5pdGlhdGVkIFdlYjMgY29ubmVjdGlvbi4iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhcHByb3ZlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZXNwb25kVG9Db25uZWN0aW9uUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZXNwb25kVG9Db25uZWN0aW9uUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhcHByb3ZlIjogb2JqLmdldCgiYXBwcm92ZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/retry_requote_request_details.py b/fireblocks/models/retry_requote_request_details.py index 4fcc5ac4..61c76136 100644 --- a/fireblocks/models/retry_requote_request_details.py +++ b/fireblocks/models/retry_requote_request_details.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from fireblocks.models.retry_requote_type_enum import RetryRequoteTypeEnum -from typing import Optional, Set -from typing_extensions import Self - -class RetryRequoteRequestDetails(BaseModel): - """ - RetryRequoteRequestDetails - """ # noqa: E501 - type: RetryRequoteTypeEnum - count: Annotated[int, Field(le=10, strict=True, ge=1)] = Field(description="If quote is expired, how many times to re-generate new quotes to try having the order executed as in the original quote.") - slippage_bps: Optional[Annotated[int, Field(le=10000, strict=True, ge=1)]] = Field(default=None, description="Slippage tolerance in basis points (bps) for quote orders - 1 is 0.01% and 10000 is 100%", alias="slippageBps") - __properties: ClassVar[List[str]] = ["type", "count", "slippageBps"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of RetryRequoteRequestDetails from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of RetryRequoteRequestDetails from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "count": obj.get("count"), - "slippageBps": obj.get("slippageBps") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucmV0cnlfcmVxdW90ZV90eXBlX2VudW0gaW1wb3J0IFJldHJ5UmVxdW90ZVR5cGVFbnVtCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFJldHJ5UmVxdW90ZVJlcXVlc3REZXRhaWxzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFJldHJ5UmVxdW90ZVJlcXVlc3REZXRhaWxzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBSZXRyeVJlcXVvdGVUeXBlRW51bQogICAgY291bnQ6IEFubm90YXRlZFtpbnQsIEZpZWxkKGxlPTEwLCBzdHJpY3Q9VHJ1ZSwgZ2U9MSldID0gRmllbGQoZGVzY3JpcHRpb249IklmIHF1b3RlIGlzIGV4cGlyZWQsIGhvdyBtYW55IHRpbWVzIHRvIHJlLWdlbmVyYXRlIG5ldyBxdW90ZXMgdG8gdHJ5IGhhdmluZyB0aGUgb3JkZXIgZXhlY3V0ZWQgYXMgaW4gdGhlIG9yaWdpbmFsIHF1b3RlLiIpCiAgICBzbGlwcGFnZV9icHM6IE9wdGlvbmFsW0Fubm90YXRlZFtpbnQsIEZpZWxkKGxlPTEwMDAwLCBzdHJpY3Q9VHJ1ZSwgZ2U9MSldXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNsaXBwYWdlIHRvbGVyYW5jZSBpbiBiYXNpcyBwb2ludHMgKGJwcykgZm9yIHF1b3RlIG9yZGVycyAtIDEgaXMgMC4wMSUgYW5kIDEwMDAwIGlzIDEwMCUiLCBhbGlhcz0ic2xpcHBhZ2VCcHMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgImNvdW50IiwgInNsaXBwYWdlQnBzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZXRyeVJlcXVvdGVSZXF1ZXN0RGV0YWlscyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZXRyeVJlcXVvdGVSZXF1ZXN0RGV0YWlscyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAiY291bnQiOiBvYmouZ2V0KCJjb3VudCIpLAogICAgICAgICAgICAic2xpcHBhZ2VCcHMiOiBvYmouZ2V0KCJzbGlwcGFnZUJwcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/retry_requote_type_enum.py b/fireblocks/models/retry_requote_type_enum.py index 54b977f7..6957336f 100644 --- a/fireblocks/models/retry_requote_type_enum.py +++ b/fireblocks/models/retry_requote_type_enum.py @@ -1,37 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class RetryRequoteTypeEnum(str, Enum): - """ - Indicates that the order should be re-quoted if the original quote is expired, trying to match the original quote. - """ - - """ - allowed enum values - """ - RETRY = 'RETRY' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of RetryRequoteTypeEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBSZXRyeVJlcXVvdGVUeXBlRW51bShzdHIsIEVudW0pOgogICAgIiIiCiAgICBJbmRpY2F0ZXMgdGhhdCB0aGUgb3JkZXIgc2hvdWxkIGJlIHJlLXF1b3RlZCBpZiB0aGUgb3JpZ2luYWwgcXVvdGUgaXMgZXhwaXJlZCwgdHJ5aW5nIHRvIG1hdGNoIHRoZSBvcmlnaW5hbCBxdW90ZS4KICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBSRVRSWSA9ICdSRVRSWScKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZXRyeVJlcXVvdGVUeXBlRW51bSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/reward_info.py b/fireblocks/models/reward_info.py index 0261a84c..843bb348 100644 --- a/fireblocks/models/reward_info.py +++ b/fireblocks/models/reward_info.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class RewardInfo(BaseModel): - """ - This field is relevant only for Algorand transactions. Both `srcRewards` and `destRewards` will appear only for Vault to Vault transactions, otherwise you will receive only the Fireblocks’ side of the transaction. - """ # noqa: E501 - src_rewards: Optional[StrictStr] = Field(default=None, alias="srcRewards") - dest_rewards: Optional[StrictStr] = Field(default=None, alias="destRewards") - __properties: ClassVar[List[str]] = ["srcRewards", "destRewards"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of RewardInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of RewardInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "srcRewards": obj.get("srcRewards"), - "destRewards": obj.get("destRewards") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBSZXdhcmRJbmZvKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRoaXMgZmllbGQgaXMgcmVsZXZhbnQgb25seSBmb3IgQWxnb3JhbmQgdHJhbnNhY3Rpb25zLiBCb3RoIGBzcmNSZXdhcmRzYCBhbmQgYGRlc3RSZXdhcmRzYCB3aWxsIGFwcGVhciBvbmx5IGZvciBWYXVsdCB0byBWYXVsdCB0cmFuc2FjdGlvbnMsIG90aGVyd2lzZSB5b3Ugd2lsbCByZWNlaXZlIG9ubHkgdGhlIEZpcmVibG9ja3PigJkgc2lkZSBvZiB0aGUgdHJhbnNhY3Rpb24uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzcmNfcmV3YXJkczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InNyY1Jld2FyZHMiKQogICAgZGVzdF9yZXdhcmRzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZGVzdFJld2FyZHMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzcmNSZXdhcmRzIiwgImRlc3RSZXdhcmRzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZXdhcmRJbmZvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFJld2FyZEluZm8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3JjUmV3YXJkcyI6IG9iai5nZXQoInNyY1Jld2FyZHMiKSwKICAgICAgICAgICAgImRlc3RSZXdhcmRzIjogb2JqLmdldCgiZGVzdFJld2FyZHMiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/rewards_info.py b/fireblocks/models/rewards_info.py index 2cf83e61..1e0b5a8f 100644 --- a/fireblocks/models/rewards_info.py +++ b/fireblocks/models/rewards_info.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class RewardsInfo(BaseModel): - """ - RewardsInfo - """ # noqa: E501 - pending_rewards: Optional[StrictStr] = Field(default=None, description="Amount that is pending for rewards", alias="pendingRewards") - __properties: ClassVar[List[str]] = ["pendingRewards"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of RewardsInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of RewardsInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "pendingRewards": obj.get("pendingRewards") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBSZXdhcmRzSW5mbyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSZXdhcmRzSW5mbwogICAgIiIiICMgbm9xYTogRTUwMQogICAgcGVuZGluZ19yZXdhcmRzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQW1vdW50IHRoYXQgaXMgcGVuZGluZyBmb3IgcmV3YXJkcyIsIGFsaWFzPSJwZW5kaW5nUmV3YXJkcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInBlbmRpbmdSZXdhcmRzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZXdhcmRzSW5mbyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBSZXdhcmRzSW5mbyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJwZW5kaW5nUmV3YXJkcyI6IG9iai5nZXQoInBlbmRpbmdSZXdhcmRzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/role_details.py b/fireblocks/models/role_details.py index 4e698ccb..ee525468 100644 --- a/fireblocks/models/role_details.py +++ b/fireblocks/models/role_details.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.role_grantee import RoleGrantee -from typing import Optional, Set -from typing_extensions import Self - -class RoleDetails(BaseModel): - """ - RoleDetails - """ # noqa: E501 - role_hash: StrictStr = Field(description="The role hash identifier", alias="roleHash") - description: StrictStr = Field(description="Human-readable description of the role") - accounts: List[RoleGrantee] = Field(description="List of accounts that have been granted this role") - __properties: ClassVar[List[str]] = ["roleHash", "description", "accounts"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of RoleDetails from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in accounts (list) - _items = [] - if self.accounts: - for _item_accounts in self.accounts: - if _item_accounts: - _items.append(_item_accounts.to_dict()) - _dict['accounts'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of RoleDetails from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "roleHash": obj.get("roleHash"), - "description": obj.get("description"), - "accounts": [RoleGrantee.from_dict(_item) for _item in obj["accounts"]] if obj.get("accounts") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucm9sZV9ncmFudGVlIGltcG9ydCBSb2xlR3JhbnRlZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBSb2xlRGV0YWlscyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSb2xlRGV0YWlscwogICAgIiIiICMgbm9xYTogRTUwMQogICAgcm9sZV9oYXNoOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHJvbGUgaGFzaCBpZGVudGlmaWVyIiwgYWxpYXM9InJvbGVIYXNoIikKICAgIGRlc2NyaXB0aW9uOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iSHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gb2YgdGhlIHJvbGUiKQogICAgYWNjb3VudHM6IExpc3RbUm9sZUdyYW50ZWVdID0gRmllbGQoZGVzY3JpcHRpb249Ikxpc3Qgb2YgYWNjb3VudHMgdGhhdCBoYXZlIGJlZW4gZ3JhbnRlZCB0aGlzIHJvbGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJyb2xlSGFzaCIsICJkZXNjcmlwdGlvbiIsICJhY2NvdW50cyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUm9sZURldGFpbHMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gYWNjb3VudHMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmFjY291bnRzOgogICAgICAgICAgICBmb3IgX2l0ZW1fYWNjb3VudHMgaW4gc2VsZi5hY2NvdW50czoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2FjY291bnRzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fYWNjb3VudHMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnYWNjb3VudHMnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUm9sZURldGFpbHMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicm9sZUhhc2giOiBvYmouZ2V0KCJyb2xlSGFzaCIpLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBvYmouZ2V0KCJkZXNjcmlwdGlvbiIpLAogICAgICAgICAgICAiYWNjb3VudHMiOiBbUm9sZUdyYW50ZWUuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJhY2NvdW50cyJdXSBpZiBvYmouZ2V0KCJhY2NvdW50cyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/role_grantee.py b/fireblocks/models/role_grantee.py index f2f8890d..6c5c73c9 100644 --- a/fireblocks/models/role_grantee.py +++ b/fireblocks/models/role_grantee.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class RoleGrantee(BaseModel): - """ - RoleGrantee - """ # noqa: E501 - account_address: StrictStr = Field(description="The address of the account that has been granted the role", alias="accountAddress") - date_of_grant: datetime = Field(description="The date when the role was granted to this account", alias="dateOfGrant") - __properties: ClassVar[List[str]] = ["accountAddress", "dateOfGrant"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of RoleGrantee from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of RoleGrantee from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountAddress": obj.get("accountAddress"), - "dateOfGrant": obj.get("dateOfGrant") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFJvbGVHcmFudGVlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFJvbGVHcmFudGVlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhY2NvdW50X2FkZHJlc3M6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYWRkcmVzcyBvZiB0aGUgYWNjb3VudCB0aGF0IGhhcyBiZWVuIGdyYW50ZWQgdGhlIHJvbGUiLCBhbGlhcz0iYWNjb3VudEFkZHJlc3MiKQogICAgZGF0ZV9vZl9ncmFudDogZGF0ZXRpbWUgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGRhdGUgd2hlbiB0aGUgcm9sZSB3YXMgZ3JhbnRlZCB0byB0aGlzIGFjY291bnQiLCBhbGlhcz0iZGF0ZU9mR3JhbnQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhY2NvdW50QWRkcmVzcyIsICJkYXRlT2ZHcmFudCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUm9sZUdyYW50ZWUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgUm9sZUdyYW50ZWUgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYWNjb3VudEFkZHJlc3MiOiBvYmouZ2V0KCJhY2NvdW50QWRkcmVzcyIpLAogICAgICAgICAgICAiZGF0ZU9mR3JhbnQiOiBvYmouZ2V0KCJkYXRlT2ZHcmFudCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/scope_item.py b/fireblocks/models/scope_item.py index 325770f9..9aa6590e 100644 --- a/fireblocks/models/scope_item.py +++ b/fireblocks/models/scope_item.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class ScopeItem(BaseModel): - """ - ScopeItem - """ # noqa: E501 - provider_id: StrictStr = Field(description="The ID of the provider associated with the account.", alias="providerId") - account_id: Optional[StrictStr] = Field(default=None, description="The ID of the account associated with the provider.", alias="accountId") - __properties: ClassVar[List[str]] = ["providerId", "accountId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScopeItem from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScopeItem from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "providerId": obj.get("providerId"), - "accountId": obj.get("accountId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTY29wZUl0ZW0oQmFzZU1vZGVsKToKICAgICIiIgogICAgU2NvcGVJdGVtCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBwcm92aWRlcl9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgcHJvdmlkZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBhY2NvdW50LiIsIGFsaWFzPSJwcm92aWRlcklkIikKICAgIGFjY291bnRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFjY291bnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm92aWRlci4iLCBhbGlhcz0iYWNjb3VudElkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicHJvdmlkZXJJZCIsICJhY2NvdW50SWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjb3BlSXRlbSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY29wZUl0ZW0gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicHJvdmlkZXJJZCI6IG9iai5nZXQoInByb3ZpZGVySWQiKSwKICAgICAgICAgICAgImFjY291bnRJZCI6IG9iai5nZXQoImFjY291bnRJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/screening_alert_exposure_type_enum.py b/fireblocks/models/screening_alert_exposure_type_enum.py index 81d69408..ab383873 100644 --- a/fireblocks/models/screening_alert_exposure_type_enum.py +++ b/fireblocks/models/screening_alert_exposure_type_enum.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ScreeningAlertExposureTypeEnum(str, Enum): - """ - Alert exposure type - """ - - """ - allowed enum values - """ - DIRECT = 'DIRECT' - INDIRECT = 'INDIRECT' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ScreeningAlertExposureTypeEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBTY3JlZW5pbmdBbGVydEV4cG9zdXJlVHlwZUVudW0oc3RyLCBFbnVtKToKICAgICIiIgogICAgQWxlcnQgZXhwb3N1cmUgdHlwZQogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIERJUkVDVCA9ICdESVJFQ1QnCiAgICBJTkRJUkVDVCA9ICdJTkRJUkVDVCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdBbGVydEV4cG9zdXJlVHlwZUVudW0gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/screening_aml_alert.py b/fireblocks/models/screening_aml_alert.py index 30c6efcc..fb7e01ba 100644 --- a/fireblocks/models/screening_aml_alert.py +++ b/fireblocks/models/screening_aml_alert.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.alert_level_enum import AlertLevelEnum -from fireblocks.models.screening_alert_exposure_type_enum import ScreeningAlertExposureTypeEnum -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningAmlAlert(BaseModel): - """ - AML alert information - """ # noqa: E501 - alert_level: AlertLevelEnum = Field(alias="alertLevel") - alert_name: Optional[StrictStr] = Field(default=None, description="Name or type of the alert", alias="alertName") - category: Optional[StrictStr] = Field(default=None, description="Alert category") - service: Optional[StrictStr] = Field(default=None, description="Service that generated the alert") - external_id: StrictStr = Field(description="External identifier for the alert", alias="externalId") - alert_amount: Union[StrictFloat, StrictInt] = Field(description="Amount associated with the alert", alias="alertAmount") - exposure_type: ScreeningAlertExposureTypeEnum = Field(alias="exposureType") - policy_action: Optional[StrictStr] = Field(default=None, description="Recommended action based on policy", alias="policyAction") - category_id: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Category identifier", alias="categoryId") - __properties: ClassVar[List[str]] = ["alertLevel", "alertName", "category", "service", "externalId", "alertAmount", "exposureType", "policyAction", "categoryId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningAmlAlert from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningAmlAlert from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "alertLevel": obj.get("alertLevel"), - "alertName": obj.get("alertName"), - "category": obj.get("category"), - "service": obj.get("service"), - "externalId": obj.get("externalId"), - "alertAmount": obj.get("alertAmount"), - "exposureType": obj.get("exposureType"), - "policyAction": obj.get("policyAction"), - "categoryId": obj.get("categoryId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbGVydF9sZXZlbF9lbnVtIGltcG9ydCBBbGVydExldmVsRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19hbGVydF9leHBvc3VyZV90eXBlX2VudW0gaW1wb3J0IFNjcmVlbmluZ0FsZXJ0RXhwb3N1cmVUeXBlRW51bQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTY3JlZW5pbmdBbWxBbGVydChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBTUwgYWxlcnQgaW5mb3JtYXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFsZXJ0X2xldmVsOiBBbGVydExldmVsRW51bSA9IEZpZWxkKGFsaWFzPSJhbGVydExldmVsIikKICAgIGFsZXJ0X25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOYW1lIG9yIHR5cGUgb2YgdGhlIGFsZXJ0IiwgYWxpYXM9ImFsZXJ0TmFtZSIpCiAgICBjYXRlZ29yeTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFsZXJ0IGNhdGVnb3J5IikKICAgIHNlcnZpY2U6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTZXJ2aWNlIHRoYXQgZ2VuZXJhdGVkIHRoZSBhbGVydCIpCiAgICBleHRlcm5hbF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkV4dGVybmFsIGlkZW50aWZpZXIgZm9yIHRoZSBhbGVydCIsIGFsaWFzPSJleHRlcm5hbElkIikKICAgIGFsZXJ0X2Ftb3VudDogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iQW1vdW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgYWxlcnQiLCBhbGlhcz0iYWxlcnRBbW91bnQiKQogICAgZXhwb3N1cmVfdHlwZTogU2NyZWVuaW5nQWxlcnRFeHBvc3VyZVR5cGVFbnVtID0gRmllbGQoYWxpYXM9ImV4cG9zdXJlVHlwZSIpCiAgICBwb2xpY3lfYWN0aW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUmVjb21tZW5kZWQgYWN0aW9uIGJhc2VkIG9uIHBvbGljeSIsIGFsaWFzPSJwb2xpY3lBY3Rpb24iKQogICAgY2F0ZWdvcnlfaWQ6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkNhdGVnb3J5IGlkZW50aWZpZXIiLCBhbGlhcz0iY2F0ZWdvcnlJZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFsZXJ0TGV2ZWwiLCAiYWxlcnROYW1lIiwgImNhdGVnb3J5IiwgInNlcnZpY2UiLCAiZXh0ZXJuYWxJZCIsICJhbGVydEFtb3VudCIsICJleHBvc3VyZVR5cGUiLCAicG9saWN5QWN0aW9uIiwgImNhdGVnb3J5SWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ0FtbEFsZXJ0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ0FtbEFsZXJ0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFsZXJ0TGV2ZWwiOiBvYmouZ2V0KCJhbGVydExldmVsIiksCiAgICAgICAgICAgICJhbGVydE5hbWUiOiBvYmouZ2V0KCJhbGVydE5hbWUiKSwKICAgICAgICAgICAgImNhdGVnb3J5Ijogb2JqLmdldCgiY2F0ZWdvcnkiKSwKICAgICAgICAgICAgInNlcnZpY2UiOiBvYmouZ2V0KCJzZXJ2aWNlIiksCiAgICAgICAgICAgICJleHRlcm5hbElkIjogb2JqLmdldCgiZXh0ZXJuYWxJZCIpLAogICAgICAgICAgICAiYWxlcnRBbW91bnQiOiBvYmouZ2V0KCJhbGVydEFtb3VudCIpLAogICAgICAgICAgICAiZXhwb3N1cmVUeXBlIjogb2JqLmdldCgiZXhwb3N1cmVUeXBlIiksCiAgICAgICAgICAgICJwb2xpY3lBY3Rpb24iOiBvYmouZ2V0KCJwb2xpY3lBY3Rpb24iKSwKICAgICAgICAgICAgImNhdGVnb3J5SWQiOiBvYmouZ2V0KCJjYXRlZ29yeUlkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/screening_aml_matched_rule.py b/fireblocks/models/screening_aml_matched_rule.py index d8da8093..736de951 100644 --- a/fireblocks/models/screening_aml_matched_rule.py +++ b/fireblocks/models/screening_aml_matched_rule.py @@ -1,93 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.policy_verdict_action_enum2 import PolicyVerdictActionEnum2 -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningAmlMatchedRule(BaseModel): - """ - AML matched rule information - """ # noqa: E501 - rule_id: Optional[StrictStr] = Field(default=None, description="Identifier of the matched rule", alias="ruleId") - rule_name: Optional[StrictStr] = Field(default=None, description="Name of the matched rule", alias="ruleName") - action: Optional[PolicyVerdictActionEnum2] = None - __properties: ClassVar[List[str]] = ["ruleId", "ruleName", "action"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningAmlMatchedRule from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningAmlMatchedRule from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "ruleId": obj.get("ruleId"), - "ruleName": obj.get("ruleName"), - "action": obj.get("action") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV92ZXJkaWN0X2FjdGlvbl9lbnVtMiBpbXBvcnQgUG9saWN5VmVyZGljdEFjdGlvbkVudW0yCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNjcmVlbmluZ0FtbE1hdGNoZWRSdWxlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFNTCBtYXRjaGVkIHJ1bGUgaW5mb3JtYXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHJ1bGVfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJZGVudGlmaWVyIG9mIHRoZSBtYXRjaGVkIHJ1bGUiLCBhbGlhcz0icnVsZUlkIikKICAgIHJ1bGVfbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik5hbWUgb2YgdGhlIG1hdGNoZWQgcnVsZSIsIGFsaWFzPSJydWxlTmFtZSIpCiAgICBhY3Rpb246IE9wdGlvbmFsW1BvbGljeVZlcmRpY3RBY3Rpb25FbnVtMl0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInJ1bGVJZCIsICJydWxlTmFtZSIsICJhY3Rpb24iXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ0FtbE1hdGNoZWRSdWxlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ0FtbE1hdGNoZWRSdWxlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInJ1bGVJZCI6IG9iai5nZXQoInJ1bGVJZCIpLAogICAgICAgICAgICAicnVsZU5hbWUiOiBvYmouZ2V0KCJydWxlTmFtZSIpLAogICAgICAgICAgICAiYWN0aW9uIjogb2JqLmdldCgiYWN0aW9uIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/screening_aml_result.py b/fireblocks/models/screening_aml_result.py index fe32ca10..929bf631 100644 --- a/fireblocks/models/screening_aml_result.py +++ b/fireblocks/models/screening_aml_result.py @@ -1,109 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.screening_aml_alert import ScreeningAmlAlert -from fireblocks.models.screening_aml_matched_rule import ScreeningAmlMatchedRule -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningAmlResult(BaseModel): - """ - Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses. - """ # noqa: E501 - alerts: Optional[List[ScreeningAmlAlert]] = Field(default=None, description="List of AML alerts triggered during screening") - provider_response: Optional[Dict[str, Any]] = Field(default=None, description="Complete response from the AML provider. This is a dynamic object that varies significantly between different AML providers (Chainalysis, Elliptic, etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - Chainalysis: Contains cluster info, risk scores, sanctions data - Elliptic: Includes risk assessment, entity types, compliance flags The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. ", alias="providerResponse") - matched_rule: Optional[ScreeningAmlMatchedRule] = Field(default=None, alias="matchedRule") - matched_alert: Optional[ScreeningAmlAlert] = Field(default=None, alias="matchedAlert") - __properties: ClassVar[List[str]] = ["alerts", "providerResponse", "matchedRule", "matchedAlert"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningAmlResult from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in alerts (list) - _items = [] - if self.alerts: - for _item_alerts in self.alerts: - if _item_alerts: - _items.append(_item_alerts.to_dict()) - _dict['alerts'] = _items - # override the default output from pydantic by calling `to_dict()` of matched_rule - if self.matched_rule: - _dict['matchedRule'] = self.matched_rule.to_dict() - # override the default output from pydantic by calling `to_dict()` of matched_alert - if self.matched_alert: - _dict['matchedAlert'] = self.matched_alert.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningAmlResult from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "alerts": [ScreeningAmlAlert.from_dict(_item) for _item in obj["alerts"]] if obj.get("alerts") is not None else None, - "providerResponse": obj.get("providerResponse"), - "matchedRule": ScreeningAmlMatchedRule.from_dict(obj["matchedRule"]) if obj.get("matchedRule") is not None else None, - "matchedAlert": ScreeningAmlAlert.from_dict(obj["matchedAlert"]) if obj.get("matchedAlert") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfYW1sX2FsZXJ0IGltcG9ydCBTY3JlZW5pbmdBbWxBbGVydApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19hbWxfbWF0Y2hlZF9ydWxlIGltcG9ydCBTY3JlZW5pbmdBbWxNYXRjaGVkUnVsZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTY3JlZW5pbmdBbWxSZXN1bHQoQmFzZU1vZGVsKToKICAgICIiIgogICAgRGVwcmVjYXRlZDogVGhpcyBmaWVsZCBpcyBub3QgY3VycmVudGx5IHJldHVybmVkIGluIHRoZSBBUEkgcmVzcG9uc2UuIERldGFpbGVkIEFNTCBzY3JlZW5pbmcgcmVzdWx0IGluZm9ybWF0aW9uLiBDb250YWlucyBhbGVydHMsIHJpc2sgc2NvcmVzLCBhbmQgb3RoZXIgQU1MLXNwZWNpZmljIGRhdGEgZnJvbSBwcm92aWRlci1zcGVjaWZpYyByZXNwb25zZXMuIAogICAgIiIiICMgbm9xYTogRTUwMQogICAgYWxlcnRzOiBPcHRpb25hbFtMaXN0W1NjcmVlbmluZ0FtbEFsZXJ0XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJMaXN0IG9mIEFNTCBhbGVydHMgdHJpZ2dlcmVkIGR1cmluZyBzY3JlZW5pbmciKQogICAgcHJvdmlkZXJfcmVzcG9uc2U6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkNvbXBsZXRlIHJlc3BvbnNlIGZyb20gdGhlIEFNTCBwcm92aWRlci4gVGhpcyBpcyBhIGR5bmFtaWMgb2JqZWN0IHRoYXQgdmFyaWVzIHNpZ25pZmljYW50bHkgYmV0d2VlbiBkaWZmZXJlbnQgQU1MIHByb3ZpZGVycyAoQ2hhaW5hbHlzaXMsIEVsbGlwdGljLCBldGMuKS4gRWFjaCBwcm92aWRlciBoYXMgdGhlaXIgb3duIHByb3ByaWV0YXJ5IHJlc3BvbnNlIGZvcm1hdCBhbmQgc2NoZW1hLiAgRXhhbXBsZXMgb2YgcHJvdmlkZXItc3BlY2lmaWMgc3RydWN0dXJlczogLSBDaGFpbmFseXNpczogQ29udGFpbnMgY2x1c3RlciBpbmZvLCByaXNrIHNjb3Jlcywgc2FuY3Rpb25zIGRhdGEgLSBFbGxpcHRpYzogSW5jbHVkZXMgcmlzayBhc3Nlc3NtZW50LCBlbnRpdHkgdHlwZXMsIGNvbXBsaWFuY2UgZmxhZ3MgIFRoZSBzdHJ1Y3R1cmUgaXMgcHJvdmlkZXItZGVwZW5kZW50IGFuZCBjYW5ub3QgYmUgc3RhbmRhcmRpemVkIGFzIGVhY2ggdmVuZG9yIGltcGxlbWVudHMgdGhlaXIgb3duIHByb3ByaWV0YXJ5IGRhdGEgbW9kZWxzIGFuZCByZXNwb25zZSBmb3JtYXRzLiAiLCBhbGlhcz0icHJvdmlkZXJSZXNwb25zZSIpCiAgICBtYXRjaGVkX3J1bGU6IE9wdGlvbmFsW1NjcmVlbmluZ0FtbE1hdGNoZWRSdWxlXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im1hdGNoZWRSdWxlIikKICAgIG1hdGNoZWRfYWxlcnQ6IE9wdGlvbmFsW1NjcmVlbmluZ0FtbEFsZXJ0XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im1hdGNoZWRBbGVydCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFsZXJ0cyIsICJwcm92aWRlclJlc3BvbnNlIiwgIm1hdGNoZWRSdWxlIiwgIm1hdGNoZWRBbGVydCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nQW1sUmVzdWx0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGFsZXJ0cyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuYWxlcnRzOgogICAgICAgICAgICBmb3IgX2l0ZW1fYWxlcnRzIGluIHNlbGYuYWxlcnRzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fYWxlcnRzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fYWxlcnRzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2FsZXJ0cyddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG1hdGNoZWRfcnVsZQogICAgICAgIGlmIHNlbGYubWF0Y2hlZF9ydWxlOgogICAgICAgICAgICBfZGljdFsnbWF0Y2hlZFJ1bGUnXSA9IHNlbGYubWF0Y2hlZF9ydWxlLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBtYXRjaGVkX2FsZXJ0CiAgICAgICAgaWYgc2VsZi5tYXRjaGVkX2FsZXJ0OgogICAgICAgICAgICBfZGljdFsnbWF0Y2hlZEFsZXJ0J10gPSBzZWxmLm1hdGNoZWRfYWxlcnQudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdBbWxSZXN1bHQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYWxlcnRzIjogW1NjcmVlbmluZ0FtbEFsZXJ0LmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiYWxlcnRzIl1dIGlmIG9iai5nZXQoImFsZXJ0cyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInByb3ZpZGVyUmVzcG9uc2UiOiBvYmouZ2V0KCJwcm92aWRlclJlc3BvbnNlIiksCiAgICAgICAgICAgICJtYXRjaGVkUnVsZSI6IFNjcmVlbmluZ0FtbE1hdGNoZWRSdWxlLmZyb21fZGljdChvYmpbIm1hdGNoZWRSdWxlIl0pIGlmIG9iai5nZXQoIm1hdGNoZWRSdWxlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibWF0Y2hlZEFsZXJ0IjogU2NyZWVuaW5nQW1sQWxlcnQuZnJvbV9kaWN0KG9ialsibWF0Y2hlZEFsZXJ0Il0pIGlmIG9iai5nZXQoIm1hdGNoZWRBbGVydCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/screening_configurations_request.py b/fireblocks/models/screening_configurations_request.py index df68286a..7b8c0d80 100644 --- a/fireblocks/models/screening_configurations_request.py +++ b/fireblocks/models/screening_configurations_request.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningConfigurationsRequest(BaseModel): - """ - ScreeningConfigurationsRequest - """ # noqa: E501 - bypass_screening_during_service_outages: Optional[StrictBool] = Field(default=None, description="Flag to enable or disable bypass screening during service outages.", alias="bypassScreeningDuringServiceOutages") - inbound_transaction_delay: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Inbound transaction delay in seconds.", alias="inboundTransactionDelay") - outbound_transaction_delay: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Outbound transaction delay in seconds.", alias="outboundTransactionDelay") - __properties: ClassVar[List[str]] = ["bypassScreeningDuringServiceOutages", "inboundTransactionDelay", "outboundTransactionDelay"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningConfigurationsRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningConfigurationsRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "bypassScreeningDuringServiceOutages": obj.get("bypassScreeningDuringServiceOutages"), - "inboundTransactionDelay": obj.get("inboundTransactionDelay"), - "outboundTransactionDelay": obj.get("outboundTransactionDelay") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwsIFVuaW9uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNjcmVlbmluZ0NvbmZpZ3VyYXRpb25zUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBTY3JlZW5pbmdDb25maWd1cmF0aW9uc1JlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGJ5cGFzc19zY3JlZW5pbmdfZHVyaW5nX3NlcnZpY2Vfb3V0YWdlczogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJGbGFnIHRvIGVuYWJsZSBvciBkaXNhYmxlIGJ5cGFzcyBzY3JlZW5pbmcgZHVyaW5nIHNlcnZpY2Ugb3V0YWdlcy4iLCBhbGlhcz0iYnlwYXNzU2NyZWVuaW5nRHVyaW5nU2VydmljZU91dGFnZXMiKQogICAgaW5ib3VuZF90cmFuc2FjdGlvbl9kZWxheTogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSW5ib3VuZCB0cmFuc2FjdGlvbiBkZWxheSBpbiBzZWNvbmRzLiIsIGFsaWFzPSJpbmJvdW5kVHJhbnNhY3Rpb25EZWxheSIpCiAgICBvdXRib3VuZF90cmFuc2FjdGlvbl9kZWxheTogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iT3V0Ym91bmQgdHJhbnNhY3Rpb24gZGVsYXkgaW4gc2Vjb25kcy4iLCBhbGlhcz0ib3V0Ym91bmRUcmFuc2FjdGlvbkRlbGF5IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYnlwYXNzU2NyZWVuaW5nRHVyaW5nU2VydmljZU91dGFnZXMiLCAiaW5ib3VuZFRyYW5zYWN0aW9uRGVsYXkiLCAib3V0Ym91bmRUcmFuc2FjdGlvbkRlbGF5Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdDb25maWd1cmF0aW9uc1JlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nQ29uZmlndXJhdGlvbnNSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImJ5cGFzc1NjcmVlbmluZ0R1cmluZ1NlcnZpY2VPdXRhZ2VzIjogb2JqLmdldCgiYnlwYXNzU2NyZWVuaW5nRHVyaW5nU2VydmljZU91dGFnZXMiKSwKICAgICAgICAgICAgImluYm91bmRUcmFuc2FjdGlvbkRlbGF5Ijogb2JqLmdldCgiaW5ib3VuZFRyYW5zYWN0aW9uRGVsYXkiKSwKICAgICAgICAgICAgIm91dGJvdW5kVHJhbnNhY3Rpb25EZWxheSI6IG9iai5nZXQoIm91dGJvdW5kVHJhbnNhY3Rpb25EZWxheSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/screening_metadata_config.py b/fireblocks/models/screening_metadata_config.py index bdacf786..605b33bc 100644 --- a/fireblocks/models/screening_metadata_config.py +++ b/fireblocks/models/screening_metadata_config.py @@ -1,163 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningMetadataConfig(BaseModel): - """ - Screening metadata configuration - """ # noqa: E501 - direction: Optional[StrictStr] = Field(default=None, description="Direction of transaction") - provider: Optional[StrictStr] = Field(default=None, description="Screening provider") - risk_rating: Optional[StrictStr] = Field(default=None, description="Risk rating threshold", alias="riskRating") - risk_score: Optional[StrictStr] = Field(default=None, description="Risk score threshold", alias="riskScore") - exposure_type: Optional[StrictStr] = Field(default=None, description="Exposure type", alias="exposureType") - category: Optional[List[StrictStr]] = None - name: Optional[List[StrictStr]] = None - category_id: Optional[List[StrictStr]] = Field(default=None, alias="categoryId") - status: Optional[StrictStr] = Field(default=None, description="Transaction status") - source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress") - dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress") - __properties: ClassVar[List[str]] = ["direction", "provider", "riskRating", "riskScore", "exposureType", "category", "name", "categoryId", "status", "sourceAddress", "destAddress"] - - @field_validator('direction') - def direction_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['INBOUND', 'OUTBOUND', 'ANY']): - raise ValueError("must be one of enum values ('INBOUND', 'OUTBOUND', 'ANY')") - return value - - @field_validator('provider') - def provider_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['CHAINALYSIS', 'CHAINALYSIS_V2', 'ELLIPTIC', 'ELLIPTIC_HOLISTIC', 'NOTABENE']): - raise ValueError("must be one of enum values ('CHAINALYSIS', 'CHAINALYSIS_V2', 'ELLIPTIC', 'ELLIPTIC_HOLISTIC', 'NOTABENE')") - return value - - @field_validator('risk_rating') - def risk_rating_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['LOW', 'MEDIUM', 'HIGH', 'SEVERE', 'ANY']): - raise ValueError("must be one of enum values ('LOW', 'MEDIUM', 'HIGH', 'SEVERE', 'ANY')") - return value - - @field_validator('exposure_type') - def exposure_type_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['DIRECT', 'INDIRECT', 'ANY']): - raise ValueError("must be one of enum values ('DIRECT', 'INDIRECT', 'ANY')") - return value - - @field_validator('status') - def status_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['COMPLETED', 'PENDING', 'REJECTED', 'FAILED', 'CANCELED', 'BLOCKING_TIME_EXPIRED']): - raise ValueError("must be one of enum values ('COMPLETED', 'PENDING', 'REJECTED', 'FAILED', 'CANCELED', 'BLOCKING_TIME_EXPIRED')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningMetadataConfig from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if provider (nullable) is None - # and model_fields_set contains the field - if self.provider is None and "provider" in self.model_fields_set: - _dict['provider'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningMetadataConfig from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "direction": obj.get("direction"), - "provider": obj.get("provider"), - "riskRating": obj.get("riskRating"), - "riskScore": obj.get("riskScore"), - "exposureType": obj.get("exposureType"), - "category": obj.get("category"), - "name": obj.get("name"), - "categoryId": obj.get("categoryId"), - "status": obj.get("status"), - "sourceAddress": obj.get("sourceAddress"), - "destAddress": obj.get("destAddress") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNjcmVlbmluZ01ldGFkYXRhQ29uZmlnKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNjcmVlbmluZyBtZXRhZGF0YSBjb25maWd1cmF0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkaXJlY3Rpb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEaXJlY3Rpb24gb2YgdHJhbnNhY3Rpb24iKQogICAgcHJvdmlkZXI6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTY3JlZW5pbmcgcHJvdmlkZXIiKQogICAgcmlza19yYXRpbmc6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSaXNrIHJhdGluZyB0aHJlc2hvbGQiLCBhbGlhcz0icmlza1JhdGluZyIpCiAgICByaXNrX3Njb3JlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUmlzayBzY29yZSB0aHJlc2hvbGQiLCBhbGlhcz0icmlza1Njb3JlIikKICAgIGV4cG9zdXJlX3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJFeHBvc3VyZSB0eXBlIiwgYWxpYXM9ImV4cG9zdXJlVHlwZSIpCiAgICBjYXRlZ29yeTogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IE5vbmUKICAgIG5hbWU6IE9wdGlvbmFsW0xpc3RbU3RyaWN0U3RyXV0gPSBOb25lCiAgICBjYXRlZ29yeV9pZDogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImNhdGVnb3J5SWQiKQogICAgc3RhdHVzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVHJhbnNhY3Rpb24gc3RhdHVzIikKICAgIHNvdXJjZV9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iU291cmNlIGFkZHJlc3MiLCBhbGlhcz0ic291cmNlQWRkcmVzcyIpCiAgICBkZXN0X2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiBhZGRyZXNzIiwgYWxpYXM9ImRlc3RBZGRyZXNzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZGlyZWN0aW9uIiwgInByb3ZpZGVyIiwgInJpc2tSYXRpbmciLCAicmlza1Njb3JlIiwgImV4cG9zdXJlVHlwZSIsICJjYXRlZ29yeSIsICJuYW1lIiwgImNhdGVnb3J5SWQiLCAic3RhdHVzIiwgInNvdXJjZUFkZHJlc3MiLCAiZGVzdEFkZHJlc3MiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2RpcmVjdGlvbicpCiAgICBkZWYgZGlyZWN0aW9uX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydJTkJPVU5EJywgJ09VVEJPVU5EJywgJ0FOWSddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdJTkJPVU5EJywgJ09VVEJPVU5EJywgJ0FOWScpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdwcm92aWRlcicpCiAgICBkZWYgcHJvdmlkZXJfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gdmFsdWUKCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0NIQUlOQUxZU0lTJywgJ0NIQUlOQUxZU0lTX1YyJywgJ0VMTElQVElDJywgJ0VMTElQVElDX0hPTElTVElDJywgJ05PVEFCRU5FJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0NIQUlOQUxZU0lTJywgJ0NIQUlOQUxZU0lTX1YyJywgJ0VMTElQVElDJywgJ0VMTElQVElDX0hPTElTVElDJywgJ05PVEFCRU5FJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3Jpc2tfcmF0aW5nJykKICAgIGRlZiByaXNrX3JhdGluZ192YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnTE9XJywgJ01FRElVTScsICdISUdIJywgJ1NFVkVSRScsICdBTlknXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnTE9XJywgJ01FRElVTScsICdISUdIJywgJ1NFVkVSRScsICdBTlknKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgQGZpZWxkX3ZhbGlkYXRvcignZXhwb3N1cmVfdHlwZScpCiAgICBkZWYgZXhwb3N1cmVfdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnRElSRUNUJywgJ0lORElSRUNUJywgJ0FOWSddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdESVJFQ1QnLCAnSU5ESVJFQ1QnLCAnQU5ZJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3N0YXR1cycpCiAgICBkZWYgc3RhdHVzX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydDT01QTEVURUQnLCAnUEVORElORycsICdSRUpFQ1RFRCcsICdGQUlMRUQnLCAnQ0FOQ0VMRUQnLCAnQkxPQ0tJTkdfVElNRV9FWFBJUkVEJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0NPTVBMRVRFRCcsICdQRU5ESU5HJywgJ1JFSkVDVEVEJywgJ0ZBSUxFRCcsICdDQU5DRUxFRCcsICdCTE9DS0lOR19USU1FX0VYUElSRUQnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nTWV0YWRhdGFDb25maWcgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgcHJvdmlkZXIgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnByb3ZpZGVyIGlzIE5vbmUgYW5kICJwcm92aWRlciIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsncHJvdmlkZXInXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdNZXRhZGF0YUNvbmZpZyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkaXJlY3Rpb24iOiBvYmouZ2V0KCJkaXJlY3Rpb24iKSwKICAgICAgICAgICAgInByb3ZpZGVyIjogb2JqLmdldCgicHJvdmlkZXIiKSwKICAgICAgICAgICAgInJpc2tSYXRpbmciOiBvYmouZ2V0KCJyaXNrUmF0aW5nIiksCiAgICAgICAgICAgICJyaXNrU2NvcmUiOiBvYmouZ2V0KCJyaXNrU2NvcmUiKSwKICAgICAgICAgICAgImV4cG9zdXJlVHlwZSI6IG9iai5nZXQoImV4cG9zdXJlVHlwZSIpLAogICAgICAgICAgICAiY2F0ZWdvcnkiOiBvYmouZ2V0KCJjYXRlZ29yeSIpLAogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKSwKICAgICAgICAgICAgImNhdGVnb3J5SWQiOiBvYmouZ2V0KCJjYXRlZ29yeUlkIiksCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgInNvdXJjZUFkZHJlc3MiOiBvYmouZ2V0KCJzb3VyY2VBZGRyZXNzIiksCiAgICAgICAgICAgICJkZXN0QWRkcmVzcyI6IG9iai5nZXQoImRlc3RBZGRyZXNzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/screening_operation_execution.py b/fireblocks/models/screening_operation_execution.py index 6ef7e357..953773e5 100644 --- a/fireblocks/models/screening_operation_execution.py +++ b/fireblocks/models/screening_operation_execution.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.screening_operation_execution_output import ScreeningOperationExecutionOutput -from fireblocks.models.screening_operation_failure import ScreeningOperationFailure -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningOperationExecution(BaseModel): - """ - ScreeningOperationExecution - """ # noqa: E501 - output: Optional[ScreeningOperationExecutionOutput] = None - started_at: Union[StrictFloat, StrictInt] = Field(alias="startedAt") - finished_at: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="finishedAt") - failure: Optional[ScreeningOperationFailure] = None - __properties: ClassVar[List[str]] = ["output", "startedAt", "finishedAt", "failure"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningOperationExecution from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of output - if self.output: - _dict['output'] = self.output.to_dict() - # override the default output from pydantic by calling `to_dict()` of failure - if self.failure: - _dict['failure'] = self.failure.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningOperationExecution from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "output": ScreeningOperationExecutionOutput.from_dict(obj["output"]) if obj.get("output") is not None else None, - "startedAt": obj.get("startedAt"), - "finishedAt": obj.get("finishedAt"), - "failure": ScreeningOperationFailure.from_dict(obj["failure"]) if obj.get("failure") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwsIFVuaW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX29wZXJhdGlvbl9leGVjdXRpb25fb3V0cHV0IGltcG9ydCBTY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfb3BlcmF0aW9uX2ZhaWx1cmUgaW1wb3J0IFNjcmVlbmluZ09wZXJhdGlvbkZhaWx1cmUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU2NyZWVuaW5nT3BlcmF0aW9uRXhlY3V0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgb3V0cHV0OiBPcHRpb25hbFtTY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb25PdXRwdXRdID0gTm9uZQogICAgc3RhcnRlZF9hdDogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChhbGlhcz0ic3RhcnRlZEF0IikKICAgIGZpbmlzaGVkX2F0OiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJmaW5pc2hlZEF0IikKICAgIGZhaWx1cmU6IE9wdGlvbmFsW1NjcmVlbmluZ09wZXJhdGlvbkZhaWx1cmVdID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJvdXRwdXQiLCAic3RhcnRlZEF0IiwgImZpbmlzaGVkQXQiLCAiZmFpbHVyZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nT3BlcmF0aW9uRXhlY3V0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2Ygb3V0cHV0CiAgICAgICAgaWYgc2VsZi5vdXRwdXQ6CiAgICAgICAgICAgIF9kaWN0WydvdXRwdXQnXSA9IHNlbGYub3V0cHV0LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBmYWlsdXJlCiAgICAgICAgaWYgc2VsZi5mYWlsdXJlOgogICAgICAgICAgICBfZGljdFsnZmFpbHVyZSddID0gc2VsZi5mYWlsdXJlLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nT3BlcmF0aW9uRXhlY3V0aW9uIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm91dHB1dCI6IFNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dC5mcm9tX2RpY3Qob2JqWyJvdXRwdXQiXSkgaWYgb2JqLmdldCgib3V0cHV0IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAic3RhcnRlZEF0Ijogb2JqLmdldCgic3RhcnRlZEF0IiksCiAgICAgICAgICAgICJmaW5pc2hlZEF0Ijogb2JqLmdldCgiZmluaXNoZWRBdCIpLAogICAgICAgICAgICAiZmFpbHVyZSI6IFNjcmVlbmluZ09wZXJhdGlvbkZhaWx1cmUuZnJvbV9kaWN0KG9ialsiZmFpbHVyZSJdKSBpZiBvYmouZ2V0KCJmYWlsdXJlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/screening_operation_execution_output.py b/fireblocks/models/screening_operation_execution_output.py index 778b4294..056558b1 100644 --- a/fireblocks/models/screening_operation_execution_output.py +++ b/fireblocks/models/screening_operation_execution_output.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List -from fireblocks.models.screening_verdict import ScreeningVerdict -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningOperationExecutionOutput(BaseModel): - """ - ScreeningOperationExecutionOutput - """ # noqa: E501 - verdicts: List[ScreeningVerdict] - __properties: ClassVar[List[str]] = ["verdicts"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningOperationExecutionOutput from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in verdicts (list) - _items = [] - if self.verdicts: - for _item_verdicts in self.verdicts: - if _item_verdicts: - _items.append(_item_verdicts.to_dict()) - _dict['verdicts'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningOperationExecutionOutput from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "verdicts": [ScreeningVerdict.from_dict(_item) for _item in obj["verdicts"]] if obj.get("verdicts") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3ZlcmRpY3QgaW1wb3J0IFNjcmVlbmluZ1ZlcmRpY3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU2NyZWVuaW5nT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dAogICAgIiIiICMgbm9xYTogRTUwMQogICAgdmVyZGljdHM6IExpc3RbU2NyZWVuaW5nVmVyZGljdF0KICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidmVyZGljdHMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiB2ZXJkaWN0cyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYudmVyZGljdHM6CiAgICAgICAgICAgIGZvciBfaXRlbV92ZXJkaWN0cyBpbiBzZWxmLnZlcmRpY3RzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fdmVyZGljdHM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV92ZXJkaWN0cy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0Wyd2ZXJkaWN0cyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidmVyZGljdHMiOiBbU2NyZWVuaW5nVmVyZGljdC5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbInZlcmRpY3RzIl1dIGlmIG9iai5nZXQoInZlcmRpY3RzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/screening_operation_failure.py b/fireblocks/models/screening_operation_failure.py index 60a41b21..09be3572 100644 --- a/fireblocks/models/screening_operation_failure.py +++ b/fireblocks/models/screening_operation_failure.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.screening_operation_execution_output import ScreeningOperationExecutionOutput -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningOperationFailure(BaseModel): - """ - ScreeningOperationFailure - """ # noqa: E501 - reason: StrictStr - data: Optional[ScreeningOperationExecutionOutput] = None - __properties: ClassVar[List[str]] = ["reason", "data"] - - @field_validator('reason') - def reason_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['AML_PROCESS_FAILED', 'SCREENING_REJECTED']): - raise ValueError("must be one of enum values ('AML_PROCESS_FAILED', 'SCREENING_REJECTED')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningOperationFailure from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of data - if self.data: - _dict['data'] = self.data.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningOperationFailure from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "reason": obj.get("reason"), - "data": ScreeningOperationExecutionOutput.from_dict(obj["data"]) if obj.get("data") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXQgaW1wb3J0IFNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTY3JlZW5pbmdPcGVyYXRpb25GYWlsdXJlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNjcmVlbmluZ09wZXJhdGlvbkZhaWx1cmUKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHJlYXNvbjogU3RyaWN0U3RyCiAgICBkYXRhOiBPcHRpb25hbFtTY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb25PdXRwdXRdID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJyZWFzb24iLCAiZGF0YSJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigncmVhc29uJykKICAgIGRlZiByZWFzb25fdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnQU1MX1BST0NFU1NfRkFJTEVEJywgJ1NDUkVFTklOR19SRUpFQ1RFRCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdBTUxfUFJPQ0VTU19GQUlMRUQnLCAnU0NSRUVOSU5HX1JFSkVDVEVEJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ09wZXJhdGlvbkZhaWx1cmUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBkYXRhCiAgICAgICAgaWYgc2VsZi5kYXRhOgogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gc2VsZi5kYXRhLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nT3BlcmF0aW9uRmFpbHVyZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJyZWFzb24iOiBvYmouZ2V0KCJyZWFzb24iKSwKICAgICAgICAgICAgImRhdGEiOiBTY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQuZnJvbV9kaWN0KG9ialsiZGF0YSJdKSBpZiBvYmouZ2V0KCJkYXRhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/screening_operation_type.py b/fireblocks/models/screening_operation_type.py index f2e05d94..5e0d4604 100644 --- a/fireblocks/models/screening_operation_type.py +++ b/fireblocks/models/screening_operation_type.py @@ -1,37 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ScreeningOperationType(str, Enum): - """ - ScreeningOperationType - """ - - """ - allowed enum values - """ - SCREENING = 'SCREENING' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ScreeningOperationType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBTY3JlZW5pbmdPcGVyYXRpb25UeXBlKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIFNjcmVlbmluZ09wZXJhdGlvblR5cGUKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBTQ1JFRU5JTkcgPSAnU0NSRUVOSU5HJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ09wZXJhdGlvblR5cGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/screening_policy_response.py b/fireblocks/models/screening_policy_response.py index 1d2defa0..85a71b67 100644 --- a/fireblocks/models/screening_policy_response.py +++ b/fireblocks/models/screening_policy_response.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.travel_rule_policy_rule_response import TravelRulePolicyRuleResponse -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningPolicyResponse(BaseModel): - """ - ScreeningPolicyResponse - """ # noqa: E501 - policy: TravelRulePolicyRuleResponse - policy_status: Optional[StrictStr] = Field(default=None, alias="policyStatus") - is_default: StrictBool = Field(alias="isDefault") - create_date: Optional[datetime] = Field(default=None, alias="createDate") - last_update: datetime = Field(alias="lastUpdate") - __properties: ClassVar[List[str]] = ["policy", "policyStatus", "isDefault", "createDate", "lastUpdate"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningPolicyResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of policy - if self.policy: - _dict['policy'] = self.policy.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningPolicyResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "policy": TravelRulePolicyRuleResponse.from_dict(obj["policy"]) if obj.get("policy") is not None else None, - "policyStatus": obj.get("policyStatus"), - "isDefault": obj.get("isDefault"), - "createDate": obj.get("createDate"), - "lastUpdate": obj.get("lastUpdate") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3BvbGljeV9ydWxlX3Jlc3BvbnNlIGltcG9ydCBUcmF2ZWxSdWxlUG9saWN5UnVsZVJlc3BvbnNlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNjcmVlbmluZ1BvbGljeVJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNjcmVlbmluZ1BvbGljeVJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBwb2xpY3k6IFRyYXZlbFJ1bGVQb2xpY3lSdWxlUmVzcG9uc2UKICAgIHBvbGljeV9zdGF0dXM6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJwb2xpY3lTdGF0dXMiKQogICAgaXNfZGVmYXVsdDogU3RyaWN0Qm9vbCA9IEZpZWxkKGFsaWFzPSJpc0RlZmF1bHQiKQogICAgY3JlYXRlX2RhdGU6IE9wdGlvbmFsW2RhdGV0aW1lXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImNyZWF0ZURhdGUiKQogICAgbGFzdF91cGRhdGU6IGRhdGV0aW1lID0gRmllbGQoYWxpYXM9Imxhc3RVcGRhdGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJwb2xpY3kiLCAicG9saWN5U3RhdHVzIiwgImlzRGVmYXVsdCIsICJjcmVhdGVEYXRlIiwgImxhc3RVcGRhdGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ1BvbGljeVJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcG9saWN5CiAgICAgICAgaWYgc2VsZi5wb2xpY3k6CiAgICAgICAgICAgIF9kaWN0Wydwb2xpY3knXSA9IHNlbGYucG9saWN5LnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nUG9saWN5UmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicG9saWN5IjogVHJhdmVsUnVsZVBvbGljeVJ1bGVSZXNwb25zZS5mcm9tX2RpY3Qob2JqWyJwb2xpY3kiXSkgaWYgb2JqLmdldCgicG9saWN5IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAicG9saWN5U3RhdHVzIjogb2JqLmdldCgicG9saWN5U3RhdHVzIiksCiAgICAgICAgICAgICJpc0RlZmF1bHQiOiBvYmouZ2V0KCJpc0RlZmF1bHQiKSwKICAgICAgICAgICAgImNyZWF0ZURhdGUiOiBvYmouZ2V0KCJjcmVhdGVEYXRlIiksCiAgICAgICAgICAgICJsYXN0VXBkYXRlIjogb2JqLmdldCgibGFzdFVwZGF0ZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/screening_provider_rules_configuration_response.py b/fireblocks/models/screening_provider_rules_configuration_response.py index f2ad8232..51574a5f 100644 --- a/fireblocks/models/screening_provider_rules_configuration_response.py +++ b/fireblocks/models/screening_provider_rules_configuration_response.py @@ -1,125 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningProviderRulesConfigurationResponse(BaseModel): - """ - ScreeningProviderRulesConfigurationResponse - """ # noqa: E501 - direction: Optional[StrictStr] = None - status: Optional[StrictStr] = None - amount_usd: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="amountUSD") - amount: Optional[Union[StrictFloat, StrictInt]] = None - asset: Optional[StrictStr] = None - action: StrictStr - __properties: ClassVar[List[str]] = ["direction", "status", "amountUSD", "amount", "asset", "action"] - - @field_validator('direction') - def direction_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['INBOUND', 'OUTBOUND']): - raise ValueError("must be one of enum values ('INBOUND', 'OUTBOUND')") - return value - - @field_validator('status') - def status_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['COMPLETED', 'PENDING', 'REJECTED', 'FAILED', 'CANCELED', 'BLOCKING_TIME_EXPIRED']): - raise ValueError("must be one of enum values ('COMPLETED', 'PENDING', 'REJECTED', 'FAILED', 'CANCELED', 'BLOCKING_TIME_EXPIRED')") - return value - - @field_validator('action') - def action_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['ACCEPT', 'REJECT', 'ALERT', 'WAIT', 'FREEZE', 'CANCEL']): - raise ValueError("must be one of enum values ('ACCEPT', 'REJECT', 'ALERT', 'WAIT', 'FREEZE', 'CANCEL')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningProviderRulesConfigurationResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningProviderRulesConfigurationResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "direction": obj.get("direction"), - "status": obj.get("status"), - "amountUSD": obj.get("amountUSD"), - "amount": obj.get("amount"), - "asset": obj.get("asset"), - "action": obj.get("action") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTY3JlZW5pbmdQcm92aWRlclJ1bGVzQ29uZmlndXJhdGlvblJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNjcmVlbmluZ1Byb3ZpZGVyUnVsZXNDb25maWd1cmF0aW9uUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGRpcmVjdGlvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIHN0YXR1czogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIGFtb3VudF91c2Q6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImFtb3VudFVTRCIpCiAgICBhbW91bnQ6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IE5vbmUKICAgIGFzc2V0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgYWN0aW9uOiBTdHJpY3RTdHIKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZGlyZWN0aW9uIiwgInN0YXR1cyIsICJhbW91bnRVU0QiLCAiYW1vdW50IiwgImFzc2V0IiwgImFjdGlvbiJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignZGlyZWN0aW9uJykKICAgIGRlZiBkaXJlY3Rpb25fdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gdmFsdWUKCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0lOQk9VTkQnLCAnT1VUQk9VTkQnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnSU5CT1VORCcsICdPVVRCT1VORCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdzdGF0dXMnKQogICAgZGVmIHN0YXR1c192YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnQ09NUExFVEVEJywgJ1BFTkRJTkcnLCAnUkVKRUNURUQnLCAnRkFJTEVEJywgJ0NBTkNFTEVEJywgJ0JMT0NLSU5HX1RJTUVfRVhQSVJFRCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdDT01QTEVURUQnLCAnUEVORElORycsICdSRUpFQ1RFRCcsICdGQUlMRUQnLCAnQ0FOQ0VMRUQnLCAnQkxPQ0tJTkdfVElNRV9FWFBJUkVEJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FjdGlvbicpCiAgICBkZWYgYWN0aW9uX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0FDQ0VQVCcsICdSRUpFQ1QnLCAnQUxFUlQnLCAnV0FJVCcsICdGUkVFWkUnLCAnQ0FOQ0VMJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0FDQ0VQVCcsICdSRUpFQ1QnLCAnQUxFUlQnLCAnV0FJVCcsICdGUkVFWkUnLCAnQ0FOQ0VMJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ1Byb3ZpZGVyUnVsZXNDb25maWd1cmF0aW9uUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nUHJvdmlkZXJSdWxlc0NvbmZpZ3VyYXRpb25SZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkaXJlY3Rpb24iOiBvYmouZ2V0KCJkaXJlY3Rpb24iKSwKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAiYW1vdW50VVNEIjogb2JqLmdldCgiYW1vdW50VVNEIiksCiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKSwKICAgICAgICAgICAgImFzc2V0Ijogb2JqLmdldCgiYXNzZXQiKSwKICAgICAgICAgICAgImFjdGlvbiI6IG9iai5nZXQoImFjdGlvbiIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/screening_tr_link_amount.py b/fireblocks/models/screening_tr_link_amount.py index 545ff666..07cdd408 100644 --- a/fireblocks/models/screening_tr_link_amount.py +++ b/fireblocks/models/screening_tr_link_amount.py @@ -1,104 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.amount_range_min_max import AmountRangeMinMax -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningTRLinkAmount(BaseModel): - """ - TRLink amount definition with range and currency, compatible with TAP format from Policy Engine V2 - """ # noqa: E501 - range: Optional[AmountRangeMinMax] = None - currency: Optional[StrictStr] = Field(default=None, description="Currency type") - __properties: ClassVar[List[str]] = ["range", "currency"] - - @field_validator('currency') - def currency_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['USD', 'NATIVE']): - raise ValueError("must be one of enum values ('USD', 'NATIVE')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningTRLinkAmount from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of range - if self.range: - _dict['range'] = self.range.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningTRLinkAmount from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "range": AmountRangeMinMax.from_dict(obj["range"]) if obj.get("range") is not None else None, - "currency": obj.get("currency") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X3JhbmdlX21pbl9tYXggaW1wb3J0IEFtb3VudFJhbmdlTWluTWF4CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNjcmVlbmluZ1RSTGlua0Ftb3VudChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUUkxpbmsgYW1vdW50IGRlZmluaXRpb24gd2l0aCByYW5nZSBhbmQgY3VycmVuY3ksIGNvbXBhdGlibGUgd2l0aCBUQVAgZm9ybWF0IGZyb20gUG9saWN5IEVuZ2luZSBWMgogICAgIiIiICMgbm9xYTogRTUwMQogICAgcmFuZ2U6IE9wdGlvbmFsW0Ftb3VudFJhbmdlTWluTWF4XSA9IE5vbmUKICAgIGN1cnJlbmN5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3VycmVuY3kgdHlwZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInJhbmdlIiwgImN1cnJlbmN5Il0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdjdXJyZW5jeScpCiAgICBkZWYgY3VycmVuY3lfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gdmFsdWUKCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ1VTRCcsICdOQVRJVkUnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnVVNEJywgJ05BVElWRScpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdUUkxpbmtBbW91bnQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiByYW5nZQogICAgICAgIGlmIHNlbGYucmFuZ2U6CiAgICAgICAgICAgIF9kaWN0WydyYW5nZSddID0gc2VsZi5yYW5nZS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ1RSTGlua0Ftb3VudCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJyYW5nZSI6IEFtb3VudFJhbmdlTWluTWF4LmZyb21fZGljdChvYmpbInJhbmdlIl0pIGlmIG9iai5nZXQoInJhbmdlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiY3VycmVuY3kiOiBvYmouZ2V0KCJjdXJyZW5jeSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/screening_tr_link_missing_trm_decision.py b/fireblocks/models/screening_tr_link_missing_trm_decision.py index 63f114f0..c7c9b36e 100644 --- a/fireblocks/models/screening_tr_link_missing_trm_decision.py +++ b/fireblocks/models/screening_tr_link_missing_trm_decision.py @@ -1,142 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.screening_tr_link_amount import ScreeningTRLinkAmount -from fireblocks.models.tr_link_missing_trm_action_enum import TRLinkMissingTrmActionEnum -from fireblocks.models.transaction_operation_enum import TransactionOperationEnum -from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum -from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum -from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningTRLinkMissingTrmDecision(BaseModel): - """ - Interface for reporting missing TRM screening decisions in ITRLinkResult - """ # noqa: E501 - customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TRLinkCustomer.id", alias="customerId") - direction: Optional[TravelRuleDirectionEnum] = None - source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType") - source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType") - source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress") - dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType") - dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType") - dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress") - source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId") - dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId") - asset: Optional[StrictStr] = Field(default=None, description="Asset symbol") - base_asset: Optional[StrictStr] = Field(default=None, description="Base asset symbol", alias="baseAsset") - amount: Optional[ScreeningTRLinkAmount] = None - network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol") - operation: Optional[TransactionOperationEnum] = None - description: Optional[StrictStr] = Field(default=None, description="Rule description") - is_default: Optional[StrictBool] = Field(default=False, description="Whether this is a default rule", alias="isDefault") - valid_before: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule expires", alias="validBefore") - valid_after: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule becomes valid", alias="validAfter") - action: TRLinkMissingTrmActionEnum - source: StrictStr = Field(description="TRLink missing TRM source") - timestamp: Optional[datetime] = Field(default=None, description="Timestamp of the decision") - reason: Optional[StrictStr] = Field(default=None, description="Reason for the decision") - __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault", "validBefore", "validAfter", "action", "source", "timestamp", "reason"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningTRLinkMissingTrmDecision from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningTRLinkMissingTrmDecision from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "customerId": obj.get("customerId"), - "direction": obj.get("direction"), - "sourceType": obj.get("sourceType"), - "sourceSubType": obj.get("sourceSubType"), - "sourceAddress": obj.get("sourceAddress"), - "destType": obj.get("destType"), - "destSubType": obj.get("destSubType"), - "destAddress": obj.get("destAddress"), - "sourceId": obj.get("sourceId"), - "destId": obj.get("destId"), - "asset": obj.get("asset"), - "baseAsset": obj.get("baseAsset"), - "amount": ScreeningTRLinkAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "networkProtocol": obj.get("networkProtocol"), - "operation": obj.get("operation"), - "description": obj.get("description"), - "isDefault": obj.get("isDefault") if obj.get("isDefault") is not None else False, - "validBefore": obj.get("validBefore"), - "validAfter": obj.get("validAfter"), - "action": obj.get("action"), - "source": obj.get("source"), - "timestamp": obj.get("timestamp"), - "reason": obj.get("reason") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdHJfbGlua19hbW91bnQgaW1wb3J0IFNjcmVlbmluZ1RSTGlua0Ftb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfbWlzc2luZ190cm1fYWN0aW9uX2VudW0gaW1wb3J0IFRSTGlua01pc3NpbmdUcm1BY3Rpb25FbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fb3BlcmF0aW9uX2VudW0gaW1wb3J0IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3BlZXJfc3ViX3R5cGVfZW51bSBpbXBvcnQgVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9wZWVyX3R5cGVfZW51bSBpbXBvcnQgVHJhbnNmZXJQZWVyVHlwZUVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9kaXJlY3Rpb25fZW51bSBpbXBvcnQgVHJhdmVsUnVsZURpcmVjdGlvbkVudW0KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEludGVyZmFjZSBmb3IgcmVwb3J0aW5nIG1pc3NpbmcgVFJNIHNjcmVlbmluZyBkZWNpc2lvbnMgaW4gSVRSTGlua1Jlc3VsdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgY3VzdG9tZXJfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSZWZlcmVuY2UgdG8gVFJMaW5rQ3VzdG9tZXIuaWQiLCBhbGlhcz0iY3VzdG9tZXJJZCIpCiAgICBkaXJlY3Rpb246IE9wdGlvbmFsW1RyYXZlbFJ1bGVEaXJlY3Rpb25FbnVtXSA9IE5vbmUKICAgIHNvdXJjZV90eXBlOiBPcHRpb25hbFtUcmFuc2ZlclBlZXJUeXBlRW51bV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJzb3VyY2VUeXBlIikKICAgIHNvdXJjZV9zdWJfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyU3ViVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ic291cmNlU3ViVHlwZSIpCiAgICBzb3VyY2VfYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNvdXJjZSBhZGRyZXNzIiwgYWxpYXM9InNvdXJjZUFkZHJlc3MiKQogICAgZGVzdF90eXBlOiBPcHRpb25hbFtUcmFuc2ZlclBlZXJUeXBlRW51bV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJkZXN0VHlwZSIpCiAgICBkZXN0X3N1Yl90eXBlOiBPcHRpb25hbFtUcmFuc2ZlclBlZXJTdWJUeXBlRW51bV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJkZXN0U3ViVHlwZSIpCiAgICBkZXN0X2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiBhZGRyZXNzIiwgYWxpYXM9ImRlc3RBZGRyZXNzIikKICAgIHNvdXJjZV9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNvdXJjZSBJRCIsIGFsaWFzPSJzb3VyY2VJZCIpCiAgICBkZXN0X2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVzdGluYXRpb24gSUQiLCBhbGlhcz0iZGVzdElkIikKICAgIGFzc2V0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQXNzZXQgc3ltYm9sIikKICAgIGJhc2VfYXNzZXQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJCYXNlIGFzc2V0IHN5bWJvbCIsIGFsaWFzPSJiYXNlQXNzZXQiKQogICAgYW1vdW50OiBPcHRpb25hbFtTY3JlZW5pbmdUUkxpbmtBbW91bnRdID0gTm9uZQogICAgbmV0d29ya19wcm90b2NvbDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik5ldHdvcmsgcHJvdG9jb2wiLCBhbGlhcz0ibmV0d29ya1Byb3RvY29sIikKICAgIG9wZXJhdGlvbjogT3B0aW9uYWxbVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtXSA9IE5vbmUKICAgIGRlc2NyaXB0aW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUnVsZSBkZXNjcmlwdGlvbiIpCiAgICBpc19kZWZhdWx0OiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9RmFsc2UsIGRlc2NyaXB0aW9uPSJXaGV0aGVyIHRoaXMgaXMgYSBkZWZhdWx0IHJ1bGUiLCBhbGlhcz0iaXNEZWZhdWx0IikKICAgIHZhbGlkX2JlZm9yZTogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVW5peCB0aW1lc3RhbXAgd2hlbiBydWxlIGV4cGlyZXMiLCBhbGlhcz0idmFsaWRCZWZvcmUiKQogICAgdmFsaWRfYWZ0ZXI6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlVuaXggdGltZXN0YW1wIHdoZW4gcnVsZSBiZWNvbWVzIHZhbGlkIiwgYWxpYXM9InZhbGlkQWZ0ZXIiKQogICAgYWN0aW9uOiBUUkxpbmtNaXNzaW5nVHJtQWN0aW9uRW51bQogICAgc291cmNlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVFJMaW5rIG1pc3NpbmcgVFJNIHNvdXJjZSIpCiAgICB0aW1lc3RhbXA6IE9wdGlvbmFsW2RhdGV0aW1lXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRpbWVzdGFtcCBvZiB0aGUgZGVjaXNpb24iKQogICAgcmVhc29uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUmVhc29uIGZvciB0aGUgZGVjaXNpb24iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJjdXN0b21lcklkIiwgImRpcmVjdGlvbiIsICJzb3VyY2VUeXBlIiwgInNvdXJjZVN1YlR5cGUiLCAic291cmNlQWRkcmVzcyIsICJkZXN0VHlwZSIsICJkZXN0U3ViVHlwZSIsICJkZXN0QWRkcmVzcyIsICJzb3VyY2VJZCIsICJkZXN0SWQiLCAiYXNzZXQiLCAiYmFzZUFzc2V0IiwgImFtb3VudCIsICJuZXR3b3JrUHJvdG9jb2wiLCAib3BlcmF0aW9uIiwgImRlc2NyaXB0aW9uIiwgImlzRGVmYXVsdCIsICJ2YWxpZEJlZm9yZSIsICJ2YWxpZEFmdGVyIiwgImFjdGlvbiIsICJzb3VyY2UiLCAidGltZXN0YW1wIiwgInJlYXNvbiJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYW1vdW50CiAgICAgICAgaWYgc2VsZi5hbW91bnQ6CiAgICAgICAgICAgIF9kaWN0WydhbW91bnQnXSA9IHNlbGYuYW1vdW50LnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImN1c3RvbWVySWQiOiBvYmouZ2V0KCJjdXN0b21lcklkIiksCiAgICAgICAgICAgICJkaXJlY3Rpb24iOiBvYmouZ2V0KCJkaXJlY3Rpb24iKSwKICAgICAgICAgICAgInNvdXJjZVR5cGUiOiBvYmouZ2V0KCJzb3VyY2VUeXBlIiksCiAgICAgICAgICAgICJzb3VyY2VTdWJUeXBlIjogb2JqLmdldCgic291cmNlU3ViVHlwZSIpLAogICAgICAgICAgICAic291cmNlQWRkcmVzcyI6IG9iai5nZXQoInNvdXJjZUFkZHJlc3MiKSwKICAgICAgICAgICAgImRlc3RUeXBlIjogb2JqLmdldCgiZGVzdFR5cGUiKSwKICAgICAgICAgICAgImRlc3RTdWJUeXBlIjogb2JqLmdldCgiZGVzdFN1YlR5cGUiKSwKICAgICAgICAgICAgImRlc3RBZGRyZXNzIjogb2JqLmdldCgiZGVzdEFkZHJlc3MiKSwKICAgICAgICAgICAgInNvdXJjZUlkIjogb2JqLmdldCgic291cmNlSWQiKSwKICAgICAgICAgICAgImRlc3RJZCI6IG9iai5nZXQoImRlc3RJZCIpLAogICAgICAgICAgICAiYXNzZXQiOiBvYmouZ2V0KCJhc3NldCIpLAogICAgICAgICAgICAiYmFzZUFzc2V0Ijogb2JqLmdldCgiYmFzZUFzc2V0IiksCiAgICAgICAgICAgICJhbW91bnQiOiBTY3JlZW5pbmdUUkxpbmtBbW91bnQuZnJvbV9kaWN0KG9ialsiYW1vdW50Il0pIGlmIG9iai5nZXQoImFtb3VudCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm5ldHdvcmtQcm90b2NvbCI6IG9iai5nZXQoIm5ldHdvcmtQcm90b2NvbCIpLAogICAgICAgICAgICAib3BlcmF0aW9uIjogb2JqLmdldCgib3BlcmF0aW9uIiksCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IG9iai5nZXQoImRlc2NyaXB0aW9uIiksCiAgICAgICAgICAgICJpc0RlZmF1bHQiOiBvYmouZ2V0KCJpc0RlZmF1bHQiKSBpZiBvYmouZ2V0KCJpc0RlZmF1bHQiKSBpcyBub3QgTm9uZSBlbHNlIEZhbHNlLAogICAgICAgICAgICAidmFsaWRCZWZvcmUiOiBvYmouZ2V0KCJ2YWxpZEJlZm9yZSIpLAogICAgICAgICAgICAidmFsaWRBZnRlciI6IG9iai5nZXQoInZhbGlkQWZ0ZXIiKSwKICAgICAgICAgICAgImFjdGlvbiI6IG9iai5nZXQoImFjdGlvbiIpLAogICAgICAgICAgICAic291cmNlIjogb2JqLmdldCgic291cmNlIiksCiAgICAgICAgICAgICJ0aW1lc3RhbXAiOiBvYmouZ2V0KCJ0aW1lc3RhbXAiKSwKICAgICAgICAgICAgInJlYXNvbiI6IG9iai5nZXQoInJlYXNvbiIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/screening_tr_link_missing_trm_rule.py b/fireblocks/models/screening_tr_link_missing_trm_rule.py index 81428458..69b03b75 100644 --- a/fireblocks/models/screening_tr_link_missing_trm_rule.py +++ b/fireblocks/models/screening_tr_link_missing_trm_rule.py @@ -1,135 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.screening_tr_link_amount import ScreeningTRLinkAmount -from fireblocks.models.tr_link_missing_trm_action_enum import TRLinkMissingTrmActionEnum -from fireblocks.models.transaction_operation_enum import TransactionOperationEnum -from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum -from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum -from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningTRLinkMissingTrmRule(BaseModel): - """ - TRLink missing TRM rule definition - """ # noqa: E501 - customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TRLinkCustomer.id", alias="customerId") - direction: Optional[TravelRuleDirectionEnum] = None - source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType") - source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType") - source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress") - dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType") - dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType") - dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress") - source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId") - dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId") - asset: Optional[StrictStr] = Field(default=None, description="Asset symbol") - base_asset: Optional[StrictStr] = Field(default=None, description="Base asset symbol", alias="baseAsset") - amount: Optional[ScreeningTRLinkAmount] = None - network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol") - operation: Optional[TransactionOperationEnum] = None - description: Optional[StrictStr] = Field(default=None, description="Rule description") - is_default: Optional[StrictBool] = Field(default=False, description="Whether this is a default rule", alias="isDefault") - valid_before: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule expires", alias="validBefore") - valid_after: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule becomes valid", alias="validAfter") - action: TRLinkMissingTrmActionEnum - __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault", "validBefore", "validAfter", "action"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningTRLinkMissingTrmRule from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningTRLinkMissingTrmRule from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "customerId": obj.get("customerId"), - "direction": obj.get("direction"), - "sourceType": obj.get("sourceType"), - "sourceSubType": obj.get("sourceSubType"), - "sourceAddress": obj.get("sourceAddress"), - "destType": obj.get("destType"), - "destSubType": obj.get("destSubType"), - "destAddress": obj.get("destAddress"), - "sourceId": obj.get("sourceId"), - "destId": obj.get("destId"), - "asset": obj.get("asset"), - "baseAsset": obj.get("baseAsset"), - "amount": ScreeningTRLinkAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "networkProtocol": obj.get("networkProtocol"), - "operation": obj.get("operation"), - "description": obj.get("description"), - "isDefault": obj.get("isDefault") if obj.get("isDefault") is not None else False, - "validBefore": obj.get("validBefore"), - "validAfter": obj.get("validAfter"), - "action": obj.get("action") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdHJfbGlua19hbW91bnQgaW1wb3J0IFNjcmVlbmluZ1RSTGlua0Ftb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfbWlzc2luZ190cm1fYWN0aW9uX2VudW0gaW1wb3J0IFRSTGlua01pc3NpbmdUcm1BY3Rpb25FbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fb3BlcmF0aW9uX2VudW0gaW1wb3J0IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3BlZXJfc3ViX3R5cGVfZW51bSBpbXBvcnQgVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9wZWVyX3R5cGVfZW51bSBpbXBvcnQgVHJhbnNmZXJQZWVyVHlwZUVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9kaXJlY3Rpb25fZW51bSBpbXBvcnQgVHJhdmVsUnVsZURpcmVjdGlvbkVudW0KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybVJ1bGUoQmFzZU1vZGVsKToKICAgICIiIgogICAgVFJMaW5rIG1pc3NpbmcgVFJNIHJ1bGUgZGVmaW5pdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgY3VzdG9tZXJfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSZWZlcmVuY2UgdG8gVFJMaW5rQ3VzdG9tZXIuaWQiLCBhbGlhcz0iY3VzdG9tZXJJZCIpCiAgICBkaXJlY3Rpb246IE9wdGlvbmFsW1RyYXZlbFJ1bGVEaXJlY3Rpb25FbnVtXSA9IE5vbmUKICAgIHNvdXJjZV90eXBlOiBPcHRpb25hbFtUcmFuc2ZlclBlZXJUeXBlRW51bV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJzb3VyY2VUeXBlIikKICAgIHNvdXJjZV9zdWJfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyU3ViVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ic291cmNlU3ViVHlwZSIpCiAgICBzb3VyY2VfYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNvdXJjZSBhZGRyZXNzIiwgYWxpYXM9InNvdXJjZUFkZHJlc3MiKQogICAgZGVzdF90eXBlOiBPcHRpb25hbFtUcmFuc2ZlclBlZXJUeXBlRW51bV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJkZXN0VHlwZSIpCiAgICBkZXN0X3N1Yl90eXBlOiBPcHRpb25hbFtUcmFuc2ZlclBlZXJTdWJUeXBlRW51bV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJkZXN0U3ViVHlwZSIpCiAgICBkZXN0X2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiBhZGRyZXNzIiwgYWxpYXM9ImRlc3RBZGRyZXNzIikKICAgIHNvdXJjZV9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNvdXJjZSBJRCIsIGFsaWFzPSJzb3VyY2VJZCIpCiAgICBkZXN0X2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVzdGluYXRpb24gSUQiLCBhbGlhcz0iZGVzdElkIikKICAgIGFzc2V0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQXNzZXQgc3ltYm9sIikKICAgIGJhc2VfYXNzZXQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJCYXNlIGFzc2V0IHN5bWJvbCIsIGFsaWFzPSJiYXNlQXNzZXQiKQogICAgYW1vdW50OiBPcHRpb25hbFtTY3JlZW5pbmdUUkxpbmtBbW91bnRdID0gTm9uZQogICAgbmV0d29ya19wcm90b2NvbDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik5ldHdvcmsgcHJvdG9jb2wiLCBhbGlhcz0ibmV0d29ya1Byb3RvY29sIikKICAgIG9wZXJhdGlvbjogT3B0aW9uYWxbVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtXSA9IE5vbmUKICAgIGRlc2NyaXB0aW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUnVsZSBkZXNjcmlwdGlvbiIpCiAgICBpc19kZWZhdWx0OiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9RmFsc2UsIGRlc2NyaXB0aW9uPSJXaGV0aGVyIHRoaXMgaXMgYSBkZWZhdWx0IHJ1bGUiLCBhbGlhcz0iaXNEZWZhdWx0IikKICAgIHZhbGlkX2JlZm9yZTogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVW5peCB0aW1lc3RhbXAgd2hlbiBydWxlIGV4cGlyZXMiLCBhbGlhcz0idmFsaWRCZWZvcmUiKQogICAgdmFsaWRfYWZ0ZXI6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlVuaXggdGltZXN0YW1wIHdoZW4gcnVsZSBiZWNvbWVzIHZhbGlkIiwgYWxpYXM9InZhbGlkQWZ0ZXIiKQogICAgYWN0aW9uOiBUUkxpbmtNaXNzaW5nVHJtQWN0aW9uRW51bQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJjdXN0b21lcklkIiwgImRpcmVjdGlvbiIsICJzb3VyY2VUeXBlIiwgInNvdXJjZVN1YlR5cGUiLCAic291cmNlQWRkcmVzcyIsICJkZXN0VHlwZSIsICJkZXN0U3ViVHlwZSIsICJkZXN0QWRkcmVzcyIsICJzb3VyY2VJZCIsICJkZXN0SWQiLCAiYXNzZXQiLCAiYmFzZUFzc2V0IiwgImFtb3VudCIsICJuZXR3b3JrUHJvdG9jb2wiLCAib3BlcmF0aW9uIiwgImRlc2NyaXB0aW9uIiwgImlzRGVmYXVsdCIsICJ2YWxpZEJlZm9yZSIsICJ2YWxpZEFmdGVyIiwgImFjdGlvbiJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybVJ1bGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhbW91bnQKICAgICAgICBpZiBzZWxmLmFtb3VudDoKICAgICAgICAgICAgX2RpY3RbJ2Ftb3VudCddID0gc2VsZi5hbW91bnQudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdUUkxpbmtNaXNzaW5nVHJtUnVsZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJjdXN0b21lcklkIjogb2JqLmdldCgiY3VzdG9tZXJJZCIpLAogICAgICAgICAgICAiZGlyZWN0aW9uIjogb2JqLmdldCgiZGlyZWN0aW9uIiksCiAgICAgICAgICAgICJzb3VyY2VUeXBlIjogb2JqLmdldCgic291cmNlVHlwZSIpLAogICAgICAgICAgICAic291cmNlU3ViVHlwZSI6IG9iai5nZXQoInNvdXJjZVN1YlR5cGUiKSwKICAgICAgICAgICAgInNvdXJjZUFkZHJlc3MiOiBvYmouZ2V0KCJzb3VyY2VBZGRyZXNzIiksCiAgICAgICAgICAgICJkZXN0VHlwZSI6IG9iai5nZXQoImRlc3RUeXBlIiksCiAgICAgICAgICAgICJkZXN0U3ViVHlwZSI6IG9iai5nZXQoImRlc3RTdWJUeXBlIiksCiAgICAgICAgICAgICJkZXN0QWRkcmVzcyI6IG9iai5nZXQoImRlc3RBZGRyZXNzIiksCiAgICAgICAgICAgICJzb3VyY2VJZCI6IG9iai5nZXQoInNvdXJjZUlkIiksCiAgICAgICAgICAgICJkZXN0SWQiOiBvYmouZ2V0KCJkZXN0SWQiKSwKICAgICAgICAgICAgImFzc2V0Ijogb2JqLmdldCgiYXNzZXQiKSwKICAgICAgICAgICAgImJhc2VBc3NldCI6IG9iai5nZXQoImJhc2VBc3NldCIpLAogICAgICAgICAgICAiYW1vdW50IjogU2NyZWVuaW5nVFJMaW5rQW1vdW50LmZyb21fZGljdChvYmpbImFtb3VudCJdKSBpZiBvYmouZ2V0KCJhbW91bnQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJuZXR3b3JrUHJvdG9jb2wiOiBvYmouZ2V0KCJuZXR3b3JrUHJvdG9jb2wiKSwKICAgICAgICAgICAgIm9wZXJhdGlvbiI6IG9iai5nZXQoIm9wZXJhdGlvbiIpLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBvYmouZ2V0KCJkZXNjcmlwdGlvbiIpLAogICAgICAgICAgICAiaXNEZWZhdWx0Ijogb2JqLmdldCgiaXNEZWZhdWx0IikgaWYgb2JqLmdldCgiaXNEZWZhdWx0IikgaXMgbm90IE5vbmUgZWxzZSBGYWxzZSwKICAgICAgICAgICAgInZhbGlkQmVmb3JlIjogb2JqLmdldCgidmFsaWRCZWZvcmUiKSwKICAgICAgICAgICAgInZhbGlkQWZ0ZXIiOiBvYmouZ2V0KCJ2YWxpZEFmdGVyIiksCiAgICAgICAgICAgICJhY3Rpb24iOiBvYmouZ2V0KCJhY3Rpb24iKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/screening_tr_link_post_screening_rule.py b/fireblocks/models/screening_tr_link_post_screening_rule.py index 9aabb5c1..db71baa9 100644 --- a/fireblocks/models/screening_tr_link_post_screening_rule.py +++ b/fireblocks/models/screening_tr_link_post_screening_rule.py @@ -1,140 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.screening_tr_link_amount import ScreeningTRLinkAmount -from fireblocks.models.tr_link_trm_screening_status_enum import TRLinkTrmScreeningStatusEnum -from fireblocks.models.tr_link_verdict_enum import TRLinkVerdictEnum -from fireblocks.models.transaction_operation_enum import TransactionOperationEnum -from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum -from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum -from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningTRLinkPostScreeningRule(BaseModel): - """ - TRLink post-screening rule definition - """ # noqa: E501 - customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TRLinkCustomer.id", alias="customerId") - direction: Optional[TravelRuleDirectionEnum] = None - source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType") - source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType") - source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress") - dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType") - dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType") - dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress") - source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId") - dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId") - asset: Optional[StrictStr] = Field(default=None, description="Asset symbol") - base_asset: Optional[StrictStr] = Field(default=None, description="Base asset symbol", alias="baseAsset") - amount: Optional[ScreeningTRLinkAmount] = None - network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol") - operation: Optional[TransactionOperationEnum] = None - description: Optional[StrictStr] = Field(default=None, description="Rule description") - is_default: Optional[StrictBool] = Field(default=False, description="Whether this is a default rule", alias="isDefault") - provider_ident: Optional[StrictStr] = Field(default=None, description="Provider identifier", alias="providerIdent") - trm_status: Optional[TRLinkTrmScreeningStatusEnum] = Field(default=None, alias="trmStatus") - valid_before: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule expires", alias="validBefore") - valid_after: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule becomes valid", alias="validAfter") - action: TRLinkVerdictEnum - __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault", "providerIdent", "trmStatus", "validBefore", "validAfter", "action"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningTRLinkPostScreeningRule from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningTRLinkPostScreeningRule from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "customerId": obj.get("customerId"), - "direction": obj.get("direction"), - "sourceType": obj.get("sourceType"), - "sourceSubType": obj.get("sourceSubType"), - "sourceAddress": obj.get("sourceAddress"), - "destType": obj.get("destType"), - "destSubType": obj.get("destSubType"), - "destAddress": obj.get("destAddress"), - "sourceId": obj.get("sourceId"), - "destId": obj.get("destId"), - "asset": obj.get("asset"), - "baseAsset": obj.get("baseAsset"), - "amount": ScreeningTRLinkAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "networkProtocol": obj.get("networkProtocol"), - "operation": obj.get("operation"), - "description": obj.get("description"), - "isDefault": obj.get("isDefault") if obj.get("isDefault") is not None else False, - "providerIdent": obj.get("providerIdent"), - "trmStatus": obj.get("trmStatus"), - "validBefore": obj.get("validBefore"), - "validAfter": obj.get("validAfter"), - "action": obj.get("action") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdHJfbGlua19hbW91bnQgaW1wb3J0IFNjcmVlbmluZ1RSTGlua0Ftb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdHJtX3NjcmVlbmluZ19zdGF0dXNfZW51bSBpbXBvcnQgVFJMaW5rVHJtU2NyZWVuaW5nU3RhdHVzRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdmVyZGljdF9lbnVtIGltcG9ydCBUUkxpbmtWZXJkaWN0RW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX29wZXJhdGlvbl9lbnVtIGltcG9ydCBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9wZWVyX3N1Yl90eXBlX2VudW0gaW1wb3J0IFRyYW5zZmVyUGVlclN1YlR5cGVFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfcGVlcl90eXBlX2VudW0gaW1wb3J0IFRyYW5zZmVyUGVlclR5cGVFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfZGlyZWN0aW9uX2VudW0gaW1wb3J0IFRyYXZlbFJ1bGVEaXJlY3Rpb25FbnVtCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNjcmVlbmluZ1RSTGlua1Bvc3RTY3JlZW5pbmdSdWxlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRSTGluayBwb3N0LXNjcmVlbmluZyBydWxlIGRlZmluaXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGN1c3RvbWVyX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUmVmZXJlbmNlIHRvIFRSTGlua0N1c3RvbWVyLmlkIiwgYWxpYXM9ImN1c3RvbWVySWQiKQogICAgZGlyZWN0aW9uOiBPcHRpb25hbFtUcmF2ZWxSdWxlRGlyZWN0aW9uRW51bV0gPSBOb25lCiAgICBzb3VyY2VfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ic291cmNlVHlwZSIpCiAgICBzb3VyY2Vfc3ViX3R5cGU6IE9wdGlvbmFsW1RyYW5zZmVyUGVlclN1YlR5cGVFbnVtXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InNvdXJjZVN1YlR5cGUiKQogICAgc291cmNlX2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgYWRkcmVzcyIsIGFsaWFzPSJzb3VyY2VBZGRyZXNzIikKICAgIGRlc3RfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZGVzdFR5cGUiKQogICAgZGVzdF9zdWJfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyU3ViVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZGVzdFN1YlR5cGUiKQogICAgZGVzdF9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVzdGluYXRpb24gYWRkcmVzcyIsIGFsaWFzPSJkZXN0QWRkcmVzcyIpCiAgICBzb3VyY2VfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgSUQiLCBhbGlhcz0ic291cmNlSWQiKQogICAgZGVzdF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRlc3RpbmF0aW9uIElEIiwgYWxpYXM9ImRlc3RJZCIpCiAgICBhc3NldDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFzc2V0IHN5bWJvbCIpCiAgICBiYXNlX2Fzc2V0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQmFzZSBhc3NldCBzeW1ib2wiLCBhbGlhcz0iYmFzZUFzc2V0IikKICAgIGFtb3VudDogT3B0aW9uYWxbU2NyZWVuaW5nVFJMaW5rQW1vdW50XSA9IE5vbmUKICAgIG5ldHdvcmtfcHJvdG9jb2w6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOZXR3b3JrIHByb3RvY29sIiwgYWxpYXM9Im5ldHdvcmtQcm90b2NvbCIpCiAgICBvcGVyYXRpb246IE9wdGlvbmFsW1RyYW5zYWN0aW9uT3BlcmF0aW9uRW51bV0gPSBOb25lCiAgICBkZXNjcmlwdGlvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlJ1bGUgZGVzY3JpcHRpb24iKQogICAgaXNfZGVmYXVsdDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PUZhbHNlLCBkZXNjcmlwdGlvbj0iV2hldGhlciB0aGlzIGlzIGEgZGVmYXVsdCBydWxlIiwgYWxpYXM9ImlzRGVmYXVsdCIpCiAgICBwcm92aWRlcl9pZGVudDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlByb3ZpZGVyIGlkZW50aWZpZXIiLCBhbGlhcz0icHJvdmlkZXJJZGVudCIpCiAgICB0cm1fc3RhdHVzOiBPcHRpb25hbFtUUkxpbmtUcm1TY3JlZW5pbmdTdGF0dXNFbnVtXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InRybVN0YXR1cyIpCiAgICB2YWxpZF9iZWZvcmU6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlVuaXggdGltZXN0YW1wIHdoZW4gcnVsZSBleHBpcmVzIiwgYWxpYXM9InZhbGlkQmVmb3JlIikKICAgIHZhbGlkX2FmdGVyOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJVbml4IHRpbWVzdGFtcCB3aGVuIHJ1bGUgYmVjb21lcyB2YWxpZCIsIGFsaWFzPSJ2YWxpZEFmdGVyIikKICAgIGFjdGlvbjogVFJMaW5rVmVyZGljdEVudW0KICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiY3VzdG9tZXJJZCIsICJkaXJlY3Rpb24iLCAic291cmNlVHlwZSIsICJzb3VyY2VTdWJUeXBlIiwgInNvdXJjZUFkZHJlc3MiLCAiZGVzdFR5cGUiLCAiZGVzdFN1YlR5cGUiLCAiZGVzdEFkZHJlc3MiLCAic291cmNlSWQiLCAiZGVzdElkIiwgImFzc2V0IiwgImJhc2VBc3NldCIsICJhbW91bnQiLCAibmV0d29ya1Byb3RvY29sIiwgIm9wZXJhdGlvbiIsICJkZXNjcmlwdGlvbiIsICJpc0RlZmF1bHQiLCAicHJvdmlkZXJJZGVudCIsICJ0cm1TdGF0dXMiLCAidmFsaWRCZWZvcmUiLCAidmFsaWRBZnRlciIsICJhY3Rpb24iXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ1RSTGlua1Bvc3RTY3JlZW5pbmdSdWxlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYW1vdW50CiAgICAgICAgaWYgc2VsZi5hbW91bnQ6CiAgICAgICAgICAgIF9kaWN0WydhbW91bnQnXSA9IHNlbGYuYW1vdW50LnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiY3VzdG9tZXJJZCI6IG9iai5nZXQoImN1c3RvbWVySWQiKSwKICAgICAgICAgICAgImRpcmVjdGlvbiI6IG9iai5nZXQoImRpcmVjdGlvbiIpLAogICAgICAgICAgICAic291cmNlVHlwZSI6IG9iai5nZXQoInNvdXJjZVR5cGUiKSwKICAgICAgICAgICAgInNvdXJjZVN1YlR5cGUiOiBvYmouZ2V0KCJzb3VyY2VTdWJUeXBlIiksCiAgICAgICAgICAgICJzb3VyY2VBZGRyZXNzIjogb2JqLmdldCgic291cmNlQWRkcmVzcyIpLAogICAgICAgICAgICAiZGVzdFR5cGUiOiBvYmouZ2V0KCJkZXN0VHlwZSIpLAogICAgICAgICAgICAiZGVzdFN1YlR5cGUiOiBvYmouZ2V0KCJkZXN0U3ViVHlwZSIpLAogICAgICAgICAgICAiZGVzdEFkZHJlc3MiOiBvYmouZ2V0KCJkZXN0QWRkcmVzcyIpLAogICAgICAgICAgICAic291cmNlSWQiOiBvYmouZ2V0KCJzb3VyY2VJZCIpLAogICAgICAgICAgICAiZGVzdElkIjogb2JqLmdldCgiZGVzdElkIiksCiAgICAgICAgICAgICJhc3NldCI6IG9iai5nZXQoImFzc2V0IiksCiAgICAgICAgICAgICJiYXNlQXNzZXQiOiBvYmouZ2V0KCJiYXNlQXNzZXQiKSwKICAgICAgICAgICAgImFtb3VudCI6IFNjcmVlbmluZ1RSTGlua0Ftb3VudC5mcm9tX2RpY3Qob2JqWyJhbW91bnQiXSkgaWYgb2JqLmdldCgiYW1vdW50IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibmV0d29ya1Byb3RvY29sIjogb2JqLmdldCgibmV0d29ya1Byb3RvY29sIiksCiAgICAgICAgICAgICJvcGVyYXRpb24iOiBvYmouZ2V0KCJvcGVyYXRpb24iKSwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogb2JqLmdldCgiZGVzY3JpcHRpb24iKSwKICAgICAgICAgICAgImlzRGVmYXVsdCI6IG9iai5nZXQoImlzRGVmYXVsdCIpIGlmIG9iai5nZXQoImlzRGVmYXVsdCIpIGlzIG5vdCBOb25lIGVsc2UgRmFsc2UsCiAgICAgICAgICAgICJwcm92aWRlcklkZW50Ijogb2JqLmdldCgicHJvdmlkZXJJZGVudCIpLAogICAgICAgICAgICAidHJtU3RhdHVzIjogb2JqLmdldCgidHJtU3RhdHVzIiksCiAgICAgICAgICAgICJ2YWxpZEJlZm9yZSI6IG9iai5nZXQoInZhbGlkQmVmb3JlIiksCiAgICAgICAgICAgICJ2YWxpZEFmdGVyIjogb2JqLmdldCgidmFsaWRBZnRlciIpLAogICAgICAgICAgICAiYWN0aW9uIjogb2JqLmdldCgiYWN0aW9uIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/screening_tr_link_prescreening_rule.py b/fireblocks/models/screening_tr_link_prescreening_rule.py index 2828edd1..e3ba04c9 100644 --- a/fireblocks/models/screening_tr_link_prescreening_rule.py +++ b/fireblocks/models/screening_tr_link_prescreening_rule.py @@ -1,131 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.screening_tr_link_amount import ScreeningTRLinkAmount -from fireblocks.models.tr_link_pre_screening_action_enum import TRLinkPreScreeningActionEnum -from fireblocks.models.transaction_operation_enum import TransactionOperationEnum -from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum -from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum -from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningTRLinkPrescreeningRule(BaseModel): - """ - TRLink pre-screening rule definition - """ # noqa: E501 - customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TRLinkCustomer.id", alias="customerId") - direction: Optional[TravelRuleDirectionEnum] = None - source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType") - source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType") - source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress") - dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType") - dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType") - dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress") - source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId") - dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId") - asset: Optional[StrictStr] = Field(default=None, description="Asset symbol") - base_asset: Optional[StrictStr] = Field(default=None, description="Base asset symbol", alias="baseAsset") - amount: Optional[ScreeningTRLinkAmount] = None - network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol") - operation: Optional[TransactionOperationEnum] = None - description: Optional[StrictStr] = Field(default=None, description="Rule description") - is_default: Optional[StrictBool] = Field(default=False, description="Whether this is a default rule", alias="isDefault") - action: TRLinkPreScreeningActionEnum - __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault", "action"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningTRLinkPrescreeningRule from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningTRLinkPrescreeningRule from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "customerId": obj.get("customerId"), - "direction": obj.get("direction"), - "sourceType": obj.get("sourceType"), - "sourceSubType": obj.get("sourceSubType"), - "sourceAddress": obj.get("sourceAddress"), - "destType": obj.get("destType"), - "destSubType": obj.get("destSubType"), - "destAddress": obj.get("destAddress"), - "sourceId": obj.get("sourceId"), - "destId": obj.get("destId"), - "asset": obj.get("asset"), - "baseAsset": obj.get("baseAsset"), - "amount": ScreeningTRLinkAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "networkProtocol": obj.get("networkProtocol"), - "operation": obj.get("operation"), - "description": obj.get("description"), - "isDefault": obj.get("isDefault") if obj.get("isDefault") is not None else False, - "action": obj.get("action") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cl9saW5rX2Ftb3VudCBpbXBvcnQgU2NyZWVuaW5nVFJMaW5rQW1vdW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wcmVfc2NyZWVuaW5nX2FjdGlvbl9lbnVtIGltcG9ydCBUUkxpbmtQcmVTY3JlZW5pbmdBY3Rpb25FbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fb3BlcmF0aW9uX2VudW0gaW1wb3J0IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3BlZXJfc3ViX3R5cGVfZW51bSBpbXBvcnQgVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9wZWVyX3R5cGVfZW51bSBpbXBvcnQgVHJhbnNmZXJQZWVyVHlwZUVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9kaXJlY3Rpb25fZW51bSBpbXBvcnQgVHJhdmVsUnVsZURpcmVjdGlvbkVudW0KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU2NyZWVuaW5nVFJMaW5rUHJlc2NyZWVuaW5nUnVsZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUUkxpbmsgcHJlLXNjcmVlbmluZyBydWxlIGRlZmluaXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGN1c3RvbWVyX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUmVmZXJlbmNlIHRvIFRSTGlua0N1c3RvbWVyLmlkIiwgYWxpYXM9ImN1c3RvbWVySWQiKQogICAgZGlyZWN0aW9uOiBPcHRpb25hbFtUcmF2ZWxSdWxlRGlyZWN0aW9uRW51bV0gPSBOb25lCiAgICBzb3VyY2VfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ic291cmNlVHlwZSIpCiAgICBzb3VyY2Vfc3ViX3R5cGU6IE9wdGlvbmFsW1RyYW5zZmVyUGVlclN1YlR5cGVFbnVtXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InNvdXJjZVN1YlR5cGUiKQogICAgc291cmNlX2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgYWRkcmVzcyIsIGFsaWFzPSJzb3VyY2VBZGRyZXNzIikKICAgIGRlc3RfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZGVzdFR5cGUiKQogICAgZGVzdF9zdWJfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyU3ViVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZGVzdFN1YlR5cGUiKQogICAgZGVzdF9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVzdGluYXRpb24gYWRkcmVzcyIsIGFsaWFzPSJkZXN0QWRkcmVzcyIpCiAgICBzb3VyY2VfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgSUQiLCBhbGlhcz0ic291cmNlSWQiKQogICAgZGVzdF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRlc3RpbmF0aW9uIElEIiwgYWxpYXM9ImRlc3RJZCIpCiAgICBhc3NldDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFzc2V0IHN5bWJvbCIpCiAgICBiYXNlX2Fzc2V0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQmFzZSBhc3NldCBzeW1ib2wiLCBhbGlhcz0iYmFzZUFzc2V0IikKICAgIGFtb3VudDogT3B0aW9uYWxbU2NyZWVuaW5nVFJMaW5rQW1vdW50XSA9IE5vbmUKICAgIG5ldHdvcmtfcHJvdG9jb2w6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOZXR3b3JrIHByb3RvY29sIiwgYWxpYXM9Im5ldHdvcmtQcm90b2NvbCIpCiAgICBvcGVyYXRpb246IE9wdGlvbmFsW1RyYW5zYWN0aW9uT3BlcmF0aW9uRW51bV0gPSBOb25lCiAgICBkZXNjcmlwdGlvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlJ1bGUgZGVzY3JpcHRpb24iKQogICAgaXNfZGVmYXVsdDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PUZhbHNlLCBkZXNjcmlwdGlvbj0iV2hldGhlciB0aGlzIGlzIGEgZGVmYXVsdCBydWxlIiwgYWxpYXM9ImlzRGVmYXVsdCIpCiAgICBhY3Rpb246IFRSTGlua1ByZVNjcmVlbmluZ0FjdGlvbkVudW0KICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiY3VzdG9tZXJJZCIsICJkaXJlY3Rpb24iLCAic291cmNlVHlwZSIsICJzb3VyY2VTdWJUeXBlIiwgInNvdXJjZUFkZHJlc3MiLCAiZGVzdFR5cGUiLCAiZGVzdFN1YlR5cGUiLCAiZGVzdEFkZHJlc3MiLCAic291cmNlSWQiLCAiZGVzdElkIiwgImFzc2V0IiwgImJhc2VBc3NldCIsICJhbW91bnQiLCAibmV0d29ya1Byb3RvY29sIiwgIm9wZXJhdGlvbiIsICJkZXNjcmlwdGlvbiIsICJpc0RlZmF1bHQiLCAiYWN0aW9uIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdUUkxpbmtQcmVzY3JlZW5pbmdSdWxlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYW1vdW50CiAgICAgICAgaWYgc2VsZi5hbW91bnQ6CiAgICAgICAgICAgIF9kaWN0WydhbW91bnQnXSA9IHNlbGYuYW1vdW50LnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVFJMaW5rUHJlc2NyZWVuaW5nUnVsZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJjdXN0b21lcklkIjogb2JqLmdldCgiY3VzdG9tZXJJZCIpLAogICAgICAgICAgICAiZGlyZWN0aW9uIjogb2JqLmdldCgiZGlyZWN0aW9uIiksCiAgICAgICAgICAgICJzb3VyY2VUeXBlIjogb2JqLmdldCgic291cmNlVHlwZSIpLAogICAgICAgICAgICAic291cmNlU3ViVHlwZSI6IG9iai5nZXQoInNvdXJjZVN1YlR5cGUiKSwKICAgICAgICAgICAgInNvdXJjZUFkZHJlc3MiOiBvYmouZ2V0KCJzb3VyY2VBZGRyZXNzIiksCiAgICAgICAgICAgICJkZXN0VHlwZSI6IG9iai5nZXQoImRlc3RUeXBlIiksCiAgICAgICAgICAgICJkZXN0U3ViVHlwZSI6IG9iai5nZXQoImRlc3RTdWJUeXBlIiksCiAgICAgICAgICAgICJkZXN0QWRkcmVzcyI6IG9iai5nZXQoImRlc3RBZGRyZXNzIiksCiAgICAgICAgICAgICJzb3VyY2VJZCI6IG9iai5nZXQoInNvdXJjZUlkIiksCiAgICAgICAgICAgICJkZXN0SWQiOiBvYmouZ2V0KCJkZXN0SWQiKSwKICAgICAgICAgICAgImFzc2V0Ijogb2JqLmdldCgiYXNzZXQiKSwKICAgICAgICAgICAgImJhc2VBc3NldCI6IG9iai5nZXQoImJhc2VBc3NldCIpLAogICAgICAgICAgICAiYW1vdW50IjogU2NyZWVuaW5nVFJMaW5rQW1vdW50LmZyb21fZGljdChvYmpbImFtb3VudCJdKSBpZiBvYmouZ2V0KCJhbW91bnQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJuZXR3b3JrUHJvdG9jb2wiOiBvYmouZ2V0KCJuZXR3b3JrUHJvdG9jb2wiKSwKICAgICAgICAgICAgIm9wZXJhdGlvbiI6IG9iai5nZXQoIm9wZXJhdGlvbiIpLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBvYmouZ2V0KCJkZXNjcmlwdGlvbiIpLAogICAgICAgICAgICAiaXNEZWZhdWx0Ijogb2JqLmdldCgiaXNEZWZhdWx0IikgaWYgb2JqLmdldCgiaXNEZWZhdWx0IikgaXMgbm90IE5vbmUgZWxzZSBGYWxzZSwKICAgICAgICAgICAgImFjdGlvbiI6IG9iai5nZXQoImFjdGlvbiIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/screening_tr_link_rule_base.py b/fireblocks/models/screening_tr_link_rule_base.py index bc5b6025..6da7f1a8 100644 --- a/fireblocks/models/screening_tr_link_rule_base.py +++ b/fireblocks/models/screening_tr_link_rule_base.py @@ -1,128 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.screening_tr_link_amount import ScreeningTRLinkAmount -from fireblocks.models.transaction_operation_enum import TransactionOperationEnum -from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum -from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum -from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningTRLinkRuleBase(BaseModel): - """ - Base interface for TRLink policy rules - """ # noqa: E501 - customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TRLinkCustomer.id", alias="customerId") - direction: Optional[TravelRuleDirectionEnum] = None - source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType") - source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType") - source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress") - dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType") - dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType") - dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress") - source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId") - dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId") - asset: Optional[StrictStr] = Field(default=None, description="Asset symbol") - base_asset: Optional[StrictStr] = Field(default=None, description="Base asset symbol", alias="baseAsset") - amount: Optional[ScreeningTRLinkAmount] = None - network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol") - operation: Optional[TransactionOperationEnum] = None - description: Optional[StrictStr] = Field(default=None, description="Rule description") - is_default: Optional[StrictBool] = Field(default=False, description="Whether this is a default rule", alias="isDefault") - __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningTRLinkRuleBase from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningTRLinkRuleBase from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "customerId": obj.get("customerId"), - "direction": obj.get("direction"), - "sourceType": obj.get("sourceType"), - "sourceSubType": obj.get("sourceSubType"), - "sourceAddress": obj.get("sourceAddress"), - "destType": obj.get("destType"), - "destSubType": obj.get("destSubType"), - "destAddress": obj.get("destAddress"), - "sourceId": obj.get("sourceId"), - "destId": obj.get("destId"), - "asset": obj.get("asset"), - "baseAsset": obj.get("baseAsset"), - "amount": ScreeningTRLinkAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "networkProtocol": obj.get("networkProtocol"), - "operation": obj.get("operation"), - "description": obj.get("description"), - "isDefault": obj.get("isDefault") if obj.get("isDefault") is not None else False - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cl9saW5rX2Ftb3VudCBpbXBvcnQgU2NyZWVuaW5nVFJMaW5rQW1vdW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fb3BlcmF0aW9uX2VudW0gaW1wb3J0IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3BlZXJfc3ViX3R5cGVfZW51bSBpbXBvcnQgVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9wZWVyX3R5cGVfZW51bSBpbXBvcnQgVHJhbnNmZXJQZWVyVHlwZUVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9kaXJlY3Rpb25fZW51bSBpbXBvcnQgVHJhdmVsUnVsZURpcmVjdGlvbkVudW0KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU2NyZWVuaW5nVFJMaW5rUnVsZUJhc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgQmFzZSBpbnRlcmZhY2UgZm9yIFRSTGluayBwb2xpY3kgcnVsZXMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGN1c3RvbWVyX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUmVmZXJlbmNlIHRvIFRSTGlua0N1c3RvbWVyLmlkIiwgYWxpYXM9ImN1c3RvbWVySWQiKQogICAgZGlyZWN0aW9uOiBPcHRpb25hbFtUcmF2ZWxSdWxlRGlyZWN0aW9uRW51bV0gPSBOb25lCiAgICBzb3VyY2VfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ic291cmNlVHlwZSIpCiAgICBzb3VyY2Vfc3ViX3R5cGU6IE9wdGlvbmFsW1RyYW5zZmVyUGVlclN1YlR5cGVFbnVtXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InNvdXJjZVN1YlR5cGUiKQogICAgc291cmNlX2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgYWRkcmVzcyIsIGFsaWFzPSJzb3VyY2VBZGRyZXNzIikKICAgIGRlc3RfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZGVzdFR5cGUiKQogICAgZGVzdF9zdWJfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyU3ViVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZGVzdFN1YlR5cGUiKQogICAgZGVzdF9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVzdGluYXRpb24gYWRkcmVzcyIsIGFsaWFzPSJkZXN0QWRkcmVzcyIpCiAgICBzb3VyY2VfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgSUQiLCBhbGlhcz0ic291cmNlSWQiKQogICAgZGVzdF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRlc3RpbmF0aW9uIElEIiwgYWxpYXM9ImRlc3RJZCIpCiAgICBhc3NldDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFzc2V0IHN5bWJvbCIpCiAgICBiYXNlX2Fzc2V0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQmFzZSBhc3NldCBzeW1ib2wiLCBhbGlhcz0iYmFzZUFzc2V0IikKICAgIGFtb3VudDogT3B0aW9uYWxbU2NyZWVuaW5nVFJMaW5rQW1vdW50XSA9IE5vbmUKICAgIG5ldHdvcmtfcHJvdG9jb2w6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOZXR3b3JrIHByb3RvY29sIiwgYWxpYXM9Im5ldHdvcmtQcm90b2NvbCIpCiAgICBvcGVyYXRpb246IE9wdGlvbmFsW1RyYW5zYWN0aW9uT3BlcmF0aW9uRW51bV0gPSBOb25lCiAgICBkZXNjcmlwdGlvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlJ1bGUgZGVzY3JpcHRpb24iKQogICAgaXNfZGVmYXVsdDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PUZhbHNlLCBkZXNjcmlwdGlvbj0iV2hldGhlciB0aGlzIGlzIGEgZGVmYXVsdCBydWxlIiwgYWxpYXM9ImlzRGVmYXVsdCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImN1c3RvbWVySWQiLCAiZGlyZWN0aW9uIiwgInNvdXJjZVR5cGUiLCAic291cmNlU3ViVHlwZSIsICJzb3VyY2VBZGRyZXNzIiwgImRlc3RUeXBlIiwgImRlc3RTdWJUeXBlIiwgImRlc3RBZGRyZXNzIiwgInNvdXJjZUlkIiwgImRlc3RJZCIsICJhc3NldCIsICJiYXNlQXNzZXQiLCAiYW1vdW50IiwgIm5ldHdvcmtQcm90b2NvbCIsICJvcGVyYXRpb24iLCAiZGVzY3JpcHRpb24iLCAiaXNEZWZhdWx0Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdUUkxpbmtSdWxlQmFzZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFtb3VudAogICAgICAgIGlmIHNlbGYuYW1vdW50OgogICAgICAgICAgICBfZGljdFsnYW1vdW50J10gPSBzZWxmLmFtb3VudC50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ1RSTGlua1J1bGVCYXNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImN1c3RvbWVySWQiOiBvYmouZ2V0KCJjdXN0b21lcklkIiksCiAgICAgICAgICAgICJkaXJlY3Rpb24iOiBvYmouZ2V0KCJkaXJlY3Rpb24iKSwKICAgICAgICAgICAgInNvdXJjZVR5cGUiOiBvYmouZ2V0KCJzb3VyY2VUeXBlIiksCiAgICAgICAgICAgICJzb3VyY2VTdWJUeXBlIjogb2JqLmdldCgic291cmNlU3ViVHlwZSIpLAogICAgICAgICAgICAic291cmNlQWRkcmVzcyI6IG9iai5nZXQoInNvdXJjZUFkZHJlc3MiKSwKICAgICAgICAgICAgImRlc3RUeXBlIjogb2JqLmdldCgiZGVzdFR5cGUiKSwKICAgICAgICAgICAgImRlc3RTdWJUeXBlIjogb2JqLmdldCgiZGVzdFN1YlR5cGUiKSwKICAgICAgICAgICAgImRlc3RBZGRyZXNzIjogb2JqLmdldCgiZGVzdEFkZHJlc3MiKSwKICAgICAgICAgICAgInNvdXJjZUlkIjogb2JqLmdldCgic291cmNlSWQiKSwKICAgICAgICAgICAgImRlc3RJZCI6IG9iai5nZXQoImRlc3RJZCIpLAogICAgICAgICAgICAiYXNzZXQiOiBvYmouZ2V0KCJhc3NldCIpLAogICAgICAgICAgICAiYmFzZUFzc2V0Ijogb2JqLmdldCgiYmFzZUFzc2V0IiksCiAgICAgICAgICAgICJhbW91bnQiOiBTY3JlZW5pbmdUUkxpbmtBbW91bnQuZnJvbV9kaWN0KG9ialsiYW1vdW50Il0pIGlmIG9iai5nZXQoImFtb3VudCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm5ldHdvcmtQcm90b2NvbCI6IG9iai5nZXQoIm5ldHdvcmtQcm90b2NvbCIpLAogICAgICAgICAgICAib3BlcmF0aW9uIjogb2JqLmdldCgib3BlcmF0aW9uIiksCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IG9iai5nZXQoImRlc2NyaXB0aW9uIiksCiAgICAgICAgICAgICJpc0RlZmF1bHQiOiBvYmouZ2V0KCJpc0RlZmF1bHQiKSBpZiBvYmouZ2V0KCJpc0RlZmF1bHQiKSBpcyBub3QgTm9uZSBlbHNlIEZhbHNlCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/screening_travel_rule_matched_rule.py b/fireblocks/models/screening_travel_rule_matched_rule.py index fe8ad97e..897d0185 100644 --- a/fireblocks/models/screening_travel_rule_matched_rule.py +++ b/fireblocks/models/screening_travel_rule_matched_rule.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum -from fireblocks.models.travel_rule_status_enum import TravelRuleStatusEnum -from fireblocks.models.travel_rule_verdict_enum import TravelRuleVerdictEnum -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningTravelRuleMatchedRule(BaseModel): - """ - The travel rule configuration that was matched - """ # noqa: E501 - direction: Optional[TravelRuleDirectionEnum] = None - status: Optional[TravelRuleStatusEnum] = None - amount_usd: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Amount in USD", alias="amountUSD") - amount: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Amount in base currency") - asset: Optional[StrictStr] = Field(default=None, description="Asset identifier") - action: Optional[TravelRuleVerdictEnum] = None - __properties: ClassVar[List[str]] = ["direction", "status", "amountUSD", "amount", "asset", "action"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningTravelRuleMatchedRule from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningTravelRuleMatchedRule from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "direction": obj.get("direction"), - "status": obj.get("status"), - "amountUSD": obj.get("amountUSD"), - "amount": obj.get("amount"), - "asset": obj.get("asset"), - "action": obj.get("action") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9kaXJlY3Rpb25fZW51bSBpbXBvcnQgVHJhdmVsUnVsZURpcmVjdGlvbkVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9zdGF0dXNfZW51bSBpbXBvcnQgVHJhdmVsUnVsZVN0YXR1c0VudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92ZXJkaWN0X2VudW0gaW1wb3J0IFRyYXZlbFJ1bGVWZXJkaWN0RW51bQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTY3JlZW5pbmdUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGUoQmFzZU1vZGVsKToKICAgICIiIgogICAgVGhlIHRyYXZlbCBydWxlIGNvbmZpZ3VyYXRpb24gdGhhdCB3YXMgbWF0Y2hlZAogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGlyZWN0aW9uOiBPcHRpb25hbFtUcmF2ZWxSdWxlRGlyZWN0aW9uRW51bV0gPSBOb25lCiAgICBzdGF0dXM6IE9wdGlvbmFsW1RyYXZlbFJ1bGVTdGF0dXNFbnVtXSA9IE5vbmUKICAgIGFtb3VudF91c2Q6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFtb3VudCBpbiBVU0QiLCBhbGlhcz0iYW1vdW50VVNEIikKICAgIGFtb3VudDogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQW1vdW50IGluIGJhc2UgY3VycmVuY3kiKQogICAgYXNzZXQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBc3NldCBpZGVudGlmaWVyIikKICAgIGFjdGlvbjogT3B0aW9uYWxbVHJhdmVsUnVsZVZlcmRpY3RFbnVtXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZGlyZWN0aW9uIiwgInN0YXR1cyIsICJhbW91bnRVU0QiLCAiYW1vdW50IiwgImFzc2V0IiwgImFjdGlvbiJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVHJhdmVsUnVsZU1hdGNoZWRSdWxlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ1RyYXZlbFJ1bGVNYXRjaGVkUnVsZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkaXJlY3Rpb24iOiBvYmouZ2V0KCJkaXJlY3Rpb24iKSwKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAiYW1vdW50VVNEIjogb2JqLmdldCgiYW1vdW50VVNEIiksCiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKSwKICAgICAgICAgICAgImFzc2V0Ijogb2JqLmdldCgiYXNzZXQiKSwKICAgICAgICAgICAgImFjdGlvbiI6IG9iai5nZXQoImFjdGlvbiIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/screening_travel_rule_prescreening_rule.py b/fireblocks/models/screening_travel_rule_prescreening_rule.py index b1814154..a5e1159a 100644 --- a/fireblocks/models/screening_travel_rule_prescreening_rule.py +++ b/fireblocks/models/screening_travel_rule_prescreening_rule.py @@ -1,124 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.transaction_operation_enum import TransactionOperationEnum -from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum -from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum -from fireblocks.models.travel_rule_action_enum import TravelRuleActionEnum -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningTravelRulePrescreeningRule(BaseModel): - """ - Matched prescreening rule details. Prescreening rules are evaluated before the main screening to determine if screening is necessary or should be bypassed. - """ # noqa: E501 - bypass_reason: Optional[StrictStr] = Field(default=None, description="Reason for bypass if prescreening rule triggered a bypass", alias="bypassReason") - source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType") - source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType") - dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType") - dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType") - transfer_peer_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="transferPeerType") - transfer_peer_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="transferPeerSubType") - dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress") - source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId") - dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId") - asset: Optional[StrictStr] = Field(default=None, description="Asset identifier") - base_asset: Optional[StrictStr] = Field(default=None, description="Base asset", alias="baseAsset") - amount: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Amount") - amount_usd: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Amount in USD", alias="amountUSD") - network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol") - operation: Optional[TransactionOperationEnum] = None - action: Optional[TravelRuleActionEnum] = None - __properties: ClassVar[List[str]] = ["bypassReason", "sourceType", "sourceSubType", "destType", "destSubType", "transferPeerType", "transferPeerSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "amountUSD", "networkProtocol", "operation", "action"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningTravelRulePrescreeningRule from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningTravelRulePrescreeningRule from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "bypassReason": obj.get("bypassReason"), - "sourceType": obj.get("sourceType"), - "sourceSubType": obj.get("sourceSubType"), - "destType": obj.get("destType"), - "destSubType": obj.get("destSubType"), - "transferPeerType": obj.get("transferPeerType"), - "transferPeerSubType": obj.get("transferPeerSubType"), - "destAddress": obj.get("destAddress"), - "sourceId": obj.get("sourceId"), - "destId": obj.get("destId"), - "asset": obj.get("asset"), - "baseAsset": obj.get("baseAsset"), - "amount": obj.get("amount"), - "amountUSD": obj.get("amountUSD"), - "networkProtocol": obj.get("networkProtocol"), - "operation": obj.get("operation"), - "action": obj.get("action") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9vcGVyYXRpb25fZW51bSBpbXBvcnQgVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfcGVlcl9zdWJfdHlwZV9lbnVtIGltcG9ydCBUcmFuc2ZlclBlZXJTdWJUeXBlRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3BlZXJfdHlwZV9lbnVtIGltcG9ydCBUcmFuc2ZlclBlZXJUeXBlRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2FjdGlvbl9lbnVtIGltcG9ydCBUcmF2ZWxSdWxlQWN0aW9uRW51bQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTY3JlZW5pbmdUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBNYXRjaGVkIHByZXNjcmVlbmluZyBydWxlIGRldGFpbHMuIFByZXNjcmVlbmluZyBydWxlcyBhcmUgZXZhbHVhdGVkIGJlZm9yZSB0aGUgbWFpbiBzY3JlZW5pbmcgdG8gZGV0ZXJtaW5lIGlmIHNjcmVlbmluZyBpcyBuZWNlc3Nhcnkgb3Igc2hvdWxkIGJlIGJ5cGFzc2VkLiAKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGJ5cGFzc19yZWFzb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSZWFzb24gZm9yIGJ5cGFzcyBpZiBwcmVzY3JlZW5pbmcgcnVsZSB0cmlnZ2VyZWQgYSBieXBhc3MiLCBhbGlhcz0iYnlwYXNzUmVhc29uIikKICAgIHNvdXJjZV90eXBlOiBPcHRpb25hbFtUcmFuc2ZlclBlZXJUeXBlRW51bV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJzb3VyY2VUeXBlIikKICAgIHNvdXJjZV9zdWJfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyU3ViVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ic291cmNlU3ViVHlwZSIpCiAgICBkZXN0X3R5cGU6IE9wdGlvbmFsW1RyYW5zZmVyUGVlclR5cGVFbnVtXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImRlc3RUeXBlIikKICAgIGRlc3Rfc3ViX3R5cGU6IE9wdGlvbmFsW1RyYW5zZmVyUGVlclN1YlR5cGVFbnVtXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImRlc3RTdWJUeXBlIikKICAgIHRyYW5zZmVyX3BlZXJfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0idHJhbnNmZXJQZWVyVHlwZSIpCiAgICB0cmFuc2Zlcl9wZWVyX3N1Yl90eXBlOiBPcHRpb25hbFtUcmFuc2ZlclBlZXJTdWJUeXBlRW51bV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJ0cmFuc2ZlclBlZXJTdWJUeXBlIikKICAgIGRlc3RfYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRlc3RpbmF0aW9uIGFkZHJlc3MiLCBhbGlhcz0iZGVzdEFkZHJlc3MiKQogICAgc291cmNlX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iU291cmNlIElEIiwgYWxpYXM9InNvdXJjZUlkIikKICAgIGRlc3RfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiBJRCIsIGFsaWFzPSJkZXN0SWQiKQogICAgYXNzZXQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBc3NldCBpZGVudGlmaWVyIikKICAgIGJhc2VfYXNzZXQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJCYXNlIGFzc2V0IiwgYWxpYXM9ImJhc2VBc3NldCIpCiAgICBhbW91bnQ6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFtb3VudCIpCiAgICBhbW91bnRfdXNkOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBbW91bnQgaW4gVVNEIiwgYWxpYXM9ImFtb3VudFVTRCIpCiAgICBuZXR3b3JrX3Byb3RvY29sOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTmV0d29yayBwcm90b2NvbCIsIGFsaWFzPSJuZXR3b3JrUHJvdG9jb2wiKQogICAgb3BlcmF0aW9uOiBPcHRpb25hbFtUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW1dID0gTm9uZQogICAgYWN0aW9uOiBPcHRpb25hbFtUcmF2ZWxSdWxlQWN0aW9uRW51bV0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImJ5cGFzc1JlYXNvbiIsICJzb3VyY2VUeXBlIiwgInNvdXJjZVN1YlR5cGUiLCAiZGVzdFR5cGUiLCAiZGVzdFN1YlR5cGUiLCAidHJhbnNmZXJQZWVyVHlwZSIsICJ0cmFuc2ZlclBlZXJTdWJUeXBlIiwgImRlc3RBZGRyZXNzIiwgInNvdXJjZUlkIiwgImRlc3RJZCIsICJhc3NldCIsICJiYXNlQXNzZXQiLCAiYW1vdW50IiwgImFtb3VudFVTRCIsICJuZXR3b3JrUHJvdG9jb2wiLCAib3BlcmF0aW9uIiwgImFjdGlvbiJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGUgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYnlwYXNzUmVhc29uIjogb2JqLmdldCgiYnlwYXNzUmVhc29uIiksCiAgICAgICAgICAgICJzb3VyY2VUeXBlIjogb2JqLmdldCgic291cmNlVHlwZSIpLAogICAgICAgICAgICAic291cmNlU3ViVHlwZSI6IG9iai5nZXQoInNvdXJjZVN1YlR5cGUiKSwKICAgICAgICAgICAgImRlc3RUeXBlIjogb2JqLmdldCgiZGVzdFR5cGUiKSwKICAgICAgICAgICAgImRlc3RTdWJUeXBlIjogb2JqLmdldCgiZGVzdFN1YlR5cGUiKSwKICAgICAgICAgICAgInRyYW5zZmVyUGVlclR5cGUiOiBvYmouZ2V0KCJ0cmFuc2ZlclBlZXJUeXBlIiksCiAgICAgICAgICAgICJ0cmFuc2ZlclBlZXJTdWJUeXBlIjogb2JqLmdldCgidHJhbnNmZXJQZWVyU3ViVHlwZSIpLAogICAgICAgICAgICAiZGVzdEFkZHJlc3MiOiBvYmouZ2V0KCJkZXN0QWRkcmVzcyIpLAogICAgICAgICAgICAic291cmNlSWQiOiBvYmouZ2V0KCJzb3VyY2VJZCIpLAogICAgICAgICAgICAiZGVzdElkIjogb2JqLmdldCgiZGVzdElkIiksCiAgICAgICAgICAgICJhc3NldCI6IG9iai5nZXQoImFzc2V0IiksCiAgICAgICAgICAgICJiYXNlQXNzZXQiOiBvYmouZ2V0KCJiYXNlQXNzZXQiKSwKICAgICAgICAgICAgImFtb3VudCI6IG9iai5nZXQoImFtb3VudCIpLAogICAgICAgICAgICAiYW1vdW50VVNEIjogb2JqLmdldCgiYW1vdW50VVNEIiksCiAgICAgICAgICAgICJuZXR3b3JrUHJvdG9jb2wiOiBvYmouZ2V0KCJuZXR3b3JrUHJvdG9jb2wiKSwKICAgICAgICAgICAgIm9wZXJhdGlvbiI6IG9iai5nZXQoIm9wZXJhdGlvbiIpLAogICAgICAgICAgICAiYWN0aW9uIjogb2JqLmdldCgiYWN0aW9uIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/screening_travel_rule_result.py b/fireblocks/models/screening_travel_rule_result.py index 8f6543e8..3f4d9b4d 100644 --- a/fireblocks/models/screening_travel_rule_result.py +++ b/fireblocks/models/screening_travel_rule_result.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.screening_travel_rule_matched_rule import ScreeningTravelRuleMatchedRule -from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum -from fireblocks.models.travel_rule_verdict_enum import TravelRuleVerdictEnum -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningTravelRuleResult(BaseModel): - """ - Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions. - """ # noqa: E501 - direction: Optional[TravelRuleDirectionEnum] = None - is_verified: Optional[StrictBool] = Field(default=None, description="Whether the travel rule information was verified", alias="isVerified") - action: Optional[TravelRuleVerdictEnum] = None - provider_response: Optional[Dict[str, Any]] = Field(default=None, description="Complete response from the travel rule provider. This is a dynamic object that varies significantly between different travel rule providers (NOTABENE etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - NOTABENE: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. ", alias="providerResponse") - matched_rule: Optional[ScreeningTravelRuleMatchedRule] = Field(default=None, alias="matchedRule") - __properties: ClassVar[List[str]] = ["direction", "isVerified", "action", "providerResponse", "matchedRule"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningTravelRuleResult from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of matched_rule - if self.matched_rule: - _dict['matchedRule'] = self.matched_rule.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningTravelRuleResult from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "direction": obj.get("direction"), - "isVerified": obj.get("isVerified"), - "action": obj.get("action"), - "providerResponse": obj.get("providerResponse"), - "matchedRule": ScreeningTravelRuleMatchedRule.from_dict(obj["matchedRule"]) if obj.get("matchedRule") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdHJhdmVsX3J1bGVfbWF0Y2hlZF9ydWxlIGltcG9ydCBTY3JlZW5pbmdUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9kaXJlY3Rpb25fZW51bSBpbXBvcnQgVHJhdmVsUnVsZURpcmVjdGlvbkVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92ZXJkaWN0X2VudW0gaW1wb3J0IFRyYXZlbFJ1bGVWZXJkaWN0RW51bQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTY3JlZW5pbmdUcmF2ZWxSdWxlUmVzdWx0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIERlcHJlY2F0ZWQ6IFRoaXMgZmllbGQgaXMgbm90IGN1cnJlbnRseSByZXR1cm5lZCBpbiB0aGUgQVBJIHJlc3BvbnNlLiBEZXRhaWxlZCBUcmF2ZWwgUnVsZSBzY3JlZW5pbmcgcmVzdWx0IGNvbnRhaW5pbmcgcHJvdmlkZXItc3BlY2lmaWMgZGF0YS4gQ29udGFpbnMgVHJhdmVsIFJ1bGUgc3BlY2lmaWMgaW5mb3JtYXRpb24gbGlrZSB2ZXJpZmllZCBzdGF0dXMsIHJ1bGUgdHlwZSwgYW5kIGFjdGlvbnMuIAogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGlyZWN0aW9uOiBPcHRpb25hbFtUcmF2ZWxSdWxlRGlyZWN0aW9uRW51bV0gPSBOb25lCiAgICBpc192ZXJpZmllZDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJXaGV0aGVyIHRoZSB0cmF2ZWwgcnVsZSBpbmZvcm1hdGlvbiB3YXMgdmVyaWZpZWQiLCBhbGlhcz0iaXNWZXJpZmllZCIpCiAgICBhY3Rpb246IE9wdGlvbmFsW1RyYXZlbFJ1bGVWZXJkaWN0RW51bV0gPSBOb25lCiAgICBwcm92aWRlcl9yZXNwb25zZTogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ29tcGxldGUgcmVzcG9uc2UgZnJvbSB0aGUgdHJhdmVsIHJ1bGUgcHJvdmlkZXIuIFRoaXMgaXMgYSBkeW5hbWljIG9iamVjdCB0aGF0IHZhcmllcyBzaWduaWZpY2FudGx5IGJldHdlZW4gZGlmZmVyZW50IHRyYXZlbCBydWxlIHByb3ZpZGVycyAoTk9UQUJFTkUgZXRjLikuIEVhY2ggcHJvdmlkZXIgaGFzIHRoZWlyIG93biBwcm9wcmlldGFyeSByZXNwb25zZSBmb3JtYXQgYW5kIHNjaGVtYS4gIEV4YW1wbGVzIG9mIHByb3ZpZGVyLXNwZWNpZmljIHN0cnVjdHVyZXM6IC0gTk9UQUJFTkU6IENvbnRhaW5zIFZBU1AgaW5mb3JtYXRpb24sIFBJSSBkYXRhLCBwcm90b2NvbC1zcGVjaWZpYyBmaWVsZHMgIFRoZSBzdHJ1Y3R1cmUgaXMgcHJvdmlkZXItZGVwZW5kZW50IGFuZCBjYW5ub3QgYmUgc3RhbmRhcmRpemVkIGFzIGVhY2ggdmVuZG9yIGltcGxlbWVudHMgdGhlaXIgb3duIHByb3ByaWV0YXJ5IGRhdGEgbW9kZWxzIGFuZCByZXNwb25zZSBmb3JtYXRzLiAiLCBhbGlhcz0icHJvdmlkZXJSZXNwb25zZSIpCiAgICBtYXRjaGVkX3J1bGU6IE9wdGlvbmFsW1NjcmVlbmluZ1RyYXZlbFJ1bGVNYXRjaGVkUnVsZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJtYXRjaGVkUnVsZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRpcmVjdGlvbiIsICJpc1ZlcmlmaWVkIiwgImFjdGlvbiIsICJwcm92aWRlclJlc3BvbnNlIiwgIm1hdGNoZWRSdWxlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdUcmF2ZWxSdWxlUmVzdWx0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgbWF0Y2hlZF9ydWxlCiAgICAgICAgaWYgc2VsZi5tYXRjaGVkX3J1bGU6CiAgICAgICAgICAgIF9kaWN0WydtYXRjaGVkUnVsZSddID0gc2VsZi5tYXRjaGVkX3J1bGUudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdUcmF2ZWxSdWxlUmVzdWx0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRpcmVjdGlvbiI6IG9iai5nZXQoImRpcmVjdGlvbiIpLAogICAgICAgICAgICAiaXNWZXJpZmllZCI6IG9iai5nZXQoImlzVmVyaWZpZWQiKSwKICAgICAgICAgICAgImFjdGlvbiI6IG9iai5nZXQoImFjdGlvbiIpLAogICAgICAgICAgICAicHJvdmlkZXJSZXNwb25zZSI6IG9iai5nZXQoInByb3ZpZGVyUmVzcG9uc2UiKSwKICAgICAgICAgICAgIm1hdGNoZWRSdWxlIjogU2NyZWVuaW5nVHJhdmVsUnVsZU1hdGNoZWRSdWxlLmZyb21fZGljdChvYmpbIm1hdGNoZWRSdWxlIl0pIGlmIG9iai5nZXQoIm1hdGNoZWRSdWxlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/screening_update_configurations.py b/fireblocks/models/screening_update_configurations.py index 2cbf0fca..ce46d4dd 100644 --- a/fireblocks/models/screening_update_configurations.py +++ b/fireblocks/models/screening_update_configurations.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningUpdateConfigurations(BaseModel): - """ - ScreeningUpdateConfigurations - """ # noqa: E501 - disable_bypass: Optional[StrictBool] = Field(default=None, description="Flag to enable or disable bypass screening on tenant configuration.", alias="disableBypass") - disable_unfreeze: Optional[StrictBool] = Field(default=None, description="Flag to enable or disable unfreeze of transaction frozen by policy rule on tenant configuration.", alias="disableUnfreeze") - __properties: ClassVar[List[str]] = ["disableBypass", "disableUnfreeze"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningUpdateConfigurations from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningUpdateConfigurations from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "disableBypass": obj.get("disableBypass"), - "disableUnfreeze": obj.get("disableUnfreeze") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU2NyZWVuaW5nVXBkYXRlQ29uZmlndXJhdGlvbnMoQmFzZU1vZGVsKToKICAgICIiIgogICAgU2NyZWVuaW5nVXBkYXRlQ29uZmlndXJhdGlvbnMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGRpc2FibGVfYnlwYXNzOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkZsYWcgdG8gZW5hYmxlIG9yIGRpc2FibGUgYnlwYXNzIHNjcmVlbmluZyBvbiB0ZW5hbnQgY29uZmlndXJhdGlvbi4iLCBhbGlhcz0iZGlzYWJsZUJ5cGFzcyIpCiAgICBkaXNhYmxlX3VuZnJlZXplOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkZsYWcgdG8gZW5hYmxlIG9yIGRpc2FibGUgdW5mcmVlemUgb2YgdHJhbnNhY3Rpb24gZnJvemVuIGJ5IHBvbGljeSBydWxlIG9uIHRlbmFudCBjb25maWd1cmF0aW9uLiIsIGFsaWFzPSJkaXNhYmxlVW5mcmVlemUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJkaXNhYmxlQnlwYXNzIiwgImRpc2FibGVVbmZyZWV6ZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVXBkYXRlQ29uZmlndXJhdGlvbnMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVXBkYXRlQ29uZmlndXJhdGlvbnMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZGlzYWJsZUJ5cGFzcyI6IG9iai5nZXQoImRpc2FibGVCeXBhc3MiKSwKICAgICAgICAgICAgImRpc2FibGVVbmZyZWV6ZSI6IG9iai5nZXQoImRpc2FibGVVbmZyZWV6ZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/screening_validation_failure.py b/fireblocks/models/screening_validation_failure.py index bd22dbec..105f2ec5 100644 --- a/fireblocks/models/screening_validation_failure.py +++ b/fireblocks/models/screening_validation_failure.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningValidationFailure(BaseModel): - """ - ScreeningValidationFailure - """ # noqa: E501 - reason: StrictStr - data: Optional[Dict[str, Any]] = None - __properties: ClassVar[List[str]] = ["reason", "data"] - - @field_validator('reason') - def reason_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['SCREENING_DISABLED_IN_TENANT']): - raise ValueError("must be one of enum values ('SCREENING_DISABLED_IN_TENANT')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningValidationFailure from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningValidationFailure from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "reason": obj.get("reason"), - "data": obj.get("data") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU2NyZWVuaW5nVmFsaWRhdGlvbkZhaWx1cmUoQmFzZU1vZGVsKToKICAgICIiIgogICAgU2NyZWVuaW5nVmFsaWRhdGlvbkZhaWx1cmUKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHJlYXNvbjogU3RyaWN0U3RyCiAgICBkYXRhOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInJlYXNvbiIsICJkYXRhIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdyZWFzb24nKQogICAgZGVmIHJlYXNvbl92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydTQ1JFRU5JTkdfRElTQUJMRURfSU5fVEVOQU5UJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ1NDUkVFTklOR19ESVNBQkxFRF9JTl9URU5BTlQnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVmFsaWRhdGlvbkZhaWx1cmUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVmFsaWRhdGlvbkZhaWx1cmUgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicmVhc29uIjogb2JqLmdldCgicmVhc29uIiksCiAgICAgICAgICAgICJkYXRhIjogb2JqLmdldCgiZGF0YSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/screening_verdict.py b/fireblocks/models/screening_verdict.py index 2931ebeb..e0f6db2c 100644 --- a/fireblocks/models/screening_verdict.py +++ b/fireblocks/models/screening_verdict.py @@ -1,113 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.destination import Destination -from fireblocks.models.screening_verdict_matched_rule import ScreeningVerdictMatchedRule -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningVerdict(BaseModel): - """ - ScreeningVerdict - """ # noqa: E501 - verdict: StrictStr - execution_operation_id: StrictStr = Field(alias="executionOperationId") - account: Destination - asset_id: StrictStr = Field(alias="assetId") - amount: StrictStr - matched_rule: Optional[ScreeningVerdictMatchedRule] = Field(default=None, alias="matchedRule") - __properties: ClassVar[List[str]] = ["verdict", "executionOperationId", "account", "assetId", "amount", "matchedRule"] - - @field_validator('verdict') - def verdict_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['PASSED', 'PASSED_WITH_ALERT', 'REJECTED', 'FAILED', 'BYPASSED']): - raise ValueError("must be one of enum values ('PASSED', 'PASSED_WITH_ALERT', 'REJECTED', 'FAILED', 'BYPASSED')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningVerdict from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of account - if self.account: - _dict['account'] = self.account.to_dict() - # override the default output from pydantic by calling `to_dict()` of matched_rule - if self.matched_rule: - _dict['matchedRule'] = self.matched_rule.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningVerdict from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "verdict": obj.get("verdict"), - "executionOperationId": obj.get("executionOperationId"), - "account": Destination.from_dict(obj["account"]) if obj.get("account") is not None else None, - "assetId": obj.get("assetId"), - "amount": obj.get("amount"), - "matchedRule": ScreeningVerdictMatchedRule.from_dict(obj["matchedRule"]) if obj.get("matchedRule") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzdGluYXRpb24gaW1wb3J0IERlc3RpbmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3ZlcmRpY3RfbWF0Y2hlZF9ydWxlIGltcG9ydCBTY3JlZW5pbmdWZXJkaWN0TWF0Y2hlZFJ1bGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU2NyZWVuaW5nVmVyZGljdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBTY3JlZW5pbmdWZXJkaWN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB2ZXJkaWN0OiBTdHJpY3RTdHIKICAgIGV4ZWN1dGlvbl9vcGVyYXRpb25faWQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJleGVjdXRpb25PcGVyYXRpb25JZCIpCiAgICBhY2NvdW50OiBEZXN0aW5hdGlvbgogICAgYXNzZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJhc3NldElkIikKICAgIGFtb3VudDogU3RyaWN0U3RyCiAgICBtYXRjaGVkX3J1bGU6IE9wdGlvbmFsW1NjcmVlbmluZ1ZlcmRpY3RNYXRjaGVkUnVsZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJtYXRjaGVkUnVsZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInZlcmRpY3QiLCAiZXhlY3V0aW9uT3BlcmF0aW9uSWQiLCAiYWNjb3VudCIsICJhc3NldElkIiwgImFtb3VudCIsICJtYXRjaGVkUnVsZSJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigndmVyZGljdCcpCiAgICBkZWYgdmVyZGljdF92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydQQVNTRUQnLCAnUEFTU0VEX1dJVEhfQUxFUlQnLCAnUkVKRUNURUQnLCAnRkFJTEVEJywgJ0JZUEFTU0VEJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ1BBU1NFRCcsICdQQVNTRURfV0lUSF9BTEVSVCcsICdSRUpFQ1RFRCcsICdGQUlMRUQnLCAnQllQQVNTRUQnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVmVyZGljdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFjY291bnQKICAgICAgICBpZiBzZWxmLmFjY291bnQ6CiAgICAgICAgICAgIF9kaWN0WydhY2NvdW50J10gPSBzZWxmLmFjY291bnQudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG1hdGNoZWRfcnVsZQogICAgICAgIGlmIHNlbGYubWF0Y2hlZF9ydWxlOgogICAgICAgICAgICBfZGljdFsnbWF0Y2hlZFJ1bGUnXSA9IHNlbGYubWF0Y2hlZF9ydWxlLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2NyZWVuaW5nVmVyZGljdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ2ZXJkaWN0Ijogb2JqLmdldCgidmVyZGljdCIpLAogICAgICAgICAgICAiZXhlY3V0aW9uT3BlcmF0aW9uSWQiOiBvYmouZ2V0KCJleGVjdXRpb25PcGVyYXRpb25JZCIpLAogICAgICAgICAgICAiYWNjb3VudCI6IERlc3RpbmF0aW9uLmZyb21fZGljdChvYmpbImFjY291bnQiXSkgaWYgb2JqLmdldCgiYWNjb3VudCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImFzc2V0SWQiOiBvYmouZ2V0KCJhc3NldElkIiksCiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKSwKICAgICAgICAgICAgIm1hdGNoZWRSdWxlIjogU2NyZWVuaW5nVmVyZGljdE1hdGNoZWRSdWxlLmZyb21fZGljdChvYmpbIm1hdGNoZWRSdWxlIl0pIGlmIG9iai5nZXQoIm1hdGNoZWRSdWxlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/screening_verdict_enum.py b/fireblocks/models/screening_verdict_enum.py index 02023cf9..2672c6aa 100644 --- a/fireblocks/models/screening_verdict_enum.py +++ b/fireblocks/models/screening_verdict_enum.py @@ -1,44 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ScreeningVerdictEnum(str, Enum): - """ - The final verdict of the screening (unified for AML, Travel Rule, and TRLink). Different providers may return different verdict values: - AML: PASS, FAIL, ALERT - Travel Rule: PASS, FAIL, TRAVEL_RULE_REQUIRED - TRLink: PASS, REJECT, WARN - """ - - """ - allowed enum values - """ - PASS = 'PASS' - FAIL = 'FAIL' - ALERT = 'ALERT' - REJECT = 'REJECT' - WARN = 'WARN' - TRAVEL_RULE_REQUIRED = 'TRAVEL_RULE_REQUIRED' - ACCEPT = 'ACCEPT' - REVIEW = 'REVIEW' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ScreeningVerdictEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBTY3JlZW5pbmdWZXJkaWN0RW51bShzdHIsIEVudW0pOgogICAgIiIiCiAgICBUaGUgZmluYWwgdmVyZGljdCBvZiB0aGUgc2NyZWVuaW5nICh1bmlmaWVkIGZvciBBTUwsIFRyYXZlbCBSdWxlLCBhbmQgVFJMaW5rKS4gRGlmZmVyZW50IHByb3ZpZGVycyBtYXkgcmV0dXJuIGRpZmZlcmVudCB2ZXJkaWN0IHZhbHVlczogLSBBTUw6IFBBU1MsIEZBSUwsIEFMRVJUIC0gVHJhdmVsIFJ1bGU6IFBBU1MsIEZBSUwsIFRSQVZFTF9SVUxFX1JFUVVJUkVEIC0gVFJMaW5rOiBQQVNTLCBSRUpFQ1QsIFdBUk4gCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgUEFTUyA9ICdQQVNTJwogICAgRkFJTCA9ICdGQUlMJwogICAgQUxFUlQgPSAnQUxFUlQnCiAgICBSRUpFQ1QgPSAnUkVKRUNUJwogICAgV0FSTiA9ICdXQVJOJwogICAgVFJBVkVMX1JVTEVfUkVRVUlSRUQgPSAnVFJBVkVMX1JVTEVfUkVRVUlSRUQnCiAgICBBQ0NFUFQgPSAnQUNDRVBUJwogICAgUkVWSUVXID0gJ1JFVklFVycKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdWZXJkaWN0RW51bSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/screening_verdict_matched_rule.py b/fireblocks/models/screening_verdict_matched_rule.py index 9af88a52..0d52a623 100644 --- a/fireblocks/models/screening_verdict_matched_rule.py +++ b/fireblocks/models/screening_verdict_matched_rule.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class ScreeningVerdictMatchedRule(BaseModel): - """ - ScreeningVerdictMatchedRule - """ # noqa: E501 - action: Optional[StrictStr] = None - category: Optional[List[StrictStr]] = None - __properties: ClassVar[List[str]] = ["action", "category"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScreeningVerdictMatchedRule from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScreeningVerdictMatchedRule from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "action": obj.get("action"), - "category": obj.get("category") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNjcmVlbmluZ1ZlcmRpY3RNYXRjaGVkUnVsZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBTY3JlZW5pbmdWZXJkaWN0TWF0Y2hlZFJ1bGUKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFjdGlvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIGNhdGVnb3J5OiBPcHRpb25hbFtMaXN0W1N0cmljdFN0cl1dID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhY3Rpb24iLCAiY2F0ZWdvcnkiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNjcmVlbmluZ1ZlcmRpY3RNYXRjaGVkUnVsZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTY3JlZW5pbmdWZXJkaWN0TWF0Y2hlZFJ1bGUgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYWN0aW9uIjogb2JqLmdldCgiYWN0aW9uIiksCiAgICAgICAgICAgICJjYXRlZ29yeSI6IG9iai5nZXQoImNhdGVnb3J5IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/search_network_ids_response.py b/fireblocks/models/search_network_ids_response.py index afd58084..49545b81 100644 --- a/fireblocks/models/search_network_ids_response.py +++ b/fireblocks/models/search_network_ids_response.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.network_id_response import NetworkIdResponse -from typing import Optional, Set -from typing_extensions import Self - -class SearchNetworkIdsResponse(BaseModel): - """ - SearchNetworkIdsResponse - """ # noqa: E501 - data: Optional[List[NetworkIdResponse]] = None - next: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["data", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SearchNetworkIdsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SearchNetworkIdsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [NetworkIdResponse.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19pZF9yZXNwb25zZSBpbXBvcnQgTmV0d29ya0lkUmVzcG9uc2UKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU2VhcmNoTmV0d29ya0lkc1Jlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNlYXJjaE5ldHdvcmtJZHNSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGF0YTogT3B0aW9uYWxbTGlzdFtOZXR3b3JrSWRSZXNwb25zZV1dID0gTm9uZQogICAgbmV4dDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZGF0YSIsICJuZXh0Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZWFyY2hOZXR3b3JrSWRzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGF0YSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgZm9yIF9pdGVtX2RhdGEgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZGF0YToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2RhdGEudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZWFyY2hOZXR3b3JrSWRzUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZGF0YSI6IFtOZXR3b3JrSWRSZXNwb25zZS5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImRhdGEiXV0gaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm5leHQiOiBvYmouZ2V0KCJuZXh0IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/sepa_address.py b/fireblocks/models/sepa_address.py index 71e5310a..fe7f0477 100644 --- a/fireblocks/models/sepa_address.py +++ b/fireblocks/models/sepa_address.py @@ -1,114 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from fireblocks.models.account_holder_details import AccountHolderDetails -from typing import Optional, Set -from typing_extensions import Self - -class SEPAAddress(BaseModel): - """ - SEPAAddress - """ # noqa: E501 - account_holder: AccountHolderDetails = Field(alias="accountHolder") - iban: Annotated[str, Field(strict=True)] - bic: Optional[StrictStr] = Field(default=None, description="Bank Identifier Code (SWIFT/BIC)") - bank_name: Optional[StrictStr] = Field(default=None, alias="bankName") - bank_branch: Optional[StrictStr] = Field(default=None, alias="bankBranch") - bank_address: Optional[StrictStr] = Field(default=None, alias="bankAddress") - purpose_code: Optional[StrictStr] = Field(default=None, description="ISO purpose code for the transfer", alias="purposeCode") - tax_id: Optional[StrictStr] = Field(default=None, description="Beneficiary tax identification number", alias="taxId") - __properties: ClassVar[List[str]] = ["accountHolder", "iban", "bic", "bankName", "bankBranch", "bankAddress", "purposeCode", "taxId"] - - @field_validator('iban') - def iban_validate_regular_expression(cls, value): - """Validates the regular expression""" - if not re.match(r"^[A-Z]{2}\d{2}[a-zA-Z0-9]{1,30}$", value): - raise ValueError(r"must validate the regular expression /^[A-Z]{2}\d{2}[a-zA-Z0-9]{1,30}$/") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SEPAAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of account_holder - if self.account_holder: - _dict['accountHolder'] = self.account_holder.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SEPAAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None, - "iban": obj.get("iban"), - "bic": obj.get("bic"), - "bankName": obj.get("bankName"), - "bankBranch": obj.get("bankBranch"), - "bankAddress": obj.get("bankAddress"), - "purposeCode": obj.get("purposeCode"), - "taxId": obj.get("taxId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaG9sZGVyX2RldGFpbHMgaW1wb3J0IEFjY291bnRIb2xkZXJEZXRhaWxzCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNFUEFBZGRyZXNzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNFUEFBZGRyZXNzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhY2NvdW50X2hvbGRlcjogQWNjb3VudEhvbGRlckRldGFpbHMgPSBGaWVsZChhbGlhcz0iYWNjb3VudEhvbGRlciIpCiAgICBpYmFuOiBBbm5vdGF0ZWRbc3RyLCBGaWVsZChzdHJpY3Q9VHJ1ZSldCiAgICBiaWM6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJCYW5rIElkZW50aWZpZXIgQ29kZSAoU1dJRlQvQklDKSIpCiAgICBiYW5rX25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJiYW5rTmFtZSIpCiAgICBiYW5rX2JyYW5jaDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImJhbmtCcmFuY2giKQogICAgYmFua19hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYmFua0FkZHJlc3MiKQogICAgcHVycG9zZV9jb2RlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSVNPIHB1cnBvc2UgY29kZSBmb3IgdGhlIHRyYW5zZmVyIiwgYWxpYXM9InB1cnBvc2VDb2RlIikKICAgIHRheF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkJlbmVmaWNpYXJ5IHRheCBpZGVudGlmaWNhdGlvbiBudW1iZXIiLCBhbGlhcz0idGF4SWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhY2NvdW50SG9sZGVyIiwgImliYW4iLCAiYmljIiwgImJhbmtOYW1lIiwgImJhbmtCcmFuY2giLCAiYmFua0FkZHJlc3MiLCAicHVycG9zZUNvZGUiLCAidGF4SWQiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2liYW4nKQogICAgZGVmIGliYW5fdmFsaWRhdGVfcmVndWxhcl9leHByZXNzaW9uKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgcmVndWxhciBleHByZXNzaW9uIiIiCiAgICAgICAgaWYgbm90IHJlLm1hdGNoKHIiXltBLVpdezJ9XGR7Mn1bYS16QS1aMC05XXsxLDMwfSQiLCB2YWx1ZSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IociJtdXN0IHZhbGlkYXRlIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gL15bQS1aXXsyfVxkezJ9W2EtekEtWjAtOV17MSwzMH0kLyIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU0VQQUFkZHJlc3MgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhY2NvdW50X2hvbGRlcgogICAgICAgIGlmIHNlbGYuYWNjb3VudF9ob2xkZXI6CiAgICAgICAgICAgIF9kaWN0WydhY2NvdW50SG9sZGVyJ10gPSBzZWxmLmFjY291bnRfaG9sZGVyLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU0VQQUFkZHJlc3MgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYWNjb3VudEhvbGRlciI6IEFjY291bnRIb2xkZXJEZXRhaWxzLmZyb21fZGljdChvYmpbImFjY291bnRIb2xkZXIiXSkgaWYgb2JqLmdldCgiYWNjb3VudEhvbGRlciIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImliYW4iOiBvYmouZ2V0KCJpYmFuIiksCiAgICAgICAgICAgICJiaWMiOiBvYmouZ2V0KCJiaWMiKSwKICAgICAgICAgICAgImJhbmtOYW1lIjogb2JqLmdldCgiYmFua05hbWUiKSwKICAgICAgICAgICAgImJhbmtCcmFuY2giOiBvYmouZ2V0KCJiYW5rQnJhbmNoIiksCiAgICAgICAgICAgICJiYW5rQWRkcmVzcyI6IG9iai5nZXQoImJhbmtBZGRyZXNzIiksCiAgICAgICAgICAgICJwdXJwb3NlQ29kZSI6IG9iai5nZXQoInB1cnBvc2VDb2RlIiksCiAgICAgICAgICAgICJ0YXhJZCI6IG9iai5nZXQoInRheElkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/sepa_destination.py b/fireblocks/models/sepa_destination.py index fa6e5011..f0e92c1e 100644 --- a/fireblocks/models/sepa_destination.py +++ b/fireblocks/models/sepa_destination.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from fireblocks.models.sepa_address import SEPAAddress -from typing import Optional, Set -from typing_extensions import Self - -class SEPADestination(BaseModel): - """ - SEPADestination - """ # noqa: E501 - type: StrictStr - address: SEPAAddress - __properties: ClassVar[List[str]] = ["type", "address"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['SEPA']): - raise ValueError("must be one of enum values ('SEPA')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SEPADestination from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of address - if self.address: - _dict['address'] = self.address.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SEPADestination from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "address": SEPAAddress.from_dict(obj["address"]) if obj.get("address") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNlcGFfYWRkcmVzcyBpbXBvcnQgU0VQQUFkZHJlc3MKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU0VQQURlc3RpbmF0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNFUEFEZXN0aW5hdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogU3RyaWN0U3RyCiAgICBhZGRyZXNzOiBTRVBBQWRkcmVzcwogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgImFkZHJlc3MiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3R5cGUnKQogICAgZGVmIHR5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnU0VQQSddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdTRVBBJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNFUEFEZXN0aW5hdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFkZHJlc3MKICAgICAgICBpZiBzZWxmLmFkZHJlc3M6CiAgICAgICAgICAgIF9kaWN0WydhZGRyZXNzJ10gPSBzZWxmLmFkZHJlc3MudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTRVBBRGVzdGluYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImFkZHJlc3MiOiBTRVBBQWRkcmVzcy5mcm9tX2RpY3Qob2JqWyJhZGRyZXNzIl0pIGlmIG9iai5nZXQoImFkZHJlc3MiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/sepa_payment_info.py b/fireblocks/models/sepa_payment_info.py index 9437235a..1ef645c1 100644 --- a/fireblocks/models/sepa_payment_info.py +++ b/fireblocks/models/sepa_payment_info.py @@ -1,128 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class SepaPaymentInfo(BaseModel): - """ - SEPA payment information for European Single Euro Payments Area transfers - """ # noqa: E501 - rail: StrictStr = Field(description="The payment rail type for SEPA transfers") - addressing_system: StrictStr = Field(description="The addressing system used for SEPA transfers", alias="addressingSystem") - account_holder_given_name: StrictStr = Field(description="The given name (first name) of the account holder", alias="accountHolderGivenName") - account_holder_surname: StrictStr = Field(description="The surname (last name) of the account holder", alias="accountHolderSurname") - account_holder_country: Optional[StrictStr] = Field(default=None, description="The country where the account holder resides (ISO 3166-1 alpha-2 code)", alias="accountHolderCountry") - account_holder_address: Optional[StrictStr] = Field(default=None, description="The address of the account holder", alias="accountHolderAddress") - iban: StrictStr = Field(description="The International Bank Account Number (IBAN)") - country: StrictStr = Field(description="The country for the transfer (ISO 3166-1 alpha-2 code)") - bic: Optional[StrictStr] = Field(default=None, description="The Bank Identifier Code (BIC/SWIFT code)") - bank_name: Optional[StrictStr] = Field(default=None, description="The name of the bank", alias="bankName") - bank_branch: Optional[StrictStr] = Field(default=None, description="The bank branch information", alias="bankBranch") - bank_address: Optional[StrictStr] = Field(default=None, description="The address of the bank", alias="bankAddress") - purpose_code: Optional[StrictStr] = Field(default=None, description="The purpose code for the transfer", alias="purposeCode") - tax_id: Optional[StrictStr] = Field(default=None, description="The tax identification number", alias="taxId") - __properties: ClassVar[List[str]] = ["rail", "addressingSystem", "accountHolderGivenName", "accountHolderSurname", "accountHolderCountry", "accountHolderAddress", "iban", "country", "bic", "bankName", "bankBranch", "bankAddress", "purposeCode", "taxId"] - - @field_validator('rail') - def rail_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['SEPA']): - raise ValueError("must be one of enum values ('SEPA')") - return value - - @field_validator('addressing_system') - def addressing_system_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['IBAN']): - raise ValueError("must be one of enum values ('IBAN')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SepaPaymentInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SepaPaymentInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "rail": obj.get("rail"), - "addressingSystem": obj.get("addressingSystem"), - "accountHolderGivenName": obj.get("accountHolderGivenName"), - "accountHolderSurname": obj.get("accountHolderSurname"), - "accountHolderCountry": obj.get("accountHolderCountry"), - "accountHolderAddress": obj.get("accountHolderAddress"), - "iban": obj.get("iban"), - "country": obj.get("country"), - "bic": obj.get("bic"), - "bankName": obj.get("bankName"), - "bankBranch": obj.get("bankBranch"), - "bankAddress": obj.get("bankAddress"), - "purposeCode": obj.get("purposeCode"), - "taxId": obj.get("taxId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNlcGFQYXltZW50SW5mbyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBTRVBBIHBheW1lbnQgaW5mb3JtYXRpb24gZm9yIEV1cm9wZWFuIFNpbmdsZSBFdXJvIFBheW1lbnRzIEFyZWEgdHJhbnNmZXJzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICByYWlsOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHBheW1lbnQgcmFpbCB0eXBlIGZvciBTRVBBIHRyYW5zZmVycyIpCiAgICBhZGRyZXNzaW5nX3N5c3RlbTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBhZGRyZXNzaW5nIHN5c3RlbSB1c2VkIGZvciBTRVBBIHRyYW5zZmVycyIsIGFsaWFzPSJhZGRyZXNzaW5nU3lzdGVtIikKICAgIGFjY291bnRfaG9sZGVyX2dpdmVuX25hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZ2l2ZW4gbmFtZSAoZmlyc3QgbmFtZSkgb2YgdGhlIGFjY291bnQgaG9sZGVyIiwgYWxpYXM9ImFjY291bnRIb2xkZXJHaXZlbk5hbWUiKQogICAgYWNjb3VudF9ob2xkZXJfc3VybmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBzdXJuYW1lIChsYXN0IG5hbWUpIG9mIHRoZSBhY2NvdW50IGhvbGRlciIsIGFsaWFzPSJhY2NvdW50SG9sZGVyU3VybmFtZSIpCiAgICBhY2NvdW50X2hvbGRlcl9jb3VudHJ5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGNvdW50cnkgd2hlcmUgdGhlIGFjY291bnQgaG9sZGVyIHJlc2lkZXMgKElTTyAzMTY2LTEgYWxwaGEtMiBjb2RlKSIsIGFsaWFzPSJhY2NvdW50SG9sZGVyQ291bnRyeSIpCiAgICBhY2NvdW50X2hvbGRlcl9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGFkZHJlc3Mgb2YgdGhlIGFjY291bnQgaG9sZGVyIiwgYWxpYXM9ImFjY291bnRIb2xkZXJBZGRyZXNzIikKICAgIGliYW46IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSW50ZXJuYXRpb25hbCBCYW5rIEFjY291bnQgTnVtYmVyIChJQkFOKSIpCiAgICBjb3VudHJ5OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNvdW50cnkgZm9yIHRoZSB0cmFuc2ZlciAoSVNPIDMxNjYtMSBhbHBoYS0yIGNvZGUpIikKICAgIGJpYzogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBCYW5rIElkZW50aWZpZXIgQ29kZSAoQklDL1NXSUZUIGNvZGUpIikKICAgIGJhbmtfbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBuYW1lIG9mIHRoZSBiYW5rIiwgYWxpYXM9ImJhbmtOYW1lIikKICAgIGJhbmtfYnJhbmNoOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGJhbmsgYnJhbmNoIGluZm9ybWF0aW9uIiwgYWxpYXM9ImJhbmtCcmFuY2giKQogICAgYmFua19hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGFkZHJlc3Mgb2YgdGhlIGJhbmsiLCBhbGlhcz0iYmFua0FkZHJlc3MiKQogICAgcHVycG9zZV9jb2RlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHB1cnBvc2UgY29kZSBmb3IgdGhlIHRyYW5zZmVyIiwgYWxpYXM9InB1cnBvc2VDb2RlIikKICAgIHRheF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSB0YXggaWRlbnRpZmljYXRpb24gbnVtYmVyIiwgYWxpYXM9InRheElkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicmFpbCIsICJhZGRyZXNzaW5nU3lzdGVtIiwgImFjY291bnRIb2xkZXJHaXZlbk5hbWUiLCAiYWNjb3VudEhvbGRlclN1cm5hbWUiLCAiYWNjb3VudEhvbGRlckNvdW50cnkiLCAiYWNjb3VudEhvbGRlckFkZHJlc3MiLCAiaWJhbiIsICJjb3VudHJ5IiwgImJpYyIsICJiYW5rTmFtZSIsICJiYW5rQnJhbmNoIiwgImJhbmtBZGRyZXNzIiwgInB1cnBvc2VDb2RlIiwgInRheElkIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdyYWlsJykKICAgIGRlZiByYWlsX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ1NFUEEnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnU0VQQScpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhZGRyZXNzaW5nX3N5c3RlbScpCiAgICBkZWYgYWRkcmVzc2luZ19zeXN0ZW1fdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnSUJBTiddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdJQkFOJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNlcGFQYXltZW50SW5mbyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXBhUGF5bWVudEluZm8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicmFpbCI6IG9iai5nZXQoInJhaWwiKSwKICAgICAgICAgICAgImFkZHJlc3NpbmdTeXN0ZW0iOiBvYmouZ2V0KCJhZGRyZXNzaW5nU3lzdGVtIiksCiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyR2l2ZW5OYW1lIjogb2JqLmdldCgiYWNjb3VudEhvbGRlckdpdmVuTmFtZSIpLAogICAgICAgICAgICAiYWNjb3VudEhvbGRlclN1cm5hbWUiOiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyU3VybmFtZSIpLAogICAgICAgICAgICAiYWNjb3VudEhvbGRlckNvdW50cnkiOiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyQ291bnRyeSIpLAogICAgICAgICAgICAiYWNjb3VudEhvbGRlckFkZHJlc3MiOiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyQWRkcmVzcyIpLAogICAgICAgICAgICAiaWJhbiI6IG9iai5nZXQoImliYW4iKSwKICAgICAgICAgICAgImNvdW50cnkiOiBvYmouZ2V0KCJjb3VudHJ5IiksCiAgICAgICAgICAgICJiaWMiOiBvYmouZ2V0KCJiaWMiKSwKICAgICAgICAgICAgImJhbmtOYW1lIjogb2JqLmdldCgiYmFua05hbWUiKSwKICAgICAgICAgICAgImJhbmtCcmFuY2giOiBvYmouZ2V0KCJiYW5rQnJhbmNoIiksCiAgICAgICAgICAgICJiYW5rQWRkcmVzcyI6IG9iai5nZXQoImJhbmtBZGRyZXNzIiksCiAgICAgICAgICAgICJwdXJwb3NlQ29kZSI6IG9iai5nZXQoInB1cnBvc2VDb2RlIiksCiAgICAgICAgICAgICJ0YXhJZCI6IG9iai5nZXQoInRheElkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/session_dto.py b/fireblocks/models/session_dto.py index 8b1d524e..be353fb1 100644 --- a/fireblocks/models/session_dto.py +++ b/fireblocks/models/session_dto.py @@ -1,130 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Union -from fireblocks.models.session_metadata import SessionMetadata -from typing import Optional, Set -from typing_extensions import Self - -class SessionDTO(BaseModel): - """ - SessionDTO - """ # noqa: E501 - id: StrictStr = Field(description="Id of the connection") - user_id: StrictStr = Field(description="Id of the user that created the connection", alias="userId") - session_metadata: SessionMetadata = Field(description="Metadata of the connection (provided by the dapp)", alias="sessionMetadata") - vault_account_id: Union[StrictFloat, StrictInt] = Field(description="The vault to connect", alias="vaultAccountId") - fee_level: StrictStr = Field(description="The default fee level", alias="feeLevel") - chain_ids: List[StrictStr] = Field(description="The chains approved for the connection", alias="chainIds") - connection_type: StrictStr = Field(description="The connection's type", alias="connectionType") - connection_method: StrictStr = Field(description="The method through which the connection was established", alias="connectionMethod") - creation_date: datetime = Field(description="Timestamp of the session's creation", alias="creationDate") - __properties: ClassVar[List[str]] = ["id", "userId", "sessionMetadata", "vaultAccountId", "feeLevel", "chainIds", "connectionType", "connectionMethod", "creationDate"] - - @field_validator('fee_level') - def fee_level_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['MEDIUM', 'HIGH']): - raise ValueError("must be one of enum values ('MEDIUM', 'HIGH')") - return value - - @field_validator('connection_type') - def connection_type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['WalletConnect']): - raise ValueError("must be one of enum values ('WalletConnect')") - return value - - @field_validator('connection_method') - def connection_method_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['DESKTOP', 'MOBILE', 'API']): - raise ValueError("must be one of enum values ('DESKTOP', 'MOBILE', 'API')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SessionDTO from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of session_metadata - if self.session_metadata: - _dict['sessionMetadata'] = self.session_metadata.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SessionDTO from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "userId": obj.get("userId"), - "sessionMetadata": SessionMetadata.from_dict(obj["sessionMetadata"]) if obj.get("sessionMetadata") is not None else None, - "vaultAccountId": obj.get("vaultAccountId"), - "feeLevel": obj.get("feeLevel"), - "chainIds": obj.get("chainIds"), - "connectionType": obj.get("connectionType"), - "connectionMethod": obj.get("connectionMethod"), - "creationDate": obj.get("creationDate") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIFVuaW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2Vzc2lvbl9tZXRhZGF0YSBpbXBvcnQgU2Vzc2lvbk1ldGFkYXRhCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNlc3Npb25EVE8oQmFzZU1vZGVsKToKICAgICIiIgogICAgU2Vzc2lvbkRUTwogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJZCBvZiB0aGUgY29ubmVjdGlvbiIpCiAgICB1c2VyX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iSWQgb2YgdGhlIHVzZXIgdGhhdCBjcmVhdGVkIHRoZSBjb25uZWN0aW9uIiwgYWxpYXM9InVzZXJJZCIpCiAgICBzZXNzaW9uX21ldGFkYXRhOiBTZXNzaW9uTWV0YWRhdGEgPSBGaWVsZChkZXNjcmlwdGlvbj0iTWV0YWRhdGEgb2YgdGhlIGNvbm5lY3Rpb24gKHByb3ZpZGVkIGJ5IHRoZSBkYXBwKSIsIGFsaWFzPSJzZXNzaW9uTWV0YWRhdGEiKQogICAgdmF1bHRfYWNjb3VudF9pZDogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHZhdWx0IHRvIGNvbm5lY3QiLCBhbGlhcz0idmF1bHRBY2NvdW50SWQiKQogICAgZmVlX2xldmVsOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGRlZmF1bHQgZmVlIGxldmVsIiwgYWxpYXM9ImZlZUxldmVsIikKICAgIGNoYWluX2lkczogTGlzdFtTdHJpY3RTdHJdID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBjaGFpbnMgYXBwcm92ZWQgZm9yIHRoZSBjb25uZWN0aW9uIiwgYWxpYXM9ImNoYWluSWRzIikKICAgIGNvbm5lY3Rpb25fdHlwZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBjb25uZWN0aW9uJ3MgdHlwZSIsIGFsaWFzPSJjb25uZWN0aW9uVHlwZSIpCiAgICBjb25uZWN0aW9uX21ldGhvZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBtZXRob2QgdGhyb3VnaCB3aGljaCB0aGUgY29ubmVjdGlvbiB3YXMgZXN0YWJsaXNoZWQiLCBhbGlhcz0iY29ubmVjdGlvbk1ldGhvZCIpCiAgICBjcmVhdGlvbl9kYXRlOiBkYXRldGltZSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaW1lc3RhbXAgb2YgdGhlIHNlc3Npb24ncyBjcmVhdGlvbiIsIGFsaWFzPSJjcmVhdGlvbkRhdGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJ1c2VySWQiLCAic2Vzc2lvbk1ldGFkYXRhIiwgInZhdWx0QWNjb3VudElkIiwgImZlZUxldmVsIiwgImNoYWluSWRzIiwgImNvbm5lY3Rpb25UeXBlIiwgImNvbm5lY3Rpb25NZXRob2QiLCAiY3JlYXRpb25EYXRlIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdmZWVfbGV2ZWwnKQogICAgZGVmIGZlZV9sZXZlbF92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydNRURJVU0nLCAnSElHSCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdNRURJVU0nLCAnSElHSCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdjb25uZWN0aW9uX3R5cGUnKQogICAgZGVmIGNvbm5lY3Rpb25fdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydXYWxsZXRDb25uZWN0J10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ1dhbGxldENvbm5lY3QnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgQGZpZWxkX3ZhbGlkYXRvcignY29ubmVjdGlvbl9tZXRob2QnKQogICAgZGVmIGNvbm5lY3Rpb25fbWV0aG9kX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0RFU0tUT1AnLCAnTU9CSUxFJywgJ0FQSSddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdERVNLVE9QJywgJ01PQklMRScsICdBUEknKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2Vzc2lvbkRUTyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHNlc3Npb25fbWV0YWRhdGEKICAgICAgICBpZiBzZWxmLnNlc3Npb25fbWV0YWRhdGE6CiAgICAgICAgICAgIF9kaWN0WydzZXNzaW9uTWV0YWRhdGEnXSA9IHNlbGYuc2Vzc2lvbl9tZXRhZGF0YS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNlc3Npb25EVE8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAidXNlcklkIjogb2JqLmdldCgidXNlcklkIiksCiAgICAgICAgICAgICJzZXNzaW9uTWV0YWRhdGEiOiBTZXNzaW9uTWV0YWRhdGEuZnJvbV9kaWN0KG9ialsic2Vzc2lvbk1ldGFkYXRhIl0pIGlmIG9iai5nZXQoInNlc3Npb25NZXRhZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInZhdWx0QWNjb3VudElkIjogb2JqLmdldCgidmF1bHRBY2NvdW50SWQiKSwKICAgICAgICAgICAgImZlZUxldmVsIjogb2JqLmdldCgiZmVlTGV2ZWwiKSwKICAgICAgICAgICAgImNoYWluSWRzIjogb2JqLmdldCgiY2hhaW5JZHMiKSwKICAgICAgICAgICAgImNvbm5lY3Rpb25UeXBlIjogb2JqLmdldCgiY29ubmVjdGlvblR5cGUiKSwKICAgICAgICAgICAgImNvbm5lY3Rpb25NZXRob2QiOiBvYmouZ2V0KCJjb25uZWN0aW9uTWV0aG9kIiksCiAgICAgICAgICAgICJjcmVhdGlvbkRhdGUiOiBvYmouZ2V0KCJjcmVhdGlvbkRhdGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/session_metadata.py b/fireblocks/models/session_metadata.py index 3abafad5..9028cb5e 100644 --- a/fireblocks/models/session_metadata.py +++ b/fireblocks/models/session_metadata.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class SessionMetadata(BaseModel): - """ - SessionMetadata - """ # noqa: E501 - app_url: StrictStr = Field(alias="appUrl") - app_name: Optional[StrictStr] = Field(default=None, alias="appName") - app_description: Optional[StrictStr] = Field(default=None, alias="appDescription") - app_icon: Optional[StrictStr] = Field(default=None, alias="appIcon") - __properties: ClassVar[List[str]] = ["appUrl", "appName", "appDescription", "appIcon"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SessionMetadata from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SessionMetadata from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "appUrl": obj.get("appUrl"), - "appName": obj.get("appName"), - "appDescription": obj.get("appDescription"), - "appIcon": obj.get("appIcon") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTZXNzaW9uTWV0YWRhdGEoQmFzZU1vZGVsKToKICAgICIiIgogICAgU2Vzc2lvbk1ldGFkYXRhCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhcHBfdXJsOiBTdHJpY3RTdHIgPSBGaWVsZChhbGlhcz0iYXBwVXJsIikKICAgIGFwcF9uYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYXBwTmFtZSIpCiAgICBhcHBfZGVzY3JpcHRpb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJhcHBEZXNjcmlwdGlvbiIpCiAgICBhcHBfaWNvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImFwcEljb24iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhcHBVcmwiLCAiYXBwTmFtZSIsICJhcHBEZXNjcmlwdGlvbiIsICJhcHBJY29uIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXNzaW9uTWV0YWRhdGEgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2Vzc2lvbk1ldGFkYXRhIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFwcFVybCI6IG9iai5nZXQoImFwcFVybCIpLAogICAgICAgICAgICAiYXBwTmFtZSI6IG9iai5nZXQoImFwcE5hbWUiKSwKICAgICAgICAgICAgImFwcERlc2NyaXB0aW9uIjogb2JqLmdldCgiYXBwRGVzY3JpcHRpb24iKSwKICAgICAgICAgICAgImFwcEljb24iOiBvYmouZ2V0KCJhcHBJY29uIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/set_admin_quorum_threshold_request.py b/fireblocks/models/set_admin_quorum_threshold_request.py index 4c43d2da..b6195430 100644 --- a/fireblocks/models/set_admin_quorum_threshold_request.py +++ b/fireblocks/models/set_admin_quorum_threshold_request.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class SetAdminQuorumThresholdRequest(BaseModel): - """ - SetAdminQuorumThresholdRequest - """ # noqa: E501 - admin_quorum_threshold: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The number of admins that will requires to approve an operation", alias="adminQuorumThreshold") - __properties: ClassVar[List[str]] = ["adminQuorumThreshold"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SetAdminQuorumThresholdRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SetAdminQuorumThresholdRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "adminQuorumThreshold": obj.get("adminQuorumThreshold") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwsIFVuaW9uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNldEFkbWluUXVvcnVtVGhyZXNob2xkUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBTZXRBZG1pblF1b3J1bVRocmVzaG9sZFJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFkbWluX3F1b3J1bV90aHJlc2hvbGQ6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBudW1iZXIgb2YgYWRtaW5zIHRoYXQgd2lsbCByZXF1aXJlcyB0byBhcHByb3ZlIGFuIG9wZXJhdGlvbiIsIGFsaWFzPSJhZG1pblF1b3J1bVRocmVzaG9sZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFkbWluUXVvcnVtVGhyZXNob2xkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRBZG1pblF1b3J1bVRocmVzaG9sZFJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0QWRtaW5RdW9ydW1UaHJlc2hvbGRSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFkbWluUXVvcnVtVGhyZXNob2xkIjogb2JqLmdldCgiYWRtaW5RdW9ydW1UaHJlc2hvbGQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/set_admin_quorum_threshold_response.py b/fireblocks/models/set_admin_quorum_threshold_response.py index 3df2b067..3719b67c 100644 --- a/fireblocks/models/set_admin_quorum_threshold_response.py +++ b/fireblocks/models/set_admin_quorum_threshold_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class SetAdminQuorumThresholdResponse(BaseModel): - """ - SetAdminQuorumThresholdResponse - """ # noqa: E501 - message: StrictStr = Field(description="The message which indicates the result of the operation.") - __properties: ClassVar[List[str]] = ["message"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SetAdminQuorumThresholdResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SetAdminQuorumThresholdResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNldEFkbWluUXVvcnVtVGhyZXNob2xkUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgU2V0QWRtaW5RdW9ydW1UaHJlc2hvbGRSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgbWVzc2FnZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBtZXNzYWdlIHdoaWNoIGluZGljYXRlcyB0aGUgcmVzdWx0IG9mIHRoZSBvcGVyYXRpb24uIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibWVzc2FnZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0QWRtaW5RdW9ydW1UaHJlc2hvbGRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRBZG1pblF1b3J1bVRocmVzaG9sZFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm1lc3NhZ2UiOiBvYmouZ2V0KCJtZXNzYWdlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/set_asset_price_request.py b/fireblocks/models/set_asset_price_request.py index 9ecda194..9ebd0739 100644 --- a/fireblocks/models/set_asset_price_request.py +++ b/fireblocks/models/set_asset_price_request.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class SetAssetPriceRequest(BaseModel): - """ - SetAssetPriceRequest - """ # noqa: E501 - currency: StrictStr = Field(description="Currency (according to ISO 4217 currency codes)") - price: Union[StrictFloat, StrictInt] = Field(description="Price in currency") - __properties: ClassVar[List[str]] = ["currency", "price"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SetAssetPriceRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SetAssetPriceRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "currency": obj.get("currency"), - "price": obj.get("price") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTZXRBc3NldFByaWNlUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBTZXRBc3NldFByaWNlUmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgY3VycmVuY3k6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJDdXJyZW5jeSAoYWNjb3JkaW5nIHRvIElTTyA0MjE3IGN1cnJlbmN5IGNvZGVzKSIpCiAgICBwcmljZTogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iUHJpY2UgaW4gY3VycmVuY3kiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJjdXJyZW5jeSIsICJwcmljZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0QXNzZXRQcmljZVJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0QXNzZXRQcmljZVJlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiY3VycmVuY3kiOiBvYmouZ2V0KCJjdXJyZW5jeSIpLAogICAgICAgICAgICAicHJpY2UiOiBvYmouZ2V0KCJwcmljZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/set_auto_fuel_request.py b/fireblocks/models/set_auto_fuel_request.py index 51278785..d61bad60 100644 --- a/fireblocks/models/set_auto_fuel_request.py +++ b/fireblocks/models/set_auto_fuel_request.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class SetAutoFuelRequest(BaseModel): - """ - SetAutoFuelRequest - """ # noqa: E501 - auto_fuel: Optional[StrictBool] = Field(default=None, description="Auto Fuel", alias="autoFuel") - __properties: ClassVar[List[str]] = ["autoFuel"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SetAutoFuelRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SetAutoFuelRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "autoFuel": obj.get("autoFuel") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU2V0QXV0b0Z1ZWxSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNldEF1dG9GdWVsUmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgYXV0b19mdWVsOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkF1dG8gRnVlbCIsIGFsaWFzPSJhdXRvRnVlbCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImF1dG9GdWVsIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRBdXRvRnVlbFJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0QXV0b0Z1ZWxSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImF1dG9GdWVsIjogb2JqLmdldCgiYXV0b0Z1ZWwiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/set_confirmations_threshold_request.py b/fireblocks/models/set_confirmations_threshold_request.py index cda53708..8e1daa3e 100644 --- a/fireblocks/models/set_confirmations_threshold_request.py +++ b/fireblocks/models/set_confirmations_threshold_request.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class SetConfirmationsThresholdRequest(BaseModel): - """ - SetConfirmationsThresholdRequest - """ # noqa: E501 - num_of_confirmations: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="numOfConfirmations") - __properties: ClassVar[List[str]] = ["numOfConfirmations"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SetConfirmationsThresholdRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SetConfirmationsThresholdRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "numOfConfirmations": obj.get("numOfConfirmations") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwsIFVuaW9uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBudW1fb2ZfY29uZmlybWF0aW9uczogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ibnVtT2ZDb25maXJtYXRpb25zIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibnVtT2ZDb25maXJtYXRpb25zIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJudW1PZkNvbmZpcm1hdGlvbnMiOiBvYmouZ2V0KCJudW1PZkNvbmZpcm1hdGlvbnMiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/set_confirmations_threshold_response.py b/fireblocks/models/set_confirmations_threshold_response.py index 64537d65..c8f0e454 100644 --- a/fireblocks/models/set_confirmations_threshold_response.py +++ b/fireblocks/models/set_confirmations_threshold_response.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class SetConfirmationsThresholdResponse(BaseModel): - """ - SetConfirmationsThresholdResponse - """ # noqa: E501 - success: Optional[StrictBool] = None - transactions: Optional[List[StrictStr]] = None - __properties: ClassVar[List[str]] = ["success", "transactions"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SetConfirmationsThresholdResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SetConfirmationsThresholdResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "success": obj.get("success"), - "transactions": obj.get("transactions") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RCb29sLCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHN1Y2Nlc3M6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gTm9uZQogICAgdHJhbnNhY3Rpb25zOiBPcHRpb25hbFtMaXN0W1N0cmljdFN0cl1dID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzdWNjZXNzIiwgInRyYW5zYWN0aW9ucyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0Q29uZmlybWF0aW9uc1RocmVzaG9sZFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzdWNjZXNzIjogb2JqLmdldCgic3VjY2VzcyIpLAogICAgICAgICAgICAidHJhbnNhY3Rpb25zIjogb2JqLmdldCgidHJhbnNhY3Rpb25zIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/set_customer_ref_id_for_address_request.py b/fireblocks/models/set_customer_ref_id_for_address_request.py index b5b22376..fa5054a7 100644 --- a/fireblocks/models/set_customer_ref_id_for_address_request.py +++ b/fireblocks/models/set_customer_ref_id_for_address_request.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class SetCustomerRefIdForAddressRequest(BaseModel): - """ - SetCustomerRefIdForAddressRequest - """ # noqa: E501 - customer_ref_id: Optional[StrictStr] = Field(default=None, description="Customer reference ID", alias="customerRefId") - __properties: ClassVar[List[str]] = ["customerRefId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SetCustomerRefIdForAddressRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SetCustomerRefIdForAddressRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "customerRefId": obj.get("customerRefId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTZXRDdXN0b21lclJlZklkRm9yQWRkcmVzc1JlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgU2V0Q3VzdG9tZXJSZWZJZEZvckFkZHJlc3NSZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBjdXN0b21lcl9yZWZfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJDdXN0b21lciByZWZlcmVuY2UgSUQiLCBhbGlhcz0iY3VzdG9tZXJSZWZJZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImN1c3RvbWVyUmVmSWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldEN1c3RvbWVyUmVmSWRGb3JBZGRyZXNzUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRDdXN0b21lclJlZklkRm9yQWRkcmVzc1JlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiY3VzdG9tZXJSZWZJZCI6IG9iai5nZXQoImN1c3RvbWVyUmVmSWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/set_customer_ref_id_request.py b/fireblocks/models/set_customer_ref_id_request.py index 483f6518..a0f21ce3 100644 --- a/fireblocks/models/set_customer_ref_id_request.py +++ b/fireblocks/models/set_customer_ref_id_request.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class SetCustomerRefIdRequest(BaseModel): - """ - SetCustomerRefIdRequest - """ # noqa: E501 - customer_ref_id: Optional[StrictStr] = Field(default=None, description="Customer reference ID", alias="customerRefId") - __properties: ClassVar[List[str]] = ["customerRefId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SetCustomerRefIdRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SetCustomerRefIdRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "customerRefId": obj.get("customerRefId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTZXRDdXN0b21lclJlZklkUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBTZXRDdXN0b21lclJlZklkUmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgY3VzdG9tZXJfcmVmX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3VzdG9tZXIgcmVmZXJlbmNlIElEIiwgYWxpYXM9ImN1c3RvbWVyUmVmSWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJjdXN0b21lclJlZklkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRDdXN0b21lclJlZklkUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRDdXN0b21lclJlZklkUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJjdXN0b21lclJlZklkIjogb2JqLmdldCgiY3VzdG9tZXJSZWZJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/set_layer_zero_dvn_config_request.py b/fireblocks/models/set_layer_zero_dvn_config_request.py index b9799d48..519ac814 100644 --- a/fireblocks/models/set_layer_zero_dvn_config_request.py +++ b/fireblocks/models/set_layer_zero_dvn_config_request.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.dvn_config import DvnConfig -from typing import Optional, Set -from typing_extensions import Self - -class SetLayerZeroDvnConfigRequest(BaseModel): - """ - SetLayerZeroDvnConfigRequest - """ # noqa: E501 - vault_account_id: StrictStr = Field(description="Vault account that pays gas", alias="vaultAccountId") - source_adapter_token_link_id: StrictStr = Field(description="Source adapter TokenLink ID", alias="sourceAdapterTokenLinkId") - destination_adapter_token_link_id: StrictStr = Field(description="Destination adapter TokenLink ID", alias="destinationAdapterTokenLinkId") - send_config: DvnConfig = Field(alias="sendConfig") - receive_config: DvnConfig = Field(alias="receiveConfig") - __properties: ClassVar[List[str]] = ["vaultAccountId", "sourceAdapterTokenLinkId", "destinationAdapterTokenLinkId", "sendConfig", "receiveConfig"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SetLayerZeroDvnConfigRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of send_config - if self.send_config: - _dict['sendConfig'] = self.send_config.to_dict() - # override the default output from pydantic by calling `to_dict()` of receive_config - if self.receive_config: - _dict['receiveConfig'] = self.receive_config.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SetLayerZeroDvnConfigRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "vaultAccountId": obj.get("vaultAccountId"), - "sourceAdapterTokenLinkId": obj.get("sourceAdapterTokenLinkId"), - "destinationAdapterTokenLinkId": obj.get("destinationAdapterTokenLinkId"), - "sendConfig": DvnConfig.from_dict(obj["sendConfig"]) if obj.get("sendConfig") is not None else None, - "receiveConfig": DvnConfig.from_dict(obj["receiveConfig"]) if obj.get("receiveConfig") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZHZuX2NvbmZpZyBpbXBvcnQgRHZuQ29uZmlnCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNldExheWVyWmVyb0R2bkNvbmZpZ1JlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgdmF1bHRfYWNjb3VudF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlZhdWx0IGFjY291bnQgdGhhdCBwYXlzIGdhcyIsIGFsaWFzPSJ2YXVsdEFjY291bnRJZCIpCiAgICBzb3VyY2VfYWRhcHRlcl90b2tlbl9saW5rX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iU291cmNlIGFkYXB0ZXIgVG9rZW5MaW5rIElEIiwgYWxpYXM9InNvdXJjZUFkYXB0ZXJUb2tlbkxpbmtJZCIpCiAgICBkZXN0aW5hdGlvbl9hZGFwdGVyX3Rva2VuX2xpbmtfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiBhZGFwdGVyIFRva2VuTGluayBJRCIsIGFsaWFzPSJkZXN0aW5hdGlvbkFkYXB0ZXJUb2tlbkxpbmtJZCIpCiAgICBzZW5kX2NvbmZpZzogRHZuQ29uZmlnID0gRmllbGQoYWxpYXM9InNlbmRDb25maWciKQogICAgcmVjZWl2ZV9jb25maWc6IER2bkNvbmZpZyA9IEZpZWxkKGFsaWFzPSJyZWNlaXZlQ29uZmlnIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidmF1bHRBY2NvdW50SWQiLCAic291cmNlQWRhcHRlclRva2VuTGlua0lkIiwgImRlc3RpbmF0aW9uQWRhcHRlclRva2VuTGlua0lkIiwgInNlbmRDb25maWciLCAicmVjZWl2ZUNvbmZpZyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHNlbmRfY29uZmlnCiAgICAgICAgaWYgc2VsZi5zZW5kX2NvbmZpZzoKICAgICAgICAgICAgX2RpY3RbJ3NlbmRDb25maWcnXSA9IHNlbGYuc2VuZF9jb25maWcudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHJlY2VpdmVfY29uZmlnCiAgICAgICAgaWYgc2VsZi5yZWNlaXZlX2NvbmZpZzoKICAgICAgICAgICAgX2RpY3RbJ3JlY2VpdmVDb25maWcnXSA9IHNlbGYucmVjZWl2ZV9jb25maWcudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRMYXllclplcm9Edm5Db25maWdSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInZhdWx0QWNjb3VudElkIjogb2JqLmdldCgidmF1bHRBY2NvdW50SWQiKSwKICAgICAgICAgICAgInNvdXJjZUFkYXB0ZXJUb2tlbkxpbmtJZCI6IG9iai5nZXQoInNvdXJjZUFkYXB0ZXJUb2tlbkxpbmtJZCIpLAogICAgICAgICAgICAiZGVzdGluYXRpb25BZGFwdGVyVG9rZW5MaW5rSWQiOiBvYmouZ2V0KCJkZXN0aW5hdGlvbkFkYXB0ZXJUb2tlbkxpbmtJZCIpLAogICAgICAgICAgICAic2VuZENvbmZpZyI6IER2bkNvbmZpZy5mcm9tX2RpY3Qob2JqWyJzZW5kQ29uZmlnIl0pIGlmIG9iai5nZXQoInNlbmRDb25maWciKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJyZWNlaXZlQ29uZmlnIjogRHZuQ29uZmlnLmZyb21fZGljdChvYmpbInJlY2VpdmVDb25maWciXSkgaWYgb2JqLmdldCgicmVjZWl2ZUNvbmZpZyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/set_layer_zero_dvn_config_response.py b/fireblocks/models/set_layer_zero_dvn_config_response.py index 98b524f8..c363ce54 100644 --- a/fireblocks/models/set_layer_zero_dvn_config_response.py +++ b/fireblocks/models/set_layer_zero_dvn_config_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class SetLayerZeroDvnConfigResponse(BaseModel): - """ - SetLayerZeroDvnConfigResponse - """ # noqa: E501 - txn_ids: List[StrictStr] = Field(description="Transaction IDs submitted to the network", alias="txnIds") - __properties: ClassVar[List[str]] = ["txnIds"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SetLayerZeroDvnConfigResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SetLayerZeroDvnConfigResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "txnIds": obj.get("txnIds") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eG5faWRzOiBMaXN0W1N0cmljdFN0cl0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVHJhbnNhY3Rpb24gSURzIHN1Ym1pdHRlZCB0byB0aGUgbmV0d29yayIsIGFsaWFzPSJ0eG5JZHMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eG5JZHMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInR4bklkcyI6IG9iai5nZXQoInR4bklkcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/set_layer_zero_peers_request.py b/fireblocks/models/set_layer_zero_peers_request.py index d53a3424..b35d29be 100644 --- a/fireblocks/models/set_layer_zero_peers_request.py +++ b/fireblocks/models/set_layer_zero_peers_request.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class SetLayerZeroPeersRequest(BaseModel): - """ - SetLayerZeroPeersRequest - """ # noqa: E501 - vault_account_id: StrictStr = Field(description="The id of the vault account that will be used to inititate transactions ot set peers", alias="vaultAccountId") - source_adapter_token_link_id: StrictStr = Field(description="`token_link` ID of the source adapter contract", alias="sourceAdapterTokenLinkId") - destination_adapter_token_link_ids: Annotated[List[StrictStr], Field(min_length=1)] = Field(description="Array of `token_link` IDs for destination adapter contracts", alias="destinationAdapterTokenLinkIds") - bidirectional: StrictBool = Field(description="If true, also sets peers from destination(s) back to source") - __properties: ClassVar[List[str]] = ["vaultAccountId", "sourceAdapterTokenLinkId", "destinationAdapterTokenLinkIds", "bidirectional"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SetLayerZeroPeersRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SetLayerZeroPeersRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "vaultAccountId": obj.get("vaultAccountId"), - "sourceAdapterTokenLinkId": obj.get("sourceAdapterTokenLinkId"), - "destinationAdapterTokenLinkIds": obj.get("destinationAdapterTokenLinkIds"), - "bidirectional": obj.get("bidirectional") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTZXRMYXllclplcm9QZWVyc1JlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgU2V0TGF5ZXJaZXJvUGVlcnNSZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB2YXVsdF9hY2NvdW50X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGlkIG9mIHRoZSB2YXVsdCBhY2NvdW50IHRoYXQgd2lsbCBiZSB1c2VkIHRvIGluaXRpdGF0ZSB0cmFuc2FjdGlvbnMgb3Qgc2V0IHBlZXJzIiwgYWxpYXM9InZhdWx0QWNjb3VudElkIikKICAgIHNvdXJjZV9hZGFwdGVyX3Rva2VuX2xpbmtfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJgdG9rZW5fbGlua2AgSUQgb2YgdGhlIHNvdXJjZSBhZGFwdGVyIGNvbnRyYWN0IiwgYWxpYXM9InNvdXJjZUFkYXB0ZXJUb2tlbkxpbmtJZCIpCiAgICBkZXN0aW5hdGlvbl9hZGFwdGVyX3Rva2VuX2xpbmtfaWRzOiBBbm5vdGF0ZWRbTGlzdFtTdHJpY3RTdHJdLCBGaWVsZChtaW5fbGVuZ3RoPTEpXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBcnJheSBvZiBgdG9rZW5fbGlua2AgSURzIGZvciBkZXN0aW5hdGlvbiBhZGFwdGVyIGNvbnRyYWN0cyIsIGFsaWFzPSJkZXN0aW5hdGlvbkFkYXB0ZXJUb2tlbkxpbmtJZHMiKQogICAgYmlkaXJlY3Rpb25hbDogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJZiB0cnVlLCBhbHNvIHNldHMgcGVlcnMgZnJvbSBkZXN0aW5hdGlvbihzKSBiYWNrIHRvIHNvdXJjZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInZhdWx0QWNjb3VudElkIiwgInNvdXJjZUFkYXB0ZXJUb2tlbkxpbmtJZCIsICJkZXN0aW5hdGlvbkFkYXB0ZXJUb2tlbkxpbmtJZHMiLCAiYmlkaXJlY3Rpb25hbCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0TGF5ZXJaZXJvUGVlcnNSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldExheWVyWmVyb1BlZXJzUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ2YXVsdEFjY291bnRJZCI6IG9iai5nZXQoInZhdWx0QWNjb3VudElkIiksCiAgICAgICAgICAgICJzb3VyY2VBZGFwdGVyVG9rZW5MaW5rSWQiOiBvYmouZ2V0KCJzb3VyY2VBZGFwdGVyVG9rZW5MaW5rSWQiKSwKICAgICAgICAgICAgImRlc3RpbmF0aW9uQWRhcHRlclRva2VuTGlua0lkcyI6IG9iai5nZXQoImRlc3RpbmF0aW9uQWRhcHRlclRva2VuTGlua0lkcyIpLAogICAgICAgICAgICAiYmlkaXJlY3Rpb25hbCI6IG9iai5nZXQoImJpZGlyZWN0aW9uYWwiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/set_layer_zero_peers_response.py b/fireblocks/models/set_layer_zero_peers_response.py index 5b13a39e..39dc8795 100644 --- a/fireblocks/models/set_layer_zero_peers_response.py +++ b/fireblocks/models/set_layer_zero_peers_response.py @@ -1,89 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class SetLayerZeroPeersResponse(BaseModel): - """ - SetLayerZeroPeersResponse - """ # noqa: E501 - txn_ids: Annotated[List[StrictStr], Field(min_length=1)] = Field(description="Array of fireblocks transaction IDs, each corresponding to an on-chain transaction to set peers", alias="txnIds") - __properties: ClassVar[List[str]] = ["txnIds"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SetLayerZeroPeersResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SetLayerZeroPeersResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "txnIds": obj.get("txnIds") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNldExheWVyWmVyb1BlZXJzUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR4bl9pZHM6IEFubm90YXRlZFtMaXN0W1N0cmljdFN0cl0sIEZpZWxkKG1pbl9sZW5ndGg9MSldID0gRmllbGQoZGVzY3JpcHRpb249IkFycmF5IG9mIGZpcmVibG9ja3MgdHJhbnNhY3Rpb24gSURzLCBlYWNoIGNvcnJlc3BvbmRpbmcgdG8gYW4gb24tY2hhaW4gdHJhbnNhY3Rpb24gdG8gc2V0IHBlZXJzIiwgYWxpYXM9InR4bklkcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR4bklkcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0TGF5ZXJaZXJvUGVlcnNSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInR4bklkcyI6IG9iai5nZXQoInR4bklkcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/set_network_id_discoverability_request.py b/fireblocks/models/set_network_id_discoverability_request.py index 1a80df45..a8a10382 100644 --- a/fireblocks/models/set_network_id_discoverability_request.py +++ b/fireblocks/models/set_network_id_discoverability_request.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class SetNetworkIdDiscoverabilityRequest(BaseModel): - """ - SetNetworkIdDiscoverabilityRequest - """ # noqa: E501 - is_discoverable: StrictBool = Field(alias="isDiscoverable") - __properties: ClassVar[List[str]] = ["isDiscoverable"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SetNetworkIdDiscoverabilityRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SetNetworkIdDiscoverabilityRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "isDiscoverable": obj.get("isDiscoverable") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTZXROZXR3b3JrSWREaXNjb3ZlcmFiaWxpdHlSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNldE5ldHdvcmtJZERpc2NvdmVyYWJpbGl0eVJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlzX2Rpc2NvdmVyYWJsZTogU3RyaWN0Qm9vbCA9IEZpZWxkKGFsaWFzPSJpc0Rpc2NvdmVyYWJsZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlzRGlzY292ZXJhYmxlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXROZXR3b3JrSWREaXNjb3ZlcmFiaWxpdHlSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldE5ldHdvcmtJZERpc2NvdmVyYWJpbGl0eVJlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaXNEaXNjb3ZlcmFibGUiOiBvYmouZ2V0KCJpc0Rpc2NvdmVyYWJsZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/set_network_id_name_request.py b/fireblocks/models/set_network_id_name_request.py index 4b211965..0f16a1c6 100644 --- a/fireblocks/models/set_network_id_name_request.py +++ b/fireblocks/models/set_network_id_name_request.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class SetNetworkIdNameRequest(BaseModel): - """ - SetNetworkIdNameRequest - """ # noqa: E501 - name: StrictStr - __properties: ClassVar[List[str]] = ["name"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SetNetworkIdNameRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SetNetworkIdNameRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU2V0TmV0d29ya0lkTmFtZVJlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgU2V0TmV0d29ya0lkTmFtZVJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG5hbWU6IFN0cmljdFN0cgogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJuYW1lIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXROZXR3b3JrSWROYW1lUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXROZXR3b3JrSWROYW1lUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/set_network_id_response.py b/fireblocks/models/set_network_id_response.py index 9769e163..4ee668f4 100644 --- a/fireblocks/models/set_network_id_response.py +++ b/fireblocks/models/set_network_id_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictBool -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class SetNetworkIdResponse(BaseModel): - """ - SetNetworkIdResponse - """ # noqa: E501 - success: StrictBool - __properties: ClassVar[List[str]] = ["success"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SetNetworkIdResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SetNetworkIdResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "success": obj.get("success") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RCb29sCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNldE5ldHdvcmtJZFJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNldE5ldHdvcmtJZFJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzdWNjZXNzOiBTdHJpY3RCb29sCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInN1Y2Nlc3MiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldE5ldHdvcmtJZFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldE5ldHdvcmtJZFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInN1Y2Nlc3MiOiBvYmouZ2V0KCJzdWNjZXNzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/set_network_id_routing_policy_request.py b/fireblocks/models/set_network_id_routing_policy_request.py index 358cda9e..ffb6b0e0 100644 --- a/fireblocks/models/set_network_id_routing_policy_request.py +++ b/fireblocks/models/set_network_id_routing_policy_request.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.network_id_routing_policy_value import NetworkIdRoutingPolicyValue -from typing import Optional, Set -from typing_extensions import Self - -class SetNetworkIdRoutingPolicyRequest(BaseModel): - """ - SetNetworkIdRoutingPolicyRequest - """ # noqa: E501 - routing_policy: Dict[str, NetworkIdRoutingPolicyValue] = Field(alias="routingPolicy") - __properties: ClassVar[List[str]] = ["routingPolicy"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SetNetworkIdRoutingPolicyRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each value in routing_policy (dict) - _field_dict = {} - if self.routing_policy: - for _key_routing_policy in self.routing_policy: - if self.routing_policy[_key_routing_policy]: - _field_dict[_key_routing_policy] = self.routing_policy[_key_routing_policy].to_dict() - _dict['routingPolicy'] = _field_dict - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SetNetworkIdRoutingPolicyRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "routingPolicy": dict( - (_k, NetworkIdRoutingPolicyValue.from_dict(_v)) - for _k, _v in obj["routingPolicy"].items() - ) - if obj.get("routingPolicy") is not None - else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfaWRfcm91dGluZ19wb2xpY3lfdmFsdWUgaW1wb3J0IE5ldHdvcmtJZFJvdXRpbmdQb2xpY3lWYWx1ZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTZXROZXR3b3JrSWRSb3V0aW5nUG9saWN5UmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBTZXROZXR3b3JrSWRSb3V0aW5nUG9saWN5UmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgcm91dGluZ19wb2xpY3k6IERpY3Rbc3RyLCBOZXR3b3JrSWRSb3V0aW5nUG9saWN5VmFsdWVdID0gRmllbGQoYWxpYXM9InJvdXRpbmdQb2xpY3kiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJyb3V0aW5nUG9saWN5Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXROZXR3b3JrSWRSb3V0aW5nUG9saWN5UmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggdmFsdWUgaW4gcm91dGluZ19wb2xpY3kgKGRpY3QpCiAgICAgICAgX2ZpZWxkX2RpY3QgPSB7fQogICAgICAgIGlmIHNlbGYucm91dGluZ19wb2xpY3k6CiAgICAgICAgICAgIGZvciBfa2V5X3JvdXRpbmdfcG9saWN5IGluIHNlbGYucm91dGluZ19wb2xpY3k6CiAgICAgICAgICAgICAgICBpZiBzZWxmLnJvdXRpbmdfcG9saWN5W19rZXlfcm91dGluZ19wb2xpY3ldOgogICAgICAgICAgICAgICAgICAgIF9maWVsZF9kaWN0W19rZXlfcm91dGluZ19wb2xpY3ldID0gc2VsZi5yb3V0aW5nX3BvbGljeVtfa2V5X3JvdXRpbmdfcG9saWN5XS50b19kaWN0KCkKICAgICAgICAgICAgX2RpY3RbJ3JvdXRpbmdQb2xpY3knXSA9IF9maWVsZF9kaWN0CiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXROZXR3b3JrSWRSb3V0aW5nUG9saWN5UmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJyb3V0aW5nUG9saWN5IjogZGljdCgKICAgICAgICAgICAgICAgIChfaywgTmV0d29ya0lkUm91dGluZ1BvbGljeVZhbHVlLmZyb21fZGljdChfdikpCiAgICAgICAgICAgICAgICBmb3IgX2ssIF92IGluIG9ialsicm91dGluZ1BvbGljeSJdLml0ZW1zKCkKICAgICAgICAgICAgKQogICAgICAgICAgICBpZiBvYmouZ2V0KCJyb3V0aW5nUG9saWN5IikgaXMgbm90IE5vbmUKICAgICAgICAgICAgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/set_ota_status_request.py b/fireblocks/models/set_ota_status_request.py index 3b27502e..333db0d2 100644 --- a/fireblocks/models/set_ota_status_request.py +++ b/fireblocks/models/set_ota_status_request.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class SetOtaStatusRequest(BaseModel): - """ - SetOtaStatusRequest - """ # noqa: E501 - enabled: Optional[StrictBool] = Field(default=None, description="Set true or false to enable or disable OTA transactions") - __properties: ClassVar[List[str]] = ["enabled"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SetOtaStatusRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SetOtaStatusRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "enabled": obj.get("enabled") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU2V0T3RhU3RhdHVzUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBTZXRPdGFTdGF0dXNSZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBlbmFibGVkOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNldCB0cnVlIG9yIGZhbHNlIHRvIGVuYWJsZSBvciBkaXNhYmxlIE9UQSB0cmFuc2FjdGlvbnMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJlbmFibGVkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRPdGFTdGF0dXNSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldE90YVN0YXR1c1JlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZW5hYmxlZCI6IG9iai5nZXQoImVuYWJsZWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/set_ota_status_response.py b/fireblocks/models/set_ota_status_response.py index 6ce53fae..a6fd1c54 100644 --- a/fireblocks/models/set_ota_status_response.py +++ b/fireblocks/models/set_ota_status_response.py @@ -1,141 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.set_ota_status_response_one_of import SetOtaStatusResponseOneOf -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -SETOTASTATUSRESPONSE_ONE_OF_SCHEMAS = ["SetOtaStatusResponseOneOf", "str"] - -class SetOtaStatusResponse(BaseModel): - """ - SetOtaStatusResponse - """ - # data type: SetOtaStatusResponseOneOf - oneof_schema_1_validator: Optional[SetOtaStatusResponseOneOf] = None - # data type: str - oneof_schema_2_validator: Optional[StrictStr] = Field(default=None, description="Message indicating the result of the operation when config was successfully updated") - actual_instance: Optional[Union[SetOtaStatusResponseOneOf, str]] = None - one_of_schemas: Set[str] = { "SetOtaStatusResponseOneOf", "str" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = SetOtaStatusResponse.model_construct() - error_messages = [] - match = 0 - # validate data type: SetOtaStatusResponseOneOf - if not isinstance(v, SetOtaStatusResponseOneOf): - error_messages.append(f"Error! Input type `{type(v)}` is not `SetOtaStatusResponseOneOf`") - else: - match += 1 - # validate data type: str - try: - instance.oneof_schema_2_validator = v - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in SetOtaStatusResponse with oneOf schemas: SetOtaStatusResponseOneOf, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in SetOtaStatusResponse with oneOf schemas: SetOtaStatusResponseOneOf, str. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into SetOtaStatusResponseOneOf - try: - instance.actual_instance = SetOtaStatusResponseOneOf.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into str - try: - # validation - instance.oneof_schema_2_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.oneof_schema_2_validator - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into SetOtaStatusResponse with oneOf schemas: SetOtaStatusResponseOneOf, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into SetOtaStatusResponse with oneOf schemas: SetOtaStatusResponseOneOf, str. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], SetOtaStatusResponseOneOf, str]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc2V0X290YV9zdGF0dXNfcmVzcG9uc2Vfb25lX29mIGltcG9ydCBTZXRPdGFTdGF0dXNSZXNwb25zZU9uZU9mCmZyb20gcHlkYW50aWMgaW1wb3J0IFN0cmljdFN0ciwgRmllbGQKZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uLCBMaXN0LCBTZXQsIE9wdGlvbmFsLCBEaWN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IExpdGVyYWwsIFNlbGYKClNFVE9UQVNUQVRVU1JFU1BPTlNFX09ORV9PRl9TQ0hFTUFTID0gWyJTZXRPdGFTdGF0dXNSZXNwb25zZU9uZU9mIiwgInN0ciJdCgpjbGFzcyBTZXRPdGFTdGF0dXNSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBTZXRPdGFTdGF0dXNSZXNwb25zZQogICAgIiIiCiAgICAjIGRhdGEgdHlwZTogU2V0T3RhU3RhdHVzUmVzcG9uc2VPbmVPZgogICAgb25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yOiBPcHRpb25hbFtTZXRPdGFTdGF0dXNSZXNwb25zZU9uZU9mXSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBzdHIKICAgIG9uZW9mX3NjaGVtYV8yX3ZhbGlkYXRvcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik1lc3NhZ2UgaW5kaWNhdGluZyB0aGUgcmVzdWx0IG9mIHRoZSBvcGVyYXRpb24gd2hlbiBjb25maWcgd2FzIHN1Y2Nlc3NmdWxseSB1cGRhdGVkIikKICAgIGFjdHVhbF9pbnN0YW5jZTogT3B0aW9uYWxbVW5pb25bU2V0T3RhU3RhdHVzUmVzcG9uc2VPbmVPZiwgc3RyXV0gPSBOb25lCiAgICBvbmVfb2Zfc2NoZW1hczogU2V0W3N0cl0gPSB7ICJTZXRPdGFTdGF0dXNSZXNwb25zZU9uZU9mIiwgInN0ciIgfQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKSAtPiBOb25lOgogICAgICAgIGlmIGFyZ3M6CiAgICAgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIG9ubHkgMSBpcyBhbGxvd2VkIHRvIHNldCBgYWN0dWFsX2luc3RhbmNlYCIpCiAgICAgICAgICAgIGlmIGt3YXJnczoKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwga2V5d29yZCBhcmd1bWVudHMgY2Fubm90IGJlIHVzZWQuIikKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhhY3R1YWxfaW5zdGFuY2U9YXJnc1swXSkKICAgICAgICBlbHNlOgogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FjdHVhbF9pbnN0YW5jZScpCiAgICBkZWYgYWN0dWFsX2luc3RhbmNlX211c3RfdmFsaWRhdGVfb25lb2YoY2xzLCB2KToKICAgICAgICBpbnN0YW5jZSA9IFNldE90YVN0YXR1c1Jlc3BvbnNlLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBTZXRPdGFTdGF0dXNSZXNwb25zZU9uZU9mCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgU2V0T3RhU3RhdHVzUmVzcG9uc2VPbmVPZik6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgU2V0T3RhU3RhdHVzUmVzcG9uc2VPbmVPZmAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogc3RyCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5vbmVvZl9zY2hlbWFfMl92YWxpZGF0b3IgPSB2CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gU2V0T3RhU3RhdHVzUmVzcG9uc2Ugd2l0aCBvbmVPZiBzY2hlbWFzOiBTZXRPdGFTdGF0dXNSZXNwb25zZU9uZU9mLCBzdHIuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gU2V0T3RhU3RhdHVzUmVzcG9uc2Ugd2l0aCBvbmVPZiBzY2hlbWFzOiBTZXRPdGFTdGF0dXNSZXNwb25zZU9uZU9mLCBzdHIuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBVbmlvbltzdHIsIERpY3Rbc3RyLCBBbnldXSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCgogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIFNldE90YVN0YXR1c1Jlc3BvbnNlT25lT2YKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IFNldE90YVN0YXR1c1Jlc3BvbnNlT25lT2YuZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gc3RyCiAgICAgICAgdHJ5OgogICAgICAgICAgICAjIHZhbGlkYXRpb24KICAgICAgICAgICAgaW5zdGFuY2Uub25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yID0ganNvbi5sb2Fkcyhqc29uX3N0cikKICAgICAgICAgICAgIyBhc3NpZ24gdmFsdWUgdG8gYWN0dWFsX2luc3RhbmNlCiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IGluc3RhbmNlLm9uZW9mX3NjaGVtYV8yX3ZhbGlkYXRvcgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCgogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBTZXRPdGFTdGF0dXNSZXNwb25zZSB3aXRoIG9uZU9mIHNjaGVtYXM6IFNldE90YVN0YXR1c1Jlc3BvbnNlT25lT2YsIHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBTZXRPdGFTdGF0dXNSZXNwb25zZSB3aXRoIG9uZU9mIHNjaGVtYXM6IFNldE90YVN0YXR1c1Jlc3BvbnNlT25lT2YsIHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiAibnVsbCIKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2pzb24iKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbik6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKCkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLmFjdHVhbF9pbnN0YW5jZSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBPcHRpb25hbFtVbmlvbltEaWN0W3N0ciwgQW55XSwgU2V0T3RhU3RhdHVzUmVzcG9uc2VPbmVPZiwgc3RyXV06CiAgICAgICAgIiIiUmV0dXJucyB0aGUgZGljdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2RpY3QiKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCk6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KCkKICAgICAgICBlbHNlOgogICAgICAgICAgICAjIHByaW1pdGl2ZSB0eXBlCiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZQoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcCgpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/set_ota_status_response_one_of.py b/fireblocks/models/set_ota_status_response_one_of.py index af44573e..2b52540c 100644 --- a/fireblocks/models/set_ota_status_response_one_of.py +++ b/fireblocks/models/set_ota_status_response_one_of.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class SetOtaStatusResponseOneOf(BaseModel): - """ - SetOtaStatusResponseOneOf - """ # noqa: E501 - message: Optional[StrictStr] = Field(default=None, description="Message indicating the result of the operation for example when no config change is needed") - __properties: ClassVar[List[str]] = ["message"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SetOtaStatusResponseOneOf from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SetOtaStatusResponseOneOf from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTZXRPdGFTdGF0dXNSZXNwb25zZU9uZU9mKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNldE90YVN0YXR1c1Jlc3BvbnNlT25lT2YKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG1lc3NhZ2U6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJNZXNzYWdlIGluZGljYXRpbmcgdGhlIHJlc3VsdCBvZiB0aGUgb3BlcmF0aW9uIGZvciBleGFtcGxlIHdoZW4gbm8gY29uZmlnIGNoYW5nZSBpcyBuZWVkZWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJtZXNzYWdlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRPdGFTdGF0dXNSZXNwb25zZU9uZU9mIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldE90YVN0YXR1c1Jlc3BvbnNlT25lT2YgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibWVzc2FnZSI6IG9iai5nZXQoIm1lc3NhZ2UiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/set_routing_policy_request.py b/fireblocks/models/set_routing_policy_request.py index 0e2f65d2..a4b6d7a7 100644 --- a/fireblocks/models/set_routing_policy_request.py +++ b/fireblocks/models/set_routing_policy_request.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.network_connection_routing_policy_value import NetworkConnectionRoutingPolicyValue -from typing import Optional, Set -from typing_extensions import Self - -class SetRoutingPolicyRequest(BaseModel): - """ - SetRoutingPolicyRequest - """ # noqa: E501 - routing_policy: Dict[str, NetworkConnectionRoutingPolicyValue] = Field(alias="routingPolicy") - __properties: ClassVar[List[str]] = ["routingPolicy"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SetRoutingPolicyRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each value in routing_policy (dict) - _field_dict = {} - if self.routing_policy: - for _key_routing_policy in self.routing_policy: - if self.routing_policy[_key_routing_policy]: - _field_dict[_key_routing_policy] = self.routing_policy[_key_routing_policy].to_dict() - _dict['routingPolicy'] = _field_dict - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SetRoutingPolicyRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "routingPolicy": dict( - (_k, NetworkConnectionRoutingPolicyValue.from_dict(_v)) - for _k, _v in obj["routingPolicy"].items() - ) - if obj.get("routingPolicy") is not None - else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfY29ubmVjdGlvbl9yb3V0aW5nX3BvbGljeV92YWx1ZSBpbXBvcnQgTmV0d29ya0Nvbm5lY3Rpb25Sb3V0aW5nUG9saWN5VmFsdWUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU2V0Um91dGluZ1BvbGljeVJlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgU2V0Um91dGluZ1BvbGljeVJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHJvdXRpbmdfcG9saWN5OiBEaWN0W3N0ciwgTmV0d29ya0Nvbm5lY3Rpb25Sb3V0aW5nUG9saWN5VmFsdWVdID0gRmllbGQoYWxpYXM9InJvdXRpbmdQb2xpY3kiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJyb3V0aW5nUG9saWN5Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRSb3V0aW5nUG9saWN5UmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggdmFsdWUgaW4gcm91dGluZ19wb2xpY3kgKGRpY3QpCiAgICAgICAgX2ZpZWxkX2RpY3QgPSB7fQogICAgICAgIGlmIHNlbGYucm91dGluZ19wb2xpY3k6CiAgICAgICAgICAgIGZvciBfa2V5X3JvdXRpbmdfcG9saWN5IGluIHNlbGYucm91dGluZ19wb2xpY3k6CiAgICAgICAgICAgICAgICBpZiBzZWxmLnJvdXRpbmdfcG9saWN5W19rZXlfcm91dGluZ19wb2xpY3ldOgogICAgICAgICAgICAgICAgICAgIF9maWVsZF9kaWN0W19rZXlfcm91dGluZ19wb2xpY3ldID0gc2VsZi5yb3V0aW5nX3BvbGljeVtfa2V5X3JvdXRpbmdfcG9saWN5XS50b19kaWN0KCkKICAgICAgICAgICAgX2RpY3RbJ3JvdXRpbmdQb2xpY3knXSA9IF9maWVsZF9kaWN0CiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXRSb3V0aW5nUG9saWN5UmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJyb3V0aW5nUG9saWN5IjogZGljdCgKICAgICAgICAgICAgICAgIChfaywgTmV0d29ya0Nvbm5lY3Rpb25Sb3V0aW5nUG9saWN5VmFsdWUuZnJvbV9kaWN0KF92KSkKICAgICAgICAgICAgICAgIGZvciBfaywgX3YgaW4gb2JqWyJyb3V0aW5nUG9saWN5Il0uaXRlbXMoKQogICAgICAgICAgICApCiAgICAgICAgICAgIGlmIG9iai5nZXQoInJvdXRpbmdQb2xpY3kiKSBpcyBub3QgTm9uZQogICAgICAgICAgICBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/set_routing_policy_response.py b/fireblocks/models/set_routing_policy_response.py index 32bfdf9b..4e500977 100644 --- a/fireblocks/models/set_routing_policy_response.py +++ b/fireblocks/models/set_routing_policy_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictBool -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class SetRoutingPolicyResponse(BaseModel): - """ - SetRoutingPolicyResponse - """ # noqa: E501 - success: StrictBool - __properties: ClassVar[List[str]] = ["success"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SetRoutingPolicyResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SetRoutingPolicyResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "success": obj.get("success") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RCb29sCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNldFJvdXRpbmdQb2xpY3lSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBTZXRSb3V0aW5nUG9saWN5UmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHN1Y2Nlc3M6IFN0cmljdEJvb2wKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3VjY2VzcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2V0Um91dGluZ1BvbGljeVJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldFJvdXRpbmdQb2xpY3lSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzdWNjZXNzIjogb2JqLmdldCgic3VjY2VzcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/settlement.py b/fireblocks/models/settlement.py index 7bf7f208..fbdee33b 100644 --- a/fireblocks/models/settlement.py +++ b/fireblocks/models/settlement.py @@ -1,141 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.dvp_settlement import DVPSettlement -from fireblocks.models.prefunded_settlement import PrefundedSettlement -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -SETTLEMENT_ONE_OF_SCHEMAS = ["DVPSettlement", "PrefundedSettlement"] - -class Settlement(BaseModel): - """ - Settlement configuration for the order - """ - # data type: PrefundedSettlement - oneof_schema_1_validator: Optional[PrefundedSettlement] = None - # data type: DVPSettlement - oneof_schema_2_validator: Optional[DVPSettlement] = None - actual_instance: Optional[Union[DVPSettlement, PrefundedSettlement]] = None - one_of_schemas: Set[str] = { "DVPSettlement", "PrefundedSettlement" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - discriminator_value_class_map: Dict[str, str] = { - } - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = Settlement.model_construct() - error_messages = [] - match = 0 - # validate data type: PrefundedSettlement - if not isinstance(v, PrefundedSettlement): - error_messages.append(f"Error! Input type `{type(v)}` is not `PrefundedSettlement`") - else: - match += 1 - # validate data type: DVPSettlement - if not isinstance(v, DVPSettlement): - error_messages.append(f"Error! Input type `{type(v)}` is not `DVPSettlement`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in Settlement with oneOf schemas: DVPSettlement, PrefundedSettlement. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in Settlement with oneOf schemas: DVPSettlement, PrefundedSettlement. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into PrefundedSettlement - try: - instance.actual_instance = PrefundedSettlement.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into DVPSettlement - try: - instance.actual_instance = DVPSettlement.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into Settlement with oneOf schemas: DVPSettlement, PrefundedSettlement. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into Settlement with oneOf schemas: DVPSettlement, PrefundedSettlement. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], DVPSettlement, PrefundedSettlement]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZHZwX3NldHRsZW1lbnQgaW1wb3J0IERWUFNldHRsZW1lbnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wcmVmdW5kZWRfc2V0dGxlbWVudCBpbXBvcnQgUHJlZnVuZGVkU2V0dGxlbWVudApmcm9tIHB5ZGFudGljIGltcG9ydCBTdHJpY3RTdHIsIEZpZWxkCmZyb20gdHlwaW5nIGltcG9ydCBVbmlvbiwgTGlzdCwgU2V0LCBPcHRpb25hbCwgRGljdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBMaXRlcmFsLCBTZWxmCgpTRVRUTEVNRU5UX09ORV9PRl9TQ0hFTUFTID0gWyJEVlBTZXR0bGVtZW50IiwgIlByZWZ1bmRlZFNldHRsZW1lbnQiXQoKY2xhc3MgU2V0dGxlbWVudChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBTZXR0bGVtZW50IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBvcmRlcgogICAgIiIiCiAgICAjIGRhdGEgdHlwZTogUHJlZnVuZGVkU2V0dGxlbWVudAogICAgb25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yOiBPcHRpb25hbFtQcmVmdW5kZWRTZXR0bGVtZW50XSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBEVlBTZXR0bGVtZW50CiAgICBvbmVvZl9zY2hlbWFfMl92YWxpZGF0b3I6IE9wdGlvbmFsW0RWUFNldHRsZW1lbnRdID0gTm9uZQogICAgYWN0dWFsX2luc3RhbmNlOiBPcHRpb25hbFtVbmlvbltEVlBTZXR0bGVtZW50LCBQcmVmdW5kZWRTZXR0bGVtZW50XV0gPSBOb25lCiAgICBvbmVfb2Zfc2NoZW1hczogU2V0W3N0cl0gPSB7ICJEVlBTZXR0bGVtZW50IiwgIlByZWZ1bmRlZFNldHRsZW1lbnQiIH0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGlzY3JpbWluYXRvcl92YWx1ZV9jbGFzc19tYXA6IERpY3Rbc3RyLCBzdHJdID0gewogICAgfQoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gU2V0dGxlbWVudC5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogUHJlZnVuZGVkU2V0dGxlbWVudAogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIFByZWZ1bmRlZFNldHRsZW1lbnQpOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYFByZWZ1bmRlZFNldHRsZW1lbnRgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IERWUFNldHRsZW1lbnQKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBEVlBTZXR0bGVtZW50KToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBEVlBTZXR0bGVtZW50YCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBTZXR0bGVtZW50IHdpdGggb25lT2Ygc2NoZW1hczogRFZQU2V0dGxlbWVudCwgUHJlZnVuZGVkU2V0dGxlbWVudC4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBTZXR0bGVtZW50IHdpdGggb25lT2Ygc2NoZW1hczogRFZQU2V0dGxlbWVudCwgUHJlZnVuZGVkU2V0dGxlbWVudC4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIHYKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IFVuaW9uW3N0ciwgRGljdFtzdHIsIEFueV1dKSAtPiBTZWxmOgogICAgICAgIHJldHVybiBjbHMuZnJvbV9qc29uKGpzb24uZHVtcHMob2JqKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIlJldHVybnMgdGhlIG9iamVjdCByZXByZXNlbnRlZCBieSB0aGUganNvbiBzdHJpbmciIiIKICAgICAgICBpbnN0YW5jZSA9IGNscy5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gUHJlZnVuZGVkU2V0dGxlbWVudAogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gUHJlZnVuZGVkU2V0dGxlbWVudC5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBEVlBTZXR0bGVtZW50CiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBEVlBTZXR0bGVtZW50LmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQoKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gU2V0dGxlbWVudCB3aXRoIG9uZU9mIHNjaGVtYXM6IERWUFNldHRsZW1lbnQsIFByZWZ1bmRlZFNldHRsZW1lbnQuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gU2V0dGxlbWVudCB3aXRoIG9uZU9mIHNjaGVtYXM6IERWUFNldHRsZW1lbnQsIFByZWZ1bmRlZFNldHRsZW1lbnQuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gIm51bGwiCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19qc29uIikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24pOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbigpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi5hY3R1YWxfaW5zdGFuY2UpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gT3B0aW9uYWxbVW5pb25bRGljdFtzdHIsIEFueV0sIERWUFNldHRsZW1lbnQsIFByZWZ1bmRlZFNldHRsZW1lbnRdXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgcHJpbWl0aXZlIHR5cGUKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/settlement_request_body.py b/fireblocks/models/settlement_request_body.py index 6615f3e7..741084f9 100644 --- a/fireblocks/models/settlement_request_body.py +++ b/fireblocks/models/settlement_request_body.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class SettlementRequestBody(BaseModel): - """ - SettlementRequestBody - """ # noqa: E501 - main_exchange_account_id: Optional[StrictStr] = Field(default=None, alias="mainExchangeAccountId") - __properties: ClassVar[List[str]] = ["mainExchangeAccountId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SettlementRequestBody from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SettlementRequestBody from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "mainExchangeAccountId": obj.get("mainExchangeAccountId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTZXR0bGVtZW50UmVxdWVzdEJvZHkoQmFzZU1vZGVsKToKICAgICIiIgogICAgU2V0dGxlbWVudFJlcXVlc3RCb2R5CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBtYWluX2V4Y2hhbmdlX2FjY291bnRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJtYWluRXhjaGFuZ2VBY2NvdW50SWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJtYWluRXhjaGFuZ2VBY2NvdW50SWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldHRsZW1lbnRSZXF1ZXN0Qm9keSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXR0bGVtZW50UmVxdWVzdEJvZHkgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibWFpbkV4Y2hhbmdlQWNjb3VudElkIjogb2JqLmdldCgibWFpbkV4Y2hhbmdlQWNjb3VudElkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/settlement_response.py b/fireblocks/models/settlement_response.py index eb6d4b56..963d4773 100644 --- a/fireblocks/models/settlement_response.py +++ b/fireblocks/models/settlement_response.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.exchange_settlement_transactions_response import ExchangeSettlementTransactionsResponse -from typing import Optional, Set -from typing_extensions import Self - -class SettlementResponse(BaseModel): - """ - SettlementResponse - """ # noqa: E501 - id: Optional[StrictStr] = None - initiator: Optional[StrictStr] = None - exchange_reply: Optional[StrictStr] = Field(default=None, alias="exchangeReply") - fireblocks_initiated_transactions: Optional[Dict[str, Any]] = Field(default=None, alias="fireblocksInitiatedTransactions") - exchange_requested_transactions: Optional[ExchangeSettlementTransactionsResponse] = Field(default=None, alias="exchangeRequestedTransactions") - __properties: ClassVar[List[str]] = ["id", "initiator", "exchangeReply", "fireblocksInitiatedTransactions", "exchangeRequestedTransactions"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SettlementResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of exchange_requested_transactions - if self.exchange_requested_transactions: - _dict['exchangeRequestedTransactions'] = self.exchange_requested_transactions.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SettlementResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "initiator": obj.get("initiator"), - "exchangeReply": obj.get("exchangeReply"), - "fireblocksInitiatedTransactions": obj.get("fireblocksInitiatedTransactions"), - "exchangeRequestedTransactions": ExchangeSettlementTransactionsResponse.from_dict(obj["exchangeRequestedTransactions"]) if obj.get("exchangeRequestedTransactions") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4Y2hhbmdlX3NldHRsZW1lbnRfdHJhbnNhY3Rpb25zX3Jlc3BvbnNlIGltcG9ydCBFeGNoYW5nZVNldHRsZW1lbnRUcmFuc2FjdGlvbnNSZXNwb25zZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTZXR0bGVtZW50UmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgU2V0dGxlbWVudFJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIGluaXRpYXRvcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIGV4Y2hhbmdlX3JlcGx5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZXhjaGFuZ2VSZXBseSIpCiAgICBmaXJlYmxvY2tzX2luaXRpYXRlZF90cmFuc2FjdGlvbnM6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImZpcmVibG9ja3NJbml0aWF0ZWRUcmFuc2FjdGlvbnMiKQogICAgZXhjaGFuZ2VfcmVxdWVzdGVkX3RyYW5zYWN0aW9uczogT3B0aW9uYWxbRXhjaGFuZ2VTZXR0bGVtZW50VHJhbnNhY3Rpb25zUmVzcG9uc2VdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZXhjaGFuZ2VSZXF1ZXN0ZWRUcmFuc2FjdGlvbnMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJpbml0aWF0b3IiLCAiZXhjaGFuZ2VSZXBseSIsICJmaXJlYmxvY2tzSW5pdGlhdGVkVHJhbnNhY3Rpb25zIiwgImV4Y2hhbmdlUmVxdWVzdGVkVHJhbnNhY3Rpb25zIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXR0bGVtZW50UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBleGNoYW5nZV9yZXF1ZXN0ZWRfdHJhbnNhY3Rpb25zCiAgICAgICAgaWYgc2VsZi5leGNoYW5nZV9yZXF1ZXN0ZWRfdHJhbnNhY3Rpb25zOgogICAgICAgICAgICBfZGljdFsnZXhjaGFuZ2VSZXF1ZXN0ZWRUcmFuc2FjdGlvbnMnXSA9IHNlbGYuZXhjaGFuZ2VfcmVxdWVzdGVkX3RyYW5zYWN0aW9ucy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNldHRsZW1lbnRSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJpbml0aWF0b3IiOiBvYmouZ2V0KCJpbml0aWF0b3IiKSwKICAgICAgICAgICAgImV4Y2hhbmdlUmVwbHkiOiBvYmouZ2V0KCJleGNoYW5nZVJlcGx5IiksCiAgICAgICAgICAgICJmaXJlYmxvY2tzSW5pdGlhdGVkVHJhbnNhY3Rpb25zIjogb2JqLmdldCgiZmlyZWJsb2Nrc0luaXRpYXRlZFRyYW5zYWN0aW9ucyIpLAogICAgICAgICAgICAiZXhjaGFuZ2VSZXF1ZXN0ZWRUcmFuc2FjdGlvbnMiOiBFeGNoYW5nZVNldHRsZW1lbnRUcmFuc2FjdGlvbnNSZXNwb25zZS5mcm9tX2RpY3Qob2JqWyJleGNoYW5nZVJlcXVlc3RlZFRyYW5zYWN0aW9ucyJdKSBpZiBvYmouZ2V0KCJleGNoYW5nZVJlcXVlc3RlZFRyYW5zYWN0aW9ucyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/settlement_source_account.py b/fireblocks/models/settlement_source_account.py index b4211b8f..48f48863 100644 --- a/fireblocks/models/settlement_source_account.py +++ b/fireblocks/models/settlement_source_account.py @@ -1,141 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.external_account import ExternalAccount -from fireblocks.models.platform_account import PlatformAccount -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -SETTLEMENTSOURCEACCOUNT_ONE_OF_SCHEMAS = ["ExternalAccount", "PlatformAccount"] - -class SettlementSourceAccount(BaseModel): - """ - SettlementSourceAccount - """ - # data type: PlatformAccount - oneof_schema_1_validator: Optional[PlatformAccount] = None - # data type: ExternalAccount - oneof_schema_2_validator: Optional[ExternalAccount] = None - actual_instance: Optional[Union[ExternalAccount, PlatformAccount]] = None - one_of_schemas: Set[str] = { "ExternalAccount", "PlatformAccount" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - discriminator_value_class_map: Dict[str, str] = { - } - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = SettlementSourceAccount.model_construct() - error_messages = [] - match = 0 - # validate data type: PlatformAccount - if not isinstance(v, PlatformAccount): - error_messages.append(f"Error! Input type `{type(v)}` is not `PlatformAccount`") - else: - match += 1 - # validate data type: ExternalAccount - if not isinstance(v, ExternalAccount): - error_messages.append(f"Error! Input type `{type(v)}` is not `ExternalAccount`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in SettlementSourceAccount with oneOf schemas: ExternalAccount, PlatformAccount. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in SettlementSourceAccount with oneOf schemas: ExternalAccount, PlatformAccount. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into PlatformAccount - try: - instance.actual_instance = PlatformAccount.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into ExternalAccount - try: - instance.actual_instance = ExternalAccount.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into SettlementSourceAccount with oneOf schemas: ExternalAccount, PlatformAccount. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into SettlementSourceAccount with oneOf schemas: ExternalAccount, PlatformAccount. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], ExternalAccount, PlatformAccount]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXh0ZXJuYWxfYWNjb3VudCBpbXBvcnQgRXh0ZXJuYWxBY2NvdW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGxhdGZvcm1fYWNjb3VudCBpbXBvcnQgUGxhdGZvcm1BY2NvdW50CmZyb20gcHlkYW50aWMgaW1wb3J0IFN0cmljdFN0ciwgRmllbGQKZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uLCBMaXN0LCBTZXQsIE9wdGlvbmFsLCBEaWN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IExpdGVyYWwsIFNlbGYKClNFVFRMRU1FTlRTT1VSQ0VBQ0NPVU5UX09ORV9PRl9TQ0hFTUFTID0gWyJFeHRlcm5hbEFjY291bnQiLCAiUGxhdGZvcm1BY2NvdW50Il0KCmNsYXNzIFNldHRsZW1lbnRTb3VyY2VBY2NvdW50KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNldHRsZW1lbnRTb3VyY2VBY2NvdW50CiAgICAiIiIKICAgICMgZGF0YSB0eXBlOiBQbGF0Zm9ybUFjY291bnQKICAgIG9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvcjogT3B0aW9uYWxbUGxhdGZvcm1BY2NvdW50XSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBFeHRlcm5hbEFjY291bnQKICAgIG9uZW9mX3NjaGVtYV8yX3ZhbGlkYXRvcjogT3B0aW9uYWxbRXh0ZXJuYWxBY2NvdW50XSA9IE5vbmUKICAgIGFjdHVhbF9pbnN0YW5jZTogT3B0aW9uYWxbVW5pb25bRXh0ZXJuYWxBY2NvdW50LCBQbGF0Zm9ybUFjY291bnRdXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgIkV4dGVybmFsQWNjb3VudCIsICJQbGF0Zm9ybUFjY291bnQiIH0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGlzY3JpbWluYXRvcl92YWx1ZV9jbGFzc19tYXA6IERpY3Rbc3RyLCBzdHJdID0gewogICAgfQoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gU2V0dGxlbWVudFNvdXJjZUFjY291bnQubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IFBsYXRmb3JtQWNjb3VudAogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIFBsYXRmb3JtQWNjb3VudCk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgUGxhdGZvcm1BY2NvdW50YCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBFeHRlcm5hbEFjY291bnQKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBFeHRlcm5hbEFjY291bnQpOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYEV4dGVybmFsQWNjb3VudGAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gU2V0dGxlbWVudFNvdXJjZUFjY291bnQgd2l0aCBvbmVPZiBzY2hlbWFzOiBFeHRlcm5hbEFjY291bnQsIFBsYXRmb3JtQWNjb3VudC4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBTZXR0bGVtZW50U291cmNlQWNjb3VudCB3aXRoIG9uZU9mIHNjaGVtYXM6IEV4dGVybmFsQWNjb3VudCwgUGxhdGZvcm1BY2NvdW50LiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gdgoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogVW5pb25bc3RyLCBEaWN0W3N0ciwgQW55XV0pIC0+IFNlbGY6CiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2pzb24oanNvbi5kdW1wcyhvYmopKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgb2JqZWN0IHJlcHJlc2VudGVkIGJ5IHRoZSBqc29uIHN0cmluZyIiIgogICAgICAgIGluc3RhbmNlID0gY2xzLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAoKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBQbGF0Zm9ybUFjY291bnQKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IFBsYXRmb3JtQWNjb3VudC5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBFeHRlcm5hbEFjY291bnQKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IEV4dGVybmFsQWNjb3VudC5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIFNldHRsZW1lbnRTb3VyY2VBY2NvdW50IHdpdGggb25lT2Ygc2NoZW1hczogRXh0ZXJuYWxBY2NvdW50LCBQbGF0Zm9ybUFjY291bnQuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gU2V0dGxlbWVudFNvdXJjZUFjY291bnQgd2l0aCBvbmVPZiBzY2hlbWFzOiBFeHRlcm5hbEFjY291bnQsIFBsYXRmb3JtQWNjb3VudC4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiAibnVsbCIKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2pzb24iKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbik6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKCkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLmFjdHVhbF9pbnN0YW5jZSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBPcHRpb25hbFtVbmlvbltEaWN0W3N0ciwgQW55XSwgRXh0ZXJuYWxBY2NvdW50LCBQbGF0Zm9ybUFjY291bnRdXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgcHJpbWl0aXZlIHR5cGUKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/settlement_type_enum.py b/fireblocks/models/settlement_type_enum.py new file mode 100644 index 00000000..96213443 --- /dev/null +++ b/fireblocks/models/settlement_type_enum.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBTZXR0bGVtZW50VHlwZUVudW0oc3RyLCBFbnVtKToKICAgICIiIgogICAgU2V0dGxlbWVudCB0eXBlIHN1cHBvcnRlZCBieSB0aGUgcHJvdmlkZXIKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBEVlAgPSAnRFZQJwogICAgUFJFRlVOREVEID0gJ1BSRUZVTkRFRCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTZXR0bGVtZW50VHlwZUVudW0gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/side.py b/fireblocks/models/side.py index a237d96e..3985f6a8 100644 --- a/fireblocks/models/side.py +++ b/fireblocks/models/side.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class Side(str, Enum): - """ - BUY: receive base / pay quote; SELL: give base / receive quote. - """ - - """ - allowed enum values - """ - BUY = 'BUY' - SELL = 'SELL' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of Side from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBTaWRlKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIEJVWTogcmVjZWl2ZSBiYXNlIC8gcGF5IHF1b3RlOyBTRUxMOiBnaXZlIGJhc2UgLyByZWNlaXZlIHF1b3RlLgogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIEJVWSA9ICdCVVknCiAgICBTRUxMID0gJ1NFTEwnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2lkZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/signed_message.py b/fireblocks/models/signed_message.py index b83b7ced..a6ae74f7 100644 --- a/fireblocks/models/signed_message.py +++ b/fireblocks/models/signed_message.py @@ -1,110 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.signed_message_signature import SignedMessageSignature -from typing import Optional, Set -from typing_extensions import Self - -class SignedMessage(BaseModel): - """ - A list of signed messages returned for raw signing. - """ # noqa: E501 - content: Optional[StrictStr] = None - algorithm: Optional[StrictStr] = None - derivation_path: Optional[List[Union[StrictFloat, StrictInt]]] = Field(default=None, alias="derivationPath") - signature: Optional[SignedMessageSignature] = None - public_key: Optional[StrictStr] = Field(default=None, alias="publicKey") - __properties: ClassVar[List[str]] = ["content", "algorithm", "derivationPath", "signature", "publicKey"] - - @field_validator('algorithm') - def algorithm_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['MPC_ECDSA_SECP256K1', 'MPC_EDDSA_ED25519']): - raise ValueError("must be one of enum values ('MPC_ECDSA_SECP256K1', 'MPC_EDDSA_ED25519')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SignedMessage from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of signature - if self.signature: - _dict['signature'] = self.signature.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SignedMessage from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "content": obj.get("content"), - "algorithm": obj.get("algorithm"), - "derivationPath": obj.get("derivationPath"), - "signature": SignedMessageSignature.from_dict(obj["signature"]) if obj.get("signature") is not None else None, - "publicKey": obj.get("publicKey") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNpZ25lZF9tZXNzYWdlX3NpZ25hdHVyZSBpbXBvcnQgU2lnbmVkTWVzc2FnZVNpZ25hdHVyZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTaWduZWRNZXNzYWdlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEEgbGlzdCBvZiBzaWduZWQgbWVzc2FnZXMgcmV0dXJuZWQgZm9yIHJhdyBzaWduaW5nLgogICAgIiIiICMgbm9xYTogRTUwMQogICAgY29udGVudDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIGFsZ29yaXRobTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIGRlcml2YXRpb25fcGF0aDogT3B0aW9uYWxbTGlzdFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZGVyaXZhdGlvblBhdGgiKQogICAgc2lnbmF0dXJlOiBPcHRpb25hbFtTaWduZWRNZXNzYWdlU2lnbmF0dXJlXSA9IE5vbmUKICAgIHB1YmxpY19rZXk6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJwdWJsaWNLZXkiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJjb250ZW50IiwgImFsZ29yaXRobSIsICJkZXJpdmF0aW9uUGF0aCIsICJzaWduYXR1cmUiLCAicHVibGljS2V5Il0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhbGdvcml0aG0nKQogICAgZGVmIGFsZ29yaXRobV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnTVBDX0VDRFNBX1NFQ1AyNTZLMScsICdNUENfRUREU0FfRUQyNTUxOSddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdNUENfRUNEU0FfU0VDUDI1NksxJywgJ01QQ19FRERTQV9FRDI1NTE5JykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNpZ25lZE1lc3NhZ2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBzaWduYXR1cmUKICAgICAgICBpZiBzZWxmLnNpZ25hdHVyZToKICAgICAgICAgICAgX2RpY3RbJ3NpZ25hdHVyZSddID0gc2VsZi5zaWduYXR1cmUudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTaWduZWRNZXNzYWdlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImNvbnRlbnQiOiBvYmouZ2V0KCJjb250ZW50IiksCiAgICAgICAgICAgICJhbGdvcml0aG0iOiBvYmouZ2V0KCJhbGdvcml0aG0iKSwKICAgICAgICAgICAgImRlcml2YXRpb25QYXRoIjogb2JqLmdldCgiZGVyaXZhdGlvblBhdGgiKSwKICAgICAgICAgICAgInNpZ25hdHVyZSI6IFNpZ25lZE1lc3NhZ2VTaWduYXR1cmUuZnJvbV9kaWN0KG9ialsic2lnbmF0dXJlIl0pIGlmIG9iai5nZXQoInNpZ25hdHVyZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInB1YmxpY0tleSI6IG9iai5nZXQoInB1YmxpY0tleSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/signed_message_signature.py b/fireblocks/models/signed_message_signature.py index f3d3d11f..fdcd39b4 100644 --- a/fireblocks/models/signed_message_signature.py +++ b/fireblocks/models/signed_message_signature.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class SignedMessageSignature(BaseModel): - """ - SignedMessageSignature - """ # noqa: E501 - full_sig: Optional[StrictStr] = Field(default=None, alias="fullSig") - r: Optional[StrictStr] = None - s: Optional[StrictStr] = None - v: Optional[Union[StrictFloat, StrictInt]] = None - __properties: ClassVar[List[str]] = ["fullSig", "r", "s", "v"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SignedMessageSignature from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SignedMessageSignature from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "fullSig": obj.get("fullSig"), - "r": obj.get("r"), - "s": obj.get("s"), - "v": obj.get("v") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU2lnbmVkTWVzc2FnZVNpZ25hdHVyZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBTaWduZWRNZXNzYWdlU2lnbmF0dXJlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBmdWxsX3NpZzogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImZ1bGxTaWciKQogICAgcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIHM6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICB2OiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImZ1bGxTaWciLCAiciIsICJzIiwgInYiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNpZ25lZE1lc3NhZ2VTaWduYXR1cmUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2lnbmVkTWVzc2FnZVNpZ25hdHVyZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJmdWxsU2lnIjogb2JqLmdldCgiZnVsbFNpZyIpLAogICAgICAgICAgICAiciI6IG9iai5nZXQoInIiKSwKICAgICAgICAgICAgInMiOiBvYmouZ2V0KCJzIiksCiAgICAgICAgICAgICJ2Ijogb2JqLmdldCgidiIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/signing_key_dto.py b/fireblocks/models/signing_key_dto.py index 3402b782..9ee47354 100644 --- a/fireblocks/models/signing_key_dto.py +++ b/fireblocks/models/signing_key_dto.py @@ -1,108 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class SigningKeyDto(BaseModel): - """ - SigningKeyDto - """ # noqa: E501 - key_id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field(description="External signing key id set by Fireblocks.", alias="keyId") - signing_device_key_id: Annotated[str, Field(strict=True, max_length=256)] = Field(description="The ID, name or label of the key specified on the customer's signing device.", alias="signingDeviceKeyId") - public_key_pem: StrictStr = Field(description="PEM encoded public key", alias="publicKeyPem") - algorithm: StrictStr = Field(description="Algorithm and curve used for the signature. Can be: ECDSA_SECP256K1 or EDDSA_ED25519") - enabled: StrictBool = Field(description="True if the signing key is enabled") - vault_account_id: Optional[Union[StrictFloat, StrictInt]] = Field(description="Id of the vault account which this key is linked to", alias="vaultAccountId") - agent_user_id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field(description="Id of user that represent agent servers that can sign with the key", alias="agentUserId") - created_at: Union[StrictFloat, StrictInt] = Field(description="Creation date (timestamp) in milliseconds.", alias="createdAt") - __properties: ClassVar[List[str]] = ["keyId", "signingDeviceKeyId", "publicKeyPem", "algorithm", "enabled", "vaultAccountId", "agentUserId", "createdAt"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SigningKeyDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if vault_account_id (nullable) is None - # and model_fields_set contains the field - if self.vault_account_id is None and "vault_account_id" in self.model_fields_set: - _dict['vaultAccountId'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SigningKeyDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "keyId": obj.get("keyId"), - "signingDeviceKeyId": obj.get("signingDeviceKeyId"), - "publicKeyPem": obj.get("publicKeyPem"), - "algorithm": obj.get("algorithm"), - "enabled": obj.get("enabled"), - "vaultAccountId": obj.get("vaultAccountId"), - "agentUserId": obj.get("agentUserId"), - "createdAt": obj.get("createdAt") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNpZ25pbmdLZXlEdG8oQmFzZU1vZGVsKToKICAgICIiIgogICAgU2lnbmluZ0tleUR0bwogICAgIiIiICMgbm9xYTogRTUwMQogICAga2V5X2lkOiBBbm5vdGF0ZWRbc3RyLCBGaWVsZChtaW5fbGVuZ3RoPTM2LCBzdHJpY3Q9VHJ1ZSwgbWF4X2xlbmd0aD0zNildID0gRmllbGQoZGVzY3JpcHRpb249IkV4dGVybmFsIHNpZ25pbmcga2V5IGlkIHNldCBieSBGaXJlYmxvY2tzLiIsIGFsaWFzPSJrZXlJZCIpCiAgICBzaWduaW5nX2RldmljZV9rZXlfaWQ6IEFubm90YXRlZFtzdHIsIEZpZWxkKHN0cmljdD1UcnVlLCBtYXhfbGVuZ3RoPTI1NildID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCwgbmFtZSBvciBsYWJlbCBvZiB0aGUga2V5IHNwZWNpZmllZCBvbiB0aGUgY3VzdG9tZXIncyBzaWduaW5nIGRldmljZS4iLCBhbGlhcz0ic2lnbmluZ0RldmljZUtleUlkIikKICAgIHB1YmxpY19rZXlfcGVtOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iUEVNIGVuY29kZWQgcHVibGljIGtleSIsIGFsaWFzPSJwdWJsaWNLZXlQZW0iKQogICAgYWxnb3JpdGhtOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQWxnb3JpdGhtIGFuZCBjdXJ2ZSB1c2VkIGZvciB0aGUgc2lnbmF0dXJlLiBDYW4gYmU6IEVDRFNBX1NFQ1AyNTZLMSBvciBFRERTQV9FRDI1NTE5IikKICAgIGVuYWJsZWQ6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iVHJ1ZSBpZiB0aGUgc2lnbmluZyBrZXkgaXMgZW5hYmxlZCIpCiAgICB2YXVsdF9hY2NvdW50X2lkOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iSWQgb2YgdGhlIHZhdWx0IGFjY291bnQgd2hpY2ggdGhpcyBrZXkgaXMgbGlua2VkIHRvIiwgYWxpYXM9InZhdWx0QWNjb3VudElkIikKICAgIGFnZW50X3VzZXJfaWQ6IEFubm90YXRlZFtzdHIsIEZpZWxkKG1pbl9sZW5ndGg9MzYsIHN0cmljdD1UcnVlLCBtYXhfbGVuZ3RoPTM2KV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iSWQgb2YgdXNlciB0aGF0IHJlcHJlc2VudCBhZ2VudCBzZXJ2ZXJzIHRoYXQgY2FuIHNpZ24gd2l0aCB0aGUga2V5IiwgYWxpYXM9ImFnZW50VXNlcklkIikKICAgIGNyZWF0ZWRfYXQ6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoZGVzY3JpcHRpb249IkNyZWF0aW9uIGRhdGUgKHRpbWVzdGFtcCkgaW4gbWlsbGlzZWNvbmRzLiIsIGFsaWFzPSJjcmVhdGVkQXQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJrZXlJZCIsICJzaWduaW5nRGV2aWNlS2V5SWQiLCAicHVibGljS2V5UGVtIiwgImFsZ29yaXRobSIsICJlbmFibGVkIiwgInZhdWx0QWNjb3VudElkIiwgImFnZW50VXNlcklkIiwgImNyZWF0ZWRBdCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU2lnbmluZ0tleUR0byBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiB2YXVsdF9hY2NvdW50X2lkIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi52YXVsdF9hY2NvdW50X2lkIGlzIE5vbmUgYW5kICJ2YXVsdF9hY2NvdW50X2lkIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wyd2YXVsdEFjY291bnRJZCddID0gTm9uZQoKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNpZ25pbmdLZXlEdG8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAia2V5SWQiOiBvYmouZ2V0KCJrZXlJZCIpLAogICAgICAgICAgICAic2lnbmluZ0RldmljZUtleUlkIjogb2JqLmdldCgic2lnbmluZ0RldmljZUtleUlkIiksCiAgICAgICAgICAgICJwdWJsaWNLZXlQZW0iOiBvYmouZ2V0KCJwdWJsaWNLZXlQZW0iKSwKICAgICAgICAgICAgImFsZ29yaXRobSI6IG9iai5nZXQoImFsZ29yaXRobSIpLAogICAgICAgICAgICAiZW5hYmxlZCI6IG9iai5nZXQoImVuYWJsZWQiKSwKICAgICAgICAgICAgInZhdWx0QWNjb3VudElkIjogb2JqLmdldCgidmF1bHRBY2NvdW50SWQiKSwKICAgICAgICAgICAgImFnZW50VXNlcklkIjogb2JqLmdldCgiYWdlbnRVc2VySWQiKSwKICAgICAgICAgICAgImNyZWF0ZWRBdCI6IG9iai5nZXQoImNyZWF0ZWRBdCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_approve_term.py b/fireblocks/models/smart_transfer_approve_term.py index a05eb6b4..59c9d3f9 100644 --- a/fireblocks/models/smart_transfer_approve_term.py +++ b/fireblocks/models/smart_transfer_approve_term.py @@ -1,108 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferApproveTerm(BaseModel): - """ - SmartTransferApproveTerm - """ # noqa: E501 - asset: StrictStr = Field(description="Asset name") - amount: StrictStr = Field(description="Amount") - src_id: StrictStr = Field(description="Id of the vault that is used as the source of the asset.", alias="srcId") - fee: Optional[StrictStr] = Field(default=None, description="Transaction fee") - fee_level: Optional[StrictStr] = Field(default=None, description="Transaction fee level.", alias="feeLevel") - note: Optional[StrictStr] = Field(default=None, description="Transaction note") - __properties: ClassVar[List[str]] = ["asset", "amount", "srcId", "fee", "feeLevel", "note"] - - @field_validator('fee_level') - def fee_level_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['LOW', 'MEDIUM', 'HIGH']): - raise ValueError("must be one of enum values ('LOW', 'MEDIUM', 'HIGH')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferApproveTerm from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferApproveTerm from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "asset": obj.get("asset"), - "amount": obj.get("amount"), - "srcId": obj.get("srcId"), - "fee": obj.get("fee"), - "feeLevel": obj.get("feeLevel"), - "note": obj.get("note") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNtYXJ0VHJhbnNmZXJBcHByb3ZlVGVybShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBTbWFydFRyYW5zZmVyQXBwcm92ZVRlcm0KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFzc2V0OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQXNzZXQgbmFtZSIpCiAgICBhbW91bnQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBbW91bnQiKQogICAgc3JjX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iSWQgb2YgdGhlIHZhdWx0IHRoYXQgaXMgdXNlZCBhcyB0aGUgc291cmNlIG9mIHRoZSBhc3NldC4iLCBhbGlhcz0ic3JjSWQiKQogICAgZmVlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVHJhbnNhY3Rpb24gZmVlIikKICAgIGZlZV9sZXZlbDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRyYW5zYWN0aW9uIGZlZSBsZXZlbC4iLCBhbGlhcz0iZmVlTGV2ZWwiKQogICAgbm90ZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRyYW5zYWN0aW9uIG5vdGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhc3NldCIsICJhbW91bnQiLCAic3JjSWQiLCAiZmVlIiwgImZlZUxldmVsIiwgIm5vdGUiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2ZlZV9sZXZlbCcpCiAgICBkZWYgZmVlX2xldmVsX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydMT1cnLCAnTUVESVVNJywgJ0hJR0gnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnTE9XJywgJ01FRElVTScsICdISUdIJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJBcHByb3ZlVGVybSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyQXBwcm92ZVRlcm0gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYXNzZXQiOiBvYmouZ2V0KCJhc3NldCIpLAogICAgICAgICAgICAiYW1vdW50Ijogb2JqLmdldCgiYW1vdW50IiksCiAgICAgICAgICAgICJzcmNJZCI6IG9iai5nZXQoInNyY0lkIiksCiAgICAgICAgICAgICJmZWUiOiBvYmouZ2V0KCJmZWUiKSwKICAgICAgICAgICAgImZlZUxldmVsIjogb2JqLmdldCgiZmVlTGV2ZWwiKSwKICAgICAgICAgICAgIm5vdGUiOiBvYmouZ2V0KCJub3RlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_bad_request_response.py b/fireblocks/models/smart_transfer_bad_request_response.py index d69345e7..8da4698b 100644 --- a/fireblocks/models/smart_transfer_bad_request_response.py +++ b/fireblocks/models/smart_transfer_bad_request_response.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferBadRequestResponse(BaseModel): - """ - SmartTransferBadRequestResponse - """ # noqa: E501 - message: StrictStr = Field(description="Bad request error message") - code: StrictStr = Field(description="Bad request error code") - __properties: ClassVar[List[str]] = ["message", "code"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferBadRequestResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferBadRequestResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "code": obj.get("code") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNtYXJ0VHJhbnNmZXJCYWRSZXF1ZXN0UmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgU21hcnRUcmFuc2ZlckJhZFJlcXVlc3RSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgbWVzc2FnZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkJhZCByZXF1ZXN0IGVycm9yIG1lc3NhZ2UiKQogICAgY29kZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkJhZCByZXF1ZXN0IGVycm9yIGNvZGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJtZXNzYWdlIiwgImNvZGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJCYWRSZXF1ZXN0UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlckJhZFJlcXVlc3RSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJtZXNzYWdlIjogb2JqLmdldCgibWVzc2FnZSIpLAogICAgICAgICAgICAiY29kZSI6IG9iai5nZXQoImNvZGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_coin_statistic.py b/fireblocks/models/smart_transfer_coin_statistic.py index 0d2a6fe0..b543e267 100644 --- a/fireblocks/models/smart_transfer_coin_statistic.py +++ b/fireblocks/models/smart_transfer_coin_statistic.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferCoinStatistic(BaseModel): - """ - Smart transfer coin statistic - """ # noqa: E501 - asset: Optional[StrictStr] = None - amount: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["asset", "amount"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferCoinStatistic from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferCoinStatistic from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "asset": obj.get("asset"), - "amount": obj.get("amount") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNtYXJ0VHJhbnNmZXJDb2luU3RhdGlzdGljKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNtYXJ0IHRyYW5zZmVyIGNvaW4gc3RhdGlzdGljCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhc3NldDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIGFtb3VudDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYXNzZXQiLCAiYW1vdW50Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyQ29pblN0YXRpc3RpYyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyQ29pblN0YXRpc3RpYyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhc3NldCI6IG9iai5nZXQoImFzc2V0IiksCiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_create_ticket.py b/fireblocks/models/smart_transfer_create_ticket.py index 44e9484c..87b30168 100644 --- a/fireblocks/models/smart_transfer_create_ticket.py +++ b/fireblocks/models/smart_transfer_create_ticket.py @@ -1,116 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing_extensions import Annotated -from fireblocks.models.smart_transfer_create_ticket_term import SmartTransferCreateTicketTerm -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferCreateTicket(BaseModel): - """ - SmartTransferCreateTicket - """ # noqa: E501 - created_by_network_id: StrictStr = Field(alias="createdByNetworkId") - type: StrictStr - expires_in: Optional[Union[Annotated[float, Field(le=48, strict=True, ge=1)], Annotated[int, Field(le=48, strict=True, ge=1)]]] = Field(default=None, description="Number of hours after which an OPEN ticket will expire if no term is funded.", alias="expiresIn") - terms: Optional[List[SmartTransferCreateTicketTerm]] = None - external_ref_id: Optional[Annotated[str, Field(strict=True, max_length=64)]] = Field(default=None, alias="externalRefId") - note: Optional[Annotated[str, Field(strict=True, max_length=1024)]] = None - submit: Optional[StrictBool] = None - __properties: ClassVar[List[str]] = ["createdByNetworkId", "type", "expiresIn", "terms", "externalRefId", "note", "submit"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['ASYNC', 'DVP']): - raise ValueError("must be one of enum values ('ASYNC', 'DVP')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferCreateTicket from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in terms (list) - _items = [] - if self.terms: - for _item_terms in self.terms: - if _item_terms: - _items.append(_item_terms.to_dict()) - _dict['terms'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferCreateTicket from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "createdByNetworkId": obj.get("createdByNetworkId"), - "type": obj.get("type"), - "expiresIn": obj.get("expiresIn"), - "terms": [SmartTransferCreateTicketTerm.from_dict(_item) for _item in obj["terms"]] if obj.get("terms") is not None else None, - "externalRefId": obj.get("externalRefId"), - "note": obj.get("note"), - "submit": obj.get("submit") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9jcmVhdGVfdGlja2V0X3Rlcm0gaW1wb3J0IFNtYXJ0VHJhbnNmZXJDcmVhdGVUaWNrZXRUZXJtCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNtYXJ0VHJhbnNmZXJDcmVhdGVUaWNrZXQoQmFzZU1vZGVsKToKICAgICIiIgogICAgU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldAogICAgIiIiICMgbm9xYTogRTUwMQogICAgY3JlYXRlZF9ieV9uZXR3b3JrX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChhbGlhcz0iY3JlYXRlZEJ5TmV0d29ya0lkIikKICAgIHR5cGU6IFN0cmljdFN0cgogICAgZXhwaXJlc19pbjogT3B0aW9uYWxbVW5pb25bQW5ub3RhdGVkW2Zsb2F0LCBGaWVsZChsZT00OCwgc3RyaWN0PVRydWUsIGdlPTEpXSwgQW5ub3RhdGVkW2ludCwgRmllbGQobGU9NDgsIHN0cmljdD1UcnVlLCBnZT0xKV1dXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik51bWJlciBvZiBob3VycyBhZnRlciB3aGljaCBhbiBPUEVOIHRpY2tldCB3aWxsIGV4cGlyZSBpZiBubyB0ZXJtIGlzIGZ1bmRlZC4iLCBhbGlhcz0iZXhwaXJlc0luIikKICAgIHRlcm1zOiBPcHRpb25hbFtMaXN0W1NtYXJ0VHJhbnNmZXJDcmVhdGVUaWNrZXRUZXJtXV0gPSBOb25lCiAgICBleHRlcm5hbF9yZWZfaWQ6IE9wdGlvbmFsW0Fubm90YXRlZFtzdHIsIEZpZWxkKHN0cmljdD1UcnVlLCBtYXhfbGVuZ3RoPTY0KV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZXh0ZXJuYWxSZWZJZCIpCiAgICBub3RlOiBPcHRpb25hbFtBbm5vdGF0ZWRbc3RyLCBGaWVsZChzdHJpY3Q9VHJ1ZSwgbWF4X2xlbmd0aD0xMDI0KV1dID0gTm9uZQogICAgc3VibWl0OiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiY3JlYXRlZEJ5TmV0d29ya0lkIiwgInR5cGUiLCAiZXhwaXJlc0luIiwgInRlcm1zIiwgImV4dGVybmFsUmVmSWQiLCAibm90ZSIsICJzdWJtaXQiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3R5cGUnKQogICAgZGVmIHR5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnQVNZTkMnLCAnRFZQJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0FTWU5DJywgJ0RWUCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIHRlcm1zIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi50ZXJtczoKICAgICAgICAgICAgZm9yIF9pdGVtX3Rlcm1zIGluIHNlbGYudGVybXM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV90ZXJtczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX3Rlcm1zLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ3Rlcm1zJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJDcmVhdGVUaWNrZXQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiY3JlYXRlZEJ5TmV0d29ya0lkIjogb2JqLmdldCgiY3JlYXRlZEJ5TmV0d29ya0lkIiksCiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAiZXhwaXJlc0luIjogb2JqLmdldCgiZXhwaXJlc0luIiksCiAgICAgICAgICAgICJ0ZXJtcyI6IFtTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0VGVybS5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbInRlcm1zIl1dIGlmIG9iai5nZXQoInRlcm1zIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZXh0ZXJuYWxSZWZJZCI6IG9iai5nZXQoImV4dGVybmFsUmVmSWQiKSwKICAgICAgICAgICAgIm5vdGUiOiBvYmouZ2V0KCJub3RlIiksCiAgICAgICAgICAgICJzdWJtaXQiOiBvYmouZ2V0KCJzdWJtaXQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_create_ticket_term.py b/fireblocks/models/smart_transfer_create_ticket_term.py index e33ec330..80dcfee7 100644 --- a/fireblocks/models/smart_transfer_create_ticket_term.py +++ b/fireblocks/models/smart_transfer_create_ticket_term.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferCreateTicketTerm(BaseModel): - """ - SmartTransferCreateTicketTerm - """ # noqa: E501 - asset: StrictStr = Field(description="Asset name") - amount: StrictStr = Field(description="Amount") - from_network_id: StrictStr = Field(description="Identifier of the origination Network Profile", alias="fromNetworkId") - to_network_id: StrictStr = Field(description="Identifier of the destination Network Profile", alias="toNetworkId") - __properties: ClassVar[List[str]] = ["asset", "amount", "fromNetworkId", "toNetworkId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferCreateTicketTerm from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferCreateTicketTerm from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "asset": obj.get("asset"), - "amount": obj.get("amount"), - "fromNetworkId": obj.get("fromNetworkId"), - "toNetworkId": obj.get("toNetworkId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNtYXJ0VHJhbnNmZXJDcmVhdGVUaWNrZXRUZXJtKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNtYXJ0VHJhbnNmZXJDcmVhdGVUaWNrZXRUZXJtCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhc3NldDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkFzc2V0IG5hbWUiKQogICAgYW1vdW50OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQW1vdW50IikKICAgIGZyb21fbmV0d29ya19pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IklkZW50aWZpZXIgb2YgdGhlIG9yaWdpbmF0aW9uIE5ldHdvcmsgUHJvZmlsZSIsIGFsaWFzPSJmcm9tTmV0d29ya0lkIikKICAgIHRvX25ldHdvcmtfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJZGVudGlmaWVyIG9mIHRoZSBkZXN0aW5hdGlvbiBOZXR3b3JrIFByb2ZpbGUiLCBhbGlhcz0idG9OZXR3b3JrSWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhc3NldCIsICJhbW91bnQiLCAiZnJvbU5ldHdvcmtJZCIsICJ0b05ldHdvcmtJZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldFRlcm0gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldFRlcm0gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYXNzZXQiOiBvYmouZ2V0KCJhc3NldCIpLAogICAgICAgICAgICAiYW1vdW50Ijogb2JqLmdldCgiYW1vdW50IiksCiAgICAgICAgICAgICJmcm9tTmV0d29ya0lkIjogb2JqLmdldCgiZnJvbU5ldHdvcmtJZCIpLAogICAgICAgICAgICAidG9OZXR3b3JrSWQiOiBvYmouZ2V0KCJ0b05ldHdvcmtJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_forbidden_response.py b/fireblocks/models/smart_transfer_forbidden_response.py index 023fde28..51c67af0 100644 --- a/fireblocks/models/smart_transfer_forbidden_response.py +++ b/fireblocks/models/smart_transfer_forbidden_response.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferForbiddenResponse(BaseModel): - """ - SmartTransferForbiddenResponse - """ # noqa: E501 - message: StrictStr = Field(description="Forbidden error code") - code: StrictStr = Field(description="Error code") - __properties: ClassVar[List[str]] = ["message", "code"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferForbiddenResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferForbiddenResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "code": obj.get("code") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNtYXJ0VHJhbnNmZXJGb3JiaWRkZW5SZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBTbWFydFRyYW5zZmVyRm9yYmlkZGVuUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG1lc3NhZ2U6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJGb3JiaWRkZW4gZXJyb3IgY29kZSIpCiAgICBjb2RlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iRXJyb3IgY29kZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm1lc3NhZ2UiLCAiY29kZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlckZvcmJpZGRlblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJGb3JiaWRkZW5SZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJtZXNzYWdlIjogb2JqLmdldCgibWVzc2FnZSIpLAogICAgICAgICAgICAiY29kZSI6IG9iai5nZXQoImNvZGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_fund_dvp_ticket.py b/fireblocks/models/smart_transfer_fund_dvp_ticket.py index af76c1d5..b7371d16 100644 --- a/fireblocks/models/smart_transfer_fund_dvp_ticket.py +++ b/fireblocks/models/smart_transfer_fund_dvp_ticket.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferFundDvpTicket(BaseModel): - """ - SmartTransferFundDvpTicket - """ # noqa: E501 - fee: Optional[StrictStr] = Field(default=None, description="Transaction fee") - fee_level: Optional[StrictStr] = Field(default=None, description="Transaction fee level.", alias="feeLevel") - note: Optional[StrictStr] = Field(default=None, description="Transaction note") - __properties: ClassVar[List[str]] = ["fee", "feeLevel", "note"] - - @field_validator('fee_level') - def fee_level_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['LOW', 'MEDIUM', 'HIGH']): - raise ValueError("must be one of enum values ('LOW', 'MEDIUM', 'HIGH')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferFundDvpTicket from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferFundDvpTicket from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "fee": obj.get("fee"), - "feeLevel": obj.get("feeLevel"), - "note": obj.get("note") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNtYXJ0VHJhbnNmZXJGdW5kRHZwVGlja2V0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNtYXJ0VHJhbnNmZXJGdW5kRHZwVGlja2V0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBmZWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUcmFuc2FjdGlvbiBmZWUiKQogICAgZmVlX2xldmVsOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVHJhbnNhY3Rpb24gZmVlIGxldmVsLiIsIGFsaWFzPSJmZWVMZXZlbCIpCiAgICBub3RlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVHJhbnNhY3Rpb24gbm90ZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImZlZSIsICJmZWVMZXZlbCIsICJub3RlIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdmZWVfbGV2ZWwnKQogICAgZGVmIGZlZV9sZXZlbF92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnTE9XJywgJ01FRElVTScsICdISUdIJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0xPVycsICdNRURJVU0nLCAnSElHSCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyRnVuZER2cFRpY2tldCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyRnVuZER2cFRpY2tldCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJmZWUiOiBvYmouZ2V0KCJmZWUiKSwKICAgICAgICAgICAgImZlZUxldmVsIjogb2JqLmdldCgiZmVlTGV2ZWwiKSwKICAgICAgICAgICAgIm5vdGUiOiBvYmouZ2V0KCJub3RlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_fund_term.py b/fireblocks/models/smart_transfer_fund_term.py index ca491d68..ca97f620 100644 --- a/fireblocks/models/smart_transfer_fund_term.py +++ b/fireblocks/models/smart_transfer_fund_term.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferFundTerm(BaseModel): - """ - SmartTransferFundTerm - """ # noqa: E501 - asset: StrictStr = Field(description="Asset name") - amount: StrictStr = Field(description="Amount") - network_connection_id: StrictStr = Field(description="Id of the network connection used.", alias="networkConnectionId") - src_id: StrictStr = Field(description="Id of the vault that is used as the source of the asset.", alias="srcId") - src_type: StrictStr = Field(description="Source of the asset.", alias="srcType") - fee: Optional[StrictStr] = Field(default=None, description="Transaction fee") - fee_level: Optional[StrictStr] = Field(default=None, description="Transaction fee level.", alias="feeLevel") - note: Optional[StrictStr] = Field(default=None, description="Transaction note") - __properties: ClassVar[List[str]] = ["asset", "amount", "networkConnectionId", "srcId", "srcType", "fee", "feeLevel", "note"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferFundTerm from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferFundTerm from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "asset": obj.get("asset"), - "amount": obj.get("amount"), - "networkConnectionId": obj.get("networkConnectionId"), - "srcId": obj.get("srcId"), - "srcType": obj.get("srcType"), - "fee": obj.get("fee"), - "feeLevel": obj.get("feeLevel"), - "note": obj.get("note") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTbWFydFRyYW5zZmVyRnVuZFRlcm0oQmFzZU1vZGVsKToKICAgICIiIgogICAgU21hcnRUcmFuc2ZlckZ1bmRUZXJtCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhc3NldDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkFzc2V0IG5hbWUiKQogICAgYW1vdW50OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQW1vdW50IikKICAgIG5ldHdvcmtfY29ubmVjdGlvbl9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IklkIG9mIHRoZSBuZXR3b3JrIGNvbm5lY3Rpb24gdXNlZC4iLCBhbGlhcz0ibmV0d29ya0Nvbm5lY3Rpb25JZCIpCiAgICBzcmNfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJZCBvZiB0aGUgdmF1bHQgdGhhdCBpcyB1c2VkIGFzIHRoZSBzb3VyY2Ugb2YgdGhlIGFzc2V0LiIsIGFsaWFzPSJzcmNJZCIpCiAgICBzcmNfdHlwZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlNvdXJjZSBvZiB0aGUgYXNzZXQuIiwgYWxpYXM9InNyY1R5cGUiKQogICAgZmVlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVHJhbnNhY3Rpb24gZmVlIikKICAgIGZlZV9sZXZlbDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRyYW5zYWN0aW9uIGZlZSBsZXZlbC4iLCBhbGlhcz0iZmVlTGV2ZWwiKQogICAgbm90ZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRyYW5zYWN0aW9uIG5vdGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhc3NldCIsICJhbW91bnQiLCAibmV0d29ya0Nvbm5lY3Rpb25JZCIsICJzcmNJZCIsICJzcmNUeXBlIiwgImZlZSIsICJmZWVMZXZlbCIsICJub3RlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyRnVuZFRlcm0gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlckZ1bmRUZXJtIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFzc2V0Ijogb2JqLmdldCgiYXNzZXQiKSwKICAgICAgICAgICAgImFtb3VudCI6IG9iai5nZXQoImFtb3VudCIpLAogICAgICAgICAgICAibmV0d29ya0Nvbm5lY3Rpb25JZCI6IG9iai5nZXQoIm5ldHdvcmtDb25uZWN0aW9uSWQiKSwKICAgICAgICAgICAgInNyY0lkIjogb2JqLmdldCgic3JjSWQiKSwKICAgICAgICAgICAgInNyY1R5cGUiOiBvYmouZ2V0KCJzcmNUeXBlIiksCiAgICAgICAgICAgICJmZWUiOiBvYmouZ2V0KCJmZWUiKSwKICAgICAgICAgICAgImZlZUxldmVsIjogb2JqLmdldCgiZmVlTGV2ZWwiKSwKICAgICAgICAgICAgIm5vdGUiOiBvYmouZ2V0KCJub3RlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_manually_fund_term.py b/fireblocks/models/smart_transfer_manually_fund_term.py index e5fa2eec..d7b6efcb 100644 --- a/fireblocks/models/smart_transfer_manually_fund_term.py +++ b/fireblocks/models/smart_transfer_manually_fund_term.py @@ -1,89 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferManuallyFundTerm(BaseModel): - """ - SmartTransferManuallyFundTerm - """ # noqa: E501 - tx_hash: Annotated[str, Field(strict=True, max_length=64)] = Field(alias="txHash") - __properties: ClassVar[List[str]] = ["txHash"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferManuallyFundTerm from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferManuallyFundTerm from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "txHash": obj.get("txHash") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU21hcnRUcmFuc2Zlck1hbnVhbGx5RnVuZFRlcm0oQmFzZU1vZGVsKToKICAgICIiIgogICAgU21hcnRUcmFuc2Zlck1hbnVhbGx5RnVuZFRlcm0KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR4X2hhc2g6IEFubm90YXRlZFtzdHIsIEZpZWxkKHN0cmljdD1UcnVlLCBtYXhfbGVuZ3RoPTY0KV0gPSBGaWVsZChhbGlhcz0idHhIYXNoIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidHhIYXNoIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyTWFudWFsbHlGdW5kVGVybSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyTWFudWFsbHlGdW5kVGVybSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eEhhc2giOiBvYmouZ2V0KCJ0eEhhc2giKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_not_found_response.py b/fireblocks/models/smart_transfer_not_found_response.py index 7f2165a5..bb984cf1 100644 --- a/fireblocks/models/smart_transfer_not_found_response.py +++ b/fireblocks/models/smart_transfer_not_found_response.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferNotFoundResponse(BaseModel): - """ - SmartTransferNotFoundResponse - """ # noqa: E501 - message: StrictStr = Field(description="Not found error message") - code: StrictStr = Field(description="Error code") - __properties: ClassVar[List[str]] = ["message", "code"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferNotFoundResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferNotFoundResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "code": obj.get("code") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNtYXJ0VHJhbnNmZXJOb3RGb3VuZFJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNtYXJ0VHJhbnNmZXJOb3RGb3VuZFJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBtZXNzYWdlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iTm90IGZvdW5kIGVycm9yIG1lc3NhZ2UiKQogICAgY29kZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkVycm9yIGNvZGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJtZXNzYWdlIiwgImNvZGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJOb3RGb3VuZFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJOb3RGb3VuZFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm1lc3NhZ2UiOiBvYmouZ2V0KCJtZXNzYWdlIiksCiAgICAgICAgICAgICJjb2RlIjogb2JqLmdldCgiY29kZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_set_ticket_expiration.py b/fireblocks/models/smart_transfer_set_ticket_expiration.py index 61022814..cb00bd74 100644 --- a/fireblocks/models/smart_transfer_set_ticket_expiration.py +++ b/fireblocks/models/smart_transfer_set_ticket_expiration.py @@ -1,89 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Union -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferSetTicketExpiration(BaseModel): - """ - SmartTransferSetTicketExpiration - """ # noqa: E501 - expires_in: Union[Annotated[float, Field(le=48, strict=True, ge=1)], Annotated[int, Field(le=48, strict=True, ge=1)]] = Field(description="Sets ticket expiration time (in hours) after a ticket is submitted. If no funding source is set to any term, the ticket will automatically expire after given time.", alias="expiresIn") - __properties: ClassVar[List[str]] = ["expiresIn"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferSetTicketExpiration from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferSetTicketExpiration from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "expiresIn": obj.get("expiresIn") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgVW5pb24KZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHBpcmF0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHBpcmF0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBleHBpcmVzX2luOiBVbmlvbltBbm5vdGF0ZWRbZmxvYXQsIEZpZWxkKGxlPTQ4LCBzdHJpY3Q9VHJ1ZSwgZ2U9MSldLCBBbm5vdGF0ZWRbaW50LCBGaWVsZChsZT00OCwgc3RyaWN0PVRydWUsIGdlPTEpXV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iU2V0cyB0aWNrZXQgZXhwaXJhdGlvbiB0aW1lIChpbiBob3VycykgYWZ0ZXIgYSB0aWNrZXQgaXMgc3VibWl0dGVkLiBJZiBubyBmdW5kaW5nIHNvdXJjZSBpcyBzZXQgdG8gYW55IHRlcm0sIHRoZSB0aWNrZXQgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGlyZSBhZnRlciBnaXZlbiB0aW1lLiIsIGFsaWFzPSJleHBpcmVzSW4iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJleHBpcmVzSW4iXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHBpcmF0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHBpcmF0aW9uIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImV4cGlyZXNJbiI6IG9iai5nZXQoImV4cGlyZXNJbiIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_set_ticket_external_id.py b/fireblocks/models/smart_transfer_set_ticket_external_id.py index e7d549e0..b541224e 100644 --- a/fireblocks/models/smart_transfer_set_ticket_external_id.py +++ b/fireblocks/models/smart_transfer_set_ticket_external_id.py @@ -1,89 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferSetTicketExternalId(BaseModel): - """ - SmartTransferSetTicketExternalId - """ # noqa: E501 - external_ref_id: Annotated[str, Field(min_length=5, strict=True, max_length=64)] = Field(description="Each workspace can set their own external id they want to refer to this Ticket", alias="externalRefId") - __properties: ClassVar[List[str]] = ["externalRefId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferSetTicketExternalId from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferSetTicketExternalId from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "externalRefId": obj.get("externalRefId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU21hcnRUcmFuc2ZlclNldFRpY2tldEV4dGVybmFsSWQoQmFzZU1vZGVsKToKICAgICIiIgogICAgU21hcnRUcmFuc2ZlclNldFRpY2tldEV4dGVybmFsSWQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGV4dGVybmFsX3JlZl9pZDogQW5ub3RhdGVkW3N0ciwgRmllbGQobWluX2xlbmd0aD01LCBzdHJpY3Q9VHJ1ZSwgbWF4X2xlbmd0aD02NCldID0gRmllbGQoZGVzY3JpcHRpb249IkVhY2ggd29ya3NwYWNlIGNhbiBzZXQgdGhlaXIgb3duIGV4dGVybmFsIGlkIHRoZXkgd2FudCB0byByZWZlciB0byB0aGlzIFRpY2tldCIsIGFsaWFzPSJleHRlcm5hbFJlZklkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZXh0ZXJuYWxSZWZJZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclNldFRpY2tldEV4dGVybmFsSWQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclNldFRpY2tldEV4dGVybmFsSWQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZXh0ZXJuYWxSZWZJZCI6IG9iai5nZXQoImV4dGVybmFsUmVmSWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_set_user_groups.py b/fireblocks/models/smart_transfer_set_user_groups.py index 7dbe6d6a..85b5a320 100644 --- a/fireblocks/models/smart_transfer_set_user_groups.py +++ b/fireblocks/models/smart_transfer_set_user_groups.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferSetUserGroups(BaseModel): - """ - SmartTransferSetUserGroups - """ # noqa: E501 - user_group_ids: List[StrictStr] = Field(alias="userGroupIds") - __properties: ClassVar[List[str]] = ["userGroupIds"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferSetUserGroups from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferSetUserGroups from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "userGroupIds": obj.get("userGroupIds") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNtYXJ0VHJhbnNmZXJTZXRVc2VyR3JvdXBzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNtYXJ0VHJhbnNmZXJTZXRVc2VyR3JvdXBzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB1c2VyX2dyb3VwX2lkczogTGlzdFtTdHJpY3RTdHJdID0gRmllbGQoYWxpYXM9InVzZXJHcm91cElkcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInVzZXJHcm91cElkcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclNldFVzZXJHcm91cHMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclNldFVzZXJHcm91cHMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidXNlckdyb3VwSWRzIjogb2JqLmdldCgidXNlckdyb3VwSWRzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_statistic.py b/fireblocks/models/smart_transfer_statistic.py index b1a44de9..abbeac9e 100644 --- a/fireblocks/models/smart_transfer_statistic.py +++ b/fireblocks/models/smart_transfer_statistic.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt -from typing import Any, ClassVar, Dict, List -from fireblocks.models.smart_transfer_statistic_inflow import SmartTransferStatisticInflow -from fireblocks.models.smart_transfer_statistic_outflow import SmartTransferStatisticOutflow -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferStatistic(BaseModel): - """ - Smart transfers statistic - """ # noqa: E501 - inflow: SmartTransferStatisticInflow - outflow: SmartTransferStatisticOutflow - total_active_tickets: StrictInt = Field(description="Number of total active tickets", alias="totalActiveTickets") - total_inactive_tickets: StrictInt = Field(description="Number of total inactive tickets (expired, canceled, completed)", alias="totalInactiveTickets") - __properties: ClassVar[List[str]] = ["inflow", "outflow", "totalActiveTickets", "totalInactiveTickets"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferStatistic from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of inflow - if self.inflow: - _dict['inflow'] = self.inflow.to_dict() - # override the default output from pydantic by calling `to_dict()` of outflow - if self.outflow: - _dict['outflow'] = self.outflow.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferStatistic from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "inflow": SmartTransferStatisticInflow.from_dict(obj["inflow"]) if obj.get("inflow") is not None else None, - "outflow": SmartTransferStatisticOutflow.from_dict(obj["outflow"]) if obj.get("outflow") is not None else None, - "totalActiveTickets": obj.get("totalActiveTickets"), - "totalInactiveTickets": obj.get("totalInactiveTickets") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfc3RhdGlzdGljX2luZmxvdyBpbXBvcnQgU21hcnRUcmFuc2ZlclN0YXRpc3RpY0luZmxvdwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3N0YXRpc3RpY19vdXRmbG93IGltcG9ydCBTbWFydFRyYW5zZmVyU3RhdGlzdGljT3V0Zmxvdwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTbWFydFRyYW5zZmVyU3RhdGlzdGljKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNtYXJ0IHRyYW5zZmVycyBzdGF0aXN0aWMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGluZmxvdzogU21hcnRUcmFuc2ZlclN0YXRpc3RpY0luZmxvdwogICAgb3V0ZmxvdzogU21hcnRUcmFuc2ZlclN0YXRpc3RpY091dGZsb3cKICAgIHRvdGFsX2FjdGl2ZV90aWNrZXRzOiBTdHJpY3RJbnQgPSBGaWVsZChkZXNjcmlwdGlvbj0iTnVtYmVyIG9mIHRvdGFsIGFjdGl2ZSB0aWNrZXRzIiwgYWxpYXM9InRvdGFsQWN0aXZlVGlja2V0cyIpCiAgICB0b3RhbF9pbmFjdGl2ZV90aWNrZXRzOiBTdHJpY3RJbnQgPSBGaWVsZChkZXNjcmlwdGlvbj0iTnVtYmVyIG9mIHRvdGFsIGluYWN0aXZlIHRpY2tldHMgKGV4cGlyZWQsIGNhbmNlbGVkLCBjb21wbGV0ZWQpIiwgYWxpYXM9InRvdGFsSW5hY3RpdmVUaWNrZXRzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaW5mbG93IiwgIm91dGZsb3ciLCAidG90YWxBY3RpdmVUaWNrZXRzIiwgInRvdGFsSW5hY3RpdmVUaWNrZXRzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyU3RhdGlzdGljIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgaW5mbG93CiAgICAgICAgaWYgc2VsZi5pbmZsb3c6CiAgICAgICAgICAgIF9kaWN0WydpbmZsb3cnXSA9IHNlbGYuaW5mbG93LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBvdXRmbG93CiAgICAgICAgaWYgc2VsZi5vdXRmbG93OgogICAgICAgICAgICBfZGljdFsnb3V0ZmxvdyddID0gc2VsZi5vdXRmbG93LnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclN0YXRpc3RpYyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpbmZsb3ciOiBTbWFydFRyYW5zZmVyU3RhdGlzdGljSW5mbG93LmZyb21fZGljdChvYmpbImluZmxvdyJdKSBpZiBvYmouZ2V0KCJpbmZsb3ciKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJvdXRmbG93IjogU21hcnRUcmFuc2ZlclN0YXRpc3RpY091dGZsb3cuZnJvbV9kaWN0KG9ialsib3V0ZmxvdyJdKSBpZiBvYmouZ2V0KCJvdXRmbG93IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAidG90YWxBY3RpdmVUaWNrZXRzIjogb2JqLmdldCgidG90YWxBY3RpdmVUaWNrZXRzIiksCiAgICAgICAgICAgICJ0b3RhbEluYWN0aXZlVGlja2V0cyI6IG9iai5nZXQoInRvdGFsSW5hY3RpdmVUaWNrZXRzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_statistic_inflow.py b/fireblocks/models/smart_transfer_statistic_inflow.py index f85d3ec6..84a94745 100644 --- a/fireblocks/models/smart_transfer_statistic_inflow.py +++ b/fireblocks/models/smart_transfer_statistic_inflow.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.smart_transfer_coin_statistic import SmartTransferCoinStatistic -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferStatisticInflow(BaseModel): - """ - Inflow tickets data - """ # noqa: E501 - coins: Optional[List[SmartTransferCoinStatistic]] = None - ticket_count: Optional[StrictInt] = Field(default=None, alias="ticketCount") - __properties: ClassVar[List[str]] = ["coins", "ticketCount"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferStatisticInflow from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in coins (list) - _items = [] - if self.coins: - for _item_coins in self.coins: - if _item_coins: - _items.append(_item_coins.to_dict()) - _dict['coins'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferStatisticInflow from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "coins": [SmartTransferCoinStatistic.from_dict(_item) for _item in obj["coins"]] if obj.get("coins") is not None else None, - "ticketCount": obj.get("ticketCount") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2NvaW5fc3RhdGlzdGljIGltcG9ydCBTbWFydFRyYW5zZmVyQ29pblN0YXRpc3RpYwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTbWFydFRyYW5zZmVyU3RhdGlzdGljSW5mbG93KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEluZmxvdyB0aWNrZXRzIGRhdGEKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGNvaW5zOiBPcHRpb25hbFtMaXN0W1NtYXJ0VHJhbnNmZXJDb2luU3RhdGlzdGljXV0gPSBOb25lCiAgICB0aWNrZXRfY291bnQ6IE9wdGlvbmFsW1N0cmljdEludF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJ0aWNrZXRDb3VudCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImNvaW5zIiwgInRpY2tldENvdW50Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyU3RhdGlzdGljSW5mbG93IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGNvaW5zIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5jb2luczoKICAgICAgICAgICAgZm9yIF9pdGVtX2NvaW5zIGluIHNlbGYuY29pbnM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9jb2luczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2NvaW5zLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2NvaW5zJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWNJbmZsb3cgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiY29pbnMiOiBbU21hcnRUcmFuc2ZlckNvaW5TdGF0aXN0aWMuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJjb2lucyJdXSBpZiBvYmouZ2V0KCJjb2lucyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInRpY2tldENvdW50Ijogb2JqLmdldCgidGlja2V0Q291bnQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_statistic_outflow.py b/fireblocks/models/smart_transfer_statistic_outflow.py index 3c4a9304..eb30c229 100644 --- a/fireblocks/models/smart_transfer_statistic_outflow.py +++ b/fireblocks/models/smart_transfer_statistic_outflow.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.smart_transfer_coin_statistic import SmartTransferCoinStatistic -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferStatisticOutflow(BaseModel): - """ - Outflow tickets data - """ # noqa: E501 - coins: Optional[List[SmartTransferCoinStatistic]] = None - ticket_count: Optional[StrictInt] = Field(default=None, alias="ticketCount") - __properties: ClassVar[List[str]] = ["coins", "ticketCount"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferStatisticOutflow from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in coins (list) - _items = [] - if self.coins: - for _item_coins in self.coins: - if _item_coins: - _items.append(_item_coins.to_dict()) - _dict['coins'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferStatisticOutflow from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "coins": [SmartTransferCoinStatistic.from_dict(_item) for _item in obj["coins"]] if obj.get("coins") is not None else None, - "ticketCount": obj.get("ticketCount") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2NvaW5fc3RhdGlzdGljIGltcG9ydCBTbWFydFRyYW5zZmVyQ29pblN0YXRpc3RpYwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTbWFydFRyYW5zZmVyU3RhdGlzdGljT3V0ZmxvdyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBPdXRmbG93IHRpY2tldHMgZGF0YQogICAgIiIiICMgbm9xYTogRTUwMQogICAgY29pbnM6IE9wdGlvbmFsW0xpc3RbU21hcnRUcmFuc2ZlckNvaW5TdGF0aXN0aWNdXSA9IE5vbmUKICAgIHRpY2tldF9jb3VudDogT3B0aW9uYWxbU3RyaWN0SW50XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InRpY2tldENvdW50IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiY29pbnMiLCAidGlja2V0Q291bnQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWNPdXRmbG93IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGNvaW5zIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5jb2luczoKICAgICAgICAgICAgZm9yIF9pdGVtX2NvaW5zIGluIHNlbGYuY29pbnM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9jb2luczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2NvaW5zLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2NvaW5zJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWNPdXRmbG93IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImNvaW5zIjogW1NtYXJ0VHJhbnNmZXJDb2luU3RhdGlzdGljLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiY29pbnMiXV0gaWYgb2JqLmdldCgiY29pbnMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJ0aWNrZXRDb3VudCI6IG9iai5nZXQoInRpY2tldENvdW50IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_submit_ticket.py b/fireblocks/models/smart_transfer_submit_ticket.py index 996de954..590cc8d8 100644 --- a/fireblocks/models/smart_transfer_submit_ticket.py +++ b/fireblocks/models/smart_transfer_submit_ticket.py @@ -1,89 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferSubmitTicket(BaseModel): - """ - SmartTransferSubmitTicket - """ # noqa: E501 - expires_in: Optional[Union[Annotated[float, Field(le=48, strict=True, ge=1)], Annotated[int, Field(le=48, strict=True, ge=1)]]] = Field(default=None, description="Sets the ticket expiration time (in hours) after the ticket is submitted. If no funding source is set for any term, the ticket will automatically expire after given time. If expiresIn is not sent ticket will not expire.", alias="expiresIn") - __properties: ClassVar[List[str]] = ["expiresIn"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferSubmitTicket from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferSubmitTicket from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "expiresIn": obj.get("expiresIn") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwsIFVuaW9uCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTbWFydFRyYW5zZmVyU3VibWl0VGlja2V0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNtYXJ0VHJhbnNmZXJTdWJtaXRUaWNrZXQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGV4cGlyZXNfaW46IE9wdGlvbmFsW1VuaW9uW0Fubm90YXRlZFtmbG9hdCwgRmllbGQobGU9NDgsIHN0cmljdD1UcnVlLCBnZT0xKV0sIEFubm90YXRlZFtpbnQsIEZpZWxkKGxlPTQ4LCBzdHJpY3Q9VHJ1ZSwgZ2U9MSldXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTZXRzIHRoZSB0aWNrZXQgZXhwaXJhdGlvbiB0aW1lIChpbiBob3VycykgYWZ0ZXIgdGhlIHRpY2tldCBpcyBzdWJtaXR0ZWQuIElmIG5vIGZ1bmRpbmcgc291cmNlIGlzIHNldCBmb3IgYW55IHRlcm0sIHRoZSB0aWNrZXQgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGlyZSBhZnRlciBnaXZlbiB0aW1lLiBJZiBleHBpcmVzSW4gaXMgbm90IHNlbnQgdGlja2V0IHdpbGwgbm90IGV4cGlyZS4iLCBhbGlhcz0iZXhwaXJlc0luIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZXhwaXJlc0luIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyU3VibWl0VGlja2V0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJTdWJtaXRUaWNrZXQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZXhwaXJlc0luIjogb2JqLmdldCgiZXhwaXJlc0luIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_ticket.py b/fireblocks/models/smart_transfer_ticket.py index 90c44b4b..0205b2fd 100644 --- a/fireblocks/models/smart_transfer_ticket.py +++ b/fireblocks/models/smart_transfer_ticket.py @@ -1,173 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.smart_transfer_ticket_term import SmartTransferTicketTerm -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferTicket(BaseModel): - """ - Data object with result data - """ # noqa: E501 - id: StrictStr = Field(description="Unique id of Smart Transfer ticket") - type: StrictStr = Field(description="Kind of Smart Transfer. Can be either `ASYNC` or `DVP`") - direction: Optional[StrictStr] = Field(default=None, description="Direction of Smart Transfer.") - status: StrictStr = Field(description="Current status of Smart Transfer ticket") - dvp_execution_status: Optional[StrictStr] = Field(default=None, description="Current status of DVP execution", alias="dvpExecutionStatus") - order_created_by_network_id: Optional[StrictStr] = Field(default=None, description="ID of network profile that created order", alias="orderCreatedByNetworkId") - terms: Optional[List[Optional[SmartTransferTicketTerm]]] = Field(default=None, description="Ticket terms (legs)") - expires_in: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Number of hours for expiration.This data is valid only it ticket not in DRAFT state and it will be used to calculate expiresAt value", alias="expiresIn") - expires_at: Optional[datetime] = Field(default=None, description="Date and time at which the ticket will expire if no funding is performed.", alias="expiresAt") - submitted_at: Optional[datetime] = Field(default=None, description="Date and time when ticket is submitted.", alias="submittedAt") - expired_at: Optional[datetime] = Field(default=None, description="Date and time when ticket is expired.", alias="expiredAt") - canceled_at: Optional[datetime] = Field(default=None, description="Date and time when ticket is canceled.", alias="canceledAt") - fulfilled_at: Optional[datetime] = Field(default=None, description="Date and time when ticket is fulfilled.", alias="fulfilledAt") - external_ref_id: Optional[StrictStr] = Field(default=None, description="External Ref ID for Smart Transfer ticket.", alias="externalRefId") - note: Optional[StrictStr] = Field(default=None, description="Note") - created_by_network_id: StrictStr = Field(description="ID of network profile that created ticket", alias="createdByNetworkId") - created_by_network_id_name: StrictStr = Field(description="Name of network profile that created ticket", alias="createdByNetworkIdName") - canceled_by_network_id_name: Optional[StrictStr] = Field(default=None, description="Name of network profile that canceled ticket", alias="canceledByNetworkIdName") - created_at: datetime = Field(description="Date and time at which the ticket is created.", alias="createdAt") - updated_at: datetime = Field(description="Date and time of last ticket update.", alias="updatedAt") - canceled_by_me: Optional[StrictBool] = Field(default=None, alias="canceledByMe") - created_by_me: Optional[StrictBool] = Field(default=None, alias="createdByMe") - __properties: ClassVar[List[str]] = ["id", "type", "direction", "status", "dvpExecutionStatus", "orderCreatedByNetworkId", "terms", "expiresIn", "expiresAt", "submittedAt", "expiredAt", "canceledAt", "fulfilledAt", "externalRefId", "note", "createdByNetworkId", "createdByNetworkIdName", "canceledByNetworkIdName", "createdAt", "updatedAt", "canceledByMe", "createdByMe"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['ASYNC', 'DVP']): - raise ValueError("must be one of enum values ('ASYNC', 'DVP')") - return value - - @field_validator('direction') - def direction_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['EXCHANGE', 'SEND', 'RECEIVE', 'INTERMEDIATE']): - raise ValueError("must be one of enum values ('EXCHANGE', 'SEND', 'RECEIVE', 'INTERMEDIATE')") - return value - - @field_validator('status') - def status_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['DRAFT', 'PENDING_APPROVAL', 'OPEN', 'IN_SETTLEMENT', 'FULFILLED', 'EXPIRED', 'CANCELED']): - raise ValueError("must be one of enum values ('DRAFT', 'PENDING_APPROVAL', 'OPEN', 'IN_SETTLEMENT', 'FULFILLED', 'EXPIRED', 'CANCELED')") - return value - - @field_validator('dvp_execution_status') - def dvp_execution_status_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['STARTED', 'CREATING_ORDER', 'ORDER_CREATED', 'FULFILLING', 'FULFILLING_ORDER_FAILED', 'CREATING_ORDER_FAILED', 'FULFILLED']): - raise ValueError("must be one of enum values ('STARTED', 'CREATING_ORDER', 'ORDER_CREATED', 'FULFILLING', 'FULFILLING_ORDER_FAILED', 'CREATING_ORDER_FAILED', 'FULFILLED')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferTicket from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in terms (list) - _items = [] - if self.terms: - for _item_terms in self.terms: - if _item_terms: - _items.append(_item_terms.to_dict()) - _dict['terms'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferTicket from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "type": obj.get("type"), - "direction": obj.get("direction"), - "status": obj.get("status"), - "dvpExecutionStatus": obj.get("dvpExecutionStatus"), - "orderCreatedByNetworkId": obj.get("orderCreatedByNetworkId"), - "terms": [SmartTransferTicketTerm.from_dict(_item) for _item in obj["terms"]] if obj.get("terms") is not None else None, - "expiresIn": obj.get("expiresIn"), - "expiresAt": obj.get("expiresAt"), - "submittedAt": obj.get("submittedAt"), - "expiredAt": obj.get("expiredAt"), - "canceledAt": obj.get("canceledAt"), - "fulfilledAt": obj.get("fulfilledAt"), - "externalRefId": obj.get("externalRefId"), - "note": obj.get("note"), - "createdByNetworkId": obj.get("createdByNetworkId"), - "createdByNetworkIdName": obj.get("createdByNetworkIdName"), - "canceledByNetworkIdName": obj.get("canceledByNetworkIdName"), - "createdAt": obj.get("createdAt"), - "updatedAt": obj.get("updatedAt"), - "canceledByMe": obj.get("canceledByMe"), - "createdByMe": obj.get("createdByMe") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldF90ZXJtIGltcG9ydCBTbWFydFRyYW5zZmVyVGlja2V0VGVybQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTbWFydFRyYW5zZmVyVGlja2V0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIERhdGEgb2JqZWN0IHdpdGggcmVzdWx0IGRhdGEKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVW5pcXVlIGlkIG9mIFNtYXJ0IFRyYW5zZmVyIHRpY2tldCIpCiAgICB0eXBlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iS2luZCBvZiBTbWFydCBUcmFuc2Zlci4gQ2FuIGJlIGVpdGhlciBgQVNZTkNgIG9yIGBEVlBgIikKICAgIGRpcmVjdGlvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRpcmVjdGlvbiBvZiBTbWFydCBUcmFuc2Zlci4iKQogICAgc3RhdHVzOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQ3VycmVudCBzdGF0dXMgb2YgU21hcnQgVHJhbnNmZXIgdGlja2V0IikKICAgIGR2cF9leGVjdXRpb25fc3RhdHVzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3VycmVudCBzdGF0dXMgb2YgRFZQIGV4ZWN1dGlvbiIsIGFsaWFzPSJkdnBFeGVjdXRpb25TdGF0dXMiKQogICAgb3JkZXJfY3JlYXRlZF9ieV9uZXR3b3JrX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSUQgb2YgbmV0d29yayBwcm9maWxlIHRoYXQgY3JlYXRlZCBvcmRlciIsIGFsaWFzPSJvcmRlckNyZWF0ZWRCeU5ldHdvcmtJZCIpCiAgICB0ZXJtczogT3B0aW9uYWxbTGlzdFtPcHRpb25hbFtTbWFydFRyYW5zZmVyVGlja2V0VGVybV1dXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRpY2tldCB0ZXJtcyAobGVncykiKQogICAgZXhwaXJlc19pbjogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTnVtYmVyIG9mIGhvdXJzIGZvciBleHBpcmF0aW9uLlRoaXMgZGF0YSBpcyB2YWxpZCBvbmx5IGl0IHRpY2tldCBub3QgaW4gRFJBRlQgc3RhdGUgYW5kIGl0IHdpbGwgYmUgdXNlZCB0byBjYWxjdWxhdGUgZXhwaXJlc0F0IHZhbHVlIiwgYWxpYXM9ImV4cGlyZXNJbiIpCiAgICBleHBpcmVzX2F0OiBPcHRpb25hbFtkYXRldGltZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEYXRlIGFuZCB0aW1lIGF0IHdoaWNoIHRoZSB0aWNrZXQgd2lsbCBleHBpcmUgaWYgbm8gZnVuZGluZyBpcyBwZXJmb3JtZWQuIiwgYWxpYXM9ImV4cGlyZXNBdCIpCiAgICBzdWJtaXR0ZWRfYXQ6IE9wdGlvbmFsW2RhdGV0aW1lXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRhdGUgYW5kIHRpbWUgd2hlbiB0aWNrZXQgaXMgc3VibWl0dGVkLiIsIGFsaWFzPSJzdWJtaXR0ZWRBdCIpCiAgICBleHBpcmVkX2F0OiBPcHRpb25hbFtkYXRldGltZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEYXRlIGFuZCB0aW1lIHdoZW4gdGlja2V0IGlzIGV4cGlyZWQuIiwgYWxpYXM9ImV4cGlyZWRBdCIpCiAgICBjYW5jZWxlZF9hdDogT3B0aW9uYWxbZGF0ZXRpbWVdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGF0ZSBhbmQgdGltZSB3aGVuIHRpY2tldCBpcyBjYW5jZWxlZC4iLCBhbGlhcz0iY2FuY2VsZWRBdCIpCiAgICBmdWxmaWxsZWRfYXQ6IE9wdGlvbmFsW2RhdGV0aW1lXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRhdGUgYW5kIHRpbWUgd2hlbiB0aWNrZXQgaXMgZnVsZmlsbGVkLiIsIGFsaWFzPSJmdWxmaWxsZWRBdCIpCiAgICBleHRlcm5hbF9yZWZfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJFeHRlcm5hbCBSZWYgSUQgZm9yIFNtYXJ0IFRyYW5zZmVyIHRpY2tldC4iLCBhbGlhcz0iZXh0ZXJuYWxSZWZJZCIpCiAgICBub3RlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTm90ZSIpCiAgICBjcmVhdGVkX2J5X25ldHdvcmtfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJRCBvZiBuZXR3b3JrIHByb2ZpbGUgdGhhdCBjcmVhdGVkIHRpY2tldCIsIGFsaWFzPSJjcmVhdGVkQnlOZXR3b3JrSWQiKQogICAgY3JlYXRlZF9ieV9uZXR3b3JrX2lkX25hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJOYW1lIG9mIG5ldHdvcmsgcHJvZmlsZSB0aGF0IGNyZWF0ZWQgdGlja2V0IiwgYWxpYXM9ImNyZWF0ZWRCeU5ldHdvcmtJZE5hbWUiKQogICAgY2FuY2VsZWRfYnlfbmV0d29ya19pZF9uYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTmFtZSBvZiBuZXR3b3JrIHByb2ZpbGUgdGhhdCBjYW5jZWxlZCB0aWNrZXQiLCBhbGlhcz0iY2FuY2VsZWRCeU5ldHdvcmtJZE5hbWUiKQogICAgY3JlYXRlZF9hdDogZGF0ZXRpbWUgPSBGaWVsZChkZXNjcmlwdGlvbj0iRGF0ZSBhbmQgdGltZSBhdCB3aGljaCB0aGUgdGlja2V0IGlzIGNyZWF0ZWQuIiwgYWxpYXM9ImNyZWF0ZWRBdCIpCiAgICB1cGRhdGVkX2F0OiBkYXRldGltZSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJEYXRlIGFuZCB0aW1lIG9mIGxhc3QgdGlja2V0IHVwZGF0ZS4iLCBhbGlhcz0idXBkYXRlZEF0IikKICAgIGNhbmNlbGVkX2J5X21lOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImNhbmNlbGVkQnlNZSIpCiAgICBjcmVhdGVkX2J5X21lOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImNyZWF0ZWRCeU1lIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAidHlwZSIsICJkaXJlY3Rpb24iLCAic3RhdHVzIiwgImR2cEV4ZWN1dGlvblN0YXR1cyIsICJvcmRlckNyZWF0ZWRCeU5ldHdvcmtJZCIsICJ0ZXJtcyIsICJleHBpcmVzSW4iLCAiZXhwaXJlc0F0IiwgInN1Ym1pdHRlZEF0IiwgImV4cGlyZWRBdCIsICJjYW5jZWxlZEF0IiwgImZ1bGZpbGxlZEF0IiwgImV4dGVybmFsUmVmSWQiLCAibm90ZSIsICJjcmVhdGVkQnlOZXR3b3JrSWQiLCAiY3JlYXRlZEJ5TmV0d29ya0lkTmFtZSIsICJjYW5jZWxlZEJ5TmV0d29ya0lkTmFtZSIsICJjcmVhdGVkQXQiLCAidXBkYXRlZEF0IiwgImNhbmNlbGVkQnlNZSIsICJjcmVhdGVkQnlNZSJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigndHlwZScpCiAgICBkZWYgdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydBU1lOQycsICdEVlAnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnQVNZTkMnLCAnRFZQJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2RpcmVjdGlvbicpCiAgICBkZWYgZGlyZWN0aW9uX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydFWENIQU5HRScsICdTRU5EJywgJ1JFQ0VJVkUnLCAnSU5URVJNRURJQVRFJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0VYQ0hBTkdFJywgJ1NFTkQnLCAnUkVDRUlWRScsICdJTlRFUk1FRElBVEUnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgQGZpZWxkX3ZhbGlkYXRvcignc3RhdHVzJykKICAgIGRlZiBzdGF0dXNfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnRFJBRlQnLCAnUEVORElOR19BUFBST1ZBTCcsICdPUEVOJywgJ0lOX1NFVFRMRU1FTlQnLCAnRlVMRklMTEVEJywgJ0VYUElSRUQnLCAnQ0FOQ0VMRUQnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnRFJBRlQnLCAnUEVORElOR19BUFBST1ZBTCcsICdPUEVOJywgJ0lOX1NFVFRMRU1FTlQnLCAnRlVMRklMTEVEJywgJ0VYUElSRUQnLCAnQ0FOQ0VMRUQnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgQGZpZWxkX3ZhbGlkYXRvcignZHZwX2V4ZWN1dGlvbl9zdGF0dXMnKQogICAgZGVmIGR2cF9leGVjdXRpb25fc3RhdHVzX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydTVEFSVEVEJywgJ0NSRUFUSU5HX09SREVSJywgJ09SREVSX0NSRUFURUQnLCAnRlVMRklMTElORycsICdGVUxGSUxMSU5HX09SREVSX0ZBSUxFRCcsICdDUkVBVElOR19PUkRFUl9GQUlMRUQnLCAnRlVMRklMTEVEJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ1NUQVJURUQnLCAnQ1JFQVRJTkdfT1JERVInLCAnT1JERVJfQ1JFQVRFRCcsICdGVUxGSUxMSU5HJywgJ0ZVTEZJTExJTkdfT1JERVJfRkFJTEVEJywgJ0NSRUFUSU5HX09SREVSX0ZBSUxFRCcsICdGVUxGSUxMRUQnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclRpY2tldCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiB0ZXJtcyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYudGVybXM6CiAgICAgICAgICAgIGZvciBfaXRlbV90ZXJtcyBpbiBzZWxmLnRlcm1zOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fdGVybXM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV90ZXJtcy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0Wyd0ZXJtcyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyVGlja2V0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIiksCiAgICAgICAgICAgICJkaXJlY3Rpb24iOiBvYmouZ2V0KCJkaXJlY3Rpb24iKSwKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAiZHZwRXhlY3V0aW9uU3RhdHVzIjogb2JqLmdldCgiZHZwRXhlY3V0aW9uU3RhdHVzIiksCiAgICAgICAgICAgICJvcmRlckNyZWF0ZWRCeU5ldHdvcmtJZCI6IG9iai5nZXQoIm9yZGVyQ3JlYXRlZEJ5TmV0d29ya0lkIiksCiAgICAgICAgICAgICJ0ZXJtcyI6IFtTbWFydFRyYW5zZmVyVGlja2V0VGVybS5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbInRlcm1zIl1dIGlmIG9iai5nZXQoInRlcm1zIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZXhwaXJlc0luIjogb2JqLmdldCgiZXhwaXJlc0luIiksCiAgICAgICAgICAgICJleHBpcmVzQXQiOiBvYmouZ2V0KCJleHBpcmVzQXQiKSwKICAgICAgICAgICAgInN1Ym1pdHRlZEF0Ijogb2JqLmdldCgic3VibWl0dGVkQXQiKSwKICAgICAgICAgICAgImV4cGlyZWRBdCI6IG9iai5nZXQoImV4cGlyZWRBdCIpLAogICAgICAgICAgICAiY2FuY2VsZWRBdCI6IG9iai5nZXQoImNhbmNlbGVkQXQiKSwKICAgICAgICAgICAgImZ1bGZpbGxlZEF0Ijogb2JqLmdldCgiZnVsZmlsbGVkQXQiKSwKICAgICAgICAgICAgImV4dGVybmFsUmVmSWQiOiBvYmouZ2V0KCJleHRlcm5hbFJlZklkIiksCiAgICAgICAgICAgICJub3RlIjogb2JqLmdldCgibm90ZSIpLAogICAgICAgICAgICAiY3JlYXRlZEJ5TmV0d29ya0lkIjogb2JqLmdldCgiY3JlYXRlZEJ5TmV0d29ya0lkIiksCiAgICAgICAgICAgICJjcmVhdGVkQnlOZXR3b3JrSWROYW1lIjogb2JqLmdldCgiY3JlYXRlZEJ5TmV0d29ya0lkTmFtZSIpLAogICAgICAgICAgICAiY2FuY2VsZWRCeU5ldHdvcmtJZE5hbWUiOiBvYmouZ2V0KCJjYW5jZWxlZEJ5TmV0d29ya0lkTmFtZSIpLAogICAgICAgICAgICAiY3JlYXRlZEF0Ijogb2JqLmdldCgiY3JlYXRlZEF0IiksCiAgICAgICAgICAgICJ1cGRhdGVkQXQiOiBvYmouZ2V0KCJ1cGRhdGVkQXQiKSwKICAgICAgICAgICAgImNhbmNlbGVkQnlNZSI6IG9iai5nZXQoImNhbmNlbGVkQnlNZSIpLAogICAgICAgICAgICAiY3JlYXRlZEJ5TWUiOiBvYmouZ2V0KCJjcmVhdGVkQnlNZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_ticket_filtered_response.py b/fireblocks/models/smart_transfer_ticket_filtered_response.py index c60be0e3..ea2a9251 100644 --- a/fireblocks/models/smart_transfer_ticket_filtered_response.py +++ b/fireblocks/models/smart_transfer_ticket_filtered_response.py @@ -1,105 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.smart_transfer_ticket import SmartTransferTicket -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferTicketFilteredResponse(BaseModel): - """ - SmartTransferTicketFilteredResponse - """ # noqa: E501 - message: Optional[StrictStr] = Field(description="Result message") - after: StrictStr = Field(description="Unique id of next filtered result") - data: List[Optional[SmartTransferTicket]] = Field(description="Result that match given query criteria") - __properties: ClassVar[List[str]] = ["message", "after", "data"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferTicketFilteredResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # set to None if message (nullable) is None - # and model_fields_set contains the field - if self.message is None and "message" in self.model_fields_set: - _dict['message'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferTicketFilteredResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "after": obj.get("after"), - "data": [SmartTransferTicket.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldCBpbXBvcnQgU21hcnRUcmFuc2ZlclRpY2tldApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTbWFydFRyYW5zZmVyVGlja2V0RmlsdGVyZWRSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBTbWFydFRyYW5zZmVyVGlja2V0RmlsdGVyZWRSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgbWVzc2FnZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJSZXN1bHQgbWVzc2FnZSIpCiAgICBhZnRlcjogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlVuaXF1ZSBpZCBvZiBuZXh0IGZpbHRlcmVkIHJlc3VsdCIpCiAgICBkYXRhOiBMaXN0W09wdGlvbmFsW1NtYXJ0VHJhbnNmZXJUaWNrZXRdXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJSZXN1bHQgdGhhdCBtYXRjaCBnaXZlbiBxdWVyeSBjcml0ZXJpYSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm1lc3NhZ2UiLCAiYWZ0ZXIiLCAiZGF0YSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclRpY2tldEZpbHRlcmVkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGF0YSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgZm9yIF9pdGVtX2RhdGEgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZGF0YToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2RhdGEudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gX2l0ZW1zCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBtZXNzYWdlIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5tZXNzYWdlIGlzIE5vbmUgYW5kICJtZXNzYWdlIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydtZXNzYWdlJ10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclRpY2tldEZpbHRlcmVkUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibWVzc2FnZSI6IG9iai5nZXQoIm1lc3NhZ2UiKSwKICAgICAgICAgICAgImFmdGVyIjogb2JqLmdldCgiYWZ0ZXIiKSwKICAgICAgICAgICAgImRhdGEiOiBbU21hcnRUcmFuc2ZlclRpY2tldC5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImRhdGEiXV0gaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_ticket_response.py b/fireblocks/models/smart_transfer_ticket_response.py index f4f123a8..7dbbede5 100644 --- a/fireblocks/models/smart_transfer_ticket_response.py +++ b/fireblocks/models/smart_transfer_ticket_response.py @@ -1,104 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.smart_transfer_ticket import SmartTransferTicket -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferTicketResponse(BaseModel): - """ - SmartTransferTicketResponse - """ # noqa: E501 - message: Optional[StrictStr] = Field(description="Result message") - data: Optional[SmartTransferTicket] = None - __properties: ClassVar[List[str]] = ["message", "data"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferTicketResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of data - if self.data: - _dict['data'] = self.data.to_dict() - # set to None if message (nullable) is None - # and model_fields_set contains the field - if self.message is None and "message" in self.model_fields_set: - _dict['message'] = None - - # set to None if data (nullable) is None - # and model_fields_set contains the field - if self.data is None and "data" in self.model_fields_set: - _dict['data'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferTicketResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "data": SmartTransferTicket.from_dict(obj["data"]) if obj.get("data") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldCBpbXBvcnQgU21hcnRUcmFuc2ZlclRpY2tldApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBtZXNzYWdlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVzY3JpcHRpb249IlJlc3VsdCBtZXNzYWdlIikKICAgIGRhdGE6IE9wdGlvbmFsW1NtYXJ0VHJhbnNmZXJUaWNrZXRdID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJtZXNzYWdlIiwgImRhdGEiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGRhdGEKICAgICAgICBpZiBzZWxmLmRhdGE6CiAgICAgICAgICAgIF9kaWN0WydkYXRhJ10gPSBzZWxmLmRhdGEudG9fZGljdCgpCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBtZXNzYWdlIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5tZXNzYWdlIGlzIE5vbmUgYW5kICJtZXNzYWdlIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydtZXNzYWdlJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgZGF0YSAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuZGF0YSBpcyBOb25lIGFuZCAiZGF0YSIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gTm9uZQoKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJtZXNzYWdlIjogb2JqLmdldCgibWVzc2FnZSIpLAogICAgICAgICAgICAiZGF0YSI6IFNtYXJ0VHJhbnNmZXJUaWNrZXQuZnJvbV9kaWN0KG9ialsiZGF0YSJdKSBpZiBvYmouZ2V0KCJkYXRhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_ticket_term.py b/fireblocks/models/smart_transfer_ticket_term.py index a3f39e2c..1496f05f 100644 --- a/fireblocks/models/smart_transfer_ticket_term.py +++ b/fireblocks/models/smart_transfer_ticket_term.py @@ -1,151 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferTicketTerm(BaseModel): - """ - Data object with result data - """ # noqa: E501 - id: StrictStr = Field(description="Unique id of Smart Transfer ticket term") - ticket_id: StrictStr = Field(description="Unique id of Smart Transfer ticket", alias="ticketId") - asset: StrictStr = Field(description="Asset name") - amount: StrictStr = Field(description="Amount") - dvp_src_dst_vault_id: Optional[StrictStr] = Field(default=None, description="Identifier of the source and destination vault for DVP execution", alias="dvpSrcDstVaultId") - amount_usd: Optional[StrictStr] = Field(default=None, description="Amount USD", alias="amountUsd") - from_network_id: StrictStr = Field(description="Identifier of the origination Network Profile", alias="fromNetworkId") - from_network_id_name: StrictStr = Field(description="Source network name", alias="fromNetworkIdName") - to_network_id: StrictStr = Field(description="Identifier of the destination Network Profile", alias="toNetworkId") - to_network_id_name: StrictStr = Field(description="Destination network name", alias="toNetworkIdName") - tx_hash: Optional[StrictStr] = Field(description="Blockchain TX hash", alias="txHash") - fb_tx_id: Optional[StrictStr] = Field(description="Fireblocks transaction ID. It is set when the funding transaction is created.", alias="fbTxId") - tx_status: Optional[StrictStr] = Field(description="Ticket term transaction status", alias="txStatus") - status: StrictStr = Field(description="Ticket term status") - created_at: datetime = Field(description="Date and time when the term is created.", alias="createdAt") - updated_at: datetime = Field(description="Date and time of last term update.", alias="updatedAt") - __properties: ClassVar[List[str]] = ["id", "ticketId", "asset", "amount", "dvpSrcDstVaultId", "amountUsd", "fromNetworkId", "fromNetworkIdName", "toNetworkId", "toNetworkIdName", "txHash", "fbTxId", "txStatus", "status", "createdAt", "updatedAt"] - - @field_validator('tx_status') - def tx_status_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['queued', 'submitted', 'pendingSignature', 'pendingAuthorization', 'broadcasting', 'confirming', 'pendingAmlScreening', 'completed', 'cancelled', 'failed', 'rejected', 'blocked', 'thirdPartyPendingManualApproval', 'thirdPartyPending', 'partiallyCompleted', 'cancelling']): - raise ValueError("must be one of enum values ('queued', 'submitted', 'pendingSignature', 'pendingAuthorization', 'broadcasting', 'confirming', 'pendingAmlScreening', 'completed', 'cancelled', 'failed', 'rejected', 'blocked', 'thirdPartyPendingManualApproval', 'thirdPartyPending', 'partiallyCompleted', 'cancelling')") - return value - - @field_validator('status') - def status_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['CREATED', 'FUNDING', 'FUNDING_FAILED', 'FUNDED', 'REJECTED']): - raise ValueError("must be one of enum values ('CREATED', 'FUNDING', 'FUNDING_FAILED', 'FUNDED', 'REJECTED')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferTicketTerm from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if tx_hash (nullable) is None - # and model_fields_set contains the field - if self.tx_hash is None and "tx_hash" in self.model_fields_set: - _dict['txHash'] = None - - # set to None if fb_tx_id (nullable) is None - # and model_fields_set contains the field - if self.fb_tx_id is None and "fb_tx_id" in self.model_fields_set: - _dict['fbTxId'] = None - - # set to None if tx_status (nullable) is None - # and model_fields_set contains the field - if self.tx_status is None and "tx_status" in self.model_fields_set: - _dict['txStatus'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferTicketTerm from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "ticketId": obj.get("ticketId"), - "asset": obj.get("asset"), - "amount": obj.get("amount"), - "dvpSrcDstVaultId": obj.get("dvpSrcDstVaultId"), - "amountUsd": obj.get("amountUsd"), - "fromNetworkId": obj.get("fromNetworkId"), - "fromNetworkIdName": obj.get("fromNetworkIdName"), - "toNetworkId": obj.get("toNetworkId"), - "toNetworkIdName": obj.get("toNetworkIdName"), - "txHash": obj.get("txHash"), - "fbTxId": obj.get("fbTxId"), - "txStatus": obj.get("txStatus"), - "status": obj.get("status"), - "createdAt": obj.get("createdAt"), - "updatedAt": obj.get("updatedAt") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIERhdGEgb2JqZWN0IHdpdGggcmVzdWx0IGRhdGEKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVW5pcXVlIGlkIG9mIFNtYXJ0IFRyYW5zZmVyIHRpY2tldCB0ZXJtIikKICAgIHRpY2tldF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlVuaXF1ZSBpZCBvZiBTbWFydCBUcmFuc2ZlciB0aWNrZXQiLCBhbGlhcz0idGlja2V0SWQiKQogICAgYXNzZXQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBc3NldCBuYW1lIikKICAgIGFtb3VudDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkFtb3VudCIpCiAgICBkdnBfc3JjX2RzdF92YXVsdF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IklkZW50aWZpZXIgb2YgdGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gdmF1bHQgZm9yIERWUCBleGVjdXRpb24iLCBhbGlhcz0iZHZwU3JjRHN0VmF1bHRJZCIpCiAgICBhbW91bnRfdXNkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQW1vdW50IFVTRCIsIGFsaWFzPSJhbW91bnRVc2QiKQogICAgZnJvbV9uZXR3b3JrX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iSWRlbnRpZmllciBvZiB0aGUgb3JpZ2luYXRpb24gTmV0d29yayBQcm9maWxlIiwgYWxpYXM9ImZyb21OZXR3b3JrSWQiKQogICAgZnJvbV9uZXR3b3JrX2lkX25hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJTb3VyY2UgbmV0d29yayBuYW1lIiwgYWxpYXM9ImZyb21OZXR3b3JrSWROYW1lIikKICAgIHRvX25ldHdvcmtfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJZGVudGlmaWVyIG9mIHRoZSBkZXN0aW5hdGlvbiBOZXR3b3JrIFByb2ZpbGUiLCBhbGlhcz0idG9OZXR3b3JrSWQiKQogICAgdG9fbmV0d29ya19pZF9uYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iRGVzdGluYXRpb24gbmV0d29yayBuYW1lIiwgYWxpYXM9InRvTmV0d29ya0lkTmFtZSIpCiAgICB0eF9oYXNoOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVzY3JpcHRpb249IkJsb2NrY2hhaW4gVFggaGFzaCIsIGFsaWFzPSJ0eEhhc2giKQogICAgZmJfdHhfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZXNjcmlwdGlvbj0iRmlyZWJsb2NrcyB0cmFuc2FjdGlvbiBJRC4gSXQgaXMgc2V0IHdoZW4gdGhlIGZ1bmRpbmcgdHJhbnNhY3Rpb24gaXMgY3JlYXRlZC4iLCBhbGlhcz0iZmJUeElkIikKICAgIHR4X3N0YXR1czogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaWNrZXQgdGVybSB0cmFuc2FjdGlvbiBzdGF0dXMiLCBhbGlhcz0idHhTdGF0dXMiKQogICAgc3RhdHVzOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGlja2V0IHRlcm0gc3RhdHVzIikKICAgIGNyZWF0ZWRfYXQ6IGRhdGV0aW1lID0gRmllbGQoZGVzY3JpcHRpb249IkRhdGUgYW5kIHRpbWUgd2hlbiB0aGUgdGVybSBpcyBjcmVhdGVkLiIsIGFsaWFzPSJjcmVhdGVkQXQiKQogICAgdXBkYXRlZF9hdDogZGF0ZXRpbWUgPSBGaWVsZChkZXNjcmlwdGlvbj0iRGF0ZSBhbmQgdGltZSBvZiBsYXN0IHRlcm0gdXBkYXRlLiIsIGFsaWFzPSJ1cGRhdGVkQXQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJ0aWNrZXRJZCIsICJhc3NldCIsICJhbW91bnQiLCAiZHZwU3JjRHN0VmF1bHRJZCIsICJhbW91bnRVc2QiLCAiZnJvbU5ldHdvcmtJZCIsICJmcm9tTmV0d29ya0lkTmFtZSIsICJ0b05ldHdvcmtJZCIsICJ0b05ldHdvcmtJZE5hbWUiLCAidHhIYXNoIiwgImZiVHhJZCIsICJ0eFN0YXR1cyIsICJzdGF0dXMiLCAiY3JlYXRlZEF0IiwgInVwZGF0ZWRBdCJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigndHhfc3RhdHVzJykKICAgIGRlZiB0eF9zdGF0dXNfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gdmFsdWUKCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ3F1ZXVlZCcsICdzdWJtaXR0ZWQnLCAncGVuZGluZ1NpZ25hdHVyZScsICdwZW5kaW5nQXV0aG9yaXphdGlvbicsICdicm9hZGNhc3RpbmcnLCAnY29uZmlybWluZycsICdwZW5kaW5nQW1sU2NyZWVuaW5nJywgJ2NvbXBsZXRlZCcsICdjYW5jZWxsZWQnLCAnZmFpbGVkJywgJ3JlamVjdGVkJywgJ2Jsb2NrZWQnLCAndGhpcmRQYXJ0eVBlbmRpbmdNYW51YWxBcHByb3ZhbCcsICd0aGlyZFBhcnR5UGVuZGluZycsICdwYXJ0aWFsbHlDb21wbGV0ZWQnLCAnY2FuY2VsbGluZyddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdxdWV1ZWQnLCAnc3VibWl0dGVkJywgJ3BlbmRpbmdTaWduYXR1cmUnLCAncGVuZGluZ0F1dGhvcml6YXRpb24nLCAnYnJvYWRjYXN0aW5nJywgJ2NvbmZpcm1pbmcnLCAncGVuZGluZ0FtbFNjcmVlbmluZycsICdjb21wbGV0ZWQnLCAnY2FuY2VsbGVkJywgJ2ZhaWxlZCcsICdyZWplY3RlZCcsICdibG9ja2VkJywgJ3RoaXJkUGFydHlQZW5kaW5nTWFudWFsQXBwcm92YWwnLCAndGhpcmRQYXJ0eVBlbmRpbmcnLCAncGFydGlhbGx5Q29tcGxldGVkJywgJ2NhbmNlbGxpbmcnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgQGZpZWxkX3ZhbGlkYXRvcignc3RhdHVzJykKICAgIGRlZiBzdGF0dXNfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnQ1JFQVRFRCcsICdGVU5ESU5HJywgJ0ZVTkRJTkdfRkFJTEVEJywgJ0ZVTkRFRCcsICdSRUpFQ1RFRCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdDUkVBVEVEJywgJ0ZVTkRJTkcnLCAnRlVORElOR19GQUlMRUQnLCAnRlVOREVEJywgJ1JFSkVDVEVEJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIHNldCB0byBOb25lIGlmIHR4X2hhc2ggKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnR4X2hhc2ggaXMgTm9uZSBhbmQgInR4X2hhc2giIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3R4SGFzaCddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGZiX3R4X2lkIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5mYl90eF9pZCBpcyBOb25lIGFuZCAiZmJfdHhfaWQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2ZiVHhJZCddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIHR4X3N0YXR1cyAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYudHhfc3RhdHVzIGlzIE5vbmUgYW5kICJ0eF9zdGF0dXMiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3R4U3RhdHVzJ10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclRpY2tldFRlcm0gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAidGlja2V0SWQiOiBvYmouZ2V0KCJ0aWNrZXRJZCIpLAogICAgICAgICAgICAiYXNzZXQiOiBvYmouZ2V0KCJhc3NldCIpLAogICAgICAgICAgICAiYW1vdW50Ijogb2JqLmdldCgiYW1vdW50IiksCiAgICAgICAgICAgICJkdnBTcmNEc3RWYXVsdElkIjogb2JqLmdldCgiZHZwU3JjRHN0VmF1bHRJZCIpLAogICAgICAgICAgICAiYW1vdW50VXNkIjogb2JqLmdldCgiYW1vdW50VXNkIiksCiAgICAgICAgICAgICJmcm9tTmV0d29ya0lkIjogb2JqLmdldCgiZnJvbU5ldHdvcmtJZCIpLAogICAgICAgICAgICAiZnJvbU5ldHdvcmtJZE5hbWUiOiBvYmouZ2V0KCJmcm9tTmV0d29ya0lkTmFtZSIpLAogICAgICAgICAgICAidG9OZXR3b3JrSWQiOiBvYmouZ2V0KCJ0b05ldHdvcmtJZCIpLAogICAgICAgICAgICAidG9OZXR3b3JrSWROYW1lIjogb2JqLmdldCgidG9OZXR3b3JrSWROYW1lIiksCiAgICAgICAgICAgICJ0eEhhc2giOiBvYmouZ2V0KCJ0eEhhc2giKSwKICAgICAgICAgICAgImZiVHhJZCI6IG9iai5nZXQoImZiVHhJZCIpLAogICAgICAgICAgICAidHhTdGF0dXMiOiBvYmouZ2V0KCJ0eFN0YXR1cyIpLAogICAgICAgICAgICAic3RhdHVzIjogb2JqLmdldCgic3RhdHVzIiksCiAgICAgICAgICAgICJjcmVhdGVkQXQiOiBvYmouZ2V0KCJjcmVhdGVkQXQiKSwKICAgICAgICAgICAgInVwZGF0ZWRBdCI6IG9iai5nZXQoInVwZGF0ZWRBdCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_ticket_term_response.py b/fireblocks/models/smart_transfer_ticket_term_response.py index 6a1a6f63..b4ff1cb7 100644 --- a/fireblocks/models/smart_transfer_ticket_term_response.py +++ b/fireblocks/models/smart_transfer_ticket_term_response.py @@ -1,104 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.smart_transfer_ticket_term import SmartTransferTicketTerm -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferTicketTermResponse(BaseModel): - """ - SmartTransferTicketTermResponse - """ # noqa: E501 - message: Optional[StrictStr] = Field(description="Result message") - data: Optional[SmartTransferTicketTerm] = None - __properties: ClassVar[List[str]] = ["message", "data"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferTicketTermResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of data - if self.data: - _dict['data'] = self.data.to_dict() - # set to None if message (nullable) is None - # and model_fields_set contains the field - if self.message is None and "message" in self.model_fields_set: - _dict['message'] = None - - # set to None if data (nullable) is None - # and model_fields_set contains the field - if self.data is None and "data" in self.model_fields_set: - _dict['data'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferTicketTermResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "data": SmartTransferTicketTerm.from_dict(obj["data"]) if obj.get("data") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldF90ZXJtIGltcG9ydCBTbWFydFRyYW5zZmVyVGlja2V0VGVybQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG1lc3NhZ2U6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZXNjcmlwdGlvbj0iUmVzdWx0IG1lc3NhZ2UiKQogICAgZGF0YTogT3B0aW9uYWxbU21hcnRUcmFuc2ZlclRpY2tldFRlcm1dID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJtZXNzYWdlIiwgImRhdGEiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBkYXRhCiAgICAgICAgaWYgc2VsZi5kYXRhOgogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gc2VsZi5kYXRhLnRvX2RpY3QoKQogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgbWVzc2FnZSAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYubWVzc2FnZSBpcyBOb25lIGFuZCAibWVzc2FnZSIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnbWVzc2FnZSddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGRhdGEgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmRhdGEgaXMgTm9uZSBhbmQgImRhdGEiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2RhdGEnXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm1lc3NhZ2UiOiBvYmouZ2V0KCJtZXNzYWdlIiksCiAgICAgICAgICAgICJkYXRhIjogU21hcnRUcmFuc2ZlclRpY2tldFRlcm0uZnJvbV9kaWN0KG9ialsiZGF0YSJdKSBpZiBvYmouZ2V0KCJkYXRhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_update_ticket_term.py b/fireblocks/models/smart_transfer_update_ticket_term.py index 9f4601c1..cf276a79 100644 --- a/fireblocks/models/smart_transfer_update_ticket_term.py +++ b/fireblocks/models/smart_transfer_update_ticket_term.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferUpdateTicketTerm(BaseModel): - """ - SmartTransferUpdateTicketTerm - """ # noqa: E501 - asset: StrictStr = Field(description="Asset name") - amount: StrictStr = Field(description="Amount") - from_network_id: StrictStr = Field(description="Identifier of the origination Network Profile", alias="fromNetworkId") - to_network_id: StrictStr = Field(description="Identifier of the destination Network Profile", alias="toNetworkId") - __properties: ClassVar[List[str]] = ["asset", "amount", "fromNetworkId", "toNetworkId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferUpdateTicketTerm from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferUpdateTicketTerm from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "asset": obj.get("asset"), - "amount": obj.get("amount"), - "fromNetworkId": obj.get("fromNetworkId"), - "toNetworkId": obj.get("toNetworkId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNtYXJ0VHJhbnNmZXJVcGRhdGVUaWNrZXRUZXJtKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNtYXJ0VHJhbnNmZXJVcGRhdGVUaWNrZXRUZXJtCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhc3NldDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkFzc2V0IG5hbWUiKQogICAgYW1vdW50OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQW1vdW50IikKICAgIGZyb21fbmV0d29ya19pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IklkZW50aWZpZXIgb2YgdGhlIG9yaWdpbmF0aW9uIE5ldHdvcmsgUHJvZmlsZSIsIGFsaWFzPSJmcm9tTmV0d29ya0lkIikKICAgIHRvX25ldHdvcmtfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJZGVudGlmaWVyIG9mIHRoZSBkZXN0aW5hdGlvbiBOZXR3b3JrIFByb2ZpbGUiLCBhbGlhcz0idG9OZXR3b3JrSWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhc3NldCIsICJhbW91bnQiLCAiZnJvbU5ldHdvcmtJZCIsICJ0b05ldHdvcmtJZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclVwZGF0ZVRpY2tldFRlcm0gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclVwZGF0ZVRpY2tldFRlcm0gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYXNzZXQiOiBvYmouZ2V0KCJhc3NldCIpLAogICAgICAgICAgICAiYW1vdW50Ijogb2JqLmdldCgiYW1vdW50IiksCiAgICAgICAgICAgICJmcm9tTmV0d29ya0lkIjogb2JqLmdldCgiZnJvbU5ldHdvcmtJZCIpLAogICAgICAgICAgICAidG9OZXR3b3JrSWQiOiBvYmouZ2V0KCJ0b05ldHdvcmtJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_user_groups.py b/fireblocks/models/smart_transfer_user_groups.py index 722ee421..9e7b7a8d 100644 --- a/fireblocks/models/smart_transfer_user_groups.py +++ b/fireblocks/models/smart_transfer_user_groups.py @@ -1,93 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferUserGroups(BaseModel): - """ - Data object with result data - """ # noqa: E501 - user_group_ids: Optional[List[StrictStr]] = Field(description="Data object with result data", alias="userGroupIds") - __properties: ClassVar[List[str]] = ["userGroupIds"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferUserGroups from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if user_group_ids (nullable) is None - # and model_fields_set contains the field - if self.user_group_ids is None and "user_group_ids" in self.model_fields_set: - _dict['userGroupIds'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferUserGroups from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "userGroupIds": obj.get("userGroupIds") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTbWFydFRyYW5zZmVyVXNlckdyb3VwcyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBEYXRhIG9iamVjdCB3aXRoIHJlc3VsdCBkYXRhCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB1c2VyX2dyb3VwX2lkczogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJEYXRhIG9iamVjdCB3aXRoIHJlc3VsdCBkYXRhIiwgYWxpYXM9InVzZXJHcm91cElkcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInVzZXJHcm91cElkcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclVzZXJHcm91cHMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgdXNlcl9ncm91cF9pZHMgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnVzZXJfZ3JvdXBfaWRzIGlzIE5vbmUgYW5kICJ1c2VyX2dyb3VwX2lkcyIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsndXNlckdyb3VwSWRzJ10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU21hcnRUcmFuc2ZlclVzZXJHcm91cHMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidXNlckdyb3VwSWRzIjogb2JqLmdldCgidXNlckdyb3VwSWRzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/smart_transfer_user_groups_response.py b/fireblocks/models/smart_transfer_user_groups_response.py index cbca6a09..263a9b87 100644 --- a/fireblocks/models/smart_transfer_user_groups_response.py +++ b/fireblocks/models/smart_transfer_user_groups_response.py @@ -1,104 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.smart_transfer_user_groups import SmartTransferUserGroups -from typing import Optional, Set -from typing_extensions import Self - -class SmartTransferUserGroupsResponse(BaseModel): - """ - SmartTransferUserGroupsResponse - """ # noqa: E501 - message: Optional[StrictStr] = Field(description="Result message") - data: Optional[SmartTransferUserGroups] = None - __properties: ClassVar[List[str]] = ["message", "data"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SmartTransferUserGroupsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of data - if self.data: - _dict['data'] = self.data.to_dict() - # set to None if message (nullable) is None - # and model_fields_set contains the field - if self.message is None and "message" in self.model_fields_set: - _dict['message'] = None - - # set to None if data (nullable) is None - # and model_fields_set contains the field - if self.data is None and "data" in self.model_fields_set: - _dict['data'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SmartTransferUserGroupsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "data": SmartTransferUserGroups.from_dict(obj["data"]) if obj.get("data") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3VzZXJfZ3JvdXBzIGltcG9ydCBTbWFydFRyYW5zZmVyVXNlckdyb3Vwcwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTbWFydFRyYW5zZmVyVXNlckdyb3Vwc1Jlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG1lc3NhZ2U6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZXNjcmlwdGlvbj0iUmVzdWx0IG1lc3NhZ2UiKQogICAgZGF0YTogT3B0aW9uYWxbU21hcnRUcmFuc2ZlclVzZXJHcm91cHNdID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJtZXNzYWdlIiwgImRhdGEiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBkYXRhCiAgICAgICAgaWYgc2VsZi5kYXRhOgogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gc2VsZi5kYXRhLnRvX2RpY3QoKQogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgbWVzc2FnZSAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYubWVzc2FnZSBpcyBOb25lIGFuZCAibWVzc2FnZSIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnbWVzc2FnZSddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGRhdGEgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmRhdGEgaXMgTm9uZSBhbmQgImRhdGEiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2RhdGEnXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTbWFydFRyYW5zZmVyVXNlckdyb3Vwc1Jlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm1lc3NhZ2UiOiBvYmouZ2V0KCJtZXNzYWdlIiksCiAgICAgICAgICAgICJkYXRhIjogU21hcnRUcmFuc2ZlclVzZXJHcm91cHMuZnJvbV9kaWN0KG9ialsiZGF0YSJdKSBpZiBvYmouZ2V0KCJkYXRhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/sol_account.py b/fireblocks/models/sol_account.py index 036d0c65..c44091c5 100644 --- a/fireblocks/models/sol_account.py +++ b/fireblocks/models/sol_account.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class SOLAccount(BaseModel): - """ - The accounts involved in the instruction - """ # noqa: E501 - name: StrictStr = Field(description="The name of the account") - signer: Optional[StrictBool] = Field(default=None, description="Indicates if the account needs to sign the instruction. If true a signature for this account must be provided") - writable: Optional[StrictBool] = Field(default=None, description="Indicates if the account's data can be changed by the instruction.") - address: Optional[StrictStr] = Field(default=None, description="The address of the account") - __properties: ClassVar[List[str]] = ["name", "signer", "writable", "address"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SOLAccount from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SOLAccount from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name"), - "signer": obj.get("signer"), - "writable": obj.get("writable"), - "address": obj.get("address") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTT0xBY2NvdW50KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRoZSBhY2NvdW50cyBpbnZvbHZlZCBpbiB0aGUgaW5zdHJ1Y3Rpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG5hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgbmFtZSBvZiB0aGUgYWNjb3VudCIpCiAgICBzaWduZXI6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSW5kaWNhdGVzIGlmIHRoZSBhY2NvdW50IG5lZWRzIHRvIHNpZ24gdGhlIGluc3RydWN0aW9uLiBJZiB0cnVlIGEgc2lnbmF0dXJlIGZvciB0aGlzIGFjY291bnQgbXVzdCBiZSBwcm92aWRlZCIpCiAgICB3cml0YWJsZTogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJbmRpY2F0ZXMgaWYgdGhlIGFjY291bnQncyBkYXRhIGNhbiBiZSBjaGFuZ2VkIGJ5IHRoZSBpbnN0cnVjdGlvbi4iKQogICAgYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBhZGRyZXNzIG9mIHRoZSBhY2NvdW50IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibmFtZSIsICJzaWduZXIiLCAid3JpdGFibGUiLCAiYWRkcmVzcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU09MQWNjb3VudCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTT0xBY2NvdW50IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJzaWduZXIiOiBvYmouZ2V0KCJzaWduZXIiKSwKICAgICAgICAgICAgIndyaXRhYmxlIjogb2JqLmdldCgid3JpdGFibGUiKSwKICAgICAgICAgICAgImFkZHJlc3MiOiBvYmouZ2V0KCJhZGRyZXNzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/sol_account_with_value.py b/fireblocks/models/sol_account_with_value.py index ad71e2cb..d8de9f3c 100644 --- a/fireblocks/models/sol_account_with_value.py +++ b/fireblocks/models/sol_account_with_value.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class SOLAccountWithValue(BaseModel): - """ - SOLAccountWithValue - """ # noqa: E501 - name: StrictStr = Field(description="The name of the account") - signer: Optional[StrictBool] = Field(default=None, description="Indicates if the account needs to sign the instruction. If true a signature for this account must be provided") - writable: Optional[StrictBool] = Field(default=None, description="Indicates if the account's data can be changed by the instruction.") - address: StrictStr = Field(description="The address of the account") - __properties: ClassVar[List[str]] = ["name", "signer", "writable", "address"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SOLAccountWithValue from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SOLAccountWithValue from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name"), - "signer": obj.get("signer"), - "writable": obj.get("writable"), - "address": obj.get("address") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTT0xBY2NvdW50V2l0aFZhbHVlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNPTEFjY291bnRXaXRoVmFsdWUKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG5hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgbmFtZSBvZiB0aGUgYWNjb3VudCIpCiAgICBzaWduZXI6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSW5kaWNhdGVzIGlmIHRoZSBhY2NvdW50IG5lZWRzIHRvIHNpZ24gdGhlIGluc3RydWN0aW9uLiBJZiB0cnVlIGEgc2lnbmF0dXJlIGZvciB0aGlzIGFjY291bnQgbXVzdCBiZSBwcm92aWRlZCIpCiAgICB3cml0YWJsZTogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJbmRpY2F0ZXMgaWYgdGhlIGFjY291bnQncyBkYXRhIGNhbiBiZSBjaGFuZ2VkIGJ5IHRoZSBpbnN0cnVjdGlvbi4iKQogICAgYWRkcmVzczogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBhZGRyZXNzIG9mIHRoZSBhY2NvdW50IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibmFtZSIsICJzaWduZXIiLCAid3JpdGFibGUiLCAiYWRkcmVzcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU09MQWNjb3VudFdpdGhWYWx1ZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTT0xBY2NvdW50V2l0aFZhbHVlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJzaWduZXIiOiBvYmouZ2V0KCJzaWduZXIiKSwKICAgICAgICAgICAgIndyaXRhYmxlIjogb2JqLmdldCgid3JpdGFibGUiKSwKICAgICAgICAgICAgImFkZHJlc3MiOiBvYmouZ2V0KCJhZGRyZXNzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/sol_parameter.py b/fireblocks/models/sol_parameter.py index e40f64e9..8a47953b 100644 --- a/fireblocks/models/sol_parameter.py +++ b/fireblocks/models/sol_parameter.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.idl_type import IdlType -from typing import Optional, Set -from typing_extensions import Self - -class SolParameter(BaseModel): - """ - The arguments of the instruction - """ # noqa: E501 - name: StrictStr = Field(description="The name of the parameter") - type: IdlType - __properties: ClassVar[List[str]] = ["name", "type"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SolParameter from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SolParameter from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name"), - "type": obj.get("type") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaWRsX3R5cGUgaW1wb3J0IElkbFR5cGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU29sUGFyYW1ldGVyKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRoZSBhcmd1bWVudHMgb2YgdGhlIGluc3RydWN0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBuYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlciIpCiAgICB0eXBlOiBJZGxUeXBlCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm5hbWUiLCAidHlwZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU29sUGFyYW1ldGVyIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNvbFBhcmFtZXRlciBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/sol_parameter_with_value.py b/fireblocks/models/sol_parameter_with_value.py index 20ac7f9e..03f2b5e7 100644 --- a/fireblocks/models/sol_parameter_with_value.py +++ b/fireblocks/models/sol_parameter_with_value.py @@ -1,93 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.idl_type import IdlType -from typing import Optional, Set -from typing_extensions import Self - -class SolParameterWithValue(BaseModel): - """ - SolParameterWithValue - """ # noqa: E501 - value: StrictStr = Field(description="The value of the parameter") - name: StrictStr = Field(description="The name of the parameter") - type: IdlType - __properties: ClassVar[List[str]] = ["value", "name", "type"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SolParameterWithValue from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SolParameterWithValue from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "value": obj.get("value"), - "name": obj.get("name"), - "type": obj.get("type") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuaWRsX3R5cGUgaW1wb3J0IElkbFR5cGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU29sUGFyYW1ldGVyV2l0aFZhbHVlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNvbFBhcmFtZXRlcldpdGhWYWx1ZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgdmFsdWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlciIpCiAgICBuYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlciIpCiAgICB0eXBlOiBJZGxUeXBlCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInZhbHVlIiwgIm5hbWUiLCAidHlwZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU29sUGFyYW1ldGVyV2l0aFZhbHVlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNvbFBhcmFtZXRlcldpdGhWYWx1ZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ2YWx1ZSI6IG9iai5nZXQoInZhbHVlIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/solana_blockchain_data.py b/fireblocks/models/solana_blockchain_data.py index 0e8cb242..442c917e 100644 --- a/fireblocks/models/solana_blockchain_data.py +++ b/fireblocks/models/solana_blockchain_data.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class SolanaBlockchainData(BaseModel): - """ - Additional fields per blockchain - can be empty or missing if not initialized or no additional info exists. The type depends on the chainDescriptor value. For Solana (SOL), stake account address. For Ethereum (ETH), an empty object is returned as no specific data is available. - """ # noqa: E501 - stake_account_address: StrictStr = Field(description="The stake account address matching the stakeAccountId.", alias="stakeAccountAddress") - stake_account_derivation_change_value: Union[StrictFloat, StrictInt] = Field(description="The value of the change level in the BIP32 path which was used to derive the stake account address.", alias="stakeAccountDerivationChangeValue") - __properties: ClassVar[List[str]] = ["stakeAccountAddress", "stakeAccountDerivationChangeValue"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SolanaBlockchainData from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SolanaBlockchainData from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "stakeAccountAddress": obj.get("stakeAccountAddress"), - "stakeAccountDerivationChangeValue": obj.get("stakeAccountDerivationChangeValue") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTb2xhbmFCbG9ja2NoYWluRGF0YShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBZGRpdGlvbmFsIGZpZWxkcyBwZXIgYmxvY2tjaGFpbiAtIGNhbiBiZSBlbXB0eSBvciBtaXNzaW5nIGlmIG5vdCBpbml0aWFsaXplZCBvciBubyBhZGRpdGlvbmFsIGluZm8gZXhpc3RzLiBUaGUgdHlwZSBkZXBlbmRzIG9uIHRoZSBjaGFpbkRlc2NyaXB0b3IgdmFsdWUuIEZvciBTb2xhbmEgKFNPTCksIHN0YWtlIGFjY291bnQgYWRkcmVzcy4gRm9yIEV0aGVyZXVtIChFVEgpLCBhbiBlbXB0eSBvYmplY3QgaXMgcmV0dXJuZWQgYXMgbm8gc3BlY2lmaWMgZGF0YSBpcyBhdmFpbGFibGUuCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzdGFrZV9hY2NvdW50X2FkZHJlc3M6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgc3Rha2UgYWNjb3VudCBhZGRyZXNzIG1hdGNoaW5nIHRoZSBzdGFrZUFjY291bnRJZC4iLCBhbGlhcz0ic3Rha2VBY2NvdW50QWRkcmVzcyIpCiAgICBzdGFrZV9hY2NvdW50X2Rlcml2YXRpb25fY2hhbmdlX3ZhbHVlOiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdmFsdWUgb2YgdGhlIGNoYW5nZSBsZXZlbCBpbiB0aGUgQklQMzIgcGF0aCB3aGljaCB3YXMgdXNlZCB0byBkZXJpdmUgdGhlIHN0YWtlIGFjY291bnQgYWRkcmVzcy4iLCBhbGlhcz0ic3Rha2VBY2NvdW50RGVyaXZhdGlvbkNoYW5nZVZhbHVlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3Rha2VBY2NvdW50QWRkcmVzcyIsICJzdGFrZUFjY291bnREZXJpdmF0aW9uQ2hhbmdlVmFsdWUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNvbGFuYUJsb2NrY2hhaW5EYXRhIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNvbGFuYUJsb2NrY2hhaW5EYXRhIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInN0YWtlQWNjb3VudEFkZHJlc3MiOiBvYmouZ2V0KCJzdGFrZUFjY291bnRBZGRyZXNzIiksCiAgICAgICAgICAgICJzdGFrZUFjY291bnREZXJpdmF0aW9uQ2hhbmdlVmFsdWUiOiBvYmouZ2V0KCJzdGFrZUFjY291bnREZXJpdmF0aW9uQ2hhbmdlVmFsdWUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/solana_config.py b/fireblocks/models/solana_config.py index 0afc563e..3eacfc9b 100644 --- a/fireblocks/models/solana_config.py +++ b/fireblocks/models/solana_config.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class SolanaConfig(BaseModel): - """ - The Solana configuration of the contract - """ # noqa: E501 - extensions: Optional[List[StrictStr]] = Field(default=None, description="The extensions that the contract implements.") - type: Optional[StrictStr] = Field(default=None, description="The type of the contract.") - __properties: ClassVar[List[str]] = ["extensions", "type"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['SPL', 'TOKEN2022', 'PROGRAM']): - raise ValueError("must be one of enum values ('SPL', 'TOKEN2022', 'PROGRAM')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SolanaConfig from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SolanaConfig from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "extensions": obj.get("extensions"), - "type": obj.get("type") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNvbGFuYUNvbmZpZyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUaGUgU29sYW5hIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGNvbnRyYWN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBleHRlbnNpb25zOiBPcHRpb25hbFtMaXN0W1N0cmljdFN0cl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGV4dGVuc2lvbnMgdGhhdCB0aGUgY29udHJhY3QgaW1wbGVtZW50cy4iKQogICAgdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSB0eXBlIG9mIHRoZSBjb250cmFjdC4iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJleHRlbnNpb25zIiwgInR5cGUiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3R5cGUnKQogICAgZGVmIHR5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gdmFsdWUKCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ1NQTCcsICdUT0tFTjIwMjInLCAnUFJPR1JBTSddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdTUEwnLCAnVE9LRU4yMDIyJywgJ1BST0dSQU0nKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU29sYW5hQ29uZmlnIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNvbGFuYUNvbmZpZyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJleHRlbnNpb25zIjogb2JqLmdldCgiZXh0ZW5zaW9ucyIpLAogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/solana_instruction.py b/fireblocks/models/solana_instruction.py index e499c144..6f1f47b3 100644 --- a/fireblocks/models/solana_instruction.py +++ b/fireblocks/models/solana_instruction.py @@ -1,110 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from fireblocks.models.sol_account import SOLAccount -from fireblocks.models.sol_parameter import SolParameter -from typing import Optional, Set -from typing_extensions import Self - -class SolanaInstruction(BaseModel): - """ - SolanaInstruction - """ # noqa: E501 - name: StrictStr = Field(description="The name of the instruction") - discriminator: List[Union[StrictFloat, StrictInt]] = Field(description="The discriminator for the instruction. Acts as a function selector") - accounts: List[SOLAccount] - args: List[SolParameter] - __properties: ClassVar[List[str]] = ["name", "discriminator", "accounts", "args"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SolanaInstruction from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in accounts (list) - _items = [] - if self.accounts: - for _item_accounts in self.accounts: - if _item_accounts: - _items.append(_item_accounts.to_dict()) - _dict['accounts'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in args (list) - _items = [] - if self.args: - for _item_args in self.args: - if _item_args: - _items.append(_item_args.to_dict()) - _dict['args'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SolanaInstruction from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name"), - "discriminator": obj.get("discriminator"), - "accounts": [SOLAccount.from_dict(_item) for _item in obj["accounts"]] if obj.get("accounts") is not None else None, - "args": [SolParameter.from_dict(_item) for _item in obj["args"]] if obj.get("args") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvbF9hY2NvdW50IGltcG9ydCBTT0xBY2NvdW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc29sX3BhcmFtZXRlciBpbXBvcnQgU29sUGFyYW1ldGVyCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNvbGFuYUluc3RydWN0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNvbGFuYUluc3RydWN0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBuYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIG5hbWUgb2YgdGhlIGluc3RydWN0aW9uIikKICAgIGRpc2NyaW1pbmF0b3I6IExpc3RbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBkaXNjcmltaW5hdG9yIGZvciB0aGUgaW5zdHJ1Y3Rpb24uIEFjdHMgYXMgYSBmdW5jdGlvbiBzZWxlY3RvciIpCiAgICBhY2NvdW50czogTGlzdFtTT0xBY2NvdW50XQogICAgYXJnczogTGlzdFtTb2xQYXJhbWV0ZXJdCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm5hbWUiLCAiZGlzY3JpbWluYXRvciIsICJhY2NvdW50cyIsICJhcmdzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTb2xhbmFJbnN0cnVjdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBhY2NvdW50cyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuYWNjb3VudHM6CiAgICAgICAgICAgIGZvciBfaXRlbV9hY2NvdW50cyBpbiBzZWxmLmFjY291bnRzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fYWNjb3VudHM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9hY2NvdW50cy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydhY2NvdW50cyddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBhcmdzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5hcmdzOgogICAgICAgICAgICBmb3IgX2l0ZW1fYXJncyBpbiBzZWxmLmFyZ3M6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9hcmdzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fYXJncy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydhcmdzJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNvbGFuYUluc3RydWN0aW9uIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJkaXNjcmltaW5hdG9yIjogb2JqLmdldCgiZGlzY3JpbWluYXRvciIpLAogICAgICAgICAgICAiYWNjb3VudHMiOiBbU09MQWNjb3VudC5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImFjY291bnRzIl1dIGlmIG9iai5nZXQoImFjY291bnRzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiYXJncyI6IFtTb2xQYXJhbWV0ZXIuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJhcmdzIl1dIGlmIG9iai5nZXQoImFyZ3MiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/solana_instruction_with_value.py b/fireblocks/models/solana_instruction_with_value.py index 85713729..b103fc8a 100644 --- a/fireblocks/models/solana_instruction_with_value.py +++ b/fireblocks/models/solana_instruction_with_value.py @@ -1,110 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from fireblocks.models.sol_account_with_value import SOLAccountWithValue -from fireblocks.models.sol_parameter_with_value import SolParameterWithValue -from typing import Optional, Set -from typing_extensions import Self - -class SolanaInstructionWithValue(BaseModel): - """ - SolanaInstructionWithValue - """ # noqa: E501 - name: StrictStr = Field(description="The name of the instruction") - discriminator: List[Union[StrictFloat, StrictInt]] = Field(description="The discriminator for the instruction. Acts as a function selector") - accounts: List[SOLAccountWithValue] - args: List[SolParameterWithValue] = Field(description="The arguments of the instruction") - __properties: ClassVar[List[str]] = ["name", "discriminator", "accounts", "args"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SolanaInstructionWithValue from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in accounts (list) - _items = [] - if self.accounts: - for _item_accounts in self.accounts: - if _item_accounts: - _items.append(_item_accounts.to_dict()) - _dict['accounts'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in args (list) - _items = [] - if self.args: - for _item_args in self.args: - if _item_args: - _items.append(_item_args.to_dict()) - _dict['args'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SolanaInstructionWithValue from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name"), - "discriminator": obj.get("discriminator"), - "accounts": [SOLAccountWithValue.from_dict(_item) for _item in obj["accounts"]] if obj.get("accounts") is not None else None, - "args": [SolParameterWithValue.from_dict(_item) for _item in obj["args"]] if obj.get("args") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvbF9hY2NvdW50X3dpdGhfdmFsdWUgaW1wb3J0IFNPTEFjY291bnRXaXRoVmFsdWUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zb2xfcGFyYW1ldGVyX3dpdGhfdmFsdWUgaW1wb3J0IFNvbFBhcmFtZXRlcldpdGhWYWx1ZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTb2xhbmFJbnN0cnVjdGlvbldpdGhWYWx1ZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBTb2xhbmFJbnN0cnVjdGlvbldpdGhWYWx1ZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBuYW1lIG9mIHRoZSBpbnN0cnVjdGlvbiIpCiAgICBkaXNjcmltaW5hdG9yOiBMaXN0W1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGlzY3JpbWluYXRvciBmb3IgdGhlIGluc3RydWN0aW9uLiBBY3RzIGFzIGEgZnVuY3Rpb24gc2VsZWN0b3IiKQogICAgYWNjb3VudHM6IExpc3RbU09MQWNjb3VudFdpdGhWYWx1ZV0KICAgIGFyZ3M6IExpc3RbU29sUGFyYW1ldGVyV2l0aFZhbHVlXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYXJndW1lbnRzIG9mIHRoZSBpbnN0cnVjdGlvbiIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm5hbWUiLCAiZGlzY3JpbWluYXRvciIsICJhY2NvdW50cyIsICJhcmdzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTb2xhbmFJbnN0cnVjdGlvbldpdGhWYWx1ZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBhY2NvdW50cyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuYWNjb3VudHM6CiAgICAgICAgICAgIGZvciBfaXRlbV9hY2NvdW50cyBpbiBzZWxmLmFjY291bnRzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fYWNjb3VudHM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9hY2NvdW50cy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydhY2NvdW50cyddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBhcmdzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5hcmdzOgogICAgICAgICAgICBmb3IgX2l0ZW1fYXJncyBpbiBzZWxmLmFyZ3M6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9hcmdzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fYXJncy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydhcmdzJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNvbGFuYUluc3RydWN0aW9uV2l0aFZhbHVlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJkaXNjcmltaW5hdG9yIjogb2JqLmdldCgiZGlzY3JpbWluYXRvciIpLAogICAgICAgICAgICAiYWNjb3VudHMiOiBbU09MQWNjb3VudFdpdGhWYWx1ZS5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImFjY291bnRzIl1dIGlmIG9iai5nZXQoImFjY291bnRzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiYXJncyI6IFtTb2xQYXJhbWV0ZXJXaXRoVmFsdWUuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJhcmdzIl1dIGlmIG9iai5nZXQoImFyZ3MiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/solana_simple_create_params.py b/fireblocks/models/solana_simple_create_params.py index 7e99d547..71532cc6 100644 --- a/fireblocks/models/solana_simple_create_params.py +++ b/fireblocks/models/solana_simple_create_params.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class SolanaSimpleCreateParams(BaseModel): - """ - SolanaSimpleCreateParams - """ # noqa: E501 - name: StrictStr = Field(description="The name of the token or asset being created.") - symbol: StrictStr = Field(description="The symbol for the token, typically an abbreviated representation.") - decimals: StrictInt = Field(description="The number of decimal places the token supports (e.g., 9 for typical Solana tokens).") - __properties: ClassVar[List[str]] = ["name", "symbol", "decimals"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SolanaSimpleCreateParams from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SolanaSimpleCreateParams from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name"), - "symbol": obj.get("symbol"), - "decimals": obj.get("decimals") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU29sYW5hU2ltcGxlQ3JlYXRlUGFyYW1zKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNvbGFuYVNpbXBsZUNyZWF0ZVBhcmFtcwogICAgIiIiICMgbm9xYTogRTUwMQogICAgbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBuYW1lIG9mIHRoZSB0b2tlbiBvciBhc3NldCBiZWluZyBjcmVhdGVkLiIpCiAgICBzeW1ib2w6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgc3ltYm9sIGZvciB0aGUgdG9rZW4sIHR5cGljYWxseSBhbiBhYmJyZXZpYXRlZCByZXByZXNlbnRhdGlvbi4iKQogICAgZGVjaW1hbHM6IFN0cmljdEludCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgbnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzIHRoZSB0b2tlbiBzdXBwb3J0cyAoZS5nLiwgOSBmb3IgdHlwaWNhbCBTb2xhbmEgdG9rZW5zKS4iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJuYW1lIiwgInN5bWJvbCIsICJkZWNpbWFscyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU29sYW5hU2ltcGxlQ3JlYXRlUGFyYW1zIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNvbGFuYVNpbXBsZUNyZWF0ZVBhcmFtcyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAic3ltYm9sIjogb2JqLmdldCgic3ltYm9sIiksCiAgICAgICAgICAgICJkZWNpbWFscyI6IG9iai5nZXQoImRlY2ltYWxzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/source_config.py b/fireblocks/models/source_config.py index 14c91434..586a376f 100644 --- a/fireblocks/models/source_config.py +++ b/fireblocks/models/source_config.py @@ -1,133 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.account_identifier import AccountIdentifier -from fireblocks.models.account_type2 import AccountType2 -from fireblocks.models.policy_operator import PolicyOperator -from fireblocks.models.policy_tag import PolicyTag -from typing import Optional, Set -from typing_extensions import Self - -class SourceConfig(BaseModel): - """ - Source account configuration for policy rules - """ # noqa: E501 - type: Optional[List[AccountType2]] = Field(default=None, description="Source account types") - sub_type: Optional[List[AccountIdentifier]] = Field(default=None, description="Source account subtypes", alias="subType") - ids: Optional[List[AccountIdentifier]] = Field(default=None, description="Source account identifiers") - tags: Optional[List[PolicyTag]] = Field(default=None, description="Tags for source matching") - operator: PolicyOperator - match_from: Optional[StrictStr] = Field(default=None, description="Whether to match from account (relevant only for ORDER policy type)", alias="matchFrom") - __properties: ClassVar[List[str]] = ["type", "subType", "ids", "tags", "operator", "matchFrom"] - - @field_validator('match_from') - def match_from_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['ACCOUNT']): - raise ValueError("must be one of enum values ('ACCOUNT')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SourceConfig from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in sub_type (list) - _items = [] - if self.sub_type: - for _item_sub_type in self.sub_type: - if _item_sub_type: - _items.append(_item_sub_type.to_dict()) - _dict['subType'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in ids (list) - _items = [] - if self.ids: - for _item_ids in self.ids: - if _item_ids: - _items.append(_item_ids.to_dict()) - _dict['ids'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in tags (list) - _items = [] - if self.tags: - for _item_tags in self.tags: - if _item_tags: - _items.append(_item_tags.to_dict()) - _dict['tags'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SourceConfig from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "subType": [AccountIdentifier.from_dict(_item) for _item in obj["subType"]] if obj.get("subType") is not None else None, - "ids": [AccountIdentifier.from_dict(_item) for _item in obj["ids"]] if obj.get("ids") is not None else None, - "tags": [PolicyTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, - "operator": obj.get("operator"), - "matchFrom": obj.get("matchFrom") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9pZGVudGlmaWVyIGltcG9ydCBBY2NvdW50SWRlbnRpZmllcgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfdHlwZTIgaW1wb3J0IEFjY291bnRUeXBlMgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9vcGVyYXRvciBpbXBvcnQgUG9saWN5T3BlcmF0b3IKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfdGFnIGltcG9ydCBQb2xpY3lUYWcKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU291cmNlQ29uZmlnKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNvdXJjZSBhY2NvdW50IGNvbmZpZ3VyYXRpb24gZm9yIHBvbGljeSBydWxlcwogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogT3B0aW9uYWxbTGlzdFtBY2NvdW50VHlwZTJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNvdXJjZSBhY2NvdW50IHR5cGVzIikKICAgIHN1Yl90eXBlOiBPcHRpb25hbFtMaXN0W0FjY291bnRJZGVudGlmaWVyXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgYWNjb3VudCBzdWJ0eXBlcyIsIGFsaWFzPSJzdWJUeXBlIikKICAgIGlkczogT3B0aW9uYWxbTGlzdFtBY2NvdW50SWRlbnRpZmllcl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iU291cmNlIGFjY291bnQgaWRlbnRpZmllcnMiKQogICAgdGFnczogT3B0aW9uYWxbTGlzdFtQb2xpY3lUYWddXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRhZ3MgZm9yIHNvdXJjZSBtYXRjaGluZyIpCiAgICBvcGVyYXRvcjogUG9saWN5T3BlcmF0b3IKICAgIG1hdGNoX2Zyb206IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJXaGV0aGVyIHRvIG1hdGNoIGZyb20gYWNjb3VudCAocmVsZXZhbnQgb25seSBmb3IgT1JERVIgcG9saWN5IHR5cGUpIiwgYWxpYXM9Im1hdGNoRnJvbSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiLCAic3ViVHlwZSIsICJpZHMiLCAidGFncyIsICJvcGVyYXRvciIsICJtYXRjaEZyb20iXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ21hdGNoX2Zyb20nKQogICAgZGVmIG1hdGNoX2Zyb21fdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gdmFsdWUKCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0FDQ09VTlQnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnQUNDT1VOVCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTb3VyY2VDb25maWcgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gc3ViX3R5cGUgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLnN1Yl90eXBlOgogICAgICAgICAgICBmb3IgX2l0ZW1fc3ViX3R5cGUgaW4gc2VsZi5zdWJfdHlwZToKICAgICAgICAgICAgICAgIGlmIF9pdGVtX3N1Yl90eXBlOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fc3ViX3R5cGUudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnc3ViVHlwZSddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBpZHMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmlkczoKICAgICAgICAgICAgZm9yIF9pdGVtX2lkcyBpbiBzZWxmLmlkczoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2lkczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2lkcy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydpZHMnXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gdGFncyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYudGFnczoKICAgICAgICAgICAgZm9yIF9pdGVtX3RhZ3MgaW4gc2VsZi50YWdzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fdGFnczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX3RhZ3MudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsndGFncyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTb3VyY2VDb25maWcgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgInN1YlR5cGUiOiBbQWNjb3VudElkZW50aWZpZXIuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJzdWJUeXBlIl1dIGlmIG9iai5nZXQoInN1YlR5cGUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJpZHMiOiBbQWNjb3VudElkZW50aWZpZXIuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJpZHMiXV0gaWYgb2JqLmdldCgiaWRzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAidGFncyI6IFtQb2xpY3lUYWcuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJ0YWdzIl1dIGlmIG9iai5nZXQoInRhZ3MiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJvcGVyYXRvciI6IG9iai5nZXQoIm9wZXJhdG9yIiksCiAgICAgICAgICAgICJtYXRjaEZyb20iOiBvYmouZ2V0KCJtYXRjaEZyb20iKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/source_transfer_peer_path.py b/fireblocks/models/source_transfer_peer_path.py index 03a7881b..982cec59 100644 --- a/fireblocks/models/source_transfer_peer_path.py +++ b/fireblocks/models/source_transfer_peer_path.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.transfer_peer_path_sub_type import TransferPeerPathSubType -from fireblocks.models.transfer_peer_path_type import TransferPeerPathType -from typing import Optional, Set -from typing_extensions import Self - -class SourceTransferPeerPath(BaseModel): - """ - The source of the transaction. - """ # noqa: E501 - type: TransferPeerPathType - sub_type: Optional[TransferPeerPathSubType] = Field(default=None, alias="subType") - id: Optional[StrictStr] = None - name: Optional[StrictStr] = None - wallet_id: Optional[StrictStr] = Field(default=None, alias="walletId") - is_collateral: Optional[StrictBool] = Field(default=None, description="indicate if the source is collateral account", alias="isCollateral") - __properties: ClassVar[List[str]] = ["type", "subType", "id", "name", "walletId", "isCollateral"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SourceTransferPeerPath from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SourceTransferPeerPath from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "subType": obj.get("subType"), - "id": obj.get("id"), - "name": obj.get("name"), - "walletId": obj.get("walletId"), - "isCollateral": obj.get("isCollateral") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3BlZXJfcGF0aF9zdWJfdHlwZSBpbXBvcnQgVHJhbnNmZXJQZWVyUGF0aFN1YlR5cGUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9wZWVyX3BhdGhfdHlwZSBpbXBvcnQgVHJhbnNmZXJQZWVyUGF0aFR5cGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU291cmNlVHJhbnNmZXJQZWVyUGF0aChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUaGUgc291cmNlIG9mIHRoZSB0cmFuc2FjdGlvbi4KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR5cGU6IFRyYW5zZmVyUGVlclBhdGhUeXBlCiAgICBzdWJfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyUGF0aFN1YlR5cGVdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ic3ViVHlwZSIpCiAgICBpZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIG5hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICB3YWxsZXRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJ3YWxsZXRJZCIpCiAgICBpc19jb2xsYXRlcmFsOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249ImluZGljYXRlIGlmIHRoZSBzb3VyY2UgaXMgY29sbGF0ZXJhbCBhY2NvdW50IiwgYWxpYXM9ImlzQ29sbGF0ZXJhbCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiLCAic3ViVHlwZSIsICJpZCIsICJuYW1lIiwgIndhbGxldElkIiwgImlzQ29sbGF0ZXJhbCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU291cmNlVHJhbnNmZXJQZWVyUGF0aCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTb3VyY2VUcmFuc2ZlclBlZXJQYXRoIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIiksCiAgICAgICAgICAgICJzdWJUeXBlIjogb2JqLmdldCgic3ViVHlwZSIpLAogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKSwKICAgICAgICAgICAgIndhbGxldElkIjogb2JqLmdldCgid2FsbGV0SWQiKSwKICAgICAgICAgICAgImlzQ29sbGF0ZXJhbCI6IG9iai5nZXQoImlzQ29sbGF0ZXJhbCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/source_transfer_peer_path_response.py b/fireblocks/models/source_transfer_peer_path_response.py index c7618a12..64492cbb 100644 --- a/fireblocks/models/source_transfer_peer_path_response.py +++ b/fireblocks/models/source_transfer_peer_path_response.py @@ -1,109 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.transfer_peer_path_type import TransferPeerPathType -from typing import Optional, Set -from typing_extensions import Self - -class SourceTransferPeerPathResponse(BaseModel): - """ - Source of the transaction. - """ # noqa: E501 - type: TransferPeerPathType - sub_type: Optional[StrictStr] = Field(default=None, description="In case the type is set to `EXCHANGE_ACCOUNT` or `FIAT_ACCOUNT`, the specific exchange vendor name or fiat vendor name. In case the type is set to `INTERNAL_WALLET` or `EXTERNAL_WALLET`, the subType is set to `Internal` or `External`.", alias="subType") - id: Optional[StrictStr] = Field(default=None, description="The ID of the peer. You can retrieve the ID of each venue object using the endpoints for [listing vault accounts](https://developers.fireblocks.com/reference/getpagedvaultaccounts), [listing exchange account](https://developers.fireblocks.com/reference/getexchangeaccounts), [listing fiat accounts](https://developers.fireblocks.com/reference/getfiataccounts), [listing internal wallets](https://developers.fireblocks.com/reference/getinternalwallets), [listing external wallets](https://developers.fireblocks.com/reference/getexternalwallets), [listing network connections](https://developers.fireblocks.com/reference/getnetworkconnections). For the other types, this parameter is not needed.") - name: Optional[StrictStr] = Field(default=None, description="The name of the peer.") - wallet_id: Optional[StrictStr] = Field(default=None, alias="walletId") - trading_account: Optional[StrictStr] = Field(default=None, description="If this transaction is an exchange internal transfer, this field will be populated with the type of that trading account.", alias="tradingAccount") - __properties: ClassVar[List[str]] = ["type", "subType", "id", "name", "walletId", "tradingAccount"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SourceTransferPeerPathResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if id (nullable) is None - # and model_fields_set contains the field - if self.id is None and "id" in self.model_fields_set: - _dict['id'] = None - - # set to None if trading_account (nullable) is None - # and model_fields_set contains the field - if self.trading_account is None and "trading_account" in self.model_fields_set: - _dict['tradingAccount'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SourceTransferPeerPathResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "subType": obj.get("subType"), - "id": obj.get("id"), - "name": obj.get("name"), - "walletId": obj.get("walletId"), - "tradingAccount": obj.get("tradingAccount") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3BlZXJfcGF0aF90eXBlIGltcG9ydCBUcmFuc2ZlclBlZXJQYXRoVHlwZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTb3VyY2VUcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgU291cmNlIG9mIHRoZSB0cmFuc2FjdGlvbi4KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR5cGU6IFRyYW5zZmVyUGVlclBhdGhUeXBlCiAgICBzdWJfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkluIGNhc2UgdGhlIHR5cGUgaXMgc2V0IHRvIGBFWENIQU5HRV9BQ0NPVU5UYCBvciBgRklBVF9BQ0NPVU5UYCwgdGhlIHNwZWNpZmljIGV4Y2hhbmdlIHZlbmRvciBuYW1lIG9yIGZpYXQgdmVuZG9yIG5hbWUuIEluIGNhc2UgdGhlIHR5cGUgaXMgc2V0IHRvIGBJTlRFUk5BTF9XQUxMRVRgIG9yIGBFWFRFUk5BTF9XQUxMRVRgLCB0aGUgc3ViVHlwZSBpcyBzZXQgdG8gYEludGVybmFsYCBvciBgRXh0ZXJuYWxgLiIsIGFsaWFzPSJzdWJUeXBlIikKICAgIGlkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSBwZWVyLiBZb3UgY2FuIHJldHJpZXZlIHRoZSBJRCBvZiBlYWNoIHZlbnVlIG9iamVjdCB1c2luZyB0aGUgZW5kcG9pbnRzIGZvciBbbGlzdGluZyB2YXVsdCBhY2NvdW50c10oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS9nZXRwYWdlZHZhdWx0YWNjb3VudHMpLCBbbGlzdGluZyBleGNoYW5nZSBhY2NvdW50XShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2dldGV4Y2hhbmdlYWNjb3VudHMpLCBbbGlzdGluZyBmaWF0IGFjY291bnRzXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2dldGZpYXRhY2NvdW50cyksIFtsaXN0aW5nIGludGVybmFsIHdhbGxldHNdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9yZWZlcmVuY2UvZ2V0aW50ZXJuYWx3YWxsZXRzKSwgW2xpc3RpbmcgZXh0ZXJuYWwgd2FsbGV0c10oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS9nZXRleHRlcm5hbHdhbGxldHMpLCBbbGlzdGluZyBuZXR3b3JrIGNvbm5lY3Rpb25zXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2dldG5ldHdvcmtjb25uZWN0aW9ucykuIEZvciB0aGUgb3RoZXIgdHlwZXMsIHRoaXMgcGFyYW1ldGVyIGlzIG5vdCBuZWVkZWQuIikKICAgIG5hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgbmFtZSBvZiB0aGUgcGVlci4iKQogICAgd2FsbGV0X2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0id2FsbGV0SWQiKQogICAgdHJhZGluZ19hY2NvdW50OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSWYgdGhpcyB0cmFuc2FjdGlvbiBpcyBhbiBleGNoYW5nZSBpbnRlcm5hbCB0cmFuc2ZlciwgdGhpcyBmaWVsZCB3aWxsIGJlIHBvcHVsYXRlZCB3aXRoIHRoZSB0eXBlIG9mIHRoYXQgdHJhZGluZyBhY2NvdW50LiIsIGFsaWFzPSJ0cmFkaW5nQWNjb3VudCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiLCAic3ViVHlwZSIsICJpZCIsICJuYW1lIiwgIndhbGxldElkIiwgInRyYWRpbmdBY2NvdW50Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTb3VyY2VUcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgaWQgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmlkIGlzIE5vbmUgYW5kICJpZCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnaWQnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiB0cmFkaW5nX2FjY291bnQgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnRyYWRpbmdfYWNjb3VudCBpcyBOb25lIGFuZCAidHJhZGluZ19hY2NvdW50IiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wyd0cmFkaW5nQWNjb3VudCddID0gTm9uZQoKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNvdXJjZVRyYW5zZmVyUGVlclBhdGhSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAic3ViVHlwZSI6IG9iai5nZXQoInN1YlR5cGUiKSwKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJ3YWxsZXRJZCI6IG9iai5nZXQoIndhbGxldElkIiksCiAgICAgICAgICAgICJ0cmFkaW5nQWNjb3VudCI6IG9iai5nZXQoInRyYWRpbmdBY2NvdW50IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/spam_ownership_response.py b/fireblocks/models/spam_ownership_response.py index e9c94ce4..5a01ec2c 100644 --- a/fireblocks/models/spam_ownership_response.py +++ b/fireblocks/models/spam_ownership_response.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class SpamOwnershipResponse(BaseModel): - """ - SpamOwnershipResponse - """ # noqa: E501 - result: StrictBool = Field(description="Token spam result") - source: StrictStr = Field(description="Source of Token's Spam status value") - __properties: ClassVar[List[str]] = ["result", "source"] - - @field_validator('source') - def source_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['OWNER', 'SYSTEM']): - raise ValueError("must be one of enum values ('OWNER', 'SYSTEM')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SpamOwnershipResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SpamOwnershipResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "result": obj.get("result"), - "source": obj.get("source") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU3BhbU93bmVyc2hpcFJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNwYW1Pd25lcnNoaXBSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgcmVzdWx0OiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IlRva2VuIHNwYW0gcmVzdWx0IikKICAgIHNvdXJjZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlNvdXJjZSBvZiBUb2tlbidzIFNwYW0gc3RhdHVzIHZhbHVlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicmVzdWx0IiwgInNvdXJjZSJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignc291cmNlJykKICAgIGRlZiBzb3VyY2VfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnT1dORVInLCAnU1lTVEVNJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ09XTkVSJywgJ1NZU1RFTScpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTcGFtT3duZXJzaGlwUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3BhbU93bmVyc2hpcFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInJlc3VsdCI6IG9iai5nZXQoInJlc3VsdCIpLAogICAgICAgICAgICAic291cmNlIjogb2JqLmdldCgic291cmNlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/spam_token_response.py b/fireblocks/models/spam_token_response.py index 746de3c8..462d917d 100644 --- a/fireblocks/models/spam_token_response.py +++ b/fireblocks/models/spam_token_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class SpamTokenResponse(BaseModel): - """ - SpamTokenResponse - """ # noqa: E501 - result: StrictBool = Field(description="Token spam result") - __properties: ClassVar[List[str]] = ["result"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SpamTokenResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SpamTokenResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "result": obj.get("result") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTcGFtVG9rZW5SZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBTcGFtVG9rZW5SZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgcmVzdWx0OiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IlRva2VuIHNwYW0gcmVzdWx0IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicmVzdWx0Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTcGFtVG9rZW5SZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTcGFtVG9rZW5SZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJyZXN1bHQiOiBvYmouZ2V0KCJyZXN1bHQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/spei_address.py b/fireblocks/models/spei_address.py index 51e049b1..6fe57284 100644 --- a/fireblocks/models/spei_address.py +++ b/fireblocks/models/spei_address.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.account_holder_details import AccountHolderDetails -from typing import Optional, Set -from typing_extensions import Self - -class SpeiAddress(BaseModel): - """ - SpeiAddress - """ # noqa: E501 - account_holder: AccountHolderDetails = Field(alias="accountHolder") - bank_name: Optional[StrictStr] = Field(default=None, description="Name of the bank.", alias="bankName") - bank_account_number: StrictStr = Field(description="The bank account number for the SPEI transfer.", alias="bankAccountNumber") - __properties: ClassVar[List[str]] = ["accountHolder", "bankName", "bankAccountNumber"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SpeiAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of account_holder - if self.account_holder: - _dict['accountHolder'] = self.account_holder.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SpeiAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None, - "bankName": obj.get("bankName"), - "bankAccountNumber": obj.get("bankAccountNumber") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaG9sZGVyX2RldGFpbHMgaW1wb3J0IEFjY291bnRIb2xkZXJEZXRhaWxzCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNwZWlBZGRyZXNzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNwZWlBZGRyZXNzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhY2NvdW50X2hvbGRlcjogQWNjb3VudEhvbGRlckRldGFpbHMgPSBGaWVsZChhbGlhcz0iYWNjb3VudEhvbGRlciIpCiAgICBiYW5rX25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOYW1lIG9mIHRoZSBiYW5rLiIsIGFsaWFzPSJiYW5rTmFtZSIpCiAgICBiYW5rX2FjY291bnRfbnVtYmVyOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGJhbmsgYWNjb3VudCBudW1iZXIgZm9yIHRoZSBTUEVJIHRyYW5zZmVyLiIsIGFsaWFzPSJiYW5rQWNjb3VudE51bWJlciIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFjY291bnRIb2xkZXIiLCAiYmFua05hbWUiLCAiYmFua0FjY291bnROdW1iZXIiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNwZWlBZGRyZXNzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYWNjb3VudF9ob2xkZXIKICAgICAgICBpZiBzZWxmLmFjY291bnRfaG9sZGVyOgogICAgICAgICAgICBfZGljdFsnYWNjb3VudEhvbGRlciddID0gc2VsZi5hY2NvdW50X2hvbGRlci50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNwZWlBZGRyZXNzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFjY291bnRIb2xkZXIiOiBBY2NvdW50SG9sZGVyRGV0YWlscy5mcm9tX2RpY3Qob2JqWyJhY2NvdW50SG9sZGVyIl0pIGlmIG9iai5nZXQoImFjY291bnRIb2xkZXIiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJiYW5rTmFtZSI6IG9iai5nZXQoImJhbmtOYW1lIiksCiAgICAgICAgICAgICJiYW5rQWNjb3VudE51bWJlciI6IG9iai5nZXQoImJhbmtBY2NvdW50TnVtYmVyIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/spei_advanced_payment_info.py b/fireblocks/models/spei_advanced_payment_info.py index ce4ea847..0e80ee53 100644 --- a/fireblocks/models/spei_advanced_payment_info.py +++ b/fireblocks/models/spei_advanced_payment_info.py @@ -1,118 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class SpeiAdvancedPaymentInfo(BaseModel): - """ - Advanced SPEI payment information for Mexican bank transfers with full details - """ # noqa: E501 - rail: StrictStr = Field(description="The payment rail type for SPEI transfers") - addressing_system: StrictStr = Field(description="The addressing system used for SPEI transfers", alias="addressingSystem") - account_holder_given_name: StrictStr = Field(description="The given name (first name) of the account holder", alias="accountHolderGivenName") - account_holder_surname: StrictStr = Field(description="The surname (last name) of the account holder", alias="accountHolderSurname") - country: StrictStr = Field(description="The country for the transfer (ISO 3166-1 alpha-2 code)") - bank_name: Optional[StrictStr] = Field(default=None, description="The name of the bank", alias="bankName") - beneficiary_rfc: Optional[StrictStr] = Field(default=None, description="The RFC (Registro Federal de Contribuyentes) of the beneficiary", alias="beneficiaryRfc") - sender_document_id: Optional[StrictStr] = Field(default=None, description="The document ID of the sender", alias="senderDocumentId") - clabe: StrictStr = Field(description="The CLABE (Clave Bancaria Estandarizada) number") - __properties: ClassVar[List[str]] = ["rail", "addressingSystem", "accountHolderGivenName", "accountHolderSurname", "country", "bankName", "beneficiaryRfc", "senderDocumentId", "clabe"] - - @field_validator('rail') - def rail_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['SPEI']): - raise ValueError("must be one of enum values ('SPEI')") - return value - - @field_validator('addressing_system') - def addressing_system_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['CLABE']): - raise ValueError("must be one of enum values ('CLABE')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SpeiAdvancedPaymentInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SpeiAdvancedPaymentInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "rail": obj.get("rail"), - "addressingSystem": obj.get("addressingSystem"), - "accountHolderGivenName": obj.get("accountHolderGivenName"), - "accountHolderSurname": obj.get("accountHolderSurname"), - "country": obj.get("country"), - "bankName": obj.get("bankName"), - "beneficiaryRfc": obj.get("beneficiaryRfc"), - "senderDocumentId": obj.get("senderDocumentId"), - "clabe": obj.get("clabe") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNwZWlBZHZhbmNlZFBheW1lbnRJbmZvKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEFkdmFuY2VkIFNQRUkgcGF5bWVudCBpbmZvcm1hdGlvbiBmb3IgTWV4aWNhbiBiYW5rIHRyYW5zZmVycyB3aXRoIGZ1bGwgZGV0YWlscwogICAgIiIiICMgbm9xYTogRTUwMQogICAgcmFpbDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBwYXltZW50IHJhaWwgdHlwZSBmb3IgU1BFSSB0cmFuc2ZlcnMiKQogICAgYWRkcmVzc2luZ19zeXN0ZW06IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYWRkcmVzc2luZyBzeXN0ZW0gdXNlZCBmb3IgU1BFSSB0cmFuc2ZlcnMiLCBhbGlhcz0iYWRkcmVzc2luZ1N5c3RlbSIpCiAgICBhY2NvdW50X2hvbGRlcl9naXZlbl9uYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGdpdmVuIG5hbWUgKGZpcnN0IG5hbWUpIG9mIHRoZSBhY2NvdW50IGhvbGRlciIsIGFsaWFzPSJhY2NvdW50SG9sZGVyR2l2ZW5OYW1lIikKICAgIGFjY291bnRfaG9sZGVyX3N1cm5hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgc3VybmFtZSAobGFzdCBuYW1lKSBvZiB0aGUgYWNjb3VudCBob2xkZXIiLCBhbGlhcz0iYWNjb3VudEhvbGRlclN1cm5hbWUiKQogICAgY291bnRyeTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBjb3VudHJ5IGZvciB0aGUgdHJhbnNmZXIgKElTTyAzMTY2LTEgYWxwaGEtMiBjb2RlKSIpCiAgICBiYW5rX25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgbmFtZSBvZiB0aGUgYmFuayIsIGFsaWFzPSJiYW5rTmFtZSIpCiAgICBiZW5lZmljaWFyeV9yZmM6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgUkZDIChSZWdpc3RybyBGZWRlcmFsIGRlIENvbnRyaWJ1eWVudGVzKSBvZiB0aGUgYmVuZWZpY2lhcnkiLCBhbGlhcz0iYmVuZWZpY2lhcnlSZmMiKQogICAgc2VuZGVyX2RvY3VtZW50X2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGRvY3VtZW50IElEIG9mIHRoZSBzZW5kZXIiLCBhbGlhcz0ic2VuZGVyRG9jdW1lbnRJZCIpCiAgICBjbGFiZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBDTEFCRSAoQ2xhdmUgQmFuY2FyaWEgRXN0YW5kYXJpemFkYSkgbnVtYmVyIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicmFpbCIsICJhZGRyZXNzaW5nU3lzdGVtIiwgImFjY291bnRIb2xkZXJHaXZlbk5hbWUiLCAiYWNjb3VudEhvbGRlclN1cm5hbWUiLCAiY291bnRyeSIsICJiYW5rTmFtZSIsICJiZW5lZmljaWFyeVJmYyIsICJzZW5kZXJEb2N1bWVudElkIiwgImNsYWJlIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdyYWlsJykKICAgIGRlZiByYWlsX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ1NQRUknXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnU1BFSScpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhZGRyZXNzaW5nX3N5c3RlbScpCiAgICBkZWYgYWRkcmVzc2luZ19zeXN0ZW1fdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnQ0xBQkUnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnQ0xBQkUnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3BlaUFkdmFuY2VkUGF5bWVudEluZm8gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3BlaUFkdmFuY2VkUGF5bWVudEluZm8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicmFpbCI6IG9iai5nZXQoInJhaWwiKSwKICAgICAgICAgICAgImFkZHJlc3NpbmdTeXN0ZW0iOiBvYmouZ2V0KCJhZGRyZXNzaW5nU3lzdGVtIiksCiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyR2l2ZW5OYW1lIjogb2JqLmdldCgiYWNjb3VudEhvbGRlckdpdmVuTmFtZSIpLAogICAgICAgICAgICAiYWNjb3VudEhvbGRlclN1cm5hbWUiOiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyU3VybmFtZSIpLAogICAgICAgICAgICAiY291bnRyeSI6IG9iai5nZXQoImNvdW50cnkiKSwKICAgICAgICAgICAgImJhbmtOYW1lIjogb2JqLmdldCgiYmFua05hbWUiKSwKICAgICAgICAgICAgImJlbmVmaWNpYXJ5UmZjIjogb2JqLmdldCgiYmVuZWZpY2lhcnlSZmMiKSwKICAgICAgICAgICAgInNlbmRlckRvY3VtZW50SWQiOiBvYmouZ2V0KCJzZW5kZXJEb2N1bWVudElkIiksCiAgICAgICAgICAgICJjbGFiZSI6IG9iai5nZXQoImNsYWJlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/spei_basic_payment_info.py b/fireblocks/models/spei_basic_payment_info.py index d71d0418..eb0ea05a 100644 --- a/fireblocks/models/spei_basic_payment_info.py +++ b/fireblocks/models/spei_basic_payment_info.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class SpeiBasicPaymentInfo(BaseModel): - """ - Basic SPEI payment information for Mexican bank transfers - """ # noqa: E501 - spei_clabe: StrictStr = Field(description="The CLABE (Clave Bancaria Estandarizada) number for SPEI transfers", alias="speiClabe") - spei_name: Optional[StrictStr] = Field(default=None, description="The name associated with the SPEI account", alias="speiName") - __properties: ClassVar[List[str]] = ["speiClabe", "speiName"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SpeiBasicPaymentInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SpeiBasicPaymentInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "speiClabe": obj.get("speiClabe"), - "speiName": obj.get("speiName") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTcGVpQmFzaWNQYXltZW50SW5mbyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBCYXNpYyBTUEVJIHBheW1lbnQgaW5mb3JtYXRpb24gZm9yIE1leGljYW4gYmFuayB0cmFuc2ZlcnMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHNwZWlfY2xhYmU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgQ0xBQkUgKENsYXZlIEJhbmNhcmlhIEVzdGFuZGFyaXphZGEpIG51bWJlciBmb3IgU1BFSSB0cmFuc2ZlcnMiLCBhbGlhcz0ic3BlaUNsYWJlIikKICAgIHNwZWlfbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgU1BFSSBhY2NvdW50IiwgYWxpYXM9InNwZWlOYW1lIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3BlaUNsYWJlIiwgInNwZWlOYW1lIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTcGVpQmFzaWNQYXltZW50SW5mbyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTcGVpQmFzaWNQYXltZW50SW5mbyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzcGVpQ2xhYmUiOiBvYmouZ2V0KCJzcGVpQ2xhYmUiKSwKICAgICAgICAgICAgInNwZWlOYW1lIjogb2JqLmdldCgic3BlaU5hbWUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/spei_destination.py b/fireblocks/models/spei_destination.py index f18f1141..a004939d 100644 --- a/fireblocks/models/spei_destination.py +++ b/fireblocks/models/spei_destination.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from fireblocks.models.spei_address import SpeiAddress -from typing import Optional, Set -from typing_extensions import Self - -class SpeiDestination(BaseModel): - """ - SpeiDestination - """ # noqa: E501 - type: StrictStr - address: SpeiAddress - __properties: ClassVar[List[str]] = ["type", "address"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['SPEI']): - raise ValueError("must be one of enum values ('SPEI')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SpeiDestination from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of address - if self.address: - _dict['address'] = self.address.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SpeiDestination from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "address": SpeiAddress.from_dict(obj["address"]) if obj.get("address") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwZWlfYWRkcmVzcyBpbXBvcnQgU3BlaUFkZHJlc3MKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU3BlaURlc3RpbmF0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNwZWlEZXN0aW5hdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogU3RyaWN0U3RyCiAgICBhZGRyZXNzOiBTcGVpQWRkcmVzcwogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgImFkZHJlc3MiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3R5cGUnKQogICAgZGVmIHR5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnU1BFSSddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdTUEVJJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNwZWlEZXN0aW5hdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFkZHJlc3MKICAgICAgICBpZiBzZWxmLmFkZHJlc3M6CiAgICAgICAgICAgIF9kaWN0WydhZGRyZXNzJ10gPSBzZWxmLmFkZHJlc3MudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTcGVpRGVzdGluYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImFkZHJlc3MiOiBTcGVpQWRkcmVzcy5mcm9tX2RpY3Qob2JqWyJhZGRyZXNzIl0pIGlmIG9iai5nZXQoImFkZHJlc3MiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/split_request.py b/fireblocks/models/split_request.py index 0050124b..f3667093 100644 --- a/fireblocks/models/split_request.py +++ b/fireblocks/models/split_request.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.fee_level import FeeLevel -from typing import Optional, Set -from typing_extensions import Self - -class SplitRequest(BaseModel): - """ - SplitRequest - """ # noqa: E501 - id: StrictStr = Field(description="id of position to split") - amount: StrictStr = Field(description="Amount of tokens to be transferred to the new stake account.") - fee: Optional[StrictStr] = Field(default=None, description="Represents the fee for a transaction, which can be specified as a percentage value. Only one of fee/feeLevel is required.") - fee_level: Optional[FeeLevel] = Field(default=None, alias="feeLevel") - tx_note: Optional[StrictStr] = Field(default=None, description="The note to associate with the split transactions.", alias="txNote") - __properties: ClassVar[List[str]] = ["id", "amount", "fee", "feeLevel", "txNote"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SplitRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SplitRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "amount": obj.get("amount"), - "fee": obj.get("fee"), - "feeLevel": obj.get("feeLevel"), - "txNote": obj.get("txNote") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZV9sZXZlbCBpbXBvcnQgRmVlTGV2ZWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU3BsaXRSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNwbGl0UmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJpZCBvZiBwb3NpdGlvbiB0byBzcGxpdCIpCiAgICBhbW91bnQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBbW91bnQgb2YgdG9rZW5zIHRvIGJlIHRyYW5zZmVycmVkIHRvIHRoZSBuZXcgc3Rha2UgYWNjb3VudC4iKQogICAgZmVlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUmVwcmVzZW50cyB0aGUgZmVlIGZvciBhIHRyYW5zYWN0aW9uLCB3aGljaCBjYW4gYmUgc3BlY2lmaWVkIGFzIGEgcGVyY2VudGFnZSB2YWx1ZS4gT25seSBvbmUgb2YgZmVlL2ZlZUxldmVsIGlzIHJlcXVpcmVkLiIpCiAgICBmZWVfbGV2ZWw6IE9wdGlvbmFsW0ZlZUxldmVsXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImZlZUxldmVsIikKICAgIHR4X25vdGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgbm90ZSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgc3BsaXQgdHJhbnNhY3Rpb25zLiIsIGFsaWFzPSJ0eE5vdGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJhbW91bnQiLCAiZmVlIiwgImZlZUxldmVsIiwgInR4Tm90ZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3BsaXRSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNwbGl0UmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKSwKICAgICAgICAgICAgImZlZSI6IG9iai5nZXQoImZlZSIpLAogICAgICAgICAgICAiZmVlTGV2ZWwiOiBvYmouZ2V0KCJmZWVMZXZlbCIpLAogICAgICAgICAgICAidHhOb3RlIjogb2JqLmdldCgidHhOb3RlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/split_response.py b/fireblocks/models/split_response.py index d943f610..e37170ba 100644 --- a/fireblocks/models/split_response.py +++ b/fireblocks/models/split_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class SplitResponse(BaseModel): - """ - SplitResponse - """ # noqa: E501 - id: StrictStr = Field(description="The unique identifier of the new staking position") - __properties: ClassVar[List[str]] = ["id"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SplitResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SplitResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFNwbGl0UmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgU3BsaXRSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIG5ldyBzdGFraW5nIHBvc2l0aW9uIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFNwbGl0UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3BsaXRSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/st_eth_blockchain_data.py b/fireblocks/models/st_eth_blockchain_data.py index 81913e36..d77eedce 100644 --- a/fireblocks/models/st_eth_blockchain_data.py +++ b/fireblocks/models/st_eth_blockchain_data.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class StEthBlockchainData(BaseModel): - """ - Additional fields per blockchain for Staked Ethereum (STETH_ETH) - can be empty or missing if not initialized or no additional info exists. - """ # noqa: E501 - total_withdrawable_amount: StrictStr = Field(description="The total amount available for withdrawal.", alias="totalWithdrawableAmount") - total_inactive_amount: StrictStr = Field(description="The total inactive amount.", alias="totalInactiveAmount") - __properties: ClassVar[List[str]] = ["totalWithdrawableAmount", "totalInactiveAmount"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of StEthBlockchainData from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of StEthBlockchainData from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "totalWithdrawableAmount": obj.get("totalWithdrawableAmount"), - "totalInactiveAmount": obj.get("totalInactiveAmount") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFN0RXRoQmxvY2tjaGFpbkRhdGEoQmFzZU1vZGVsKToKICAgICIiIgogICAgQWRkaXRpb25hbCBmaWVsZHMgcGVyIGJsb2NrY2hhaW4gZm9yIFN0YWtlZCBFdGhlcmV1bSAoU1RFVEhfRVRIKSAtIGNhbiBiZSBlbXB0eSBvciBtaXNzaW5nIGlmIG5vdCBpbml0aWFsaXplZCBvciBubyBhZGRpdGlvbmFsIGluZm8gZXhpc3RzLgogICAgIiIiICMgbm9xYTogRTUwMQogICAgdG90YWxfd2l0aGRyYXdhYmxlX2Ftb3VudDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB0b3RhbCBhbW91bnQgYXZhaWxhYmxlIGZvciB3aXRoZHJhd2FsLiIsIGFsaWFzPSJ0b3RhbFdpdGhkcmF3YWJsZUFtb3VudCIpCiAgICB0b3RhbF9pbmFjdGl2ZV9hbW91bnQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdG90YWwgaW5hY3RpdmUgYW1vdW50LiIsIGFsaWFzPSJ0b3RhbEluYWN0aXZlQW1vdW50IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidG90YWxXaXRoZHJhd2FibGVBbW91bnQiLCAidG90YWxJbmFjdGl2ZUFtb3VudCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3RFdGhCbG9ja2NoYWluRGF0YSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTdEV0aEJsb2NrY2hhaW5EYXRhIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInRvdGFsV2l0aGRyYXdhYmxlQW1vdW50Ijogb2JqLmdldCgidG90YWxXaXRoZHJhd2FibGVBbW91bnQiKSwKICAgICAgICAgICAgInRvdGFsSW5hY3RpdmVBbW91bnQiOiBvYmouZ2V0KCJ0b3RhbEluYWN0aXZlQW1vdW50IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/stake_request.py b/fireblocks/models/stake_request.py index e9e23579..ea7591b3 100644 --- a/fireblocks/models/stake_request.py +++ b/fireblocks/models/stake_request.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.fee_level import FeeLevel -from fireblocks.models.staking_provider import StakingProvider -from typing import Optional, Set -from typing_extensions import Self - -class StakeRequest(BaseModel): - """ - StakeRequest - """ # noqa: E501 - vault_account_id: StrictStr = Field(description="The Fireblocks vault account ID that will source the funds for staking.", alias="vaultAccountId") - provider_id: StakingProvider = Field(alias="providerId") - stake_amount: StrictStr = Field(description="The amount of tokens to stake. The amount may be truncated to match the chain's decimal precision requirements.", alias="stakeAmount") - tx_note: Optional[StrictStr] = Field(default=None, description="Optional note or comment to associate with the stake transaction. This note will be included in transaction records and can be used for tracking or audit purposes.", alias="txNote") - fee: Optional[StrictStr] = Field(default=None, description="Optional transaction fee. Controls the priority and cost of the blockchain transaction. Only one of 'fee' or 'feeLevel' should be provided; if both are specified, 'feeLevel' takes precedence.") - fee_level: Optional[FeeLevel] = Field(default=None, alias="feeLevel") - chain_descriptor: Optional[StrictStr] = Field(default=None, description="Protocol identifier for the staking operation", alias="chainDescriptor") - id: Optional[StrictStr] = Field(default=None, description="Applies only to Ethereum compounding validator staking (Pectra/EIP-7251). The ID of an existing staking position to add additional stake to. When provided, adds stake to the specified position instead of creating a new one. Requires 'isCompoundingValidator' to be true.") - is_compounding_validator: Optional[StrictBool] = Field(default=None, description="Applies only to Ethereum staking. Indicates whether to use a compounding validator (see Pectra/EIP-7251). When true, creates a position that supports adding additional stake via the 'id' parameter. If not provided, defaults to false and a legacy (non-compounding) validator will be used.", alias="isCompoundingValidator") - __properties: ClassVar[List[str]] = ["vaultAccountId", "providerId", "stakeAmount", "txNote", "fee", "feeLevel", "chainDescriptor", "id", "isCompoundingValidator"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of StakeRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of StakeRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "vaultAccountId": obj.get("vaultAccountId"), - "providerId": obj.get("providerId"), - "stakeAmount": obj.get("stakeAmount"), - "txNote": obj.get("txNote"), - "fee": obj.get("fee"), - "feeLevel": obj.get("feeLevel"), - "chainDescriptor": obj.get("chainDescriptor"), - "id": obj.get("id"), - "isCompoundingValidator": obj.get("isCompoundingValidator") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZV9sZXZlbCBpbXBvcnQgRmVlTGV2ZWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zdGFraW5nX3Byb3ZpZGVyIGltcG9ydCBTdGFraW5nUHJvdmlkZXIKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU3Rha2VSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFN0YWtlUmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgdmF1bHRfYWNjb3VudF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBGaXJlYmxvY2tzIHZhdWx0IGFjY291bnQgSUQgdGhhdCB3aWxsIHNvdXJjZSB0aGUgZnVuZHMgZm9yIHN0YWtpbmcuIiwgYWxpYXM9InZhdWx0QWNjb3VudElkIikKICAgIHByb3ZpZGVyX2lkOiBTdGFraW5nUHJvdmlkZXIgPSBGaWVsZChhbGlhcz0icHJvdmlkZXJJZCIpCiAgICBzdGFrZV9hbW91bnQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYW1vdW50IG9mIHRva2VucyB0byBzdGFrZS4gVGhlIGFtb3VudCBtYXkgYmUgdHJ1bmNhdGVkIHRvIG1hdGNoIHRoZSBjaGFpbidzIGRlY2ltYWwgcHJlY2lzaW9uIHJlcXVpcmVtZW50cy4iLCBhbGlhcz0ic3Rha2VBbW91bnQiKQogICAgdHhfbm90ZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik9wdGlvbmFsIG5vdGUgb3IgY29tbWVudCB0byBhc3NvY2lhdGUgd2l0aCB0aGUgc3Rha2UgdHJhbnNhY3Rpb24uIFRoaXMgbm90ZSB3aWxsIGJlIGluY2x1ZGVkIGluIHRyYW5zYWN0aW9uIHJlY29yZHMgYW5kIGNhbiBiZSB1c2VkIGZvciB0cmFja2luZyBvciBhdWRpdCBwdXJwb3Nlcy4iLCBhbGlhcz0idHhOb3RlIikKICAgIGZlZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik9wdGlvbmFsIHRyYW5zYWN0aW9uIGZlZS4gQ29udHJvbHMgdGhlIHByaW9yaXR5IGFuZCBjb3N0IG9mIHRoZSBibG9ja2NoYWluIHRyYW5zYWN0aW9uLiBPbmx5IG9uZSBvZiAnZmVlJyBvciAnZmVlTGV2ZWwnIHNob3VsZCBiZSBwcm92aWRlZDsgaWYgYm90aCBhcmUgc3BlY2lmaWVkLCAnZmVlTGV2ZWwnIHRha2VzIHByZWNlZGVuY2UuIikKICAgIGZlZV9sZXZlbDogT3B0aW9uYWxbRmVlTGV2ZWxdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZmVlTGV2ZWwiKQogICAgY2hhaW5fZGVzY3JpcHRvcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlByb3RvY29sIGlkZW50aWZpZXIgZm9yIHRoZSBzdGFraW5nIG9wZXJhdGlvbiIsIGFsaWFzPSJjaGFpbkRlc2NyaXB0b3IiKQogICAgaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBcHBsaWVzIG9ubHkgdG8gRXRoZXJldW0gY29tcG91bmRpbmcgdmFsaWRhdG9yIHN0YWtpbmcgKFBlY3RyYS9FSVAtNzI1MSkuIFRoZSBJRCBvZiBhbiBleGlzdGluZyBzdGFraW5nIHBvc2l0aW9uIHRvIGFkZCBhZGRpdGlvbmFsIHN0YWtlIHRvLiBXaGVuIHByb3ZpZGVkLCBhZGRzIHN0YWtlIHRvIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW5zdGVhZCBvZiBjcmVhdGluZyBhIG5ldyBvbmUuIFJlcXVpcmVzICdpc0NvbXBvdW5kaW5nVmFsaWRhdG9yJyB0byBiZSB0cnVlLiIpCiAgICBpc19jb21wb3VuZGluZ192YWxpZGF0b3I6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQXBwbGllcyBvbmx5IHRvIEV0aGVyZXVtIHN0YWtpbmcuIEluZGljYXRlcyB3aGV0aGVyIHRvIHVzZSBhIGNvbXBvdW5kaW5nIHZhbGlkYXRvciAoc2VlIFBlY3RyYS9FSVAtNzI1MSkuIFdoZW4gdHJ1ZSwgY3JlYXRlcyBhIHBvc2l0aW9uIHRoYXQgc3VwcG9ydHMgYWRkaW5nIGFkZGl0aW9uYWwgc3Rha2UgdmlhIHRoZSAnaWQnIHBhcmFtZXRlci4gSWYgbm90IHByb3ZpZGVkLCBkZWZhdWx0cyB0byBmYWxzZSBhbmQgYSBsZWdhY3kgKG5vbi1jb21wb3VuZGluZykgdmFsaWRhdG9yIHdpbGwgYmUgdXNlZC4iLCBhbGlhcz0iaXNDb21wb3VuZGluZ1ZhbGlkYXRvciIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInZhdWx0QWNjb3VudElkIiwgInByb3ZpZGVySWQiLCAic3Rha2VBbW91bnQiLCAidHhOb3RlIiwgImZlZSIsICJmZWVMZXZlbCIsICJjaGFpbkRlc2NyaXB0b3IiLCAiaWQiLCAiaXNDb21wb3VuZGluZ1ZhbGlkYXRvciJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3Rha2VSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFN0YWtlUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ2YXVsdEFjY291bnRJZCI6IG9iai5nZXQoInZhdWx0QWNjb3VudElkIiksCiAgICAgICAgICAgICJwcm92aWRlcklkIjogb2JqLmdldCgicHJvdmlkZXJJZCIpLAogICAgICAgICAgICAic3Rha2VBbW91bnQiOiBvYmouZ2V0KCJzdGFrZUFtb3VudCIpLAogICAgICAgICAgICAidHhOb3RlIjogb2JqLmdldCgidHhOb3RlIiksCiAgICAgICAgICAgICJmZWUiOiBvYmouZ2V0KCJmZWUiKSwKICAgICAgICAgICAgImZlZUxldmVsIjogb2JqLmdldCgiZmVlTGV2ZWwiKSwKICAgICAgICAgICAgImNoYWluRGVzY3JpcHRvciI6IG9iai5nZXQoImNoYWluRGVzY3JpcHRvciIpLAogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAiaXNDb21wb3VuZGluZ1ZhbGlkYXRvciI6IG9iai5nZXQoImlzQ29tcG91bmRpbmdWYWxpZGF0b3IiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/stake_response.py b/fireblocks/models/stake_response.py index f1ae59fb..3ec0c0d8 100644 --- a/fireblocks/models/stake_response.py +++ b/fireblocks/models/stake_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class StakeResponse(BaseModel): - """ - StakeResponse - """ # noqa: E501 - id: StrictStr = Field(description="The unique identifier of the staking position") - __properties: ClassVar[List[str]] = ["id"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of StakeResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of StakeResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFN0YWtlUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgU3Rha2VSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHN0YWtpbmcgcG9zaXRpb24iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3Rha2VSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTdGFrZVJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/staking_positions_paginated_response.py b/fireblocks/models/staking_positions_paginated_response.py new file mode 100644 index 00000000..5a713a42 --- /dev/null +++ b/fireblocks/models/staking_positions_paginated_response.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvc2l0aW9uIGltcG9ydCBQb3NpdGlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTdGFraW5nUG9zaXRpb25zUGFnaW5hdGVkUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgU3Rha2luZ1Bvc2l0aW9uc1BhZ2luYXRlZFJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkYXRhOiBMaXN0W1Bvc2l0aW9uXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGF0YSBvZiB0aGUgY3VycmVudCBwYWdlIG9mIHN0YWtpbmcgcG9zaXRpb25zIikKICAgIG5leHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgY3Vyc29yIGZvciB0aGUgbmV4dCBwYWdlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZGF0YSIsICJuZXh0Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTdGFraW5nUG9zaXRpb25zUGFnaW5hdGVkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGF0YSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgZm9yIF9pdGVtX2RhdGEgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZGF0YToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2RhdGEudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gX2l0ZW1zCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBuZXh0IChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5uZXh0IGlzIE5vbmUgYW5kICJuZXh0IiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WyduZXh0J10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3Rha2luZ1Bvc2l0aW9uc1BhZ2luYXRlZFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRhdGEiOiBbUG9zaXRpb24uZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJkYXRhIl1dIGlmIG9iai5nZXQoImRhdGEiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJuZXh0Ijogb2JqLmdldCgibmV4dCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/staking_provider.py b/fireblocks/models/staking_provider.py index 9c036141..ec646271 100644 --- a/fireblocks/models/staking_provider.py +++ b/fireblocks/models/staking_provider.py @@ -1,44 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class StakingProvider(str, Enum): - """ - The unique identifier of the staking provider - """ - - """ - allowed enum values - """ - KILN = 'kiln' - FIGMENT = 'figment' - LIDO = 'lido' - P2P = 'p2p' - BLOCKDAEMON = 'blockdaemon' - GALAXY = 'galaxy' - PIERTWO = 'pierTwo' - KRAKEN = 'kraken' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of StakingProvider from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBTdGFraW5nUHJvdmlkZXIoc3RyLCBFbnVtKToKICAgICIiIgogICAgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBzdGFraW5nIHByb3ZpZGVyCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgS0lMTiA9ICdraWxuJwogICAgRklHTUVOVCA9ICdmaWdtZW50JwogICAgTElETyA9ICdsaWRvJwogICAgUDJQID0gJ3AycCcKICAgIEJMT0NLREFFTU9OID0gJ2Jsb2NrZGFlbW9uJwogICAgR0FMQVhZID0gJ2dhbGF4eScKICAgIFBJRVJUV08gPSAncGllclR3bycKICAgIEtSQUtFTiA9ICdrcmFrZW4nCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3Rha2luZ1Byb3ZpZGVyIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/status.py b/fireblocks/models/status.py index cd7e4a90..214a43a7 100644 --- a/fireblocks/models/status.py +++ b/fireblocks/models/status.py @@ -1,104 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class Status(BaseModel): - """ - Status - """ # noqa: E501 - status: StrictStr = Field(description="The status of the command") - type: StrictStr = Field(description="The type of the command") - __properties: ClassVar[List[str]] = ["status", "type"] - - @field_validator('status') - def status_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['WAITING_FOR_APPROVAL', 'APPROVED', 'CANCELLED', 'REJECTED', 'COMPLETED']): - raise ValueError("must be one of enum values ('WAITING_FOR_APPROVAL', 'APPROVED', 'CANCELLED', 'REJECTED', 'COMPLETED')") - return value - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['PAIR_API_KEY', 'UPDATE_CALLBACK_HANDLER', 'UNPAIR_API_KEY']): - raise ValueError("must be one of enum values ('PAIR_API_KEY', 'UPDATE_CALLBACK_HANDLER', 'UNPAIR_API_KEY')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of Status from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of Status from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "status": obj.get("status"), - "type": obj.get("type") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU3RhdHVzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFN0YXR1cwogICAgIiIiICMgbm9xYTogRTUwMQogICAgc3RhdHVzOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHN0YXR1cyBvZiB0aGUgY29tbWFuZCIpCiAgICB0eXBlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHR5cGUgb2YgdGhlIGNvbW1hbmQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzdGF0dXMiLCAidHlwZSJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignc3RhdHVzJykKICAgIGRlZiBzdGF0dXNfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnV0FJVElOR19GT1JfQVBQUk9WQUwnLCAnQVBQUk9WRUQnLCAnQ0FOQ0VMTEVEJywgJ1JFSkVDVEVEJywgJ0NPTVBMRVRFRCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdXQUlUSU5HX0ZPUl9BUFBST1ZBTCcsICdBUFBST1ZFRCcsICdDQU5DRUxMRUQnLCAnUkVKRUNURUQnLCAnQ09NUExFVEVEJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3R5cGUnKQogICAgZGVmIHR5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnUEFJUl9BUElfS0VZJywgJ1VQREFURV9DQUxMQkFDS19IQU5ETEVSJywgJ1VOUEFJUl9BUElfS0VZJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ1BBSVJfQVBJX0tFWScsICdVUERBVEVfQ0FMTEJBQ0tfSEFORExFUicsICdVTlBBSVJfQVBJX0tFWScpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTdGF0dXMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3RhdHVzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/stellar_ripple_create_params_dto.py b/fireblocks/models/stellar_ripple_create_params_dto.py index 6dfd2fdd..124c132b 100644 --- a/fireblocks/models/stellar_ripple_create_params_dto.py +++ b/fireblocks/models/stellar_ripple_create_params_dto.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class StellarRippleCreateParamsDto(BaseModel): - """ - StellarRippleCreateParamsDto - """ # noqa: E501 - symbol: StrictStr = Field(description="The symbol of the token") - name: StrictStr = Field(description="The name of the token") - issuer_address: StrictStr = Field(description="The address of the issuer of this token. Will be part of the identifier of this token on chain.", alias="issuerAddress") - __properties: ClassVar[List[str]] = ["symbol", "name", "issuerAddress"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of StellarRippleCreateParamsDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of StellarRippleCreateParamsDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "symbol": obj.get("symbol"), - "name": obj.get("name"), - "issuerAddress": obj.get("issuerAddress") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFN0ZWxsYXJSaXBwbGVDcmVhdGVQYXJhbXNEdG8oQmFzZU1vZGVsKToKICAgICIiIgogICAgU3RlbGxhclJpcHBsZUNyZWF0ZVBhcmFtc0R0bwogICAgIiIiICMgbm9xYTogRTUwMQogICAgc3ltYm9sOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHN5bWJvbCBvZiB0aGUgdG9rZW4iKQogICAgbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBuYW1lIG9mIHRoZSB0b2tlbiIpCiAgICBpc3N1ZXJfYWRkcmVzczogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBhZGRyZXNzIG9mIHRoZSBpc3N1ZXIgb2YgdGhpcyB0b2tlbi4gV2lsbCBiZSBwYXJ0IG9mIHRoZSBpZGVudGlmaWVyIG9mIHRoaXMgdG9rZW4gb24gY2hhaW4uIiwgYWxpYXM9Imlzc3VlckFkZHJlc3MiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzeW1ib2wiLCAibmFtZSIsICJpc3N1ZXJBZGRyZXNzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTdGVsbGFyUmlwcGxlQ3JlYXRlUGFyYW1zRHRvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFN0ZWxsYXJSaXBwbGVDcmVhdGVQYXJhbXNEdG8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3ltYm9sIjogb2JqLmdldCgic3ltYm9sIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAiaXNzdWVyQWRkcmVzcyI6IG9iai5nZXQoImlzc3VlckFkZHJlc3MiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/supported_block_chains_response.py b/fireblocks/models/supported_block_chains_response.py index bd6e618a..d2bf0f66 100644 --- a/fireblocks/models/supported_block_chains_response.py +++ b/fireblocks/models/supported_block_chains_response.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.supported_blockchain import SupportedBlockchain -from typing import Optional, Set -from typing_extensions import Self - -class SupportedBlockChainsResponse(BaseModel): - """ - SupportedBlockChainsResponse - """ # noqa: E501 - supports_all_blockchains: StrictBool = Field(description="Boolean representing if all blockchains are supported", alias="supportsAllBlockchains") - supported_blockchains: Optional[List[SupportedBlockchain]] = Field(default=None, description="List of supported blockchains", alias="supportedBlockchains") - __properties: ClassVar[List[str]] = ["supportsAllBlockchains", "supportedBlockchains"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SupportedBlockChainsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in supported_blockchains (list) - _items = [] - if self.supported_blockchains: - for _item_supported_blockchains in self.supported_blockchains: - if _item_supported_blockchains: - _items.append(_item_supported_blockchains.to_dict()) - _dict['supportedBlockchains'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SupportedBlockChainsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "supportsAllBlockchains": obj.get("supportsAllBlockchains"), - "supportedBlockchains": [SupportedBlockchain.from_dict(_item) for _item in obj["supportedBlockchains"]] if obj.get("supportedBlockchains") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zdXBwb3J0ZWRfYmxvY2tjaGFpbiBpbXBvcnQgU3VwcG9ydGVkQmxvY2tjaGFpbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTdXBwb3J0ZWRCbG9ja0NoYWluc1Jlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFN1cHBvcnRlZEJsb2NrQ2hhaW5zUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHN1cHBvcnRzX2FsbF9ibG9ja2NoYWluczogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJCb29sZWFuIHJlcHJlc2VudGluZyBpZiBhbGwgYmxvY2tjaGFpbnMgYXJlIHN1cHBvcnRlZCIsIGFsaWFzPSJzdXBwb3J0c0FsbEJsb2NrY2hhaW5zIikKICAgIHN1cHBvcnRlZF9ibG9ja2NoYWluczogT3B0aW9uYWxbTGlzdFtTdXBwb3J0ZWRCbG9ja2NoYWluXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJMaXN0IG9mIHN1cHBvcnRlZCBibG9ja2NoYWlucyIsIGFsaWFzPSJzdXBwb3J0ZWRCbG9ja2NoYWlucyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInN1cHBvcnRzQWxsQmxvY2tjaGFpbnMiLCAic3VwcG9ydGVkQmxvY2tjaGFpbnMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFN1cHBvcnRlZEJsb2NrQ2hhaW5zUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gc3VwcG9ydGVkX2Jsb2NrY2hhaW5zIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5zdXBwb3J0ZWRfYmxvY2tjaGFpbnM6CiAgICAgICAgICAgIGZvciBfaXRlbV9zdXBwb3J0ZWRfYmxvY2tjaGFpbnMgaW4gc2VsZi5zdXBwb3J0ZWRfYmxvY2tjaGFpbnM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9zdXBwb3J0ZWRfYmxvY2tjaGFpbnM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9zdXBwb3J0ZWRfYmxvY2tjaGFpbnMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnc3VwcG9ydGVkQmxvY2tjaGFpbnMnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3VwcG9ydGVkQmxvY2tDaGFpbnNSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzdXBwb3J0c0FsbEJsb2NrY2hhaW5zIjogb2JqLmdldCgic3VwcG9ydHNBbGxCbG9ja2NoYWlucyIpLAogICAgICAgICAgICAic3VwcG9ydGVkQmxvY2tjaGFpbnMiOiBbU3VwcG9ydGVkQmxvY2tjaGFpbi5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbInN1cHBvcnRlZEJsb2NrY2hhaW5zIl1dIGlmIG9iai5nZXQoInN1cHBvcnRlZEJsb2NrY2hhaW5zIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/supported_blockchain.py b/fireblocks/models/supported_blockchain.py index 33e23c2b..f33a68f1 100644 --- a/fireblocks/models/supported_blockchain.py +++ b/fireblocks/models/supported_blockchain.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class SupportedBlockchain(BaseModel): - """ - SupportedBlockchain - """ # noqa: E501 - id: StrictStr = Field(description="The ID of the blockchain") - legacy_id: StrictStr = Field(description="The old blockchain ID representation of the blockchain", alias="legacyId") - display_name: StrictStr = Field(description="The name of the blockchain", alias="displayName") - native_asset_id: StrictStr = Field(description="Native asset ID of this blockchain", alias="nativeAssetId") - __properties: ClassVar[List[str]] = ["id", "legacyId", "displayName", "nativeAssetId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SupportedBlockchain from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SupportedBlockchain from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "legacyId": obj.get("legacyId"), - "displayName": obj.get("displayName"), - "nativeAssetId": obj.get("nativeAssetId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFN1cHBvcnRlZEJsb2NrY2hhaW4oQmFzZU1vZGVsKToKICAgICIiIgogICAgU3VwcG9ydGVkQmxvY2tjaGFpbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGJsb2NrY2hhaW4iKQogICAgbGVnYWN5X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIG9sZCBibG9ja2NoYWluIElEIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBibG9ja2NoYWluIiwgYWxpYXM9ImxlZ2FjeUlkIikKICAgIGRpc3BsYXlfbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBuYW1lIG9mIHRoZSBibG9ja2NoYWluIiwgYWxpYXM9ImRpc3BsYXlOYW1lIikKICAgIG5hdGl2ZV9hc3NldF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249Ik5hdGl2ZSBhc3NldCBJRCBvZiB0aGlzIGJsb2NrY2hhaW4iLCBhbGlhcz0ibmF0aXZlQXNzZXRJZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgImxlZ2FjeUlkIiwgImRpc3BsYXlOYW1lIiwgIm5hdGl2ZUFzc2V0SWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFN1cHBvcnRlZEJsb2NrY2hhaW4gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3VwcG9ydGVkQmxvY2tjaGFpbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJsZWdhY3lJZCI6IG9iai5nZXQoImxlZ2FjeUlkIiksCiAgICAgICAgICAgICJkaXNwbGF5TmFtZSI6IG9iai5nZXQoImRpc3BsYXlOYW1lIiksCiAgICAgICAgICAgICJuYXRpdmVBc3NldElkIjogb2JqLmdldCgibmF0aXZlQXNzZXRJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/swift_address.py b/fireblocks/models/swift_address.py index f4799169..649935fc 100644 --- a/fireblocks/models/swift_address.py +++ b/fireblocks/models/swift_address.py @@ -1,104 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing_extensions import Annotated -from fireblocks.models.account_holder_details import AccountHolderDetails -from typing import Optional, Set -from typing_extensions import Self - -class SwiftAddress(BaseModel): - """ - SwiftAddress - """ # noqa: E501 - account_holder: AccountHolderDetails = Field(alias="accountHolder") - swift_code: Annotated[str, Field(strict=True)] = Field(alias="swiftCode") - routing_number: StrictStr = Field(description="Routing number identifying the bank account.", alias="routingNumber") - __properties: ClassVar[List[str]] = ["accountHolder", "swiftCode", "routingNumber"] - - @field_validator('swift_code') - def swift_code_validate_regular_expression(cls, value): - """Validates the regular expression""" - if not re.match(r"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$", value): - raise ValueError(r"must validate the regular expression /^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$/") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SwiftAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of account_holder - if self.account_holder: - _dict['accountHolder'] = self.account_holder.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SwiftAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None, - "swiftCode": obj.get("swiftCode"), - "routingNumber": obj.get("routingNumber") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9ob2xkZXJfZGV0YWlscyBpbXBvcnQgQWNjb3VudEhvbGRlckRldGFpbHMKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgU3dpZnRBZGRyZXNzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFN3aWZ0QWRkcmVzcwogICAgIiIiICMgbm9xYTogRTUwMQogICAgYWNjb3VudF9ob2xkZXI6IEFjY291bnRIb2xkZXJEZXRhaWxzID0gRmllbGQoYWxpYXM9ImFjY291bnRIb2xkZXIiKQogICAgc3dpZnRfY29kZTogQW5ub3RhdGVkW3N0ciwgRmllbGQoc3RyaWN0PVRydWUpXSA9IEZpZWxkKGFsaWFzPSJzd2lmdENvZGUiKQogICAgcm91dGluZ19udW1iZXI6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJSb3V0aW5nIG51bWJlciBpZGVudGlmeWluZyB0aGUgYmFuayBhY2NvdW50LiIsIGFsaWFzPSJyb3V0aW5nTnVtYmVyIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYWNjb3VudEhvbGRlciIsICJzd2lmdENvZGUiLCAicm91dGluZ051bWJlciJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignc3dpZnRfY29kZScpCiAgICBkZWYgc3dpZnRfY29kZV92YWxpZGF0ZV9yZWd1bGFyX2V4cHJlc3Npb24oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSByZWd1bGFyIGV4cHJlc3Npb24iIiIKICAgICAgICBpZiBub3QgcmUubWF0Y2gociJeW0EtWl17Nn1bQS1aMC05XXsyfShbQS1aMC05XXszfSk/JCIsIHZhbHVlKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihyIm11c3QgdmFsaWRhdGUgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiAvXltBLVpdezZ9W0EtWjAtOV17Mn0oW0EtWjAtOV17M30pPyQvIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTd2lmdEFkZHJlc3MgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhY2NvdW50X2hvbGRlcgogICAgICAgIGlmIHNlbGYuYWNjb3VudF9ob2xkZXI6CiAgICAgICAgICAgIF9kaWN0WydhY2NvdW50SG9sZGVyJ10gPSBzZWxmLmFjY291bnRfaG9sZGVyLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3dpZnRBZGRyZXNzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFjY291bnRIb2xkZXIiOiBBY2NvdW50SG9sZGVyRGV0YWlscy5mcm9tX2RpY3Qob2JqWyJhY2NvdW50SG9sZGVyIl0pIGlmIG9iai5nZXQoImFjY291bnRIb2xkZXIiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJzd2lmdENvZGUiOiBvYmouZ2V0KCJzd2lmdENvZGUiKSwKICAgICAgICAgICAgInJvdXRpbmdOdW1iZXIiOiBvYmouZ2V0KCJyb3V0aW5nTnVtYmVyIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/swift_destination.py b/fireblocks/models/swift_destination.py index 546b18df..2607b232 100644 --- a/fireblocks/models/swift_destination.py +++ b/fireblocks/models/swift_destination.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from fireblocks.models.swift_address import SwiftAddress -from typing import Optional, Set -from typing_extensions import Self - -class SwiftDestination(BaseModel): - """ - SwiftDestination - """ # noqa: E501 - type: StrictStr - address: SwiftAddress - __properties: ClassVar[List[str]] = ["type", "address"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['SWIFT']): - raise ValueError("must be one of enum values ('SWIFT')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SwiftDestination from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of address - if self.address: - _dict['address'] = self.address.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SwiftDestination from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "address": SwiftAddress.from_dict(obj["address"]) if obj.get("address") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN3aWZ0X2FkZHJlc3MgaW1wb3J0IFN3aWZ0QWRkcmVzcwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBTd2lmdERlc3RpbmF0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFN3aWZ0RGVzdGluYXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR5cGU6IFN0cmljdFN0cgogICAgYWRkcmVzczogU3dpZnRBZGRyZXNzCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiLCAiYWRkcmVzcyJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigndHlwZScpCiAgICBkZWYgdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydTV0lGVCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdTV0lGVCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTd2lmdERlc3RpbmF0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYWRkcmVzcwogICAgICAgIGlmIHNlbGYuYWRkcmVzczoKICAgICAgICAgICAgX2RpY3RbJ2FkZHJlc3MnXSA9IHNlbGYuYWRkcmVzcy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFN3aWZ0RGVzdGluYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImFkZHJlc3MiOiBTd2lmdEFkZHJlc3MuZnJvbV9kaWN0KG9ialsiYWRkcmVzcyJdKSBpZiBvYmouZ2V0KCJhZGRyZXNzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/system_message_info.py b/fireblocks/models/system_message_info.py index 8fb1b588..9686b880 100644 --- a/fireblocks/models/system_message_info.py +++ b/fireblocks/models/system_message_info.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class SystemMessageInfo(BaseModel): - """ - SystemMessageInfo - """ # noqa: E501 - type: Optional[StrictStr] = None - message: Optional[StrictStr] = Field(default=None, description="A response from Fireblocks that communicates a message about the health of the process being performed. If this object is returned with data, you should expect potential delays or incomplete transaction statuses.") - __properties: ClassVar[List[str]] = ["type", "message"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['WARN', 'BLOCK']): - raise ValueError("must be one of enum values ('WARN', 'BLOCK')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of SystemMessageInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of SystemMessageInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "message": obj.get("message") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFN5c3RlbU1lc3NhZ2VJbmZvKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFN5c3RlbU1lc3NhZ2VJbmZvCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgbWVzc2FnZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkEgcmVzcG9uc2UgZnJvbSBGaXJlYmxvY2tzIHRoYXQgY29tbXVuaWNhdGVzIGEgbWVzc2FnZSBhYm91dCB0aGUgaGVhbHRoIG9mIHRoZSBwcm9jZXNzIGJlaW5nIHBlcmZvcm1lZC4gSWYgdGhpcyBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCBkYXRhLCB5b3Ugc2hvdWxkIGV4cGVjdCBwb3RlbnRpYWwgZGVsYXlzIG9yIGluY29tcGxldGUgdHJhbnNhY3Rpb24gc3RhdHVzZXMuIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidHlwZSIsICJtZXNzYWdlIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCd0eXBlJykKICAgIGRlZiB0eXBlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydXQVJOJywgJ0JMT0NLJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ1dBUk4nLCAnQkxPQ0snKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3lzdGVtTWVzc2FnZUluZm8gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgU3lzdGVtTWVzc2FnZUluZm8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgIm1lc3NhZ2UiOiBvYmouZ2V0KCJtZXNzYWdlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tag.py b/fireblocks/models/tag.py index 3692e23c..a1e5f597 100644 --- a/fireblocks/models/tag.py +++ b/fireblocks/models/tag.py @@ -1,104 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.approval_request import ApprovalRequest -from typing import Optional, Set -from typing_extensions import Self - -class Tag(BaseModel): - """ - Tag - """ # noqa: E501 - id: StrictStr = Field(description="The unique identifier of the tag") - label: StrictStr = Field(description="The tag label") - description: Optional[StrictStr] = Field(default=None, description="Description for the tag") - color: Optional[StrictStr] = Field(default=None, description="The tag color in hex format") - is_protected: StrictBool = Field(description="Indication if the tag is a protected tag", alias="isProtected") - updated_at: Union[StrictFloat, StrictInt] = Field(description="The date and time the tag was last updated", alias="updatedAt") - pending_approval_request: Optional[ApprovalRequest] = Field(default=None, alias="pendingApprovalRequest") - __properties: ClassVar[List[str]] = ["id", "label", "description", "color", "isProtected", "updatedAt", "pendingApprovalRequest"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of Tag from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of pending_approval_request - if self.pending_approval_request: - _dict['pendingApprovalRequest'] = self.pending_approval_request.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of Tag from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "label": obj.get("label"), - "description": obj.get("description"), - "color": obj.get("color"), - "isProtected": obj.get("isProtected") if obj.get("isProtected") is not None else False, - "updatedAt": obj.get("updatedAt"), - "pendingApprovalRequest": ApprovalRequest.from_dict(obj["pendingApprovalRequest"]) if obj.get("pendingApprovalRequest") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hcHByb3ZhbF9yZXF1ZXN0IGltcG9ydCBBcHByb3ZhbFJlcXVlc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVGFnKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRhZwogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHRhZyIpCiAgICBsYWJlbDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB0YWcgbGFiZWwiKQogICAgZGVzY3JpcHRpb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXNjcmlwdGlvbiBmb3IgdGhlIHRhZyIpCiAgICBjb2xvcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSB0YWcgY29sb3IgaW4gaGV4IGZvcm1hdCIpCiAgICBpc19wcm90ZWN0ZWQ6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iSW5kaWNhdGlvbiBpZiB0aGUgdGFnIGlzIGEgcHJvdGVjdGVkIHRhZyIsIGFsaWFzPSJpc1Byb3RlY3RlZCIpCiAgICB1cGRhdGVkX2F0OiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGF0ZSBhbmQgdGltZSB0aGUgdGFnIHdhcyBsYXN0IHVwZGF0ZWQiLCBhbGlhcz0idXBkYXRlZEF0IikKICAgIHBlbmRpbmdfYXBwcm92YWxfcmVxdWVzdDogT3B0aW9uYWxbQXBwcm92YWxSZXF1ZXN0XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InBlbmRpbmdBcHByb3ZhbFJlcXVlc3QiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJsYWJlbCIsICJkZXNjcmlwdGlvbiIsICJjb2xvciIsICJpc1Byb3RlY3RlZCIsICJ1cGRhdGVkQXQiLCAicGVuZGluZ0FwcHJvdmFsUmVxdWVzdCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVGFnIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcGVuZGluZ19hcHByb3ZhbF9yZXF1ZXN0CiAgICAgICAgaWYgc2VsZi5wZW5kaW5nX2FwcHJvdmFsX3JlcXVlc3Q6CiAgICAgICAgICAgIF9kaWN0WydwZW5kaW5nQXBwcm92YWxSZXF1ZXN0J10gPSBzZWxmLnBlbmRpbmdfYXBwcm92YWxfcmVxdWVzdC50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRhZyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJsYWJlbCI6IG9iai5nZXQoImxhYmVsIiksCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IG9iai5nZXQoImRlc2NyaXB0aW9uIiksCiAgICAgICAgICAgICJjb2xvciI6IG9iai5nZXQoImNvbG9yIiksCiAgICAgICAgICAgICJpc1Byb3RlY3RlZCI6IG9iai5nZXQoImlzUHJvdGVjdGVkIikgaWYgb2JqLmdldCgiaXNQcm90ZWN0ZWQiKSBpcyBub3QgTm9uZSBlbHNlIEZhbHNlLAogICAgICAgICAgICAidXBkYXRlZEF0Ijogb2JqLmdldCgidXBkYXRlZEF0IiksCiAgICAgICAgICAgICJwZW5kaW5nQXBwcm92YWxSZXF1ZXN0IjogQXBwcm92YWxSZXF1ZXN0LmZyb21fZGljdChvYmpbInBlbmRpbmdBcHByb3ZhbFJlcXVlc3QiXSkgaWYgb2JqLmdldCgicGVuZGluZ0FwcHJvdmFsUmVxdWVzdCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/tag_attachment_operation_action.py b/fireblocks/models/tag_attachment_operation_action.py index ef6bbc71..5acaffea 100644 --- a/fireblocks/models/tag_attachment_operation_action.py +++ b/fireblocks/models/tag_attachment_operation_action.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TagAttachmentOperationAction(str, Enum): - """ - TagAttachmentOperationAction - """ - - """ - allowed enum values - """ - ATTACH = 'ATTACH' - DETACH = 'DETACH' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TagAttachmentOperationAction from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUYWdBdHRhY2htZW50T3BlcmF0aW9uQWN0aW9uKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIFRhZ0F0dGFjaG1lbnRPcGVyYXRpb25BY3Rpb24KICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBBVFRBQ0ggPSAnQVRUQUNIJwogICAgREVUQUNIID0gJ0RFVEFDSCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUYWdBdHRhY2htZW50T3BlcmF0aW9uQWN0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/tags_paged_response.py b/fireblocks/models/tags_paged_response.py index 96ea906f..382912ca 100644 --- a/fireblocks/models/tags_paged_response.py +++ b/fireblocks/models/tags_paged_response.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tag import Tag -from typing import Optional, Set -from typing_extensions import Self - -class TagsPagedResponse(BaseModel): - """ - TagsPagedResponse - """ # noqa: E501 - data: List[Tag] - next: Optional[StrictStr] = Field(description="Cursor to the next page") - __properties: ClassVar[List[str]] = ["data", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TagsPagedResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # set to None if next (nullable) is None - # and model_fields_set contains the field - if self.next is None and "next" in self.model_fields_set: - _dict['next'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TagsPagedResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [Tag.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRhZyBpbXBvcnQgVGFnCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRhZ3NQYWdlZFJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRhZ3NQYWdlZFJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkYXRhOiBMaXN0W1RhZ10KICAgIG5leHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZXNjcmlwdGlvbj0iQ3Vyc29yIHRvIHRoZSBuZXh0IHBhZ2UiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJkYXRhIiwgIm5leHQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRhZ3NQYWdlZFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGRhdGEgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmRhdGE6CiAgICAgICAgICAgIGZvciBfaXRlbV9kYXRhIGluIHNlbGYuZGF0YToKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2RhdGE6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9kYXRhLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2RhdGEnXSA9IF9pdGVtcwogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgbmV4dCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYubmV4dCBpcyBOb25lIGFuZCAibmV4dCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnbmV4dCddID0gTm9uZQoKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRhZ3NQYWdlZFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRhdGEiOiBbVGFnLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiZGF0YSJdXSBpZiBvYmouZ2V0KCJkYXRhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibmV4dCI6IG9iai5nZXQoIm5leHQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/templates_paginated_response.py b/fireblocks/models/templates_paginated_response.py index 0366d672..7ea15a3b 100644 --- a/fireblocks/models/templates_paginated_response.py +++ b/fireblocks/models/templates_paginated_response.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.lean_contract_dto import LeanContractDto -from typing import Optional, Set -from typing_extensions import Self - -class TemplatesPaginatedResponse(BaseModel): - """ - TemplatesPaginatedResponse - """ # noqa: E501 - data: List[LeanContractDto] = Field(description="The data of the current page") - next: Optional[StrictStr] = Field(default=None, description="The ID of the next page") - __properties: ClassVar[List[str]] = ["data", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TemplatesPaginatedResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # set to None if next (nullable) is None - # and model_fields_set contains the field - if self.next is None and "next" in self.model_fields_set: - _dict['next'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TemplatesPaginatedResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [LeanContractDto.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlYW5fY29udHJhY3RfZHRvIGltcG9ydCBMZWFuQ29udHJhY3REdG8KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVGVtcGxhdGVzUGFnaW5hdGVkUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgVGVtcGxhdGVzUGFnaW5hdGVkUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGRhdGE6IExpc3RbTGVhbkNvbnRyYWN0RHRvXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGF0YSBvZiB0aGUgY3VycmVudCBwYWdlIikKICAgIG5leHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIG5leHQgcGFnZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRhdGEiLCAibmV4dCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVGVtcGxhdGVzUGFnaW5hdGVkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGF0YSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgZm9yIF9pdGVtX2RhdGEgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZGF0YToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2RhdGEudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gX2l0ZW1zCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBuZXh0IChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5uZXh0IGlzIE5vbmUgYW5kICJuZXh0IiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WyduZXh0J10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVGVtcGxhdGVzUGFnaW5hdGVkUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZGF0YSI6IFtMZWFuQ29udHJhY3REdG8uZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJkYXRhIl1dIGlmIG9iai5nZXQoImRhdGEiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJuZXh0Ijogb2JqLmdldCgibmV4dCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/third_party_routing.py b/fireblocks/models/third_party_routing.py index ec49ee51..198fa22f 100644 --- a/fireblocks/models/third_party_routing.py +++ b/fireblocks/models/third_party_routing.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class ThirdPartyRouting(BaseModel): - """ - ThirdPartyRouting - """ # noqa: E501 - is_third_party_routing: Optional[StrictBool] = Field(default=None, alias="isThirdPartyRouting") - description: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["isThirdPartyRouting", "description"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ThirdPartyRouting from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ThirdPartyRouting from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "isThirdPartyRouting": obj.get("isThirdPartyRouting"), - "description": obj.get("description") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUaGlyZFBhcnR5Um91dGluZyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUaGlyZFBhcnR5Um91dGluZwogICAgIiIiICMgbm9xYTogRTUwMQogICAgaXNfdGhpcmRfcGFydHlfcm91dGluZzogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJpc1RoaXJkUGFydHlSb3V0aW5nIikKICAgIGRlc2NyaXB0aW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpc1RoaXJkUGFydHlSb3V0aW5nIiwgImRlc2NyaXB0aW9uIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUaGlyZFBhcnR5Um91dGluZyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUaGlyZFBhcnR5Um91dGluZyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpc1RoaXJkUGFydHlSb3V0aW5nIjogb2JqLmdldCgiaXNUaGlyZFBhcnR5Um91dGluZyIpLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBvYmouZ2V0KCJkZXNjcmlwdGlvbiIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/time_period_config.py b/fireblocks/models/time_period_config.py index bc72b832..2ca49919 100644 --- a/fireblocks/models/time_period_config.py +++ b/fireblocks/models/time_period_config.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.time_period_match_type import TimePeriodMatchType -from typing import Optional, Set -from typing_extensions import Self - -class TimePeriodConfig(BaseModel): - """ - Time period configuration - """ # noqa: E501 - seconds: StrictStr = Field(description="Time period in seconds") - initiator: TimePeriodMatchType - source: TimePeriodMatchType - destination: TimePeriodMatchType - __properties: ClassVar[List[str]] = ["seconds", "initiator", "source", "destination"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TimePeriodConfig from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TimePeriodConfig from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "seconds": obj.get("seconds"), - "initiator": obj.get("initiator"), - "source": obj.get("source"), - "destination": obj.get("destination") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudGltZV9wZXJpb2RfbWF0Y2hfdHlwZSBpbXBvcnQgVGltZVBlcmlvZE1hdGNoVHlwZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUaW1lUGVyaW9kQ29uZmlnKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRpbWUgcGVyaW9kIGNvbmZpZ3VyYXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHNlY29uZHM6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaW1lIHBlcmlvZCBpbiBzZWNvbmRzIikKICAgIGluaXRpYXRvcjogVGltZVBlcmlvZE1hdGNoVHlwZQogICAgc291cmNlOiBUaW1lUGVyaW9kTWF0Y2hUeXBlCiAgICBkZXN0aW5hdGlvbjogVGltZVBlcmlvZE1hdGNoVHlwZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzZWNvbmRzIiwgImluaXRpYXRvciIsICJzb3VyY2UiLCAiZGVzdGluYXRpb24iXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRpbWVQZXJpb2RDb25maWcgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVGltZVBlcmlvZENvbmZpZyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzZWNvbmRzIjogb2JqLmdldCgic2Vjb25kcyIpLAogICAgICAgICAgICAiaW5pdGlhdG9yIjogb2JqLmdldCgiaW5pdGlhdG9yIiksCiAgICAgICAgICAgICJzb3VyY2UiOiBvYmouZ2V0KCJzb3VyY2UiKSwKICAgICAgICAgICAgImRlc3RpbmF0aW9uIjogb2JqLmdldCgiZGVzdGluYXRpb24iKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/time_period_match_type.py b/fireblocks/models/time_period_match_type.py index b0e1d665..d14c9270 100644 --- a/fireblocks/models/time_period_match_type.py +++ b/fireblocks/models/time_period_match_type.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TimePeriodMatchType(str, Enum): - """ - Type of match for time period application - """ - - """ - allowed enum values - """ - PER_SINGLE_MATCH = 'PER_SINGLE_MATCH' - ACROSS_ALL_MATCHES = 'ACROSS_ALL_MATCHES' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TimePeriodMatchType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUaW1lUGVyaW9kTWF0Y2hUeXBlKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIFR5cGUgb2YgbWF0Y2ggZm9yIHRpbWUgcGVyaW9kIGFwcGxpY2F0aW9uCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgUEVSX1NJTkdMRV9NQVRDSCA9ICdQRVJfU0lOR0xFX01BVENIJwogICAgQUNST1NTX0FMTF9NQVRDSEVTID0gJ0FDUk9TU19BTExfTUFUQ0hFUycKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUaW1lUGVyaW9kTWF0Y2hUeXBlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/to_collateral_transaction.py b/fireblocks/models/to_collateral_transaction.py index 50a6e939..02e6c0f0 100644 --- a/fireblocks/models/to_collateral_transaction.py +++ b/fireblocks/models/to_collateral_transaction.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class ToCollateralTransaction(BaseModel): - """ - ToCollateralTransaction - """ # noqa: E501 - asset: Optional[StrictStr] = None - amount: Optional[StrictStr] = None - src_address: Optional[StrictStr] = Field(default=None, alias="srcAddress") - src_tag: Optional[StrictStr] = Field(default=None, description="optional", alias="srcTag") - fee: Optional[StrictStr] = Field(default=None, description="optional") - __properties: ClassVar[List[str]] = ["asset", "amount", "srcAddress", "srcTag", "fee"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ToCollateralTransaction from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ToCollateralTransaction from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "asset": obj.get("asset"), - "amount": obj.get("amount"), - "srcAddress": obj.get("srcAddress"), - "srcTag": obj.get("srcTag"), - "fee": obj.get("fee") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUb0NvbGxhdGVyYWxUcmFuc2FjdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUb0NvbGxhdGVyYWxUcmFuc2FjdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgYXNzZXQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBhbW91bnQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBzcmNfYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InNyY0FkZHJlc3MiKQogICAgc3JjX3RhZzogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Im9wdGlvbmFsIiwgYWxpYXM9InNyY1RhZyIpCiAgICBmZWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJvcHRpb25hbCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFzc2V0IiwgImFtb3VudCIsICJzcmNBZGRyZXNzIiwgInNyY1RhZyIsICJmZWUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRvQ29sbGF0ZXJhbFRyYW5zYWN0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRvQ29sbGF0ZXJhbFRyYW5zYWN0aW9uIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFzc2V0Ijogb2JqLmdldCgiYXNzZXQiKSwKICAgICAgICAgICAgImFtb3VudCI6IG9iai5nZXQoImFtb3VudCIpLAogICAgICAgICAgICAic3JjQWRkcmVzcyI6IG9iai5nZXQoInNyY0FkZHJlc3MiKSwKICAgICAgICAgICAgInNyY1RhZyI6IG9iai5nZXQoInNyY1RhZyIpLAogICAgICAgICAgICAiZmVlIjogb2JqLmdldCgiZmVlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/to_exchange_transaction.py b/fireblocks/models/to_exchange_transaction.py index ca0e7e09..d24c0b2a 100644 --- a/fireblocks/models/to_exchange_transaction.py +++ b/fireblocks/models/to_exchange_transaction.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class ToExchangeTransaction(BaseModel): - """ - ToExchangeTransaction - """ # noqa: E501 - asset_id: Optional[StrictStr] = Field(default=None, alias="assetId") - amount: Optional[StrictStr] = None - dst_address: Optional[StrictStr] = Field(default=None, alias="dstAddress") - dst_tag: Optional[StrictStr] = Field(default=None, description="optional", alias="dstTag") - __properties: ClassVar[List[str]] = ["assetId", "amount", "dstAddress", "dstTag"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ToExchangeTransaction from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ToExchangeTransaction from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "assetId": obj.get("assetId"), - "amount": obj.get("amount"), - "dstAddress": obj.get("dstAddress"), - "dstTag": obj.get("dstTag") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUb0V4Y2hhbmdlVHJhbnNhY3Rpb24oQmFzZU1vZGVsKToKICAgICIiIgogICAgVG9FeGNoYW5nZVRyYW5zYWN0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhc3NldF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImFzc2V0SWQiKQogICAgYW1vdW50OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgZHN0X2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJkc3RBZGRyZXNzIikKICAgIGRzdF90YWc6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJvcHRpb25hbCIsIGFsaWFzPSJkc3RUYWciKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhc3NldElkIiwgImFtb3VudCIsICJkc3RBZGRyZXNzIiwgImRzdFRhZyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9FeGNoYW5nZVRyYW5zYWN0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRvRXhjaGFuZ2VUcmFuc2FjdGlvbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhc3NldElkIjogb2JqLmdldCgiYXNzZXRJZCIpLAogICAgICAgICAgICAiYW1vdW50Ijogb2JqLmdldCgiYW1vdW50IiksCiAgICAgICAgICAgICJkc3RBZGRyZXNzIjogb2JqLmdldCgiZHN0QWRkcmVzcyIpLAogICAgICAgICAgICAiZHN0VGFnIjogb2JqLmdldCgiZHN0VGFnIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/token_collection_response.py b/fireblocks/models/token_collection_response.py index 0fa8084d..99f988c7 100644 --- a/fireblocks/models/token_collection_response.py +++ b/fireblocks/models/token_collection_response.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TokenCollectionResponse(BaseModel): - """ - TokenCollectionResponse - """ # noqa: E501 - id: StrictStr - name: Optional[StrictStr] = None - symbol: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["id", "name", "symbol"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TokenCollectionResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TokenCollectionResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name"), - "symbol": obj.get("symbol") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRva2VuQ29sbGVjdGlvblJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRva2VuQ29sbGVjdGlvblJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyCiAgICBuYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgc3ltYm9sOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJuYW1lIiwgInN5bWJvbCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5Db2xsZWN0aW9uUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5Db2xsZWN0aW9uUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKSwKICAgICAgICAgICAgInN5bWJvbCI6IG9iai5nZXQoInN5bWJvbCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/token_contract_summary_response.py b/fireblocks/models/token_contract_summary_response.py index 6e1621dd..acae1a92 100644 --- a/fireblocks/models/token_contract_summary_response.py +++ b/fireblocks/models/token_contract_summary_response.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class TokenContractSummaryResponse(BaseModel): - """ - TokenContractSummaryResponse - """ # noqa: E501 - base_asset_id: StrictStr = Field(description="The base asset ID", alias="baseAssetId") - contract_address: StrictStr = Field(description="The contract address", alias="contractAddress") - total_addresses: Union[StrictFloat, StrictInt] = Field(description="Total number of addresses with balances", alias="totalAddresses") - total_supply: StrictStr = Field(description="The total supply of the token", alias="totalSupply") - __properties: ClassVar[List[str]] = ["baseAssetId", "contractAddress", "totalAddresses", "totalSupply"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TokenContractSummaryResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TokenContractSummaryResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "baseAssetId": obj.get("baseAssetId"), - "contractAddress": obj.get("contractAddress"), - "totalAddresses": obj.get("totalAddresses"), - "totalSupply": obj.get("totalSupply") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUb2tlbkNvbnRyYWN0U3VtbWFyeVJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRva2VuQ29udHJhY3RTdW1tYXJ5UmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGJhc2VfYXNzZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmFzZSBhc3NldCBJRCIsIGFsaWFzPSJiYXNlQXNzZXRJZCIpCiAgICBjb250cmFjdF9hZGRyZXNzOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNvbnRyYWN0IGFkZHJlc3MiLCBhbGlhcz0iY29udHJhY3RBZGRyZXNzIikKICAgIHRvdGFsX2FkZHJlc3NlczogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVG90YWwgbnVtYmVyIG9mIGFkZHJlc3NlcyB3aXRoIGJhbGFuY2VzIiwgYWxpYXM9InRvdGFsQWRkcmVzc2VzIikKICAgIHRvdGFsX3N1cHBseTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB0b3RhbCBzdXBwbHkgb2YgdGhlIHRva2VuIiwgYWxpYXM9InRvdGFsU3VwcGx5IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYmFzZUFzc2V0SWQiLCAiY29udHJhY3RBZGRyZXNzIiwgInRvdGFsQWRkcmVzc2VzIiwgInRvdGFsU3VwcGx5Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUb2tlbkNvbnRyYWN0U3VtbWFyeVJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRva2VuQ29udHJhY3RTdW1tYXJ5UmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYmFzZUFzc2V0SWQiOiBvYmouZ2V0KCJiYXNlQXNzZXRJZCIpLAogICAgICAgICAgICAiY29udHJhY3RBZGRyZXNzIjogb2JqLmdldCgiY29udHJhY3RBZGRyZXNzIiksCiAgICAgICAgICAgICJ0b3RhbEFkZHJlc3NlcyI6IG9iai5nZXQoInRvdGFsQWRkcmVzc2VzIiksCiAgICAgICAgICAgICJ0b3RhbFN1cHBseSI6IG9iai5nZXQoInRvdGFsU3VwcGx5IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/token_info_not_found_error_response.py b/fireblocks/models/token_info_not_found_error_response.py index dca30c09..f1b4b6f3 100644 --- a/fireblocks/models/token_info_not_found_error_response.py +++ b/fireblocks/models/token_info_not_found_error_response.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class TokenInfoNotFoundErrorResponse(BaseModel): - """ - TokenInfoNotFoundErrorResponse - """ # noqa: E501 - message: StrictStr = Field(description="Not found error code") - code: Union[StrictFloat, StrictInt] = Field(description="Error code") - __properties: ClassVar[List[str]] = ["message", "code"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TokenInfoNotFoundErrorResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TokenInfoNotFoundErrorResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "code": obj.get("code") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUb2tlbkluZm9Ob3RGb3VuZEVycm9yUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgVG9rZW5JbmZvTm90Rm91bmRFcnJvclJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBtZXNzYWdlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iTm90IGZvdW5kIGVycm9yIGNvZGUiKQogICAgY29kZTogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iRXJyb3IgY29kZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm1lc3NhZ2UiLCAiY29kZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5JbmZvTm90Rm91bmRFcnJvclJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRva2VuSW5mb05vdEZvdW5kRXJyb3JSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJtZXNzYWdlIjogb2JqLmdldCgibWVzc2FnZSIpLAogICAgICAgICAgICAiY29kZSI6IG9iai5nZXQoImNvZGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/token_link_dto.py b/fireblocks/models/token_link_dto.py index 130d3378..ff639a51 100644 --- a/fireblocks/models/token_link_dto.py +++ b/fireblocks/models/token_link_dto.py @@ -1,119 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.token_link_dto_token_metadata import TokenLinkDtoTokenMetadata -from typing import Optional, Set -from typing_extensions import Self - -class TokenLinkDto(BaseModel): - """ - TokenLinkDto - """ # noqa: E501 - id: StrictStr = Field(description="The token link id") - status: StrictStr = Field(description="The token status") - type: Optional[StrictStr] = Field(default=None, description="The type of token") - ref_id: Optional[StrictStr] = Field(default=None, description="The Fireblocks' reference id", alias="refId") - display_name: Optional[StrictStr] = Field(default=None, description="The token display name. If was not provided, would be taken from the contract template", alias="displayName") - token_metadata: Optional[TokenLinkDtoTokenMetadata] = Field(default=None, alias="tokenMetadata") - __properties: ClassVar[List[str]] = ["id", "status", "type", "refId", "displayName", "tokenMetadata"] - - @field_validator('status') - def status_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['PENDING', 'COMPLETED']): - raise ValueError("must be one of enum values ('PENDING', 'COMPLETED')") - return value - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['FUNGIBLE_TOKEN', 'NON_FUNGIBLE_TOKEN', 'TOKEN_UTILITY', 'TOKEN_EXTENSION']): - raise ValueError("must be one of enum values ('FUNGIBLE_TOKEN', 'NON_FUNGIBLE_TOKEN', 'TOKEN_UTILITY', 'TOKEN_EXTENSION')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TokenLinkDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of token_metadata - if self.token_metadata: - _dict['tokenMetadata'] = self.token_metadata.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TokenLinkDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "status": obj.get("status"), - "type": obj.get("type"), - "refId": obj.get("refId"), - "displayName": obj.get("displayName"), - "tokenMetadata": TokenLinkDtoTokenMetadata.from_dict(obj["tokenMetadata"]) if obj.get("tokenMetadata") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fbGlua19kdG9fdG9rZW5fbWV0YWRhdGEgaW1wb3J0IFRva2VuTGlua0R0b1Rva2VuTWV0YWRhdGEKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVG9rZW5MaW5rRHRvKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRva2VuTGlua0R0bwogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdG9rZW4gbGluayBpZCIpCiAgICBzdGF0dXM6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdG9rZW4gc3RhdHVzIikKICAgIHR5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgdHlwZSBvZiB0b2tlbiIpCiAgICByZWZfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgRmlyZWJsb2NrcycgcmVmZXJlbmNlIGlkIiwgYWxpYXM9InJlZklkIikKICAgIGRpc3BsYXlfbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSB0b2tlbiBkaXNwbGF5IG5hbWUuIElmIHdhcyBub3QgcHJvdmlkZWQsIHdvdWxkIGJlIHRha2VuIGZyb20gdGhlIGNvbnRyYWN0IHRlbXBsYXRlIiwgYWxpYXM9ImRpc3BsYXlOYW1lIikKICAgIHRva2VuX21ldGFkYXRhOiBPcHRpb25hbFtUb2tlbkxpbmtEdG9Ub2tlbk1ldGFkYXRhXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InRva2VuTWV0YWRhdGEiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJzdGF0dXMiLCAidHlwZSIsICJyZWZJZCIsICJkaXNwbGF5TmFtZSIsICJ0b2tlbk1ldGFkYXRhIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdzdGF0dXMnKQogICAgZGVmIHN0YXR1c192YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydQRU5ESU5HJywgJ0NPTVBMRVRFRCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdQRU5ESU5HJywgJ0NPTVBMRVRFRCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBAZmllbGRfdmFsaWRhdG9yKCd0eXBlJykKICAgIGRlZiB0eXBlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydGVU5HSUJMRV9UT0tFTicsICdOT05fRlVOR0lCTEVfVE9LRU4nLCAnVE9LRU5fVVRJTElUWScsICdUT0tFTl9FWFRFTlNJT04nXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnRlVOR0lCTEVfVE9LRU4nLCAnTk9OX0ZVTkdJQkxFX1RPS0VOJywgJ1RPS0VOX1VUSUxJVFknLCAnVE9LRU5fRVhURU5TSU9OJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRva2VuTGlua0R0byBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHRva2VuX21ldGFkYXRhCiAgICAgICAgaWYgc2VsZi50b2tlbl9tZXRhZGF0YToKICAgICAgICAgICAgX2RpY3RbJ3Rva2VuTWV0YWRhdGEnXSA9IHNlbGYudG9rZW5fbWV0YWRhdGEudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUb2tlbkxpbmtEdG8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAic3RhdHVzIjogb2JqLmdldCgic3RhdHVzIiksCiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAicmVmSWQiOiBvYmouZ2V0KCJyZWZJZCIpLAogICAgICAgICAgICAiZGlzcGxheU5hbWUiOiBvYmouZ2V0KCJkaXNwbGF5TmFtZSIpLAogICAgICAgICAgICAidG9rZW5NZXRhZGF0YSI6IFRva2VuTGlua0R0b1Rva2VuTWV0YWRhdGEuZnJvbV9kaWN0KG9ialsidG9rZW5NZXRhZGF0YSJdKSBpZiBvYmouZ2V0KCJ0b2tlbk1ldGFkYXRhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/token_link_dto_token_metadata.py b/fireblocks/models/token_link_dto_token_metadata.py index 0e39176c..7e8bc8ee 100644 --- a/fireblocks/models/token_link_dto_token_metadata.py +++ b/fireblocks/models/token_link_dto_token_metadata.py @@ -1,152 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.asset_metadata_dto import AssetMetadataDto -from fireblocks.models.collection_metadata_dto import CollectionMetadataDto -from fireblocks.models.contract_metadata_dto import ContractMetadataDto -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -TOKENLINKDTOTOKENMETADATA_ONE_OF_SCHEMAS = ["AssetMetadataDto", "CollectionMetadataDto", "ContractMetadataDto"] - -class TokenLinkDtoTokenMetadata(BaseModel): - """ - The token's metadata - """ - # data type: AssetMetadataDto - oneof_schema_1_validator: Optional[AssetMetadataDto] = None - # data type: CollectionMetadataDto - oneof_schema_2_validator: Optional[CollectionMetadataDto] = None - # data type: ContractMetadataDto - oneof_schema_3_validator: Optional[ContractMetadataDto] = None - actual_instance: Optional[Union[AssetMetadataDto, CollectionMetadataDto, ContractMetadataDto]] = None - one_of_schemas: Set[str] = { "AssetMetadataDto", "CollectionMetadataDto", "ContractMetadataDto" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = TokenLinkDtoTokenMetadata.model_construct() - error_messages = [] - match = 0 - # validate data type: AssetMetadataDto - if not isinstance(v, AssetMetadataDto): - error_messages.append(f"Error! Input type `{type(v)}` is not `AssetMetadataDto`") - else: - match += 1 - # validate data type: CollectionMetadataDto - if not isinstance(v, CollectionMetadataDto): - error_messages.append(f"Error! Input type `{type(v)}` is not `CollectionMetadataDto`") - else: - match += 1 - # validate data type: ContractMetadataDto - if not isinstance(v, ContractMetadataDto): - error_messages.append(f"Error! Input type `{type(v)}` is not `ContractMetadataDto`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in TokenLinkDtoTokenMetadata with oneOf schemas: AssetMetadataDto, CollectionMetadataDto, ContractMetadataDto. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in TokenLinkDtoTokenMetadata with oneOf schemas: AssetMetadataDto, CollectionMetadataDto, ContractMetadataDto. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into AssetMetadataDto - try: - instance.actual_instance = AssetMetadataDto.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into CollectionMetadataDto - try: - instance.actual_instance = CollectionMetadataDto.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into ContractMetadataDto - try: - instance.actual_instance = ContractMetadataDto.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into TokenLinkDtoTokenMetadata with oneOf schemas: AssetMetadataDto, CollectionMetadataDto, ContractMetadataDto. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into TokenLinkDtoTokenMetadata with oneOf schemas: AssetMetadataDto, CollectionMetadataDto, ContractMetadataDto. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], AssetMetadataDto, CollectionMetadataDto, ContractMetadataDto]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfbWV0YWRhdGFfZHRvIGltcG9ydCBBc3NldE1ldGFkYXRhRHRvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuY29sbGVjdGlvbl9tZXRhZGF0YV9kdG8gaW1wb3J0IENvbGxlY3Rpb25NZXRhZGF0YUR0bwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X21ldGFkYXRhX2R0byBpbXBvcnQgQ29udHJhY3RNZXRhZGF0YUR0bwpmcm9tIHB5ZGFudGljIGltcG9ydCBTdHJpY3RTdHIsIEZpZWxkCmZyb20gdHlwaW5nIGltcG9ydCBVbmlvbiwgTGlzdCwgU2V0LCBPcHRpb25hbCwgRGljdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBMaXRlcmFsLCBTZWxmCgpUT0tFTkxJTktEVE9UT0tFTk1FVEFEQVRBX09ORV9PRl9TQ0hFTUFTID0gWyJBc3NldE1ldGFkYXRhRHRvIiwgIkNvbGxlY3Rpb25NZXRhZGF0YUR0byIsICJDb250cmFjdE1ldGFkYXRhRHRvIl0KCmNsYXNzIFRva2VuTGlua0R0b1Rva2VuTWV0YWRhdGEoQmFzZU1vZGVsKToKICAgICIiIgogICAgVGhlIHRva2VuJ3MgbWV0YWRhdGEKICAgICIiIgogICAgIyBkYXRhIHR5cGU6IEFzc2V0TWV0YWRhdGFEdG8KICAgIG9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvcjogT3B0aW9uYWxbQXNzZXRNZXRhZGF0YUR0b10gPSBOb25lCiAgICAjIGRhdGEgdHlwZTogQ29sbGVjdGlvbk1ldGFkYXRhRHRvCiAgICBvbmVvZl9zY2hlbWFfMl92YWxpZGF0b3I6IE9wdGlvbmFsW0NvbGxlY3Rpb25NZXRhZGF0YUR0b10gPSBOb25lCiAgICAjIGRhdGEgdHlwZTogQ29udHJhY3RNZXRhZGF0YUR0bwogICAgb25lb2Zfc2NoZW1hXzNfdmFsaWRhdG9yOiBPcHRpb25hbFtDb250cmFjdE1ldGFkYXRhRHRvXSA9IE5vbmUKICAgIGFjdHVhbF9pbnN0YW5jZTogT3B0aW9uYWxbVW5pb25bQXNzZXRNZXRhZGF0YUR0bywgQ29sbGVjdGlvbk1ldGFkYXRhRHRvLCBDb250cmFjdE1ldGFkYXRhRHRvXV0gPSBOb25lCiAgICBvbmVfb2Zfc2NoZW1hczogU2V0W3N0cl0gPSB7ICJBc3NldE1ldGFkYXRhRHRvIiwgIkNvbGxlY3Rpb25NZXRhZGF0YUR0byIsICJDb250cmFjdE1ldGFkYXRhRHRvIiB9CgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gVG9rZW5MaW5rRHRvVG9rZW5NZXRhZGF0YS5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogQXNzZXRNZXRhZGF0YUR0bwogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIEFzc2V0TWV0YWRhdGFEdG8pOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYEFzc2V0TWV0YWRhdGFEdG9gIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IENvbGxlY3Rpb25NZXRhZGF0YUR0bwogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIENvbGxlY3Rpb25NZXRhZGF0YUR0byk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgQ29sbGVjdGlvbk1ldGFkYXRhRHRvYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBDb250cmFjdE1ldGFkYXRhRHRvCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgQ29udHJhY3RNZXRhZGF0YUR0byk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgQ29udHJhY3RNZXRhZGF0YUR0b2AiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gVG9rZW5MaW5rRHRvVG9rZW5NZXRhZGF0YSB3aXRoIG9uZU9mIHNjaGVtYXM6IEFzc2V0TWV0YWRhdGFEdG8sIENvbGxlY3Rpb25NZXRhZGF0YUR0bywgQ29udHJhY3RNZXRhZGF0YUR0by4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBUb2tlbkxpbmtEdG9Ub2tlbk1ldGFkYXRhIHdpdGggb25lT2Ygc2NoZW1hczogQXNzZXRNZXRhZGF0YUR0bywgQ29sbGVjdGlvbk1ldGFkYXRhRHRvLCBDb250cmFjdE1ldGFkYXRhRHRvLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gdgoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogVW5pb25bc3RyLCBEaWN0W3N0ciwgQW55XV0pIC0+IFNlbGY6CiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2pzb24oanNvbi5kdW1wcyhvYmopKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgb2JqZWN0IHJlcHJlc2VudGVkIGJ5IHRoZSBqc29uIHN0cmluZyIiIgogICAgICAgIGluc3RhbmNlID0gY2xzLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAoKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBBc3NldE1ldGFkYXRhRHRvCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBBc3NldE1ldGFkYXRhRHRvLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIENvbGxlY3Rpb25NZXRhZGF0YUR0bwogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gQ29sbGVjdGlvbk1ldGFkYXRhRHRvLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIENvbnRyYWN0TWV0YWRhdGFEdG8KICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IENvbnRyYWN0TWV0YWRhdGFEdG8uZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCgogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBUb2tlbkxpbmtEdG9Ub2tlbk1ldGFkYXRhIHdpdGggb25lT2Ygc2NoZW1hczogQXNzZXRNZXRhZGF0YUR0bywgQ29sbGVjdGlvbk1ldGFkYXRhRHRvLCBDb250cmFjdE1ldGFkYXRhRHRvLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIFRva2VuTGlua0R0b1Rva2VuTWV0YWRhdGEgd2l0aCBvbmVPZiBzY2hlbWFzOiBBc3NldE1ldGFkYXRhRHRvLCBDb2xsZWN0aW9uTWV0YWRhdGFEdG8sIENvbnRyYWN0TWV0YWRhdGFEdG8uIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gIm51bGwiCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19qc29uIikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24pOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbigpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi5hY3R1YWxfaW5zdGFuY2UpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gT3B0aW9uYWxbVW5pb25bRGljdFtzdHIsIEFueV0sIEFzc2V0TWV0YWRhdGFEdG8sIENvbGxlY3Rpb25NZXRhZGF0YUR0bywgQ29udHJhY3RNZXRhZGF0YUR0b11dOgogICAgICAgICIiIlJldHVybnMgdGhlIGRpY3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19kaWN0IikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QpOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCgpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgIyBwcmltaXRpdmUgdHlwZQogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/token_link_exists_http_error.py b/fireblocks/models/token_link_exists_http_error.py index 81c8e097..b24d61eb 100644 --- a/fireblocks/models/token_link_exists_http_error.py +++ b/fireblocks/models/token_link_exists_http_error.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TokenLinkExistsHttpError(BaseModel): - """ - TokenLinkExistsHttpError - """ # noqa: E501 - status_code: Optional[StrictInt] = Field(default=None, description="HTTP status code", alias="statusCode") - message: Optional[StrictStr] = Field(default=None, description="Error message") - error: Optional[StrictStr] = Field(default=None, description="Short description of the HTTP error") - __properties: ClassVar[List[str]] = ["statusCode", "message", "error"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TokenLinkExistsHttpError from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TokenLinkExistsHttpError from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "statusCode": obj.get("statusCode"), - "message": obj.get("message"), - "error": obj.get("error") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRva2VuTGlua0V4aXN0c0h0dHBFcnJvcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUb2tlbkxpbmtFeGlzdHNIdHRwRXJyb3IKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHN0YXR1c19jb2RlOiBPcHRpb25hbFtTdHJpY3RJbnRdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSFRUUCBzdGF0dXMgY29kZSIsIGFsaWFzPSJzdGF0dXNDb2RlIikKICAgIG1lc3NhZ2U6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJFcnJvciBtZXNzYWdlIikKICAgIGVycm9yOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iU2hvcnQgZGVzY3JpcHRpb24gb2YgdGhlIEhUVFAgZXJyb3IiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzdGF0dXNDb2RlIiwgIm1lc3NhZ2UiLCAiZXJyb3IiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRva2VuTGlua0V4aXN0c0h0dHBFcnJvciBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUb2tlbkxpbmtFeGlzdHNIdHRwRXJyb3IgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3RhdHVzQ29kZSI6IG9iai5nZXQoInN0YXR1c0NvZGUiKSwKICAgICAgICAgICAgIm1lc3NhZ2UiOiBvYmouZ2V0KCJtZXNzYWdlIiksCiAgICAgICAgICAgICJlcnJvciI6IG9iai5nZXQoImVycm9yIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/token_link_not_multichain_compatible_http_error.py b/fireblocks/models/token_link_not_multichain_compatible_http_error.py index f1097ed9..48bfa507 100644 --- a/fireblocks/models/token_link_not_multichain_compatible_http_error.py +++ b/fireblocks/models/token_link_not_multichain_compatible_http_error.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from typing import Optional, Set -from typing_extensions import Self - -class TokenLinkNotMultichainCompatibleHttpError(BaseModel): - """ - TokenLinkNotMultichainCompatibleHttpError - """ # noqa: E501 - message: StrictStr = Field(description="Bad request error message") - code: Union[StrictFloat, StrictInt] = Field(description="Error code") - __properties: ClassVar[List[str]] = ["message", "code"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TokenLinkNotMultichainCompatibleHttpError from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TokenLinkNotMultichainCompatibleHttpError from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "code": obj.get("code") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUb2tlbkxpbmtOb3RNdWx0aWNoYWluQ29tcGF0aWJsZUh0dHBFcnJvcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUb2tlbkxpbmtOb3RNdWx0aWNoYWluQ29tcGF0aWJsZUh0dHBFcnJvcgogICAgIiIiICMgbm9xYTogRTUwMQogICAgbWVzc2FnZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkJhZCByZXF1ZXN0IGVycm9yIG1lc3NhZ2UiKQogICAgY29kZTogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iRXJyb3IgY29kZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm1lc3NhZ2UiLCAiY29kZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5MaW5rTm90TXVsdGljaGFpbkNvbXBhdGlibGVIdHRwRXJyb3IgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5MaW5rTm90TXVsdGljaGFpbkNvbXBhdGlibGVIdHRwRXJyb3IgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibWVzc2FnZSI6IG9iai5nZXQoIm1lc3NhZ2UiKSwKICAgICAgICAgICAgImNvZGUiOiBvYmouZ2V0KCJjb2RlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/token_link_request_dto.py b/fireblocks/models/token_link_request_dto.py index 4e0fc010..abdeb16c 100644 --- a/fireblocks/models/token_link_request_dto.py +++ b/fireblocks/models/token_link_request_dto.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TokenLinkRequestDto(BaseModel): - """ - TokenLinkRequestDto - """ # noqa: E501 - type: StrictStr = Field(description="The type of token being linked") - ref_id: Optional[StrictStr] = Field(default=None, description="The Fireblocks' token link reference id. For example, 'BQ5R_BDESC_ABC' if it's a fungible asset", alias="refId") - display_name: Optional[StrictStr] = Field(default=None, description="The token display name", alias="displayName") - base_asset_id: Optional[StrictStr] = Field(default=None, description="The blockchain base assetId", alias="baseAssetId") - contract_address: Optional[StrictStr] = Field(default=None, description="The contract's onchain address", alias="contractAddress") - __properties: ClassVar[List[str]] = ["type", "refId", "displayName", "baseAssetId", "contractAddress"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['FUNGIBLE_TOKEN', 'NON_FUNGIBLE_TOKEN', 'TOKEN_UTILITY', 'TOKEN_EXTENSION']): - raise ValueError("must be one of enum values ('FUNGIBLE_TOKEN', 'NON_FUNGIBLE_TOKEN', 'TOKEN_UTILITY', 'TOKEN_EXTENSION')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TokenLinkRequestDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TokenLinkRequestDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "refId": obj.get("refId"), - "displayName": obj.get("displayName"), - "baseAssetId": obj.get("baseAssetId"), - "contractAddress": obj.get("contractAddress") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRva2VuTGlua1JlcXVlc3REdG8oQmFzZU1vZGVsKToKICAgICIiIgogICAgVG9rZW5MaW5rUmVxdWVzdER0bwogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB0eXBlIG9mIHRva2VuIGJlaW5nIGxpbmtlZCIpCiAgICByZWZfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgRmlyZWJsb2NrcycgdG9rZW4gbGluayByZWZlcmVuY2UgaWQuIEZvciBleGFtcGxlLCAnQlE1Ul9CREVTQ19BQkMnIGlmIGl0J3MgYSBmdW5naWJsZSAgICAgICBhc3NldCIsIGFsaWFzPSJyZWZJZCIpCiAgICBkaXNwbGF5X25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgdG9rZW4gZGlzcGxheSBuYW1lIiwgYWxpYXM9ImRpc3BsYXlOYW1lIikKICAgIGJhc2VfYXNzZXRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgYmxvY2tjaGFpbiBiYXNlIGFzc2V0SWQiLCBhbGlhcz0iYmFzZUFzc2V0SWQiKQogICAgY29udHJhY3RfYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBjb250cmFjdCdzIG9uY2hhaW4gYWRkcmVzcyIsIGFsaWFzPSJjb250cmFjdEFkZHJlc3MiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgInJlZklkIiwgImRpc3BsYXlOYW1lIiwgImJhc2VBc3NldElkIiwgImNvbnRyYWN0QWRkcmVzcyJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigndHlwZScpCiAgICBkZWYgdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydGVU5HSUJMRV9UT0tFTicsICdOT05fRlVOR0lCTEVfVE9LRU4nLCAnVE9LRU5fVVRJTElUWScsICdUT0tFTl9FWFRFTlNJT04nXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnRlVOR0lCTEVfVE9LRU4nLCAnTk9OX0ZVTkdJQkxFX1RPS0VOJywgJ1RPS0VOX1VUSUxJVFknLCAnVE9LRU5fRVhURU5TSU9OJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRva2VuTGlua1JlcXVlc3REdG8gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5MaW5rUmVxdWVzdER0byBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAicmVmSWQiOiBvYmouZ2V0KCJyZWZJZCIpLAogICAgICAgICAgICAiZGlzcGxheU5hbWUiOiBvYmouZ2V0KCJkaXNwbGF5TmFtZSIpLAogICAgICAgICAgICAiYmFzZUFzc2V0SWQiOiBvYmouZ2V0KCJiYXNlQXNzZXRJZCIpLAogICAgICAgICAgICAiY29udHJhY3RBZGRyZXNzIjogb2JqLmdldCgiY29udHJhY3RBZGRyZXNzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/token_ownership_response.py b/fireblocks/models/token_ownership_response.py index 60c03611..d6e38450 100644 --- a/fireblocks/models/token_ownership_response.py +++ b/fireblocks/models/token_ownership_response.py @@ -1,152 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.media_entity_response import MediaEntityResponse -from fireblocks.models.spam_ownership_response import SpamOwnershipResponse -from fireblocks.models.token_collection_response import TokenCollectionResponse -from typing import Optional, Set -from typing_extensions import Self - -class TokenOwnershipResponse(BaseModel): - """ - TokenOwnershipResponse - """ # noqa: E501 - id: StrictStr = Field(description="The Fireblocks NFT asset id") - token_id: StrictStr = Field(description="Token id within the contract/collection", alias="tokenId") - standard: StrictStr = Field(description="ERC721 / ERC1155") - metadata_uri: Optional[StrictStr] = Field(default=None, description="URL of the original token JSON metadata", alias="metadataURI") - cached_metadata_uri: Optional[StrictStr] = Field(default=None, description="URL of the cached token JSON metadata", alias="cachedMetadataURI") - media: Optional[List[MediaEntityResponse]] = Field(default=None, description="Media items extracted from metadata JSON") - spam: Optional[SpamOwnershipResponse] = Field(default=None, description="Owned Token's Spam status") - collection: Optional[TokenCollectionResponse] = Field(default=None, description="Parent collection information") - balance: StrictStr - vault_account_id: Optional[StrictStr] = Field(default=None, alias="vaultAccountId") - ownership_start_time: Union[StrictFloat, StrictInt] = Field(alias="ownershipStartTime") - ownership_last_update_time: Union[StrictFloat, StrictInt] = Field(alias="ownershipLastUpdateTime") - blockchain_descriptor: StrictStr = Field(alias="blockchainDescriptor") - description: Optional[StrictStr] = None - name: Optional[StrictStr] = None - ncw_id: Optional[StrictStr] = Field(default=None, description="Ownership Non-Custodial Wallet ID", alias="ncwId") - ncw_account_id: Optional[StrictStr] = Field(default=None, description="Ownership Non-Custodial Wallet's account ID", alias="ncwAccountId") - status: StrictStr = Field(description="Owned Token's status") - __properties: ClassVar[List[str]] = ["id", "tokenId", "standard", "metadataURI", "cachedMetadataURI", "media", "spam", "collection", "balance", "vaultAccountId", "ownershipStartTime", "ownershipLastUpdateTime", "blockchainDescriptor", "description", "name", "ncwId", "ncwAccountId", "status"] - - @field_validator('blockchain_descriptor') - def blockchain_descriptor_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST']): - raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST')") - return value - - @field_validator('status') - def status_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['LISTED', 'ARCHIVED']): - raise ValueError("must be one of enum values ('LISTED', 'ARCHIVED')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TokenOwnershipResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in media (list) - _items = [] - if self.media: - for _item_media in self.media: - if _item_media: - _items.append(_item_media.to_dict()) - _dict['media'] = _items - # override the default output from pydantic by calling `to_dict()` of spam - if self.spam: - _dict['spam'] = self.spam.to_dict() - # override the default output from pydantic by calling `to_dict()` of collection - if self.collection: - _dict['collection'] = self.collection.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TokenOwnershipResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "tokenId": obj.get("tokenId"), - "standard": obj.get("standard"), - "metadataURI": obj.get("metadataURI"), - "cachedMetadataURI": obj.get("cachedMetadataURI"), - "media": [MediaEntityResponse.from_dict(_item) for _item in obj["media"]] if obj.get("media") is not None else None, - "spam": SpamOwnershipResponse.from_dict(obj["spam"]) if obj.get("spam") is not None else None, - "collection": TokenCollectionResponse.from_dict(obj["collection"]) if obj.get("collection") is not None else None, - "balance": obj.get("balance"), - "vaultAccountId": obj.get("vaultAccountId"), - "ownershipStartTime": obj.get("ownershipStartTime"), - "ownershipLastUpdateTime": obj.get("ownershipLastUpdateTime"), - "blockchainDescriptor": obj.get("blockchainDescriptor"), - "description": obj.get("description"), - "name": obj.get("name"), - "ncwId": obj.get("ncwId"), - "ncwAccountId": obj.get("ncwAccountId"), - "status": obj.get("status") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1lZGlhX2VudGl0eV9yZXNwb25zZSBpbXBvcnQgTWVkaWFFbnRpdHlSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwYW1fb3duZXJzaGlwX3Jlc3BvbnNlIGltcG9ydCBTcGFtT3duZXJzaGlwUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b2tlbl9jb2xsZWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBUb2tlbkNvbGxlY3Rpb25SZXNwb25zZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUb2tlbk93bmVyc2hpcFJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRva2VuT3duZXJzaGlwUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIEZpcmVibG9ja3MgTkZUIGFzc2V0IGlkIikKICAgIHRva2VuX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVG9rZW4gaWQgd2l0aGluIHRoZSBjb250cmFjdC9jb2xsZWN0aW9uIiwgYWxpYXM9InRva2VuSWQiKQogICAgc3RhbmRhcmQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJFUkM3MjEgLyBFUkMxMTU1IikKICAgIG1ldGFkYXRhX3VyaTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlVSTCBvZiB0aGUgb3JpZ2luYWwgdG9rZW4gSlNPTiBtZXRhZGF0YSIsIGFsaWFzPSJtZXRhZGF0YVVSSSIpCiAgICBjYWNoZWRfbWV0YWRhdGFfdXJpOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVVJMIG9mIHRoZSBjYWNoZWQgdG9rZW4gSlNPTiBtZXRhZGF0YSIsIGFsaWFzPSJjYWNoZWRNZXRhZGF0YVVSSSIpCiAgICBtZWRpYTogT3B0aW9uYWxbTGlzdFtNZWRpYUVudGl0eVJlc3BvbnNlXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJNZWRpYSBpdGVtcyBleHRyYWN0ZWQgZnJvbSBtZXRhZGF0YSBKU09OIikKICAgIHNwYW06IE9wdGlvbmFsW1NwYW1Pd25lcnNoaXBSZXNwb25zZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJPd25lZCBUb2tlbidzIFNwYW0gc3RhdHVzIikKICAgIGNvbGxlY3Rpb246IE9wdGlvbmFsW1Rva2VuQ29sbGVjdGlvblJlc3BvbnNlXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlBhcmVudCBjb2xsZWN0aW9uIGluZm9ybWF0aW9uIikKICAgIGJhbGFuY2U6IFN0cmljdFN0cgogICAgdmF1bHRfYWNjb3VudF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InZhdWx0QWNjb3VudElkIikKICAgIG93bmVyc2hpcF9zdGFydF90aW1lOiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGFsaWFzPSJvd25lcnNoaXBTdGFydFRpbWUiKQogICAgb3duZXJzaGlwX2xhc3RfdXBkYXRlX3RpbWU6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoYWxpYXM9Im93bmVyc2hpcExhc3RVcGRhdGVUaW1lIikKICAgIGJsb2NrY2hhaW5fZGVzY3JpcHRvcjogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9ImJsb2NrY2hhaW5EZXNjcmlwdG9yIikKICAgIGRlc2NyaXB0aW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIG5jd19pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik93bmVyc2hpcCBOb24tQ3VzdG9kaWFsIFdhbGxldCBJRCIsIGFsaWFzPSJuY3dJZCIpCiAgICBuY3dfYWNjb3VudF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik93bmVyc2hpcCBOb24tQ3VzdG9kaWFsIFdhbGxldCdzIGFjY291bnQgSUQiLCBhbGlhcz0ibmN3QWNjb3VudElkIikKICAgIHN0YXR1czogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249Ik93bmVkIFRva2VuJ3Mgc3RhdHVzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAidG9rZW5JZCIsICJzdGFuZGFyZCIsICJtZXRhZGF0YVVSSSIsICJjYWNoZWRNZXRhZGF0YVVSSSIsICJtZWRpYSIsICJzcGFtIiwgImNvbGxlY3Rpb24iLCAiYmFsYW5jZSIsICJ2YXVsdEFjY291bnRJZCIsICJvd25lcnNoaXBTdGFydFRpbWUiLCAib3duZXJzaGlwTGFzdFVwZGF0ZVRpbWUiLCAiYmxvY2tjaGFpbkRlc2NyaXB0b3IiLCAiZGVzY3JpcHRpb24iLCAibmFtZSIsICJuY3dJZCIsICJuY3dBY2NvdW50SWQiLCAic3RhdHVzIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdibG9ja2NoYWluX2Rlc2NyaXB0b3InKQogICAgZGVmIGJsb2NrY2hhaW5fZGVzY3JpcHRvcl92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydFVEgnLCAnRVRIX1RFU1QzJywgJ0VUSF9URVNUNScsICdFVEhfVEVTVDYnLCAnUE9MWUdPTicsICdQT0xZR09OX1RFU1RfTVVNQkFJJywgJ0FNT1lfUE9MWUdPTl9URVNUJywgJ1hUWicsICdYVFpfVEVTVCcsICdCQVNFQ0hBSU5fRVRIJywgJ0JBU0VDSEFJTl9FVEhfVEVTVDMnLCAnQkFTRUNIQUlOX0VUSF9URVNUNScsICdFVEhFUkxJTksnLCAnRVRIRVJMSU5LX1RFU1QnLCAnTUFOVExFJywgJ01BTlRMRV9URVNUJywgJ0dVTl9HVU5aSUxMQScsICdHVU5fR1VOWklMTEFfVEVTVCcsICdFVEhfU09ORUlVTScsICdTT05FSVVNX01JTkFUT19URVNUJywgJ0lPVFhfSU9URVgnLCAnS0xBWV9LQUlBJywgJ0tMQVlfS0FJQV9URVNUJywgJ0FQRUNIQUlOJywgJ0FQRUNIQUlOX1RFU1QnLCAnQ1JPTk9TJywgJ0NST05PU19URVNUJywgJ1JPQklOSE9PRF9DSEFJTl9URVNUTkVUX1RFU1QnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnRVRIJywgJ0VUSF9URVNUMycsICdFVEhfVEVTVDUnLCAnRVRIX1RFU1Q2JywgJ1BPTFlHT04nLCAnUE9MWUdPTl9URVNUX01VTUJBSScsICdBTU9ZX1BPTFlHT05fVEVTVCcsICdYVFonLCAnWFRaX1RFU1QnLCAnQkFTRUNIQUlOX0VUSCcsICdCQVNFQ0hBSU5fRVRIX1RFU1QzJywgJ0JBU0VDSEFJTl9FVEhfVEVTVDUnLCAnRVRIRVJMSU5LJywgJ0VUSEVSTElOS19URVNUJywgJ01BTlRMRScsICdNQU5UTEVfVEVTVCcsICdHVU5fR1VOWklMTEEnLCAnR1VOX0dVTlpJTExBX1RFU1QnLCAnRVRIX1NPTkVJVU0nLCAnU09ORUlVTV9NSU5BVE9fVEVTVCcsICdJT1RYX0lPVEVYJywgJ0tMQVlfS0FJQScsICdLTEFZX0tBSUFfVEVTVCcsICdBUEVDSEFJTicsICdBUEVDSEFJTl9URVNUJywgJ0NST05PUycsICdDUk9OT1NfVEVTVCcsICdST0JJTkhPT0RfQ0hBSU5fVEVTVE5FVF9URVNUJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3N0YXR1cycpCiAgICBkZWYgc3RhdHVzX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0xJU1RFRCcsICdBUkNISVZFRCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdMSVNURUQnLCAnQVJDSElWRUQnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5Pd25lcnNoaXBSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBtZWRpYSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYubWVkaWE6CiAgICAgICAgICAgIGZvciBfaXRlbV9tZWRpYSBpbiBzZWxmLm1lZGlhOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fbWVkaWE6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9tZWRpYS50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydtZWRpYSddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHNwYW0KICAgICAgICBpZiBzZWxmLnNwYW06CiAgICAgICAgICAgIF9kaWN0WydzcGFtJ10gPSBzZWxmLnNwYW0udG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGNvbGxlY3Rpb24KICAgICAgICBpZiBzZWxmLmNvbGxlY3Rpb246CiAgICAgICAgICAgIF9kaWN0Wydjb2xsZWN0aW9uJ10gPSBzZWxmLmNvbGxlY3Rpb24udG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUb2tlbk93bmVyc2hpcFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgInRva2VuSWQiOiBvYmouZ2V0KCJ0b2tlbklkIiksCiAgICAgICAgICAgICJzdGFuZGFyZCI6IG9iai5nZXQoInN0YW5kYXJkIiksCiAgICAgICAgICAgICJtZXRhZGF0YVVSSSI6IG9iai5nZXQoIm1ldGFkYXRhVVJJIiksCiAgICAgICAgICAgICJjYWNoZWRNZXRhZGF0YVVSSSI6IG9iai5nZXQoImNhY2hlZE1ldGFkYXRhVVJJIiksCiAgICAgICAgICAgICJtZWRpYSI6IFtNZWRpYUVudGl0eVJlc3BvbnNlLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsibWVkaWEiXV0gaWYgb2JqLmdldCgibWVkaWEiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJzcGFtIjogU3BhbU93bmVyc2hpcFJlc3BvbnNlLmZyb21fZGljdChvYmpbInNwYW0iXSkgaWYgb2JqLmdldCgic3BhbSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImNvbGxlY3Rpb24iOiBUb2tlbkNvbGxlY3Rpb25SZXNwb25zZS5mcm9tX2RpY3Qob2JqWyJjb2xsZWN0aW9uIl0pIGlmIG9iai5nZXQoImNvbGxlY3Rpb24iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJiYWxhbmNlIjogb2JqLmdldCgiYmFsYW5jZSIpLAogICAgICAgICAgICAidmF1bHRBY2NvdW50SWQiOiBvYmouZ2V0KCJ2YXVsdEFjY291bnRJZCIpLAogICAgICAgICAgICAib3duZXJzaGlwU3RhcnRUaW1lIjogb2JqLmdldCgib3duZXJzaGlwU3RhcnRUaW1lIiksCiAgICAgICAgICAgICJvd25lcnNoaXBMYXN0VXBkYXRlVGltZSI6IG9iai5nZXQoIm93bmVyc2hpcExhc3RVcGRhdGVUaW1lIiksCiAgICAgICAgICAgICJibG9ja2NoYWluRGVzY3JpcHRvciI6IG9iai5nZXQoImJsb2NrY2hhaW5EZXNjcmlwdG9yIiksCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IG9iai5nZXQoImRlc2NyaXB0aW9uIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAibmN3SWQiOiBvYmouZ2V0KCJuY3dJZCIpLAogICAgICAgICAgICAibmN3QWNjb3VudElkIjogb2JqLmdldCgibmN3QWNjb3VudElkIiksCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/token_ownership_spam_update_payload.py b/fireblocks/models/token_ownership_spam_update_payload.py index 0d9e3eda..72886267 100644 --- a/fireblocks/models/token_ownership_spam_update_payload.py +++ b/fireblocks/models/token_ownership_spam_update_payload.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class TokenOwnershipSpamUpdatePayload(BaseModel): - """ - TokenOwnershipSpamUpdatePayload - """ # noqa: E501 - asset_id: StrictStr = Field(description="Token's asset id", alias="assetId") - spam: StrictBool = Field(description="Token's ownership new spam value") - __properties: ClassVar[List[str]] = ["assetId", "spam"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TokenOwnershipSpamUpdatePayload from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TokenOwnershipSpamUpdatePayload from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "assetId": obj.get("assetId"), - "spam": obj.get("spam") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRva2VuT3duZXJzaGlwU3BhbVVwZGF0ZVBheWxvYWQoQmFzZU1vZGVsKToKICAgICIiIgogICAgVG9rZW5Pd25lcnNoaXBTcGFtVXBkYXRlUGF5bG9hZAogICAgIiIiICMgbm9xYTogRTUwMQogICAgYXNzZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUb2tlbidzIGFzc2V0IGlkIiwgYWxpYXM9ImFzc2V0SWQiKQogICAgc3BhbTogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUb2tlbidzIG93bmVyc2hpcCBuZXcgc3BhbSB2YWx1ZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFzc2V0SWQiLCAic3BhbSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5Pd25lcnNoaXBTcGFtVXBkYXRlUGF5bG9hZCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUb2tlbk93bmVyc2hpcFNwYW1VcGRhdGVQYXlsb2FkIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFzc2V0SWQiOiBvYmouZ2V0KCJhc3NldElkIiksCiAgICAgICAgICAgICJzcGFtIjogb2JqLmdldCgic3BhbSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/token_ownership_status_update_payload.py b/fireblocks/models/token_ownership_status_update_payload.py index 77051b47..d3f40b2d 100644 --- a/fireblocks/models/token_ownership_status_update_payload.py +++ b/fireblocks/models/token_ownership_status_update_payload.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class TokenOwnershipStatusUpdatePayload(BaseModel): - """ - TokenOwnershipStatusUpdatePayload - """ # noqa: E501 - asset_id: StrictStr = Field(description="Token's asset id", alias="assetId") - status: StrictStr = Field(description="Token's ownership new status") - __properties: ClassVar[List[str]] = ["assetId", "status"] - - @field_validator('status') - def status_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['LISTED', 'ARCHIVED']): - raise ValueError("must be one of enum values ('LISTED', 'ARCHIVED')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TokenOwnershipStatusUpdatePayload from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TokenOwnershipStatusUpdatePayload from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "assetId": obj.get("assetId"), - "status": obj.get("status") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVG9rZW5Pd25lcnNoaXBTdGF0dXNVcGRhdGVQYXlsb2FkKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRva2VuT3duZXJzaGlwU3RhdHVzVXBkYXRlUGF5bG9hZAogICAgIiIiICMgbm9xYTogRTUwMQogICAgYXNzZXRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUb2tlbidzIGFzc2V0IGlkIiwgYWxpYXM9ImFzc2V0SWQiKQogICAgc3RhdHVzOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVG9rZW4ncyBvd25lcnNoaXAgbmV3IHN0YXR1cyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFzc2V0SWQiLCAic3RhdHVzIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdzdGF0dXMnKQogICAgZGVmIHN0YXR1c192YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydMSVNURUQnLCAnQVJDSElWRUQnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnTElTVEVEJywgJ0FSQ0hJVkVEJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRva2VuT3duZXJzaGlwU3RhdHVzVXBkYXRlUGF5bG9hZCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUb2tlbk93bmVyc2hpcFN0YXR1c1VwZGF0ZVBheWxvYWQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYXNzZXRJZCI6IG9iai5nZXQoImFzc2V0SWQiKSwKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/token_response.py b/fireblocks/models/token_response.py index ea27b33c..46b662ec 100644 --- a/fireblocks/models/token_response.py +++ b/fireblocks/models/token_response.py @@ -1,131 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.media_entity_response import MediaEntityResponse -from fireblocks.models.spam_token_response import SpamTokenResponse -from fireblocks.models.token_collection_response import TokenCollectionResponse -from typing import Optional, Set -from typing_extensions import Self - -class TokenResponse(BaseModel): - """ - TokenResponse - """ # noqa: E501 - id: StrictStr = Field(description="The Fireblocks NFT asset id") - token_id: StrictStr = Field(description="Token id within the contract/collection", alias="tokenId") - standard: StrictStr = Field(description="ERC721 / ERC1155") - metadata_uri: Optional[StrictStr] = Field(default=None, description="URL of the original token JSON metadata", alias="metadataURI") - cached_metadata_uri: Optional[StrictStr] = Field(default=None, description="URL of the cached token JSON metadata", alias="cachedMetadataURI") - media: Optional[List[MediaEntityResponse]] = Field(default=None, description="Media items extracted from metadata JSON") - spam: Optional[SpamTokenResponse] = Field(default=None, description="Token spam status") - collection: Optional[TokenCollectionResponse] = Field(default=None, description="Parent collection information") - blockchain_descriptor: StrictStr = Field(alias="blockchainDescriptor") - description: Optional[StrictStr] = None - name: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["id", "tokenId", "standard", "metadataURI", "cachedMetadataURI", "media", "spam", "collection", "blockchainDescriptor", "description", "name"] - - @field_validator('blockchain_descriptor') - def blockchain_descriptor_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST']): - raise ValueError("must be one of enum values ('ETH', 'ETH_TEST3', 'ETH_TEST5', 'ETH_TEST6', 'POLYGON', 'POLYGON_TEST_MUMBAI', 'AMOY_POLYGON_TEST', 'XTZ', 'XTZ_TEST', 'BASECHAIN_ETH', 'BASECHAIN_ETH_TEST3', 'BASECHAIN_ETH_TEST5', 'ETHERLINK', 'ETHERLINK_TEST', 'MANTLE', 'MANTLE_TEST', 'GUN_GUNZILLA', 'GUN_GUNZILLA_TEST', 'ETH_SONEIUM', 'SONEIUM_MINATO_TEST', 'IOTX_IOTEX', 'KLAY_KAIA', 'KLAY_KAIA_TEST', 'APECHAIN', 'APECHAIN_TEST', 'CRONOS', 'CRONOS_TEST')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TokenResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in media (list) - _items = [] - if self.media: - for _item_media in self.media: - if _item_media: - _items.append(_item_media.to_dict()) - _dict['media'] = _items - # override the default output from pydantic by calling `to_dict()` of spam - if self.spam: - _dict['spam'] = self.spam.to_dict() - # override the default output from pydantic by calling `to_dict()` of collection - if self.collection: - _dict['collection'] = self.collection.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TokenResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "tokenId": obj.get("tokenId"), - "standard": obj.get("standard"), - "metadataURI": obj.get("metadataURI"), - "cachedMetadataURI": obj.get("cachedMetadataURI"), - "media": [MediaEntityResponse.from_dict(_item) for _item in obj["media"]] if obj.get("media") is not None else None, - "spam": SpamTokenResponse.from_dict(obj["spam"]) if obj.get("spam") is not None else None, - "collection": TokenCollectionResponse.from_dict(obj["collection"]) if obj.get("collection") is not None else None, - "blockchainDescriptor": obj.get("blockchainDescriptor"), - "description": obj.get("description"), - "name": obj.get("name") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubWVkaWFfZW50aXR5X3Jlc3BvbnNlIGltcG9ydCBNZWRpYUVudGl0eVJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3BhbV90b2tlbl9yZXNwb25zZSBpbXBvcnQgU3BhbVRva2VuUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b2tlbl9jb2xsZWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBUb2tlbkNvbGxlY3Rpb25SZXNwb25zZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUb2tlblJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRva2VuUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIEZpcmVibG9ja3MgTkZUIGFzc2V0IGlkIikKICAgIHRva2VuX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVG9rZW4gaWQgd2l0aGluIHRoZSBjb250cmFjdC9jb2xsZWN0aW9uIiwgYWxpYXM9InRva2VuSWQiKQogICAgc3RhbmRhcmQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJFUkM3MjEgLyBFUkMxMTU1IikKICAgIG1ldGFkYXRhX3VyaTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlVSTCBvZiB0aGUgb3JpZ2luYWwgdG9rZW4gSlNPTiBtZXRhZGF0YSIsIGFsaWFzPSJtZXRhZGF0YVVSSSIpCiAgICBjYWNoZWRfbWV0YWRhdGFfdXJpOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVVJMIG9mIHRoZSBjYWNoZWQgdG9rZW4gSlNPTiBtZXRhZGF0YSIsIGFsaWFzPSJjYWNoZWRNZXRhZGF0YVVSSSIpCiAgICBtZWRpYTogT3B0aW9uYWxbTGlzdFtNZWRpYUVudGl0eVJlc3BvbnNlXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJNZWRpYSBpdGVtcyBleHRyYWN0ZWQgZnJvbSBtZXRhZGF0YSBKU09OIikKICAgIHNwYW06IE9wdGlvbmFsW1NwYW1Ub2tlblJlc3BvbnNlXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRva2VuIHNwYW0gc3RhdHVzIikKICAgIGNvbGxlY3Rpb246IE9wdGlvbmFsW1Rva2VuQ29sbGVjdGlvblJlc3BvbnNlXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlBhcmVudCBjb2xsZWN0aW9uIGluZm9ybWF0aW9uIikKICAgIGJsb2NrY2hhaW5fZGVzY3JpcHRvcjogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9ImJsb2NrY2hhaW5EZXNjcmlwdG9yIikKICAgIGRlc2NyaXB0aW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAidG9rZW5JZCIsICJzdGFuZGFyZCIsICJtZXRhZGF0YVVSSSIsICJjYWNoZWRNZXRhZGF0YVVSSSIsICJtZWRpYSIsICJzcGFtIiwgImNvbGxlY3Rpb24iLCAiYmxvY2tjaGFpbkRlc2NyaXB0b3IiLCAiZGVzY3JpcHRpb24iLCAibmFtZSJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYmxvY2tjaGFpbl9kZXNjcmlwdG9yJykKICAgIGRlZiBibG9ja2NoYWluX2Rlc2NyaXB0b3JfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnRVRIJywgJ0VUSF9URVNUMycsICdFVEhfVEVTVDUnLCAnRVRIX1RFU1Q2JywgJ1BPTFlHT04nLCAnUE9MWUdPTl9URVNUX01VTUJBSScsICdBTU9ZX1BPTFlHT05fVEVTVCcsICdYVFonLCAnWFRaX1RFU1QnLCAnQkFTRUNIQUlOX0VUSCcsICdCQVNFQ0hBSU5fRVRIX1RFU1QzJywgJ0JBU0VDSEFJTl9FVEhfVEVTVDUnLCAnRVRIRVJMSU5LJywgJ0VUSEVSTElOS19URVNUJywgJ01BTlRMRScsICdNQU5UTEVfVEVTVCcsICdHVU5fR1VOWklMTEEnLCAnR1VOX0dVTlpJTExBX1RFU1QnLCAnRVRIX1NPTkVJVU0nLCAnU09ORUlVTV9NSU5BVE9fVEVTVCcsICdJT1RYX0lPVEVYJywgJ0tMQVlfS0FJQScsICdLTEFZX0tBSUFfVEVTVCcsICdBUEVDSEFJTicsICdBUEVDSEFJTl9URVNUJywgJ0NST05PUycsICdDUk9OT1NfVEVTVCcsICdST0JJTkhPT0RfQ0hBSU5fVEVTVE5FVF9URVNUJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0VUSCcsICdFVEhfVEVTVDMnLCAnRVRIX1RFU1Q1JywgJ0VUSF9URVNUNicsICdQT0xZR09OJywgJ1BPTFlHT05fVEVTVF9NVU1CQUknLCAnQU1PWV9QT0xZR09OX1RFU1QnLCAnWFRaJywgJ1hUWl9URVNUJywgJ0JBU0VDSEFJTl9FVEgnLCAnQkFTRUNIQUlOX0VUSF9URVNUMycsICdCQVNFQ0hBSU5fRVRIX1RFU1Q1JywgJ0VUSEVSTElOSycsICdFVEhFUkxJTktfVEVTVCcsICdNQU5UTEUnLCAnTUFOVExFX1RFU1QnLCAnR1VOX0dVTlpJTExBJywgJ0dVTl9HVU5aSUxMQV9URVNUJywgJ0VUSF9TT05FSVVNJywgJ1NPTkVJVU1fTUlOQVRPX1RFU1QnLCAnSU9UWF9JT1RFWCcsICdLTEFZX0tBSUEnLCAnS0xBWV9LQUlBX1RFU1QnLCAnQVBFQ0hBSU4nLCAnQVBFQ0hBSU5fVEVTVCcsICdDUk9OT1MnLCAnQ1JPTk9TX1RFU1QnLCAnUk9CSU5IT09EX0NIQUlOX1RFU1RORVRfVEVTVCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUb2tlblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIG1lZGlhIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5tZWRpYToKICAgICAgICAgICAgZm9yIF9pdGVtX21lZGlhIGluIHNlbGYubWVkaWE6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9tZWRpYToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX21lZGlhLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ21lZGlhJ10gPSBfaXRlbXMKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2Ygc3BhbQogICAgICAgIGlmIHNlbGYuc3BhbToKICAgICAgICAgICAgX2RpY3RbJ3NwYW0nXSA9IHNlbGYuc3BhbS50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgY29sbGVjdGlvbgogICAgICAgIGlmIHNlbGYuY29sbGVjdGlvbjoKICAgICAgICAgICAgX2RpY3RbJ2NvbGxlY3Rpb24nXSA9IHNlbGYuY29sbGVjdGlvbi50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRva2VuUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAidG9rZW5JZCI6IG9iai5nZXQoInRva2VuSWQiKSwKICAgICAgICAgICAgInN0YW5kYXJkIjogb2JqLmdldCgic3RhbmRhcmQiKSwKICAgICAgICAgICAgIm1ldGFkYXRhVVJJIjogb2JqLmdldCgibWV0YWRhdGFVUkkiKSwKICAgICAgICAgICAgImNhY2hlZE1ldGFkYXRhVVJJIjogb2JqLmdldCgiY2FjaGVkTWV0YWRhdGFVUkkiKSwKICAgICAgICAgICAgIm1lZGlhIjogW01lZGlhRW50aXR5UmVzcG9uc2UuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJtZWRpYSJdXSBpZiBvYmouZ2V0KCJtZWRpYSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInNwYW0iOiBTcGFtVG9rZW5SZXNwb25zZS5mcm9tX2RpY3Qob2JqWyJzcGFtIl0pIGlmIG9iai5nZXQoInNwYW0iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJjb2xsZWN0aW9uIjogVG9rZW5Db2xsZWN0aW9uUmVzcG9uc2UuZnJvbV9kaWN0KG9ialsiY29sbGVjdGlvbiJdKSBpZiBvYmouZ2V0KCJjb2xsZWN0aW9uIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiYmxvY2tjaGFpbkRlc2NyaXB0b3IiOiBvYmouZ2V0KCJibG9ja2NoYWluRGVzY3JpcHRvciIpLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBvYmouZ2V0KCJkZXNjcmlwdGlvbiIpLAogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/tokens_paginated_response.py b/fireblocks/models/tokens_paginated_response.py index 15d46b9f..935969bc 100644 --- a/fireblocks/models/tokens_paginated_response.py +++ b/fireblocks/models/tokens_paginated_response.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.token_link_dto import TokenLinkDto -from typing import Optional, Set -from typing_extensions import Self - -class TokensPaginatedResponse(BaseModel): - """ - TokensPaginatedResponse - """ # noqa: E501 - data: List[TokenLinkDto] = Field(description="The data of the current page") - next: Optional[StrictStr] = Field(default=None, description="The ID of the next page") - __properties: ClassVar[List[str]] = ["data", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TokensPaginatedResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # set to None if next (nullable) is None - # and model_fields_set contains the field - if self.next is None and "next" in self.model_fields_set: - _dict['next'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TokensPaginatedResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [TokenLinkDto.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2xpbmtfZHRvIGltcG9ydCBUb2tlbkxpbmtEdG8KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVG9rZW5zUGFnaW5hdGVkUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgVG9rZW5zUGFnaW5hdGVkUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGRhdGE6IExpc3RbVG9rZW5MaW5rRHRvXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGF0YSBvZiB0aGUgY3VycmVudCBwYWdlIikKICAgIG5leHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIG5leHQgcGFnZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRhdGEiLCAibmV4dCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5zUGFnaW5hdGVkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGF0YSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgZm9yIF9pdGVtX2RhdGEgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZGF0YToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2RhdGEudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gX2l0ZW1zCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBuZXh0IChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5uZXh0IGlzIE5vbmUgYW5kICJuZXh0IiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WyduZXh0J10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG9rZW5zUGFnaW5hdGVkUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZGF0YSI6IFtUb2tlbkxpbmtEdG8uZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJkYXRhIl1dIGlmIG9iai5nZXQoImRhdGEiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJuZXh0Ijogb2JqLmdldCgibmV4dCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/total_supply_item_dto.py b/fireblocks/models/total_supply_item_dto.py index 35834caf..6c293eba 100644 --- a/fireblocks/models/total_supply_item_dto.py +++ b/fireblocks/models/total_supply_item_dto.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class TotalSupplyItemDto(BaseModel): - """ - TotalSupplyItemDto - """ # noqa: E501 - timestamp: datetime = Field(description="Timestamp of the data point") - total_supply: StrictStr = Field(description="Total supply at the given timestamp", alias="totalSupply") - __properties: ClassVar[List[str]] = ["timestamp", "totalSupply"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TotalSupplyItemDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TotalSupplyItemDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "timestamp": obj.get("timestamp"), - "totalSupply": obj.get("totalSupply") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRvdGFsU3VwcGx5SXRlbUR0byhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUb3RhbFN1cHBseUl0ZW1EdG8KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHRpbWVzdGFtcDogZGF0ZXRpbWUgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGltZXN0YW1wIG9mIHRoZSBkYXRhIHBvaW50IikKICAgIHRvdGFsX3N1cHBseTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRvdGFsIHN1cHBseSBhdCB0aGUgZ2l2ZW4gdGltZXN0YW1wIiwgYWxpYXM9InRvdGFsU3VwcGx5IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidGltZXN0YW1wIiwgInRvdGFsU3VwcGx5Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUb3RhbFN1cHBseUl0ZW1EdG8gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVG90YWxTdXBwbHlJdGVtRHRvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInRpbWVzdGFtcCI6IG9iai5nZXQoInRpbWVzdGFtcCIpLAogICAgICAgICAgICAidG90YWxTdXBwbHkiOiBvYmouZ2V0KCJ0b3RhbFN1cHBseSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/total_supply_paged_response.py b/fireblocks/models/total_supply_paged_response.py index 647cff31..db7ecf07 100644 --- a/fireblocks/models/total_supply_paged_response.py +++ b/fireblocks/models/total_supply_paged_response.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.total_supply_item_dto import TotalSupplyItemDto -from typing import Optional, Set -from typing_extensions import Self - -class TotalSupplyPagedResponse(BaseModel): - """ - TotalSupplyPagedResponse - """ # noqa: E501 - data: List[TotalSupplyItemDto] = Field(description="Array of total supply data points") - next: Optional[StrictStr] = Field(default=None, description="Cursor for next page") - prev: Optional[StrictStr] = Field(default=None, description="Cursor for previous page") - total: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Total count of items") - __properties: ClassVar[List[str]] = ["data", "next", "prev", "total"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TotalSupplyPagedResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TotalSupplyPagedResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [TotalSupplyItemDto.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next"), - "prev": obj.get("prev"), - "total": obj.get("total") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50b3RhbF9zdXBwbHlfaXRlbV9kdG8gaW1wb3J0IFRvdGFsU3VwcGx5SXRlbUR0bwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUb3RhbFN1cHBseVBhZ2VkUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgVG90YWxTdXBwbHlQYWdlZFJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkYXRhOiBMaXN0W1RvdGFsU3VwcGx5SXRlbUR0b10gPSBGaWVsZChkZXNjcmlwdGlvbj0iQXJyYXkgb2YgdG90YWwgc3VwcGx5IGRhdGEgcG9pbnRzIikKICAgIG5leHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJDdXJzb3IgZm9yIG5leHQgcGFnZSIpCiAgICBwcmV2OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3Vyc29yIGZvciBwcmV2aW91cyBwYWdlIikKICAgIHRvdGFsOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUb3RhbCBjb3VudCBvZiBpdGVtcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRhdGEiLCAibmV4dCIsICJwcmV2IiwgInRvdGFsIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUb3RhbFN1cHBseVBhZ2VkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGF0YSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgZm9yIF9pdGVtX2RhdGEgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZGF0YToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2RhdGEudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUb3RhbFN1cHBseVBhZ2VkUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZGF0YSI6IFtUb3RhbFN1cHBseUl0ZW1EdG8uZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJkYXRhIl1dIGlmIG9iai5nZXQoImRhdGEiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJuZXh0Ijogb2JqLmdldCgibmV4dCIpLAogICAgICAgICAgICAicHJldiI6IG9iai5nZXQoInByZXYiKSwKICAgICAgICAgICAgInRvdGFsIjogb2JqLmdldCgidG90YWwiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_amount.py b/fireblocks/models/tr_link_amount.py index da8ce0e6..d8613b68 100644 --- a/fireblocks/models/tr_link_amount.py +++ b/fireblocks/models/tr_link_amount.py @@ -1,104 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.amount_range_min_max import AmountRangeMinMax -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkAmount(BaseModel): - """ - TRLink amount definition with range and currency, compatible with TAP format from Policy Engine V2 - """ # noqa: E501 - range: Optional[AmountRangeMinMax] = None - currency: Optional[StrictStr] = Field(default=None, description="Currency type") - __properties: ClassVar[List[str]] = ["range", "currency"] - - @field_validator('currency') - def currency_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['USD', 'NATIVE']): - raise ValueError("must be one of enum values ('USD', 'NATIVE')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkAmount from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of range - if self.range: - _dict['range'] = self.range.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkAmount from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "range": AmountRangeMinMax.from_dict(obj["range"]) if obj.get("range") is not None else None, - "currency": obj.get("currency") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X3JhbmdlX21pbl9tYXggaW1wb3J0IEFtb3VudFJhbmdlTWluTWF4CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRSTGlua0Ftb3VudChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUUkxpbmsgYW1vdW50IGRlZmluaXRpb24gd2l0aCByYW5nZSBhbmQgY3VycmVuY3ksIGNvbXBhdGlibGUgd2l0aCBUQVAgZm9ybWF0IGZyb20gUG9saWN5IEVuZ2luZSBWMgogICAgIiIiICMgbm9xYTogRTUwMQogICAgcmFuZ2U6IE9wdGlvbmFsW0Ftb3VudFJhbmdlTWluTWF4XSA9IE5vbmUKICAgIGN1cnJlbmN5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3VycmVuY3kgdHlwZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInJhbmdlIiwgImN1cnJlbmN5Il0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdjdXJyZW5jeScpCiAgICBkZWYgY3VycmVuY3lfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gdmFsdWUKCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ1VTRCcsICdOQVRJVkUnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnVVNEJywgJ05BVElWRScpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtBbW91bnQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiByYW5nZQogICAgICAgIGlmIHNlbGYucmFuZ2U6CiAgICAgICAgICAgIF9kaWN0WydyYW5nZSddID0gc2VsZi5yYW5nZS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0Ftb3VudCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJyYW5nZSI6IEFtb3VudFJhbmdlTWluTWF4LmZyb21fZGljdChvYmpbInJhbmdlIl0pIGlmIG9iai5nZXQoInJhbmdlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiY3VycmVuY3kiOiBvYmouZ2V0KCJjdXJyZW5jeSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_amount2.py b/fireblocks/models/tr_link_amount2.py index e80586d9..bb9b2ea5 100644 --- a/fireblocks/models/tr_link_amount2.py +++ b/fireblocks/models/tr_link_amount2.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List -from fireblocks.models.tr_link_amount_range import TRLinkAmountRange -from fireblocks.models.tr_link_currency import TRLinkCurrency -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkAmount2(BaseModel): - """ - Amount specification with range and currency type - """ # noqa: E501 - range: TRLinkAmountRange - currency: TRLinkCurrency - __properties: ClassVar[List[str]] = ["range", "currency"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkAmount2 from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of range - if self.range: - _dict['range'] = self.range.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkAmount2 from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "range": TRLinkAmountRange.from_dict(obj["range"]) if obj.get("range") is not None else None, - "currency": obj.get("currency") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hbW91bnRfcmFuZ2UgaW1wb3J0IFRSTGlua0Ftb3VudFJhbmdlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19jdXJyZW5jeSBpbXBvcnQgVFJMaW5rQ3VycmVuY3kKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVFJMaW5rQW1vdW50MihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBBbW91bnQgc3BlY2lmaWNhdGlvbiB3aXRoIHJhbmdlIGFuZCBjdXJyZW5jeSB0eXBlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICByYW5nZTogVFJMaW5rQW1vdW50UmFuZ2UKICAgIGN1cnJlbmN5OiBUUkxpbmtDdXJyZW5jeQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJyYW5nZSIsICJjdXJyZW5jeSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQW1vdW50MiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHJhbmdlCiAgICAgICAgaWYgc2VsZi5yYW5nZToKICAgICAgICAgICAgX2RpY3RbJ3JhbmdlJ10gPSBzZWxmLnJhbmdlLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQW1vdW50MiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJyYW5nZSI6IFRSTGlua0Ftb3VudFJhbmdlLmZyb21fZGljdChvYmpbInJhbmdlIl0pIGlmIG9iai5nZXQoInJhbmdlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiY3VycmVuY3kiOiBvYmouZ2V0KCJjdXJyZW5jeSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_amount_range.py b/fireblocks/models/tr_link_amount_range.py index 3ffab9b6..811de7d5 100644 --- a/fireblocks/models/tr_link_amount_range.py +++ b/fireblocks/models/tr_link_amount_range.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkAmountRange(BaseModel): - """ - Minimum and maximum amount range specification - """ # noqa: E501 - min: Optional[StrictStr] = Field(default=None, description="Minimum amount (inclusive)") - max: Optional[StrictStr] = Field(default=None, description="Maximum amount (inclusive)") - __properties: ClassVar[List[str]] = ["min", "max"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkAmountRange from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if min (nullable) is None - # and model_fields_set contains the field - if self.min is None and "min" in self.model_fields_set: - _dict['min'] = None - - # set to None if max (nullable) is None - # and model_fields_set contains the field - if self.max is None and "max" in self.model_fields_set: - _dict['max'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkAmountRange from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "min": obj.get("min"), - "max": obj.get("max") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtBbW91bnRSYW5nZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBNaW5pbXVtIGFuZCBtYXhpbXVtIGFtb3VudCByYW5nZSBzcGVjaWZpY2F0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBtaW46IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJNaW5pbXVtIGFtb3VudCAoaW5jbHVzaXZlKSIpCiAgICBtYXg6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJNYXhpbXVtIGFtb3VudCAoaW5jbHVzaXZlKSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm1pbiIsICJtYXgiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0Ftb3VudFJhbmdlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIHNldCB0byBOb25lIGlmIG1pbiAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYubWluIGlzIE5vbmUgYW5kICJtaW4iIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ21pbiddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIG1heCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYubWF4IGlzIE5vbmUgYW5kICJtYXgiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ21heCddID0gTm9uZQoKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0Ftb3VudFJhbmdlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm1pbiI6IG9iai5nZXQoIm1pbiIpLAogICAgICAgICAgICAibWF4Ijogb2JqLmdldCgibWF4IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_api_paged_response.py b/fireblocks/models/tr_link_api_paged_response.py index 21d4252b..fff4de7c 100644 --- a/fireblocks/models/tr_link_api_paged_response.py +++ b/fireblocks/models/tr_link_api_paged_response.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tr_link_paging import TRLinkPaging -from fireblocks.models.tr_link_vasp_list_dto import TRLinkVaspListDto -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkAPIPagedResponse(BaseModel): - """ - Generic paginated response wrapper with cursor-based pagination - """ # noqa: E501 - data: List[TRLinkVaspListDto] = Field(description="Array of result items") - paging: Optional[TRLinkPaging] = None - __properties: ClassVar[List[str]] = ["data", "paging"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkAPIPagedResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # override the default output from pydantic by calling `to_dict()` of paging - if self.paging: - _dict['paging'] = self.paging.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkAPIPagedResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [TRLinkVaspListDto.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "paging": TRLinkPaging.from_dict(obj["paging"]) if obj.get("paging") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3BhZ2luZyBpbXBvcnQgVFJMaW5rUGFnaW5nCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua192YXNwX2xpc3RfZHRvIGltcG9ydCBUUkxpbmtWYXNwTGlzdER0bwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtBUElQYWdlZFJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEdlbmVyaWMgcGFnaW5hdGVkIHJlc3BvbnNlIHdyYXBwZXIgd2l0aCBjdXJzb3ItYmFzZWQgcGFnaW5hdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGF0YTogTGlzdFtUUkxpbmtWYXNwTGlzdER0b10gPSBGaWVsZChkZXNjcmlwdGlvbj0iQXJyYXkgb2YgcmVzdWx0IGl0ZW1zIikKICAgIHBhZ2luZzogT3B0aW9uYWxbVFJMaW5rUGFnaW5nXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZGF0YSIsICJwYWdpbmciXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0FQSVBhZ2VkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGF0YSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgZm9yIF9pdGVtX2RhdGEgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZGF0YToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2RhdGEudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHBhZ2luZwogICAgICAgIGlmIHNlbGYucGFnaW5nOgogICAgICAgICAgICBfZGljdFsncGFnaW5nJ10gPSBzZWxmLnBhZ2luZy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0FQSVBhZ2VkUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZGF0YSI6IFtUUkxpbmtWYXNwTGlzdER0by5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImRhdGEiXV0gaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInBhZ2luZyI6IFRSTGlua1BhZ2luZy5mcm9tX2RpY3Qob2JqWyJwYWdpbmciXSkgaWYgb2JqLmdldCgicGFnaW5nIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_assess_travel_rule_request.py b/fireblocks/models/tr_link_assess_travel_rule_request.py index a5bc953b..e410e380 100644 --- a/fireblocks/models/tr_link_assess_travel_rule_request.py +++ b/fireblocks/models/tr_link_assess_travel_rule_request.py @@ -1,171 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tr_link_destination_transfer_peer_path import TRLinkDestinationTransferPeerPath -from fireblocks.models.tr_link_source_transfer_peer_path import TRLinkSourceTransferPeerPath -from fireblocks.models.tr_link_transaction_direction import TRLinkTransactionDirection -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkAssessTravelRuleRequest(BaseModel): - """ - Request to assess whether Travel Rule compliance is required for a transaction - """ # noqa: E501 - tx_id: Optional[StrictStr] = Field(default=None, description="Fireblocks transaction ID (optional) - RECOMMENDED for inbound transactions", alias="txId") - amount: Optional[StrictStr] = Field(default=None, description="Transaction amount (required when txId not provided)") - amount_usd: Optional[StrictStr] = Field(default=None, description="Transaction amount in USD (optional)", alias="amountUSD") - destination: Optional[TRLinkDestinationTransferPeerPath] = None - dest_address: Optional[StrictStr] = Field(default=None, description="Destination address (optional)", alias="destAddress") - dest_tag: Optional[StrictStr] = Field(default=None, description="Destination tag (optional)", alias="destTag") - source: Optional[TRLinkSourceTransferPeerPath] = None - src_address: Optional[StrictStr] = Field(default=None, description="Source address (optional)", alias="srcAddress") - asset_id: Optional[StrictStr] = Field(default=None, description="Asset identifier (e.g., ETH, BTC, USDC)", alias="assetId") - direction: Optional[TRLinkTransactionDirection] = None - tx_hash: Optional[StrictStr] = Field(default=None, description="Transaction hash (optional)", alias="txHash") - originator_vasp_id: Optional[StrictStr] = Field(default=None, description="Originator VASP identifier - required for inbound transactions", alias="originatorVaspId") - beneficiary_vasp_id: Optional[StrictStr] = Field(default=None, description="Beneficiary VASP identifier - required for outbound transactions", alias="beneficiaryVaspId") - __properties: ClassVar[List[str]] = ["txId", "amount", "amountUSD", "destination", "destAddress", "destTag", "source", "srcAddress", "assetId", "direction", "txHash", "originatorVaspId", "beneficiaryVaspId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkAssessTravelRuleRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of destination - if self.destination: - _dict['destination'] = self.destination.to_dict() - # override the default output from pydantic by calling `to_dict()` of source - if self.source: - _dict['source'] = self.source.to_dict() - # set to None if tx_id (nullable) is None - # and model_fields_set contains the field - if self.tx_id is None and "tx_id" in self.model_fields_set: - _dict['txId'] = None - - # set to None if amount (nullable) is None - # and model_fields_set contains the field - if self.amount is None and "amount" in self.model_fields_set: - _dict['amount'] = None - - # set to None if amount_usd (nullable) is None - # and model_fields_set contains the field - if self.amount_usd is None and "amount_usd" in self.model_fields_set: - _dict['amountUSD'] = None - - # set to None if dest_address (nullable) is None - # and model_fields_set contains the field - if self.dest_address is None and "dest_address" in self.model_fields_set: - _dict['destAddress'] = None - - # set to None if dest_tag (nullable) is None - # and model_fields_set contains the field - if self.dest_tag is None and "dest_tag" in self.model_fields_set: - _dict['destTag'] = None - - # set to None if src_address (nullable) is None - # and model_fields_set contains the field - if self.src_address is None and "src_address" in self.model_fields_set: - _dict['srcAddress'] = None - - # set to None if asset_id (nullable) is None - # and model_fields_set contains the field - if self.asset_id is None and "asset_id" in self.model_fields_set: - _dict['assetId'] = None - - # set to None if tx_hash (nullable) is None - # and model_fields_set contains the field - if self.tx_hash is None and "tx_hash" in self.model_fields_set: - _dict['txHash'] = None - - # set to None if originator_vasp_id (nullable) is None - # and model_fields_set contains the field - if self.originator_vasp_id is None and "originator_vasp_id" in self.model_fields_set: - _dict['originatorVaspId'] = None - - # set to None if beneficiary_vasp_id (nullable) is None - # and model_fields_set contains the field - if self.beneficiary_vasp_id is None and "beneficiary_vasp_id" in self.model_fields_set: - _dict['beneficiaryVaspId'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkAssessTravelRuleRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "txId": obj.get("txId"), - "amount": obj.get("amount"), - "amountUSD": obj.get("amountUSD"), - "destination": TRLinkDestinationTransferPeerPath.from_dict(obj["destination"]) if obj.get("destination") is not None else None, - "destAddress": obj.get("destAddress"), - "destTag": obj.get("destTag"), - "source": TRLinkSourceTransferPeerPath.from_dict(obj["source"]) if obj.get("source") is not None else None, - "srcAddress": obj.get("srcAddress"), - "assetId": obj.get("assetId"), - "direction": obj.get("direction"), - "txHash": obj.get("txHash"), - "originatorVaspId": obj.get("originatorVaspId"), - "beneficiaryVaspId": obj.get("beneficiaryVaspId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfZGVzdGluYXRpb25fdHJhbnNmZXJfcGVlcl9wYXRoIGltcG9ydCBUUkxpbmtEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3NvdXJjZV90cmFuc2Zlcl9wZWVyX3BhdGggaW1wb3J0IFRSTGlua1NvdXJjZVRyYW5zZmVyUGVlclBhdGgKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3RyYW5zYWN0aW9uX2RpcmVjdGlvbiBpbXBvcnQgVFJMaW5rVHJhbnNhY3Rpb25EaXJlY3Rpb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgUmVxdWVzdCB0byBhc3Nlc3Mgd2hldGhlciBUcmF2ZWwgUnVsZSBjb21wbGlhbmNlIGlzIHJlcXVpcmVkIGZvciBhIHRyYW5zYWN0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkZpcmVibG9ja3MgdHJhbnNhY3Rpb24gSUQgKG9wdGlvbmFsKSAtIFJFQ09NTUVOREVEIGZvciBpbmJvdW5kIHRyYW5zYWN0aW9ucyIsIGFsaWFzPSJ0eElkIikKICAgIGFtb3VudDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRyYW5zYWN0aW9uIGFtb3VudCAocmVxdWlyZWQgd2hlbiB0eElkIG5vdCBwcm92aWRlZCkiKQogICAgYW1vdW50X3VzZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRyYW5zYWN0aW9uIGFtb3VudCBpbiBVU0QgKG9wdGlvbmFsKSIsIGFsaWFzPSJhbW91bnRVU0QiKQogICAgZGVzdGluYXRpb246IE9wdGlvbmFsW1RSTGlua0Rlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aF0gPSBOb25lCiAgICBkZXN0X2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiBhZGRyZXNzIChvcHRpb25hbCkiLCBhbGlhcz0iZGVzdEFkZHJlc3MiKQogICAgZGVzdF90YWc6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiB0YWcgKG9wdGlvbmFsKSIsIGFsaWFzPSJkZXN0VGFnIikKICAgIHNvdXJjZTogT3B0aW9uYWxbVFJMaW5rU291cmNlVHJhbnNmZXJQZWVyUGF0aF0gPSBOb25lCiAgICBzcmNfYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNvdXJjZSBhZGRyZXNzIChvcHRpb25hbCkiLCBhbGlhcz0ic3JjQWRkcmVzcyIpCiAgICBhc3NldF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFzc2V0IGlkZW50aWZpZXIgKGUuZy4sIEVUSCwgQlRDLCBVU0RDKSIsIGFsaWFzPSJhc3NldElkIikKICAgIGRpcmVjdGlvbjogT3B0aW9uYWxbVFJMaW5rVHJhbnNhY3Rpb25EaXJlY3Rpb25dID0gTm9uZQogICAgdHhfaGFzaDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRyYW5zYWN0aW9uIGhhc2ggKG9wdGlvbmFsKSIsIGFsaWFzPSJ0eEhhc2giKQogICAgb3JpZ2luYXRvcl92YXNwX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iT3JpZ2luYXRvciBWQVNQIGlkZW50aWZpZXIgLSByZXF1aXJlZCBmb3IgaW5ib3VuZCB0cmFuc2FjdGlvbnMiLCBhbGlhcz0ib3JpZ2luYXRvclZhc3BJZCIpCiAgICBiZW5lZmljaWFyeV92YXNwX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQmVuZWZpY2lhcnkgVkFTUCBpZGVudGlmaWVyIC0gcmVxdWlyZWQgZm9yIG91dGJvdW5kIHRyYW5zYWN0aW9ucyIsIGFsaWFzPSJiZW5lZmljaWFyeVZhc3BJZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR4SWQiLCAiYW1vdW50IiwgImFtb3VudFVTRCIsICJkZXN0aW5hdGlvbiIsICJkZXN0QWRkcmVzcyIsICJkZXN0VGFnIiwgInNvdXJjZSIsICJzcmNBZGRyZXNzIiwgImFzc2V0SWQiLCAiZGlyZWN0aW9uIiwgInR4SGFzaCIsICJvcmlnaW5hdG9yVmFzcElkIiwgImJlbmVmaWNpYXJ5VmFzcElkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGRlc3RpbmF0aW9uCiAgICAgICAgaWYgc2VsZi5kZXN0aW5hdGlvbjoKICAgICAgICAgICAgX2RpY3RbJ2Rlc3RpbmF0aW9uJ10gPSBzZWxmLmRlc3RpbmF0aW9uLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBzb3VyY2UKICAgICAgICBpZiBzZWxmLnNvdXJjZToKICAgICAgICAgICAgX2RpY3RbJ3NvdXJjZSddID0gc2VsZi5zb3VyY2UudG9fZGljdCgpCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiB0eF9pZCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYudHhfaWQgaXMgTm9uZSBhbmQgInR4X2lkIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wyd0eElkJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgYW1vdW50IChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5hbW91bnQgaXMgTm9uZSBhbmQgImFtb3VudCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnYW1vdW50J10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgYW1vdW50X3VzZCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuYW1vdW50X3VzZCBpcyBOb25lIGFuZCAiYW1vdW50X3VzZCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnYW1vdW50VVNEJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgZGVzdF9hZGRyZXNzIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5kZXN0X2FkZHJlc3MgaXMgTm9uZSBhbmQgImRlc3RfYWRkcmVzcyIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnZGVzdEFkZHJlc3MnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBkZXN0X3RhZyAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuZGVzdF90YWcgaXMgTm9uZSBhbmQgImRlc3RfdGFnIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydkZXN0VGFnJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgc3JjX2FkZHJlc3MgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnNyY19hZGRyZXNzIGlzIE5vbmUgYW5kICJzcmNfYWRkcmVzcyIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnc3JjQWRkcmVzcyddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGFzc2V0X2lkIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5hc3NldF9pZCBpcyBOb25lIGFuZCAiYXNzZXRfaWQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2Fzc2V0SWQnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiB0eF9oYXNoIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi50eF9oYXNoIGlzIE5vbmUgYW5kICJ0eF9oYXNoIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wyd0eEhhc2gnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBvcmlnaW5hdG9yX3Zhc3BfaWQgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLm9yaWdpbmF0b3JfdmFzcF9pZCBpcyBOb25lIGFuZCAib3JpZ2luYXRvcl92YXNwX2lkIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydvcmlnaW5hdG9yVmFzcElkJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgYmVuZWZpY2lhcnlfdmFzcF9pZCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuYmVuZWZpY2lhcnlfdmFzcF9pZCBpcyBOb25lIGFuZCAiYmVuZWZpY2lhcnlfdmFzcF9pZCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnYmVuZWZpY2lhcnlWYXNwSWQnXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eElkIjogb2JqLmdldCgidHhJZCIpLAogICAgICAgICAgICAiYW1vdW50Ijogb2JqLmdldCgiYW1vdW50IiksCiAgICAgICAgICAgICJhbW91bnRVU0QiOiBvYmouZ2V0KCJhbW91bnRVU0QiKSwKICAgICAgICAgICAgImRlc3RpbmF0aW9uIjogVFJMaW5rRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoLmZyb21fZGljdChvYmpbImRlc3RpbmF0aW9uIl0pIGlmIG9iai5nZXQoImRlc3RpbmF0aW9uIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZGVzdEFkZHJlc3MiOiBvYmouZ2V0KCJkZXN0QWRkcmVzcyIpLAogICAgICAgICAgICAiZGVzdFRhZyI6IG9iai5nZXQoImRlc3RUYWciKSwKICAgICAgICAgICAgInNvdXJjZSI6IFRSTGlua1NvdXJjZVRyYW5zZmVyUGVlclBhdGguZnJvbV9kaWN0KG9ialsic291cmNlIl0pIGlmIG9iai5nZXQoInNvdXJjZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInNyY0FkZHJlc3MiOiBvYmouZ2V0KCJzcmNBZGRyZXNzIiksCiAgICAgICAgICAgICJhc3NldElkIjogb2JqLmdldCgiYXNzZXRJZCIpLAogICAgICAgICAgICAiZGlyZWN0aW9uIjogb2JqLmdldCgiZGlyZWN0aW9uIiksCiAgICAgICAgICAgICJ0eEhhc2giOiBvYmouZ2V0KCJ0eEhhc2giKSwKICAgICAgICAgICAgIm9yaWdpbmF0b3JWYXNwSWQiOiBvYmouZ2V0KCJvcmlnaW5hdG9yVmFzcElkIiksCiAgICAgICAgICAgICJiZW5lZmljaWFyeVZhc3BJZCI6IG9iai5nZXQoImJlbmVmaWNpYXJ5VmFzcElkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_assess_travel_rule_response.py b/fireblocks/models/tr_link_assess_travel_rule_response.py index f152345b..657d1a67 100644 --- a/fireblocks/models/tr_link_assess_travel_rule_response.py +++ b/fireblocks/models/tr_link_assess_travel_rule_response.py @@ -1,111 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tr_link_assessment_decision import TRLinkAssessmentDecision -from fireblocks.models.tr_link_thresholds import TRLinkThresholds -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkAssessTravelRuleResponse(BaseModel): - """ - Response indicating whether Travel Rule compliance is required - """ # noqa: E501 - decision: TRLinkAssessmentDecision - reason: StrictStr = Field(description="Explanation of the decision") - required_fields: Optional[List[StrictStr]] = Field(default=None, description="List of required fields if Travel Rule is required", alias="requiredFields") - missing_info: Optional[List[StrictStr]] = Field(default=None, description="List of missing fields if more information is needed", alias="missingInfo") - thresholds: Optional[TRLinkThresholds] = None - __properties: ClassVar[List[str]] = ["decision", "reason", "requiredFields", "missingInfo", "thresholds"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkAssessTravelRuleResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of thresholds - if self.thresholds: - _dict['thresholds'] = self.thresholds.to_dict() - # set to None if required_fields (nullable) is None - # and model_fields_set contains the field - if self.required_fields is None and "required_fields" in self.model_fields_set: - _dict['requiredFields'] = None - - # set to None if missing_info (nullable) is None - # and model_fields_set contains the field - if self.missing_info is None and "missing_info" in self.model_fields_set: - _dict['missingInfo'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkAssessTravelRuleResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "decision": obj.get("decision"), - "reason": obj.get("reason"), - "requiredFields": obj.get("requiredFields"), - "missingInfo": obj.get("missingInfo"), - "thresholds": TRLinkThresholds.from_dict(obj["thresholds"]) if obj.get("thresholds") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXNzZXNzbWVudF9kZWNpc2lvbiBpbXBvcnQgVFJMaW5rQXNzZXNzbWVudERlY2lzaW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua190aHJlc2hvbGRzIGltcG9ydCBUUkxpbmtUaHJlc2hvbGRzCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSZXNwb25zZSBpbmRpY2F0aW5nIHdoZXRoZXIgVHJhdmVsIFJ1bGUgY29tcGxpYW5jZSBpcyByZXF1aXJlZAogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGVjaXNpb246IFRSTGlua0Fzc2Vzc21lbnREZWNpc2lvbgogICAgcmVhc29uOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iRXhwbGFuYXRpb24gb2YgdGhlIGRlY2lzaW9uIikKICAgIHJlcXVpcmVkX2ZpZWxkczogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ikxpc3Qgb2YgcmVxdWlyZWQgZmllbGRzIGlmIFRyYXZlbCBSdWxlIGlzIHJlcXVpcmVkIiwgYWxpYXM9InJlcXVpcmVkRmllbGRzIikKICAgIG1pc3NpbmdfaW5mbzogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ikxpc3Qgb2YgbWlzc2luZyBmaWVsZHMgaWYgbW9yZSBpbmZvcm1hdGlvbiBpcyBuZWVkZWQiLCBhbGlhcz0ibWlzc2luZ0luZm8iKQogICAgdGhyZXNob2xkczogT3B0aW9uYWxbVFJMaW5rVGhyZXNob2xkc10gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRlY2lzaW9uIiwgInJlYXNvbiIsICJyZXF1aXJlZEZpZWxkcyIsICJtaXNzaW5nSW5mbyIsICJ0aHJlc2hvbGRzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiB0aHJlc2hvbGRzCiAgICAgICAgaWYgc2VsZi50aHJlc2hvbGRzOgogICAgICAgICAgICBfZGljdFsndGhyZXNob2xkcyddID0gc2VsZi50aHJlc2hvbGRzLnRvX2RpY3QoKQogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgcmVxdWlyZWRfZmllbGRzIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5yZXF1aXJlZF9maWVsZHMgaXMgTm9uZSBhbmQgInJlcXVpcmVkX2ZpZWxkcyIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsncmVxdWlyZWRGaWVsZHMnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBtaXNzaW5nX2luZm8gKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLm1pc3NpbmdfaW5mbyBpcyBOb25lIGFuZCAibWlzc2luZ19pbmZvIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydtaXNzaW5nSW5mbyddID0gTm9uZQoKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkZWNpc2lvbiI6IG9iai5nZXQoImRlY2lzaW9uIiksCiAgICAgICAgICAgICJyZWFzb24iOiBvYmouZ2V0KCJyZWFzb24iKSwKICAgICAgICAgICAgInJlcXVpcmVkRmllbGRzIjogb2JqLmdldCgicmVxdWlyZWRGaWVsZHMiKSwKICAgICAgICAgICAgIm1pc3NpbmdJbmZvIjogb2JqLmdldCgibWlzc2luZ0luZm8iKSwKICAgICAgICAgICAgInRocmVzaG9sZHMiOiBUUkxpbmtUaHJlc2hvbGRzLmZyb21fZGljdChvYmpbInRocmVzaG9sZHMiXSkgaWYgb2JqLmdldCgidGhyZXNob2xkcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_assessment_decision.py b/fireblocks/models/tr_link_assessment_decision.py index c245f38f..4adb310e 100644 --- a/fireblocks/models/tr_link_assessment_decision.py +++ b/fireblocks/models/tr_link_assessment_decision.py @@ -1,39 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TRLinkAssessmentDecision(str, Enum): - """ - Decision about Travel Rule applicability - """ - - """ - allowed enum values - """ - REQUIRED = 'REQUIRED' - NOT_REQUIRED = 'NOT_REQUIRED' - NEED_MORE_INFO = 'NEED_MORE_INFO' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TRLinkAssessmentDecision from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUUkxpbmtBc3Nlc3NtZW50RGVjaXNpb24oc3RyLCBFbnVtKToKICAgICIiIgogICAgRGVjaXNpb24gYWJvdXQgVHJhdmVsIFJ1bGUgYXBwbGljYWJpbGl0eQogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIFJFUVVJUkVEID0gJ1JFUVVJUkVEJwogICAgTk9UX1JFUVVJUkVEID0gJ05PVF9SRVFVSVJFRCcKICAgIE5FRURfTU9SRV9JTkZPID0gJ05FRURfTU9SRV9JTkZPJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0Fzc2Vzc21lbnREZWNpc2lvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_asset.py b/fireblocks/models/tr_link_asset.py index fd70edc2..2a6e8fe5 100644 --- a/fireblocks/models/tr_link_asset.py +++ b/fireblocks/models/tr_link_asset.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List -from fireblocks.models.tr_link_asset_data import TRLinkAssetData -from fireblocks.models.tr_link_asset_format import TRLinkAssetFormat -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkAsset(BaseModel): - """ - TRLinkAsset - """ # noqa: E501 - format: TRLinkAssetFormat - data: TRLinkAssetData - __properties: ClassVar[List[str]] = ["format", "data"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkAsset from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of data - if self.data: - _dict['data'] = self.data.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkAsset from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "format": obj.get("format"), - "data": TRLinkAssetData.from_dict(obj["data"]) if obj.get("data") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hc3NldF9kYXRhIGltcG9ydCBUUkxpbmtBc3NldERhdGEKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Fzc2V0X2Zvcm1hdCBpbXBvcnQgVFJMaW5rQXNzZXRGb3JtYXQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVFJMaW5rQXNzZXQoQmFzZU1vZGVsKToKICAgICIiIgogICAgVFJMaW5rQXNzZXQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGZvcm1hdDogVFJMaW5rQXNzZXRGb3JtYXQKICAgIGRhdGE6IFRSTGlua0Fzc2V0RGF0YQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJmb3JtYXQiLCAiZGF0YSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQXNzZXQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBkYXRhCiAgICAgICAgaWYgc2VsZi5kYXRhOgogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gc2VsZi5kYXRhLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQXNzZXQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZm9ybWF0Ijogb2JqLmdldCgiZm9ybWF0IiksCiAgICAgICAgICAgICJkYXRhIjogVFJMaW5rQXNzZXREYXRhLmZyb21fZGljdChvYmpbImRhdGEiXSkgaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_asset_data.py b/fireblocks/models/tr_link_asset_data.py index 2028dfa6..66d039d8 100644 --- a/fireblocks/models/tr_link_asset_data.py +++ b/fireblocks/models/tr_link_asset_data.py @@ -1,116 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkAssetData(BaseModel): - """ - TRLinkAssetData - """ # noqa: E501 - ticker: Optional[StrictStr] = Field(default=None, description="Asset ticker symbol (e.g., BTC, ETH, USDT)") - network: StrictStr = Field(description="Network identifier from Fireblocks (e.g., ETH, BTC)") - ucid: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="CoinMarketCap unique coin ID") - contract_address: Optional[StrictStr] = Field(default=None, description="Contract address for tokens", alias="contractAddress") - id: Optional[StrictStr] = Field(default=None, description="Fireblocks asset ID") - __properties: ClassVar[List[str]] = ["ticker", "network", "ucid", "contractAddress", "id"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkAssetData from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if ticker (nullable) is None - # and model_fields_set contains the field - if self.ticker is None and "ticker" in self.model_fields_set: - _dict['ticker'] = None - - # set to None if ucid (nullable) is None - # and model_fields_set contains the field - if self.ucid is None and "ucid" in self.model_fields_set: - _dict['ucid'] = None - - # set to None if contract_address (nullable) is None - # and model_fields_set contains the field - if self.contract_address is None and "contract_address" in self.model_fields_set: - _dict['contractAddress'] = None - - # set to None if id (nullable) is None - # and model_fields_set contains the field - if self.id is None and "id" in self.model_fields_set: - _dict['id'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkAssetData from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "ticker": obj.get("ticker"), - "network": obj.get("network"), - "ucid": obj.get("ucid"), - "contractAddress": obj.get("contractAddress"), - "id": obj.get("id") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVFJMaW5rQXNzZXREYXRhKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRSTGlua0Fzc2V0RGF0YQogICAgIiIiICMgbm9xYTogRTUwMQogICAgdGlja2VyOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQXNzZXQgdGlja2VyIHN5bWJvbCAoZS5nLiwgQlRDLCBFVEgsIFVTRFQpIikKICAgIG5ldHdvcms6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJOZXR3b3JrIGlkZW50aWZpZXIgZnJvbSBGaXJlYmxvY2tzIChlLmcuLCBFVEgsIEJUQykiKQogICAgdWNpZDogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ29pbk1hcmtldENhcCB1bmlxdWUgY29pbiBJRCIpCiAgICBjb250cmFjdF9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ29udHJhY3QgYWRkcmVzcyBmb3IgdG9rZW5zIiwgYWxpYXM9ImNvbnRyYWN0QWRkcmVzcyIpCiAgICBpZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkZpcmVibG9ja3MgYXNzZXQgSUQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0aWNrZXIiLCAibmV0d29yayIsICJ1Y2lkIiwgImNvbnRyYWN0QWRkcmVzcyIsICJpZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQXNzZXREYXRhIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIHNldCB0byBOb25lIGlmIHRpY2tlciAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYudGlja2VyIGlzIE5vbmUgYW5kICJ0aWNrZXIiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3RpY2tlciddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIHVjaWQgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnVjaWQgaXMgTm9uZSBhbmQgInVjaWQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3VjaWQnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBjb250cmFjdF9hZGRyZXNzIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5jb250cmFjdF9hZGRyZXNzIGlzIE5vbmUgYW5kICJjb250cmFjdF9hZGRyZXNzIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wydjb250cmFjdEFkZHJlc3MnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBpZCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuaWQgaXMgTm9uZSBhbmQgImlkIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydpZCddID0gTm9uZQoKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0Fzc2V0RGF0YSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0aWNrZXIiOiBvYmouZ2V0KCJ0aWNrZXIiKSwKICAgICAgICAgICAgIm5ldHdvcmsiOiBvYmouZ2V0KCJuZXR3b3JrIiksCiAgICAgICAgICAgICJ1Y2lkIjogb2JqLmdldCgidWNpZCIpLAogICAgICAgICAgICAiY29udHJhY3RBZGRyZXNzIjogb2JqLmdldCgiY29udHJhY3RBZGRyZXNzIiksCiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_asset_format.py b/fireblocks/models/tr_link_asset_format.py index dbdc98bc..2285c6bd 100644 --- a/fireblocks/models/tr_link_asset_format.py +++ b/fireblocks/models/tr_link_asset_format.py @@ -1,39 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TRLinkAssetFormat(str, Enum): - """ - Asset format type - """ - - """ - allowed enum values - """ - FIREBLOCKS = 'fireblocks' - COINMARKETCAP = 'coinmarketcap' - SLIP44 = 'slip44' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TRLinkAssetFormat from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUUkxpbmtBc3NldEZvcm1hdChzdHIsIEVudW0pOgogICAgIiIiCiAgICBBc3NldCBmb3JtYXQgdHlwZQogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIEZJUkVCTE9DS1MgPSAnZmlyZWJsb2NrcycKICAgIENPSU5NQVJLRVRDQVAgPSAnY29pbm1hcmtldGNhcCcKICAgIFNMSVA0NCA9ICdzbGlwNDQnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQXNzZXRGb3JtYXQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_assets_list_paged_response.py b/fireblocks/models/tr_link_assets_list_paged_response.py index a98929a7..d9ad4ce1 100644 --- a/fireblocks/models/tr_link_assets_list_paged_response.py +++ b/fireblocks/models/tr_link_assets_list_paged_response.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tr_link_paging import TRLinkPaging -from fireblocks.models.tr_link_public_asset_info import TRLinkPublicAssetInfo -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkAssetsListPagedResponse(BaseModel): - """ - Paginated list of supported assets with partner capability flag - """ # noqa: E501 - data: List[TRLinkPublicAssetInfo] = Field(description="List of supported assets") - paging: Optional[TRLinkPaging] = None - partner_can_handle_any_asset: StrictBool = Field(description="Whether partner can handle any asset (not just explicitly listed ones)", alias="partnerCanHandleAnyAsset") - note: StrictStr = Field(description="Note about asset support capabilities") - __properties: ClassVar[List[str]] = ["data", "paging", "partnerCanHandleAnyAsset", "note"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkAssetsListPagedResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # override the default output from pydantic by calling `to_dict()` of paging - if self.paging: - _dict['paging'] = self.paging.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkAssetsListPagedResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [TRLinkPublicAssetInfo.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "paging": TRLinkPaging.from_dict(obj["paging"]) if obj.get("paging") is not None else None, - "partnerCanHandleAnyAsset": obj.get("partnerCanHandleAnyAsset"), - "note": obj.get("note") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcGFnaW5nIGltcG9ydCBUUkxpbmtQYWdpbmcKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3B1YmxpY19hc3NldF9pbmZvIGltcG9ydCBUUkxpbmtQdWJsaWNBc3NldEluZm8KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVFJMaW5rQXNzZXRzTGlzdFBhZ2VkUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgUGFnaW5hdGVkIGxpc3Qgb2Ygc3VwcG9ydGVkIGFzc2V0cyB3aXRoIHBhcnRuZXIgY2FwYWJpbGl0eSBmbGFnCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkYXRhOiBMaXN0W1RSTGlua1B1YmxpY0Fzc2V0SW5mb10gPSBGaWVsZChkZXNjcmlwdGlvbj0iTGlzdCBvZiBzdXBwb3J0ZWQgYXNzZXRzIikKICAgIHBhZ2luZzogT3B0aW9uYWxbVFJMaW5rUGFnaW5nXSA9IE5vbmUKICAgIHBhcnRuZXJfY2FuX2hhbmRsZV9hbnlfYXNzZXQ6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iV2hldGhlciBwYXJ0bmVyIGNhbiBoYW5kbGUgYW55IGFzc2V0IChub3QganVzdCBleHBsaWNpdGx5IGxpc3RlZCBvbmVzKSIsIGFsaWFzPSJwYXJ0bmVyQ2FuSGFuZGxlQW55QXNzZXQiKQogICAgbm90ZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249Ik5vdGUgYWJvdXQgYXNzZXQgc3VwcG9ydCBjYXBhYmlsaXRpZXMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJkYXRhIiwgInBhZ2luZyIsICJwYXJ0bmVyQ2FuSGFuZGxlQW55QXNzZXQiLCAibm90ZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQXNzZXRzTGlzdFBhZ2VkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGF0YSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgZm9yIF9pdGVtX2RhdGEgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZGF0YToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2RhdGEudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHBhZ2luZwogICAgICAgIGlmIHNlbGYucGFnaW5nOgogICAgICAgICAgICBfZGljdFsncGFnaW5nJ10gPSBzZWxmLnBhZ2luZy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0Fzc2V0c0xpc3RQYWdlZFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRhdGEiOiBbVFJMaW5rUHVibGljQXNzZXRJbmZvLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiZGF0YSJdXSBpZiBvYmouZ2V0KCJkYXRhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAicGFnaW5nIjogVFJMaW5rUGFnaW5nLmZyb21fZGljdChvYmpbInBhZ2luZyJdKSBpZiBvYmouZ2V0KCJwYWdpbmciKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJwYXJ0bmVyQ2FuSGFuZGxlQW55QXNzZXQiOiBvYmouZ2V0KCJwYXJ0bmVyQ2FuSGFuZGxlQW55QXNzZXQiKSwKICAgICAgICAgICAgIm5vdGUiOiBvYmouZ2V0KCJub3RlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_cancel_trm_request.py b/fireblocks/models/tr_link_cancel_trm_request.py index 8f6de32e..0a9579d0 100644 --- a/fireblocks/models/tr_link_cancel_trm_request.py +++ b/fireblocks/models/tr_link_cancel_trm_request.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkCancelTrmRequest(BaseModel): - """ - TRLinkCancelTrmRequest - """ # noqa: E501 - reason: Optional[StrictStr] = Field(default=None, description="Reason for cancellation") - cancelled_by: Optional[StrictStr] = Field(default=None, description="User ID who cancelled the TRM", alias="cancelledBy") - __properties: ClassVar[List[str]] = ["reason", "cancelledBy"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkCancelTrmRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if reason (nullable) is None - # and model_fields_set contains the field - if self.reason is None and "reason" in self.model_fields_set: - _dict['reason'] = None - - # set to None if cancelled_by (nullable) is None - # and model_fields_set contains the field - if self.cancelled_by is None and "cancelled_by" in self.model_fields_set: - _dict['cancelledBy'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkCancelTrmRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "reason": obj.get("reason"), - "cancelledBy": obj.get("cancelledBy") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtDYW5jZWxUcm1SZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRSTGlua0NhbmNlbFRybVJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHJlYXNvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlJlYXNvbiBmb3IgY2FuY2VsbGF0aW9uIikKICAgIGNhbmNlbGxlZF9ieTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlVzZXIgSUQgd2hvIGNhbmNlbGxlZCB0aGUgVFJNIiwgYWxpYXM9ImNhbmNlbGxlZEJ5IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicmVhc29uIiwgImNhbmNlbGxlZEJ5Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtDYW5jZWxUcm1SZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIHNldCB0byBOb25lIGlmIHJlYXNvbiAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYucmVhc29uIGlzIE5vbmUgYW5kICJyZWFzb24iIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3JlYXNvbiddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGNhbmNlbGxlZF9ieSAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuY2FuY2VsbGVkX2J5IGlzIE5vbmUgYW5kICJjYW5jZWxsZWRfYnkiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2NhbmNlbGxlZEJ5J10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQ2FuY2VsVHJtUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJyZWFzb24iOiBvYmouZ2V0KCJyZWFzb24iKSwKICAgICAgICAgICAgImNhbmNlbGxlZEJ5Ijogb2JqLmdldCgiY2FuY2VsbGVkQnkiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_connect_integration_request.py b/fireblocks/models/tr_link_connect_integration_request.py index 76527684..8948d5d6 100644 --- a/fireblocks/models/tr_link_connect_integration_request.py +++ b/fireblocks/models/tr_link_connect_integration_request.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkConnectIntegrationRequest(BaseModel): - """ - TRLinkConnectIntegrationRequest - """ # noqa: E501 - api_key: StrictStr = Field(description="API key provided by the Travel Rule partner", alias="apiKey") - secret: Optional[StrictStr] = Field(default=None, description="Secret/password provided by the Travel Rule partner (optional)") - __properties: ClassVar[List[str]] = ["apiKey", "secret"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkConnectIntegrationRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if secret (nullable) is None - # and model_fields_set contains the field - if self.secret is None and "secret" in self.model_fields_set: - _dict['secret'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkConnectIntegrationRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "apiKey": obj.get("apiKey"), - "secret": obj.get("secret") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtDb25uZWN0SW50ZWdyYXRpb25SZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRSTGlua0Nvbm5lY3RJbnRlZ3JhdGlvblJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFwaV9rZXk6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBUEkga2V5IHByb3ZpZGVkIGJ5IHRoZSBUcmF2ZWwgUnVsZSBwYXJ0bmVyIiwgYWxpYXM9ImFwaUtleSIpCiAgICBzZWNyZXQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTZWNyZXQvcGFzc3dvcmQgcHJvdmlkZWQgYnkgdGhlIFRyYXZlbCBSdWxlIHBhcnRuZXIgKG9wdGlvbmFsKSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFwaUtleSIsICJzZWNyZXQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0Nvbm5lY3RJbnRlZ3JhdGlvblJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgc2VjcmV0IChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5zZWNyZXQgaXMgTm9uZSBhbmQgInNlY3JldCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnc2VjcmV0J10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQ29ubmVjdEludGVncmF0aW9uUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhcGlLZXkiOiBvYmouZ2V0KCJhcGlLZXkiKSwKICAgICAgICAgICAgInNlY3JldCI6IG9iai5nZXQoInNlY3JldCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_create_customer_request.py b/fireblocks/models/tr_link_create_customer_request.py index f77b2de2..c225d3e0 100644 --- a/fireblocks/models/tr_link_create_customer_request.py +++ b/fireblocks/models/tr_link_create_customer_request.py @@ -1,150 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import date -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tr_link_discoverable_status import TRLinkDiscoverableStatus -from fireblocks.models.tr_link_geographic_address_request import TRLinkGeographicAddressRequest -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkCreateCustomerRequest(BaseModel): - """ - TRLinkCreateCustomerRequest - """ # noqa: E501 - discoverable: Optional[TRLinkDiscoverableStatus] = None - short_name: StrictStr = Field(description="Short display name (required)", alias="shortName") - full_legal_name: Optional[StrictStr] = Field(default=None, description="Full legal entity name", alias="fullLegalName") - geographic_address: Optional[TRLinkGeographicAddressRequest] = Field(default=None, alias="geographicAddress") - country_of_registration: Optional[StrictStr] = Field(default=None, description="ISO 3166-1 alpha-2 country code where the entity is registered", alias="countryOfRegistration") - national_identification: Optional[StrictStr] = Field(default=None, description="National identification as JSON string", alias="nationalIdentification") - date_of_incorporation: Optional[date] = Field(default=None, description="Date of entity incorporation (ISO 8601 format: YYYY-MM-DD)", alias="dateOfIncorporation") - vaults: Optional[List[StrictInt]] = Field(default=None, description="Associated Fireblocks vault account IDs") - tr_primary_purpose: Optional[StrictStr] = Field(default=None, description="Primary purpose for Travel Rule compliance (enum value)", alias="trPrimaryPurpose") - __properties: ClassVar[List[str]] = ["discoverable", "shortName", "fullLegalName", "geographicAddress", "countryOfRegistration", "nationalIdentification", "dateOfIncorporation", "vaults", "trPrimaryPurpose"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkCreateCustomerRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of geographic_address - if self.geographic_address: - _dict['geographicAddress'] = self.geographic_address.to_dict() - # set to None if discoverable (nullable) is None - # and model_fields_set contains the field - if self.discoverable is None and "discoverable" in self.model_fields_set: - _dict['discoverable'] = None - - # set to None if full_legal_name (nullable) is None - # and model_fields_set contains the field - if self.full_legal_name is None and "full_legal_name" in self.model_fields_set: - _dict['fullLegalName'] = None - - # set to None if geographic_address (nullable) is None - # and model_fields_set contains the field - if self.geographic_address is None and "geographic_address" in self.model_fields_set: - _dict['geographicAddress'] = None - - # set to None if country_of_registration (nullable) is None - # and model_fields_set contains the field - if self.country_of_registration is None and "country_of_registration" in self.model_fields_set: - _dict['countryOfRegistration'] = None - - # set to None if national_identification (nullable) is None - # and model_fields_set contains the field - if self.national_identification is None and "national_identification" in self.model_fields_set: - _dict['nationalIdentification'] = None - - # set to None if date_of_incorporation (nullable) is None - # and model_fields_set contains the field - if self.date_of_incorporation is None and "date_of_incorporation" in self.model_fields_set: - _dict['dateOfIncorporation'] = None - - # set to None if vaults (nullable) is None - # and model_fields_set contains the field - if self.vaults is None and "vaults" in self.model_fields_set: - _dict['vaults'] = None - - # set to None if tr_primary_purpose (nullable) is None - # and model_fields_set contains the field - if self.tr_primary_purpose is None and "tr_primary_purpose" in self.model_fields_set: - _dict['trPrimaryPurpose'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkCreateCustomerRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "discoverable": obj.get("discoverable"), - "shortName": obj.get("shortName"), - "fullLegalName": obj.get("fullLegalName"), - "geographicAddress": TRLinkGeographicAddressRequest.from_dict(obj["geographicAddress"]) if obj.get("geographicAddress") is not None else None, - "countryOfRegistration": obj.get("countryOfRegistration"), - "nationalIdentification": obj.get("nationalIdentification"), - "dateOfIncorporation": obj.get("dateOfIncorporation"), - "vaults": obj.get("vaults"), - "trPrimaryPurpose": obj.get("trPrimaryPurpose") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZQpmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RJbnQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Rpc2NvdmVyYWJsZV9zdGF0dXMgaW1wb3J0IFRSTGlua0Rpc2NvdmVyYWJsZVN0YXR1cwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfZ2VvZ3JhcGhpY19hZGRyZXNzX3JlcXVlc3QgaW1wb3J0IFRSTGlua0dlb2dyYXBoaWNBZGRyZXNzUmVxdWVzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtDcmVhdGVDdXN0b21lclJlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgVFJMaW5rQ3JlYXRlQ3VzdG9tZXJSZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkaXNjb3ZlcmFibGU6IE9wdGlvbmFsW1RSTGlua0Rpc2NvdmVyYWJsZVN0YXR1c10gPSBOb25lCiAgICBzaG9ydF9uYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iU2hvcnQgZGlzcGxheSBuYW1lIChyZXF1aXJlZCkiLCBhbGlhcz0ic2hvcnROYW1lIikKICAgIGZ1bGxfbGVnYWxfbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkZ1bGwgbGVnYWwgZW50aXR5IG5hbWUiLCBhbGlhcz0iZnVsbExlZ2FsTmFtZSIpCiAgICBnZW9ncmFwaGljX2FkZHJlc3M6IE9wdGlvbmFsW1RSTGlua0dlb2dyYXBoaWNBZGRyZXNzUmVxdWVzdF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJnZW9ncmFwaGljQWRkcmVzcyIpCiAgICBjb3VudHJ5X29mX3JlZ2lzdHJhdGlvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IklTTyAzMTY2LTEgYWxwaGEtMiBjb3VudHJ5IGNvZGUgd2hlcmUgdGhlIGVudGl0eSBpcyByZWdpc3RlcmVkIiwgYWxpYXM9ImNvdW50cnlPZlJlZ2lzdHJhdGlvbiIpCiAgICBuYXRpb25hbF9pZGVudGlmaWNhdGlvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik5hdGlvbmFsIGlkZW50aWZpY2F0aW9uIGFzIEpTT04gc3RyaW5nIiwgYWxpYXM9Im5hdGlvbmFsSWRlbnRpZmljYXRpb24iKQogICAgZGF0ZV9vZl9pbmNvcnBvcmF0aW9uOiBPcHRpb25hbFtkYXRlXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRhdGUgb2YgZW50aXR5IGluY29ycG9yYXRpb24gKElTTyA4NjAxIGZvcm1hdDogWVlZWS1NTS1ERCkiLCBhbGlhcz0iZGF0ZU9mSW5jb3Jwb3JhdGlvbiIpCiAgICB2YXVsdHM6IE9wdGlvbmFsW0xpc3RbU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBc3NvY2lhdGVkIEZpcmVibG9ja3MgdmF1bHQgYWNjb3VudCBJRHMiKQogICAgdHJfcHJpbWFyeV9wdXJwb3NlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUHJpbWFyeSBwdXJwb3NlIGZvciBUcmF2ZWwgUnVsZSBjb21wbGlhbmNlIChlbnVtIHZhbHVlKSIsIGFsaWFzPSJ0clByaW1hcnlQdXJwb3NlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZGlzY292ZXJhYmxlIiwgInNob3J0TmFtZSIsICJmdWxsTGVnYWxOYW1lIiwgImdlb2dyYXBoaWNBZGRyZXNzIiwgImNvdW50cnlPZlJlZ2lzdHJhdGlvbiIsICJuYXRpb25hbElkZW50aWZpY2F0aW9uIiwgImRhdGVPZkluY29ycG9yYXRpb24iLCAidmF1bHRzIiwgInRyUHJpbWFyeVB1cnBvc2UiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0NyZWF0ZUN1c3RvbWVyUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGdlb2dyYXBoaWNfYWRkcmVzcwogICAgICAgIGlmIHNlbGYuZ2VvZ3JhcGhpY19hZGRyZXNzOgogICAgICAgICAgICBfZGljdFsnZ2VvZ3JhcGhpY0FkZHJlc3MnXSA9IHNlbGYuZ2VvZ3JhcGhpY19hZGRyZXNzLnRvX2RpY3QoKQogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgZGlzY292ZXJhYmxlIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5kaXNjb3ZlcmFibGUgaXMgTm9uZSBhbmQgImRpc2NvdmVyYWJsZSIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnZGlzY292ZXJhYmxlJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgZnVsbF9sZWdhbF9uYW1lIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5mdWxsX2xlZ2FsX25hbWUgaXMgTm9uZSBhbmQgImZ1bGxfbGVnYWxfbmFtZSIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnZnVsbExlZ2FsTmFtZSddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGdlb2dyYXBoaWNfYWRkcmVzcyAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuZ2VvZ3JhcGhpY19hZGRyZXNzIGlzIE5vbmUgYW5kICJnZW9ncmFwaGljX2FkZHJlc3MiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2dlb2dyYXBoaWNBZGRyZXNzJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgY291bnRyeV9vZl9yZWdpc3RyYXRpb24gKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmNvdW50cnlfb2ZfcmVnaXN0cmF0aW9uIGlzIE5vbmUgYW5kICJjb3VudHJ5X29mX3JlZ2lzdHJhdGlvbiIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnY291bnRyeU9mUmVnaXN0cmF0aW9uJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgbmF0aW9uYWxfaWRlbnRpZmljYXRpb24gKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLm5hdGlvbmFsX2lkZW50aWZpY2F0aW9uIGlzIE5vbmUgYW5kICJuYXRpb25hbF9pZGVudGlmaWNhdGlvbiIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnbmF0aW9uYWxJZGVudGlmaWNhdGlvbiddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGRhdGVfb2ZfaW5jb3Jwb3JhdGlvbiAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuZGF0ZV9vZl9pbmNvcnBvcmF0aW9uIGlzIE5vbmUgYW5kICJkYXRlX29mX2luY29ycG9yYXRpb24iIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2RhdGVPZkluY29ycG9yYXRpb24nXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiB2YXVsdHMgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnZhdWx0cyBpcyBOb25lIGFuZCAidmF1bHRzIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wyd2YXVsdHMnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiB0cl9wcmltYXJ5X3B1cnBvc2UgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnRyX3ByaW1hcnlfcHVycG9zZSBpcyBOb25lIGFuZCAidHJfcHJpbWFyeV9wdXJwb3NlIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wyd0clByaW1hcnlQdXJwb3NlJ10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQ3JlYXRlQ3VzdG9tZXJSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRpc2NvdmVyYWJsZSI6IG9iai5nZXQoImRpc2NvdmVyYWJsZSIpLAogICAgICAgICAgICAic2hvcnROYW1lIjogb2JqLmdldCgic2hvcnROYW1lIiksCiAgICAgICAgICAgICJmdWxsTGVnYWxOYW1lIjogb2JqLmdldCgiZnVsbExlZ2FsTmFtZSIpLAogICAgICAgICAgICAiZ2VvZ3JhcGhpY0FkZHJlc3MiOiBUUkxpbmtHZW9ncmFwaGljQWRkcmVzc1JlcXVlc3QuZnJvbV9kaWN0KG9ialsiZ2VvZ3JhcGhpY0FkZHJlc3MiXSkgaWYgb2JqLmdldCgiZ2VvZ3JhcGhpY0FkZHJlc3MiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJjb3VudHJ5T2ZSZWdpc3RyYXRpb24iOiBvYmouZ2V0KCJjb3VudHJ5T2ZSZWdpc3RyYXRpb24iKSwKICAgICAgICAgICAgIm5hdGlvbmFsSWRlbnRpZmljYXRpb24iOiBvYmouZ2V0KCJuYXRpb25hbElkZW50aWZpY2F0aW9uIiksCiAgICAgICAgICAgICJkYXRlT2ZJbmNvcnBvcmF0aW9uIjogb2JqLmdldCgiZGF0ZU9mSW5jb3Jwb3JhdGlvbiIpLAogICAgICAgICAgICAidmF1bHRzIjogb2JqLmdldCgidmF1bHRzIiksCiAgICAgICAgICAgICJ0clByaW1hcnlQdXJwb3NlIjogb2JqLmdldCgidHJQcmltYXJ5UHVycG9zZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_create_integration_request.py b/fireblocks/models/tr_link_create_integration_request.py index ddaf69ee..79cf3020 100644 --- a/fireblocks/models/tr_link_create_integration_request.py +++ b/fireblocks/models/tr_link_create_integration_request.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkCreateIntegrationRequest(BaseModel): - """ - TRLinkCreateIntegrationRequest - """ # noqa: E501 - customer_id: StrictStr = Field(description="Customer unique identifier", alias="customerId") - partner_ident: StrictStr = Field(description="Partner identification code (e.g., \"sumsub\", \"notabene\")", alias="partnerIdent") - __properties: ClassVar[List[str]] = ["customerId", "partnerIdent"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkCreateIntegrationRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkCreateIntegrationRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "customerId": obj.get("customerId"), - "partnerIdent": obj.get("partnerIdent") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtDcmVhdGVJbnRlZ3JhdGlvblJlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgVFJMaW5rQ3JlYXRlSW50ZWdyYXRpb25SZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBjdXN0b21lcl9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkN1c3RvbWVyIHVuaXF1ZSBpZGVudGlmaWVyIiwgYWxpYXM9ImN1c3RvbWVySWQiKQogICAgcGFydG5lcl9pZGVudDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlBhcnRuZXIgaWRlbnRpZmljYXRpb24gY29kZSAoZS5nLiwgXCJzdW1zdWJcIiwgXCJub3RhYmVuZVwiKSIsIGFsaWFzPSJwYXJ0bmVySWRlbnQiKQogICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJPcHRpb25hbC4gV2hlbiBzdXBwbGllZCBhbmQgcGVybWl0dGVkIGZvciB0aGUgdGVuYW50IChmZWF0dXJlIGZsYWcgLyBDU00gYXJyYW5nZW1lbnQpLCB0aGlzIHZhbHVlIGlzIHVzZWQgYXMgdGhlIFRSTGluayBpbnRlZ3JhdGlvbiBpZGVudGlmaWVyIGluc3RlYWQgb2YgYSBzZXJ2ZXItZ2VuZXJhdGVkIFVVSUQuIElmIG9taXR0ZWQsIHRoZSBBUEkgZ2VuZXJhdGVzIGEgVVVJRC4gSWYgc3VwcGxpZWQgd2hlbiB0aGUgdGVuYW50IGlzIG5vdCBwZXJtaXR0ZWQgdG8gc2V0IGEgY3VzdG9tIGlkLCB0aGUgcmVxdWVzdCBmYWlscyB3aXRoIDQwMC4gQ29udGFjdCB5b3VyIENTTSBpZiB5b3UgbmVlZCBhIGN1c3RvbSBpbnRlZ3JhdGlvbiBpZC4iLCBhbGlhcz0iY3VzdG9tZXJJbnRlZ3JhdGlvbklkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiY3VzdG9tZXJJZCIsICJwYXJ0bmVySWRlbnQiLCAiY3VzdG9tZXJJbnRlZ3JhdGlvbklkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtDcmVhdGVJbnRlZ3JhdGlvblJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQ3JlYXRlSW50ZWdyYXRpb25SZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImN1c3RvbWVySWQiOiBvYmouZ2V0KCJjdXN0b21lcklkIiksCiAgICAgICAgICAgICJwYXJ0bmVySWRlbnQiOiBvYmouZ2V0KCJwYXJ0bmVySWRlbnQiKSwKICAgICAgICAgICAgImN1c3RvbWVySW50ZWdyYXRpb25JZCI6IG9iai5nZXQoImN1c3RvbWVySW50ZWdyYXRpb25JZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_create_trm_request.py b/fireblocks/models/tr_link_create_trm_request.py index 4aa3db4d..0631240b 100644 --- a/fireblocks/models/tr_link_create_trm_request.py +++ b/fireblocks/models/tr_link_create_trm_request.py @@ -1,177 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tr_link_destination_transfer_peer_path import TRLinkDestinationTransferPeerPath -from fireblocks.models.tr_link_ivms import TRLinkIvms -from fireblocks.models.tr_link_source_transfer_peer_path import TRLinkSourceTransferPeerPath -from fireblocks.models.tr_link_transaction_direction import TRLinkTransactionDirection -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkCreateTrmRequest(BaseModel): - """ - Request to create a Travel Rule Message with IVMS101 PII data - """ # noqa: E501 - asset_id: Optional[StrictStr] = Field(default=None, description="Asset identifier (required when txId not provided)", alias="assetId") - amount: Optional[StrictStr] = Field(default=None, description="Transaction amount (required when txId not provided)") - amount_usd: Optional[StrictStr] = Field(default=None, description="Amount in USD (optional)", alias="amountUSD") - source: Optional[TRLinkSourceTransferPeerPath] = None - src_address: Optional[StrictStr] = Field(default=None, description="Source address (optional)", alias="srcAddress") - destination: Optional[TRLinkDestinationTransferPeerPath] = None - dest_address: Optional[StrictStr] = Field(default=None, description="Destination address (optional)", alias="destAddress") - dest_tag: Optional[StrictStr] = Field(default=None, description="Destination tag (optional)", alias="destTag") - tx_id: Optional[StrictStr] = Field(default=None, description="Fireblocks transaction ID (optional) - RECOMMENDED for inbound transactions", alias="txId") - tx_hash: Optional[StrictStr] = Field(default=None, description="Transaction hash (optional)", alias="txHash") - direction: Optional[TRLinkTransactionDirection] = None - originator_vasp_id: Optional[StrictStr] = Field(default=None, description="Originator VASP identifier - required for inbound transactions", alias="originatorVaspId") - beneficiary_vasp_id: Optional[StrictStr] = Field(default=None, description="Beneficiary VASP identifier - required for outbound transactions", alias="beneficiaryVaspId") - ivms101: TRLinkIvms - __properties: ClassVar[List[str]] = ["assetId", "amount", "amountUSD", "source", "srcAddress", "destination", "destAddress", "destTag", "txId", "txHash", "direction", "originatorVaspId", "beneficiaryVaspId", "ivms101"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkCreateTrmRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of source - if self.source: - _dict['source'] = self.source.to_dict() - # override the default output from pydantic by calling `to_dict()` of destination - if self.destination: - _dict['destination'] = self.destination.to_dict() - # override the default output from pydantic by calling `to_dict()` of ivms101 - if self.ivms101: - _dict['ivms101'] = self.ivms101.to_dict() - # set to None if asset_id (nullable) is None - # and model_fields_set contains the field - if self.asset_id is None and "asset_id" in self.model_fields_set: - _dict['assetId'] = None - - # set to None if amount (nullable) is None - # and model_fields_set contains the field - if self.amount is None and "amount" in self.model_fields_set: - _dict['amount'] = None - - # set to None if amount_usd (nullable) is None - # and model_fields_set contains the field - if self.amount_usd is None and "amount_usd" in self.model_fields_set: - _dict['amountUSD'] = None - - # set to None if src_address (nullable) is None - # and model_fields_set contains the field - if self.src_address is None and "src_address" in self.model_fields_set: - _dict['srcAddress'] = None - - # set to None if dest_address (nullable) is None - # and model_fields_set contains the field - if self.dest_address is None and "dest_address" in self.model_fields_set: - _dict['destAddress'] = None - - # set to None if dest_tag (nullable) is None - # and model_fields_set contains the field - if self.dest_tag is None and "dest_tag" in self.model_fields_set: - _dict['destTag'] = None - - # set to None if tx_id (nullable) is None - # and model_fields_set contains the field - if self.tx_id is None and "tx_id" in self.model_fields_set: - _dict['txId'] = None - - # set to None if tx_hash (nullable) is None - # and model_fields_set contains the field - if self.tx_hash is None and "tx_hash" in self.model_fields_set: - _dict['txHash'] = None - - # set to None if originator_vasp_id (nullable) is None - # and model_fields_set contains the field - if self.originator_vasp_id is None and "originator_vasp_id" in self.model_fields_set: - _dict['originatorVaspId'] = None - - # set to None if beneficiary_vasp_id (nullable) is None - # and model_fields_set contains the field - if self.beneficiary_vasp_id is None and "beneficiary_vasp_id" in self.model_fields_set: - _dict['beneficiaryVaspId'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkCreateTrmRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "assetId": obj.get("assetId"), - "amount": obj.get("amount"), - "amountUSD": obj.get("amountUSD"), - "source": TRLinkSourceTransferPeerPath.from_dict(obj["source"]) if obj.get("source") is not None else None, - "srcAddress": obj.get("srcAddress"), - "destination": TRLinkDestinationTransferPeerPath.from_dict(obj["destination"]) if obj.get("destination") is not None else None, - "destAddress": obj.get("destAddress"), - "destTag": obj.get("destTag"), - "txId": obj.get("txId"), - "txHash": obj.get("txHash"), - "direction": obj.get("direction"), - "originatorVaspId": obj.get("originatorVaspId"), - "beneficiaryVaspId": obj.get("beneficiaryVaspId"), - "ivms101": TRLinkIvms.from_dict(obj["ivms101"]) if obj.get("ivms101") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfZGVzdGluYXRpb25fdHJhbnNmZXJfcGVlcl9wYXRoIGltcG9ydCBUUkxpbmtEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2l2bXMgaW1wb3J0IFRSTGlua0l2bXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3NvdXJjZV90cmFuc2Zlcl9wZWVyX3BhdGggaW1wb3J0IFRSTGlua1NvdXJjZVRyYW5zZmVyUGVlclBhdGgKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3RyYW5zYWN0aW9uX2RpcmVjdGlvbiBpbXBvcnQgVFJMaW5rVHJhbnNhY3Rpb25EaXJlY3Rpb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVFJMaW5rQ3JlYXRlVHJtUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSZXF1ZXN0IHRvIGNyZWF0ZSBhIFRyYXZlbCBSdWxlIE1lc3NhZ2Ugd2l0aCBJVk1TMTAxIFBJSSBkYXRhCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhc3NldF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFzc2V0IGlkZW50aWZpZXIgKHJlcXVpcmVkIHdoZW4gdHhJZCBub3QgcHJvdmlkZWQpIiwgYWxpYXM9ImFzc2V0SWQiKQogICAgYW1vdW50OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVHJhbnNhY3Rpb24gYW1vdW50IChyZXF1aXJlZCB3aGVuIHR4SWQgbm90IHByb3ZpZGVkKSIpCiAgICBhbW91bnRfdXNkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQW1vdW50IGluIFVTRCAob3B0aW9uYWwpIiwgYWxpYXM9ImFtb3VudFVTRCIpCiAgICBzb3VyY2U6IE9wdGlvbmFsW1RSTGlua1NvdXJjZVRyYW5zZmVyUGVlclBhdGhdID0gTm9uZQogICAgc3JjX2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgYWRkcmVzcyAob3B0aW9uYWwpIiwgYWxpYXM9InNyY0FkZHJlc3MiKQogICAgZGVzdGluYXRpb246IE9wdGlvbmFsW1RSTGlua0Rlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aF0gPSBOb25lCiAgICBkZXN0X2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiBhZGRyZXNzIChvcHRpb25hbCkiLCBhbGlhcz0iZGVzdEFkZHJlc3MiKQogICAgZGVzdF90YWc6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiB0YWcgKG9wdGlvbmFsKSIsIGFsaWFzPSJkZXN0VGFnIikKICAgIHR4X2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRmlyZWJsb2NrcyB0cmFuc2FjdGlvbiBJRCAob3B0aW9uYWwpIC0gUkVDT01NRU5ERUQgZm9yIGluYm91bmQgdHJhbnNhY3Rpb25zIiwgYWxpYXM9InR4SWQiKQogICAgdHhfaGFzaDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRyYW5zYWN0aW9uIGhhc2ggKG9wdGlvbmFsKSIsIGFsaWFzPSJ0eEhhc2giKQogICAgZGlyZWN0aW9uOiBPcHRpb25hbFtUUkxpbmtUcmFuc2FjdGlvbkRpcmVjdGlvbl0gPSBOb25lCiAgICBvcmlnaW5hdG9yX3Zhc3BfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJPcmlnaW5hdG9yIFZBU1AgaWRlbnRpZmllciAtIHJlcXVpcmVkIGZvciBpbmJvdW5kIHRyYW5zYWN0aW9ucyIsIGFsaWFzPSJvcmlnaW5hdG9yVmFzcElkIikKICAgIGJlbmVmaWNpYXJ5X3Zhc3BfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJCZW5lZmljaWFyeSBWQVNQIGlkZW50aWZpZXIgLSByZXF1aXJlZCBmb3Igb3V0Ym91bmQgdHJhbnNhY3Rpb25zIiwgYWxpYXM9ImJlbmVmaWNpYXJ5VmFzcElkIikKICAgIGl2bXMxMDE6IFRSTGlua0l2bXMKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYXNzZXRJZCIsICJhbW91bnQiLCAiYW1vdW50VVNEIiwgInNvdXJjZSIsICJzcmNBZGRyZXNzIiwgImRlc3RpbmF0aW9uIiwgImRlc3RBZGRyZXNzIiwgImRlc3RUYWciLCAidHhJZCIsICJ0eEhhc2giLCAiZGlyZWN0aW9uIiwgIm9yaWdpbmF0b3JWYXNwSWQiLCAiYmVuZWZpY2lhcnlWYXNwSWQiLCAiaXZtczEwMSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQ3JlYXRlVHJtUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHNvdXJjZQogICAgICAgIGlmIHNlbGYuc291cmNlOgogICAgICAgICAgICBfZGljdFsnc291cmNlJ10gPSBzZWxmLnNvdXJjZS50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZGVzdGluYXRpb24KICAgICAgICBpZiBzZWxmLmRlc3RpbmF0aW9uOgogICAgICAgICAgICBfZGljdFsnZGVzdGluYXRpb24nXSA9IHNlbGYuZGVzdGluYXRpb24udG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGl2bXMxMDEKICAgICAgICBpZiBzZWxmLml2bXMxMDE6CiAgICAgICAgICAgIF9kaWN0Wydpdm1zMTAxJ10gPSBzZWxmLml2bXMxMDEudG9fZGljdCgpCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBhc3NldF9pZCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuYXNzZXRfaWQgaXMgTm9uZSBhbmQgImFzc2V0X2lkIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wydhc3NldElkJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgYW1vdW50IChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5hbW91bnQgaXMgTm9uZSBhbmQgImFtb3VudCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnYW1vdW50J10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgYW1vdW50X3VzZCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuYW1vdW50X3VzZCBpcyBOb25lIGFuZCAiYW1vdW50X3VzZCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnYW1vdW50VVNEJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgc3JjX2FkZHJlc3MgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnNyY19hZGRyZXNzIGlzIE5vbmUgYW5kICJzcmNfYWRkcmVzcyIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnc3JjQWRkcmVzcyddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGRlc3RfYWRkcmVzcyAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuZGVzdF9hZGRyZXNzIGlzIE5vbmUgYW5kICJkZXN0X2FkZHJlc3MiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2Rlc3RBZGRyZXNzJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgZGVzdF90YWcgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmRlc3RfdGFnIGlzIE5vbmUgYW5kICJkZXN0X3RhZyIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnZGVzdFRhZyddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIHR4X2lkIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi50eF9pZCBpcyBOb25lIGFuZCAidHhfaWQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3R4SWQnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiB0eF9oYXNoIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi50eF9oYXNoIGlzIE5vbmUgYW5kICJ0eF9oYXNoIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wyd0eEhhc2gnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBvcmlnaW5hdG9yX3Zhc3BfaWQgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLm9yaWdpbmF0b3JfdmFzcF9pZCBpcyBOb25lIGFuZCAib3JpZ2luYXRvcl92YXNwX2lkIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydvcmlnaW5hdG9yVmFzcElkJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgYmVuZWZpY2lhcnlfdmFzcF9pZCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuYmVuZWZpY2lhcnlfdmFzcF9pZCBpcyBOb25lIGFuZCAiYmVuZWZpY2lhcnlfdmFzcF9pZCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnYmVuZWZpY2lhcnlWYXNwSWQnXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtDcmVhdGVUcm1SZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFzc2V0SWQiOiBvYmouZ2V0KCJhc3NldElkIiksCiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKSwKICAgICAgICAgICAgImFtb3VudFVTRCI6IG9iai5nZXQoImFtb3VudFVTRCIpLAogICAgICAgICAgICAic291cmNlIjogVFJMaW5rU291cmNlVHJhbnNmZXJQZWVyUGF0aC5mcm9tX2RpY3Qob2JqWyJzb3VyY2UiXSkgaWYgb2JqLmdldCgic291cmNlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAic3JjQWRkcmVzcyI6IG9iai5nZXQoInNyY0FkZHJlc3MiKSwKICAgICAgICAgICAgImRlc3RpbmF0aW9uIjogVFJMaW5rRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoLmZyb21fZGljdChvYmpbImRlc3RpbmF0aW9uIl0pIGlmIG9iai5nZXQoImRlc3RpbmF0aW9uIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZGVzdEFkZHJlc3MiOiBvYmouZ2V0KCJkZXN0QWRkcmVzcyIpLAogICAgICAgICAgICAiZGVzdFRhZyI6IG9iai5nZXQoImRlc3RUYWciKSwKICAgICAgICAgICAgInR4SWQiOiBvYmouZ2V0KCJ0eElkIiksCiAgICAgICAgICAgICJ0eEhhc2giOiBvYmouZ2V0KCJ0eEhhc2giKSwKICAgICAgICAgICAgImRpcmVjdGlvbiI6IG9iai5nZXQoImRpcmVjdGlvbiIpLAogICAgICAgICAgICAib3JpZ2luYXRvclZhc3BJZCI6IG9iai5nZXQoIm9yaWdpbmF0b3JWYXNwSWQiKSwKICAgICAgICAgICAgImJlbmVmaWNpYXJ5VmFzcElkIjogb2JqLmdldCgiYmVuZWZpY2lhcnlWYXNwSWQiKSwKICAgICAgICAgICAgIml2bXMxMDEiOiBUUkxpbmtJdm1zLmZyb21fZGljdChvYmpbIml2bXMxMDEiXSkgaWYgb2JqLmdldCgiaXZtczEwMSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_currency.py b/fireblocks/models/tr_link_currency.py index 30c05f45..390d32ad 100644 --- a/fireblocks/models/tr_link_currency.py +++ b/fireblocks/models/tr_link_currency.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TRLinkCurrency(str, Enum): - """ - TRLinkCurrency - """ - - """ - allowed enum values - """ - USD = 'USD' - NATIVE = 'NATIVE' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TRLinkCurrency from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUUkxpbmtDdXJyZW5jeShzdHIsIEVudW0pOgogICAgIiIiCiAgICBUUkxpbmtDdXJyZW5jeQogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIFVTRCA9ICdVU0QnCiAgICBOQVRJVkUgPSAnTkFUSVZFJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0N1cnJlbmN5IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_customer_integration_response.py b/fireblocks/models/tr_link_customer_integration_response.py index 32e4e58b..5d8a181e 100644 --- a/fireblocks/models/tr_link_customer_integration_response.py +++ b/fireblocks/models/tr_link_customer_integration_response.py @@ -1,119 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tr_link_customer_response import TRLinkCustomerResponse -from fireblocks.models.tr_link_partner_response import TRLinkPartnerResponse -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkCustomerIntegrationResponse(BaseModel): - """ - TRLinkCustomerIntegrationResponse - """ # noqa: E501 - customer_integration_id: StrictStr = Field(description="Customer integration unique identifier", alias="customerIntegrationId") - api_key: Optional[StrictStr] = Field(default=None, description="API key for partner integration (censored for security)", alias="apiKey") - secret: Optional[StrictStr] = Field(default=None, description="Secret for partner integration (censored for security)") - create_date: datetime = Field(description="Timestamp when the integration was created (ISO 8601 format)", alias="createDate") - last_update: datetime = Field(description="Timestamp when the integration was last updated (ISO 8601 format)", alias="lastUpdate") - partner: TRLinkPartnerResponse - customer: TRLinkCustomerResponse - __properties: ClassVar[List[str]] = ["customerIntegrationId", "apiKey", "secret", "createDate", "lastUpdate", "partner", "customer"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkCustomerIntegrationResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of partner - if self.partner: - _dict['partner'] = self.partner.to_dict() - # override the default output from pydantic by calling `to_dict()` of customer - if self.customer: - _dict['customer'] = self.customer.to_dict() - # set to None if api_key (nullable) is None - # and model_fields_set contains the field - if self.api_key is None and "api_key" in self.model_fields_set: - _dict['apiKey'] = None - - # set to None if secret (nullable) is None - # and model_fields_set contains the field - if self.secret is None and "secret" in self.model_fields_set: - _dict['secret'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkCustomerIntegrationResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "customerIntegrationId": obj.get("customerIntegrationId"), - "apiKey": obj.get("apiKey"), - "secret": obj.get("secret"), - "createDate": obj.get("createDate"), - "lastUpdate": obj.get("lastUpdate"), - "partner": TRLinkPartnerResponse.from_dict(obj["partner"]) if obj.get("partner") is not None else None, - "customer": TRLinkCustomerResponse.from_dict(obj["customer"]) if obj.get("customer") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY3VzdG9tZXJfcmVzcG9uc2UgaW1wb3J0IFRSTGlua0N1c3RvbWVyUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3BhcnRuZXJfcmVzcG9uc2UgaW1wb3J0IFRSTGlua1BhcnRuZXJSZXNwb25zZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtDdXN0b21lckludGVncmF0aW9uUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgVFJMaW5rQ3VzdG9tZXJJbnRlZ3JhdGlvblJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkN1c3RvbWVyIGludGVncmF0aW9uIHVuaXF1ZSBpZGVudGlmaWVyIiwgYWxpYXM9ImN1c3RvbWVySW50ZWdyYXRpb25JZCIpCiAgICBhcGlfa2V5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQVBJIGtleSBmb3IgcGFydG5lciBpbnRlZ3JhdGlvbiAoY2Vuc29yZWQgZm9yIHNlY3VyaXR5KSIsIGFsaWFzPSJhcGlLZXkiKQogICAgc2VjcmV0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iU2VjcmV0IGZvciBwYXJ0bmVyIGludGVncmF0aW9uIChjZW5zb3JlZCBmb3Igc2VjdXJpdHkpIikKICAgIGNyZWF0ZV9kYXRlOiBkYXRldGltZSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaW1lc3RhbXAgd2hlbiB0aGUgaW50ZWdyYXRpb24gd2FzIGNyZWF0ZWQgKElTTyA4NjAxIGZvcm1hdCkiLCBhbGlhcz0iY3JlYXRlRGF0ZSIpCiAgICBsYXN0X3VwZGF0ZTogZGF0ZXRpbWUgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGltZXN0YW1wIHdoZW4gdGhlIGludGVncmF0aW9uIHdhcyBsYXN0IHVwZGF0ZWQgKElTTyA4NjAxIGZvcm1hdCkiLCBhbGlhcz0ibGFzdFVwZGF0ZSIpCiAgICBwYXJ0bmVyOiBUUkxpbmtQYXJ0bmVyUmVzcG9uc2UKICAgIGN1c3RvbWVyOiBUUkxpbmtDdXN0b21lclJlc3BvbnNlCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImN1c3RvbWVySW50ZWdyYXRpb25JZCIsICJhcGlLZXkiLCAic2VjcmV0IiwgImNyZWF0ZURhdGUiLCAibGFzdFVwZGF0ZSIsICJwYXJ0bmVyIiwgImN1c3RvbWVyIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtDdXN0b21lckludGVncmF0aW9uUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBwYXJ0bmVyCiAgICAgICAgaWYgc2VsZi5wYXJ0bmVyOgogICAgICAgICAgICBfZGljdFsncGFydG5lciddID0gc2VsZi5wYXJ0bmVyLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBjdXN0b21lcgogICAgICAgIGlmIHNlbGYuY3VzdG9tZXI6CiAgICAgICAgICAgIF9kaWN0WydjdXN0b21lciddID0gc2VsZi5jdXN0b21lci50b19kaWN0KCkKICAgICAgICAjIHNldCB0byBOb25lIGlmIGFwaV9rZXkgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmFwaV9rZXkgaXMgTm9uZSBhbmQgImFwaV9rZXkiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2FwaUtleSddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIHNlY3JldCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuc2VjcmV0IGlzIE5vbmUgYW5kICJzZWNyZXQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3NlY3JldCddID0gTm9uZQoKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0N1c3RvbWVySW50ZWdyYXRpb25SZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJjdXN0b21lckludGVncmF0aW9uSWQiOiBvYmouZ2V0KCJjdXN0b21lckludGVncmF0aW9uSWQiKSwKICAgICAgICAgICAgImFwaUtleSI6IG9iai5nZXQoImFwaUtleSIpLAogICAgICAgICAgICAic2VjcmV0Ijogb2JqLmdldCgic2VjcmV0IiksCiAgICAgICAgICAgICJjcmVhdGVEYXRlIjogb2JqLmdldCgiY3JlYXRlRGF0ZSIpLAogICAgICAgICAgICAibGFzdFVwZGF0ZSI6IG9iai5nZXQoImxhc3RVcGRhdGUiKSwKICAgICAgICAgICAgInBhcnRuZXIiOiBUUkxpbmtQYXJ0bmVyUmVzcG9uc2UuZnJvbV9kaWN0KG9ialsicGFydG5lciJdKSBpZiBvYmouZ2V0KCJwYXJ0bmVyIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiY3VzdG9tZXIiOiBUUkxpbmtDdXN0b21lclJlc3BvbnNlLmZyb21fZGljdChvYmpbImN1c3RvbWVyIl0pIGlmIG9iai5nZXQoImN1c3RvbWVyIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_customer_response.py b/fireblocks/models/tr_link_customer_response.py index 7d00a290..fee90260 100644 --- a/fireblocks/models/tr_link_customer_response.py +++ b/fireblocks/models/tr_link_customer_response.py @@ -1,148 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import date, datetime -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tr_link_discoverable_status import TRLinkDiscoverableStatus -from fireblocks.models.tr_link_geographic_address_request import TRLinkGeographicAddressRequest -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkCustomerResponse(BaseModel): - """ - TRLinkCustomerResponse - """ # noqa: E501 - id: StrictStr = Field(description="Customer unique identifier") - tenant_id: StrictStr = Field(description="Fireblocks tenant ID", alias="tenantId") - discoverable: Optional[TRLinkDiscoverableStatus] - short_name: StrictStr = Field(description="Short display name", alias="shortName") - full_legal_name: StrictStr = Field(description="Full legal entity name", alias="fullLegalName") - geographic_address: Optional[TRLinkGeographicAddressRequest] = Field(default=None, alias="geographicAddress") - country_of_registration: StrictStr = Field(description="ISO 3166-1 alpha-2 country code where the entity is registered", alias="countryOfRegistration") - national_identification: Optional[StrictStr] = Field(default=None, description="National identification (serialized as string)", alias="nationalIdentification") - date_of_incorporation: Optional[date] = Field(default=None, description="Date of entity incorporation (ISO 8601 format)", alias="dateOfIncorporation") - vaults: Optional[List[StrictInt]] = Field(default=None, description="Associated Fireblocks vault account IDs") - tr_primary_purpose: Optional[StrictStr] = Field(default=None, description="Primary purpose for Travel Rule compliance", alias="trPrimaryPurpose") - create_date: datetime = Field(description="Timestamp when the customer was created (ISO 8601 format)", alias="createDate") - last_update: datetime = Field(description="Timestamp when the customer was last updated (ISO 8601 format)", alias="lastUpdate") - __properties: ClassVar[List[str]] = ["id", "tenantId", "discoverable", "shortName", "fullLegalName", "geographicAddress", "countryOfRegistration", "nationalIdentification", "dateOfIncorporation", "vaults", "trPrimaryPurpose", "createDate", "lastUpdate"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkCustomerResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of geographic_address - if self.geographic_address: - _dict['geographicAddress'] = self.geographic_address.to_dict() - # set to None if discoverable (nullable) is None - # and model_fields_set contains the field - if self.discoverable is None and "discoverable" in self.model_fields_set: - _dict['discoverable'] = None - - # set to None if geographic_address (nullable) is None - # and model_fields_set contains the field - if self.geographic_address is None and "geographic_address" in self.model_fields_set: - _dict['geographicAddress'] = None - - # set to None if national_identification (nullable) is None - # and model_fields_set contains the field - if self.national_identification is None and "national_identification" in self.model_fields_set: - _dict['nationalIdentification'] = None - - # set to None if date_of_incorporation (nullable) is None - # and model_fields_set contains the field - if self.date_of_incorporation is None and "date_of_incorporation" in self.model_fields_set: - _dict['dateOfIncorporation'] = None - - # set to None if vaults (nullable) is None - # and model_fields_set contains the field - if self.vaults is None and "vaults" in self.model_fields_set: - _dict['vaults'] = None - - # set to None if tr_primary_purpose (nullable) is None - # and model_fields_set contains the field - if self.tr_primary_purpose is None and "tr_primary_purpose" in self.model_fields_set: - _dict['trPrimaryPurpose'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkCustomerResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "tenantId": obj.get("tenantId"), - "discoverable": obj.get("discoverable"), - "shortName": obj.get("shortName"), - "fullLegalName": obj.get("fullLegalName"), - "geographicAddress": TRLinkGeographicAddressRequest.from_dict(obj["geographicAddress"]) if obj.get("geographicAddress") is not None else None, - "countryOfRegistration": obj.get("countryOfRegistration"), - "nationalIdentification": obj.get("nationalIdentification"), - "dateOfIncorporation": obj.get("dateOfIncorporation"), - "vaults": obj.get("vaults"), - "trPrimaryPurpose": obj.get("trPrimaryPurpose"), - "createDate": obj.get("createDate"), - "lastUpdate": obj.get("lastUpdate") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZSwgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19kaXNjb3ZlcmFibGVfc3RhdHVzIGltcG9ydCBUUkxpbmtEaXNjb3ZlcmFibGVTdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2dlb2dyYXBoaWNfYWRkcmVzc19yZXF1ZXN0IGltcG9ydCBUUkxpbmtHZW9ncmFwaGljQWRkcmVzc1JlcXVlc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVFJMaW5rQ3VzdG9tZXJSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUUkxpbmtDdXN0b21lclJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkN1c3RvbWVyIHVuaXF1ZSBpZGVudGlmaWVyIikKICAgIHRlbmFudF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkZpcmVibG9ja3MgdGVuYW50IElEIiwgYWxpYXM9InRlbmFudElkIikKICAgIGRpc2NvdmVyYWJsZTogT3B0aW9uYWxbVFJMaW5rRGlzY292ZXJhYmxlU3RhdHVzXQogICAgc2hvcnRfbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlNob3J0IGRpc3BsYXkgbmFtZSIsIGFsaWFzPSJzaG9ydE5hbWUiKQogICAgZnVsbF9sZWdhbF9uYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iRnVsbCBsZWdhbCBlbnRpdHkgbmFtZSIsIGFsaWFzPSJmdWxsTGVnYWxOYW1lIikKICAgIGdlb2dyYXBoaWNfYWRkcmVzczogT3B0aW9uYWxbVFJMaW5rR2VvZ3JhcGhpY0FkZHJlc3NSZXF1ZXN0XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Imdlb2dyYXBoaWNBZGRyZXNzIikKICAgIGNvdW50cnlfb2ZfcmVnaXN0cmF0aW9uOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iSVNPIDMxNjYtMSBhbHBoYS0yIGNvdW50cnkgY29kZSB3aGVyZSB0aGUgZW50aXR5IGlzIHJlZ2lzdGVyZWQiLCBhbGlhcz0iY291bnRyeU9mUmVnaXN0cmF0aW9uIikKICAgIG5hdGlvbmFsX2lkZW50aWZpY2F0aW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTmF0aW9uYWwgaWRlbnRpZmljYXRpb24gKHNlcmlhbGl6ZWQgYXMgc3RyaW5nKSIsIGFsaWFzPSJuYXRpb25hbElkZW50aWZpY2F0aW9uIikKICAgIGRhdGVfb2ZfaW5jb3Jwb3JhdGlvbjogT3B0aW9uYWxbZGF0ZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEYXRlIG9mIGVudGl0eSBpbmNvcnBvcmF0aW9uIChJU08gODYwMSBmb3JtYXQpIiwgYWxpYXM9ImRhdGVPZkluY29ycG9yYXRpb24iKQogICAgdmF1bHRzOiBPcHRpb25hbFtMaXN0W1N0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQXNzb2NpYXRlZCBGaXJlYmxvY2tzIHZhdWx0IGFjY291bnQgSURzIikKICAgIHRyX3ByaW1hcnlfcHVycG9zZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlByaW1hcnkgcHVycG9zZSBmb3IgVHJhdmVsIFJ1bGUgY29tcGxpYW5jZSIsIGFsaWFzPSJ0clByaW1hcnlQdXJwb3NlIikKICAgIGNyZWF0ZV9kYXRlOiBkYXRldGltZSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaW1lc3RhbXAgd2hlbiB0aGUgY3VzdG9tZXIgd2FzIGNyZWF0ZWQgKElTTyA4NjAxIGZvcm1hdCkiLCBhbGlhcz0iY3JlYXRlRGF0ZSIpCiAgICBsYXN0X3VwZGF0ZTogZGF0ZXRpbWUgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGltZXN0YW1wIHdoZW4gdGhlIGN1c3RvbWVyIHdhcyBsYXN0IHVwZGF0ZWQgKElTTyA4NjAxIGZvcm1hdCkiLCBhbGlhcz0ibGFzdFVwZGF0ZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgInRlbmFudElkIiwgImRpc2NvdmVyYWJsZSIsICJzaG9ydE5hbWUiLCAiZnVsbExlZ2FsTmFtZSIsICJnZW9ncmFwaGljQWRkcmVzcyIsICJjb3VudHJ5T2ZSZWdpc3RyYXRpb24iLCAibmF0aW9uYWxJZGVudGlmaWNhdGlvbiIsICJkYXRlT2ZJbmNvcnBvcmF0aW9uIiwgInZhdWx0cyIsICJ0clByaW1hcnlQdXJwb3NlIiwgImNyZWF0ZURhdGUiLCAibGFzdFVwZGF0ZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rQ3VzdG9tZXJSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGdlb2dyYXBoaWNfYWRkcmVzcwogICAgICAgIGlmIHNlbGYuZ2VvZ3JhcGhpY19hZGRyZXNzOgogICAgICAgICAgICBfZGljdFsnZ2VvZ3JhcGhpY0FkZHJlc3MnXSA9IHNlbGYuZ2VvZ3JhcGhpY19hZGRyZXNzLnRvX2RpY3QoKQogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgZGlzY292ZXJhYmxlIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5kaXNjb3ZlcmFibGUgaXMgTm9uZSBhbmQgImRpc2NvdmVyYWJsZSIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnZGlzY292ZXJhYmxlJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgZ2VvZ3JhcGhpY19hZGRyZXNzIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5nZW9ncmFwaGljX2FkZHJlc3MgaXMgTm9uZSBhbmQgImdlb2dyYXBoaWNfYWRkcmVzcyIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnZ2VvZ3JhcGhpY0FkZHJlc3MnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBuYXRpb25hbF9pZGVudGlmaWNhdGlvbiAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYubmF0aW9uYWxfaWRlbnRpZmljYXRpb24gaXMgTm9uZSBhbmQgIm5hdGlvbmFsX2lkZW50aWZpY2F0aW9uIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WyduYXRpb25hbElkZW50aWZpY2F0aW9uJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgZGF0ZV9vZl9pbmNvcnBvcmF0aW9uIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5kYXRlX29mX2luY29ycG9yYXRpb24gaXMgTm9uZSBhbmQgImRhdGVfb2ZfaW5jb3Jwb3JhdGlvbiIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnZGF0ZU9mSW5jb3Jwb3JhdGlvbiddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIHZhdWx0cyAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYudmF1bHRzIGlzIE5vbmUgYW5kICJ2YXVsdHMiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3ZhdWx0cyddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIHRyX3ByaW1hcnlfcHVycG9zZSAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYudHJfcHJpbWFyeV9wdXJwb3NlIGlzIE5vbmUgYW5kICJ0cl9wcmltYXJ5X3B1cnBvc2UiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3RyUHJpbWFyeVB1cnBvc2UnXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtDdXN0b21lclJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgInRlbmFudElkIjogb2JqLmdldCgidGVuYW50SWQiKSwKICAgICAgICAgICAgImRpc2NvdmVyYWJsZSI6IG9iai5nZXQoImRpc2NvdmVyYWJsZSIpLAogICAgICAgICAgICAic2hvcnROYW1lIjogb2JqLmdldCgic2hvcnROYW1lIiksCiAgICAgICAgICAgICJmdWxsTGVnYWxOYW1lIjogb2JqLmdldCgiZnVsbExlZ2FsTmFtZSIpLAogICAgICAgICAgICAiZ2VvZ3JhcGhpY0FkZHJlc3MiOiBUUkxpbmtHZW9ncmFwaGljQWRkcmVzc1JlcXVlc3QuZnJvbV9kaWN0KG9ialsiZ2VvZ3JhcGhpY0FkZHJlc3MiXSkgaWYgb2JqLmdldCgiZ2VvZ3JhcGhpY0FkZHJlc3MiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJjb3VudHJ5T2ZSZWdpc3RyYXRpb24iOiBvYmouZ2V0KCJjb3VudHJ5T2ZSZWdpc3RyYXRpb24iKSwKICAgICAgICAgICAgIm5hdGlvbmFsSWRlbnRpZmljYXRpb24iOiBvYmouZ2V0KCJuYXRpb25hbElkZW50aWZpY2F0aW9uIiksCiAgICAgICAgICAgICJkYXRlT2ZJbmNvcnBvcmF0aW9uIjogb2JqLmdldCgiZGF0ZU9mSW5jb3Jwb3JhdGlvbiIpLAogICAgICAgICAgICAidmF1bHRzIjogb2JqLmdldCgidmF1bHRzIiksCiAgICAgICAgICAgICJ0clByaW1hcnlQdXJwb3NlIjogb2JqLmdldCgidHJQcmltYXJ5UHVycG9zZSIpLAogICAgICAgICAgICAiY3JlYXRlRGF0ZSI6IG9iai5nZXQoImNyZWF0ZURhdGUiKSwKICAgICAgICAgICAgImxhc3RVcGRhdGUiOiBvYmouZ2V0KCJsYXN0VXBkYXRlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_destination_transfer_peer_path.py b/fireblocks/models/tr_link_destination_transfer_peer_path.py index 75375432..39067aaa 100644 --- a/fireblocks/models/tr_link_destination_transfer_peer_path.py +++ b/fireblocks/models/tr_link_destination_transfer_peer_path.py @@ -1,108 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tr_link_one_time_address import TRLinkOneTimeAddress -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkDestinationTransferPeerPath(BaseModel): - """ - Destination peer path for transaction - """ # noqa: E501 - type: StrictStr = Field(description="Destination peer type (e.g., ONE_TIME_ADDRESS, VAULT_ACCOUNT)") - id: Optional[StrictStr] = Field(default=None, description="Destination peer ID") - wallet_id: Optional[StrictStr] = Field(default=None, description="Destination wallet ID", alias="walletId") - one_time_address: Optional[TRLinkOneTimeAddress] = Field(default=None, alias="oneTimeAddress") - __properties: ClassVar[List[str]] = ["type", "id", "walletId", "oneTimeAddress"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkDestinationTransferPeerPath from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of one_time_address - if self.one_time_address: - _dict['oneTimeAddress'] = self.one_time_address.to_dict() - # set to None if id (nullable) is None - # and model_fields_set contains the field - if self.id is None and "id" in self.model_fields_set: - _dict['id'] = None - - # set to None if wallet_id (nullable) is None - # and model_fields_set contains the field - if self.wallet_id is None and "wallet_id" in self.model_fields_set: - _dict['walletId'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkDestinationTransferPeerPath from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "id": obj.get("id"), - "walletId": obj.get("walletId"), - "oneTimeAddress": TRLinkOneTimeAddress.from_dict(obj["oneTimeAddress"]) if obj.get("oneTimeAddress") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfb25lX3RpbWVfYWRkcmVzcyBpbXBvcnQgVFJMaW5rT25lVGltZUFkZHJlc3MKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVFJMaW5rRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIERlc3RpbmF0aW9uIHBlZXIgcGF0aCBmb3IgdHJhbnNhY3Rpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR5cGU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiBwZWVyIHR5cGUgKGUuZy4sIE9ORV9USU1FX0FERFJFU1MsIFZBVUxUX0FDQ09VTlQpIikKICAgIGlkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVzdGluYXRpb24gcGVlciBJRCIpCiAgICB3YWxsZXRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiB3YWxsZXQgSUQiLCBhbGlhcz0id2FsbGV0SWQiKQogICAgb25lX3RpbWVfYWRkcmVzczogT3B0aW9uYWxbVFJMaW5rT25lVGltZUFkZHJlc3NdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ib25lVGltZUFkZHJlc3MiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eXBlIiwgImlkIiwgIndhbGxldElkIiwgIm9uZVRpbWVBZGRyZXNzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGggZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBvbmVfdGltZV9hZGRyZXNzCiAgICAgICAgaWYgc2VsZi5vbmVfdGltZV9hZGRyZXNzOgogICAgICAgICAgICBfZGljdFsnb25lVGltZUFkZHJlc3MnXSA9IHNlbGYub25lX3RpbWVfYWRkcmVzcy50b19kaWN0KCkKICAgICAgICAjIHNldCB0byBOb25lIGlmIGlkIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5pZCBpcyBOb25lIGFuZCAiaWQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2lkJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgd2FsbGV0X2lkIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi53YWxsZXRfaWQgaXMgTm9uZSBhbmQgIndhbGxldF9pZCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnd2FsbGV0SWQnXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGggZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgIndhbGxldElkIjogb2JqLmdldCgid2FsbGV0SWQiKSwKICAgICAgICAgICAgIm9uZVRpbWVBZGRyZXNzIjogVFJMaW5rT25lVGltZUFkZHJlc3MuZnJvbV9kaWN0KG9ialsib25lVGltZUFkZHJlc3MiXSkgaWYgb2JqLmdldCgib25lVGltZUFkZHJlc3MiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_discoverable_status.py b/fireblocks/models/tr_link_discoverable_status.py index e89717ab..211e6cc4 100644 --- a/fireblocks/models/tr_link_discoverable_status.py +++ b/fireblocks/models/tr_link_discoverable_status.py @@ -1,39 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TRLinkDiscoverableStatus(str, Enum): - """ - Customer discoverability status in the Travel Rule network - """ - - """ - allowed enum values - """ - ANONYMOUS = 'anonymous' - HIDDEN = 'hidden' - DISCOVERABLE = 'discoverable' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TRLinkDiscoverableStatus from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUUkxpbmtEaXNjb3ZlcmFibGVTdGF0dXMoc3RyLCBFbnVtKToKICAgICIiIgogICAgQ3VzdG9tZXIgZGlzY292ZXJhYmlsaXR5IHN0YXR1cyBpbiB0aGUgVHJhdmVsIFJ1bGUgbmV0d29yawogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIEFOT05ZTU9VUyA9ICdhbm9ueW1vdXMnCiAgICBISURERU4gPSAnaGlkZGVuJwogICAgRElTQ09WRVJBQkxFID0gJ2Rpc2NvdmVyYWJsZScKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtEaXNjb3ZlcmFibGVTdGF0dXMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_fiat_value.py b/fireblocks/models/tr_link_fiat_value.py index 01d4fa0a..19f17ce6 100644 --- a/fireblocks/models/tr_link_fiat_value.py +++ b/fireblocks/models/tr_link_fiat_value.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkFiatValue(BaseModel): - """ - TRLinkFiatValue - """ # noqa: E501 - amount: StrictStr = Field(description="Fiat amount") - currency: StrictStr = Field(description="Fiat currency code") - __properties: ClassVar[List[str]] = ["amount", "currency"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkFiatValue from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkFiatValue from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": obj.get("amount"), - "currency": obj.get("currency") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRSTGlua0ZpYXRWYWx1ZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUUkxpbmtGaWF0VmFsdWUKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFtb3VudDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkZpYXQgYW1vdW50IikKICAgIGN1cnJlbmN5OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iRmlhdCBjdXJyZW5jeSBjb2RlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYW1vdW50IiwgImN1cnJlbmN5Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtGaWF0VmFsdWUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rRmlhdFZhbHVlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFtb3VudCI6IG9iai5nZXQoImFtb3VudCIpLAogICAgICAgICAgICAiY3VycmVuY3kiOiBvYmouZ2V0KCJjdXJyZW5jeSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_geographic_address_request.py b/fireblocks/models/tr_link_geographic_address_request.py index b9569d30..336478a2 100644 --- a/fireblocks/models/tr_link_geographic_address_request.py +++ b/fireblocks/models/tr_link_geographic_address_request.py @@ -1,157 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkGeographicAddressRequest(BaseModel): - """ - Geographic address following IVMS101 standard - """ # noqa: E501 - address_line: Optional[Annotated[List[Annotated[str, Field(strict=True, max_length=70)]], Field(max_length=3)]] = Field(default=None, description="Address lines (max 3, each up to 70 characters)", alias="addressLine") - street_name: Optional[Annotated[str, Field(strict=True, max_length=70)]] = Field(default=None, description="Street name (required if buildingNumber is provided)", alias="streetName") - building_number: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="Building number", alias="buildingNumber") - floor: Optional[Annotated[str, Field(strict=True, max_length=70)]] = Field(default=None, description="Floor number") - post_box: Optional[Annotated[str, Field(strict=True, max_length=16)]] = Field(default=None, description="Post box number", alias="postBox") - post_code: Optional[Annotated[str, Field(strict=True, max_length=16)]] = Field(default=None, description="Postal code (required if townName is provided)", alias="postCode") - town_name: Optional[Annotated[str, Field(strict=True, max_length=35)]] = Field(default=None, description="City or town name (required if postCode is provided)", alias="townName") - district_name: Optional[Annotated[str, Field(strict=True, max_length=35)]] = Field(default=None, description="District name", alias="districtName") - country_sub_division: Optional[Annotated[str, Field(strict=True, max_length=35)]] = Field(default=None, description="State or province (validated against country)", alias="countrySubDivision") - country: Optional[StrictStr] = Field(default=None, description="ISO 3166-1 alpha-2 country code (required if town, district, or sub-division provided)") - __properties: ClassVar[List[str]] = ["addressLine", "streetName", "buildingNumber", "floor", "postBox", "postCode", "townName", "districtName", "countrySubDivision", "country"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkGeographicAddressRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if address_line (nullable) is None - # and model_fields_set contains the field - if self.address_line is None and "address_line" in self.model_fields_set: - _dict['addressLine'] = None - - # set to None if street_name (nullable) is None - # and model_fields_set contains the field - if self.street_name is None and "street_name" in self.model_fields_set: - _dict['streetName'] = None - - # set to None if building_number (nullable) is None - # and model_fields_set contains the field - if self.building_number is None and "building_number" in self.model_fields_set: - _dict['buildingNumber'] = None - - # set to None if floor (nullable) is None - # and model_fields_set contains the field - if self.floor is None and "floor" in self.model_fields_set: - _dict['floor'] = None - - # set to None if post_box (nullable) is None - # and model_fields_set contains the field - if self.post_box is None and "post_box" in self.model_fields_set: - _dict['postBox'] = None - - # set to None if post_code (nullable) is None - # and model_fields_set contains the field - if self.post_code is None and "post_code" in self.model_fields_set: - _dict['postCode'] = None - - # set to None if town_name (nullable) is None - # and model_fields_set contains the field - if self.town_name is None and "town_name" in self.model_fields_set: - _dict['townName'] = None - - # set to None if district_name (nullable) is None - # and model_fields_set contains the field - if self.district_name is None and "district_name" in self.model_fields_set: - _dict['districtName'] = None - - # set to None if country_sub_division (nullable) is None - # and model_fields_set contains the field - if self.country_sub_division is None and "country_sub_division" in self.model_fields_set: - _dict['countrySubDivision'] = None - - # set to None if country (nullable) is None - # and model_fields_set contains the field - if self.country is None and "country" in self.model_fields_set: - _dict['country'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkGeographicAddressRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "addressLine": obj.get("addressLine"), - "streetName": obj.get("streetName"), - "buildingNumber": obj.get("buildingNumber"), - "floor": obj.get("floor"), - "postBox": obj.get("postBox"), - "postCode": obj.get("postCode"), - "townName": obj.get("townName"), - "districtName": obj.get("districtName"), - "countrySubDivision": obj.get("countrySubDivision"), - "country": obj.get("country") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVFJMaW5rR2VvZ3JhcGhpY0FkZHJlc3NSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEdlb2dyYXBoaWMgYWRkcmVzcyBmb2xsb3dpbmcgSVZNUzEwMSBzdGFuZGFyZAogICAgIiIiICMgbm9xYTogRTUwMQogICAgYWRkcmVzc19saW5lOiBPcHRpb25hbFtBbm5vdGF0ZWRbTGlzdFtBbm5vdGF0ZWRbc3RyLCBGaWVsZChzdHJpY3Q9VHJ1ZSwgbWF4X2xlbmd0aD03MCldXSwgRmllbGQobWF4X2xlbmd0aD0zKV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQWRkcmVzcyBsaW5lcyAobWF4IDMsIGVhY2ggdXAgdG8gNzAgY2hhcmFjdGVycykiLCBhbGlhcz0iYWRkcmVzc0xpbmUiKQogICAgc3RyZWV0X25hbWU6IE9wdGlvbmFsW0Fubm90YXRlZFtzdHIsIEZpZWxkKHN0cmljdD1UcnVlLCBtYXhfbGVuZ3RoPTcwKV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iU3RyZWV0IG5hbWUgKHJlcXVpcmVkIGlmIGJ1aWxkaW5nTnVtYmVyIGlzIHByb3ZpZGVkKSIsIGFsaWFzPSJzdHJlZXROYW1lIikKICAgIGJ1aWxkaW5nX251bWJlcjogT3B0aW9uYWxbQW5ub3RhdGVkW3N0ciwgRmllbGQoc3RyaWN0PVRydWUsIG1heF9sZW5ndGg9MjU1KV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQnVpbGRpbmcgbnVtYmVyIiwgYWxpYXM9ImJ1aWxkaW5nTnVtYmVyIikKICAgIGZsb29yOiBPcHRpb25hbFtBbm5vdGF0ZWRbc3RyLCBGaWVsZChzdHJpY3Q9VHJ1ZSwgbWF4X2xlbmd0aD03MCldXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkZsb29yIG51bWJlciIpCiAgICBwb3N0X2JveDogT3B0aW9uYWxbQW5ub3RhdGVkW3N0ciwgRmllbGQoc3RyaWN0PVRydWUsIG1heF9sZW5ndGg9MTYpXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJQb3N0IGJveCBudW1iZXIiLCBhbGlhcz0icG9zdEJveCIpCiAgICBwb3N0X2NvZGU6IE9wdGlvbmFsW0Fubm90YXRlZFtzdHIsIEZpZWxkKHN0cmljdD1UcnVlLCBtYXhfbGVuZ3RoPTE2KV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUG9zdGFsIGNvZGUgKHJlcXVpcmVkIGlmIHRvd25OYW1lIGlzIHByb3ZpZGVkKSIsIGFsaWFzPSJwb3N0Q29kZSIpCiAgICB0b3duX25hbWU6IE9wdGlvbmFsW0Fubm90YXRlZFtzdHIsIEZpZWxkKHN0cmljdD1UcnVlLCBtYXhfbGVuZ3RoPTM1KV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ2l0eSBvciB0b3duIG5hbWUgKHJlcXVpcmVkIGlmIHBvc3RDb2RlIGlzIHByb3ZpZGVkKSIsIGFsaWFzPSJ0b3duTmFtZSIpCiAgICBkaXN0cmljdF9uYW1lOiBPcHRpb25hbFtBbm5vdGF0ZWRbc3RyLCBGaWVsZChzdHJpY3Q9VHJ1ZSwgbWF4X2xlbmd0aD0zNSldXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRpc3RyaWN0IG5hbWUiLCBhbGlhcz0iZGlzdHJpY3ROYW1lIikKICAgIGNvdW50cnlfc3ViX2RpdmlzaW9uOiBPcHRpb25hbFtBbm5vdGF0ZWRbc3RyLCBGaWVsZChzdHJpY3Q9VHJ1ZSwgbWF4X2xlbmd0aD0zNSldXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlN0YXRlIG9yIHByb3ZpbmNlICh2YWxpZGF0ZWQgYWdhaW5zdCBjb3VudHJ5KSIsIGFsaWFzPSJjb3VudHJ5U3ViRGl2aXNpb24iKQogICAgY291bnRyeTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IklTTyAzMTY2LTEgYWxwaGEtMiBjb3VudHJ5IGNvZGUgKHJlcXVpcmVkIGlmIHRvd24sIGRpc3RyaWN0LCBvciBzdWItZGl2aXNpb24gcHJvdmlkZWQpIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYWRkcmVzc0xpbmUiLCAic3RyZWV0TmFtZSIsICJidWlsZGluZ051bWJlciIsICJmbG9vciIsICJwb3N0Qm94IiwgInBvc3RDb2RlIiwgInRvd25OYW1lIiwgImRpc3RyaWN0TmFtZSIsICJjb3VudHJ5U3ViRGl2aXNpb24iLCAiY291bnRyeSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rR2VvZ3JhcGhpY0FkZHJlc3NSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIHNldCB0byBOb25lIGlmIGFkZHJlc3NfbGluZSAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuYWRkcmVzc19saW5lIGlzIE5vbmUgYW5kICJhZGRyZXNzX2xpbmUiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2FkZHJlc3NMaW5lJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgc3RyZWV0X25hbWUgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnN0cmVldF9uYW1lIGlzIE5vbmUgYW5kICJzdHJlZXRfbmFtZSIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnc3RyZWV0TmFtZSddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGJ1aWxkaW5nX251bWJlciAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuYnVpbGRpbmdfbnVtYmVyIGlzIE5vbmUgYW5kICJidWlsZGluZ19udW1iZXIiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2J1aWxkaW5nTnVtYmVyJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgZmxvb3IgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmZsb29yIGlzIE5vbmUgYW5kICJmbG9vciIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnZmxvb3InXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBwb3N0X2JveCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYucG9zdF9ib3ggaXMgTm9uZSBhbmQgInBvc3RfYm94IiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wydwb3N0Qm94J10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgcG9zdF9jb2RlIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5wb3N0X2NvZGUgaXMgTm9uZSBhbmQgInBvc3RfY29kZSIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsncG9zdENvZGUnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiB0b3duX25hbWUgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnRvd25fbmFtZSBpcyBOb25lIGFuZCAidG93bl9uYW1lIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wyd0b3duTmFtZSddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGRpc3RyaWN0X25hbWUgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmRpc3RyaWN0X25hbWUgaXMgTm9uZSBhbmQgImRpc3RyaWN0X25hbWUiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2Rpc3RyaWN0TmFtZSddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGNvdW50cnlfc3ViX2RpdmlzaW9uIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5jb3VudHJ5X3N1Yl9kaXZpc2lvbiBpcyBOb25lIGFuZCAiY291bnRyeV9zdWJfZGl2aXNpb24iIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2NvdW50cnlTdWJEaXZpc2lvbiddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGNvdW50cnkgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmNvdW50cnkgaXMgTm9uZSBhbmQgImNvdW50cnkiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2NvdW50cnknXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtHZW9ncmFwaGljQWRkcmVzc1JlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYWRkcmVzc0xpbmUiOiBvYmouZ2V0KCJhZGRyZXNzTGluZSIpLAogICAgICAgICAgICAic3RyZWV0TmFtZSI6IG9iai5nZXQoInN0cmVldE5hbWUiKSwKICAgICAgICAgICAgImJ1aWxkaW5nTnVtYmVyIjogb2JqLmdldCgiYnVpbGRpbmdOdW1iZXIiKSwKICAgICAgICAgICAgImZsb29yIjogb2JqLmdldCgiZmxvb3IiKSwKICAgICAgICAgICAgInBvc3RCb3giOiBvYmouZ2V0KCJwb3N0Qm94IiksCiAgICAgICAgICAgICJwb3N0Q29kZSI6IG9iai5nZXQoInBvc3RDb2RlIiksCiAgICAgICAgICAgICJ0b3duTmFtZSI6IG9iai5nZXQoInRvd25OYW1lIiksCiAgICAgICAgICAgICJkaXN0cmljdE5hbWUiOiBvYmouZ2V0KCJkaXN0cmljdE5hbWUiKSwKICAgICAgICAgICAgImNvdW50cnlTdWJEaXZpc2lvbiI6IG9iai5nZXQoImNvdW50cnlTdWJEaXZpc2lvbiIpLAogICAgICAgICAgICAiY291bnRyeSI6IG9iai5nZXQoImNvdW50cnkiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_get_supported_asset_response.py b/fireblocks/models/tr_link_get_supported_asset_response.py index a531829b..01e945ee 100644 --- a/fireblocks/models/tr_link_get_supported_asset_response.py +++ b/fireblocks/models/tr_link_get_supported_asset_response.py @@ -1,105 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tr_link_public_asset_info import TRLinkPublicAssetInfo -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkGetSupportedAssetResponse(BaseModel): - """ - Response for getting a single supported asset by ID - """ # noqa: E501 - fireblocks_asset: TRLinkPublicAssetInfo = Field(alias="fireblocksAsset") - partner_response: Optional[Dict[str, Any]] = Field(description="Raw partner response data", alias="partnerResponse") - partner_can_handle_any_asset: StrictBool = Field(description="Whether partner can handle any asset (not just explicitly listed ones)", alias="partnerCanHandleAnyAsset") - note: StrictStr = Field(description="Note about asset support capabilities") - supported: StrictBool = Field(description="Whether the asset is supported by the partner") - __properties: ClassVar[List[str]] = ["fireblocksAsset", "partnerResponse", "partnerCanHandleAnyAsset", "note", "supported"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkGetSupportedAssetResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of fireblocks_asset - if self.fireblocks_asset: - _dict['fireblocksAsset'] = self.fireblocks_asset.to_dict() - # set to None if partner_response (nullable) is None - # and model_fields_set contains the field - if self.partner_response is None and "partner_response" in self.model_fields_set: - _dict['partnerResponse'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkGetSupportedAssetResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "fireblocksAsset": TRLinkPublicAssetInfo.from_dict(obj["fireblocksAsset"]) if obj.get("fireblocksAsset") is not None else None, - "partnerResponse": obj.get("partnerResponse"), - "partnerCanHandleAnyAsset": obj.get("partnerCanHandleAnyAsset"), - "note": obj.get("note"), - "supported": obj.get("supported") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHVibGljX2Fzc2V0X2luZm8gaW1wb3J0IFRSTGlua1B1YmxpY0Fzc2V0SW5mbwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtHZXRTdXBwb3J0ZWRBc3NldFJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFJlc3BvbnNlIGZvciBnZXR0aW5nIGEgc2luZ2xlIHN1cHBvcnRlZCBhc3NldCBieSBJRAogICAgIiIiICMgbm9xYTogRTUwMQogICAgZmlyZWJsb2Nrc19hc3NldDogVFJMaW5rUHVibGljQXNzZXRJbmZvID0gRmllbGQoYWxpYXM9ImZpcmVibG9ja3NBc3NldCIpCiAgICBwYXJ0bmVyX3Jlc3BvbnNlOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iUmF3IHBhcnRuZXIgcmVzcG9uc2UgZGF0YSIsIGFsaWFzPSJwYXJ0bmVyUmVzcG9uc2UiKQogICAgcGFydG5lcl9jYW5faGFuZGxlX2FueV9hc3NldDogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJXaGV0aGVyIHBhcnRuZXIgY2FuIGhhbmRsZSBhbnkgYXNzZXQgKG5vdCBqdXN0IGV4cGxpY2l0bHkgbGlzdGVkIG9uZXMpIiwgYWxpYXM9InBhcnRuZXJDYW5IYW5kbGVBbnlBc3NldCIpCiAgICBub3RlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iTm90ZSBhYm91dCBhc3NldCBzdXBwb3J0IGNhcGFiaWxpdGllcyIpCiAgICBzdXBwb3J0ZWQ6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iV2hldGhlciB0aGUgYXNzZXQgaXMgc3VwcG9ydGVkIGJ5IHRoZSBwYXJ0bmVyIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZmlyZWJsb2Nrc0Fzc2V0IiwgInBhcnRuZXJSZXNwb25zZSIsICJwYXJ0bmVyQ2FuSGFuZGxlQW55QXNzZXQiLCAibm90ZSIsICJzdXBwb3J0ZWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0dldFN1cHBvcnRlZEFzc2V0UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBmaXJlYmxvY2tzX2Fzc2V0CiAgICAgICAgaWYgc2VsZi5maXJlYmxvY2tzX2Fzc2V0OgogICAgICAgICAgICBfZGljdFsnZmlyZWJsb2Nrc0Fzc2V0J10gPSBzZWxmLmZpcmVibG9ja3NfYXNzZXQudG9fZGljdCgpCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBwYXJ0bmVyX3Jlc3BvbnNlIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5wYXJ0bmVyX3Jlc3BvbnNlIGlzIE5vbmUgYW5kICJwYXJ0bmVyX3Jlc3BvbnNlIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydwYXJ0bmVyUmVzcG9uc2UnXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtHZXRTdXBwb3J0ZWRBc3NldFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImZpcmVibG9ja3NBc3NldCI6IFRSTGlua1B1YmxpY0Fzc2V0SW5mby5mcm9tX2RpY3Qob2JqWyJmaXJlYmxvY2tzQXNzZXQiXSkgaWYgb2JqLmdldCgiZmlyZWJsb2Nrc0Fzc2V0IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAicGFydG5lclJlc3BvbnNlIjogb2JqLmdldCgicGFydG5lclJlc3BvbnNlIiksCiAgICAgICAgICAgICJwYXJ0bmVyQ2FuSGFuZGxlQW55QXNzZXQiOiBvYmouZ2V0KCJwYXJ0bmVyQ2FuSGFuZGxlQW55QXNzZXQiKSwKICAgICAgICAgICAgIm5vdGUiOiBvYmouZ2V0KCJub3RlIiksCiAgICAgICAgICAgICJzdXBwb3J0ZWQiOiBvYmouZ2V0KCJzdXBwb3J0ZWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_ivms.py b/fireblocks/models/tr_link_ivms.py index a95963a9..047cab1a 100644 --- a/fireblocks/models/tr_link_ivms.py +++ b/fireblocks/models/tr_link_ivms.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkIvms(BaseModel): - """ - IVMS101 data structure containing encrypted PII - """ # noqa: E501 - version: StrictStr = Field(description="IVMS version") - data: StrictStr = Field(description="Encrypted IVMS101 data containing originator and beneficiary information") - filled_fields: List[StrictStr] = Field(description="List of fields that are filled in the IVMS data", alias="filledFields") - __properties: ClassVar[List[str]] = ["version", "data", "filledFields"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkIvms from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkIvms from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "version": obj.get("version"), - "data": obj.get("data"), - "filledFields": obj.get("filledFields") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRSTGlua0l2bXMoQmFzZU1vZGVsKToKICAgICIiIgogICAgSVZNUzEwMSBkYXRhIHN0cnVjdHVyZSBjb250YWluaW5nIGVuY3J5cHRlZCBQSUkKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHZlcnNpb246IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJVk1TIHZlcnNpb24iKQogICAgZGF0YTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkVuY3J5cHRlZCBJVk1TMTAxIGRhdGEgY29udGFpbmluZyBvcmlnaW5hdG9yIGFuZCBiZW5lZmljaWFyeSBpbmZvcm1hdGlvbiIpCiAgICBmaWxsZWRfZmllbGRzOiBMaXN0W1N0cmljdFN0cl0gPSBGaWVsZChkZXNjcmlwdGlvbj0iTGlzdCBvZiBmaWVsZHMgdGhhdCBhcmUgZmlsbGVkIGluIHRoZSBJVk1TIGRhdGEiLCBhbGlhcz0iZmlsbGVkRmllbGRzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidmVyc2lvbiIsICJkYXRhIiwgImZpbGxlZEZpZWxkcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rSXZtcyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtJdm1zIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInZlcnNpb24iOiBvYmouZ2V0KCJ2ZXJzaW9uIiksCiAgICAgICAgICAgICJkYXRhIjogb2JqLmdldCgiZGF0YSIpLAogICAgICAgICAgICAiZmlsbGVkRmllbGRzIjogb2JqLmdldCgiZmlsbGVkRmllbGRzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_ivms_response.py b/fireblocks/models/tr_link_ivms_response.py index 24e278d0..0c230d84 100644 --- a/fireblocks/models/tr_link_ivms_response.py +++ b/fireblocks/models/tr_link_ivms_response.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkIvmsResponse(BaseModel): - """ - IVMS101 data in response format - """ # noqa: E501 - version: StrictStr = Field(description="IVMS101 version") - data: StrictStr = Field(description="Base64 encoded IVMS101 data containing originator and beneficiary information") - filled_fields: List[StrictStr] = Field(description="List of fields that are filled in the IVMS101 data", alias="filledFields") - __properties: ClassVar[List[str]] = ["version", "data", "filledFields"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkIvmsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkIvmsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "version": obj.get("version"), - "data": obj.get("data"), - "filledFields": obj.get("filledFields") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRSTGlua0l2bXNSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBJVk1TMTAxIGRhdGEgaW4gcmVzcG9uc2UgZm9ybWF0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB2ZXJzaW9uOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iSVZNUzEwMSB2ZXJzaW9uIikKICAgIGRhdGE6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJCYXNlNjQgZW5jb2RlZCBJVk1TMTAxIGRhdGEgY29udGFpbmluZyBvcmlnaW5hdG9yIGFuZCBiZW5lZmljaWFyeSBpbmZvcm1hdGlvbiIpCiAgICBmaWxsZWRfZmllbGRzOiBMaXN0W1N0cmljdFN0cl0gPSBGaWVsZChkZXNjcmlwdGlvbj0iTGlzdCBvZiBmaWVsZHMgdGhhdCBhcmUgZmlsbGVkIGluIHRoZSBJVk1TMTAxIGRhdGEiLCBhbGlhcz0iZmlsbGVkRmllbGRzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidmVyc2lvbiIsICJkYXRhIiwgImZpbGxlZEZpZWxkcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rSXZtc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua0l2bXNSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ2ZXJzaW9uIjogb2JqLmdldCgidmVyc2lvbiIpLAogICAgICAgICAgICAiZGF0YSI6IG9iai5nZXQoImRhdGEiKSwKICAgICAgICAgICAgImZpbGxlZEZpZWxkcyI6IG9iai5nZXQoImZpbGxlZEZpZWxkcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_jwk_public_key.py b/fireblocks/models/tr_link_jwk_public_key.py index 7985e4e7..93af5c22 100644 --- a/fireblocks/models/tr_link_jwk_public_key.py +++ b/fireblocks/models/tr_link_jwk_public_key.py @@ -1,110 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkJwkPublicKey(BaseModel): - """ - JSON Web Key (JWK) format public key - """ # noqa: E501 - kty: StrictStr = Field(description="Key type") - e: StrictStr = Field(description="RSA public exponent") - use: StrictStr = Field(description="Public key use (encryption)") - kid: StrictStr = Field(description="Key ID") - n: StrictStr = Field(description="RSA modulus") - __properties: ClassVar[List[str]] = ["kty", "e", "use", "kid", "n"] - - @field_validator('kty') - def kty_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['RSA']): - raise ValueError("must be one of enum values ('RSA')") - return value - - @field_validator('use') - def use_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['enc']): - raise ValueError("must be one of enum values ('enc')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkJwkPublicKey from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkJwkPublicKey from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "kty": obj.get("kty"), - "e": obj.get("e"), - "use": obj.get("use"), - "kid": obj.get("kid"), - "n": obj.get("n") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVFJMaW5rSndrUHVibGljS2V5KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEpTT04gV2ViIEtleSAoSldLKSBmb3JtYXQgcHVibGljIGtleQogICAgIiIiICMgbm9xYTogRTUwMQogICAga3R5OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iS2V5IHR5cGUiKQogICAgZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlJTQSBwdWJsaWMgZXhwb25lbnQiKQogICAgdXNlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iUHVibGljIGtleSB1c2UgKGVuY3J5cHRpb24pIikKICAgIGtpZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IktleSBJRCIpCiAgICBuOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iUlNBIG1vZHVsdXMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJrdHkiLCAiZSIsICJ1c2UiLCAia2lkIiwgIm4iXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2t0eScpCiAgICBkZWYga3R5X3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ1JTQSddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdSU0EnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgQGZpZWxkX3ZhbGlkYXRvcigndXNlJykKICAgIGRlZiB1c2VfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnZW5jJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ2VuYycpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtKd2tQdWJsaWNLZXkgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rSndrUHVibGljS2V5IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImt0eSI6IG9iai5nZXQoImt0eSIpLAogICAgICAgICAgICAiZSI6IG9iai5nZXQoImUiKSwKICAgICAgICAgICAgInVzZSI6IG9iai5nZXQoInVzZSIpLAogICAgICAgICAgICAia2lkIjogb2JqLmdldCgia2lkIiksCiAgICAgICAgICAgICJuIjogb2JqLmdldCgibiIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_missing_trm_action.py b/fireblocks/models/tr_link_missing_trm_action.py index 7434f503..ef2137c8 100644 --- a/fireblocks/models/tr_link_missing_trm_action.py +++ b/fireblocks/models/tr_link_missing_trm_action.py @@ -1,40 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TRLinkMissingTrmAction(str, Enum): - """ - TRLink missing TRM action - """ - - """ - allowed enum values - """ - WAIT = 'WAIT' - REJECT = 'REJECT' - ACCEPT = 'ACCEPT' - INITIATE_TRM = 'INITIATE_TRM' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TRLinkMissingTrmAction from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUUkxpbmtNaXNzaW5nVHJtQWN0aW9uKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIFRSTGluayBtaXNzaW5nIFRSTSBhY3Rpb24KICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBXQUlUID0gJ1dBSVQnCiAgICBSRUpFQ1QgPSAnUkVKRUNUJwogICAgQUNDRVBUID0gJ0FDQ0VQVCcKICAgIElOSVRJQVRFX1RSTSA9ICdJTklUSUFURV9UUk0nCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rTWlzc2luZ1RybUFjdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_missing_trm_action2.py b/fireblocks/models/tr_link_missing_trm_action2.py index b42331da..944b368b 100644 --- a/fireblocks/models/tr_link_missing_trm_action2.py +++ b/fireblocks/models/tr_link_missing_trm_action2.py @@ -1,39 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TRLinkMissingTrmAction2(str, Enum): - """ - TRLinkMissingTrmAction2 - """ - - """ - allowed enum values - """ - WAIT = 'WAIT' - REJECT = 'REJECT' - ACCEPT = 'ACCEPT' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TRLinkMissingTrmAction2 from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUUkxpbmtNaXNzaW5nVHJtQWN0aW9uMihzdHIsIEVudW0pOgogICAgIiIiCiAgICBUUkxpbmtNaXNzaW5nVHJtQWN0aW9uMgogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIFdBSVQgPSAnV0FJVCcKICAgIFJFSkVDVCA9ICdSRUpFQ1QnCiAgICBBQ0NFUFQgPSAnQUNDRVBUJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua01pc3NpbmdUcm1BY3Rpb24yIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_missing_trm_action_enum.py b/fireblocks/models/tr_link_missing_trm_action_enum.py index f8fa77c7..feae3a8e 100644 --- a/fireblocks/models/tr_link_missing_trm_action_enum.py +++ b/fireblocks/models/tr_link_missing_trm_action_enum.py @@ -1,40 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TRLinkMissingTrmActionEnum(str, Enum): - """ - TRLink missing TRM action - """ - - """ - allowed enum values - """ - WAIT = 'WAIT' - REJECT = 'REJECT' - ACCEPT = 'ACCEPT' - INITIATE_TRM = 'INITIATE_TRM' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TRLinkMissingTrmActionEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUUkxpbmtNaXNzaW5nVHJtQWN0aW9uRW51bShzdHIsIEVudW0pOgogICAgIiIiCiAgICBUUkxpbmsgbWlzc2luZyBUUk0gYWN0aW9uCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgV0FJVCA9ICdXQUlUJwogICAgUkVKRUNUID0gJ1JFSkVDVCcKICAgIEFDQ0VQVCA9ICdBQ0NFUFQnCiAgICBJTklUSUFURV9UUk0gPSAnSU5JVElBVEVfVFJNJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua01pc3NpbmdUcm1BY3Rpb25FbnVtIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_missing_trm_decision.py b/fireblocks/models/tr_link_missing_trm_decision.py index 190d954e..a6353252 100644 --- a/fireblocks/models/tr_link_missing_trm_decision.py +++ b/fireblocks/models/tr_link_missing_trm_decision.py @@ -1,142 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.tr_link_amount import TRLinkAmount -from fireblocks.models.tr_link_missing_trm_action import TRLinkMissingTrmAction -from fireblocks.models.transaction_direction import TransactionDirection -from fireblocks.models.transaction_operation_enum import TransactionOperationEnum -from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum -from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkMissingTrmDecision(BaseModel): - """ - Interface for reporting missing TRM screening decisions in ITRLinkResult - """ # noqa: E501 - customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TrlinkCustomer.id", alias="customerId") - direction: Optional[TransactionDirection] = None - source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType") - source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType") - source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress") - dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType") - dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType") - dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress") - source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId") - dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId") - asset: Optional[StrictStr] = Field(default=None, description="Asset symbol") - base_asset: Optional[StrictStr] = Field(default=None, description="Base asset symbol", alias="baseAsset") - amount: Optional[TRLinkAmount] = None - network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol") - operation: Optional[TransactionOperationEnum] = None - description: Optional[StrictStr] = Field(default=None, description="Rule description") - is_default: Optional[StrictBool] = Field(default=False, description="Whether this is a default rule", alias="isDefault") - valid_before: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule expires", alias="validBefore") - valid_after: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule becomes valid", alias="validAfter") - action: TRLinkMissingTrmAction - source: StrictStr = Field(description="TRLink missing TRM source") - timestamp: Optional[datetime] = Field(default=None, description="Timestamp of the decision") - reason: Optional[StrictStr] = Field(default=None, description="Reason for the decision") - __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault", "validBefore", "validAfter", "action", "source", "timestamp", "reason"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkMissingTrmDecision from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkMissingTrmDecision from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "customerId": obj.get("customerId"), - "direction": obj.get("direction"), - "sourceType": obj.get("sourceType"), - "sourceSubType": obj.get("sourceSubType"), - "sourceAddress": obj.get("sourceAddress"), - "destType": obj.get("destType"), - "destSubType": obj.get("destSubType"), - "destAddress": obj.get("destAddress"), - "sourceId": obj.get("sourceId"), - "destId": obj.get("destId"), - "asset": obj.get("asset"), - "baseAsset": obj.get("baseAsset"), - "amount": TRLinkAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "networkProtocol": obj.get("networkProtocol"), - "operation": obj.get("operation"), - "description": obj.get("description"), - "isDefault": obj.get("isDefault") if obj.get("isDefault") is not None else False, - "validBefore": obj.get("validBefore"), - "validAfter": obj.get("validAfter"), - "action": obj.get("action"), - "source": obj.get("source"), - "timestamp": obj.get("timestamp"), - "reason": obj.get("reason") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Ftb3VudCBpbXBvcnQgVFJMaW5rQW1vdW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19taXNzaW5nX3RybV9hY3Rpb24gaW1wb3J0IFRSTGlua01pc3NpbmdUcm1BY3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9kaXJlY3Rpb24gaW1wb3J0IFRyYW5zYWN0aW9uRGlyZWN0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fb3BlcmF0aW9uX2VudW0gaW1wb3J0IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3BlZXJfc3ViX3R5cGVfZW51bSBpbXBvcnQgVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9wZWVyX3R5cGVfZW51bSBpbXBvcnQgVHJhbnNmZXJQZWVyVHlwZUVudW0KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEludGVyZmFjZSBmb3IgcmVwb3J0aW5nIG1pc3NpbmcgVFJNIHNjcmVlbmluZyBkZWNpc2lvbnMgaW4gSVRSTGlua1Jlc3VsdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgY3VzdG9tZXJfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSZWZlcmVuY2UgdG8gVHJsaW5rQ3VzdG9tZXIuaWQiLCBhbGlhcz0iY3VzdG9tZXJJZCIpCiAgICBkaXJlY3Rpb246IE9wdGlvbmFsW1RyYW5zYWN0aW9uRGlyZWN0aW9uXSA9IE5vbmUKICAgIHNvdXJjZV90eXBlOiBPcHRpb25hbFtUcmFuc2ZlclBlZXJUeXBlRW51bV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJzb3VyY2VUeXBlIikKICAgIHNvdXJjZV9zdWJfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyU3ViVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ic291cmNlU3ViVHlwZSIpCiAgICBzb3VyY2VfYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNvdXJjZSBhZGRyZXNzIiwgYWxpYXM9InNvdXJjZUFkZHJlc3MiKQogICAgZGVzdF90eXBlOiBPcHRpb25hbFtUcmFuc2ZlclBlZXJUeXBlRW51bV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJkZXN0VHlwZSIpCiAgICBkZXN0X3N1Yl90eXBlOiBPcHRpb25hbFtUcmFuc2ZlclBlZXJTdWJUeXBlRW51bV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJkZXN0U3ViVHlwZSIpCiAgICBkZXN0X2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiBhZGRyZXNzIiwgYWxpYXM9ImRlc3RBZGRyZXNzIikKICAgIHNvdXJjZV9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNvdXJjZSBJRCIsIGFsaWFzPSJzb3VyY2VJZCIpCiAgICBkZXN0X2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVzdGluYXRpb24gSUQiLCBhbGlhcz0iZGVzdElkIikKICAgIGFzc2V0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQXNzZXQgc3ltYm9sIikKICAgIGJhc2VfYXNzZXQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJCYXNlIGFzc2V0IHN5bWJvbCIsIGFsaWFzPSJiYXNlQXNzZXQiKQogICAgYW1vdW50OiBPcHRpb25hbFtUUkxpbmtBbW91bnRdID0gTm9uZQogICAgbmV0d29ya19wcm90b2NvbDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik5ldHdvcmsgcHJvdG9jb2wiLCBhbGlhcz0ibmV0d29ya1Byb3RvY29sIikKICAgIG9wZXJhdGlvbjogT3B0aW9uYWxbVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtXSA9IE5vbmUKICAgIGRlc2NyaXB0aW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUnVsZSBkZXNjcmlwdGlvbiIpCiAgICBpc19kZWZhdWx0OiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9RmFsc2UsIGRlc2NyaXB0aW9uPSJXaGV0aGVyIHRoaXMgaXMgYSBkZWZhdWx0IHJ1bGUiLCBhbGlhcz0iaXNEZWZhdWx0IikKICAgIHZhbGlkX2JlZm9yZTogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVW5peCB0aW1lc3RhbXAgd2hlbiBydWxlIGV4cGlyZXMiLCBhbGlhcz0idmFsaWRCZWZvcmUiKQogICAgdmFsaWRfYWZ0ZXI6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlVuaXggdGltZXN0YW1wIHdoZW4gcnVsZSBiZWNvbWVzIHZhbGlkIiwgYWxpYXM9InZhbGlkQWZ0ZXIiKQogICAgYWN0aW9uOiBUUkxpbmtNaXNzaW5nVHJtQWN0aW9uCiAgICBzb3VyY2U6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUUkxpbmsgbWlzc2luZyBUUk0gc291cmNlIikKICAgIHRpbWVzdGFtcDogT3B0aW9uYWxbZGF0ZXRpbWVdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGltZXN0YW1wIG9mIHRoZSBkZWNpc2lvbiIpCiAgICByZWFzb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSZWFzb24gZm9yIHRoZSBkZWNpc2lvbiIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImN1c3RvbWVySWQiLCAiZGlyZWN0aW9uIiwgInNvdXJjZVR5cGUiLCAic291cmNlU3ViVHlwZSIsICJzb3VyY2VBZGRyZXNzIiwgImRlc3RUeXBlIiwgImRlc3RTdWJUeXBlIiwgImRlc3RBZGRyZXNzIiwgInNvdXJjZUlkIiwgImRlc3RJZCIsICJhc3NldCIsICJiYXNlQXNzZXQiLCAiYW1vdW50IiwgIm5ldHdvcmtQcm90b2NvbCIsICJvcGVyYXRpb24iLCAiZGVzY3JpcHRpb24iLCAiaXNEZWZhdWx0IiwgInZhbGlkQmVmb3JlIiwgInZhbGlkQWZ0ZXIiLCAiYWN0aW9uIiwgInNvdXJjZSIsICJ0aW1lc3RhbXAiLCAicmVhc29uIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtNaXNzaW5nVHJtRGVjaXNpb24gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhbW91bnQKICAgICAgICBpZiBzZWxmLmFtb3VudDoKICAgICAgICAgICAgX2RpY3RbJ2Ftb3VudCddID0gc2VsZi5hbW91bnQudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtNaXNzaW5nVHJtRGVjaXNpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiY3VzdG9tZXJJZCI6IG9iai5nZXQoImN1c3RvbWVySWQiKSwKICAgICAgICAgICAgImRpcmVjdGlvbiI6IG9iai5nZXQoImRpcmVjdGlvbiIpLAogICAgICAgICAgICAic291cmNlVHlwZSI6IG9iai5nZXQoInNvdXJjZVR5cGUiKSwKICAgICAgICAgICAgInNvdXJjZVN1YlR5cGUiOiBvYmouZ2V0KCJzb3VyY2VTdWJUeXBlIiksCiAgICAgICAgICAgICJzb3VyY2VBZGRyZXNzIjogb2JqLmdldCgic291cmNlQWRkcmVzcyIpLAogICAgICAgICAgICAiZGVzdFR5cGUiOiBvYmouZ2V0KCJkZXN0VHlwZSIpLAogICAgICAgICAgICAiZGVzdFN1YlR5cGUiOiBvYmouZ2V0KCJkZXN0U3ViVHlwZSIpLAogICAgICAgICAgICAiZGVzdEFkZHJlc3MiOiBvYmouZ2V0KCJkZXN0QWRkcmVzcyIpLAogICAgICAgICAgICAic291cmNlSWQiOiBvYmouZ2V0KCJzb3VyY2VJZCIpLAogICAgICAgICAgICAiZGVzdElkIjogb2JqLmdldCgiZGVzdElkIiksCiAgICAgICAgICAgICJhc3NldCI6IG9iai5nZXQoImFzc2V0IiksCiAgICAgICAgICAgICJiYXNlQXNzZXQiOiBvYmouZ2V0KCJiYXNlQXNzZXQiKSwKICAgICAgICAgICAgImFtb3VudCI6IFRSTGlua0Ftb3VudC5mcm9tX2RpY3Qob2JqWyJhbW91bnQiXSkgaWYgb2JqLmdldCgiYW1vdW50IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibmV0d29ya1Byb3RvY29sIjogb2JqLmdldCgibmV0d29ya1Byb3RvY29sIiksCiAgICAgICAgICAgICJvcGVyYXRpb24iOiBvYmouZ2V0KCJvcGVyYXRpb24iKSwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogb2JqLmdldCgiZGVzY3JpcHRpb24iKSwKICAgICAgICAgICAgImlzRGVmYXVsdCI6IG9iai5nZXQoImlzRGVmYXVsdCIpIGlmIG9iai5nZXQoImlzRGVmYXVsdCIpIGlzIG5vdCBOb25lIGVsc2UgRmFsc2UsCiAgICAgICAgICAgICJ2YWxpZEJlZm9yZSI6IG9iai5nZXQoInZhbGlkQmVmb3JlIiksCiAgICAgICAgICAgICJ2YWxpZEFmdGVyIjogb2JqLmdldCgidmFsaWRBZnRlciIpLAogICAgICAgICAgICAiYWN0aW9uIjogb2JqLmdldCgiYWN0aW9uIiksCiAgICAgICAgICAgICJzb3VyY2UiOiBvYmouZ2V0KCJzb3VyY2UiKSwKICAgICAgICAgICAgInRpbWVzdGFtcCI6IG9iai5nZXQoInRpbWVzdGFtcCIpLAogICAgICAgICAgICAicmVhc29uIjogb2JqLmdldCgicmVhc29uIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_missing_trm_rule.py b/fireblocks/models/tr_link_missing_trm_rule.py index 4b7da0b1..4a48811e 100644 --- a/fireblocks/models/tr_link_missing_trm_rule.py +++ b/fireblocks/models/tr_link_missing_trm_rule.py @@ -1,135 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.tr_link_amount import TRLinkAmount -from fireblocks.models.tr_link_missing_trm_action import TRLinkMissingTrmAction -from fireblocks.models.transaction_direction import TransactionDirection -from fireblocks.models.transaction_operation_enum import TransactionOperationEnum -from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum -from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkMissingTrmRule(BaseModel): - """ - TRLink missing TRM rule definition - """ # noqa: E501 - customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TrlinkCustomer.id", alias="customerId") - direction: Optional[TransactionDirection] = None - source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType") - source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType") - source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress") - dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType") - dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType") - dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress") - source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId") - dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId") - asset: Optional[StrictStr] = Field(default=None, description="Asset symbol") - base_asset: Optional[StrictStr] = Field(default=None, description="Base asset symbol", alias="baseAsset") - amount: Optional[TRLinkAmount] = None - network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol") - operation: Optional[TransactionOperationEnum] = None - description: Optional[StrictStr] = Field(default=None, description="Rule description") - is_default: Optional[StrictBool] = Field(default=False, description="Whether this is a default rule", alias="isDefault") - valid_before: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule expires", alias="validBefore") - valid_after: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule becomes valid", alias="validAfter") - action: TRLinkMissingTrmAction - __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault", "validBefore", "validAfter", "action"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkMissingTrmRule from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkMissingTrmRule from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "customerId": obj.get("customerId"), - "direction": obj.get("direction"), - "sourceType": obj.get("sourceType"), - "sourceSubType": obj.get("sourceSubType"), - "sourceAddress": obj.get("sourceAddress"), - "destType": obj.get("destType"), - "destSubType": obj.get("destSubType"), - "destAddress": obj.get("destAddress"), - "sourceId": obj.get("sourceId"), - "destId": obj.get("destId"), - "asset": obj.get("asset"), - "baseAsset": obj.get("baseAsset"), - "amount": TRLinkAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "networkProtocol": obj.get("networkProtocol"), - "operation": obj.get("operation"), - "description": obj.get("description"), - "isDefault": obj.get("isDefault") if obj.get("isDefault") is not None else False, - "validBefore": obj.get("validBefore"), - "validAfter": obj.get("validAfter"), - "action": obj.get("action") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Ftb3VudCBpbXBvcnQgVFJMaW5rQW1vdW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19taXNzaW5nX3RybV9hY3Rpb24gaW1wb3J0IFRSTGlua01pc3NpbmdUcm1BY3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9kaXJlY3Rpb24gaW1wb3J0IFRyYW5zYWN0aW9uRGlyZWN0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fb3BlcmF0aW9uX2VudW0gaW1wb3J0IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3BlZXJfc3ViX3R5cGVfZW51bSBpbXBvcnQgVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9wZWVyX3R5cGVfZW51bSBpbXBvcnQgVHJhbnNmZXJQZWVyVHlwZUVudW0KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVFJMaW5rTWlzc2luZ1RybVJ1bGUoQmFzZU1vZGVsKToKICAgICIiIgogICAgVFJMaW5rIG1pc3NpbmcgVFJNIHJ1bGUgZGVmaW5pdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgY3VzdG9tZXJfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSZWZlcmVuY2UgdG8gVHJsaW5rQ3VzdG9tZXIuaWQiLCBhbGlhcz0iY3VzdG9tZXJJZCIpCiAgICBkaXJlY3Rpb246IE9wdGlvbmFsW1RyYW5zYWN0aW9uRGlyZWN0aW9uXSA9IE5vbmUKICAgIHNvdXJjZV90eXBlOiBPcHRpb25hbFtUcmFuc2ZlclBlZXJUeXBlRW51bV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJzb3VyY2VUeXBlIikKICAgIHNvdXJjZV9zdWJfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyU3ViVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ic291cmNlU3ViVHlwZSIpCiAgICBzb3VyY2VfYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNvdXJjZSBhZGRyZXNzIiwgYWxpYXM9InNvdXJjZUFkZHJlc3MiKQogICAgZGVzdF90eXBlOiBPcHRpb25hbFtUcmFuc2ZlclBlZXJUeXBlRW51bV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJkZXN0VHlwZSIpCiAgICBkZXN0X3N1Yl90eXBlOiBPcHRpb25hbFtUcmFuc2ZlclBlZXJTdWJUeXBlRW51bV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJkZXN0U3ViVHlwZSIpCiAgICBkZXN0X2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiBhZGRyZXNzIiwgYWxpYXM9ImRlc3RBZGRyZXNzIikKICAgIHNvdXJjZV9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNvdXJjZSBJRCIsIGFsaWFzPSJzb3VyY2VJZCIpCiAgICBkZXN0X2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVzdGluYXRpb24gSUQiLCBhbGlhcz0iZGVzdElkIikKICAgIGFzc2V0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQXNzZXQgc3ltYm9sIikKICAgIGJhc2VfYXNzZXQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJCYXNlIGFzc2V0IHN5bWJvbCIsIGFsaWFzPSJiYXNlQXNzZXQiKQogICAgYW1vdW50OiBPcHRpb25hbFtUUkxpbmtBbW91bnRdID0gTm9uZQogICAgbmV0d29ya19wcm90b2NvbDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik5ldHdvcmsgcHJvdG9jb2wiLCBhbGlhcz0ibmV0d29ya1Byb3RvY29sIikKICAgIG9wZXJhdGlvbjogT3B0aW9uYWxbVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtXSA9IE5vbmUKICAgIGRlc2NyaXB0aW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUnVsZSBkZXNjcmlwdGlvbiIpCiAgICBpc19kZWZhdWx0OiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9RmFsc2UsIGRlc2NyaXB0aW9uPSJXaGV0aGVyIHRoaXMgaXMgYSBkZWZhdWx0IHJ1bGUiLCBhbGlhcz0iaXNEZWZhdWx0IikKICAgIHZhbGlkX2JlZm9yZTogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVW5peCB0aW1lc3RhbXAgd2hlbiBydWxlIGV4cGlyZXMiLCBhbGlhcz0idmFsaWRCZWZvcmUiKQogICAgdmFsaWRfYWZ0ZXI6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlVuaXggdGltZXN0YW1wIHdoZW4gcnVsZSBiZWNvbWVzIHZhbGlkIiwgYWxpYXM9InZhbGlkQWZ0ZXIiKQogICAgYWN0aW9uOiBUUkxpbmtNaXNzaW5nVHJtQWN0aW9uCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImN1c3RvbWVySWQiLCAiZGlyZWN0aW9uIiwgInNvdXJjZVR5cGUiLCAic291cmNlU3ViVHlwZSIsICJzb3VyY2VBZGRyZXNzIiwgImRlc3RUeXBlIiwgImRlc3RTdWJUeXBlIiwgImRlc3RBZGRyZXNzIiwgInNvdXJjZUlkIiwgImRlc3RJZCIsICJhc3NldCIsICJiYXNlQXNzZXQiLCAiYW1vdW50IiwgIm5ldHdvcmtQcm90b2NvbCIsICJvcGVyYXRpb24iLCAiZGVzY3JpcHRpb24iLCAiaXNEZWZhdWx0IiwgInZhbGlkQmVmb3JlIiwgInZhbGlkQWZ0ZXIiLCAiYWN0aW9uIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtNaXNzaW5nVHJtUnVsZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFtb3VudAogICAgICAgIGlmIHNlbGYuYW1vdW50OgogICAgICAgICAgICBfZGljdFsnYW1vdW50J10gPSBzZWxmLmFtb3VudC50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua01pc3NpbmdUcm1SdWxlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImN1c3RvbWVySWQiOiBvYmouZ2V0KCJjdXN0b21lcklkIiksCiAgICAgICAgICAgICJkaXJlY3Rpb24iOiBvYmouZ2V0KCJkaXJlY3Rpb24iKSwKICAgICAgICAgICAgInNvdXJjZVR5cGUiOiBvYmouZ2V0KCJzb3VyY2VUeXBlIiksCiAgICAgICAgICAgICJzb3VyY2VTdWJUeXBlIjogb2JqLmdldCgic291cmNlU3ViVHlwZSIpLAogICAgICAgICAgICAic291cmNlQWRkcmVzcyI6IG9iai5nZXQoInNvdXJjZUFkZHJlc3MiKSwKICAgICAgICAgICAgImRlc3RUeXBlIjogb2JqLmdldCgiZGVzdFR5cGUiKSwKICAgICAgICAgICAgImRlc3RTdWJUeXBlIjogb2JqLmdldCgiZGVzdFN1YlR5cGUiKSwKICAgICAgICAgICAgImRlc3RBZGRyZXNzIjogb2JqLmdldCgiZGVzdEFkZHJlc3MiKSwKICAgICAgICAgICAgInNvdXJjZUlkIjogb2JqLmdldCgic291cmNlSWQiKSwKICAgICAgICAgICAgImRlc3RJZCI6IG9iai5nZXQoImRlc3RJZCIpLAogICAgICAgICAgICAiYXNzZXQiOiBvYmouZ2V0KCJhc3NldCIpLAogICAgICAgICAgICAiYmFzZUFzc2V0Ijogb2JqLmdldCgiYmFzZUFzc2V0IiksCiAgICAgICAgICAgICJhbW91bnQiOiBUUkxpbmtBbW91bnQuZnJvbV9kaWN0KG9ialsiYW1vdW50Il0pIGlmIG9iai5nZXQoImFtb3VudCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm5ldHdvcmtQcm90b2NvbCI6IG9iai5nZXQoIm5ldHdvcmtQcm90b2NvbCIpLAogICAgICAgICAgICAib3BlcmF0aW9uIjogb2JqLmdldCgib3BlcmF0aW9uIiksCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IG9iai5nZXQoImRlc2NyaXB0aW9uIiksCiAgICAgICAgICAgICJpc0RlZmF1bHQiOiBvYmouZ2V0KCJpc0RlZmF1bHQiKSBpZiBvYmouZ2V0KCJpc0RlZmF1bHQiKSBpcyBub3QgTm9uZSBlbHNlIEZhbHNlLAogICAgICAgICAgICAidmFsaWRCZWZvcmUiOiBvYmouZ2V0KCJ2YWxpZEJlZm9yZSIpLAogICAgICAgICAgICAidmFsaWRBZnRlciI6IG9iai5nZXQoInZhbGlkQWZ0ZXIiKSwKICAgICAgICAgICAgImFjdGlvbiI6IG9iai5nZXQoImFjdGlvbiIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_missing_trm_rule2.py b/fireblocks/models/tr_link_missing_trm_rule2.py index 98320a5e..e2569729 100644 --- a/fireblocks/models/tr_link_missing_trm_rule2.py +++ b/fireblocks/models/tr_link_missing_trm_rule2.py @@ -1,217 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tr_link_amount2 import TRLinkAmount2 -from fireblocks.models.tr_link_missing_trm_action2 import TRLinkMissingTrmAction2 -from fireblocks.models.tr_link_transaction_direction import TRLinkTransactionDirection -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkMissingTrmRule2(BaseModel): - """ - Rule for handling transactions when TRM screening data is missing or unavailable - """ # noqa: E501 - customer_id: Optional[StrictStr] = Field(default=None, description="Customer identifier", alias="customerId") - direction: Optional[TRLinkTransactionDirection] = None - source_type: Optional[StrictStr] = Field(default=None, description="Source entity type", alias="sourceType") - source_sub_type: Optional[StrictStr] = Field(default=None, description="Source entity subtype", alias="sourceSubType") - source_address: Optional[StrictStr] = Field(default=None, description="Source blockchain address", alias="sourceAddress") - dest_type: Optional[StrictStr] = Field(default=None, description="Destination entity type", alias="destType") - dest_sub_type: Optional[StrictStr] = Field(default=None, description="Destination entity subtype", alias="destSubType") - dest_address: Optional[StrictStr] = Field(default=None, description="Destination blockchain address", alias="destAddress") - source_id: Optional[StrictStr] = Field(default=None, description="Source identifier", alias="sourceId") - dest_id: Optional[StrictStr] = Field(default=None, description="Destination identifier", alias="destId") - asset: Optional[StrictStr] = Field(default=None, description="Asset or cryptocurrency type") - base_asset: Optional[StrictStr] = Field(default=None, description="Base asset for derivatives", alias="baseAsset") - amount: Optional[TRLinkAmount2] = None - network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol identifier", alias="networkProtocol") - operation: Optional[StrictStr] = Field(default=None, description="Operation type") - description: Optional[StrictStr] = Field(default=None, description="Rule description") - is_default: Optional[StrictBool] = Field(default=None, description="Whether this is a default rule", alias="isDefault") - valid_before: Optional[StrictInt] = Field(default=None, description="Rule is valid before this timestamp (milliseconds)", alias="validBefore") - valid_after: Optional[StrictInt] = Field(default=None, description="Rule is valid after this timestamp (milliseconds)", alias="validAfter") - action: TRLinkMissingTrmAction2 - __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault", "validBefore", "validAfter", "action"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkMissingTrmRule2 from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - # set to None if customer_id (nullable) is None - # and model_fields_set contains the field - if self.customer_id is None and "customer_id" in self.model_fields_set: - _dict['customerId'] = None - - # set to None if source_type (nullable) is None - # and model_fields_set contains the field - if self.source_type is None and "source_type" in self.model_fields_set: - _dict['sourceType'] = None - - # set to None if source_sub_type (nullable) is None - # and model_fields_set contains the field - if self.source_sub_type is None and "source_sub_type" in self.model_fields_set: - _dict['sourceSubType'] = None - - # set to None if source_address (nullable) is None - # and model_fields_set contains the field - if self.source_address is None and "source_address" in self.model_fields_set: - _dict['sourceAddress'] = None - - # set to None if dest_type (nullable) is None - # and model_fields_set contains the field - if self.dest_type is None and "dest_type" in self.model_fields_set: - _dict['destType'] = None - - # set to None if dest_sub_type (nullable) is None - # and model_fields_set contains the field - if self.dest_sub_type is None and "dest_sub_type" in self.model_fields_set: - _dict['destSubType'] = None - - # set to None if dest_address (nullable) is None - # and model_fields_set contains the field - if self.dest_address is None and "dest_address" in self.model_fields_set: - _dict['destAddress'] = None - - # set to None if source_id (nullable) is None - # and model_fields_set contains the field - if self.source_id is None and "source_id" in self.model_fields_set: - _dict['sourceId'] = None - - # set to None if dest_id (nullable) is None - # and model_fields_set contains the field - if self.dest_id is None and "dest_id" in self.model_fields_set: - _dict['destId'] = None - - # set to None if asset (nullable) is None - # and model_fields_set contains the field - if self.asset is None and "asset" in self.model_fields_set: - _dict['asset'] = None - - # set to None if base_asset (nullable) is None - # and model_fields_set contains the field - if self.base_asset is None and "base_asset" in self.model_fields_set: - _dict['baseAsset'] = None - - # set to None if network_protocol (nullable) is None - # and model_fields_set contains the field - if self.network_protocol is None and "network_protocol" in self.model_fields_set: - _dict['networkProtocol'] = None - - # set to None if operation (nullable) is None - # and model_fields_set contains the field - if self.operation is None and "operation" in self.model_fields_set: - _dict['operation'] = None - - # set to None if description (nullable) is None - # and model_fields_set contains the field - if self.description is None and "description" in self.model_fields_set: - _dict['description'] = None - - # set to None if is_default (nullable) is None - # and model_fields_set contains the field - if self.is_default is None and "is_default" in self.model_fields_set: - _dict['isDefault'] = None - - # set to None if valid_before (nullable) is None - # and model_fields_set contains the field - if self.valid_before is None and "valid_before" in self.model_fields_set: - _dict['validBefore'] = None - - # set to None if valid_after (nullable) is None - # and model_fields_set contains the field - if self.valid_after is None and "valid_after" in self.model_fields_set: - _dict['validAfter'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkMissingTrmRule2 from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "customerId": obj.get("customerId"), - "direction": obj.get("direction"), - "sourceType": obj.get("sourceType"), - "sourceSubType": obj.get("sourceSubType"), - "sourceAddress": obj.get("sourceAddress"), - "destType": obj.get("destType"), - "destSubType": obj.get("destSubType"), - "destAddress": obj.get("destAddress"), - "sourceId": obj.get("sourceId"), - "destId": obj.get("destId"), - "asset": obj.get("asset"), - "baseAsset": obj.get("baseAsset"), - "amount": TRLinkAmount2.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "networkProtocol": obj.get("networkProtocol"), - "operation": obj.get("operation"), - "description": obj.get("description"), - "isDefault": obj.get("isDefault"), - "validBefore": obj.get("validBefore"), - "validAfter": obj.get("validAfter"), - "action": obj.get("action") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hbW91bnQyIGltcG9ydCBUUkxpbmtBbW91bnQyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19taXNzaW5nX3RybV9hY3Rpb24yIGltcG9ydCBUUkxpbmtNaXNzaW5nVHJtQWN0aW9uMgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdHJhbnNhY3Rpb25fZGlyZWN0aW9uIGltcG9ydCBUUkxpbmtUcmFuc2FjdGlvbkRpcmVjdGlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtNaXNzaW5nVHJtUnVsZTIoQmFzZU1vZGVsKToKICAgICIiIgogICAgUnVsZSBmb3IgaGFuZGxpbmcgdHJhbnNhY3Rpb25zIHdoZW4gVFJNIHNjcmVlbmluZyBkYXRhIGlzIG1pc3Npbmcgb3IgdW5hdmFpbGFibGUKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGN1c3RvbWVyX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3VzdG9tZXIgaWRlbnRpZmllciIsIGFsaWFzPSJjdXN0b21lcklkIikKICAgIGRpcmVjdGlvbjogT3B0aW9uYWxbVFJMaW5rVHJhbnNhY3Rpb25EaXJlY3Rpb25dID0gTm9uZQogICAgc291cmNlX3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgZW50aXR5IHR5cGUiLCBhbGlhcz0ic291cmNlVHlwZSIpCiAgICBzb3VyY2Vfc3ViX3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgZW50aXR5IHN1YnR5cGUiLCBhbGlhcz0ic291cmNlU3ViVHlwZSIpCiAgICBzb3VyY2VfYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNvdXJjZSBibG9ja2NoYWluIGFkZHJlc3MiLCBhbGlhcz0ic291cmNlQWRkcmVzcyIpCiAgICBkZXN0X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiBlbnRpdHkgdHlwZSIsIGFsaWFzPSJkZXN0VHlwZSIpCiAgICBkZXN0X3N1Yl90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVzdGluYXRpb24gZW50aXR5IHN1YnR5cGUiLCBhbGlhcz0iZGVzdFN1YlR5cGUiKQogICAgZGVzdF9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVzdGluYXRpb24gYmxvY2tjaGFpbiBhZGRyZXNzIiwgYWxpYXM9ImRlc3RBZGRyZXNzIikKICAgIHNvdXJjZV9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNvdXJjZSBpZGVudGlmaWVyIiwgYWxpYXM9InNvdXJjZUlkIikKICAgIGRlc3RfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiBpZGVudGlmaWVyIiwgYWxpYXM9ImRlc3RJZCIpCiAgICBhc3NldDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFzc2V0IG9yIGNyeXB0b2N1cnJlbmN5IHR5cGUiKQogICAgYmFzZV9hc3NldDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkJhc2UgYXNzZXQgZm9yIGRlcml2YXRpdmVzIiwgYWxpYXM9ImJhc2VBc3NldCIpCiAgICBhbW91bnQ6IE9wdGlvbmFsW1RSTGlua0Ftb3VudDJdID0gTm9uZQogICAgbmV0d29ya19wcm90b2NvbDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik5ldHdvcmsgcHJvdG9jb2wgaWRlbnRpZmllciIsIGFsaWFzPSJuZXR3b3JrUHJvdG9jb2wiKQogICAgb3BlcmF0aW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iT3BlcmF0aW9uIHR5cGUiKQogICAgZGVzY3JpcHRpb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSdWxlIGRlc2NyaXB0aW9uIikKICAgIGlzX2RlZmF1bHQ6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iV2hldGhlciB0aGlzIGlzIGEgZGVmYXVsdCBydWxlIiwgYWxpYXM9ImlzRGVmYXVsdCIpCiAgICB2YWxpZF9iZWZvcmU6IE9wdGlvbmFsW1N0cmljdEludF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSdWxlIGlzIHZhbGlkIGJlZm9yZSB0aGlzIHRpbWVzdGFtcCAobWlsbGlzZWNvbmRzKSIsIGFsaWFzPSJ2YWxpZEJlZm9yZSIpCiAgICB2YWxpZF9hZnRlcjogT3B0aW9uYWxbU3RyaWN0SW50XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlJ1bGUgaXMgdmFsaWQgYWZ0ZXIgdGhpcyB0aW1lc3RhbXAgKG1pbGxpc2Vjb25kcykiLCBhbGlhcz0idmFsaWRBZnRlciIpCiAgICBhY3Rpb246IFRSTGlua01pc3NpbmdUcm1BY3Rpb24yCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImN1c3RvbWVySWQiLCAiZGlyZWN0aW9uIiwgInNvdXJjZVR5cGUiLCAic291cmNlU3ViVHlwZSIsICJzb3VyY2VBZGRyZXNzIiwgImRlc3RUeXBlIiwgImRlc3RTdWJUeXBlIiwgImRlc3RBZGRyZXNzIiwgInNvdXJjZUlkIiwgImRlc3RJZCIsICJhc3NldCIsICJiYXNlQXNzZXQiLCAiYW1vdW50IiwgIm5ldHdvcmtQcm90b2NvbCIsICJvcGVyYXRpb24iLCAiZGVzY3JpcHRpb24iLCAiaXNEZWZhdWx0IiwgInZhbGlkQmVmb3JlIiwgInZhbGlkQWZ0ZXIiLCAiYWN0aW9uIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtNaXNzaW5nVHJtUnVsZTIgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhbW91bnQKICAgICAgICBpZiBzZWxmLmFtb3VudDoKICAgICAgICAgICAgX2RpY3RbJ2Ftb3VudCddID0gc2VsZi5hbW91bnQudG9fZGljdCgpCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBjdXN0b21lcl9pZCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuY3VzdG9tZXJfaWQgaXMgTm9uZSBhbmQgImN1c3RvbWVyX2lkIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydjdXN0b21lcklkJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgc291cmNlX3R5cGUgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnNvdXJjZV90eXBlIGlzIE5vbmUgYW5kICJzb3VyY2VfdHlwZSIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnc291cmNlVHlwZSddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIHNvdXJjZV9zdWJfdHlwZSAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuc291cmNlX3N1Yl90eXBlIGlzIE5vbmUgYW5kICJzb3VyY2Vfc3ViX3R5cGUiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3NvdXJjZVN1YlR5cGUnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBzb3VyY2VfYWRkcmVzcyAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuc291cmNlX2FkZHJlc3MgaXMgTm9uZSBhbmQgInNvdXJjZV9hZGRyZXNzIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wydzb3VyY2VBZGRyZXNzJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgZGVzdF90eXBlIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5kZXN0X3R5cGUgaXMgTm9uZSBhbmQgImRlc3RfdHlwZSIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnZGVzdFR5cGUnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBkZXN0X3N1Yl90eXBlIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5kZXN0X3N1Yl90eXBlIGlzIE5vbmUgYW5kICJkZXN0X3N1Yl90eXBlIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydkZXN0U3ViVHlwZSddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGRlc3RfYWRkcmVzcyAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuZGVzdF9hZGRyZXNzIGlzIE5vbmUgYW5kICJkZXN0X2FkZHJlc3MiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2Rlc3RBZGRyZXNzJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgc291cmNlX2lkIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5zb3VyY2VfaWQgaXMgTm9uZSBhbmQgInNvdXJjZV9pZCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnc291cmNlSWQnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBkZXN0X2lkIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5kZXN0X2lkIGlzIE5vbmUgYW5kICJkZXN0X2lkIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydkZXN0SWQnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBhc3NldCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuYXNzZXQgaXMgTm9uZSBhbmQgImFzc2V0IiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wydhc3NldCddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGJhc2VfYXNzZXQgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmJhc2VfYXNzZXQgaXMgTm9uZSBhbmQgImJhc2VfYXNzZXQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2Jhc2VBc3NldCddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIG5ldHdvcmtfcHJvdG9jb2wgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLm5ldHdvcmtfcHJvdG9jb2wgaXMgTm9uZSBhbmQgIm5ldHdvcmtfcHJvdG9jb2wiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ25ldHdvcmtQcm90b2NvbCddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIG9wZXJhdGlvbiAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYub3BlcmF0aW9uIGlzIE5vbmUgYW5kICJvcGVyYXRpb24iIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ29wZXJhdGlvbiddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGRlc2NyaXB0aW9uIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5kZXNjcmlwdGlvbiBpcyBOb25lIGFuZCAiZGVzY3JpcHRpb24iIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2Rlc2NyaXB0aW9uJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgaXNfZGVmYXVsdCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuaXNfZGVmYXVsdCBpcyBOb25lIGFuZCAiaXNfZGVmYXVsdCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnaXNEZWZhdWx0J10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgdmFsaWRfYmVmb3JlIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi52YWxpZF9iZWZvcmUgaXMgTm9uZSBhbmQgInZhbGlkX2JlZm9yZSIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsndmFsaWRCZWZvcmUnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiB2YWxpZF9hZnRlciAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYudmFsaWRfYWZ0ZXIgaXMgTm9uZSBhbmQgInZhbGlkX2FmdGVyIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wyd2YWxpZEFmdGVyJ10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rTWlzc2luZ1RybVJ1bGUyIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImN1c3RvbWVySWQiOiBvYmouZ2V0KCJjdXN0b21lcklkIiksCiAgICAgICAgICAgICJkaXJlY3Rpb24iOiBvYmouZ2V0KCJkaXJlY3Rpb24iKSwKICAgICAgICAgICAgInNvdXJjZVR5cGUiOiBvYmouZ2V0KCJzb3VyY2VUeXBlIiksCiAgICAgICAgICAgICJzb3VyY2VTdWJUeXBlIjogb2JqLmdldCgic291cmNlU3ViVHlwZSIpLAogICAgICAgICAgICAic291cmNlQWRkcmVzcyI6IG9iai5nZXQoInNvdXJjZUFkZHJlc3MiKSwKICAgICAgICAgICAgImRlc3RUeXBlIjogb2JqLmdldCgiZGVzdFR5cGUiKSwKICAgICAgICAgICAgImRlc3RTdWJUeXBlIjogb2JqLmdldCgiZGVzdFN1YlR5cGUiKSwKICAgICAgICAgICAgImRlc3RBZGRyZXNzIjogb2JqLmdldCgiZGVzdEFkZHJlc3MiKSwKICAgICAgICAgICAgInNvdXJjZUlkIjogb2JqLmdldCgic291cmNlSWQiKSwKICAgICAgICAgICAgImRlc3RJZCI6IG9iai5nZXQoImRlc3RJZCIpLAogICAgICAgICAgICAiYXNzZXQiOiBvYmouZ2V0KCJhc3NldCIpLAogICAgICAgICAgICAiYmFzZUFzc2V0Ijogb2JqLmdldCgiYmFzZUFzc2V0IiksCiAgICAgICAgICAgICJhbW91bnQiOiBUUkxpbmtBbW91bnQyLmZyb21fZGljdChvYmpbImFtb3VudCJdKSBpZiBvYmouZ2V0KCJhbW91bnQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJuZXR3b3JrUHJvdG9jb2wiOiBvYmouZ2V0KCJuZXR3b3JrUHJvdG9jb2wiKSwKICAgICAgICAgICAgIm9wZXJhdGlvbiI6IG9iai5nZXQoIm9wZXJhdGlvbiIpLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBvYmouZ2V0KCJkZXNjcmlwdGlvbiIpLAogICAgICAgICAgICAiaXNEZWZhdWx0Ijogb2JqLmdldCgiaXNEZWZhdWx0IiksCiAgICAgICAgICAgICJ2YWxpZEJlZm9yZSI6IG9iai5nZXQoInZhbGlkQmVmb3JlIiksCiAgICAgICAgICAgICJ2YWxpZEFmdGVyIjogb2JqLmdldCgidmFsaWRBZnRlciIpLAogICAgICAgICAgICAiYWN0aW9uIjogb2JqLmdldCgiYWN0aW9uIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_one_time_address.py b/fireblocks/models/tr_link_one_time_address.py index fce65394..d34f4c32 100644 --- a/fireblocks/models/tr_link_one_time_address.py +++ b/fireblocks/models/tr_link_one_time_address.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkOneTimeAddress(BaseModel): - """ - TRLinkOneTimeAddress - """ # noqa: E501 - address: StrictStr = Field(description="Blockchain address") - tag: Optional[StrictStr] = Field(default=None, description="Destination tag (memo, memo ID, etc.)") - __properties: ClassVar[List[str]] = ["address", "tag"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkOneTimeAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if tag (nullable) is None - # and model_fields_set contains the field - if self.tag is None and "tag" in self.model_fields_set: - _dict['tag'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkOneTimeAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "address": obj.get("address"), - "tag": obj.get("tag") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtPbmVUaW1lQWRkcmVzcyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUUkxpbmtPbmVUaW1lQWRkcmVzcwogICAgIiIiICMgbm9xYTogRTUwMQogICAgYWRkcmVzczogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkJsb2NrY2hhaW4gYWRkcmVzcyIpCiAgICB0YWc6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiB0YWcgKG1lbW8sIG1lbW8gSUQsIGV0Yy4pIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYWRkcmVzcyIsICJ0YWciXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua09uZVRpbWVBZGRyZXNzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIHNldCB0byBOb25lIGlmIHRhZyAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYudGFnIGlzIE5vbmUgYW5kICJ0YWciIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3RhZyddID0gTm9uZQoKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua09uZVRpbWVBZGRyZXNzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFkZHJlc3MiOiBvYmouZ2V0KCJhZGRyZXNzIiksCiAgICAgICAgICAgICJ0YWciOiBvYmouZ2V0KCJ0YWciKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_paging.py b/fireblocks/models/tr_link_paging.py index 2f3bc76a..6f9a48d8 100644 --- a/fireblocks/models/tr_link_paging.py +++ b/fireblocks/models/tr_link_paging.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkPaging(BaseModel): - """ - TRLinkPaging - """ # noqa: E501 - next: StrictStr = Field(description="Cursor for next page") - __properties: ClassVar[List[str]] = ["next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkPaging from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkPaging from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRSTGlua1BhZ2luZyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUUkxpbmtQYWdpbmcKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG5leHQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJDdXJzb3IgZm9yIG5leHQgcGFnZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm5leHQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1BhZ2luZyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtQYWdpbmcgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibmV4dCI6IG9iai5nZXQoIm5leHQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_partner_response.py b/fireblocks/models/tr_link_partner_response.py index f7be030e..96ac19ea 100644 --- a/fireblocks/models/tr_link_partner_response.py +++ b/fireblocks/models/tr_link_partner_response.py @@ -1,105 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkPartnerResponse(BaseModel): - """ - TRLinkPartnerResponse - """ # noqa: E501 - id: StrictStr = Field(description="Partner unique identifier") - ident: StrictStr = Field(description="Partner identification code") - name: StrictStr = Field(description="Partner display name") - description: Optional[StrictStr] = Field(default=None, description="Partner description") - base_url: StrictStr = Field(description="Partner API base URL", alias="baseUrl") - active: StrictBool = Field(description="Whether the partner is active") - is_test: StrictBool = Field(description="Whether this is a test/sandbox partner", alias="isTest") - __properties: ClassVar[List[str]] = ["id", "ident", "name", "description", "baseUrl", "active", "isTest"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkPartnerResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if description (nullable) is None - # and model_fields_set contains the field - if self.description is None and "description" in self.model_fields_set: - _dict['description'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkPartnerResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "ident": obj.get("ident"), - "name": obj.get("name"), - "description": obj.get("description"), - "baseUrl": obj.get("baseUrl"), - "active": obj.get("active"), - "isTest": obj.get("isTest") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtQYXJ0bmVyUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgVFJMaW5rUGFydG5lclJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlBhcnRuZXIgdW5pcXVlIGlkZW50aWZpZXIiKQogICAgaWRlbnQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJQYXJ0bmVyIGlkZW50aWZpY2F0aW9uIGNvZGUiKQogICAgbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlBhcnRuZXIgZGlzcGxheSBuYW1lIikKICAgIGRlc2NyaXB0aW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUGFydG5lciBkZXNjcmlwdGlvbiIpCiAgICBiYXNlX3VybDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlBhcnRuZXIgQVBJIGJhc2UgVVJMIiwgYWxpYXM9ImJhc2VVcmwiKQogICAgYWN0aXZlOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IldoZXRoZXIgdGhlIHBhcnRuZXIgaXMgYWN0aXZlIikKICAgIGlzX3Rlc3Q6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iV2hldGhlciB0aGlzIGlzIGEgdGVzdC9zYW5kYm94IHBhcnRuZXIiLCBhbGlhcz0iaXNUZXN0IikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAiaWRlbnQiLCAibmFtZSIsICJkZXNjcmlwdGlvbiIsICJiYXNlVXJsIiwgImFjdGl2ZSIsICJpc1Rlc3QiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1BhcnRuZXJSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBkZXNjcmlwdGlvbiAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuZGVzY3JpcHRpb24gaXMgTm9uZSBhbmQgImRlc2NyaXB0aW9uIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydkZXNjcmlwdGlvbiddID0gTm9uZQoKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1BhcnRuZXJSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJpZGVudCI6IG9iai5nZXQoImlkZW50IiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBvYmouZ2V0KCJkZXNjcmlwdGlvbiIpLAogICAgICAgICAgICAiYmFzZVVybCI6IG9iai5nZXQoImJhc2VVcmwiKSwKICAgICAgICAgICAgImFjdGl2ZSI6IG9iai5nZXQoImFjdGl2ZSIpLAogICAgICAgICAgICAiaXNUZXN0Ijogb2JqLmdldCgiaXNUZXN0IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_policy_response.py b/fireblocks/models/tr_link_policy_response.py index 100de47c..ed3e243d 100644 --- a/fireblocks/models/tr_link_policy_response.py +++ b/fireblocks/models/tr_link_policy_response.py @@ -1,116 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.tr_link_missing_trm_rule2 import TRLinkMissingTrmRule2 -from fireblocks.models.tr_link_post_screening_rule2 import TRLinkPostScreeningRule2 -from fireblocks.models.tr_link_pre_screening_rule2 import TRLinkPreScreeningRule2 -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkPolicyResponse(BaseModel): - """ - TRLink policy response containing pre-screening, post-screening, and missing TRM rules - """ # noqa: E501 - pre_screening_rules: List[TRLinkPreScreeningRule2] = Field(description="Pre-screening rules that determine whether transactions should be screened", alias="preScreeningRules") - post_screening_rules: List[TRLinkPostScreeningRule2] = Field(description="Post-screening rules that determine actions based on screening results", alias="postScreeningRules") - missing_trm_rules: List[TRLinkMissingTrmRule2] = Field(description="Rules for handling transactions when TRM screening data is unavailable", alias="missingTrmRules") - __properties: ClassVar[List[str]] = ["preScreeningRules", "postScreeningRules", "missingTrmRules"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkPolicyResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in pre_screening_rules (list) - _items = [] - if self.pre_screening_rules: - for _item_pre_screening_rules in self.pre_screening_rules: - if _item_pre_screening_rules: - _items.append(_item_pre_screening_rules.to_dict()) - _dict['preScreeningRules'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in post_screening_rules (list) - _items = [] - if self.post_screening_rules: - for _item_post_screening_rules in self.post_screening_rules: - if _item_post_screening_rules: - _items.append(_item_post_screening_rules.to_dict()) - _dict['postScreeningRules'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in missing_trm_rules (list) - _items = [] - if self.missing_trm_rules: - for _item_missing_trm_rules in self.missing_trm_rules: - if _item_missing_trm_rules: - _items.append(_item_missing_trm_rules.to_dict()) - _dict['missingTrmRules'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkPolicyResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "preScreeningRules": [TRLinkPreScreeningRule2.from_dict(_item) for _item in obj["preScreeningRules"]] if obj.get("preScreeningRules") is not None else None, - "postScreeningRules": [TRLinkPostScreeningRule2.from_dict(_item) for _item in obj["postScreeningRules"]] if obj.get("postScreeningRules") is not None else None, - "missingTrmRules": [TRLinkMissingTrmRule2.from_dict(_item) for _item in obj["missingTrmRules"]] if obj.get("missingTrmRules") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfbWlzc2luZ190cm1fcnVsZTIgaW1wb3J0IFRSTGlua01pc3NpbmdUcm1SdWxlMgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcG9zdF9zY3JlZW5pbmdfcnVsZTIgaW1wb3J0IFRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlMgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJlX3NjcmVlbmluZ19ydWxlMiBpbXBvcnQgVFJMaW5rUHJlU2NyZWVuaW5nUnVsZTIKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVFJMaW5rUG9saWN5UmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgVFJMaW5rIHBvbGljeSByZXNwb25zZSBjb250YWluaW5nIHByZS1zY3JlZW5pbmcsIHBvc3Qtc2NyZWVuaW5nLCBhbmQgbWlzc2luZyBUUk0gcnVsZXMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHByZV9zY3JlZW5pbmdfcnVsZXM6IExpc3RbVFJMaW5rUHJlU2NyZWVuaW5nUnVsZTJdID0gRmllbGQoZGVzY3JpcHRpb249IlByZS1zY3JlZW5pbmcgcnVsZXMgdGhhdCBkZXRlcm1pbmUgd2hldGhlciB0cmFuc2FjdGlvbnMgc2hvdWxkIGJlIHNjcmVlbmVkIiwgYWxpYXM9InByZVNjcmVlbmluZ1J1bGVzIikKICAgIHBvc3Rfc2NyZWVuaW5nX3J1bGVzOiBMaXN0W1RSTGlua1Bvc3RTY3JlZW5pbmdSdWxlMl0gPSBGaWVsZChkZXNjcmlwdGlvbj0iUG9zdC1zY3JlZW5pbmcgcnVsZXMgdGhhdCBkZXRlcm1pbmUgYWN0aW9ucyBiYXNlZCBvbiBzY3JlZW5pbmcgcmVzdWx0cyIsIGFsaWFzPSJwb3N0U2NyZWVuaW5nUnVsZXMiKQogICAgbWlzc2luZ190cm1fcnVsZXM6IExpc3RbVFJMaW5rTWlzc2luZ1RybVJ1bGUyXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJSdWxlcyBmb3IgaGFuZGxpbmcgdHJhbnNhY3Rpb25zIHdoZW4gVFJNIHNjcmVlbmluZyBkYXRhIGlzIHVuYXZhaWxhYmxlIiwgYWxpYXM9Im1pc3NpbmdUcm1SdWxlcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInByZVNjcmVlbmluZ1J1bGVzIiwgInBvc3RTY3JlZW5pbmdSdWxlcyIsICJtaXNzaW5nVHJtUnVsZXMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1BvbGljeVJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIHByZV9zY3JlZW5pbmdfcnVsZXMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLnByZV9zY3JlZW5pbmdfcnVsZXM6CiAgICAgICAgICAgIGZvciBfaXRlbV9wcmVfc2NyZWVuaW5nX3J1bGVzIGluIHNlbGYucHJlX3NjcmVlbmluZ19ydWxlczoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX3ByZV9zY3JlZW5pbmdfcnVsZXM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9wcmVfc2NyZWVuaW5nX3J1bGVzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ3ByZVNjcmVlbmluZ1J1bGVzJ10gPSBfaXRlbXMKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIHBvc3Rfc2NyZWVuaW5nX3J1bGVzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5wb3N0X3NjcmVlbmluZ19ydWxlczoKICAgICAgICAgICAgZm9yIF9pdGVtX3Bvc3Rfc2NyZWVuaW5nX3J1bGVzIGluIHNlbGYucG9zdF9zY3JlZW5pbmdfcnVsZXM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9wb3N0X3NjcmVlbmluZ19ydWxlczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX3Bvc3Rfc2NyZWVuaW5nX3J1bGVzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ3Bvc3RTY3JlZW5pbmdSdWxlcyddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBtaXNzaW5nX3RybV9ydWxlcyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYubWlzc2luZ190cm1fcnVsZXM6CiAgICAgICAgICAgIGZvciBfaXRlbV9taXNzaW5nX3RybV9ydWxlcyBpbiBzZWxmLm1pc3NpbmdfdHJtX3J1bGVzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fbWlzc2luZ190cm1fcnVsZXM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9taXNzaW5nX3RybV9ydWxlcy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydtaXNzaW5nVHJtUnVsZXMnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUG9saWN5UmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicHJlU2NyZWVuaW5nUnVsZXMiOiBbVFJMaW5rUHJlU2NyZWVuaW5nUnVsZTIuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJwcmVTY3JlZW5pbmdSdWxlcyJdXSBpZiBvYmouZ2V0KCJwcmVTY3JlZW5pbmdSdWxlcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInBvc3RTY3JlZW5pbmdSdWxlcyI6IFtUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZTIuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJwb3N0U2NyZWVuaW5nUnVsZXMiXV0gaWYgb2JqLmdldCgicG9zdFNjcmVlbmluZ1J1bGVzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibWlzc2luZ1RybVJ1bGVzIjogW1RSTGlua01pc3NpbmdUcm1SdWxlMi5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbIm1pc3NpbmdUcm1SdWxlcyJdXSBpZiBvYmouZ2V0KCJtaXNzaW5nVHJtUnVsZXMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_post_screening_action.py b/fireblocks/models/tr_link_post_screening_action.py index 84eefdc7..12aaa04a 100644 --- a/fireblocks/models/tr_link_post_screening_action.py +++ b/fireblocks/models/tr_link_post_screening_action.py @@ -1,40 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TRLinkPostScreeningAction(str, Enum): - """ - TRLinkPostScreeningAction - """ - - """ - allowed enum values - """ - ACCEPT = 'ACCEPT' - ALERT = 'ALERT' - REJECT = 'REJECT' - WAIT = 'WAIT' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TRLinkPostScreeningAction from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUUkxpbmtQb3N0U2NyZWVuaW5nQWN0aW9uKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIFRSTGlua1Bvc3RTY3JlZW5pbmdBY3Rpb24KICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBBQ0NFUFQgPSAnQUNDRVBUJwogICAgQUxFUlQgPSAnQUxFUlQnCiAgICBSRUpFQ1QgPSAnUkVKRUNUJwogICAgV0FJVCA9ICdXQUlUJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1Bvc3RTY3JlZW5pbmdBY3Rpb24gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_post_screening_rule.py b/fireblocks/models/tr_link_post_screening_rule.py index c711d14d..2e058db5 100644 --- a/fireblocks/models/tr_link_post_screening_rule.py +++ b/fireblocks/models/tr_link_post_screening_rule.py @@ -1,140 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.tr_link_amount import TRLinkAmount -from fireblocks.models.tr_link_trm_screening_status import TRLinkTrmScreeningStatus -from fireblocks.models.tr_link_verdict import TRLinkVerdict -from fireblocks.models.transaction_direction import TransactionDirection -from fireblocks.models.transaction_operation_enum import TransactionOperationEnum -from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum -from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkPostScreeningRule(BaseModel): - """ - TRLink post-screening rule definition - """ # noqa: E501 - customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TrlinkCustomer.id", alias="customerId") - direction: Optional[TransactionDirection] = None - source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType") - source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType") - source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress") - dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType") - dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType") - dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress") - source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId") - dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId") - asset: Optional[StrictStr] = Field(default=None, description="Asset symbol") - base_asset: Optional[StrictStr] = Field(default=None, description="Base asset symbol", alias="baseAsset") - amount: Optional[TRLinkAmount] = None - network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol") - operation: Optional[TransactionOperationEnum] = None - description: Optional[StrictStr] = Field(default=None, description="Rule description") - is_default: Optional[StrictBool] = Field(default=False, description="Whether this is a default rule", alias="isDefault") - provider_ident: Optional[StrictStr] = Field(default=None, description="Provider identifier", alias="providerIdent") - trm_status: Optional[TRLinkTrmScreeningStatus] = Field(default=None, alias="trmStatus") - valid_before: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule expires", alias="validBefore") - valid_after: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Unix timestamp when rule becomes valid", alias="validAfter") - action: TRLinkVerdict - __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault", "providerIdent", "trmStatus", "validBefore", "validAfter", "action"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkPostScreeningRule from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkPostScreeningRule from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "customerId": obj.get("customerId"), - "direction": obj.get("direction"), - "sourceType": obj.get("sourceType"), - "sourceSubType": obj.get("sourceSubType"), - "sourceAddress": obj.get("sourceAddress"), - "destType": obj.get("destType"), - "destSubType": obj.get("destSubType"), - "destAddress": obj.get("destAddress"), - "sourceId": obj.get("sourceId"), - "destId": obj.get("destId"), - "asset": obj.get("asset"), - "baseAsset": obj.get("baseAsset"), - "amount": TRLinkAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "networkProtocol": obj.get("networkProtocol"), - "operation": obj.get("operation"), - "description": obj.get("description"), - "isDefault": obj.get("isDefault") if obj.get("isDefault") is not None else False, - "providerIdent": obj.get("providerIdent"), - "trmStatus": obj.get("trmStatus"), - "validBefore": obj.get("validBefore"), - "validAfter": obj.get("validAfter"), - "action": obj.get("action") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Ftb3VudCBpbXBvcnQgVFJMaW5rQW1vdW50CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua190cm1fc2NyZWVuaW5nX3N0YXR1cyBpbXBvcnQgVFJMaW5rVHJtU2NyZWVuaW5nU3RhdHVzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua192ZXJkaWN0IGltcG9ydCBUUkxpbmtWZXJkaWN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fZGlyZWN0aW9uIGltcG9ydCBUcmFuc2FjdGlvbkRpcmVjdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX29wZXJhdGlvbl9lbnVtIGltcG9ydCBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9wZWVyX3N1Yl90eXBlX2VudW0gaW1wb3J0IFRyYW5zZmVyUGVlclN1YlR5cGVFbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfcGVlcl90eXBlX2VudW0gaW1wb3J0IFRyYW5zZmVyUGVlclR5cGVFbnVtCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRSTGluayBwb3N0LXNjcmVlbmluZyBydWxlIGRlZmluaXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGN1c3RvbWVyX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUmVmZXJlbmNlIHRvIFRybGlua0N1c3RvbWVyLmlkIiwgYWxpYXM9ImN1c3RvbWVySWQiKQogICAgZGlyZWN0aW9uOiBPcHRpb25hbFtUcmFuc2FjdGlvbkRpcmVjdGlvbl0gPSBOb25lCiAgICBzb3VyY2VfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ic291cmNlVHlwZSIpCiAgICBzb3VyY2Vfc3ViX3R5cGU6IE9wdGlvbmFsW1RyYW5zZmVyUGVlclN1YlR5cGVFbnVtXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InNvdXJjZVN1YlR5cGUiKQogICAgc291cmNlX2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgYWRkcmVzcyIsIGFsaWFzPSJzb3VyY2VBZGRyZXNzIikKICAgIGRlc3RfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZGVzdFR5cGUiKQogICAgZGVzdF9zdWJfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyU3ViVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZGVzdFN1YlR5cGUiKQogICAgZGVzdF9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVzdGluYXRpb24gYWRkcmVzcyIsIGFsaWFzPSJkZXN0QWRkcmVzcyIpCiAgICBzb3VyY2VfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgSUQiLCBhbGlhcz0ic291cmNlSWQiKQogICAgZGVzdF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRlc3RpbmF0aW9uIElEIiwgYWxpYXM9ImRlc3RJZCIpCiAgICBhc3NldDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFzc2V0IHN5bWJvbCIpCiAgICBiYXNlX2Fzc2V0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQmFzZSBhc3NldCBzeW1ib2wiLCBhbGlhcz0iYmFzZUFzc2V0IikKICAgIGFtb3VudDogT3B0aW9uYWxbVFJMaW5rQW1vdW50XSA9IE5vbmUKICAgIG5ldHdvcmtfcHJvdG9jb2w6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOZXR3b3JrIHByb3RvY29sIiwgYWxpYXM9Im5ldHdvcmtQcm90b2NvbCIpCiAgICBvcGVyYXRpb246IE9wdGlvbmFsW1RyYW5zYWN0aW9uT3BlcmF0aW9uRW51bV0gPSBOb25lCiAgICBkZXNjcmlwdGlvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlJ1bGUgZGVzY3JpcHRpb24iKQogICAgaXNfZGVmYXVsdDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PUZhbHNlLCBkZXNjcmlwdGlvbj0iV2hldGhlciB0aGlzIGlzIGEgZGVmYXVsdCBydWxlIiwgYWxpYXM9ImlzRGVmYXVsdCIpCiAgICBwcm92aWRlcl9pZGVudDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlByb3ZpZGVyIGlkZW50aWZpZXIiLCBhbGlhcz0icHJvdmlkZXJJZGVudCIpCiAgICB0cm1fc3RhdHVzOiBPcHRpb25hbFtUUkxpbmtUcm1TY3JlZW5pbmdTdGF0dXNdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0idHJtU3RhdHVzIikKICAgIHZhbGlkX2JlZm9yZTogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVW5peCB0aW1lc3RhbXAgd2hlbiBydWxlIGV4cGlyZXMiLCBhbGlhcz0idmFsaWRCZWZvcmUiKQogICAgdmFsaWRfYWZ0ZXI6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlVuaXggdGltZXN0YW1wIHdoZW4gcnVsZSBiZWNvbWVzIHZhbGlkIiwgYWxpYXM9InZhbGlkQWZ0ZXIiKQogICAgYWN0aW9uOiBUUkxpbmtWZXJkaWN0CiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImN1c3RvbWVySWQiLCAiZGlyZWN0aW9uIiwgInNvdXJjZVR5cGUiLCAic291cmNlU3ViVHlwZSIsICJzb3VyY2VBZGRyZXNzIiwgImRlc3RUeXBlIiwgImRlc3RTdWJUeXBlIiwgImRlc3RBZGRyZXNzIiwgInNvdXJjZUlkIiwgImRlc3RJZCIsICJhc3NldCIsICJiYXNlQXNzZXQiLCAiYW1vdW50IiwgIm5ldHdvcmtQcm90b2NvbCIsICJvcGVyYXRpb24iLCAiZGVzY3JpcHRpb24iLCAiaXNEZWZhdWx0IiwgInByb3ZpZGVySWRlbnQiLCAidHJtU3RhdHVzIiwgInZhbGlkQmVmb3JlIiwgInZhbGlkQWZ0ZXIiLCAiYWN0aW9uIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFtb3VudAogICAgICAgIGlmIHNlbGYuYW1vdW50OgogICAgICAgICAgICBfZGljdFsnYW1vdW50J10gPSBzZWxmLmFtb3VudC50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImN1c3RvbWVySWQiOiBvYmouZ2V0KCJjdXN0b21lcklkIiksCiAgICAgICAgICAgICJkaXJlY3Rpb24iOiBvYmouZ2V0KCJkaXJlY3Rpb24iKSwKICAgICAgICAgICAgInNvdXJjZVR5cGUiOiBvYmouZ2V0KCJzb3VyY2VUeXBlIiksCiAgICAgICAgICAgICJzb3VyY2VTdWJUeXBlIjogb2JqLmdldCgic291cmNlU3ViVHlwZSIpLAogICAgICAgICAgICAic291cmNlQWRkcmVzcyI6IG9iai5nZXQoInNvdXJjZUFkZHJlc3MiKSwKICAgICAgICAgICAgImRlc3RUeXBlIjogb2JqLmdldCgiZGVzdFR5cGUiKSwKICAgICAgICAgICAgImRlc3RTdWJUeXBlIjogb2JqLmdldCgiZGVzdFN1YlR5cGUiKSwKICAgICAgICAgICAgImRlc3RBZGRyZXNzIjogb2JqLmdldCgiZGVzdEFkZHJlc3MiKSwKICAgICAgICAgICAgInNvdXJjZUlkIjogb2JqLmdldCgic291cmNlSWQiKSwKICAgICAgICAgICAgImRlc3RJZCI6IG9iai5nZXQoImRlc3RJZCIpLAogICAgICAgICAgICAiYXNzZXQiOiBvYmouZ2V0KCJhc3NldCIpLAogICAgICAgICAgICAiYmFzZUFzc2V0Ijogb2JqLmdldCgiYmFzZUFzc2V0IiksCiAgICAgICAgICAgICJhbW91bnQiOiBUUkxpbmtBbW91bnQuZnJvbV9kaWN0KG9ialsiYW1vdW50Il0pIGlmIG9iai5nZXQoImFtb3VudCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm5ldHdvcmtQcm90b2NvbCI6IG9iai5nZXQoIm5ldHdvcmtQcm90b2NvbCIpLAogICAgICAgICAgICAib3BlcmF0aW9uIjogb2JqLmdldCgib3BlcmF0aW9uIiksCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IG9iai5nZXQoImRlc2NyaXB0aW9uIiksCiAgICAgICAgICAgICJpc0RlZmF1bHQiOiBvYmouZ2V0KCJpc0RlZmF1bHQiKSBpZiBvYmouZ2V0KCJpc0RlZmF1bHQiKSBpcyBub3QgTm9uZSBlbHNlIEZhbHNlLAogICAgICAgICAgICAicHJvdmlkZXJJZGVudCI6IG9iai5nZXQoInByb3ZpZGVySWRlbnQiKSwKICAgICAgICAgICAgInRybVN0YXR1cyI6IG9iai5nZXQoInRybVN0YXR1cyIpLAogICAgICAgICAgICAidmFsaWRCZWZvcmUiOiBvYmouZ2V0KCJ2YWxpZEJlZm9yZSIpLAogICAgICAgICAgICAidmFsaWRBZnRlciI6IG9iai5nZXQoInZhbGlkQWZ0ZXIiKSwKICAgICAgICAgICAgImFjdGlvbiI6IG9iai5nZXQoImFjdGlvbiIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_post_screening_rule2.py b/fireblocks/models/tr_link_post_screening_rule2.py index 23dc2f36..5ede177a 100644 --- a/fireblocks/models/tr_link_post_screening_rule2.py +++ b/fireblocks/models/tr_link_post_screening_rule2.py @@ -1,232 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tr_link_amount2 import TRLinkAmount2 -from fireblocks.models.tr_link_post_screening_action import TRLinkPostScreeningAction -from fireblocks.models.tr_link_transaction_direction import TRLinkTransactionDirection -from fireblocks.models.tr_link_trm_status import TRLinkTrmStatus -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkPostScreeningRule2(BaseModel): - """ - Post-screening rule that determines the verdict based on screening results - """ # noqa: E501 - customer_id: Optional[StrictStr] = Field(default=None, description="Customer identifier", alias="customerId") - direction: Optional[TRLinkTransactionDirection] = None - source_type: Optional[StrictStr] = Field(default=None, description="Source entity type", alias="sourceType") - source_sub_type: Optional[StrictStr] = Field(default=None, description="Source entity subtype", alias="sourceSubType") - source_address: Optional[StrictStr] = Field(default=None, description="Source blockchain address", alias="sourceAddress") - dest_type: Optional[StrictStr] = Field(default=None, description="Destination entity type", alias="destType") - dest_sub_type: Optional[StrictStr] = Field(default=None, description="Destination entity subtype", alias="destSubType") - dest_address: Optional[StrictStr] = Field(default=None, description="Destination blockchain address", alias="destAddress") - source_id: Optional[StrictStr] = Field(default=None, description="Source identifier", alias="sourceId") - dest_id: Optional[StrictStr] = Field(default=None, description="Destination identifier", alias="destId") - asset: Optional[StrictStr] = Field(default=None, description="Asset or cryptocurrency type") - base_asset: Optional[StrictStr] = Field(default=None, description="Base asset for derivatives", alias="baseAsset") - amount: Optional[TRLinkAmount2] = None - network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol identifier", alias="networkProtocol") - operation: Optional[StrictStr] = Field(default=None, description="Operation type") - description: Optional[StrictStr] = Field(default=None, description="Rule description") - is_default: Optional[StrictBool] = Field(default=None, description="Whether this is a default rule", alias="isDefault") - provider_ident: Optional[StrictStr] = Field(default=None, description="TRP provider identifier", alias="providerIdent") - trm_status: Optional[TRLinkTrmStatus] = Field(default=None, alias="trmStatus") - valid_before: Optional[StrictInt] = Field(default=None, description="Rule is valid before this timestamp (milliseconds)", alias="validBefore") - valid_after: Optional[StrictInt] = Field(default=None, description="Rule is valid after this timestamp (milliseconds)", alias="validAfter") - action: TRLinkPostScreeningAction - __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault", "providerIdent", "trmStatus", "validBefore", "validAfter", "action"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkPostScreeningRule2 from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - # set to None if customer_id (nullable) is None - # and model_fields_set contains the field - if self.customer_id is None and "customer_id" in self.model_fields_set: - _dict['customerId'] = None - - # set to None if source_type (nullable) is None - # and model_fields_set contains the field - if self.source_type is None and "source_type" in self.model_fields_set: - _dict['sourceType'] = None - - # set to None if source_sub_type (nullable) is None - # and model_fields_set contains the field - if self.source_sub_type is None and "source_sub_type" in self.model_fields_set: - _dict['sourceSubType'] = None - - # set to None if source_address (nullable) is None - # and model_fields_set contains the field - if self.source_address is None and "source_address" in self.model_fields_set: - _dict['sourceAddress'] = None - - # set to None if dest_type (nullable) is None - # and model_fields_set contains the field - if self.dest_type is None and "dest_type" in self.model_fields_set: - _dict['destType'] = None - - # set to None if dest_sub_type (nullable) is None - # and model_fields_set contains the field - if self.dest_sub_type is None and "dest_sub_type" in self.model_fields_set: - _dict['destSubType'] = None - - # set to None if dest_address (nullable) is None - # and model_fields_set contains the field - if self.dest_address is None and "dest_address" in self.model_fields_set: - _dict['destAddress'] = None - - # set to None if source_id (nullable) is None - # and model_fields_set contains the field - if self.source_id is None and "source_id" in self.model_fields_set: - _dict['sourceId'] = None - - # set to None if dest_id (nullable) is None - # and model_fields_set contains the field - if self.dest_id is None and "dest_id" in self.model_fields_set: - _dict['destId'] = None - - # set to None if asset (nullable) is None - # and model_fields_set contains the field - if self.asset is None and "asset" in self.model_fields_set: - _dict['asset'] = None - - # set to None if base_asset (nullable) is None - # and model_fields_set contains the field - if self.base_asset is None and "base_asset" in self.model_fields_set: - _dict['baseAsset'] = None - - # set to None if network_protocol (nullable) is None - # and model_fields_set contains the field - if self.network_protocol is None and "network_protocol" in self.model_fields_set: - _dict['networkProtocol'] = None - - # set to None if operation (nullable) is None - # and model_fields_set contains the field - if self.operation is None and "operation" in self.model_fields_set: - _dict['operation'] = None - - # set to None if description (nullable) is None - # and model_fields_set contains the field - if self.description is None and "description" in self.model_fields_set: - _dict['description'] = None - - # set to None if is_default (nullable) is None - # and model_fields_set contains the field - if self.is_default is None and "is_default" in self.model_fields_set: - _dict['isDefault'] = None - - # set to None if provider_ident (nullable) is None - # and model_fields_set contains the field - if self.provider_ident is None and "provider_ident" in self.model_fields_set: - _dict['providerIdent'] = None - - # set to None if trm_status (nullable) is None - # and model_fields_set contains the field - if self.trm_status is None and "trm_status" in self.model_fields_set: - _dict['trmStatus'] = None - - # set to None if valid_before (nullable) is None - # and model_fields_set contains the field - if self.valid_before is None and "valid_before" in self.model_fields_set: - _dict['validBefore'] = None - - # set to None if valid_after (nullable) is None - # and model_fields_set contains the field - if self.valid_after is None and "valid_after" in self.model_fields_set: - _dict['validAfter'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkPostScreeningRule2 from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "customerId": obj.get("customerId"), - "direction": obj.get("direction"), - "sourceType": obj.get("sourceType"), - "sourceSubType": obj.get("sourceSubType"), - "sourceAddress": obj.get("sourceAddress"), - "destType": obj.get("destType"), - "destSubType": obj.get("destSubType"), - "destAddress": obj.get("destAddress"), - "sourceId": obj.get("sourceId"), - "destId": obj.get("destId"), - "asset": obj.get("asset"), - "baseAsset": obj.get("baseAsset"), - "amount": TRLinkAmount2.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "networkProtocol": obj.get("networkProtocol"), - "operation": obj.get("operation"), - "description": obj.get("description"), - "isDefault": obj.get("isDefault"), - "providerIdent": obj.get("providerIdent"), - "trmStatus": obj.get("trmStatus"), - "validBefore": obj.get("validBefore"), - "validAfter": obj.get("validAfter"), - "action": obj.get("action") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hbW91bnQyIGltcG9ydCBUUkxpbmtBbW91bnQyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wb3N0X3NjcmVlbmluZ19hY3Rpb24gaW1wb3J0IFRSTGlua1Bvc3RTY3JlZW5pbmdBY3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3RyYW5zYWN0aW9uX2RpcmVjdGlvbiBpbXBvcnQgVFJMaW5rVHJhbnNhY3Rpb25EaXJlY3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3RybV9zdGF0dXMgaW1wb3J0IFRSTGlua1RybVN0YXR1cwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZTIoQmFzZU1vZGVsKToKICAgICIiIgogICAgUG9zdC1zY3JlZW5pbmcgcnVsZSB0aGF0IGRldGVybWluZXMgdGhlIHZlcmRpY3QgYmFzZWQgb24gc2NyZWVuaW5nIHJlc3VsdHMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGN1c3RvbWVyX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3VzdG9tZXIgaWRlbnRpZmllciIsIGFsaWFzPSJjdXN0b21lcklkIikKICAgIGRpcmVjdGlvbjogT3B0aW9uYWxbVFJMaW5rVHJhbnNhY3Rpb25EaXJlY3Rpb25dID0gTm9uZQogICAgc291cmNlX3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgZW50aXR5IHR5cGUiLCBhbGlhcz0ic291cmNlVHlwZSIpCiAgICBzb3VyY2Vfc3ViX3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgZW50aXR5IHN1YnR5cGUiLCBhbGlhcz0ic291cmNlU3ViVHlwZSIpCiAgICBzb3VyY2VfYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNvdXJjZSBibG9ja2NoYWluIGFkZHJlc3MiLCBhbGlhcz0ic291cmNlQWRkcmVzcyIpCiAgICBkZXN0X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiBlbnRpdHkgdHlwZSIsIGFsaWFzPSJkZXN0VHlwZSIpCiAgICBkZXN0X3N1Yl90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVzdGluYXRpb24gZW50aXR5IHN1YnR5cGUiLCBhbGlhcz0iZGVzdFN1YlR5cGUiKQogICAgZGVzdF9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVzdGluYXRpb24gYmxvY2tjaGFpbiBhZGRyZXNzIiwgYWxpYXM9ImRlc3RBZGRyZXNzIikKICAgIHNvdXJjZV9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNvdXJjZSBpZGVudGlmaWVyIiwgYWxpYXM9InNvdXJjZUlkIikKICAgIGRlc3RfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiBpZGVudGlmaWVyIiwgYWxpYXM9ImRlc3RJZCIpCiAgICBhc3NldDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFzc2V0IG9yIGNyeXB0b2N1cnJlbmN5IHR5cGUiKQogICAgYmFzZV9hc3NldDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkJhc2UgYXNzZXQgZm9yIGRlcml2YXRpdmVzIiwgYWxpYXM9ImJhc2VBc3NldCIpCiAgICBhbW91bnQ6IE9wdGlvbmFsW1RSTGlua0Ftb3VudDJdID0gTm9uZQogICAgbmV0d29ya19wcm90b2NvbDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik5ldHdvcmsgcHJvdG9jb2wgaWRlbnRpZmllciIsIGFsaWFzPSJuZXR3b3JrUHJvdG9jb2wiKQogICAgb3BlcmF0aW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iT3BlcmF0aW9uIHR5cGUiKQogICAgZGVzY3JpcHRpb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSdWxlIGRlc2NyaXB0aW9uIikKICAgIGlzX2RlZmF1bHQ6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iV2hldGhlciB0aGlzIGlzIGEgZGVmYXVsdCBydWxlIiwgYWxpYXM9ImlzRGVmYXVsdCIpCiAgICBwcm92aWRlcl9pZGVudDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRSUCBwcm92aWRlciBpZGVudGlmaWVyIiwgYWxpYXM9InByb3ZpZGVySWRlbnQiKQogICAgdHJtX3N0YXR1czogT3B0aW9uYWxbVFJMaW5rVHJtU3RhdHVzXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InRybVN0YXR1cyIpCiAgICB2YWxpZF9iZWZvcmU6IE9wdGlvbmFsW1N0cmljdEludF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSdWxlIGlzIHZhbGlkIGJlZm9yZSB0aGlzIHRpbWVzdGFtcCAobWlsbGlzZWNvbmRzKSIsIGFsaWFzPSJ2YWxpZEJlZm9yZSIpCiAgICB2YWxpZF9hZnRlcjogT3B0aW9uYWxbU3RyaWN0SW50XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlJ1bGUgaXMgdmFsaWQgYWZ0ZXIgdGhpcyB0aW1lc3RhbXAgKG1pbGxpc2Vjb25kcykiLCBhbGlhcz0idmFsaWRBZnRlciIpCiAgICBhY3Rpb246IFRSTGlua1Bvc3RTY3JlZW5pbmdBY3Rpb24KICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiY3VzdG9tZXJJZCIsICJkaXJlY3Rpb24iLCAic291cmNlVHlwZSIsICJzb3VyY2VTdWJUeXBlIiwgInNvdXJjZUFkZHJlc3MiLCAiZGVzdFR5cGUiLCAiZGVzdFN1YlR5cGUiLCAiZGVzdEFkZHJlc3MiLCAic291cmNlSWQiLCAiZGVzdElkIiwgImFzc2V0IiwgImJhc2VBc3NldCIsICJhbW91bnQiLCAibmV0d29ya1Byb3RvY29sIiwgIm9wZXJhdGlvbiIsICJkZXNjcmlwdGlvbiIsICJpc0RlZmF1bHQiLCAicHJvdmlkZXJJZGVudCIsICJ0cm1TdGF0dXMiLCAidmFsaWRCZWZvcmUiLCAidmFsaWRBZnRlciIsICJhY3Rpb24iXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlMiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFtb3VudAogICAgICAgIGlmIHNlbGYuYW1vdW50OgogICAgICAgICAgICBfZGljdFsnYW1vdW50J10gPSBzZWxmLmFtb3VudC50b19kaWN0KCkKICAgICAgICAjIHNldCB0byBOb25lIGlmIGN1c3RvbWVyX2lkIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5jdXN0b21lcl9pZCBpcyBOb25lIGFuZCAiY3VzdG9tZXJfaWQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2N1c3RvbWVySWQnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBzb3VyY2VfdHlwZSAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuc291cmNlX3R5cGUgaXMgTm9uZSBhbmQgInNvdXJjZV90eXBlIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wydzb3VyY2VUeXBlJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgc291cmNlX3N1Yl90eXBlIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5zb3VyY2Vfc3ViX3R5cGUgaXMgTm9uZSBhbmQgInNvdXJjZV9zdWJfdHlwZSIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnc291cmNlU3ViVHlwZSddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIHNvdXJjZV9hZGRyZXNzIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5zb3VyY2VfYWRkcmVzcyBpcyBOb25lIGFuZCAic291cmNlX2FkZHJlc3MiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3NvdXJjZUFkZHJlc3MnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBkZXN0X3R5cGUgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmRlc3RfdHlwZSBpcyBOb25lIGFuZCAiZGVzdF90eXBlIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydkZXN0VHlwZSddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGRlc3Rfc3ViX3R5cGUgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmRlc3Rfc3ViX3R5cGUgaXMgTm9uZSBhbmQgImRlc3Rfc3ViX3R5cGUiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2Rlc3RTdWJUeXBlJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgZGVzdF9hZGRyZXNzIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5kZXN0X2FkZHJlc3MgaXMgTm9uZSBhbmQgImRlc3RfYWRkcmVzcyIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnZGVzdEFkZHJlc3MnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBzb3VyY2VfaWQgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnNvdXJjZV9pZCBpcyBOb25lIGFuZCAic291cmNlX2lkIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wydzb3VyY2VJZCddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGRlc3RfaWQgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmRlc3RfaWQgaXMgTm9uZSBhbmQgImRlc3RfaWQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2Rlc3RJZCddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGFzc2V0IChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5hc3NldCBpcyBOb25lIGFuZCAiYXNzZXQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2Fzc2V0J10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgYmFzZV9hc3NldCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuYmFzZV9hc3NldCBpcyBOb25lIGFuZCAiYmFzZV9hc3NldCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnYmFzZUFzc2V0J10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgbmV0d29ya19wcm90b2NvbCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYubmV0d29ya19wcm90b2NvbCBpcyBOb25lIGFuZCAibmV0d29ya19wcm90b2NvbCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnbmV0d29ya1Byb3RvY29sJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgb3BlcmF0aW9uIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5vcGVyYXRpb24gaXMgTm9uZSBhbmQgIm9wZXJhdGlvbiIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnb3BlcmF0aW9uJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgZGVzY3JpcHRpb24gKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmRlc2NyaXB0aW9uIGlzIE5vbmUgYW5kICJkZXNjcmlwdGlvbiIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnZGVzY3JpcHRpb24nXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBpc19kZWZhdWx0IChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5pc19kZWZhdWx0IGlzIE5vbmUgYW5kICJpc19kZWZhdWx0IiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wydpc0RlZmF1bHQnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBwcm92aWRlcl9pZGVudCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYucHJvdmlkZXJfaWRlbnQgaXMgTm9uZSBhbmQgInByb3ZpZGVyX2lkZW50IiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wydwcm92aWRlcklkZW50J10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgdHJtX3N0YXR1cyAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYudHJtX3N0YXR1cyBpcyBOb25lIGFuZCAidHJtX3N0YXR1cyIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsndHJtU3RhdHVzJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgdmFsaWRfYmVmb3JlIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi52YWxpZF9iZWZvcmUgaXMgTm9uZSBhbmQgInZhbGlkX2JlZm9yZSIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsndmFsaWRCZWZvcmUnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiB2YWxpZF9hZnRlciAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYudmFsaWRfYWZ0ZXIgaXMgTm9uZSBhbmQgInZhbGlkX2FmdGVyIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wyd2YWxpZEFmdGVyJ10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUyIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImN1c3RvbWVySWQiOiBvYmouZ2V0KCJjdXN0b21lcklkIiksCiAgICAgICAgICAgICJkaXJlY3Rpb24iOiBvYmouZ2V0KCJkaXJlY3Rpb24iKSwKICAgICAgICAgICAgInNvdXJjZVR5cGUiOiBvYmouZ2V0KCJzb3VyY2VUeXBlIiksCiAgICAgICAgICAgICJzb3VyY2VTdWJUeXBlIjogb2JqLmdldCgic291cmNlU3ViVHlwZSIpLAogICAgICAgICAgICAic291cmNlQWRkcmVzcyI6IG9iai5nZXQoInNvdXJjZUFkZHJlc3MiKSwKICAgICAgICAgICAgImRlc3RUeXBlIjogb2JqLmdldCgiZGVzdFR5cGUiKSwKICAgICAgICAgICAgImRlc3RTdWJUeXBlIjogb2JqLmdldCgiZGVzdFN1YlR5cGUiKSwKICAgICAgICAgICAgImRlc3RBZGRyZXNzIjogb2JqLmdldCgiZGVzdEFkZHJlc3MiKSwKICAgICAgICAgICAgInNvdXJjZUlkIjogb2JqLmdldCgic291cmNlSWQiKSwKICAgICAgICAgICAgImRlc3RJZCI6IG9iai5nZXQoImRlc3RJZCIpLAogICAgICAgICAgICAiYXNzZXQiOiBvYmouZ2V0KCJhc3NldCIpLAogICAgICAgICAgICAiYmFzZUFzc2V0Ijogb2JqLmdldCgiYmFzZUFzc2V0IiksCiAgICAgICAgICAgICJhbW91bnQiOiBUUkxpbmtBbW91bnQyLmZyb21fZGljdChvYmpbImFtb3VudCJdKSBpZiBvYmouZ2V0KCJhbW91bnQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJuZXR3b3JrUHJvdG9jb2wiOiBvYmouZ2V0KCJuZXR3b3JrUHJvdG9jb2wiKSwKICAgICAgICAgICAgIm9wZXJhdGlvbiI6IG9iai5nZXQoIm9wZXJhdGlvbiIpLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBvYmouZ2V0KCJkZXNjcmlwdGlvbiIpLAogICAgICAgICAgICAiaXNEZWZhdWx0Ijogb2JqLmdldCgiaXNEZWZhdWx0IiksCiAgICAgICAgICAgICJwcm92aWRlcklkZW50Ijogb2JqLmdldCgicHJvdmlkZXJJZGVudCIpLAogICAgICAgICAgICAidHJtU3RhdHVzIjogb2JqLmdldCgidHJtU3RhdHVzIiksCiAgICAgICAgICAgICJ2YWxpZEJlZm9yZSI6IG9iai5nZXQoInZhbGlkQmVmb3JlIiksCiAgICAgICAgICAgICJ2YWxpZEFmdGVyIjogb2JqLmdldCgidmFsaWRBZnRlciIpLAogICAgICAgICAgICAiYWN0aW9uIjogb2JqLmdldCgiYWN0aW9uIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_pre_screening_action.py b/fireblocks/models/tr_link_pre_screening_action.py index d21bce9d..2071511f 100644 --- a/fireblocks/models/tr_link_pre_screening_action.py +++ b/fireblocks/models/tr_link_pre_screening_action.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TRLinkPreScreeningAction(str, Enum): - """ - TRLink pre-screening action - """ - - """ - allowed enum values - """ - SCREEN = 'SCREEN' - PASS = 'PASS' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TRLinkPreScreeningAction from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUUkxpbmtQcmVTY3JlZW5pbmdBY3Rpb24oc3RyLCBFbnVtKToKICAgICIiIgogICAgVFJMaW5rIHByZS1zY3JlZW5pbmcgYWN0aW9uCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgU0NSRUVOID0gJ1NDUkVFTicKICAgIFBBU1MgPSAnUEFTUycKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtQcmVTY3JlZW5pbmdBY3Rpb24gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_pre_screening_action2.py b/fireblocks/models/tr_link_pre_screening_action2.py index 2cc051c0..b388f4b7 100644 --- a/fireblocks/models/tr_link_pre_screening_action2.py +++ b/fireblocks/models/tr_link_pre_screening_action2.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TRLinkPreScreeningAction2(str, Enum): - """ - TRLinkPreScreeningAction2 - """ - - """ - allowed enum values - """ - SCREEN = 'SCREEN' - PASS = 'PASS' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TRLinkPreScreeningAction2 from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUUkxpbmtQcmVTY3JlZW5pbmdBY3Rpb24yKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIFRSTGlua1ByZVNjcmVlbmluZ0FjdGlvbjIKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBTQ1JFRU4gPSAnU0NSRUVOJwogICAgUEFTUyA9ICdQQVNTJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1ByZVNjcmVlbmluZ0FjdGlvbjIgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_pre_screening_action_enum.py b/fireblocks/models/tr_link_pre_screening_action_enum.py index 7dd99109..daf9182b 100644 --- a/fireblocks/models/tr_link_pre_screening_action_enum.py +++ b/fireblocks/models/tr_link_pre_screening_action_enum.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TRLinkPreScreeningActionEnum(str, Enum): - """ - TRLink pre-screening action - """ - - """ - allowed enum values - """ - SCREEN = 'SCREEN' - PASS = 'PASS' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TRLinkPreScreeningActionEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUUkxpbmtQcmVTY3JlZW5pbmdBY3Rpb25FbnVtKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIFRSTGluayBwcmUtc2NyZWVuaW5nIGFjdGlvbgogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIFNDUkVFTiA9ICdTQ1JFRU4nCiAgICBQQVNTID0gJ1BBU1MnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUHJlU2NyZWVuaW5nQWN0aW9uRW51bSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_pre_screening_rule.py b/fireblocks/models/tr_link_pre_screening_rule.py index 9294ef0d..fd840b21 100644 --- a/fireblocks/models/tr_link_pre_screening_rule.py +++ b/fireblocks/models/tr_link_pre_screening_rule.py @@ -1,131 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tr_link_amount import TRLinkAmount -from fireblocks.models.tr_link_pre_screening_action import TRLinkPreScreeningAction -from fireblocks.models.transaction_direction import TransactionDirection -from fireblocks.models.transaction_operation_enum import TransactionOperationEnum -from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum -from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkPreScreeningRule(BaseModel): - """ - TRLink pre-screening rule definition - """ # noqa: E501 - customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TrlinkCustomer.id", alias="customerId") - direction: Optional[TransactionDirection] = None - source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType") - source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType") - source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress") - dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType") - dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType") - dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress") - source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId") - dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId") - asset: Optional[StrictStr] = Field(default=None, description="Asset symbol") - base_asset: Optional[StrictStr] = Field(default=None, description="Base asset symbol", alias="baseAsset") - amount: Optional[TRLinkAmount] = None - network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol") - operation: Optional[TransactionOperationEnum] = None - description: Optional[StrictStr] = Field(default=None, description="Rule description") - is_default: Optional[StrictBool] = Field(default=False, description="Whether this is a default rule", alias="isDefault") - action: TRLinkPreScreeningAction - __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault", "action"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkPreScreeningRule from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkPreScreeningRule from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "customerId": obj.get("customerId"), - "direction": obj.get("direction"), - "sourceType": obj.get("sourceType"), - "sourceSubType": obj.get("sourceSubType"), - "sourceAddress": obj.get("sourceAddress"), - "destType": obj.get("destType"), - "destSubType": obj.get("destSubType"), - "destAddress": obj.get("destAddress"), - "sourceId": obj.get("sourceId"), - "destId": obj.get("destId"), - "asset": obj.get("asset"), - "baseAsset": obj.get("baseAsset"), - "amount": TRLinkAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "networkProtocol": obj.get("networkProtocol"), - "operation": obj.get("operation"), - "description": obj.get("description"), - "isDefault": obj.get("isDefault") if obj.get("isDefault") is not None else False, - "action": obj.get("action") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYW1vdW50IGltcG9ydCBUUkxpbmtBbW91bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3ByZV9zY3JlZW5pbmdfYWN0aW9uIGltcG9ydCBUUkxpbmtQcmVTY3JlZW5pbmdBY3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9kaXJlY3Rpb24gaW1wb3J0IFRyYW5zYWN0aW9uRGlyZWN0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fb3BlcmF0aW9uX2VudW0gaW1wb3J0IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3BlZXJfc3ViX3R5cGVfZW51bSBpbXBvcnQgVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9wZWVyX3R5cGVfZW51bSBpbXBvcnQgVHJhbnNmZXJQZWVyVHlwZUVudW0KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVFJMaW5rUHJlU2NyZWVuaW5nUnVsZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUUkxpbmsgcHJlLXNjcmVlbmluZyBydWxlIGRlZmluaXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGN1c3RvbWVyX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUmVmZXJlbmNlIHRvIFRybGlua0N1c3RvbWVyLmlkIiwgYWxpYXM9ImN1c3RvbWVySWQiKQogICAgZGlyZWN0aW9uOiBPcHRpb25hbFtUcmFuc2FjdGlvbkRpcmVjdGlvbl0gPSBOb25lCiAgICBzb3VyY2VfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ic291cmNlVHlwZSIpCiAgICBzb3VyY2Vfc3ViX3R5cGU6IE9wdGlvbmFsW1RyYW5zZmVyUGVlclN1YlR5cGVFbnVtXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InNvdXJjZVN1YlR5cGUiKQogICAgc291cmNlX2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgYWRkcmVzcyIsIGFsaWFzPSJzb3VyY2VBZGRyZXNzIikKICAgIGRlc3RfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZGVzdFR5cGUiKQogICAgZGVzdF9zdWJfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyU3ViVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZGVzdFN1YlR5cGUiKQogICAgZGVzdF9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVzdGluYXRpb24gYWRkcmVzcyIsIGFsaWFzPSJkZXN0QWRkcmVzcyIpCiAgICBzb3VyY2VfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgSUQiLCBhbGlhcz0ic291cmNlSWQiKQogICAgZGVzdF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRlc3RpbmF0aW9uIElEIiwgYWxpYXM9ImRlc3RJZCIpCiAgICBhc3NldDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFzc2V0IHN5bWJvbCIpCiAgICBiYXNlX2Fzc2V0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQmFzZSBhc3NldCBzeW1ib2wiLCBhbGlhcz0iYmFzZUFzc2V0IikKICAgIGFtb3VudDogT3B0aW9uYWxbVFJMaW5rQW1vdW50XSA9IE5vbmUKICAgIG5ldHdvcmtfcHJvdG9jb2w6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOZXR3b3JrIHByb3RvY29sIiwgYWxpYXM9Im5ldHdvcmtQcm90b2NvbCIpCiAgICBvcGVyYXRpb246IE9wdGlvbmFsW1RyYW5zYWN0aW9uT3BlcmF0aW9uRW51bV0gPSBOb25lCiAgICBkZXNjcmlwdGlvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlJ1bGUgZGVzY3JpcHRpb24iKQogICAgaXNfZGVmYXVsdDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PUZhbHNlLCBkZXNjcmlwdGlvbj0iV2hldGhlciB0aGlzIGlzIGEgZGVmYXVsdCBydWxlIiwgYWxpYXM9ImlzRGVmYXVsdCIpCiAgICBhY3Rpb246IFRSTGlua1ByZVNjcmVlbmluZ0FjdGlvbgogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJjdXN0b21lcklkIiwgImRpcmVjdGlvbiIsICJzb3VyY2VUeXBlIiwgInNvdXJjZVN1YlR5cGUiLCAic291cmNlQWRkcmVzcyIsICJkZXN0VHlwZSIsICJkZXN0U3ViVHlwZSIsICJkZXN0QWRkcmVzcyIsICJzb3VyY2VJZCIsICJkZXN0SWQiLCAiYXNzZXQiLCAiYmFzZUFzc2V0IiwgImFtb3VudCIsICJuZXR3b3JrUHJvdG9jb2wiLCAib3BlcmF0aW9uIiwgImRlc2NyaXB0aW9uIiwgImlzRGVmYXVsdCIsICJhY3Rpb24iXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1ByZVNjcmVlbmluZ1J1bGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhbW91bnQKICAgICAgICBpZiBzZWxmLmFtb3VudDoKICAgICAgICAgICAgX2RpY3RbJ2Ftb3VudCddID0gc2VsZi5hbW91bnQudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtQcmVTY3JlZW5pbmdSdWxlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImN1c3RvbWVySWQiOiBvYmouZ2V0KCJjdXN0b21lcklkIiksCiAgICAgICAgICAgICJkaXJlY3Rpb24iOiBvYmouZ2V0KCJkaXJlY3Rpb24iKSwKICAgICAgICAgICAgInNvdXJjZVR5cGUiOiBvYmouZ2V0KCJzb3VyY2VUeXBlIiksCiAgICAgICAgICAgICJzb3VyY2VTdWJUeXBlIjogb2JqLmdldCgic291cmNlU3ViVHlwZSIpLAogICAgICAgICAgICAic291cmNlQWRkcmVzcyI6IG9iai5nZXQoInNvdXJjZUFkZHJlc3MiKSwKICAgICAgICAgICAgImRlc3RUeXBlIjogb2JqLmdldCgiZGVzdFR5cGUiKSwKICAgICAgICAgICAgImRlc3RTdWJUeXBlIjogb2JqLmdldCgiZGVzdFN1YlR5cGUiKSwKICAgICAgICAgICAgImRlc3RBZGRyZXNzIjogb2JqLmdldCgiZGVzdEFkZHJlc3MiKSwKICAgICAgICAgICAgInNvdXJjZUlkIjogb2JqLmdldCgic291cmNlSWQiKSwKICAgICAgICAgICAgImRlc3RJZCI6IG9iai5nZXQoImRlc3RJZCIpLAogICAgICAgICAgICAiYXNzZXQiOiBvYmouZ2V0KCJhc3NldCIpLAogICAgICAgICAgICAiYmFzZUFzc2V0Ijogb2JqLmdldCgiYmFzZUFzc2V0IiksCiAgICAgICAgICAgICJhbW91bnQiOiBUUkxpbmtBbW91bnQuZnJvbV9kaWN0KG9ialsiYW1vdW50Il0pIGlmIG9iai5nZXQoImFtb3VudCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm5ldHdvcmtQcm90b2NvbCI6IG9iai5nZXQoIm5ldHdvcmtQcm90b2NvbCIpLAogICAgICAgICAgICAib3BlcmF0aW9uIjogb2JqLmdldCgib3BlcmF0aW9uIiksCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IG9iai5nZXQoImRlc2NyaXB0aW9uIiksCiAgICAgICAgICAgICJpc0RlZmF1bHQiOiBvYmouZ2V0KCJpc0RlZmF1bHQiKSBpZiBvYmouZ2V0KCJpc0RlZmF1bHQiKSBpcyBub3QgTm9uZSBlbHNlIEZhbHNlLAogICAgICAgICAgICAiYWN0aW9uIjogb2JqLmdldCgiYWN0aW9uIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_pre_screening_rule2.py b/fireblocks/models/tr_link_pre_screening_rule2.py index affb21e2..bedce770 100644 --- a/fireblocks/models/tr_link_pre_screening_rule2.py +++ b/fireblocks/models/tr_link_pre_screening_rule2.py @@ -1,203 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tr_link_amount2 import TRLinkAmount2 -from fireblocks.models.tr_link_pre_screening_action2 import TRLinkPreScreeningAction2 -from fireblocks.models.tr_link_transaction_direction import TRLinkTransactionDirection -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkPreScreeningRule2(BaseModel): - """ - Pre-screening rule that determines if a transaction should be screened - """ # noqa: E501 - customer_id: Optional[StrictStr] = Field(default=None, description="Customer identifier", alias="customerId") - direction: Optional[TRLinkTransactionDirection] = None - source_type: Optional[StrictStr] = Field(default=None, description="Source entity type", alias="sourceType") - source_sub_type: Optional[StrictStr] = Field(default=None, description="Source entity subtype", alias="sourceSubType") - source_address: Optional[StrictStr] = Field(default=None, description="Source blockchain address", alias="sourceAddress") - dest_type: Optional[StrictStr] = Field(default=None, description="Destination entity type", alias="destType") - dest_sub_type: Optional[StrictStr] = Field(default=None, description="Destination entity subtype", alias="destSubType") - dest_address: Optional[StrictStr] = Field(default=None, description="Destination blockchain address", alias="destAddress") - source_id: Optional[StrictStr] = Field(default=None, description="Source identifier", alias="sourceId") - dest_id: Optional[StrictStr] = Field(default=None, description="Destination identifier", alias="destId") - asset: Optional[StrictStr] = Field(default=None, description="Asset or cryptocurrency type") - base_asset: Optional[StrictStr] = Field(default=None, description="Base asset for derivatives", alias="baseAsset") - amount: Optional[TRLinkAmount2] = None - network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol identifier", alias="networkProtocol") - operation: Optional[StrictStr] = Field(default=None, description="Operation type") - description: Optional[StrictStr] = Field(default=None, description="Rule description") - is_default: Optional[StrictBool] = Field(default=None, description="Whether this is a default rule", alias="isDefault") - action: TRLinkPreScreeningAction2 - __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault", "action"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkPreScreeningRule2 from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - # set to None if customer_id (nullable) is None - # and model_fields_set contains the field - if self.customer_id is None and "customer_id" in self.model_fields_set: - _dict['customerId'] = None - - # set to None if source_type (nullable) is None - # and model_fields_set contains the field - if self.source_type is None and "source_type" in self.model_fields_set: - _dict['sourceType'] = None - - # set to None if source_sub_type (nullable) is None - # and model_fields_set contains the field - if self.source_sub_type is None and "source_sub_type" in self.model_fields_set: - _dict['sourceSubType'] = None - - # set to None if source_address (nullable) is None - # and model_fields_set contains the field - if self.source_address is None and "source_address" in self.model_fields_set: - _dict['sourceAddress'] = None - - # set to None if dest_type (nullable) is None - # and model_fields_set contains the field - if self.dest_type is None and "dest_type" in self.model_fields_set: - _dict['destType'] = None - - # set to None if dest_sub_type (nullable) is None - # and model_fields_set contains the field - if self.dest_sub_type is None and "dest_sub_type" in self.model_fields_set: - _dict['destSubType'] = None - - # set to None if dest_address (nullable) is None - # and model_fields_set contains the field - if self.dest_address is None and "dest_address" in self.model_fields_set: - _dict['destAddress'] = None - - # set to None if source_id (nullable) is None - # and model_fields_set contains the field - if self.source_id is None and "source_id" in self.model_fields_set: - _dict['sourceId'] = None - - # set to None if dest_id (nullable) is None - # and model_fields_set contains the field - if self.dest_id is None and "dest_id" in self.model_fields_set: - _dict['destId'] = None - - # set to None if asset (nullable) is None - # and model_fields_set contains the field - if self.asset is None and "asset" in self.model_fields_set: - _dict['asset'] = None - - # set to None if base_asset (nullable) is None - # and model_fields_set contains the field - if self.base_asset is None and "base_asset" in self.model_fields_set: - _dict['baseAsset'] = None - - # set to None if network_protocol (nullable) is None - # and model_fields_set contains the field - if self.network_protocol is None and "network_protocol" in self.model_fields_set: - _dict['networkProtocol'] = None - - # set to None if operation (nullable) is None - # and model_fields_set contains the field - if self.operation is None and "operation" in self.model_fields_set: - _dict['operation'] = None - - # set to None if description (nullable) is None - # and model_fields_set contains the field - if self.description is None and "description" in self.model_fields_set: - _dict['description'] = None - - # set to None if is_default (nullable) is None - # and model_fields_set contains the field - if self.is_default is None and "is_default" in self.model_fields_set: - _dict['isDefault'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkPreScreeningRule2 from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "customerId": obj.get("customerId"), - "direction": obj.get("direction"), - "sourceType": obj.get("sourceType"), - "sourceSubType": obj.get("sourceSubType"), - "sourceAddress": obj.get("sourceAddress"), - "destType": obj.get("destType"), - "destSubType": obj.get("destSubType"), - "destAddress": obj.get("destAddress"), - "sourceId": obj.get("sourceId"), - "destId": obj.get("destId"), - "asset": obj.get("asset"), - "baseAsset": obj.get("baseAsset"), - "amount": TRLinkAmount2.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "networkProtocol": obj.get("networkProtocol"), - "operation": obj.get("operation"), - "description": obj.get("description"), - "isDefault": obj.get("isDefault"), - "action": obj.get("action") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYW1vdW50MiBpbXBvcnQgVFJMaW5rQW1vdW50Mgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJlX3NjcmVlbmluZ19hY3Rpb24yIGltcG9ydCBUUkxpbmtQcmVTY3JlZW5pbmdBY3Rpb24yCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua190cmFuc2FjdGlvbl9kaXJlY3Rpb24gaW1wb3J0IFRSTGlua1RyYW5zYWN0aW9uRGlyZWN0aW9uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRSTGlua1ByZVNjcmVlbmluZ1J1bGUyKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFByZS1zY3JlZW5pbmcgcnVsZSB0aGF0IGRldGVybWluZXMgaWYgYSB0cmFuc2FjdGlvbiBzaG91bGQgYmUgc2NyZWVuZWQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGN1c3RvbWVyX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3VzdG9tZXIgaWRlbnRpZmllciIsIGFsaWFzPSJjdXN0b21lcklkIikKICAgIGRpcmVjdGlvbjogT3B0aW9uYWxbVFJMaW5rVHJhbnNhY3Rpb25EaXJlY3Rpb25dID0gTm9uZQogICAgc291cmNlX3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgZW50aXR5IHR5cGUiLCBhbGlhcz0ic291cmNlVHlwZSIpCiAgICBzb3VyY2Vfc3ViX3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgZW50aXR5IHN1YnR5cGUiLCBhbGlhcz0ic291cmNlU3ViVHlwZSIpCiAgICBzb3VyY2VfYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNvdXJjZSBibG9ja2NoYWluIGFkZHJlc3MiLCBhbGlhcz0ic291cmNlQWRkcmVzcyIpCiAgICBkZXN0X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiBlbnRpdHkgdHlwZSIsIGFsaWFzPSJkZXN0VHlwZSIpCiAgICBkZXN0X3N1Yl90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVzdGluYXRpb24gZW50aXR5IHN1YnR5cGUiLCBhbGlhcz0iZGVzdFN1YlR5cGUiKQogICAgZGVzdF9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVzdGluYXRpb24gYmxvY2tjaGFpbiBhZGRyZXNzIiwgYWxpYXM9ImRlc3RBZGRyZXNzIikKICAgIHNvdXJjZV9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNvdXJjZSBpZGVudGlmaWVyIiwgYWxpYXM9InNvdXJjZUlkIikKICAgIGRlc3RfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiBpZGVudGlmaWVyIiwgYWxpYXM9ImRlc3RJZCIpCiAgICBhc3NldDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFzc2V0IG9yIGNyeXB0b2N1cnJlbmN5IHR5cGUiKQogICAgYmFzZV9hc3NldDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkJhc2UgYXNzZXQgZm9yIGRlcml2YXRpdmVzIiwgYWxpYXM9ImJhc2VBc3NldCIpCiAgICBhbW91bnQ6IE9wdGlvbmFsW1RSTGlua0Ftb3VudDJdID0gTm9uZQogICAgbmV0d29ya19wcm90b2NvbDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik5ldHdvcmsgcHJvdG9jb2wgaWRlbnRpZmllciIsIGFsaWFzPSJuZXR3b3JrUHJvdG9jb2wiKQogICAgb3BlcmF0aW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iT3BlcmF0aW9uIHR5cGUiKQogICAgZGVzY3JpcHRpb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSdWxlIGRlc2NyaXB0aW9uIikKICAgIGlzX2RlZmF1bHQ6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iV2hldGhlciB0aGlzIGlzIGEgZGVmYXVsdCBydWxlIiwgYWxpYXM9ImlzRGVmYXVsdCIpCiAgICBhY3Rpb246IFRSTGlua1ByZVNjcmVlbmluZ0FjdGlvbjIKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiY3VzdG9tZXJJZCIsICJkaXJlY3Rpb24iLCAic291cmNlVHlwZSIsICJzb3VyY2VTdWJUeXBlIiwgInNvdXJjZUFkZHJlc3MiLCAiZGVzdFR5cGUiLCAiZGVzdFN1YlR5cGUiLCAiZGVzdEFkZHJlc3MiLCAic291cmNlSWQiLCAiZGVzdElkIiwgImFzc2V0IiwgImJhc2VBc3NldCIsICJhbW91bnQiLCAibmV0d29ya1Byb3RvY29sIiwgIm9wZXJhdGlvbiIsICJkZXNjcmlwdGlvbiIsICJpc0RlZmF1bHQiLCAiYWN0aW9uIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtQcmVTY3JlZW5pbmdSdWxlMiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFtb3VudAogICAgICAgIGlmIHNlbGYuYW1vdW50OgogICAgICAgICAgICBfZGljdFsnYW1vdW50J10gPSBzZWxmLmFtb3VudC50b19kaWN0KCkKICAgICAgICAjIHNldCB0byBOb25lIGlmIGN1c3RvbWVyX2lkIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5jdXN0b21lcl9pZCBpcyBOb25lIGFuZCAiY3VzdG9tZXJfaWQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2N1c3RvbWVySWQnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBzb3VyY2VfdHlwZSAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuc291cmNlX3R5cGUgaXMgTm9uZSBhbmQgInNvdXJjZV90eXBlIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wydzb3VyY2VUeXBlJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgc291cmNlX3N1Yl90eXBlIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5zb3VyY2Vfc3ViX3R5cGUgaXMgTm9uZSBhbmQgInNvdXJjZV9zdWJfdHlwZSIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnc291cmNlU3ViVHlwZSddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIHNvdXJjZV9hZGRyZXNzIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5zb3VyY2VfYWRkcmVzcyBpcyBOb25lIGFuZCAic291cmNlX2FkZHJlc3MiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3NvdXJjZUFkZHJlc3MnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBkZXN0X3R5cGUgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmRlc3RfdHlwZSBpcyBOb25lIGFuZCAiZGVzdF90eXBlIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydkZXN0VHlwZSddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGRlc3Rfc3ViX3R5cGUgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmRlc3Rfc3ViX3R5cGUgaXMgTm9uZSBhbmQgImRlc3Rfc3ViX3R5cGUiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2Rlc3RTdWJUeXBlJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgZGVzdF9hZGRyZXNzIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5kZXN0X2FkZHJlc3MgaXMgTm9uZSBhbmQgImRlc3RfYWRkcmVzcyIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnZGVzdEFkZHJlc3MnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBzb3VyY2VfaWQgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnNvdXJjZV9pZCBpcyBOb25lIGFuZCAic291cmNlX2lkIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wydzb3VyY2VJZCddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGRlc3RfaWQgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmRlc3RfaWQgaXMgTm9uZSBhbmQgImRlc3RfaWQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2Rlc3RJZCddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGFzc2V0IChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5hc3NldCBpcyBOb25lIGFuZCAiYXNzZXQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2Fzc2V0J10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgYmFzZV9hc3NldCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuYmFzZV9hc3NldCBpcyBOb25lIGFuZCAiYmFzZV9hc3NldCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnYmFzZUFzc2V0J10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgbmV0d29ya19wcm90b2NvbCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYubmV0d29ya19wcm90b2NvbCBpcyBOb25lIGFuZCAibmV0d29ya19wcm90b2NvbCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnbmV0d29ya1Byb3RvY29sJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgb3BlcmF0aW9uIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5vcGVyYXRpb24gaXMgTm9uZSBhbmQgIm9wZXJhdGlvbiIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnb3BlcmF0aW9uJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgZGVzY3JpcHRpb24gKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmRlc2NyaXB0aW9uIGlzIE5vbmUgYW5kICJkZXNjcmlwdGlvbiIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnZGVzY3JpcHRpb24nXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBpc19kZWZhdWx0IChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5pc19kZWZhdWx0IGlzIE5vbmUgYW5kICJpc19kZWZhdWx0IiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wydpc0RlZmF1bHQnXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtQcmVTY3JlZW5pbmdSdWxlMiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJjdXN0b21lcklkIjogb2JqLmdldCgiY3VzdG9tZXJJZCIpLAogICAgICAgICAgICAiZGlyZWN0aW9uIjogb2JqLmdldCgiZGlyZWN0aW9uIiksCiAgICAgICAgICAgICJzb3VyY2VUeXBlIjogb2JqLmdldCgic291cmNlVHlwZSIpLAogICAgICAgICAgICAic291cmNlU3ViVHlwZSI6IG9iai5nZXQoInNvdXJjZVN1YlR5cGUiKSwKICAgICAgICAgICAgInNvdXJjZUFkZHJlc3MiOiBvYmouZ2V0KCJzb3VyY2VBZGRyZXNzIiksCiAgICAgICAgICAgICJkZXN0VHlwZSI6IG9iai5nZXQoImRlc3RUeXBlIiksCiAgICAgICAgICAgICJkZXN0U3ViVHlwZSI6IG9iai5nZXQoImRlc3RTdWJUeXBlIiksCiAgICAgICAgICAgICJkZXN0QWRkcmVzcyI6IG9iai5nZXQoImRlc3RBZGRyZXNzIiksCiAgICAgICAgICAgICJzb3VyY2VJZCI6IG9iai5nZXQoInNvdXJjZUlkIiksCiAgICAgICAgICAgICJkZXN0SWQiOiBvYmouZ2V0KCJkZXN0SWQiKSwKICAgICAgICAgICAgImFzc2V0Ijogb2JqLmdldCgiYXNzZXQiKSwKICAgICAgICAgICAgImJhc2VBc3NldCI6IG9iai5nZXQoImJhc2VBc3NldCIpLAogICAgICAgICAgICAiYW1vdW50IjogVFJMaW5rQW1vdW50Mi5mcm9tX2RpY3Qob2JqWyJhbW91bnQiXSkgaWYgb2JqLmdldCgiYW1vdW50IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibmV0d29ya1Byb3RvY29sIjogb2JqLmdldCgibmV0d29ya1Byb3RvY29sIiksCiAgICAgICAgICAgICJvcGVyYXRpb24iOiBvYmouZ2V0KCJvcGVyYXRpb24iKSwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogb2JqLmdldCgiZGVzY3JpcHRpb24iKSwKICAgICAgICAgICAgImlzRGVmYXVsdCI6IG9iai5nZXQoImlzRGVmYXVsdCIpLAogICAgICAgICAgICAiYWN0aW9uIjogb2JqLmdldCgiYWN0aW9uIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_provider_data.py b/fireblocks/models/tr_link_provider_data.py index 6777cef7..17497fd2 100644 --- a/fireblocks/models/tr_link_provider_data.py +++ b/fireblocks/models/tr_link_provider_data.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkProviderData(BaseModel): - """ - TRLinkProviderData - """ # noqa: E501 - provider: Optional[StrictStr] = Field(default=None, description="Provider name") - data: Optional[Dict[str, Any]] = Field(default=None, description="Provider-specific data") - __properties: ClassVar[List[str]] = ["provider", "data"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkProviderData from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if provider (nullable) is None - # and model_fields_set contains the field - if self.provider is None and "provider" in self.model_fields_set: - _dict['provider'] = None - - # set to None if data (nullable) is None - # and model_fields_set contains the field - if self.data is None and "data" in self.model_fields_set: - _dict['data'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkProviderData from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "provider": obj.get("provider"), - "data": obj.get("data") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtQcm92aWRlckRhdGEoQmFzZU1vZGVsKToKICAgICIiIgogICAgVFJMaW5rUHJvdmlkZXJEYXRhCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBwcm92aWRlcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlByb3ZpZGVyIG5hbWUiKQogICAgZGF0YTogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUHJvdmlkZXItc3BlY2lmaWMgZGF0YSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInByb3ZpZGVyIiwgImRhdGEiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1Byb3ZpZGVyRGF0YSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBwcm92aWRlciAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYucHJvdmlkZXIgaXMgTm9uZSBhbmQgInByb3ZpZGVyIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wydwcm92aWRlciddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGRhdGEgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmRhdGEgaXMgTm9uZSBhbmQgImRhdGEiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2RhdGEnXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtQcm92aWRlckRhdGEgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicHJvdmlkZXIiOiBvYmouZ2V0KCJwcm92aWRlciIpLAogICAgICAgICAgICAiZGF0YSI6IG9iai5nZXQoImRhdGEiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_provider_result.py b/fireblocks/models/tr_link_provider_result.py index b7855282..3b9ae181 100644 --- a/fireblocks/models/tr_link_provider_result.py +++ b/fireblocks/models/tr_link_provider_result.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkProviderResult(BaseModel): - """ - Provider-specific response data wrapper - """ # noqa: E501 - provider_response: Optional[Dict[str, Any]] = Field(default=None, description="Raw provider response", alias="providerResponse") - __properties: ClassVar[List[str]] = ["providerResponse"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkProviderResult from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkProviderResult from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "providerResponse": obj.get("providerResponse") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVFJMaW5rUHJvdmlkZXJSZXN1bHQoQmFzZU1vZGVsKToKICAgICIiIgogICAgUHJvdmlkZXItc3BlY2lmaWMgcmVzcG9uc2UgZGF0YSB3cmFwcGVyCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBwcm92aWRlcl9yZXNwb25zZTogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUmF3IHByb3ZpZGVyIHJlc3BvbnNlIiwgYWxpYXM9InByb3ZpZGVyUmVzcG9uc2UiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJwcm92aWRlclJlc3BvbnNlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtQcm92aWRlclJlc3VsdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtQcm92aWRlclJlc3VsdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJwcm92aWRlclJlc3BvbnNlIjogb2JqLmdldCgicHJvdmlkZXJSZXNwb25zZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_provider_result_with_rule.py b/fireblocks/models/tr_link_provider_result_with_rule.py index 7dcdb0ee..4134be92 100644 --- a/fireblocks/models/tr_link_provider_result_with_rule.py +++ b/fireblocks/models/tr_link_provider_result_with_rule.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tr_link_post_screening_rule import TRLinkPostScreeningRule -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkProviderResultWithRule(BaseModel): - """ - Provider response and matched rule wrapper for TRLink screening results - """ # noqa: E501 - provider_response: Optional[Dict[str, Any]] = Field(default=None, description="Raw provider response", alias="providerResponse") - matched_rule: Optional[TRLinkPostScreeningRule] = Field(default=None, alias="matchedRule") - __properties: ClassVar[List[str]] = ["providerResponse", "matchedRule"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkProviderResultWithRule from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of matched_rule - if self.matched_rule: - _dict['matchedRule'] = self.matched_rule.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkProviderResultWithRule from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "providerResponse": obj.get("providerResponse"), - "matchedRule": TRLinkPostScreeningRule.from_dict(obj["matchedRule"]) if obj.get("matchedRule") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3Bvc3Rfc2NyZWVuaW5nX3J1bGUgaW1wb3J0IFRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRSTGlua1Byb3ZpZGVyUmVzdWx0V2l0aFJ1bGUoQmFzZU1vZGVsKToKICAgICIiIgogICAgUHJvdmlkZXIgcmVzcG9uc2UgYW5kIG1hdGNoZWQgcnVsZSB3cmFwcGVyIGZvciBUUkxpbmsgc2NyZWVuaW5nIHJlc3VsdHMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHByb3ZpZGVyX3Jlc3BvbnNlOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSYXcgcHJvdmlkZXIgcmVzcG9uc2UiLCBhbGlhcz0icHJvdmlkZXJSZXNwb25zZSIpCiAgICBtYXRjaGVkX3J1bGU6IE9wdGlvbmFsW1RSTGlua1Bvc3RTY3JlZW5pbmdSdWxlXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im1hdGNoZWRSdWxlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicHJvdmlkZXJSZXNwb25zZSIsICJtYXRjaGVkUnVsZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG1hdGNoZWRfcnVsZQogICAgICAgIGlmIHNlbGYubWF0Y2hlZF9ydWxlOgogICAgICAgICAgICBfZGljdFsnbWF0Y2hlZFJ1bGUnXSA9IHNlbGYubWF0Y2hlZF9ydWxlLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJwcm92aWRlclJlc3BvbnNlIjogb2JqLmdldCgicHJvdmlkZXJSZXNwb25zZSIpLAogICAgICAgICAgICAibWF0Y2hlZFJ1bGUiOiBUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZS5mcm9tX2RpY3Qob2JqWyJtYXRjaGVkUnVsZSJdKSBpZiBvYmouZ2V0KCJtYXRjaGVkUnVsZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_provider_result_with_rule2.py b/fireblocks/models/tr_link_provider_result_with_rule2.py index 2ff2059c..4c9189b4 100644 --- a/fireblocks/models/tr_link_provider_result_with_rule2.py +++ b/fireblocks/models/tr_link_provider_result_with_rule2.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.screening_tr_link_post_screening_rule import ScreeningTRLinkPostScreeningRule -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkProviderResultWithRule2(BaseModel): - """ - Provider response and matched rule wrapper for TRLink screening results - """ # noqa: E501 - provider_response: Optional[Dict[str, Any]] = Field(default=None, description="Raw provider response", alias="providerResponse") - matched_rule: Optional[ScreeningTRLinkPostScreeningRule] = Field(default=None, alias="matchedRule") - __properties: ClassVar[List[str]] = ["providerResponse", "matchedRule"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkProviderResultWithRule2 from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of matched_rule - if self.matched_rule: - _dict['matchedRule'] = self.matched_rule.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkProviderResultWithRule2 from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "providerResponse": obj.get("providerResponse"), - "matchedRule": ScreeningTRLinkPostScreeningRule.from_dict(obj["matchedRule"]) if obj.get("matchedRule") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdHJfbGlua19wb3N0X3NjcmVlbmluZ19ydWxlIGltcG9ydCBTY3JlZW5pbmdUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtQcm92aWRlclJlc3VsdFdpdGhSdWxlMihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBQcm92aWRlciByZXNwb25zZSBhbmQgbWF0Y2hlZCBydWxlIHdyYXBwZXIgZm9yIFRSTGluayBzY3JlZW5pbmcgcmVzdWx0cwogICAgIiIiICMgbm9xYTogRTUwMQogICAgcHJvdmlkZXJfcmVzcG9uc2U6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlJhdyBwcm92aWRlciByZXNwb25zZSIsIGFsaWFzPSJwcm92aWRlclJlc3BvbnNlIikKICAgIG1hdGNoZWRfcnVsZTogT3B0aW9uYWxbU2NyZWVuaW5nVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGVdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ibWF0Y2hlZFJ1bGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJwcm92aWRlclJlc3BvbnNlIiwgIm1hdGNoZWRSdWxlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtQcm92aWRlclJlc3VsdFdpdGhSdWxlMiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG1hdGNoZWRfcnVsZQogICAgICAgIGlmIHNlbGYubWF0Y2hlZF9ydWxlOgogICAgICAgICAgICBfZGljdFsnbWF0Y2hlZFJ1bGUnXSA9IHNlbGYubWF0Y2hlZF9ydWxlLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZTIgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicHJvdmlkZXJSZXNwb25zZSI6IG9iai5nZXQoInByb3ZpZGVyUmVzcG9uc2UiKSwKICAgICAgICAgICAgIm1hdGNoZWRSdWxlIjogU2NyZWVuaW5nVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUuZnJvbV9kaWN0KG9ialsibWF0Y2hlZFJ1bGUiXSkgaWYgb2JqLmdldCgibWF0Y2hlZFJ1bGUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_public_asset_info.py b/fireblocks/models/tr_link_public_asset_info.py index a58aaa17..55ecae5e 100644 --- a/fireblocks/models/tr_link_public_asset_info.py +++ b/fireblocks/models/tr_link_public_asset_info.py @@ -1,105 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkPublicAssetInfo(BaseModel): - """ - Public asset information with limited properties for API consumption - """ # noqa: E501 - id: StrictStr = Field(description="The unique ID of the asset (e.g., Fireblocks asset ID)") - name: StrictStr = Field(description="The name of the asset") - type: StrictStr = Field(description="The type of the asset (e.g., BASE_ASSET, ERC20)") - contract_address: StrictStr = Field(description="The contract address of the asset (for tokenized assets)", alias="contractAddress") - native_asset: StrictStr = Field(description="The native asset of the network (e.g., ETH for ERC20 tokens)", alias="nativeAsset") - decimals: Union[StrictFloat, StrictInt] = Field(description="The number of decimal places for the asset") - issuer_address: Optional[StrictStr] = Field(default=None, description="The issuer address of the asset (optional)", alias="issuerAddress") - __properties: ClassVar[List[str]] = ["id", "name", "type", "contractAddress", "nativeAsset", "decimals", "issuerAddress"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkPublicAssetInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if issuer_address (nullable) is None - # and model_fields_set contains the field - if self.issuer_address is None and "issuer_address" in self.model_fields_set: - _dict['issuerAddress'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkPublicAssetInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name"), - "type": obj.get("type"), - "contractAddress": obj.get("contractAddress"), - "nativeAsset": obj.get("nativeAsset"), - "decimals": obj.get("decimals"), - "issuerAddress": obj.get("issuerAddress") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVFJMaW5rUHVibGljQXNzZXRJbmZvKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFB1YmxpYyBhc3NldCBpbmZvcm1hdGlvbiB3aXRoIGxpbWl0ZWQgcHJvcGVydGllcyBmb3IgQVBJIGNvbnN1bXB0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB1bmlxdWUgSUQgb2YgdGhlIGFzc2V0IChlLmcuLCBGaXJlYmxvY2tzIGFzc2V0IElEKSIpCiAgICBuYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIG5hbWUgb2YgdGhlIGFzc2V0IikKICAgIHR5cGU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdHlwZSBvZiB0aGUgYXNzZXQgKGUuZy4sIEJBU0VfQVNTRVQsIEVSQzIwKSIpCiAgICBjb250cmFjdF9hZGRyZXNzOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNvbnRyYWN0IGFkZHJlc3Mgb2YgdGhlIGFzc2V0IChmb3IgdG9rZW5pemVkIGFzc2V0cykiLCBhbGlhcz0iY29udHJhY3RBZGRyZXNzIikKICAgIG5hdGl2ZV9hc3NldDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBuYXRpdmUgYXNzZXQgb2YgdGhlIG5ldHdvcmsgKGUuZy4sIEVUSCBmb3IgRVJDMjAgdG9rZW5zKSIsIGFsaWFzPSJuYXRpdmVBc3NldCIpCiAgICBkZWNpbWFsczogVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyBmb3IgdGhlIGFzc2V0IikKICAgIGlzc3Vlcl9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGlzc3VlciBhZGRyZXNzIG9mIHRoZSBhc3NldCAob3B0aW9uYWwpIiwgYWxpYXM9Imlzc3VlckFkZHJlc3MiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJuYW1lIiwgInR5cGUiLCAiY29udHJhY3RBZGRyZXNzIiwgIm5hdGl2ZUFzc2V0IiwgImRlY2ltYWxzIiwgImlzc3VlckFkZHJlc3MiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1B1YmxpY0Fzc2V0SW5mbyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBpc3N1ZXJfYWRkcmVzcyAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuaXNzdWVyX2FkZHJlc3MgaXMgTm9uZSBhbmQgImlzc3Vlcl9hZGRyZXNzIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wydpc3N1ZXJBZGRyZXNzJ10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUHVibGljQXNzZXRJbmZvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIiksCiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAiY29udHJhY3RBZGRyZXNzIjogb2JqLmdldCgiY29udHJhY3RBZGRyZXNzIiksCiAgICAgICAgICAgICJuYXRpdmVBc3NldCI6IG9iai5nZXQoIm5hdGl2ZUFzc2V0IiksCiAgICAgICAgICAgICJkZWNpbWFscyI6IG9iai5nZXQoImRlY2ltYWxzIiksCiAgICAgICAgICAgICJpc3N1ZXJBZGRyZXNzIjogb2JqLmdldCgiaXNzdWVyQWRkcmVzcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_public_key_response.py b/fireblocks/models/tr_link_public_key_response.py index f0e89982..e926c30f 100644 --- a/fireblocks/models/tr_link_public_key_response.py +++ b/fireblocks/models/tr_link_public_key_response.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.tr_link_jwk_public_key import TRLinkJwkPublicKey -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkPublicKeyResponse(BaseModel): - """ - TRLinkPublicKeyResponse - """ # noqa: E501 - issuer: StrictStr = Field(description="Partner issuer identifier") - public_key: TRLinkJwkPublicKey = Field(alias="publicKey") - __properties: ClassVar[List[str]] = ["issuer", "publicKey"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkPublicKeyResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of public_key - if self.public_key: - _dict['publicKey'] = self.public_key.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkPublicKeyResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "issuer": obj.get("issuer"), - "publicKey": TRLinkJwkPublicKey.from_dict(obj["publicKey"]) if obj.get("publicKey") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19qd2tfcHVibGljX2tleSBpbXBvcnQgVFJMaW5rSndrUHVibGljS2V5CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRSTGlua1B1YmxpY0tleVJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRSTGlua1B1YmxpY0tleVJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpc3N1ZXI6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJQYXJ0bmVyIGlzc3VlciBpZGVudGlmaWVyIikKICAgIHB1YmxpY19rZXk6IFRSTGlua0p3a1B1YmxpY0tleSA9IEZpZWxkKGFsaWFzPSJwdWJsaWNLZXkiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpc3N1ZXIiLCAicHVibGljS2V5Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtQdWJsaWNLZXlSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHB1YmxpY19rZXkKICAgICAgICBpZiBzZWxmLnB1YmxpY19rZXk6CiAgICAgICAgICAgIF9kaWN0WydwdWJsaWNLZXknXSA9IHNlbGYucHVibGljX2tleS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1B1YmxpY0tleVJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlzc3VlciI6IG9iai5nZXQoImlzc3VlciIpLAogICAgICAgICAgICAicHVibGljS2V5IjogVFJMaW5rSndrUHVibGljS2V5LmZyb21fZGljdChvYmpbInB1YmxpY0tleSJdKSBpZiBvYmouZ2V0KCJwdWJsaWNLZXkiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_redirect_trm_request.py b/fireblocks/models/tr_link_redirect_trm_request.py index d95c6bab..b36f627f 100644 --- a/fireblocks/models/tr_link_redirect_trm_request.py +++ b/fireblocks/models/tr_link_redirect_trm_request.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkRedirectTrmRequest(BaseModel): - """ - TRLinkRedirectTrmRequest - """ # noqa: E501 - subsidiary_vasp_id: StrictStr = Field(description="ID of the subsidiary VASP to redirect the TRM to", alias="subsidiaryVaspId") - __properties: ClassVar[List[str]] = ["subsidiaryVaspId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkRedirectTrmRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkRedirectTrmRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "subsidiaryVaspId": obj.get("subsidiaryVaspId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRSTGlua1JlZGlyZWN0VHJtUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUUkxpbmtSZWRpcmVjdFRybVJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHN1YnNpZGlhcnlfdmFzcF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IklEIG9mIHRoZSBzdWJzaWRpYXJ5IFZBU1AgdG8gcmVkaXJlY3QgdGhlIFRSTSB0byIsIGFsaWFzPSJzdWJzaWRpYXJ5VmFzcElkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3Vic2lkaWFyeVZhc3BJZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUmVkaXJlY3RUcm1SZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1JlZGlyZWN0VHJtUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzdWJzaWRpYXJ5VmFzcElkIjogb2JqLmdldCgic3Vic2lkaWFyeVZhc3BJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_registration_result.py b/fireblocks/models/tr_link_registration_result.py index fdc605cb..ebc2b8b8 100644 --- a/fireblocks/models/tr_link_registration_result.py +++ b/fireblocks/models/tr_link_registration_result.py @@ -1,115 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.tr_link_pre_screening_rule import TRLinkPreScreeningRule -from fireblocks.models.tr_link_provider_result import TRLinkProviderResult -from fireblocks.models.tr_link_registration_status import TRLinkRegistrationStatus -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkRegistrationResult(BaseModel): - """ - TRLink registration result containing status and metadata - """ # noqa: E501 - status: TRLinkRegistrationStatus - provider: Optional[StrictStr] = Field(default=None, description="The TRLink provider name") - success: Optional[StrictBool] = Field(default=None, description="Whether the registration was successful") - timestamp: Union[StrictFloat, StrictInt] = Field(description="Unix timestamp of the registration") - dest_record_id: Optional[StrictStr] = Field(default=None, description="Destination record identifier", alias="destRecordId") - travel_rule_message_id: Optional[StrictStr] = Field(default=None, description="Travel rule message identifier for linking", alias="travelRuleMessageId") - customer_integration_id: Optional[StrictStr] = Field(default=None, description="Customer integration identifier", alias="customerIntegrationId") - customer_short_name: Optional[StrictStr] = Field(default=None, description="Customer short name", alias="customerShortName") - result: Optional[TRLinkProviderResult] = None - matched_prescreening_rule: Optional[TRLinkPreScreeningRule] = Field(default=None, alias="matchedPrescreeningRule") - __properties: ClassVar[List[str]] = ["status", "provider", "success", "timestamp", "destRecordId", "travelRuleMessageId", "customerIntegrationId", "customerShortName", "result", "matchedPrescreeningRule"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkRegistrationResult from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of result - if self.result: - _dict['result'] = self.result.to_dict() - # override the default output from pydantic by calling `to_dict()` of matched_prescreening_rule - if self.matched_prescreening_rule: - _dict['matchedPrescreeningRule'] = self.matched_prescreening_rule.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkRegistrationResult from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "status": obj.get("status"), - "provider": obj.get("provider"), - "success": obj.get("success"), - "timestamp": obj.get("timestamp"), - "destRecordId": obj.get("destRecordId"), - "travelRuleMessageId": obj.get("travelRuleMessageId"), - "customerIntegrationId": obj.get("customerIntegrationId"), - "customerShortName": obj.get("customerShortName"), - "result": TRLinkProviderResult.from_dict(obj["result"]) if obj.get("result") is not None else None, - "matchedPrescreeningRule": TRLinkPreScreeningRule.from_dict(obj["matchedPrescreeningRule"]) if obj.get("matchedPrescreeningRule") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3ByZV9zY3JlZW5pbmdfcnVsZSBpbXBvcnQgVFJMaW5rUHJlU2NyZWVuaW5nUnVsZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJvdmlkZXJfcmVzdWx0IGltcG9ydCBUUkxpbmtQcm92aWRlclJlc3VsdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcmVnaXN0cmF0aW9uX3N0YXR1cyBpbXBvcnQgVFJMaW5rUmVnaXN0cmF0aW9uU3RhdHVzCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUUkxpbmsgcmVnaXN0cmF0aW9uIHJlc3VsdCBjb250YWluaW5nIHN0YXR1cyBhbmQgbWV0YWRhdGEKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHN0YXR1czogVFJMaW5rUmVnaXN0cmF0aW9uU3RhdHVzCiAgICBwcm92aWRlcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBUUkxpbmsgcHJvdmlkZXIgbmFtZSIpCiAgICBzdWNjZXNzOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IldoZXRoZXIgdGhlIHJlZ2lzdHJhdGlvbiB3YXMgc3VjY2Vzc2Z1bCIpCiAgICB0aW1lc3RhbXA6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoZGVzY3JpcHRpb249IlVuaXggdGltZXN0YW1wIG9mIHRoZSByZWdpc3RyYXRpb24iKQogICAgZGVzdF9yZWNvcmRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiByZWNvcmQgaWRlbnRpZmllciIsIGFsaWFzPSJkZXN0UmVjb3JkSWQiKQogICAgdHJhdmVsX3J1bGVfbWVzc2FnZV9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRyYXZlbCBydWxlIG1lc3NhZ2UgaWRlbnRpZmllciBmb3IgbGlua2luZyIsIGFsaWFzPSJ0cmF2ZWxSdWxlTWVzc2FnZUlkIikKICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3VzdG9tZXIgaW50ZWdyYXRpb24gaWRlbnRpZmllciIsIGFsaWFzPSJjdXN0b21lckludGVncmF0aW9uSWQiKQogICAgY3VzdG9tZXJfc2hvcnRfbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkN1c3RvbWVyIHNob3J0IG5hbWUiLCBhbGlhcz0iY3VzdG9tZXJTaG9ydE5hbWUiKQogICAgcmVzdWx0OiBPcHRpb25hbFtUUkxpbmtQcm92aWRlclJlc3VsdF0gPSBOb25lCiAgICBtYXRjaGVkX3ByZXNjcmVlbmluZ19ydWxlOiBPcHRpb25hbFtUUkxpbmtQcmVTY3JlZW5pbmdSdWxlXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im1hdGNoZWRQcmVzY3JlZW5pbmdSdWxlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3RhdHVzIiwgInByb3ZpZGVyIiwgInN1Y2Nlc3MiLCAidGltZXN0YW1wIiwgImRlc3RSZWNvcmRJZCIsICJ0cmF2ZWxSdWxlTWVzc2FnZUlkIiwgImN1c3RvbWVySW50ZWdyYXRpb25JZCIsICJjdXN0b21lclNob3J0TmFtZSIsICJyZXN1bHQiLCAibWF0Y2hlZFByZXNjcmVlbmluZ1J1bGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHJlc3VsdAogICAgICAgIGlmIHNlbGYucmVzdWx0OgogICAgICAgICAgICBfZGljdFsncmVzdWx0J10gPSBzZWxmLnJlc3VsdC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgbWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZQogICAgICAgIGlmIHNlbGYubWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZToKICAgICAgICAgICAgX2RpY3RbJ21hdGNoZWRQcmVzY3JlZW5pbmdSdWxlJ10gPSBzZWxmLm1hdGNoZWRfcHJlc2NyZWVuaW5nX3J1bGUudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3RhdHVzIjogb2JqLmdldCgic3RhdHVzIiksCiAgICAgICAgICAgICJwcm92aWRlciI6IG9iai5nZXQoInByb3ZpZGVyIiksCiAgICAgICAgICAgICJzdWNjZXNzIjogb2JqLmdldCgic3VjY2VzcyIpLAogICAgICAgICAgICAidGltZXN0YW1wIjogb2JqLmdldCgidGltZXN0YW1wIiksCiAgICAgICAgICAgICJkZXN0UmVjb3JkSWQiOiBvYmouZ2V0KCJkZXN0UmVjb3JkSWQiKSwKICAgICAgICAgICAgInRyYXZlbFJ1bGVNZXNzYWdlSWQiOiBvYmouZ2V0KCJ0cmF2ZWxSdWxlTWVzc2FnZUlkIiksCiAgICAgICAgICAgICJjdXN0b21lckludGVncmF0aW9uSWQiOiBvYmouZ2V0KCJjdXN0b21lckludGVncmF0aW9uSWQiKSwKICAgICAgICAgICAgImN1c3RvbWVyU2hvcnROYW1lIjogb2JqLmdldCgiY3VzdG9tZXJTaG9ydE5hbWUiKSwKICAgICAgICAgICAgInJlc3VsdCI6IFRSTGlua1Byb3ZpZGVyUmVzdWx0LmZyb21fZGljdChvYmpbInJlc3VsdCJdKSBpZiBvYmouZ2V0KCJyZXN1bHQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJtYXRjaGVkUHJlc2NyZWVuaW5nUnVsZSI6IFRSTGlua1ByZVNjcmVlbmluZ1J1bGUuZnJvbV9kaWN0KG9ialsibWF0Y2hlZFByZXNjcmVlbmluZ1J1bGUiXSkgaWYgb2JqLmdldCgibWF0Y2hlZFByZXNjcmVlbmluZ1J1bGUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_registration_result_full_payload.py b/fireblocks/models/tr_link_registration_result_full_payload.py index 705ef27e..b3cf7232 100644 --- a/fireblocks/models/tr_link_registration_result_full_payload.py +++ b/fireblocks/models/tr_link_registration_result_full_payload.py @@ -1,115 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.screening_tr_link_prescreening_rule import ScreeningTRLinkPrescreeningRule -from fireblocks.models.tr_link_provider_result import TRLinkProviderResult -from fireblocks.models.tr_link_registration_status_enum import TRLinkRegistrationStatusEnum -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkRegistrationResultFullPayload(BaseModel): - """ - TRLink registration result containing status and metadata - """ # noqa: E501 - status: TRLinkRegistrationStatusEnum - provider: Optional[StrictStr] = Field(default=None, description="The TRLink provider name") - success: Optional[StrictBool] = Field(default=None, description="Whether the registration was successful") - timestamp: Union[StrictFloat, StrictInt] = Field(description="Unix timestamp of the registration") - dest_record_id: Optional[StrictStr] = Field(default=None, description="Destination record identifier", alias="destRecordId") - travel_rule_message_id: Optional[StrictStr] = Field(default=None, description="Travel rule message identifier for linking", alias="travelRuleMessageId") - customer_integration_id: Optional[StrictStr] = Field(default=None, description="Customer integration identifier", alias="customerIntegrationId") - customer_short_name: Optional[StrictStr] = Field(default=None, description="Customer short name", alias="customerShortName") - result: Optional[TRLinkProviderResult] = None - matched_prescreening_rule: Optional[ScreeningTRLinkPrescreeningRule] = Field(default=None, alias="matchedPrescreeningRule") - __properties: ClassVar[List[str]] = ["status", "provider", "success", "timestamp", "destRecordId", "travelRuleMessageId", "customerIntegrationId", "customerShortName", "result", "matchedPrescreeningRule"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkRegistrationResultFullPayload from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of result - if self.result: - _dict['result'] = self.result.to_dict() - # override the default output from pydantic by calling `to_dict()` of matched_prescreening_rule - if self.matched_prescreening_rule: - _dict['matchedPrescreeningRule'] = self.matched_prescreening_rule.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkRegistrationResultFullPayload from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "status": obj.get("status"), - "provider": obj.get("provider"), - "success": obj.get("success"), - "timestamp": obj.get("timestamp"), - "destRecordId": obj.get("destRecordId"), - "travelRuleMessageId": obj.get("travelRuleMessageId"), - "customerIntegrationId": obj.get("customerIntegrationId"), - "customerShortName": obj.get("customerShortName"), - "result": TRLinkProviderResult.from_dict(obj["result"]) if obj.get("result") is not None else None, - "matchedPrescreeningRule": ScreeningTRLinkPrescreeningRule.from_dict(obj["matchedPrescreeningRule"]) if obj.get("matchedPrescreeningRule") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdHJfbGlua19wcmVzY3JlZW5pbmdfcnVsZSBpbXBvcnQgU2NyZWVuaW5nVFJMaW5rUHJlc2NyZWVuaW5nUnVsZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJvdmlkZXJfcmVzdWx0IGltcG9ydCBUUkxpbmtQcm92aWRlclJlc3VsdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcmVnaXN0cmF0aW9uX3N0YXR1c19lbnVtIGltcG9ydCBUUkxpbmtSZWdpc3RyYXRpb25TdGF0dXNFbnVtCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRSTGluayByZWdpc3RyYXRpb24gcmVzdWx0IGNvbnRhaW5pbmcgc3RhdHVzIGFuZCBtZXRhZGF0YQogICAgIiIiICMgbm9xYTogRTUwMQogICAgc3RhdHVzOiBUUkxpbmtSZWdpc3RyYXRpb25TdGF0dXNFbnVtCiAgICBwcm92aWRlcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBUUkxpbmsgcHJvdmlkZXIgbmFtZSIpCiAgICBzdWNjZXNzOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IldoZXRoZXIgdGhlIHJlZ2lzdHJhdGlvbiB3YXMgc3VjY2Vzc2Z1bCIpCiAgICB0aW1lc3RhbXA6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoZGVzY3JpcHRpb249IlVuaXggdGltZXN0YW1wIG9mIHRoZSByZWdpc3RyYXRpb24iKQogICAgZGVzdF9yZWNvcmRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiByZWNvcmQgaWRlbnRpZmllciIsIGFsaWFzPSJkZXN0UmVjb3JkSWQiKQogICAgdHJhdmVsX3J1bGVfbWVzc2FnZV9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRyYXZlbCBydWxlIG1lc3NhZ2UgaWRlbnRpZmllciBmb3IgbGlua2luZyIsIGFsaWFzPSJ0cmF2ZWxSdWxlTWVzc2FnZUlkIikKICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3VzdG9tZXIgaW50ZWdyYXRpb24gaWRlbnRpZmllciIsIGFsaWFzPSJjdXN0b21lckludGVncmF0aW9uSWQiKQogICAgY3VzdG9tZXJfc2hvcnRfbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkN1c3RvbWVyIHNob3J0IG5hbWUiLCBhbGlhcz0iY3VzdG9tZXJTaG9ydE5hbWUiKQogICAgcmVzdWx0OiBPcHRpb25hbFtUUkxpbmtQcm92aWRlclJlc3VsdF0gPSBOb25lCiAgICBtYXRjaGVkX3ByZXNjcmVlbmluZ19ydWxlOiBPcHRpb25hbFtTY3JlZW5pbmdUUkxpbmtQcmVzY3JlZW5pbmdSdWxlXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im1hdGNoZWRQcmVzY3JlZW5pbmdSdWxlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3RhdHVzIiwgInByb3ZpZGVyIiwgInN1Y2Nlc3MiLCAidGltZXN0YW1wIiwgImRlc3RSZWNvcmRJZCIsICJ0cmF2ZWxSdWxlTWVzc2FnZUlkIiwgImN1c3RvbWVySW50ZWdyYXRpb25JZCIsICJjdXN0b21lclNob3J0TmFtZSIsICJyZXN1bHQiLCAibWF0Y2hlZFByZXNjcmVlbmluZ1J1bGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcmVzdWx0CiAgICAgICAgaWYgc2VsZi5yZXN1bHQ6CiAgICAgICAgICAgIF9kaWN0WydyZXN1bHQnXSA9IHNlbGYucmVzdWx0LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBtYXRjaGVkX3ByZXNjcmVlbmluZ19ydWxlCiAgICAgICAgaWYgc2VsZi5tYXRjaGVkX3ByZXNjcmVlbmluZ19ydWxlOgogICAgICAgICAgICBfZGljdFsnbWF0Y2hlZFByZXNjcmVlbmluZ1J1bGUnXSA9IHNlbGYubWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAicHJvdmlkZXIiOiBvYmouZ2V0KCJwcm92aWRlciIpLAogICAgICAgICAgICAic3VjY2VzcyI6IG9iai5nZXQoInN1Y2Nlc3MiKSwKICAgICAgICAgICAgInRpbWVzdGFtcCI6IG9iai5nZXQoInRpbWVzdGFtcCIpLAogICAgICAgICAgICAiZGVzdFJlY29yZElkIjogb2JqLmdldCgiZGVzdFJlY29yZElkIiksCiAgICAgICAgICAgICJ0cmF2ZWxSdWxlTWVzc2FnZUlkIjogb2JqLmdldCgidHJhdmVsUnVsZU1lc3NhZ2VJZCIpLAogICAgICAgICAgICAiY3VzdG9tZXJJbnRlZ3JhdGlvbklkIjogb2JqLmdldCgiY3VzdG9tZXJJbnRlZ3JhdGlvbklkIiksCiAgICAgICAgICAgICJjdXN0b21lclNob3J0TmFtZSI6IG9iai5nZXQoImN1c3RvbWVyU2hvcnROYW1lIiksCiAgICAgICAgICAgICJyZXN1bHQiOiBUUkxpbmtQcm92aWRlclJlc3VsdC5mcm9tX2RpY3Qob2JqWyJyZXN1bHQiXSkgaWYgb2JqLmdldCgicmVzdWx0IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibWF0Y2hlZFByZXNjcmVlbmluZ1J1bGUiOiBTY3JlZW5pbmdUUkxpbmtQcmVzY3JlZW5pbmdSdWxlLmZyb21fZGljdChvYmpbIm1hdGNoZWRQcmVzY3JlZW5pbmdSdWxlIl0pIGlmIG9iai5nZXQoIm1hdGNoZWRQcmVzY3JlZW5pbmdSdWxlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_registration_status.py b/fireblocks/models/tr_link_registration_status.py index 708d7a83..d7d89b7e 100644 --- a/fireblocks/models/tr_link_registration_status.py +++ b/fireblocks/models/tr_link_registration_status.py @@ -1,41 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TRLinkRegistrationStatus(str, Enum): - """ - TRLink registration status - """ - - """ - allowed enum values - """ - STARTING = 'STARTING' - PRESCREENED = 'PRESCREENED' - COMPLETED = 'COMPLETED' - FAILED = 'FAILED' - VOID = 'VOID' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TRLinkRegistrationStatus from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUUkxpbmtSZWdpc3RyYXRpb25TdGF0dXMoc3RyLCBFbnVtKToKICAgICIiIgogICAgVFJMaW5rIHJlZ2lzdHJhdGlvbiBzdGF0dXMKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBTVEFSVElORyA9ICdTVEFSVElORycKICAgIFBSRVNDUkVFTkVEID0gJ1BSRVNDUkVFTkVEJwogICAgQ09NUExFVEVEID0gJ0NPTVBMRVRFRCcKICAgIEZBSUxFRCA9ICdGQUlMRUQnCiAgICBWT0lEID0gJ1ZPSUQnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rUmVnaXN0cmF0aW9uU3RhdHVzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_registration_status_enum.py b/fireblocks/models/tr_link_registration_status_enum.py index 9c04be17..994d1350 100644 --- a/fireblocks/models/tr_link_registration_status_enum.py +++ b/fireblocks/models/tr_link_registration_status_enum.py @@ -1,41 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TRLinkRegistrationStatusEnum(str, Enum): - """ - TRLink registration status - """ - - """ - allowed enum values - """ - STARTING = 'STARTING' - PRESCREENED = 'PRESCREENED' - COMPLETED = 'COMPLETED' - FAILED = 'FAILED' - VOID = 'VOID' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TRLinkRegistrationStatusEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUUkxpbmtSZWdpc3RyYXRpb25TdGF0dXNFbnVtKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIFRSTGluayByZWdpc3RyYXRpb24gc3RhdHVzCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgU1RBUlRJTkcgPSAnU1RBUlRJTkcnCiAgICBQUkVTQ1JFRU5FRCA9ICdQUkVTQ1JFRU5FRCcKICAgIENPTVBMRVRFRCA9ICdDT01QTEVURUQnCiAgICBGQUlMRUQgPSAnRkFJTEVEJwogICAgVk9JRCA9ICdWT0lEJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1JlZ2lzdHJhdGlvblN0YXR1c0VudW0gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_result.py b/fireblocks/models/tr_link_result.py index 9ef2988f..531da4c7 100644 --- a/fireblocks/models/tr_link_result.py +++ b/fireblocks/models/tr_link_result.py @@ -1,134 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.tr_link_missing_trm_decision import TRLinkMissingTrmDecision -from fireblocks.models.tr_link_pre_screening_rule import TRLinkPreScreeningRule -from fireblocks.models.tr_link_provider_result_with_rule import TRLinkProviderResultWithRule -from fireblocks.models.tr_link_verdict import TRLinkVerdict -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkResult(BaseModel): - """ - TRLink screening result - """ # noqa: E501 - provider: StrictStr = Field(description="The TRLink provider name") - timestamp: Union[StrictFloat, StrictInt] = Field(description="Unix timestamp of the screening result") - status: StrictStr = Field(description="Status of the TRLink screening") - verdict: Optional[TRLinkVerdict] = None - dest_address: Optional[StrictStr] = Field(default=None, description="The destination address associated with the TRLink screening", alias="destAddress") - dest_tag: Optional[StrictStr] = Field(default=None, description="Destination tag for the screening", alias="destTag") - bypass_reason: Optional[StrictStr] = Field(default=None, description="Reason for bypassing the TRLink screening", alias="bypassReason") - details_message: Optional[StrictStr] = Field(default=None, description="Additional details message about the screening result", alias="detailsMessage") - customer_integration_id: Optional[StrictStr] = Field(default=None, description="Customer integration identifier", alias="customerIntegrationId") - customer_short_name: Optional[StrictStr] = Field(default=None, description="Customer short name", alias="customerShortName") - travel_rule_message_id: Optional[StrictStr] = Field(default=None, description="Travel rule message identifier for linking", alias="travelRuleMessageId") - result: Optional[TRLinkProviderResultWithRule] = None - matched_prescreening_rule: Optional[TRLinkPreScreeningRule] = Field(default=None, alias="matchedPrescreeningRule") - matched_no_trm_screening_rule: Optional[TRLinkMissingTrmDecision] = Field(default=None, alias="matchedNoTrmScreeningRule") - __properties: ClassVar[List[str]] = ["provider", "timestamp", "status", "verdict", "destAddress", "destTag", "bypassReason", "detailsMessage", "customerIntegrationId", "customerShortName", "travelRuleMessageId", "result", "matchedPrescreeningRule", "matchedNoTrmScreeningRule"] - - @field_validator('status') - def status_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['COMPLETED', 'PENDING', 'BYPASSED', 'FAILED', 'FROZEN']): - raise ValueError("must be one of enum values ('COMPLETED', 'PENDING', 'BYPASSED', 'FAILED', 'FROZEN')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkResult from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of result - if self.result: - _dict['result'] = self.result.to_dict() - # override the default output from pydantic by calling `to_dict()` of matched_prescreening_rule - if self.matched_prescreening_rule: - _dict['matchedPrescreeningRule'] = self.matched_prescreening_rule.to_dict() - # override the default output from pydantic by calling `to_dict()` of matched_no_trm_screening_rule - if self.matched_no_trm_screening_rule: - _dict['matchedNoTrmScreeningRule'] = self.matched_no_trm_screening_rule.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkResult from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "provider": obj.get("provider"), - "timestamp": obj.get("timestamp"), - "status": obj.get("status"), - "verdict": obj.get("verdict"), - "destAddress": obj.get("destAddress"), - "destTag": obj.get("destTag"), - "bypassReason": obj.get("bypassReason"), - "detailsMessage": obj.get("detailsMessage"), - "customerIntegrationId": obj.get("customerIntegrationId"), - "customerShortName": obj.get("customerShortName"), - "travelRuleMessageId": obj.get("travelRuleMessageId"), - "result": TRLinkProviderResultWithRule.from_dict(obj["result"]) if obj.get("result") is not None else None, - "matchedPrescreeningRule": TRLinkPreScreeningRule.from_dict(obj["matchedPrescreeningRule"]) if obj.get("matchedPrescreeningRule") is not None else None, - "matchedNoTrmScreeningRule": TRLinkMissingTrmDecision.from_dict(obj["matchedNoTrmScreeningRule"]) if obj.get("matchedNoTrmScreeningRule") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfbWlzc2luZ190cm1fZGVjaXNpb24gaW1wb3J0IFRSTGlua01pc3NpbmdUcm1EZWNpc2lvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJlX3NjcmVlbmluZ19ydWxlIGltcG9ydCBUUkxpbmtQcmVTY3JlZW5pbmdSdWxlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wcm92aWRlcl9yZXN1bHRfd2l0aF9ydWxlIGltcG9ydCBUUkxpbmtQcm92aWRlclJlc3VsdFdpdGhSdWxlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua192ZXJkaWN0IGltcG9ydCBUUkxpbmtWZXJkaWN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRSTGlua1Jlc3VsdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUUkxpbmsgc2NyZWVuaW5nIHJlc3VsdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgcHJvdmlkZXI6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgVFJMaW5rIHByb3ZpZGVyIG5hbWUiKQogICAgdGltZXN0YW1wOiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJVbml4IHRpbWVzdGFtcCBvZiB0aGUgc2NyZWVuaW5nIHJlc3VsdCIpCiAgICBzdGF0dXM6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJTdGF0dXMgb2YgdGhlIFRSTGluayBzY3JlZW5pbmciKQogICAgdmVyZGljdDogT3B0aW9uYWxbVFJMaW5rVmVyZGljdF0gPSBOb25lCiAgICBkZXN0X2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgZGVzdGluYXRpb24gYWRkcmVzcyBhc3NvY2lhdGVkIHdpdGggdGhlIFRSTGluayBzY3JlZW5pbmciLCBhbGlhcz0iZGVzdEFkZHJlc3MiKQogICAgZGVzdF90YWc6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiB0YWcgZm9yIHRoZSBzY3JlZW5pbmciLCBhbGlhcz0iZGVzdFRhZyIpCiAgICBieXBhc3NfcmVhc29uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUmVhc29uIGZvciBieXBhc3NpbmcgdGhlIFRSTGluayBzY3JlZW5pbmciLCBhbGlhcz0iYnlwYXNzUmVhc29uIikKICAgIGRldGFpbHNfbWVzc2FnZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFkZGl0aW9uYWwgZGV0YWlscyBtZXNzYWdlIGFib3V0IHRoZSBzY3JlZW5pbmcgcmVzdWx0IiwgYWxpYXM9ImRldGFpbHNNZXNzYWdlIikKICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3VzdG9tZXIgaW50ZWdyYXRpb24gaWRlbnRpZmllciIsIGFsaWFzPSJjdXN0b21lckludGVncmF0aW9uSWQiKQogICAgY3VzdG9tZXJfc2hvcnRfbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkN1c3RvbWVyIHNob3J0IG5hbWUiLCBhbGlhcz0iY3VzdG9tZXJTaG9ydE5hbWUiKQogICAgdHJhdmVsX3J1bGVfbWVzc2FnZV9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRyYXZlbCBydWxlIG1lc3NhZ2UgaWRlbnRpZmllciBmb3IgbGlua2luZyIsIGFsaWFzPSJ0cmF2ZWxSdWxlTWVzc2FnZUlkIikKICAgIHJlc3VsdDogT3B0aW9uYWxbVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZV0gPSBOb25lCiAgICBtYXRjaGVkX3ByZXNjcmVlbmluZ19ydWxlOiBPcHRpb25hbFtUUkxpbmtQcmVTY3JlZW5pbmdSdWxlXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im1hdGNoZWRQcmVzY3JlZW5pbmdSdWxlIikKICAgIG1hdGNoZWRfbm9fdHJtX3NjcmVlbmluZ19ydWxlOiBPcHRpb25hbFtUUkxpbmtNaXNzaW5nVHJtRGVjaXNpb25dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ibWF0Y2hlZE5vVHJtU2NyZWVuaW5nUnVsZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInByb3ZpZGVyIiwgInRpbWVzdGFtcCIsICJzdGF0dXMiLCAidmVyZGljdCIsICJkZXN0QWRkcmVzcyIsICJkZXN0VGFnIiwgImJ5cGFzc1JlYXNvbiIsICJkZXRhaWxzTWVzc2FnZSIsICJjdXN0b21lckludGVncmF0aW9uSWQiLCAiY3VzdG9tZXJTaG9ydE5hbWUiLCAidHJhdmVsUnVsZU1lc3NhZ2VJZCIsICJyZXN1bHQiLCAibWF0Y2hlZFByZXNjcmVlbmluZ1J1bGUiLCAibWF0Y2hlZE5vVHJtU2NyZWVuaW5nUnVsZSJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignc3RhdHVzJykKICAgIGRlZiBzdGF0dXNfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnQ09NUExFVEVEJywgJ1BFTkRJTkcnLCAnQllQQVNTRUQnLCAnRkFJTEVEJywgJ0ZST1pFTiddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdDT01QTEVURUQnLCAnUEVORElORycsICdCWVBBU1NFRCcsICdGQUlMRUQnLCAnRlJPWkVOJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1Jlc3VsdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHJlc3VsdAogICAgICAgIGlmIHNlbGYucmVzdWx0OgogICAgICAgICAgICBfZGljdFsncmVzdWx0J10gPSBzZWxmLnJlc3VsdC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgbWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZQogICAgICAgIGlmIHNlbGYubWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZToKICAgICAgICAgICAgX2RpY3RbJ21hdGNoZWRQcmVzY3JlZW5pbmdSdWxlJ10gPSBzZWxmLm1hdGNoZWRfcHJlc2NyZWVuaW5nX3J1bGUudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG1hdGNoZWRfbm9fdHJtX3NjcmVlbmluZ19ydWxlCiAgICAgICAgaWYgc2VsZi5tYXRjaGVkX25vX3RybV9zY3JlZW5pbmdfcnVsZToKICAgICAgICAgICAgX2RpY3RbJ21hdGNoZWROb1RybVNjcmVlbmluZ1J1bGUnXSA9IHNlbGYubWF0Y2hlZF9ub190cm1fc2NyZWVuaW5nX3J1bGUudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtSZXN1bHQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicHJvdmlkZXIiOiBvYmouZ2V0KCJwcm92aWRlciIpLAogICAgICAgICAgICAidGltZXN0YW1wIjogb2JqLmdldCgidGltZXN0YW1wIiksCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgInZlcmRpY3QiOiBvYmouZ2V0KCJ2ZXJkaWN0IiksCiAgICAgICAgICAgICJkZXN0QWRkcmVzcyI6IG9iai5nZXQoImRlc3RBZGRyZXNzIiksCiAgICAgICAgICAgICJkZXN0VGFnIjogb2JqLmdldCgiZGVzdFRhZyIpLAogICAgICAgICAgICAiYnlwYXNzUmVhc29uIjogb2JqLmdldCgiYnlwYXNzUmVhc29uIiksCiAgICAgICAgICAgICJkZXRhaWxzTWVzc2FnZSI6IG9iai5nZXQoImRldGFpbHNNZXNzYWdlIiksCiAgICAgICAgICAgICJjdXN0b21lckludGVncmF0aW9uSWQiOiBvYmouZ2V0KCJjdXN0b21lckludGVncmF0aW9uSWQiKSwKICAgICAgICAgICAgImN1c3RvbWVyU2hvcnROYW1lIjogb2JqLmdldCgiY3VzdG9tZXJTaG9ydE5hbWUiKSwKICAgICAgICAgICAgInRyYXZlbFJ1bGVNZXNzYWdlSWQiOiBvYmouZ2V0KCJ0cmF2ZWxSdWxlTWVzc2FnZUlkIiksCiAgICAgICAgICAgICJyZXN1bHQiOiBUUkxpbmtQcm92aWRlclJlc3VsdFdpdGhSdWxlLmZyb21fZGljdChvYmpbInJlc3VsdCJdKSBpZiBvYmouZ2V0KCJyZXN1bHQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJtYXRjaGVkUHJlc2NyZWVuaW5nUnVsZSI6IFRSTGlua1ByZVNjcmVlbmluZ1J1bGUuZnJvbV9kaWN0KG9ialsibWF0Y2hlZFByZXNjcmVlbmluZ1J1bGUiXSkgaWYgb2JqLmdldCgibWF0Y2hlZFByZXNjcmVlbmluZ1J1bGUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJtYXRjaGVkTm9Ucm1TY3JlZW5pbmdSdWxlIjogVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uLmZyb21fZGljdChvYmpbIm1hdGNoZWROb1RybVNjcmVlbmluZ1J1bGUiXSkgaWYgb2JqLmdldCgibWF0Y2hlZE5vVHJtU2NyZWVuaW5nUnVsZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_result_full_payload.py b/fireblocks/models/tr_link_result_full_payload.py index 94d21aec..4f301609 100644 --- a/fireblocks/models/tr_link_result_full_payload.py +++ b/fireblocks/models/tr_link_result_full_payload.py @@ -1,134 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.screening_tr_link_missing_trm_decision import ScreeningTRLinkMissingTrmDecision -from fireblocks.models.screening_tr_link_prescreening_rule import ScreeningTRLinkPrescreeningRule -from fireblocks.models.tr_link_provider_result_with_rule2 import TRLinkProviderResultWithRule2 -from fireblocks.models.tr_link_verdict_enum import TRLinkVerdictEnum -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkResultFullPayload(BaseModel): - """ - TRLink screening result - """ # noqa: E501 - provider: StrictStr = Field(description="The TRLink provider name") - timestamp: Union[StrictFloat, StrictInt] = Field(description="Unix timestamp of the screening result") - status: StrictStr = Field(description="Status of the TRLink screening") - verdict: Optional[TRLinkVerdictEnum] = None - dest_address: Optional[StrictStr] = Field(default=None, description="The destination address associated with the TRLink screening", alias="destAddress") - dest_tag: Optional[StrictStr] = Field(default=None, description="Destination tag for the screening", alias="destTag") - bypass_reason: Optional[StrictStr] = Field(default=None, description="Reason for bypassing the TRLink screening", alias="bypassReason") - details_message: Optional[StrictStr] = Field(default=None, description="Additional details message about the screening result", alias="detailsMessage") - customer_integration_id: Optional[StrictStr] = Field(default=None, description="Customer integration identifier", alias="customerIntegrationId") - customer_short_name: Optional[StrictStr] = Field(default=None, description="Customer short name", alias="customerShortName") - travel_rule_message_id: Optional[StrictStr] = Field(default=None, description="Travel rule message identifier for linking", alias="travelRuleMessageId") - result: Optional[TRLinkProviderResultWithRule2] = None - matched_prescreening_rule: Optional[ScreeningTRLinkPrescreeningRule] = Field(default=None, alias="matchedPrescreeningRule") - matched_no_trm_screening_rule: Optional[ScreeningTRLinkMissingTrmDecision] = Field(default=None, alias="matchedNoTrmScreeningRule") - __properties: ClassVar[List[str]] = ["provider", "timestamp", "status", "verdict", "destAddress", "destTag", "bypassReason", "detailsMessage", "customerIntegrationId", "customerShortName", "travelRuleMessageId", "result", "matchedPrescreeningRule", "matchedNoTrmScreeningRule"] - - @field_validator('status') - def status_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['COMPLETED', 'PENDING', 'BYPASSED', 'FAILED', 'FROZEN']): - raise ValueError("must be one of enum values ('COMPLETED', 'PENDING', 'BYPASSED', 'FAILED', 'FROZEN')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkResultFullPayload from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of result - if self.result: - _dict['result'] = self.result.to_dict() - # override the default output from pydantic by calling `to_dict()` of matched_prescreening_rule - if self.matched_prescreening_rule: - _dict['matchedPrescreeningRule'] = self.matched_prescreening_rule.to_dict() - # override the default output from pydantic by calling `to_dict()` of matched_no_trm_screening_rule - if self.matched_no_trm_screening_rule: - _dict['matchedNoTrmScreeningRule'] = self.matched_no_trm_screening_rule.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkResultFullPayload from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "provider": obj.get("provider"), - "timestamp": obj.get("timestamp"), - "status": obj.get("status"), - "verdict": obj.get("verdict"), - "destAddress": obj.get("destAddress"), - "destTag": obj.get("destTag"), - "bypassReason": obj.get("bypassReason"), - "detailsMessage": obj.get("detailsMessage"), - "customerIntegrationId": obj.get("customerIntegrationId"), - "customerShortName": obj.get("customerShortName"), - "travelRuleMessageId": obj.get("travelRuleMessageId"), - "result": TRLinkProviderResultWithRule2.from_dict(obj["result"]) if obj.get("result") is not None else None, - "matchedPrescreeningRule": ScreeningTRLinkPrescreeningRule.from_dict(obj["matchedPrescreeningRule"]) if obj.get("matchedPrescreeningRule") is not None else None, - "matchedNoTrmScreeningRule": ScreeningTRLinkMissingTrmDecision.from_dict(obj["matchedNoTrmScreeningRule"]) if obj.get("matchedNoTrmScreeningRule") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cl9saW5rX21pc3NpbmdfdHJtX2RlY2lzaW9uIGltcG9ydCBTY3JlZW5pbmdUUkxpbmtNaXNzaW5nVHJtRGVjaXNpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdHJfbGlua19wcmVzY3JlZW5pbmdfcnVsZSBpbXBvcnQgU2NyZWVuaW5nVFJMaW5rUHJlc2NyZWVuaW5nUnVsZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJvdmlkZXJfcmVzdWx0X3dpdGhfcnVsZTIgaW1wb3J0IFRSTGlua1Byb3ZpZGVyUmVzdWx0V2l0aFJ1bGUyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua192ZXJkaWN0X2VudW0gaW1wb3J0IFRSTGlua1ZlcmRpY3RFbnVtCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRSTGlua1Jlc3VsdEZ1bGxQYXlsb2FkKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRSTGluayBzY3JlZW5pbmcgcmVzdWx0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBwcm92aWRlcjogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBUUkxpbmsgcHJvdmlkZXIgbmFtZSIpCiAgICB0aW1lc3RhbXA6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoZGVzY3JpcHRpb249IlVuaXggdGltZXN0YW1wIG9mIHRoZSBzY3JlZW5pbmcgcmVzdWx0IikKICAgIHN0YXR1czogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlN0YXR1cyBvZiB0aGUgVFJMaW5rIHNjcmVlbmluZyIpCiAgICB2ZXJkaWN0OiBPcHRpb25hbFtUUkxpbmtWZXJkaWN0RW51bV0gPSBOb25lCiAgICBkZXN0X2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgZGVzdGluYXRpb24gYWRkcmVzcyBhc3NvY2lhdGVkIHdpdGggdGhlIFRSTGluayBzY3JlZW5pbmciLCBhbGlhcz0iZGVzdEFkZHJlc3MiKQogICAgZGVzdF90YWc6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiB0YWcgZm9yIHRoZSBzY3JlZW5pbmciLCBhbGlhcz0iZGVzdFRhZyIpCiAgICBieXBhc3NfcmVhc29uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUmVhc29uIGZvciBieXBhc3NpbmcgdGhlIFRSTGluayBzY3JlZW5pbmciLCBhbGlhcz0iYnlwYXNzUmVhc29uIikKICAgIGRldGFpbHNfbWVzc2FnZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFkZGl0aW9uYWwgZGV0YWlscyBtZXNzYWdlIGFib3V0IHRoZSBzY3JlZW5pbmcgcmVzdWx0IiwgYWxpYXM9ImRldGFpbHNNZXNzYWdlIikKICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3VzdG9tZXIgaW50ZWdyYXRpb24gaWRlbnRpZmllciIsIGFsaWFzPSJjdXN0b21lckludGVncmF0aW9uSWQiKQogICAgY3VzdG9tZXJfc2hvcnRfbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkN1c3RvbWVyIHNob3J0IG5hbWUiLCBhbGlhcz0iY3VzdG9tZXJTaG9ydE5hbWUiKQogICAgdHJhdmVsX3J1bGVfbWVzc2FnZV9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRyYXZlbCBydWxlIG1lc3NhZ2UgaWRlbnRpZmllciBmb3IgbGlua2luZyIsIGFsaWFzPSJ0cmF2ZWxSdWxlTWVzc2FnZUlkIikKICAgIHJlc3VsdDogT3B0aW9uYWxbVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZTJdID0gTm9uZQogICAgbWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZTogT3B0aW9uYWxbU2NyZWVuaW5nVFJMaW5rUHJlc2NyZWVuaW5nUnVsZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJtYXRjaGVkUHJlc2NyZWVuaW5nUnVsZSIpCiAgICBtYXRjaGVkX25vX3RybV9zY3JlZW5pbmdfcnVsZTogT3B0aW9uYWxbU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im1hdGNoZWROb1RybVNjcmVlbmluZ1J1bGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJwcm92aWRlciIsICJ0aW1lc3RhbXAiLCAic3RhdHVzIiwgInZlcmRpY3QiLCAiZGVzdEFkZHJlc3MiLCAiZGVzdFRhZyIsICJieXBhc3NSZWFzb24iLCAiZGV0YWlsc01lc3NhZ2UiLCAiY3VzdG9tZXJJbnRlZ3JhdGlvbklkIiwgImN1c3RvbWVyU2hvcnROYW1lIiwgInRyYXZlbFJ1bGVNZXNzYWdlSWQiLCAicmVzdWx0IiwgIm1hdGNoZWRQcmVzY3JlZW5pbmdSdWxlIiwgIm1hdGNoZWROb1RybVNjcmVlbmluZ1J1bGUiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3N0YXR1cycpCiAgICBkZWYgc3RhdHVzX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0NPTVBMRVRFRCcsICdQRU5ESU5HJywgJ0JZUEFTU0VEJywgJ0ZBSUxFRCcsICdGUk9aRU4nXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnQ09NUExFVEVEJywgJ1BFTkRJTkcnLCAnQllQQVNTRUQnLCAnRkFJTEVEJywgJ0ZST1pFTicpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtSZXN1bHRGdWxsUGF5bG9hZCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHJlc3VsdAogICAgICAgIGlmIHNlbGYucmVzdWx0OgogICAgICAgICAgICBfZGljdFsncmVzdWx0J10gPSBzZWxmLnJlc3VsdC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgbWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZQogICAgICAgIGlmIHNlbGYubWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZToKICAgICAgICAgICAgX2RpY3RbJ21hdGNoZWRQcmVzY3JlZW5pbmdSdWxlJ10gPSBzZWxmLm1hdGNoZWRfcHJlc2NyZWVuaW5nX3J1bGUudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG1hdGNoZWRfbm9fdHJtX3NjcmVlbmluZ19ydWxlCiAgICAgICAgaWYgc2VsZi5tYXRjaGVkX25vX3RybV9zY3JlZW5pbmdfcnVsZToKICAgICAgICAgICAgX2RpY3RbJ21hdGNoZWROb1RybVNjcmVlbmluZ1J1bGUnXSA9IHNlbGYubWF0Y2hlZF9ub190cm1fc2NyZWVuaW5nX3J1bGUudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtSZXN1bHRGdWxsUGF5bG9hZCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJwcm92aWRlciI6IG9iai5nZXQoInByb3ZpZGVyIiksCiAgICAgICAgICAgICJ0aW1lc3RhbXAiOiBvYmouZ2V0KCJ0aW1lc3RhbXAiKSwKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAidmVyZGljdCI6IG9iai5nZXQoInZlcmRpY3QiKSwKICAgICAgICAgICAgImRlc3RBZGRyZXNzIjogb2JqLmdldCgiZGVzdEFkZHJlc3MiKSwKICAgICAgICAgICAgImRlc3RUYWciOiBvYmouZ2V0KCJkZXN0VGFnIiksCiAgICAgICAgICAgICJieXBhc3NSZWFzb24iOiBvYmouZ2V0KCJieXBhc3NSZWFzb24iKSwKICAgICAgICAgICAgImRldGFpbHNNZXNzYWdlIjogb2JqLmdldCgiZGV0YWlsc01lc3NhZ2UiKSwKICAgICAgICAgICAgImN1c3RvbWVySW50ZWdyYXRpb25JZCI6IG9iai5nZXQoImN1c3RvbWVySW50ZWdyYXRpb25JZCIpLAogICAgICAgICAgICAiY3VzdG9tZXJTaG9ydE5hbWUiOiBvYmouZ2V0KCJjdXN0b21lclNob3J0TmFtZSIpLAogICAgICAgICAgICAidHJhdmVsUnVsZU1lc3NhZ2VJZCI6IG9iai5nZXQoInRyYXZlbFJ1bGVNZXNzYWdlSWQiKSwKICAgICAgICAgICAgInJlc3VsdCI6IFRSTGlua1Byb3ZpZGVyUmVzdWx0V2l0aFJ1bGUyLmZyb21fZGljdChvYmpbInJlc3VsdCJdKSBpZiBvYmouZ2V0KCJyZXN1bHQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJtYXRjaGVkUHJlc2NyZWVuaW5nUnVsZSI6IFNjcmVlbmluZ1RSTGlua1ByZXNjcmVlbmluZ1J1bGUuZnJvbV9kaWN0KG9ialsibWF0Y2hlZFByZXNjcmVlbmluZ1J1bGUiXSkgaWYgb2JqLmdldCgibWF0Y2hlZFByZXNjcmVlbmluZ1J1bGUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJtYXRjaGVkTm9Ucm1TY3JlZW5pbmdSdWxlIjogU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uLmZyb21fZGljdChvYmpbIm1hdGNoZWROb1RybVNjcmVlbmluZ1J1bGUiXSkgaWYgb2JqLmdldCgibWF0Y2hlZE5vVHJtU2NyZWVuaW5nUnVsZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_rule_base.py b/fireblocks/models/tr_link_rule_base.py index 78ba89f6..00bc0843 100644 --- a/fireblocks/models/tr_link_rule_base.py +++ b/fireblocks/models/tr_link_rule_base.py @@ -1,128 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tr_link_amount import TRLinkAmount -from fireblocks.models.transaction_direction import TransactionDirection -from fireblocks.models.transaction_operation_enum import TransactionOperationEnum -from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum -from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkRuleBase(BaseModel): - """ - Base interface for TRLink policy rules - """ # noqa: E501 - customer_id: Optional[StrictStr] = Field(default=None, description="Reference to TrlinkCustomer.id", alias="customerId") - direction: Optional[TransactionDirection] = None - source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType") - source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType") - source_address: Optional[StrictStr] = Field(default=None, description="Source address", alias="sourceAddress") - dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType") - dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType") - dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress") - source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId") - dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId") - asset: Optional[StrictStr] = Field(default=None, description="Asset symbol") - base_asset: Optional[StrictStr] = Field(default=None, description="Base asset symbol", alias="baseAsset") - amount: Optional[TRLinkAmount] = None - network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol") - operation: Optional[TransactionOperationEnum] = None - description: Optional[StrictStr] = Field(default=None, description="Rule description") - is_default: Optional[StrictBool] = Field(default=False, description="Whether this is a default rule", alias="isDefault") - __properties: ClassVar[List[str]] = ["customerId", "direction", "sourceType", "sourceSubType", "sourceAddress", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "networkProtocol", "operation", "description", "isDefault"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkRuleBase from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkRuleBase from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "customerId": obj.get("customerId"), - "direction": obj.get("direction"), - "sourceType": obj.get("sourceType"), - "sourceSubType": obj.get("sourceSubType"), - "sourceAddress": obj.get("sourceAddress"), - "destType": obj.get("destType"), - "destSubType": obj.get("destSubType"), - "destAddress": obj.get("destAddress"), - "sourceId": obj.get("sourceId"), - "destId": obj.get("destId"), - "asset": obj.get("asset"), - "baseAsset": obj.get("baseAsset"), - "amount": TRLinkAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "networkProtocol": obj.get("networkProtocol"), - "operation": obj.get("operation"), - "description": obj.get("description"), - "isDefault": obj.get("isDefault") if obj.get("isDefault") is not None else False - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYW1vdW50IGltcG9ydCBUUkxpbmtBbW91bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9kaXJlY3Rpb24gaW1wb3J0IFRyYW5zYWN0aW9uRGlyZWN0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fb3BlcmF0aW9uX2VudW0gaW1wb3J0IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3BlZXJfc3ViX3R5cGVfZW51bSBpbXBvcnQgVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9wZWVyX3R5cGVfZW51bSBpbXBvcnQgVHJhbnNmZXJQZWVyVHlwZUVudW0KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVFJMaW5rUnVsZUJhc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgQmFzZSBpbnRlcmZhY2UgZm9yIFRSTGluayBwb2xpY3kgcnVsZXMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGN1c3RvbWVyX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUmVmZXJlbmNlIHRvIFRybGlua0N1c3RvbWVyLmlkIiwgYWxpYXM9ImN1c3RvbWVySWQiKQogICAgZGlyZWN0aW9uOiBPcHRpb25hbFtUcmFuc2FjdGlvbkRpcmVjdGlvbl0gPSBOb25lCiAgICBzb3VyY2VfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ic291cmNlVHlwZSIpCiAgICBzb3VyY2Vfc3ViX3R5cGU6IE9wdGlvbmFsW1RyYW5zZmVyUGVlclN1YlR5cGVFbnVtXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InNvdXJjZVN1YlR5cGUiKQogICAgc291cmNlX2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgYWRkcmVzcyIsIGFsaWFzPSJzb3VyY2VBZGRyZXNzIikKICAgIGRlc3RfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZGVzdFR5cGUiKQogICAgZGVzdF9zdWJfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyU3ViVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZGVzdFN1YlR5cGUiKQogICAgZGVzdF9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVzdGluYXRpb24gYWRkcmVzcyIsIGFsaWFzPSJkZXN0QWRkcmVzcyIpCiAgICBzb3VyY2VfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgSUQiLCBhbGlhcz0ic291cmNlSWQiKQogICAgZGVzdF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRlc3RpbmF0aW9uIElEIiwgYWxpYXM9ImRlc3RJZCIpCiAgICBhc3NldDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFzc2V0IHN5bWJvbCIpCiAgICBiYXNlX2Fzc2V0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQmFzZSBhc3NldCBzeW1ib2wiLCBhbGlhcz0iYmFzZUFzc2V0IikKICAgIGFtb3VudDogT3B0aW9uYWxbVFJMaW5rQW1vdW50XSA9IE5vbmUKICAgIG5ldHdvcmtfcHJvdG9jb2w6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOZXR3b3JrIHByb3RvY29sIiwgYWxpYXM9Im5ldHdvcmtQcm90b2NvbCIpCiAgICBvcGVyYXRpb246IE9wdGlvbmFsW1RyYW5zYWN0aW9uT3BlcmF0aW9uRW51bV0gPSBOb25lCiAgICBkZXNjcmlwdGlvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlJ1bGUgZGVzY3JpcHRpb24iKQogICAgaXNfZGVmYXVsdDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PUZhbHNlLCBkZXNjcmlwdGlvbj0iV2hldGhlciB0aGlzIGlzIGEgZGVmYXVsdCBydWxlIiwgYWxpYXM9ImlzRGVmYXVsdCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImN1c3RvbWVySWQiLCAiZGlyZWN0aW9uIiwgInNvdXJjZVR5cGUiLCAic291cmNlU3ViVHlwZSIsICJzb3VyY2VBZGRyZXNzIiwgImRlc3RUeXBlIiwgImRlc3RTdWJUeXBlIiwgImRlc3RBZGRyZXNzIiwgInNvdXJjZUlkIiwgImRlc3RJZCIsICJhc3NldCIsICJiYXNlQXNzZXQiLCAiYW1vdW50IiwgIm5ldHdvcmtQcm90b2NvbCIsICJvcGVyYXRpb24iLCAiZGVzY3JpcHRpb24iLCAiaXNEZWZhdWx0Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtSdWxlQmFzZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFtb3VudAogICAgICAgIGlmIHNlbGYuYW1vdW50OgogICAgICAgICAgICBfZGljdFsnYW1vdW50J10gPSBzZWxmLmFtb3VudC50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1J1bGVCYXNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImN1c3RvbWVySWQiOiBvYmouZ2V0KCJjdXN0b21lcklkIiksCiAgICAgICAgICAgICJkaXJlY3Rpb24iOiBvYmouZ2V0KCJkaXJlY3Rpb24iKSwKICAgICAgICAgICAgInNvdXJjZVR5cGUiOiBvYmouZ2V0KCJzb3VyY2VUeXBlIiksCiAgICAgICAgICAgICJzb3VyY2VTdWJUeXBlIjogb2JqLmdldCgic291cmNlU3ViVHlwZSIpLAogICAgICAgICAgICAic291cmNlQWRkcmVzcyI6IG9iai5nZXQoInNvdXJjZUFkZHJlc3MiKSwKICAgICAgICAgICAgImRlc3RUeXBlIjogb2JqLmdldCgiZGVzdFR5cGUiKSwKICAgICAgICAgICAgImRlc3RTdWJUeXBlIjogb2JqLmdldCgiZGVzdFN1YlR5cGUiKSwKICAgICAgICAgICAgImRlc3RBZGRyZXNzIjogb2JqLmdldCgiZGVzdEFkZHJlc3MiKSwKICAgICAgICAgICAgInNvdXJjZUlkIjogb2JqLmdldCgic291cmNlSWQiKSwKICAgICAgICAgICAgImRlc3RJZCI6IG9iai5nZXQoImRlc3RJZCIpLAogICAgICAgICAgICAiYXNzZXQiOiBvYmouZ2V0KCJhc3NldCIpLAogICAgICAgICAgICAiYmFzZUFzc2V0Ijogb2JqLmdldCgiYmFzZUFzc2V0IiksCiAgICAgICAgICAgICJhbW91bnQiOiBUUkxpbmtBbW91bnQuZnJvbV9kaWN0KG9ialsiYW1vdW50Il0pIGlmIG9iai5nZXQoImFtb3VudCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm5ldHdvcmtQcm90b2NvbCI6IG9iai5nZXQoIm5ldHdvcmtQcm90b2NvbCIpLAogICAgICAgICAgICAib3BlcmF0aW9uIjogb2JqLmdldCgib3BlcmF0aW9uIiksCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IG9iai5nZXQoImRlc2NyaXB0aW9uIiksCiAgICAgICAgICAgICJpc0RlZmF1bHQiOiBvYmouZ2V0KCJpc0RlZmF1bHQiKSBpZiBvYmouZ2V0KCJpc0RlZmF1bHQiKSBpcyBub3QgTm9uZSBlbHNlIEZhbHNlCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_set_destination_travel_rule_message_id_request.py b/fireblocks/models/tr_link_set_destination_travel_rule_message_id_request.py index 80c89c02..b52dea56 100644 --- a/fireblocks/models/tr_link_set_destination_travel_rule_message_id_request.py +++ b/fireblocks/models/tr_link_set_destination_travel_rule_message_id_request.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tr_link_transfer_peer_path import TRLinkTransferPeerPath -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkSetDestinationTravelRuleMessageIdRequest(BaseModel): - """ - Request to set TRM ID for specific transaction destination - """ # noqa: E501 - amount: StrictStr = Field(description="Destination amount for matching") - destination: TRLinkTransferPeerPath - travel_rule_message_id: Optional[StrictStr] = Field(description="Travel Rule Message ID to associate with destination (null to unset)", alias="travelRuleMessageId") - __properties: ClassVar[List[str]] = ["amount", "destination", "travelRuleMessageId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkSetDestinationTravelRuleMessageIdRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of destination - if self.destination: - _dict['destination'] = self.destination.to_dict() - # set to None if travel_rule_message_id (nullable) is None - # and model_fields_set contains the field - if self.travel_rule_message_id is None and "travel_rule_message_id" in self.model_fields_set: - _dict['travelRuleMessageId'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkSetDestinationTravelRuleMessageIdRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": obj.get("amount"), - "destination": TRLinkTransferPeerPath.from_dict(obj["destination"]) if obj.get("destination") is not None else None, - "travelRuleMessageId": obj.get("travelRuleMessageId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdHJhbnNmZXJfcGVlcl9wYXRoIGltcG9ydCBUUkxpbmtUcmFuc2ZlclBlZXJQYXRoCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgUmVxdWVzdCB0byBzZXQgVFJNIElEIGZvciBzcGVjaWZpYyB0cmFuc2FjdGlvbiBkZXN0aW5hdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgYW1vdW50OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iRGVzdGluYXRpb24gYW1vdW50IGZvciBtYXRjaGluZyIpCiAgICBkZXN0aW5hdGlvbjogVFJMaW5rVHJhbnNmZXJQZWVyUGF0aAogICAgdHJhdmVsX3J1bGVfbWVzc2FnZV9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUcmF2ZWwgUnVsZSBNZXNzYWdlIElEIHRvIGFzc29jaWF0ZSB3aXRoIGRlc3RpbmF0aW9uIChudWxsIHRvIHVuc2V0KSIsIGFsaWFzPSJ0cmF2ZWxSdWxlTWVzc2FnZUlkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYW1vdW50IiwgImRlc3RpbmF0aW9uIiwgInRyYXZlbFJ1bGVNZXNzYWdlSWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBkZXN0aW5hdGlvbgogICAgICAgIGlmIHNlbGYuZGVzdGluYXRpb246CiAgICAgICAgICAgIF9kaWN0WydkZXN0aW5hdGlvbiddID0gc2VsZi5kZXN0aW5hdGlvbi50b19kaWN0KCkKICAgICAgICAjIHNldCB0byBOb25lIGlmIHRyYXZlbF9ydWxlX21lc3NhZ2VfaWQgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnRyYXZlbF9ydWxlX21lc3NhZ2VfaWQgaXMgTm9uZSBhbmQgInRyYXZlbF9ydWxlX21lc3NhZ2VfaWQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3RyYXZlbFJ1bGVNZXNzYWdlSWQnXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtTZXREZXN0aW5hdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFtb3VudCI6IG9iai5nZXQoImFtb3VudCIpLAogICAgICAgICAgICAiZGVzdGluYXRpb24iOiBUUkxpbmtUcmFuc2ZlclBlZXJQYXRoLmZyb21fZGljdChvYmpbImRlc3RpbmF0aW9uIl0pIGlmIG9iai5nZXQoImRlc3RpbmF0aW9uIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAidHJhdmVsUnVsZU1lc3NhZ2VJZCI6IG9iai5nZXQoInRyYXZlbFJ1bGVNZXNzYWdlSWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_set_destination_travel_rule_message_id_response.py b/fireblocks/models/tr_link_set_destination_travel_rule_message_id_response.py index 58b7ddb0..bf3d77c7 100644 --- a/fireblocks/models/tr_link_set_destination_travel_rule_message_id_response.py +++ b/fireblocks/models/tr_link_set_destination_travel_rule_message_id_response.py @@ -1,99 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkSetDestinationTravelRuleMessageIdResponse(BaseModel): - """ - TRLinkSetDestinationTravelRuleMessageIdResponse - """ # noqa: E501 - success: StrictBool = Field(description="Whether the operation was successful") - updated_destinations: Union[StrictFloat, StrictInt] = Field(description="Number of destinations updated", alias="updatedDestinations") - failed_destinations: Union[StrictFloat, StrictInt] = Field(description="Number of destinations that failed to update", alias="failedDestinations") - errors: Optional[List[StrictStr]] = Field(default=None, description="List of errors (if any)") - __properties: ClassVar[List[str]] = ["success", "updatedDestinations", "failedDestinations", "errors"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkSetDestinationTravelRuleMessageIdResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if errors (nullable) is None - # and model_fields_set contains the field - if self.errors is None and "errors" in self.model_fields_set: - _dict['errors'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkSetDestinationTravelRuleMessageIdResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "success": obj.get("success"), - "updatedDestinations": obj.get("updatedDestinations"), - "failedDestinations": obj.get("failedDestinations"), - "errors": obj.get("errors") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHN1Y2Nlc3M6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iV2hldGhlciB0aGUgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsIikKICAgIHVwZGF0ZWRfZGVzdGluYXRpb25zOiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJOdW1iZXIgb2YgZGVzdGluYXRpb25zIHVwZGF0ZWQiLCBhbGlhcz0idXBkYXRlZERlc3RpbmF0aW9ucyIpCiAgICBmYWlsZWRfZGVzdGluYXRpb25zOiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJOdW1iZXIgb2YgZGVzdGluYXRpb25zIHRoYXQgZmFpbGVkIHRvIHVwZGF0ZSIsIGFsaWFzPSJmYWlsZWREZXN0aW5hdGlvbnMiKQogICAgZXJyb3JzOiBPcHRpb25hbFtMaXN0W1N0cmljdFN0cl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTGlzdCBvZiBlcnJvcnMgKGlmIGFueSkiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzdWNjZXNzIiwgInVwZGF0ZWREZXN0aW5hdGlvbnMiLCAiZmFpbGVkRGVzdGluYXRpb25zIiwgImVycm9ycyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgZXJyb3JzIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5lcnJvcnMgaXMgTm9uZSBhbmQgImVycm9ycyIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnZXJyb3JzJ10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3VjY2VzcyI6IG9iai5nZXQoInN1Y2Nlc3MiKSwKICAgICAgICAgICAgInVwZGF0ZWREZXN0aW5hdGlvbnMiOiBvYmouZ2V0KCJ1cGRhdGVkRGVzdGluYXRpb25zIiksCiAgICAgICAgICAgICJmYWlsZWREZXN0aW5hdGlvbnMiOiBvYmouZ2V0KCJmYWlsZWREZXN0aW5hdGlvbnMiKSwKICAgICAgICAgICAgImVycm9ycyI6IG9iai5nZXQoImVycm9ycyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_set_transaction_travel_rule_message_id_request.py b/fireblocks/models/tr_link_set_transaction_travel_rule_message_id_request.py index 7feeb5de..93296919 100644 --- a/fireblocks/models/tr_link_set_transaction_travel_rule_message_id_request.py +++ b/fireblocks/models/tr_link_set_transaction_travel_rule_message_id_request.py @@ -1,93 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkSetTransactionTravelRuleMessageIdRequest(BaseModel): - """ - TRLinkSetTransactionTravelRuleMessageIdRequest - """ # noqa: E501 - travel_rule_message_id: Optional[StrictStr] = Field(description="Travel Rule Message ID to associate with transaction (null to unset)", alias="travelRuleMessageId") - __properties: ClassVar[List[str]] = ["travelRuleMessageId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkSetTransactionTravelRuleMessageIdRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if travel_rule_message_id (nullable) is None - # and model_fields_set contains the field - if self.travel_rule_message_id is None and "travel_rule_message_id" in self.model_fields_set: - _dict['travelRuleMessageId'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkSetTransactionTravelRuleMessageIdRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "travelRuleMessageId": obj.get("travelRuleMessageId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHRyYXZlbF9ydWxlX21lc3NhZ2VfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVHJhdmVsIFJ1bGUgTWVzc2FnZSBJRCB0byBhc3NvY2lhdGUgd2l0aCB0cmFuc2FjdGlvbiAobnVsbCB0byB1bnNldCkiLCBhbGlhcz0idHJhdmVsUnVsZU1lc3NhZ2VJZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInRyYXZlbFJ1bGVNZXNzYWdlSWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYudHJhdmVsX3J1bGVfbWVzc2FnZV9pZCBpcyBOb25lIGFuZCAidHJhdmVsX3J1bGVfbWVzc2FnZV9pZCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsndHJhdmVsUnVsZU1lc3NhZ2VJZCddID0gTm9uZQoKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHJhdmVsUnVsZU1lc3NhZ2VJZCI6IG9iai5nZXQoInRyYXZlbFJ1bGVNZXNzYWdlSWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_set_transaction_travel_rule_message_id_response.py b/fireblocks/models/tr_link_set_transaction_travel_rule_message_id_response.py index ed272b96..62149f77 100644 --- a/fireblocks/models/tr_link_set_transaction_travel_rule_message_id_response.py +++ b/fireblocks/models/tr_link_set_transaction_travel_rule_message_id_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkSetTransactionTravelRuleMessageIdResponse(BaseModel): - """ - TRLinkSetTransactionTravelRuleMessageIdResponse - """ # noqa: E501 - success: StrictBool = Field(description="Whether the operation was successful") - __properties: ClassVar[List[str]] = ["success"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkSetTransactionTravelRuleMessageIdResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkSetTransactionTravelRuleMessageIdResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "success": obj.get("success") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgc3VjY2VzczogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJXaGV0aGVyIHRoZSBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzdWNjZXNzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzdWNjZXNzIjogb2JqLmdldCgic3VjY2VzcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_source_transfer_peer_path.py b/fireblocks/models/tr_link_source_transfer_peer_path.py index 46b7c02c..a8978eda 100644 --- a/fireblocks/models/tr_link_source_transfer_peer_path.py +++ b/fireblocks/models/tr_link_source_transfer_peer_path.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkSourceTransferPeerPath(BaseModel): - """ - Source peer path for transaction - """ # noqa: E501 - type: StrictStr = Field(description="Source peer type (e.g., VAULT_ACCOUNT, UNKNOWN)") - id: Optional[StrictStr] = Field(default=None, description="Source peer ID") - wallet_id: Optional[StrictStr] = Field(default=None, description="Source wallet ID", alias="walletId") - __properties: ClassVar[List[str]] = ["type", "id", "walletId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkSourceTransferPeerPath from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if id (nullable) is None - # and model_fields_set contains the field - if self.id is None and "id" in self.model_fields_set: - _dict['id'] = None - - # set to None if wallet_id (nullable) is None - # and model_fields_set contains the field - if self.wallet_id is None and "wallet_id" in self.model_fields_set: - _dict['walletId'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkSourceTransferPeerPath from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "id": obj.get("id"), - "walletId": obj.get("walletId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtTb3VyY2VUcmFuc2ZlclBlZXJQYXRoKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFNvdXJjZSBwZWVyIHBhdGggZm9yIHRyYW5zYWN0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0eXBlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iU291cmNlIHBlZXIgdHlwZSAoZS5nLiwgVkFVTFRfQUNDT1VOVCwgVU5LTk9XTikiKQogICAgaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgcGVlciBJRCIpCiAgICB3YWxsZXRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2Ugd2FsbGV0IElEIiwgYWxpYXM9IndhbGxldElkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidHlwZSIsICJpZCIsICJ3YWxsZXRJZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rU291cmNlVHJhbnNmZXJQZWVyUGF0aCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBpZCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuaWQgaXMgTm9uZSBhbmQgImlkIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydpZCddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIHdhbGxldF9pZCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYud2FsbGV0X2lkIGlzIE5vbmUgYW5kICJ3YWxsZXRfaWQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3dhbGxldElkJ10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rU291cmNlVHJhbnNmZXJQZWVyUGF0aCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAid2FsbGV0SWQiOiBvYmouZ2V0KCJ3YWxsZXRJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_test_connection_response.py b/fireblocks/models/tr_link_test_connection_response.py index 28f6d374..a7831646 100644 --- a/fireblocks/models/tr_link_test_connection_response.py +++ b/fireblocks/models/tr_link_test_connection_response.py @@ -1,112 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkTestConnectionResponse(BaseModel): - """ - TRLinkTestConnectionResponse - """ # noqa: E501 - success: StrictBool = Field(description="Whether the connection test was successful") - message: Optional[StrictStr] = Field(default=None, description="Additional message about the connection test (present when success is false)") - timestamp: datetime = Field(description="Timestamp when the test was performed (ISO 8601 format)") - partner_ident: Optional[StrictStr] = Field(default=None, description="Partner identification code", alias="partnerIdent") - partner_name: Optional[StrictStr] = Field(default=None, description="Partner display name", alias="partnerName") - __properties: ClassVar[List[str]] = ["success", "message", "timestamp", "partnerIdent", "partnerName"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkTestConnectionResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if message (nullable) is None - # and model_fields_set contains the field - if self.message is None and "message" in self.model_fields_set: - _dict['message'] = None - - # set to None if partner_ident (nullable) is None - # and model_fields_set contains the field - if self.partner_ident is None and "partner_ident" in self.model_fields_set: - _dict['partnerIdent'] = None - - # set to None if partner_name (nullable) is None - # and model_fields_set contains the field - if self.partner_name is None and "partner_name" in self.model_fields_set: - _dict['partnerName'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkTestConnectionResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "success": obj.get("success"), - "message": obj.get("message"), - "timestamp": obj.get("timestamp"), - "partnerIdent": obj.get("partnerIdent"), - "partnerName": obj.get("partnerName") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtUZXN0Q29ubmVjdGlvblJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRSTGlua1Rlc3RDb25uZWN0aW9uUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHN1Y2Nlc3M6IFN0cmljdEJvb2wgPSBGaWVsZChkZXNjcmlwdGlvbj0iV2hldGhlciB0aGUgY29ubmVjdGlvbiB0ZXN0IHdhcyBzdWNjZXNzZnVsIikKICAgIG1lc3NhZ2U6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBZGRpdGlvbmFsIG1lc3NhZ2UgYWJvdXQgdGhlIGNvbm5lY3Rpb24gdGVzdCAocHJlc2VudCB3aGVuIHN1Y2Nlc3MgaXMgZmFsc2UpIikKICAgIHRpbWVzdGFtcDogZGF0ZXRpbWUgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGltZXN0YW1wIHdoZW4gdGhlIHRlc3Qgd2FzIHBlcmZvcm1lZCAoSVNPIDg2MDEgZm9ybWF0KSIpCiAgICBwYXJ0bmVyX2lkZW50OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUGFydG5lciBpZGVudGlmaWNhdGlvbiBjb2RlIiwgYWxpYXM9InBhcnRuZXJJZGVudCIpCiAgICBwYXJ0bmVyX25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJQYXJ0bmVyIGRpc3BsYXkgbmFtZSIsIGFsaWFzPSJwYXJ0bmVyTmFtZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInN1Y2Nlc3MiLCAibWVzc2FnZSIsICJ0aW1lc3RhbXAiLCAicGFydG5lcklkZW50IiwgInBhcnRuZXJOYW1lIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtUZXN0Q29ubmVjdGlvblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIHNldCB0byBOb25lIGlmIG1lc3NhZ2UgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLm1lc3NhZ2UgaXMgTm9uZSBhbmQgIm1lc3NhZ2UiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ21lc3NhZ2UnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBwYXJ0bmVyX2lkZW50IChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5wYXJ0bmVyX2lkZW50IGlzIE5vbmUgYW5kICJwYXJ0bmVyX2lkZW50IiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydwYXJ0bmVySWRlbnQnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBwYXJ0bmVyX25hbWUgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnBhcnRuZXJfbmFtZSBpcyBOb25lIGFuZCAicGFydG5lcl9uYW1lIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydwYXJ0bmVyTmFtZSddID0gTm9uZQoKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1Rlc3RDb25uZWN0aW9uUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3VjY2VzcyI6IG9iai5nZXQoInN1Y2Nlc3MiKSwKICAgICAgICAgICAgIm1lc3NhZ2UiOiBvYmouZ2V0KCJtZXNzYWdlIiksCiAgICAgICAgICAgICJ0aW1lc3RhbXAiOiBvYmouZ2V0KCJ0aW1lc3RhbXAiKSwKICAgICAgICAgICAgInBhcnRuZXJJZGVudCI6IG9iai5nZXQoInBhcnRuZXJJZGVudCIpLAogICAgICAgICAgICAicGFydG5lck5hbWUiOiBvYmouZ2V0KCJwYXJ0bmVyTmFtZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_thresholds.py b/fireblocks/models/tr_link_thresholds.py index 5803cdfc..788352da 100644 --- a/fireblocks/models/tr_link_thresholds.py +++ b/fireblocks/models/tr_link_thresholds.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkThresholds(BaseModel): - """ - TRLinkThresholds - """ # noqa: E501 - amount: Optional[StrictStr] = Field(default=None, description="Threshold amount") - currency: Optional[StrictStr] = Field(default=None, description="Currency code") - __properties: ClassVar[List[str]] = ["amount", "currency"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkThresholds from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkThresholds from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": obj.get("amount"), - "currency": obj.get("currency") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtUaHJlc2hvbGRzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRSTGlua1RocmVzaG9sZHMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFtb3VudDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRocmVzaG9sZCBhbW91bnQiKQogICAgY3VycmVuY3k6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJDdXJyZW5jeSBjb2RlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYW1vdW50IiwgImN1cnJlbmN5Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtUaHJlc2hvbGRzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1RocmVzaG9sZHMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYW1vdW50Ijogb2JqLmdldCgiYW1vdW50IiksCiAgICAgICAgICAgICJjdXJyZW5jeSI6IG9iai5nZXQoImN1cnJlbmN5IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_transaction_direction.py b/fireblocks/models/tr_link_transaction_direction.py index 6c235e51..fa3c1039 100644 --- a/fireblocks/models/tr_link_transaction_direction.py +++ b/fireblocks/models/tr_link_transaction_direction.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TRLinkTransactionDirection(str, Enum): - """ - Transaction direction from workspace perspective - """ - - """ - allowed enum values - """ - INBOUND = 'INBOUND' - OUTBOUND = 'OUTBOUND' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TRLinkTransactionDirection from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUUkxpbmtUcmFuc2FjdGlvbkRpcmVjdGlvbihzdHIsIEVudW0pOgogICAgIiIiCiAgICBUcmFuc2FjdGlvbiBkaXJlY3Rpb24gZnJvbSB3b3Jrc3BhY2UgcGVyc3BlY3RpdmUKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBJTkJPVU5EID0gJ0lOQk9VTkQnCiAgICBPVVRCT1VORCA9ICdPVVRCT1VORCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtUcmFuc2FjdGlvbkRpcmVjdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_transfer_peer_path.py b/fireblocks/models/tr_link_transfer_peer_path.py index 936b39a1..0d3f8b4f 100644 --- a/fireblocks/models/tr_link_transfer_peer_path.py +++ b/fireblocks/models/tr_link_transfer_peer_path.py @@ -1,114 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkTransferPeerPath(BaseModel): - """ - Transfer peer path for destination matching - """ # noqa: E501 - type: Optional[StrictStr] = Field(default=None, description="Peer type") - id: Optional[StrictStr] = Field(default=None, description="Peer ID") - sub_type: Optional[StrictStr] = Field(default=None, description="Peer subtype", alias="subType") - address: Optional[StrictStr] = Field(default=None, description="Peer address") - __properties: ClassVar[List[str]] = ["type", "id", "subType", "address"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkTransferPeerPath from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if type (nullable) is None - # and model_fields_set contains the field - if self.type is None and "type" in self.model_fields_set: - _dict['type'] = None - - # set to None if id (nullable) is None - # and model_fields_set contains the field - if self.id is None and "id" in self.model_fields_set: - _dict['id'] = None - - # set to None if sub_type (nullable) is None - # and model_fields_set contains the field - if self.sub_type is None and "sub_type" in self.model_fields_set: - _dict['subType'] = None - - # set to None if address (nullable) is None - # and model_fields_set contains the field - if self.address is None and "address" in self.model_fields_set: - _dict['address'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkTransferPeerPath from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "id": obj.get("id"), - "subType": obj.get("subType"), - "address": obj.get("address") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtUcmFuc2ZlclBlZXJQYXRoKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRyYW5zZmVyIHBlZXIgcGF0aCBmb3IgZGVzdGluYXRpb24gbWF0Y2hpbmcKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJQZWVyIHR5cGUiKQogICAgaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJQZWVyIElEIikKICAgIHN1Yl90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUGVlciBzdWJ0eXBlIiwgYWxpYXM9InN1YlR5cGUiKQogICAgYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlBlZXIgYWRkcmVzcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiLCAiaWQiLCAic3ViVHlwZSIsICJhZGRyZXNzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtUcmFuc2ZlclBlZXJQYXRoIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIHNldCB0byBOb25lIGlmIHR5cGUgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnR5cGUgaXMgTm9uZSBhbmQgInR5cGUiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3R5cGUnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBpZCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuaWQgaXMgTm9uZSBhbmQgImlkIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydpZCddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIHN1Yl90eXBlIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5zdWJfdHlwZSBpcyBOb25lIGFuZCAic3ViX3R5cGUiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3N1YlR5cGUnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBhZGRyZXNzIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5hZGRyZXNzIGlzIE5vbmUgYW5kICJhZGRyZXNzIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydhZGRyZXNzJ10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rVHJhbnNmZXJQZWVyUGF0aCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAic3ViVHlwZSI6IG9iai5nZXQoInN1YlR5cGUiKSwKICAgICAgICAgICAgImFkZHJlc3MiOiBvYmouZ2V0KCJhZGRyZXNzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_trm_direction.py b/fireblocks/models/tr_link_trm_direction.py index a60678c9..19c2d8c5 100644 --- a/fireblocks/models/tr_link_trm_direction.py +++ b/fireblocks/models/tr_link_trm_direction.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TRLinkTrmDirection(str, Enum): - """ - Transaction direction for TRM (in = inbound, out = outbound) - """ - - """ - allowed enum values - """ - IN = 'in' - OUT = 'out' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TRLinkTrmDirection from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUUkxpbmtUcm1EaXJlY3Rpb24oc3RyLCBFbnVtKToKICAgICIiIgogICAgVHJhbnNhY3Rpb24gZGlyZWN0aW9uIGZvciBUUk0gKGluID0gaW5ib3VuZCwgb3V0ID0gb3V0Ym91bmQpCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgSU4gPSAnaW4nCiAgICBPVVQgPSAnb3V0JwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1RybURpcmVjdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_trm_info_response.py b/fireblocks/models/tr_link_trm_info_response.py index 5a71ac8c..e0503e8b 100644 --- a/fireblocks/models/tr_link_trm_info_response.py +++ b/fireblocks/models/tr_link_trm_info_response.py @@ -1,161 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tr_link_asset import TRLinkAsset -from fireblocks.models.tr_link_fiat_value import TRLinkFiatValue -from fireblocks.models.tr_link_ivms_response import TRLinkIvmsResponse -from fireblocks.models.tr_link_provider_data import TRLinkProviderData -from fireblocks.models.tr_link_trm_direction import TRLinkTrmDirection -from fireblocks.models.tr_link_trm_status import TRLinkTrmStatus -from fireblocks.models.tr_link_txn_info import TRLinkTxnInfo -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkTrmInfoResponse(BaseModel): - """ - Travel Rule Message information - """ # noqa: E501 - id: StrictStr = Field(description="TRM message ID") - version: Optional[StrictStr] = Field(default=None, description="TRM version") - status: Optional[TRLinkTrmStatus] = None - reason: Optional[StrictStr] = Field(default=None, description="Human readable reason for the current status") - external_id: StrictStr = Field(description="External ID (e.g., Fireblocks ID)", alias="externalId") - asset: TRLinkAsset - amount: StrictStr = Field(description="Transaction amount in asset units") - fiat_value: Optional[TRLinkFiatValue] = Field(default=None, alias="fiatValue") - direction: TRLinkTrmDirection - originator_vasp_id: Optional[StrictStr] = Field(default=None, description="ID of the originator VASP", alias="originatorVaspId") - beneficiary_vasp_id: Optional[StrictStr] = Field(default=None, description="ID of the beneficiary VASP", alias="beneficiaryVaspId") - txn_info: TRLinkTxnInfo = Field(alias="txnInfo") - ivms101: TRLinkIvmsResponse - provider_data: Optional[TRLinkProviderData] = Field(default=None, alias="providerData") - __properties: ClassVar[List[str]] = ["id", "version", "status", "reason", "externalId", "asset", "amount", "fiatValue", "direction", "originatorVaspId", "beneficiaryVaspId", "txnInfo", "ivms101", "providerData"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkTrmInfoResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of asset - if self.asset: - _dict['asset'] = self.asset.to_dict() - # override the default output from pydantic by calling `to_dict()` of fiat_value - if self.fiat_value: - _dict['fiatValue'] = self.fiat_value.to_dict() - # override the default output from pydantic by calling `to_dict()` of txn_info - if self.txn_info: - _dict['txnInfo'] = self.txn_info.to_dict() - # override the default output from pydantic by calling `to_dict()` of ivms101 - if self.ivms101: - _dict['ivms101'] = self.ivms101.to_dict() - # override the default output from pydantic by calling `to_dict()` of provider_data - if self.provider_data: - _dict['providerData'] = self.provider_data.to_dict() - # set to None if version (nullable) is None - # and model_fields_set contains the field - if self.version is None and "version" in self.model_fields_set: - _dict['version'] = None - - # set to None if status (nullable) is None - # and model_fields_set contains the field - if self.status is None and "status" in self.model_fields_set: - _dict['status'] = None - - # set to None if reason (nullable) is None - # and model_fields_set contains the field - if self.reason is None and "reason" in self.model_fields_set: - _dict['reason'] = None - - # set to None if originator_vasp_id (nullable) is None - # and model_fields_set contains the field - if self.originator_vasp_id is None and "originator_vasp_id" in self.model_fields_set: - _dict['originatorVaspId'] = None - - # set to None if beneficiary_vasp_id (nullable) is None - # and model_fields_set contains the field - if self.beneficiary_vasp_id is None and "beneficiary_vasp_id" in self.model_fields_set: - _dict['beneficiaryVaspId'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkTrmInfoResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "version": obj.get("version"), - "status": obj.get("status"), - "reason": obj.get("reason"), - "externalId": obj.get("externalId"), - "asset": TRLinkAsset.from_dict(obj["asset"]) if obj.get("asset") is not None else None, - "amount": obj.get("amount"), - "fiatValue": TRLinkFiatValue.from_dict(obj["fiatValue"]) if obj.get("fiatValue") is not None else None, - "direction": obj.get("direction"), - "originatorVaspId": obj.get("originatorVaspId"), - "beneficiaryVaspId": obj.get("beneficiaryVaspId"), - "txnInfo": TRLinkTxnInfo.from_dict(obj["txnInfo"]) if obj.get("txnInfo") is not None else None, - "ivms101": TRLinkIvmsResponse.from_dict(obj["ivms101"]) if obj.get("ivms101") is not None else None, - "providerData": TRLinkProviderData.from_dict(obj["providerData"]) if obj.get("providerData") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXNzZXQgaW1wb3J0IFRSTGlua0Fzc2V0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19maWF0X3ZhbHVlIGltcG9ydCBUUkxpbmtGaWF0VmFsdWUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2l2bXNfcmVzcG9uc2UgaW1wb3J0IFRSTGlua0l2bXNSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJvdmlkZXJfZGF0YSBpbXBvcnQgVFJMaW5rUHJvdmlkZXJEYXRhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua190cm1fZGlyZWN0aW9uIGltcG9ydCBUUkxpbmtUcm1EaXJlY3Rpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3RybV9zdGF0dXMgaW1wb3J0IFRSTGlua1RybVN0YXR1cwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdHhuX2luZm8gaW1wb3J0IFRSTGlua1R4bkluZm8KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVFJMaW5rVHJtSW5mb1Jlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRyYXZlbCBSdWxlIE1lc3NhZ2UgaW5mb3JtYXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVFJNIG1lc3NhZ2UgSUQiKQogICAgdmVyc2lvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRSTSB2ZXJzaW9uIikKICAgIHN0YXR1czogT3B0aW9uYWxbVFJMaW5rVHJtU3RhdHVzXSA9IE5vbmUKICAgIHJlYXNvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ikh1bWFuIHJlYWRhYmxlIHJlYXNvbiBmb3IgdGhlIGN1cnJlbnQgc3RhdHVzIikKICAgIGV4dGVybmFsX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iRXh0ZXJuYWwgSUQgKGUuZy4sIEZpcmVibG9ja3MgSUQpIiwgYWxpYXM9ImV4dGVybmFsSWQiKQogICAgYXNzZXQ6IFRSTGlua0Fzc2V0CiAgICBhbW91bnQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUcmFuc2FjdGlvbiBhbW91bnQgaW4gYXNzZXQgdW5pdHMiKQogICAgZmlhdF92YWx1ZTogT3B0aW9uYWxbVFJMaW5rRmlhdFZhbHVlXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImZpYXRWYWx1ZSIpCiAgICBkaXJlY3Rpb246IFRSTGlua1RybURpcmVjdGlvbgogICAgb3JpZ2luYXRvcl92YXNwX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSUQgb2YgdGhlIG9yaWdpbmF0b3IgVkFTUCIsIGFsaWFzPSJvcmlnaW5hdG9yVmFzcElkIikKICAgIGJlbmVmaWNpYXJ5X3Zhc3BfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJRCBvZiB0aGUgYmVuZWZpY2lhcnkgVkFTUCIsIGFsaWFzPSJiZW5lZmljaWFyeVZhc3BJZCIpCiAgICB0eG5faW5mbzogVFJMaW5rVHhuSW5mbyA9IEZpZWxkKGFsaWFzPSJ0eG5JbmZvIikKICAgIGl2bXMxMDE6IFRSTGlua0l2bXNSZXNwb25zZQogICAgcHJvdmlkZXJfZGF0YTogT3B0aW9uYWxbVFJMaW5rUHJvdmlkZXJEYXRhXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InByb3ZpZGVyRGF0YSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgInZlcnNpb24iLCAic3RhdHVzIiwgInJlYXNvbiIsICJleHRlcm5hbElkIiwgImFzc2V0IiwgImFtb3VudCIsICJmaWF0VmFsdWUiLCAiZGlyZWN0aW9uIiwgIm9yaWdpbmF0b3JWYXNwSWQiLCAiYmVuZWZpY2lhcnlWYXNwSWQiLCAidHhuSW5mbyIsICJpdm1zMTAxIiwgInByb3ZpZGVyRGF0YSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rVHJtSW5mb1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYXNzZXQKICAgICAgICBpZiBzZWxmLmFzc2V0OgogICAgICAgICAgICBfZGljdFsnYXNzZXQnXSA9IHNlbGYuYXNzZXQudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGZpYXRfdmFsdWUKICAgICAgICBpZiBzZWxmLmZpYXRfdmFsdWU6CiAgICAgICAgICAgIF9kaWN0WydmaWF0VmFsdWUnXSA9IHNlbGYuZmlhdF92YWx1ZS50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgdHhuX2luZm8KICAgICAgICBpZiBzZWxmLnR4bl9pbmZvOgogICAgICAgICAgICBfZGljdFsndHhuSW5mbyddID0gc2VsZi50eG5faW5mby50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgaXZtczEwMQogICAgICAgIGlmIHNlbGYuaXZtczEwMToKICAgICAgICAgICAgX2RpY3RbJ2l2bXMxMDEnXSA9IHNlbGYuaXZtczEwMS50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcHJvdmlkZXJfZGF0YQogICAgICAgIGlmIHNlbGYucHJvdmlkZXJfZGF0YToKICAgICAgICAgICAgX2RpY3RbJ3Byb3ZpZGVyRGF0YSddID0gc2VsZi5wcm92aWRlcl9kYXRhLnRvX2RpY3QoKQogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgdmVyc2lvbiAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYudmVyc2lvbiBpcyBOb25lIGFuZCAidmVyc2lvbiIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsndmVyc2lvbiddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIHN0YXR1cyAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuc3RhdHVzIGlzIE5vbmUgYW5kICJzdGF0dXMiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3N0YXR1cyddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIHJlYXNvbiAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYucmVhc29uIGlzIE5vbmUgYW5kICJyZWFzb24iIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3JlYXNvbiddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIG9yaWdpbmF0b3JfdmFzcF9pZCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYub3JpZ2luYXRvcl92YXNwX2lkIGlzIE5vbmUgYW5kICJvcmlnaW5hdG9yX3Zhc3BfaWQiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ29yaWdpbmF0b3JWYXNwSWQnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBiZW5lZmljaWFyeV92YXNwX2lkIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5iZW5lZmljaWFyeV92YXNwX2lkIGlzIE5vbmUgYW5kICJiZW5lZmljaWFyeV92YXNwX2lkIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydiZW5lZmljaWFyeVZhc3BJZCddID0gTm9uZQoKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1RybUluZm9SZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJ2ZXJzaW9uIjogb2JqLmdldCgidmVyc2lvbiIpLAogICAgICAgICAgICAic3RhdHVzIjogb2JqLmdldCgic3RhdHVzIiksCiAgICAgICAgICAgICJyZWFzb24iOiBvYmouZ2V0KCJyZWFzb24iKSwKICAgICAgICAgICAgImV4dGVybmFsSWQiOiBvYmouZ2V0KCJleHRlcm5hbElkIiksCiAgICAgICAgICAgICJhc3NldCI6IFRSTGlua0Fzc2V0LmZyb21fZGljdChvYmpbImFzc2V0Il0pIGlmIG9iai5nZXQoImFzc2V0IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiYW1vdW50Ijogb2JqLmdldCgiYW1vdW50IiksCiAgICAgICAgICAgICJmaWF0VmFsdWUiOiBUUkxpbmtGaWF0VmFsdWUuZnJvbV9kaWN0KG9ialsiZmlhdFZhbHVlIl0pIGlmIG9iai5nZXQoImZpYXRWYWx1ZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImRpcmVjdGlvbiI6IG9iai5nZXQoImRpcmVjdGlvbiIpLAogICAgICAgICAgICAib3JpZ2luYXRvclZhc3BJZCI6IG9iai5nZXQoIm9yaWdpbmF0b3JWYXNwSWQiKSwKICAgICAgICAgICAgImJlbmVmaWNpYXJ5VmFzcElkIjogb2JqLmdldCgiYmVuZWZpY2lhcnlWYXNwSWQiKSwKICAgICAgICAgICAgInR4bkluZm8iOiBUUkxpbmtUeG5JbmZvLmZyb21fZGljdChvYmpbInR4bkluZm8iXSkgaWYgb2JqLmdldCgidHhuSW5mbyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIml2bXMxMDEiOiBUUkxpbmtJdm1zUmVzcG9uc2UuZnJvbV9kaWN0KG9ialsiaXZtczEwMSJdKSBpZiBvYmouZ2V0KCJpdm1zMTAxIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAicHJvdmlkZXJEYXRhIjogVFJMaW5rUHJvdmlkZXJEYXRhLmZyb21fZGljdChvYmpbInByb3ZpZGVyRGF0YSJdKSBpZiBvYmouZ2V0KCJwcm92aWRlckRhdGEiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_trm_screening_status.py b/fireblocks/models/tr_link_trm_screening_status.py index 035d8cfe..9cbc6190 100644 --- a/fireblocks/models/tr_link_trm_screening_status.py +++ b/fireblocks/models/tr_link_trm_screening_status.py @@ -1,40 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TRLinkTrmScreeningStatus(str, Enum): - """ - TRLink TRM screening status - """ - - """ - allowed enum values - """ - PENDING = 'PENDING' - ACCEPTED = 'ACCEPTED' - REJECTED = 'REJECTED' - FAILED = 'FAILED' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TRLinkTrmScreeningStatus from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUUkxpbmtUcm1TY3JlZW5pbmdTdGF0dXMoc3RyLCBFbnVtKToKICAgICIiIgogICAgVFJMaW5rIFRSTSBzY3JlZW5pbmcgc3RhdHVzCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgUEVORElORyA9ICdQRU5ESU5HJwogICAgQUNDRVBURUQgPSAnQUNDRVBURUQnCiAgICBSRUpFQ1RFRCA9ICdSRUpFQ1RFRCcKICAgIEZBSUxFRCA9ICdGQUlMRUQnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rVHJtU2NyZWVuaW5nU3RhdHVzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/tr_link_trm_screening_status_enum.py b/fireblocks/models/tr_link_trm_screening_status_enum.py index f861feab..9ba5dfeb 100644 --- a/fireblocks/models/tr_link_trm_screening_status_enum.py +++ b/fireblocks/models/tr_link_trm_screening_status_enum.py @@ -1,40 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TRLinkTrmScreeningStatusEnum(str, Enum): - """ - TRLink TRM screening status - """ - - """ - allowed enum values - """ - PENDING = 'PENDING' - ACCEPTED = 'ACCEPTED' - REJECTED = 'REJECTED' - FAILED = 'FAILED' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TRLinkTrmScreeningStatusEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUUkxpbmtUcm1TY3JlZW5pbmdTdGF0dXNFbnVtKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIFRSTGluayBUUk0gc2NyZWVuaW5nIHN0YXR1cwogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIFBFTkRJTkcgPSAnUEVORElORycKICAgIEFDQ0VQVEVEID0gJ0FDQ0VQVEVEJwogICAgUkVKRUNURUQgPSAnUkVKRUNURUQnCiAgICBGQUlMRUQgPSAnRkFJTEVEJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1RybVNjcmVlbmluZ1N0YXR1c0VudW0gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_trm_status.py b/fireblocks/models/tr_link_trm_status.py index d935ad17..8b44a511 100644 --- a/fireblocks/models/tr_link_trm_status.py +++ b/fireblocks/models/tr_link_trm_status.py @@ -1,40 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TRLinkTrmStatus(str, Enum): - """ - Current status of the Travel Rule Message - """ - - """ - allowed enum values - """ - PENDING = 'PENDING' - ACCEPTED = 'ACCEPTED' - REJECTED = 'REJECTED' - FAILED = 'FAILED' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TRLinkTrmStatus from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUUkxpbmtUcm1TdGF0dXMoc3RyLCBFbnVtKToKICAgICIiIgogICAgQ3VycmVudCBzdGF0dXMgb2YgdGhlIFRyYXZlbCBSdWxlIE1lc3NhZ2UKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBQRU5ESU5HID0gJ1BFTkRJTkcnCiAgICBBQ0NFUFRFRCA9ICdBQ0NFUFRFRCcKICAgIFJFSkVDVEVEID0gJ1JFSkVDVEVEJwogICAgRkFJTEVEID0gJ0ZBSUxFRCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtUcm1TdGF0dXMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_txn_info.py b/fireblocks/models/tr_link_txn_info.py index 804d535f..5a8182f1 100644 --- a/fireblocks/models/tr_link_txn_info.py +++ b/fireblocks/models/tr_link_txn_info.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkTxnInfo(BaseModel): - """ - TRLinkTxnInfo - """ # noqa: E501 - originator_wallet_address: StrictStr = Field(description="Originator's blockchain wallet address", alias="originatorWalletAddress") - beneficiary_wallet_address: StrictStr = Field(description="Beneficiary's blockchain wallet address", alias="beneficiaryWalletAddress") - tx_hash: StrictStr = Field(description="Blockchain transaction hash", alias="txHash") - __properties: ClassVar[List[str]] = ["originatorWalletAddress", "beneficiaryWalletAddress", "txHash"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkTxnInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkTxnInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "originatorWalletAddress": obj.get("originatorWalletAddress"), - "beneficiaryWalletAddress": obj.get("beneficiaryWalletAddress"), - "txHash": obj.get("txHash") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRSTGlua1R4bkluZm8oQmFzZU1vZGVsKToKICAgICIiIgogICAgVFJMaW5rVHhuSW5mbwogICAgIiIiICMgbm9xYTogRTUwMQogICAgb3JpZ2luYXRvcl93YWxsZXRfYWRkcmVzczogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249Ik9yaWdpbmF0b3IncyBibG9ja2NoYWluIHdhbGxldCBhZGRyZXNzIiwgYWxpYXM9Im9yaWdpbmF0b3JXYWxsZXRBZGRyZXNzIikKICAgIGJlbmVmaWNpYXJ5X3dhbGxldF9hZGRyZXNzOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQmVuZWZpY2lhcnkncyBibG9ja2NoYWluIHdhbGxldCBhZGRyZXNzIiwgYWxpYXM9ImJlbmVmaWNpYXJ5V2FsbGV0QWRkcmVzcyIpCiAgICB0eF9oYXNoOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQmxvY2tjaGFpbiB0cmFuc2FjdGlvbiBoYXNoIiwgYWxpYXM9InR4SGFzaCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm9yaWdpbmF0b3JXYWxsZXRBZGRyZXNzIiwgImJlbmVmaWNpYXJ5V2FsbGV0QWRkcmVzcyIsICJ0eEhhc2giXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1R4bkluZm8gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rVHhuSW5mbyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJvcmlnaW5hdG9yV2FsbGV0QWRkcmVzcyI6IG9iai5nZXQoIm9yaWdpbmF0b3JXYWxsZXRBZGRyZXNzIiksCiAgICAgICAgICAgICJiZW5lZmljaWFyeVdhbGxldEFkZHJlc3MiOiBvYmouZ2V0KCJiZW5lZmljaWFyeVdhbGxldEFkZHJlc3MiKSwKICAgICAgICAgICAgInR4SGFzaCI6IG9iai5nZXQoInR4SGFzaCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_update_customer_request.py b/fireblocks/models/tr_link_update_customer_request.py index ca96725c..930eccdf 100644 --- a/fireblocks/models/tr_link_update_customer_request.py +++ b/fireblocks/models/tr_link_update_customer_request.py @@ -1,155 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from datetime import date -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tr_link_discoverable_status import TRLinkDiscoverableStatus -from fireblocks.models.tr_link_geographic_address_request import TRLinkGeographicAddressRequest -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkUpdateCustomerRequest(BaseModel): - """ - TRLinkUpdateCustomerRequest - """ # noqa: E501 - discoverable: Optional[TRLinkDiscoverableStatus] = None - short_name: Optional[StrictStr] = Field(default=None, description="Short display name", alias="shortName") - full_legal_name: Optional[StrictStr] = Field(default=None, description="Full legal entity name", alias="fullLegalName") - geographic_address: Optional[TRLinkGeographicAddressRequest] = Field(default=None, alias="geographicAddress") - country_of_registration: Optional[StrictStr] = Field(default=None, description="ISO 3166-1 alpha-2 country code where the entity is registered", alias="countryOfRegistration") - national_identification: Optional[StrictStr] = Field(default=None, description="National identification as JSON string", alias="nationalIdentification") - date_of_incorporation: Optional[date] = Field(default=None, description="Date of entity incorporation (ISO 8601 format: YYYY-MM-DD)", alias="dateOfIncorporation") - vaults: Optional[List[StrictInt]] = Field(default=None, description="Associated Fireblocks vault account IDs") - tr_primary_purpose: Optional[StrictStr] = Field(default=None, description="Primary purpose for Travel Rule compliance", alias="trPrimaryPurpose") - __properties: ClassVar[List[str]] = ["discoverable", "shortName", "fullLegalName", "geographicAddress", "countryOfRegistration", "nationalIdentification", "dateOfIncorporation", "vaults", "trPrimaryPurpose"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkUpdateCustomerRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of geographic_address - if self.geographic_address: - _dict['geographicAddress'] = self.geographic_address.to_dict() - # set to None if discoverable (nullable) is None - # and model_fields_set contains the field - if self.discoverable is None and "discoverable" in self.model_fields_set: - _dict['discoverable'] = None - - # set to None if short_name (nullable) is None - # and model_fields_set contains the field - if self.short_name is None and "short_name" in self.model_fields_set: - _dict['shortName'] = None - - # set to None if full_legal_name (nullable) is None - # and model_fields_set contains the field - if self.full_legal_name is None and "full_legal_name" in self.model_fields_set: - _dict['fullLegalName'] = None - - # set to None if geographic_address (nullable) is None - # and model_fields_set contains the field - if self.geographic_address is None and "geographic_address" in self.model_fields_set: - _dict['geographicAddress'] = None - - # set to None if country_of_registration (nullable) is None - # and model_fields_set contains the field - if self.country_of_registration is None and "country_of_registration" in self.model_fields_set: - _dict['countryOfRegistration'] = None - - # set to None if national_identification (nullable) is None - # and model_fields_set contains the field - if self.national_identification is None and "national_identification" in self.model_fields_set: - _dict['nationalIdentification'] = None - - # set to None if date_of_incorporation (nullable) is None - # and model_fields_set contains the field - if self.date_of_incorporation is None and "date_of_incorporation" in self.model_fields_set: - _dict['dateOfIncorporation'] = None - - # set to None if vaults (nullable) is None - # and model_fields_set contains the field - if self.vaults is None and "vaults" in self.model_fields_set: - _dict['vaults'] = None - - # set to None if tr_primary_purpose (nullable) is None - # and model_fields_set contains the field - if self.tr_primary_purpose is None and "tr_primary_purpose" in self.model_fields_set: - _dict['trPrimaryPurpose'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkUpdateCustomerRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "discoverable": obj.get("discoverable"), - "shortName": obj.get("shortName"), - "fullLegalName": obj.get("fullLegalName"), - "geographicAddress": TRLinkGeographicAddressRequest.from_dict(obj["geographicAddress"]) if obj.get("geographicAddress") is not None else None, - "countryOfRegistration": obj.get("countryOfRegistration"), - "nationalIdentification": obj.get("nationalIdentification"), - "dateOfIncorporation": obj.get("dateOfIncorporation"), - "vaults": obj.get("vaults"), - "trPrimaryPurpose": obj.get("trPrimaryPurpose") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZQpmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RJbnQsIFN0cmljdFN0cgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Rpc2NvdmVyYWJsZV9zdGF0dXMgaW1wb3J0IFRSTGlua0Rpc2NvdmVyYWJsZVN0YXR1cwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfZ2VvZ3JhcGhpY19hZGRyZXNzX3JlcXVlc3QgaW1wb3J0IFRSTGlua0dlb2dyYXBoaWNBZGRyZXNzUmVxdWVzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtVcGRhdGVDdXN0b21lclJlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgVFJMaW5rVXBkYXRlQ3VzdG9tZXJSZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkaXNjb3ZlcmFibGU6IE9wdGlvbmFsW1RSTGlua0Rpc2NvdmVyYWJsZVN0YXR1c10gPSBOb25lCiAgICBzaG9ydF9uYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iU2hvcnQgZGlzcGxheSBuYW1lIiwgYWxpYXM9InNob3J0TmFtZSIpCiAgICBmdWxsX2xlZ2FsX25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJGdWxsIGxlZ2FsIGVudGl0eSBuYW1lIiwgYWxpYXM9ImZ1bGxMZWdhbE5hbWUiKQogICAgZ2VvZ3JhcGhpY19hZGRyZXNzOiBPcHRpb25hbFtUUkxpbmtHZW9ncmFwaGljQWRkcmVzc1JlcXVlc3RdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZ2VvZ3JhcGhpY0FkZHJlc3MiKQogICAgY291bnRyeV9vZl9yZWdpc3RyYXRpb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJU08gMzE2Ni0xIGFscGhhLTIgY291bnRyeSBjb2RlIHdoZXJlIHRoZSBlbnRpdHkgaXMgcmVnaXN0ZXJlZCIsIGFsaWFzPSJjb3VudHJ5T2ZSZWdpc3RyYXRpb24iKQogICAgbmF0aW9uYWxfaWRlbnRpZmljYXRpb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOYXRpb25hbCBpZGVudGlmaWNhdGlvbiBhcyBKU09OIHN0cmluZyIsIGFsaWFzPSJuYXRpb25hbElkZW50aWZpY2F0aW9uIikKICAgIGRhdGVfb2ZfaW5jb3Jwb3JhdGlvbjogT3B0aW9uYWxbZGF0ZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEYXRlIG9mIGVudGl0eSBpbmNvcnBvcmF0aW9uIChJU08gODYwMSBmb3JtYXQ6IFlZWVktTU0tREQpIiwgYWxpYXM9ImRhdGVPZkluY29ycG9yYXRpb24iKQogICAgdmF1bHRzOiBPcHRpb25hbFtMaXN0W1N0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQXNzb2NpYXRlZCBGaXJlYmxvY2tzIHZhdWx0IGFjY291bnQgSURzIikKICAgIHRyX3ByaW1hcnlfcHVycG9zZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlByaW1hcnkgcHVycG9zZSBmb3IgVHJhdmVsIFJ1bGUgY29tcGxpYW5jZSIsIGFsaWFzPSJ0clByaW1hcnlQdXJwb3NlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZGlzY292ZXJhYmxlIiwgInNob3J0TmFtZSIsICJmdWxsTGVnYWxOYW1lIiwgImdlb2dyYXBoaWNBZGRyZXNzIiwgImNvdW50cnlPZlJlZ2lzdHJhdGlvbiIsICJuYXRpb25hbElkZW50aWZpY2F0aW9uIiwgImRhdGVPZkluY29ycG9yYXRpb24iLCAidmF1bHRzIiwgInRyUHJpbWFyeVB1cnBvc2UiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1VwZGF0ZUN1c3RvbWVyUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGdlb2dyYXBoaWNfYWRkcmVzcwogICAgICAgIGlmIHNlbGYuZ2VvZ3JhcGhpY19hZGRyZXNzOgogICAgICAgICAgICBfZGljdFsnZ2VvZ3JhcGhpY0FkZHJlc3MnXSA9IHNlbGYuZ2VvZ3JhcGhpY19hZGRyZXNzLnRvX2RpY3QoKQogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgZGlzY292ZXJhYmxlIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5kaXNjb3ZlcmFibGUgaXMgTm9uZSBhbmQgImRpc2NvdmVyYWJsZSIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnZGlzY292ZXJhYmxlJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgc2hvcnRfbmFtZSAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuc2hvcnRfbmFtZSBpcyBOb25lIGFuZCAic2hvcnRfbmFtZSIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnc2hvcnROYW1lJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgZnVsbF9sZWdhbF9uYW1lIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5mdWxsX2xlZ2FsX25hbWUgaXMgTm9uZSBhbmQgImZ1bGxfbGVnYWxfbmFtZSIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnZnVsbExlZ2FsTmFtZSddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGdlb2dyYXBoaWNfYWRkcmVzcyAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuZ2VvZ3JhcGhpY19hZGRyZXNzIGlzIE5vbmUgYW5kICJnZW9ncmFwaGljX2FkZHJlc3MiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2dlb2dyYXBoaWNBZGRyZXNzJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgY291bnRyeV9vZl9yZWdpc3RyYXRpb24gKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmNvdW50cnlfb2ZfcmVnaXN0cmF0aW9uIGlzIE5vbmUgYW5kICJjb3VudHJ5X29mX3JlZ2lzdHJhdGlvbiIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnY291bnRyeU9mUmVnaXN0cmF0aW9uJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgbmF0aW9uYWxfaWRlbnRpZmljYXRpb24gKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLm5hdGlvbmFsX2lkZW50aWZpY2F0aW9uIGlzIE5vbmUgYW5kICJuYXRpb25hbF9pZGVudGlmaWNhdGlvbiIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnbmF0aW9uYWxJZGVudGlmaWNhdGlvbiddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGRhdGVfb2ZfaW5jb3Jwb3JhdGlvbiAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuZGF0ZV9vZl9pbmNvcnBvcmF0aW9uIGlzIE5vbmUgYW5kICJkYXRlX29mX2luY29ycG9yYXRpb24iIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2RhdGVPZkluY29ycG9yYXRpb24nXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiB2YXVsdHMgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnZhdWx0cyBpcyBOb25lIGFuZCAidmF1bHRzIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wyd2YXVsdHMnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiB0cl9wcmltYXJ5X3B1cnBvc2UgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnRyX3ByaW1hcnlfcHVycG9zZSBpcyBOb25lIGFuZCAidHJfcHJpbWFyeV9wdXJwb3NlIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wyd0clByaW1hcnlQdXJwb3NlJ10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rVXBkYXRlQ3VzdG9tZXJSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRpc2NvdmVyYWJsZSI6IG9iai5nZXQoImRpc2NvdmVyYWJsZSIpLAogICAgICAgICAgICAic2hvcnROYW1lIjogb2JqLmdldCgic2hvcnROYW1lIiksCiAgICAgICAgICAgICJmdWxsTGVnYWxOYW1lIjogb2JqLmdldCgiZnVsbExlZ2FsTmFtZSIpLAogICAgICAgICAgICAiZ2VvZ3JhcGhpY0FkZHJlc3MiOiBUUkxpbmtHZW9ncmFwaGljQWRkcmVzc1JlcXVlc3QuZnJvbV9kaWN0KG9ialsiZ2VvZ3JhcGhpY0FkZHJlc3MiXSkgaWYgb2JqLmdldCgiZ2VvZ3JhcGhpY0FkZHJlc3MiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJjb3VudHJ5T2ZSZWdpc3RyYXRpb24iOiBvYmouZ2V0KCJjb3VudHJ5T2ZSZWdpc3RyYXRpb24iKSwKICAgICAgICAgICAgIm5hdGlvbmFsSWRlbnRpZmljYXRpb24iOiBvYmouZ2V0KCJuYXRpb25hbElkZW50aWZpY2F0aW9uIiksCiAgICAgICAgICAgICJkYXRlT2ZJbmNvcnBvcmF0aW9uIjogb2JqLmdldCgiZGF0ZU9mSW5jb3Jwb3JhdGlvbiIpLAogICAgICAgICAgICAidmF1bHRzIjogb2JqLmdldCgidmF1bHRzIiksCiAgICAgICAgICAgICJ0clByaW1hcnlQdXJwb3NlIjogb2JqLmdldCgidHJQcmltYXJ5UHVycG9zZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_vasp_dto.py b/fireblocks/models/tr_link_vasp_dto.py index 2a88537b..86cff8d7 100644 --- a/fireblocks/models/tr_link_vasp_dto.py +++ b/fireblocks/models/tr_link_vasp_dto.py @@ -1,129 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tr_link_vasp_geographic_address import TRLinkVaspGeographicAddress -from fireblocks.models.tr_link_vasp_national_identification import TRLinkVaspNationalIdentification -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkVaspDto(BaseModel): - """ - TRLinkVaspDto - """ # noqa: E501 - id: StrictStr = Field(description="VASP unique identifier (DID format)") - name: StrictStr = Field(description="VASP display name") - legal_name: Optional[StrictStr] = Field(default=None, description="Legal entity name", alias="legalName") - national_identification: Optional[TRLinkVaspNationalIdentification] = Field(default=None, alias="nationalIdentification") - geographic_address: Optional[TRLinkVaspGeographicAddress] = Field(default=None, alias="geographicAddress") - public_key: Optional[StrictStr] = Field(default=None, description="VASP public key for encryption", alias="publicKey") - additional_properties: Dict[str, Any] = {} - __properties: ClassVar[List[str]] = ["id", "name", "legalName", "nationalIdentification", "geographicAddress", "publicKey"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkVaspDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - * Fields in `self.additional_properties` are added to the output dict. - """ - excluded_fields: Set[str] = set([ - "additional_properties", - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of national_identification - if self.national_identification: - _dict['nationalIdentification'] = self.national_identification.to_dict() - # override the default output from pydantic by calling `to_dict()` of geographic_address - if self.geographic_address: - _dict['geographicAddress'] = self.geographic_address.to_dict() - # puts key-value pairs in additional_properties in the top level - if self.additional_properties is not None: - for _key, _value in self.additional_properties.items(): - _dict[_key] = _value - - # set to None if legal_name (nullable) is None - # and model_fields_set contains the field - if self.legal_name is None and "legal_name" in self.model_fields_set: - _dict['legalName'] = None - - # set to None if public_key (nullable) is None - # and model_fields_set contains the field - if self.public_key is None and "public_key" in self.model_fields_set: - _dict['publicKey'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkVaspDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name"), - "legalName": obj.get("legalName"), - "nationalIdentification": TRLinkVaspNationalIdentification.from_dict(obj["nationalIdentification"]) if obj.get("nationalIdentification") is not None else None, - "geographicAddress": TRLinkVaspGeographicAddress.from_dict(obj["geographicAddress"]) if obj.get("geographicAddress") is not None else None, - "publicKey": obj.get("publicKey") - }) - # store additional fields in additional_properties - for _key in obj.keys(): - if _key not in cls.__properties: - _obj.additional_properties[_key] = obj.get(_key) - - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdmFzcF9nZW9ncmFwaGljX2FkZHJlc3MgaW1wb3J0IFRSTGlua1Zhc3BHZW9ncmFwaGljQWRkcmVzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdmFzcF9uYXRpb25hbF9pZGVudGlmaWNhdGlvbiBpbXBvcnQgVFJMaW5rVmFzcE5hdGlvbmFsSWRlbnRpZmljYXRpb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVFJMaW5rVmFzcER0byhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUUkxpbmtWYXNwRHRvCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlZBU1AgdW5pcXVlIGlkZW50aWZpZXIgKERJRCBmb3JtYXQpIikKICAgIG5hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJWQVNQIGRpc3BsYXkgbmFtZSIpCiAgICBsZWdhbF9uYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTGVnYWwgZW50aXR5IG5hbWUiLCBhbGlhcz0ibGVnYWxOYW1lIikKICAgIG5hdGlvbmFsX2lkZW50aWZpY2F0aW9uOiBPcHRpb25hbFtUUkxpbmtWYXNwTmF0aW9uYWxJZGVudGlmaWNhdGlvbl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJuYXRpb25hbElkZW50aWZpY2F0aW9uIikKICAgIGdlb2dyYXBoaWNfYWRkcmVzczogT3B0aW9uYWxbVFJMaW5rVmFzcEdlb2dyYXBoaWNBZGRyZXNzXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Imdlb2dyYXBoaWNBZGRyZXNzIikKICAgIHB1YmxpY19rZXk6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJWQVNQIHB1YmxpYyBrZXkgZm9yIGVuY3J5cHRpb24iLCBhbGlhcz0icHVibGljS2V5IikKICAgIGFkZGl0aW9uYWxfcHJvcGVydGllczogRGljdFtzdHIsIEFueV0gPSB7fQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJuYW1lIiwgImxlZ2FsTmFtZSIsICJuYXRpb25hbElkZW50aWZpY2F0aW9uIiwgImdlb2dyYXBoaWNBZGRyZXNzIiwgInB1YmxpY0tleSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rVmFzcER0byBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgKiBGaWVsZHMgaW4gYHNlbGYuYWRkaXRpb25hbF9wcm9wZXJ0aWVzYCBhcmUgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0LgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgICAgICAiYWRkaXRpb25hbF9wcm9wZXJ0aWVzIiwKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgbmF0aW9uYWxfaWRlbnRpZmljYXRpb24KICAgICAgICBpZiBzZWxmLm5hdGlvbmFsX2lkZW50aWZpY2F0aW9uOgogICAgICAgICAgICBfZGljdFsnbmF0aW9uYWxJZGVudGlmaWNhdGlvbiddID0gc2VsZi5uYXRpb25hbF9pZGVudGlmaWNhdGlvbi50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZ2VvZ3JhcGhpY19hZGRyZXNzCiAgICAgICAgaWYgc2VsZi5nZW9ncmFwaGljX2FkZHJlc3M6CiAgICAgICAgICAgIF9kaWN0WydnZW9ncmFwaGljQWRkcmVzcyddID0gc2VsZi5nZW9ncmFwaGljX2FkZHJlc3MudG9fZGljdCgpCiAgICAgICAgIyBwdXRzIGtleS12YWx1ZSBwYWlycyBpbiBhZGRpdGlvbmFsX3Byb3BlcnRpZXMgaW4gdGhlIHRvcCBsZXZlbAogICAgICAgIGlmIHNlbGYuYWRkaXRpb25hbF9wcm9wZXJ0aWVzIGlzIG5vdCBOb25lOgogICAgICAgICAgICBmb3IgX2tleSwgX3ZhbHVlIGluIHNlbGYuYWRkaXRpb25hbF9wcm9wZXJ0aWVzLml0ZW1zKCk6CiAgICAgICAgICAgICAgICBfZGljdFtfa2V5XSA9IF92YWx1ZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGxlZ2FsX25hbWUgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmxlZ2FsX25hbWUgaXMgTm9uZSBhbmQgImxlZ2FsX25hbWUiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2xlZ2FsTmFtZSddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIHB1YmxpY19rZXkgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnB1YmxpY19rZXkgaXMgTm9uZSBhbmQgInB1YmxpY19rZXkiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3B1YmxpY0tleSddID0gTm9uZQoKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1Zhc3BEdG8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKSwKICAgICAgICAgICAgImxlZ2FsTmFtZSI6IG9iai5nZXQoImxlZ2FsTmFtZSIpLAogICAgICAgICAgICAibmF0aW9uYWxJZGVudGlmaWNhdGlvbiI6IFRSTGlua1Zhc3BOYXRpb25hbElkZW50aWZpY2F0aW9uLmZyb21fZGljdChvYmpbIm5hdGlvbmFsSWRlbnRpZmljYXRpb24iXSkgaWYgb2JqLmdldCgibmF0aW9uYWxJZGVudGlmaWNhdGlvbiIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImdlb2dyYXBoaWNBZGRyZXNzIjogVFJMaW5rVmFzcEdlb2dyYXBoaWNBZGRyZXNzLmZyb21fZGljdChvYmpbImdlb2dyYXBoaWNBZGRyZXNzIl0pIGlmIG9iai5nZXQoImdlb2dyYXBoaWNBZGRyZXNzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAicHVibGljS2V5Ijogb2JqLmdldCgicHVibGljS2V5IikKICAgICAgICB9KQogICAgICAgICMgc3RvcmUgYWRkaXRpb25hbCBmaWVsZHMgaW4gYWRkaXRpb25hbF9wcm9wZXJ0aWVzCiAgICAgICAgZm9yIF9rZXkgaW4gb2JqLmtleXMoKToKICAgICAgICAgICAgaWYgX2tleSBub3QgaW4gY2xzLl9fcHJvcGVydGllczoKICAgICAgICAgICAgICAgIF9vYmouYWRkaXRpb25hbF9wcm9wZXJ0aWVzW19rZXldID0gb2JqLmdldChfa2V5KQoKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_vasp_geographic_address.py b/fireblocks/models/tr_link_vasp_geographic_address.py index 3044ec54..6a401d66 100644 --- a/fireblocks/models/tr_link_vasp_geographic_address.py +++ b/fireblocks/models/tr_link_vasp_geographic_address.py @@ -1,128 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkVaspGeographicAddress(BaseModel): - """ - TRLinkVaspGeographicAddress - """ # noqa: E501 - formatted_address: Optional[StrictStr] = Field(default=None, description="Complete formatted address", alias="formattedAddress") - country: Optional[StrictStr] = Field(default=None, description="Country code or name") - street_name: Optional[StrictStr] = Field(default=None, description="Street name", alias="streetName") - building_number: Optional[StrictStr] = Field(default=None, description="Building number", alias="buildingNumber") - city: Optional[StrictStr] = Field(default=None, description="City name") - postal_code: Optional[StrictStr] = Field(default=None, description="Postal/ZIP code", alias="postalCode") - __properties: ClassVar[List[str]] = ["formattedAddress", "country", "streetName", "buildingNumber", "city", "postalCode"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkVaspGeographicAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if formatted_address (nullable) is None - # and model_fields_set contains the field - if self.formatted_address is None and "formatted_address" in self.model_fields_set: - _dict['formattedAddress'] = None - - # set to None if country (nullable) is None - # and model_fields_set contains the field - if self.country is None and "country" in self.model_fields_set: - _dict['country'] = None - - # set to None if street_name (nullable) is None - # and model_fields_set contains the field - if self.street_name is None and "street_name" in self.model_fields_set: - _dict['streetName'] = None - - # set to None if building_number (nullable) is None - # and model_fields_set contains the field - if self.building_number is None and "building_number" in self.model_fields_set: - _dict['buildingNumber'] = None - - # set to None if city (nullable) is None - # and model_fields_set contains the field - if self.city is None and "city" in self.model_fields_set: - _dict['city'] = None - - # set to None if postal_code (nullable) is None - # and model_fields_set contains the field - if self.postal_code is None and "postal_code" in self.model_fields_set: - _dict['postalCode'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkVaspGeographicAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "formattedAddress": obj.get("formattedAddress"), - "country": obj.get("country"), - "streetName": obj.get("streetName"), - "buildingNumber": obj.get("buildingNumber"), - "city": obj.get("city"), - "postalCode": obj.get("postalCode") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtWYXNwR2VvZ3JhcGhpY0FkZHJlc3MoQmFzZU1vZGVsKToKICAgICIiIgogICAgVFJMaW5rVmFzcEdlb2dyYXBoaWNBZGRyZXNzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBmb3JtYXR0ZWRfYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkNvbXBsZXRlIGZvcm1hdHRlZCBhZGRyZXNzIiwgYWxpYXM9ImZvcm1hdHRlZEFkZHJlc3MiKQogICAgY291bnRyeTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkNvdW50cnkgY29kZSBvciBuYW1lIikKICAgIHN0cmVldF9uYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iU3RyZWV0IG5hbWUiLCBhbGlhcz0ic3RyZWV0TmFtZSIpCiAgICBidWlsZGluZ19udW1iZXI6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJCdWlsZGluZyBudW1iZXIiLCBhbGlhcz0iYnVpbGRpbmdOdW1iZXIiKQogICAgY2l0eTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkNpdHkgbmFtZSIpCiAgICBwb3N0YWxfY29kZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlBvc3RhbC9aSVAgY29kZSIsIGFsaWFzPSJwb3N0YWxDb2RlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZm9ybWF0dGVkQWRkcmVzcyIsICJjb3VudHJ5IiwgInN0cmVldE5hbWUiLCAiYnVpbGRpbmdOdW1iZXIiLCAiY2l0eSIsICJwb3N0YWxDb2RlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtWYXNwR2VvZ3JhcGhpY0FkZHJlc3MgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgZm9ybWF0dGVkX2FkZHJlc3MgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmZvcm1hdHRlZF9hZGRyZXNzIGlzIE5vbmUgYW5kICJmb3JtYXR0ZWRfYWRkcmVzcyIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnZm9ybWF0dGVkQWRkcmVzcyddID0gTm9uZQoKICAgICAgICAjIHNldCB0byBOb25lIGlmIGNvdW50cnkgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmNvdW50cnkgaXMgTm9uZSBhbmQgImNvdW50cnkiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ2NvdW50cnknXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBzdHJlZXRfbmFtZSAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuc3RyZWV0X25hbWUgaXMgTm9uZSBhbmQgInN0cmVldF9uYW1lIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydzdHJlZXROYW1lJ10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgYnVpbGRpbmdfbnVtYmVyIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5idWlsZGluZ19udW1iZXIgaXMgTm9uZSBhbmQgImJ1aWxkaW5nX251bWJlciIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnYnVpbGRpbmdOdW1iZXInXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBjaXR5IChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5jaXR5IGlzIE5vbmUgYW5kICJjaXR5IiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydjaXR5J10gPSBOb25lCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgcG9zdGFsX2NvZGUgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnBvc3RhbF9jb2RlIGlzIE5vbmUgYW5kICJwb3N0YWxfY29kZSIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsncG9zdGFsQ29kZSddID0gTm9uZQoKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1Zhc3BHZW9ncmFwaGljQWRkcmVzcyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJmb3JtYXR0ZWRBZGRyZXNzIjogb2JqLmdldCgiZm9ybWF0dGVkQWRkcmVzcyIpLAogICAgICAgICAgICAiY291bnRyeSI6IG9iai5nZXQoImNvdW50cnkiKSwKICAgICAgICAgICAgInN0cmVldE5hbWUiOiBvYmouZ2V0KCJzdHJlZXROYW1lIiksCiAgICAgICAgICAgICJidWlsZGluZ051bWJlciI6IG9iai5nZXQoImJ1aWxkaW5nTnVtYmVyIiksCiAgICAgICAgICAgICJjaXR5Ijogb2JqLmdldCgiY2l0eSIpLAogICAgICAgICAgICAicG9zdGFsQ29kZSI6IG9iai5nZXQoInBvc3RhbENvZGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_vasp_list_dto.py b/fireblocks/models/tr_link_vasp_list_dto.py index da71dc75..3d889eed 100644 --- a/fireblocks/models/tr_link_vasp_list_dto.py +++ b/fireblocks/models/tr_link_vasp_list_dto.py @@ -1,122 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tr_link_vasp_geographic_address import TRLinkVaspGeographicAddress -from fireblocks.models.tr_link_vasp_national_identification import TRLinkVaspNationalIdentification -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkVaspListDto(BaseModel): - """ - TRLinkVaspListDto - """ # noqa: E501 - id: StrictStr = Field(description="VASP unique identifier (DID format)") - name: StrictStr = Field(description="VASP display name") - legal_name: Optional[StrictStr] = Field(default=None, description="Legal entity name", alias="legalName") - national_identification: Optional[TRLinkVaspNationalIdentification] = Field(default=None, alias="nationalIdentification") - geographic_address: Optional[TRLinkVaspGeographicAddress] = Field(default=None, alias="geographicAddress") - additional_properties: Dict[str, Any] = {} - __properties: ClassVar[List[str]] = ["id", "name", "legalName", "nationalIdentification", "geographicAddress"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkVaspListDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - * Fields in `self.additional_properties` are added to the output dict. - """ - excluded_fields: Set[str] = set([ - "additional_properties", - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of national_identification - if self.national_identification: - _dict['nationalIdentification'] = self.national_identification.to_dict() - # override the default output from pydantic by calling `to_dict()` of geographic_address - if self.geographic_address: - _dict['geographicAddress'] = self.geographic_address.to_dict() - # puts key-value pairs in additional_properties in the top level - if self.additional_properties is not None: - for _key, _value in self.additional_properties.items(): - _dict[_key] = _value - - # set to None if legal_name (nullable) is None - # and model_fields_set contains the field - if self.legal_name is None and "legal_name" in self.model_fields_set: - _dict['legalName'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkVaspListDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name"), - "legalName": obj.get("legalName"), - "nationalIdentification": TRLinkVaspNationalIdentification.from_dict(obj["nationalIdentification"]) if obj.get("nationalIdentification") is not None else None, - "geographicAddress": TRLinkVaspGeographicAddress.from_dict(obj["geographicAddress"]) if obj.get("geographicAddress") is not None else None - }) - # store additional fields in additional_properties - for _key in obj.keys(): - if _key not in cls.__properties: - _obj.additional_properties[_key] = obj.get(_key) - - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdmFzcF9nZW9ncmFwaGljX2FkZHJlc3MgaW1wb3J0IFRSTGlua1Zhc3BHZW9ncmFwaGljQWRkcmVzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdmFzcF9uYXRpb25hbF9pZGVudGlmaWNhdGlvbiBpbXBvcnQgVFJMaW5rVmFzcE5hdGlvbmFsSWRlbnRpZmljYXRpb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVFJMaW5rVmFzcExpc3REdG8oQmFzZU1vZGVsKToKICAgICIiIgogICAgVFJMaW5rVmFzcExpc3REdG8KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVkFTUCB1bmlxdWUgaWRlbnRpZmllciAoRElEIGZvcm1hdCkiKQogICAgbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlZBU1AgZGlzcGxheSBuYW1lIikKICAgIGxlZ2FsX25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJMZWdhbCBlbnRpdHkgbmFtZSIsIGFsaWFzPSJsZWdhbE5hbWUiKQogICAgbmF0aW9uYWxfaWRlbnRpZmljYXRpb246IE9wdGlvbmFsW1RSTGlua1Zhc3BOYXRpb25hbElkZW50aWZpY2F0aW9uXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im5hdGlvbmFsSWRlbnRpZmljYXRpb24iKQogICAgZ2VvZ3JhcGhpY19hZGRyZXNzOiBPcHRpb25hbFtUUkxpbmtWYXNwR2VvZ3JhcGhpY0FkZHJlc3NdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZ2VvZ3JhcGhpY0FkZHJlc3MiKQogICAgYWRkaXRpb25hbF9wcm9wZXJ0aWVzOiBEaWN0W3N0ciwgQW55XSA9IHt9CiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgIm5hbWUiLCAibGVnYWxOYW1lIiwgIm5hdGlvbmFsSWRlbnRpZmljYXRpb24iLCAiZ2VvZ3JhcGhpY0FkZHJlc3MiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1Zhc3BMaXN0RHRvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAqIEZpZWxkcyBpbiBgc2VsZi5hZGRpdGlvbmFsX3Byb3BlcnRpZXNgIGFyZSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgICAgICJhZGRpdGlvbmFsX3Byb3BlcnRpZXMiLAogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBuYXRpb25hbF9pZGVudGlmaWNhdGlvbgogICAgICAgIGlmIHNlbGYubmF0aW9uYWxfaWRlbnRpZmljYXRpb246CiAgICAgICAgICAgIF9kaWN0WyduYXRpb25hbElkZW50aWZpY2F0aW9uJ10gPSBzZWxmLm5hdGlvbmFsX2lkZW50aWZpY2F0aW9uLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBnZW9ncmFwaGljX2FkZHJlc3MKICAgICAgICBpZiBzZWxmLmdlb2dyYXBoaWNfYWRkcmVzczoKICAgICAgICAgICAgX2RpY3RbJ2dlb2dyYXBoaWNBZGRyZXNzJ10gPSBzZWxmLmdlb2dyYXBoaWNfYWRkcmVzcy50b19kaWN0KCkKICAgICAgICAjIHB1dHMga2V5LXZhbHVlIHBhaXJzIGluIGFkZGl0aW9uYWxfcHJvcGVydGllcyBpbiB0aGUgdG9wIGxldmVsCiAgICAgICAgaWYgc2VsZi5hZGRpdGlvbmFsX3Byb3BlcnRpZXMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIGZvciBfa2V5LCBfdmFsdWUgaW4gc2VsZi5hZGRpdGlvbmFsX3Byb3BlcnRpZXMuaXRlbXMoKToKICAgICAgICAgICAgICAgIF9kaWN0W19rZXldID0gX3ZhbHVlCgogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgbGVnYWxfbmFtZSAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYubGVnYWxfbmFtZSBpcyBOb25lIGFuZCAibGVnYWxfbmFtZSIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnbGVnYWxOYW1lJ10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rVmFzcExpc3REdG8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKSwKICAgICAgICAgICAgImxlZ2FsTmFtZSI6IG9iai5nZXQoImxlZ2FsTmFtZSIpLAogICAgICAgICAgICAibmF0aW9uYWxJZGVudGlmaWNhdGlvbiI6IFRSTGlua1Zhc3BOYXRpb25hbElkZW50aWZpY2F0aW9uLmZyb21fZGljdChvYmpbIm5hdGlvbmFsSWRlbnRpZmljYXRpb24iXSkgaWYgb2JqLmdldCgibmF0aW9uYWxJZGVudGlmaWNhdGlvbiIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImdlb2dyYXBoaWNBZGRyZXNzIjogVFJMaW5rVmFzcEdlb2dyYXBoaWNBZGRyZXNzLmZyb21fZGljdChvYmpbImdlb2dyYXBoaWNBZGRyZXNzIl0pIGlmIG9iai5nZXQoImdlb2dyYXBoaWNBZGRyZXNzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICAjIHN0b3JlIGFkZGl0aW9uYWwgZmllbGRzIGluIGFkZGl0aW9uYWxfcHJvcGVydGllcwogICAgICAgIGZvciBfa2V5IGluIG9iai5rZXlzKCk6CiAgICAgICAgICAgIGlmIF9rZXkgbm90IGluIGNscy5fX3Byb3BlcnRpZXM6CiAgICAgICAgICAgICAgICBfb2JqLmFkZGl0aW9uYWxfcHJvcGVydGllc1tfa2V5XSA9IG9iai5nZXQoX2tleSkKCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/tr_link_vasp_national_identification.py b/fireblocks/models/tr_link_vasp_national_identification.py index 267b8b76..76c7b84a 100644 --- a/fireblocks/models/tr_link_vasp_national_identification.py +++ b/fireblocks/models/tr_link_vasp_national_identification.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TRLinkVaspNationalIdentification(BaseModel): - """ - TRLinkVaspNationalIdentification - """ # noqa: E501 - identifier: StrictStr = Field(description="National identification number") - type: Optional[StrictStr] = Field(default=None, description="Type of national identification") - authority: Optional[StrictStr] = Field(default=None, description="Issuing authority") - __properties: ClassVar[List[str]] = ["identifier", "type", "authority"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TRLinkVaspNationalIdentification from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # set to None if type (nullable) is None - # and model_fields_set contains the field - if self.type is None and "type" in self.model_fields_set: - _dict['type'] = None - - # set to None if authority (nullable) is None - # and model_fields_set contains the field - if self.authority is None and "authority" in self.model_fields_set: - _dict['authority'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TRLinkVaspNationalIdentification from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "identifier": obj.get("identifier"), - "type": obj.get("type"), - "authority": obj.get("authority") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUUkxpbmtWYXNwTmF0aW9uYWxJZGVudGlmaWNhdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUUkxpbmtWYXNwTmF0aW9uYWxJZGVudGlmaWNhdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWRlbnRpZmllcjogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249Ik5hdGlvbmFsIGlkZW50aWZpY2F0aW9uIG51bWJlciIpCiAgICB0eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVHlwZSBvZiBuYXRpb25hbCBpZGVudGlmaWNhdGlvbiIpCiAgICBhdXRob3JpdHk6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJc3N1aW5nIGF1dGhvcml0eSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkZW50aWZpZXIiLCAidHlwZSIsICJhdXRob3JpdHkiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1Zhc3BOYXRpb25hbElkZW50aWZpY2F0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIHNldCB0byBOb25lIGlmIHR5cGUgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLnR5cGUgaXMgTm9uZSBhbmQgInR5cGUiIGluIHNlbGYubW9kZWxfZmllbGRzX3NldDoKICAgICAgICAgICAgX2RpY3RbJ3R5cGUnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBhdXRob3JpdHkgKG51bGxhYmxlKSBpcyBOb25lCiAgICAgICAgIyBhbmQgbW9kZWxfZmllbGRzX3NldCBjb250YWlucyB0aGUgZmllbGQKICAgICAgICBpZiBzZWxmLmF1dGhvcml0eSBpcyBOb25lIGFuZCAiYXV0aG9yaXR5IiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WydhdXRob3JpdHknXSA9IE5vbmUKCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUUkxpbmtWYXNwTmF0aW9uYWxJZGVudGlmaWNhdGlvbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZGVudGlmaWVyIjogb2JqLmdldCgiaWRlbnRpZmllciIpLAogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImF1dGhvcml0eSI6IG9iai5nZXQoImF1dGhvcml0eSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_verdict.py b/fireblocks/models/tr_link_verdict.py index 76c5c34b..6e057003 100644 --- a/fireblocks/models/tr_link_verdict.py +++ b/fireblocks/models/tr_link_verdict.py @@ -1,40 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TRLinkVerdict(str, Enum): - """ - TRLink verdict after screening - """ - - """ - allowed enum values - """ - ACCEPT = 'ACCEPT' - ALERT = 'ALERT' - REJECT = 'REJECT' - WAIT = 'WAIT' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TRLinkVerdict from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUUkxpbmtWZXJkaWN0KHN0ciwgRW51bSk6CiAgICAiIiIKICAgIFRSTGluayB2ZXJkaWN0IGFmdGVyIHNjcmVlbmluZwogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIEFDQ0VQVCA9ICdBQ0NFUFQnCiAgICBBTEVSVCA9ICdBTEVSVCcKICAgIFJFSkVDVCA9ICdSRUpFQ1QnCiAgICBXQUlUID0gJ1dBSVQnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVFJMaW5rVmVyZGljdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/tr_link_verdict_enum.py b/fireblocks/models/tr_link_verdict_enum.py index dd290d56..37e162c4 100644 --- a/fireblocks/models/tr_link_verdict_enum.py +++ b/fireblocks/models/tr_link_verdict_enum.py @@ -1,40 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TRLinkVerdictEnum(str, Enum): - """ - TRLink verdict after screening - """ - - """ - allowed enum values - """ - ACCEPT = 'ACCEPT' - ALERT = 'ALERT' - REJECT = 'REJECT' - WAIT = 'WAIT' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TRLinkVerdictEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUUkxpbmtWZXJkaWN0RW51bShzdHIsIEVudW0pOgogICAgIiIiCiAgICBUUkxpbmsgdmVyZGljdCBhZnRlciBzY3JlZW5pbmcKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBBQ0NFUFQgPSAnQUNDRVBUJwogICAgQUxFUlQgPSAnQUxFUlQnCiAgICBSRUpFQ1QgPSAnUkVKRUNUJwogICAgV0FJVCA9ICdXQUlUJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRSTGlua1ZlcmRpY3RFbnVtIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/trading_account_type.py b/fireblocks/models/trading_account_type.py index 7f396926..98840c63 100644 --- a/fireblocks/models/trading_account_type.py +++ b/fireblocks/models/trading_account_type.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TradingAccountType(str, Enum): - """ - TradingAccountType - """ - - """ - allowed enum values - """ - COIN_FUTURES = 'COIN_FUTURES' - COIN_MARGINED_SWAP = 'COIN_MARGINED_SWAP' - EXCHANGE = 'EXCHANGE' - FUNDING = 'FUNDING' - FUNDABLE = 'FUNDABLE' - FUTURES = 'FUTURES' - FUTURES_CROSS = 'FUTURES_CROSS' - MARGIN = 'MARGIN' - MARGIN_CROSS = 'MARGIN_CROSS' - OPTIONS = 'OPTIONS' - SPOT = 'SPOT' - USDT_MARGINED_SWAP_CROSS = 'USDT_MARGINED_SWAP_CROSS' - USDT_FUTURES = 'USDT_FUTURES' - UNIFIED = 'UNIFIED' - INTERNAL_BALANCE_1 = 'INTERNAL_BALANCE_1' - INTERNAL_BALANCE_2 = 'INTERNAL_BALANCE_2' - INTERNAL_BALANCE_3 = 'INTERNAL_BALANCE_3' - INTERNAL_BALANCE_4 = 'INTERNAL_BALANCE_4' - INTERNAL_BALANCE_5 = 'INTERNAL_BALANCE_5' - INTERNAL_BALANCE_6 = 'INTERNAL_BALANCE_6' - INTERNAL_BALANCE_7 = 'INTERNAL_BALANCE_7' - INTERNAL_BALANCE_8 = 'INTERNAL_BALANCE_8' - INTERNAL_BALANCE_9 = 'INTERNAL_BALANCE_9' - INTERNAL_BALANCE_10 = 'INTERNAL_BALANCE_10' - INTERNAL_BALANCE_11 = 'INTERNAL_BALANCE_11' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TradingAccountType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUcmFkaW5nQWNjb3VudFR5cGUoc3RyLCBFbnVtKToKICAgICIiIgogICAgVHJhZGluZ0FjY291bnRUeXBlCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgQ09JTl9GVVRVUkVTID0gJ0NPSU5fRlVUVVJFUycKICAgIENPSU5fTUFSR0lORURfU1dBUCA9ICdDT0lOX01BUkdJTkVEX1NXQVAnCiAgICBFWENIQU5HRSA9ICdFWENIQU5HRScKICAgIEZVTkRJTkcgPSAnRlVORElORycKICAgIEZVTkRBQkxFID0gJ0ZVTkRBQkxFJwogICAgRlVUVVJFUyA9ICdGVVRVUkVTJwogICAgRlVUVVJFU19DUk9TUyA9ICdGVVRVUkVTX0NST1NTJwogICAgTUFSR0lOID0gJ01BUkdJTicKICAgIE1BUkdJTl9DUk9TUyA9ICdNQVJHSU5fQ1JPU1MnCiAgICBPUFRJT05TID0gJ09QVElPTlMnCiAgICBTUE9UID0gJ1NQT1QnCiAgICBVU0RUX01BUkdJTkVEX1NXQVBfQ1JPU1MgPSAnVVNEVF9NQVJHSU5FRF9TV0FQX0NST1NTJwogICAgVVNEVF9GVVRVUkVTID0gJ1VTRFRfRlVUVVJFUycKICAgIFVOSUZJRUQgPSAnVU5JRklFRCcKICAgIElOVEVSTkFMX0JBTEFOQ0VfMSA9ICdJTlRFUk5BTF9CQUxBTkNFXzEnCiAgICBJTlRFUk5BTF9CQUxBTkNFXzIgPSAnSU5URVJOQUxfQkFMQU5DRV8yJwogICAgSU5URVJOQUxfQkFMQU5DRV8zID0gJ0lOVEVSTkFMX0JBTEFOQ0VfMycKICAgIElOVEVSTkFMX0JBTEFOQ0VfNCA9ICdJTlRFUk5BTF9CQUxBTkNFXzQnCiAgICBJTlRFUk5BTF9CQUxBTkNFXzUgPSAnSU5URVJOQUxfQkFMQU5DRV81JwogICAgSU5URVJOQUxfQkFMQU5DRV82ID0gJ0lOVEVSTkFMX0JBTEFOQ0VfNicKICAgIElOVEVSTkFMX0JBTEFOQ0VfNyA9ICdJTlRFUk5BTF9CQUxBTkNFXzcnCiAgICBJTlRFUk5BTF9CQUxBTkNFXzggPSAnSU5URVJOQUxfQkFMQU5DRV84JwogICAgSU5URVJOQUxfQkFMQU5DRV85ID0gJ0lOVEVSTkFMX0JBTEFOQ0VfOScKICAgIElOVEVSTkFMX0JBTEFOQ0VfMTAgPSAnSU5URVJOQUxfQkFMQU5DRV8xMCcKICAgIElOVEVSTkFMX0JBTEFOQ0VfMTEgPSAnSU5URVJOQUxfQkFMQU5DRV8xMScKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFkaW5nQWNjb3VudFR5cGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/trading_error_schema.py b/fireblocks/models/trading_error_schema.py index c7f350fc..124b6d3e 100644 --- a/fireblocks/models/trading_error_schema.py +++ b/fireblocks/models/trading_error_schema.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class TradingErrorSchema(BaseModel): - """ - TradingErrorSchema - """ # noqa: E501 - message: StrictStr - code: Union[StrictFloat, StrictInt] - descriptor: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["message", "code", "descriptor"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TradingErrorSchema from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TradingErrorSchema from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "message": obj.get("message"), - "code": obj.get("code"), - "descriptor": obj.get("descriptor") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RGbG9hdCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmFkaW5nRXJyb3JTY2hlbWEoQmFzZU1vZGVsKToKICAgICIiIgogICAgVHJhZGluZ0Vycm9yU2NoZW1hCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBtZXNzYWdlOiBTdHJpY3RTdHIKICAgIGNvZGU6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdCiAgICBkZXNjcmlwdG9yOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJtZXNzYWdlIiwgImNvZGUiLCAiZGVzY3JpcHRvciJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhZGluZ0Vycm9yU2NoZW1hIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYWRpbmdFcnJvclNjaGVtYSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJtZXNzYWdlIjogb2JqLmdldCgibWVzc2FnZSIpLAogICAgICAgICAgICAiY29kZSI6IG9iai5nZXQoImNvZGUiKSwKICAgICAgICAgICAgImRlc2NyaXB0b3IiOiBvYmouZ2V0KCJkZXNjcmlwdG9yIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/trading_provider.py b/fireblocks/models/trading_provider.py index 5ddb5ffc..54270be1 100644 --- a/fireblocks/models/trading_provider.py +++ b/fireblocks/models/trading_provider.py @@ -1,138 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.account_based_access_provider import AccountBasedAccessProvider -from fireblocks.models.direct_access_provider import DirectAccessProvider -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -TRADINGPROVIDER_ONE_OF_SCHEMAS = ["AccountBasedAccessProvider", "DirectAccessProvider"] - -class TradingProvider(BaseModel): - """ - TradingProvider - """ - # data type: AccountBasedAccessProvider - oneof_schema_1_validator: Optional[AccountBasedAccessProvider] = None - # data type: DirectAccessProvider - oneof_schema_2_validator: Optional[DirectAccessProvider] = None - actual_instance: Optional[Union[AccountBasedAccessProvider, DirectAccessProvider]] = None - one_of_schemas: Set[str] = { "AccountBasedAccessProvider", "DirectAccessProvider" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = TradingProvider.model_construct() - error_messages = [] - match = 0 - # validate data type: AccountBasedAccessProvider - if not isinstance(v, AccountBasedAccessProvider): - error_messages.append(f"Error! Input type `{type(v)}` is not `AccountBasedAccessProvider`") - else: - match += 1 - # validate data type: DirectAccessProvider - if not isinstance(v, DirectAccessProvider): - error_messages.append(f"Error! Input type `{type(v)}` is not `DirectAccessProvider`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in TradingProvider with oneOf schemas: AccountBasedAccessProvider, DirectAccessProvider. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in TradingProvider with oneOf schemas: AccountBasedAccessProvider, DirectAccessProvider. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into AccountBasedAccessProvider - try: - instance.actual_instance = AccountBasedAccessProvider.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into DirectAccessProvider - try: - instance.actual_instance = DirectAccessProvider.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into TradingProvider with oneOf schemas: AccountBasedAccessProvider, DirectAccessProvider. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into TradingProvider with oneOf schemas: AccountBasedAccessProvider, DirectAccessProvider. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], AccountBasedAccessProvider, DirectAccessProvider]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9iYXNlZF9hY2Nlc3NfcHJvdmlkZXIgaW1wb3J0IEFjY291bnRCYXNlZEFjY2Vzc1Byb3ZpZGVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGlyZWN0X2FjY2Vzc19wcm92aWRlciBpbXBvcnQgRGlyZWN0QWNjZXNzUHJvdmlkZXIKZnJvbSBweWRhbnRpYyBpbXBvcnQgU3RyaWN0U3RyLCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgVW5pb24sIExpc3QsIFNldCwgT3B0aW9uYWwsIERpY3QKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgTGl0ZXJhbCwgU2VsZgoKVFJBRElOR1BST1ZJREVSX09ORV9PRl9TQ0hFTUFTID0gWyJBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlciIsICJEaXJlY3RBY2Nlc3NQcm92aWRlciJdCgpjbGFzcyBUcmFkaW5nUHJvdmlkZXIoQmFzZU1vZGVsKToKICAgICIiIgogICAgVHJhZGluZ1Byb3ZpZGVyCiAgICAiIiIKICAgICMgZGF0YSB0eXBlOiBBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlcgogICAgb25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yOiBPcHRpb25hbFtBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlcl0gPSBOb25lCiAgICAjIGRhdGEgdHlwZTogRGlyZWN0QWNjZXNzUHJvdmlkZXIKICAgIG9uZW9mX3NjaGVtYV8yX3ZhbGlkYXRvcjogT3B0aW9uYWxbRGlyZWN0QWNjZXNzUHJvdmlkZXJdID0gTm9uZQogICAgYWN0dWFsX2luc3RhbmNlOiBPcHRpb25hbFtVbmlvbltBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlciwgRGlyZWN0QWNjZXNzUHJvdmlkZXJdXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgIkFjY291bnRCYXNlZEFjY2Vzc1Byb3ZpZGVyIiwgIkRpcmVjdEFjY2Vzc1Byb3ZpZGVyIiB9CgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gVHJhZGluZ1Byb3ZpZGVyLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlcgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIEFjY291bnRCYXNlZEFjY2Vzc1Byb3ZpZGVyKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlcmAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogRGlyZWN0QWNjZXNzUHJvdmlkZXIKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBEaXJlY3RBY2Nlc3NQcm92aWRlcik6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgRGlyZWN0QWNjZXNzUHJvdmlkZXJgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIFRyYWRpbmdQcm92aWRlciB3aXRoIG9uZU9mIHNjaGVtYXM6IEFjY291bnRCYXNlZEFjY2Vzc1Byb3ZpZGVyLCBEaXJlY3RBY2Nlc3NQcm92aWRlci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBUcmFkaW5nUHJvdmlkZXIgd2l0aCBvbmVPZiBzY2hlbWFzOiBBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlciwgRGlyZWN0QWNjZXNzUHJvdmlkZXIuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBVbmlvbltzdHIsIERpY3Rbc3RyLCBBbnldXSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCgogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIEFjY291bnRCYXNlZEFjY2Vzc1Byb3ZpZGVyCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlci5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBEaXJlY3RBY2Nlc3NQcm92aWRlcgogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gRGlyZWN0QWNjZXNzUHJvdmlkZXIuZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCgogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBUcmFkaW5nUHJvdmlkZXIgd2l0aCBvbmVPZiBzY2hlbWFzOiBBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlciwgRGlyZWN0QWNjZXNzUHJvdmlkZXIuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gVHJhZGluZ1Byb3ZpZGVyIHdpdGggb25lT2Ygc2NoZW1hczogQWNjb3VudEJhc2VkQWNjZXNzUHJvdmlkZXIsIERpcmVjdEFjY2Vzc1Byb3ZpZGVyLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuICJudWxsIgoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fanNvbiIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24oKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYuYWN0dWFsX2luc3RhbmNlKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IE9wdGlvbmFsW1VuaW9uW0RpY3Rbc3RyLCBBbnldLCBBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlciwgRGlyZWN0QWNjZXNzUHJvdmlkZXJdXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgcHJpbWl0aXZlIHR5cGUKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/trading_provider_details.py b/fireblocks/models/trading_provider_details.py new file mode 100644 index 00000000..0737d026 --- /dev/null +++ b/fireblocks/models/trading_provider_details.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9iYXNlZF9wcm92aWRlcl9kZXRhaWxzIGltcG9ydCBBY2NvdW50QmFzZWRQcm92aWRlckRldGFpbHMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kaXJlY3RfcHJvdmlkZXJfZGV0YWlscyBpbXBvcnQgRGlyZWN0UHJvdmlkZXJEZXRhaWxzCmZyb20gcHlkYW50aWMgaW1wb3J0IFN0cmljdFN0ciwgRmllbGQKZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uLCBMaXN0LCBTZXQsIE9wdGlvbmFsLCBEaWN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IExpdGVyYWwsIFNlbGYKClRSQURJTkdQUk9WSURFUkRFVEFJTFNfT05FX09GX1NDSEVNQVMgPSBbIkFjY291bnRCYXNlZFByb3ZpZGVyRGV0YWlscyIsICJEaXJlY3RQcm92aWRlckRldGFpbHMiXQoKY2xhc3MgVHJhZGluZ1Byb3ZpZGVyRGV0YWlscyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUcmFkaW5nUHJvdmlkZXJEZXRhaWxzCiAgICAiIiIKICAgICMgZGF0YSB0eXBlOiBBY2NvdW50QmFzZWRQcm92aWRlckRldGFpbHMKICAgIG9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvcjogT3B0aW9uYWxbQWNjb3VudEJhc2VkUHJvdmlkZXJEZXRhaWxzXSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBEaXJlY3RQcm92aWRlckRldGFpbHMKICAgIG9uZW9mX3NjaGVtYV8yX3ZhbGlkYXRvcjogT3B0aW9uYWxbRGlyZWN0UHJvdmlkZXJEZXRhaWxzXSA9IE5vbmUKICAgIGFjdHVhbF9pbnN0YW5jZTogT3B0aW9uYWxbVW5pb25bQWNjb3VudEJhc2VkUHJvdmlkZXJEZXRhaWxzLCBEaXJlY3RQcm92aWRlckRldGFpbHNdXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgIkFjY291bnRCYXNlZFByb3ZpZGVyRGV0YWlscyIsICJEaXJlY3RQcm92aWRlckRldGFpbHMiIH0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncykgLT4gTm9uZToKICAgICAgICBpZiBhcmdzOgogICAgICAgICAgICBpZiBsZW4oYXJncykgPiAxOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBvbmx5IDEgaXMgYWxsb3dlZCB0byBzZXQgYGFjdHVhbF9pbnN0YW5jZWAiKQogICAgICAgICAgICBpZiBrd2FyZ3M6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIGtleXdvcmQgYXJndW1lbnRzIGNhbm5vdCBiZSB1c2VkLiIpCiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oYWN0dWFsX2luc3RhbmNlPWFyZ3NbMF0pCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhY3R1YWxfaW5zdGFuY2UnKQogICAgZGVmIGFjdHVhbF9pbnN0YW5jZV9tdXN0X3ZhbGlkYXRlX29uZW9mKGNscywgdik6CiAgICAgICAgaW5zdGFuY2UgPSBUcmFkaW5nUHJvdmlkZXJEZXRhaWxzLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBBY2NvdW50QmFzZWRQcm92aWRlckRldGFpbHMKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBBY2NvdW50QmFzZWRQcm92aWRlckRldGFpbHMpOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYEFjY291bnRCYXNlZFByb3ZpZGVyRGV0YWlsc2AiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogRGlyZWN0UHJvdmlkZXJEZXRhaWxzCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgRGlyZWN0UHJvdmlkZXJEZXRhaWxzKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBEaXJlY3RQcm92aWRlckRldGFpbHNgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIFRyYWRpbmdQcm92aWRlckRldGFpbHMgd2l0aCBvbmVPZiBzY2hlbWFzOiBBY2NvdW50QmFzZWRQcm92aWRlckRldGFpbHMsIERpcmVjdFByb3ZpZGVyRGV0YWlscy4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBUcmFkaW5nUHJvdmlkZXJEZXRhaWxzIHdpdGggb25lT2Ygc2NoZW1hczogQWNjb3VudEJhc2VkUHJvdmlkZXJEZXRhaWxzLCBEaXJlY3RQcm92aWRlckRldGFpbHMuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBVbmlvbltzdHIsIERpY3Rbc3RyLCBBbnldXSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCgogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIEFjY291bnRCYXNlZFByb3ZpZGVyRGV0YWlscwogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gQWNjb3VudEJhc2VkUHJvdmlkZXJEZXRhaWxzLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIERpcmVjdFByb3ZpZGVyRGV0YWlscwogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gRGlyZWN0UHJvdmlkZXJEZXRhaWxzLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQoKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gVHJhZGluZ1Byb3ZpZGVyRGV0YWlscyB3aXRoIG9uZU9mIHNjaGVtYXM6IEFjY291bnRCYXNlZFByb3ZpZGVyRGV0YWlscywgRGlyZWN0UHJvdmlkZXJEZXRhaWxzLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIFRyYWRpbmdQcm92aWRlckRldGFpbHMgd2l0aCBvbmVPZiBzY2hlbWFzOiBBY2NvdW50QmFzZWRQcm92aWRlckRldGFpbHMsIERpcmVjdFByb3ZpZGVyRGV0YWlscy4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiAibnVsbCIKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2pzb24iKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbik6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKCkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLmFjdHVhbF9pbnN0YW5jZSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBPcHRpb25hbFtVbmlvbltEaWN0W3N0ciwgQW55XSwgQWNjb3VudEJhc2VkUHJvdmlkZXJEZXRhaWxzLCBEaXJlY3RQcm92aWRlckRldGFpbHNdXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgcHJpbWl0aXZlIHR5cGUKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/transaction.py b/fireblocks/models/transaction.py index cdd5b0c8..2921aea2 100644 --- a/fireblocks/models/transaction.py +++ b/fireblocks/models/transaction.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class Transaction(BaseModel): - """ - Transaction - """ # noqa: E501 - id: StrictStr - state: StrictStr - timestamp: Optional[Union[StrictFloat, StrictInt]] = None - instruction_id: Optional[StrictStr] = Field(default=None, alias="instructionId") - __properties: ClassVar[List[str]] = ["id", "state", "timestamp", "instructionId"] - - @field_validator('state') - def state_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['SUBMITTED', 'QUEUED', 'PENDING_AUTHORIZATION', 'PENDING_SIGNATURE', 'BROADCASTING', 'PENDING_3RD_PARTY_MANUAL_APPROVAL', 'PENDING_3RD_PARTY', 'PENDING', 'CONFIRMING', 'CONFIRMED', 'COMPLETED', 'PARTIALLY_COMPLETED', 'PENDING_AML_SCREENING', 'CANCELLING', 'CANCELLED', 'REJECTED', 'BLOCKED', 'FAILED', 'TIMEOUT']): - raise ValueError("must be one of enum values ('SUBMITTED', 'QUEUED', 'PENDING_AUTHORIZATION', 'PENDING_SIGNATURE', 'BROADCASTING', 'PENDING_3RD_PARTY_MANUAL_APPROVAL', 'PENDING_3RD_PARTY', 'PENDING', 'CONFIRMING', 'CONFIRMED', 'COMPLETED', 'PARTIALLY_COMPLETED', 'PENDING_AML_SCREENING', 'CANCELLING', 'CANCELLED', 'REJECTED', 'BLOCKED', 'FAILED', 'TIMEOUT')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of Transaction from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of Transaction from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "state": obj.get("state"), - "timestamp": obj.get("timestamp"), - "instructionId": obj.get("instructionId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmFuc2FjdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUcmFuc2FjdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0cgogICAgc3RhdGU6IFN0cmljdFN0cgogICAgdGltZXN0YW1wOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBOb25lCiAgICBpbnN0cnVjdGlvbl9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Imluc3RydWN0aW9uSWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJzdGF0ZSIsICJ0aW1lc3RhbXAiLCAiaW5zdHJ1Y3Rpb25JZCJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignc3RhdGUnKQogICAgZGVmIHN0YXRlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ1NVQk1JVFRFRCcsICdRVUVVRUQnLCAnUEVORElOR19BVVRIT1JJWkFUSU9OJywgJ1BFTkRJTkdfU0lHTkFUVVJFJywgJ0JST0FEQ0FTVElORycsICdQRU5ESU5HXzNSRF9QQVJUWV9NQU5VQUxfQVBQUk9WQUwnLCAnUEVORElOR18zUkRfUEFSVFknLCAnUEVORElORycsICdDT05GSVJNSU5HJywgJ0NPTkZJUk1FRCcsICdDT01QTEVURUQnLCAnUEFSVElBTExZX0NPTVBMRVRFRCcsICdQRU5ESU5HX0FNTF9TQ1JFRU5JTkcnLCAnQ0FOQ0VMTElORycsICdDQU5DRUxMRUQnLCAnUkVKRUNURUQnLCAnQkxPQ0tFRCcsICdGQUlMRUQnLCAnVElNRU9VVCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdTVUJNSVRURUQnLCAnUVVFVUVEJywgJ1BFTkRJTkdfQVVUSE9SSVpBVElPTicsICdQRU5ESU5HX1NJR05BVFVSRScsICdCUk9BRENBU1RJTkcnLCAnUEVORElOR18zUkRfUEFSVFlfTUFOVUFMX0FQUFJPVkFMJywgJ1BFTkRJTkdfM1JEX1BBUlRZJywgJ1BFTkRJTkcnLCAnQ09ORklSTUlORycsICdDT05GSVJNRUQnLCAnQ09NUExFVEVEJywgJ1BBUlRJQUxMWV9DT01QTEVURUQnLCAnUEVORElOR19BTUxfU0NSRUVOSU5HJywgJ0NBTkNFTExJTkcnLCAnQ0FOQ0VMTEVEJywgJ1JFSkVDVEVEJywgJ0JMT0NLRUQnLCAnRkFJTEVEJywgJ1RJTUVPVVQnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNhY3Rpb24gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNhY3Rpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAic3RhdGUiOiBvYmouZ2V0KCJzdGF0ZSIpLAogICAgICAgICAgICAidGltZXN0YW1wIjogb2JqLmdldCgidGltZXN0YW1wIiksCiAgICAgICAgICAgICJpbnN0cnVjdGlvbklkIjogb2JqLmdldCgiaW5zdHJ1Y3Rpb25JZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/transaction_direction.py b/fireblocks/models/transaction_direction.py index a2096bee..042ee5ad 100644 --- a/fireblocks/models/transaction_direction.py +++ b/fireblocks/models/transaction_direction.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TransactionDirection(str, Enum): - """ - Transaction direction - """ - - """ - allowed enum values - """ - INBOUND = 'INBOUND' - OUTBOUND = 'OUTBOUND' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TransactionDirection from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUcmFuc2FjdGlvbkRpcmVjdGlvbihzdHIsIEVudW0pOgogICAgIiIiCiAgICBUcmFuc2FjdGlvbiBkaXJlY3Rpb24KICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBJTkJPVU5EID0gJ0lOQk9VTkQnCiAgICBPVVRCT1VORCA9ICdPVVRCT1VORCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2FjdGlvbkRpcmVjdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/transaction_fee.py b/fireblocks/models/transaction_fee.py index 967848af..52c2d562 100644 --- a/fireblocks/models/transaction_fee.py +++ b/fireblocks/models/transaction_fee.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class TransactionFee(BaseModel): - """ - TransactionFee - """ # noqa: E501 - fee_per_byte: Optional[StrictStr] = Field(default=None, alias="feePerByte") - gas_price: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="gasPrice") - gas_limit: Optional[StrictStr] = Field(default=None, alias="gasLimit") - network_fee: Optional[StrictStr] = Field(default=None, alias="networkFee") - base_fee: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="(optional) Base Fee according to EIP-1559 (ETH assets)", alias="baseFee") - priority_fee: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="(optional) Priority Fee according to EIP-1559 (ETH assets)", alias="priorityFee") - max_fee_per_gas_delta: Optional[StrictStr] = Field(default=None, description="Max Fee Per Gas Delta added only for EIP-1559 (ETH assets)", alias="maxFeePerGasDelta") - l1_fee: Optional[StrictStr] = Field(default=None, description="Layer 1 fee for Layer 2 chains", alias="l1Fee") - __properties: ClassVar[List[str]] = ["feePerByte", "gasPrice", "gasLimit", "networkFee", "baseFee", "priorityFee", "maxFeePerGasDelta", "l1Fee"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TransactionFee from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TransactionFee from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "feePerByte": obj.get("feePerByte"), - "gasPrice": obj.get("gasPrice"), - "gasLimit": obj.get("gasLimit"), - "networkFee": obj.get("networkFee"), - "baseFee": obj.get("baseFee"), - "priorityFee": obj.get("priorityFee"), - "maxFeePerGasDelta": obj.get("maxFeePerGasDelta"), - "l1Fee": obj.get("l1Fee") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVHJhbnNhY3Rpb25GZWUoQmFzZU1vZGVsKToKICAgICIiIgogICAgVHJhbnNhY3Rpb25GZWUKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGZlZV9wZXJfYnl0ZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImZlZVBlckJ5dGUiKQogICAgZ2FzX3ByaWNlOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJnYXNQcmljZSIpCiAgICBnYXNfbGltaXQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJnYXNMaW1pdCIpCiAgICBuZXR3b3JrX2ZlZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im5ldHdvcmtGZWUiKQogICAgYmFzZV9mZWU6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IihvcHRpb25hbCkgQmFzZSBGZWUgYWNjb3JkaW5nIHRvIEVJUC0xNTU5IChFVEggYXNzZXRzKSIsIGFsaWFzPSJiYXNlRmVlIikKICAgIHByaW9yaXR5X2ZlZTogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iKG9wdGlvbmFsKSBQcmlvcml0eSBGZWUgYWNjb3JkaW5nIHRvIEVJUC0xNTU5IChFVEggYXNzZXRzKSIsIGFsaWFzPSJwcmlvcml0eUZlZSIpCiAgICBtYXhfZmVlX3Blcl9nYXNfZGVsdGE6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJNYXggRmVlIFBlciBHYXMgRGVsdGEgYWRkZWQgb25seSBmb3IgRUlQLTE1NTkgKEVUSCBhc3NldHMpIiwgYWxpYXM9Im1heEZlZVBlckdhc0RlbHRhIikKICAgIGwxX2ZlZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkxheWVyIDEgZmVlIGZvciBMYXllciAyIGNoYWlucyIsIGFsaWFzPSJsMUZlZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImZlZVBlckJ5dGUiLCAiZ2FzUHJpY2UiLCAiZ2FzTGltaXQiLCAibmV0d29ya0ZlZSIsICJiYXNlRmVlIiwgInByaW9yaXR5RmVlIiwgIm1heEZlZVBlckdhc0RlbHRhIiwgImwxRmVlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2FjdGlvbkZlZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2FjdGlvbkZlZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJmZWVQZXJCeXRlIjogb2JqLmdldCgiZmVlUGVyQnl0ZSIpLAogICAgICAgICAgICAiZ2FzUHJpY2UiOiBvYmouZ2V0KCJnYXNQcmljZSIpLAogICAgICAgICAgICAiZ2FzTGltaXQiOiBvYmouZ2V0KCJnYXNMaW1pdCIpLAogICAgICAgICAgICAibmV0d29ya0ZlZSI6IG9iai5nZXQoIm5ldHdvcmtGZWUiKSwKICAgICAgICAgICAgImJhc2VGZWUiOiBvYmouZ2V0KCJiYXNlRmVlIiksCiAgICAgICAgICAgICJwcmlvcml0eUZlZSI6IG9iai5nZXQoInByaW9yaXR5RmVlIiksCiAgICAgICAgICAgICJtYXhGZWVQZXJHYXNEZWx0YSI6IG9iai5nZXQoIm1heEZlZVBlckdhc0RlbHRhIiksCiAgICAgICAgICAgICJsMUZlZSI6IG9iai5nZXQoImwxRmVlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/transaction_operation.py b/fireblocks/models/transaction_operation.py index a7a8a537..e9c75086 100644 --- a/fireblocks/models/transaction_operation.py +++ b/fireblocks/models/transaction_operation.py @@ -1,45 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TransactionOperation(str, Enum): - """ - * `TRANSFER` - The default value for an operation. Transfers funds from one account to another. UTXO blockchains allow multi-input and multi-output transfers. All other blockchains allow transfers with one source address and one destination address. * `MINT` - Mints new tokens. Supported for Stellar, Ripple and EVM-based blockchains. * `BURN` - Burns tokens. Supported for Stellar, Ripple and EVM-based blockchains. * `CONTRACT_CALL` - Calls a smart contract method for web3 operations on any EVM blockchain. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions. * `PROGRAM_CALL` - Execute multiple instructions on Solana blockchain. The @solana/web3.js library is recommended for building program call transactions. * `TYPED_MESSAGE` - An off-chain message in either Ethereum Personal Message or EIP712 format. Use it to sign specific readable messages that are not actual transactions. [Learn more about typed messages](https://developers.fireblocks.com/docs/typed-message-signing). * `RAW` - An off-chain message with no predefined format. Use it to sign any message with your private key, including protocols such as blockchains and custom transaction types that are not natively supported by Fireblocks. [Learn more about raw signing transactions.](https://developers.fireblocks.com/docs/raw-message-signing) * `APPROVE` - Enables the approve function for a smart contract or wallet to withdraw from a designated wallet. [Learn more](https://support.fireblocks.io/hc/en-us/articles/4404616097426-Amount-Cap-for-Approve-transactions). * `ENABLE_ASSET` - Algorand, DigitalBits, Solana, and Stellar require an on-chain transaction to create an asset wallet and enable the deposit address. This transaction is automatically created when adding assets on these blockchains at a vault account. - """ - - """ - allowed enum values - """ - TRANSFER = 'TRANSFER' - BURN = 'BURN' - CONTRACT_CALL = 'CONTRACT_CALL' - PROGRAM_CALL = 'PROGRAM_CALL' - MINT = 'MINT' - RAW = 'RAW' - TYPED_MESSAGE = 'TYPED_MESSAGE' - APPROVE = 'APPROVE' - ENABLE_ASSET = 'ENABLE_ASSET' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TransactionOperation from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUcmFuc2FjdGlvbk9wZXJhdGlvbihzdHIsIEVudW0pOgogICAgIiIiCiAgICAqIGBUUkFOU0ZFUmAgLSBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgYW4gb3BlcmF0aW9uLiBUcmFuc2ZlcnMgZnVuZHMgZnJvbSBvbmUgYWNjb3VudCB0byBhbm90aGVyLiBVVFhPIGJsb2NrY2hhaW5zIGFsbG93IG11bHRpLWlucHV0IGFuZCBtdWx0aS1vdXRwdXQgdHJhbnNmZXJzLiBBbGwgb3RoZXIgYmxvY2tjaGFpbnMgYWxsb3cgdHJhbnNmZXJzIHdpdGggb25lIHNvdXJjZSBhZGRyZXNzIGFuZCBvbmUgZGVzdGluYXRpb24gYWRkcmVzcy4gKiBgTUlOVGAgLSBNaW50cyBuZXcgdG9rZW5zLiBTdXBwb3J0ZWQgZm9yIFN0ZWxsYXIsIFJpcHBsZSBhbmQgRVZNLWJhc2VkIGJsb2NrY2hhaW5zLiAqIGBCVVJOYCAtIEJ1cm5zIHRva2Vucy4gU3VwcG9ydGVkIGZvciBTdGVsbGFyLCBSaXBwbGUgYW5kIEVWTS1iYXNlZCBibG9ja2NoYWlucy4gKiBgQ09OVFJBQ1RfQ0FMTGAgLSBDYWxscyBhIHNtYXJ0IGNvbnRyYWN0IG1ldGhvZCBmb3Igd2ViMyBvcGVyYXRpb25zIG9uIGFueSBFVk0gYmxvY2tjaGFpbi4gVGhlIEZpcmVibG9ja3MgW2RldmVsb3BtZW50IGxpYnJhcmllc10oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL2RvY3MvZXRoZXJldW0tZGV2ZWxvcG1lbnQjY29udmVuaWVuY2UtbGlicmFyaWVzKSBhcmUgcmVjb21tZW5kZWQgZm9yIGJ1aWxkaW5nIGNvbnRyYWN0IGNhbGwgdHJhbnNhY3Rpb25zLiAqIGBQUk9HUkFNX0NBTExgIC0gRXhlY3V0ZSBtdWx0aXBsZSBpbnN0cnVjdGlvbnMgb24gU29sYW5hIGJsb2NrY2hhaW4uIFRoZSBAc29sYW5hL3dlYjMuanMgbGlicmFyeSBpcyByZWNvbW1lbmRlZCBmb3IgYnVpbGRpbmcgcHJvZ3JhbSBjYWxsIHRyYW5zYWN0aW9ucy4gICogYFRZUEVEX01FU1NBR0VgIC0gQW4gb2ZmLWNoYWluIG1lc3NhZ2UgaW4gZWl0aGVyIEV0aGVyZXVtIFBlcnNvbmFsIE1lc3NhZ2Ugb3IgRUlQNzEyIGZvcm1hdC4gVXNlIGl0IHRvIHNpZ24gc3BlY2lmaWMgcmVhZGFibGUgbWVzc2FnZXMgdGhhdCBhcmUgbm90IGFjdHVhbCB0cmFuc2FjdGlvbnMuIFtMZWFybiBtb3JlIGFib3V0IHR5cGVkIG1lc3NhZ2VzXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vZG9jcy90eXBlZC1tZXNzYWdlLXNpZ25pbmcpLiAqIGBSQVdgIC0gQW4gb2ZmLWNoYWluIG1lc3NhZ2Ugd2l0aCBubyBwcmVkZWZpbmVkIGZvcm1hdC4gVXNlIGl0IHRvIHNpZ24gYW55IG1lc3NhZ2Ugd2l0aCB5b3VyIHByaXZhdGUga2V5LCBpbmNsdWRpbmcgcHJvdG9jb2xzIHN1Y2ggYXMgYmxvY2tjaGFpbnMgYW5kIGN1c3RvbSB0cmFuc2FjdGlvbiB0eXBlcyB0aGF0IGFyZSBub3QgbmF0aXZlbHkgc3VwcG9ydGVkIGJ5IEZpcmVibG9ja3MuIFtMZWFybiBtb3JlIGFib3V0IHJhdyBzaWduaW5nIHRyYW5zYWN0aW9ucy5dKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9kb2NzL3Jhdy1tZXNzYWdlLXNpZ25pbmcpICogYEFQUFJPVkVgIC0gRW5hYmxlcyB0aGUgYXBwcm92ZSBmdW5jdGlvbiBmb3IgYSBzbWFydCBjb250cmFjdCBvciB3YWxsZXQgdG8gIHdpdGhkcmF3IGZyb20gYSBkZXNpZ25hdGVkIHdhbGxldC4gW0xlYXJuIG1vcmVdKGh0dHBzOi8vc3VwcG9ydC5maXJlYmxvY2tzLmlvL2hjL2VuLXVzL2FydGljbGVzLzQ0MDQ2MTYwOTc0MjYtQW1vdW50LUNhcC1mb3ItQXBwcm92ZS10cmFuc2FjdGlvbnMpLiAqIGBFTkFCTEVfQVNTRVRgIC0gQWxnb3JhbmQsIERpZ2l0YWxCaXRzLCBTb2xhbmEsIGFuZCBTdGVsbGFyIHJlcXVpcmUgYW4gb24tY2hhaW4gdHJhbnNhY3Rpb24gdG8gY3JlYXRlIGFuIGFzc2V0IHdhbGxldCBhbmQgZW5hYmxlIHRoZSBkZXBvc2l0IGFkZHJlc3MuIFRoaXMgdHJhbnNhY3Rpb24gaXMgYXV0b21hdGljYWxseSBjcmVhdGVkIHdoZW4gYWRkaW5nIGFzc2V0cyBvbiB0aGVzZSBibG9ja2NoYWlucyBhdCBhIHZhdWx0IGFjY291bnQuIAogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIFRSQU5TRkVSID0gJ1RSQU5TRkVSJwogICAgQlVSTiA9ICdCVVJOJwogICAgQ09OVFJBQ1RfQ0FMTCA9ICdDT05UUkFDVF9DQUxMJwogICAgUFJPR1JBTV9DQUxMID0gJ1BST0dSQU1fQ0FMTCcKICAgIE1JTlQgPSAnTUlOVCcKICAgIFJBVyA9ICdSQVcnCiAgICBUWVBFRF9NRVNTQUdFID0gJ1RZUEVEX01FU1NBR0UnCiAgICBBUFBST1ZFID0gJ0FQUFJPVkUnCiAgICBFTkFCTEVfQVNTRVQgPSAnRU5BQkxFX0FTU0VUJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zYWN0aW9uT3BlcmF0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/transaction_operation_enum.py b/fireblocks/models/transaction_operation_enum.py index 391223dc..dc6aeafd 100644 --- a/fireblocks/models/transaction_operation_enum.py +++ b/fireblocks/models/transaction_operation_enum.py @@ -1,50 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TransactionOperationEnum(str, Enum): - """ - Transaction operation type - """ - - """ - allowed enum values - """ - TRANSFER = 'TRANSFER' - BURN = 'BURN' - CONTRACT_CALL = 'CONTRACT_CALL' - MINT = 'MINT' - RAW = 'RAW' - TYPED_MESSAGE = 'TYPED_MESSAGE' - ENABLE_ASSET = 'ENABLE_ASSET' - STAKE = 'STAKE' - UNSTAKE = 'UNSTAKE' - WITHDRAW = 'WITHDRAW' - REDEEM_FROM_COMPOUND = 'REDEEM_FROM_COMPOUND' - SUPPLY_TO_COMPOUND = 'SUPPLY_TO_COMPOUND' - PROGRAM_CALL = 'PROGRAM_CALL' - APPROVE = 'APPROVE' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TransactionOperationEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0oc3RyLCBFbnVtKToKICAgICIiIgogICAgVHJhbnNhY3Rpb24gb3BlcmF0aW9uIHR5cGUKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBUUkFOU0ZFUiA9ICdUUkFOU0ZFUicKICAgIEJVUk4gPSAnQlVSTicKICAgIENPTlRSQUNUX0NBTEwgPSAnQ09OVFJBQ1RfQ0FMTCcKICAgIE1JTlQgPSAnTUlOVCcKICAgIFJBVyA9ICdSQVcnCiAgICBUWVBFRF9NRVNTQUdFID0gJ1RZUEVEX01FU1NBR0UnCiAgICBFTkFCTEVfQVNTRVQgPSAnRU5BQkxFX0FTU0VUJwogICAgU1RBS0UgPSAnU1RBS0UnCiAgICBVTlNUQUtFID0gJ1VOU1RBS0UnCiAgICBXSVRIRFJBVyA9ICdXSVRIRFJBVycKICAgIFJFREVFTV9GUk9NX0NPTVBPVU5EID0gJ1JFREVFTV9GUk9NX0NPTVBPVU5EJwogICAgU1VQUExZX1RPX0NPTVBPVU5EID0gJ1NVUFBMWV9UT19DT01QT1VORCcKICAgIFBST0dSQU1fQ0FMTCA9ICdQUk9HUkFNX0NBTEwnCiAgICBBUFBST1ZFID0gJ0FQUFJPVkUnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/transaction_receipt_response.py b/fireblocks/models/transaction_receipt_response.py index c91d7e03..618551ba 100644 --- a/fireblocks/models/transaction_receipt_response.py +++ b/fireblocks/models/transaction_receipt_response.py @@ -1,132 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tx_log import TxLog -from typing import Optional, Set -from typing_extensions import Self - -class TransactionReceiptResponse(BaseModel): - """ - TransactionReceiptResponse - """ # noqa: E501 - block_hash: StrictStr = Field(description="The block hash", alias="blockHash") - block_number: StrictInt = Field(description="The block number", alias="blockNumber") - contract_address: Optional[StrictStr] = Field(default=None, description="The address of deployed contract", alias="contractAddress") - cumulative_gas_used: StrictInt = Field(description="The cumulative gas used in the transaction", alias="cumulativeGasUsed") - effective_gas_price: StrictInt = Field(description="The effective gas price", alias="effectiveGasPrice") - var_from: StrictStr = Field(description="Sender address", alias="from") - gas_used: StrictInt = Field(description="Gas used by the transaction", alias="gasUsed") - logs: List[TxLog] = Field(description="Array of transaction logs") - logs_bloom: StrictStr = Field(description="Logs bloom filter", alias="logsBloom") - status: StrictInt = Field(description="Transaction status (1 for success, 0 for failure)") - to: Optional[StrictStr] = Field(default=None, description="Recipient address") - transaction_hash: StrictStr = Field(description="The transaction hash", alias="transactionHash") - transaction_index: StrictInt = Field(description="Transaction index in the block", alias="transactionIndex") - type: StrictStr = Field(description="Type of transaction") - __properties: ClassVar[List[str]] = ["blockHash", "blockNumber", "contractAddress", "cumulativeGasUsed", "effectiveGasPrice", "from", "gasUsed", "logs", "logsBloom", "status", "to", "transactionHash", "transactionIndex", "type"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TransactionReceiptResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in logs (list) - _items = [] - if self.logs: - for _item_logs in self.logs: - if _item_logs: - _items.append(_item_logs.to_dict()) - _dict['logs'] = _items - # set to None if contract_address (nullable) is None - # and model_fields_set contains the field - if self.contract_address is None and "contract_address" in self.model_fields_set: - _dict['contractAddress'] = None - - # set to None if to (nullable) is None - # and model_fields_set contains the field - if self.to is None and "to" in self.model_fields_set: - _dict['to'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TransactionReceiptResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "blockHash": obj.get("blockHash"), - "blockNumber": obj.get("blockNumber"), - "contractAddress": obj.get("contractAddress"), - "cumulativeGasUsed": obj.get("cumulativeGasUsed"), - "effectiveGasPrice": obj.get("effectiveGasPrice"), - "from": obj.get("from"), - "gasUsed": obj.get("gasUsed"), - "logs": [TxLog.from_dict(_item) for _item in obj["logs"]] if obj.get("logs") is not None else None, - "logsBloom": obj.get("logsBloom"), - "status": obj.get("status"), - "to": obj.get("to"), - "transactionHash": obj.get("transactionHash"), - "transactionIndex": obj.get("transactionIndex"), - "type": obj.get("type") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHhfbG9nIGltcG9ydCBUeExvZwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmFuc2FjdGlvblJlY2VpcHRSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUcmFuc2FjdGlvblJlY2VpcHRSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgYmxvY2tfaGFzaDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBibG9jayBoYXNoIiwgYWxpYXM9ImJsb2NrSGFzaCIpCiAgICBibG9ja19udW1iZXI6IFN0cmljdEludCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmxvY2sgbnVtYmVyIiwgYWxpYXM9ImJsb2NrTnVtYmVyIikKICAgIGNvbnRyYWN0X2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgYWRkcmVzcyBvZiBkZXBsb3llZCBjb250cmFjdCIsIGFsaWFzPSJjb250cmFjdEFkZHJlc3MiKQogICAgY3VtdWxhdGl2ZV9nYXNfdXNlZDogU3RyaWN0SW50ID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBjdW11bGF0aXZlIGdhcyB1c2VkIGluIHRoZSB0cmFuc2FjdGlvbiIsIGFsaWFzPSJjdW11bGF0aXZlR2FzVXNlZCIpCiAgICBlZmZlY3RpdmVfZ2FzX3ByaWNlOiBTdHJpY3RJbnQgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGVmZmVjdGl2ZSBnYXMgcHJpY2UiLCBhbGlhcz0iZWZmZWN0aXZlR2FzUHJpY2UiKQogICAgdmFyX2Zyb206IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJTZW5kZXIgYWRkcmVzcyIsIGFsaWFzPSJmcm9tIikKICAgIGdhc191c2VkOiBTdHJpY3RJbnQgPSBGaWVsZChkZXNjcmlwdGlvbj0iR2FzIHVzZWQgYnkgdGhlIHRyYW5zYWN0aW9uIiwgYWxpYXM9Imdhc1VzZWQiKQogICAgbG9nczogTGlzdFtUeExvZ10gPSBGaWVsZChkZXNjcmlwdGlvbj0iQXJyYXkgb2YgdHJhbnNhY3Rpb24gbG9ncyIpCiAgICBsb2dzX2Jsb29tOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iTG9ncyBibG9vbSBmaWx0ZXIiLCBhbGlhcz0ibG9nc0Jsb29tIikKICAgIHN0YXR1czogU3RyaWN0SW50ID0gRmllbGQoZGVzY3JpcHRpb249IlRyYW5zYWN0aW9uIHN0YXR1cyAoMSBmb3Igc3VjY2VzcywgMCBmb3IgZmFpbHVyZSkiKQogICAgdG86IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSZWNpcGllbnQgYWRkcmVzcyIpCiAgICB0cmFuc2FjdGlvbl9oYXNoOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHRyYW5zYWN0aW9uIGhhc2giLCBhbGlhcz0idHJhbnNhY3Rpb25IYXNoIikKICAgIHRyYW5zYWN0aW9uX2luZGV4OiBTdHJpY3RJbnQgPSBGaWVsZChkZXNjcmlwdGlvbj0iVHJhbnNhY3Rpb24gaW5kZXggaW4gdGhlIGJsb2NrIiwgYWxpYXM9InRyYW5zYWN0aW9uSW5kZXgiKQogICAgdHlwZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlR5cGUgb2YgdHJhbnNhY3Rpb24iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJibG9ja0hhc2giLCAiYmxvY2tOdW1iZXIiLCAiY29udHJhY3RBZGRyZXNzIiwgImN1bXVsYXRpdmVHYXNVc2VkIiwgImVmZmVjdGl2ZUdhc1ByaWNlIiwgImZyb20iLCAiZ2FzVXNlZCIsICJsb2dzIiwgImxvZ3NCbG9vbSIsICJzdGF0dXMiLCAidG8iLCAidHJhbnNhY3Rpb25IYXNoIiwgInRyYW5zYWN0aW9uSW5kZXgiLCAidHlwZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNhY3Rpb25SZWNlaXB0UmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gbG9ncyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYubG9nczoKICAgICAgICAgICAgZm9yIF9pdGVtX2xvZ3MgaW4gc2VsZi5sb2dzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fbG9nczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2xvZ3MudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnbG9ncyddID0gX2l0ZW1zCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBjb250cmFjdF9hZGRyZXNzIChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5jb250cmFjdF9hZGRyZXNzIGlzIE5vbmUgYW5kICJjb250cmFjdF9hZGRyZXNzIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wydjb250cmFjdEFkZHJlc3MnXSA9IE5vbmUKCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiB0byAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYudG8gaXMgTm9uZSBhbmQgInRvIiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0Wyd0byddID0gTm9uZQoKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zYWN0aW9uUmVjZWlwdFJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImJsb2NrSGFzaCI6IG9iai5nZXQoImJsb2NrSGFzaCIpLAogICAgICAgICAgICAiYmxvY2tOdW1iZXIiOiBvYmouZ2V0KCJibG9ja051bWJlciIpLAogICAgICAgICAgICAiY29udHJhY3RBZGRyZXNzIjogb2JqLmdldCgiY29udHJhY3RBZGRyZXNzIiksCiAgICAgICAgICAgICJjdW11bGF0aXZlR2FzVXNlZCI6IG9iai5nZXQoImN1bXVsYXRpdmVHYXNVc2VkIiksCiAgICAgICAgICAgICJlZmZlY3RpdmVHYXNQcmljZSI6IG9iai5nZXQoImVmZmVjdGl2ZUdhc1ByaWNlIiksCiAgICAgICAgICAgICJmcm9tIjogb2JqLmdldCgiZnJvbSIpLAogICAgICAgICAgICAiZ2FzVXNlZCI6IG9iai5nZXQoImdhc1VzZWQiKSwKICAgICAgICAgICAgImxvZ3MiOiBbVHhMb2cuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJsb2dzIl1dIGlmIG9iai5nZXQoImxvZ3MiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJsb2dzQmxvb20iOiBvYmouZ2V0KCJsb2dzQmxvb20iKSwKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAidG8iOiBvYmouZ2V0KCJ0byIpLAogICAgICAgICAgICAidHJhbnNhY3Rpb25IYXNoIjogb2JqLmdldCgidHJhbnNhY3Rpb25IYXNoIiksCiAgICAgICAgICAgICJ0cmFuc2FjdGlvbkluZGV4Ijogb2JqLmdldCgidHJhbnNhY3Rpb25JbmRleCIpLAogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/transaction_request.py b/fireblocks/models/transaction_request.py index 9eb2e780..16d060f5 100644 --- a/fireblocks/models/transaction_request.py +++ b/fireblocks/models/transaction_request.py @@ -1,208 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.destination_transfer_peer_path import DestinationTransferPeerPath -from fireblocks.models.extra_parameters import ExtraParameters -from fireblocks.models.source_transfer_peer_path import SourceTransferPeerPath -from fireblocks.models.transaction_operation import TransactionOperation -from fireblocks.models.transaction_request_amount import TransactionRequestAmount -from fireblocks.models.transaction_request_destination import TransactionRequestDestination -from fireblocks.models.transaction_request_fee import TransactionRequestFee -from fireblocks.models.transaction_request_gas_limit import TransactionRequestGasLimit -from fireblocks.models.transaction_request_gas_price import TransactionRequestGasPrice -from fireblocks.models.transaction_request_network_fee import TransactionRequestNetworkFee -from fireblocks.models.transaction_request_network_staking import TransactionRequestNetworkStaking -from fireblocks.models.transaction_request_priority_fee import TransactionRequestPriorityFee -from fireblocks.models.travel_rule_create_transaction_request import TravelRuleCreateTransactionRequest -from typing import Optional, Set -from typing_extensions import Self - -class TransactionRequest(BaseModel): - """ - TransactionRequest - """ # noqa: E501 - operation: Optional[TransactionOperation] = TransactionOperation.TRANSFER - note: Optional[StrictStr] = Field(default=None, description="Custom note, not sent to the blockchain, to describe the transaction at your Fireblocks workspace.") - external_tx_id: Optional[StrictStr] = Field(default=None, description="This parameter allows you to add a unique ID of your own to help prevent duplicate transactions. No specific format is required for this parameter. After you submit a transaction with an external ID, Fireblocks will automatically reject all future transactions with the same ID. Using an external ID primarily helps in situations where, even though a submitted transaction responds with an error due to an internet outage, the transaction was still sent to and processed on the blockchain. Use the [Get a specific transaction by external transaction ID](https://developers.fireblocks.com/reference/gettransactionbyexternalid) endpoint to validate whether these transactions have been processed.", alias="externalTxId") - asset_id: Optional[StrictStr] = Field(default=None, description="The ID of the asset to transfer, for `TRANSFER`, `MINT` or `BURN` operations. [See the list of supported assets and their IDs on Fireblocks.](https://developers.fireblocks.com/reference/gettrlinksupportedasset#/)", alias="assetId") - source: Optional[SourceTransferPeerPath] = None - destination: Optional[DestinationTransferPeerPath] = None - destinations: Optional[List[TransactionRequestDestination]] = Field(default=None, description="For UTXO based blockchains, you can send a single transaction to multiple destinations.") - amount: Optional[TransactionRequestAmount] = None - treat_as_gross_amount: Optional[StrictBool] = Field(default=None, description="\"When set to `true`, the fee will be deducted from the requested amount.\" **Note**: This parameter can only be considered if a transaction’s asset is a base asset, such as ETH or MATIC. If the asset can’t be used for transaction fees, like USDC, this parameter is ignored and the fee is deducted from the relevant base asset wallet in the source account.", alias="treatAsGrossAmount") - force_sweep: Optional[StrictBool] = Field(default=None, description="For Polkadot, Kusama and Westend transactions only. When set to true, Fireblocks will empty the asset wallet. **Note:** If set to true when the source account is exactly 1 DOT, the transaction will fail. Any amount more or less than 1 DOT succeeds. This is a Polkadot blockchain limitation.", alias="forceSweep") - fee_level: Optional[StrictStr] = Field(default=None, description="For UTXO, EVM-based, or Solana blockchains only. Defines the blockchain fee level which will be payed for the transaction. Alternatively, specific fee estimation parameters exist below.", alias="feeLevel") - fee: Optional[TransactionRequestFee] = None - priority_fee: Optional[TransactionRequestPriorityFee] = Field(default=None, alias="priorityFee") - fail_on_low_fee: Optional[StrictBool] = Field(default=None, description="When set to `true`, in case the current `MEDIUM` fee level is higher than the one specified in the transaction, the transaction will fail to avoid getting stuck with no confirmations.", alias="failOnLowFee") - max_fee: Optional[StrictStr] = Field(default=None, description="The maximum fee (gas price or fee per byte) that should be payed for the transaction. In case the current value of the requested `feeLevel` is higher than this requested maximum fee. Represented by a numeric string for accurate precision.", alias="maxFee") - max_total_fee: Optional[StrictStr] = Field(default=None, description="For BTC-based blockchains only. The maximum fee (in the units of the fee-paying asset) that should be paid for the transaction.", alias="maxTotalFee") - gas_limit: Optional[TransactionRequestGasLimit] = Field(default=None, alias="gasLimit") - gas_price: Optional[TransactionRequestGasPrice] = Field(default=None, alias="gasPrice") - network_fee: Optional[TransactionRequestNetworkFee] = Field(default=None, alias="networkFee") - replace_tx_by_hash: Optional[StrictStr] = Field(default=None, description="For EVM-based blockchains only. In case a transaction is stuck, specify the hash of the stuck transaction to replace it by this transaction with a higher fee, or to replace it with this transaction with a zero fee and drop it from the blockchain.", alias="replaceTxByHash") - extra_parameters: Optional[ExtraParameters] = Field(default=None, alias="extraParameters") - customer_ref_id: Optional[StrictStr] = Field(default=None, description="The ID for AML providers to associate the owner of funds with transactions.", alias="customerRefId") - travel_rule_message: Optional[TravelRuleCreateTransactionRequest] = Field(default=None, alias="travelRuleMessage") - travel_rule_message_id: Optional[StrictStr] = Field(default=None, description="The ID of the travel rule message from any travel rule provider. Used for travel rule supporting functionality to associate transactions with existing travel rule messages.", alias="travelRuleMessageId") - auto_staking: Optional[StrictBool] = Field(default=None, description="This feature is no longer supported.", alias="autoStaking") - network_staking: Optional[TransactionRequestNetworkStaking] = Field(default=None, alias="networkStaking") - cpu_staking: Optional[TransactionRequestNetworkStaking] = Field(default=None, alias="cpuStaking") - use_gasless: Optional[StrictBool] = Field(default=None, description="- Override the default gasless configuration by sending true\\false", alias="useGasless") - __properties: ClassVar[List[str]] = ["operation", "note", "externalTxId", "assetId", "source", "destination", "destinations", "amount", "treatAsGrossAmount", "forceSweep", "feeLevel", "fee", "priorityFee", "failOnLowFee", "maxFee", "maxTotalFee", "gasLimit", "gasPrice", "networkFee", "replaceTxByHash", "extraParameters", "customerRefId", "travelRuleMessage", "travelRuleMessageId", "autoStaking", "networkStaking", "cpuStaking", "useGasless"] - - @field_validator('fee_level') - def fee_level_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['LOW', 'MEDIUM', 'HIGH']): - raise ValueError("must be one of enum values ('LOW', 'MEDIUM', 'HIGH')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TransactionRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of source - if self.source: - _dict['source'] = self.source.to_dict() - # override the default output from pydantic by calling `to_dict()` of destination - if self.destination: - _dict['destination'] = self.destination.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in destinations (list) - _items = [] - if self.destinations: - for _item_destinations in self.destinations: - if _item_destinations: - _items.append(_item_destinations.to_dict()) - _dict['destinations'] = _items - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - # override the default output from pydantic by calling `to_dict()` of fee - if self.fee: - _dict['fee'] = self.fee.to_dict() - # override the default output from pydantic by calling `to_dict()` of priority_fee - if self.priority_fee: - _dict['priorityFee'] = self.priority_fee.to_dict() - # override the default output from pydantic by calling `to_dict()` of gas_limit - if self.gas_limit: - _dict['gasLimit'] = self.gas_limit.to_dict() - # override the default output from pydantic by calling `to_dict()` of gas_price - if self.gas_price: - _dict['gasPrice'] = self.gas_price.to_dict() - # override the default output from pydantic by calling `to_dict()` of network_fee - if self.network_fee: - _dict['networkFee'] = self.network_fee.to_dict() - # override the default output from pydantic by calling `to_dict()` of extra_parameters - if self.extra_parameters: - _dict['extraParameters'] = self.extra_parameters.to_dict() - # override the default output from pydantic by calling `to_dict()` of travel_rule_message - if self.travel_rule_message: - _dict['travelRuleMessage'] = self.travel_rule_message.to_dict() - # override the default output from pydantic by calling `to_dict()` of network_staking - if self.network_staking: - _dict['networkStaking'] = self.network_staking.to_dict() - # override the default output from pydantic by calling `to_dict()` of cpu_staking - if self.cpu_staking: - _dict['cpuStaking'] = self.cpu_staking.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TransactionRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "operation": obj.get("operation") if obj.get("operation") is not None else TransactionOperation.TRANSFER, - "note": obj.get("note"), - "externalTxId": obj.get("externalTxId"), - "assetId": obj.get("assetId"), - "source": SourceTransferPeerPath.from_dict(obj["source"]) if obj.get("source") is not None else None, - "destination": DestinationTransferPeerPath.from_dict(obj["destination"]) if obj.get("destination") is not None else None, - "destinations": [TransactionRequestDestination.from_dict(_item) for _item in obj["destinations"]] if obj.get("destinations") is not None else None, - "amount": TransactionRequestAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "treatAsGrossAmount": obj.get("treatAsGrossAmount"), - "forceSweep": obj.get("forceSweep"), - "feeLevel": obj.get("feeLevel"), - "fee": TransactionRequestFee.from_dict(obj["fee"]) if obj.get("fee") is not None else None, - "priorityFee": TransactionRequestPriorityFee.from_dict(obj["priorityFee"]) if obj.get("priorityFee") is not None else None, - "failOnLowFee": obj.get("failOnLowFee"), - "maxFee": obj.get("maxFee"), - "maxTotalFee": obj.get("maxTotalFee"), - "gasLimit": TransactionRequestGasLimit.from_dict(obj["gasLimit"]) if obj.get("gasLimit") is not None else None, - "gasPrice": TransactionRequestGasPrice.from_dict(obj["gasPrice"]) if obj.get("gasPrice") is not None else None, - "networkFee": TransactionRequestNetworkFee.from_dict(obj["networkFee"]) if obj.get("networkFee") is not None else None, - "replaceTxByHash": obj.get("replaceTxByHash"), - "extraParameters": ExtraParameters.from_dict(obj["extraParameters"]) if obj.get("extraParameters") is not None else None, - "customerRefId": obj.get("customerRefId"), - "travelRuleMessage": TravelRuleCreateTransactionRequest.from_dict(obj["travelRuleMessage"]) if obj.get("travelRuleMessage") is not None else None, - "travelRuleMessageId": obj.get("travelRuleMessageId"), - "autoStaking": obj.get("autoStaking"), - "networkStaking": TransactionRequestNetworkStaking.from_dict(obj["networkStaking"]) if obj.get("networkStaking") is not None else None, - "cpuStaking": TransactionRequestNetworkStaking.from_dict(obj["cpuStaking"]) if obj.get("cpuStaking") is not None else None, - "useGasless": obj.get("useGasless") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzdGluYXRpb25fdHJhbnNmZXJfcGVlcl9wYXRoIGltcG9ydCBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leHRyYV9wYXJhbWV0ZXJzIGltcG9ydCBFeHRyYVBhcmFtZXRlcnMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5zb3VyY2VfdHJhbnNmZXJfcGVlcl9wYXRoIGltcG9ydCBTb3VyY2VUcmFuc2ZlclBlZXJQYXRoCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fb3BlcmF0aW9uIGltcG9ydCBUcmFuc2FjdGlvbk9wZXJhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlcXVlc3RfYW1vdW50IGltcG9ydCBUcmFuc2FjdGlvblJlcXVlc3RBbW91bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZXF1ZXN0X2Rlc3RpbmF0aW9uIGltcG9ydCBUcmFuc2FjdGlvblJlcXVlc3REZXN0aW5hdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlcXVlc3RfZmVlIGltcG9ydCBUcmFuc2FjdGlvblJlcXVlc3RGZWUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZXF1ZXN0X2dhc19saW1pdCBpbXBvcnQgVHJhbnNhY3Rpb25SZXF1ZXN0R2FzTGltaXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZXF1ZXN0X2dhc19wcmljZSBpbXBvcnQgVHJhbnNhY3Rpb25SZXF1ZXN0R2FzUHJpY2UKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZXF1ZXN0X25ldHdvcmtfZmVlIGltcG9ydCBUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrRmVlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVxdWVzdF9uZXR3b3JrX3N0YWtpbmcgaW1wb3J0IFRyYW5zYWN0aW9uUmVxdWVzdE5ldHdvcmtTdGFraW5nCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVxdWVzdF9wcmlvcml0eV9mZWUgaW1wb3J0IFRyYW5zYWN0aW9uUmVxdWVzdFByaW9yaXR5RmVlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfY3JlYXRlX3RyYW5zYWN0aW9uX3JlcXVlc3QgaW1wb3J0IFRyYXZlbFJ1bGVDcmVhdGVUcmFuc2FjdGlvblJlcXVlc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVHJhbnNhY3Rpb25SZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRyYW5zYWN0aW9uUmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgb3BlcmF0aW9uOiBPcHRpb25hbFtUcmFuc2FjdGlvbk9wZXJhdGlvbl0gPSBUcmFuc2FjdGlvbk9wZXJhdGlvbi5UUkFOU0ZFUgogICAgbm90ZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkN1c3RvbSBub3RlLCBub3Qgc2VudCB0byB0aGUgYmxvY2tjaGFpbiwgdG8gZGVzY3JpYmUgdGhlIHRyYW5zYWN0aW9uIGF0IHlvdXIgRmlyZWJsb2NrcyB3b3Jrc3BhY2UuIikKICAgIGV4dGVybmFsX3R4X2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHlvdSB0byBhZGQgYSB1bmlxdWUgSUQgb2YgeW91ciBvd24gdG8gaGVscCBwcmV2ZW50IGR1cGxpY2F0ZSB0cmFuc2FjdGlvbnMuIE5vIHNwZWNpZmljIGZvcm1hdCBpcyByZXF1aXJlZCBmb3IgdGhpcyBwYXJhbWV0ZXIuIEFmdGVyIHlvdSBzdWJtaXQgYSB0cmFuc2FjdGlvbiB3aXRoIGFuIGV4dGVybmFsIElELCBGaXJlYmxvY2tzIHdpbGwgYXV0b21hdGljYWxseSByZWplY3QgYWxsIGZ1dHVyZSB0cmFuc2FjdGlvbnMgd2l0aCB0aGUgc2FtZSBJRC4gVXNpbmcgYW4gZXh0ZXJuYWwgSUQgcHJpbWFyaWx5IGhlbHBzIGluIHNpdHVhdGlvbnMgd2hlcmUsIGV2ZW4gdGhvdWdoIGEgc3VibWl0dGVkIHRyYW5zYWN0aW9uIHJlc3BvbmRzIHdpdGggYW4gZXJyb3IgZHVlIHRvIGFuIGludGVybmV0IG91dGFnZSwgIHRoZSB0cmFuc2FjdGlvbiB3YXMgc3RpbGwgc2VudCB0byBhbmQgcHJvY2Vzc2VkIG9uIHRoZSBibG9ja2NoYWluLiAgVXNlIHRoZSBbR2V0IGEgc3BlY2lmaWMgdHJhbnNhY3Rpb24gYnkgZXh0ZXJuYWwgdHJhbnNhY3Rpb24gSURdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9yZWZlcmVuY2UvZ2V0dHJhbnNhY3Rpb25ieWV4dGVybmFsaWQpICBlbmRwb2ludCB0byB2YWxpZGF0ZSB3aGV0aGVyIHRoZXNlIHRyYW5zYWN0aW9ucyBoYXZlIGJlZW4gcHJvY2Vzc2VkLiIsIGFsaWFzPSJleHRlcm5hbFR4SWQiKQogICAgYXNzZXRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIHRyYW5zZmVyLCBmb3IgYFRSQU5TRkVSYCwgYE1JTlRgIG9yIGBCVVJOYCBvcGVyYXRpb25zLiBbU2VlIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBhc3NldHMgYW5kIHRoZWlyIElEcyBvbiBGaXJlYmxvY2tzLl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS9nZXR0cmxpbmtzdXBwb3J0ZWRhc3NldCMvKSIsIGFsaWFzPSJhc3NldElkIikKICAgIHNvdXJjZTogT3B0aW9uYWxbU291cmNlVHJhbnNmZXJQZWVyUGF0aF0gPSBOb25lCiAgICBkZXN0aW5hdGlvbjogT3B0aW9uYWxbRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoXSA9IE5vbmUKICAgIGRlc3RpbmF0aW9uczogT3B0aW9uYWxbTGlzdFtUcmFuc2FjdGlvblJlcXVlc3REZXN0aW5hdGlvbl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRm9yIFVUWE8gYmFzZWQgYmxvY2tjaGFpbnMsIHlvdSBjYW4gc2VuZCBhIHNpbmdsZSB0cmFuc2FjdGlvbiB0byBtdWx0aXBsZSBkZXN0aW5hdGlvbnMuIikKICAgIGFtb3VudDogT3B0aW9uYWxbVHJhbnNhY3Rpb25SZXF1ZXN0QW1vdW50XSA9IE5vbmUKICAgIHRyZWF0X2FzX2dyb3NzX2Ftb3VudDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJcIldoZW4gc2V0IHRvIGB0cnVlYCwgdGhlIGZlZSB3aWxsIGJlIGRlZHVjdGVkIGZyb20gdGhlIHJlcXVlc3RlZCBhbW91bnQuXCIgICoqTm90ZSoqOiBUaGlzIHBhcmFtZXRlciBjYW4gb25seSBiZSBjb25zaWRlcmVkIGlmIGEgdHJhbnNhY3Rpb27igJlzIGFzc2V0IGlzIGEgYmFzZSBhc3NldCwgc3VjaCBhcyBFVEggb3IgTUFUSUMuIElmIHRoZSBhc3NldCBjYW7igJl0IGJlIHVzZWQgZm9yIHRyYW5zYWN0aW9uIGZlZXMsIGxpa2UgVVNEQywgdGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBhbmQgdGhlIGZlZSBpcyBkZWR1Y3RlZCBmcm9tIHRoZSByZWxldmFudCBiYXNlIGFzc2V0IHdhbGxldCBpbiB0aGUgc291cmNlIGFjY291bnQuIiwgYWxpYXM9InRyZWF0QXNHcm9zc0Ftb3VudCIpCiAgICBmb3JjZV9zd2VlcDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJGb3IgUG9sa2Fkb3QsIEt1c2FtYSBhbmQgV2VzdGVuZCB0cmFuc2FjdGlvbnMgb25seS4gV2hlbiBzZXQgdG8gdHJ1ZSwgRmlyZWJsb2NrcyB3aWxsIGVtcHR5IHRoZSBhc3NldCB3YWxsZXQuICAgICAqKk5vdGU6KiogSWYgc2V0IHRvIHRydWUgd2hlbiB0aGUgc291cmNlIGFjY291bnQgaXMgZXhhY3RseSAxIERPVCwgdGhlIHRyYW5zYWN0aW9uIHdpbGwgZmFpbC4gQW55IGFtb3VudCBtb3JlIG9yIGxlc3MgdGhhbiAxIERPVCBzdWNjZWVkcy4gVGhpcyBpcyBhIFBvbGthZG90IGJsb2NrY2hhaW4gbGltaXRhdGlvbi4iLCBhbGlhcz0iZm9yY2VTd2VlcCIpCiAgICBmZWVfbGV2ZWw6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJGb3IgVVRYTywgRVZNLWJhc2VkLCBvciBTb2xhbmEgYmxvY2tjaGFpbnMgb25seS4gRGVmaW5lcyB0aGUgYmxvY2tjaGFpbiBmZWUgbGV2ZWwgd2hpY2ggd2lsbCBiZSBwYXllZCBmb3IgdGhlIHRyYW5zYWN0aW9uLiBBbHRlcm5hdGl2ZWx5LCBzcGVjaWZpYyBmZWUgZXN0aW1hdGlvbiBwYXJhbWV0ZXJzIGV4aXN0IGJlbG93LiIsIGFsaWFzPSJmZWVMZXZlbCIpCiAgICBmZWU6IE9wdGlvbmFsW1RyYW5zYWN0aW9uUmVxdWVzdEZlZV0gPSBOb25lCiAgICBwcmlvcml0eV9mZWU6IE9wdGlvbmFsW1RyYW5zYWN0aW9uUmVxdWVzdFByaW9yaXR5RmVlXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InByaW9yaXR5RmVlIikKICAgIGZhaWxfb25fbG93X2ZlZTogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJXaGVuIHNldCB0byBgdHJ1ZWAsIGluIGNhc2UgdGhlIGN1cnJlbnQgYE1FRElVTWAgZmVlIGxldmVsIGlzIGhpZ2hlciB0aGFuIHRoZSBvbmUgc3BlY2lmaWVkIGluIHRoZSB0cmFuc2FjdGlvbiwgdGhlIHRyYW5zYWN0aW9uIHdpbGwgZmFpbCB0byBhdm9pZCBnZXR0aW5nIHN0dWNrIHdpdGggbm8gY29uZmlybWF0aW9ucy4iLCBhbGlhcz0iZmFpbE9uTG93RmVlIikKICAgIG1heF9mZWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgbWF4aW11bSBmZWUgKGdhcyBwcmljZSBvciBmZWUgcGVyIGJ5dGUpIHRoYXQgc2hvdWxkIGJlIHBheWVkIGZvciB0aGUgdHJhbnNhY3Rpb24uICBJbiBjYXNlIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSByZXF1ZXN0ZWQgYGZlZUxldmVsYCBpcyBoaWdoZXIgdGhhbiB0aGlzIHJlcXVlc3RlZCBtYXhpbXVtIGZlZS4gIFJlcHJlc2VudGVkIGJ5IGEgbnVtZXJpYyBzdHJpbmcgZm9yIGFjY3VyYXRlIHByZWNpc2lvbi4iLCBhbGlhcz0ibWF4RmVlIikKICAgIG1heF90b3RhbF9mZWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJGb3IgQlRDLWJhc2VkIGJsb2NrY2hhaW5zIG9ubHkuIFRoZSBtYXhpbXVtIGZlZSAoaW4gdGhlIHVuaXRzIG9mIHRoZSBmZWUtcGF5aW5nIGFzc2V0KSB0aGF0IHNob3VsZCBiZSBwYWlkIGZvciB0aGUgdHJhbnNhY3Rpb24uIiwgYWxpYXM9Im1heFRvdGFsRmVlIikKICAgIGdhc19saW1pdDogT3B0aW9uYWxbVHJhbnNhY3Rpb25SZXF1ZXN0R2FzTGltaXRdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZ2FzTGltaXQiKQogICAgZ2FzX3ByaWNlOiBPcHRpb25hbFtUcmFuc2FjdGlvblJlcXVlc3RHYXNQcmljZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJnYXNQcmljZSIpCiAgICBuZXR3b3JrX2ZlZTogT3B0aW9uYWxbVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya0ZlZV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJuZXR3b3JrRmVlIikKICAgIHJlcGxhY2VfdHhfYnlfaGFzaDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkZvciBFVk0tYmFzZWQgYmxvY2tjaGFpbnMgb25seS4gSW4gY2FzZSBhIHRyYW5zYWN0aW9uIGlzIHN0dWNrLCBzcGVjaWZ5IHRoZSBoYXNoIG9mIHRoZSBzdHVjayB0cmFuc2FjdGlvbiB0byByZXBsYWNlIGl0IGJ5IHRoaXMgdHJhbnNhY3Rpb24gd2l0aCBhIGhpZ2hlciBmZWUsIG9yIHRvIHJlcGxhY2UgaXQgd2l0aCB0aGlzIHRyYW5zYWN0aW9uIHdpdGggYSB6ZXJvIGZlZSBhbmQgZHJvcCBpdCBmcm9tIHRoZSBibG9ja2NoYWluLiIsIGFsaWFzPSJyZXBsYWNlVHhCeUhhc2giKQogICAgZXh0cmFfcGFyYW1ldGVyczogT3B0aW9uYWxbRXh0cmFQYXJhbWV0ZXJzXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImV4dHJhUGFyYW1ldGVycyIpCiAgICBjdXN0b21lcl9yZWZfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgZm9yIEFNTCBwcm92aWRlcnMgdG8gYXNzb2NpYXRlIHRoZSBvd25lciBvZiBmdW5kcyB3aXRoIHRyYW5zYWN0aW9ucy4iLCBhbGlhcz0iY3VzdG9tZXJSZWZJZCIpCiAgICB0cmF2ZWxfcnVsZV9tZXNzYWdlOiBPcHRpb25hbFtUcmF2ZWxSdWxlQ3JlYXRlVHJhbnNhY3Rpb25SZXF1ZXN0XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InRyYXZlbFJ1bGVNZXNzYWdlIikKICAgIHRyYXZlbF9ydWxlX21lc3NhZ2VfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIHRyYXZlbCBydWxlIG1lc3NhZ2UgZnJvbSBhbnkgdHJhdmVsIHJ1bGUgcHJvdmlkZXIuIFVzZWQgZm9yIHRyYXZlbCBydWxlIHN1cHBvcnRpbmcgZnVuY3Rpb25hbGl0eSB0byBhc3NvY2lhdGUgdHJhbnNhY3Rpb25zIHdpdGggZXhpc3RpbmcgdHJhdmVsIHJ1bGUgbWVzc2FnZXMuIiwgYWxpYXM9InRyYXZlbFJ1bGVNZXNzYWdlSWQiKQogICAgYXV0b19zdGFraW5nOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoaXMgZmVhdHVyZSBpcyBubyBsb25nZXIgc3VwcG9ydGVkLiIsIGFsaWFzPSJhdXRvU3Rha2luZyIpCiAgICBuZXR3b3JrX3N0YWtpbmc6IE9wdGlvbmFsW1RyYW5zYWN0aW9uUmVxdWVzdE5ldHdvcmtTdGFraW5nXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im5ldHdvcmtTdGFraW5nIikKICAgIGNwdV9zdGFraW5nOiBPcHRpb25hbFtUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrU3Rha2luZ10gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJjcHVTdGFraW5nIikKICAgIHVzZV9nYXNsZXNzOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ii0gT3ZlcnJpZGUgdGhlIGRlZmF1bHQgZ2FzbGVzcyBjb25maWd1cmF0aW9uIGJ5IHNlbmRpbmcgdHJ1ZVxcZmFsc2UiLCBhbGlhcz0idXNlR2FzbGVzcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm9wZXJhdGlvbiIsICJub3RlIiwgImV4dGVybmFsVHhJZCIsICJhc3NldElkIiwgInNvdXJjZSIsICJkZXN0aW5hdGlvbiIsICJkZXN0aW5hdGlvbnMiLCAiYW1vdW50IiwgInRyZWF0QXNHcm9zc0Ftb3VudCIsICJmb3JjZVN3ZWVwIiwgImZlZUxldmVsIiwgImZlZSIsICJwcmlvcml0eUZlZSIsICJmYWlsT25Mb3dGZWUiLCAibWF4RmVlIiwgIm1heFRvdGFsRmVlIiwgImdhc0xpbWl0IiwgImdhc1ByaWNlIiwgIm5ldHdvcmtGZWUiLCAicmVwbGFjZVR4QnlIYXNoIiwgImV4dHJhUGFyYW1ldGVycyIsICJjdXN0b21lclJlZklkIiwgInRyYXZlbFJ1bGVNZXNzYWdlIiwgInRyYXZlbFJ1bGVNZXNzYWdlSWQiLCAiYXV0b1N0YWtpbmciLCAibmV0d29ya1N0YWtpbmciLCAiY3B1U3Rha2luZyIsICJ1c2VHYXNsZXNzIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdmZWVfbGV2ZWwnKQogICAgZGVmIGZlZV9sZXZlbF92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnTE9XJywgJ01FRElVTScsICdISUdIJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0xPVycsICdNRURJVU0nLCAnSElHSCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2FjdGlvblJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBzb3VyY2UKICAgICAgICBpZiBzZWxmLnNvdXJjZToKICAgICAgICAgICAgX2RpY3RbJ3NvdXJjZSddID0gc2VsZi5zb3VyY2UudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGRlc3RpbmF0aW9uCiAgICAgICAgaWYgc2VsZi5kZXN0aW5hdGlvbjoKICAgICAgICAgICAgX2RpY3RbJ2Rlc3RpbmF0aW9uJ10gPSBzZWxmLmRlc3RpbmF0aW9uLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGVzdGluYXRpb25zIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5kZXN0aW5hdGlvbnM6CiAgICAgICAgICAgIGZvciBfaXRlbV9kZXN0aW5hdGlvbnMgaW4gc2VsZi5kZXN0aW5hdGlvbnM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9kZXN0aW5hdGlvbnM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9kZXN0aW5hdGlvbnMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGVzdGluYXRpb25zJ10gPSBfaXRlbXMKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYW1vdW50CiAgICAgICAgaWYgc2VsZi5hbW91bnQ6CiAgICAgICAgICAgIF9kaWN0WydhbW91bnQnXSA9IHNlbGYuYW1vdW50LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBmZWUKICAgICAgICBpZiBzZWxmLmZlZToKICAgICAgICAgICAgX2RpY3RbJ2ZlZSddID0gc2VsZi5mZWUudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHByaW9yaXR5X2ZlZQogICAgICAgIGlmIHNlbGYucHJpb3JpdHlfZmVlOgogICAgICAgICAgICBfZGljdFsncHJpb3JpdHlGZWUnXSA9IHNlbGYucHJpb3JpdHlfZmVlLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBnYXNfbGltaXQKICAgICAgICBpZiBzZWxmLmdhc19saW1pdDoKICAgICAgICAgICAgX2RpY3RbJ2dhc0xpbWl0J10gPSBzZWxmLmdhc19saW1pdC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZ2FzX3ByaWNlCiAgICAgICAgaWYgc2VsZi5nYXNfcHJpY2U6CiAgICAgICAgICAgIF9kaWN0WydnYXNQcmljZSddID0gc2VsZi5nYXNfcHJpY2UudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG5ldHdvcmtfZmVlCiAgICAgICAgaWYgc2VsZi5uZXR3b3JrX2ZlZToKICAgICAgICAgICAgX2RpY3RbJ25ldHdvcmtGZWUnXSA9IHNlbGYubmV0d29ya19mZWUudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGV4dHJhX3BhcmFtZXRlcnMKICAgICAgICBpZiBzZWxmLmV4dHJhX3BhcmFtZXRlcnM6CiAgICAgICAgICAgIF9kaWN0WydleHRyYVBhcmFtZXRlcnMnXSA9IHNlbGYuZXh0cmFfcGFyYW1ldGVycy50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgdHJhdmVsX3J1bGVfbWVzc2FnZQogICAgICAgIGlmIHNlbGYudHJhdmVsX3J1bGVfbWVzc2FnZToKICAgICAgICAgICAgX2RpY3RbJ3RyYXZlbFJ1bGVNZXNzYWdlJ10gPSBzZWxmLnRyYXZlbF9ydWxlX21lc3NhZ2UudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG5ldHdvcmtfc3Rha2luZwogICAgICAgIGlmIHNlbGYubmV0d29ya19zdGFraW5nOgogICAgICAgICAgICBfZGljdFsnbmV0d29ya1N0YWtpbmcnXSA9IHNlbGYubmV0d29ya19zdGFraW5nLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBjcHVfc3Rha2luZwogICAgICAgIGlmIHNlbGYuY3B1X3N0YWtpbmc6CiAgICAgICAgICAgIF9kaWN0WydjcHVTdGFraW5nJ10gPSBzZWxmLmNwdV9zdGFraW5nLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNhY3Rpb25SZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm9wZXJhdGlvbiI6IG9iai5nZXQoIm9wZXJhdGlvbiIpIGlmIG9iai5nZXQoIm9wZXJhdGlvbiIpIGlzIG5vdCBOb25lIGVsc2UgVHJhbnNhY3Rpb25PcGVyYXRpb24uVFJBTlNGRVIsCiAgICAgICAgICAgICJub3RlIjogb2JqLmdldCgibm90ZSIpLAogICAgICAgICAgICAiZXh0ZXJuYWxUeElkIjogb2JqLmdldCgiZXh0ZXJuYWxUeElkIiksCiAgICAgICAgICAgICJhc3NldElkIjogb2JqLmdldCgiYXNzZXRJZCIpLAogICAgICAgICAgICAic291cmNlIjogU291cmNlVHJhbnNmZXJQZWVyUGF0aC5mcm9tX2RpY3Qob2JqWyJzb3VyY2UiXSkgaWYgb2JqLmdldCgic291cmNlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZGVzdGluYXRpb24iOiBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGguZnJvbV9kaWN0KG9ialsiZGVzdGluYXRpb24iXSkgaWYgb2JqLmdldCgiZGVzdGluYXRpb24iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJkZXN0aW5hdGlvbnMiOiBbVHJhbnNhY3Rpb25SZXF1ZXN0RGVzdGluYXRpb24uZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJkZXN0aW5hdGlvbnMiXV0gaWYgb2JqLmdldCgiZGVzdGluYXRpb25zIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiYW1vdW50IjogVHJhbnNhY3Rpb25SZXF1ZXN0QW1vdW50LmZyb21fZGljdChvYmpbImFtb3VudCJdKSBpZiBvYmouZ2V0KCJhbW91bnQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJ0cmVhdEFzR3Jvc3NBbW91bnQiOiBvYmouZ2V0KCJ0cmVhdEFzR3Jvc3NBbW91bnQiKSwKICAgICAgICAgICAgImZvcmNlU3dlZXAiOiBvYmouZ2V0KCJmb3JjZVN3ZWVwIiksCiAgICAgICAgICAgICJmZWVMZXZlbCI6IG9iai5nZXQoImZlZUxldmVsIiksCiAgICAgICAgICAgICJmZWUiOiBUcmFuc2FjdGlvblJlcXVlc3RGZWUuZnJvbV9kaWN0KG9ialsiZmVlIl0pIGlmIG9iai5nZXQoImZlZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInByaW9yaXR5RmVlIjogVHJhbnNhY3Rpb25SZXF1ZXN0UHJpb3JpdHlGZWUuZnJvbV9kaWN0KG9ialsicHJpb3JpdHlGZWUiXSkgaWYgb2JqLmdldCgicHJpb3JpdHlGZWUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJmYWlsT25Mb3dGZWUiOiBvYmouZ2V0KCJmYWlsT25Mb3dGZWUiKSwKICAgICAgICAgICAgIm1heEZlZSI6IG9iai5nZXQoIm1heEZlZSIpLAogICAgICAgICAgICAibWF4VG90YWxGZWUiOiBvYmouZ2V0KCJtYXhUb3RhbEZlZSIpLAogICAgICAgICAgICAiZ2FzTGltaXQiOiBUcmFuc2FjdGlvblJlcXVlc3RHYXNMaW1pdC5mcm9tX2RpY3Qob2JqWyJnYXNMaW1pdCJdKSBpZiBvYmouZ2V0KCJnYXNMaW1pdCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImdhc1ByaWNlIjogVHJhbnNhY3Rpb25SZXF1ZXN0R2FzUHJpY2UuZnJvbV9kaWN0KG9ialsiZ2FzUHJpY2UiXSkgaWYgb2JqLmdldCgiZ2FzUHJpY2UiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJuZXR3b3JrRmVlIjogVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya0ZlZS5mcm9tX2RpY3Qob2JqWyJuZXR3b3JrRmVlIl0pIGlmIG9iai5nZXQoIm5ldHdvcmtGZWUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJyZXBsYWNlVHhCeUhhc2giOiBvYmouZ2V0KCJyZXBsYWNlVHhCeUhhc2giKSwKICAgICAgICAgICAgImV4dHJhUGFyYW1ldGVycyI6IEV4dHJhUGFyYW1ldGVycy5mcm9tX2RpY3Qob2JqWyJleHRyYVBhcmFtZXRlcnMiXSkgaWYgb2JqLmdldCgiZXh0cmFQYXJhbWV0ZXJzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiY3VzdG9tZXJSZWZJZCI6IG9iai5nZXQoImN1c3RvbWVyUmVmSWQiKSwKICAgICAgICAgICAgInRyYXZlbFJ1bGVNZXNzYWdlIjogVHJhdmVsUnVsZUNyZWF0ZVRyYW5zYWN0aW9uUmVxdWVzdC5mcm9tX2RpY3Qob2JqWyJ0cmF2ZWxSdWxlTWVzc2FnZSJdKSBpZiBvYmouZ2V0KCJ0cmF2ZWxSdWxlTWVzc2FnZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInRyYXZlbFJ1bGVNZXNzYWdlSWQiOiBvYmouZ2V0KCJ0cmF2ZWxSdWxlTWVzc2FnZUlkIiksCiAgICAgICAgICAgICJhdXRvU3Rha2luZyI6IG9iai5nZXQoImF1dG9TdGFraW5nIiksCiAgICAgICAgICAgICJuZXR3b3JrU3Rha2luZyI6IFRyYW5zYWN0aW9uUmVxdWVzdE5ldHdvcmtTdGFraW5nLmZyb21fZGljdChvYmpbIm5ldHdvcmtTdGFraW5nIl0pIGlmIG9iai5nZXQoIm5ldHdvcmtTdGFraW5nIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiY3B1U3Rha2luZyI6IFRyYW5zYWN0aW9uUmVxdWVzdE5ldHdvcmtTdGFraW5nLmZyb21fZGljdChvYmpbImNwdVN0YWtpbmciXSkgaWYgb2JqLmdldCgiY3B1U3Rha2luZyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInVzZUdhc2xlc3MiOiBvYmouZ2V0KCJ1c2VHYXNsZXNzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/transaction_request_amount.py b/fireblocks/models/transaction_request_amount.py index 7e740391..f770e50b 100644 --- a/fireblocks/models/transaction_request_amount.py +++ b/fireblocks/models/transaction_request_amount.py @@ -1,144 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional, Union -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -TRANSACTIONREQUESTAMOUNT_ONE_OF_SCHEMAS = ["float", "str"] - -class TransactionRequestAmount(BaseModel): - """ - For `TRANSFER` operations, the requested amount to transfer, in the asset’s unit. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated. - """ - # data type: str - oneof_schema_1_validator: Optional[StrictStr] = Field(default=None, description="Numeric string (recommended)") - # data type: float - oneof_schema_2_validator: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Number (deprecated)") - actual_instance: Optional[Union[float, str]] = None - one_of_schemas: Set[str] = { "float", "str" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = TransactionRequestAmount.model_construct() - error_messages = [] - match = 0 - # validate data type: str - try: - instance.oneof_schema_1_validator = v - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # validate data type: float - try: - instance.oneof_schema_2_validator = v - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in TransactionRequestAmount with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in TransactionRequestAmount with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into str - try: - # validation - instance.oneof_schema_1_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.oneof_schema_1_validator - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into float - try: - # validation - instance.oneof_schema_2_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.oneof_schema_2_validator - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into TransactionRequestAmount with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into TransactionRequestAmount with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], float, str]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RGbG9hdCwgU3RyaWN0SW50LCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIHB5ZGFudGljIGltcG9ydCBTdHJpY3RTdHIsIEZpZWxkCmZyb20gdHlwaW5nIGltcG9ydCBVbmlvbiwgTGlzdCwgU2V0LCBPcHRpb25hbCwgRGljdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBMaXRlcmFsLCBTZWxmCgpUUkFOU0FDVElPTlJFUVVFU1RBTU9VTlRfT05FX09GX1NDSEVNQVMgPSBbImZsb2F0IiwgInN0ciJdCgpjbGFzcyBUcmFuc2FjdGlvblJlcXVlc3RBbW91bnQoQmFzZU1vZGVsKToKICAgICIiIgogICAgRm9yIGBUUkFOU0ZFUmAgb3BlcmF0aW9ucywgdGhlIHJlcXVlc3RlZCBhbW91bnQgdG8gdHJhbnNmZXIsIGluIHRoZSBhc3NldOKAmXMgdW5pdC4gRmlyZWJsb2NrcyByZWNvbW1lbmRzIHVzaW5nIGEgbnVtZXJpYyBzdHJpbmcgZm9yIGFjY3VyYXRlIHByZWNpc2lvbi4gQWx0aG91Z2ggYSBudW1iZXIgaW5wdXQgZXhpc3RzLCBpdCBpcyBkZXByZWNhdGVkLgogICAgIiIiCiAgICAjIGRhdGEgdHlwZTogc3RyCiAgICBvbmVvZl9zY2hlbWFfMV92YWxpZGF0b3I6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOdW1lcmljIHN0cmluZyAocmVjb21tZW5kZWQpIikKICAgICMgZGF0YSB0eXBlOiBmbG9hdAogICAgb25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOdW1iZXIgKGRlcHJlY2F0ZWQpIikKICAgIGFjdHVhbF9pbnN0YW5jZTogT3B0aW9uYWxbVW5pb25bZmxvYXQsIHN0cl1dID0gTm9uZQogICAgb25lX29mX3NjaGVtYXM6IFNldFtzdHJdID0geyAiZmxvYXQiLCAic3RyIiB9CgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gVHJhbnNhY3Rpb25SZXF1ZXN0QW1vdW50Lm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBzdHIKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLm9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvciA9IHYKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBmbG9hdAogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2Uub25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yID0gdgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIFRyYW5zYWN0aW9uUmVxdWVzdEFtb3VudCB3aXRoIG9uZU9mIHNjaGVtYXM6IGZsb2F0LCBzdHIuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gVHJhbnNhY3Rpb25SZXF1ZXN0QW1vdW50IHdpdGggb25lT2Ygc2NoZW1hczogZmxvYXQsIHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIHYKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IFVuaW9uW3N0ciwgRGljdFtzdHIsIEFueV1dKSAtPiBTZWxmOgogICAgICAgIHJldHVybiBjbHMuZnJvbV9qc29uKGpzb24uZHVtcHMob2JqKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIlJldHVybnMgdGhlIG9iamVjdCByZXByZXNlbnRlZCBieSB0aGUganNvbiBzdHJpbmciIiIKICAgICAgICBpbnN0YW5jZSA9IGNscy5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gc3RyCiAgICAgICAgdHJ5OgogICAgICAgICAgICAjIHZhbGlkYXRpb24KICAgICAgICAgICAgaW5zdGFuY2Uub25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yID0ganNvbi5sb2Fkcyhqc29uX3N0cikKICAgICAgICAgICAgIyBhc3NpZ24gdmFsdWUgdG8gYWN0dWFsX2luc3RhbmNlCiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IGluc3RhbmNlLm9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvcgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gZmxvYXQKICAgICAgICB0cnk6CiAgICAgICAgICAgICMgdmFsaWRhdGlvbgogICAgICAgICAgICBpbnN0YW5jZS5vbmVvZl9zY2hlbWFfMl92YWxpZGF0b3IgPSBqc29uLmxvYWRzKGpzb25fc3RyKQogICAgICAgICAgICAjIGFzc2lnbiB2YWx1ZSB0byBhY3R1YWxfaW5zdGFuY2UKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gaW5zdGFuY2Uub25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIFRyYW5zYWN0aW9uUmVxdWVzdEFtb3VudCB3aXRoIG9uZU9mIHNjaGVtYXM6IGZsb2F0LCBzdHIuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gVHJhbnNhY3Rpb25SZXF1ZXN0QW1vdW50IHdpdGggb25lT2Ygc2NoZW1hczogZmxvYXQsIHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiAibnVsbCIKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2pzb24iKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbik6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKCkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLmFjdHVhbF9pbnN0YW5jZSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBPcHRpb25hbFtVbmlvbltEaWN0W3N0ciwgQW55XSwgZmxvYXQsIHN0cl1dOgogICAgICAgICIiIlJldHVybnMgdGhlIGRpY3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19kaWN0IikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QpOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCgpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgIyBwcmltaXRpdmUgdHlwZQogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/transaction_request_destination.py b/fireblocks/models/transaction_request_destination.py index 33b124ee..65838d54 100644 --- a/fireblocks/models/transaction_request_destination.py +++ b/fireblocks/models/transaction_request_destination.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.destination_transfer_peer_path import DestinationTransferPeerPath -from typing import Optional, Set -from typing_extensions import Self - -class TransactionRequestDestination(BaseModel): - """ - TransactionRequestDestination - """ # noqa: E501 - amount: Optional[StrictStr] = None - destination: Optional[DestinationTransferPeerPath] = None - travel_rule_message_id: Optional[StrictStr] = Field(default=None, description="The ID of the travel rule message from any travel rule provider. Used for travel rule supporting functionality to associate transactions with existing travel rule messages.", alias="travelRuleMessageId") - customer_ref_id: Optional[StrictStr] = Field(default=None, description="The ID for AML providers to associate the owner of funds with transactions.", alias="customerRefId") - __properties: ClassVar[List[str]] = ["amount", "destination", "travelRuleMessageId", "customerRefId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TransactionRequestDestination from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of destination - if self.destination: - _dict['destination'] = self.destination.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TransactionRequestDestination from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": obj.get("amount"), - "destination": DestinationTransferPeerPath.from_dict(obj["destination"]) if obj.get("destination") is not None else None, - "travelRuleMessageId": obj.get("travelRuleMessageId"), - "customerRefId": obj.get("customerRefId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlc3RpbmF0aW9uX3RyYW5zZmVyX3BlZXJfcGF0aCBpbXBvcnQgRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRyYW5zYWN0aW9uUmVxdWVzdERlc3RpbmF0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRyYW5zYWN0aW9uUmVxdWVzdERlc3RpbmF0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhbW91bnQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBkZXN0aW5hdGlvbjogT3B0aW9uYWxbRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoXSA9IE5vbmUKICAgIHRyYXZlbF9ydWxlX21lc3NhZ2VfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIHRyYXZlbCBydWxlIG1lc3NhZ2UgZnJvbSBhbnkgdHJhdmVsIHJ1bGUgcHJvdmlkZXIuIFVzZWQgZm9yIHRyYXZlbCBydWxlIHN1cHBvcnRpbmcgZnVuY3Rpb25hbGl0eSB0byBhc3NvY2lhdGUgdHJhbnNhY3Rpb25zIHdpdGggZXhpc3RpbmcgdHJhdmVsIHJ1bGUgbWVzc2FnZXMuIiwgYWxpYXM9InRyYXZlbFJ1bGVNZXNzYWdlSWQiKQogICAgY3VzdG9tZXJfcmVmX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIElEIGZvciBBTUwgcHJvdmlkZXJzIHRvIGFzc29jaWF0ZSB0aGUgb3duZXIgb2YgZnVuZHMgd2l0aCB0cmFuc2FjdGlvbnMuIiwgYWxpYXM9ImN1c3RvbWVyUmVmSWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhbW91bnQiLCAiZGVzdGluYXRpb24iLCAidHJhdmVsUnVsZU1lc3NhZ2VJZCIsICJjdXN0b21lclJlZklkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2FjdGlvblJlcXVlc3REZXN0aW5hdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGRlc3RpbmF0aW9uCiAgICAgICAgaWYgc2VsZi5kZXN0aW5hdGlvbjoKICAgICAgICAgICAgX2RpY3RbJ2Rlc3RpbmF0aW9uJ10gPSBzZWxmLmRlc3RpbmF0aW9uLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNhY3Rpb25SZXF1ZXN0RGVzdGluYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYW1vdW50Ijogb2JqLmdldCgiYW1vdW50IiksCiAgICAgICAgICAgICJkZXN0aW5hdGlvbiI6IERlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aC5mcm9tX2RpY3Qob2JqWyJkZXN0aW5hdGlvbiJdKSBpZiBvYmouZ2V0KCJkZXN0aW5hdGlvbiIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInRyYXZlbFJ1bGVNZXNzYWdlSWQiOiBvYmouZ2V0KCJ0cmF2ZWxSdWxlTWVzc2FnZUlkIiksCiAgICAgICAgICAgICJjdXN0b21lclJlZklkIjogb2JqLmdldCgiY3VzdG9tZXJSZWZJZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/transaction_request_fee.py b/fireblocks/models/transaction_request_fee.py index dfdbc7e0..52a4a9bb 100644 --- a/fireblocks/models/transaction_request_fee.py +++ b/fireblocks/models/transaction_request_fee.py @@ -1,144 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional, Union -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -TRANSACTIONREQUESTFEE_ONE_OF_SCHEMAS = ["float", "str"] - -class TransactionRequestFee(BaseModel): - """ - For UTXO-based blockchains, the fee per bytes in the asset’s smallest unit (Satoshi, Latoshi, etc.). For Ripple, the fee for the transaction. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated. - """ - # data type: str - oneof_schema_1_validator: Optional[StrictStr] = Field(default=None, description="Numeric string (recommended)") - # data type: float - oneof_schema_2_validator: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Number (deprecated)") - actual_instance: Optional[Union[float, str]] = None - one_of_schemas: Set[str] = { "float", "str" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = TransactionRequestFee.model_construct() - error_messages = [] - match = 0 - # validate data type: str - try: - instance.oneof_schema_1_validator = v - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # validate data type: float - try: - instance.oneof_schema_2_validator = v - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in TransactionRequestFee with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in TransactionRequestFee with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into str - try: - # validation - instance.oneof_schema_1_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.oneof_schema_1_validator - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into float - try: - # validation - instance.oneof_schema_2_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.oneof_schema_2_validator - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into TransactionRequestFee with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into TransactionRequestFee with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], float, str]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RGbG9hdCwgU3RyaWN0SW50LCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIHB5ZGFudGljIGltcG9ydCBTdHJpY3RTdHIsIEZpZWxkCmZyb20gdHlwaW5nIGltcG9ydCBVbmlvbiwgTGlzdCwgU2V0LCBPcHRpb25hbCwgRGljdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBMaXRlcmFsLCBTZWxmCgpUUkFOU0FDVElPTlJFUVVFU1RGRUVfT05FX09GX1NDSEVNQVMgPSBbImZsb2F0IiwgInN0ciJdCgpjbGFzcyBUcmFuc2FjdGlvblJlcXVlc3RGZWUoQmFzZU1vZGVsKToKICAgICIiIgogICAgRm9yIFVUWE8tYmFzZWQgYmxvY2tjaGFpbnMsIHRoZSBmZWUgcGVyIGJ5dGVzIGluIHRoZSBhc3NldOKAmXMgc21hbGxlc3QgdW5pdCAoU2F0b3NoaSwgTGF0b3NoaSwgZXRjLikuICBGb3IgUmlwcGxlLCB0aGUgZmVlIGZvciB0aGUgdHJhbnNhY3Rpb24uIEZpcmVibG9ja3MgcmVjb21tZW5kcyB1c2luZyBhIG51bWVyaWMgc3RyaW5nIGZvciBhY2N1cmF0ZSBwcmVjaXNpb24uIEFsdGhvdWdoIGEgbnVtYmVyIGlucHV0IGV4aXN0cywgaXQgaXMgZGVwcmVjYXRlZC4KICAgICIiIgogICAgIyBkYXRhIHR5cGU6IHN0cgogICAgb25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTnVtZXJpYyBzdHJpbmcgKHJlY29tbWVuZGVkKSIpCiAgICAjIGRhdGEgdHlwZTogZmxvYXQKICAgIG9uZW9mX3NjaGVtYV8yX3ZhbGlkYXRvcjogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTnVtYmVyIChkZXByZWNhdGVkKSIpCiAgICBhY3R1YWxfaW5zdGFuY2U6IE9wdGlvbmFsW1VuaW9uW2Zsb2F0LCBzdHJdXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgImZsb2F0IiwgInN0ciIgfQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKSAtPiBOb25lOgogICAgICAgIGlmIGFyZ3M6CiAgICAgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIG9ubHkgMSBpcyBhbGxvd2VkIHRvIHNldCBgYWN0dWFsX2luc3RhbmNlYCIpCiAgICAgICAgICAgIGlmIGt3YXJnczoKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwga2V5d29yZCBhcmd1bWVudHMgY2Fubm90IGJlIHVzZWQuIikKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhhY3R1YWxfaW5zdGFuY2U9YXJnc1swXSkKICAgICAgICBlbHNlOgogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FjdHVhbF9pbnN0YW5jZScpCiAgICBkZWYgYWN0dWFsX2luc3RhbmNlX211c3RfdmFsaWRhdGVfb25lb2YoY2xzLCB2KToKICAgICAgICBpbnN0YW5jZSA9IFRyYW5zYWN0aW9uUmVxdWVzdEZlZS5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogc3RyCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5vbmVvZl9zY2hlbWFfMV92YWxpZGF0b3IgPSB2CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogZmxvYXQKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLm9uZW9mX3NjaGVtYV8yX3ZhbGlkYXRvciA9IHYKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBUcmFuc2FjdGlvblJlcXVlc3RGZWUgd2l0aCBvbmVPZiBzY2hlbWFzOiBmbG9hdCwgc3RyLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIFRyYW5zYWN0aW9uUmVxdWVzdEZlZSB3aXRoIG9uZU9mIHNjaGVtYXM6IGZsb2F0LCBzdHIuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBVbmlvbltzdHIsIERpY3Rbc3RyLCBBbnldXSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCgogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIHN0cgogICAgICAgIHRyeToKICAgICAgICAgICAgIyB2YWxpZGF0aW9uCiAgICAgICAgICAgIGluc3RhbmNlLm9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvciA9IGpzb24ubG9hZHMoanNvbl9zdHIpCiAgICAgICAgICAgICMgYXNzaWduIHZhbHVlIHRvIGFjdHVhbF9pbnN0YW5jZQogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBpbnN0YW5jZS5vbmVvZl9zY2hlbWFfMV92YWxpZGF0b3IKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIGZsb2F0CiAgICAgICAgdHJ5OgogICAgICAgICAgICAjIHZhbGlkYXRpb24KICAgICAgICAgICAgaW5zdGFuY2Uub25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yID0ganNvbi5sb2Fkcyhqc29uX3N0cikKICAgICAgICAgICAgIyBhc3NpZ24gdmFsdWUgdG8gYWN0dWFsX2luc3RhbmNlCiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IGluc3RhbmNlLm9uZW9mX3NjaGVtYV8yX3ZhbGlkYXRvcgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCgogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBUcmFuc2FjdGlvblJlcXVlc3RGZWUgd2l0aCBvbmVPZiBzY2hlbWFzOiBmbG9hdCwgc3RyLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIFRyYW5zYWN0aW9uUmVxdWVzdEZlZSB3aXRoIG9uZU9mIHNjaGVtYXM6IGZsb2F0LCBzdHIuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gIm51bGwiCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19qc29uIikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24pOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbigpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi5hY3R1YWxfaW5zdGFuY2UpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gT3B0aW9uYWxbVW5pb25bRGljdFtzdHIsIEFueV0sIGZsb2F0LCBzdHJdXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgcHJpbWl0aXZlIHR5cGUKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/transaction_request_gas_limit.py b/fireblocks/models/transaction_request_gas_limit.py index 220a0216..35776e8d 100644 --- a/fireblocks/models/transaction_request_gas_limit.py +++ b/fireblocks/models/transaction_request_gas_limit.py @@ -1,144 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional, Union -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -TRANSACTIONREQUESTGASLIMIT_ONE_OF_SCHEMAS = ["float", "str"] - -class TransactionRequestGasLimit(BaseModel): - """ - For EVM-based blockchains only. Units of gas required to process the transaction. Note: Only two of the three arguments can be specified in a single transaction: `gasLimit`, `gasPrice` and `networkFee`. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated. - """ - # data type: str - oneof_schema_1_validator: Optional[StrictStr] = Field(default=None, description="Numeric string (recommended)") - # data type: float - oneof_schema_2_validator: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Number (deprecated)") - actual_instance: Optional[Union[float, str]] = None - one_of_schemas: Set[str] = { "float", "str" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = TransactionRequestGasLimit.model_construct() - error_messages = [] - match = 0 - # validate data type: str - try: - instance.oneof_schema_1_validator = v - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # validate data type: float - try: - instance.oneof_schema_2_validator = v - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in TransactionRequestGasLimit with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in TransactionRequestGasLimit with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into str - try: - # validation - instance.oneof_schema_1_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.oneof_schema_1_validator - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into float - try: - # validation - instance.oneof_schema_2_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.oneof_schema_2_validator - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into TransactionRequestGasLimit with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into TransactionRequestGasLimit with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], float, str]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RGbG9hdCwgU3RyaWN0SW50LCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIHB5ZGFudGljIGltcG9ydCBTdHJpY3RTdHIsIEZpZWxkCmZyb20gdHlwaW5nIGltcG9ydCBVbmlvbiwgTGlzdCwgU2V0LCBPcHRpb25hbCwgRGljdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBMaXRlcmFsLCBTZWxmCgpUUkFOU0FDVElPTlJFUVVFU1RHQVNMSU1JVF9PTkVfT0ZfU0NIRU1BUyA9IFsiZmxvYXQiLCAic3RyIl0KCmNsYXNzIFRyYW5zYWN0aW9uUmVxdWVzdEdhc0xpbWl0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEZvciBFVk0tYmFzZWQgYmxvY2tjaGFpbnMgb25seS4gVW5pdHMgb2YgZ2FzIHJlcXVpcmVkIHRvIHByb2Nlc3MgdGhlIHRyYW5zYWN0aW9uLiBOb3RlOiBPbmx5IHR3byBvZiB0aGUgdGhyZWUgYXJndW1lbnRzIGNhbiBiZSBzcGVjaWZpZWQgaW4gYSBzaW5nbGUgdHJhbnNhY3Rpb246IGBnYXNMaW1pdGAsIGBnYXNQcmljZWAgYW5kIGBuZXR3b3JrRmVlYC4gRmlyZWJsb2NrcyByZWNvbW1lbmRzIHVzaW5nIGEgbnVtZXJpYyBzdHJpbmcgZm9yIGFjY3VyYXRlIHByZWNpc2lvbi4gQWx0aG91Z2ggYSBudW1iZXIgaW5wdXQgZXhpc3RzLCBpdCBpcyBkZXByZWNhdGVkLgogICAgIiIiCiAgICAjIGRhdGEgdHlwZTogc3RyCiAgICBvbmVvZl9zY2hlbWFfMV92YWxpZGF0b3I6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOdW1lcmljIHN0cmluZyAocmVjb21tZW5kZWQpIikKICAgICMgZGF0YSB0eXBlOiBmbG9hdAogICAgb25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOdW1iZXIgKGRlcHJlY2F0ZWQpIikKICAgIGFjdHVhbF9pbnN0YW5jZTogT3B0aW9uYWxbVW5pb25bZmxvYXQsIHN0cl1dID0gTm9uZQogICAgb25lX29mX3NjaGVtYXM6IFNldFtzdHJdID0geyAiZmxvYXQiLCAic3RyIiB9CgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gVHJhbnNhY3Rpb25SZXF1ZXN0R2FzTGltaXQubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IHN0cgogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2Uub25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yID0gdgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IGZsb2F0CiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5vbmVvZl9zY2hlbWFfMl92YWxpZGF0b3IgPSB2CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gVHJhbnNhY3Rpb25SZXF1ZXN0R2FzTGltaXQgd2l0aCBvbmVPZiBzY2hlbWFzOiBmbG9hdCwgc3RyLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIFRyYW5zYWN0aW9uUmVxdWVzdEdhc0xpbWl0IHdpdGggb25lT2Ygc2NoZW1hczogZmxvYXQsIHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIHYKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IFVuaW9uW3N0ciwgRGljdFtzdHIsIEFueV1dKSAtPiBTZWxmOgogICAgICAgIHJldHVybiBjbHMuZnJvbV9qc29uKGpzb24uZHVtcHMob2JqKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIlJldHVybnMgdGhlIG9iamVjdCByZXByZXNlbnRlZCBieSB0aGUganNvbiBzdHJpbmciIiIKICAgICAgICBpbnN0YW5jZSA9IGNscy5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gc3RyCiAgICAgICAgdHJ5OgogICAgICAgICAgICAjIHZhbGlkYXRpb24KICAgICAgICAgICAgaW5zdGFuY2Uub25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yID0ganNvbi5sb2Fkcyhqc29uX3N0cikKICAgICAgICAgICAgIyBhc3NpZ24gdmFsdWUgdG8gYWN0dWFsX2luc3RhbmNlCiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IGluc3RhbmNlLm9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvcgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gZmxvYXQKICAgICAgICB0cnk6CiAgICAgICAgICAgICMgdmFsaWRhdGlvbgogICAgICAgICAgICBpbnN0YW5jZS5vbmVvZl9zY2hlbWFfMl92YWxpZGF0b3IgPSBqc29uLmxvYWRzKGpzb25fc3RyKQogICAgICAgICAgICAjIGFzc2lnbiB2YWx1ZSB0byBhY3R1YWxfaW5zdGFuY2UKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gaW5zdGFuY2Uub25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIFRyYW5zYWN0aW9uUmVxdWVzdEdhc0xpbWl0IHdpdGggb25lT2Ygc2NoZW1hczogZmxvYXQsIHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBUcmFuc2FjdGlvblJlcXVlc3RHYXNMaW1pdCB3aXRoIG9uZU9mIHNjaGVtYXM6IGZsb2F0LCBzdHIuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gIm51bGwiCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19qc29uIikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24pOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbigpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi5hY3R1YWxfaW5zdGFuY2UpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gT3B0aW9uYWxbVW5pb25bRGljdFtzdHIsIEFueV0sIGZsb2F0LCBzdHJdXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgcHJpbWl0aXZlIHR5cGUKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/transaction_request_gas_price.py b/fireblocks/models/transaction_request_gas_price.py index c805d968..43d13f7f 100644 --- a/fireblocks/models/transaction_request_gas_price.py +++ b/fireblocks/models/transaction_request_gas_price.py @@ -1,144 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional, Union -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -TRANSACTIONREQUESTGASPRICE_ONE_OF_SCHEMAS = ["float", "str"] - -class TransactionRequestGasPrice(BaseModel): - """ - For non-EIP-1559, EVM-based transactions. Price per gas unit (in Ethereum this is specified in Gwei). Note: Only two of the three arguments can be specified in a single transaction: `gasLimit`, `gasPrice` and `networkFee`. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated. - """ - # data type: str - oneof_schema_1_validator: Optional[StrictStr] = Field(default=None, description="Numeric string (recommended)") - # data type: float - oneof_schema_2_validator: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Number (deprecated)") - actual_instance: Optional[Union[float, str]] = None - one_of_schemas: Set[str] = { "float", "str" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = TransactionRequestGasPrice.model_construct() - error_messages = [] - match = 0 - # validate data type: str - try: - instance.oneof_schema_1_validator = v - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # validate data type: float - try: - instance.oneof_schema_2_validator = v - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in TransactionRequestGasPrice with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in TransactionRequestGasPrice with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into str - try: - # validation - instance.oneof_schema_1_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.oneof_schema_1_validator - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into float - try: - # validation - instance.oneof_schema_2_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.oneof_schema_2_validator - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into TransactionRequestGasPrice with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into TransactionRequestGasPrice with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], float, str]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RGbG9hdCwgU3RyaWN0SW50LCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIHB5ZGFudGljIGltcG9ydCBTdHJpY3RTdHIsIEZpZWxkCmZyb20gdHlwaW5nIGltcG9ydCBVbmlvbiwgTGlzdCwgU2V0LCBPcHRpb25hbCwgRGljdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBMaXRlcmFsLCBTZWxmCgpUUkFOU0FDVElPTlJFUVVFU1RHQVNQUklDRV9PTkVfT0ZfU0NIRU1BUyA9IFsiZmxvYXQiLCAic3RyIl0KCmNsYXNzIFRyYW5zYWN0aW9uUmVxdWVzdEdhc1ByaWNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEZvciBub24tRUlQLTE1NTksIEVWTS1iYXNlZCB0cmFuc2FjdGlvbnMuIFByaWNlIHBlciBnYXMgdW5pdCAoaW4gRXRoZXJldW0gdGhpcyBpcyBzcGVjaWZpZWQgaW4gR3dlaSkuICBOb3RlOiBPbmx5IHR3byBvZiB0aGUgdGhyZWUgYXJndW1lbnRzIGNhbiBiZSBzcGVjaWZpZWQgaW4gYSBzaW5nbGUgdHJhbnNhY3Rpb246IGBnYXNMaW1pdGAsIGBnYXNQcmljZWAgYW5kIGBuZXR3b3JrRmVlYC4gRmlyZWJsb2NrcyByZWNvbW1lbmRzIHVzaW5nIGEgbnVtZXJpYyBzdHJpbmcgZm9yIGFjY3VyYXRlIHByZWNpc2lvbi4gIEFsdGhvdWdoIGEgbnVtYmVyIGlucHV0IGV4aXN0cywgaXQgaXMgZGVwcmVjYXRlZC4KICAgICIiIgogICAgIyBkYXRhIHR5cGU6IHN0cgogICAgb25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTnVtZXJpYyBzdHJpbmcgKHJlY29tbWVuZGVkKSIpCiAgICAjIGRhdGEgdHlwZTogZmxvYXQKICAgIG9uZW9mX3NjaGVtYV8yX3ZhbGlkYXRvcjogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTnVtYmVyIChkZXByZWNhdGVkKSIpCiAgICBhY3R1YWxfaW5zdGFuY2U6IE9wdGlvbmFsW1VuaW9uW2Zsb2F0LCBzdHJdXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgImZsb2F0IiwgInN0ciIgfQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKSAtPiBOb25lOgogICAgICAgIGlmIGFyZ3M6CiAgICAgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIG9ubHkgMSBpcyBhbGxvd2VkIHRvIHNldCBgYWN0dWFsX2luc3RhbmNlYCIpCiAgICAgICAgICAgIGlmIGt3YXJnczoKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwga2V5d29yZCBhcmd1bWVudHMgY2Fubm90IGJlIHVzZWQuIikKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhhY3R1YWxfaW5zdGFuY2U9YXJnc1swXSkKICAgICAgICBlbHNlOgogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FjdHVhbF9pbnN0YW5jZScpCiAgICBkZWYgYWN0dWFsX2luc3RhbmNlX211c3RfdmFsaWRhdGVfb25lb2YoY2xzLCB2KToKICAgICAgICBpbnN0YW5jZSA9IFRyYW5zYWN0aW9uUmVxdWVzdEdhc1ByaWNlLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBzdHIKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLm9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvciA9IHYKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBmbG9hdAogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2Uub25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yID0gdgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIFRyYW5zYWN0aW9uUmVxdWVzdEdhc1ByaWNlIHdpdGggb25lT2Ygc2NoZW1hczogZmxvYXQsIHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBUcmFuc2FjdGlvblJlcXVlc3RHYXNQcmljZSB3aXRoIG9uZU9mIHNjaGVtYXM6IGZsb2F0LCBzdHIuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBVbmlvbltzdHIsIERpY3Rbc3RyLCBBbnldXSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCgogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIHN0cgogICAgICAgIHRyeToKICAgICAgICAgICAgIyB2YWxpZGF0aW9uCiAgICAgICAgICAgIGluc3RhbmNlLm9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvciA9IGpzb24ubG9hZHMoanNvbl9zdHIpCiAgICAgICAgICAgICMgYXNzaWduIHZhbHVlIHRvIGFjdHVhbF9pbnN0YW5jZQogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBpbnN0YW5jZS5vbmVvZl9zY2hlbWFfMV92YWxpZGF0b3IKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIGZsb2F0CiAgICAgICAgdHJ5OgogICAgICAgICAgICAjIHZhbGlkYXRpb24KICAgICAgICAgICAgaW5zdGFuY2Uub25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yID0ganNvbi5sb2Fkcyhqc29uX3N0cikKICAgICAgICAgICAgIyBhc3NpZ24gdmFsdWUgdG8gYWN0dWFsX2luc3RhbmNlCiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IGluc3RhbmNlLm9uZW9mX3NjaGVtYV8yX3ZhbGlkYXRvcgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCgogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBUcmFuc2FjdGlvblJlcXVlc3RHYXNQcmljZSB3aXRoIG9uZU9mIHNjaGVtYXM6IGZsb2F0LCBzdHIuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gVHJhbnNhY3Rpb25SZXF1ZXN0R2FzUHJpY2Ugd2l0aCBvbmVPZiBzY2hlbWFzOiBmbG9hdCwgc3RyLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuICJudWxsIgoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fanNvbiIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24oKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYuYWN0dWFsX2luc3RhbmNlKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IE9wdGlvbmFsW1VuaW9uW0RpY3Rbc3RyLCBBbnldLCBmbG9hdCwgc3RyXV06CiAgICAgICAgIiIiUmV0dXJucyB0aGUgZGljdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2RpY3QiKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCk6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KCkKICAgICAgICBlbHNlOgogICAgICAgICAgICAjIHByaW1pdGl2ZSB0eXBlCiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZQoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcCgpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/transaction_request_network_fee.py b/fireblocks/models/transaction_request_network_fee.py index 2e65c8a4..74b1cb31 100644 --- a/fireblocks/models/transaction_request_network_fee.py +++ b/fireblocks/models/transaction_request_network_fee.py @@ -1,144 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional, Union -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -TRANSACTIONREQUESTNETWORKFEE_ONE_OF_SCHEMAS = ["float", "str"] - -class TransactionRequestNetworkFee(BaseModel): - """ - For EVM-based blockchains only. The total transaction fee in the blockchain’s largest unit. Note: Only two of the three arguments can be specified in a single transaction: `gasLimit`, `gasPrice` and `networkFee`. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated. - The transaction blockchain fee. - For Ethereum, you can't pass gasPrice, gasLimit and networkFee all together. - A numeric value representation is required. - """ - # data type: str - oneof_schema_1_validator: Optional[StrictStr] = Field(default=None, description="Numeric string (recommended)") - # data type: float - oneof_schema_2_validator: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Number (deprecated)") - actual_instance: Optional[Union[float, str]] = None - one_of_schemas: Set[str] = { "float", "str" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = TransactionRequestNetworkFee.model_construct() - error_messages = [] - match = 0 - # validate data type: str - try: - instance.oneof_schema_1_validator = v - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # validate data type: float - try: - instance.oneof_schema_2_validator = v - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in TransactionRequestNetworkFee with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in TransactionRequestNetworkFee with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into str - try: - # validation - instance.oneof_schema_1_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.oneof_schema_1_validator - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into float - try: - # validation - instance.oneof_schema_2_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.oneof_schema_2_validator - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into TransactionRequestNetworkFee with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into TransactionRequestNetworkFee with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], float, str]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RGbG9hdCwgU3RyaWN0SW50LCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIHB5ZGFudGljIGltcG9ydCBTdHJpY3RTdHIsIEZpZWxkCmZyb20gdHlwaW5nIGltcG9ydCBVbmlvbiwgTGlzdCwgU2V0LCBPcHRpb25hbCwgRGljdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBMaXRlcmFsLCBTZWxmCgpUUkFOU0FDVElPTlJFUVVFU1RORVRXT1JLRkVFX09ORV9PRl9TQ0hFTUFTID0gWyJmbG9hdCIsICJzdHIiXQoKY2xhc3MgVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya0ZlZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBGb3IgRVZNLWJhc2VkIGJsb2NrY2hhaW5zIG9ubHkuIFRoZSB0b3RhbCB0cmFuc2FjdGlvbiBmZWUgaW4gdGhlIGJsb2NrY2hhaW7igJlzIGxhcmdlc3QgdW5pdC4gTm90ZTogT25seSB0d28gb2YgdGhlIHRocmVlIGFyZ3VtZW50cyBjYW4gYmUgc3BlY2lmaWVkIGluIGEgc2luZ2xlIHRyYW5zYWN0aW9uOiBgZ2FzTGltaXRgLCBgZ2FzUHJpY2VgIGFuZCBgbmV0d29ya0ZlZWAuIEZpcmVibG9ja3MgcmVjb21tZW5kcyB1c2luZyBhIG51bWVyaWMgc3RyaW5nIGZvciBhY2N1cmF0ZSBwcmVjaXNpb24uIEFsdGhvdWdoIGEgbnVtYmVyIGlucHV0IGV4aXN0cywgaXQgaXMgZGVwcmVjYXRlZC4gLSBUaGUgdHJhbnNhY3Rpb24gYmxvY2tjaGFpbiBmZWUuIC0gRm9yIEV0aGVyZXVtLCB5b3UgY2FuJ3QgcGFzcyBnYXNQcmljZSwgZ2FzTGltaXQgYW5kIG5ldHdvcmtGZWUgYWxsIHRvZ2V0aGVyLiAtIEEgbnVtZXJpYyB2YWx1ZSByZXByZXNlbnRhdGlvbiBpcyByZXF1aXJlZC4KICAgICIiIgogICAgIyBkYXRhIHR5cGU6IHN0cgogICAgb25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTnVtZXJpYyBzdHJpbmcgKHJlY29tbWVuZGVkKSIpCiAgICAjIGRhdGEgdHlwZTogZmxvYXQKICAgIG9uZW9mX3NjaGVtYV8yX3ZhbGlkYXRvcjogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTnVtYmVyIChkZXByZWNhdGVkKSIpCiAgICBhY3R1YWxfaW5zdGFuY2U6IE9wdGlvbmFsW1VuaW9uW2Zsb2F0LCBzdHJdXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgImZsb2F0IiwgInN0ciIgfQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKSAtPiBOb25lOgogICAgICAgIGlmIGFyZ3M6CiAgICAgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIG9ubHkgMSBpcyBhbGxvd2VkIHRvIHNldCBgYWN0dWFsX2luc3RhbmNlYCIpCiAgICAgICAgICAgIGlmIGt3YXJnczoKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwga2V5d29yZCBhcmd1bWVudHMgY2Fubm90IGJlIHVzZWQuIikKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhhY3R1YWxfaW5zdGFuY2U9YXJnc1swXSkKICAgICAgICBlbHNlOgogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FjdHVhbF9pbnN0YW5jZScpCiAgICBkZWYgYWN0dWFsX2luc3RhbmNlX211c3RfdmFsaWRhdGVfb25lb2YoY2xzLCB2KToKICAgICAgICBpbnN0YW5jZSA9IFRyYW5zYWN0aW9uUmVxdWVzdE5ldHdvcmtGZWUubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IHN0cgogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2Uub25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yID0gdgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IGZsb2F0CiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5vbmVvZl9zY2hlbWFfMl92YWxpZGF0b3IgPSB2CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya0ZlZSB3aXRoIG9uZU9mIHNjaGVtYXM6IGZsb2F0LCBzdHIuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya0ZlZSB3aXRoIG9uZU9mIHNjaGVtYXM6IGZsb2F0LCBzdHIuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBVbmlvbltzdHIsIERpY3Rbc3RyLCBBbnldXSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCgogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIHN0cgogICAgICAgIHRyeToKICAgICAgICAgICAgIyB2YWxpZGF0aW9uCiAgICAgICAgICAgIGluc3RhbmNlLm9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvciA9IGpzb24ubG9hZHMoanNvbl9zdHIpCiAgICAgICAgICAgICMgYXNzaWduIHZhbHVlIHRvIGFjdHVhbF9pbnN0YW5jZQogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBpbnN0YW5jZS5vbmVvZl9zY2hlbWFfMV92YWxpZGF0b3IKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIGZsb2F0CiAgICAgICAgdHJ5OgogICAgICAgICAgICAjIHZhbGlkYXRpb24KICAgICAgICAgICAgaW5zdGFuY2Uub25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yID0ganNvbi5sb2Fkcyhqc29uX3N0cikKICAgICAgICAgICAgIyBhc3NpZ24gdmFsdWUgdG8gYWN0dWFsX2luc3RhbmNlCiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IGluc3RhbmNlLm9uZW9mX3NjaGVtYV8yX3ZhbGlkYXRvcgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCgogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrRmVlIHdpdGggb25lT2Ygc2NoZW1hczogZmxvYXQsIHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrRmVlIHdpdGggb25lT2Ygc2NoZW1hczogZmxvYXQsIHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiAibnVsbCIKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2pzb24iKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbik6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKCkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLmFjdHVhbF9pbnN0YW5jZSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBPcHRpb25hbFtVbmlvbltEaWN0W3N0ciwgQW55XSwgZmxvYXQsIHN0cl1dOgogICAgICAgICIiIlJldHVybnMgdGhlIGRpY3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19kaWN0IikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QpOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCgpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgIyBwcmltaXRpdmUgdHlwZQogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/transaction_request_network_staking.py b/fireblocks/models/transaction_request_network_staking.py index 8498f16a..9b21ad6a 100644 --- a/fireblocks/models/transaction_request_network_staking.py +++ b/fireblocks/models/transaction_request_network_staking.py @@ -1,144 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional, Union -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -TRANSACTIONREQUESTNETWORKSTAKING_ONE_OF_SCHEMAS = ["float", "str"] - -class TransactionRequestNetworkStaking(BaseModel): - """ - This feature is no longer supported. - """ - # data type: str - oneof_schema_1_validator: Optional[StrictStr] = Field(default=None, description="Numeric string (recommended)") - # data type: float - oneof_schema_2_validator: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Number (deprecated)") - actual_instance: Optional[Union[float, str]] = None - one_of_schemas: Set[str] = { "float", "str" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = TransactionRequestNetworkStaking.model_construct() - error_messages = [] - match = 0 - # validate data type: str - try: - instance.oneof_schema_1_validator = v - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # validate data type: float - try: - instance.oneof_schema_2_validator = v - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in TransactionRequestNetworkStaking with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in TransactionRequestNetworkStaking with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into str - try: - # validation - instance.oneof_schema_1_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.oneof_schema_1_validator - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into float - try: - # validation - instance.oneof_schema_2_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.oneof_schema_2_validator - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into TransactionRequestNetworkStaking with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into TransactionRequestNetworkStaking with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], float, str]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RGbG9hdCwgU3RyaWN0SW50LCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIHB5ZGFudGljIGltcG9ydCBTdHJpY3RTdHIsIEZpZWxkCmZyb20gdHlwaW5nIGltcG9ydCBVbmlvbiwgTGlzdCwgU2V0LCBPcHRpb25hbCwgRGljdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBMaXRlcmFsLCBTZWxmCgpUUkFOU0FDVElPTlJFUVVFU1RORVRXT1JLU1RBS0lOR19PTkVfT0ZfU0NIRU1BUyA9IFsiZmxvYXQiLCAic3RyIl0KCmNsYXNzIFRyYW5zYWN0aW9uUmVxdWVzdE5ldHdvcmtTdGFraW5nKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRoaXMgZmVhdHVyZSBpcyBubyBsb25nZXIgc3VwcG9ydGVkLgogICAgIiIiCiAgICAjIGRhdGEgdHlwZTogc3RyCiAgICBvbmVvZl9zY2hlbWFfMV92YWxpZGF0b3I6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOdW1lcmljIHN0cmluZyAocmVjb21tZW5kZWQpIikKICAgICMgZGF0YSB0eXBlOiBmbG9hdAogICAgb25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOdW1iZXIgKGRlcHJlY2F0ZWQpIikKICAgIGFjdHVhbF9pbnN0YW5jZTogT3B0aW9uYWxbVW5pb25bZmxvYXQsIHN0cl1dID0gTm9uZQogICAgb25lX29mX3NjaGVtYXM6IFNldFtzdHJdID0geyAiZmxvYXQiLCAic3RyIiB9CgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya1N0YWtpbmcubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IHN0cgogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2Uub25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yID0gdgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IGZsb2F0CiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5vbmVvZl9zY2hlbWFfMl92YWxpZGF0b3IgPSB2CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIHNldHRpbmcgYGFjdHVhbF9pbnN0YW5jZWAgaW4gVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya1N0YWtpbmcgd2l0aCBvbmVPZiBzY2hlbWFzOiBmbG9hdCwgc3RyLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIFRyYW5zYWN0aW9uUmVxdWVzdE5ldHdvcmtTdGFraW5nIHdpdGggb25lT2Ygc2NoZW1hczogZmxvYXQsIHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIHYKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IFVuaW9uW3N0ciwgRGljdFtzdHIsIEFueV1dKSAtPiBTZWxmOgogICAgICAgIHJldHVybiBjbHMuZnJvbV9qc29uKGpzb24uZHVtcHMob2JqKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIlJldHVybnMgdGhlIG9iamVjdCByZXByZXNlbnRlZCBieSB0aGUganNvbiBzdHJpbmciIiIKICAgICAgICBpbnN0YW5jZSA9IGNscy5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gc3RyCiAgICAgICAgdHJ5OgogICAgICAgICAgICAjIHZhbGlkYXRpb24KICAgICAgICAgICAgaW5zdGFuY2Uub25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yID0ganNvbi5sb2Fkcyhqc29uX3N0cikKICAgICAgICAgICAgIyBhc3NpZ24gdmFsdWUgdG8gYWN0dWFsX2luc3RhbmNlCiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IGluc3RhbmNlLm9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvcgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gZmxvYXQKICAgICAgICB0cnk6CiAgICAgICAgICAgICMgdmFsaWRhdGlvbgogICAgICAgICAgICBpbnN0YW5jZS5vbmVvZl9zY2hlbWFfMl92YWxpZGF0b3IgPSBqc29uLmxvYWRzKGpzb25fc3RyKQogICAgICAgICAgICAjIGFzc2lnbiB2YWx1ZSB0byBhY3R1YWxfaW5zdGFuY2UKICAgICAgICAgICAgaW5zdGFuY2UuYWN0dWFsX2luc3RhbmNlID0gaW5zdGFuY2Uub25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIFRyYW5zYWN0aW9uUmVxdWVzdE5ldHdvcmtTdGFraW5nIHdpdGggb25lT2Ygc2NoZW1hczogZmxvYXQsIHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrU3Rha2luZyB3aXRoIG9uZU9mIHNjaGVtYXM6IGZsb2F0LCBzdHIuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gIm51bGwiCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19qc29uIikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24pOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbigpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi5hY3R1YWxfaW5zdGFuY2UpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gT3B0aW9uYWxbVW5pb25bRGljdFtzdHIsIEFueV0sIGZsb2F0LCBzdHJdXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgcHJpbWl0aXZlIHR5cGUKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/transaction_request_priority_fee.py b/fireblocks/models/transaction_request_priority_fee.py index 845ea381..4be1e4df 100644 --- a/fireblocks/models/transaction_request_priority_fee.py +++ b/fireblocks/models/transaction_request_priority_fee.py @@ -1,144 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional, Union -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -TRANSACTIONREQUESTPRIORITYFEE_ONE_OF_SCHEMAS = ["float", "str"] - -class TransactionRequestPriorityFee(BaseModel): - """ - For Ethereum-based blockchains only, the fee for EIP-1559 transaction pricing mechanism. Value is in Gwei. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated. - """ - # data type: str - oneof_schema_1_validator: Optional[StrictStr] = Field(default=None, description="Numeric string (recommended)") - # data type: float - oneof_schema_2_validator: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Number (deprecated)") - actual_instance: Optional[Union[float, str]] = None - one_of_schemas: Set[str] = { "float", "str" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = TransactionRequestPriorityFee.model_construct() - error_messages = [] - match = 0 - # validate data type: str - try: - instance.oneof_schema_1_validator = v - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # validate data type: float - try: - instance.oneof_schema_2_validator = v - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in TransactionRequestPriorityFee with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in TransactionRequestPriorityFee with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into str - try: - # validation - instance.oneof_schema_1_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.oneof_schema_1_validator - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into float - try: - # validation - instance.oneof_schema_2_validator = json.loads(json_str) - # assign value to actual_instance - instance.actual_instance = instance.oneof_schema_2_validator - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into TransactionRequestPriorityFee with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into TransactionRequestPriorityFee with oneOf schemas: float, str. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], float, str]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RGbG9hdCwgU3RyaWN0SW50LCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIHB5ZGFudGljIGltcG9ydCBTdHJpY3RTdHIsIEZpZWxkCmZyb20gdHlwaW5nIGltcG9ydCBVbmlvbiwgTGlzdCwgU2V0LCBPcHRpb25hbCwgRGljdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBMaXRlcmFsLCBTZWxmCgpUUkFOU0FDVElPTlJFUVVFU1RQUklPUklUWUZFRV9PTkVfT0ZfU0NIRU1BUyA9IFsiZmxvYXQiLCAic3RyIl0KCmNsYXNzIFRyYW5zYWN0aW9uUmVxdWVzdFByaW9yaXR5RmVlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIEZvciBFdGhlcmV1bS1iYXNlZCBibG9ja2NoYWlucyBvbmx5LCB0aGUgZmVlIGZvciBFSVAtMTU1OSB0cmFuc2FjdGlvbiBwcmljaW5nIG1lY2hhbmlzbS4gVmFsdWUgaXMgaW4gR3dlaS4gIEZpcmVibG9ja3MgcmVjb21tZW5kcyB1c2luZyBhIG51bWVyaWMgc3RyaW5nIGZvciBhY2N1cmF0ZSBwcmVjaXNpb24uIEFsdGhvdWdoIGEgbnVtYmVyIGlucHV0IGV4aXN0cywgaXQgaXMgZGVwcmVjYXRlZC4KICAgICIiIgogICAgIyBkYXRhIHR5cGU6IHN0cgogICAgb25lb2Zfc2NoZW1hXzFfdmFsaWRhdG9yOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTnVtZXJpYyBzdHJpbmcgKHJlY29tbWVuZGVkKSIpCiAgICAjIGRhdGEgdHlwZTogZmxvYXQKICAgIG9uZW9mX3NjaGVtYV8yX3ZhbGlkYXRvcjogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTnVtYmVyIChkZXByZWNhdGVkKSIpCiAgICBhY3R1YWxfaW5zdGFuY2U6IE9wdGlvbmFsW1VuaW9uW2Zsb2F0LCBzdHJdXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgImZsb2F0IiwgInN0ciIgfQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKSAtPiBOb25lOgogICAgICAgIGlmIGFyZ3M6CiAgICAgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIG9ubHkgMSBpcyBhbGxvd2VkIHRvIHNldCBgYWN0dWFsX2luc3RhbmNlYCIpCiAgICAgICAgICAgIGlmIGt3YXJnczoKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwga2V5d29yZCBhcmd1bWVudHMgY2Fubm90IGJlIHVzZWQuIikKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhhY3R1YWxfaW5zdGFuY2U9YXJnc1swXSkKICAgICAgICBlbHNlOgogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FjdHVhbF9pbnN0YW5jZScpCiAgICBkZWYgYWN0dWFsX2luc3RhbmNlX211c3RfdmFsaWRhdGVfb25lb2YoY2xzLCB2KToKICAgICAgICBpbnN0YW5jZSA9IFRyYW5zYWN0aW9uUmVxdWVzdFByaW9yaXR5RmVlLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBzdHIKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLm9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvciA9IHYKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBmbG9hdAogICAgICAgIHRyeToKICAgICAgICAgICAgaW5zdGFuY2Uub25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yID0gdgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIFRyYW5zYWN0aW9uUmVxdWVzdFByaW9yaXR5RmVlIHdpdGggb25lT2Ygc2NoZW1hczogZmxvYXQsIHN0ci4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBUcmFuc2FjdGlvblJlcXVlc3RQcmlvcml0eUZlZSB3aXRoIG9uZU9mIHNjaGVtYXM6IGZsb2F0LCBzdHIuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBVbmlvbltzdHIsIERpY3Rbc3RyLCBBbnldXSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCgogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIHN0cgogICAgICAgIHRyeToKICAgICAgICAgICAgIyB2YWxpZGF0aW9uCiAgICAgICAgICAgIGluc3RhbmNlLm9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvciA9IGpzb24ubG9hZHMoanNvbl9zdHIpCiAgICAgICAgICAgICMgYXNzaWduIHZhbHVlIHRvIGFjdHVhbF9pbnN0YW5jZQogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBpbnN0YW5jZS5vbmVvZl9zY2hlbWFfMV92YWxpZGF0b3IKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIGZsb2F0CiAgICAgICAgdHJ5OgogICAgICAgICAgICAjIHZhbGlkYXRpb24KICAgICAgICAgICAgaW5zdGFuY2Uub25lb2Zfc2NoZW1hXzJfdmFsaWRhdG9yID0ganNvbi5sb2Fkcyhqc29uX3N0cikKICAgICAgICAgICAgIyBhc3NpZ24gdmFsdWUgdG8gYWN0dWFsX2luc3RhbmNlCiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IGluc3RhbmNlLm9uZW9mX3NjaGVtYV8yX3ZhbGlkYXRvcgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCgogICAgICAgIGlmIG1hdGNoID4gMToKICAgICAgICAgICAgIyBtb3JlIHRoYW4gMSBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXBsZSBtYXRjaGVzIGZvdW5kIHdoZW4gZGVzZXJpYWxpemluZyB0aGUgSlNPTiBzdHJpbmcgaW50byBUcmFuc2FjdGlvblJlcXVlc3RQcmlvcml0eUZlZSB3aXRoIG9uZU9mIHNjaGVtYXM6IGZsb2F0LCBzdHIuIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsaWYgbWF0Y2ggPT0gMDoKICAgICAgICAgICAgIyBubyBtYXRjaAogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBtYXRjaCBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gVHJhbnNhY3Rpb25SZXF1ZXN0UHJpb3JpdHlGZWUgd2l0aCBvbmVPZiBzY2hlbWFzOiBmbG9hdCwgc3RyLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuICJudWxsIgoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fanNvbiIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24oKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYuYWN0dWFsX2luc3RhbmNlKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IE9wdGlvbmFsW1VuaW9uW0RpY3Rbc3RyLCBBbnldLCBmbG9hdCwgc3RyXV06CiAgICAgICAgIiIiUmV0dXJucyB0aGUgZGljdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2RpY3QiKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCk6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KCkKICAgICAgICBlbHNlOgogICAgICAgICAgICAjIHByaW1pdGl2ZSB0eXBlCiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZQoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcCgpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/transaction_response.py b/fireblocks/models/transaction_response.py index 007061e0..ab4669b8 100644 --- a/fireblocks/models/transaction_response.py +++ b/fireblocks/models/transaction_response.py @@ -1,300 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.aml_screening_result import AmlScreeningResult -from fireblocks.models.amount_info import AmountInfo -from fireblocks.models.authorization_info import AuthorizationInfo -from fireblocks.models.block_info import BlockInfo -from fireblocks.models.compliance_results import ComplianceResults -from fireblocks.models.destination_transfer_peer_path_response import DestinationTransferPeerPathResponse -from fireblocks.models.extra_parameters import ExtraParameters -from fireblocks.models.fee_info import FeeInfo -from fireblocks.models.fee_payer_info import FeePayerInfo -from fireblocks.models.get_transaction_operation import GetTransactionOperation -from fireblocks.models.network_record import NetworkRecord -from fireblocks.models.reward_info import RewardInfo -from fireblocks.models.signed_message import SignedMessage -from fireblocks.models.source_transfer_peer_path_response import SourceTransferPeerPathResponse -from fireblocks.models.system_message_info import SystemMessageInfo -from fireblocks.models.transaction_response_contract_call_decoded_data import TransactionResponseContractCallDecodedData -from fireblocks.models.transaction_response_destination import TransactionResponseDestination -from typing import Optional, Set -from typing_extensions import Self - -class TransactionResponse(BaseModel): - """ - TransactionResponse - """ # noqa: E501 - id: Optional[StrictStr] = Field(default=None, description="ID of the transaction.") - external_tx_id: Optional[StrictStr] = Field(default=None, description="Unique transaction ID provided by the user. Fireblocks highly recommends setting an `externalTxId` for every transaction created, to avoid submitting the same transaction twice.", alias="externalTxId") - status: Optional[StrictStr] = Field(default=None, description="The primary status of the transaction. For details, see [Primary transaction statuses](https://developers.fireblocks.com/reference/primary-transaction-statuses).") - sub_status: Optional[StrictStr] = Field(default=None, description="See [Transaction substatuses](https://developers.fireblocks.com/reference/transaction-substatuses) for the list of transaction sub statuses.", alias="subStatus") - tx_hash: Optional[StrictStr] = Field(default=None, description="The hash of the transaction on the blockchain. * This parameter exists if at least one of the following conditions is met: 1. The transaction’s source type is `UNKNOWN`, `WHITELISTED_ADDRESS`, `NETWORK_CONNECTION`, `ONE_TIME_ADDRESS`, `FIAT_ACCOUNT` or `GAS_STATION`. 2. The transaction’s source type is `VAULT` and the status is either: `CONFIRMING`, `COMPLETED`, or was in any of these statuses prior to changing to `FAILED` or `REJECTED`. In some instances, transactions in status `BROADCASTING` will include the txHash as well. 3. The transaction’s source type is `EXCHANGE_ACCOUNT` and the transaction’s destination type is `VAULT`, and the status is either: `CONFIRMING`, `COMPLETED`, or was in any of these status prior to changing to `FAILED`. * In addition, the following conditions must be met: 1. The asset is a crypto asset (not fiat). 2. The transaction operation is not RAW or `TYPED_MESSAGE`.", alias="txHash") - operation: Optional[GetTransactionOperation] = None - note: Optional[StrictStr] = Field(default=None, description="Custom note, not sent to the blockchain, that describes the transaction at your Fireblocks workspace.") - asset_id: Optional[StrictStr] = Field(default=None, description="The ID of the asset to transfer, for `TRANSFER`, `MINT`, `BURN`, `ENABLE_ASSET`,`STAKE` ,`UNSTAKE` or `WITHDRAW` operations. [See the list of supported assets and their IDs on Fireblocks.](https://developers.fireblocks.com/reference/get_supported-assets)", alias="assetId") - asset_type: Optional[StrictStr] = Field(default=None, description="Type classification of the asset", alias="assetType") - source: Optional[SourceTransferPeerPathResponse] = None - source_address: Optional[StrictStr] = Field(default=None, description="For account based assets only, the source address of the transaction. **Note:** If the status is `CONFIRMING`, `COMPLETED`, or has been `CONFIRMING`; then moved forward to `FAILED` or `REJECTED`, then this parameter will contain the source address. In any other case, this parameter will be empty.", alias="sourceAddress") - tag: Optional[StrictStr] = Field(default=None, description="Source address tag for XRP, used as memo for EOS/XLM, or Bank Transfer Description for the fiat provider BLINC (by BCB Group).") - destination: Optional[DestinationTransferPeerPathResponse] = None - destinations: Optional[List[TransactionResponseDestination]] = Field(default=None, description="The transaction’s destinations. **Note:** In case the transaction is sent to a single destination, the `destination` parameter is used instead of this.") - destination_address: Optional[StrictStr] = Field(default=None, description="Address where the asset were transferred. Notes: - For [Multi destination transactions](https://support.fireblocks.io/hc/en-us/articles/360018447980-Multi-destination-transactions), this parameter will be empty. In this case, you should refer to the destinations field. - If the status is `CONFIRMING`, `COMPLETED`, or has been `CONFIRMING`; then moved forward to `FAILED` or `REJECTED`, then this parameter will contain the destination address. In any other case, this parameter will be empty.", alias="destinationAddress") - destination_address_description: Optional[StrictStr] = Field(default=None, description="Description of the address.", alias="destinationAddressDescription") - destination_tag: Optional[StrictStr] = Field(default=None, description="Destination address tag for XRP, used as memo for EOS/XLM, or Bank Transfer Description for the fiat provider BLINC (by BCB Group).", alias="destinationTag") - contract_call_decoded_data: Optional[TransactionResponseContractCallDecodedData] = Field(default=None, alias="contractCallDecodedData") - amount_info: Optional[AmountInfo] = Field(default=None, alias="amountInfo") - treat_as_gross_amount: Optional[StrictBool] = Field(default=None, description="For transactions initiated via this Fireblocks workspace, when set to `true`, the fee is deducted from the requested amount. **Note**: This parameter can only be considered if a transaction's asset is a base asset, such as ETH or MATIC. If the asset can't be used for transaction fees, like USDC, this parameter is ignored and the fee is deducted from the relevant base asset wallet in the source account.", alias="treatAsGrossAmount") - fee_info: Optional[FeeInfo] = Field(default=None, alias="feeInfo") - fee_currency: Optional[StrictStr] = Field(default=None, description="The asset which was withdrawn to pay the transaction fee, for example ETH for EVM-based blockchains, BTC for Tether Omni.", alias="feeCurrency") - network_records: Optional[List[NetworkRecord]] = Field(default=None, description="In case a single transaction resulted with multiple transfers, for example a result of a contract call, then this parameter specifies each transfer that took place on the blockchain. In case of a single transfer transaction, this parameter is empty.", alias="networkRecords") - created_at: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The transaction’s creation date and time, in unix timestamp.", alias="createdAt") - last_updated: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The transaction’s last update date and time, in unix timestamp.", alias="lastUpdated") - created_by: Optional[StrictStr] = Field(default=None, description="User ID of the initiator of the transaction.", alias="createdBy") - signed_by: Optional[List[StrictStr]] = Field(default=None, description="User ID’s of the signers of the transaction.", alias="signedBy") - rejected_by: Optional[StrictStr] = Field(default=None, description="User ID of the user that rejected the transaction (in case it was rejected).", alias="rejectedBy") - authorization_info: Optional[AuthorizationInfo] = Field(default=None, alias="authorizationInfo") - exchange_tx_id: Optional[StrictStr] = Field(default=None, description="If the transaction originated from an exchange, this is the ID of this transaction at the exchange.", alias="exchangeTxId") - customer_ref_id: Optional[StrictStr] = Field(default=None, description="The ID for AML providers to associate the owner of funds with transactions.", alias="customerRefId") - travel_rule_message_id: Optional[StrictStr] = Field(default=None, description="The ID of the travel rule message from any travel rule provider. Used for travel rule supporting functionality to associate transactions with existing travel rule messages.", alias="travelRuleMessageId") - aml_screening_result: Optional[AmlScreeningResult] = Field(default=None, alias="amlScreeningResult") - compliance_results: Optional[ComplianceResults] = Field(default=None, alias="complianceResults") - not_broadcast_by_fireblocks: Optional[StrictBool] = Field(default=None, description="Indicates the transaction was not broadcast by Fireblocks", alias="notBroadcastByFireblocks") - dapp_url: Optional[StrictStr] = Field(default=None, description="DApp URL for Web3 transactions", alias="dappUrl") - gas_limit: Optional[StrictStr] = Field(default=None, description="Gas limit for EVM-based blockchain transactions", alias="gasLimit") - blockchain_index: Optional[StrictStr] = Field(default=None, description="Blockchain-specific index or identifier for the transaction", alias="blockchainIndex") - paid_rent: Optional[StrictStr] = Field(default=None, description="Solana rent payment amount", alias="paidRent") - extra_parameters: Optional[ExtraParameters] = Field(default=None, alias="extraParameters") - signed_messages: Optional[List[SignedMessage]] = Field(default=None, alias="signedMessages") - num_of_confirmations: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The number of confirmations of the transaction. The number will increase until the transaction will be considered completed according to the confirmation policy.", alias="numOfConfirmations") - block_info: Optional[BlockInfo] = Field(default=None, alias="blockInfo") - index: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="For UTXO based assets this is the vOut, for Ethereum based, this is the index of the event of the contract call. **Note:** This field is not returned if a transaction uses the `destinations` object with more than one value.") - reward_info: Optional[RewardInfo] = Field(default=None, alias="rewardInfo") - fee_payer_info: Optional[FeePayerInfo] = Field(default=None, alias="feePayerInfo") - system_messages: Optional[List[SystemMessageInfo]] = Field(default=None, alias="systemMessages") - address_type: Optional[StrictStr] = Field(default=None, alias="addressType") - requested_amount: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The amount requested by the user. Deprecated - please use the `amountInfo` field for accuracy.", alias="requestedAmount") - amount: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="If the transfer is a withdrawal from an exchange, the actual amount that was requested to be transferred. Otherwise, the requested amount. Deprecated - please use the `amountInfo` field for accuracy.") - net_amount: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The net amount of the transaction, after fee deduction. Deprecated - please use the `amountInfo` field for accuracy.", alias="netAmount") - amount_usd: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The USD value of the requested amount. Deprecated - please use the `amountInfo` field for accuracy.", alias="amountUSD") - service_fee: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The total fee deducted by the exchange from the actual requested amount (`serviceFee` = `amount` - `netAmount`). Deprecated - please use the `feeInfo` field for accuracy.", alias="serviceFee") - fee: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Deprecated - please use the `feeInfo` field for accuracy.") - network_fee: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The fee paid to the network. Deprecated - please use the `feeInfo` field for accuracy.", alias="networkFee") - error_description: Optional[StrictStr] = Field(default=None, description="The transaction's revert reason. This field will be returned when `subStatus` = 'SMART_CONTRACT_EXECUTION_FAILED'.", alias="errorDescription") - replaced_tx_hash: Optional[StrictStr] = Field(default=None, description="if the transaction is a replace by fee (RBF) transaction, this is the hash of the transsaction that was replaced", alias="replacedTxHash") - nonce: Optional[StrictStr] = Field(default=None, description="blockchain nonce for the transaction") - blockchain_info: Optional[Dict[str, Any]] = Field(default=None, description="A JSON used to store additional data that is blockchain-specific.", alias="blockchainInfo") - __properties: ClassVar[List[str]] = ["id", "externalTxId", "status", "subStatus", "txHash", "operation", "note", "assetId", "assetType", "source", "sourceAddress", "tag", "destination", "destinations", "destinationAddress", "destinationAddressDescription", "destinationTag", "contractCallDecodedData", "amountInfo", "treatAsGrossAmount", "feeInfo", "feeCurrency", "networkRecords", "createdAt", "lastUpdated", "createdBy", "signedBy", "rejectedBy", "authorizationInfo", "exchangeTxId", "customerRefId", "travelRuleMessageId", "amlScreeningResult", "complianceResults", "notBroadcastByFireblocks", "dappUrl", "gasLimit", "blockchainIndex", "paidRent", "extraParameters", "signedMessages", "numOfConfirmations", "blockInfo", "index", "rewardInfo", "feePayerInfo", "systemMessages", "addressType", "requestedAmount", "amount", "netAmount", "amountUSD", "serviceFee", "fee", "networkFee", "errorDescription", "replacedTxHash", "nonce", "blockchainInfo"] - - @field_validator('address_type') - def address_type_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['', 'WHITELISTED', 'ONE_TIME']): - raise ValueError("must be one of enum values ('', 'WHITELISTED', 'ONE_TIME')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TransactionResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of source - if self.source: - _dict['source'] = self.source.to_dict() - # override the default output from pydantic by calling `to_dict()` of destination - if self.destination: - _dict['destination'] = self.destination.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in destinations (list) - _items = [] - if self.destinations: - for _item_destinations in self.destinations: - if _item_destinations: - _items.append(_item_destinations.to_dict()) - _dict['destinations'] = _items - # override the default output from pydantic by calling `to_dict()` of contract_call_decoded_data - if self.contract_call_decoded_data: - _dict['contractCallDecodedData'] = self.contract_call_decoded_data.to_dict() - # override the default output from pydantic by calling `to_dict()` of amount_info - if self.amount_info: - _dict['amountInfo'] = self.amount_info.to_dict() - # override the default output from pydantic by calling `to_dict()` of fee_info - if self.fee_info: - _dict['feeInfo'] = self.fee_info.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in network_records (list) - _items = [] - if self.network_records: - for _item_network_records in self.network_records: - if _item_network_records: - _items.append(_item_network_records.to_dict()) - _dict['networkRecords'] = _items - # override the default output from pydantic by calling `to_dict()` of authorization_info - if self.authorization_info: - _dict['authorizationInfo'] = self.authorization_info.to_dict() - # override the default output from pydantic by calling `to_dict()` of aml_screening_result - if self.aml_screening_result: - _dict['amlScreeningResult'] = self.aml_screening_result.to_dict() - # override the default output from pydantic by calling `to_dict()` of compliance_results - if self.compliance_results: - _dict['complianceResults'] = self.compliance_results.to_dict() - # override the default output from pydantic by calling `to_dict()` of extra_parameters - if self.extra_parameters: - _dict['extraParameters'] = self.extra_parameters.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in signed_messages (list) - _items = [] - if self.signed_messages: - for _item_signed_messages in self.signed_messages: - if _item_signed_messages: - _items.append(_item_signed_messages.to_dict()) - _dict['signedMessages'] = _items - # override the default output from pydantic by calling `to_dict()` of block_info - if self.block_info: - _dict['blockInfo'] = self.block_info.to_dict() - # override the default output from pydantic by calling `to_dict()` of reward_info - if self.reward_info: - _dict['rewardInfo'] = self.reward_info.to_dict() - # override the default output from pydantic by calling `to_dict()` of fee_payer_info - if self.fee_payer_info: - _dict['feePayerInfo'] = self.fee_payer_info.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in system_messages (list) - _items = [] - if self.system_messages: - for _item_system_messages in self.system_messages: - if _item_system_messages: - _items.append(_item_system_messages.to_dict()) - _dict['systemMessages'] = _items - # set to None if amount_usd (nullable) is None - # and model_fields_set contains the field - if self.amount_usd is None and "amount_usd" in self.model_fields_set: - _dict['amountUSD'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TransactionResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "externalTxId": obj.get("externalTxId"), - "status": obj.get("status"), - "subStatus": obj.get("subStatus"), - "txHash": obj.get("txHash"), - "operation": obj.get("operation"), - "note": obj.get("note"), - "assetId": obj.get("assetId"), - "assetType": obj.get("assetType"), - "source": SourceTransferPeerPathResponse.from_dict(obj["source"]) if obj.get("source") is not None else None, - "sourceAddress": obj.get("sourceAddress"), - "tag": obj.get("tag"), - "destination": DestinationTransferPeerPathResponse.from_dict(obj["destination"]) if obj.get("destination") is not None else None, - "destinations": [TransactionResponseDestination.from_dict(_item) for _item in obj["destinations"]] if obj.get("destinations") is not None else None, - "destinationAddress": obj.get("destinationAddress"), - "destinationAddressDescription": obj.get("destinationAddressDescription"), - "destinationTag": obj.get("destinationTag"), - "contractCallDecodedData": TransactionResponseContractCallDecodedData.from_dict(obj["contractCallDecodedData"]) if obj.get("contractCallDecodedData") is not None else None, - "amountInfo": AmountInfo.from_dict(obj["amountInfo"]) if obj.get("amountInfo") is not None else None, - "treatAsGrossAmount": obj.get("treatAsGrossAmount"), - "feeInfo": FeeInfo.from_dict(obj["feeInfo"]) if obj.get("feeInfo") is not None else None, - "feeCurrency": obj.get("feeCurrency"), - "networkRecords": [NetworkRecord.from_dict(_item) for _item in obj["networkRecords"]] if obj.get("networkRecords") is not None else None, - "createdAt": obj.get("createdAt"), - "lastUpdated": obj.get("lastUpdated"), - "createdBy": obj.get("createdBy"), - "signedBy": obj.get("signedBy"), - "rejectedBy": obj.get("rejectedBy"), - "authorizationInfo": AuthorizationInfo.from_dict(obj["authorizationInfo"]) if obj.get("authorizationInfo") is not None else None, - "exchangeTxId": obj.get("exchangeTxId"), - "customerRefId": obj.get("customerRefId"), - "travelRuleMessageId": obj.get("travelRuleMessageId"), - "amlScreeningResult": AmlScreeningResult.from_dict(obj["amlScreeningResult"]) if obj.get("amlScreeningResult") is not None else None, - "complianceResults": ComplianceResults.from_dict(obj["complianceResults"]) if obj.get("complianceResults") is not None else None, - "notBroadcastByFireblocks": obj.get("notBroadcastByFireblocks"), - "dappUrl": obj.get("dappUrl"), - "gasLimit": obj.get("gasLimit"), - "blockchainIndex": obj.get("blockchainIndex"), - "paidRent": obj.get("paidRent"), - "extraParameters": ExtraParameters.from_dict(obj["extraParameters"]) if obj.get("extraParameters") is not None else None, - "signedMessages": [SignedMessage.from_dict(_item) for _item in obj["signedMessages"]] if obj.get("signedMessages") is not None else None, - "numOfConfirmations": obj.get("numOfConfirmations"), - "blockInfo": BlockInfo.from_dict(obj["blockInfo"]) if obj.get("blockInfo") is not None else None, - "index": obj.get("index"), - "rewardInfo": RewardInfo.from_dict(obj["rewardInfo"]) if obj.get("rewardInfo") is not None else None, - "feePayerInfo": FeePayerInfo.from_dict(obj["feePayerInfo"]) if obj.get("feePayerInfo") is not None else None, - "systemMessages": [SystemMessageInfo.from_dict(_item) for _item in obj["systemMessages"]] if obj.get("systemMessages") is not None else None, - "addressType": obj.get("addressType"), - "requestedAmount": obj.get("requestedAmount"), - "amount": obj.get("amount"), - "netAmount": obj.get("netAmount"), - "amountUSD": obj.get("amountUSD"), - "serviceFee": obj.get("serviceFee"), - "fee": obj.get("fee"), - "networkFee": obj.get("networkFee"), - "errorDescription": obj.get("errorDescription"), - "replacedTxHash": obj.get("replacedTxHash"), - "nonce": obj.get("nonce"), - "blockchainInfo": obj.get("blockchainInfo") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF9zY3JlZW5pbmdfcmVzdWx0IGltcG9ydCBBbWxTY3JlZW5pbmdSZXN1bHQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfaW5mbyBpbXBvcnQgQW1vdW50SW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmF1dGhvcml6YXRpb25faW5mbyBpbXBvcnQgQXV0aG9yaXphdGlvbkluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5ibG9ja19pbmZvIGltcG9ydCBCbG9ja0luZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jb21wbGlhbmNlX3Jlc3VsdHMgaW1wb3J0IENvbXBsaWFuY2VSZXN1bHRzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzdGluYXRpb25fdHJhbnNmZXJfcGVlcl9wYXRoX3Jlc3BvbnNlIGltcG9ydCBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGhSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dHJhX3BhcmFtZXRlcnMgaW1wb3J0IEV4dHJhUGFyYW1ldGVycwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZV9pbmZvIGltcG9ydCBGZWVJbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmVlX3BheWVyX2luZm8gaW1wb3J0IEZlZVBheWVySW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF90cmFuc2FjdGlvbl9vcGVyYXRpb24gaW1wb3J0IEdldFRyYW5zYWN0aW9uT3BlcmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19yZWNvcmQgaW1wb3J0IE5ldHdvcmtSZWNvcmQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5yZXdhcmRfaW5mbyBpbXBvcnQgUmV3YXJkSW5mbwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNpZ25lZF9tZXNzYWdlIGltcG9ydCBTaWduZWRNZXNzYWdlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc291cmNlX3RyYW5zZmVyX3BlZXJfcGF0aF9yZXNwb25zZSBpbXBvcnQgU291cmNlVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc3lzdGVtX21lc3NhZ2VfaW5mbyBpbXBvcnQgU3lzdGVtTWVzc2FnZUluZm8KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZXNwb25zZV9jb250cmFjdF9jYWxsX2RlY29kZWRfZGF0YSBpbXBvcnQgVHJhbnNhY3Rpb25SZXNwb25zZUNvbnRyYWN0Q2FsbERlY29kZWREYXRhCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVzcG9uc2VfZGVzdGluYXRpb24gaW1wb3J0IFRyYW5zYWN0aW9uUmVzcG9uc2VEZXN0aW5hdGlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmFuc2FjdGlvblJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRyYW5zYWN0aW9uUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSUQgb2YgdGhlIHRyYW5zYWN0aW9uLiIpCiAgICBleHRlcm5hbF90eF9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlVuaXF1ZSB0cmFuc2FjdGlvbiBJRCBwcm92aWRlZCBieSB0aGUgdXNlci4gRmlyZWJsb2NrcyBoaWdobHkgcmVjb21tZW5kcyBzZXR0aW5nIGFuIGBleHRlcm5hbFR4SWRgIGZvciBldmVyeSB0cmFuc2FjdGlvbiBjcmVhdGVkLCB0byBhdm9pZCBzdWJtaXR0aW5nIHRoZSBzYW1lIHRyYW5zYWN0aW9uIHR3aWNlLiIsIGFsaWFzPSJleHRlcm5hbFR4SWQiKQogICAgc3RhdHVzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHByaW1hcnkgc3RhdHVzIG9mIHRoZSB0cmFuc2FjdGlvbi4gRm9yIGRldGFpbHMsIHNlZSBbUHJpbWFyeSB0cmFuc2FjdGlvbiBzdGF0dXNlc10oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS9wcmltYXJ5LXRyYW5zYWN0aW9uLXN0YXR1c2VzKS4iKQogICAgc3ViX3N0YXR1czogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNlZSBbVHJhbnNhY3Rpb24gc3Vic3RhdHVzZXNdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbS9yZWZlcmVuY2UvdHJhbnNhY3Rpb24tc3Vic3RhdHVzZXMpIGZvciB0aGUgbGlzdCBvZiB0cmFuc2FjdGlvbiBzdWIgc3RhdHVzZXMuIiwgYWxpYXM9InN1YlN0YXR1cyIpCiAgICB0eF9oYXNoOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGhhc2ggb2YgdGhlIHRyYW5zYWN0aW9uIG9uIHRoZSBibG9ja2NoYWluLiAgKiBUaGlzIHBhcmFtZXRlciBleGlzdHMgaWYgYXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBpcyBtZXQ6ICAgICAgIDEuIFRoZSB0cmFuc2FjdGlvbuKAmXMgc291cmNlIHR5cGUgaXMgYFVOS05PV05gLCBgV0hJVEVMSVNURURfQUREUkVTU2AsIGBORVRXT1JLX0NPTk5FQ1RJT05gLCBgT05FX1RJTUVfQUREUkVTU2AsIGBGSUFUX0FDQ09VTlRgIG9yIGBHQVNfU1RBVElPTmAuICAgICAgIDIuIFRoZSB0cmFuc2FjdGlvbuKAmXMgc291cmNlIHR5cGUgaXMgYFZBVUxUYCBhbmQgdGhlIHN0YXR1cyBpcyBlaXRoZXI6IGBDT05GSVJNSU5HYCwgYENPTVBMRVRFRGAsIG9yIHdhcyBpbiBhbnkgb2YgdGhlc2Ugc3RhdHVzZXMgcHJpb3IgdG8gY2hhbmdpbmcgdG8gYEZBSUxFRGAgb3IgYFJFSkVDVEVEYC4gSW4gc29tZSBpbnN0YW5jZXMsIHRyYW5zYWN0aW9ucyBpbiBzdGF0dXMgYEJST0FEQ0FTVElOR2Agd2lsbCBpbmNsdWRlIHRoZSB0eEhhc2ggYXMgd2VsbC4gICAgICAgMy4gVGhlIHRyYW5zYWN0aW9u4oCZcyBzb3VyY2UgdHlwZSBpcyBgRVhDSEFOR0VfQUNDT1VOVGAgYW5kIHRoZSB0cmFuc2FjdGlvbuKAmXMgZGVzdGluYXRpb24gdHlwZSBpcyBgVkFVTFRgLCBhbmQgdGhlIHN0YXR1cyBpcyBlaXRoZXI6IGBDT05GSVJNSU5HYCwgYENPTVBMRVRFRGAsIG9yIHdhcyBpbiBhbnkgb2YgdGhlc2Ugc3RhdHVzIHByaW9yIHRvIGNoYW5naW5nIHRvIGBGQUlMRURgLiAgICogSW4gYWRkaXRpb24sIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBtdXN0IGJlIG1ldDogICAgICAxLiBUaGUgYXNzZXQgaXMgYSBjcnlwdG8gYXNzZXQgKG5vdCBmaWF0KS4gICAgICAyLiBUaGUgdHJhbnNhY3Rpb24gb3BlcmF0aW9uIGlzIG5vdCBSQVcgb3IgYFRZUEVEX01FU1NBR0VgLiIsIGFsaWFzPSJ0eEhhc2giKQogICAgb3BlcmF0aW9uOiBPcHRpb25hbFtHZXRUcmFuc2FjdGlvbk9wZXJhdGlvbl0gPSBOb25lCiAgICBub3RlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ3VzdG9tIG5vdGUsIG5vdCBzZW50IHRvIHRoZSBibG9ja2NoYWluLCB0aGF0IGRlc2NyaWJlcyB0aGUgdHJhbnNhY3Rpb24gYXQgeW91ciBGaXJlYmxvY2tzIHdvcmtzcGFjZS4iKQogICAgYXNzZXRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIGFzc2V0IHRvIHRyYW5zZmVyLCBmb3IgYFRSQU5TRkVSYCwgYE1JTlRgLCBgQlVSTmAsIGBFTkFCTEVfQVNTRVRgLGBTVEFLRWAgLGBVTlNUQUtFYCBvciBgV0lUSERSQVdgIG9wZXJhdGlvbnMuIFtTZWUgdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIGFzc2V0cyBhbmQgdGhlaXIgSURzIG9uIEZpcmVibG9ja3MuXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20vcmVmZXJlbmNlL2dldF9zdXBwb3J0ZWQtYXNzZXRzKSIsIGFsaWFzPSJhc3NldElkIikKICAgIGFzc2V0X3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUeXBlIGNsYXNzaWZpY2F0aW9uIG9mIHRoZSBhc3NldCIsIGFsaWFzPSJhc3NldFR5cGUiKQogICAgc291cmNlOiBPcHRpb25hbFtTb3VyY2VUcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2VdID0gTm9uZQogICAgc291cmNlX2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJGb3IgYWNjb3VudCBiYXNlZCBhc3NldHMgb25seSwgdGhlIHNvdXJjZSBhZGRyZXNzIG9mIHRoZSB0cmFuc2FjdGlvbi4gKipOb3RlOioqIElmIHRoZSBzdGF0dXMgaXMgYENPTkZJUk1JTkdgLCBgQ09NUExFVEVEYCwgb3IgaGFzIGJlZW4gYENPTkZJUk1JTkdgOyB0aGVuIG1vdmVkIGZvcndhcmQgdG8gYEZBSUxFRGAgb3IgYFJFSkVDVEVEYCwgdGhlbiB0aGlzIHBhcmFtZXRlciB3aWxsIGNvbnRhaW4gdGhlIHNvdXJjZSBhZGRyZXNzLiBJbiBhbnkgb3RoZXIgY2FzZSwgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBlbXB0eS4iLCBhbGlhcz0ic291cmNlQWRkcmVzcyIpCiAgICB0YWc6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb3VyY2UgYWRkcmVzcyB0YWcgZm9yIFhSUCwgdXNlZCBhcyBtZW1vIGZvciBFT1MvWExNLCBvciBCYW5rIFRyYW5zZmVyIERlc2NyaXB0aW9uIGZvciB0aGUgZmlhdCBwcm92aWRlciBCTElOQyAoYnkgQkNCIEdyb3VwKS4iKQogICAgZGVzdGluYXRpb246IE9wdGlvbmFsW0Rlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlXSA9IE5vbmUKICAgIGRlc3RpbmF0aW9uczogT3B0aW9uYWxbTGlzdFtUcmFuc2FjdGlvblJlc3BvbnNlRGVzdGluYXRpb25dXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSB0cmFuc2FjdGlvbuKAmXMgZGVzdGluYXRpb25zLiAqKk5vdGU6KiogSW4gY2FzZSB0aGUgdHJhbnNhY3Rpb24gaXMgc2VudCB0byBhIHNpbmdsZSBkZXN0aW5hdGlvbiwgdGhlIGBkZXN0aW5hdGlvbmAgcGFyYW1ldGVyIGlzIHVzZWQgaW5zdGVhZCBvZiB0aGlzLiIpCiAgICBkZXN0aW5hdGlvbl9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQWRkcmVzcyB3aGVyZSB0aGUgYXNzZXQgd2VyZSB0cmFuc2ZlcnJlZC4gTm90ZXM6ICAgLSBGb3IgW011bHRpIGRlc3RpbmF0aW9uIHRyYW5zYWN0aW9uc10oaHR0cHM6Ly9zdXBwb3J0LmZpcmVibG9ja3MuaW8vaGMvZW4tdXMvYXJ0aWNsZXMvMzYwMDE4NDQ3OTgwLU11bHRpLWRlc3RpbmF0aW9uLXRyYW5zYWN0aW9ucyksIHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgZW1wdHkuIEluIHRoaXMgY2FzZSwgeW91IHNob3VsZCByZWZlciB0byB0aGUgZGVzdGluYXRpb25zIGZpZWxkLiAgIC0gSWYgdGhlIHN0YXR1cyBpcyBgQ09ORklSTUlOR2AsIGBDT01QTEVURURgLCBvciBoYXMgYmVlbiBgQ09ORklSTUlOR2A7IHRoZW4gbW92ZWQgZm9yd2FyZCB0byBgRkFJTEVEYCBvciBgUkVKRUNURURgLCB0aGVuIHRoaXMgcGFyYW1ldGVyIHdpbGwgY29udGFpbiB0aGUgZGVzdGluYXRpb24gYWRkcmVzcy4gSW4gYW55IG90aGVyIGNhc2UsIHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgZW1wdHkuIiwgYWxpYXM9ImRlc3RpbmF0aW9uQWRkcmVzcyIpCiAgICBkZXN0aW5hdGlvbl9hZGRyZXNzX2Rlc2NyaXB0aW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVzY3JpcHRpb24gb2YgdGhlIGFkZHJlc3MuIiwgYWxpYXM9ImRlc3RpbmF0aW9uQWRkcmVzc0Rlc2NyaXB0aW9uIikKICAgIGRlc3RpbmF0aW9uX3RhZzogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRlc3RpbmF0aW9uIGFkZHJlc3MgdGFnIGZvciBYUlAsIHVzZWQgYXMgbWVtbyBmb3IgRU9TL1hMTSwgb3IgQmFuayBUcmFuc2ZlciBEZXNjcmlwdGlvbiBmb3IgdGhlIGZpYXQgcHJvdmlkZXIgQkxJTkMgKGJ5IEJDQiBHcm91cCkuIiwgYWxpYXM9ImRlc3RpbmF0aW9uVGFnIikKICAgIGNvbnRyYWN0X2NhbGxfZGVjb2RlZF9kYXRhOiBPcHRpb25hbFtUcmFuc2FjdGlvblJlc3BvbnNlQ29udHJhY3RDYWxsRGVjb2RlZERhdGFdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iY29udHJhY3RDYWxsRGVjb2RlZERhdGEiKQogICAgYW1vdW50X2luZm86IE9wdGlvbmFsW0Ftb3VudEluZm9dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYW1vdW50SW5mbyIpCiAgICB0cmVhdF9hc19ncm9zc19hbW91bnQ6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRm9yIHRyYW5zYWN0aW9ucyBpbml0aWF0ZWQgdmlhIHRoaXMgRmlyZWJsb2NrcyB3b3Jrc3BhY2UsIHdoZW4gc2V0IHRvIGB0cnVlYCwgdGhlIGZlZSBpcyBkZWR1Y3RlZCBmcm9tIHRoZSByZXF1ZXN0ZWQgYW1vdW50LiAgKipOb3RlKio6IFRoaXMgcGFyYW1ldGVyIGNhbiBvbmx5IGJlIGNvbnNpZGVyZWQgaWYgYSB0cmFuc2FjdGlvbidzIGFzc2V0IGlzIGEgYmFzZSBhc3NldCwgc3VjaCBhcyBFVEggb3IgTUFUSUMuIElmIHRoZSBhc3NldCBjYW4ndCBiZSB1c2VkIGZvciB0cmFuc2FjdGlvbiBmZWVzLCBsaWtlIFVTREMsIHRoaXMgcGFyYW1ldGVyIGlzIGlnbm9yZWQgYW5kIHRoZSBmZWUgaXMgZGVkdWN0ZWQgZnJvbSB0aGUgcmVsZXZhbnQgYmFzZSBhc3NldCB3YWxsZXQgaW4gdGhlIHNvdXJjZSBhY2NvdW50LiIsIGFsaWFzPSJ0cmVhdEFzR3Jvc3NBbW91bnQiKQogICAgZmVlX2luZm86IE9wdGlvbmFsW0ZlZUluZm9dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZmVlSW5mbyIpCiAgICBmZWVfY3VycmVuY3k6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgYXNzZXQgd2hpY2ggd2FzIHdpdGhkcmF3biB0byBwYXkgdGhlIHRyYW5zYWN0aW9uIGZlZSwgZm9yIGV4YW1wbGUgRVRIIGZvciBFVk0tYmFzZWQgYmxvY2tjaGFpbnMsIEJUQyBmb3IgVGV0aGVyIE9tbmkuIiwgYWxpYXM9ImZlZUN1cnJlbmN5IikKICAgIG5ldHdvcmtfcmVjb3JkczogT3B0aW9uYWxbTGlzdFtOZXR3b3JrUmVjb3JkXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJbiBjYXNlIGEgc2luZ2xlIHRyYW5zYWN0aW9uIHJlc3VsdGVkIHdpdGggbXVsdGlwbGUgdHJhbnNmZXJzLCBmb3IgZXhhbXBsZSBhIHJlc3VsdCBvZiBhIGNvbnRyYWN0IGNhbGwsIHRoZW4gdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGVhY2ggdHJhbnNmZXIgdGhhdCB0b29rIHBsYWNlIG9uIHRoZSBibG9ja2NoYWluLiBJbiBjYXNlIG9mIGEgc2luZ2xlIHRyYW5zZmVyIHRyYW5zYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpcyBlbXB0eS4iLCBhbGlhcz0ibmV0d29ya1JlY29yZHMiKQogICAgY3JlYXRlZF9hdDogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHRyYW5zYWN0aW9u4oCZcyBjcmVhdGlvbiBkYXRlIGFuZCB0aW1lLCBpbiB1bml4IHRpbWVzdGFtcC4iLCBhbGlhcz0iY3JlYXRlZEF0IikKICAgIGxhc3RfdXBkYXRlZDogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHRyYW5zYWN0aW9u4oCZcyBsYXN0IHVwZGF0ZSBkYXRlIGFuZCB0aW1lLCBpbiB1bml4IHRpbWVzdGFtcC4iLCBhbGlhcz0ibGFzdFVwZGF0ZWQiKQogICAgY3JlYXRlZF9ieTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlVzZXIgSUQgb2YgdGhlIGluaXRpYXRvciBvZiB0aGUgdHJhbnNhY3Rpb24uIiwgYWxpYXM9ImNyZWF0ZWRCeSIpCiAgICBzaWduZWRfYnk6IE9wdGlvbmFsW0xpc3RbU3RyaWN0U3RyXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJVc2VyIElE4oCZcyBvZiB0aGUgc2lnbmVycyBvZiB0aGUgdHJhbnNhY3Rpb24uIiwgYWxpYXM9InNpZ25lZEJ5IikKICAgIHJlamVjdGVkX2J5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVXNlciBJRCBvZiB0aGUgdXNlciB0aGF0IHJlamVjdGVkIHRoZSB0cmFuc2FjdGlvbiAoaW4gY2FzZSBpdCB3YXMgcmVqZWN0ZWQpLiIsIGFsaWFzPSJyZWplY3RlZEJ5IikKICAgIGF1dGhvcml6YXRpb25faW5mbzogT3B0aW9uYWxbQXV0aG9yaXphdGlvbkluZm9dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYXV0aG9yaXphdGlvbkluZm8iKQogICAgZXhjaGFuZ2VfdHhfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJZiB0aGUgdHJhbnNhY3Rpb24gb3JpZ2luYXRlZCBmcm9tIGFuIGV4Y2hhbmdlLCB0aGlzIGlzIHRoZSBJRCBvZiB0aGlzIHRyYW5zYWN0aW9uIGF0IHRoZSBleGNoYW5nZS4iLCBhbGlhcz0iZXhjaGFuZ2VUeElkIikKICAgIGN1c3RvbWVyX3JlZl9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBJRCBmb3IgQU1MIHByb3ZpZGVycyB0byBhc3NvY2lhdGUgdGhlIG93bmVyIG9mIGZ1bmRzIHdpdGggdHJhbnNhY3Rpb25zLiIsIGFsaWFzPSJjdXN0b21lclJlZklkIikKICAgIHRyYXZlbF9ydWxlX21lc3NhZ2VfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIHRyYXZlbCBydWxlIG1lc3NhZ2UgZnJvbSBhbnkgdHJhdmVsIHJ1bGUgcHJvdmlkZXIuIFVzZWQgZm9yICB0cmF2ZWwgcnVsZSBzdXBwb3J0aW5nIGZ1bmN0aW9uYWxpdHkgdG8gYXNzb2NpYXRlIHRyYW5zYWN0aW9ucyB3aXRoIGV4aXN0aW5nICB0cmF2ZWwgcnVsZSBtZXNzYWdlcy4iLCBhbGlhcz0idHJhdmVsUnVsZU1lc3NhZ2VJZCIpCiAgICBhbWxfc2NyZWVuaW5nX3Jlc3VsdDogT3B0aW9uYWxbQW1sU2NyZWVuaW5nUmVzdWx0XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImFtbFNjcmVlbmluZ1Jlc3VsdCIpCiAgICBjb21wbGlhbmNlX3Jlc3VsdHM6IE9wdGlvbmFsW0NvbXBsaWFuY2VSZXN1bHRzXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImNvbXBsaWFuY2VSZXN1bHRzIikKICAgIG5vdF9icm9hZGNhc3RfYnlfZmlyZWJsb2NrczogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJbmRpY2F0ZXMgdGhlIHRyYW5zYWN0aW9uIHdhcyBub3QgYnJvYWRjYXN0IGJ5IEZpcmVibG9ja3MiLCBhbGlhcz0ibm90QnJvYWRjYXN0QnlGaXJlYmxvY2tzIikKICAgIGRhcHBfdXJsOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iREFwcCBVUkwgZm9yIFdlYjMgdHJhbnNhY3Rpb25zIiwgYWxpYXM9ImRhcHBVcmwiKQogICAgZ2FzX2xpbWl0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iR2FzIGxpbWl0IGZvciBFVk0tYmFzZWQgYmxvY2tjaGFpbiB0cmFuc2FjdGlvbnMiLCBhbGlhcz0iZ2FzTGltaXQiKQogICAgYmxvY2tjaGFpbl9pbmRleDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkJsb2NrY2hhaW4tc3BlY2lmaWMgaW5kZXggb3IgaWRlbnRpZmllciBmb3IgdGhlIHRyYW5zYWN0aW9uIiwgYWxpYXM9ImJsb2NrY2hhaW5JbmRleCIpCiAgICBwYWlkX3JlbnQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTb2xhbmEgcmVudCBwYXltZW50IGFtb3VudCIsIGFsaWFzPSJwYWlkUmVudCIpCiAgICBleHRyYV9wYXJhbWV0ZXJzOiBPcHRpb25hbFtFeHRyYVBhcmFtZXRlcnNdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZXh0cmFQYXJhbWV0ZXJzIikKICAgIHNpZ25lZF9tZXNzYWdlczogT3B0aW9uYWxbTGlzdFtTaWduZWRNZXNzYWdlXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJzaWduZWRNZXNzYWdlcyIpCiAgICBudW1fb2ZfY29uZmlybWF0aW9uczogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIG51bWJlciBvZiBjb25maXJtYXRpb25zIG9mIHRoZSB0cmFuc2FjdGlvbi4gVGhlIG51bWJlciB3aWxsIGluY3JlYXNlIHVudGlsIHRoZSB0cmFuc2FjdGlvbiB3aWxsIGJlIGNvbnNpZGVyZWQgY29tcGxldGVkIGFjY29yZGluZyB0byB0aGUgY29uZmlybWF0aW9uIHBvbGljeS4iLCBhbGlhcz0ibnVtT2ZDb25maXJtYXRpb25zIikKICAgIGJsb2NrX2luZm86IE9wdGlvbmFsW0Jsb2NrSW5mb10gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJibG9ja0luZm8iKQogICAgaW5kZXg6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkZvciBVVFhPIGJhc2VkIGFzc2V0cyB0aGlzIGlzIHRoZSB2T3V0LCBmb3IgRXRoZXJldW0gYmFzZWQsIHRoaXMgaXMgdGhlIGluZGV4IG9mIHRoZSBldmVudCBvZiB0aGUgY29udHJhY3QgY2FsbC4gICoqTm90ZToqKiBUaGlzIGZpZWxkIGlzIG5vdCByZXR1cm5lZCBpZiBhIHRyYW5zYWN0aW9uIHVzZXMgdGhlIGBkZXN0aW5hdGlvbnNgIG9iamVjdCB3aXRoIG1vcmUgdGhhbiBvbmUgdmFsdWUuIikKICAgIHJld2FyZF9pbmZvOiBPcHRpb25hbFtSZXdhcmRJbmZvXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InJld2FyZEluZm8iKQogICAgZmVlX3BheWVyX2luZm86IE9wdGlvbmFsW0ZlZVBheWVySW5mb10gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJmZWVQYXllckluZm8iKQogICAgc3lzdGVtX21lc3NhZ2VzOiBPcHRpb25hbFtMaXN0W1N5c3RlbU1lc3NhZ2VJbmZvXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJzeXN0ZW1NZXNzYWdlcyIpCiAgICBhZGRyZXNzX3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJhZGRyZXNzVHlwZSIpCiAgICByZXF1ZXN0ZWRfYW1vdW50OiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgYW1vdW50IHJlcXVlc3RlZCBieSB0aGUgdXNlci4gRGVwcmVjYXRlZCAtIHBsZWFzZSB1c2UgdGhlIGBhbW91bnRJbmZvYCBmaWVsZCBmb3IgYWNjdXJhY3kuIiwgYWxpYXM9InJlcXVlc3RlZEFtb3VudCIpCiAgICBhbW91bnQ6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IklmIHRoZSB0cmFuc2ZlciBpcyBhIHdpdGhkcmF3YWwgZnJvbSBhbiBleGNoYW5nZSwgdGhlIGFjdHVhbCBhbW91bnQgdGhhdCB3YXMgcmVxdWVzdGVkIHRvIGJlIHRyYW5zZmVycmVkLiBPdGhlcndpc2UsIHRoZSByZXF1ZXN0ZWQgYW1vdW50LiBEZXByZWNhdGVkIC0gcGxlYXNlIHVzZSB0aGUgYGFtb3VudEluZm9gIGZpZWxkIGZvciBhY2N1cmFjeS4iKQogICAgbmV0X2Ftb3VudDogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIG5ldCBhbW91bnQgb2YgdGhlIHRyYW5zYWN0aW9uLCBhZnRlciBmZWUgZGVkdWN0aW9uLiBEZXByZWNhdGVkIC0gcGxlYXNlIHVzZSB0aGUgYGFtb3VudEluZm9gIGZpZWxkIGZvciBhY2N1cmFjeS4iLCBhbGlhcz0ibmV0QW1vdW50IikKICAgIGFtb3VudF91c2Q6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBVU0QgdmFsdWUgb2YgdGhlIHJlcXVlc3RlZCBhbW91bnQuIERlcHJlY2F0ZWQgLSBwbGVhc2UgdXNlIHRoZSBgYW1vdW50SW5mb2AgZmllbGQgZm9yIGFjY3VyYWN5LiIsIGFsaWFzPSJhbW91bnRVU0QiKQogICAgc2VydmljZV9mZWU6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSB0b3RhbCBmZWUgZGVkdWN0ZWQgYnkgdGhlIGV4Y2hhbmdlIGZyb20gdGhlIGFjdHVhbCByZXF1ZXN0ZWQgYW1vdW50IChgc2VydmljZUZlZWAgPSBgYW1vdW50YCAtIGBuZXRBbW91bnRgKS4gRGVwcmVjYXRlZCAtIHBsZWFzZSB1c2UgdGhlIGBmZWVJbmZvYCBmaWVsZCBmb3IgYWNjdXJhY3kuIiwgYWxpYXM9InNlcnZpY2VGZWUiKQogICAgZmVlOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXByZWNhdGVkIC0gcGxlYXNlIHVzZSB0aGUgYGZlZUluZm9gIGZpZWxkIGZvciBhY2N1cmFjeS4iKQogICAgbmV0d29ya19mZWU6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBmZWUgcGFpZCB0byB0aGUgbmV0d29yay4gRGVwcmVjYXRlZCAtIHBsZWFzZSB1c2UgdGhlIGBmZWVJbmZvYCBmaWVsZCBmb3IgYWNjdXJhY3kuIiwgYWxpYXM9Im5ldHdvcmtGZWUiKQogICAgZXJyb3JfZGVzY3JpcHRpb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgdHJhbnNhY3Rpb24ncyByZXZlcnQgcmVhc29uLiBUaGlzIGZpZWxkIHdpbGwgYmUgcmV0dXJuZWQgd2hlbiAgYHN1YlN0YXR1c2AgPSAgJ1NNQVJUX0NPTlRSQUNUX0VYRUNVVElPTl9GQUlMRUQnLiIsIGFsaWFzPSJlcnJvckRlc2NyaXB0aW9uIikKICAgIHJlcGxhY2VkX3R4X2hhc2g6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJpZiB0aGUgdHJhbnNhY3Rpb24gaXMgYSByZXBsYWNlIGJ5IGZlZSAoUkJGKSB0cmFuc2FjdGlvbiwgdGhpcyBpcyB0aGUgaGFzaCBvZiB0aGUgdHJhbnNzYWN0aW9uIHRoYXQgd2FzIHJlcGxhY2VkIiwgYWxpYXM9InJlcGxhY2VkVHhIYXNoIikKICAgIG5vbmNlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iYmxvY2tjaGFpbiBub25jZSBmb3IgdGhlIHRyYW5zYWN0aW9uIikKICAgIGJsb2NrY2hhaW5faW5mbzogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQSBKU09OIHVzZWQgdG8gc3RvcmUgYWRkaXRpb25hbCBkYXRhIHRoYXQgaXMgYmxvY2tjaGFpbi1zcGVjaWZpYy4iLCBhbGlhcz0iYmxvY2tjaGFpbkluZm8iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJleHRlcm5hbFR4SWQiLCAic3RhdHVzIiwgInN1YlN0YXR1cyIsICJ0eEhhc2giLCAib3BlcmF0aW9uIiwgIm5vdGUiLCAiYXNzZXRJZCIsICJhc3NldFR5cGUiLCAic291cmNlIiwgInNvdXJjZUFkZHJlc3MiLCAidGFnIiwgImRlc3RpbmF0aW9uIiwgImRlc3RpbmF0aW9ucyIsICJkZXN0aW5hdGlvbkFkZHJlc3MiLCAiZGVzdGluYXRpb25BZGRyZXNzRGVzY3JpcHRpb24iLCAiZGVzdGluYXRpb25UYWciLCAiY29udHJhY3RDYWxsRGVjb2RlZERhdGEiLCAiYW1vdW50SW5mbyIsICJ0cmVhdEFzR3Jvc3NBbW91bnQiLCAiZmVlSW5mbyIsICJmZWVDdXJyZW5jeSIsICJuZXR3b3JrUmVjb3JkcyIsICJjcmVhdGVkQXQiLCAibGFzdFVwZGF0ZWQiLCAiY3JlYXRlZEJ5IiwgInNpZ25lZEJ5IiwgInJlamVjdGVkQnkiLCAiYXV0aG9yaXphdGlvbkluZm8iLCAiZXhjaGFuZ2VUeElkIiwgImN1c3RvbWVyUmVmSWQiLCAidHJhdmVsUnVsZU1lc3NhZ2VJZCIsICJhbWxTY3JlZW5pbmdSZXN1bHQiLCAiY29tcGxpYW5jZVJlc3VsdHMiLCAibm90QnJvYWRjYXN0QnlGaXJlYmxvY2tzIiwgImRhcHBVcmwiLCAiZ2FzTGltaXQiLCAiYmxvY2tjaGFpbkluZGV4IiwgInBhaWRSZW50IiwgImV4dHJhUGFyYW1ldGVycyIsICJzaWduZWRNZXNzYWdlcyIsICJudW1PZkNvbmZpcm1hdGlvbnMiLCAiYmxvY2tJbmZvIiwgImluZGV4IiwgInJld2FyZEluZm8iLCAiZmVlUGF5ZXJJbmZvIiwgInN5c3RlbU1lc3NhZ2VzIiwgImFkZHJlc3NUeXBlIiwgInJlcXVlc3RlZEFtb3VudCIsICJhbW91bnQiLCAibmV0QW1vdW50IiwgImFtb3VudFVTRCIsICJzZXJ2aWNlRmVlIiwgImZlZSIsICJuZXR3b3JrRmVlIiwgImVycm9yRGVzY3JpcHRpb24iLCAicmVwbGFjZWRUeEhhc2giLCAibm9uY2UiLCAiYmxvY2tjaGFpbkluZm8iXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ2FkZHJlc3NfdHlwZScpCiAgICBkZWYgYWRkcmVzc190eXBlX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWycnLCAnV0hJVEVMSVNURUQnLCAnT05FX1RJTUUnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnJywgJ1dISVRFTElTVEVEJywgJ09ORV9USU1FJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zYWN0aW9uUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBzb3VyY2UKICAgICAgICBpZiBzZWxmLnNvdXJjZToKICAgICAgICAgICAgX2RpY3RbJ3NvdXJjZSddID0gc2VsZi5zb3VyY2UudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGRlc3RpbmF0aW9uCiAgICAgICAgaWYgc2VsZi5kZXN0aW5hdGlvbjoKICAgICAgICAgICAgX2RpY3RbJ2Rlc3RpbmF0aW9uJ10gPSBzZWxmLmRlc3RpbmF0aW9uLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGVzdGluYXRpb25zIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5kZXN0aW5hdGlvbnM6CiAgICAgICAgICAgIGZvciBfaXRlbV9kZXN0aW5hdGlvbnMgaW4gc2VsZi5kZXN0aW5hdGlvbnM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9kZXN0aW5hdGlvbnM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9kZXN0aW5hdGlvbnMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGVzdGluYXRpb25zJ10gPSBfaXRlbXMKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgY29udHJhY3RfY2FsbF9kZWNvZGVkX2RhdGEKICAgICAgICBpZiBzZWxmLmNvbnRyYWN0X2NhbGxfZGVjb2RlZF9kYXRhOgogICAgICAgICAgICBfZGljdFsnY29udHJhY3RDYWxsRGVjb2RlZERhdGEnXSA9IHNlbGYuY29udHJhY3RfY2FsbF9kZWNvZGVkX2RhdGEudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFtb3VudF9pbmZvCiAgICAgICAgaWYgc2VsZi5hbW91bnRfaW5mbzoKICAgICAgICAgICAgX2RpY3RbJ2Ftb3VudEluZm8nXSA9IHNlbGYuYW1vdW50X2luZm8udG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGZlZV9pbmZvCiAgICAgICAgaWYgc2VsZi5mZWVfaW5mbzoKICAgICAgICAgICAgX2RpY3RbJ2ZlZUluZm8nXSA9IHNlbGYuZmVlX2luZm8udG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBuZXR3b3JrX3JlY29yZHMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLm5ldHdvcmtfcmVjb3JkczoKICAgICAgICAgICAgZm9yIF9pdGVtX25ldHdvcmtfcmVjb3JkcyBpbiBzZWxmLm5ldHdvcmtfcmVjb3JkczoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX25ldHdvcmtfcmVjb3JkczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX25ldHdvcmtfcmVjb3Jkcy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WyduZXR3b3JrUmVjb3JkcyddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGF1dGhvcml6YXRpb25faW5mbwogICAgICAgIGlmIHNlbGYuYXV0aG9yaXphdGlvbl9pbmZvOgogICAgICAgICAgICBfZGljdFsnYXV0aG9yaXphdGlvbkluZm8nXSA9IHNlbGYuYXV0aG9yaXphdGlvbl9pbmZvLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhbWxfc2NyZWVuaW5nX3Jlc3VsdAogICAgICAgIGlmIHNlbGYuYW1sX3NjcmVlbmluZ19yZXN1bHQ6CiAgICAgICAgICAgIF9kaWN0WydhbWxTY3JlZW5pbmdSZXN1bHQnXSA9IHNlbGYuYW1sX3NjcmVlbmluZ19yZXN1bHQudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGNvbXBsaWFuY2VfcmVzdWx0cwogICAgICAgIGlmIHNlbGYuY29tcGxpYW5jZV9yZXN1bHRzOgogICAgICAgICAgICBfZGljdFsnY29tcGxpYW5jZVJlc3VsdHMnXSA9IHNlbGYuY29tcGxpYW5jZV9yZXN1bHRzLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBleHRyYV9wYXJhbWV0ZXJzCiAgICAgICAgaWYgc2VsZi5leHRyYV9wYXJhbWV0ZXJzOgogICAgICAgICAgICBfZGljdFsnZXh0cmFQYXJhbWV0ZXJzJ10gPSBzZWxmLmV4dHJhX3BhcmFtZXRlcnMudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBzaWduZWRfbWVzc2FnZXMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLnNpZ25lZF9tZXNzYWdlczoKICAgICAgICAgICAgZm9yIF9pdGVtX3NpZ25lZF9tZXNzYWdlcyBpbiBzZWxmLnNpZ25lZF9tZXNzYWdlczoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX3NpZ25lZF9tZXNzYWdlczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX3NpZ25lZF9tZXNzYWdlcy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydzaWduZWRNZXNzYWdlcyddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGJsb2NrX2luZm8KICAgICAgICBpZiBzZWxmLmJsb2NrX2luZm86CiAgICAgICAgICAgIF9kaWN0WydibG9ja0luZm8nXSA9IHNlbGYuYmxvY2tfaW5mby50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcmV3YXJkX2luZm8KICAgICAgICBpZiBzZWxmLnJld2FyZF9pbmZvOgogICAgICAgICAgICBfZGljdFsncmV3YXJkSW5mbyddID0gc2VsZi5yZXdhcmRfaW5mby50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZmVlX3BheWVyX2luZm8KICAgICAgICBpZiBzZWxmLmZlZV9wYXllcl9pbmZvOgogICAgICAgICAgICBfZGljdFsnZmVlUGF5ZXJJbmZvJ10gPSBzZWxmLmZlZV9wYXllcl9pbmZvLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gc3lzdGVtX21lc3NhZ2VzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5zeXN0ZW1fbWVzc2FnZXM6CiAgICAgICAgICAgIGZvciBfaXRlbV9zeXN0ZW1fbWVzc2FnZXMgaW4gc2VsZi5zeXN0ZW1fbWVzc2FnZXM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9zeXN0ZW1fbWVzc2FnZXM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9zeXN0ZW1fbWVzc2FnZXMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnc3lzdGVtTWVzc2FnZXMnXSA9IF9pdGVtcwogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgYW1vdW50X3VzZCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYuYW1vdW50X3VzZCBpcyBOb25lIGFuZCAiYW1vdW50X3VzZCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnYW1vdW50VVNEJ10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNhY3Rpb25SZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJleHRlcm5hbFR4SWQiOiBvYmouZ2V0KCJleHRlcm5hbFR4SWQiKSwKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAic3ViU3RhdHVzIjogb2JqLmdldCgic3ViU3RhdHVzIiksCiAgICAgICAgICAgICJ0eEhhc2giOiBvYmouZ2V0KCJ0eEhhc2giKSwKICAgICAgICAgICAgIm9wZXJhdGlvbiI6IG9iai5nZXQoIm9wZXJhdGlvbiIpLAogICAgICAgICAgICAibm90ZSI6IG9iai5nZXQoIm5vdGUiKSwKICAgICAgICAgICAgImFzc2V0SWQiOiBvYmouZ2V0KCJhc3NldElkIiksCiAgICAgICAgICAgICJhc3NldFR5cGUiOiBvYmouZ2V0KCJhc3NldFR5cGUiKSwKICAgICAgICAgICAgInNvdXJjZSI6IFNvdXJjZVRyYW5zZmVyUGVlclBhdGhSZXNwb25zZS5mcm9tX2RpY3Qob2JqWyJzb3VyY2UiXSkgaWYgb2JqLmdldCgic291cmNlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAic291cmNlQWRkcmVzcyI6IG9iai5nZXQoInNvdXJjZUFkZHJlc3MiKSwKICAgICAgICAgICAgInRhZyI6IG9iai5nZXQoInRhZyIpLAogICAgICAgICAgICAiZGVzdGluYXRpb24iOiBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGhSZXNwb25zZS5mcm9tX2RpY3Qob2JqWyJkZXN0aW5hdGlvbiJdKSBpZiBvYmouZ2V0KCJkZXN0aW5hdGlvbiIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImRlc3RpbmF0aW9ucyI6IFtUcmFuc2FjdGlvblJlc3BvbnNlRGVzdGluYXRpb24uZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJkZXN0aW5hdGlvbnMiXV0gaWYgb2JqLmdldCgiZGVzdGluYXRpb25zIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZGVzdGluYXRpb25BZGRyZXNzIjogb2JqLmdldCgiZGVzdGluYXRpb25BZGRyZXNzIiksCiAgICAgICAgICAgICJkZXN0aW5hdGlvbkFkZHJlc3NEZXNjcmlwdGlvbiI6IG9iai5nZXQoImRlc3RpbmF0aW9uQWRkcmVzc0Rlc2NyaXB0aW9uIiksCiAgICAgICAgICAgICJkZXN0aW5hdGlvblRhZyI6IG9iai5nZXQoImRlc3RpbmF0aW9uVGFnIiksCiAgICAgICAgICAgICJjb250cmFjdENhbGxEZWNvZGVkRGF0YSI6IFRyYW5zYWN0aW9uUmVzcG9uc2VDb250cmFjdENhbGxEZWNvZGVkRGF0YS5mcm9tX2RpY3Qob2JqWyJjb250cmFjdENhbGxEZWNvZGVkRGF0YSJdKSBpZiBvYmouZ2V0KCJjb250cmFjdENhbGxEZWNvZGVkRGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImFtb3VudEluZm8iOiBBbW91bnRJbmZvLmZyb21fZGljdChvYmpbImFtb3VudEluZm8iXSkgaWYgb2JqLmdldCgiYW1vdW50SW5mbyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInRyZWF0QXNHcm9zc0Ftb3VudCI6IG9iai5nZXQoInRyZWF0QXNHcm9zc0Ftb3VudCIpLAogICAgICAgICAgICAiZmVlSW5mbyI6IEZlZUluZm8uZnJvbV9kaWN0KG9ialsiZmVlSW5mbyJdKSBpZiBvYmouZ2V0KCJmZWVJbmZvIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZmVlQ3VycmVuY3kiOiBvYmouZ2V0KCJmZWVDdXJyZW5jeSIpLAogICAgICAgICAgICAibmV0d29ya1JlY29yZHMiOiBbTmV0d29ya1JlY29yZC5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbIm5ldHdvcmtSZWNvcmRzIl1dIGlmIG9iai5nZXQoIm5ldHdvcmtSZWNvcmRzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiY3JlYXRlZEF0Ijogb2JqLmdldCgiY3JlYXRlZEF0IiksCiAgICAgICAgICAgICJsYXN0VXBkYXRlZCI6IG9iai5nZXQoImxhc3RVcGRhdGVkIiksCiAgICAgICAgICAgICJjcmVhdGVkQnkiOiBvYmouZ2V0KCJjcmVhdGVkQnkiKSwKICAgICAgICAgICAgInNpZ25lZEJ5Ijogb2JqLmdldCgic2lnbmVkQnkiKSwKICAgICAgICAgICAgInJlamVjdGVkQnkiOiBvYmouZ2V0KCJyZWplY3RlZEJ5IiksCiAgICAgICAgICAgICJhdXRob3JpemF0aW9uSW5mbyI6IEF1dGhvcml6YXRpb25JbmZvLmZyb21fZGljdChvYmpbImF1dGhvcml6YXRpb25JbmZvIl0pIGlmIG9iai5nZXQoImF1dGhvcml6YXRpb25JbmZvIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZXhjaGFuZ2VUeElkIjogb2JqLmdldCgiZXhjaGFuZ2VUeElkIiksCiAgICAgICAgICAgICJjdXN0b21lclJlZklkIjogb2JqLmdldCgiY3VzdG9tZXJSZWZJZCIpLAogICAgICAgICAgICAidHJhdmVsUnVsZU1lc3NhZ2VJZCI6IG9iai5nZXQoInRyYXZlbFJ1bGVNZXNzYWdlSWQiKSwKICAgICAgICAgICAgImFtbFNjcmVlbmluZ1Jlc3VsdCI6IEFtbFNjcmVlbmluZ1Jlc3VsdC5mcm9tX2RpY3Qob2JqWyJhbWxTY3JlZW5pbmdSZXN1bHQiXSkgaWYgb2JqLmdldCgiYW1sU2NyZWVuaW5nUmVzdWx0IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiY29tcGxpYW5jZVJlc3VsdHMiOiBDb21wbGlhbmNlUmVzdWx0cy5mcm9tX2RpY3Qob2JqWyJjb21wbGlhbmNlUmVzdWx0cyJdKSBpZiBvYmouZ2V0KCJjb21wbGlhbmNlUmVzdWx0cyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm5vdEJyb2FkY2FzdEJ5RmlyZWJsb2NrcyI6IG9iai5nZXQoIm5vdEJyb2FkY2FzdEJ5RmlyZWJsb2NrcyIpLAogICAgICAgICAgICAiZGFwcFVybCI6IG9iai5nZXQoImRhcHBVcmwiKSwKICAgICAgICAgICAgImdhc0xpbWl0Ijogb2JqLmdldCgiZ2FzTGltaXQiKSwKICAgICAgICAgICAgImJsb2NrY2hhaW5JbmRleCI6IG9iai5nZXQoImJsb2NrY2hhaW5JbmRleCIpLAogICAgICAgICAgICAicGFpZFJlbnQiOiBvYmouZ2V0KCJwYWlkUmVudCIpLAogICAgICAgICAgICAiZXh0cmFQYXJhbWV0ZXJzIjogRXh0cmFQYXJhbWV0ZXJzLmZyb21fZGljdChvYmpbImV4dHJhUGFyYW1ldGVycyJdKSBpZiBvYmouZ2V0KCJleHRyYVBhcmFtZXRlcnMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJzaWduZWRNZXNzYWdlcyI6IFtTaWduZWRNZXNzYWdlLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsic2lnbmVkTWVzc2FnZXMiXV0gaWYgb2JqLmdldCgic2lnbmVkTWVzc2FnZXMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJudW1PZkNvbmZpcm1hdGlvbnMiOiBvYmouZ2V0KCJudW1PZkNvbmZpcm1hdGlvbnMiKSwKICAgICAgICAgICAgImJsb2NrSW5mbyI6IEJsb2NrSW5mby5mcm9tX2RpY3Qob2JqWyJibG9ja0luZm8iXSkgaWYgb2JqLmdldCgiYmxvY2tJbmZvIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiaW5kZXgiOiBvYmouZ2V0KCJpbmRleCIpLAogICAgICAgICAgICAicmV3YXJkSW5mbyI6IFJld2FyZEluZm8uZnJvbV9kaWN0KG9ialsicmV3YXJkSW5mbyJdKSBpZiBvYmouZ2V0KCJyZXdhcmRJbmZvIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZmVlUGF5ZXJJbmZvIjogRmVlUGF5ZXJJbmZvLmZyb21fZGljdChvYmpbImZlZVBheWVySW5mbyJdKSBpZiBvYmouZ2V0KCJmZWVQYXllckluZm8iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJzeXN0ZW1NZXNzYWdlcyI6IFtTeXN0ZW1NZXNzYWdlSW5mby5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbInN5c3RlbU1lc3NhZ2VzIl1dIGlmIG9iai5nZXQoInN5c3RlbU1lc3NhZ2VzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiYWRkcmVzc1R5cGUiOiBvYmouZ2V0KCJhZGRyZXNzVHlwZSIpLAogICAgICAgICAgICAicmVxdWVzdGVkQW1vdW50Ijogb2JqLmdldCgicmVxdWVzdGVkQW1vdW50IiksCiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKSwKICAgICAgICAgICAgIm5ldEFtb3VudCI6IG9iai5nZXQoIm5ldEFtb3VudCIpLAogICAgICAgICAgICAiYW1vdW50VVNEIjogb2JqLmdldCgiYW1vdW50VVNEIiksCiAgICAgICAgICAgICJzZXJ2aWNlRmVlIjogb2JqLmdldCgic2VydmljZUZlZSIpLAogICAgICAgICAgICAiZmVlIjogb2JqLmdldCgiZmVlIiksCiAgICAgICAgICAgICJuZXR3b3JrRmVlIjogb2JqLmdldCgibmV0d29ya0ZlZSIpLAogICAgICAgICAgICAiZXJyb3JEZXNjcmlwdGlvbiI6IG9iai5nZXQoImVycm9yRGVzY3JpcHRpb24iKSwKICAgICAgICAgICAgInJlcGxhY2VkVHhIYXNoIjogb2JqLmdldCgicmVwbGFjZWRUeEhhc2giKSwKICAgICAgICAgICAgIm5vbmNlIjogb2JqLmdldCgibm9uY2UiKSwKICAgICAgICAgICAgImJsb2NrY2hhaW5JbmZvIjogb2JqLmdldCgiYmxvY2tjaGFpbkluZm8iKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/transaction_response_contract_call_decoded_data.py b/fireblocks/models/transaction_response_contract_call_decoded_data.py index 864dbc5a..01a34651 100644 --- a/fireblocks/models/transaction_response_contract_call_decoded_data.py +++ b/fireblocks/models/transaction_response_contract_call_decoded_data.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TransactionResponseContractCallDecodedData(BaseModel): - """ - Decoded data for `CONTRACT_CALL` operations. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for setting this parameter's value. - """ # noqa: E501 - contract_name: Optional[StrictStr] = Field(default=None, alias="contractName") - function_calls: Optional[List[Dict[str, Any]]] = Field(default=None, alias="functionCalls") - __properties: ClassVar[List[str]] = ["contractName", "functionCalls"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TransactionResponseContractCallDecodedData from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TransactionResponseContractCallDecodedData from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "contractName": obj.get("contractName"), - "functionCalls": obj.get("functionCalls") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmFuc2FjdGlvblJlc3BvbnNlQ29udHJhY3RDYWxsRGVjb2RlZERhdGEoQmFzZU1vZGVsKToKICAgICIiIgogICAgRGVjb2RlZCBkYXRhIGZvciBgQ09OVFJBQ1RfQ0FMTGAgb3BlcmF0aW9ucy4gVGhlIEZpcmVibG9ja3MgW2RldmVsb3BtZW50IGxpYnJhcmllc10oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL2RvY3MvZXRoZXJldW0tZGV2ZWxvcG1lbnQjY29udmVuaWVuY2UtbGlicmFyaWVzKSBhcmUgcmVjb21tZW5kZWQgZm9yIHNldHRpbmcgdGhpcyBwYXJhbWV0ZXIncyB2YWx1ZS4KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGNvbnRyYWN0X25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJjb250cmFjdE5hbWUiKQogICAgZnVuY3Rpb25fY2FsbHM6IE9wdGlvbmFsW0xpc3RbRGljdFtzdHIsIEFueV1dXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImZ1bmN0aW9uQ2FsbHMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJjb250cmFjdE5hbWUiLCAiZnVuY3Rpb25DYWxscyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNhY3Rpb25SZXNwb25zZUNvbnRyYWN0Q2FsbERlY29kZWREYXRhIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zYWN0aW9uUmVzcG9uc2VDb250cmFjdENhbGxEZWNvZGVkRGF0YSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJjb250cmFjdE5hbWUiOiBvYmouZ2V0KCJjb250cmFjdE5hbWUiKSwKICAgICAgICAgICAgImZ1bmN0aW9uQ2FsbHMiOiBvYmouZ2V0KCJmdW5jdGlvbkNhbGxzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/transaction_response_destination.py b/fireblocks/models/transaction_response_destination.py index 8c4eeb69..c9f0b393 100644 --- a/fireblocks/models/transaction_response_destination.py +++ b/fireblocks/models/transaction_response_destination.py @@ -1,110 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.aml_screening_result import AmlScreeningResult -from fireblocks.models.authorization_info import AuthorizationInfo -from fireblocks.models.destination_transfer_peer_path_response import DestinationTransferPeerPathResponse -from typing import Optional, Set -from typing_extensions import Self - -class TransactionResponseDestination(BaseModel): - """ - TransactionResponseDestination - """ # noqa: E501 - amount: Optional[StrictStr] = Field(default=None, description="The amount to be sent to this destination.") - amount_usd: Optional[StrictStr] = Field(default=None, description="The USD value of the requested amount.", alias="amountUSD") - travel_rule_message_id: Optional[StrictStr] = Field(default=None, description="The ID of the travel rule message from any travel rule provider. Used for travel rule supporting functionality to associate transactions with existing travel rule messages.", alias="travelRuleMessageId") - aml_screening_result: Optional[AmlScreeningResult] = Field(default=None, alias="amlScreeningResult") - destination: Optional[DestinationTransferPeerPathResponse] = None - authorization_info: Optional[AuthorizationInfo] = Field(default=None, alias="authorizationInfo") - __properties: ClassVar[List[str]] = ["amount", "amountUSD", "travelRuleMessageId", "amlScreeningResult", "destination", "authorizationInfo"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TransactionResponseDestination from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of aml_screening_result - if self.aml_screening_result: - _dict['amlScreeningResult'] = self.aml_screening_result.to_dict() - # override the default output from pydantic by calling `to_dict()` of destination - if self.destination: - _dict['destination'] = self.destination.to_dict() - # override the default output from pydantic by calling `to_dict()` of authorization_info - if self.authorization_info: - _dict['authorizationInfo'] = self.authorization_info.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TransactionResponseDestination from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": obj.get("amount"), - "amountUSD": obj.get("amountUSD"), - "travelRuleMessageId": obj.get("travelRuleMessageId"), - "amlScreeningResult": AmlScreeningResult.from_dict(obj["amlScreeningResult"]) if obj.get("amlScreeningResult") is not None else None, - "destination": DestinationTransferPeerPathResponse.from_dict(obj["destination"]) if obj.get("destination") is not None else None, - "authorizationInfo": AuthorizationInfo.from_dict(obj["authorizationInfo"]) if obj.get("authorizationInfo") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF9zY3JlZW5pbmdfcmVzdWx0IGltcG9ydCBBbWxTY3JlZW5pbmdSZXN1bHQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hdXRob3JpemF0aW9uX2luZm8gaW1wb3J0IEF1dGhvcml6YXRpb25JbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzdGluYXRpb25fdHJhbnNmZXJfcGVlcl9wYXRoX3Jlc3BvbnNlIGltcG9ydCBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGhSZXNwb25zZQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmFuc2FjdGlvblJlc3BvbnNlRGVzdGluYXRpb24oQmFzZU1vZGVsKToKICAgICIiIgogICAgVHJhbnNhY3Rpb25SZXNwb25zZURlc3RpbmF0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBhbW91bnQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgYW1vdW50IHRvIGJlIHNlbnQgdG8gdGhpcyBkZXN0aW5hdGlvbi4iKQogICAgYW1vdW50X3VzZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBVU0QgdmFsdWUgb2YgdGhlIHJlcXVlc3RlZCBhbW91bnQuIiwgYWxpYXM9ImFtb3VudFVTRCIpCiAgICB0cmF2ZWxfcnVsZV9tZXNzYWdlX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB0cmF2ZWwgcnVsZSBtZXNzYWdlIGZyb20gYW55IHRyYXZlbCBydWxlIHByb3ZpZGVyLiBVc2VkIGZvciAgdHJhdmVsIHJ1bGUgc3VwcG9ydGluZyBmdW5jdGlvbmFsaXR5IHRvIGFzc29jaWF0ZSB0cmFuc2FjdGlvbnMgd2l0aCBleGlzdGluZyAgdHJhdmVsIHJ1bGUgbWVzc2FnZXMuIiwgYWxpYXM9InRyYXZlbFJ1bGVNZXNzYWdlSWQiKQogICAgYW1sX3NjcmVlbmluZ19yZXN1bHQ6IE9wdGlvbmFsW0FtbFNjcmVlbmluZ1Jlc3VsdF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJhbWxTY3JlZW5pbmdSZXN1bHQiKQogICAgZGVzdGluYXRpb246IE9wdGlvbmFsW0Rlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlXSA9IE5vbmUKICAgIGF1dGhvcml6YXRpb25faW5mbzogT3B0aW9uYWxbQXV0aG9yaXphdGlvbkluZm9dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYXV0aG9yaXphdGlvbkluZm8iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhbW91bnQiLCAiYW1vdW50VVNEIiwgInRyYXZlbFJ1bGVNZXNzYWdlSWQiLCAiYW1sU2NyZWVuaW5nUmVzdWx0IiwgImRlc3RpbmF0aW9uIiwgImF1dGhvcml6YXRpb25JbmZvIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2FjdGlvblJlc3BvbnNlRGVzdGluYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhbWxfc2NyZWVuaW5nX3Jlc3VsdAogICAgICAgIGlmIHNlbGYuYW1sX3NjcmVlbmluZ19yZXN1bHQ6CiAgICAgICAgICAgIF9kaWN0WydhbWxTY3JlZW5pbmdSZXN1bHQnXSA9IHNlbGYuYW1sX3NjcmVlbmluZ19yZXN1bHQudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGRlc3RpbmF0aW9uCiAgICAgICAgaWYgc2VsZi5kZXN0aW5hdGlvbjoKICAgICAgICAgICAgX2RpY3RbJ2Rlc3RpbmF0aW9uJ10gPSBzZWxmLmRlc3RpbmF0aW9uLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhdXRob3JpemF0aW9uX2luZm8KICAgICAgICBpZiBzZWxmLmF1dGhvcml6YXRpb25faW5mbzoKICAgICAgICAgICAgX2RpY3RbJ2F1dGhvcml6YXRpb25JbmZvJ10gPSBzZWxmLmF1dGhvcml6YXRpb25faW5mby50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zYWN0aW9uUmVzcG9uc2VEZXN0aW5hdGlvbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKSwKICAgICAgICAgICAgImFtb3VudFVTRCI6IG9iai5nZXQoImFtb3VudFVTRCIpLAogICAgICAgICAgICAidHJhdmVsUnVsZU1lc3NhZ2VJZCI6IG9iai5nZXQoInRyYXZlbFJ1bGVNZXNzYWdlSWQiKSwKICAgICAgICAgICAgImFtbFNjcmVlbmluZ1Jlc3VsdCI6IEFtbFNjcmVlbmluZ1Jlc3VsdC5mcm9tX2RpY3Qob2JqWyJhbWxTY3JlZW5pbmdSZXN1bHQiXSkgaWYgb2JqLmdldCgiYW1sU2NyZWVuaW5nUmVzdWx0IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZGVzdGluYXRpb24iOiBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGhSZXNwb25zZS5mcm9tX2RpY3Qob2JqWyJkZXN0aW5hdGlvbiJdKSBpZiBvYmouZ2V0KCJkZXN0aW5hdGlvbiIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImF1dGhvcml6YXRpb25JbmZvIjogQXV0aG9yaXphdGlvbkluZm8uZnJvbV9kaWN0KG9ialsiYXV0aG9yaXphdGlvbkluZm8iXSkgaWYgb2JqLmdldCgiYXV0aG9yaXphdGlvbkluZm8iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/transfer_config_operation.py b/fireblocks/models/transfer_config_operation.py index 30f3abd2..5948aebd 100644 --- a/fireblocks/models/transfer_config_operation.py +++ b/fireblocks/models/transfer_config_operation.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.config_operation_status import ConfigOperationStatus -from fireblocks.models.transfer_operation_config_params import TransferOperationConfigParams -from fireblocks.models.transfer_operation_type import TransferOperationType -from fireblocks.models.transfer_validation_failure import TransferValidationFailure -from typing import Optional, Set -from typing_extensions import Self - -class TransferConfigOperation(BaseModel): - """ - TransferConfigOperation - """ # noqa: E501 - operation_id: StrictStr = Field(alias="operationId") - type: TransferOperationType - params: TransferOperationConfigParams - status: ConfigOperationStatus - validation_failure: Optional[TransferValidationFailure] = Field(default=None, alias="validationFailure") - __properties: ClassVar[List[str]] = ["operationId", "type", "params", "status", "validationFailure"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TransferConfigOperation from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of params - if self.params: - _dict['params'] = self.params.to_dict() - # override the default output from pydantic by calling `to_dict()` of validation_failure - if self.validation_failure: - _dict['validationFailure'] = self.validation_failure.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TransferConfigOperation from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "operationId": obj.get("operationId"), - "type": obj.get("type"), - "params": TransferOperationConfigParams.from_dict(obj["params"]) if obj.get("params") is not None else None, - "status": obj.get("status"), - "validationFailure": TransferValidationFailure.from_dict(obj["validationFailure"]) if obj.get("validationFailure") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbmZpZ19vcGVyYXRpb25fc3RhdHVzIGltcG9ydCBDb25maWdPcGVyYXRpb25TdGF0dXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fY29uZmlnX3BhcmFtcyBpbXBvcnQgVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fdHlwZSBpbXBvcnQgVHJhbnNmZXJPcGVyYXRpb25UeXBlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfdmFsaWRhdGlvbl9mYWlsdXJlIGltcG9ydCBUcmFuc2ZlclZhbGlkYXRpb25GYWlsdXJlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBvcGVyYXRpb25faWQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJvcGVyYXRpb25JZCIpCiAgICB0eXBlOiBUcmFuc2Zlck9wZXJhdGlvblR5cGUKICAgIHBhcmFtczogVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMKICAgIHN0YXR1czogQ29uZmlnT3BlcmF0aW9uU3RhdHVzCiAgICB2YWxpZGF0aW9uX2ZhaWx1cmU6IE9wdGlvbmFsW1RyYW5zZmVyVmFsaWRhdGlvbkZhaWx1cmVdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0idmFsaWRhdGlvbkZhaWx1cmUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJvcGVyYXRpb25JZCIsICJ0eXBlIiwgInBhcmFtcyIsICJzdGF0dXMiLCAidmFsaWRhdGlvbkZhaWx1cmUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgcGFyYW1zCiAgICAgICAgaWYgc2VsZi5wYXJhbXM6CiAgICAgICAgICAgIF9kaWN0WydwYXJhbXMnXSA9IHNlbGYucGFyYW1zLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiB2YWxpZGF0aW9uX2ZhaWx1cmUKICAgICAgICBpZiBzZWxmLnZhbGlkYXRpb25fZmFpbHVyZToKICAgICAgICAgICAgX2RpY3RbJ3ZhbGlkYXRpb25GYWlsdXJlJ10gPSBzZWxmLnZhbGlkYXRpb25fZmFpbHVyZS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm9wZXJhdGlvbklkIjogb2JqLmdldCgib3BlcmF0aW9uSWQiKSwKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIiksCiAgICAgICAgICAgICJwYXJhbXMiOiBUcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcy5mcm9tX2RpY3Qob2JqWyJwYXJhbXMiXSkgaWYgb2JqLmdldCgicGFyYW1zIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAic3RhdHVzIjogb2JqLmdldCgic3RhdHVzIiksCiAgICAgICAgICAgICJ2YWxpZGF0aW9uRmFpbHVyZSI6IFRyYW5zZmVyVmFsaWRhdGlvbkZhaWx1cmUuZnJvbV9kaWN0KG9ialsidmFsaWRhdGlvbkZhaWx1cmUiXSkgaWYgb2JqLmdldCgidmFsaWRhdGlvbkZhaWx1cmUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/transfer_operation_config_params.py b/fireblocks/models/transfer_operation_config_params.py index 4a00f107..29a3da69 100644 --- a/fireblocks/models/transfer_operation_config_params.py +++ b/fireblocks/models/transfer_operation_config_params.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.account import Account -from fireblocks.models.destination import Destination -from typing import Optional, Set -from typing_extensions import Self - -class TransferOperationConfigParams(BaseModel): - """ - TransferOperationConfigParams - """ # noqa: E501 - amount: Optional[StrictStr] = None - asset_id: Optional[StrictStr] = Field(default=None, alias="assetId") - source: Optional[Account] = None - destination: Destination - __properties: ClassVar[List[str]] = ["amount", "assetId", "source", "destination"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TransferOperationConfigParams from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of source - if self.source: - _dict['source'] = self.source.to_dict() - # override the default output from pydantic by calling `to_dict()` of destination - if self.destination: - _dict['destination'] = self.destination.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TransferOperationConfigParams from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": obj.get("amount"), - "assetId": obj.get("assetId"), - "source": Account.from_dict(obj["source"]) if obj.get("source") is not None else None, - "destination": Destination.from_dict(obj["destination"]) if obj.get("destination") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnQgaW1wb3J0IEFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZXN0aW5hdGlvbiBpbXBvcnQgRGVzdGluYXRpb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMoQmFzZU1vZGVsKToKICAgICIiIgogICAgVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFtb3VudDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIGFzc2V0X2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYXNzZXRJZCIpCiAgICBzb3VyY2U6IE9wdGlvbmFsW0FjY291bnRdID0gTm9uZQogICAgZGVzdGluYXRpb246IERlc3RpbmF0aW9uCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFtb3VudCIsICJhc3NldElkIiwgInNvdXJjZSIsICJkZXN0aW5hdGlvbiJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBzb3VyY2UKICAgICAgICBpZiBzZWxmLnNvdXJjZToKICAgICAgICAgICAgX2RpY3RbJ3NvdXJjZSddID0gc2VsZi5zb3VyY2UudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGRlc3RpbmF0aW9uCiAgICAgICAgaWYgc2VsZi5kZXN0aW5hdGlvbjoKICAgICAgICAgICAgX2RpY3RbJ2Rlc3RpbmF0aW9uJ10gPSBzZWxmLmRlc3RpbmF0aW9uLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYW1vdW50Ijogb2JqLmdldCgiYW1vdW50IiksCiAgICAgICAgICAgICJhc3NldElkIjogb2JqLmdldCgiYXNzZXRJZCIpLAogICAgICAgICAgICAic291cmNlIjogQWNjb3VudC5mcm9tX2RpY3Qob2JqWyJzb3VyY2UiXSkgaWYgb2JqLmdldCgic291cmNlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZGVzdGluYXRpb24iOiBEZXN0aW5hdGlvbi5mcm9tX2RpY3Qob2JqWyJkZXN0aW5hdGlvbiJdKSBpZiBvYmouZ2V0KCJkZXN0aW5hdGlvbiIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/transfer_operation_execution.py b/fireblocks/models/transfer_operation_execution.py index 2fd62b97..7024410d 100644 --- a/fireblocks/models/transfer_operation_execution.py +++ b/fireblocks/models/transfer_operation_execution.py @@ -1,110 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.transfer_operation_config_params import TransferOperationConfigParams -from fireblocks.models.transfer_operation_execution_output import TransferOperationExecutionOutput -from fireblocks.models.transfer_operation_failure import TransferOperationFailure -from typing import Optional, Set -from typing_extensions import Self - -class TransferOperationExecution(BaseModel): - """ - TransferOperationExecution - """ # noqa: E501 - input: TransferOperationConfigParams - output: Optional[TransferOperationExecutionOutput] = None - tx_id: Optional[StrictStr] = Field(default=None, alias="txId") - started_at: Union[StrictFloat, StrictInt] = Field(alias="startedAt") - finished_at: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="finishedAt") - failure: Optional[TransferOperationFailure] = None - __properties: ClassVar[List[str]] = ["input", "output", "txId", "startedAt", "finishedAt", "failure"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TransferOperationExecution from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of input - if self.input: - _dict['input'] = self.input.to_dict() - # override the default output from pydantic by calling `to_dict()` of output - if self.output: - _dict['output'] = self.output.to_dict() - # override the default output from pydantic by calling `to_dict()` of failure - if self.failure: - _dict['failure'] = self.failure.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TransferOperationExecution from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "input": TransferOperationConfigParams.from_dict(obj["input"]) if obj.get("input") is not None else None, - "output": TransferOperationExecutionOutput.from_dict(obj["output"]) if obj.get("output") is not None else None, - "txId": obj.get("txId"), - "startedAt": obj.get("startedAt"), - "finishedAt": obj.get("finishedAt"), - "failure": TransferOperationFailure.from_dict(obj["failure"]) if obj.get("failure") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fY29uZmlnX3BhcmFtcyBpbXBvcnQgVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dCBpbXBvcnQgVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fZmFpbHVyZSBpbXBvcnQgVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpbnB1dDogVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMKICAgIG91dHB1dDogT3B0aW9uYWxbVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25PdXRwdXRdID0gTm9uZQogICAgdHhfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJ0eElkIikKICAgIHN0YXJ0ZWRfYXQ6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoYWxpYXM9InN0YXJ0ZWRBdCIpCiAgICBmaW5pc2hlZF9hdDogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZmluaXNoZWRBdCIpCiAgICBmYWlsdXJlOiBPcHRpb25hbFtUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmVdID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpbnB1dCIsICJvdXRwdXQiLCAidHhJZCIsICJzdGFydGVkQXQiLCAiZmluaXNoZWRBdCIsICJmYWlsdXJlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGlucHV0CiAgICAgICAgaWYgc2VsZi5pbnB1dDoKICAgICAgICAgICAgX2RpY3RbJ2lucHV0J10gPSBzZWxmLmlucHV0LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBvdXRwdXQKICAgICAgICBpZiBzZWxmLm91dHB1dDoKICAgICAgICAgICAgX2RpY3RbJ291dHB1dCddID0gc2VsZi5vdXRwdXQudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGZhaWx1cmUKICAgICAgICBpZiBzZWxmLmZhaWx1cmU6CiAgICAgICAgICAgIF9kaWN0WydmYWlsdXJlJ10gPSBzZWxmLmZhaWx1cmUudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpbnB1dCI6IFRyYW5zZmVyT3BlcmF0aW9uQ29uZmlnUGFyYW1zLmZyb21fZGljdChvYmpbImlucHV0Il0pIGlmIG9iai5nZXQoImlucHV0IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAib3V0cHV0IjogVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQuZnJvbV9kaWN0KG9ialsib3V0cHV0Il0pIGlmIG9iai5nZXQoIm91dHB1dCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInR4SWQiOiBvYmouZ2V0KCJ0eElkIiksCiAgICAgICAgICAgICJzdGFydGVkQXQiOiBvYmouZ2V0KCJzdGFydGVkQXQiKSwKICAgICAgICAgICAgImZpbmlzaGVkQXQiOiBvYmouZ2V0KCJmaW5pc2hlZEF0IiksCiAgICAgICAgICAgICJmYWlsdXJlIjogVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlLmZyb21fZGljdChvYmpbImZhaWx1cmUiXSkgaWYgb2JqLmdldCgiZmFpbHVyZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/transfer_operation_execution_output.py b/fireblocks/models/transfer_operation_execution_output.py index db95a2e4..3a48129d 100644 --- a/fireblocks/models/transfer_operation_execution_output.py +++ b/fireblocks/models/transfer_operation_execution_output.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List -from fireblocks.models.asset_amount import AssetAmount -from typing import Optional, Set -from typing_extensions import Self - -class TransferOperationExecutionOutput(BaseModel): - """ - TransferOperationExecutionOutput - """ # noqa: E501 - amount: AssetAmount - fee: AssetAmount - __properties: ClassVar[List[str]] = ["amount", "fee"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TransferOperationExecutionOutput from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - # override the default output from pydantic by calling `to_dict()` of fee - if self.fee: - _dict['fee'] = self.fee.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TransferOperationExecutionOutput from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": AssetAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "fee": AssetAmount.from_dict(obj["fee"]) if obj.get("fee") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfYW1vdW50IGltcG9ydCBBc3NldEFtb3VudApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dAogICAgIiIiICMgbm9xYTogRTUwMQogICAgYW1vdW50OiBBc3NldEFtb3VudAogICAgZmVlOiBBc3NldEFtb3VudAogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhbW91bnQiLCAiZmVlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFtb3VudAogICAgICAgIGlmIHNlbGYuYW1vdW50OgogICAgICAgICAgICBfZGljdFsnYW1vdW50J10gPSBzZWxmLmFtb3VudC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZmVlCiAgICAgICAgaWYgc2VsZi5mZWU6CiAgICAgICAgICAgIF9kaWN0WydmZWUnXSA9IHNlbGYuZmVlLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYW1vdW50IjogQXNzZXRBbW91bnQuZnJvbV9kaWN0KG9ialsiYW1vdW50Il0pIGlmIG9iai5nZXQoImFtb3VudCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImZlZSI6IEFzc2V0QW1vdW50LmZyb21fZGljdChvYmpbImZlZSJdKSBpZiBvYmouZ2V0KCJmZWUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/transfer_operation_execution_params.py b/fireblocks/models/transfer_operation_execution_params.py index 65fc2381..1ed03327 100644 --- a/fireblocks/models/transfer_operation_execution_params.py +++ b/fireblocks/models/transfer_operation_execution_params.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.transfer_operation_execution_params_execution_params import TransferOperationExecutionParamsExecutionParams -from typing import Optional, Set -from typing_extensions import Self - -class TransferOperationExecutionParams(BaseModel): - """ - TransferOperationExecutionParams - """ # noqa: E501 - config_operation_id: StrictStr = Field(alias="configOperationId") - execution_params: Optional[TransferOperationExecutionParamsExecutionParams] = Field(default=None, alias="executionParams") - __properties: ClassVar[List[str]] = ["configOperationId", "executionParams"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TransferOperationExecutionParams from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of execution_params - if self.execution_params: - _dict['executionParams'] = self.execution_params.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TransferOperationExecutionParams from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "configOperationId": obj.get("configOperationId"), - "executionParams": TransferOperationExecutionParamsExecutionParams.from_dict(obj["executionParams"]) if obj.get("executionParams") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9leGVjdXRpb25fcGFyYW1zX2V4ZWN1dGlvbl9wYXJhbXMgaW1wb3J0IFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBjb25maWdfb3BlcmF0aW9uX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChhbGlhcz0iY29uZmlnT3BlcmF0aW9uSWQiKQogICAgZXhlY3V0aW9uX3BhcmFtczogT3B0aW9uYWxbVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXNdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZXhlY3V0aW9uUGFyYW1zIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiY29uZmlnT3BlcmF0aW9uSWQiLCAiZXhlY3V0aW9uUGFyYW1zIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGV4ZWN1dGlvbl9wYXJhbXMKICAgICAgICBpZiBzZWxmLmV4ZWN1dGlvbl9wYXJhbXM6CiAgICAgICAgICAgIF9kaWN0WydleGVjdXRpb25QYXJhbXMnXSA9IHNlbGYuZXhlY3V0aW9uX3BhcmFtcy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImNvbmZpZ09wZXJhdGlvbklkIjogb2JqLmdldCgiY29uZmlnT3BlcmF0aW9uSWQiKSwKICAgICAgICAgICAgImV4ZWN1dGlvblBhcmFtcyI6IFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zLmZyb21fZGljdChvYmpbImV4ZWN1dGlvblBhcmFtcyJdKSBpZiBvYmouZ2V0KCJleGVjdXRpb25QYXJhbXMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/transfer_operation_execution_params_execution_params.py b/fireblocks/models/transfer_operation_execution_params_execution_params.py index a344fc17..613a3538 100644 --- a/fireblocks/models/transfer_operation_execution_params_execution_params.py +++ b/fireblocks/models/transfer_operation_execution_params_execution_params.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.account import Account -from fireblocks.models.destination import Destination -from typing import Optional, Set -from typing_extensions import Self - -class TransferOperationExecutionParamsExecutionParams(BaseModel): - """ - TransferOperationExecutionParamsExecutionParams - """ # noqa: E501 - amount: Optional[StrictStr] = None - asset_id: Optional[StrictStr] = Field(default=None, alias="assetId") - source: Optional[Account] = None - destination: Optional[Destination] = None - __properties: ClassVar[List[str]] = ["amount", "assetId", "source", "destination"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TransferOperationExecutionParamsExecutionParams from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of source - if self.source: - _dict['source'] = self.source.to_dict() - # override the default output from pydantic by calling `to_dict()` of destination - if self.destination: - _dict['destination'] = self.destination.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TransferOperationExecutionParamsExecutionParams from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": obj.get("amount"), - "assetId": obj.get("assetId"), - "source": Account.from_dict(obj["source"]) if obj.get("source") is not None else None, - "destination": Destination.from_dict(obj["destination"]) if obj.get("destination") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnQgaW1wb3J0IEFjY291bnQKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5kZXN0aW5hdGlvbiBpbXBvcnQgRGVzdGluYXRpb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMoQmFzZU1vZGVsKToKICAgICIiIgogICAgVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFtb3VudDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIGFzc2V0X2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYXNzZXRJZCIpCiAgICBzb3VyY2U6IE9wdGlvbmFsW0FjY291bnRdID0gTm9uZQogICAgZGVzdGluYXRpb246IE9wdGlvbmFsW0Rlc3RpbmF0aW9uXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYW1vdW50IiwgImFzc2V0SWQiLCAic291cmNlIiwgImRlc3RpbmF0aW9uIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtcyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHNvdXJjZQogICAgICAgIGlmIHNlbGYuc291cmNlOgogICAgICAgICAgICBfZGljdFsnc291cmNlJ10gPSBzZWxmLnNvdXJjZS50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZGVzdGluYXRpb24KICAgICAgICBpZiBzZWxmLmRlc3RpbmF0aW9uOgogICAgICAgICAgICBfZGljdFsnZGVzdGluYXRpb24nXSA9IHNlbGYuZGVzdGluYXRpb24udG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtcyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKSwKICAgICAgICAgICAgImFzc2V0SWQiOiBvYmouZ2V0KCJhc3NldElkIiksCiAgICAgICAgICAgICJzb3VyY2UiOiBBY2NvdW50LmZyb21fZGljdChvYmpbInNvdXJjZSJdKSBpZiBvYmouZ2V0KCJzb3VyY2UiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJkZXN0aW5hdGlvbiI6IERlc3RpbmF0aW9uLmZyb21fZGljdChvYmpbImRlc3RpbmF0aW9uIl0pIGlmIG9iai5nZXQoImRlc3RpbmF0aW9uIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/transfer_operation_failure.py b/fireblocks/models/transfer_operation_failure.py index 80822d59..58e1ce7d 100644 --- a/fireblocks/models/transfer_operation_failure.py +++ b/fireblocks/models/transfer_operation_failure.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.transfer_operation_failure_data import TransferOperationFailureData -from typing import Optional, Set -from typing_extensions import Self - -class TransferOperationFailure(BaseModel): - """ - TransferOperationFailure - """ # noqa: E501 - reason: StrictStr - data: Optional[TransferOperationFailureData] = None - __properties: ClassVar[List[str]] = ["reason", "data"] - - @field_validator('reason') - def reason_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['INVALID_AMOUNT', 'SUBMISSION_FAILED', 'TRANSACTION_FAILED']): - raise ValueError("must be one of enum values ('INVALID_AMOUNT', 'SUBMISSION_FAILED', 'TRANSACTION_FAILED')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TransferOperationFailure from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of data - if self.data: - _dict['data'] = self.data.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TransferOperationFailure from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "reason": obj.get("reason"), - "data": TransferOperationFailureData.from_dict(obj["data"]) if obj.get("data") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fZmFpbHVyZV9kYXRhIGltcG9ydCBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmVEYXRhCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRyYW5zZmVyT3BlcmF0aW9uRmFpbHVyZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmUKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHJlYXNvbjogU3RyaWN0U3RyCiAgICBkYXRhOiBPcHRpb25hbFtUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmVEYXRhXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicmVhc29uIiwgImRhdGEiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3JlYXNvbicpCiAgICBkZWYgcmVhc29uX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0lOVkFMSURfQU1PVU5UJywgJ1NVQk1JU1NJT05fRkFJTEVEJywgJ1RSQU5TQUNUSU9OX0ZBSUxFRCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdJTlZBTElEX0FNT1VOVCcsICdTVUJNSVNTSU9OX0ZBSUxFRCcsICdUUkFOU0FDVElPTl9GQUlMRUQnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZGF0YQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgX2RpY3RbJ2RhdGEnXSA9IHNlbGYuZGF0YS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zZmVyT3BlcmF0aW9uRmFpbHVyZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJyZWFzb24iOiBvYmouZ2V0KCJyZWFzb24iKSwKICAgICAgICAgICAgImRhdGEiOiBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmVEYXRhLmZyb21fZGljdChvYmpbImRhdGEiXSkgaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/transfer_operation_failure_data.py b/fireblocks/models/transfer_operation_failure_data.py index 8f038012..5e199f87 100644 --- a/fireblocks/models/transfer_operation_failure_data.py +++ b/fireblocks/models/transfer_operation_failure_data.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TransferOperationFailureData(BaseModel): - """ - TransferOperationFailureData - """ # noqa: E501 - tx_id: StrictStr = Field(alias="txId") - tx_status: StrictStr = Field(alias="txStatus") - tx_sub_status: Optional[StrictStr] = Field(default=None, alias="txSubStatus") - __properties: ClassVar[List[str]] = ["txId", "txStatus", "txSubStatus"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TransferOperationFailureData from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TransferOperationFailureData from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "txId": obj.get("txId"), - "txStatus": obj.get("txStatus"), - "txSubStatus": obj.get("txSubStatus") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmVEYXRhKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRyYW5zZmVyT3BlcmF0aW9uRmFpbHVyZURhdGEKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR4X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChhbGlhcz0idHhJZCIpCiAgICB0eF9zdGF0dXM6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJ0eFN0YXR1cyIpCiAgICB0eF9zdWJfc3RhdHVzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0idHhTdWJTdGF0dXMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eElkIiwgInR4U3RhdHVzIiwgInR4U3ViU3RhdHVzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmVEYXRhIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zZmVyT3BlcmF0aW9uRmFpbHVyZURhdGEgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHhJZCI6IG9iai5nZXQoInR4SWQiKSwKICAgICAgICAgICAgInR4U3RhdHVzIjogb2JqLmdldCgidHhTdGF0dXMiKSwKICAgICAgICAgICAgInR4U3ViU3RhdHVzIjogb2JqLmdldCgidHhTdWJTdGF0dXMiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/transfer_operation_preview.py b/fireblocks/models/transfer_operation_preview.py index 60f544b1..b5bb0c87 100644 --- a/fireblocks/models/transfer_operation_preview.py +++ b/fireblocks/models/transfer_operation_preview.py @@ -1,104 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.transfer_operation_config_params import TransferOperationConfigParams -from fireblocks.models.transfer_operation_failure import TransferOperationFailure -from fireblocks.models.transfer_operation_preview_output import TransferOperationPreviewOutput -from typing import Optional, Set -from typing_extensions import Self - -class TransferOperationPreview(BaseModel): - """ - TransferOperationPreview - """ # noqa: E501 - input: TransferOperationConfigParams - output: Optional[TransferOperationPreviewOutput] = None - failure: Optional[TransferOperationFailure] = None - __properties: ClassVar[List[str]] = ["input", "output", "failure"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TransferOperationPreview from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of input - if self.input: - _dict['input'] = self.input.to_dict() - # override the default output from pydantic by calling `to_dict()` of output - if self.output: - _dict['output'] = self.output.to_dict() - # override the default output from pydantic by calling `to_dict()` of failure - if self.failure: - _dict['failure'] = self.failure.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TransferOperationPreview from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "input": TransferOperationConfigParams.from_dict(obj["input"]) if obj.get("input") is not None else None, - "output": TransferOperationPreviewOutput.from_dict(obj["output"]) if obj.get("output") is not None else None, - "failure": TransferOperationFailure.from_dict(obj["failure"]) if obj.get("failure") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9jb25maWdfcGFyYW1zIGltcG9ydCBUcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9mYWlsdXJlIGltcG9ydCBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmUKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fcHJldmlld19vdXRwdXQgaW1wb3J0IFRyYW5zZmVyT3BlcmF0aW9uUHJldmlld091dHB1dApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmFuc2Zlck9wZXJhdGlvblByZXZpZXcoQmFzZU1vZGVsKToKICAgICIiIgogICAgVHJhbnNmZXJPcGVyYXRpb25QcmV2aWV3CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpbnB1dDogVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMKICAgIG91dHB1dDogT3B0aW9uYWxbVHJhbnNmZXJPcGVyYXRpb25QcmV2aWV3T3V0cHV0XSA9IE5vbmUKICAgIGZhaWx1cmU6IE9wdGlvbmFsW1RyYW5zZmVyT3BlcmF0aW9uRmFpbHVyZV0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlucHV0IiwgIm91dHB1dCIsICJmYWlsdXJlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2Zlck9wZXJhdGlvblByZXZpZXcgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBpbnB1dAogICAgICAgIGlmIHNlbGYuaW5wdXQ6CiAgICAgICAgICAgIF9kaWN0WydpbnB1dCddID0gc2VsZi5pbnB1dC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2Ygb3V0cHV0CiAgICAgICAgaWYgc2VsZi5vdXRwdXQ6CiAgICAgICAgICAgIF9kaWN0WydvdXRwdXQnXSA9IHNlbGYub3V0cHV0LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBmYWlsdXJlCiAgICAgICAgaWYgc2VsZi5mYWlsdXJlOgogICAgICAgICAgICBfZGljdFsnZmFpbHVyZSddID0gc2VsZi5mYWlsdXJlLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNmZXJPcGVyYXRpb25QcmV2aWV3IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlucHV0IjogVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMuZnJvbV9kaWN0KG9ialsiaW5wdXQiXSkgaWYgb2JqLmdldCgiaW5wdXQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJvdXRwdXQiOiBUcmFuc2Zlck9wZXJhdGlvblByZXZpZXdPdXRwdXQuZnJvbV9kaWN0KG9ialsib3V0cHV0Il0pIGlmIG9iai5nZXQoIm91dHB1dCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImZhaWx1cmUiOiBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmUuZnJvbV9kaWN0KG9ialsiZmFpbHVyZSJdKSBpZiBvYmouZ2V0KCJmYWlsdXJlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/transfer_operation_preview_output.py b/fireblocks/models/transfer_operation_preview_output.py index 4d93d1e4..56c3c7ae 100644 --- a/fireblocks/models/transfer_operation_preview_output.py +++ b/fireblocks/models/transfer_operation_preview_output.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt -from typing import Any, ClassVar, Dict, List, Union -from fireblocks.models.asset_amount import AssetAmount -from typing import Optional, Set -from typing_extensions import Self - -class TransferOperationPreviewOutput(BaseModel): - """ - TransferOperationPreviewOutput - """ # noqa: E501 - amount: AssetAmount - fee: AssetAmount - is_sign_required: StrictBool = Field(alias="isSignRequired") - time_seconds: Union[StrictFloat, StrictInt] = Field(alias="timeSeconds") - __properties: ClassVar[List[str]] = ["amount", "fee", "isSignRequired", "timeSeconds"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TransferOperationPreviewOutput from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of amount - if self.amount: - _dict['amount'] = self.amount.to_dict() - # override the default output from pydantic by calling `to_dict()` of fee - if self.fee: - _dict['fee'] = self.fee.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TransferOperationPreviewOutput from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "amount": AssetAmount.from_dict(obj["amount"]) if obj.get("amount") is not None else None, - "fee": AssetAmount.from_dict(obj["fee"]) if obj.get("fee") is not None else None, - "isSignRequired": obj.get("isSignRequired"), - "timeSeconds": obj.get("timeSeconds") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQgaW1wb3J0IEFzc2V0QW1vdW50CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRyYW5zZmVyT3BlcmF0aW9uUHJldmlld091dHB1dChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUcmFuc2Zlck9wZXJhdGlvblByZXZpZXdPdXRwdXQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFtb3VudDogQXNzZXRBbW91bnQKICAgIGZlZTogQXNzZXRBbW91bnQKICAgIGlzX3NpZ25fcmVxdWlyZWQ6IFN0cmljdEJvb2wgPSBGaWVsZChhbGlhcz0iaXNTaWduUmVxdWlyZWQiKQogICAgdGltZV9zZWNvbmRzOiBVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XSA9IEZpZWxkKGFsaWFzPSJ0aW1lU2Vjb25kcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFtb3VudCIsICJmZWUiLCAiaXNTaWduUmVxdWlyZWQiLCAidGltZVNlY29uZHMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zZmVyT3BlcmF0aW9uUHJldmlld091dHB1dCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFtb3VudAogICAgICAgIGlmIHNlbGYuYW1vdW50OgogICAgICAgICAgICBfZGljdFsnYW1vdW50J10gPSBzZWxmLmFtb3VudC50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZmVlCiAgICAgICAgaWYgc2VsZi5mZWU6CiAgICAgICAgICAgIF9kaWN0WydmZWUnXSA9IHNlbGYuZmVlLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNmZXJPcGVyYXRpb25QcmV2aWV3T3V0cHV0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFtb3VudCI6IEFzc2V0QW1vdW50LmZyb21fZGljdChvYmpbImFtb3VudCJdKSBpZiBvYmouZ2V0KCJhbW91bnQiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJmZWUiOiBBc3NldEFtb3VudC5mcm9tX2RpY3Qob2JqWyJmZWUiXSkgaWYgb2JqLmdldCgiZmVlIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiaXNTaWduUmVxdWlyZWQiOiBvYmouZ2V0KCJpc1NpZ25SZXF1aXJlZCIpLAogICAgICAgICAgICAidGltZVNlY29uZHMiOiBvYmouZ2V0KCJ0aW1lU2Vjb25kcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/transfer_operation_type.py b/fireblocks/models/transfer_operation_type.py index 3cf3ad9a..e7dbb9ba 100644 --- a/fireblocks/models/transfer_operation_type.py +++ b/fireblocks/models/transfer_operation_type.py @@ -1,37 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TransferOperationType(str, Enum): - """ - TransferOperationType - """ - - """ - allowed enum values - """ - TRANSFER = 'TRANSFER' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TransferOperationType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUcmFuc2Zlck9wZXJhdGlvblR5cGUoc3RyLCBFbnVtKToKICAgICIiIgogICAgVHJhbnNmZXJPcGVyYXRpb25UeXBlCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgVFJBTlNGRVIgPSAnVFJBTlNGRVInCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNmZXJPcGVyYXRpb25UeXBlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/transfer_peer_path_sub_type.py b/fireblocks/models/transfer_peer_path_sub_type.py index d2247c8b..d68dbdae 100644 --- a/fireblocks/models/transfer_peer_path_sub_type.py +++ b/fireblocks/models/transfer_peer_path_sub_type.py @@ -1,68 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TransferPeerPathSubType(str, Enum): - """ - TransferPeerPathSubType - """ - - """ - allowed enum values - """ - BINANCE = 'BINANCE' - BINANCEUS = 'BINANCEUS' - BITFINEX = 'BITFINEX' - BITHUMB = 'BITHUMB' - BITMEX = 'BITMEX' - BITSO = 'BITSO' - BITSTAMP = 'BITSTAMP' - BITTREX = 'BITTREX' - BLINC = 'BLINC' - BYBIT = 'BYBIT' - CIRCLE = 'CIRCLE' - COINBASEEXCHANGE = 'COINBASEEXCHANGE' - COINBASEPRO = 'COINBASEPRO' - COINMETRO = 'COINMETRO' - COINSPRO = 'COINSPRO' - CRYPTOCOM = 'CRYPTOCOM' - DERIBIT = 'DERIBIT' - GEMINI = 'GEMINI' - HITBTC = 'HITBTC' - HUOBI = 'HUOBI' - INDEPENDENTRESERVE = 'INDEPENDENTRESERVE' - KORBIT = 'KORBIT' - KRAKEN = 'KRAKEN' - KRAKENINTL = 'KRAKENINTL' - KUCOIN = 'KUCOIN' - LIQUID = 'LIQUID' - OKCOIN = 'OKCOIN' - OKEX = 'OKEX' - PAXOS = 'PAXOS' - POLONIEX = 'POLONIEX' - EXTERNAL = 'External' - INTERNAL = 'Internal' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TransferPeerPathSubType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUcmFuc2ZlclBlZXJQYXRoU3ViVHlwZShzdHIsIEVudW0pOgogICAgIiIiCiAgICBUcmFuc2ZlclBlZXJQYXRoU3ViVHlwZQogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIEJJTkFOQ0UgPSAnQklOQU5DRScKICAgIEJJTkFOQ0VVUyA9ICdCSU5BTkNFVVMnCiAgICBCSVRGSU5FWCA9ICdCSVRGSU5FWCcKICAgIEJJVEhVTUIgPSAnQklUSFVNQicKICAgIEJJVE1FWCA9ICdCSVRNRVgnCiAgICBCSVRTTyA9ICdCSVRTTycKICAgIEJJVFNUQU1QID0gJ0JJVFNUQU1QJwogICAgQklUVFJFWCA9ICdCSVRUUkVYJwogICAgQkxJTkMgPSAnQkxJTkMnCiAgICBCWUJJVCA9ICdCWUJJVCcKICAgIENJUkNMRSA9ICdDSVJDTEUnCiAgICBDT0lOQkFTRUVYQ0hBTkdFID0gJ0NPSU5CQVNFRVhDSEFOR0UnCiAgICBDT0lOQkFTRVBSTyA9ICdDT0lOQkFTRVBSTycKICAgIENPSU5NRVRSTyA9ICdDT0lOTUVUUk8nCiAgICBDT0lOU1BSTyA9ICdDT0lOU1BSTycKICAgIENSWVBUT0NPTSA9ICdDUllQVE9DT00nCiAgICBERVJJQklUID0gJ0RFUklCSVQnCiAgICBHRU1JTkkgPSAnR0VNSU5JJwogICAgSElUQlRDID0gJ0hJVEJUQycKICAgIEhVT0JJID0gJ0hVT0JJJwogICAgSU5ERVBFTkRFTlRSRVNFUlZFID0gJ0lOREVQRU5ERU5UUkVTRVJWRScKICAgIEtPUkJJVCA9ICdLT1JCSVQnCiAgICBLUkFLRU4gPSAnS1JBS0VOJwogICAgS1JBS0VOSU5UTCA9ICdLUkFLRU5JTlRMJwogICAgS1VDT0lOID0gJ0tVQ09JTicKICAgIExJUVVJRCA9ICdMSVFVSUQnCiAgICBPS0NPSU4gPSAnT0tDT0lOJwogICAgT0tFWCA9ICdPS0VYJwogICAgUEFYT1MgPSAnUEFYT1MnCiAgICBQT0xPTklFWCA9ICdQT0xPTklFWCcKICAgIEVYVEVSTkFMID0gJ0V4dGVybmFsJwogICAgSU5URVJOQUwgPSAnSW50ZXJuYWwnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNmZXJQZWVyUGF0aFN1YlR5cGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/transfer_peer_path_type.py b/fireblocks/models/transfer_peer_path_type.py index 654c88a6..649a8194 100644 --- a/fireblocks/models/transfer_peer_path_type.py +++ b/fireblocks/models/transfer_peer_path_type.py @@ -1,51 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TransferPeerPathType(str, Enum): - """ - TransferPeerPathType - """ - - """ - allowed enum values - """ - VAULT_ACCOUNT = 'VAULT_ACCOUNT' - EXCHANGE_ACCOUNT = 'EXCHANGE_ACCOUNT' - INTERNAL_WALLET = 'INTERNAL_WALLET' - EXTERNAL_WALLET = 'EXTERNAL_WALLET' - CONTRACT = 'CONTRACT' - NETWORK_CONNECTION = 'NETWORK_CONNECTION' - FIAT_ACCOUNT = 'FIAT_ACCOUNT' - COMPOUND = 'COMPOUND' - GAS_STATION = 'GAS_STATION' - ONE_TIME_ADDRESS = 'ONE_TIME_ADDRESS' - UNKNOWN = 'UNKNOWN' - END_USER_WALLET = 'END_USER_WALLET' - PROGRAM_CALL = 'PROGRAM_CALL' - MULTI_DESTINATION = 'MULTI_DESTINATION' - OEC_PARTNER = 'OEC_PARTNER' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TransferPeerPathType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUcmFuc2ZlclBlZXJQYXRoVHlwZShzdHIsIEVudW0pOgogICAgIiIiCiAgICBUcmFuc2ZlclBlZXJQYXRoVHlwZQogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIFZBVUxUX0FDQ09VTlQgPSAnVkFVTFRfQUNDT1VOVCcKICAgIEVYQ0hBTkdFX0FDQ09VTlQgPSAnRVhDSEFOR0VfQUNDT1VOVCcKICAgIElOVEVSTkFMX1dBTExFVCA9ICdJTlRFUk5BTF9XQUxMRVQnCiAgICBFWFRFUk5BTF9XQUxMRVQgPSAnRVhURVJOQUxfV0FMTEVUJwogICAgQ09OVFJBQ1QgPSAnQ09OVFJBQ1QnCiAgICBORVRXT1JLX0NPTk5FQ1RJT04gPSAnTkVUV09SS19DT05ORUNUSU9OJwogICAgRklBVF9BQ0NPVU5UID0gJ0ZJQVRfQUNDT1VOVCcKICAgIENPTVBPVU5EID0gJ0NPTVBPVU5EJwogICAgR0FTX1NUQVRJT04gPSAnR0FTX1NUQVRJT04nCiAgICBPTkVfVElNRV9BRERSRVNTID0gJ09ORV9USU1FX0FERFJFU1MnCiAgICBVTktOT1dOID0gJ1VOS05PV04nCiAgICBFTkRfVVNFUl9XQUxMRVQgPSAnRU5EX1VTRVJfV0FMTEVUJwogICAgUFJPR1JBTV9DQUxMID0gJ1BST0dSQU1fQ0FMTCcKICAgIE1VTFRJX0RFU1RJTkFUSU9OID0gJ01VTFRJX0RFU1RJTkFUSU9OJwogICAgT0VDX1BBUlRORVIgPSAnT0VDX1BBUlRORVInCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNmZXJQZWVyUGF0aFR5cGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/transfer_peer_sub_type_enum.py b/fireblocks/models/transfer_peer_sub_type_enum.py index a44fb3b0..8533ab8c 100644 --- a/fireblocks/models/transfer_peer_sub_type_enum.py +++ b/fireblocks/models/transfer_peer_sub_type_enum.py @@ -1,40 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TransferPeerSubTypeEnum(str, Enum): - """ - Transfer peer sub-type for prescreening rules - """ - - """ - allowed enum values - """ - EXTERNAL = 'EXTERNAL' - INTERNAL = 'INTERNAL' - CONTRACT = 'CONTRACT' - EXCHANGETEST = 'EXCHANGETEST' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TransferPeerSubTypeEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUcmFuc2ZlclBlZXJTdWJUeXBlRW51bShzdHIsIEVudW0pOgogICAgIiIiCiAgICBUcmFuc2ZlciBwZWVyIHN1Yi10eXBlIGZvciBwcmVzY3JlZW5pbmcgcnVsZXMKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBFWFRFUk5BTCA9ICdFWFRFUk5BTCcKICAgIElOVEVSTkFMID0gJ0lOVEVSTkFMJwogICAgQ09OVFJBQ1QgPSAnQ09OVFJBQ1QnCiAgICBFWENIQU5HRVRFU1QgPSAnRVhDSEFOR0VURVNUJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zZmVyUGVlclN1YlR5cGVFbnVtIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/transfer_peer_type_enum.py b/fireblocks/models/transfer_peer_type_enum.py index f0a44c8e..acd68094 100644 --- a/fireblocks/models/transfer_peer_type_enum.py +++ b/fireblocks/models/transfer_peer_type_enum.py @@ -1,50 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TransferPeerTypeEnum(str, Enum): - """ - Transfer peer type (source or destination) - """ - - """ - allowed enum values - """ - VAULT_ACCOUNT = 'VAULT_ACCOUNT' - EXCHANGE_ACCOUNT = 'EXCHANGE_ACCOUNT' - INTERNAL_WALLET = 'INTERNAL_WALLET' - EXTERNAL_WALLET = 'EXTERNAL_WALLET' - CONTRACT = 'CONTRACT' - NETWORK_CONNECTION = 'NETWORK_CONNECTION' - FIAT_ACCOUNT = 'FIAT_ACCOUNT' - COMPOUND = 'COMPOUND' - GAS_STATION = 'GAS_STATION' - ONE_TIME_ADDRESS = 'ONE_TIME_ADDRESS' - UNKNOWN = 'UNKNOWN' - END_USER_WALLET = 'END_USER_WALLET' - PROGRAM_CALL = 'PROGRAM_CALL' - MULTI_DESTINATION = 'MULTI_DESTINATION' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TransferPeerTypeEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUcmFuc2ZlclBlZXJUeXBlRW51bShzdHIsIEVudW0pOgogICAgIiIiCiAgICBUcmFuc2ZlciBwZWVyIHR5cGUgKHNvdXJjZSBvciBkZXN0aW5hdGlvbikKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBWQVVMVF9BQ0NPVU5UID0gJ1ZBVUxUX0FDQ09VTlQnCiAgICBFWENIQU5HRV9BQ0NPVU5UID0gJ0VYQ0hBTkdFX0FDQ09VTlQnCiAgICBJTlRFUk5BTF9XQUxMRVQgPSAnSU5URVJOQUxfV0FMTEVUJwogICAgRVhURVJOQUxfV0FMTEVUID0gJ0VYVEVSTkFMX1dBTExFVCcKICAgIENPTlRSQUNUID0gJ0NPTlRSQUNUJwogICAgTkVUV09SS19DT05ORUNUSU9OID0gJ05FVFdPUktfQ09OTkVDVElPTicKICAgIEZJQVRfQUNDT1VOVCA9ICdGSUFUX0FDQ09VTlQnCiAgICBDT01QT1VORCA9ICdDT01QT1VORCcKICAgIEdBU19TVEFUSU9OID0gJ0dBU19TVEFUSU9OJwogICAgT05FX1RJTUVfQUREUkVTUyA9ICdPTkVfVElNRV9BRERSRVNTJwogICAgVU5LTk9XTiA9ICdVTktOT1dOJwogICAgRU5EX1VTRVJfV0FMTEVUID0gJ0VORF9VU0VSX1dBTExFVCcKICAgIFBST0dSQU1fQ0FMTCA9ICdQUk9HUkFNX0NBTEwnCiAgICBNVUxUSV9ERVNUSU5BVElPTiA9ICdNVUxUSV9ERVNUSU5BVElPTicKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmFuc2ZlclBlZXJUeXBlRW51bSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/transfer_rail.py b/fireblocks/models/transfer_rail.py index a8638731..b308e8e2 100644 --- a/fireblocks/models/transfer_rail.py +++ b/fireblocks/models/transfer_rail.py @@ -1,52 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TransferRail(str, Enum): - """ - Transfer rail: * **BLOCKCHAIN** - Transfer over the public blockchain * **INTERNAL** - Internal transfer within the same account (e.g. sub-accounts or same api key) * **PEER** - Peer transfer within the same provider network * **SWIFT** - International wire transfer * **IBAN** - International Bank Account Number transfer * **US_WIRE** - Domestic wire transfer within the United States (e.g. FedWire) * **ACH** - Automated Clearing House transfer, typically takes longer but not as expensive as wire transfers * **SEPA** - Euro transfers within the SEPA zone * **SPEI** - Mexican interbank electronic payment system * **PIX** - Brazilian instant payment system * **LOCAL_BANK_TRANSFER_AFRICA** - Local bank transfers within Africa * **MOBILE_MONEY** - Mobile money transfers (e.g. M-Pesa) * **INTERNAL_TRANSFER** - Internal transfer within the same account * **INTERAC** - Canadian interbank transfer system * **PAYID** - Australian PayID payment system * **CHAPS** - The Clearing House Automated Payment System (CHAPS) is a real-time gross settlement payment system used for transactions in the United Kingdom - """ - - """ - allowed enum values - """ - BLOCKCHAIN = 'BLOCKCHAIN' - INTERNAL = 'INTERNAL' - PEER = 'PEER' - SWIFT = 'SWIFT' - IBAN = 'IBAN' - US_WIRE = 'US_WIRE' - ACH = 'ACH' - SEPA = 'SEPA' - SPEI = 'SPEI' - PIX = 'PIX' - LOCAL_BANK_TRANSFER_AFRICA = 'LOCAL_BANK_TRANSFER_AFRICA' - MOBILE_MONEY = 'MOBILE_MONEY' - INTERNAL_TRANSFER = 'INTERNAL_TRANSFER' - INTERAC = 'INTERAC' - PAYID = 'PAYID' - CHAPS = 'CHAPS' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TransferRail from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUcmFuc2ZlclJhaWwoc3RyLCBFbnVtKToKICAgICIiIgogICAgVHJhbnNmZXIgcmFpbDogICogKipCTE9DS0NIQUlOKiogLSBUcmFuc2ZlciBvdmVyIHRoZSBwdWJsaWMgYmxvY2tjaGFpbiAqICoqSU5URVJOQUwqKiAtIEludGVybmFsIHRyYW5zZmVyIHdpdGhpbiB0aGUgc2FtZSBhY2NvdW50IChlLmcuIHN1Yi1hY2NvdW50cyBvciBzYW1lIGFwaSBrZXkpICogKipQRUVSKiogLSBQZWVyIHRyYW5zZmVyIHdpdGhpbiB0aGUgc2FtZSBwcm92aWRlciBuZXR3b3JrICogKipTV0lGVCoqIC0gSW50ZXJuYXRpb25hbCB3aXJlIHRyYW5zZmVyICogKipJQkFOKiogLSBJbnRlcm5hdGlvbmFsIEJhbmsgQWNjb3VudCBOdW1iZXIgdHJhbnNmZXIgKiAqKlVTX1dJUkUqKiAtIERvbWVzdGljIHdpcmUgdHJhbnNmZXIgd2l0aGluIHRoZSBVbml0ZWQgU3RhdGVzIChlLmcuIEZlZFdpcmUpICogKipBQ0gqKiAtIEF1dG9tYXRlZCBDbGVhcmluZyBIb3VzZSB0cmFuc2ZlciwgdHlwaWNhbGx5IHRha2VzIGxvbmdlciBidXQgbm90IGFzIGV4cGVuc2l2ZSBhcyB3aXJlIHRyYW5zZmVycyAqICoqU0VQQSoqIC0gRXVybyB0cmFuc2ZlcnMgd2l0aGluIHRoZSBTRVBBIHpvbmUgKiAqKlNQRUkqKiAtIE1leGljYW4gaW50ZXJiYW5rIGVsZWN0cm9uaWMgcGF5bWVudCBzeXN0ZW0gKiAqKlBJWCoqIC0gQnJhemlsaWFuIGluc3RhbnQgcGF5bWVudCBzeXN0ZW0gKiAqKkxPQ0FMX0JBTktfVFJBTlNGRVJfQUZSSUNBKiogLSBMb2NhbCBiYW5rIHRyYW5zZmVycyB3aXRoaW4gQWZyaWNhICogKipNT0JJTEVfTU9ORVkqKiAtIE1vYmlsZSBtb25leSB0cmFuc2ZlcnMgKGUuZy4gTS1QZXNhKSAqICoqSU5URVJOQUxfVFJBTlNGRVIqKiAtIEludGVybmFsIHRyYW5zZmVyIHdpdGhpbiB0aGUgc2FtZSBhY2NvdW50ICogKipJTlRFUkFDKiogLSBDYW5hZGlhbiBpbnRlcmJhbmsgdHJhbnNmZXIgc3lzdGVtICogKipQQVlJRCoqIC0gQXVzdHJhbGlhbiBQYXlJRCBwYXltZW50IHN5c3RlbSAqICoqQ0hBUFMqKiAtIFRoZSBDbGVhcmluZyBIb3VzZSBBdXRvbWF0ZWQgUGF5bWVudCBTeXN0ZW0gKENIQVBTKSBpcyBhIHJlYWwtdGltZSBncm9zcyBzZXR0bGVtZW50IHBheW1lbnQgc3lzdGVtIHVzZWQgZm9yIHRyYW5zYWN0aW9ucyBpbiB0aGUgVW5pdGVkIEtpbmdkb20gCiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgQkxPQ0tDSEFJTiA9ICdCTE9DS0NIQUlOJwogICAgSU5URVJOQUwgPSAnSU5URVJOQUwnCiAgICBQRUVSID0gJ1BFRVInCiAgICBTV0lGVCA9ICdTV0lGVCcKICAgIElCQU4gPSAnSUJBTicKICAgIFVTX1dJUkUgPSAnVVNfV0lSRScKICAgIEFDSCA9ICdBQ0gnCiAgICBTRVBBID0gJ1NFUEEnCiAgICBTUEVJID0gJ1NQRUknCiAgICBQSVggPSAnUElYJwogICAgTE9DQUxfQkFOS19UUkFOU0ZFUl9BRlJJQ0EgPSAnTE9DQUxfQkFOS19UUkFOU0ZFUl9BRlJJQ0EnCiAgICBNT0JJTEVfTU9ORVkgPSAnTU9CSUxFX01PTkVZJwogICAgSU5URVJOQUxfVFJBTlNGRVIgPSAnSU5URVJOQUxfVFJBTlNGRVInCiAgICBJTlRFUkFDID0gJ0lOVEVSQUMnCiAgICBQQVlJRCA9ICdQQVlJRCcKICAgIENIQVBTID0gJ0NIQVBTJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zZmVyUmFpbCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/transfer_receipt.py b/fireblocks/models/transfer_receipt.py index c36e6a7d..40f75807 100644 --- a/fireblocks/models/transfer_receipt.py +++ b/fireblocks/models/transfer_receipt.py @@ -1,141 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.blockchain_transfer import BlockchainTransfer -from fireblocks.models.fiat_transfer import FiatTransfer -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -TRANSFERRECEIPT_ONE_OF_SCHEMAS = ["BlockchainTransfer", "FiatTransfer"] - -class TransferReceipt(BaseModel): - """ - TransferReceipt - """ - # data type: BlockchainTransfer - oneof_schema_1_validator: Optional[BlockchainTransfer] = None - # data type: FiatTransfer - oneof_schema_2_validator: Optional[FiatTransfer] = None - actual_instance: Optional[Union[BlockchainTransfer, FiatTransfer]] = None - one_of_schemas: Set[str] = { "BlockchainTransfer", "FiatTransfer" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - discriminator_value_class_map: Dict[str, str] = { - } - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = TransferReceipt.model_construct() - error_messages = [] - match = 0 - # validate data type: BlockchainTransfer - if not isinstance(v, BlockchainTransfer): - error_messages.append(f"Error! Input type `{type(v)}` is not `BlockchainTransfer`") - else: - match += 1 - # validate data type: FiatTransfer - if not isinstance(v, FiatTransfer): - error_messages.append(f"Error! Input type `{type(v)}` is not `FiatTransfer`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in TransferReceipt with oneOf schemas: BlockchainTransfer, FiatTransfer. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in TransferReceipt with oneOf schemas: BlockchainTransfer, FiatTransfer. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into BlockchainTransfer - try: - instance.actual_instance = BlockchainTransfer.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into FiatTransfer - try: - instance.actual_instance = FiatTransfer.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into TransferReceipt with oneOf schemas: BlockchainTransfer, FiatTransfer. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into TransferReceipt with oneOf schemas: BlockchainTransfer, FiatTransfer. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], BlockchainTransfer, FiatTransfer]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl90cmFuc2ZlciBpbXBvcnQgQmxvY2tjaGFpblRyYW5zZmVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZmlhdF90cmFuc2ZlciBpbXBvcnQgRmlhdFRyYW5zZmVyCmZyb20gcHlkYW50aWMgaW1wb3J0IFN0cmljdFN0ciwgRmllbGQKZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uLCBMaXN0LCBTZXQsIE9wdGlvbmFsLCBEaWN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IExpdGVyYWwsIFNlbGYKClRSQU5TRkVSUkVDRUlQVF9PTkVfT0ZfU0NIRU1BUyA9IFsiQmxvY2tjaGFpblRyYW5zZmVyIiwgIkZpYXRUcmFuc2ZlciJdCgpjbGFzcyBUcmFuc2ZlclJlY2VpcHQoQmFzZU1vZGVsKToKICAgICIiIgogICAgVHJhbnNmZXJSZWNlaXB0CiAgICAiIiIKICAgICMgZGF0YSB0eXBlOiBCbG9ja2NoYWluVHJhbnNmZXIKICAgIG9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvcjogT3B0aW9uYWxbQmxvY2tjaGFpblRyYW5zZmVyXSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBGaWF0VHJhbnNmZXIKICAgIG9uZW9mX3NjaGVtYV8yX3ZhbGlkYXRvcjogT3B0aW9uYWxbRmlhdFRyYW5zZmVyXSA9IE5vbmUKICAgIGFjdHVhbF9pbnN0YW5jZTogT3B0aW9uYWxbVW5pb25bQmxvY2tjaGFpblRyYW5zZmVyLCBGaWF0VHJhbnNmZXJdXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgIkJsb2NrY2hhaW5UcmFuc2ZlciIsICJGaWF0VHJhbnNmZXIiIH0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGlzY3JpbWluYXRvcl92YWx1ZV9jbGFzc19tYXA6IERpY3Rbc3RyLCBzdHJdID0gewogICAgfQoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5vbmU6CiAgICAgICAgaWYgYXJnczoKICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIGEgcG9zaXRpb24gYXJndW1lbnQgaXMgdXNlZCwgb25seSAxIGlzIGFsbG93ZWQgdG8gc2V0IGBhY3R1YWxfaW5zdGFuY2VgIikKICAgICAgICAgICAgaWYga3dhcmdzOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBrZXl3b3JkIGFyZ3VtZW50cyBjYW5ub3QgYmUgdXNlZC4iKQogICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGFjdHVhbF9pbnN0YW5jZT1hcmdzWzBdKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWN0dWFsX2luc3RhbmNlJykKICAgIGRlZiBhY3R1YWxfaW5zdGFuY2VfbXVzdF92YWxpZGF0ZV9vbmVvZihjbHMsIHYpOgogICAgICAgIGluc3RhbmNlID0gVHJhbnNmZXJSZWNlaXB0Lm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBCbG9ja2NoYWluVHJhbnNmZXIKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBCbG9ja2NoYWluVHJhbnNmZXIpOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoZiJFcnJvciEgSW5wdXQgdHlwZSBge3R5cGUodil9YCBpcyBub3QgYEJsb2NrY2hhaW5UcmFuc2ZlcmAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogRmlhdFRyYW5zZmVyCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgRmlhdFRyYW5zZmVyKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBGaWF0VHJhbnNmZXJgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIFRyYW5zZmVyUmVjZWlwdCB3aXRoIG9uZU9mIHNjaGVtYXM6IEJsb2NrY2hhaW5UcmFuc2ZlciwgRmlhdFRyYW5zZmVyLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIFRyYW5zZmVyUmVjZWlwdCB3aXRoIG9uZU9mIHNjaGVtYXM6IEJsb2NrY2hhaW5UcmFuc2ZlciwgRmlhdFRyYW5zZmVyLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gdgoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogVW5pb25bc3RyLCBEaWN0W3N0ciwgQW55XV0pIC0+IFNlbGY6CiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2pzb24oanNvbi5kdW1wcyhvYmopKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgb2JqZWN0IHJlcHJlc2VudGVkIGJ5IHRoZSBqc29uIHN0cmluZyIiIgogICAgICAgIGluc3RhbmNlID0gY2xzLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAoKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBCbG9ja2NoYWluVHJhbnNmZXIKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IEJsb2NrY2hhaW5UcmFuc2Zlci5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBGaWF0VHJhbnNmZXIKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IEZpYXRUcmFuc2Zlci5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIFRyYW5zZmVyUmVjZWlwdCB3aXRoIG9uZU9mIHNjaGVtYXM6IEJsb2NrY2hhaW5UcmFuc2ZlciwgRmlhdFRyYW5zZmVyLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIFRyYW5zZmVyUmVjZWlwdCB3aXRoIG9uZU9mIHNjaGVtYXM6IEJsb2NrY2hhaW5UcmFuc2ZlciwgRmlhdFRyYW5zZmVyLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuICJudWxsIgoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fanNvbiIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24oKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYuYWN0dWFsX2luc3RhbmNlKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IE9wdGlvbmFsW1VuaW9uW0RpY3Rbc3RyLCBBbnldLCBCbG9ja2NoYWluVHJhbnNmZXIsIEZpYXRUcmFuc2Zlcl1dOgogICAgICAgICIiIlJldHVybnMgdGhlIGRpY3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hY3R1YWxfaW5zdGFuY2UsICJ0b19kaWN0IikgYW5kIGNhbGxhYmxlKHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QpOgogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fZGljdCgpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgIyBwcmltaXRpdmUgdHlwZQogICAgICAgICAgICByZXR1cm4gc2VsZi5hY3R1YWxfaW5zdGFuY2UKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/transfer_validation_failure.py b/fireblocks/models/transfer_validation_failure.py index 2171ef48..5729aa9f 100644 --- a/fireblocks/models/transfer_validation_failure.py +++ b/fireblocks/models/transfer_validation_failure.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TransferValidationFailure(BaseModel): - """ - TransferValidationFailure - """ # noqa: E501 - reason: StrictStr - data: Optional[Dict[str, Any]] = None - __properties: ClassVar[List[str]] = ["reason", "data"] - - @field_validator('reason') - def reason_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['ACCOUNT_NOT_FOUND', 'ACCOUNT_TYPE_NOT_SUPPORTED', 'INSUFFICIENT_BALANCE', 'ASSET_NOT_FOUND', 'ASSETS_CONTINUITY_MISMATCH', 'EXCHANGE_BASKETS_MISMATCH', 'ACCOUNTS_CONTINUITY_MISMATCH', 'ONE_TIME_ADDRESS_CONTINUITY_NOT_ALLOWED', 'EQUAL_ACCOUNTS_NOT_ALLOWED', 'EQUAL_ASSETS_NOT_ALLOWED', 'INVALID_AMOUNT', 'UNMANAGED_WALLET_AS_SOURCE_NOT_ALLOWED', 'MANAGED_OPERATION_PARAMS_INVALID_SCHEMA']): - raise ValueError("must be one of enum values ('ACCOUNT_NOT_FOUND', 'ACCOUNT_TYPE_NOT_SUPPORTED', 'INSUFFICIENT_BALANCE', 'ASSET_NOT_FOUND', 'ASSETS_CONTINUITY_MISMATCH', 'EXCHANGE_BASKETS_MISMATCH', 'ACCOUNTS_CONTINUITY_MISMATCH', 'ONE_TIME_ADDRESS_CONTINUITY_NOT_ALLOWED', 'EQUAL_ACCOUNTS_NOT_ALLOWED', 'EQUAL_ASSETS_NOT_ALLOWED', 'INVALID_AMOUNT', 'UNMANAGED_WALLET_AS_SOURCE_NOT_ALLOWED', 'MANAGED_OPERATION_PARAMS_INVALID_SCHEMA')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TransferValidationFailure from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TransferValidationFailure from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "reason": obj.get("reason"), - "data": obj.get("data") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVHJhbnNmZXJWYWxpZGF0aW9uRmFpbHVyZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUcmFuc2ZlclZhbGlkYXRpb25GYWlsdXJlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICByZWFzb246IFN0cmljdFN0cgogICAgZGF0YTogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJyZWFzb24iLCAiZGF0YSJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigncmVhc29uJykKICAgIGRlZiByZWFzb25fdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnQUNDT1VOVF9OT1RfRk9VTkQnLCAnQUNDT1VOVF9UWVBFX05PVF9TVVBQT1JURUQnLCAnSU5TVUZGSUNJRU5UX0JBTEFOQ0UnLCAnQVNTRVRfTk9UX0ZPVU5EJywgJ0FTU0VUU19DT05USU5VSVRZX01JU01BVENIJywgJ0VYQ0hBTkdFX0JBU0tFVFNfTUlTTUFUQ0gnLCAnQUNDT1VOVFNfQ09OVElOVUlUWV9NSVNNQVRDSCcsICdPTkVfVElNRV9BRERSRVNTX0NPTlRJTlVJVFlfTk9UX0FMTE9XRUQnLCAnRVFVQUxfQUNDT1VOVFNfTk9UX0FMTE9XRUQnLCAnRVFVQUxfQVNTRVRTX05PVF9BTExPV0VEJywgJ0lOVkFMSURfQU1PVU5UJywgJ1VOTUFOQUdFRF9XQUxMRVRfQVNfU09VUkNFX05PVF9BTExPV0VEJywgJ01BTkFHRURfT1BFUkFUSU9OX1BBUkFNU19JTlZBTElEX1NDSEVNQSddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdBQ0NPVU5UX05PVF9GT1VORCcsICdBQ0NPVU5UX1RZUEVfTk9UX1NVUFBPUlRFRCcsICdJTlNVRkZJQ0lFTlRfQkFMQU5DRScsICdBU1NFVF9OT1RfRk9VTkQnLCAnQVNTRVRTX0NPTlRJTlVJVFlfTUlTTUFUQ0gnLCAnRVhDSEFOR0VfQkFTS0VUU19NSVNNQVRDSCcsICdBQ0NPVU5UU19DT05USU5VSVRZX01JU01BVENIJywgJ09ORV9USU1FX0FERFJFU1NfQ09OVElOVUlUWV9OT1RfQUxMT1dFRCcsICdFUVVBTF9BQ0NPVU5UU19OT1RfQUxMT1dFRCcsICdFUVVBTF9BU1NFVFNfTk9UX0FMTE9XRUQnLCAnSU5WQUxJRF9BTU9VTlQnLCAnVU5NQU5BR0VEX1dBTExFVF9BU19TT1VSQ0VfTk9UX0FMTE9XRUQnLCAnTUFOQUdFRF9PUEVSQVRJT05fUEFSQU1TX0lOVkFMSURfU0NIRU1BJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYW5zZmVyVmFsaWRhdGlvbkZhaWx1cmUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhbnNmZXJWYWxpZGF0aW9uRmFpbHVyZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJyZWFzb24iOiBvYmouZ2V0KCJyZWFzb24iKSwKICAgICAgICAgICAgImRhdGEiOiBvYmouZ2V0KCJkYXRhIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/travel_rule_action_enum.py b/fireblocks/models/travel_rule_action_enum.py index de25f9fe..ff43847e 100644 --- a/fireblocks/models/travel_rule_action_enum.py +++ b/fireblocks/models/travel_rule_action_enum.py @@ -1,39 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TravelRuleActionEnum(str, Enum): - """ - Travel rule action - """ - - """ - allowed enum values - """ - SCREEN = 'SCREEN' - BYPASS = 'BYPASS' - BLOCK = 'BLOCK' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TravelRuleActionEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUcmF2ZWxSdWxlQWN0aW9uRW51bShzdHIsIEVudW0pOgogICAgIiIiCiAgICBUcmF2ZWwgcnVsZSBhY3Rpb24KICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBTQ1JFRU4gPSAnU0NSRUVOJwogICAgQllQQVNTID0gJ0JZUEFTUycKICAgIEJMT0NLID0gJ0JMT0NLJwogICAgUEFTUyA9ICdQQVNTJwogICAgRlJFRVpFID0gJ0ZSRUVaRScKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlQWN0aW9uRW51bSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/travel_rule_address.py b/fireblocks/models/travel_rule_address.py index 3dd056af..8b3cc183 100644 --- a/fireblocks/models/travel_rule_address.py +++ b/fireblocks/models/travel_rule_address.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleAddress(BaseModel): - """ - TravelRuleAddress - """ # noqa: E501 - street: Optional[StrictStr] = Field(default=None, description="Street address") - city: Optional[StrictStr] = Field(default=None, description="City") - state: Optional[StrictStr] = Field(default=None, description="State or province") - postal_code: Optional[StrictStr] = Field(default=None, description="Postal or ZIP code", alias="postalCode") - __properties: ClassVar[List[str]] = ["street", "city", "state", "postalCode"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "street": obj.get("street"), - "city": obj.get("city"), - "state": obj.get("state"), - "postalCode": obj.get("postalCode") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmF2ZWxSdWxlQWRkcmVzcyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUcmF2ZWxSdWxlQWRkcmVzcwogICAgIiIiICMgbm9xYTogRTUwMQogICAgc3RyZWV0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iU3RyZWV0IGFkZHJlc3MiKQogICAgY2l0eTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkNpdHkiKQogICAgc3RhdGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTdGF0ZSBvciBwcm92aW5jZSIpCiAgICBwb3N0YWxfY29kZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlBvc3RhbCBvciBaSVAgY29kZSIsIGFsaWFzPSJwb3N0YWxDb2RlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3RyZWV0IiwgImNpdHkiLCAic3RhdGUiLCAicG9zdGFsQ29kZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZUFkZHJlc3MgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZUFkZHJlc3MgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3RyZWV0Ijogb2JqLmdldCgic3RyZWV0IiksCiAgICAgICAgICAgICJjaXR5Ijogb2JqLmdldCgiY2l0eSIpLAogICAgICAgICAgICAic3RhdGUiOiBvYmouZ2V0KCJzdGF0ZSIpLAogICAgICAgICAgICAicG9zdGFsQ29kZSI6IG9iai5nZXQoInBvc3RhbENvZGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/travel_rule_create_transaction_request.py b/fireblocks/models/travel_rule_create_transaction_request.py index a9b64eb2..e5b2b312 100644 --- a/fireblocks/models/travel_rule_create_transaction_request.py +++ b/fireblocks/models/travel_rule_create_transaction_request.py @@ -1,156 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.travel_rule_ownership_proof import TravelRuleOwnershipProof -from fireblocks.models.travel_rule_pii_ivms import TravelRulePiiIVMS -from fireblocks.models.travel_rule_transaction_blockchain_info import TravelRuleTransactionBlockchainInfo -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleCreateTransactionRequest(BaseModel): - """ - TravelRuleCreateTransactionRequest - """ # noqa: E501 - originator_vas_pdid: Optional[StrictStr] = Field(default=None, description="The Decentralized Identifier (DID) of the exchange (VASP) that is sending the virtual assets. This identifier is unique to the exchange and is generated when the exchange's account is created in the Notabene network.", alias="originatorVASPdid") - beneficiary_vas_pdid: Optional[StrictStr] = Field(default=None, description="The Decentralized Identifier (DID) of the exchange (VASP) that is receiving the virtual assets. This identifier is unique to the exchange and is generated when the exchange's account is created in the Notabene network.", alias="beneficiaryVASPdid") - originator_vas_pname: Optional[StrictStr] = Field(default=None, description="The name of the VASP acting as the transaction originator.", alias="originatorVASPname") - beneficiary_vas_pname: Optional[StrictStr] = Field(default=None, description="The name of the VASP acting as the transaction beneficiary.", alias="beneficiaryVASPname") - beneficiary_vas_pwebsite: Optional[StrictStr] = Field(default=None, description="The website of the VASP acting as the transaction beneficiary.", alias="beneficiaryVASPwebsite") - transaction_blockchain_info: Optional[TravelRuleTransactionBlockchainInfo] = Field(default=None, alias="transactionBlockchainInfo") - originator: TravelRulePiiIVMS - beneficiary: TravelRulePiiIVMS - encrypted: Optional[StrictStr] = Field(default=None, description="Encrypted data related to the transaction.") - protocol: Optional[StrictStr] = Field(default=None, description="The protocol used to perform the travel rule.") - target_protocol: Optional[StrictStr] = Field(default=None, description="The target protocol for GTR (Global Travel Rule) transfers.", alias="targetProtocol") - skip_beneficiary_data_validation: Optional[StrictBool] = Field(default=None, description="Whether to skip validation of beneficiary data.", alias="skipBeneficiaryDataValidation") - travel_rule_behavior: Optional[StrictBool] = Field(default=None, description="Whether to check if the transaction complies with the travel rule in the beneficiary VASP's jurisdiction.", alias="travelRuleBehavior") - originator_ref: Optional[StrictStr] = Field(default=None, description="A reference ID related to the originator of the transaction.", alias="originatorRef") - beneficiary_ref: Optional[StrictStr] = Field(default=None, description="A reference ID related to the beneficiary of the transaction.", alias="beneficiaryRef") - travel_rule_behavior_ref: Optional[StrictStr] = Field(default=None, description="A reference ID related to the travel rule behavior.", alias="travelRuleBehaviorRef") - originator_proof: Optional[TravelRuleOwnershipProof] = Field(default=None, alias="originatorProof") - beneficiary_proof: Optional[TravelRuleOwnershipProof] = Field(default=None, alias="beneficiaryProof") - beneficiary_did: Optional[StrictStr] = Field(default=None, description="The Decentralized Identifier (DID) of the person at the receiving exchange (VASP). This identifier is generated when the customer is registered in the Notabene network, or automatically created based on the `beneficiaryRef`. - If neither `beneficiaryRef` nor `beneficiaryDid` is provided in the `txCreate` payload, a new random DID is generated for every transaction.", alias="beneficiaryDid") - originator_did: Optional[StrictStr] = Field(default=None, description="The Decentralized Identifier (DID) of the person at the exchange (VASP) who is requesting the withdrawal. This identifier is generated when the customer is registered in the Notabene network or automatically created based on the `originatorRef`. - If neither `originatorRef` nor `originatorDid` is provided in the `txCreate` payload, a new random DID is generated for every transaction.", alias="originatorDid") - is_non_custodial: Optional[StrictBool] = Field(default=None, description="Indicates if the transaction involves a non-custodial wallet.", alias="isNonCustodial") - __properties: ClassVar[List[str]] = ["originatorVASPdid", "beneficiaryVASPdid", "originatorVASPname", "beneficiaryVASPname", "beneficiaryVASPwebsite", "transactionBlockchainInfo", "originator", "beneficiary", "encrypted", "protocol", "targetProtocol", "skipBeneficiaryDataValidation", "travelRuleBehavior", "originatorRef", "beneficiaryRef", "travelRuleBehaviorRef", "originatorProof", "beneficiaryProof", "beneficiaryDid", "originatorDid", "isNonCustodial"] - - @field_validator('protocol') - def protocol_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['IVMS101', 'TRLight', 'TRP', 'OpenVASP', 'GTR']): - raise ValueError("must be one of enum values ('IVMS101', 'TRLight', 'TRP', 'OpenVASP', 'GTR')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleCreateTransactionRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of transaction_blockchain_info - if self.transaction_blockchain_info: - _dict['transactionBlockchainInfo'] = self.transaction_blockchain_info.to_dict() - # override the default output from pydantic by calling `to_dict()` of originator - if self.originator: - _dict['originator'] = self.originator.to_dict() - # override the default output from pydantic by calling `to_dict()` of beneficiary - if self.beneficiary: - _dict['beneficiary'] = self.beneficiary.to_dict() - # override the default output from pydantic by calling `to_dict()` of originator_proof - if self.originator_proof: - _dict['originatorProof'] = self.originator_proof.to_dict() - # override the default output from pydantic by calling `to_dict()` of beneficiary_proof - if self.beneficiary_proof: - _dict['beneficiaryProof'] = self.beneficiary_proof.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleCreateTransactionRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "originatorVASPdid": obj.get("originatorVASPdid"), - "beneficiaryVASPdid": obj.get("beneficiaryVASPdid"), - "originatorVASPname": obj.get("originatorVASPname"), - "beneficiaryVASPname": obj.get("beneficiaryVASPname"), - "beneficiaryVASPwebsite": obj.get("beneficiaryVASPwebsite"), - "transactionBlockchainInfo": TravelRuleTransactionBlockchainInfo.from_dict(obj["transactionBlockchainInfo"]) if obj.get("transactionBlockchainInfo") is not None else None, - "originator": TravelRulePiiIVMS.from_dict(obj["originator"]) if obj.get("originator") is not None else None, - "beneficiary": TravelRulePiiIVMS.from_dict(obj["beneficiary"]) if obj.get("beneficiary") is not None else None, - "encrypted": obj.get("encrypted"), - "protocol": obj.get("protocol"), - "targetProtocol": obj.get("targetProtocol"), - "skipBeneficiaryDataValidation": obj.get("skipBeneficiaryDataValidation"), - "travelRuleBehavior": obj.get("travelRuleBehavior"), - "originatorRef": obj.get("originatorRef"), - "beneficiaryRef": obj.get("beneficiaryRef"), - "travelRuleBehaviorRef": obj.get("travelRuleBehaviorRef"), - "originatorProof": TravelRuleOwnershipProof.from_dict(obj["originatorProof"]) if obj.get("originatorProof") is not None else None, - "beneficiaryProof": TravelRuleOwnershipProof.from_dict(obj["beneficiaryProof"]) if obj.get("beneficiaryProof") is not None else None, - "beneficiaryDid": obj.get("beneficiaryDid"), - "originatorDid": obj.get("originatorDid"), - "isNonCustodial": obj.get("isNonCustodial") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfb3duZXJzaGlwX3Byb29mIGltcG9ydCBUcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2YKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9waWlfaXZtcyBpbXBvcnQgVHJhdmVsUnVsZVBpaUlWTVMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV90cmFuc2FjdGlvbl9ibG9ja2NoYWluX2luZm8gaW1wb3J0IFRyYXZlbFJ1bGVUcmFuc2FjdGlvbkJsb2NrY2hhaW5JbmZvCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRyYXZlbFJ1bGVDcmVhdGVUcmFuc2FjdGlvblJlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgVHJhdmVsUnVsZUNyZWF0ZVRyYW5zYWN0aW9uUmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgb3JpZ2luYXRvcl92YXNfcGRpZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBEZWNlbnRyYWxpemVkIElkZW50aWZpZXIgKERJRCkgb2YgdGhlIGV4Y2hhbmdlIChWQVNQKSB0aGF0IGlzIHNlbmRpbmcgdGhlIHZpcnR1YWwgYXNzZXRzLiBUaGlzIGlkZW50aWZpZXIgaXMgdW5pcXVlIHRvIHRoZSBleGNoYW5nZSBhbmQgaXMgZ2VuZXJhdGVkIHdoZW4gdGhlIGV4Y2hhbmdlJ3MgYWNjb3VudCBpcyAgY3JlYXRlZCBpbiB0aGUgTm90YWJlbmUgbmV0d29yay4iLCBhbGlhcz0ib3JpZ2luYXRvclZBU1BkaWQiKQogICAgYmVuZWZpY2lhcnlfdmFzX3BkaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgRGVjZW50cmFsaXplZCBJZGVudGlmaWVyIChESUQpIG9mIHRoZSBleGNoYW5nZSAoVkFTUCkgdGhhdCBpcyByZWNlaXZpbmcgdGhlIHZpcnR1YWwgYXNzZXRzLiBUaGlzIGlkZW50aWZpZXIgaXMgdW5pcXVlIHRvIHRoZSBleGNoYW5nZSBhbmQgaXMgZ2VuZXJhdGVkIHdoZW4gdGhlIGV4Y2hhbmdlJ3MgYWNjb3VudCBpcyAgY3JlYXRlZCBpbiB0aGUgTm90YWJlbmUgbmV0d29yay4iLCBhbGlhcz0iYmVuZWZpY2lhcnlWQVNQZGlkIikKICAgIG9yaWdpbmF0b3JfdmFzX3BuYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIG5hbWUgb2YgdGhlIFZBU1AgYWN0aW5nIGFzIHRoZSB0cmFuc2FjdGlvbiBvcmlnaW5hdG9yLiIsIGFsaWFzPSJvcmlnaW5hdG9yVkFTUG5hbWUiKQogICAgYmVuZWZpY2lhcnlfdmFzX3BuYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIG5hbWUgb2YgdGhlIFZBU1AgYWN0aW5nIGFzIHRoZSB0cmFuc2FjdGlvbiBiZW5lZmljaWFyeS4iLCBhbGlhcz0iYmVuZWZpY2lhcnlWQVNQbmFtZSIpCiAgICBiZW5lZmljaWFyeV92YXNfcHdlYnNpdGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgd2Vic2l0ZSBvZiB0aGUgVkFTUCBhY3RpbmcgYXMgdGhlIHRyYW5zYWN0aW9uIGJlbmVmaWNpYXJ5LiIsIGFsaWFzPSJiZW5lZmljaWFyeVZBU1B3ZWJzaXRlIikKICAgIHRyYW5zYWN0aW9uX2Jsb2NrY2hhaW5faW5mbzogT3B0aW9uYWxbVHJhdmVsUnVsZVRyYW5zYWN0aW9uQmxvY2tjaGFpbkluZm9dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0idHJhbnNhY3Rpb25CbG9ja2NoYWluSW5mbyIpCiAgICBvcmlnaW5hdG9yOiBUcmF2ZWxSdWxlUGlpSVZNUwogICAgYmVuZWZpY2lhcnk6IFRyYXZlbFJ1bGVQaWlJVk1TCiAgICBlbmNyeXB0ZWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJFbmNyeXB0ZWQgZGF0YSByZWxhdGVkIHRvIHRoZSB0cmFuc2FjdGlvbi4iKQogICAgcHJvdG9jb2w6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgcHJvdG9jb2wgdXNlZCB0byBwZXJmb3JtIHRoZSB0cmF2ZWwgcnVsZS4iKQogICAgdGFyZ2V0X3Byb3RvY29sOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHRhcmdldCBwcm90b2NvbCBmb3IgR1RSIChHbG9iYWwgVHJhdmVsIFJ1bGUpIHRyYW5zZmVycy4iLCBhbGlhcz0idGFyZ2V0UHJvdG9jb2wiKQogICAgc2tpcF9iZW5lZmljaWFyeV9kYXRhX3ZhbGlkYXRpb246IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iV2hldGhlciB0byBza2lwIHZhbGlkYXRpb24gb2YgYmVuZWZpY2lhcnkgZGF0YS4iLCBhbGlhcz0ic2tpcEJlbmVmaWNpYXJ5RGF0YVZhbGlkYXRpb24iKQogICAgdHJhdmVsX3J1bGVfYmVoYXZpb3I6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iV2hldGhlciB0byBjaGVjayBpZiB0aGUgdHJhbnNhY3Rpb24gY29tcGxpZXMgd2l0aCB0aGUgdHJhdmVsIHJ1bGUgaW4gdGhlIGJlbmVmaWNpYXJ5IFZBU1AncyBqdXJpc2RpY3Rpb24uIiwgYWxpYXM9InRyYXZlbFJ1bGVCZWhhdmlvciIpCiAgICBvcmlnaW5hdG9yX3JlZjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkEgcmVmZXJlbmNlIElEIHJlbGF0ZWQgdG8gdGhlIG9yaWdpbmF0b3Igb2YgdGhlIHRyYW5zYWN0aW9uLiIsIGFsaWFzPSJvcmlnaW5hdG9yUmVmIikKICAgIGJlbmVmaWNpYXJ5X3JlZjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkEgcmVmZXJlbmNlIElEIHJlbGF0ZWQgdG8gdGhlIGJlbmVmaWNpYXJ5IG9mIHRoZSB0cmFuc2FjdGlvbi4iLCBhbGlhcz0iYmVuZWZpY2lhcnlSZWYiKQogICAgdHJhdmVsX3J1bGVfYmVoYXZpb3JfcmVmOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQSByZWZlcmVuY2UgSUQgcmVsYXRlZCB0byB0aGUgdHJhdmVsIHJ1bGUgYmVoYXZpb3IuIiwgYWxpYXM9InRyYXZlbFJ1bGVCZWhhdmlvclJlZiIpCiAgICBvcmlnaW5hdG9yX3Byb29mOiBPcHRpb25hbFtUcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2ZdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ib3JpZ2luYXRvclByb29mIikKICAgIGJlbmVmaWNpYXJ5X3Byb29mOiBPcHRpb25hbFtUcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2ZdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYmVuZWZpY2lhcnlQcm9vZiIpCiAgICBiZW5lZmljaWFyeV9kaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgRGVjZW50cmFsaXplZCBJZGVudGlmaWVyIChESUQpIG9mIHRoZSBwZXJzb24gYXQgdGhlIHJlY2VpdmluZyBleGNoYW5nZSAoVkFTUCkuICBUaGlzIGlkZW50aWZpZXIgaXMgZ2VuZXJhdGVkIHdoZW4gdGhlIGN1c3RvbWVyIGlzIHJlZ2lzdGVyZWQgaW4gdGhlIE5vdGFiZW5lIG5ldHdvcmssICBvciBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgYmFzZWQgb24gdGhlIGBiZW5lZmljaWFyeVJlZmAuICAtIElmIG5laXRoZXIgYGJlbmVmaWNpYXJ5UmVmYCBub3IgYGJlbmVmaWNpYXJ5RGlkYCBpcyBwcm92aWRlZCBpbiB0aGUgYHR4Q3JlYXRlYCBwYXlsb2FkLCAgICBhIG5ldyByYW5kb20gRElEIGlzIGdlbmVyYXRlZCBmb3IgZXZlcnkgdHJhbnNhY3Rpb24uIiwgYWxpYXM9ImJlbmVmaWNpYXJ5RGlkIikKICAgIG9yaWdpbmF0b3JfZGlkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIERlY2VudHJhbGl6ZWQgSWRlbnRpZmllciAoRElEKSBvZiB0aGUgcGVyc29uIGF0IHRoZSBleGNoYW5nZSAoVkFTUCkgd2hvIGlzIHJlcXVlc3RpbmcgdGhlIHdpdGhkcmF3YWwuIFRoaXMgaWRlbnRpZmllciBpcyBnZW5lcmF0ZWQgd2hlbiB0aGUgY3VzdG9tZXIgaXMgcmVnaXN0ZXJlZCBpbiB0aGUgTm90YWJlbmUgbmV0d29yayBvciBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgYmFzZWQgb24gdGhlIGBvcmlnaW5hdG9yUmVmYC4gIC0gSWYgbmVpdGhlciBgb3JpZ2luYXRvclJlZmAgbm9yIGBvcmlnaW5hdG9yRGlkYCBpcyBwcm92aWRlZCBpbiB0aGUgYHR4Q3JlYXRlYCBwYXlsb2FkLCAgICBhIG5ldyByYW5kb20gRElEIGlzIGdlbmVyYXRlZCBmb3IgZXZlcnkgdHJhbnNhY3Rpb24uIiwgYWxpYXM9Im9yaWdpbmF0b3JEaWQiKQogICAgaXNfbm9uX2N1c3RvZGlhbDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJbmRpY2F0ZXMgaWYgdGhlIHRyYW5zYWN0aW9uIGludm9sdmVzIGEgbm9uLWN1c3RvZGlhbCB3YWxsZXQuIiwgYWxpYXM9ImlzTm9uQ3VzdG9kaWFsIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsib3JpZ2luYXRvclZBU1BkaWQiLCAiYmVuZWZpY2lhcnlWQVNQZGlkIiwgIm9yaWdpbmF0b3JWQVNQbmFtZSIsICJiZW5lZmljaWFyeVZBU1BuYW1lIiwgImJlbmVmaWNpYXJ5VkFTUHdlYnNpdGUiLCAidHJhbnNhY3Rpb25CbG9ja2NoYWluSW5mbyIsICJvcmlnaW5hdG9yIiwgImJlbmVmaWNpYXJ5IiwgImVuY3J5cHRlZCIsICJwcm90b2NvbCIsICJ0YXJnZXRQcm90b2NvbCIsICJza2lwQmVuZWZpY2lhcnlEYXRhVmFsaWRhdGlvbiIsICJ0cmF2ZWxSdWxlQmVoYXZpb3IiLCAib3JpZ2luYXRvclJlZiIsICJiZW5lZmljaWFyeVJlZiIsICJ0cmF2ZWxSdWxlQmVoYXZpb3JSZWYiLCAib3JpZ2luYXRvclByb29mIiwgImJlbmVmaWNpYXJ5UHJvb2YiLCAiYmVuZWZpY2lhcnlEaWQiLCAib3JpZ2luYXRvckRpZCIsICJpc05vbkN1c3RvZGlhbCJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigncHJvdG9jb2wnKQogICAgZGVmIHByb3RvY29sX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydJVk1TMTAxJywgJ1RSTGlnaHQnLCAnVFJQJywgJ09wZW5WQVNQJywgJ0dUUiddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdJVk1TMTAxJywgJ1RSTGlnaHQnLCAnVFJQJywgJ09wZW5WQVNQJywgJ0dUUicpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlQ3JlYXRlVHJhbnNhY3Rpb25SZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgdHJhbnNhY3Rpb25fYmxvY2tjaGFpbl9pbmZvCiAgICAgICAgaWYgc2VsZi50cmFuc2FjdGlvbl9ibG9ja2NoYWluX2luZm86CiAgICAgICAgICAgIF9kaWN0Wyd0cmFuc2FjdGlvbkJsb2NrY2hhaW5JbmZvJ10gPSBzZWxmLnRyYW5zYWN0aW9uX2Jsb2NrY2hhaW5faW5mby50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2Ygb3JpZ2luYXRvcgogICAgICAgIGlmIHNlbGYub3JpZ2luYXRvcjoKICAgICAgICAgICAgX2RpY3RbJ29yaWdpbmF0b3InXSA9IHNlbGYub3JpZ2luYXRvci50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYmVuZWZpY2lhcnkKICAgICAgICBpZiBzZWxmLmJlbmVmaWNpYXJ5OgogICAgICAgICAgICBfZGljdFsnYmVuZWZpY2lhcnknXSA9IHNlbGYuYmVuZWZpY2lhcnkudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG9yaWdpbmF0b3JfcHJvb2YKICAgICAgICBpZiBzZWxmLm9yaWdpbmF0b3JfcHJvb2Y6CiAgICAgICAgICAgIF9kaWN0WydvcmlnaW5hdG9yUHJvb2YnXSA9IHNlbGYub3JpZ2luYXRvcl9wcm9vZi50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYmVuZWZpY2lhcnlfcHJvb2YKICAgICAgICBpZiBzZWxmLmJlbmVmaWNpYXJ5X3Byb29mOgogICAgICAgICAgICBfZGljdFsnYmVuZWZpY2lhcnlQcm9vZiddID0gc2VsZi5iZW5lZmljaWFyeV9wcm9vZi50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVDcmVhdGVUcmFuc2FjdGlvblJlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAib3JpZ2luYXRvclZBU1BkaWQiOiBvYmouZ2V0KCJvcmlnaW5hdG9yVkFTUGRpZCIpLAogICAgICAgICAgICAiYmVuZWZpY2lhcnlWQVNQZGlkIjogb2JqLmdldCgiYmVuZWZpY2lhcnlWQVNQZGlkIiksCiAgICAgICAgICAgICJvcmlnaW5hdG9yVkFTUG5hbWUiOiBvYmouZ2V0KCJvcmlnaW5hdG9yVkFTUG5hbWUiKSwKICAgICAgICAgICAgImJlbmVmaWNpYXJ5VkFTUG5hbWUiOiBvYmouZ2V0KCJiZW5lZmljaWFyeVZBU1BuYW1lIiksCiAgICAgICAgICAgICJiZW5lZmljaWFyeVZBU1B3ZWJzaXRlIjogb2JqLmdldCgiYmVuZWZpY2lhcnlWQVNQd2Vic2l0ZSIpLAogICAgICAgICAgICAidHJhbnNhY3Rpb25CbG9ja2NoYWluSW5mbyI6IFRyYXZlbFJ1bGVUcmFuc2FjdGlvbkJsb2NrY2hhaW5JbmZvLmZyb21fZGljdChvYmpbInRyYW5zYWN0aW9uQmxvY2tjaGFpbkluZm8iXSkgaWYgb2JqLmdldCgidHJhbnNhY3Rpb25CbG9ja2NoYWluSW5mbyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm9yaWdpbmF0b3IiOiBUcmF2ZWxSdWxlUGlpSVZNUy5mcm9tX2RpY3Qob2JqWyJvcmlnaW5hdG9yIl0pIGlmIG9iai5nZXQoIm9yaWdpbmF0b3IiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJiZW5lZmljaWFyeSI6IFRyYXZlbFJ1bGVQaWlJVk1TLmZyb21fZGljdChvYmpbImJlbmVmaWNpYXJ5Il0pIGlmIG9iai5nZXQoImJlbmVmaWNpYXJ5IikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZW5jcnlwdGVkIjogb2JqLmdldCgiZW5jcnlwdGVkIiksCiAgICAgICAgICAgICJwcm90b2NvbCI6IG9iai5nZXQoInByb3RvY29sIiksCiAgICAgICAgICAgICJ0YXJnZXRQcm90b2NvbCI6IG9iai5nZXQoInRhcmdldFByb3RvY29sIiksCiAgICAgICAgICAgICJza2lwQmVuZWZpY2lhcnlEYXRhVmFsaWRhdGlvbiI6IG9iai5nZXQoInNraXBCZW5lZmljaWFyeURhdGFWYWxpZGF0aW9uIiksCiAgICAgICAgICAgICJ0cmF2ZWxSdWxlQmVoYXZpb3IiOiBvYmouZ2V0KCJ0cmF2ZWxSdWxlQmVoYXZpb3IiKSwKICAgICAgICAgICAgIm9yaWdpbmF0b3JSZWYiOiBvYmouZ2V0KCJvcmlnaW5hdG9yUmVmIiksCiAgICAgICAgICAgICJiZW5lZmljaWFyeVJlZiI6IG9iai5nZXQoImJlbmVmaWNpYXJ5UmVmIiksCiAgICAgICAgICAgICJ0cmF2ZWxSdWxlQmVoYXZpb3JSZWYiOiBvYmouZ2V0KCJ0cmF2ZWxSdWxlQmVoYXZpb3JSZWYiKSwKICAgICAgICAgICAgIm9yaWdpbmF0b3JQcm9vZiI6IFRyYXZlbFJ1bGVPd25lcnNoaXBQcm9vZi5mcm9tX2RpY3Qob2JqWyJvcmlnaW5hdG9yUHJvb2YiXSkgaWYgb2JqLmdldCgib3JpZ2luYXRvclByb29mIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiYmVuZWZpY2lhcnlQcm9vZiI6IFRyYXZlbFJ1bGVPd25lcnNoaXBQcm9vZi5mcm9tX2RpY3Qob2JqWyJiZW5lZmljaWFyeVByb29mIl0pIGlmIG9iai5nZXQoImJlbmVmaWNpYXJ5UHJvb2YiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJiZW5lZmljaWFyeURpZCI6IG9iai5nZXQoImJlbmVmaWNpYXJ5RGlkIiksCiAgICAgICAgICAgICJvcmlnaW5hdG9yRGlkIjogb2JqLmdldCgib3JpZ2luYXRvckRpZCIpLAogICAgICAgICAgICAiaXNOb25DdXN0b2RpYWwiOiBvYmouZ2V0KCJpc05vbkN1c3RvZGlhbCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/travel_rule_date_and_place_of_birth.py b/fireblocks/models/travel_rule_date_and_place_of_birth.py index c0971b08..05608324 100644 --- a/fireblocks/models/travel_rule_date_and_place_of_birth.py +++ b/fireblocks/models/travel_rule_date_and_place_of_birth.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleDateAndPlaceOfBirth(BaseModel): - """ - Represents the date and place of birth for a natural person - """ # noqa: E501 - date_of_birth: Optional[StrictStr] = Field(default=None, description="Date of birth. The value must be encrypted.", alias="dateOfBirth") - place_of_birth: Optional[StrictStr] = Field(default=None, description="Place of birth. The value must be encrypted.", alias="placeOfBirth") - __properties: ClassVar[List[str]] = ["dateOfBirth", "placeOfBirth"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleDateAndPlaceOfBirth from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleDateAndPlaceOfBirth from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "dateOfBirth": obj.get("dateOfBirth"), - "placeOfBirth": obj.get("placeOfBirth") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmF2ZWxSdWxlRGF0ZUFuZFBsYWNlT2ZCaXJ0aChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSZXByZXNlbnRzIHRoZSBkYXRlIGFuZCBwbGFjZSBvZiBiaXJ0aCBmb3IgYSBuYXR1cmFsIHBlcnNvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGF0ZV9vZl9iaXJ0aDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRhdGUgb2YgYmlydGguIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4iLCBhbGlhcz0iZGF0ZU9mQmlydGgiKQogICAgcGxhY2Vfb2ZfYmlydGg6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJQbGFjZSBvZiBiaXJ0aC4gVGhlIHZhbHVlIG11c3QgYmUgZW5jcnlwdGVkLiIsIGFsaWFzPSJwbGFjZU9mQmlydGgiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJkYXRlT2ZCaXJ0aCIsICJwbGFjZU9mQmlydGgiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVEYXRlQW5kUGxhY2VPZkJpcnRoIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVEYXRlQW5kUGxhY2VPZkJpcnRoIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRhdGVPZkJpcnRoIjogb2JqLmdldCgiZGF0ZU9mQmlydGgiKSwKICAgICAgICAgICAgInBsYWNlT2ZCaXJ0aCI6IG9iai5nZXQoInBsYWNlT2ZCaXJ0aCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/travel_rule_direction_enum.py b/fireblocks/models/travel_rule_direction_enum.py index cea45dac..181150db 100644 --- a/fireblocks/models/travel_rule_direction_enum.py +++ b/fireblocks/models/travel_rule_direction_enum.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TravelRuleDirectionEnum(str, Enum): - """ - Travel rule direction - """ - - """ - allowed enum values - """ - INBOUND = 'INBOUND' - OUTBOUND = 'OUTBOUND' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TravelRuleDirectionEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUcmF2ZWxSdWxlRGlyZWN0aW9uRW51bShzdHIsIEVudW0pOgogICAgIiIiCiAgICBUcmF2ZWwgcnVsZSBkaXJlY3Rpb24KICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBJTkJPVU5EID0gJ0lOQk9VTkQnCiAgICBPVVRCT1VORCA9ICdPVVRCT1VORCcKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlRGlyZWN0aW9uRW51bSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/travel_rule_geographic_address.py b/fireblocks/models/travel_rule_geographic_address.py index e46f9a91..510bf92a 100644 --- a/fireblocks/models/travel_rule_geographic_address.py +++ b/fireblocks/models/travel_rule_geographic_address.py @@ -1,118 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleGeographicAddress(BaseModel): - """ - TravelRuleGeographicAddress - """ # noqa: E501 - street_name: Optional[StrictStr] = Field(default=None, description="Name of a street or thoroughfare. The value must be encrypted.", alias="streetName") - town_name: Optional[StrictStr] = Field(default=None, description="Name of a built-up area, with defined boundaries, and a local government. The value must be encrypted.", alias="townName") - country: Optional[StrictStr] = Field(default=None, description="Nation with its own government (ISO-3166 Alpha-2 country code). The value must be encrypted.") - building_number: Optional[StrictStr] = Field(default=None, description="Number that identifies the position of a building on a street. The value must be encrypted.", alias="buildingNumber") - post_code: Optional[StrictStr] = Field(default=None, description="Identifier consisting of a group of letters and/or numbers added to a postal address to assist the sorting of mail. The value must be encrypted.", alias="postCode") - address_type: Optional[StrictStr] = Field(default=None, description="Specifies the type of address. Acceptable values are: - 'HOME': Residential, the home address - 'BIZZ': Business, the business address - 'GEOG': Geographic, an unspecified physical (geographical) address The value must be encrypted.", alias="addressType") - department: Optional[StrictStr] = Field(default=None, description="Identification of a division of a large organisation or building. The value must be encrypted.") - sub_department: Optional[StrictStr] = Field(default=None, description="Identification of a sub-division of a large organisation or building. The value must be encrypted.", alias="subDepartment") - building_name: Optional[StrictStr] = Field(default=None, description="Name of the building or house. The value must be encrypted.", alias="buildingName") - floor: Optional[StrictStr] = Field(default=None, description="Floor or storey within a building. The value must be encrypted.") - post_box: Optional[StrictStr] = Field(default=None, description="Numbered box in a post office. The value must be encrypted.", alias="postBox") - room: Optional[StrictStr] = Field(default=None, description="Building room number. The value must be encrypted.") - town_location_name: Optional[StrictStr] = Field(default=None, description="Specific location name within the town. The value must be encrypted.", alias="townLocationName") - district_name: Optional[StrictStr] = Field(default=None, description="Identifies a subdivision within a country subdivision. The value must be encrypted.", alias="districtName") - country_sub_division: Optional[StrictStr] = Field(default=None, description="Identifies a subdivision of a country such as state, region, or province. The value must be encrypted.", alias="countrySubDivision") - address_line: Optional[List[StrictStr]] = Field(default=None, description="Information that locates and identifies a specific address, presented in free format text. Each item must be encrypted.", alias="addressLine") - __properties: ClassVar[List[str]] = ["streetName", "townName", "country", "buildingNumber", "postCode", "addressType", "department", "subDepartment", "buildingName", "floor", "postBox", "room", "townLocationName", "districtName", "countrySubDivision", "addressLine"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleGeographicAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleGeographicAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "streetName": obj.get("streetName"), - "townName": obj.get("townName"), - "country": obj.get("country"), - "buildingNumber": obj.get("buildingNumber"), - "postCode": obj.get("postCode"), - "addressType": obj.get("addressType"), - "department": obj.get("department"), - "subDepartment": obj.get("subDepartment"), - "buildingName": obj.get("buildingName"), - "floor": obj.get("floor"), - "postBox": obj.get("postBox"), - "room": obj.get("room"), - "townLocationName": obj.get("townLocationName"), - "districtName": obj.get("districtName"), - "countrySubDivision": obj.get("countrySubDivision"), - "addressLine": obj.get("addressLine") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmF2ZWxSdWxlR2VvZ3JhcGhpY0FkZHJlc3MoQmFzZU1vZGVsKToKICAgICIiIgogICAgVHJhdmVsUnVsZUdlb2dyYXBoaWNBZGRyZXNzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzdHJlZXRfbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik5hbWUgb2YgYSBzdHJlZXQgb3IgdGhvcm91Z2hmYXJlLiBUaGUgdmFsdWUgbXVzdCBiZSBlbmNyeXB0ZWQuIiwgYWxpYXM9InN0cmVldE5hbWUiKQogICAgdG93bl9uYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTmFtZSBvZiBhIGJ1aWx0LXVwIGFyZWEsIHdpdGggZGVmaW5lZCBib3VuZGFyaWVzLCBhbmQgYSBsb2NhbCBnb3Zlcm5tZW50LiBUaGUgdmFsdWUgbXVzdCBiZSBlbmNyeXB0ZWQuIiwgYWxpYXM9InRvd25OYW1lIikKICAgIGNvdW50cnk6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOYXRpb24gd2l0aCBpdHMgb3duIGdvdmVybm1lbnQgKElTTy0zMTY2IEFscGhhLTIgY291bnRyeSBjb2RlKS4gVGhlIHZhbHVlIG11c3QgYmUgZW5jcnlwdGVkLiIpCiAgICBidWlsZGluZ19udW1iZXI6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOdW1iZXIgdGhhdCBpZGVudGlmaWVzIHRoZSBwb3NpdGlvbiBvZiBhIGJ1aWxkaW5nIG9uIGEgc3RyZWV0LiBUaGUgdmFsdWUgbXVzdCBiZSBlbmNyeXB0ZWQuIiwgYWxpYXM9ImJ1aWxkaW5nTnVtYmVyIikKICAgIHBvc3RfY29kZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IklkZW50aWZpZXIgY29uc2lzdGluZyBvZiBhIGdyb3VwIG9mIGxldHRlcnMgYW5kL29yIG51bWJlcnMgYWRkZWQgdG8gYSBwb3N0YWwgYWRkcmVzcyB0byBhc3Npc3QgdGhlIHNvcnRpbmcgb2YgbWFpbC4gVGhlIHZhbHVlIG11c3QgYmUgZW5jcnlwdGVkLiIsIGFsaWFzPSJwb3N0Q29kZSIpCiAgICBhZGRyZXNzX3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTcGVjaWZpZXMgdGhlIHR5cGUgb2YgYWRkcmVzcy4gQWNjZXB0YWJsZSB2YWx1ZXMgYXJlOiAtICdIT01FJzogUmVzaWRlbnRpYWwsIHRoZSBob21lIGFkZHJlc3MgLSAnQklaWic6IEJ1c2luZXNzLCB0aGUgYnVzaW5lc3MgYWRkcmVzcyAtICdHRU9HJzogR2VvZ3JhcGhpYywgYW4gdW5zcGVjaWZpZWQgcGh5c2ljYWwgKGdlb2dyYXBoaWNhbCkgYWRkcmVzcyBUaGUgdmFsdWUgbXVzdCBiZSBlbmNyeXB0ZWQuIiwgYWxpYXM9ImFkZHJlc3NUeXBlIikKICAgIGRlcGFydG1lbnQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJZGVudGlmaWNhdGlvbiBvZiBhIGRpdmlzaW9uIG9mIGEgbGFyZ2Ugb3JnYW5pc2F0aW9uIG9yIGJ1aWxkaW5nLiBUaGUgdmFsdWUgbXVzdCBiZSBlbmNyeXB0ZWQuIikKICAgIHN1Yl9kZXBhcnRtZW50OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSWRlbnRpZmljYXRpb24gb2YgYSBzdWItZGl2aXNpb24gb2YgYSBsYXJnZSBvcmdhbmlzYXRpb24gb3IgYnVpbGRpbmcuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4iLCBhbGlhcz0ic3ViRGVwYXJ0bWVudCIpCiAgICBidWlsZGluZ19uYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTmFtZSBvZiB0aGUgYnVpbGRpbmcgb3IgaG91c2UuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4iLCBhbGlhcz0iYnVpbGRpbmdOYW1lIikKICAgIGZsb29yOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRmxvb3Igb3Igc3RvcmV5IHdpdGhpbiBhIGJ1aWxkaW5nLiBUaGUgdmFsdWUgbXVzdCBiZSBlbmNyeXB0ZWQuIikKICAgIHBvc3RfYm94OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTnVtYmVyZWQgYm94IGluIGEgcG9zdCBvZmZpY2UuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4iLCBhbGlhcz0icG9zdEJveCIpCiAgICByb29tOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQnVpbGRpbmcgcm9vbSBudW1iZXIuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4iKQogICAgdG93bl9sb2NhdGlvbl9uYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iU3BlY2lmaWMgbG9jYXRpb24gbmFtZSB3aXRoaW4gdGhlIHRvd24uIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4iLCBhbGlhcz0idG93bkxvY2F0aW9uTmFtZSIpCiAgICBkaXN0cmljdF9uYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSWRlbnRpZmllcyBhIHN1YmRpdmlzaW9uIHdpdGhpbiBhIGNvdW50cnkgc3ViZGl2aXNpb24uIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4iLCBhbGlhcz0iZGlzdHJpY3ROYW1lIikKICAgIGNvdW50cnlfc3ViX2RpdmlzaW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSWRlbnRpZmllcyBhIHN1YmRpdmlzaW9uIG9mIGEgY291bnRyeSBzdWNoIGFzIHN0YXRlLCByZWdpb24sIG9yIHByb3ZpbmNlLiBUaGUgdmFsdWUgbXVzdCBiZSBlbmNyeXB0ZWQuIiwgYWxpYXM9ImNvdW50cnlTdWJEaXZpc2lvbiIpCiAgICBhZGRyZXNzX2xpbmU6IE9wdGlvbmFsW0xpc3RbU3RyaWN0U3RyXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJbmZvcm1hdGlvbiB0aGF0IGxvY2F0ZXMgYW5kIGlkZW50aWZpZXMgYSBzcGVjaWZpYyBhZGRyZXNzLCBwcmVzZW50ZWQgaW4gZnJlZSBmb3JtYXQgdGV4dC4gRWFjaCBpdGVtIG11c3QgYmUgZW5jcnlwdGVkLiIsIGFsaWFzPSJhZGRyZXNzTGluZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInN0cmVldE5hbWUiLCAidG93bk5hbWUiLCAiY291bnRyeSIsICJidWlsZGluZ051bWJlciIsICJwb3N0Q29kZSIsICJhZGRyZXNzVHlwZSIsICJkZXBhcnRtZW50IiwgInN1YkRlcGFydG1lbnQiLCAiYnVpbGRpbmdOYW1lIiwgImZsb29yIiwgInBvc3RCb3giLCAicm9vbSIsICJ0b3duTG9jYXRpb25OYW1lIiwgImRpc3RyaWN0TmFtZSIsICJjb3VudHJ5U3ViRGl2aXNpb24iLCAiYWRkcmVzc0xpbmUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVHZW9ncmFwaGljQWRkcmVzcyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlR2VvZ3JhcGhpY0FkZHJlc3MgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3RyZWV0TmFtZSI6IG9iai5nZXQoInN0cmVldE5hbWUiKSwKICAgICAgICAgICAgInRvd25OYW1lIjogb2JqLmdldCgidG93bk5hbWUiKSwKICAgICAgICAgICAgImNvdW50cnkiOiBvYmouZ2V0KCJjb3VudHJ5IiksCiAgICAgICAgICAgICJidWlsZGluZ051bWJlciI6IG9iai5nZXQoImJ1aWxkaW5nTnVtYmVyIiksCiAgICAgICAgICAgICJwb3N0Q29kZSI6IG9iai5nZXQoInBvc3RDb2RlIiksCiAgICAgICAgICAgICJhZGRyZXNzVHlwZSI6IG9iai5nZXQoImFkZHJlc3NUeXBlIiksCiAgICAgICAgICAgICJkZXBhcnRtZW50Ijogb2JqLmdldCgiZGVwYXJ0bWVudCIpLAogICAgICAgICAgICAic3ViRGVwYXJ0bWVudCI6IG9iai5nZXQoInN1YkRlcGFydG1lbnQiKSwKICAgICAgICAgICAgImJ1aWxkaW5nTmFtZSI6IG9iai5nZXQoImJ1aWxkaW5nTmFtZSIpLAogICAgICAgICAgICAiZmxvb3IiOiBvYmouZ2V0KCJmbG9vciIpLAogICAgICAgICAgICAicG9zdEJveCI6IG9iai5nZXQoInBvc3RCb3giKSwKICAgICAgICAgICAgInJvb20iOiBvYmouZ2V0KCJyb29tIiksCiAgICAgICAgICAgICJ0b3duTG9jYXRpb25OYW1lIjogb2JqLmdldCgidG93bkxvY2F0aW9uTmFtZSIpLAogICAgICAgICAgICAiZGlzdHJpY3ROYW1lIjogb2JqLmdldCgiZGlzdHJpY3ROYW1lIiksCiAgICAgICAgICAgICJjb3VudHJ5U3ViRGl2aXNpb24iOiBvYmouZ2V0KCJjb3VudHJ5U3ViRGl2aXNpb24iKSwKICAgICAgICAgICAgImFkZHJlc3NMaW5lIjogb2JqLmdldCgiYWRkcmVzc0xpbmUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/travel_rule_get_all_vasps_response.py b/fireblocks/models/travel_rule_get_all_vasps_response.py index 5130b02c..70611740 100644 --- a/fireblocks/models/travel_rule_get_all_vasps_response.py +++ b/fireblocks/models/travel_rule_get_all_vasps_response.py @@ -1,105 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.travel_rule_vasp import TravelRuleVASP -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleGetAllVASPsResponse(BaseModel): - """ - TravelRuleGetAllVASPsResponse - """ # noqa: E501 - data: List[TravelRuleVASP] = Field(description="An array of VASP objects, referencing the TravelRuleVASP schema.") - total: Optional[StrictInt] = Field(default=None, description="The total number of VASPs.") - next: Optional[StrictStr] = Field(default=None, description="The URL for the next page of results.") - __properties: ClassVar[List[str]] = ["data", "total", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleGetAllVASPsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # set to None if next (nullable) is None - # and model_fields_set contains the field - if self.next is None and "next" in self.model_fields_set: - _dict['next'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleGetAllVASPsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [TravelRuleVASP.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "total": obj.get("total"), - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFzcCBpbXBvcnQgVHJhdmVsUnVsZVZBU1AKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVHJhdmVsUnVsZUdldEFsbFZBU1BzUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgVHJhdmVsUnVsZUdldEFsbFZBU1BzUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGRhdGE6IExpc3RbVHJhdmVsUnVsZVZBU1BdID0gRmllbGQoZGVzY3JpcHRpb249IkFuIGFycmF5IG9mIFZBU1Agb2JqZWN0cywgcmVmZXJlbmNpbmcgdGhlIFRyYXZlbFJ1bGVWQVNQIHNjaGVtYS4iKQogICAgdG90YWw6IE9wdGlvbmFsW1N0cmljdEludF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgdG90YWwgbnVtYmVyIG9mIFZBU1BzLiIpCiAgICBuZXh0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIFVSTCBmb3IgdGhlIG5leHQgcGFnZSBvZiByZXN1bHRzLiIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRhdGEiLCAidG90YWwiLCAibmV4dCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZUdldEFsbFZBU1BzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZGF0YSAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZGF0YToKICAgICAgICAgICAgZm9yIF9pdGVtX2RhdGEgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZGF0YToKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2RhdGEudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZGF0YSddID0gX2l0ZW1zCiAgICAgICAgIyBzZXQgdG8gTm9uZSBpZiBuZXh0IChudWxsYWJsZSkgaXMgTm9uZQogICAgICAgICMgYW5kIG1vZGVsX2ZpZWxkc19zZXQgY29udGFpbnMgdGhlIGZpZWxkCiAgICAgICAgaWYgc2VsZi5uZXh0IGlzIE5vbmUgYW5kICJuZXh0IiBpbiBzZWxmLm1vZGVsX2ZpZWxkc19zZXQ6CiAgICAgICAgICAgIF9kaWN0WyduZXh0J10gPSBOb25lCgogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZUdldEFsbFZBU1BzUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZGF0YSI6IFtUcmF2ZWxSdWxlVkFTUC5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImRhdGEiXV0gaWYgb2JqLmdldCgiZGF0YSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInRvdGFsIjogb2JqLmdldCgidG90YWwiKSwKICAgICAgICAgICAgIm5leHQiOiBvYmouZ2V0KCJuZXh0IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/travel_rule_issuer.py b/fireblocks/models/travel_rule_issuer.py index fbb38fc5..651e5dd0 100644 --- a/fireblocks/models/travel_rule_issuer.py +++ b/fireblocks/models/travel_rule_issuer.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleIssuer(BaseModel): - """ - TravelRuleIssuer - """ # noqa: E501 - issuer_did: StrictStr = Field(alias="issuerDid") - __properties: ClassVar[List[str]] = ["issuerDid"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleIssuer from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleIssuer from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "issuerDid": obj.get("issuerDid") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRyYXZlbFJ1bGVJc3N1ZXIoQmFzZU1vZGVsKToKICAgICIiIgogICAgVHJhdmVsUnVsZUlzc3VlcgogICAgIiIiICMgbm9xYTogRTUwMQogICAgaXNzdWVyX2RpZDogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9Imlzc3VlckRpZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlzc3VlckRpZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZUlzc3VlciBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlSXNzdWVyIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlzc3VlckRpZCI6IG9iai5nZXQoImlzc3VlckRpZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/travel_rule_issuers.py b/fireblocks/models/travel_rule_issuers.py index 548dcbe0..2d68ef82 100644 --- a/fireblocks/models/travel_rule_issuers.py +++ b/fireblocks/models/travel_rule_issuers.py @@ -1,157 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.travel_rule_issuer import TravelRuleIssuer -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleIssuers(BaseModel): - """ - TravelRuleIssuers - """ # noqa: E501 - year_founded: TravelRuleIssuer = Field(alias="yearFounded") - is_regulated: TravelRuleIssuer = Field(alias="isRegulated") - regulatory_authorities: TravelRuleIssuer = Field(alias="regulatoryAuthorities") - name: TravelRuleIssuer - logo: TravelRuleIssuer - website: TravelRuleIssuer - legal_name: TravelRuleIssuer = Field(alias="legalName") - legal_structure: TravelRuleIssuer = Field(alias="legalStructure") - incorporation_country: TravelRuleIssuer = Field(alias="incorporationCountry") - business_number: TravelRuleIssuer = Field(alias="businessNumber") - address_line1: TravelRuleIssuer = Field(alias="addressLine1") - city: TravelRuleIssuer - country: TravelRuleIssuer - description: TravelRuleIssuer - __properties: ClassVar[List[str]] = ["yearFounded", "isRegulated", "regulatoryAuthorities", "name", "logo", "website", "legalName", "legalStructure", "incorporationCountry", "businessNumber", "addressLine1", "city", "country", "description"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleIssuers from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of year_founded - if self.year_founded: - _dict['yearFounded'] = self.year_founded.to_dict() - # override the default output from pydantic by calling `to_dict()` of is_regulated - if self.is_regulated: - _dict['isRegulated'] = self.is_regulated.to_dict() - # override the default output from pydantic by calling `to_dict()` of regulatory_authorities - if self.regulatory_authorities: - _dict['regulatoryAuthorities'] = self.regulatory_authorities.to_dict() - # override the default output from pydantic by calling `to_dict()` of name - if self.name: - _dict['name'] = self.name.to_dict() - # override the default output from pydantic by calling `to_dict()` of logo - if self.logo: - _dict['logo'] = self.logo.to_dict() - # override the default output from pydantic by calling `to_dict()` of website - if self.website: - _dict['website'] = self.website.to_dict() - # override the default output from pydantic by calling `to_dict()` of legal_name - if self.legal_name: - _dict['legalName'] = self.legal_name.to_dict() - # override the default output from pydantic by calling `to_dict()` of legal_structure - if self.legal_structure: - _dict['legalStructure'] = self.legal_structure.to_dict() - # override the default output from pydantic by calling `to_dict()` of incorporation_country - if self.incorporation_country: - _dict['incorporationCountry'] = self.incorporation_country.to_dict() - # override the default output from pydantic by calling `to_dict()` of business_number - if self.business_number: - _dict['businessNumber'] = self.business_number.to_dict() - # override the default output from pydantic by calling `to_dict()` of address_line1 - if self.address_line1: - _dict['addressLine1'] = self.address_line1.to_dict() - # override the default output from pydantic by calling `to_dict()` of city - if self.city: - _dict['city'] = self.city.to_dict() - # override the default output from pydantic by calling `to_dict()` of country - if self.country: - _dict['country'] = self.country.to_dict() - # override the default output from pydantic by calling `to_dict()` of description - if self.description: - _dict['description'] = self.description.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleIssuers from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "yearFounded": TravelRuleIssuer.from_dict(obj["yearFounded"]) if obj.get("yearFounded") is not None else None, - "isRegulated": TravelRuleIssuer.from_dict(obj["isRegulated"]) if obj.get("isRegulated") is not None else None, - "regulatoryAuthorities": TravelRuleIssuer.from_dict(obj["regulatoryAuthorities"]) if obj.get("regulatoryAuthorities") is not None else None, - "name": TravelRuleIssuer.from_dict(obj["name"]) if obj.get("name") is not None else None, - "logo": TravelRuleIssuer.from_dict(obj["logo"]) if obj.get("logo") is not None else None, - "website": TravelRuleIssuer.from_dict(obj["website"]) if obj.get("website") is not None else None, - "legalName": TravelRuleIssuer.from_dict(obj["legalName"]) if obj.get("legalName") is not None else None, - "legalStructure": TravelRuleIssuer.from_dict(obj["legalStructure"]) if obj.get("legalStructure") is not None else None, - "incorporationCountry": TravelRuleIssuer.from_dict(obj["incorporationCountry"]) if obj.get("incorporationCountry") is not None else None, - "businessNumber": TravelRuleIssuer.from_dict(obj["businessNumber"]) if obj.get("businessNumber") is not None else None, - "addressLine1": TravelRuleIssuer.from_dict(obj["addressLine1"]) if obj.get("addressLine1") is not None else None, - "city": TravelRuleIssuer.from_dict(obj["city"]) if obj.get("city") is not None else None, - "country": TravelRuleIssuer.from_dict(obj["country"]) if obj.get("country") is not None else None, - "description": TravelRuleIssuer.from_dict(obj["description"]) if obj.get("description") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2lzc3VlciBpbXBvcnQgVHJhdmVsUnVsZUlzc3Vlcgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmF2ZWxSdWxlSXNzdWVycyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUcmF2ZWxSdWxlSXNzdWVycwogICAgIiIiICMgbm9xYTogRTUwMQogICAgeWVhcl9mb3VuZGVkOiBUcmF2ZWxSdWxlSXNzdWVyID0gRmllbGQoYWxpYXM9InllYXJGb3VuZGVkIikKICAgIGlzX3JlZ3VsYXRlZDogVHJhdmVsUnVsZUlzc3VlciA9IEZpZWxkKGFsaWFzPSJpc1JlZ3VsYXRlZCIpCiAgICByZWd1bGF0b3J5X2F1dGhvcml0aWVzOiBUcmF2ZWxSdWxlSXNzdWVyID0gRmllbGQoYWxpYXM9InJlZ3VsYXRvcnlBdXRob3JpdGllcyIpCiAgICBuYW1lOiBUcmF2ZWxSdWxlSXNzdWVyCiAgICBsb2dvOiBUcmF2ZWxSdWxlSXNzdWVyCiAgICB3ZWJzaXRlOiBUcmF2ZWxSdWxlSXNzdWVyCiAgICBsZWdhbF9uYW1lOiBUcmF2ZWxSdWxlSXNzdWVyID0gRmllbGQoYWxpYXM9ImxlZ2FsTmFtZSIpCiAgICBsZWdhbF9zdHJ1Y3R1cmU6IFRyYXZlbFJ1bGVJc3N1ZXIgPSBGaWVsZChhbGlhcz0ibGVnYWxTdHJ1Y3R1cmUiKQogICAgaW5jb3Jwb3JhdGlvbl9jb3VudHJ5OiBUcmF2ZWxSdWxlSXNzdWVyID0gRmllbGQoYWxpYXM9ImluY29ycG9yYXRpb25Db3VudHJ5IikKICAgIGJ1c2luZXNzX251bWJlcjogVHJhdmVsUnVsZUlzc3VlciA9IEZpZWxkKGFsaWFzPSJidXNpbmVzc051bWJlciIpCiAgICBhZGRyZXNzX2xpbmUxOiBUcmF2ZWxSdWxlSXNzdWVyID0gRmllbGQoYWxpYXM9ImFkZHJlc3NMaW5lMSIpCiAgICBjaXR5OiBUcmF2ZWxSdWxlSXNzdWVyCiAgICBjb3VudHJ5OiBUcmF2ZWxSdWxlSXNzdWVyCiAgICBkZXNjcmlwdGlvbjogVHJhdmVsUnVsZUlzc3VlcgogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ5ZWFyRm91bmRlZCIsICJpc1JlZ3VsYXRlZCIsICJyZWd1bGF0b3J5QXV0aG9yaXRpZXMiLCAibmFtZSIsICJsb2dvIiwgIndlYnNpdGUiLCAibGVnYWxOYW1lIiwgImxlZ2FsU3RydWN0dXJlIiwgImluY29ycG9yYXRpb25Db3VudHJ5IiwgImJ1c2luZXNzTnVtYmVyIiwgImFkZHJlc3NMaW5lMSIsICJjaXR5IiwgImNvdW50cnkiLCAiZGVzY3JpcHRpb24iXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVJc3N1ZXJzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgeWVhcl9mb3VuZGVkCiAgICAgICAgaWYgc2VsZi55ZWFyX2ZvdW5kZWQ6CiAgICAgICAgICAgIF9kaWN0Wyd5ZWFyRm91bmRlZCddID0gc2VsZi55ZWFyX2ZvdW5kZWQudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGlzX3JlZ3VsYXRlZAogICAgICAgIGlmIHNlbGYuaXNfcmVndWxhdGVkOgogICAgICAgICAgICBfZGljdFsnaXNSZWd1bGF0ZWQnXSA9IHNlbGYuaXNfcmVndWxhdGVkLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiByZWd1bGF0b3J5X2F1dGhvcml0aWVzCiAgICAgICAgaWYgc2VsZi5yZWd1bGF0b3J5X2F1dGhvcml0aWVzOgogICAgICAgICAgICBfZGljdFsncmVndWxhdG9yeUF1dGhvcml0aWVzJ10gPSBzZWxmLnJlZ3VsYXRvcnlfYXV0aG9yaXRpZXMudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG5hbWUKICAgICAgICBpZiBzZWxmLm5hbWU6CiAgICAgICAgICAgIF9kaWN0WyduYW1lJ10gPSBzZWxmLm5hbWUudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGxvZ28KICAgICAgICBpZiBzZWxmLmxvZ286CiAgICAgICAgICAgIF9kaWN0Wydsb2dvJ10gPSBzZWxmLmxvZ28udG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHdlYnNpdGUKICAgICAgICBpZiBzZWxmLndlYnNpdGU6CiAgICAgICAgICAgIF9kaWN0Wyd3ZWJzaXRlJ10gPSBzZWxmLndlYnNpdGUudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGxlZ2FsX25hbWUKICAgICAgICBpZiBzZWxmLmxlZ2FsX25hbWU6CiAgICAgICAgICAgIF9kaWN0WydsZWdhbE5hbWUnXSA9IHNlbGYubGVnYWxfbmFtZS50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgbGVnYWxfc3RydWN0dXJlCiAgICAgICAgaWYgc2VsZi5sZWdhbF9zdHJ1Y3R1cmU6CiAgICAgICAgICAgIF9kaWN0WydsZWdhbFN0cnVjdHVyZSddID0gc2VsZi5sZWdhbF9zdHJ1Y3R1cmUudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGluY29ycG9yYXRpb25fY291bnRyeQogICAgICAgIGlmIHNlbGYuaW5jb3Jwb3JhdGlvbl9jb3VudHJ5OgogICAgICAgICAgICBfZGljdFsnaW5jb3Jwb3JhdGlvbkNvdW50cnknXSA9IHNlbGYuaW5jb3Jwb3JhdGlvbl9jb3VudHJ5LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBidXNpbmVzc19udW1iZXIKICAgICAgICBpZiBzZWxmLmJ1c2luZXNzX251bWJlcjoKICAgICAgICAgICAgX2RpY3RbJ2J1c2luZXNzTnVtYmVyJ10gPSBzZWxmLmJ1c2luZXNzX251bWJlci50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYWRkcmVzc19saW5lMQogICAgICAgIGlmIHNlbGYuYWRkcmVzc19saW5lMToKICAgICAgICAgICAgX2RpY3RbJ2FkZHJlc3NMaW5lMSddID0gc2VsZi5hZGRyZXNzX2xpbmUxLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBjaXR5CiAgICAgICAgaWYgc2VsZi5jaXR5OgogICAgICAgICAgICBfZGljdFsnY2l0eSddID0gc2VsZi5jaXR5LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBjb3VudHJ5CiAgICAgICAgaWYgc2VsZi5jb3VudHJ5OgogICAgICAgICAgICBfZGljdFsnY291bnRyeSddID0gc2VsZi5jb3VudHJ5LnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBkZXNjcmlwdGlvbgogICAgICAgIGlmIHNlbGYuZGVzY3JpcHRpb246CiAgICAgICAgICAgIF9kaWN0WydkZXNjcmlwdGlvbiddID0gc2VsZi5kZXNjcmlwdGlvbi50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVJc3N1ZXJzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInllYXJGb3VuZGVkIjogVHJhdmVsUnVsZUlzc3Vlci5mcm9tX2RpY3Qob2JqWyJ5ZWFyRm91bmRlZCJdKSBpZiBvYmouZ2V0KCJ5ZWFyRm91bmRlZCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImlzUmVndWxhdGVkIjogVHJhdmVsUnVsZUlzc3Vlci5mcm9tX2RpY3Qob2JqWyJpc1JlZ3VsYXRlZCJdKSBpZiBvYmouZ2V0KCJpc1JlZ3VsYXRlZCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInJlZ3VsYXRvcnlBdXRob3JpdGllcyI6IFRyYXZlbFJ1bGVJc3N1ZXIuZnJvbV9kaWN0KG9ialsicmVndWxhdG9yeUF1dGhvcml0aWVzIl0pIGlmIG9iai5nZXQoInJlZ3VsYXRvcnlBdXRob3JpdGllcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIm5hbWUiOiBUcmF2ZWxSdWxlSXNzdWVyLmZyb21fZGljdChvYmpbIm5hbWUiXSkgaWYgb2JqLmdldCgibmFtZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImxvZ28iOiBUcmF2ZWxSdWxlSXNzdWVyLmZyb21fZGljdChvYmpbImxvZ28iXSkgaWYgb2JqLmdldCgibG9nbyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgIndlYnNpdGUiOiBUcmF2ZWxSdWxlSXNzdWVyLmZyb21fZGljdChvYmpbIndlYnNpdGUiXSkgaWYgb2JqLmdldCgid2Vic2l0ZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImxlZ2FsTmFtZSI6IFRyYXZlbFJ1bGVJc3N1ZXIuZnJvbV9kaWN0KG9ialsibGVnYWxOYW1lIl0pIGlmIG9iai5nZXQoImxlZ2FsTmFtZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImxlZ2FsU3RydWN0dXJlIjogVHJhdmVsUnVsZUlzc3Vlci5mcm9tX2RpY3Qob2JqWyJsZWdhbFN0cnVjdHVyZSJdKSBpZiBvYmouZ2V0KCJsZWdhbFN0cnVjdHVyZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImluY29ycG9yYXRpb25Db3VudHJ5IjogVHJhdmVsUnVsZUlzc3Vlci5mcm9tX2RpY3Qob2JqWyJpbmNvcnBvcmF0aW9uQ291bnRyeSJdKSBpZiBvYmouZ2V0KCJpbmNvcnBvcmF0aW9uQ291bnRyeSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImJ1c2luZXNzTnVtYmVyIjogVHJhdmVsUnVsZUlzc3Vlci5mcm9tX2RpY3Qob2JqWyJidXNpbmVzc051bWJlciJdKSBpZiBvYmouZ2V0KCJidXNpbmVzc051bWJlciIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImFkZHJlc3NMaW5lMSI6IFRyYXZlbFJ1bGVJc3N1ZXIuZnJvbV9kaWN0KG9ialsiYWRkcmVzc0xpbmUxIl0pIGlmIG9iai5nZXQoImFkZHJlc3NMaW5lMSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImNpdHkiOiBUcmF2ZWxSdWxlSXNzdWVyLmZyb21fZGljdChvYmpbImNpdHkiXSkgaWYgb2JqLmdldCgiY2l0eSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImNvdW50cnkiOiBUcmF2ZWxSdWxlSXNzdWVyLmZyb21fZGljdChvYmpbImNvdW50cnkiXSkgaWYgb2JqLmdldCgiY291bnRyeSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogVHJhdmVsUnVsZUlzc3Vlci5mcm9tX2RpY3Qob2JqWyJkZXNjcmlwdGlvbiJdKSBpZiBvYmouZ2V0KCJkZXNjcmlwdGlvbiIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/travel_rule_legal_person.py b/fireblocks/models/travel_rule_legal_person.py index a49d6e88..a68db14d 100644 --- a/fireblocks/models/travel_rule_legal_person.py +++ b/fireblocks/models/travel_rule_legal_person.py @@ -1,114 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.travel_rule_geographic_address import TravelRuleGeographicAddress -from fireblocks.models.travel_rule_legal_person_name_identifier import TravelRuleLegalPersonNameIdentifier -from fireblocks.models.travel_rule_national_identification import TravelRuleNationalIdentification -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleLegalPerson(BaseModel): - """ - TravelRuleLegalPerson - """ # noqa: E501 - name: Optional[TravelRuleLegalPersonNameIdentifier] = None - geographic_address: Optional[List[TravelRuleGeographicAddress]] = Field(default=None, description="The array of geographic addresses associated with the legal person.", alias="geographicAddress") - national_identification: Optional[TravelRuleNationalIdentification] = Field(default=None, alias="nationalIdentification") - customer_identification: Optional[StrictStr] = Field(default=None, description="A unique identifier that identifies the customer in the organization's context. The value must be encrypted.", alias="customerIdentification") - customer_number: Optional[StrictStr] = Field(default=None, description="A distinct identifier that uniquely identifies the customer within the organization. The value must be encrypted.", alias="customerNumber") - country_of_registration: Optional[StrictStr] = Field(default=None, description="The ISO-3166 Alpha-2 country code where the legal person is registered. The value must be encrypted.", alias="countryOfRegistration") - __properties: ClassVar[List[str]] = ["name", "geographicAddress", "nationalIdentification", "customerIdentification", "customerNumber", "countryOfRegistration"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleLegalPerson from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of name - if self.name: - _dict['name'] = self.name.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in geographic_address (list) - _items = [] - if self.geographic_address: - for _item_geographic_address in self.geographic_address: - if _item_geographic_address: - _items.append(_item_geographic_address.to_dict()) - _dict['geographicAddress'] = _items - # override the default output from pydantic by calling `to_dict()` of national_identification - if self.national_identification: - _dict['nationalIdentification'] = self.national_identification.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleLegalPerson from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": TravelRuleLegalPersonNameIdentifier.from_dict(obj["name"]) if obj.get("name") is not None else None, - "geographicAddress": [TravelRuleGeographicAddress.from_dict(_item) for _item in obj["geographicAddress"]] if obj.get("geographicAddress") is not None else None, - "nationalIdentification": TravelRuleNationalIdentification.from_dict(obj["nationalIdentification"]) if obj.get("nationalIdentification") is not None else None, - "customerIdentification": obj.get("customerIdentification"), - "customerNumber": obj.get("customerNumber"), - "countryOfRegistration": obj.get("countryOfRegistration") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2dlb2dyYXBoaWNfYWRkcmVzcyBpbXBvcnQgVHJhdmVsUnVsZUdlb2dyYXBoaWNBZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbGVnYWxfcGVyc29uX25hbWVfaWRlbnRpZmllciBpbXBvcnQgVHJhdmVsUnVsZUxlZ2FsUGVyc29uTmFtZUlkZW50aWZpZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXRpb25hbF9pZGVudGlmaWNhdGlvbiBpbXBvcnQgVHJhdmVsUnVsZU5hdGlvbmFsSWRlbnRpZmljYXRpb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVHJhdmVsUnVsZUxlZ2FsUGVyc29uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRyYXZlbFJ1bGVMZWdhbFBlcnNvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgbmFtZTogT3B0aW9uYWxbVHJhdmVsUnVsZUxlZ2FsUGVyc29uTmFtZUlkZW50aWZpZXJdID0gTm9uZQogICAgZ2VvZ3JhcGhpY19hZGRyZXNzOiBPcHRpb25hbFtMaXN0W1RyYXZlbFJ1bGVHZW9ncmFwaGljQWRkcmVzc11dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGFycmF5IG9mIGdlb2dyYXBoaWMgYWRkcmVzc2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGVnYWwgcGVyc29uLiIsIGFsaWFzPSJnZW9ncmFwaGljQWRkcmVzcyIpCiAgICBuYXRpb25hbF9pZGVudGlmaWNhdGlvbjogT3B0aW9uYWxbVHJhdmVsUnVsZU5hdGlvbmFsSWRlbnRpZmljYXRpb25dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ibmF0aW9uYWxJZGVudGlmaWNhdGlvbiIpCiAgICBjdXN0b21lcl9pZGVudGlmaWNhdGlvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgdGhhdCBpZGVudGlmaWVzIHRoZSBjdXN0b21lciBpbiB0aGUgb3JnYW5pemF0aW9uJ3MgY29udGV4dC4gVGhlIHZhbHVlIG11c3QgYmUgZW5jcnlwdGVkLiIsIGFsaWFzPSJjdXN0b21lcklkZW50aWZpY2F0aW9uIikKICAgIGN1c3RvbWVyX251bWJlcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkEgZGlzdGluY3QgaWRlbnRpZmllciB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIGN1c3RvbWVyIHdpdGhpbiB0aGUgb3JnYW5pemF0aW9uLiBUaGUgdmFsdWUgbXVzdCBiZSBlbmNyeXB0ZWQuIiwgYWxpYXM9ImN1c3RvbWVyTnVtYmVyIikKICAgIGNvdW50cnlfb2ZfcmVnaXN0cmF0aW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIElTTy0zMTY2IEFscGhhLTIgY291bnRyeSBjb2RlIHdoZXJlIHRoZSBsZWdhbCBwZXJzb24gaXMgcmVnaXN0ZXJlZC4gVGhlIHZhbHVlIG11c3QgYmUgZW5jcnlwdGVkLiIsIGFsaWFzPSJjb3VudHJ5T2ZSZWdpc3RyYXRpb24iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJuYW1lIiwgImdlb2dyYXBoaWNBZGRyZXNzIiwgIm5hdGlvbmFsSWRlbnRpZmljYXRpb24iLCAiY3VzdG9tZXJJZGVudGlmaWNhdGlvbiIsICJjdXN0b21lck51bWJlciIsICJjb3VudHJ5T2ZSZWdpc3RyYXRpb24iXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVMZWdhbFBlcnNvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG5hbWUKICAgICAgICBpZiBzZWxmLm5hbWU6CiAgICAgICAgICAgIF9kaWN0WyduYW1lJ10gPSBzZWxmLm5hbWUudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBnZW9ncmFwaGljX2FkZHJlc3MgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmdlb2dyYXBoaWNfYWRkcmVzczoKICAgICAgICAgICAgZm9yIF9pdGVtX2dlb2dyYXBoaWNfYWRkcmVzcyBpbiBzZWxmLmdlb2dyYXBoaWNfYWRkcmVzczoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2dlb2dyYXBoaWNfYWRkcmVzczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2dlb2dyYXBoaWNfYWRkcmVzcy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydnZW9ncmFwaGljQWRkcmVzcyddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG5hdGlvbmFsX2lkZW50aWZpY2F0aW9uCiAgICAgICAgaWYgc2VsZi5uYXRpb25hbF9pZGVudGlmaWNhdGlvbjoKICAgICAgICAgICAgX2RpY3RbJ25hdGlvbmFsSWRlbnRpZmljYXRpb24nXSA9IHNlbGYubmF0aW9uYWxfaWRlbnRpZmljYXRpb24udG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlTGVnYWxQZXJzb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibmFtZSI6IFRyYXZlbFJ1bGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyLmZyb21fZGljdChvYmpbIm5hbWUiXSkgaWYgb2JqLmdldCgibmFtZSIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImdlb2dyYXBoaWNBZGRyZXNzIjogW1RyYXZlbFJ1bGVHZW9ncmFwaGljQWRkcmVzcy5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImdlb2dyYXBoaWNBZGRyZXNzIl1dIGlmIG9iai5nZXQoImdlb2dyYXBoaWNBZGRyZXNzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibmF0aW9uYWxJZGVudGlmaWNhdGlvbiI6IFRyYXZlbFJ1bGVOYXRpb25hbElkZW50aWZpY2F0aW9uLmZyb21fZGljdChvYmpbIm5hdGlvbmFsSWRlbnRpZmljYXRpb24iXSkgaWYgb2JqLmdldCgibmF0aW9uYWxJZGVudGlmaWNhdGlvbiIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImN1c3RvbWVySWRlbnRpZmljYXRpb24iOiBvYmouZ2V0KCJjdXN0b21lcklkZW50aWZpY2F0aW9uIiksCiAgICAgICAgICAgICJjdXN0b21lck51bWJlciI6IG9iai5nZXQoImN1c3RvbWVyTnVtYmVyIiksCiAgICAgICAgICAgICJjb3VudHJ5T2ZSZWdpc3RyYXRpb24iOiBvYmouZ2V0KCJjb3VudHJ5T2ZSZWdpc3RyYXRpb24iKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/travel_rule_legal_person_name_identifier.py b/fireblocks/models/travel_rule_legal_person_name_identifier.py index d1bfb12d..9223710a 100644 --- a/fireblocks/models/travel_rule_legal_person_name_identifier.py +++ b/fireblocks/models/travel_rule_legal_person_name_identifier.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleLegalPersonNameIdentifier(BaseModel): - """ - TravelRuleLegalPersonNameIdentifier - """ # noqa: E501 - legal_person_name: Optional[StrictStr] = Field(default=None, description="Name by which the legal person is known. The value must be encrypted.", alias="legalPersonName") - legal_person_name_identifier_type: Optional[StrictStr] = Field(default=None, description="Specifies the type of name for a legal person. Acceptable values are: - 'REGISTERED': The official registered name. - 'TRADE': A trading name or DBA (Doing Business As) name. - 'OTHER': Any other type of name. The value must be encrypted.", alias="legalPersonNameIdentifierType") - __properties: ClassVar[List[str]] = ["legalPersonName", "legalPersonNameIdentifierType"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleLegalPersonNameIdentifier from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleLegalPersonNameIdentifier from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "legalPersonName": obj.get("legalPersonName"), - "legalPersonNameIdentifierType": obj.get("legalPersonNameIdentifierType") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmF2ZWxSdWxlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUcmF2ZWxSdWxlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllcgogICAgIiIiICMgbm9xYTogRTUwMQogICAgbGVnYWxfcGVyc29uX25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOYW1lIGJ5IHdoaWNoIHRoZSBsZWdhbCBwZXJzb24gaXMga25vd24uIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4iLCBhbGlhcz0ibGVnYWxQZXJzb25OYW1lIikKICAgIGxlZ2FsX3BlcnNvbl9uYW1lX2lkZW50aWZpZXJfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNwZWNpZmllcyB0aGUgdHlwZSBvZiBuYW1lIGZvciBhIGxlZ2FsIHBlcnNvbi4gQWNjZXB0YWJsZSB2YWx1ZXMgYXJlOiAtICdSRUdJU1RFUkVEJzogVGhlIG9mZmljaWFsIHJlZ2lzdGVyZWQgbmFtZS4gLSAnVFJBREUnOiBBIHRyYWRpbmcgbmFtZSBvciBEQkEgKERvaW5nIEJ1c2luZXNzIEFzKSBuYW1lLiAtICdPVEhFUic6IEFueSBvdGhlciB0eXBlIG9mIG5hbWUuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4iLCBhbGlhcz0ibGVnYWxQZXJzb25OYW1lSWRlbnRpZmllclR5cGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJsZWdhbFBlcnNvbk5hbWUiLCAibGVnYWxQZXJzb25OYW1lSWRlbnRpZmllclR5cGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImxlZ2FsUGVyc29uTmFtZSI6IG9iai5nZXQoImxlZ2FsUGVyc29uTmFtZSIpLAogICAgICAgICAgICAibGVnYWxQZXJzb25OYW1lSWRlbnRpZmllclR5cGUiOiBvYmouZ2V0KCJsZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyVHlwZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/travel_rule_matched_rule.py b/fireblocks/models/travel_rule_matched_rule.py index 988f7a73..6aaf69e7 100644 --- a/fireblocks/models/travel_rule_matched_rule.py +++ b/fireblocks/models/travel_rule_matched_rule.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum -from fireblocks.models.travel_rule_status_enum import TravelRuleStatusEnum -from fireblocks.models.travel_rule_verdict_enum import TravelRuleVerdictEnum -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleMatchedRule(BaseModel): - """ - The travel rule configuration that was matched - """ # noqa: E501 - direction: Optional[TravelRuleDirectionEnum] = None - status: Optional[TravelRuleStatusEnum] = None - amount_usd: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Amount in USD", alias="amountUSD") - amount: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Amount in base currency") - asset: Optional[StrictStr] = Field(default=None, description="Asset identifier") - action: Optional[TravelRuleVerdictEnum] = None - __properties: ClassVar[List[str]] = ["direction", "status", "amountUSD", "amount", "asset", "action"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleMatchedRule from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleMatchedRule from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "direction": obj.get("direction"), - "status": obj.get("status"), - "amountUSD": obj.get("amountUSD"), - "amount": obj.get("amount"), - "asset": obj.get("asset"), - "action": obj.get("action") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9kaXJlY3Rpb25fZW51bSBpbXBvcnQgVHJhdmVsUnVsZURpcmVjdGlvbkVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9zdGF0dXNfZW51bSBpbXBvcnQgVHJhdmVsUnVsZVN0YXR1c0VudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92ZXJkaWN0X2VudW0gaW1wb3J0IFRyYXZlbFJ1bGVWZXJkaWN0RW51bQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGUoQmFzZU1vZGVsKToKICAgICIiIgogICAgVGhlIHRyYXZlbCBydWxlIGNvbmZpZ3VyYXRpb24gdGhhdCB3YXMgbWF0Y2hlZAogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGlyZWN0aW9uOiBPcHRpb25hbFtUcmF2ZWxSdWxlRGlyZWN0aW9uRW51bV0gPSBOb25lCiAgICBzdGF0dXM6IE9wdGlvbmFsW1RyYXZlbFJ1bGVTdGF0dXNFbnVtXSA9IE5vbmUKICAgIGFtb3VudF91c2Q6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFtb3VudCBpbiBVU0QiLCBhbGlhcz0iYW1vdW50VVNEIikKICAgIGFtb3VudDogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQW1vdW50IGluIGJhc2UgY3VycmVuY3kiKQogICAgYXNzZXQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBc3NldCBpZGVudGlmaWVyIikKICAgIGFjdGlvbjogT3B0aW9uYWxbVHJhdmVsUnVsZVZlcmRpY3RFbnVtXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZGlyZWN0aW9uIiwgInN0YXR1cyIsICJhbW91bnRVU0QiLCAiYW1vdW50IiwgImFzc2V0IiwgImFjdGlvbiJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZU1hdGNoZWRSdWxlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVNYXRjaGVkUnVsZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkaXJlY3Rpb24iOiBvYmouZ2V0KCJkaXJlY3Rpb24iKSwKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAiYW1vdW50VVNEIjogb2JqLmdldCgiYW1vdW50VVNEIiksCiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKSwKICAgICAgICAgICAgImFzc2V0Ijogb2JqLmdldCgiYXNzZXQiKSwKICAgICAgICAgICAgImFjdGlvbiI6IG9iai5nZXQoImFjdGlvbiIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/travel_rule_national_identification.py b/fireblocks/models/travel_rule_national_identification.py index 827007e7..4817c305 100644 --- a/fireblocks/models/travel_rule_national_identification.py +++ b/fireblocks/models/travel_rule_national_identification.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleNationalIdentification(BaseModel): - """ - Represents a national identifier for a person or entity - """ # noqa: E501 - country_of_issue: Optional[StrictStr] = Field(default=None, description="Country that issued the national identifier (ISO-3166 Alpha-2 country code). The value must be encrypted.", alias="countryOfIssue") - national_identifier: Optional[StrictStr] = Field(default=None, description="National identifier (max 35 characters). The value must be encrypted.", alias="nationalIdentifier") - national_identifier_type: Optional[StrictStr] = Field(default=None, description="Type of national identifier. Acceptable values include: - 'PASSPORT': Passport number - 'NATIONAL_ID': National identification number - 'TAX_ID': Tax identification number - 'SOCIAL_SECURITY': Social security number The value must be encrypted.", alias="nationalIdentifierType") - registration_authority: Optional[StrictStr] = Field(default=None, description="Registration authority (format -> RA followed by 6 digits). The value must be encrypted.", alias="registrationAuthority") - __properties: ClassVar[List[str]] = ["countryOfIssue", "nationalIdentifier", "nationalIdentifierType", "registrationAuthority"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleNationalIdentification from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleNationalIdentification from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "countryOfIssue": obj.get("countryOfIssue"), - "nationalIdentifier": obj.get("nationalIdentifier"), - "nationalIdentifierType": obj.get("nationalIdentifierType"), - "registrationAuthority": obj.get("registrationAuthority") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmF2ZWxSdWxlTmF0aW9uYWxJZGVudGlmaWNhdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSZXByZXNlbnRzIGEgbmF0aW9uYWwgaWRlbnRpZmllciBmb3IgYSBwZXJzb24gb3IgZW50aXR5CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBjb3VudHJ5X29mX2lzc3VlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQ291bnRyeSB0aGF0IGlzc3VlZCB0aGUgbmF0aW9uYWwgaWRlbnRpZmllciAoSVNPLTMxNjYgQWxwaGEtMiBjb3VudHJ5IGNvZGUpLiBUaGUgdmFsdWUgbXVzdCBiZSBlbmNyeXB0ZWQuIiwgYWxpYXM9ImNvdW50cnlPZklzc3VlIikKICAgIG5hdGlvbmFsX2lkZW50aWZpZXI6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOYXRpb25hbCBpZGVudGlmaWVyIChtYXggMzUgY2hhcmFjdGVycykuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4iLCBhbGlhcz0ibmF0aW9uYWxJZGVudGlmaWVyIikKICAgIG5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlR5cGUgb2YgbmF0aW9uYWwgaWRlbnRpZmllci4gQWNjZXB0YWJsZSB2YWx1ZXMgaW5jbHVkZTogLSAnUEFTU1BPUlQnOiBQYXNzcG9ydCBudW1iZXIgLSAnTkFUSU9OQUxfSUQnOiBOYXRpb25hbCBpZGVudGlmaWNhdGlvbiBudW1iZXIgLSAnVEFYX0lEJzogVGF4IGlkZW50aWZpY2F0aW9uIG51bWJlciAtICdTT0NJQUxfU0VDVVJJVFknOiBTb2NpYWwgc2VjdXJpdHkgbnVtYmVyIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4iLCBhbGlhcz0ibmF0aW9uYWxJZGVudGlmaWVyVHlwZSIpCiAgICByZWdpc3RyYXRpb25fYXV0aG9yaXR5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUmVnaXN0cmF0aW9uIGF1dGhvcml0eSAoZm9ybWF0IC0+IFJBIGZvbGxvd2VkIGJ5IDYgZGlnaXRzKS4gVGhlIHZhbHVlIG11c3QgYmUgZW5jcnlwdGVkLiIsIGFsaWFzPSJyZWdpc3RyYXRpb25BdXRob3JpdHkiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJjb3VudHJ5T2ZJc3N1ZSIsICJuYXRpb25hbElkZW50aWZpZXIiLCAibmF0aW9uYWxJZGVudGlmaWVyVHlwZSIsICJyZWdpc3RyYXRpb25BdXRob3JpdHkiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVOYXRpb25hbElkZW50aWZpY2F0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVOYXRpb25hbElkZW50aWZpY2F0aW9uIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImNvdW50cnlPZklzc3VlIjogb2JqLmdldCgiY291bnRyeU9mSXNzdWUiKSwKICAgICAgICAgICAgIm5hdGlvbmFsSWRlbnRpZmllciI6IG9iai5nZXQoIm5hdGlvbmFsSWRlbnRpZmllciIpLAogICAgICAgICAgICAibmF0aW9uYWxJZGVudGlmaWVyVHlwZSI6IG9iai5nZXQoIm5hdGlvbmFsSWRlbnRpZmllclR5cGUiKSwKICAgICAgICAgICAgInJlZ2lzdHJhdGlvbkF1dGhvcml0eSI6IG9iai5nZXQoInJlZ2lzdHJhdGlvbkF1dGhvcml0eSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/travel_rule_natural_name_identifier.py b/fireblocks/models/travel_rule_natural_name_identifier.py index b6bfb6a4..f994403b 100644 --- a/fireblocks/models/travel_rule_natural_name_identifier.py +++ b/fireblocks/models/travel_rule_natural_name_identifier.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleNaturalNameIdentifier(BaseModel): - """ - TravelRuleNaturalNameIdentifier - """ # noqa: E501 - primary_identifier: Optional[StrictStr] = Field(default=None, description="The primary identifier of the name. The value must be encrypted.", alias="primaryIdentifier") - secondary_identifier: Optional[StrictStr] = Field(default=None, description="The secondary identifier of the name. The value must be encrypted.", alias="secondaryIdentifier") - name_identifier_type: Optional[StrictStr] = Field(default=None, description="The type of the name identifier. The value must be encrypted. The value must be one of the following: [LEGL, DBA, TRAD, NICK, ALIA, MAID, FORM, PREV, BORN, OTHR].", alias="nameIdentifierType") - __properties: ClassVar[List[str]] = ["primaryIdentifier", "secondaryIdentifier", "nameIdentifierType"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleNaturalNameIdentifier from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleNaturalNameIdentifier from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "primaryIdentifier": obj.get("primaryIdentifier"), - "secondaryIdentifier": obj.get("secondaryIdentifier"), - "nameIdentifierType": obj.get("nameIdentifierType") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRyYXZlbFJ1bGVOYXR1cmFsTmFtZUlkZW50aWZpZXIKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHByaW1hcnlfaWRlbnRpZmllcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBwcmltYXJ5IGlkZW50aWZpZXIgb2YgdGhlIG5hbWUuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4iLCBhbGlhcz0icHJpbWFyeUlkZW50aWZpZXIiKQogICAgc2Vjb25kYXJ5X2lkZW50aWZpZXI6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgc2Vjb25kYXJ5IGlkZW50aWZpZXIgb2YgdGhlIG5hbWUuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4iLCBhbGlhcz0ic2Vjb25kYXJ5SWRlbnRpZmllciIpCiAgICBuYW1lX2lkZW50aWZpZXJfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSB0eXBlIG9mIHRoZSBuYW1lIGlkZW50aWZpZXIuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4gVGhlIHZhbHVlIG11c3QgYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6IFtMRUdMLCBEQkEsIFRSQUQsIE5JQ0ssIEFMSUEsIE1BSUQsIEZPUk0sIFBSRVYsIEJPUk4sIE9USFJdLiIsIGFsaWFzPSJuYW1lSWRlbnRpZmllclR5cGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJwcmltYXJ5SWRlbnRpZmllciIsICJzZWNvbmRhcnlJZGVudGlmaWVyIiwgIm5hbWVJZGVudGlmaWVyVHlwZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllciBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInByaW1hcnlJZGVudGlmaWVyIjogb2JqLmdldCgicHJpbWFyeUlkZW50aWZpZXIiKSwKICAgICAgICAgICAgInNlY29uZGFyeUlkZW50aWZpZXIiOiBvYmouZ2V0KCJzZWNvbmRhcnlJZGVudGlmaWVyIiksCiAgICAgICAgICAgICJuYW1lSWRlbnRpZmllclR5cGUiOiBvYmouZ2V0KCJuYW1lSWRlbnRpZmllclR5cGUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/travel_rule_natural_person.py b/fireblocks/models/travel_rule_natural_person.py index dc0e332f..6b433d0a 100644 --- a/fireblocks/models/travel_rule_natural_person.py +++ b/fireblocks/models/travel_rule_natural_person.py @@ -1,124 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.travel_rule_date_and_place_of_birth import TravelRuleDateAndPlaceOfBirth -from fireblocks.models.travel_rule_geographic_address import TravelRuleGeographicAddress -from fireblocks.models.travel_rule_national_identification import TravelRuleNationalIdentification -from fireblocks.models.travel_rule_natural_person_name_identifier import TravelRuleNaturalPersonNameIdentifier -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleNaturalPerson(BaseModel): - """ - TravelRuleNaturalPerson - """ # noqa: E501 - name: Optional[List[TravelRuleNaturalPersonNameIdentifier]] = Field(default=None, description="An array of structured name identifiers for the natural person, referencing the TravelRuleNaturalPersonNameIdentifier schema.") - geographic_address: Optional[List[TravelRuleGeographicAddress]] = Field(default=None, description="An array of geographic addresses associated with the natural person, referencing the TravelRuleGeographicAddress schema.", alias="geographicAddress") - national_identification: Optional[TravelRuleNationalIdentification] = Field(default=None, alias="nationalIdentification") - date_and_place_of_birth: Optional[TravelRuleDateAndPlaceOfBirth] = Field(default=None, alias="dateAndPlaceOfBirth") - customer_identification: Optional[StrictStr] = Field(default=None, description="A unique identifier for the customer within the organization's context. The value must be encrypted.", alias="customerIdentification") - country_of_residence: Optional[StrictStr] = Field(default=None, description="The ISO-3166 Alpha-2 country code of the natural person's residence. The value must be encrypted.", alias="countryOfResidence") - customer_number: Optional[StrictStr] = Field(default=None, description="A distinct identifier that uniquely identifies the customer within the organization. The value must be encrypted.", alias="customerNumber") - __properties: ClassVar[List[str]] = ["name", "geographicAddress", "nationalIdentification", "dateAndPlaceOfBirth", "customerIdentification", "countryOfResidence", "customerNumber"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleNaturalPerson from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in name (list) - _items = [] - if self.name: - for _item_name in self.name: - if _item_name: - _items.append(_item_name.to_dict()) - _dict['name'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in geographic_address (list) - _items = [] - if self.geographic_address: - for _item_geographic_address in self.geographic_address: - if _item_geographic_address: - _items.append(_item_geographic_address.to_dict()) - _dict['geographicAddress'] = _items - # override the default output from pydantic by calling `to_dict()` of national_identification - if self.national_identification: - _dict['nationalIdentification'] = self.national_identification.to_dict() - # override the default output from pydantic by calling `to_dict()` of date_and_place_of_birth - if self.date_and_place_of_birth: - _dict['dateAndPlaceOfBirth'] = self.date_and_place_of_birth.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleNaturalPerson from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": [TravelRuleNaturalPersonNameIdentifier.from_dict(_item) for _item in obj["name"]] if obj.get("name") is not None else None, - "geographicAddress": [TravelRuleGeographicAddress.from_dict(_item) for _item in obj["geographicAddress"]] if obj.get("geographicAddress") is not None else None, - "nationalIdentification": TravelRuleNationalIdentification.from_dict(obj["nationalIdentification"]) if obj.get("nationalIdentification") is not None else None, - "dateAndPlaceOfBirth": TravelRuleDateAndPlaceOfBirth.from_dict(obj["dateAndPlaceOfBirth"]) if obj.get("dateAndPlaceOfBirth") is not None else None, - "customerIdentification": obj.get("customerIdentification"), - "countryOfResidence": obj.get("countryOfResidence"), - "customerNumber": obj.get("customerNumber") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2RhdGVfYW5kX3BsYWNlX29mX2JpcnRoIGltcG9ydCBUcmF2ZWxSdWxlRGF0ZUFuZFBsYWNlT2ZCaXJ0aApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2dlb2dyYXBoaWNfYWRkcmVzcyBpbXBvcnQgVHJhdmVsUnVsZUdlb2dyYXBoaWNBZGRyZXNzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0aW9uYWxfaWRlbnRpZmljYXRpb24gaW1wb3J0IFRyYXZlbFJ1bGVOYXRpb25hbElkZW50aWZpY2F0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyIGltcG9ydCBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBuYW1lOiBPcHRpb25hbFtMaXN0W1RyYXZlbFJ1bGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFuIGFycmF5IG9mIHN0cnVjdHVyZWQgbmFtZSBpZGVudGlmaWVycyBmb3IgdGhlIG5hdHVyYWwgcGVyc29uLCByZWZlcmVuY2luZyB0aGUgVHJhdmVsUnVsZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllciBzY2hlbWEuIikKICAgIGdlb2dyYXBoaWNfYWRkcmVzczogT3B0aW9uYWxbTGlzdFtUcmF2ZWxSdWxlR2VvZ3JhcGhpY0FkZHJlc3NdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFuIGFycmF5IG9mIGdlb2dyYXBoaWMgYWRkcmVzc2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgbmF0dXJhbCBwZXJzb24sIHJlZmVyZW5jaW5nIHRoZSBUcmF2ZWxSdWxlR2VvZ3JhcGhpY0FkZHJlc3Mgc2NoZW1hLiIsIGFsaWFzPSJnZW9ncmFwaGljQWRkcmVzcyIpCiAgICBuYXRpb25hbF9pZGVudGlmaWNhdGlvbjogT3B0aW9uYWxbVHJhdmVsUnVsZU5hdGlvbmFsSWRlbnRpZmljYXRpb25dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ibmF0aW9uYWxJZGVudGlmaWNhdGlvbiIpCiAgICBkYXRlX2FuZF9wbGFjZV9vZl9iaXJ0aDogT3B0aW9uYWxbVHJhdmVsUnVsZURhdGVBbmRQbGFjZU9mQmlydGhdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZGF0ZUFuZFBsYWNlT2ZCaXJ0aCIpCiAgICBjdXN0b21lcl9pZGVudGlmaWNhdGlvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBjdXN0b21lciB3aXRoaW4gdGhlIG9yZ2FuaXphdGlvbidzIGNvbnRleHQuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4iLCBhbGlhcz0iY3VzdG9tZXJJZGVudGlmaWNhdGlvbiIpCiAgICBjb3VudHJ5X29mX3Jlc2lkZW5jZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBJU08tMzE2NiBBbHBoYS0yIGNvdW50cnkgY29kZSBvZiB0aGUgbmF0dXJhbCBwZXJzb24ncyByZXNpZGVuY2UuIFRoZSB2YWx1ZSBtdXN0IGJlIGVuY3J5cHRlZC4iLCBhbGlhcz0iY291bnRyeU9mUmVzaWRlbmNlIikKICAgIGN1c3RvbWVyX251bWJlcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkEgZGlzdGluY3QgaWRlbnRpZmllciB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIGN1c3RvbWVyIHdpdGhpbiB0aGUgb3JnYW5pemF0aW9uLiBUaGUgdmFsdWUgbXVzdCBiZSBlbmNyeXB0ZWQuIiwgYWxpYXM9ImN1c3RvbWVyTnVtYmVyIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibmFtZSIsICJnZW9ncmFwaGljQWRkcmVzcyIsICJuYXRpb25hbElkZW50aWZpY2F0aW9uIiwgImRhdGVBbmRQbGFjZU9mQmlydGgiLCAiY3VzdG9tZXJJZGVudGlmaWNhdGlvbiIsICJjb3VudHJ5T2ZSZXNpZGVuY2UiLCAiY3VzdG9tZXJOdW1iZXIiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIG5hbWUgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLm5hbWU6CiAgICAgICAgICAgIGZvciBfaXRlbV9uYW1lIGluIHNlbGYubmFtZToKICAgICAgICAgICAgICAgIGlmIF9pdGVtX25hbWU6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9uYW1lLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ25hbWUnXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gZ2VvZ3JhcGhpY19hZGRyZXNzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5nZW9ncmFwaGljX2FkZHJlc3M6CiAgICAgICAgICAgIGZvciBfaXRlbV9nZW9ncmFwaGljX2FkZHJlc3MgaW4gc2VsZi5nZW9ncmFwaGljX2FkZHJlc3M6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9nZW9ncmFwaGljX2FkZHJlc3M6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9nZW9ncmFwaGljX2FkZHJlc3MudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnZ2VvZ3JhcGhpY0FkZHJlc3MnXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBuYXRpb25hbF9pZGVudGlmaWNhdGlvbgogICAgICAgIGlmIHNlbGYubmF0aW9uYWxfaWRlbnRpZmljYXRpb246CiAgICAgICAgICAgIF9kaWN0WyduYXRpb25hbElkZW50aWZpY2F0aW9uJ10gPSBzZWxmLm5hdGlvbmFsX2lkZW50aWZpY2F0aW9uLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBkYXRlX2FuZF9wbGFjZV9vZl9iaXJ0aAogICAgICAgIGlmIHNlbGYuZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGg6CiAgICAgICAgICAgIF9kaWN0WydkYXRlQW5kUGxhY2VPZkJpcnRoJ10gPSBzZWxmLmRhdGVfYW5kX3BsYWNlX29mX2JpcnRoLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZU5hdHVyYWxQZXJzb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibmFtZSI6IFtUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsibmFtZSJdXSBpZiBvYmouZ2V0KCJuYW1lIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZ2VvZ3JhcGhpY0FkZHJlc3MiOiBbVHJhdmVsUnVsZUdlb2dyYXBoaWNBZGRyZXNzLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiZ2VvZ3JhcGhpY0FkZHJlc3MiXV0gaWYgb2JqLmdldCgiZ2VvZ3JhcGhpY0FkZHJlc3MiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJuYXRpb25hbElkZW50aWZpY2F0aW9uIjogVHJhdmVsUnVsZU5hdGlvbmFsSWRlbnRpZmljYXRpb24uZnJvbV9kaWN0KG9ialsibmF0aW9uYWxJZGVudGlmaWNhdGlvbiJdKSBpZiBvYmouZ2V0KCJuYXRpb25hbElkZW50aWZpY2F0aW9uIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZGF0ZUFuZFBsYWNlT2ZCaXJ0aCI6IFRyYXZlbFJ1bGVEYXRlQW5kUGxhY2VPZkJpcnRoLmZyb21fZGljdChvYmpbImRhdGVBbmRQbGFjZU9mQmlydGgiXSkgaWYgb2JqLmdldCgiZGF0ZUFuZFBsYWNlT2ZCaXJ0aCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImN1c3RvbWVySWRlbnRpZmljYXRpb24iOiBvYmouZ2V0KCJjdXN0b21lcklkZW50aWZpY2F0aW9uIiksCiAgICAgICAgICAgICJjb3VudHJ5T2ZSZXNpZGVuY2UiOiBvYmouZ2V0KCJjb3VudHJ5T2ZSZXNpZGVuY2UiKSwKICAgICAgICAgICAgImN1c3RvbWVyTnVtYmVyIjogb2JqLmdldCgiY3VzdG9tZXJOdW1iZXIiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/travel_rule_natural_person_name_identifier.py b/fireblocks/models/travel_rule_natural_person_name_identifier.py index 7ae4476f..f47eebc9 100644 --- a/fireblocks/models/travel_rule_natural_person_name_identifier.py +++ b/fireblocks/models/travel_rule_natural_person_name_identifier.py @@ -1,114 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.travel_rule_natural_name_identifier import TravelRuleNaturalNameIdentifier -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleNaturalPersonNameIdentifier(BaseModel): - """ - TravelRuleNaturalPersonNameIdentifier - """ # noqa: E501 - name_identifier: Optional[List[TravelRuleNaturalNameIdentifier]] = Field(default=None, alias="nameIdentifier") - local_name_identifier: Optional[List[TravelRuleNaturalNameIdentifier]] = Field(default=None, alias="localNameIdentifier") - phonetic_name_identifier: Optional[List[TravelRuleNaturalNameIdentifier]] = Field(default=None, alias="phoneticNameIdentifier") - __properties: ClassVar[List[str]] = ["nameIdentifier", "localNameIdentifier", "phoneticNameIdentifier"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleNaturalPersonNameIdentifier from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in name_identifier (list) - _items = [] - if self.name_identifier: - for _item_name_identifier in self.name_identifier: - if _item_name_identifier: - _items.append(_item_name_identifier.to_dict()) - _dict['nameIdentifier'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in local_name_identifier (list) - _items = [] - if self.local_name_identifier: - for _item_local_name_identifier in self.local_name_identifier: - if _item_local_name_identifier: - _items.append(_item_local_name_identifier.to_dict()) - _dict['localNameIdentifier'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in phonetic_name_identifier (list) - _items = [] - if self.phonetic_name_identifier: - for _item_phonetic_name_identifier in self.phonetic_name_identifier: - if _item_phonetic_name_identifier: - _items.append(_item_phonetic_name_identifier.to_dict()) - _dict['phoneticNameIdentifier'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleNaturalPersonNameIdentifier from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "nameIdentifier": [TravelRuleNaturalNameIdentifier.from_dict(_item) for _item in obj["nameIdentifier"]] if obj.get("nameIdentifier") is not None else None, - "localNameIdentifier": [TravelRuleNaturalNameIdentifier.from_dict(_item) for _item in obj["localNameIdentifier"]] if obj.get("localNameIdentifier") is not None else None, - "phoneticNameIdentifier": [TravelRuleNaturalNameIdentifier.from_dict(_item) for _item in obj["phoneticNameIdentifier"]] if obj.get("phoneticNameIdentifier") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllciBpbXBvcnQgVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllcgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG5hbWVfaWRlbnRpZmllcjogT3B0aW9uYWxbTGlzdFtUcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJuYW1lSWRlbnRpZmllciIpCiAgICBsb2NhbF9uYW1lX2lkZW50aWZpZXI6IE9wdGlvbmFsW0xpc3RbVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllcl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ibG9jYWxOYW1lSWRlbnRpZmllciIpCiAgICBwaG9uZXRpY19uYW1lX2lkZW50aWZpZXI6IE9wdGlvbmFsW0xpc3RbVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllcl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0icGhvbmV0aWNOYW1lSWRlbnRpZmllciIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm5hbWVJZGVudGlmaWVyIiwgImxvY2FsTmFtZUlkZW50aWZpZXIiLCAicGhvbmV0aWNOYW1lSWRlbnRpZmllciJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllciBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBuYW1lX2lkZW50aWZpZXIgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLm5hbWVfaWRlbnRpZmllcjoKICAgICAgICAgICAgZm9yIF9pdGVtX25hbWVfaWRlbnRpZmllciBpbiBzZWxmLm5hbWVfaWRlbnRpZmllcjoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX25hbWVfaWRlbnRpZmllcjoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX25hbWVfaWRlbnRpZmllci50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WyduYW1lSWRlbnRpZmllciddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBsb2NhbF9uYW1lX2lkZW50aWZpZXIgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmxvY2FsX25hbWVfaWRlbnRpZmllcjoKICAgICAgICAgICAgZm9yIF9pdGVtX2xvY2FsX25hbWVfaWRlbnRpZmllciBpbiBzZWxmLmxvY2FsX25hbWVfaWRlbnRpZmllcjoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2xvY2FsX25hbWVfaWRlbnRpZmllcjoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2xvY2FsX25hbWVfaWRlbnRpZmllci50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0Wydsb2NhbE5hbWVJZGVudGlmaWVyJ10gPSBfaXRlbXMKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIHBob25ldGljX25hbWVfaWRlbnRpZmllciAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYucGhvbmV0aWNfbmFtZV9pZGVudGlmaWVyOgogICAgICAgICAgICBmb3IgX2l0ZW1fcGhvbmV0aWNfbmFtZV9pZGVudGlmaWVyIGluIHNlbGYucGhvbmV0aWNfbmFtZV9pZGVudGlmaWVyOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fcGhvbmV0aWNfbmFtZV9pZGVudGlmaWVyOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fcGhvbmV0aWNfbmFtZV9pZGVudGlmaWVyLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ3Bob25ldGljTmFtZUlkZW50aWZpZXInXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllciBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJuYW1lSWRlbnRpZmllciI6IFtUcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsibmFtZUlkZW50aWZpZXIiXV0gaWYgb2JqLmdldCgibmFtZUlkZW50aWZpZXIiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJsb2NhbE5hbWVJZGVudGlmaWVyIjogW1RyYXZlbFJ1bGVOYXR1cmFsTmFtZUlkZW50aWZpZXIuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJsb2NhbE5hbWVJZGVudGlmaWVyIl1dIGlmIG9iai5nZXQoImxvY2FsTmFtZUlkZW50aWZpZXIiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJwaG9uZXRpY05hbWVJZGVudGlmaWVyIjogW1RyYXZlbFJ1bGVOYXR1cmFsTmFtZUlkZW50aWZpZXIuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJwaG9uZXRpY05hbWVJZGVudGlmaWVyIl1dIGlmIG9iai5nZXQoInBob25ldGljTmFtZUlkZW50aWZpZXIiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/travel_rule_ownership_proof.py b/fireblocks/models/travel_rule_ownership_proof.py index 0528639b..030c9e51 100644 --- a/fireblocks/models/travel_rule_ownership_proof.py +++ b/fireblocks/models/travel_rule_ownership_proof.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleOwnershipProof(BaseModel): - """ - Ownership proof related to the originator of the transaction. - """ # noqa: E501 - type: Optional[StrictStr] = Field(default=None, description="The type of ownership proof. Example values: - `eip-191`: Ethereum signature proof - `eip-712`: Ethereum typed data signature proof - `bip-137`: Bitcoin signature proof - `microtransfer`: Microtransaction (Satoshi test) - `screenshot`: Uploaded screenshot of the wallet - `self-declaration`: Checkbox attestation of ownership") - proof: Optional[StrictStr] = Field(default=None, description="The cryptographic signature, transaction hash, or other proof depending on the type. Examples: - For `eip-191`: `0x3dd4a17a...ce4a2bcd1b` - For `microtransfer`: The transaction hash `H3V8GXBy39Dz...tr3TSTkY=`") - attestation: Optional[StrictStr] = Field(default=None, description="A human-readable statement of wallet ownership. Required for signature proofs and self-declarations. Examples: - `I certify that ETH account 0x896B...0b9b belongs to me.` - `I hereby declare that the blockchain address 0xa437bEed902AF9338B7DEB23848e195d85019510 is under my control.`") - address: Optional[StrictStr] = Field(default=None, description="The wallet address being verified. Examples: - For Ethereum: `0x896B...0b9b` - For Bitcoin: `1442...dxhsQ`") - wallet_provider: Optional[StrictStr] = Field(default=None, description="The wallet provider or method used for verification. Examples: - For Metamask: `Metamask` - For manual signature: `manual`") - url: Optional[StrictStr] = Field(default=None, description="The URL for the uploaded screenshot (for `screenshot` proof types only). Example: `https://example.com/uploaded_image.png`") - confirmed: Optional[StrictBool] = Field(default=None, description="Whether the user confirmed ownership of the wallet (for `self-declaration` proofs). Example: `true`") - __properties: ClassVar[List[str]] = ["type", "proof", "attestation", "address", "wallet_provider", "url", "confirmed"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleOwnershipProof from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleOwnershipProof from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "proof": obj.get("proof"), - "attestation": obj.get("attestation"), - "address": obj.get("address"), - "wallet_provider": obj.get("wallet_provider"), - "url": obj.get("url"), - "confirmed": obj.get("confirmed") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2YoQmFzZU1vZGVsKToKICAgICIiIgogICAgT3duZXJzaGlwIHByb29mIHJlbGF0ZWQgdG8gdGhlIG9yaWdpbmF0b3Igb2YgdGhlIHRyYW5zYWN0aW9uLgogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSB0eXBlIG9mIG93bmVyc2hpcCBwcm9vZi4gRXhhbXBsZSB2YWx1ZXM6IC0gYGVpcC0xOTFgOiBFdGhlcmV1bSBzaWduYXR1cmUgcHJvb2YgLSBgZWlwLTcxMmA6IEV0aGVyZXVtIHR5cGVkIGRhdGEgc2lnbmF0dXJlIHByb29mIC0gYGJpcC0xMzdgOiBCaXRjb2luIHNpZ25hdHVyZSBwcm9vZiAtIGBtaWNyb3RyYW5zZmVyYDogTWljcm90cmFuc2FjdGlvbiAoU2F0b3NoaSB0ZXN0KSAtIGBzY3JlZW5zaG90YDogVXBsb2FkZWQgc2NyZWVuc2hvdCBvZiB0aGUgd2FsbGV0IC0gYHNlbGYtZGVjbGFyYXRpb25gOiBDaGVja2JveCBhdHRlc3RhdGlvbiBvZiBvd25lcnNoaXAiKQogICAgcHJvb2Y6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgY3J5cHRvZ3JhcGhpYyBzaWduYXR1cmUsIHRyYW5zYWN0aW9uIGhhc2gsIG9yIG90aGVyIHByb29mIGRlcGVuZGluZyBvbiB0aGUgdHlwZS4gRXhhbXBsZXM6IC0gRm9yIGBlaXAtMTkxYDogYDB4M2RkNGExN2EuLi5jZTRhMmJjZDFiYCAtIEZvciBgbWljcm90cmFuc2ZlcmA6IFRoZSB0cmFuc2FjdGlvbiBoYXNoIGBIM1Y4R1hCeTM5RHouLi50cjNUU1RrWT1gIikKICAgIGF0dGVzdGF0aW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQSBodW1hbi1yZWFkYWJsZSBzdGF0ZW1lbnQgb2Ygd2FsbGV0IG93bmVyc2hpcC4gUmVxdWlyZWQgZm9yIHNpZ25hdHVyZSBwcm9vZnMgYW5kIHNlbGYtZGVjbGFyYXRpb25zLiBFeGFtcGxlczogLSBgSSBjZXJ0aWZ5IHRoYXQgRVRIIGFjY291bnQgMHg4OTZCLi4uMGI5YiBiZWxvbmdzIHRvIG1lLmAgLSBgSSBoZXJlYnkgZGVjbGFyZSB0aGF0IHRoZSBibG9ja2NoYWluIGFkZHJlc3MgMHhhNDM3YkVlZDkwMkFGOTMzOEI3REVCMjM4NDhlMTk1ZDg1MDE5NTEwIGlzIHVuZGVyIG15IGNvbnRyb2wuYCIpCiAgICBhZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHdhbGxldCBhZGRyZXNzIGJlaW5nIHZlcmlmaWVkLiBFeGFtcGxlczogLSBGb3IgRXRoZXJldW06IGAweDg5NkIuLi4wYjliYCAtIEZvciBCaXRjb2luOiBgMTQ0Mi4uLmR4aHNRYCIpCiAgICB3YWxsZXRfcHJvdmlkZXI6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgd2FsbGV0IHByb3ZpZGVyIG9yIG1ldGhvZCB1c2VkIGZvciB2ZXJpZmljYXRpb24uIEV4YW1wbGVzOiAtIEZvciBNZXRhbWFzazogYE1ldGFtYXNrYCAtIEZvciBtYW51YWwgc2lnbmF0dXJlOiBgbWFudWFsYCIpCiAgICB1cmw6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgVVJMIGZvciB0aGUgdXBsb2FkZWQgc2NyZWVuc2hvdCAoZm9yIGBzY3JlZW5zaG90YCBwcm9vZiB0eXBlcyBvbmx5KS4gRXhhbXBsZTogYGh0dHBzOi8vZXhhbXBsZS5jb20vdXBsb2FkZWRfaW1hZ2UucG5nYCIpCiAgICBkaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgRGVjZW50cmFsaXplZCBJZGVudGlmaWVyIChESUQpIGFzc29jaWF0ZWQgd2l0aCB0aGUgb3duZXJzaGlwIHByb29mLiIpCiAgICBzdGF0dXM6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgc3RhdHVzIG9mIHRoZSBvd25lcnNoaXAgcHJvb2YgdmVyaWZpY2F0aW9uLiIpCiAgICBjb25maXJtZWQ6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iV2hldGhlciB0aGUgdXNlciBjb25maXJtZWQgb3duZXJzaGlwIG9mIHRoZSB3YWxsZXQgKGZvciBgc2VsZi1kZWNsYXJhdGlvbmAgcHJvb2ZzKS4gRXhhbXBsZTogYHRydWVgIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidHlwZSIsICJwcm9vZiIsICJhdHRlc3RhdGlvbiIsICJhZGRyZXNzIiwgIndhbGxldF9wcm92aWRlciIsICJ1cmwiLCAiZGlkIiwgInN0YXR1cyIsICJjb25maXJtZWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVPd25lcnNoaXBQcm9vZiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2YgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgInByb29mIjogb2JqLmdldCgicHJvb2YiKSwKICAgICAgICAgICAgImF0dGVzdGF0aW9uIjogb2JqLmdldCgiYXR0ZXN0YXRpb24iKSwKICAgICAgICAgICAgImFkZHJlc3MiOiBvYmouZ2V0KCJhZGRyZXNzIiksCiAgICAgICAgICAgICJ3YWxsZXRfcHJvdmlkZXIiOiBvYmouZ2V0KCJ3YWxsZXRfcHJvdmlkZXIiKSwKICAgICAgICAgICAgInVybCI6IG9iai5nZXQoInVybCIpLAogICAgICAgICAgICAiZGlkIjogb2JqLmdldCgiZGlkIiksCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKSwKICAgICAgICAgICAgImNvbmZpcm1lZCI6IG9iai5nZXQoImNvbmZpcm1lZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/travel_rule_person.py b/fireblocks/models/travel_rule_person.py index 694e94ff..bc6e3545 100644 --- a/fireblocks/models/travel_rule_person.py +++ b/fireblocks/models/travel_rule_person.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.travel_rule_legal_person import TravelRuleLegalPerson -from fireblocks.models.travel_rule_natural_person import TravelRuleNaturalPerson -from typing import Optional, Set -from typing_extensions import Self - -class TravelRulePerson(BaseModel): - """ - TravelRulePerson - """ # noqa: E501 - natural_person: Optional[TravelRuleNaturalPerson] = Field(default=None, alias="naturalPerson") - legal_person: Optional[TravelRuleLegalPerson] = Field(default=None, alias="legalPerson") - __properties: ClassVar[List[str]] = ["naturalPerson", "legalPerson"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRulePerson from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of natural_person - if self.natural_person: - _dict['naturalPerson'] = self.natural_person.to_dict() - # override the default output from pydantic by calling `to_dict()` of legal_person - if self.legal_person: - _dict['legalPerson'] = self.legal_person.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRulePerson from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "naturalPerson": TravelRuleNaturalPerson.from_dict(obj["naturalPerson"]) if obj.get("naturalPerson") is not None else None, - "legalPerson": TravelRuleLegalPerson.from_dict(obj["legalPerson"]) if obj.get("legalPerson") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9sZWdhbF9wZXJzb24gaW1wb3J0IFRyYXZlbFJ1bGVMZWdhbFBlcnNvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uIGltcG9ydCBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmF2ZWxSdWxlUGVyc29uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRyYXZlbFJ1bGVQZXJzb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG5hdHVyYWxfcGVyc29uOiBPcHRpb25hbFtUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJuYXR1cmFsUGVyc29uIikKICAgIGxlZ2FsX3BlcnNvbjogT3B0aW9uYWxbVHJhdmVsUnVsZUxlZ2FsUGVyc29uXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImxlZ2FsUGVyc29uIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibmF0dXJhbFBlcnNvbiIsICJsZWdhbFBlcnNvbiJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVBlcnNvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG5hdHVyYWxfcGVyc29uCiAgICAgICAgaWYgc2VsZi5uYXR1cmFsX3BlcnNvbjoKICAgICAgICAgICAgX2RpY3RbJ25hdHVyYWxQZXJzb24nXSA9IHNlbGYubmF0dXJhbF9wZXJzb24udG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGxlZ2FsX3BlcnNvbgogICAgICAgIGlmIHNlbGYubGVnYWxfcGVyc29uOgogICAgICAgICAgICBfZGljdFsnbGVnYWxQZXJzb24nXSA9IHNlbGYubGVnYWxfcGVyc29uLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVBlcnNvbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJuYXR1cmFsUGVyc29uIjogVHJhdmVsUnVsZU5hdHVyYWxQZXJzb24uZnJvbV9kaWN0KG9ialsibmF0dXJhbFBlcnNvbiJdKSBpZiBvYmouZ2V0KCJuYXR1cmFsUGVyc29uIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibGVnYWxQZXJzb24iOiBUcmF2ZWxSdWxlTGVnYWxQZXJzb24uZnJvbV9kaWN0KG9ialsibGVnYWxQZXJzb24iXSkgaWYgb2JqLmdldCgibGVnYWxQZXJzb24iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/travel_rule_pii_ivms.py b/fireblocks/models/travel_rule_pii_ivms.py index e2bd8426..c470cbfd 100644 --- a/fireblocks/models/travel_rule_pii_ivms.py +++ b/fireblocks/models/travel_rule_pii_ivms.py @@ -1,107 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.travel_rule_person import TravelRulePerson -from typing import Optional, Set -from typing_extensions import Self - -class TravelRulePiiIVMS(BaseModel): - """ - Personal identifiable information related to the transaction - """ # noqa: E501 - originator_persons: Optional[List[TravelRulePerson]] = Field(default=None, description="Information about the originator of the transaction", alias="originatorPersons") - beneficiary_persons: Optional[List[TravelRulePerson]] = Field(default=None, description="Information about the beneficiary of the transaction", alias="beneficiaryPersons") - account_number: Optional[List[StrictStr]] = Field(default=None, description="Beneficiary account number. The value must be encrypted.", alias="accountNumber") - __properties: ClassVar[List[str]] = ["originatorPersons", "beneficiaryPersons", "accountNumber"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRulePiiIVMS from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in originator_persons (list) - _items = [] - if self.originator_persons: - for _item_originator_persons in self.originator_persons: - if _item_originator_persons: - _items.append(_item_originator_persons.to_dict()) - _dict['originatorPersons'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in beneficiary_persons (list) - _items = [] - if self.beneficiary_persons: - for _item_beneficiary_persons in self.beneficiary_persons: - if _item_beneficiary_persons: - _items.append(_item_beneficiary_persons.to_dict()) - _dict['beneficiaryPersons'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRulePiiIVMS from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "originatorPersons": [TravelRulePerson.from_dict(_item) for _item in obj["originatorPersons"]] if obj.get("originatorPersons") is not None else None, - "beneficiaryPersons": [TravelRulePerson.from_dict(_item) for _item in obj["beneficiaryPersons"]] if obj.get("beneficiaryPersons") is not None else None, - "accountNumber": obj.get("accountNumber") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3BlcnNvbiBpbXBvcnQgVHJhdmVsUnVsZVBlcnNvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmF2ZWxSdWxlUGlpSVZNUyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBQZXJzb25hbCBpZGVudGlmaWFibGUgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgdHJhbnNhY3Rpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG9yaWdpbmF0b3JfcGVyc29uczogT3B0aW9uYWxbTGlzdFtUcmF2ZWxSdWxlUGVyc29uXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJbmZvcm1hdGlvbiBhYm91dCB0aGUgb3JpZ2luYXRvciBvZiB0aGUgdHJhbnNhY3Rpb24iLCBhbGlhcz0ib3JpZ2luYXRvclBlcnNvbnMiKQogICAgYmVuZWZpY2lhcnlfcGVyc29uczogT3B0aW9uYWxbTGlzdFtUcmF2ZWxSdWxlUGVyc29uXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJbmZvcm1hdGlvbiBhYm91dCB0aGUgYmVuZWZpY2lhcnkgb2YgdGhlIHRyYW5zYWN0aW9uIiwgYWxpYXM9ImJlbmVmaWNpYXJ5UGVyc29ucyIpCiAgICBhY2NvdW50X251bWJlcjogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkJlbmVmaWNpYXJ5IGFjY291bnQgbnVtYmVyLiBUaGUgdmFsdWUgbXVzdCBiZSBlbmNyeXB0ZWQuIiwgYWxpYXM9ImFjY291bnROdW1iZXIiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJvcmlnaW5hdG9yUGVyc29ucyIsICJiZW5lZmljaWFyeVBlcnNvbnMiLCAiYWNjb3VudE51bWJlciJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVBpaUlWTVMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gb3JpZ2luYXRvcl9wZXJzb25zIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5vcmlnaW5hdG9yX3BlcnNvbnM6CiAgICAgICAgICAgIGZvciBfaXRlbV9vcmlnaW5hdG9yX3BlcnNvbnMgaW4gc2VsZi5vcmlnaW5hdG9yX3BlcnNvbnM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9vcmlnaW5hdG9yX3BlcnNvbnM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9vcmlnaW5hdG9yX3BlcnNvbnMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnb3JpZ2luYXRvclBlcnNvbnMnXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gYmVuZWZpY2lhcnlfcGVyc29ucyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuYmVuZWZpY2lhcnlfcGVyc29uczoKICAgICAgICAgICAgZm9yIF9pdGVtX2JlbmVmaWNpYXJ5X3BlcnNvbnMgaW4gc2VsZi5iZW5lZmljaWFyeV9wZXJzb25zOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fYmVuZWZpY2lhcnlfcGVyc29uczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2JlbmVmaWNpYXJ5X3BlcnNvbnMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnYmVuZWZpY2lhcnlQZXJzb25zJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVQaWlJVk1TIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm9yaWdpbmF0b3JQZXJzb25zIjogW1RyYXZlbFJ1bGVQZXJzb24uZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJvcmlnaW5hdG9yUGVyc29ucyJdXSBpZiBvYmouZ2V0KCJvcmlnaW5hdG9yUGVyc29ucyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImJlbmVmaWNpYXJ5UGVyc29ucyI6IFtUcmF2ZWxSdWxlUGVyc29uLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsiYmVuZWZpY2lhcnlQZXJzb25zIl1dIGlmIG9iai5nZXQoImJlbmVmaWNpYXJ5UGVyc29ucyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImFjY291bnROdW1iZXIiOiBvYmouZ2V0KCJhY2NvdW50TnVtYmVyIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/travel_rule_policy_rule_response.py b/fireblocks/models/travel_rule_policy_rule_response.py index 512a5e61..f9ee8f45 100644 --- a/fireblocks/models/travel_rule_policy_rule_response.py +++ b/fireblocks/models/travel_rule_policy_rule_response.py @@ -1,121 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class TravelRulePolicyRuleResponse(BaseModel): - """ - TravelRulePolicyRuleResponse - """ # noqa: E501 - source_type: Optional[StrictStr] = Field(default=None, alias="sourceType") - source_sub_type: Optional[StrictStr] = Field(default=None, alias="sourceSubType") - dest_type: Optional[StrictStr] = Field(default=None, alias="destType") - dest_sub_type: Optional[StrictStr] = Field(default=None, alias="destSubType") - dest_address: Optional[StrictStr] = Field(default=None, alias="destAddress") - source_id: Optional[StrictStr] = Field(default=None, alias="sourceId") - dest_id: Optional[StrictStr] = Field(default=None, alias="destId") - asset: Optional[StrictStr] = None - base_asset: Optional[StrictStr] = Field(default=None, alias="baseAsset") - amount: Optional[Union[StrictFloat, StrictInt]] = None - amount_usd: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="amountUSD") - network_protocol: Optional[StrictStr] = Field(default=None, description="The network protocol of the token", alias="networkProtocol") - operation: Optional[StrictStr] = None - action: StrictStr - __properties: ClassVar[List[str]] = ["sourceType", "sourceSubType", "destType", "destSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "amountUSD", "networkProtocol", "operation", "action"] - - @field_validator('action') - def action_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['SCREEN', 'PASS', 'FREEZE']): - raise ValueError("must be one of enum values ('SCREEN', 'PASS', 'FREEZE')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRulePolicyRuleResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRulePolicyRuleResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "sourceType": obj.get("sourceType"), - "sourceSubType": obj.get("sourceSubType"), - "destType": obj.get("destType"), - "destSubType": obj.get("destSubType"), - "destAddress": obj.get("destAddress"), - "sourceId": obj.get("sourceId"), - "destId": obj.get("destId"), - "asset": obj.get("asset"), - "baseAsset": obj.get("baseAsset"), - "amount": obj.get("amount"), - "amountUSD": obj.get("amountUSD"), - "networkProtocol": obj.get("networkProtocol"), - "operation": obj.get("operation"), - "action": obj.get("action") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmF2ZWxSdWxlUG9saWN5UnVsZVJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRyYXZlbFJ1bGVQb2xpY3lSdWxlUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHNvdXJjZV90eXBlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ic291cmNlVHlwZSIpCiAgICBzb3VyY2Vfc3ViX3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJzb3VyY2VTdWJUeXBlIikKICAgIGRlc3RfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImRlc3RUeXBlIikKICAgIGRlc3Rfc3ViX3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJkZXN0U3ViVHlwZSIpCiAgICBkZXN0X2FkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJkZXN0QWRkcmVzcyIpCiAgICBzb3VyY2VfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJzb3VyY2VJZCIpCiAgICBkZXN0X2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZGVzdElkIikKICAgIGFzc2V0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgYmFzZV9hc3NldDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImJhc2VBc3NldCIpCiAgICBhbW91bnQ6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IE5vbmUKICAgIGFtb3VudF91c2Q6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImFtb3VudFVTRCIpCiAgICBuZXR3b3JrX3Byb3RvY29sOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIG5ldHdvcmsgcHJvdG9jb2wgb2YgdGhlIHRva2VuIiwgYWxpYXM9Im5ldHdvcmtQcm90b2NvbCIpCiAgICBvcGVyYXRpb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBhY3Rpb246IFN0cmljdFN0cgogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzb3VyY2VUeXBlIiwgInNvdXJjZVN1YlR5cGUiLCAiZGVzdFR5cGUiLCAiZGVzdFN1YlR5cGUiLCAiZGVzdEFkZHJlc3MiLCAic291cmNlSWQiLCAiZGVzdElkIiwgImFzc2V0IiwgImJhc2VBc3NldCIsICJhbW91bnQiLCAiYW1vdW50VVNEIiwgIm5ldHdvcmtQcm90b2NvbCIsICJvcGVyYXRpb24iLCAiYWN0aW9uIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhY3Rpb24nKQogICAgZGVmIGFjdGlvbl92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydTQ1JFRU4nLCAnUEFTUycsICdGUkVFWkUnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnU0NSRUVOJywgJ1BBU1MnLCAnRlJFRVpFJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVQb2xpY3lSdWxlUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVBvbGljeVJ1bGVSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzb3VyY2VUeXBlIjogb2JqLmdldCgic291cmNlVHlwZSIpLAogICAgICAgICAgICAic291cmNlU3ViVHlwZSI6IG9iai5nZXQoInNvdXJjZVN1YlR5cGUiKSwKICAgICAgICAgICAgImRlc3RUeXBlIjogb2JqLmdldCgiZGVzdFR5cGUiKSwKICAgICAgICAgICAgImRlc3RTdWJUeXBlIjogb2JqLmdldCgiZGVzdFN1YlR5cGUiKSwKICAgICAgICAgICAgImRlc3RBZGRyZXNzIjogb2JqLmdldCgiZGVzdEFkZHJlc3MiKSwKICAgICAgICAgICAgInNvdXJjZUlkIjogb2JqLmdldCgic291cmNlSWQiKSwKICAgICAgICAgICAgImRlc3RJZCI6IG9iai5nZXQoImRlc3RJZCIpLAogICAgICAgICAgICAiYXNzZXQiOiBvYmouZ2V0KCJhc3NldCIpLAogICAgICAgICAgICAiYmFzZUFzc2V0Ijogb2JqLmdldCgiYmFzZUFzc2V0IiksCiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKSwKICAgICAgICAgICAgImFtb3VudFVTRCI6IG9iai5nZXQoImFtb3VudFVTRCIpLAogICAgICAgICAgICAibmV0d29ya1Byb3RvY29sIjogb2JqLmdldCgibmV0d29ya1Byb3RvY29sIiksCiAgICAgICAgICAgICJvcGVyYXRpb24iOiBvYmouZ2V0KCJvcGVyYXRpb24iKSwKICAgICAgICAgICAgImFjdGlvbiI6IG9iai5nZXQoImFjdGlvbiIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/travel_rule_prescreening_rule.py b/fireblocks/models/travel_rule_prescreening_rule.py index 1a759c6c..dc8f0963 100644 --- a/fireblocks/models/travel_rule_prescreening_rule.py +++ b/fireblocks/models/travel_rule_prescreening_rule.py @@ -1,124 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.transaction_operation_enum import TransactionOperationEnum -from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum -from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum -from fireblocks.models.travel_rule_action_enum import TravelRuleActionEnum -from typing import Optional, Set -from typing_extensions import Self - -class TravelRulePrescreeningRule(BaseModel): - """ - Matched prescreening rule details. Prescreening rules are evaluated before the main screening to determine if screening is necessary or should be bypassed. - """ # noqa: E501 - bypass_reason: Optional[StrictStr] = Field(default=None, description="Reason for bypass if prescreening rule triggered a bypass", alias="bypassReason") - source_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="sourceType") - source_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="sourceSubType") - dest_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="destType") - dest_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="destSubType") - transfer_peer_type: Optional[TransferPeerTypeEnum] = Field(default=None, alias="transferPeerType") - transfer_peer_sub_type: Optional[TransferPeerSubTypeEnum] = Field(default=None, alias="transferPeerSubType") - dest_address: Optional[StrictStr] = Field(default=None, description="Destination address", alias="destAddress") - source_id: Optional[StrictStr] = Field(default=None, description="Source ID", alias="sourceId") - dest_id: Optional[StrictStr] = Field(default=None, description="Destination ID", alias="destId") - asset: Optional[StrictStr] = Field(default=None, description="Asset identifier") - base_asset: Optional[StrictStr] = Field(default=None, description="Base asset", alias="baseAsset") - amount: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Amount") - amount_usd: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Amount in USD", alias="amountUSD") - network_protocol: Optional[StrictStr] = Field(default=None, description="Network protocol", alias="networkProtocol") - operation: Optional[TransactionOperationEnum] = None - action: Optional[TravelRuleActionEnum] = None - __properties: ClassVar[List[str]] = ["bypassReason", "sourceType", "sourceSubType", "destType", "destSubType", "transferPeerType", "transferPeerSubType", "destAddress", "sourceId", "destId", "asset", "baseAsset", "amount", "amountUSD", "networkProtocol", "operation", "action"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRulePrescreeningRule from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRulePrescreeningRule from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "bypassReason": obj.get("bypassReason"), - "sourceType": obj.get("sourceType"), - "sourceSubType": obj.get("sourceSubType"), - "destType": obj.get("destType"), - "destSubType": obj.get("destSubType"), - "transferPeerType": obj.get("transferPeerType"), - "transferPeerSubType": obj.get("transferPeerSubType"), - "destAddress": obj.get("destAddress"), - "sourceId": obj.get("sourceId"), - "destId": obj.get("destId"), - "asset": obj.get("asset"), - "baseAsset": obj.get("baseAsset"), - "amount": obj.get("amount"), - "amountUSD": obj.get("amountUSD"), - "networkProtocol": obj.get("networkProtocol"), - "operation": obj.get("operation"), - "action": obj.get("action") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9vcGVyYXRpb25fZW51bSBpbXBvcnQgVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfcGVlcl9zdWJfdHlwZV9lbnVtIGltcG9ydCBUcmFuc2ZlclBlZXJTdWJUeXBlRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3BlZXJfdHlwZV9lbnVtIGltcG9ydCBUcmFuc2ZlclBlZXJUeXBlRW51bQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2FjdGlvbl9lbnVtIGltcG9ydCBUcmF2ZWxSdWxlQWN0aW9uRW51bQpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBNYXRjaGVkIHByZXNjcmVlbmluZyBydWxlIGRldGFpbHMuIFByZXNjcmVlbmluZyBydWxlcyBhcmUgZXZhbHVhdGVkIGJlZm9yZSB0aGUgbWFpbiBzY3JlZW5pbmcgdG8gZGV0ZXJtaW5lIGlmIHNjcmVlbmluZyBpcyBuZWNlc3Nhcnkgb3Igc2hvdWxkIGJlIGJ5cGFzc2VkLiAKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGJ5cGFzc19yZWFzb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSZWFzb24gZm9yIGJ5cGFzcyBpZiBwcmVzY3JlZW5pbmcgcnVsZSB0cmlnZ2VyZWQgYSBieXBhc3MiLCBhbGlhcz0iYnlwYXNzUmVhc29uIikKICAgIHNvdXJjZV90eXBlOiBPcHRpb25hbFtUcmFuc2ZlclBlZXJUeXBlRW51bV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJzb3VyY2VUeXBlIikKICAgIHNvdXJjZV9zdWJfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyU3ViVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ic291cmNlU3ViVHlwZSIpCiAgICBkZXN0X3R5cGU6IE9wdGlvbmFsW1RyYW5zZmVyUGVlclR5cGVFbnVtXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImRlc3RUeXBlIikKICAgIGRlc3Rfc3ViX3R5cGU6IE9wdGlvbmFsW1RyYW5zZmVyUGVlclN1YlR5cGVFbnVtXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImRlc3RTdWJUeXBlIikKICAgIHRyYW5zZmVyX3BlZXJfdHlwZTogT3B0aW9uYWxbVHJhbnNmZXJQZWVyVHlwZUVudW1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0idHJhbnNmZXJQZWVyVHlwZSIpCiAgICB0cmFuc2Zlcl9wZWVyX3N1Yl90eXBlOiBPcHRpb25hbFtUcmFuc2ZlclBlZXJTdWJUeXBlRW51bV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJ0cmFuc2ZlclBlZXJTdWJUeXBlIikKICAgIGRlc3RfYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRlc3RpbmF0aW9uIGFkZHJlc3MiLCBhbGlhcz0iZGVzdEFkZHJlc3MiKQogICAgc291cmNlX2lkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iU291cmNlIElEIiwgYWxpYXM9InNvdXJjZUlkIikKICAgIGRlc3RfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXN0aW5hdGlvbiBJRCIsIGFsaWFzPSJkZXN0SWQiKQogICAgYXNzZXQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBc3NldCBpZGVudGlmaWVyIikKICAgIGJhc2VfYXNzZXQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJCYXNlIGFzc2V0IiwgYWxpYXM9ImJhc2VBc3NldCIpCiAgICBhbW91bnQ6IE9wdGlvbmFsW1VuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFtb3VudCIpCiAgICBhbW91bnRfdXNkOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBbW91bnQgaW4gVVNEIiwgYWxpYXM9ImFtb3VudFVTRCIpCiAgICBuZXR3b3JrX3Byb3RvY29sOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTmV0d29yayBwcm90b2NvbCIsIGFsaWFzPSJuZXR3b3JrUHJvdG9jb2wiKQogICAgb3BlcmF0aW9uOiBPcHRpb25hbFtUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW1dID0gTm9uZQogICAgYWN0aW9uOiBPcHRpb25hbFtUcmF2ZWxSdWxlQWN0aW9uRW51bV0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImJ5cGFzc1JlYXNvbiIsICJzb3VyY2VUeXBlIiwgInNvdXJjZVN1YlR5cGUiLCAiZGVzdFR5cGUiLCAiZGVzdFN1YlR5cGUiLCAidHJhbnNmZXJQZWVyVHlwZSIsICJ0cmFuc2ZlclBlZXJTdWJUeXBlIiwgImRlc3RBZGRyZXNzIiwgInNvdXJjZUlkIiwgImRlc3RJZCIsICJhc3NldCIsICJiYXNlQXNzZXQiLCAiYW1vdW50IiwgImFtb3VudFVTRCIsICJuZXR3b3JrUHJvdG9jb2wiLCAib3BlcmF0aW9uIiwgImFjdGlvbiJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGUgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiYnlwYXNzUmVhc29uIjogb2JqLmdldCgiYnlwYXNzUmVhc29uIiksCiAgICAgICAgICAgICJzb3VyY2VUeXBlIjogb2JqLmdldCgic291cmNlVHlwZSIpLAogICAgICAgICAgICAic291cmNlU3ViVHlwZSI6IG9iai5nZXQoInNvdXJjZVN1YlR5cGUiKSwKICAgICAgICAgICAgImRlc3RUeXBlIjogb2JqLmdldCgiZGVzdFR5cGUiKSwKICAgICAgICAgICAgImRlc3RTdWJUeXBlIjogb2JqLmdldCgiZGVzdFN1YlR5cGUiKSwKICAgICAgICAgICAgInRyYW5zZmVyUGVlclR5cGUiOiBvYmouZ2V0KCJ0cmFuc2ZlclBlZXJUeXBlIiksCiAgICAgICAgICAgICJ0cmFuc2ZlclBlZXJTdWJUeXBlIjogb2JqLmdldCgidHJhbnNmZXJQZWVyU3ViVHlwZSIpLAogICAgICAgICAgICAiZGVzdEFkZHJlc3MiOiBvYmouZ2V0KCJkZXN0QWRkcmVzcyIpLAogICAgICAgICAgICAic291cmNlSWQiOiBvYmouZ2V0KCJzb3VyY2VJZCIpLAogICAgICAgICAgICAiZGVzdElkIjogb2JqLmdldCgiZGVzdElkIiksCiAgICAgICAgICAgICJhc3NldCI6IG9iai5nZXQoImFzc2V0IiksCiAgICAgICAgICAgICJiYXNlQXNzZXQiOiBvYmouZ2V0KCJiYXNlQXNzZXQiKSwKICAgICAgICAgICAgImFtb3VudCI6IG9iai5nZXQoImFtb3VudCIpLAogICAgICAgICAgICAiYW1vdW50VVNEIjogb2JqLmdldCgiYW1vdW50VVNEIiksCiAgICAgICAgICAgICJuZXR3b3JrUHJvdG9jb2wiOiBvYmouZ2V0KCJuZXR3b3JrUHJvdG9jb2wiKSwKICAgICAgICAgICAgIm9wZXJhdGlvbiI6IG9iai5nZXQoIm9wZXJhdGlvbiIpLAogICAgICAgICAgICAiYWN0aW9uIjogb2JqLmdldCgiYWN0aW9uIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/travel_rule_result.py b/fireblocks/models/travel_rule_result.py index 649887c8..388bcc70 100644 --- a/fireblocks/models/travel_rule_result.py +++ b/fireblocks/models/travel_rule_result.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum -from fireblocks.models.travel_rule_matched_rule import TravelRuleMatchedRule -from fireblocks.models.travel_rule_verdict_enum import TravelRuleVerdictEnum -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleResult(BaseModel): - """ - Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions. - """ # noqa: E501 - direction: Optional[TravelRuleDirectionEnum] = None - is_verified: Optional[StrictBool] = Field(default=None, description="Whether the travel rule information was verified", alias="isVerified") - action: Optional[TravelRuleVerdictEnum] = None - provider_response: Optional[Dict[str, Any]] = Field(default=None, description="Complete response from the travel rule provider. This is a dynamic object that varies significantly between different travel rule providers (NOTABENE etc.). Each provider has their own proprietary response format and schema. Examples of provider-specific structures: - NOTABENE: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. ", alias="providerResponse") - matched_rule: Optional[TravelRuleMatchedRule] = Field(default=None, alias="matchedRule") - __properties: ClassVar[List[str]] = ["direction", "isVerified", "action", "providerResponse", "matchedRule"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleResult from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of matched_rule - if self.matched_rule: - _dict['matchedRule'] = self.matched_rule.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleResult from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "direction": obj.get("direction"), - "isVerified": obj.get("isVerified"), - "action": obj.get("action"), - "providerResponse": obj.get("providerResponse"), - "matchedRule": TravelRuleMatchedRule.from_dict(obj["matchedRule"]) if obj.get("matchedRule") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9kaXJlY3Rpb25fZW51bSBpbXBvcnQgVHJhdmVsUnVsZURpcmVjdGlvbkVudW0KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9tYXRjaGVkX3J1bGUgaW1wb3J0IFRyYXZlbFJ1bGVNYXRjaGVkUnVsZQpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZlcmRpY3RfZW51bSBpbXBvcnQgVHJhdmVsUnVsZVZlcmRpY3RFbnVtCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRyYXZlbFJ1bGVSZXN1bHQoQmFzZU1vZGVsKToKICAgICIiIgogICAgRGVwcmVjYXRlZDogVGhpcyBmaWVsZCBpcyBub3QgY3VycmVudGx5IHJldHVybmVkIGluIHRoZSBBUEkgcmVzcG9uc2UuIERldGFpbGVkIFRyYXZlbCBSdWxlIHNjcmVlbmluZyByZXN1bHQgY29udGFpbmluZyBwcm92aWRlci1zcGVjaWZpYyBkYXRhLiBDb250YWlucyBUcmF2ZWwgUnVsZSBzcGVjaWZpYyBpbmZvcm1hdGlvbiBsaWtlIHZlcmlmaWVkIHN0YXR1cywgcnVsZSB0eXBlLCBhbmQgYWN0aW9ucy4gCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkaXJlY3Rpb246IE9wdGlvbmFsW1RyYXZlbFJ1bGVEaXJlY3Rpb25FbnVtXSA9IE5vbmUKICAgIGlzX3ZlcmlmaWVkOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IldoZXRoZXIgdGhlIHRyYXZlbCBydWxlIGluZm9ybWF0aW9uIHdhcyB2ZXJpZmllZCIsIGFsaWFzPSJpc1ZlcmlmaWVkIikKICAgIGFjdGlvbjogT3B0aW9uYWxbVHJhdmVsUnVsZVZlcmRpY3RFbnVtXSA9IE5vbmUKICAgIHByb3ZpZGVyX3Jlc3BvbnNlOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJDb21wbGV0ZSByZXNwb25zZSBmcm9tIHRoZSB0cmF2ZWwgcnVsZSBwcm92aWRlci4gVGhpcyBpcyBhIGR5bmFtaWMgb2JqZWN0IHRoYXQgdmFyaWVzIHNpZ25pZmljYW50bHkgYmV0d2VlbiBkaWZmZXJlbnQgdHJhdmVsIHJ1bGUgcHJvdmlkZXJzIChOT1RBQkVORSBldGMuKS4gRWFjaCBwcm92aWRlciBoYXMgdGhlaXIgb3duIHByb3ByaWV0YXJ5IHJlc3BvbnNlIGZvcm1hdCBhbmQgc2NoZW1hLiAgRXhhbXBsZXMgb2YgcHJvdmlkZXItc3BlY2lmaWMgc3RydWN0dXJlczogLSBOT1RBQkVORTogQ29udGFpbnMgVkFTUCBpbmZvcm1hdGlvbiwgUElJIGRhdGEsIHByb3RvY29sLXNwZWNpZmljIGZpZWxkcyAgVGhlIHN0cnVjdHVyZSBpcyBwcm92aWRlci1kZXBlbmRlbnQgYW5kIGNhbm5vdCBiZSBzdGFuZGFyZGl6ZWQgYXMgZWFjaCB2ZW5kb3IgaW1wbGVtZW50cyB0aGVpciBvd24gcHJvcHJpZXRhcnkgZGF0YSBtb2RlbHMgYW5kIHJlc3BvbnNlIGZvcm1hdHMuICIsIGFsaWFzPSJwcm92aWRlclJlc3BvbnNlIikKICAgIG1hdGNoZWRfcnVsZTogT3B0aW9uYWxbVHJhdmVsUnVsZU1hdGNoZWRSdWxlXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im1hdGNoZWRSdWxlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZGlyZWN0aW9uIiwgImlzVmVyaWZpZWQiLCAiYWN0aW9uIiwgInByb3ZpZGVyUmVzcG9uc2UiLCAibWF0Y2hlZFJ1bGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVSZXN1bHQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBtYXRjaGVkX3J1bGUKICAgICAgICBpZiBzZWxmLm1hdGNoZWRfcnVsZToKICAgICAgICAgICAgX2RpY3RbJ21hdGNoZWRSdWxlJ10gPSBzZWxmLm1hdGNoZWRfcnVsZS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVSZXN1bHQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZGlyZWN0aW9uIjogb2JqLmdldCgiZGlyZWN0aW9uIiksCiAgICAgICAgICAgICJpc1ZlcmlmaWVkIjogb2JqLmdldCgiaXNWZXJpZmllZCIpLAogICAgICAgICAgICAiYWN0aW9uIjogb2JqLmdldCgiYWN0aW9uIiksCiAgICAgICAgICAgICJwcm92aWRlclJlc3BvbnNlIjogb2JqLmdldCgicHJvdmlkZXJSZXNwb25zZSIpLAogICAgICAgICAgICAibWF0Y2hlZFJ1bGUiOiBUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGUuZnJvbV9kaWN0KG9ialsibWF0Y2hlZFJ1bGUiXSkgaWYgb2JqLmdldCgibWF0Y2hlZFJ1bGUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/travel_rule_status_enum.py b/fireblocks/models/travel_rule_status_enum.py index 5a01f9c9..ccb8bc05 100644 --- a/fireblocks/models/travel_rule_status_enum.py +++ b/fireblocks/models/travel_rule_status_enum.py @@ -1,41 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TravelRuleStatusEnum(str, Enum): - """ - Travel rule status - """ - - """ - allowed enum values - """ - COMPLETED = 'COMPLETED' - PENDING = 'PENDING' - BYPASSED = 'BYPASSED' - FAILED = 'FAILED' - FROZEN = 'FROZEN' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TravelRuleStatusEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUcmF2ZWxSdWxlU3RhdHVzRW51bShzdHIsIEVudW0pOgogICAgIiIiCiAgICBUcmF2ZWwgcnVsZSBzdGF0dXMKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBDT01QTEVURUQgPSAnQ09NUExFVEVEJwogICAgUEVORElORyA9ICdQRU5ESU5HJwogICAgQllQQVNTRUQgPSAnQllQQVNTRUQnCiAgICBGQUlMRUQgPSAnRkFJTEVEJwogICAgRlJPWkVOID0gJ0ZST1pFTicKICAgIFJFSkVDVEVEID0gJ1JFSkVDVEVEJwogICAgQ0FOQ0VMRUQgPSAnQ0FOQ0VMRUQnCiAgICBCTE9DS0lOR19USU1FX0VYUElSRUQgPSAnQkxPQ0tJTkdfVElNRV9FWFBJUkVEJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVTdGF0dXNFbnVtIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/travel_rule_transaction_blockchain_info.py b/fireblocks/models/travel_rule_transaction_blockchain_info.py index e2b28624..70b8f27d 100644 --- a/fireblocks/models/travel_rule_transaction_blockchain_info.py +++ b/fireblocks/models/travel_rule_transaction_blockchain_info.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleTransactionBlockchainInfo(BaseModel): - """ - Information about the blockchain transaction. - """ # noqa: E501 - tx_hash: Optional[StrictStr] = Field(default=None, description="The hash of the transaction", alias="txHash") - origin: Optional[StrictStr] = Field(default=None, description="The origin address of the transaction") - destination: Optional[StrictStr] = Field(default=None, description="The destination address of the transaction") - __properties: ClassVar[List[str]] = ["txHash", "origin", "destination"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleTransactionBlockchainInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleTransactionBlockchainInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "txHash": obj.get("txHash"), - "origin": obj.get("origin"), - "destination": obj.get("destination") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmF2ZWxSdWxlVHJhbnNhY3Rpb25CbG9ja2NoYWluSW5mbyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBJbmZvcm1hdGlvbiBhYm91dCB0aGUgYmxvY2tjaGFpbiB0cmFuc2FjdGlvbi4KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHR4X2hhc2g6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgaGFzaCBvZiB0aGUgdHJhbnNhY3Rpb24iLCBhbGlhcz0idHhIYXNoIikKICAgIG9yaWdpbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBvcmlnaW4gYWRkcmVzcyBvZiB0aGUgdHJhbnNhY3Rpb24iKQogICAgZGVzdGluYXRpb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgZGVzdGluYXRpb24gYWRkcmVzcyBvZiB0aGUgdHJhbnNhY3Rpb24iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eEhhc2giLCAib3JpZ2luIiwgImRlc3RpbmF0aW9uIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVHJhbnNhY3Rpb25CbG9ja2NoYWluSW5mbyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVHJhbnNhY3Rpb25CbG9ja2NoYWluSW5mbyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0eEhhc2giOiBvYmouZ2V0KCJ0eEhhc2giKSwKICAgICAgICAgICAgIm9yaWdpbiI6IG9iai5nZXQoIm9yaWdpbiIpLAogICAgICAgICAgICAiZGVzdGluYXRpb24iOiBvYmouZ2V0KCJkZXN0aW5hdGlvbiIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/travel_rule_update_vasp_details.py b/fireblocks/models/travel_rule_update_vasp_details.py index ef63f5f5..834260c3 100644 --- a/fireblocks/models/travel_rule_update_vasp_details.py +++ b/fireblocks/models/travel_rule_update_vasp_details.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleUpdateVASPDetails(BaseModel): - """ - TravelRuleUpdateVASPDetails - """ # noqa: E501 - did: StrictStr = Field(description="The decentralized identifier of the VASP") - pii_didkey: StrictStr = Field(description="The PII DID key of the VASP") - __properties: ClassVar[List[str]] = ["did", "pii_didkey"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleUpdateVASPDetails from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleUpdateVASPDetails from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "did": obj.get("did"), - "pii_didkey": obj.get("pii_didkey") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRyYXZlbFJ1bGVVcGRhdGVWQVNQRGV0YWlscyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUcmF2ZWxSdWxlVXBkYXRlVkFTUERldGFpbHMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGRpZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBkZWNlbnRyYWxpemVkIGlkZW50aWZpZXIgb2YgdGhlIFZBU1AiKQogICAgcGlpX2RpZGtleTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBQSUkgRElEIGtleSBvZiB0aGUgVkFTUCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRpZCIsICJwaWlfZGlka2V5Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVXBkYXRlVkFTUERldGFpbHMgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVVwZGF0ZVZBU1BEZXRhaWxzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRpZCI6IG9iai5nZXQoImRpZCIpLAogICAgICAgICAgICAicGlpX2RpZGtleSI6IG9iai5nZXQoInBpaV9kaWRrZXkiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/travel_rule_validate_date_and_place_of_birth.py b/fireblocks/models/travel_rule_validate_date_and_place_of_birth.py index 3a021c49..68bd3edc 100644 --- a/fireblocks/models/travel_rule_validate_date_and_place_of_birth.py +++ b/fireblocks/models/travel_rule_validate_date_and_place_of_birth.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleValidateDateAndPlaceOfBirth(BaseModel): - """ - Represents the date and place of birth for a natural person - """ # noqa: E501 - date_of_birth: Optional[StrictStr] = Field(default=None, description="Date of birth in ISO 8601 format (YYYY-MM-DD)", alias="dateOfBirth") - place_of_birth: Optional[StrictStr] = Field(default=None, description="Place of birth", alias="placeOfBirth") - __properties: ClassVar[List[str]] = ["dateOfBirth", "placeOfBirth"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleValidateDateAndPlaceOfBirth from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleValidateDateAndPlaceOfBirth from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "dateOfBirth": obj.get("dateOfBirth"), - "placeOfBirth": obj.get("placeOfBirth") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmF2ZWxSdWxlVmFsaWRhdGVEYXRlQW5kUGxhY2VPZkJpcnRoKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFJlcHJlc2VudHMgdGhlIGRhdGUgYW5kIHBsYWNlIG9mIGJpcnRoIGZvciBhIG5hdHVyYWwgcGVyc29uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkYXRlX29mX2JpcnRoOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGF0ZSBvZiBiaXJ0aCBpbiBJU08gODYwMSBmb3JtYXQgKFlZWVktTU0tREQpIiwgYWxpYXM9ImRhdGVPZkJpcnRoIikKICAgIHBsYWNlX29mX2JpcnRoOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iUGxhY2Ugb2YgYmlydGgiLCBhbGlhcz0icGxhY2VPZkJpcnRoIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiZGF0ZU9mQmlydGgiLCAicGxhY2VPZkJpcnRoIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVmFsaWRhdGVEYXRlQW5kUGxhY2VPZkJpcnRoIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWYWxpZGF0ZURhdGVBbmRQbGFjZU9mQmlydGggZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiZGF0ZU9mQmlydGgiOiBvYmouZ2V0KCJkYXRlT2ZCaXJ0aCIpLAogICAgICAgICAgICAicGxhY2VPZkJpcnRoIjogb2JqLmdldCgicGxhY2VPZkJpcnRoIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/travel_rule_validate_full_transaction_request.py b/fireblocks/models/travel_rule_validate_full_transaction_request.py index 6c4dd54f..1ea8c59a 100644 --- a/fireblocks/models/travel_rule_validate_full_transaction_request.py +++ b/fireblocks/models/travel_rule_validate_full_transaction_request.py @@ -1,166 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.travel_rule_ownership_proof import TravelRuleOwnershipProof -from fireblocks.models.travel_rule_pii_ivms import TravelRulePiiIVMS -from fireblocks.models.travel_rule_transaction_blockchain_info import TravelRuleTransactionBlockchainInfo -from fireblocks.models.travel_rule_validate_pii_ivms import TravelRuleValidatePiiIVMS -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleValidateFullTransactionRequest(BaseModel): - """ - TravelRuleValidateFullTransactionRequest - """ # noqa: E501 - originator_vas_pdid: Optional[StrictStr] = Field(default=None, description="The Decentralized Identifier (DID) of the exchange (VASP) that is sending the virtual assets. This identifier is unique to the exchange and is generated when the exchange's account is created in the Notabene network.", alias="originatorVASPdid") - beneficiary_vas_pdid: Optional[StrictStr] = Field(default=None, description="The Decentralized Identifier (DID) of the exchange (VASP) that is receiving the virtual assets. This identifier is unique to the exchange and is generated when the exchange's account is created in the Notabene network.", alias="beneficiaryVASPdid") - transaction_asset: Optional[StrictStr] = Field(default=None, description="Transaction asset symbol (e.g., BTC, ETH, USDC). By using the `notation` query string, users can select the type of asset notation: - `fireblocks`: Converts asset symbols to Fireblocks notation. - `notabene`: Retains the original Notabene asset symbol format.", alias="transactionAsset") - transaction_amount: Optional[StrictStr] = Field(default=None, description="Transaction amount in the transaction asset. For example, if the asset is BTC, the amount is the value in BTC units. By using the `notation` query string, users can select the type of amount notation: - `fireblocks`: Converts the amount to Fireblocks notation (e.g., adjusted for decimals). - `notabene`: Retains the original Notabene amount format.", alias="transactionAmount") - originator_vas_pname: Optional[StrictStr] = Field(default=None, description="The name of the VASP acting as the transaction originator.", alias="originatorVASPname") - beneficiary_vas_pname: Optional[StrictStr] = Field(default=None, description="The name of the VASP acting as the transaction beneficiary.", alias="beneficiaryVASPname") - transaction_blockchain_info: Optional[TravelRuleTransactionBlockchainInfo] = Field(default=None, alias="transactionBlockchainInfo") - originator: TravelRuleValidatePiiIVMS - beneficiary: TravelRuleValidatePiiIVMS - encrypted: Optional[StrictStr] = Field(default=None, description="Encrypted data related to the transaction.") - protocol: Optional[StrictStr] = Field(default=None, description="The protocol used to perform the travel rule.") - skip_beneficiary_data_validation: Optional[StrictBool] = Field(default=None, description="Whether to skip validation of beneficiary data.", alias="skipBeneficiaryDataValidation") - travel_rule_behavior: Optional[StrictBool] = Field(default=None, description="Whether to check if the transaction complies with the travel rule in the beneficiary VASP's jurisdiction.", alias="travelRuleBehavior") - originator_ref: Optional[StrictStr] = Field(default=None, description="A reference ID related to the originator of the transaction.", alias="originatorRef") - beneficiary_ref: Optional[StrictStr] = Field(default=None, description="A reference ID related to the beneficiary of the transaction.", alias="beneficiaryRef") - travel_rule_behavior_ref: Optional[StrictStr] = Field(default=None, description="A reference ID related to the travel rule behavior.", alias="travelRuleBehaviorRef") - originator_proof: Optional[TravelRuleOwnershipProof] = Field(default=None, alias="originatorProof") - beneficiary_proof: Optional[TravelRuleOwnershipProof] = Field(default=None, alias="beneficiaryProof") - beneficiary_did: Optional[StrictStr] = Field(default=None, description="The Decentralized Identifier (DID) of the person at the receiving exchange (VASP). This identifier is generated when the customer is registered in the Notabene network, or automatically created based on the `beneficiaryRef`. - If neither `beneficiaryRef` nor `beneficiaryDid` is provided in the `txCreate` payload, a new random DID is generated for every transaction.", alias="beneficiaryDid") - originator_did: Optional[StrictStr] = Field(default=None, description="The Decentralized Identifier (DID) of the person at the exchange (VASP) who is requesting the withdrawal. This identifier is generated when the customer is registered in the Notabene network or automatically created based on the `originatorRef`. - If neither `originatorRef` nor `originatorDid` is provided in the `txCreate` payload, a new random DID is generated for every transaction.", alias="originatorDid") - is_non_custodial: Optional[StrictBool] = Field(default=None, description="Indicates if the transaction involves a non-custodial wallet.", alias="isNonCustodial") - notification_email: Optional[StrictStr] = Field(default=None, description="The email address where a notification should be sent upon completion of the travel rule", alias="notificationEmail") - pii: Optional[TravelRulePiiIVMS] = None - pii_url: Optional[StrictStr] = Field(default=None, description="The URL of the personal identifiable information related to the transaction") - __properties: ClassVar[List[str]] = ["originatorVASPdid", "beneficiaryVASPdid", "transactionAsset", "transactionAmount", "originatorVASPname", "beneficiaryVASPname", "transactionBlockchainInfo", "originator", "beneficiary", "encrypted", "protocol", "skipBeneficiaryDataValidation", "travelRuleBehavior", "originatorRef", "beneficiaryRef", "travelRuleBehaviorRef", "originatorProof", "beneficiaryProof", "beneficiaryDid", "originatorDid", "isNonCustodial", "notificationEmail", "pii", "pii_url"] - - @field_validator('protocol') - def protocol_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['TRLight', 'TRP', 'OpenVASP', 'GTR']): - raise ValueError("must be one of enum values ('TRLight', 'TRP', 'OpenVASP', 'GTR')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleValidateFullTransactionRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of transaction_blockchain_info - if self.transaction_blockchain_info: - _dict['transactionBlockchainInfo'] = self.transaction_blockchain_info.to_dict() - # override the default output from pydantic by calling `to_dict()` of originator - if self.originator: - _dict['originator'] = self.originator.to_dict() - # override the default output from pydantic by calling `to_dict()` of beneficiary - if self.beneficiary: - _dict['beneficiary'] = self.beneficiary.to_dict() - # override the default output from pydantic by calling `to_dict()` of originator_proof - if self.originator_proof: - _dict['originatorProof'] = self.originator_proof.to_dict() - # override the default output from pydantic by calling `to_dict()` of beneficiary_proof - if self.beneficiary_proof: - _dict['beneficiaryProof'] = self.beneficiary_proof.to_dict() - # override the default output from pydantic by calling `to_dict()` of pii - if self.pii: - _dict['pii'] = self.pii.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleValidateFullTransactionRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "originatorVASPdid": obj.get("originatorVASPdid"), - "beneficiaryVASPdid": obj.get("beneficiaryVASPdid"), - "transactionAsset": obj.get("transactionAsset"), - "transactionAmount": obj.get("transactionAmount"), - "originatorVASPname": obj.get("originatorVASPname"), - "beneficiaryVASPname": obj.get("beneficiaryVASPname"), - "transactionBlockchainInfo": TravelRuleTransactionBlockchainInfo.from_dict(obj["transactionBlockchainInfo"]) if obj.get("transactionBlockchainInfo") is not None else None, - "originator": TravelRuleValidatePiiIVMS.from_dict(obj["originator"]) if obj.get("originator") is not None else None, - "beneficiary": TravelRuleValidatePiiIVMS.from_dict(obj["beneficiary"]) if obj.get("beneficiary") is not None else None, - "encrypted": obj.get("encrypted"), - "protocol": obj.get("protocol"), - "skipBeneficiaryDataValidation": obj.get("skipBeneficiaryDataValidation"), - "travelRuleBehavior": obj.get("travelRuleBehavior"), - "originatorRef": obj.get("originatorRef"), - "beneficiaryRef": obj.get("beneficiaryRef"), - "travelRuleBehaviorRef": obj.get("travelRuleBehaviorRef"), - "originatorProof": TravelRuleOwnershipProof.from_dict(obj["originatorProof"]) if obj.get("originatorProof") is not None else None, - "beneficiaryProof": TravelRuleOwnershipProof.from_dict(obj["beneficiaryProof"]) if obj.get("beneficiaryProof") is not None else None, - "beneficiaryDid": obj.get("beneficiaryDid"), - "originatorDid": obj.get("originatorDid"), - "isNonCustodial": obj.get("isNonCustodial"), - "notificationEmail": obj.get("notificationEmail"), - "pii": TravelRulePiiIVMS.from_dict(obj["pii"]) if obj.get("pii") is not None else None, - "pii_url": obj.get("pii_url") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfb3duZXJzaGlwX3Byb29mIGltcG9ydCBUcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2YKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9waWlfaXZtcyBpbXBvcnQgVHJhdmVsUnVsZVBpaUlWTVMKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV90cmFuc2FjdGlvbl9ibG9ja2NoYWluX2luZm8gaW1wb3J0IFRyYXZlbFJ1bGVUcmFuc2FjdGlvbkJsb2NrY2hhaW5JbmZvCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfcGlpX2l2bXMgaW1wb3J0IFRyYXZlbFJ1bGVWYWxpZGF0ZVBpaUlWTVMKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVHJhdmVsUnVsZVZhbGlkYXRlRnVsbFRyYW5zYWN0aW9uUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUcmF2ZWxSdWxlVmFsaWRhdGVGdWxsVHJhbnNhY3Rpb25SZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBvcmlnaW5hdG9yX3Zhc19wZGlkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIERlY2VudHJhbGl6ZWQgSWRlbnRpZmllciAoRElEKSBvZiB0aGUgZXhjaGFuZ2UgKFZBU1ApIHRoYXQgaXMgc2VuZGluZyB0aGUgdmlydHVhbCBhc3NldHMuIFRoaXMgaWRlbnRpZmllciBpcyB1bmlxdWUgdG8gdGhlIGV4Y2hhbmdlIGFuZCBpcyBnZW5lcmF0ZWQgd2hlbiB0aGUgZXhjaGFuZ2UncyBhY2NvdW50IGlzICBjcmVhdGVkIGluIHRoZSBOb3RhYmVuZSBuZXR3b3JrLiIsIGFsaWFzPSJvcmlnaW5hdG9yVkFTUGRpZCIpCiAgICBiZW5lZmljaWFyeV92YXNfcGRpZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBEZWNlbnRyYWxpemVkIElkZW50aWZpZXIgKERJRCkgb2YgdGhlIGV4Y2hhbmdlIChWQVNQKSB0aGF0IGlzIHJlY2VpdmluZyB0aGUgdmlydHVhbCBhc3NldHMuIFRoaXMgaWRlbnRpZmllciBpcyB1bmlxdWUgdG8gdGhlIGV4Y2hhbmdlIGFuZCBpcyBnZW5lcmF0ZWQgd2hlbiB0aGUgZXhjaGFuZ2UncyBhY2NvdW50IGlzICBjcmVhdGVkIGluIHRoZSBOb3RhYmVuZSBuZXR3b3JrLiIsIGFsaWFzPSJiZW5lZmljaWFyeVZBU1BkaWQiKQogICAgdHJhbnNhY3Rpb25fYXNzZXQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUcmFuc2FjdGlvbiBhc3NldCBzeW1ib2wgKGUuZy4sIEJUQywgRVRILCBVU0RDKS4gIEJ5IHVzaW5nIHRoZSBgbm90YXRpb25gIHF1ZXJ5IHN0cmluZywgdXNlcnMgY2FuIHNlbGVjdCB0aGUgdHlwZSBvZiBhc3NldCBub3RhdGlvbjogLSBgZmlyZWJsb2Nrc2A6IENvbnZlcnRzIGFzc2V0IHN5bWJvbHMgdG8gRmlyZWJsb2NrcyBub3RhdGlvbi4gLSBgbm90YWJlbmVgOiBSZXRhaW5zIHRoZSBvcmlnaW5hbCBOb3RhYmVuZSBhc3NldCBzeW1ib2wgZm9ybWF0LiIsIGFsaWFzPSJ0cmFuc2FjdGlvbkFzc2V0IikKICAgIHRyYW5zYWN0aW9uX2Ftb3VudDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRyYW5zYWN0aW9uIGFtb3VudCBpbiB0aGUgdHJhbnNhY3Rpb24gYXNzZXQuIEZvciBleGFtcGxlLCBpZiB0aGUgYXNzZXQgaXMgQlRDLCB0aGUgYW1vdW50ICBpcyB0aGUgdmFsdWUgaW4gQlRDIHVuaXRzLiAgQnkgdXNpbmcgdGhlIGBub3RhdGlvbmAgcXVlcnkgc3RyaW5nLCB1c2VycyBjYW4gc2VsZWN0IHRoZSB0eXBlIG9mIGFtb3VudCBub3RhdGlvbjogLSBgZmlyZWJsb2Nrc2A6IENvbnZlcnRzIHRoZSBhbW91bnQgdG8gRmlyZWJsb2NrcyBub3RhdGlvbiAoZS5nLiwgYWRqdXN0ZWQgZm9yIGRlY2ltYWxzKS4gLSBgbm90YWJlbmVgOiBSZXRhaW5zIHRoZSBvcmlnaW5hbCBOb3RhYmVuZSBhbW91bnQgZm9ybWF0LiIsIGFsaWFzPSJ0cmFuc2FjdGlvbkFtb3VudCIpCiAgICBvcmlnaW5hdG9yX3Zhc19wbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBuYW1lIG9mIHRoZSBWQVNQIGFjdGluZyBhcyB0aGUgdHJhbnNhY3Rpb24gb3JpZ2luYXRvci4iLCBhbGlhcz0ib3JpZ2luYXRvclZBU1BuYW1lIikKICAgIGJlbmVmaWNpYXJ5X3Zhc19wbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBuYW1lIG9mIHRoZSBWQVNQIGFjdGluZyBhcyB0aGUgdHJhbnNhY3Rpb24gYmVuZWZpY2lhcnkuIiwgYWxpYXM9ImJlbmVmaWNpYXJ5VkFTUG5hbWUiKQogICAgdHJhbnNhY3Rpb25fYmxvY2tjaGFpbl9pbmZvOiBPcHRpb25hbFtUcmF2ZWxSdWxlVHJhbnNhY3Rpb25CbG9ja2NoYWluSW5mb10gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJ0cmFuc2FjdGlvbkJsb2NrY2hhaW5JbmZvIikKICAgIG9yaWdpbmF0b3I6IFRyYXZlbFJ1bGVWYWxpZGF0ZVBpaUlWTVMKICAgIGJlbmVmaWNpYXJ5OiBUcmF2ZWxSdWxlVmFsaWRhdGVQaWlJVk1TCiAgICBlbmNyeXB0ZWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJFbmNyeXB0ZWQgZGF0YSByZWxhdGVkIHRvIHRoZSB0cmFuc2FjdGlvbi4iKQogICAgcHJvdG9jb2w6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgcHJvdG9jb2wgdXNlZCB0byBwZXJmb3JtIHRoZSB0cmF2ZWwgcnVsZS4iKQogICAgc2tpcF9iZW5lZmljaWFyeV9kYXRhX3ZhbGlkYXRpb246IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iV2hldGhlciB0byBza2lwIHZhbGlkYXRpb24gb2YgYmVuZWZpY2lhcnkgZGF0YS4iLCBhbGlhcz0ic2tpcEJlbmVmaWNpYXJ5RGF0YVZhbGlkYXRpb24iKQogICAgdHJhdmVsX3J1bGVfYmVoYXZpb3I6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iV2hldGhlciB0byBjaGVjayBpZiB0aGUgdHJhbnNhY3Rpb24gY29tcGxpZXMgd2l0aCB0aGUgdHJhdmVsIHJ1bGUgaW4gdGhlIGJlbmVmaWNpYXJ5IFZBU1AncyBqdXJpc2RpY3Rpb24uIiwgYWxpYXM9InRyYXZlbFJ1bGVCZWhhdmlvciIpCiAgICBvcmlnaW5hdG9yX3JlZjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkEgcmVmZXJlbmNlIElEIHJlbGF0ZWQgdG8gdGhlIG9yaWdpbmF0b3Igb2YgdGhlIHRyYW5zYWN0aW9uLiIsIGFsaWFzPSJvcmlnaW5hdG9yUmVmIikKICAgIGJlbmVmaWNpYXJ5X3JlZjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkEgcmVmZXJlbmNlIElEIHJlbGF0ZWQgdG8gdGhlIGJlbmVmaWNpYXJ5IG9mIHRoZSB0cmFuc2FjdGlvbi4iLCBhbGlhcz0iYmVuZWZpY2lhcnlSZWYiKQogICAgdHJhdmVsX3J1bGVfYmVoYXZpb3JfcmVmOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQSByZWZlcmVuY2UgSUQgcmVsYXRlZCB0byB0aGUgdHJhdmVsIHJ1bGUgYmVoYXZpb3IuIiwgYWxpYXM9InRyYXZlbFJ1bGVCZWhhdmlvclJlZiIpCiAgICBvcmlnaW5hdG9yX3Byb29mOiBPcHRpb25hbFtUcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2ZdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ib3JpZ2luYXRvclByb29mIikKICAgIGJlbmVmaWNpYXJ5X3Byb29mOiBPcHRpb25hbFtUcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2ZdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYmVuZWZpY2lhcnlQcm9vZiIpCiAgICBiZW5lZmljaWFyeV9kaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgRGVjZW50cmFsaXplZCBJZGVudGlmaWVyIChESUQpIG9mIHRoZSBwZXJzb24gYXQgdGhlIHJlY2VpdmluZyBleGNoYW5nZSAoVkFTUCkuICBUaGlzIGlkZW50aWZpZXIgaXMgZ2VuZXJhdGVkIHdoZW4gdGhlIGN1c3RvbWVyIGlzIHJlZ2lzdGVyZWQgaW4gdGhlIE5vdGFiZW5lIG5ldHdvcmssICBvciBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgYmFzZWQgb24gdGhlIGBiZW5lZmljaWFyeVJlZmAuICAtIElmIG5laXRoZXIgYGJlbmVmaWNpYXJ5UmVmYCBub3IgYGJlbmVmaWNpYXJ5RGlkYCBpcyBwcm92aWRlZCBpbiB0aGUgYHR4Q3JlYXRlYCBwYXlsb2FkLCAgICBhIG5ldyByYW5kb20gRElEIGlzIGdlbmVyYXRlZCBmb3IgZXZlcnkgdHJhbnNhY3Rpb24uIiwgYWxpYXM9ImJlbmVmaWNpYXJ5RGlkIikKICAgIG9yaWdpbmF0b3JfZGlkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIERlY2VudHJhbGl6ZWQgSWRlbnRpZmllciAoRElEKSBvZiB0aGUgcGVyc29uIGF0IHRoZSBleGNoYW5nZSAoVkFTUCkgd2hvIGlzIHJlcXVlc3RpbmcgdGhlIHdpdGhkcmF3YWwuIFRoaXMgaWRlbnRpZmllciBpcyBnZW5lcmF0ZWQgd2hlbiB0aGUgY3VzdG9tZXIgaXMgcmVnaXN0ZXJlZCBpbiB0aGUgTm90YWJlbmUgbmV0d29yayBvciBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgYmFzZWQgb24gdGhlIGBvcmlnaW5hdG9yUmVmYC4gIC0gSWYgbmVpdGhlciBgb3JpZ2luYXRvclJlZmAgbm9yIGBvcmlnaW5hdG9yRGlkYCBpcyBwcm92aWRlZCBpbiB0aGUgYHR4Q3JlYXRlYCBwYXlsb2FkLCAgICBhIG5ldyByYW5kb20gRElEIGlzIGdlbmVyYXRlZCBmb3IgZXZlcnkgdHJhbnNhY3Rpb24uIiwgYWxpYXM9Im9yaWdpbmF0b3JEaWQiKQogICAgaXNfbm9uX2N1c3RvZGlhbDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJbmRpY2F0ZXMgaWYgdGhlIHRyYW5zYWN0aW9uIGludm9sdmVzIGEgbm9uLWN1c3RvZGlhbCB3YWxsZXQuIiwgYWxpYXM9ImlzTm9uQ3VzdG9kaWFsIikKICAgIG5vdGlmaWNhdGlvbl9lbWFpbDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBlbWFpbCBhZGRyZXNzIHdoZXJlIGEgbm90aWZpY2F0aW9uIHNob3VsZCBiZSBzZW50IHVwb24gY29tcGxldGlvbiBvZiB0aGUgdHJhdmVsIHJ1bGUiLCBhbGlhcz0ibm90aWZpY2F0aW9uRW1haWwiKQogICAgcGlpOiBPcHRpb25hbFtUcmF2ZWxSdWxlUGlpSVZNU10gPSBOb25lCiAgICBwaWlfdXJsOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIFVSTCBvZiB0aGUgcGVyc29uYWwgaWRlbnRpZmlhYmxlIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gdGhlIHRyYW5zYWN0aW9uIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsib3JpZ2luYXRvclZBU1BkaWQiLCAiYmVuZWZpY2lhcnlWQVNQZGlkIiwgInRyYW5zYWN0aW9uQXNzZXQiLCAidHJhbnNhY3Rpb25BbW91bnQiLCAib3JpZ2luYXRvclZBU1BuYW1lIiwgImJlbmVmaWNpYXJ5VkFTUG5hbWUiLCAidHJhbnNhY3Rpb25CbG9ja2NoYWluSW5mbyIsICJvcmlnaW5hdG9yIiwgImJlbmVmaWNpYXJ5IiwgImVuY3J5cHRlZCIsICJwcm90b2NvbCIsICJza2lwQmVuZWZpY2lhcnlEYXRhVmFsaWRhdGlvbiIsICJ0cmF2ZWxSdWxlQmVoYXZpb3IiLCAib3JpZ2luYXRvclJlZiIsICJiZW5lZmljaWFyeVJlZiIsICJ0cmF2ZWxSdWxlQmVoYXZpb3JSZWYiLCAib3JpZ2luYXRvclByb29mIiwgImJlbmVmaWNpYXJ5UHJvb2YiLCAiYmVuZWZpY2lhcnlEaWQiLCAib3JpZ2luYXRvckRpZCIsICJpc05vbkN1c3RvZGlhbCIsICJub3RpZmljYXRpb25FbWFpbCIsICJwaWkiLCAicGlpX3VybCJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigncHJvdG9jb2wnKQogICAgZGVmIHByb3RvY29sX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydUUkxpZ2h0JywgJ1RSUCcsICdPcGVuVkFTUCcsICdHVFInXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnVFJMaWdodCcsICdUUlAnLCAnT3BlblZBU1AnLCAnR1RSJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWYWxpZGF0ZUZ1bGxUcmFuc2FjdGlvblJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiB0cmFuc2FjdGlvbl9ibG9ja2NoYWluX2luZm8KICAgICAgICBpZiBzZWxmLnRyYW5zYWN0aW9uX2Jsb2NrY2hhaW5faW5mbzoKICAgICAgICAgICAgX2RpY3RbJ3RyYW5zYWN0aW9uQmxvY2tjaGFpbkluZm8nXSA9IHNlbGYudHJhbnNhY3Rpb25fYmxvY2tjaGFpbl9pbmZvLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBvcmlnaW5hdG9yCiAgICAgICAgaWYgc2VsZi5vcmlnaW5hdG9yOgogICAgICAgICAgICBfZGljdFsnb3JpZ2luYXRvciddID0gc2VsZi5vcmlnaW5hdG9yLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBiZW5lZmljaWFyeQogICAgICAgIGlmIHNlbGYuYmVuZWZpY2lhcnk6CiAgICAgICAgICAgIF9kaWN0WydiZW5lZmljaWFyeSddID0gc2VsZi5iZW5lZmljaWFyeS50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2Ygb3JpZ2luYXRvcl9wcm9vZgogICAgICAgIGlmIHNlbGYub3JpZ2luYXRvcl9wcm9vZjoKICAgICAgICAgICAgX2RpY3RbJ29yaWdpbmF0b3JQcm9vZiddID0gc2VsZi5vcmlnaW5hdG9yX3Byb29mLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBiZW5lZmljaWFyeV9wcm9vZgogICAgICAgIGlmIHNlbGYuYmVuZWZpY2lhcnlfcHJvb2Y6CiAgICAgICAgICAgIF9kaWN0WydiZW5lZmljaWFyeVByb29mJ10gPSBzZWxmLmJlbmVmaWNpYXJ5X3Byb29mLnRvX2RpY3QoKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBwaWkKICAgICAgICBpZiBzZWxmLnBpaToKICAgICAgICAgICAgX2RpY3RbJ3BpaSddID0gc2VsZi5waWkudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVmFsaWRhdGVGdWxsVHJhbnNhY3Rpb25SZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgIm9yaWdpbmF0b3JWQVNQZGlkIjogb2JqLmdldCgib3JpZ2luYXRvclZBU1BkaWQiKSwKICAgICAgICAgICAgImJlbmVmaWNpYXJ5VkFTUGRpZCI6IG9iai5nZXQoImJlbmVmaWNpYXJ5VkFTUGRpZCIpLAogICAgICAgICAgICAidHJhbnNhY3Rpb25Bc3NldCI6IG9iai5nZXQoInRyYW5zYWN0aW9uQXNzZXQiKSwKICAgICAgICAgICAgInRyYW5zYWN0aW9uQW1vdW50Ijogb2JqLmdldCgidHJhbnNhY3Rpb25BbW91bnQiKSwKICAgICAgICAgICAgIm9yaWdpbmF0b3JWQVNQbmFtZSI6IG9iai5nZXQoIm9yaWdpbmF0b3JWQVNQbmFtZSIpLAogICAgICAgICAgICAiYmVuZWZpY2lhcnlWQVNQbmFtZSI6IG9iai5nZXQoImJlbmVmaWNpYXJ5VkFTUG5hbWUiKSwKICAgICAgICAgICAgInRyYW5zYWN0aW9uQmxvY2tjaGFpbkluZm8iOiBUcmF2ZWxSdWxlVHJhbnNhY3Rpb25CbG9ja2NoYWluSW5mby5mcm9tX2RpY3Qob2JqWyJ0cmFuc2FjdGlvbkJsb2NrY2hhaW5JbmZvIl0pIGlmIG9iai5nZXQoInRyYW5zYWN0aW9uQmxvY2tjaGFpbkluZm8iKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJvcmlnaW5hdG9yIjogVHJhdmVsUnVsZVZhbGlkYXRlUGlpSVZNUy5mcm9tX2RpY3Qob2JqWyJvcmlnaW5hdG9yIl0pIGlmIG9iai5nZXQoIm9yaWdpbmF0b3IiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJiZW5lZmljaWFyeSI6IFRyYXZlbFJ1bGVWYWxpZGF0ZVBpaUlWTVMuZnJvbV9kaWN0KG9ialsiYmVuZWZpY2lhcnkiXSkgaWYgb2JqLmdldCgiYmVuZWZpY2lhcnkiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJlbmNyeXB0ZWQiOiBvYmouZ2V0KCJlbmNyeXB0ZWQiKSwKICAgICAgICAgICAgInByb3RvY29sIjogb2JqLmdldCgicHJvdG9jb2wiKSwKICAgICAgICAgICAgInNraXBCZW5lZmljaWFyeURhdGFWYWxpZGF0aW9uIjogb2JqLmdldCgic2tpcEJlbmVmaWNpYXJ5RGF0YVZhbGlkYXRpb24iKSwKICAgICAgICAgICAgInRyYXZlbFJ1bGVCZWhhdmlvciI6IG9iai5nZXQoInRyYXZlbFJ1bGVCZWhhdmlvciIpLAogICAgICAgICAgICAib3JpZ2luYXRvclJlZiI6IG9iai5nZXQoIm9yaWdpbmF0b3JSZWYiKSwKICAgICAgICAgICAgImJlbmVmaWNpYXJ5UmVmIjogb2JqLmdldCgiYmVuZWZpY2lhcnlSZWYiKSwKICAgICAgICAgICAgInRyYXZlbFJ1bGVCZWhhdmlvclJlZiI6IG9iai5nZXQoInRyYXZlbFJ1bGVCZWhhdmlvclJlZiIpLAogICAgICAgICAgICAib3JpZ2luYXRvclByb29mIjogVHJhdmVsUnVsZU93bmVyc2hpcFByb29mLmZyb21fZGljdChvYmpbIm9yaWdpbmF0b3JQcm9vZiJdKSBpZiBvYmouZ2V0KCJvcmlnaW5hdG9yUHJvb2YiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJiZW5lZmljaWFyeVByb29mIjogVHJhdmVsUnVsZU93bmVyc2hpcFByb29mLmZyb21fZGljdChvYmpbImJlbmVmaWNpYXJ5UHJvb2YiXSkgaWYgb2JqLmdldCgiYmVuZWZpY2lhcnlQcm9vZiIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImJlbmVmaWNpYXJ5RGlkIjogb2JqLmdldCgiYmVuZWZpY2lhcnlEaWQiKSwKICAgICAgICAgICAgIm9yaWdpbmF0b3JEaWQiOiBvYmouZ2V0KCJvcmlnaW5hdG9yRGlkIiksCiAgICAgICAgICAgICJpc05vbkN1c3RvZGlhbCI6IG9iai5nZXQoImlzTm9uQ3VzdG9kaWFsIiksCiAgICAgICAgICAgICJub3RpZmljYXRpb25FbWFpbCI6IG9iai5nZXQoIm5vdGlmaWNhdGlvbkVtYWlsIiksCiAgICAgICAgICAgICJwaWkiOiBUcmF2ZWxSdWxlUGlpSVZNUy5mcm9tX2RpY3Qob2JqWyJwaWkiXSkgaWYgb2JqLmdldCgicGlpIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAicGlpX3VybCI6IG9iai5nZXQoInBpaV91cmwiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/travel_rule_validate_geographic_address.py b/fireblocks/models/travel_rule_validate_geographic_address.py index f9e3c016..fa65b1c4 100644 --- a/fireblocks/models/travel_rule_validate_geographic_address.py +++ b/fireblocks/models/travel_rule_validate_geographic_address.py @@ -1,128 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleValidateGeographicAddress(BaseModel): - """ - TravelRuleValidateGeographicAddress - """ # noqa: E501 - street_name: Optional[StrictStr] = Field(default=None, description="Name of a street or thoroughfare", alias="streetName") - town_name: Optional[StrictStr] = Field(default=None, description="Name of a built-up area, with defined boundaries, and a local government", alias="townName") - country: Optional[StrictStr] = Field(default=None, description="Nation with its own government (ISO-3166 Alpha-2 country code)") - building_number: Optional[StrictStr] = Field(default=None, description="Number that identifies the position of a building on a street", alias="buildingNumber") - post_code: Optional[StrictStr] = Field(default=None, description="Identifier consisting of a group of letters and/or numbers added to a postal address to assist the sorting of mail", alias="postCode") - address_type: Optional[StrictStr] = Field(default=None, description="Specifies the type of address. Acceptable values are: - 'HOME': Residential, the home address - 'BIZZ': Business, the business address - 'GEOG': Geographic, an unspecified physical (geographical) address", alias="addressType") - department: Optional[StrictStr] = Field(default=None, description="Identification of a division of a large organisation or building") - sub_department: Optional[StrictStr] = Field(default=None, description="Identification of a sub-division of a large organisation or building", alias="subDepartment") - building_name: Optional[StrictStr] = Field(default=None, description="Name of the building or house", alias="buildingName") - floor: Optional[StrictStr] = Field(default=None, description="Floor or storey within a building") - post_box: Optional[StrictStr] = Field(default=None, description="Numbered box in a post office", alias="postBox") - room: Optional[StrictStr] = Field(default=None, description="Building room number") - town_location_name: Optional[StrictStr] = Field(default=None, description="Specific location name within the town", alias="townLocationName") - district_name: Optional[StrictStr] = Field(default=None, description="Identifies a subdivision within a country subdivision", alias="districtName") - country_sub_division: Optional[StrictStr] = Field(default=None, description="Identifies a subdivision of a country such as state, region, or province", alias="countrySubDivision") - address_line: Optional[List[StrictStr]] = Field(default=None, description="Information that locates and identifies a specific address, presented in free format text", alias="addressLine") - __properties: ClassVar[List[str]] = ["streetName", "townName", "country", "buildingNumber", "postCode", "addressType", "department", "subDepartment", "buildingName", "floor", "postBox", "room", "townLocationName", "districtName", "countrySubDivision", "addressLine"] - - @field_validator('address_type') - def address_type_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['HOME', 'BIZZ', 'GEOG']): - raise ValueError("must be one of enum values ('HOME', 'BIZZ', 'GEOG')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleValidateGeographicAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleValidateGeographicAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "streetName": obj.get("streetName"), - "townName": obj.get("townName"), - "country": obj.get("country"), - "buildingNumber": obj.get("buildingNumber"), - "postCode": obj.get("postCode"), - "addressType": obj.get("addressType"), - "department": obj.get("department"), - "subDepartment": obj.get("subDepartment"), - "buildingName": obj.get("buildingName"), - "floor": obj.get("floor"), - "postBox": obj.get("postBox"), - "room": obj.get("room"), - "townLocationName": obj.get("townLocationName"), - "districtName": obj.get("districtName"), - "countrySubDivision": obj.get("countrySubDivision"), - "addressLine": obj.get("addressLine") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRyYXZlbFJ1bGVWYWxpZGF0ZUdlb2dyYXBoaWNBZGRyZXNzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRyYXZlbFJ1bGVWYWxpZGF0ZUdlb2dyYXBoaWNBZGRyZXNzCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzdHJlZXRfbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik5hbWUgb2YgYSBzdHJlZXQgb3IgdGhvcm91Z2hmYXJlIiwgYWxpYXM9InN0cmVldE5hbWUiKQogICAgdG93bl9uYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTmFtZSBvZiBhIGJ1aWx0LXVwIGFyZWEsIHdpdGggZGVmaW5lZCBib3VuZGFyaWVzLCBhbmQgYSBsb2NhbCBnb3Zlcm5tZW50IiwgYWxpYXM9InRvd25OYW1lIikKICAgIGNvdW50cnk6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOYXRpb24gd2l0aCBpdHMgb3duIGdvdmVybm1lbnQgKElTTy0zMTY2IEFscGhhLTIgY291bnRyeSBjb2RlKSIpCiAgICBidWlsZGluZ19udW1iZXI6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOdW1iZXIgdGhhdCBpZGVudGlmaWVzIHRoZSBwb3NpdGlvbiBvZiBhIGJ1aWxkaW5nIG9uIGEgc3RyZWV0IiwgYWxpYXM9ImJ1aWxkaW5nTnVtYmVyIikKICAgIHBvc3RfY29kZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IklkZW50aWZpZXIgY29uc2lzdGluZyBvZiBhIGdyb3VwIG9mIGxldHRlcnMgYW5kL29yIG51bWJlcnMgYWRkZWQgdG8gYSBwb3N0YWwgYWRkcmVzcyB0byBhc3Npc3QgdGhlIHNvcnRpbmcgb2YgbWFpbCIsIGFsaWFzPSJwb3N0Q29kZSIpCiAgICBhZGRyZXNzX3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTcGVjaWZpZXMgdGhlIHR5cGUgb2YgYWRkcmVzcy4gQWNjZXB0YWJsZSB2YWx1ZXMgYXJlOiAtICdIT01FJzogUmVzaWRlbnRpYWwsIHRoZSBob21lIGFkZHJlc3MgLSAnQklaWic6IEJ1c2luZXNzLCB0aGUgYnVzaW5lc3MgYWRkcmVzcyAtICdHRU9HJzogR2VvZ3JhcGhpYywgYW4gdW5zcGVjaWZpZWQgcGh5c2ljYWwgKGdlb2dyYXBoaWNhbCkgYWRkcmVzcyIsIGFsaWFzPSJhZGRyZXNzVHlwZSIpCiAgICBkZXBhcnRtZW50OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSWRlbnRpZmljYXRpb24gb2YgYSBkaXZpc2lvbiBvZiBhIGxhcmdlIG9yZ2FuaXNhdGlvbiBvciBidWlsZGluZyIpCiAgICBzdWJfZGVwYXJ0bWVudDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IklkZW50aWZpY2F0aW9uIG9mIGEgc3ViLWRpdmlzaW9uIG9mIGEgbGFyZ2Ugb3JnYW5pc2F0aW9uIG9yIGJ1aWxkaW5nIiwgYWxpYXM9InN1YkRlcGFydG1lbnQiKQogICAgYnVpbGRpbmdfbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik5hbWUgb2YgdGhlIGJ1aWxkaW5nIG9yIGhvdXNlIiwgYWxpYXM9ImJ1aWxkaW5nTmFtZSIpCiAgICBmbG9vcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkZsb29yIG9yIHN0b3JleSB3aXRoaW4gYSBidWlsZGluZyIpCiAgICBwb3N0X2JveDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik51bWJlcmVkIGJveCBpbiBhIHBvc3Qgb2ZmaWNlIiwgYWxpYXM9InBvc3RCb3giKQogICAgcm9vbTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkJ1aWxkaW5nIHJvb20gbnVtYmVyIikKICAgIHRvd25fbG9jYXRpb25fbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNwZWNpZmljIGxvY2F0aW9uIG5hbWUgd2l0aGluIHRoZSB0b3duIiwgYWxpYXM9InRvd25Mb2NhdGlvbk5hbWUiKQogICAgZGlzdHJpY3RfbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IklkZW50aWZpZXMgYSBzdWJkaXZpc2lvbiB3aXRoaW4gYSBjb3VudHJ5IHN1YmRpdmlzaW9uIiwgYWxpYXM9ImRpc3RyaWN0TmFtZSIpCiAgICBjb3VudHJ5X3N1Yl9kaXZpc2lvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IklkZW50aWZpZXMgYSBzdWJkaXZpc2lvbiBvZiBhIGNvdW50cnkgc3VjaCBhcyBzdGF0ZSwgcmVnaW9uLCBvciBwcm92aW5jZSIsIGFsaWFzPSJjb3VudHJ5U3ViRGl2aXNpb24iKQogICAgYWRkcmVzc19saW5lOiBPcHRpb25hbFtMaXN0W1N0cmljdFN0cl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSW5mb3JtYXRpb24gdGhhdCBsb2NhdGVzIGFuZCBpZGVudGlmaWVzIGEgc3BlY2lmaWMgYWRkcmVzcywgcHJlc2VudGVkIGluIGZyZWUgZm9ybWF0IHRleHQiLCBhbGlhcz0iYWRkcmVzc0xpbmUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzdHJlZXROYW1lIiwgInRvd25OYW1lIiwgImNvdW50cnkiLCAiYnVpbGRpbmdOdW1iZXIiLCAicG9zdENvZGUiLCAiYWRkcmVzc1R5cGUiLCAiZGVwYXJ0bWVudCIsICJzdWJEZXBhcnRtZW50IiwgImJ1aWxkaW5nTmFtZSIsICJmbG9vciIsICJwb3N0Qm94IiwgInJvb20iLCAidG93bkxvY2F0aW9uTmFtZSIsICJkaXN0cmljdE5hbWUiLCAiY291bnRyeVN1YkRpdmlzaW9uIiwgImFkZHJlc3NMaW5lIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhZGRyZXNzX3R5cGUnKQogICAgZGVmIGFkZHJlc3NfdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnSE9NRScsICdCSVpaJywgJ0dFT0cnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnSE9NRScsICdCSVpaJywgJ0dFT0cnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVZhbGlkYXRlR2VvZ3JhcGhpY0FkZHJlc3MgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVZhbGlkYXRlR2VvZ3JhcGhpY0FkZHJlc3MgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3RyZWV0TmFtZSI6IG9iai5nZXQoInN0cmVldE5hbWUiKSwKICAgICAgICAgICAgInRvd25OYW1lIjogb2JqLmdldCgidG93bk5hbWUiKSwKICAgICAgICAgICAgImNvdW50cnkiOiBvYmouZ2V0KCJjb3VudHJ5IiksCiAgICAgICAgICAgICJidWlsZGluZ051bWJlciI6IG9iai5nZXQoImJ1aWxkaW5nTnVtYmVyIiksCiAgICAgICAgICAgICJwb3N0Q29kZSI6IG9iai5nZXQoInBvc3RDb2RlIiksCiAgICAgICAgICAgICJhZGRyZXNzVHlwZSI6IG9iai5nZXQoImFkZHJlc3NUeXBlIiksCiAgICAgICAgICAgICJkZXBhcnRtZW50Ijogb2JqLmdldCgiZGVwYXJ0bWVudCIpLAogICAgICAgICAgICAic3ViRGVwYXJ0bWVudCI6IG9iai5nZXQoInN1YkRlcGFydG1lbnQiKSwKICAgICAgICAgICAgImJ1aWxkaW5nTmFtZSI6IG9iai5nZXQoImJ1aWxkaW5nTmFtZSIpLAogICAgICAgICAgICAiZmxvb3IiOiBvYmouZ2V0KCJmbG9vciIpLAogICAgICAgICAgICAicG9zdEJveCI6IG9iai5nZXQoInBvc3RCb3giKSwKICAgICAgICAgICAgInJvb20iOiBvYmouZ2V0KCJyb29tIiksCiAgICAgICAgICAgICJ0b3duTG9jYXRpb25OYW1lIjogb2JqLmdldCgidG93bkxvY2F0aW9uTmFtZSIpLAogICAgICAgICAgICAiZGlzdHJpY3ROYW1lIjogb2JqLmdldCgiZGlzdHJpY3ROYW1lIiksCiAgICAgICAgICAgICJjb3VudHJ5U3ViRGl2aXNpb24iOiBvYmouZ2V0KCJjb3VudHJ5U3ViRGl2aXNpb24iKSwKICAgICAgICAgICAgImFkZHJlc3NMaW5lIjogb2JqLmdldCgiYWRkcmVzc0xpbmUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/travel_rule_validate_legal_person.py b/fireblocks/models/travel_rule_validate_legal_person.py index a2816461..74596a9b 100644 --- a/fireblocks/models/travel_rule_validate_legal_person.py +++ b/fireblocks/models/travel_rule_validate_legal_person.py @@ -1,114 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.travel_rule_validate_geographic_address import TravelRuleValidateGeographicAddress -from fireblocks.models.travel_rule_validate_legal_person_name_identifier import TravelRuleValidateLegalPersonNameIdentifier -from fireblocks.models.travel_rule_validate_national_identification import TravelRuleValidateNationalIdentification -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleValidateLegalPerson(BaseModel): - """ - TravelRuleValidateLegalPerson - """ # noqa: E501 - name: Optional[TravelRuleValidateLegalPersonNameIdentifier] = None - geographic_address: Optional[List[TravelRuleValidateGeographicAddress]] = Field(default=None, description="The array of geographic addresses associated with the legal person.", alias="geographicAddress") - national_identification: Optional[TravelRuleValidateNationalIdentification] = Field(default=None, alias="nationalIdentification") - customer_identification: Optional[StrictStr] = Field(default=None, description="A unique identifier that identifies the customer in the organization's context.", alias="customerIdentification") - customer_number: Optional[StrictStr] = Field(default=None, description="A distinct identifier that uniquely identifies the customer within the organization.", alias="customerNumber") - country_of_registration: Optional[StrictStr] = Field(default=None, description="The ISO-3166 Alpha-2 country code where the legal person is registered.", alias="countryOfRegistration") - __properties: ClassVar[List[str]] = ["name", "geographicAddress", "nationalIdentification", "customerIdentification", "customerNumber", "countryOfRegistration"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleValidateLegalPerson from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of name - if self.name: - _dict['name'] = self.name.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in geographic_address (list) - _items = [] - if self.geographic_address: - for _item_geographic_address in self.geographic_address: - if _item_geographic_address: - _items.append(_item_geographic_address.to_dict()) - _dict['geographicAddress'] = _items - # override the default output from pydantic by calling `to_dict()` of national_identification - if self.national_identification: - _dict['nationalIdentification'] = self.national_identification.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleValidateLegalPerson from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": TravelRuleValidateLegalPersonNameIdentifier.from_dict(obj["name"]) if obj.get("name") is not None else None, - "geographicAddress": [TravelRuleValidateGeographicAddress.from_dict(_item) for _item in obj["geographicAddress"]] if obj.get("geographicAddress") is not None else None, - "nationalIdentification": TravelRuleValidateNationalIdentification.from_dict(obj["nationalIdentification"]) if obj.get("nationalIdentification") is not None else None, - "customerIdentification": obj.get("customerIdentification"), - "customerNumber": obj.get("customerNumber"), - "countryOfRegistration": obj.get("countryOfRegistration") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2dlb2dyYXBoaWNfYWRkcmVzcyBpbXBvcnQgVHJhdmVsUnVsZVZhbGlkYXRlR2VvZ3JhcGhpY0FkZHJlc3MKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9sZWdhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyIGltcG9ydCBUcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0aW9uYWxfaWRlbnRpZmljYXRpb24gaW1wb3J0IFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdGlvbmFsSWRlbnRpZmljYXRpb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb24oQmFzZU1vZGVsKToKICAgICIiIgogICAgVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG5hbWU6IE9wdGlvbmFsW1RyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uTmFtZUlkZW50aWZpZXJdID0gTm9uZQogICAgZ2VvZ3JhcGhpY19hZGRyZXNzOiBPcHRpb25hbFtMaXN0W1RyYXZlbFJ1bGVWYWxpZGF0ZUdlb2dyYXBoaWNBZGRyZXNzXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgYXJyYXkgb2YgZ2VvZ3JhcGhpYyBhZGRyZXNzZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBsZWdhbCBwZXJzb24uIiwgYWxpYXM9Imdlb2dyYXBoaWNBZGRyZXNzIikKICAgIG5hdGlvbmFsX2lkZW50aWZpY2F0aW9uOiBPcHRpb25hbFtUcmF2ZWxSdWxlVmFsaWRhdGVOYXRpb25hbElkZW50aWZpY2F0aW9uXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im5hdGlvbmFsSWRlbnRpZmljYXRpb24iKQogICAgY3VzdG9tZXJfaWRlbnRpZmljYXRpb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBIHVuaXF1ZSBpZGVudGlmaWVyIHRoYXQgaWRlbnRpZmllcyB0aGUgY3VzdG9tZXIgaW4gdGhlIG9yZ2FuaXphdGlvbidzIGNvbnRleHQuIiwgYWxpYXM9ImN1c3RvbWVySWRlbnRpZmljYXRpb24iKQogICAgY3VzdG9tZXJfbnVtYmVyOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQSBkaXN0aW5jdCBpZGVudGlmaWVyIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgY3VzdG9tZXIgd2l0aGluIHRoZSBvcmdhbml6YXRpb24uIiwgYWxpYXM9ImN1c3RvbWVyTnVtYmVyIikKICAgIGNvdW50cnlfb2ZfcmVnaXN0cmF0aW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIElTTy0zMTY2IEFscGhhLTIgY291bnRyeSBjb2RlIHdoZXJlIHRoZSBsZWdhbCBwZXJzb24gaXMgcmVnaXN0ZXJlZC4iLCBhbGlhcz0iY291bnRyeU9mUmVnaXN0cmF0aW9uIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibmFtZSIsICJnZW9ncmFwaGljQWRkcmVzcyIsICJuYXRpb25hbElkZW50aWZpY2F0aW9uIiwgImN1c3RvbWVySWRlbnRpZmljYXRpb24iLCAiY3VzdG9tZXJOdW1iZXIiLCAiY291bnRyeU9mUmVnaXN0cmF0aW9uIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG5hbWUKICAgICAgICBpZiBzZWxmLm5hbWU6CiAgICAgICAgICAgIF9kaWN0WyduYW1lJ10gPSBzZWxmLm5hbWUudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBnZW9ncmFwaGljX2FkZHJlc3MgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmdlb2dyYXBoaWNfYWRkcmVzczoKICAgICAgICAgICAgZm9yIF9pdGVtX2dlb2dyYXBoaWNfYWRkcmVzcyBpbiBzZWxmLmdlb2dyYXBoaWNfYWRkcmVzczoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2dlb2dyYXBoaWNfYWRkcmVzczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX2dlb2dyYXBoaWNfYWRkcmVzcy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydnZW9ncmFwaGljQWRkcmVzcyddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIG5hdGlvbmFsX2lkZW50aWZpY2F0aW9uCiAgICAgICAgaWYgc2VsZi5uYXRpb25hbF9pZGVudGlmaWNhdGlvbjoKICAgICAgICAgICAgX2RpY3RbJ25hdGlvbmFsSWRlbnRpZmljYXRpb24nXSA9IHNlbGYubmF0aW9uYWxfaWRlbnRpZmljYXRpb24udG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJuYW1lIjogVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllci5mcm9tX2RpY3Qob2JqWyJuYW1lIl0pIGlmIG9iai5nZXQoIm5hbWUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJnZW9ncmFwaGljQWRkcmVzcyI6IFtUcmF2ZWxSdWxlVmFsaWRhdGVHZW9ncmFwaGljQWRkcmVzcy5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImdlb2dyYXBoaWNBZGRyZXNzIl1dIGlmIG9iai5nZXQoImdlb2dyYXBoaWNBZGRyZXNzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibmF0aW9uYWxJZGVudGlmaWNhdGlvbiI6IFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdGlvbmFsSWRlbnRpZmljYXRpb24uZnJvbV9kaWN0KG9ialsibmF0aW9uYWxJZGVudGlmaWNhdGlvbiJdKSBpZiBvYmouZ2V0KCJuYXRpb25hbElkZW50aWZpY2F0aW9uIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiY3VzdG9tZXJJZGVudGlmaWNhdGlvbiI6IG9iai5nZXQoImN1c3RvbWVySWRlbnRpZmljYXRpb24iKSwKICAgICAgICAgICAgImN1c3RvbWVyTnVtYmVyIjogb2JqLmdldCgiY3VzdG9tZXJOdW1iZXIiKSwKICAgICAgICAgICAgImNvdW50cnlPZlJlZ2lzdHJhdGlvbiI6IG9iai5nZXQoImNvdW50cnlPZlJlZ2lzdHJhdGlvbiIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/travel_rule_validate_legal_person_name_identifier.py b/fireblocks/models/travel_rule_validate_legal_person_name_identifier.py index f282547e..f8613a5e 100644 --- a/fireblocks/models/travel_rule_validate_legal_person_name_identifier.py +++ b/fireblocks/models/travel_rule_validate_legal_person_name_identifier.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleValidateLegalPersonNameIdentifier(BaseModel): - """ - TravelRuleValidateLegalPersonNameIdentifier - """ # noqa: E501 - legal_person_name: Optional[Annotated[str, Field(strict=True, max_length=100)]] = Field(default=None, description="Name by which the legal person is known.", alias="legalPersonName") - legal_person_name_identifier_type: Optional[StrictStr] = Field(default=None, description="Specifies the type of name for a legal person. Acceptable values are: - 'REGISTERED': The official registered name. - 'TRADE': A trading name or DBA (Doing Business As) name. - 'OTHER': Any other type of name.", alias="legalPersonNameIdentifierType") - __properties: ClassVar[List[str]] = ["legalPersonName", "legalPersonNameIdentifierType"] - - @field_validator('legal_person_name_identifier_type') - def legal_person_name_identifier_type_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['REGISTERED', 'TRADE', 'OTHER']): - raise ValueError("must be one of enum values ('REGISTERED', 'TRADE', 'OTHER')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleValidateLegalPersonNameIdentifier from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleValidateLegalPersonNameIdentifier from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "legalPersonName": obj.get("legalPersonName"), - "legalPersonNameIdentifierType": obj.get("legalPersonNameIdentifierType") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uTmFtZUlkZW50aWZpZXIKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGxlZ2FsX3BlcnNvbl9uYW1lOiBPcHRpb25hbFtBbm5vdGF0ZWRbc3RyLCBGaWVsZChzdHJpY3Q9VHJ1ZSwgbWF4X2xlbmd0aD0xMDApXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOYW1lIGJ5IHdoaWNoIHRoZSBsZWdhbCBwZXJzb24gaXMga25vd24uIiwgYWxpYXM9ImxlZ2FsUGVyc29uTmFtZSIpCiAgICBsZWdhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyX3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTcGVjaWZpZXMgdGhlIHR5cGUgb2YgbmFtZSBmb3IgYSBsZWdhbCBwZXJzb24uIEFjY2VwdGFibGUgdmFsdWVzIGFyZTogLSAnUkVHSVNURVJFRCc6IFRoZSBvZmZpY2lhbCByZWdpc3RlcmVkIG5hbWUuIC0gJ1RSQURFJzogQSB0cmFkaW5nIG5hbWUgb3IgREJBIChEb2luZyBCdXNpbmVzcyBBcykgbmFtZS4gLSAnT1RIRVInOiBBbnkgb3RoZXIgdHlwZSBvZiBuYW1lLiIsIGFsaWFzPSJsZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyVHlwZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImxlZ2FsUGVyc29uTmFtZSIsICJsZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyVHlwZSJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignbGVnYWxfcGVyc29uX25hbWVfaWRlbnRpZmllcl90eXBlJykKICAgIGRlZiBsZWdhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyX3R5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gdmFsdWUKCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ1JFR0lTVEVSRUQnLCAnVFJBREUnLCAnT1RIRVInXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnUkVHSVNURVJFRCcsICdUUkFERScsICdPVEhFUicpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uTmFtZUlkZW50aWZpZXIgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibGVnYWxQZXJzb25OYW1lIjogb2JqLmdldCgibGVnYWxQZXJzb25OYW1lIiksCiAgICAgICAgICAgICJsZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyVHlwZSI6IG9iai5nZXQoImxlZ2FsUGVyc29uTmFtZUlkZW50aWZpZXJUeXBlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/travel_rule_validate_national_identification.py b/fireblocks/models/travel_rule_validate_national_identification.py index 49842b00..f74ede3d 100644 --- a/fireblocks/models/travel_rule_validate_national_identification.py +++ b/fireblocks/models/travel_rule_validate_national_identification.py @@ -1,115 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleValidateNationalIdentification(BaseModel): - """ - Represents a national identifier for a person or entity - """ # noqa: E501 - country_of_issue: Optional[StrictStr] = Field(default=None, description="Country that issued the national identifier (ISO-3166 Alpha-2 country code)", alias="countryOfIssue") - national_identifier: Optional[Annotated[str, Field(strict=True, max_length=35)]] = Field(default=None, description="National identifier (max 35 characters)", alias="nationalIdentifier") - national_identifier_type: Optional[StrictStr] = Field(default=None, description="Type of national identifier. Acceptable values include: - 'PASSPORT': Passport number - 'NATIONAL_ID': National identification number - 'TAX_ID': Tax identification number - 'SOCIAL_SECURITY': Social security number", alias="nationalIdentifierType") - registration_authority: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="Registration authority (format -> RA followed by 6 digits)", alias="registrationAuthority") - __properties: ClassVar[List[str]] = ["countryOfIssue", "nationalIdentifier", "nationalIdentifierType", "registrationAuthority"] - - @field_validator('national_identifier_type') - def national_identifier_type_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['PASSPORT', 'NATIONAL_ID', 'TAX_ID', 'SOCIAL_SECURITY']): - raise ValueError("must be one of enum values ('PASSPORT', 'NATIONAL_ID', 'TAX_ID', 'SOCIAL_SECURITY')") - return value - - @field_validator('registration_authority') - def registration_authority_validate_regular_expression(cls, value): - """Validates the regular expression""" - if value is None: - return value - - if not re.match(r"^RA\d{6}$", value): - raise ValueError(r"must validate the regular expression /^RA\d{6}$/") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleValidateNationalIdentification from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleValidateNationalIdentification from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "countryOfIssue": obj.get("countryOfIssue"), - "nationalIdentifier": obj.get("nationalIdentifier"), - "nationalIdentifierType": obj.get("nationalIdentifierType"), - "registrationAuthority": obj.get("registrationAuthority") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmF2ZWxSdWxlVmFsaWRhdGVOYXRpb25hbElkZW50aWZpY2F0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFJlcHJlc2VudHMgYSBuYXRpb25hbCBpZGVudGlmaWVyIGZvciBhIHBlcnNvbiBvciBlbnRpdHkKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGNvdW50cnlfb2ZfaXNzdWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJDb3VudHJ5IHRoYXQgaXNzdWVkIHRoZSBuYXRpb25hbCBpZGVudGlmaWVyIChJU08tMzE2NiBBbHBoYS0yIGNvdW50cnkgY29kZSkiLCBhbGlhcz0iY291bnRyeU9mSXNzdWUiKQogICAgbmF0aW9uYWxfaWRlbnRpZmllcjogT3B0aW9uYWxbQW5ub3RhdGVkW3N0ciwgRmllbGQoc3RyaWN0PVRydWUsIG1heF9sZW5ndGg9MzUpXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJOYXRpb25hbCBpZGVudGlmaWVyIChtYXggMzUgY2hhcmFjdGVycykiLCBhbGlhcz0ibmF0aW9uYWxJZGVudGlmaWVyIikKICAgIG5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlR5cGUgb2YgbmF0aW9uYWwgaWRlbnRpZmllci4gQWNjZXB0YWJsZSB2YWx1ZXMgaW5jbHVkZTogLSAnUEFTU1BPUlQnOiBQYXNzcG9ydCBudW1iZXIgLSAnTkFUSU9OQUxfSUQnOiBOYXRpb25hbCBpZGVudGlmaWNhdGlvbiBudW1iZXIgLSAnVEFYX0lEJzogVGF4IGlkZW50aWZpY2F0aW9uIG51bWJlciAtICdTT0NJQUxfU0VDVVJJVFknOiBTb2NpYWwgc2VjdXJpdHkgbnVtYmVyIiwgYWxpYXM9Im5hdGlvbmFsSWRlbnRpZmllclR5cGUiKQogICAgcmVnaXN0cmF0aW9uX2F1dGhvcml0eTogT3B0aW9uYWxbQW5ub3RhdGVkW3N0ciwgRmllbGQoc3RyaWN0PVRydWUpXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSZWdpc3RyYXRpb24gYXV0aG9yaXR5IChmb3JtYXQgLT4gUkEgZm9sbG93ZWQgYnkgNiBkaWdpdHMpIiwgYWxpYXM9InJlZ2lzdHJhdGlvbkF1dGhvcml0eSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImNvdW50cnlPZklzc3VlIiwgIm5hdGlvbmFsSWRlbnRpZmllciIsICJuYXRpb25hbElkZW50aWZpZXJUeXBlIiwgInJlZ2lzdHJhdGlvbkF1dGhvcml0eSJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignbmF0aW9uYWxfaWRlbnRpZmllcl90eXBlJykKICAgIGRlZiBuYXRpb25hbF9pZGVudGlmaWVyX3R5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gdmFsdWUKCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ1BBU1NQT1JUJywgJ05BVElPTkFMX0lEJywgJ1RBWF9JRCcsICdTT0NJQUxfU0VDVVJJVFknXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnUEFTU1BPUlQnLCAnTkFUSU9OQUxfSUQnLCAnVEFYX0lEJywgJ1NPQ0lBTF9TRUNVUklUWScpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdyZWdpc3RyYXRpb25fYXV0aG9yaXR5JykKICAgIGRlZiByZWdpc3RyYXRpb25fYXV0aG9yaXR5X3ZhbGlkYXRlX3JlZ3VsYXJfZXhwcmVzc2lvbihjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiIiIgogICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgICAgICBpZiBub3QgcmUubWF0Y2gociJeUkFcZHs2fSQiLCB2YWx1ZSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IociJtdXN0IHZhbGlkYXRlIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gL15SQVxkezZ9JC8iKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdGlvbmFsSWRlbnRpZmljYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVZhbGlkYXRlTmF0aW9uYWxJZGVudGlmaWNhdGlvbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJjb3VudHJ5T2ZJc3N1ZSI6IG9iai5nZXQoImNvdW50cnlPZklzc3VlIiksCiAgICAgICAgICAgICJuYXRpb25hbElkZW50aWZpZXIiOiBvYmouZ2V0KCJuYXRpb25hbElkZW50aWZpZXIiKSwKICAgICAgICAgICAgIm5hdGlvbmFsSWRlbnRpZmllclR5cGUiOiBvYmouZ2V0KCJuYXRpb25hbElkZW50aWZpZXJUeXBlIiksCiAgICAgICAgICAgICJyZWdpc3RyYXRpb25BdXRob3JpdHkiOiBvYmouZ2V0KCJyZWdpc3RyYXRpb25BdXRob3JpdHkiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/travel_rule_validate_natural_name_identifier.py b/fireblocks/models/travel_rule_validate_natural_name_identifier.py index 9d53329e..dc059d18 100644 --- a/fireblocks/models/travel_rule_validate_natural_name_identifier.py +++ b/fireblocks/models/travel_rule_validate_natural_name_identifier.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleValidateNaturalNameIdentifier(BaseModel): - """ - TravelRuleValidateNaturalNameIdentifier - """ # noqa: E501 - primary_identifier: Optional[StrictStr] = Field(default=None, description="The primary identifier of the name", alias="primaryIdentifier") - secondary_identifier: Optional[StrictStr] = Field(default=None, description="The secondary identifier of the name", alias="secondaryIdentifier") - name_identifier_type: Optional[StrictStr] = Field(default=None, description="Specifies the type of name for a natural person. Acceptable values are: - 'ALIA': Alias name, a name other than the legal name by which a natural person is also known. - 'BIRT': Name at birth, the name given to a natural person at birth. - 'MAID': Maiden name, the original name of a natural person who has changed their name after marriage. - 'LEGL': Legal name, the name that identifies a natural person for legal, official, or administrative purposes. - 'MISC': Unspecified, a name by which a natural person may be known but cannot otherwise be categorized.", alias="nameIdentifierType") - __properties: ClassVar[List[str]] = ["primaryIdentifier", "secondaryIdentifier", "nameIdentifierType"] - - @field_validator('name_identifier_type') - def name_identifier_type_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['ALIA', 'BIRT', 'MAID', 'LEGL', 'MISC']): - raise ValueError("must be one of enum values ('ALIA', 'BIRT', 'MAID', 'LEGL', 'MISC')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleValidateNaturalNameIdentifier from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleValidateNaturalNameIdentifier from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "primaryIdentifier": obj.get("primaryIdentifier"), - "secondaryIdentifier": obj.get("secondaryIdentifier"), - "nameIdentifierType": obj.get("nameIdentifierType") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxOYW1lSWRlbnRpZmllcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsTmFtZUlkZW50aWZpZXIKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHByaW1hcnlfaWRlbnRpZmllcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBwcmltYXJ5IGlkZW50aWZpZXIgb2YgdGhlIG5hbWUiLCBhbGlhcz0icHJpbWFyeUlkZW50aWZpZXIiKQogICAgc2Vjb25kYXJ5X2lkZW50aWZpZXI6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgc2Vjb25kYXJ5IGlkZW50aWZpZXIgb2YgdGhlIG5hbWUiLCBhbGlhcz0ic2Vjb25kYXJ5SWRlbnRpZmllciIpCiAgICBuYW1lX2lkZW50aWZpZXJfdHlwZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlNwZWNpZmllcyB0aGUgdHlwZSBvZiBuYW1lIGZvciBhIG5hdHVyYWwgcGVyc29uLiBBY2NlcHRhYmxlIHZhbHVlcyBhcmU6IC0gJ0FMSUEnOiBBbGlhcyBuYW1lLCBhIG5hbWUgb3RoZXIgdGhhbiB0aGUgbGVnYWwgbmFtZSBieSB3aGljaCBhIG5hdHVyYWwgcGVyc29uIGlzIGFsc28ga25vd24uIC0gJ0JJUlQnOiBOYW1lIGF0IGJpcnRoLCB0aGUgbmFtZSBnaXZlbiB0byBhIG5hdHVyYWwgcGVyc29uIGF0IGJpcnRoLiAtICdNQUlEJzogTWFpZGVuIG5hbWUsIHRoZSBvcmlnaW5hbCBuYW1lIG9mIGEgbmF0dXJhbCBwZXJzb24gd2hvIGhhcyBjaGFuZ2VkIHRoZWlyIG5hbWUgYWZ0ZXIgbWFycmlhZ2UuIC0gJ0xFR0wnOiBMZWdhbCBuYW1lLCB0aGUgbmFtZSB0aGF0IGlkZW50aWZpZXMgYSBuYXR1cmFsIHBlcnNvbiBmb3IgbGVnYWwsIG9mZmljaWFsLCBvciBhZG1pbmlzdHJhdGl2ZSBwdXJwb3Nlcy4gLSAnTUlTQyc6IFVuc3BlY2lmaWVkLCBhIG5hbWUgYnkgd2hpY2ggYSBuYXR1cmFsIHBlcnNvbiBtYXkgYmUga25vd24gYnV0IGNhbm5vdCBvdGhlcndpc2UgYmUgY2F0ZWdvcml6ZWQuIiwgYWxpYXM9Im5hbWVJZGVudGlmaWVyVHlwZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInByaW1hcnlJZGVudGlmaWVyIiwgInNlY29uZGFyeUlkZW50aWZpZXIiLCAibmFtZUlkZW50aWZpZXJUeXBlIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCduYW1lX2lkZW50aWZpZXJfdHlwZScpCiAgICBkZWYgbmFtZV9pZGVudGlmaWVyX3R5cGVfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gdmFsdWUKCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0FMSUEnLCAnQklSVCcsICdNQUlEJywgJ0xFR0wnLCAnTUlTQyddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdBTElBJywgJ0JJUlQnLCAnTUFJRCcsICdMRUdMJywgJ01JU0MnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbE5hbWVJZGVudGlmaWVyIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxOYW1lSWRlbnRpZmllciBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJwcmltYXJ5SWRlbnRpZmllciI6IG9iai5nZXQoInByaW1hcnlJZGVudGlmaWVyIiksCiAgICAgICAgICAgICJzZWNvbmRhcnlJZGVudGlmaWVyIjogb2JqLmdldCgic2Vjb25kYXJ5SWRlbnRpZmllciIpLAogICAgICAgICAgICAibmFtZUlkZW50aWZpZXJUeXBlIjogb2JqLmdldCgibmFtZUlkZW50aWZpZXJUeXBlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/travel_rule_validate_natural_person.py b/fireblocks/models/travel_rule_validate_natural_person.py index cf91c716..43cb0fb7 100644 --- a/fireblocks/models/travel_rule_validate_natural_person.py +++ b/fireblocks/models/travel_rule_validate_natural_person.py @@ -1,124 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.travel_rule_validate_date_and_place_of_birth import TravelRuleValidateDateAndPlaceOfBirth -from fireblocks.models.travel_rule_validate_geographic_address import TravelRuleValidateGeographicAddress -from fireblocks.models.travel_rule_validate_national_identification import TravelRuleValidateNationalIdentification -from fireblocks.models.travel_rule_validate_natural_person_name_identifier import TravelRuleValidateNaturalPersonNameIdentifier -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleValidateNaturalPerson(BaseModel): - """ - TravelRuleValidateNaturalPerson - """ # noqa: E501 - name: Optional[List[TravelRuleValidateNaturalPersonNameIdentifier]] = Field(default=None, description="An array of structured name identifiers for the natural person, referencing the TravelRuleNaturalPersonNameIdentifier schema.") - geographic_address: Optional[List[TravelRuleValidateGeographicAddress]] = Field(default=None, description="An array of geographic addresses associated with the natural person, referencing the TravelRuleGeographicAddress schema.", alias="geographicAddress") - national_identification: Optional[TravelRuleValidateNationalIdentification] = Field(default=None, alias="nationalIdentification") - date_and_place_of_birth: Optional[TravelRuleValidateDateAndPlaceOfBirth] = Field(default=None, alias="dateAndPlaceOfBirth") - customer_identification: Optional[StrictStr] = Field(default=None, description="A unique identifier for the customer within the organization's context.", alias="customerIdentification") - country_of_residence: Optional[StrictStr] = Field(default=None, description="The ISO-3166 Alpha-2 country code of the natural person's residence.", alias="countryOfResidence") - customer_number: Optional[StrictStr] = Field(default=None, description="A distinct identifier that uniquely identifies the customer within the organization.", alias="customerNumber") - __properties: ClassVar[List[str]] = ["name", "geographicAddress", "nationalIdentification", "dateAndPlaceOfBirth", "customerIdentification", "countryOfResidence", "customerNumber"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleValidateNaturalPerson from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in name (list) - _items = [] - if self.name: - for _item_name in self.name: - if _item_name: - _items.append(_item_name.to_dict()) - _dict['name'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in geographic_address (list) - _items = [] - if self.geographic_address: - for _item_geographic_address in self.geographic_address: - if _item_geographic_address: - _items.append(_item_geographic_address.to_dict()) - _dict['geographicAddress'] = _items - # override the default output from pydantic by calling `to_dict()` of national_identification - if self.national_identification: - _dict['nationalIdentification'] = self.national_identification.to_dict() - # override the default output from pydantic by calling `to_dict()` of date_and_place_of_birth - if self.date_and_place_of_birth: - _dict['dateAndPlaceOfBirth'] = self.date_and_place_of_birth.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleValidateNaturalPerson from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": [TravelRuleValidateNaturalPersonNameIdentifier.from_dict(_item) for _item in obj["name"]] if obj.get("name") is not None else None, - "geographicAddress": [TravelRuleValidateGeographicAddress.from_dict(_item) for _item in obj["geographicAddress"]] if obj.get("geographicAddress") is not None else None, - "nationalIdentification": TravelRuleValidateNationalIdentification.from_dict(obj["nationalIdentification"]) if obj.get("nationalIdentification") is not None else None, - "dateAndPlaceOfBirth": TravelRuleValidateDateAndPlaceOfBirth.from_dict(obj["dateAndPlaceOfBirth"]) if obj.get("dateAndPlaceOfBirth") is not None else None, - "customerIdentification": obj.get("customerIdentification"), - "countryOfResidence": obj.get("countryOfResidence"), - "customerNumber": obj.get("customerNumber") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2RhdGVfYW5kX3BsYWNlX29mX2JpcnRoIGltcG9ydCBUcmF2ZWxSdWxlVmFsaWRhdGVEYXRlQW5kUGxhY2VPZkJpcnRoCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfZ2VvZ3JhcGhpY19hZGRyZXNzIGltcG9ydCBUcmF2ZWxSdWxlVmFsaWRhdGVHZW9ncmFwaGljQWRkcmVzcwpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdGlvbmFsX2lkZW50aWZpY2F0aW9uIGltcG9ydCBUcmF2ZWxSdWxlVmFsaWRhdGVOYXRpb25hbElkZW50aWZpY2F0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyIGltcG9ydCBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBuYW1lOiBPcHRpb25hbFtMaXN0W1RyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllcl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQW4gYXJyYXkgb2Ygc3RydWN0dXJlZCBuYW1lIGlkZW50aWZpZXJzIGZvciB0aGUgbmF0dXJhbCBwZXJzb24sIHJlZmVyZW5jaW5nIHRoZSBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyIHNjaGVtYS4iKQogICAgZ2VvZ3JhcGhpY19hZGRyZXNzOiBPcHRpb25hbFtMaXN0W1RyYXZlbFJ1bGVWYWxpZGF0ZUdlb2dyYXBoaWNBZGRyZXNzXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBbiBhcnJheSBvZiBnZW9ncmFwaGljIGFkZHJlc3NlcyBhc3NvY2lhdGVkIHdpdGggdGhlIG5hdHVyYWwgcGVyc29uLCByZWZlcmVuY2luZyB0aGUgVHJhdmVsUnVsZUdlb2dyYXBoaWNBZGRyZXNzIHNjaGVtYS4iLCBhbGlhcz0iZ2VvZ3JhcGhpY0FkZHJlc3MiKQogICAgbmF0aW9uYWxfaWRlbnRpZmljYXRpb246IE9wdGlvbmFsW1RyYXZlbFJ1bGVWYWxpZGF0ZU5hdGlvbmFsSWRlbnRpZmljYXRpb25dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ibmF0aW9uYWxJZGVudGlmaWNhdGlvbiIpCiAgICBkYXRlX2FuZF9wbGFjZV9vZl9iaXJ0aDogT3B0aW9uYWxbVHJhdmVsUnVsZVZhbGlkYXRlRGF0ZUFuZFBsYWNlT2ZCaXJ0aF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJkYXRlQW5kUGxhY2VPZkJpcnRoIikKICAgIGN1c3RvbWVyX2lkZW50aWZpY2F0aW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGN1c3RvbWVyIHdpdGhpbiB0aGUgb3JnYW5pemF0aW9uJ3MgY29udGV4dC4iLCBhbGlhcz0iY3VzdG9tZXJJZGVudGlmaWNhdGlvbiIpCiAgICBjb3VudHJ5X29mX3Jlc2lkZW5jZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBJU08tMzE2NiBBbHBoYS0yIGNvdW50cnkgY29kZSBvZiB0aGUgbmF0dXJhbCBwZXJzb24ncyByZXNpZGVuY2UuIiwgYWxpYXM9ImNvdW50cnlPZlJlc2lkZW5jZSIpCiAgICBjdXN0b21lcl9udW1iZXI6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBIGRpc3RpbmN0IGlkZW50aWZpZXIgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBjdXN0b21lciB3aXRoaW4gdGhlIG9yZ2FuaXphdGlvbi4iLCBhbGlhcz0iY3VzdG9tZXJOdW1iZXIiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJuYW1lIiwgImdlb2dyYXBoaWNBZGRyZXNzIiwgIm5hdGlvbmFsSWRlbnRpZmljYXRpb24iLCAiZGF0ZUFuZFBsYWNlT2ZCaXJ0aCIsICJjdXN0b21lcklkZW50aWZpY2F0aW9uIiwgImNvdW50cnlPZlJlc2lkZW5jZSIsICJjdXN0b21lck51bWJlciJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBuYW1lIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5uYW1lOgogICAgICAgICAgICBmb3IgX2l0ZW1fbmFtZSBpbiBzZWxmLm5hbWU6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9uYW1lOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fbmFtZS50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WyduYW1lJ10gPSBfaXRlbXMKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGdlb2dyYXBoaWNfYWRkcmVzcyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuZ2VvZ3JhcGhpY19hZGRyZXNzOgogICAgICAgICAgICBmb3IgX2l0ZW1fZ2VvZ3JhcGhpY19hZGRyZXNzIGluIHNlbGYuZ2VvZ3JhcGhpY19hZGRyZXNzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fZ2VvZ3JhcGhpY19hZGRyZXNzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fZ2VvZ3JhcGhpY19hZGRyZXNzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2dlb2dyYXBoaWNBZGRyZXNzJ10gPSBfaXRlbXMKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgbmF0aW9uYWxfaWRlbnRpZmljYXRpb24KICAgICAgICBpZiBzZWxmLm5hdGlvbmFsX2lkZW50aWZpY2F0aW9uOgogICAgICAgICAgICBfZGljdFsnbmF0aW9uYWxJZGVudGlmaWNhdGlvbiddID0gc2VsZi5uYXRpb25hbF9pZGVudGlmaWNhdGlvbi50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGgKICAgICAgICBpZiBzZWxmLmRhdGVfYW5kX3BsYWNlX29mX2JpcnRoOgogICAgICAgICAgICBfZGljdFsnZGF0ZUFuZFBsYWNlT2ZCaXJ0aCddID0gc2VsZi5kYXRlX2FuZF9wbGFjZV9vZl9iaXJ0aC50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibmFtZSI6IFtUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJuYW1lIl1dIGlmIG9iai5nZXQoIm5hbWUiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJnZW9ncmFwaGljQWRkcmVzcyI6IFtUcmF2ZWxSdWxlVmFsaWRhdGVHZW9ncmFwaGljQWRkcmVzcy5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImdlb2dyYXBoaWNBZGRyZXNzIl1dIGlmIG9iai5nZXQoImdlb2dyYXBoaWNBZGRyZXNzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibmF0aW9uYWxJZGVudGlmaWNhdGlvbiI6IFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdGlvbmFsSWRlbnRpZmljYXRpb24uZnJvbV9kaWN0KG9ialsibmF0aW9uYWxJZGVudGlmaWNhdGlvbiJdKSBpZiBvYmouZ2V0KCJuYXRpb25hbElkZW50aWZpY2F0aW9uIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZGF0ZUFuZFBsYWNlT2ZCaXJ0aCI6IFRyYXZlbFJ1bGVWYWxpZGF0ZURhdGVBbmRQbGFjZU9mQmlydGguZnJvbV9kaWN0KG9ialsiZGF0ZUFuZFBsYWNlT2ZCaXJ0aCJdKSBpZiBvYmouZ2V0KCJkYXRlQW5kUGxhY2VPZkJpcnRoIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiY3VzdG9tZXJJZGVudGlmaWNhdGlvbiI6IG9iai5nZXQoImN1c3RvbWVySWRlbnRpZmljYXRpb24iKSwKICAgICAgICAgICAgImNvdW50cnlPZlJlc2lkZW5jZSI6IG9iai5nZXQoImNvdW50cnlPZlJlc2lkZW5jZSIpLAogICAgICAgICAgICAiY3VzdG9tZXJOdW1iZXIiOiBvYmouZ2V0KCJjdXN0b21lck51bWJlciIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/travel_rule_validate_natural_person_name_identifier.py b/fireblocks/models/travel_rule_validate_natural_person_name_identifier.py index 8025cf1e..9da85f10 100644 --- a/fireblocks/models/travel_rule_validate_natural_person_name_identifier.py +++ b/fireblocks/models/travel_rule_validate_natural_person_name_identifier.py @@ -1,114 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.travel_rule_validate_natural_name_identifier import TravelRuleValidateNaturalNameIdentifier -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleValidateNaturalPersonNameIdentifier(BaseModel): - """ - TravelRuleValidateNaturalPersonNameIdentifier - """ # noqa: E501 - name_identifier: Optional[List[TravelRuleValidateNaturalNameIdentifier]] = Field(default=None, alias="nameIdentifier") - local_name_identifier: Optional[List[TravelRuleValidateNaturalNameIdentifier]] = Field(default=None, alias="localNameIdentifier") - phonetic_name_identifier: Optional[List[TravelRuleValidateNaturalNameIdentifier]] = Field(default=None, alias="phoneticNameIdentifier") - __properties: ClassVar[List[str]] = ["nameIdentifier", "localNameIdentifier", "phoneticNameIdentifier"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleValidateNaturalPersonNameIdentifier from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in name_identifier (list) - _items = [] - if self.name_identifier: - for _item_name_identifier in self.name_identifier: - if _item_name_identifier: - _items.append(_item_name_identifier.to_dict()) - _dict['nameIdentifier'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in local_name_identifier (list) - _items = [] - if self.local_name_identifier: - for _item_local_name_identifier in self.local_name_identifier: - if _item_local_name_identifier: - _items.append(_item_local_name_identifier.to_dict()) - _dict['localNameIdentifier'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in phonetic_name_identifier (list) - _items = [] - if self.phonetic_name_identifier: - for _item_phonetic_name_identifier in self.phonetic_name_identifier: - if _item_phonetic_name_identifier: - _items.append(_item_phonetic_name_identifier.to_dict()) - _dict['phoneticNameIdentifier'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleValidateNaturalPersonNameIdentifier from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "nameIdentifier": [TravelRuleValidateNaturalNameIdentifier.from_dict(_item) for _item in obj["nameIdentifier"]] if obj.get("nameIdentifier") is not None else None, - "localNameIdentifier": [TravelRuleValidateNaturalNameIdentifier.from_dict(_item) for _item in obj["localNameIdentifier"]] if obj.get("localNameIdentifier") is not None else None, - "phoneticNameIdentifier": [TravelRuleValidateNaturalNameIdentifier.from_dict(_item) for _item in obj["phoneticNameIdentifier"]] if obj.get("phoneticNameIdentifier") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllciBpbXBvcnQgVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbE5hbWVJZGVudGlmaWVyCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllcihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG5hbWVfaWRlbnRpZmllcjogT3B0aW9uYWxbTGlzdFtUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsTmFtZUlkZW50aWZpZXJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im5hbWVJZGVudGlmaWVyIikKICAgIGxvY2FsX25hbWVfaWRlbnRpZmllcjogT3B0aW9uYWxbTGlzdFtUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsTmFtZUlkZW50aWZpZXJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImxvY2FsTmFtZUlkZW50aWZpZXIiKQogICAgcGhvbmV0aWNfbmFtZV9pZGVudGlmaWVyOiBPcHRpb25hbFtMaXN0W1RyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxOYW1lSWRlbnRpZmllcl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0icGhvbmV0aWNOYW1lSWRlbnRpZmllciIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm5hbWVJZGVudGlmaWVyIiwgImxvY2FsTmFtZUlkZW50aWZpZXIiLCAicGhvbmV0aWNOYW1lSWRlbnRpZmllciJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIG5hbWVfaWRlbnRpZmllciAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYubmFtZV9pZGVudGlmaWVyOgogICAgICAgICAgICBmb3IgX2l0ZW1fbmFtZV9pZGVudGlmaWVyIGluIHNlbGYubmFtZV9pZGVudGlmaWVyOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fbmFtZV9pZGVudGlmaWVyOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fbmFtZV9pZGVudGlmaWVyLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ25hbWVJZGVudGlmaWVyJ10gPSBfaXRlbXMKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGxvY2FsX25hbWVfaWRlbnRpZmllciAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYubG9jYWxfbmFtZV9pZGVudGlmaWVyOgogICAgICAgICAgICBmb3IgX2l0ZW1fbG9jYWxfbmFtZV9pZGVudGlmaWVyIGluIHNlbGYubG9jYWxfbmFtZV9pZGVudGlmaWVyOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fbG9jYWxfbmFtZV9pZGVudGlmaWVyOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fbG9jYWxfbmFtZV9pZGVudGlmaWVyLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2xvY2FsTmFtZUlkZW50aWZpZXInXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gcGhvbmV0aWNfbmFtZV9pZGVudGlmaWVyIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5waG9uZXRpY19uYW1lX2lkZW50aWZpZXI6CiAgICAgICAgICAgIGZvciBfaXRlbV9waG9uZXRpY19uYW1lX2lkZW50aWZpZXIgaW4gc2VsZi5waG9uZXRpY19uYW1lX2lkZW50aWZpZXI6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9waG9uZXRpY19uYW1lX2lkZW50aWZpZXI6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9waG9uZXRpY19uYW1lX2lkZW50aWZpZXIudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsncGhvbmV0aWNOYW1lSWRlbnRpZmllciddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibmFtZUlkZW50aWZpZXIiOiBbVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbE5hbWVJZGVudGlmaWVyLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsibmFtZUlkZW50aWZpZXIiXV0gaWYgb2JqLmdldCgibmFtZUlkZW50aWZpZXIiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJsb2NhbE5hbWVJZGVudGlmaWVyIjogW1RyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxOYW1lSWRlbnRpZmllci5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImxvY2FsTmFtZUlkZW50aWZpZXIiXV0gaWYgb2JqLmdldCgibG9jYWxOYW1lSWRlbnRpZmllciIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInBob25ldGljTmFtZUlkZW50aWZpZXIiOiBbVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbE5hbWVJZGVudGlmaWVyLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsicGhvbmV0aWNOYW1lSWRlbnRpZmllciJdXSBpZiBvYmouZ2V0KCJwaG9uZXRpY05hbWVJZGVudGlmaWVyIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/travel_rule_validate_person.py b/fireblocks/models/travel_rule_validate_person.py index 2fa3106e..31775ddf 100644 --- a/fireblocks/models/travel_rule_validate_person.py +++ b/fireblocks/models/travel_rule_validate_person.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.travel_rule_validate_legal_person import TravelRuleValidateLegalPerson -from fireblocks.models.travel_rule_validate_natural_person import TravelRuleValidateNaturalPerson -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleValidatePerson(BaseModel): - """ - TravelRuleValidatePerson - """ # noqa: E501 - natural_person: Optional[TravelRuleValidateNaturalPerson] = Field(default=None, alias="naturalPerson") - legal_person: Optional[TravelRuleValidateLegalPerson] = Field(default=None, alias="legalPerson") - __properties: ClassVar[List[str]] = ["naturalPerson", "legalPerson"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleValidatePerson from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of natural_person - if self.natural_person: - _dict['naturalPerson'] = self.natural_person.to_dict() - # override the default output from pydantic by calling `to_dict()` of legal_person - if self.legal_person: - _dict['legalPerson'] = self.legal_person.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleValidatePerson from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "naturalPerson": TravelRuleValidateNaturalPerson.from_dict(obj["naturalPerson"]) if obj.get("naturalPerson") is not None else None, - "legalPerson": TravelRuleValidateLegalPerson.from_dict(obj["legalPerson"]) if obj.get("legalPerson") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9sZWdhbF9wZXJzb24gaW1wb3J0IFRyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9wZXJzb24gaW1wb3J0IFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVHJhdmVsUnVsZVZhbGlkYXRlUGVyc29uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRyYXZlbFJ1bGVWYWxpZGF0ZVBlcnNvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgbmF0dXJhbF9wZXJzb246IE9wdGlvbmFsW1RyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb25dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ibmF0dXJhbFBlcnNvbiIpCiAgICBsZWdhbF9wZXJzb246IE9wdGlvbmFsW1RyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImxlZ2FsUGVyc29uIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibmF0dXJhbFBlcnNvbiIsICJsZWdhbFBlcnNvbiJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVZhbGlkYXRlUGVyc29uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgbmF0dXJhbF9wZXJzb24KICAgICAgICBpZiBzZWxmLm5hdHVyYWxfcGVyc29uOgogICAgICAgICAgICBfZGljdFsnbmF0dXJhbFBlcnNvbiddID0gc2VsZi5uYXR1cmFsX3BlcnNvbi50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgbGVnYWxfcGVyc29uCiAgICAgICAgaWYgc2VsZi5sZWdhbF9wZXJzb246CiAgICAgICAgICAgIF9kaWN0WydsZWdhbFBlcnNvbiddID0gc2VsZi5sZWdhbF9wZXJzb24udG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVmFsaWRhdGVQZXJzb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibmF0dXJhbFBlcnNvbiI6IFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb24uZnJvbV9kaWN0KG9ialsibmF0dXJhbFBlcnNvbiJdKSBpZiBvYmouZ2V0KCJuYXR1cmFsUGVyc29uIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAibGVnYWxQZXJzb24iOiBUcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbi5mcm9tX2RpY3Qob2JqWyJsZWdhbFBlcnNvbiJdKSBpZiBvYmouZ2V0KCJsZWdhbFBlcnNvbiIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/travel_rule_validate_pii_ivms.py b/fireblocks/models/travel_rule_validate_pii_ivms.py index dd0aaa0a..610e4e8d 100644 --- a/fireblocks/models/travel_rule_validate_pii_ivms.py +++ b/fireblocks/models/travel_rule_validate_pii_ivms.py @@ -1,107 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.travel_rule_validate_person import TravelRuleValidatePerson -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleValidatePiiIVMS(BaseModel): - """ - Information about the originator of the transaction. - """ # noqa: E501 - originator_persons: Optional[List[TravelRuleValidatePerson]] = Field(default=None, description="Information about the originator of the transaction", alias="originatorPersons") - beneficiary_persons: Optional[List[TravelRuleValidatePerson]] = Field(default=None, description="Information about the beneficiary of the transaction", alias="beneficiaryPersons") - account_number: Optional[List[StrictStr]] = Field(default=None, description="Beneficiary account number", alias="accountNumber") - __properties: ClassVar[List[str]] = ["originatorPersons", "beneficiaryPersons", "accountNumber"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleValidatePiiIVMS from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in originator_persons (list) - _items = [] - if self.originator_persons: - for _item_originator_persons in self.originator_persons: - if _item_originator_persons: - _items.append(_item_originator_persons.to_dict()) - _dict['originatorPersons'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in beneficiary_persons (list) - _items = [] - if self.beneficiary_persons: - for _item_beneficiary_persons in self.beneficiary_persons: - if _item_beneficiary_persons: - _items.append(_item_beneficiary_persons.to_dict()) - _dict['beneficiaryPersons'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleValidatePiiIVMS from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "originatorPersons": [TravelRuleValidatePerson.from_dict(_item) for _item in obj["originatorPersons"]] if obj.get("originatorPersons") is not None else None, - "beneficiaryPersons": [TravelRuleValidatePerson.from_dict(_item) for _item in obj["beneficiaryPersons"]] if obj.get("beneficiaryPersons") is not None else None, - "accountNumber": obj.get("accountNumber") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX3BlcnNvbiBpbXBvcnQgVHJhdmVsUnVsZVZhbGlkYXRlUGVyc29uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRyYXZlbFJ1bGVWYWxpZGF0ZVBpaUlWTVMoQmFzZU1vZGVsKToKICAgICIiIgogICAgSW5mb3JtYXRpb24gYWJvdXQgdGhlIG9yaWdpbmF0b3Igb2YgdGhlIHRyYW5zYWN0aW9uLgogICAgIiIiICMgbm9xYTogRTUwMQogICAgb3JpZ2luYXRvcl9wZXJzb25zOiBPcHRpb25hbFtMaXN0W1RyYXZlbFJ1bGVWYWxpZGF0ZVBlcnNvbl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSW5mb3JtYXRpb24gYWJvdXQgdGhlIG9yaWdpbmF0b3Igb2YgdGhlIHRyYW5zYWN0aW9uIiwgYWxpYXM9Im9yaWdpbmF0b3JQZXJzb25zIikKICAgIGJlbmVmaWNpYXJ5X3BlcnNvbnM6IE9wdGlvbmFsW0xpc3RbVHJhdmVsUnVsZVZhbGlkYXRlUGVyc29uXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJJbmZvcm1hdGlvbiBhYm91dCB0aGUgYmVuZWZpY2lhcnkgb2YgdGhlIHRyYW5zYWN0aW9uIiwgYWxpYXM9ImJlbmVmaWNpYXJ5UGVyc29ucyIpCiAgICBhY2NvdW50X251bWJlcjogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkJlbmVmaWNpYXJ5IGFjY291bnQgbnVtYmVyIiwgYWxpYXM9ImFjY291bnROdW1iZXIiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJvcmlnaW5hdG9yUGVyc29ucyIsICJiZW5lZmljaWFyeVBlcnNvbnMiLCAiYWNjb3VudE51bWJlciJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVZhbGlkYXRlUGlpSVZNUyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBvcmlnaW5hdG9yX3BlcnNvbnMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLm9yaWdpbmF0b3JfcGVyc29uczoKICAgICAgICAgICAgZm9yIF9pdGVtX29yaWdpbmF0b3JfcGVyc29ucyBpbiBzZWxmLm9yaWdpbmF0b3JfcGVyc29uczoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX29yaWdpbmF0b3JfcGVyc29uczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX29yaWdpbmF0b3JfcGVyc29ucy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydvcmlnaW5hdG9yUGVyc29ucyddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiBiZW5lZmljaWFyeV9wZXJzb25zIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5iZW5lZmljaWFyeV9wZXJzb25zOgogICAgICAgICAgICBmb3IgX2l0ZW1fYmVuZWZpY2lhcnlfcGVyc29ucyBpbiBzZWxmLmJlbmVmaWNpYXJ5X3BlcnNvbnM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9iZW5lZmljaWFyeV9wZXJzb25zOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fYmVuZWZpY2lhcnlfcGVyc29ucy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0WydiZW5lZmljaWFyeVBlcnNvbnMnXSA9IF9pdGVtcwogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVZhbGlkYXRlUGlpSVZNUyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJvcmlnaW5hdG9yUGVyc29ucyI6IFtUcmF2ZWxSdWxlVmFsaWRhdGVQZXJzb24uZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJvcmlnaW5hdG9yUGVyc29ucyJdXSBpZiBvYmouZ2V0KCJvcmlnaW5hdG9yUGVyc29ucyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImJlbmVmaWNpYXJ5UGVyc29ucyI6IFtUcmF2ZWxSdWxlVmFsaWRhdGVQZXJzb24uZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJiZW5lZmljaWFyeVBlcnNvbnMiXV0gaWYgb2JqLmdldCgiYmVuZWZpY2lhcnlQZXJzb25zIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiYWNjb3VudE51bWJlciI6IG9iai5nZXQoImFjY291bnROdW1iZXIiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/travel_rule_validate_transaction_request.py b/fireblocks/models/travel_rule_validate_transaction_request.py index e7819a53..4bc444a6 100644 --- a/fireblocks/models/travel_rule_validate_transaction_request.py +++ b/fireblocks/models/travel_rule_validate_transaction_request.py @@ -1,114 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.travel_rule_address import TravelRuleAddress -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleValidateTransactionRequest(BaseModel): - """ - TravelRuleValidateTransactionRequest - """ # noqa: E501 - transaction_asset: StrictStr = Field(description="Transaction asset symbol (BTC,ETH)", alias="transactionAsset") - destination: StrictStr = Field(description="Transaction destination address") - transaction_amount: StrictStr = Field(description="Transaction amount in the transaction asset", alias="transactionAmount") - transaction_asset_decimals: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Number of decimals in the transaction asset. This is used to convert the transaction amount to the smallest unit of the asset", alias="transactionAssetDecimals") - originator_vas_pdid: StrictStr = Field(description="This is the identifier assigned to your VASP", alias="originatorVASPdid") - originator_equals_beneficiary: StrictBool = Field(description="\"True\" if the originator and beneficiary is the same person and you therefore do not need to collect any information. \"False\" if it is a third-party transfer.", alias="originatorEqualsBeneficiary") - travel_rule_behavior: Optional[StrictBool] = Field(default=None, description="This will also check if the transaction is a TRAVEL_RULE in the beneficiary VASP's jurisdiction", alias="travelRuleBehavior") - beneficiary_vas_pdid: Optional[StrictStr] = Field(default=None, description="This is the identifier assigned to the VASP the funds are being sent to", alias="beneficiaryVASPdid") - beneficiary_vas_pname: Optional[StrictStr] = Field(default=None, description="Beneficiary VASP name", alias="beneficiaryVASPname") - beneficiary_name: Optional[StrictStr] = Field(default=None, description="Beneficiary name", alias="beneficiaryName") - beneficiary_account_number: Optional[StrictStr] = Field(default=None, description="Beneficiary name", alias="beneficiaryAccountNumber") - beneficiary_address: Optional[TravelRuleAddress] = Field(default=None, alias="beneficiaryAddress") - __properties: ClassVar[List[str]] = ["transactionAsset", "destination", "transactionAmount", "transactionAssetDecimals", "originatorVASPdid", "originatorEqualsBeneficiary", "travelRuleBehavior", "beneficiaryVASPdid", "beneficiaryVASPname", "beneficiaryName", "beneficiaryAccountNumber", "beneficiaryAddress"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleValidateTransactionRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of beneficiary_address - if self.beneficiary_address: - _dict['beneficiaryAddress'] = self.beneficiary_address.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleValidateTransactionRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "transactionAsset": obj.get("transactionAsset"), - "destination": obj.get("destination"), - "transactionAmount": obj.get("transactionAmount"), - "transactionAssetDecimals": obj.get("transactionAssetDecimals"), - "originatorVASPdid": obj.get("originatorVASPdid"), - "originatorEqualsBeneficiary": obj.get("originatorEqualsBeneficiary"), - "travelRuleBehavior": obj.get("travelRuleBehavior"), - "beneficiaryVASPdid": obj.get("beneficiaryVASPdid"), - "beneficiaryVASPname": obj.get("beneficiaryVASPname"), - "beneficiaryName": obj.get("beneficiaryName"), - "beneficiaryAccountNumber": obj.get("beneficiaryAccountNumber"), - "beneficiaryAddress": TravelRuleAddress.from_dict(obj["beneficiaryAddress"]) if obj.get("beneficiaryAddress") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9hZGRyZXNzIGltcG9ydCBUcmF2ZWxSdWxlQWRkcmVzcwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgVHJhdmVsUnVsZVZhbGlkYXRlVHJhbnNhY3Rpb25SZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0cmFuc2FjdGlvbl9hc3NldDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRyYW5zYWN0aW9uIGFzc2V0IHN5bWJvbCAoQlRDLEVUSCkiLCBhbGlhcz0idHJhbnNhY3Rpb25Bc3NldCIpCiAgICBkZXN0aW5hdGlvbjogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRyYW5zYWN0aW9uIGRlc3RpbmF0aW9uIGFkZHJlc3MiKQogICAgdHJhbnNhY3Rpb25fYW1vdW50OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVHJhbnNhY3Rpb24gYW1vdW50IGluIHRoZSB0cmFuc2FjdGlvbiBhc3NldCIsIGFsaWFzPSJ0cmFuc2FjdGlvbkFtb3VudCIpCiAgICB0cmFuc2FjdGlvbl9hc3NldF9kZWNpbWFsczogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTnVtYmVyIG9mIGRlY2ltYWxzIGluIHRoZSB0cmFuc2FjdGlvbiBhc3NldC4gVGhpcyBpcyB1c2VkIHRvIGNvbnZlcnQgdGhlIHRyYW5zYWN0aW9uIGFtb3VudCB0byB0aGUgc21hbGxlc3QgdW5pdCBvZiB0aGUgYXNzZXQiLCBhbGlhcz0idHJhbnNhY3Rpb25Bc3NldERlY2ltYWxzIikKICAgIG9yaWdpbmF0b3JfdmFzX3BkaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGlzIGlzIHRoZSBpZGVudGlmaWVyIGFzc2lnbmVkIHRvIHlvdXIgVkFTUCIsIGFsaWFzPSJvcmlnaW5hdG9yVkFTUGRpZCIpCiAgICBvcmlnaW5hdG9yX2VxdWFsc19iZW5lZmljaWFyeTogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJcIlRydWVcIiBpZiB0aGUgb3JpZ2luYXRvciBhbmQgYmVuZWZpY2lhcnkgaXMgdGhlIHNhbWUgcGVyc29uIGFuZCB5b3UgdGhlcmVmb3JlIGRvIG5vdCBuZWVkIHRvIGNvbGxlY3QgYW55IGluZm9ybWF0aW9uLiBcIkZhbHNlXCIgaWYgaXQgaXMgYSB0aGlyZC1wYXJ0eSB0cmFuc2Zlci4iLCBhbGlhcz0ib3JpZ2luYXRvckVxdWFsc0JlbmVmaWNpYXJ5IikKICAgIHRyYXZlbF9ydWxlX2JlaGF2aW9yOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoaXMgd2lsbCBhbHNvIGNoZWNrIGlmIHRoZSB0cmFuc2FjdGlvbiBpcyBhIFRSQVZFTF9SVUxFIGluIHRoZSBiZW5lZmljaWFyeSBWQVNQJ3MganVyaXNkaWN0aW9uIiwgYWxpYXM9InRyYXZlbFJ1bGVCZWhhdmlvciIpCiAgICBiZW5lZmljaWFyeV92YXNfcGRpZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoaXMgaXMgdGhlIGlkZW50aWZpZXIgYXNzaWduZWQgdG8gdGhlIFZBU1AgdGhlIGZ1bmRzIGFyZSBiZWluZyBzZW50IHRvIiwgYWxpYXM9ImJlbmVmaWNpYXJ5VkFTUGRpZCIpCiAgICBiZW5lZmljaWFyeV92YXNfcG5hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJCZW5lZmljaWFyeSBWQVNQIG5hbWUiLCBhbGlhcz0iYmVuZWZpY2lhcnlWQVNQbmFtZSIpCiAgICBiZW5lZmljaWFyeV9uYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQmVuZWZpY2lhcnkgIG5hbWUiLCBhbGlhcz0iYmVuZWZpY2lhcnlOYW1lIikKICAgIGJlbmVmaWNpYXJ5X2FjY291bnRfbnVtYmVyOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iQmVuZWZpY2lhcnkgIG5hbWUiLCBhbGlhcz0iYmVuZWZpY2lhcnlBY2NvdW50TnVtYmVyIikKICAgIGJlbmVmaWNpYXJ5X2FkZHJlc3M6IE9wdGlvbmFsW1RyYXZlbFJ1bGVBZGRyZXNzXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImJlbmVmaWNpYXJ5QWRkcmVzcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInRyYW5zYWN0aW9uQXNzZXQiLCAiZGVzdGluYXRpb24iLCAidHJhbnNhY3Rpb25BbW91bnQiLCAidHJhbnNhY3Rpb25Bc3NldERlY2ltYWxzIiwgIm9yaWdpbmF0b3JWQVNQZGlkIiwgIm9yaWdpbmF0b3JFcXVhbHNCZW5lZmljaWFyeSIsICJ0cmF2ZWxSdWxlQmVoYXZpb3IiLCAiYmVuZWZpY2lhcnlWQVNQZGlkIiwgImJlbmVmaWNpYXJ5VkFTUG5hbWUiLCAiYmVuZWZpY2lhcnlOYW1lIiwgImJlbmVmaWNpYXJ5QWNjb3VudE51bWJlciIsICJiZW5lZmljaWFyeUFkZHJlc3MiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWYWxpZGF0ZVRyYW5zYWN0aW9uUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGJlbmVmaWNpYXJ5X2FkZHJlc3MKICAgICAgICBpZiBzZWxmLmJlbmVmaWNpYXJ5X2FkZHJlc3M6CiAgICAgICAgICAgIF9kaWN0WydiZW5lZmljaWFyeUFkZHJlc3MnXSA9IHNlbGYuYmVuZWZpY2lhcnlfYWRkcmVzcy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWYWxpZGF0ZVRyYW5zYWN0aW9uUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ0cmFuc2FjdGlvbkFzc2V0Ijogb2JqLmdldCgidHJhbnNhY3Rpb25Bc3NldCIpLAogICAgICAgICAgICAiZGVzdGluYXRpb24iOiBvYmouZ2V0KCJkZXN0aW5hdGlvbiIpLAogICAgICAgICAgICAidHJhbnNhY3Rpb25BbW91bnQiOiBvYmouZ2V0KCJ0cmFuc2FjdGlvbkFtb3VudCIpLAogICAgICAgICAgICAidHJhbnNhY3Rpb25Bc3NldERlY2ltYWxzIjogb2JqLmdldCgidHJhbnNhY3Rpb25Bc3NldERlY2ltYWxzIiksCiAgICAgICAgICAgICJvcmlnaW5hdG9yVkFTUGRpZCI6IG9iai5nZXQoIm9yaWdpbmF0b3JWQVNQZGlkIiksCiAgICAgICAgICAgICJvcmlnaW5hdG9yRXF1YWxzQmVuZWZpY2lhcnkiOiBvYmouZ2V0KCJvcmlnaW5hdG9yRXF1YWxzQmVuZWZpY2lhcnkiKSwKICAgICAgICAgICAgInRyYXZlbFJ1bGVCZWhhdmlvciI6IG9iai5nZXQoInRyYXZlbFJ1bGVCZWhhdmlvciIpLAogICAgICAgICAgICAiYmVuZWZpY2lhcnlWQVNQZGlkIjogb2JqLmdldCgiYmVuZWZpY2lhcnlWQVNQZGlkIiksCiAgICAgICAgICAgICJiZW5lZmljaWFyeVZBU1BuYW1lIjogb2JqLmdldCgiYmVuZWZpY2lhcnlWQVNQbmFtZSIpLAogICAgICAgICAgICAiYmVuZWZpY2lhcnlOYW1lIjogb2JqLmdldCgiYmVuZWZpY2lhcnlOYW1lIiksCiAgICAgICAgICAgICJiZW5lZmljaWFyeUFjY291bnROdW1iZXIiOiBvYmouZ2V0KCJiZW5lZmljaWFyeUFjY291bnROdW1iZXIiKSwKICAgICAgICAgICAgImJlbmVmaWNpYXJ5QWRkcmVzcyI6IFRyYXZlbFJ1bGVBZGRyZXNzLmZyb21fZGljdChvYmpbImJlbmVmaWNpYXJ5QWRkcmVzcyJdKSBpZiBvYmouZ2V0KCJiZW5lZmljaWFyeUFkZHJlc3MiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/travel_rule_validate_transaction_response.py b/fireblocks/models/travel_rule_validate_transaction_response.py index 45b5eb3a..4b55d316 100644 --- a/fireblocks/models/travel_rule_validate_transaction_response.py +++ b/fireblocks/models/travel_rule_validate_transaction_response.py @@ -1,114 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleValidateTransactionResponse(BaseModel): - """ - TravelRuleValidateTransactionResponse - """ # noqa: E501 - is_valid: StrictBool = Field(description="\"isValid\" will tell you if you have collected all the information needed for the travel rule data transfer. Once this field = \"true\", you can move on to the next step which is to transfer the front-end information to your back-end and perform Travel Rule Transaction create", alias="isValid") - type: StrictStr = Field(description="\"type\" will tell you if the virtual asset value converted to FIAT value of the withdrawal request is above (=TRAVELRULE) or below (=BELOW_THRESHOLD) the threshold in your jurisdiction. If it is to an unhosted wallet which does not require travel rule information to be sent and only collected, it will say NON_CUSTODIAL.") - beneficiary_address_type: StrictStr = Field(description="\"beneficiaryAddressType\" will tell you if your blockchain analytics provider or internal address book has been able to identify the wallet address.", alias="beneficiaryAddressType") - address_source: StrictStr = Field(description="\"addressSource\" will tell you if the address was found in your internal address book or identified by the blockchain analytics provider.", alias="addressSource") - beneficiary_vas_pdid: StrictStr = Field(description="The VASP DID of the beneficiary VASP", alias="beneficiaryVASPdid") - beneficiary_vas_pname: StrictStr = Field(description="\"beneficiaryVASPname\" will tell you the name of the VASP that has been identified as the owner of the wallet address. This name is used in a subsequent call to get its DID.", alias="beneficiaryVASPname") - warnings: List[StrictStr] = Field(description="\"errors/warnings\" will tell you what information about the beneficiary you need to collect from the sender.") - __properties: ClassVar[List[str]] = ["isValid", "type", "beneficiaryAddressType", "addressSource", "beneficiaryVASPdid", "beneficiaryVASPname", "warnings"] - - @field_validator('beneficiary_address_type') - def beneficiary_address_type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['UNKNOWN', 'HOSTED', 'UNHOSTED']): - raise ValueError("must be one of enum values ('UNKNOWN', 'HOSTED', 'UNHOSTED')") - return value - - @field_validator('address_source') - def address_source_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['UNKNOWN', 'ADDRESS_HASH', 'ADDRESS_GRAPH', 'CHAINALYSIS', 'ELLIPTIC', 'CRYSTAL']): - raise ValueError("must be one of enum values ('UNKNOWN', 'ADDRESS_HASH', 'ADDRESS_GRAPH', 'CHAINALYSIS', 'ELLIPTIC', 'CRYSTAL')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleValidateTransactionResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleValidateTransactionResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "isValid": obj.get("isValid"), - "type": obj.get("type"), - "beneficiaryAddressType": obj.get("beneficiaryAddressType"), - "addressSource": obj.get("addressSource"), - "beneficiaryVASPdid": obj.get("beneficiaryVASPdid"), - "beneficiaryVASPname": obj.get("beneficiaryVASPname"), - "warnings": obj.get("warnings") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVHJhdmVsUnVsZVZhbGlkYXRlVHJhbnNhY3Rpb25SZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBUcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpc192YWxpZDogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJcImlzVmFsaWRcIiB3aWxsIHRlbGwgeW91IGlmIHlvdSBoYXZlIGNvbGxlY3RlZCBhbGwgdGhlIGluZm9ybWF0aW9uIG5lZWRlZCBmb3IgdGhlIHRyYXZlbCBydWxlIGRhdGEgdHJhbnNmZXIuIE9uY2UgdGhpcyBmaWVsZCA9IFwidHJ1ZVwiLCB5b3UgY2FuIG1vdmUgb24gdG8gdGhlIG5leHQgc3RlcCB3aGljaCBpcyB0byB0cmFuc2ZlciB0aGUgZnJvbnQtZW5kIGluZm9ybWF0aW9uIHRvIHlvdXIgYmFjay1lbmQgYW5kIHBlcmZvcm0gVHJhdmVsIFJ1bGUgVHJhbnNhY3Rpb24gY3JlYXRlIiwgYWxpYXM9ImlzVmFsaWQiKQogICAgdHlwZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlwidHlwZVwiIHdpbGwgdGVsbCB5b3UgaWYgdGhlIHZpcnR1YWwgYXNzZXQgdmFsdWUgY29udmVydGVkIHRvIEZJQVQgdmFsdWUgb2YgdGhlIHdpdGhkcmF3YWwgcmVxdWVzdCBpcyBhYm92ZSAoPVRSQVZFTFJVTEUpIG9yIGJlbG93ICg9QkVMT1dfVEhSRVNIT0xEKSB0aGUgdGhyZXNob2xkIGluIHlvdXIganVyaXNkaWN0aW9uLiBJZiBpdCBpcyB0byBhbiB1bmhvc3RlZCB3YWxsZXQgd2hpY2ggZG9lcyBub3QgcmVxdWlyZSB0cmF2ZWwgcnVsZSBpbmZvcm1hdGlvbiB0byBiZSBzZW50IGFuZCBvbmx5IGNvbGxlY3RlZCwgaXQgd2lsbCBzYXkgTk9OX0NVU1RPRElBTC4iKQogICAgYmVuZWZpY2lhcnlfYWRkcmVzc190eXBlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iXCJiZW5lZmljaWFyeUFkZHJlc3NUeXBlXCIgd2lsbCB0ZWxsIHlvdSBpZiB5b3VyIGJsb2NrY2hhaW4gYW5hbHl0aWNzIHByb3ZpZGVyIG9yIGludGVybmFsIGFkZHJlc3MgYm9vayBoYXMgYmVlbiBhYmxlIHRvIGlkZW50aWZ5IHRoZSB3YWxsZXQgYWRkcmVzcy4iLCBhbGlhcz0iYmVuZWZpY2lhcnlBZGRyZXNzVHlwZSIpCiAgICBhZGRyZXNzX3NvdXJjZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlwiYWRkcmVzc1NvdXJjZVwiIHdpbGwgdGVsbCB5b3UgaWYgdGhlIGFkZHJlc3Mgd2FzIGZvdW5kIGluIHlvdXIgaW50ZXJuYWwgYWRkcmVzcyBib29rIG9yIGlkZW50aWZpZWQgYnkgdGhlIGJsb2NrY2hhaW4gYW5hbHl0aWNzIHByb3ZpZGVyLiIsIGFsaWFzPSJhZGRyZXNzU291cmNlIikKICAgIGJlbmVmaWNpYXJ5X3Zhc19wZGlkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIFZBU1AgRElEIG9mIHRoZSBiZW5lZmljaWFyeSBWQVNQIiwgYWxpYXM9ImJlbmVmaWNpYXJ5VkFTUGRpZCIpCiAgICBiZW5lZmljaWFyeV92YXNfcG5hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJcImJlbmVmaWNpYXJ5VkFTUG5hbWVcIiB3aWxsIHRlbGwgeW91IHRoZSBuYW1lIG9mIHRoZSBWQVNQIHRoYXQgaGFzIGJlZW4gaWRlbnRpZmllZCBhcyB0aGUgb3duZXIgb2YgdGhlIHdhbGxldCBhZGRyZXNzLiBUaGlzIG5hbWUgaXMgdXNlZCBpbiBhIHN1YnNlcXVlbnQgY2FsbCB0byBnZXQgaXRzIERJRC4iLCBhbGlhcz0iYmVuZWZpY2lhcnlWQVNQbmFtZSIpCiAgICB3YXJuaW5nczogTGlzdFtTdHJpY3RTdHJdID0gRmllbGQoZGVzY3JpcHRpb249IlwiZXJyb3JzL3dhcm5pbmdzXCIgd2lsbCB0ZWxsIHlvdSB3aGF0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBiZW5lZmljaWFyeSB5b3UgbmVlZCB0byBjb2xsZWN0IGZyb20gdGhlIHNlbmRlci4iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpc1ZhbGlkIiwgInR5cGUiLCAiYmVuZWZpY2lhcnlBZGRyZXNzVHlwZSIsICJhZGRyZXNzU291cmNlIiwgImJlbmVmaWNpYXJ5VkFTUGRpZCIsICJiZW5lZmljaWFyeVZBU1BuYW1lIiwgIndhcm5pbmdzIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdiZW5lZmljaWFyeV9hZGRyZXNzX3R5cGUnKQogICAgZGVmIGJlbmVmaWNpYXJ5X2FkZHJlc3NfdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydVTktOT1dOJywgJ0hPU1RFRCcsICdVTkhPU1RFRCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdVTktOT1dOJywgJ0hPU1RFRCcsICdVTkhPU1RFRCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhZGRyZXNzX3NvdXJjZScpCiAgICBkZWYgYWRkcmVzc19zb3VyY2VfdmFsaWRhdGVfZW51bShjbHMsIHZhbHVlKToKICAgICAgICAiIiJWYWxpZGF0ZXMgdGhlIGVudW0iIiIKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnVU5LTk9XTicsICdBRERSRVNTX0hBU0gnLCAnQUREUkVTU19HUkFQSCcsICdDSEFJTkFMWVNJUycsICdFTExJUFRJQycsICdDUllTVEFMJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ1VOS05PV04nLCAnQUREUkVTU19IQVNIJywgJ0FERFJFU1NfR1JBUEgnLCAnQ0hBSU5BTFlTSVMnLCAnRUxMSVBUSUMnLCAnQ1JZU1RBTCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWYWxpZGF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaXNWYWxpZCI6IG9iai5nZXQoImlzVmFsaWQiKSwKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIiksCiAgICAgICAgICAgICJiZW5lZmljaWFyeUFkZHJlc3NUeXBlIjogb2JqLmdldCgiYmVuZWZpY2lhcnlBZGRyZXNzVHlwZSIpLAogICAgICAgICAgICAiYWRkcmVzc1NvdXJjZSI6IG9iai5nZXQoImFkZHJlc3NTb3VyY2UiKSwKICAgICAgICAgICAgImJlbmVmaWNpYXJ5VkFTUGRpZCI6IG9iai5nZXQoImJlbmVmaWNpYXJ5VkFTUGRpZCIpLAogICAgICAgICAgICAiYmVuZWZpY2lhcnlWQVNQbmFtZSI6IG9iai5nZXQoImJlbmVmaWNpYXJ5VkFTUG5hbWUiKSwKICAgICAgICAgICAgIndhcm5pbmdzIjogb2JqLmdldCgid2FybmluZ3MiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/travel_rule_vasp.py b/fireblocks/models/travel_rule_vasp.py index 2440a9d8..adac7b1a 100644 --- a/fireblocks/models/travel_rule_vasp.py +++ b/fireblocks/models/travel_rule_vasp.py @@ -1,182 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.travel_rule_issuers import TravelRuleIssuers -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleVASP(BaseModel): - """ - TravelRuleVASP - """ # noqa: E501 - did: StrictStr = Field(description="The Decentralized Identifier (DID) of the VASP.") - name: StrictStr = Field(description="The name of the VASP.") - verification_status: StrictStr = Field(description="The current verification status of the VASP.", alias="verificationStatus") - address_line1: StrictStr = Field(description="The first line of the VASP's address.", alias="addressLine1") - address_line2: Optional[StrictStr] = Field(default=None, description="The second line of the VASP's address (if applicable).", alias="addressLine2") - city: StrictStr = Field(description="The city where the VASP is located.") - country: StrictStr = Field(description="The country where the VASP is registered (ISO-3166 Alpha-2 code).") - email_domains: StrictStr = Field(description="Comma-separated list of email domains associated with the VASP.", alias="emailDomains") - website: StrictStr = Field(description="The official website of the VASP.") - logo: Optional[StrictStr] = Field(default=None, description="URL to the logo of the VASP.") - legal_structure: StrictStr = Field(description="The legal structure of the VASP (e.g., Corporation, LLC).", alias="legalStructure") - legal_name: StrictStr = Field(description="The legal name of the VASP.", alias="legalName") - year_founded: StrictStr = Field(description="The year the VASP was founded.", alias="yearFounded") - incorporation_country: StrictStr = Field(description="The country where the VASP is incorporated (ISO-3166 Alpha-2 code).", alias="incorporationCountry") - is_regulated: StrictStr = Field(description="Indicates whether the VASP is regulated.", alias="isRegulated") - other_names: Optional[StrictStr] = Field(default=None, description="Other names the VASP is known by.", alias="otherNames") - identification_type: Optional[StrictStr] = Field(default=None, description="The type of identification used by the VASP.", alias="identificationType") - identification_country: Optional[StrictStr] = Field(default=None, description="The country of identification for the VASP (ISO-3166 Alpha-2 code).", alias="identificationCountry") - business_number: Optional[StrictStr] = Field(default=None, description="The business registration number of the VASP.", alias="businessNumber") - regulatory_authorities: Optional[StrictStr] = Field(default=None, description="The regulatory authorities overseeing the VASP.", alias="regulatoryAuthorities") - jurisdictions: StrictStr = Field(description="The jurisdictions where the VASP operates.") - street: Optional[StrictStr] = Field(default=None, description="The street name where the VASP is located.") - number: Optional[StrictStr] = Field(default=None, description="The building number of the VASP's address.") - unit: Optional[StrictStr] = Field(default=None, description="The unit or suite number of the VASP's address.") - post_code: Optional[StrictStr] = Field(default=None, description="The postal code of the VASP's location.", alias="postCode") - state: Optional[StrictStr] = Field(default=None, description="The state or region where the VASP is located.") - certificates: Optional[StrictStr] = Field(default=None, description="Certificates or licenses held by the VASP.") - description: Optional[StrictStr] = Field(default=None, description="A brief description of the VASP.") - travel_rule_openvasp: Optional[StrictStr] = Field(default=None, description="Travel rule compliance status for OpenVASP.", alias="travelRule_OPENVASP") - travel_rule_sygna: Optional[StrictStr] = Field(default=None, description="Travel rule compliance status for Sygna.", alias="travelRule_SYGNA") - travel_rule_trisa: Optional[StrictStr] = Field(default=None, description="Travel rule compliance status for TRISA.", alias="travelRule_TRISA") - travel_rule_trlight: StrictStr = Field(description="Travel rule compliance status for TRLight.", alias="travelRule_TRLIGHT") - travel_rule_email: Optional[StrictStr] = Field(default=None, description="Travel rule compliance status for EMAIL.", alias="travelRule_EMAIL") - travel_rule_trp: Optional[StrictStr] = Field(default=None, description="Travel rule compliance status for TRP.", alias="travelRule_TRP") - travel_rule_shyft: Optional[StrictStr] = Field(default=None, description="Travel rule compliance status for Shyft.", alias="travelRule_SHYFT") - travel_rule_ustravelrulewg: Optional[StrictStr] = Field(default=None, description="Travel rule compliance status for US Travel Rule WG.", alias="travelRule_USTRAVELRULEWG") - created_at: StrictStr = Field(description="Timestamp when the VASP record was created.", alias="createdAt") - created_by: Optional[StrictStr] = Field(default=None, description="User or system that created the VASP record.", alias="createdBy") - updated_at: Optional[StrictStr] = Field(default=None, description="Timestamp of the last update to the VASP record.", alias="updatedAt") - updated_by: Optional[StrictStr] = Field(default=None, description="User or system that last updated the VASP record.", alias="updatedBy") - last_sent_date: Optional[StrictStr] = Field(default=None, description="The last date a transaction was sent by the VASP.", alias="lastSentDate") - last_received_date: Optional[StrictStr] = Field(default=None, description="The last date a transaction was received by the VASP.", alias="lastReceivedDate") - documents: Optional[StrictStr] = Field(default=None, description="Documents associated with the VASP.") - has_admin: StrictBool = Field(description="Indicates if the VASP has an admin.", alias="hasAdmin") - is_notifiable: StrictBool = Field(description="Indicates if the VASP is notifiable for compliance reasons.", alias="isNotifiable") - issuers: TravelRuleIssuers - __properties: ClassVar[List[str]] = ["did", "name", "verificationStatus", "addressLine1", "addressLine2", "city", "country", "emailDomains", "website", "logo", "legalStructure", "legalName", "yearFounded", "incorporationCountry", "isRegulated", "otherNames", "identificationType", "identificationCountry", "businessNumber", "regulatoryAuthorities", "jurisdictions", "street", "number", "unit", "postCode", "state", "certificates", "description", "travelRule_OPENVASP", "travelRule_SYGNA", "travelRule_TRISA", "travelRule_TRLIGHT", "travelRule_EMAIL", "travelRule_TRP", "travelRule_SHYFT", "travelRule_USTRAVELRULEWG", "createdAt", "createdBy", "updatedAt", "updatedBy", "lastSentDate", "lastReceivedDate", "documents", "hasAdmin", "isNotifiable", "issuers"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleVASP from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of issuers - if self.issuers: - _dict['issuers'] = self.issuers.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleVASP from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "did": obj.get("did"), - "name": obj.get("name"), - "verificationStatus": obj.get("verificationStatus"), - "addressLine1": obj.get("addressLine1"), - "addressLine2": obj.get("addressLine2"), - "city": obj.get("city"), - "country": obj.get("country"), - "emailDomains": obj.get("emailDomains"), - "website": obj.get("website"), - "logo": obj.get("logo"), - "legalStructure": obj.get("legalStructure"), - "legalName": obj.get("legalName"), - "yearFounded": obj.get("yearFounded"), - "incorporationCountry": obj.get("incorporationCountry"), - "isRegulated": obj.get("isRegulated"), - "otherNames": obj.get("otherNames"), - "identificationType": obj.get("identificationType"), - "identificationCountry": obj.get("identificationCountry"), - "businessNumber": obj.get("businessNumber"), - "regulatoryAuthorities": obj.get("regulatoryAuthorities"), - "jurisdictions": obj.get("jurisdictions"), - "street": obj.get("street"), - "number": obj.get("number"), - "unit": obj.get("unit"), - "postCode": obj.get("postCode"), - "state": obj.get("state"), - "certificates": obj.get("certificates"), - "description": obj.get("description"), - "travelRule_OPENVASP": obj.get("travelRule_OPENVASP"), - "travelRule_SYGNA": obj.get("travelRule_SYGNA"), - "travelRule_TRISA": obj.get("travelRule_TRISA"), - "travelRule_TRLIGHT": obj.get("travelRule_TRLIGHT"), - "travelRule_EMAIL": obj.get("travelRule_EMAIL"), - "travelRule_TRP": obj.get("travelRule_TRP"), - "travelRule_SHYFT": obj.get("travelRule_SHYFT"), - "travelRule_USTRAVELRULEWG": obj.get("travelRule_USTRAVELRULEWG"), - "createdAt": obj.get("createdAt"), - "createdBy": obj.get("createdBy"), - "updatedAt": obj.get("updatedAt"), - "updatedBy": obj.get("updatedBy"), - "lastSentDate": obj.get("lastSentDate"), - "lastReceivedDate": obj.get("lastReceivedDate"), - "documents": obj.get("documents"), - "hasAdmin": obj.get("hasAdmin"), - "isNotifiable": obj.get("isNotifiable"), - "issuers": TravelRuleIssuers.from_dict(obj["issuers"]) if obj.get("issuers") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2lzc3VlcnMgaW1wb3J0IFRyYXZlbFJ1bGVJc3N1ZXJzCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRyYXZlbFJ1bGVWQVNQKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRyYXZlbFJ1bGVWQVNQCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBkaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgRGVjZW50cmFsaXplZCBJZGVudGlmaWVyIChESUQpIG9mIHRoZSBWQVNQLiIpCiAgICBuYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIG5hbWUgb2YgdGhlIFZBU1AuIikKICAgIHZlcmlmaWNhdGlvbl9zdGF0dXM6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgY3VycmVudCB2ZXJpZmljYXRpb24gc3RhdHVzIG9mIHRoZSBWQVNQLiIsIGFsaWFzPSJ2ZXJpZmljYXRpb25TdGF0dXMiKQogICAgYWRkcmVzc19saW5lMTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBmaXJzdCBsaW5lIG9mIHRoZSBWQVNQJ3MgYWRkcmVzcy4iLCBhbGlhcz0iYWRkcmVzc0xpbmUxIikKICAgIGFkZHJlc3NfbGluZTI6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgc2Vjb25kIGxpbmUgb2YgdGhlIFZBU1AncyBhZGRyZXNzIChpZiBhcHBsaWNhYmxlKS4iLCBhbGlhcz0iYWRkcmVzc0xpbmUyIikKICAgIGNpdHk6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgY2l0eSB3aGVyZSB0aGUgVkFTUCBpcyBsb2NhdGVkLiIpCiAgICBjb3VudHJ5OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNvdW50cnkgd2hlcmUgdGhlIFZBU1AgaXMgcmVnaXN0ZXJlZCAoSVNPLTMxNjYgQWxwaGEtMiBjb2RlKS4iKQogICAgZW1haWxfZG9tYWluczogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IkNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGVtYWlsIGRvbWFpbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBWQVNQLiIsIGFsaWFzPSJlbWFpbERvbWFpbnMiKQogICAgd2Vic2l0ZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBvZmZpY2lhbCB3ZWJzaXRlIG9mIHRoZSBWQVNQLiIpCiAgICBsb2dvOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVVJMIHRvIHRoZSBsb2dvIG9mIHRoZSBWQVNQLiIpCiAgICBsZWdhbF9zdHJ1Y3R1cmU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgbGVnYWwgc3RydWN0dXJlIG9mIHRoZSBWQVNQIChlLmcuLCBDb3Jwb3JhdGlvbiwgTExDKS4iLCBhbGlhcz0ibGVnYWxTdHJ1Y3R1cmUiKQogICAgbGVnYWxfbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBsZWdhbCBuYW1lIG9mIHRoZSBWQVNQLiIsIGFsaWFzPSJsZWdhbE5hbWUiKQogICAgeWVhcl9mb3VuZGVkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHllYXIgdGhlIFZBU1Agd2FzIGZvdW5kZWQuIiwgYWxpYXM9InllYXJGb3VuZGVkIikKICAgIGluY29ycG9yYXRpb25fY291bnRyeTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBjb3VudHJ5IHdoZXJlIHRoZSBWQVNQIGlzIGluY29ycG9yYXRlZCAoSVNPLTMxNjYgQWxwaGEtMiBjb2RlKS4iLCBhbGlhcz0iaW5jb3Jwb3JhdGlvbkNvdW50cnkiKQogICAgaXNfcmVndWxhdGVkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iSW5kaWNhdGVzIHdoZXRoZXIgdGhlIFZBU1AgaXMgcmVndWxhdGVkLiIsIGFsaWFzPSJpc1JlZ3VsYXRlZCIpCiAgICBvdGhlcl9uYW1lczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik90aGVyIG5hbWVzIHRoZSBWQVNQIGlzIGtub3duIGJ5LiIsIGFsaWFzPSJvdGhlck5hbWVzIikKICAgIGlkZW50aWZpY2F0aW9uX3R5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgdHlwZSBvZiBpZGVudGlmaWNhdGlvbiB1c2VkIGJ5IHRoZSBWQVNQLiIsIGFsaWFzPSJpZGVudGlmaWNhdGlvblR5cGUiKQogICAgaWRlbnRpZmljYXRpb25fY291bnRyeTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBjb3VudHJ5IG9mIGlkZW50aWZpY2F0aW9uIGZvciB0aGUgVkFTUCAoSVNPLTMxNjYgQWxwaGEtMiBjb2RlKS4iLCBhbGlhcz0iaWRlbnRpZmljYXRpb25Db3VudHJ5IikKICAgIGJ1c2luZXNzX251bWJlcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBidXNpbmVzcyByZWdpc3RyYXRpb24gbnVtYmVyIG9mIHRoZSBWQVNQLiIsIGFsaWFzPSJidXNpbmVzc051bWJlciIpCiAgICByZWd1bGF0b3J5X2F1dGhvcml0aWVzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHJlZ3VsYXRvcnkgYXV0aG9yaXRpZXMgb3ZlcnNlZWluZyB0aGUgVkFTUC4iLCBhbGlhcz0icmVndWxhdG9yeUF1dGhvcml0aWVzIikKICAgIGp1cmlzZGljdGlvbnM6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUganVyaXNkaWN0aW9ucyB3aGVyZSB0aGUgVkFTUCBvcGVyYXRlcy4iKQogICAgc3RyZWV0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHN0cmVldCBuYW1lIHdoZXJlIHRoZSBWQVNQIGlzIGxvY2F0ZWQuIikKICAgIG51bWJlcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBidWlsZGluZyBudW1iZXIgb2YgdGhlIFZBU1AncyBhZGRyZXNzLiIpCiAgICB1bml0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHVuaXQgb3Igc3VpdGUgbnVtYmVyIG9mIHRoZSBWQVNQJ3MgYWRkcmVzcy4iKQogICAgcG9zdF9jb2RlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHBvc3RhbCBjb2RlIG9mIHRoZSBWQVNQJ3MgbG9jYXRpb24uIiwgYWxpYXM9InBvc3RDb2RlIikKICAgIHN0YXRlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHN0YXRlIG9yIHJlZ2lvbiB3aGVyZSB0aGUgVkFTUCBpcyBsb2NhdGVkLiIpCiAgICBjZXJ0aWZpY2F0ZXM6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJDZXJ0aWZpY2F0ZXMgb3IgbGljZW5zZXMgaGVsZCBieSB0aGUgVkFTUC4iKQogICAgZGVzY3JpcHRpb246IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBIGJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSBWQVNQLiIpCiAgICB0cmF2ZWxfcnVsZV9vcGVudmFzcDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRyYXZlbCBydWxlIGNvbXBsaWFuY2Ugc3RhdHVzIGZvciBPcGVuVkFTUC4iLCBhbGlhcz0idHJhdmVsUnVsZV9PUEVOVkFTUCIpCiAgICB0cmF2ZWxfcnVsZV9zeWduYTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRyYXZlbCBydWxlIGNvbXBsaWFuY2Ugc3RhdHVzIGZvciBTeWduYS4iLCBhbGlhcz0idHJhdmVsUnVsZV9TWUdOQSIpCiAgICB0cmF2ZWxfcnVsZV90cmlzYTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRyYXZlbCBydWxlIGNvbXBsaWFuY2Ugc3RhdHVzIGZvciBUUklTQS4iLCBhbGlhcz0idHJhdmVsUnVsZV9UUklTQSIpCiAgICB0cmF2ZWxfcnVsZV90cmxpZ2h0OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVHJhdmVsIHJ1bGUgY29tcGxpYW5jZSBzdGF0dXMgZm9yIFRSTGlnaHQuIiwgYWxpYXM9InRyYXZlbFJ1bGVfVFJMSUdIVCIpCiAgICB0cmF2ZWxfcnVsZV9lbWFpbDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRyYXZlbCBydWxlIGNvbXBsaWFuY2Ugc3RhdHVzIGZvciBFTUFJTC4iLCBhbGlhcz0idHJhdmVsUnVsZV9FTUFJTCIpCiAgICB0cmF2ZWxfcnVsZV90cnA6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUcmF2ZWwgcnVsZSBjb21wbGlhbmNlIHN0YXR1cyBmb3IgVFJQLiIsIGFsaWFzPSJ0cmF2ZWxSdWxlX1RSUCIpCiAgICB0cmF2ZWxfcnVsZV9zaHlmdDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRyYXZlbCBydWxlIGNvbXBsaWFuY2Ugc3RhdHVzIGZvciBTaHlmdC4iLCBhbGlhcz0idHJhdmVsUnVsZV9TSFlGVCIpCiAgICB0cmF2ZWxfcnVsZV91c3RyYXZlbHJ1bGV3ZzogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRyYXZlbCBydWxlIGNvbXBsaWFuY2Ugc3RhdHVzIGZvciBVUyBUcmF2ZWwgUnVsZSBXRy4iLCBhbGlhcz0idHJhdmVsUnVsZV9VU1RSQVZFTFJVTEVXRyIpCiAgICBjcmVhdGVkX2F0OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGltZXN0YW1wIHdoZW4gdGhlIFZBU1AgcmVjb3JkIHdhcyBjcmVhdGVkLiIsIGFsaWFzPSJjcmVhdGVkQXQiKQogICAgY3JlYXRlZF9ieTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlVzZXIgb3Igc3lzdGVtIHRoYXQgY3JlYXRlZCB0aGUgVkFTUCByZWNvcmQuIiwgYWxpYXM9ImNyZWF0ZWRCeSIpCiAgICB1cGRhdGVkX2F0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGltZXN0YW1wIG9mIHRoZSBsYXN0IHVwZGF0ZSB0byB0aGUgVkFTUCByZWNvcmQuIiwgYWxpYXM9InVwZGF0ZWRBdCIpCiAgICB1cGRhdGVkX2J5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVXNlciBvciBzeXN0ZW0gdGhhdCBsYXN0IHVwZGF0ZWQgdGhlIFZBU1AgcmVjb3JkLiIsIGFsaWFzPSJ1cGRhdGVkQnkiKQogICAgbGFzdF9zZW50X2RhdGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgbGFzdCBkYXRlIGEgdHJhbnNhY3Rpb24gd2FzIHNlbnQgYnkgdGhlIFZBU1AuIiwgYWxpYXM9Imxhc3RTZW50RGF0ZSIpCiAgICBsYXN0X3JlY2VpdmVkX2RhdGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgbGFzdCBkYXRlIGEgdHJhbnNhY3Rpb24gd2FzIHJlY2VpdmVkIGJ5IHRoZSBWQVNQLiIsIGFsaWFzPSJsYXN0UmVjZWl2ZWREYXRlIikKICAgIGRvY3VtZW50czogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRvY3VtZW50cyBhc3NvY2lhdGVkIHdpdGggdGhlIFZBU1AuIikKICAgIGhhc19hZG1pbjogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJbmRpY2F0ZXMgaWYgdGhlIFZBU1AgaGFzIGFuIGFkbWluLiIsIGFsaWFzPSJoYXNBZG1pbiIpCiAgICBpc19ub3RpZmlhYmxlOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IkluZGljYXRlcyBpZiB0aGUgVkFTUCBpcyBub3RpZmlhYmxlIGZvciBjb21wbGlhbmNlIHJlYXNvbnMuIiwgYWxpYXM9ImlzTm90aWZpYWJsZSIpCiAgICBpc3N1ZXJzOiBUcmF2ZWxSdWxlSXNzdWVycwogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJkaWQiLCAibmFtZSIsICJ2ZXJpZmljYXRpb25TdGF0dXMiLCAiYWRkcmVzc0xpbmUxIiwgImFkZHJlc3NMaW5lMiIsICJjaXR5IiwgImNvdW50cnkiLCAiZW1haWxEb21haW5zIiwgIndlYnNpdGUiLCAibG9nbyIsICJsZWdhbFN0cnVjdHVyZSIsICJsZWdhbE5hbWUiLCAieWVhckZvdW5kZWQiLCAiaW5jb3Jwb3JhdGlvbkNvdW50cnkiLCAiaXNSZWd1bGF0ZWQiLCAib3RoZXJOYW1lcyIsICJpZGVudGlmaWNhdGlvblR5cGUiLCAiaWRlbnRpZmljYXRpb25Db3VudHJ5IiwgImJ1c2luZXNzTnVtYmVyIiwgInJlZ3VsYXRvcnlBdXRob3JpdGllcyIsICJqdXJpc2RpY3Rpb25zIiwgInN0cmVldCIsICJudW1iZXIiLCAidW5pdCIsICJwb3N0Q29kZSIsICJzdGF0ZSIsICJjZXJ0aWZpY2F0ZXMiLCAiZGVzY3JpcHRpb24iLCAidHJhdmVsUnVsZV9PUEVOVkFTUCIsICJ0cmF2ZWxSdWxlX1NZR05BIiwgInRyYXZlbFJ1bGVfVFJJU0EiLCAidHJhdmVsUnVsZV9UUkxJR0hUIiwgInRyYXZlbFJ1bGVfRU1BSUwiLCAidHJhdmVsUnVsZV9UUlAiLCAidHJhdmVsUnVsZV9TSFlGVCIsICJ0cmF2ZWxSdWxlX1VTVFJBVkVMUlVMRVdHIiwgImNyZWF0ZWRBdCIsICJjcmVhdGVkQnkiLCAidXBkYXRlZEF0IiwgInVwZGF0ZWRCeSIsICJsYXN0U2VudERhdGUiLCAibGFzdFJlY2VpdmVkRGF0ZSIsICJkb2N1bWVudHMiLCAiaGFzQWRtaW4iLCAiaXNOb3RpZmlhYmxlIiwgImlzc3VlcnMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWQVNQIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgaXNzdWVycwogICAgICAgIGlmIHNlbGYuaXNzdWVyczoKICAgICAgICAgICAgX2RpY3RbJ2lzc3VlcnMnXSA9IHNlbGYuaXNzdWVycy50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWQVNQIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRpZCI6IG9iai5nZXQoImRpZCIpLAogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKSwKICAgICAgICAgICAgInZlcmlmaWNhdGlvblN0YXR1cyI6IG9iai5nZXQoInZlcmlmaWNhdGlvblN0YXR1cyIpLAogICAgICAgICAgICAiYWRkcmVzc0xpbmUxIjogb2JqLmdldCgiYWRkcmVzc0xpbmUxIiksCiAgICAgICAgICAgICJhZGRyZXNzTGluZTIiOiBvYmouZ2V0KCJhZGRyZXNzTGluZTIiKSwKICAgICAgICAgICAgImNpdHkiOiBvYmouZ2V0KCJjaXR5IiksCiAgICAgICAgICAgICJjb3VudHJ5Ijogb2JqLmdldCgiY291bnRyeSIpLAogICAgICAgICAgICAiZW1haWxEb21haW5zIjogb2JqLmdldCgiZW1haWxEb21haW5zIiksCiAgICAgICAgICAgICJ3ZWJzaXRlIjogb2JqLmdldCgid2Vic2l0ZSIpLAogICAgICAgICAgICAibG9nbyI6IG9iai5nZXQoImxvZ28iKSwKICAgICAgICAgICAgImxlZ2FsU3RydWN0dXJlIjogb2JqLmdldCgibGVnYWxTdHJ1Y3R1cmUiKSwKICAgICAgICAgICAgImxlZ2FsTmFtZSI6IG9iai5nZXQoImxlZ2FsTmFtZSIpLAogICAgICAgICAgICAieWVhckZvdW5kZWQiOiBvYmouZ2V0KCJ5ZWFyRm91bmRlZCIpLAogICAgICAgICAgICAiaW5jb3Jwb3JhdGlvbkNvdW50cnkiOiBvYmouZ2V0KCJpbmNvcnBvcmF0aW9uQ291bnRyeSIpLAogICAgICAgICAgICAiaXNSZWd1bGF0ZWQiOiBvYmouZ2V0KCJpc1JlZ3VsYXRlZCIpLAogICAgICAgICAgICAib3RoZXJOYW1lcyI6IG9iai5nZXQoIm90aGVyTmFtZXMiKSwKICAgICAgICAgICAgImlkZW50aWZpY2F0aW9uVHlwZSI6IG9iai5nZXQoImlkZW50aWZpY2F0aW9uVHlwZSIpLAogICAgICAgICAgICAiaWRlbnRpZmljYXRpb25Db3VudHJ5Ijogb2JqLmdldCgiaWRlbnRpZmljYXRpb25Db3VudHJ5IiksCiAgICAgICAgICAgICJidXNpbmVzc051bWJlciI6IG9iai5nZXQoImJ1c2luZXNzTnVtYmVyIiksCiAgICAgICAgICAgICJyZWd1bGF0b3J5QXV0aG9yaXRpZXMiOiBvYmouZ2V0KCJyZWd1bGF0b3J5QXV0aG9yaXRpZXMiKSwKICAgICAgICAgICAgImp1cmlzZGljdGlvbnMiOiBvYmouZ2V0KCJqdXJpc2RpY3Rpb25zIiksCiAgICAgICAgICAgICJzdHJlZXQiOiBvYmouZ2V0KCJzdHJlZXQiKSwKICAgICAgICAgICAgIm51bWJlciI6IG9iai5nZXQoIm51bWJlciIpLAogICAgICAgICAgICAidW5pdCI6IG9iai5nZXQoInVuaXQiKSwKICAgICAgICAgICAgInBvc3RDb2RlIjogb2JqLmdldCgicG9zdENvZGUiKSwKICAgICAgICAgICAgInN0YXRlIjogb2JqLmdldCgic3RhdGUiKSwKICAgICAgICAgICAgImNlcnRpZmljYXRlcyI6IG9iai5nZXQoImNlcnRpZmljYXRlcyIpLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBvYmouZ2V0KCJkZXNjcmlwdGlvbiIpLAogICAgICAgICAgICAidHJhdmVsUnVsZV9PUEVOVkFTUCI6IG9iai5nZXQoInRyYXZlbFJ1bGVfT1BFTlZBU1AiKSwKICAgICAgICAgICAgInRyYXZlbFJ1bGVfU1lHTkEiOiBvYmouZ2V0KCJ0cmF2ZWxSdWxlX1NZR05BIiksCiAgICAgICAgICAgICJ0cmF2ZWxSdWxlX1RSSVNBIjogb2JqLmdldCgidHJhdmVsUnVsZV9UUklTQSIpLAogICAgICAgICAgICAidHJhdmVsUnVsZV9UUkxJR0hUIjogb2JqLmdldCgidHJhdmVsUnVsZV9UUkxJR0hUIiksCiAgICAgICAgICAgICJ0cmF2ZWxSdWxlX0VNQUlMIjogb2JqLmdldCgidHJhdmVsUnVsZV9FTUFJTCIpLAogICAgICAgICAgICAidHJhdmVsUnVsZV9UUlAiOiBvYmouZ2V0KCJ0cmF2ZWxSdWxlX1RSUCIpLAogICAgICAgICAgICAidHJhdmVsUnVsZV9TSFlGVCI6IG9iai5nZXQoInRyYXZlbFJ1bGVfU0hZRlQiKSwKICAgICAgICAgICAgInRyYXZlbFJ1bGVfVVNUUkFWRUxSVUxFV0ciOiBvYmouZ2V0KCJ0cmF2ZWxSdWxlX1VTVFJBVkVMUlVMRVdHIiksCiAgICAgICAgICAgICJjcmVhdGVkQXQiOiBvYmouZ2V0KCJjcmVhdGVkQXQiKSwKICAgICAgICAgICAgImNyZWF0ZWRCeSI6IG9iai5nZXQoImNyZWF0ZWRCeSIpLAogICAgICAgICAgICAidXBkYXRlZEF0Ijogb2JqLmdldCgidXBkYXRlZEF0IiksCiAgICAgICAgICAgICJ1cGRhdGVkQnkiOiBvYmouZ2V0KCJ1cGRhdGVkQnkiKSwKICAgICAgICAgICAgImxhc3RTZW50RGF0ZSI6IG9iai5nZXQoImxhc3RTZW50RGF0ZSIpLAogICAgICAgICAgICAibGFzdFJlY2VpdmVkRGF0ZSI6IG9iai5nZXQoImxhc3RSZWNlaXZlZERhdGUiKSwKICAgICAgICAgICAgImRvY3VtZW50cyI6IG9iai5nZXQoImRvY3VtZW50cyIpLAogICAgICAgICAgICAiaGFzQWRtaW4iOiBvYmouZ2V0KCJoYXNBZG1pbiIpLAogICAgICAgICAgICAiaXNOb3RpZmlhYmxlIjogb2JqLmdldCgiaXNOb3RpZmlhYmxlIiksCiAgICAgICAgICAgICJpc3N1ZXJzIjogVHJhdmVsUnVsZUlzc3VlcnMuZnJvbV9kaWN0KG9ialsiaXNzdWVycyJdKSBpZiBvYmouZ2V0KCJpc3N1ZXJzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/travel_rule_vasp_for_vault.py b/fireblocks/models/travel_rule_vasp_for_vault.py index 1877098b..fa4092e5 100644 --- a/fireblocks/models/travel_rule_vasp_for_vault.py +++ b/fireblocks/models/travel_rule_vasp_for_vault.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TravelRuleVaspForVault(BaseModel): - """ - TravelRuleVaspForVault - """ # noqa: E501 - vasp_did: Optional[StrictStr] = Field(default=None, description="VASP DID", alias="vaspDid") - __properties: ClassVar[List[str]] = ["vaspDid"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TravelRuleVaspForVault from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TravelRuleVaspForVault from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "vaspDid": obj.get("vaspDid") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcmF2ZWxSdWxlVmFzcEZvclZhdWx0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFRyYXZlbFJ1bGVWYXNwRm9yVmF1bHQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHZhc3BfZGlkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVkFTUCBESUQiLCBhbGlhcz0idmFzcERpZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInZhc3BEaWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRyYXZlbFJ1bGVWYXNwRm9yVmF1bHQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVZhc3BGb3JWYXVsdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ2YXNwRGlkIjogb2JqLmdldCgidmFzcERpZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/travel_rule_verdict_enum.py b/fireblocks/models/travel_rule_verdict_enum.py index d85d1cdd..42f1331d 100644 --- a/fireblocks/models/travel_rule_verdict_enum.py +++ b/fireblocks/models/travel_rule_verdict_enum.py @@ -1,40 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TravelRuleVerdictEnum(str, Enum): - """ - The final verdict of the travel rule screening - """ - - """ - allowed enum values - """ - ACCEPT = 'ACCEPT' - REJECT = 'REJECT' - ALERT = 'ALERT' - REVIEW = 'REVIEW' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TravelRuleVerdictEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUcmF2ZWxSdWxlVmVyZGljdEVudW0oc3RyLCBFbnVtKToKICAgICIiIgogICAgVGhlIGZpbmFsIHZlcmRpY3Qgb2YgdGhlIHRyYXZlbCBydWxlIHNjcmVlbmluZwogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIEFDQ0VQVCA9ICdBQ0NFUFQnCiAgICBSRUpFQ1QgPSAnUkVKRUNUJwogICAgQUxFUlQgPSAnQUxFUlQnCiAgICBSRVZJRVcgPSAnUkVWSUVXJwogICAgV0FJVCA9ICdXQUlUJwogICAgRlJFRVpFID0gJ0ZSRUVaRScKICAgIENBTkNFTCA9ICdDQU5DRUwnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJhdmVsUnVsZVZlcmRpY3RFbnVtIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/trust_proof_of_address_create_response.py b/fireblocks/models/trust_proof_of_address_create_response.py index 7ec26f11..68d3d116 100644 --- a/fireblocks/models/trust_proof_of_address_create_response.py +++ b/fireblocks/models/trust_proof_of_address_create_response.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.typed_message_transaction_status_enum import TypedMessageTransactionStatusEnum -from typing import Optional, Set -from typing_extensions import Self - -class TrustProofOfAddressCreateResponse(BaseModel): - """ - Response from creating a proof of address transaction - """ # noqa: E501 - transaction_id: StrictStr = Field(description="Transaction ID from Fireblocks (UUID format)", alias="transactionId") - status: TypedMessageTransactionStatusEnum - __properties: ClassVar[List[str]] = ["transactionId", "status"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TrustProofOfAddressCreateResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TrustProofOfAddressCreateResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "transactionId": obj.get("transactionId"), - "status": obj.get("status") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHlwZWRfbWVzc2FnZV90cmFuc2FjdGlvbl9zdGF0dXNfZW51bSBpbXBvcnQgVHlwZWRNZXNzYWdlVHJhbnNhY3Rpb25TdGF0dXNFbnVtCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRydXN0UHJvb2ZPZkFkZHJlc3NDcmVhdGVSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSZXNwb25zZSBmcm9tIGNyZWF0aW5nIGEgcHJvb2Ygb2YgYWRkcmVzcyB0cmFuc2FjdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHJhbnNhY3Rpb25faWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUcmFuc2FjdGlvbiBJRCBmcm9tIEZpcmVibG9ja3MgKFVVSUQgZm9ybWF0KSIsIGFsaWFzPSJ0cmFuc2FjdGlvbklkIikKICAgIHN0YXR1czogVHlwZWRNZXNzYWdlVHJhbnNhY3Rpb25TdGF0dXNFbnVtCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInRyYW5zYWN0aW9uSWQiLCAic3RhdHVzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcnVzdFByb29mT2ZBZGRyZXNzQ3JlYXRlUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJ1c3RQcm9vZk9mQWRkcmVzc0NyZWF0ZVJlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInRyYW5zYWN0aW9uSWQiOiBvYmouZ2V0KCJ0cmFuc2FjdGlvbklkIiksCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/trust_proof_of_address_request.py b/fireblocks/models/trust_proof_of_address_request.py index dda7db60..f3b4a8e9 100644 --- a/fireblocks/models/trust_proof_of_address_request.py +++ b/fireblocks/models/trust_proof_of_address_request.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class TrustProofOfAddressRequest(BaseModel): - """ - Request to create a cryptographic proof of address ownership for TRUST network compliance - """ # noqa: E501 - vault_account_id: StrictStr = Field(description="The ID of the vault account.", alias="vaultAccountId") - asset: StrictStr = Field(description="The asset identifier for which proof of address is being created.") - prefix: Annotated[str, Field(min_length=1, strict=True, max_length=255)] = Field(description="The prefix to be used for signing messages.") - trust_uuid: StrictStr = Field(description="A unique identifier (UUID) obtained from TRUST (CreateAddressOwnership)", alias="trustUuid") - __properties: ClassVar[List[str]] = ["vaultAccountId", "asset", "prefix", "trustUuid"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TrustProofOfAddressRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TrustProofOfAddressRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "vaultAccountId": obj.get("vaultAccountId"), - "asset": obj.get("asset"), - "prefix": obj.get("prefix"), - "trustUuid": obj.get("trustUuid") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBUcnVzdFByb29mT2ZBZGRyZXNzUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSZXF1ZXN0IHRvIGNyZWF0ZSBhIGNyeXB0b2dyYXBoaWMgcHJvb2Ygb2YgYWRkcmVzcyBvd25lcnNoaXAgZm9yIFRSVVNUIG5ldHdvcmsgY29tcGxpYW5jZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgdmF1bHRfYWNjb3VudF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudC4iLCBhbGlhcz0idmF1bHRBY2NvdW50SWQiKQogICAgYXNzZXQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYXNzZXQgaWRlbnRpZmllciBmb3Igd2hpY2ggcHJvb2Ygb2YgYWRkcmVzcyBpcyBiZWluZyBjcmVhdGVkLiIpCiAgICBwcmVmaXg6IEFubm90YXRlZFtzdHIsIEZpZWxkKG1pbl9sZW5ndGg9MSwgc3RyaWN0PVRydWUsIG1heF9sZW5ndGg9MjU1KV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHByZWZpeCB0byBiZSB1c2VkIGZvciBzaWduaW5nIG1lc3NhZ2VzLiIpCiAgICB0cnVzdF91dWlkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iQSB1bmlxdWUgaWRlbnRpZmllciAoVVVJRCkgb2J0YWluZWQgZnJvbSBUUlVTVCAoQ3JlYXRlQWRkcmVzc093bmVyc2hpcCkiLCBhbGlhcz0idHJ1c3RVdWlkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidmF1bHRBY2NvdW50SWQiLCAiYXNzZXQiLCAicHJlZml4IiwgInRydXN0VXVpZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJ1c3RQcm9vZk9mQWRkcmVzc1JlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHJ1c3RQcm9vZk9mQWRkcmVzc1JlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidmF1bHRBY2NvdW50SWQiOiBvYmouZ2V0KCJ2YXVsdEFjY291bnRJZCIpLAogICAgICAgICAgICAiYXNzZXQiOiBvYmouZ2V0KCJhc3NldCIpLAogICAgICAgICAgICAicHJlZml4Ijogb2JqLmdldCgicHJlZml4IiksCiAgICAgICAgICAgICJ0cnVzdFV1aWQiOiBvYmouZ2V0KCJ0cnVzdFV1aWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/trust_proof_of_address_response.py b/fireblocks/models/trust_proof_of_address_response.py index 765c071e..59777d01 100644 --- a/fireblocks/models/trust_proof_of_address_response.py +++ b/fireblocks/models/trust_proof_of_address_response.py @@ -1,93 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.typed_message_transaction_status_enum import TypedMessageTransactionStatusEnum -from typing import Optional, Set -from typing_extensions import Self - -class TrustProofOfAddressResponse(BaseModel): - """ - Response containing the TRUST-compatible encoded signature - """ # noqa: E501 - transaction_id: StrictStr = Field(description="Transaction ID from Fireblocks (UUID format)", alias="transactionId") - status: TypedMessageTransactionStatusEnum - signature: StrictStr = Field(description="TRUST-compatible encoded signature for proof of address verification. ") - __properties: ClassVar[List[str]] = ["transactionId", "status", "signature"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TrustProofOfAddressResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TrustProofOfAddressResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "transactionId": obj.get("transactionId"), - "status": obj.get("status"), - "signature": obj.get("signature") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudHlwZWRfbWVzc2FnZV90cmFuc2FjdGlvbl9zdGF0dXNfZW51bSBpbXBvcnQgVHlwZWRNZXNzYWdlVHJhbnNhY3Rpb25TdGF0dXNFbnVtCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFRydXN0UHJvb2ZPZkFkZHJlc3NSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBSZXNwb25zZSBjb250YWluaW5nIHRoZSBUUlVTVC1jb21wYXRpYmxlIGVuY29kZWQgc2lnbmF0dXJlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB0cmFuc2FjdGlvbl9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRyYW5zYWN0aW9uIElEIGZyb20gRmlyZWJsb2NrcyAoVVVJRCBmb3JtYXQpIiwgYWxpYXM9InRyYW5zYWN0aW9uSWQiKQogICAgc3RhdHVzOiBUeXBlZE1lc3NhZ2VUcmFuc2FjdGlvblN0YXR1c0VudW0KICAgIHNpZ25hdHVyZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRSVVNULWNvbXBhdGlibGUgZW5jb2RlZCBzaWduYXR1cmUgZm9yIHByb29mIG9mIGFkZHJlc3MgdmVyaWZpY2F0aW9uLiAiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0cmFuc2FjdGlvbklkIiwgInN0YXR1cyIsICJzaWduYXR1cmUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFRydXN0UHJvb2ZPZkFkZHJlc3NSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBUcnVzdFByb29mT2ZBZGRyZXNzUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHJhbnNhY3Rpb25JZCI6IG9iai5nZXQoInRyYW5zYWN0aW9uSWQiKSwKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAic2lnbmF0dXJlIjogb2JqLmdldCgic2lnbmF0dXJlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/tx_log.py b/fireblocks/models/tx_log.py index 42021be8..863b2e72 100644 --- a/fireblocks/models/tx_log.py +++ b/fireblocks/models/tx_log.py @@ -1,104 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class TxLog(BaseModel): - """ - TxLog - """ # noqa: E501 - address: StrictStr = Field(description="The log address") - topics: List[StrictStr] = Field(description="Array of log topics") - data: StrictStr = Field(description="The log data") - block_number: StrictInt = Field(description="Block number where the log occurred", alias="blockNumber") - transaction_hash: StrictStr = Field(description="Transaction hash associated with the log", alias="transactionHash") - transaction_index: StrictInt = Field(description="Transaction index in the block", alias="transactionIndex") - block_hash: StrictStr = Field(description="The hash of the block", alias="blockHash") - log_index: StrictInt = Field(description="Log index in the block", alias="logIndex") - removed: StrictBool = Field(description="Indicates if the log was removed") - __properties: ClassVar[List[str]] = ["address", "topics", "data", "blockNumber", "transactionHash", "transactionIndex", "blockHash", "logIndex", "removed"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TxLog from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TxLog from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "address": obj.get("address"), - "topics": obj.get("topics"), - "data": obj.get("data"), - "blockNumber": obj.get("blockNumber"), - "transactionHash": obj.get("transactionHash"), - "transactionIndex": obj.get("transactionIndex"), - "blockHash": obj.get("blockHash"), - "logIndex": obj.get("logIndex"), - "removed": obj.get("removed") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVHhMb2coQmFzZU1vZGVsKToKICAgICIiIgogICAgVHhMb2cKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFkZHJlc3M6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgbG9nIGFkZHJlc3MiKQogICAgdG9waWNzOiBMaXN0W1N0cmljdFN0cl0gPSBGaWVsZChkZXNjcmlwdGlvbj0iQXJyYXkgb2YgbG9nIHRvcGljcyIpCiAgICBkYXRhOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGxvZyBkYXRhIikKICAgIGJsb2NrX251bWJlcjogU3RyaWN0SW50ID0gRmllbGQoZGVzY3JpcHRpb249IkJsb2NrIG51bWJlciB3aGVyZSB0aGUgbG9nIG9jY3VycmVkIiwgYWxpYXM9ImJsb2NrTnVtYmVyIikKICAgIHRyYW5zYWN0aW9uX2hhc2g6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUcmFuc2FjdGlvbiBoYXNoIGFzc29jaWF0ZWQgd2l0aCB0aGUgbG9nIiwgYWxpYXM9InRyYW5zYWN0aW9uSGFzaCIpCiAgICB0cmFuc2FjdGlvbl9pbmRleDogU3RyaWN0SW50ID0gRmllbGQoZGVzY3JpcHRpb249IlRyYW5zYWN0aW9uIGluZGV4IGluIHRoZSBibG9jayIsIGFsaWFzPSJ0cmFuc2FjdGlvbkluZGV4IikKICAgIGJsb2NrX2hhc2g6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgaGFzaCBvZiB0aGUgYmxvY2siLCBhbGlhcz0iYmxvY2tIYXNoIikKICAgIGxvZ19pbmRleDogU3RyaWN0SW50ID0gRmllbGQoZGVzY3JpcHRpb249IkxvZyBpbmRleCBpbiB0aGUgYmxvY2siLCBhbGlhcz0ibG9nSW5kZXgiKQogICAgcmVtb3ZlZDogU3RyaWN0Qm9vbCA9IEZpZWxkKGRlc2NyaXB0aW9uPSJJbmRpY2F0ZXMgaWYgdGhlIGxvZyB3YXMgcmVtb3ZlZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFkZHJlc3MiLCAidG9waWNzIiwgImRhdGEiLCAiYmxvY2tOdW1iZXIiLCAidHJhbnNhY3Rpb25IYXNoIiwgInRyYW5zYWN0aW9uSW5kZXgiLCAiYmxvY2tIYXNoIiwgImxvZ0luZGV4IiwgInJlbW92ZWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFR4TG9nIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFR4TG9nIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFkZHJlc3MiOiBvYmouZ2V0KCJhZGRyZXNzIiksCiAgICAgICAgICAgICJ0b3BpY3MiOiBvYmouZ2V0KCJ0b3BpY3MiKSwKICAgICAgICAgICAgImRhdGEiOiBvYmouZ2V0KCJkYXRhIiksCiAgICAgICAgICAgICJibG9ja051bWJlciI6IG9iai5nZXQoImJsb2NrTnVtYmVyIiksCiAgICAgICAgICAgICJ0cmFuc2FjdGlvbkhhc2giOiBvYmouZ2V0KCJ0cmFuc2FjdGlvbkhhc2giKSwKICAgICAgICAgICAgInRyYW5zYWN0aW9uSW5kZXgiOiBvYmouZ2V0KCJ0cmFuc2FjdGlvbkluZGV4IiksCiAgICAgICAgICAgICJibG9ja0hhc2giOiBvYmouZ2V0KCJibG9ja0hhc2giKSwKICAgICAgICAgICAgImxvZ0luZGV4Ijogb2JqLmdldCgibG9nSW5kZXgiKSwKICAgICAgICAgICAgInJlbW92ZWQiOiBvYmouZ2V0KCJyZW1vdmVkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/typed_message_transaction_status_enum.py b/fireblocks/models/typed_message_transaction_status_enum.py index 62162089..8a706db2 100644 --- a/fireblocks/models/typed_message_transaction_status_enum.py +++ b/fireblocks/models/typed_message_transaction_status_enum.py @@ -1,52 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TypedMessageTransactionStatusEnum(str, Enum): - """ - Status of the typed message transaction from Fireblocks. For details, see [Primary transaction statuses](https://developers.fireblocks.com/reference/primary-transaction-statuses) - """ - - """ - allowed enum values - """ - SUBMITTED = 'SUBMITTED' - QUEUED = 'QUEUED' - PENDING_SIGNATURE = 'PENDING_SIGNATURE' - PENDING_AUTHORIZATION = 'PENDING_AUTHORIZATION' - PENDING_3_RD_PARTY_MANUAL_APPROVAL = 'PENDING_3RD_PARTY_MANUAL_APPROVAL' - PENDING_3_RD_PARTY = 'PENDING_3RD_PARTY' - BROADCASTING = 'BROADCASTING' - PENDING_AML_SCREENING = 'PENDING_AML_SCREENING' - CONFIRMING = 'CONFIRMING' - PARTIALLY_COMPLETED = 'PARTIALLY_COMPLETED' - PENDING_EMAIL_APPROVAL = 'PENDING_EMAIL_APPROVAL' - CANCELLED = 'CANCELLED' - REJECTED = 'REJECTED' - FAILED = 'FAILED' - TIMEOUT = 'TIMEOUT' - BLOCKED = 'BLOCKED' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TypedMessageTransactionStatusEnum from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBUeXBlZE1lc3NhZ2VUcmFuc2FjdGlvblN0YXR1c0VudW0oc3RyLCBFbnVtKToKICAgICIiIgogICAgU3RhdHVzIG9mIHRoZSB0eXBlZCBtZXNzYWdlIHRyYW5zYWN0aW9uIGZyb20gRmlyZWJsb2Nrcy4gRm9yIGRldGFpbHMsIHNlZSBbUHJpbWFyeSB0cmFuc2FjdGlvbiBzdGF0dXNlc10oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tL3JlZmVyZW5jZS9wcmltYXJ5LXRyYW5zYWN0aW9uLXN0YXR1c2VzKQogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIFNVQk1JVFRFRCA9ICdTVUJNSVRURUQnCiAgICBRVUVVRUQgPSAnUVVFVUVEJwogICAgUEVORElOR19TSUdOQVRVUkUgPSAnUEVORElOR19TSUdOQVRVUkUnCiAgICBQRU5ESU5HX0FVVEhPUklaQVRJT04gPSAnUEVORElOR19BVVRIT1JJWkFUSU9OJwogICAgUEVORElOR18zX1JEX1BBUlRZX01BTlVBTF9BUFBST1ZBTCA9ICdQRU5ESU5HXzNSRF9QQVJUWV9NQU5VQUxfQVBQUk9WQUwnCiAgICBQRU5ESU5HXzNfUkRfUEFSVFkgPSAnUEVORElOR18zUkRfUEFSVFknCiAgICBCUk9BRENBU1RJTkcgPSAnQlJPQURDQVNUSU5HJwogICAgUEVORElOR19BTUxfU0NSRUVOSU5HID0gJ1BFTkRJTkdfQU1MX1NDUkVFTklORycKICAgIENPTkZJUk1JTkcgPSAnQ09ORklSTUlORycKICAgIFBBUlRJQUxMWV9DT01QTEVURUQgPSAnUEFSVElBTExZX0NPTVBMRVRFRCcKICAgIFBFTkRJTkdfRU1BSUxfQVBQUk9WQUwgPSAnUEVORElOR19FTUFJTF9BUFBST1ZBTCcKICAgIENBTkNFTExFRCA9ICdDQU5DRUxMRUQnCiAgICBSRUpFQ1RFRCA9ICdSRUpFQ1RFRCcKICAgIEZBSUxFRCA9ICdGQUlMRUQnCiAgICBUSU1FT1VUID0gJ1RJTUVPVVQnCiAgICBCTE9DS0VEID0gJ0JMT0NLRUQnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVHlwZWRNZXNzYWdlVHJhbnNhY3Rpb25TdGF0dXNFbnVtIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/unfreeze_transaction_response.py b/fireblocks/models/unfreeze_transaction_response.py index 42b26a46..6aa2006b 100644 --- a/fireblocks/models/unfreeze_transaction_response.py +++ b/fireblocks/models/unfreeze_transaction_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictBool -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class UnfreezeTransactionResponse(BaseModel): - """ - UnfreezeTransactionResponse - """ # noqa: E501 - success: Optional[StrictBool] = None - __properties: ClassVar[List[str]] = ["success"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UnfreezeTransactionResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UnfreezeTransactionResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "success": obj.get("success") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RCb29sCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBVbmZyZWV6ZVRyYW5zYWN0aW9uUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgVW5mcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBzdWNjZXNzOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3VjY2VzcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVW5mcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFVuZnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJzdWNjZXNzIjogb2JqLmdldCgic3VjY2VzcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/unmanaged_wallet.py b/fireblocks/models/unmanaged_wallet.py index 13074db5..8726dbcf 100644 --- a/fireblocks/models/unmanaged_wallet.py +++ b/fireblocks/models/unmanaged_wallet.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.wallet_asset import WalletAsset -from typing import Optional, Set -from typing_extensions import Self - -class UnmanagedWallet(BaseModel): - """ - UnmanagedWallet - """ # noqa: E501 - id: StrictStr - name: StrictStr - customer_ref_id: Optional[StrictStr] = Field(default=None, alias="customerRefId") - assets: List[WalletAsset] - __properties: ClassVar[List[str]] = ["id", "name", "customerRefId", "assets"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UnmanagedWallet from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in assets (list) - _items = [] - if self.assets: - for _item_assets in self.assets: - if _item_assets: - _items.append(_item_assets.to_dict()) - _dict['assets'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UnmanagedWallet from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name"), - "customerRefId": obj.get("customerRefId"), - "assets": [WalletAsset.from_dict(_item) for _item in obj["assets"]] if obj.get("assets") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLndhbGxldF9hc3NldCBpbXBvcnQgV2FsbGV0QXNzZXQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVW5tYW5hZ2VkV2FsbGV0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFVubWFuYWdlZFdhbGxldAogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0cgogICAgbmFtZTogU3RyaWN0U3RyCiAgICBjdXN0b21lcl9yZWZfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJjdXN0b21lclJlZklkIikKICAgIGFzc2V0czogTGlzdFtXYWxsZXRBc3NldF0KICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAibmFtZSIsICJjdXN0b21lclJlZklkIiwgImFzc2V0cyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVW5tYW5hZ2VkV2FsbGV0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGFzc2V0cyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuYXNzZXRzOgogICAgICAgICAgICBmb3IgX2l0ZW1fYXNzZXRzIGluIHNlbGYuYXNzZXRzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fYXNzZXRzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fYXNzZXRzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2Fzc2V0cyddID0gX2l0ZW1zCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVbm1hbmFnZWRXYWxsZXQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKSwKICAgICAgICAgICAgImN1c3RvbWVyUmVmSWQiOiBvYmouZ2V0KCJjdXN0b21lclJlZklkIiksCiAgICAgICAgICAgICJhc3NldHMiOiBbV2FsbGV0QXNzZXQuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJhc3NldHMiXV0gaWYgb2JqLmdldCgiYXNzZXRzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/unspent_input.py b/fireblocks/models/unspent_input.py index e35743a9..ec7cf381 100644 --- a/fireblocks/models/unspent_input.py +++ b/fireblocks/models/unspent_input.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class UnspentInput(BaseModel): - """ - UnspentInput - """ # noqa: E501 - tx_hash: Optional[StrictStr] = Field(default=None, alias="txHash") - index: Optional[Union[StrictFloat, StrictInt]] = None - __properties: ClassVar[List[str]] = ["txHash", "index"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UnspentInput from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UnspentInput from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "txHash": obj.get("txHash"), - "index": obj.get("index") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVW5zcGVudElucHV0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFVuc3BlbnRJbnB1dAogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHhfaGFzaDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InR4SGFzaCIpCiAgICBpbmRleDogT3B0aW9uYWxbVW5pb25bU3RyaWN0RmxvYXQsIFN0cmljdEludF1dID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ0eEhhc2giLCAiaW5kZXgiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFVuc3BlbnRJbnB1dCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVbnNwZW50SW5wdXQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHhIYXNoIjogb2JqLmdldCgidHhIYXNoIiksCiAgICAgICAgICAgICJpbmRleCI6IG9iai5nZXQoImluZGV4IikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/unspent_inputs_response.py b/fireblocks/models/unspent_inputs_response.py index 187d4d1b..e3349690 100644 --- a/fireblocks/models/unspent_inputs_response.py +++ b/fireblocks/models/unspent_inputs_response.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from fireblocks.models.unspent_input import UnspentInput -from typing import Optional, Set -from typing_extensions import Self - -class UnspentInputsResponse(BaseModel): - """ - UnspentInputsResponse - """ # noqa: E501 - input: Optional[UnspentInput] = None - address: Optional[StrictStr] = None - amount: Optional[StrictStr] = None - confirmations: Optional[Union[StrictFloat, StrictInt]] = None - status: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["input", "address", "amount", "confirmations", "status"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UnspentInputsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of input - if self.input: - _dict['input'] = self.input.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UnspentInputsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "input": UnspentInput.from_dict(obj["input"]) if obj.get("input") is not None else None, - "address": obj.get("address"), - "amount": obj.get("amount"), - "confirmations": obj.get("confirmations"), - "status": obj.get("status") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RGbG9hdCwgU3RyaWN0SW50LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVuc3BlbnRfaW5wdXQgaW1wb3J0IFVuc3BlbnRJbnB1dApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBVbnNwZW50SW5wdXRzUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgVW5zcGVudElucHV0c1Jlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpbnB1dDogT3B0aW9uYWxbVW5zcGVudElucHV0XSA9IE5vbmUKICAgIGFkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBhbW91bnQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBjb25maXJtYXRpb25zOiBPcHRpb25hbFtVbmlvbltTdHJpY3RGbG9hdCwgU3RyaWN0SW50XV0gPSBOb25lCiAgICBzdGF0dXM6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlucHV0IiwgImFkZHJlc3MiLCAiYW1vdW50IiwgImNvbmZpcm1hdGlvbnMiLCAic3RhdHVzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVbnNwZW50SW5wdXRzUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBpbnB1dAogICAgICAgIGlmIHNlbGYuaW5wdXQ6CiAgICAgICAgICAgIF9kaWN0WydpbnB1dCddID0gc2VsZi5pbnB1dC50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFVuc3BlbnRJbnB1dHNSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpbnB1dCI6IFVuc3BlbnRJbnB1dC5mcm9tX2RpY3Qob2JqWyJpbnB1dCJdKSBpZiBvYmouZ2V0KCJpbnB1dCIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgImFkZHJlc3MiOiBvYmouZ2V0KCJhZGRyZXNzIiksCiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKSwKICAgICAgICAgICAgImNvbmZpcm1hdGlvbnMiOiBvYmouZ2V0KCJjb25maXJtYXRpb25zIiksCiAgICAgICAgICAgICJzdGF0dXMiOiBvYmouZ2V0KCJzdGF0dXMiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/unstake_request.py b/fireblocks/models/unstake_request.py index 7cb9caf6..815665e2 100644 --- a/fireblocks/models/unstake_request.py +++ b/fireblocks/models/unstake_request.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.fee_level import FeeLevel -from typing import Optional, Set -from typing_extensions import Self - -class UnstakeRequest(BaseModel): - """ - UnstakeRequest - """ # noqa: E501 - id: StrictStr = Field(description="id of position to unstake") - fee: Optional[StrictStr] = Field(default=None, description="Represents the fee for a transaction, which can be specified as a percentage value. Only one of fee/feeLevel is required.") - fee_level: Optional[FeeLevel] = Field(default=None, alias="feeLevel") - tx_note: Optional[StrictStr] = Field(default=None, description="The note to associate with the transactions.", alias="txNote") - amount: Optional[StrictStr] = Field(default=None, description="Amount of tokens to unstake. Only supported for liquid staking (Lido) to enable partial unstaking. For other chains, this field is ignored and the entire position will be unstaked. If not provided, the entire position will be unstaked.") - __properties: ClassVar[List[str]] = ["id", "fee", "feeLevel", "txNote", "amount"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UnstakeRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UnstakeRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "fee": obj.get("fee"), - "feeLevel": obj.get("feeLevel"), - "txNote": obj.get("txNote"), - "amount": obj.get("amount") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZV9sZXZlbCBpbXBvcnQgRmVlTGV2ZWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVW5zdGFrZVJlcXVlc3QoQmFzZU1vZGVsKToKICAgICIiIgogICAgVW5zdGFrZVJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iaWQgb2YgcG9zaXRpb24gdG8gdW5zdGFrZSIpCiAgICBmZWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSZXByZXNlbnRzIHRoZSBmZWUgZm9yIGEgdHJhbnNhY3Rpb24sIHdoaWNoIGNhbiBiZSBzcGVjaWZpZWQgYXMgYSBwZXJjZW50YWdlIHZhbHVlLiBPbmx5IG9uZSBvZiBmZWUvZmVlTGV2ZWwgaXMgcmVxdWlyZWQuIikKICAgIGZlZV9sZXZlbDogT3B0aW9uYWxbRmVlTGV2ZWxdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZmVlTGV2ZWwiKQogICAgdHhfbm90ZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBub3RlIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSB0cmFuc2FjdGlvbnMuIiwgYWxpYXM9InR4Tm90ZSIpCiAgICBhbW91bnQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBbW91bnQgb2YgdG9rZW5zIHRvIHVuc3Rha2UuIE9ubHkgc3VwcG9ydGVkIGZvciBsaXF1aWQgc3Rha2luZyAoTGlkbykgdG8gZW5hYmxlIHBhcnRpYWwgdW5zdGFraW5nLiBGb3Igb3RoZXIgY2hhaW5zLCB0aGlzIGZpZWxkIGlzIGlnbm9yZWQgYW5kIHRoZSBlbnRpcmUgcG9zaXRpb24gd2lsbCBiZSB1bnN0YWtlZC4gSWYgbm90IHByb3ZpZGVkLCB0aGUgZW50aXJlIHBvc2l0aW9uIHdpbGwgYmUgdW5zdGFrZWQuIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAiZmVlIiwgImZlZUxldmVsIiwgInR4Tm90ZSIsICJhbW91bnQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFVuc3Rha2VSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFVuc3Rha2VSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgImZlZSI6IG9iai5nZXQoImZlZSIpLAogICAgICAgICAgICAiZmVlTGV2ZWwiOiBvYmouZ2V0KCJmZWVMZXZlbCIpLAogICAgICAgICAgICAidHhOb3RlIjogb2JqLmdldCgidHhOb3RlIiksCiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/update_asset_user_metadata_request.py b/fireblocks/models/update_asset_user_metadata_request.py index 27c16252..5b813b44 100644 --- a/fireblocks/models/update_asset_user_metadata_request.py +++ b/fireblocks/models/update_asset_user_metadata_request.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.asset_metadata_request import AssetMetadataRequest -from typing import Optional, Set -from typing_extensions import Self - -class UpdateAssetUserMetadataRequest(BaseModel): - """ - UpdateAssetUserMetadataRequest - """ # noqa: E501 - metadata: Optional[AssetMetadataRequest] = None - __properties: ClassVar[List[str]] = ["metadata"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UpdateAssetUserMetadataRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of metadata - if self.metadata: - _dict['metadata'] = self.metadata.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UpdateAssetUserMetadataRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "metadata": AssetMetadataRequest.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0CmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X21ldGFkYXRhX3JlcXVlc3QgaW1wb3J0IEFzc2V0TWV0YWRhdGFSZXF1ZXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFVwZGF0ZUFzc2V0VXNlck1ldGFkYXRhUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBVcGRhdGVBc3NldFVzZXJNZXRhZGF0YVJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG1ldGFkYXRhOiBPcHRpb25hbFtBc3NldE1ldGFkYXRhUmVxdWVzdF0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm1ldGFkYXRhIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVcGRhdGVBc3NldFVzZXJNZXRhZGF0YVJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBtZXRhZGF0YQogICAgICAgIGlmIHNlbGYubWV0YWRhdGE6CiAgICAgICAgICAgIF9kaWN0WydtZXRhZGF0YSddID0gc2VsZi5tZXRhZGF0YS50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFVwZGF0ZUFzc2V0VXNlck1ldGFkYXRhUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJtZXRhZGF0YSI6IEFzc2V0TWV0YWRhdGFSZXF1ZXN0LmZyb21fZGljdChvYmpbIm1ldGFkYXRhIl0pIGlmIG9iai5nZXQoIm1ldGFkYXRhIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/update_callback_handler_request.py b/fireblocks/models/update_callback_handler_request.py index 8734fc22..99deb28d 100644 --- a/fireblocks/models/update_callback_handler_request.py +++ b/fireblocks/models/update_callback_handler_request.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.callback_handler_request import CallbackHandlerRequest -from typing import Optional, Set -from typing_extensions import Self - -class UpdateCallbackHandlerRequest(BaseModel): - """ - UpdateCallbackHandlerRequest - """ # noqa: E501 - callback_handler: Optional[CallbackHandlerRequest] = Field(default=None, alias="callbackHandler") - __properties: ClassVar[List[str]] = ["callbackHandler"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UpdateCallbackHandlerRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of callback_handler - if self.callback_handler: - _dict['callbackHandler'] = self.callback_handler.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UpdateCallbackHandlerRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "callbackHandler": CallbackHandlerRequest.from_dict(obj["callbackHandler"]) if obj.get("callbackHandler") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5jYWxsYmFja19oYW5kbGVyX3JlcXVlc3QgaW1wb3J0IENhbGxiYWNrSGFuZGxlclJlcXVlc3QKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBjYWxsYmFja19oYW5kbGVyOiBPcHRpb25hbFtDYWxsYmFja0hhbmRsZXJSZXF1ZXN0XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImNhbGxiYWNrSGFuZGxlciIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImNhbGxiYWNrSGFuZGxlciJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGNhbGxiYWNrX2hhbmRsZXIKICAgICAgICBpZiBzZWxmLmNhbGxiYWNrX2hhbmRsZXI6CiAgICAgICAgICAgIF9kaWN0WydjYWxsYmFja0hhbmRsZXInXSA9IHNlbGYuY2FsbGJhY2tfaGFuZGxlci50b19kaWN0KCkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFVwZGF0ZUNhbGxiYWNrSGFuZGxlclJlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiY2FsbGJhY2tIYW5kbGVyIjogQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdC5mcm9tX2RpY3Qob2JqWyJjYWxsYmFja0hhbmRsZXIiXSkgaWYgb2JqLmdldCgiY2FsbGJhY2tIYW5kbGVyIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/update_callback_handler_response.py b/fireblocks/models/update_callback_handler_response.py index d31138d4..b9b25ec0 100644 --- a/fireblocks/models/update_callback_handler_response.py +++ b/fireblocks/models/update_callback_handler_response.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.callback_handler_request import CallbackHandlerRequest -from typing import Optional, Set -from typing_extensions import Self - -class UpdateCallbackHandlerResponse(BaseModel): - """ - UpdateCallbackHandlerResponse - """ # noqa: E501 - id: StrictStr = Field(description="The unique identifier of the API key") - callback_handler: Optional[CallbackHandlerRequest] = Field(default=None, alias="callbackHandler") - __properties: ClassVar[List[str]] = ["id", "callbackHandler"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UpdateCallbackHandlerResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of callback_handler - if self.callback_handler: - _dict['callbackHandler'] = self.callback_handler.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UpdateCallbackHandlerResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "callbackHandler": CallbackHandlerRequest.from_dict(obj["callbackHandler"]) if obj.get("callbackHandler") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNhbGxiYWNrX2hhbmRsZXJfcmVxdWVzdCBpbXBvcnQgQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIEFQSSBrZXkiKQogICAgY2FsbGJhY2tfaGFuZGxlcjogT3B0aW9uYWxbQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJjYWxsYmFja0hhbmRsZXIiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJjYWxsYmFja0hhbmRsZXIiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFVwZGF0ZUNhbGxiYWNrSGFuZGxlclJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgY2FsbGJhY2tfaGFuZGxlcgogICAgICAgIGlmIHNlbGYuY2FsbGJhY2tfaGFuZGxlcjoKICAgICAgICAgICAgX2RpY3RbJ2NhbGxiYWNrSGFuZGxlciddID0gc2VsZi5jYWxsYmFja19oYW5kbGVyLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAiY2FsbGJhY2tIYW5kbGVyIjogQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdC5mcm9tX2RpY3Qob2JqWyJjYWxsYmFja0hhbmRsZXIiXSkgaWYgb2JqLmdldCgiY2FsbGJhY2tIYW5kbGVyIikgaXMgbm90IE5vbmUgZWxzZSBOb25lCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/update_draft_request.py b/fireblocks/models/update_draft_request.py index bcaa650d..624fc5b9 100644 --- a/fireblocks/models/update_draft_request.py +++ b/fireblocks/models/update_draft_request.py @@ -1,99 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List -from fireblocks.models.policy_rule import PolicyRule -from fireblocks.models.policy_type import PolicyType -from typing import Optional, Set -from typing_extensions import Self - -class UpdateDraftRequest(BaseModel): - """ - Request schema for updating draft with policy types and rules - """ # noqa: E501 - policy_types: List[PolicyType] = Field(alias="policyTypes") - rules: List[PolicyRule] = Field(description="Array of policy rules") - __properties: ClassVar[List[str]] = ["policyTypes", "rules"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UpdateDraftRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in rules (list) - _items = [] - if self.rules: - for _item_rules in self.rules: - if _item_rules: - _items.append(_item_rules.to_dict()) - _dict['rules'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UpdateDraftRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "policyTypes": obj.get("policyTypes"), - "rules": [PolicyRule.from_dict(_item) for _item in obj["rules"]] if obj.get("rules") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9ydWxlIGltcG9ydCBQb2xpY3lSdWxlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3R5cGUgaW1wb3J0IFBvbGljeVR5cGUKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVXBkYXRlRHJhZnRSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFJlcXVlc3Qgc2NoZW1hIGZvciB1cGRhdGluZyBkcmFmdCB3aXRoIHBvbGljeSB0eXBlcyBhbmQgcnVsZXMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHBvbGljeV90eXBlczogTGlzdFtQb2xpY3lUeXBlXSA9IEZpZWxkKGFsaWFzPSJwb2xpY3lUeXBlcyIpCiAgICBydWxlczogTGlzdFtQb2xpY3lSdWxlXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJBcnJheSBvZiBwb2xpY3kgcnVsZXMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJwb2xpY3lUeXBlcyIsICJydWxlcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXBkYXRlRHJhZnRSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIHJ1bGVzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5ydWxlczoKICAgICAgICAgICAgZm9yIF9pdGVtX3J1bGVzIGluIHNlbGYucnVsZXM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9ydWxlczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX3J1bGVzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ3J1bGVzJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFVwZGF0ZURyYWZ0UmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJwb2xpY3lUeXBlcyI6IG9iai5nZXQoInBvbGljeVR5cGVzIiksCiAgICAgICAgICAgICJydWxlcyI6IFtQb2xpY3lSdWxlLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsicnVsZXMiXV0gaWYgb2JqLmdldCgicnVsZXMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/update_tag_request.py b/fireblocks/models/update_tag_request.py index 28d65955..19d7e2ba 100644 --- a/fireblocks/models/update_tag_request.py +++ b/fireblocks/models/update_tag_request.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class UpdateTagRequest(BaseModel): - """ - UpdateTagRequest - """ # noqa: E501 - label: Optional[StrictStr] = Field(default=None, description="The tag label") - description: Optional[StrictStr] = Field(default=None, description="Description for the tag") - __properties: ClassVar[List[str]] = ["label", "description"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UpdateTagRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UpdateTagRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "label": obj.get("label"), - "description": obj.get("description") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBVcGRhdGVUYWdSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFVwZGF0ZVRhZ1JlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGxhYmVsOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHRhZyBsYWJlbCIpCiAgICBkZXNjcmlwdGlvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRlc2NyaXB0aW9uIGZvciB0aGUgdGFnIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsibGFiZWwiLCAiZGVzY3JpcHRpb24iXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFVwZGF0ZVRhZ1JlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXBkYXRlVGFnUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJsYWJlbCI6IG9iai5nZXQoImxhYmVsIiksCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IG9iai5nZXQoImRlc2NyaXB0aW9uIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/update_token_ownership_status_dto.py b/fireblocks/models/update_token_ownership_status_dto.py index 58314a56..c27fd186 100644 --- a/fireblocks/models/update_token_ownership_status_dto.py +++ b/fireblocks/models/update_token_ownership_status_dto.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class UpdateTokenOwnershipStatusDto(BaseModel): - """ - UpdateTokenOwnershipStatusDto - """ # noqa: E501 - status: StrictStr - __properties: ClassVar[List[str]] = ["status"] - - @field_validator('status') - def status_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['LISTED', 'ARCHIVED']): - raise ValueError("must be one of enum values ('LISTED', 'ARCHIVED')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UpdateTokenOwnershipStatusDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UpdateTokenOwnershipStatusDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "status": obj.get("status") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBVcGRhdGVUb2tlbk93bmVyc2hpcFN0YXR1c0R0byhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBVcGRhdGVUb2tlbk93bmVyc2hpcFN0YXR1c0R0bwogICAgIiIiICMgbm9xYTogRTUwMQogICAgc3RhdHVzOiBTdHJpY3RTdHIKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsic3RhdHVzIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdzdGF0dXMnKQogICAgZGVmIHN0YXR1c192YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydMSVNURUQnLCAnQVJDSElWRUQnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnTElTVEVEJywgJ0FSQ0hJVkVEJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFVwZGF0ZVRva2VuT3duZXJzaGlwU3RhdHVzRHRvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFVwZGF0ZVRva2VuT3duZXJzaGlwU3RhdHVzRHRvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/update_vault_account_asset_address_request.py b/fireblocks/models/update_vault_account_asset_address_request.py index 60e51e75..f56844f9 100644 --- a/fireblocks/models/update_vault_account_asset_address_request.py +++ b/fireblocks/models/update_vault_account_asset_address_request.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class UpdateVaultAccountAssetAddressRequest(BaseModel): - """ - UpdateVaultAccountAssetAddressRequest - """ # noqa: E501 - description: Optional[StrictStr] = Field(default=None, description="The address description") - __properties: ClassVar[List[str]] = ["description"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UpdateVaultAccountAssetAddressRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UpdateVaultAccountAssetAddressRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "description": obj.get("description") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBVcGRhdGVWYXVsdEFjY291bnRBc3NldEFkZHJlc3NSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFVwZGF0ZVZhdWx0QWNjb3VudEFzc2V0QWRkcmVzc1JlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGRlc2NyaXB0aW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGFkZHJlc3MgZGVzY3JpcHRpb24iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJkZXNjcmlwdGlvbiJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXBkYXRlVmF1bHRBY2NvdW50QXNzZXRBZGRyZXNzUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVcGRhdGVWYXVsdEFjY291bnRBc3NldEFkZHJlc3NSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogb2JqLmdldCgiZGVzY3JpcHRpb24iKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/update_vault_account_request.py b/fireblocks/models/update_vault_account_request.py index 7c7659c9..cdd5c8cc 100644 --- a/fireblocks/models/update_vault_account_request.py +++ b/fireblocks/models/update_vault_account_request.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class UpdateVaultAccountRequest(BaseModel): - """ - UpdateVaultAccountRequest - """ # noqa: E501 - name: Optional[StrictStr] = Field(default=None, description="Account Name") - __properties: ClassVar[List[str]] = ["name"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UpdateVaultAccountRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UpdateVaultAccountRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBVcGRhdGVWYXVsdEFjY291bnRSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFVwZGF0ZVZhdWx0QWNjb3VudFJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIG5hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBY2NvdW50IE5hbWUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJuYW1lIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVcGRhdGVWYXVsdEFjY291bnRSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFVwZGF0ZVZhdWx0QWNjb3VudFJlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/update_webhook_request.py b/fireblocks/models/update_webhook_request.py index 9d4c79a2..27cd5878 100644 --- a/fireblocks/models/update_webhook_request.py +++ b/fireblocks/models/update_webhook_request.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from fireblocks.models.webhook_event import WebhookEvent -from typing import Optional, Set -from typing_extensions import Self - -class UpdateWebhookRequest(BaseModel): - """ - UpdateWebhookRequest - """ # noqa: E501 - url: Optional[Annotated[str, Field(min_length=1, strict=True)]] = Field(default=None, description="The url of the webhook where notifications will be sent. URL must be valid, unique and https.") - description: Optional[Annotated[str, Field(min_length=1, strict=True)]] = Field(default=None, description="description of the webhook of what it is used for.should not contain special characters.") - events: Optional[List[WebhookEvent]] = Field(default=None, description="The events that the webhook will be subscribed to") - enabled: Optional[StrictBool] = Field(default=None, description="The status of the webhook") - __properties: ClassVar[List[str]] = ["url", "description", "events", "enabled"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UpdateWebhookRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UpdateWebhookRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "url": obj.get("url"), - "description": obj.get("description"), - "events": obj.get("events"), - "enabled": obj.get("enabled") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud2ViaG9va19ldmVudCBpbXBvcnQgV2ViaG9va0V2ZW50CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFVwZGF0ZVdlYmhvb2tSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFVwZGF0ZVdlYmhvb2tSZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB1cmw6IE9wdGlvbmFsW0Fubm90YXRlZFtzdHIsIEZpZWxkKG1pbl9sZW5ndGg9MSwgc3RyaWN0PVRydWUpXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgdXJsIG9mIHRoZSB3ZWJob29rIHdoZXJlIG5vdGlmaWNhdGlvbnMgd2lsbCBiZSBzZW50LiBVUkwgbXVzdCBiZSB2YWxpZCwgdW5pcXVlIGFuZCBodHRwcy4iKQogICAgZGVzY3JpcHRpb246IE9wdGlvbmFsW0Fubm90YXRlZFtzdHIsIEZpZWxkKG1pbl9sZW5ndGg9MSwgc3RyaWN0PVRydWUpXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJkZXNjcmlwdGlvbiBvZiB0aGUgd2ViaG9vayBvZiB3aGF0IGl0IGlzIHVzZWQgZm9yLnNob3VsZCBub3QgY29udGFpbiBzcGVjaWFsIGNoYXJhY3RlcnMuIikKICAgIGV2ZW50czogT3B0aW9uYWxbTGlzdFtXZWJob29rRXZlbnRdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBldmVudHMgdGhhdCB0aGUgd2ViaG9vayB3aWxsIGJlIHN1YnNjcmliZWQgdG8iKQogICAgZW5hYmxlZDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgc3RhdHVzIG9mIHRoZSB3ZWJob29rIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidXJsIiwgImRlc2NyaXB0aW9uIiwgImV2ZW50cyIsICJlbmFibGVkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVcGRhdGVXZWJob29rUmVxdWVzdCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVcGRhdGVXZWJob29rUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ1cmwiOiBvYmouZ2V0KCJ1cmwiKSwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogb2JqLmdldCgiZGVzY3JpcHRpb24iKSwKICAgICAgICAgICAgImV2ZW50cyI6IG9iai5nZXQoImV2ZW50cyIpLAogICAgICAgICAgICAiZW5hYmxlZCI6IG9iai5nZXQoImVuYWJsZWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/us_wire_address.py b/fireblocks/models/us_wire_address.py index 1db31c50..eb3ead6d 100644 --- a/fireblocks/models/us_wire_address.py +++ b/fireblocks/models/us_wire_address.py @@ -1,104 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.account_holder_details import AccountHolderDetails -from fireblocks.models.bank_address import BankAddress -from typing import Optional, Set -from typing_extensions import Self - -class USWireAddress(BaseModel): - """ - USWireAddress - """ # noqa: E501 - account_holder: AccountHolderDetails = Field(alias="accountHolder") - bank_name: Optional[StrictStr] = Field(default=None, description="Name of the bank.", alias="bankName") - bank_account_number: StrictStr = Field(description="The bank account number for the wire transfer.", alias="bankAccountNumber") - routing_number: StrictStr = Field(description="Routing number identifying the bank account.", alias="routingNumber") - bank_address: Optional[BankAddress] = Field(default=None, alias="bankAddress") - __properties: ClassVar[List[str]] = ["accountHolder", "bankName", "bankAccountNumber", "routingNumber", "bankAddress"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of USWireAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of account_holder - if self.account_holder: - _dict['accountHolder'] = self.account_holder.to_dict() - # override the default output from pydantic by calling `to_dict()` of bank_address - if self.bank_address: - _dict['bankAddress'] = self.bank_address.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of USWireAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountHolder": AccountHolderDetails.from_dict(obj["accountHolder"]) if obj.get("accountHolder") is not None else None, - "bankName": obj.get("bankName"), - "bankAccountNumber": obj.get("bankAccountNumber"), - "routingNumber": obj.get("routingNumber"), - "bankAddress": BankAddress.from_dict(obj["bankAddress"]) if obj.get("bankAddress") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaG9sZGVyX2RldGFpbHMgaW1wb3J0IEFjY291bnRIb2xkZXJEZXRhaWxzCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYmFua19hZGRyZXNzIGltcG9ydCBCYW5rQWRkcmVzcwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBVU1dpcmVBZGRyZXNzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFVTV2lyZUFkZHJlc3MKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFjY291bnRfaG9sZGVyOiBBY2NvdW50SG9sZGVyRGV0YWlscyA9IEZpZWxkKGFsaWFzPSJhY2NvdW50SG9sZGVyIikKICAgIGJhbmtfbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249Ik5hbWUgb2YgdGhlIGJhbmsuIiwgYWxpYXM9ImJhbmtOYW1lIikKICAgIGJhbmtfYWNjb3VudF9udW1iZXI6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmFuayBhY2NvdW50IG51bWJlciBmb3IgdGhlIHdpcmUgdHJhbnNmZXIuIiwgYWxpYXM9ImJhbmtBY2NvdW50TnVtYmVyIikKICAgIHJvdXRpbmdfbnVtYmVyOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iUm91dGluZyBudW1iZXIgaWRlbnRpZnlpbmcgdGhlIGJhbmsgYWNjb3VudC4iLCBhbGlhcz0icm91dGluZ051bWJlciIpCiAgICBiYW5rX2FkZHJlc3M6IE9wdGlvbmFsW0JhbmtBZGRyZXNzXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImJhbmtBZGRyZXNzIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYWNjb3VudEhvbGRlciIsICJiYW5rTmFtZSIsICJiYW5rQWNjb3VudE51bWJlciIsICJyb3V0aW5nTnVtYmVyIiwgImJhbmtBZGRyZXNzIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVU1dpcmVBZGRyZXNzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYWNjb3VudF9ob2xkZXIKICAgICAgICBpZiBzZWxmLmFjY291bnRfaG9sZGVyOgogICAgICAgICAgICBfZGljdFsnYWNjb3VudEhvbGRlciddID0gc2VsZi5hY2NvdW50X2hvbGRlci50b19kaWN0KCkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgYmFua19hZGRyZXNzCiAgICAgICAgaWYgc2VsZi5iYW5rX2FkZHJlc3M6CiAgICAgICAgICAgIF9kaWN0WydiYW5rQWRkcmVzcyddID0gc2VsZi5iYW5rX2FkZHJlc3MudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVU1dpcmVBZGRyZXNzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFjY291bnRIb2xkZXIiOiBBY2NvdW50SG9sZGVyRGV0YWlscy5mcm9tX2RpY3Qob2JqWyJhY2NvdW50SG9sZGVyIl0pIGlmIG9iai5nZXQoImFjY291bnRIb2xkZXIiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJiYW5rTmFtZSI6IG9iai5nZXQoImJhbmtOYW1lIiksCiAgICAgICAgICAgICJiYW5rQWNjb3VudE51bWJlciI6IG9iai5nZXQoImJhbmtBY2NvdW50TnVtYmVyIiksCiAgICAgICAgICAgICJyb3V0aW5nTnVtYmVyIjogb2JqLmdldCgicm91dGluZ051bWJlciIpLAogICAgICAgICAgICAiYmFua0FkZHJlc3MiOiBCYW5rQWRkcmVzcy5mcm9tX2RpY3Qob2JqWyJiYW5rQWRkcmVzcyJdKSBpZiBvYmouZ2V0KCJiYW5rQWRkcmVzcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/us_wire_destination.py b/fireblocks/models/us_wire_destination.py index 7237e72e..c726eadf 100644 --- a/fireblocks/models/us_wire_destination.py +++ b/fireblocks/models/us_wire_destination.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from fireblocks.models.us_wire_address import USWireAddress -from typing import Optional, Set -from typing_extensions import Self - -class USWireDestination(BaseModel): - """ - USWireDestination - """ # noqa: E501 - type: StrictStr - address: USWireAddress - __properties: ClassVar[List[str]] = ["type", "address"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['WIRE']): - raise ValueError("must be one of enum values ('WIRE')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of USWireDestination from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of address - if self.address: - _dict['address'] = self.address.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of USWireDestination from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "type": obj.get("type"), - "address": USWireAddress.from_dict(obj["address"]) if obj.get("address") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzX3dpcmVfYWRkcmVzcyBpbXBvcnQgVVNXaXJlQWRkcmVzcwpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBVU1dpcmVEZXN0aW5hdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBVU1dpcmVEZXN0aW5hdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHlwZTogU3RyaWN0U3RyCiAgICBhZGRyZXNzOiBVU1dpcmVBZGRyZXNzCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInR5cGUiLCAiYWRkcmVzcyJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigndHlwZScpCiAgICBkZWYgdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydXSVJFJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ1dJUkUnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVVNXaXJlRGVzdGluYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhZGRyZXNzCiAgICAgICAgaWYgc2VsZi5hZGRyZXNzOgogICAgICAgICAgICBfZGljdFsnYWRkcmVzcyddID0gc2VsZi5hZGRyZXNzLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVVNXaXJlRGVzdGluYXRpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidHlwZSI6IG9iai5nZXQoInR5cGUiKSwKICAgICAgICAgICAgImFkZHJlc3MiOiBVU1dpcmVBZGRyZXNzLmZyb21fZGljdChvYmpbImFkZHJlc3MiXSkgaWYgb2JqLmdldCgiYWRkcmVzcyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/us_wire_payment_info.py b/fireblocks/models/us_wire_payment_info.py index c02531d7..a504402e 100644 --- a/fireblocks/models/us_wire_payment_info.py +++ b/fireblocks/models/us_wire_payment_info.py @@ -1,130 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class UsWirePaymentInfo(BaseModel): - """ - US Wire payment information for US domestic wire transfers - """ # noqa: E501 - rail: StrictStr = Field(description="The payment rail type for US wire transfers") - addressing_system: StrictStr = Field(description="The addressing system used for US wire transfers", alias="addressingSystem") - account_holder_given_name: StrictStr = Field(description="The given name (first name) of the account holder", alias="accountHolderGivenName") - account_holder_surname: StrictStr = Field(description="The surname (last name) of the account holder", alias="accountHolderSurname") - country: StrictStr = Field(description="The country for the transfer (ISO 3166-1 alpha-2 code)") - account_number: StrictStr = Field(description="The bank account number", alias="accountNumber") - routing_number: StrictStr = Field(description="The bank routing number (ABA routing number)", alias="routingNumber") - swift_code: StrictStr = Field(description="The SWIFT/BIC code of the bank", alias="swiftCode") - bank_name: StrictStr = Field(description="The name of the bank", alias="bankName") - bank_address_line: StrictStr = Field(description="The street address of the bank", alias="bankAddressLine") - bank_address_city: StrictStr = Field(description="The city where the bank is located", alias="bankAddressCity") - bank_address_state: Optional[StrictStr] = Field(default=None, description="The state where the bank is located", alias="bankAddressState") - bank_address_country: StrictStr = Field(description="The country where the bank is located (ISO 3166-1 alpha-2 code)", alias="bankAddressCountry") - bank_address_postal_code: StrictStr = Field(description="The postal code of the bank's address", alias="bankAddressPostalCode") - branch_number: Optional[StrictStr] = Field(default=None, description="The branch number of the bank", alias="branchNumber") - __properties: ClassVar[List[str]] = ["rail", "addressingSystem", "accountHolderGivenName", "accountHolderSurname", "country", "accountNumber", "routingNumber", "swiftCode", "bankName", "bankAddressLine", "bankAddressCity", "bankAddressState", "bankAddressCountry", "bankAddressPostalCode", "branchNumber"] - - @field_validator('rail') - def rail_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['US_WIRE']): - raise ValueError("must be one of enum values ('US_WIRE')") - return value - - @field_validator('addressing_system') - def addressing_system_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['ABA']): - raise ValueError("must be one of enum values ('ABA')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UsWirePaymentInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UsWirePaymentInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "rail": obj.get("rail"), - "addressingSystem": obj.get("addressingSystem"), - "accountHolderGivenName": obj.get("accountHolderGivenName"), - "accountHolderSurname": obj.get("accountHolderSurname"), - "country": obj.get("country"), - "accountNumber": obj.get("accountNumber"), - "routingNumber": obj.get("routingNumber"), - "swiftCode": obj.get("swiftCode"), - "bankName": obj.get("bankName"), - "bankAddressLine": obj.get("bankAddressLine"), - "bankAddressCity": obj.get("bankAddressCity"), - "bankAddressState": obj.get("bankAddressState"), - "bankAddressCountry": obj.get("bankAddressCountry"), - "bankAddressPostalCode": obj.get("bankAddressPostalCode"), - "branchNumber": obj.get("branchNumber") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFVzV2lyZVBheW1lbnRJbmZvKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFVTIFdpcmUgcGF5bWVudCBpbmZvcm1hdGlvbiBmb3IgVVMgZG9tZXN0aWMgd2lyZSB0cmFuc2ZlcnMKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHJhaWw6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgcGF5bWVudCByYWlsIHR5cGUgZm9yIFVTIHdpcmUgdHJhbnNmZXJzIikKICAgIGFkZHJlc3Npbmdfc3lzdGVtOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGFkZHJlc3Npbmcgc3lzdGVtIHVzZWQgZm9yIFVTIHdpcmUgdHJhbnNmZXJzIiwgYWxpYXM9ImFkZHJlc3NpbmdTeXN0ZW0iKQogICAgYWNjb3VudF9ob2xkZXJfZ2l2ZW5fbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBnaXZlbiBuYW1lIChmaXJzdCBuYW1lKSBvZiB0aGUgYWNjb3VudCBob2xkZXIiLCBhbGlhcz0iYWNjb3VudEhvbGRlckdpdmVuTmFtZSIpCiAgICBhY2NvdW50X2hvbGRlcl9zdXJuYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHN1cm5hbWUgKGxhc3QgbmFtZSkgb2YgdGhlIGFjY291bnQgaG9sZGVyIiwgYWxpYXM9ImFjY291bnRIb2xkZXJTdXJuYW1lIikKICAgIGNvdW50cnk6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgY291bnRyeSBmb3IgdGhlIHRyYW5zZmVyIChJU08gMzE2Ni0xIGFscGhhLTIgY29kZSkiKQogICAgYWNjb3VudF9udW1iZXI6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgYmFuayBhY2NvdW50IG51bWJlciIsIGFsaWFzPSJhY2NvdW50TnVtYmVyIikKICAgIHJvdXRpbmdfbnVtYmVyOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGJhbmsgcm91dGluZyBudW1iZXIgKEFCQSByb3V0aW5nIG51bWJlcikiLCBhbGlhcz0icm91dGluZ051bWJlciIpCiAgICBzd2lmdF9jb2RlOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIFNXSUZUL0JJQyBjb2RlIG9mIHRoZSBiYW5rIiwgYWxpYXM9InN3aWZ0Q29kZSIpCiAgICBiYW5rX25hbWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgbmFtZSBvZiB0aGUgYmFuayIsIGFsaWFzPSJiYW5rTmFtZSIpCiAgICBiYW5rX2FkZHJlc3NfbGluZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBzdHJlZXQgYWRkcmVzcyBvZiB0aGUgYmFuayIsIGFsaWFzPSJiYW5rQWRkcmVzc0xpbmUiKQogICAgYmFua19hZGRyZXNzX2NpdHk6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgY2l0eSB3aGVyZSB0aGUgYmFuayBpcyBsb2NhdGVkIiwgYWxpYXM9ImJhbmtBZGRyZXNzQ2l0eSIpCiAgICBiYW5rX2FkZHJlc3Nfc3RhdGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgc3RhdGUgd2hlcmUgdGhlIGJhbmsgaXMgbG9jYXRlZCIsIGFsaWFzPSJiYW5rQWRkcmVzc1N0YXRlIikKICAgIGJhbmtfYWRkcmVzc19jb3VudHJ5OiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIGNvdW50cnkgd2hlcmUgdGhlIGJhbmsgaXMgbG9jYXRlZCAoSVNPIDMxNjYtMSBhbHBoYS0yIGNvZGUpIiwgYWxpYXM9ImJhbmtBZGRyZXNzQ291bnRyeSIpCiAgICBiYW5rX2FkZHJlc3NfcG9zdGFsX2NvZGU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgcG9zdGFsIGNvZGUgb2YgdGhlIGJhbmsncyBhZGRyZXNzIiwgYWxpYXM9ImJhbmtBZGRyZXNzUG9zdGFsQ29kZSIpCiAgICBicmFuY2hfbnVtYmVyOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGJyYW5jaCBudW1iZXIgb2YgdGhlIGJhbmsiLCBhbGlhcz0iYnJhbmNoTnVtYmVyIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsicmFpbCIsICJhZGRyZXNzaW5nU3lzdGVtIiwgImFjY291bnRIb2xkZXJHaXZlbk5hbWUiLCAiYWNjb3VudEhvbGRlclN1cm5hbWUiLCAiY291bnRyeSIsICJhY2NvdW50TnVtYmVyIiwgInJvdXRpbmdOdW1iZXIiLCAic3dpZnRDb2RlIiwgImJhbmtOYW1lIiwgImJhbmtBZGRyZXNzTGluZSIsICJiYW5rQWRkcmVzc0NpdHkiLCAiYmFua0FkZHJlc3NTdGF0ZSIsICJiYW5rQWRkcmVzc0NvdW50cnkiLCAiYmFua0FkZHJlc3NQb3N0YWxDb2RlIiwgImJyYW5jaE51bWJlciJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcigncmFpbCcpCiAgICBkZWYgcmFpbF92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydVU19XSVJFJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ1VTX1dJUkUnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWRkcmVzc2luZ19zeXN0ZW0nKQogICAgZGVmIGFkZHJlc3Npbmdfc3lzdGVtX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0FCQSddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdBQkEnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXNXaXJlUGF5bWVudEluZm8gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXNXaXJlUGF5bWVudEluZm8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAicmFpbCI6IG9iai5nZXQoInJhaWwiKSwKICAgICAgICAgICAgImFkZHJlc3NpbmdTeXN0ZW0iOiBvYmouZ2V0KCJhZGRyZXNzaW5nU3lzdGVtIiksCiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyR2l2ZW5OYW1lIjogb2JqLmdldCgiYWNjb3VudEhvbGRlckdpdmVuTmFtZSIpLAogICAgICAgICAgICAiYWNjb3VudEhvbGRlclN1cm5hbWUiOiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyU3VybmFtZSIpLAogICAgICAgICAgICAiY291bnRyeSI6IG9iai5nZXQoImNvdW50cnkiKSwKICAgICAgICAgICAgImFjY291bnROdW1iZXIiOiBvYmouZ2V0KCJhY2NvdW50TnVtYmVyIiksCiAgICAgICAgICAgICJyb3V0aW5nTnVtYmVyIjogb2JqLmdldCgicm91dGluZ051bWJlciIpLAogICAgICAgICAgICAic3dpZnRDb2RlIjogb2JqLmdldCgic3dpZnRDb2RlIiksCiAgICAgICAgICAgICJiYW5rTmFtZSI6IG9iai5nZXQoImJhbmtOYW1lIiksCiAgICAgICAgICAgICJiYW5rQWRkcmVzc0xpbmUiOiBvYmouZ2V0KCJiYW5rQWRkcmVzc0xpbmUiKSwKICAgICAgICAgICAgImJhbmtBZGRyZXNzQ2l0eSI6IG9iai5nZXQoImJhbmtBZGRyZXNzQ2l0eSIpLAogICAgICAgICAgICAiYmFua0FkZHJlc3NTdGF0ZSI6IG9iai5nZXQoImJhbmtBZGRyZXNzU3RhdGUiKSwKICAgICAgICAgICAgImJhbmtBZGRyZXNzQ291bnRyeSI6IG9iai5nZXQoImJhbmtBZGRyZXNzQ291bnRyeSIpLAogICAgICAgICAgICAiYmFua0FkZHJlc3NQb3N0YWxDb2RlIjogb2JqLmdldCgiYmFua0FkZHJlc3NQb3N0YWxDb2RlIiksCiAgICAgICAgICAgICJicmFuY2hOdW1iZXIiOiBvYmouZ2V0KCJicmFuY2hOdW1iZXIiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/user_group_create_request.py b/fireblocks/models/user_group_create_request.py index 34a0df79..284fd3bf 100644 --- a/fireblocks/models/user_group_create_request.py +++ b/fireblocks/models/user_group_create_request.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class UserGroupCreateRequest(BaseModel): - """ - UserGroupCreateRequest - """ # noqa: E501 - group_name: Optional[StrictStr] = Field(default=None, alias="groupName") - member_ids: Optional[List[StrictStr]] = Field(default=None, alias="memberIds") - __properties: ClassVar[List[str]] = ["groupName", "memberIds"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UserGroupCreateRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UserGroupCreateRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "groupName": obj.get("groupName"), - "memberIds": obj.get("memberIds") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBVc2VyR3JvdXBDcmVhdGVSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFVzZXJHcm91cENyZWF0ZVJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGdyb3VwX25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJncm91cE5hbWUiKQogICAgbWVtYmVyX2lkczogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im1lbWJlcklkcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImdyb3VwTmFtZSIsICJtZW1iZXJJZHMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFVzZXJHcm91cENyZWF0ZVJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXNlckdyb3VwQ3JlYXRlUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJncm91cE5hbWUiOiBvYmouZ2V0KCJncm91cE5hbWUiKSwKICAgICAgICAgICAgIm1lbWJlcklkcyI6IG9iai5nZXQoIm1lbWJlcklkcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/user_group_create_response.py b/fireblocks/models/user_group_create_response.py index 8bf3cf52..db402d25 100644 --- a/fireblocks/models/user_group_create_response.py +++ b/fireblocks/models/user_group_create_response.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class UserGroupCreateResponse(BaseModel): - """ - UserGroupCreateResponse - """ # noqa: E501 - name: Optional[StrictStr] = None - id: Optional[StrictStr] = None - member_ids: Optional[List[StrictStr]] = Field(default=None, alias="memberIds") - status: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["name", "id", "memberIds", "status"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UserGroupCreateResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UserGroupCreateResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "name": obj.get("name"), - "id": obj.get("id"), - "memberIds": obj.get("memberIds"), - "status": obj.get("status") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBVc2VyR3JvdXBDcmVhdGVSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBVc2VyR3JvdXBDcmVhdGVSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgbmFtZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIGlkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgbWVtYmVyX2lkczogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im1lbWJlcklkcyIpCiAgICBzdGF0dXM6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbIm5hbWUiLCAiaWQiLCAibWVtYmVySWRzIiwgInN0YXR1cyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXNlckdyb3VwQ3JlYXRlUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXNlckdyb3VwQ3JlYXRlUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKSwKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgIm1lbWJlcklkcyI6IG9iai5nZXQoIm1lbWJlcklkcyIpLAogICAgICAgICAgICAic3RhdHVzIjogb2JqLmdldCgic3RhdHVzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/user_group_response.py b/fireblocks/models/user_group_response.py index d7f76368..8b6e5ac3 100644 --- a/fireblocks/models/user_group_response.py +++ b/fireblocks/models/user_group_response.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class UserGroupResponse(BaseModel): - """ - UserGroupResponse - """ # noqa: E501 - id: Optional[StrictStr] = None - name: Optional[StrictStr] = None - status: Optional[StrictStr] = None - member_ids: Optional[List[StrictStr]] = Field(default=None, alias="memberIds") - __properties: ClassVar[List[str]] = ["id", "name", "status", "memberIds"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UserGroupResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UserGroupResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name"), - "status": obj.get("status"), - "memberIds": obj.get("memberIds") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBVc2VyR3JvdXBSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBVc2VyR3JvdXBSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBuYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgc3RhdHVzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgbWVtYmVyX2lkczogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im1lbWJlcklkcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgIm5hbWUiLCAic3RhdHVzIiwgIm1lbWJlcklkcyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXNlckdyb3VwUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXNlckdyb3VwUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAibmFtZSI6IG9iai5nZXQoIm5hbWUiKSwKICAgICAgICAgICAgInN0YXR1cyI6IG9iai5nZXQoInN0YXR1cyIpLAogICAgICAgICAgICAibWVtYmVySWRzIjogb2JqLmdldCgibWVtYmVySWRzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/user_group_update_request.py b/fireblocks/models/user_group_update_request.py index c1143c1e..3eca1c71 100644 --- a/fireblocks/models/user_group_update_request.py +++ b/fireblocks/models/user_group_update_request.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class UserGroupUpdateRequest(BaseModel): - """ - UserGroupUpdateRequest - """ # noqa: E501 - group_name: Optional[StrictStr] = Field(default=None, alias="groupName") - member_ids: Optional[List[StrictStr]] = Field(default=None, alias="memberIds") - __properties: ClassVar[List[str]] = ["groupName", "memberIds"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UserGroupUpdateRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UserGroupUpdateRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "groupName": obj.get("groupName"), - "memberIds": obj.get("memberIds") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBVc2VyR3JvdXBVcGRhdGVSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFVzZXJHcm91cFVwZGF0ZVJlcXVlc3QKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGdyb3VwX25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJncm91cE5hbWUiKQogICAgbWVtYmVyX2lkczogT3B0aW9uYWxbTGlzdFtTdHJpY3RTdHJdXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im1lbWJlcklkcyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImdyb3VwTmFtZSIsICJtZW1iZXJJZHMiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFVzZXJHcm91cFVwZGF0ZVJlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXNlckdyb3VwVXBkYXRlUmVxdWVzdCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJncm91cE5hbWUiOiBvYmouZ2V0KCJncm91cE5hbWUiKSwKICAgICAgICAgICAgIm1lbWJlcklkcyI6IG9iai5nZXQoIm1lbWJlcklkcyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/user_response.py b/fireblocks/models/user_response.py index 380c80ed..91e7f271 100644 --- a/fireblocks/models/user_response.py +++ b/fireblocks/models/user_response.py @@ -1,98 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class UserResponse(BaseModel): - """ - UserResponse - """ # noqa: E501 - id: Optional[StrictStr] = None - first_name: Optional[StrictStr] = Field(default=None, alias="firstName") - last_name: Optional[StrictStr] = Field(default=None, alias="lastName") - role: Optional[StrictStr] = None - email: Optional[StrictStr] = None - enabled: Optional[StrictBool] = None - __properties: ClassVar[List[str]] = ["id", "firstName", "lastName", "role", "email", "enabled"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UserResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UserResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "firstName": obj.get("firstName"), - "lastName": obj.get("lastName"), - "role": obj.get("role"), - "email": obj.get("email"), - "enabled": obj.get("enabled") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBVc2VyUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgVXNlclJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIGZpcnN0X25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJmaXJzdE5hbWUiKQogICAgbGFzdF9uYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0ibGFzdE5hbWUiKQogICAgcm9sZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIGVtYWlsOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgZW5hYmxlZDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgImZpcnN0TmFtZSIsICJsYXN0TmFtZSIsICJyb2xlIiwgImVtYWlsIiwgImVuYWJsZWQiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFVzZXJSZXNwb25zZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVc2VyUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAiZmlyc3ROYW1lIjogb2JqLmdldCgiZmlyc3ROYW1lIiksCiAgICAgICAgICAgICJsYXN0TmFtZSI6IG9iai5nZXQoImxhc3ROYW1lIiksCiAgICAgICAgICAgICJyb2xlIjogb2JqLmdldCgicm9sZSIpLAogICAgICAgICAgICAiZW1haWwiOiBvYmouZ2V0KCJlbWFpbCIpLAogICAgICAgICAgICAiZW5hYmxlZCI6IG9iai5nZXQoImVuYWJsZWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/user_role.py b/fireblocks/models/user_role.py index 6204f495..8b3986e6 100644 --- a/fireblocks/models/user_role.py +++ b/fireblocks/models/user_role.py @@ -1,47 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class UserRole(str, Enum): - """ - The role of the user - """ - - """ - allowed enum values - """ - OWNER = 'OWNER' - ADMIN = 'ADMIN' - SIGNER = 'SIGNER' - COLLATERALS_SIGNER = 'COLLATERALS_SIGNER' - EDITOR = 'EDITOR' - APPROVER = 'APPROVER' - VIEWER = 'VIEWER' - NON_SIGNING_ADMIN = 'NON_SIGNING_ADMIN' - AUDITOR = 'AUDITOR' - NCW_ADMIN = 'NCW_ADMIN' - NCW_SIGNER = 'NCW_SIGNER' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of UserRole from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBVc2VyUm9sZShzdHIsIEVudW0pOgogICAgIiIiCiAgICBUaGUgcm9sZSBvZiB0aGUgdXNlcgogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIE9XTkVSID0gJ09XTkVSJwogICAgQURNSU4gPSAnQURNSU4nCiAgICBTSUdORVIgPSAnU0lHTkVSJwogICAgQ09MTEFURVJBTFNfU0lHTkVSID0gJ0NPTExBVEVSQUxTX1NJR05FUicKICAgIEVESVRPUiA9ICdFRElUT1InCiAgICBBUFBST1ZFUiA9ICdBUFBST1ZFUicKICAgIFZJRVdFUiA9ICdWSUVXRVInCiAgICBOT05fU0lHTklOR19BRE1JTiA9ICdOT05fU0lHTklOR19BRE1JTicKICAgIEFVRElUT1IgPSAnQVVESVRPUicKICAgIE5DV19BRE1JTiA9ICdOQ1dfQURNSU4nCiAgICBOQ1dfU0lHTkVSID0gJ05DV19TSUdORVInCiAgICBTRUNVUklUWV9BRE1JTiA9ICdTRUNVUklUWV9BRE1JTicKICAgIFNFQ1VSSVRZX0FVRElUT1IgPSAnU0VDVVJJVFlfQVVESVRPUicKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVc2VyUm9sZSBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzKGpzb24ubG9hZHMoanNvbl9zdHIpKQoKCg== \ No newline at end of file diff --git a/fireblocks/models/user_status.py b/fireblocks/models/user_status.py index 0c27005c..90118af7 100644 --- a/fireblocks/models/user_status.py +++ b/fireblocks/models/user_status.py @@ -1,40 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class UserStatus(str, Enum): - """ - The status of the user - """ - - """ - allowed enum values - """ - PENDING_ACTIVATION = 'PENDING_ACTIVATION' - PENDING_DEVICE_PAIRING = 'PENDING_DEVICE_PAIRING' - PENDING_DEVICE_SETUP = 'PENDING_DEVICE_SETUP' - READY = 'READY' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of UserStatus from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBVc2VyU3RhdHVzKHN0ciwgRW51bSk6CiAgICAiIiIKICAgIFRoZSBzdGF0dXMgb2YgdGhlIHVzZXIKICAgICIiIgoKICAgICIiIgogICAgYWxsb3dlZCBlbnVtIHZhbHVlcwogICAgIiIiCiAgICBQRU5ESU5HX0FDVElWQVRJT04gPSAnUEVORElOR19BQ1RJVkFUSU9OJwogICAgUEVORElOR19ERVZJQ0VfUEFJUklORyA9ICdQRU5ESU5HX0RFVklDRV9QQUlSSU5HJwogICAgUEVORElOR19ERVZJQ0VfU0VUVVAgPSAnUEVORElOR19ERVZJQ0VfU0VUVVAnCiAgICBSRUFEWSA9ICdSRUFEWScKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBTZWxmOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBVc2VyU3RhdHVzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/user_type.py b/fireblocks/models/user_type.py index 25b16c63..1fcde695 100644 --- a/fireblocks/models/user_type.py +++ b/fireblocks/models/user_type.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class UserType(str, Enum): - """ - The type of the user - """ - - """ - allowed enum values - """ - API = 'API' - CONSOLE = 'CONSOLE' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of UserType from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBVc2VyVHlwZShzdHIsIEVudW0pOgogICAgIiIiCiAgICBUaGUgdHlwZSBvZiB0aGUgdXNlcgogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIEFQSSA9ICdBUEknCiAgICBDT05TT0xFID0gJ0NPTlNPTEUnCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVXNlclR5cGUgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscyhqc29uLmxvYWRzKGpzb25fc3RyKSkKCgo= \ No newline at end of file diff --git a/fireblocks/models/validate_address_response.py b/fireblocks/models/validate_address_response.py index 9257e017..98b56e96 100644 --- a/fireblocks/models/validate_address_response.py +++ b/fireblocks/models/validate_address_response.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class ValidateAddressResponse(BaseModel): - """ - ValidateAddressResponse - """ # noqa: E501 - is_valid: Optional[StrictBool] = Field(default=None, alias="isValid") - is_active: Optional[StrictBool] = Field(default=None, alias="isActive") - requires_tag: Optional[StrictBool] = Field(default=None, alias="requiresTag") - __properties: ClassVar[List[str]] = ["isValid", "isActive", "requiresTag"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ValidateAddressResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ValidateAddressResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "isValid": obj.get("isValid"), - "isActive": obj.get("isActive"), - "requiresTag": obj.get("requiresTag") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVmFsaWRhdGVBZGRyZXNzUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgVmFsaWRhdGVBZGRyZXNzUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlzX3ZhbGlkOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImlzVmFsaWQiKQogICAgaXNfYWN0aXZlOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImlzQWN0aXZlIikKICAgIHJlcXVpcmVzX3RhZzogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJyZXF1aXJlc1RhZyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlzVmFsaWQiLCAiaXNBY3RpdmUiLCAicmVxdWlyZXNUYWciXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFZhbGlkYXRlQWRkcmVzc1Jlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFZhbGlkYXRlQWRkcmVzc1Jlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlzVmFsaWQiOiBvYmouZ2V0KCJpc1ZhbGlkIiksCiAgICAgICAgICAgICJpc0FjdGl2ZSI6IG9iai5nZXQoImlzQWN0aXZlIiksCiAgICAgICAgICAgICJyZXF1aXJlc1RhZyI6IG9iai5nZXQoInJlcXVpcmVzVGFnIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/validate_layer_zero_channel_response.py b/fireblocks/models/validate_layer_zero_channel_response.py index 6a289c47..daa84769 100644 --- a/fireblocks/models/validate_layer_zero_channel_response.py +++ b/fireblocks/models/validate_layer_zero_channel_response.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class ValidateLayerZeroChannelResponse(BaseModel): - """ - ValidateLayerZeroChannelResponse - """ # noqa: E501 - correct: StrictBool = Field(description="Indicates whether the LayerZero channel configuration is valid.") - errors: List[StrictStr] = Field(description="List of errors found during validation. An empty array indicates no errors.") - __properties: ClassVar[List[str]] = ["correct", "errors"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ValidateLayerZeroChannelResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ValidateLayerZeroChannelResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "correct": obj.get("correct"), - "errors": obj.get("errors") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFZhbGlkYXRlTGF5ZXJaZXJvQ2hhbm5lbFJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFZhbGlkYXRlTGF5ZXJaZXJvQ2hhbm5lbFJlc3BvbnNlCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBjb3JyZWN0OiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IkluZGljYXRlcyB3aGV0aGVyIHRoZSBMYXllclplcm8gY2hhbm5lbCBjb25maWd1cmF0aW9uIGlzIHZhbGlkLiIpCiAgICBlcnJvcnM6IExpc3RbU3RyaWN0U3RyXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJMaXN0IG9mIGVycm9ycyBmb3VuZCBkdXJpbmcgdmFsaWRhdGlvbi4gQW4gZW1wdHkgYXJyYXkgaW5kaWNhdGVzIG5vIGVycm9ycy4iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJjb3JyZWN0IiwgImVycm9ycyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmFsaWRhdGVMYXllclplcm9DaGFubmVsUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmFsaWRhdGVMYXllclplcm9DaGFubmVsUmVzcG9uc2UgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiY29ycmVjdCI6IG9iai5nZXQoImNvcnJlY3QiKSwKICAgICAgICAgICAgImVycm9ycyI6IG9iai5nZXQoImVycm9ycyIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/validation_key_dto.py b/fireblocks/models/validation_key_dto.py index fc1f1cf1..e1a5deb9 100644 --- a/fireblocks/models/validation_key_dto.py +++ b/fireblocks/models/validation_key_dto.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class ValidationKeyDto(BaseModel): - """ - ValidationKeyDto - """ # noqa: E501 - key_id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field(description="External validation key id set by Fireblocks.", alias="keyId") - public_key_pem: StrictStr = Field(description="PEM encoded public key used for the validation.", alias="publicKeyPem") - days_till_expired: Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]] = Field(alias="daysTillExpired") - enabled: StrictBool = Field(description="True if the validation key is enabled.") - created_at: Union[StrictFloat, StrictInt] = Field(description="Creation date (timestamp) in milliseconds.", alias="createdAt") - __properties: ClassVar[List[str]] = ["keyId", "publicKeyPem", "daysTillExpired", "enabled", "createdAt"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ValidationKeyDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ValidationKeyDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "keyId": obj.get("keyId"), - "publicKeyPem": obj.get("publicKeyPem"), - "daysTillExpired": obj.get("daysTillExpired"), - "enabled": obj.get("enabled"), - "createdAt": obj.get("createdAt") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBVbmlvbgpmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVmFsaWRhdGlvbktleUR0byhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBWYWxpZGF0aW9uS2V5RHRvCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBrZXlfaWQ6IEFubm90YXRlZFtzdHIsIEZpZWxkKG1pbl9sZW5ndGg9MzYsIHN0cmljdD1UcnVlLCBtYXhfbGVuZ3RoPTM2KV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iRXh0ZXJuYWwgdmFsaWRhdGlvbiBrZXkgaWQgc2V0IGJ5IEZpcmVibG9ja3MuIiwgYWxpYXM9ImtleUlkIikKICAgIHB1YmxpY19rZXlfcGVtOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iUEVNIGVuY29kZWQgcHVibGljIGtleSB1c2VkIGZvciB0aGUgdmFsaWRhdGlvbi4iLCBhbGlhcz0icHVibGljS2V5UGVtIikKICAgIGRheXNfdGlsbF9leHBpcmVkOiBVbmlvbltBbm5vdGF0ZWRbZmxvYXQsIEZpZWxkKHN0cmljdD1UcnVlLCBnZT0xKV0sIEFubm90YXRlZFtpbnQsIEZpZWxkKHN0cmljdD1UcnVlLCBnZT0xKV1dID0gRmllbGQoYWxpYXM9ImRheXNUaWxsRXhwaXJlZCIpCiAgICBlbmFibGVkOiBTdHJpY3RCb29sID0gRmllbGQoZGVzY3JpcHRpb249IlRydWUgaWYgdGhlIHZhbGlkYXRpb24ga2V5IGlzIGVuYWJsZWQuIikKICAgIGNyZWF0ZWRfYXQ6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoZGVzY3JpcHRpb249IkNyZWF0aW9uIGRhdGUgKHRpbWVzdGFtcCkgaW4gbWlsbGlzZWNvbmRzLiIsIGFsaWFzPSJjcmVhdGVkQXQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJrZXlJZCIsICJwdWJsaWNLZXlQZW0iLCAiZGF5c1RpbGxFeHBpcmVkIiwgImVuYWJsZWQiLCAiY3JlYXRlZEF0Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWYWxpZGF0aW9uS2V5RHRvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFZhbGlkYXRpb25LZXlEdG8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAia2V5SWQiOiBvYmouZ2V0KCJrZXlJZCIpLAogICAgICAgICAgICAicHVibGljS2V5UGVtIjogb2JqLmdldCgicHVibGljS2V5UGVtIiksCiAgICAgICAgICAgICJkYXlzVGlsbEV4cGlyZWQiOiBvYmouZ2V0KCJkYXlzVGlsbEV4cGlyZWQiKSwKICAgICAgICAgICAgImVuYWJsZWQiOiBvYmouZ2V0KCJlbmFibGVkIiksCiAgICAgICAgICAgICJjcmVhdGVkQXQiOiBvYmouZ2V0KCJjcmVhdGVkQXQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/validator.py b/fireblocks/models/validator.py index 5a4bb1c0..24eb3176 100644 --- a/fireblocks/models/validator.py +++ b/fireblocks/models/validator.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from typing import Optional, Set -from typing_extensions import Self - -class Validator(BaseModel): - """ - Validator - """ # noqa: E501 - chain_descriptor: StrictStr = Field(description="The protocol identifier (e.g. \"ETH\"/\"SOL\") of the validator", alias="chainDescriptor") - fee_percent: Union[StrictFloat, StrictInt] = Field(description="The service fee as a percentage out of the earned rewards", alias="feePercent") - is_private: Optional[StrictBool] = Field(default=None, description="Is the validator private, i.e created by the user", alias="isPrivate") - __properties: ClassVar[List[str]] = ["chainDescriptor", "feePercent", "isPrivate"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of Validator from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of Validator from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "chainDescriptor": obj.get("chainDescriptor"), - "feePercent": obj.get("feePercent"), - "isPrivate": obj.get("isPrivate") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0RmxvYXQsIFN0cmljdEludCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVW5pb24KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVmFsaWRhdG9yKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFZhbGlkYXRvcgogICAgIiIiICMgbm9xYTogRTUwMQogICAgY2hhaW5fZGVzY3JpcHRvcjogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBwcm90b2NvbCBpZGVudGlmaWVyIChlLmcuIFwiRVRIXCIvXCJTT0xcIikgb2YgdGhlIHZhbGlkYXRvciIsIGFsaWFzPSJjaGFpbkRlc2NyaXB0b3IiKQogICAgZmVlX3BlcmNlbnQ6IFVuaW9uW1N0cmljdEZsb2F0LCBTdHJpY3RJbnRdID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBzZXJ2aWNlIGZlZSBhcyBhIHBlcmNlbnRhZ2Ugb3V0IG9mIHRoZSBlYXJuZWQgcmV3YXJkcyIsIGFsaWFzPSJmZWVQZXJjZW50IikKICAgIGlzX3ByaXZhdGU6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSXMgdGhlIHZhbGlkYXRvciBwcml2YXRlLCBpLmUgY3JlYXRlZCBieSB0aGUgdXNlciIsIGFsaWFzPSJpc1ByaXZhdGUiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJjaGFpbkRlc2NyaXB0b3IiLCAiZmVlUGVyY2VudCIsICJpc1ByaXZhdGUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFZhbGlkYXRvciBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWYWxpZGF0b3IgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiY2hhaW5EZXNjcmlwdG9yIjogb2JqLmdldCgiY2hhaW5EZXNjcmlwdG9yIiksCiAgICAgICAgICAgICJmZWVQZXJjZW50Ijogb2JqLmdldCgiZmVlUGVyY2VudCIpLAogICAgICAgICAgICAiaXNQcml2YXRlIjogb2JqLmdldCgiaXNQcml2YXRlIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/vault_account.py b/fireblocks/models/vault_account.py index 51d699a4..705a19b8 100644 --- a/fireblocks/models/vault_account.py +++ b/fireblocks/models/vault_account.py @@ -1,116 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.tag import Tag -from fireblocks.models.vault_asset import VaultAsset -from typing import Optional, Set -from typing_extensions import Self - -class VaultAccount(BaseModel): - """ - VaultAccount - """ # noqa: E501 - id: Optional[StrictStr] = None - name: Optional[StrictStr] = None - assets: Optional[List[VaultAsset]] = None - hidden_on_ui: Optional[StrictBool] = Field(default=None, alias="hiddenOnUI") - customer_ref_id: Optional[StrictStr] = Field(default=None, alias="customerRefId") - auto_fuel: Optional[StrictBool] = Field(default=None, alias="autoFuel") - tags: Optional[List[Tag]] = Field(default=None, description="List of tags attached to the vault account") - __properties: ClassVar[List[str]] = ["id", "name", "assets", "hiddenOnUI", "customerRefId", "autoFuel", "tags"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of VaultAccount from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in assets (list) - _items = [] - if self.assets: - for _item_assets in self.assets: - if _item_assets: - _items.append(_item_assets.to_dict()) - _dict['assets'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in tags (list) - _items = [] - if self.tags: - for _item_tags in self.tags: - if _item_tags: - _items.append(_item_tags.to_dict()) - _dict['tags'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of VaultAccount from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name"), - "assets": [VaultAsset.from_dict(_item) for _item in obj["assets"]] if obj.get("assets") is not None else None, - "hiddenOnUI": obj.get("hiddenOnUI"), - "customerRefId": obj.get("customerRefId"), - "autoFuel": obj.get("autoFuel"), - "tags": [Tag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRhZyBpbXBvcnQgVGFnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmF1bHRfYXNzZXQgaW1wb3J0IFZhdWx0QXNzZXQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVmF1bHRBY2NvdW50KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFZhdWx0QWNjb3VudAogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBuYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgYXNzZXRzOiBPcHRpb25hbFtMaXN0W1ZhdWx0QXNzZXRdXSA9IE5vbmUKICAgIGhpZGRlbl9vbl91aTogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJoaWRkZW5PblVJIikKICAgIGN1c3RvbWVyX3JlZl9pZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImN1c3RvbWVyUmVmSWQiKQogICAgYXV0b19mdWVsOiBPcHRpb25hbFtTdHJpY3RCb29sXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImF1dG9GdWVsIikKICAgIHRhZ3M6IE9wdGlvbmFsW0xpc3RbVGFnXV0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJMaXN0IG9mIHRhZ3MgYXR0YWNoZWQgdG8gdGhlIHZhdWx0IGFjY291bnQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJuYW1lIiwgImFzc2V0cyIsICJoaWRkZW5PblVJIiwgImN1c3RvbWVyUmVmSWQiLCAiYXV0b0Z1ZWwiLCAidGFncyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmF1bHRBY2NvdW50IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGFzc2V0cyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYuYXNzZXRzOgogICAgICAgICAgICBmb3IgX2l0ZW1fYXNzZXRzIGluIHNlbGYuYXNzZXRzOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fYXNzZXRzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fYXNzZXRzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2Fzc2V0cyddID0gX2l0ZW1zCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGVhY2ggaXRlbSBpbiB0YWdzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi50YWdzOgogICAgICAgICAgICBmb3IgX2l0ZW1fdGFncyBpbiBzZWxmLnRhZ3M6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV90YWdzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fdGFncy50b19kaWN0KCkpCiAgICAgICAgICAgIF9kaWN0Wyd0YWdzJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFZhdWx0QWNjb3VudCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAiYXNzZXRzIjogW1ZhdWx0QXNzZXQuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJhc3NldHMiXV0gaWYgb2JqLmdldCgiYXNzZXRzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiaGlkZGVuT25VSSI6IG9iai5nZXQoImhpZGRlbk9uVUkiKSwKICAgICAgICAgICAgImN1c3RvbWVyUmVmSWQiOiBvYmouZ2V0KCJjdXN0b21lclJlZklkIiksCiAgICAgICAgICAgICJhdXRvRnVlbCI6IG9iai5nZXQoImF1dG9GdWVsIiksCiAgICAgICAgICAgICJ0YWdzIjogW1RhZy5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbInRhZ3MiXV0gaWYgb2JqLmdldCgidGFncyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/vault_account_tag_attachment_operation.py b/fireblocks/models/vault_account_tag_attachment_operation.py index 8445c33a..f041c907 100644 --- a/fireblocks/models/vault_account_tag_attachment_operation.py +++ b/fireblocks/models/vault_account_tag_attachment_operation.py @@ -1,93 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.tag_attachment_operation_action import TagAttachmentOperationAction -from typing import Optional, Set -from typing_extensions import Self - -class VaultAccountTagAttachmentOperation(BaseModel): - """ - VaultAccountTagAttachmentOperation - """ # noqa: E501 - vault_account_id: StrictStr = Field(description="The ID of the vault account", alias="vaultAccountId") - tag_id: StrictStr = Field(description="Tag ID", alias="tagId") - action: TagAttachmentOperationAction - __properties: ClassVar[List[str]] = ["vaultAccountId", "tagId", "action"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of VaultAccountTagAttachmentOperation from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of VaultAccountTagAttachmentOperation from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "vaultAccountId": obj.get("vaultAccountId"), - "tagId": obj.get("tagId"), - "action": obj.get("action") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudGFnX2F0dGFjaG1lbnRfb3BlcmF0aW9uX2FjdGlvbiBpbXBvcnQgVGFnQXR0YWNobWVudE9wZXJhdGlvbkFjdGlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50T3BlcmF0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRPcGVyYXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHZhdWx0X2FjY291bnRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQiLCBhbGlhcz0idmF1bHRBY2NvdW50SWQiKQogICAgdGFnX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGFnIElEIiwgYWxpYXM9InRhZ0lkIikKICAgIGFjdGlvbjogVGFnQXR0YWNobWVudE9wZXJhdGlvbkFjdGlvbgogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ2YXVsdEFjY291bnRJZCIsICJ0YWdJZCIsICJhY3Rpb24iXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRPcGVyYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudE9wZXJhdGlvbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ2YXVsdEFjY291bnRJZCI6IG9iai5nZXQoInZhdWx0QWNjb3VudElkIiksCiAgICAgICAgICAgICJ0YWdJZCI6IG9iai5nZXQoInRhZ0lkIiksCiAgICAgICAgICAgICJhY3Rpb24iOiBvYmouZ2V0KCJhY3Rpb24iKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/vault_account_tag_attachment_pending_operation.py b/fireblocks/models/vault_account_tag_attachment_pending_operation.py index cfec8f5a..8b4e47e4 100644 --- a/fireblocks/models/vault_account_tag_attachment_pending_operation.py +++ b/fireblocks/models/vault_account_tag_attachment_pending_operation.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from fireblocks.models.tag_attachment_operation_action import TagAttachmentOperationAction -from typing import Optional, Set -from typing_extensions import Self - -class VaultAccountTagAttachmentPendingOperation(BaseModel): - """ - VaultAccountTagAttachmentPendingOperation - """ # noqa: E501 - vault_account_id: StrictStr = Field(description="The ID of the vault account", alias="vaultAccountId") - tag_id: StrictStr = Field(description="Tag ID", alias="tagId") - action: TagAttachmentOperationAction - approval_request_id: StrictStr = Field(description="Pending approval request ID", alias="approvalRequestId") - __properties: ClassVar[List[str]] = ["vaultAccountId", "tagId", "action", "approvalRequestId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of VaultAccountTagAttachmentPendingOperation from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of VaultAccountTagAttachmentPendingOperation from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "vaultAccountId": obj.get("vaultAccountId"), - "tagId": obj.get("tagId"), - "action": obj.get("action"), - "approvalRequestId": obj.get("approvalRequestId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudGFnX2F0dGFjaG1lbnRfb3BlcmF0aW9uX2FjdGlvbiBpbXBvcnQgVGFnQXR0YWNobWVudE9wZXJhdGlvbkFjdGlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50UGVuZGluZ09wZXJhdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50UGVuZGluZ09wZXJhdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgdmF1bHRfYWNjb3VudF9pZDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRCBvZiB0aGUgdmF1bHQgYWNjb3VudCIsIGFsaWFzPSJ2YXVsdEFjY291bnRJZCIpCiAgICB0YWdfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUYWcgSUQiLCBhbGlhcz0idGFnSWQiKQogICAgYWN0aW9uOiBUYWdBdHRhY2htZW50T3BlcmF0aW9uQWN0aW9uCiAgICBhcHByb3ZhbF9yZXF1ZXN0X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iUGVuZGluZyBhcHByb3ZhbCByZXF1ZXN0IElEIiwgYWxpYXM9ImFwcHJvdmFsUmVxdWVzdElkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidmF1bHRBY2NvdW50SWQiLCAidGFnSWQiLCAiYWN0aW9uIiwgImFwcHJvdmFsUmVxdWVzdElkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50UGVuZGluZ09wZXJhdGlvbiBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50UGVuZGluZ09wZXJhdGlvbiBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJ2YXVsdEFjY291bnRJZCI6IG9iai5nZXQoInZhdWx0QWNjb3VudElkIiksCiAgICAgICAgICAgICJ0YWdJZCI6IG9iai5nZXQoInRhZ0lkIiksCiAgICAgICAgICAgICJhY3Rpb24iOiBvYmouZ2V0KCJhY3Rpb24iKSwKICAgICAgICAgICAgImFwcHJvdmFsUmVxdWVzdElkIjogb2JqLmdldCgiYXBwcm92YWxSZXF1ZXN0SWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/vault_account_tag_attachment_rejected_operation.py b/fireblocks/models/vault_account_tag_attachment_rejected_operation.py index baacf89e..3dca3d2d 100644 --- a/fireblocks/models/vault_account_tag_attachment_rejected_operation.py +++ b/fireblocks/models/vault_account_tag_attachment_rejected_operation.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List -from fireblocks.models.tag_attachment_operation_action import TagAttachmentOperationAction -from typing import Optional, Set -from typing_extensions import Self - -class VaultAccountTagAttachmentRejectedOperation(BaseModel): - """ - VaultAccountTagAttachmentRejectedOperation - """ # noqa: E501 - vault_account_id: StrictStr = Field(description="The ID of the vault account", alias="vaultAccountId") - tag_id: StrictStr = Field(description="Tag ID", alias="tagId") - action: TagAttachmentOperationAction - reason: StrictStr = Field(description="Reason for rejection") - __properties: ClassVar[List[str]] = ["vaultAccountId", "tagId", "action", "reason"] - - @field_validator('reason') - def reason_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['CAPACITY_EXCEEDED', 'ATTACHMENT_ALREADY_EXISTS', 'ATTACHMENT_DOES_NOT_EXIST', 'PENDING_REQUEST_EXISTS']): - raise ValueError("must be one of enum values ('CAPACITY_EXCEEDED', 'ATTACHMENT_ALREADY_EXISTS', 'ATTACHMENT_DOES_NOT_EXIST', 'PENDING_REQUEST_EXISTS')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of VaultAccountTagAttachmentRejectedOperation from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of VaultAccountTagAttachmentRejectedOperation from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "vaultAccountId": obj.get("vaultAccountId"), - "tagId": obj.get("tagId"), - "action": obj.get("action"), - "reason": obj.get("reason") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy50YWdfYXR0YWNobWVudF9vcGVyYXRpb25fYWN0aW9uIGltcG9ydCBUYWdBdHRhY2htZW50T3BlcmF0aW9uQWN0aW9uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRSZWplY3RlZE9wZXJhdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50UmVqZWN0ZWRPcGVyYXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIHZhdWx0X2FjY291bnRfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIHZhdWx0IGFjY291bnQiLCBhbGlhcz0idmF1bHRBY2NvdW50SWQiKQogICAgdGFnX2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGFnIElEIiwgYWxpYXM9InRhZ0lkIikKICAgIGFjdGlvbjogVGFnQXR0YWNobWVudE9wZXJhdGlvbkFjdGlvbgogICAgcmVhc29uOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iUmVhc29uIGZvciByZWplY3Rpb24iKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ2YXVsdEFjY291bnRJZCIsICJ0YWdJZCIsICJhY3Rpb24iLCAicmVhc29uIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdyZWFzb24nKQogICAgZGVmIHJlYXNvbl92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydDQVBBQ0lUWV9FWENFRURFRCcsICdBVFRBQ0hNRU5UX0FMUkVBRFlfRVhJU1RTJywgJ0FUVEFDSE1FTlRfRE9FU19OT1RfRVhJU1QnLCAnUEVORElOR19SRVFVRVNUX0VYSVNUUyddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdDQVBBQ0lUWV9FWENFRURFRCcsICdBVFRBQ0hNRU5UX0FMUkVBRFlfRVhJU1RTJywgJ0FUVEFDSE1FTlRfRE9FU19OT1RfRVhJU1QnLCAnUEVORElOR19SRVFVRVNUX0VYSVNUUycpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50UmVqZWN0ZWRPcGVyYXRpb24gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudFJlamVjdGVkT3BlcmF0aW9uIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInZhdWx0QWNjb3VudElkIjogb2JqLmdldCgidmF1bHRBY2NvdW50SWQiKSwKICAgICAgICAgICAgInRhZ0lkIjogb2JqLmdldCgidGFnSWQiKSwKICAgICAgICAgICAgImFjdGlvbiI6IG9iai5nZXQoImFjdGlvbiIpLAogICAgICAgICAgICAicmVhc29uIjogb2JqLmdldCgicmVhc29uIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/vault_accounts_paged_response.py b/fireblocks/models/vault_accounts_paged_response.py index be9839bd..70b36ff2 100644 --- a/fireblocks/models/vault_accounts_paged_response.py +++ b/fireblocks/models/vault_accounts_paged_response.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.vault_account import VaultAccount -from fireblocks.models.vault_accounts_paged_response_paging import VaultAccountsPagedResponsePaging -from typing import Optional, Set -from typing_extensions import Self - -class VaultAccountsPagedResponse(BaseModel): - """ - VaultAccountsPagedResponse - """ # noqa: E501 - accounts: Optional[List[VaultAccount]] = None - paging: Optional[VaultAccountsPagedResponsePaging] = None - previous_url: Optional[StrictStr] = Field(default=None, alias="previousUrl") - next_url: Optional[StrictStr] = Field(default=None, alias="nextUrl") - __properties: ClassVar[List[str]] = ["accounts", "paging", "previousUrl", "nextUrl"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of VaultAccountsPagedResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in accounts (list) - _items = [] - if self.accounts: - for _item_accounts in self.accounts: - if _item_accounts: - _items.append(_item_accounts.to_dict()) - _dict['accounts'] = _items - # override the default output from pydantic by calling `to_dict()` of paging - if self.paging: - _dict['paging'] = self.paging.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of VaultAccountsPagedResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accounts": [VaultAccount.from_dict(_item) for _item in obj["accounts"]] if obj.get("accounts") is not None else None, - "paging": VaultAccountsPagedResponsePaging.from_dict(obj["paging"]) if obj.get("paging") is not None else None, - "previousUrl": obj.get("previousUrl"), - "nextUrl": obj.get("nextUrl") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnQgaW1wb3J0IFZhdWx0QWNjb3VudApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnRzX3BhZ2VkX3Jlc3BvbnNlX3BhZ2luZyBpbXBvcnQgVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2VQYWdpbmcKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2UoQmFzZU1vZGVsKToKICAgICIiIgogICAgVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFjY291bnRzOiBPcHRpb25hbFtMaXN0W1ZhdWx0QWNjb3VudF1dID0gTm9uZQogICAgcGFnaW5nOiBPcHRpb25hbFtWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZVBhZ2luZ10gPSBOb25lCiAgICBwcmV2aW91c191cmw6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJwcmV2aW91c1VybCIpCiAgICBuZXh0X3VybDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9Im5leHRVcmwiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhY2NvdW50cyIsICJwYWdpbmciLCAicHJldmlvdXNVcmwiLCAibmV4dFVybCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gYWNjb3VudHMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmFjY291bnRzOgogICAgICAgICAgICBmb3IgX2l0ZW1fYWNjb3VudHMgaW4gc2VsZi5hY2NvdW50czoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2FjY291bnRzOgogICAgICAgICAgICAgICAgICAgIF9pdGVtcy5hcHBlbmQoX2l0ZW1fYWNjb3VudHMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnYWNjb3VudHMnXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBwYWdpbmcKICAgICAgICBpZiBzZWxmLnBhZ2luZzoKICAgICAgICAgICAgX2RpY3RbJ3BhZ2luZyddID0gc2VsZi5wYWdpbmcudG9fZGljdCgpCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhY2NvdW50cyI6IFtWYXVsdEFjY291bnQuZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJhY2NvdW50cyJdXSBpZiBvYmouZ2V0KCJhY2NvdW50cyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInBhZ2luZyI6IFZhdWx0QWNjb3VudHNQYWdlZFJlc3BvbnNlUGFnaW5nLmZyb21fZGljdChvYmpbInBhZ2luZyJdKSBpZiBvYmouZ2V0KCJwYWdpbmciKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJwcmV2aW91c1VybCI6IG9iai5nZXQoInByZXZpb3VzVXJsIiksCiAgICAgICAgICAgICJuZXh0VXJsIjogb2JqLmdldCgibmV4dFVybCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/vault_accounts_paged_response_paging.py b/fireblocks/models/vault_accounts_paged_response_paging.py index 584b6d00..5cfe0570 100644 --- a/fireblocks/models/vault_accounts_paged_response_paging.py +++ b/fireblocks/models/vault_accounts_paged_response_paging.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class VaultAccountsPagedResponsePaging(BaseModel): - """ - VaultAccountsPagedResponsePaging - """ # noqa: E501 - before: Optional[StrictStr] = None - after: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["before", "after"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of VaultAccountsPagedResponsePaging from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of VaultAccountsPagedResponsePaging from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "before": obj.get("before"), - "after": obj.get("after") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RTdHIKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFZhdWx0QWNjb3VudHNQYWdlZFJlc3BvbnNlUGFnaW5nKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFZhdWx0QWNjb3VudHNQYWdlZFJlc3BvbnNlUGFnaW5nCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBiZWZvcmU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBhZnRlcjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiYmVmb3JlIiwgImFmdGVyIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZVBhZ2luZyBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZVBhZ2luZyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJiZWZvcmUiOiBvYmouZ2V0KCJiZWZvcmUiKSwKICAgICAgICAgICAgImFmdGVyIjogb2JqLmdldCgiYWZ0ZXIiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/vault_accounts_tag_attachment_operations_request.py b/fireblocks/models/vault_accounts_tag_attachment_operations_request.py index f97cab59..44f71eb7 100644 --- a/fireblocks/models/vault_accounts_tag_attachment_operations_request.py +++ b/fireblocks/models/vault_accounts_tag_attachment_operations_request.py @@ -1,93 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from typing import Optional, Set -from typing_extensions import Self - -class VaultAccountsTagAttachmentOperationsRequest(BaseModel): - """ - VaultAccountsTagAttachmentOperationsRequest - """ # noqa: E501 - vault_account_ids: Annotated[List[StrictStr], Field(min_length=1, max_length=100)] = Field(description="The IDs of the vault accounts to attach tags to", alias="vaultAccountIds") - tag_ids_to_attach: Optional[Annotated[List[StrictStr], Field(min_length=1, max_length=20)]] = Field(default=None, description="The IDs of the tags to attach", alias="tagIdsToAttach") - tag_ids_to_detach: Optional[Annotated[List[StrictStr], Field(min_length=1, max_length=20)]] = Field(default=None, description="The IDs of the tags to detach", alias="tagIdsToDetach") - __properties: ClassVar[List[str]] = ["vaultAccountIds", "tagIdsToAttach", "tagIdsToDetach"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of VaultAccountsTagAttachmentOperationsRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of VaultAccountsTagAttachmentOperationsRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "vaultAccountIds": obj.get("vaultAccountIds"), - "tagIdsToAttach": obj.get("tagIdsToAttach"), - "tagIdsToDetach": obj.get("tagIdsToDetach") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBBbm5vdGF0ZWQKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVxdWVzdChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXF1ZXN0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB2YXVsdF9hY2NvdW50X2lkczogQW5ub3RhdGVkW0xpc3RbU3RyaWN0U3RyXSwgRmllbGQobWluX2xlbmd0aD0xLCBtYXhfbGVuZ3RoPTEwMCldID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBJRHMgb2YgdGhlIHZhdWx0IGFjY291bnRzIHRvIGF0dGFjaCB0YWdzIHRvIiwgYWxpYXM9InZhdWx0QWNjb3VudElkcyIpCiAgICB0YWdfaWRzX3RvX2F0dGFjaDogT3B0aW9uYWxbQW5ub3RhdGVkW0xpc3RbU3RyaWN0U3RyXSwgRmllbGQobWluX2xlbmd0aD0xLCBtYXhfbGVuZ3RoPTIwKV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIElEcyBvZiB0aGUgdGFncyB0byBhdHRhY2giLCBhbGlhcz0idGFnSWRzVG9BdHRhY2giKQogICAgdGFnX2lkc190b19kZXRhY2g6IE9wdGlvbmFsW0Fubm90YXRlZFtMaXN0W1N0cmljdFN0cl0sIEZpZWxkKG1pbl9sZW5ndGg9MSwgbWF4X2xlbmd0aD0yMCldXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBJRHMgb2YgdGhlIHRhZ3MgdG8gZGV0YWNoIiwgYWxpYXM9InRhZ0lkc1RvRGV0YWNoIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidmF1bHRBY2NvdW50SWRzIiwgInRhZ0lkc1RvQXR0YWNoIiwgInRhZ0lkc1RvRGV0YWNoIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXF1ZXN0IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1JlcXVlc3QgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidmF1bHRBY2NvdW50SWRzIjogb2JqLmdldCgidmF1bHRBY2NvdW50SWRzIiksCiAgICAgICAgICAgICJ0YWdJZHNUb0F0dGFjaCI6IG9iai5nZXQoInRhZ0lkc1RvQXR0YWNoIiksCiAgICAgICAgICAgICJ0YWdJZHNUb0RldGFjaCI6IG9iai5nZXQoInRhZ0lkc1RvRGV0YWNoIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/vault_accounts_tag_attachment_operations_response.py b/fireblocks/models/vault_accounts_tag_attachment_operations_response.py index 8fbcb59d..15a06a4c 100644 --- a/fireblocks/models/vault_accounts_tag_attachment_operations_response.py +++ b/fireblocks/models/vault_accounts_tag_attachment_operations_response.py @@ -1,116 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.vault_account_tag_attachment_operation import VaultAccountTagAttachmentOperation -from fireblocks.models.vault_account_tag_attachment_pending_operation import VaultAccountTagAttachmentPendingOperation -from fireblocks.models.vault_account_tag_attachment_rejected_operation import VaultAccountTagAttachmentRejectedOperation -from typing import Optional, Set -from typing_extensions import Self - -class VaultAccountsTagAttachmentOperationsResponse(BaseModel): - """ - VaultAccountsTagAttachmentOperationsResponse - """ # noqa: E501 - applied_operations: Optional[List[VaultAccountTagAttachmentOperation]] = Field(default=None, description="The operations that were applied", alias="appliedOperations") - pending_operations: Optional[List[VaultAccountTagAttachmentPendingOperation]] = Field(default=None, description="The operations that are pending", alias="pendingOperations") - rejected_operations: Optional[List[VaultAccountTagAttachmentRejectedOperation]] = Field(default=None, description="The operations that were rejected", alias="rejectedOperations") - __properties: ClassVar[List[str]] = ["appliedOperations", "pendingOperations", "rejectedOperations"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of VaultAccountsTagAttachmentOperationsResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in applied_operations (list) - _items = [] - if self.applied_operations: - for _item_applied_operations in self.applied_operations: - if _item_applied_operations: - _items.append(_item_applied_operations.to_dict()) - _dict['appliedOperations'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in pending_operations (list) - _items = [] - if self.pending_operations: - for _item_pending_operations in self.pending_operations: - if _item_pending_operations: - _items.append(_item_pending_operations.to_dict()) - _dict['pendingOperations'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in rejected_operations (list) - _items = [] - if self.rejected_operations: - for _item_rejected_operations in self.rejected_operations: - if _item_rejected_operations: - _items.append(_item_rejected_operations.to_dict()) - _dict['rejectedOperations'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of VaultAccountsTagAttachmentOperationsResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "appliedOperations": [VaultAccountTagAttachmentOperation.from_dict(_item) for _item in obj["appliedOperations"]] if obj.get("appliedOperations") is not None else None, - "pendingOperations": [VaultAccountTagAttachmentPendingOperation.from_dict(_item) for _item in obj["pendingOperations"]] if obj.get("pendingOperations") is not None else None, - "rejectedOperations": [VaultAccountTagAttachmentRejectedOperation.from_dict(_item) for _item in obj["rejectedOperations"]] if obj.get("rejectedOperations") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZApmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hY2NvdW50X3RhZ19hdHRhY2htZW50X29wZXJhdGlvbiBpbXBvcnQgVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudE9wZXJhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnRfdGFnX2F0dGFjaG1lbnRfcGVuZGluZ19vcGVyYXRpb24gaW1wb3J0IFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRQZW5kaW5nT3BlcmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMudmF1bHRfYWNjb3VudF90YWdfYXR0YWNobWVudF9yZWplY3RlZF9vcGVyYXRpb24gaW1wb3J0IFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRSZWplY3RlZE9wZXJhdGlvbgpmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXNwb25zZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgYXBwbGllZF9vcGVyYXRpb25zOiBPcHRpb25hbFtMaXN0W1ZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRPcGVyYXRpb25dXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBvcGVyYXRpb25zIHRoYXQgd2VyZSBhcHBsaWVkIiwgYWxpYXM9ImFwcGxpZWRPcGVyYXRpb25zIikKICAgIHBlbmRpbmdfb3BlcmF0aW9uczogT3B0aW9uYWxbTGlzdFtWYXVsdEFjY291bnRUYWdBdHRhY2htZW50UGVuZGluZ09wZXJhdGlvbl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIG9wZXJhdGlvbnMgdGhhdCBhcmUgcGVuZGluZyIsIGFsaWFzPSJwZW5kaW5nT3BlcmF0aW9ucyIpCiAgICByZWplY3RlZF9vcGVyYXRpb25zOiBPcHRpb25hbFtMaXN0W1ZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRSZWplY3RlZE9wZXJhdGlvbl1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIG9wZXJhdGlvbnMgdGhhdCB3ZXJlIHJlamVjdGVkIiwgYWxpYXM9InJlamVjdGVkT3BlcmF0aW9ucyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFwcGxpZWRPcGVyYXRpb25zIiwgInBlbmRpbmdPcGVyYXRpb25zIiwgInJlamVjdGVkT3BlcmF0aW9ucyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVzcG9uc2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gYXBwbGllZF9vcGVyYXRpb25zIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5hcHBsaWVkX29wZXJhdGlvbnM6CiAgICAgICAgICAgIGZvciBfaXRlbV9hcHBsaWVkX29wZXJhdGlvbnMgaW4gc2VsZi5hcHBsaWVkX29wZXJhdGlvbnM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9hcHBsaWVkX29wZXJhdGlvbnM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9hcHBsaWVkX29wZXJhdGlvbnMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnYXBwbGllZE9wZXJhdGlvbnMnXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gcGVuZGluZ19vcGVyYXRpb25zIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5wZW5kaW5nX29wZXJhdGlvbnM6CiAgICAgICAgICAgIGZvciBfaXRlbV9wZW5kaW5nX29wZXJhdGlvbnMgaW4gc2VsZi5wZW5kaW5nX29wZXJhdGlvbnM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9wZW5kaW5nX29wZXJhdGlvbnM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9wZW5kaW5nX29wZXJhdGlvbnMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsncGVuZGluZ09wZXJhdGlvbnMnXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gcmVqZWN0ZWRfb3BlcmF0aW9ucyAobGlzdCkKICAgICAgICBfaXRlbXMgPSBbXQogICAgICAgIGlmIHNlbGYucmVqZWN0ZWRfb3BlcmF0aW9uczoKICAgICAgICAgICAgZm9yIF9pdGVtX3JlamVjdGVkX29wZXJhdGlvbnMgaW4gc2VsZi5yZWplY3RlZF9vcGVyYXRpb25zOgogICAgICAgICAgICAgICAgaWYgX2l0ZW1fcmVqZWN0ZWRfb3BlcmF0aW9uczoKICAgICAgICAgICAgICAgICAgICBfaXRlbXMuYXBwZW5kKF9pdGVtX3JlamVjdGVkX29wZXJhdGlvbnMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsncmVqZWN0ZWRPcGVyYXRpb25zJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1Jlc3BvbnNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFwcGxpZWRPcGVyYXRpb25zIjogW1ZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRPcGVyYXRpb24uZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJhcHBsaWVkT3BlcmF0aW9ucyJdXSBpZiBvYmouZ2V0KCJhcHBsaWVkT3BlcmF0aW9ucyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInBlbmRpbmdPcGVyYXRpb25zIjogW1ZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRQZW5kaW5nT3BlcmF0aW9uLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsicGVuZGluZ09wZXJhdGlvbnMiXV0gaWYgb2JqLmdldCgicGVuZGluZ09wZXJhdGlvbnMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJyZWplY3RlZE9wZXJhdGlvbnMiOiBbVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudFJlamVjdGVkT3BlcmF0aW9uLmZyb21fZGljdChfaXRlbSkgZm9yIF9pdGVtIGluIG9ialsicmVqZWN0ZWRPcGVyYXRpb25zIl1dIGlmIG9iai5nZXQoInJlamVjdGVkT3BlcmF0aW9ucyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/vault_action_status.py b/fireblocks/models/vault_action_status.py index 7e394910..8d86fd13 100644 --- a/fireblocks/models/vault_action_status.py +++ b/fireblocks/models/vault_action_status.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, StrictBool -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class VaultActionStatus(BaseModel): - """ - VaultActionStatus - """ # noqa: E501 - success: Optional[StrictBool] = None - __properties: ClassVar[List[str]] = ["success"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of VaultActionStatus from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of VaultActionStatus from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "success": obj.get("success") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBTdHJpY3RCb29sCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBWYXVsdEFjdGlvblN0YXR1cyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBWYXVsdEFjdGlvblN0YXR1cwogICAgIiIiICMgbm9xYTogRTUwMQogICAgc3VjY2VzczogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBOb25lCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInN1Y2Nlc3MiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFZhdWx0QWN0aW9uU3RhdHVzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFZhdWx0QWN0aW9uU3RhdHVzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInN1Y2Nlc3MiOiBvYmouZ2V0KCJzdWNjZXNzIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/vault_asset.py b/fireblocks/models/vault_asset.py index dffb64e6..c0200972 100644 --- a/fireblocks/models/vault_asset.py +++ b/fireblocks/models/vault_asset.py @@ -1,124 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.rewards_info import RewardsInfo -from typing import Optional, Set -from typing_extensions import Self - -class VaultAsset(BaseModel): - """ - VaultAsset - """ # noqa: E501 - id: Optional[StrictStr] = None - total: Optional[StrictStr] = Field(default=None, description="The total wallet balance. In EOS this value includes the network balance, self staking and pending refund. For all other coins it is the balance as it appears on the blockchain.") - balance: Optional[StrictStr] = Field(default=None, description="Deprecated - replaced by \"total\"") - available: Optional[StrictStr] = Field(default=None, description="Funds available for transfer. Equals the blockchain balance minus any locked amounts") - pending: Optional[StrictStr] = Field(default=None, description="The cumulative balance of all transactions pending to be cleared") - frozen: Optional[StrictStr] = Field(default=None, description="The cumulative frozen balance") - locked_amount: Optional[StrictStr] = Field(default=None, description="Funds in outgoing transactions that are not yet published to the network", alias="lockedAmount") - staked: Optional[StrictStr] = Field(default=None, description="Staked balance") - total_staked_cpu: Optional[StrictStr] = Field(default=None, description="Deprecated", alias="totalStakedCPU") - total_staked_network: Optional[StrictStr] = Field(default=None, description="Deprecated", alias="totalStakedNetwork") - self_staked_cpu: Optional[StrictStr] = Field(default=None, description="Deprecated", alias="selfStakedCPU") - self_staked_network: Optional[StrictStr] = Field(default=None, description="Deprecated", alias="selfStakedNetwork") - pending_refund_cpu: Optional[StrictStr] = Field(default=None, description="Deprecated", alias="pendingRefundCPU") - pending_refund_network: Optional[StrictStr] = Field(default=None, description="Deprecated", alias="pendingRefundNetwork") - block_height: Optional[StrictStr] = Field(default=None, alias="blockHeight") - block_hash: Optional[StrictStr] = Field(default=None, alias="blockHash") - rewards_info: Optional[RewardsInfo] = Field(default=None, alias="rewardsInfo") - __properties: ClassVar[List[str]] = ["id", "total", "balance", "available", "pending", "frozen", "lockedAmount", "staked", "totalStakedCPU", "totalStakedNetwork", "selfStakedCPU", "selfStakedNetwork", "pendingRefundCPU", "pendingRefundNetwork", "blockHeight", "blockHash", "rewardsInfo"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of VaultAsset from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of rewards_info - if self.rewards_info: - _dict['rewardsInfo'] = self.rewards_info.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of VaultAsset from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "total": obj.get("total"), - "balance": obj.get("balance"), - "available": obj.get("available"), - "pending": obj.get("pending"), - "frozen": obj.get("frozen"), - "lockedAmount": obj.get("lockedAmount"), - "staked": obj.get("staked"), - "totalStakedCPU": obj.get("totalStakedCPU"), - "totalStakedNetwork": obj.get("totalStakedNetwork"), - "selfStakedCPU": obj.get("selfStakedCPU"), - "selfStakedNetwork": obj.get("selfStakedNetwork"), - "pendingRefundCPU": obj.get("pendingRefundCPU"), - "pendingRefundNetwork": obj.get("pendingRefundNetwork"), - "blockHeight": obj.get("blockHeight"), - "blockHash": obj.get("blockHash"), - "rewardsInfo": RewardsInfo.from_dict(obj["rewardsInfo"]) if obj.get("rewardsInfo") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJld2FyZHNfaW5mbyBpbXBvcnQgUmV3YXJkc0luZm8KZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVmF1bHRBc3NldChCYXNlTW9kZWwpOgogICAgIiIiCiAgICBWYXVsdEFzc2V0CiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBpZDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIHRvdGFsOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIHRvdGFsIHdhbGxldCBiYWxhbmNlLiBJbiBFT1MgdGhpcyB2YWx1ZSBpbmNsdWRlcyB0aGUgbmV0d29yayBiYWxhbmNlLCBzZWxmIHN0YWtpbmcgYW5kIHBlbmRpbmcgcmVmdW5kLiBGb3IgYWxsIG90aGVyIGNvaW5zIGl0IGlzIHRoZSBiYWxhbmNlIGFzIGl0IGFwcGVhcnMgb24gdGhlIGJsb2NrY2hhaW4uIikKICAgIGJhbGFuY2U6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXByZWNhdGVkIC0gcmVwbGFjZWQgYnkgXCJ0b3RhbFwiIikKICAgIGF2YWlsYWJsZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkZ1bmRzIGF2YWlsYWJsZSBmb3IgdHJhbnNmZXIuIEVxdWFscyB0aGUgYmxvY2tjaGFpbiBiYWxhbmNlIG1pbnVzIGFueSBsb2NrZWQgYW1vdW50cyIpCiAgICBwZW5kaW5nOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iVGhlIGN1bXVsYXRpdmUgYmFsYW5jZSBvZiBhbGwgdHJhbnNhY3Rpb25zIHBlbmRpbmcgdG8gYmUgY2xlYXJlZCIpCiAgICBmcm96ZW46IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgY3VtdWxhdGl2ZSBmcm96ZW4gYmFsYW5jZSIpCiAgICBsb2NrZWRfYW1vdW50OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRnVuZHMgaW4gb3V0Z29pbmcgdHJhbnNhY3Rpb25zIHRoYXQgYXJlIG5vdCB5ZXQgcHVibGlzaGVkIHRvIHRoZSBuZXR3b3JrIiwgYWxpYXM9ImxvY2tlZEFtb3VudCIpCiAgICBzdGFrZWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJTdGFrZWQgYmFsYW5jZSIpCiAgICB0b3RhbF9zdGFrZWRfY3B1OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVwcmVjYXRlZCIsIGFsaWFzPSJ0b3RhbFN0YWtlZENQVSIpCiAgICB0b3RhbF9zdGFrZWRfbmV0d29yazogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRlcHJlY2F0ZWQiLCBhbGlhcz0idG90YWxTdGFrZWROZXR3b3JrIikKICAgIHNlbGZfc3Rha2VkX2NwdTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRlcHJlY2F0ZWQiLCBhbGlhcz0ic2VsZlN0YWtlZENQVSIpCiAgICBzZWxmX3N0YWtlZF9uZXR3b3JrOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iRGVwcmVjYXRlZCIsIGFsaWFzPSJzZWxmU3Rha2VkTmV0d29yayIpCiAgICBwZW5kaW5nX3JlZnVuZF9jcHU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJEZXByZWNhdGVkIiwgYWxpYXM9InBlbmRpbmdSZWZ1bmRDUFUiKQogICAgcGVuZGluZ19yZWZ1bmRfbmV0d29yazogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkRlcHJlY2F0ZWQiLCBhbGlhcz0icGVuZGluZ1JlZnVuZE5ldHdvcmsiKQogICAgYmxvY2tfaGVpZ2h0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYmxvY2tIZWlnaHQiKQogICAgYmxvY2tfaGFzaDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImJsb2NrSGFzaCIpCiAgICByZXdhcmRzX2luZm86IE9wdGlvbmFsW1Jld2FyZHNJbmZvXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InJld2FyZHNJbmZvIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAidG90YWwiLCAiYmFsYW5jZSIsICJhdmFpbGFibGUiLCAicGVuZGluZyIsICJmcm96ZW4iLCAibG9ja2VkQW1vdW50IiwgInN0YWtlZCIsICJ0b3RhbFN0YWtlZENQVSIsICJ0b3RhbFN0YWtlZE5ldHdvcmsiLCAic2VsZlN0YWtlZENQVSIsICJzZWxmU3Rha2VkTmV0d29yayIsICJwZW5kaW5nUmVmdW5kQ1BVIiwgInBlbmRpbmdSZWZ1bmROZXR3b3JrIiwgImJsb2NrSGVpZ2h0IiwgImJsb2NrSGFzaCIsICJyZXdhcmRzSW5mbyJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmF1bHRBc3NldCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIHJld2FyZHNfaW5mbwogICAgICAgIGlmIHNlbGYucmV3YXJkc19pbmZvOgogICAgICAgICAgICBfZGljdFsncmV3YXJkc0luZm8nXSA9IHNlbGYucmV3YXJkc19pbmZvLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmF1bHRBc3NldCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJ0b3RhbCI6IG9iai5nZXQoInRvdGFsIiksCiAgICAgICAgICAgICJiYWxhbmNlIjogb2JqLmdldCgiYmFsYW5jZSIpLAogICAgICAgICAgICAiYXZhaWxhYmxlIjogb2JqLmdldCgiYXZhaWxhYmxlIiksCiAgICAgICAgICAgICJwZW5kaW5nIjogb2JqLmdldCgicGVuZGluZyIpLAogICAgICAgICAgICAiZnJvemVuIjogb2JqLmdldCgiZnJvemVuIiksCiAgICAgICAgICAgICJsb2NrZWRBbW91bnQiOiBvYmouZ2V0KCJsb2NrZWRBbW91bnQiKSwKICAgICAgICAgICAgInN0YWtlZCI6IG9iai5nZXQoInN0YWtlZCIpLAogICAgICAgICAgICAidG90YWxTdGFrZWRDUFUiOiBvYmouZ2V0KCJ0b3RhbFN0YWtlZENQVSIpLAogICAgICAgICAgICAidG90YWxTdGFrZWROZXR3b3JrIjogb2JqLmdldCgidG90YWxTdGFrZWROZXR3b3JrIiksCiAgICAgICAgICAgICJzZWxmU3Rha2VkQ1BVIjogb2JqLmdldCgic2VsZlN0YWtlZENQVSIpLAogICAgICAgICAgICAic2VsZlN0YWtlZE5ldHdvcmsiOiBvYmouZ2V0KCJzZWxmU3Rha2VkTmV0d29yayIpLAogICAgICAgICAgICAicGVuZGluZ1JlZnVuZENQVSI6IG9iai5nZXQoInBlbmRpbmdSZWZ1bmRDUFUiKSwKICAgICAgICAgICAgInBlbmRpbmdSZWZ1bmROZXR3b3JrIjogb2JqLmdldCgicGVuZGluZ1JlZnVuZE5ldHdvcmsiKSwKICAgICAgICAgICAgImJsb2NrSGVpZ2h0Ijogb2JqLmdldCgiYmxvY2tIZWlnaHQiKSwKICAgICAgICAgICAgImJsb2NrSGFzaCI6IG9iai5nZXQoImJsb2NrSGFzaCIpLAogICAgICAgICAgICAicmV3YXJkc0luZm8iOiBSZXdhcmRzSW5mby5mcm9tX2RpY3Qob2JqWyJyZXdhcmRzSW5mbyJdKSBpZiBvYmouZ2V0KCJyZXdhcmRzSW5mbyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/vault_wallet_address.py b/fireblocks/models/vault_wallet_address.py index 8161a0e2..67f556e4 100644 --- a/fireblocks/models/vault_wallet_address.py +++ b/fireblocks/models/vault_wallet_address.py @@ -1,118 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class VaultWalletAddress(BaseModel): - """ - VaultWalletAddress - """ # noqa: E501 - asset_id: Optional[StrictStr] = Field(default=None, alias="assetId") - address: Optional[StrictStr] = None - description: Optional[StrictStr] = None - tag: Optional[StrictStr] = None - type: Optional[StrictStr] = None - customer_ref_id: Optional[StrictStr] = Field(default=None, alias="customerRefId") - address_format: Optional[StrictStr] = Field(default=None, alias="addressFormat") - legacy_address: Optional[StrictStr] = Field(default=None, alias="legacyAddress") - enterprise_address: Optional[StrictStr] = Field(default=None, alias="enterpriseAddress") - bip44_address_index: Optional[StrictInt] = Field(default=None, alias="bip44AddressIndex") - user_defined: Optional[StrictBool] = Field(default=None, alias="userDefined") - __properties: ClassVar[List[str]] = ["assetId", "address", "description", "tag", "type", "customerRefId", "addressFormat", "legacyAddress", "enterpriseAddress", "bip44AddressIndex", "userDefined"] - - @field_validator('address_format') - def address_format_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['SEGWIT', 'LEGACY', 'BASE', 'PAYMENT']): - raise ValueError("must be one of enum values ('SEGWIT', 'LEGACY', 'BASE', 'PAYMENT')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of VaultWalletAddress from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of VaultWalletAddress from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "assetId": obj.get("assetId"), - "address": obj.get("address"), - "description": obj.get("description"), - "tag": obj.get("tag"), - "type": obj.get("type"), - "customerRefId": obj.get("customerRefId"), - "addressFormat": obj.get("addressFormat"), - "legacyAddress": obj.get("legacyAddress"), - "enterpriseAddress": obj.get("enterpriseAddress"), - "bip44AddressIndex": obj.get("bip44AddressIndex"), - "userDefined": obj.get("userDefined") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0SW50LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVmF1bHRXYWxsZXRBZGRyZXNzKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFZhdWx0V2FsbGV0QWRkcmVzcwogICAgIiIiICMgbm9xYTogRTUwMQogICAgYXNzZXRfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJhc3NldElkIikKICAgIGFkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBkZXNjcmlwdGlvbjogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIHRhZzogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIHR5cGU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBjdXN0b21lcl9yZWZfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJjdXN0b21lclJlZklkIikKICAgIGFkZHJlc3NfZm9ybWF0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYWRkcmVzc0Zvcm1hdCIpCiAgICBsZWdhY3lfYWRkcmVzczogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImxlZ2FjeUFkZHJlc3MiKQogICAgZW50ZXJwcmlzZV9hZGRyZXNzOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZW50ZXJwcmlzZUFkZHJlc3MiKQogICAgYmlwNDRfYWRkcmVzc19pbmRleDogT3B0aW9uYWxbU3RyaWN0SW50XSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImJpcDQ0QWRkcmVzc0luZGV4IikKICAgIHVzZXJfZGVmaW5lZDogT3B0aW9uYWxbU3RyaWN0Qm9vbF0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJ1c2VyRGVmaW5lZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFzc2V0SWQiLCAiYWRkcmVzcyIsICJkZXNjcmlwdGlvbiIsICJ0YWciLCAidHlwZSIsICJjdXN0b21lclJlZklkIiwgImFkZHJlc3NGb3JtYXQiLCAibGVnYWN5QWRkcmVzcyIsICJlbnRlcnByaXNlQWRkcmVzcyIsICJiaXA0NEFkZHJlc3NJbmRleCIsICJ1c2VyRGVmaW5lZCJdCgogICAgQGZpZWxkX3ZhbGlkYXRvcignYWRkcmVzc19mb3JtYXQnKQogICAgZGVmIGFkZHJlc3NfZm9ybWF0X3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydTRUdXSVQnLCAnTEVHQUNZJywgJ0JBU0UnLCAnUEFZTUVOVCddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdTRUdXSVQnLCAnTEVHQUNZJywgJ0JBU0UnLCAnUEFZTUVOVCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBWYXVsdFdhbGxldEFkZHJlc3MgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmF1bHRXYWxsZXRBZGRyZXNzIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImFzc2V0SWQiOiBvYmouZ2V0KCJhc3NldElkIiksCiAgICAgICAgICAgICJhZGRyZXNzIjogb2JqLmdldCgiYWRkcmVzcyIpLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBvYmouZ2V0KCJkZXNjcmlwdGlvbiIpLAogICAgICAgICAgICAidGFnIjogb2JqLmdldCgidGFnIiksCiAgICAgICAgICAgICJ0eXBlIjogb2JqLmdldCgidHlwZSIpLAogICAgICAgICAgICAiY3VzdG9tZXJSZWZJZCI6IG9iai5nZXQoImN1c3RvbWVyUmVmSWQiKSwKICAgICAgICAgICAgImFkZHJlc3NGb3JtYXQiOiBvYmouZ2V0KCJhZGRyZXNzRm9ybWF0IiksCiAgICAgICAgICAgICJsZWdhY3lBZGRyZXNzIjogb2JqLmdldCgibGVnYWN5QWRkcmVzcyIpLAogICAgICAgICAgICAiZW50ZXJwcmlzZUFkZHJlc3MiOiBvYmouZ2V0KCJlbnRlcnByaXNlQWRkcmVzcyIpLAogICAgICAgICAgICAiYmlwNDRBZGRyZXNzSW5kZXgiOiBvYmouZ2V0KCJiaXA0NEFkZHJlc3NJbmRleCIpLAogICAgICAgICAgICAidXNlckRlZmluZWQiOiBvYmouZ2V0KCJ1c2VyRGVmaW5lZCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/vendor_dto.py b/fireblocks/models/vendor_dto.py index 4c60e3c3..5161c641 100644 --- a/fireblocks/models/vendor_dto.py +++ b/fireblocks/models/vendor_dto.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class VendorDto(BaseModel): - """ - VendorDto - """ # noqa: E501 - id: StrictStr = Field(description="The unique identifier of the vendor of this contract template") - name: StrictStr = Field(description="The name of the vendor of this contract template") - __properties: ClassVar[List[str]] = ["id", "name"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of VendorDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of VendorDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFZlbmRvckR0byhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBWZW5kb3JEdG8KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSB2ZW5kb3Igb2YgdGhpcyBjb250cmFjdCB0ZW1wbGF0ZSIpCiAgICBuYW1lOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIG5hbWUgb2YgdGhlIHZlbmRvciBvZiB0aGlzIGNvbnRyYWN0IHRlbXBsYXRlIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsiaWQiLCAibmFtZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmVuZG9yRHRvIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFZlbmRvckR0byBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/verdict_config.py b/fireblocks/models/verdict_config.py index cc97b808..89b005f9 100644 --- a/fireblocks/models/verdict_config.py +++ b/fireblocks/models/verdict_config.py @@ -1,107 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.approvers_config import ApproversConfig -from fireblocks.models.designated_signers_config import DesignatedSignersConfig -from typing import Optional, Set -from typing_extensions import Self - -class VerdictConfig(BaseModel): - """ - Verdict configuration - """ # noqa: E501 - action: StrictStr = Field(description="Verdict action") - approvers: Optional[ApproversConfig] = None - designated_signers: Optional[DesignatedSignersConfig] = Field(default=None, alias="designatedSigners") - __properties: ClassVar[List[str]] = ["action", "approvers", "designatedSigners"] - - @field_validator('action') - def action_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['ALLOW', 'BLOCK', '2-TIER', 'ACCEPT', 'REJECT', 'ALERT', 'SCREEN', 'PASS', 'WAIT', 'FREEZE', 'CANCEL']): - raise ValueError("must be one of enum values ('ALLOW', 'BLOCK', '2-TIER', 'ACCEPT', 'REJECT', 'ALERT', 'SCREEN', 'PASS', 'WAIT', 'FREEZE', 'CANCEL')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of VerdictConfig from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of approvers - if self.approvers: - _dict['approvers'] = self.approvers.to_dict() - # override the default output from pydantic by calling `to_dict()` of designated_signers - if self.designated_signers: - _dict['designatedSigners'] = self.designated_signers.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of VerdictConfig from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "action": obj.get("action"), - "approvers": ApproversConfig.from_dict(obj["approvers"]) if obj.get("approvers") is not None else None, - "designatedSigners": DesignatedSignersConfig.from_dict(obj["designatedSigners"]) if obj.get("designatedSigners") is not None else None - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuYXBwcm92ZXJzX2NvbmZpZyBpbXBvcnQgQXBwcm92ZXJzQ29uZmlnCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzaWduYXRlZF9zaWduZXJzX2NvbmZpZyBpbXBvcnQgRGVzaWduYXRlZFNpZ25lcnNDb25maWcKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgVmVyZGljdENvbmZpZyhCYXNlTW9kZWwpOgogICAgIiIiCiAgICBWZXJkaWN0IGNvbmZpZ3VyYXRpb24KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFjdGlvbjogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlZlcmRpY3QgYWN0aW9uIikKICAgIGFwcHJvdmVyczogT3B0aW9uYWxbQXBwcm92ZXJzQ29uZmlnXSA9IE5vbmUKICAgIGRlc2lnbmF0ZWRfc2lnbmVyczogT3B0aW9uYWxbRGVzaWduYXRlZFNpZ25lcnNDb25maWddID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZGVzaWduYXRlZFNpZ25lcnMiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJhY3Rpb24iLCAiYXBwcm92ZXJzIiwgImRlc2lnbmF0ZWRTaWduZXJzIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhY3Rpb24nKQogICAgZGVmIGFjdGlvbl92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydBTExPVycsICdCTE9DSycsICcyLVRJRVInLCAnQUNDRVBUJywgJ1JFSkVDVCcsICdBTEVSVCcsICdTQ1JFRU4nLCAnUEFTUycsICdXQUlUJywgJ0ZSRUVaRScsICdDQU5DRUwnXSk6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgb25lIG9mIGVudW0gdmFsdWVzICgnQUxMT1cnLCAnQkxPQ0snLCAnMi1USUVSJywgJ0FDQ0VQVCcsICdSRUpFQ1QnLCAnQUxFUlQnLCAnU0NSRUVOJywgJ1BBU1MnLCAnV0FJVCcsICdGUkVFWkUnLCAnQ0FOQ0VMJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFZlcmRpY3RDb25maWcgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBhcHByb3ZlcnMKICAgICAgICBpZiBzZWxmLmFwcHJvdmVyczoKICAgICAgICAgICAgX2RpY3RbJ2FwcHJvdmVycyddID0gc2VsZi5hcHByb3ZlcnMudG9fZGljdCgpCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGRlc2lnbmF0ZWRfc2lnbmVycwogICAgICAgIGlmIHNlbGYuZGVzaWduYXRlZF9zaWduZXJzOgogICAgICAgICAgICBfZGljdFsnZGVzaWduYXRlZFNpZ25lcnMnXSA9IHNlbGYuZGVzaWduYXRlZF9zaWduZXJzLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmVyZGljdENvbmZpZyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhY3Rpb24iOiBvYmouZ2V0KCJhY3Rpb24iKSwKICAgICAgICAgICAgImFwcHJvdmVycyI6IEFwcHJvdmVyc0NvbmZpZy5mcm9tX2RpY3Qob2JqWyJhcHByb3ZlcnMiXSkgaWYgb2JqLmdldCgiYXBwcm92ZXJzIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiZGVzaWduYXRlZFNpZ25lcnMiOiBEZXNpZ25hdGVkU2lnbmVyc0NvbmZpZy5mcm9tX2RpY3Qob2JqWyJkZXNpZ25hdGVkU2lnbmVycyJdKSBpZiBvYmouZ2V0KCJkZXNpZ25hdGVkU2lnbmVycyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/version_summary.py b/fireblocks/models/version_summary.py index bf4f8c66..85b2b028 100644 --- a/fireblocks/models/version_summary.py +++ b/fireblocks/models/version_summary.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class VersionSummary(BaseModel): - """ - VersionSummary - """ # noqa: E501 - hash: StrictStr = Field(description="The version hash of the cosigner") - name: Optional[StrictStr] = Field(default=None, description="The name of the version") - __properties: ClassVar[List[str]] = ["hash", "name"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of VersionSummary from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of VersionSummary from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "hash": obj.get("hash"), - "name": obj.get("name") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBWZXJzaW9uU3VtbWFyeShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBWZXJzaW9uU3VtbWFyeQogICAgIiIiICMgbm9xYTogRTUwMQogICAgaGFzaDogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSB2ZXJzaW9uIGhhc2ggb2YgdGhlIGNvc2lnbmVyIikKICAgIG5hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgbmFtZSBvZiB0aGUgdmVyc2lvbiIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImhhc2giLCAibmFtZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmVyc2lvblN1bW1hcnkgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVmVyc2lvblN1bW1hcnkgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaGFzaCI6IG9iai5nZXQoImhhc2giKSwKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/wallet_asset.py b/fireblocks/models/wallet_asset.py index baa5102e..8e4227a5 100644 --- a/fireblocks/models/wallet_asset.py +++ b/fireblocks/models/wallet_asset.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.config_change_request_status import ConfigChangeRequestStatus -from typing import Optional, Set -from typing_extensions import Self - -class WalletAsset(BaseModel): - """ - WalletAsset - """ # noqa: E501 - id: Optional[StrictStr] = None - balance: Optional[StrictStr] = None - locked_amount: Optional[StrictStr] = Field(default=None, alias="lockedAmount") - status: Optional[ConfigChangeRequestStatus] = None - address: Optional[StrictStr] = None - tag: Optional[StrictStr] = None - activation_time: Optional[StrictStr] = Field(default=None, alias="activationTime") - __properties: ClassVar[List[str]] = ["id", "balance", "lockedAmount", "status", "address", "tag", "activationTime"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of WalletAsset from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of WalletAsset from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "balance": obj.get("balance"), - "lockedAmount": obj.get("lockedAmount"), - "status": obj.get("status"), - "address": obj.get("address"), - "tag": obj.get("tag"), - "activationTime": obj.get("activationTime") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbmZpZ19jaGFuZ2VfcmVxdWVzdF9zdGF0dXMgaW1wb3J0IENvbmZpZ0NoYW5nZVJlcXVlc3RTdGF0dXMKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgV2FsbGV0QXNzZXQoQmFzZU1vZGVsKToKICAgICIiIgogICAgV2FsbGV0QXNzZXQKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgYmFsYW5jZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IE5vbmUKICAgIGxvY2tlZF9hbW91bnQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJsb2NrZWRBbW91bnQiKQogICAgc3RhdHVzOiBPcHRpb25hbFtDb25maWdDaGFuZ2VSZXF1ZXN0U3RhdHVzXSA9IE5vbmUKICAgIGFkZHJlc3M6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICB0YWc6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBOb25lCiAgICBhY3RpdmF0aW9uX3RpbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJhY3RpdmF0aW9uVGltZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgImJhbGFuY2UiLCAibG9ja2VkQW1vdW50IiwgInN0YXR1cyIsICJhZGRyZXNzIiwgInRhZyIsICJhY3RpdmF0aW9uVGltZSJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgV2FsbGV0QXNzZXQgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgV2FsbGV0QXNzZXQgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAiaWQiOiBvYmouZ2V0KCJpZCIpLAogICAgICAgICAgICAiYmFsYW5jZSI6IG9iai5nZXQoImJhbGFuY2UiKSwKICAgICAgICAgICAgImxvY2tlZEFtb3VudCI6IG9iai5nZXQoImxvY2tlZEFtb3VudCIpLAogICAgICAgICAgICAic3RhdHVzIjogb2JqLmdldCgic3RhdHVzIiksCiAgICAgICAgICAgICJhZGRyZXNzIjogb2JqLmdldCgiYWRkcmVzcyIpLAogICAgICAgICAgICAidGFnIjogb2JqLmdldCgidGFnIiksCiAgICAgICAgICAgICJhY3RpdmF0aW9uVGltZSI6IG9iai5nZXQoImFjdGl2YXRpb25UaW1lIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/wallet_asset_additional_info.py b/fireblocks/models/wallet_asset_additional_info.py index 3277456b..e3e5b9de 100644 --- a/fireblocks/models/wallet_asset_additional_info.py +++ b/fireblocks/models/wallet_asset_additional_info.py @@ -1,118 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class WalletAssetAdditionalInfo(BaseModel): - """ - WalletAssetAdditionalInfo - """ # noqa: E501 - account_holder_given_name: Optional[StrictStr] = Field(default=None, alias="accountHolderGivenName") - account_holder_surname: Optional[StrictStr] = Field(default=None, alias="accountHolderSurname") - account_holder_city: Optional[StrictStr] = Field(default=None, alias="accountHolderCity") - account_holder_country: Optional[StrictStr] = Field(default=None, alias="accountHolderCountry") - account_holder_address1: Optional[StrictStr] = Field(default=None, alias="accountHolderAddress1") - account_holder_address2: Optional[StrictStr] = Field(default=None, alias="accountHolderAddress2") - account_holder_district: Optional[StrictStr] = Field(default=None, alias="accountHolderDistrict") - account_holder_postal_code: Optional[StrictStr] = Field(default=None, alias="accountHolderPostalCode") - aba_routing_number: Optional[StrictStr] = Field(default=None, alias="abaRoutingNumber") - aba_account_number: Optional[StrictStr] = Field(default=None, alias="abaAccountNumber") - aba_country: Optional[StrictStr] = Field(default=None, alias="abaCountry") - iban: Optional[StrictStr] = None - iban_city: Optional[StrictStr] = Field(default=None, alias="ibanCity") - iban_country: Optional[StrictStr] = Field(default=None, alias="ibanCountry") - spei_clabe: Optional[StrictStr] = Field(default=None, alias="speiClabe") - spei_name: Optional[StrictStr] = Field(default=None, alias="speiName") - __properties: ClassVar[List[str]] = ["accountHolderGivenName", "accountHolderSurname", "accountHolderCity", "accountHolderCountry", "accountHolderAddress1", "accountHolderAddress2", "accountHolderDistrict", "accountHolderPostalCode", "abaRoutingNumber", "abaAccountNumber", "abaCountry", "iban", "ibanCity", "ibanCountry", "speiClabe", "speiName"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of WalletAssetAdditionalInfo from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of WalletAssetAdditionalInfo from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "accountHolderGivenName": obj.get("accountHolderGivenName"), - "accountHolderSurname": obj.get("accountHolderSurname"), - "accountHolderCity": obj.get("accountHolderCity"), - "accountHolderCountry": obj.get("accountHolderCountry"), - "accountHolderAddress1": obj.get("accountHolderAddress1"), - "accountHolderAddress2": obj.get("accountHolderAddress2"), - "accountHolderDistrict": obj.get("accountHolderDistrict"), - "accountHolderPostalCode": obj.get("accountHolderPostalCode"), - "abaRoutingNumber": obj.get("abaRoutingNumber"), - "abaAccountNumber": obj.get("abaAccountNumber"), - "abaCountry": obj.get("abaCountry"), - "iban": obj.get("iban"), - "ibanCity": obj.get("ibanCity"), - "ibanCountry": obj.get("ibanCountry"), - "speiClabe": obj.get("speiClabe"), - "speiName": obj.get("speiName") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFNldApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBTZWxmCgpjbGFzcyBXYWxsZXRBc3NldEFkZGl0aW9uYWxJbmZvKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFdhbGxldEFzc2V0QWRkaXRpb25hbEluZm8KICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGFjY291bnRfaG9sZGVyX2dpdmVuX25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJhY2NvdW50SG9sZGVyR2l2ZW5OYW1lIikKICAgIGFjY291bnRfaG9sZGVyX3N1cm5hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJhY2NvdW50SG9sZGVyU3VybmFtZSIpCiAgICBhY2NvdW50X2hvbGRlcl9jaXR5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYWNjb3VudEhvbGRlckNpdHkiKQogICAgYWNjb3VudF9ob2xkZXJfY291bnRyeTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9ImFjY291bnRIb2xkZXJDb3VudHJ5IikKICAgIGFjY291bnRfaG9sZGVyX2FkZHJlc3MxOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYWNjb3VudEhvbGRlckFkZHJlc3MxIikKICAgIGFjY291bnRfaG9sZGVyX2FkZHJlc3MyOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYWNjb3VudEhvbGRlckFkZHJlc3MyIikKICAgIGFjY291bnRfaG9sZGVyX2Rpc3RyaWN0OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYWNjb3VudEhvbGRlckRpc3RyaWN0IikKICAgIGFjY291bnRfaG9sZGVyX3Bvc3RhbF9jb2RlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYWNjb3VudEhvbGRlclBvc3RhbENvZGUiKQogICAgYWJhX3JvdXRpbmdfbnVtYmVyOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYWJhUm91dGluZ051bWJlciIpCiAgICBhYmFfYWNjb3VudF9udW1iZXI6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJhYmFBY2NvdW50TnVtYmVyIikKICAgIGFiYV9jb3VudHJ5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iYWJhQ291bnRyeSIpCiAgICBpYmFuOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgaWJhbl9jaXR5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iaWJhbkNpdHkiKQogICAgaWJhbl9jb3VudHJ5OiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iaWJhbkNvdW50cnkiKQogICAgc3BlaV9jbGFiZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgYWxpYXM9InNwZWlDbGFiZSIpCiAgICBzcGVpX25hbWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGFsaWFzPSJzcGVpTmFtZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImFjY291bnRIb2xkZXJHaXZlbk5hbWUiLCAiYWNjb3VudEhvbGRlclN1cm5hbWUiLCAiYWNjb3VudEhvbGRlckNpdHkiLCAiYWNjb3VudEhvbGRlckNvdW50cnkiLCAiYWNjb3VudEhvbGRlckFkZHJlc3MxIiwgImFjY291bnRIb2xkZXJBZGRyZXNzMiIsICJhY2NvdW50SG9sZGVyRGlzdHJpY3QiLCAiYWNjb3VudEhvbGRlclBvc3RhbENvZGUiLCAiYWJhUm91dGluZ051bWJlciIsICJhYmFBY2NvdW50TnVtYmVyIiwgImFiYUNvdW50cnkiLCAiaWJhbiIsICJpYmFuQ2l0eSIsICJpYmFuQ291bnRyeSIsICJzcGVpQ2xhYmUiLCAic3BlaU5hbWUiXQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFdhbGxldEFzc2V0QWRkaXRpb25hbEluZm8gZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgV2FsbGV0QXNzZXRBZGRpdGlvbmFsSW5mbyBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyR2l2ZW5OYW1lIjogb2JqLmdldCgiYWNjb3VudEhvbGRlckdpdmVuTmFtZSIpLAogICAgICAgICAgICAiYWNjb3VudEhvbGRlclN1cm5hbWUiOiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyU3VybmFtZSIpLAogICAgICAgICAgICAiYWNjb3VudEhvbGRlckNpdHkiOiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyQ2l0eSIpLAogICAgICAgICAgICAiYWNjb3VudEhvbGRlckNvdW50cnkiOiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyQ291bnRyeSIpLAogICAgICAgICAgICAiYWNjb3VudEhvbGRlckFkZHJlc3MxIjogb2JqLmdldCgiYWNjb3VudEhvbGRlckFkZHJlc3MxIiksCiAgICAgICAgICAgICJhY2NvdW50SG9sZGVyQWRkcmVzczIiOiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyQWRkcmVzczIiKSwKICAgICAgICAgICAgImFjY291bnRIb2xkZXJEaXN0cmljdCI6IG9iai5nZXQoImFjY291bnRIb2xkZXJEaXN0cmljdCIpLAogICAgICAgICAgICAiYWNjb3VudEhvbGRlclBvc3RhbENvZGUiOiBvYmouZ2V0KCJhY2NvdW50SG9sZGVyUG9zdGFsQ29kZSIpLAogICAgICAgICAgICAiYWJhUm91dGluZ051bWJlciI6IG9iai5nZXQoImFiYVJvdXRpbmdOdW1iZXIiKSwKICAgICAgICAgICAgImFiYUFjY291bnROdW1iZXIiOiBvYmouZ2V0KCJhYmFBY2NvdW50TnVtYmVyIiksCiAgICAgICAgICAgICJhYmFDb3VudHJ5Ijogb2JqLmdldCgiYWJhQ291bnRyeSIpLAogICAgICAgICAgICAiaWJhbiI6IG9iai5nZXQoImliYW4iKSwKICAgICAgICAgICAgImliYW5DaXR5Ijogb2JqLmdldCgiaWJhbkNpdHkiKSwKICAgICAgICAgICAgImliYW5Db3VudHJ5Ijogb2JqLmdldCgiaWJhbkNvdW50cnkiKSwKICAgICAgICAgICAgInNwZWlDbGFiZSI6IG9iai5nZXQoInNwZWlDbGFiZSIpLAogICAgICAgICAgICAic3BlaU5hbWUiOiBvYmouZ2V0KCJzcGVpTmFtZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/webhook.py b/fireblocks/models/webhook.py index 39850ebc..c9304794 100644 --- a/fireblocks/models/webhook.py +++ b/fireblocks/models/webhook.py @@ -1,109 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from fireblocks.models.webhook_event import WebhookEvent -from typing import Optional, Set -from typing_extensions import Self - -class Webhook(BaseModel): - """ - Webhook - """ # noqa: E501 - id: StrictStr = Field(description="The id of the webhook") - url: Annotated[str, Field(min_length=1, strict=True)] = Field(description="The url of the webhook where notifications will be sent. Must be a valid URL and https.") - description: Optional[Annotated[str, Field(min_length=1, strict=True)]] = Field(default=None, description="description of the webhook of what it is used for") - events: List[WebhookEvent] = Field(description="The events that the webhook will be subscribed to") - status: StrictStr = Field(description="The status of the webhook") - created_at: StrictInt = Field(description="The date and time the webhook was created in milliseconds", alias="createdAt") - updated_at: StrictInt = Field(description="The date and time the webhook was last updated in milliseconds", alias="updatedAt") - __properties: ClassVar[List[str]] = ["id", "url", "description", "events", "status", "createdAt", "updatedAt"] - - @field_validator('status') - def status_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['DISABLED', 'ENABLED', 'SUSPENDED']): - raise ValueError("must be one of enum values ('DISABLED', 'ENABLED', 'SUSPENDED')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of Webhook from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of Webhook from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "url": obj.get("url"), - "description": obj.get("description"), - "events": obj.get("events"), - "status": obj.get("status"), - "createdAt": obj.get("createdAt"), - "updatedAt": obj.get("updatedAt") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0SW50LCBTdHJpY3RTdHIsIGZpZWxkX3ZhbGlkYXRvcgpmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDbGFzc1ZhciwgRGljdCwgTGlzdCwgT3B0aW9uYWwKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgQW5ub3RhdGVkCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud2ViaG9va19ldmVudCBpbXBvcnQgV2ViaG9va0V2ZW50CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFdlYmhvb2soQmFzZU1vZGVsKToKICAgICIiIgogICAgV2ViaG9vawogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgaWQgb2YgdGhlIHdlYmhvb2siKQogICAgdXJsOiBBbm5vdGF0ZWRbc3RyLCBGaWVsZChtaW5fbGVuZ3RoPTEsIHN0cmljdD1UcnVlKV0gPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHVybCBvZiB0aGUgd2ViaG9vayB3aGVyZSBub3RpZmljYXRpb25zIHdpbGwgYmUgc2VudC4gTXVzdCBiZSBhIHZhbGlkIFVSTCBhbmQgaHR0cHMuIikKICAgIGRlc2NyaXB0aW9uOiBPcHRpb25hbFtBbm5vdGF0ZWRbc3RyLCBGaWVsZChtaW5fbGVuZ3RoPTEsIHN0cmljdD1UcnVlKV1dID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iZGVzY3JpcHRpb24gb2YgdGhlIHdlYmhvb2sgb2Ygd2hhdCBpdCBpcyB1c2VkIGZvciIpCiAgICBldmVudHM6IExpc3RbV2ViaG9va0V2ZW50XSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZXZlbnRzIHRoYXQgdGhlIHdlYmhvb2sgd2lsbCBiZSBzdWJzY3JpYmVkIHRvIikKICAgIHN0YXR1czogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBzdGF0dXMgb2YgdGhlIHdlYmhvb2siKQogICAgY3JlYXRlZF9hdDogU3RyaWN0SW50ID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBkYXRlIGFuZCB0aW1lIHRoZSB3ZWJob29rIHdhcyBjcmVhdGVkIGluIG1pbGxpc2Vjb25kcyIsIGFsaWFzPSJjcmVhdGVkQXQiKQogICAgdXBkYXRlZF9hdDogU3RyaWN0SW50ID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBkYXRlIGFuZCB0aW1lIHRoZSB3ZWJob29rIHdhcyBsYXN0IHVwZGF0ZWQgaW4gbWlsbGlzZWNvbmRzIiwgYWxpYXM9InVwZGF0ZWRBdCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgInVybCIsICJkZXNjcmlwdGlvbiIsICJldmVudHMiLCAic3RhdHVzIiwgImNyZWF0ZWRBdCIsICJ1cGRhdGVkQXQiXQoKICAgIEBmaWVsZF92YWxpZGF0b3IoJ3N0YXR1cycpCiAgICBkZWYgc3RhdHVzX3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ0RJU0FCTEVEJywgJ0VOQUJMRUQnLCAnU1VTUEVOREVEJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0RJU0FCTEVEJywgJ0VOQUJMRUQnLCAnU1VTUEVOREVEJykiKQogICAgICAgIHJldHVybiB2YWx1ZQoKICAgIG1vZGVsX2NvbmZpZyA9IENvbmZpZ0RpY3QoCiAgICAgICAgcG9wdWxhdGVfYnlfbmFtZT1UcnVlLAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBwcHJpbnQucGZvcm1hdChzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSkpCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgIyBUT0RPOiBweWRhbnRpYyB2MjogdXNlIC5tb2RlbF9kdW1wX2pzb24oYnlfYWxpYXM9VHJ1ZSwgZXhjbHVkZV91bnNldD1UcnVlKSBpbnN0ZWFkCiAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZi50b19kaWN0KCkpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFdlYmhvb2sgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgV2ViaG9vayBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJpZCI6IG9iai5nZXQoImlkIiksCiAgICAgICAgICAgICJ1cmwiOiBvYmouZ2V0KCJ1cmwiKSwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogb2JqLmdldCgiZGVzY3JpcHRpb24iKSwKICAgICAgICAgICAgImV2ZW50cyI6IG9iai5nZXQoImV2ZW50cyIpLAogICAgICAgICAgICAic3RhdHVzIjogb2JqLmdldCgic3RhdHVzIiksCiAgICAgICAgICAgICJjcmVhdGVkQXQiOiBvYmouZ2V0KCJjcmVhdGVkQXQiKSwKICAgICAgICAgICAgInVwZGF0ZWRBdCI6IG9iai5nZXQoInVwZGF0ZWRBdCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/webhook_event.py b/fireblocks/models/webhook_event.py index 90e89583..454ac620 100644 --- a/fireblocks/models/webhook_event.py +++ b/fireblocks/models/webhook_event.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class WebhookEvent(str, Enum): - """ - WebhookEvent - """ - - """ - allowed enum values - """ - TRANSACTION_DOT_CREATED = 'transaction.created' - TRANSACTION_DOT_STATUS_DOT_UPDATED = 'transaction.status.updated' - TRANSACTION_DOT_APPROVAL_STATUS_DOT_UPDATED = 'transaction.approval_status.updated' - TRANSACTION_DOT_NETWORK_RECORDS_DOT_PROCESSING_COMPLETED = 'transaction.network_records.processing_completed' - EXTERNAL_WALLET_DOT_ASSET_DOT_ADDED = 'external_wallet.asset.added' - EXTERNAL_WALLET_DOT_ASSET_DOT_REMOVED = 'external_wallet.asset.removed' - INTERNAL_WALLET_DOT_ASSET_DOT_ADDED = 'internal_wallet.asset.added' - INTERNAL_WALLET_DOT_ASSET_DOT_REMOVED = 'internal_wallet.asset.removed' - CONTRACT_WALLET_DOT_ASSET_DOT_ADDED = 'contract_wallet.asset.added' - CONTRACT_WALLET_DOT_ASSET_DOT_REMOVED = 'contract_wallet.asset.removed' - VAULT_ACCOUNT_DOT_CREATED = 'vault_account.created' - VAULT_ACCOUNT_DOT_ASSET_DOT_ADDED = 'vault_account.asset.added' - VAULT_ACCOUNT_DOT_ASSET_DOT_BALANCE_UPDATED = 'vault_account.asset.balance_updated' - EMBEDDED_WALLET_DOT_STATUS_DOT_UPDATED = 'embedded_wallet.status.updated' - EMBEDDED_WALLET_DOT_CREATED = 'embedded_wallet.created' - EMBEDDED_WALLET_DOT_ASSET_DOT_BALANCE_UPDATED = 'embedded_wallet.asset.balance_updated' - EMBEDDED_WALLET_DOT_ASSET_DOT_ADDED = 'embedded_wallet.asset.added' - EMBEDDED_WALLET_DOT_ACCOUNT_DOT_CREATED = 'embedded_wallet.account.created' - EMBEDDED_WALLET_DOT_DEVICE_DOT_ADDED = 'embedded_wallet.device.added' - ONCHAIN_DATA_DOT_UPDATED = 'onchain_data.updated' - CONNECTION_DOT_ADDED = 'connection.added' - CONNECTION_DOT_REMOVED = 'connection.removed' - CONNECTION_DOT_REQUEST_DOT_WAITING_PEER_APPROVAL = 'connection.request.waiting_peer_approval' - CONNECTION_DOT_REQUEST_DOT_REJECTED_BY_PEER = 'connection.request.rejected_by_peer' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of WebhookEvent from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBXZWJob29rRXZlbnQoc3RyLCBFbnVtKToKICAgICIiIgogICAgV2ViaG9va0V2ZW50CiAgICAiIiIKCiAgICAiIiIKICAgIGFsbG93ZWQgZW51bSB2YWx1ZXMKICAgICIiIgogICAgVFJBTlNBQ1RJT05fRE9UX0NSRUFURUQgPSAndHJhbnNhY3Rpb24uY3JlYXRlZCcKICAgIFRSQU5TQUNUSU9OX0RPVF9TVEFUVVNfRE9UX1VQREFURUQgPSAndHJhbnNhY3Rpb24uc3RhdHVzLnVwZGF0ZWQnCiAgICBUUkFOU0FDVElPTl9ET1RfQVBQUk9WQUxfU1RBVFVTX0RPVF9VUERBVEVEID0gJ3RyYW5zYWN0aW9uLmFwcHJvdmFsX3N0YXR1cy51cGRhdGVkJwogICAgVFJBTlNBQ1RJT05fRE9UX05FVFdPUktfUkVDT1JEU19ET1RfUFJPQ0VTU0lOR19DT01QTEVURUQgPSAndHJhbnNhY3Rpb24ubmV0d29ya19yZWNvcmRzLnByb2Nlc3NpbmdfY29tcGxldGVkJwogICAgRVhURVJOQUxfV0FMTEVUX0RPVF9BU1NFVF9ET1RfQURERUQgPSAnZXh0ZXJuYWxfd2FsbGV0LmFzc2V0LmFkZGVkJwogICAgRVhURVJOQUxfV0FMTEVUX0RPVF9BU1NFVF9ET1RfUkVNT1ZFRCA9ICdleHRlcm5hbF93YWxsZXQuYXNzZXQucmVtb3ZlZCcKICAgIElOVEVSTkFMX1dBTExFVF9ET1RfQVNTRVRfRE9UX0FEREVEID0gJ2ludGVybmFsX3dhbGxldC5hc3NldC5hZGRlZCcKICAgIElOVEVSTkFMX1dBTExFVF9ET1RfQVNTRVRfRE9UX1JFTU9WRUQgPSAnaW50ZXJuYWxfd2FsbGV0LmFzc2V0LnJlbW92ZWQnCiAgICBDT05UUkFDVF9XQUxMRVRfRE9UX0FTU0VUX0RPVF9BRERFRCA9ICdjb250cmFjdF93YWxsZXQuYXNzZXQuYWRkZWQnCiAgICBDT05UUkFDVF9XQUxMRVRfRE9UX0FTU0VUX0RPVF9SRU1PVkVEID0gJ2NvbnRyYWN0X3dhbGxldC5hc3NldC5yZW1vdmVkJwogICAgVkFVTFRfQUNDT1VOVF9ET1RfQ1JFQVRFRCA9ICd2YXVsdF9hY2NvdW50LmNyZWF0ZWQnCiAgICBWQVVMVF9BQ0NPVU5UX0RPVF9BU1NFVF9ET1RfQURERUQgPSAndmF1bHRfYWNjb3VudC5hc3NldC5hZGRlZCcKICAgIFZBVUxUX0FDQ09VTlRfRE9UX0FTU0VUX0RPVF9CQUxBTkNFX1VQREFURUQgPSAndmF1bHRfYWNjb3VudC5hc3NldC5iYWxhbmNlX3VwZGF0ZWQnCiAgICBFTUJFRERFRF9XQUxMRVRfRE9UX1NUQVRVU19ET1RfVVBEQVRFRCA9ICdlbWJlZGRlZF93YWxsZXQuc3RhdHVzLnVwZGF0ZWQnCiAgICBFTUJFRERFRF9XQUxMRVRfRE9UX0NSRUFURUQgPSAnZW1iZWRkZWRfd2FsbGV0LmNyZWF0ZWQnCiAgICBFTUJFRERFRF9XQUxMRVRfRE9UX0FTU0VUX0RPVF9CQUxBTkNFX1VQREFURUQgPSAnZW1iZWRkZWRfd2FsbGV0LmFzc2V0LmJhbGFuY2VfdXBkYXRlZCcKICAgIEVNQkVEREVEX1dBTExFVF9ET1RfQVNTRVRfRE9UX0FEREVEID0gJ2VtYmVkZGVkX3dhbGxldC5hc3NldC5hZGRlZCcKICAgIEVNQkVEREVEX1dBTExFVF9ET1RfQUNDT1VOVF9ET1RfQ1JFQVRFRCA9ICdlbWJlZGRlZF93YWxsZXQuYWNjb3VudC5jcmVhdGVkJwogICAgRU1CRURERURfV0FMTEVUX0RPVF9ERVZJQ0VfRE9UX0FEREVEID0gJ2VtYmVkZGVkX3dhbGxldC5kZXZpY2UuYWRkZWQnCiAgICBPTkNIQUlOX0RBVEFfRE9UX1VQREFURUQgPSAnb25jaGFpbl9kYXRhLnVwZGF0ZWQnCiAgICBDT05ORUNUSU9OX0RPVF9BRERFRCA9ICdjb25uZWN0aW9uLmFkZGVkJwogICAgQ09OTkVDVElPTl9ET1RfUkVNT1ZFRCA9ICdjb25uZWN0aW9uLnJlbW92ZWQnCiAgICBDT05ORUNUSU9OX0RPVF9SRVFVRVNUX0RPVF9XQUlUSU5HX1BFRVJfQVBQUk9WQUwgPSAnY29ubmVjdGlvbi5yZXF1ZXN0LndhaXRpbmdfcGVlcl9hcHByb3ZhbCcKICAgIENPTk5FQ1RJT05fRE9UX1JFUVVFU1RfRE9UX1JFSkVDVEVEX0JZX1BFRVIgPSAnY29ubmVjdGlvbi5yZXF1ZXN0LnJlamVjdGVkX2J5X3BlZXInCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgV2ViaG9va0V2ZW50IGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/webhook_metric.py b/fireblocks/models/webhook_metric.py index b7c6a09b..25900048 100644 --- a/fireblocks/models/webhook_metric.py +++ b/fireblocks/models/webhook_metric.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class WebhookMetric(BaseModel): - """ - WebhookMetric - """ # noqa: E501 - value: StrictStr = Field(description="The value of the metric") - __properties: ClassVar[List[str]] = ["value"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of WebhookMetric from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of WebhookMetric from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "value": obj.get("value") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFdlYmhvb2tNZXRyaWMoQmFzZU1vZGVsKToKICAgICIiIgogICAgV2ViaG9va01ldHJpYwogICAgIiIiICMgbm9xYTogRTUwMQogICAgdmFsdWU6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgdmFsdWUgb2YgdGhlIG1ldHJpYyIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbInZhbHVlIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBXZWJob29rTWV0cmljIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFdlYmhvb2tNZXRyaWMgZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidmFsdWUiOiBvYmouZ2V0KCJ2YWx1ZSIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/webhook_paginated_response.py b/fireblocks/models/webhook_paginated_response.py index f8b0e129..4ef7bb86 100644 --- a/fireblocks/models/webhook_paginated_response.py +++ b/fireblocks/models/webhook_paginated_response.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.webhook import Webhook -from typing import Optional, Set -from typing_extensions import Self - -class WebhookPaginatedResponse(BaseModel): - """ - WebhookPaginatedResponse - """ # noqa: E501 - data: List[Webhook] = Field(description="The data of the current page") - next: Optional[StrictStr] = Field(default=None, description="The ID of the next page") - __properties: ClassVar[List[str]] = ["data", "next"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of WebhookPaginatedResponse from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in data (list) - _items = [] - if self.data: - for _item_data in self.data: - if _item_data: - _items.append(_item_data.to_dict()) - _dict['data'] = _items - # set to None if next (nullable) is None - # and model_fields_set contains the field - if self.next is None and "next" in self.model_fields_set: - _dict['next'] = None - - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of WebhookPaginatedResponse from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "data": [Webhook.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, - "next": obj.get("next") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLndlYmhvb2sgaW1wb3J0IFdlYmhvb2sKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgV2ViaG9va1BhZ2luYXRlZFJlc3BvbnNlKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFdlYmhvb2tQYWdpbmF0ZWRSZXNwb25zZQogICAgIiIiICMgbm9xYTogRTUwMQogICAgZGF0YTogTGlzdFtXZWJob29rXSA9IEZpZWxkKGRlc2NyaXB0aW9uPSJUaGUgZGF0YSBvZiB0aGUgY3VycmVudCBwYWdlIikKICAgIG5leHQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJUaGUgSUQgb2YgdGhlIG5leHQgcGFnZSIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImRhdGEiLCAibmV4dCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgV2ViaG9va1BhZ2luYXRlZFJlc3BvbnNlIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIGRhdGEgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLmRhdGE6CiAgICAgICAgICAgIGZvciBfaXRlbV9kYXRhIGluIHNlbGYuZGF0YToKICAgICAgICAgICAgICAgIGlmIF9pdGVtX2RhdGE6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9kYXRhLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ2RhdGEnXSA9IF9pdGVtcwogICAgICAgICMgc2V0IHRvIE5vbmUgaWYgbmV4dCAobnVsbGFibGUpIGlzIE5vbmUKICAgICAgICAjIGFuZCBtb2RlbF9maWVsZHNfc2V0IGNvbnRhaW5zIHRoZSBmaWVsZAogICAgICAgIGlmIHNlbGYubmV4dCBpcyBOb25lIGFuZCAibmV4dCIgaW4gc2VsZi5tb2RlbF9maWVsZHNfc2V0OgogICAgICAgICAgICBfZGljdFsnbmV4dCddID0gTm9uZQoKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFdlYmhvb2tQYWdpbmF0ZWRSZXNwb25zZSBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJkYXRhIjogW1dlYmhvb2suZnJvbV9kaWN0KF9pdGVtKSBmb3IgX2l0ZW0gaW4gb2JqWyJkYXRhIl1dIGlmIG9iai5nZXQoImRhdGEiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJuZXh0Ijogb2JqLmdldCgibmV4dCIpCiAgICAgICAgfSkKICAgICAgICByZXR1cm4gX29iagoKCg== \ No newline at end of file diff --git a/fireblocks/models/withdraw_request.py b/fireblocks/models/withdraw_request.py index a4d0b207..abff9e16 100644 --- a/fireblocks/models/withdraw_request.py +++ b/fireblocks/models/withdraw_request.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.fee_level import FeeLevel -from typing import Optional, Set -from typing_extensions import Self - -class WithdrawRequest(BaseModel): - """ - WithdrawRequest - """ # noqa: E501 - id: StrictStr = Field(description="id of position to withdraw") - fee: Optional[StrictStr] = Field(default=None, description="Represents the fee for a transaction, which can be specified as a percentage value. Only one of fee/feeLevel is required.") - fee_level: Optional[FeeLevel] = Field(default=None, alias="feeLevel") - tx_note: Optional[StrictStr] = Field(default=None, description="The note to associate with the transactions.", alias="txNote") - amount: Optional[StrictStr] = Field(default=None, description="Amount of tokens to withdraw. Only supported for Cosmos chains to enable partial withdrawals. For other chains, this field is ignored and the entire available amount will be withdrawn. If not provided, the entire available amount will be withdrawn.") - __properties: ClassVar[List[str]] = ["id", "fee", "feeLevel", "txNote", "amount"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of WithdrawRequest from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of WithdrawRequest from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "fee": obj.get("fee"), - "feeLevel": obj.get("feeLevel"), - "txNote": obj.get("txNote"), - "amount": obj.get("amount") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0LCBPcHRpb25hbApmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZV9sZXZlbCBpbXBvcnQgRmVlTGV2ZWwKZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsLCBTZXQKZnJvbSB0eXBpbmdfZXh0ZW5zaW9ucyBpbXBvcnQgU2VsZgoKY2xhc3MgV2l0aGRyYXdSZXF1ZXN0KEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFdpdGhkcmF3UmVxdWVzdAogICAgIiIiICMgbm9xYTogRTUwMQogICAgaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGRlc2NyaXB0aW9uPSJpZCBvZiBwb3NpdGlvbiB0byB3aXRoZHJhdyIpCiAgICBmZWU6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJSZXByZXNlbnRzIHRoZSBmZWUgZm9yIGEgdHJhbnNhY3Rpb24sIHdoaWNoIGNhbiBiZSBzcGVjaWZpZWQgYXMgYSBwZXJjZW50YWdlIHZhbHVlLiBPbmx5IG9uZSBvZiBmZWUvZmVlTGV2ZWwgaXMgcmVxdWlyZWQuIikKICAgIGZlZV9sZXZlbDogT3B0aW9uYWxbRmVlTGV2ZWxdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBhbGlhcz0iZmVlTGV2ZWwiKQogICAgdHhfbm90ZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IlRoZSBub3RlIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSB0cmFuc2FjdGlvbnMuIiwgYWxpYXM9InR4Tm90ZSIpCiAgICBhbW91bnQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJBbW91bnQgb2YgdG9rZW5zIHRvIHdpdGhkcmF3LiBPbmx5IHN1cHBvcnRlZCBmb3IgQ29zbW9zIGNoYWlucyB0byBlbmFibGUgcGFydGlhbCB3aXRoZHJhd2Fscy4gRm9yIG90aGVyIGNoYWlucywgdGhpcyBmaWVsZCBpcyBpZ25vcmVkIGFuZCB0aGUgZW50aXJlIGF2YWlsYWJsZSBhbW91bnQgd2lsbCBiZSB3aXRoZHJhd24uIElmIG5vdCBwcm92aWRlZCwgdGhlIGVudGlyZSBhdmFpbGFibGUgYW1vdW50IHdpbGwgYmUgd2l0aGRyYXduLiIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImlkIiwgImZlZSIsICJmZWVMZXZlbCIsICJ0eE5vdGUiLCAiYW1vdW50Il0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBXaXRoZHJhd1JlcXVlc3QgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgV2l0aGRyYXdSZXF1ZXN0IGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgImZlZSI6IG9iai5nZXQoImZlZSIpLAogICAgICAgICAgICAiZmVlTGV2ZWwiOiBvYmouZ2V0KCJmZWVMZXZlbCIpLAogICAgICAgICAgICAidHhOb3RlIjogb2JqLmdldCgidHhOb3RlIiksCiAgICAgICAgICAgICJhbW91bnQiOiBvYmouZ2V0KCJhbW91bnQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/workflow_config_status.py b/fireblocks/models/workflow_config_status.py index c3b89e0b..0ff92427 100644 --- a/fireblocks/models/workflow_config_status.py +++ b/fireblocks/models/workflow_config_status.py @@ -1,40 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class WorkflowConfigStatus(str, Enum): - """ - WorkflowConfigStatus - """ - - """ - allowed enum values - """ - PENDING = 'PENDING' - VALIDATION_IN_PROGRESS = 'VALIDATION_IN_PROGRESS' - VALIDATION_FAILED = 'VALIDATION_FAILED' - READY_FOR_EXECUTION = 'READY_FOR_EXECUTION' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of WorkflowConfigStatus from a JSON string""" - return cls(json.loads(json_str)) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KZnJvbSBlbnVtIGltcG9ydCBFbnVtCmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCgpjbGFzcyBXb3JrZmxvd0NvbmZpZ1N0YXR1cyhzdHIsIEVudW0pOgogICAgIiIiCiAgICBXb3JrZmxvd0NvbmZpZ1N0YXR1cwogICAgIiIiCgogICAgIiIiCiAgICBhbGxvd2VkIGVudW0gdmFsdWVzCiAgICAiIiIKICAgIFBFTkRJTkcgPSAnUEVORElORycKICAgIFZBTElEQVRJT05fSU5fUFJPR1JFU1MgPSAnVkFMSURBVElPTl9JTl9QUk9HUkVTUycKICAgIFZBTElEQVRJT05fRkFJTEVEID0gJ1ZBTElEQVRJT05fRkFJTEVEJwogICAgUkVBRFlfRk9SX0VYRUNVVElPTiA9ICdSRUFEWV9GT1JfRVhFQ1VUSU9OJwoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFdvcmtmbG93Q29uZmlnU3RhdHVzIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMoanNvbi5sb2Fkcyhqc29uX3N0cikpCgoK \ No newline at end of file diff --git a/fireblocks/models/workflow_configuration_id.py b/fireblocks/models/workflow_configuration_id.py index 9e04cf4e..e2a2ef3d 100644 --- a/fireblocks/models/workflow_configuration_id.py +++ b/fireblocks/models/workflow_configuration_id.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class WorkflowConfigurationId(BaseModel): - """ - WorkflowConfigurationId - """ # noqa: E501 - config_id: StrictStr = Field(alias="configId") - __properties: ClassVar[List[str]] = ["configId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of WorkflowConfigurationId from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of WorkflowConfigurationId from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "configId": obj.get("configId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFdvcmtmbG93Q29uZmlndXJhdGlvbklkKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFdvcmtmbG93Q29uZmlndXJhdGlvbklkCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICBjb25maWdfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJjb25maWdJZCIpCiAgICBfX3Byb3BlcnRpZXM6IENsYXNzVmFyW0xpc3Rbc3RyXV0gPSBbImNvbmZpZ0lkIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBXb3JrZmxvd0NvbmZpZ3VyYXRpb25JZCBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBXb3JrZmxvd0NvbmZpZ3VyYXRpb25JZCBmcm9tIGEgZGljdCIiIgogICAgICAgIGlmIG9iaiBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIGRpY3QpOgogICAgICAgICAgICByZXR1cm4gY2xzLm1vZGVsX3ZhbGlkYXRlKG9iaikKCiAgICAgICAgX29iaiA9IGNscy5tb2RlbF92YWxpZGF0ZSh7CiAgICAgICAgICAgICJjb25maWdJZCI6IG9iai5nZXQoImNvbmZpZ0lkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/workflow_execution_operation.py b/fireblocks/models/workflow_execution_operation.py index 383babf5..d7a1fda7 100644 --- a/fireblocks/models/workflow_execution_operation.py +++ b/fireblocks/models/workflow_execution_operation.py @@ -1,166 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.execution_conversion_operation import ExecutionConversionOperation -from fireblocks.models.execution_disbursement_operation import ExecutionDisbursementOperation -from fireblocks.models.execution_screening_operation import ExecutionScreeningOperation -from fireblocks.models.execution_transfer_operation import ExecutionTransferOperation -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -WORKFLOWEXECUTIONOPERATION_ONE_OF_SCHEMAS = ["ExecutionConversionOperation", "ExecutionDisbursementOperation", "ExecutionScreeningOperation", "ExecutionTransferOperation"] - -class WorkflowExecutionOperation(BaseModel): - """ - WorkflowExecutionOperation - """ - # data type: ExecutionScreeningOperation - oneof_schema_1_validator: Optional[ExecutionScreeningOperation] = None - # data type: ExecutionConversionOperation - oneof_schema_2_validator: Optional[ExecutionConversionOperation] = None - # data type: ExecutionTransferOperation - oneof_schema_3_validator: Optional[ExecutionTransferOperation] = None - # data type: ExecutionDisbursementOperation - oneof_schema_4_validator: Optional[ExecutionDisbursementOperation] = None - actual_instance: Optional[Union[ExecutionConversionOperation, ExecutionDisbursementOperation, ExecutionScreeningOperation, ExecutionTransferOperation]] = None - one_of_schemas: Set[str] = { "ExecutionConversionOperation", "ExecutionDisbursementOperation", "ExecutionScreeningOperation", "ExecutionTransferOperation" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = WorkflowExecutionOperation.model_construct() - error_messages = [] - match = 0 - # validate data type: ExecutionScreeningOperation - if not isinstance(v, ExecutionScreeningOperation): - error_messages.append(f"Error! Input type `{type(v)}` is not `ExecutionScreeningOperation`") - else: - match += 1 - # validate data type: ExecutionConversionOperation - if not isinstance(v, ExecutionConversionOperation): - error_messages.append(f"Error! Input type `{type(v)}` is not `ExecutionConversionOperation`") - else: - match += 1 - # validate data type: ExecutionTransferOperation - if not isinstance(v, ExecutionTransferOperation): - error_messages.append(f"Error! Input type `{type(v)}` is not `ExecutionTransferOperation`") - else: - match += 1 - # validate data type: ExecutionDisbursementOperation - if not isinstance(v, ExecutionDisbursementOperation): - error_messages.append(f"Error! Input type `{type(v)}` is not `ExecutionDisbursementOperation`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in WorkflowExecutionOperation with oneOf schemas: ExecutionConversionOperation, ExecutionDisbursementOperation, ExecutionScreeningOperation, ExecutionTransferOperation. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in WorkflowExecutionOperation with oneOf schemas: ExecutionConversionOperation, ExecutionDisbursementOperation, ExecutionScreeningOperation, ExecutionTransferOperation. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into ExecutionScreeningOperation - try: - instance.actual_instance = ExecutionScreeningOperation.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into ExecutionConversionOperation - try: - instance.actual_instance = ExecutionConversionOperation.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into ExecutionTransferOperation - try: - instance.actual_instance = ExecutionTransferOperation.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into ExecutionDisbursementOperation - try: - instance.actual_instance = ExecutionDisbursementOperation.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into WorkflowExecutionOperation with oneOf schemas: ExecutionConversionOperation, ExecutionDisbursementOperation, ExecutionScreeningOperation, ExecutionTransferOperation. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into WorkflowExecutionOperation with oneOf schemas: ExecutionConversionOperation, ExecutionDisbursementOperation, ExecutionScreeningOperation, ExecutionTransferOperation. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], ExecutionConversionOperation, ExecutionDisbursementOperation, ExecutionScreeningOperation, ExecutionTransferOperation]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhlY3V0aW9uX2NvbnZlcnNpb25fb3BlcmF0aW9uIGltcG9ydCBFeGVjdXRpb25Db252ZXJzaW9uT3BlcmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuZXhlY3V0aW9uX2Rpc2J1cnNlbWVudF9vcGVyYXRpb24gaW1wb3J0IEV4ZWN1dGlvbkRpc2J1cnNlbWVudE9wZXJhdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9zY3JlZW5pbmdfb3BlcmF0aW9uIGltcG9ydCBFeGVjdXRpb25TY3JlZW5pbmdPcGVyYXRpb24KZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5leGVjdXRpb25fdHJhbnNmZXJfb3BlcmF0aW9uIGltcG9ydCBFeGVjdXRpb25UcmFuc2Zlck9wZXJhdGlvbgpmcm9tIHB5ZGFudGljIGltcG9ydCBTdHJpY3RTdHIsIEZpZWxkCmZyb20gdHlwaW5nIGltcG9ydCBVbmlvbiwgTGlzdCwgU2V0LCBPcHRpb25hbCwgRGljdApmcm9tIHR5cGluZ19leHRlbnNpb25zIGltcG9ydCBMaXRlcmFsLCBTZWxmCgpXT1JLRkxPV0VYRUNVVElPTk9QRVJBVElPTl9PTkVfT0ZfU0NIRU1BUyA9IFsiRXhlY3V0aW9uQ29udmVyc2lvbk9wZXJhdGlvbiIsICJFeGVjdXRpb25EaXNidXJzZW1lbnRPcGVyYXRpb24iLCAiRXhlY3V0aW9uU2NyZWVuaW5nT3BlcmF0aW9uIiwgIkV4ZWN1dGlvblRyYW5zZmVyT3BlcmF0aW9uIl0KCmNsYXNzIFdvcmtmbG93RXhlY3V0aW9uT3BlcmF0aW9uKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFdvcmtmbG93RXhlY3V0aW9uT3BlcmF0aW9uCiAgICAiIiIKICAgICMgZGF0YSB0eXBlOiBFeGVjdXRpb25TY3JlZW5pbmdPcGVyYXRpb24KICAgIG9uZW9mX3NjaGVtYV8xX3ZhbGlkYXRvcjogT3B0aW9uYWxbRXhlY3V0aW9uU2NyZWVuaW5nT3BlcmF0aW9uXSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBFeGVjdXRpb25Db252ZXJzaW9uT3BlcmF0aW9uCiAgICBvbmVvZl9zY2hlbWFfMl92YWxpZGF0b3I6IE9wdGlvbmFsW0V4ZWN1dGlvbkNvbnZlcnNpb25PcGVyYXRpb25dID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IEV4ZWN1dGlvblRyYW5zZmVyT3BlcmF0aW9uCiAgICBvbmVvZl9zY2hlbWFfM192YWxpZGF0b3I6IE9wdGlvbmFsW0V4ZWN1dGlvblRyYW5zZmVyT3BlcmF0aW9uXSA9IE5vbmUKICAgICMgZGF0YSB0eXBlOiBFeGVjdXRpb25EaXNidXJzZW1lbnRPcGVyYXRpb24KICAgIG9uZW9mX3NjaGVtYV80X3ZhbGlkYXRvcjogT3B0aW9uYWxbRXhlY3V0aW9uRGlzYnVyc2VtZW50T3BlcmF0aW9uXSA9IE5vbmUKICAgIGFjdHVhbF9pbnN0YW5jZTogT3B0aW9uYWxbVW5pb25bRXhlY3V0aW9uQ29udmVyc2lvbk9wZXJhdGlvbiwgRXhlY3V0aW9uRGlzYnVyc2VtZW50T3BlcmF0aW9uLCBFeGVjdXRpb25TY3JlZW5pbmdPcGVyYXRpb24sIEV4ZWN1dGlvblRyYW5zZmVyT3BlcmF0aW9uXV0gPSBOb25lCiAgICBvbmVfb2Zfc2NoZW1hczogU2V0W3N0cl0gPSB7ICJFeGVjdXRpb25Db252ZXJzaW9uT3BlcmF0aW9uIiwgIkV4ZWN1dGlvbkRpc2J1cnNlbWVudE9wZXJhdGlvbiIsICJFeGVjdXRpb25TY3JlZW5pbmdPcGVyYXRpb24iLCAiRXhlY3V0aW9uVHJhbnNmZXJPcGVyYXRpb24iIH0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncykgLT4gTm9uZToKICAgICAgICBpZiBhcmdzOgogICAgICAgICAgICBpZiBsZW4oYXJncykgPiAxOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBvbmx5IDEgaXMgYWxsb3dlZCB0byBzZXQgYGFjdHVhbF9pbnN0YW5jZWAiKQogICAgICAgICAgICBpZiBrd2FyZ3M6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIGtleXdvcmQgYXJndW1lbnRzIGNhbm5vdCBiZSB1c2VkLiIpCiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oYWN0dWFsX2luc3RhbmNlPWFyZ3NbMF0pCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhY3R1YWxfaW5zdGFuY2UnKQogICAgZGVmIGFjdHVhbF9pbnN0YW5jZV9tdXN0X3ZhbGlkYXRlX29uZW9mKGNscywgdik6CiAgICAgICAgaW5zdGFuY2UgPSBXb3JrZmxvd0V4ZWN1dGlvbk9wZXJhdGlvbi5tb2RlbF9jb25zdHJ1Y3QoKQogICAgICAgIGVycm9yX21lc3NhZ2VzID0gW10KICAgICAgICBtYXRjaCA9IDAKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogRXhlY3V0aW9uU2NyZWVuaW5nT3BlcmF0aW9uCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgRXhlY3V0aW9uU2NyZWVuaW5nT3BlcmF0aW9uKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBFeGVjdXRpb25TY3JlZW5pbmdPcGVyYXRpb25gIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgIyB2YWxpZGF0ZSBkYXRhIHR5cGU6IEV4ZWN1dGlvbkNvbnZlcnNpb25PcGVyYXRpb24KICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBFeGVjdXRpb25Db252ZXJzaW9uT3BlcmF0aW9uKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBFeGVjdXRpb25Db252ZXJzaW9uT3BlcmF0aW9uYCIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBFeGVjdXRpb25UcmFuc2Zlck9wZXJhdGlvbgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIEV4ZWN1dGlvblRyYW5zZmVyT3BlcmF0aW9uKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBFeGVjdXRpb25UcmFuc2Zlck9wZXJhdGlvbmAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogRXhlY3V0aW9uRGlzYnVyc2VtZW50T3BlcmF0aW9uCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgRXhlY3V0aW9uRGlzYnVyc2VtZW50T3BlcmF0aW9uKToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGYiRXJyb3IhIElucHV0IHR5cGUgYHt0eXBlKHYpfWAgaXMgbm90IGBFeGVjdXRpb25EaXNidXJzZW1lbnRPcGVyYXRpb25gIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIFdvcmtmbG93RXhlY3V0aW9uT3BlcmF0aW9uIHdpdGggb25lT2Ygc2NoZW1hczogRXhlY3V0aW9uQ29udmVyc2lvbk9wZXJhdGlvbiwgRXhlY3V0aW9uRGlzYnVyc2VtZW50T3BlcmF0aW9uLCBFeGVjdXRpb25TY3JlZW5pbmdPcGVyYXRpb24sIEV4ZWN1dGlvblRyYW5zZmVyT3BlcmF0aW9uLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIFdvcmtmbG93RXhlY3V0aW9uT3BlcmF0aW9uIHdpdGggb25lT2Ygc2NoZW1hczogRXhlY3V0aW9uQ29udmVyc2lvbk9wZXJhdGlvbiwgRXhlY3V0aW9uRGlzYnVyc2VtZW50T3BlcmF0aW9uLCBFeGVjdXRpb25TY3JlZW5pbmdPcGVyYXRpb24sIEV4ZWN1dGlvblRyYW5zZmVyT3BlcmF0aW9uLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gdgoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogVW5pb25bc3RyLCBEaWN0W3N0ciwgQW55XV0pIC0+IFNlbGY6CiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2pzb24oanNvbi5kdW1wcyhvYmopKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IFNlbGY6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgb2JqZWN0IHJlcHJlc2VudGVkIGJ5IHRoZSBqc29uIHN0cmluZyIiIgogICAgICAgIGluc3RhbmNlID0gY2xzLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAoKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBFeGVjdXRpb25TY3JlZW5pbmdPcGVyYXRpb24KICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IEV4ZWN1dGlvblNjcmVlbmluZ09wZXJhdGlvbi5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBFeGVjdXRpb25Db252ZXJzaW9uT3BlcmF0aW9uCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBFeGVjdXRpb25Db252ZXJzaW9uT3BlcmF0aW9uLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIEV4ZWN1dGlvblRyYW5zZmVyT3BlcmF0aW9uCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpbnN0YW5jZS5hY3R1YWxfaW5zdGFuY2UgPSBFeGVjdXRpb25UcmFuc2Zlck9wZXJhdGlvbi5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKICAgICAgICAjIGRlc2VyaWFsaXplIGRhdGEgaW50byBFeGVjdXRpb25EaXNidXJzZW1lbnRPcGVyYXRpb24KICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IEV4ZWN1dGlvbkRpc2J1cnNlbWVudE9wZXJhdGlvbi5mcm9tX2pzb24oanNvbl9zdHIpCiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICBleGNlcHQgKFZhbGlkYXRpb25FcnJvciwgVmFsdWVFcnJvcikgYXMgZToKICAgICAgICAgICAgZXJyb3JfbWVzc2FnZXMuYXBwZW5kKHN0cihlKSkKCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIFdvcmtmbG93RXhlY3V0aW9uT3BlcmF0aW9uIHdpdGggb25lT2Ygc2NoZW1hczogRXhlY3V0aW9uQ29udmVyc2lvbk9wZXJhdGlvbiwgRXhlY3V0aW9uRGlzYnVyc2VtZW50T3BlcmF0aW9uLCBFeGVjdXRpb25TY3JlZW5pbmdPcGVyYXRpb24sIEV4ZWN1dGlvblRyYW5zZmVyT3BlcmF0aW9uLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIFdvcmtmbG93RXhlY3V0aW9uT3BlcmF0aW9uIHdpdGggb25lT2Ygc2NoZW1hczogRXhlY3V0aW9uQ29udmVyc2lvbk9wZXJhdGlvbiwgRXhlY3V0aW9uRGlzYnVyc2VtZW50T3BlcmF0aW9uLCBFeGVjdXRpb25TY3JlZW5pbmdPcGVyYXRpb24sIEV4ZWN1dGlvblRyYW5zZmVyT3BlcmF0aW9uLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYWN0dWFsIGluc3RhbmNlIiIiCiAgICAgICAgaWYgc2VsZi5hY3R1YWxfaW5zdGFuY2UgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuICJudWxsIgoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fanNvbiIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2pzb24oKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYuYWN0dWFsX2luc3RhbmNlKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IE9wdGlvbmFsW1VuaW9uW0RpY3Rbc3RyLCBBbnldLCBFeGVjdXRpb25Db252ZXJzaW9uT3BlcmF0aW9uLCBFeGVjdXRpb25EaXNidXJzZW1lbnRPcGVyYXRpb24sIEV4ZWN1dGlvblNjcmVlbmluZ09wZXJhdGlvbiwgRXhlY3V0aW9uVHJhbnNmZXJPcGVyYXRpb25dXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgcHJpbWl0aXZlIHR5cGUKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/workspace.py b/fireblocks/models/workspace.py index c05e5ccb..7dbb9fff 100644 --- a/fireblocks/models/workspace.py +++ b/fireblocks/models/workspace.py @@ -1,90 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class Workspace(BaseModel): - """ - Workspace - """ # noqa: E501 - id: StrictStr = Field(description="The ID of the workspace") - name: StrictStr = Field(description="The name of the workspace") - __properties: ClassVar[List[str]] = ["id", "name"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of Workspace from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of Workspace from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "id": obj.get("id"), - "name": obj.get("name") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFdvcmtzcGFjZShCYXNlTW9kZWwpOgogICAgIiIiCiAgICBXb3Jrc3BhY2UKICAgICIiIiAjIG5vcWE6IEU1MDEKICAgIGlkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIElEIG9mIHRoZSB3b3Jrc3BhY2UiKQogICAgbmFtZTogU3RyaWN0U3RyID0gRmllbGQoZGVzY3JpcHRpb249IlRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJpZCIsICJuYW1lIl0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBXb3Jrc3BhY2UgZnJvbSBhIEpTT04gc3RyaW5nIiIiCiAgICAgICAgcmV0dXJuIGNscy5mcm9tX2RpY3QoanNvbi5sb2Fkcyhqc29uX3N0cikpCgogICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06CiAgICAgICAgIiIiUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcy4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tIGNhbGxpbmcgcHlkYW50aWMncwogICAgICAgIGBzZWxmLm1vZGVsX2R1bXAoYnlfYWxpYXM9VHJ1ZSlgOgoKICAgICAgICAqIGBOb25lYCBpcyBvbmx5IGFkZGVkIHRvIHRoZSBvdXRwdXQgZGljdCBmb3IgbnVsbGFibGUgZmllbGRzIHRoYXQKICAgICAgICAgIHdlcmUgc2V0IGF0IG1vZGVsIGluaXRpYWxpemF0aW9uLiBPdGhlciBmaWVsZHMgd2l0aCB2YWx1ZSBgTm9uZWAKICAgICAgICAgIGFyZSBpZ25vcmVkLgogICAgICAgICIiIgogICAgICAgIGV4Y2x1ZGVkX2ZpZWxkczogU2V0W3N0cl0gPSBzZXQoWwogICAgICAgIF0pCgogICAgICAgIF9kaWN0ID0gc2VsZi5tb2RlbF9kdW1wKAogICAgICAgICAgICBieV9hbGlhcz1UcnVlLAogICAgICAgICAgICBleGNsdWRlPWV4Y2x1ZGVkX2ZpZWxkcywKICAgICAgICAgICAgZXhjbHVkZV9ub25lPVRydWUsCiAgICAgICAgKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgV29ya3NwYWNlIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgImlkIjogb2JqLmdldCgiaWQiKSwKICAgICAgICAgICAgIm5hbWUiOiBvYmouZ2V0KCJuYW1lIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/write_abi_function.py b/fireblocks/models/write_abi_function.py index 743947a6..28aa063b 100644 --- a/fireblocks/models/write_abi_function.py +++ b/fireblocks/models/write_abi_function.py @@ -1,128 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.parameter import Parameter -from fireblocks.models.parameter_with_value import ParameterWithValue -from typing import Optional, Set -from typing_extensions import Self - -class WriteAbiFunction(BaseModel): - """ - WriteAbiFunction - """ # noqa: E501 - state_mutability: StrictStr = Field(alias="stateMutability") - outputs: Optional[List[Parameter]] = None - type: StrictStr - name: Optional[StrictStr] = None - inputs: List[ParameterWithValue] - description: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["stateMutability", "outputs", "type", "name", "inputs", "description"] - - @field_validator('state_mutability') - def state_mutability_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['payable', 'nonpayable']): - raise ValueError("must be one of enum values ('payable', 'nonpayable')") - return value - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value not in set(['function']): - raise ValueError("must be one of enum values ('function')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of WriteAbiFunction from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of each item in outputs (list) - _items = [] - if self.outputs: - for _item_outputs in self.outputs: - if _item_outputs: - _items.append(_item_outputs.to_dict()) - _dict['outputs'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in inputs (list) - _items = [] - if self.inputs: - for _item_inputs in self.inputs: - if _item_inputs: - _items.append(_item_inputs.to_dict()) - _dict['inputs'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of WriteAbiFunction from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "stateMutability": obj.get("stateMutability"), - "outputs": [Parameter.from_dict(_item) for _item in obj["outputs"]] if obj.get("outputs") is not None else None, - "type": obj.get("type"), - "name": obj.get("name"), - "inputs": [ParameterWithValue.from_dict(_item) for _item in obj["inputs"]] if obj.get("inputs") is not None else None, - "description": obj.get("description") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyIGltcG9ydCBQYXJhbWV0ZXIKZnJvbSBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXJfd2l0aF92YWx1ZSBpbXBvcnQgUGFyYW1ldGVyV2l0aFZhbHVlCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFdyaXRlQWJpRnVuY3Rpb24oQmFzZU1vZGVsKToKICAgICIiIgogICAgV3JpdGVBYmlGdW5jdGlvbgogICAgIiIiICMgbm9xYTogRTUwMQogICAgc3RhdGVfbXV0YWJpbGl0eTogU3RyaWN0U3RyID0gRmllbGQoYWxpYXM9InN0YXRlTXV0YWJpbGl0eSIpCiAgICBvdXRwdXRzOiBPcHRpb25hbFtMaXN0W1BhcmFtZXRlcl1dID0gTm9uZQogICAgdHlwZTogU3RyaWN0U3RyCiAgICBuYW1lOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgaW5wdXRzOiBMaXN0W1BhcmFtZXRlcldpdGhWYWx1ZV0KICAgIGRlc2NyaXB0aW9uOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gTm9uZQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJzdGF0ZU11dGFiaWxpdHkiLCAib3V0cHV0cyIsICJ0eXBlIiwgIm5hbWUiLCAiaW5wdXRzIiwgImRlc2NyaXB0aW9uIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdzdGF0ZV9tdXRhYmlsaXR5JykKICAgIGRlZiBzdGF0ZV9tdXRhYmlsaXR5X3ZhbGlkYXRlX2VudW0oY2xzLCB2YWx1ZSk6CiAgICAgICAgIiIiVmFsaWRhdGVzIHRoZSBlbnVtIiIiCiAgICAgICAgaWYgdmFsdWUgbm90IGluIHNldChbJ3BheWFibGUnLCAnbm9ucGF5YWJsZSddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdwYXlhYmxlJywgJ25vbnBheWFibGUnKSIpCiAgICAgICAgcmV0dXJuIHZhbHVlCgogICAgQGZpZWxkX3ZhbGlkYXRvcigndHlwZScpCiAgICBkZWYgdHlwZV92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZXQoWydmdW5jdGlvbiddKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibXVzdCBiZSBvbmUgb2YgZW51bSB2YWx1ZXMgKCdmdW5jdGlvbicpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBXcml0ZUFiaUZ1bmN0aW9uIGZyb20gYSBKU09OIHN0cmluZyIiIgogICAgICAgIHJldHVybiBjbHMuZnJvbV9kaWN0KGpzb24ubG9hZHMoanNvbl9zdHIpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgogICAgICAgICIiIlJldHVybiB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMuCgogICAgICAgIFRoaXMgaGFzIHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXMgZnJvbSBjYWxsaW5nIHB5ZGFudGljJ3MKICAgICAgICBgc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpYDoKCiAgICAgICAgKiBgTm9uZWAgaXMgb25seSBhZGRlZCB0byB0aGUgb3V0cHV0IGRpY3QgZm9yIG51bGxhYmxlIGZpZWxkcyB0aGF0CiAgICAgICAgICB3ZXJlIHNldCBhdCBtb2RlbCBpbml0aWFsaXphdGlvbi4gT3RoZXIgZmllbGRzIHdpdGggdmFsdWUgYE5vbmVgCiAgICAgICAgICBhcmUgaWdub3JlZC4KICAgICAgICAiIiIKICAgICAgICBleGNsdWRlZF9maWVsZHM6IFNldFtzdHJdID0gc2V0KFsKICAgICAgICBdKQoKICAgICAgICBfZGljdCA9IHNlbGYubW9kZWxfZHVtcCgKICAgICAgICAgICAgYnlfYWxpYXM9VHJ1ZSwKICAgICAgICAgICAgZXhjbHVkZT1leGNsdWRlZF9maWVsZHMsCiAgICAgICAgICAgIGV4Y2x1ZGVfbm9uZT1UcnVlLAogICAgICAgICkKICAgICAgICAjIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG91dHB1dCBmcm9tIHB5ZGFudGljIGJ5IGNhbGxpbmcgYHRvX2RpY3QoKWAgb2YgZWFjaCBpdGVtIGluIG91dHB1dHMgKGxpc3QpCiAgICAgICAgX2l0ZW1zID0gW10KICAgICAgICBpZiBzZWxmLm91dHB1dHM6CiAgICAgICAgICAgIGZvciBfaXRlbV9vdXRwdXRzIGluIHNlbGYub3V0cHV0czoKICAgICAgICAgICAgICAgIGlmIF9pdGVtX291dHB1dHM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9vdXRwdXRzLnRvX2RpY3QoKSkKICAgICAgICAgICAgX2RpY3RbJ291dHB1dHMnXSA9IF9pdGVtcwogICAgICAgICMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3V0cHV0IGZyb20gcHlkYW50aWMgYnkgY2FsbGluZyBgdG9fZGljdCgpYCBvZiBlYWNoIGl0ZW0gaW4gaW5wdXRzIChsaXN0KQogICAgICAgIF9pdGVtcyA9IFtdCiAgICAgICAgaWYgc2VsZi5pbnB1dHM6CiAgICAgICAgICAgIGZvciBfaXRlbV9pbnB1dHMgaW4gc2VsZi5pbnB1dHM6CiAgICAgICAgICAgICAgICBpZiBfaXRlbV9pbnB1dHM6CiAgICAgICAgICAgICAgICAgICAgX2l0ZW1zLmFwcGVuZChfaXRlbV9pbnB1dHMudG9fZGljdCgpKQogICAgICAgICAgICBfZGljdFsnaW5wdXRzJ10gPSBfaXRlbXMKICAgICAgICByZXR1cm4gX2RpY3QKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2RpY3QoY2xzLCBvYmo6IE9wdGlvbmFsW0RpY3Rbc3RyLCBBbnldXSkgLT4gT3B0aW9uYWxbU2VsZl06CiAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFdyaXRlQWJpRnVuY3Rpb24gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAic3RhdGVNdXRhYmlsaXR5Ijogb2JqLmdldCgic3RhdGVNdXRhYmlsaXR5IiksCiAgICAgICAgICAgICJvdXRwdXRzIjogW1BhcmFtZXRlci5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbIm91dHB1dHMiXV0gaWYgb2JqLmdldCgib3V0cHV0cyIpIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgICAgInR5cGUiOiBvYmouZ2V0KCJ0eXBlIiksCiAgICAgICAgICAgICJuYW1lIjogb2JqLmdldCgibmFtZSIpLAogICAgICAgICAgICAiaW5wdXRzIjogW1BhcmFtZXRlcldpdGhWYWx1ZS5mcm9tX2RpY3QoX2l0ZW0pIGZvciBfaXRlbSBpbiBvYmpbImlucHV0cyJdXSBpZiBvYmouZ2V0KCJpbnB1dHMiKSBpcyBub3QgTm9uZSBlbHNlIE5vbmUsCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IG9iai5nZXQoImRlc2NyaXB0aW9uIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/models/write_call_function_dto.py b/fireblocks/models/write_call_function_dto.py index a97941c5..4471afd4 100644 --- a/fireblocks/models/write_call_function_dto.py +++ b/fireblocks/models/write_call_function_dto.py @@ -1,116 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional -from fireblocks.models.write_call_function_dto_abi_function import WriteCallFunctionDtoAbiFunction -from typing import Optional, Set -from typing_extensions import Self - -class WriteCallFunctionDto(BaseModel): - """ - WriteCallFunctionDto - """ # noqa: E501 - vault_account_id: StrictStr = Field(description="The vault account id this contract was deploy from", alias="vaultAccountId") - abi_function: WriteCallFunctionDtoAbiFunction = Field(alias="abiFunction") - amount: Optional[StrictStr] = Field(default=None, description="Amount in base asset. Being used in payable functions") - fee_level: Optional[StrictStr] = Field(default=None, description="Fee level for the write function transaction. interchangeable with the 'fee' field", alias="feeLevel") - fee: Optional[StrictStr] = Field(default=None, description="Max fee amount for the write function transaction. interchangeable with the 'feeLevel' field") - note: Optional[StrictStr] = Field(default=None, description="Custom note, not sent to the blockchain, that describes the transaction at your Fireblocks workspace") - use_gasless: Optional[StrictBool] = Field(default=None, description="Indicates whether the token should be created in a gasless manner, utilizing the ERC-2771 standard. When set to true, the transaction will be relayed by a designated relayer. The workspace must be configured to use Fireblocks gasless relay.", alias="useGasless") - external_id: Optional[StrictStr] = Field(default=None, description="External id that can be used to identify the transaction in your system. The unique identifier of the transaction outside of Fireblocks with max length of 255 characters", alias="externalId") - __properties: ClassVar[List[str]] = ["vaultAccountId", "abiFunction", "amount", "feeLevel", "fee", "note", "useGasless", "externalId"] - - @field_validator('fee_level') - def fee_level_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['LOW', 'MEDIUM', 'HIGH']): - raise ValueError("must be one of enum values ('LOW', 'MEDIUM', 'HIGH')") - return value - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of WriteCallFunctionDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - # override the default output from pydantic by calling `to_dict()` of abi_function - if self.abi_function: - _dict['abiFunction'] = self.abi_function.to_dict() - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of WriteCallFunctionDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "vaultAccountId": obj.get("vaultAccountId"), - "abiFunction": WriteCallFunctionDtoAbiFunction.from_dict(obj["abiFunction"]) if obj.get("abiFunction") is not None else None, - "amount": obj.get("amount"), - "feeLevel": obj.get("feeLevel"), - "fee": obj.get("fee"), - "note": obj.get("note"), - "useGasless": obj.get("useGasless"), - "externalId": obj.get("externalId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0Qm9vbCwgU3RyaWN0U3RyLCBmaWVsZF92YWxpZGF0b3IKZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2xhc3NWYXIsIERpY3QsIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud3JpdGVfY2FsbF9mdW5jdGlvbl9kdG9fYWJpX2Z1bmN0aW9uIGltcG9ydCBXcml0ZUNhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uCmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFdyaXRlQ2FsbEZ1bmN0aW9uRHRvKEJhc2VNb2RlbCk6CiAgICAiIiIKICAgIFdyaXRlQ2FsbEZ1bmN0aW9uRHRvCiAgICAiIiIgIyBub3FhOiBFNTAxCiAgICB2YXVsdF9hY2NvdW50X2lkOiBTdHJpY3RTdHIgPSBGaWVsZChkZXNjcmlwdGlvbj0iVGhlIHZhdWx0IGFjY291bnQgaWQgdGhpcyBjb250cmFjdCB3YXMgZGVwbG95IGZyb20iLCBhbGlhcz0idmF1bHRBY2NvdW50SWQiKQogICAgYWJpX2Z1bmN0aW9uOiBXcml0ZUNhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uID0gRmllbGQoYWxpYXM9ImFiaUZ1bmN0aW9uIikKICAgIGFtb3VudDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkFtb3VudCBpbiBiYXNlIGFzc2V0LiBCZWluZyB1c2VkIGluIHBheWFibGUgZnVuY3Rpb25zIikKICAgIGZlZV9sZXZlbDogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkZlZSBsZXZlbCBmb3IgdGhlIHdyaXRlIGZ1bmN0aW9uIHRyYW5zYWN0aW9uLiBpbnRlcmNoYW5nZWFibGUgd2l0aCB0aGUgJ2ZlZScgZmllbGQiLCBhbGlhcz0iZmVlTGV2ZWwiKQogICAgZmVlOiBPcHRpb25hbFtTdHJpY3RTdHJdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iTWF4IGZlZSBhbW91bnQgZm9yIHRoZSB3cml0ZSBmdW5jdGlvbiB0cmFuc2FjdGlvbi4gaW50ZXJjaGFuZ2VhYmxlIHdpdGggdGhlICdmZWVMZXZlbCcgZmllbGQiKQogICAgbm90ZTogT3B0aW9uYWxbU3RyaWN0U3RyXSA9IEZpZWxkKGRlZmF1bHQ9Tm9uZSwgZGVzY3JpcHRpb249IkN1c3RvbSBub3RlLCBub3Qgc2VudCB0byB0aGUgYmxvY2tjaGFpbiwgdGhhdCBkZXNjcmliZXMgdGhlIHRyYW5zYWN0aW9uIGF0IHlvdXIgRmlyZWJsb2NrcyB3b3Jrc3BhY2UiKQogICAgdXNlX2dhc2xlc3M6IE9wdGlvbmFsW1N0cmljdEJvb2xdID0gRmllbGQoZGVmYXVsdD1Ob25lLCBkZXNjcmlwdGlvbj0iSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRva2VuIHNob3VsZCBiZSBjcmVhdGVkIGluIGEgZ2FzbGVzcyBtYW5uZXIsIHV0aWxpemluZyB0aGUgRVJDLTI3NzEgc3RhbmRhcmQuIFdoZW4gc2V0IHRvIHRydWUsIHRoZSB0cmFuc2FjdGlvbiB3aWxsIGJlIHJlbGF5ZWQgYnkgYSBkZXNpZ25hdGVkIHJlbGF5ZXIuIFRoZSB3b3Jrc3BhY2UgbXVzdCBiZSBjb25maWd1cmVkIHRvIHVzZSBGaXJlYmxvY2tzIGdhc2xlc3MgcmVsYXkuIiwgYWxpYXM9InVzZUdhc2xlc3MiKQogICAgZXh0ZXJuYWxfaWQ6IE9wdGlvbmFsW1N0cmljdFN0cl0gPSBGaWVsZChkZWZhdWx0PU5vbmUsIGRlc2NyaXB0aW9uPSJFeHRlcm5hbCBpZCB0aGF0IGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSB0cmFuc2FjdGlvbiBpbiB5b3VyIHN5c3RlbS4gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSB0cmFuc2FjdGlvbiBvdXRzaWRlIG9mIEZpcmVibG9ja3Mgd2l0aCBtYXggbGVuZ3RoIG9mIDI1NSBjaGFyYWN0ZXJzIiwgYWxpYXM9ImV4dGVybmFsSWQiKQogICAgX19wcm9wZXJ0aWVzOiBDbGFzc1ZhcltMaXN0W3N0cl1dID0gWyJ2YXVsdEFjY291bnRJZCIsICJhYmlGdW5jdGlvbiIsICJhbW91bnQiLCAiZmVlTGV2ZWwiLCAiZmVlIiwgIm5vdGUiLCAidXNlR2FzbGVzcyIsICJleHRlcm5hbElkIl0KCiAgICBAZmllbGRfdmFsaWRhdG9yKCdmZWVfbGV2ZWwnKQogICAgZGVmIGZlZV9sZXZlbF92YWxpZGF0ZV9lbnVtKGNscywgdmFsdWUpOgogICAgICAgICIiIlZhbGlkYXRlcyB0aGUgZW51bSIiIgogICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgICAgICBpZiB2YWx1ZSBub3QgaW4gc2V0KFsnTE9XJywgJ01FRElVTScsICdISUdIJ10pOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGJlIG9uZSBvZiBlbnVtIHZhbHVlcyAoJ0xPVycsICdNRURJVU0nLCAnSElHSCcpIikKICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHBvcHVsYXRlX2J5X25hbWU9VHJ1ZSwKICAgICAgICB2YWxpZGF0ZV9hc3NpZ25tZW50PVRydWUsCiAgICAgICAgcHJvdGVjdGVkX25hbWVzcGFjZXM9KCksCiAgICApCgoKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgICMgVE9ETzogcHlkYW50aWMgdjI6IHVzZSAubW9kZWxfZHVtcF9qc29uKGJ5X2FsaWFzPVRydWUsIGV4Y2x1ZGVfdW5zZXQ9VHJ1ZSkgaW5zdGVhZAogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fanNvbihjbHMsIGpzb25fc3RyOiBzdHIpIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBXcml0ZUNhbGxGdW5jdGlvbkR0byBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgIyBvdmVycmlkZSB0aGUgZGVmYXVsdCBvdXRwdXQgZnJvbSBweWRhbnRpYyBieSBjYWxsaW5nIGB0b19kaWN0KClgIG9mIGFiaV9mdW5jdGlvbgogICAgICAgIGlmIHNlbGYuYWJpX2Z1bmN0aW9uOgogICAgICAgICAgICBfZGljdFsnYWJpRnVuY3Rpb24nXSA9IHNlbGYuYWJpX2Z1bmN0aW9uLnRvX2RpY3QoKQogICAgICAgIHJldHVybiBfZGljdAoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGZyb21fZGljdChjbHMsIG9iajogT3B0aW9uYWxbRGljdFtzdHIsIEFueV1dKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgV3JpdGVDYWxsRnVuY3Rpb25EdG8gZnJvbSBhIGRpY3QiIiIKICAgICAgICBpZiBvYmogaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKICAgICAgICAgICAgcmV0dXJuIGNscy5tb2RlbF92YWxpZGF0ZShvYmopCgogICAgICAgIF9vYmogPSBjbHMubW9kZWxfdmFsaWRhdGUoewogICAgICAgICAgICAidmF1bHRBY2NvdW50SWQiOiBvYmouZ2V0KCJ2YXVsdEFjY291bnRJZCIpLAogICAgICAgICAgICAiYWJpRnVuY3Rpb24iOiBXcml0ZUNhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uLmZyb21fZGljdChvYmpbImFiaUZ1bmN0aW9uIl0pIGlmIG9iai5nZXQoImFiaUZ1bmN0aW9uIikgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgICAgICAgICAiYW1vdW50Ijogb2JqLmdldCgiYW1vdW50IiksCiAgICAgICAgICAgICJmZWVMZXZlbCI6IG9iai5nZXQoImZlZUxldmVsIiksCiAgICAgICAgICAgICJmZWUiOiBvYmouZ2V0KCJmZWUiKSwKICAgICAgICAgICAgIm5vdGUiOiBvYmouZ2V0KCJub3RlIiksCiAgICAgICAgICAgICJ1c2VHYXNsZXNzIjogb2JqLmdldCgidXNlR2FzbGVzcyIpLAogICAgICAgICAgICAiZXh0ZXJuYWxJZCI6IG9iai5nZXQoImV4dGVybmFsSWQiKQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIF9vYmoKCgo= \ No newline at end of file diff --git a/fireblocks/models/write_call_function_dto_abi_function.py b/fireblocks/models/write_call_function_dto_abi_function.py index cb54f864..b8e08404 100644 --- a/fireblocks/models/write_call_function_dto_abi_function.py +++ b/fireblocks/models/write_call_function_dto_abi_function.py @@ -1,138 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator -from typing import Any, List, Optional -from fireblocks.models.solana_instruction_with_value import SolanaInstructionWithValue -from fireblocks.models.write_abi_function import WriteAbiFunction -from pydantic import StrictStr, Field -from typing import Union, List, Set, Optional, Dict -from typing_extensions import Literal, Self - -WRITECALLFUNCTIONDTOABIFUNCTION_ONE_OF_SCHEMAS = ["SolanaInstructionWithValue", "WriteAbiFunction"] - -class WriteCallFunctionDtoAbiFunction(BaseModel): - """ - WriteCallFunctionDtoAbiFunction - """ - # data type: WriteAbiFunction - oneof_schema_1_validator: Optional[WriteAbiFunction] = None - # data type: SolanaInstructionWithValue - oneof_schema_2_validator: Optional[SolanaInstructionWithValue] = None - actual_instance: Optional[Union[SolanaInstructionWithValue, WriteAbiFunction]] = None - one_of_schemas: Set[str] = { "SolanaInstructionWithValue", "WriteAbiFunction" } - - model_config = ConfigDict( - validate_assignment=True, - protected_namespaces=(), - ) - - - def __init__(self, *args, **kwargs) -> None: - if args: - if len(args) > 1: - raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") - if kwargs: - raise ValueError("If a position argument is used, keyword arguments cannot be used.") - super().__init__(actual_instance=args[0]) - else: - super().__init__(**kwargs) - - @field_validator('actual_instance') - def actual_instance_must_validate_oneof(cls, v): - instance = WriteCallFunctionDtoAbiFunction.model_construct() - error_messages = [] - match = 0 - # validate data type: WriteAbiFunction - if not isinstance(v, WriteAbiFunction): - error_messages.append(f"Error! Input type `{type(v)}` is not `WriteAbiFunction`") - else: - match += 1 - # validate data type: SolanaInstructionWithValue - if not isinstance(v, SolanaInstructionWithValue): - error_messages.append(f"Error! Input type `{type(v)}` is not `SolanaInstructionWithValue`") - else: - match += 1 - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in WriteCallFunctionDtoAbiFunction with oneOf schemas: SolanaInstructionWithValue, WriteAbiFunction. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when setting `actual_instance` in WriteCallFunctionDtoAbiFunction with oneOf schemas: SolanaInstructionWithValue, WriteAbiFunction. Details: " + ", ".join(error_messages)) - else: - return v - - @classmethod - def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: - return cls.from_json(json.dumps(obj)) - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Returns the object represented by the json string""" - instance = cls.model_construct() - error_messages = [] - match = 0 - - # deserialize data into WriteAbiFunction - try: - instance.actual_instance = WriteAbiFunction.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - # deserialize data into SolanaInstructionWithValue - try: - instance.actual_instance = SolanaInstructionWithValue.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) - - if match > 1: - # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into WriteCallFunctionDtoAbiFunction with oneOf schemas: SolanaInstructionWithValue, WriteAbiFunction. Details: " + ", ".join(error_messages)) - elif match == 0: - # no match - raise ValueError("No match found when deserializing the JSON string into WriteCallFunctionDtoAbiFunction with oneOf schemas: SolanaInstructionWithValue, WriteAbiFunction. Details: " + ", ".join(error_messages)) - else: - return instance - - def to_json(self) -> str: - """Returns the JSON representation of the actual instance""" - if self.actual_instance is None: - return "null" - - if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): - return self.actual_instance.to_json() - else: - return json.dumps(self.actual_instance) - - def to_dict(self) -> Optional[Union[Dict[str, Any], SolanaInstructionWithValue, WriteAbiFunction]]: - """Returns the dict representation of the actual instance""" - if self.actual_instance is None: - return None - - if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): - return self.actual_instance.to_dict() - else: - # primitive type - return self.actual_instance - - def to_str(self) -> str: - """Returns the string representation of the actual instance""" - return pprint.pformat(self.model_dump()) - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludApmcm9tIHB5ZGFudGljIGltcG9ydCBCYXNlTW9kZWwsIENvbmZpZ0RpY3QsIEZpZWxkLCBTdHJpY3RTdHIsIFZhbGlkYXRpb25FcnJvciwgZmllbGRfdmFsaWRhdG9yCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMuc29sYW5hX2luc3RydWN0aW9uX3dpdGhfdmFsdWUgaW1wb3J0IFNvbGFuYUluc3RydWN0aW9uV2l0aFZhbHVlCmZyb20gZmlyZWJsb2Nrcy5tb2RlbHMud3JpdGVfYWJpX2Z1bmN0aW9uIGltcG9ydCBXcml0ZUFiaUZ1bmN0aW9uCmZyb20gcHlkYW50aWMgaW1wb3J0IFN0cmljdFN0ciwgRmllbGQKZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uLCBMaXN0LCBTZXQsIE9wdGlvbmFsLCBEaWN0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IExpdGVyYWwsIFNlbGYKCldSSVRFQ0FMTEZVTkNUSU9ORFRPQUJJRlVOQ1RJT05fT05FX09GX1NDSEVNQVMgPSBbIlNvbGFuYUluc3RydWN0aW9uV2l0aFZhbHVlIiwgIldyaXRlQWJpRnVuY3Rpb24iXQoKY2xhc3MgV3JpdGVDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbihCYXNlTW9kZWwpOgogICAgIiIiCiAgICBXcml0ZUNhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uCiAgICAiIiIKICAgICMgZGF0YSB0eXBlOiBXcml0ZUFiaUZ1bmN0aW9uCiAgICBvbmVvZl9zY2hlbWFfMV92YWxpZGF0b3I6IE9wdGlvbmFsW1dyaXRlQWJpRnVuY3Rpb25dID0gTm9uZQogICAgIyBkYXRhIHR5cGU6IFNvbGFuYUluc3RydWN0aW9uV2l0aFZhbHVlCiAgICBvbmVvZl9zY2hlbWFfMl92YWxpZGF0b3I6IE9wdGlvbmFsW1NvbGFuYUluc3RydWN0aW9uV2l0aFZhbHVlXSA9IE5vbmUKICAgIGFjdHVhbF9pbnN0YW5jZTogT3B0aW9uYWxbVW5pb25bU29sYW5hSW5zdHJ1Y3Rpb25XaXRoVmFsdWUsIFdyaXRlQWJpRnVuY3Rpb25dXSA9IE5vbmUKICAgIG9uZV9vZl9zY2hlbWFzOiBTZXRbc3RyXSA9IHsgIlNvbGFuYUluc3RydWN0aW9uV2l0aFZhbHVlIiwgIldyaXRlQWJpRnVuY3Rpb24iIH0KCiAgICBtb2RlbF9jb25maWcgPSBDb25maWdEaWN0KAogICAgICAgIHZhbGlkYXRlX2Fzc2lnbm1lbnQ9VHJ1ZSwKICAgICAgICBwcm90ZWN0ZWRfbmFtZXNwYWNlcz0oKSwKICAgICkKCgogICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncykgLT4gTm9uZToKICAgICAgICBpZiBhcmdzOgogICAgICAgICAgICBpZiBsZW4oYXJncykgPiAxOgogICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgYSBwb3NpdGlvbiBhcmd1bWVudCBpcyB1c2VkLCBvbmx5IDEgaXMgYWxsb3dlZCB0byBzZXQgYGFjdHVhbF9pbnN0YW5jZWAiKQogICAgICAgICAgICBpZiBrd2FyZ3M6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJZiBhIHBvc2l0aW9uIGFyZ3VtZW50IGlzIHVzZWQsIGtleXdvcmQgYXJndW1lbnRzIGNhbm5vdCBiZSB1c2VkLiIpCiAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oYWN0dWFsX2luc3RhbmNlPWFyZ3NbMF0pCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKCiAgICBAZmllbGRfdmFsaWRhdG9yKCdhY3R1YWxfaW5zdGFuY2UnKQogICAgZGVmIGFjdHVhbF9pbnN0YW5jZV9tdXN0X3ZhbGlkYXRlX29uZW9mKGNscywgdik6CiAgICAgICAgaW5zdGFuY2UgPSBXcml0ZUNhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uLm1vZGVsX2NvbnN0cnVjdCgpCiAgICAgICAgZXJyb3JfbWVzc2FnZXMgPSBbXQogICAgICAgIG1hdGNoID0gMAogICAgICAgICMgdmFsaWRhdGUgZGF0YSB0eXBlOiBXcml0ZUFiaUZ1bmN0aW9uCiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgV3JpdGVBYmlGdW5jdGlvbik6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgV3JpdGVBYmlGdW5jdGlvbmAiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIG1hdGNoICs9IDEKICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZTogU29sYW5hSW5zdHJ1Y3Rpb25XaXRoVmFsdWUKICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBTb2xhbmFJbnN0cnVjdGlvbldpdGhWYWx1ZSk6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChmIkVycm9yISBJbnB1dCB0eXBlIGB7dHlwZSh2KX1gIGlzIG5vdCBgU29sYW5hSW5zdHJ1Y3Rpb25XaXRoVmFsdWVgIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgaWYgbWF0Y2ggPiAxOgogICAgICAgICAgICAjIG1vcmUgdGhhbiAxIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpcGxlIG1hdGNoZXMgZm91bmQgd2hlbiBzZXR0aW5nIGBhY3R1YWxfaW5zdGFuY2VgIGluIFdyaXRlQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb24gd2l0aCBvbmVPZiBzY2hlbWFzOiBTb2xhbmFJbnN0cnVjdGlvbldpdGhWYWx1ZSwgV3JpdGVBYmlGdW5jdGlvbi4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxpZiBtYXRjaCA9PSAwOgogICAgICAgICAgICAjIG5vIG1hdGNoCiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIG1hdGNoIGZvdW5kIHdoZW4gc2V0dGluZyBgYWN0dWFsX2luc3RhbmNlYCBpbiBXcml0ZUNhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uIHdpdGggb25lT2Ygc2NoZW1hczogU29sYW5hSW5zdHJ1Y3Rpb25XaXRoVmFsdWUsIFdyaXRlQWJpRnVuY3Rpb24uIERldGFpbHM6ICIgKyAiLCAiLmpvaW4oZXJyb3JfbWVzc2FnZXMpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiB2CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBVbmlvbltzdHIsIERpY3Rbc3RyLCBBbnldXSkgLT4gU2VsZjoKICAgICAgICByZXR1cm4gY2xzLmZyb21fanNvbihqc29uLmR1bXBzKG9iaikpCgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9qc29uKGNscywganNvbl9zdHI6IHN0cikgLT4gU2VsZjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgdGhlIGpzb24gc3RyaW5nIiIiCiAgICAgICAgaW5zdGFuY2UgPSBjbHMubW9kZWxfY29uc3RydWN0KCkKICAgICAgICBlcnJvcl9tZXNzYWdlcyA9IFtdCiAgICAgICAgbWF0Y2ggPSAwCgogICAgICAgICMgZGVzZXJpYWxpemUgZGF0YSBpbnRvIFdyaXRlQWJpRnVuY3Rpb24KICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IFdyaXRlQWJpRnVuY3Rpb24uZnJvbV9qc29uKGpzb25fc3RyKQogICAgICAgICAgICBtYXRjaCArPSAxCiAgICAgICAgZXhjZXB0IChWYWxpZGF0aW9uRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CiAgICAgICAgICAgIGVycm9yX21lc3NhZ2VzLmFwcGVuZChzdHIoZSkpCiAgICAgICAgIyBkZXNlcmlhbGl6ZSBkYXRhIGludG8gU29sYW5hSW5zdHJ1Y3Rpb25XaXRoVmFsdWUKICAgICAgICB0cnk6CiAgICAgICAgICAgIGluc3RhbmNlLmFjdHVhbF9pbnN0YW5jZSA9IFNvbGFuYUluc3RydWN0aW9uV2l0aFZhbHVlLmZyb21fanNvbihqc29uX3N0cikKICAgICAgICAgICAgbWF0Y2ggKz0gMQogICAgICAgIGV4Y2VwdCAoVmFsaWRhdGlvbkVycm9yLCBWYWx1ZUVycm9yKSBhcyBlOgogICAgICAgICAgICBlcnJvcl9tZXNzYWdlcy5hcHBlbmQoc3RyKGUpKQoKICAgICAgICBpZiBtYXRjaCA+IDE6CiAgICAgICAgICAgICMgbW9yZSB0aGFuIDEgbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVsdGlwbGUgbWF0Y2hlcyBmb3VuZCB3aGVuIGRlc2VyaWFsaXppbmcgdGhlIEpTT04gc3RyaW5nIGludG8gV3JpdGVDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbiB3aXRoIG9uZU9mIHNjaGVtYXM6IFNvbGFuYUluc3RydWN0aW9uV2l0aFZhbHVlLCBXcml0ZUFiaUZ1bmN0aW9uLiBEZXRhaWxzOiAiICsgIiwgIi5qb2luKGVycm9yX21lc3NhZ2VzKSkKICAgICAgICBlbGlmIG1hdGNoID09IDA6CiAgICAgICAgICAgICMgbm8gbWF0Y2gKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gbWF0Y2ggZm91bmQgd2hlbiBkZXNlcmlhbGl6aW5nIHRoZSBKU09OIHN0cmluZyBpbnRvIFdyaXRlQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb24gd2l0aCBvbmVPZiBzY2hlbWFzOiBTb2xhbmFJbnN0cnVjdGlvbldpdGhWYWx1ZSwgV3JpdGVBYmlGdW5jdGlvbi4gRGV0YWlsczogIiArICIsICIuam9pbihlcnJvcl9tZXNzYWdlcykpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlCgogICAgZGVmIHRvX2pzb24oc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBpbnN0YW5jZSIiIgogICAgICAgIGlmIHNlbGYuYWN0dWFsX2luc3RhbmNlIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiAibnVsbCIKCiAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFjdHVhbF9pbnN0YW5jZSwgInRvX2pzb24iKSBhbmQgY2FsbGFibGUoc2VsZi5hY3R1YWxfaW5zdGFuY2UudG9fanNvbik6CiAgICAgICAgICAgIHJldHVybiBzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19qc29uKCkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLmFjdHVhbF9pbnN0YW5jZSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBPcHRpb25hbFtVbmlvbltEaWN0W3N0ciwgQW55XSwgU29sYW5hSW5zdHJ1Y3Rpb25XaXRoVmFsdWUsIFdyaXRlQWJpRnVuY3Rpb25dXToKICAgICAgICAiIiJSZXR1cm5zIHRoZSBkaWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICBpZiBzZWxmLmFjdHVhbF9pbnN0YW5jZSBpcyBOb25lOgogICAgICAgICAgICByZXR1cm4gTm9uZQoKICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYWN0dWFsX2luc3RhbmNlLCAidG9fZGljdCIpIGFuZCBjYWxsYWJsZShzZWxmLmFjdHVhbF9pbnN0YW5jZS50b19kaWN0KToKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlLnRvX2RpY3QoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgICMgcHJpbWl0aXZlIHR5cGUKICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX2luc3RhbmNlCgogICAgZGVmIHRvX3N0cihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3R1YWwgaW5zdGFuY2UiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKCkpCgoK \ No newline at end of file diff --git a/fireblocks/models/write_call_function_response_dto.py b/fireblocks/models/write_call_function_response_dto.py index 7c40b618..b7b18b57 100644 --- a/fireblocks/models/write_call_function_response_dto.py +++ b/fireblocks/models/write_call_function_response_dto.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List -from typing import Optional, Set -from typing_extensions import Self - -class WriteCallFunctionResponseDto(BaseModel): - """ - WriteCallFunctionResponseDto - """ # noqa: E501 - tx_id: StrictStr = Field(alias="txId") - __properties: ClassVar[List[str]] = ["txId"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of WriteCallFunctionResponseDto from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of WriteCallFunctionResponseDto from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "txId": obj.get("txId") - }) - return _obj - - +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmZyb20gX19mdXR1cmVfXyBpbXBvcnQgYW5ub3RhdGlvbnMKaW1wb3J0IHBwcmludAppbXBvcnQgcmUgICMgbm9xYTogRjQwMQppbXBvcnQganNvbgoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBDb25maWdEaWN0LCBGaWVsZCwgU3RyaWN0U3RyCmZyb20gdHlwaW5nIGltcG9ydCBBbnksIENsYXNzVmFyLCBEaWN0LCBMaXN0CmZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgU2V0CmZyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IFNlbGYKCmNsYXNzIFdyaXRlQ2FsbEZ1bmN0aW9uUmVzcG9uc2VEdG8oQmFzZU1vZGVsKToKICAgICIiIgogICAgV3JpdGVDYWxsRnVuY3Rpb25SZXNwb25zZUR0bwogICAgIiIiICMgbm9xYTogRTUwMQogICAgdHhfaWQ6IFN0cmljdFN0ciA9IEZpZWxkKGFsaWFzPSJ0eElkIikKICAgIF9fcHJvcGVydGllczogQ2xhc3NWYXJbTGlzdFtzdHJdXSA9IFsidHhJZCJdCgogICAgbW9kZWxfY29uZmlnID0gQ29uZmlnRGljdCgKICAgICAgICBwb3B1bGF0ZV9ieV9uYW1lPVRydWUsCiAgICAgICAgdmFsaWRhdGVfYXNzaWdubWVudD1UcnVlLAogICAgICAgIHByb3RlY3RlZF9uYW1lc3BhY2VzPSgpLAogICAgKQoKCiAgICBkZWYgdG9fc3RyKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzIiIiCiAgICAgICAgcmV0dXJuIHBwcmludC5wZm9ybWF0KHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKSkKCiAgICBkZWYgdG9fanNvbihzZWxmKSAtPiBzdHI6CiAgICAgICAgIiIiUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICAjIFRPRE86IHB5ZGFudGljIHYyOiB1c2UgLm1vZGVsX2R1bXBfanNvbihieV9hbGlhcz1UcnVlLCBleGNsdWRlX3Vuc2V0PVRydWUpIGluc3RlYWQKICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnRvX2RpY3QoKSkKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cjogc3RyKSAtPiBPcHRpb25hbFtTZWxmXToKICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgV3JpdGVDYWxsRnVuY3Rpb25SZXNwb25zZUR0byBmcm9tIGEgSlNPTiBzdHJpbmciIiIKICAgICAgICByZXR1cm4gY2xzLmZyb21fZGljdChqc29uLmxvYWRzKGpzb25fc3RyKSkKCiAgICBkZWYgdG9fZGljdChzZWxmKSAtPiBEaWN0W3N0ciwgQW55XToKICAgICAgICAiIiJSZXR1cm4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsIHVzaW5nIGFsaWFzLgoKICAgICAgICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzIGZyb20gY2FsbGluZyBweWRhbnRpYydzCiAgICAgICAgYHNlbGYubW9kZWxfZHVtcChieV9hbGlhcz1UcnVlKWA6CgogICAgICAgICogYE5vbmVgIGlzIG9ubHkgYWRkZWQgdG8gdGhlIG91dHB1dCBkaWN0IGZvciBudWxsYWJsZSBmaWVsZHMgdGhhdAogICAgICAgICAgd2VyZSBzZXQgYXQgbW9kZWwgaW5pdGlhbGl6YXRpb24uIE90aGVyIGZpZWxkcyB3aXRoIHZhbHVlIGBOb25lYAogICAgICAgICAgYXJlIGlnbm9yZWQuCiAgICAgICAgIiIiCiAgICAgICAgZXhjbHVkZWRfZmllbGRzOiBTZXRbc3RyXSA9IHNldChbCiAgICAgICAgXSkKCiAgICAgICAgX2RpY3QgPSBzZWxmLm1vZGVsX2R1bXAoCiAgICAgICAgICAgIGJ5X2FsaWFzPVRydWUsCiAgICAgICAgICAgIGV4Y2x1ZGU9ZXhjbHVkZWRfZmllbGRzLAogICAgICAgICAgICBleGNsdWRlX25vbmU9VHJ1ZSwKICAgICAgICApCiAgICAgICAgcmV0dXJuIF9kaWN0CgogICAgQGNsYXNzbWV0aG9kCiAgICBkZWYgZnJvbV9kaWN0KGNscywgb2JqOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0pIC0+IE9wdGlvbmFsW1NlbGZdOgogICAgICAgICIiIkNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBXcml0ZUNhbGxGdW5jdGlvblJlc3BvbnNlRHRvIGZyb20gYSBkaWN0IiIiCiAgICAgICAgaWYgb2JqIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybiBOb25lCgogICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgZGljdCk6CiAgICAgICAgICAgIHJldHVybiBjbHMubW9kZWxfdmFsaWRhdGUob2JqKQoKICAgICAgICBfb2JqID0gY2xzLm1vZGVsX3ZhbGlkYXRlKHsKICAgICAgICAgICAgInR4SWQiOiBvYmouZ2V0KCJ0eElkIikKICAgICAgICB9KQogICAgICAgIHJldHVybiBfb2JqCgoK \ No newline at end of file diff --git a/fireblocks/rest.py b/fireblocks/rest.py index 87ec741f..0c6695eb 100644 --- a/fireblocks/rest.py +++ b/fireblocks/rest.py @@ -1,248 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import io -import json -import re -import ssl - -import urllib3 - -from fireblocks.exceptions import ApiException, ApiValueError - -SUPPORTED_SOCKS_PROXIES = {"socks5", "socks5h", "socks4", "socks4a"} -RESTResponseType = urllib3.HTTPResponse - - -def is_socks_proxy_url(url): - if url is None: - return False - split_section = url.split("://") - if len(split_section) < 2: - return False - else: - return split_section[0].lower() in SUPPORTED_SOCKS_PROXIES - - -class RESTResponse(io.IOBase): - - def __init__(self, resp) -> None: - self.response = resp - self.status = resp.status - self.reason = resp.reason - self.data = None - - def read(self): - if self.data is None: - self.data = self.response.data - return self.data - - def getheaders(self): - """Returns a dictionary of the response headers.""" - return self.response.headers - - def getheader(self, name, default=None): - """Returns a given response header.""" - return self.response.headers.get(name, default) - - -class RESTClientObject: - - def __init__(self, configuration) -> None: - # urllib3.PoolManager will pass all kw parameters to connectionpool - # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/poolmanager.py#L75 # noqa: E501 - # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/connectionpool.py#L680 # noqa: E501 - # Custom SSL certificates and client certificates: http://urllib3.readthedocs.io/en/latest/advanced-usage.html # noqa: E501 - - # cert_reqs - if configuration.verify_ssl: - cert_reqs = ssl.CERT_REQUIRED - else: - cert_reqs = ssl.CERT_NONE - - pool_args = { - "cert_reqs": cert_reqs, - "ca_certs": configuration.ssl_ca_cert, - "cert_file": configuration.cert_file, - "key_file": configuration.key_file, - "ca_cert_data": configuration.ca_cert_data, - } - if configuration.assert_hostname is not None: - pool_args["assert_hostname"] = configuration.assert_hostname - - if configuration.retries is not None: - pool_args["retries"] = configuration.retries - - if configuration.tls_server_name: - pool_args["server_hostname"] = configuration.tls_server_name - - if configuration.socket_options is not None: - pool_args["socket_options"] = configuration.socket_options - - if configuration.connection_pool_maxsize is not None: - pool_args["maxsize"] = configuration.connection_pool_maxsize - - # https pool manager - self.pool_manager: urllib3.PoolManager - - if configuration.proxy: - if is_socks_proxy_url(configuration.proxy): - from urllib3.contrib.socks import SOCKSProxyManager - - pool_args["proxy_url"] = configuration.proxy - pool_args["headers"] = configuration.proxy_headers - self.pool_manager = SOCKSProxyManager(**pool_args) - else: - pool_args["proxy_url"] = configuration.proxy - pool_args["proxy_headers"] = configuration.proxy_headers - self.pool_manager = urllib3.ProxyManager(**pool_args) - else: - self.pool_manager = urllib3.PoolManager(**pool_args) - - def request( - self, - method, - url, - headers=None, - body=None, - post_params=None, - _request_timeout=None, - ): - """Perform requests. - - :param method: http request method - :param url: http request url - :param headers: http request headers - :param body: request json body, for `application/json` - :param post_params: request post parameters, - `application/x-www-form-urlencoded` - and `multipart/form-data` - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - """ - method = method.upper() - assert method in ["GET", "HEAD", "DELETE", "POST", "PUT", "PATCH", "OPTIONS"] - - if post_params and body: - raise ApiValueError( - "body parameter cannot be used with post_params parameter." - ) - - post_params = post_params or {} - headers = headers or {} - - timeout = None - if _request_timeout: - if isinstance(_request_timeout, (int, float)): - timeout = urllib3.Timeout(total=_request_timeout) - elif isinstance(_request_timeout, tuple) and len(_request_timeout) == 2: - timeout = urllib3.Timeout( - connect=_request_timeout[0], read=_request_timeout[1] - ) - - try: - # For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE` - if method in ["POST", "PUT", "PATCH", "OPTIONS", "DELETE"]: - - # no content type provided or payload is json - content_type = headers.get("Content-Type") - if not content_type or re.search("json", content_type, re.IGNORECASE): - request_body = None - if body is not None: - request_body = json.dumps(body) - r = self.pool_manager.request( - method, - url, - body=request_body, - timeout=timeout, - headers=headers, - preload_content=False, - ) - elif content_type == "application/x-www-form-urlencoded": - r = self.pool_manager.request( - method, - url, - fields=post_params, - encode_multipart=False, - timeout=timeout, - headers=headers, - preload_content=False, - ) - elif content_type == "multipart/form-data": - # must del headers['Content-Type'], or the correct - # Content-Type which generated by urllib3 will be - # overwritten. - del headers["Content-Type"] - # Ensures that dict objects are serialized - post_params = [ - (a, json.dumps(b)) if isinstance(b, dict) else (a, b) - for a, b in post_params - ] - r = self.pool_manager.request( - method, - url, - fields=post_params, - encode_multipart=True, - timeout=timeout, - headers=headers, - preload_content=False, - ) - # Pass a `string` parameter directly in the body to support - # other content types than JSON when `body` argument is - # provided in serialized form. - elif isinstance(body, str) or isinstance(body, bytes): - r = self.pool_manager.request( - method, - url, - body=body, - timeout=timeout, - headers=headers, - preload_content=False, - ) - elif headers["Content-Type"].startswith("text/") and isinstance( - body, bool - ): - request_body = "true" if body else "false" - r = self.pool_manager.request( - method, - url, - body=request_body, - preload_content=False, - timeout=timeout, - headers=headers, - ) - else: - # Cannot generate the request from given parameters - msg = """Cannot prepare a request message for provided - arguments. Please check that your arguments match - declared content type.""" - raise ApiException(status=0, reason=msg) - # For `GET`, `HEAD` - else: - r = self.pool_manager.request( - method, - url, - fields={}, - timeout=timeout, - headers=headers, - preload_content=False, - ) - except urllib3.exceptions.SSLError as e: - msg = "\n".join([type(e).__name__, str(e)]) - raise ApiException(status=0, reason=msg) - - return RESTResponse(r) +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IGlvCmltcG9ydCBqc29uCmltcG9ydCByZQppbXBvcnQgc3NsCgppbXBvcnQgdXJsbGliMwoKZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbiwgQXBpVmFsdWVFcnJvcgoKU1VQUE9SVEVEX1NPQ0tTX1BST1hJRVMgPSB7InNvY2tzNSIsICJzb2NrczVoIiwgInNvY2tzNCIsICJzb2NrczRhIn0KUkVTVFJlc3BvbnNlVHlwZSA9IHVybGxpYjMuSFRUUFJlc3BvbnNlCgoKZGVmIGlzX3NvY2tzX3Byb3h5X3VybCh1cmwpOgogICAgaWYgdXJsIGlzIE5vbmU6CiAgICAgICAgcmV0dXJuIEZhbHNlCiAgICBzcGxpdF9zZWN0aW9uID0gdXJsLnNwbGl0KCI6Ly8iKQogICAgaWYgbGVuKHNwbGl0X3NlY3Rpb24pIDwgMjoKICAgICAgICByZXR1cm4gRmFsc2UKICAgIGVsc2U6CiAgICAgICAgcmV0dXJuIHNwbGl0X3NlY3Rpb25bMF0ubG93ZXIoKSBpbiBTVVBQT1JURURfU09DS1NfUFJPWElFUwoKCmNsYXNzIFJFU1RSZXNwb25zZShpby5JT0Jhc2UpOgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXNwKSAtPiBOb25lOgogICAgICAgIHNlbGYucmVzcG9uc2UgPSByZXNwCiAgICAgICAgc2VsZi5zdGF0dXMgPSByZXNwLnN0YXR1cwogICAgICAgIHNlbGYucmVhc29uID0gcmVzcC5yZWFzb24KICAgICAgICBzZWxmLmRhdGEgPSBOb25lCgogICAgZGVmIHJlYWQoc2VsZik6CiAgICAgICAgaWYgc2VsZi5kYXRhIGlzIE5vbmU6CiAgICAgICAgICAgIHNlbGYuZGF0YSA9IHNlbGYucmVzcG9uc2UuZGF0YQogICAgICAgIHJldHVybiBzZWxmLmRhdGEKCiAgICBkZWYgZ2V0aGVhZGVycyhzZWxmKToKICAgICAgICAiIiJSZXR1cm5zIGEgZGljdGlvbmFyeSBvZiB0aGUgcmVzcG9uc2UgaGVhZGVycy4iIiIKICAgICAgICByZXR1cm4gc2VsZi5yZXNwb25zZS5oZWFkZXJzCgogICAgZGVmIGdldGhlYWRlcihzZWxmLCBuYW1lLCBkZWZhdWx0PU5vbmUpOgogICAgICAgICIiIlJldHVybnMgYSBnaXZlbiByZXNwb25zZSBoZWFkZXIuIiIiCiAgICAgICAgcmV0dXJuIHNlbGYucmVzcG9uc2UuaGVhZGVycy5nZXQobmFtZSwgZGVmYXVsdCkKCgpjbGFzcyBSRVNUQ2xpZW50T2JqZWN0OgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWd1cmF0aW9uKSAtPiBOb25lOgogICAgICAgICMgdXJsbGliMy5Qb29sTWFuYWdlciB3aWxsIHBhc3MgYWxsIGt3IHBhcmFtZXRlcnMgdG8gY29ubmVjdGlvbnBvb2wKICAgICAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS9zaGF6b3cvdXJsbGliMy9ibG9iL2Y5NDA5NDM2ZjgzYWViNzlmYmFmMDkwMTgxY2Q4MWI3ODRmMWI4Y2UvdXJsbGliMy9wb29sbWFuYWdlci5weSNMNzUgICMgbm9xYTogRTUwMQogICAgICAgICMgaHR0cHM6Ly9naXRodWIuY29tL3NoYXpvdy91cmxsaWIzL2Jsb2IvZjk0MDk0MzZmODNhZWI3OWZiYWYwOTAxODFjZDgxYjc4NGYxYjhjZS91cmxsaWIzL2Nvbm5lY3Rpb25wb29sLnB5I0w2ODAgICMgbm9xYTogRTUwMQogICAgICAgICMgQ3VzdG9tIFNTTCBjZXJ0aWZpY2F0ZXMgYW5kIGNsaWVudCBjZXJ0aWZpY2F0ZXM6IGh0dHA6Ly91cmxsaWIzLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9hZHZhbmNlZC11c2FnZS5odG1sICAjIG5vcWE6IEU1MDEKCiAgICAgICAgIyBjZXJ0X3JlcXMKICAgICAgICBpZiBjb25maWd1cmF0aW9uLnZlcmlmeV9zc2w6CiAgICAgICAgICAgIGNlcnRfcmVxcyA9IHNzbC5DRVJUX1JFUVVJUkVECiAgICAgICAgZWxzZToKICAgICAgICAgICAgY2VydF9yZXFzID0gc3NsLkNFUlRfTk9ORQoKICAgICAgICBwb29sX2FyZ3MgPSB7CiAgICAgICAgICAgICJjZXJ0X3JlcXMiOiBjZXJ0X3JlcXMsCiAgICAgICAgICAgICJjYV9jZXJ0cyI6IGNvbmZpZ3VyYXRpb24uc3NsX2NhX2NlcnQsCiAgICAgICAgICAgICJjZXJ0X2ZpbGUiOiBjb25maWd1cmF0aW9uLmNlcnRfZmlsZSwKICAgICAgICAgICAgImtleV9maWxlIjogY29uZmlndXJhdGlvbi5rZXlfZmlsZSwKICAgICAgICAgICAgImNhX2NlcnRfZGF0YSI6IGNvbmZpZ3VyYXRpb24uY2FfY2VydF9kYXRhLAogICAgICAgIH0KICAgICAgICBpZiBjb25maWd1cmF0aW9uLmFzc2VydF9ob3N0bmFtZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgcG9vbF9hcmdzWyJhc3NlcnRfaG9zdG5hbWUiXSA9IGNvbmZpZ3VyYXRpb24uYXNzZXJ0X2hvc3RuYW1lCgogICAgICAgIGlmIGNvbmZpZ3VyYXRpb24ucmV0cmllcyBpcyBub3QgTm9uZToKICAgICAgICAgICAgcG9vbF9hcmdzWyJyZXRyaWVzIl0gPSBjb25maWd1cmF0aW9uLnJldHJpZXMKCiAgICAgICAgaWYgY29uZmlndXJhdGlvbi50bHNfc2VydmVyX25hbWU6CiAgICAgICAgICAgIHBvb2xfYXJnc1sic2VydmVyX2hvc3RuYW1lIl0gPSBjb25maWd1cmF0aW9uLnRsc19zZXJ2ZXJfbmFtZQoKICAgICAgICBpZiBjb25maWd1cmF0aW9uLnNvY2tldF9vcHRpb25zIGlzIG5vdCBOb25lOgogICAgICAgICAgICBwb29sX2FyZ3NbInNvY2tldF9vcHRpb25zIl0gPSBjb25maWd1cmF0aW9uLnNvY2tldF9vcHRpb25zCgogICAgICAgIGlmIGNvbmZpZ3VyYXRpb24uY29ubmVjdGlvbl9wb29sX21heHNpemUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIHBvb2xfYXJnc1sibWF4c2l6ZSJdID0gY29uZmlndXJhdGlvbi5jb25uZWN0aW9uX3Bvb2xfbWF4c2l6ZQoKICAgICAgICAjIGh0dHBzIHBvb2wgbWFuYWdlcgogICAgICAgIHNlbGYucG9vbF9tYW5hZ2VyOiB1cmxsaWIzLlBvb2xNYW5hZ2VyCgogICAgICAgIGlmIGNvbmZpZ3VyYXRpb24ucHJveHk6CiAgICAgICAgICAgIGlmIGlzX3NvY2tzX3Byb3h5X3VybChjb25maWd1cmF0aW9uLnByb3h5KToKICAgICAgICAgICAgICAgIGZyb20gdXJsbGliMy5jb250cmliLnNvY2tzIGltcG9ydCBTT0NLU1Byb3h5TWFuYWdlcgoKICAgICAgICAgICAgICAgIHBvb2xfYXJnc1sicHJveHlfdXJsIl0gPSBjb25maWd1cmF0aW9uLnByb3h5CiAgICAgICAgICAgICAgICBwb29sX2FyZ3NbImhlYWRlcnMiXSA9IGNvbmZpZ3VyYXRpb24ucHJveHlfaGVhZGVycwogICAgICAgICAgICAgICAgc2VsZi5wb29sX21hbmFnZXIgPSBTT0NLU1Byb3h5TWFuYWdlcigqKnBvb2xfYXJncykKICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgIHBvb2xfYXJnc1sicHJveHlfdXJsIl0gPSBjb25maWd1cmF0aW9uLnByb3h5CiAgICAgICAgICAgICAgICBwb29sX2FyZ3NbInByb3h5X2hlYWRlcnMiXSA9IGNvbmZpZ3VyYXRpb24ucHJveHlfaGVhZGVycwogICAgICAgICAgICAgICAgc2VsZi5wb29sX21hbmFnZXIgPSB1cmxsaWIzLlByb3h5TWFuYWdlcigqKnBvb2xfYXJncykKICAgICAgICBlbHNlOgogICAgICAgICAgICBzZWxmLnBvb2xfbWFuYWdlciA9IHVybGxpYjMuUG9vbE1hbmFnZXIoKipwb29sX2FyZ3MpCgogICAgZGVmIHJlcXVlc3QoCiAgICAgICAgc2VsZiwKICAgICAgICBtZXRob2QsCiAgICAgICAgdXJsLAogICAgICAgIGhlYWRlcnM9Tm9uZSwKICAgICAgICBib2R5PU5vbmUsCiAgICAgICAgcG9zdF9wYXJhbXM9Tm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0PU5vbmUsCiAgICApOgogICAgICAgICIiIlBlcmZvcm0gcmVxdWVzdHMuCgogICAgICAgIDpwYXJhbSBtZXRob2Q6IGh0dHAgcmVxdWVzdCBtZXRob2QKICAgICAgICA6cGFyYW0gdXJsOiBodHRwIHJlcXVlc3QgdXJsCiAgICAgICAgOnBhcmFtIGhlYWRlcnM6IGh0dHAgcmVxdWVzdCBoZWFkZXJzCiAgICAgICAgOnBhcmFtIGJvZHk6IHJlcXVlc3QganNvbiBib2R5LCBmb3IgYGFwcGxpY2F0aW9uL2pzb25gCiAgICAgICAgOnBhcmFtIHBvc3RfcGFyYW1zOiByZXF1ZXN0IHBvc3QgcGFyYW1ldGVycywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgYG11bHRpcGFydC9mb3JtLWRhdGFgCiAgICAgICAgOnBhcmFtIF9yZXF1ZXN0X3RpbWVvdXQ6IHRpbWVvdXQgc2V0dGluZyBmb3IgdGhpcyByZXF1ZXN0LiBJZiBvbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHRvdGFsIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dC4gSXQgY2FuIGFsc28gYmUgYSBwYWlyICh0dXBsZSkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5lY3Rpb24sIHJlYWQpIHRpbWVvdXRzLgogICAgICAgICIiIgogICAgICAgIG1ldGhvZCA9IG1ldGhvZC51cHBlcigpCiAgICAgICAgYXNzZXJ0IG1ldGhvZCBpbiBbIkdFVCIsICJIRUFEIiwgIkRFTEVURSIsICJQT1NUIiwgIlBVVCIsICJQQVRDSCIsICJPUFRJT05TIl0KCiAgICAgICAgaWYgcG9zdF9wYXJhbXMgYW5kIGJvZHk6CiAgICAgICAgICAgIHJhaXNlIEFwaVZhbHVlRXJyb3IoCiAgICAgICAgICAgICAgICAiYm9keSBwYXJhbWV0ZXIgY2Fubm90IGJlIHVzZWQgd2l0aCBwb3N0X3BhcmFtcyBwYXJhbWV0ZXIuIgogICAgICAgICAgICApCgogICAgICAgIHBvc3RfcGFyYW1zID0gcG9zdF9wYXJhbXMgb3Ige30KICAgICAgICBoZWFkZXJzID0gaGVhZGVycyBvciB7fQoKICAgICAgICB0aW1lb3V0ID0gTm9uZQogICAgICAgIGlmIF9yZXF1ZXN0X3RpbWVvdXQ6CiAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoX3JlcXVlc3RfdGltZW91dCwgKGludCwgZmxvYXQpKToKICAgICAgICAgICAgICAgIHRpbWVvdXQgPSB1cmxsaWIzLlRpbWVvdXQodG90YWw9X3JlcXVlc3RfdGltZW91dCkKICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKF9yZXF1ZXN0X3RpbWVvdXQsIHR1cGxlKSBhbmQgbGVuKF9yZXF1ZXN0X3RpbWVvdXQpID09IDI6CiAgICAgICAgICAgICAgICB0aW1lb3V0ID0gdXJsbGliMy5UaW1lb3V0KAogICAgICAgICAgICAgICAgICAgIGNvbm5lY3Q9X3JlcXVlc3RfdGltZW91dFswXSwgcmVhZD1fcmVxdWVzdF90aW1lb3V0WzFdCiAgICAgICAgICAgICAgICApCgogICAgICAgIHRyeToKICAgICAgICAgICAgIyBGb3IgYFBPU1RgLCBgUFVUYCwgYFBBVENIYCwgYE9QVElPTlNgLCBgREVMRVRFYAogICAgICAgICAgICBpZiBtZXRob2QgaW4gWyJQT1NUIiwgIlBVVCIsICJQQVRDSCIsICJPUFRJT05TIiwgIkRFTEVURSJdOgoKICAgICAgICAgICAgICAgICMgbm8gY29udGVudCB0eXBlIHByb3ZpZGVkIG9yIHBheWxvYWQgaXMganNvbgogICAgICAgICAgICAgICAgY29udGVudF90eXBlID0gaGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpCiAgICAgICAgICAgICAgICBpZiBub3QgY29udGVudF90eXBlIG9yIHJlLnNlYXJjaCgianNvbiIsIGNvbnRlbnRfdHlwZSwgcmUuSUdOT1JFQ0FTRSk6CiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdF9ib2R5ID0gTm9uZQogICAgICAgICAgICAgICAgICAgIGlmIGJvZHkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RfYm9keSA9IGpzb24uZHVtcHMoYm9keSkKICAgICAgICAgICAgICAgICAgICByID0gc2VsZi5wb29sX21hbmFnZXIucmVxdWVzdCgKICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLAogICAgICAgICAgICAgICAgICAgICAgICB1cmwsCiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk9cmVxdWVzdF9ib2R5LAogICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PXRpbWVvdXQsCiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9aGVhZGVycywKICAgICAgICAgICAgICAgICAgICAgICAgcHJlbG9hZF9jb250ZW50PUZhbHNlLAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIGVsaWYgY29udGVudF90eXBlID09ICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiOgogICAgICAgICAgICAgICAgICAgIHIgPSBzZWxmLnBvb2xfbWFuYWdlci5yZXF1ZXN0KAogICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QsCiAgICAgICAgICAgICAgICAgICAgICAgIHVybCwKICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzPXBvc3RfcGFyYW1zLAogICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGVfbXVsdGlwYXJ0PUZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PXRpbWVvdXQsCiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9aGVhZGVycywKICAgICAgICAgICAgICAgICAgICAgICAgcHJlbG9hZF9jb250ZW50PUZhbHNlLAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIGVsaWYgY29udGVudF90eXBlID09ICJtdWx0aXBhcnQvZm9ybS1kYXRhIjoKICAgICAgICAgICAgICAgICAgICAjIG11c3QgZGVsIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddLCBvciB0aGUgY29ycmVjdAogICAgICAgICAgICAgICAgICAgICMgQ29udGVudC1UeXBlIHdoaWNoIGdlbmVyYXRlZCBieSB1cmxsaWIzIHdpbGwgYmUKICAgICAgICAgICAgICAgICAgICAjIG92ZXJ3cml0dGVuLgogICAgICAgICAgICAgICAgICAgIGRlbCBoZWFkZXJzWyJDb250ZW50LVR5cGUiXQogICAgICAgICAgICAgICAgICAgICMgRW5zdXJlcyB0aGF0IGRpY3Qgb2JqZWN0cyBhcmUgc2VyaWFsaXplZAogICAgICAgICAgICAgICAgICAgIHBvc3RfcGFyYW1zID0gWwogICAgICAgICAgICAgICAgICAgICAgICAoYSwganNvbi5kdW1wcyhiKSkgaWYgaXNpbnN0YW5jZShiLCBkaWN0KSBlbHNlIChhLCBiKQogICAgICAgICAgICAgICAgICAgICAgICBmb3IgYSwgYiBpbiBwb3N0X3BhcmFtcwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICByID0gc2VsZi5wb29sX21hbmFnZXIucmVxdWVzdCgKICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLAogICAgICAgICAgICAgICAgICAgICAgICB1cmwsCiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkcz1wb3N0X3BhcmFtcywKICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2RlX211bHRpcGFydD1UcnVlLAogICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PXRpbWVvdXQsCiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9aGVhZGVycywKICAgICAgICAgICAgICAgICAgICAgICAgcHJlbG9hZF9jb250ZW50PUZhbHNlLAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICMgUGFzcyBhIGBzdHJpbmdgIHBhcmFtZXRlciBkaXJlY3RseSBpbiB0aGUgYm9keSB0byBzdXBwb3J0CiAgICAgICAgICAgICAgICAjIG90aGVyIGNvbnRlbnQgdHlwZXMgdGhhbiBKU09OIHdoZW4gYGJvZHlgIGFyZ3VtZW50IGlzCiAgICAgICAgICAgICAgICAjIHByb3ZpZGVkIGluIHNlcmlhbGl6ZWQgZm9ybS4KICAgICAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShib2R5LCBzdHIpIG9yIGlzaW5zdGFuY2UoYm9keSwgYnl0ZXMpOgogICAgICAgICAgICAgICAgICAgIHIgPSBzZWxmLnBvb2xfbWFuYWdlci5yZXF1ZXN0KAogICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QsCiAgICAgICAgICAgICAgICAgICAgICAgIHVybCwKICAgICAgICAgICAgICAgICAgICAgICAgYm9keT1ib2R5LAogICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PXRpbWVvdXQsCiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9aGVhZGVycywKICAgICAgICAgICAgICAgICAgICAgICAgcHJlbG9hZF9jb250ZW50PUZhbHNlLAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIGVsaWYgaGVhZGVyc1siQ29udGVudC1UeXBlIl0uc3RhcnRzd2l0aCgidGV4dC8iKSBhbmQgaXNpbnN0YW5jZSgKICAgICAgICAgICAgICAgICAgICBib2R5LCBib29sCiAgICAgICAgICAgICAgICApOgogICAgICAgICAgICAgICAgICAgIHJlcXVlc3RfYm9keSA9ICJ0cnVlIiBpZiBib2R5IGVsc2UgImZhbHNlIgogICAgICAgICAgICAgICAgICAgIHIgPSBzZWxmLnBvb2xfbWFuYWdlci5yZXF1ZXN0KAogICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QsCiAgICAgICAgICAgICAgICAgICAgICAgIHVybCwKICAgICAgICAgICAgICAgICAgICAgICAgYm9keT1yZXF1ZXN0X2JvZHksCiAgICAgICAgICAgICAgICAgICAgICAgIHByZWxvYWRfY29udGVudD1GYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dD10aW1lb3V0LAogICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzPWhlYWRlcnMsCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAjIENhbm5vdCBnZW5lcmF0ZSB0aGUgcmVxdWVzdCBmcm9tIGdpdmVuIHBhcmFtZXRlcnMKICAgICAgICAgICAgICAgICAgICBtc2cgPSAiIiJDYW5ub3QgcHJlcGFyZSBhIHJlcXVlc3QgbWVzc2FnZSBmb3IgcHJvdmlkZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHMuIFBsZWFzZSBjaGVjayB0aGF0IHlvdXIgYXJndW1lbnRzIG1hdGNoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjbGFyZWQgY29udGVudCB0eXBlLiIiIgogICAgICAgICAgICAgICAgICAgIHJhaXNlIEFwaUV4Y2VwdGlvbihzdGF0dXM9MCwgcmVhc29uPW1zZykKICAgICAgICAgICAgIyBGb3IgYEdFVGAsIGBIRUFEYAogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgciA9IHNlbGYucG9vbF9tYW5hZ2VyLnJlcXVlc3QoCiAgICAgICAgICAgICAgICAgICAgbWV0aG9kLAogICAgICAgICAgICAgICAgICAgIHVybCwKICAgICAgICAgICAgICAgICAgICBmaWVsZHM9e30sCiAgICAgICAgICAgICAgICAgICAgdGltZW91dD10aW1lb3V0LAogICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9aGVhZGVycywKICAgICAgICAgICAgICAgICAgICBwcmVsb2FkX2NvbnRlbnQ9RmFsc2UsCiAgICAgICAgICAgICAgICApCiAgICAgICAgZXhjZXB0IHVybGxpYjMuZXhjZXB0aW9ucy5TU0xFcnJvciBhcyBlOgogICAgICAgICAgICBtc2cgPSAiXG4iLmpvaW4oW3R5cGUoZSkuX19uYW1lX18sIHN0cihlKV0pCiAgICAgICAgICAgIHJhaXNlIEFwaUV4Y2VwdGlvbihzdGF0dXM9MCwgcmVhc29uPW1zZykKCiAgICAgICAgcmV0dXJuIFJFU1RSZXNwb25zZShyKQo= \ No newline at end of file diff --git a/fireblocks/threaded_api_client.py b/fireblocks/threaded_api_client.py index 58a011eb..aa56c7cf 100644 --- a/fireblocks/threaded_api_client.py +++ b/fireblocks/threaded_api_client.py @@ -1,117 +1 @@ -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - -import os -import atexit -from concurrent.futures import ThreadPoolExecutor, Future -from typing import Tuple, Optional, List, Dict, Union, Any -from urllib.parse import urlparse -from fireblocks.api_response import ApiResponse, T as ApiResponseT -from fireblocks.configuration import Configuration -from fireblocks.api_client import ApiClient -from fireblocks.bearer_token_provider import BearerTokenProvider -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.user_agent_util import UserAgentUtil - - -class ThreadedApiClient(ApiClient): - _pool = None - - def __init__(self, configuration: ClientConfiguration): - client_configuration = ( - configuration if configuration is not None else ClientConfiguration() - ) - self._api_key = client_configuration.api_key or os.environ.get( - "FIREBLOCKS_API_KEY" - ) - if not self._api_key: - raise ValueError( - "apiKey is required either in the configuration or as environment variable FIREBLOCKS_API_KEY" - ) - secret_key = client_configuration.secret_key or os.environ.get( - "FIREBLOCKS_SECRET_KEY" - ) - if not secret_key: - raise ValueError( - "secretKey is required either in the configuration or as environment variable FIREBLOCKS_SECRET_KEY" - ) - base_path = client_configuration.base_path or os.environ.get( - "FIREBLOCKS_BASE_PATH" - ) - if not base_path: - raise ValueError( - "basePath is required either in the configuration or as environment variable FIREBLOCKS_BASE_PATH" - ) - - super().__init__(configuration=Configuration(host=base_path)) - - self.token_provider = BearerTokenProvider(self._api_key, secret_key) - - self.user_agent = UserAgentUtil.get_user_agent( - client_configuration.additional_options.is_anonymous_platform, - client_configuration.additional_options.user_agent, - ) - - self.thread_pool_size = client_configuration.additional_options.thread_pool_size - - def close(self) -> None: - self.rest_client.pool_manager.clear() - if self._pool: - self._pool.shutdown() - self._pool = None - if hasattr(atexit, "unregister"): - atexit.unregister(self.close) - - @property - def pool(self) -> ThreadPoolExecutor: - """Create thread pool on first request - avoids instantiating unused threadpool for blocking clients. - """ - if self._pool is None: - atexit.register(self.close) - self._pool = ThreadPoolExecutor(max_workers=self.thread_pool_size) - return self._pool - - def call_api( - self, - method: str, - url: str, - header_params: Optional[Dict[str, Any]] = None, - body: Optional[Any] = None, - post_params: Optional[List[Tuple[str, Any]]] = None, - _request_timeout: Optional[Union[int, float, Tuple]] = None, - _response_types_map: Optional[Dict[str, ApiResponseT]] = None, - ) -> Future[ApiResponse[ApiResponseT]]: - header_params = header_params or {} - parsed_url = urlparse(url) - path = parsed_url.path - if parsed_url.query: - path += f"?{parsed_url.query}" - - self._update_headers(header_params, method, path, body) - - return self.pool.submit( - super().call_api, - method, - url, - header_params, - body, - post_params, - _request_timeout, - _response_types_map, - ) - - def _update_headers(self, header_params, method, path, body): - token = self.token_provider.get_token(method, path, body) - header_params.update( - {"Authorization": f"Bearer {token}", "X-API-Key": self._api_key} - ) +IiIiCkZpcmVibG9ja3MgQVBJCgpGaXJlYmxvY2tzIHByb3ZpZGVzIGEgc3VpdGUgb2YgYXBwbGljYXRpb25zIHRvIG1hbmFnZSBkaWdpdGFsIGFzc2V0IG9wZXJhdGlvbnMgYW5kIGEgY29tcGxldGUgZGV2ZWxvcG1lbnQgcGxhdGZvcm0gdG8gYnVpbGQgeW91ciBidXNpbmVzcyBvbiB0aGUgYmxvY2tjaGFpbi4gIC0gVmlzaXQgb3VyIHdlYnNpdGUgZm9yIG1vcmUgaW5mb3JtYXRpb246IFtGaXJlYmxvY2tzIFdlYnNpdGVdKGh0dHBzOi8vZmlyZWJsb2Nrcy5jb20pIC0gVmlzaXQgb3VyIGRldmVsb3BlciBkb2NzOiBbRmlyZWJsb2NrcyBEZXZQb3J0YWxdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbSkKClRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgpDb250YWN0OiBkZXZlbG9wZXJzQGZpcmVibG9ja3MuY29tCkdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQoKRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IG9zCmltcG9ydCBhdGV4aXQKZnJvbSBjb25jdXJyZW50LmZ1dHVyZXMgaW1wb3J0IFRocmVhZFBvb2xFeGVjdXRvciwgRnV0dXJlCmZyb20gdHlwaW5nIGltcG9ydCBUdXBsZSwgT3B0aW9uYWwsIExpc3QsIERpY3QsIFVuaW9uLCBBbnkKZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybHBhcnNlCmZyb20gZmlyZWJsb2Nrcy5hcGlfcmVzcG9uc2UgaW1wb3J0IEFwaVJlc3BvbnNlLCBUIGFzIEFwaVJlc3BvbnNlVApmcm9tIGZpcmVibG9ja3MuY29uZmlndXJhdGlvbiBpbXBvcnQgQ29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MuYXBpX2NsaWVudCBpbXBvcnQgQXBpQ2xpZW50CmZyb20gZmlyZWJsb2Nrcy5iZWFyZXJfdG9rZW5fcHJvdmlkZXIgaW1wb3J0IEJlYXJlclRva2VuUHJvdmlkZXIKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy51c2VyX2FnZW50X3V0aWwgaW1wb3J0IFVzZXJBZ2VudFV0aWwKCgpjbGFzcyBUaHJlYWRlZEFwaUNsaWVudChBcGlDbGllbnQpOgogICAgX3Bvb2wgPSBOb25lCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZ3VyYXRpb246IENsaWVudENvbmZpZ3VyYXRpb24pOgogICAgICAgIGNsaWVudF9jb25maWd1cmF0aW9uID0gKAogICAgICAgICAgICBjb25maWd1cmF0aW9uIGlmIGNvbmZpZ3VyYXRpb24gaXMgbm90IE5vbmUgZWxzZSBDbGllbnRDb25maWd1cmF0aW9uKCkKICAgICAgICApCiAgICAgICAgc2VsZi5fYXBpX2tleSA9IGNsaWVudF9jb25maWd1cmF0aW9uLmFwaV9rZXkgb3Igb3MuZW52aXJvbi5nZXQoCiAgICAgICAgICAgICJGSVJFQkxPQ0tTX0FQSV9LRVkiCiAgICAgICAgKQogICAgICAgIGlmIG5vdCBzZWxmLl9hcGlfa2V5OgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAogICAgICAgICAgICAgICAgImFwaUtleSBpcyByZXF1aXJlZCBlaXRoZXIgaW4gdGhlIGNvbmZpZ3VyYXRpb24gb3IgYXMgZW52aXJvbm1lbnQgdmFyaWFibGUgRklSRUJMT0NLU19BUElfS0VZIgogICAgICAgICAgICApCiAgICAgICAgc2VjcmV0X2tleSA9IGNsaWVudF9jb25maWd1cmF0aW9uLnNlY3JldF9rZXkgb3Igb3MuZW52aXJvbi5nZXQoCiAgICAgICAgICAgICJGSVJFQkxPQ0tTX1NFQ1JFVF9LRVkiCiAgICAgICAgKQogICAgICAgIGlmIG5vdCBzZWNyZXRfa2V5OgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAogICAgICAgICAgICAgICAgInNlY3JldEtleSBpcyByZXF1aXJlZCBlaXRoZXIgaW4gdGhlIGNvbmZpZ3VyYXRpb24gb3IgYXMgZW52aXJvbm1lbnQgdmFyaWFibGUgRklSRUJMT0NLU19TRUNSRVRfS0VZIgogICAgICAgICAgICApCiAgICAgICAgYmFzZV9wYXRoID0gY2xpZW50X2NvbmZpZ3VyYXRpb24uYmFzZV9wYXRoIG9yIG9zLmVudmlyb24uZ2V0KAogICAgICAgICAgICAiRklSRUJMT0NLU19CQVNFX1BBVEgiCiAgICAgICAgKQogICAgICAgIGlmIG5vdCBiYXNlX3BhdGg6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCiAgICAgICAgICAgICAgICAiYmFzZVBhdGggaXMgcmVxdWlyZWQgZWl0aGVyIGluIHRoZSBjb25maWd1cmF0aW9uIG9yIGFzIGVudmlyb25tZW50IHZhcmlhYmxlIEZJUkVCTE9DS1NfQkFTRV9QQVRIIgogICAgICAgICAgICApCgogICAgICAgIHN1cGVyKCkuX19pbml0X18oY29uZmlndXJhdGlvbj1Db25maWd1cmF0aW9uKGhvc3Q9YmFzZV9wYXRoKSkKCiAgICAgICAgc2VsZi50b2tlbl9wcm92aWRlciA9IEJlYXJlclRva2VuUHJvdmlkZXIoc2VsZi5fYXBpX2tleSwgc2VjcmV0X2tleSkKCiAgICAgICAgc2VsZi51c2VyX2FnZW50ID0gVXNlckFnZW50VXRpbC5nZXRfdXNlcl9hZ2VudCgKICAgICAgICAgICAgY2xpZW50X2NvbmZpZ3VyYXRpb24uYWRkaXRpb25hbF9vcHRpb25zLmlzX2Fub255bW91c19wbGF0Zm9ybSwKICAgICAgICAgICAgY2xpZW50X2NvbmZpZ3VyYXRpb24uYWRkaXRpb25hbF9vcHRpb25zLnVzZXJfYWdlbnQsCiAgICAgICAgKQoKICAgICAgICBzZWxmLnRocmVhZF9wb29sX3NpemUgPSBjbGllbnRfY29uZmlndXJhdGlvbi5hZGRpdGlvbmFsX29wdGlvbnMudGhyZWFkX3Bvb2xfc2l6ZQoKICAgIGRlZiBjbG9zZShzZWxmKSAtPiBOb25lOgogICAgICAgIHNlbGYucmVzdF9jbGllbnQucG9vbF9tYW5hZ2VyLmNsZWFyKCkKICAgICAgICBpZiBzZWxmLl9wb29sOgogICAgICAgICAgICBzZWxmLl9wb29sLnNodXRkb3duKCkKICAgICAgICAgICAgc2VsZi5fcG9vbCA9IE5vbmUKICAgICAgICAgICAgaWYgaGFzYXR0cihhdGV4aXQsICJ1bnJlZ2lzdGVyIik6CiAgICAgICAgICAgICAgICBhdGV4aXQudW5yZWdpc3RlcihzZWxmLmNsb3NlKQoKICAgIEBwcm9wZXJ0eQogICAgZGVmIHBvb2woc2VsZikgLT4gVGhyZWFkUG9vbEV4ZWN1dG9yOgogICAgICAgICIiIkNyZWF0ZSB0aHJlYWQgcG9vbCBvbiBmaXJzdCByZXF1ZXN0CiAgICAgICAgYXZvaWRzIGluc3RhbnRpYXRpbmcgdW51c2VkIHRocmVhZHBvb2wgZm9yIGJsb2NraW5nIGNsaWVudHMuCiAgICAgICAgIiIiCiAgICAgICAgaWYgc2VsZi5fcG9vbCBpcyBOb25lOgogICAgICAgICAgICBhdGV4aXQucmVnaXN0ZXIoc2VsZi5jbG9zZSkKICAgICAgICAgICAgc2VsZi5fcG9vbCA9IFRocmVhZFBvb2xFeGVjdXRvcihtYXhfd29ya2Vycz1zZWxmLnRocmVhZF9wb29sX3NpemUpCiAgICAgICAgcmV0dXJuIHNlbGYuX3Bvb2wKCiAgICBkZWYgY2FsbF9hcGkoCiAgICAgICAgc2VsZiwKICAgICAgICBtZXRob2Q6IHN0ciwKICAgICAgICB1cmw6IHN0ciwKICAgICAgICBoZWFkZXJfcGFyYW1zOiBPcHRpb25hbFtEaWN0W3N0ciwgQW55XV0gPSBOb25lLAogICAgICAgIGJvZHk6IE9wdGlvbmFsW0FueV0gPSBOb25lLAogICAgICAgIHBvc3RfcGFyYW1zOiBPcHRpb25hbFtMaXN0W1R1cGxlW3N0ciwgQW55XV1dID0gTm9uZSwKICAgICAgICBfcmVxdWVzdF90aW1lb3V0OiBPcHRpb25hbFtVbmlvbltpbnQsIGZsb2F0LCBUdXBsZV1dID0gTm9uZSwKICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwOiBPcHRpb25hbFtEaWN0W3N0ciwgQXBpUmVzcG9uc2VUXV0gPSBOb25lLAogICAgKSAtPiBGdXR1cmVbQXBpUmVzcG9uc2VbQXBpUmVzcG9uc2VUXV06CiAgICAgICAgaGVhZGVyX3BhcmFtcyA9IGhlYWRlcl9wYXJhbXMgb3Ige30KICAgICAgICBwYXJzZWRfdXJsID0gdXJscGFyc2UodXJsKQogICAgICAgIHBhdGggPSBwYXJzZWRfdXJsLnBhdGgKICAgICAgICBpZiBwYXJzZWRfdXJsLnF1ZXJ5OgogICAgICAgICAgICBwYXRoICs9IGYiP3twYXJzZWRfdXJsLnF1ZXJ5fSIKCiAgICAgICAgc2VsZi5fdXBkYXRlX2hlYWRlcnMoaGVhZGVyX3BhcmFtcywgbWV0aG9kLCBwYXRoLCBib2R5KQoKICAgICAgICByZXR1cm4gc2VsZi5wb29sLnN1Ym1pdCgKICAgICAgICAgICAgc3VwZXIoKS5jYWxsX2FwaSwKICAgICAgICAgICAgbWV0aG9kLAogICAgICAgICAgICB1cmwsCiAgICAgICAgICAgIGhlYWRlcl9wYXJhbXMsCiAgICAgICAgICAgIGJvZHksCiAgICAgICAgICAgIHBvc3RfcGFyYW1zLAogICAgICAgICAgICBfcmVxdWVzdF90aW1lb3V0LAogICAgICAgICAgICBfcmVzcG9uc2VfdHlwZXNfbWFwLAogICAgICAgICkKCiAgICBkZWYgX3VwZGF0ZV9oZWFkZXJzKHNlbGYsIGhlYWRlcl9wYXJhbXMsIG1ldGhvZCwgcGF0aCwgYm9keSk6CiAgICAgICAgdG9rZW4gPSBzZWxmLnRva2VuX3Byb3ZpZGVyLmdldF90b2tlbihtZXRob2QsIHBhdGgsIGJvZHkpCiAgICAgICAgaGVhZGVyX3BhcmFtcy51cGRhdGUoCiAgICAgICAgICAgIHsiQXV0aG9yaXphdGlvbiI6IGYiQmVhcmVyIHt0b2tlbn0iLCAiWC1BUEktS2V5Ijogc2VsZi5fYXBpX2tleX0KICAgICAgICApCg== \ No newline at end of file diff --git a/fireblocks/unknown_model.py b/fireblocks/unknown_model.py index 7659394f..ca1ebc53 100644 --- a/fireblocks/unknown_model.py +++ b/fireblocks/unknown_model.py @@ -1,33 +1 @@ -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - -from pydantic import BaseModel, create_model -import json -import pprint - - -class UnknownBaseModel(BaseModel): - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - return json.dumps(self.to_dict()) - - def to_dict(self): - return self.dict() - - -def create_unknown_model(data): - fields = {f: (type(v), ...) for f, v in data.items()} - return create_model("UnknownModel", __base__=UnknownBaseModel, **fields) +IiIiCkZpcmVibG9ja3MgQVBJCgpGaXJlYmxvY2tzIHByb3ZpZGVzIGEgc3VpdGUgb2YgYXBwbGljYXRpb25zIHRvIG1hbmFnZSBkaWdpdGFsIGFzc2V0IG9wZXJhdGlvbnMgYW5kIGEgY29tcGxldGUgZGV2ZWxvcG1lbnQgcGxhdGZvcm0gdG8gYnVpbGQgeW91ciBidXNpbmVzcyBvbiB0aGUgYmxvY2tjaGFpbi4gIC0gVmlzaXQgb3VyIHdlYnNpdGUgZm9yIG1vcmUgaW5mb3JtYXRpb246IFtGaXJlYmxvY2tzIFdlYnNpdGVdKGh0dHBzOi8vZmlyZWJsb2Nrcy5jb20pIC0gVmlzaXQgb3VyIGRldmVsb3BlciBkb2NzOiBbRmlyZWJsb2NrcyBEZXZQb3J0YWxdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbSkKClRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgpDb250YWN0OiBkZXZlbG9wZXJzQGZpcmVibG9ja3MuY29tCkdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQoKRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKZnJvbSBweWRhbnRpYyBpbXBvcnQgQmFzZU1vZGVsLCBjcmVhdGVfbW9kZWwKaW1wb3J0IGpzb24KaW1wb3J0IHBwcmludAoKCmNsYXNzIFVua25vd25CYXNlTW9kZWwoQmFzZU1vZGVsKToKICAgIGRlZiB0b19zdHIoc2VsZikgLT4gc3RyOgogICAgICAgICIiIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgdXNpbmcgYWxpYXMiIiIKICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQoc2VsZi5tb2RlbF9kdW1wKGJ5X2FsaWFzPVRydWUpKQoKICAgIGRlZiB0b19qc29uKHNlbGYpIC0+IHN0cjoKICAgICAgICAiIiJSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCB1c2luZyBhbGlhcyIiIgogICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYudG9fZGljdCgpKQoKICAgIGRlZiB0b19kaWN0KHNlbGYpOgogICAgICAgIHJldHVybiBzZWxmLmRpY3QoKQoKCmRlZiBjcmVhdGVfdW5rbm93bl9tb2RlbChkYXRhKToKICAgIGZpZWxkcyA9IHtmOiAodHlwZSh2KSwgLi4uKSBmb3IgZiwgdiBpbiBkYXRhLml0ZW1zKCl9CiAgICByZXR1cm4gY3JlYXRlX21vZGVsKCJVbmtub3duTW9kZWwiLCBfX2Jhc2VfXz1Vbmtub3duQmFzZU1vZGVsLCAqKmZpZWxkcykK \ No newline at end of file diff --git a/fireblocks/user_agent_util.py b/fireblocks/user_agent_util.py index 4bdb81e2..15e13caf 100644 --- a/fireblocks/user_agent_util.py +++ b/fireblocks/user_agent_util.py @@ -1,31 +1 @@ -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - -import platform -from fireblocks import __version__ - - -class UserAgentUtil: - @staticmethod - def get_user_agent(is_anonymous_platform: bool, custom_user_agent: str) -> str: - user_agent = f"fireblocks/sdk/python/{__version__}" - if not is_anonymous_platform: - os_type = platform.system() - os_version = platform.release() - os_arch = platform.machine() - - user_agent += f" ({os_type} {os_version}; {os_arch})" - - if custom_user_agent is not None: - user_agent = custom_user_agent + " " + user_agent - - return user_agent +IiIiCkZpcmVibG9ja3MgQVBJCgpGaXJlYmxvY2tzIHByb3ZpZGVzIGEgc3VpdGUgb2YgYXBwbGljYXRpb25zIHRvIG1hbmFnZSBkaWdpdGFsIGFzc2V0IG9wZXJhdGlvbnMgYW5kIGEgY29tcGxldGUgZGV2ZWxvcG1lbnQgcGxhdGZvcm0gdG8gYnVpbGQgeW91ciBidXNpbmVzcyBvbiB0aGUgYmxvY2tjaGFpbi4gIC0gVmlzaXQgb3VyIHdlYnNpdGUgZm9yIG1vcmUgaW5mb3JtYXRpb246IFtGaXJlYmxvY2tzIFdlYnNpdGVdKGh0dHBzOi8vZmlyZWJsb2Nrcy5jb20pIC0gVmlzaXQgb3VyIGRldmVsb3BlciBkb2NzOiBbRmlyZWJsb2NrcyBEZXZQb3J0YWxdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbSkKClRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgpDb250YWN0OiBkZXZlbG9wZXJzQGZpcmVibG9ja3MuY29tCkdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQoKRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKaW1wb3J0IHBsYXRmb3JtCmZyb20gZmlyZWJsb2NrcyBpbXBvcnQgX192ZXJzaW9uX18KCgpjbGFzcyBVc2VyQWdlbnRVdGlsOgogICAgQHN0YXRpY21ldGhvZAogICAgZGVmIGdldF91c2VyX2FnZW50KGlzX2Fub255bW91c19wbGF0Zm9ybTogYm9vbCwgY3VzdG9tX3VzZXJfYWdlbnQ6IHN0cikgLT4gc3RyOgogICAgICAgIHVzZXJfYWdlbnQgPSBmImZpcmVibG9ja3Mvc2RrL3B5dGhvbi97X192ZXJzaW9uX199IgogICAgICAgIGlmIG5vdCBpc19hbm9ueW1vdXNfcGxhdGZvcm06CiAgICAgICAgICAgIG9zX3R5cGUgPSBwbGF0Zm9ybS5zeXN0ZW0oKQogICAgICAgICAgICBvc192ZXJzaW9uID0gcGxhdGZvcm0ucmVsZWFzZSgpCiAgICAgICAgICAgIG9zX2FyY2ggPSBwbGF0Zm9ybS5tYWNoaW5lKCkKCiAgICAgICAgICAgIHVzZXJfYWdlbnQgKz0gZiIgKHtvc190eXBlfSB7b3NfdmVyc2lvbn07IHtvc19hcmNofSkiCgogICAgICAgIGlmIGN1c3RvbV91c2VyX2FnZW50IGlzIG5vdCBOb25lOgogICAgICAgICAgICB1c2VyX2FnZW50ID0gY3VzdG9tX3VzZXJfYWdlbnQgKyAiICIgKyB1c2VyX2FnZW50CgogICAgICAgIHJldHVybiB1c2VyX2FnZW50Cg== \ No newline at end of file diff --git a/fireblocks/validation_utils.py b/fireblocks/validation_utils.py index 05a01cf4..1e9b8754 100644 --- a/fireblocks/validation_utils.py +++ b/fireblocks/validation_utils.py @@ -1,18 +1 @@ -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -def validate_not_empty_string(function_name: str, param_name: str, param_value: str): - if not param_value: - raise ValueError( - f"The required parameter '{param_name}' was empty when calling '{function_name}'" - ) +IiIiCkZpcmVibG9ja3MgQVBJCgpGaXJlYmxvY2tzIHByb3ZpZGVzIGEgc3VpdGUgb2YgYXBwbGljYXRpb25zIHRvIG1hbmFnZSBkaWdpdGFsIGFzc2V0IG9wZXJhdGlvbnMgYW5kIGEgY29tcGxldGUgZGV2ZWxvcG1lbnQgcGxhdGZvcm0gdG8gYnVpbGQgeW91ciBidXNpbmVzcyBvbiB0aGUgYmxvY2tjaGFpbi4gIC0gVmlzaXQgb3VyIHdlYnNpdGUgZm9yIG1vcmUgaW5mb3JtYXRpb246IFtGaXJlYmxvY2tzIFdlYnNpdGVdKGh0dHBzOi8vZmlyZWJsb2Nrcy5jb20pIC0gVmlzaXQgb3VyIGRldmVsb3BlciBkb2NzOiBbRmlyZWJsb2NrcyBEZXZQb3J0YWxdKGh0dHBzOi8vZGV2ZWxvcGVycy5maXJlYmxvY2tzLmNvbSkKClRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgpDb250YWN0OiBkZXZlbG9wZXJzQGZpcmVibG9ja3MuY29tCkdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQoKRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmRlZiB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKGZ1bmN0aW9uX25hbWU6IHN0ciwgcGFyYW1fbmFtZTogc3RyLCBwYXJhbV92YWx1ZTogc3RyKToKICAgIGlmIG5vdCBwYXJhbV92YWx1ZToKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAogICAgICAgICAgICBmIlRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3twYXJhbV9uYW1lfScgd2FzIGVtcHR5IHdoZW4gY2FsbGluZyAne2Z1bmN0aW9uX25hbWV9JyIKICAgICAgICApCg== \ No newline at end of file diff --git a/git_push.sh b/git_push.sh index 9aa5077c..27087f2f 100644 --- a/git_push.sh +++ b/git_push.sh @@ -1,57 +1 @@ -#!/bin/sh -# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/ -# -# Usage example: /bin/sh ./git_push.sh wing328 openapi-petstore-perl "minor update" "gitlab.com" - -git_user_id=$1 -git_repo_id=$2 -release_note=$3 -git_host=$4 - -if [ "$git_host" = "" ]; then - git_host="github.com" - echo "[INFO] No command line input provided. Set \$git_host to $git_host" -fi - -if [ "$git_user_id" = "" ]; then - git_user_id="fireblocks" - echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id" -fi - -if [ "$git_repo_id" = "" ]; then - git_repo_id="py-sdk" - echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id" -fi - -if [ "$release_note" = "" ]; then - release_note="Minor update" - echo "[INFO] No command line input provided. Set \$release_note to $release_note" -fi - -# Initialize the local directory as a Git repository -git init - -# Adds the files in the local repository and stages them for commit. -git add . - -# Commits the tracked changes and prepares them to be pushed to a remote repository. -git commit -m "$release_note" - -# Sets the new remote -git_remote=$(git remote) -if [ "$git_remote" = "" ]; then # git remote not defined - - if [ "$GIT_TOKEN" = "" ]; then - echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment." - git remote add origin https://${git_host}/${git_user_id}/${git_repo_id}.git - else - git remote add origin https://${git_user_id}:"${GIT_TOKEN}"@${git_host}/${git_user_id}/${git_repo_id}.git - fi - -fi - -git pull origin master - -# Pushes (Forces) the changes in the local repository up to the remote repository -echo "Git pushing to https://${git_host}/${git_user_id}/${git_repo_id}.git" -git push origin master 2>&1 | grep -v 'To https' +IyEvYmluL3NoCiMgcmVmOiBodHRwczovL2hlbHAuZ2l0aHViLmNvbS9hcnRpY2xlcy9hZGRpbmctYW4tZXhpc3RpbmctcHJvamVjdC10by1naXRodWItdXNpbmctdGhlLWNvbW1hbmQtbGluZS8KIwojIFVzYWdlIGV4YW1wbGU6IC9iaW4vc2ggLi9naXRfcHVzaC5zaCB3aW5nMzI4IG9wZW5hcGktcGV0c3RvcmUtcGVybCAibWlub3IgdXBkYXRlIiAiZ2l0bGFiLmNvbSIKCmdpdF91c2VyX2lkPSQxCmdpdF9yZXBvX2lkPSQyCnJlbGVhc2Vfbm90ZT0kMwpnaXRfaG9zdD0kNAoKaWYgWyAiJGdpdF9ob3N0IiA9ICIiIF07IHRoZW4KICAgIGdpdF9ob3N0PSJnaXRodWIuY29tIgogICAgZWNobyAiW0lORk9dIE5vIGNvbW1hbmQgbGluZSBpbnB1dCBwcm92aWRlZC4gU2V0IFwkZ2l0X2hvc3QgdG8gJGdpdF9ob3N0IgpmaQoKaWYgWyAiJGdpdF91c2VyX2lkIiA9ICIiIF07IHRoZW4KICAgIGdpdF91c2VyX2lkPSJmaXJlYmxvY2tzIgogICAgZWNobyAiW0lORk9dIE5vIGNvbW1hbmQgbGluZSBpbnB1dCBwcm92aWRlZC4gU2V0IFwkZ2l0X3VzZXJfaWQgdG8gJGdpdF91c2VyX2lkIgpmaQoKaWYgWyAiJGdpdF9yZXBvX2lkIiA9ICIiIF07IHRoZW4KICAgIGdpdF9yZXBvX2lkPSJweS1zZGsiCiAgICBlY2hvICJbSU5GT10gTm8gY29tbWFuZCBsaW5lIGlucHV0IHByb3ZpZGVkLiBTZXQgXCRnaXRfcmVwb19pZCB0byAkZ2l0X3JlcG9faWQiCmZpCgppZiBbICIkcmVsZWFzZV9ub3RlIiA9ICIiIF07IHRoZW4KICAgIHJlbGVhc2Vfbm90ZT0iTWlub3IgdXBkYXRlIgogICAgZWNobyAiW0lORk9dIE5vIGNvbW1hbmQgbGluZSBpbnB1dCBwcm92aWRlZC4gU2V0IFwkcmVsZWFzZV9ub3RlIHRvICRyZWxlYXNlX25vdGUiCmZpCgojIEluaXRpYWxpemUgdGhlIGxvY2FsIGRpcmVjdG9yeSBhcyBhIEdpdCByZXBvc2l0b3J5CmdpdCBpbml0CgojIEFkZHMgdGhlIGZpbGVzIGluIHRoZSBsb2NhbCByZXBvc2l0b3J5IGFuZCBzdGFnZXMgdGhlbSBmb3IgY29tbWl0LgpnaXQgYWRkIC4KCiMgQ29tbWl0cyB0aGUgdHJhY2tlZCBjaGFuZ2VzIGFuZCBwcmVwYXJlcyB0aGVtIHRvIGJlIHB1c2hlZCB0byBhIHJlbW90ZSByZXBvc2l0b3J5LgpnaXQgY29tbWl0IC1tICIkcmVsZWFzZV9ub3RlIgoKIyBTZXRzIHRoZSBuZXcgcmVtb3RlCmdpdF9yZW1vdGU9JChnaXQgcmVtb3RlKQppZiBbICIkZ2l0X3JlbW90ZSIgPSAiIiBdOyB0aGVuICMgZ2l0IHJlbW90ZSBub3QgZGVmaW5lZAoKICAgIGlmIFsgIiRHSVRfVE9LRU4iID0gIiIgXTsgdGhlbgogICAgICAgIGVjaG8gIltJTkZPXSBcJEdJVF9UT0tFTiAoZW52aXJvbm1lbnQgdmFyaWFibGUpIGlzIG5vdCBzZXQuIFVzaW5nIHRoZSBnaXQgY3JlZGVudGlhbCBpbiB5b3VyIGVudmlyb25tZW50LiIKICAgICAgICBnaXQgcmVtb3RlIGFkZCBvcmlnaW4gaHR0cHM6Ly8ke2dpdF9ob3N0fS8ke2dpdF91c2VyX2lkfS8ke2dpdF9yZXBvX2lkfS5naXQKICAgIGVsc2UKICAgICAgICBnaXQgcmVtb3RlIGFkZCBvcmlnaW4gaHR0cHM6Ly8ke2dpdF91c2VyX2lkfToiJHtHSVRfVE9LRU59IkAke2dpdF9ob3N0fS8ke2dpdF91c2VyX2lkfS8ke2dpdF9yZXBvX2lkfS5naXQKICAgIGZpCgpmaQoKZ2l0IHB1bGwgb3JpZ2luIG1hc3RlcgoKIyBQdXNoZXMgKEZvcmNlcykgdGhlIGNoYW5nZXMgaW4gdGhlIGxvY2FsIHJlcG9zaXRvcnkgdXAgdG8gdGhlIHJlbW90ZSByZXBvc2l0b3J5CmVjaG8gIkdpdCBwdXNoaW5nIHRvIGh0dHBzOi8vJHtnaXRfaG9zdH0vJHtnaXRfdXNlcl9pZH0vJHtnaXRfcmVwb19pZH0uZ2l0IgpnaXQgcHVzaCBvcmlnaW4gbWFzdGVyIDI+JjEgfCBncmVwIC12ICdUbyBodHRwcycK \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 253ce43a..18975720 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,92 +1 @@ -[tool.poetry] -name = "fireblocks" -version = "15.0.0" -description = "Fireblocks API" -authors = ["Fireblocks "] -license = "MIT License" -readme = "README.md" -repository = "https://github.com/fireblocks/py-sdk" -keywords = ["Fireblocks", "SDK", "Fireblocks API"] -include = ["fireblocks/py.typed"] - -[tool.poetry.dependencies] -python = "^3.8" - -urllib3 = ">= 2.1.0, < 3.0.0" -python-dateutil = ">= 2.8.2" -pydantic = ">= 2" -typing-extensions = ">= 4.7.1" -PyJWT = ">= 2.3.0" -cryptography = ">= 2.7" - -[tool.poetry.dev-dependencies] -pytest = ">= 7.2.1" -pytest-cov = ">= 2.8.1" -pytest-mock = ">= 3.14.0" -tox = ">= 3.9.0" -flake8 = ">= 4.0.0" -types-python-dateutil = ">= 2.8.19.14" -mypy = ">= 1.5" - - -[build-system] -requires = ["setuptools"] -build-backend = "setuptools.build_meta" - -[tool.pylint.'MESSAGES CONTROL'] -extension-pkg-whitelist = "pydantic" - -[tool.mypy] -files = [ - "fireblocks", - #"test", # auto-generated tests - "tests", # hand-written tests -] -# TODO: enable "strict" once all these individual checks are passing -# strict = true - -# List from: https://mypy.readthedocs.io/en/stable/existing_code.html#introduce-stricter-options -warn_unused_configs = true -warn_redundant_casts = true -warn_unused_ignores = true - -## Getting these passing should be easy -strict_equality = true -extra_checks = true - -## Strongly recommend enabling this one as soon as you can -check_untyped_defs = true - -## These shouldn't be too much additional work, but may be tricky to -## get passing if you use a lot of untyped libraries -disallow_subclassing_any = true -disallow_untyped_decorators = true -disallow_any_generics = true - -### These next few are various gradations of forcing use of type annotations -#disallow_untyped_calls = true -#disallow_incomplete_defs = true -#disallow_untyped_defs = true -# -### This one isn't too hard to get passing, but return on investment is lower -#no_implicit_reexport = true -# -### This one can be tricky to get passing if you use a lot of untyped libraries -#warn_return_any = true - -[[tool.mypy.overrides]] -module = [ - "fireblocks.configuration", -] -warn_unused_ignores = true -strict_equality = true -extra_checks = true -check_untyped_defs = true -disallow_subclassing_any = true -disallow_untyped_decorators = true -disallow_any_generics = true -disallow_untyped_calls = true -disallow_incomplete_defs = true -disallow_untyped_defs = true -no_implicit_reexport = true -warn_return_any = true +W3Rvb2wucG9ldHJ5XQpuYW1lID0gImZpcmVibG9ja3MiCnZlcnNpb24gPSAiMC4wLjAiCmRlc2NyaXB0aW9uID0gIkZpcmVibG9ja3MgQVBJIgphdXRob3JzID0gWyJGaXJlYmxvY2tzIDxkZXZlbG9wZXJzQGZpcmVibG9ja3MuY29tPiJdCmxpY2Vuc2UgPSAiTUlUIExpY2Vuc2UiCnJlYWRtZSA9ICJSRUFETUUubWQiCnJlcG9zaXRvcnkgPSAiaHR0cHM6Ly9naXRodWIuY29tL2ZpcmVibG9ja3MvcHktc2RrIgprZXl3b3JkcyA9IFsiRmlyZWJsb2NrcyIsICJTREsiLCAiRmlyZWJsb2NrcyBBUEkiXQppbmNsdWRlID0gWyJmaXJlYmxvY2tzL3B5LnR5cGVkIl0KClt0b29sLnBvZXRyeS5kZXBlbmRlbmNpZXNdCnB5dGhvbiA9ICJeMy44IgoKdXJsbGliMyA9ICI+PSAyLjEuMCwgPCAzLjAuMCIKcHl0aG9uLWRhdGV1dGlsID0gIj49IDIuOC4yIgpweWRhbnRpYyA9ICI+PSAyIgp0eXBpbmctZXh0ZW5zaW9ucyA9ICI+PSA0LjcuMSIKUHlKV1QgPSAiPj0gMi4zLjAiCmNyeXB0b2dyYXBoeSA9ICI+PSAyLjciCgpbdG9vbC5wb2V0cnkuZGV2LWRlcGVuZGVuY2llc10KcHl0ZXN0ID0gIj49IDcuMi4xIgpweXRlc3QtY292ID0gIj49IDIuOC4xIgpweXRlc3QtbW9jayA9ICI+PSAzLjE0LjAiCnRveCA9ICI+PSAzLjkuMCIKZmxha2U4ID0gIj49IDQuMC4wIgp0eXBlcy1weXRob24tZGF0ZXV0aWwgPSAiPj0gMi44LjE5LjE0IgpteXB5ID0gIj49IDEuNSIKCgpbYnVpbGQtc3lzdGVtXQpyZXF1aXJlcyA9IFsic2V0dXB0b29scyJdCmJ1aWxkLWJhY2tlbmQgPSAic2V0dXB0b29scy5idWlsZF9tZXRhIgoKW3Rvb2wucHlsaW50LidNRVNTQUdFUyBDT05UUk9MJ10KZXh0ZW5zaW9uLXBrZy13aGl0ZWxpc3QgPSAicHlkYW50aWMiCgpbdG9vbC5teXB5XQpmaWxlcyA9IFsKICAiZmlyZWJsb2NrcyIsCiAgIyJ0ZXN0IiwgICMgYXV0by1nZW5lcmF0ZWQgdGVzdHMKICAidGVzdHMiLCAjIGhhbmQtd3JpdHRlbiB0ZXN0cwpdCiMgVE9ETzogZW5hYmxlICJzdHJpY3QiIG9uY2UgYWxsIHRoZXNlIGluZGl2aWR1YWwgY2hlY2tzIGFyZSBwYXNzaW5nCiMgc3RyaWN0ID0gdHJ1ZQoKIyBMaXN0IGZyb206IGh0dHBzOi8vbXlweS5yZWFkdGhlZG9jcy5pby9lbi9zdGFibGUvZXhpc3RpbmdfY29kZS5odG1sI2ludHJvZHVjZS1zdHJpY3Rlci1vcHRpb25zCndhcm5fdW51c2VkX2NvbmZpZ3MgPSB0cnVlCndhcm5fcmVkdW5kYW50X2Nhc3RzID0gdHJ1ZQp3YXJuX3VudXNlZF9pZ25vcmVzID0gdHJ1ZQoKIyMgR2V0dGluZyB0aGVzZSBwYXNzaW5nIHNob3VsZCBiZSBlYXN5CnN0cmljdF9lcXVhbGl0eSA9IHRydWUKZXh0cmFfY2hlY2tzID0gdHJ1ZQoKIyMgU3Ryb25nbHkgcmVjb21tZW5kIGVuYWJsaW5nIHRoaXMgb25lIGFzIHNvb24gYXMgeW91IGNhbgpjaGVja191bnR5cGVkX2RlZnMgPSB0cnVlCgojIyBUaGVzZSBzaG91bGRuJ3QgYmUgdG9vIG11Y2ggYWRkaXRpb25hbCB3b3JrLCBidXQgbWF5IGJlIHRyaWNreSB0bwojIyBnZXQgcGFzc2luZyBpZiB5b3UgdXNlIGEgbG90IG9mIHVudHlwZWQgbGlicmFyaWVzCmRpc2FsbG93X3N1YmNsYXNzaW5nX2FueSA9IHRydWUKZGlzYWxsb3dfdW50eXBlZF9kZWNvcmF0b3JzID0gdHJ1ZQpkaXNhbGxvd19hbnlfZ2VuZXJpY3MgPSB0cnVlCgojIyMgVGhlc2UgbmV4dCBmZXcgYXJlIHZhcmlvdXMgZ3JhZGF0aW9ucyBvZiBmb3JjaW5nIHVzZSBvZiB0eXBlIGFubm90YXRpb25zCiNkaXNhbGxvd191bnR5cGVkX2NhbGxzID0gdHJ1ZQojZGlzYWxsb3dfaW5jb21wbGV0ZV9kZWZzID0gdHJ1ZQojZGlzYWxsb3dfdW50eXBlZF9kZWZzID0gdHJ1ZQojCiMjIyBUaGlzIG9uZSBpc24ndCB0b28gaGFyZCB0byBnZXQgcGFzc2luZywgYnV0IHJldHVybiBvbiBpbnZlc3RtZW50IGlzIGxvd2VyCiNub19pbXBsaWNpdF9yZWV4cG9ydCA9IHRydWUKIwojIyMgVGhpcyBvbmUgY2FuIGJlIHRyaWNreSB0byBnZXQgcGFzc2luZyBpZiB5b3UgdXNlIGEgbG90IG9mIHVudHlwZWQgbGlicmFyaWVzCiN3YXJuX3JldHVybl9hbnkgPSB0cnVlCgpbW3Rvb2wubXlweS5vdmVycmlkZXNdXQptb2R1bGUgPSBbCiAgImZpcmVibG9ja3MuY29uZmlndXJhdGlvbiIsCl0Kd2Fybl91bnVzZWRfaWdub3JlcyA9IHRydWUKc3RyaWN0X2VxdWFsaXR5ID0gdHJ1ZQpleHRyYV9jaGVja3MgPSB0cnVlCmNoZWNrX3VudHlwZWRfZGVmcyA9IHRydWUKZGlzYWxsb3dfc3ViY2xhc3NpbmdfYW55ID0gdHJ1ZQpkaXNhbGxvd191bnR5cGVkX2RlY29yYXRvcnMgPSB0cnVlCmRpc2FsbG93X2FueV9nZW5lcmljcyA9IHRydWUKZGlzYWxsb3dfdW50eXBlZF9jYWxscyA9IHRydWUKZGlzYWxsb3dfaW5jb21wbGV0ZV9kZWZzID0gdHJ1ZQpkaXNhbGxvd191bnR5cGVkX2RlZnMgPSB0cnVlCm5vX2ltcGxpY2l0X3JlZXhwb3J0ID0gdHJ1ZQp3YXJuX3JldHVybl9hbnkgPSB0cnVlCg== \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 6780207d..9495335c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1 @@ -python_dateutil >= 2.8.2 -setuptools >= 21.0.0 -urllib3 >= 2.1.0, < 3.0.0 -pydantic >= 2 -typing-extensions >= 4.7.1 -PyJWT >= 2.3.0 -cryptography>=2.7 +cHl0aG9uX2RhdGV1dGlsID49IDIuOC4yCnNldHVwdG9vbHMgPj0gMjEuMC4wCnVybGxpYjMgPj0gMi4xLjAsIDwgMy4wLjAKcHlkYW50aWMgPj0gMgp0eXBpbmctZXh0ZW5zaW9ucyA+PSA0LjcuMQpQeUpXVCA+PSAyLjMuMApjcnlwdG9ncmFwaHk+PTIuNwo= \ No newline at end of file diff --git a/setup.cfg b/setup.cfg index 11433ee8..85d628bc 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,2 +1 @@ -[flake8] -max-line-length=99 +W2ZsYWtlOF0KbWF4LWxpbmUtbGVuZ3RoPTk5Cg== \ No newline at end of file diff --git a/setup.py b/setup.py index 724a56b5..d933302d 100644 --- a/setup.py +++ b/setup.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -import re -from setuptools import setup, find_packages # noqa: H301 - -# To install the library, run the following -# -# python setup.py install -# -# prerequisite: setuptools -# http://pypi.python.org/pypi/setuptools -NAME = "fireblocks" -VERSION = "15.0.0" -PYTHON_REQUIRES = ">= 3.8" -REQUIRES = [ - "urllib3 >= 2.1.0, < 3.0.0", - "python-dateutil >= 2.8.2", - "pydantic >= 2", - "typing-extensions >= 4.7.1", - "PyJWT >= 2.3.0", - "cryptography >=2.7", -] - -with open("README.md", "r", encoding="utf-8") as f: - long_description = f.read() - long_description = re.sub(r'(?<=\()docs/', 'https://github.com/fireblocks/py-sdk/tree/master' + '/docs/', long_description) - -setup( - name=NAME, - version=VERSION, - description="Fireblocks API", - author="Fireblocks", - author_email="developers@fireblocks.com", - url="https://github.com/fireblocks/py-sdk/tree/master", - keywords=["Fireblocks", "SDK", "Fireblocks API"], - python_requires=PYTHON_REQUIRES, - install_requires=REQUIRES, - packages=find_packages(exclude=["test", "tests"]), - include_package_data=True, - license="MIT License", - long_description_content_type='text/markdown', - long_description=long_description, # noqa: E501 - package_data={"fireblocks": ["py.typed"]}, - classifiers=[ - 'Development Status :: 5 - Production/Stable', - 'Intended Audience :: Developers', - 'Topic :: Software Development', - 'License :: OSI Approved :: MIT License', - 'Programming Language :: Python :: 3.8', - ] -) +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKICAgIEZpcmVibG9ja3MgQVBJCgogICAgRmlyZWJsb2NrcyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwcGxpY2F0aW9ucyB0byBtYW5hZ2UgZGlnaXRhbCBhc3NldCBvcGVyYXRpb25zIGFuZCBhIGNvbXBsZXRlIGRldmVsb3BtZW50IHBsYXRmb3JtIHRvIGJ1aWxkIHlvdXIgYnVzaW5lc3Mgb24gdGhlIGJsb2NrY2hhaW4uICAtIFZpc2l0IG91ciB3ZWJzaXRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBbRmlyZWJsb2NrcyBXZWJzaXRlXShodHRwczovL2ZpcmVibG9ja3MuY29tKSAtIFZpc2l0IG91ciBkZXZlbG9wZXIgZG9jczogW0ZpcmVibG9ja3MgRGV2UG9ydGFsXShodHRwczovL2RldmVsb3BlcnMuZmlyZWJsb2Nrcy5jb20pIAoKICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjYuMgogICAgQ29udGFjdDogZGV2ZWxvcGVyc0BmaXJlYmxvY2tzLmNvbQogICAgR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgogICAgRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LgoiIiIgICMgbm9xYTogRTUwMQoKCmltcG9ydCByZQpmcm9tIHNldHVwdG9vbHMgaW1wb3J0IHNldHVwLCBmaW5kX3BhY2thZ2VzICAjIG5vcWE6IEgzMDEKCiMgVG8gaW5zdGFsbCB0aGUgbGlicmFyeSwgcnVuIHRoZSBmb2xsb3dpbmcKIwojIHB5dGhvbiBzZXR1cC5weSBpbnN0YWxsCiMKIyBwcmVyZXF1aXNpdGU6IHNldHVwdG9vbHMKIyBodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvc2V0dXB0b29scwpOQU1FID0gImZpcmVibG9ja3MiClZFUlNJT04gPSAiMC4wLjAiClBZVEhPTl9SRVFVSVJFUyA9ICI+PSAzLjgiClJFUVVJUkVTID0gWwogICAgInVybGxpYjMgPj0gMi4xLjAsIDwgMy4wLjAiLAogICAgInB5dGhvbi1kYXRldXRpbCA+PSAyLjguMiIsCiAgICAicHlkYW50aWMgPj0gMiIsCiAgICAidHlwaW5nLWV4dGVuc2lvbnMgPj0gNC43LjEiLAogICAgIlB5SldUID49IDIuMy4wIiwKICAgICJjcnlwdG9ncmFwaHkgPj0yLjciLApdCgp3aXRoIG9wZW4oIlJFQURNRS5tZCIsICJyIiwgZW5jb2Rpbmc9InV0Zi04IikgYXMgZjoKICAgIGxvbmdfZGVzY3JpcHRpb24gPSBmLnJlYWQoKQogICAgbG9uZ19kZXNjcmlwdGlvbiA9IHJlLnN1YihyJyg/PD1cKClkb2NzLycsICdodHRwczovL2dpdGh1Yi5jb20vZmlyZWJsb2Nrcy9weS1zZGsvdHJlZS9tYXN0ZXInICsgJy9kb2NzLycsIGxvbmdfZGVzY3JpcHRpb24pCgpzZXR1cCgKICAgIG5hbWU9TkFNRSwKICAgIHZlcnNpb249VkVSU0lPTiwKICAgIGRlc2NyaXB0aW9uPSJGaXJlYmxvY2tzIEFQSSIsCiAgICBhdXRob3I9IkZpcmVibG9ja3MiLAogICAgYXV0aG9yX2VtYWlsPSJkZXZlbG9wZXJzQGZpcmVibG9ja3MuY29tIiwKICAgIHVybD0iaHR0cHM6Ly9naXRodWIuY29tL2ZpcmVibG9ja3MvcHktc2RrL3RyZWUvbWFzdGVyIiwKICAgIGtleXdvcmRzPVsiRmlyZWJsb2NrcyIsICJTREsiLCAiRmlyZWJsb2NrcyBBUEkiXSwKICAgIHB5dGhvbl9yZXF1aXJlcz1QWVRIT05fUkVRVUlSRVMsCiAgICBpbnN0YWxsX3JlcXVpcmVzPVJFUVVJUkVTLAogICAgcGFja2FnZXM9ZmluZF9wYWNrYWdlcyhleGNsdWRlPVsidGVzdCIsICJ0ZXN0cyJdKSwKICAgIGluY2x1ZGVfcGFja2FnZV9kYXRhPVRydWUsCiAgICBsaWNlbnNlPSJNSVQgTGljZW5zZSIsCiAgICBsb25nX2Rlc2NyaXB0aW9uX2NvbnRlbnRfdHlwZT0ndGV4dC9tYXJrZG93bicsCiAgICBsb25nX2Rlc2NyaXB0aW9uPWxvbmdfZGVzY3JpcHRpb24sICAjIG5vcWE6IEU1MDEKICAgIHBhY2thZ2VfZGF0YT17ImZpcmVibG9ja3MiOiBbInB5LnR5cGVkIl19LAogICAgY2xhc3NpZmllcnM9WwogICAgICAgICdEZXZlbG9wbWVudCBTdGF0dXMgOjogNSAtIFByb2R1Y3Rpb24vU3RhYmxlJywKICAgICAgICAnSW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVycycsCiAgICAgICAgJ1RvcGljIDo6IFNvZnR3YXJlIERldmVsb3BtZW50JywKICAgICAgICAnTGljZW5zZSA6OiBPU0kgQXBwcm92ZWQgOjogTUlUIExpY2Vuc2UnLAogICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy44JywKICAgIF0KKQo= \ No newline at end of file diff --git a/test-requirements.txt b/test-requirements.txt index 901e70db..ae621f8c 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,8 +1 @@ -pytest >= 7.2.1 -pytest-cov >= 2.8.1 -pytest-mock >= 3.14.0 -tox >= 3.9.0 -flake8 >= 4.0.0 -types-python-dateutil >= 2.8.19.14 -mypy >= 1.5 -librt == 0.7.4 +cHl0ZXN0ID49IDcuMi4xCnB5dGVzdC1jb3YgPj0gMi44LjEKcHl0ZXN0LW1vY2sgPj0gMy4xNC4wCnRveCA+PSAzLjkuMApmbGFrZTggPj0gNC4wLjAKdHlwZXMtcHl0aG9uLWRhdGV1dGlsID49IDIuOC4xOS4xNApteXB5ID49IDEuNQpsaWJydCA9PSAwLjcuNAo= \ No newline at end of file diff --git a/test/fireblocks/dummy_test_key.txt b/test/fireblocks/dummy_test_key.txt index f8e5f505..2af46040 100644 --- a/test/fireblocks/dummy_test_key.txt +++ b/test/fireblocks/dummy_test_key.txt @@ -1,52 +1 @@ ------BEGIN PRIVATE KEY----- -MIIJRAIBADANBgkqhkiG9w0BAQEFAASCCS4wggkqAgEAAoICAQC+dA2hpk/cEkIF -uBHkpYjaNGhPgxb3rwD/lu9yB/LSMwhATesjnjuqVP5oj7N7B0EgyvGSVEkBmkaI -NIR/HMfvipjEOGIbqKegCOvXNgJbA1DFlUzrNqa8FMYKNK9gU8xk/vC9EjrD8vwH -ZYtnkBlRUAppDenseFX11sEnFVKljCcG5sh7e5CxRjJIJINYyzg/wETCW5j77T1e -/bHkreuJyw3/De6Y26pWUoC5UTKNbPZg4SbsMv+eC452KEwe3vUFxmAumFh2DeW6 -eYjzzSQhSTS/2L7U1cn5Q+/fsOU592Mne8h67NIiMm9NDZNc2OP2smivmWlGsmHC -dXdh3bwP61tfaMeym27Va0/4XqgXyzbITRryzsOdFt8VMa5XX34kK+98U2YR/bkF -FaQcCoIMo7YW5gExGw404TcmBtUVHwhTUegMJquOWXnlWCbCLAlAYabUnDVRqr+N -L350AcfS30qh7ebBrkahcWCY2ifwRI6DDyhFZE5thQ8efZL02JgL+7fJkNvG7hIG -7ph2sKqQ1OxAvh/QozW7+4ZPvU/JUo0ooR2bkf9VtZ3pV/qwdNsJn/D8op4TIg2h -WYJhf8AkCOgF+q20+lTDHdEH9yMOXDIfU0GNt6Au1lLNyWL044cBbuyiOI0cmuBx -4VcAF1++E7df4rhG+xjWItChn569iQIDAQABAoICAAwqWRmPiE/gKa/4VUpD6aU4 -jkYv8zZgiyGIaGSiDdhv8pG6+G9mwtxrP/H5ZedQrBAWbo5gjGZKDsHSCvmcosfS -FFaKXHf0UrrF/xyY4lcic9UfJ5HpxIZElG7f9SjjyW1VHJcTNEZCfedSDPDRU1Cu -mm+h+CSG/kStElr3AXe6J18JPFqo5rHwMDOMA4jXOFFYLHw2wiOrgI1SCrw3ANHl -MtBtOSWx+GQ5smfEAETo5icDksspKctUZSX2hoA9USzsgkXPrOzjj95Ut5MNMkbf -CHvNskjhnBxsQsUI5WeJvh9uSHzTpkuRaaskGBro7szaEhZPaBpgOB7mBnltor7M -IoivylOAlFMQawSNWPk2QolBXWnEGGwlb7NgYy1YUtKUrsG/R499mx0ogMqRcCCc -aFfK5Uz2e9ZxKpaM12d0Fc5blCMA+M19XZUIctjQasAR0sDKNqKXXFUOpVs9WKsC -PxF/4E3C69qXeb7bPUChNKOGZBkd3yd8VdB372EJnGwJhN3r88owS/69Eqa+Q1iR -eqGvcR3KL7wHCib+97xM8EgHdkPTA7Il/L+4Y24FOjJyV8jw/nA2LPaHhUaoGpeq -vIG5bxzPhCRam2Doktc1KvFoBYlBwu4B3LluoJQeGqwgobFLVzSFniOfAHgMozX9 -eWF1ItP+wdXOlJlRaAthAoIBAQD7DGi89neySheXED4/T5iMZQtXgJ/Y3kEaFZV5 -iADb96wVMoVmOTK0hrda6Q7c7wYqFbK8nSuGBs4RZ5CDQrWtdwPu/EyhzY5a3D3L -b+Kj1s6IQvXF8OpEL9TVRY0RvBD4XGtVusGCl5tqB/WUNdyr5n5DjLjNily6Udoo -I23u0cHDUnRIc//+b8asoKg0MoHisQTLF6yetsFA5fOWGCQETXKasyh3oL3FpyQ+ -FHO9iJb2+hCP7/6gsBgmyIiY7Zi5S2aU1KBALrt9BkcgNxz5g2NixvFgdmS++ap9 -JWle0H1YRoBzOCMlgrm5qxfRvdJbB1nD4x5QfjDeqVn7/nq5AoIBAQDCNbAYtsdu -CebskT7JMgdHw1IKRwLN4//LFFSd3bxRRzZtCMxNB0cFZwgVsr7jga9/qwzWJBxY -Fle43IzpObbQ52axTbWi39Y/ZxEU9FDBUy1uI6sqQ83obHCq6xuT4RzDx0JijZd+ -hem1zylpj3IIpA9vH0GOenookyzlpIxHqVsOX+TpJbVZcnVF17Z1XqzSgvTDZAny -svoCTTC2VLEshKmciu9JbNjubRZlJ1reuLrwnwdMpQwqlEUupAFFCxgAwp24QtRT -Wp0ZsRViyv67RKUphcTxYO6/5rAoFVJ7gc22f12fNA1b8oUB62lAZ0Ca7fHwZn7H -glF2NmvbQLFRAoIBAQCkKXYn8qdMz8RjRPzfW4YucDidbH+aSaOakfifcv7U2D0P -02yF7usoP1uQuAu/DxIh3PR2//Og/bwsh2NpYer5VnUdBqB5wbfP1GsYJ761UlbV -paufVy1pjzmGiKd5rFgQgCaz9Z5qbgbzq+a7lwkI4303YMLLrSl7sOCOFLTjUQh6 -V+WwJyKD18W7xoaXM1vZx9WRlJaNZoYykOva/0g2BArn/DV/HH5bzDMX4TnZ+4J0 -WAsShGYl32C7o7AnCF8w84xN0EhGEAkL9Vn3R/LLek44Hk1ivaiddRc2JIuls4Hz -go6mSVQ6SCR4s9eskIsIeWMKg+6jxhDg2S79aGgJAoIBAQCMD2wQZsEs+rcvpRBC -yXG2r4ZbIxtCoUu4idD8iQ1nEJSPzeiJJNZzbvrFq0M/kCehSxrW1PQcEwDwsR5u -lNDjl/7Xn9N+wy8gSpRnKEuVIQeChvbKZFv7YzleCnC5FYBJMUsPCE5ZUPpbxCt5 -lZoH4UnAOiptNqci3AFlHGaOx/SDSWUtP6Sp/YHV/Nv5iW3Z49fhkiQahDkJr+GR -nUKpeINaAljP+0/3o3SjPt6qAU/QeOAqxl0f2A6MtHq18Go/Ihvc51V5R8BE5xEl -ToCnTbpPV8nQyrdkblpcjgQOTm6tTu2WA1QfG6gQ2lXtvIk7Mp9pYIHOII3fUyA1 -31IBAoIBAQDvEy0mENemO2kOwETqsBE6nkA+6aSzY00NgD2bM4cMNk7FaR/vZtGG -ZczkViiYsbVlq+OhFCZjKpU9USoUZAfVCG7e22CjKXZPr24D498bU7D4cfI7FFSl -tOtlTyOn3pvfO9ByrPCT2KjurohgG5hkc+O3FJwcvV5f0zs8dWXP5/R/qxfDiRxP -o5aFaAWFgzOmi+hWqltnj+P8YJCumAa+zmHEM2JPn0j4StypGik3x4XcFYeQ/V0a -DRTG4uSTtpoqQVFWPmqkwpvsLoTBReyaXgu0hK5M97Vlm57eia/378ANYcRfXosH -Ew5NpyoEfRM7ImsH7N4h/lZyQ2uM0DfV ------END PRIVATE KEY----- +LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUpSQUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQ1M0d2dna3FBZ0VBQW9JQ0FRQytkQTJocGsvY0VrSUYKdUJIa3BZamFOR2hQZ3hiM3J3RC9sdTl5Qi9MU013aEFUZXNqbmp1cVZQNW9qN043QjBFZ3l2R1NWRWtCbWthSQpOSVIvSE1mdmlwakVPR0licUtlZ0NPdlhOZ0piQTFERmxVenJOcWE4Rk1ZS05LOWdVOHhrL3ZDOUVqckQ4dndIClpZdG5rQmxSVUFwcERlbnNlRlgxMXNFbkZWS2xqQ2NHNXNoN2U1Q3hSakpJSklOWXl6Zy93RVRDVzVqNzdUMWUKL2JIa3JldUp5dzMvRGU2WTI2cFdVb0M1VVRLTmJQWmc0U2JzTXYrZUM0NTJLRXdlM3ZVRnhtQXVtRmgyRGVXNgplWWp6elNRaFNUUy8yTDdVMWNuNVErL2ZzT1U1OTJNbmU4aDY3TklpTW05TkRaTmMyT1Ayc21pdm1XbEdzbUhDCmRYZGgzYndQNjF0ZmFNZXltMjdWYTAvNFhxZ1h5emJJVFJyeXpzT2RGdDhWTWE1WFgzNGtLKzk4VTJZUi9ia0YKRmFRY0NvSU1vN1lXNWdFeEd3NDA0VGNtQnRVVkh3aFRVZWdNSnF1T1dYbmxXQ2JDTEFsQVlhYlVuRFZScXIrTgpMMzUwQWNmUzMwcWg3ZWJCcmthaGNXQ1kyaWZ3Ukk2RER5aEZaRTV0aFE4ZWZaTDAySmdMKzdmSmtOdkc3aElHCjdwaDJzS3FRMU94QXZoL1Fvelc3KzRaUHZVL0pVbzBvb1IyYmtmOVZ0WjNwVi9xd2ROc0puL0Q4b3A0VElnMmgKV1lKaGY4QWtDT2dGK3EyMCtsVERIZEVIOXlNT1hESWZVMEdOdDZBdTFsTE55V0wwNDRjQmJ1eWlPSTBjbXVCeAo0VmNBRjErK0U3ZGY0cmhHK3hqV0l0Q2huNTY5aVFJREFRQUJBb0lDQUF3cVdSbVBpRS9nS2EvNFZVcEQ2YVU0CmprWXY4elpnaXlHSWFHU2lEZGh2OHBHNitHOW13dHhyUC9INVplZFFyQkFXYm81Z2pHWktEc0hTQ3ZtY29zZlMKRkZhS1hIZjBVcnJGL3h5WTRsY2ljOVVmSjVIcHhJWkVsRzdmOVNqanlXMVZISmNUTkVaQ2ZlZFNEUERSVTFDdQptbStoK0NTRy9rU3RFbHIzQVhlNkoxOEpQRnFvNXJId01ET01BNGpYT0ZGWUxIdzJ3aU9yZ0kxU0NydzNBTkhsCk10QnRPU1d4K0dRNXNtZkVBRVRvNWljRGtzc3BLY3RVWlNYMmhvQTlVU3pzZ2tYUHJPempqOTVVdDVNTk1rYmYKQ0h2TnNramhuQnhzUXNVSTVXZUp2aDl1U0h6VHBrdVJhYXNrR0JybzdzemFFaFpQYUJwZ09CN21Cbmx0b3I3TQpJb2l2eWxPQWxGTVFhd1NOV1BrMlFvbEJYV25FR0d3bGI3TmdZeTFZVXRLVXJzRy9SNDk5bXgwb2dNcVJjQ0NjCmFGZks1VXoyZTlaeEtwYU0xMmQwRmM1YmxDTUErTTE5WFpVSWN0alFhc0FSMHNES05xS1hYRlVPcFZzOVdLc0MKUHhGLzRFM0M2OXFYZWI3YlBVQ2hOS09HWkJrZDN5ZDhWZEIzNzJFSm5Hd0poTjNyODhvd1MvNjlFcWErUTFpUgplcUd2Y1IzS0w3d0hDaWIrOTd4TThFZ0hka1BUQTdJbC9MKzRZMjRGT2pKeVY4ancvbkEyTFBhSGhVYW9HcGVxCnZJRzVieHpQaENSYW0yRG9rdGMxS3ZGb0JZbEJ3dTRCM0xsdW9KUWVHcXdnb2JGTFZ6U0ZuaU9mQUhnTW96WDkKZVdGMUl0UCt3ZFhPbEpsUmFBdGhBb0lCQVFEN0RHaTg5bmV5U2hlWEVENC9UNWlNWlF0WGdKL1kza0VhRlpWNQppQURiOTZ3Vk1vVm1PVEswaHJkYTZRN2M3d1lxRmJLOG5TdUdCczRSWjVDRFFyV3Rkd1B1L0V5aHpZNWEzRDNMCmIrS2oxczZJUXZYRjhPcEVMOVRWUlkwUnZCRDRYR3RWdXNHQ2w1dHFCL1dVTmR5cjVuNURqTGpOaWx5NlVkb28KSTIzdTBjSERVblJJYy8vK2I4YXNvS2cwTW9IaXNRVExGNnlldHNGQTVmT1dHQ1FFVFhLYXN5aDNvTDNGcHlRKwpGSE85aUpiMitoQ1A3LzZnc0JnbXlJaVk3Wmk1UzJhVTFLQkFMcnQ5QmtjZ054ejVnMk5peHZGZ2RtUysrYXA5CkpXbGUwSDFZUm9Cek9DTWxncm01cXhmUnZkSmJCMW5ENHg1UWZqRGVxVm43L25xNUFvSUJBUURDTmJBWXRzZHUKQ2Vic2tUN0pNZ2RIdzFJS1J3TE40Ly9MRkZTZDNieFJSelp0Q014TkIwY0Zad2dWc3I3amdhOS9xd3pXSkJ4WQpGbGU0M0l6cE9iYlE1MmF4VGJXaTM5WS9aeEVVOUZEQlV5MXVJNnNxUTgzb2JIQ3E2eHVUNFJ6RHgwSmlqWmQrCmhlbTF6eWxwajNJSXBBOXZIMEdPZW5vb2t5emxwSXhIcVZzT1grVHBKYlZaY25WRjE3WjFYcXpTZ3ZURFpBbnkKc3ZvQ1RUQzJWTEVzaEttY2l1OUpiTmp1YlJabEoxcmV1THJ3bndkTXBRd3FsRVV1cEFGRkN4Z0F3cDI0UXRSVApXcDBac1JWaXl2NjdSS1VwaGNUeFlPNi81ckFvRlZKN2djMjJmMTJmTkExYjhvVUI2MmxBWjBDYTdmSHdabjdICmdsRjJObXZiUUxGUkFvSUJBUUNrS1hZbjhxZE16OFJqUlB6Zlc0WXVjRGlkYkgrYVNhT2FrZmlmY3Y3VTJEMFAKMDJ5Rjd1c29QMXVRdUF1L0R4SWgzUFIyLy9PZy9id3NoMk5wWWVyNVZuVWRCcUI1d2JmUDFHc1lKNzYxVWxiVgpwYXVmVnkxcGp6bUdpS2Q1ckZnUWdDYXo5WjVxYmdienErYTdsd2tJNDMwM1lNTExyU2w3c09DT0ZMVGpVUWg2ClYrV3dKeUtEMThXN3hvYVhNMXZaeDlXUmxKYU5ab1l5a092YS8wZzJCQXJuL0RWL0hINWJ6RE1YNFRuWis0SjAKV0FzU2hHWWwzMkM3bzdBbkNGOHc4NHhOMEVoR0VBa0w5Vm4zUi9MTGVrNDRIazFpdmFpZGRSYzJKSXVsczRIegpnbzZtU1ZRNlNDUjRzOWVza0lzSWVXTUtnKzZqeGhEZzJTNzlhR2dKQW9JQkFRQ01EMndRWnNFcytyY3ZwUkJDCnlYRzJyNFpiSXh0Q29VdTRpZEQ4aVExbkVKU1B6ZWlKSk5aemJ2ckZxME0va0NlaFN4clcxUFFjRXdEd3NSNXUKbE5EamwvN1huOU4rd3k4Z1NwUm5LRXVWSVFlQ2h2YktaRnY3WXpsZUNuQzVGWUJKTVVzUENFNVpVUHBieEN0NQpsWm9INFVuQU9pcHROcWNpM0FGbEhHYU94L1NEU1dVdFA2U3AvWUhWL052NWlXM1o0OWZoa2lRYWhEa0pyK0dSCm5VS3BlSU5hQWxqUCswLzNvM1NqUHQ2cUFVL1FlT0FxeGwwZjJBNk10SHExOEdvL0lodmM1MVY1UjhCRTV4RWwKVG9DblRicFBWOG5ReXJka2JscGNqZ1FPVG02dFR1MldBMVFmRzZnUTJsWHR2SWs3TXA5cFlJSE9JSTNmVXlBMQozMUlCQW9JQkFRRHZFeTBtRU5lbU8ya093RVRxc0JFNm5rQSs2YVN6WTAwTmdEMmJNNGNNTms3RmFSL3ZadEdHClpjemtWaWlZc2JWbHErT2hGQ1pqS3BVOVVTb1VaQWZWQ0c3ZTIyQ2pLWFpQcjI0RDQ5OGJVN0Q0Y2ZJN0ZGU2wKdE90bFR5T24zcHZmTzlCeXJQQ1QyS2p1cm9oZ0c1aGtjK08zRkp3Y3ZWNWYwenM4ZFdYUDUvUi9xeGZEaVJ4UApvNWFGYUFXRmd6T21pK2hXcWx0bmorUDhZSkN1bUFhK3ptSEVNMkpQbjBqNFN0eXBHaWszeDRYY0ZZZVEvVjBhCkRSVEc0dVNUdHBvcVFWRldQbXFrd3B2c0xvVEJSZXlhWGd1MGhLNU05N1ZsbTU3ZWlhLzM3OEFOWWNSZlhvc0gKRXc1TnB5b0VmUk03SW1zSDdONGgvbFp5UTJ1TTBEZlYKLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQo= \ No newline at end of file diff --git a/test/fireblocks/test_additional_options.py b/test/fireblocks/test_additional_options.py index ca30ce94..2f56304a 100644 --- a/test/fireblocks/test_additional_options.py +++ b/test/fireblocks/test_additional_options.py @@ -1,38 +1 @@ -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from fireblocks.additional_options import AdditionalOptions - -def test_is_anonymous_platform_real_value(): - options = AdditionalOptions(is_anonymous_platform=True) - assert options.is_anonymous_platform is True - -def test_is_anonymous_platform_default_value(): - options = AdditionalOptions() - assert options.is_anonymous_platform is False - -def test_user_agent_real_value(): - options = AdditionalOptions(user_agent="Test User Agent") - assert options.user_agent == "Test User Agent" - -def test_user_agent_default_value(): - options = AdditionalOptions() - assert options.user_agent is None - -def test_thread_pool_size_real_value(): - options = AdditionalOptions(thread_pool_size=10) - assert options.thread_pool_size == 10 - -def test_thread_pool_size_default_value(): - options = AdditionalOptions() - assert options.thread_pool_size == None +IiIiCiAgICBGaXJlYmxvY2tzIEFQSQoKICAgIEZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKSAKCiAgICBUaGUgdmVyc2lvbiBvZiB0aGUgT3BlbkFQSSBkb2N1bWVudDogMS42LjIKICAgIENvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KICAgIEdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQoKICAgIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS4KIiIiICAjIG5vcWE6IEU1MDEKCgpmcm9tIGZpcmVibG9ja3MuYWRkaXRpb25hbF9vcHRpb25zIGltcG9ydCBBZGRpdGlvbmFsT3B0aW9ucwoKZGVmIHRlc3RfaXNfYW5vbnltb3VzX3BsYXRmb3JtX3JlYWxfdmFsdWUoKToKICAgIG9wdGlvbnMgPSBBZGRpdGlvbmFsT3B0aW9ucyhpc19hbm9ueW1vdXNfcGxhdGZvcm09VHJ1ZSkKICAgIGFzc2VydCBvcHRpb25zLmlzX2Fub255bW91c19wbGF0Zm9ybSBpcyBUcnVlCgpkZWYgdGVzdF9pc19hbm9ueW1vdXNfcGxhdGZvcm1fZGVmYXVsdF92YWx1ZSgpOgogICAgb3B0aW9ucyA9IEFkZGl0aW9uYWxPcHRpb25zKCkKICAgIGFzc2VydCBvcHRpb25zLmlzX2Fub255bW91c19wbGF0Zm9ybSBpcyBGYWxzZQoKZGVmIHRlc3RfdXNlcl9hZ2VudF9yZWFsX3ZhbHVlKCk6CiAgICBvcHRpb25zID0gQWRkaXRpb25hbE9wdGlvbnModXNlcl9hZ2VudD0iVGVzdCBVc2VyIEFnZW50IikKICAgIGFzc2VydCBvcHRpb25zLnVzZXJfYWdlbnQgPT0gIlRlc3QgVXNlciBBZ2VudCIKCmRlZiB0ZXN0X3VzZXJfYWdlbnRfZGVmYXVsdF92YWx1ZSgpOgogICAgb3B0aW9ucyA9IEFkZGl0aW9uYWxPcHRpb25zKCkKICAgIGFzc2VydCBvcHRpb25zLnVzZXJfYWdlbnQgaXMgTm9uZQoKZGVmIHRlc3RfdGhyZWFkX3Bvb2xfc2l6ZV9yZWFsX3ZhbHVlKCk6CiAgICBvcHRpb25zID0gQWRkaXRpb25hbE9wdGlvbnModGhyZWFkX3Bvb2xfc2l6ZT0xMCkKICAgIGFzc2VydCBvcHRpb25zLnRocmVhZF9wb29sX3NpemUgPT0gMTAKCmRlZiB0ZXN0X3RocmVhZF9wb29sX3NpemVfZGVmYXVsdF92YWx1ZSgpOgogICAgb3B0aW9ucyA9IEFkZGl0aW9uYWxPcHRpb25zKCkKICAgIGFzc2VydCBvcHRpb25zLnRocmVhZF9wb29sX3NpemUgPT0gTm9uZQo= \ No newline at end of file diff --git a/test/fireblocks/test_bearer_token_provider.py b/test/fireblocks/test_bearer_token_provider.py index 8d8c4346..eebe74bd 100644 --- a/test/fireblocks/test_bearer_token_provider.py +++ b/test/fireblocks/test_bearer_token_provider.py @@ -1,96 +1 @@ -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -import pytest -from unittest.mock import patch -import jwt -from uuid import UUID -from fireblocks.bearer_token_provider import BearerTokenProvider - -@pytest.fixture -def secret_key(): - with open("test/fireblocks/dummy_test_key.txt", "r") as file: - return file.read().strip() - -@patch('uuid.uuid4', return_value=UUID('12345678-1234-5678-1234-567812345678')) # Mocked uuid -@patch('time.time', return_value=1609459200) # Mocked timestamp -def test_get_token_when_post_method(mock_time, mock_uuid, secret_key): - provider = BearerTokenProvider(api_key="dummy_api_key", secret_key=secret_key) - token = provider.get_token("POST", "/test/path", {"key": "value"}) - - # Assert that the token is a string - assert isinstance(token, str) - assert token == 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1cmkiOiIvdGVzdC9wYXRoIiwibm9uY2UiOiIxMjM0NTY3OC0xMjM0LTU2NzgtMTIzNC01Njc4MTIzNDU2NzgiLCJpYXQiOjE2MDk0NTkyMDAsImV4cCI6MTYwOTQ1OTI1NSwic3ViIjoiZHVtbXlfYXBpX2tleSIsImJvZHlIYXNoIjoiOTcyNGMxZTIwZTZlM2U0ZDdmNTdlZDI1ZjlkNGVmYjAwNmU1MDg1OTBkNTI4YzkwZGE1OTdmNmE3NzVjMTNlNSJ9.ZqEes008u7RlEknfv2fvkmOSPsHElGcmRIZmXl10wOyLkl7u9SPiTCSyGcgRyFUpAA6zMDVpMXkBVUBJyfBU6PcHHliMcjt6N-ZQWYrZ5eVDl3pfukRqM6UQwWrCB2776ScVck2d6o4_vtPd7MHVz4IyornQHaeMlbKfTvtqkh1Tzjc5Ju9L0oouP7LSKTmqhitRISsrGEuY6tfLC0Qi33wfYBrM_prbch86qMpU6kLUSOBmX8camjuyAUwQTqUQSfb8g3iukioCO_5wS3pxVTY8YjrcVdfLNSEbSp1FiSAyUkFJjbW71o9tPE1KD_17nNvsjmZP0o74hNqWlYq1cZHuemHLtfOifM5sX2Trqbh9AeXLkRgf_j9TwKziEaudB7JFjoczlatxKNhyUK3rH-SGPnnrDDcWsmFGYU-uOpAJZ1OnuUNUEmWyjsiLrWvb8xmGa6GbfYMN33cbgVO8YqIhYOm2r3GUhXomuzgnC8VtFM4_2nGNDgT_arvMpGsFPT33UJCDEHKXHJIanHvw0hxvv0hgbp39Dj6_mB-ZEFY5alN4hvGI-7D-ntSV-S1Zz7Jff8kT4fi9yY50WzBOi-W6OkvHvC-EmkMhvoN-OJsWyG9xb1hJvPUsWVR3YPOmJAThrgl-OBh4pi1ez3Ctc3cm0akSUPwbAnNS4l-aefA' - - # Example additional assertion: decode the token without verification to check structure - decoded_token = jwt.decode(token, options={"verify_signature": False}) - expected_token = { - "sub": "dummy_api_key", - "exp": 1609459200 + 55, - "bodyHash": "9724c1e20e6e3e4d7f57ed25f9d4efb006e508590d528c90da597f6a775c13e5" - } - expected_token = { - "uri": "/test/path", - "nonce": '12345678-1234-5678-1234-567812345678', - "iat": 1609459200, - "exp": 1609459200 + 55, - "sub": "dummy_api_key", - "bodyHash": "9724c1e20e6e3e4d7f57ed25f9d4efb006e508590d528c90da597f6a775c13e5", - } - - assert decoded_token == expected_token - -@patch('uuid.uuid4', return_value=UUID('12345678-1234-5678-1234-567812345678')) # Mocked uuid -@patch('time.time', return_value=1609459200) # Mocked timestamp -def test_get_token_when_get_method(mock_time, mock_uuid, secret_key): - provider = BearerTokenProvider(api_key="dummy_api_key", secret_key=secret_key) - token = provider.get_token("GET", "/test/path", None) - - # Assert that the token is a string - assert isinstance(token, str) - assert token == 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1cmkiOiIvdGVzdC9wYXRoIiwibm9uY2UiOiIxMjM0NTY3OC0xMjM0LTU2NzgtMTIzNC01Njc4MTIzNDU2NzgiLCJpYXQiOjE2MDk0NTkyMDAsImV4cCI6MTYwOTQ1OTI1NSwic3ViIjoiZHVtbXlfYXBpX2tleSIsImJvZHlIYXNoIjoiZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NSJ9.NMjZPQate4EleqtTTThsB7Oro3XjMHfph_CRDnHLY9Y-6Ko48z7A8XdYYrMhtirLgwWa5tX641jHLJpVtVxfC4-PQViRLIRQ0G_ayonVqcTtDyioLtRIjG3AVqxpzsXnnNG27w5V3peuQf5JyBgGPKD4b9Y0FrDTfJiwvQx_cwL-yY9NMU89hw2pskYzNQGmfWaoXYyu57CsNor6h2c5oTC7Du4xWQdjFOfF6t1MYet8WRo-W-MF97caHKJsfzzNFFVYJnaWl248WfvnNDgUhW4IML4kvkPofaDiSlahzmwiUBvaFpKvl3b3fmQ3KzncoxbAfJIYGkevH1XH6jCzNmFx4gFsOpZldivzh4pKdRmZdeoUY2j7fHd7S02mUwDHjl9RCEu1ejZKj-eUnDB_uJqHY8FjAHzdMU9VDtbXF9E00K5YuxOmGGCJrdvFix8fqeMjSM6I9SePGO9-d_MjZ4lhEJPFMNb3FHw0W-s8WLpdlTgPi_8B47IreEExcZPDG_oHwcpWBYlz7DM8RTS3ttVbOmxo6MFCab8z0UtC3avZI_lZX_UxXGoKZiU06mra0P6x9hoDsEktAtCOHRXUfnr_pqWSVKkpiSENWW6-T96jzXPDIsWmxBk90_kznzfo-yCGDFAN-qG6oTLoLnveIwMzNaELCh1XKx6xFCVcdrI' - - # Example additional assertion: decode the token without verification to check structure - decoded_token = jwt.decode(token, options={"verify_signature": False}) - expected_token = { - "uri": "/test/path", - "nonce": '12345678-1234-5678-1234-567812345678', - "iat": 1609459200, - "exp": 1609459200 + 55, - "sub": "dummy_api_key", - "bodyHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - } - - assert decoded_token == expected_token - -@patch('uuid.uuid4', return_value=UUID('12345678-1234-5678-1234-567812345678')) # Mocked uuid -@patch('time.time', return_value=1609459200) # Mocked timestamp -def test_get_token_when_get_method_and_query_params(mock_time, mock_uuid, secret_key): - provider = BearerTokenProvider(api_key="dummy_api_key", secret_key=secret_key) - token = provider.get_token("GET", "/test/path?query_param1=val%20ue&query_param2=value", None) - - # Assert that the token is a string - assert isinstance(token, str) - assert token == 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1cmkiOiIvdGVzdC9wYXRoP3F1ZXJ5X3BhcmFtMT12YWwlMjB1ZSZxdWVyeV9wYXJhbTI9dmFsdWUiLCJub25jZSI6IjEyMzQ1Njc4LTEyMzQtNTY3OC0xMjM0LTU2NzgxMjM0NTY3OCIsImlhdCI6MTYwOTQ1OTIwMCwiZXhwIjoxNjA5NDU5MjU1LCJzdWIiOiJkdW1teV9hcGlfa2V5IiwiYm9keUhhc2giOiJlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1In0.SSTxDTeTAEkTyBFsSwcfEFS-JQO--auEVfC-1_G2AMK7wrdBTbKMCsSnpsOqHMfachEveslDuz2mD8g_XyEc3Y6F7Gf9j2BOzcOWr7qOsbSOCPmNILQ42OyCSlY4I85vsjUus7WXtFTyGcxOmrjLEBO_5_Km0Tc-Tmu8fUGikiG2hh313r6tKvH4oBekt4vMzvdksw_-Qf1Z9_LqDWm8nIicaeDRJZJEzCq64wFOxpKDQb-voG6hYw1clm_f5L2dXkOMx_z_8FHjoDtsXbI2Z-ps983BTIg6M3_IE5C_wF2uKGIDVKua-4Rho9z8amlzd4B5YtwfW0SQB0CHGXH9iAYBO4nW3-juclVf4EpOVVMWciR07tzDA0nA2tItF54RmKHRqabq_Kfcm_uXh2qBbWLVODbJ51LQhkJbP1DWv7Ak3iZlZqoYic0c9BF0O1Jj6jl-PrJnE5FdZLJhCni2eTBwmH6HG-XV4OUWcd1pHuK3EjCqCnSJRjmW7I6gvpDPcisrh8mGdRfD7bPc3I4FSGTZoQMu8TbTOr0gZJwtPPdcSBGZk4kGn7rqWZz6ZA9-rPOg8TsaDI-XnZukdz6ylKX88lwIBiJUwhUa4FB8JO7amHtqSFi2X18-Fz5saRoQci3d3JwB0JX7Sz8bSW3bx-zPFuHKJtvap4Vp2UDIcb8' - - # Example additional assertion: decode the token without verification to check structure - decoded_token = jwt.decode(token, options={"verify_signature": False}) - expected_token = { - "uri": "/test/path?query_param1=val%20ue&query_param2=value", - "nonce": '12345678-1234-5678-1234-567812345678', - "iat": 1609459200, - "exp": 1609459200 + 55, - "sub": "dummy_api_key", - "bodyHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - } - assert decoded_token == expected_token +IiIiCiAgICBGaXJlYmxvY2tzIEFQSQoKICAgIEZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKSAKCiAgICBUaGUgdmVyc2lvbiBvZiB0aGUgT3BlbkFQSSBkb2N1bWVudDogMS42LjIKICAgIENvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KICAgIEdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQoKICAgIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS4KIiIiICAjIG5vcWE6IEU1MDEKCgppbXBvcnQgcHl0ZXN0CmZyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgcGF0Y2gKaW1wb3J0IGp3dApmcm9tIHV1aWQgaW1wb3J0IFVVSUQKZnJvbSBmaXJlYmxvY2tzLmJlYXJlcl90b2tlbl9wcm92aWRlciBpbXBvcnQgQmVhcmVyVG9rZW5Qcm92aWRlcgoKQHB5dGVzdC5maXh0dXJlCmRlZiBzZWNyZXRfa2V5KCk6CiAgICB3aXRoIG9wZW4oInRlc3QvZmlyZWJsb2Nrcy9kdW1teV90ZXN0X2tleS50eHQiLCAiciIpIGFzIGZpbGU6CiAgICAgICAgcmV0dXJuIGZpbGUucmVhZCgpLnN0cmlwKCkKCkBwYXRjaCgndXVpZC51dWlkNCcsIHJldHVybl92YWx1ZT1VVUlEKCcxMjM0NTY3OC0xMjM0LTU2NzgtMTIzNC01Njc4MTIzNDU2NzgnKSkgICMgTW9ja2VkIHV1aWQKQHBhdGNoKCd0aW1lLnRpbWUnLCByZXR1cm5fdmFsdWU9MTYwOTQ1OTIwMCkgICMgTW9ja2VkIHRpbWVzdGFtcApkZWYgdGVzdF9nZXRfdG9rZW5fd2hlbl9wb3N0X21ldGhvZChtb2NrX3RpbWUsIG1vY2tfdXVpZCwgc2VjcmV0X2tleSk6CiAgICBwcm92aWRlciA9IEJlYXJlclRva2VuUHJvdmlkZXIoYXBpX2tleT0iZHVtbXlfYXBpX2tleSIsIHNlY3JldF9rZXk9c2VjcmV0X2tleSkKICAgIHRva2VuID0gcHJvdmlkZXIuZ2V0X3Rva2VuKCJQT1NUIiwgIi90ZXN0L3BhdGgiLCB7ImtleSI6ICJ2YWx1ZSJ9KQoKICAgICMgQXNzZXJ0IHRoYXQgdGhlIHRva2VuIGlzIGEgc3RyaW5nCiAgICBhc3NlcnQgaXNpbnN0YW5jZSh0b2tlbiwgc3RyKQogICAgYXNzZXJ0IHRva2VuID09ICdleUpoYkdjaU9pSlNVekkxTmlJc0luUjVjQ0k2SWtwWFZDSjkuZXlKMWNta2lPaUl2ZEdWemRDOXdZWFJvSWl3aWJtOXVZMlVpT2lJeE1qTTBOVFkzT0MweE1qTTBMVFUyTnpndE1USXpOQzAxTmpjNE1USXpORFUyTnpnaUxDSnBZWFFpT2pFMk1EazBOVGt5TURBc0ltVjRjQ0k2TVRZd09UUTFPVEkxTlN3aWMzVmlJam9pWkhWdGJYbGZZWEJwWDJ0bGVTSXNJbUp2WkhsSVlYTm9Jam9pT1RjeU5HTXhaVEl3WlRabE0yVTBaRGRtTlRkbFpESTFaamxrTkdWbVlqQXdObVUxTURnMU9UQmtOVEk0WXprd1pHRTFPVGRtTm1FM056VmpNVE5sTlNKOS5acUVlczAwOHU3UmxFa25mdjJmdmttT1NQc0hFbEdjbVJJWm1YbDEwd095TGtsN3U5U1BpVENTeUdjZ1J5RlVwQUE2ek1EVnBNWGtCVlVCSnlmQlU2UGNISGxpTWNqdDZOLVpRV1lyWjVlVkRsM3BmdWtScU02VVF3V3JDQjI3NzZTY1ZjazJkNm80X3Z0UGQ3TUhWejRJeW9yblFIYWVNbGJLZlR2dHFraDFUempjNUp1OUwwb291UDdMU0tUbXFoaXRSSVNzckdFdVk2dGZMQzBRaTMzd2ZZQnJNX3ByYmNoODZxTXBVNmtMVVNPQm1YOGNhbWp1eUFVd1FUcVVRU2ZiOGczaXVraW9DT181d1MzcHhWVFk4WWpyY1ZkZkxOU0ViU3AxRmlTQXlVa0ZKamJXNzFvOXRQRTFLRF8xN25OdnNqbVpQMG83NGhOcVdsWXExY1pIdWVtSEx0Zk9pZk01c1gyVHJxYmg5QWVYTGtSZ2ZfajlUd0t6aUVhdWRCN0pGam9jemxhdHhLTmh5VUszckgtU0dQbm5yRERjV3NtRkdZVS11T3BBSloxT251VU5VRW1XeWpzaUxyV3ZiOHhtR2E2R2JmWU1OMzNjYmdWTzhZcUloWU9tMnIzR1VoWG9tdXpnbkM4VnRGTTRfMm5HTkRnVF9hcnZNcEdzRlBUMzNVSkNERUhLWEhKSWFuSHZ3MGh4dnYwaGdicDM5RGo2X21CLVpFRlk1YWxONGh2R0ktN0QtbnRTVi1TMVp6N0pmZjhrVDRmaTl5WTUwV3pCT2ktVzZPa3ZIdkMtRW1rTWh2b04tT0pzV3lHOXhiMWhKdlBVc1dWUjNZUE9tSkFUaHJnbC1PQmg0cGkxZXozQ3RjM2NtMGFrU1VQd2JBbk5TNGwtYWVmQScKCiAgICAjIEV4YW1wbGUgYWRkaXRpb25hbCBhc3NlcnRpb246IGRlY29kZSB0aGUgdG9rZW4gd2l0aG91dCB2ZXJpZmljYXRpb24gdG8gY2hlY2sgc3RydWN0dXJlCiAgICBkZWNvZGVkX3Rva2VuID0gand0LmRlY29kZSh0b2tlbiwgb3B0aW9ucz17InZlcmlmeV9zaWduYXR1cmUiOiBGYWxzZX0pCiAgICBleHBlY3RlZF90b2tlbiA9IHsKICAgICAgICAic3ViIjogImR1bW15X2FwaV9rZXkiLAogICAgICAgICJleHAiOiAxNjA5NDU5MjAwICsgNTUsCiAgICAgICAgImJvZHlIYXNoIjogIjk3MjRjMWUyMGU2ZTNlNGQ3ZjU3ZWQyNWY5ZDRlZmIwMDZlNTA4NTkwZDUyOGM5MGRhNTk3ZjZhNzc1YzEzZTUiCiAgICB9CiAgICBleHBlY3RlZF90b2tlbiA9IHsKICAgICAgICAidXJpIjogIi90ZXN0L3BhdGgiLAogICAgICAgICJub25jZSI6ICcxMjM0NTY3OC0xMjM0LTU2NzgtMTIzNC01Njc4MTIzNDU2NzgnLAogICAgICAgICJpYXQiOiAxNjA5NDU5MjAwLAogICAgICAgICJleHAiOiAxNjA5NDU5MjAwICsgNTUsCiAgICAgICAgInN1YiI6ICJkdW1teV9hcGlfa2V5IiwKICAgICAgICAiYm9keUhhc2giOiAiOTcyNGMxZTIwZTZlM2U0ZDdmNTdlZDI1ZjlkNGVmYjAwNmU1MDg1OTBkNTI4YzkwZGE1OTdmNmE3NzVjMTNlNSIsCiAgICB9CgogICAgYXNzZXJ0IGRlY29kZWRfdG9rZW4gPT0gZXhwZWN0ZWRfdG9rZW4KCkBwYXRjaCgndXVpZC51dWlkNCcsIHJldHVybl92YWx1ZT1VVUlEKCcxMjM0NTY3OC0xMjM0LTU2NzgtMTIzNC01Njc4MTIzNDU2NzgnKSkgICMgTW9ja2VkIHV1aWQKQHBhdGNoKCd0aW1lLnRpbWUnLCByZXR1cm5fdmFsdWU9MTYwOTQ1OTIwMCkgICMgTW9ja2VkIHRpbWVzdGFtcApkZWYgdGVzdF9nZXRfdG9rZW5fd2hlbl9nZXRfbWV0aG9kKG1vY2tfdGltZSwgbW9ja191dWlkLCBzZWNyZXRfa2V5KToKICAgIHByb3ZpZGVyID0gQmVhcmVyVG9rZW5Qcm92aWRlcihhcGlfa2V5PSJkdW1teV9hcGlfa2V5Iiwgc2VjcmV0X2tleT1zZWNyZXRfa2V5KQogICAgdG9rZW4gPSBwcm92aWRlci5nZXRfdG9rZW4oIkdFVCIsICIvdGVzdC9wYXRoIiwgTm9uZSkKCiAgICAjIEFzc2VydCB0aGF0IHRoZSB0b2tlbiBpcyBhIHN0cmluZwogICAgYXNzZXJ0IGlzaW5zdGFuY2UodG9rZW4sIHN0cikKICAgIGFzc2VydCB0b2tlbiA9PSAnZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y0NJNklrcFhWQ0o5LmV5SjFjbWtpT2lJdmRHVnpkQzl3WVhSb0lpd2libTl1WTJVaU9pSXhNak0wTlRZM09DMHhNak0wTFRVMk56Z3RNVEl6TkMwMU5qYzRNVEl6TkRVMk56Z2lMQ0pwWVhRaU9qRTJNRGswTlRreU1EQXNJbVY0Y0NJNk1UWXdPVFExT1RJMU5Td2ljM1ZpSWpvaVpIVnRiWGxmWVhCcFgydGxlU0lzSW1KdlpIbElZWE5vSWpvaVpUTmlNR00wTkRJNU9HWmpNV014TkRsaFptSm1OR000T1RrMlptSTVNalF5TjJGbE5ERmxORFkwT1dJNU16UmpZVFE1TlRrNU1XSTNPRFV5WWpnMU5TSjkuTk1qWlBRYXRlNEVsZXF0VFRUaHNCN09ybzNYak1IZnBoX0NSRG5ITFk5WS02S280OHo3QThYZFlZck1odGlyTGd3V2E1dFg2NDFqSExKcFZ0VnhmQzQtUFFWaVJMSVJRMEdfYXlvblZxY1R0RHlpb0x0UklqRzNBVnF4cHpzWG5uTkcyN3c1VjNwZXVRZjVKeUJnR1BLRDRiOVkwRnJEVGZKaXd2UXhfY3dMLXlZOU5NVTg5aHcycHNrWXpOUUdtZldhb1hZeXU1N0NzTm9yNmgyYzVvVEM3RHU0eFdRZGpGT2ZGNnQxTVlldDhXUm8tVy1NRjk3Y2FIS0pzZnp6TkZGVllKbmFXbDI0OFdmdm5ORGdVaFc0SU1MNGt2a1BvZmFEaVNsYWh6bXdpVUJ2YUZwS3ZsM2IzZm1RM0t6bmNveGJBZkpJWUdrZXZIMVhINmpDek5tRng0Z0ZzT3BabGRpdnpoNHBLZFJtWmRlb1VZMmo3ZkhkN1MwMm1Vd0RIamw5UkNFdTFlalpLai1lVW5EQl91SnFIWThGakFIemRNVTlWRHRiWEY5RTAwSzVZdXhPbUdHQ0pyZHZGaXg4ZnFlTWpTTTZJOVNlUEdPOS1kX01qWjRsaEVKUEZNTmIzRkh3MFctczhXTHBkbFRnUGlfOEI0N0lyZUVFeGNaUERHX29Id2NwV0JZbHo3RE04UlRTM3R0VmJPbXhvNk1GQ2FiOHowVXRDM2F2WklfbFpYX1V4WEdvS1ppVTA2bXJhMFA2eDlob0RzRWt0QXRDT0hSWFVmbnJfcHFXU1ZLa3BpU0VOV1c2LVQ5Nmp6WFBESXNXbXhCazkwX2t6bnpmby15Q0dERkFOLXFHNm9UTG9MbnZlSXdNek5hRUxDaDFYS3g2eEZDVmNkckknCgogICAgIyBFeGFtcGxlIGFkZGl0aW9uYWwgYXNzZXJ0aW9uOiBkZWNvZGUgdGhlIHRva2VuIHdpdGhvdXQgdmVyaWZpY2F0aW9uIHRvIGNoZWNrIHN0cnVjdHVyZQogICAgZGVjb2RlZF90b2tlbiA9IGp3dC5kZWNvZGUodG9rZW4sIG9wdGlvbnM9eyJ2ZXJpZnlfc2lnbmF0dXJlIjogRmFsc2V9KQogICAgZXhwZWN0ZWRfdG9rZW4gPSB7CiAgICAgICAgInVyaSI6ICIvdGVzdC9wYXRoIiwKICAgICAgICAibm9uY2UiOiAnMTIzNDU2NzgtMTIzNC01Njc4LTEyMzQtNTY3ODEyMzQ1Njc4JywKICAgICAgICAiaWF0IjogMTYwOTQ1OTIwMCwKICAgICAgICAiZXhwIjogMTYwOTQ1OTIwMCArIDU1LAogICAgICAgICJzdWIiOiAiZHVtbXlfYXBpX2tleSIsCiAgICAgICAgImJvZHlIYXNoIjogImUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUiLAogICAgfQoKICAgIGFzc2VydCBkZWNvZGVkX3Rva2VuID09IGV4cGVjdGVkX3Rva2VuCgpAcGF0Y2goJ3V1aWQudXVpZDQnLCByZXR1cm5fdmFsdWU9VVVJRCgnMTIzNDU2NzgtMTIzNC01Njc4LTEyMzQtNTY3ODEyMzQ1Njc4JykpICAjIE1vY2tlZCB1dWlkCkBwYXRjaCgndGltZS50aW1lJywgcmV0dXJuX3ZhbHVlPTE2MDk0NTkyMDApICAjIE1vY2tlZCB0aW1lc3RhbXAKZGVmIHRlc3RfZ2V0X3Rva2VuX3doZW5fZ2V0X21ldGhvZF9hbmRfcXVlcnlfcGFyYW1zKG1vY2tfdGltZSwgbW9ja191dWlkLCBzZWNyZXRfa2V5KToKICAgIHByb3ZpZGVyID0gQmVhcmVyVG9rZW5Qcm92aWRlcihhcGlfa2V5PSJkdW1teV9hcGlfa2V5Iiwgc2VjcmV0X2tleT1zZWNyZXRfa2V5KQogICAgdG9rZW4gPSBwcm92aWRlci5nZXRfdG9rZW4oIkdFVCIsICIvdGVzdC9wYXRoP3F1ZXJ5X3BhcmFtMT12YWwlMjB1ZSZxdWVyeV9wYXJhbTI9dmFsdWUiLCBOb25lKQoKICAgICMgQXNzZXJ0IHRoYXQgdGhlIHRva2VuIGlzIGEgc3RyaW5nCiAgICBhc3NlcnQgaXNpbnN0YW5jZSh0b2tlbiwgc3RyKQogICAgYXNzZXJ0IHRva2VuID09ICdleUpoYkdjaU9pSlNVekkxTmlJc0luUjVjQ0k2SWtwWFZDSjkuZXlKMWNta2lPaUl2ZEdWemRDOXdZWFJvUDNGMVpYSjVYM0JoY21GdE1UMTJZV3dsTWpCMVpTWnhkV1Z5ZVY5d1lYSmhiVEk5ZG1Gc2RXVWlMQ0p1YjI1alpTSTZJakV5TXpRMU5qYzRMVEV5TXpRdE5UWTNPQzB4TWpNMExUVTJOemd4TWpNME5UWTNPQ0lzSW1saGRDSTZNVFl3T1RRMU9USXdNQ3dpWlhod0lqb3hOakE1TkRVNU1qVTFMQ0p6ZFdJaU9pSmtkVzF0ZVY5aGNHbGZhMlY1SWl3aVltOWtlVWhoYzJnaU9pSmxNMkl3WXpRME1qazRabU14WXpFME9XRm1ZbVkwWXpnNU9UWm1Zamt5TkRJM1lXVTBNV1UwTmpRNVlqa3pOR05oTkRrMU9Ua3hZamM0TlRKaU9EVTFJbjAuU1NUeERUZVRBRWtUeUJGc1N3Y2ZFRlMtSlFPLS1hdUVWZkMtMV9HMkFNSzd3cmRCVGJLTUNzU25wc09xSE1mYWNoRXZlc2xEdXoybUQ4Z19YeUVjM1k2RjdHZjlqMkJPemNPV3I3cU9zYlNPQ1BtTklMUTQyT3lDU2xZNEk4NXZzalV1czdXWHRGVHlHY3hPbXJqTEVCT181X0ttMFRjLVRtdThmVUdpa2lHMmhoMzEzcjZ0S3ZING9CZWt0NHZNenZka3N3Xy1RZjFaOV9McURXbThuSWljYWVEUkpaSkV6Q3E2NHdGT3hwS0RRYi12b0c2aFl3MWNsbV9mNUwyZFhrT014X3pfOEZIam9EdHNYYkkyWi1wczk4M0JUSWc2TTNfSUU1Q193RjJ1S0dJRFZLdWEtNFJobzl6OGFtbHpkNEI1WXR3ZlcwU1FCMENIR1hIOWlBWUJPNG5XMy1qdWNsVmY0RXBPVlZNV2NpUjA3dHpEQTBuQTJ0SXRGNTRSbUtIUnFhYnFfS2ZjbV91WGgycUJiV0xWT0RiSjUxTFFoa0piUDFEV3Y3QWszaVpsWnFvWWljMGM5QkYwTzFKajZqbC1QckpuRTVGZFpMSmhDbmkyZVRCd21INkhHLVhWNE9VV2NkMXBIdUszRWpDcUNuU0pSam1XN0k2Z3ZwRFBjaXNyaDhtR2RSZkQ3YlBjM0k0RlNHVFpvUU11OFRiVE9yMGdaSnd0UFBkY1NCR1prNGtHbjdycVdaejZaQTktclBPZzhUc2FESS1Yblp1a2R6NnlsS1g4OGx3SUJpSlV3aFVhNEZCOEpPN2FtSHRxU0ZpMlgxOC1GejVzYVJvUWNpM2QzSndCMEpYN1N6OGJTVzNieC16UEZ1SEtKdHZhcDRWcDJVREljYjgnCgogICAgIyBFeGFtcGxlIGFkZGl0aW9uYWwgYXNzZXJ0aW9uOiBkZWNvZGUgdGhlIHRva2VuIHdpdGhvdXQgdmVyaWZpY2F0aW9uIHRvIGNoZWNrIHN0cnVjdHVyZQogICAgZGVjb2RlZF90b2tlbiA9IGp3dC5kZWNvZGUodG9rZW4sIG9wdGlvbnM9eyJ2ZXJpZnlfc2lnbmF0dXJlIjogRmFsc2V9KQogICAgZXhwZWN0ZWRfdG9rZW4gPSB7CiAgICAgICAgInVyaSI6ICIvdGVzdC9wYXRoP3F1ZXJ5X3BhcmFtMT12YWwlMjB1ZSZxdWVyeV9wYXJhbTI9dmFsdWUiLAogICAgICAgICJub25jZSI6ICcxMjM0NTY3OC0xMjM0LTU2NzgtMTIzNC01Njc4MTIzNDU2NzgnLAogICAgICAgICJpYXQiOiAxNjA5NDU5MjAwLAogICAgICAgICJleHAiOiAxNjA5NDU5MjAwICsgNTUsCiAgICAgICAgInN1YiI6ICJkdW1teV9hcGlfa2V5IiwKICAgICAgICAiYm9keUhhc2giOiAiZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NSIsCiAgICB9CiAgICBhc3NlcnQgZGVjb2RlZF90b2tlbiA9PSBleHBlY3RlZF90b2tlbgo= \ No newline at end of file diff --git a/test/fireblocks/test_client.py b/test/fireblocks/test_client.py index f894e576..4ce1fcf5 100644 --- a/test/fireblocks/test_client.py +++ b/test/fireblocks/test_client.py @@ -1,216 +1 @@ -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -import pytest -from unittest.mock import patch, MagicMock -from fireblocks.client import Fireblocks -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.threaded_api_client import ThreadedApiClient -from fireblocks.api.api_user_api import ApiUserApi -from fireblocks.api.audit_logs_api import AuditLogsApi -from fireblocks.api.blockchains_assets_api import BlockchainsAssetsApi -from fireblocks.api.compliance_api import ComplianceApi -from fireblocks.api.compliance_screening_configuration_api import ComplianceScreeningConfigurationApi -from fireblocks.api.connected_accounts_beta_api import ConnectedAccountsBetaApi -from fireblocks.api.console_user_api import ConsoleUserApi -from fireblocks.api.contract_interactions_api import ContractInteractionsApi -from fireblocks.api.contract_templates_api import ContractTemplatesApi -from fireblocks.api.contracts_api import ContractsApi -from fireblocks.api.cosigners_beta_api import CosignersBetaApi -from fireblocks.api.deployed_contracts_api import DeployedContractsApi -from fireblocks.api.embedded_wallets_api import EmbeddedWalletsApi -from fireblocks.api.exchange_accounts_api import ExchangeAccountsApi -from fireblocks.api.external_wallets_api import ExternalWalletsApi -from fireblocks.api.fiat_accounts_api import FiatAccountsApi -from fireblocks.api.gas_stations_api import GasStationsApi -from fireblocks.api.internal_wallets_api import InternalWalletsApi -from fireblocks.api.key_link_beta_api import KeyLinkBetaApi -from fireblocks.api.keys_beta_api import KeysBetaApi -from fireblocks.api.nfts_api import NFTsApi -from fireblocks.api.network_connections_api import NetworkConnectionsApi -from fireblocks.api.ota_beta_api import OTABetaApi -from fireblocks.api.off_exchanges_api import OffExchangesApi -from fireblocks.api.onchain_data_api import OnchainDataApi -from fireblocks.api.payments_payout_api import PaymentsPayoutApi -from fireblocks.api.policy_editor_v2_beta_api import PolicyEditorV2BetaApi -from fireblocks.api.policy_editor_beta_api import PolicyEditorBetaApi -from fireblocks.api.reset_device_api import ResetDeviceApi -from fireblocks.api.smart_transfer_api import SmartTransferApi -from fireblocks.api.staking_api import StakingApi -from fireblocks.api.tr_link_api import TRLinkApi -from fireblocks.api.tags_api import TagsApi -from fireblocks.api.tokenization_api import TokenizationApi -from fireblocks.api.trading_beta_api import TradingBetaApi -from fireblocks.api.transactions_api import TransactionsApi -from fireblocks.api.travel_rule_api import TravelRuleApi -from fireblocks.api.user_groups_beta_api import UserGroupsBetaApi -from fireblocks.api.users_api import UsersApi -from fireblocks.api.vaults_api import VaultsApi -from fireblocks.api.web3_connections_api import Web3ConnectionsApi -from fireblocks.api.webhooks_api import WebhooksApi -from fireblocks.api.webhooks_v2_api import WebhooksV2Api -from fireblocks.api.workspace_api import WorkspaceApi -from fireblocks.api.workspace_status_beta_api import WorkspaceStatusBetaApi -from fireblocks.api.whitelist_ip_addresses_api import WhitelistIpAddressesApi - -@pytest.fixture -def fireblocks_instance(mocker): - try: - mocker.patch('fireblocks.client.ThreadedApiClient', return_value=MagicMock(spec=ThreadedApiClient)) - config = ClientConfiguration(api_key="dummy_api_key", secret_key="dummy_secret_key", base_path="dummy_base_path") - return Fireblocks(config) - except Exception as e: - return e - -def test_fireblocks_construction(fireblocks_instance): - assert isinstance(fireblocks_instance, Fireblocks) - assert isinstance(fireblocks_instance._api_client, ThreadedApiClient) - -def test_get_api_user(fireblocks_instance): - assert isinstance(fireblocks_instance.api_user, ApiUserApi) - -def test_get_audit_logs(fireblocks_instance): - assert isinstance(fireblocks_instance.audit_logs, AuditLogsApi) - -def test_get_blockchains_assets(fireblocks_instance): - assert isinstance(fireblocks_instance.blockchains_assets, BlockchainsAssetsApi) - -def test_get_compliance(fireblocks_instance): - assert isinstance(fireblocks_instance.compliance, ComplianceApi) - -def test_get_compliance_screening_configuration(fireblocks_instance): - assert isinstance(fireblocks_instance.compliance_screening_configuration, ComplianceScreeningConfigurationApi) - -def test_get_connected_accounts_beta(fireblocks_instance): - assert isinstance(fireblocks_instance.connected_accounts_beta, ConnectedAccountsBetaApi) - -def test_get_console_user(fireblocks_instance): - assert isinstance(fireblocks_instance.console_user, ConsoleUserApi) - -def test_get_contract_interactions(fireblocks_instance): - assert isinstance(fireblocks_instance.contract_interactions, ContractInteractionsApi) - -def test_get_contract_templates(fireblocks_instance): - assert isinstance(fireblocks_instance.contract_templates, ContractTemplatesApi) - -def test_get_contracts(fireblocks_instance): - assert isinstance(fireblocks_instance.contracts, ContractsApi) - -def test_get_cosigners_beta(fireblocks_instance): - assert isinstance(fireblocks_instance.cosigners_beta, CosignersBetaApi) - -def test_get_deployed_contracts(fireblocks_instance): - assert isinstance(fireblocks_instance.deployed_contracts, DeployedContractsApi) - -def test_get_embedded_wallets(fireblocks_instance): - assert isinstance(fireblocks_instance.embedded_wallets, EmbeddedWalletsApi) - -def test_get_exchange_accounts(fireblocks_instance): - assert isinstance(fireblocks_instance.exchange_accounts, ExchangeAccountsApi) - -def test_get_external_wallets(fireblocks_instance): - assert isinstance(fireblocks_instance.external_wallets, ExternalWalletsApi) - -def test_get_fiat_accounts(fireblocks_instance): - assert isinstance(fireblocks_instance.fiat_accounts, FiatAccountsApi) - -def test_get_gas_stations(fireblocks_instance): - assert isinstance(fireblocks_instance.gas_stations, GasStationsApi) - -def test_get_internal_wallets(fireblocks_instance): - assert isinstance(fireblocks_instance.internal_wallets, InternalWalletsApi) - -def test_get_key_link_beta(fireblocks_instance): - assert isinstance(fireblocks_instance.key_link_beta, KeyLinkBetaApi) - -def test_get_keys_beta(fireblocks_instance): - assert isinstance(fireblocks_instance.keys_beta, KeysBetaApi) - -def test_get_nfts(fireblocks_instance): - assert isinstance(fireblocks_instance.nfts, NFTsApi) - -def test_get_network_connections(fireblocks_instance): - assert isinstance(fireblocks_instance.network_connections, NetworkConnectionsApi) - -def test_get_ota_beta(fireblocks_instance): - assert isinstance(fireblocks_instance.ota_beta, OTABetaApi) - -def test_get_off_exchanges(fireblocks_instance): - assert isinstance(fireblocks_instance.off_exchanges, OffExchangesApi) - -def test_get_onchain_data(fireblocks_instance): - assert isinstance(fireblocks_instance.onchain_data, OnchainDataApi) - -def test_get_payments_payout(fireblocks_instance): - assert isinstance(fireblocks_instance.payments_payout, PaymentsPayoutApi) - -def test_get_policy_editor_v2_beta(fireblocks_instance): - assert isinstance(fireblocks_instance.policy_editor_v2_beta, PolicyEditorV2BetaApi) - -def test_get_policy_editor_beta(fireblocks_instance): - assert isinstance(fireblocks_instance.policy_editor_beta, PolicyEditorBetaApi) - -def test_get_reset_device(fireblocks_instance): - assert isinstance(fireblocks_instance.reset_device, ResetDeviceApi) - -def test_get_smart_transfer(fireblocks_instance): - assert isinstance(fireblocks_instance.smart_transfer, SmartTransferApi) - -def test_get_staking(fireblocks_instance): - assert isinstance(fireblocks_instance.staking, StakingApi) - -def test_get_tr_link(fireblocks_instance): - assert isinstance(fireblocks_instance.tr_link, TRLinkApi) - -def test_get_tags(fireblocks_instance): - assert isinstance(fireblocks_instance.tags, TagsApi) - -def test_get_tokenization(fireblocks_instance): - assert isinstance(fireblocks_instance.tokenization, TokenizationApi) - -def test_get_trading_beta(fireblocks_instance): - assert isinstance(fireblocks_instance.trading_beta, TradingBetaApi) - -def test_get_transactions(fireblocks_instance): - assert isinstance(fireblocks_instance.transactions, TransactionsApi) - -def test_get_travel_rule(fireblocks_instance): - assert isinstance(fireblocks_instance.travel_rule, TravelRuleApi) - -def test_get_user_groups_beta(fireblocks_instance): - assert isinstance(fireblocks_instance.user_groups_beta, UserGroupsBetaApi) - -def test_get_users(fireblocks_instance): - assert isinstance(fireblocks_instance.users, UsersApi) - -def test_get_vaults(fireblocks_instance): - assert isinstance(fireblocks_instance.vaults, VaultsApi) - -def test_get_web3_connections(fireblocks_instance): - assert isinstance(fireblocks_instance.web3_connections, Web3ConnectionsApi) - -def test_get_webhooks(fireblocks_instance): - assert isinstance(fireblocks_instance.webhooks, WebhooksApi) - -def test_get_webhooks_v2(fireblocks_instance): - assert isinstance(fireblocks_instance.webhooks_v2, WebhooksV2Api) - -def test_get_workspace(fireblocks_instance): - assert isinstance(fireblocks_instance.workspace, WorkspaceApi) - -def test_get_workspace_status_beta(fireblocks_instance): - assert isinstance(fireblocks_instance.workspace_status_beta, WorkspaceStatusBetaApi) - -def test_get_whitelist_ip_addresses(fireblocks_instance): - assert isinstance(fireblocks_instance.whitelist_ip_addresses, WhitelistIpAddressesApi) - +IiIiCiAgICBGaXJlYmxvY2tzIEFQSQoKICAgIEZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKSAKCiAgICBUaGUgdmVyc2lvbiBvZiB0aGUgT3BlbkFQSSBkb2N1bWVudDogMS42LjIKICAgIENvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KICAgIEdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQoKICAgIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS4KIiIiICAjIG5vcWE6IEU1MDEKCgppbXBvcnQgcHl0ZXN0CmZyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgcGF0Y2gsIE1hZ2ljTW9jawpmcm9tIGZpcmVibG9ja3MuY2xpZW50IGltcG9ydCBGaXJlYmxvY2tzCmZyb20gZmlyZWJsb2Nrcy5jbGllbnRfY29uZmlndXJhdGlvbiBpbXBvcnQgQ2xpZW50Q29uZmlndXJhdGlvbgpmcm9tIGZpcmVibG9ja3MudGhyZWFkZWRfYXBpX2NsaWVudCBpbXBvcnQgVGhyZWFkZWRBcGlDbGllbnQKZnJvbSBmaXJlYmxvY2tzLmFwaS5hcGlfdXNlcl9hcGkgaW1wb3J0IEFwaVVzZXJBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5hdWRpdF9sb2dzX2FwaSBpbXBvcnQgQXVkaXRMb2dzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuYmxvY2tjaGFpbnNfYXNzZXRzX2FwaSBpbXBvcnQgQmxvY2tjaGFpbnNBc3NldHNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5jb21wbGlhbmNlX2FwaSBpbXBvcnQgQ29tcGxpYW5jZUFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmNvbXBsaWFuY2Vfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb25fYXBpIGltcG9ydCBDb21wbGlhbmNlU2NyZWVuaW5nQ29uZmlndXJhdGlvbkFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmNvbm5lY3RlZF9hY2NvdW50c19iZXRhX2FwaSBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudHNCZXRhQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuY29uc29sZV91c2VyX2FwaSBpbXBvcnQgQ29uc29sZVVzZXJBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5jb250cmFjdF9pbnRlcmFjdGlvbnNfYXBpIGltcG9ydCBDb250cmFjdEludGVyYWN0aW9uc0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmNvbnRyYWN0X3RlbXBsYXRlc19hcGkgaW1wb3J0IENvbnRyYWN0VGVtcGxhdGVzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuY29udHJhY3RzX2FwaSBpbXBvcnQgQ29udHJhY3RzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuY29zaWduZXJzX2JldGFfYXBpIGltcG9ydCBDb3NpZ25lcnNCZXRhQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuZGVwbG95ZWRfY29udHJhY3RzX2FwaSBpbXBvcnQgRGVwbG95ZWRDb250cmFjdHNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5lbWJlZGRlZF93YWxsZXRzX2FwaSBpbXBvcnQgRW1iZWRkZWRXYWxsZXRzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuZXhjaGFuZ2VfYWNjb3VudHNfYXBpIGltcG9ydCBFeGNoYW5nZUFjY291bnRzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuZXh0ZXJuYWxfd2FsbGV0c19hcGkgaW1wb3J0IEV4dGVybmFsV2FsbGV0c0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmZpYXRfYWNjb3VudHNfYXBpIGltcG9ydCBGaWF0QWNjb3VudHNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5nYXNfc3RhdGlvbnNfYXBpIGltcG9ydCBHYXNTdGF0aW9uc0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLmludGVybmFsX3dhbGxldHNfYXBpIGltcG9ydCBJbnRlcm5hbFdhbGxldHNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5rZXlfbGlua19iZXRhX2FwaSBpbXBvcnQgS2V5TGlua0JldGFBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5rZXlzX2JldGFfYXBpIGltcG9ydCBLZXlzQmV0YUFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLm5mdHNfYXBpIGltcG9ydCBORlRzQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkubmV0d29ya19jb25uZWN0aW9uc19hcGkgaW1wb3J0IE5ldHdvcmtDb25uZWN0aW9uc0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLm90YV9iZXRhX2FwaSBpbXBvcnQgT1RBQmV0YUFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLm9mZl9leGNoYW5nZXNfYXBpIGltcG9ydCBPZmZFeGNoYW5nZXNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS5vbmNoYWluX2RhdGFfYXBpIGltcG9ydCBPbmNoYWluRGF0YUFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLnBheW1lbnRzX3BheW91dF9hcGkgaW1wb3J0IFBheW1lbnRzUGF5b3V0QXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkucG9saWN5X2VkaXRvcl92Ml9iZXRhX2FwaSBpbXBvcnQgUG9saWN5RWRpdG9yVjJCZXRhQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkucG9saWN5X2VkaXRvcl9iZXRhX2FwaSBpbXBvcnQgUG9saWN5RWRpdG9yQmV0YUFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLnJlc2V0X2RldmljZV9hcGkgaW1wb3J0IFJlc2V0RGV2aWNlQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuc21hcnRfdHJhbnNmZXJfYXBpIGltcG9ydCBTbWFydFRyYW5zZmVyQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkuc3Rha2luZ19hcGkgaW1wb3J0IFN0YWtpbmdBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS50cl9saW5rX2FwaSBpbXBvcnQgVFJMaW5rQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkudGFnc19hcGkgaW1wb3J0IFRhZ3NBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS50b2tlbml6YXRpb25fYXBpIGltcG9ydCBUb2tlbml6YXRpb25BcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS50cmFkaW5nX2JldGFfYXBpIGltcG9ydCBUcmFkaW5nQmV0YUFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLnRyYW5zYWN0aW9uc19hcGkgaW1wb3J0IFRyYW5zYWN0aW9uc0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLnRyYXZlbF9ydWxlX2FwaSBpbXBvcnQgVHJhdmVsUnVsZUFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLnVzZXJfZ3JvdXBzX2JldGFfYXBpIGltcG9ydCBVc2VyR3JvdXBzQmV0YUFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLnVzZXJzX2FwaSBpbXBvcnQgVXNlcnNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS52YXVsdHNfYXBpIGltcG9ydCBWYXVsdHNBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS53ZWIzX2Nvbm5lY3Rpb25zX2FwaSBpbXBvcnQgV2ViM0Nvbm5lY3Rpb25zQXBpCmZyb20gZmlyZWJsb2Nrcy5hcGkud2ViaG9va3NfYXBpIGltcG9ydCBXZWJob29rc0FwaQpmcm9tIGZpcmVibG9ja3MuYXBpLndlYmhvb2tzX3YyX2FwaSBpbXBvcnQgV2ViaG9va3NWMkFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLndvcmtzcGFjZV9hcGkgaW1wb3J0IFdvcmtzcGFjZUFwaQpmcm9tIGZpcmVibG9ja3MuYXBpLndvcmtzcGFjZV9zdGF0dXNfYmV0YV9hcGkgaW1wb3J0IFdvcmtzcGFjZVN0YXR1c0JldGFBcGkKZnJvbSBmaXJlYmxvY2tzLmFwaS53aGl0ZWxpc3RfaXBfYWRkcmVzc2VzX2FwaSBpbXBvcnQgV2hpdGVsaXN0SXBBZGRyZXNzZXNBcGkKCkBweXRlc3QuZml4dHVyZQpkZWYgZmlyZWJsb2Nrc19pbnN0YW5jZShtb2NrZXIpOgogICAgdHJ5OgogICAgICAgIG1vY2tlci5wYXRjaCgnZmlyZWJsb2Nrcy5jbGllbnQuVGhyZWFkZWRBcGlDbGllbnQnLCByZXR1cm5fdmFsdWU9TWFnaWNNb2NrKHNwZWM9VGhyZWFkZWRBcGlDbGllbnQpKQogICAgICAgIGNvbmZpZyA9IENsaWVudENvbmZpZ3VyYXRpb24oYXBpX2tleT0iZHVtbXlfYXBpX2tleSIsIHNlY3JldF9rZXk9ImR1bW15X3NlY3JldF9rZXkiLCBiYXNlX3BhdGg9ImR1bW15X2Jhc2VfcGF0aCIpCiAgICAgICAgcmV0dXJuIEZpcmVibG9ja3MoY29uZmlnKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHJldHVybiBlCgpkZWYgdGVzdF9maXJlYmxvY2tzX2NvbnN0cnVjdGlvbihmaXJlYmxvY2tzX2luc3RhbmNlKToKICAgIGFzc2VydCBpc2luc3RhbmNlKGZpcmVibG9ja3NfaW5zdGFuY2UsIEZpcmVibG9ja3MpCiAgICBhc3NlcnQgaXNpbnN0YW5jZShmaXJlYmxvY2tzX2luc3RhbmNlLl9hcGlfY2xpZW50LCBUaHJlYWRlZEFwaUNsaWVudCkKCmRlZiB0ZXN0X2dldF9hcGlfdXNlcihmaXJlYmxvY2tzX2luc3RhbmNlKToKICAgIGFzc2VydCBpc2luc3RhbmNlKGZpcmVibG9ja3NfaW5zdGFuY2UuYXBpX3VzZXIsIEFwaVVzZXJBcGkpCgpkZWYgdGVzdF9nZXRfYXVkaXRfbG9ncyhmaXJlYmxvY2tzX2luc3RhbmNlKToKICAgIGFzc2VydCBpc2luc3RhbmNlKGZpcmVibG9ja3NfaW5zdGFuY2UuYXVkaXRfbG9ncywgQXVkaXRMb2dzQXBpKQoKZGVmIHRlc3RfZ2V0X2Jsb2NrY2hhaW5zX2Fzc2V0cyhmaXJlYmxvY2tzX2luc3RhbmNlKToKICAgIGFzc2VydCBpc2luc3RhbmNlKGZpcmVibG9ja3NfaW5zdGFuY2UuYmxvY2tjaGFpbnNfYXNzZXRzLCBCbG9ja2NoYWluc0Fzc2V0c0FwaSkKCmRlZiB0ZXN0X2dldF9jb21wbGlhbmNlKGZpcmVibG9ja3NfaW5zdGFuY2UpOgogICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmlyZWJsb2Nrc19pbnN0YW5jZS5jb21wbGlhbmNlLCBDb21wbGlhbmNlQXBpKQoKZGVmIHRlc3RfZ2V0X2NvbXBsaWFuY2Vfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb24oZmlyZWJsb2Nrc19pbnN0YW5jZSk6CiAgICBhc3NlcnQgaXNpbnN0YW5jZShmaXJlYmxvY2tzX2luc3RhbmNlLmNvbXBsaWFuY2Vfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb24sIENvbXBsaWFuY2VTY3JlZW5pbmdDb25maWd1cmF0aW9uQXBpKQoKZGVmIHRlc3RfZ2V0X2Nvbm5lY3RlZF9hY2NvdW50c19iZXRhKGZpcmVibG9ja3NfaW5zdGFuY2UpOgogICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmlyZWJsb2Nrc19pbnN0YW5jZS5jb25uZWN0ZWRfYWNjb3VudHNfYmV0YSwgQ29ubmVjdGVkQWNjb3VudHNCZXRhQXBpKQoKZGVmIHRlc3RfZ2V0X2NvbnNvbGVfdXNlcihmaXJlYmxvY2tzX2luc3RhbmNlKToKICAgIGFzc2VydCBpc2luc3RhbmNlKGZpcmVibG9ja3NfaW5zdGFuY2UuY29uc29sZV91c2VyLCBDb25zb2xlVXNlckFwaSkKCmRlZiB0ZXN0X2dldF9jb250cmFjdF9pbnRlcmFjdGlvbnMoZmlyZWJsb2Nrc19pbnN0YW5jZSk6CiAgICBhc3NlcnQgaXNpbnN0YW5jZShmaXJlYmxvY2tzX2luc3RhbmNlLmNvbnRyYWN0X2ludGVyYWN0aW9ucywgQ29udHJhY3RJbnRlcmFjdGlvbnNBcGkpCgpkZWYgdGVzdF9nZXRfY29udHJhY3RfdGVtcGxhdGVzKGZpcmVibG9ja3NfaW5zdGFuY2UpOgogICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmlyZWJsb2Nrc19pbnN0YW5jZS5jb250cmFjdF90ZW1wbGF0ZXMsIENvbnRyYWN0VGVtcGxhdGVzQXBpKQoKZGVmIHRlc3RfZ2V0X2NvbnRyYWN0cyhmaXJlYmxvY2tzX2luc3RhbmNlKToKICAgIGFzc2VydCBpc2luc3RhbmNlKGZpcmVibG9ja3NfaW5zdGFuY2UuY29udHJhY3RzLCBDb250cmFjdHNBcGkpCgpkZWYgdGVzdF9nZXRfY29zaWduZXJzX2JldGEoZmlyZWJsb2Nrc19pbnN0YW5jZSk6CiAgICBhc3NlcnQgaXNpbnN0YW5jZShmaXJlYmxvY2tzX2luc3RhbmNlLmNvc2lnbmVyc19iZXRhLCBDb3NpZ25lcnNCZXRhQXBpKQoKZGVmIHRlc3RfZ2V0X2RlcGxveWVkX2NvbnRyYWN0cyhmaXJlYmxvY2tzX2luc3RhbmNlKToKICAgIGFzc2VydCBpc2luc3RhbmNlKGZpcmVibG9ja3NfaW5zdGFuY2UuZGVwbG95ZWRfY29udHJhY3RzLCBEZXBsb3llZENvbnRyYWN0c0FwaSkKCmRlZiB0ZXN0X2dldF9lbWJlZGRlZF93YWxsZXRzKGZpcmVibG9ja3NfaW5zdGFuY2UpOgogICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmlyZWJsb2Nrc19pbnN0YW5jZS5lbWJlZGRlZF93YWxsZXRzLCBFbWJlZGRlZFdhbGxldHNBcGkpCgpkZWYgdGVzdF9nZXRfZXhjaGFuZ2VfYWNjb3VudHMoZmlyZWJsb2Nrc19pbnN0YW5jZSk6CiAgICBhc3NlcnQgaXNpbnN0YW5jZShmaXJlYmxvY2tzX2luc3RhbmNlLmV4Y2hhbmdlX2FjY291bnRzLCBFeGNoYW5nZUFjY291bnRzQXBpKQoKZGVmIHRlc3RfZ2V0X2V4dGVybmFsX3dhbGxldHMoZmlyZWJsb2Nrc19pbnN0YW5jZSk6CiAgICBhc3NlcnQgaXNpbnN0YW5jZShmaXJlYmxvY2tzX2luc3RhbmNlLmV4dGVybmFsX3dhbGxldHMsIEV4dGVybmFsV2FsbGV0c0FwaSkKCmRlZiB0ZXN0X2dldF9maWF0X2FjY291bnRzKGZpcmVibG9ja3NfaW5zdGFuY2UpOgogICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmlyZWJsb2Nrc19pbnN0YW5jZS5maWF0X2FjY291bnRzLCBGaWF0QWNjb3VudHNBcGkpCgpkZWYgdGVzdF9nZXRfZ2FzX3N0YXRpb25zKGZpcmVibG9ja3NfaW5zdGFuY2UpOgogICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmlyZWJsb2Nrc19pbnN0YW5jZS5nYXNfc3RhdGlvbnMsIEdhc1N0YXRpb25zQXBpKQoKZGVmIHRlc3RfZ2V0X2ludGVybmFsX3dhbGxldHMoZmlyZWJsb2Nrc19pbnN0YW5jZSk6CiAgICBhc3NlcnQgaXNpbnN0YW5jZShmaXJlYmxvY2tzX2luc3RhbmNlLmludGVybmFsX3dhbGxldHMsIEludGVybmFsV2FsbGV0c0FwaSkKCmRlZiB0ZXN0X2dldF9rZXlfbGlua19iZXRhKGZpcmVibG9ja3NfaW5zdGFuY2UpOgogICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmlyZWJsb2Nrc19pbnN0YW5jZS5rZXlfbGlua19iZXRhLCBLZXlMaW5rQmV0YUFwaSkKCmRlZiB0ZXN0X2dldF9rZXlzX2JldGEoZmlyZWJsb2Nrc19pbnN0YW5jZSk6CiAgICBhc3NlcnQgaXNpbnN0YW5jZShmaXJlYmxvY2tzX2luc3RhbmNlLmtleXNfYmV0YSwgS2V5c0JldGFBcGkpCgpkZWYgdGVzdF9nZXRfbmZ0cyhmaXJlYmxvY2tzX2luc3RhbmNlKToKICAgIGFzc2VydCBpc2luc3RhbmNlKGZpcmVibG9ja3NfaW5zdGFuY2UubmZ0cywgTkZUc0FwaSkKCmRlZiB0ZXN0X2dldF9uZXR3b3JrX2Nvbm5lY3Rpb25zKGZpcmVibG9ja3NfaW5zdGFuY2UpOgogICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmlyZWJsb2Nrc19pbnN0YW5jZS5uZXR3b3JrX2Nvbm5lY3Rpb25zLCBOZXR3b3JrQ29ubmVjdGlvbnNBcGkpCgpkZWYgdGVzdF9nZXRfb3RhX2JldGEoZmlyZWJsb2Nrc19pbnN0YW5jZSk6CiAgICBhc3NlcnQgaXNpbnN0YW5jZShmaXJlYmxvY2tzX2luc3RhbmNlLm90YV9iZXRhLCBPVEFCZXRhQXBpKQoKZGVmIHRlc3RfZ2V0X29mZl9leGNoYW5nZXMoZmlyZWJsb2Nrc19pbnN0YW5jZSk6CiAgICBhc3NlcnQgaXNpbnN0YW5jZShmaXJlYmxvY2tzX2luc3RhbmNlLm9mZl9leGNoYW5nZXMsIE9mZkV4Y2hhbmdlc0FwaSkKCmRlZiB0ZXN0X2dldF9vbmNoYWluX2RhdGEoZmlyZWJsb2Nrc19pbnN0YW5jZSk6CiAgICBhc3NlcnQgaXNpbnN0YW5jZShmaXJlYmxvY2tzX2luc3RhbmNlLm9uY2hhaW5fZGF0YSwgT25jaGFpbkRhdGFBcGkpCgpkZWYgdGVzdF9nZXRfcGF5bWVudHNfcGF5b3V0KGZpcmVibG9ja3NfaW5zdGFuY2UpOgogICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmlyZWJsb2Nrc19pbnN0YW5jZS5wYXltZW50c19wYXlvdXQsIFBheW1lbnRzUGF5b3V0QXBpKQoKZGVmIHRlc3RfZ2V0X3BvbGljeV9lZGl0b3JfdjJfYmV0YShmaXJlYmxvY2tzX2luc3RhbmNlKToKICAgIGFzc2VydCBpc2luc3RhbmNlKGZpcmVibG9ja3NfaW5zdGFuY2UucG9saWN5X2VkaXRvcl92Ml9iZXRhLCBQb2xpY3lFZGl0b3JWMkJldGFBcGkpCgpkZWYgdGVzdF9nZXRfcG9saWN5X2VkaXRvcl9iZXRhKGZpcmVibG9ja3NfaW5zdGFuY2UpOgogICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmlyZWJsb2Nrc19pbnN0YW5jZS5wb2xpY3lfZWRpdG9yX2JldGEsIFBvbGljeUVkaXRvckJldGFBcGkpCgpkZWYgdGVzdF9nZXRfcmVzZXRfZGV2aWNlKGZpcmVibG9ja3NfaW5zdGFuY2UpOgogICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmlyZWJsb2Nrc19pbnN0YW5jZS5yZXNldF9kZXZpY2UsIFJlc2V0RGV2aWNlQXBpKQoKZGVmIHRlc3RfZ2V0X3NtYXJ0X3RyYW5zZmVyKGZpcmVibG9ja3NfaW5zdGFuY2UpOgogICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmlyZWJsb2Nrc19pbnN0YW5jZS5zbWFydF90cmFuc2ZlciwgU21hcnRUcmFuc2ZlckFwaSkKCmRlZiB0ZXN0X2dldF9zdGFraW5nKGZpcmVibG9ja3NfaW5zdGFuY2UpOgogICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmlyZWJsb2Nrc19pbnN0YW5jZS5zdGFraW5nLCBTdGFraW5nQXBpKQoKZGVmIHRlc3RfZ2V0X3RyX2xpbmsoZmlyZWJsb2Nrc19pbnN0YW5jZSk6CiAgICBhc3NlcnQgaXNpbnN0YW5jZShmaXJlYmxvY2tzX2luc3RhbmNlLnRyX2xpbmssIFRSTGlua0FwaSkKCmRlZiB0ZXN0X2dldF90YWdzKGZpcmVibG9ja3NfaW5zdGFuY2UpOgogICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmlyZWJsb2Nrc19pbnN0YW5jZS50YWdzLCBUYWdzQXBpKQoKZGVmIHRlc3RfZ2V0X3Rva2VuaXphdGlvbihmaXJlYmxvY2tzX2luc3RhbmNlKToKICAgIGFzc2VydCBpc2luc3RhbmNlKGZpcmVibG9ja3NfaW5zdGFuY2UudG9rZW5pemF0aW9uLCBUb2tlbml6YXRpb25BcGkpCgpkZWYgdGVzdF9nZXRfdHJhZGluZ19iZXRhKGZpcmVibG9ja3NfaW5zdGFuY2UpOgogICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmlyZWJsb2Nrc19pbnN0YW5jZS50cmFkaW5nX2JldGEsIFRyYWRpbmdCZXRhQXBpKQoKZGVmIHRlc3RfZ2V0X3RyYW5zYWN0aW9ucyhmaXJlYmxvY2tzX2luc3RhbmNlKToKICAgIGFzc2VydCBpc2luc3RhbmNlKGZpcmVibG9ja3NfaW5zdGFuY2UudHJhbnNhY3Rpb25zLCBUcmFuc2FjdGlvbnNBcGkpCgpkZWYgdGVzdF9nZXRfdHJhdmVsX3J1bGUoZmlyZWJsb2Nrc19pbnN0YW5jZSk6CiAgICBhc3NlcnQgaXNpbnN0YW5jZShmaXJlYmxvY2tzX2luc3RhbmNlLnRyYXZlbF9ydWxlLCBUcmF2ZWxSdWxlQXBpKQoKZGVmIHRlc3RfZ2V0X3VzZXJfZ3JvdXBzX2JldGEoZmlyZWJsb2Nrc19pbnN0YW5jZSk6CiAgICBhc3NlcnQgaXNpbnN0YW5jZShmaXJlYmxvY2tzX2luc3RhbmNlLnVzZXJfZ3JvdXBzX2JldGEsIFVzZXJHcm91cHNCZXRhQXBpKQoKZGVmIHRlc3RfZ2V0X3VzZXJzKGZpcmVibG9ja3NfaW5zdGFuY2UpOgogICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmlyZWJsb2Nrc19pbnN0YW5jZS51c2VycywgVXNlcnNBcGkpCgpkZWYgdGVzdF9nZXRfdmF1bHRzKGZpcmVibG9ja3NfaW5zdGFuY2UpOgogICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmlyZWJsb2Nrc19pbnN0YW5jZS52YXVsdHMsIFZhdWx0c0FwaSkKCmRlZiB0ZXN0X2dldF93ZWIzX2Nvbm5lY3Rpb25zKGZpcmVibG9ja3NfaW5zdGFuY2UpOgogICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmlyZWJsb2Nrc19pbnN0YW5jZS53ZWIzX2Nvbm5lY3Rpb25zLCBXZWIzQ29ubmVjdGlvbnNBcGkpCgpkZWYgdGVzdF9nZXRfd2ViaG9va3MoZmlyZWJsb2Nrc19pbnN0YW5jZSk6CiAgICBhc3NlcnQgaXNpbnN0YW5jZShmaXJlYmxvY2tzX2luc3RhbmNlLndlYmhvb2tzLCBXZWJob29rc0FwaSkKCmRlZiB0ZXN0X2dldF93ZWJob29rc192MihmaXJlYmxvY2tzX2luc3RhbmNlKToKICAgIGFzc2VydCBpc2luc3RhbmNlKGZpcmVibG9ja3NfaW5zdGFuY2Uud2ViaG9va3NfdjIsIFdlYmhvb2tzVjJBcGkpCgpkZWYgdGVzdF9nZXRfd29ya3NwYWNlKGZpcmVibG9ja3NfaW5zdGFuY2UpOgogICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmlyZWJsb2Nrc19pbnN0YW5jZS53b3Jrc3BhY2UsIFdvcmtzcGFjZUFwaSkKCmRlZiB0ZXN0X2dldF93b3Jrc3BhY2Vfc3RhdHVzX2JldGEoZmlyZWJsb2Nrc19pbnN0YW5jZSk6CiAgICBhc3NlcnQgaXNpbnN0YW5jZShmaXJlYmxvY2tzX2luc3RhbmNlLndvcmtzcGFjZV9zdGF0dXNfYmV0YSwgV29ya3NwYWNlU3RhdHVzQmV0YUFwaSkKCmRlZiB0ZXN0X2dldF93aGl0ZWxpc3RfaXBfYWRkcmVzc2VzKGZpcmVibG9ja3NfaW5zdGFuY2UpOgogICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmlyZWJsb2Nrc19pbnN0YW5jZS53aGl0ZWxpc3RfaXBfYWRkcmVzc2VzLCBXaGl0ZWxpc3RJcEFkZHJlc3Nlc0FwaSkKCg== \ No newline at end of file diff --git a/test/fireblocks/test_client_configuration.py b/test/fireblocks/test_client_configuration.py index 8263c6fa..b74788ee 100644 --- a/test/fireblocks/test_client_configuration.py +++ b/test/fireblocks/test_client_configuration.py @@ -1,54 +1 @@ -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.base_path import BasePath -from fireblocks.additional_options import AdditionalOptions - -def test_api_key_real_value(): - config = ClientConfiguration(api_key="test api key") - assert config.api_key == "test api key" - -def test_api_key_default_value(): - config = ClientConfiguration() - assert config.api_key is None - -def test_secret_key_real_value(): - config = ClientConfiguration(secret_key="test secret key") - assert config.secret_key == "test secret key" - -def test_secret_key_default_value(): - config = ClientConfiguration() - assert config.api_key is None - -def test_base_path_real_value_string(): - config = ClientConfiguration(base_path="test base path") - assert config.base_path == "test base path" - -def test_base_path_real_value_enum(): - config = ClientConfiguration(base_path=BasePath.Sandbox) - assert config.base_path == "https://sandbox-api.fireblocks.io/v1" - -def test_base_path_default_value(): - config = ClientConfiguration() - assert config.base_path is None - -def test_additional_options_real_value(): - config = ClientConfiguration(additional_options=AdditionalOptions(is_anonymous_platform=True, user_agent="test user agent")) - assert config.additional_options.user_agent == "test user agent" - assert config.additional_options.is_anonymous_platform is True - -def test_additional_options_default_value(): - config = ClientConfiguration() - assert config.additional_options.user_agent is None - assert config.additional_options.is_anonymous_platform is False +IiIiCiAgICBGaXJlYmxvY2tzIEFQSQoKICAgIEZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKSAKCiAgICBUaGUgdmVyc2lvbiBvZiB0aGUgT3BlbkFQSSBkb2N1bWVudDogMS42LjIKICAgIENvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KICAgIEdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQoKICAgIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS4KIiIiICAjIG5vcWE6IEU1MDEKCgpmcm9tIGZpcmVibG9ja3MuY2xpZW50X2NvbmZpZ3VyYXRpb24gaW1wb3J0IENsaWVudENvbmZpZ3VyYXRpb24KZnJvbSBmaXJlYmxvY2tzLmJhc2VfcGF0aCBpbXBvcnQgQmFzZVBhdGgKZnJvbSBmaXJlYmxvY2tzLmFkZGl0aW9uYWxfb3B0aW9ucyBpbXBvcnQgQWRkaXRpb25hbE9wdGlvbnMKCmRlZiB0ZXN0X2FwaV9rZXlfcmVhbF92YWx1ZSgpOgogICAgY29uZmlnID0gQ2xpZW50Q29uZmlndXJhdGlvbihhcGlfa2V5PSJ0ZXN0IGFwaSBrZXkiKQogICAgYXNzZXJ0IGNvbmZpZy5hcGlfa2V5ID09ICJ0ZXN0IGFwaSBrZXkiCgpkZWYgdGVzdF9hcGlfa2V5X2RlZmF1bHRfdmFsdWUoKToKICAgIGNvbmZpZyA9IENsaWVudENvbmZpZ3VyYXRpb24oKQogICAgYXNzZXJ0IGNvbmZpZy5hcGlfa2V5IGlzIE5vbmUKCmRlZiB0ZXN0X3NlY3JldF9rZXlfcmVhbF92YWx1ZSgpOgogICAgY29uZmlnID0gQ2xpZW50Q29uZmlndXJhdGlvbihzZWNyZXRfa2V5PSJ0ZXN0IHNlY3JldCBrZXkiKQogICAgYXNzZXJ0IGNvbmZpZy5zZWNyZXRfa2V5ID09ICJ0ZXN0IHNlY3JldCBrZXkiCgpkZWYgdGVzdF9zZWNyZXRfa2V5X2RlZmF1bHRfdmFsdWUoKToKICAgIGNvbmZpZyA9IENsaWVudENvbmZpZ3VyYXRpb24oKQogICAgYXNzZXJ0IGNvbmZpZy5hcGlfa2V5IGlzIE5vbmUKCmRlZiB0ZXN0X2Jhc2VfcGF0aF9yZWFsX3ZhbHVlX3N0cmluZygpOgogICAgY29uZmlnID0gQ2xpZW50Q29uZmlndXJhdGlvbihiYXNlX3BhdGg9InRlc3QgYmFzZSBwYXRoIikKICAgIGFzc2VydCBjb25maWcuYmFzZV9wYXRoID09ICJ0ZXN0IGJhc2UgcGF0aCIKCmRlZiB0ZXN0X2Jhc2VfcGF0aF9yZWFsX3ZhbHVlX2VudW0oKToKICAgIGNvbmZpZyA9IENsaWVudENvbmZpZ3VyYXRpb24oYmFzZV9wYXRoPUJhc2VQYXRoLlNhbmRib3gpCiAgICBhc3NlcnQgY29uZmlnLmJhc2VfcGF0aCA9PSAiaHR0cHM6Ly9zYW5kYm94LWFwaS5maXJlYmxvY2tzLmlvL3YxIgoKZGVmIHRlc3RfYmFzZV9wYXRoX2RlZmF1bHRfdmFsdWUoKToKICAgIGNvbmZpZyA9IENsaWVudENvbmZpZ3VyYXRpb24oKQogICAgYXNzZXJ0IGNvbmZpZy5iYXNlX3BhdGggaXMgTm9uZQoKZGVmIHRlc3RfYWRkaXRpb25hbF9vcHRpb25zX3JlYWxfdmFsdWUoKToKICAgIGNvbmZpZyA9IENsaWVudENvbmZpZ3VyYXRpb24oYWRkaXRpb25hbF9vcHRpb25zPUFkZGl0aW9uYWxPcHRpb25zKGlzX2Fub255bW91c19wbGF0Zm9ybT1UcnVlLCB1c2VyX2FnZW50PSJ0ZXN0IHVzZXIgYWdlbnQiKSkKICAgIGFzc2VydCBjb25maWcuYWRkaXRpb25hbF9vcHRpb25zLnVzZXJfYWdlbnQgPT0gInRlc3QgdXNlciBhZ2VudCIKICAgIGFzc2VydCBjb25maWcuYWRkaXRpb25hbF9vcHRpb25zLmlzX2Fub255bW91c19wbGF0Zm9ybSBpcyBUcnVlCgpkZWYgdGVzdF9hZGRpdGlvbmFsX29wdGlvbnNfZGVmYXVsdF92YWx1ZSgpOgogICAgY29uZmlnID0gQ2xpZW50Q29uZmlndXJhdGlvbigpCiAgICBhc3NlcnQgY29uZmlnLmFkZGl0aW9uYWxfb3B0aW9ucy51c2VyX2FnZW50IGlzIE5vbmUKICAgIGFzc2VydCBjb25maWcuYWRkaXRpb25hbF9vcHRpb25zLmlzX2Fub255bW91c19wbGF0Zm9ybSBpcyBGYWxzZQo= \ No newline at end of file diff --git a/test/fireblocks/test_threaded_api_client.py b/test/fireblocks/test_threaded_api_client.py index 52400dbe..edc761aa 100644 --- a/test/fireblocks/test_threaded_api_client.py +++ b/test/fireblocks/test_threaded_api_client.py @@ -1,212 +1 @@ -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -import pytest -from unittest.mock import MagicMock, ANY -from concurrent.futures import Future -from fireblocks.threaded_api_client import ThreadedApiClient -from fireblocks.client_configuration import ClientConfiguration -from fireblocks.bearer_token_provider import BearerTokenProvider -from fireblocks.rest import RESTClientObject, RESTResponse -from fireblocks.api_client import ApiResponse -from fireblocks.exceptions import ApiException -from fireblocks.models.error_schema import ErrorSchema -from fireblocks.unknown_model import UnknownBaseModel - -class MockSuccess200Response: - def __init__(self): - self.status = 200 - self.reason = "OK" - self.data = b'{"message": "Success"}' - self.headers = {"Content-Type": "application/json"} - -class MockFailure400Response: - def __init__(self): - self.status = 400 - self.reason = "Bad Request" - self.data = b'{"message": "Failure"}' - self.headers = {"Content-Type": "application/json"} - -full_configuration = ClientConfiguration(api_key="my_api_key", secret_key="my_secret", base_path="my_base_path") - -@pytest.fixture(scope='function') -def mock_bearer_token_provider(mocker): - mocked_token_provider = mocker.MagicMock(spec=BearerTokenProvider) - mocked_token_provider.get_token.return_value = 'mocked_token' - - return mocked_token_provider - -@pytest.fixture(scope='function') -def mock_rest_client(mocker): - mocked_rest_client = mocker.MagicMock(spec=RESTClientObject) - mocked_rest_client.pool_manager = mocker.MagicMock() - - return mocked_rest_client - - -@pytest.fixture -def setup_mocks(request, mock_bearer_token_provider, mock_rest_client, mocker): - mocker.patch('fireblocks.api_client.rest.RESTClientObject', return_value=mock_rest_client) - mocker.patch('fireblocks.threaded_api_client.BearerTokenProvider', return_value=mock_bearer_token_provider) - -def test_fail_to_construct_api_client_without_api_key(setup_mocks): - with pytest.raises(ValueError) as exec_info: - ThreadedApiClient(ClientConfiguration(secret_key="my_secret_key", base_path="my_base_path")) - assert exec_info.type == ValueError - assert str(exec_info.value) == 'apiKey is required either in the configuration or as environment variable FIREBLOCKS_API_KEY' - -def test_fail_to_construct_api_client_with_empty_api_key(setup_mocks): - with pytest.raises(ValueError) as exec_info: - ThreadedApiClient(ClientConfiguration(api_key="", secret_key="my_secret_key", base_path="my_base_path")) - assert exec_info.type == ValueError - assert str(exec_info.value) == 'apiKey is required either in the configuration or as environment variable FIREBLOCKS_API_KEY' - -def test_fail_to_construct_api_client_without_secret_key(setup_mocks): - with pytest.raises(ValueError) as exec_info: - ThreadedApiClient(ClientConfiguration(api_key="my_api_key", base_path="my_base_path")) - assert exec_info.type == ValueError - assert str(exec_info.value) == 'secretKey is required either in the configuration or as environment variable FIREBLOCKS_SECRET_KEY' - -def test_fail_to_construct_api_client_with_empty_secret_key(setup_mocks): - with pytest.raises(ValueError) as exec_info: - ThreadedApiClient(ClientConfiguration(api_key="my_api_key", secret_key="", base_path="my_base_path")) - assert exec_info.type == ValueError - assert str(exec_info.value) == 'secretKey is required either in the configuration or as environment variable FIREBLOCKS_SECRET_KEY' - -def test_fail_to_construct_api_client_without_base_path(setup_mocks): - with pytest.raises(ValueError) as exec_info: - ThreadedApiClient(ClientConfiguration(api_key="my_api_key", secret_key="my_secret_key")) - assert exec_info.type == ValueError - assert str(exec_info.value) == 'basePath is required either in the configuration or as environment variable FIREBLOCKS_BASE_PATH' - -def test_fail_to_construct_api_client_with_empty_base_path(setup_mocks): - with pytest.raises(ValueError) as exec_info: - ThreadedApiClient(ClientConfiguration(api_key="my_api_key", secret_key="my_secret_key", base_path="")) - assert exec_info.type == ValueError - assert str(exec_info.value) == 'basePath is required either in the configuration or as environment variable FIREBLOCKS_BASE_PATH' - -def test_succeed_to_construct_api_client(setup_mocks): - api_client_instance = ThreadedApiClient(full_configuration) - assert isinstance(api_client_instance, ThreadedApiClient) - assert isinstance(api_client_instance.rest_client, MagicMock) - -def test_call_api_updates_headers_property_successfully(setup_mocks, mock_rest_client, mock_bearer_token_provider): - api_client_instance = ThreadedApiClient(full_configuration) - method = "GET" - url = "https://api_endpoint.example.com/data" - expected_headers = {"Authorization": "Bearer mocked_token", - "X-API-Key": "my_api_key"} - - api_client_instance.call_api(method, url) - mock_bearer_token_provider.get_token.assert_called_once_with(method, "/data", None) - mock_rest_client.request.assert_called_once_with( - method, - url, - headers=expected_headers, - body=ANY, - post_params=ANY, - _request_timeout=ANY - ) - -def test_call_api_with_query_params(setup_mocks, mock_rest_client, mock_bearer_token_provider): - api_client_instance = ThreadedApiClient(full_configuration) - method = "GET" - url = "https://api_endpoint.example.com/data?param1=value%201¶m2=value2" - expected_headers = {"Authorization": "Bearer mocked_token", - "X-API-Key": "my_api_key"} - - api_client_instance.call_api(method, url) - mock_bearer_token_provider.get_token.assert_called_once_with(method, "/data?param1=value%201¶m2=value2", None) - mock_rest_client.request.assert_called_once_with( - method, - url, - headers=expected_headers, - body=ANY, - post_params=ANY, - _request_timeout=ANY - ) - -def test_call_api_returns_future(setup_mocks, mock_rest_client): - api_client_instance = ThreadedApiClient(full_configuration) - response = api_client_instance.call_api("GET", "https://api_endpoint.example.com/data") - assert isinstance(response, Future) - -def test_api_response_returns_upon_successful_call(setup_mocks, mock_rest_client): - api_client_instance = ThreadedApiClient(full_configuration) - mock_rest_client.request.return_value = RESTResponse(MockSuccess200Response()) - - response = api_client_instance.call_api("GET", "https://api_endpoint.example.com/data") - assert isinstance(response, Future) - assert isinstance(response.result(), ApiResponse) - -def test_api_exception_is_thrown_upon_failed_call(setup_mocks, mock_rest_client): - api_client_instance = ThreadedApiClient(full_configuration) - mock_rest_client.request.return_value = RESTResponse(MockFailure400Response()) - try: - api_client_instance.call_api("GET", "https://api_endpoint.example.com/data").result() - except ApiException as e: - assert e.status == 400 - assert e.reason == "Bad Request" - assert e.data == None - assert e.body == '{"message": "Failure"}' - assert e.headers == {"Content-Type": "application/json"} - else: - pytest.fail("Expected ApiException, but no exception was raised.") - -def test_api_exception_with_error_schema_is_thrown_upon_failed_call(setup_mocks, mock_rest_client): - api_client_instance = ThreadedApiClient(full_configuration) - mock_rest_client.request.return_value = RESTResponse(MockFailure400Response()) - _response_types_map = { - '200': "GetAuditLogsResponse", - 'default': "ErrorSchema", - } - - try: - api_client_instance.call_api(method="GET", url="https://api_endpoint.example.com/data", _response_types_map=_response_types_map).result() - except ApiException as e: - assert e.status == 400 - assert isinstance(e.data, ErrorSchema) - assert e.reason == "Bad Request" - assert e.body == '{"message": "Failure"}' - assert e.headers == {"Content-Type": "application/json"} - except Exception as e: - pytest.fail(f"Expected ApiException, but unexpected exception was raised: {e}") - else: - pytest.fail("Expected ApiException, but no exception was raised.") - -def test_api_response_returns_with_unknown_model_when_deserialize_failed_upon_successful_call(setup_mocks, mock_rest_client, mocker): - api_client_instance = ThreadedApiClient(full_configuration) - mock_rest_client.request.return_value = RESTResponse(MockSuccess200Response()) - _response_types_map = { - '200': "GetAuditLogsResponse", - 'default': "ErrorSchema", - } - mocker.patch.object(api_client_instance, 'deserialize', return_value='mocked_value', side_effect=Exception('Mocked exception')) - response = api_client_instance.call_api(method="GET", url="https://api_endpoint.example.com/data", _response_types_map=_response_types_map).result() - assert isinstance(response, ApiResponse) - assert isinstance(response.data, UnknownBaseModel) - -def test_api_response_returns_list_of_unknown_models_when_deserialize_failed(setup_mocks, mock_rest_client, mocker): - api_client_instance = ThreadedApiClient(full_configuration) - mock_rest_client.request.return_value = RESTResponse(MockSuccess200Response()) - mock_rest_client.request.return_value.data = b'[{"key": "value1"}, {"key": "value2"}]' # Mock list response - _response_types_map = { - '200': "GetAuditLogsResponse", - 'default': "ErrorSchema", - } - mocker.patch.object(api_client_instance, 'deserialize', return_value='mocked_value', side_effect=Exception('Mocked exception')) - - response = api_client_instance.call_api(method="GET", url="https://api_endpoint.example.com/data", _response_types_map=_response_types_map).result() - assert isinstance(response, ApiResponse) - assert isinstance(response.data, list) - assert all(isinstance(item, UnknownBaseModel) for item in response.data) +IiIiCiAgICBGaXJlYmxvY2tzIEFQSQoKICAgIEZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKSAKCiAgICBUaGUgdmVyc2lvbiBvZiB0aGUgT3BlbkFQSSBkb2N1bWVudDogMS42LjIKICAgIENvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KICAgIEdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQoKICAgIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS4KIiIiICAjIG5vcWE6IEU1MDEKCgppbXBvcnQgcHl0ZXN0CmZyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgTWFnaWNNb2NrLCBBTlkKZnJvbSBjb25jdXJyZW50LmZ1dHVyZXMgaW1wb3J0IEZ1dHVyZQpmcm9tIGZpcmVibG9ja3MudGhyZWFkZWRfYXBpX2NsaWVudCBpbXBvcnQgVGhyZWFkZWRBcGlDbGllbnQKZnJvbSBmaXJlYmxvY2tzLmNsaWVudF9jb25maWd1cmF0aW9uIGltcG9ydCBDbGllbnRDb25maWd1cmF0aW9uCmZyb20gZmlyZWJsb2Nrcy5iZWFyZXJfdG9rZW5fcHJvdmlkZXIgaW1wb3J0IEJlYXJlclRva2VuUHJvdmlkZXIKZnJvbSBmaXJlYmxvY2tzLnJlc3QgaW1wb3J0IFJFU1RDbGllbnRPYmplY3QsIFJFU1RSZXNwb25zZQpmcm9tIGZpcmVibG9ja3MuYXBpX2NsaWVudCBpbXBvcnQgQXBpUmVzcG9uc2UKZnJvbSBmaXJlYmxvY2tzLmV4Y2VwdGlvbnMgaW1wb3J0IEFwaUV4Y2VwdGlvbgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVycm9yX3NjaGVtYSBpbXBvcnQgRXJyb3JTY2hlbWEKZnJvbSBmaXJlYmxvY2tzLnVua25vd25fbW9kZWwgaW1wb3J0IFVua25vd25CYXNlTW9kZWwKCmNsYXNzIE1vY2tTdWNjZXNzMjAwUmVzcG9uc2U6CiAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgc2VsZi5zdGF0dXMgPSAyMDAKICAgICAgICBzZWxmLnJlYXNvbiA9ICJPSyIKICAgICAgICBzZWxmLmRhdGEgPSBiJ3sibWVzc2FnZSI6ICJTdWNjZXNzIn0nCiAgICAgICAgc2VsZi5oZWFkZXJzID0geyJDb250ZW50LVR5cGUiOiAiYXBwbGljYXRpb24vanNvbiJ9CgpjbGFzcyBNb2NrRmFpbHVyZTQwMFJlc3BvbnNlOgogICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAgICAgIHNlbGYuc3RhdHVzID0gNDAwCiAgICAgICAgc2VsZi5yZWFzb24gPSAiQmFkIFJlcXVlc3QiCiAgICAgICAgc2VsZi5kYXRhID0gYid7Im1lc3NhZ2UiOiAiRmFpbHVyZSJ9JwogICAgICAgIHNlbGYuaGVhZGVycyA9IHsiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL2pzb24ifQoKZnVsbF9jb25maWd1cmF0aW9uID0gQ2xpZW50Q29uZmlndXJhdGlvbihhcGlfa2V5PSJteV9hcGlfa2V5Iiwgc2VjcmV0X2tleT0ibXlfc2VjcmV0IiwgYmFzZV9wYXRoPSJteV9iYXNlX3BhdGgiKQoKQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdmdW5jdGlvbicpCmRlZiBtb2NrX2JlYXJlcl90b2tlbl9wcm92aWRlcihtb2NrZXIpOgogICAgbW9ja2VkX3Rva2VuX3Byb3ZpZGVyID0gbW9ja2VyLk1hZ2ljTW9jayhzcGVjPUJlYXJlclRva2VuUHJvdmlkZXIpCiAgICBtb2NrZWRfdG9rZW5fcHJvdmlkZXIuZ2V0X3Rva2VuLnJldHVybl92YWx1ZSA9ICdtb2NrZWRfdG9rZW4nCgogICAgcmV0dXJuIG1vY2tlZF90b2tlbl9wcm92aWRlcgoKQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdmdW5jdGlvbicpCmRlZiBtb2NrX3Jlc3RfY2xpZW50KG1vY2tlcik6CiAgICBtb2NrZWRfcmVzdF9jbGllbnQgPSBtb2NrZXIuTWFnaWNNb2NrKHNwZWM9UkVTVENsaWVudE9iamVjdCkKICAgIG1vY2tlZF9yZXN0X2NsaWVudC5wb29sX21hbmFnZXIgPSBtb2NrZXIuTWFnaWNNb2NrKCkKCiAgICByZXR1cm4gbW9ja2VkX3Jlc3RfY2xpZW50CgoKQHB5dGVzdC5maXh0dXJlCmRlZiBzZXR1cF9tb2NrcyhyZXF1ZXN0LCBtb2NrX2JlYXJlcl90b2tlbl9wcm92aWRlciwgbW9ja19yZXN0X2NsaWVudCwgbW9ja2VyKToKICAgIG1vY2tlci5wYXRjaCgnZmlyZWJsb2Nrcy5hcGlfY2xpZW50LnJlc3QuUkVTVENsaWVudE9iamVjdCcsIHJldHVybl92YWx1ZT1tb2NrX3Jlc3RfY2xpZW50KQogICAgbW9ja2VyLnBhdGNoKCdmaXJlYmxvY2tzLnRocmVhZGVkX2FwaV9jbGllbnQuQmVhcmVyVG9rZW5Qcm92aWRlcicsIHJldHVybl92YWx1ZT1tb2NrX2JlYXJlcl90b2tlbl9wcm92aWRlcikKCmRlZiB0ZXN0X2ZhaWxfdG9fY29uc3RydWN0X2FwaV9jbGllbnRfd2l0aG91dF9hcGlfa2V5KHNldHVwX21vY2tzKToKICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKSBhcyBleGVjX2luZm86CiAgICAgICAgVGhyZWFkZWRBcGlDbGllbnQoQ2xpZW50Q29uZmlndXJhdGlvbihzZWNyZXRfa2V5PSJteV9zZWNyZXRfa2V5IiwgYmFzZV9wYXRoPSJteV9iYXNlX3BhdGgiKSkKICAgIGFzc2VydCBleGVjX2luZm8udHlwZSA9PSBWYWx1ZUVycm9yCiAgICBhc3NlcnQgc3RyKGV4ZWNfaW5mby52YWx1ZSkgPT0gJ2FwaUtleSBpcyByZXF1aXJlZCBlaXRoZXIgaW4gdGhlIGNvbmZpZ3VyYXRpb24gb3IgYXMgZW52aXJvbm1lbnQgdmFyaWFibGUgRklSRUJMT0NLU19BUElfS0VZJwoKZGVmIHRlc3RfZmFpbF90b19jb25zdHJ1Y3RfYXBpX2NsaWVudF93aXRoX2VtcHR5X2FwaV9rZXkoc2V0dXBfbW9ja3MpOgogICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpIGFzIGV4ZWNfaW5mbzoKICAgICAgICBUaHJlYWRlZEFwaUNsaWVudChDbGllbnRDb25maWd1cmF0aW9uKGFwaV9rZXk9IiIsIHNlY3JldF9rZXk9Im15X3NlY3JldF9rZXkiLCBiYXNlX3BhdGg9Im15X2Jhc2VfcGF0aCIpKQogICAgYXNzZXJ0IGV4ZWNfaW5mby50eXBlID09IFZhbHVlRXJyb3IKICAgIGFzc2VydCBzdHIoZXhlY19pbmZvLnZhbHVlKSA9PSAnYXBpS2V5IGlzIHJlcXVpcmVkIGVpdGhlciBpbiB0aGUgY29uZmlndXJhdGlvbiBvciBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBGSVJFQkxPQ0tTX0FQSV9LRVknCgpkZWYgdGVzdF9mYWlsX3RvX2NvbnN0cnVjdF9hcGlfY2xpZW50X3dpdGhvdXRfc2VjcmV0X2tleShzZXR1cF9tb2Nrcyk6CiAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcikgYXMgZXhlY19pbmZvOgogICAgICAgIFRocmVhZGVkQXBpQ2xpZW50KENsaWVudENvbmZpZ3VyYXRpb24oYXBpX2tleT0ibXlfYXBpX2tleSIsIGJhc2VfcGF0aD0ibXlfYmFzZV9wYXRoIikpCiAgICBhc3NlcnQgZXhlY19pbmZvLnR5cGUgPT0gVmFsdWVFcnJvcgogICAgYXNzZXJ0IHN0cihleGVjX2luZm8udmFsdWUpID09ICdzZWNyZXRLZXkgaXMgcmVxdWlyZWQgZWl0aGVyIGluIHRoZSBjb25maWd1cmF0aW9uIG9yIGFzIGVudmlyb25tZW50IHZhcmlhYmxlIEZJUkVCTE9DS1NfU0VDUkVUX0tFWScKCmRlZiB0ZXN0X2ZhaWxfdG9fY29uc3RydWN0X2FwaV9jbGllbnRfd2l0aF9lbXB0eV9zZWNyZXRfa2V5KHNldHVwX21vY2tzKToKICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKSBhcyBleGVjX2luZm86CiAgICAgICAgVGhyZWFkZWRBcGlDbGllbnQoQ2xpZW50Q29uZmlndXJhdGlvbihhcGlfa2V5PSJteV9hcGlfa2V5Iiwgc2VjcmV0X2tleT0iIiwgYmFzZV9wYXRoPSJteV9iYXNlX3BhdGgiKSkKICAgIGFzc2VydCBleGVjX2luZm8udHlwZSA9PSBWYWx1ZUVycm9yCiAgICBhc3NlcnQgc3RyKGV4ZWNfaW5mby52YWx1ZSkgPT0gJ3NlY3JldEtleSBpcyByZXF1aXJlZCBlaXRoZXIgaW4gdGhlIGNvbmZpZ3VyYXRpb24gb3IgYXMgZW52aXJvbm1lbnQgdmFyaWFibGUgRklSRUJMT0NLU19TRUNSRVRfS0VZJwoKZGVmIHRlc3RfZmFpbF90b19jb25zdHJ1Y3RfYXBpX2NsaWVudF93aXRob3V0X2Jhc2VfcGF0aChzZXR1cF9tb2Nrcyk6CiAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcikgYXMgZXhlY19pbmZvOgogICAgICAgIFRocmVhZGVkQXBpQ2xpZW50KENsaWVudENvbmZpZ3VyYXRpb24oYXBpX2tleT0ibXlfYXBpX2tleSIsIHNlY3JldF9rZXk9Im15X3NlY3JldF9rZXkiKSkKICAgIGFzc2VydCBleGVjX2luZm8udHlwZSA9PSBWYWx1ZUVycm9yCiAgICBhc3NlcnQgc3RyKGV4ZWNfaW5mby52YWx1ZSkgPT0gJ2Jhc2VQYXRoIGlzIHJlcXVpcmVkIGVpdGhlciBpbiB0aGUgY29uZmlndXJhdGlvbiBvciBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBGSVJFQkxPQ0tTX0JBU0VfUEFUSCcKCmRlZiB0ZXN0X2ZhaWxfdG9fY29uc3RydWN0X2FwaV9jbGllbnRfd2l0aF9lbXB0eV9iYXNlX3BhdGgoc2V0dXBfbW9ja3MpOgogICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpIGFzIGV4ZWNfaW5mbzoKICAgICAgICBUaHJlYWRlZEFwaUNsaWVudChDbGllbnRDb25maWd1cmF0aW9uKGFwaV9rZXk9Im15X2FwaV9rZXkiLCBzZWNyZXRfa2V5PSJteV9zZWNyZXRfa2V5IiwgYmFzZV9wYXRoPSIiKSkKICAgIGFzc2VydCBleGVjX2luZm8udHlwZSA9PSBWYWx1ZUVycm9yCiAgICBhc3NlcnQgc3RyKGV4ZWNfaW5mby52YWx1ZSkgPT0gJ2Jhc2VQYXRoIGlzIHJlcXVpcmVkIGVpdGhlciBpbiB0aGUgY29uZmlndXJhdGlvbiBvciBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBGSVJFQkxPQ0tTX0JBU0VfUEFUSCcKCmRlZiB0ZXN0X3N1Y2NlZWRfdG9fY29uc3RydWN0X2FwaV9jbGllbnQoc2V0dXBfbW9ja3MpOgogICAgYXBpX2NsaWVudF9pbnN0YW5jZSA9IFRocmVhZGVkQXBpQ2xpZW50KGZ1bGxfY29uZmlndXJhdGlvbikKICAgIGFzc2VydCBpc2luc3RhbmNlKGFwaV9jbGllbnRfaW5zdGFuY2UsIFRocmVhZGVkQXBpQ2xpZW50KQogICAgYXNzZXJ0IGlzaW5zdGFuY2UoYXBpX2NsaWVudF9pbnN0YW5jZS5yZXN0X2NsaWVudCwgTWFnaWNNb2NrKQoKZGVmIHRlc3RfY2FsbF9hcGlfdXBkYXRlc19oZWFkZXJzX3Byb3BlcnR5X3N1Y2Nlc3NmdWxseShzZXR1cF9tb2NrcywgbW9ja19yZXN0X2NsaWVudCwgbW9ja19iZWFyZXJfdG9rZW5fcHJvdmlkZXIpOgogICAgYXBpX2NsaWVudF9pbnN0YW5jZSA9IFRocmVhZGVkQXBpQ2xpZW50KGZ1bGxfY29uZmlndXJhdGlvbikKICAgIG1ldGhvZCA9ICJHRVQiCiAgICB1cmwgPSAiaHR0cHM6Ly9hcGlfZW5kcG9pbnQuZXhhbXBsZS5jb20vZGF0YSIKICAgIGV4cGVjdGVkX2hlYWRlcnMgPSB7IkF1dGhvcml6YXRpb24iOiAiQmVhcmVyIG1vY2tlZF90b2tlbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJYLUFQSS1LZXkiOiAibXlfYXBpX2tleSJ9CgogICAgYXBpX2NsaWVudF9pbnN0YW5jZS5jYWxsX2FwaShtZXRob2QsIHVybCkKICAgIG1vY2tfYmVhcmVyX3Rva2VuX3Byb3ZpZGVyLmdldF90b2tlbi5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aChtZXRob2QsICIvZGF0YSIsIE5vbmUpCiAgICBtb2NrX3Jlc3RfY2xpZW50LnJlcXVlc3QuYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoCiAgICAgICAgbWV0aG9kLAogICAgICAgIHVybCwKICAgICAgICBoZWFkZXJzPWV4cGVjdGVkX2hlYWRlcnMsCiAgICAgICAgYm9keT1BTlksCiAgICAgICAgcG9zdF9wYXJhbXM9QU5ZLAogICAgICAgIF9yZXF1ZXN0X3RpbWVvdXQ9QU5ZCiAgICApCgpkZWYgdGVzdF9jYWxsX2FwaV93aXRoX3F1ZXJ5X3BhcmFtcyhzZXR1cF9tb2NrcywgbW9ja19yZXN0X2NsaWVudCwgbW9ja19iZWFyZXJfdG9rZW5fcHJvdmlkZXIpOgogICAgYXBpX2NsaWVudF9pbnN0YW5jZSA9IFRocmVhZGVkQXBpQ2xpZW50KGZ1bGxfY29uZmlndXJhdGlvbikKICAgIG1ldGhvZCA9ICJHRVQiCiAgICB1cmwgPSAiaHR0cHM6Ly9hcGlfZW5kcG9pbnQuZXhhbXBsZS5jb20vZGF0YT9wYXJhbTE9dmFsdWUlMjAxJnBhcmFtMj12YWx1ZTIiCiAgICBleHBlY3RlZF9oZWFkZXJzID0geyJBdXRob3JpemF0aW9uIjogIkJlYXJlciBtb2NrZWRfdG9rZW4iLAogICAgICAgICAgICAgICAgICAgICAgICAiWC1BUEktS2V5IjogIm15X2FwaV9rZXkifQoKICAgIGFwaV9jbGllbnRfaW5zdGFuY2UuY2FsbF9hcGkobWV0aG9kLCB1cmwpCiAgICBtb2NrX2JlYXJlcl90b2tlbl9wcm92aWRlci5nZXRfdG9rZW4uYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgobWV0aG9kLCAiL2RhdGE/cGFyYW0xPXZhbHVlJTIwMSZwYXJhbTI9dmFsdWUyIiwgTm9uZSkKICAgIG1vY2tfcmVzdF9jbGllbnQucmVxdWVzdC5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgKICAgICAgICBtZXRob2QsCiAgICAgICAgdXJsLAogICAgICAgIGhlYWRlcnM9ZXhwZWN0ZWRfaGVhZGVycywKICAgICAgICBib2R5PUFOWSwKICAgICAgICBwb3N0X3BhcmFtcz1BTlksCiAgICAgICAgX3JlcXVlc3RfdGltZW91dD1BTlkKICAgICkKCmRlZiB0ZXN0X2NhbGxfYXBpX3JldHVybnNfZnV0dXJlKHNldHVwX21vY2tzLCBtb2NrX3Jlc3RfY2xpZW50KToKICAgIGFwaV9jbGllbnRfaW5zdGFuY2UgPSBUaHJlYWRlZEFwaUNsaWVudChmdWxsX2NvbmZpZ3VyYXRpb24pCiAgICByZXNwb25zZSA9IGFwaV9jbGllbnRfaW5zdGFuY2UuY2FsbF9hcGkoIkdFVCIsICJodHRwczovL2FwaV9lbmRwb2ludC5leGFtcGxlLmNvbS9kYXRhIikKICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3BvbnNlLCBGdXR1cmUpCgpkZWYgdGVzdF9hcGlfcmVzcG9uc2VfcmV0dXJuc191cG9uX3N1Y2Nlc3NmdWxfY2FsbChzZXR1cF9tb2NrcywgbW9ja19yZXN0X2NsaWVudCk6CiAgICBhcGlfY2xpZW50X2luc3RhbmNlID0gVGhyZWFkZWRBcGlDbGllbnQoZnVsbF9jb25maWd1cmF0aW9uKQogICAgbW9ja19yZXN0X2NsaWVudC5yZXF1ZXN0LnJldHVybl92YWx1ZSA9IFJFU1RSZXNwb25zZShNb2NrU3VjY2VzczIwMFJlc3BvbnNlKCkpCgogICAgcmVzcG9uc2UgPSBhcGlfY2xpZW50X2luc3RhbmNlLmNhbGxfYXBpKCJHRVQiLCAiaHR0cHM6Ly9hcGlfZW5kcG9pbnQuZXhhbXBsZS5jb20vZGF0YSIpCiAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXNwb25zZSwgRnV0dXJlKQogICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzcG9uc2UucmVzdWx0KCksIEFwaVJlc3BvbnNlKQoKZGVmIHRlc3RfYXBpX2V4Y2VwdGlvbl9pc190aHJvd25fdXBvbl9mYWlsZWRfY2FsbChzZXR1cF9tb2NrcywgbW9ja19yZXN0X2NsaWVudCk6CiAgICBhcGlfY2xpZW50X2luc3RhbmNlID0gVGhyZWFkZWRBcGlDbGllbnQoZnVsbF9jb25maWd1cmF0aW9uKQogICAgbW9ja19yZXN0X2NsaWVudC5yZXF1ZXN0LnJldHVybl92YWx1ZSA9IFJFU1RSZXNwb25zZShNb2NrRmFpbHVyZTQwMFJlc3BvbnNlKCkpCiAgICB0cnk6CiAgICAgICAgYXBpX2NsaWVudF9pbnN0YW5jZS5jYWxsX2FwaSgiR0VUIiwgImh0dHBzOi8vYXBpX2VuZHBvaW50LmV4YW1wbGUuY29tL2RhdGEiKS5yZXN1bHQoKQogICAgZXhjZXB0IEFwaUV4Y2VwdGlvbiBhcyBlOgogICAgICAgIGFzc2VydCBlLnN0YXR1cyA9PSA0MDAKICAgICAgICBhc3NlcnQgZS5yZWFzb24gPT0gIkJhZCBSZXF1ZXN0IgogICAgICAgIGFzc2VydCBlLmRhdGEgPT0gTm9uZQogICAgICAgIGFzc2VydCBlLmJvZHkgPT0gJ3sibWVzc2FnZSI6ICJGYWlsdXJlIn0nCiAgICAgICAgYXNzZXJ0IGUuaGVhZGVycyA9PSB7IkNvbnRlbnQtVHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIn0KICAgIGVsc2U6CiAgICAgICAgcHl0ZXN0LmZhaWwoIkV4cGVjdGVkIEFwaUV4Y2VwdGlvbiwgYnV0IG5vIGV4Y2VwdGlvbiB3YXMgcmFpc2VkLiIpCgpkZWYgdGVzdF9hcGlfZXhjZXB0aW9uX3dpdGhfZXJyb3Jfc2NoZW1hX2lzX3Rocm93bl91cG9uX2ZhaWxlZF9jYWxsKHNldHVwX21vY2tzLCBtb2NrX3Jlc3RfY2xpZW50KToKICAgIGFwaV9jbGllbnRfaW5zdGFuY2UgPSBUaHJlYWRlZEFwaUNsaWVudChmdWxsX2NvbmZpZ3VyYXRpb24pCiAgICBtb2NrX3Jlc3RfY2xpZW50LnJlcXVlc3QucmV0dXJuX3ZhbHVlID0gUkVTVFJlc3BvbnNlKE1vY2tGYWlsdXJlNDAwUmVzcG9uc2UoKSkKICAgIF9yZXNwb25zZV90eXBlc19tYXAgPSB7CiAgICAgICAgJzIwMCc6ICJHZXRBdWRpdExvZ3NSZXNwb25zZSIsCiAgICAgICAgJ2RlZmF1bHQnOiAiRXJyb3JTY2hlbWEiLAogICAgfQoKICAgIHRyeToKICAgICAgICBhcGlfY2xpZW50X2luc3RhbmNlLmNhbGxfYXBpKG1ldGhvZD0iR0VUIiwgdXJsPSJodHRwczovL2FwaV9lbmRwb2ludC5leGFtcGxlLmNvbS9kYXRhIiwgX3Jlc3BvbnNlX3R5cGVzX21hcD1fcmVzcG9uc2VfdHlwZXNfbWFwKS5yZXN1bHQoKQogICAgZXhjZXB0IEFwaUV4Y2VwdGlvbiBhcyBlOgogICAgICAgIGFzc2VydCBlLnN0YXR1cyA9PSA0MDAKICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShlLmRhdGEsIEVycm9yU2NoZW1hKQogICAgICAgIGFzc2VydCBlLnJlYXNvbiA9PSAiQmFkIFJlcXVlc3QiCiAgICAgICAgYXNzZXJ0IGUuYm9keSA9PSAneyJtZXNzYWdlIjogIkZhaWx1cmUifScKICAgICAgICBhc3NlcnQgZS5oZWFkZXJzID09IHsiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL2pzb24ifQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIHB5dGVzdC5mYWlsKGYiRXhwZWN0ZWQgQXBpRXhjZXB0aW9uLCBidXQgdW5leHBlY3RlZCBleGNlcHRpb24gd2FzIHJhaXNlZDoge2V9IikKICAgIGVsc2U6CiAgICAgICAgcHl0ZXN0LmZhaWwoIkV4cGVjdGVkIEFwaUV4Y2VwdGlvbiwgYnV0IG5vIGV4Y2VwdGlvbiB3YXMgcmFpc2VkLiIpCgpkZWYgdGVzdF9hcGlfcmVzcG9uc2VfcmV0dXJuc193aXRoX3Vua25vd25fbW9kZWxfd2hlbl9kZXNlcmlhbGl6ZV9mYWlsZWRfdXBvbl9zdWNjZXNzZnVsX2NhbGwoc2V0dXBfbW9ja3MsIG1vY2tfcmVzdF9jbGllbnQsIG1vY2tlcik6CiAgICBhcGlfY2xpZW50X2luc3RhbmNlID0gVGhyZWFkZWRBcGlDbGllbnQoZnVsbF9jb25maWd1cmF0aW9uKQogICAgbW9ja19yZXN0X2NsaWVudC5yZXF1ZXN0LnJldHVybl92YWx1ZSA9IFJFU1RSZXNwb25zZShNb2NrU3VjY2VzczIwMFJlc3BvbnNlKCkpCiAgICBfcmVzcG9uc2VfdHlwZXNfbWFwID0gewogICAgICAgICcyMDAnOiAiR2V0QXVkaXRMb2dzUmVzcG9uc2UiLAogICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgIH0KICAgIG1vY2tlci5wYXRjaC5vYmplY3QoYXBpX2NsaWVudF9pbnN0YW5jZSwgJ2Rlc2VyaWFsaXplJywgcmV0dXJuX3ZhbHVlPSdtb2NrZWRfdmFsdWUnLCBzaWRlX2VmZmVjdD1FeGNlcHRpb24oJ01vY2tlZCBleGNlcHRpb24nKSkKICAgIHJlc3BvbnNlID0gYXBpX2NsaWVudF9pbnN0YW5jZS5jYWxsX2FwaShtZXRob2Q9IkdFVCIsIHVybD0iaHR0cHM6Ly9hcGlfZW5kcG9pbnQuZXhhbXBsZS5jb20vZGF0YSIsIF9yZXNwb25zZV90eXBlc19tYXA9X3Jlc3BvbnNlX3R5cGVzX21hcCkucmVzdWx0KCkKICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3BvbnNlLCBBcGlSZXNwb25zZSkKICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3BvbnNlLmRhdGEsIFVua25vd25CYXNlTW9kZWwpCgpkZWYgdGVzdF9hcGlfcmVzcG9uc2VfcmV0dXJuc19saXN0X29mX3Vua25vd25fbW9kZWxzX3doZW5fZGVzZXJpYWxpemVfZmFpbGVkKHNldHVwX21vY2tzLCBtb2NrX3Jlc3RfY2xpZW50LCBtb2NrZXIpOgogICAgYXBpX2NsaWVudF9pbnN0YW5jZSA9IFRocmVhZGVkQXBpQ2xpZW50KGZ1bGxfY29uZmlndXJhdGlvbikKICAgIG1vY2tfcmVzdF9jbGllbnQucmVxdWVzdC5yZXR1cm5fdmFsdWUgPSBSRVNUUmVzcG9uc2UoTW9ja1N1Y2Nlc3MyMDBSZXNwb25zZSgpKQogICAgbW9ja19yZXN0X2NsaWVudC5yZXF1ZXN0LnJldHVybl92YWx1ZS5kYXRhID0gYidbeyJrZXkiOiAidmFsdWUxIn0sIHsia2V5IjogInZhbHVlMiJ9XScgICMgTW9jayBsaXN0IHJlc3BvbnNlCiAgICBfcmVzcG9uc2VfdHlwZXNfbWFwID0gewogICAgICAgICcyMDAnOiAiR2V0QXVkaXRMb2dzUmVzcG9uc2UiLAogICAgICAgICdkZWZhdWx0JzogIkVycm9yU2NoZW1hIiwKICAgIH0KICAgIG1vY2tlci5wYXRjaC5vYmplY3QoYXBpX2NsaWVudF9pbnN0YW5jZSwgJ2Rlc2VyaWFsaXplJywgcmV0dXJuX3ZhbHVlPSdtb2NrZWRfdmFsdWUnLCBzaWRlX2VmZmVjdD1FeGNlcHRpb24oJ01vY2tlZCBleGNlcHRpb24nKSkKCiAgICByZXNwb25zZSA9IGFwaV9jbGllbnRfaW5zdGFuY2UuY2FsbF9hcGkobWV0aG9kPSJHRVQiLCB1cmw9Imh0dHBzOi8vYXBpX2VuZHBvaW50LmV4YW1wbGUuY29tL2RhdGEiLCBfcmVzcG9uc2VfdHlwZXNfbWFwPV9yZXNwb25zZV90eXBlc19tYXApLnJlc3VsdCgpCiAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXNwb25zZSwgQXBpUmVzcG9uc2UpCiAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXNwb25zZS5kYXRhLCBsaXN0KQogICAgYXNzZXJ0IGFsbChpc2luc3RhbmNlKGl0ZW0sIFVua25vd25CYXNlTW9kZWwpIGZvciBpdGVtIGluIHJlc3BvbnNlLmRhdGEpCg== \ No newline at end of file diff --git a/test/fireblocks/test_unknown_model.py b/test/fireblocks/test_unknown_model.py index 8de82a43..ee0d4c7b 100644 --- a/test/fireblocks/test_unknown_model.py +++ b/test/fireblocks/test_unknown_model.py @@ -1,48 +1 @@ -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -import pytest -import json -import ast -from fireblocks.unknown_model import create_unknown_model, UnknownBaseModel - -@pytest.fixture -def unknown_model_example(): - data = {"name": "John Doe", "age": 25} - model = create_unknown_model(data) - return data, model.parse_obj(data) - -def test_create_unknown_model(unknown_model_example): - data, model = unknown_model_example - - assert isinstance(model, UnknownBaseModel) - assert model.dict() == data - -def test_to_json(unknown_model_example): - data, model = unknown_model_example - - json_data = model.to_json() - assert json.loads(json_data) == data - -def test_to_dict(unknown_model_example): - data, model = unknown_model_example - - dict_data = model.to_dict() - assert dict_data == data - -def test_to_str(unknown_model_example): - data, model = unknown_model_example - - str_data = model.to_str() - assert type(str_data) == str - assert ast.literal_eval(str_data) == ast.literal_eval(str(data)) \ No newline at end of file +IiIiCiAgICBGaXJlYmxvY2tzIEFQSQoKICAgIEZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKSAKCiAgICBUaGUgdmVyc2lvbiBvZiB0aGUgT3BlbkFQSSBkb2N1bWVudDogMS42LjIKICAgIENvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KICAgIEdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQoKICAgIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS4KIiIiICAjIG5vcWE6IEU1MDEKCgppbXBvcnQgcHl0ZXN0CmltcG9ydCBqc29uCmltcG9ydCBhc3QKZnJvbSBmaXJlYmxvY2tzLnVua25vd25fbW9kZWwgaW1wb3J0IGNyZWF0ZV91bmtub3duX21vZGVsLCBVbmtub3duQmFzZU1vZGVsCgpAcHl0ZXN0LmZpeHR1cmUKZGVmIHVua25vd25fbW9kZWxfZXhhbXBsZSgpOgogICAgZGF0YSA9IHsibmFtZSI6ICJKb2huIERvZSIsICJhZ2UiOiAyNX0KICAgIG1vZGVsID0gY3JlYXRlX3Vua25vd25fbW9kZWwoZGF0YSkKICAgIHJldHVybiBkYXRhLCBtb2RlbC5wYXJzZV9vYmooZGF0YSkKCmRlZiB0ZXN0X2NyZWF0ZV91bmtub3duX21vZGVsKHVua25vd25fbW9kZWxfZXhhbXBsZSk6CiAgICBkYXRhLCBtb2RlbCA9IHVua25vd25fbW9kZWxfZXhhbXBsZQoKICAgIGFzc2VydCBpc2luc3RhbmNlKG1vZGVsLCBVbmtub3duQmFzZU1vZGVsKQogICAgYXNzZXJ0IG1vZGVsLmRpY3QoKSA9PSBkYXRhCgpkZWYgdGVzdF90b19qc29uKHVua25vd25fbW9kZWxfZXhhbXBsZSk6CiAgICBkYXRhLCBtb2RlbCA9IHVua25vd25fbW9kZWxfZXhhbXBsZQoKICAgIGpzb25fZGF0YSA9IG1vZGVsLnRvX2pzb24oKQogICAgYXNzZXJ0IGpzb24ubG9hZHMoanNvbl9kYXRhKSA9PSBkYXRhCgpkZWYgdGVzdF90b19kaWN0KHVua25vd25fbW9kZWxfZXhhbXBsZSk6CiAgICBkYXRhLCBtb2RlbCA9IHVua25vd25fbW9kZWxfZXhhbXBsZQoKICAgIGRpY3RfZGF0YSA9IG1vZGVsLnRvX2RpY3QoKQogICAgYXNzZXJ0IGRpY3RfZGF0YSA9PSBkYXRhCgpkZWYgdGVzdF90b19zdHIodW5rbm93bl9tb2RlbF9leGFtcGxlKToKICAgIGRhdGEsIG1vZGVsID0gdW5rbm93bl9tb2RlbF9leGFtcGxlCgogICAgc3RyX2RhdGEgPSBtb2RlbC50b19zdHIoKQogICAgYXNzZXJ0IHR5cGUoc3RyX2RhdGEpID09IHN0cgogICAgYXNzZXJ0IGFzdC5saXRlcmFsX2V2YWwoc3RyX2RhdGEpID09IGFzdC5saXRlcmFsX2V2YWwoc3RyKGRhdGEpKQ== \ No newline at end of file diff --git a/test/fireblocks/test_user_agent_util.py b/test/fireblocks/test_user_agent_util.py index d5735f25..c5c29c84 100644 --- a/test/fireblocks/test_user_agent_util.py +++ b/test/fireblocks/test_user_agent_util.py @@ -1,37 +1 @@ -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -import pytest -from fireblocks.user_agent_util import UserAgentUtil -from fireblocks import __version__ - -@pytest.fixture -def mock_platform(mocker): - mocker.patch('platform.system', return_value="Linux") - mocker.patch('platform.release', return_value="5.4.0-42-generic") - mocker.patch('platform.machine', return_value="x86_64") - -@pytest.mark.parametrize("is_anonymous_platform, user_agent, expected", [ - (False, "customUserAgent", f"customUserAgent fireblocks/sdk/python/{__version__} (Linux 5.4.0-42-generic; x86_64)"), - (True, "customUserAgent", f"customUserAgent fireblocks/sdk/python/{__version__}"), - (False, None, f"fireblocks/sdk/python/{__version__} (Linux 5.4.0-42-generic; x86_64)"), - (True, None, f"fireblocks/sdk/python/{__version__}")]) -def test_get_user_agent(mock_platform, is_anonymous_platform, user_agent, expected): - # Create an instance of UserAgentUtil - util = UserAgentUtil() - - # Call the get_user_agent method with test inputs - result = util.get_user_agent(is_anonymous_platform, user_agent) - - # Assert that the output is as expected - assert result == expected +IiIiCiAgICBGaXJlYmxvY2tzIEFQSQoKICAgIEZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKSAKCiAgICBUaGUgdmVyc2lvbiBvZiB0aGUgT3BlbkFQSSBkb2N1bWVudDogMS42LjIKICAgIENvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KICAgIEdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQoKICAgIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS4KIiIiICAjIG5vcWE6IEU1MDEKCgppbXBvcnQgcHl0ZXN0CmZyb20gZmlyZWJsb2Nrcy51c2VyX2FnZW50X3V0aWwgaW1wb3J0IFVzZXJBZ2VudFV0aWwKZnJvbSBmaXJlYmxvY2tzIGltcG9ydCBfX3ZlcnNpb25fXwoKQHB5dGVzdC5maXh0dXJlCmRlZiBtb2NrX3BsYXRmb3JtKG1vY2tlcik6CiAgICBtb2NrZXIucGF0Y2goJ3BsYXRmb3JtLnN5c3RlbScsIHJldHVybl92YWx1ZT0iTGludXgiKQogICAgbW9ja2VyLnBhdGNoKCdwbGF0Zm9ybS5yZWxlYXNlJywgcmV0dXJuX3ZhbHVlPSI1LjQuMC00Mi1nZW5lcmljIikKICAgIG1vY2tlci5wYXRjaCgncGxhdGZvcm0ubWFjaGluZScsIHJldHVybl92YWx1ZT0ieDg2XzY0IikKCkBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaXNfYW5vbnltb3VzX3BsYXRmb3JtLCB1c2VyX2FnZW50LCBleHBlY3RlZCIsIFsKICAgIChGYWxzZSwgImN1c3RvbVVzZXJBZ2VudCIsIGYiY3VzdG9tVXNlckFnZW50IGZpcmVibG9ja3Mvc2RrL3B5dGhvbi97X192ZXJzaW9uX199IChMaW51eCA1LjQuMC00Mi1nZW5lcmljOyB4ODZfNjQpIiksCiAgICAoVHJ1ZSwgImN1c3RvbVVzZXJBZ2VudCIsIGYiY3VzdG9tVXNlckFnZW50IGZpcmVibG9ja3Mvc2RrL3B5dGhvbi97X192ZXJzaW9uX199IiksCiAgICAoRmFsc2UsIE5vbmUsIGYiZmlyZWJsb2Nrcy9zZGsvcHl0aG9uL3tfX3ZlcnNpb25fX30gKExpbnV4IDUuNC4wLTQyLWdlbmVyaWM7IHg4Nl82NCkiKSwKICAgIChUcnVlLCBOb25lLCBmImZpcmVibG9ja3Mvc2RrL3B5dGhvbi97X192ZXJzaW9uX199IildKQpkZWYgdGVzdF9nZXRfdXNlcl9hZ2VudChtb2NrX3BsYXRmb3JtLCBpc19hbm9ueW1vdXNfcGxhdGZvcm0sIHVzZXJfYWdlbnQsIGV4cGVjdGVkKToKICAgICMgQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFVzZXJBZ2VudFV0aWwKICAgIHV0aWwgPSBVc2VyQWdlbnRVdGlsKCkKCiAgICAjIENhbGwgdGhlIGdldF91c2VyX2FnZW50IG1ldGhvZCB3aXRoIHRlc3QgaW5wdXRzCiAgICByZXN1bHQgPSB1dGlsLmdldF91c2VyX2FnZW50KGlzX2Fub255bW91c19wbGF0Zm9ybSwgdXNlcl9hZ2VudCkKCiAgICAjIEFzc2VydCB0aGF0IHRoZSBvdXRwdXQgaXMgYXMgZXhwZWN0ZWQKICAgIGFzc2VydCByZXN1bHQgPT0gZXhwZWN0ZWQK \ No newline at end of file diff --git a/test/fireblocks/test_validation_utils.py b/test/fireblocks/test_validation_utils.py index 99036d91..a061260d 100644 --- a/test/fireblocks/test_validation_utils.py +++ b/test/fireblocks/test_validation_utils.py @@ -1,27 +1 @@ -""" - Fireblocks API - - Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - - The version of the OpenAPI document: 1.6.2 - Contact: developers@fireblocks.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -import pytest -from fireblocks.validation_utils import validate_not_empty_string - -def test_validate_not_empty_string_with_empty_string(): - with pytest.raises(ValueError) as excinfo: - validate_not_empty_string('testFunction', 'testParam', '') - assert str(excinfo.value) == "The required parameter 'testParam' was empty when calling 'testFunction'" - assert excinfo.type == ValueError - -def test_validate_not_empty_string_with_non_empty_string(): - try: - validate_not_empty_string('testFunction', 'testParam', 'testValue') - except ValueError: - pytest.fail("validate_not_empty_string raised ValueError unexpectedly!") +IiIiCiAgICBGaXJlYmxvY2tzIEFQSQoKICAgIEZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKSAKCiAgICBUaGUgdmVyc2lvbiBvZiB0aGUgT3BlbkFQSSBkb2N1bWVudDogMS42LjIKICAgIENvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KICAgIEdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQoKICAgIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS4KIiIiICAjIG5vcWE6IEU1MDEKCgppbXBvcnQgcHl0ZXN0CmZyb20gZmlyZWJsb2Nrcy52YWxpZGF0aW9uX3V0aWxzIGltcG9ydCB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nCgpkZWYgdGVzdF92YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nX3dpdGhfZW1wdHlfc3RyaW5nKCk6CiAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcikgYXMgZXhjaW5mbzoKICAgICAgICB2YWxpZGF0ZV9ub3RfZW1wdHlfc3RyaW5nKCd0ZXN0RnVuY3Rpb24nLCAndGVzdFBhcmFtJywgJycpCiAgICBhc3NlcnQgc3RyKGV4Y2luZm8udmFsdWUpID09ICJUaGUgcmVxdWlyZWQgcGFyYW1ldGVyICd0ZXN0UGFyYW0nIHdhcyBlbXB0eSB3aGVuIGNhbGxpbmcgJ3Rlc3RGdW5jdGlvbiciCiAgICBhc3NlcnQgZXhjaW5mby50eXBlID09IFZhbHVlRXJyb3IKCmRlZiB0ZXN0X3ZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmdfd2l0aF9ub25fZW1wdHlfc3RyaW5nKCk6CiAgICB0cnk6CiAgICAgICAgdmFsaWRhdGVfbm90X2VtcHR5X3N0cmluZygndGVzdEZ1bmN0aW9uJywgJ3Rlc3RQYXJhbScsICd0ZXN0VmFsdWUnKQogICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAgICAgcHl0ZXN0LmZhaWwoInZhbGlkYXRlX25vdF9lbXB0eV9zdHJpbmcgcmFpc2VkIFZhbHVlRXJyb3IgdW5leHBlY3RlZGx5ISIpCg== \ No newline at end of file diff --git a/test/test_aba_payment_info.py b/test/test_aba_payment_info.py index 7eae40e4..447d0200 100644 --- a/test/test_aba_payment_info.py +++ b/test/test_aba_payment_info.py @@ -1,72 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.aba_payment_info import AbaPaymentInfo - - -class TestAbaPaymentInfo(unittest.TestCase): - """AbaPaymentInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AbaPaymentInfo: - """Test AbaPaymentInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AbaPaymentInfo` - """ - model = AbaPaymentInfo() - if include_optional: - return AbaPaymentInfo( - account_holder_given_name = 'John', - account_holder_surname = 'Doe', - account_holder_city = 'New York', - account_holder_country = 'US', - account_holder_address1 = '123 Wall Street', - account_holder_address2 = 'Suite 100', - account_holder_district = 'Manhattan', - account_holder_postal_code = '10005', - aba_routing_number = '021000021', - aba_account_number = '1234567890', - aba_country = 'US' - ) - else: - return AbaPaymentInfo( - account_holder_given_name = 'John', - account_holder_city = 'New York', - account_holder_country = 'US', - account_holder_address1 = '123 Wall Street', - account_holder_postal_code = '10005', - aba_routing_number = '021000021', - aba_account_number = '1234567890', - aba_country = 'US', - ) - """ - - def testAbaPaymentInfo(self): - """Test AbaPaymentInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFiYV9wYXltZW50X2luZm8gaW1wb3J0IEFiYVBheW1lbnRJbmZvCgoKY2xhc3MgVGVzdEFiYVBheW1lbnRJbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFiYVBheW1lbnRJbmZvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBYmFQYXltZW50SW5mbzoKICAgICAgICAiIiJUZXN0IEFiYVBheW1lbnRJbmZvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFiYVBheW1lbnRJbmZvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQWJhUGF5bWVudEluZm8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBYmFQYXltZW50SW5mbygKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2dpdmVuX25hbWUgPSAnSm9obicsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9zdXJuYW1lID0gJ0RvZScsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9jaXR5ID0gJ05ldyBZb3JrJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2NvdW50cnkgPSAnVVMnLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfYWRkcmVzczEgPSAnMTIzIFdhbGwgU3RyZWV0JywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2FkZHJlc3MyID0gJ1N1aXRlIDEwMCcsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9kaXN0cmljdCA9ICdNYW5oYXR0YW4nLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfcG9zdGFsX2NvZGUgPSAnMTAwMDUnLAogICAgICAgICAgICAgICAgYWJhX3JvdXRpbmdfbnVtYmVyID0gJzAyMTAwMDAyMScsCiAgICAgICAgICAgICAgICBhYmFfYWNjb3VudF9udW1iZXIgPSAnMTIzNDU2Nzg5MCcsCiAgICAgICAgICAgICAgICBhYmFfY291bnRyeSA9ICdVUycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBYmFQYXltZW50SW5mbygKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2dpdmVuX25hbWUgPSAnSm9obicsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9jaXR5ID0gJ05ldyBZb3JrJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2NvdW50cnkgPSAnVVMnLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfYWRkcmVzczEgPSAnMTIzIFdhbGwgU3RyZWV0JywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX3Bvc3RhbF9jb2RlID0gJzEwMDA1JywKICAgICAgICAgICAgICAgIGFiYV9yb3V0aW5nX251bWJlciA9ICcwMjEwMDAwMjEnLAogICAgICAgICAgICAgICAgYWJhX2FjY291bnRfbnVtYmVyID0gJzEyMzQ1Njc4OTAnLAogICAgICAgICAgICAgICAgYWJhX2NvdW50cnkgPSAnVVMnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFiYVBheW1lbnRJbmZvKHNlbGYpOgogICAgICAgICIiIlRlc3QgQWJhUGF5bWVudEluZm8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_abi_function.py b/test/test_abi_function.py index 2a460207..57d8644a 100644 --- a/test/test_abi_function.py +++ b/test/test_abi_function.py @@ -1,86 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.abi_function import AbiFunction - - -class TestAbiFunction(unittest.TestCase): - """AbiFunction unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AbiFunction: - """Test AbiFunction - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AbiFunction` - """ - model = AbiFunction() - if include_optional: - return AbiFunction( - name = 'mint', - state_mutability = 'pure', - type = 'constructor', - inputs = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], ) - ], - outputs = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], ) - ], - description = '' - ) - else: - return AbiFunction( - type = 'constructor', - ) - """ - - def testAbiFunction(self): - """Test AbiFunction""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFiaV9mdW5jdGlvbiBpbXBvcnQgQWJpRnVuY3Rpb24KCgpjbGFzcyBUZXN0QWJpRnVuY3Rpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQWJpRnVuY3Rpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFiaUZ1bmN0aW9uOgogICAgICAgICIiIlRlc3QgQWJpRnVuY3Rpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQWJpRnVuY3Rpb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBYmlGdW5jdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFiaUZ1bmN0aW9uKAogICAgICAgICAgICAgICAgbmFtZSA9ICdtaW50JywKICAgICAgICAgICAgICAgIHN0YXRlX211dGFiaWxpdHkgPSAncHVyZScsCiAgICAgICAgICAgICAgICB0eXBlID0gJ2NvbnN0cnVjdG9yJywKICAgICAgICAgICAgICAgIGlucHV0cyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXIuUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ19uYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1RoZSBuYW1lIG9mIHRoZSB0b2tlbicsIAogICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyLlBhcmFtZXRlcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ19uYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxfdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ3N0cmluZycsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgb3V0cHV0cyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXIuUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ19uYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1RoZSBuYW1lIG9mIHRoZSB0b2tlbicsIAogICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyLlBhcmFtZXRlcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ19uYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxfdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ3N0cmluZycsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFiaUZ1bmN0aW9uKAogICAgICAgICAgICAgICAgdHlwZSA9ICdjb25zdHJ1Y3RvcicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QWJpRnVuY3Rpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBBYmlGdW5jdGlvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_access_registry_address_item.py b/test/test_access_registry_address_item.py index e6f5032c..1e61b4b2 100644 --- a/test/test_access_registry_address_item.py +++ b/test/test_access_registry_address_item.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.access_registry_address_item import AccessRegistryAddressItem - - -class TestAccessRegistryAddressItem(unittest.TestCase): - """AccessRegistryAddressItem unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AccessRegistryAddressItem: - """Test AccessRegistryAddressItem - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AccessRegistryAddressItem` - """ - model = AccessRegistryAddressItem() - if include_optional: - return AccessRegistryAddressItem( - address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66', - date_added = '2024-07-01T00:00Z' - ) - else: - return AccessRegistryAddressItem( - address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66', - date_added = '2024-07-01T00:00Z', - ) - """ - - def testAccessRegistryAddressItem(self): - """Test AccessRegistryAddressItem""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY2Vzc19yZWdpc3RyeV9hZGRyZXNzX2l0ZW0gaW1wb3J0IEFjY2Vzc1JlZ2lzdHJ5QWRkcmVzc0l0ZW0KCgpjbGFzcyBUZXN0QWNjZXNzUmVnaXN0cnlBZGRyZXNzSXRlbSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBY2Nlc3NSZWdpc3RyeUFkZHJlc3NJdGVtIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBY2Nlc3NSZWdpc3RyeUFkZHJlc3NJdGVtOgogICAgICAgICIiIlRlc3QgQWNjZXNzUmVnaXN0cnlBZGRyZXNzSXRlbQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBY2Nlc3NSZWdpc3RyeUFkZHJlc3NJdGVtYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQWNjZXNzUmVnaXN0cnlBZGRyZXNzSXRlbSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFjY2Vzc1JlZ2lzdHJ5QWRkcmVzc0l0ZW0oCiAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzB4QzJjNGUxRGI0MUYwYkI5Nzk5NkQwZUQwNTQyRDIxNzBkMTQ2RkI2NicsCiAgICAgICAgICAgICAgICBkYXRlX2FkZGVkID0gJzIwMjQtMDctMDFUMDA6MDBaJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFjY2Vzc1JlZ2lzdHJ5QWRkcmVzc0l0ZW0oCiAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzB4QzJjNGUxRGI0MUYwYkI5Nzk5NkQwZUQwNTQyRDIxNzBkMTQ2RkI2NicsCiAgICAgICAgICAgICAgICBkYXRlX2FkZGVkID0gJzIwMjQtMDctMDFUMDA6MDBaJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBY2Nlc3NSZWdpc3RyeUFkZHJlc3NJdGVtKHNlbGYpOgogICAgICAgICIiIlRlc3QgQWNjZXNzUmVnaXN0cnlBZGRyZXNzSXRlbSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_access_registry_current_state_response.py b/test/test_access_registry_current_state_response.py index 36064dd4..6c02040d 100644 --- a/test/test_access_registry_current_state_response.py +++ b/test/test_access_registry_current_state_response.py @@ -1,68 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.access_registry_current_state_response import ( - AccessRegistryCurrentStateResponse, -) - - -class TestAccessRegistryCurrentStateResponse(unittest.TestCase): - """AccessRegistryCurrentStateResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AccessRegistryCurrentStateResponse: - """Test AccessRegistryCurrentStateResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AccessRegistryCurrentStateResponse` - """ - model = AccessRegistryCurrentStateResponse() - if include_optional: - return AccessRegistryCurrentStateResponse( - data = [ - fireblocks.models.access_registry_address_item.AccessRegistryAddressItem( - address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66', - date_added = '2024-07-01T00:00Z', ) - ], - next = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==', - prev = 'dGhpcyBpcyBhIHByZXZpb3VzIGN1bcnNvcg==', - total = 150 - ) - else: - return AccessRegistryCurrentStateResponse( - data = [ - fireblocks.models.access_registry_address_item.AccessRegistryAddressItem( - address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66', - date_added = '2024-07-01T00:00Z', ) - ], - ) - """ - - def testAccessRegistryCurrentStateResponse(self): - """Test AccessRegistryCurrentStateResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY2Vzc19yZWdpc3RyeV9jdXJyZW50X3N0YXRlX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBBY2Nlc3NSZWdpc3RyeUN1cnJlbnRTdGF0ZVJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdEFjY2Vzc1JlZ2lzdHJ5Q3VycmVudFN0YXRlUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQWNjZXNzUmVnaXN0cnlDdXJyZW50U3RhdGVSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQWNjZXNzUmVnaXN0cnlDdXJyZW50U3RhdGVSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEFjY2Vzc1JlZ2lzdHJ5Q3VycmVudFN0YXRlUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQWNjZXNzUmVnaXN0cnlDdXJyZW50U3RhdGVSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFjY2Vzc1JlZ2lzdHJ5Q3VycmVudFN0YXRlUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBY2Nlc3NSZWdpc3RyeUN1cnJlbnRTdGF0ZVJlc3BvbnNlKAogICAgICAgICAgICAgICAgZGF0YSA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5hY2Nlc3NfcmVnaXN0cnlfYWRkcmVzc19pdGVtLkFjY2Vzc1JlZ2lzdHJ5QWRkcmVzc0l0ZW0oCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHhDMmM0ZTFEYjQxRjBiQjk3OTk2RDBlRDA1NDJEMjE3MGQxNDZGQjY2JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfYWRkZWQgPSAnMjAyNC0wNy0wMVQwMDowMFonLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIG5leHQgPSAnTWpBeU15MHhNaTB4TXlBeU1Eb3pOam93T0M0ek1EST06TVRFd01BPT0nLAogICAgICAgICAgICAgICAgcHJldiA9ICdkR2hwY3lCcGN5QmhJSEJ5WlhacGIzVnpJR04xYmNuTnZjZz09JywKICAgICAgICAgICAgICAgIHRvdGFsID0gMTUwCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQWNjZXNzUmVnaXN0cnlDdXJyZW50U3RhdGVSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYWNjZXNzX3JlZ2lzdHJ5X2FkZHJlc3NfaXRlbS5BY2Nlc3NSZWdpc3RyeUFkZHJlc3NJdGVtKAogICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzB4QzJjNGUxRGI0MUYwYkI5Nzk5NkQwZUQwNTQyRDIxNzBkMTQ2RkI2NicsIAogICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2FkZGVkID0gJzIwMjQtMDctMDFUMDA6MDBaJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QWNjZXNzUmVnaXN0cnlDdXJyZW50U3RhdGVSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IEFjY2Vzc1JlZ2lzdHJ5Q3VycmVudFN0YXRlUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_access_registry_summary_response.py b/test/test_access_registry_summary_response.py index 49840f32..35902c0e 100644 --- a/test/test_access_registry_summary_response.py +++ b/test/test_access_registry_summary_response.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.access_registry_summary_response import ( - AccessRegistrySummaryResponse, -) - - -class TestAccessRegistrySummaryResponse(unittest.TestCase): - """AccessRegistrySummaryResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AccessRegistrySummaryResponse: - """Test AccessRegistrySummaryResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AccessRegistrySummaryResponse` - """ - model = AccessRegistrySummaryResponse() - if include_optional: - return AccessRegistrySummaryResponse( - total_active_addresses = 42 - ) - else: - return AccessRegistrySummaryResponse( - total_active_addresses = 42, - ) - """ - - def testAccessRegistrySummaryResponse(self): - """Test AccessRegistrySummaryResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY2Vzc19yZWdpc3RyeV9zdW1tYXJ5X3Jlc3BvbnNlIGltcG9ydCAoCiAgICBBY2Nlc3NSZWdpc3RyeVN1bW1hcnlSZXNwb25zZSwKKQoKCmNsYXNzIFRlc3RBY2Nlc3NSZWdpc3RyeVN1bW1hcnlSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBY2Nlc3NSZWdpc3RyeVN1bW1hcnlSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQWNjZXNzUmVnaXN0cnlTdW1tYXJ5UmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBBY2Nlc3NSZWdpc3RyeVN1bW1hcnlSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBY2Nlc3NSZWdpc3RyeVN1bW1hcnlSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFjY2Vzc1JlZ2lzdHJ5U3VtbWFyeVJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQWNjZXNzUmVnaXN0cnlTdW1tYXJ5UmVzcG9uc2UoCiAgICAgICAgICAgICAgICB0b3RhbF9hY3RpdmVfYWRkcmVzc2VzID0gNDIKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBY2Nlc3NSZWdpc3RyeVN1bW1hcnlSZXNwb25zZSgKICAgICAgICAgICAgICAgIHRvdGFsX2FjdGl2ZV9hZGRyZXNzZXMgPSA0MiwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBY2Nlc3NSZWdpc3RyeVN1bW1hcnlSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IEFjY2Vzc1JlZ2lzdHJ5U3VtbWFyeVJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_access_type.py b/test/test_access_type.py index e2c1f96a..f41799b3 100644 --- a/test/test_access_type.py +++ b/test/test_access_type.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.access_type import AccessType - - -class TestAccessType(unittest.TestCase): - """AccessType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AccessType: - """Test AccessType - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AccessType` - """ - model = AccessType() - if include_optional: - return AccessType( - type = 'PROVIDER_ACCOUNT', - provider_id = '', - account_id = '' - ) - else: - return AccessType( - type = 'PROVIDER_ACCOUNT', - provider_id = '', - account_id = '', - ) - """ - - def testAccessType(self): - """Test AccessType""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY2Vzc190eXBlIGltcG9ydCBBY2Nlc3NUeXBlCgoKY2xhc3MgVGVzdEFjY2Vzc1R5cGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQWNjZXNzVHlwZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQWNjZXNzVHlwZToKICAgICAgICAiIiJUZXN0IEFjY2Vzc1R5cGUKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQWNjZXNzVHlwZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFjY2Vzc1R5cGUoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBY2Nlc3NUeXBlKAogICAgICAgICAgICAgICAgdHlwZSA9ICdQUk9WSURFUl9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIHByb3ZpZGVyX2lkID0gJycsCiAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBY2Nlc3NUeXBlKAogICAgICAgICAgICAgICAgdHlwZSA9ICdQUk9WSURFUl9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIHByb3ZpZGVyX2lkID0gJycsCiAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QWNjZXNzVHlwZShzZWxmKToKICAgICAgICAiIiJUZXN0IEFjY2Vzc1R5cGUiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_account.py b/test/test_account.py index 3dd1f456..f9f661f1 100644 --- a/test/test_account.py +++ b/test/test_account.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.account import Account - - -class TestAccount(unittest.TestCase): - """Account unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Account: - """Test Account - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Account` - """ - model = Account() - if include_optional: - return Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT' - ) - else: - return Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', - ) - """ - - def testAccount(self): - """Test Account""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnQgaW1wb3J0IEFjY291bnQKCgpjbGFzcyBUZXN0QWNjb3VudCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBY2NvdW50IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBY2NvdW50OgogICAgICAgICIiIlRlc3QgQWNjb3VudAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBY2NvdW50YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQWNjb3VudCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFjY291bnQoCiAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsCiAgICAgICAgICAgICAgICBhY2NvdW50X3R5cGUgPSAnRVhDSEFOR0VfQUNDT1VOVCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBY2NvdW50KAogICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLAogICAgICAgICAgICAgICAgYWNjb3VudF90eXBlID0gJ0VYQ0hBTkdFX0FDQ09VTlQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFjY291bnQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBBY2NvdW50IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_account_access.py b/test/test_account_access.py index 035abde0..386adf36 100644 --- a/test/test_account_access.py +++ b/test/test_account_access.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.account_access import AccountAccess - - -class TestAccountAccess(unittest.TestCase): - """AccountAccess unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AccountAccess: - """Test AccountAccess - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AccountAccess` - """ - model = AccountAccess() - if include_optional: - return AccountAccess( - type = 'PROVIDER_ACCOUNT', - provider_id = '', - account_id = '' - ) - else: - return AccountAccess( - type = 'PROVIDER_ACCOUNT', - account_id = '', - ) - """ - - def testAccountAccess(self): - """Test AccountAccess""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfYWNjZXNzIGltcG9ydCBBY2NvdW50QWNjZXNzCgoKY2xhc3MgVGVzdEFjY291bnRBY2Nlc3ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQWNjb3VudEFjY2VzcyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQWNjb3VudEFjY2VzczoKICAgICAgICAiIiJUZXN0IEFjY291bnRBY2Nlc3MKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQWNjb3VudEFjY2Vzc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFjY291bnRBY2Nlc3MoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBY2NvdW50QWNjZXNzKAogICAgICAgICAgICAgICAgdHlwZSA9ICdQUk9WSURFUl9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIHByb3ZpZGVyX2lkID0gJycsCiAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBY2NvdW50QWNjZXNzKAogICAgICAgICAgICAgICAgdHlwZSA9ICdQUk9WSURFUl9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBY2NvdW50QWNjZXNzKHNlbGYpOgogICAgICAgICIiIlRlc3QgQWNjb3VudEFjY2VzcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_account_base.py b/test/test_account_base.py index 2b9abba4..ed0cb0ab 100644 --- a/test/test_account_base.py +++ b/test/test_account_base.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.account_base import AccountBase - - -class TestAccountBase(unittest.TestCase): - """AccountBase unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AccountBase: - """Test AccountBase - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AccountBase` - """ - model = AccountBase() - if include_optional: - return AccountBase( - id = '', - name = '' - ) - else: - return AccountBase( - id = '', - name = '', - ) - """ - - def testAccountBase(self): - """Test AccountBase""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfYmFzZSBpbXBvcnQgQWNjb3VudEJhc2UKCgpjbGFzcyBUZXN0QWNjb3VudEJhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQWNjb3VudEJhc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFjY291bnRCYXNlOgogICAgICAgICIiIlRlc3QgQWNjb3VudEJhc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQWNjb3VudEJhc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBY2NvdW50QmFzZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFjY291bnRCYXNlKAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFjY291bnRCYXNlKAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBY2NvdW50QmFzZShzZWxmKToKICAgICAgICAiIiJUZXN0IEFjY291bnRCYXNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_account_based_access_provider.py b/test/test_account_based_access_provider.py index 8425504b..ac10cb18 100644 --- a/test/test_account_based_access_provider.py +++ b/test/test_account_based_access_provider.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.account_based_access_provider import AccountBasedAccessProvider - - -class TestAccountBasedAccessProvider(unittest.TestCase): - """AccountBasedAccessProvider unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AccountBasedAccessProvider: - """Test AccountBasedAccessProvider - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AccountBasedAccessProvider` - """ - model = AccountBasedAccessProvider() - if include_optional: - return AccountBasedAccessProvider( - id = '', - name = '', - logo = '', - account_based = True, - manifest = {"assetTypes":["DIGITAL","FIAT"],"capabilities":["SPOT_TRADING","LIMIT_ORDERS"]}, - connected = True, - accounts = [ - {"id":"acc_9f4e2d8b1c6a5e73","name":"Main Trading Account"} - ] - ) - else: - return AccountBasedAccessProvider( - id = '', - name = '', - account_based = True, - manifest = {"assetTypes":["DIGITAL","FIAT"],"capabilities":["SPOT_TRADING","LIMIT_ORDERS"]}, - connected = True, - ) - """ - - def testAccountBasedAccessProvider(self): - """Test AccountBasedAccessProvider""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfYmFzZWRfYWNjZXNzX3Byb3ZpZGVyIGltcG9ydCBBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlcgoKCmNsYXNzIFRlc3RBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlciB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQWNjb3VudEJhc2VkQWNjZXNzUHJvdmlkZXI6CiAgICAgICAgIiIiVGVzdCBBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlcgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlcmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFjY291bnRCYXNlZEFjY2Vzc1Byb3ZpZGVyKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQWNjb3VudEJhc2VkQWNjZXNzUHJvdmlkZXIoCiAgICAgICAgICAgICAgICBpZCA9ICcnLAogICAgICAgICAgICAgICAgbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgbG9nbyA9ICcnLAogICAgICAgICAgICAgICAgYWNjb3VudF9iYXNlZCA9IFRydWUsCiAgICAgICAgICAgICAgICBtYW5pZmVzdCA9IHsib3JkZXIiOnsic3VwcG9ydGVkIjp0cnVlLCJleGVjdXRpb25UeXBlcyI6WyJNQVJLRVQiLCJRVU9URSJdLCJzZXR0bGVtZW50VHlwZXMiOlsiRFZQIl19LCJxdW90ZSI6eyJzdXBwb3J0ZWQiOnRydWUsInNldHRsZW1lbnRUeXBlcyI6WyJEVlAiXX0sInJhdGUiOnsic3VwcG9ydGVkIjp0cnVlfX0sCiAgICAgICAgICAgICAgICBjb25uZWN0ZWQgPSBUcnVlLAogICAgICAgICAgICAgICAgYWNjb3VudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgeyJpZCI6ImFjY185ZjRlMmQ4YjFjNmE1ZTczIiwibmFtZSI6Ik1haW4gVHJhZGluZyBBY2NvdW50In0KICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQWNjb3VudEJhc2VkQWNjZXNzUHJvdmlkZXIoCiAgICAgICAgICAgICAgICBpZCA9ICcnLAogICAgICAgICAgICAgICAgbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgYWNjb3VudF9iYXNlZCA9IFRydWUsCiAgICAgICAgICAgICAgICBtYW5pZmVzdCA9IHsib3JkZXIiOnsic3VwcG9ydGVkIjp0cnVlLCJleGVjdXRpb25UeXBlcyI6WyJNQVJLRVQiLCJRVU9URSJdLCJzZXR0bGVtZW50VHlwZXMiOlsiRFZQIl19LCJxdW90ZSI6eyJzdXBwb3J0ZWQiOnRydWUsInNldHRsZW1lbnRUeXBlcyI6WyJEVlAiXX0sInJhdGUiOnsic3VwcG9ydGVkIjp0cnVlfX0sCiAgICAgICAgICAgICAgICBjb25uZWN0ZWQgPSBUcnVlLAogICAgICAgICAgICAgICAgYWNjb3VudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgeyJpZCI6ImFjY185ZjRlMmQ4YjFjNmE1ZTczIiwibmFtZSI6Ik1haW4gVHJhZGluZyBBY2NvdW50In0KICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFjY291bnRCYXNlZEFjY2Vzc1Byb3ZpZGVyKHNlbGYpOgogICAgICAgICIiIlRlc3QgQWNjb3VudEJhc2VkQWNjZXNzUHJvdmlkZXIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_account_based_access_provider_info.py b/test/test_account_based_access_provider_info.py new file mode 100644 index 00000000..339b3b84 --- /dev/null +++ b/test/test_account_based_access_provider_info.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfYmFzZWRfYWNjZXNzX3Byb3ZpZGVyX2luZm8gaW1wb3J0ICgKICAgIEFjY291bnRCYXNlZEFjY2Vzc1Byb3ZpZGVySW5mbywKKQoKCmNsYXNzIFRlc3RBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlckluZm8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQWNjb3VudEJhc2VkQWNjZXNzUHJvdmlkZXJJbmZvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlckluZm86CiAgICAgICAgIiIiVGVzdCBBY2NvdW50QmFzZWRBY2Nlc3NQcm92aWRlckluZm8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQWNjb3VudEJhc2VkQWNjZXNzUHJvdmlkZXJJbmZvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQWNjb3VudEJhc2VkQWNjZXNzUHJvdmlkZXJJbmZvKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQWNjb3VudEJhc2VkQWNjZXNzUHJvdmlkZXJJbmZvKAogICAgICAgICAgICAgICAgY29ubmVjdGVkID0gVHJ1ZSwKICAgICAgICAgICAgICAgIGFjY291bnRzID0gWwogICAgICAgICAgICAgICAgICAgIHsiaWQiOiJhY2NfOWY0ZTJkOGIxYzZhNWU3MyIsIm5hbWUiOiJNYWluIFRyYWRpbmcgQWNjb3VudCJ9CiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFjY291bnRCYXNlZEFjY2Vzc1Byb3ZpZGVySW5mbygKICAgICAgICAgICAgICAgIGNvbm5lY3RlZCA9IFRydWUsCiAgICAgICAgICAgICAgICBhY2NvdW50cyA9IFsKICAgICAgICAgICAgICAgICAgICB7ImlkIjoiYWNjXzlmNGUyZDhiMWM2YTVlNzMiLCJuYW1lIjoiTWFpbiBUcmFkaW5nIEFjY291bnQifQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QWNjb3VudEJhc2VkQWNjZXNzUHJvdmlkZXJJbmZvKHNlbGYpOgogICAgICAgICIiIlRlc3QgQWNjb3VudEJhc2VkQWNjZXNzUHJvdmlkZXJJbmZvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_account_based_provider_details.py b/test/test_account_based_provider_details.py new file mode 100644 index 00000000..616174af --- /dev/null +++ b/test/test_account_based_provider_details.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfYmFzZWRfcHJvdmlkZXJfZGV0YWlscyBpbXBvcnQgQWNjb3VudEJhc2VkUHJvdmlkZXJEZXRhaWxzCgoKY2xhc3MgVGVzdEFjY291bnRCYXNlZFByb3ZpZGVyRGV0YWlscyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBY2NvdW50QmFzZWRQcm92aWRlckRldGFpbHMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFjY291bnRCYXNlZFByb3ZpZGVyRGV0YWlsczoKICAgICAgICAiIiJUZXN0IEFjY291bnRCYXNlZFByb3ZpZGVyRGV0YWlscwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBY2NvdW50QmFzZWRQcm92aWRlckRldGFpbHNgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBY2NvdW50QmFzZWRQcm92aWRlckRldGFpbHMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBY2NvdW50QmFzZWRQcm92aWRlckRldGFpbHMoCiAgICAgICAgICAgICAgICBpZCA9ICcnLAogICAgICAgICAgICAgICAgbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgbG9nbyA9ICcnLAogICAgICAgICAgICAgICAgYWNjb3VudF9iYXNlZCA9IFRydWUsCiAgICAgICAgICAgICAgICBtYW5pZmVzdCA9IHsib3JkZXIiOnsic3VwcG9ydGVkIjp0cnVlLCJleGVjdXRpb25UeXBlcyI6WyJNQVJLRVQiLCJRVU9URSJdLCJzZXR0bGVtZW50VHlwZXMiOlsiRFZQIl19LCJxdW90ZSI6eyJzdXBwb3J0ZWQiOnRydWUsInNldHRsZW1lbnRUeXBlcyI6WyJEVlAiXX0sInJhdGUiOnsic3VwcG9ydGVkIjp0cnVlfX0sCiAgICAgICAgICAgICAgICBjb25uZWN0ZWQgPSBUcnVlLAogICAgICAgICAgICAgICAgYWNjb3VudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgeyJpZCI6ImFjY185ZjRlMmQ4YjFjNmE1ZTczIiwibmFtZSI6Ik1haW4gVHJhZGluZyBBY2NvdW50In0KICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQWNjb3VudEJhc2VkUHJvdmlkZXJEZXRhaWxzKAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnJywKICAgICAgICAgICAgICAgIGFjY291bnRfYmFzZWQgPSBUcnVlLAogICAgICAgICAgICAgICAgbWFuaWZlc3QgPSB7Im9yZGVyIjp7InN1cHBvcnRlZCI6dHJ1ZSwiZXhlY3V0aW9uVHlwZXMiOlsiTUFSS0VUIiwiUVVPVEUiXSwic2V0dGxlbWVudFR5cGVzIjpbIkRWUCJdfSwicXVvdGUiOnsic3VwcG9ydGVkIjp0cnVlLCJzZXR0bGVtZW50VHlwZXMiOlsiRFZQIl19LCJyYXRlIjp7InN1cHBvcnRlZCI6dHJ1ZX19LAogICAgICAgICAgICAgICAgY29ubmVjdGVkID0gVHJ1ZSwKICAgICAgICAgICAgICAgIGFjY291bnRzID0gWwogICAgICAgICAgICAgICAgICAgIHsiaWQiOiJhY2NfOWY0ZTJkOGIxYzZhNWU3MyIsIm5hbWUiOiJNYWluIFRyYWRpbmcgQWNjb3VudCJ9CiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBY2NvdW50QmFzZWRQcm92aWRlckRldGFpbHMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBBY2NvdW50QmFzZWRQcm92aWRlckRldGFpbHMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_account_config.py b/test/test_account_config.py index 77d5a00b..63549553 100644 --- a/test/test_account_config.py +++ b/test/test_account_config.py @@ -1,77 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.account_config import AccountConfig - - -class TestAccountConfig(unittest.TestCase): - """AccountConfig unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AccountConfig: - """Test AccountConfig - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AccountConfig` - """ - model = AccountConfig() - if include_optional: - return AccountConfig( - type = [ - 'VAULT' - ], - sub_type = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - sub_type = 'INTERNAL', - address = '0x123...', ) - ], - ids = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - sub_type = 'INTERNAL', - address = '0x123...', ) - ], - tags = [ - fireblocks.models.policy_tag.PolicyTag( - id = 'tag_001', ) - ], - operator = 'INCLUDES', - match_from = 'ACCOUNT' - ) - else: - return AccountConfig( - operator = 'INCLUDES', - ) - """ - - def testAccountConfig(self): - """Test AccountConfig""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfY29uZmlnIGltcG9ydCBBY2NvdW50Q29uZmlnCgoKY2xhc3MgVGVzdEFjY291bnRDb25maWcodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQWNjb3VudENvbmZpZyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQWNjb3VudENvbmZpZzoKICAgICAgICAiIiJUZXN0IEFjY291bnRDb25maWcKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQWNjb3VudENvbmZpZ2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFjY291bnRDb25maWcoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBY2NvdW50Q29uZmlnKAogICAgICAgICAgICAgICAgdHlwZSA9IFsKICAgICAgICAgICAgICAgICAgICAnVkFVTFQnCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHN1Yl90eXBlID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaWRlbnRpZmllci5BY2NvdW50SWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVCcsIAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdhY2NvdW50MTIzJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl90eXBlID0gJ0lOVEVSTkFMJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHgxMjMuLi4nLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGlkcyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2lkZW50aWZpZXIuQWNjb3VudElkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnYWNjb3VudDEyMycsIAogICAgICAgICAgICAgICAgICAgICAgICBzdWJfdHlwZSA9ICdJTlRFUk5BTCcsIAogICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzB4MTIzLi4uJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICB0YWdzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV90YWcuUG9saWN5VGFnKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICd0YWdfMDAxJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICdJTkNMVURFUycsCiAgICAgICAgICAgICAgICBtYXRjaF9mcm9tID0gJ0FDQ09VTlQnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQWNjb3VudENvbmZpZygKICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gJ0lOQ0xVREVTJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBY2NvdW50Q29uZmlnKHNlbGYpOgogICAgICAgICIiIlRlc3QgQWNjb3VudENvbmZpZyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_account_holder_details.py b/test/test_account_holder_details.py index 78f66ac2..c6e46fb0 100644 --- a/test/test_account_holder_details.py +++ b/test/test_account_holder_details.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.account_holder_details import AccountHolderDetails - - -class TestAccountHolderDetails(unittest.TestCase): - """AccountHolderDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AccountHolderDetails: - """Test AccountHolderDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AccountHolderDetails` - """ - model = AccountHolderDetails() - if include_optional: - return AccountHolderDetails( - name = '', - city = '', - country = '', - subdivision = '', - address = '', - postal_code = '' - ) - else: - return AccountHolderDetails( - name = '', - ) - """ - - def testAccountHolderDetails(self): - """Test AccountHolderDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaG9sZGVyX2RldGFpbHMgaW1wb3J0IEFjY291bnRIb2xkZXJEZXRhaWxzCgoKY2xhc3MgVGVzdEFjY291bnRIb2xkZXJEZXRhaWxzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFjY291bnRIb2xkZXJEZXRhaWxzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBY2NvdW50SG9sZGVyRGV0YWlsczoKICAgICAgICAiIiJUZXN0IEFjY291bnRIb2xkZXJEZXRhaWxzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFjY291bnRIb2xkZXJEZXRhaWxzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQWNjb3VudEhvbGRlckRldGFpbHMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBY2NvdW50SG9sZGVyRGV0YWlscygKICAgICAgICAgICAgICAgIG5hbWUgPSAnJywKICAgICAgICAgICAgICAgIGNpdHkgPSAnJywKICAgICAgICAgICAgICAgIGNvdW50cnkgPSAnJywKICAgICAgICAgICAgICAgIHN1YmRpdmlzaW9uID0gJycsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0gJycsCiAgICAgICAgICAgICAgICBwb3N0YWxfY29kZSA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQWNjb3VudEhvbGRlckRldGFpbHMoCiAgICAgICAgICAgICAgICBuYW1lID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QWNjb3VudEhvbGRlckRldGFpbHMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBBY2NvdW50SG9sZGVyRGV0YWlscyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_account_identifier.py b/test/test_account_identifier.py index fe59ebf3..278ff7c4 100644 --- a/test/test_account_identifier.py +++ b/test/test_account_identifier.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.account_identifier import AccountIdentifier - - -class TestAccountIdentifier(unittest.TestCase): - """AccountIdentifier unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AccountIdentifier: - """Test AccountIdentifier - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AccountIdentifier` - """ - model = AccountIdentifier() - if include_optional: - return AccountIdentifier( - type = 'VAULT', - id = 'account123', - sub_type = 'INTERNAL', - address = '0x123...' - ) - else: - return AccountIdentifier( - type = 'VAULT', - ) - """ - - def testAccountIdentifier(self): - """Test AccountIdentifier""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaWRlbnRpZmllciBpbXBvcnQgQWNjb3VudElkZW50aWZpZXIKCgpjbGFzcyBUZXN0QWNjb3VudElkZW50aWZpZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQWNjb3VudElkZW50aWZpZXIgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFjY291bnRJZGVudGlmaWVyOgogICAgICAgICIiIlRlc3QgQWNjb3VudElkZW50aWZpZXIKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQWNjb3VudElkZW50aWZpZXJgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBY2NvdW50SWRlbnRpZmllcigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFjY291bnRJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVCcsCiAgICAgICAgICAgICAgICBpZCA9ICdhY2NvdW50MTIzJywKICAgICAgICAgICAgICAgIHN1Yl90eXBlID0gJ0lOVEVSTkFMJywKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHgxMjMuLi4nCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQWNjb3VudElkZW50aWZpZXIoCiAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBY2NvdW50SWRlbnRpZmllcihzZWxmKToKICAgICAgICAiIiJUZXN0IEFjY291bnRJZGVudGlmaWVyIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_account_reference.py b/test/test_account_reference.py index cfd97850..08aeb6c9 100644 --- a/test/test_account_reference.py +++ b/test/test_account_reference.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.account_reference import AccountReference - - -class TestAccountReference(unittest.TestCase): - """AccountReference unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AccountReference: - """Test AccountReference - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AccountReference` - """ - model = AccountReference() - if include_optional: - return AccountReference( - type = 'ONE_TIME_ADDRESS', - account_id = '', - address = '', - tag = '' - ) - else: - return AccountReference( - type = 'ONE_TIME_ADDRESS', - account_id = '', - address = '', - ) - """ - - def testAccountReference(self): - """Test AccountReference""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfcmVmZXJlbmNlIGltcG9ydCBBY2NvdW50UmVmZXJlbmNlCgoKY2xhc3MgVGVzdEFjY291bnRSZWZlcmVuY2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQWNjb3VudFJlZmVyZW5jZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQWNjb3VudFJlZmVyZW5jZToKICAgICAgICAiIiJUZXN0IEFjY291bnRSZWZlcmVuY2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQWNjb3VudFJlZmVyZW5jZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFjY291bnRSZWZlcmVuY2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBY2NvdW50UmVmZXJlbmNlKAogICAgICAgICAgICAgICAgdHlwZSA9ICdPTkVfVElNRV9BRERSRVNTJywKICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnJywKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnJywKICAgICAgICAgICAgICAgIHRhZyA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQWNjb3VudFJlZmVyZW5jZSgKICAgICAgICAgICAgICAgIHR5cGUgPSAnT05FX1RJTUVfQUREUkVTUycsCiAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QWNjb3VudFJlZmVyZW5jZShzZWxmKToKICAgICAgICAiIiJUZXN0IEFjY291bnRSZWZlcmVuY2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_account_type.py b/test/test_account_type.py index 88db936d..1b38777e 100644 --- a/test/test_account_type.py +++ b/test/test_account_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.account_type import AccountType - - -class TestAccountType(unittest.TestCase): - """AccountType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testAccountType(self): - """Test AccountType""" - # inst = AccountType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfdHlwZSBpbXBvcnQgQWNjb3VudFR5cGUKCgpjbGFzcyBUZXN0QWNjb3VudFR5cGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQWNjb3VudFR5cGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0QWNjb3VudFR5cGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBBY2NvdW50VHlwZSIiIgogICAgICAgICMgaW5zdCA9IEFjY291bnRUeXBlKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_account_type2.py b/test/test_account_type2.py index a846d95c..94a0fe1b 100644 --- a/test/test_account_type2.py +++ b/test/test_account_type2.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.account_type2 import AccountType2 - - -class TestAccountType2(unittest.TestCase): - """AccountType2 unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testAccountType2(self): - """Test AccountType2""" - # inst = AccountType2() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfdHlwZTIgaW1wb3J0IEFjY291bnRUeXBlMgoKCmNsYXNzIFRlc3RBY2NvdW50VHlwZTIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQWNjb3VudFR5cGUyIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdEFjY291bnRUeXBlMihzZWxmKToKICAgICAgICAiIiJUZXN0IEFjY291bnRUeXBlMiIiIgogICAgICAgICMgaW5zdCA9IEFjY291bnRUeXBlMigpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_ach_account_type.py b/test/test_ach_account_type.py index bd270014..00148121 100644 --- a/test/test_ach_account_type.py +++ b/test/test_ach_account_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.ach_account_type import AchAccountType - - -class TestAchAccountType(unittest.TestCase): - """AchAccountType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testAchAccountType(self): - """Test AchAccountType""" - # inst = AchAccountType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjaF9hY2NvdW50X3R5cGUgaW1wb3J0IEFjaEFjY291bnRUeXBlCgoKY2xhc3MgVGVzdEFjaEFjY291bnRUeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFjaEFjY291bnRUeXBlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdEFjaEFjY291bnRUeXBlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQWNoQWNjb3VudFR5cGUiIiIKICAgICAgICAjIGluc3QgPSBBY2hBY2NvdW50VHlwZSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_ach_address.py b/test/test_ach_address.py index 471a62d5..7bd02dc6 100644 --- a/test/test_ach_address.py +++ b/test/test_ach_address.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.ach_address import AchAddress - - -class TestAchAddress(unittest.TestCase): - """AchAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AchAddress: - """Test AchAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AchAddress` - """ - model = AchAddress() - if include_optional: - return AchAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - bank_name = '', - bank_account_number = '4807288800', - routing_number = '048072888', - account_type = 'CHECKING' - ) - else: - return AchAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - bank_account_number = '4807288800', - routing_number = '048072888', - account_type = 'CHECKING', - ) - """ - - def testAchAddress(self): - """Test AchAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjaF9hZGRyZXNzIGltcG9ydCBBY2hBZGRyZXNzCgoKY2xhc3MgVGVzdEFjaEFkZHJlc3ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQWNoQWRkcmVzcyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQWNoQWRkcmVzczoKICAgICAgICAiIiJUZXN0IEFjaEFkZHJlc3MKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQWNoQWRkcmVzc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFjaEFkZHJlc3MoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBY2hBZGRyZXNzKAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXIgPSB7Im5hbWUiOiJKb2huIFNtaXRoIiwiY2l0eSI6Ik5ldyBZb3JrIiwiY291bnRyeSI6IlVTIiwic3ViZGl2aXNpb24iOiJOWSIsImFkZHJlc3MiOiIxMjMgV2FsbCBTdHJlZXQsIEFwdCA0QiIsInBvc3RhbENvZGUiOiIxMDAwNSJ9LAogICAgICAgICAgICAgICAgYmFua19uYW1lID0gJycsCiAgICAgICAgICAgICAgICBiYW5rX2FjY291bnRfbnVtYmVyID0gJzQ4MDcyODg4MDAnLAogICAgICAgICAgICAgICAgcm91dGluZ19udW1iZXIgPSAnMDQ4MDcyODg4JywKICAgICAgICAgICAgICAgIGFjY291bnRfdHlwZSA9ICdDSEVDS0lORycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBY2hBZGRyZXNzKAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXIgPSB7Im5hbWUiOiJKb2huIFNtaXRoIiwiY2l0eSI6Ik5ldyBZb3JrIiwiY291bnRyeSI6IlVTIiwic3ViZGl2aXNpb24iOiJOWSIsImFkZHJlc3MiOiIxMjMgV2FsbCBTdHJlZXQsIEFwdCA0QiIsInBvc3RhbENvZGUiOiIxMDAwNSJ9LAogICAgICAgICAgICAgICAgYmFua19hY2NvdW50X251bWJlciA9ICc0ODA3Mjg4ODAwJywKICAgICAgICAgICAgICAgIHJvdXRpbmdfbnVtYmVyID0gJzA0ODA3Mjg4OCcsCiAgICAgICAgICAgICAgICBhY2NvdW50X3R5cGUgPSAnQ0hFQ0tJTkcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFjaEFkZHJlc3Moc2VsZik6CiAgICAgICAgIiIiVGVzdCBBY2hBZGRyZXNzIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_ach_destination.py b/test/test_ach_destination.py index 81d18306..3f9f75c7 100644 --- a/test/test_ach_destination.py +++ b/test/test_ach_destination.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.ach_destination import AchDestination - - -class TestAchDestination(unittest.TestCase): - """AchDestination unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AchDestination: - """Test AchDestination - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AchDestination` - """ - model = AchDestination() - if include_optional: - return AchDestination( - type = 'ACH', - address = {"accountHolder":{"name":"Sarah Johnson","city":"Austin","country":"US","subdivision":"TX","address":"456 Oak Avenue","postalCode":"78701"},"bankName":"Chase Bank","bankAccountNumber":"1234567890123","routingNumber":"021000021","accountType":"CHECKING"} - ) - else: - return AchDestination( - type = 'ACH', - address = {"accountHolder":{"name":"Sarah Johnson","city":"Austin","country":"US","subdivision":"TX","address":"456 Oak Avenue","postalCode":"78701"},"bankName":"Chase Bank","bankAccountNumber":"1234567890123","routingNumber":"021000021","accountType":"CHECKING"}, - ) - """ - - def testAchDestination(self): - """Test AchDestination""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjaF9kZXN0aW5hdGlvbiBpbXBvcnQgQWNoRGVzdGluYXRpb24KCgpjbGFzcyBUZXN0QWNoRGVzdGluYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQWNoRGVzdGluYXRpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFjaERlc3RpbmF0aW9uOgogICAgICAgICIiIlRlc3QgQWNoRGVzdGluYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQWNoRGVzdGluYXRpb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBY2hEZXN0aW5hdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFjaERlc3RpbmF0aW9uKAogICAgICAgICAgICAgICAgdHlwZSA9ICdBQ0gnLAogICAgICAgICAgICAgICAgYWRkcmVzcyA9IHsiYWNjb3VudEhvbGRlciI6eyJuYW1lIjoiU2FyYWggSm9obnNvbiIsImNpdHkiOiJBdXN0aW4iLCJjb3VudHJ5IjoiVVMiLCJzdWJkaXZpc2lvbiI6IlRYIiwiYWRkcmVzcyI6IjQ1NiBPYWsgQXZlbnVlIiwicG9zdGFsQ29kZSI6Ijc4NzAxIn0sImJhbmtOYW1lIjoiQ2hhc2UgQmFuayIsImJhbmtBY2NvdW50TnVtYmVyIjoiMTIzNDU2Nzg5MDEyMyIsInJvdXRpbmdOdW1iZXIiOiIwMjEwMDAwMjEiLCJhY2NvdW50VHlwZSI6IkNIRUNLSU5HIn0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBY2hEZXN0aW5hdGlvbigKICAgICAgICAgICAgICAgIHR5cGUgPSAnQUNIJywKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSB7ImFjY291bnRIb2xkZXIiOnsibmFtZSI6IlNhcmFoIEpvaG5zb24iLCJjaXR5IjoiQXVzdGluIiwiY291bnRyeSI6IlVTIiwic3ViZGl2aXNpb24iOiJUWCIsImFkZHJlc3MiOiI0NTYgT2FrIEF2ZW51ZSIsInBvc3RhbENvZGUiOiI3ODcwMSJ9LCJiYW5rTmFtZSI6IkNoYXNlIEJhbmsiLCJiYW5rQWNjb3VudE51bWJlciI6IjEyMzQ1Njc4OTAxMjMiLCJyb3V0aW5nTnVtYmVyIjoiMDIxMDAwMDIxIiwiYWNjb3VudFR5cGUiOiJDSEVDS0lORyJ9LAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFjaERlc3RpbmF0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgQWNoRGVzdGluYXRpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_ach_payment_info.py b/test/test_ach_payment_info.py index 41376529..d88dee69 100644 --- a/test/test_ach_payment_info.py +++ b/test/test_ach_payment_info.py @@ -1,69 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.ach_payment_info import AchPaymentInfo - - -class TestAchPaymentInfo(unittest.TestCase): - """AchPaymentInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AchPaymentInfo: - """Test AchPaymentInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AchPaymentInfo` - """ - model = AchPaymentInfo() - if include_optional: - return AchPaymentInfo( - rail = 'ACH', - addressing_system = 'ACH', - account_holder_given_name = 'John', - account_holder_surname = 'Smith', - country = 'US', - account_number = '1234567890', - routing_number = '021000021', - account_type = 'CHECKING' - ) - else: - return AchPaymentInfo( - rail = 'ACH', - addressing_system = 'ACH', - account_holder_given_name = 'John', - account_holder_surname = 'Smith', - country = 'US', - account_number = '1234567890', - routing_number = '021000021', - account_type = 'CHECKING', - ) - """ - - def testAchPaymentInfo(self): - """Test AchPaymentInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFjaF9wYXltZW50X2luZm8gaW1wb3J0IEFjaFBheW1lbnRJbmZvCgoKY2xhc3MgVGVzdEFjaFBheW1lbnRJbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFjaFBheW1lbnRJbmZvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBY2hQYXltZW50SW5mbzoKICAgICAgICAiIiJUZXN0IEFjaFBheW1lbnRJbmZvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFjaFBheW1lbnRJbmZvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQWNoUGF5bWVudEluZm8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBY2hQYXltZW50SW5mbygKICAgICAgICAgICAgICAgIHJhaWwgPSAnQUNIJywKICAgICAgICAgICAgICAgIGFkZHJlc3Npbmdfc3lzdGVtID0gJ0FDSCcsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9naXZlbl9uYW1lID0gJ0pvaG4nLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfc3VybmFtZSA9ICdTbWl0aCcsCiAgICAgICAgICAgICAgICBjb3VudHJ5ID0gJ1VTJywKICAgICAgICAgICAgICAgIGFjY291bnRfbnVtYmVyID0gJzEyMzQ1Njc4OTAnLAogICAgICAgICAgICAgICAgcm91dGluZ19udW1iZXIgPSAnMDIxMDAwMDIxJywKICAgICAgICAgICAgICAgIGFjY291bnRfdHlwZSA9ICdDSEVDS0lORycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBY2hQYXltZW50SW5mbygKICAgICAgICAgICAgICAgIHJhaWwgPSAnQUNIJywKICAgICAgICAgICAgICAgIGFkZHJlc3Npbmdfc3lzdGVtID0gJ0FDSCcsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9naXZlbl9uYW1lID0gJ0pvaG4nLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfc3VybmFtZSA9ICdTbWl0aCcsCiAgICAgICAgICAgICAgICBjb3VudHJ5ID0gJ1VTJywKICAgICAgICAgICAgICAgIGFjY291bnRfbnVtYmVyID0gJzEyMzQ1Njc4OTAnLAogICAgICAgICAgICAgICAgcm91dGluZ19udW1iZXIgPSAnMDIxMDAwMDIxJywKICAgICAgICAgICAgICAgIGFjY291bnRfdHlwZSA9ICdDSEVDS0lORycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QWNoUGF5bWVudEluZm8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBBY2hQYXltZW50SW5mbyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_adapter_processing_result.py b/test/test_adapter_processing_result.py index 1380723d..bcbf39ac 100644 --- a/test/test_adapter_processing_result.py +++ b/test/test_adapter_processing_result.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.adapter_processing_result import AdapterProcessingResult - - -class TestAdapterProcessingResult(unittest.TestCase): - """AdapterProcessingResult unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AdapterProcessingResult: - """Test AdapterProcessingResult - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AdapterProcessingResult` - """ - model = AdapterProcessingResult() - if include_optional: - return AdapterProcessingResult( - input_token_link_id = '', - adapter_link_id = '' - ) - else: - return AdapterProcessingResult( - input_token_link_id = '', - adapter_link_id = '', - ) - """ - - def testAdapterProcessingResult(self): - """Test AdapterProcessingResult""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkYXB0ZXJfcHJvY2Vzc2luZ19yZXN1bHQgaW1wb3J0IEFkYXB0ZXJQcm9jZXNzaW5nUmVzdWx0CgoKY2xhc3MgVGVzdEFkYXB0ZXJQcm9jZXNzaW5nUmVzdWx0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFkYXB0ZXJQcm9jZXNzaW5nUmVzdWx0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBZGFwdGVyUHJvY2Vzc2luZ1Jlc3VsdDoKICAgICAgICAiIiJUZXN0IEFkYXB0ZXJQcm9jZXNzaW5nUmVzdWx0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFkYXB0ZXJQcm9jZXNzaW5nUmVzdWx0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQWRhcHRlclByb2Nlc3NpbmdSZXN1bHQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBZGFwdGVyUHJvY2Vzc2luZ1Jlc3VsdCgKICAgICAgICAgICAgICAgIGlucHV0X3Rva2VuX2xpbmtfaWQgPSAnJywKICAgICAgICAgICAgICAgIGFkYXB0ZXJfbGlua19pZCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQWRhcHRlclByb2Nlc3NpbmdSZXN1bHQoCiAgICAgICAgICAgICAgICBpbnB1dF90b2tlbl9saW5rX2lkID0gJycsCiAgICAgICAgICAgICAgICBhZGFwdGVyX2xpbmtfaWQgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBZGFwdGVyUHJvY2Vzc2luZ1Jlc3VsdChzZWxmKToKICAgICAgICAiIiJUZXN0IEFkYXB0ZXJQcm9jZXNzaW5nUmVzdWx0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_add_abi_request_dto.py b/test/test_add_abi_request_dto.py index d1403eaf..8d11a57e 100644 --- a/test/test_add_abi_request_dto.py +++ b/test/test_add_abi_request_dto.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.add_abi_request_dto import AddAbiRequestDto - - -class TestAddAbiRequestDto(unittest.TestCase): - """AddAbiRequestDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AddAbiRequestDto: - """Test AddAbiRequestDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AddAbiRequestDto` - """ - model = AddAbiRequestDto() - if include_optional: - return AddAbiRequestDto( - contract_address = '0xfff9976782d46cc05630d1f6ebab18b2324d6b14', - base_asset_id = 'ETH', - abi = [{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"}], - name = 'MyContract' - ) - else: - return AddAbiRequestDto( - contract_address = '0xfff9976782d46cc05630d1f6ebab18b2324d6b14', - base_asset_id = 'ETH', - abi = [{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"}], - ) - """ - - def testAddAbiRequestDto(self): - """Test AddAbiRequestDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZF9hYmlfcmVxdWVzdF9kdG8gaW1wb3J0IEFkZEFiaVJlcXVlc3REdG8KCgpjbGFzcyBUZXN0QWRkQWJpUmVxdWVzdER0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBZGRBYmlSZXF1ZXN0RHRvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBZGRBYmlSZXF1ZXN0RHRvOgogICAgICAgICIiIlRlc3QgQWRkQWJpUmVxdWVzdER0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBZGRBYmlSZXF1ZXN0RHRvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQWRkQWJpUmVxdWVzdER0bygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFkZEFiaVJlcXVlc3REdG8oCiAgICAgICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzID0gJzB4ZmZmOTk3Njc4MmQ0NmNjMDU2MzBkMWY2ZWJhYjE4YjIzMjRkNmIxNCcsCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0X2lkID0gJ0VUSCcsCiAgICAgICAgICAgICAgICBhYmkgPSBbeyJpbnB1dHMiOlt7ImludGVybmFsVHlwZSI6ImFkZHJlc3MiLCJuYW1lIjoidG8iLCJ0eXBlIjoiYWRkcmVzcyJ9LHsiaW50ZXJuYWxUeXBlIjoidWludDI1NiIsIm5hbWUiOiJhbW91bnQiLCJ0eXBlIjoidWludDI1NiJ9XSwic3RhdGVNdXRhYmlsaXR5Ijoibm9ucGF5YWJsZSIsInR5cGUiOiJmdW5jdGlvbiIsIm5hbWUiOiJtaW50In1dLAogICAgICAgICAgICAgICAgbmFtZSA9ICdNeUNvbnRyYWN0JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFkZEFiaVJlcXVlc3REdG8oCiAgICAgICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzID0gJzB4ZmZmOTk3Njc4MmQ0NmNjMDU2MzBkMWY2ZWJhYjE4YjIzMjRkNmIxNCcsCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0X2lkID0gJ0VUSCcsCiAgICAgICAgICAgICAgICBhYmkgPSBbeyJpbnB1dHMiOlt7ImludGVybmFsVHlwZSI6ImFkZHJlc3MiLCJuYW1lIjoidG8iLCJ0eXBlIjoiYWRkcmVzcyJ9LHsiaW50ZXJuYWxUeXBlIjoidWludDI1NiIsIm5hbWUiOiJhbW91bnQiLCJ0eXBlIjoidWludDI1NiJ9XSwic3RhdGVNdXRhYmlsaXR5Ijoibm9ucGF5YWJsZSIsInR5cGUiOiJmdW5jdGlvbiIsIm5hbWUiOiJtaW50In1dLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFkZEFiaVJlcXVlc3REdG8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBBZGRBYmlSZXF1ZXN0RHRvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_add_asset_to_external_wallet_request.py b/test/test_add_asset_to_external_wallet_request.py index 89be0da9..1b7e7920 100644 --- a/test/test_add_asset_to_external_wallet_request.py +++ b/test/test_add_asset_to_external_wallet_request.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.add_asset_to_external_wallet_request import ( - AddAssetToExternalWalletRequest, -) - - -class TestAddAssetToExternalWalletRequest(unittest.TestCase): - """AddAssetToExternalWalletRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AddAssetToExternalWalletRequest: - """Test AddAssetToExternalWalletRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AddAssetToExternalWalletRequest` - """ - model = AddAssetToExternalWalletRequest() - if include_optional: - return AddAssetToExternalWalletRequest( - address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - tag = '12345', - additional_info = fireblocks.models.additional_info_request_additional_info.AdditionalInfoRequest_additionalInfo() - ) - else: - return AddAssetToExternalWalletRequest( - address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - additional_info = fireblocks.models.additional_info_request_additional_info.AdditionalInfoRequest_additionalInfo(), - ) - """ - - def testAddAssetToExternalWalletRequest(self): - """Test AddAssetToExternalWalletRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZF9hc3NldF90b19leHRlcm5hbF93YWxsZXRfcmVxdWVzdCBpbXBvcnQgKAogICAgQWRkQXNzZXRUb0V4dGVybmFsV2FsbGV0UmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RBZGRBc3NldFRvRXh0ZXJuYWxXYWxsZXRSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFkZEFzc2V0VG9FeHRlcm5hbFdhbGxldFJlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFkZEFzc2V0VG9FeHRlcm5hbFdhbGxldFJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBBZGRBc3NldFRvRXh0ZXJuYWxXYWxsZXRSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFkZEFzc2V0VG9FeHRlcm5hbFdhbGxldFJlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBZGRBc3NldFRvRXh0ZXJuYWxXYWxsZXRSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQWRkQXNzZXRUb0V4dGVybmFsV2FsbGV0UmVxdWVzdCgKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMUExelAxZVA1UUdlZmkyRE1QVGZUTDVTTG12N0RpdmZOYScsCiAgICAgICAgICAgICAgICB0YWcgPSAnMTIzNDUnLAogICAgICAgICAgICAgICAgYWRkaXRpb25hbF9pbmZvID0gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkaXRpb25hbF9pbmZvX3JlcXVlc3RfYWRkaXRpb25hbF9pbmZvLkFkZGl0aW9uYWxJbmZvUmVxdWVzdF9hZGRpdGlvbmFsSW5mbygpCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQWRkQXNzZXRUb0V4dGVybmFsV2FsbGV0UmVxdWVzdCgKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMUExelAxZVA1UUdlZmkyRE1QVGZUTDVTTG12N0RpdmZOYScsCiAgICAgICAgICAgICAgICBhZGRpdGlvbmFsX2luZm8gPSBmaXJlYmxvY2tzLm1vZGVscy5hZGRpdGlvbmFsX2luZm9fcmVxdWVzdF9hZGRpdGlvbmFsX2luZm8uQWRkaXRpb25hbEluZm9SZXF1ZXN0X2FkZGl0aW9uYWxJbmZvKCksCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QWRkQXNzZXRUb0V4dGVybmFsV2FsbGV0UmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IEFkZEFzc2V0VG9FeHRlcm5hbFdhbGxldFJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_add_collateral_request_body.py b/test/test_add_collateral_request_body.py index 1307f68a..8a6e3516 100644 --- a/test/test_add_collateral_request_body.py +++ b/test/test_add_collateral_request_body.py @@ -1,199 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.add_collateral_request_body import AddCollateralRequestBody - - -class TestAddCollateralRequestBody(unittest.TestCase): - """AddCollateralRequestBody unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AddCollateralRequestBody: - """Test AddCollateralRequestBody - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AddCollateralRequestBody` - """ - model = AddCollateralRequestBody() - if include_optional: - return AddCollateralRequestBody( - transaction_request = fireblocks.models.transaction_request.TransactionRequest( - operation = 'TRANSFER', - note = 'Ticket 123', - external_tx_id = '00000000-0000-0000-0000-000000000000', - asset_id = 'ETH', - source = fireblocks.models.source_transfer_peer_path.SourceTransferPeerPath( - type = 'VAULT_ACCOUNT', - sub_type = 'BINANCE', - id = '', - name = '', - wallet_id = '', - is_collateral = True, ), - destination = fireblocks.models.destination_transfer_peer_path.DestinationTransferPeerPath( - type = 'VAULT_ACCOUNT', - id = '', - name = '', - wallet_id = '', - one_time_address = fireblocks.models.one_time_address.OneTimeAddress( - address = '', - tag = '', ), - is_collateral = True, ), - destinations = [ - fireblocks.models.transaction_request_destination.TransactionRequestDestination( - amount = '', - travel_rule_message_id = 'trm_12345678-1234-1234-1234-123456789012', - customer_ref_id = 'abcdef', ) - ], - amount = null, - treat_as_gross_amount = False, - force_sweep = False, - fee_level = 'MEDIUM', - fee = null, - priority_fee = null, - fail_on_low_fee = True, - max_fee = '120', - max_total_fee = '88', - gas_limit = null, - gas_price = null, - network_fee = null, - replace_tx_by_hash = '00000000-0000-0000-0000-000000000000', - extra_parameters = { }, - customer_ref_id = 'abcdef', - travel_rule_message = fireblocks.models.travel_rule_create_transaction_request.TravelRuleCreateTransactionRequest( - originator_vas_pdid = 'did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2', - beneficiary_vas_pdid = 'did:ethr:0x17fe2dd11a2daa7f6c1fdf22532a4763f963aea6', - originator_vas_pname = 'Originator VASP Ltd.', - beneficiary_vas_pname = 'Beneficiary VASP Inc.', - beneficiary_vas_pwebsite = 'https://www.beneficiaryvasp.com', - transaction_blockchain_info = fireblocks.models.travel_rule_transaction_blockchain_info.TravelRuleTransactionBlockchainInfo( - tx_hash = '6.685730843558756E+76', - origin = '8.41132469470587E+47', ), - originator = fireblocks.models.travel_rule_pii_ivms.TravelRulePiiIVMS( - originator_persons = [ - fireblocks.models.travel_rule_person.TravelRulePerson( - natural_person = fireblocks.models.travel_rule_natural_person.TravelRuleNaturalPerson( - name = [ - fireblocks.models.travel_rule_natural_person_name_identifier.TravelRuleNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - phonetic_name_identifier = [ - - ], ) - ], - geographic_address = [ - fireblocks.models.travel_rule_geographic_address.TravelRuleGeographicAddress( - street_name = 'QmZGXXsKPk5iPS97LLjXB5e8Qs555ocdzcpbPMXvt84Ji9', - town_name = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - country = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - building_number = 'QmUFpNkxdsVtebDSUz5eP51kzoysXmqj2gBgeH11PD7SVP', - post_code = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - address_type = 'Qmdr9LcChZsoivS6uAhe7Qk7cGLDAx73wBZTVvq4WoU71H', - department = 'QmN7fb65x5MyA7RKyhbXaUKvJ7U4Y9eqpEZTmJYpNyEG8', - sub_department = 'QmTkfyGh54tXNqFxyEGK9NyTJZYpQ6RZ9zpNykxykME8s', - building_name = 'QmXJfGk85t6RKyhbXaEK9Nz4MEeMKypq6EY9zpJyC9nM9', - floor = 'QmZP5G7fhZpMyQxXnT9KyR6ybXaEM9zpJy4ME9MkTJGE1', - post_box = 'QmTkfYRGK54xFqXyJYNZyE9kY9zpMKytJnXy5z9EME9sJ', - room = 'QmRYXnT9KyhbXaEMZpMyxMkZ9zpYNYTJ4ME5kCGE7fhMJ', - town_location_name = 'QmNpZTyXJXnT9K6EYZpQxYNYMkC5p4kGEfhnkMJzpYT9Jm', - district_name = 'QmT9p6ERKyNYXnTyhbpMYJ4zpYT9kMJZT9QmEMGZ5kMhCy', - country_sub_division = 'QmK9yTbXaZpMYJYTYp6NT9QmEMGZT9p9kMJfhyGE4Z7k5C', - address_line = ["QmNp9kMjfhGZ5kMJzpNYXZTy6NQmZYEMGZ4kZT9Y6pNYT"], ) - ], - national_identification = fireblocks.models.travel_rule_national_identification.TravelRuleNationalIdentification( - country_of_issue = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - national_identifier = 'QmdR6qLnZ7Kwf5cBaXG8QFQenEvRg9JNZeoPranVuGd63z', - national_identifier_type = 'QmUKTg3aFJFhMz1o9gPqA3MgTRwd2LvDLwWTPHYUoMEYVi', - registration_authority = 'QmV9KJMyT9RJzpYfhME5xNCZ4G67fEkzTpRMyJzp9kTNYk', ), - date_and_place_of_birth = fireblocks.models.travel_rule_date_and_place_of_birth.TravelRuleDateAndPlaceOfBirth( - date_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - place_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', ), - customer_identification = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - country_of_residence = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - customer_number = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', ), - legal_person = fireblocks.models.travel_rule_legal_person.TravelRuleLegalPerson( - customer_identification = 'QmRY9AA4Uit2JRTxDzfzshrJdTK86Kf5HriA3dXDnihDmy', - customer_number = 'QmXvyML3AJUFpBbJqL5NVp7Vn7xNkuedTsSMk93duLCNW8', - country_of_registration = 'QmeoTk6UPruEAYNbJEAHdQYc53ap9BXmpnPMcuvs8wutdr', ), ) - ], - beneficiary_persons = [ - fireblocks.models.travel_rule_person.TravelRulePerson() - ], - account_number = [ - 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt' - ], ), - beneficiary = fireblocks.models.travel_rule_pii_ivms.TravelRulePiiIVMS(), - encrypted = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...', - protocol = 'IVMS101', - target_protocol = 'GTR', - skip_beneficiary_data_validation = False, - travel_rule_behavior = True, - originator_ref = 'ORG123456', - beneficiary_ref = 'BEN654321', - travel_rule_behavior_ref = 'TRB987654', - originator_proof = fireblocks.models.travel_rule_ownership_proof.TravelRuleOwnershipProof( - proof = '0x3dd4a17a...ce4a2bcd1b', - attestation = 'I certify that ETH account 0x896B...0b9b belongs to me.', - address = '0x896B...0b9b', - wallet_provider = 'Metamask', - url = 'https://example.com/uploaded_image.png', - confirmed = True, ), - beneficiary_proof = fireblocks.models.travel_rule_ownership_proof.TravelRuleOwnershipProof( - proof = '0x3dd4a17a...ce4a2bcd1b', - attestation = 'I certify that ETH account 0x896B...0b9b belongs to me.', - address = '0x896B...0b9b', - wallet_provider = 'Metamask', - url = 'https://example.com/uploaded_image.png', - confirmed = True, ), - beneficiary_did = 'did:key:z6Mkf67890Zghijkl67890', - originator_did = 'did:key:z6Mkf12345Zabcdef12345', - is_non_custodial = True, ), - travel_rule_message_id = 'trm_12345678-1234-1234-1234-123456789012', - auto_staking = True, - network_staking = null, - cpu_staking = null, - use_gasless = True, ), - is_src_collateral = True - ) - else: - return AddCollateralRequestBody( - ) - """ - - def testAddCollateralRequestBody(self): - """Test AddCollateralRequestBody""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZF9jb2xsYXRlcmFsX3JlcXVlc3RfYm9keSBpbXBvcnQgQWRkQ29sbGF0ZXJhbFJlcXVlc3RCb2R5CgoKY2xhc3MgVGVzdEFkZENvbGxhdGVyYWxSZXF1ZXN0Qm9keSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBZGRDb2xsYXRlcmFsUmVxdWVzdEJvZHkgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFkZENvbGxhdGVyYWxSZXF1ZXN0Qm9keToKICAgICAgICAiIiJUZXN0IEFkZENvbGxhdGVyYWxSZXF1ZXN0Qm9keQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBZGRDb2xsYXRlcmFsUmVxdWVzdEJvZHlgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBZGRDb2xsYXRlcmFsUmVxdWVzdEJvZHkoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBZGRDb2xsYXRlcmFsUmVxdWVzdEJvZHkoCiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbl9yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVxdWVzdC5UcmFuc2FjdGlvblJlcXVlc3QoCiAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gJ1RSQU5TRkVSJywgCiAgICAgICAgICAgICAgICAgICAgbm90ZSA9ICdUaWNrZXQgMTIzJywgCiAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfdHhfaWQgPSAnMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwJywgCiAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgc291cmNlID0gZmlyZWJsb2Nrcy5tb2RlbHMuc291cmNlX3RyYW5zZmVyX3BlZXJfcGF0aC5Tb3VyY2VUcmFuc2ZlclBlZXJQYXRoKAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3ViX3R5cGUgPSAnQklOQU5DRScsIAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgd2FsbGV0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBpc19jb2xsYXRlcmFsID0gVHJ1ZSwgKSwgCiAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy5kZXN0aW5hdGlvbl90cmFuc2Zlcl9wZWVyX3BhdGguRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoKAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHdhbGxldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgb25lX3RpbWVfYWRkcmVzcyA9IGZpcmVibG9ja3MubW9kZWxzLm9uZV90aW1lX2FkZHJlc3MuT25lVGltZUFkZHJlc3MoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnID0gJycsICksIAogICAgICAgICAgICAgICAgICAgICAgICBpc19jb2xsYXRlcmFsID0gVHJ1ZSwgKSwgCiAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25zID0gWwogICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZXF1ZXN0X2Rlc3RpbmF0aW9uLlRyYW5zYWN0aW9uUmVxdWVzdERlc3RpbmF0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCA9ICd0cm1fMTIzNDU2NzgtMTIzNC0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9yZWZfaWQgPSAnYWJjZGVmJywgKQogICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICB0cmVhdF9hc19ncm9zc19hbW91bnQgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgZm9yY2Vfc3dlZXAgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgZmVlX2xldmVsID0gJ01FRElVTScsIAogICAgICAgICAgICAgICAgICAgIGZlZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgIHByaW9yaXR5X2ZlZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgIGZhaWxfb25fbG93X2ZlZSA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgIG1heF9mZWUgPSAnMTIwJywgCiAgICAgICAgICAgICAgICAgICAgbWF4X3RvdGFsX2ZlZSA9ICc4OCcsIAogICAgICAgICAgICAgICAgICAgIGdhc19saW1pdCA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgIGdhc19wcmljZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgIG5ldHdvcmtfZmVlID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgcmVwbGFjZV90eF9ieV9oYXNoID0gJzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCcsIAogICAgICAgICAgICAgICAgICAgIGV4dHJhX3BhcmFtZXRlcnMgPSB7IH0sIAogICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX3JlZl9pZCA9ICdhYmNkZWYnLCAKICAgICAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV9tZXNzYWdlID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfY3JlYXRlX3RyYW5zYWN0aW9uX3JlcXVlc3QuVHJhdmVsUnVsZUNyZWF0ZVRyYW5zYWN0aW9uUmVxdWVzdCgKICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYXRvcl92YXNfcGRpZCA9ICdkaWQ6ZXRocjoweDQ0OTU3ZTc1ZDZjZTRhNWJmMzdhYWUxMTdkYTg2NDIyYzg0OGY3YzInLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfdmFzX3BkaWQgPSAnZGlkOmV0aHI6MHgxN2ZlMmRkMTFhMmRhYTdmNmMxZmRmMjI1MzJhNDc2M2Y5NjNhZWE2JywgCiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmF0b3JfdmFzX3BuYW1lID0gJ09yaWdpbmF0b3IgVkFTUCBMdGQuJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5X3Zhc19wbmFtZSA9ICdCZW5lZmljaWFyeSBWQVNQIEluYy4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfdmFzX3B3ZWJzaXRlID0gJ2h0dHBzOi8vd3d3LmJlbmVmaWNpYXJ5dmFzcC5jb20nLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25fYmxvY2tjaGFpbl9pbmZvID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdHJhbnNhY3Rpb25fYmxvY2tjaGFpbl9pbmZvLlRyYXZlbFJ1bGVUcmFuc2FjdGlvbkJsb2NrY2hhaW5JbmZvKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHhfaGFzaCA9ICc2LjY4NTczMDg0MzU1ODc1NkUrNzYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbiA9ICc4LjQxMTMyNDY5NDcwNTg3RSs0NycsICksIAogICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hdG9yID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfcGlpX2l2bXMuVHJhdmVsUnVsZVBpaUlWTVMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hdG9yX3BlcnNvbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfcGVyc29uLlRyYXZlbFJ1bGVQZXJzb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdHVyYWxfcGVyc29uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9wZXJzb24uVHJhdmVsUnVsZU5hdHVyYWxQZXJzb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlfaWRlbnRpZmllciA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5X2lkZW50aWZpZXIgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllcl90eXBlID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxfbmFtZV9pZGVudGlmaWVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9uYW1lX2lkZW50aWZpZXIuVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2lkZW50aWZpZXIgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeV9pZGVudGlmaWVyID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXJfdHlwZSA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob25ldGljX25hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvZ3JhcGhpY19hZGRyZXNzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2dlb2dyYXBoaWNfYWRkcmVzcy5UcmF2ZWxSdWxlR2VvZ3JhcGhpY0FkZHJlc3MoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVldF9uYW1lID0gJ1FtWkdYWHNLUGs1aVBTOTdMTGpYQjVlOFFzNTU1b2NkemNwYlBNWHZ0ODRKaTknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG93bl9uYW1lID0gJ1FtTmtFdDlWZG5oamVmUU1YbzNaYVpBczc2NXVnb1dpYXphcWNZOXNrSE1qQ3QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeSA9ICdRbVJHSGRveFFmU2k2dGV2eXZhWUd6czhCVlN0ZnFKcUV5ck1ZcVVmelh4a21tJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nX251bWJlciA9ICdRbVVGcE5reGRzVnRlYkRTVXo1ZVA1MWt6b3lzWG1xajJnQmdlSDExUEQ3U1ZQJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfY29kZSA9ICdRbVRKc0szc2MzZlBFVnd2QXA5N1VVaVZvRmhqelFoWVgzc0NkYTFKeHVDblhqJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfdHlwZSA9ICdRbWRyOUxjQ2hac29pdlM2dUFoZTdRazdjR0xEQXg3M3dCWlRWdnE0V29VNzFIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGFydG1lbnQgPSAnUW1ON2ZiNjV4NU15QTdSS3loYlhhVUt2SjdVNFk5ZXFwRVpUbUpZcE55RUc4JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl9kZXBhcnRtZW50ID0gJ1FtVGtmeUdoNTR0WE5xRnh5RUdLOU55VEpaWXBRNlJaOXpwTnlreHlrTUU4cycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19uYW1lID0gJ1FtWEpmR2s4NXQ2Ukt5aGJYYUVLOU56NE1FZU1LeXBxNkVZOXpwSnlDOW5NOScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9vciA9ICdRbVpQNUc3ZmhacE15UXhYblQ5S3lSNnliWGFFTTl6cEp5NE1FOU1rVEpHRTEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdF9ib3ggPSAnUW1Ua2ZZUkdLNTR4RnFYeUpZTlp5RTlrWTl6cE1LeXRKblh5NXo5RU1FOXNKJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvb20gPSAnUW1SWVhuVDlLeWhiWGFFTVpwTXl4TWtaOXpwWU5ZVEo0TUU1a0NHRTdmaE1KJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvd25fbG9jYXRpb25fbmFtZSA9ICdRbU5wWlR5WEpYblQ5SzZFWVpwUXhZTllNa0M1cDRrR0VmaG5rTUp6cFlUOUptJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RyaWN0X25hbWUgPSAnUW1UOXA2RVJLeU5ZWG5UeWhicE1ZSjR6cFlUOWtNSlpUOVFtRU1HWjVrTWhDeScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X3N1Yl9kaXZpc2lvbiA9ICdRbUs5eVRiWGFacE1ZSllUWXA2TlQ5UW1FTUdaVDlwOWtNSmZoeUdFNFo3azVDJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfbGluZSA9IFsiUW1OcDlrTWpmaEdaNWtNSnpwTllYWlR5Nk5RbVpZRU1HWjRrWlQ5WTZwTllUIl0sICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpY2F0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0aW9uYWxfaWRlbnRpZmljYXRpb24uVHJhdmVsUnVsZU5hdGlvbmFsSWRlbnRpZmljYXRpb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9pc3N1ZSA9ICdRbVJHSGRveFFmU2k2dGV2eXZhWUd6czhCVlN0ZnFKcUV5ck1ZcVVmelh4a21tJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmllciA9ICdRbWRSNnFMblo3S3dmNWNCYVhHOFFGUWVuRXZSZzlKTlplb1ByYW5WdUdkNjN6JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmllcl90eXBlID0gJ1FtVUtUZzNhRkpGaE16MW85Z1BxQTNNZ1RSd2QyTHZETHdXVFBIWVVvTUVZVmknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpc3RyYXRpb25fYXV0aG9yaXR5ID0gJ1FtVjlLSk15VDlSSnpwWWZoTUU1eE5DWjRHNjdmRWt6VHBSTXlKenA5a1ROWWsnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfYW5kX3BsYWNlX29mX2JpcnRoID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGguVHJhdmVsUnVsZURhdGVBbmRQbGFjZU9mQmlydGgoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9vZl9iaXJ0aCA9ICdRbU5rRXQ5VmRuaGplZlFNWG8zWmFaQXM3NjV1Z29XaWF6YXFjWTlza0hNakN0JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vfb2ZfYmlydGggPSAnUW1Oa0V0OVZkbmhqZWZRTVhvM1phWkFzNzY1dWdvV2lhemFxY1k5c2tITWpDdCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfaWRlbnRpZmljYXRpb24gPSAnUW1USnNLM3NjM2ZQRVZ3dkFwOTdVVWlWb0ZoanpRaFlYM3NDZGExSnh1Q25YaicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9yZXNpZGVuY2UgPSAnUW1USnNLM3NjM2ZQRVZ3dkFwOTdVVWlWb0ZoanpRaFlYM3NDZGExSnh1Q25YaicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfbnVtYmVyID0gJ1FtVEpzSzNzYzNmUEVWd3ZBcDk3VVVpVm9GaGp6UWhZWDNzQ2RhMUp4dUNuWGonLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnYWxfcGVyc29uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbGVnYWxfcGVyc29uLlRyYXZlbFJ1bGVMZWdhbFBlcnNvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX2lkZW50aWZpY2F0aW9uID0gJ1FtUlk5QUE0VWl0MkpSVHhEemZ6c2hySmRUSzg2S2Y1SHJpQTNkWERuaWhEbXknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX251bWJlciA9ICdRbVh2eU1MM0FKVUZwQmJKcUw1TlZwN1ZuN3hOa3VlZFRzU01rOTNkdUxDTlc4JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX3JlZ2lzdHJhdGlvbiA9ICdRbWVvVGs2VVBydUVBWU5iSkVBSGRRWWM1M2FwOUJYbXBuUE1jdXZzOHd1dGRyJywgKSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfcGVyc29ucyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9wZXJzb24uVHJhdmVsUnVsZVBlcnNvbigpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X251bWJlciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUW1Oa0V0OVZkbmhqZWZRTVhvM1phWkFzNzY1dWdvV2lhemFxY1k5c2tITWpDdCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmVuZWZpY2lhcnkgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9waWlfaXZtcy5UcmF2ZWxSdWxlUGlpSVZNUygpLCAKICAgICAgICAgICAgICAgICAgICAgICAgZW5jcnlwdGVkID0gJ2V5SmhiR2NpT2lKSVV6STFOaUlzSW5SNWNDSTZJa3BYVkNKOS4uLicsIAogICAgICAgICAgICAgICAgICAgICAgICBwcm90b2NvbCA9ICdJVk1TMTAxJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9wcm90b2NvbCA9ICdHVFInLCAKICAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9iZW5lZmljaWFyeV9kYXRhX3ZhbGlkYXRpb24gPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX2JlaGF2aW9yID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmF0b3JfcmVmID0gJ09SRzEyMzQ1NicsIAogICAgICAgICAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV9yZWYgPSAnQkVONjU0MzIxJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX2JlaGF2aW9yX3JlZiA9ICdUUkI5ODc2NTQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYXRvcl9wcm9vZiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX293bmVyc2hpcF9wcm9vZi5UcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2YoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9vZiA9ICcweDNkZDRhMTdhLi4uY2U0YTJiY2QxYicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ZXN0YXRpb24gPSAnSSBjZXJ0aWZ5IHRoYXQgRVRIIGFjY291bnQgMHg4OTZCLi4uMGI5YiBiZWxvbmdzIHRvIG1lLicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweDg5NkIuLi4wYjliJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YWxsZXRfcHJvdmlkZXIgPSAnTWV0YW1hc2snLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9ICdodHRwczovL2V4YW1wbGUuY29tL3VwbG9hZGVkX2ltYWdlLnBuZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkID0gJ2RpZDprZXk6ejZNa2YxMjM0NVphYmNkZWYxMjM0NScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ3ZlcmlmaWVkJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maXJtZWQgPSBUcnVlLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfcHJvb2YgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9vd25lcnNoaXBfcHJvb2YuVHJhdmVsUnVsZU93bmVyc2hpcFByb29mKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvb2YgPSAnMHgzZGQ0YTE3YS4uLmNlNGEyYmNkMWInLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGVzdGF0aW9uID0gJ0kgY2VydGlmeSB0aGF0IEVUSCBhY2NvdW50IDB4ODk2Qi4uLjBiOWIgYmVsb25ncyB0byBtZS4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHg4OTZCLi4uMGI5YicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FsbGV0X3Byb3ZpZGVyID0gJ01ldGFtYXNrJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS91cGxvYWRlZF9pbWFnZS5wbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZCA9ICdkaWQ6a2V5Ono2TWtmMTIzNDVaYWJjZGVmMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICd2ZXJpZmllZCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlybWVkID0gVHJ1ZSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5X2RpZCA9ICdkaWQ6a2V5Ono2TWtmNjc4OTBaZ2hpamtsNjc4OTAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYXRvcl9kaWQgPSAnZGlkOmtleTp6Nk1rZjEyMzQ1WmFiY2RlZjEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGlzX25vbl9jdXN0b2RpYWwgPSBUcnVlLCApLCAKICAgICAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV9tZXNzYWdlX2lkID0gJ3RybV8xMjM0NTY3OC0xMjM0LTEyMzQtMTIzNC0xMjM0NTY3ODkwMTInLCAKICAgICAgICAgICAgICAgICAgICBhdXRvX3N0YWtpbmcgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICBuZXR3b3JrX3N0YWtpbmcgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICBjcHVfc3Rha2luZyA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgIHVzZV9nYXNsZXNzID0gVHJ1ZSwgKSwKICAgICAgICAgICAgICAgIGlzX3NyY19jb2xsYXRlcmFsID0gVHJ1ZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFkZENvbGxhdGVyYWxSZXF1ZXN0Qm9keSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBZGRDb2xsYXRlcmFsUmVxdWVzdEJvZHkoc2VsZik6CiAgICAgICAgIiIiVGVzdCBBZGRDb2xsYXRlcmFsUmVxdWVzdEJvZHkiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_add_contract_asset_request.py b/test/test_add_contract_asset_request.py index 2601f9ac..6f552e64 100644 --- a/test/test_add_contract_asset_request.py +++ b/test/test_add_contract_asset_request.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.add_contract_asset_request import AddContractAssetRequest - - -class TestAddContractAssetRequest(unittest.TestCase): - """AddContractAssetRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AddContractAssetRequest: - """Test AddContractAssetRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AddContractAssetRequest` - """ - model = AddContractAssetRequest() - if include_optional: - return AddContractAssetRequest( - address = '', - tag = '' - ) - else: - return AddContractAssetRequest( - address = '', - ) - """ - - def testAddContractAssetRequest(self): - """Test AddContractAssetRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZF9jb250cmFjdF9hc3NldF9yZXF1ZXN0IGltcG9ydCBBZGRDb250cmFjdEFzc2V0UmVxdWVzdAoKCmNsYXNzIFRlc3RBZGRDb250cmFjdEFzc2V0UmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBZGRDb250cmFjdEFzc2V0UmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQWRkQ29udHJhY3RBc3NldFJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBBZGRDb250cmFjdEFzc2V0UmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBZGRDb250cmFjdEFzc2V0UmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFkZENvbnRyYWN0QXNzZXRSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQWRkQ29udHJhY3RBc3NldFJlcXVlc3QoCiAgICAgICAgICAgICAgICBhZGRyZXNzID0gJycsCiAgICAgICAgICAgICAgICB0YWcgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFkZENvbnRyYWN0QXNzZXRSZXF1ZXN0KAogICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFkZENvbnRyYWN0QXNzZXRSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQWRkQ29udHJhY3RBc3NldFJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_add_cosigner_request.py b/test/test_add_cosigner_request.py index 75510626..a4f30afd 100644 --- a/test/test_add_cosigner_request.py +++ b/test/test_add_cosigner_request.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.add_cosigner_request import AddCosignerRequest - - -class TestAddCosignerRequest(unittest.TestCase): - """AddCosignerRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AddCosignerRequest: - """Test AddCosignerRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AddCosignerRequest` - """ - model = AddCosignerRequest() - if include_optional: - return AddCosignerRequest( - api_key_id = '123e4567-e89b-12d3-a456-426614174000', - name = 'My Cosigner 1', - existing_cosigner = False - ) - else: - return AddCosignerRequest( - api_key_id = '123e4567-e89b-12d3-a456-426614174000', - name = 'My Cosigner 1', - ) - """ - - def testAddCosignerRequest(self): - """Test AddCosignerRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZF9jb3NpZ25lcl9yZXF1ZXN0IGltcG9ydCBBZGRDb3NpZ25lclJlcXVlc3QKCgpjbGFzcyBUZXN0QWRkQ29zaWduZXJSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFkZENvc2lnbmVyUmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQWRkQ29zaWduZXJSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgQWRkQ29zaWduZXJSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFkZENvc2lnbmVyUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFkZENvc2lnbmVyUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFkZENvc2lnbmVyUmVxdWVzdCgKICAgICAgICAgICAgICAgIGFwaV9rZXlfaWQgPSAnMTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDAwJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnTXkgQ29zaWduZXIgMScsCiAgICAgICAgICAgICAgICBleGlzdGluZ19jb3NpZ25lciA9IEZhbHNlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQWRkQ29zaWduZXJSZXF1ZXN0KAogICAgICAgICAgICAgICAgYXBpX2tleV9pZCA9ICcxMjNlNDU2Ny1lODliLTEyZDMtYTQ1Ni00MjY2MTQxNzQwMDAnLAogICAgICAgICAgICAgICAgbmFtZSA9ICdNeSBDb3NpZ25lciAxJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBZGRDb3NpZ25lclJlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBBZGRDb3NpZ25lclJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_add_cosigner_response.py b/test/test_add_cosigner_response.py index c7b2d3c4..c8140c4e 100644 --- a/test/test_add_cosigner_response.py +++ b/test/test_add_cosigner_response.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.add_cosigner_response import AddCosignerResponse - - -class TestAddCosignerResponse(unittest.TestCase): - """AddCosignerResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AddCosignerResponse: - """Test AddCosignerResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AddCosignerResponse` - """ - model = AddCosignerResponse() - if include_optional: - return AddCosignerResponse( - api_key_id = '123e4567-e89b-12d3-a456-426614174000', - name = 'My Cosigner 1', - existing_cosigner = False, - pending_cosigner_id = '44fcead0-7053-4831-a53a-df7fb90d440f' - ) - else: - return AddCosignerResponse( - api_key_id = '123e4567-e89b-12d3-a456-426614174000', - name = 'My Cosigner 1', - pending_cosigner_id = '44fcead0-7053-4831-a53a-df7fb90d440f', - ) - """ - - def testAddCosignerResponse(self): - """Test AddCosignerResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZF9jb3NpZ25lcl9yZXNwb25zZSBpbXBvcnQgQWRkQ29zaWduZXJSZXNwb25zZQoKCmNsYXNzIFRlc3RBZGRDb3NpZ25lclJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFkZENvc2lnbmVyUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFkZENvc2lnbmVyUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBBZGRDb3NpZ25lclJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFkZENvc2lnbmVyUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBZGRDb3NpZ25lclJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQWRkQ29zaWduZXJSZXNwb25zZSgKICAgICAgICAgICAgICAgIGFwaV9rZXlfaWQgPSAnMTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDAwJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnTXkgQ29zaWduZXIgMScsCiAgICAgICAgICAgICAgICBleGlzdGluZ19jb3NpZ25lciA9IEZhbHNlLAogICAgICAgICAgICAgICAgcGVuZGluZ19jb3NpZ25lcl9pZCA9ICc0NGZjZWFkMC03MDUzLTQ4MzEtYTUzYS1kZjdmYjkwZDQ0MGYnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQWRkQ29zaWduZXJSZXNwb25zZSgKICAgICAgICAgICAgICAgIGFwaV9rZXlfaWQgPSAnMTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDAwJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnTXkgQ29zaWduZXIgMScsCiAgICAgICAgICAgICAgICBwZW5kaW5nX2Nvc2lnbmVyX2lkID0gJzQ0ZmNlYWQwLTcwNTMtNDgzMS1hNTNhLWRmN2ZiOTBkNDQwZicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QWRkQ29zaWduZXJSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IEFkZENvc2lnbmVyUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_add_exchange_account_request.py b/test/test_add_exchange_account_request.py index 6107bd28..541ea7aa 100644 --- a/test/test_add_exchange_account_request.py +++ b/test/test_add_exchange_account_request.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.add_exchange_account_request import AddExchangeAccountRequest - - -class TestAddExchangeAccountRequest(unittest.TestCase): - """AddExchangeAccountRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AddExchangeAccountRequest: - """Test AddExchangeAccountRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AddExchangeAccountRequest` - """ - model = AddExchangeAccountRequest() - if include_optional: - return AddExchangeAccountRequest( - exchange_type = 'INDEPENDENT_RESERVE', - name = '', - creds = '', - key = '', - main_account_id = '' - ) - else: - return AddExchangeAccountRequest( - exchange_type = 'INDEPENDENT_RESERVE', - name = '', - ) - """ - - def testAddExchangeAccountRequest(self): - """Test AddExchangeAccountRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZF9leGNoYW5nZV9hY2NvdW50X3JlcXVlc3QgaW1wb3J0IEFkZEV4Y2hhbmdlQWNjb3VudFJlcXVlc3QKCgpjbGFzcyBUZXN0QWRkRXhjaGFuZ2VBY2NvdW50UmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBZGRFeGNoYW5nZUFjY291bnRSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBZGRFeGNoYW5nZUFjY291bnRSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgQWRkRXhjaGFuZ2VBY2NvdW50UmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBZGRFeGNoYW5nZUFjY291bnRSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQWRkRXhjaGFuZ2VBY2NvdW50UmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFkZEV4Y2hhbmdlQWNjb3VudFJlcXVlc3QoCiAgICAgICAgICAgICAgICBleGNoYW5nZV90eXBlID0gJ0lOREVQRU5ERU5UX1JFU0VSVkUnLAogICAgICAgICAgICAgICAgbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgY3JlZHMgPSAnJywKICAgICAgICAgICAgICAgIGtleSA9ICcnLAogICAgICAgICAgICAgICAgbWFpbl9hY2NvdW50X2lkID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBZGRFeGNoYW5nZUFjY291bnRSZXF1ZXN0KAogICAgICAgICAgICAgICAgZXhjaGFuZ2VfdHlwZSA9ICdJTkRFUEVOREVOVF9SRVNFUlZFJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBZGRFeGNoYW5nZUFjY291bnRSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQWRkRXhjaGFuZ2VBY2NvdW50UmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_add_exchange_account_response.py b/test/test_add_exchange_account_response.py index 7fc062c4..61aa9696 100644 --- a/test/test_add_exchange_account_response.py +++ b/test/test_add_exchange_account_response.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.add_exchange_account_response import AddExchangeAccountResponse - - -class TestAddExchangeAccountResponse(unittest.TestCase): - """AddExchangeAccountResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AddExchangeAccountResponse: - """Test AddExchangeAccountResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AddExchangeAccountResponse` - """ - model = AddExchangeAccountResponse() - if include_optional: - return AddExchangeAccountResponse( - id = '', - name = '', - exchange_type = 'INDEPENDENT_RESERVE' - ) - else: - return AddExchangeAccountResponse( - ) - """ - - def testAddExchangeAccountResponse(self): - """Test AddExchangeAccountResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZF9leGNoYW5nZV9hY2NvdW50X3Jlc3BvbnNlIGltcG9ydCBBZGRFeGNoYW5nZUFjY291bnRSZXNwb25zZQoKCmNsYXNzIFRlc3RBZGRFeGNoYW5nZUFjY291bnRSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBZGRFeGNoYW5nZUFjY291bnRSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQWRkRXhjaGFuZ2VBY2NvdW50UmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBBZGRFeGNoYW5nZUFjY291bnRSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBZGRFeGNoYW5nZUFjY291bnRSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFkZEV4Y2hhbmdlQWNjb3VudFJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQWRkRXhjaGFuZ2VBY2NvdW50UmVzcG9uc2UoCiAgICAgICAgICAgICAgICBpZCA9ICcnLAogICAgICAgICAgICAgICAgbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgZXhjaGFuZ2VfdHlwZSA9ICdJTkRFUEVOREVOVF9SRVNFUlZFJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFkZEV4Y2hhbmdlQWNjb3VudFJlc3BvbnNlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFkZEV4Y2hhbmdlQWNjb3VudFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQWRkRXhjaGFuZ2VBY2NvdW50UmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_additional_info.py b/test/test_additional_info.py index ba2ae694..7589a7f4 100644 --- a/test/test_additional_info.py +++ b/test/test_additional_info.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.additional_info import AdditionalInfo - - -class TestAdditionalInfo(unittest.TestCase): - """AdditionalInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AdditionalInfo: - """Test AdditionalInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AdditionalInfo` - """ - model = AdditionalInfo() - if include_optional: - return AdditionalInfo( - estimated_annual_reward = 6.48, - lockup_period = 172800000, - activation_period = 172800000 - ) - else: - return AdditionalInfo( - estimated_annual_reward = 6.48, - lockup_period = 172800000, - activation_period = 172800000, - ) - """ - - def testAdditionalInfo(self): - """Test AdditionalInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZGl0aW9uYWxfaW5mbyBpbXBvcnQgQWRkaXRpb25hbEluZm8KCgpjbGFzcyBUZXN0QWRkaXRpb25hbEluZm8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQWRkaXRpb25hbEluZm8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFkZGl0aW9uYWxJbmZvOgogICAgICAgICIiIlRlc3QgQWRkaXRpb25hbEluZm8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQWRkaXRpb25hbEluZm9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBZGRpdGlvbmFsSW5mbygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFkZGl0aW9uYWxJbmZvKAogICAgICAgICAgICAgICAgZXN0aW1hdGVkX2FubnVhbF9yZXdhcmQgPSA2LjQ4LAogICAgICAgICAgICAgICAgbG9ja3VwX3BlcmlvZCA9IDE3MjgwMDAwMCwKICAgICAgICAgICAgICAgIGFjdGl2YXRpb25fcGVyaW9kID0gMTcyODAwMDAwCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQWRkaXRpb25hbEluZm8oCiAgICAgICAgICAgICAgICBlc3RpbWF0ZWRfYW5udWFsX3Jld2FyZCA9IDYuNDgsCiAgICAgICAgICAgICAgICBsb2NrdXBfcGVyaW9kID0gMTcyODAwMDAwLAogICAgICAgICAgICAgICAgYWN0aXZhdGlvbl9wZXJpb2QgPSAxNzI4MDAwMDAsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QWRkaXRpb25hbEluZm8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBBZGRpdGlvbmFsSW5mbyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_additional_info_request.py b/test/test_additional_info_request.py index 72f53be6..70d0f070 100644 --- a/test/test_additional_info_request.py +++ b/test/test_additional_info_request.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.additional_info_request import AdditionalInfoRequest - - -class TestAdditionalInfoRequest(unittest.TestCase): - """AdditionalInfoRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AdditionalInfoRequest: - """Test AdditionalInfoRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AdditionalInfoRequest` - """ - model = AdditionalInfoRequest() - if include_optional: - return AdditionalInfoRequest( - additional_info = fireblocks.models.additional_info_request_additional_info.AdditionalInfoRequest_additionalInfo() - ) - else: - return AdditionalInfoRequest( - additional_info = fireblocks.models.additional_info_request_additional_info.AdditionalInfoRequest_additionalInfo(), - ) - """ - - def testAdditionalInfoRequest(self): - """Test AdditionalInfoRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZGl0aW9uYWxfaW5mb19yZXF1ZXN0IGltcG9ydCBBZGRpdGlvbmFsSW5mb1JlcXVlc3QKCgpjbGFzcyBUZXN0QWRkaXRpb25hbEluZm9SZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFkZGl0aW9uYWxJbmZvUmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQWRkaXRpb25hbEluZm9SZXF1ZXN0OgogICAgICAgICIiIlRlc3QgQWRkaXRpb25hbEluZm9SZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFkZGl0aW9uYWxJbmZvUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFkZGl0aW9uYWxJbmZvUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFkZGl0aW9uYWxJbmZvUmVxdWVzdCgKICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfaW5mbyA9IGZpcmVibG9ja3MubW9kZWxzLmFkZGl0aW9uYWxfaW5mb19yZXF1ZXN0X2FkZGl0aW9uYWxfaW5mby5BZGRpdGlvbmFsSW5mb1JlcXVlc3RfYWRkaXRpb25hbEluZm8oKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFkZGl0aW9uYWxJbmZvUmVxdWVzdCgKICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfaW5mbyA9IGZpcmVibG9ja3MubW9kZWxzLmFkZGl0aW9uYWxfaW5mb19yZXF1ZXN0X2FkZGl0aW9uYWxfaW5mby5BZGRpdGlvbmFsSW5mb1JlcXVlc3RfYWRkaXRpb25hbEluZm8oKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBZGRpdGlvbmFsSW5mb1JlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBBZGRpdGlvbmFsSW5mb1JlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_additional_info_request_additional_info.py b/test/test_additional_info_request_additional_info.py index e3c52043..d6b7f0d6 100644 --- a/test/test_additional_info_request_additional_info.py +++ b/test/test_additional_info_request_additional_info.py @@ -1,149 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.additional_info_request_additional_info import ( - AdditionalInfoRequestAdditionalInfo, -) - - -class TestAdditionalInfoRequestAdditionalInfo(unittest.TestCase): - """AdditionalInfoRequestAdditionalInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AdditionalInfoRequestAdditionalInfo: - """Test AdditionalInfoRequestAdditionalInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AdditionalInfoRequestAdditionalInfo` - """ - model = AdditionalInfoRequestAdditionalInfo() - if include_optional: - return AdditionalInfoRequestAdditionalInfo( - account_holder_given_name = 'John', - account_holder_surname = 'Smith', - account_holder_city = 'New York', - account_holder_country = 'FR', - account_holder_address1 = '123 Wall Street', - account_holder_address2 = 'Suite 100', - account_holder_district = 'Manhattan', - account_holder_postal_code = '10005', - iban = 'FR1420041010050500013M02606', - iban_city = 'London', - iban_country = 'GB', - aba_routing_number = '021000021', - aba_account_number = '1234567890', - aba_country = 'US', - spei_clabe = '012180001234567890', - spei_name = 'Juan Pérez', - rail = 'CHAPS', - addressing_system = 'CHAPS', - country = 'GB', - bank_name = 'Barclays Bank', - beneficiary_rfc = 'PERJ800101ABC', - sender_document_id = 'CURP123456789', - clabe = '012180001234567890', - pix_key = 'joao.silva@email.com', - bank_code = '001', - key_type = 'EMAIL', - account_holder_address = '123 Rue de la Paix', - bic = 'BNPAFRPP', - bank_branch = 'Paris Central', - bank_address = '16 Boulevard des Italiens, 75009 Paris', - purpose_code = 'SALA', - tax_id = '1234567890123', - account_number = '12345678', - routing_number = '021000021', - account_type = 'CHECKING', - swift_code = 'CHASUS33', - bank_address_line = '270 Park Avenue', - bank_address_city = 'New York', - bank_address_state = 'NY', - bank_address_country = 'US', - bank_address_postal_code = '10017', - branch_number = '001', - mobile_phone_number = '+233241234567', - provider = 'MTN', - beneficiary_document_id = 'GHA-123456789-0', - beneficiary_relationship = 'Family', - recipient_handle_type = 'EMAIL', - recipient_handle_value = 'john.smith@email.com', - message = 'Please deposit the funds into the account', - value = 'john.williams@email.com', - type = 'EMAIL', - bsb = '123-456', - sort_code = '12-34-56', - bank_account_country = 'GB', - bank_account_holder_name = 'John Smith' - ) - else: - return AdditionalInfoRequestAdditionalInfo( - account_holder_given_name = 'John', - account_holder_surname = 'Smith', - account_holder_city = 'New York', - account_holder_country = 'FR', - account_holder_address1 = '123 Wall Street', - account_holder_postal_code = '10005', - iban = 'FR1420041010050500013M02606', - iban_city = 'London', - iban_country = 'GB', - aba_routing_number = '021000021', - aba_account_number = '1234567890', - aba_country = 'US', - spei_clabe = '012180001234567890', - rail = 'CHAPS', - addressing_system = 'CHAPS', - country = 'GB', - bank_name = 'Barclays Bank', - clabe = '012180001234567890', - pix_key = 'joao.silva@email.com', - bank_code = '001', - key_type = 'EMAIL', - account_number = '12345678', - routing_number = '021000021', - account_type = 'CHECKING', - swift_code = 'CHASUS33', - bank_address_line = '270 Park Avenue', - bank_address_city = 'New York', - bank_address_country = 'US', - bank_address_postal_code = '10017', - mobile_phone_number = '+233241234567', - provider = 'MTN', - recipient_handle_type = 'EMAIL', - recipient_handle_value = 'john.smith@email.com', - message = 'Please deposit the funds into the account', - value = 'john.williams@email.com', - type = 'EMAIL', - sort_code = '12-34-56', - bank_account_country = 'GB', - bank_account_holder_name = 'John Smith', - ) - """ - - def testAdditionalInfoRequestAdditionalInfo(self): - """Test AdditionalInfoRequestAdditionalInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZGl0aW9uYWxfaW5mb19yZXF1ZXN0X2FkZGl0aW9uYWxfaW5mbyBpbXBvcnQgKAogICAgQWRkaXRpb25hbEluZm9SZXF1ZXN0QWRkaXRpb25hbEluZm8sCikKCgpjbGFzcyBUZXN0QWRkaXRpb25hbEluZm9SZXF1ZXN0QWRkaXRpb25hbEluZm8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQWRkaXRpb25hbEluZm9SZXF1ZXN0QWRkaXRpb25hbEluZm8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFkZGl0aW9uYWxJbmZvUmVxdWVzdEFkZGl0aW9uYWxJbmZvOgogICAgICAgICIiIlRlc3QgQWRkaXRpb25hbEluZm9SZXF1ZXN0QWRkaXRpb25hbEluZm8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQWRkaXRpb25hbEluZm9SZXF1ZXN0QWRkaXRpb25hbEluZm9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBZGRpdGlvbmFsSW5mb1JlcXVlc3RBZGRpdGlvbmFsSW5mbygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFkZGl0aW9uYWxJbmZvUmVxdWVzdEFkZGl0aW9uYWxJbmZvKAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfZ2l2ZW5fbmFtZSA9ICdKb2huJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX3N1cm5hbWUgPSAnU21pdGgnLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfY2l0eSA9ICdOZXcgWW9yaycsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9jb3VudHJ5ID0gJ0ZSJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2FkZHJlc3MxID0gJzEyMyBXYWxsIFN0cmVldCcsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9hZGRyZXNzMiA9ICdTdWl0ZSAxMDAnLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfZGlzdHJpY3QgPSAnTWFuaGF0dGFuJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX3Bvc3RhbF9jb2RlID0gJzEwMDA1JywKICAgICAgICAgICAgICAgIGliYW4gPSAnRlIxNDIwMDQxMDEwMDUwNTAwMDEzTTAyNjA2JywKICAgICAgICAgICAgICAgIGliYW5fY2l0eSA9ICdMb25kb24nLAogICAgICAgICAgICAgICAgaWJhbl9jb3VudHJ5ID0gJ0dCJywKICAgICAgICAgICAgICAgIGFiYV9yb3V0aW5nX251bWJlciA9ICcwMjEwMDAwMjEnLAogICAgICAgICAgICAgICAgYWJhX2FjY291bnRfbnVtYmVyID0gJzEyMzQ1Njc4OTAnLAogICAgICAgICAgICAgICAgYWJhX2NvdW50cnkgPSAnVVMnLAogICAgICAgICAgICAgICAgc3BlaV9jbGFiZSA9ICcwMTIxODAwMDEyMzQ1Njc4OTAnLAogICAgICAgICAgICAgICAgc3BlaV9uYW1lID0gJ0p1YW4gUMOpcmV6JywKICAgICAgICAgICAgICAgIHJhaWwgPSAnQ0hBUFMnLAogICAgICAgICAgICAgICAgYWRkcmVzc2luZ19zeXN0ZW0gPSAnQ0hBUFMnLAogICAgICAgICAgICAgICAgY291bnRyeSA9ICdHQicsCiAgICAgICAgICAgICAgICBiYW5rX25hbWUgPSAnQmFyY2xheXMgQmFuaycsCiAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV9yZmMgPSAnUEVSSjgwMDEwMUFCQycsCiAgICAgICAgICAgICAgICBzZW5kZXJfZG9jdW1lbnRfaWQgPSAnQ1VSUDEyMzQ1Njc4OScsCiAgICAgICAgICAgICAgICBjbGFiZSA9ICcwMTIxODAwMDEyMzQ1Njc4OTAnLAogICAgICAgICAgICAgICAgcGl4X2tleSA9ICdqb2FvLnNpbHZhQGVtYWlsLmNvbScsCiAgICAgICAgICAgICAgICBiYW5rX2NvZGUgPSAnMDAxJywKICAgICAgICAgICAgICAgIGtleV90eXBlID0gJ0VNQUlMJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2FkZHJlc3MgPSAnMTIzIFJ1ZSBkZSBsYSBQYWl4JywKICAgICAgICAgICAgICAgIGJpYyA9ICdCTlBBRlJQUCcsCiAgICAgICAgICAgICAgICBiYW5rX2JyYW5jaCA9ICdQYXJpcyBDZW50cmFsJywKICAgICAgICAgICAgICAgIGJhbmtfYWRkcmVzcyA9ICcxNiBCb3VsZXZhcmQgZGVzIEl0YWxpZW5zLCA3NTAwOSBQYXJpcycsCiAgICAgICAgICAgICAgICBwdXJwb3NlX2NvZGUgPSAnU0FMQScsCiAgICAgICAgICAgICAgICB0YXhfaWQgPSAnMTIzNDU2Nzg5MDEyMycsCiAgICAgICAgICAgICAgICBhY2NvdW50X251bWJlciA9ICcxMjM0NTY3OCcsCiAgICAgICAgICAgICAgICByb3V0aW5nX251bWJlciA9ICcwMjEwMDAwMjEnLAogICAgICAgICAgICAgICAgYWNjb3VudF90eXBlID0gJ0NIRUNLSU5HJywKICAgICAgICAgICAgICAgIHN3aWZ0X2NvZGUgPSAnQ0hBU1VTMzMnLAogICAgICAgICAgICAgICAgYmFua19hZGRyZXNzX2xpbmUgPSAnMjcwIFBhcmsgQXZlbnVlJywKICAgICAgICAgICAgICAgIGJhbmtfYWRkcmVzc19jaXR5ID0gJ05ldyBZb3JrJywKICAgICAgICAgICAgICAgIGJhbmtfYWRkcmVzc19zdGF0ZSA9ICdOWScsCiAgICAgICAgICAgICAgICBiYW5rX2FkZHJlc3NfY291bnRyeSA9ICdVUycsCiAgICAgICAgICAgICAgICBiYW5rX2FkZHJlc3NfcG9zdGFsX2NvZGUgPSAnMTAwMTcnLAogICAgICAgICAgICAgICAgYnJhbmNoX251bWJlciA9ICcwMDEnLAogICAgICAgICAgICAgICAgbW9iaWxlX3Bob25lX251bWJlciA9ICcrMjMzMjQxMjM0NTY3JywKICAgICAgICAgICAgICAgIHByb3ZpZGVyID0gJ01UTicsCiAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV9kb2N1bWVudF9pZCA9ICdHSEEtMTIzNDU2Nzg5LTAnLAogICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfcmVsYXRpb25zaGlwID0gJ0ZhbWlseScsCiAgICAgICAgICAgICAgICByZWNpcGllbnRfaGFuZGxlX3R5cGUgPSAnRU1BSUwnLAogICAgICAgICAgICAgICAgcmVjaXBpZW50X2hhbmRsZV92YWx1ZSA9ICdqb2huLnNtaXRoQGVtYWlsLmNvbScsCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ1BsZWFzZSBkZXBvc2l0IHRoZSBmdW5kcyBpbnRvIHRoZSBhY2NvdW50JywKICAgICAgICAgICAgICAgIHZhbHVlID0gJ2pvaG4ud2lsbGlhbXNAZW1haWwuY29tJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnRU1BSUwnLAogICAgICAgICAgICAgICAgYnNiID0gJzEyMy00NTYnLAogICAgICAgICAgICAgICAgc29ydF9jb2RlID0gJzEyLTM0LTU2JywKICAgICAgICAgICAgICAgIGJhbmtfYWNjb3VudF9jb3VudHJ5ID0gJ0dCJywKICAgICAgICAgICAgICAgIGJhbmtfYWNjb3VudF9ob2xkZXJfbmFtZSA9ICdKb2huIFNtaXRoJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFkZGl0aW9uYWxJbmZvUmVxdWVzdEFkZGl0aW9uYWxJbmZvKAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfZ2l2ZW5fbmFtZSA9ICdKb2huJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX3N1cm5hbWUgPSAnU21pdGgnLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfY2l0eSA9ICdOZXcgWW9yaycsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9jb3VudHJ5ID0gJ0ZSJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2FkZHJlc3MxID0gJzEyMyBXYWxsIFN0cmVldCcsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9wb3N0YWxfY29kZSA9ICcxMDAwNScsCiAgICAgICAgICAgICAgICBpYmFuID0gJ0ZSMTQyMDA0MTAxMDA1MDUwMDAxM00wMjYwNicsCiAgICAgICAgICAgICAgICBpYmFuX2NpdHkgPSAnTG9uZG9uJywKICAgICAgICAgICAgICAgIGliYW5fY291bnRyeSA9ICdHQicsCiAgICAgICAgICAgICAgICBhYmFfcm91dGluZ19udW1iZXIgPSAnMDIxMDAwMDIxJywKICAgICAgICAgICAgICAgIGFiYV9hY2NvdW50X251bWJlciA9ICcxMjM0NTY3ODkwJywKICAgICAgICAgICAgICAgIGFiYV9jb3VudHJ5ID0gJ1VTJywKICAgICAgICAgICAgICAgIHNwZWlfY2xhYmUgPSAnMDEyMTgwMDAxMjM0NTY3ODkwJywKICAgICAgICAgICAgICAgIHJhaWwgPSAnQ0hBUFMnLAogICAgICAgICAgICAgICAgYWRkcmVzc2luZ19zeXN0ZW0gPSAnQ0hBUFMnLAogICAgICAgICAgICAgICAgY291bnRyeSA9ICdHQicsCiAgICAgICAgICAgICAgICBiYW5rX25hbWUgPSAnQmFyY2xheXMgQmFuaycsCiAgICAgICAgICAgICAgICBjbGFiZSA9ICcwMTIxODAwMDEyMzQ1Njc4OTAnLAogICAgICAgICAgICAgICAgcGl4X2tleSA9ICdqb2FvLnNpbHZhQGVtYWlsLmNvbScsCiAgICAgICAgICAgICAgICBiYW5rX2NvZGUgPSAnMDAxJywKICAgICAgICAgICAgICAgIGtleV90eXBlID0gJ0VNQUlMJywKICAgICAgICAgICAgICAgIGFjY291bnRfbnVtYmVyID0gJzEyMzQ1Njc4JywKICAgICAgICAgICAgICAgIHJvdXRpbmdfbnVtYmVyID0gJzAyMTAwMDAyMScsCiAgICAgICAgICAgICAgICBhY2NvdW50X3R5cGUgPSAnQ0hFQ0tJTkcnLAogICAgICAgICAgICAgICAgc3dpZnRfY29kZSA9ICdDSEFTVVMzMycsCiAgICAgICAgICAgICAgICBiYW5rX2FkZHJlc3NfbGluZSA9ICcyNzAgUGFyayBBdmVudWUnLAogICAgICAgICAgICAgICAgYmFua19hZGRyZXNzX2NpdHkgPSAnTmV3IFlvcmsnLAogICAgICAgICAgICAgICAgYmFua19hZGRyZXNzX2NvdW50cnkgPSAnVVMnLAogICAgICAgICAgICAgICAgYmFua19hZGRyZXNzX3Bvc3RhbF9jb2RlID0gJzEwMDE3JywKICAgICAgICAgICAgICAgIG1vYmlsZV9waG9uZV9udW1iZXIgPSAnKzIzMzI0MTIzNDU2NycsCiAgICAgICAgICAgICAgICBwcm92aWRlciA9ICdNVE4nLAogICAgICAgICAgICAgICAgcmVjaXBpZW50X2hhbmRsZV90eXBlID0gJ0VNQUlMJywKICAgICAgICAgICAgICAgIHJlY2lwaWVudF9oYW5kbGVfdmFsdWUgPSAnam9obi5zbWl0aEBlbWFpbC5jb20nLAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdQbGVhc2UgZGVwb3NpdCB0aGUgZnVuZHMgaW50byB0aGUgYWNjb3VudCcsCiAgICAgICAgICAgICAgICB2YWx1ZSA9ICdqb2huLndpbGxpYW1zQGVtYWlsLmNvbScsCiAgICAgICAgICAgICAgICB0eXBlID0gJ0VNQUlMJywKICAgICAgICAgICAgICAgIHNvcnRfY29kZSA9ICcxMi0zNC01NicsCiAgICAgICAgICAgICAgICBiYW5rX2FjY291bnRfY291bnRyeSA9ICdHQicsCiAgICAgICAgICAgICAgICBiYW5rX2FjY291bnRfaG9sZGVyX25hbWUgPSAnSm9obiBTbWl0aCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QWRkaXRpb25hbEluZm9SZXF1ZXN0QWRkaXRpb25hbEluZm8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBBZGRpdGlvbmFsSW5mb1JlcXVlc3RBZGRpdGlvbmFsSW5mbyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_address_balance_item_dto.py b/test/test_address_balance_item_dto.py index dfa11fa3..1f9b8c20 100644 --- a/test/test_address_balance_item_dto.py +++ b/test/test_address_balance_item_dto.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.address_balance_item_dto import AddressBalanceItemDto - - -class TestAddressBalanceItemDto(unittest.TestCase): - """AddressBalanceItemDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AddressBalanceItemDto: - """Test AddressBalanceItemDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AddressBalanceItemDto` - """ - model = AddressBalanceItemDto() - if include_optional: - return AddressBalanceItemDto( - account_address = '0x1234567890123456789012345678901234567890', - balance = '1000000000000000000', - last_updated = '2023-12-01T12:00Z' - ) - else: - return AddressBalanceItemDto( - account_address = '0x1234567890123456789012345678901234567890', - balance = '1000000000000000000', - last_updated = '2023-12-01T12:00Z', - ) - """ - - def testAddressBalanceItemDto(self): - """Test AddressBalanceItemDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZHJlc3NfYmFsYW5jZV9pdGVtX2R0byBpbXBvcnQgQWRkcmVzc0JhbGFuY2VJdGVtRHRvCgoKY2xhc3MgVGVzdEFkZHJlc3NCYWxhbmNlSXRlbUR0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBZGRyZXNzQmFsYW5jZUl0ZW1EdG8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFkZHJlc3NCYWxhbmNlSXRlbUR0bzoKICAgICAgICAiIiJUZXN0IEFkZHJlc3NCYWxhbmNlSXRlbUR0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBZGRyZXNzQmFsYW5jZUl0ZW1EdG9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBZGRyZXNzQmFsYW5jZUl0ZW1EdG8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBZGRyZXNzQmFsYW5jZUl0ZW1EdG8oCiAgICAgICAgICAgICAgICBhY2NvdW50X2FkZHJlc3MgPSAnMHgxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwJywKICAgICAgICAgICAgICAgIGJhbGFuY2UgPSAnMTAwMDAwMDAwMDAwMDAwMDAwMCcsCiAgICAgICAgICAgICAgICBsYXN0X3VwZGF0ZWQgPSAnMjAyMy0xMi0wMVQxMjowMFonCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQWRkcmVzc0JhbGFuY2VJdGVtRHRvKAogICAgICAgICAgICAgICAgYWNjb3VudF9hZGRyZXNzID0gJzB4MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MCcsCiAgICAgICAgICAgICAgICBiYWxhbmNlID0gJzEwMDAwMDAwMDAwMDAwMDAwMDAnLAogICAgICAgICAgICAgICAgbGFzdF91cGRhdGVkID0gJzIwMjMtMTItMDFUMTI6MDBaJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBZGRyZXNzQmFsYW5jZUl0ZW1EdG8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBBZGRyZXNzQmFsYW5jZUl0ZW1EdG8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_address_balance_paged_response.py b/test/test_address_balance_paged_response.py index 3cb06516..3c167966 100644 --- a/test/test_address_balance_paged_response.py +++ b/test/test_address_balance_paged_response.py @@ -1,68 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.address_balance_paged_response import AddressBalancePagedResponse - - -class TestAddressBalancePagedResponse(unittest.TestCase): - """AddressBalancePagedResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AddressBalancePagedResponse: - """Test AddressBalancePagedResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AddressBalancePagedResponse` - """ - model = AddressBalancePagedResponse() - if include_optional: - return AddressBalancePagedResponse( - data = [ - fireblocks.models.address_balance_item_dto.AddressBalanceItemDto( - account_address = '0x1234567890123456789012345678901234567890', - balance = '1000000000000000000', - last_updated = '2023-12-01T12:00Z', ) - ], - next = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==', - prev = 'dGhpcyBpcyBhIHByZXZpb3VzIGN1cnNvcg==', - total = 150 - ) - else: - return AddressBalancePagedResponse( - data = [ - fireblocks.models.address_balance_item_dto.AddressBalanceItemDto( - account_address = '0x1234567890123456789012345678901234567890', - balance = '1000000000000000000', - last_updated = '2023-12-01T12:00Z', ) - ], - ) - """ - - def testAddressBalancePagedResponse(self): - """Test AddressBalancePagedResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZHJlc3NfYmFsYW5jZV9wYWdlZF9yZXNwb25zZSBpbXBvcnQgQWRkcmVzc0JhbGFuY2VQYWdlZFJlc3BvbnNlCgoKY2xhc3MgVGVzdEFkZHJlc3NCYWxhbmNlUGFnZWRSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBZGRyZXNzQmFsYW5jZVBhZ2VkUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFkZHJlc3NCYWxhbmNlUGFnZWRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEFkZHJlc3NCYWxhbmNlUGFnZWRSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBZGRyZXNzQmFsYW5jZVBhZ2VkUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBZGRyZXNzQmFsYW5jZVBhZ2VkUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBZGRyZXNzQmFsYW5jZVBhZ2VkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmFkZHJlc3NfYmFsYW5jZV9pdGVtX2R0by5BZGRyZXNzQmFsYW5jZUl0ZW1EdG8oCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfYWRkcmVzcyA9ICcweDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmFsYW5jZSA9ICcxMDAwMDAwMDAwMDAwMDAwMDAwJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RfdXBkYXRlZCA9ICcyMDIzLTEyLTAxVDEyOjAwWicsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgbmV4dCA9ICdNakF5TXkweE1pMHhNeUF5TURvek5qb3dPQzR6TURJPTpNVEV3TUE9PScsCiAgICAgICAgICAgICAgICBwcmV2ID0gJ2RHaHBjeUJwY3lCaElIQnlaWFpwYjNWeklHTjFjbk52Y2c9PScsCiAgICAgICAgICAgICAgICB0b3RhbCA9IDE1MAogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFkZHJlc3NCYWxhbmNlUGFnZWRSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYWRkcmVzc19iYWxhbmNlX2l0ZW1fZHRvLkFkZHJlc3NCYWxhbmNlSXRlbUR0bygKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9hZGRyZXNzID0gJzB4MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MCcsIAogICAgICAgICAgICAgICAgICAgICAgICBiYWxhbmNlID0gJzEwMDAwMDAwMDAwMDAwMDAwMDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF91cGRhdGVkID0gJzIwMjMtMTItMDFUMTI6MDBaJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QWRkcmVzc0JhbGFuY2VQYWdlZFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQWRkcmVzc0JhbGFuY2VQYWdlZFJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_address_not_available_error.py b/test/test_address_not_available_error.py index 330f7e6e..3a0bb546 100644 --- a/test/test_address_not_available_error.py +++ b/test/test_address_not_available_error.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.address_not_available_error import AddressNotAvailableError - - -class TestAddressNotAvailableError(unittest.TestCase): - """AddressNotAvailableError unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AddressNotAvailableError: - """Test AddressNotAvailableError - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AddressNotAvailableError` - """ - model = AddressNotAvailableError() - if include_optional: - return AddressNotAvailableError( - message = 'Address is already taken', - code = 409 - ) - else: - return AddressNotAvailableError( - message = 'Address is already taken', - code = 409, - ) - """ - - def testAddressNotAvailableError(self): - """Test AddressNotAvailableError""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZHJlc3Nfbm90X2F2YWlsYWJsZV9lcnJvciBpbXBvcnQgQWRkcmVzc05vdEF2YWlsYWJsZUVycm9yCgoKY2xhc3MgVGVzdEFkZHJlc3NOb3RBdmFpbGFibGVFcnJvcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBZGRyZXNzTm90QXZhaWxhYmxlRXJyb3IgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFkZHJlc3NOb3RBdmFpbGFibGVFcnJvcjoKICAgICAgICAiIiJUZXN0IEFkZHJlc3NOb3RBdmFpbGFibGVFcnJvcgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBZGRyZXNzTm90QXZhaWxhYmxlRXJyb3JgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBZGRyZXNzTm90QXZhaWxhYmxlRXJyb3IoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBZGRyZXNzTm90QXZhaWxhYmxlRXJyb3IoCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ0FkZHJlc3MgaXMgYWxyZWFkeSB0YWtlbicsCiAgICAgICAgICAgICAgICBjb2RlID0gNDA5CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQWRkcmVzc05vdEF2YWlsYWJsZUVycm9yKAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdBZGRyZXNzIGlzIGFscmVhZHkgdGFrZW4nLAogICAgICAgICAgICAgICAgY29kZSA9IDQwOSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBZGRyZXNzTm90QXZhaWxhYmxlRXJyb3Ioc2VsZik6CiAgICAgICAgIiIiVGVzdCBBZGRyZXNzTm90QXZhaWxhYmxlRXJyb3IiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_address_registry_error.py b/test/test_address_registry_error.py index 8493ee76..7ed9fb1f 100644 --- a/test/test_address_registry_error.py +++ b/test/test_address_registry_error.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.address_registry_error import AddressRegistryError - - -class TestAddressRegistryError(unittest.TestCase): - """AddressRegistryError unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AddressRegistryError: - """Test AddressRegistryError - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AddressRegistryError` - """ - model = AddressRegistryError() - if include_optional: - return AddressRegistryError( - code = 56, - message = '' - ) - else: - return AddressRegistryError( - message = '', - ) - """ - - def testAddressRegistryError(self): - """Test AddressRegistryError""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZHJlc3NfcmVnaXN0cnlfZXJyb3IgaW1wb3J0IEFkZHJlc3NSZWdpc3RyeUVycm9yCgoKY2xhc3MgVGVzdEFkZHJlc3NSZWdpc3RyeUVycm9yKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFkZHJlc3NSZWdpc3RyeUVycm9yIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBZGRyZXNzUmVnaXN0cnlFcnJvcjoKICAgICAgICAiIiJUZXN0IEFkZHJlc3NSZWdpc3RyeUVycm9yCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFkZHJlc3NSZWdpc3RyeUVycm9yYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQWRkcmVzc1JlZ2lzdHJ5RXJyb3IoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBZGRyZXNzUmVnaXN0cnlFcnJvcigKICAgICAgICAgICAgICAgIGNvZGUgPSA1NiwKICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFkZHJlc3NSZWdpc3RyeUVycm9yKAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFkZHJlc3NSZWdpc3RyeUVycm9yKHNlbGYpOgogICAgICAgICIiIlRlc3QgQWRkcmVzc1JlZ2lzdHJ5RXJyb3IiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_address_registry_legal_entity.py b/test/test_address_registry_legal_entity.py index f34d6241..9c4dd6d6 100644 --- a/test/test_address_registry_legal_entity.py +++ b/test/test_address_registry_legal_entity.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.address_registry_legal_entity import AddressRegistryLegalEntity - - -class TestAddressRegistryLegalEntity(unittest.TestCase): - """AddressRegistryLegalEntity unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AddressRegistryLegalEntity: - """Test AddressRegistryLegalEntity - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AddressRegistryLegalEntity` - """ - model = AddressRegistryLegalEntity() - if include_optional: - return AddressRegistryLegalEntity( - company_name = 'ACME Corporation', - country_code = 'US', - company_id = '550e8400-e29b-41d4-a716-446655440000' - ) - else: - return AddressRegistryLegalEntity( - company_name = 'ACME Corporation', - country_code = 'US', - company_id = '550e8400-e29b-41d4-a716-446655440000', - ) - """ - - def testAddressRegistryLegalEntity(self): - """Test AddressRegistryLegalEntity""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFkZHJlc3NfcmVnaXN0cnlfbGVnYWxfZW50aXR5IGltcG9ydCBBZGRyZXNzUmVnaXN0cnlMZWdhbEVudGl0eQoKCmNsYXNzIFRlc3RBZGRyZXNzUmVnaXN0cnlMZWdhbEVudGl0eSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBZGRyZXNzUmVnaXN0cnlMZWdhbEVudGl0eSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQWRkcmVzc1JlZ2lzdHJ5TGVnYWxFbnRpdHk6CiAgICAgICAgIiIiVGVzdCBBZGRyZXNzUmVnaXN0cnlMZWdhbEVudGl0eQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBZGRyZXNzUmVnaXN0cnlMZWdhbEVudGl0eWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFkZHJlc3NSZWdpc3RyeUxlZ2FsRW50aXR5KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQWRkcmVzc1JlZ2lzdHJ5TGVnYWxFbnRpdHkoCiAgICAgICAgICAgICAgICBjb21wYW55X25hbWUgPSAnQUNNRSBDb3Jwb3JhdGlvbicsCiAgICAgICAgICAgICAgICBjb3VudHJ5X2NvZGUgPSAnVVMnLAogICAgICAgICAgICAgICAgY29tcGFueV9pZCA9ICc1NTBlODQwMC1lMjliLTQxZDQtYTcxNi00NDY2NTU0NDAwMDAnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQWRkcmVzc1JlZ2lzdHJ5TGVnYWxFbnRpdHkoCiAgICAgICAgICAgICAgICBjb21wYW55X25hbWUgPSAnQUNNRSBDb3Jwb3JhdGlvbicsCiAgICAgICAgICAgICAgICBjb3VudHJ5X2NvZGUgPSAnVVMnLAogICAgICAgICAgICAgICAgY29tcGFueV9pZCA9ICc1NTBlODQwMC1lMjliLTQxZDQtYTcxNi00NDY2NTU0NDAwMDAnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFkZHJlc3NSZWdpc3RyeUxlZ2FsRW50aXR5KHNlbGYpOgogICAgICAgICIiIlRlc3QgQWRkcmVzc1JlZ2lzdHJ5TGVnYWxFbnRpdHkiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_alert_exposure_type_enum.py b/test/test_alert_exposure_type_enum.py index 1f6a16d0..aa39e2da 100644 --- a/test/test_alert_exposure_type_enum.py +++ b/test/test_alert_exposure_type_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.alert_exposure_type_enum import AlertExposureTypeEnum - - -class TestAlertExposureTypeEnum(unittest.TestCase): - """AlertExposureTypeEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testAlertExposureTypeEnum(self): - """Test AlertExposureTypeEnum""" - # inst = AlertExposureTypeEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFsZXJ0X2V4cG9zdXJlX3R5cGVfZW51bSBpbXBvcnQgQWxlcnRFeHBvc3VyZVR5cGVFbnVtCgoKY2xhc3MgVGVzdEFsZXJ0RXhwb3N1cmVUeXBlRW51bSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBbGVydEV4cG9zdXJlVHlwZUVudW0gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0QWxlcnRFeHBvc3VyZVR5cGVFbnVtKHNlbGYpOgogICAgICAgICIiIlRlc3QgQWxlcnRFeHBvc3VyZVR5cGVFbnVtIiIiCiAgICAgICAgIyBpbnN0ID0gQWxlcnRFeHBvc3VyZVR5cGVFbnVtKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_alert_level_enum.py b/test/test_alert_level_enum.py index 6d3be3ea..dcb4ae46 100644 --- a/test/test_alert_level_enum.py +++ b/test/test_alert_level_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.alert_level_enum import AlertLevelEnum - - -class TestAlertLevelEnum(unittest.TestCase): - """AlertLevelEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testAlertLevelEnum(self): - """Test AlertLevelEnum""" - # inst = AlertLevelEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFsZXJ0X2xldmVsX2VudW0gaW1wb3J0IEFsZXJ0TGV2ZWxFbnVtCgoKY2xhc3MgVGVzdEFsZXJ0TGV2ZWxFbnVtKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFsZXJ0TGV2ZWxFbnVtIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdEFsZXJ0TGV2ZWxFbnVtKHNlbGYpOgogICAgICAgICIiIlRlc3QgQWxlcnRMZXZlbEVudW0iIiIKICAgICAgICAjIGluc3QgPSBBbGVydExldmVsRW51bSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_aml_alert.py b/test/test_aml_alert.py index a89e8cb9..aa626eaa 100644 --- a/test/test_aml_alert.py +++ b/test/test_aml_alert.py @@ -1,66 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.aml_alert import AmlAlert - - -class TestAmlAlert(unittest.TestCase): - """AmlAlert unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AmlAlert: - """Test AmlAlert - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AmlAlert` - """ - model = AmlAlert() - if include_optional: - return AmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101 - ) - else: - return AmlAlert( - alert_level = 'HIGH', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - ) - """ - - def testAmlAlert(self): - """Test AmlAlert""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF9hbGVydCBpbXBvcnQgQW1sQWxlcnQKCgpjbGFzcyBUZXN0QW1sQWxlcnQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQW1sQWxlcnQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFtbEFsZXJ0OgogICAgICAgICIiIlRlc3QgQW1sQWxlcnQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQW1sQWxlcnRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBbWxBbGVydCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFtbEFsZXJ0KAogICAgICAgICAgICAgICAgYWxlcnRfbGV2ZWwgPSAnSElHSCcsCiAgICAgICAgICAgICAgICBhbGVydF9uYW1lID0gJ1NhbmN0aW9ucyBNYXRjaCcsCiAgICAgICAgICAgICAgICBjYXRlZ29yeSA9ICdTQU5DVElPTkVEX0VOVElUWScsCiAgICAgICAgICAgICAgICBzZXJ2aWNlID0gJ0NIQUlOQUxZU0lTJywKICAgICAgICAgICAgICAgIGV4dGVybmFsX2lkID0gJ2FsZXJ0XzEyMzQ1JywKICAgICAgICAgICAgICAgIGFsZXJ0X2Ftb3VudCA9IDEwMDAuNSwKICAgICAgICAgICAgICAgIGV4cG9zdXJlX3R5cGUgPSAnRElSRUNUJywKICAgICAgICAgICAgICAgIHBvbGljeV9hY3Rpb24gPSAnQkxPQ0snLAogICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQgPSAxMDEKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBbWxBbGVydCgKICAgICAgICAgICAgICAgIGFsZXJ0X2xldmVsID0gJ0hJR0gnLAogICAgICAgICAgICAgICAgZXh0ZXJuYWxfaWQgPSAnYWxlcnRfMTIzNDUnLAogICAgICAgICAgICAgICAgYWxlcnRfYW1vdW50ID0gMTAwMC41LAogICAgICAgICAgICAgICAgZXhwb3N1cmVfdHlwZSA9ICdESVJFQ1QnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFtbEFsZXJ0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQW1sQWxlcnQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_aml_matched_rule.py b/test/test_aml_matched_rule.py index 3314fa2d..37898be8 100644 --- a/test/test_aml_matched_rule.py +++ b/test/test_aml_matched_rule.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.aml_matched_rule import AmlMatchedRule - - -class TestAmlMatchedRule(unittest.TestCase): - """AmlMatchedRule unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AmlMatchedRule: - """Test AmlMatchedRule - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AmlMatchedRule` - """ - model = AmlMatchedRule() - if include_optional: - return AmlMatchedRule( - rule_id = 'rule_001', - rule_name = 'High Risk Sanctions Check', - action = 'ALLOW' - ) - else: - return AmlMatchedRule( - ) - """ - - def testAmlMatchedRule(self): - """Test AmlMatchedRule""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF9tYXRjaGVkX3J1bGUgaW1wb3J0IEFtbE1hdGNoZWRSdWxlCgoKY2xhc3MgVGVzdEFtbE1hdGNoZWRSdWxlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFtbE1hdGNoZWRSdWxlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBbWxNYXRjaGVkUnVsZToKICAgICAgICAiIiJUZXN0IEFtbE1hdGNoZWRSdWxlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFtbE1hdGNoZWRSdWxlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQW1sTWF0Y2hlZFJ1bGUoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBbWxNYXRjaGVkUnVsZSgKICAgICAgICAgICAgICAgIHJ1bGVfaWQgPSAncnVsZV8wMDEnLAogICAgICAgICAgICAgICAgcnVsZV9uYW1lID0gJ0hpZ2ggUmlzayBTYW5jdGlvbnMgQ2hlY2snLAogICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FMTE9XJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFtbE1hdGNoZWRSdWxlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFtbE1hdGNoZWRSdWxlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQW1sTWF0Y2hlZFJ1bGUiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_aml_registration_result.py b/test/test_aml_registration_result.py index 26209785..ffdbc10b 100644 --- a/test/test_aml_registration_result.py +++ b/test/test_aml_registration_result.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.aml_registration_result import AmlRegistrationResult - - -class TestAmlRegistrationResult(unittest.TestCase): - """AmlRegistrationResult unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AmlRegistrationResult: - """Test AmlRegistrationResult - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AmlRegistrationResult` - """ - model = AmlRegistrationResult() - if include_optional: - return AmlRegistrationResult( - provider = '', - success = True, - timestamp = 1.337 - ) - else: - return AmlRegistrationResult( - ) - """ - - def testAmlRegistrationResult(self): - """Test AmlRegistrationResult""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF9yZWdpc3RyYXRpb25fcmVzdWx0IGltcG9ydCBBbWxSZWdpc3RyYXRpb25SZXN1bHQKCgpjbGFzcyBUZXN0QW1sUmVnaXN0cmF0aW9uUmVzdWx0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFtbFJlZ2lzdHJhdGlvblJlc3VsdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQW1sUmVnaXN0cmF0aW9uUmVzdWx0OgogICAgICAgICIiIlRlc3QgQW1sUmVnaXN0cmF0aW9uUmVzdWx0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFtbFJlZ2lzdHJhdGlvblJlc3VsdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFtbFJlZ2lzdHJhdGlvblJlc3VsdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFtbFJlZ2lzdHJhdGlvblJlc3VsdCgKICAgICAgICAgICAgICAgIHByb3ZpZGVyID0gJycsCiAgICAgICAgICAgICAgICBzdWNjZXNzID0gVHJ1ZSwKICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9IDEuMzM3CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQW1sUmVnaXN0cmF0aW9uUmVzdWx0KAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFtbFJlZ2lzdHJhdGlvblJlc3VsdChzZWxmKToKICAgICAgICAiIiJUZXN0IEFtbFJlZ2lzdHJhdGlvblJlc3VsdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_aml_registration_result_full_payload.py b/test/test_aml_registration_result_full_payload.py index f13304f9..bb49074a 100644 --- a/test/test_aml_registration_result_full_payload.py +++ b/test/test_aml_registration_result_full_payload.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.aml_registration_result_full_payload import ( - AmlRegistrationResultFullPayload, -) - - -class TestAmlRegistrationResultFullPayload(unittest.TestCase): - """AmlRegistrationResultFullPayload unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AmlRegistrationResultFullPayload: - """Test AmlRegistrationResultFullPayload - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AmlRegistrationResultFullPayload` - """ - model = AmlRegistrationResultFullPayload() - if include_optional: - return AmlRegistrationResultFullPayload( - provider = '', - success = True, - timestamp = 1.337 - ) - else: - return AmlRegistrationResultFullPayload( - ) - """ - - def testAmlRegistrationResultFullPayload(self): - """Test AmlRegistrationResultFullPayload""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF9yZWdpc3RyYXRpb25fcmVzdWx0X2Z1bGxfcGF5bG9hZCBpbXBvcnQgKAogICAgQW1sUmVnaXN0cmF0aW9uUmVzdWx0RnVsbFBheWxvYWQsCikKCgpjbGFzcyBUZXN0QW1sUmVnaXN0cmF0aW9uUmVzdWx0RnVsbFBheWxvYWQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQW1sUmVnaXN0cmF0aW9uUmVzdWx0RnVsbFBheWxvYWQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFtbFJlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkOgogICAgICAgICIiIlRlc3QgQW1sUmVnaXN0cmF0aW9uUmVzdWx0RnVsbFBheWxvYWQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQW1sUmVnaXN0cmF0aW9uUmVzdWx0RnVsbFBheWxvYWRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBbWxSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFtbFJlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkKAogICAgICAgICAgICAgICAgcHJvdmlkZXIgPSAnJywKICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBUcnVlLAogICAgICAgICAgICAgICAgdGltZXN0YW1wID0gMS4zMzcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBbWxSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBbWxSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZChzZWxmKToKICAgICAgICAiIiJUZXN0IEFtbFJlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_aml_result.py b/test/test_aml_result.py index d2aafa52..47ddb273 100644 --- a/test/test_aml_result.py +++ b/test/test_aml_result.py @@ -1,80 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.aml_result import AmlResult - - -class TestAmlResult(unittest.TestCase): - """AmlResult unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AmlResult: - """Test AmlResult - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AmlResult` - """ - model = AmlResult() - if include_optional: - return AmlResult( - alerts = [ - fireblocks.models.aml_alert.AmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ) - ], - provider_response = { }, - matched_rule = fireblocks.models.aml_matched_rule.AmlMatchedRule( - rule_id = 'rule_001', - rule_name = 'High Risk Sanctions Check', - action = 'ALLOW', ), - matched_alert = fireblocks.models.aml_alert.AmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ) - ) - else: - return AmlResult( - ) - """ - - def testAmlResult(self): - """Test AmlResult""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF9yZXN1bHQgaW1wb3J0IEFtbFJlc3VsdAoKCmNsYXNzIFRlc3RBbWxSZXN1bHQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQW1sUmVzdWx0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBbWxSZXN1bHQ6CiAgICAgICAgIiIiVGVzdCBBbWxSZXN1bHQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQW1sUmVzdWx0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQW1sUmVzdWx0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQW1sUmVzdWx0KAogICAgICAgICAgICAgICAgYWxlcnRzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmFtbF9hbGVydC5BbWxBbGVydCgKICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRfbGV2ZWwgPSAnSElHSCcsIAogICAgICAgICAgICAgICAgICAgICAgICBhbGVydF9uYW1lID0gJ1NhbmN0aW9ucyBNYXRjaCcsIAogICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSA9ICdTQU5DVElPTkVEX0VOVElUWScsIAogICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlID0gJ0NIQUlOQUxZU0lTJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX2lkID0gJ2FsZXJ0XzEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X2Ftb3VudCA9IDEwMDAuNSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zdXJlX3R5cGUgPSAnRElSRUNUJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeV9hY3Rpb24gPSAnQkxPQ0snLCAKICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQgPSAxMDEsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgcHJvdmlkZXJfcmVzcG9uc2UgPSB7IH0sCiAgICAgICAgICAgICAgICBtYXRjaGVkX3J1bGUgPSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfbWF0Y2hlZF9ydWxlLkFtbE1hdGNoZWRSdWxlKAogICAgICAgICAgICAgICAgICAgIHJ1bGVfaWQgPSAncnVsZV8wMDEnLCAKICAgICAgICAgICAgICAgICAgICBydWxlX25hbWUgPSAnSGlnaCBSaXNrIFNhbmN0aW9ucyBDaGVjaycsIAogICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdBTExPVycsICksCiAgICAgICAgICAgICAgICBtYXRjaGVkX2FsZXJ0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX2FsZXJ0LkFtbEFsZXJ0KAogICAgICAgICAgICAgICAgICAgIGFsZXJ0X2xldmVsID0gJ0hJR0gnLCAKICAgICAgICAgICAgICAgICAgICBhbGVydF9uYW1lID0gJ1NhbmN0aW9ucyBNYXRjaCcsIAogICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gJ1NBTkNUSU9ORURfRU5USVRZJywgCiAgICAgICAgICAgICAgICAgICAgc2VydmljZSA9ICdDSEFJTkFMWVNJUycsIAogICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX2lkID0gJ2FsZXJ0XzEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgYWxlcnRfYW1vdW50ID0gMTAwMC41LCAKICAgICAgICAgICAgICAgICAgICBleHBvc3VyZV90eXBlID0gJ0RJUkVDVCcsIAogICAgICAgICAgICAgICAgICAgIHBvbGljeV9hY3Rpb24gPSAnQkxPQ0snLCAKICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZCA9IDEwMSwgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFtbFJlc3VsdCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBbWxSZXN1bHQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBBbWxSZXN1bHQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_aml_screening_result.py b/test/test_aml_screening_result.py index f9d2e750..621b24cc 100644 --- a/test/test_aml_screening_result.py +++ b/test/test_aml_screening_result.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.aml_screening_result import AmlScreeningResult - - -class TestAmlScreeningResult(unittest.TestCase): - """AmlScreeningResult unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AmlScreeningResult: - """Test AmlScreeningResult - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AmlScreeningResult` - """ - model = AmlScreeningResult() - if include_optional: - return AmlScreeningResult( - provider = '', - payload = None - ) - else: - return AmlScreeningResult( - ) - """ - - def testAmlScreeningResult(self): - """Test AmlScreeningResult""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF9zY3JlZW5pbmdfcmVzdWx0IGltcG9ydCBBbWxTY3JlZW5pbmdSZXN1bHQKCgpjbGFzcyBUZXN0QW1sU2NyZWVuaW5nUmVzdWx0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFtbFNjcmVlbmluZ1Jlc3VsdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQW1sU2NyZWVuaW5nUmVzdWx0OgogICAgICAgICIiIlRlc3QgQW1sU2NyZWVuaW5nUmVzdWx0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFtbFNjcmVlbmluZ1Jlc3VsdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFtbFNjcmVlbmluZ1Jlc3VsdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFtbFNjcmVlbmluZ1Jlc3VsdCgKICAgICAgICAgICAgICAgIHByb3ZpZGVyID0gJycsCiAgICAgICAgICAgICAgICBwYXlsb2FkID0gTm9uZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFtbFNjcmVlbmluZ1Jlc3VsdCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBbWxTY3JlZW5pbmdSZXN1bHQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBBbWxTY3JlZW5pbmdSZXN1bHQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_aml_status_enum.py b/test/test_aml_status_enum.py index 3ed0811d..3f1dc715 100644 --- a/test/test_aml_status_enum.py +++ b/test/test_aml_status_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.aml_status_enum import AmlStatusEnum - - -class TestAmlStatusEnum(unittest.TestCase): - """AmlStatusEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testAmlStatusEnum(self): - """Test AmlStatusEnum""" - # inst = AmlStatusEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF9zdGF0dXNfZW51bSBpbXBvcnQgQW1sU3RhdHVzRW51bQoKCmNsYXNzIFRlc3RBbWxTdGF0dXNFbnVtKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFtbFN0YXR1c0VudW0gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0QW1sU3RhdHVzRW51bShzZWxmKToKICAgICAgICAiIiJUZXN0IEFtbFN0YXR1c0VudW0iIiIKICAgICAgICAjIGluc3QgPSBBbWxTdGF0dXNFbnVtKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_aml_verdict_manual_request.py b/test/test_aml_verdict_manual_request.py index efcc196d..e7edee52 100644 --- a/test/test_aml_verdict_manual_request.py +++ b/test/test_aml_verdict_manual_request.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.aml_verdict_manual_request import AmlVerdictManualRequest - - -class TestAmlVerdictManualRequest(unittest.TestCase): - """AmlVerdictManualRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AmlVerdictManualRequest: - """Test AmlVerdictManualRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AmlVerdictManualRequest` - """ - model = AmlVerdictManualRequest() - if include_optional: - return AmlVerdictManualRequest( - verdict = 'ACCEPT', - tx_id = '550e8400-e29b-41d4-a716-446655440000' - ) - else: - return AmlVerdictManualRequest( - verdict = 'ACCEPT', - tx_id = '550e8400-e29b-41d4-a716-446655440000', - ) - """ - - def testAmlVerdictManualRequest(self): - """Test AmlVerdictManualRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF92ZXJkaWN0X21hbnVhbF9yZXF1ZXN0IGltcG9ydCBBbWxWZXJkaWN0TWFudWFsUmVxdWVzdAoKCmNsYXNzIFRlc3RBbWxWZXJkaWN0TWFudWFsUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBbWxWZXJkaWN0TWFudWFsUmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQW1sVmVyZGljdE1hbnVhbFJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBBbWxWZXJkaWN0TWFudWFsUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBbWxWZXJkaWN0TWFudWFsUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFtbFZlcmRpY3RNYW51YWxSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQW1sVmVyZGljdE1hbnVhbFJlcXVlc3QoCiAgICAgICAgICAgICAgICB2ZXJkaWN0ID0gJ0FDQ0VQVCcsCiAgICAgICAgICAgICAgICB0eF9pZCA9ICc1NTBlODQwMC1lMjliLTQxZDQtYTcxNi00NDY2NTU0NDAwMDAnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQW1sVmVyZGljdE1hbnVhbFJlcXVlc3QoCiAgICAgICAgICAgICAgICB2ZXJkaWN0ID0gJ0FDQ0VQVCcsCiAgICAgICAgICAgICAgICB0eF9pZCA9ICc1NTBlODQwMC1lMjliLTQxZDQtYTcxNi00NDY2NTU0NDAwMDAnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFtbFZlcmRpY3RNYW51YWxSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQW1sVmVyZGljdE1hbnVhbFJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_aml_verdict_manual_response.py b/test/test_aml_verdict_manual_response.py index 44cd6247..445ebad5 100644 --- a/test/test_aml_verdict_manual_response.py +++ b/test/test_aml_verdict_manual_response.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.aml_verdict_manual_response import AmlVerdictManualResponse - - -class TestAmlVerdictManualResponse(unittest.TestCase): - """AmlVerdictManualResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AmlVerdictManualResponse: - """Test AmlVerdictManualResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AmlVerdictManualResponse` - """ - model = AmlVerdictManualResponse() - if include_optional: - return AmlVerdictManualResponse( - success = True, - message = 'AML verdict set successfully' - ) - else: - return AmlVerdictManualResponse( - success = True, - message = 'AML verdict set successfully', - ) - """ - - def testAmlVerdictManualResponse(self): - """Test AmlVerdictManualResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtbF92ZXJkaWN0X21hbnVhbF9yZXNwb25zZSBpbXBvcnQgQW1sVmVyZGljdE1hbnVhbFJlc3BvbnNlCgoKY2xhc3MgVGVzdEFtbFZlcmRpY3RNYW51YWxSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBbWxWZXJkaWN0TWFudWFsUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFtbFZlcmRpY3RNYW51YWxSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEFtbFZlcmRpY3RNYW51YWxSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBbWxWZXJkaWN0TWFudWFsUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBbWxWZXJkaWN0TWFudWFsUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBbWxWZXJkaWN0TWFudWFsUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBzdWNjZXNzID0gVHJ1ZSwKICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnQU1MIHZlcmRpY3Qgc2V0IHN1Y2Nlc3NmdWxseScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBbWxWZXJkaWN0TWFudWFsUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBzdWNjZXNzID0gVHJ1ZSwKICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnQU1MIHZlcmRpY3Qgc2V0IHN1Y2Nlc3NmdWxseScsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QW1sVmVyZGljdE1hbnVhbFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQW1sVmVyZGljdE1hbnVhbFJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_amount_and_chain_descriptor.py b/test/test_amount_and_chain_descriptor.py index d2eb47e4..03dced70 100644 --- a/test/test_amount_and_chain_descriptor.py +++ b/test/test_amount_and_chain_descriptor.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.amount_and_chain_descriptor import AmountAndChainDescriptor - - -class TestAmountAndChainDescriptor(unittest.TestCase): - """AmountAndChainDescriptor unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AmountAndChainDescriptor: - """Test AmountAndChainDescriptor - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AmountAndChainDescriptor` - """ - model = AmountAndChainDescriptor() - if include_optional: - return AmountAndChainDescriptor( - chain_descriptor = 'ETH', - amount = '32.007149606' - ) - else: - return AmountAndChainDescriptor( - chain_descriptor = 'ETH', - amount = '32.007149606', - ) - """ - - def testAmountAndChainDescriptor(self): - """Test AmountAndChainDescriptor""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9hbmRfY2hhaW5fZGVzY3JpcHRvciBpbXBvcnQgQW1vdW50QW5kQ2hhaW5EZXNjcmlwdG9yCgoKY2xhc3MgVGVzdEFtb3VudEFuZENoYWluRGVzY3JpcHRvcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBbW91bnRBbmRDaGFpbkRlc2NyaXB0b3IgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFtb3VudEFuZENoYWluRGVzY3JpcHRvcjoKICAgICAgICAiIiJUZXN0IEFtb3VudEFuZENoYWluRGVzY3JpcHRvcgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBbW91bnRBbmRDaGFpbkRlc2NyaXB0b3JgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBbW91bnRBbmRDaGFpbkRlc2NyaXB0b3IoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBbW91bnRBbmRDaGFpbkRlc2NyaXB0b3IoCiAgICAgICAgICAgICAgICBjaGFpbl9kZXNjcmlwdG9yID0gJ0VUSCcsCiAgICAgICAgICAgICAgICBhbW91bnQgPSAnMzIuMDA3MTQ5NjA2JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFtb3VudEFuZENoYWluRGVzY3JpcHRvcigKICAgICAgICAgICAgICAgIGNoYWluX2Rlc2NyaXB0b3IgPSAnRVRIJywKICAgICAgICAgICAgICAgIGFtb3VudCA9ICczMi4wMDcxNDk2MDYnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFtb3VudEFuZENoYWluRGVzY3JpcHRvcihzZWxmKToKICAgICAgICAiIiJUZXN0IEFtb3VudEFuZENoYWluRGVzY3JpcHRvciIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_amount_config.py b/test/test_amount_config.py index 3f32e72b..c10d563c 100644 --- a/test/test_amount_config.py +++ b/test/test_amount_config.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.amount_config import AmountConfig - - -class TestAmountConfig(unittest.TestCase): - """AmountConfig unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AmountConfig: - """Test AmountConfig - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AmountConfig` - """ - model = AmountConfig() - if include_optional: - return AmountConfig( - range = {"min":"100","max":"10000"}, - currency = 'USD' - ) - else: - return AmountConfig( - range = {"min":"100","max":"10000"}, - ) - """ - - def testAmountConfig(self): - """Test AmountConfig""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9jb25maWcgaW1wb3J0IEFtb3VudENvbmZpZwoKCmNsYXNzIFRlc3RBbW91bnRDb25maWcodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQW1vdW50Q29uZmlnIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBbW91bnRDb25maWc6CiAgICAgICAgIiIiVGVzdCBBbW91bnRDb25maWcKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQW1vdW50Q29uZmlnYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQW1vdW50Q29uZmlnKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQW1vdW50Q29uZmlnKAogICAgICAgICAgICAgICAgcmFuZ2UgPSB7Im1pbiI6IjEwMCIsIm1heCI6IjEwMDAwIn0sCiAgICAgICAgICAgICAgICBjdXJyZW5jeSA9ICdVU0QnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQW1vdW50Q29uZmlnKAogICAgICAgICAgICAgICAgcmFuZ2UgPSB7Im1pbiI6IjEwMCIsIm1heCI6IjEwMDAwIn0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QW1vdW50Q29uZmlnKHNlbGYpOgogICAgICAgICIiIlRlc3QgQW1vdW50Q29uZmlnIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_amount_config_currency.py b/test/test_amount_config_currency.py index b42a41a6..9c669e0a 100644 --- a/test/test_amount_config_currency.py +++ b/test/test_amount_config_currency.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.amount_config_currency import AmountConfigCurrency - - -class TestAmountConfigCurrency(unittest.TestCase): - """AmountConfigCurrency unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AmountConfigCurrency: - """Test AmountConfigCurrency - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AmountConfigCurrency` - """ - model = AmountConfigCurrency() - if include_optional: - return AmountConfigCurrency( - currency = 'USD' - ) - else: - return AmountConfigCurrency( - ) - """ - - def testAmountConfigCurrency(self): - """Test AmountConfigCurrency""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9jb25maWdfY3VycmVuY3kgaW1wb3J0IEFtb3VudENvbmZpZ0N1cnJlbmN5CgoKY2xhc3MgVGVzdEFtb3VudENvbmZpZ0N1cnJlbmN5KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFtb3VudENvbmZpZ0N1cnJlbmN5IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBbW91bnRDb25maWdDdXJyZW5jeToKICAgICAgICAiIiJUZXN0IEFtb3VudENvbmZpZ0N1cnJlbmN5CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFtb3VudENvbmZpZ0N1cnJlbmN5YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQW1vdW50Q29uZmlnQ3VycmVuY3koKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBbW91bnRDb25maWdDdXJyZW5jeSgKICAgICAgICAgICAgICAgIGN1cnJlbmN5ID0gJ1VTRCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBbW91bnRDb25maWdDdXJyZW5jeSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBbW91bnRDb25maWdDdXJyZW5jeShzZWxmKToKICAgICAgICAiIiJUZXN0IEFtb3VudENvbmZpZ0N1cnJlbmN5IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_amount_info.py b/test/test_amount_info.py index be0b42d6..72ae96f5 100644 --- a/test/test_amount_info.py +++ b/test/test_amount_info.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.amount_info import AmountInfo - - -class TestAmountInfo(unittest.TestCase): - """AmountInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AmountInfo: - """Test AmountInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AmountInfo` - """ - model = AmountInfo() - if include_optional: - return AmountInfo( - amount = '', - requested_amount = '', - net_amount = '', - amount_usd = '' - ) - else: - return AmountInfo( - ) - """ - - def testAmountInfo(self): - """Test AmountInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9pbmZvIGltcG9ydCBBbW91bnRJbmZvCgoKY2xhc3MgVGVzdEFtb3VudEluZm8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQW1vdW50SW5mbyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQW1vdW50SW5mbzoKICAgICAgICAiIiJUZXN0IEFtb3VudEluZm8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQW1vdW50SW5mb2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFtb3VudEluZm8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBbW91bnRJbmZvKAogICAgICAgICAgICAgICAgYW1vdW50ID0gJycsCiAgICAgICAgICAgICAgICByZXF1ZXN0ZWRfYW1vdW50ID0gJycsCiAgICAgICAgICAgICAgICBuZXRfYW1vdW50ID0gJycsCiAgICAgICAgICAgICAgICBhbW91bnRfdXNkID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBbW91bnRJbmZvKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFtb3VudEluZm8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBBbW91bnRJbmZvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_amount_over_time_config.py b/test/test_amount_over_time_config.py index a274a767..43049913 100644 --- a/test/test_amount_over_time_config.py +++ b/test/test_amount_over_time_config.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.amount_over_time_config import AmountOverTimeConfig - - -class TestAmountOverTimeConfig(unittest.TestCase): - """AmountOverTimeConfig unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AmountOverTimeConfig: - """Test AmountOverTimeConfig - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AmountOverTimeConfig` - """ - model = AmountOverTimeConfig() - if include_optional: - return AmountOverTimeConfig( - range = {"min":"100","max":"10000"}, - currency = 'USD', - time_period = fireblocks.models.time_period_config.TimePeriodConfig( - seconds = '86400', - initiator = 'PER_SINGLE_MATCH', - source = 'PER_SINGLE_MATCH', - destination = 'PER_SINGLE_MATCH', ) - ) - else: - return AmountOverTimeConfig( - range = {"min":"100","max":"10000"}, - currency = 'USD', - time_period = fireblocks.models.time_period_config.TimePeriodConfig( - seconds = '86400', - initiator = 'PER_SINGLE_MATCH', - source = 'PER_SINGLE_MATCH', - destination = 'PER_SINGLE_MATCH', ), - ) - """ - - def testAmountOverTimeConfig(self): - """Test AmountOverTimeConfig""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9vdmVyX3RpbWVfY29uZmlnIGltcG9ydCBBbW91bnRPdmVyVGltZUNvbmZpZwoKCmNsYXNzIFRlc3RBbW91bnRPdmVyVGltZUNvbmZpZyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBbW91bnRPdmVyVGltZUNvbmZpZyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQW1vdW50T3ZlclRpbWVDb25maWc6CiAgICAgICAgIiIiVGVzdCBBbW91bnRPdmVyVGltZUNvbmZpZwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBbW91bnRPdmVyVGltZUNvbmZpZ2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFtb3VudE92ZXJUaW1lQ29uZmlnKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQW1vdW50T3ZlclRpbWVDb25maWcoCiAgICAgICAgICAgICAgICByYW5nZSA9IHsibWluIjoiMTAwIiwibWF4IjoiMTAwMDAifSwKICAgICAgICAgICAgICAgIGN1cnJlbmN5ID0gJ1VTRCcsCiAgICAgICAgICAgICAgICB0aW1lX3BlcmlvZCA9IGZpcmVibG9ja3MubW9kZWxzLnRpbWVfcGVyaW9kX2NvbmZpZy5UaW1lUGVyaW9kQ29uZmlnKAogICAgICAgICAgICAgICAgICAgIHNlY29uZHMgPSAnODY0MDAnLCAKICAgICAgICAgICAgICAgICAgICBpbml0aWF0b3IgPSAnUEVSX1NJTkdMRV9NQVRDSCcsIAogICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9ICdQRVJfU0lOR0xFX01BVENIJywgCiAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSAnUEVSX1NJTkdMRV9NQVRDSCcsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBbW91bnRPdmVyVGltZUNvbmZpZygKICAgICAgICAgICAgICAgIHJhbmdlID0geyJtaW4iOiIxMDAiLCJtYXgiOiIxMDAwMCJ9LAogICAgICAgICAgICAgICAgY3VycmVuY3kgPSAnVVNEJywKICAgICAgICAgICAgICAgIHRpbWVfcGVyaW9kID0gZmlyZWJsb2Nrcy5tb2RlbHMudGltZV9wZXJpb2RfY29uZmlnLlRpbWVQZXJpb2RDb25maWcoCiAgICAgICAgICAgICAgICAgICAgc2Vjb25kcyA9ICc4NjQwMCcsIAogICAgICAgICAgICAgICAgICAgIGluaXRpYXRvciA9ICdQRVJfU0lOR0xFX01BVENIJywgCiAgICAgICAgICAgICAgICAgICAgc291cmNlID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLCAKICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9ICdQRVJfU0lOR0xFX01BVENIJywgKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBbW91bnRPdmVyVGltZUNvbmZpZyhzZWxmKToKICAgICAgICAiIiJUZXN0IEFtb3VudE92ZXJUaW1lQ29uZmlnIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_amount_range.py b/test/test_amount_range.py index 3ac678e3..a8718fca 100644 --- a/test/test_amount_range.py +++ b/test/test_amount_range.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.amount_range import AmountRange - - -class TestAmountRange(unittest.TestCase): - """AmountRange unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AmountRange: - """Test AmountRange - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AmountRange` - """ - model = AmountRange() - if include_optional: - return AmountRange( - range = {"min":"100","max":"10000"} - ) - else: - return AmountRange( - range = {"min":"100","max":"10000"}, - ) - """ - - def testAmountRange(self): - """Test AmountRange""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9yYW5nZSBpbXBvcnQgQW1vdW50UmFuZ2UKCgpjbGFzcyBUZXN0QW1vdW50UmFuZ2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQW1vdW50UmFuZ2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFtb3VudFJhbmdlOgogICAgICAgICIiIlRlc3QgQW1vdW50UmFuZ2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQW1vdW50UmFuZ2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBbW91bnRSYW5nZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFtb3VudFJhbmdlKAogICAgICAgICAgICAgICAgcmFuZ2UgPSB7Im1pbiI6IjEwMCIsIm1heCI6IjEwMDAwIn0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBbW91bnRSYW5nZSgKICAgICAgICAgICAgICAgIHJhbmdlID0geyJtaW4iOiIxMDAiLCJtYXgiOiIxMDAwMCJ9LAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFtb3VudFJhbmdlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQW1vdW50UmFuZ2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_amount_range_min_max.py b/test/test_amount_range_min_max.py index b94158c3..3a102814 100644 --- a/test/test_amount_range_min_max.py +++ b/test/test_amount_range_min_max.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.amount_range_min_max import AmountRangeMinMax - - -class TestAmountRangeMinMax(unittest.TestCase): - """AmountRangeMinMax unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AmountRangeMinMax: - """Test AmountRangeMinMax - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AmountRangeMinMax` - """ - model = AmountRangeMinMax() - if include_optional: - return AmountRangeMinMax( - min = '100', - max = '10000' - ) - else: - return AmountRangeMinMax( - ) - """ - - def testAmountRangeMinMax(self): - """Test AmountRangeMinMax""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9yYW5nZV9taW5fbWF4IGltcG9ydCBBbW91bnRSYW5nZU1pbk1heAoKCmNsYXNzIFRlc3RBbW91bnRSYW5nZU1pbk1heCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBbW91bnRSYW5nZU1pbk1heCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQW1vdW50UmFuZ2VNaW5NYXg6CiAgICAgICAgIiIiVGVzdCBBbW91bnRSYW5nZU1pbk1heAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBbW91bnRSYW5nZU1pbk1heGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFtb3VudFJhbmdlTWluTWF4KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQW1vdW50UmFuZ2VNaW5NYXgoCiAgICAgICAgICAgICAgICBtaW4gPSAnMTAwJywKICAgICAgICAgICAgICAgIG1heCA9ICcxMDAwMCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBbW91bnRSYW5nZU1pbk1heCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBbW91bnRSYW5nZU1pbk1heChzZWxmKToKICAgICAgICAiIiJUZXN0IEFtb3VudFJhbmdlTWluTWF4IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_amount_range_min_max2.py b/test/test_amount_range_min_max2.py index 209e3898..95ff3918 100644 --- a/test/test_amount_range_min_max2.py +++ b/test/test_amount_range_min_max2.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.amount_range_min_max2 import AmountRangeMinMax2 - - -class TestAmountRangeMinMax2(unittest.TestCase): - """AmountRangeMinMax2 unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AmountRangeMinMax2: - """Test AmountRangeMinMax2 - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AmountRangeMinMax2` - """ - model = AmountRangeMinMax2() - if include_optional: - return AmountRangeMinMax2( - min = '100', - max = '10000' - ) - else: - return AmountRangeMinMax2( - min = '100', - ) - """ - - def testAmountRangeMinMax2(self): - """Test AmountRangeMinMax2""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9yYW5nZV9taW5fbWF4MiBpbXBvcnQgQW1vdW50UmFuZ2VNaW5NYXgyCgoKY2xhc3MgVGVzdEFtb3VudFJhbmdlTWluTWF4Mih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBbW91bnRSYW5nZU1pbk1heDIgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFtb3VudFJhbmdlTWluTWF4MjoKICAgICAgICAiIiJUZXN0IEFtb3VudFJhbmdlTWluTWF4MgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBbW91bnRSYW5nZU1pbk1heDJgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBbW91bnRSYW5nZU1pbk1heDIoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBbW91bnRSYW5nZU1pbk1heDIoCiAgICAgICAgICAgICAgICBtaW4gPSAnMTAwJywKICAgICAgICAgICAgICAgIG1heCA9ICcxMDAwMCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBbW91bnRSYW5nZU1pbk1heDIoCiAgICAgICAgICAgICAgICBtaW4gPSAnMTAwJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBbW91bnRSYW5nZU1pbk1heDIoc2VsZik6CiAgICAgICAgIiIiVGVzdCBBbW91bnRSYW5nZU1pbk1heDIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_api_key.py b/test/test_api_key.py index 6a88f90e..ffc640df 100644 --- a/test/test_api_key.py +++ b/test/test_api_key.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.api_key import ApiKey - - -class TestApiKey(unittest.TestCase): - """ApiKey unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ApiKey: - """Test ApiKey - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ApiKey` - """ - model = ApiKey() - if include_optional: - return ApiKey( - id = '44fcead0-7053-4831-a53a-df7fb90d440f', - last_seen = '2021-07-01T00:00Z', - callback_handler = fireblocks.models.callback_handler.CallbackHandler( - url = 'https://example.com/callback-handler', - public_key = '-----BEGIN PUBLIC KEY----- -... truncated ... ------END PUBLIC KEY-----', - cert_public_key_hash = '', ) - ) - else: - return ApiKey( - id = '44fcead0-7053-4831-a53a-df7fb90d440f', - ) - """ - - def testApiKey(self): - """Test ApiKey""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFwaV9rZXkgaW1wb3J0IEFwaUtleQoKCmNsYXNzIFRlc3RBcGlLZXkodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXBpS2V5IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBcGlLZXk6CiAgICAgICAgIiIiVGVzdCBBcGlLZXkKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQXBpS2V5YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQXBpS2V5KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQXBpS2V5KAogICAgICAgICAgICAgICAgaWQgPSAnNDRmY2VhZDAtNzA1My00ODMxLWE1M2EtZGY3ZmI5MGQ0NDBmJywKICAgICAgICAgICAgICAgIGxhc3Rfc2VlbiA9ICcyMDIxLTA3LTAxVDAwOjAwWicsCiAgICAgICAgICAgICAgICBjYWxsYmFja19oYW5kbGVyID0gZmlyZWJsb2Nrcy5tb2RlbHMuY2FsbGJhY2tfaGFuZGxlci5DYWxsYmFja0hhbmRsZXIoCiAgICAgICAgICAgICAgICAgICAgdXJsID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vY2FsbGJhY2staGFuZGxlcicsIAogICAgICAgICAgICAgICAgICAgIHB1YmxpY19rZXkgPSAnLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KLi4uIHRydW5jYXRlZCAuLi4KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tJywgCiAgICAgICAgICAgICAgICAgICAgY2VydF9wdWJsaWNfa2V5X2hhc2ggPSAnJywgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFwaUtleSgKICAgICAgICAgICAgICAgIGlkID0gJzQ0ZmNlYWQwLTcwNTMtNDgzMS1hNTNhLWRmN2ZiOTBkNDQwZicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QXBpS2V5KHNlbGYpOgogICAgICAgICIiIlRlc3QgQXBpS2V5IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_api_keys_paginated_response.py b/test/test_api_keys_paginated_response.py index 59770ad8..385bfea9 100644 --- a/test/test_api_keys_paginated_response.py +++ b/test/test_api_keys_paginated_response.py @@ -1,76 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.api_keys_paginated_response import ApiKeysPaginatedResponse - - -class TestApiKeysPaginatedResponse(unittest.TestCase): - """ApiKeysPaginatedResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ApiKeysPaginatedResponse: - """Test ApiKeysPaginatedResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ApiKeysPaginatedResponse` - """ - model = ApiKeysPaginatedResponse() - if include_optional: - return ApiKeysPaginatedResponse( - data = [ - fireblocks.models.api_key.ApiKey( - id = '44fcead0-7053-4831-a53a-df7fb90d440f', - last_seen = '2021-07-01T00:00Z', - callback_handler = fireblocks.models.callback_handler.CallbackHandler( - url = 'https://example.com/callback-handler', - public_key = '-----BEGIN PUBLIC KEY----- -... truncated ... ------END PUBLIC KEY-----', - cert_public_key_hash = '', ), ) - ], - next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9' - ) - else: - return ApiKeysPaginatedResponse( - data = [ - fireblocks.models.api_key.ApiKey( - id = '44fcead0-7053-4831-a53a-df7fb90d440f', - last_seen = '2021-07-01T00:00Z', - callback_handler = fireblocks.models.callback_handler.CallbackHandler( - url = 'https://example.com/callback-handler', - public_key = '-----BEGIN PUBLIC KEY----- -... truncated ... ------END PUBLIC KEY-----', - cert_public_key_hash = '', ), ) - ], - ) - """ - - def testApiKeysPaginatedResponse(self): - """Test ApiKeysPaginatedResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFwaV9rZXlzX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgQXBpS2V5c1BhZ2luYXRlZFJlc3BvbnNlCgoKY2xhc3MgVGVzdEFwaUtleXNQYWdpbmF0ZWRSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBcGlLZXlzUGFnaW5hdGVkUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFwaUtleXNQYWdpbmF0ZWRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEFwaUtleXNQYWdpbmF0ZWRSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBcGlLZXlzUGFnaW5hdGVkUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBcGlLZXlzUGFnaW5hdGVkUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBcGlLZXlzUGFnaW5hdGVkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmFwaV9rZXkuQXBpS2V5KAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICc0NGZjZWFkMC03MDUzLTQ4MzEtYTUzYS1kZjdmYjkwZDQ0MGYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9zZWVuID0gJzIwMjEtMDctMDFUMDA6MDBaJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrX2hhbmRsZXIgPSBmaXJlYmxvY2tzLm1vZGVscy5jYWxsYmFja19oYW5kbGVyLkNhbGxiYWNrSGFuZGxlcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9ICdodHRwczovL2V4YW1wbGUuY29tL2NhbGxiYWNrLWhhbmRsZXInLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY19rZXkgPSAnLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KLi4uIHRydW5jYXRlZCAuLi4KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0X3B1YmxpY19rZXlfaGFzaCA9ICcnLCApLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIG5leHQgPSAnZUowZVhBaU9pSktWMVFpTENKaGJHY09pSklVekkxTmlKOScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBcGlLZXlzUGFnaW5hdGVkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmFwaV9rZXkuQXBpS2V5KAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICc0NGZjZWFkMC03MDUzLTQ4MzEtYTUzYS1kZjdmYjkwZDQ0MGYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9zZWVuID0gJzIwMjEtMDctMDFUMDA6MDBaJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrX2hhbmRsZXIgPSBmaXJlYmxvY2tzLm1vZGVscy5jYWxsYmFja19oYW5kbGVyLkNhbGxiYWNrSGFuZGxlcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9ICdodHRwczovL2V4YW1wbGUuY29tL2NhbGxiYWNrLWhhbmRsZXInLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY19rZXkgPSAnLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KLi4uIHRydW5jYXRlZCAuLi4KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0X3B1YmxpY19rZXlfaGFzaCA9ICcnLCApLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBcGlLZXlzUGFnaW5hdGVkUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBBcGlLZXlzUGFnaW5hdGVkUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_api_user.py b/test/test_api_user.py index 5c91952a..8d54b7c8 100644 --- a/test/test_api_user.py +++ b/test/test_api_user.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.api_user import APIUser - - -class TestAPIUser(unittest.TestCase): - """APIUser unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> APIUser: - """Test APIUser - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `APIUser` - """ - model = APIUser() - if include_optional: - return APIUser( - id = '', - name = '', - role = 'OWNER', - enabled = True, - status = 'PENDING_ACTIVATION', - user_type = 'API' - ) - else: - return APIUser( - ) - """ - - def testAPIUser(self): - """Test APIUser""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFwaV91c2VyIGltcG9ydCBBUElVc2VyCgoKY2xhc3MgVGVzdEFQSVVzZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQVBJVXNlciB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQVBJVXNlcjoKICAgICAgICAiIiJUZXN0IEFQSVVzZXIKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQVBJVXNlcmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFQSVVzZXIoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBUElVc2VyKAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnJywKICAgICAgICAgICAgICAgIHJvbGUgPSAnT1dORVInLAogICAgICAgICAgICAgICAgZW5hYmxlZCA9IFRydWUsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnUEVORElOR19BQ1RJVkFUSU9OJywKICAgICAgICAgICAgICAgIHVzZXJfdHlwZSA9ICdBUEknCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQVBJVXNlcigKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBUElVc2VyKHNlbGYpOgogICAgICAgICIiIlRlc3QgQVBJVXNlciIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_api_user_api.py b/test/test_api_user_api.py index 7bd454fd..0116b78e 100644 --- a/test/test_api_user_api.py +++ b/test/test_api_user_api.py @@ -1,46 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.api_user_api import ApiUserApi - - -class TestApiUserApi(unittest.TestCase): - """ApiUserApi unit test stubs""" - - def setUp(self) -> None: - self.api = ApiUserApi() - - def tearDown(self) -> None: - pass - - def test_create_api_user(self) -> None: - """Test case for create_api_user - - Create API Key - """ - pass - - def test_get_api_users(self) -> None: - """Test case for get_api_users - - Get API Keys - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLmFwaV91c2VyX2FwaSBpbXBvcnQgQXBpVXNlckFwaQoKCmNsYXNzIFRlc3RBcGlVc2VyQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFwaVVzZXJBcGkgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgc2VsZi5hcGkgPSBBcGlVc2VyQXBpKCkKCiAgICBkZWYgdGVhckRvd24oc2VsZikgLT4gTm9uZToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY3JlYXRlX2FwaV91c2VyKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBjcmVhdGVfYXBpX3VzZXIKCiAgICAgICAgQ3JlYXRlIEFQSSBLZXkKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2FwaV91c2VycyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2FwaV91c2VycwoKICAgICAgICBHZXQgQVBJIEtleXMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_approval_request.py b/test/test_approval_request.py index 12b16561..6cf80532 100644 --- a/test/test_approval_request.py +++ b/test/test_approval_request.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.approval_request import ApprovalRequest - - -class TestApprovalRequest(unittest.TestCase): - """ApprovalRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ApprovalRequest: - """Test ApprovalRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ApprovalRequest` - """ - model = ApprovalRequest() - if include_optional: - return ApprovalRequest( - id = '12345', - type = 'TAG_UPDATE', - state = 'PENDING' - ) - else: - return ApprovalRequest( - id = '12345', - type = 'TAG_UPDATE', - state = 'PENDING', - ) - """ - - def testApprovalRequest(self): - """Test ApprovalRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFwcHJvdmFsX3JlcXVlc3QgaW1wb3J0IEFwcHJvdmFsUmVxdWVzdAoKCmNsYXNzIFRlc3RBcHByb3ZhbFJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXBwcm92YWxSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBcHByb3ZhbFJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBBcHByb3ZhbFJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQXBwcm92YWxSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQXBwcm92YWxSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQXBwcm92YWxSZXF1ZXN0KAogICAgICAgICAgICAgICAgaWQgPSAnMTIzNDUnLAogICAgICAgICAgICAgICAgdHlwZSA9ICdUQUdfVVBEQVRFJywKICAgICAgICAgICAgICAgIHN0YXRlID0gJ1BFTkRJTkcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQXBwcm92YWxSZXF1ZXN0KAogICAgICAgICAgICAgICAgaWQgPSAnMTIzNDUnLAogICAgICAgICAgICAgICAgdHlwZSA9ICdUQUdfVVBEQVRFJywKICAgICAgICAgICAgICAgIHN0YXRlID0gJ1BFTkRJTkcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFwcHJvdmFsUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IEFwcHJvdmFsUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_approvers_config.py b/test/test_approvers_config.py index ba77bfbd..9680abbc 100644 --- a/test/test_approvers_config.py +++ b/test/test_approvers_config.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.approvers_config import ApproversConfig - - -class TestApproversConfig(unittest.TestCase): - """ApproversConfig unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ApproversConfig: - """Test ApproversConfig - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ApproversConfig` - """ - model = ApproversConfig() - if include_optional: - return ApproversConfig( - can_initiator_approve = False, - operator = 'AND', - allow_operator_as_authorizer = False, - approval_groups = [{"threshold":2,"users":["user1","user2"]}] - ) - else: - return ApproversConfig( - can_initiator_approve = False, - ) - """ - - def testApproversConfig(self): - """Test ApproversConfig""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFwcHJvdmVyc19jb25maWcgaW1wb3J0IEFwcHJvdmVyc0NvbmZpZwoKCmNsYXNzIFRlc3RBcHByb3ZlcnNDb25maWcodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXBwcm92ZXJzQ29uZmlnIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBcHByb3ZlcnNDb25maWc6CiAgICAgICAgIiIiVGVzdCBBcHByb3ZlcnNDb25maWcKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQXBwcm92ZXJzQ29uZmlnYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQXBwcm92ZXJzQ29uZmlnKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQXBwcm92ZXJzQ29uZmlnKAogICAgICAgICAgICAgICAgY2FuX2luaXRpYXRvcl9hcHByb3ZlID0gRmFsc2UsCiAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICdBTkQnLAogICAgICAgICAgICAgICAgYWxsb3dfb3BlcmF0b3JfYXNfYXV0aG9yaXplciA9IEZhbHNlLAogICAgICAgICAgICAgICAgYXBwcm92YWxfZ3JvdXBzID0gW3sidGhyZXNob2xkIjoyLCJ1c2VycyI6WyJ1c2VyMSIsInVzZXIyIl19XQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFwcHJvdmVyc0NvbmZpZygKICAgICAgICAgICAgICAgIGNhbl9pbml0aWF0b3JfYXBwcm92ZSA9IEZhbHNlLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFwcHJvdmVyc0NvbmZpZyhzZWxmKToKICAgICAgICAiIiJUZXN0IEFwcHJvdmVyc0NvbmZpZyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_approvers_config_approval_groups_inner.py b/test/test_approvers_config_approval_groups_inner.py index 82a2e8e9..44786b0d 100644 --- a/test/test_approvers_config_approval_groups_inner.py +++ b/test/test_approvers_config_approval_groups_inner.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.approvers_config_approval_groups_inner import ( - ApproversConfigApprovalGroupsInner, -) - - -class TestApproversConfigApprovalGroupsInner(unittest.TestCase): - """ApproversConfigApprovalGroupsInner unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ApproversConfigApprovalGroupsInner: - """Test ApproversConfigApprovalGroupsInner - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ApproversConfigApprovalGroupsInner` - """ - model = ApproversConfigApprovalGroupsInner() - if include_optional: - return ApproversConfigApprovalGroupsInner( - threshold = 2, - users = ["user1","user2"], - groups = ["group1","group2"] - ) - else: - return ApproversConfigApprovalGroupsInner( - threshold = 2, - ) - """ - - def testApproversConfigApprovalGroupsInner(self): - """Test ApproversConfigApprovalGroupsInner""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFwcHJvdmVyc19jb25maWdfYXBwcm92YWxfZ3JvdXBzX2lubmVyIGltcG9ydCAoCiAgICBBcHByb3ZlcnNDb25maWdBcHByb3ZhbEdyb3Vwc0lubmVyLAopCgoKY2xhc3MgVGVzdEFwcHJvdmVyc0NvbmZpZ0FwcHJvdmFsR3JvdXBzSW5uZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXBwcm92ZXJzQ29uZmlnQXBwcm92YWxHcm91cHNJbm5lciB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQXBwcm92ZXJzQ29uZmlnQXBwcm92YWxHcm91cHNJbm5lcjoKICAgICAgICAiIiJUZXN0IEFwcHJvdmVyc0NvbmZpZ0FwcHJvdmFsR3JvdXBzSW5uZXIKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQXBwcm92ZXJzQ29uZmlnQXBwcm92YWxHcm91cHNJbm5lcmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFwcHJvdmVyc0NvbmZpZ0FwcHJvdmFsR3JvdXBzSW5uZXIoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBcHByb3ZlcnNDb25maWdBcHByb3ZhbEdyb3Vwc0lubmVyKAogICAgICAgICAgICAgICAgdGhyZXNob2xkID0gMiwKICAgICAgICAgICAgICAgIHVzZXJzID0gWyJ1c2VyMSIsInVzZXIyIl0sCiAgICAgICAgICAgICAgICBncm91cHMgPSBbImdyb3VwMSIsImdyb3VwMiJdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQXBwcm92ZXJzQ29uZmlnQXBwcm92YWxHcm91cHNJbm5lcigKICAgICAgICAgICAgICAgIHRocmVzaG9sZCA9IDIsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QXBwcm92ZXJzQ29uZmlnQXBwcm92YWxHcm91cHNJbm5lcihzZWxmKToKICAgICAgICAiIiJUZXN0IEFwcHJvdmVyc0NvbmZpZ0FwcHJvdmFsR3JvdXBzSW5uZXIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_asset.py b/test/test_asset.py index 2a4bee38..0b698370 100644 --- a/test/test_asset.py +++ b/test/test_asset.py @@ -1,118 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset import Asset - - -class TestAsset(unittest.TestCase): - """Asset unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Asset: - """Test Asset - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Asset` - """ - model = Asset() - if include_optional: - return Asset( - id = '9f9f7062-df90-4fc0-8697-96685184358d', - legacy_id = 'USDT_ERC20', - blockchain_id = 'e85208ff-3b15-44e9-af14-0ed0280b2a15', - display_name = 'Tether USD', - display_symbol = 'USDT', - provider_id = 'SOME_PROVIDER_ID', - pegged_asset_id = '6ef19b84-2144-4d38-8056-d423199bce5e', - assets = [ - '6ef19b84-2144-4d38-8056-d423199bce5e' - ], - asset_class = 'FT', - decimals = 2, - onchain = fireblocks.models.asset_details_onchain.AssetDetailsOnchain( - symbol = 'USDT', - name = 'Tether USD', - address = '0xdAC17F958D2ee523a2206206994597C13D831ec7', - decimals = 6, - standards = ["ERC20"], ), - metadata = fireblocks.models.asset_details_metadata.AssetDetailsMetadata( - scope = 'GLOBAL', - verified = False, - deprecated = False, - deprecation_referral_id = '056776ab-9efa-4219-9820-9ece0cc4d90d', - website = 'https://example.org', - media = [ - fireblocks.models.asset_media.AssetMedia( - url = 'https://example.com/image.png', - type = 'image/svg+xml', - attributes = fireblocks.models.asset_media_attributes.AssetMedia_attributes( - monochrome = True, ), ) - ], - note = fireblocks.models.asset_note.AssetNote( - text = 'Pay attention to gas fees', - user_id = '056776ab-9efa-4219-9820-9ece0cc4d90d', - user_name = 'Test test', - updated_at = '2025-06-08T19:42:49Z', ), - features = [ - 'STABLECOIN' - ], ) - ) - else: - return Asset( - id = '9f9f7062-df90-4fc0-8697-96685184358d', - legacy_id = 'USDT_ERC20', - display_name = 'Tether USD', - display_symbol = 'USDT', - asset_class = 'FT', - metadata = fireblocks.models.asset_details_metadata.AssetDetailsMetadata( - scope = 'GLOBAL', - verified = False, - deprecated = False, - deprecation_referral_id = '056776ab-9efa-4219-9820-9ece0cc4d90d', - website = 'https://example.org', - media = [ - fireblocks.models.asset_media.AssetMedia( - url = 'https://example.com/image.png', - type = 'image/svg+xml', - attributes = fireblocks.models.asset_media_attributes.AssetMedia_attributes( - monochrome = True, ), ) - ], - note = fireblocks.models.asset_note.AssetNote( - text = 'Pay attention to gas fees', - user_id = '056776ab-9efa-4219-9820-9ece0cc4d90d', - user_name = 'Test test', - updated_at = '2025-06-08T19:42:49Z', ), - features = [ - 'STABLECOIN' - ], ), - ) - """ - - def testAsset(self): - """Test Asset""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0IGltcG9ydCBBc3NldAoKCmNsYXNzIFRlc3RBc3NldCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBc3NldCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQXNzZXQ6CiAgICAgICAgIiIiVGVzdCBBc3NldAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBc3NldGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFzc2V0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQXNzZXQoCiAgICAgICAgICAgICAgICBpZCA9ICc5ZjlmNzA2Mi1kZjkwLTRmYzAtODY5Ny05NjY4NTE4NDM1OGQnLAogICAgICAgICAgICAgICAgbGVnYWN5X2lkID0gJ1VTRFRfRVJDMjAnLAogICAgICAgICAgICAgICAgYmxvY2tjaGFpbl9pZCA9ICdlODUyMDhmZi0zYjE1LTQ0ZTktYWYxNC0wZWQwMjgwYjJhMTUnLAogICAgICAgICAgICAgICAgZGlzcGxheV9uYW1lID0gJ1RldGhlciBVU0QnLAogICAgICAgICAgICAgICAgZGlzcGxheV9zeW1ib2wgPSAnVVNEVCcsCiAgICAgICAgICAgICAgICBwcm92aWRlcl9pZCA9ICdTT01FX1BST1ZJREVSX0lEJywKICAgICAgICAgICAgICAgIHBlZ2dlZF9hc3NldF9pZCA9ICc2ZWYxOWI4NC0yMTQ0LTRkMzgtODA1Ni1kNDIzMTk5YmNlNWUnLAogICAgICAgICAgICAgICAgYXNzZXRzID0gWwogICAgICAgICAgICAgICAgICAgICc2ZWYxOWI4NC0yMTQ0LTRkMzgtODA1Ni1kNDIzMTk5YmNlNWUnCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGFzc2V0X2NsYXNzID0gJ0ZUJywKICAgICAgICAgICAgICAgIGRlY2ltYWxzID0gMiwKICAgICAgICAgICAgICAgIG9uY2hhaW4gPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9kZXRhaWxzX29uY2hhaW4uQXNzZXREZXRhaWxzT25jaGFpbigKICAgICAgICAgICAgICAgICAgICBzeW1ib2wgPSAnVVNEVCcsIAogICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnVGV0aGVyIFVTRCcsIAogICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHhkQUMxN0Y5NThEMmVlNTIzYTIyMDYyMDY5OTQ1OTdDMTNEODMxZWM3JywgCiAgICAgICAgICAgICAgICAgICAgZGVjaW1hbHMgPSA2LCAKICAgICAgICAgICAgICAgICAgICBzdGFuZGFyZHMgPSBbIkVSQzIwIl0sICksCiAgICAgICAgICAgICAgICBtZXRhZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2RldGFpbHNfbWV0YWRhdGEuQXNzZXREZXRhaWxzTWV0YWRhdGEoCiAgICAgICAgICAgICAgICAgICAgc2NvcGUgPSAnR0xPQkFMJywgCiAgICAgICAgICAgICAgICAgICAgdmVyaWZpZWQgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgZGVwcmVjYXRlZCA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICBkZXByZWNhdGlvbl9yZWZlcnJhbF9pZCA9ICcwNTY3NzZhYi05ZWZhLTQyMTktOTgyMC05ZWNlMGNjNGQ5MGQnLCAKICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlID0gJ2h0dHBzOi8vZXhhbXBsZS5vcmcnLCAKICAgICAgICAgICAgICAgICAgICBtZWRpYSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfbWVkaWEuQXNzZXRNZWRpYSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9ICdodHRwczovL2V4YW1wbGUuY29tL2ltYWdlLnBuZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdpbWFnZS9zdmcreG1sJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfbWVkaWFfYXR0cmlidXRlcy5Bc3NldE1lZGlhX2F0dHJpYnV0ZXMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9ub2Nocm9tZSA9IFRydWUsICksICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgbm90ZSA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X25vdGUuQXNzZXROb3RlKAogICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gJ1BheSBhdHRlbnRpb24gdG8gZ2FzIGZlZXMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9pZCA9ICcwNTY3NzZhYi05ZWZhLTQyMTktOTgyMC05ZWNlMGNjNGQ5MGQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9uYW1lID0gJ1Rlc3QgdGVzdCcsIAogICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVkX2F0ID0gJzIwMjUtMDYtMDhUMTk6NDI6NDlaJywgKSwgCiAgICAgICAgICAgICAgICAgICAgZmVhdHVyZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICdTVEFCTEVDT0lOJwogICAgICAgICAgICAgICAgICAgICAgICBdLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQXNzZXQoCiAgICAgICAgICAgICAgICBpZCA9ICc5ZjlmNzA2Mi1kZjkwLTRmYzAtODY5Ny05NjY4NTE4NDM1OGQnLAogICAgICAgICAgICAgICAgbGVnYWN5X2lkID0gJ1VTRFRfRVJDMjAnLAogICAgICAgICAgICAgICAgZGlzcGxheV9uYW1lID0gJ1RldGhlciBVU0QnLAogICAgICAgICAgICAgICAgZGlzcGxheV9zeW1ib2wgPSAnVVNEVCcsCiAgICAgICAgICAgICAgICBhc3NldF9jbGFzcyA9ICdGVCcsCiAgICAgICAgICAgICAgICBtZXRhZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2RldGFpbHNfbWV0YWRhdGEuQXNzZXREZXRhaWxzTWV0YWRhdGEoCiAgICAgICAgICAgICAgICAgICAgc2NvcGUgPSAnR0xPQkFMJywgCiAgICAgICAgICAgICAgICAgICAgdmVyaWZpZWQgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgZGVwcmVjYXRlZCA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICBkZXByZWNhdGlvbl9yZWZlcnJhbF9pZCA9ICcwNTY3NzZhYi05ZWZhLTQyMTktOTgyMC05ZWNlMGNjNGQ5MGQnLCAKICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlID0gJ2h0dHBzOi8vZXhhbXBsZS5vcmcnLCAKICAgICAgICAgICAgICAgICAgICBtZWRpYSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfbWVkaWEuQXNzZXRNZWRpYSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9ICdodHRwczovL2V4YW1wbGUuY29tL2ltYWdlLnBuZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdpbWFnZS9zdmcreG1sJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfbWVkaWFfYXR0cmlidXRlcy5Bc3NldE1lZGlhX2F0dHJpYnV0ZXMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9ub2Nocm9tZSA9IFRydWUsICksICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgbm90ZSA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X25vdGUuQXNzZXROb3RlKAogICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gJ1BheSBhdHRlbnRpb24gdG8gZ2FzIGZlZXMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9pZCA9ICcwNTY3NzZhYi05ZWZhLTQyMTktOTgyMC05ZWNlMGNjNGQ5MGQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9uYW1lID0gJ1Rlc3QgdGVzdCcsIAogICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVkX2F0ID0gJzIwMjUtMDYtMDhUMTk6NDI6NDlaJywgKSwgCiAgICAgICAgICAgICAgICAgICAgZmVhdHVyZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICdTVEFCTEVDT0lOJwogICAgICAgICAgICAgICAgICAgICAgICBdLCApLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFzc2V0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQXNzZXQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_asset_already_exist_http_error.py b/test/test_asset_already_exist_http_error.py index 7075bc15..7f3262ef 100644 --- a/test/test_asset_already_exist_http_error.py +++ b/test/test_asset_already_exist_http_error.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_already_exist_http_error import AssetAlreadyExistHttpError - - -class TestAssetAlreadyExistHttpError(unittest.TestCase): - """AssetAlreadyExistHttpError unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetAlreadyExistHttpError: - """Test AssetAlreadyExistHttpError - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetAlreadyExistHttpError` - """ - model = AssetAlreadyExistHttpError() - if include_optional: - return AssetAlreadyExistHttpError( - status_code = 409, - message = '', - error = 'Conflict' - ) - else: - return AssetAlreadyExistHttpError( - ) - """ - - def testAssetAlreadyExistHttpError(self): - """Test AssetAlreadyExistHttpError""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2FscmVhZHlfZXhpc3RfaHR0cF9lcnJvciBpbXBvcnQgQXNzZXRBbHJlYWR5RXhpc3RIdHRwRXJyb3IKCgpjbGFzcyBUZXN0QXNzZXRBbHJlYWR5RXhpc3RIdHRwRXJyb3IodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXNzZXRBbHJlYWR5RXhpc3RIdHRwRXJyb3IgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFzc2V0QWxyZWFkeUV4aXN0SHR0cEVycm9yOgogICAgICAgICIiIlRlc3QgQXNzZXRBbHJlYWR5RXhpc3RIdHRwRXJyb3IKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQXNzZXRBbHJlYWR5RXhpc3RIdHRwRXJyb3JgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBc3NldEFscmVhZHlFeGlzdEh0dHBFcnJvcigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFzc2V0QWxyZWFkeUV4aXN0SHR0cEVycm9yKAogICAgICAgICAgICAgICAgc3RhdHVzX2NvZGUgPSA0MDksCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJycsCiAgICAgICAgICAgICAgICBlcnJvciA9ICdDb25mbGljdCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBc3NldEFscmVhZHlFeGlzdEh0dHBFcnJvcigKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBc3NldEFscmVhZHlFeGlzdEh0dHBFcnJvcihzZWxmKToKICAgICAgICAiIiJUZXN0IEFzc2V0QWxyZWFkeUV4aXN0SHR0cEVycm9yIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_asset_amount.py b/test/test_asset_amount.py index fce6e0d2..d2f2fe99 100644 --- a/test/test_asset_amount.py +++ b/test/test_asset_amount.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_amount import AssetAmount - - -class TestAssetAmount(unittest.TestCase): - """AssetAmount unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetAmount: - """Test AssetAmount - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetAmount` - """ - model = AssetAmount() - if include_optional: - return AssetAmount( - amount = '', - asset_id = '' - ) - else: - return AssetAmount( - amount = '', - asset_id = '', - ) - """ - - def testAssetAmount(self): - """Test AssetAmount""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2Ftb3VudCBpbXBvcnQgQXNzZXRBbW91bnQKCgpjbGFzcyBUZXN0QXNzZXRBbW91bnQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXNzZXRBbW91bnQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFzc2V0QW1vdW50OgogICAgICAgICIiIlRlc3QgQXNzZXRBbW91bnQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQXNzZXRBbW91bnRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBc3NldEFtb3VudCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFzc2V0QW1vdW50KAogICAgICAgICAgICAgICAgYW1vdW50ID0gJycsCiAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywKICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QXNzZXRBbW91bnQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBBc3NldEFtb3VudCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_asset_bad_request_error_response.py b/test/test_asset_bad_request_error_response.py index 8e99ce3f..ebdb7c3f 100644 --- a/test/test_asset_bad_request_error_response.py +++ b/test/test_asset_bad_request_error_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_bad_request_error_response import ( - AssetBadRequestErrorResponse, -) - - -class TestAssetBadRequestErrorResponse(unittest.TestCase): - """AssetBadRequestErrorResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetBadRequestErrorResponse: - """Test AssetBadRequestErrorResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetBadRequestErrorResponse` - """ - model = AssetBadRequestErrorResponse() - if include_optional: - return AssetBadRequestErrorResponse( - message = 'Listing an asset on the requested blockchain is not supported', - code = 3001 - ) - else: - return AssetBadRequestErrorResponse( - message = 'Listing an asset on the requested blockchain is not supported', - code = 3001, - ) - """ - - def testAssetBadRequestErrorResponse(self): - """Test AssetBadRequestErrorResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2JhZF9yZXF1ZXN0X2Vycm9yX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBBc3NldEJhZFJlcXVlc3RFcnJvclJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdEFzc2V0QmFkUmVxdWVzdEVycm9yUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXNzZXRCYWRSZXF1ZXN0RXJyb3JSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQXNzZXRCYWRSZXF1ZXN0RXJyb3JSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEFzc2V0QmFkUmVxdWVzdEVycm9yUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQXNzZXRCYWRSZXF1ZXN0RXJyb3JSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFzc2V0QmFkUmVxdWVzdEVycm9yUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBc3NldEJhZFJlcXVlc3RFcnJvclJlc3BvbnNlKAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdMaXN0aW5nIGFuIGFzc2V0IG9uIHRoZSByZXF1ZXN0ZWQgYmxvY2tjaGFpbiBpcyBub3Qgc3VwcG9ydGVkJywKICAgICAgICAgICAgICAgIGNvZGUgPSAzMDAxCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQXNzZXRCYWRSZXF1ZXN0RXJyb3JSZXNwb25zZSgKICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnTGlzdGluZyBhbiBhc3NldCBvbiB0aGUgcmVxdWVzdGVkIGJsb2NrY2hhaW4gaXMgbm90IHN1cHBvcnRlZCcsCiAgICAgICAgICAgICAgICBjb2RlID0gMzAwMSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBc3NldEJhZFJlcXVlc3RFcnJvclJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQXNzZXRCYWRSZXF1ZXN0RXJyb3JSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_asset_class.py b/test/test_asset_class.py index 18be0720..c4f9be8f 100644 --- a/test/test_asset_class.py +++ b/test/test_asset_class.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_class import AssetClass - - -class TestAssetClass(unittest.TestCase): - """AssetClass unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testAssetClass(self): - """Test AssetClass""" - # inst = AssetClass() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2NsYXNzIGltcG9ydCBBc3NldENsYXNzCgoKY2xhc3MgVGVzdEFzc2V0Q2xhc3ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXNzZXRDbGFzcyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RBc3NldENsYXNzKHNlbGYpOgogICAgICAgICIiIlRlc3QgQXNzZXRDbGFzcyIiIgogICAgICAgICMgaW5zdCA9IEFzc2V0Q2xhc3MoKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_asset_config.py b/test/test_asset_config.py index b6add56a..49adf079 100644 --- a/test/test_asset_config.py +++ b/test/test_asset_config.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_config import AssetConfig - - -class TestAssetConfig(unittest.TestCase): - """AssetConfig unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetConfig: - """Test AssetConfig - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetConfig` - """ - model = AssetConfig() - if include_optional: - return AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], - operator = 'INCLUDES' - ) - else: - return AssetConfig( - nft_transfer = False, - ) - """ - - def testAssetConfig(self): - """Test AssetConfig""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2NvbmZpZyBpbXBvcnQgQXNzZXRDb25maWcKCgpjbGFzcyBUZXN0QXNzZXRDb25maWcodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXNzZXRDb25maWcgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFzc2V0Q29uZmlnOgogICAgICAgICIiIlRlc3QgQXNzZXRDb25maWcKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQXNzZXRDb25maWdgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBc3NldENvbmZpZygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFzc2V0Q29uZmlnKAogICAgICAgICAgICAgICAgbmZ0X3RyYW5zZmVyID0gRmFsc2UsCiAgICAgICAgICAgICAgICBhc3NldF90eXBlcyA9IFsiRlVOR0lCTEUiLCJORlQiLCIqIl0sCiAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICdJTkNMVURFUycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBc3NldENvbmZpZygKICAgICAgICAgICAgICAgIG5mdF90cmFuc2ZlciA9IEZhbHNlLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFzc2V0Q29uZmlnKHNlbGYpOgogICAgICAgICIiIlRlc3QgQXNzZXRDb25maWciIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_asset_conflict_error_response.py b/test/test_asset_conflict_error_response.py index 09b615f2..33e29afd 100644 --- a/test/test_asset_conflict_error_response.py +++ b/test/test_asset_conflict_error_response.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_conflict_error_response import AssetConflictErrorResponse - - -class TestAssetConflictErrorResponse(unittest.TestCase): - """AssetConflictErrorResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetConflictErrorResponse: - """Test AssetConflictErrorResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetConflictErrorResponse` - """ - model = AssetConflictErrorResponse() - if include_optional: - return AssetConflictErrorResponse( - message = 'Asset already listed', - code = 3002 - ) - else: - return AssetConflictErrorResponse( - message = 'Asset already listed', - code = 3002, - ) - """ - - def testAssetConflictErrorResponse(self): - """Test AssetConflictErrorResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2NvbmZsaWN0X2Vycm9yX3Jlc3BvbnNlIGltcG9ydCBBc3NldENvbmZsaWN0RXJyb3JSZXNwb25zZQoKCmNsYXNzIFRlc3RBc3NldENvbmZsaWN0RXJyb3JSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBc3NldENvbmZsaWN0RXJyb3JSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQXNzZXRDb25mbGljdEVycm9yUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBBc3NldENvbmZsaWN0RXJyb3JSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBc3NldENvbmZsaWN0RXJyb3JSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFzc2V0Q29uZmxpY3RFcnJvclJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQXNzZXRDb25mbGljdEVycm9yUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ0Fzc2V0IGFscmVhZHkgbGlzdGVkJywKICAgICAgICAgICAgICAgIGNvZGUgPSAzMDAyCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQXNzZXRDb25mbGljdEVycm9yUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ0Fzc2V0IGFscmVhZHkgbGlzdGVkJywKICAgICAgICAgICAgICAgIGNvZGUgPSAzMDAyLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFzc2V0Q29uZmxpY3RFcnJvclJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQXNzZXRDb25mbGljdEVycm9yUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_asset_details_metadata.py b/test/test_asset_details_metadata.py index e62ed523..99514af7 100644 --- a/test/test_asset_details_metadata.py +++ b/test/test_asset_details_metadata.py @@ -1,76 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_details_metadata import AssetDetailsMetadata - - -class TestAssetDetailsMetadata(unittest.TestCase): - """AssetDetailsMetadata unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetDetailsMetadata: - """Test AssetDetailsMetadata - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetDetailsMetadata` - """ - model = AssetDetailsMetadata() - if include_optional: - return AssetDetailsMetadata( - scope = 'GLOBAL', - verified = False, - deprecated = False, - deprecation_referral_id = '056776ab-9efa-4219-9820-9ece0cc4d90d', - website = 'https://example.org', - media = [ - fireblocks.models.asset_media.AssetMedia( - url = 'https://example.com/image.png', - type = 'image/svg+xml', - attributes = fireblocks.models.asset_media_attributes.AssetMedia_attributes( - monochrome = True, ), ) - ], - note = fireblocks.models.asset_note.AssetNote( - text = 'Pay attention to gas fees', - user_id = '056776ab-9efa-4219-9820-9ece0cc4d90d', - user_name = 'Test test', - updated_at = '2025-06-08T19:42:49Z', ), - features = [ - 'STABLECOIN' - ] - ) - else: - return AssetDetailsMetadata( - scope = 'GLOBAL', - verified = False, - deprecated = False, - ) - """ - - def testAssetDetailsMetadata(self): - """Test AssetDetailsMetadata""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2RldGFpbHNfbWV0YWRhdGEgaW1wb3J0IEFzc2V0RGV0YWlsc01ldGFkYXRhCgoKY2xhc3MgVGVzdEFzc2V0RGV0YWlsc01ldGFkYXRhKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFzc2V0RGV0YWlsc01ldGFkYXRhIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBc3NldERldGFpbHNNZXRhZGF0YToKICAgICAgICAiIiJUZXN0IEFzc2V0RGV0YWlsc01ldGFkYXRhCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFzc2V0RGV0YWlsc01ldGFkYXRhYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQXNzZXREZXRhaWxzTWV0YWRhdGEoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBc3NldERldGFpbHNNZXRhZGF0YSgKICAgICAgICAgICAgICAgIHNjb3BlID0gJ0dMT0JBTCcsCiAgICAgICAgICAgICAgICB2ZXJpZmllZCA9IEZhbHNlLAogICAgICAgICAgICAgICAgZGVwcmVjYXRlZCA9IEZhbHNlLAogICAgICAgICAgICAgICAgZGVwcmVjYXRpb25fcmVmZXJyYWxfaWQgPSAnMDU2Nzc2YWItOWVmYS00MjE5LTk4MjAtOWVjZTBjYzRkOTBkJywKICAgICAgICAgICAgICAgIHdlYnNpdGUgPSAnaHR0cHM6Ly9leGFtcGxlLm9yZycsCiAgICAgICAgICAgICAgICBtZWRpYSA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9tZWRpYS5Bc3NldE1lZGlhKAogICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS9pbWFnZS5wbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdpbWFnZS9zdmcreG1sJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9tZWRpYV9hdHRyaWJ1dGVzLkFzc2V0TWVkaWFfYXR0cmlidXRlcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbm9jaHJvbWUgPSBUcnVlLCApLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIG5vdGUgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9ub3RlLkFzc2V0Tm90ZSgKICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gJ1BheSBhdHRlbnRpb24gdG8gZ2FzIGZlZXMnLCAKICAgICAgICAgICAgICAgICAgICB1c2VyX2lkID0gJzA1Njc3NmFiLTllZmEtNDIxOS05ODIwLTllY2UwY2M0ZDkwZCcsIAogICAgICAgICAgICAgICAgICAgIHVzZXJfbmFtZSA9ICdUZXN0IHRlc3QnLCAKICAgICAgICAgICAgICAgICAgICB1cGRhdGVkX2F0ID0gJzIwMjUtMDYtMDhUMTk6NDI6NDlaJywgKSwKICAgICAgICAgICAgICAgIGZlYXR1cmVzID0gWwogICAgICAgICAgICAgICAgICAgICdTVEFCTEVDT0lOJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBc3NldERldGFpbHNNZXRhZGF0YSgKICAgICAgICAgICAgICAgIHNjb3BlID0gJ0dMT0JBTCcsCiAgICAgICAgICAgICAgICB2ZXJpZmllZCA9IEZhbHNlLAogICAgICAgICAgICAgICAgZGVwcmVjYXRlZCA9IEZhbHNlLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFzc2V0RGV0YWlsc01ldGFkYXRhKHNlbGYpOgogICAgICAgICIiIlRlc3QgQXNzZXREZXRhaWxzTWV0YWRhdGEiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_asset_details_onchain.py b/test/test_asset_details_onchain.py index 07dbc9e9..6a0dba0e 100644 --- a/test/test_asset_details_onchain.py +++ b/test/test_asset_details_onchain.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_details_onchain import AssetDetailsOnchain - - -class TestAssetDetailsOnchain(unittest.TestCase): - """AssetDetailsOnchain unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetDetailsOnchain: - """Test AssetDetailsOnchain - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetDetailsOnchain` - """ - model = AssetDetailsOnchain() - if include_optional: - return AssetDetailsOnchain( - symbol = 'USDT', - name = 'Tether USD', - address = '0xdAC17F958D2ee523a2206206994597C13D831ec7', - decimals = 6, - standards = ["ERC20"] - ) - else: - return AssetDetailsOnchain( - symbol = 'USDT', - name = 'Tether USD', - decimals = 6, - ) - """ - - def testAssetDetailsOnchain(self): - """Test AssetDetailsOnchain""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2RldGFpbHNfb25jaGFpbiBpbXBvcnQgQXNzZXREZXRhaWxzT25jaGFpbgoKCmNsYXNzIFRlc3RBc3NldERldGFpbHNPbmNoYWluKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFzc2V0RGV0YWlsc09uY2hhaW4gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFzc2V0RGV0YWlsc09uY2hhaW46CiAgICAgICAgIiIiVGVzdCBBc3NldERldGFpbHNPbmNoYWluCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFzc2V0RGV0YWlsc09uY2hhaW5gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBc3NldERldGFpbHNPbmNoYWluKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQXNzZXREZXRhaWxzT25jaGFpbigKICAgICAgICAgICAgICAgIHN5bWJvbCA9ICdVU0RUJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnVGV0aGVyIFVTRCcsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzB4ZEFDMTdGOTU4RDJlZTUyM2EyMjA2MjA2OTk0NTk3QzEzRDgzMWVjNycsCiAgICAgICAgICAgICAgICBkZWNpbWFscyA9IDYsCiAgICAgICAgICAgICAgICBzdGFuZGFyZHMgPSBbIkVSQzIwIl0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBc3NldERldGFpbHNPbmNoYWluKAogICAgICAgICAgICAgICAgc3ltYm9sID0gJ1VTRFQnLAogICAgICAgICAgICAgICAgbmFtZSA9ICdUZXRoZXIgVVNEJywKICAgICAgICAgICAgICAgIGRlY2ltYWxzID0gNiwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBc3NldERldGFpbHNPbmNoYWluKHNlbGYpOgogICAgICAgICIiIlRlc3QgQXNzZXREZXRhaWxzT25jaGFpbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_asset_feature.py b/test/test_asset_feature.py index 98062dfe..3dc776a1 100644 --- a/test/test_asset_feature.py +++ b/test/test_asset_feature.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_feature import AssetFeature - - -class TestAssetFeature(unittest.TestCase): - """AssetFeature unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testAssetFeature(self): - """Test AssetFeature""" - # inst = AssetFeature() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2ZlYXR1cmUgaW1wb3J0IEFzc2V0RmVhdHVyZQoKCmNsYXNzIFRlc3RBc3NldEZlYXR1cmUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXNzZXRGZWF0dXJlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdEFzc2V0RmVhdHVyZShzZWxmKToKICAgICAgICAiIiJUZXN0IEFzc2V0RmVhdHVyZSIiIgogICAgICAgICMgaW5zdCA9IEFzc2V0RmVhdHVyZSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_asset_forbidden_error_response.py b/test/test_asset_forbidden_error_response.py index 3c5fab3f..d3306cb6 100644 --- a/test/test_asset_forbidden_error_response.py +++ b/test/test_asset_forbidden_error_response.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_forbidden_error_response import AssetForbiddenErrorResponse - - -class TestAssetForbiddenErrorResponse(unittest.TestCase): - """AssetForbiddenErrorResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetForbiddenErrorResponse: - """Test AssetForbiddenErrorResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetForbiddenErrorResponse` - """ - model = AssetForbiddenErrorResponse() - if include_optional: - return AssetForbiddenErrorResponse( - message = 'Asset creation quota reached', - code = 3006 - ) - else: - return AssetForbiddenErrorResponse( - message = 'Asset creation quota reached', - code = 3006, - ) - """ - - def testAssetForbiddenErrorResponse(self): - """Test AssetForbiddenErrorResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2ZvcmJpZGRlbl9lcnJvcl9yZXNwb25zZSBpbXBvcnQgQXNzZXRGb3JiaWRkZW5FcnJvclJlc3BvbnNlCgoKY2xhc3MgVGVzdEFzc2V0Rm9yYmlkZGVuRXJyb3JSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBc3NldEZvcmJpZGRlbkVycm9yUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFzc2V0Rm9yYmlkZGVuRXJyb3JSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEFzc2V0Rm9yYmlkZGVuRXJyb3JSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBc3NldEZvcmJpZGRlbkVycm9yUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBc3NldEZvcmJpZGRlbkVycm9yUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBc3NldEZvcmJpZGRlbkVycm9yUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ0Fzc2V0IGNyZWF0aW9uIHF1b3RhIHJlYWNoZWQnLAogICAgICAgICAgICAgICAgY29kZSA9IDMwMDYKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBc3NldEZvcmJpZGRlbkVycm9yUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ0Fzc2V0IGNyZWF0aW9uIHF1b3RhIHJlYWNoZWQnLAogICAgICAgICAgICAgICAgY29kZSA9IDMwMDYsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QXNzZXRGb3JiaWRkZW5FcnJvclJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQXNzZXRGb3JiaWRkZW5FcnJvclJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_asset_internal_server_error_response.py b/test/test_asset_internal_server_error_response.py index 0641002e..4d2b6a9c 100644 --- a/test/test_asset_internal_server_error_response.py +++ b/test/test_asset_internal_server_error_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_internal_server_error_response import ( - AssetInternalServerErrorResponse, -) - - -class TestAssetInternalServerErrorResponse(unittest.TestCase): - """AssetInternalServerErrorResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetInternalServerErrorResponse: - """Test AssetInternalServerErrorResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetInternalServerErrorResponse` - """ - model = AssetInternalServerErrorResponse() - if include_optional: - return AssetInternalServerErrorResponse( - message = 'Internal server error', - code = 3005 - ) - else: - return AssetInternalServerErrorResponse( - message = 'Internal server error', - code = 3005, - ) - """ - - def testAssetInternalServerErrorResponse(self): - """Test AssetInternalServerErrorResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2ludGVybmFsX3NlcnZlcl9lcnJvcl9yZXNwb25zZSBpbXBvcnQgKAogICAgQXNzZXRJbnRlcm5hbFNlcnZlckVycm9yUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0QXNzZXRJbnRlcm5hbFNlcnZlckVycm9yUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXNzZXRJbnRlcm5hbFNlcnZlckVycm9yUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFzc2V0SW50ZXJuYWxTZXJ2ZXJFcnJvclJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgQXNzZXRJbnRlcm5hbFNlcnZlckVycm9yUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQXNzZXRJbnRlcm5hbFNlcnZlckVycm9yUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBc3NldEludGVybmFsU2VydmVyRXJyb3JSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFzc2V0SW50ZXJuYWxTZXJ2ZXJFcnJvclJlc3BvbnNlKAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdJbnRlcm5hbCBzZXJ2ZXIgZXJyb3InLAogICAgICAgICAgICAgICAgY29kZSA9IDMwMDUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBc3NldEludGVybmFsU2VydmVyRXJyb3JSZXNwb25zZSgKICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnSW50ZXJuYWwgc2VydmVyIGVycm9yJywKICAgICAgICAgICAgICAgIGNvZGUgPSAzMDA1LAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFzc2V0SW50ZXJuYWxTZXJ2ZXJFcnJvclJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQXNzZXRJbnRlcm5hbFNlcnZlckVycm9yUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_asset_media.py b/test/test_asset_media.py index 18c27a93..e2a2724f 100644 --- a/test/test_asset_media.py +++ b/test/test_asset_media.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_media import AssetMedia - - -class TestAssetMedia(unittest.TestCase): - """AssetMedia unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetMedia: - """Test AssetMedia - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetMedia` - """ - model = AssetMedia() - if include_optional: - return AssetMedia( - url = 'https://example.com/image.png', - type = 'image/svg+xml', - attributes = fireblocks.models.asset_media_attributes.AssetMedia_attributes( - monochrome = True, ) - ) - else: - return AssetMedia( - url = 'https://example.com/image.png', - type = 'image/svg+xml', - ) - """ - - def testAssetMedia(self): - """Test AssetMedia""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X21lZGlhIGltcG9ydCBBc3NldE1lZGlhCgoKY2xhc3MgVGVzdEFzc2V0TWVkaWEodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXNzZXRNZWRpYSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQXNzZXRNZWRpYToKICAgICAgICAiIiJUZXN0IEFzc2V0TWVkaWEKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQXNzZXRNZWRpYWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFzc2V0TWVkaWEoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBc3NldE1lZGlhKAogICAgICAgICAgICAgICAgdXJsID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vaW1hZ2UucG5nJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnaW1hZ2Uvc3ZnK3htbCcsCiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfbWVkaWFfYXR0cmlidXRlcy5Bc3NldE1lZGlhX2F0dHJpYnV0ZXMoCiAgICAgICAgICAgICAgICAgICAgbW9ub2Nocm9tZSA9IFRydWUsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBc3NldE1lZGlhKAogICAgICAgICAgICAgICAgdXJsID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vaW1hZ2UucG5nJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnaW1hZ2Uvc3ZnK3htbCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QXNzZXRNZWRpYShzZWxmKToKICAgICAgICAiIiJUZXN0IEFzc2V0TWVkaWEiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_asset_media_attributes.py b/test/test_asset_media_attributes.py index 158c1e9c..97aa57e3 100644 --- a/test/test_asset_media_attributes.py +++ b/test/test_asset_media_attributes.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_media_attributes import AssetMediaAttributes - - -class TestAssetMediaAttributes(unittest.TestCase): - """AssetMediaAttributes unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetMediaAttributes: - """Test AssetMediaAttributes - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetMediaAttributes` - """ - model = AssetMediaAttributes() - if include_optional: - return AssetMediaAttributes( - monochrome = True - ) - else: - return AssetMediaAttributes( - ) - """ - - def testAssetMediaAttributes(self): - """Test AssetMediaAttributes""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X21lZGlhX2F0dHJpYnV0ZXMgaW1wb3J0IEFzc2V0TWVkaWFBdHRyaWJ1dGVzCgoKY2xhc3MgVGVzdEFzc2V0TWVkaWFBdHRyaWJ1dGVzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFzc2V0TWVkaWFBdHRyaWJ1dGVzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBc3NldE1lZGlhQXR0cmlidXRlczoKICAgICAgICAiIiJUZXN0IEFzc2V0TWVkaWFBdHRyaWJ1dGVzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFzc2V0TWVkaWFBdHRyaWJ1dGVzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQXNzZXRNZWRpYUF0dHJpYnV0ZXMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBc3NldE1lZGlhQXR0cmlidXRlcygKICAgICAgICAgICAgICAgIG1vbm9jaHJvbWUgPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQXNzZXRNZWRpYUF0dHJpYnV0ZXMoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QXNzZXRNZWRpYUF0dHJpYnV0ZXMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBBc3NldE1lZGlhQXR0cmlidXRlcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_asset_metadata.py b/test/test_asset_metadata.py index df346ca5..66f2c6a7 100644 --- a/test/test_asset_metadata.py +++ b/test/test_asset_metadata.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_metadata import AssetMetadata - - -class TestAssetMetadata(unittest.TestCase): - """AssetMetadata unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetMetadata: - """Test AssetMetadata - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetMetadata` - """ - model = AssetMetadata() - if include_optional: - return AssetMetadata( - scope = 'Global', - deprecated = False - ) - else: - return AssetMetadata( - scope = 'Global', - deprecated = False, - ) - """ - - def testAssetMetadata(self): - """Test AssetMetadata""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X21ldGFkYXRhIGltcG9ydCBBc3NldE1ldGFkYXRhCgoKY2xhc3MgVGVzdEFzc2V0TWV0YWRhdGEodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXNzZXRNZXRhZGF0YSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQXNzZXRNZXRhZGF0YToKICAgICAgICAiIiJUZXN0IEFzc2V0TWV0YWRhdGEKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQXNzZXRNZXRhZGF0YWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFzc2V0TWV0YWRhdGEoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBc3NldE1ldGFkYXRhKAogICAgICAgICAgICAgICAgc2NvcGUgPSAnR2xvYmFsJywKICAgICAgICAgICAgICAgIGRlcHJlY2F0ZWQgPSBGYWxzZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFzc2V0TWV0YWRhdGEoCiAgICAgICAgICAgICAgICBzY29wZSA9ICdHbG9iYWwnLAogICAgICAgICAgICAgICAgZGVwcmVjYXRlZCA9IEZhbHNlLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFzc2V0TWV0YWRhdGEoc2VsZik6CiAgICAgICAgIiIiVGVzdCBBc3NldE1ldGFkYXRhIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_asset_metadata_dto.py b/test/test_asset_metadata_dto.py index 0e13ae3f..e4c4cc16 100644 --- a/test/test_asset_metadata_dto.py +++ b/test/test_asset_metadata_dto.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_metadata_dto import AssetMetadataDto - - -class TestAssetMetadataDto(unittest.TestCase): - """AssetMetadataDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetMetadataDto: - """Test AssetMetadataDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetMetadataDto` - """ - model = AssetMetadataDto() - if include_optional: - return AssetMetadataDto( - asset_id = 'BQ5R_MY_TOKEN', - name = 'MyToken', - symbol = 'MYT', - network_protocol = 'ETH', - total_supply = '1000000000000000', - holders_count = 6, - type = 'ERC20', - contract_address = '0x1234567890abcdef1234567890abcdef12345678', - issuer_address = 'rGyXjc5d7s17vvt3NtKKascvJrnSxV21kQ', - testnet = True, - blockchain = 'ETH_TEST5', - decimals = 18, - vault_account_id = '0' - ) - else: - return AssetMetadataDto( - asset_id = 'BQ5R_MY_TOKEN', - ) - """ - - def testAssetMetadataDto(self): - """Test AssetMetadataDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X21ldGFkYXRhX2R0byBpbXBvcnQgQXNzZXRNZXRhZGF0YUR0bwoKCmNsYXNzIFRlc3RBc3NldE1ldGFkYXRhRHRvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFzc2V0TWV0YWRhdGFEdG8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFzc2V0TWV0YWRhdGFEdG86CiAgICAgICAgIiIiVGVzdCBBc3NldE1ldGFkYXRhRHRvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFzc2V0TWV0YWRhdGFEdG9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBc3NldE1ldGFkYXRhRHRvKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQXNzZXRNZXRhZGF0YUR0bygKICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJ0JRNVJfTVlfVE9LRU4nLAogICAgICAgICAgICAgICAgbmFtZSA9ICdNeVRva2VuJywKICAgICAgICAgICAgICAgIHN5bWJvbCA9ICdNWVQnLAogICAgICAgICAgICAgICAgbmV0d29ya19wcm90b2NvbCA9ICdFVEgnLAogICAgICAgICAgICAgICAgdG90YWxfc3VwcGx5ID0gJzEwMDAwMDAwMDAwMDAwMDAnLAogICAgICAgICAgICAgICAgaG9sZGVyc19jb3VudCA9IDYsCiAgICAgICAgICAgICAgICB0eXBlID0gJ0VSQzIwJywKICAgICAgICAgICAgICAgIGNvbnRyYWN0X2FkZHJlc3MgPSAnMHgxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4JywKICAgICAgICAgICAgICAgIGlzc3Vlcl9hZGRyZXNzID0gJ3JHeVhqYzVkN3MxN3Z2dDNOdEtLYXNjdkpyblN4VjIxa1EnLAogICAgICAgICAgICAgICAgdGVzdG5ldCA9IFRydWUsCiAgICAgICAgICAgICAgICBibG9ja2NoYWluID0gJ0VUSF9URVNUNScsCiAgICAgICAgICAgICAgICBkZWNpbWFscyA9IDE4LAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcwJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFzc2V0TWV0YWRhdGFEdG8oCiAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICdCUTVSX01ZX1RPS0VOJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBc3NldE1ldGFkYXRhRHRvKHNlbGYpOgogICAgICAgICIiIlRlc3QgQXNzZXRNZXRhZGF0YUR0byIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_asset_metadata_request.py b/test/test_asset_metadata_request.py index 949bf56f..5dd7e88d 100644 --- a/test/test_asset_metadata_request.py +++ b/test/test_asset_metadata_request.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_metadata_request import AssetMetadataRequest - - -class TestAssetMetadataRequest(unittest.TestCase): - """AssetMetadataRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetMetadataRequest: - """Test AssetMetadataRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetMetadataRequest` - """ - model = AssetMetadataRequest() - if include_optional: - return AssetMetadataRequest( - note = fireblocks.models.asset_note_request.AssetNoteRequest( - text = 'Pay attention to ETH gas fees', ) - ) - else: - return AssetMetadataRequest( - ) - """ - - def testAssetMetadataRequest(self): - """Test AssetMetadataRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X21ldGFkYXRhX3JlcXVlc3QgaW1wb3J0IEFzc2V0TWV0YWRhdGFSZXF1ZXN0CgoKY2xhc3MgVGVzdEFzc2V0TWV0YWRhdGFSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFzc2V0TWV0YWRhdGFSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBc3NldE1ldGFkYXRhUmVxdWVzdDoKICAgICAgICAiIiJUZXN0IEFzc2V0TWV0YWRhdGFSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFzc2V0TWV0YWRhdGFSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQXNzZXRNZXRhZGF0YVJlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBc3NldE1ldGFkYXRhUmVxdWVzdCgKICAgICAgICAgICAgICAgIG5vdGUgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9ub3RlX3JlcXVlc3QuQXNzZXROb3RlUmVxdWVzdCgKICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gJ1BheSBhdHRlbnRpb24gdG8gRVRIIGdhcyBmZWVzJywgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFzc2V0TWV0YWRhdGFSZXF1ZXN0KAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFzc2V0TWV0YWRhdGFSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQXNzZXRNZXRhZGF0YVJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_asset_not_found_error_response.py b/test/test_asset_not_found_error_response.py index 60fe4503..44d4be44 100644 --- a/test/test_asset_not_found_error_response.py +++ b/test/test_asset_not_found_error_response.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_not_found_error_response import AssetNotFoundErrorResponse - - -class TestAssetNotFoundErrorResponse(unittest.TestCase): - """AssetNotFoundErrorResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetNotFoundErrorResponse: - """Test AssetNotFoundErrorResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetNotFoundErrorResponse` - """ - model = AssetNotFoundErrorResponse() - if include_optional: - return AssetNotFoundErrorResponse( - message = 'Asset with specified ID not found', - code = 1504 - ) - else: - return AssetNotFoundErrorResponse( - message = 'Asset with specified ID not found', - code = 1504, - ) - """ - - def testAssetNotFoundErrorResponse(self): - """Test AssetNotFoundErrorResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X25vdF9mb3VuZF9lcnJvcl9yZXNwb25zZSBpbXBvcnQgQXNzZXROb3RGb3VuZEVycm9yUmVzcG9uc2UKCgpjbGFzcyBUZXN0QXNzZXROb3RGb3VuZEVycm9yUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXNzZXROb3RGb3VuZEVycm9yUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFzc2V0Tm90Rm91bmRFcnJvclJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgQXNzZXROb3RGb3VuZEVycm9yUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQXNzZXROb3RGb3VuZEVycm9yUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBc3NldE5vdEZvdW5kRXJyb3JSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFzc2V0Tm90Rm91bmRFcnJvclJlc3BvbnNlKAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdBc3NldCB3aXRoIHNwZWNpZmllZCBJRCBub3QgZm91bmQnLAogICAgICAgICAgICAgICAgY29kZSA9IDE1MDQKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBc3NldE5vdEZvdW5kRXJyb3JSZXNwb25zZSgKICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnQXNzZXQgd2l0aCBzcGVjaWZpZWQgSUQgbm90IGZvdW5kJywKICAgICAgICAgICAgICAgIGNvZGUgPSAxNTA0LAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFzc2V0Tm90Rm91bmRFcnJvclJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQXNzZXROb3RGb3VuZEVycm9yUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_asset_note.py b/test/test_asset_note.py index d320157e..d250cd95 100644 --- a/test/test_asset_note.py +++ b/test/test_asset_note.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_note import AssetNote - - -class TestAssetNote(unittest.TestCase): - """AssetNote unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetNote: - """Test AssetNote - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetNote` - """ - model = AssetNote() - if include_optional: - return AssetNote( - text = 'Pay attention to gas fees', - user_id = '056776ab-9efa-4219-9820-9ece0cc4d90d', - user_name = 'Test test', - updated_at = '2025-06-08T19:42:49Z' - ) - else: - return AssetNote( - text = 'Pay attention to gas fees', - user_id = '056776ab-9efa-4219-9820-9ece0cc4d90d', - user_name = 'Test test', - updated_at = '2025-06-08T19:42:49Z', - ) - """ - - def testAssetNote(self): - """Test AssetNote""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X25vdGUgaW1wb3J0IEFzc2V0Tm90ZQoKCmNsYXNzIFRlc3RBc3NldE5vdGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXNzZXROb3RlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBc3NldE5vdGU6CiAgICAgICAgIiIiVGVzdCBBc3NldE5vdGUKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQXNzZXROb3RlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQXNzZXROb3RlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQXNzZXROb3RlKAogICAgICAgICAgICAgICAgdGV4dCA9ICdQYXkgYXR0ZW50aW9uIHRvIGdhcyBmZWVzJywKICAgICAgICAgICAgICAgIHVzZXJfaWQgPSAnMDU2Nzc2YWItOWVmYS00MjE5LTk4MjAtOWVjZTBjYzRkOTBkJywKICAgICAgICAgICAgICAgIHVzZXJfbmFtZSA9ICdUZXN0IHRlc3QnLAogICAgICAgICAgICAgICAgdXBkYXRlZF9hdCA9ICcyMDI1LTA2LTA4VDE5OjQyOjQ5WicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBc3NldE5vdGUoCiAgICAgICAgICAgICAgICB0ZXh0ID0gJ1BheSBhdHRlbnRpb24gdG8gZ2FzIGZlZXMnLAogICAgICAgICAgICAgICAgdXNlcl9pZCA9ICcwNTY3NzZhYi05ZWZhLTQyMTktOTgyMC05ZWNlMGNjNGQ5MGQnLAogICAgICAgICAgICAgICAgdXNlcl9uYW1lID0gJ1Rlc3QgdGVzdCcsCiAgICAgICAgICAgICAgICB1cGRhdGVkX2F0ID0gJzIwMjUtMDYtMDhUMTk6NDI6NDlaJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBc3NldE5vdGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBBc3NldE5vdGUiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_asset_note_request.py b/test/test_asset_note_request.py index b0db20df..1ff4458e 100644 --- a/test/test_asset_note_request.py +++ b/test/test_asset_note_request.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_note_request import AssetNoteRequest - - -class TestAssetNoteRequest(unittest.TestCase): - """AssetNoteRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetNoteRequest: - """Test AssetNoteRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetNoteRequest` - """ - model = AssetNoteRequest() - if include_optional: - return AssetNoteRequest( - text = 'Pay attention to ETH gas fees' - ) - else: - return AssetNoteRequest( - ) - """ - - def testAssetNoteRequest(self): - """Test AssetNoteRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X25vdGVfcmVxdWVzdCBpbXBvcnQgQXNzZXROb3RlUmVxdWVzdAoKCmNsYXNzIFRlc3RBc3NldE5vdGVSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFzc2V0Tm90ZVJlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFzc2V0Tm90ZVJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBBc3NldE5vdGVSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFzc2V0Tm90ZVJlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBc3NldE5vdGVSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQXNzZXROb3RlUmVxdWVzdCgKICAgICAgICAgICAgICAgIHRleHQgPSAnUGF5IGF0dGVudGlvbiB0byBFVEggZ2FzIGZlZXMnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQXNzZXROb3RlUmVxdWVzdCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBc3NldE5vdGVSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQXNzZXROb3RlUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_asset_onchain.py b/test/test_asset_onchain.py index a97b3980..2702a6bd 100644 --- a/test/test_asset_onchain.py +++ b/test/test_asset_onchain.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_onchain import AssetOnchain - - -class TestAssetOnchain(unittest.TestCase): - """AssetOnchain unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetOnchain: - """Test AssetOnchain - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetOnchain` - """ - model = AssetOnchain() - if include_optional: - return AssetOnchain( - symbol = 'TST3', - name = 'Test 3', - address = '0xe7A9as1oa38bc4da0248s179E30aa94CcF453991', - decimals = 18, - standard = 'ERC20' - ) - else: - return AssetOnchain( - symbol = 'TST3', - name = 'Test 3', - decimals = 18, - ) - """ - - def testAssetOnchain(self): - """Test AssetOnchain""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X29uY2hhaW4gaW1wb3J0IEFzc2V0T25jaGFpbgoKCmNsYXNzIFRlc3RBc3NldE9uY2hhaW4odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXNzZXRPbmNoYWluIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBc3NldE9uY2hhaW46CiAgICAgICAgIiIiVGVzdCBBc3NldE9uY2hhaW4KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQXNzZXRPbmNoYWluYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQXNzZXRPbmNoYWluKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQXNzZXRPbmNoYWluKAogICAgICAgICAgICAgICAgc3ltYm9sID0gJ1RTVDMnLAogICAgICAgICAgICAgICAgbmFtZSA9ICdUZXN0IDMnLAogICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweGU3QTlhczFvYTM4YmM0ZGEwMjQ4czE3OUUzMGFhOTRDY0Y0NTM5OTEnLAogICAgICAgICAgICAgICAgZGVjaW1hbHMgPSAxOCwKICAgICAgICAgICAgICAgIHN0YW5kYXJkID0gJ0VSQzIwJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFzc2V0T25jaGFpbigKICAgICAgICAgICAgICAgIHN5bWJvbCA9ICdUU1QzJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnVGVzdCAzJywKICAgICAgICAgICAgICAgIGRlY2ltYWxzID0gMTgsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QXNzZXRPbmNoYWluKHNlbGYpOgogICAgICAgICIiIlRlc3QgQXNzZXRPbmNoYWluIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_asset_price_forbidden_error_response.py b/test/test_asset_price_forbidden_error_response.py index c28d3a71..c3cb396c 100644 --- a/test/test_asset_price_forbidden_error_response.py +++ b/test/test_asset_price_forbidden_error_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_price_forbidden_error_response import ( - AssetPriceForbiddenErrorResponse, -) - - -class TestAssetPriceForbiddenErrorResponse(unittest.TestCase): - """AssetPriceForbiddenErrorResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetPriceForbiddenErrorResponse: - """Test AssetPriceForbiddenErrorResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetPriceForbiddenErrorResponse` - """ - model = AssetPriceForbiddenErrorResponse() - if include_optional: - return AssetPriceForbiddenErrorResponse( - message = 'Tenant is not allowed to update asset', - code = 3002 - ) - else: - return AssetPriceForbiddenErrorResponse( - message = 'Tenant is not allowed to update asset', - code = 3002, - ) - """ - - def testAssetPriceForbiddenErrorResponse(self): - """Test AssetPriceForbiddenErrorResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X3ByaWNlX2ZvcmJpZGRlbl9lcnJvcl9yZXNwb25zZSBpbXBvcnQgKAogICAgQXNzZXRQcmljZUZvcmJpZGRlbkVycm9yUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0QXNzZXRQcmljZUZvcmJpZGRlbkVycm9yUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXNzZXRQcmljZUZvcmJpZGRlbkVycm9yUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFzc2V0UHJpY2VGb3JiaWRkZW5FcnJvclJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgQXNzZXRQcmljZUZvcmJpZGRlbkVycm9yUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQXNzZXRQcmljZUZvcmJpZGRlbkVycm9yUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBc3NldFByaWNlRm9yYmlkZGVuRXJyb3JSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFzc2V0UHJpY2VGb3JiaWRkZW5FcnJvclJlc3BvbnNlKAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdUZW5hbnQgaXMgbm90IGFsbG93ZWQgdG8gdXBkYXRlIGFzc2V0JywKICAgICAgICAgICAgICAgIGNvZGUgPSAzMDAyCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQXNzZXRQcmljZUZvcmJpZGRlbkVycm9yUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ1RlbmFudCBpcyBub3QgYWxsb3dlZCB0byB1cGRhdGUgYXNzZXQnLAogICAgICAgICAgICAgICAgY29kZSA9IDMwMDIsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QXNzZXRQcmljZUZvcmJpZGRlbkVycm9yUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBBc3NldFByaWNlRm9yYmlkZGVuRXJyb3JSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_asset_price_not_found_error_response.py b/test/test_asset_price_not_found_error_response.py index 2f53aa17..fab7a1dd 100644 --- a/test/test_asset_price_not_found_error_response.py +++ b/test/test_asset_price_not_found_error_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_price_not_found_error_response import ( - AssetPriceNotFoundErrorResponse, -) - - -class TestAssetPriceNotFoundErrorResponse(unittest.TestCase): - """AssetPriceNotFoundErrorResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetPriceNotFoundErrorResponse: - """Test AssetPriceNotFoundErrorResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetPriceNotFoundErrorResponse` - """ - model = AssetPriceNotFoundErrorResponse() - if include_optional: - return AssetPriceNotFoundErrorResponse( - message = 'Currency not found', - code = 3001 - ) - else: - return AssetPriceNotFoundErrorResponse( - message = 'Currency not found', - code = 3001, - ) - """ - - def testAssetPriceNotFoundErrorResponse(self): - """Test AssetPriceNotFoundErrorResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X3ByaWNlX25vdF9mb3VuZF9lcnJvcl9yZXNwb25zZSBpbXBvcnQgKAogICAgQXNzZXRQcmljZU5vdEZvdW5kRXJyb3JSZXNwb25zZSwKKQoKCmNsYXNzIFRlc3RBc3NldFByaWNlTm90Rm91bmRFcnJvclJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFzc2V0UHJpY2VOb3RGb3VuZEVycm9yUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFzc2V0UHJpY2VOb3RGb3VuZEVycm9yUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBBc3NldFByaWNlTm90Rm91bmRFcnJvclJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFzc2V0UHJpY2VOb3RGb3VuZEVycm9yUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBc3NldFByaWNlTm90Rm91bmRFcnJvclJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQXNzZXRQcmljZU5vdEZvdW5kRXJyb3JSZXNwb25zZSgKICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnQ3VycmVuY3kgbm90IGZvdW5kJywKICAgICAgICAgICAgICAgIGNvZGUgPSAzMDAxCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQXNzZXRQcmljZU5vdEZvdW5kRXJyb3JSZXNwb25zZSgKICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnQ3VycmVuY3kgbm90IGZvdW5kJywKICAgICAgICAgICAgICAgIGNvZGUgPSAzMDAxLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFzc2V0UHJpY2VOb3RGb3VuZEVycm9yUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBBc3NldFByaWNlTm90Rm91bmRFcnJvclJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_asset_price_response.py b/test/test_asset_price_response.py index 160a0e28..fd975999 100644 --- a/test/test_asset_price_response.py +++ b/test/test_asset_price_response.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_price_response import AssetPriceResponse - - -class TestAssetPriceResponse(unittest.TestCase): - """AssetPriceResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetPriceResponse: - """Test AssetPriceResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetPriceResponse` - """ - model = AssetPriceResponse() - if include_optional: - return AssetPriceResponse( - legacy_id = 'ETH', - last_update_at = 1716898542, - currency = 'USD', - price = 3500, - source = 'PRIVATE' - ) - else: - return AssetPriceResponse( - legacy_id = 'ETH', - last_update_at = 1716898542, - currency = 'USD', - price = 3500, - source = 'PRIVATE', - ) - """ - - def testAssetPriceResponse(self): - """Test AssetPriceResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X3ByaWNlX3Jlc3BvbnNlIGltcG9ydCBBc3NldFByaWNlUmVzcG9uc2UKCgpjbGFzcyBUZXN0QXNzZXRQcmljZVJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFzc2V0UHJpY2VSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQXNzZXRQcmljZVJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgQXNzZXRQcmljZVJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFzc2V0UHJpY2VSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFzc2V0UHJpY2VSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFzc2V0UHJpY2VSZXNwb25zZSgKICAgICAgICAgICAgICAgIGxlZ2FjeV9pZCA9ICdFVEgnLAogICAgICAgICAgICAgICAgbGFzdF91cGRhdGVfYXQgPSAxNzE2ODk4NTQyLAogICAgICAgICAgICAgICAgY3VycmVuY3kgPSAnVVNEJywKICAgICAgICAgICAgICAgIHByaWNlID0gMzUwMCwKICAgICAgICAgICAgICAgIHNvdXJjZSA9ICdQUklWQVRFJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFzc2V0UHJpY2VSZXNwb25zZSgKICAgICAgICAgICAgICAgIGxlZ2FjeV9pZCA9ICdFVEgnLAogICAgICAgICAgICAgICAgbGFzdF91cGRhdGVfYXQgPSAxNzE2ODk4NTQyLAogICAgICAgICAgICAgICAgY3VycmVuY3kgPSAnVVNEJywKICAgICAgICAgICAgICAgIHByaWNlID0gMzUwMCwKICAgICAgICAgICAgICAgIHNvdXJjZSA9ICdQUklWQVRFJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBc3NldFByaWNlUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBBc3NldFByaWNlUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_asset_response.py b/test/test_asset_response.py index 1d7508f0..8e7a0499 100644 --- a/test/test_asset_response.py +++ b/test/test_asset_response.py @@ -1,75 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_response import AssetResponse - - -class TestAssetResponse(unittest.TestCase): - """AssetResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetResponse: - """Test AssetResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetResponse` - """ - model = AssetResponse() - if include_optional: - return AssetResponse( - legacy_id = 'TST3_ETH', - asset_class = 'FT', - onchain = fireblocks.models.asset_onchain.AssetOnchain( - symbol = 'TST3', - name = 'Test 3', - address = '0xe7A9as1oa38bc4da0248s179E30aa94CcF453991', - decimals = 18, - standard = 'ERC20', ), - metadata = fireblocks.models.asset_metadata.AssetMetadata( - scope = 'Global', - deprecated = False, ) - ) - else: - return AssetResponse( - legacy_id = 'TST3_ETH', - asset_class = 'FT', - onchain = fireblocks.models.asset_onchain.AssetOnchain( - symbol = 'TST3', - name = 'Test 3', - address = '0xe7A9as1oa38bc4da0248s179E30aa94CcF453991', - decimals = 18, - standard = 'ERC20', ), - metadata = fireblocks.models.asset_metadata.AssetMetadata( - scope = 'Global', - deprecated = False, ), - ) - """ - - def testAssetResponse(self): - """Test AssetResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X3Jlc3BvbnNlIGltcG9ydCBBc3NldFJlc3BvbnNlCgoKY2xhc3MgVGVzdEFzc2V0UmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXNzZXRSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQXNzZXRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEFzc2V0UmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQXNzZXRSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEFzc2V0UmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBc3NldFJlc3BvbnNlKAogICAgICAgICAgICAgICAgbGVnYWN5X2lkID0gJ1RTVDNfRVRIJywKICAgICAgICAgICAgICAgIGFzc2V0X2NsYXNzID0gJ0ZUJywKICAgICAgICAgICAgICAgIG9uY2hhaW4gPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9vbmNoYWluLkFzc2V0T25jaGFpbigKICAgICAgICAgICAgICAgICAgICBzeW1ib2wgPSAnVFNUMycsIAogICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnVGVzdCAzJywgCiAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweGU3QTlhczFvYTM4YmM0ZGEwMjQ4czE3OUUzMGFhOTRDY0Y0NTM5OTEnLCAKICAgICAgICAgICAgICAgICAgICBkZWNpbWFscyA9IDE4LCAKICAgICAgICAgICAgICAgICAgICBzdGFuZGFyZCA9ICdFUkMyMCcsICksCiAgICAgICAgICAgICAgICBtZXRhZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X21ldGFkYXRhLkFzc2V0TWV0YWRhdGEoCiAgICAgICAgICAgICAgICAgICAgc2NvcGUgPSAnR2xvYmFsJywgCiAgICAgICAgICAgICAgICAgICAgZGVwcmVjYXRlZCA9IEZhbHNlLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQXNzZXRSZXNwb25zZSgKICAgICAgICAgICAgICAgIGxlZ2FjeV9pZCA9ICdUU1QzX0VUSCcsCiAgICAgICAgICAgICAgICBhc3NldF9jbGFzcyA9ICdGVCcsCiAgICAgICAgICAgICAgICBvbmNoYWluID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfb25jaGFpbi5Bc3NldE9uY2hhaW4oCiAgICAgICAgICAgICAgICAgICAgc3ltYm9sID0gJ1RTVDMnLCAKICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ1Rlc3QgMycsIAogICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHhlN0E5YXMxb2EzOGJjNGRhMDI0OHMxNzlFMzBhYTk0Q2NGNDUzOTkxJywgCiAgICAgICAgICAgICAgICAgICAgZGVjaW1hbHMgPSAxOCwgCiAgICAgICAgICAgICAgICAgICAgc3RhbmRhcmQgPSAnRVJDMjAnLCApLAogICAgICAgICAgICAgICAgbWV0YWRhdGEgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9tZXRhZGF0YS5Bc3NldE1ldGFkYXRhKAogICAgICAgICAgICAgICAgICAgIHNjb3BlID0gJ0dsb2JhbCcsIAogICAgICAgICAgICAgICAgICAgIGRlcHJlY2F0ZWQgPSBGYWxzZSwgKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBc3NldFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQXNzZXRSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_asset_scope.py b/test/test_asset_scope.py index ee17755a..a6525ac9 100644 --- a/test/test_asset_scope.py +++ b/test/test_asset_scope.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_scope import AssetScope - - -class TestAssetScope(unittest.TestCase): - """AssetScope unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testAssetScope(self): - """Test AssetScope""" - # inst = AssetScope() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X3Njb3BlIGltcG9ydCBBc3NldFNjb3BlCgoKY2xhc3MgVGVzdEFzc2V0U2NvcGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXNzZXRTY29wZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RBc3NldFNjb3BlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQXNzZXRTY29wZSIiIgogICAgICAgICMgaW5zdCA9IEFzc2V0U2NvcGUoKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_asset_type_response.py b/test/test_asset_type_response.py index 2e6b7a5e..9c35e7b7 100644 --- a/test/test_asset_type_response.py +++ b/test/test_asset_type_response.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_type_response import AssetTypeResponse - - -class TestAssetTypeResponse(unittest.TestCase): - """AssetTypeResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetTypeResponse: - """Test AssetTypeResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetTypeResponse` - """ - model = AssetTypeResponse() - if include_optional: - return AssetTypeResponse( - id = '', - name = '', - type = '', - contract_address = '', - native_asset = '', - decimals = 1.337 - ) - else: - return AssetTypeResponse( - id = '', - name = '', - type = '', - ) - """ - - def testAssetTypeResponse(self): - """Test AssetTypeResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X3R5cGVfcmVzcG9uc2UgaW1wb3J0IEFzc2V0VHlwZVJlc3BvbnNlCgoKY2xhc3MgVGVzdEFzc2V0VHlwZVJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkFzc2V0VHlwZVJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBBc3NldFR5cGVSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEFzc2V0VHlwZVJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEFzc2V0VHlwZVJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQXNzZXRUeXBlUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBc3NldFR5cGVSZXNwb25zZSgKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICBuYW1lID0gJycsCiAgICAgICAgICAgICAgICB0eXBlID0gJycsCiAgICAgICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzID0gJycsCiAgICAgICAgICAgICAgICBuYXRpdmVfYXNzZXQgPSAnJywKICAgICAgICAgICAgICAgIGRlY2ltYWxzID0gMS4zMzcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBc3NldFR5cGVSZXNwb25zZSgKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICBuYW1lID0gJycsCiAgICAgICAgICAgICAgICB0eXBlID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QXNzZXRUeXBlUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBBc3NldFR5cGVSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_asset_types_config_inner.py b/test/test_asset_types_config_inner.py index 05da5fcb..b16871f5 100644 --- a/test/test_asset_types_config_inner.py +++ b/test/test_asset_types_config_inner.py @@ -1,53 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_types_config_inner import AssetTypesConfigInner - - -class TestAssetTypesConfigInner(unittest.TestCase): - """AssetTypesConfigInner unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetTypesConfigInner: - """Test AssetTypesConfigInner - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetTypesConfigInner` - """ - model = AssetTypesConfigInner() - if include_optional: - return AssetTypesConfigInner( - ) - else: - return AssetTypesConfigInner( - ) - """ - - def testAssetTypesConfigInner(self): - """Test AssetTypesConfigInner""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X3R5cGVzX2NvbmZpZ19pbm5lciBpbXBvcnQgQXNzZXRUeXBlc0NvbmZpZ0lubmVyCgoKY2xhc3MgVGVzdEFzc2V0VHlwZXNDb25maWdJbm5lcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJBc3NldFR5cGVzQ29uZmlnSW5uZXIgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFzc2V0VHlwZXNDb25maWdJbm5lcjoKICAgICAgICAiIiJUZXN0IEFzc2V0VHlwZXNDb25maWdJbm5lcgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBBc3NldFR5cGVzQ29uZmlnSW5uZXJgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBc3NldFR5cGVzQ29uZmlnSW5uZXIoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBc3NldFR5cGVzQ29uZmlnSW5uZXIoCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQXNzZXRUeXBlc0NvbmZpZ0lubmVyKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFzc2V0VHlwZXNDb25maWdJbm5lcihzZWxmKToKICAgICAgICAiIiJUZXN0IEFzc2V0VHlwZXNDb25maWdJbm5lciIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_asset_wallet.py b/test/test_asset_wallet.py index f82860e7..04ee464d 100644 --- a/test/test_asset_wallet.py +++ b/test/test_asset_wallet.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.asset_wallet import AssetWallet - - -class TestAssetWallet(unittest.TestCase): - """AssetWallet unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AssetWallet: - """Test AssetWallet - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AssetWallet` - """ - model = AssetWallet() - if include_optional: - return AssetWallet( - vault_id = '', - asset_id = '', - available = '', - total = '', - pending = '', - staked = '', - frozen = '', - locked_amount = '', - block_height = '', - block_hash = '', - creation_timestamp = '' - ) - else: - return AssetWallet( - ) - """ - - def testAssetWallet(self): - """Test AssetWallet""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X3dhbGxldCBpbXBvcnQgQXNzZXRXYWxsZXQKCgpjbGFzcyBUZXN0QXNzZXRXYWxsZXQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXNzZXRXYWxsZXQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEFzc2V0V2FsbGV0OgogICAgICAgICIiIlRlc3QgQXNzZXRXYWxsZXQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQXNzZXRXYWxsZXRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBc3NldFdhbGxldCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEFzc2V0V2FsbGV0KAogICAgICAgICAgICAgICAgdmF1bHRfaWQgPSAnJywKICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsCiAgICAgICAgICAgICAgICBhdmFpbGFibGUgPSAnJywKICAgICAgICAgICAgICAgIHRvdGFsID0gJycsCiAgICAgICAgICAgICAgICBwZW5kaW5nID0gJycsCiAgICAgICAgICAgICAgICBzdGFrZWQgPSAnJywKICAgICAgICAgICAgICAgIGZyb3plbiA9ICcnLAogICAgICAgICAgICAgICAgbG9ja2VkX2Ftb3VudCA9ICcnLAogICAgICAgICAgICAgICAgYmxvY2tfaGVpZ2h0ID0gJycsCiAgICAgICAgICAgICAgICBibG9ja19oYXNoID0gJycsCiAgICAgICAgICAgICAgICBjcmVhdGlvbl90aW1lc3RhbXAgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEFzc2V0V2FsbGV0KAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEFzc2V0V2FsbGV0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQXNzZXRXYWxsZXQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_audit_log_data.py b/test/test_audit_log_data.py index ada1a5e2..6e4b76b2 100644 --- a/test/test_audit_log_data.py +++ b/test/test_audit_log_data.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.audit_log_data import AuditLogData - - -class TestAuditLogData(unittest.TestCase): - """AuditLogData unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AuditLogData: - """Test AuditLogData - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AuditLogData` - """ - model = AuditLogData() - if include_optional: - return AuditLogData( - id = '', - timestamp = 1.337, - created_at = 1.337, - user = '', - subject = '', - event = '', - tenant_id = '', - user_id = '' - ) - else: - return AuditLogData( - ) - """ - - def testAuditLogData(self): - """Test AuditLogData""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmF1ZGl0X2xvZ19kYXRhIGltcG9ydCBBdWRpdExvZ0RhdGEKCgpjbGFzcyBUZXN0QXVkaXRMb2dEYXRhKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkF1ZGl0TG9nRGF0YSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQXVkaXRMb2dEYXRhOgogICAgICAgICIiIlRlc3QgQXVkaXRMb2dEYXRhCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEF1ZGl0TG9nRGF0YWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEF1ZGl0TG9nRGF0YSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEF1ZGl0TG9nRGF0YSgKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSAxLjMzNywKICAgICAgICAgICAgICAgIGNyZWF0ZWRfYXQgPSAxLjMzNywKICAgICAgICAgICAgICAgIHVzZXIgPSAnJywKICAgICAgICAgICAgICAgIHN1YmplY3QgPSAnJywKICAgICAgICAgICAgICAgIGV2ZW50ID0gJycsCiAgICAgICAgICAgICAgICB0ZW5hbnRfaWQgPSAnJywKICAgICAgICAgICAgICAgIHVzZXJfaWQgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEF1ZGl0TG9nRGF0YSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBdWRpdExvZ0RhdGEoc2VsZik6CiAgICAgICAgIiIiVGVzdCBBdWRpdExvZ0RhdGEiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_audit_logs_api.py b/test/test_audit_logs_api.py index 5bfbca8e..1beba3f8 100644 --- a/test/test_audit_logs_api.py +++ b/test/test_audit_logs_api.py @@ -1,39 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.audit_logs_api import AuditLogsApi - - -class TestAuditLogsApi(unittest.TestCase): - """AuditLogsApi unit test stubs""" - - def setUp(self) -> None: - self.api = AuditLogsApi() - - def tearDown(self) -> None: - pass - - def test_get_audit_logs(self) -> None: - """Test case for get_audit_logs - - Get audit logs - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLmF1ZGl0X2xvZ3NfYXBpIGltcG9ydCBBdWRpdExvZ3NBcGkKCgpjbGFzcyBUZXN0QXVkaXRMb2dzQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkF1ZGl0TG9nc0FwaSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZikgLT4gTm9uZToKICAgICAgICBzZWxmLmFwaSA9IEF1ZGl0TG9nc0FwaSgpCgogICAgZGVmIHRlYXJEb3duKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9hdWRpdF9sb2dzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfYXVkaXRfbG9ncwoKICAgICAgICBHZXQgYXVkaXQgbG9ncwogICAgICAgICIiIgogICAgICAgIHBhc3MKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_auditor_data.py b/test/test_auditor_data.py index 74a66306..9d689242 100644 --- a/test/test_auditor_data.py +++ b/test/test_auditor_data.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.auditor_data import AuditorData - - -class TestAuditorData(unittest.TestCase): - """AuditorData unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AuditorData: - """Test AuditorData - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AuditorData` - """ - model = AuditorData() - if include_optional: - return AuditorData( - name = '', - image_url = '', - link = '' - ) - else: - return AuditorData( - name = '', - image_url = '', - link = '', - ) - """ - - def testAuditorData(self): - """Test AuditorData""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmF1ZGl0b3JfZGF0YSBpbXBvcnQgQXVkaXRvckRhdGEKCgpjbGFzcyBUZXN0QXVkaXRvckRhdGEodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXVkaXRvckRhdGEgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEF1ZGl0b3JEYXRhOgogICAgICAgICIiIlRlc3QgQXVkaXRvckRhdGEKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQXVkaXRvckRhdGFgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBdWRpdG9yRGF0YSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEF1ZGl0b3JEYXRhKAogICAgICAgICAgICAgICAgbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgaW1hZ2VfdXJsID0gJycsCiAgICAgICAgICAgICAgICBsaW5rID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBBdWRpdG9yRGF0YSgKICAgICAgICAgICAgICAgIG5hbWUgPSAnJywKICAgICAgICAgICAgICAgIGltYWdlX3VybCA9ICcnLAogICAgICAgICAgICAgICAgbGluayA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEF1ZGl0b3JEYXRhKHNlbGYpOgogICAgICAgICIiIlRlc3QgQXVkaXRvckRhdGEiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_authorization_groups.py b/test/test_authorization_groups.py index b7d9fdd6..a8605a7a 100644 --- a/test/test_authorization_groups.py +++ b/test/test_authorization_groups.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.authorization_groups import AuthorizationGroups - - -class TestAuthorizationGroups(unittest.TestCase): - """AuthorizationGroups unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AuthorizationGroups: - """Test AuthorizationGroups - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AuthorizationGroups` - """ - model = AuthorizationGroups() - if include_optional: - return AuthorizationGroups( - th = 1.337, - users = { - 'PENDING_AUTHORIZATION' : 'PENDING_AUTHORIZATION' - } - ) - else: - return AuthorizationGroups( - ) - """ - - def testAuthorizationGroups(self): - """Test AuthorizationGroups""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmF1dGhvcml6YXRpb25fZ3JvdXBzIGltcG9ydCBBdXRob3JpemF0aW9uR3JvdXBzCgoKY2xhc3MgVGVzdEF1dGhvcml6YXRpb25Hcm91cHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXV0aG9yaXphdGlvbkdyb3VwcyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQXV0aG9yaXphdGlvbkdyb3VwczoKICAgICAgICAiIiJUZXN0IEF1dGhvcml6YXRpb25Hcm91cHMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQXV0aG9yaXphdGlvbkdyb3Vwc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEF1dGhvcml6YXRpb25Hcm91cHMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBBdXRob3JpemF0aW9uR3JvdXBzKAogICAgICAgICAgICAgICAgdGggPSAxLjMzNywKICAgICAgICAgICAgICAgIHVzZXJzID0gewogICAgICAgICAgICAgICAgICAgICdQRU5ESU5HX0FVVEhPUklaQVRJT04nIDogJ1BFTkRJTkdfQVVUSE9SSVpBVElPTicKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQXV0aG9yaXphdGlvbkdyb3VwcygKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RBdXRob3JpemF0aW9uR3JvdXBzKHNlbGYpOgogICAgICAgICIiIlRlc3QgQXV0aG9yaXphdGlvbkdyb3VwcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_authorization_info.py b/test/test_authorization_info.py index 489f7af9..ab1ad18c 100644 --- a/test/test_authorization_info.py +++ b/test/test_authorization_info.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.authorization_info import AuthorizationInfo - - -class TestAuthorizationInfo(unittest.TestCase): - """AuthorizationInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> AuthorizationInfo: - """Test AuthorizationInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `AuthorizationInfo` - """ - model = AuthorizationInfo() - if include_optional: - return AuthorizationInfo( - allow_operator_as_authorizer = True, - logic = 'AND', - groups = [ - fireblocks.models.authorization_groups.AuthorizationGroups( - th = 1.337, - users = { - 'PENDING_AUTHORIZATION' : 'PENDING_AUTHORIZATION' - }, ) - ] - ) - else: - return AuthorizationInfo( - ) - """ - - def testAuthorizationInfo(self): - """Test AuthorizationInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmF1dGhvcml6YXRpb25faW5mbyBpbXBvcnQgQXV0aG9yaXphdGlvbkluZm8KCgpjbGFzcyBUZXN0QXV0aG9yaXphdGlvbkluZm8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQXV0aG9yaXphdGlvbkluZm8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEF1dGhvcml6YXRpb25JbmZvOgogICAgICAgICIiIlRlc3QgQXV0aG9yaXphdGlvbkluZm8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQXV0aG9yaXphdGlvbkluZm9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBBdXRob3JpemF0aW9uSW5mbygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEF1dGhvcml6YXRpb25JbmZvKAogICAgICAgICAgICAgICAgYWxsb3dfb3BlcmF0b3JfYXNfYXV0aG9yaXplciA9IFRydWUsCiAgICAgICAgICAgICAgICBsb2dpYyA9ICdBTkQnLAogICAgICAgICAgICAgICAgZ3JvdXBzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmF1dGhvcml6YXRpb25fZ3JvdXBzLkF1dGhvcml6YXRpb25Hcm91cHMoCiAgICAgICAgICAgICAgICAgICAgICAgIHRoID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICB1c2VycyA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQRU5ESU5HX0FVVEhPUklaQVRJT04nIDogJ1BFTkRJTkdfQVVUSE9SSVpBVElPTicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sICkKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQXV0aG9yaXphdGlvbkluZm8oCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QXV0aG9yaXphdGlvbkluZm8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBBdXRob3JpemF0aW9uSW5mbyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_balance_history_item_dto.py b/test/test_balance_history_item_dto.py index 51f11ecd..59e752e2 100644 --- a/test/test_balance_history_item_dto.py +++ b/test/test_balance_history_item_dto.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.balance_history_item_dto import BalanceHistoryItemDto - - -class TestBalanceHistoryItemDto(unittest.TestCase): - """BalanceHistoryItemDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> BalanceHistoryItemDto: - """Test BalanceHistoryItemDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `BalanceHistoryItemDto` - """ - model = BalanceHistoryItemDto() - if include_optional: - return BalanceHistoryItemDto( - timestamp = '2024-01-01T23:59:59.999Z', - balance = '1000000000000000000000' - ) - else: - return BalanceHistoryItemDto( - timestamp = '2024-01-01T23:59:59.999Z', - balance = '1000000000000000000000', - ) - """ - - def testBalanceHistoryItemDto(self): - """Test BalanceHistoryItemDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJhbGFuY2VfaGlzdG9yeV9pdGVtX2R0byBpbXBvcnQgQmFsYW5jZUhpc3RvcnlJdGVtRHRvCgoKY2xhc3MgVGVzdEJhbGFuY2VIaXN0b3J5SXRlbUR0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJCYWxhbmNlSGlzdG9yeUl0ZW1EdG8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEJhbGFuY2VIaXN0b3J5SXRlbUR0bzoKICAgICAgICAiIiJUZXN0IEJhbGFuY2VIaXN0b3J5SXRlbUR0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBCYWxhbmNlSGlzdG9yeUl0ZW1EdG9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBCYWxhbmNlSGlzdG9yeUl0ZW1EdG8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBCYWxhbmNlSGlzdG9yeUl0ZW1EdG8oCiAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSAnMjAyNC0wMS0wMVQyMzo1OTo1OS45OTlaJywKICAgICAgICAgICAgICAgIGJhbGFuY2UgPSAnMTAwMDAwMDAwMDAwMDAwMDAwMDAwMCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBCYWxhbmNlSGlzdG9yeUl0ZW1EdG8oCiAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSAnMjAyNC0wMS0wMVQyMzo1OTo1OS45OTlaJywKICAgICAgICAgICAgICAgIGJhbGFuY2UgPSAnMTAwMDAwMDAwMDAwMDAwMDAwMDAwMCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QmFsYW5jZUhpc3RvcnlJdGVtRHRvKHNlbGYpOgogICAgICAgICIiIlRlc3QgQmFsYW5jZUhpc3RvcnlJdGVtRHRvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_balance_history_paged_response.py b/test/test_balance_history_paged_response.py index ee8eec13..59148f72 100644 --- a/test/test_balance_history_paged_response.py +++ b/test/test_balance_history_paged_response.py @@ -1,66 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.balance_history_paged_response import BalanceHistoryPagedResponse - - -class TestBalanceHistoryPagedResponse(unittest.TestCase): - """BalanceHistoryPagedResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> BalanceHistoryPagedResponse: - """Test BalanceHistoryPagedResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `BalanceHistoryPagedResponse` - """ - model = BalanceHistoryPagedResponse() - if include_optional: - return BalanceHistoryPagedResponse( - data = [ - fireblocks.models.balance_history_item_dto.BalanceHistoryItemDto( - timestamp = '2024-01-01T23:59:59.999Z', - balance = '1000000000000000000000', ) - ], - next = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==', - prev = 'dGhpcyBpcyBhIHByZXZpb3VzIGN1cnNvcg==', - total = 150 - ) - else: - return BalanceHistoryPagedResponse( - data = [ - fireblocks.models.balance_history_item_dto.BalanceHistoryItemDto( - timestamp = '2024-01-01T23:59:59.999Z', - balance = '1000000000000000000000', ) - ], - ) - """ - - def testBalanceHistoryPagedResponse(self): - """Test BalanceHistoryPagedResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJhbGFuY2VfaGlzdG9yeV9wYWdlZF9yZXNwb25zZSBpbXBvcnQgQmFsYW5jZUhpc3RvcnlQYWdlZFJlc3BvbnNlCgoKY2xhc3MgVGVzdEJhbGFuY2VIaXN0b3J5UGFnZWRSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJCYWxhbmNlSGlzdG9yeVBhZ2VkUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEJhbGFuY2VIaXN0b3J5UGFnZWRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEJhbGFuY2VIaXN0b3J5UGFnZWRSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBCYWxhbmNlSGlzdG9yeVBhZ2VkUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBCYWxhbmNlSGlzdG9yeVBhZ2VkUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBCYWxhbmNlSGlzdG9yeVBhZ2VkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmJhbGFuY2VfaGlzdG9yeV9pdGVtX2R0by5CYWxhbmNlSGlzdG9yeUl0ZW1EdG8oCiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9ICcyMDI0LTAxLTAxVDIzOjU5OjU5Ljk5OVonLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmFsYW5jZSA9ICcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBuZXh0ID0gJ01qQXlNeTB4TWkweE15QXlNRG96Tmpvd09DNHpNREk9Ok1URXdNQT09JywKICAgICAgICAgICAgICAgIHByZXYgPSAnZEdocGN5QnBjeUJoSUhCeVpYWnBiM1Z6SUdOMWNuTnZjZz09JywKICAgICAgICAgICAgICAgIHRvdGFsID0gMTUwCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQmFsYW5jZUhpc3RvcnlQYWdlZFJlc3BvbnNlKAogICAgICAgICAgICAgICAgZGF0YSA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5iYWxhbmNlX2hpc3RvcnlfaXRlbV9kdG8uQmFsYW5jZUhpc3RvcnlJdGVtRHRvKAogICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSAnMjAyNC0wMS0wMVQyMzo1OTo1OS45OTlaJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGJhbGFuY2UgPSAnMTAwMDAwMDAwMDAwMDAwMDAwMDAwMCcsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEJhbGFuY2VIaXN0b3J5UGFnZWRSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IEJhbGFuY2VIaXN0b3J5UGFnZWRSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_bank_address.py b/test/test_bank_address.py index cebf51ec..69182887 100644 --- a/test/test_bank_address.py +++ b/test/test_bank_address.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.bank_address import BankAddress - - -class TestBankAddress(unittest.TestCase): - """BankAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> BankAddress: - """Test BankAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `BankAddress` - """ - model = BankAddress() - if include_optional: - return BankAddress( - street_name = '', - building_number = '', - postal_code = '', - city = '', - subdivision = '', - district = '', - country = '' - ) - else: - return BankAddress( - ) - """ - - def testBankAddress(self): - """Test BankAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJhbmtfYWRkcmVzcyBpbXBvcnQgQmFua0FkZHJlc3MKCgpjbGFzcyBUZXN0QmFua0FkZHJlc3ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQmFua0FkZHJlc3MgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEJhbmtBZGRyZXNzOgogICAgICAgICIiIlRlc3QgQmFua0FkZHJlc3MKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQmFua0FkZHJlc3NgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBCYW5rQWRkcmVzcygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEJhbmtBZGRyZXNzKAogICAgICAgICAgICAgICAgc3RyZWV0X25hbWUgPSAnJywKICAgICAgICAgICAgICAgIGJ1aWxkaW5nX251bWJlciA9ICcnLAogICAgICAgICAgICAgICAgcG9zdGFsX2NvZGUgPSAnJywKICAgICAgICAgICAgICAgIGNpdHkgPSAnJywKICAgICAgICAgICAgICAgIHN1YmRpdmlzaW9uID0gJycsCiAgICAgICAgICAgICAgICBkaXN0cmljdCA9ICcnLAogICAgICAgICAgICAgICAgY291bnRyeSA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQmFua0FkZHJlc3MoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QmFua0FkZHJlc3Moc2VsZik6CiAgICAgICAgIiIiVGVzdCBCYW5rQWRkcmVzcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_base_provider.py b/test/test_base_provider.py index 003aae7a..43257c47 100644 --- a/test/test_base_provider.py +++ b/test/test_base_provider.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.base_provider import BaseProvider - - -class TestBaseProvider(unittest.TestCase): - """BaseProvider unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> BaseProvider: - """Test BaseProvider - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `BaseProvider` - """ - model = BaseProvider() - if include_optional: - return BaseProvider( - id = '', - name = '', - logo = '', - account_based = True - ) - else: - return BaseProvider( - id = '', - name = '', - account_based = True, - ) - """ - - def testBaseProvider(self): - """Test BaseProvider""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJhc2VfcHJvdmlkZXIgaW1wb3J0IEJhc2VQcm92aWRlcgoKCmNsYXNzIFRlc3RCYXNlUHJvdmlkZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQmFzZVByb3ZpZGVyIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBCYXNlUHJvdmlkZXI6CiAgICAgICAgIiIiVGVzdCBCYXNlUHJvdmlkZXIKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQmFzZVByb3ZpZGVyYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQmFzZVByb3ZpZGVyKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQmFzZVByb3ZpZGVyKAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnJywKICAgICAgICAgICAgICAgIGxvZ28gPSAnJywKICAgICAgICAgICAgICAgIGFjY291bnRfYmFzZWQgPSBUcnVlLAogICAgICAgICAgICAgICAgbWFuaWZlc3QgPSB7Im9yZGVyIjp7InN1cHBvcnRlZCI6dHJ1ZSwiZXhlY3V0aW9uVHlwZXMiOlsiTUFSS0VUIiwiUVVPVEUiXSwic2V0dGxlbWVudFR5cGVzIjpbIkRWUCJdfSwicXVvdGUiOnsic3VwcG9ydGVkIjp0cnVlLCJzZXR0bGVtZW50VHlwZXMiOlsiRFZQIl19LCJyYXRlIjp7InN1cHBvcnRlZCI6dHJ1ZX19CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQmFzZVByb3ZpZGVyKAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnJywKICAgICAgICAgICAgICAgIGFjY291bnRfYmFzZWQgPSBUcnVlLAogICAgICAgICAgICAgICAgbWFuaWZlc3QgPSB7Im9yZGVyIjp7InN1cHBvcnRlZCI6dHJ1ZSwiZXhlY3V0aW9uVHlwZXMiOlsiTUFSS0VUIiwiUVVPVEUiXSwic2V0dGxlbWVudFR5cGVzIjpbIkRWUCJdfSwicXVvdGUiOnsic3VwcG9ydGVkIjp0cnVlLCJzZXR0bGVtZW50VHlwZXMiOlsiRFZQIl19LCJyYXRlIjp7InN1cHBvcnRlZCI6dHJ1ZX19LAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEJhc2VQcm92aWRlcihzZWxmKToKICAgICAgICAiIiJUZXN0IEJhc2VQcm92aWRlciIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_basic_address_request.py b/test/test_basic_address_request.py index bd68c398..a71f1920 100644 --- a/test/test_basic_address_request.py +++ b/test/test_basic_address_request.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.basic_address_request import BasicAddressRequest - - -class TestBasicAddressRequest(unittest.TestCase): - """BasicAddressRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> BasicAddressRequest: - """Test BasicAddressRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `BasicAddressRequest` - """ - model = BasicAddressRequest() - if include_optional: - return BasicAddressRequest( - address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - tag = '12345' - ) - else: - return BasicAddressRequest( - address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - ) - """ - - def testBasicAddressRequest(self): - """Test BasicAddressRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJhc2ljX2FkZHJlc3NfcmVxdWVzdCBpbXBvcnQgQmFzaWNBZGRyZXNzUmVxdWVzdAoKCmNsYXNzIFRlc3RCYXNpY0FkZHJlc3NSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkJhc2ljQWRkcmVzc1JlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEJhc2ljQWRkcmVzc1JlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBCYXNpY0FkZHJlc3NSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEJhc2ljQWRkcmVzc1JlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBCYXNpY0FkZHJlc3NSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQmFzaWNBZGRyZXNzUmVxdWVzdCgKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMUExelAxZVA1UUdlZmkyRE1QVGZUTDVTTG12N0RpdmZOYScsCiAgICAgICAgICAgICAgICB0YWcgPSAnMTIzNDUnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQmFzaWNBZGRyZXNzUmVxdWVzdCgKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMUExelAxZVA1UUdlZmkyRE1QVGZUTDVTTG12N0RpdmZOYScsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QmFzaWNBZGRyZXNzUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IEJhc2ljQWRkcmVzc1JlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_block_info.py b/test/test_block_info.py index bec4c83d..cc552fef 100644 --- a/test/test_block_info.py +++ b/test/test_block_info.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.block_info import BlockInfo - - -class TestBlockInfo(unittest.TestCase): - """BlockInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> BlockInfo: - """Test BlockInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `BlockInfo` - """ - model = BlockInfo() - if include_optional: - return BlockInfo( - block_height = '', - block_hash = '' - ) - else: - return BlockInfo( - ) - """ - - def testBlockInfo(self): - """Test BlockInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrX2luZm8gaW1wb3J0IEJsb2NrSW5mbwoKCmNsYXNzIFRlc3RCbG9ja0luZm8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQmxvY2tJbmZvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBCbG9ja0luZm86CiAgICAgICAgIiIiVGVzdCBCbG9ja0luZm8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQmxvY2tJbmZvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQmxvY2tJbmZvKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQmxvY2tJbmZvKAogICAgICAgICAgICAgICAgYmxvY2tfaGVpZ2h0ID0gJycsCiAgICAgICAgICAgICAgICBibG9ja19oYXNoID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBCbG9ja0luZm8oCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QmxvY2tJbmZvKHNlbGYpOgogICAgICAgICIiIlRlc3QgQmxvY2tJbmZvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_blockchain_address.py b/test/test_blockchain_address.py index a8ed9bb1..b7fcb266 100644 --- a/test/test_blockchain_address.py +++ b/test/test_blockchain_address.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.blockchain_address import BlockchainAddress - - -class TestBlockchainAddress(unittest.TestCase): - """BlockchainAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> BlockchainAddress: - """Test BlockchainAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `BlockchainAddress` - """ - model = BlockchainAddress() - if include_optional: - return BlockchainAddress( - blockchain_address = '0x1234567890123456789012345678901234567890', - tag = '1234567890' - ) - else: - return BlockchainAddress( - blockchain_address = '0x1234567890123456789012345678901234567890', - ) - """ - - def testBlockchainAddress(self): - """Test BlockchainAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fYWRkcmVzcyBpbXBvcnQgQmxvY2tjaGFpbkFkZHJlc3MKCgpjbGFzcyBUZXN0QmxvY2tjaGFpbkFkZHJlc3ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQmxvY2tjaGFpbkFkZHJlc3MgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEJsb2NrY2hhaW5BZGRyZXNzOgogICAgICAgICIiIlRlc3QgQmxvY2tjaGFpbkFkZHJlc3MKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQmxvY2tjaGFpbkFkZHJlc3NgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBCbG9ja2NoYWluQWRkcmVzcygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEJsb2NrY2hhaW5BZGRyZXNzKAogICAgICAgICAgICAgICAgYmxvY2tjaGFpbl9hZGRyZXNzID0gJzB4MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MCcsCiAgICAgICAgICAgICAgICB0YWcgPSAnMTIzNDU2Nzg5MCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBCbG9ja2NoYWluQWRkcmVzcygKICAgICAgICAgICAgICAgIGJsb2NrY2hhaW5fYWRkcmVzcyA9ICcweDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEJsb2NrY2hhaW5BZGRyZXNzKHNlbGYpOgogICAgICAgICIiIlRlc3QgQmxvY2tjaGFpbkFkZHJlc3MiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_blockchain_destination.py b/test/test_blockchain_destination.py index 57342fed..4feb95e2 100644 --- a/test/test_blockchain_destination.py +++ b/test/test_blockchain_destination.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.blockchain_destination import BlockchainDestination - - -class TestBlockchainDestination(unittest.TestCase): - """BlockchainDestination unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> BlockchainDestination: - """Test BlockchainDestination - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `BlockchainDestination` - """ - model = BlockchainDestination() - if include_optional: - return BlockchainDestination( - type = 'BLOCKCHAIN', - address = {"blockchainAddress":"0x1234567890123456789012345678901234567890","tag":"1234567890"} - ) - else: - return BlockchainDestination( - type = 'BLOCKCHAIN', - address = {"blockchainAddress":"0x1234567890123456789012345678901234567890","tag":"1234567890"}, - ) - """ - - def testBlockchainDestination(self): - """Test BlockchainDestination""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fZGVzdGluYXRpb24gaW1wb3J0IEJsb2NrY2hhaW5EZXN0aW5hdGlvbgoKCmNsYXNzIFRlc3RCbG9ja2NoYWluRGVzdGluYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQmxvY2tjaGFpbkRlc3RpbmF0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBCbG9ja2NoYWluRGVzdGluYXRpb246CiAgICAgICAgIiIiVGVzdCBCbG9ja2NoYWluRGVzdGluYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQmxvY2tjaGFpbkRlc3RpbmF0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQmxvY2tjaGFpbkRlc3RpbmF0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQmxvY2tjaGFpbkRlc3RpbmF0aW9uKAogICAgICAgICAgICAgICAgdHlwZSA9ICdCTE9DS0NIQUlOJywKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSB7ImJsb2NrY2hhaW5BZGRyZXNzIjoiMHgxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwIiwidGFnIjoiMTIzNDU2Nzg5MCJ9CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQmxvY2tjaGFpbkRlc3RpbmF0aW9uKAogICAgICAgICAgICAgICAgdHlwZSA9ICdCTE9DS0NIQUlOJywKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSB7ImJsb2NrY2hhaW5BZGRyZXNzIjoiMHgxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwIiwidGFnIjoiMTIzNDU2Nzg5MCJ9LAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEJsb2NrY2hhaW5EZXN0aW5hdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IEJsb2NrY2hhaW5EZXN0aW5hdGlvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_blockchain_explorer.py b/test/test_blockchain_explorer.py index 7022a432..1ec79184 100644 --- a/test/test_blockchain_explorer.py +++ b/test/test_blockchain_explorer.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.blockchain_explorer import BlockchainExplorer - - -class TestBlockchainExplorer(unittest.TestCase): - """BlockchainExplorer unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> BlockchainExplorer: - """Test BlockchainExplorer - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `BlockchainExplorer` - """ - model = BlockchainExplorer() - if include_optional: - return BlockchainExplorer( - base = 'https://example.com', - address = 'https://example.com/address/{address}', - tx = 'https://example.com/tx/{tx}', - token = 'https://example.com/nft/{contract}/{tokenId}' - ) - else: - return BlockchainExplorer( - base = 'https://example.com', - ) - """ - - def testBlockchainExplorer(self): - """Test BlockchainExplorer""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fZXhwbG9yZXIgaW1wb3J0IEJsb2NrY2hhaW5FeHBsb3JlcgoKCmNsYXNzIFRlc3RCbG9ja2NoYWluRXhwbG9yZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQmxvY2tjaGFpbkV4cGxvcmVyIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBCbG9ja2NoYWluRXhwbG9yZXI6CiAgICAgICAgIiIiVGVzdCBCbG9ja2NoYWluRXhwbG9yZXIKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQmxvY2tjaGFpbkV4cGxvcmVyYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQmxvY2tjaGFpbkV4cGxvcmVyKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQmxvY2tjaGFpbkV4cGxvcmVyKAogICAgICAgICAgICAgICAgYmFzZSA9ICdodHRwczovL2V4YW1wbGUuY29tJywKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS9hZGRyZXNzL3thZGRyZXNzfScsCiAgICAgICAgICAgICAgICB0eCA9ICdodHRwczovL2V4YW1wbGUuY29tL3R4L3t0eH0nLAogICAgICAgICAgICAgICAgdG9rZW4gPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS9uZnQve2NvbnRyYWN0fS97dG9rZW5JZH0nCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQmxvY2tjaGFpbkV4cGxvcmVyKAogICAgICAgICAgICAgICAgYmFzZSA9ICdodHRwczovL2V4YW1wbGUuY29tJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RCbG9ja2NoYWluRXhwbG9yZXIoc2VsZik6CiAgICAgICAgIiIiVGVzdCBCbG9ja2NoYWluRXhwbG9yZXIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_blockchain_media.py b/test/test_blockchain_media.py index e1534b04..4f3b06e2 100644 --- a/test/test_blockchain_media.py +++ b/test/test_blockchain_media.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.blockchain_media import BlockchainMedia - - -class TestBlockchainMedia(unittest.TestCase): - """BlockchainMedia unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> BlockchainMedia: - """Test BlockchainMedia - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `BlockchainMedia` - """ - model = BlockchainMedia() - if include_optional: - return BlockchainMedia( - url = 'https://example.com/image.png', - type = 'image/svg+xml' - ) - else: - return BlockchainMedia( - url = 'https://example.com/image.png', - type = 'image/svg+xml', - ) - """ - - def testBlockchainMedia(self): - """Test BlockchainMedia""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fbWVkaWEgaW1wb3J0IEJsb2NrY2hhaW5NZWRpYQoKCmNsYXNzIFRlc3RCbG9ja2NoYWluTWVkaWEodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQmxvY2tjaGFpbk1lZGlhIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBCbG9ja2NoYWluTWVkaWE6CiAgICAgICAgIiIiVGVzdCBCbG9ja2NoYWluTWVkaWEKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQmxvY2tjaGFpbk1lZGlhYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQmxvY2tjaGFpbk1lZGlhKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQmxvY2tjaGFpbk1lZGlhKAogICAgICAgICAgICAgICAgdXJsID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vaW1hZ2UucG5nJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnaW1hZ2Uvc3ZnK3htbCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBCbG9ja2NoYWluTWVkaWEoCiAgICAgICAgICAgICAgICB1cmwgPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS9pbWFnZS5wbmcnLAogICAgICAgICAgICAgICAgdHlwZSA9ICdpbWFnZS9zdmcreG1sJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RCbG9ja2NoYWluTWVkaWEoc2VsZik6CiAgICAgICAgIiIiVGVzdCBCbG9ja2NoYWluTWVkaWEiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_blockchain_metadata.py b/test/test_blockchain_metadata.py index 10ac7638..44bac6f0 100644 --- a/test/test_blockchain_metadata.py +++ b/test/test_blockchain_metadata.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.blockchain_metadata import BlockchainMetadata - - -class TestBlockchainMetadata(unittest.TestCase): - """BlockchainMetadata unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> BlockchainMetadata: - """Test BlockchainMetadata - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `BlockchainMetadata` - """ - model = BlockchainMetadata() - if include_optional: - return BlockchainMetadata( - scope = 'GLOBAL', - deprecated = False, - media = [ - fireblocks.models.blockchain_media.BlockchainMedia( - url = 'https://example.com/image.png', - type = 'image/svg+xml', ) - ], - explorer = fireblocks.models.blockchain_explorer.BlockchainExplorer( - base = 'https://example.com', - address = 'https://example.com/address/{address}', - tx = 'https://example.com/tx/{tx}', - token = 'https://example.com/nft/{contract}/{tokenId}', ) - ) - else: - return BlockchainMetadata( - scope = 'GLOBAL', - deprecated = False, - ) - """ - - def testBlockchainMetadata(self): - """Test BlockchainMetadata""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fbWV0YWRhdGEgaW1wb3J0IEJsb2NrY2hhaW5NZXRhZGF0YQoKCmNsYXNzIFRlc3RCbG9ja2NoYWluTWV0YWRhdGEodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQmxvY2tjaGFpbk1ldGFkYXRhIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBCbG9ja2NoYWluTWV0YWRhdGE6CiAgICAgICAgIiIiVGVzdCBCbG9ja2NoYWluTWV0YWRhdGEKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQmxvY2tjaGFpbk1ldGFkYXRhYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQmxvY2tjaGFpbk1ldGFkYXRhKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQmxvY2tjaGFpbk1ldGFkYXRhKAogICAgICAgICAgICAgICAgc2NvcGUgPSAnR0xPQkFMJywKICAgICAgICAgICAgICAgIGRlcHJlY2F0ZWQgPSBGYWxzZSwKICAgICAgICAgICAgICAgIG1lZGlhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fbWVkaWEuQmxvY2tjaGFpbk1lZGlhKAogICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS9pbWFnZS5wbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdpbWFnZS9zdmcreG1sJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBleHBsb3JlciA9IGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fZXhwbG9yZXIuQmxvY2tjaGFpbkV4cGxvcmVyKAogICAgICAgICAgICAgICAgICAgIGJhc2UgPSAnaHR0cHM6Ly9leGFtcGxlLmNvbScsIAogICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS9hZGRyZXNzL3thZGRyZXNzfScsIAogICAgICAgICAgICAgICAgICAgIHR4ID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vdHgve3R4fScsIAogICAgICAgICAgICAgICAgICAgIHRva2VuID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vbmZ0L3tjb250cmFjdH0ve3Rva2VuSWR9JywgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEJsb2NrY2hhaW5NZXRhZGF0YSgKICAgICAgICAgICAgICAgIHNjb3BlID0gJ0dMT0JBTCcsCiAgICAgICAgICAgICAgICBkZXByZWNhdGVkID0gRmFsc2UsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QmxvY2tjaGFpbk1ldGFkYXRhKHNlbGYpOgogICAgICAgICIiIlRlc3QgQmxvY2tjaGFpbk1ldGFkYXRhIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_blockchain_not_found_error_response.py b/test/test_blockchain_not_found_error_response.py index caec4f14..2ad11e5c 100644 --- a/test/test_blockchain_not_found_error_response.py +++ b/test/test_blockchain_not_found_error_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.blockchain_not_found_error_response import ( - BlockchainNotFoundErrorResponse, -) - - -class TestBlockchainNotFoundErrorResponse(unittest.TestCase): - """BlockchainNotFoundErrorResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> BlockchainNotFoundErrorResponse: - """Test BlockchainNotFoundErrorResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `BlockchainNotFoundErrorResponse` - """ - model = BlockchainNotFoundErrorResponse() - if include_optional: - return BlockchainNotFoundErrorResponse( - message = 'Blockchain with specified ID not found', - code = 1505 - ) - else: - return BlockchainNotFoundErrorResponse( - message = 'Blockchain with specified ID not found', - code = 1505, - ) - """ - - def testBlockchainNotFoundErrorResponse(self): - """Test BlockchainNotFoundErrorResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fbm90X2ZvdW5kX2Vycm9yX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBCbG9ja2NoYWluTm90Rm91bmRFcnJvclJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdEJsb2NrY2hhaW5Ob3RGb3VuZEVycm9yUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQmxvY2tjaGFpbk5vdEZvdW5kRXJyb3JSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQmxvY2tjaGFpbk5vdEZvdW5kRXJyb3JSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEJsb2NrY2hhaW5Ob3RGb3VuZEVycm9yUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQmxvY2tjaGFpbk5vdEZvdW5kRXJyb3JSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEJsb2NrY2hhaW5Ob3RGb3VuZEVycm9yUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBCbG9ja2NoYWluTm90Rm91bmRFcnJvclJlc3BvbnNlKAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdCbG9ja2NoYWluIHdpdGggc3BlY2lmaWVkIElEIG5vdCBmb3VuZCcsCiAgICAgICAgICAgICAgICBjb2RlID0gMTUwNQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEJsb2NrY2hhaW5Ob3RGb3VuZEVycm9yUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ0Jsb2NrY2hhaW4gd2l0aCBzcGVjaWZpZWQgSUQgbm90IGZvdW5kJywKICAgICAgICAgICAgICAgIGNvZGUgPSAxNTA1LAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEJsb2NrY2hhaW5Ob3RGb3VuZEVycm9yUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBCbG9ja2NoYWluTm90Rm91bmRFcnJvclJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_blockchain_onchain.py b/test/test_blockchain_onchain.py index bdf4d433..33bc4b4f 100644 --- a/test/test_blockchain_onchain.py +++ b/test/test_blockchain_onchain.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.blockchain_onchain import BlockchainOnchain - - -class TestBlockchainOnchain(unittest.TestCase): - """BlockchainOnchain unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> BlockchainOnchain: - """Test BlockchainOnchain - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `BlockchainOnchain` - """ - model = BlockchainOnchain() - if include_optional: - return BlockchainOnchain( - protocol = 'EVM', - chain_id = '1', - test = False, - signing_algo = 'ECDSA_SECP256K1' - ) - else: - return BlockchainOnchain( - protocol = 'EVM', - test = False, - signing_algo = 'ECDSA_SECP256K1', - ) - """ - - def testBlockchainOnchain(self): - """Test BlockchainOnchain""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fb25jaGFpbiBpbXBvcnQgQmxvY2tjaGFpbk9uY2hhaW4KCgpjbGFzcyBUZXN0QmxvY2tjaGFpbk9uY2hhaW4odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQmxvY2tjaGFpbk9uY2hhaW4gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEJsb2NrY2hhaW5PbmNoYWluOgogICAgICAgICIiIlRlc3QgQmxvY2tjaGFpbk9uY2hhaW4KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQmxvY2tjaGFpbk9uY2hhaW5gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBCbG9ja2NoYWluT25jaGFpbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEJsb2NrY2hhaW5PbmNoYWluKAogICAgICAgICAgICAgICAgcHJvdG9jb2wgPSAnRVZNJywKICAgICAgICAgICAgICAgIGNoYWluX2lkID0gJzEnLAogICAgICAgICAgICAgICAgdGVzdCA9IEZhbHNlLAogICAgICAgICAgICAgICAgc2lnbmluZ19hbGdvID0gJ0VDRFNBX1NFQ1AyNTZLMScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBCbG9ja2NoYWluT25jaGFpbigKICAgICAgICAgICAgICAgIHByb3RvY29sID0gJ0VWTScsCiAgICAgICAgICAgICAgICB0ZXN0ID0gRmFsc2UsCiAgICAgICAgICAgICAgICBzaWduaW5nX2FsZ28gPSAnRUNEU0FfU0VDUDI1NksxJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RCbG9ja2NoYWluT25jaGFpbihzZWxmKToKICAgICAgICAiIiJUZXN0IEJsb2NrY2hhaW5PbmNoYWluIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_blockchain_response.py b/test/test_blockchain_response.py index a6e00d72..bcc5f72c 100644 --- a/test/test_blockchain_response.py +++ b/test/test_blockchain_response.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.blockchain_response import BlockchainResponse - - -class TestBlockchainResponse(unittest.TestCase): - """BlockchainResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> BlockchainResponse: - """Test BlockchainResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `BlockchainResponse` - """ - model = BlockchainResponse() - if include_optional: - return BlockchainResponse( - id = '9f9f7062-df90-4fc0-8697-96685184357b', - legacy_id = 'ETH', - display_name = 'Ethereum', - native_asset_id = '9f9f7062-df90-4fc0-8697-96685184356a', - onchain = fireblocks.models.blockchain_onchain.BlockchainOnchain( - protocol = 'EVM', - chain_id = '1', - test = False, - signing_algo = 'ECDSA_SECP256K1', ), - metadata = fireblocks.models.blockchain_metadata.BlockchainMetadata( - scope = 'GLOBAL', - deprecated = False, - media = [ - fireblocks.models.blockchain_media.BlockchainMedia( - url = 'https://example.com/image.png', - type = 'image/svg+xml', ) - ], - explorer = fireblocks.models.blockchain_explorer.BlockchainExplorer( - base = 'https://example.com', - address = 'https://example.com/address/{address}', - tx = 'https://example.com/tx/{tx}', - token = 'https://example.com/nft/{contract}/{tokenId}', ), ) - ) - else: - return BlockchainResponse( - id = '9f9f7062-df90-4fc0-8697-96685184357b', - legacy_id = 'ETH', - display_name = 'Ethereum', - native_asset_id = '9f9f7062-df90-4fc0-8697-96685184356a', - onchain = fireblocks.models.blockchain_onchain.BlockchainOnchain( - protocol = 'EVM', - chain_id = '1', - test = False, - signing_algo = 'ECDSA_SECP256K1', ), - metadata = fireblocks.models.blockchain_metadata.BlockchainMetadata( - scope = 'GLOBAL', - deprecated = False, - media = [ - fireblocks.models.blockchain_media.BlockchainMedia( - url = 'https://example.com/image.png', - type = 'image/svg+xml', ) - ], - explorer = fireblocks.models.blockchain_explorer.BlockchainExplorer( - base = 'https://example.com', - address = 'https://example.com/address/{address}', - tx = 'https://example.com/tx/{tx}', - token = 'https://example.com/nft/{contract}/{tokenId}', ), ), - ) - """ - - def testBlockchainResponse(self): - """Test BlockchainResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fcmVzcG9uc2UgaW1wb3J0IEJsb2NrY2hhaW5SZXNwb25zZQoKCmNsYXNzIFRlc3RCbG9ja2NoYWluUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQmxvY2tjaGFpblJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBCbG9ja2NoYWluUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBCbG9ja2NoYWluUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQmxvY2tjaGFpblJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQmxvY2tjaGFpblJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQmxvY2tjaGFpblJlc3BvbnNlKAogICAgICAgICAgICAgICAgaWQgPSAnOWY5ZjcwNjItZGY5MC00ZmMwLTg2OTctOTY2ODUxODQzNTdiJywKICAgICAgICAgICAgICAgIGxlZ2FjeV9pZCA9ICdFVEgnLAogICAgICAgICAgICAgICAgZGlzcGxheV9uYW1lID0gJ0V0aGVyZXVtJywKICAgICAgICAgICAgICAgIG5hdGl2ZV9hc3NldF9pZCA9ICc5ZjlmNzA2Mi1kZjkwLTRmYzAtODY5Ny05NjY4NTE4NDM1NmEnLAogICAgICAgICAgICAgICAgb25jaGFpbiA9IGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fb25jaGFpbi5CbG9ja2NoYWluT25jaGFpbigKICAgICAgICAgICAgICAgICAgICBwcm90b2NvbCA9ICdFVk0nLCAKICAgICAgICAgICAgICAgICAgICBjaGFpbl9pZCA9ICcxJywgCiAgICAgICAgICAgICAgICAgICAgdGVzdCA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICBzaWduaW5nX2FsZ28gPSAnRUNEU0FfU0VDUDI1NksxJywgKSwKICAgICAgICAgICAgICAgIG1ldGFkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9tZXRhZGF0YS5CbG9ja2NoYWluTWV0YWRhdGEoCiAgICAgICAgICAgICAgICAgICAgc2NvcGUgPSAnR0xPQkFMJywgCiAgICAgICAgICAgICAgICAgICAgZGVwcmVjYXRlZCA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICBtZWRpYSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9tZWRpYS5CbG9ja2NoYWluTWVkaWEoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS9pbWFnZS5wbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnaW1hZ2Uvc3ZnK3htbCcsICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgZXhwbG9yZXIgPSBmaXJlYmxvY2tzLm1vZGVscy5ibG9ja2NoYWluX2V4cGxvcmVyLkJsb2NrY2hhaW5FeHBsb3JlcigKICAgICAgICAgICAgICAgICAgICAgICAgYmFzZSA9ICdodHRwczovL2V4YW1wbGUuY29tJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS9hZGRyZXNzL3thZGRyZXNzfScsIAogICAgICAgICAgICAgICAgICAgICAgICB0eCA9ICdodHRwczovL2V4YW1wbGUuY29tL3R4L3t0eH0nLCAKICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS9uZnQve2NvbnRyYWN0fS97dG9rZW5JZH0nLCApLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQmxvY2tjaGFpblJlc3BvbnNlKAogICAgICAgICAgICAgICAgaWQgPSAnOWY5ZjcwNjItZGY5MC00ZmMwLTg2OTctOTY2ODUxODQzNTdiJywKICAgICAgICAgICAgICAgIGxlZ2FjeV9pZCA9ICdFVEgnLAogICAgICAgICAgICAgICAgZGlzcGxheV9uYW1lID0gJ0V0aGVyZXVtJywKICAgICAgICAgICAgICAgIG5hdGl2ZV9hc3NldF9pZCA9ICc5ZjlmNzA2Mi1kZjkwLTRmYzAtODY5Ny05NjY4NTE4NDM1NmEnLAogICAgICAgICAgICAgICAgb25jaGFpbiA9IGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fb25jaGFpbi5CbG9ja2NoYWluT25jaGFpbigKICAgICAgICAgICAgICAgICAgICBwcm90b2NvbCA9ICdFVk0nLCAKICAgICAgICAgICAgICAgICAgICBjaGFpbl9pZCA9ICcxJywgCiAgICAgICAgICAgICAgICAgICAgdGVzdCA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICBzaWduaW5nX2FsZ28gPSAnRUNEU0FfU0VDUDI1NksxJywgKSwKICAgICAgICAgICAgICAgIG1ldGFkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9tZXRhZGF0YS5CbG9ja2NoYWluTWV0YWRhdGEoCiAgICAgICAgICAgICAgICAgICAgc2NvcGUgPSAnR0xPQkFMJywgCiAgICAgICAgICAgICAgICAgICAgZGVwcmVjYXRlZCA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICBtZWRpYSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9tZWRpYS5CbG9ja2NoYWluTWVkaWEoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS9pbWFnZS5wbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnaW1hZ2Uvc3ZnK3htbCcsICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgZXhwbG9yZXIgPSBmaXJlYmxvY2tzLm1vZGVscy5ibG9ja2NoYWluX2V4cGxvcmVyLkJsb2NrY2hhaW5FeHBsb3JlcigKICAgICAgICAgICAgICAgICAgICAgICAgYmFzZSA9ICdodHRwczovL2V4YW1wbGUuY29tJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS9hZGRyZXNzL3thZGRyZXNzfScsIAogICAgICAgICAgICAgICAgICAgICAgICB0eCA9ICdodHRwczovL2V4YW1wbGUuY29tL3R4L3t0eH0nLCAKICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS9uZnQve2NvbnRyYWN0fS97dG9rZW5JZH0nLCApLCApLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEJsb2NrY2hhaW5SZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IEJsb2NrY2hhaW5SZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_blockchain_transfer.py b/test/test_blockchain_transfer.py index 5c5904f4..089ac522 100644 --- a/test/test_blockchain_transfer.py +++ b/test/test_blockchain_transfer.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.blockchain_transfer import BlockchainTransfer - - -class TestBlockchainTransfer(unittest.TestCase): - """BlockchainTransfer unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> BlockchainTransfer: - """Test BlockchainTransfer - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `BlockchainTransfer` - """ - model = BlockchainTransfer() - if include_optional: - return BlockchainTransfer( - type = 'BLOCKCHAIN', - tx_hash = '', - amount = '' - ) - else: - return BlockchainTransfer( - amount = '', - ) - """ - - def testBlockchainTransfer(self): - """Test BlockchainTransfer""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJsb2NrY2hhaW5fdHJhbnNmZXIgaW1wb3J0IEJsb2NrY2hhaW5UcmFuc2ZlcgoKCmNsYXNzIFRlc3RCbG9ja2NoYWluVHJhbnNmZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQmxvY2tjaGFpblRyYW5zZmVyIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBCbG9ja2NoYWluVHJhbnNmZXI6CiAgICAgICAgIiIiVGVzdCBCbG9ja2NoYWluVHJhbnNmZXIKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQmxvY2tjaGFpblRyYW5zZmVyYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQmxvY2tjaGFpblRyYW5zZmVyKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQmxvY2tjaGFpblRyYW5zZmVyKAogICAgICAgICAgICAgICAgdHlwZSA9ICdCTE9DS0NIQUlOJywKICAgICAgICAgICAgICAgIHR4X2hhc2ggPSAnJywKICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQmxvY2tjaGFpblRyYW5zZmVyKAogICAgICAgICAgICAgICAgYW1vdW50ID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QmxvY2tjaGFpblRyYW5zZmVyKHNlbGYpOgogICAgICAgICIiIlRlc3QgQmxvY2tjaGFpblRyYW5zZmVyIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_blockchains_assets_api.py b/test/test_blockchains_assets_api.py index 65905864..3257dc27 100644 --- a/test/test_blockchains_assets_api.py +++ b/test/test_blockchains_assets_api.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.blockchains_assets_api import BlockchainsAssetsApi - - -class TestBlockchainsAssetsApi(unittest.TestCase): - """BlockchainsAssetsApi unit test stubs""" - - def setUp(self) -> None: - self.api = BlockchainsAssetsApi() - - def tearDown(self) -> None: - pass - - def test_get_asset(self) -> None: - """Test case for get_asset - - Get an asset - """ - pass - - def test_get_blockchain(self) -> None: - """Test case for get_blockchain - - Get a Blockchain by ID - """ - pass - - def test_get_supported_assets(self) -> None: - """Test case for get_supported_assets - - List assets (Legacy) - """ - pass - - def test_list_assets(self) -> None: - """Test case for list_assets - - List assets - """ - pass - - def test_list_blockchains(self) -> None: - """Test case for list_blockchains - - List blockchains - """ - pass - - def test_register_new_asset(self) -> None: - """Test case for register_new_asset - - Register an asset - """ - pass - - def test_set_asset_price(self) -> None: - """Test case for set_asset_price - - Set asset price - """ - pass - - def test_update_asset_user_metadata(self) -> None: - """Test case for update_asset_user_metadata - - Update the user’s metadata for an asset - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLmJsb2NrY2hhaW5zX2Fzc2V0c19hcGkgaW1wb3J0IEJsb2NrY2hhaW5zQXNzZXRzQXBpCgoKY2xhc3MgVGVzdEJsb2NrY2hhaW5zQXNzZXRzQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkJsb2NrY2hhaW5zQXNzZXRzQXBpIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKSAtPiBOb25lOgogICAgICAgIHNlbGYuYXBpID0gQmxvY2tjaGFpbnNBc3NldHNBcGkoKQoKICAgIGRlZiB0ZWFyRG93bihzZWxmKSAtPiBOb25lOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfYXNzZXQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9hc3NldAoKICAgICAgICBHZXQgYW4gYXNzZXQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2Jsb2NrY2hhaW4oc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9ibG9ja2NoYWluCgogICAgICAgIEdldCBhIEJsb2NrY2hhaW4gYnkgSUQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3N1cHBvcnRlZF9hc3NldHMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9zdXBwb3J0ZWRfYXNzZXRzCgogICAgICAgIExpc3QgYXNzZXRzIChMZWdhY3kpCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2xpc3RfYXNzZXRzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBsaXN0X2Fzc2V0cwoKICAgICAgICBMaXN0IGFzc2V0cwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9saXN0X2Jsb2NrY2hhaW5zKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBsaXN0X2Jsb2NrY2hhaW5zCgogICAgICAgIExpc3QgYmxvY2tjaGFpbnMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfcmVnaXN0ZXJfbmV3X2Fzc2V0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciByZWdpc3Rlcl9uZXdfYXNzZXQKCiAgICAgICAgUmVnaXN0ZXIgYW4gYXNzZXQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3Rfc2V0X2Fzc2V0X3ByaWNlKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBzZXRfYXNzZXRfcHJpY2UKCiAgICAgICAgU2V0IGFzc2V0IHByaWNlCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3VwZGF0ZV9hc3NldF91c2VyX21ldGFkYXRhKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciB1cGRhdGVfYXNzZXRfdXNlcl9tZXRhZGF0YQoKICAgICAgICBVcGRhdGUgdGhlIHVzZXLigJlzIG1ldGFkYXRhIGZvciBhbiBhc3NldAogICAgICAgICIiIgogICAgICAgIHBhc3MKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_bps_fee.py b/test/test_bps_fee.py index bb6aff7d..2fbb68b9 100644 --- a/test/test_bps_fee.py +++ b/test/test_bps_fee.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.bps_fee import BpsFee - - -class TestBpsFee(unittest.TestCase): - """BpsFee unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> BpsFee: - """Test BpsFee - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `BpsFee` - """ - model = BpsFee() - if include_optional: - return BpsFee( - amount_type = 'BPS', - amount = 50 - ) - else: - return BpsFee( - amount_type = 'BPS', - amount = 50, - ) - """ - - def testBpsFee(self): - """Test BpsFee""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJwc19mZWUgaW1wb3J0IEJwc0ZlZQoKCmNsYXNzIFRlc3RCcHNGZWUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQnBzRmVlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBCcHNGZWU6CiAgICAgICAgIiIiVGVzdCBCcHNGZWUKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQnBzRmVlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQnBzRmVlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQnBzRmVlKAogICAgICAgICAgICAgICAgYW1vdW50X3R5cGUgPSAnQlBTJywKICAgICAgICAgICAgICAgIGFtb3VudCA9IDUwCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQnBzRmVlKAogICAgICAgICAgICAgICAgYW1vdW50X3R5cGUgPSAnQlBTJywKICAgICAgICAgICAgICAgIGFtb3VudCA9IDUwLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEJwc0ZlZShzZWxmKToKICAgICAgICAiIiJUZXN0IEJwc0ZlZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_business_entity_type_enum.py b/test/test_business_entity_type_enum.py index cdfd3636..2943a019 100644 --- a/test/test_business_entity_type_enum.py +++ b/test/test_business_entity_type_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.business_entity_type_enum import BusinessEntityTypeEnum - - -class TestBusinessEntityTypeEnum(unittest.TestCase): - """BusinessEntityTypeEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testBusinessEntityTypeEnum(self): - """Test BusinessEntityTypeEnum""" - # inst = BusinessEntityTypeEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJ1c2luZXNzX2VudGl0eV90eXBlX2VudW0gaW1wb3J0IEJ1c2luZXNzRW50aXR5VHlwZUVudW0KCgpjbGFzcyBUZXN0QnVzaW5lc3NFbnRpdHlUeXBlRW51bSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJCdXNpbmVzc0VudGl0eVR5cGVFbnVtIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdEJ1c2luZXNzRW50aXR5VHlwZUVudW0oc2VsZik6CiAgICAgICAgIiIiVGVzdCBCdXNpbmVzc0VudGl0eVR5cGVFbnVtIiIiCiAgICAgICAgIyBpbnN0ID0gQnVzaW5lc3NFbnRpdHlUeXBlRW51bSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_business_identification.py b/test/test_business_identification.py index ad19a93b..9af257ed 100644 --- a/test/test_business_identification.py +++ b/test/test_business_identification.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.business_identification import BusinessIdentification - - -class TestBusinessIdentification(unittest.TestCase): - """BusinessIdentification unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> BusinessIdentification: - """Test BusinessIdentification - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `BusinessIdentification` - """ - model = BusinessIdentification() - if include_optional: - return BusinessIdentification( - external_reference_id = '', - entity_type = 'BUSINESS', - participant_relationship_type = 'FirstParty', - business_name = '', - registration_number = '', - postal_address = {"streetName":"Fifth Avenue","buildingNumber":"350","postalCode":"10118","city":"New York","subdivision":"NY","district":"Manhattan","country":"US"}, - email = '', - phone = '+14155551234' - ) - else: - return BusinessIdentification( - external_reference_id = '', - entity_type = 'BUSINESS', - participant_relationship_type = 'FirstParty', - business_name = '', - registration_number = '', - postal_address = {"streetName":"Fifth Avenue","buildingNumber":"350","postalCode":"10118","city":"New York","subdivision":"NY","district":"Manhattan","country":"US"}, - ) - """ - - def testBusinessIdentification(self): - """Test BusinessIdentification""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmJ1c2luZXNzX2lkZW50aWZpY2F0aW9uIGltcG9ydCBCdXNpbmVzc0lkZW50aWZpY2F0aW9uCgoKY2xhc3MgVGVzdEJ1c2luZXNzSWRlbnRpZmljYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQnVzaW5lc3NJZGVudGlmaWNhdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQnVzaW5lc3NJZGVudGlmaWNhdGlvbjoKICAgICAgICAiIiJUZXN0IEJ1c2luZXNzSWRlbnRpZmljYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQnVzaW5lc3NJZGVudGlmaWNhdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEJ1c2luZXNzSWRlbnRpZmljYXRpb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBCdXNpbmVzc0lkZW50aWZpY2F0aW9uKAogICAgICAgICAgICAgICAgZXh0ZXJuYWxfcmVmZXJlbmNlX2lkID0gJycsCiAgICAgICAgICAgICAgICBlbnRpdHlfdHlwZSA9ICdCVVNJTkVTUycsCiAgICAgICAgICAgICAgICBwYXJ0aWNpcGFudF9yZWxhdGlvbnNoaXBfdHlwZSA9ICdGaXJzdFBhcnR5JywKICAgICAgICAgICAgICAgIGJ1c2luZXNzX25hbWUgPSAnJywKICAgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbl9udW1iZXIgPSAnJywKICAgICAgICAgICAgICAgIHBvc3RhbF9hZGRyZXNzID0geyJzdHJlZXROYW1lIjoiRmlmdGggQXZlbnVlIiwiYnVpbGRpbmdOdW1iZXIiOiIzNTAiLCJwb3N0YWxDb2RlIjoiMTAxMTgiLCJjaXR5IjoiTmV3IFlvcmsiLCJzdWJkaXZpc2lvbiI6Ik5ZIiwiZGlzdHJpY3QiOiJNYW5oYXR0YW4iLCJjb3VudHJ5IjoiVVMifSwKICAgICAgICAgICAgICAgIGVtYWlsID0gJycsCiAgICAgICAgICAgICAgICBwaG9uZSA9ICcrMTQxNTU1NTEyMzQnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQnVzaW5lc3NJZGVudGlmaWNhdGlvbigKICAgICAgICAgICAgICAgIGV4dGVybmFsX3JlZmVyZW5jZV9pZCA9ICcnLAogICAgICAgICAgICAgICAgZW50aXR5X3R5cGUgPSAnQlVTSU5FU1MnLAogICAgICAgICAgICAgICAgcGFydGljaXBhbnRfcmVsYXRpb25zaGlwX3R5cGUgPSAnRmlyc3RQYXJ0eScsCiAgICAgICAgICAgICAgICBidXNpbmVzc19uYW1lID0gJycsCiAgICAgICAgICAgICAgICByZWdpc3RyYXRpb25fbnVtYmVyID0gJycsCiAgICAgICAgICAgICAgICBwb3N0YWxfYWRkcmVzcyA9IHsic3RyZWV0TmFtZSI6IkZpZnRoIEF2ZW51ZSIsImJ1aWxkaW5nTnVtYmVyIjoiMzUwIiwicG9zdGFsQ29kZSI6IjEwMTE4IiwiY2l0eSI6Ik5ldyBZb3JrIiwic3ViZGl2aXNpb24iOiJOWSIsImRpc3RyaWN0IjoiTWFuaGF0dGFuIiwiY291bnRyeSI6IlVTIn0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0QnVzaW5lc3NJZGVudGlmaWNhdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IEJ1c2luZXNzSWRlbnRpZmljYXRpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_callback_handler.py b/test/test_callback_handler.py index 381ae7da..0630c629 100644 --- a/test/test_callback_handler.py +++ b/test/test_callback_handler.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.callback_handler import CallbackHandler - - -class TestCallbackHandler(unittest.TestCase): - """CallbackHandler unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CallbackHandler: - """Test CallbackHandler - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CallbackHandler` - """ - model = CallbackHandler() - if include_optional: - return CallbackHandler( - url = 'https://example.com/callback-handler', - public_key = '-----BEGIN PUBLIC KEY----- -... truncated ... ------END PUBLIC KEY-----', - cert_public_key_hash = '' - ) - else: - return CallbackHandler( - url = 'https://example.com/callback-handler', - ) - """ - - def testCallbackHandler(self): - """Test CallbackHandler""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNhbGxiYWNrX2hhbmRsZXIgaW1wb3J0IENhbGxiYWNrSGFuZGxlcgoKCmNsYXNzIFRlc3RDYWxsYmFja0hhbmRsZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ2FsbGJhY2tIYW5kbGVyIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDYWxsYmFja0hhbmRsZXI6CiAgICAgICAgIiIiVGVzdCBDYWxsYmFja0hhbmRsZXIKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ2FsbGJhY2tIYW5kbGVyYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ2FsbGJhY2tIYW5kbGVyKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ2FsbGJhY2tIYW5kbGVyKAogICAgICAgICAgICAgICAgdXJsID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vY2FsbGJhY2staGFuZGxlcicsCiAgICAgICAgICAgICAgICBwdWJsaWNfa2V5ID0gJy0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tCi4uLiB0cnVuY2F0ZWQgLi4uCi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLScsCiAgICAgICAgICAgICAgICBjZXJ0X3B1YmxpY19rZXlfaGFzaCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ2FsbGJhY2tIYW5kbGVyKAogICAgICAgICAgICAgICAgdXJsID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vY2FsbGJhY2staGFuZGxlcicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q2FsbGJhY2tIYW5kbGVyKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ2FsbGJhY2tIYW5kbGVyIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_callback_handler_request.py b/test/test_callback_handler_request.py index a2067294..9489ab22 100644 --- a/test/test_callback_handler_request.py +++ b/test/test_callback_handler_request.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.callback_handler_request import CallbackHandlerRequest - - -class TestCallbackHandlerRequest(unittest.TestCase): - """CallbackHandlerRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CallbackHandlerRequest: - """Test CallbackHandlerRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CallbackHandlerRequest` - """ - model = CallbackHandlerRequest() - if include_optional: - return CallbackHandlerRequest( - url = 'https://example.com/callback-handler', - public_key = '-----BEGIN PUBLIC KEY----- -... truncated ...-----END PUBLIC KEY-----', - cert = '-----BEGIN CERTIFICATE----- -... truncated ... ------END CERTIFICATE-----' - ) - else: - return CallbackHandlerRequest( - url = 'https://example.com/callback-handler', - ) - """ - - def testCallbackHandlerRequest(self): - """Test CallbackHandlerRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNhbGxiYWNrX2hhbmRsZXJfcmVxdWVzdCBpbXBvcnQgQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdAoKCmNsYXNzIFRlc3RDYWxsYmFja0hhbmRsZXJSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNhbGxiYWNrSGFuZGxlclJlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENhbGxiYWNrSGFuZGxlclJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBDYWxsYmFja0hhbmRsZXJSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENhbGxiYWNrSGFuZGxlclJlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDYWxsYmFja0hhbmRsZXJSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdCgKICAgICAgICAgICAgICAgIHVybCA9ICdodHRwczovL2V4YW1wbGUuY29tL2NhbGxiYWNrLWhhbmRsZXInLAogICAgICAgICAgICAgICAgcHVibGljX2tleSA9ICctLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLQouLi4gdHJ1bmNhdGVkIC4uLi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLScsCiAgICAgICAgICAgICAgICBjZXJ0ID0gJy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQouLi4gdHJ1bmNhdGVkIC4uLgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENhbGxiYWNrSGFuZGxlclJlcXVlc3QoCiAgICAgICAgICAgICAgICB1cmwgPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS9jYWxsYmFjay1oYW5kbGVyJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDYWxsYmFja0hhbmRsZXJSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_cancel_transaction_response.py b/test/test_cancel_transaction_response.py index 2039bbaa..6932fcdd 100644 --- a/test/test_cancel_transaction_response.py +++ b/test/test_cancel_transaction_response.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.cancel_transaction_response import CancelTransactionResponse - - -class TestCancelTransactionResponse(unittest.TestCase): - """CancelTransactionResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CancelTransactionResponse: - """Test CancelTransactionResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CancelTransactionResponse` - """ - model = CancelTransactionResponse() - if include_optional: - return CancelTransactionResponse( - success = True - ) - else: - return CancelTransactionResponse( - ) - """ - - def testCancelTransactionResponse(self): - """Test CancelTransactionResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNhbmNlbF90cmFuc2FjdGlvbl9yZXNwb25zZSBpbXBvcnQgQ2FuY2VsVHJhbnNhY3Rpb25SZXNwb25zZQoKCmNsYXNzIFRlc3RDYW5jZWxUcmFuc2FjdGlvblJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNhbmNlbFRyYW5zYWN0aW9uUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENhbmNlbFRyYW5zYWN0aW9uUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBDYW5jZWxUcmFuc2FjdGlvblJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENhbmNlbFRyYW5zYWN0aW9uUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDYW5jZWxUcmFuc2FjdGlvblJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ2FuY2VsVHJhbnNhY3Rpb25SZXNwb25zZSgKICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ2FuY2VsVHJhbnNhY3Rpb25SZXNwb25zZSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDYW5jZWxUcmFuc2FjdGlvblJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ2FuY2VsVHJhbnNhY3Rpb25SZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_chain_descriptor.py b/test/test_chain_descriptor.py index bed4a836..6ab29876 100644 --- a/test/test_chain_descriptor.py +++ b/test/test_chain_descriptor.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.chain_descriptor import ChainDescriptor - - -class TestChainDescriptor(unittest.TestCase): - """ChainDescriptor unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testChainDescriptor(self): - """Test ChainDescriptor""" - # inst = ChainDescriptor() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYWluX2Rlc2NyaXB0b3IgaW1wb3J0IENoYWluRGVzY3JpcHRvcgoKCmNsYXNzIFRlc3RDaGFpbkRlc2NyaXB0b3IodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ2hhaW5EZXNjcmlwdG9yIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdENoYWluRGVzY3JpcHRvcihzZWxmKToKICAgICAgICAiIiJUZXN0IENoYWluRGVzY3JpcHRvciIiIgogICAgICAgICMgaW5zdCA9IENoYWluRGVzY3JpcHRvcigpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_chain_info_response.py b/test/test_chain_info_response.py index 6a27c210..18ae7beb 100644 --- a/test/test_chain_info_response.py +++ b/test/test_chain_info_response.py @@ -1,71 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.chain_info_response import ChainInfoResponse - - -class TestChainInfoResponse(unittest.TestCase): - """ChainInfoResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ChainInfoResponse: - """Test ChainInfoResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ChainInfoResponse` - """ - model = ChainInfoResponse() - if include_optional: - return ChainInfoResponse( - chain_descriptor = 'SOL', - current_epoch = 483, - epoch_elapsed = 0.31, - epoch_duration = 172800000, - additional_info = fireblocks.models.additional_info.AdditionalInfo( - estimated_annual_reward = 6.48, - lockup_period = 172800000, - activation_period = 172800000, ), - last_updated = 1706602061938 - ) - else: - return ChainInfoResponse( - chain_descriptor = 'SOL', - current_epoch = 483, - epoch_elapsed = 0.31, - epoch_duration = 172800000, - additional_info = fireblocks.models.additional_info.AdditionalInfo( - estimated_annual_reward = 6.48, - lockup_period = 172800000, - activation_period = 172800000, ), - last_updated = 1706602061938, - ) - """ - - def testChainInfoResponse(self): - """Test ChainInfoResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYWluX2luZm9fcmVzcG9uc2UgaW1wb3J0IENoYWluSW5mb1Jlc3BvbnNlCgoKY2xhc3MgVGVzdENoYWluSW5mb1Jlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNoYWluSW5mb1Jlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDaGFpbkluZm9SZXNwb25zZToKICAgICAgICAiIiJUZXN0IENoYWluSW5mb1Jlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENoYWluSW5mb1Jlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ2hhaW5JbmZvUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDaGFpbkluZm9SZXNwb25zZSgKICAgICAgICAgICAgICAgIGNoYWluX2Rlc2NyaXB0b3IgPSAnU09MJywKICAgICAgICAgICAgICAgIGN1cnJlbnRfZXBvY2ggPSA0ODMsCiAgICAgICAgICAgICAgICBlcG9jaF9lbGFwc2VkID0gMC4zMSwKICAgICAgICAgICAgICAgIGVwb2NoX2R1cmF0aW9uID0gMTcyODAwMDAwLAogICAgICAgICAgICAgICAgYWRkaXRpb25hbF9pbmZvID0gZmlyZWJsb2Nrcy5tb2RlbHMuYWRkaXRpb25hbF9pbmZvLkFkZGl0aW9uYWxJbmZvKAogICAgICAgICAgICAgICAgICAgIGVzdGltYXRlZF9hbm51YWxfcmV3YXJkID0gNi40OCwgCiAgICAgICAgICAgICAgICAgICAgbG9ja3VwX3BlcmlvZCA9IDE3MjgwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgYWN0aXZhdGlvbl9wZXJpb2QgPSAxNzI4MDAwMDAsICksCiAgICAgICAgICAgICAgICBsYXN0X3VwZGF0ZWQgPSAxNzA2NjAyMDYxOTM4CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ2hhaW5JbmZvUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBjaGFpbl9kZXNjcmlwdG9yID0gJ1NPTCcsCiAgICAgICAgICAgICAgICBjdXJyZW50X2Vwb2NoID0gNDgzLAogICAgICAgICAgICAgICAgZXBvY2hfZWxhcHNlZCA9IDAuMzEsCiAgICAgICAgICAgICAgICBlcG9jaF9kdXJhdGlvbiA9IDE3MjgwMDAwMCwKICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfaW5mbyA9IGZpcmVibG9ja3MubW9kZWxzLmFkZGl0aW9uYWxfaW5mby5BZGRpdGlvbmFsSW5mbygKICAgICAgICAgICAgICAgICAgICBlc3RpbWF0ZWRfYW5udWFsX3Jld2FyZCA9IDYuNDgsIAogICAgICAgICAgICAgICAgICAgIGxvY2t1cF9wZXJpb2QgPSAxNzI4MDAwMDAsIAogICAgICAgICAgICAgICAgICAgIGFjdGl2YXRpb25fcGVyaW9kID0gMTcyODAwMDAwLCApLAogICAgICAgICAgICAgICAgbGFzdF91cGRhdGVkID0gMTcwNjYwMjA2MTkzOCwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDaGFpbkluZm9SZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IENoYWluSW5mb1Jlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_channel_dvn_config_with_confirmations.py b/test/test_channel_dvn_config_with_confirmations.py index 65679545..2ae2d1e8 100644 --- a/test/test_channel_dvn_config_with_confirmations.py +++ b/test/test_channel_dvn_config_with_confirmations.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.channel_dvn_config_with_confirmations import ( - ChannelDvnConfigWithConfirmations, -) - - -class TestChannelDvnConfigWithConfirmations(unittest.TestCase): - """ChannelDvnConfigWithConfirmations unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ChannelDvnConfigWithConfirmations: - """Test ChannelDvnConfigWithConfirmations - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ChannelDvnConfigWithConfirmations` - """ - model = ChannelDvnConfigWithConfirmations() - if include_optional: - return ChannelDvnConfigWithConfirmations( - send_config = None, - receive_config = None - ) - else: - return ChannelDvnConfigWithConfirmations( - ) - """ - - def testChannelDvnConfigWithConfirmations(self): - """Test ChannelDvnConfigWithConfirmations""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYW5uZWxfZHZuX2NvbmZpZ193aXRoX2NvbmZpcm1hdGlvbnMgaW1wb3J0ICgKICAgIENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9ucywKKQoKCmNsYXNzIFRlc3RDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnM6CiAgICAgICAgIiIiVGVzdCBDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zKAogICAgICAgICAgICAgICAgc2VuZF9jb25maWcgPSBOb25lLAogICAgICAgICAgICAgICAgcmVjZWl2ZV9jb25maWcgPSBOb25lCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9ucyhzZWxmKToKICAgICAgICAiIiJUZXN0IENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9ucyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_channel_dvn_config_with_confirmations_receive_config.py b/test/test_channel_dvn_config_with_confirmations_receive_config.py index 25dc77d3..76802a5d 100644 --- a/test/test_channel_dvn_config_with_confirmations_receive_config.py +++ b/test/test_channel_dvn_config_with_confirmations_receive_config.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.channel_dvn_config_with_confirmations_receive_config import ( - ChannelDvnConfigWithConfirmationsReceiveConfig, -) - - -class TestChannelDvnConfigWithConfirmationsReceiveConfig(unittest.TestCase): - """ChannelDvnConfigWithConfirmationsReceiveConfig unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> ChannelDvnConfigWithConfirmationsReceiveConfig: - """Test ChannelDvnConfigWithConfirmationsReceiveConfig - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ChannelDvnConfigWithConfirmationsReceiveConfig` - """ - model = ChannelDvnConfigWithConfirmationsReceiveConfig() - if include_optional: - return ChannelDvnConfigWithConfirmationsReceiveConfig( - dvn_addresses = [1.0284746938594775E54, 2.5101940177441514E50], - optional_dvn_addresses = [1.334824162533763E54], - optional_threshold = 2, - confirmations = 12 - ) - else: - return ChannelDvnConfigWithConfirmationsReceiveConfig( - dvn_addresses = [1.0284746938594775E54, 2.5101940177441514E50], - optional_threshold = 2, - confirmations = 12, - ) - """ - - def testChannelDvnConfigWithConfirmationsReceiveConfig(self): - """Test ChannelDvnConfigWithConfirmationsReceiveConfig""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYW5uZWxfZHZuX2NvbmZpZ193aXRoX2NvbmZpcm1hdGlvbnNfcmVjZWl2ZV9jb25maWcgaW1wb3J0ICgKICAgIENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1JlY2VpdmVDb25maWcsCikKCgpjbGFzcyBUZXN0Q2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zUmVjZWl2ZUNvbmZpZyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNSZWNlaXZlQ29uZmlnIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZSgKICAgICAgICBzZWxmLCBpbmNsdWRlX29wdGlvbmFsCiAgICApIC0+IENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1JlY2VpdmVDb25maWc6CiAgICAgICAgIiIiVGVzdCBDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNSZWNlaXZlQ29uZmlnCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1JlY2VpdmVDb25maWdgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNSZWNlaXZlQ29uZmlnKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zUmVjZWl2ZUNvbmZpZygKICAgICAgICAgICAgICAgIGR2bl9hZGRyZXNzZXMgPSBbMS4wMjg0NzQ2OTM4NTk0Nzc1RTU0LCAyLjUxMDE5NDAxNzc0NDE1MTRFNTBdLAogICAgICAgICAgICAgICAgb3B0aW9uYWxfZHZuX2FkZHJlc3NlcyA9IFsxLjMzNDgyNDE2MjUzMzc2M0U1NF0sCiAgICAgICAgICAgICAgICBvcHRpb25hbF90aHJlc2hvbGQgPSAyLAogICAgICAgICAgICAgICAgY29uZmlybWF0aW9ucyA9IDEyCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zUmVjZWl2ZUNvbmZpZygKICAgICAgICAgICAgICAgIGR2bl9hZGRyZXNzZXMgPSBbMS4wMjg0NzQ2OTM4NTk0Nzc1RTU0LCAyLjUxMDE5NDAxNzc0NDE1MTRFNTBdLAogICAgICAgICAgICAgICAgb3B0aW9uYWxfdGhyZXNob2xkID0gMiwKICAgICAgICAgICAgICAgIGNvbmZpcm1hdGlvbnMgPSAxMiwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNSZWNlaXZlQ29uZmlnKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zUmVjZWl2ZUNvbmZpZyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_channel_dvn_config_with_confirmations_send_config.py b/test/test_channel_dvn_config_with_confirmations_send_config.py index a408a43b..24d89935 100644 --- a/test/test_channel_dvn_config_with_confirmations_send_config.py +++ b/test/test_channel_dvn_config_with_confirmations_send_config.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.channel_dvn_config_with_confirmations_send_config import ( - ChannelDvnConfigWithConfirmationsSendConfig, -) - - -class TestChannelDvnConfigWithConfirmationsSendConfig(unittest.TestCase): - """ChannelDvnConfigWithConfirmationsSendConfig unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> ChannelDvnConfigWithConfirmationsSendConfig: - """Test ChannelDvnConfigWithConfirmationsSendConfig - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ChannelDvnConfigWithConfirmationsSendConfig` - """ - model = ChannelDvnConfigWithConfirmationsSendConfig() - if include_optional: - return ChannelDvnConfigWithConfirmationsSendConfig( - dvn_addresses = [1.0284746938594775E54, 2.5101940177441514E50], - optional_dvn_addresses = [1.334824162533763E54], - optional_threshold = 2, - confirmations = 12 - ) - else: - return ChannelDvnConfigWithConfirmationsSendConfig( - dvn_addresses = [1.0284746938594775E54, 2.5101940177441514E50], - optional_threshold = 2, - confirmations = 12, - ) - """ - - def testChannelDvnConfigWithConfirmationsSendConfig(self): - """Test ChannelDvnConfigWithConfirmationsSendConfig""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYW5uZWxfZHZuX2NvbmZpZ193aXRoX2NvbmZpcm1hdGlvbnNfc2VuZF9jb25maWcgaW1wb3J0ICgKICAgIENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1NlbmRDb25maWcsCikKCgpjbGFzcyBUZXN0Q2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zU2VuZENvbmZpZyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNTZW5kQ29uZmlnIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZSgKICAgICAgICBzZWxmLCBpbmNsdWRlX29wdGlvbmFsCiAgICApIC0+IENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1NlbmRDb25maWc6CiAgICAgICAgIiIiVGVzdCBDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNTZW5kQ29uZmlnCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc1NlbmRDb25maWdgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNTZW5kQ29uZmlnKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zU2VuZENvbmZpZygKICAgICAgICAgICAgICAgIGR2bl9hZGRyZXNzZXMgPSBbMS4wMjg0NzQ2OTM4NTk0Nzc1RTU0LCAyLjUxMDE5NDAxNzc0NDE1MTRFNTBdLAogICAgICAgICAgICAgICAgb3B0aW9uYWxfZHZuX2FkZHJlc3NlcyA9IFsxLjMzNDgyNDE2MjUzMzc2M0U1NF0sCiAgICAgICAgICAgICAgICBvcHRpb25hbF90aHJlc2hvbGQgPSAyLAogICAgICAgICAgICAgICAgY29uZmlybWF0aW9ucyA9IDEyCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zU2VuZENvbmZpZygKICAgICAgICAgICAgICAgIGR2bl9hZGRyZXNzZXMgPSBbMS4wMjg0NzQ2OTM4NTk0Nzc1RTU0LCAyLjUxMDE5NDAxNzc0NDE1MTRFNTBdLAogICAgICAgICAgICAgICAgb3B0aW9uYWxfdGhyZXNob2xkID0gMiwKICAgICAgICAgICAgICAgIGNvbmZpcm1hdGlvbnMgPSAxMiwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDaGFubmVsRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnNTZW5kQ29uZmlnKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zU2VuZENvbmZpZyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_chaps_address.py b/test/test_chaps_address.py index fdb024ef..17ee2a66 100644 --- a/test/test_chaps_address.py +++ b/test/test_chaps_address.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.chaps_address import ChapsAddress - - -class TestChapsAddress(unittest.TestCase): - """ChapsAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ChapsAddress: - """Test ChapsAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ChapsAddress` - """ - model = ChapsAddress() - if include_optional: - return ChapsAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - sort_code = '12-34-56', - account_number = '12345678', - bank_name = 'Barclays Bank', - bank_account_country = 'GB', - bank_account_holder_name = 'John Smith' - ) - else: - return ChapsAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - sort_code = '12-34-56', - account_number = '12345678', - bank_account_country = 'GB', - bank_account_holder_name = 'John Smith', - ) - """ - - def testChapsAddress(self): - """Test ChapsAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYXBzX2FkZHJlc3MgaW1wb3J0IENoYXBzQWRkcmVzcwoKCmNsYXNzIFRlc3RDaGFwc0FkZHJlc3ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ2hhcHNBZGRyZXNzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDaGFwc0FkZHJlc3M6CiAgICAgICAgIiIiVGVzdCBDaGFwc0FkZHJlc3MKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ2hhcHNBZGRyZXNzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ2hhcHNBZGRyZXNzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ2hhcHNBZGRyZXNzKAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXIgPSB7Im5hbWUiOiJKb2huIFNtaXRoIiwiY2l0eSI6Ik5ldyBZb3JrIiwiY291bnRyeSI6IlVTIiwic3ViZGl2aXNpb24iOiJOWSIsImFkZHJlc3MiOiIxMjMgV2FsbCBTdHJlZXQsIEFwdCA0QiIsInBvc3RhbENvZGUiOiIxMDAwNSJ9LAogICAgICAgICAgICAgICAgc29ydF9jb2RlID0gJzEyLTM0LTU2JywKICAgICAgICAgICAgICAgIGFjY291bnRfbnVtYmVyID0gJzEyMzQ1Njc4JywKICAgICAgICAgICAgICAgIGJhbmtfbmFtZSA9ICdCYXJjbGF5cyBCYW5rJywKICAgICAgICAgICAgICAgIGJhbmtfYWNjb3VudF9jb3VudHJ5ID0gJ0dCJywKICAgICAgICAgICAgICAgIGJhbmtfYWNjb3VudF9ob2xkZXJfbmFtZSA9ICdKb2huIFNtaXRoJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENoYXBzQWRkcmVzcygKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyID0geyJuYW1lIjoiSm9obiBTbWl0aCIsImNpdHkiOiJOZXcgWW9yayIsImNvdW50cnkiOiJVUyIsInN1YmRpdmlzaW9uIjoiTlkiLCJhZGRyZXNzIjoiMTIzIFdhbGwgU3RyZWV0LCBBcHQgNEIiLCJwb3N0YWxDb2RlIjoiMTAwMDUifSwKICAgICAgICAgICAgICAgIHNvcnRfY29kZSA9ICcxMi0zNC01NicsCiAgICAgICAgICAgICAgICBhY2NvdW50X251bWJlciA9ICcxMjM0NTY3OCcsCiAgICAgICAgICAgICAgICBiYW5rX2FjY291bnRfY291bnRyeSA9ICdHQicsCiAgICAgICAgICAgICAgICBiYW5rX2FjY291bnRfaG9sZGVyX25hbWUgPSAnSm9obiBTbWl0aCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q2hhcHNBZGRyZXNzKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ2hhcHNBZGRyZXNzIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_chaps_destination.py b/test/test_chaps_destination.py index b31108d6..e28d4205 100644 --- a/test/test_chaps_destination.py +++ b/test/test_chaps_destination.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.chaps_destination import ChapsDestination - - -class TestChapsDestination(unittest.TestCase): - """ChapsDestination unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ChapsDestination: - """Test ChapsDestination - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ChapsDestination` - """ - model = ChapsDestination() - if include_optional: - return ChapsDestination( - type = 'CHAPS', - address = {"accountHolder":{"name":"John Smith","city":"London","country":"GB","subdivision":"ENG","address":"123 Oxford Street","postalCode":"W1D 1BS"},"sortCode":"12-34-56","accountNumber":"12345678","bankName":"Barclays Bank"} - ) - else: - return ChapsDestination( - type = 'CHAPS', - address = {"accountHolder":{"name":"John Smith","city":"London","country":"GB","subdivision":"ENG","address":"123 Oxford Street","postalCode":"W1D 1BS"},"sortCode":"12-34-56","accountNumber":"12345678","bankName":"Barclays Bank"}, - ) - """ - - def testChapsDestination(self): - """Test ChapsDestination""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYXBzX2Rlc3RpbmF0aW9uIGltcG9ydCBDaGFwc0Rlc3RpbmF0aW9uCgoKY2xhc3MgVGVzdENoYXBzRGVzdGluYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ2hhcHNEZXN0aW5hdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ2hhcHNEZXN0aW5hdGlvbjoKICAgICAgICAiIiJUZXN0IENoYXBzRGVzdGluYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ2hhcHNEZXN0aW5hdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENoYXBzRGVzdGluYXRpb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDaGFwc0Rlc3RpbmF0aW9uKAogICAgICAgICAgICAgICAgdHlwZSA9ICdDSEFQUycsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0geyJhY2NvdW50SG9sZGVyIjp7Im5hbWUiOiJKb2huIFNtaXRoIiwiY2l0eSI6IkxvbmRvbiIsImNvdW50cnkiOiJHQiIsInN1YmRpdmlzaW9uIjoiRU5HIiwiYWRkcmVzcyI6IjEyMyBPeGZvcmQgU3RyZWV0IiwicG9zdGFsQ29kZSI6IlcxRCAxQlMifSwic29ydENvZGUiOiIxMi0zNC01NiIsImFjY291bnROdW1iZXIiOiIxMjM0NTY3OCIsImJhbmtOYW1lIjoiQmFyY2xheXMgQmFuayJ9CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ2hhcHNEZXN0aW5hdGlvbigKICAgICAgICAgICAgICAgIHR5cGUgPSAnQ0hBUFMnLAogICAgICAgICAgICAgICAgYWRkcmVzcyA9IHsiYWNjb3VudEhvbGRlciI6eyJuYW1lIjoiSm9obiBTbWl0aCIsImNpdHkiOiJMb25kb24iLCJjb3VudHJ5IjoiR0IiLCJzdWJkaXZpc2lvbiI6IkVORyIsImFkZHJlc3MiOiIxMjMgT3hmb3JkIFN0cmVldCIsInBvc3RhbENvZGUiOiJXMUQgMUJTIn0sInNvcnRDb2RlIjoiMTItMzQtNTYiLCJhY2NvdW50TnVtYmVyIjoiMTIzNDU2NzgiLCJiYW5rTmFtZSI6IkJhcmNsYXlzIEJhbmsifSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDaGFwc0Rlc3RpbmF0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ2hhcHNEZXN0aW5hdGlvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_chaps_payment_info.py b/test/test_chaps_payment_info.py index fb8f4657..202db2df 100644 --- a/test/test_chaps_payment_info.py +++ b/test/test_chaps_payment_info.py @@ -1,72 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.chaps_payment_info import ChapsPaymentInfo - - -class TestChapsPaymentInfo(unittest.TestCase): - """ChapsPaymentInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ChapsPaymentInfo: - """Test ChapsPaymentInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ChapsPaymentInfo` - """ - model = ChapsPaymentInfo() - if include_optional: - return ChapsPaymentInfo( - rail = 'CHAPS', - addressing_system = 'CHAPS', - account_holder_given_name = 'John', - account_holder_surname = 'Smith', - country = 'GB', - sort_code = '12-34-56', - account_number = '12345678', - bank_name = 'Barclays Bank', - bank_account_country = 'GB', - bank_account_holder_name = 'John Smith' - ) - else: - return ChapsPaymentInfo( - rail = 'CHAPS', - addressing_system = 'CHAPS', - account_holder_given_name = 'John', - account_holder_surname = 'Smith', - country = 'GB', - sort_code = '12-34-56', - account_number = '12345678', - bank_account_country = 'GB', - bank_account_holder_name = 'John Smith', - ) - """ - - def testChapsPaymentInfo(self): - """Test ChapsPaymentInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNoYXBzX3BheW1lbnRfaW5mbyBpbXBvcnQgQ2hhcHNQYXltZW50SW5mbwoKCmNsYXNzIFRlc3RDaGFwc1BheW1lbnRJbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNoYXBzUGF5bWVudEluZm8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENoYXBzUGF5bWVudEluZm86CiAgICAgICAgIiIiVGVzdCBDaGFwc1BheW1lbnRJbmZvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENoYXBzUGF5bWVudEluZm9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDaGFwc1BheW1lbnRJbmZvKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ2hhcHNQYXltZW50SW5mbygKICAgICAgICAgICAgICAgIHJhaWwgPSAnQ0hBUFMnLAogICAgICAgICAgICAgICAgYWRkcmVzc2luZ19zeXN0ZW0gPSAnQ0hBUFMnLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfZ2l2ZW5fbmFtZSA9ICdKb2huJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX3N1cm5hbWUgPSAnU21pdGgnLAogICAgICAgICAgICAgICAgY291bnRyeSA9ICdHQicsCiAgICAgICAgICAgICAgICBzb3J0X2NvZGUgPSAnMTItMzQtNTYnLAogICAgICAgICAgICAgICAgYWNjb3VudF9udW1iZXIgPSAnMTIzNDU2NzgnLAogICAgICAgICAgICAgICAgYmFua19uYW1lID0gJ0JhcmNsYXlzIEJhbmsnLAogICAgICAgICAgICAgICAgYmFua19hY2NvdW50X2NvdW50cnkgPSAnR0InLAogICAgICAgICAgICAgICAgYmFua19hY2NvdW50X2hvbGRlcl9uYW1lID0gJ0pvaG4gU21pdGgnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ2hhcHNQYXltZW50SW5mbygKICAgICAgICAgICAgICAgIHJhaWwgPSAnQ0hBUFMnLAogICAgICAgICAgICAgICAgYWRkcmVzc2luZ19zeXN0ZW0gPSAnQ0hBUFMnLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfZ2l2ZW5fbmFtZSA9ICdKb2huJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX3N1cm5hbWUgPSAnU21pdGgnLAogICAgICAgICAgICAgICAgY291bnRyeSA9ICdHQicsCiAgICAgICAgICAgICAgICBzb3J0X2NvZGUgPSAnMTItMzQtNTYnLAogICAgICAgICAgICAgICAgYWNjb3VudF9udW1iZXIgPSAnMTIzNDU2NzgnLAogICAgICAgICAgICAgICAgYmFua19hY2NvdW50X2NvdW50cnkgPSAnR0InLAogICAgICAgICAgICAgICAgYmFua19hY2NvdW50X2hvbGRlcl9uYW1lID0gJ0pvaG4gU21pdGgnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENoYXBzUGF5bWVudEluZm8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBDaGFwc1BheW1lbnRJbmZvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_claim_rewards_request.py b/test/test_claim_rewards_request.py index cb2fa3b1..e82a9fc6 100644 --- a/test/test_claim_rewards_request.py +++ b/test/test_claim_rewards_request.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.claim_rewards_request import ClaimRewardsRequest - - -class TestClaimRewardsRequest(unittest.TestCase): - """ClaimRewardsRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ClaimRewardsRequest: - """Test ClaimRewardsRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ClaimRewardsRequest` - """ - model = ClaimRewardsRequest() - if include_optional: - return ClaimRewardsRequest( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - fee = '7', - fee_level = 'MEDIUM', - tx_note = 'claim rewards request id b70701f4-d7b1-4795-a8ee-b09cdb5b850d' - ) - else: - return ClaimRewardsRequest( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - ) - """ - - def testClaimRewardsRequest(self): - """Test ClaimRewardsRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNsYWltX3Jld2FyZHNfcmVxdWVzdCBpbXBvcnQgQ2xhaW1SZXdhcmRzUmVxdWVzdAoKCmNsYXNzIFRlc3RDbGFpbVJld2FyZHNSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNsYWltUmV3YXJkc1JlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENsYWltUmV3YXJkc1JlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBDbGFpbVJld2FyZHNSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENsYWltUmV3YXJkc1JlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDbGFpbVJld2FyZHNSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ2xhaW1SZXdhcmRzUmVxdWVzdCgKICAgICAgICAgICAgICAgIGlkID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCcsCiAgICAgICAgICAgICAgICBmZWUgPSAnNycsCiAgICAgICAgICAgICAgICBmZWVfbGV2ZWwgPSAnTUVESVVNJywKICAgICAgICAgICAgICAgIHR4X25vdGUgPSAnY2xhaW0gcmV3YXJkcyByZXF1ZXN0IGlkIGI3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDbGFpbVJld2FyZHNSZXF1ZXN0KAogICAgICAgICAgICAgICAgaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDbGFpbVJld2FyZHNSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQ2xhaW1SZXdhcmRzUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_collection_burn_request_dto.py b/test/test_collection_burn_request_dto.py index 9c7387c9..9fbd1e9f 100644 --- a/test/test_collection_burn_request_dto.py +++ b/test/test_collection_burn_request_dto.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.collection_burn_request_dto import CollectionBurnRequestDto - - -class TestCollectionBurnRequestDto(unittest.TestCase): - """CollectionBurnRequestDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CollectionBurnRequestDto: - """Test CollectionBurnRequestDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CollectionBurnRequestDto` - """ - model = CollectionBurnRequestDto() - if include_optional: - return CollectionBurnRequestDto( - vault_account_id = '0', - token_id = '1', - amount = '1', - external_id = '0192e4f5-924e-7bb9-8e5b-c748270feb38' - ) - else: - return CollectionBurnRequestDto( - vault_account_id = '0', - token_id = '1', - ) - """ - - def testCollectionBurnRequestDto(self): - """Test CollectionBurnRequestDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fYnVybl9yZXF1ZXN0X2R0byBpbXBvcnQgQ29sbGVjdGlvbkJ1cm5SZXF1ZXN0RHRvCgoKY2xhc3MgVGVzdENvbGxlY3Rpb25CdXJuUmVxdWVzdER0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb2xsZWN0aW9uQnVyblJlcXVlc3REdG8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbGxlY3Rpb25CdXJuUmVxdWVzdER0bzoKICAgICAgICAiIiJUZXN0IENvbGxlY3Rpb25CdXJuUmVxdWVzdER0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb2xsZWN0aW9uQnVyblJlcXVlc3REdG9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb2xsZWN0aW9uQnVyblJlcXVlc3REdG8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDb2xsZWN0aW9uQnVyblJlcXVlc3REdG8oCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gJzAnLAogICAgICAgICAgICAgICAgdG9rZW5faWQgPSAnMScsCiAgICAgICAgICAgICAgICBhbW91bnQgPSAnMScsCiAgICAgICAgICAgICAgICBleHRlcm5hbF9pZCA9ICcwMTkyZTRmNS05MjRlLTdiYjktOGU1Yi1jNzQ4MjcwZmViMzgnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29sbGVjdGlvbkJ1cm5SZXF1ZXN0RHRvKAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcwJywKICAgICAgICAgICAgICAgIHRva2VuX2lkID0gJzEnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbGxlY3Rpb25CdXJuUmVxdWVzdER0byhzZWxmKToKICAgICAgICAiIiJUZXN0IENvbGxlY3Rpb25CdXJuUmVxdWVzdER0byIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_collection_burn_response_dto.py b/test/test_collection_burn_response_dto.py index 7a7f1e12..0286571b 100644 --- a/test/test_collection_burn_response_dto.py +++ b/test/test_collection_burn_response_dto.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.collection_burn_response_dto import CollectionBurnResponseDto - - -class TestCollectionBurnResponseDto(unittest.TestCase): - """CollectionBurnResponseDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CollectionBurnResponseDto: - """Test CollectionBurnResponseDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CollectionBurnResponseDto` - """ - model = CollectionBurnResponseDto() - if include_optional: - return CollectionBurnResponseDto( - tx_id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb' - ) - else: - return CollectionBurnResponseDto( - tx_id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb', - ) - """ - - def testCollectionBurnResponseDto(self): - """Test CollectionBurnResponseDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fYnVybl9yZXNwb25zZV9kdG8gaW1wb3J0IENvbGxlY3Rpb25CdXJuUmVzcG9uc2VEdG8KCgpjbGFzcyBUZXN0Q29sbGVjdGlvbkJ1cm5SZXNwb25zZUR0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb2xsZWN0aW9uQnVyblJlc3BvbnNlRHRvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb2xsZWN0aW9uQnVyblJlc3BvbnNlRHRvOgogICAgICAgICIiIlRlc3QgQ29sbGVjdGlvbkJ1cm5SZXNwb25zZUR0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb2xsZWN0aW9uQnVyblJlc3BvbnNlRHRvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29sbGVjdGlvbkJ1cm5SZXNwb25zZUR0bygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25CdXJuUmVzcG9uc2VEdG8oCiAgICAgICAgICAgICAgICB0eF9pZCA9ICdmYmZiZmJmYi1mYmZiLWZiZmItZmJmYi1mYmZiZmJmYmZiZmInCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29sbGVjdGlvbkJ1cm5SZXNwb25zZUR0bygKICAgICAgICAgICAgICAgIHR4X2lkID0gJ2ZiZmJmYmZiLWZiZmItZmJmYi1mYmZiLWZiZmJmYmZiZmJmYicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29sbGVjdGlvbkJ1cm5SZXNwb25zZUR0byhzZWxmKToKICAgICAgICAiIiJUZXN0IENvbGxlY3Rpb25CdXJuUmVzcG9uc2VEdG8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_collection_deploy_request_dto.py b/test/test_collection_deploy_request_dto.py index 83470729..90c2f702 100644 --- a/test/test_collection_deploy_request_dto.py +++ b/test/test_collection_deploy_request_dto.py @@ -1,66 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.collection_deploy_request_dto import CollectionDeployRequestDto - - -class TestCollectionDeployRequestDto(unittest.TestCase): - """CollectionDeployRequestDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CollectionDeployRequestDto: - """Test CollectionDeployRequestDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CollectionDeployRequestDto` - """ - model = CollectionDeployRequestDto() - if include_optional: - return CollectionDeployRequestDto( - base_asset_id = 'ETH', - vault_account_id = '0', - type = 'NON_FUNGIBLE_TOKEN', - name = 'DigitalArtTokens', - symbol = 'DAT', - admin_address = '0x5503766D27d1ED4525f5053222E18b29C38eDdB2', - display_name = 'DigitalArtTokens' - ) - else: - return CollectionDeployRequestDto( - base_asset_id = 'ETH', - vault_account_id = '0', - type = 'NON_FUNGIBLE_TOKEN', - name = 'DigitalArtTokens', - symbol = 'DAT', - admin_address = '0x5503766D27d1ED4525f5053222E18b29C38eDdB2', - ) - """ - - def testCollectionDeployRequestDto(self): - """Test CollectionDeployRequestDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fZGVwbG95X3JlcXVlc3RfZHRvIGltcG9ydCBDb2xsZWN0aW9uRGVwbG95UmVxdWVzdER0bwoKCmNsYXNzIFRlc3RDb2xsZWN0aW9uRGVwbG95UmVxdWVzdER0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb2xsZWN0aW9uRGVwbG95UmVxdWVzdER0byB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ29sbGVjdGlvbkRlcGxveVJlcXVlc3REdG86CiAgICAgICAgIiIiVGVzdCBDb2xsZWN0aW9uRGVwbG95UmVxdWVzdER0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb2xsZWN0aW9uRGVwbG95UmVxdWVzdER0b2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENvbGxlY3Rpb25EZXBsb3lSZXF1ZXN0RHRvKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ29sbGVjdGlvbkRlcGxveVJlcXVlc3REdG8oCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0X2lkID0gJ0VUSCcsCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gJzAnLAogICAgICAgICAgICAgICAgdHlwZSA9ICdOT05fRlVOR0lCTEVfVE9LRU4nLAogICAgICAgICAgICAgICAgbmFtZSA9ICdEaWdpdGFsQXJ0VG9rZW5zJywKICAgICAgICAgICAgICAgIHN5bWJvbCA9ICdEQVQnLAogICAgICAgICAgICAgICAgYWRtaW5fYWRkcmVzcyA9ICcweDU1MDM3NjZEMjdkMUVENDUyNWY1MDUzMjIyRTE4YjI5QzM4ZURkQjInLAogICAgICAgICAgICAgICAgZGlzcGxheV9uYW1lID0gJ0RpZ2l0YWxBcnRUb2tlbnMnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29sbGVjdGlvbkRlcGxveVJlcXVlc3REdG8oCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0X2lkID0gJ0VUSCcsCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gJzAnLAogICAgICAgICAgICAgICAgdHlwZSA9ICdOT05fRlVOR0lCTEVfVE9LRU4nLAogICAgICAgICAgICAgICAgbmFtZSA9ICdEaWdpdGFsQXJ0VG9rZW5zJywKICAgICAgICAgICAgICAgIHN5bWJvbCA9ICdEQVQnLAogICAgICAgICAgICAgICAgYWRtaW5fYWRkcmVzcyA9ICcweDU1MDM3NjZEMjdkMUVENDUyNWY1MDUzMjIyRTE4YjI5QzM4ZURkQjInLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbGxlY3Rpb25EZXBsb3lSZXF1ZXN0RHRvKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29sbGVjdGlvbkRlcGxveVJlcXVlc3REdG8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_collection_link_dto.py b/test/test_collection_link_dto.py index bf5d46b2..6f85919a 100644 --- a/test/test_collection_link_dto.py +++ b/test/test_collection_link_dto.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.collection_link_dto import CollectionLinkDto - - -class TestCollectionLinkDto(unittest.TestCase): - """CollectionLinkDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CollectionLinkDto: - """Test CollectionLinkDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CollectionLinkDto` - """ - model = CollectionLinkDto() - if include_optional: - return CollectionLinkDto( - id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb', - status = 'COMPLETED', - type = 'NON_FUNGIBLE_TOKEN', - display_name = 'My Simple ERC721 Collection', - collection_metadata = fireblocks.models.collection_metadata_dto.CollectionMetadataDto( - fb_collection_id = '911fe739f0d4d123c98fd366c3bed35c6e30c00e', - name = 'Rarible', - symbol = 'RARI', - standard = '["ERC721","ERC1155","FA2"]', - blockchain_descriptor = 'ETH', - contract_address = '0x1723017329a804564bC8d215496C89eaBf1F3211', ) - ) - else: - return CollectionLinkDto( - id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb', - status = 'COMPLETED', - type = 'NON_FUNGIBLE_TOKEN', - ) - """ - - def testCollectionLinkDto(self): - """Test CollectionLinkDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fbGlua19kdG8gaW1wb3J0IENvbGxlY3Rpb25MaW5rRHRvCgoKY2xhc3MgVGVzdENvbGxlY3Rpb25MaW5rRHRvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbGxlY3Rpb25MaW5rRHRvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb2xsZWN0aW9uTGlua0R0bzoKICAgICAgICAiIiJUZXN0IENvbGxlY3Rpb25MaW5rRHRvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbGxlY3Rpb25MaW5rRHRvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29sbGVjdGlvbkxpbmtEdG8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDb2xsZWN0aW9uTGlua0R0bygKICAgICAgICAgICAgICAgIGlkID0gJ2ZiZmJmYmZiLWZiZmItZmJmYi1mYmZiLWZiZmJmYmZiZmJmYicsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnTk9OX0ZVTkdJQkxFX1RPS0VOJywKICAgICAgICAgICAgICAgIGRpc3BsYXlfbmFtZSA9ICdNeSBTaW1wbGUgRVJDNzIxIENvbGxlY3Rpb24nLAogICAgICAgICAgICAgICAgY29sbGVjdGlvbl9tZXRhZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fbWV0YWRhdGFfZHRvLkNvbGxlY3Rpb25NZXRhZGF0YUR0bygKICAgICAgICAgICAgICAgICAgICBmYl9jb2xsZWN0aW9uX2lkID0gJzkxMWZlNzM5ZjBkNGQxMjNjOThmZDM2NmMzYmVkMzVjNmUzMGMwMGUnLCAKICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ1JhcmlibGUnLCAKICAgICAgICAgICAgICAgICAgICBzeW1ib2wgPSAnUkFSSScsIAogICAgICAgICAgICAgICAgICAgIHN0YW5kYXJkID0gJ1siRVJDNzIxIiwiRVJDMTE1NSIsIkZBMiJdJywgCiAgICAgICAgICAgICAgICAgICAgYmxvY2tjaGFpbl9kZXNjcmlwdG9yID0gJ0VUSCcsIAogICAgICAgICAgICAgICAgICAgIGNvbnRyYWN0X2FkZHJlc3MgPSAnMHgxNzIzMDE3MzI5YTgwNDU2NGJDOGQyMTU0OTZDODllYUJmMUYzMjExJywgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25MaW5rRHRvKAogICAgICAgICAgICAgICAgaWQgPSAnZmJmYmZiZmItZmJmYi1mYmZiLWZiZmItZmJmYmZiZmJmYmZiJywKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLAogICAgICAgICAgICAgICAgdHlwZSA9ICdOT05fRlVOR0lCTEVfVE9LRU4nLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbGxlY3Rpb25MaW5rRHRvKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29sbGVjdGlvbkxpbmtEdG8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_collection_metadata_dto.py b/test/test_collection_metadata_dto.py index bc5072df..9d523a74 100644 --- a/test/test_collection_metadata_dto.py +++ b/test/test_collection_metadata_dto.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.collection_metadata_dto import CollectionMetadataDto - - -class TestCollectionMetadataDto(unittest.TestCase): - """CollectionMetadataDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CollectionMetadataDto: - """Test CollectionMetadataDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CollectionMetadataDto` - """ - model = CollectionMetadataDto() - if include_optional: - return CollectionMetadataDto( - fb_collection_id = '911fe739f0d4d123c98fd366c3bed35c6e30c00e', - name = 'Rarible', - symbol = 'RARI', - standard = '["ERC721","ERC1155","FA2"]', - blockchain_descriptor = 'ETH', - contract_address = '0x1723017329a804564bC8d215496C89eaBf1F3211' - ) - else: - return CollectionMetadataDto( - fb_collection_id = '911fe739f0d4d123c98fd366c3bed35c6e30c00e', - blockchain_descriptor = 'ETH', - ) - """ - - def testCollectionMetadataDto(self): - """Test CollectionMetadataDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fbWV0YWRhdGFfZHRvIGltcG9ydCBDb2xsZWN0aW9uTWV0YWRhdGFEdG8KCgpjbGFzcyBUZXN0Q29sbGVjdGlvbk1ldGFkYXRhRHRvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbGxlY3Rpb25NZXRhZGF0YUR0byB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ29sbGVjdGlvbk1ldGFkYXRhRHRvOgogICAgICAgICIiIlRlc3QgQ29sbGVjdGlvbk1ldGFkYXRhRHRvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbGxlY3Rpb25NZXRhZGF0YUR0b2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENvbGxlY3Rpb25NZXRhZGF0YUR0bygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25NZXRhZGF0YUR0bygKICAgICAgICAgICAgICAgIGZiX2NvbGxlY3Rpb25faWQgPSAnOTExZmU3MzlmMGQ0ZDEyM2M5OGZkMzY2YzNiZWQzNWM2ZTMwYzAwZScsCiAgICAgICAgICAgICAgICBuYW1lID0gJ1JhcmlibGUnLAogICAgICAgICAgICAgICAgc3ltYm9sID0gJ1JBUkknLAogICAgICAgICAgICAgICAgc3RhbmRhcmQgPSAnWyJFUkM3MjEiLCJFUkMxMTU1IiwiRkEyIl0nLAogICAgICAgICAgICAgICAgYmxvY2tjaGFpbl9kZXNjcmlwdG9yID0gJ0VUSCcsCiAgICAgICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzID0gJzB4MTcyMzAxNzMyOWE4MDQ1NjRiQzhkMjE1NDk2Qzg5ZWFCZjFGMzIxMScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDb2xsZWN0aW9uTWV0YWRhdGFEdG8oCiAgICAgICAgICAgICAgICBmYl9jb2xsZWN0aW9uX2lkID0gJzkxMWZlNzM5ZjBkNGQxMjNjOThmZDM2NmMzYmVkMzVjNmUzMGMwMGUnLAogICAgICAgICAgICAgICAgYmxvY2tjaGFpbl9kZXNjcmlwdG9yID0gJ0VUSCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29sbGVjdGlvbk1ldGFkYXRhRHRvKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29sbGVjdGlvbk1ldGFkYXRhRHRvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_collection_mint_request_dto.py b/test/test_collection_mint_request_dto.py index 1e197343..ce86d7d9 100644 --- a/test/test_collection_mint_request_dto.py +++ b/test/test_collection_mint_request_dto.py @@ -1,74 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.collection_mint_request_dto import CollectionMintRequestDto - - -class TestCollectionMintRequestDto(unittest.TestCase): - """CollectionMintRequestDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CollectionMintRequestDto: - """Test CollectionMintRequestDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CollectionMintRequestDto` - """ - model = CollectionMintRequestDto() - if include_optional: - return CollectionMintRequestDto( - vault_account_id = '0', - to = '0x5503766D27d1ED4525f5053222E18b29C38eDdB2', - token_id = '1', - amount = '1', - metadata_uri = 'ipfs://QmP4P6f7mDHzikhdwLBVSCxCPEgmjwcWSVBHbtSyfBYzBC', - metadata = fireblocks.models.collection_token_metadata_dto.CollectionTokenMetadataDto( - name = 'DigitalArtTokens', - description = 'Digital representation of a piece of art', - image = 'https://some_domain.com/image_filepath', - animation_url = 'https://some_domain.com/gif_filepath', - external_url = 'https://some_domain.com/blob_filepath', - attributes = [ - fireblocks.models.collection_token_metadata_attribute_dto.CollectionTokenMetadataAttributeDto( - trait_type = 'project_start', - value = '30102000', - display_type = 'date', ) - ], ), - external_id = '0192e4f5-924e-7bb9-8e5b-c748270feb38' - ) - else: - return CollectionMintRequestDto( - vault_account_id = '0', - to = '0x5503766D27d1ED4525f5053222E18b29C38eDdB2', - token_id = '1', - ) - """ - - def testCollectionMintRequestDto(self): - """Test CollectionMintRequestDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fbWludF9yZXF1ZXN0X2R0byBpbXBvcnQgQ29sbGVjdGlvbk1pbnRSZXF1ZXN0RHRvCgoKY2xhc3MgVGVzdENvbGxlY3Rpb25NaW50UmVxdWVzdER0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb2xsZWN0aW9uTWludFJlcXVlc3REdG8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbGxlY3Rpb25NaW50UmVxdWVzdER0bzoKICAgICAgICAiIiJUZXN0IENvbGxlY3Rpb25NaW50UmVxdWVzdER0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb2xsZWN0aW9uTWludFJlcXVlc3REdG9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb2xsZWN0aW9uTWludFJlcXVlc3REdG8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDb2xsZWN0aW9uTWludFJlcXVlc3REdG8oCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gJzAnLAogICAgICAgICAgICAgICAgdG8gPSAnMHg1NTAzNzY2RDI3ZDFFRDQ1MjVmNTA1MzIyMkUxOGIyOUMzOGVEZEIyJywKICAgICAgICAgICAgICAgIHRva2VuX2lkID0gJzEnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gJzEnLAogICAgICAgICAgICAgICAgbWV0YWRhdGFfdXJpID0gJ2lwZnM6Ly9RbVA0UDZmN21ESHppa2hkd0xCVlNDeENQRWdtandjV1NWQkhidFN5ZkJZekJDJywKICAgICAgICAgICAgICAgIG1ldGFkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMuY29sbGVjdGlvbl90b2tlbl9tZXRhZGF0YV9kdG8uQ29sbGVjdGlvblRva2VuTWV0YWRhdGFEdG8oCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdEaWdpdGFsQXJ0VG9rZW5zJywgCiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnRGlnaXRhbCByZXByZXNlbnRhdGlvbiBvZiBhIHBpZWNlIG9mIGFydCcsIAogICAgICAgICAgICAgICAgICAgIGltYWdlID0gJ2h0dHBzOi8vc29tZV9kb21haW4uY29tL2ltYWdlX2ZpbGVwYXRoJywgCiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uX3VybCA9ICdodHRwczovL3NvbWVfZG9tYWluLmNvbS9naWZfZmlsZXBhdGgnLCAKICAgICAgICAgICAgICAgICAgICBleHRlcm5hbF91cmwgPSAnaHR0cHM6Ly9zb21lX2RvbWFpbi5jb20vYmxvYl9maWxlcGF0aCcsIAogICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fdG9rZW5fbWV0YWRhdGFfYXR0cmlidXRlX2R0by5Db2xsZWN0aW9uVG9rZW5NZXRhZGF0YUF0dHJpYnV0ZUR0bygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWl0X3R5cGUgPSAncHJvamVjdF9zdGFydCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAnMzAxMDIwMDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlfdHlwZSA9ICdkYXRlJywgKQogICAgICAgICAgICAgICAgICAgICAgICBdLCApLAogICAgICAgICAgICAgICAgZXh0ZXJuYWxfaWQgPSAnMDE5MmU0ZjUtOTI0ZS03YmI5LThlNWItYzc0ODI3MGZlYjM4JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25NaW50UmVxdWVzdER0bygKICAgICAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQgPSAnMCcsCiAgICAgICAgICAgICAgICB0byA9ICcweDU1MDM3NjZEMjdkMUVENDUyNWY1MDUzMjIyRTE4YjI5QzM4ZURkQjInLAogICAgICAgICAgICAgICAgdG9rZW5faWQgPSAnMScsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29sbGVjdGlvbk1pbnRSZXF1ZXN0RHRvKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29sbGVjdGlvbk1pbnRSZXF1ZXN0RHRvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_collection_mint_response_dto.py b/test/test_collection_mint_response_dto.py index 0de0d9b6..cb127a72 100644 --- a/test/test_collection_mint_response_dto.py +++ b/test/test_collection_mint_response_dto.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.collection_mint_response_dto import CollectionMintResponseDto - - -class TestCollectionMintResponseDto(unittest.TestCase): - """CollectionMintResponseDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CollectionMintResponseDto: - """Test CollectionMintResponseDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CollectionMintResponseDto` - """ - model = CollectionMintResponseDto() - if include_optional: - return CollectionMintResponseDto( - tx_id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb' - ) - else: - return CollectionMintResponseDto( - tx_id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb', - ) - """ - - def testCollectionMintResponseDto(self): - """Test CollectionMintResponseDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fbWludF9yZXNwb25zZV9kdG8gaW1wb3J0IENvbGxlY3Rpb25NaW50UmVzcG9uc2VEdG8KCgpjbGFzcyBUZXN0Q29sbGVjdGlvbk1pbnRSZXNwb25zZUR0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb2xsZWN0aW9uTWludFJlc3BvbnNlRHRvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb2xsZWN0aW9uTWludFJlc3BvbnNlRHRvOgogICAgICAgICIiIlRlc3QgQ29sbGVjdGlvbk1pbnRSZXNwb25zZUR0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb2xsZWN0aW9uTWludFJlc3BvbnNlRHRvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29sbGVjdGlvbk1pbnRSZXNwb25zZUR0bygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25NaW50UmVzcG9uc2VEdG8oCiAgICAgICAgICAgICAgICB0eF9pZCA9ICdmYmZiZmJmYi1mYmZiLWZiZmItZmJmYi1mYmZiZmJmYmZiZmInCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29sbGVjdGlvbk1pbnRSZXNwb25zZUR0bygKICAgICAgICAgICAgICAgIHR4X2lkID0gJ2ZiZmJmYmZiLWZiZmItZmJmYi1mYmZiLWZiZmJmYmZiZmJmYicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29sbGVjdGlvbk1pbnRSZXNwb25zZUR0byhzZWxmKToKICAgICAgICAiIiJUZXN0IENvbGxlY3Rpb25NaW50UmVzcG9uc2VEdG8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_collection_ownership_response.py b/test/test_collection_ownership_response.py index 21b59904..58b72c89 100644 --- a/test/test_collection_ownership_response.py +++ b/test/test_collection_ownership_response.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.collection_ownership_response import CollectionOwnershipResponse - - -class TestCollectionOwnershipResponse(unittest.TestCase): - """CollectionOwnershipResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CollectionOwnershipResponse: - """Test CollectionOwnershipResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CollectionOwnershipResponse` - """ - model = CollectionOwnershipResponse() - if include_optional: - return CollectionOwnershipResponse( - id = '', - name = '', - symbol = '', - standard = '', - blockchain_descriptor = 'ETH', - contract_address = '' - ) - else: - return CollectionOwnershipResponse( - id = '', - blockchain_descriptor = 'ETH', - ) - """ - - def testCollectionOwnershipResponse(self): - """Test CollectionOwnershipResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fb3duZXJzaGlwX3Jlc3BvbnNlIGltcG9ydCBDb2xsZWN0aW9uT3duZXJzaGlwUmVzcG9uc2UKCgpjbGFzcyBUZXN0Q29sbGVjdGlvbk93bmVyc2hpcFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbGxlY3Rpb25Pd25lcnNoaXBSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ29sbGVjdGlvbk93bmVyc2hpcFJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgQ29sbGVjdGlvbk93bmVyc2hpcFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbGxlY3Rpb25Pd25lcnNoaXBSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENvbGxlY3Rpb25Pd25lcnNoaXBSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25Pd25lcnNoaXBSZXNwb25zZSgKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICBuYW1lID0gJycsCiAgICAgICAgICAgICAgICBzeW1ib2wgPSAnJywKICAgICAgICAgICAgICAgIHN0YW5kYXJkID0gJycsCiAgICAgICAgICAgICAgICBibG9ja2NoYWluX2Rlc2NyaXB0b3IgPSAnRVRIJywKICAgICAgICAgICAgICAgIGNvbnRyYWN0X2FkZHJlc3MgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25Pd25lcnNoaXBSZXNwb25zZSgKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICBibG9ja2NoYWluX2Rlc2NyaXB0b3IgPSAnRVRIJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDb2xsZWN0aW9uT3duZXJzaGlwUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb2xsZWN0aW9uT3duZXJzaGlwUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_collection_token_metadata_attribute_dto.py b/test/test_collection_token_metadata_attribute_dto.py index 4db05b11..c1679d86 100644 --- a/test/test_collection_token_metadata_attribute_dto.py +++ b/test/test_collection_token_metadata_attribute_dto.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.collection_token_metadata_attribute_dto import ( - CollectionTokenMetadataAttributeDto, -) - - -class TestCollectionTokenMetadataAttributeDto(unittest.TestCase): - """CollectionTokenMetadataAttributeDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CollectionTokenMetadataAttributeDto: - """Test CollectionTokenMetadataAttributeDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CollectionTokenMetadataAttributeDto` - """ - model = CollectionTokenMetadataAttributeDto() - if include_optional: - return CollectionTokenMetadataAttributeDto( - trait_type = 'project_start', - value = '30102000', - display_type = 'date' - ) - else: - return CollectionTokenMetadataAttributeDto( - trait_type = 'project_start', - value = '30102000', - ) - """ - - def testCollectionTokenMetadataAttributeDto(self): - """Test CollectionTokenMetadataAttributeDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fdG9rZW5fbWV0YWRhdGFfYXR0cmlidXRlX2R0byBpbXBvcnQgKAogICAgQ29sbGVjdGlvblRva2VuTWV0YWRhdGFBdHRyaWJ1dGVEdG8sCikKCgpjbGFzcyBUZXN0Q29sbGVjdGlvblRva2VuTWV0YWRhdGFBdHRyaWJ1dGVEdG8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ29sbGVjdGlvblRva2VuTWV0YWRhdGFBdHRyaWJ1dGVEdG8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbGxlY3Rpb25Ub2tlbk1ldGFkYXRhQXR0cmlidXRlRHRvOgogICAgICAgICIiIlRlc3QgQ29sbGVjdGlvblRva2VuTWV0YWRhdGFBdHRyaWJ1dGVEdG8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ29sbGVjdGlvblRva2VuTWV0YWRhdGFBdHRyaWJ1dGVEdG9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb2xsZWN0aW9uVG9rZW5NZXRhZGF0YUF0dHJpYnV0ZUR0bygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25Ub2tlbk1ldGFkYXRhQXR0cmlidXRlRHRvKAogICAgICAgICAgICAgICAgdHJhaXRfdHlwZSA9ICdwcm9qZWN0X3N0YXJ0JywKICAgICAgICAgICAgICAgIHZhbHVlID0gJzMwMTAyMDAwJywKICAgICAgICAgICAgICAgIGRpc3BsYXlfdHlwZSA9ICdkYXRlJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25Ub2tlbk1ldGFkYXRhQXR0cmlidXRlRHRvKAogICAgICAgICAgICAgICAgdHJhaXRfdHlwZSA9ICdwcm9qZWN0X3N0YXJ0JywKICAgICAgICAgICAgICAgIHZhbHVlID0gJzMwMTAyMDAwJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDb2xsZWN0aW9uVG9rZW5NZXRhZGF0YUF0dHJpYnV0ZUR0byhzZWxmKToKICAgICAgICAiIiJUZXN0IENvbGxlY3Rpb25Ub2tlbk1ldGFkYXRhQXR0cmlidXRlRHRvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_collection_token_metadata_dto.py b/test/test_collection_token_metadata_dto.py index 93561bb0..79e41e42 100644 --- a/test/test_collection_token_metadata_dto.py +++ b/test/test_collection_token_metadata_dto.py @@ -1,66 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.collection_token_metadata_dto import CollectionTokenMetadataDto - - -class TestCollectionTokenMetadataDto(unittest.TestCase): - """CollectionTokenMetadataDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CollectionTokenMetadataDto: - """Test CollectionTokenMetadataDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CollectionTokenMetadataDto` - """ - model = CollectionTokenMetadataDto() - if include_optional: - return CollectionTokenMetadataDto( - name = 'DigitalArtTokens', - description = 'Digital representation of a piece of art', - image = 'https://some_domain.com/image_filepath', - animation_url = 'https://some_domain.com/gif_filepath', - external_url = 'https://some_domain.com/blob_filepath', - attributes = [ - fireblocks.models.collection_token_metadata_attribute_dto.CollectionTokenMetadataAttributeDto( - trait_type = 'project_start', - value = '30102000', - display_type = 'date', ) - ] - ) - else: - return CollectionTokenMetadataDto( - name = 'DigitalArtTokens', - description = 'Digital representation of a piece of art', - ) - """ - - def testCollectionTokenMetadataDto(self): - """Test CollectionTokenMetadataDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fdG9rZW5fbWV0YWRhdGFfZHRvIGltcG9ydCBDb2xsZWN0aW9uVG9rZW5NZXRhZGF0YUR0bwoKCmNsYXNzIFRlc3RDb2xsZWN0aW9uVG9rZW5NZXRhZGF0YUR0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb2xsZWN0aW9uVG9rZW5NZXRhZGF0YUR0byB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ29sbGVjdGlvblRva2VuTWV0YWRhdGFEdG86CiAgICAgICAgIiIiVGVzdCBDb2xsZWN0aW9uVG9rZW5NZXRhZGF0YUR0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb2xsZWN0aW9uVG9rZW5NZXRhZGF0YUR0b2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENvbGxlY3Rpb25Ub2tlbk1ldGFkYXRhRHRvKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ29sbGVjdGlvblRva2VuTWV0YWRhdGFEdG8oCiAgICAgICAgICAgICAgICBuYW1lID0gJ0RpZ2l0YWxBcnRUb2tlbnMnLAogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnRGlnaXRhbCByZXByZXNlbnRhdGlvbiBvZiBhIHBpZWNlIG9mIGFydCcsCiAgICAgICAgICAgICAgICBpbWFnZSA9ICdodHRwczovL3NvbWVfZG9tYWluLmNvbS9pbWFnZV9maWxlcGF0aCcsCiAgICAgICAgICAgICAgICBhbmltYXRpb25fdXJsID0gJ2h0dHBzOi8vc29tZV9kb21haW4uY29tL2dpZl9maWxlcGF0aCcsCiAgICAgICAgICAgICAgICBleHRlcm5hbF91cmwgPSAnaHR0cHM6Ly9zb21lX2RvbWFpbi5jb20vYmxvYl9maWxlcGF0aCcsCiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fdG9rZW5fbWV0YWRhdGFfYXR0cmlidXRlX2R0by5Db2xsZWN0aW9uVG9rZW5NZXRhZGF0YUF0dHJpYnV0ZUR0bygKICAgICAgICAgICAgICAgICAgICAgICAgdHJhaXRfdHlwZSA9ICdwcm9qZWN0X3N0YXJ0JywgCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gJzMwMTAyMDAwJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlfdHlwZSA9ICdkYXRlJywgKQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDb2xsZWN0aW9uVG9rZW5NZXRhZGF0YUR0bygKICAgICAgICAgICAgICAgIG5hbWUgPSAnRGlnaXRhbEFydFRva2VucycsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdEaWdpdGFsIHJlcHJlc2VudGF0aW9uIG9mIGEgcGllY2Ugb2YgYXJ0JywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDb2xsZWN0aW9uVG9rZW5NZXRhZGF0YUR0byhzZWxmKToKICAgICAgICAiIiJUZXN0IENvbGxlY3Rpb25Ub2tlbk1ldGFkYXRhRHRvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_collection_type.py b/test/test_collection_type.py index 2f588618..3c51ebba 100644 --- a/test/test_collection_type.py +++ b/test/test_collection_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.collection_type import CollectionType - - -class TestCollectionType(unittest.TestCase): - """CollectionType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testCollectionType(self): - """Test CollectionType""" - # inst = CollectionType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbGxlY3Rpb25fdHlwZSBpbXBvcnQgQ29sbGVjdGlvblR5cGUKCgpjbGFzcyBUZXN0Q29sbGVjdGlvblR5cGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ29sbGVjdGlvblR5cGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0Q29sbGVjdGlvblR5cGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb2xsZWN0aW9uVHlwZSIiIgogICAgICAgICMgaW5zdCA9IENvbGxlY3Rpb25UeXBlKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_committed_quote_enum.py b/test/test_committed_quote_enum.py index a67fb438..aa50e50b 100644 --- a/test/test_committed_quote_enum.py +++ b/test/test_committed_quote_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.committed_quote_enum import CommittedQuoteEnum - - -class TestCommittedQuoteEnum(unittest.TestCase): - """CommittedQuoteEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testCommittedQuoteEnum(self): - """Test CommittedQuoteEnum""" - # inst = CommittedQuoteEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbW1pdHRlZF9xdW90ZV9lbnVtIGltcG9ydCBDb21taXR0ZWRRdW90ZUVudW0KCgpjbGFzcyBUZXN0Q29tbWl0dGVkUXVvdGVFbnVtKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbW1pdHRlZFF1b3RlRW51bSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RDb21taXR0ZWRRdW90ZUVudW0oc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb21taXR0ZWRRdW90ZUVudW0iIiIKICAgICAgICAjIGluc3QgPSBDb21taXR0ZWRRdW90ZUVudW0oKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_committed_quote_type.py b/test/test_committed_quote_type.py index e0839de2..4e2c8d38 100644 --- a/test/test_committed_quote_type.py +++ b/test/test_committed_quote_type.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.committed_quote_type import CommittedQuoteType - - -class TestCommittedQuoteType(unittest.TestCase): - """CommittedQuoteType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CommittedQuoteType: - """Test CommittedQuoteType - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CommittedQuoteType` - """ - model = CommittedQuoteType() - if include_optional: - return CommittedQuoteType( - type = 'COMMITTED' - ) - else: - return CommittedQuoteType( - type = 'COMMITTED', - ) - """ - - def testCommittedQuoteType(self): - """Test CommittedQuoteType""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbW1pdHRlZF9xdW90ZV90eXBlIGltcG9ydCBDb21taXR0ZWRRdW90ZVR5cGUKCgpjbGFzcyBUZXN0Q29tbWl0dGVkUXVvdGVUeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbW1pdHRlZFF1b3RlVHlwZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ29tbWl0dGVkUXVvdGVUeXBlOgogICAgICAgICIiIlRlc3QgQ29tbWl0dGVkUXVvdGVUeXBlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbW1pdHRlZFF1b3RlVHlwZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENvbW1pdHRlZFF1b3RlVHlwZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbW1pdHRlZFF1b3RlVHlwZSgKICAgICAgICAgICAgICAgIHR5cGUgPSAnQ09NTUlUVEVEJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvbW1pdHRlZFF1b3RlVHlwZSgKICAgICAgICAgICAgICAgIHR5cGUgPSAnQ09NTUlUVEVEJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDb21taXR0ZWRRdW90ZVR5cGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb21taXR0ZWRRdW90ZVR5cGUiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_compliance_api.py b/test/test_compliance_api.py index 91b6214d..f855c071 100644 --- a/test/test_compliance_api.py +++ b/test/test_compliance_api.py @@ -1,109 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.compliance_api import ComplianceApi - - -class TestComplianceApi(unittest.TestCase): - """ComplianceApi unit test stubs""" - - def setUp(self) -> None: - self.api = ComplianceApi() - - def tearDown(self) -> None: - pass - - def test_get_aml_post_screening_policy(self) -> None: - """Test case for get_aml_post_screening_policy - - AML - View Post-Screening Policy - """ - pass - - def test_get_aml_screening_policy(self) -> None: - """Test case for get_aml_screening_policy - - AML - View Screening Policy - """ - pass - - def test_get_legal_entity_by_address(self) -> None: - """Test case for get_legal_entity_by_address - - Look up legal entity by address and asset - """ - pass - - def test_get_post_screening_policy(self) -> None: - """Test case for get_post_screening_policy - - Travel Rule - View Post-Screening Policy - """ - pass - - def test_get_screening_full_details(self) -> None: - """Test case for get_screening_full_details - - Provides all the compliance details for the given screened transaction. - """ - pass - - def test_get_screening_policy(self) -> None: - """Test case for get_screening_policy - - Travel Rule - View Screening Policy - """ - pass - - def test_retry_rejected_transaction_bypass_screening_checks(self) -> None: - """Test case for retry_rejected_transaction_bypass_screening_checks - - Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, with the API user as the initiator, bypassing the screening policy check - """ - pass - - def test_set_aml_verdict(self) -> None: - """Test case for set_aml_verdict - - Set AML Verdict for Manual Screening Verdict. - """ - pass - - def test_update_aml_screening_configuration(self) -> None: - """Test case for update_aml_screening_configuration - - Update AML Configuration - """ - pass - - def test_update_screening_configuration(self) -> None: - """Test case for update_screening_configuration - - Tenant - Screening Configuration - """ - pass - - def test_update_travel_rule_config(self) -> None: - """Test case for update_travel_rule_config - - Update Travel Rule Configuration - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLmNvbXBsaWFuY2VfYXBpIGltcG9ydCBDb21wbGlhbmNlQXBpCgoKY2xhc3MgVGVzdENvbXBsaWFuY2VBcGkodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ29tcGxpYW5jZUFwaSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZikgLT4gTm9uZToKICAgICAgICBzZWxmLmFwaSA9IENvbXBsaWFuY2VBcGkoKQoKICAgIGRlZiB0ZWFyRG93bihzZWxmKSAtPiBOb25lOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfYW1sX3Bvc3Rfc2NyZWVuaW5nX3BvbGljeShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2FtbF9wb3N0X3NjcmVlbmluZ19wb2xpY3kKCiAgICAgICAgQU1MIC0gVmlldyBQb3N0LVNjcmVlbmluZyBQb2xpY3kKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2FtbF9zY3JlZW5pbmdfcG9saWN5KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfYW1sX3NjcmVlbmluZ19wb2xpY3kKCiAgICAgICAgQU1MIC0gVmlldyBTY3JlZW5pbmcgUG9saWN5CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9sZWdhbF9lbnRpdHlfYnlfYWRkcmVzcyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2xlZ2FsX2VudGl0eV9ieV9hZGRyZXNzCgogICAgICAgIExvb2sgdXAgbGVnYWwgZW50aXR5IGJ5IGFkZHJlc3MgYW5kIGFzc2V0CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9wb3N0X3NjcmVlbmluZ19wb2xpY3koc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9wb3N0X3NjcmVlbmluZ19wb2xpY3kKCiAgICAgICAgVHJhdmVsIFJ1bGUgLSBWaWV3IFBvc3QtU2NyZWVuaW5nIFBvbGljeQogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfc2NyZWVuaW5nX2Z1bGxfZGV0YWlscyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X3NjcmVlbmluZ19mdWxsX2RldGFpbHMKCiAgICAgICAgUHJvdmlkZXMgYWxsIHRoZSBjb21wbGlhbmNlIGRldGFpbHMgZm9yIHRoZSBnaXZlbiBzY3JlZW5lZCB0cmFuc2FjdGlvbi4KICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3NjcmVlbmluZ19wb2xpY3koc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9zY3JlZW5pbmdfcG9saWN5CgogICAgICAgIFRyYXZlbCBSdWxlIC0gVmlldyBTY3JlZW5pbmcgUG9saWN5CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3JldHJ5X3JlamVjdGVkX3RyYW5zYWN0aW9uX2J5cGFzc19zY3JlZW5pbmdfY2hlY2tzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciByZXRyeV9yZWplY3RlZF90cmFuc2FjdGlvbl9ieXBhc3Nfc2NyZWVuaW5nX2NoZWNrcwoKICAgICAgICBDYWxsaW5nIHRoZSBcIkJ5cGFzcyBTY3JlZW5pbmcgUG9saWN5XCIgQVBJIGVuZHBvaW50IHRyaWdnZXJzIGEgbmV3IHRyYW5zYWN0aW9uLCB3aXRoIHRoZSBBUEkgdXNlciBhcyB0aGUgaW5pdGlhdG9yLCBieXBhc3NpbmcgdGhlIHNjcmVlbmluZyBwb2xpY3kgY2hlY2sKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3Rfc2V0X2FtbF92ZXJkaWN0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBzZXRfYW1sX3ZlcmRpY3QKCiAgICAgICAgU2V0IEFNTCBWZXJkaWN0IGZvciBNYW51YWwgU2NyZWVuaW5nIFZlcmRpY3QuCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3VwZGF0ZV9hbWxfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb24oc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHVwZGF0ZV9hbWxfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb24KCiAgICAgICAgVXBkYXRlIEFNTCBDb25maWd1cmF0aW9uCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3VwZGF0ZV9zY3JlZW5pbmdfY29uZmlndXJhdGlvbihzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgdXBkYXRlX3NjcmVlbmluZ19jb25maWd1cmF0aW9uCgogICAgICAgIFRlbmFudCAtIFNjcmVlbmluZyBDb25maWd1cmF0aW9uCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3VwZGF0ZV90cmF2ZWxfcnVsZV9jb25maWcoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHVwZGF0ZV90cmF2ZWxfcnVsZV9jb25maWcKCiAgICAgICAgVXBkYXRlIFRyYXZlbCBSdWxlIENvbmZpZ3VyYXRpb24KICAgICAgICAiIiIKICAgICAgICBwYXNzCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_compliance_result_full_payload.py b/test/test_compliance_result_full_payload.py index 9fd54921..e465c398 100644 --- a/test/test_compliance_result_full_payload.py +++ b/test/test_compliance_result_full_payload.py @@ -1,319 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.compliance_result_full_payload import ComplianceResultFullPayload - - -class TestComplianceResultFullPayload(unittest.TestCase): - """ComplianceResultFullPayload unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ComplianceResultFullPayload: - """Test ComplianceResultFullPayload - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ComplianceResultFullPayload` - """ - model = ComplianceResultFullPayload() - if include_optional: - return ComplianceResultFullPayload( - aml = fireblocks.models.compliance_screening_result_full_payload.ComplianceScreeningResultFullPayload( - provider = 'NOTABENE', - payload = fireblocks.models.payload.payload(), - timestamp = 1753459111824, - screening_status = 'COMPLETED', - bypass_reason = 'BELOW_THRESHOLD', - status = 'COMPLETED', - prev_status = 'COMPLETED', - prev_bypass_reason = 'BELOW_THRESHOLD', - verdict = 'PASS', - risk = 'LOW', - extended_risk = 'LOW', - external_id = 'aml_screening_12345', - customer_ref_id = 'customer_ref_789', - ref_id = 'ref_12345', - category = 'EXCHANGE', - category_id = 5, - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - dest_tag = 'memo_12345', - dest_record_id = 'record_001', - address_resolution_signature = '0x1234567890abcdef', - aml_result = fireblocks.models.screening_aml_result.ScreeningAmlResult( - alerts = [ - fireblocks.models.screening_aml_alert.ScreeningAmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ) - ], - provider_response = { }, - matched_rule = fireblocks.models.screening_aml_matched_rule.ScreeningAmlMatchedRule( - rule_id = 'rule_001', - rule_name = 'High Risk Sanctions Check', - action = 'ALLOW', ), - matched_alert = fireblocks.models.screening_aml_alert.ScreeningAmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ), ), - result = fireblocks.models.screening_travel_rule_result.ScreeningTravelRuleResult( - direction = 'OUTBOUND', - is_verified = True, ), - details_message = 'Travel rule screening completed successfully', - matched_alert = fireblocks.models.matched_alert.matchedAlert(), - matched_rule = fireblocks.models.matched_rule.matchedRule(), - matched_prescreening_rule = fireblocks.models.screening_travel_rule_prescreening_rule.ScreeningTravelRulePrescreeningRule( - bypass_reason = 'MANUAL', - source_type = 'VAULT_ACCOUNT', - source_sub_type = 'INTERNAL', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = 'INTERNAL', - transfer_peer_type = 'VAULT_ACCOUNT', - transfer_peer_sub_type = 'INTERNAL', - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - source_id = '0', - dest_id = '2', - asset = 'ETH', - base_asset = 'ETH', - amount = 0.5, - amount_usd = 1000, - network_protocol = 'ETH', - operation = 'TRANSFER', ), - matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(), - customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_short_name = 'ACME Corp', - travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', ), - tr = fireblocks.models.compliance_screening_result_full_payload.ComplianceScreeningResultFullPayload( - provider = 'NOTABENE', - payload = fireblocks.models.payload.payload(), - timestamp = 1753459111824, - screening_status = 'COMPLETED', - bypass_reason = 'BELOW_THRESHOLD', - status = 'COMPLETED', - prev_status = 'COMPLETED', - prev_bypass_reason = 'BELOW_THRESHOLD', - verdict = 'PASS', - risk = 'LOW', - extended_risk = 'LOW', - external_id = 'aml_screening_12345', - customer_ref_id = 'customer_ref_789', - ref_id = 'ref_12345', - category = 'EXCHANGE', - category_id = 5, - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - dest_tag = 'memo_12345', - dest_record_id = 'record_001', - address_resolution_signature = '0x1234567890abcdef', - aml_result = fireblocks.models.screening_aml_result.ScreeningAmlResult( - alerts = [ - fireblocks.models.screening_aml_alert.ScreeningAmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ) - ], - provider_response = { }, - matched_rule = fireblocks.models.screening_aml_matched_rule.ScreeningAmlMatchedRule( - rule_id = 'rule_001', - rule_name = 'High Risk Sanctions Check', - action = 'ALLOW', ), - matched_alert = fireblocks.models.screening_aml_alert.ScreeningAmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ), ), - result = fireblocks.models.screening_travel_rule_result.ScreeningTravelRuleResult( - direction = 'OUTBOUND', - is_verified = True, ), - details_message = 'Travel rule screening completed successfully', - matched_alert = fireblocks.models.matched_alert.matchedAlert(), - matched_rule = fireblocks.models.matched_rule.matchedRule(), - matched_prescreening_rule = fireblocks.models.screening_travel_rule_prescreening_rule.ScreeningTravelRulePrescreeningRule( - bypass_reason = 'MANUAL', - source_type = 'VAULT_ACCOUNT', - source_sub_type = 'INTERNAL', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = 'INTERNAL', - transfer_peer_type = 'VAULT_ACCOUNT', - transfer_peer_sub_type = 'INTERNAL', - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - source_id = '0', - dest_id = '2', - asset = 'ETH', - base_asset = 'ETH', - amount = 0.5, - amount_usd = 1000, - network_protocol = 'ETH', - operation = 'TRANSFER', ), - matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(), - customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_short_name = 'ACME Corp', - travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', ), - aml_list = [ - fireblocks.models.compliance_screening_result_full_payload.ComplianceScreeningResultFullPayload( - provider = 'NOTABENE', - payload = fireblocks.models.payload.payload(), - timestamp = 1753459111824, - screening_status = 'COMPLETED', - bypass_reason = 'BELOW_THRESHOLD', - status = 'COMPLETED', - prev_status = 'COMPLETED', - prev_bypass_reason = 'BELOW_THRESHOLD', - verdict = 'PASS', - risk = 'LOW', - extended_risk = 'LOW', - external_id = 'aml_screening_12345', - customer_ref_id = 'customer_ref_789', - ref_id = 'ref_12345', - category = 'EXCHANGE', - category_id = 5, - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - dest_tag = 'memo_12345', - dest_record_id = 'record_001', - address_resolution_signature = '0x1234567890abcdef', - aml_result = fireblocks.models.screening_aml_result.ScreeningAmlResult( - alerts = [ - fireblocks.models.screening_aml_alert.ScreeningAmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ) - ], - provider_response = { }, - matched_rule = fireblocks.models.screening_aml_matched_rule.ScreeningAmlMatchedRule( - rule_id = 'rule_001', - rule_name = 'High Risk Sanctions Check', - action = 'ALLOW', ), - matched_alert = fireblocks.models.screening_aml_alert.ScreeningAmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ), ), - result = fireblocks.models.screening_travel_rule_result.ScreeningTravelRuleResult( - direction = 'OUTBOUND', - is_verified = True, ), - details_message = 'Travel rule screening completed successfully', - matched_alert = fireblocks.models.matched_alert.matchedAlert(), - matched_rule = fireblocks.models.matched_rule.matchedRule(), - matched_prescreening_rule = fireblocks.models.screening_travel_rule_prescreening_rule.ScreeningTravelRulePrescreeningRule( - bypass_reason = 'MANUAL', - source_type = 'VAULT_ACCOUNT', - source_sub_type = 'INTERNAL', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = 'INTERNAL', - transfer_peer_type = 'VAULT_ACCOUNT', - transfer_peer_sub_type = 'INTERNAL', - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - source_id = '0', - dest_id = '2', - asset = 'ETH', - base_asset = 'ETH', - amount = 0.5, - amount_usd = 1000, - network_protocol = 'ETH', - operation = 'TRANSFER', ), - matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(), - customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_short_name = 'ACME Corp', - travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', ) - ], - status = 'Completed', - aml_registration = fireblocks.models.aml_registration_result_full_payload.AmlRegistrationResultFullPayload( - provider = '', - success = True, - timestamp = 1.337, ), - trlink_registration = fireblocks.models.tr_link_registration_result_full_payload.TRLinkRegistrationResultFullPayload( - status = 'COMPLETED', - provider = 'SUMSUB', - success = True, - timestamp = 1640995200000, - dest_record_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_short_name = 'ACME Corp', - result = fireblocks.models.tr_link_provider_result.TRLinkProviderResult( - provider_response = fireblocks.models.provider_response.providerResponse(), ), - matched_prescreening_rule = fireblocks.models.screening_tr_link_prescreening_rule.ScreeningTRLinkPrescreeningRule(), ), - trlink_destinations = [ - fireblocks.models.tr_link_result_full_payload.TRLinkResultFullPayload( - provider = 'SUMSUB', - timestamp = 1640995200000, - status = 'COMPLETED', - verdict = 'ACCEPT', - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - dest_tag = 'memo_12345', - bypass_reason = 'MANUAL', - details_message = 'Screening completed successfully', - customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_short_name = 'ACME Corp', - travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - result = fireblocks.models.tr_link_provider_result_with_rule_2.TRLinkProviderResultWithRule-2( - provider_response = fireblocks.models.provider_response.providerResponse(), - matched_rule = fireblocks.models.screening_tr_link_post_screening_rule.ScreeningTRLinkPostScreeningRule(), ), - matched_prescreening_rule = fireblocks.models.screening_tr_link_prescreening_rule.ScreeningTRLinkPrescreeningRule(), - matched_no_trm_screening_rule = fireblocks.models.screening_tr_link_missing_trm_decision.ScreeningTRLinkMissingTrmDecision(), ) - ] - ) - else: - return ComplianceResultFullPayload( - ) - """ - - def testComplianceResultFullPayload(self): - """Test ComplianceResultFullPayload""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbXBsaWFuY2VfcmVzdWx0X2Z1bGxfcGF5bG9hZCBpbXBvcnQgQ29tcGxpYW5jZVJlc3VsdEZ1bGxQYXlsb2FkCgoKY2xhc3MgVGVzdENvbXBsaWFuY2VSZXN1bHRGdWxsUGF5bG9hZCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb21wbGlhbmNlUmVzdWx0RnVsbFBheWxvYWQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbXBsaWFuY2VSZXN1bHRGdWxsUGF5bG9hZDoKICAgICAgICAiIiJUZXN0IENvbXBsaWFuY2VSZXN1bHRGdWxsUGF5bG9hZAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb21wbGlhbmNlUmVzdWx0RnVsbFBheWxvYWRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb21wbGlhbmNlUmVzdWx0RnVsbFBheWxvYWQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDb21wbGlhbmNlUmVzdWx0RnVsbFBheWxvYWQoCiAgICAgICAgICAgICAgICBhbWwgPSBmaXJlYmxvY2tzLm1vZGVscy5jb21wbGlhbmNlX3NjcmVlbmluZ19yZXN1bHRfZnVsbF9wYXlsb2FkLkNvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHRGdWxsUGF5bG9hZCgKICAgICAgICAgICAgICAgICAgICBwcm92aWRlciA9ICdOT1RBQkVORScsIAogICAgICAgICAgICAgICAgICAgIHBheWxvYWQgPSBmaXJlYmxvY2tzLm1vZGVscy5wYXlsb2FkLnBheWxvYWQoKSwgCiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wID0gMTc1MzQ1OTExMTgyNCwgCiAgICAgICAgICAgICAgICAgICAgc2NyZWVuaW5nX3N0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICBieXBhc3NfcmVhc29uID0gJ1VOU1VQUE9SVEVEX0FTU0VUJywgCiAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ0NPTVBMRVRFRCcsIAogICAgICAgICAgICAgICAgICAgIHByZXZfc3RhdHVzID0gJ0NPTVBMRVRFRCcsIAogICAgICAgICAgICAgICAgICAgIHByZXZfYnlwYXNzX3JlYXNvbiA9ICdCRUxPV19USFJFU0hPTEQnLCAKICAgICAgICAgICAgICAgICAgICB2ZXJkaWN0ID0gJ1BBU1MnLCAKICAgICAgICAgICAgICAgICAgICByaXNrID0gJ2xvd1Jpc2snLCAKICAgICAgICAgICAgICAgICAgICBleHRlbmRlZF9yaXNrID0gJ2xvd1Jpc2snLCAKICAgICAgICAgICAgICAgICAgICBleHRlcm5hbF9pZCA9ICdhbWxfc2NyZWVuaW5nXzEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfcmVmX2lkID0gJ2N1c3RvbWVyX3JlZl83ODknLCAKICAgICAgICAgICAgICAgICAgICByZWZfaWQgPSAncmVmXzEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSAnRVhDSEFOR0UnLCAKICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZCA9IDUsIAogICAgICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcweEEyZEMyNDkwRUQxRGNBMkQyMTYxMzUwOGZkYjBjODJkYUVBYjA3MTUnLCAKICAgICAgICAgICAgICAgICAgICBkZXN0X3RhZyA9ICdtZW1vXzEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgZGVzdF9yZWNvcmRfaWQgPSAncmVjb3JkXzAwMScsIAogICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfcmVzb2x1dGlvbl9zaWduYXR1cmUgPSAnMHgxMjM0NTY3ODkwYWJjZGVmJywgCiAgICAgICAgICAgICAgICAgICAgYW1sX3Jlc3VsdCA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19hbWxfcmVzdWx0LlNjcmVlbmluZ0FtbFJlc3VsdCgKICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX2FtbF9hbGVydC5TY3JlZW5pbmdBbWxBbGVydCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydF9sZXZlbCA9ICdISUdIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRfbmFtZSA9ICdTYW5jdGlvbnMgTWF0Y2gnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSA9ICdTQU5DVElPTkVEX0VOVElUWScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2UgPSAnQ0hBSU5BTFlTSVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlcm5hbF9pZCA9ICdhbGVydF8xMjM0NScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X2Ftb3VudCA9IDEwMDAuNSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3N1cmVfdHlwZSA9ICdESVJFQ1QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2xpY3lfYWN0aW9uID0gJ0JMT0NLJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQgPSAxMDEsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlcl9yZXNwb25zZSA9IHsgfSwgCiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZWRfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19hbWxfbWF0Y2hlZF9ydWxlLlNjcmVlbmluZ0FtbE1hdGNoZWRSdWxlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZV9pZCA9ICdydWxlXzAwMScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZV9uYW1lID0gJ0hpZ2ggUmlzayBTYW5jdGlvbnMgQ2hlY2snLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdBTExPVycsICksIAogICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVkX2FsZXJ0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX2FtbF9hbGVydC5TY3JlZW5pbmdBbWxBbGVydCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X2xldmVsID0gJ0hJR0gnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X25hbWUgPSAnU2FuY3Rpb25zIE1hdGNoJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSA9ICdTQU5DVElPTkVEX0VOVElUWScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZSA9ICdDSEFJTkFMWVNJUycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfaWQgPSAnYWxlcnRfMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X2Ftb3VudCA9IDEwMDAuNSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBvc3VyZV90eXBlID0gJ0RJUkVDVCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5X2FjdGlvbiA9ICdCTE9DSycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQgPSAxMDEsICksICksIAogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cmF2ZWxfcnVsZV9yZXN1bHQuU2NyZWVuaW5nVHJhdmVsUnVsZVJlc3VsdCgKICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uID0gJ09VVEJPVU5EJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGlzX3ZlcmlmaWVkID0gVHJ1ZSwgKSwgCiAgICAgICAgICAgICAgICAgICAgZGV0YWlsc19tZXNzYWdlID0gJ1RyYXZlbCBydWxlIHNjcmVlbmluZyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5JywgCiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9hbGVydCA9IGZpcmVibG9ja3MubW9kZWxzLm1hdGNoZWRfYWxlcnQubWF0Y2hlZEFsZXJ0KCksIAogICAgICAgICAgICAgICAgICAgIG1hdGNoZWRfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLm1hdGNoZWRfcnVsZS5tYXRjaGVkUnVsZSgpLCAKICAgICAgICAgICAgICAgICAgICBtYXRjaGVkX3ByZXNjcmVlbmluZ19ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyYXZlbF9ydWxlX3ByZXNjcmVlbmluZ19ydWxlLlNjcmVlbmluZ1RyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlKAogICAgICAgICAgICAgICAgICAgICAgICBieXBhc3NfcmVhc29uID0gJ01BTlVBTCcsIAogICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXN0X3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXN0X3N1Yl90eXBlID0gJ0lOVEVSTkFMJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZmVyX3BlZXJfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZmVyX3BlZXJfc3ViX3R5cGUgPSAnSU5URVJOQUwnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9hZGRyZXNzID0gJzB4QTJkQzI0OTBFRDFEY0EyRDIxNjEzNTA4ZmRiMGM4MmRhRUFiMDcxNScsIAogICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VfaWQgPSAnMCcsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXN0X2lkID0gJzInLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXQgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VfYXNzZXQgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IDAuNSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudF91c2QgPSAxMDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmV0d29ya19wcm90b2NvbCA9ICdFVEgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gJ1RSQU5TRkVSJywgKSwgCiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ub190cm1fc2NyZWVuaW5nX3J1bGUgPSBmaXJlYmxvY2tzLm1vZGVscy5tYXRjaGVkX25vX3RybV9zY3JlZW5pbmdfcnVsZS5tYXRjaGVkTm9Ucm1TY3JlZW5pbmdSdWxlKCksIAogICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkID0gJzNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNicsIAogICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX3Nob3J0X25hbWUgPSAnQUNNRSBDb3JwJywgCiAgICAgICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCA9ICczZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYnLCAKICAgICAgICAgICAgICAgICAgICBwcm92aWRlcl9yZXNwb25zZSA9IHsgfSwgKSwKICAgICAgICAgICAgICAgIHRyID0gZmlyZWJsb2Nrcy5tb2RlbHMuY29tcGxpYW5jZV9zY3JlZW5pbmdfcmVzdWx0X2Z1bGxfcGF5bG9hZC5Db21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0RnVsbFBheWxvYWQoCiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXIgPSAnTk9UQUJFTkUnLCAKICAgICAgICAgICAgICAgICAgICBwYXlsb2FkID0gZmlyZWJsb2Nrcy5tb2RlbHMucGF5bG9hZC5wYXlsb2FkKCksIAogICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9IDE3NTM0NTkxMTE4MjQsIAogICAgICAgICAgICAgICAgICAgIHNjcmVlbmluZ19zdGF0dXMgPSAnQ09NUExFVEVEJywgCiAgICAgICAgICAgICAgICAgICAgYnlwYXNzX3JlYXNvbiA9ICdVTlNVUFBPUlRFRF9BU1NFVCcsIAogICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICBwcmV2X3N0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICBwcmV2X2J5cGFzc19yZWFzb24gPSAnQkVMT1dfVEhSRVNIT0xEJywgCiAgICAgICAgICAgICAgICAgICAgdmVyZGljdCA9ICdQQVNTJywgCiAgICAgICAgICAgICAgICAgICAgcmlzayA9ICdsb3dSaXNrJywgCiAgICAgICAgICAgICAgICAgICAgZXh0ZW5kZWRfcmlzayA9ICdsb3dSaXNrJywgCiAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfaWQgPSAnYW1sX3NjcmVlbmluZ18xMjM0NScsIAogICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX3JlZl9pZCA9ICdjdXN0b21lcl9yZWZfNzg5JywgCiAgICAgICAgICAgICAgICAgICAgcmVmX2lkID0gJ3JlZl8xMjM0NScsIAogICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gJ0VYQ0hBTkdFJywgCiAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQgPSA1LCAKICAgICAgICAgICAgICAgICAgICBkZXN0X2FkZHJlc3MgPSAnMHhBMmRDMjQ5MEVEMURjQTJEMjE2MTM1MDhmZGIwYzgyZGFFQWIwNzE1JywgCiAgICAgICAgICAgICAgICAgICAgZGVzdF90YWcgPSAnbWVtb18xMjM0NScsIAogICAgICAgICAgICAgICAgICAgIGRlc3RfcmVjb3JkX2lkID0gJ3JlY29yZF8wMDEnLCAKICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX3Jlc29sdXRpb25fc2lnbmF0dXJlID0gJzB4MTIzNDU2Nzg5MGFiY2RlZicsIAogICAgICAgICAgICAgICAgICAgIGFtbF9yZXN1bHQgPSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfYW1sX3Jlc3VsdC5TY3JlZW5pbmdBbWxSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0cyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19hbWxfYWxlcnQuU2NyZWVuaW5nQW1sQWxlcnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRfbGV2ZWwgPSAnSElHSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X25hbWUgPSAnU2FuY3Rpb25zIE1hdGNoJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSAnU0FOQ1RJT05FRF9FTlRJVFknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlID0gJ0NIQUlOQUxZU0lTJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfaWQgPSAnYWxlcnRfMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydF9hbW91bnQgPSAxMDAwLjUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zdXJlX3R5cGUgPSAnRElSRUNUJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5X2FjdGlvbiA9ICdCTE9DSycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkID0gMTAxLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJfcmVzcG9uc2UgPSB7IH0sIAogICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVkX3J1bGUgPSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfYW1sX21hdGNoZWRfcnVsZS5TY3JlZW5pbmdBbWxNYXRjaGVkUnVsZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVfaWQgPSAncnVsZV8wMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVfbmFtZSA9ICdIaWdoIFJpc2sgU2FuY3Rpb25zIENoZWNrJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUxMT1cnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9hbGVydCA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19hbWxfYWxlcnQuU2NyZWVuaW5nQW1sQWxlcnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydF9sZXZlbCA9ICdISUdIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydF9uYW1lID0gJ1NhbmN0aW9ucyBNYXRjaCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSAnU0FOQ1RJT05FRF9FTlRJVFknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2UgPSAnQ0hBSU5BTFlTSVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX2lkID0gJ2FsZXJ0XzEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydF9hbW91bnQgPSAxMDAwLjUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3N1cmVfdHlwZSA9ICdESVJFQ1QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeV9hY3Rpb24gPSAnQkxPQ0snLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkID0gMTAxLCApLCApLCAKICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdHJhdmVsX3J1bGVfcmVzdWx0LlNjcmVlbmluZ1RyYXZlbFJ1bGVSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdPVVRCT1VORCcsIAogICAgICAgICAgICAgICAgICAgICAgICBpc192ZXJpZmllZCA9IFRydWUsICksIAogICAgICAgICAgICAgICAgICAgIGRldGFpbHNfbWVzc2FnZSA9ICdUcmF2ZWwgcnVsZSBzY3JlZW5pbmcgY29tcGxldGVkIHN1Y2Nlc3NmdWxseScsIAogICAgICAgICAgICAgICAgICAgIG1hdGNoZWRfYWxlcnQgPSBmaXJlYmxvY2tzLm1vZGVscy5tYXRjaGVkX2FsZXJ0Lm1hdGNoZWRBbGVydCgpLCAKICAgICAgICAgICAgICAgICAgICBtYXRjaGVkX3J1bGUgPSBmaXJlYmxvY2tzLm1vZGVscy5tYXRjaGVkX3J1bGUubWF0Y2hlZFJ1bGUoKSwgCiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cmF2ZWxfcnVsZV9wcmVzY3JlZW5pbmdfcnVsZS5TY3JlZW5pbmdUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZSgKICAgICAgICAgICAgICAgICAgICAgICAgYnlwYXNzX3JlYXNvbiA9ICdNQU5VQUwnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsIAogICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2Vfc3ViX3R5cGUgPSAnSU5URVJOQUwnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF90eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsIAogICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zlcl9wZWVyX3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsIAogICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zlcl9wZWVyX3N1Yl90eXBlID0gJ0lOVEVSTkFMJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcweEEyZEMyNDkwRUQxRGNBMkQyMTYxMzUwOGZkYjBjODJkYUVBYjA3MTUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX2lkID0gJzAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9pZCA9ICcyJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0ID0gJ0VUSCcsIAogICAgICAgICAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gJ0VUSCcsIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAwLjUsIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfdXNkID0gMTAwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtfcHJvdG9jb2wgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9ICdUUkFOU0ZFUicsICksIAogICAgICAgICAgICAgICAgICAgIG1hdGNoZWRfbm9fdHJtX3NjcmVlbmluZ19ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMubWF0Y2hlZF9ub190cm1fc2NyZWVuaW5nX3J1bGUubWF0Y2hlZE5vVHJtU2NyZWVuaW5nUnVsZSgpLCAKICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCA9ICczZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYnLCAKICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9zaG9ydF9uYW1lID0gJ0FDTUUgQ29ycCcsIAogICAgICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX21lc3NhZ2VfaWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywgCiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJfcmVzcG9uc2UgPSB7IH0sICksCiAgICAgICAgICAgICAgICBhbWxfbGlzdCA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5jb21wbGlhbmNlX3NjcmVlbmluZ19yZXN1bHRfZnVsbF9wYXlsb2FkLkNvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHRGdWxsUGF5bG9hZCgKICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXIgPSAnTk9UQUJFTkUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcGF5bG9hZCA9IGZpcmVibG9ja3MubW9kZWxzLnBheWxvYWQucGF5bG9hZCgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wID0gMTc1MzQ1OTExMTgyNCwgCiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmVlbmluZ19zdGF0dXMgPSAnQ09NUExFVEVEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGJ5cGFzc19yZWFzb24gPSAnVU5TVVBQT1JURURfQVNTRVQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ0NPTVBMRVRFRCcsIAogICAgICAgICAgICAgICAgICAgICAgICBwcmV2X3N0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHJldl9ieXBhc3NfcmVhc29uID0gJ0JFTE9XX1RIUkVTSE9MRCcsIAogICAgICAgICAgICAgICAgICAgICAgICB2ZXJkaWN0ID0gJ1BBU1MnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcmlzayA9ICdsb3dSaXNrJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuZGVkX3Jpc2sgPSAnbG93UmlzaycsIAogICAgICAgICAgICAgICAgICAgICAgICBleHRlcm5hbF9pZCA9ICdhbWxfc2NyZWVuaW5nXzEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX3JlZl9pZCA9ICdjdXN0b21lcl9yZWZfNzg5JywgCiAgICAgICAgICAgICAgICAgICAgICAgIHJlZl9pZCA9ICdyZWZfMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSAnRVhDSEFOR0UnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQgPSA1LCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9hZGRyZXNzID0gJzB4QTJkQzI0OTBFRDFEY0EyRDIxNjEzNTA4ZmRiMGM4MmRhRUFiMDcxNScsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXN0X3RhZyA9ICdtZW1vXzEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfcmVjb3JkX2lkID0gJ3JlY29yZF8wMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19yZXNvbHV0aW9uX3NpZ25hdHVyZSA9ICcweDEyMzQ1Njc4OTBhYmNkZWYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYW1sX3Jlc3VsdCA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19hbWxfcmVzdWx0LlNjcmVlbmluZ0FtbFJlc3VsdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0cyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfYW1sX2FsZXJ0LlNjcmVlbmluZ0FtbEFsZXJ0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydF9sZXZlbCA9ICdISUdIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X25hbWUgPSAnU2FuY3Rpb25zIE1hdGNoJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gJ1NBTkNUSU9ORURfRU5USVRZJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2UgPSAnQ0hBSU5BTFlTSVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfaWQgPSAnYWxlcnRfMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRfYW1vdW50ID0gMTAwMC41LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3N1cmVfdHlwZSA9ICdESVJFQ1QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5X2FjdGlvbiA9ICdCTE9DSycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZCA9IDEwMSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJfcmVzcG9uc2UgPSB7IH0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX2FtbF9tYXRjaGVkX3J1bGUuU2NyZWVuaW5nQW1sTWF0Y2hlZFJ1bGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZV9pZCA9ICdydWxlXzAwMScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVfbmFtZSA9ICdIaWdoIFJpc2sgU2FuY3Rpb25zIENoZWNrJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FMTE9XJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVkX2FsZXJ0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX2FtbF9hbGVydC5TY3JlZW5pbmdBbWxBbGVydCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydF9sZXZlbCA9ICdISUdIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRfbmFtZSA9ICdTYW5jdGlvbnMgTWF0Y2gnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSA9ICdTQU5DVElPTkVEX0VOVElUWScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2UgPSAnQ0hBSU5BTFlTSVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlcm5hbF9pZCA9ICdhbGVydF8xMjM0NScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X2Ftb3VudCA9IDEwMDAuNSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3N1cmVfdHlwZSA9ICdESVJFQ1QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2xpY3lfYWN0aW9uID0gJ0JMT0NLJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQgPSAxMDEsICksICksIAogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdHJhdmVsX3J1bGVfcmVzdWx0LlNjcmVlbmluZ1RyYXZlbFJ1bGVSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX3ZlcmlmaWVkID0gVHJ1ZSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHNfbWVzc2FnZSA9ICdUcmF2ZWwgcnVsZSBzY3JlZW5pbmcgY29tcGxldGVkIHN1Y2Nlc3NmdWxseScsIAogICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVkX2FsZXJ0ID0gZmlyZWJsb2Nrcy5tb2RlbHMubWF0Y2hlZF9hbGVydC5tYXRjaGVkQWxlcnQoKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZWRfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLm1hdGNoZWRfcnVsZS5tYXRjaGVkUnVsZSgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cmF2ZWxfcnVsZV9wcmVzY3JlZW5pbmdfcnVsZS5TY3JlZW5pbmdUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5cGFzc19yZWFzb24gPSAnTUFOVUFMJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2Vfc3ViX3R5cGUgPSAnSU5URVJOQUwnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0X3N1Yl90eXBlID0gJ0lOVEVSTkFMJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zlcl9wZWVyX3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmZXJfcGVlcl9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9hZGRyZXNzID0gJzB4QTJkQzI0OTBFRDFEY0EyRDIxNjEzNTA4ZmRiMGM4MmRhRUFiMDcxNScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX2lkID0gJzAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfaWQgPSAnMicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXQgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gJ0VUSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gMC41LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudF91c2QgPSAxMDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtfcHJvdG9jb2wgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSAnVFJBTlNGRVInLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ub190cm1fc2NyZWVuaW5nX3J1bGUgPSBmaXJlYmxvY2tzLm1vZGVscy5tYXRjaGVkX25vX3RybV9zY3JlZW5pbmdfcnVsZS5tYXRjaGVkTm9Ucm1TY3JlZW5pbmdSdWxlKCksIAogICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCA9ICczZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfc2hvcnRfbmFtZSA9ICdBQ01FIENvcnAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCA9ICczZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJfcmVzcG9uc2UgPSB7IH0sICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ0NvbXBsZXRlZCcsCiAgICAgICAgICAgICAgICBhbWxfcmVnaXN0cmF0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX3JlZ2lzdHJhdGlvbl9yZXN1bHRfZnVsbF9wYXlsb2FkLkFtbFJlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkKAogICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyID0gJycsIAogICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSAxLjMzNywgKSwKICAgICAgICAgICAgICAgIHRybGlua19yZWdpc3RyYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3JlZ2lzdHJhdGlvbl9yZXN1bHRfZnVsbF9wYXlsb2FkLlRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkKAogICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICBwcm92aWRlciA9ICdTVU1TVUInLCAKICAgICAgICAgICAgICAgICAgICBzdWNjZXNzID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wID0gMTY0MDk5NTIwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgZGVzdF9yZWNvcmRfaWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywgCiAgICAgICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCA9ICczZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYnLCAKICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCA9ICczZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYnLCAKICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9zaG9ydF9uYW1lID0gJ0FDTUUgQ29ycCcsIAogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJvdmlkZXJfcmVzdWx0LlRSTGlua1Byb3ZpZGVyUmVzdWx0KAogICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlcl9yZXNwb25zZSA9IGZpcmVibG9ja3MubW9kZWxzLnByb3ZpZGVyX3Jlc3BvbnNlLnByb3ZpZGVyUmVzcG9uc2UoKSwgKSwgCiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cl9saW5rX3ByZXNjcmVlbmluZ19ydWxlLlNjcmVlbmluZ1RSTGlua1ByZXNjcmVlbmluZ1J1bGUoKSwgKSwKICAgICAgICAgICAgICAgIHRybGlua19kZXN0aW5hdGlvbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19yZXN1bHRfZnVsbF9wYXlsb2FkLlRSTGlua1Jlc3VsdEZ1bGxQYXlsb2FkKAogICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlciA9ICdTVU1TVUInLCAKICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wID0gMTY0MDk5NTIwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdmVyZGljdCA9ICdBQ0NFUFQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9hZGRyZXNzID0gJzB4QTJkQzI0OTBFRDFEY0EyRDIxNjEzNTA4ZmRiMGM4MmRhRUFiMDcxNScsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXN0X3RhZyA9ICdtZW1vXzEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGJ5cGFzc19yZWFzb24gPSAnTUFOVUFMJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHNfbWVzc2FnZSA9ICdTY3JlZW5pbmcgY29tcGxldGVkIHN1Y2Nlc3NmdWxseScsIAogICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCA9ICczZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfc2hvcnRfbmFtZSA9ICdBQ01FIENvcnAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCA9ICczZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wcm92aWRlcl9yZXN1bHRfd2l0aF9ydWxlXzIuVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZS0yKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLm1vZGVscy5wcm92aWRlcl9yZXNwb25zZS5wcm92aWRlclJlc3BvbnNlKCksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyX2xpbmtfcG9zdF9zY3JlZW5pbmdfcnVsZS5TY3JlZW5pbmdUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZSgpLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cl9saW5rX3ByZXNjcmVlbmluZ19ydWxlLlNjcmVlbmluZ1RSTGlua1ByZXNjcmVlbmluZ1J1bGUoKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZWRfbm9fdHJtX3NjcmVlbmluZ19ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyX2xpbmtfbWlzc2luZ190cm1fZGVjaXNpb24uU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uKCksICkKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29tcGxpYW5jZVJlc3VsdEZ1bGxQYXlsb2FkKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbXBsaWFuY2VSZXN1bHRGdWxsUGF5bG9hZChzZWxmKToKICAgICAgICAiIiJUZXN0IENvbXBsaWFuY2VSZXN1bHRGdWxsUGF5bG9hZCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_compliance_result_statuses_enum.py b/test/test_compliance_result_statuses_enum.py index a206e8a4..b3d4d73d 100644 --- a/test/test_compliance_result_statuses_enum.py +++ b/test/test_compliance_result_statuses_enum.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.compliance_result_statuses_enum import ( - ComplianceResultStatusesEnum, -) - - -class TestComplianceResultStatusesEnum(unittest.TestCase): - """ComplianceResultStatusesEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testComplianceResultStatusesEnum(self): - """Test ComplianceResultStatusesEnum""" - # inst = ComplianceResultStatusesEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbXBsaWFuY2VfcmVzdWx0X3N0YXR1c2VzX2VudW0gaW1wb3J0ICgKICAgIENvbXBsaWFuY2VSZXN1bHRTdGF0dXNlc0VudW0sCikKCgpjbGFzcyBUZXN0Q29tcGxpYW5jZVJlc3VsdFN0YXR1c2VzRW51bSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb21wbGlhbmNlUmVzdWx0U3RhdHVzZXNFbnVtIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdENvbXBsaWFuY2VSZXN1bHRTdGF0dXNlc0VudW0oc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb21wbGlhbmNlUmVzdWx0U3RhdHVzZXNFbnVtIiIiCiAgICAgICAgIyBpbnN0ID0gQ29tcGxpYW5jZVJlc3VsdFN0YXR1c2VzRW51bSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_compliance_results.py b/test/test_compliance_results.py index 39114a60..f2fff42e 100644 --- a/test/test_compliance_results.py +++ b/test/test_compliance_results.py @@ -1,319 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.compliance_results import ComplianceResults - - -class TestComplianceResults(unittest.TestCase): - """ComplianceResults unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ComplianceResults: - """Test ComplianceResults - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ComplianceResults` - """ - model = ComplianceResults() - if include_optional: - return ComplianceResults( - aml = fireblocks.models.compliance_screening_result.ComplianceScreeningResult( - provider = 'NOTABENE', - payload = fireblocks.models.payload.payload(), - timestamp = 1753459111824, - screening_status = 'COMPLETED', - bypass_reason = 'BELOW_THRESHOLD', - status = 'COMPLETED', - prev_status = 'COMPLETED', - prev_bypass_reason = 'BELOW_THRESHOLD', - verdict = 'PASS', - risk = 'LOW', - extended_risk = 'LOW', - external_id = 'aml_screening_12345', - customer_ref_id = 'customer_ref_789', - ref_id = 'ref_12345', - category = 'EXCHANGE', - category_id = 5, - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - dest_tag = 'memo_12345', - dest_record_id = 'record_001', - address_resolution_signature = '0x1234567890abcdef', - aml_result = fireblocks.models.aml_result.AmlResult( - alerts = [ - fireblocks.models.aml_alert.AmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ) - ], - provider_response = { }, - matched_rule = fireblocks.models.aml_matched_rule.AmlMatchedRule( - rule_id = 'rule_001', - rule_name = 'High Risk Sanctions Check', - action = 'ALLOW', ), - matched_alert = fireblocks.models.aml_alert.AmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ), ), - result = fireblocks.models.travel_rule_result.TravelRuleResult( - direction = 'OUTBOUND', - is_verified = True, ), - details_message = 'Travel rule screening completed successfully', - matched_alert = fireblocks.models.matched_alert.matchedAlert(), - matched_rule = fireblocks.models.matched_rule.matchedRule(), - matched_prescreening_rule = fireblocks.models.travel_rule_prescreening_rule.TravelRulePrescreeningRule( - bypass_reason = 'MANUAL', - source_type = 'VAULT_ACCOUNT', - source_sub_type = 'INTERNAL', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = 'INTERNAL', - transfer_peer_type = 'VAULT_ACCOUNT', - transfer_peer_sub_type = 'INTERNAL', - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - source_id = '0', - dest_id = 'ext_address_001', - asset = 'ETH', - base_asset = 'ETH', - amount = 0.5, - amount_usd = 1000, - network_protocol = 'ETH', - operation = 'TRANSFER', ), - matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(), - customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_short_name = 'ACME Corp', - travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', ), - tr = fireblocks.models.compliance_screening_result.ComplianceScreeningResult( - provider = 'NOTABENE', - payload = fireblocks.models.payload.payload(), - timestamp = 1753459111824, - screening_status = 'COMPLETED', - bypass_reason = 'BELOW_THRESHOLD', - status = 'COMPLETED', - prev_status = 'COMPLETED', - prev_bypass_reason = 'BELOW_THRESHOLD', - verdict = 'PASS', - risk = 'LOW', - extended_risk = 'LOW', - external_id = 'aml_screening_12345', - customer_ref_id = 'customer_ref_789', - ref_id = 'ref_12345', - category = 'EXCHANGE', - category_id = 5, - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - dest_tag = 'memo_12345', - dest_record_id = 'record_001', - address_resolution_signature = '0x1234567890abcdef', - aml_result = fireblocks.models.aml_result.AmlResult( - alerts = [ - fireblocks.models.aml_alert.AmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ) - ], - provider_response = { }, - matched_rule = fireblocks.models.aml_matched_rule.AmlMatchedRule( - rule_id = 'rule_001', - rule_name = 'High Risk Sanctions Check', - action = 'ALLOW', ), - matched_alert = fireblocks.models.aml_alert.AmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ), ), - result = fireblocks.models.travel_rule_result.TravelRuleResult( - direction = 'OUTBOUND', - is_verified = True, ), - details_message = 'Travel rule screening completed successfully', - matched_alert = fireblocks.models.matched_alert.matchedAlert(), - matched_rule = fireblocks.models.matched_rule.matchedRule(), - matched_prescreening_rule = fireblocks.models.travel_rule_prescreening_rule.TravelRulePrescreeningRule( - bypass_reason = 'MANUAL', - source_type = 'VAULT_ACCOUNT', - source_sub_type = 'INTERNAL', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = 'INTERNAL', - transfer_peer_type = 'VAULT_ACCOUNT', - transfer_peer_sub_type = 'INTERNAL', - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - source_id = '0', - dest_id = 'ext_address_001', - asset = 'ETH', - base_asset = 'ETH', - amount = 0.5, - amount_usd = 1000, - network_protocol = 'ETH', - operation = 'TRANSFER', ), - matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(), - customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_short_name = 'ACME Corp', - travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', ), - aml_list = [ - fireblocks.models.compliance_screening_result.ComplianceScreeningResult( - provider = 'NOTABENE', - payload = fireblocks.models.payload.payload(), - timestamp = 1753459111824, - screening_status = 'COMPLETED', - bypass_reason = 'BELOW_THRESHOLD', - status = 'COMPLETED', - prev_status = 'COMPLETED', - prev_bypass_reason = 'BELOW_THRESHOLD', - verdict = 'PASS', - risk = 'LOW', - extended_risk = 'LOW', - external_id = 'aml_screening_12345', - customer_ref_id = 'customer_ref_789', - ref_id = 'ref_12345', - category = 'EXCHANGE', - category_id = 5, - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - dest_tag = 'memo_12345', - dest_record_id = 'record_001', - address_resolution_signature = '0x1234567890abcdef', - aml_result = fireblocks.models.aml_result.AmlResult( - alerts = [ - fireblocks.models.aml_alert.AmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ) - ], - provider_response = { }, - matched_rule = fireblocks.models.aml_matched_rule.AmlMatchedRule( - rule_id = 'rule_001', - rule_name = 'High Risk Sanctions Check', - action = 'ALLOW', ), - matched_alert = fireblocks.models.aml_alert.AmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ), ), - result = fireblocks.models.travel_rule_result.TravelRuleResult( - direction = 'OUTBOUND', - is_verified = True, ), - details_message = 'Travel rule screening completed successfully', - matched_alert = fireblocks.models.matched_alert.matchedAlert(), - matched_rule = fireblocks.models.matched_rule.matchedRule(), - matched_prescreening_rule = fireblocks.models.travel_rule_prescreening_rule.TravelRulePrescreeningRule( - bypass_reason = 'MANUAL', - source_type = 'VAULT_ACCOUNT', - source_sub_type = 'INTERNAL', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = 'INTERNAL', - transfer_peer_type = 'VAULT_ACCOUNT', - transfer_peer_sub_type = 'INTERNAL', - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - source_id = '0', - dest_id = 'ext_address_001', - asset = 'ETH', - base_asset = 'ETH', - amount = 0.5, - amount_usd = 1000, - network_protocol = 'ETH', - operation = 'TRANSFER', ), - matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(), - customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_short_name = 'ACME Corp', - travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', ) - ], - status = 'Completed', - aml_registration = fireblocks.models.aml_registration_result.AmlRegistrationResult( - provider = '', - success = True, - timestamp = 1.337, ), - trlink_registration = fireblocks.models.tr_link_registration_result.TRLinkRegistrationResult( - status = 'COMPLETED', - provider = 'SUMSUB', - success = True, - timestamp = 1640995200000, - dest_record_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_short_name = 'ACME Corp', - result = fireblocks.models.tr_link_provider_result.TRLinkProviderResult( - provider_response = fireblocks.models.provider_response.providerResponse(), ), - matched_prescreening_rule = fireblocks.models.tr_link_pre_screening_rule.TRLinkPreScreeningRule(), ), - trlink_destinations = [ - fireblocks.models.tr_link_result.TRLinkResult( - provider = 'SUMSUB', - timestamp = 1640995200000, - status = 'COMPLETED', - verdict = 'ACCEPT', - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - dest_tag = 'memo_12345', - bypass_reason = 'MANUAL', - details_message = 'Screening completed successfully', - customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_short_name = 'ACME Corp', - travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - result = fireblocks.models.tr_link_provider_result_with_rule.TRLinkProviderResultWithRule( - provider_response = fireblocks.models.provider_response.providerResponse(), - matched_rule = fireblocks.models.tr_link_post_screening_rule.TRLinkPostScreeningRule(), ), - matched_prescreening_rule = fireblocks.models.tr_link_pre_screening_rule.TRLinkPreScreeningRule(), - matched_no_trm_screening_rule = fireblocks.models.tr_link_missing_trm_decision.TRLinkMissingTrmDecision(), ) - ] - ) - else: - return ComplianceResults( - ) - """ - - def testComplianceResults(self): - """Test ComplianceResults""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbXBsaWFuY2VfcmVzdWx0cyBpbXBvcnQgQ29tcGxpYW5jZVJlc3VsdHMKCgpjbGFzcyBUZXN0Q29tcGxpYW5jZVJlc3VsdHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ29tcGxpYW5jZVJlc3VsdHMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbXBsaWFuY2VSZXN1bHRzOgogICAgICAgICIiIlRlc3QgQ29tcGxpYW5jZVJlc3VsdHMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ29tcGxpYW5jZVJlc3VsdHNgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb21wbGlhbmNlUmVzdWx0cygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbXBsaWFuY2VSZXN1bHRzKAogICAgICAgICAgICAgICAgYW1sID0gZmlyZWJsb2Nrcy5tb2RlbHMuY29tcGxpYW5jZV9zY3JlZW5pbmdfcmVzdWx0LkNvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXIgPSAnTk9UQUJFTkUnLCAKICAgICAgICAgICAgICAgICAgICBwYXlsb2FkID0gZmlyZWJsb2Nrcy5tb2RlbHMucGF5bG9hZC5wYXlsb2FkKCksIAogICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9IDE3NTM0NTkxMTE4MjQsIAogICAgICAgICAgICAgICAgICAgIHNjcmVlbmluZ19zdGF0dXMgPSAnQ09NUExFVEVEJywgCiAgICAgICAgICAgICAgICAgICAgYnlwYXNzX3JlYXNvbiA9ICdVTlNVUFBPUlRFRF9BU1NFVCcsIAogICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICBwcmV2X3N0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICBwcmV2X2J5cGFzc19yZWFzb24gPSAnQkVMT1dfVEhSRVNIT0xEJywgCiAgICAgICAgICAgICAgICAgICAgdmVyZGljdCA9ICdQQVNTJywgCiAgICAgICAgICAgICAgICAgICAgcmlzayA9ICdsb3dSaXNrJywgCiAgICAgICAgICAgICAgICAgICAgZXh0ZW5kZWRfcmlzayA9ICdsb3dSaXNrJywgCiAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfaWQgPSAnYW1sX3NjcmVlbmluZ18xMjM0NScsIAogICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX3JlZl9pZCA9ICdjdXN0b21lcl9yZWZfNzg5JywgCiAgICAgICAgICAgICAgICAgICAgcmVmX2lkID0gJ3JlZl8xMjM0NScsIAogICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gJ0VYQ0hBTkdFJywgCiAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQgPSA1LCAKICAgICAgICAgICAgICAgICAgICBkZXN0X2FkZHJlc3MgPSAnMHhBMmRDMjQ5MEVEMURjQTJEMjE2MTM1MDhmZGIwYzgyZGFFQWIwNzE1JywgCiAgICAgICAgICAgICAgICAgICAgZGVzdF90YWcgPSAnbWVtb18xMjM0NScsIAogICAgICAgICAgICAgICAgICAgIGRlc3RfcmVjb3JkX2lkID0gJ3JlY29yZF8wMDEnLCAKICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX3Jlc29sdXRpb25fc2lnbmF0dXJlID0gJzB4MTIzNDU2Nzg5MGFiY2RlZicsIAogICAgICAgICAgICAgICAgICAgIGFtbF9yZXN1bHQgPSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfcmVzdWx0LkFtbFJlc3VsdCgKICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX2FsZXJ0LkFtbEFsZXJ0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X2xldmVsID0gJ0hJR0gnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydF9uYW1lID0gJ1NhbmN0aW9ucyBNYXRjaCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gJ1NBTkNUSU9ORURfRU5USVRZJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZSA9ICdDSEFJTkFMWVNJUycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX2lkID0gJ2FsZXJ0XzEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRfYW1vdW50ID0gMTAwMC41LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBvc3VyZV90eXBlID0gJ0RJUkVDVCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeV9hY3Rpb24gPSAnQkxPQ0snLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZCA9IDEwMSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyX3Jlc3BvbnNlID0geyB9LCAKICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX21hdGNoZWRfcnVsZS5BbWxNYXRjaGVkUnVsZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVfaWQgPSAncnVsZV8wMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVfbmFtZSA9ICdIaWdoIFJpc2sgU2FuY3Rpb25zIENoZWNrJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUxMT1cnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9hbGVydCA9IGZpcmVibG9ja3MubW9kZWxzLmFtbF9hbGVydC5BbWxBbGVydCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X2xldmVsID0gJ0hJR0gnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X25hbWUgPSAnU2FuY3Rpb25zIE1hdGNoJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSA9ICdTQU5DVElPTkVEX0VOVElUWScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZSA9ICdDSEFJTkFMWVNJUycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfaWQgPSAnYWxlcnRfMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X2Ftb3VudCA9IDEwMDAuNSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBvc3VyZV90eXBlID0gJ0RJUkVDVCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5X2FjdGlvbiA9ICdCTE9DSycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQgPSAxMDEsICksICksIAogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3Jlc3VsdC5UcmF2ZWxSdWxlUmVzdWx0KAogICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgaXNfdmVyaWZpZWQgPSBUcnVlLCApLCAKICAgICAgICAgICAgICAgICAgICBkZXRhaWxzX21lc3NhZ2UgPSAnVHJhdmVsIHJ1bGUgc2NyZWVuaW5nIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHknLCAKICAgICAgICAgICAgICAgICAgICBtYXRjaGVkX2FsZXJ0ID0gZmlyZWJsb2Nrcy5tb2RlbHMubWF0Y2hlZF9hbGVydC5tYXRjaGVkQWxlcnQoKSwgCiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMubWF0Y2hlZF9ydWxlLm1hdGNoZWRSdWxlKCksIAogICAgICAgICAgICAgICAgICAgIG1hdGNoZWRfcHJlc2NyZWVuaW5nX3J1bGUgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9wcmVzY3JlZW5pbmdfcnVsZS5UcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZSgKICAgICAgICAgICAgICAgICAgICAgICAgYnlwYXNzX3JlYXNvbiA9ICdNQU5VQUwnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsIAogICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2Vfc3ViX3R5cGUgPSAnSU5URVJOQUwnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF90eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsIAogICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zlcl9wZWVyX3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsIAogICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zlcl9wZWVyX3N1Yl90eXBlID0gJ0lOVEVSTkFMJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcweEEyZEMyNDkwRUQxRGNBMkQyMTYxMzUwOGZkYjBjODJkYUVBYjA3MTUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX2lkID0gJzAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9pZCA9ICdleHRfYWRkcmVzc18wMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXQgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VfYXNzZXQgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IDAuNSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudF91c2QgPSAxMDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmV0d29ya19wcm90b2NvbCA9ICdFVEgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gJ1RSQU5TRkVSJywgKSwgCiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ub190cm1fc2NyZWVuaW5nX3J1bGUgPSBmaXJlYmxvY2tzLm1vZGVscy5tYXRjaGVkX25vX3RybV9zY3JlZW5pbmdfcnVsZS5tYXRjaGVkTm9Ucm1TY3JlZW5pbmdSdWxlKCksIAogICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkID0gJzNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNicsIAogICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX3Nob3J0X25hbWUgPSAnQUNNRSBDb3JwJywgCiAgICAgICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCA9ICczZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYnLCAKICAgICAgICAgICAgICAgICAgICBwcm92aWRlcl9yZXNwb25zZSA9IHsgfSwgKSwKICAgICAgICAgICAgICAgIHRyID0gZmlyZWJsb2Nrcy5tb2RlbHMuY29tcGxpYW5jZV9zY3JlZW5pbmdfcmVzdWx0LkNvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXIgPSAnTk9UQUJFTkUnLCAKICAgICAgICAgICAgICAgICAgICBwYXlsb2FkID0gZmlyZWJsb2Nrcy5tb2RlbHMucGF5bG9hZC5wYXlsb2FkKCksIAogICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9IDE3NTM0NTkxMTE4MjQsIAogICAgICAgICAgICAgICAgICAgIHNjcmVlbmluZ19zdGF0dXMgPSAnQ09NUExFVEVEJywgCiAgICAgICAgICAgICAgICAgICAgYnlwYXNzX3JlYXNvbiA9ICdVTlNVUFBPUlRFRF9BU1NFVCcsIAogICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICBwcmV2X3N0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICBwcmV2X2J5cGFzc19yZWFzb24gPSAnQkVMT1dfVEhSRVNIT0xEJywgCiAgICAgICAgICAgICAgICAgICAgdmVyZGljdCA9ICdQQVNTJywgCiAgICAgICAgICAgICAgICAgICAgcmlzayA9ICdsb3dSaXNrJywgCiAgICAgICAgICAgICAgICAgICAgZXh0ZW5kZWRfcmlzayA9ICdsb3dSaXNrJywgCiAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfaWQgPSAnYW1sX3NjcmVlbmluZ18xMjM0NScsIAogICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX3JlZl9pZCA9ICdjdXN0b21lcl9yZWZfNzg5JywgCiAgICAgICAgICAgICAgICAgICAgcmVmX2lkID0gJ3JlZl8xMjM0NScsIAogICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gJ0VYQ0hBTkdFJywgCiAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQgPSA1LCAKICAgICAgICAgICAgICAgICAgICBkZXN0X2FkZHJlc3MgPSAnMHhBMmRDMjQ5MEVEMURjQTJEMjE2MTM1MDhmZGIwYzgyZGFFQWIwNzE1JywgCiAgICAgICAgICAgICAgICAgICAgZGVzdF90YWcgPSAnbWVtb18xMjM0NScsIAogICAgICAgICAgICAgICAgICAgIGRlc3RfcmVjb3JkX2lkID0gJ3JlY29yZF8wMDEnLCAKICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX3Jlc29sdXRpb25fc2lnbmF0dXJlID0gJzB4MTIzNDU2Nzg5MGFiY2RlZicsIAogICAgICAgICAgICAgICAgICAgIGFtbF9yZXN1bHQgPSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfcmVzdWx0LkFtbFJlc3VsdCgKICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX2FsZXJ0LkFtbEFsZXJ0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X2xldmVsID0gJ0hJR0gnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydF9uYW1lID0gJ1NhbmN0aW9ucyBNYXRjaCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gJ1NBTkNUSU9ORURfRU5USVRZJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZSA9ICdDSEFJTkFMWVNJUycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX2lkID0gJ2FsZXJ0XzEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRfYW1vdW50ID0gMTAwMC41LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBvc3VyZV90eXBlID0gJ0RJUkVDVCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeV9hY3Rpb24gPSAnQkxPQ0snLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZCA9IDEwMSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyX3Jlc3BvbnNlID0geyB9LCAKICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX21hdGNoZWRfcnVsZS5BbWxNYXRjaGVkUnVsZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVfaWQgPSAncnVsZV8wMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVfbmFtZSA9ICdIaWdoIFJpc2sgU2FuY3Rpb25zIENoZWNrJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUxMT1cnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9hbGVydCA9IGZpcmVibG9ja3MubW9kZWxzLmFtbF9hbGVydC5BbWxBbGVydCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X2xldmVsID0gJ0hJR0gnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X25hbWUgPSAnU2FuY3Rpb25zIE1hdGNoJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSA9ICdTQU5DVElPTkVEX0VOVElUWScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZSA9ICdDSEFJTkFMWVNJUycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfaWQgPSAnYWxlcnRfMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X2Ftb3VudCA9IDEwMDAuNSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBvc3VyZV90eXBlID0gJ0RJUkVDVCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5X2FjdGlvbiA9ICdCTE9DSycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQgPSAxMDEsICksICksIAogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3Jlc3VsdC5UcmF2ZWxSdWxlUmVzdWx0KAogICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgaXNfdmVyaWZpZWQgPSBUcnVlLCApLCAKICAgICAgICAgICAgICAgICAgICBkZXRhaWxzX21lc3NhZ2UgPSAnVHJhdmVsIHJ1bGUgc2NyZWVuaW5nIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHknLCAKICAgICAgICAgICAgICAgICAgICBtYXRjaGVkX2FsZXJ0ID0gZmlyZWJsb2Nrcy5tb2RlbHMubWF0Y2hlZF9hbGVydC5tYXRjaGVkQWxlcnQoKSwgCiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMubWF0Y2hlZF9ydWxlLm1hdGNoZWRSdWxlKCksIAogICAgICAgICAgICAgICAgICAgIG1hdGNoZWRfcHJlc2NyZWVuaW5nX3J1bGUgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9wcmVzY3JlZW5pbmdfcnVsZS5UcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZSgKICAgICAgICAgICAgICAgICAgICAgICAgYnlwYXNzX3JlYXNvbiA9ICdNQU5VQUwnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsIAogICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2Vfc3ViX3R5cGUgPSAnSU5URVJOQUwnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF90eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsIAogICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zlcl9wZWVyX3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsIAogICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zlcl9wZWVyX3N1Yl90eXBlID0gJ0lOVEVSTkFMJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcweEEyZEMyNDkwRUQxRGNBMkQyMTYxMzUwOGZkYjBjODJkYUVBYjA3MTUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX2lkID0gJzAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9pZCA9ICdleHRfYWRkcmVzc18wMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXQgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VfYXNzZXQgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IDAuNSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudF91c2QgPSAxMDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmV0d29ya19wcm90b2NvbCA9ICdFVEgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gJ1RSQU5TRkVSJywgKSwgCiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ub190cm1fc2NyZWVuaW5nX3J1bGUgPSBmaXJlYmxvY2tzLm1vZGVscy5tYXRjaGVkX25vX3RybV9zY3JlZW5pbmdfcnVsZS5tYXRjaGVkTm9Ucm1TY3JlZW5pbmdSdWxlKCksIAogICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkID0gJzNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNicsIAogICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX3Nob3J0X25hbWUgPSAnQUNNRSBDb3JwJywgCiAgICAgICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCA9ICczZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYnLCAKICAgICAgICAgICAgICAgICAgICBwcm92aWRlcl9yZXNwb25zZSA9IHsgfSwgKSwKICAgICAgICAgICAgICAgIGFtbF9saXN0ID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmNvbXBsaWFuY2Vfc2NyZWVuaW5nX3Jlc3VsdC5Db21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0KAogICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlciA9ICdOT1RBQkVORScsIAogICAgICAgICAgICAgICAgICAgICAgICBwYXlsb2FkID0gZmlyZWJsb2Nrcy5tb2RlbHMucGF5bG9hZC5wYXlsb2FkKCksIAogICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSAxNzUzNDU5MTExODI0LCAKICAgICAgICAgICAgICAgICAgICAgICAgc2NyZWVuaW5nX3N0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYnlwYXNzX3JlYXNvbiA9ICdVTlNVUFBPUlRFRF9BU1NFVCcsIAogICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZfc3RhdHVzID0gJ0NPTVBMRVRFRCcsIAogICAgICAgICAgICAgICAgICAgICAgICBwcmV2X2J5cGFzc19yZWFzb24gPSAnQkVMT1dfVEhSRVNIT0xEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHZlcmRpY3QgPSAnUEFTUycsIAogICAgICAgICAgICAgICAgICAgICAgICByaXNrID0gJ2xvd1Jpc2snLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5kZWRfcmlzayA9ICdsb3dSaXNrJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX2lkID0gJ2FtbF9zY3JlZW5pbmdfMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfcmVmX2lkID0gJ2N1c3RvbWVyX3JlZl83ODknLCAKICAgICAgICAgICAgICAgICAgICAgICAgcmVmX2lkID0gJ3JlZl8xMjM0NScsIAogICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSA9ICdFWENIQU5HRScsIAogICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZCA9IDUsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXN0X2FkZHJlc3MgPSAnMHhBMmRDMjQ5MEVEMURjQTJEMjE2MTM1MDhmZGIwYzgyZGFFQWIwNzE1JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfdGFnID0gJ21lbW9fMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9yZWNvcmRfaWQgPSAncmVjb3JkXzAwMScsIAogICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX3Jlc29sdXRpb25fc2lnbmF0dXJlID0gJzB4MTIzNDU2Nzg5MGFiY2RlZicsIAogICAgICAgICAgICAgICAgICAgICAgICBhbWxfcmVzdWx0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX3Jlc3VsdC5BbWxSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX2FsZXJ0LkFtbEFsZXJ0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydF9sZXZlbCA9ICdISUdIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X25hbWUgPSAnU2FuY3Rpb25zIE1hdGNoJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gJ1NBTkNUSU9ORURfRU5USVRZJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2UgPSAnQ0hBSU5BTFlTSVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfaWQgPSAnYWxlcnRfMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRfYW1vdW50ID0gMTAwMC41LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3N1cmVfdHlwZSA9ICdESVJFQ1QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5X2FjdGlvbiA9ICdCTE9DSycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZCA9IDEwMSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJfcmVzcG9uc2UgPSB7IH0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX21hdGNoZWRfcnVsZS5BbWxNYXRjaGVkUnVsZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlX2lkID0gJ3J1bGVfMDAxJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZV9uYW1lID0gJ0hpZ2ggUmlzayBTYW5jdGlvbnMgQ2hlY2snLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUxMT1cnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZWRfYWxlcnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfYWxlcnQuQW1sQWxlcnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRfbGV2ZWwgPSAnSElHSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X25hbWUgPSAnU2FuY3Rpb25zIE1hdGNoJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSAnU0FOQ1RJT05FRF9FTlRJVFknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlID0gJ0NIQUlOQUxZU0lTJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfaWQgPSAnYWxlcnRfMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydF9hbW91bnQgPSAxMDAwLjUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zdXJlX3R5cGUgPSAnRElSRUNUJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5X2FjdGlvbiA9ICdCTE9DSycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkID0gMTAxLCApLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfcmVzdWx0LlRyYXZlbFJ1bGVSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX3ZlcmlmaWVkID0gVHJ1ZSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHNfbWVzc2FnZSA9ICdUcmF2ZWwgcnVsZSBzY3JlZW5pbmcgY29tcGxldGVkIHN1Y2Nlc3NmdWxseScsIAogICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVkX2FsZXJ0ID0gZmlyZWJsb2Nrcy5tb2RlbHMubWF0Y2hlZF9hbGVydC5tYXRjaGVkQWxlcnQoKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZWRfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLm1hdGNoZWRfcnVsZS5tYXRjaGVkUnVsZSgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ByZXNjcmVlbmluZ19ydWxlLlRyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnlwYXNzX3JlYXNvbiA9ICdNQU5VQUwnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV90eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF90eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Rfc3ViX3R5cGUgPSAnSU5URVJOQUwnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZmVyX3BlZXJfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zlcl9wZWVyX3N1Yl90eXBlID0gJ0lOVEVSTkFMJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0X2FkZHJlc3MgPSAnMHhBMmRDMjQ5MEVEMURjQTJEMjE2MTM1MDhmZGIwYzgyZGFFQWIwNzE1JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VfaWQgPSAnMCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9pZCA9ICdleHRfYWRkcmVzc18wMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0ID0gJ0VUSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZV9hc3NldCA9ICdFVEgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IDAuNSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfdXNkID0gMTAwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXR3b3JrX3Byb3RvY29sID0gJ0VUSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gJ1RSQU5TRkVSJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZWRfbm9fdHJtX3NjcmVlbmluZ19ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMubWF0Y2hlZF9ub190cm1fc2NyZWVuaW5nX3J1bGUubWF0Y2hlZE5vVHJtU2NyZWVuaW5nUnVsZSgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX3Nob3J0X25hbWUgPSAnQUNNRSBDb3JwJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX21lc3NhZ2VfaWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywgCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyX3Jlc3BvbnNlID0geyB9LCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDb21wbGV0ZWQnLAogICAgICAgICAgICAgICAgYW1sX3JlZ2lzdHJhdGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLmFtbF9yZWdpc3RyYXRpb25fcmVzdWx0LkFtbFJlZ2lzdHJhdGlvblJlc3VsdCgKICAgICAgICAgICAgICAgICAgICBwcm92aWRlciA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBzdWNjZXNzID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wID0gMS4zMzcsICksCiAgICAgICAgICAgICAgICB0cmxpbmtfcmVnaXN0cmF0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19yZWdpc3RyYXRpb25fcmVzdWx0LlRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdCgKICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywgCiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXIgPSAnU1VNU1VCJywgCiAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9IDE2NDA5OTUyMDAwMDAsIAogICAgICAgICAgICAgICAgICAgIGRlc3RfcmVjb3JkX2lkID0gJzNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNicsIAogICAgICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX21lc3NhZ2VfaWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywgCiAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywgCiAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfc2hvcnRfbmFtZSA9ICdBQ01FIENvcnAnLCAKICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3Byb3ZpZGVyX3Jlc3VsdC5UUkxpbmtQcm92aWRlclJlc3VsdCgKICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLm1vZGVscy5wcm92aWRlcl9yZXNwb25zZS5wcm92aWRlclJlc3BvbnNlKCksICksIAogICAgICAgICAgICAgICAgICAgIG1hdGNoZWRfcHJlc2NyZWVuaW5nX3J1bGUgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3ByZV9zY3JlZW5pbmdfcnVsZS5UUkxpbmtQcmVTY3JlZW5pbmdSdWxlKCksICksCiAgICAgICAgICAgICAgICB0cmxpbmtfZGVzdGluYXRpb25zID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcmVzdWx0LlRSTGlua1Jlc3VsdCgKICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXIgPSAnU1VNU1VCJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9IDE2NDA5OTUyMDAwMDAsIAogICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHZlcmRpY3QgPSAnQUNDRVBUJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcweEEyZEMyNDkwRUQxRGNBMkQyMTYxMzUwOGZkYjBjODJkYUVBYjA3MTUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF90YWcgPSAnbWVtb18xMjM0NScsIAogICAgICAgICAgICAgICAgICAgICAgICBieXBhc3NfcmVhc29uID0gJ01BTlVBTCcsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzX21lc3NhZ2UgPSAnU2NyZWVuaW5nIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHknLCAKICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX3Nob3J0X25hbWUgPSAnQUNNRSBDb3JwJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX21lc3NhZ2VfaWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywgCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJvdmlkZXJfcmVzdWx0X3dpdGhfcnVsZS5UUkxpbmtQcm92aWRlclJlc3VsdFdpdGhSdWxlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLm1vZGVscy5wcm92aWRlcl9yZXNwb25zZS5wcm92aWRlclJlc3BvbnNlKCksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wb3N0X3NjcmVlbmluZ19ydWxlLlRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlKCksICksIAogICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVkX3ByZXNjcmVlbmluZ19ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wcmVfc2NyZWVuaW5nX3J1bGUuVFJMaW5rUHJlU2NyZWVuaW5nUnVsZSgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ub190cm1fc2NyZWVuaW5nX3J1bGUgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX21pc3NpbmdfdHJtX2RlY2lzaW9uLlRSTGlua01pc3NpbmdUcm1EZWNpc2lvbigpLCApCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvbXBsaWFuY2VSZXN1bHRzKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbXBsaWFuY2VSZXN1bHRzKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29tcGxpYW5jZVJlc3VsdHMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_compliance_screening_configuration_api.py b/test/test_compliance_screening_configuration_api.py index d475927d..85e3876f 100644 --- a/test/test_compliance_screening_configuration_api.py +++ b/test/test_compliance_screening_configuration_api.py @@ -1,48 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.compliance_screening_configuration_api import ( - ComplianceScreeningConfigurationApi, -) - - -class TestComplianceScreeningConfigurationApi(unittest.TestCase): - """ComplianceScreeningConfigurationApi unit test stubs""" - - def setUp(self) -> None: - self.api = ComplianceScreeningConfigurationApi() - - def tearDown(self) -> None: - pass - - def test_get_aml_screening_configuration(self) -> None: - """Test case for get_aml_screening_configuration - - Get AML Screening Policy Configuration - """ - pass - - def test_get_screening_configuration(self) -> None: - """Test case for get_screening_configuration - - Get Travel Rule Screening Policy Configuration - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLmNvbXBsaWFuY2Vfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb25fYXBpIGltcG9ydCAoCiAgICBDb21wbGlhbmNlU2NyZWVuaW5nQ29uZmlndXJhdGlvbkFwaSwKKQoKCmNsYXNzIFRlc3RDb21wbGlhbmNlU2NyZWVuaW5nQ29uZmlndXJhdGlvbkFwaSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb21wbGlhbmNlU2NyZWVuaW5nQ29uZmlndXJhdGlvbkFwaSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZikgLT4gTm9uZToKICAgICAgICBzZWxmLmFwaSA9IENvbXBsaWFuY2VTY3JlZW5pbmdDb25maWd1cmF0aW9uQXBpKCkKCiAgICBkZWYgdGVhckRvd24oc2VsZikgLT4gTm9uZToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2FtbF9zY3JlZW5pbmdfY29uZmlndXJhdGlvbihzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2FtbF9zY3JlZW5pbmdfY29uZmlndXJhdGlvbgoKICAgICAgICBHZXQgQU1MIFNjcmVlbmluZyBQb2xpY3kgQ29uZmlndXJhdGlvbgogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfc2NyZWVuaW5nX2NvbmZpZ3VyYXRpb24oc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9zY3JlZW5pbmdfY29uZmlndXJhdGlvbgoKICAgICAgICBHZXQgVHJhdmVsIFJ1bGUgU2NyZWVuaW5nIFBvbGljeSBDb25maWd1cmF0aW9uCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_compliance_screening_result.py b/test/test_compliance_screening_result.py index 9a8599b5..e74e0a2c 100644 --- a/test/test_compliance_screening_result.py +++ b/test/test_compliance_screening_result.py @@ -1,136 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.compliance_screening_result import ComplianceScreeningResult - - -class TestComplianceScreeningResult(unittest.TestCase): - """ComplianceScreeningResult unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ComplianceScreeningResult: - """Test ComplianceScreeningResult - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ComplianceScreeningResult` - """ - model = ComplianceScreeningResult() - if include_optional: - return ComplianceScreeningResult( - provider = 'NOTABENE', - payload = None, - timestamp = 1753459111824, - screening_status = 'COMPLETED', - bypass_reason = 'BELOW_THRESHOLD', - status = 'COMPLETED', - prev_status = 'COMPLETED', - prev_bypass_reason = 'BELOW_THRESHOLD', - verdict = 'PASS', - risk = 'LOW', - extended_risk = 'LOW', - external_id = 'aml_screening_12345', - customer_ref_id = 'customer_ref_789', - ref_id = 'ref_12345', - category = 'EXCHANGE', - category_id = 5, - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - dest_tag = 'memo_12345', - dest_record_id = 'record_001', - address_resolution_signature = '0x1234567890abcdef', - aml_result = fireblocks.models.aml_result.AmlResult( - alerts = [ - fireblocks.models.aml_alert.AmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ) - ], - provider_response = { }, - matched_rule = fireblocks.models.aml_matched_rule.AmlMatchedRule( - rule_id = 'rule_001', - rule_name = 'High Risk Sanctions Check', - action = 'ALLOW', ), - matched_alert = fireblocks.models.aml_alert.AmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ), ), - result = fireblocks.models.travel_rule_result.TravelRuleResult( - direction = 'OUTBOUND', - is_verified = True, - action = 'ACCEPT', - provider_response = { }, - matched_rule = fireblocks.models.travel_rule_matched_rule.TravelRuleMatchedRule( - status = 'COMPLETED', - amount_usd = 1000.5, - amount = 0.025, - asset = 'BTC', ), ), - details_message = 'Travel rule screening completed successfully', - matched_alert = None, - matched_rule = None, - matched_prescreening_rule = fireblocks.models.travel_rule_prescreening_rule.TravelRulePrescreeningRule( - bypass_reason = 'MANUAL', - source_type = 'VAULT_ACCOUNT', - source_sub_type = 'INTERNAL', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = 'INTERNAL', - transfer_peer_type = 'VAULT_ACCOUNT', - transfer_peer_sub_type = 'INTERNAL', - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - source_id = '0', - dest_id = 'ext_address_001', - asset = 'ETH', - base_asset = 'ETH', - amount = 0.5, - amount_usd = 1000, - network_protocol = 'ETH', - operation = 'TRANSFER', - action = 'SCREEN', ), - matched_no_trm_screening_rule = None, - customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_short_name = 'ACME Corp', - travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6' - ) - else: - return ComplianceScreeningResult( - ) - """ - - def testComplianceScreeningResult(self): - """Test ComplianceScreeningResult""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbXBsaWFuY2Vfc2NyZWVuaW5nX3Jlc3VsdCBpbXBvcnQgQ29tcGxpYW5jZVNjcmVlbmluZ1Jlc3VsdAoKCmNsYXNzIFRlc3RDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHQ6CiAgICAgICAgIiIiVGVzdCBDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ29tcGxpYW5jZVNjcmVlbmluZ1Jlc3VsdCgKICAgICAgICAgICAgICAgIHByb3ZpZGVyID0gJ05PVEFCRU5FJywKICAgICAgICAgICAgICAgIHBheWxvYWQgPSBOb25lLAogICAgICAgICAgICAgICAgdGltZXN0YW1wID0gMTc1MzQ1OTExMTgyNCwKICAgICAgICAgICAgICAgIHNjcmVlbmluZ19zdGF0dXMgPSAnQ09NUExFVEVEJywKICAgICAgICAgICAgICAgIGJ5cGFzc19yZWFzb24gPSAnVU5TVVBQT1JURURfQVNTRVQnLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ0NPTVBMRVRFRCcsCiAgICAgICAgICAgICAgICBwcmV2X3N0YXR1cyA9ICdDT01QTEVURUQnLAogICAgICAgICAgICAgICAgcHJldl9ieXBhc3NfcmVhc29uID0gJ0JFTE9XX1RIUkVTSE9MRCcsCiAgICAgICAgICAgICAgICB2ZXJkaWN0ID0gJ1BBU1MnLAogICAgICAgICAgICAgICAgcmlzayA9ICdsb3dSaXNrJywKICAgICAgICAgICAgICAgIGV4dGVuZGVkX3Jpc2sgPSAnbG93UmlzaycsCiAgICAgICAgICAgICAgICBleHRlcm5hbF9pZCA9ICdhbWxfc2NyZWVuaW5nXzEyMzQ1JywKICAgICAgICAgICAgICAgIGN1c3RvbWVyX3JlZl9pZCA9ICdjdXN0b21lcl9yZWZfNzg5JywKICAgICAgICAgICAgICAgIHJlZl9pZCA9ICdyZWZfMTIzNDUnLAogICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSAnRVhDSEFOR0UnLAogICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQgPSA1LAogICAgICAgICAgICAgICAgZGVzdF9hZGRyZXNzID0gJzB4QTJkQzI0OTBFRDFEY0EyRDIxNjEzNTA4ZmRiMGM4MmRhRUFiMDcxNScsCiAgICAgICAgICAgICAgICBkZXN0X3RhZyA9ICdtZW1vXzEyMzQ1JywKICAgICAgICAgICAgICAgIGRlc3RfcmVjb3JkX2lkID0gJ3JlY29yZF8wMDEnLAogICAgICAgICAgICAgICAgYWRkcmVzc19yZXNvbHV0aW9uX3NpZ25hdHVyZSA9ICcweDEyMzQ1Njc4OTBhYmNkZWYnLAogICAgICAgICAgICAgICAgYW1sX3Jlc3VsdCA9IGZpcmVibG9ja3MubW9kZWxzLmFtbF9yZXN1bHQuQW1sUmVzdWx0KAogICAgICAgICAgICAgICAgICAgIGFsZXJ0cyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX2FsZXJ0LkFtbEFsZXJ0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRfbGV2ZWwgPSAnSElHSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRfbmFtZSA9ICdTYW5jdGlvbnMgTWF0Y2gnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gJ1NBTkNUSU9ORURfRU5USVRZJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlID0gJ0NIQUlOQUxZU0lTJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlcm5hbF9pZCA9ICdhbGVydF8xMjM0NScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRfYW1vdW50ID0gMTAwMC41LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zdXJlX3R5cGUgPSAnRElSRUNUJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2xpY3lfYWN0aW9uID0gJ0JMT0NLJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZCA9IDEwMSwgKQogICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICBwcm92aWRlcl9yZXNwb25zZSA9IHsgfSwgCiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX21hdGNoZWRfcnVsZS5BbWxNYXRjaGVkUnVsZSgKICAgICAgICAgICAgICAgICAgICAgICAgcnVsZV9pZCA9ICdydWxlXzAwMScsIAogICAgICAgICAgICAgICAgICAgICAgICBydWxlX25hbWUgPSAnSGlnaCBSaXNrIFNhbmN0aW9ucyBDaGVjaycsIAogICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUxMT1cnLCApLCAKICAgICAgICAgICAgICAgICAgICBtYXRjaGVkX2FsZXJ0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX2FsZXJ0LkFtbEFsZXJ0KAogICAgICAgICAgICAgICAgICAgICAgICBhbGVydF9sZXZlbCA9ICdISUdIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X25hbWUgPSAnU2FuY3Rpb25zIE1hdGNoJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gJ1NBTkNUSU9ORURfRU5USVRZJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2UgPSAnQ0hBSU5BTFlTSVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfaWQgPSAnYWxlcnRfMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRfYW1vdW50ID0gMTAwMC41LCAKICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3N1cmVfdHlwZSA9ICdESVJFQ1QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5X2FjdGlvbiA9ICdCTE9DSycsIAogICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZCA9IDEwMSwgKSwgKSwKICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3Jlc3VsdC5UcmF2ZWxSdWxlUmVzdWx0KAogICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdPVVRCT1VORCcsIAogICAgICAgICAgICAgICAgICAgIGlzX3ZlcmlmaWVkID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FDQ0VQVCcsIAogICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyX3Jlc3BvbnNlID0geyB9LCAKICAgICAgICAgICAgICAgICAgICBtYXRjaGVkX3J1bGUgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9tYXRjaGVkX3J1bGUuVHJhdmVsUnVsZU1hdGNoZWRSdWxlKAogICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudF91c2QgPSAxMDAwLjUsIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAwLjAyNSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0ID0gJ0JUQycsICksICksCiAgICAgICAgICAgICAgICBkZXRhaWxzX21lc3NhZ2UgPSAnVHJhdmVsIHJ1bGUgc2NyZWVuaW5nIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHknLAogICAgICAgICAgICAgICAgbWF0Y2hlZF9hbGVydCA9IE5vbmUsCiAgICAgICAgICAgICAgICBtYXRjaGVkX3J1bGUgPSBOb25lLAogICAgICAgICAgICAgICAgbWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ByZXNjcmVlbmluZ19ydWxlLlRyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlKAogICAgICAgICAgICAgICAgICAgIGJ5cGFzc19yZWFzb24gPSAnTUFOVUFMJywgCiAgICAgICAgICAgICAgICAgICAgc291cmNlX3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsIAogICAgICAgICAgICAgICAgICAgIHNvdXJjZV9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsIAogICAgICAgICAgICAgICAgICAgIGRlc3RfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgCiAgICAgICAgICAgICAgICAgICAgZGVzdF9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsIAogICAgICAgICAgICAgICAgICAgIHRyYW5zZmVyX3BlZXJfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgCiAgICAgICAgICAgICAgICAgICAgdHJhbnNmZXJfcGVlcl9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsIAogICAgICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcweEEyZEMyNDkwRUQxRGNBMkQyMTYxMzUwOGZkYjBjODJkYUVBYjA3MTUnLCAKICAgICAgICAgICAgICAgICAgICBzb3VyY2VfaWQgPSAnMCcsIAogICAgICAgICAgICAgICAgICAgIGRlc3RfaWQgPSAnZXh0X2FkZHJlc3NfMDAxJywgCiAgICAgICAgICAgICAgICAgICAgYXNzZXQgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgYmFzZV9hc3NldCA9ICdFVEgnLCAKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAwLjUsIAogICAgICAgICAgICAgICAgICAgIGFtb3VudF91c2QgPSAxMDAwLCAKICAgICAgICAgICAgICAgICAgICBuZXR3b3JrX3Byb3RvY29sID0gJ0VUSCcsIAogICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdTQ1JFRU4nLCApLAogICAgICAgICAgICAgICAgbWF0Y2hlZF9ub190cm1fc2NyZWVuaW5nX3J1bGUgPSBOb25lLAogICAgICAgICAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywKICAgICAgICAgICAgICAgIGN1c3RvbWVyX3Nob3J0X25hbWUgPSAnQUNNRSBDb3JwJywKICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX21lc3NhZ2VfaWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywKICAgICAgICAgICAgICAgIHByb3ZpZGVyX3Jlc3BvbnNlID0geyB9CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29tcGxpYW5jZVNjcmVlbmluZ1Jlc3VsdCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29tcGxpYW5jZVNjcmVlbmluZ1Jlc3VsdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_compliance_screening_result_full_payload.py b/test/test_compliance_screening_result_full_payload.py index ed290f27..7ea56db0 100644 --- a/test/test_compliance_screening_result_full_payload.py +++ b/test/test_compliance_screening_result_full_payload.py @@ -1,138 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.compliance_screening_result_full_payload import ( - ComplianceScreeningResultFullPayload, -) - - -class TestComplianceScreeningResultFullPayload(unittest.TestCase): - """ComplianceScreeningResultFullPayload unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ComplianceScreeningResultFullPayload: - """Test ComplianceScreeningResultFullPayload - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ComplianceScreeningResultFullPayload` - """ - model = ComplianceScreeningResultFullPayload() - if include_optional: - return ComplianceScreeningResultFullPayload( - provider = 'NOTABENE', - payload = None, - timestamp = 1753459111824, - screening_status = 'COMPLETED', - bypass_reason = 'BELOW_THRESHOLD', - status = 'COMPLETED', - prev_status = 'COMPLETED', - prev_bypass_reason = 'BELOW_THRESHOLD', - verdict = 'PASS', - risk = 'LOW', - extended_risk = 'LOW', - external_id = 'aml_screening_12345', - customer_ref_id = 'customer_ref_789', - ref_id = 'ref_12345', - category = 'EXCHANGE', - category_id = 5, - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - dest_tag = 'memo_12345', - dest_record_id = 'record_001', - address_resolution_signature = '0x1234567890abcdef', - aml_result = fireblocks.models.screening_aml_result.ScreeningAmlResult( - alerts = [ - fireblocks.models.screening_aml_alert.ScreeningAmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ) - ], - provider_response = { }, - matched_rule = fireblocks.models.screening_aml_matched_rule.ScreeningAmlMatchedRule( - rule_id = 'rule_001', - rule_name = 'High Risk Sanctions Check', - action = 'ALLOW', ), - matched_alert = fireblocks.models.screening_aml_alert.ScreeningAmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ), ), - result = fireblocks.models.screening_travel_rule_result.ScreeningTravelRuleResult( - direction = 'OUTBOUND', - is_verified = True, - action = 'ACCEPT', - provider_response = { }, - matched_rule = fireblocks.models.screening_travel_rule_matched_rule.ScreeningTravelRuleMatchedRule( - status = 'COMPLETED', - amount_usd = 1000.5, - amount = 0.025, - asset = 'BTC', ), ), - details_message = 'Travel rule screening completed successfully', - matched_alert = None, - matched_rule = None, - matched_prescreening_rule = fireblocks.models.screening_travel_rule_prescreening_rule.ScreeningTravelRulePrescreeningRule( - bypass_reason = 'MANUAL', - source_type = 'VAULT_ACCOUNT', - source_sub_type = 'INTERNAL', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = 'INTERNAL', - transfer_peer_type = 'VAULT_ACCOUNT', - transfer_peer_sub_type = 'INTERNAL', - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - source_id = '0', - dest_id = '2', - asset = 'ETH', - base_asset = 'ETH', - amount = 0.5, - amount_usd = 1000, - network_protocol = 'ETH', - operation = 'TRANSFER', - action = 'SCREEN', ), - matched_no_trm_screening_rule = None, - customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_short_name = 'ACME Corp', - travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6' - ) - else: - return ComplianceScreeningResultFullPayload( - ) - """ - - def testComplianceScreeningResultFullPayload(self): - """Test ComplianceScreeningResultFullPayload""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbXBsaWFuY2Vfc2NyZWVuaW5nX3Jlc3VsdF9mdWxsX3BheWxvYWQgaW1wb3J0ICgKICAgIENvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHRGdWxsUGF5bG9hZCwKKQoKCmNsYXNzIFRlc3RDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0RnVsbFBheWxvYWQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ29tcGxpYW5jZVNjcmVlbmluZ1Jlc3VsdEZ1bGxQYXlsb2FkIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0RnVsbFBheWxvYWQ6CiAgICAgICAgIiIiVGVzdCBDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0RnVsbFBheWxvYWQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ29tcGxpYW5jZVNjcmVlbmluZ1Jlc3VsdEZ1bGxQYXlsb2FkYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29tcGxpYW5jZVNjcmVlbmluZ1Jlc3VsdEZ1bGxQYXlsb2FkKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ29tcGxpYW5jZVNjcmVlbmluZ1Jlc3VsdEZ1bGxQYXlsb2FkKAogICAgICAgICAgICAgICAgcHJvdmlkZXIgPSAnTk9UQUJFTkUnLAogICAgICAgICAgICAgICAgcGF5bG9hZCA9IE5vbmUsCiAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSAxNzUzNDU5MTExODI0LAogICAgICAgICAgICAgICAgc2NyZWVuaW5nX3N0YXR1cyA9ICdDT01QTEVURUQnLAogICAgICAgICAgICAgICAgYnlwYXNzX3JlYXNvbiA9ICdVTlNVUFBPUlRFRF9BU1NFVCcsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywKICAgICAgICAgICAgICAgIHByZXZfc3RhdHVzID0gJ0NPTVBMRVRFRCcsCiAgICAgICAgICAgICAgICBwcmV2X2J5cGFzc19yZWFzb24gPSAnQkVMT1dfVEhSRVNIT0xEJywKICAgICAgICAgICAgICAgIHZlcmRpY3QgPSAnUEFTUycsCiAgICAgICAgICAgICAgICByaXNrID0gJ2xvd1Jpc2snLAogICAgICAgICAgICAgICAgZXh0ZW5kZWRfcmlzayA9ICdsb3dSaXNrJywKICAgICAgICAgICAgICAgIGV4dGVybmFsX2lkID0gJ2FtbF9zY3JlZW5pbmdfMTIzNDUnLAogICAgICAgICAgICAgICAgY3VzdG9tZXJfcmVmX2lkID0gJ2N1c3RvbWVyX3JlZl83ODknLAogICAgICAgICAgICAgICAgcmVmX2lkID0gJ3JlZl8xMjM0NScsCiAgICAgICAgICAgICAgICBjYXRlZ29yeSA9ICdFWENIQU5HRScsCiAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZCA9IDUsCiAgICAgICAgICAgICAgICBkZXN0X2FkZHJlc3MgPSAnMHhBMmRDMjQ5MEVEMURjQTJEMjE2MTM1MDhmZGIwYzgyZGFFQWIwNzE1JywKICAgICAgICAgICAgICAgIGRlc3RfdGFnID0gJ21lbW9fMTIzNDUnLAogICAgICAgICAgICAgICAgZGVzdF9yZWNvcmRfaWQgPSAncmVjb3JkXzAwMScsCiAgICAgICAgICAgICAgICBhZGRyZXNzX3Jlc29sdXRpb25fc2lnbmF0dXJlID0gJzB4MTIzNDU2Nzg5MGFiY2RlZicsCiAgICAgICAgICAgICAgICBhbWxfcmVzdWx0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX2FtbF9yZXN1bHQuU2NyZWVuaW5nQW1sUmVzdWx0KAogICAgICAgICAgICAgICAgICAgIGFsZXJ0cyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX2FtbF9hbGVydC5TY3JlZW5pbmdBbWxBbGVydCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X2xldmVsID0gJ0hJR0gnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X25hbWUgPSAnU2FuY3Rpb25zIE1hdGNoJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSA9ICdTQU5DVElPTkVEX0VOVElUWScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZSA9ICdDSEFJTkFMWVNJUycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfaWQgPSAnYWxlcnRfMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X2Ftb3VudCA9IDEwMDAuNSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBvc3VyZV90eXBlID0gJ0RJUkVDVCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5X2FjdGlvbiA9ICdCTE9DSycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQgPSAxMDEsICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJfcmVzcG9uc2UgPSB7IH0sIAogICAgICAgICAgICAgICAgICAgIG1hdGNoZWRfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19hbWxfbWF0Y2hlZF9ydWxlLlNjcmVlbmluZ0FtbE1hdGNoZWRSdWxlKAogICAgICAgICAgICAgICAgICAgICAgICBydWxlX2lkID0gJ3J1bGVfMDAxJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVfbmFtZSA9ICdIaWdoIFJpc2sgU2FuY3Rpb25zIENoZWNrJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdBTExPVycsICksIAogICAgICAgICAgICAgICAgICAgIG1hdGNoZWRfYWxlcnQgPSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfYW1sX2FsZXJ0LlNjcmVlbmluZ0FtbEFsZXJ0KAogICAgICAgICAgICAgICAgICAgICAgICBhbGVydF9sZXZlbCA9ICdISUdIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X25hbWUgPSAnU2FuY3Rpb25zIE1hdGNoJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gJ1NBTkNUSU9ORURfRU5USVRZJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2UgPSAnQ0hBSU5BTFlTSVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfaWQgPSAnYWxlcnRfMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRfYW1vdW50ID0gMTAwMC41LCAKICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3N1cmVfdHlwZSA9ICdESVJFQ1QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5X2FjdGlvbiA9ICdCTE9DSycsIAogICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZCA9IDEwMSwgKSwgKSwKICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cmF2ZWxfcnVsZV9yZXN1bHQuU2NyZWVuaW5nVHJhdmVsUnVsZVJlc3VsdCgKICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLCAKICAgICAgICAgICAgICAgICAgICBpc192ZXJpZmllZCA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdBQ0NFUFQnLCAKICAgICAgICAgICAgICAgICAgICBwcm92aWRlcl9yZXNwb25zZSA9IHsgfSwgCiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyYXZlbF9ydWxlX21hdGNoZWRfcnVsZS5TY3JlZW5pbmdUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGUoCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50X3VzZCA9IDEwMDAuNSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IDAuMDI1LCAKICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXQgPSAnQlRDJywgKSwgKSwKICAgICAgICAgICAgICAgIGRldGFpbHNfbWVzc2FnZSA9ICdUcmF2ZWwgcnVsZSBzY3JlZW5pbmcgY29tcGxldGVkIHN1Y2Nlc3NmdWxseScsCiAgICAgICAgICAgICAgICBtYXRjaGVkX2FsZXJ0ID0gTm9uZSwKICAgICAgICAgICAgICAgIG1hdGNoZWRfcnVsZSA9IE5vbmUsCiAgICAgICAgICAgICAgICBtYXRjaGVkX3ByZXNjcmVlbmluZ19ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyYXZlbF9ydWxlX3ByZXNjcmVlbmluZ19ydWxlLlNjcmVlbmluZ1RyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlKAogICAgICAgICAgICAgICAgICAgIGJ5cGFzc19yZWFzb24gPSAnTUFOVUFMJywgCiAgICAgICAgICAgICAgICAgICAgc291cmNlX3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsIAogICAgICAgICAgICAgICAgICAgIHNvdXJjZV9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsIAogICAgICAgICAgICAgICAgICAgIGRlc3RfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgCiAgICAgICAgICAgICAgICAgICAgZGVzdF9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsIAogICAgICAgICAgICAgICAgICAgIHRyYW5zZmVyX3BlZXJfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgCiAgICAgICAgICAgICAgICAgICAgdHJhbnNmZXJfcGVlcl9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsIAogICAgICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcweEEyZEMyNDkwRUQxRGNBMkQyMTYxMzUwOGZkYjBjODJkYUVBYjA3MTUnLCAKICAgICAgICAgICAgICAgICAgICBzb3VyY2VfaWQgPSAnMCcsIAogICAgICAgICAgICAgICAgICAgIGRlc3RfaWQgPSAnMicsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0ID0gJ0VUSCcsIAogICAgICAgICAgICAgICAgICAgIGJhc2VfYXNzZXQgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gMC41LCAKICAgICAgICAgICAgICAgICAgICBhbW91bnRfdXNkID0gMTAwMCwgCiAgICAgICAgICAgICAgICAgICAgbmV0d29ya19wcm90b2NvbCA9ICdFVEgnLCAKICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSAnVFJBTlNGRVInLCAKICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnU0NSRUVOJywgKSwKICAgICAgICAgICAgICAgIG1hdGNoZWRfbm9fdHJtX3NjcmVlbmluZ19ydWxlID0gTm9uZSwKICAgICAgICAgICAgICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkID0gJzNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNicsCiAgICAgICAgICAgICAgICBjdXN0b21lcl9zaG9ydF9uYW1lID0gJ0FDTUUgQ29ycCcsCiAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV9tZXNzYWdlX2lkID0gJzNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNicsCiAgICAgICAgICAgICAgICBwcm92aWRlcl9yZXNwb25zZSA9IHsgfQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvbXBsaWFuY2VTY3JlZW5pbmdSZXN1bHRGdWxsUGF5bG9hZCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0RnVsbFBheWxvYWQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0RnVsbFBheWxvYWQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_config_change_request_status.py b/test/test_config_change_request_status.py index f2893f60..0b5d2821 100644 --- a/test/test_config_change_request_status.py +++ b/test/test_config_change_request_status.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.config_change_request_status import ConfigChangeRequestStatus - - -class TestConfigChangeRequestStatus(unittest.TestCase): - """ConfigChangeRequestStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testConfigChangeRequestStatus(self): - """Test ConfigChangeRequestStatus""" - # inst = ConfigChangeRequestStatus() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbmZpZ19jaGFuZ2VfcmVxdWVzdF9zdGF0dXMgaW1wb3J0IENvbmZpZ0NoYW5nZVJlcXVlc3RTdGF0dXMKCgpjbGFzcyBUZXN0Q29uZmlnQ2hhbmdlUmVxdWVzdFN0YXR1cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb25maWdDaGFuZ2VSZXF1ZXN0U3RhdHVzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdENvbmZpZ0NoYW5nZVJlcXVlc3RTdGF0dXMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb25maWdDaGFuZ2VSZXF1ZXN0U3RhdHVzIiIiCiAgICAgICAgIyBpbnN0ID0gQ29uZmlnQ2hhbmdlUmVxdWVzdFN0YXR1cygpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_config_conversion_operation_snapshot.py b/test/test_config_conversion_operation_snapshot.py index bcb3cdb0..d21380be 100644 --- a/test/test_config_conversion_operation_snapshot.py +++ b/test/test_config_conversion_operation_snapshot.py @@ -1,71 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.config_conversion_operation_snapshot import ( - ConfigConversionOperationSnapshot, -) - - -class TestConfigConversionOperationSnapshot(unittest.TestCase): - """ConfigConversionOperationSnapshot unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConfigConversionOperationSnapshot: - """Test ConfigConversionOperationSnapshot - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConfigConversionOperationSnapshot` - """ - model = ConfigConversionOperationSnapshot() - if include_optional: - return ConfigConversionOperationSnapshot( - operation_id = '', - type = 'CONVERSION', - params = fireblocks.models.conversion_operation_config_params.ConversionOperationConfigParams( - amount = '', - account_id = '', - src_asset_id = '', - dest_asset_id = '', - slippage_basis_points = 0, ) - ) - else: - return ConfigConversionOperationSnapshot( - operation_id = '', - type = 'CONVERSION', - params = fireblocks.models.conversion_operation_config_params.ConversionOperationConfigParams( - amount = '', - account_id = '', - src_asset_id = '', - dest_asset_id = '', - slippage_basis_points = 0, ), - ) - """ - - def testConfigConversionOperationSnapshot(self): - """Test ConfigConversionOperationSnapshot""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbmZpZ19jb252ZXJzaW9uX29wZXJhdGlvbl9zbmFwc2hvdCBpbXBvcnQgKAogICAgQ29uZmlnQ29udmVyc2lvbk9wZXJhdGlvblNuYXBzaG90LAopCgoKY2xhc3MgVGVzdENvbmZpZ0NvbnZlcnNpb25PcGVyYXRpb25TbmFwc2hvdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb25maWdDb252ZXJzaW9uT3BlcmF0aW9uU25hcHNob3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbmZpZ0NvbnZlcnNpb25PcGVyYXRpb25TbmFwc2hvdDoKICAgICAgICAiIiJUZXN0IENvbmZpZ0NvbnZlcnNpb25PcGVyYXRpb25TbmFwc2hvdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb25maWdDb252ZXJzaW9uT3BlcmF0aW9uU25hcHNob3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb25maWdDb252ZXJzaW9uT3BlcmF0aW9uU25hcHNob3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDb25maWdDb252ZXJzaW9uT3BlcmF0aW9uU25hcHNob3QoCiAgICAgICAgICAgICAgICBvcGVyYXRpb25faWQgPSAnJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnQ09OVkVSU0lPTicsCiAgICAgICAgICAgICAgICBwYXJhbXMgPSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJzaW9uX29wZXJhdGlvbl9jb25maWdfcGFyYW1zLkNvbnZlcnNpb25PcGVyYXRpb25Db25maWdQYXJhbXMoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgc3JjX2Fzc2V0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgIGRlc3RfYXNzZXRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgc2xpcHBhZ2VfYmFzaXNfcG9pbnRzID0gMCwgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvbmZpZ0NvbnZlcnNpb25PcGVyYXRpb25TbmFwc2hvdCgKICAgICAgICAgICAgICAgIG9wZXJhdGlvbl9pZCA9ICcnLAogICAgICAgICAgICAgICAgdHlwZSA9ICdDT05WRVJTSU9OJywKICAgICAgICAgICAgICAgIHBhcmFtcyA9IGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMuQ29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtcygKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBzcmNfYXNzZXRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgZGVzdF9hc3NldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBzbGlwcGFnZV9iYXNpc19wb2ludHMgPSAwLCApLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbmZpZ0NvbnZlcnNpb25PcGVyYXRpb25TbmFwc2hvdChzZWxmKToKICAgICAgICAiIiJUZXN0IENvbmZpZ0NvbnZlcnNpb25PcGVyYXRpb25TbmFwc2hvdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_config_disbursement_operation_snapshot.py b/test/test_config_disbursement_operation_snapshot.py index a070e06a..f74dda13 100644 --- a/test/test_config_disbursement_operation_snapshot.py +++ b/test/test_config_disbursement_operation_snapshot.py @@ -1,73 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.config_disbursement_operation_snapshot import ( - ConfigDisbursementOperationSnapshot, -) - - -class TestConfigDisbursementOperationSnapshot(unittest.TestCase): - """ConfigDisbursementOperationSnapshot unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConfigDisbursementOperationSnapshot: - """Test ConfigDisbursementOperationSnapshot - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConfigDisbursementOperationSnapshot` - """ - model = ConfigDisbursementOperationSnapshot() - if include_optional: - return ConfigDisbursementOperationSnapshot( - operation_id = '', - type = 'DISBURSEMENT', - params = fireblocks.models.disbursement_operation_config_params.DisbursementOperationConfigParams( - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ) - ) - else: - return ConfigDisbursementOperationSnapshot( - operation_id = '', - type = 'DISBURSEMENT', - params = fireblocks.models.disbursement_operation_config_params.DisbursementOperationConfigParams( - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ), - ) - """ - - def testConfigDisbursementOperationSnapshot(self): - """Test ConfigDisbursementOperationSnapshot""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbmZpZ19kaXNidXJzZW1lbnRfb3BlcmF0aW9uX3NuYXBzaG90IGltcG9ydCAoCiAgICBDb25maWdEaXNidXJzZW1lbnRPcGVyYXRpb25TbmFwc2hvdCwKKQoKCmNsYXNzIFRlc3RDb25maWdEaXNidXJzZW1lbnRPcGVyYXRpb25TbmFwc2hvdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb25maWdEaXNidXJzZW1lbnRPcGVyYXRpb25TbmFwc2hvdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ29uZmlnRGlzYnVyc2VtZW50T3BlcmF0aW9uU25hcHNob3Q6CiAgICAgICAgIiIiVGVzdCBDb25maWdEaXNidXJzZW1lbnRPcGVyYXRpb25TbmFwc2hvdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb25maWdEaXNidXJzZW1lbnRPcGVyYXRpb25TbmFwc2hvdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENvbmZpZ0Rpc2J1cnNlbWVudE9wZXJhdGlvblNuYXBzaG90KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ29uZmlnRGlzYnVyc2VtZW50T3BlcmF0aW9uU25hcHNob3QoCiAgICAgICAgICAgICAgICBvcGVyYXRpb25faWQgPSAnJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnRElTQlVSU0VNRU5UJywKICAgICAgICAgICAgICAgIHBhcmFtcyA9IGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fY29uZmlnX3BhcmFtcy5EaXNidXJzZW1lbnRPcGVyYXRpb25Db25maWdQYXJhbXMoCiAgICAgICAgICAgICAgICAgICAgcGF5bWVudF9hY2NvdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudC5BY2NvdW50KAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X3R5cGUgPSAnRVhDSEFOR0VfQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgIGluc3RydWN0aW9uX3NldCA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgICAgICBdLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29uZmlnRGlzYnVyc2VtZW50T3BlcmF0aW9uU25hcHNob3QoCiAgICAgICAgICAgICAgICBvcGVyYXRpb25faWQgPSAnJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnRElTQlVSU0VNRU5UJywKICAgICAgICAgICAgICAgIHBhcmFtcyA9IGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fY29uZmlnX3BhcmFtcy5EaXNidXJzZW1lbnRPcGVyYXRpb25Db25maWdQYXJhbXMoCiAgICAgICAgICAgICAgICAgICAgcGF5bWVudF9hY2NvdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudC5BY2NvdW50KAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X3R5cGUgPSAnRVhDSEFOR0VfQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgIGluc3RydWN0aW9uX3NldCA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgICAgICBdLCApLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbmZpZ0Rpc2J1cnNlbWVudE9wZXJhdGlvblNuYXBzaG90KHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29uZmlnRGlzYnVyc2VtZW50T3BlcmF0aW9uU25hcHNob3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_config_operation.py b/test/test_config_operation.py index 3e447699..68a654f8 100644 --- a/test/test_config_operation.py +++ b/test/test_config_operation.py @@ -1,78 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.config_operation import ConfigOperation - - -class TestConfigOperation(unittest.TestCase): - """ConfigOperation unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConfigOperation: - """Test ConfigOperation - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConfigOperation` - """ - model = ConfigOperation() - if include_optional: - return ConfigOperation( - operation_id = '', - type = 'DISBURSEMENT', - params = fireblocks.models.disbursement_operation_config_params.DisbursementOperationConfigParams( - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ), - status = 'PENDING', - validation_failure = fireblocks.models.disbursement_validation_failure.DisbursementValidationFailure( - reason = 'ACCOUNT_NOT_FOUND', - data = { - 'key' : null - }, ) - ) - else: - return ConfigOperation( - operation_id = '', - type = 'DISBURSEMENT', - params = fireblocks.models.disbursement_operation_config_params.DisbursementOperationConfigParams( - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ), - status = 'PENDING', - ) - """ - - def testConfigOperation(self): - """Test ConfigOperation""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbmZpZ19vcGVyYXRpb24gaW1wb3J0IENvbmZpZ09wZXJhdGlvbgoKCmNsYXNzIFRlc3RDb25maWdPcGVyYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ29uZmlnT3BlcmF0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb25maWdPcGVyYXRpb246CiAgICAgICAgIiIiVGVzdCBDb25maWdPcGVyYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ29uZmlnT3BlcmF0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29uZmlnT3BlcmF0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ29uZmlnT3BlcmF0aW9uKAogICAgICAgICAgICAgICAgb3BlcmF0aW9uX2lkID0gJycsCiAgICAgICAgICAgICAgICB0eXBlID0gJ0RJU0JVUlNFTUVOVCcsCiAgICAgICAgICAgICAgICBwYXJhbXMgPSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMuRGlzYnVyc2VtZW50T3BlcmF0aW9uQ29uZmlnUGFyYW1zKAogICAgICAgICAgICAgICAgICAgIHBheW1lbnRfYWNjb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFjY291bnQuQWNjb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF90eXBlID0gJ0VYQ0hBTkdFX0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbl9zZXQgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdQRU5ESU5HJywKICAgICAgICAgICAgICAgIHZhbGlkYXRpb25fZmFpbHVyZSA9IGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF92YWxpZGF0aW9uX2ZhaWx1cmUuRGlzYnVyc2VtZW50VmFsaWRhdGlvbkZhaWx1cmUoCiAgICAgICAgICAgICAgICAgICAgcmVhc29uID0gJ0FDQ09VTlRfTk9UX0ZPVU5EJywgCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgJ2tleScgOiBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDb25maWdPcGVyYXRpb24oCiAgICAgICAgICAgICAgICBvcGVyYXRpb25faWQgPSAnJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnRElTQlVSU0VNRU5UJywKICAgICAgICAgICAgICAgIHBhcmFtcyA9IGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fY29uZmlnX3BhcmFtcy5EaXNidXJzZW1lbnRPcGVyYXRpb25Db25maWdQYXJhbXMoCiAgICAgICAgICAgICAgICAgICAgcGF5bWVudF9hY2NvdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudC5BY2NvdW50KAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X3R5cGUgPSAnRVhDSEFOR0VfQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgIGluc3RydWN0aW9uX3NldCA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgICAgICBdLCApLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ1BFTkRJTkcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbmZpZ09wZXJhdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IENvbmZpZ09wZXJhdGlvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_config_operation_snapshot.py b/test/test_config_operation_snapshot.py index 7cd1ab4d..9a33625a 100644 --- a/test/test_config_operation_snapshot.py +++ b/test/test_config_operation_snapshot.py @@ -1,71 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.config_operation_snapshot import ConfigOperationSnapshot - - -class TestConfigOperationSnapshot(unittest.TestCase): - """ConfigOperationSnapshot unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConfigOperationSnapshot: - """Test ConfigOperationSnapshot - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConfigOperationSnapshot` - """ - model = ConfigOperationSnapshot() - if include_optional: - return ConfigOperationSnapshot( - operation_id = '', - type = 'DISBURSEMENT', - params = fireblocks.models.disbursement_operation_config_params.DisbursementOperationConfigParams( - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ) - ) - else: - return ConfigOperationSnapshot( - operation_id = '', - type = 'DISBURSEMENT', - params = fireblocks.models.disbursement_operation_config_params.DisbursementOperationConfigParams( - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ), - ) - """ - - def testConfigOperationSnapshot(self): - """Test ConfigOperationSnapshot""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbmZpZ19vcGVyYXRpb25fc25hcHNob3QgaW1wb3J0IENvbmZpZ09wZXJhdGlvblNuYXBzaG90CgoKY2xhc3MgVGVzdENvbmZpZ09wZXJhdGlvblNuYXBzaG90KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbmZpZ09wZXJhdGlvblNuYXBzaG90IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb25maWdPcGVyYXRpb25TbmFwc2hvdDoKICAgICAgICAiIiJUZXN0IENvbmZpZ09wZXJhdGlvblNuYXBzaG90CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbmZpZ09wZXJhdGlvblNuYXBzaG90YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29uZmlnT3BlcmF0aW9uU25hcHNob3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDb25maWdPcGVyYXRpb25TbmFwc2hvdCgKICAgICAgICAgICAgICAgIG9wZXJhdGlvbl9pZCA9ICcnLAogICAgICAgICAgICAgICAgdHlwZSA9ICdESVNCVVJTRU1FTlQnLAogICAgICAgICAgICAgICAgcGFyYW1zID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9jb25maWdfcGFyYW1zLkRpc2J1cnNlbWVudE9wZXJhdGlvbkNvbmZpZ1BhcmFtcygKICAgICAgICAgICAgICAgICAgICBwYXltZW50X2FjY291bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50LkFjY291bnQoCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfdHlwZSA9ICdFWENIQU5HRV9BQ0NPVU5UJywgKSwgCiAgICAgICAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb25fc2V0ID0gWwogICAgICAgICAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgIF0sICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDb25maWdPcGVyYXRpb25TbmFwc2hvdCgKICAgICAgICAgICAgICAgIG9wZXJhdGlvbl9pZCA9ICcnLAogICAgICAgICAgICAgICAgdHlwZSA9ICdESVNCVVJTRU1FTlQnLAogICAgICAgICAgICAgICAgcGFyYW1zID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9jb25maWdfcGFyYW1zLkRpc2J1cnNlbWVudE9wZXJhdGlvbkNvbmZpZ1BhcmFtcygKICAgICAgICAgICAgICAgICAgICBwYXltZW50X2FjY291bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50LkFjY291bnQoCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfdHlwZSA9ICdFWENIQU5HRV9BQ0NPVU5UJywgKSwgCiAgICAgICAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb25fc2V0ID0gWwogICAgICAgICAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgIF0sICksCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29uZmlnT3BlcmF0aW9uU25hcHNob3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb25maWdPcGVyYXRpb25TbmFwc2hvdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_config_operation_status.py b/test/test_config_operation_status.py index 8b619e25..5211d3ad 100644 --- a/test/test_config_operation_status.py +++ b/test/test_config_operation_status.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.config_operation_status import ConfigOperationStatus - - -class TestConfigOperationStatus(unittest.TestCase): - """ConfigOperationStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testConfigOperationStatus(self): - """Test ConfigOperationStatus""" - # inst = ConfigOperationStatus() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbmZpZ19vcGVyYXRpb25fc3RhdHVzIGltcG9ydCBDb25maWdPcGVyYXRpb25TdGF0dXMKCgpjbGFzcyBUZXN0Q29uZmlnT3BlcmF0aW9uU3RhdHVzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbmZpZ09wZXJhdGlvblN0YXR1cyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RDb25maWdPcGVyYXRpb25TdGF0dXMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb25maWdPcGVyYXRpb25TdGF0dXMiIiIKICAgICAgICAjIGluc3QgPSBDb25maWdPcGVyYXRpb25TdGF0dXMoKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_config_transfer_operation_snapshot.py b/test/test_config_transfer_operation_snapshot.py index e5d3f1d0..62b04d46 100644 --- a/test/test_config_transfer_operation_snapshot.py +++ b/test/test_config_transfer_operation_snapshot.py @@ -1,73 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.config_transfer_operation_snapshot import ( - ConfigTransferOperationSnapshot, -) - - -class TestConfigTransferOperationSnapshot(unittest.TestCase): - """ConfigTransferOperationSnapshot unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConfigTransferOperationSnapshot: - """Test ConfigTransferOperationSnapshot - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConfigTransferOperationSnapshot` - """ - model = ConfigTransferOperationSnapshot() - if include_optional: - return ConfigTransferOperationSnapshot( - operation_id = '', - type = 'TRANSFER', - params = fireblocks.models.transfer_operation_config_params.TransferOperationConfigParams( - amount = '', - asset_id = '', - source = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - destination = null, ) - ) - else: - return ConfigTransferOperationSnapshot( - operation_id = '', - type = 'TRANSFER', - params = fireblocks.models.transfer_operation_config_params.TransferOperationConfigParams( - amount = '', - asset_id = '', - source = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - destination = null, ), - ) - """ - - def testConfigTransferOperationSnapshot(self): - """Test ConfigTransferOperationSnapshot""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbmZpZ190cmFuc2Zlcl9vcGVyYXRpb25fc25hcHNob3QgaW1wb3J0ICgKICAgIENvbmZpZ1RyYW5zZmVyT3BlcmF0aW9uU25hcHNob3QsCikKCgpjbGFzcyBUZXN0Q29uZmlnVHJhbnNmZXJPcGVyYXRpb25TbmFwc2hvdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb25maWdUcmFuc2Zlck9wZXJhdGlvblNuYXBzaG90IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb25maWdUcmFuc2Zlck9wZXJhdGlvblNuYXBzaG90OgogICAgICAgICIiIlRlc3QgQ29uZmlnVHJhbnNmZXJPcGVyYXRpb25TbmFwc2hvdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb25maWdUcmFuc2Zlck9wZXJhdGlvblNuYXBzaG90YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29uZmlnVHJhbnNmZXJPcGVyYXRpb25TbmFwc2hvdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbmZpZ1RyYW5zZmVyT3BlcmF0aW9uU25hcHNob3QoCiAgICAgICAgICAgICAgICBvcGVyYXRpb25faWQgPSAnJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnVFJBTlNGRVInLAogICAgICAgICAgICAgICAgcGFyYW1zID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMuVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9IGZpcmVibG9ja3MubW9kZWxzLmFjY291bnQuQWNjb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF90eXBlID0gJ0VYQ0hBTkdFX0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IG51bGwsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDb25maWdUcmFuc2Zlck9wZXJhdGlvblNuYXBzaG90KAogICAgICAgICAgICAgICAgb3BlcmF0aW9uX2lkID0gJycsCiAgICAgICAgICAgICAgICB0eXBlID0gJ1RSQU5TRkVSJywKICAgICAgICAgICAgICAgIHBhcmFtcyA9IGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9jb25maWdfcGFyYW1zLlRyYW5zZmVyT3BlcmF0aW9uQ29uZmlnUGFyYW1zKAogICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBzb3VyY2UgPSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50LkFjY291bnQoCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfdHlwZSA9ICdFWENIQU5HRV9BQ0NPVU5UJywgKSwgCiAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSBudWxsLCApLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbmZpZ1RyYW5zZmVyT3BlcmF0aW9uU25hcHNob3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb25maWdUcmFuc2Zlck9wZXJhdGlvblNuYXBzaG90IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_connected_account.py b/test/test_connected_account.py index 7dcdb8bf..a88bf160 100644 --- a/test/test_connected_account.py +++ b/test/test_connected_account.py @@ -1,76 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.connected_account import ConnectedAccount - - -class TestConnectedAccount(unittest.TestCase): - """ConnectedAccount unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConnectedAccount: - """Test ConnectedAccount - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConnectedAccount` - """ - model = ConnectedAccount() - if include_optional: - return ConnectedAccount( - id = 'acc-123456', - name = 'Main Venue Account', - provider_id = 'BRIDGE', - status = 'WAITING_FOR_APPROVAL', - total_balance = fireblocks.models.connected_account_total_balance.ConnectedAccountTotalBalance( - amount = '1201.15', - denominated_asset_id = 'ea6c3cb7-355a-4ee3-82ff-267c69970214', - has_full_asset_coverage = True, ), - manifest = fireblocks.models.connected_account_manifest.ConnectedAccountManifest( - asset_types = [], - capabilities = ["WITHDRAWALS"], ), - parent_id = 'acc-parent-001' - ) - else: - return ConnectedAccount( - id = 'acc-123456', - name = 'Main Venue Account', - provider_id = 'BRIDGE', - status = 'WAITING_FOR_APPROVAL', - total_balance = fireblocks.models.connected_account_total_balance.ConnectedAccountTotalBalance( - amount = '1201.15', - denominated_asset_id = 'ea6c3cb7-355a-4ee3-82ff-267c69970214', - has_full_asset_coverage = True, ), - manifest = fireblocks.models.connected_account_manifest.ConnectedAccountManifest( - asset_types = [], - capabilities = ["WITHDRAWALS"], ), - ) - """ - - def testConnectedAccount(self): - """Test ConnectedAccount""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50IGltcG9ydCBDb25uZWN0ZWRBY2NvdW50CgoKY2xhc3MgVGVzdENvbm5lY3RlZEFjY291bnQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ29ubmVjdGVkQWNjb3VudCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ29ubmVjdGVkQWNjb3VudDoKICAgICAgICAiIiJUZXN0IENvbm5lY3RlZEFjY291bnQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ29ubmVjdGVkQWNjb3VudGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENvbm5lY3RlZEFjY291bnQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDb25uZWN0ZWRBY2NvdW50KAogICAgICAgICAgICAgICAgaWQgPSAnYWNjLTEyMzQ1NicsCiAgICAgICAgICAgICAgICBuYW1lID0gJ01haW4gVmVudWUgQWNjb3VudCcsCiAgICAgICAgICAgICAgICBwcm92aWRlcl9pZCA9ICdCUklER0UnLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ1dBSVRJTkdfRk9SX0FQUFJPVkFMJywKICAgICAgICAgICAgICAgIHRvdGFsX2JhbGFuY2UgPSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfYWNjb3VudF90b3RhbF9iYWxhbmNlLkNvbm5lY3RlZEFjY291bnRUb3RhbEJhbGFuY2UoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJzEyMDEuMTUnLCAKICAgICAgICAgICAgICAgICAgICBkZW5vbWluYXRlZF9hc3NldF9pZCA9ICdlYTZjM2NiNy0zNTVhLTRlZTMtODJmZi0yNjdjNjk5NzAyMTQnLCAKICAgICAgICAgICAgICAgICAgICBoYXNfZnVsbF9hc3NldF9jb3ZlcmFnZSA9IFRydWUsICksCiAgICAgICAgICAgICAgICBtYW5pZmVzdCA9IGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X21hbmlmZXN0LkNvbm5lY3RlZEFjY291bnRNYW5pZmVzdCgKICAgICAgICAgICAgICAgICAgICBhc3NldF90eXBlcyA9IFtdLCAKICAgICAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXMgPSBbIldJVEhEUkFXQUxTIl0sICksCiAgICAgICAgICAgICAgICBwYXJlbnRfaWQgPSAnYWNjLXBhcmVudC0wMDEnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29ubmVjdGVkQWNjb3VudCgKICAgICAgICAgICAgICAgIGlkID0gJ2FjYy0xMjM0NTYnLAogICAgICAgICAgICAgICAgbmFtZSA9ICdNYWluIFZlbnVlIEFjY291bnQnLAogICAgICAgICAgICAgICAgcHJvdmlkZXJfaWQgPSAnQlJJREdFJywKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdXQUlUSU5HX0ZPUl9BUFBST1ZBTCcsCiAgICAgICAgICAgICAgICB0b3RhbF9iYWxhbmNlID0gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRfdG90YWxfYmFsYW5jZS5Db25uZWN0ZWRBY2NvdW50VG90YWxCYWxhbmNlKAogICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcxMjAxLjE1JywgCiAgICAgICAgICAgICAgICAgICAgZGVub21pbmF0ZWRfYXNzZXRfaWQgPSAnZWE2YzNjYjctMzU1YS00ZWUzLTgyZmYtMjY3YzY5OTcwMjE0JywgCiAgICAgICAgICAgICAgICAgICAgaGFzX2Z1bGxfYXNzZXRfY292ZXJhZ2UgPSBUcnVlLCApLAogICAgICAgICAgICAgICAgbWFuaWZlc3QgPSBmaXJlYmxvY2tzLm1vZGVscy5jb25uZWN0ZWRfYWNjb3VudF9tYW5pZmVzdC5Db25uZWN0ZWRBY2NvdW50TWFuaWZlc3QoCiAgICAgICAgICAgICAgICAgICAgYXNzZXRfdHlwZXMgPSBbXSwgCiAgICAgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzID0gWyJXSVRIRFJBV0FMUyJdLCApLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbm5lY3RlZEFjY291bnQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb25uZWN0ZWRBY2NvdW50IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_connected_account_approval_status.py b/test/test_connected_account_approval_status.py index aa1d6b2f..31dda329 100644 --- a/test/test_connected_account_approval_status.py +++ b/test/test_connected_account_approval_status.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.connected_account_approval_status import ( - ConnectedAccountApprovalStatus, -) - - -class TestConnectedAccountApprovalStatus(unittest.TestCase): - """ConnectedAccountApprovalStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testConnectedAccountApprovalStatus(self): - """Test ConnectedAccountApprovalStatus""" - # inst = ConnectedAccountApprovalStatus() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X2FwcHJvdmFsX3N0YXR1cyBpbXBvcnQgKAogICAgQ29ubmVjdGVkQWNjb3VudEFwcHJvdmFsU3RhdHVzLAopCgoKY2xhc3MgVGVzdENvbm5lY3RlZEFjY291bnRBcHByb3ZhbFN0YXR1cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb25uZWN0ZWRBY2NvdW50QXBwcm92YWxTdGF0dXMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0Q29ubmVjdGVkQWNjb3VudEFwcHJvdmFsU3RhdHVzKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29ubmVjdGVkQWNjb3VudEFwcHJvdmFsU3RhdHVzIiIiCiAgICAgICAgIyBpbnN0ID0gQ29ubmVjdGVkQWNjb3VudEFwcHJvdmFsU3RhdHVzKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_connected_account_asset_type.py b/test/test_connected_account_asset_type.py index f0d964d5..c553448c 100644 --- a/test/test_connected_account_asset_type.py +++ b/test/test_connected_account_asset_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.connected_account_asset_type import ConnectedAccountAssetType - - -class TestConnectedAccountAssetType(unittest.TestCase): - """ConnectedAccountAssetType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testConnectedAccountAssetType(self): - """Test ConnectedAccountAssetType""" - # inst = ConnectedAccountAssetType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X2Fzc2V0X3R5cGUgaW1wb3J0IENvbm5lY3RlZEFjY291bnRBc3NldFR5cGUKCgpjbGFzcyBUZXN0Q29ubmVjdGVkQWNjb3VudEFzc2V0VHlwZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb25uZWN0ZWRBY2NvdW50QXNzZXRUeXBlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdENvbm5lY3RlZEFjY291bnRBc3NldFR5cGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb25uZWN0ZWRBY2NvdW50QXNzZXRUeXBlIiIiCiAgICAgICAgIyBpbnN0ID0gQ29ubmVjdGVkQWNjb3VudEFzc2V0VHlwZSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_connected_account_balances.py b/test/test_connected_account_balances.py index 6fff017c..87b3dc5f 100644 --- a/test/test_connected_account_balances.py +++ b/test/test_connected_account_balances.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.connected_account_balances import ConnectedAccountBalances - - -class TestConnectedAccountBalances(unittest.TestCase): - """ConnectedAccountBalances unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConnectedAccountBalances: - """Test ConnectedAccountBalances - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConnectedAccountBalances` - """ - model = ConnectedAccountBalances() - if include_optional: - return ConnectedAccountBalances( - asset_id = 'BTC', - available_amount = '100.00', - total_amount = '120.00', - locked_amount = '20.00', - credit_amount = '0', - balance_type = 'FUNDING', - balance_name = 'Trader1 Wallet' - ) - else: - return ConnectedAccountBalances( - asset_id = 'BTC', - available_amount = '100.00', - total_amount = '120.00', - balance_type = 'FUNDING', - ) - """ - - def testConnectedAccountBalances(self): - """Test ConnectedAccountBalances""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X2JhbGFuY2VzIGltcG9ydCBDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXMKCgpjbGFzcyBUZXN0Q29ubmVjdGVkQWNjb3VudEJhbGFuY2VzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbm5lY3RlZEFjY291bnRCYWxhbmNlcyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ29ubmVjdGVkQWNjb3VudEJhbGFuY2VzOgogICAgICAgICIiIlRlc3QgQ29ubmVjdGVkQWNjb3VudEJhbGFuY2VzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbm5lY3RlZEFjY291bnRCYWxhbmNlc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENvbm5lY3RlZEFjY291bnRCYWxhbmNlcygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbm5lY3RlZEFjY291bnRCYWxhbmNlcygKICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJ0JUQycsCiAgICAgICAgICAgICAgICBhdmFpbGFibGVfYW1vdW50ID0gJzEwMC4wMCcsCiAgICAgICAgICAgICAgICB0b3RhbF9hbW91bnQgPSAnMTIwLjAwJywKICAgICAgICAgICAgICAgIGxvY2tlZF9hbW91bnQgPSAnMjAuMDAnLAogICAgICAgICAgICAgICAgY3JlZGl0X2Ftb3VudCA9ICcwJywKICAgICAgICAgICAgICAgIGJhbGFuY2VfdHlwZSA9ICdGVU5ESU5HJywKICAgICAgICAgICAgICAgIGJhbGFuY2VfbmFtZSA9ICdUcmFkZXIxIFdhbGxldCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXMoCiAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICdCVEMnLAogICAgICAgICAgICAgICAgYXZhaWxhYmxlX2Ftb3VudCA9ICcxMDAuMDAnLAogICAgICAgICAgICAgICAgdG90YWxfYW1vdW50ID0gJzEyMC4wMCcsCiAgICAgICAgICAgICAgICBiYWxhbmNlX3R5cGUgPSAnRlVORElORycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29ubmVjdGVkQWNjb3VudEJhbGFuY2VzKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29ubmVjdGVkQWNjb3VudEJhbGFuY2VzIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_connected_account_balances_response.py b/test/test_connected_account_balances_response.py index b55783ac..43e7f1be 100644 --- a/test/test_connected_account_balances_response.py +++ b/test/test_connected_account_balances_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.connected_account_balances_response import ( - ConnectedAccountBalancesResponse, -) - - -class TestConnectedAccountBalancesResponse(unittest.TestCase): - """ConnectedAccountBalancesResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConnectedAccountBalancesResponse: - """Test ConnectedAccountBalancesResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConnectedAccountBalancesResponse` - """ - model = ConnectedAccountBalancesResponse() - if include_optional: - return ConnectedAccountBalancesResponse( - data = [{"assetId":"BTC","availableAmount":"100.00","totalAmount":"120.00","balanceType":"FUNDING","balanceName":"Trader1 Wallet"}], - total = 2, - next = 'eyJwYWdlIjoyfQ==' - ) - else: - return ConnectedAccountBalancesResponse( - data = [{"assetId":"BTC","availableAmount":"100.00","totalAmount":"120.00","balanceType":"FUNDING","balanceName":"Trader1 Wallet"}], - ) - """ - - def testConnectedAccountBalancesResponse(self): - """Test ConnectedAccountBalancesResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X2JhbGFuY2VzX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXNSZXNwb25zZSwKKQoKCmNsYXNzIFRlc3RDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXNSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ29ubmVjdGVkQWNjb3VudEJhbGFuY2VzUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXNSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXNSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENvbm5lY3RlZEFjY291bnRCYWxhbmNlc1Jlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ29ubmVjdGVkQWNjb3VudEJhbGFuY2VzUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkYXRhID0gW3siYXNzZXRJZCI6IkJUQyIsImF2YWlsYWJsZUFtb3VudCI6IjEwMC4wMCIsInRvdGFsQW1vdW50IjoiMTIwLjAwIiwiYmFsYW5jZVR5cGUiOiJGVU5ESU5HIiwiYmFsYW5jZU5hbWUiOiJUcmFkZXIxIFdhbGxldCJ9XSwKICAgICAgICAgICAgICAgIHRvdGFsID0gMiwKICAgICAgICAgICAgICAgIG5leHQgPSAnZXlKd1lXZGxJam95ZlE9PScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDb25uZWN0ZWRBY2NvdW50QmFsYW5jZXNSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbeyJhc3NldElkIjoiQlRDIiwiYXZhaWxhYmxlQW1vdW50IjoiMTAwLjAwIiwidG90YWxBbW91bnQiOiIxMjAuMDAiLCJiYWxhbmNlVHlwZSI6IkZVTkRJTkciLCJiYWxhbmNlTmFtZSI6IlRyYWRlcjEgV2FsbGV0In1dLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbm5lY3RlZEFjY291bnRCYWxhbmNlc1Jlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29ubmVjdGVkQWNjb3VudEJhbGFuY2VzUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_connected_account_capability.py b/test/test_connected_account_capability.py index 70cb6b7a..248e9cec 100644 --- a/test/test_connected_account_capability.py +++ b/test/test_connected_account_capability.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.connected_account_capability import ConnectedAccountCapability - - -class TestConnectedAccountCapability(unittest.TestCase): - """ConnectedAccountCapability unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testConnectedAccountCapability(self): - """Test ConnectedAccountCapability""" - # inst = ConnectedAccountCapability() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X2NhcGFiaWxpdHkgaW1wb3J0IENvbm5lY3RlZEFjY291bnRDYXBhYmlsaXR5CgoKY2xhc3MgVGVzdENvbm5lY3RlZEFjY291bnRDYXBhYmlsaXR5KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbm5lY3RlZEFjY291bnRDYXBhYmlsaXR5IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdENvbm5lY3RlZEFjY291bnRDYXBhYmlsaXR5KHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29ubmVjdGVkQWNjb3VudENhcGFiaWxpdHkiIiIKICAgICAgICAjIGluc3QgPSBDb25uZWN0ZWRBY2NvdW50Q2FwYWJpbGl0eSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_connected_account_error_response.py b/test/test_connected_account_error_response.py index 35a7612b..7aa2dbd2 100644 --- a/test/test_connected_account_error_response.py +++ b/test/test_connected_account_error_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.connected_account_error_response import ( - ConnectedAccountErrorResponse, -) - - -class TestConnectedAccountErrorResponse(unittest.TestCase): - """ConnectedAccountErrorResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConnectedAccountErrorResponse: - """Test ConnectedAccountErrorResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConnectedAccountErrorResponse` - """ - model = ConnectedAccountErrorResponse() - if include_optional: - return ConnectedAccountErrorResponse( - error_message = 'Insufficient permissions to rename connected account', - error_code = 'INSUFFICIENT_PERMISSIONS' - ) - else: - return ConnectedAccountErrorResponse( - error_message = 'Insufficient permissions to rename connected account', - error_code = 'INSUFFICIENT_PERMISSIONS', - ) - """ - - def testConnectedAccountErrorResponse(self): - """Test ConnectedAccountErrorResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X2Vycm9yX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBDb25uZWN0ZWRBY2NvdW50RXJyb3JSZXNwb25zZSwKKQoKCmNsYXNzIFRlc3RDb25uZWN0ZWRBY2NvdW50RXJyb3JSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb25uZWN0ZWRBY2NvdW50RXJyb3JSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ29ubmVjdGVkQWNjb3VudEVycm9yUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBDb25uZWN0ZWRBY2NvdW50RXJyb3JSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb25uZWN0ZWRBY2NvdW50RXJyb3JSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENvbm5lY3RlZEFjY291bnRFcnJvclJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ29ubmVjdGVkQWNjb3VudEVycm9yUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBlcnJvcl9tZXNzYWdlID0gJ0luc3VmZmljaWVudCBwZXJtaXNzaW9ucyB0byByZW5hbWUgY29ubmVjdGVkIGFjY291bnQnLAogICAgICAgICAgICAgICAgZXJyb3JfY29kZSA9ICdJTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlMnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29ubmVjdGVkQWNjb3VudEVycm9yUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBlcnJvcl9tZXNzYWdlID0gJ0luc3VmZmljaWVudCBwZXJtaXNzaW9ucyB0byByZW5hbWUgY29ubmVjdGVkIGFjY291bnQnLAogICAgICAgICAgICAgICAgZXJyb3JfY29kZSA9ICdJTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlMnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbm5lY3RlZEFjY291bnRFcnJvclJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29ubmVjdGVkQWNjb3VudEVycm9yUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_connected_account_manifest.py b/test/test_connected_account_manifest.py index b7fad488..67e90f9d 100644 --- a/test/test_connected_account_manifest.py +++ b/test/test_connected_account_manifest.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.connected_account_manifest import ConnectedAccountManifest - - -class TestConnectedAccountManifest(unittest.TestCase): - """ConnectedAccountManifest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConnectedAccountManifest: - """Test ConnectedAccountManifest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConnectedAccountManifest` - """ - model = ConnectedAccountManifest() - if include_optional: - return ConnectedAccountManifest( - asset_types = [], - capabilities = ["WITHDRAWALS"] - ) - else: - return ConnectedAccountManifest( - asset_types = [], - capabilities = ["WITHDRAWALS"], - ) - """ - - def testConnectedAccountManifest(self): - """Test ConnectedAccountManifest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X21hbmlmZXN0IGltcG9ydCBDb25uZWN0ZWRBY2NvdW50TWFuaWZlc3QKCgpjbGFzcyBUZXN0Q29ubmVjdGVkQWNjb3VudE1hbmlmZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbm5lY3RlZEFjY291bnRNYW5pZmVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ29ubmVjdGVkQWNjb3VudE1hbmlmZXN0OgogICAgICAgICIiIlRlc3QgQ29ubmVjdGVkQWNjb3VudE1hbmlmZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbm5lY3RlZEFjY291bnRNYW5pZmVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENvbm5lY3RlZEFjY291bnRNYW5pZmVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbm5lY3RlZEFjY291bnRNYW5pZmVzdCgKICAgICAgICAgICAgICAgIGFzc2V0X3R5cGVzID0gW10sCiAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXMgPSBbIldJVEhEUkFXQUxTIl0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDb25uZWN0ZWRBY2NvdW50TWFuaWZlc3QoCiAgICAgICAgICAgICAgICBhc3NldF90eXBlcyA9IFtdLAogICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzID0gWyJXSVRIRFJBV0FMUyJdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbm5lY3RlZEFjY291bnRNYW5pZmVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IENvbm5lY3RlZEFjY291bnRNYW5pZmVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_connected_account_rate_response.py b/test/test_connected_account_rate_response.py index 90d5fe8c..ac396ffa 100644 --- a/test/test_connected_account_rate_response.py +++ b/test/test_connected_account_rate_response.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.connected_account_rate_response import ( - ConnectedAccountRateResponse, -) - - -class TestConnectedAccountRateResponse(unittest.TestCase): - """ConnectedAccountRateResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConnectedAccountRateResponse: - """Test ConnectedAccountRateResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConnectedAccountRateResponse` - """ - model = ConnectedAccountRateResponse() - if include_optional: - return ConnectedAccountRateResponse( - account_id = 'ea6c3cb7-355a-4ee3-82ff-267c69970210', - base_asset_id = 'BTC', - quote_asset_id = 'USD', - rate = '1.2345' - ) - else: - return ConnectedAccountRateResponse( - account_id = 'ea6c3cb7-355a-4ee3-82ff-267c69970210', - base_asset_id = 'BTC', - quote_asset_id = 'USD', - rate = '1.2345', - ) - """ - - def testConnectedAccountRateResponse(self): - """Test ConnectedAccountRateResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X3JhdGVfcmVzcG9uc2UgaW1wb3J0ICgKICAgIENvbm5lY3RlZEFjY291bnRSYXRlUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0Q29ubmVjdGVkQWNjb3VudFJhdGVSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb25uZWN0ZWRBY2NvdW50UmF0ZVJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb25uZWN0ZWRBY2NvdW50UmF0ZVJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgQ29ubmVjdGVkQWNjb3VudFJhdGVSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb25uZWN0ZWRBY2NvdW50UmF0ZVJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29ubmVjdGVkQWNjb3VudFJhdGVSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbm5lY3RlZEFjY291bnRSYXRlUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJ2VhNmMzY2I3LTM1NWEtNGVlMy04MmZmLTI2N2M2OTk3MDIxMCcsCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0X2lkID0gJ0JUQycsCiAgICAgICAgICAgICAgICBxdW90ZV9hc3NldF9pZCA9ICdVU0QnLAogICAgICAgICAgICAgICAgcmF0ZSA9ICcxLjIzNDUnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29ubmVjdGVkQWNjb3VudFJhdGVSZXNwb25zZSgKICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnZWE2YzNjYjctMzU1YS00ZWUzLTgyZmYtMjY3YzY5OTcwMjEwJywKICAgICAgICAgICAgICAgIGJhc2VfYXNzZXRfaWQgPSAnQlRDJywKICAgICAgICAgICAgICAgIHF1b3RlX2Fzc2V0X2lkID0gJ1VTRCcsCiAgICAgICAgICAgICAgICByYXRlID0gJzEuMjM0NScsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29ubmVjdGVkQWNjb3VudFJhdGVSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IENvbm5lY3RlZEFjY291bnRSYXRlUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_connected_account_total_balance.py b/test/test_connected_account_total_balance.py index d9332b45..bb5d0756 100644 --- a/test/test_connected_account_total_balance.py +++ b/test/test_connected_account_total_balance.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.connected_account_total_balance import ( - ConnectedAccountTotalBalance, -) - - -class TestConnectedAccountTotalBalance(unittest.TestCase): - """ConnectedAccountTotalBalance unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConnectedAccountTotalBalance: - """Test ConnectedAccountTotalBalance - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConnectedAccountTotalBalance` - """ - model = ConnectedAccountTotalBalance() - if include_optional: - return ConnectedAccountTotalBalance( - amount = '1201.15', - denominated_asset_id = 'ea6c3cb7-355a-4ee3-82ff-267c69970214', - has_full_asset_coverage = True - ) - else: - return ConnectedAccountTotalBalance( - amount = '1201.15', - denominated_asset_id = 'ea6c3cb7-355a-4ee3-82ff-267c69970214', - has_full_asset_coverage = True, - ) - """ - - def testConnectedAccountTotalBalance(self): - """Test ConnectedAccountTotalBalance""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X3RvdGFsX2JhbGFuY2UgaW1wb3J0ICgKICAgIENvbm5lY3RlZEFjY291bnRUb3RhbEJhbGFuY2UsCikKCgpjbGFzcyBUZXN0Q29ubmVjdGVkQWNjb3VudFRvdGFsQmFsYW5jZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb25uZWN0ZWRBY2NvdW50VG90YWxCYWxhbmNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb25uZWN0ZWRBY2NvdW50VG90YWxCYWxhbmNlOgogICAgICAgICIiIlRlc3QgQ29ubmVjdGVkQWNjb3VudFRvdGFsQmFsYW5jZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb25uZWN0ZWRBY2NvdW50VG90YWxCYWxhbmNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29ubmVjdGVkQWNjb3VudFRvdGFsQmFsYW5jZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbm5lY3RlZEFjY291bnRUb3RhbEJhbGFuY2UoCiAgICAgICAgICAgICAgICBhbW91bnQgPSAnMTIwMS4xNScsCiAgICAgICAgICAgICAgICBkZW5vbWluYXRlZF9hc3NldF9pZCA9ICdlYTZjM2NiNy0zNTVhLTRlZTMtODJmZi0yNjdjNjk5NzAyMTQnLAogICAgICAgICAgICAgICAgaGFzX2Z1bGxfYXNzZXRfY292ZXJhZ2UgPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29ubmVjdGVkQWNjb3VudFRvdGFsQmFsYW5jZSgKICAgICAgICAgICAgICAgIGFtb3VudCA9ICcxMjAxLjE1JywKICAgICAgICAgICAgICAgIGRlbm9taW5hdGVkX2Fzc2V0X2lkID0gJ2VhNmMzY2I3LTM1NWEtNGVlMy04MmZmLTI2N2M2OTk3MDIxNCcsCiAgICAgICAgICAgICAgICBoYXNfZnVsbF9hc3NldF9jb3ZlcmFnZSA9IFRydWUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29ubmVjdGVkQWNjb3VudFRvdGFsQmFsYW5jZShzZWxmKToKICAgICAgICAiIiJUZXN0IENvbm5lY3RlZEFjY291bnRUb3RhbEJhbGFuY2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_connected_account_trading_pair.py b/test/test_connected_account_trading_pair.py index 5df270aa..c20cfd29 100644 --- a/test/test_connected_account_trading_pair.py +++ b/test/test_connected_account_trading_pair.py @@ -1,65 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.connected_account_trading_pair import ConnectedAccountTradingPair - - -class TestConnectedAccountTradingPair(unittest.TestCase): - """ConnectedAccountTradingPair unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConnectedAccountTradingPair: - """Test ConnectedAccountTradingPair - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConnectedAccountTradingPair` - """ - model = ConnectedAccountTradingPair() - if include_optional: - return ConnectedAccountTradingPair( - id = 'ea6c3cb7-355a-4ee3-82ff-267c69970210', - base_asset_id = 'BTC', - quote_asset_id = 'USD', - supported_types = [ - 'QUOTE' - ] - ) - else: - return ConnectedAccountTradingPair( - id = 'ea6c3cb7-355a-4ee3-82ff-267c69970210', - base_asset_id = 'BTC', - quote_asset_id = 'USD', - supported_types = [ - 'QUOTE' - ], - ) - """ - - def testConnectedAccountTradingPair(self): - """Test ConnectedAccountTradingPair""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X3RyYWRpbmdfcGFpciBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyCgoKY2xhc3MgVGVzdENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXIgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpcjoKICAgICAgICAiIiJUZXN0IENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpcgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXJgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXIoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXIoCiAgICAgICAgICAgICAgICBpZCA9ICdlYTZjM2NiNy0zNTVhLTRlZTMtODJmZi0yNjdjNjk5NzAyMTAnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldF9pZCA9ICdCVEMnLAogICAgICAgICAgICAgICAgcXVvdGVfYXNzZXRfaWQgPSAnVVNEJywKICAgICAgICAgICAgICAgIHN1cHBvcnRlZF90eXBlcyA9IFsKICAgICAgICAgICAgICAgICAgICAnUVVPVEUnCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpcigKICAgICAgICAgICAgICAgIGlkID0gJ2VhNmMzY2I3LTM1NWEtNGVlMy04MmZmLTI2N2M2OTk3MDIxMCcsCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0X2lkID0gJ0JUQycsCiAgICAgICAgICAgICAgICBxdW90ZV9hc3NldF9pZCA9ICdVU0QnLAogICAgICAgICAgICAgICAgc3VwcG9ydGVkX3R5cGVzID0gWwogICAgICAgICAgICAgICAgICAgICdRVU9URScKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpcihzZWxmKToKICAgICAgICAiIiJUZXN0IENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpciIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_connected_account_trading_pair_supported_type.py b/test/test_connected_account_trading_pair_supported_type.py index bf920b66..d624cd1f 100644 --- a/test/test_connected_account_trading_pair_supported_type.py +++ b/test/test_connected_account_trading_pair_supported_type.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.connected_account_trading_pair_supported_type import ( - ConnectedAccountTradingPairSupportedType, -) - - -class TestConnectedAccountTradingPairSupportedType(unittest.TestCase): - """ConnectedAccountTradingPairSupportedType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testConnectedAccountTradingPairSupportedType(self): - """Test ConnectedAccountTradingPairSupportedType""" - # inst = ConnectedAccountTradingPairSupportedType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X3RyYWRpbmdfcGFpcl9zdXBwb3J0ZWRfdHlwZSBpbXBvcnQgKAogICAgQ29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyU3VwcG9ydGVkVHlwZSwKKQoKCmNsYXNzIFRlc3RDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXJTdXBwb3J0ZWRUeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpclN1cHBvcnRlZFR5cGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0Q29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyU3VwcG9ydGVkVHlwZShzZWxmKToKICAgICAgICAiIiJUZXN0IENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpclN1cHBvcnRlZFR5cGUiIiIKICAgICAgICAjIGluc3QgPSBDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXJTdXBwb3J0ZWRUeXBlKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_connected_account_trading_pairs_response.py b/test/test_connected_account_trading_pairs_response.py index f6812515..361d9a60 100644 --- a/test/test_connected_account_trading_pairs_response.py +++ b/test/test_connected_account_trading_pairs_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.connected_account_trading_pairs_response import ( - ConnectedAccountTradingPairsResponse, -) - - -class TestConnectedAccountTradingPairsResponse(unittest.TestCase): - """ConnectedAccountTradingPairsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConnectedAccountTradingPairsResponse: - """Test ConnectedAccountTradingPairsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConnectedAccountTradingPairsResponse` - """ - model = ConnectedAccountTradingPairsResponse() - if include_optional: - return ConnectedAccountTradingPairsResponse( - data = [{"id":"ea6c3cb7-355a-4ee3-82ff-267c69970210","baseAssetId":"BTC","quoteAssetId":"USD","supportedTypes":["MARKET"]},{"id":"ea6c3cb7-355a-4ee3-82ff-267c69970211","baseAssetId":"ETH","quoteAssetId":"USDC","supportedTypes":["QUOTE","MARKET"]}], - total = 2, - next = '' - ) - else: - return ConnectedAccountTradingPairsResponse( - data = [{"id":"ea6c3cb7-355a-4ee3-82ff-267c69970210","baseAssetId":"BTC","quoteAssetId":"USD","supportedTypes":["MARKET"]},{"id":"ea6c3cb7-355a-4ee3-82ff-267c69970211","baseAssetId":"ETH","quoteAssetId":"USDC","supportedTypes":["QUOTE","MARKET"]}], - ) - """ - - def testConnectedAccountTradingPairsResponse(self): - """Test ConnectedAccountTradingPairsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X3RyYWRpbmdfcGFpcnNfcmVzcG9uc2UgaW1wb3J0ICgKICAgIENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpcnNSZXNwb25zZSwKKQoKCmNsYXNzIFRlc3RDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXJzUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyc1Jlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXJzUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBDb25uZWN0ZWRBY2NvdW50VHJhZGluZ1BhaXJzUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyc1Jlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyc1Jlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyc1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgZGF0YSA9IFt7ImlkIjoiZWE2YzNjYjctMzU1YS00ZWUzLTgyZmYtMjY3YzY5OTcwMjEwIiwiYmFzZUFzc2V0SWQiOiJCVEMiLCJxdW90ZUFzc2V0SWQiOiJVU0QiLCJzdXBwb3J0ZWRUeXBlcyI6WyJNQVJLRVQiXX0seyJpZCI6ImVhNmMzY2I3LTM1NWEtNGVlMy04MmZmLTI2N2M2OTk3MDIxMSIsImJhc2VBc3NldElkIjoiRVRIIiwicXVvdGVBc3NldElkIjoiVVNEQyIsInN1cHBvcnRlZFR5cGVzIjpbIlFVT1RFIiwiTUFSS0VUIl19XSwKICAgICAgICAgICAgICAgIHRvdGFsID0gMiwKICAgICAgICAgICAgICAgIG5leHQgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvbm5lY3RlZEFjY291bnRUcmFkaW5nUGFpcnNSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbeyJpZCI6ImVhNmMzY2I3LTM1NWEtNGVlMy04MmZmLTI2N2M2OTk3MDIxMCIsImJhc2VBc3NldElkIjoiQlRDIiwicXVvdGVBc3NldElkIjoiVVNEIiwic3VwcG9ydGVkVHlwZXMiOlsiTUFSS0VUIl19LHsiaWQiOiJlYTZjM2NiNy0zNTVhLTRlZTMtODJmZi0yNjdjNjk5NzAyMTEiLCJiYXNlQXNzZXRJZCI6IkVUSCIsInF1b3RlQXNzZXRJZCI6IlVTREMiLCJzdXBwb3J0ZWRUeXBlcyI6WyJRVU9URSIsIk1BUktFVCJdfV0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyc1Jlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29ubmVjdGVkQWNjb3VudFRyYWRpbmdQYWlyc1Jlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_connected_accounts_beta_api.py b/test/test_connected_accounts_beta_api.py index 214309b0..c47c13a4 100644 --- a/test/test_connected_accounts_beta_api.py +++ b/test/test_connected_accounts_beta_api.py @@ -1,81 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.connected_accounts_beta_api import ConnectedAccountsBetaApi - - -class TestConnectedAccountsBetaApi(unittest.TestCase): - """ConnectedAccountsBetaApi unit test stubs""" - - def setUp(self) -> None: - self.api = ConnectedAccountsBetaApi() - - def tearDown(self) -> None: - pass - - def test_disconnect_connected_account(self) -> None: - """Test case for disconnect_connected_account - - Disconnect connected account - """ - pass - - def test_get_connected_account(self) -> None: - """Test case for get_connected_account - - Get connected account - """ - pass - - def test_get_connected_account_balances(self) -> None: - """Test case for get_connected_account_balances - - Get balances for an account - """ - pass - - def test_get_connected_account_rates(self) -> None: - """Test case for get_connected_account_rates - - Get exchange rates for an account - """ - pass - - def test_get_connected_account_trading_pairs(self) -> None: - """Test case for get_connected_account_trading_pairs - - Get supported trading pairs for an account - """ - pass - - def test_get_connected_accounts(self) -> None: - """Test case for get_connected_accounts - - Get connected accounts - """ - pass - - def test_rename_connected_account(self) -> None: - """Test case for rename_connected_account - - Rename Connected Account - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLmNvbm5lY3RlZF9hY2NvdW50c19iZXRhX2FwaSBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudHNCZXRhQXBpCgoKY2xhc3MgVGVzdENvbm5lY3RlZEFjY291bnRzQmV0YUFwaSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb25uZWN0ZWRBY2NvdW50c0JldGFBcGkgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgc2VsZi5hcGkgPSBDb25uZWN0ZWRBY2NvdW50c0JldGFBcGkoKQoKICAgIGRlZiB0ZWFyRG93bihzZWxmKSAtPiBOb25lOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9kaXNjb25uZWN0X2Nvbm5lY3RlZF9hY2NvdW50KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBkaXNjb25uZWN0X2Nvbm5lY3RlZF9hY2NvdW50CgogICAgICAgIERpc2Nvbm5lY3QgY29ubmVjdGVkIGFjY291bnQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2Nvbm5lY3RlZF9hY2NvdW50KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfY29ubmVjdGVkX2FjY291bnQKCiAgICAgICAgR2V0IGNvbm5lY3RlZCBhY2NvdW50CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9jb25uZWN0ZWRfYWNjb3VudF9iYWxhbmNlcyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2Nvbm5lY3RlZF9hY2NvdW50X2JhbGFuY2VzCgogICAgICAgIEdldCBiYWxhbmNlcyBmb3IgYW4gYWNjb3VudAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfY29ubmVjdGVkX2FjY291bnRfcmF0ZXMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9jb25uZWN0ZWRfYWNjb3VudF9yYXRlcwoKICAgICAgICBHZXQgZXhjaGFuZ2UgcmF0ZXMgZm9yIGFuIGFjY291bnQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2Nvbm5lY3RlZF9hY2NvdW50X3RyYWRpbmdfcGFpcnMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9jb25uZWN0ZWRfYWNjb3VudF90cmFkaW5nX3BhaXJzCgogICAgICAgIEdldCBzdXBwb3J0ZWQgdHJhZGluZyBwYWlycyBmb3IgYW4gYWNjb3VudAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfY29ubmVjdGVkX2FjY291bnRzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfY29ubmVjdGVkX2FjY291bnRzCgogICAgICAgIEdldCBjb25uZWN0ZWQgYWNjb3VudHMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfcmVuYW1lX2Nvbm5lY3RlZF9hY2NvdW50KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciByZW5hbWVfY29ubmVjdGVkX2FjY291bnQKCiAgICAgICAgUmVuYW1lIENvbm5lY3RlZCBBY2NvdW50CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_connected_accounts_response.py b/test/test_connected_accounts_response.py index 594fd9be..ce5a0da3 100644 --- a/test/test_connected_accounts_response.py +++ b/test/test_connected_accounts_response.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.connected_accounts_response import ConnectedAccountsResponse - - -class TestConnectedAccountsResponse(unittest.TestCase): - """ConnectedAccountsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConnectedAccountsResponse: - """Test ConnectedAccountsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConnectedAccountsResponse` - """ - model = ConnectedAccountsResponse() - if include_optional: - return ConnectedAccountsResponse( - data = [{"id":"acc-123456","name":"Main Venue Account","providerId":"BRIDGE","status":"APPROVED","totalBalance":{"amount":"1201.15","denominatedAssetId":"ea6c3cb7-355a-4ee3-82ff-267c69970214","hasFullAssetCoverage":true},"manifest":{"assetTypes":[],"capabilities":["DEPOSITS","WITHDRAWALS"]}},{"id":"acc-654321","name":"Secondary Account","providerId":"BRIDGE","status":"WAITING_FOR_APPROVAL","totalBalance":{"amount":"0.00","denominatedAssetId":"ea6c3cb7-355a-4ee3-82ff-267c69970214","hasFullAssetCoverage":false},"manifest":{"assetTypes":[],"capabilities":["WITHDRAWALS"]}}], - total = 2, - next = 'eyJwYWdlIjoyfQ==' - ) - else: - return ConnectedAccountsResponse( - data = [{"id":"acc-123456","name":"Main Venue Account","providerId":"BRIDGE","status":"APPROVED","totalBalance":{"amount":"1201.15","denominatedAssetId":"ea6c3cb7-355a-4ee3-82ff-267c69970214","hasFullAssetCoverage":true},"manifest":{"assetTypes":[],"capabilities":["DEPOSITS","WITHDRAWALS"]}},{"id":"acc-654321","name":"Secondary Account","providerId":"BRIDGE","status":"WAITING_FOR_APPROVAL","totalBalance":{"amount":"0.00","denominatedAssetId":"ea6c3cb7-355a-4ee3-82ff-267c69970214","hasFullAssetCoverage":false},"manifest":{"assetTypes":[],"capabilities":["WITHDRAWALS"]}}], - ) - """ - - def testConnectedAccountsResponse(self): - """Test ConnectedAccountsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50c19yZXNwb25zZSBpbXBvcnQgQ29ubmVjdGVkQWNjb3VudHNSZXNwb25zZQoKCmNsYXNzIFRlc3RDb25uZWN0ZWRBY2NvdW50c1Jlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbm5lY3RlZEFjY291bnRzUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbm5lY3RlZEFjY291bnRzUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBDb25uZWN0ZWRBY2NvdW50c1Jlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbm5lY3RlZEFjY291bnRzUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb25uZWN0ZWRBY2NvdW50c1Jlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ29ubmVjdGVkQWNjb3VudHNSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbeyJpZCI6ImFjYy0xMjM0NTYiLCJuYW1lIjoiTWFpbiBWZW51ZSBBY2NvdW50IiwicHJvdmlkZXJJZCI6IkJSSURHRSIsInN0YXR1cyI6IkFQUFJPVkVEIiwidG90YWxCYWxhbmNlIjp7ImFtb3VudCI6IjEyMDEuMTUiLCJkZW5vbWluYXRlZEFzc2V0SWQiOiJlYTZjM2NiNy0zNTVhLTRlZTMtODJmZi0yNjdjNjk5NzAyMTQiLCJoYXNGdWxsQXNzZXRDb3ZlcmFnZSI6dHJ1ZX0sIm1hbmlmZXN0Ijp7ImFzc2V0VHlwZXMiOltdLCJjYXBhYmlsaXRpZXMiOlsiREVQT1NJVFMiLCJXSVRIRFJBV0FMUyJdfX0seyJpZCI6ImFjYy02NTQzMjEiLCJuYW1lIjoiU2Vjb25kYXJ5IEFjY291bnQiLCJwcm92aWRlcklkIjoiQlJJREdFIiwic3RhdHVzIjoiV0FJVElOR19GT1JfQVBQUk9WQUwiLCJ0b3RhbEJhbGFuY2UiOnsiYW1vdW50IjoiMC4wMCIsImRlbm9taW5hdGVkQXNzZXRJZCI6ImVhNmMzY2I3LTM1NWEtNGVlMy04MmZmLTI2N2M2OTk3MDIxNCIsImhhc0Z1bGxBc3NldENvdmVyYWdlIjpmYWxzZX0sIm1hbmlmZXN0Ijp7ImFzc2V0VHlwZXMiOltdLCJjYXBhYmlsaXRpZXMiOlsiV0lUSERSQVdBTFMiXX19XSwKICAgICAgICAgICAgICAgIHRvdGFsID0gMiwKICAgICAgICAgICAgICAgIG5leHQgPSAnZXlKd1lXZGxJam95ZlE9PScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDb25uZWN0ZWRBY2NvdW50c1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgZGF0YSA9IFt7ImlkIjoiYWNjLTEyMzQ1NiIsIm5hbWUiOiJNYWluIFZlbnVlIEFjY291bnQiLCJwcm92aWRlcklkIjoiQlJJREdFIiwic3RhdHVzIjoiQVBQUk9WRUQiLCJ0b3RhbEJhbGFuY2UiOnsiYW1vdW50IjoiMTIwMS4xNSIsImRlbm9taW5hdGVkQXNzZXRJZCI6ImVhNmMzY2I3LTM1NWEtNGVlMy04MmZmLTI2N2M2OTk3MDIxNCIsImhhc0Z1bGxBc3NldENvdmVyYWdlIjp0cnVlfSwibWFuaWZlc3QiOnsiYXNzZXRUeXBlcyI6W10sImNhcGFiaWxpdGllcyI6WyJERVBPU0lUUyIsIldJVEhEUkFXQUxTIl19fSx7ImlkIjoiYWNjLTY1NDMyMSIsIm5hbWUiOiJTZWNvbmRhcnkgQWNjb3VudCIsInByb3ZpZGVySWQiOiJCUklER0UiLCJzdGF0dXMiOiJXQUlUSU5HX0ZPUl9BUFBST1ZBTCIsInRvdGFsQmFsYW5jZSI6eyJhbW91bnQiOiIwLjAwIiwiZGVub21pbmF0ZWRBc3NldElkIjoiZWE2YzNjYjctMzU1YS00ZWUzLTgyZmYtMjY3YzY5OTcwMjE0IiwiaGFzRnVsbEFzc2V0Q292ZXJhZ2UiOmZhbHNlfSwibWFuaWZlc3QiOnsiYXNzZXRUeXBlcyI6W10sImNhcGFiaWxpdGllcyI6WyJXSVRIRFJBV0FMUyJdfX1dLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbm5lY3RlZEFjY291bnRzUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb25uZWN0ZWRBY2NvdW50c1Jlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_connected_single_account.py b/test/test_connected_single_account.py index a142fa8b..b191f723 100644 --- a/test/test_connected_single_account.py +++ b/test/test_connected_single_account.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.connected_single_account import ConnectedSingleAccount - - -class TestConnectedSingleAccount(unittest.TestCase): - """ConnectedSingleAccount unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConnectedSingleAccount: - """Test ConnectedSingleAccount - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConnectedSingleAccount` - """ - model = ConnectedSingleAccount() - if include_optional: - return ConnectedSingleAccount( - sub_accounts_ids = ["acc-sub-001","acc-sub-002"] - ) - else: - return ConnectedSingleAccount( - ) - """ - - def testConnectedSingleAccount(self): - """Test ConnectedSingleAccount""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9zaW5nbGVfYWNjb3VudCBpbXBvcnQgQ29ubmVjdGVkU2luZ2xlQWNjb3VudAoKCmNsYXNzIFRlc3RDb25uZWN0ZWRTaW5nbGVBY2NvdW50KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbm5lY3RlZFNpbmdsZUFjY291bnQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbm5lY3RlZFNpbmdsZUFjY291bnQ6CiAgICAgICAgIiIiVGVzdCBDb25uZWN0ZWRTaW5nbGVBY2NvdW50CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbm5lY3RlZFNpbmdsZUFjY291bnRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb25uZWN0ZWRTaW5nbGVBY2NvdW50KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ29ubmVjdGVkU2luZ2xlQWNjb3VudCgKICAgICAgICAgICAgICAgIHN1Yl9hY2NvdW50c19pZHMgPSBbImFjYy1zdWItMDAxIiwiYWNjLXN1Yi0wMDIiXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvbm5lY3RlZFNpbmdsZUFjY291bnQoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29ubmVjdGVkU2luZ2xlQWNjb3VudChzZWxmKToKICAgICAgICAiIiJUZXN0IENvbm5lY3RlZFNpbmdsZUFjY291bnQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_connected_single_account_response.py b/test/test_connected_single_account_response.py index a03de8fc..ea5dda21 100644 --- a/test/test_connected_single_account_response.py +++ b/test/test_connected_single_account_response.py @@ -1,79 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.connected_single_account_response import ( - ConnectedSingleAccountResponse, -) - - -class TestConnectedSingleAccountResponse(unittest.TestCase): - """ConnectedSingleAccountResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConnectedSingleAccountResponse: - """Test ConnectedSingleAccountResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConnectedSingleAccountResponse` - """ - model = ConnectedSingleAccountResponse() - if include_optional: - return ConnectedSingleAccountResponse( - id = 'acc-123456', - name = 'Main Venue Account', - provider_id = 'BRIDGE', - status = 'WAITING_FOR_APPROVAL', - total_balance = fireblocks.models.connected_account_total_balance.ConnectedAccountTotalBalance( - amount = '1201.15', - denominated_asset_id = 'ea6c3cb7-355a-4ee3-82ff-267c69970214', - has_full_asset_coverage = True, ), - manifest = fireblocks.models.connected_account_manifest.ConnectedAccountManifest( - asset_types = [], - capabilities = ["WITHDRAWALS"], ), - parent_id = 'acc-parent-001', - sub_accounts_ids = [acc-sub-001, acc-sub-002] - ) - else: - return ConnectedSingleAccountResponse( - id = 'acc-123456', - name = 'Main Venue Account', - provider_id = 'BRIDGE', - status = 'WAITING_FOR_APPROVAL', - total_balance = fireblocks.models.connected_account_total_balance.ConnectedAccountTotalBalance( - amount = '1201.15', - denominated_asset_id = 'ea6c3cb7-355a-4ee3-82ff-267c69970214', - has_full_asset_coverage = True, ), - manifest = fireblocks.models.connected_account_manifest.ConnectedAccountManifest( - asset_types = [], - capabilities = ["WITHDRAWALS"], ), - ) - """ - - def testConnectedSingleAccountResponse(self): - """Test ConnectedSingleAccountResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9zaW5nbGVfYWNjb3VudF9yZXNwb25zZSBpbXBvcnQgKAogICAgQ29ubmVjdGVkU2luZ2xlQWNjb3VudFJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdENvbm5lY3RlZFNpbmdsZUFjY291bnRSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb25uZWN0ZWRTaW5nbGVBY2NvdW50UmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbm5lY3RlZFNpbmdsZUFjY291bnRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IENvbm5lY3RlZFNpbmdsZUFjY291bnRSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb25uZWN0ZWRTaW5nbGVBY2NvdW50UmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb25uZWN0ZWRTaW5nbGVBY2NvdW50UmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDb25uZWN0ZWRTaW5nbGVBY2NvdW50UmVzcG9uc2UoCiAgICAgICAgICAgICAgICBpZCA9ICdhY2MtMTIzNDU2JywKICAgICAgICAgICAgICAgIG5hbWUgPSAnTWFpbiBWZW51ZSBBY2NvdW50JywKICAgICAgICAgICAgICAgIHByb3ZpZGVyX2lkID0gJ0JSSURHRScsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnV0FJVElOR19GT1JfQVBQUk9WQUwnLAogICAgICAgICAgICAgICAgdG90YWxfYmFsYW5jZSA9IGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X3RvdGFsX2JhbGFuY2UuQ29ubmVjdGVkQWNjb3VudFRvdGFsQmFsYW5jZSgKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnMTIwMS4xNScsIAogICAgICAgICAgICAgICAgICAgIGRlbm9taW5hdGVkX2Fzc2V0X2lkID0gJ2VhNmMzY2I3LTM1NWEtNGVlMy04MmZmLTI2N2M2OTk3MDIxNCcsIAogICAgICAgICAgICAgICAgICAgIGhhc19mdWxsX2Fzc2V0X2NvdmVyYWdlID0gVHJ1ZSwgKSwKICAgICAgICAgICAgICAgIG1hbmlmZXN0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRfbWFuaWZlc3QuQ29ubmVjdGVkQWNjb3VudE1hbmlmZXN0KAogICAgICAgICAgICAgICAgICAgIGFzc2V0X3R5cGVzID0gW10sIAogICAgICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllcyA9IFsiV0lUSERSQVdBTFMiXSwgKSwKICAgICAgICAgICAgICAgIHBhcmVudF9pZCA9ICdhY2MtcGFyZW50LTAwMScsCiAgICAgICAgICAgICAgICBzdWJfYWNjb3VudHNfaWRzID0gW2FjYy1zdWItMDAxLCBhY2Mtc3ViLTAwMl0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDb25uZWN0ZWRTaW5nbGVBY2NvdW50UmVzcG9uc2UoCiAgICAgICAgICAgICAgICBpZCA9ICdhY2MtMTIzNDU2JywKICAgICAgICAgICAgICAgIG5hbWUgPSAnTWFpbiBWZW51ZSBBY2NvdW50JywKICAgICAgICAgICAgICAgIHByb3ZpZGVyX2lkID0gJ0JSSURHRScsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnV0FJVElOR19GT1JfQVBQUk9WQUwnLAogICAgICAgICAgICAgICAgdG90YWxfYmFsYW5jZSA9IGZpcmVibG9ja3MubW9kZWxzLmNvbm5lY3RlZF9hY2NvdW50X3RvdGFsX2JhbGFuY2UuQ29ubmVjdGVkQWNjb3VudFRvdGFsQmFsYW5jZSgKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnMTIwMS4xNScsIAogICAgICAgICAgICAgICAgICAgIGRlbm9taW5hdGVkX2Fzc2V0X2lkID0gJ2VhNmMzY2I3LTM1NWEtNGVlMy04MmZmLTI2N2M2OTk3MDIxNCcsIAogICAgICAgICAgICAgICAgICAgIGhhc19mdWxsX2Fzc2V0X2NvdmVyYWdlID0gVHJ1ZSwgKSwKICAgICAgICAgICAgICAgIG1hbmlmZXN0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuY29ubmVjdGVkX2FjY291bnRfbWFuaWZlc3QuQ29ubmVjdGVkQWNjb3VudE1hbmlmZXN0KAogICAgICAgICAgICAgICAgICAgIGFzc2V0X3R5cGVzID0gW10sIAogICAgICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllcyA9IFsiV0lUSERSQVdBTFMiXSwgKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDb25uZWN0ZWRTaW5nbGVBY2NvdW50UmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb25uZWN0ZWRTaW5nbGVBY2NvdW50UmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_console_user.py b/test/test_console_user.py index 4b7b31d3..49ebdfb6 100644 --- a/test/test_console_user.py +++ b/test/test_console_user.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.console_user import ConsoleUser - - -class TestConsoleUser(unittest.TestCase): - """ConsoleUser unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConsoleUser: - """Test ConsoleUser - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConsoleUser` - """ - model = ConsoleUser() - if include_optional: - return ConsoleUser( - id = '', - first_name = '', - last_name = '', - email = '', - role = 'OWNER', - enabled = True, - status = 'PENDING_ACTIVATION', - user_type = 'API' - ) - else: - return ConsoleUser( - ) - """ - - def testConsoleUser(self): - """Test ConsoleUser""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnNvbGVfdXNlciBpbXBvcnQgQ29uc29sZVVzZXIKCgpjbGFzcyBUZXN0Q29uc29sZVVzZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ29uc29sZVVzZXIgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbnNvbGVVc2VyOgogICAgICAgICIiIlRlc3QgQ29uc29sZVVzZXIKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ29uc29sZVVzZXJgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb25zb2xlVXNlcigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbnNvbGVVc2VyKAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIGZpcnN0X25hbWUgPSAnJywKICAgICAgICAgICAgICAgIGxhc3RfbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgZW1haWwgPSAnJywKICAgICAgICAgICAgICAgIHJvbGUgPSAnT1dORVInLAogICAgICAgICAgICAgICAgZW5hYmxlZCA9IFRydWUsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnUEVORElOR19BQ1RJVkFUSU9OJywKICAgICAgICAgICAgICAgIHVzZXJfdHlwZSA9ICdBUEknCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29uc29sZVVzZXIoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29uc29sZVVzZXIoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb25zb2xlVXNlciIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_console_user_api.py b/test/test_console_user_api.py index f5c2f0b7..2f0392a1 100644 --- a/test/test_console_user_api.py +++ b/test/test_console_user_api.py @@ -1,46 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.console_user_api import ConsoleUserApi - - -class TestConsoleUserApi(unittest.TestCase): - """ConsoleUserApi unit test stubs""" - - def setUp(self) -> None: - self.api = ConsoleUserApi() - - def tearDown(self) -> None: - pass - - def test_create_console_user(self) -> None: - """Test case for create_console_user - - Create console user - """ - pass - - def test_get_console_users(self) -> None: - """Test case for get_console_users - - Get console users - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLmNvbnNvbGVfdXNlcl9hcGkgaW1wb3J0IENvbnNvbGVVc2VyQXBpCgoKY2xhc3MgVGVzdENvbnNvbGVVc2VyQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbnNvbGVVc2VyQXBpIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKSAtPiBOb25lOgogICAgICAgIHNlbGYuYXBpID0gQ29uc29sZVVzZXJBcGkoKQoKICAgIGRlZiB0ZWFyRG93bihzZWxmKSAtPiBOb25lOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9jcmVhdGVfY29uc29sZV91c2VyKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBjcmVhdGVfY29uc29sZV91c2VyCgogICAgICAgIENyZWF0ZSBjb25zb2xlIHVzZXIKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2NvbnNvbGVfdXNlcnMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9jb25zb2xlX3VzZXJzCgogICAgICAgIEdldCBjb25zb2xlIHVzZXJzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_contract_abi_response_dto.py b/test/test_contract_abi_response_dto.py index 110b4c0e..99a7ec87 100644 --- a/test/test_contract_abi_response_dto.py +++ b/test/test_contract_abi_response_dto.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.contract_abi_response_dto import ContractAbiResponseDto - - -class TestContractAbiResponseDto(unittest.TestCase): - """ContractAbiResponseDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ContractAbiResponseDto: - """Test ContractAbiResponseDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ContractAbiResponseDto` - """ - model = ContractAbiResponseDto() - if include_optional: - return ContractAbiResponseDto( - abi = [{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"}], - implementation_abi = [{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"}] - ) - else: - return ContractAbiResponseDto( - abi = [{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"}], - ) - """ - - def testContractAbiResponseDto(self): - """Test ContractAbiResponseDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2FiaV9yZXNwb25zZV9kdG8gaW1wb3J0IENvbnRyYWN0QWJpUmVzcG9uc2VEdG8KCgpjbGFzcyBUZXN0Q29udHJhY3RBYmlSZXNwb25zZUR0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb250cmFjdEFiaVJlc3BvbnNlRHRvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb250cmFjdEFiaVJlc3BvbnNlRHRvOgogICAgICAgICIiIlRlc3QgQ29udHJhY3RBYmlSZXNwb25zZUR0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb250cmFjdEFiaVJlc3BvbnNlRHRvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29udHJhY3RBYmlSZXNwb25zZUR0bygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbnRyYWN0QWJpUmVzcG9uc2VEdG8oCiAgICAgICAgICAgICAgICBhYmkgPSBbeyJpbnB1dHMiOlt7ImludGVybmFsVHlwZSI6ImFkZHJlc3MiLCJuYW1lIjoiaW1wbGVtZW50YXRpb24iLCJ0eXBlIjoiYWRkcmVzcyJ9LHsiaW50ZXJuYWxUeXBlIjoiYnl0ZXMiLCJuYW1lIjoiX2RhdGEiLCJ0eXBlIjoiYnl0ZXMifV0sInN0YXRlTXV0YWJpbGl0eSI6Im5vbnBheWFibGUiLCJ0eXBlIjoiY29uc3RydWN0b3IifV0sCiAgICAgICAgICAgICAgICBpbXBsZW1lbnRhdGlvbl9hYmkgPSBbeyJpbnB1dHMiOlt7ImludGVybmFsVHlwZSI6ImFkZHJlc3MiLCJuYW1lIjoidG8iLCJ0eXBlIjoiYWRkcmVzcyJ9LHsiaW50ZXJuYWxUeXBlIjoidWludDI1NiIsIm5hbWUiOiJhbW91bnQiLCJ0eXBlIjoidWludDI1NiJ9XSwic3RhdGVNdXRhYmlsaXR5Ijoibm9ucGF5YWJsZSIsInR5cGUiOiJmdW5jdGlvbiIsIm5hbWUiOiJtaW50In1dCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29udHJhY3RBYmlSZXNwb25zZUR0bygKICAgICAgICAgICAgICAgIGFiaSA9IFt7ImlucHV0cyI6W3siaW50ZXJuYWxUeXBlIjoiYWRkcmVzcyIsIm5hbWUiOiJpbXBsZW1lbnRhdGlvbiIsInR5cGUiOiJhZGRyZXNzIn0seyJpbnRlcm5hbFR5cGUiOiJieXRlcyIsIm5hbWUiOiJfZGF0YSIsInR5cGUiOiJieXRlcyJ9XSwic3RhdGVNdXRhYmlsaXR5Ijoibm9ucGF5YWJsZSIsInR5cGUiOiJjb25zdHJ1Y3RvciJ9XSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDb250cmFjdEFiaVJlc3BvbnNlRHRvKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29udHJhY3RBYmlSZXNwb25zZUR0byIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_contract_abi_response_dto_abi_inner.py b/test/test_contract_abi_response_dto_abi_inner.py index 7b956902..59cf0083 100644 --- a/test/test_contract_abi_response_dto_abi_inner.py +++ b/test/test_contract_abi_response_dto_abi_inner.py @@ -1,115 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.contract_abi_response_dto_abi_inner import ( - ContractAbiResponseDtoAbiInner, -) - - -class TestContractAbiResponseDtoAbiInner(unittest.TestCase): - """ContractAbiResponseDtoAbiInner unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ContractAbiResponseDtoAbiInner: - """Test ContractAbiResponseDtoAbiInner - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ContractAbiResponseDtoAbiInner` - """ - model = ContractAbiResponseDtoAbiInner() - if include_optional: - return ContractAbiResponseDtoAbiInner( - name = 'transfer', - state_mutability = 'pure', - type = 'constructor', - inputs = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], ) - ], - outputs = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], ) - ], - description = '', - discriminator = [13], - accounts = [ - fireblocks.models.sol_account.SOLAccount( - name = 'mint', - signer = False, - writable = True, - address = '4PVcDXAkAgQkVx4puiSXdZ5H8BrTqUzstJBKKWFy3XsH', ) - ], - args = [ - fireblocks.models.sol_parameter.SolParameter( - name = 'mint', - type = 'u8', ) - ] - ) - else: - return ContractAbiResponseDtoAbiInner( - name = 'transfer', - type = 'constructor', - discriminator = [13], - accounts = [ - fireblocks.models.sol_account.SOLAccount( - name = 'mint', - signer = False, - writable = True, - address = '4PVcDXAkAgQkVx4puiSXdZ5H8BrTqUzstJBKKWFy3XsH', ) - ], - args = [ - fireblocks.models.sol_parameter.SolParameter( - name = 'mint', - type = 'u8', ) - ], - ) - """ - - def testContractAbiResponseDtoAbiInner(self): - """Test ContractAbiResponseDtoAbiInner""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2FiaV9yZXNwb25zZV9kdG9fYWJpX2lubmVyIGltcG9ydCAoCiAgICBDb250cmFjdEFiaVJlc3BvbnNlRHRvQWJpSW5uZXIsCikKCgpjbGFzcyBUZXN0Q29udHJhY3RBYmlSZXNwb25zZUR0b0FiaUlubmVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbnRyYWN0QWJpUmVzcG9uc2VEdG9BYmlJbm5lciB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ29udHJhY3RBYmlSZXNwb25zZUR0b0FiaUlubmVyOgogICAgICAgICIiIlRlc3QgQ29udHJhY3RBYmlSZXNwb25zZUR0b0FiaUlubmVyCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbnRyYWN0QWJpUmVzcG9uc2VEdG9BYmlJbm5lcmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENvbnRyYWN0QWJpUmVzcG9uc2VEdG9BYmlJbm5lcigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbnRyYWN0QWJpUmVzcG9uc2VEdG9BYmlJbm5lcigKICAgICAgICAgICAgICAgIG5hbWUgPSAndHJhbnNmZXInLAogICAgICAgICAgICAgICAgc3RhdGVfbXV0YWJpbGl0eSA9ICdwdXJlJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnY29uc3RydWN0b3InLAogICAgICAgICAgICAgICAgaW5wdXRzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlci5QYXJhbWV0ZXIoCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXIuUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGUgbmFtZSBvZiB0aGUgdG9rZW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBvdXRwdXRzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlci5QYXJhbWV0ZXIoCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXIuUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGUgbmFtZSBvZiB0aGUgdG9rZW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICcnLAogICAgICAgICAgICAgICAgZGlzY3JpbWluYXRvciA9IFsxM10sCiAgICAgICAgICAgICAgICBhY2NvdW50cyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5zb2xfYWNjb3VudC5TT0xBY2NvdW50KAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ21pbnQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVyID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZSA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzRQVmNEWEFrQWdRa1Z4NHB1aVNYZFo1SDhCclRxVXpzdEpCS0tXRnkzWHNIJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBhcmdzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnNvbF9wYXJhbWV0ZXIuU29sUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ21pbnQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICd1OCcsICkKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29udHJhY3RBYmlSZXNwb25zZUR0b0FiaUlubmVyKAogICAgICAgICAgICAgICAgbmFtZSA9ICd0cmFuc2ZlcicsCiAgICAgICAgICAgICAgICB0eXBlID0gJ2NvbnN0cnVjdG9yJywKICAgICAgICAgICAgICAgIGRpc2NyaW1pbmF0b3IgPSBbMTNdLAogICAgICAgICAgICAgICAgYWNjb3VudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuc29sX2FjY291bnQuU09MQWNjb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdtaW50JywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lciA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGFibGUgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9ICc0UFZjRFhBa0FnUWtWeDRwdWlTWGRaNUg4QnJUcVV6c3RKQktLV0Z5M1hzSCcsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5zb2xfcGFyYW1ldGVyLlNvbFBhcmFtZXRlcigKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdtaW50JywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAndTgnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDb250cmFjdEFiaVJlc3BvbnNlRHRvQWJpSW5uZXIoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb250cmFjdEFiaVJlc3BvbnNlRHRvQWJpSW5uZXIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_contract_address_response.py b/test/test_contract_address_response.py index d6dae445..541d08bf 100644 --- a/test/test_contract_address_response.py +++ b/test/test_contract_address_response.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.contract_address_response import ContractAddressResponse - - -class TestContractAddressResponse(unittest.TestCase): - """ContractAddressResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ContractAddressResponse: - """Test ContractAddressResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ContractAddressResponse` - """ - model = ContractAddressResponse() - if include_optional: - return ContractAddressResponse( - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66' - ) - else: - return ContractAddressResponse( - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66', - ) - """ - - def testContractAddressResponse(self): - """Test ContractAddressResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2FkZHJlc3NfcmVzcG9uc2UgaW1wb3J0IENvbnRyYWN0QWRkcmVzc1Jlc3BvbnNlCgoKY2xhc3MgVGVzdENvbnRyYWN0QWRkcmVzc1Jlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbnRyYWN0QWRkcmVzc1Jlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb250cmFjdEFkZHJlc3NSZXNwb25zZToKICAgICAgICAiIiJUZXN0IENvbnRyYWN0QWRkcmVzc1Jlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbnRyYWN0QWRkcmVzc1Jlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29udHJhY3RBZGRyZXNzUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDb250cmFjdEFkZHJlc3NSZXNwb25zZSgKICAgICAgICAgICAgICAgIGNvbnRyYWN0X2FkZHJlc3MgPSAnMHhDMmM0ZTFEYjQxRjBiQjk3OTk2RDBlRDA1NDJEMjE3MGQxNDZGQjY2JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvbnRyYWN0QWRkcmVzc1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgY29udHJhY3RfYWRkcmVzcyA9ICcweEMyYzRlMURiNDFGMGJCOTc5OTZEMGVEMDU0MkQyMTcwZDE0NkZCNjYnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbnRyYWN0QWRkcmVzc1Jlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29udHJhY3RBZGRyZXNzUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_contract_attributes.py b/test/test_contract_attributes.py index 70da96d5..ab19773e 100644 --- a/test/test_contract_attributes.py +++ b/test/test_contract_attributes.py @@ -1,73 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.contract_attributes import ContractAttributes - - -class TestContractAttributes(unittest.TestCase): - """ContractAttributes unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ContractAttributes: - """Test ContractAttributes - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ContractAttributes` - """ - model = ContractAttributes() - if include_optional: - return ContractAttributes( - use_cases = [ - '' - ], - standards = [ - '' - ], - auditor = fireblocks.models.auditor_data.AuditorData( - name = '', - image_url = '', - link = '', ) - ) - else: - return ContractAttributes( - use_cases = [ - '' - ], - standards = [ - '' - ], - auditor = fireblocks.models.auditor_data.AuditorData( - name = '', - image_url = '', - link = '', ), - ) - """ - - def testContractAttributes(self): - """Test ContractAttributes""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2F0dHJpYnV0ZXMgaW1wb3J0IENvbnRyYWN0QXR0cmlidXRlcwoKCmNsYXNzIFRlc3RDb250cmFjdEF0dHJpYnV0ZXModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ29udHJhY3RBdHRyaWJ1dGVzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb250cmFjdEF0dHJpYnV0ZXM6CiAgICAgICAgIiIiVGVzdCBDb250cmFjdEF0dHJpYnV0ZXMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ29udHJhY3RBdHRyaWJ1dGVzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29udHJhY3RBdHRyaWJ1dGVzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ29udHJhY3RBdHRyaWJ1dGVzKAogICAgICAgICAgICAgICAgdXNlX2Nhc2VzID0gWwogICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHN0YW5kYXJkcyA9IFsKICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBhdWRpdG9yID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXVkaXRvcl9kYXRhLkF1ZGl0b3JEYXRhKAogICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgaW1hZ2VfdXJsID0gJycsIAogICAgICAgICAgICAgICAgICAgIGxpbmsgPSAnJywgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvbnRyYWN0QXR0cmlidXRlcygKICAgICAgICAgICAgICAgIHVzZV9jYXNlcyA9IFsKICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBzdGFuZGFyZHMgPSBbCiAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgYXVkaXRvciA9IGZpcmVibG9ja3MubW9kZWxzLmF1ZGl0b3JfZGF0YS5BdWRpdG9yRGF0YSgKICAgICAgICAgICAgICAgICAgICBuYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgIGltYWdlX3VybCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBsaW5rID0gJycsICksCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29udHJhY3RBdHRyaWJ1dGVzKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29udHJhY3RBdHRyaWJ1dGVzIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_contract_data_decode_data_type.py b/test/test_contract_data_decode_data_type.py index b35db1b5..a50507e5 100644 --- a/test/test_contract_data_decode_data_type.py +++ b/test/test_contract_data_decode_data_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.contract_data_decode_data_type import ContractDataDecodeDataType - - -class TestContractDataDecodeDataType(unittest.TestCase): - """ContractDataDecodeDataType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testContractDataDecodeDataType(self): - """Test ContractDataDecodeDataType""" - # inst = ContractDataDecodeDataType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RhdGFfZGVjb2RlX2RhdGFfdHlwZSBpbXBvcnQgQ29udHJhY3REYXRhRGVjb2RlRGF0YVR5cGUKCgpjbGFzcyBUZXN0Q29udHJhY3REYXRhRGVjb2RlRGF0YVR5cGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ29udHJhY3REYXRhRGVjb2RlRGF0YVR5cGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0Q29udHJhY3REYXRhRGVjb2RlRGF0YVR5cGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb250cmFjdERhdGFEZWNvZGVEYXRhVHlwZSIiIgogICAgICAgICMgaW5zdCA9IENvbnRyYWN0RGF0YURlY29kZURhdGFUeXBlKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_contract_data_decode_error.py b/test/test_contract_data_decode_error.py index 1af86e43..a782fa65 100644 --- a/test/test_contract_data_decode_error.py +++ b/test/test_contract_data_decode_error.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.contract_data_decode_error import ContractDataDecodeError - - -class TestContractDataDecodeError(unittest.TestCase): - """ContractDataDecodeError unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ContractDataDecodeError: - """Test ContractDataDecodeError - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ContractDataDecodeError` - """ - model = ContractDataDecodeError() - if include_optional: - return ContractDataDecodeError( - message = 'Error decoding data: Invalid ABI', - code = 400 - ) - else: - return ContractDataDecodeError( - message = 'Error decoding data: Invalid ABI', - code = 400, - ) - """ - - def testContractDataDecodeError(self): - """Test ContractDataDecodeError""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RhdGFfZGVjb2RlX2Vycm9yIGltcG9ydCBDb250cmFjdERhdGFEZWNvZGVFcnJvcgoKCmNsYXNzIFRlc3RDb250cmFjdERhdGFEZWNvZGVFcnJvcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb250cmFjdERhdGFEZWNvZGVFcnJvciB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ29udHJhY3REYXRhRGVjb2RlRXJyb3I6CiAgICAgICAgIiIiVGVzdCBDb250cmFjdERhdGFEZWNvZGVFcnJvcgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb250cmFjdERhdGFEZWNvZGVFcnJvcmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENvbnRyYWN0RGF0YURlY29kZUVycm9yKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ29udHJhY3REYXRhRGVjb2RlRXJyb3IoCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ0Vycm9yIGRlY29kaW5nIGRhdGE6IEludmFsaWQgQUJJJywKICAgICAgICAgICAgICAgIGNvZGUgPSA0MDAKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDb250cmFjdERhdGFEZWNvZGVFcnJvcigKICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnRXJyb3IgZGVjb2RpbmcgZGF0YTogSW52YWxpZCBBQkknLAogICAgICAgICAgICAgICAgY29kZSA9IDQwMCwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDb250cmFjdERhdGFEZWNvZGVFcnJvcihzZWxmKToKICAgICAgICAiIiJUZXN0IENvbnRyYWN0RGF0YURlY29kZUVycm9yIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_contract_data_decode_request.py b/test/test_contract_data_decode_request.py index 8c2ac18b..ec62ac95 100644 --- a/test/test_contract_data_decode_request.py +++ b/test/test_contract_data_decode_request.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.contract_data_decode_request import ContractDataDecodeRequest - - -class TestContractDataDecodeRequest(unittest.TestCase): - """ContractDataDecodeRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ContractDataDecodeRequest: - """Test ContractDataDecodeRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ContractDataDecodeRequest` - """ - model = ContractDataDecodeRequest() - if include_optional: - return ContractDataDecodeRequest( - data = 0x1234567890abcdef, - data_type = 'FUNCTION', - abi = [{"inputs":[{"name":"to","type":"address"},{"name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer"}] - ) - else: - return ContractDataDecodeRequest( - data = 0x1234567890abcdef, - data_type = 'FUNCTION', - ) - """ - - def testContractDataDecodeRequest(self): - """Test ContractDataDecodeRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RhdGFfZGVjb2RlX3JlcXVlc3QgaW1wb3J0IENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3QKCgpjbGFzcyBUZXN0Q29udHJhY3REYXRhRGVjb2RlUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb250cmFjdERhdGFEZWNvZGVSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb250cmFjdERhdGFEZWNvZGVSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgQ29udHJhY3REYXRhRGVjb2RlUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb250cmFjdERhdGFEZWNvZGVSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29udHJhY3REYXRhRGVjb2RlUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3QoCiAgICAgICAgICAgICAgICBkYXRhID0gMHgxMjM0NTY3ODkwYWJjZGVmLAogICAgICAgICAgICAgICAgZGF0YV90eXBlID0gJ0ZVTkNUSU9OJywKICAgICAgICAgICAgICAgIGFiaSA9IFt7ImlucHV0cyI6W3sibmFtZSI6InRvIiwidHlwZSI6ImFkZHJlc3MifSx7Im5hbWUiOiJhbW91bnQiLCJ0eXBlIjoidWludDI1NiJ9XSwic3RhdGVNdXRhYmlsaXR5Ijoibm9ucGF5YWJsZSIsInR5cGUiOiJmdW5jdGlvbiIsIm5hbWUiOiJ0cmFuc2ZlciJ9XQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3QoCiAgICAgICAgICAgICAgICBkYXRhID0gMHgxMjM0NTY3ODkwYWJjZGVmLAogICAgICAgICAgICAgICAgZGF0YV90eXBlID0gJ0ZVTkNUSU9OJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDb250cmFjdERhdGFEZWNvZGVSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29udHJhY3REYXRhRGVjb2RlUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_contract_data_decode_request_data.py b/test/test_contract_data_decode_request_data.py index 444d9aa0..c6d7cb6e 100644 --- a/test/test_contract_data_decode_request_data.py +++ b/test/test_contract_data_decode_request_data.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.contract_data_decode_request_data import ( - ContractDataDecodeRequestData, -) - - -class TestContractDataDecodeRequestData(unittest.TestCase): - """ContractDataDecodeRequestData unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ContractDataDecodeRequestData: - """Test ContractDataDecodeRequestData - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ContractDataDecodeRequestData` - """ - model = ContractDataDecodeRequestData() - if include_optional: - return ContractDataDecodeRequestData( - data = '0x1234567890abcdef', - topics = [1311768467294899700, 12379813812177893000] - ) - else: - return ContractDataDecodeRequestData( - data = '0x1234567890abcdef', - topics = [1311768467294899700, 12379813812177893000], - ) - """ - - def testContractDataDecodeRequestData(self): - """Test ContractDataDecodeRequestData""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RhdGFfZGVjb2RlX3JlcXVlc3RfZGF0YSBpbXBvcnQgKAogICAgQ29udHJhY3REYXRhRGVjb2RlUmVxdWVzdERhdGEsCikKCgpjbGFzcyBUZXN0Q29udHJhY3REYXRhRGVjb2RlUmVxdWVzdERhdGEodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ29udHJhY3REYXRhRGVjb2RlUmVxdWVzdERhdGEgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3REYXRhOgogICAgICAgICIiIlRlc3QgQ29udHJhY3REYXRhRGVjb2RlUmVxdWVzdERhdGEKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ29udHJhY3REYXRhRGVjb2RlUmVxdWVzdERhdGFgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb250cmFjdERhdGFEZWNvZGVSZXF1ZXN0RGF0YSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3REYXRhKAogICAgICAgICAgICAgICAgZGF0YSA9ICcweDEyMzQ1Njc4OTBhYmNkZWYnLAogICAgICAgICAgICAgICAgdG9waWNzID0gWzEzMTE3Njg0NjcyOTQ4OTk3MDAsIDEyMzc5ODEzODEyMTc3ODkzMDAwXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3REYXRhKAogICAgICAgICAgICAgICAgZGF0YSA9ICcweDEyMzQ1Njc4OTBhYmNkZWYnLAogICAgICAgICAgICAgICAgdG9waWNzID0gWzEzMTE3Njg0NjcyOTQ4OTk3MDAsIDEyMzc5ODEzODEyMTc3ODkzMDAwXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDb250cmFjdERhdGFEZWNvZGVSZXF1ZXN0RGF0YShzZWxmKToKICAgICAgICAiIiJUZXN0IENvbnRyYWN0RGF0YURlY29kZVJlcXVlc3REYXRhIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_contract_data_decode_response_params.py b/test/test_contract_data_decode_response_params.py index e994cfdd..8085c3cc 100644 --- a/test/test_contract_data_decode_response_params.py +++ b/test/test_contract_data_decode_response_params.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.contract_data_decode_response_params import ( - ContractDataDecodeResponseParams, -) - - -class TestContractDataDecodeResponseParams(unittest.TestCase): - """ContractDataDecodeResponseParams unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ContractDataDecodeResponseParams: - """Test ContractDataDecodeResponseParams - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ContractDataDecodeResponseParams` - """ - model = ContractDataDecodeResponseParams() - if include_optional: - return ContractDataDecodeResponseParams( - name = 'transfer', - signature = 'transfer(address,uint256)', - args = [ - fireblocks.models.parameter_with_value.ParameterWithValue( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], - value = 'true', - function_value = null, ) - ] - ) - else: - return ContractDataDecodeResponseParams( - name = 'transfer', - signature = 'transfer(address,uint256)', - args = [ - fireblocks.models.parameter_with_value.ParameterWithValue( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], - value = 'true', - function_value = null, ) - ], - ) - """ - - def testContractDataDecodeResponseParams(self): - """Test ContractDataDecodeResponseParams""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RhdGFfZGVjb2RlX3Jlc3BvbnNlX3BhcmFtcyBpbXBvcnQgKAogICAgQ29udHJhY3REYXRhRGVjb2RlUmVzcG9uc2VQYXJhbXMsCikKCgpjbGFzcyBUZXN0Q29udHJhY3REYXRhRGVjb2RlUmVzcG9uc2VQYXJhbXModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ29udHJhY3REYXRhRGVjb2RlUmVzcG9uc2VQYXJhbXMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbnRyYWN0RGF0YURlY29kZVJlc3BvbnNlUGFyYW1zOgogICAgICAgICIiIlRlc3QgQ29udHJhY3REYXRhRGVjb2RlUmVzcG9uc2VQYXJhbXMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ29udHJhY3REYXRhRGVjb2RlUmVzcG9uc2VQYXJhbXNgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb250cmFjdERhdGFEZWNvZGVSZXNwb25zZVBhcmFtcygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbnRyYWN0RGF0YURlY29kZVJlc3BvbnNlUGFyYW1zKAogICAgICAgICAgICAgICAgbmFtZSA9ICd0cmFuc2ZlcicsCiAgICAgICAgICAgICAgICBzaWduYXR1cmUgPSAndHJhbnNmZXIoYWRkcmVzcyx1aW50MjU2KScsCiAgICAgICAgICAgICAgICBhcmdzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlcl93aXRoX3ZhbHVlLlBhcmFtZXRlcldpdGhWYWx1ZSgKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdfbmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGUgbmFtZSBvZiB0aGUgdG9rZW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxfdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50cyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlci5QYXJhbWV0ZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdfbmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1RoZSBuYW1lIG9mIHRoZSB0b2tlbicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdzdHJpbmcnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAndHJ1ZScsIAogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbl92YWx1ZSA9IG51bGwsICkKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29udHJhY3REYXRhRGVjb2RlUmVzcG9uc2VQYXJhbXMoCiAgICAgICAgICAgICAgICBuYW1lID0gJ3RyYW5zZmVyJywKICAgICAgICAgICAgICAgIHNpZ25hdHVyZSA9ICd0cmFuc2ZlcihhZGRyZXNzLHVpbnQyNTYpJywKICAgICAgICAgICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyX3dpdGhfdmFsdWUuUGFyYW1ldGVyV2l0aFZhbHVlKAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ19uYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1RoZSBuYW1lIG9mIHRoZSB0b2tlbicsIAogICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyLlBhcmFtZXRlcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ19uYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxfdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ3N0cmluZycsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9ICd0cnVlJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uX3ZhbHVlID0gbnVsbCwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29udHJhY3REYXRhRGVjb2RlUmVzcG9uc2VQYXJhbXMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb250cmFjdERhdGFEZWNvZGVSZXNwb25zZVBhcmFtcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_contract_data_decoded_response.py b/test/test_contract_data_decoded_response.py index d4b26b53..63277d42 100644 --- a/test/test_contract_data_decoded_response.py +++ b/test/test_contract_data_decoded_response.py @@ -1,97 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.contract_data_decoded_response import ContractDataDecodedResponse - - -class TestContractDataDecodedResponse(unittest.TestCase): - """ContractDataDecodedResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ContractDataDecodedResponse: - """Test ContractDataDecodedResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ContractDataDecodedResponse` - """ - model = ContractDataDecodedResponse() - if include_optional: - return ContractDataDecodedResponse( - result = [ - fireblocks.models.contract_data_decode_response_params.ContractDataDecodeResponseParams( - name = 'transfer', - signature = 'transfer(address,uint256)', - args = [ - fireblocks.models.parameter_with_value.ParameterWithValue( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], - value = 'true', - function_value = null, ) - ], ) - ], - type = 'FUNCTION' - ) - else: - return ContractDataDecodedResponse( - result = [ - fireblocks.models.contract_data_decode_response_params.ContractDataDecodeResponseParams( - name = 'transfer', - signature = 'transfer(address,uint256)', - args = [ - fireblocks.models.parameter_with_value.ParameterWithValue( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], - value = 'true', - function_value = null, ) - ], ) - ], - type = 'FUNCTION', - ) - """ - - def testContractDataDecodedResponse(self): - """Test ContractDataDecodedResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RhdGFfZGVjb2RlZF9yZXNwb25zZSBpbXBvcnQgQ29udHJhY3REYXRhRGVjb2RlZFJlc3BvbnNlCgoKY2xhc3MgVGVzdENvbnRyYWN0RGF0YURlY29kZWRSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb250cmFjdERhdGFEZWNvZGVkUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbnRyYWN0RGF0YURlY29kZWRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IENvbnRyYWN0RGF0YURlY29kZWRSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb250cmFjdERhdGFEZWNvZGVkUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb250cmFjdERhdGFEZWNvZGVkUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDb250cmFjdERhdGFEZWNvZGVkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICByZXN1bHQgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfZGF0YV9kZWNvZGVfcmVzcG9uc2VfcGFyYW1zLkNvbnRyYWN0RGF0YURlY29kZVJlc3BvbnNlUGFyYW1zKAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ3RyYW5zZmVyJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZSA9ICd0cmFuc2ZlcihhZGRyZXNzLHVpbnQyNTYpJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXJfd2l0aF92YWx1ZS5QYXJhbWV0ZXJXaXRoVmFsdWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdfbmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1RoZSBuYW1lIG9mIHRoZSB0b2tlbicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXIuUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdfbmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdzdHJpbmcnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gJ3RydWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbl92YWx1ZSA9IG51bGwsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgdHlwZSA9ICdGVU5DVElPTicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDb250cmFjdERhdGFEZWNvZGVkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICByZXN1bHQgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfZGF0YV9kZWNvZGVfcmVzcG9uc2VfcGFyYW1zLkNvbnRyYWN0RGF0YURlY29kZVJlc3BvbnNlUGFyYW1zKAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ3RyYW5zZmVyJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZSA9ICd0cmFuc2ZlcihhZGRyZXNzLHVpbnQyNTYpJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXJfd2l0aF92YWx1ZS5QYXJhbWV0ZXJXaXRoVmFsdWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdfbmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1RoZSBuYW1lIG9mIHRoZSB0b2tlbicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXIuUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdfbmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdzdHJpbmcnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gJ3RydWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbl92YWx1ZSA9IG51bGwsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgdHlwZSA9ICdGVU5DVElPTicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29udHJhY3REYXRhRGVjb2RlZFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29udHJhY3REYXRhRGVjb2RlZFJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_contract_data_log_data_param.py b/test/test_contract_data_log_data_param.py index 96295c44..94a44a1b 100644 --- a/test/test_contract_data_log_data_param.py +++ b/test/test_contract_data_log_data_param.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.contract_data_log_data_param import ContractDataLogDataParam - - -class TestContractDataLogDataParam(unittest.TestCase): - """ContractDataLogDataParam unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ContractDataLogDataParam: - """Test ContractDataLogDataParam - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ContractDataLogDataParam` - """ - model = ContractDataLogDataParam() - if include_optional: - return ContractDataLogDataParam( - data = '0x1234567890abcdef', - topics = [1311768467294899700,12379813812177893000] - ) - else: - return ContractDataLogDataParam( - data = '0x1234567890abcdef', - topics = [1311768467294899700,12379813812177893000], - ) - """ - - def testContractDataLogDataParam(self): - """Test ContractDataLogDataParam""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RhdGFfbG9nX2RhdGFfcGFyYW0gaW1wb3J0IENvbnRyYWN0RGF0YUxvZ0RhdGFQYXJhbQoKCmNsYXNzIFRlc3RDb250cmFjdERhdGFMb2dEYXRhUGFyYW0odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ29udHJhY3REYXRhTG9nRGF0YVBhcmFtIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb250cmFjdERhdGFMb2dEYXRhUGFyYW06CiAgICAgICAgIiIiVGVzdCBDb250cmFjdERhdGFMb2dEYXRhUGFyYW0KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ29udHJhY3REYXRhTG9nRGF0YVBhcmFtYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29udHJhY3REYXRhTG9nRGF0YVBhcmFtKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ29udHJhY3REYXRhTG9nRGF0YVBhcmFtKAogICAgICAgICAgICAgICAgZGF0YSA9ICcweDEyMzQ1Njc4OTBhYmNkZWYnLAogICAgICAgICAgICAgICAgdG9waWNzID0gWzEzMTE3Njg0NjcyOTQ4OTk3MDAsMTIzNzk4MTM4MTIxNzc4OTMwMDBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29udHJhY3REYXRhTG9nRGF0YVBhcmFtKAogICAgICAgICAgICAgICAgZGF0YSA9ICcweDEyMzQ1Njc4OTBhYmNkZWYnLAogICAgICAgICAgICAgICAgdG9waWNzID0gWzEzMTE3Njg0NjcyOTQ4OTk3MDAsMTIzNzk4MTM4MTIxNzc4OTMwMDBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbnRyYWN0RGF0YUxvZ0RhdGFQYXJhbShzZWxmKToKICAgICAgICAiIiJUZXN0IENvbnRyYWN0RGF0YUxvZ0RhdGFQYXJhbSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_contract_deploy_request.py b/test/test_contract_deploy_request.py index 9c1bd51a..eeade8bb 100644 --- a/test/test_contract_deploy_request.py +++ b/test/test_contract_deploy_request.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.contract_deploy_request import ContractDeployRequest - - -class TestContractDeployRequest(unittest.TestCase): - """ContractDeployRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ContractDeployRequest: - """Test ContractDeployRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ContractDeployRequest` - """ - model = ContractDeployRequest() - if include_optional: - return ContractDeployRequest( - asset_id = 'ETH_TEST5', - vault_account_id = '0', - constructor_parameters = [{"internalType":"string","name":"name_","type":"string","value":"TokenName"},{"internalType":"string","name":"symbol_","type":"string","value":"TokenSymbol"}], - use_gasless = False, - fee = '2000', - fee_level = 'MEDIUM' - ) - else: - return ContractDeployRequest( - asset_id = 'ETH_TEST5', - vault_account_id = '0', - ) - """ - - def testContractDeployRequest(self): - """Test ContractDeployRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RlcGxveV9yZXF1ZXN0IGltcG9ydCBDb250cmFjdERlcGxveVJlcXVlc3QKCgpjbGFzcyBUZXN0Q29udHJhY3REZXBsb3lSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbnRyYWN0RGVwbG95UmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ29udHJhY3REZXBsb3lSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgQ29udHJhY3REZXBsb3lSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbnRyYWN0RGVwbG95UmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENvbnRyYWN0RGVwbG95UmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbnRyYWN0RGVwbG95UmVxdWVzdCgKICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJ0VUSF9URVNUNScsCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gJzAnLAogICAgICAgICAgICAgICAgY29uc3RydWN0b3JfcGFyYW1ldGVycyA9IFt7ImludGVybmFsVHlwZSI6InN0cmluZyIsIm5hbWUiOiJuYW1lXyIsInR5cGUiOiJzdHJpbmciLCJ2YWx1ZSI6IlRva2VuTmFtZSJ9LHsiaW50ZXJuYWxUeXBlIjoic3RyaW5nIiwibmFtZSI6InN5bWJvbF8iLCJ0eXBlIjoic3RyaW5nIiwidmFsdWUiOiJUb2tlblN5bWJvbCJ9XSwKICAgICAgICAgICAgICAgIHVzZV9nYXNsZXNzID0gRmFsc2UsCiAgICAgICAgICAgICAgICBmZWUgPSAnMjAwMCcsCiAgICAgICAgICAgICAgICBmZWVfbGV2ZWwgPSAnTUVESVVNJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvbnRyYWN0RGVwbG95UmVxdWVzdCgKICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJ0VUSF9URVNUNScsCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gJzAnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbnRyYWN0RGVwbG95UmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IENvbnRyYWN0RGVwbG95UmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_contract_deploy_response.py b/test/test_contract_deploy_response.py index bd10acb3..4133e3e1 100644 --- a/test/test_contract_deploy_response.py +++ b/test/test_contract_deploy_response.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.contract_deploy_response import ContractDeployResponse - - -class TestContractDeployResponse(unittest.TestCase): - """ContractDeployResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ContractDeployResponse: - """Test ContractDeployResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ContractDeployResponse` - """ - model = ContractDeployResponse() - if include_optional: - return ContractDeployResponse( - tx_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d' - ) - else: - return ContractDeployResponse( - tx_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - ) - """ - - def testContractDeployResponse(self): - """Test ContractDeployResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RlcGxveV9yZXNwb25zZSBpbXBvcnQgQ29udHJhY3REZXBsb3lSZXNwb25zZQoKCmNsYXNzIFRlc3RDb250cmFjdERlcGxveVJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbnRyYWN0RGVwbG95UmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbnRyYWN0RGVwbG95UmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBDb250cmFjdERlcGxveVJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbnRyYWN0RGVwbG95UmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb250cmFjdERlcGxveVJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ29udHJhY3REZXBsb3lSZXNwb25zZSgKICAgICAgICAgICAgICAgIHR4X2lkID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDb250cmFjdERlcGxveVJlc3BvbnNlKAogICAgICAgICAgICAgICAgdHhfaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDb250cmFjdERlcGxveVJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29udHJhY3REZXBsb3lSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_contract_doc.py b/test/test_contract_doc.py index 068df648..661999b1 100644 --- a/test/test_contract_doc.py +++ b/test/test_contract_doc.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.contract_doc import ContractDoc - - -class TestContractDoc(unittest.TestCase): - """ContractDoc unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ContractDoc: - """Test ContractDoc - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ContractDoc` - """ - model = ContractDoc() - if include_optional: - return ContractDoc( - details = 'A token that can be minted and burned', - events = 'Upgraded(address): {"details": "Emitted when the implementation is upgraded."}', - kind = 'dev', - methods = {"constructor":{"details":"Initializes the contract"}}, - version = 1 - ) - else: - return ContractDoc( - kind = 'dev', - methods = {"constructor":{"details":"Initializes the contract"}}, - version = 1, - ) - """ - - def testContractDoc(self): - """Test ContractDoc""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RvYyBpbXBvcnQgQ29udHJhY3REb2MKCgpjbGFzcyBUZXN0Q29udHJhY3REb2ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ29udHJhY3REb2MgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbnRyYWN0RG9jOgogICAgICAgICIiIlRlc3QgQ29udHJhY3REb2MKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ29udHJhY3REb2NgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb250cmFjdERvYygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbnRyYWN0RG9jKAogICAgICAgICAgICAgICAgZGV0YWlscyA9ICdBIHRva2VuIHRoYXQgY2FuIGJlIG1pbnRlZCBhbmQgYnVybmVkJywKICAgICAgICAgICAgICAgIGV2ZW50cyA9ICdVcGdyYWRlZChhZGRyZXNzKTogeyJkZXRhaWxzIjogIkVtaXR0ZWQgd2hlbiB0aGUgaW1wbGVtZW50YXRpb24gaXMgdXBncmFkZWQuIn0nLAogICAgICAgICAgICAgICAga2luZCA9ICdkZXYnLAogICAgICAgICAgICAgICAgbWV0aG9kcyA9IHsiY29uc3RydWN0b3IiOnsiZGV0YWlscyI6IkluaXRpYWxpemVzIHRoZSBjb250cmFjdCJ9fSwKICAgICAgICAgICAgICAgIHZlcnNpb24gPSAxCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29udHJhY3REb2MoCiAgICAgICAgICAgICAgICBraW5kID0gJ2RldicsCiAgICAgICAgICAgICAgICBtZXRob2RzID0geyJjb25zdHJ1Y3RvciI6eyJkZXRhaWxzIjoiSW5pdGlhbGl6ZXMgdGhlIGNvbnRyYWN0In19LAogICAgICAgICAgICAgICAgdmVyc2lvbiA9IDEsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29udHJhY3REb2Moc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb250cmFjdERvYyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_contract_interactions_api.py b/test/test_contract_interactions_api.py index 26e5533d..6819a53b 100644 --- a/test/test_contract_interactions_api.py +++ b/test/test_contract_interactions_api.py @@ -1,74 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.contract_interactions_api import ContractInteractionsApi - - -class TestContractInteractionsApi(unittest.TestCase): - """ContractInteractionsApi unit test stubs""" - - def setUp(self) -> None: - self.api = ContractInteractionsApi() - - def tearDown(self) -> None: - pass - - def test_decode_contract_data(self) -> None: - """Test case for decode_contract_data - - Decode a function call data, error, or event log - """ - pass - - def test_get_contract_address(self) -> None: - """Test case for get_contract_address - - Get contract address by transaction hash - """ - pass - - def test_get_deployed_contract_abi(self) -> None: - """Test case for get_deployed_contract_abi - - Return deployed contract's ABI - """ - pass - - def test_get_transaction_receipt(self) -> None: - """Test case for get_transaction_receipt - - Get transaction receipt - """ - pass - - def test_read_call_function(self) -> None: - """Test case for read_call_function - - Call a read function on a deployed contract - """ - pass - - def test_write_call_function(self) -> None: - """Test case for write_call_function - - Call a write function on a deployed contract - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLmNvbnRyYWN0X2ludGVyYWN0aW9uc19hcGkgaW1wb3J0IENvbnRyYWN0SW50ZXJhY3Rpb25zQXBpCgoKY2xhc3MgVGVzdENvbnRyYWN0SW50ZXJhY3Rpb25zQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbnRyYWN0SW50ZXJhY3Rpb25zQXBpIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKSAtPiBOb25lOgogICAgICAgIHNlbGYuYXBpID0gQ29udHJhY3RJbnRlcmFjdGlvbnNBcGkoKQoKICAgIGRlZiB0ZWFyRG93bihzZWxmKSAtPiBOb25lOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9kZWNvZGVfY29udHJhY3RfZGF0YShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZGVjb2RlX2NvbnRyYWN0X2RhdGEKCiAgICAgICAgRGVjb2RlIGEgZnVuY3Rpb24gY2FsbCBkYXRhLCBlcnJvciwgb3IgZXZlbnQgbG9nCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9jb250cmFjdF9hZGRyZXNzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfY29udHJhY3RfYWRkcmVzcwoKICAgICAgICBHZXQgY29udHJhY3QgYWRkcmVzcyBieSB0cmFuc2FjdGlvbiBoYXNoCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9kZXBsb3llZF9jb250cmFjdF9hYmkoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9kZXBsb3llZF9jb250cmFjdF9hYmkKCiAgICAgICAgUmV0dXJuIGRlcGxveWVkIGNvbnRyYWN0J3MgQUJJCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF90cmFuc2FjdGlvbl9yZWNlaXB0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfdHJhbnNhY3Rpb25fcmVjZWlwdAoKICAgICAgICBHZXQgdHJhbnNhY3Rpb24gcmVjZWlwdAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9yZWFkX2NhbGxfZnVuY3Rpb24oc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHJlYWRfY2FsbF9mdW5jdGlvbgoKICAgICAgICBDYWxsIGEgcmVhZCBmdW5jdGlvbiBvbiBhIGRlcGxveWVkIGNvbnRyYWN0CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3dyaXRlX2NhbGxfZnVuY3Rpb24oc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHdyaXRlX2NhbGxfZnVuY3Rpb24KCiAgICAgICAgQ2FsbCBhIHdyaXRlIGZ1bmN0aW9uIG9uIGEgZGVwbG95ZWQgY29udHJhY3QKICAgICAgICAiIiIKICAgICAgICBwYXNzCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_contract_metadata_dto.py b/test/test_contract_metadata_dto.py index 78d628ae..0f8d9e10 100644 --- a/test/test_contract_metadata_dto.py +++ b/test/test_contract_metadata_dto.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.contract_metadata_dto import ContractMetadataDto - - -class TestContractMetadataDto(unittest.TestCase): - """ContractMetadataDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ContractMetadataDto: - """Test ContractMetadataDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ContractMetadataDto` - """ - model = ContractMetadataDto() - if include_optional: - return ContractMetadataDto( - id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb', - blockchain_id = 'B7QG017M', - contract_address = '0x1234567890abcdef1234567890abcdef12345678', - contract_template_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - vault_account_id = '0' - ) - else: - return ContractMetadataDto( - id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb', - blockchain_id = 'B7QG017M', - contract_address = '0x1234567890abcdef1234567890abcdef12345678', - contract_template_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - ) - """ - - def testContractMetadataDto(self): - """Test ContractMetadataDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X21ldGFkYXRhX2R0byBpbXBvcnQgQ29udHJhY3RNZXRhZGF0YUR0bwoKCmNsYXNzIFRlc3RDb250cmFjdE1ldGFkYXRhRHRvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbnRyYWN0TWV0YWRhdGFEdG8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbnRyYWN0TWV0YWRhdGFEdG86CiAgICAgICAgIiIiVGVzdCBDb250cmFjdE1ldGFkYXRhRHRvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbnRyYWN0TWV0YWRhdGFEdG9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb250cmFjdE1ldGFkYXRhRHRvKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ29udHJhY3RNZXRhZGF0YUR0bygKICAgICAgICAgICAgICAgIGlkID0gJ2ZiZmJmYmZiLWZiZmItZmJmYi1mYmZiLWZiZmJmYmZiZmJmYicsCiAgICAgICAgICAgICAgICBibG9ja2NoYWluX2lkID0gJ0I3UUcwMTdNJywKICAgICAgICAgICAgICAgIGNvbnRyYWN0X2FkZHJlc3MgPSAnMHgxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4JywKICAgICAgICAgICAgICAgIGNvbnRyYWN0X3RlbXBsYXRlX2lkID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCcsCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gJzAnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29udHJhY3RNZXRhZGF0YUR0bygKICAgICAgICAgICAgICAgIGlkID0gJ2ZiZmJmYmZiLWZiZmItZmJmYi1mYmZiLWZiZmJmYmZiZmJmYicsCiAgICAgICAgICAgICAgICBibG9ja2NoYWluX2lkID0gJ0I3UUcwMTdNJywKICAgICAgICAgICAgICAgIGNvbnRyYWN0X2FkZHJlc3MgPSAnMHgxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4JywKICAgICAgICAgICAgICAgIGNvbnRyYWN0X3RlbXBsYXRlX2lkID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29udHJhY3RNZXRhZGF0YUR0byhzZWxmKToKICAgICAgICAiIiJUZXN0IENvbnRyYWN0TWV0YWRhdGFEdG8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_contract_method_config.py b/test/test_contract_method_config.py index 477aa729..f09552d4 100644 --- a/test/test_contract_method_config.py +++ b/test/test_contract_method_config.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.contract_method_config import ContractMethodConfig - - -class TestContractMethodConfig(unittest.TestCase): - """ContractMethodConfig unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ContractMethodConfig: - """Test ContractMethodConfig - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ContractMethodConfig` - """ - model = ContractMethodConfig() - if include_optional: - return ContractMethodConfig( - method_calls = [ - '' - ], - operator = 'EITHER', - payload_suffix = '0x123...' - ) - else: - return ContractMethodConfig( - method_calls = [ - '' - ], - operator = 'EITHER', - ) - """ - - def testContractMethodConfig(self): - """Test ContractMethodConfig""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X21ldGhvZF9jb25maWcgaW1wb3J0IENvbnRyYWN0TWV0aG9kQ29uZmlnCgoKY2xhc3MgVGVzdENvbnRyYWN0TWV0aG9kQ29uZmlnKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbnRyYWN0TWV0aG9kQ29uZmlnIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb250cmFjdE1ldGhvZENvbmZpZzoKICAgICAgICAiIiJUZXN0IENvbnRyYWN0TWV0aG9kQ29uZmlnCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbnRyYWN0TWV0aG9kQ29uZmlnYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29udHJhY3RNZXRob2RDb25maWcoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDb250cmFjdE1ldGhvZENvbmZpZygKICAgICAgICAgICAgICAgIG1ldGhvZF9jYWxscyA9IFsKICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICdFSVRIRVInLAogICAgICAgICAgICAgICAgcGF5bG9hZF9zdWZmaXggPSAnMHgxMjMuLi4nCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29udHJhY3RNZXRob2RDb25maWcoCiAgICAgICAgICAgICAgICBtZXRob2RfY2FsbHMgPSBbCiAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAnRUlUSEVSJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDb250cmFjdE1ldGhvZENvbmZpZyhzZWxmKToKICAgICAgICAiIiJUZXN0IENvbnRyYWN0TWV0aG9kQ29uZmlnIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_contract_method_pattern.py b/test/test_contract_method_pattern.py index 90899397..238c20a3 100644 --- a/test/test_contract_method_pattern.py +++ b/test/test_contract_method_pattern.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.contract_method_pattern import ContractMethodPattern - - -class TestContractMethodPattern(unittest.TestCase): - """ContractMethodPattern unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ContractMethodPattern: - """Test ContractMethodPattern - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ContractMethodPattern` - """ - model = ContractMethodPattern() - if include_optional: - return ContractMethodPattern( - method_calls = [ - '' - ], - operator = 'EITHER', - payload_suffix = '0x123...' - ) - else: - return ContractMethodPattern( - method_calls = [ - '' - ], - operator = 'EITHER', - ) - """ - - def testContractMethodPattern(self): - """Test ContractMethodPattern""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X21ldGhvZF9wYXR0ZXJuIGltcG9ydCBDb250cmFjdE1ldGhvZFBhdHRlcm4KCgpjbGFzcyBUZXN0Q29udHJhY3RNZXRob2RQYXR0ZXJuKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbnRyYWN0TWV0aG9kUGF0dGVybiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ29udHJhY3RNZXRob2RQYXR0ZXJuOgogICAgICAgICIiIlRlc3QgQ29udHJhY3RNZXRob2RQYXR0ZXJuCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbnRyYWN0TWV0aG9kUGF0dGVybmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENvbnRyYWN0TWV0aG9kUGF0dGVybigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbnRyYWN0TWV0aG9kUGF0dGVybigKICAgICAgICAgICAgICAgIG1ldGhvZF9jYWxscyA9IFsKICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICdFSVRIRVInLAogICAgICAgICAgICAgICAgcGF5bG9hZF9zdWZmaXggPSAnMHgxMjMuLi4nCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29udHJhY3RNZXRob2RQYXR0ZXJuKAogICAgICAgICAgICAgICAgbWV0aG9kX2NhbGxzID0gWwogICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gJ0VJVEhFUicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29udHJhY3RNZXRob2RQYXR0ZXJuKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29udHJhY3RNZXRob2RQYXR0ZXJuIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_contract_template_dto.py b/test/test_contract_template_dto.py index 22fc880a..024ce3b2 100644 --- a/test/test_contract_template_dto.py +++ b/test/test_contract_template_dto.py @@ -1,94 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.contract_template_dto import ContractTemplateDto - - -class TestContractTemplateDto(unittest.TestCase): - """ContractTemplateDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ContractTemplateDto: - """Test ContractTemplateDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ContractTemplateDto` - """ - model = ContractTemplateDto() - if include_optional: - return ContractTemplateDto( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - name = 'My Contract', - description = 'an ERC20 implementation', - long_description = 'a full ERC20 implementation, containing the following: - - - mint - - burn -', - abi = [{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"}], - attributes = fireblocks.models.contract_attributes.ContractAttributes( - use_cases = [ - '' - ], - standards = [ - '' - ], - auditor = fireblocks.models.auditor_data.AuditorData( - name = '', - image_url = '', - link = '', ), ), - docs = fireblocks.models.contract_doc.ContractDoc( - details = 'A token that can be minted and burned', - events = 'Upgraded(address): {"details": "Emitted when the implementation is upgraded."}', - kind = 'dev', - methods = {"constructor":{"details":"Initializes the contract"}}, - version = 1, ), - owner = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - vendor = fireblocks.models.vendor_dto.VendorDto( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b4453', - name = 'Fireblocks', ), - is_public = True, - can_deploy = True, - type = 'FUNGIBLE_TOKEN', - implementation_contract_id = '', - initialization_phase = 'ON_DEPLOYMENT' - ) - else: - return ContractTemplateDto( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - name = 'My Contract', - description = 'an ERC20 implementation', - abi = [{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"}], - is_public = True, - initialization_phase = 'ON_DEPLOYMENT', - ) - """ - - def testContractTemplateDto(self): - """Test ContractTemplateDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X3RlbXBsYXRlX2R0byBpbXBvcnQgQ29udHJhY3RUZW1wbGF0ZUR0bwoKCmNsYXNzIFRlc3RDb250cmFjdFRlbXBsYXRlRHRvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbnRyYWN0VGVtcGxhdGVEdG8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbnRyYWN0VGVtcGxhdGVEdG86CiAgICAgICAgIiIiVGVzdCBDb250cmFjdFRlbXBsYXRlRHRvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbnRyYWN0VGVtcGxhdGVEdG9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb250cmFjdFRlbXBsYXRlRHRvKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ29udHJhY3RUZW1wbGF0ZUR0bygKICAgICAgICAgICAgICAgIGlkID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCcsCiAgICAgICAgICAgICAgICBuYW1lID0gJ015IENvbnRyYWN0JywKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ2FuIEVSQzIwIGltcGxlbWVudGF0aW9uJywKICAgICAgICAgICAgICAgIGxvbmdfZGVzY3JpcHRpb24gPSAnYSBmdWxsIEVSQzIwIGltcGxlbWVudGF0aW9uLCBjb250YWluaW5nIHRoZSBmb2xsb3dpbmc6CgogLSBtaW50CiAtIGJ1cm4KJywKICAgICAgICAgICAgICAgIGFiaSA9IFt7ImlucHV0cyI6W3siaW50ZXJuYWxUeXBlIjoiYWRkcmVzcyIsIm5hbWUiOiJpbXBsZW1lbnRhdGlvbiIsInR5cGUiOiJhZGRyZXNzIn0seyJpbnRlcm5hbFR5cGUiOiJieXRlcyIsIm5hbWUiOiJfZGF0YSIsInR5cGUiOiJieXRlcyJ9XSwic3RhdGVNdXRhYmlsaXR5IjoicGF5YWJsZSIsInR5cGUiOiJjb25zdHJ1Y3RvciJ9XSwKICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9hdHRyaWJ1dGVzLkNvbnRyYWN0QXR0cmlidXRlcygKICAgICAgICAgICAgICAgICAgICB1c2VfY2FzZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgIHN0YW5kYXJkcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgYXVkaXRvciA9IGZpcmVibG9ja3MubW9kZWxzLmF1ZGl0b3JfZGF0YS5BdWRpdG9yRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VfdXJsID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBsaW5rID0gJycsICksICksCiAgICAgICAgICAgICAgICBkb2NzID0gZmlyZWJsb2Nrcy5tb2RlbHMuY29udHJhY3RfZG9jLkNvbnRyYWN0RG9jKAogICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSAnQSB0b2tlbiB0aGF0IGNhbiBiZSBtaW50ZWQgYW5kIGJ1cm5lZCcsIAogICAgICAgICAgICAgICAgICAgIGV2ZW50cyA9ICdVcGdyYWRlZChhZGRyZXNzKTogeyJkZXRhaWxzIjogIkVtaXR0ZWQgd2hlbiB0aGUgaW1wbGVtZW50YXRpb24gaXMgdXBncmFkZWQuIn0nLCAKICAgICAgICAgICAgICAgICAgICBraW5kID0gJ2RldicsIAogICAgICAgICAgICAgICAgICAgIG1ldGhvZHMgPSB7ImNvbnN0cnVjdG9yIjp7ImRldGFpbHMiOiJJbml0aWFsaXplcyB0aGUgY29udHJhY3QifX0sIAogICAgICAgICAgICAgICAgICAgIHZlcnNpb24gPSAxLCApLAogICAgICAgICAgICAgICAgb3duZXIgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywKICAgICAgICAgICAgICAgIHZlbmRvciA9IGZpcmVibG9ja3MubW9kZWxzLnZlbmRvcl9kdG8uVmVuZG9yRHRvKAogICAgICAgICAgICAgICAgICAgIGlkID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViNDQ1MycsIAogICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnRmlyZWJsb2NrcycsICksCiAgICAgICAgICAgICAgICBpc19wdWJsaWMgPSBUcnVlLAogICAgICAgICAgICAgICAgY2FuX2RlcGxveSA9IFRydWUsCiAgICAgICAgICAgICAgICB0eXBlID0gJ0ZVTkdJQkxFX1RPS0VOJywKICAgICAgICAgICAgICAgIGltcGxlbWVudGF0aW9uX2NvbnRyYWN0X2lkID0gJycsCiAgICAgICAgICAgICAgICBpbml0aWFsaXphdGlvbl9waGFzZSA9ICdPTl9ERVBMT1lNRU5UJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvbnRyYWN0VGVtcGxhdGVEdG8oCiAgICAgICAgICAgICAgICBpZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGQnLAogICAgICAgICAgICAgICAgbmFtZSA9ICdNeSBDb250cmFjdCcsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdhbiBFUkMyMCBpbXBsZW1lbnRhdGlvbicsCiAgICAgICAgICAgICAgICBhYmkgPSBbeyJpbnB1dHMiOlt7ImludGVybmFsVHlwZSI6ImFkZHJlc3MiLCJuYW1lIjoiaW1wbGVtZW50YXRpb24iLCJ0eXBlIjoiYWRkcmVzcyJ9LHsiaW50ZXJuYWxUeXBlIjoiYnl0ZXMiLCJuYW1lIjoiX2RhdGEiLCJ0eXBlIjoiYnl0ZXMifV0sInN0YXRlTXV0YWJpbGl0eSI6InBheWFibGUiLCJ0eXBlIjoiY29uc3RydWN0b3IifV0sCiAgICAgICAgICAgICAgICBpc19wdWJsaWMgPSBUcnVlLAogICAgICAgICAgICAgICAgaW5pdGlhbGl6YXRpb25fcGhhc2UgPSAnT05fREVQTE9ZTUVOVCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29udHJhY3RUZW1wbGF0ZUR0byhzZWxmKToKICAgICAgICAiIiJUZXN0IENvbnRyYWN0VGVtcGxhdGVEdG8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_contract_templates_api.py b/test/test_contract_templates_api.py index 5aa2620d..56eab283 100644 --- a/test/test_contract_templates_api.py +++ b/test/test_contract_templates_api.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.contract_templates_api import ContractTemplatesApi - - -class TestContractTemplatesApi(unittest.TestCase): - """ContractTemplatesApi unit test stubs""" - - def setUp(self) -> None: - self.api = ContractTemplatesApi() - - def tearDown(self) -> None: - pass - - def test_delete_contract_template_by_id(self) -> None: - """Test case for delete_contract_template_by_id - - Delete a contract template by id - """ - pass - - def test_deploy_contract(self) -> None: - """Test case for deploy_contract - - Deploy contract - """ - pass - - def test_get_constructor_by_contract_template_id(self) -> None: - """Test case for get_constructor_by_contract_template_id - - Return contract template's constructor - """ - pass - - def test_get_contract_template_by_id(self) -> None: - """Test case for get_contract_template_by_id - - Return contract template by id - """ - pass - - def test_get_contract_templates(self) -> None: - """Test case for get_contract_templates - - List all contract templates - """ - pass - - def test_get_function_abi_by_contract_template_id(self) -> None: - """Test case for get_function_abi_by_contract_template_id - - Return contract template's function - """ - pass - - def test_get_supported_blockchains_by_template_id(self) -> None: - """Test case for get_supported_blockchains_by_template_id - - Get supported blockchains for the template - """ - pass - - def test_upload_contract_template(self) -> None: - """Test case for upload_contract_template - - Upload contract template - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLmNvbnRyYWN0X3RlbXBsYXRlc19hcGkgaW1wb3J0IENvbnRyYWN0VGVtcGxhdGVzQXBpCgoKY2xhc3MgVGVzdENvbnRyYWN0VGVtcGxhdGVzQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbnRyYWN0VGVtcGxhdGVzQXBpIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKSAtPiBOb25lOgogICAgICAgIHNlbGYuYXBpID0gQ29udHJhY3RUZW1wbGF0ZXNBcGkoKQoKICAgIGRlZiB0ZWFyRG93bihzZWxmKSAtPiBOb25lOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9kZWxldGVfY29udHJhY3RfdGVtcGxhdGVfYnlfaWQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGRlbGV0ZV9jb250cmFjdF90ZW1wbGF0ZV9ieV9pZAoKICAgICAgICBEZWxldGUgYSBjb250cmFjdCB0ZW1wbGF0ZSBieSBpZAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9kZXBsb3lfY29udHJhY3Qoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGRlcGxveV9jb250cmFjdAoKICAgICAgICBEZXBsb3kgY29udHJhY3QKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2NvbnN0cnVjdG9yX2J5X2NvbnRyYWN0X3RlbXBsYXRlX2lkKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfY29uc3RydWN0b3JfYnlfY29udHJhY3RfdGVtcGxhdGVfaWQKCiAgICAgICAgUmV0dXJuIGNvbnRyYWN0IHRlbXBsYXRlJ3MgY29uc3RydWN0b3IKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2NvbnRyYWN0X3RlbXBsYXRlX2J5X2lkKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfY29udHJhY3RfdGVtcGxhdGVfYnlfaWQKCiAgICAgICAgUmV0dXJuIGNvbnRyYWN0IHRlbXBsYXRlIGJ5IGlkCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9jb250cmFjdF90ZW1wbGF0ZXMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9jb250cmFjdF90ZW1wbGF0ZXMKCiAgICAgICAgTGlzdCBhbGwgY29udHJhY3QgdGVtcGxhdGVzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9mdW5jdGlvbl9hYmlfYnlfY29udHJhY3RfdGVtcGxhdGVfaWQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9mdW5jdGlvbl9hYmlfYnlfY29udHJhY3RfdGVtcGxhdGVfaWQKCiAgICAgICAgUmV0dXJuIGNvbnRyYWN0IHRlbXBsYXRlJ3MgZnVuY3Rpb24KICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3N1cHBvcnRlZF9ibG9ja2NoYWluc19ieV90ZW1wbGF0ZV9pZChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X3N1cHBvcnRlZF9ibG9ja2NoYWluc19ieV90ZW1wbGF0ZV9pZAoKICAgICAgICBHZXQgc3VwcG9ydGVkIGJsb2NrY2hhaW5zIGZvciB0aGUgdGVtcGxhdGUKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfdXBsb2FkX2NvbnRyYWN0X3RlbXBsYXRlKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciB1cGxvYWRfY29udHJhY3RfdGVtcGxhdGUKCiAgICAgICAgVXBsb2FkIGNvbnRyYWN0IHRlbXBsYXRlCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_contract_upload_request.py b/test/test_contract_upload_request.py index 2b4af6b9..46b16ecc 100644 --- a/test/test_contract_upload_request.py +++ b/test/test_contract_upload_request.py @@ -1,87 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.contract_upload_request import ContractUploadRequest - - -class TestContractUploadRequest(unittest.TestCase): - """ContractUploadRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ContractUploadRequest: - """Test ContractUploadRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ContractUploadRequest` - """ - model = ContractUploadRequest() - if include_optional: - return ContractUploadRequest( - name = 'My Contract', - description = 'an ERC20 implementation', - long_description = 'a full ERC20 implementation, containing the following: - - - mint - - burn -', - bytecode = '', - sourcecode = '', - type = 'FUNGIBLE_TOKEN', - docs = fireblocks.models.contract_doc.ContractDoc( - details = 'A token that can be minted and burned', - events = 'Upgraded(address): {"details": "Emitted when the implementation is upgraded."}', - kind = 'dev', - methods = {"constructor":{"details":"Initializes the contract"}}, - version = 1, ), - abi = [{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"}], - attributes = fireblocks.models.contract_attributes.ContractAttributes( - use_cases = [ - '' - ], - standards = [ - '' - ], - auditor = fireblocks.models.auditor_data.AuditorData( - name = '', - image_url = '', - link = '', ), ), - protocol = 'ETH' - ) - else: - return ContractUploadRequest( - name = 'My Contract', - description = 'an ERC20 implementation', - bytecode = '', - type = 'FUNGIBLE_TOKEN', - abi = [{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"}], - ) - """ - - def testContractUploadRequest(self): - """Test ContractUploadRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X3VwbG9hZF9yZXF1ZXN0IGltcG9ydCBDb250cmFjdFVwbG9hZFJlcXVlc3QKCgpjbGFzcyBUZXN0Q29udHJhY3RVcGxvYWRSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbnRyYWN0VXBsb2FkUmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ29udHJhY3RVcGxvYWRSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgQ29udHJhY3RVcGxvYWRSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbnRyYWN0VXBsb2FkUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENvbnRyYWN0VXBsb2FkUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbnRyYWN0VXBsb2FkUmVxdWVzdCgKICAgICAgICAgICAgICAgIG5hbWUgPSAnTXkgQ29udHJhY3QnLAogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnYW4gRVJDMjAgaW1wbGVtZW50YXRpb24nLAogICAgICAgICAgICAgICAgbG9uZ19kZXNjcmlwdGlvbiA9ICdhIGZ1bGwgRVJDMjAgaW1wbGVtZW50YXRpb24sIGNvbnRhaW5pbmcgdGhlIGZvbGxvd2luZzoKCiAtIG1pbnQKIC0gYnVybgonLAogICAgICAgICAgICAgICAgYnl0ZWNvZGUgPSAnJywKICAgICAgICAgICAgICAgIHNvdXJjZWNvZGUgPSAnJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnRlVOR0lCTEVfVE9LRU4nLAogICAgICAgICAgICAgICAgZG9jcyA9IGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X2RvYy5Db250cmFjdERvYygKICAgICAgICAgICAgICAgICAgICBkZXRhaWxzID0gJ0EgdG9rZW4gdGhhdCBjYW4gYmUgbWludGVkIGFuZCBidXJuZWQnLCAKICAgICAgICAgICAgICAgICAgICBldmVudHMgPSAnVXBncmFkZWQoYWRkcmVzcyk6IHsiZGV0YWlscyI6ICJFbWl0dGVkIHdoZW4gdGhlIGltcGxlbWVudGF0aW9uIGlzIHVwZ3JhZGVkLiJ9JywgCiAgICAgICAgICAgICAgICAgICAga2luZCA9ICdkZXYnLCAKICAgICAgICAgICAgICAgICAgICBtZXRob2RzID0geyJjb25zdHJ1Y3RvciI6eyJkZXRhaWxzIjoiSW5pdGlhbGl6ZXMgdGhlIGNvbnRyYWN0In19LCAKICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uID0gMSwgKSwKICAgICAgICAgICAgICAgIGFiaSA9IFt7ImlucHV0cyI6W3siaW50ZXJuYWxUeXBlIjoiYWRkcmVzcyIsIm5hbWUiOiJpbXBsZW1lbnRhdGlvbiIsInR5cGUiOiJhZGRyZXNzIn0seyJpbnRlcm5hbFR5cGUiOiJieXRlcyIsIm5hbWUiOiJfZGF0YSIsInR5cGUiOiJieXRlcyJ9XSwic3RhdGVNdXRhYmlsaXR5IjoicGF5YWJsZSIsInR5cGUiOiJjb25zdHJ1Y3RvciJ9XSwKICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9hdHRyaWJ1dGVzLkNvbnRyYWN0QXR0cmlidXRlcygKICAgICAgICAgICAgICAgICAgICB1c2VfY2FzZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgIHN0YW5kYXJkcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgYXVkaXRvciA9IGZpcmVibG9ja3MubW9kZWxzLmF1ZGl0b3JfZGF0YS5BdWRpdG9yRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VfdXJsID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBsaW5rID0gJycsICksICksCiAgICAgICAgICAgICAgICBwcm90b2NvbCA9ICdFVEgnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29udHJhY3RVcGxvYWRSZXF1ZXN0KAogICAgICAgICAgICAgICAgbmFtZSA9ICdNeSBDb250cmFjdCcsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdhbiBFUkMyMCBpbXBsZW1lbnRhdGlvbicsCiAgICAgICAgICAgICAgICBieXRlY29kZSA9ICcnLAogICAgICAgICAgICAgICAgdHlwZSA9ICdGVU5HSUJMRV9UT0tFTicsCiAgICAgICAgICAgICAgICBhYmkgPSBbeyJpbnB1dHMiOlt7ImludGVybmFsVHlwZSI6ImFkZHJlc3MiLCJuYW1lIjoiaW1wbGVtZW50YXRpb24iLCJ0eXBlIjoiYWRkcmVzcyJ9LHsiaW50ZXJuYWxUeXBlIjoiYnl0ZXMiLCJuYW1lIjoiX2RhdGEiLCJ0eXBlIjoiYnl0ZXMifV0sInN0YXRlTXV0YWJpbGl0eSI6InBheWFibGUiLCJ0eXBlIjoiY29uc3RydWN0b3IifV0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29udHJhY3RVcGxvYWRSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29udHJhY3RVcGxvYWRSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_contract_with_abi_dto.py b/test/test_contract_with_abi_dto.py index 66e8528b..fcb78038 100644 --- a/test/test_contract_with_abi_dto.py +++ b/test/test_contract_with_abi_dto.py @@ -1,65 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.contract_with_abi_dto import ContractWithAbiDto - - -class TestContractWithAbiDto(unittest.TestCase): - """ContractWithAbiDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ContractWithAbiDto: - """Test ContractWithAbiDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ContractWithAbiDto` - """ - model = ContractWithAbiDto() - if include_optional: - return ContractWithAbiDto( - contract_address = '0xfff9976782d46cc05630d1f6ebab18b2324d6b14', - base_asset_id = 'ETH_TEST6', - name = 'WETH9', - abi = [{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"}], - is_proxy = True, - implementation = '0xfff9976782d46cc05630d1f6ebab18b2324d6b14', - is_public = True - ) - else: - return ContractWithAbiDto( - contract_address = '0xfff9976782d46cc05630d1f6ebab18b2324d6b14', - base_asset_id = 'ETH_TEST6', - name = 'WETH9', - abi = [{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"}], - is_public = True, - ) - """ - - def testContractWithAbiDto(self): - """Test ContractWithAbiDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnRyYWN0X3dpdGhfYWJpX2R0byBpbXBvcnQgQ29udHJhY3RXaXRoQWJpRHRvCgoKY2xhc3MgVGVzdENvbnRyYWN0V2l0aEFiaUR0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb250cmFjdFdpdGhBYmlEdG8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbnRyYWN0V2l0aEFiaUR0bzoKICAgICAgICAiIiJUZXN0IENvbnRyYWN0V2l0aEFiaUR0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb250cmFjdFdpdGhBYmlEdG9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb250cmFjdFdpdGhBYmlEdG8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDb250cmFjdFdpdGhBYmlEdG8oCiAgICAgICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzID0gJzB4ZmZmOTk3Njc4MmQ0NmNjMDU2MzBkMWY2ZWJhYjE4YjIzMjRkNmIxNCcsCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0X2lkID0gJ0VUSF9URVNUNicsCiAgICAgICAgICAgICAgICBuYW1lID0gJ1dFVEg5JywKICAgICAgICAgICAgICAgIGFiaSA9IFt7ImlucHV0cyI6W3siaW50ZXJuYWxUeXBlIjoiYWRkcmVzcyIsIm5hbWUiOiJ0byIsInR5cGUiOiJhZGRyZXNzIn0seyJpbnRlcm5hbFR5cGUiOiJ1aW50MjU2IiwibmFtZSI6ImFtb3VudCIsInR5cGUiOiJ1aW50MjU2In1dLCJzdGF0ZU11dGFiaWxpdHkiOiJub25wYXlhYmxlIiwidHlwZSI6ImZ1bmN0aW9uIiwibmFtZSI6Im1pbnQifV0sCiAgICAgICAgICAgICAgICBpc19wcm94eSA9IFRydWUsCiAgICAgICAgICAgICAgICBpbXBsZW1lbnRhdGlvbiA9ICcweGZmZjk5NzY3ODJkNDZjYzA1NjMwZDFmNmViYWIxOGIyMzI0ZDZiMTQnLAogICAgICAgICAgICAgICAgaXNfcHVibGljID0gVHJ1ZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvbnRyYWN0V2l0aEFiaUR0bygKICAgICAgICAgICAgICAgIGNvbnRyYWN0X2FkZHJlc3MgPSAnMHhmZmY5OTc2NzgyZDQ2Y2MwNTYzMGQxZjZlYmFiMThiMjMyNGQ2YjE0JywKICAgICAgICAgICAgICAgIGJhc2VfYXNzZXRfaWQgPSAnRVRIX1RFU1Q2JywKICAgICAgICAgICAgICAgIG5hbWUgPSAnV0VUSDknLAogICAgICAgICAgICAgICAgYWJpID0gW3siaW5wdXRzIjpbeyJpbnRlcm5hbFR5cGUiOiJhZGRyZXNzIiwibmFtZSI6InRvIiwidHlwZSI6ImFkZHJlc3MifSx7ImludGVybmFsVHlwZSI6InVpbnQyNTYiLCJuYW1lIjoiYW1vdW50IiwidHlwZSI6InVpbnQyNTYifV0sInN0YXRlTXV0YWJpbGl0eSI6Im5vbnBheWFibGUiLCJ0eXBlIjoiZnVuY3Rpb24iLCJuYW1lIjoibWludCJ9XSwKICAgICAgICAgICAgICAgIGlzX3B1YmxpYyA9IFRydWUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29udHJhY3RXaXRoQWJpRHRvKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29udHJhY3RXaXRoQWJpRHRvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_contracts_api.py b/test/test_contracts_api.py index eceb9a14..bfa1f7e9 100644 --- a/test/test_contracts_api.py +++ b/test/test_contracts_api.py @@ -1,81 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.contracts_api import ContractsApi - - -class TestContractsApi(unittest.TestCase): - """ContractsApi unit test stubs""" - - def setUp(self) -> None: - self.api = ContractsApi() - - def tearDown(self) -> None: - pass - - def test_add_contract_asset(self) -> None: - """Test case for add_contract_asset - - Add an asset to a whitelisted contract - """ - pass - - def test_create_contract(self) -> None: - """Test case for create_contract - - Add a contract - """ - pass - - def test_delete_contract(self) -> None: - """Test case for delete_contract - - Delete a contract - """ - pass - - def test_delete_contract_asset(self) -> None: - """Test case for delete_contract_asset - - Delete an asset from a whitelisted contract - """ - pass - - def test_get_contract(self) -> None: - """Test case for get_contract - - Find a Specific Whitelisted Contract - """ - pass - - def test_get_contract_asset(self) -> None: - """Test case for get_contract_asset - - Find a whitelisted contract's asset - """ - pass - - def test_get_contracts(self) -> None: - """Test case for get_contracts - - List Whitelisted Contracts - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLmNvbnRyYWN0c19hcGkgaW1wb3J0IENvbnRyYWN0c0FwaQoKCmNsYXNzIFRlc3RDb250cmFjdHNBcGkodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ29udHJhY3RzQXBpIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKSAtPiBOb25lOgogICAgICAgIHNlbGYuYXBpID0gQ29udHJhY3RzQXBpKCkKCiAgICBkZWYgdGVhckRvd24oc2VsZikgLT4gTm9uZToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfYWRkX2NvbnRyYWN0X2Fzc2V0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBhZGRfY29udHJhY3RfYXNzZXQKCiAgICAgICAgQWRkIGFuIGFzc2V0IHRvIGEgd2hpdGVsaXN0ZWQgY29udHJhY3QKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY3JlYXRlX2NvbnRyYWN0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBjcmVhdGVfY29udHJhY3QKCiAgICAgICAgQWRkIGEgY29udHJhY3QKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZGVsZXRlX2NvbnRyYWN0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBkZWxldGVfY29udHJhY3QKCiAgICAgICAgRGVsZXRlIGEgY29udHJhY3QKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZGVsZXRlX2NvbnRyYWN0X2Fzc2V0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBkZWxldGVfY29udHJhY3RfYXNzZXQKCiAgICAgICAgRGVsZXRlIGFuIGFzc2V0IGZyb20gYSB3aGl0ZWxpc3RlZCBjb250cmFjdAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfY29udHJhY3Qoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9jb250cmFjdAoKICAgICAgICBGaW5kIGEgU3BlY2lmaWMgV2hpdGVsaXN0ZWQgQ29udHJhY3QKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2NvbnRyYWN0X2Fzc2V0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfY29udHJhY3RfYXNzZXQKCiAgICAgICAgRmluZCBhIHdoaXRlbGlzdGVkIGNvbnRyYWN0J3MgYXNzZXQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2NvbnRyYWN0cyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2NvbnRyYWN0cwoKICAgICAgICBMaXN0IFdoaXRlbGlzdGVkIENvbnRyYWN0cwogICAgICAgICIiIgogICAgICAgIHBhc3MKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_conversion_config_operation.py b/test/test_conversion_config_operation.py index a7df44e7..1ff00dfc 100644 --- a/test/test_conversion_config_operation.py +++ b/test/test_conversion_config_operation.py @@ -1,76 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.conversion_config_operation import ConversionConfigOperation - - -class TestConversionConfigOperation(unittest.TestCase): - """ConversionConfigOperation unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConversionConfigOperation: - """Test ConversionConfigOperation - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConversionConfigOperation` - """ - model = ConversionConfigOperation() - if include_optional: - return ConversionConfigOperation( - operation_id = '', - type = 'CONVERSION', - params = fireblocks.models.conversion_operation_config_params.ConversionOperationConfigParams( - amount = '', - account_id = '', - src_asset_id = '', - dest_asset_id = '', - slippage_basis_points = 0, ), - status = 'PENDING', - validation_failure = fireblocks.models.conversion_validation_failure.ConversionValidationFailure( - reason = 'ACCOUNT_NOT_FOUND', - data = { - 'key' : null - }, ) - ) - else: - return ConversionConfigOperation( - operation_id = '', - type = 'CONVERSION', - params = fireblocks.models.conversion_operation_config_params.ConversionOperationConfigParams( - amount = '', - account_id = '', - src_asset_id = '', - dest_asset_id = '', - slippage_basis_points = 0, ), - status = 'PENDING', - ) - """ - - def testConversionConfigOperation(self): - """Test ConversionConfigOperation""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fY29uZmlnX29wZXJhdGlvbiBpbXBvcnQgQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvbgoKCmNsYXNzIFRlc3RDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbnZlcnNpb25Db25maWdPcGVyYXRpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbnZlcnNpb25Db25maWdPcGVyYXRpb246CiAgICAgICAgIiIiVGVzdCBDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbnZlcnNpb25Db25maWdPcGVyYXRpb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvbigKICAgICAgICAgICAgICAgIG9wZXJhdGlvbl9pZCA9ICcnLAogICAgICAgICAgICAgICAgdHlwZSA9ICdDT05WRVJTSU9OJywKICAgICAgICAgICAgICAgIHBhcmFtcyA9IGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMuQ29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtcygKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBzcmNfYXNzZXRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgZGVzdF9hc3NldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBzbGlwcGFnZV9iYXNpc19wb2ludHMgPSAwLCApLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ1BFTkRJTkcnLAogICAgICAgICAgICAgICAgdmFsaWRhdGlvbl9mYWlsdXJlID0gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl92YWxpZGF0aW9uX2ZhaWx1cmUuQ29udmVyc2lvblZhbGlkYXRpb25GYWlsdXJlKAogICAgICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdBQ0NPVU5UX05PVF9GT1VORCcsIAogICAgICAgICAgICAgICAgICAgIGRhdGEgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICdrZXknIDogbnVsbAogICAgICAgICAgICAgICAgICAgICAgICB9LCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvbigKICAgICAgICAgICAgICAgIG9wZXJhdGlvbl9pZCA9ICcnLAogICAgICAgICAgICAgICAgdHlwZSA9ICdDT05WRVJTSU9OJywKICAgICAgICAgICAgICAgIHBhcmFtcyA9IGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMuQ29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtcygKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBzcmNfYXNzZXRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgZGVzdF9hc3NldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBzbGlwcGFnZV9iYXNpc19wb2ludHMgPSAwLCApLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ1BFTkRJTkcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbnZlcnNpb25Db25maWdPcGVyYXRpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_conversion_operation_config_params.py b/test/test_conversion_operation_config_params.py index 1d58a7ea..3604d966 100644 --- a/test/test_conversion_operation_config_params.py +++ b/test/test_conversion_operation_config_params.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.conversion_operation_config_params import ( - ConversionOperationConfigParams, -) - - -class TestConversionOperationConfigParams(unittest.TestCase): - """ConversionOperationConfigParams unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConversionOperationConfigParams: - """Test ConversionOperationConfigParams - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConversionOperationConfigParams` - """ - model = ConversionOperationConfigParams() - if include_optional: - return ConversionOperationConfigParams( - amount = '', - account_id = '', - src_asset_id = '', - dest_asset_id = '', - slippage_basis_points = 0 - ) - else: - return ConversionOperationConfigParams( - dest_asset_id = '', - ) - """ - - def testConversionOperationConfigParams(self): - """Test ConversionOperationConfigParams""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMgaW1wb3J0ICgKICAgIENvbnZlcnNpb25PcGVyYXRpb25Db25maWdQYXJhbXMsCikKCgpjbGFzcyBUZXN0Q29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtcyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zOgogICAgICAgICIiIlRlc3QgQ29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtcwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtcygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbnZlcnNpb25PcGVyYXRpb25Db25maWdQYXJhbXMoCiAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywKICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnJywKICAgICAgICAgICAgICAgIHNyY19hc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgZGVzdF9hc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgc2xpcHBhZ2VfYmFzaXNfcG9pbnRzID0gMAogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvbnZlcnNpb25PcGVyYXRpb25Db25maWdQYXJhbXMoCiAgICAgICAgICAgICAgICBkZXN0X2Fzc2V0X2lkID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtcyhzZWxmKToKICAgICAgICAiIiJUZXN0IENvbnZlcnNpb25PcGVyYXRpb25Db25maWdQYXJhbXMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_conversion_operation_execution.py b/test/test_conversion_operation_execution.py index 6f3a2e16..ed18fcf1 100644 --- a/test/test_conversion_operation_execution.py +++ b/test/test_conversion_operation_execution.py @@ -1,83 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.conversion_operation_execution import ( - ConversionOperationExecution, -) - - -class TestConversionOperationExecution(unittest.TestCase): - """ConversionOperationExecution unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConversionOperationExecution: - """Test ConversionOperationExecution - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConversionOperationExecution` - """ - model = ConversionOperationExecution() - if include_optional: - return ConversionOperationExecution( - input = fireblocks.models.conversion_operation_config_params.ConversionOperationConfigParams( - amount = '', - account_id = '', - src_asset_id = '', - dest_asset_id = '', - slippage_basis_points = 0, ), - output = fireblocks.models.conversion_operation_execution_output.ConversionOperationExecutionOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - conversion_rate = '', ), - started_at = 1.337, - finished_at = 1.337, - failure = fireblocks.models.conversion_operation_failure.ConversionOperationFailure( - reason = 'INVALID_AMOUNT', - data = { - 'key' : null - }, ) - ) - else: - return ConversionOperationExecution( - input = fireblocks.models.conversion_operation_config_params.ConversionOperationConfigParams( - amount = '', - account_id = '', - src_asset_id = '', - dest_asset_id = '', - slippage_basis_points = 0, ), - started_at = 1.337, - ) - """ - - def testConversionOperationExecution(self): - """Test ConversionOperationExecution""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbiBpbXBvcnQgKAogICAgQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvbiwKKQoKCmNsYXNzIFRlc3RDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb246CiAgICAgICAgIiIiVGVzdCBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvbigKICAgICAgICAgICAgICAgIGlucHV0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fY29uZmlnX3BhcmFtcy5Db252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zKAogICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgIHNyY19hc3NldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBkZXN0X2Fzc2V0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgIHNsaXBwYWdlX2Jhc2lzX3BvaW50cyA9IDAsICksCiAgICAgICAgICAgICAgICBvdXRwdXQgPSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJzaW9uX29wZXJhdGlvbl9leGVjdXRpb25fb3V0cHV0LkNvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25PdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfYW1vdW50LkFzc2V0QW1vdW50KAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksIAogICAgICAgICAgICAgICAgICAgIGZlZSA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2Ftb3VudC5Bc3NldEFtb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLCApLCAKICAgICAgICAgICAgICAgICAgICBjb252ZXJzaW9uX3JhdGUgPSAnJywgKSwKICAgICAgICAgICAgICAgIHN0YXJ0ZWRfYXQgPSAxLjMzNywKICAgICAgICAgICAgICAgIGZpbmlzaGVkX2F0ID0gMS4zMzcsCiAgICAgICAgICAgICAgICBmYWlsdXJlID0gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fZmFpbHVyZS5Db252ZXJzaW9uT3BlcmF0aW9uRmFpbHVyZSgKICAgICAgICAgICAgICAgICAgICByZWFzb24gPSAnSU5WQUxJRF9BTU9VTlQnLCAKICAgICAgICAgICAgICAgICAgICBkYXRhID0gewogICAgICAgICAgICAgICAgICAgICAgICAna2V5JyA6IG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgfSwgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb24oCiAgICAgICAgICAgICAgICBpbnB1dCA9IGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMuQ29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtcygKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBzcmNfYXNzZXRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgZGVzdF9hc3NldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBzbGlwcGFnZV9iYXNpc19wb2ludHMgPSAwLCApLAogICAgICAgICAgICAgICAgc3RhcnRlZF9hdCA9IDEuMzM3LAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_conversion_operation_execution_output.py b/test/test_conversion_operation_execution_output.py index c6b539cf..13007ca8 100644 --- a/test/test_conversion_operation_execution_output.py +++ b/test/test_conversion_operation_execution_output.py @@ -1,69 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.conversion_operation_execution_output import ( - ConversionOperationExecutionOutput, -) - - -class TestConversionOperationExecutionOutput(unittest.TestCase): - """ConversionOperationExecutionOutput unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConversionOperationExecutionOutput: - """Test ConversionOperationExecutionOutput - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConversionOperationExecutionOutput` - """ - model = ConversionOperationExecutionOutput() - if include_optional: - return ConversionOperationExecutionOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - conversion_rate = '' - ) - else: - return ConversionOperationExecutionOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - conversion_rate = '', - ) - """ - - def testConversionOperationExecutionOutput(self): - """Test ConversionOperationExecutionOutput""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXQgaW1wb3J0ICgKICAgIENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25PdXRwdXQsCikKCgpjbGFzcyBUZXN0Q29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0OgogICAgICAgICIiIlRlc3QgQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25PdXRwdXQoCiAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksCiAgICAgICAgICAgICAgICBmZWUgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksCiAgICAgICAgICAgICAgICBjb252ZXJzaW9uX3JhdGUgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25PdXRwdXQoCiAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksCiAgICAgICAgICAgICAgICBmZWUgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksCiAgICAgICAgICAgICAgICBjb252ZXJzaW9uX3JhdGUgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_conversion_operation_execution_params.py b/test/test_conversion_operation_execution_params.py index 4bcf4d7c..d8ae8527 100644 --- a/test/test_conversion_operation_execution_params.py +++ b/test/test_conversion_operation_execution_params.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.conversion_operation_execution_params import ( - ConversionOperationExecutionParams, -) - - -class TestConversionOperationExecutionParams(unittest.TestCase): - """ConversionOperationExecutionParams unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConversionOperationExecutionParams: - """Test ConversionOperationExecutionParams - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConversionOperationExecutionParams` - """ - model = ConversionOperationExecutionParams() - if include_optional: - return ConversionOperationExecutionParams( - config_operation_id = '', - execution_params = fireblocks.models.conversion_operation_execution_params_execution_params.ConversionOperationExecutionParams_executionParams( - amount = '', - account_id = '', - src_asset_id = '', - dest_asset_id = '', - slippage_basis_points = 0, ) - ) - else: - return ConversionOperationExecutionParams( - config_operation_id = '', - ) - """ - - def testConversionOperationExecutionParams(self): - """Test ConversionOperationExecutionParams""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXMgaW1wb3J0ICgKICAgIENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXMsCikKCgpjbGFzcyBUZXN0Q29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zOgogICAgICAgICIiIlRlc3QgQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXMoCiAgICAgICAgICAgICAgICBjb25maWdfb3BlcmF0aW9uX2lkID0gJycsCiAgICAgICAgICAgICAgICBleGVjdXRpb25fcGFyYW1zID0gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtc19leGVjdXRpb25fcGFyYW1zLkNvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXNfZXhlY3V0aW9uUGFyYW1zKAogICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgIHNyY19hc3NldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBkZXN0X2Fzc2V0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgIHNsaXBwYWdlX2Jhc2lzX3BvaW50cyA9IDAsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zKAogICAgICAgICAgICAgICAgY29uZmlnX29wZXJhdGlvbl9pZCA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_conversion_operation_execution_params_execution_params.py b/test/test_conversion_operation_execution_params_execution_params.py index 4e7d99d0..da287740 100644 --- a/test/test_conversion_operation_execution_params_execution_params.py +++ b/test/test_conversion_operation_execution_params_execution_params.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.conversion_operation_execution_params_execution_params import ( - ConversionOperationExecutionParamsExecutionParams, -) - - -class TestConversionOperationExecutionParamsExecutionParams(unittest.TestCase): - """ConversionOperationExecutionParamsExecutionParams unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> ConversionOperationExecutionParamsExecutionParams: - """Test ConversionOperationExecutionParamsExecutionParams - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConversionOperationExecutionParamsExecutionParams` - """ - model = ConversionOperationExecutionParamsExecutionParams() - if include_optional: - return ConversionOperationExecutionParamsExecutionParams( - amount = '', - account_id = '', - src_asset_id = '', - dest_asset_id = '', - slippage_basis_points = 0 - ) - else: - return ConversionOperationExecutionParamsExecutionParams( - ) - """ - - def testConversionOperationExecutionParamsExecutionParams(self): - """Test ConversionOperationExecutionParamsExecutionParams""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXNfZXhlY3V0aW9uX3BhcmFtcyBpbXBvcnQgKAogICAgQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtcywKKQoKCmNsYXNzIFRlc3RDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKAogICAgICAgIHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwKICAgICkgLT4gQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtczoKICAgICAgICAiIiJUZXN0IENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ29udmVyc2lvbk9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zKAogICAgICAgICAgICAgICAgYW1vdW50ID0gJycsCiAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsCiAgICAgICAgICAgICAgICBzcmNfYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIGRlc3RfYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIHNsaXBwYWdlX2Jhc2lzX3BvaW50cyA9IDAKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbnZlcnNpb25PcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_conversion_operation_failure.py b/test/test_conversion_operation_failure.py index f811d070..21e56a07 100644 --- a/test/test_conversion_operation_failure.py +++ b/test/test_conversion_operation_failure.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.conversion_operation_failure import ConversionOperationFailure - - -class TestConversionOperationFailure(unittest.TestCase): - """ConversionOperationFailure unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConversionOperationFailure: - """Test ConversionOperationFailure - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConversionOperationFailure` - """ - model = ConversionOperationFailure() - if include_optional: - return ConversionOperationFailure( - reason = 'INVALID_AMOUNT', - data = { - 'key' : null - } - ) - else: - return ConversionOperationFailure( - reason = 'INVALID_AMOUNT', - ) - """ - - def testConversionOperationFailure(self): - """Test ConversionOperationFailure""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2ZhaWx1cmUgaW1wb3J0IENvbnZlcnNpb25PcGVyYXRpb25GYWlsdXJlCgoKY2xhc3MgVGVzdENvbnZlcnNpb25PcGVyYXRpb25GYWlsdXJlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbnZlcnNpb25PcGVyYXRpb25GYWlsdXJlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb252ZXJzaW9uT3BlcmF0aW9uRmFpbHVyZToKICAgICAgICAiIiJUZXN0IENvbnZlcnNpb25PcGVyYXRpb25GYWlsdXJlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbnZlcnNpb25PcGVyYXRpb25GYWlsdXJlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29udmVyc2lvbk9wZXJhdGlvbkZhaWx1cmUoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDb252ZXJzaW9uT3BlcmF0aW9uRmFpbHVyZSgKICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdJTlZBTElEX0FNT1VOVCcsCiAgICAgICAgICAgICAgICBkYXRhID0gewogICAgICAgICAgICAgICAgICAgICdrZXknIDogbnVsbAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDb252ZXJzaW9uT3BlcmF0aW9uRmFpbHVyZSgKICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdJTlZBTElEX0FNT1VOVCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29udmVyc2lvbk9wZXJhdGlvbkZhaWx1cmUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb252ZXJzaW9uT3BlcmF0aW9uRmFpbHVyZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_conversion_operation_preview.py b/test/test_conversion_operation_preview.py index 886f2b1e..0482bf02 100644 --- a/test/test_conversion_operation_preview.py +++ b/test/test_conversion_operation_preview.py @@ -1,79 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.conversion_operation_preview import ConversionOperationPreview - - -class TestConversionOperationPreview(unittest.TestCase): - """ConversionOperationPreview unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConversionOperationPreview: - """Test ConversionOperationPreview - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConversionOperationPreview` - """ - model = ConversionOperationPreview() - if include_optional: - return ConversionOperationPreview( - input = fireblocks.models.conversion_operation_config_params.ConversionOperationConfigParams( - amount = '', - account_id = '', - src_asset_id = '', - dest_asset_id = '', - slippage_basis_points = 0, ), - output = fireblocks.models.conversion_operation_preview_output.ConversionOperationPreviewOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - conversion_rate = '', - time_seconds = 1.337, ), - failure = fireblocks.models.conversion_operation_failure.ConversionOperationFailure( - reason = 'INVALID_AMOUNT', - data = { - 'key' : null - }, ) - ) - else: - return ConversionOperationPreview( - input = fireblocks.models.conversion_operation_config_params.ConversionOperationConfigParams( - amount = '', - account_id = '', - src_asset_id = '', - dest_asset_id = '', - slippage_basis_points = 0, ), - ) - """ - - def testConversionOperationPreview(self): - """Test ConversionOperationPreview""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX3ByZXZpZXcgaW1wb3J0IENvbnZlcnNpb25PcGVyYXRpb25QcmV2aWV3CgoKY2xhc3MgVGVzdENvbnZlcnNpb25PcGVyYXRpb25QcmV2aWV3KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbnZlcnNpb25PcGVyYXRpb25QcmV2aWV3IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb252ZXJzaW9uT3BlcmF0aW9uUHJldmlldzoKICAgICAgICAiIiJUZXN0IENvbnZlcnNpb25PcGVyYXRpb25QcmV2aWV3CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbnZlcnNpb25PcGVyYXRpb25QcmV2aWV3YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXcoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDb252ZXJzaW9uT3BlcmF0aW9uUHJldmlldygKICAgICAgICAgICAgICAgIGlucHV0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fY29uZmlnX3BhcmFtcy5Db252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zKAogICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgIHNyY19hc3NldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBkZXN0X2Fzc2V0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgIHNsaXBwYWdlX2Jhc2lzX3BvaW50cyA9IDAsICksCiAgICAgICAgICAgICAgICBvdXRwdXQgPSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJzaW9uX29wZXJhdGlvbl9wcmV2aWV3X291dHB1dC5Db252ZXJzaW9uT3BlcmF0aW9uUHJldmlld091dHB1dCgKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgKSwgCiAgICAgICAgICAgICAgICAgICAgZmVlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfYW1vdW50LkFzc2V0QW1vdW50KAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksIAogICAgICAgICAgICAgICAgICAgIGNvbnZlcnNpb25fcmF0ZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICB0aW1lX3NlY29uZHMgPSAxLjMzNywgKSwKICAgICAgICAgICAgICAgIGZhaWx1cmUgPSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJzaW9uX29wZXJhdGlvbl9mYWlsdXJlLkNvbnZlcnNpb25PcGVyYXRpb25GYWlsdXJlKAogICAgICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdJTlZBTElEX0FNT1VOVCcsIAogICAgICAgICAgICAgICAgICAgIGRhdGEgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICdrZXknIDogbnVsbAogICAgICAgICAgICAgICAgICAgICAgICB9LCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXcoCiAgICAgICAgICAgICAgICBpbnB1dCA9IGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMuQ29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtcygKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBzcmNfYXNzZXRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgZGVzdF9hc3NldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBzbGlwcGFnZV9iYXNpc19wb2ludHMgPSAwLCApLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbnZlcnNpb25PcGVyYXRpb25QcmV2aWV3KHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXciIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_conversion_operation_preview_output.py b/test/test_conversion_operation_preview_output.py index e238fc33..d6dfdf43 100644 --- a/test/test_conversion_operation_preview_output.py +++ b/test/test_conversion_operation_preview_output.py @@ -1,71 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.conversion_operation_preview_output import ( - ConversionOperationPreviewOutput, -) - - -class TestConversionOperationPreviewOutput(unittest.TestCase): - """ConversionOperationPreviewOutput unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConversionOperationPreviewOutput: - """Test ConversionOperationPreviewOutput - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConversionOperationPreviewOutput` - """ - model = ConversionOperationPreviewOutput() - if include_optional: - return ConversionOperationPreviewOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - conversion_rate = '', - time_seconds = 1.337 - ) - else: - return ConversionOperationPreviewOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - conversion_rate = '', - time_seconds = 1.337, - ) - """ - - def testConversionOperationPreviewOutput(self): - """Test ConversionOperationPreviewOutput""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX3ByZXZpZXdfb3V0cHV0IGltcG9ydCAoCiAgICBDb252ZXJzaW9uT3BlcmF0aW9uUHJldmlld091dHB1dCwKKQoKCmNsYXNzIFRlc3RDb252ZXJzaW9uT3BlcmF0aW9uUHJldmlld091dHB1dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb252ZXJzaW9uT3BlcmF0aW9uUHJldmlld091dHB1dCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXdPdXRwdXQ6CiAgICAgICAgIiIiVGVzdCBDb252ZXJzaW9uT3BlcmF0aW9uUHJldmlld091dHB1dAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb252ZXJzaW9uT3BlcmF0aW9uUHJldmlld091dHB1dGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENvbnZlcnNpb25PcGVyYXRpb25QcmV2aWV3T3V0cHV0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXdPdXRwdXQoCiAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksCiAgICAgICAgICAgICAgICBmZWUgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksCiAgICAgICAgICAgICAgICBjb252ZXJzaW9uX3JhdGUgPSAnJywKICAgICAgICAgICAgICAgIHRpbWVfc2Vjb25kcyA9IDEuMzM3CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXdPdXRwdXQoCiAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksCiAgICAgICAgICAgICAgICBmZWUgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksCiAgICAgICAgICAgICAgICBjb252ZXJzaW9uX3JhdGUgPSAnJywKICAgICAgICAgICAgICAgIHRpbWVfc2Vjb25kcyA9IDEuMzM3LAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbnZlcnNpb25PcGVyYXRpb25QcmV2aWV3T3V0cHV0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29udmVyc2lvbk9wZXJhdGlvblByZXZpZXdPdXRwdXQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_conversion_operation_type.py b/test/test_conversion_operation_type.py index 4eba5b48..63540e93 100644 --- a/test/test_conversion_operation_type.py +++ b/test/test_conversion_operation_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.conversion_operation_type import ConversionOperationType - - -class TestConversionOperationType(unittest.TestCase): - """ConversionOperationType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testConversionOperationType(self): - """Test ConversionOperationType""" - # inst = ConversionOperationType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX3R5cGUgaW1wb3J0IENvbnZlcnNpb25PcGVyYXRpb25UeXBlCgoKY2xhc3MgVGVzdENvbnZlcnNpb25PcGVyYXRpb25UeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbnZlcnNpb25PcGVyYXRpb25UeXBlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdENvbnZlcnNpb25PcGVyYXRpb25UeXBlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29udmVyc2lvbk9wZXJhdGlvblR5cGUiIiIKICAgICAgICAjIGluc3QgPSBDb252ZXJzaW9uT3BlcmF0aW9uVHlwZSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_conversion_validation_failure.py b/test/test_conversion_validation_failure.py index 179121ad..098cb9a9 100644 --- a/test/test_conversion_validation_failure.py +++ b/test/test_conversion_validation_failure.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.conversion_validation_failure import ConversionValidationFailure - - -class TestConversionValidationFailure(unittest.TestCase): - """ConversionValidationFailure unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConversionValidationFailure: - """Test ConversionValidationFailure - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConversionValidationFailure` - """ - model = ConversionValidationFailure() - if include_optional: - return ConversionValidationFailure( - reason = 'ACCOUNT_NOT_FOUND', - data = { - 'key' : null - } - ) - else: - return ConversionValidationFailure( - reason = 'ACCOUNT_NOT_FOUND', - ) - """ - - def testConversionValidationFailure(self): - """Test ConversionValidationFailure""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fdmFsaWRhdGlvbl9mYWlsdXJlIGltcG9ydCBDb252ZXJzaW9uVmFsaWRhdGlvbkZhaWx1cmUKCgpjbGFzcyBUZXN0Q29udmVyc2lvblZhbGlkYXRpb25GYWlsdXJlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbnZlcnNpb25WYWxpZGF0aW9uRmFpbHVyZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ29udmVyc2lvblZhbGlkYXRpb25GYWlsdXJlOgogICAgICAgICIiIlRlc3QgQ29udmVyc2lvblZhbGlkYXRpb25GYWlsdXJlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbnZlcnNpb25WYWxpZGF0aW9uRmFpbHVyZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENvbnZlcnNpb25WYWxpZGF0aW9uRmFpbHVyZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbnZlcnNpb25WYWxpZGF0aW9uRmFpbHVyZSgKICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdBQ0NPVU5UX05PVF9GT1VORCcsCiAgICAgICAgICAgICAgICBkYXRhID0gewogICAgICAgICAgICAgICAgICAgICdrZXknIDogbnVsbAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDb252ZXJzaW9uVmFsaWRhdGlvbkZhaWx1cmUoCiAgICAgICAgICAgICAgICByZWFzb24gPSAnQUNDT1VOVF9OT1RfRk9VTkQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvbnZlcnNpb25WYWxpZGF0aW9uRmFpbHVyZShzZWxmKToKICAgICAgICAiIiJUZXN0IENvbnZlcnNpb25WYWxpZGF0aW9uRmFpbHVyZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_convert_assets_request.py b/test/test_convert_assets_request.py index 8bb22d8e..4ec62403 100644 --- a/test/test_convert_assets_request.py +++ b/test/test_convert_assets_request.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.convert_assets_request import ConvertAssetsRequest - - -class TestConvertAssetsRequest(unittest.TestCase): - """ConvertAssetsRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConvertAssetsRequest: - """Test ConvertAssetsRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConvertAssetsRequest` - """ - model = ConvertAssetsRequest() - if include_optional: - return ConvertAssetsRequest( - src_asset = '', - dest_asset = '', - amount = 1.337 - ) - else: - return ConvertAssetsRequest( - src_asset = '', - dest_asset = '', - amount = 1.337, - ) - """ - - def testConvertAssetsRequest(self): - """Test ConvertAssetsRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnRfYXNzZXRzX3JlcXVlc3QgaW1wb3J0IENvbnZlcnRBc3NldHNSZXF1ZXN0CgoKY2xhc3MgVGVzdENvbnZlcnRBc3NldHNSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbnZlcnRBc3NldHNSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb252ZXJ0QXNzZXRzUmVxdWVzdDoKICAgICAgICAiIiJUZXN0IENvbnZlcnRBc3NldHNSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbnZlcnRBc3NldHNSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29udmVydEFzc2V0c1JlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDb252ZXJ0QXNzZXRzUmVxdWVzdCgKICAgICAgICAgICAgICAgIHNyY19hc3NldCA9ICcnLAogICAgICAgICAgICAgICAgZGVzdF9hc3NldCA9ICcnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gMS4zMzcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDb252ZXJ0QXNzZXRzUmVxdWVzdCgKICAgICAgICAgICAgICAgIHNyY19hc3NldCA9ICcnLAogICAgICAgICAgICAgICAgZGVzdF9hc3NldCA9ICcnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gMS4zMzcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29udmVydEFzc2V0c1JlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb252ZXJ0QXNzZXRzUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_convert_assets_response.py b/test/test_convert_assets_response.py index a813070f..3bdd5b13 100644 --- a/test/test_convert_assets_response.py +++ b/test/test_convert_assets_response.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.convert_assets_response import ConvertAssetsResponse - - -class TestConvertAssetsResponse(unittest.TestCase): - """ConvertAssetsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ConvertAssetsResponse: - """Test ConvertAssetsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ConvertAssetsResponse` - """ - model = ConvertAssetsResponse() - if include_optional: - return ConvertAssetsResponse( - success = True - ) - else: - return ConvertAssetsResponse( - success = True, - ) - """ - - def testConvertAssetsResponse(self): - """Test ConvertAssetsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnRfYXNzZXRzX3Jlc3BvbnNlIGltcG9ydCBDb252ZXJ0QXNzZXRzUmVzcG9uc2UKCgpjbGFzcyBUZXN0Q29udmVydEFzc2V0c1Jlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvbnZlcnRBc3NldHNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ29udmVydEFzc2V0c1Jlc3BvbnNlOgogICAgICAgICIiIlRlc3QgQ29udmVydEFzc2V0c1Jlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvbnZlcnRBc3NldHNSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENvbnZlcnRBc3NldHNSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENvbnZlcnRBc3NldHNSZXNwb25zZSgKICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29udmVydEFzc2V0c1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgc3VjY2VzcyA9IFRydWUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29udmVydEFzc2V0c1Jlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29udmVydEFzc2V0c1Jlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_cosigner.py b/test/test_cosigner.py index aa05bbf6..d1fc2b8e 100644 --- a/test/test_cosigner.py +++ b/test/test_cosigner.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.cosigner import Cosigner - - -class TestCosigner(unittest.TestCase): - """Cosigner unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Cosigner: - """Test Cosigner - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Cosigner` - """ - model = Cosigner() - if include_optional: - return Cosigner( - archived = False, - id = '44fcead0-7053-4831-a53a-df7fb90d440f', - name = 'My Cosigner 1', - type = 'SGX', - version = fireblocks.models.version_summary.VersionSummary( - hash = 'a1b2c3d4e5', - name = '1.0.0 (December 2025)', ) - ) - else: - return Cosigner( - archived = False, - id = '44fcead0-7053-4831-a53a-df7fb90d440f', - ) - """ - - def testCosigner(self): - """Test Cosigner""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvc2lnbmVyIGltcG9ydCBDb3NpZ25lcgoKCmNsYXNzIFRlc3RDb3NpZ25lcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDb3NpZ25lciB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ29zaWduZXI6CiAgICAgICAgIiIiVGVzdCBDb3NpZ25lcgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDb3NpZ25lcmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENvc2lnbmVyKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ29zaWduZXIoCiAgICAgICAgICAgICAgICBhcmNoaXZlZCA9IEZhbHNlLAogICAgICAgICAgICAgICAgaWQgPSAnNDRmY2VhZDAtNzA1My00ODMxLWE1M2EtZGY3ZmI5MGQ0NDBmJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnTXkgQ29zaWduZXIgMScsCiAgICAgICAgICAgICAgICB0eXBlID0gJ1NHWCcsCiAgICAgICAgICAgICAgICB2ZXJzaW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMudmVyc2lvbl9zdW1tYXJ5LlZlcnNpb25TdW1tYXJ5KAogICAgICAgICAgICAgICAgICAgIGhhc2ggPSAnYTFiMmMzZDRlNScsIAogICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnMS4wLjAgKERlY2VtYmVyIDIwMjUpJywgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENvc2lnbmVyKAogICAgICAgICAgICAgICAgYXJjaGl2ZWQgPSBGYWxzZSwKICAgICAgICAgICAgICAgIGlkID0gJzQ0ZmNlYWQwLTcwNTMtNDgzMS1hNTNhLWRmN2ZiOTBkNDQwZicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q29zaWduZXIoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDb3NpZ25lciIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_cosigners_beta_api.py b/test/test_cosigners_beta_api.py index f0408a20..c5d7ad51 100644 --- a/test/test_cosigners_beta_api.py +++ b/test/test_cosigners_beta_api.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.cosigners_beta_api import CosignersBetaApi - - -class TestCosignersBetaApi(unittest.TestCase): - """CosignersBetaApi unit test stubs""" - - def setUp(self) -> None: - self.api = CosignersBetaApi() - - def tearDown(self) -> None: - pass - - def test_add_cosigner(self) -> None: - """Test case for add_cosigner - - Add cosigner - """ - pass - - def test_get_api_key(self) -> None: - """Test case for get_api_key - - Get API key - """ - pass - - def test_get_api_keys(self) -> None: - """Test case for get_api_keys - - Get all API keys - """ - pass - - def test_get_cosigner(self) -> None: - """Test case for get_cosigner - - Get cosigner - """ - pass - - def test_get_cosigners(self) -> None: - """Test case for get_cosigners - - Get all cosigners - """ - pass - - def test_get_request_status(self) -> None: - """Test case for get_request_status - - Get request status - """ - pass - - def test_pair_api_key(self) -> None: - """Test case for pair_api_key - - Pair API key - """ - pass - - def test_rename_cosigner(self) -> None: - """Test case for rename_cosigner - - Rename cosigner - """ - pass - - def test_unpair_api_key(self) -> None: - """Test case for unpair_api_key - - Unpair API key - """ - pass - - def test_update_callback_handler(self) -> None: - """Test case for update_callback_handler - - Update API key callback handler - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLmNvc2lnbmVyc19iZXRhX2FwaSBpbXBvcnQgQ29zaWduZXJzQmV0YUFwaQoKCmNsYXNzIFRlc3RDb3NpZ25lcnNCZXRhQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvc2lnbmVyc0JldGFBcGkgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgc2VsZi5hcGkgPSBDb3NpZ25lcnNCZXRhQXBpKCkKCiAgICBkZWYgdGVhckRvd24oc2VsZikgLT4gTm9uZToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfYWRkX2Nvc2lnbmVyKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBhZGRfY29zaWduZXIKCiAgICAgICAgQWRkIGNvc2lnbmVyCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9hcGlfa2V5KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfYXBpX2tleQoKICAgICAgICBHZXQgQVBJIGtleQogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfYXBpX2tleXMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9hcGlfa2V5cwoKICAgICAgICBHZXQgYWxsIEFQSSBrZXlzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9jb3NpZ25lcihzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2Nvc2lnbmVyCgogICAgICAgIEdldCBjb3NpZ25lcgogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfY29zaWduZXJzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfY29zaWduZXJzCgogICAgICAgIEdldCBhbGwgY29zaWduZXJzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9yZXF1ZXN0X3N0YXR1cyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X3JlcXVlc3Rfc3RhdHVzCgogICAgICAgIEdldCByZXF1ZXN0IHN0YXR1cwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9wYWlyX2FwaV9rZXkoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHBhaXJfYXBpX2tleQoKICAgICAgICBQYWlyIEFQSSBrZXkKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfcmVuYW1lX2Nvc2lnbmVyKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciByZW5hbWVfY29zaWduZXIKCiAgICAgICAgUmVuYW1lIGNvc2lnbmVyCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3VucGFpcl9hcGlfa2V5KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciB1bnBhaXJfYXBpX2tleQoKICAgICAgICBVbnBhaXIgQVBJIGtleQogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF91cGRhdGVfY2FsbGJhY2tfaGFuZGxlcihzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgdXBkYXRlX2NhbGxiYWNrX2hhbmRsZXIKCiAgICAgICAgVXBkYXRlIEFQSSBrZXkgY2FsbGJhY2sgaGFuZGxlcgogICAgICAgICIiIgogICAgICAgIHBhc3MKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_cosigners_paginated_response.py b/test/test_cosigners_paginated_response.py index 85aeff84..73878055 100644 --- a/test/test_cosigners_paginated_response.py +++ b/test/test_cosigners_paginated_response.py @@ -1,74 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.cosigners_paginated_response import CosignersPaginatedResponse - - -class TestCosignersPaginatedResponse(unittest.TestCase): - """CosignersPaginatedResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CosignersPaginatedResponse: - """Test CosignersPaginatedResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CosignersPaginatedResponse` - """ - model = CosignersPaginatedResponse() - if include_optional: - return CosignersPaginatedResponse( - data = [ - fireblocks.models.cosigner.Cosigner( - archived = False, - id = '44fcead0-7053-4831-a53a-df7fb90d440f', - name = 'My Cosigner 1', - type = 'SGX', - version = fireblocks.models.version_summary.VersionSummary( - hash = 'a1b2c3d4e5', - name = '1.0.0 (December 2025)', ), ) - ], - next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9' - ) - else: - return CosignersPaginatedResponse( - data = [ - fireblocks.models.cosigner.Cosigner( - archived = False, - id = '44fcead0-7053-4831-a53a-df7fb90d440f', - name = 'My Cosigner 1', - type = 'SGX', - version = fireblocks.models.version_summary.VersionSummary( - hash = 'a1b2c3d4e5', - name = '1.0.0 (December 2025)', ), ) - ], - ) - """ - - def testCosignersPaginatedResponse(self): - """Test CosignersPaginatedResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNvc2lnbmVyc19wYWdpbmF0ZWRfcmVzcG9uc2UgaW1wb3J0IENvc2lnbmVyc1BhZ2luYXRlZFJlc3BvbnNlCgoKY2xhc3MgVGVzdENvc2lnbmVyc1BhZ2luYXRlZFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNvc2lnbmVyc1BhZ2luYXRlZFJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDb3NpZ25lcnNQYWdpbmF0ZWRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IENvc2lnbmVyc1BhZ2luYXRlZFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENvc2lnbmVyc1BhZ2luYXRlZFJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ29zaWduZXJzUGFnaW5hdGVkUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDb3NpZ25lcnNQYWdpbmF0ZWRSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuY29zaWduZXIuQ29zaWduZXIoCiAgICAgICAgICAgICAgICAgICAgICAgIGFyY2hpdmVkID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICc0NGZjZWFkMC03MDUzLTQ4MzEtYTUzYS1kZjdmYjkwZDQ0MGYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdNeSBDb3NpZ25lciAxJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnU0dYJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb24gPSBmaXJlYmxvY2tzLm1vZGVscy52ZXJzaW9uX3N1bW1hcnkuVmVyc2lvblN1bW1hcnkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNoID0gJ2ExYjJjM2Q0ZTUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnMS4wLjAgKERlY2VtYmVyIDIwMjUpJywgKSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBuZXh0ID0gJ2VKMGVYQWlPaUpLVjFRaUxDSmhiR2NPaUpJVXpJMU5pSjknCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ29zaWduZXJzUGFnaW5hdGVkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmNvc2lnbmVyLkNvc2lnbmVyKAogICAgICAgICAgICAgICAgICAgICAgICBhcmNoaXZlZCA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnNDRmY2VhZDAtNzA1My00ODMxLWE1M2EtZGY3ZmI5MGQ0NDBmJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnTXkgQ29zaWduZXIgMScsIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1NHWCcsIAogICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMudmVyc2lvbl9zdW1tYXJ5LlZlcnNpb25TdW1tYXJ5KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaCA9ICdhMWIyYzNkNGU1JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJzEuMC4wIChEZWNlbWJlciAyMDI1KScsICksICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENvc2lnbmVyc1BhZ2luYXRlZFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ29zaWduZXJzUGFnaW5hdGVkUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_create_address_request.py b/test/test_create_address_request.py index ed081635..33a427d8 100644 --- a/test/test_create_address_request.py +++ b/test/test_create_address_request.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_address_request import CreateAddressRequest - - -class TestCreateAddressRequest(unittest.TestCase): - """CreateAddressRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateAddressRequest: - """Test CreateAddressRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateAddressRequest` - """ - model = CreateAddressRequest() - if include_optional: - return CreateAddressRequest( - description = '', - customer_ref_id = '' - ) - else: - return CreateAddressRequest( - ) - """ - - def testCreateAddressRequest(self): - """Test CreateAddressRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9hZGRyZXNzX3JlcXVlc3QgaW1wb3J0IENyZWF0ZUFkZHJlc3NSZXF1ZXN0CgoKY2xhc3MgVGVzdENyZWF0ZUFkZHJlc3NSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNyZWF0ZUFkZHJlc3NSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDcmVhdGVBZGRyZXNzUmVxdWVzdDoKICAgICAgICAiIiJUZXN0IENyZWF0ZUFkZHJlc3NSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENyZWF0ZUFkZHJlc3NSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ3JlYXRlQWRkcmVzc1JlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDcmVhdGVBZGRyZXNzUmVxdWVzdCgKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJycsCiAgICAgICAgICAgICAgICBjdXN0b21lcl9yZWZfaWQgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZUFkZHJlc3NSZXF1ZXN0KAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENyZWF0ZUFkZHJlc3NSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQ3JlYXRlQWRkcmVzc1JlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_create_address_response.py b/test/test_create_address_response.py index 0726b7a7..46878558 100644 --- a/test/test_create_address_response.py +++ b/test/test_create_address_response.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_address_response import CreateAddressResponse - - -class TestCreateAddressResponse(unittest.TestCase): - """CreateAddressResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateAddressResponse: - """Test CreateAddressResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateAddressResponse` - """ - model = CreateAddressResponse() - if include_optional: - return CreateAddressResponse( - address = '', - legacy_address = '', - enterprise_address = '', - tag = '', - bip44_address_index = 56 - ) - else: - return CreateAddressResponse( - ) - """ - - def testCreateAddressResponse(self): - """Test CreateAddressResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9hZGRyZXNzX3Jlc3BvbnNlIGltcG9ydCBDcmVhdGVBZGRyZXNzUmVzcG9uc2UKCgpjbGFzcyBUZXN0Q3JlYXRlQWRkcmVzc1Jlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNyZWF0ZUFkZHJlc3NSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ3JlYXRlQWRkcmVzc1Jlc3BvbnNlOgogICAgICAgICIiIlRlc3QgQ3JlYXRlQWRkcmVzc1Jlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENyZWF0ZUFkZHJlc3NSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENyZWF0ZUFkZHJlc3NSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZUFkZHJlc3NSZXNwb25zZSgKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnJywKICAgICAgICAgICAgICAgIGxlZ2FjeV9hZGRyZXNzID0gJycsCiAgICAgICAgICAgICAgICBlbnRlcnByaXNlX2FkZHJlc3MgPSAnJywKICAgICAgICAgICAgICAgIHRhZyA9ICcnLAogICAgICAgICAgICAgICAgYmlwNDRfYWRkcmVzc19pbmRleCA9IDU2CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlQWRkcmVzc1Jlc3BvbnNlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENyZWF0ZUFkZHJlc3NSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IENyZWF0ZUFkZHJlc3NSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_create_api_user.py b/test/test_create_api_user.py index 2268fb9a..eda1f65f 100644 --- a/test/test_create_api_user.py +++ b/test/test_create_api_user.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_api_user import CreateAPIUser - - -class TestCreateAPIUser(unittest.TestCase): - """CreateAPIUser unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateAPIUser: - """Test CreateAPIUser - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateAPIUser` - """ - model = CreateAPIUser() - if include_optional: - return CreateAPIUser( - role = '', - name = '', - csr_pem = '-----BEGIN CERTIFICATE REQUEST-----aaa-----END CERTIFICATE REQUEST-----', - co_signer_setup_type = 'SGX_MACHINE', - co_signer_setup_is_first_user = True - ) - else: - return CreateAPIUser( - role = '', - name = '', - csr_pem = '-----BEGIN CERTIFICATE REQUEST-----aaa-----END CERTIFICATE REQUEST-----', - ) - """ - - def testCreateAPIUser(self): - """Test CreateAPIUser""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9hcGlfdXNlciBpbXBvcnQgQ3JlYXRlQVBJVXNlcgoKCmNsYXNzIFRlc3RDcmVhdGVBUElVc2VyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNyZWF0ZUFQSVVzZXIgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENyZWF0ZUFQSVVzZXI6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVBUElVc2VyCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENyZWF0ZUFQSVVzZXJgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDcmVhdGVBUElVc2VyKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlQVBJVXNlcigKICAgICAgICAgICAgICAgIHJvbGUgPSAnJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnJywKICAgICAgICAgICAgICAgIGNzcl9wZW0gPSAnLS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS1hYWEtLS0tLUVORCBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0nLAogICAgICAgICAgICAgICAgY29fc2lnbmVyX3NldHVwX3R5cGUgPSAnU0dYX01BQ0hJTkUnLAogICAgICAgICAgICAgICAgY29fc2lnbmVyX3NldHVwX2lzX2ZpcnN0X3VzZXIgPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlQVBJVXNlcigKICAgICAgICAgICAgICAgIHJvbGUgPSAnJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnJywKICAgICAgICAgICAgICAgIGNzcl9wZW0gPSAnLS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS1hYWEtLS0tLUVORCBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0nLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENyZWF0ZUFQSVVzZXIoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVBUElVc2VyIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_create_assets_request.py b/test/test_create_assets_request.py index 498125ea..72d9e746 100644 --- a/test/test_create_assets_request.py +++ b/test/test_create_assets_request.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_assets_request import CreateAssetsRequest - - -class TestCreateAssetsRequest(unittest.TestCase): - """CreateAssetsRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateAssetsRequest: - """Test CreateAssetsRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateAssetsRequest` - """ - model = CreateAssetsRequest() - if include_optional: - return CreateAssetsRequest( - eos_account_name = '' - ) - else: - return CreateAssetsRequest( - ) - """ - - def testCreateAssetsRequest(self): - """Test CreateAssetsRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9hc3NldHNfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlQXNzZXRzUmVxdWVzdAoKCmNsYXNzIFRlc3RDcmVhdGVBc3NldHNSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNyZWF0ZUFzc2V0c1JlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENyZWF0ZUFzc2V0c1JlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVBc3NldHNSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENyZWF0ZUFzc2V0c1JlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDcmVhdGVBc3NldHNSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlQXNzZXRzUmVxdWVzdCgKICAgICAgICAgICAgICAgIGVvc19hY2NvdW50X25hbWUgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZUFzc2V0c1JlcXVlc3QoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q3JlYXRlQXNzZXRzUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IENyZWF0ZUFzc2V0c1JlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_create_config_operation_request.py b/test/test_create_config_operation_request.py index 42a6c65d..07506a5a 100644 --- a/test/test_create_config_operation_request.py +++ b/test/test_create_config_operation_request.py @@ -1,71 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_config_operation_request import ( - CreateConfigOperationRequest, -) - - -class TestCreateConfigOperationRequest(unittest.TestCase): - """CreateConfigOperationRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateConfigOperationRequest: - """Test CreateConfigOperationRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateConfigOperationRequest` - """ - model = CreateConfigOperationRequest() - if include_optional: - return CreateConfigOperationRequest( - type = 'DISBURSEMENT', - params = fireblocks.models.disbursement_operation_config_params.DisbursementOperationConfigParams( - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ) - ) - else: - return CreateConfigOperationRequest( - type = 'DISBURSEMENT', - params = fireblocks.models.disbursement_operation_config_params.DisbursementOperationConfigParams( - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ), - ) - """ - - def testCreateConfigOperationRequest(self): - """Test CreateConfigOperationRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9jb25maWdfb3BlcmF0aW9uX3JlcXVlc3QgaW1wb3J0ICgKICAgIENyZWF0ZUNvbmZpZ09wZXJhdGlvblJlcXVlc3QsCikKCgpjbGFzcyBUZXN0Q3JlYXRlQ29uZmlnT3BlcmF0aW9uUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDcmVhdGVDb25maWdPcGVyYXRpb25SZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDcmVhdGVDb25maWdPcGVyYXRpb25SZXF1ZXN0OgogICAgICAgICIiIlRlc3QgQ3JlYXRlQ29uZmlnT3BlcmF0aW9uUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDcmVhdGVDb25maWdPcGVyYXRpb25SZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ3JlYXRlQ29uZmlnT3BlcmF0aW9uUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZUNvbmZpZ09wZXJhdGlvblJlcXVlc3QoCiAgICAgICAgICAgICAgICB0eXBlID0gJ0RJU0JVUlNFTUVOVCcsCiAgICAgICAgICAgICAgICBwYXJhbXMgPSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMuRGlzYnVyc2VtZW50T3BlcmF0aW9uQ29uZmlnUGFyYW1zKAogICAgICAgICAgICAgICAgICAgIHBheW1lbnRfYWNjb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFjY291bnQuQWNjb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF90eXBlID0gJ0VYQ0hBTkdFX0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbl9zZXQgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZUNvbmZpZ09wZXJhdGlvblJlcXVlc3QoCiAgICAgICAgICAgICAgICB0eXBlID0gJ0RJU0JVUlNFTUVOVCcsCiAgICAgICAgICAgICAgICBwYXJhbXMgPSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMuRGlzYnVyc2VtZW50T3BlcmF0aW9uQ29uZmlnUGFyYW1zKAogICAgICAgICAgICAgICAgICAgIHBheW1lbnRfYWNjb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFjY291bnQuQWNjb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF90eXBlID0gJ0VYQ0hBTkdFX0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbl9zZXQgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDcmVhdGVDb25maWdPcGVyYXRpb25SZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQ3JlYXRlQ29uZmlnT3BlcmF0aW9uUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_create_connection_request.py b/test/test_create_connection_request.py index 3fa2ff1c..bf1df80b 100644 --- a/test/test_create_connection_request.py +++ b/test/test_create_connection_request.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_connection_request import CreateConnectionRequest - - -class TestCreateConnectionRequest(unittest.TestCase): - """CreateConnectionRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateConnectionRequest: - """Test CreateConnectionRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateConnectionRequest` - """ - model = CreateConnectionRequest() - if include_optional: - return CreateConnectionRequest( - vault_account_id = 1, - fee_level = 'MEDIUM', - uri = 'wc:77752975-906f-48f5-b59f-047826ee947e@1?bridge=https%3A%2F%2F0.bridge.walletconnect.org&key=64be99adc6086b7a729b0ec8c7e1f174927ab92e84f5c6f9527050225344a637', - chain_ids = [ETH], - ncw_id = 'b8337f1d-bd61-4d6c-afc1-4c9d60aa2132', - ncw_account_id = 1 - ) - else: - return CreateConnectionRequest( - vault_account_id = 1, - fee_level = 'MEDIUM', - uri = 'wc:77752975-906f-48f5-b59f-047826ee947e@1?bridge=https%3A%2F%2F0.bridge.walletconnect.org&key=64be99adc6086b7a729b0ec8c7e1f174927ab92e84f5c6f9527050225344a637', - ncw_id = 'b8337f1d-bd61-4d6c-afc1-4c9d60aa2132', - ncw_account_id = 1, - ) - """ - - def testCreateConnectionRequest(self): - """Test CreateConnectionRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9jb25uZWN0aW9uX3JlcXVlc3QgaW1wb3J0IENyZWF0ZUNvbm5lY3Rpb25SZXF1ZXN0CgoKY2xhc3MgVGVzdENyZWF0ZUNvbm5lY3Rpb25SZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNyZWF0ZUNvbm5lY3Rpb25SZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDcmVhdGVDb25uZWN0aW9uUmVxdWVzdDoKICAgICAgICAiIiJUZXN0IENyZWF0ZUNvbm5lY3Rpb25SZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENyZWF0ZUNvbm5lY3Rpb25SZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ3JlYXRlQ29ubmVjdGlvblJlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDcmVhdGVDb25uZWN0aW9uUmVxdWVzdCgKICAgICAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQgPSAxLAogICAgICAgICAgICAgICAgZmVlX2xldmVsID0gJ01FRElVTScsCiAgICAgICAgICAgICAgICB1cmkgPSAnd2M6Nzc3NTI5NzUtOTA2Zi00OGY1LWI1OWYtMDQ3ODI2ZWU5NDdlQDE/YnJpZGdlPWh0dHBzJTNBJTJGJTJGMC5icmlkZ2Uud2FsbGV0Y29ubmVjdC5vcmcma2V5PTY0YmU5OWFkYzYwODZiN2E3MjliMGVjOGM3ZTFmMTc0OTI3YWI5MmU4NGY1YzZmOTUyNzA1MDIyNTM0NGE2MzcnLAogICAgICAgICAgICAgICAgY2hhaW5faWRzID0gW0VUSF0sCiAgICAgICAgICAgICAgICBuY3dfaWQgPSAnYjgzMzdmMWQtYmQ2MS00ZDZjLWFmYzEtNGM5ZDYwYWEyMTMyJywKICAgICAgICAgICAgICAgIG5jd19hY2NvdW50X2lkID0gMQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZUNvbm5lY3Rpb25SZXF1ZXN0KAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9IDEsCiAgICAgICAgICAgICAgICBmZWVfbGV2ZWwgPSAnTUVESVVNJywKICAgICAgICAgICAgICAgIHVyaSA9ICd3Yzo3Nzc1Mjk3NS05MDZmLTQ4ZjUtYjU5Zi0wNDc4MjZlZTk0N2VAMT9icmlkZ2U9aHR0cHMlM0ElMkYlMkYwLmJyaWRnZS53YWxsZXRjb25uZWN0Lm9yZyZrZXk9NjRiZTk5YWRjNjA4NmI3YTcyOWIwZWM4YzdlMWYxNzQ5MjdhYjkyZTg0ZjVjNmY5NTI3MDUwMjI1MzQ0YTYzNycsCiAgICAgICAgICAgICAgICBuY3dfaWQgPSAnYjgzMzdmMWQtYmQ2MS00ZDZjLWFmYzEtNGM5ZDYwYWEyMTMyJywKICAgICAgICAgICAgICAgIG5jd19hY2NvdW50X2lkID0gMSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDcmVhdGVDb25uZWN0aW9uUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IENyZWF0ZUNvbm5lY3Rpb25SZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_create_connection_response.py b/test/test_create_connection_response.py index 552fe65e..800dd234 100644 --- a/test/test_create_connection_response.py +++ b/test/test_create_connection_response.py @@ -1,65 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_connection_response import CreateConnectionResponse - - -class TestCreateConnectionResponse(unittest.TestCase): - """CreateConnectionResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateConnectionResponse: - """Test CreateConnectionResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateConnectionResponse` - """ - model = CreateConnectionResponse() - if include_optional: - return CreateConnectionResponse( - id = '4e9e7051-f3b2-48e9-8ee6-b12492552657', - session_metadata = fireblocks.models.session_metadata.SessionMetadata( - app_url = '', - app_name = '', - app_description = '', - app_icon = '', ) - ) - else: - return CreateConnectionResponse( - id = '4e9e7051-f3b2-48e9-8ee6-b12492552657', - session_metadata = fireblocks.models.session_metadata.SessionMetadata( - app_url = '', - app_name = '', - app_description = '', - app_icon = '', ), - ) - """ - - def testCreateConnectionResponse(self): - """Test CreateConnectionResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9jb25uZWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBDcmVhdGVDb25uZWN0aW9uUmVzcG9uc2UKCgpjbGFzcyBUZXN0Q3JlYXRlQ29ubmVjdGlvblJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNyZWF0ZUNvbm5lY3Rpb25SZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ3JlYXRlQ29ubmVjdGlvblJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgQ3JlYXRlQ29ubmVjdGlvblJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENyZWF0ZUNvbm5lY3Rpb25SZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENyZWF0ZUNvbm5lY3Rpb25SZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZUNvbm5lY3Rpb25SZXNwb25zZSgKICAgICAgICAgICAgICAgIGlkID0gJzRlOWU3MDUxLWYzYjItNDhlOS04ZWU2LWIxMjQ5MjU1MjY1NycsCiAgICAgICAgICAgICAgICBzZXNzaW9uX21ldGFkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2Vzc2lvbl9tZXRhZGF0YS5TZXNzaW9uTWV0YWRhdGEoCiAgICAgICAgICAgICAgICAgICAgYXBwX3VybCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhcHBfbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhcHBfZGVzY3JpcHRpb24gPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYXBwX2ljb24gPSAnJywgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZUNvbm5lY3Rpb25SZXNwb25zZSgKICAgICAgICAgICAgICAgIGlkID0gJzRlOWU3MDUxLWYzYjItNDhlOS04ZWU2LWIxMjQ5MjU1MjY1NycsCiAgICAgICAgICAgICAgICBzZXNzaW9uX21ldGFkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2Vzc2lvbl9tZXRhZGF0YS5TZXNzaW9uTWV0YWRhdGEoCiAgICAgICAgICAgICAgICAgICAgYXBwX3VybCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhcHBfbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhcHBfZGVzY3JpcHRpb24gPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYXBwX2ljb24gPSAnJywgKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDcmVhdGVDb25uZWN0aW9uUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVDb25uZWN0aW9uUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_create_console_user.py b/test/test_create_console_user.py index 1e70b7a2..e2d45600 100644 --- a/test/test_create_console_user.py +++ b/test/test_create_console_user.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_console_user import CreateConsoleUser - - -class TestCreateConsoleUser(unittest.TestCase): - """CreateConsoleUser unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateConsoleUser: - """Test CreateConsoleUser - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateConsoleUser` - """ - model = CreateConsoleUser() - if include_optional: - return CreateConsoleUser( - first_name = '', - last_name = '', - role = '', - email = '' - ) - else: - return CreateConsoleUser( - first_name = '', - last_name = '', - role = '', - email = '', - ) - """ - - def testCreateConsoleUser(self): - """Test CreateConsoleUser""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9jb25zb2xlX3VzZXIgaW1wb3J0IENyZWF0ZUNvbnNvbGVVc2VyCgoKY2xhc3MgVGVzdENyZWF0ZUNvbnNvbGVVc2VyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNyZWF0ZUNvbnNvbGVVc2VyIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDcmVhdGVDb25zb2xlVXNlcjoKICAgICAgICAiIiJUZXN0IENyZWF0ZUNvbnNvbGVVc2VyCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENyZWF0ZUNvbnNvbGVVc2VyYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ3JlYXRlQ29uc29sZVVzZXIoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDcmVhdGVDb25zb2xlVXNlcigKICAgICAgICAgICAgICAgIGZpcnN0X25hbWUgPSAnJywKICAgICAgICAgICAgICAgIGxhc3RfbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgcm9sZSA9ICcnLAogICAgICAgICAgICAgICAgZW1haWwgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZUNvbnNvbGVVc2VyKAogICAgICAgICAgICAgICAgZmlyc3RfbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgbGFzdF9uYW1lID0gJycsCiAgICAgICAgICAgICAgICByb2xlID0gJycsCiAgICAgICAgICAgICAgICBlbWFpbCA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENyZWF0ZUNvbnNvbGVVc2VyKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ3JlYXRlQ29uc29sZVVzZXIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_create_contract_request.py b/test/test_create_contract_request.py index b322838b..530b4c5b 100644 --- a/test/test_create_contract_request.py +++ b/test/test_create_contract_request.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_contract_request import CreateContractRequest - - -class TestCreateContractRequest(unittest.TestCase): - """CreateContractRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateContractRequest: - """Test CreateContractRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateContractRequest` - """ - model = CreateContractRequest() - if include_optional: - return CreateContractRequest( - name = '' - ) - else: - return CreateContractRequest( - ) - """ - - def testCreateContractRequest(self): - """Test CreateContractRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9jb250cmFjdF9yZXF1ZXN0IGltcG9ydCBDcmVhdGVDb250cmFjdFJlcXVlc3QKCgpjbGFzcyBUZXN0Q3JlYXRlQ29udHJhY3RSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNyZWF0ZUNvbnRyYWN0UmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ3JlYXRlQ29udHJhY3RSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgQ3JlYXRlQ29udHJhY3RSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENyZWF0ZUNvbnRyYWN0UmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENyZWF0ZUNvbnRyYWN0UmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZUNvbnRyYWN0UmVxdWVzdCgKICAgICAgICAgICAgICAgIG5hbWUgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZUNvbnRyYWN0UmVxdWVzdCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDcmVhdGVDb250cmFjdFJlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVDb250cmFjdFJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_create_conversion_config_operation_request.py b/test/test_create_conversion_config_operation_request.py index 62a78b74..0c8730ca 100644 --- a/test/test_create_conversion_config_operation_request.py +++ b/test/test_create_conversion_config_operation_request.py @@ -1,69 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_conversion_config_operation_request import ( - CreateConversionConfigOperationRequest, -) - - -class TestCreateConversionConfigOperationRequest(unittest.TestCase): - """CreateConversionConfigOperationRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateConversionConfigOperationRequest: - """Test CreateConversionConfigOperationRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateConversionConfigOperationRequest` - """ - model = CreateConversionConfigOperationRequest() - if include_optional: - return CreateConversionConfigOperationRequest( - type = 'CONVERSION', - params = fireblocks.models.conversion_operation_config_params.ConversionOperationConfigParams( - amount = '', - account_id = '', - src_asset_id = '', - dest_asset_id = '', - slippage_basis_points = 0, ) - ) - else: - return CreateConversionConfigOperationRequest( - type = 'CONVERSION', - params = fireblocks.models.conversion_operation_config_params.ConversionOperationConfigParams( - amount = '', - account_id = '', - src_asset_id = '', - dest_asset_id = '', - slippage_basis_points = 0, ), - ) - """ - - def testCreateConversionConfigOperationRequest(self): - """Test CreateConversionConfigOperationRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9jb252ZXJzaW9uX2NvbmZpZ19vcGVyYXRpb25fcmVxdWVzdCBpbXBvcnQgKAogICAgQ3JlYXRlQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvblJlcXVlc3QsCikKCgpjbGFzcyBUZXN0Q3JlYXRlQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvblJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ3JlYXRlQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvblJlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENyZWF0ZUNvbnZlcnNpb25Db25maWdPcGVyYXRpb25SZXF1ZXN0OgogICAgICAgICIiIlRlc3QgQ3JlYXRlQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvblJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ3JlYXRlQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvblJlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDcmVhdGVDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZUNvbnZlcnNpb25Db25maWdPcGVyYXRpb25SZXF1ZXN0KAogICAgICAgICAgICAgICAgdHlwZSA9ICdDT05WRVJTSU9OJywKICAgICAgICAgICAgICAgIHBhcmFtcyA9IGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMuQ29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtcygKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBzcmNfYXNzZXRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgZGVzdF9hc3NldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBzbGlwcGFnZV9iYXNpc19wb2ludHMgPSAwLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvblJlcXVlc3QoCiAgICAgICAgICAgICAgICB0eXBlID0gJ0NPTlZFUlNJT04nLAogICAgICAgICAgICAgICAgcGFyYW1zID0gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fY29uZmlnX3BhcmFtcy5Db252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zKAogICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgIHNyY19hc3NldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBkZXN0X2Fzc2V0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgIHNsaXBwYWdlX2Jhc2lzX3BvaW50cyA9IDAsICksCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q3JlYXRlQ29udmVyc2lvbkNvbmZpZ09wZXJhdGlvblJlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVDb252ZXJzaW9uQ29uZmlnT3BlcmF0aW9uUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_create_disbursement_config_operation_request.py b/test/test_create_disbursement_config_operation_request.py index dc2bf883..c9c5ded0 100644 --- a/test/test_create_disbursement_config_operation_request.py +++ b/test/test_create_disbursement_config_operation_request.py @@ -1,73 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_disbursement_config_operation_request import ( - CreateDisbursementConfigOperationRequest, -) - - -class TestCreateDisbursementConfigOperationRequest(unittest.TestCase): - """CreateDisbursementConfigOperationRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> CreateDisbursementConfigOperationRequest: - """Test CreateDisbursementConfigOperationRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateDisbursementConfigOperationRequest` - """ - model = CreateDisbursementConfigOperationRequest() - if include_optional: - return CreateDisbursementConfigOperationRequest( - type = 'DISBURSEMENT', - params = fireblocks.models.disbursement_operation_config_params.DisbursementOperationConfigParams( - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ) - ) - else: - return CreateDisbursementConfigOperationRequest( - type = 'DISBURSEMENT', - params = fireblocks.models.disbursement_operation_config_params.DisbursementOperationConfigParams( - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ), - ) - """ - - def testCreateDisbursementConfigOperationRequest(self): - """Test CreateDisbursementConfigOperationRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9kaXNidXJzZW1lbnRfY29uZmlnX29wZXJhdGlvbl9yZXF1ZXN0IGltcG9ydCAoCiAgICBDcmVhdGVEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb25SZXF1ZXN0LAopCgoKY2xhc3MgVGVzdENyZWF0ZURpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvblJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ3JlYXRlRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uUmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2UoCiAgICAgICAgc2VsZiwgaW5jbHVkZV9vcHRpb25hbAogICAgKSAtPiBDcmVhdGVEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb25SZXF1ZXN0OgogICAgICAgICIiIlRlc3QgQ3JlYXRlRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDcmVhdGVEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb25SZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ3JlYXRlRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZURpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvblJlcXVlc3QoCiAgICAgICAgICAgICAgICB0eXBlID0gJ0RJU0JVUlNFTUVOVCcsCiAgICAgICAgICAgICAgICBwYXJhbXMgPSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMuRGlzYnVyc2VtZW50T3BlcmF0aW9uQ29uZmlnUGFyYW1zKAogICAgICAgICAgICAgICAgICAgIHBheW1lbnRfYWNjb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFjY291bnQuQWNjb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF90eXBlID0gJ0VYQ0hBTkdFX0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbl9zZXQgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZURpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvblJlcXVlc3QoCiAgICAgICAgICAgICAgICB0eXBlID0gJ0RJU0JVUlNFTUVOVCcsCiAgICAgICAgICAgICAgICBwYXJhbXMgPSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMuRGlzYnVyc2VtZW50T3BlcmF0aW9uQ29uZmlnUGFyYW1zKAogICAgICAgICAgICAgICAgICAgIHBheW1lbnRfYWNjb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFjY291bnQuQWNjb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF90eXBlID0gJ0VYQ0hBTkdFX0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbl9zZXQgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDcmVhdGVEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb25SZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQ3JlYXRlRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_create_internal_transfer_request.py b/test/test_create_internal_transfer_request.py index b2ab9c0c..876201aa 100644 --- a/test/test_create_internal_transfer_request.py +++ b/test/test_create_internal_transfer_request.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_internal_transfer_request import ( - CreateInternalTransferRequest, -) - - -class TestCreateInternalTransferRequest(unittest.TestCase): - """CreateInternalTransferRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateInternalTransferRequest: - """Test CreateInternalTransferRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateInternalTransferRequest` - """ - model = CreateInternalTransferRequest() - if include_optional: - return CreateInternalTransferRequest( - asset = '', - amount = '', - source_type = 'COIN_FUTURES', - dest_type = 'COIN_FUTURES' - ) - else: - return CreateInternalTransferRequest( - asset = '', - amount = '', - source_type = 'COIN_FUTURES', - dest_type = 'COIN_FUTURES', - ) - """ - - def testCreateInternalTransferRequest(self): - """Test CreateInternalTransferRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9pbnRlcm5hbF90cmFuc2Zlcl9yZXF1ZXN0IGltcG9ydCAoCiAgICBDcmVhdGVJbnRlcm5hbFRyYW5zZmVyUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RDcmVhdGVJbnRlcm5hbFRyYW5zZmVyUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDcmVhdGVJbnRlcm5hbFRyYW5zZmVyUmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ3JlYXRlSW50ZXJuYWxUcmFuc2ZlclJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVJbnRlcm5hbFRyYW5zZmVyUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDcmVhdGVJbnRlcm5hbFRyYW5zZmVyUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENyZWF0ZUludGVybmFsVHJhbnNmZXJSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlSW50ZXJuYWxUcmFuc2ZlclJlcXVlc3QoCiAgICAgICAgICAgICAgICBhc3NldCA9ICcnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gJycsCiAgICAgICAgICAgICAgICBzb3VyY2VfdHlwZSA9ICdDT0lOX0ZVVFVSRVMnLAogICAgICAgICAgICAgICAgZGVzdF90eXBlID0gJ0NPSU5fRlVUVVJFUycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDcmVhdGVJbnRlcm5hbFRyYW5zZmVyUmVxdWVzdCgKICAgICAgICAgICAgICAgIGFzc2V0ID0gJycsCiAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywKICAgICAgICAgICAgICAgIHNvdXJjZV90eXBlID0gJ0NPSU5fRlVUVVJFUycsCiAgICAgICAgICAgICAgICBkZXN0X3R5cGUgPSAnQ09JTl9GVVRVUkVTJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDcmVhdGVJbnRlcm5hbFRyYW5zZmVyUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IENyZWF0ZUludGVybmFsVHJhbnNmZXJSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_create_internal_wallet_asset_request.py b/test/test_create_internal_wallet_asset_request.py index ed3c79d4..78cc0398 100644 --- a/test/test_create_internal_wallet_asset_request.py +++ b/test/test_create_internal_wallet_asset_request.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_internal_wallet_asset_request import ( - CreateInternalWalletAssetRequest, -) - - -class TestCreateInternalWalletAssetRequest(unittest.TestCase): - """CreateInternalWalletAssetRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateInternalWalletAssetRequest: - """Test CreateInternalWalletAssetRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateInternalWalletAssetRequest` - """ - model = CreateInternalWalletAssetRequest() - if include_optional: - return CreateInternalWalletAssetRequest( - address = '', - tag = '' - ) - else: - return CreateInternalWalletAssetRequest( - address = '', - ) - """ - - def testCreateInternalWalletAssetRequest(self): - """Test CreateInternalWalletAssetRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXRfcmVxdWVzdCBpbXBvcnQgKAogICAgQ3JlYXRlSW50ZXJuYWxXYWxsZXRBc3NldFJlcXVlc3QsCikKCgpjbGFzcyBUZXN0Q3JlYXRlSW50ZXJuYWxXYWxsZXRBc3NldFJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ3JlYXRlSW50ZXJuYWxXYWxsZXRBc3NldFJlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENyZWF0ZUludGVybmFsV2FsbGV0QXNzZXRSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgQ3JlYXRlSW50ZXJuYWxXYWxsZXRBc3NldFJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ3JlYXRlSW50ZXJuYWxXYWxsZXRBc3NldFJlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDcmVhdGVJbnRlcm5hbFdhbGxldEFzc2V0UmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZUludGVybmFsV2FsbGV0QXNzZXRSZXF1ZXN0KAogICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcnLAogICAgICAgICAgICAgICAgdGFnID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDcmVhdGVJbnRlcm5hbFdhbGxldEFzc2V0UmVxdWVzdCgKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDcmVhdGVJbnRlcm5hbFdhbGxldEFzc2V0UmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IENyZWF0ZUludGVybmFsV2FsbGV0QXNzZXRSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_create_multichain_token_request.py b/test/test_create_multichain_token_request.py index dc530981..bef66d77 100644 --- a/test/test_create_multichain_token_request.py +++ b/test/test_create_multichain_token_request.py @@ -1,66 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_multichain_token_request import ( - CreateMultichainTokenRequest, -) - - -class TestCreateMultichainTokenRequest(unittest.TestCase): - """CreateMultichainTokenRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateMultichainTokenRequest: - """Test CreateMultichainTokenRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateMultichainTokenRequest` - """ - model = CreateMultichainTokenRequest() - if include_optional: - return CreateMultichainTokenRequest( - vault_account_id = '0', - create_params = None, - salt = '123456789', - chains = ["ETH","POLYGON"], - display_name = '', - use_gasless = False, - fee = '2000', - fee_level = 'MEDIUM' - ) - else: - return CreateMultichainTokenRequest( - vault_account_id = '0', - create_params = None, - chains = ["ETH","POLYGON"], - ) - """ - - def testCreateMultichainTokenRequest(self): - """Test CreateMultichainTokenRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9tdWx0aWNoYWluX3Rva2VuX3JlcXVlc3QgaW1wb3J0ICgKICAgIENyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3QsCikKCgpjbGFzcyBUZXN0Q3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0OgogICAgICAgICIiIlRlc3QgQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3QoCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gJzAnLAogICAgICAgICAgICAgICAgY3JlYXRlX3BhcmFtcyA9IE5vbmUsCiAgICAgICAgICAgICAgICBzYWx0ID0gJzEyMzQ1Njc4OScsCiAgICAgICAgICAgICAgICBjaGFpbnMgPSBbIkVUSCIsIlBPTFlHT04iXSwKICAgICAgICAgICAgICAgIGRpc3BsYXlfbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgdXNlX2dhc2xlc3MgPSBGYWxzZSwKICAgICAgICAgICAgICAgIGZlZSA9ICcyMDAwJywKICAgICAgICAgICAgICAgIGZlZV9sZXZlbCA9ICdNRURJVU0nCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdCgKICAgICAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQgPSAnMCcsCiAgICAgICAgICAgICAgICBjcmVhdGVfcGFyYW1zID0gTm9uZSwKICAgICAgICAgICAgICAgIGNoYWlucyA9IFsiRVRIIiwiUE9MWUdPTiJdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_create_multichain_token_request_create_params.py b/test/test_create_multichain_token_request_create_params.py index b6b98559..e5303f1e 100644 --- a/test/test_create_multichain_token_request_create_params.py +++ b/test/test_create_multichain_token_request_create_params.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_multichain_token_request_create_params import ( - CreateMultichainTokenRequestCreateParams, -) - - -class TestCreateMultichainTokenRequestCreateParams(unittest.TestCase): - """CreateMultichainTokenRequestCreateParams unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> CreateMultichainTokenRequestCreateParams: - """Test CreateMultichainTokenRequestCreateParams - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateMultichainTokenRequestCreateParams` - """ - model = CreateMultichainTokenRequestCreateParams() - if include_optional: - return CreateMultichainTokenRequestCreateParams( - contract_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - deploy_function_params = [{internalType=string, name=name, type=string, value=name}, {internalType=string, name=symbol, type=string, value=symbol}, {components=[{internalType=bool, name=_isMintable, type=bool}], internalType=struct MyStruct, name=customConfigProps, type=tuple, value=[{internalType=bool, name=_isMintable, type=bool, value=false}]}] - ) - else: - return CreateMultichainTokenRequestCreateParams( - contract_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - ) - """ - - def testCreateMultichainTokenRequestCreateParams(self): - """Test CreateMultichainTokenRequestCreateParams""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9tdWx0aWNoYWluX3Rva2VuX3JlcXVlc3RfY3JlYXRlX3BhcmFtcyBpbXBvcnQgKAogICAgQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdENyZWF0ZVBhcmFtcywKKQoKCmNsYXNzIFRlc3RDcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0Q3JlYXRlUGFyYW1zKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3RDcmVhdGVQYXJhbXMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKAogICAgICAgIHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwKICAgICkgLT4gQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdENyZWF0ZVBhcmFtczoKICAgICAgICAiIiJUZXN0IENyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3RDcmVhdGVQYXJhbXMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdENyZWF0ZVBhcmFtc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENyZWF0ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3RDcmVhdGVQYXJhbXMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0Q3JlYXRlUGFyYW1zKAogICAgICAgICAgICAgICAgY29udHJhY3RfaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywKICAgICAgICAgICAgICAgIGRlcGxveV9mdW5jdGlvbl9wYXJhbXMgPSBbe2ludGVybmFsVHlwZT1zdHJpbmcsIG5hbWU9bmFtZSwgdHlwZT1zdHJpbmcsIHZhbHVlPW5hbWV9LCB7aW50ZXJuYWxUeXBlPXN0cmluZywgbmFtZT1zeW1ib2wsIHR5cGU9c3RyaW5nLCB2YWx1ZT1zeW1ib2x9LCB7Y29tcG9uZW50cz1be2ludGVybmFsVHlwZT1ib29sLCBuYW1lPV9pc01pbnRhYmxlLCB0eXBlPWJvb2x9XSwgaW50ZXJuYWxUeXBlPXN0cnVjdCBNeVN0cnVjdCwgbmFtZT1jdXN0b21Db25maWdQcm9wcywgdHlwZT10dXBsZSwgdmFsdWU9W3tpbnRlcm5hbFR5cGU9Ym9vbCwgbmFtZT1faXNNaW50YWJsZSwgdHlwZT1ib29sLCB2YWx1ZT1mYWxzZX1dfV0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0Q3JlYXRlUGFyYW1zKAogICAgICAgICAgICAgICAgY29udHJhY3RfaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDcmVhdGVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0Q3JlYXRlUGFyYW1zKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ3JlYXRlTXVsdGljaGFpblRva2VuUmVxdWVzdENyZWF0ZVBhcmFtcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_create_multiple_accounts_request.py b/test/test_create_multiple_accounts_request.py index 20fcaff3..bc5d0672 100644 --- a/test/test_create_multiple_accounts_request.py +++ b/test/test_create_multiple_accounts_request.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_multiple_accounts_request import ( - CreateMultipleAccountsRequest, -) - - -class TestCreateMultipleAccountsRequest(unittest.TestCase): - """CreateMultipleAccountsRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateMultipleAccountsRequest: - """Test CreateMultipleAccountsRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateMultipleAccountsRequest` - """ - model = CreateMultipleAccountsRequest() - if include_optional: - return CreateMultipleAccountsRequest( - count = 1000, - base_asset_ids = ["BTC","ETH","SOL"], - names = ["first va","client 65502e71-ecdf-48da-a074-c1753befc7fb"], - vault_account_names_starting_index = 0, - prefix = 'Copied from: ' - ) - else: - return CreateMultipleAccountsRequest( - count = 1000, - base_asset_ids = ["BTC","ETH","SOL"], - ) - """ - - def testCreateMultipleAccountsRequest(self): - """Test CreateMultipleAccountsRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9tdWx0aXBsZV9hY2NvdW50c19yZXF1ZXN0IGltcG9ydCAoCiAgICBDcmVhdGVNdWx0aXBsZUFjY291bnRzUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RDcmVhdGVNdWx0aXBsZUFjY291bnRzUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDcmVhdGVNdWx0aXBsZUFjY291bnRzUmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ3JlYXRlTXVsdGlwbGVBY2NvdW50c1JlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVNdWx0aXBsZUFjY291bnRzUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDcmVhdGVNdWx0aXBsZUFjY291bnRzUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENyZWF0ZU11bHRpcGxlQWNjb3VudHNSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlTXVsdGlwbGVBY2NvdW50c1JlcXVlc3QoCiAgICAgICAgICAgICAgICBjb3VudCA9IDEwMDAsCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0X2lkcyA9IFsiQlRDIiwiRVRIIiwiU09MIl0sCiAgICAgICAgICAgICAgICBuYW1lcyA9IFsiZmlyc3QgdmEiLCJjbGllbnQgNjU1MDJlNzEtZWNkZi00OGRhLWEwNzQtYzE3NTNiZWZjN2ZiIl0sCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X25hbWVzX3N0YXJ0aW5nX2luZGV4ID0gMCwKICAgICAgICAgICAgICAgIHByZWZpeCA9ICdDb3BpZWQgZnJvbTogJywKICAgICAgICAgICAgICAgIHRhZ19pZHMgPSBbImExYjJjM2Q0LWU1ZjYtNzg5MC1hYmNkLWVmMTIzNDU2Nzg5MCIsImIyYzNkNGU1LWY2YTctODkwMS1iY2RlLWYxMjM0NTY3ODkwMSJdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlTXVsdGlwbGVBY2NvdW50c1JlcXVlc3QoCiAgICAgICAgICAgICAgICBjb3VudCA9IDEwMDAsCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0X2lkcyA9IFsiQlRDIiwiRVRIIiwiU09MIl0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q3JlYXRlTXVsdGlwbGVBY2NvdW50c1JlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVNdWx0aXBsZUFjY291bnRzUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_create_multiple_deposit_addresses_job_status.py b/test/test_create_multiple_deposit_addresses_job_status.py index dde84097..30a174d9 100644 --- a/test/test_create_multiple_deposit_addresses_job_status.py +++ b/test/test_create_multiple_deposit_addresses_job_status.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_multiple_deposit_addresses_job_status import ( - CreateMultipleDepositAddressesJobStatus, -) - - -class TestCreateMultipleDepositAddressesJobStatus(unittest.TestCase): - """CreateMultipleDepositAddressesJobStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> CreateMultipleDepositAddressesJobStatus: - """Test CreateMultipleDepositAddressesJobStatus - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateMultipleDepositAddressesJobStatus` - """ - model = CreateMultipleDepositAddressesJobStatus() - if include_optional: - return CreateMultipleDepositAddressesJobStatus( - status = 'Success', - addresses = [{"address":"addr_test1qp07k5kdwdfx4rpfqud8ry65acxgtgfgrxw0t35cwvl4uasjneqjdc868eqlex5p2f0nyekyyk4ze5xuanvj50ysrj3qqxqhsn","index":0,"description":"Address one"}], - error_message = 'Asset not supported' - ) - else: - return CreateMultipleDepositAddressesJobStatus( - status = 'Success', - ) - """ - - def testCreateMultipleDepositAddressesJobStatus(self): - """Test CreateMultipleDepositAddressesJobStatus""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3Nlc19qb2Jfc3RhdHVzIGltcG9ydCAoCiAgICBDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNKb2JTdGF0dXMsCikKCgpjbGFzcyBUZXN0Q3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzSm9iU3RhdHVzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNyZWF0ZU11bHRpcGxlRGVwb3NpdEFkZHJlc3Nlc0pvYlN0YXR1cyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2UoCiAgICAgICAgc2VsZiwgaW5jbHVkZV9vcHRpb25hbAogICAgKSAtPiBDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNKb2JTdGF0dXM6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNKb2JTdGF0dXMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzSm9iU3RhdHVzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzSm9iU3RhdHVzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzSm9iU3RhdHVzKAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ1N1Y2Nlc3MnLAogICAgICAgICAgICAgICAgYWRkcmVzc2VzID0gW3siYWRkcmVzcyI6ImFkZHJfdGVzdDFxcDA3azVrZHdkZng0cnBmcXVkOHJ5NjVhY3hndGdmZ3J4dzB0MzVjd3ZsNHVhc2puZXFqZGM4NjhlcWxleDVwMmYwbnlla3l5azR6ZTV4dWFudmo1MHlzcmozcXF4cWhzbiIsImluZGV4IjowLCJkZXNjcmlwdGlvbiI6IkFkZHJlc3Mgb25lIn1dLAogICAgICAgICAgICAgICAgZXJyb3JfbWVzc2FnZSA9ICdBc3NldCBub3Qgc3VwcG9ydGVkJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZU11bHRpcGxlRGVwb3NpdEFkZHJlc3Nlc0pvYlN0YXR1cygKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdTdWNjZXNzJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNKb2JTdGF0dXMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNKb2JTdGF0dXMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_create_multiple_deposit_addresses_request.py b/test/test_create_multiple_deposit_addresses_request.py index 809323af..7804368d 100644 --- a/test/test_create_multiple_deposit_addresses_request.py +++ b/test/test_create_multiple_deposit_addresses_request.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_multiple_deposit_addresses_request import ( - CreateMultipleDepositAddressesRequest, -) - - -class TestCreateMultipleDepositAddressesRequest(unittest.TestCase): - """CreateMultipleDepositAddressesRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateMultipleDepositAddressesRequest: - """Test CreateMultipleDepositAddressesRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateMultipleDepositAddressesRequest` - """ - model = CreateMultipleDepositAddressesRequest() - if include_optional: - return CreateMultipleDepositAddressesRequest( - vault_account_id = 5, - asset_id = 'ADA', - count = 10, - descriptions = ["First address","Second address","df4c0987-30da-4976-8dcf-bc2dd41ae331"], - vault_account_to_copy_desc_from = 0, - vault_account_to_copy_desc_from_index = 1000 - ) - else: - return CreateMultipleDepositAddressesRequest( - vault_account_id = 5, - asset_id = 'ADA', - count = 10, - ) - """ - - def testCreateMultipleDepositAddressesRequest(self): - """Test CreateMultipleDepositAddressesRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3Nlc19yZXF1ZXN0IGltcG9ydCAoCiAgICBDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNSZXF1ZXN0LAopCgoKY2xhc3MgVGVzdENyZWF0ZU11bHRpcGxlRGVwb3NpdEFkZHJlc3Nlc1JlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzUmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzUmVxdWVzdDoKICAgICAgICAiIiJUZXN0IENyZWF0ZU11bHRpcGxlRGVwb3NpdEFkZHJlc3Nlc1JlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENyZWF0ZU11bHRpcGxlRGVwb3NpdEFkZHJlc3Nlc1JlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDcmVhdGVNdWx0aXBsZURlcG9zaXRBZGRyZXNzZXNSZXF1ZXN0KAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9IDUsCiAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICdBREEnLAogICAgICAgICAgICAgICAgY291bnQgPSAxMCwKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9ucyA9IFsiRmlyc3QgYWRkcmVzcyIsIlNlY29uZCBhZGRyZXNzIiwiZGY0YzA5ODctMzBkYS00OTc2LThkY2YtYmMyZGQ0MWFlMzMxIl0sCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X3RvX2NvcHlfZGVzY19mcm9tID0gMCwKICAgICAgICAgICAgICAgIHZhdWx0X2FjY291bnRfdG9fY29weV9kZXNjX2Zyb21faW5kZXggPSAxMDAwCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzUmVxdWVzdCgKICAgICAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQgPSA1LAogICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnQURBJywKICAgICAgICAgICAgICAgIGNvdW50ID0gMTAsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q3JlYXRlTXVsdGlwbGVEZXBvc2l0QWRkcmVzc2VzUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IENyZWF0ZU11bHRpcGxlRGVwb3NpdEFkZHJlc3Nlc1JlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_create_multiple_vault_accounts_job_status.py b/test/test_create_multiple_vault_accounts_job_status.py index eb6ce0ba..e5485b55 100644 --- a/test/test_create_multiple_vault_accounts_job_status.py +++ b/test/test_create_multiple_vault_accounts_job_status.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_multiple_vault_accounts_job_status import ( - CreateMultipleVaultAccountsJobStatus, -) - - -class TestCreateMultipleVaultAccountsJobStatus(unittest.TestCase): - """CreateMultipleVaultAccountsJobStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateMultipleVaultAccountsJobStatus: - """Test CreateMultipleVaultAccountsJobStatus - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateMultipleVaultAccountsJobStatus` - """ - model = CreateMultipleVaultAccountsJobStatus() - if include_optional: - return CreateMultipleVaultAccountsJobStatus( - status = 'Success', - vault_accounts = {"0":{"BTC_TEST":"bcrt1qs0zzqytuw49w2jqkmfhzgdh2lylzde2uw4zncz","ETH_TEST":"0x460395Edb2338023c6f137259C6e20B6C37dDE95"}}, - error_message = 'Asset not supported' - ) - else: - return CreateMultipleVaultAccountsJobStatus( - status = 'Success', - ) - """ - - def testCreateMultipleVaultAccountsJobStatus(self): - """Test CreateMultipleVaultAccountsJobStatus""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9tdWx0aXBsZV92YXVsdF9hY2NvdW50c19qb2Jfc3RhdHVzIGltcG9ydCAoCiAgICBDcmVhdGVNdWx0aXBsZVZhdWx0QWNjb3VudHNKb2JTdGF0dXMsCikKCgpjbGFzcyBUZXN0Q3JlYXRlTXVsdGlwbGVWYXVsdEFjY291bnRzSm9iU3RhdHVzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNyZWF0ZU11bHRpcGxlVmF1bHRBY2NvdW50c0pvYlN0YXR1cyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ3JlYXRlTXVsdGlwbGVWYXVsdEFjY291bnRzSm9iU3RhdHVzOgogICAgICAgICIiIlRlc3QgQ3JlYXRlTXVsdGlwbGVWYXVsdEFjY291bnRzSm9iU3RhdHVzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENyZWF0ZU11bHRpcGxlVmF1bHRBY2NvdW50c0pvYlN0YXR1c2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENyZWF0ZU11bHRpcGxlVmF1bHRBY2NvdW50c0pvYlN0YXR1cygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZU11bHRpcGxlVmF1bHRBY2NvdW50c0pvYlN0YXR1cygKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdTdWNjZXNzJywKICAgICAgICAgICAgICAgIHZhdWx0X2FjY291bnRzID0geyIwIjp7IkJUQ19URVNUIjoiYmNydDFxczB6enF5dHV3NDl3Mmpxa21maHpnZGgybHlsemRlMnV3NHpuY3oiLCJFVEhfVEVTVCI6IjB4NDYwMzk1RWRiMjMzODAyM2M2ZjEzNzI1OUM2ZTIwQjZDMzdkREU5NSJ9fSwKICAgICAgICAgICAgICAgIGVycm9yX21lc3NhZ2UgPSAnQXNzZXQgbm90IHN1cHBvcnRlZCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDcmVhdGVNdWx0aXBsZVZhdWx0QWNjb3VudHNKb2JTdGF0dXMoCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnU3VjY2VzcycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q3JlYXRlTXVsdGlwbGVWYXVsdEFjY291bnRzSm9iU3RhdHVzKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ3JlYXRlTXVsdGlwbGVWYXVsdEFjY291bnRzSm9iU3RhdHVzIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_create_ncw_connection_request.py b/test/test_create_ncw_connection_request.py index 9d32453f..e4e58968 100644 --- a/test/test_create_ncw_connection_request.py +++ b/test/test_create_ncw_connection_request.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_ncw_connection_request import CreateNcwConnectionRequest - - -class TestCreateNcwConnectionRequest(unittest.TestCase): - """CreateNcwConnectionRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateNcwConnectionRequest: - """Test CreateNcwConnectionRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateNcwConnectionRequest` - """ - model = CreateNcwConnectionRequest() - if include_optional: - return CreateNcwConnectionRequest( - ncw_id = 'b8337f1d-bd61-4d6c-afc1-4c9d60aa2132', - ncw_account_id = 1, - fee_level = 'MEDIUM', - uri = 'wc:77752975-906f-48f5-b59f-047826ee947e@1?bridge=https%3A%2F%2F0.bridge.walletconnect.org&key=64be99adc6086b7a729b0ec8c7e1f174927ab92e84f5c6f9527050225344a637', - chain_ids = ["ETH"] - ) - else: - return CreateNcwConnectionRequest( - ncw_id = 'b8337f1d-bd61-4d6c-afc1-4c9d60aa2132', - ncw_account_id = 1, - fee_level = 'MEDIUM', - uri = 'wc:77752975-906f-48f5-b59f-047826ee947e@1?bridge=https%3A%2F%2F0.bridge.walletconnect.org&key=64be99adc6086b7a729b0ec8c7e1f174927ab92e84f5c6f9527050225344a637', - ) - """ - - def testCreateNcwConnectionRequest(self): - """Test CreateNcwConnectionRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9uY3dfY29ubmVjdGlvbl9yZXF1ZXN0IGltcG9ydCBDcmVhdGVOY3dDb25uZWN0aW9uUmVxdWVzdAoKCmNsYXNzIFRlc3RDcmVhdGVOY3dDb25uZWN0aW9uUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDcmVhdGVOY3dDb25uZWN0aW9uUmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ3JlYXRlTmN3Q29ubmVjdGlvblJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVOY3dDb25uZWN0aW9uUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDcmVhdGVOY3dDb25uZWN0aW9uUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENyZWF0ZU5jd0Nvbm5lY3Rpb25SZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlTmN3Q29ubmVjdGlvblJlcXVlc3QoCiAgICAgICAgICAgICAgICBuY3dfaWQgPSAnYjgzMzdmMWQtYmQ2MS00ZDZjLWFmYzEtNGM5ZDYwYWEyMTMyJywKICAgICAgICAgICAgICAgIG5jd19hY2NvdW50X2lkID0gMSwKICAgICAgICAgICAgICAgIGZlZV9sZXZlbCA9ICdNRURJVU0nLAogICAgICAgICAgICAgICAgdXJpID0gJ3djOjc3NzUyOTc1LTkwNmYtNDhmNS1iNTlmLTA0NzgyNmVlOTQ3ZUAxP2JyaWRnZT1odHRwcyUzQSUyRiUyRjAuYnJpZGdlLndhbGxldGNvbm5lY3Qub3JnJmtleT02NGJlOTlhZGM2MDg2YjdhNzI5YjBlYzhjN2UxZjE3NDkyN2FiOTJlODRmNWM2Zjk1MjcwNTAyMjUzNDRhNjM3JywKICAgICAgICAgICAgICAgIGNoYWluX2lkcyA9IFsiRVRIIl0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDcmVhdGVOY3dDb25uZWN0aW9uUmVxdWVzdCgKICAgICAgICAgICAgICAgIG5jd19pZCA9ICdiODMzN2YxZC1iZDYxLTRkNmMtYWZjMS00YzlkNjBhYTIxMzInLAogICAgICAgICAgICAgICAgbmN3X2FjY291bnRfaWQgPSAxLAogICAgICAgICAgICAgICAgZmVlX2xldmVsID0gJ01FRElVTScsCiAgICAgICAgICAgICAgICB1cmkgPSAnd2M6Nzc3NTI5NzUtOTA2Zi00OGY1LWI1OWYtMDQ3ODI2ZWU5NDdlQDE/YnJpZGdlPWh0dHBzJTNBJTJGJTJGMC5icmlkZ2Uud2FsbGV0Y29ubmVjdC5vcmcma2V5PTY0YmU5OWFkYzYwODZiN2E3MjliMGVjOGM3ZTFmMTc0OTI3YWI5MmU4NGY1YzZmOTUyNzA1MDIyNTM0NGE2MzcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENyZWF0ZU5jd0Nvbm5lY3Rpb25SZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQ3JlYXRlTmN3Q29ubmVjdGlvblJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_create_network_id_request.py b/test/test_create_network_id_request.py index 71503a7f..4c9d0796 100644 --- a/test/test_create_network_id_request.py +++ b/test/test_create_network_id_request.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_network_id_request import CreateNetworkIdRequest - - -class TestCreateNetworkIdRequest(unittest.TestCase): - """CreateNetworkIdRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateNetworkIdRequest: - """Test CreateNetworkIdRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateNetworkIdRequest` - """ - model = CreateNetworkIdRequest() - if include_optional: - return CreateNetworkIdRequest( - name = '', - routing_policy = { - 'key' : null - } - ) - else: - return CreateNetworkIdRequest( - name = '', - ) - """ - - def testCreateNetworkIdRequest(self): - """Test CreateNetworkIdRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9uZXR3b3JrX2lkX3JlcXVlc3QgaW1wb3J0IENyZWF0ZU5ldHdvcmtJZFJlcXVlc3QKCgpjbGFzcyBUZXN0Q3JlYXRlTmV0d29ya0lkUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDcmVhdGVOZXR3b3JrSWRSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDcmVhdGVOZXR3b3JrSWRSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgQ3JlYXRlTmV0d29ya0lkUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDcmVhdGVOZXR3b3JrSWRSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ3JlYXRlTmV0d29ya0lkUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZU5ldHdvcmtJZFJlcXVlc3QoCiAgICAgICAgICAgICAgICBuYW1lID0gJycsCiAgICAgICAgICAgICAgICByb3V0aW5nX3BvbGljeSA9IHsKICAgICAgICAgICAgICAgICAgICAna2V5JyA6IG51bGwKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlTmV0d29ya0lkUmVxdWVzdCgKICAgICAgICAgICAgICAgIG5hbWUgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDcmVhdGVOZXR3b3JrSWRSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQ3JlYXRlTmV0d29ya0lkUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_create_order_request.py b/test/test_create_order_request.py index f1eb7210..82ace621 100644 --- a/test/test_create_order_request.py +++ b/test/test_create_order_request.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_order_request import CreateOrderRequest - - -class TestCreateOrderRequest(unittest.TestCase): - """CreateOrderRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateOrderRequest: - """Test CreateOrderRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateOrderRequest` - """ - model = CreateOrderRequest() - if include_optional: - return CreateOrderRequest( - via = None, - execution_request_details = None, - settlement = None, - participants_identification = {"originator":{"externalReferenceId":"user_123456","entityType":"INDIVIDUAL","participantRelationshipType":"FirstParty","fullName":{"firstName":"John","lastName":"Smith"},"dateOfBirth":"1985-03-15","email":"john.smith@example.com","phone":"+14155551234","postalAddress":{"streetName":"Main Street","buildingNumber":"123","postalCode":"10001","city":"New York","subdivision":"NY","district":"Manhattan","country":"US"}},"beneficiary":{"externalReferenceId":"user_789012","entityType":"INDIVIDUAL","participantRelationshipType":"ThirdParty","fullName":{"firstName":"Alice","lastName":"Johnson"},"dateOfBirth":"1990-07-22","email":"alice.johnson@example.com","phone":"+14155551234","postalAddress":{"streetName":"Broadway","buildingNumber":"456","postalCode":"10002","city":"New York","subdivision":"NY","district":"Manhattan","country":"US"}}}, - customer_internal_reference_id = '', - note = '' - ) - else: - return CreateOrderRequest( - via = None, - execution_request_details = None, - settlement = None, - ) - """ - - def testCreateOrderRequest(self): - """Test CreateOrderRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9vcmRlcl9yZXF1ZXN0IGltcG9ydCBDcmVhdGVPcmRlclJlcXVlc3QKCgpjbGFzcyBUZXN0Q3JlYXRlT3JkZXJSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNyZWF0ZU9yZGVyUmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ3JlYXRlT3JkZXJSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgQ3JlYXRlT3JkZXJSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENyZWF0ZU9yZGVyUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENyZWF0ZU9yZGVyUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZU9yZGVyUmVxdWVzdCgKICAgICAgICAgICAgICAgIHZpYSA9IE5vbmUsCiAgICAgICAgICAgICAgICBleGVjdXRpb25fcmVxdWVzdF9kZXRhaWxzID0gTm9uZSwKICAgICAgICAgICAgICAgIHNldHRsZW1lbnQgPSBOb25lLAogICAgICAgICAgICAgICAgcGFydGljaXBhbnRzX2lkZW50aWZpY2F0aW9uID0geyJvcmlnaW5hdG9yIjp7ImV4dGVybmFsUmVmZXJlbmNlSWQiOiJ1c2VyXzEyMzQ1NiIsImVudGl0eVR5cGUiOiJJTkRJVklEVUFMIiwicGFydGljaXBhbnRSZWxhdGlvbnNoaXBUeXBlIjoiRmlyc3RQYXJ0eSIsImZ1bGxOYW1lIjp7ImZpcnN0TmFtZSI6IkpvaG4iLCJsYXN0TmFtZSI6IlNtaXRoIn0sImRhdGVPZkJpcnRoIjoiMTk4NS0wMy0xNSIsImVtYWlsIjoiam9obi5zbWl0aEBleGFtcGxlLmNvbSIsInBob25lIjoiKzE0MTU1NTUxMjM0IiwicG9zdGFsQWRkcmVzcyI6eyJzdHJlZXROYW1lIjoiTWFpbiBTdHJlZXQiLCJidWlsZGluZ051bWJlciI6IjEyMyIsInBvc3RhbENvZGUiOiIxMDAwMSIsImNpdHkiOiJOZXcgWW9yayIsInN1YmRpdmlzaW9uIjoiTlkiLCJkaXN0cmljdCI6Ik1hbmhhdHRhbiIsImNvdW50cnkiOiJVUyJ9fSwiYmVuZWZpY2lhcnkiOnsiZXh0ZXJuYWxSZWZlcmVuY2VJZCI6InVzZXJfNzg5MDEyIiwiZW50aXR5VHlwZSI6IklORElWSURVQUwiLCJwYXJ0aWNpcGFudFJlbGF0aW9uc2hpcFR5cGUiOiJUaGlyZFBhcnR5IiwiZnVsbE5hbWUiOnsiZmlyc3ROYW1lIjoiQWxpY2UiLCJsYXN0TmFtZSI6IkpvaG5zb24ifSwiZGF0ZU9mQmlydGgiOiIxOTkwLTA3LTIyIiwiZW1haWwiOiJhbGljZS5qb2huc29uQGV4YW1wbGUuY29tIiwicGhvbmUiOiIrMTQxNTU1NTEyMzQiLCJwb3N0YWxBZGRyZXNzIjp7InN0cmVldE5hbWUiOiJCcm9hZHdheSIsImJ1aWxkaW5nTnVtYmVyIjoiNDU2IiwicG9zdGFsQ29kZSI6IjEwMDAyIiwiY2l0eSI6Ik5ldyBZb3JrIiwic3ViZGl2aXNpb24iOiJOWSIsImRpc3RyaWN0IjoiTWFuaGF0dGFuIiwiY291bnRyeSI6IlVTIn19fSwKICAgICAgICAgICAgICAgIGN1c3RvbWVyX2ludGVybmFsX3JlZmVyZW5jZV9pZCA9ICcnLAogICAgICAgICAgICAgICAgbm90ZSA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlT3JkZXJSZXF1ZXN0KAogICAgICAgICAgICAgICAgdmlhID0gTm9uZSwKICAgICAgICAgICAgICAgIGV4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHMgPSBOb25lLAogICAgICAgICAgICAgICAgc2V0dGxlbWVudCA9IE5vbmUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q3JlYXRlT3JkZXJSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQ3JlYXRlT3JkZXJSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_create_payout_request.py b/test/test_create_payout_request.py index 8869f0ec..d8f68069 100644 --- a/test/test_create_payout_request.py +++ b/test/test_create_payout_request.py @@ -1,79 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_payout_request import CreatePayoutRequest - - -class TestCreatePayoutRequest(unittest.TestCase): - """CreatePayoutRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreatePayoutRequest: - """Test CreatePayoutRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreatePayoutRequest` - """ - model = CreatePayoutRequest() - if include_optional: - return CreatePayoutRequest( - payment_account = fireblocks.models.payment_account.PaymentAccount( - id = '', - type = 'VAULT_ACCOUNT', ), - instruction_set = [ - fireblocks.models.payout_instruction.PayoutInstruction( - id = '', - payee_account = fireblocks.models.payee_account.PayeeAccount( - id = '', - type = 'VAULT_ACCOUNT', ), - amount = fireblocks.models.instruction_amount.InstructionAmount( - amount = '', - asset_id = '', ), ) - ] - ) - else: - return CreatePayoutRequest( - payment_account = fireblocks.models.payment_account.PaymentAccount( - id = '', - type = 'VAULT_ACCOUNT', ), - instruction_set = [ - fireblocks.models.payout_instruction.PayoutInstruction( - id = '', - payee_account = fireblocks.models.payee_account.PayeeAccount( - id = '', - type = 'VAULT_ACCOUNT', ), - amount = fireblocks.models.instruction_amount.InstructionAmount( - amount = '', - asset_id = '', ), ) - ], - ) - """ - - def testCreatePayoutRequest(self): - """Test CreatePayoutRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9wYXlvdXRfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlUGF5b3V0UmVxdWVzdAoKCmNsYXNzIFRlc3RDcmVhdGVQYXlvdXRSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNyZWF0ZVBheW91dFJlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENyZWF0ZVBheW91dFJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVQYXlvdXRSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENyZWF0ZVBheW91dFJlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDcmVhdGVQYXlvdXRSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlUGF5b3V0UmVxdWVzdCgKICAgICAgICAgICAgICAgIHBheW1lbnRfYWNjb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLnBheW1lbnRfYWNjb3VudC5QYXltZW50QWNjb3VudCgKICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCApLAogICAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb25fc2V0ID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBheW91dF9pbnN0cnVjdGlvbi5QYXlvdXRJbnN0cnVjdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHBheWVlX2FjY291bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5wYXllZV9hY2NvdW50LlBheWVlQWNjb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmluc3RydWN0aW9uX2Ftb3VudC5JbnN0cnVjdGlvbkFtb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksICkKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlUGF5b3V0UmVxdWVzdCgKICAgICAgICAgICAgICAgIHBheW1lbnRfYWNjb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLnBheW1lbnRfYWNjb3VudC5QYXltZW50QWNjb3VudCgKICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCApLAogICAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb25fc2V0ID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBheW91dF9pbnN0cnVjdGlvbi5QYXlvdXRJbnN0cnVjdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHBheWVlX2FjY291bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5wYXllZV9hY2NvdW50LlBheWVlQWNjb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmluc3RydWN0aW9uX2Ftb3VudC5JbnN0cnVjdGlvbkFtb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENyZWF0ZVBheW91dFJlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVQYXlvdXRSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_create_quote.py b/test/test_create_quote.py index 4c9ca2d9..6187b1fa 100644 --- a/test/test_create_quote.py +++ b/test/test_create_quote.py @@ -1,71 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_quote import CreateQuote - - -class TestCreateQuote(unittest.TestCase): - """CreateQuote unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateQuote: - """Test CreateQuote - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateQuote` - """ - model = CreateQuote() - if include_optional: - return CreateQuote( - scope = [ - null - ], - base_asset_id = '', - base_asset_rail = 'BLOCKCHAIN', - quote_asset_id = '', - quote_asset_rail = 'BLOCKCHAIN', - base_amount = '100.00', - slippage_bps = 1, - settlement = {"type":"DVP","sourceAccount":{"type":"VAULT_ACCOUNT","id":"vault_acc_3f7e1d9b2c5a8e4f"},"destinationAccount":{"type":"VAULT_ACCOUNT","id":"vault_acc_7b2e5d8f1c4a9e3b"}}, - side = 'BUY' - ) - else: - return CreateQuote( - scope = [ - null - ], - base_asset_id = '', - quote_asset_id = '', - base_amount = '100.00', - side = 'BUY', - ) - """ - - def testCreateQuote(self): - """Test CreateQuote""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9xdW90ZSBpbXBvcnQgQ3JlYXRlUXVvdGUKCgpjbGFzcyBUZXN0Q3JlYXRlUXVvdGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ3JlYXRlUXVvdGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENyZWF0ZVF1b3RlOgogICAgICAgICIiIlRlc3QgQ3JlYXRlUXVvdGUKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ3JlYXRlUXVvdGVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDcmVhdGVRdW90ZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZVF1b3RlKAogICAgICAgICAgICAgICAgc2NvcGUgPSBbCiAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0X2lkID0gJycsCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0X3JhaWwgPSAnQkxPQ0tDSEFJTicsCiAgICAgICAgICAgICAgICBxdW90ZV9hc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgcXVvdGVfYXNzZXRfcmFpbCA9ICdCTE9DS0NIQUlOJywKICAgICAgICAgICAgICAgIGJhc2VfYW1vdW50ID0gJzEwMC4wMCcsCiAgICAgICAgICAgICAgICBzbGlwcGFnZV9icHMgPSAxLAogICAgICAgICAgICAgICAgc2V0dGxlbWVudCA9IHsidHlwZSI6IkRWUCIsInNvdXJjZUFjY291bnQiOnsidHlwZSI6IlZBVUxUX0FDQ09VTlQiLCJpZCI6InZhdWx0X2FjY18zZjdlMWQ5YjJjNWE4ZTRmIn0sImRlc3RpbmF0aW9uQWNjb3VudCI6eyJ0eXBlIjoiVkFVTFRfQUNDT1VOVCIsImlkIjoidmF1bHRfYWNjXzdiMmU1ZDhmMWM0YTllM2IifX0sCiAgICAgICAgICAgICAgICBzaWRlID0gJ0JVWScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDcmVhdGVRdW90ZSgKICAgICAgICAgICAgICAgIHNjb3BlID0gWwogICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgcXVvdGVfYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIGJhc2VfYW1vdW50ID0gJzEwMC4wMCcsCiAgICAgICAgICAgICAgICBzaWRlID0gJ0JVWScsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q3JlYXRlUXVvdGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVRdW90ZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_create_quote_scope_inner.py b/test/test_create_quote_scope_inner.py index 32e65e1b..00846ec4 100644 --- a/test/test_create_quote_scope_inner.py +++ b/test/test_create_quote_scope_inner.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_quote_scope_inner import CreateQuoteScopeInner - - -class TestCreateQuoteScopeInner(unittest.TestCase): - """CreateQuoteScopeInner unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateQuoteScopeInner: - """Test CreateQuoteScopeInner - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateQuoteScopeInner` - """ - model = CreateQuoteScopeInner() - if include_optional: - return CreateQuoteScopeInner( - provider_id = '', - account_id = '' - ) - else: - return CreateQuoteScopeInner( - provider_id = '', - ) - """ - - def testCreateQuoteScopeInner(self): - """Test CreateQuoteScopeInner""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9xdW90ZV9zY29wZV9pbm5lciBpbXBvcnQgQ3JlYXRlUXVvdGVTY29wZUlubmVyCgoKY2xhc3MgVGVzdENyZWF0ZVF1b3RlU2NvcGVJbm5lcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDcmVhdGVRdW90ZVNjb3BlSW5uZXIgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENyZWF0ZVF1b3RlU2NvcGVJbm5lcjoKICAgICAgICAiIiJUZXN0IENyZWF0ZVF1b3RlU2NvcGVJbm5lcgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDcmVhdGVRdW90ZVNjb3BlSW5uZXJgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDcmVhdGVRdW90ZVNjb3BlSW5uZXIoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDcmVhdGVRdW90ZVNjb3BlSW5uZXIoCiAgICAgICAgICAgICAgICBwcm92aWRlcl9pZCA9ICcnLAogICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlUXVvdGVTY29wZUlubmVyKAogICAgICAgICAgICAgICAgcHJvdmlkZXJfaWQgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDcmVhdGVRdW90ZVNjb3BlSW5uZXIoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVRdW90ZVNjb3BlSW5uZXIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_create_signing_key_dto.py b/test/test_create_signing_key_dto.py index 1bab65c9..46c84c46 100644 --- a/test/test_create_signing_key_dto.py +++ b/test/test_create_signing_key_dto.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_signing_key_dto import CreateSigningKeyDto - - -class TestCreateSigningKeyDto(unittest.TestCase): - """CreateSigningKeyDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateSigningKeyDto: - """Test CreateSigningKeyDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateSigningKeyDto` - """ - model = CreateSigningKeyDto() - if include_optional: - return CreateSigningKeyDto( - signing_device_key_id = 'MyKey1', - signed_cert_pem = '-----BEGIN CERTIFICATE ... END CERTIFICATE-----', - agent_user_id = 'd18847b5-1df6-4c46-8f99-5cce47284529', - proof_of_ownership = fireblocks.models.create_signing_key_dto_proof_of_ownership.CreateSigningKeyDto_proofOfOwnership( - message = '0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263', - signature = '0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263', ) - ) - else: - return CreateSigningKeyDto( - signing_device_key_id = 'MyKey1', - signed_cert_pem = '-----BEGIN CERTIFICATE ... END CERTIFICATE-----', - agent_user_id = 'd18847b5-1df6-4c46-8f99-5cce47284529', - ) - """ - - def testCreateSigningKeyDto(self): - """Test CreateSigningKeyDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9zaWduaW5nX2tleV9kdG8gaW1wb3J0IENyZWF0ZVNpZ25pbmdLZXlEdG8KCgpjbGFzcyBUZXN0Q3JlYXRlU2lnbmluZ0tleUR0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDcmVhdGVTaWduaW5nS2V5RHRvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDcmVhdGVTaWduaW5nS2V5RHRvOgogICAgICAgICIiIlRlc3QgQ3JlYXRlU2lnbmluZ0tleUR0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDcmVhdGVTaWduaW5nS2V5RHRvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ3JlYXRlU2lnbmluZ0tleUR0bygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZVNpZ25pbmdLZXlEdG8oCiAgICAgICAgICAgICAgICBzaWduaW5nX2RldmljZV9rZXlfaWQgPSAnTXlLZXkxJywKICAgICAgICAgICAgICAgIHNpZ25lZF9jZXJ0X3BlbSA9ICctLS0tLUJFR0lOIENFUlRJRklDQVRFIC4uLiBFTkQgQ0VSVElGSUNBVEUtLS0tLScsCiAgICAgICAgICAgICAgICBhZ2VudF91c2VyX2lkID0gJ2QxODg0N2I1LTFkZjYtNGM0Ni04Zjk5LTVjY2U0NzI4NDUyOScsCiAgICAgICAgICAgICAgICBwcm9vZl9vZl9vd25lcnNoaXAgPSBmaXJlYmxvY2tzLm1vZGVscy5jcmVhdGVfc2lnbmluZ19rZXlfZHRvX3Byb29mX29mX293bmVyc2hpcC5DcmVhdGVTaWduaW5nS2V5RHRvX3Byb29mT2ZPd25lcnNoaXAoCiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICcwMTIzNDU2Nzg5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzJywgCiAgICAgICAgICAgICAgICAgICAgc2lnbmF0dXJlID0gJzAxMjM0NTY3ODkxMDExMTIxMzE0MTUxNjE3MTgxOTIwMjEyMjIzMjQyNTI2MjcyODI5MzAzMTMyMzMzNDM1MzYzNzM4Mzk0MDQxNDI0MzQ0NDU0NjQ3NDg0OTUwNTE1MjUzNTQ1NTU2NTc1ODU5NjA2MTYyNjMnLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlU2lnbmluZ0tleUR0bygKICAgICAgICAgICAgICAgIHNpZ25pbmdfZGV2aWNlX2tleV9pZCA9ICdNeUtleTEnLAogICAgICAgICAgICAgICAgc2lnbmVkX2NlcnRfcGVtID0gJy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUgLi4uIEVORCBDRVJUSUZJQ0FURS0tLS0tJywKICAgICAgICAgICAgICAgIGFnZW50X3VzZXJfaWQgPSAnZDE4ODQ3YjUtMWRmNi00YzQ2LThmOTktNWNjZTQ3Mjg0NTI5JywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDcmVhdGVTaWduaW5nS2V5RHRvKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ3JlYXRlU2lnbmluZ0tleUR0byIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_create_signing_key_dto_proof_of_ownership.py b/test/test_create_signing_key_dto_proof_of_ownership.py index 6fb5a6eb..9cb9dd6e 100644 --- a/test/test_create_signing_key_dto_proof_of_ownership.py +++ b/test/test_create_signing_key_dto_proof_of_ownership.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_signing_key_dto_proof_of_ownership import ( - CreateSigningKeyDtoProofOfOwnership, -) - - -class TestCreateSigningKeyDtoProofOfOwnership(unittest.TestCase): - """CreateSigningKeyDtoProofOfOwnership unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateSigningKeyDtoProofOfOwnership: - """Test CreateSigningKeyDtoProofOfOwnership - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateSigningKeyDtoProofOfOwnership` - """ - model = CreateSigningKeyDtoProofOfOwnership() - if include_optional: - return CreateSigningKeyDtoProofOfOwnership( - message = '0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263', - signature = '0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263' - ) - else: - return CreateSigningKeyDtoProofOfOwnership( - message = '0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263', - signature = '0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263', - ) - """ - - def testCreateSigningKeyDtoProofOfOwnership(self): - """Test CreateSigningKeyDtoProofOfOwnership""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV9zaWduaW5nX2tleV9kdG9fcHJvb2Zfb2Zfb3duZXJzaGlwIGltcG9ydCAoCiAgICBDcmVhdGVTaWduaW5nS2V5RHRvUHJvb2ZPZk93bmVyc2hpcCwKKQoKCmNsYXNzIFRlc3RDcmVhdGVTaWduaW5nS2V5RHRvUHJvb2ZPZk93bmVyc2hpcCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDcmVhdGVTaWduaW5nS2V5RHRvUHJvb2ZPZk93bmVyc2hpcCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ3JlYXRlU2lnbmluZ0tleUR0b1Byb29mT2ZPd25lcnNoaXA6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVTaWduaW5nS2V5RHRvUHJvb2ZPZk93bmVyc2hpcAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDcmVhdGVTaWduaW5nS2V5RHRvUHJvb2ZPZk93bmVyc2hpcGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENyZWF0ZVNpZ25pbmdLZXlEdG9Qcm9vZk9mT3duZXJzaGlwKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlU2lnbmluZ0tleUR0b1Byb29mT2ZPd25lcnNoaXAoCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJzAxMjM0NTY3ODkxMDExMTIxMzE0MTUxNjE3MTgxOTIwMjEyMjIzMjQyNTI2MjcyODI5MzAzMTMyMzMzNDM1MzYzNzM4Mzk0MDQxNDI0MzQ0NDU0NjQ3NDg0OTUwNTE1MjUzNTQ1NTU2NTc1ODU5NjA2MTYyNjMnLAogICAgICAgICAgICAgICAgc2lnbmF0dXJlID0gJzAxMjM0NTY3ODkxMDExMTIxMzE0MTUxNjE3MTgxOTIwMjEyMjIzMjQyNTI2MjcyODI5MzAzMTMyMzMzNDM1MzYzNzM4Mzk0MDQxNDI0MzQ0NDU0NjQ3NDg0OTUwNTE1MjUzNTQ1NTU2NTc1ODU5NjA2MTYyNjMnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlU2lnbmluZ0tleUR0b1Byb29mT2ZPd25lcnNoaXAoCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJzAxMjM0NTY3ODkxMDExMTIxMzE0MTUxNjE3MTgxOTIwMjEyMjIzMjQyNTI2MjcyODI5MzAzMTMyMzMzNDM1MzYzNzM4Mzk0MDQxNDI0MzQ0NDU0NjQ3NDg0OTUwNTE1MjUzNTQ1NTU2NTc1ODU5NjA2MTYyNjMnLAogICAgICAgICAgICAgICAgc2lnbmF0dXJlID0gJzAxMjM0NTY3ODkxMDExMTIxMzE0MTUxNjE3MTgxOTIwMjEyMjIzMjQyNTI2MjcyODI5MzAzMTMyMzMzNDM1MzYzNzM4Mzk0MDQxNDI0MzQ0NDU0NjQ3NDg0OTUwNTE1MjUzNTQ1NTU2NTc1ODU5NjA2MTYyNjMnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENyZWF0ZVNpZ25pbmdLZXlEdG9Qcm9vZk9mT3duZXJzaGlwKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ3JlYXRlU2lnbmluZ0tleUR0b1Byb29mT2ZPd25lcnNoaXAiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_create_tag_request.py b/test/test_create_tag_request.py index e2dad6d7..48c0bc43 100644 --- a/test/test_create_tag_request.py +++ b/test/test_create_tag_request.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_tag_request import CreateTagRequest - - -class TestCreateTagRequest(unittest.TestCase): - """CreateTagRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateTagRequest: - """Test CreateTagRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateTagRequest` - """ - model = CreateTagRequest() - if include_optional: - return CreateTagRequest( - label = 'VIP', - description = 'Tag for VIP customers', - color = '#FF5733', - is_protected = True - ) - else: - return CreateTagRequest( - label = 'VIP', - ) - """ - - def testCreateTagRequest(self): - """Test CreateTagRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV90YWdfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlVGFnUmVxdWVzdAoKCmNsYXNzIFRlc3RDcmVhdGVUYWdSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNyZWF0ZVRhZ1JlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENyZWF0ZVRhZ1JlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVUYWdSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENyZWF0ZVRhZ1JlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDcmVhdGVUYWdSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlVGFnUmVxdWVzdCgKICAgICAgICAgICAgICAgIGxhYmVsID0gJ1ZJUCcsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUYWcgZm9yIFZJUCBjdXN0b21lcnMnLAogICAgICAgICAgICAgICAgY29sb3IgPSAnI0ZGNTczMycsCiAgICAgICAgICAgICAgICBpc19wcm90ZWN0ZWQgPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlVGFnUmVxdWVzdCgKICAgICAgICAgICAgICAgIGxhYmVsID0gJ1ZJUCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q3JlYXRlVGFnUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IENyZWF0ZVRhZ1JlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_create_token_request_dto.py b/test/test_create_token_request_dto.py index 955e2689..da56b4cc 100644 --- a/test/test_create_token_request_dto.py +++ b/test/test_create_token_request_dto.py @@ -1,65 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_token_request_dto import CreateTokenRequestDto - - -class TestCreateTokenRequestDto(unittest.TestCase): - """CreateTokenRequestDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateTokenRequestDto: - """Test CreateTokenRequestDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateTokenRequestDto` - """ - model = CreateTokenRequestDto() - if include_optional: - return CreateTokenRequestDto( - blockchain_id = 'B7QG017M', - asset_id = 'ETH_TEST5', - vault_account_id = '0', - create_params = None, - display_name = '', - use_gasless = False, - fee = '2000', - fee_level = 'MEDIUM', - tx_note = 'Token creation transaction for new stablecoin', - external_id = '0192e4f5-924e-7bb9-8e5b-c748270feb38' - ) - else: - return CreateTokenRequestDto( - vault_account_id = '0', - create_params = None, - ) - """ - - def testCreateTokenRequestDto(self): - """Test CreateTokenRequestDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV90b2tlbl9yZXF1ZXN0X2R0byBpbXBvcnQgQ3JlYXRlVG9rZW5SZXF1ZXN0RHRvCgoKY2xhc3MgVGVzdENyZWF0ZVRva2VuUmVxdWVzdER0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDcmVhdGVUb2tlblJlcXVlc3REdG8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENyZWF0ZVRva2VuUmVxdWVzdER0bzoKICAgICAgICAiIiJUZXN0IENyZWF0ZVRva2VuUmVxdWVzdER0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDcmVhdGVUb2tlblJlcXVlc3REdG9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDcmVhdGVUb2tlblJlcXVlc3REdG8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDcmVhdGVUb2tlblJlcXVlc3REdG8oCiAgICAgICAgICAgICAgICBibG9ja2NoYWluX2lkID0gJ0I3UUcwMTdNJywKICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJ0VUSF9URVNUNScsCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gJzAnLAogICAgICAgICAgICAgICAgY3JlYXRlX3BhcmFtcyA9IE5vbmUsCiAgICAgICAgICAgICAgICBkaXNwbGF5X25hbWUgPSAnJywKICAgICAgICAgICAgICAgIHVzZV9nYXNsZXNzID0gRmFsc2UsCiAgICAgICAgICAgICAgICBmZWUgPSAnMjAwMCcsCiAgICAgICAgICAgICAgICBmZWVfbGV2ZWwgPSAnTUVESVVNJywKICAgICAgICAgICAgICAgIHR4X25vdGUgPSAnVG9rZW4gY3JlYXRpb24gdHJhbnNhY3Rpb24gZm9yIG5ldyBzdGFibGVjb2luJywKICAgICAgICAgICAgICAgIGV4dGVybmFsX2lkID0gJzAxOTJlNGY1LTkyNGUtN2JiOS04ZTViLWM3NDgyNzBmZWIzOCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDcmVhdGVUb2tlblJlcXVlc3REdG8oCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gJzAnLAogICAgICAgICAgICAgICAgY3JlYXRlX3BhcmFtcyA9IE5vbmUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q3JlYXRlVG9rZW5SZXF1ZXN0RHRvKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ3JlYXRlVG9rZW5SZXF1ZXN0RHRvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_create_token_request_dto_create_params.py b/test/test_create_token_request_dto_create_params.py index a7fa093f..06857764 100644 --- a/test/test_create_token_request_dto_create_params.py +++ b/test/test_create_token_request_dto_create_params.py @@ -1,66 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_token_request_dto_create_params import ( - CreateTokenRequestDtoCreateParams, -) - - -class TestCreateTokenRequestDtoCreateParams(unittest.TestCase): - """CreateTokenRequestDtoCreateParams unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateTokenRequestDtoCreateParams: - """Test CreateTokenRequestDtoCreateParams - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateTokenRequestDtoCreateParams` - """ - model = CreateTokenRequestDtoCreateParams() - if include_optional: - return CreateTokenRequestDtoCreateParams( - contract_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - deploy_function_params = [{internalType=string, name=name, type=string, value=name}, {internalType=string, name=symbol, type=string, value=symbol}, {components=[{internalType=bool, name=_isMintable, type=bool}], internalType=struct MyStruct, name=customConfigProps, type=tuple, value=[{internalType=bool, name=_isMintable, type=bool, value=false}]}], - symbol = 'SOL', - name = 'SolanaToken', - issuer_address = 'rnDV4JiwgRNhudPY2sm65AzECpRXaasL4r', - decimals = 9 - ) - else: - return CreateTokenRequestDtoCreateParams( - contract_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - symbol = 'SOL', - name = 'SolanaToken', - issuer_address = 'rnDV4JiwgRNhudPY2sm65AzECpRXaasL4r', - decimals = 9, - ) - """ - - def testCreateTokenRequestDtoCreateParams(self): - """Test CreateTokenRequestDtoCreateParams""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV90b2tlbl9yZXF1ZXN0X2R0b19jcmVhdGVfcGFyYW1zIGltcG9ydCAoCiAgICBDcmVhdGVUb2tlblJlcXVlc3REdG9DcmVhdGVQYXJhbXMsCikKCgpjbGFzcyBUZXN0Q3JlYXRlVG9rZW5SZXF1ZXN0RHRvQ3JlYXRlUGFyYW1zKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNyZWF0ZVRva2VuUmVxdWVzdER0b0NyZWF0ZVBhcmFtcyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ3JlYXRlVG9rZW5SZXF1ZXN0RHRvQ3JlYXRlUGFyYW1zOgogICAgICAgICIiIlRlc3QgQ3JlYXRlVG9rZW5SZXF1ZXN0RHRvQ3JlYXRlUGFyYW1zCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENyZWF0ZVRva2VuUmVxdWVzdER0b0NyZWF0ZVBhcmFtc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENyZWF0ZVRva2VuUmVxdWVzdER0b0NyZWF0ZVBhcmFtcygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZVRva2VuUmVxdWVzdER0b0NyZWF0ZVBhcmFtcygKICAgICAgICAgICAgICAgIGNvbnRyYWN0X2lkID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCcsCiAgICAgICAgICAgICAgICBkZXBsb3lfZnVuY3Rpb25fcGFyYW1zID0gW3tpbnRlcm5hbFR5cGU9c3RyaW5nLCBuYW1lPW5hbWUsIHR5cGU9c3RyaW5nLCB2YWx1ZT1uYW1lfSwge2ludGVybmFsVHlwZT1zdHJpbmcsIG5hbWU9c3ltYm9sLCB0eXBlPXN0cmluZywgdmFsdWU9c3ltYm9sfSwge2NvbXBvbmVudHM9W3tpbnRlcm5hbFR5cGU9Ym9vbCwgbmFtZT1faXNNaW50YWJsZSwgdHlwZT1ib29sfV0sIGludGVybmFsVHlwZT1zdHJ1Y3QgTXlTdHJ1Y3QsIG5hbWU9Y3VzdG9tQ29uZmlnUHJvcHMsIHR5cGU9dHVwbGUsIHZhbHVlPVt7aW50ZXJuYWxUeXBlPWJvb2wsIG5hbWU9X2lzTWludGFibGUsIHR5cGU9Ym9vbCwgdmFsdWU9ZmFsc2V9XX1dLAogICAgICAgICAgICAgICAgc3ltYm9sID0gJ1NPTCcsCiAgICAgICAgICAgICAgICBuYW1lID0gJ1NvbGFuYVRva2VuJywKICAgICAgICAgICAgICAgIGlzc3Vlcl9hZGRyZXNzID0gJ3JuRFY0Sml3Z1JOaHVkUFkyc202NUF6RUNwUlhhYXNMNHInLAogICAgICAgICAgICAgICAgZGVjaW1hbHMgPSA5CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlVG9rZW5SZXF1ZXN0RHRvQ3JlYXRlUGFyYW1zKAogICAgICAgICAgICAgICAgY29udHJhY3RfaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywKICAgICAgICAgICAgICAgIHN5bWJvbCA9ICdTT0wnLAogICAgICAgICAgICAgICAgbmFtZSA9ICdTb2xhbmFUb2tlbicsCiAgICAgICAgICAgICAgICBpc3N1ZXJfYWRkcmVzcyA9ICdybkRWNEppd2dSTmh1ZFBZMnNtNjVBekVDcFJYYWFzTDRyJywKICAgICAgICAgICAgICAgIGRlY2ltYWxzID0gOSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDcmVhdGVUb2tlblJlcXVlc3REdG9DcmVhdGVQYXJhbXMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVUb2tlblJlcXVlc3REdG9DcmVhdGVQYXJhbXMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_create_transaction_response.py b/test/test_create_transaction_response.py index e3426d78..14954d84 100644 --- a/test/test_create_transaction_response.py +++ b/test/test_create_transaction_response.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_transaction_response import CreateTransactionResponse - - -class TestCreateTransactionResponse(unittest.TestCase): - """CreateTransactionResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateTransactionResponse: - """Test CreateTransactionResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateTransactionResponse` - """ - model = CreateTransactionResponse() - if include_optional: - return CreateTransactionResponse( - id = '', - status = '', - system_messages = [ - fireblocks.models.system_message_info.SystemMessageInfo( - type = 'WARN', - message = 'Slow transaction processing. Outgoing transactions might be stuck.', ) - ] - ) - else: - return CreateTransactionResponse( - ) - """ - - def testCreateTransactionResponse(self): - """Test CreateTransactionResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV90cmFuc2FjdGlvbl9yZXNwb25zZSBpbXBvcnQgQ3JlYXRlVHJhbnNhY3Rpb25SZXNwb25zZQoKCmNsYXNzIFRlc3RDcmVhdGVUcmFuc2FjdGlvblJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNyZWF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENyZWF0ZVRyYW5zYWN0aW9uUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVUcmFuc2FjdGlvblJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENyZWF0ZVRyYW5zYWN0aW9uUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDcmVhdGVUcmFuc2FjdGlvblJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlVHJhbnNhY3Rpb25SZXNwb25zZSgKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnJywKICAgICAgICAgICAgICAgIHN5c3RlbV9tZXNzYWdlcyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5zeXN0ZW1fbWVzc2FnZV9pbmZvLlN5c3RlbU1lc3NhZ2VJbmZvKAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1dBUk4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdTbG93IHRyYW5zYWN0aW9uIHByb2Nlc3NpbmcuIE91dGdvaW5nIHRyYW5zYWN0aW9ucyBtaWdodCBiZSBzdHVjay4nLCApCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q3JlYXRlVHJhbnNhY3Rpb25SZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IENyZWF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_create_transfer_config_operation_request.py b/test/test_create_transfer_config_operation_request.py index 3af94679..8075d204 100644 --- a/test/test_create_transfer_config_operation_request.py +++ b/test/test_create_transfer_config_operation_request.py @@ -1,71 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_transfer_config_operation_request import ( - CreateTransferConfigOperationRequest, -) - - -class TestCreateTransferConfigOperationRequest(unittest.TestCase): - """CreateTransferConfigOperationRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateTransferConfigOperationRequest: - """Test CreateTransferConfigOperationRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateTransferConfigOperationRequest` - """ - model = CreateTransferConfigOperationRequest() - if include_optional: - return CreateTransferConfigOperationRequest( - type = 'TRANSFER', - params = fireblocks.models.transfer_operation_config_params.TransferOperationConfigParams( - amount = '', - asset_id = '', - source = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - destination = null, ) - ) - else: - return CreateTransferConfigOperationRequest( - type = 'TRANSFER', - params = fireblocks.models.transfer_operation_config_params.TransferOperationConfigParams( - amount = '', - asset_id = '', - source = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - destination = null, ), - ) - """ - - def testCreateTransferConfigOperationRequest(self): - """Test CreateTransferConfigOperationRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV90cmFuc2Zlcl9jb25maWdfb3BlcmF0aW9uX3JlcXVlc3QgaW1wb3J0ICgKICAgIENyZWF0ZVRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RDcmVhdGVUcmFuc2ZlckNvbmZpZ09wZXJhdGlvblJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ3JlYXRlVHJhbnNmZXJDb25maWdPcGVyYXRpb25SZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDcmVhdGVUcmFuc2ZlckNvbmZpZ09wZXJhdGlvblJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVUcmFuc2ZlckNvbmZpZ09wZXJhdGlvblJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ3JlYXRlVHJhbnNmZXJDb25maWdPcGVyYXRpb25SZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ3JlYXRlVHJhbnNmZXJDb25maWdPcGVyYXRpb25SZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlVHJhbnNmZXJDb25maWdPcGVyYXRpb25SZXF1ZXN0KAogICAgICAgICAgICAgICAgdHlwZSA9ICdUUkFOU0ZFUicsCiAgICAgICAgICAgICAgICBwYXJhbXMgPSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fY29uZmlnX3BhcmFtcy5UcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcygKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgc291cmNlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudC5BY2NvdW50KAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X3R5cGUgPSAnRVhDSEFOR0VfQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gbnVsbCwgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZVRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uUmVxdWVzdCgKICAgICAgICAgICAgICAgIHR5cGUgPSAnVFJBTlNGRVInLAogICAgICAgICAgICAgICAgcGFyYW1zID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMuVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9IGZpcmVibG9ja3MubW9kZWxzLmFjY291bnQuQWNjb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF90eXBlID0gJ0VYQ0hBTkdFX0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IG51bGwsICksCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q3JlYXRlVHJhbnNmZXJDb25maWdPcGVyYXRpb25SZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQ3JlYXRlVHJhbnNmZXJDb25maWdPcGVyYXRpb25SZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_create_user_group_response.py b/test/test_create_user_group_response.py index e609b20f..20a4dac8 100644 --- a/test/test_create_user_group_response.py +++ b/test/test_create_user_group_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_user_group_response import CreateUserGroupResponse - - -class TestCreateUserGroupResponse(unittest.TestCase): - """CreateUserGroupResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateUserGroupResponse: - """Test CreateUserGroupResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateUserGroupResponse` - """ - model = CreateUserGroupResponse() - if include_optional: - return CreateUserGroupResponse( - id = '', - name = '', - member_ids = [ - '' - ], - status = '' - ) - else: - return CreateUserGroupResponse( - ) - """ - - def testCreateUserGroupResponse(self): - """Test CreateUserGroupResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV91c2VyX2dyb3VwX3Jlc3BvbnNlIGltcG9ydCBDcmVhdGVVc2VyR3JvdXBSZXNwb25zZQoKCmNsYXNzIFRlc3RDcmVhdGVVc2VyR3JvdXBSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDcmVhdGVVc2VyR3JvdXBSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gQ3JlYXRlVXNlckdyb3VwUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVVc2VyR3JvdXBSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDcmVhdGVVc2VyR3JvdXBSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IENyZWF0ZVVzZXJHcm91cFJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlVXNlckdyb3VwUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBpZCA9ICcnLAogICAgICAgICAgICAgICAgbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgbWVtYmVyX2lkcyA9IFsKICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZVVzZXJHcm91cFJlc3BvbnNlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENyZWF0ZVVzZXJHcm91cFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ3JlYXRlVXNlckdyb3VwUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_create_validation_key_dto.py b/test/test_create_validation_key_dto.py index 29e19bdc..64d7442f 100644 --- a/test/test_create_validation_key_dto.py +++ b/test/test_create_validation_key_dto.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_validation_key_dto import CreateValidationKeyDto - - -class TestCreateValidationKeyDto(unittest.TestCase): - """CreateValidationKeyDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateValidationKeyDto: - """Test CreateValidationKeyDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateValidationKeyDto` - """ - model = CreateValidationKeyDto() - if include_optional: - return CreateValidationKeyDto( - public_key_pem = '-----BEGIN PUBLIC KEY ... END PUBLIC KEY-----', - days_till_expired = 365 - ) - else: - return CreateValidationKeyDto( - public_key_pem = '-----BEGIN PUBLIC KEY ... END PUBLIC KEY-----', - days_till_expired = 365, - ) - """ - - def testCreateValidationKeyDto(self): - """Test CreateValidationKeyDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV92YWxpZGF0aW9uX2tleV9kdG8gaW1wb3J0IENyZWF0ZVZhbGlkYXRpb25LZXlEdG8KCgpjbGFzcyBUZXN0Q3JlYXRlVmFsaWRhdGlvbktleUR0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDcmVhdGVWYWxpZGF0aW9uS2V5RHRvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDcmVhdGVWYWxpZGF0aW9uS2V5RHRvOgogICAgICAgICIiIlRlc3QgQ3JlYXRlVmFsaWRhdGlvbktleUR0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDcmVhdGVWYWxpZGF0aW9uS2V5RHRvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ3JlYXRlVmFsaWRhdGlvbktleUR0bygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZVZhbGlkYXRpb25LZXlEdG8oCiAgICAgICAgICAgICAgICBwdWJsaWNfa2V5X3BlbSA9ICctLS0tLUJFR0lOIFBVQkxJQyBLRVkgLi4uICBFTkQgUFVCTElDIEtFWS0tLS0tJywKICAgICAgICAgICAgICAgIGRheXNfdGlsbF9leHBpcmVkID0gMzY1CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlVmFsaWRhdGlvbktleUR0bygKICAgICAgICAgICAgICAgIHB1YmxpY19rZXlfcGVtID0gJy0tLS0tQkVHSU4gUFVCTElDIEtFWSAuLi4gIEVORCBQVUJMSUMgS0VZLS0tLS0nLAogICAgICAgICAgICAgICAgZGF5c190aWxsX2V4cGlyZWQgPSAzNjUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Q3JlYXRlVmFsaWRhdGlvbktleUR0byhzZWxmKToKICAgICAgICAiIiJUZXN0IENyZWF0ZVZhbGlkYXRpb25LZXlEdG8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_create_validation_key_response_dto.py b/test/test_create_validation_key_response_dto.py index 101b7287..5198bfcc 100644 --- a/test/test_create_validation_key_response_dto.py +++ b/test/test_create_validation_key_response_dto.py @@ -1,77 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_validation_key_response_dto import ( - CreateValidationKeyResponseDto, -) - - -class TestCreateValidationKeyResponseDto(unittest.TestCase): - """CreateValidationKeyResponseDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateValidationKeyResponseDto: - """Test CreateValidationKeyResponseDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateValidationKeyResponseDto` - """ - model = CreateValidationKeyResponseDto() - if include_optional: - return CreateValidationKeyResponseDto( - validation_key = fireblocks.models.validation_key_dto.ValidationKeyDto( - key_id = '46a92767-5f93-4a46-9eed-f012196bb4fc', - public_key_pem = '-----BEGIN PUBLIC KEY ... END PUBLIC KEY-----', - days_till_expired = 365, - enabled = False, - created_at = 12345633, ), - admins = [ - '' - ], - approval_threshold = 0, - request_id = 1234 - ) - else: - return CreateValidationKeyResponseDto( - validation_key = fireblocks.models.validation_key_dto.ValidationKeyDto( - key_id = '46a92767-5f93-4a46-9eed-f012196bb4fc', - public_key_pem = '-----BEGIN PUBLIC KEY ... END PUBLIC KEY-----', - days_till_expired = 365, - enabled = False, - created_at = 12345633, ), - admins = [ - '' - ], - approval_threshold = 0, - request_id = 1234, - ) - """ - - def testCreateValidationKeyResponseDto(self): - """Test CreateValidationKeyResponseDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV92YWxpZGF0aW9uX2tleV9yZXNwb25zZV9kdG8gaW1wb3J0ICgKICAgIENyZWF0ZVZhbGlkYXRpb25LZXlSZXNwb25zZUR0bywKKQoKCmNsYXNzIFRlc3RDcmVhdGVWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ3JlYXRlVmFsaWRhdGlvbktleVJlc3BvbnNlRHRvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDcmVhdGVWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG86CiAgICAgICAgIiIiVGVzdCBDcmVhdGVWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ3JlYXRlVmFsaWRhdGlvbktleVJlc3BvbnNlRHRvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ3JlYXRlVmFsaWRhdGlvbktleVJlc3BvbnNlRHRvKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlVmFsaWRhdGlvbktleVJlc3BvbnNlRHRvKAogICAgICAgICAgICAgICAgdmFsaWRhdGlvbl9rZXkgPSBmaXJlYmxvY2tzLm1vZGVscy52YWxpZGF0aW9uX2tleV9kdG8uVmFsaWRhdGlvbktleUR0bygKICAgICAgICAgICAgICAgICAgICBrZXlfaWQgPSAnNDZhOTI3NjctNWY5My00YTQ2LTllZWQtZjAxMjE5NmJiNGZjJywgCiAgICAgICAgICAgICAgICAgICAgcHVibGljX2tleV9wZW0gPSAnLS0tLS1CRUdJTiBQVUJMSUMgS0VZIC4uLiAgRU5EIFBVQkxJQyBLRVktLS0tLScsIAogICAgICAgICAgICAgICAgICAgIGRheXNfdGlsbF9leHBpcmVkID0gMzY1LCAKICAgICAgICAgICAgICAgICAgICBlbmFibGVkID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRfYXQgPSAxMjM0NTYzMywgKSwKICAgICAgICAgICAgICAgIGFkbWlucyA9IFsKICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBhcHByb3ZhbF90aHJlc2hvbGQgPSAwLAogICAgICAgICAgICAgICAgcmVxdWVzdF9pZCA9IDEyMzQKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDcmVhdGVWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8oCiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uX2tleSA9IGZpcmVibG9ja3MubW9kZWxzLnZhbGlkYXRpb25fa2V5X2R0by5WYWxpZGF0aW9uS2V5RHRvKAogICAgICAgICAgICAgICAgICAgIGtleV9pZCA9ICc0NmE5Mjc2Ny01ZjkzLTRhNDYtOWVlZC1mMDEyMTk2YmI0ZmMnLCAKICAgICAgICAgICAgICAgICAgICBwdWJsaWNfa2V5X3BlbSA9ICctLS0tLUJFR0lOIFBVQkxJQyBLRVkgLi4uICBFTkQgUFVCTElDIEtFWS0tLS0tJywgCiAgICAgICAgICAgICAgICAgICAgZGF5c190aWxsX2V4cGlyZWQgPSAzNjUsIAogICAgICAgICAgICAgICAgICAgIGVuYWJsZWQgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgY3JlYXRlZF9hdCA9IDEyMzQ1NjMzLCApLAogICAgICAgICAgICAgICAgYWRtaW5zID0gWwogICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGFwcHJvdmFsX3RocmVzaG9sZCA9IDAsCiAgICAgICAgICAgICAgICByZXF1ZXN0X2lkID0gMTIzNCwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDcmVhdGVWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_create_vault_account_connection_request.py b/test/test_create_vault_account_connection_request.py index f2a00891..eba6d6a4 100644 --- a/test/test_create_vault_account_connection_request.py +++ b/test/test_create_vault_account_connection_request.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_vault_account_connection_request import ( - CreateVaultAccountConnectionRequest, -) - - -class TestCreateVaultAccountConnectionRequest(unittest.TestCase): - """CreateVaultAccountConnectionRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateVaultAccountConnectionRequest: - """Test CreateVaultAccountConnectionRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateVaultAccountConnectionRequest` - """ - model = CreateVaultAccountConnectionRequest() - if include_optional: - return CreateVaultAccountConnectionRequest( - vault_account_id = 1, - fee_level = 'MEDIUM', - uri = 'wc:77752975-906f-48f5-b59f-047826ee947e@1?bridge=https%3A%2F%2F0.bridge.walletconnect.org&key=64be99adc6086b7a729b0ec8c7e1f174927ab92e84f5c6f9527050225344a637', - chain_ids = ["ETH"] - ) - else: - return CreateVaultAccountConnectionRequest( - vault_account_id = 1, - fee_level = 'MEDIUM', - uri = 'wc:77752975-906f-48f5-b59f-047826ee947e@1?bridge=https%3A%2F%2F0.bridge.walletconnect.org&key=64be99adc6086b7a729b0ec8c7e1f174927ab92e84f5c6f9527050225344a637', - ) - """ - - def testCreateVaultAccountConnectionRequest(self): - """Test CreateVaultAccountConnectionRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV92YXVsdF9hY2NvdW50X2Nvbm5lY3Rpb25fcmVxdWVzdCBpbXBvcnQgKAogICAgQ3JlYXRlVmF1bHRBY2NvdW50Q29ubmVjdGlvblJlcXVlc3QsCikKCgpjbGFzcyBUZXN0Q3JlYXRlVmF1bHRBY2NvdW50Q29ubmVjdGlvblJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiQ3JlYXRlVmF1bHRBY2NvdW50Q29ubmVjdGlvblJlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENyZWF0ZVZhdWx0QWNjb3VudENvbm5lY3Rpb25SZXF1ZXN0OgogICAgICAgICIiIlRlc3QgQ3JlYXRlVmF1bHRBY2NvdW50Q29ubmVjdGlvblJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ3JlYXRlVmF1bHRBY2NvdW50Q29ubmVjdGlvblJlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDcmVhdGVWYXVsdEFjY291bnRDb25uZWN0aW9uUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZVZhdWx0QWNjb3VudENvbm5lY3Rpb25SZXF1ZXN0KAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9IDEsCiAgICAgICAgICAgICAgICBmZWVfbGV2ZWwgPSAnTUVESVVNJywKICAgICAgICAgICAgICAgIHVyaSA9ICd3Yzo3Nzc1Mjk3NS05MDZmLTQ4ZjUtYjU5Zi0wNDc4MjZlZTk0N2VAMT9icmlkZ2U9aHR0cHMlM0ElMkYlMkYwLmJyaWRnZS53YWxsZXRjb25uZWN0Lm9yZyZrZXk9NjRiZTk5YWRjNjA4NmI3YTcyOWIwZWM4YzdlMWYxNzQ5MjdhYjkyZTg0ZjVjNmY5NTI3MDUwMjI1MzQ0YTYzNycsCiAgICAgICAgICAgICAgICBjaGFpbl9pZHMgPSBbIkVUSCJdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlVmF1bHRBY2NvdW50Q29ubmVjdGlvblJlcXVlc3QoCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gMSwKICAgICAgICAgICAgICAgIGZlZV9sZXZlbCA9ICdNRURJVU0nLAogICAgICAgICAgICAgICAgdXJpID0gJ3djOjc3NzUyOTc1LTkwNmYtNDhmNS1iNTlmLTA0NzgyNmVlOTQ3ZUAxP2JyaWRnZT1odHRwcyUzQSUyRiUyRjAuYnJpZGdlLndhbGxldGNvbm5lY3Qub3JnJmtleT02NGJlOTlhZGM2MDg2YjdhNzI5YjBlYzhjN2UxZjE3NDkyN2FiOTJlODRmNWM2Zjk1MjcwNTAyMjUzNDRhNjM3JywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDcmVhdGVWYXVsdEFjY291bnRDb25uZWN0aW9uUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IENyZWF0ZVZhdWx0QWNjb3VudENvbm5lY3Rpb25SZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_create_vault_account_request.py b/test/test_create_vault_account_request.py index 703408dd..0a4f355c 100644 --- a/test/test_create_vault_account_request.py +++ b/test/test_create_vault_account_request.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_vault_account_request import CreateVaultAccountRequest - - -class TestCreateVaultAccountRequest(unittest.TestCase): - """CreateVaultAccountRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateVaultAccountRequest: - """Test CreateVaultAccountRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateVaultAccountRequest` - """ - model = CreateVaultAccountRequest() - if include_optional: - return CreateVaultAccountRequest( - name = '', - hidden_on_ui = True, - customer_ref_id = '', - auto_fuel = True, - vault_type = 'MPC', - auto_assign = True - ) - else: - return CreateVaultAccountRequest( - ) - """ - - def testCreateVaultAccountRequest(self): - """Test CreateVaultAccountRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV92YXVsdF9hY2NvdW50X3JlcXVlc3QgaW1wb3J0IENyZWF0ZVZhdWx0QWNjb3VudFJlcXVlc3QKCgpjbGFzcyBUZXN0Q3JlYXRlVmF1bHRBY2NvdW50UmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDcmVhdGVWYXVsdEFjY291bnRSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDcmVhdGVWYXVsdEFjY291bnRSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgQ3JlYXRlVmF1bHRBY2NvdW50UmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDcmVhdGVWYXVsdEFjY291bnRSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ3JlYXRlVmF1bHRBY2NvdW50UmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZVZhdWx0QWNjb3VudFJlcXVlc3QoCiAgICAgICAgICAgICAgICBuYW1lID0gJycsCiAgICAgICAgICAgICAgICBoaWRkZW5fb25fdWkgPSBUcnVlLAogICAgICAgICAgICAgICAgY3VzdG9tZXJfcmVmX2lkID0gJycsCiAgICAgICAgICAgICAgICBhdXRvX2Z1ZWwgPSBUcnVlLAogICAgICAgICAgICAgICAgdmF1bHRfdHlwZSA9ICdNUEMnLAogICAgICAgICAgICAgICAgYXV0b19hc3NpZ24gPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlVmF1bHRBY2NvdW50UmVxdWVzdCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDcmVhdGVWYXVsdEFjY291bnRSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQ3JlYXRlVmF1bHRBY2NvdW50UmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_create_vault_asset_response.py b/test/test_create_vault_asset_response.py index 3e75394f..43fba4e0 100644 --- a/test/test_create_vault_asset_response.py +++ b/test/test_create_vault_asset_response.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_vault_asset_response import CreateVaultAssetResponse - - -class TestCreateVaultAssetResponse(unittest.TestCase): - """CreateVaultAssetResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateVaultAssetResponse: - """Test CreateVaultAssetResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateVaultAssetResponse` - """ - model = CreateVaultAssetResponse() - if include_optional: - return CreateVaultAssetResponse( - id = '', - address = '', - legacy_address = '', - enterprise_address = '', - tag = '', - eos_account_name = '', - status = '', - activation_tx_id = '' - ) - else: - return CreateVaultAssetResponse( - ) - """ - - def testCreateVaultAssetResponse(self): - """Test CreateVaultAssetResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV92YXVsdF9hc3NldF9yZXNwb25zZSBpbXBvcnQgQ3JlYXRlVmF1bHRBc3NldFJlc3BvbnNlCgoKY2xhc3MgVGVzdENyZWF0ZVZhdWx0QXNzZXRSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJDcmVhdGVWYXVsdEFzc2V0UmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENyZWF0ZVZhdWx0QXNzZXRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IENyZWF0ZVZhdWx0QXNzZXRSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBDcmVhdGVWYXVsdEFzc2V0UmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDcmVhdGVWYXVsdEFzc2V0UmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDcmVhdGVWYXVsdEFzc2V0UmVzcG9uc2UoCiAgICAgICAgICAgICAgICBpZCA9ICcnLAogICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcnLAogICAgICAgICAgICAgICAgbGVnYWN5X2FkZHJlc3MgPSAnJywKICAgICAgICAgICAgICAgIGVudGVycHJpc2VfYWRkcmVzcyA9ICcnLAogICAgICAgICAgICAgICAgdGFnID0gJycsCiAgICAgICAgICAgICAgICBlb3NfYWNjb3VudF9uYW1lID0gJycsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnJywKICAgICAgICAgICAgICAgIGFjdGl2YXRpb25fdHhfaWQgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZVZhdWx0QXNzZXRSZXNwb25zZSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDcmVhdGVWYXVsdEFzc2V0UmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVWYXVsdEFzc2V0UmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_create_wallet_request.py b/test/test_create_wallet_request.py index dcc5d19b..0b42430e 100644 --- a/test/test_create_wallet_request.py +++ b/test/test_create_wallet_request.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_wallet_request import CreateWalletRequest - - -class TestCreateWalletRequest(unittest.TestCase): - """CreateWalletRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateWalletRequest: - """Test CreateWalletRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateWalletRequest` - """ - model = CreateWalletRequest() - if include_optional: - return CreateWalletRequest( - name = '', - customer_ref_id = '' - ) - else: - return CreateWalletRequest( - ) - """ - - def testCreateWalletRequest(self): - """Test CreateWalletRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV93YWxsZXRfcmVxdWVzdCBpbXBvcnQgQ3JlYXRlV2FsbGV0UmVxdWVzdAoKCmNsYXNzIFRlc3RDcmVhdGVXYWxsZXRSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNyZWF0ZVdhbGxldFJlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IENyZWF0ZVdhbGxldFJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBDcmVhdGVXYWxsZXRSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENyZWF0ZVdhbGxldFJlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDcmVhdGVXYWxsZXRSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlV2FsbGV0UmVxdWVzdCgKICAgICAgICAgICAgICAgIG5hbWUgPSAnJywKICAgICAgICAgICAgICAgIGN1c3RvbWVyX3JlZl9pZCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ3JlYXRlV2FsbGV0UmVxdWVzdCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDcmVhdGVXYWxsZXRSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgQ3JlYXRlV2FsbGV0UmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_create_webhook_request.py b/test/test_create_webhook_request.py index 9e76b7e9..3ee38245 100644 --- a/test/test_create_webhook_request.py +++ b/test/test_create_webhook_request.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_webhook_request import CreateWebhookRequest - - -class TestCreateWebhookRequest(unittest.TestCase): - """CreateWebhookRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CreateWebhookRequest: - """Test CreateWebhookRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateWebhookRequest` - """ - model = CreateWebhookRequest() - if include_optional: - return CreateWebhookRequest( - url = 'https://example.com/webhook', - description = 'This webhook is used for transactions notifications', - events = ["transaction.created","transaction.status.updated"], - enabled = False - ) - else: - return CreateWebhookRequest( - url = 'https://example.com/webhook', - events = ["transaction.created","transaction.status.updated"], - ) - """ - - def testCreateWebhookRequest(self): - """Test CreateWebhookRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV93ZWJob29rX3JlcXVlc3QgaW1wb3J0IENyZWF0ZVdlYmhvb2tSZXF1ZXN0CgoKY2xhc3MgVGVzdENyZWF0ZVdlYmhvb2tSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNyZWF0ZVdlYmhvb2tSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDcmVhdGVXZWJob29rUmVxdWVzdDoKICAgICAgICAiIiJUZXN0IENyZWF0ZVdlYmhvb2tSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYENyZWF0ZVdlYmhvb2tSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ3JlYXRlV2ViaG9va1JlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDcmVhdGVXZWJob29rUmVxdWVzdCgKICAgICAgICAgICAgICAgIHVybCA9ICdodHRwczovL2V4YW1wbGUuY29tL3dlYmhvb2snLAogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhpcyB3ZWJob29rIGlzIHVzZWQgZm9yIHRyYW5zYWN0aW9ucyBub3RpZmljYXRpb25zJywKICAgICAgICAgICAgICAgIGV2ZW50cyA9IFsidHJhbnNhY3Rpb24uY3JlYXRlZCIsInRyYW5zYWN0aW9uLnN0YXR1cy51cGRhdGVkIl0sCiAgICAgICAgICAgICAgICBlbmFibGVkID0gRmFsc2UKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBDcmVhdGVXZWJob29rUmVxdWVzdCgKICAgICAgICAgICAgICAgIHVybCA9ICdodHRwczovL2V4YW1wbGUuY29tL3dlYmhvb2snLAogICAgICAgICAgICAgICAgZXZlbnRzID0gWyJ0cmFuc2FjdGlvbi5jcmVhdGVkIiwidHJhbnNhY3Rpb24uc3RhdHVzLnVwZGF0ZWQiXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDcmVhdGVXZWJob29rUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IENyZWF0ZVdlYmhvb2tSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_create_workflow_execution_request_params_inner.py b/test/test_create_workflow_execution_request_params_inner.py index 25fa8b3d..e49e4abc 100644 --- a/test/test_create_workflow_execution_request_params_inner.py +++ b/test/test_create_workflow_execution_request_params_inner.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.create_workflow_execution_request_params_inner import ( - CreateWorkflowExecutionRequestParamsInner, -) - - -class TestCreateWorkflowExecutionRequestParamsInner(unittest.TestCase): - """CreateWorkflowExecutionRequestParamsInner unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> CreateWorkflowExecutionRequestParamsInner: - """Test CreateWorkflowExecutionRequestParamsInner - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CreateWorkflowExecutionRequestParamsInner` - """ - model = CreateWorkflowExecutionRequestParamsInner() - if include_optional: - return CreateWorkflowExecutionRequestParamsInner( - config_operation_id = '', - execution_params = fireblocks.models.disbursement_operation_execution_params_execution_params.DisbursementOperationExecutionParams_executionParams( - amount = '', - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ) - ) - else: - return CreateWorkflowExecutionRequestParamsInner( - config_operation_id = '', - ) - """ - - def testCreateWorkflowExecutionRequestParamsInner(self): - """Test CreateWorkflowExecutionRequestParamsInner""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmNyZWF0ZV93b3JrZmxvd19leGVjdXRpb25fcmVxdWVzdF9wYXJhbXNfaW5uZXIgaW1wb3J0ICgKICAgIENyZWF0ZVdvcmtmbG93RXhlY3V0aW9uUmVxdWVzdFBhcmFtc0lubmVyLAopCgoKY2xhc3MgVGVzdENyZWF0ZVdvcmtmbG93RXhlY3V0aW9uUmVxdWVzdFBhcmFtc0lubmVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkNyZWF0ZVdvcmtmbG93RXhlY3V0aW9uUmVxdWVzdFBhcmFtc0lubmVyIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZSgKICAgICAgICBzZWxmLCBpbmNsdWRlX29wdGlvbmFsCiAgICApIC0+IENyZWF0ZVdvcmtmbG93RXhlY3V0aW9uUmVxdWVzdFBhcmFtc0lubmVyOgogICAgICAgICIiIlRlc3QgQ3JlYXRlV29ya2Zsb3dFeGVjdXRpb25SZXF1ZXN0UGFyYW1zSW5uZXIKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgQ3JlYXRlV29ya2Zsb3dFeGVjdXRpb25SZXF1ZXN0UGFyYW1zSW5uZXJgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBDcmVhdGVXb3JrZmxvd0V4ZWN1dGlvblJlcXVlc3RQYXJhbXNJbm5lcigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZVdvcmtmbG93RXhlY3V0aW9uUmVxdWVzdFBhcmFtc0lubmVyKAogICAgICAgICAgICAgICAgY29uZmlnX29wZXJhdGlvbl9pZCA9ICcnLAogICAgICAgICAgICAgICAgZXhlY3V0aW9uX3BhcmFtcyA9IGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtc19leGVjdXRpb25fcGFyYW1zLkRpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc19leGVjdXRpb25QYXJhbXMoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIHBheW1lbnRfYWNjb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFjY291bnQuQWNjb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF90eXBlID0gJ0VYQ0hBTkdFX0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbl9zZXQgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIENyZWF0ZVdvcmtmbG93RXhlY3V0aW9uUmVxdWVzdFBhcmFtc0lubmVyKAogICAgICAgICAgICAgICAgY29uZmlnX29wZXJhdGlvbl9pZCA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdENyZWF0ZVdvcmtmbG93RXhlY3V0aW9uUmVxdWVzdFBhcmFtc0lubmVyKHNlbGYpOgogICAgICAgICIiIlRlc3QgQ3JlYXRlV29ya2Zsb3dFeGVjdXRpb25SZXF1ZXN0UGFyYW1zSW5uZXIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_custom_routing_dest.py b/test/test_custom_routing_dest.py index b53faa50..ef21b564 100644 --- a/test/test_custom_routing_dest.py +++ b/test/test_custom_routing_dest.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.custom_routing_dest import CustomRoutingDest - - -class TestCustomRoutingDest(unittest.TestCase): - """CustomRoutingDest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> CustomRoutingDest: - """Test CustomRoutingDest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `CustomRoutingDest` - """ - model = CustomRoutingDest() - if include_optional: - return CustomRoutingDest( - scheme = 'CUSTOM', - dst_type = 'FIAT_ACCOUNT', - dst_id = '' - ) - else: - return CustomRoutingDest( - scheme = 'CUSTOM', - dst_type = 'FIAT_ACCOUNT', - dst_id = '', - ) - """ - - def testCustomRoutingDest(self): - """Test CustomRoutingDest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmN1c3RvbV9yb3V0aW5nX2Rlc3QgaW1wb3J0IEN1c3RvbVJvdXRpbmdEZXN0CgoKY2xhc3MgVGVzdEN1c3RvbVJvdXRpbmdEZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkN1c3RvbVJvdXRpbmdEZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBDdXN0b21Sb3V0aW5nRGVzdDoKICAgICAgICAiIiJUZXN0IEN1c3RvbVJvdXRpbmdEZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEN1c3RvbVJvdXRpbmdEZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gQ3VzdG9tUm91dGluZ0Rlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBDdXN0b21Sb3V0aW5nRGVzdCgKICAgICAgICAgICAgICAgIHNjaGVtZSA9ICdDVVNUT00nLAogICAgICAgICAgICAgICAgZHN0X3R5cGUgPSAnRklBVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIGRzdF9pZCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gQ3VzdG9tUm91dGluZ0Rlc3QoCiAgICAgICAgICAgICAgICBzY2hlbWUgPSAnQ1VTVE9NJywKICAgICAgICAgICAgICAgIGRzdF90eXBlID0gJ0ZJQVRfQUNDT1VOVCcsCiAgICAgICAgICAgICAgICBkc3RfaWQgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RDdXN0b21Sb3V0aW5nRGVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IEN1c3RvbVJvdXRpbmdEZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_d_app_address_config.py b/test/test_d_app_address_config.py index 4e8f3249..6d10fe8b 100644 --- a/test/test_d_app_address_config.py +++ b/test/test_d_app_address_config.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.d_app_address_config import DAppAddressConfig - - -class TestDAppAddressConfig(unittest.TestCase): - """DAppAddressConfig unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DAppAddressConfig: - """Test DAppAddressConfig - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DAppAddressConfig` - """ - model = DAppAddressConfig() - if include_optional: - return DAppAddressConfig( - global_whitelisted = ["rabby.io","jup.ag"], - tenant_whitelisted = ["uniswap.com","opensea.io"], - urls = ["*"], - operator = 'INCLUDES' - ) - else: - return DAppAddressConfig( - global_whitelisted = ["rabby.io","jup.ag"], - tenant_whitelisted = ["uniswap.com","opensea.io"], - urls = ["*"], - operator = 'INCLUDES', - ) - """ - - def testDAppAddressConfig(self): - """Test DAppAddressConfig""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRfYXBwX2FkZHJlc3NfY29uZmlnIGltcG9ydCBEQXBwQWRkcmVzc0NvbmZpZwoKCmNsYXNzIFRlc3REQXBwQWRkcmVzc0NvbmZpZyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJEQXBwQWRkcmVzc0NvbmZpZyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gREFwcEFkZHJlc3NDb25maWc6CiAgICAgICAgIiIiVGVzdCBEQXBwQWRkcmVzc0NvbmZpZwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBEQXBwQWRkcmVzc0NvbmZpZ2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IERBcHBBZGRyZXNzQ29uZmlnKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gREFwcEFkZHJlc3NDb25maWcoCiAgICAgICAgICAgICAgICBnbG9iYWxfd2hpdGVsaXN0ZWQgPSBbInJhYmJ5LmlvIiwianVwLmFnIl0sCiAgICAgICAgICAgICAgICB0ZW5hbnRfd2hpdGVsaXN0ZWQgPSBbInVuaXN3YXAuY29tIiwib3BlbnNlYS5pbyJdLAogICAgICAgICAgICAgICAgdXJscyA9IFsiKiJdLAogICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAnSU5DTFVERVMnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gREFwcEFkZHJlc3NDb25maWcoCiAgICAgICAgICAgICAgICBnbG9iYWxfd2hpdGVsaXN0ZWQgPSBbInJhYmJ5LmlvIiwianVwLmFnIl0sCiAgICAgICAgICAgICAgICB0ZW5hbnRfd2hpdGVsaXN0ZWQgPSBbInVuaXN3YXAuY29tIiwib3BlbnNlYS5pbyJdLAogICAgICAgICAgICAgICAgdXJscyA9IFsiKiJdLAogICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAnSU5DTFVERVMnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdERBcHBBZGRyZXNzQ29uZmlnKHNlbGYpOgogICAgICAgICIiIlRlc3QgREFwcEFkZHJlc3NDb25maWciIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_decoded_log.py b/test/test_decoded_log.py index c48ab578..ab8ec3bd 100644 --- a/test/test_decoded_log.py +++ b/test/test_decoded_log.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.decoded_log import DecodedLog - - -class TestDecodedLog(unittest.TestCase): - """DecodedLog unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DecodedLog: - """Test DecodedLog - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DecodedLog` - """ - model = DecodedLog() - if include_optional: - return DecodedLog( - address = '0x1234567890123456789012345678901234567890', - block_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef', - block_number = '12345678', - transaction_hash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890', - log_index = '0' - ) - else: - return DecodedLog( - address = '0x1234567890123456789012345678901234567890', - block_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef', - block_number = '12345678', - transaction_hash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890', - log_index = '0', - ) - """ - - def testDecodedLog(self): - """Test DecodedLog""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlY29kZWRfbG9nIGltcG9ydCBEZWNvZGVkTG9nCgoKY2xhc3MgVGVzdERlY29kZWRMb2codW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRGVjb2RlZExvZyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRGVjb2RlZExvZzoKICAgICAgICAiIiJUZXN0IERlY29kZWRMb2cKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRGVjb2RlZExvZ2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IERlY29kZWRMb2coKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBEZWNvZGVkTG9nKAogICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAnLAogICAgICAgICAgICAgICAgYmxvY2tfaGFzaCA9ICcweDEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYnLAogICAgICAgICAgICAgICAgYmxvY2tfbnVtYmVyID0gJzEyMzQ1Njc4JywKICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uX2hhc2ggPSAnMHhhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwJywKICAgICAgICAgICAgICAgIGxvZ19pbmRleCA9ICcwJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIERlY29kZWRMb2coCiAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzB4MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MCcsCiAgICAgICAgICAgICAgICBibG9ja19oYXNoID0gJzB4MTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZicsCiAgICAgICAgICAgICAgICBibG9ja19udW1iZXIgPSAnMTIzNDU2NzgnLAogICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25faGFzaCA9ICcweGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTAnLAogICAgICAgICAgICAgICAgbG9nX2luZGV4ID0gJzAnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdERlY29kZWRMb2coc2VsZik6CiAgICAgICAgIiIiVGVzdCBEZWNvZGVkTG9nIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_default_network_routing_dest.py b/test/test_default_network_routing_dest.py index c9dfb93f..33d322cd 100644 --- a/test/test_default_network_routing_dest.py +++ b/test/test_default_network_routing_dest.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.default_network_routing_dest import DefaultNetworkRoutingDest - - -class TestDefaultNetworkRoutingDest(unittest.TestCase): - """DefaultNetworkRoutingDest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DefaultNetworkRoutingDest: - """Test DefaultNetworkRoutingDest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DefaultNetworkRoutingDest` - """ - model = DefaultNetworkRoutingDest() - if include_optional: - return DefaultNetworkRoutingDest( - scheme = 'DEFAULT' - ) - else: - return DefaultNetworkRoutingDest( - scheme = 'DEFAULT', - ) - """ - - def testDefaultNetworkRoutingDest(self): - """Test DefaultNetworkRoutingDest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlZmF1bHRfbmV0d29ya19yb3V0aW5nX2Rlc3QgaW1wb3J0IERlZmF1bHROZXR3b3JrUm91dGluZ0Rlc3QKCgpjbGFzcyBUZXN0RGVmYXVsdE5ldHdvcmtSb3V0aW5nRGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJEZWZhdWx0TmV0d29ya1JvdXRpbmdEZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBEZWZhdWx0TmV0d29ya1JvdXRpbmdEZXN0OgogICAgICAgICIiIlRlc3QgRGVmYXVsdE5ldHdvcmtSb3V0aW5nRGVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBEZWZhdWx0TmV0d29ya1JvdXRpbmdEZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRGVmYXVsdE5ldHdvcmtSb3V0aW5nRGVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIERlZmF1bHROZXR3b3JrUm91dGluZ0Rlc3QoCiAgICAgICAgICAgICAgICBzY2hlbWUgPSAnREVGQVVMVCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBEZWZhdWx0TmV0d29ya1JvdXRpbmdEZXN0KAogICAgICAgICAgICAgICAgc2NoZW1lID0gJ0RFRkFVTFQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdERlZmF1bHROZXR3b3JrUm91dGluZ0Rlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBEZWZhdWx0TmV0d29ya1JvdXRpbmdEZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_delegation.py b/test/test_delegation.py index 70b36c95..98db5e8a 100644 --- a/test/test_delegation.py +++ b/test/test_delegation.py @@ -1,87 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.delegation import Delegation - - -class TestDelegation(unittest.TestCase): - """Delegation unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Delegation: - """Test Delegation - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Delegation` - """ - model = Delegation() - if include_optional: - return Delegation( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850a', - vault_account_id = '2', - validator_name = 'FwR3P......tT59f', - provider_name = 'Kiln', - chain_descriptor = 'SOL', - amount = '0.05', - rewards_amount = '0.000856038', - date_created = '2023-07-13T15:55:34.256Z', - date_updated = '2023-07-13T15:55:34.256Z', - status = 'active', - related_transactions = [{"txId":"b70601f4-d7b1-4795-a8ee-b09cdb4r850d","completed":true},{"txId":"c80601f4-d7b1-4795-a8ee-b09cdb5b450c","completed":false}], - validator_address = 'FwR3PbjS5iyqzLiLugrBqKSa5EKZ4vK9SKs7eQXtT59f', - provider_id = 'kiln', - available_actions = ["unstake"], - in_progress = True, - in_progress_tx_id = 'c80601f4-d7b1-4795-a8ee-b09cdb5b450c', - blockchain_position_info = None, - related_requests = [{"status":"deactivating","inProgress":false,"amount":"0.05","txId":"c80601f4-d7b1-4795-a8ee-b09cdb5b450c"}] - ) - else: - return Delegation( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850a', - vault_account_id = '2', - validator_name = 'FwR3P......tT59f', - provider_name = 'Kiln', - chain_descriptor = 'SOL', - amount = '0.05', - rewards_amount = '0.000856038', - date_created = '2023-07-13T15:55:34.256Z', - date_updated = '2023-07-13T15:55:34.256Z', - status = 'active', - related_transactions = [{"txId":"b70601f4-d7b1-4795-a8ee-b09cdb4r850d","completed":true},{"txId":"c80601f4-d7b1-4795-a8ee-b09cdb5b450c","completed":false}], - validator_address = 'FwR3PbjS5iyqzLiLugrBqKSa5EKZ4vK9SKs7eQXtT59f', - provider_id = 'kiln', - available_actions = ["unstake"], - in_progress = True, - blockchain_position_info = None, - ) - """ - - def testDelegation(self): - """Test Delegation""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlbGVnYXRpb24gaW1wb3J0IERlbGVnYXRpb24KCgpjbGFzcyBUZXN0RGVsZWdhdGlvbih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJEZWxlZ2F0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBEZWxlZ2F0aW9uOgogICAgICAgICIiIlRlc3QgRGVsZWdhdGlvbgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBEZWxlZ2F0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRGVsZWdhdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIERlbGVnYXRpb24oCiAgICAgICAgICAgICAgICBpZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGEnLAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcyJywKICAgICAgICAgICAgICAgIHZhbGlkYXRvcl9uYW1lID0gJ0Z3UjNQLi4uLi4udFQ1OWYnLAogICAgICAgICAgICAgICAgcHJvdmlkZXJfbmFtZSA9ICdLaWxuJywKICAgICAgICAgICAgICAgIGNoYWluX2Rlc2NyaXB0b3IgPSAnU09MJywKICAgICAgICAgICAgICAgIGFtb3VudCA9ICcwLjA1JywKICAgICAgICAgICAgICAgIHJld2FyZHNfYW1vdW50ID0gJzAuMDAwODU2MDM4JywKICAgICAgICAgICAgICAgIGRhdGVfY3JlYXRlZCA9ICcyMDIzLTA3LTEzVDE1OjU1OjM0LjI1NlonLAogICAgICAgICAgICAgICAgZGF0ZV91cGRhdGVkID0gJzIwMjMtMDctMTNUMTU6NTU6MzQuMjU2WicsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnYWN0aXZlJywKICAgICAgICAgICAgICAgIHJlbGF0ZWRfdHJhbnNhY3Rpb25zID0gW3sidHhJZCI6ImI3MDYwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjRyODUwZCIsImNvbXBsZXRlZCI6dHJ1ZX0seyJ0eElkIjoiYzgwNjAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI0NTBjIiwiY29tcGxldGVkIjpmYWxzZX1dLAogICAgICAgICAgICAgICAgdmFsaWRhdG9yX2FkZHJlc3MgPSAnRndSM1BialM1aXlxekxpTHVnckJxS1NhNUVLWjR2SzlTS3M3ZVFYdFQ1OWYnLAogICAgICAgICAgICAgICAgcHJvdmlkZXJfaWQgPSAna2lsbicsCiAgICAgICAgICAgICAgICBhdmFpbGFibGVfYWN0aW9ucyA9IFsidW5zdGFrZSJdLAogICAgICAgICAgICAgICAgaW5fcHJvZ3Jlc3MgPSBUcnVlLAogICAgICAgICAgICAgICAgaW5fcHJvZ3Jlc3NfdHhfaWQgPSAnYzgwNjAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI0NTBjJywKICAgICAgICAgICAgICAgIGJsb2NrY2hhaW5fcG9zaXRpb25faW5mbyA9IE5vbmUsCiAgICAgICAgICAgICAgICByZWxhdGVkX3JlcXVlc3RzID0gW3sic3RhdHVzIjoiZGVhY3RpdmF0aW5nIiwiaW5Qcm9ncmVzcyI6ZmFsc2UsImFtb3VudCI6IjAuMDUiLCJ0eElkIjoiYzgwNjAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI0NTBjIn1dCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRGVsZWdhdGlvbigKICAgICAgICAgICAgICAgIGlkID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwYScsCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gJzInLAogICAgICAgICAgICAgICAgdmFsaWRhdG9yX25hbWUgPSAnRndSM1AuLi4uLi50VDU5ZicsCiAgICAgICAgICAgICAgICBwcm92aWRlcl9uYW1lID0gJ0tpbG4nLAogICAgICAgICAgICAgICAgY2hhaW5fZGVzY3JpcHRvciA9ICdTT0wnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gJzAuMDUnLAogICAgICAgICAgICAgICAgcmV3YXJkc19hbW91bnQgPSAnMC4wMDA4NTYwMzgnLAogICAgICAgICAgICAgICAgZGF0ZV9jcmVhdGVkID0gJzIwMjMtMDctMTNUMTU6NTU6MzQuMjU2WicsCiAgICAgICAgICAgICAgICBkYXRlX3VwZGF0ZWQgPSAnMjAyMy0wNy0xM1QxNTo1NTozNC4yNTZaJywKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdhY3RpdmUnLAogICAgICAgICAgICAgICAgcmVsYXRlZF90cmFuc2FjdGlvbnMgPSBbeyJ0eElkIjoiYjcwNjAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNHI4NTBkIiwiY29tcGxldGVkIjp0cnVlfSx7InR4SWQiOiJjODA2MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1YjQ1MGMiLCJjb21wbGV0ZWQiOmZhbHNlfV0sCiAgICAgICAgICAgICAgICB2YWxpZGF0b3JfYWRkcmVzcyA9ICdGd1IzUGJqUzVpeXF6TGlMdWdyQnFLU2E1RUtaNHZLOVNLczdlUVh0VDU5ZicsCiAgICAgICAgICAgICAgICBwcm92aWRlcl9pZCA9ICdraWxuJywKICAgICAgICAgICAgICAgIGF2YWlsYWJsZV9hY3Rpb25zID0gWyJ1bnN0YWtlIl0sCiAgICAgICAgICAgICAgICBpbl9wcm9ncmVzcyA9IFRydWUsCiAgICAgICAgICAgICAgICBibG9ja2NoYWluX3Bvc2l0aW9uX2luZm8gPSBOb25lLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdERlbGVnYXRpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBEZWxlZ2F0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_delegation_blockchain_position_info.py b/test/test_delegation_blockchain_position_info.py index 2390c94c..1f414351 100644 --- a/test/test_delegation_blockchain_position_info.py +++ b/test/test_delegation_blockchain_position_info.py @@ -1,65 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.delegation_blockchain_position_info import ( - DelegationBlockchainPositionInfo, -) - - -class TestDelegationBlockchainPositionInfo(unittest.TestCase): - """DelegationBlockchainPositionInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DelegationBlockchainPositionInfo: - """Test DelegationBlockchainPositionInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DelegationBlockchainPositionInfo` - """ - model = DelegationBlockchainPositionInfo() - if include_optional: - return DelegationBlockchainPositionInfo( - stake_account_address = '3Ru67FyzMTcdENmmRL4Eve4dtPd6AdpuypR21q5EQCdq', - stake_account_derivation_change_value = 7, - is_compounding_validator = True, - total_withdrawable_amount = '1.5', - total_inactive_amount = '2.0' - ) - else: - return DelegationBlockchainPositionInfo( - stake_account_address = '3Ru67FyzMTcdENmmRL4Eve4dtPd6AdpuypR21q5EQCdq', - stake_account_derivation_change_value = 7, - is_compounding_validator = True, - total_withdrawable_amount = '1.5', - total_inactive_amount = '2.0', - ) - """ - - def testDelegationBlockchainPositionInfo(self): - """Test DelegationBlockchainPositionInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlbGVnYXRpb25fYmxvY2tjaGFpbl9wb3NpdGlvbl9pbmZvIGltcG9ydCAoCiAgICBEZWxlZ2F0aW9uQmxvY2tjaGFpblBvc2l0aW9uSW5mbywKKQoKCmNsYXNzIFRlc3REZWxlZ2F0aW9uQmxvY2tjaGFpblBvc2l0aW9uSW5mbyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJEZWxlZ2F0aW9uQmxvY2tjaGFpblBvc2l0aW9uSW5mbyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRGVsZWdhdGlvbkJsb2NrY2hhaW5Qb3NpdGlvbkluZm86CiAgICAgICAgIiIiVGVzdCBEZWxlZ2F0aW9uQmxvY2tjaGFpblBvc2l0aW9uSW5mbwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBEZWxlZ2F0aW9uQmxvY2tjaGFpblBvc2l0aW9uSW5mb2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IERlbGVnYXRpb25CbG9ja2NoYWluUG9zaXRpb25JbmZvKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRGVsZWdhdGlvbkJsb2NrY2hhaW5Qb3NpdGlvbkluZm8oCiAgICAgICAgICAgICAgICBzdGFrZV9hY2NvdW50X2FkZHJlc3MgPSAnM1J1NjdGeXpNVGNkRU5tbVJMNEV2ZTRkdFBkNkFkcHV5cFIyMXE1RVFDZHEnLAogICAgICAgICAgICAgICAgc3Rha2VfYWNjb3VudF9kZXJpdmF0aW9uX2NoYW5nZV92YWx1ZSA9IDcsCiAgICAgICAgICAgICAgICBpc19jb21wb3VuZGluZ192YWxpZGF0b3IgPSBUcnVlLAogICAgICAgICAgICAgICAgdG90YWxfd2l0aGRyYXdhYmxlX2Ftb3VudCA9ICcxLjUnLAogICAgICAgICAgICAgICAgdG90YWxfaW5hY3RpdmVfYW1vdW50ID0gJzIuMCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBEZWxlZ2F0aW9uQmxvY2tjaGFpblBvc2l0aW9uSW5mbygKICAgICAgICAgICAgICAgIHN0YWtlX2FjY291bnRfYWRkcmVzcyA9ICczUnU2N0Z5ek1UY2RFTm1tUkw0RXZlNGR0UGQ2QWRwdXlwUjIxcTVFUUNkcScsCiAgICAgICAgICAgICAgICBzdGFrZV9hY2NvdW50X2Rlcml2YXRpb25fY2hhbmdlX3ZhbHVlID0gNywKICAgICAgICAgICAgICAgIGlzX2NvbXBvdW5kaW5nX3ZhbGlkYXRvciA9IFRydWUsCiAgICAgICAgICAgICAgICB0b3RhbF93aXRoZHJhd2FibGVfYW1vdW50ID0gJzEuNScsCiAgICAgICAgICAgICAgICB0b3RhbF9pbmFjdGl2ZV9hbW91bnQgPSAnMi4wJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3REZWxlZ2F0aW9uQmxvY2tjaGFpblBvc2l0aW9uSW5mbyhzZWxmKToKICAgICAgICAiIiJUZXN0IERlbGVnYXRpb25CbG9ja2NoYWluUG9zaXRpb25JbmZvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_delegation_summary.py b/test/test_delegation_summary.py index 7feb3fec..14185f85 100644 --- a/test/test_delegation_summary.py +++ b/test/test_delegation_summary.py @@ -1,93 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.delegation_summary import DelegationSummary - - -class TestDelegationSummary(unittest.TestCase): - """DelegationSummary unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DelegationSummary: - """Test DelegationSummary - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DelegationSummary` - """ - model = DelegationSummary() - if include_optional: - return DelegationSummary( - active = [ - fireblocks.models.amount_and_chain_descriptor.AmountAndChainDescriptor( - chain_descriptor = 'ETH', - amount = '32.007149606', ) - ], - inactive = [ - fireblocks.models.amount_and_chain_descriptor.AmountAndChainDescriptor( - chain_descriptor = 'ETH', - amount = '32.007149606', ) - ], - rewards_amount = [ - fireblocks.models.amount_and_chain_descriptor.AmountAndChainDescriptor( - chain_descriptor = 'ETH', - amount = '32.007149606', ) - ], - total_staked = [ - fireblocks.models.amount_and_chain_descriptor.AmountAndChainDescriptor( - chain_descriptor = 'ETH', - amount = '32.007149606', ) - ] - ) - else: - return DelegationSummary( - active = [ - fireblocks.models.amount_and_chain_descriptor.AmountAndChainDescriptor( - chain_descriptor = 'ETH', - amount = '32.007149606', ) - ], - inactive = [ - fireblocks.models.amount_and_chain_descriptor.AmountAndChainDescriptor( - chain_descriptor = 'ETH', - amount = '32.007149606', ) - ], - rewards_amount = [ - fireblocks.models.amount_and_chain_descriptor.AmountAndChainDescriptor( - chain_descriptor = 'ETH', - amount = '32.007149606', ) - ], - total_staked = [ - fireblocks.models.amount_and_chain_descriptor.AmountAndChainDescriptor( - chain_descriptor = 'ETH', - amount = '32.007149606', ) - ], - ) - """ - - def testDelegationSummary(self): - """Test DelegationSummary""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlbGVnYXRpb25fc3VtbWFyeSBpbXBvcnQgRGVsZWdhdGlvblN1bW1hcnkKCgpjbGFzcyBUZXN0RGVsZWdhdGlvblN1bW1hcnkodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRGVsZWdhdGlvblN1bW1hcnkgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IERlbGVnYXRpb25TdW1tYXJ5OgogICAgICAgICIiIlRlc3QgRGVsZWdhdGlvblN1bW1hcnkKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRGVsZWdhdGlvblN1bW1hcnlgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBEZWxlZ2F0aW9uU3VtbWFyeSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIERlbGVnYXRpb25TdW1tYXJ5KAogICAgICAgICAgICAgICAgYWN0aXZlID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9hbmRfY2hhaW5fZGVzY3JpcHRvci5BbW91bnRBbmRDaGFpbkRlc2NyaXB0b3IoCiAgICAgICAgICAgICAgICAgICAgICAgIGNoYWluX2Rlc2NyaXB0b3IgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICczMi4wMDcxNDk2MDYnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGluYWN0aXZlID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9hbmRfY2hhaW5fZGVzY3JpcHRvci5BbW91bnRBbmRDaGFpbkRlc2NyaXB0b3IoCiAgICAgICAgICAgICAgICAgICAgICAgIGNoYWluX2Rlc2NyaXB0b3IgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICczMi4wMDcxNDk2MDYnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHJld2FyZHNfYW1vdW50ID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9hbmRfY2hhaW5fZGVzY3JpcHRvci5BbW91bnRBbmRDaGFpbkRlc2NyaXB0b3IoCiAgICAgICAgICAgICAgICAgICAgICAgIGNoYWluX2Rlc2NyaXB0b3IgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICczMi4wMDcxNDk2MDYnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHRvdGFsX3N0YWtlZCA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfYW5kX2NoYWluX2Rlc2NyaXB0b3IuQW1vdW50QW5kQ2hhaW5EZXNjcmlwdG9yKAogICAgICAgICAgICAgICAgICAgICAgICBjaGFpbl9kZXNjcmlwdG9yID0gJ0VUSCcsIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnMzIuMDA3MTQ5NjA2JywgKQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBEZWxlZ2F0aW9uU3VtbWFyeSgKICAgICAgICAgICAgICAgIGFjdGl2ZSA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfYW5kX2NoYWluX2Rlc2NyaXB0b3IuQW1vdW50QW5kQ2hhaW5EZXNjcmlwdG9yKAogICAgICAgICAgICAgICAgICAgICAgICBjaGFpbl9kZXNjcmlwdG9yID0gJ0VUSCcsIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnMzIuMDA3MTQ5NjA2JywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBpbmFjdGl2ZSA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfYW5kX2NoYWluX2Rlc2NyaXB0b3IuQW1vdW50QW5kQ2hhaW5EZXNjcmlwdG9yKAogICAgICAgICAgICAgICAgICAgICAgICBjaGFpbl9kZXNjcmlwdG9yID0gJ0VUSCcsIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnMzIuMDA3MTQ5NjA2JywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICByZXdhcmRzX2Ftb3VudCA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfYW5kX2NoYWluX2Rlc2NyaXB0b3IuQW1vdW50QW5kQ2hhaW5EZXNjcmlwdG9yKAogICAgICAgICAgICAgICAgICAgICAgICBjaGFpbl9kZXNjcmlwdG9yID0gJ0VUSCcsIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnMzIuMDA3MTQ5NjA2JywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICB0b3RhbF9zdGFrZWQgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X2FuZF9jaGFpbl9kZXNjcmlwdG9yLkFtb3VudEFuZENoYWluRGVzY3JpcHRvcigKICAgICAgICAgICAgICAgICAgICAgICAgY2hhaW5fZGVzY3JpcHRvciA9ICdFVEgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJzMyLjAwNzE0OTYwNicsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdERlbGVnYXRpb25TdW1tYXJ5KHNlbGYpOgogICAgICAgICIiIlRlc3QgRGVsZWdhdGlvblN1bW1hcnkiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_delete_network_connection_response.py b/test/test_delete_network_connection_response.py index 530ad0b0..4bf9ec12 100644 --- a/test/test_delete_network_connection_response.py +++ b/test/test_delete_network_connection_response.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.delete_network_connection_response import ( - DeleteNetworkConnectionResponse, -) - - -class TestDeleteNetworkConnectionResponse(unittest.TestCase): - """DeleteNetworkConnectionResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DeleteNetworkConnectionResponse: - """Test DeleteNetworkConnectionResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DeleteNetworkConnectionResponse` - """ - model = DeleteNetworkConnectionResponse() - if include_optional: - return DeleteNetworkConnectionResponse( - success = True - ) - else: - return DeleteNetworkConnectionResponse( - success = True, - ) - """ - - def testDeleteNetworkConnectionResponse(self): - """Test DeleteNetworkConnectionResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlbGV0ZV9uZXR3b3JrX2Nvbm5lY3Rpb25fcmVzcG9uc2UgaW1wb3J0ICgKICAgIERlbGV0ZU5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0RGVsZXRlTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJEZWxldGVOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBEZWxldGVOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgRGVsZXRlTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBEZWxldGVOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRGVsZXRlTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIERlbGV0ZU5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBzdWNjZXNzID0gVHJ1ZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIERlbGV0ZU5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBzdWNjZXNzID0gVHJ1ZSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3REZWxldGVOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgRGVsZXRlTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_delete_network_id_response.py b/test/test_delete_network_id_response.py index f60ea75f..8809b11f 100644 --- a/test/test_delete_network_id_response.py +++ b/test/test_delete_network_id_response.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.delete_network_id_response import DeleteNetworkIdResponse - - -class TestDeleteNetworkIdResponse(unittest.TestCase): - """DeleteNetworkIdResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DeleteNetworkIdResponse: - """Test DeleteNetworkIdResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DeleteNetworkIdResponse` - """ - model = DeleteNetworkIdResponse() - if include_optional: - return DeleteNetworkIdResponse( - success = True - ) - else: - return DeleteNetworkIdResponse( - success = True, - ) - """ - - def testDeleteNetworkIdResponse(self): - """Test DeleteNetworkIdResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlbGV0ZV9uZXR3b3JrX2lkX3Jlc3BvbnNlIGltcG9ydCBEZWxldGVOZXR3b3JrSWRSZXNwb25zZQoKCmNsYXNzIFRlc3REZWxldGVOZXR3b3JrSWRSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJEZWxldGVOZXR3b3JrSWRSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRGVsZXRlTmV0d29ya0lkUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBEZWxldGVOZXR3b3JrSWRSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBEZWxldGVOZXR3b3JrSWRSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IERlbGV0ZU5ldHdvcmtJZFJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRGVsZXRlTmV0d29ya0lkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBzdWNjZXNzID0gVHJ1ZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIERlbGV0ZU5ldHdvcmtJZFJlc3BvbnNlKAogICAgICAgICAgICAgICAgc3VjY2VzcyA9IFRydWUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RGVsZXRlTmV0d29ya0lkUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBEZWxldGVOZXR3b3JrSWRSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_deploy_layer_zero_adapters_request.py b/test/test_deploy_layer_zero_adapters_request.py index adfd8936..602a8866 100644 --- a/test/test_deploy_layer_zero_adapters_request.py +++ b/test/test_deploy_layer_zero_adapters_request.py @@ -1,76 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.deploy_layer_zero_adapters_request import ( - DeployLayerZeroAdaptersRequest, -) - - -class TestDeployLayerZeroAdaptersRequest(unittest.TestCase): - """DeployLayerZeroAdaptersRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DeployLayerZeroAdaptersRequest: - """Test DeployLayerZeroAdaptersRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DeployLayerZeroAdaptersRequest` - """ - model = DeployLayerZeroAdaptersRequest() - if include_optional: - return DeployLayerZeroAdaptersRequest( - vault_account_id = '0', - create_params = [ - fireblocks.models.layer_zero_adapter_create_params.LayerZeroAdapterCreateParams( - token_link_id = '123-432-1234-1234-123456789012', - delegate_address = '0xABCDEF123456789abcdef1234567890abcdef12345678', - default_admin_address = '0xABC123456789abcdef1234567890abcdef12345678', - pauser_address = '0xDEFABC123456789abcdef1234567890abcdef12345678', ) - ], - display_name = 'LayerZero Adapter', - use_gasless = False, - fee_level = 'MEDIUM', - fee = '2000', - salt = '123456789' - ) - else: - return DeployLayerZeroAdaptersRequest( - vault_account_id = '0', - create_params = [ - fireblocks.models.layer_zero_adapter_create_params.LayerZeroAdapterCreateParams( - token_link_id = '123-432-1234-1234-123456789012', - delegate_address = '0xABCDEF123456789abcdef1234567890abcdef12345678', - default_admin_address = '0xABC123456789abcdef1234567890abcdef12345678', - pauser_address = '0xDEFABC123456789abcdef1234567890abcdef12345678', ) - ], - ) - """ - - def testDeployLayerZeroAdaptersRequest(self): - """Test DeployLayerZeroAdaptersRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlcGxveV9sYXllcl96ZXJvX2FkYXB0ZXJzX3JlcXVlc3QgaW1wb3J0ICgKICAgIERlcGxveUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3REZXBsb3lMYXllclplcm9BZGFwdGVyc1JlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRGVwbG95TGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBEZXBsb3lMYXllclplcm9BZGFwdGVyc1JlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBEZXBsb3lMYXllclplcm9BZGFwdGVyc1JlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRGVwbG95TGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRGVwbG95TGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRGVwbG95TGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0KAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcwJywKICAgICAgICAgICAgICAgIGNyZWF0ZV9wYXJhbXMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGF5ZXJfemVyb19hZGFwdGVyX2NyZWF0ZV9wYXJhbXMuTGF5ZXJaZXJvQWRhcHRlckNyZWF0ZVBhcmFtcygKICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5fbGlua19pZCA9ICcxMjMtNDMyLTEyMzQtMTIzNC0xMjM0NTY3ODkwMTInLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVsZWdhdGVfYWRkcmVzcyA9ICcweEFCQ0RFRjEyMzQ1Njc4OWFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3OCcsIAogICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0X2FkbWluX2FkZHJlc3MgPSAnMHhBQkMxMjM0NTY3ODlhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2NzgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcGF1c2VyX2FkZHJlc3MgPSAnMHhERUZBQkMxMjM0NTY3ODlhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2NzgnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGRpc3BsYXlfbmFtZSA9ICdMYXllclplcm8gQWRhcHRlcicsCiAgICAgICAgICAgICAgICB1c2VfZ2FzbGVzcyA9IEZhbHNlLAogICAgICAgICAgICAgICAgZmVlX2xldmVsID0gJ01FRElVTScsCiAgICAgICAgICAgICAgICBmZWUgPSAnMjAwMCcsCiAgICAgICAgICAgICAgICBzYWx0ID0gJzEyMzQ1Njc4OScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBEZXBsb3lMYXllclplcm9BZGFwdGVyc1JlcXVlc3QoCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gJzAnLAogICAgICAgICAgICAgICAgY3JlYXRlX3BhcmFtcyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5sYXllcl96ZXJvX2FkYXB0ZXJfY3JlYXRlX3BhcmFtcy5MYXllclplcm9BZGFwdGVyQ3JlYXRlUGFyYW1zKAogICAgICAgICAgICAgICAgICAgICAgICB0b2tlbl9saW5rX2lkID0gJzEyMy00MzItMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMicsIAogICAgICAgICAgICAgICAgICAgICAgICBkZWxlZ2F0ZV9hZGRyZXNzID0gJzB4QUJDREVGMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRfYWRtaW5fYWRkcmVzcyA9ICcweEFCQzEyMzQ1Njc4OWFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3OCcsIAogICAgICAgICAgICAgICAgICAgICAgICBwYXVzZXJfYWRkcmVzcyA9ICcweERFRkFCQzEyMzQ1Njc4OWFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3OCcsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdERlcGxveUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IERlcGxveUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_deployable_address_response.py b/test/test_deployable_address_response.py index e5b4b8c4..6f525b7f 100644 --- a/test/test_deployable_address_response.py +++ b/test/test_deployable_address_response.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.deployable_address_response import DeployableAddressResponse - - -class TestDeployableAddressResponse(unittest.TestCase): - """DeployableAddressResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DeployableAddressResponse: - """Test DeployableAddressResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DeployableAddressResponse` - """ - model = DeployableAddressResponse() - if include_optional: - return DeployableAddressResponse( - address = '' - ) - else: - return DeployableAddressResponse( - address = '', - ) - """ - - def testDeployableAddressResponse(self): - """Test DeployableAddressResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlcGxveWFibGVfYWRkcmVzc19yZXNwb25zZSBpbXBvcnQgRGVwbG95YWJsZUFkZHJlc3NSZXNwb25zZQoKCmNsYXNzIFRlc3REZXBsb3lhYmxlQWRkcmVzc1Jlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkRlcGxveWFibGVBZGRyZXNzUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IERlcGxveWFibGVBZGRyZXNzUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBEZXBsb3lhYmxlQWRkcmVzc1Jlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYERlcGxveWFibGVBZGRyZXNzUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBEZXBsb3lhYmxlQWRkcmVzc1Jlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRGVwbG95YWJsZUFkZHJlc3NSZXNwb25zZSgKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIERlcGxveWFibGVBZGRyZXNzUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBhZGRyZXNzID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RGVwbG95YWJsZUFkZHJlc3NSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IERlcGxveWFibGVBZGRyZXNzUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_deployed_contract_not_found_error.py b/test/test_deployed_contract_not_found_error.py index 96692ce4..8761eded 100644 --- a/test/test_deployed_contract_not_found_error.py +++ b/test/test_deployed_contract_not_found_error.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.deployed_contract_not_found_error import ( - DeployedContractNotFoundError, -) - - -class TestDeployedContractNotFoundError(unittest.TestCase): - """DeployedContractNotFoundError unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DeployedContractNotFoundError: - """Test DeployedContractNotFoundError - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DeployedContractNotFoundError` - """ - model = DeployedContractNotFoundError() - if include_optional: - return DeployedContractNotFoundError( - message = 'Deployed contract not found', - code = 404 - ) - else: - return DeployedContractNotFoundError( - message = 'Deployed contract not found', - code = 404, - ) - """ - - def testDeployedContractNotFoundError(self): - """Test DeployedContractNotFoundError""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlcGxveWVkX2NvbnRyYWN0X25vdF9mb3VuZF9lcnJvciBpbXBvcnQgKAogICAgRGVwbG95ZWRDb250cmFjdE5vdEZvdW5kRXJyb3IsCikKCgpjbGFzcyBUZXN0RGVwbG95ZWRDb250cmFjdE5vdEZvdW5kRXJyb3IodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRGVwbG95ZWRDb250cmFjdE5vdEZvdW5kRXJyb3IgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IERlcGxveWVkQ29udHJhY3ROb3RGb3VuZEVycm9yOgogICAgICAgICIiIlRlc3QgRGVwbG95ZWRDb250cmFjdE5vdEZvdW5kRXJyb3IKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRGVwbG95ZWRDb250cmFjdE5vdEZvdW5kRXJyb3JgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBEZXBsb3llZENvbnRyYWN0Tm90Rm91bmRFcnJvcigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIERlcGxveWVkQ29udHJhY3ROb3RGb3VuZEVycm9yKAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdEZXBsb3llZCBjb250cmFjdCBub3QgZm91bmQnLAogICAgICAgICAgICAgICAgY29kZSA9IDQwNAogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIERlcGxveWVkQ29udHJhY3ROb3RGb3VuZEVycm9yKAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdEZXBsb3llZCBjb250cmFjdCBub3QgZm91bmQnLAogICAgICAgICAgICAgICAgY29kZSA9IDQwNCwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3REZXBsb3llZENvbnRyYWN0Tm90Rm91bmRFcnJvcihzZWxmKToKICAgICAgICAiIiJUZXN0IERlcGxveWVkQ29udHJhY3ROb3RGb3VuZEVycm9yIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_deployed_contract_response_dto.py b/test/test_deployed_contract_response_dto.py index 28ef337a..62ee5e1a 100644 --- a/test/test_deployed_contract_response_dto.py +++ b/test/test_deployed_contract_response_dto.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.deployed_contract_response_dto import DeployedContractResponseDto - - -class TestDeployedContractResponseDto(unittest.TestCase): - """DeployedContractResponseDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DeployedContractResponseDto: - """Test DeployedContractResponseDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DeployedContractResponseDto` - """ - model = DeployedContractResponseDto() - if include_optional: - return DeployedContractResponseDto( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66', - contract_template_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - vault_account_id = '0', - blockchain_id = '', - base_asset_id = 'ETH_TEST5', - gasless_config = fireblocks.models.gassless_standard_configurations.GasslessStandardConfigurations( - gasless_standard_configurations = { - 'key' : fireblocks.models.gassless_standard_configurations_gasless_standard_configurations_value.GasslessStandardConfigurations_gaslessStandardConfigurations_value( - last_on_chain_check = '2024-09-09T04:17:46.918Z', - forwarder_addresses = [ - '0x2E7B54631e18E9eEcc2eb5219249cc8388586f66' - ], ) - }, ), - multichain_deployment_metadata = fireblocks.models.multichain_deployment_metadata.MultichainDeploymentMetadata( - id = '', - address = '0x742d35Cc6634C0532925a3b844Bc454e4438f44e', - template_id = '0e4f5a3b-924e-7bb9-8e5b-c748270feb38', - deployment_salt = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef', - init_params = [ - fireblocks.models.parameter_with_value.ParameterWithValue( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], - value = 'true', - function_value = null, ) - ], - encoded_init_params = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef', ), - solana_config = fireblocks.models.solana_config.SolanaConfig( - extensions = ["metadataPointer","transferHook"], - type = 'TOKEN2022', ) - ) - else: - return DeployedContractResponseDto( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66', - contract_template_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - blockchain_id = '', - ) - """ - - def testDeployedContractResponseDto(self): - """Test DeployedContractResponseDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlcGxveWVkX2NvbnRyYWN0X3Jlc3BvbnNlX2R0byBpbXBvcnQgRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvCgoKY2xhc3MgVGVzdERlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJEZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IERlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0bzoKICAgICAgICAiIiJUZXN0IERlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBEZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBEZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBEZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8oCiAgICAgICAgICAgICAgICBpZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGQnLAogICAgICAgICAgICAgICAgY29udHJhY3RfYWRkcmVzcyA9ICcweEMyYzRlMURiNDFGMGJCOTc5OTZEMGVEMDU0MkQyMTcwZDE0NkZCNjYnLAogICAgICAgICAgICAgICAgY29udHJhY3RfdGVtcGxhdGVfaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywKICAgICAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQgPSAnMCcsCiAgICAgICAgICAgICAgICBibG9ja2NoYWluX2lkID0gJycsCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0X2lkID0gJ0VUSF9URVNUNScsCiAgICAgICAgICAgICAgICBnYXNsZXNzX2NvbmZpZyA9IGZpcmVibG9ja3MubW9kZWxzLmdhc3NsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zLkdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9ucygKICAgICAgICAgICAgICAgICAgICBnYXNsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zID0gewogICAgICAgICAgICAgICAgICAgICAgICAna2V5JyA6IGZpcmVibG9ja3MubW9kZWxzLmdhc3NsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zX2dhc2xlc3Nfc3RhbmRhcmRfY29uZmlndXJhdGlvbnNfdmFsdWUuR2Fzc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zX2dhc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zX3ZhbHVlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9vbl9jaGFpbl9jaGVjayA9ICcyMDI0LTA5LTA5VDA0OjE3OjQ2LjkxOFonLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcndhcmRlcl9hZGRyZXNzZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzB4MkU3QjU0NjMxZTE4RTllRWNjMmViNTIxOTI0OWNjODM4ODU4NmY2NicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApCiAgICAgICAgICAgICAgICAgICAgICAgIH0sICksCiAgICAgICAgICAgICAgICBtdWx0aWNoYWluX2RlcGxveW1lbnRfbWV0YWRhdGEgPSBmaXJlYmxvY2tzLm1vZGVscy5tdWx0aWNoYWluX2RlcGxveW1lbnRfbWV0YWRhdGEuTXVsdGljaGFpbkRlcGxveW1lbnRNZXRhZGF0YSgKICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzB4NzQyZDM1Q2M2NjM0QzA1MzI5MjVhM2I4NDRCYzQ1NGU0NDM4ZjQ0ZScsIAogICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlX2lkID0gJzBlNGY1YTNiLTkyNGUtN2JiOS04ZTViLWM3NDgyNzBmZWIzOCcsIAogICAgICAgICAgICAgICAgICAgIGRlcGxveW1lbnRfc2FsdCA9ICcweDEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYnLCAKICAgICAgICAgICAgICAgICAgICBpbml0X3BhcmFtcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyX3dpdGhfdmFsdWUuUGFyYW1ldGVyV2l0aFZhbHVlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdfbmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyLlBhcmFtZXRlcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdfbmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGUgbmFtZSBvZiB0aGUgdG9rZW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxfdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdzdHJpbmcnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9ICd0cnVlJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbl92YWx1ZSA9IG51bGwsICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgZW5jb2RlZF9pbml0X3BhcmFtcyA9ICcweDEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYnLCApLAogICAgICAgICAgICAgICAgc29sYW5hX2NvbmZpZyA9IGZpcmVibG9ja3MubW9kZWxzLnNvbGFuYV9jb25maWcuU29sYW5hQ29uZmlnKAogICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnMgPSBbIm1ldGFkYXRhUG9pbnRlciIsInRyYW5zZmVySG9vayJdLCAKICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1RPS0VOMjAyMicsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBEZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8oCiAgICAgICAgICAgICAgICBpZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGQnLAogICAgICAgICAgICAgICAgY29udHJhY3RfYWRkcmVzcyA9ICcweEMyYzRlMURiNDFGMGJCOTc5OTZEMGVEMDU0MkQyMTcwZDE0NkZCNjYnLAogICAgICAgICAgICAgICAgY29udHJhY3RfdGVtcGxhdGVfaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywKICAgICAgICAgICAgICAgIGJsb2NrY2hhaW5faWQgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3REZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBEZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_deployed_contracts_api.py b/test/test_deployed_contracts_api.py index 984fbf80..40bba55a 100644 --- a/test/test_deployed_contracts_api.py +++ b/test/test_deployed_contracts_api.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.deployed_contracts_api import DeployedContractsApi - - -class TestDeployedContractsApi(unittest.TestCase): - """DeployedContractsApi unit test stubs""" - - def setUp(self) -> None: - self.api = DeployedContractsApi() - - def tearDown(self) -> None: - pass - - def test_add_contract_abi(self) -> None: - """Test case for add_contract_abi - - Save contract ABI - """ - pass - - def test_fetch_contract_abi(self) -> None: - """Test case for fetch_contract_abi - - Fetch the contract ABI - """ - pass - - def test_get_deployed_contract_by_address(self) -> None: - """Test case for get_deployed_contract_by_address - - Return deployed contract data - """ - pass - - def test_get_deployed_contract_by_id(self) -> None: - """Test case for get_deployed_contract_by_id - - Return deployed contract data by id - """ - pass - - def test_get_deployed_contracts(self) -> None: - """Test case for get_deployed_contracts - - List deployed contracts data - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLmRlcGxveWVkX2NvbnRyYWN0c19hcGkgaW1wb3J0IERlcGxveWVkQ29udHJhY3RzQXBpCgoKY2xhc3MgVGVzdERlcGxveWVkQ29udHJhY3RzQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkRlcGxveWVkQ29udHJhY3RzQXBpIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKSAtPiBOb25lOgogICAgICAgIHNlbGYuYXBpID0gRGVwbG95ZWRDb250cmFjdHNBcGkoKQoKICAgIGRlZiB0ZWFyRG93bihzZWxmKSAtPiBOb25lOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9hZGRfY29udHJhY3RfYWJpKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBhZGRfY29udHJhY3RfYWJpCgogICAgICAgIFNhdmUgY29udHJhY3QgQUJJCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2ZldGNoX2NvbnRyYWN0X2FiaShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZmV0Y2hfY29udHJhY3RfYWJpCgogICAgICAgIEZldGNoIHRoZSBjb250cmFjdCBBQkkKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2RlcGxveWVkX2NvbnRyYWN0X2J5X2FkZHJlc3Moc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9kZXBsb3llZF9jb250cmFjdF9ieV9hZGRyZXNzCgogICAgICAgIFJldHVybiBkZXBsb3llZCBjb250cmFjdCBkYXRhCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9kZXBsb3llZF9jb250cmFjdF9ieV9pZChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2RlcGxveWVkX2NvbnRyYWN0X2J5X2lkCgogICAgICAgIFJldHVybiBkZXBsb3llZCBjb250cmFjdCBkYXRhIGJ5IGlkCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9kZXBsb3llZF9jb250cmFjdHMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9kZXBsb3llZF9jb250cmFjdHMKCiAgICAgICAgTGlzdCBkZXBsb3llZCBjb250cmFjdHMgZGF0YQogICAgICAgICIiIgogICAgICAgIHBhc3MKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_deployed_contracts_paginated_response.py b/test/test_deployed_contracts_paginated_response.py index ccd67239..83f2604d 100644 --- a/test/test_deployed_contracts_paginated_response.py +++ b/test/test_deployed_contracts_paginated_response.py @@ -1,70 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.deployed_contracts_paginated_response import ( - DeployedContractsPaginatedResponse, -) - - -class TestDeployedContractsPaginatedResponse(unittest.TestCase): - """DeployedContractsPaginatedResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DeployedContractsPaginatedResponse: - """Test DeployedContractsPaginatedResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DeployedContractsPaginatedResponse` - """ - model = DeployedContractsPaginatedResponse() - if include_optional: - return DeployedContractsPaginatedResponse( - data = [ - fireblocks.models.lean_deployed_contract_response_dto.LeanDeployedContractResponseDto( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66', - contract_template_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - blockchain_id = '', ) - ], - next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9' - ) - else: - return DeployedContractsPaginatedResponse( - data = [ - fireblocks.models.lean_deployed_contract_response_dto.LeanDeployedContractResponseDto( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66', - contract_template_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - blockchain_id = '', ) - ], - ) - """ - - def testDeployedContractsPaginatedResponse(self): - """Test DeployedContractsPaginatedResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlcGxveWVkX2NvbnRyYWN0c19wYWdpbmF0ZWRfcmVzcG9uc2UgaW1wb3J0ICgKICAgIERlcGxveWVkQ29udHJhY3RzUGFnaW5hdGVkUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0RGVwbG95ZWRDb250cmFjdHNQYWdpbmF0ZWRSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJEZXBsb3llZENvbnRyYWN0c1BhZ2luYXRlZFJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBEZXBsb3llZENvbnRyYWN0c1BhZ2luYXRlZFJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgRGVwbG95ZWRDb250cmFjdHNQYWdpbmF0ZWRSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBEZXBsb3llZENvbnRyYWN0c1BhZ2luYXRlZFJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRGVwbG95ZWRDb250cmFjdHNQYWdpbmF0ZWRSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIERlcGxveWVkQ29udHJhY3RzUGFnaW5hdGVkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmxlYW5fZGVwbG95ZWRfY29udHJhY3RfcmVzcG9uc2VfZHRvLkxlYW5EZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8oCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCcsIAogICAgICAgICAgICAgICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzID0gJzB4QzJjNGUxRGI0MUYwYkI5Nzk5NkQwZUQwNTQyRDIxNzBkMTQ2RkI2NicsIAogICAgICAgICAgICAgICAgICAgICAgICBjb250cmFjdF90ZW1wbGF0ZV9pZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tjaGFpbl9pZCA9ICcnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIG5leHQgPSAnZUowZVhBaU9pSktWMVFpTENKaGJHY09pSklVekkxTmlKOScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBEZXBsb3llZENvbnRyYWN0c1BhZ2luYXRlZFJlc3BvbnNlKAogICAgICAgICAgICAgICAgZGF0YSA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5sZWFuX2RlcGxveWVkX2NvbnRyYWN0X3Jlc3BvbnNlX2R0by5MZWFuRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY29udHJhY3RfYWRkcmVzcyA9ICcweEMyYzRlMURiNDFGMGJCOTc5OTZEMGVEMDU0MkQyMTcwZDE0NkZCNjYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY29udHJhY3RfdGVtcGxhdGVfaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrY2hhaW5faWQgPSAnJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RGVwbG95ZWRDb250cmFjdHNQYWdpbmF0ZWRSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IERlcGxveWVkQ29udHJhY3RzUGFnaW5hdGVkUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_deposit_funds_from_linked_dda_response.py b/test/test_deposit_funds_from_linked_dda_response.py index 5f835c13..a5d15387 100644 --- a/test/test_deposit_funds_from_linked_dda_response.py +++ b/test/test_deposit_funds_from_linked_dda_response.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.deposit_funds_from_linked_dda_response import ( - DepositFundsFromLinkedDDAResponse, -) - - -class TestDepositFundsFromLinkedDDAResponse(unittest.TestCase): - """DepositFundsFromLinkedDDAResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DepositFundsFromLinkedDDAResponse: - """Test DepositFundsFromLinkedDDAResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DepositFundsFromLinkedDDAResponse` - """ - model = DepositFundsFromLinkedDDAResponse() - if include_optional: - return DepositFundsFromLinkedDDAResponse( - success = True - ) - else: - return DepositFundsFromLinkedDDAResponse( - success = True, - ) - """ - - def testDepositFundsFromLinkedDDAResponse(self): - """Test DepositFundsFromLinkedDDAResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlcG9zaXRfZnVuZHNfZnJvbV9saW5rZWRfZGRhX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBEZXBvc2l0RnVuZHNGcm9tTGlua2VkRERBUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0RGVwb3NpdEZ1bmRzRnJvbUxpbmtlZEREQVJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkRlcG9zaXRGdW5kc0Zyb21MaW5rZWREREFSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRGVwb3NpdEZ1bmRzRnJvbUxpbmtlZEREQVJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgRGVwb3NpdEZ1bmRzRnJvbUxpbmtlZEREQVJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYERlcG9zaXRGdW5kc0Zyb21MaW5rZWREREFSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IERlcG9zaXRGdW5kc0Zyb21MaW5rZWREREFSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIERlcG9zaXRGdW5kc0Zyb21MaW5rZWREREFSZXNwb25zZSgKICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRGVwb3NpdEZ1bmRzRnJvbUxpbmtlZEREQVJlc3BvbnNlKAogICAgICAgICAgICAgICAgc3VjY2VzcyA9IFRydWUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RGVwb3NpdEZ1bmRzRnJvbUxpbmtlZEREQVJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgRGVwb3NpdEZ1bmRzRnJvbUxpbmtlZEREQVJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_derivation_path_config.py b/test/test_derivation_path_config.py index d048930f..4eec44fe 100644 --- a/test/test_derivation_path_config.py +++ b/test/test_derivation_path_config.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.derivation_path_config import DerivationPathConfig - - -class TestDerivationPathConfig(unittest.TestCase): - """DerivationPathConfig unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DerivationPathConfig: - """Test DerivationPathConfig - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DerivationPathConfig` - """ - model = DerivationPathConfig() - if include_optional: - return DerivationPathConfig( - path = [44,0,0,0,0], - partial = False - ) - else: - return DerivationPathConfig( - path = [44,0,0,0,0], - ) - """ - - def testDerivationPathConfig(self): - """Test DerivationPathConfig""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlcml2YXRpb25fcGF0aF9jb25maWcgaW1wb3J0IERlcml2YXRpb25QYXRoQ29uZmlnCgoKY2xhc3MgVGVzdERlcml2YXRpb25QYXRoQ29uZmlnKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkRlcml2YXRpb25QYXRoQ29uZmlnIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBEZXJpdmF0aW9uUGF0aENvbmZpZzoKICAgICAgICAiIiJUZXN0IERlcml2YXRpb25QYXRoQ29uZmlnCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYERlcml2YXRpb25QYXRoQ29uZmlnYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRGVyaXZhdGlvblBhdGhDb25maWcoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBEZXJpdmF0aW9uUGF0aENvbmZpZygKICAgICAgICAgICAgICAgIHBhdGggPSBbNDQsMCwwLDAsMF0sCiAgICAgICAgICAgICAgICBwYXJ0aWFsID0gRmFsc2UKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBEZXJpdmF0aW9uUGF0aENvbmZpZygKICAgICAgICAgICAgICAgIHBhdGggPSBbNDQsMCwwLDAsMF0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RGVyaXZhdGlvblBhdGhDb25maWcoc2VsZik6CiAgICAgICAgIiIiVGVzdCBEZXJpdmF0aW9uUGF0aENvbmZpZyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_designated_signers_config.py b/test/test_designated_signers_config.py index bef4306f..3b43807f 100644 --- a/test/test_designated_signers_config.py +++ b/test/test_designated_signers_config.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.designated_signers_config import DesignatedSignersConfig - - -class TestDesignatedSignersConfig(unittest.TestCase): - """DesignatedSignersConfig unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DesignatedSignersConfig: - """Test DesignatedSignersConfig - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DesignatedSignersConfig` - """ - model = DesignatedSignersConfig() - if include_optional: - return DesignatedSignersConfig( - type = 'SINGLE', - users = ["user1","user2"], - groups = ["group1","group2"] - ) - else: - return DesignatedSignersConfig( - type = 'SINGLE', - ) - """ - - def testDesignatedSignersConfig(self): - """Test DesignatedSignersConfig""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlc2lnbmF0ZWRfc2lnbmVyc19jb25maWcgaW1wb3J0IERlc2lnbmF0ZWRTaWduZXJzQ29uZmlnCgoKY2xhc3MgVGVzdERlc2lnbmF0ZWRTaWduZXJzQ29uZmlnKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkRlc2lnbmF0ZWRTaWduZXJzQ29uZmlnIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBEZXNpZ25hdGVkU2lnbmVyc0NvbmZpZzoKICAgICAgICAiIiJUZXN0IERlc2lnbmF0ZWRTaWduZXJzQ29uZmlnCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYERlc2lnbmF0ZWRTaWduZXJzQ29uZmlnYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRGVzaWduYXRlZFNpZ25lcnNDb25maWcoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBEZXNpZ25hdGVkU2lnbmVyc0NvbmZpZygKICAgICAgICAgICAgICAgIHR5cGUgPSAnU0lOR0xFJywKICAgICAgICAgICAgICAgIHVzZXJzID0gWyJ1c2VyMSIsInVzZXIyIl0sCiAgICAgICAgICAgICAgICBncm91cHMgPSBbImdyb3VwMSIsImdyb3VwMiJdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRGVzaWduYXRlZFNpZ25lcnNDb25maWcoCiAgICAgICAgICAgICAgICB0eXBlID0gJ1NJTkdMRScsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RGVzaWduYXRlZFNpZ25lcnNDb25maWcoc2VsZik6CiAgICAgICAgIiIiVGVzdCBEZXNpZ25hdGVkU2lnbmVyc0NvbmZpZyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_destination.py b/test/test_destination.py index c9064efd..c312c4df 100644 --- a/test/test_destination.py +++ b/test/test_destination.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.destination import Destination - - -class TestDestination(unittest.TestCase): - """Destination unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Destination: - """Test Destination - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Destination` - """ - model = Destination() - if include_optional: - return Destination( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', - one_time_address = '', - tag = '' - ) - else: - return Destination( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', - one_time_address = '', - ) - """ - - def testDestination(self): - """Test Destination""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlc3RpbmF0aW9uIGltcG9ydCBEZXN0aW5hdGlvbgoKCmNsYXNzIFRlc3REZXN0aW5hdGlvbih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJEZXN0aW5hdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRGVzdGluYXRpb246CiAgICAgICAgIiIiVGVzdCBEZXN0aW5hdGlvbgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBEZXN0aW5hdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IERlc3RpbmF0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRGVzdGluYXRpb24oCiAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsCiAgICAgICAgICAgICAgICBhY2NvdW50X3R5cGUgPSAnRVhDSEFOR0VfQUNDT1VOVCcsCiAgICAgICAgICAgICAgICBvbmVfdGltZV9hZGRyZXNzID0gJycsCiAgICAgICAgICAgICAgICB0YWcgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIERlc3RpbmF0aW9uKAogICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLAogICAgICAgICAgICAgICAgYWNjb3VudF90eXBlID0gJ0VYQ0hBTkdFX0FDQ09VTlQnLAogICAgICAgICAgICAgICAgb25lX3RpbWVfYWRkcmVzcyA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdERlc3RpbmF0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgRGVzdGluYXRpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_destination_config.py b/test/test_destination_config.py index 812b4ede..c409ad87 100644 --- a/test/test_destination_config.py +++ b/test/test_destination_config.py @@ -1,79 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.destination_config import DestinationConfig - - -class TestDestinationConfig(unittest.TestCase): - """DestinationConfig unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DestinationConfig: - """Test DestinationConfig - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DestinationConfig` - """ - model = DestinationConfig() - if include_optional: - return DestinationConfig( - type = [ - 'VAULT' - ], - sub_type = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - sub_type = 'INTERNAL', - address = '0x123...', ) - ], - ids = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - sub_type = 'INTERNAL', - address = '0x123...', ) - ], - tags = [ - fireblocks.models.policy_tag.PolicyTag( - id = 'tag_001', ) - ], - operator = 'INCLUDES', - match_from = 'ACCOUNT', - address_type = 'WHITELISTED' - ) - else: - return DestinationConfig( - operator = 'INCLUDES', - address_type = 'WHITELISTED', - ) - """ - - def testDestinationConfig(self): - """Test DestinationConfig""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlc3RpbmF0aW9uX2NvbmZpZyBpbXBvcnQgRGVzdGluYXRpb25Db25maWcKCgpjbGFzcyBUZXN0RGVzdGluYXRpb25Db25maWcodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRGVzdGluYXRpb25Db25maWcgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IERlc3RpbmF0aW9uQ29uZmlnOgogICAgICAgICIiIlRlc3QgRGVzdGluYXRpb25Db25maWcKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRGVzdGluYXRpb25Db25maWdgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBEZXN0aW5hdGlvbkNvbmZpZygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIERlc3RpbmF0aW9uQ29uZmlnKAogICAgICAgICAgICAgICAgdHlwZSA9IFsKICAgICAgICAgICAgICAgICAgICAnVkFVTFQnCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHN1Yl90eXBlID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaWRlbnRpZmllci5BY2NvdW50SWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVCcsIAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdhY2NvdW50MTIzJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl90eXBlID0gJ0lOVEVSTkFMJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHgxMjMuLi4nLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGlkcyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2lkZW50aWZpZXIuQWNjb3VudElkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnYWNjb3VudDEyMycsIAogICAgICAgICAgICAgICAgICAgICAgICBzdWJfdHlwZSA9ICdJTlRFUk5BTCcsIAogICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzB4MTIzLi4uJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICB0YWdzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV90YWcuUG9saWN5VGFnKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICd0YWdfMDAxJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICdJTkNMVURFUycsCiAgICAgICAgICAgICAgICBtYXRjaF9mcm9tID0gJ0FDQ09VTlQnLAogICAgICAgICAgICAgICAgYWRkcmVzc190eXBlID0gJ1dISVRFTElTVEVEJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIERlc3RpbmF0aW9uQ29uZmlnKAogICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAnSU5DTFVERVMnLAogICAgICAgICAgICAgICAgYWRkcmVzc190eXBlID0gJ1dISVRFTElTVEVEJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3REZXN0aW5hdGlvbkNvbmZpZyhzZWxmKToKICAgICAgICAiIiJUZXN0IERlc3RpbmF0aW9uQ29uZmlnIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_destination_transfer_peer_path.py b/test/test_destination_transfer_peer_path.py index 7c470200..064e9a92 100644 --- a/test/test_destination_transfer_peer_path.py +++ b/test/test_destination_transfer_peer_path.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.destination_transfer_peer_path import DestinationTransferPeerPath - - -class TestDestinationTransferPeerPath(unittest.TestCase): - """DestinationTransferPeerPath unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DestinationTransferPeerPath: - """Test DestinationTransferPeerPath - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DestinationTransferPeerPath` - """ - model = DestinationTransferPeerPath() - if include_optional: - return DestinationTransferPeerPath( - type = 'VAULT_ACCOUNT', - sub_type = 'BINANCE', - id = '', - name = '', - wallet_id = '', - one_time_address = fireblocks.models.one_time_address.OneTimeAddress( - address = '', - tag = '', ), - is_collateral = True - ) - else: - return DestinationTransferPeerPath( - type = 'VAULT_ACCOUNT', - ) - """ - - def testDestinationTransferPeerPath(self): - """Test DestinationTransferPeerPath""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlc3RpbmF0aW9uX3RyYW5zZmVyX3BlZXJfcGF0aCBpbXBvcnQgRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoCgoKY2xhc3MgVGVzdERlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGggdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IERlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aDoKICAgICAgICAiIiJUZXN0IERlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGhgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgoCiAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLAogICAgICAgICAgICAgICAgc3ViX3R5cGUgPSAnQklOQU5DRScsCiAgICAgICAgICAgICAgICBpZCA9ICcnLAogICAgICAgICAgICAgICAgbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgd2FsbGV0X2lkID0gJycsCiAgICAgICAgICAgICAgICBvbmVfdGltZV9hZGRyZXNzID0gZmlyZWJsb2Nrcy5tb2RlbHMub25lX3RpbWVfYWRkcmVzcy5PbmVUaW1lQWRkcmVzcygKICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJycsIAogICAgICAgICAgICAgICAgICAgIHRhZyA9ICcnLCApLAogICAgICAgICAgICAgICAgaXNfY29sbGF0ZXJhbCA9IFRydWUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgoCiAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdERlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aChzZWxmKToKICAgICAgICAiIiJUZXN0IERlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_destination_transfer_peer_path_response.py b/test/test_destination_transfer_peer_path_response.py index 8ccf7c79..f7a652e2 100644 --- a/test/test_destination_transfer_peer_path_response.py +++ b/test/test_destination_transfer_peer_path_response.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.destination_transfer_peer_path_response import ( - DestinationTransferPeerPathResponse, -) - - -class TestDestinationTransferPeerPathResponse(unittest.TestCase): - """DestinationTransferPeerPathResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DestinationTransferPeerPathResponse: - """Test DestinationTransferPeerPathResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DestinationTransferPeerPathResponse` - """ - model = DestinationTransferPeerPathResponse() - if include_optional: - return DestinationTransferPeerPathResponse( - type = 'VAULT_ACCOUNT', - sub_type = '', - id = '', - name = '', - wallet_id = '', - trading_account = '' - ) - else: - return DestinationTransferPeerPathResponse( - type = 'VAULT_ACCOUNT', - ) - """ - - def testDestinationTransferPeerPathResponse(self): - """Test DestinationTransferPeerPathResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRlc3RpbmF0aW9uX3RyYW5zZmVyX3BlZXJfcGF0aF9yZXNwb25zZSBpbXBvcnQgKAogICAgRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0RGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IERlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGhSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIERlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlKAogICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIHN1Yl90eXBlID0gJycsCiAgICAgICAgICAgICAgICBpZCA9ICcnLAogICAgICAgICAgICAgICAgbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgd2FsbGV0X2lkID0gJycsCiAgICAgICAgICAgICAgICB0cmFkaW5nX2FjY291bnQgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIERlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlKAogICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3REZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGhSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IERlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_direct_access.py b/test/test_direct_access.py index c2c6c79f..570ec8ff 100644 --- a/test/test_direct_access.py +++ b/test/test_direct_access.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.direct_access import DirectAccess - - -class TestDirectAccess(unittest.TestCase): - """DirectAccess unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DirectAccess: - """Test DirectAccess - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DirectAccess` - """ - model = DirectAccess() - if include_optional: - return DirectAccess( - type = 'PROVIDER', - provider_id = '' - ) - else: - return DirectAccess( - type = 'PROVIDER', - provider_id = '', - ) - """ - - def testDirectAccess(self): - """Test DirectAccess""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpcmVjdF9hY2Nlc3MgaW1wb3J0IERpcmVjdEFjY2VzcwoKCmNsYXNzIFRlc3REaXJlY3RBY2Nlc3ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRGlyZWN0QWNjZXNzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBEaXJlY3RBY2Nlc3M6CiAgICAgICAgIiIiVGVzdCBEaXJlY3RBY2Nlc3MKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRGlyZWN0QWNjZXNzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRGlyZWN0QWNjZXNzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRGlyZWN0QWNjZXNzKAogICAgICAgICAgICAgICAgdHlwZSA9ICdQUk9WSURFUicsCiAgICAgICAgICAgICAgICBwcm92aWRlcl9pZCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRGlyZWN0QWNjZXNzKAogICAgICAgICAgICAgICAgdHlwZSA9ICdQUk9WSURFUicsCiAgICAgICAgICAgICAgICBwcm92aWRlcl9pZCA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdERpcmVjdEFjY2VzcyhzZWxmKToKICAgICAgICAiIiJUZXN0IERpcmVjdEFjY2VzcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_direct_access_provider.py b/test/test_direct_access_provider.py index 411864f1..b9f962e6 100644 --- a/test/test_direct_access_provider.py +++ b/test/test_direct_access_provider.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.direct_access_provider import DirectAccessProvider - - -class TestDirectAccessProvider(unittest.TestCase): - """DirectAccessProvider unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DirectAccessProvider: - """Test DirectAccessProvider - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DirectAccessProvider` - """ - model = DirectAccessProvider() - if include_optional: - return DirectAccessProvider( - id = '', - name = '', - logo = '', - account_based = True, - approved = True, - has_terms_of_service = True, - terms_of_service_url = '' - ) - else: - return DirectAccessProvider( - id = '', - name = '', - account_based = True, - has_terms_of_service = True, - ) - """ - - def testDirectAccessProvider(self): - """Test DirectAccessProvider""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpcmVjdF9hY2Nlc3NfcHJvdmlkZXIgaW1wb3J0IERpcmVjdEFjY2Vzc1Byb3ZpZGVyCgoKY2xhc3MgVGVzdERpcmVjdEFjY2Vzc1Byb3ZpZGVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkRpcmVjdEFjY2Vzc1Byb3ZpZGVyIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBEaXJlY3RBY2Nlc3NQcm92aWRlcjoKICAgICAgICAiIiJUZXN0IERpcmVjdEFjY2Vzc1Byb3ZpZGVyCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYERpcmVjdEFjY2Vzc1Byb3ZpZGVyYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRGlyZWN0QWNjZXNzUHJvdmlkZXIoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBEaXJlY3RBY2Nlc3NQcm92aWRlcigKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICBuYW1lID0gJycsCiAgICAgICAgICAgICAgICBsb2dvID0gJycsCiAgICAgICAgICAgICAgICBhY2NvdW50X2Jhc2VkID0gVHJ1ZSwKICAgICAgICAgICAgICAgIG1hbmlmZXN0ID0geyJvcmRlciI6eyJzdXBwb3J0ZWQiOnRydWUsImV4ZWN1dGlvblR5cGVzIjpbIk1BUktFVCIsIlFVT1RFIl0sInNldHRsZW1lbnRUeXBlcyI6WyJEVlAiXX0sInF1b3RlIjp7InN1cHBvcnRlZCI6dHJ1ZSwic2V0dGxlbWVudFR5cGVzIjpbIkRWUCJdfSwicmF0ZSI6eyJzdXBwb3J0ZWQiOnRydWV9fSwKICAgICAgICAgICAgICAgIGFwcHJvdmVkID0gVHJ1ZSwKICAgICAgICAgICAgICAgIGhhc190ZXJtc19vZl9zZXJ2aWNlID0gVHJ1ZSwKICAgICAgICAgICAgICAgIHRlcm1zX29mX3NlcnZpY2VfdXJsID0gJycsCiAgICAgICAgICAgICAgICBwcml2YWN5X3BvbGljeV91cmwgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIERpcmVjdEFjY2Vzc1Byb3ZpZGVyKAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnJywKICAgICAgICAgICAgICAgIGFjY291bnRfYmFzZWQgPSBUcnVlLAogICAgICAgICAgICAgICAgbWFuaWZlc3QgPSB7Im9yZGVyIjp7InN1cHBvcnRlZCI6dHJ1ZSwiZXhlY3V0aW9uVHlwZXMiOlsiTUFSS0VUIiwiUVVPVEUiXSwic2V0dGxlbWVudFR5cGVzIjpbIkRWUCJdfSwicXVvdGUiOnsic3VwcG9ydGVkIjp0cnVlLCJzZXR0bGVtZW50VHlwZXMiOlsiRFZQIl19LCJyYXRlIjp7InN1cHBvcnRlZCI6dHJ1ZX19LAogICAgICAgICAgICAgICAgaGFzX3Rlcm1zX29mX3NlcnZpY2UgPSBUcnVlLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdERpcmVjdEFjY2Vzc1Byb3ZpZGVyKHNlbGYpOgogICAgICAgICIiIlRlc3QgRGlyZWN0QWNjZXNzUHJvdmlkZXIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_direct_access_provider_info.py b/test/test_direct_access_provider_info.py new file mode 100644 index 00000000..2b4222bc --- /dev/null +++ b/test/test_direct_access_provider_info.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpcmVjdF9hY2Nlc3NfcHJvdmlkZXJfaW5mbyBpbXBvcnQgRGlyZWN0QWNjZXNzUHJvdmlkZXJJbmZvCgoKY2xhc3MgVGVzdERpcmVjdEFjY2Vzc1Byb3ZpZGVySW5mbyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJEaXJlY3RBY2Nlc3NQcm92aWRlckluZm8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IERpcmVjdEFjY2Vzc1Byb3ZpZGVySW5mbzoKICAgICAgICAiIiJUZXN0IERpcmVjdEFjY2Vzc1Byb3ZpZGVySW5mbwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBEaXJlY3RBY2Nlc3NQcm92aWRlckluZm9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBEaXJlY3RBY2Nlc3NQcm92aWRlckluZm8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBEaXJlY3RBY2Nlc3NQcm92aWRlckluZm8oCiAgICAgICAgICAgICAgICBhcHByb3ZlZCA9IFRydWUsCiAgICAgICAgICAgICAgICBoYXNfdGVybXNfb2Zfc2VydmljZSA9IFRydWUsCiAgICAgICAgICAgICAgICB0ZXJtc19vZl9zZXJ2aWNlX3VybCA9ICcnLAogICAgICAgICAgICAgICAgcHJpdmFjeV9wb2xpY3lfdXJsID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBEaXJlY3RBY2Nlc3NQcm92aWRlckluZm8oCiAgICAgICAgICAgICAgICBoYXNfdGVybXNfb2Zfc2VydmljZSA9IFRydWUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RGlyZWN0QWNjZXNzUHJvdmlkZXJJbmZvKHNlbGYpOgogICAgICAgICIiIlRlc3QgRGlyZWN0QWNjZXNzUHJvdmlkZXJJbmZvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_direct_provider_details.py b/test/test_direct_provider_details.py new file mode 100644 index 00000000..69acec56 --- /dev/null +++ b/test/test_direct_provider_details.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpcmVjdF9wcm92aWRlcl9kZXRhaWxzIGltcG9ydCBEaXJlY3RQcm92aWRlckRldGFpbHMKCgpjbGFzcyBUZXN0RGlyZWN0UHJvdmlkZXJEZXRhaWxzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkRpcmVjdFByb3ZpZGVyRGV0YWlscyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRGlyZWN0UHJvdmlkZXJEZXRhaWxzOgogICAgICAgICIiIlRlc3QgRGlyZWN0UHJvdmlkZXJEZXRhaWxzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYERpcmVjdFByb3ZpZGVyRGV0YWlsc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IERpcmVjdFByb3ZpZGVyRGV0YWlscygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIERpcmVjdFByb3ZpZGVyRGV0YWlscygKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICBuYW1lID0gJycsCiAgICAgICAgICAgICAgICBsb2dvID0gJycsCiAgICAgICAgICAgICAgICBhY2NvdW50X2Jhc2VkID0gVHJ1ZSwKICAgICAgICAgICAgICAgIG1hbmlmZXN0ID0geyJvcmRlciI6eyJzdXBwb3J0ZWQiOnRydWUsImV4ZWN1dGlvblR5cGVzIjpbIk1BUktFVCIsIlFVT1RFIl0sInNldHRsZW1lbnRUeXBlcyI6WyJEVlAiXX0sInF1b3RlIjp7InN1cHBvcnRlZCI6dHJ1ZSwic2V0dGxlbWVudFR5cGVzIjpbIkRWUCJdfSwicmF0ZSI6eyJzdXBwb3J0ZWQiOnRydWV9fSwKICAgICAgICAgICAgICAgIGFwcHJvdmVkID0gVHJ1ZSwKICAgICAgICAgICAgICAgIGhhc190ZXJtc19vZl9zZXJ2aWNlID0gVHJ1ZSwKICAgICAgICAgICAgICAgIHRlcm1zX29mX3NlcnZpY2VfdXJsID0gJycsCiAgICAgICAgICAgICAgICBwcml2YWN5X3BvbGljeV91cmwgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIERpcmVjdFByb3ZpZGVyRGV0YWlscygKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICBuYW1lID0gJycsCiAgICAgICAgICAgICAgICBhY2NvdW50X2Jhc2VkID0gVHJ1ZSwKICAgICAgICAgICAgICAgIG1hbmlmZXN0ID0geyJvcmRlciI6eyJzdXBwb3J0ZWQiOnRydWUsImV4ZWN1dGlvblR5cGVzIjpbIk1BUktFVCIsIlFVT1RFIl0sInNldHRsZW1lbnRUeXBlcyI6WyJEVlAiXX0sInF1b3RlIjp7InN1cHBvcnRlZCI6dHJ1ZSwic2V0dGxlbWVudFR5cGVzIjpbIkRWUCJdfSwicmF0ZSI6eyJzdXBwb3J0ZWQiOnRydWV9fSwKICAgICAgICAgICAgICAgIGhhc190ZXJtc19vZl9zZXJ2aWNlID0gVHJ1ZSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3REaXJlY3RQcm92aWRlckRldGFpbHMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBEaXJlY3RQcm92aWRlckRldGFpbHMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_disbursement_amount_instruction.py b/test/test_disbursement_amount_instruction.py index da4c6946..d7fbb27f 100644 --- a/test/test_disbursement_amount_instruction.py +++ b/test/test_disbursement_amount_instruction.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.disbursement_amount_instruction import ( - DisbursementAmountInstruction, -) - - -class TestDisbursementAmountInstruction(unittest.TestCase): - """DisbursementAmountInstruction unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DisbursementAmountInstruction: - """Test DisbursementAmountInstruction - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DisbursementAmountInstruction` - """ - model = DisbursementAmountInstruction() - if include_optional: - return DisbursementAmountInstruction( - payee_account = None, - asset_id = '', - amount = '' - ) - else: - return DisbursementAmountInstruction( - payee_account = None, - asset_id = '', - amount = '', - ) - """ - - def testDisbursementAmountInstruction(self): - """Test DisbursementAmountInstruction""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9hbW91bnRfaW5zdHJ1Y3Rpb24gaW1wb3J0ICgKICAgIERpc2J1cnNlbWVudEFtb3VudEluc3RydWN0aW9uLAopCgoKY2xhc3MgVGVzdERpc2J1cnNlbWVudEFtb3VudEluc3RydWN0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkRpc2J1cnNlbWVudEFtb3VudEluc3RydWN0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBEaXNidXJzZW1lbnRBbW91bnRJbnN0cnVjdGlvbjoKICAgICAgICAiIiJUZXN0IERpc2J1cnNlbWVudEFtb3VudEluc3RydWN0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYERpc2J1cnNlbWVudEFtb3VudEluc3RydWN0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRGlzYnVyc2VtZW50QW1vdW50SW5zdHJ1Y3Rpb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBEaXNidXJzZW1lbnRBbW91bnRJbnN0cnVjdGlvbigKICAgICAgICAgICAgICAgIHBheWVlX2FjY291bnQgPSBOb25lLAogICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRGlzYnVyc2VtZW50QW1vdW50SW5zdHJ1Y3Rpb24oCiAgICAgICAgICAgICAgICBwYXllZV9hY2NvdW50ID0gTm9uZSwKICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsCiAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3REaXNidXJzZW1lbnRBbW91bnRJbnN0cnVjdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IERpc2J1cnNlbWVudEFtb3VudEluc3RydWN0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_disbursement_config_operation.py b/test/test_disbursement_config_operation.py index 19a7fec0..c2bda450 100644 --- a/test/test_disbursement_config_operation.py +++ b/test/test_disbursement_config_operation.py @@ -1,78 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.disbursement_config_operation import DisbursementConfigOperation - - -class TestDisbursementConfigOperation(unittest.TestCase): - """DisbursementConfigOperation unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DisbursementConfigOperation: - """Test DisbursementConfigOperation - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DisbursementConfigOperation` - """ - model = DisbursementConfigOperation() - if include_optional: - return DisbursementConfigOperation( - operation_id = '', - type = 'DISBURSEMENT', - params = fireblocks.models.disbursement_operation_config_params.DisbursementOperationConfigParams( - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ), - status = 'PENDING', - validation_failure = fireblocks.models.disbursement_validation_failure.DisbursementValidationFailure( - reason = 'ACCOUNT_NOT_FOUND', - data = { - 'key' : null - }, ) - ) - else: - return DisbursementConfigOperation( - operation_id = '', - type = 'DISBURSEMENT', - params = fireblocks.models.disbursement_operation_config_params.DisbursementOperationConfigParams( - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ), - status = 'PENDING', - ) - """ - - def testDisbursementConfigOperation(self): - """Test DisbursementConfigOperation""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9jb25maWdfb3BlcmF0aW9uIGltcG9ydCBEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb24KCgpjbGFzcyBUZXN0RGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkRpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uOgogICAgICAgICIiIlRlc3QgRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYERpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IERpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIERpc2J1cnNlbWVudENvbmZpZ09wZXJhdGlvbigKICAgICAgICAgICAgICAgIG9wZXJhdGlvbl9pZCA9ICcnLAogICAgICAgICAgICAgICAgdHlwZSA9ICdESVNCVVJTRU1FTlQnLAogICAgICAgICAgICAgICAgcGFyYW1zID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9jb25maWdfcGFyYW1zLkRpc2J1cnNlbWVudE9wZXJhdGlvbkNvbmZpZ1BhcmFtcygKICAgICAgICAgICAgICAgICAgICBwYXltZW50X2FjY291bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50LkFjY291bnQoCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfdHlwZSA9ICdFWENIQU5HRV9BQ0NPVU5UJywgKSwgCiAgICAgICAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb25fc2V0ID0gWwogICAgICAgICAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgIF0sICksCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnUEVORElORycsCiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uX2ZhaWx1cmUgPSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfdmFsaWRhdGlvbl9mYWlsdXJlLkRpc2J1cnNlbWVudFZhbGlkYXRpb25GYWlsdXJlKAogICAgICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdBQ0NPVU5UX05PVF9GT1VORCcsIAogICAgICAgICAgICAgICAgICAgIGRhdGEgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICdrZXknIDogbnVsbAogICAgICAgICAgICAgICAgICAgICAgICB9LCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRGlzYnVyc2VtZW50Q29uZmlnT3BlcmF0aW9uKAogICAgICAgICAgICAgICAgb3BlcmF0aW9uX2lkID0gJycsCiAgICAgICAgICAgICAgICB0eXBlID0gJ0RJU0JVUlNFTUVOVCcsCiAgICAgICAgICAgICAgICBwYXJhbXMgPSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMuRGlzYnVyc2VtZW50T3BlcmF0aW9uQ29uZmlnUGFyYW1zKAogICAgICAgICAgICAgICAgICAgIHBheW1lbnRfYWNjb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFjY291bnQuQWNjb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF90eXBlID0gJ0VYQ0hBTkdFX0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbl9zZXQgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdQRU5ESU5HJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3REaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBEaXNidXJzZW1lbnRDb25maWdPcGVyYXRpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_disbursement_instruction.py b/test/test_disbursement_instruction.py index 1f089249..ee673320 100644 --- a/test/test_disbursement_instruction.py +++ b/test/test_disbursement_instruction.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.disbursement_instruction import DisbursementInstruction - - -class TestDisbursementInstruction(unittest.TestCase): - """DisbursementInstruction unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DisbursementInstruction: - """Test DisbursementInstruction - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DisbursementInstruction` - """ - model = DisbursementInstruction() - if include_optional: - return DisbursementInstruction( - payee_account = None, - asset_id = '', - amount = '', - percentage = '' - ) - else: - return DisbursementInstruction( - payee_account = None, - asset_id = '', - amount = '', - percentage = '', - ) - """ - - def testDisbursementInstruction(self): - """Test DisbursementInstruction""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9pbnN0cnVjdGlvbiBpbXBvcnQgRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb24KCgpjbGFzcyBUZXN0RGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IERpc2J1cnNlbWVudEluc3RydWN0aW9uOgogICAgICAgICIiIlRlc3QgRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBEaXNidXJzZW1lbnRJbnN0cnVjdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIERpc2J1cnNlbWVudEluc3RydWN0aW9uKAogICAgICAgICAgICAgICAgcGF5ZWVfYWNjb3VudCA9IE5vbmUsCiAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gJycsCiAgICAgICAgICAgICAgICBwZXJjZW50YWdlID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBEaXNidXJzZW1lbnRJbnN0cnVjdGlvbigKICAgICAgICAgICAgICAgIHBheWVlX2FjY291bnQgPSBOb25lLAogICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLAogICAgICAgICAgICAgICAgcGVyY2VudGFnZSA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdERpc2J1cnNlbWVudEluc3RydWN0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_disbursement_instruction_output.py b/test/test_disbursement_instruction_output.py index a8a43317..7843c653 100644 --- a/test/test_disbursement_instruction_output.py +++ b/test/test_disbursement_instruction_output.py @@ -1,69 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.disbursement_instruction_output import ( - DisbursementInstructionOutput, -) - - -class TestDisbursementInstructionOutput(unittest.TestCase): - """DisbursementInstructionOutput unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DisbursementInstructionOutput: - """Test DisbursementInstructionOutput - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DisbursementInstructionOutput` - """ - model = DisbursementInstructionOutput() - if include_optional: - return DisbursementInstructionOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - payee_account = None - ) - else: - return DisbursementInstructionOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - payee_account = None, - ) - """ - - def testDisbursementInstructionOutput(self): - """Test DisbursementInstructionOutput""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9pbnN0cnVjdGlvbl9vdXRwdXQgaW1wb3J0ICgKICAgIERpc2J1cnNlbWVudEluc3RydWN0aW9uT3V0cHV0LAopCgoKY2xhc3MgVGVzdERpc2J1cnNlbWVudEluc3RydWN0aW9uT3V0cHV0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkRpc2J1cnNlbWVudEluc3RydWN0aW9uT3V0cHV0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBEaXNidXJzZW1lbnRJbnN0cnVjdGlvbk91dHB1dDoKICAgICAgICAiIiJUZXN0IERpc2J1cnNlbWVudEluc3RydWN0aW9uT3V0cHV0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYERpc2J1cnNlbWVudEluc3RydWN0aW9uT3V0cHV0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb25PdXRwdXQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBEaXNidXJzZW1lbnRJbnN0cnVjdGlvbk91dHB1dCgKICAgICAgICAgICAgICAgIGFtb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2Ftb3VudC5Bc3NldEFtb3VudCgKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgKSwKICAgICAgICAgICAgICAgIGZlZSA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2Ftb3VudC5Bc3NldEFtb3VudCgKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgKSwKICAgICAgICAgICAgICAgIHBheWVlX2FjY291bnQgPSBOb25lCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb25PdXRwdXQoCiAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksCiAgICAgICAgICAgICAgICBmZWUgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksCiAgICAgICAgICAgICAgICBwYXllZV9hY2NvdW50ID0gTm9uZSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3REaXNidXJzZW1lbnRJbnN0cnVjdGlvbk91dHB1dChzZWxmKToKICAgICAgICAiIiJUZXN0IERpc2J1cnNlbWVudEluc3RydWN0aW9uT3V0cHV0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_disbursement_operation_config_params.py b/test/test_disbursement_operation_config_params.py index eb170352..9d9a7656 100644 --- a/test/test_disbursement_operation_config_params.py +++ b/test/test_disbursement_operation_config_params.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.disbursement_operation_config_params import ( - DisbursementOperationConfigParams, -) - - -class TestDisbursementOperationConfigParams(unittest.TestCase): - """DisbursementOperationConfigParams unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DisbursementOperationConfigParams: - """Test DisbursementOperationConfigParams - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DisbursementOperationConfigParams` - """ - model = DisbursementOperationConfigParams() - if include_optional: - return DisbursementOperationConfigParams( - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ] - ) - else: - return DisbursementOperationConfigParams( - instruction_set = [ - null - ], - ) - """ - - def testDisbursementOperationConfigParams(self): - """Test DisbursementOperationConfigParams""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fY29uZmlnX3BhcmFtcyBpbXBvcnQgKAogICAgRGlzYnVyc2VtZW50T3BlcmF0aW9uQ29uZmlnUGFyYW1zLAopCgoKY2xhc3MgVGVzdERpc2J1cnNlbWVudE9wZXJhdGlvbkNvbmZpZ1BhcmFtcyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJEaXNidXJzZW1lbnRPcGVyYXRpb25Db25maWdQYXJhbXMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IERpc2J1cnNlbWVudE9wZXJhdGlvbkNvbmZpZ1BhcmFtczoKICAgICAgICAiIiJUZXN0IERpc2J1cnNlbWVudE9wZXJhdGlvbkNvbmZpZ1BhcmFtcwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBEaXNidXJzZW1lbnRPcGVyYXRpb25Db25maWdQYXJhbXNgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBEaXNidXJzZW1lbnRPcGVyYXRpb25Db25maWdQYXJhbXMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBEaXNidXJzZW1lbnRPcGVyYXRpb25Db25maWdQYXJhbXMoCiAgICAgICAgICAgICAgICBwYXltZW50X2FjY291bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50LkFjY291bnQoCiAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhY2NvdW50X3R5cGUgPSAnRVhDSEFOR0VfQUNDT1VOVCcsICksCiAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbl9zZXQgPSBbCiAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBEaXNidXJzZW1lbnRPcGVyYXRpb25Db25maWdQYXJhbXMoCiAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbl9zZXQgPSBbCiAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RGlzYnVyc2VtZW50T3BlcmF0aW9uQ29uZmlnUGFyYW1zKHNlbGYpOgogICAgICAgICIiIlRlc3QgRGlzYnVyc2VtZW50T3BlcmF0aW9uQ29uZmlnUGFyYW1zIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_disbursement_operation_execution.py b/test/test_disbursement_operation_execution.py index 2dcdcf0c..03732063 100644 --- a/test/test_disbursement_operation_execution.py +++ b/test/test_disbursement_operation_execution.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.disbursement_operation_execution import ( - DisbursementOperationExecution, -) - - -class TestDisbursementOperationExecution(unittest.TestCase): - """DisbursementOperationExecution unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DisbursementOperationExecution: - """Test DisbursementOperationExecution - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DisbursementOperationExecution` - """ - model = DisbursementOperationExecution() - if include_optional: - return DisbursementOperationExecution( - input = fireblocks.models.disbursement_operation_input.DisbursementOperationInput( - amount = '', - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ), - output = fireblocks.models.disbursement_operation_execution_output.DisbursementOperationExecutionOutput( - instruction_set = [ - fireblocks.models.disbursement_instruction_output.DisbursementInstructionOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - payee_account = null, ) - ], ), - payout_id = '', - started_at = 1.337, - finished_at = 1.337, - failure = fireblocks.models.operation_execution_failure.OperationExecutionFailure( - reason = '', - data = { - 'key' : null - }, ) - ) - else: - return DisbursementOperationExecution( - input = fireblocks.models.disbursement_operation_input.DisbursementOperationInput( - amount = '', - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ), - started_at = 1.337, - ) - """ - - def testDisbursementOperationExecution(self): - """Test DisbursementOperationExecution""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uIGltcG9ydCAoCiAgICBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb24sCikKCgpjbGFzcyBUZXN0RGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkRpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uOgogICAgICAgICIiIlRlc3QgRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbigKICAgICAgICAgICAgICAgIGlucHV0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9pbnB1dC5EaXNidXJzZW1lbnRPcGVyYXRpb25JbnB1dCgKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgcGF5bWVudF9hY2NvdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudC5BY2NvdW50KAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X3R5cGUgPSAnRVhDSEFOR0VfQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgIGluc3RydWN0aW9uX3NldCA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgICAgICBdLCApLAogICAgICAgICAgICAgICAgb3V0cHV0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9leGVjdXRpb25fb3V0cHV0LkRpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCgKICAgICAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbl9zZXQgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9pbnN0cnVjdGlvbl9vdXRwdXQuRGlzYnVyc2VtZW50SW5zdHJ1Y3Rpb25PdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfYW1vdW50LkFzc2V0QW1vdW50KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBheWVlX2FjY291bnQgPSBudWxsLCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sICksCiAgICAgICAgICAgICAgICBwYXlvdXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIHN0YXJ0ZWRfYXQgPSAxLjMzNywKICAgICAgICAgICAgICAgIGZpbmlzaGVkX2F0ID0gMS4zMzcsCiAgICAgICAgICAgICAgICBmYWlsdXJlID0gZmlyZWJsb2Nrcy5tb2RlbHMub3BlcmF0aW9uX2V4ZWN1dGlvbl9mYWlsdXJlLk9wZXJhdGlvbkV4ZWN1dGlvbkZhaWx1cmUoCiAgICAgICAgICAgICAgICAgICAgcmVhc29uID0gJycsIAogICAgICAgICAgICAgICAgICAgIGRhdGEgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICdrZXknIDogbnVsbAogICAgICAgICAgICAgICAgICAgICAgICB9LCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uKAogICAgICAgICAgICAgICAgaW5wdXQgPSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2lucHV0LkRpc2J1cnNlbWVudE9wZXJhdGlvbklucHV0KAogICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBwYXltZW50X2FjY291bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50LkFjY291bnQoCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfdHlwZSA9ICdFWENIQU5HRV9BQ0NPVU5UJywgKSwgCiAgICAgICAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb25fc2V0ID0gWwogICAgICAgICAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgIF0sICksCiAgICAgICAgICAgICAgICBzdGFydGVkX2F0ID0gMS4zMzcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_disbursement_operation_execution_output.py b/test/test_disbursement_operation_execution_output.py index 3fbc8894..10375cd3 100644 --- a/test/test_disbursement_operation_execution_output.py +++ b/test/test_disbursement_operation_execution_output.py @@ -1,75 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.disbursement_operation_execution_output import ( - DisbursementOperationExecutionOutput, -) - - -class TestDisbursementOperationExecutionOutput(unittest.TestCase): - """DisbursementOperationExecutionOutput unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DisbursementOperationExecutionOutput: - """Test DisbursementOperationExecutionOutput - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DisbursementOperationExecutionOutput` - """ - model = DisbursementOperationExecutionOutput() - if include_optional: - return DisbursementOperationExecutionOutput( - instruction_set = [ - fireblocks.models.disbursement_instruction_output.DisbursementInstructionOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - payee_account = null, ) - ] - ) - else: - return DisbursementOperationExecutionOutput( - instruction_set = [ - fireblocks.models.disbursement_instruction_output.DisbursementInstructionOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - payee_account = null, ) - ], - ) - """ - - def testDisbursementOperationExecutionOutput(self): - """Test DisbursementOperationExecutionOutput""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dCBpbXBvcnQgKAogICAgRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0LAopCgoKY2xhc3MgVGVzdERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dDoKICAgICAgICAiIiJUZXN0IERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25PdXRwdXRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQoCiAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbl9zZXQgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X2luc3RydWN0aW9uX291dHB1dC5EaXNidXJzZW1lbnRJbnN0cnVjdGlvbk91dHB1dCgKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfYW1vdW50LkFzc2V0QW1vdW50KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGZlZSA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2Ftb3VudC5Bc3NldEFtb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksIAogICAgICAgICAgICAgICAgICAgICAgICBwYXllZV9hY2NvdW50ID0gbnVsbCwgKQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQoCiAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbl9zZXQgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X2luc3RydWN0aW9uX291dHB1dC5EaXNidXJzZW1lbnRJbnN0cnVjdGlvbk91dHB1dCgKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfYW1vdW50LkFzc2V0QW1vdW50KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGZlZSA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2Ftb3VudC5Bc3NldEFtb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksIAogICAgICAgICAgICAgICAgICAgICAgICBwYXllZV9hY2NvdW50ID0gbnVsbCwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0KHNlbGYpOgogICAgICAgICIiIlRlc3QgRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_disbursement_operation_execution_params.py b/test/test_disbursement_operation_execution_params.py index b6b08bc1..c342f463 100644 --- a/test/test_disbursement_operation_execution_params.py +++ b/test/test_disbursement_operation_execution_params.py @@ -1,65 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.disbursement_operation_execution_params import ( - DisbursementOperationExecutionParams, -) - - -class TestDisbursementOperationExecutionParams(unittest.TestCase): - """DisbursementOperationExecutionParams unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DisbursementOperationExecutionParams: - """Test DisbursementOperationExecutionParams - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DisbursementOperationExecutionParams` - """ - model = DisbursementOperationExecutionParams() - if include_optional: - return DisbursementOperationExecutionParams( - config_operation_id = '', - execution_params = fireblocks.models.disbursement_operation_execution_params_execution_params.DisbursementOperationExecutionParams_executionParams( - amount = '', - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ) - ) - else: - return DisbursementOperationExecutionParams( - config_operation_id = '', - ) - """ - - def testDisbursementOperationExecutionParams(self): - """Test DisbursementOperationExecutionParams""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtcyBpbXBvcnQgKAogICAgRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zLAopCgoKY2xhc3MgVGVzdERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtczoKICAgICAgICAiIiJUZXN0IERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXMoCiAgICAgICAgICAgICAgICBjb25maWdfb3BlcmF0aW9uX2lkID0gJycsCiAgICAgICAgICAgICAgICBleGVjdXRpb25fcGFyYW1zID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9leGVjdXRpb25fcGFyYW1zX2V4ZWN1dGlvbl9wYXJhbXMuRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zX2V4ZWN1dGlvblBhcmFtcygKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgcGF5bWVudF9hY2NvdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudC5BY2NvdW50KAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X3R5cGUgPSAnRVhDSEFOR0VfQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgIGluc3RydWN0aW9uX3NldCA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgICAgICBdLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zKAogICAgICAgICAgICAgICAgY29uZmlnX29wZXJhdGlvbl9pZCA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcyhzZWxmKToKICAgICAgICAiIiJUZXN0IERpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_disbursement_operation_execution_params_execution_params.py b/test/test_disbursement_operation_execution_params_execution_params.py index 95752297..51269808 100644 --- a/test/test_disbursement_operation_execution_params_execution_params.py +++ b/test/test_disbursement_operation_execution_params_execution_params.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.disbursement_operation_execution_params_execution_params import ( - DisbursementOperationExecutionParamsExecutionParams, -) - - -class TestDisbursementOperationExecutionParamsExecutionParams(unittest.TestCase): - """DisbursementOperationExecutionParamsExecutionParams unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> DisbursementOperationExecutionParamsExecutionParams: - """Test DisbursementOperationExecutionParamsExecutionParams - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DisbursementOperationExecutionParamsExecutionParams` - """ - model = DisbursementOperationExecutionParamsExecutionParams() - if include_optional: - return DisbursementOperationExecutionParamsExecutionParams( - amount = '', - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ] - ) - else: - return DisbursementOperationExecutionParamsExecutionParams( - ) - """ - - def testDisbursementOperationExecutionParamsExecutionParams(self): - """Test DisbursementOperationExecutionParamsExecutionParams""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fZXhlY3V0aW9uX3BhcmFtc19leGVjdXRpb25fcGFyYW1zIGltcG9ydCAoCiAgICBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMsCikKCgpjbGFzcyBUZXN0RGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkRpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtcyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2UoCiAgICAgICAgc2VsZiwgaW5jbHVkZV9vcHRpb25hbAogICAgKSAtPiBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXM6CiAgICAgICAgIiIiVGVzdCBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zKAogICAgICAgICAgICAgICAgYW1vdW50ID0gJycsCiAgICAgICAgICAgICAgICBwYXltZW50X2FjY291bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50LkFjY291bnQoCiAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhY2NvdW50X3R5cGUgPSAnRVhDSEFOR0VfQUNDT1VOVCcsICksCiAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbl9zZXQgPSBbCiAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBEaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zKHNlbGYpOgogICAgICAgICIiIlRlc3QgRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_disbursement_operation_input.py b/test/test_disbursement_operation_input.py index 30ae6f2c..e3a77ae1 100644 --- a/test/test_disbursement_operation_input.py +++ b/test/test_disbursement_operation_input.py @@ -1,66 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.disbursement_operation_input import DisbursementOperationInput - - -class TestDisbursementOperationInput(unittest.TestCase): - """DisbursementOperationInput unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DisbursementOperationInput: - """Test DisbursementOperationInput - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DisbursementOperationInput` - """ - model = DisbursementOperationInput() - if include_optional: - return DisbursementOperationInput( - amount = '', - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ] - ) - else: - return DisbursementOperationInput( - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], - ) - """ - - def testDisbursementOperationInput(self): - """Test DisbursementOperationInput""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25faW5wdXQgaW1wb3J0IERpc2J1cnNlbWVudE9wZXJhdGlvbklucHV0CgoKY2xhc3MgVGVzdERpc2J1cnNlbWVudE9wZXJhdGlvbklucHV0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkRpc2J1cnNlbWVudE9wZXJhdGlvbklucHV0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBEaXNidXJzZW1lbnRPcGVyYXRpb25JbnB1dDoKICAgICAgICAiIiJUZXN0IERpc2J1cnNlbWVudE9wZXJhdGlvbklucHV0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYERpc2J1cnNlbWVudE9wZXJhdGlvbklucHV0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRGlzYnVyc2VtZW50T3BlcmF0aW9uSW5wdXQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBEaXNidXJzZW1lbnRPcGVyYXRpb25JbnB1dCgKICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLAogICAgICAgICAgICAgICAgcGF5bWVudF9hY2NvdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudC5BY2NvdW50KAogICAgICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYWNjb3VudF90eXBlID0gJ0VYQ0hBTkdFX0FDQ09VTlQnLCApLAogICAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb25fc2V0ID0gWwogICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRGlzYnVyc2VtZW50T3BlcmF0aW9uSW5wdXQoCiAgICAgICAgICAgICAgICBwYXltZW50X2FjY291bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50LkFjY291bnQoCiAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhY2NvdW50X3R5cGUgPSAnRVhDSEFOR0VfQUNDT1VOVCcsICksCiAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbl9zZXQgPSBbCiAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RGlzYnVyc2VtZW50T3BlcmF0aW9uSW5wdXQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBEaXNidXJzZW1lbnRPcGVyYXRpb25JbnB1dCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_disbursement_operation_preview.py b/test/test_disbursement_operation_preview.py index 41f0106c..fc3955a0 100644 --- a/test/test_disbursement_operation_preview.py +++ b/test/test_disbursement_operation_preview.py @@ -1,80 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.disbursement_operation_preview import ( - DisbursementOperationPreview, -) - - -class TestDisbursementOperationPreview(unittest.TestCase): - """DisbursementOperationPreview unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DisbursementOperationPreview: - """Test DisbursementOperationPreview - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DisbursementOperationPreview` - """ - model = DisbursementOperationPreview() - if include_optional: - return DisbursementOperationPreview( - input = fireblocks.models.disbursement_operation_input.DisbursementOperationInput( - amount = '', - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ), - output = fireblocks.models.disbursement_operation_preview_output.DisbursementOperationPreviewOutput( - instruction_set = [ - null - ], ), - failure = fireblocks.models.operation_execution_failure.OperationExecutionFailure( - reason = '', - data = { - 'key' : null - }, ) - ) - else: - return DisbursementOperationPreview( - input = fireblocks.models.disbursement_operation_input.DisbursementOperationInput( - amount = '', - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ), - ) - """ - - def testDisbursementOperationPreview(self): - """Test DisbursementOperationPreview""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fcHJldmlldyBpbXBvcnQgKAogICAgRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlldywKKQoKCmNsYXNzIFRlc3REaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkRpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXcgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IERpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXc6CiAgICAgICAgIiIiVGVzdCBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYERpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXdgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlldygKICAgICAgICAgICAgICAgIGlucHV0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9pbnB1dC5EaXNidXJzZW1lbnRPcGVyYXRpb25JbnB1dCgKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgcGF5bWVudF9hY2NvdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudC5BY2NvdW50KAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X3R5cGUgPSAnRVhDSEFOR0VfQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgIGluc3RydWN0aW9uX3NldCA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgICAgICBdLCApLAogICAgICAgICAgICAgICAgb3V0cHV0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9wcmV2aWV3X291dHB1dC5EaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0KAogICAgICAgICAgICAgICAgICAgIGluc3RydWN0aW9uX3NldCA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgICAgICBdLCApLAogICAgICAgICAgICAgICAgZmFpbHVyZSA9IGZpcmVibG9ja3MubW9kZWxzLm9wZXJhdGlvbl9leGVjdXRpb25fZmFpbHVyZS5PcGVyYXRpb25FeGVjdXRpb25GYWlsdXJlKAogICAgICAgICAgICAgICAgICAgIHJlYXNvbiA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBkYXRhID0gewogICAgICAgICAgICAgICAgICAgICAgICAna2V5JyA6IG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgfSwgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIERpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXcoCiAgICAgICAgICAgICAgICBpbnB1dCA9IGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25faW5wdXQuRGlzYnVyc2VtZW50T3BlcmF0aW9uSW5wdXQoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIHBheW1lbnRfYWNjb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFjY291bnQuQWNjb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF90eXBlID0gJ0VYQ0hBTkdFX0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbl9zZXQgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3REaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3KHNlbGYpOgogICAgICAgICIiIlRlc3QgRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlldyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_disbursement_operation_preview_output.py b/test/test_disbursement_operation_preview_output.py index a1f7f7da..e62dd678 100644 --- a/test/test_disbursement_operation_preview_output.py +++ b/test/test_disbursement_operation_preview_output.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.disbursement_operation_preview_output import ( - DisbursementOperationPreviewOutput, -) - - -class TestDisbursementOperationPreviewOutput(unittest.TestCase): - """DisbursementOperationPreviewOutput unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DisbursementOperationPreviewOutput: - """Test DisbursementOperationPreviewOutput - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DisbursementOperationPreviewOutput` - """ - model = DisbursementOperationPreviewOutput() - if include_optional: - return DisbursementOperationPreviewOutput( - instruction_set = [ - null - ] - ) - else: - return DisbursementOperationPreviewOutput( - instruction_set = [ - null - ], - ) - """ - - def testDisbursementOperationPreviewOutput(self): - """Test DisbursementOperationPreviewOutput""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fcHJldmlld19vdXRwdXQgaW1wb3J0ICgKICAgIERpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXdPdXRwdXQsCikKCgpjbGFzcyBUZXN0RGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlld091dHB1dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0OgogICAgICAgICIiIlRlc3QgRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlld091dHB1dAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlld091dHB1dCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIERpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXdPdXRwdXQoCiAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbl9zZXQgPSBbCiAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0KAogICAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb25fc2V0ID0gWwogICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdERpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXdPdXRwdXQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_disbursement_operation_preview_output_instruction_set_inner.py b/test/test_disbursement_operation_preview_output_instruction_set_inner.py index 724efc33..8f3e7f2d 100644 --- a/test/test_disbursement_operation_preview_output_instruction_set_inner.py +++ b/test/test_disbursement_operation_preview_output_instruction_set_inner.py @@ -1,73 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.disbursement_operation_preview_output_instruction_set_inner import ( - DisbursementOperationPreviewOutputInstructionSetInner, -) - - -class TestDisbursementOperationPreviewOutputInstructionSetInner(unittest.TestCase): - """DisbursementOperationPreviewOutputInstructionSetInner unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> DisbursementOperationPreviewOutputInstructionSetInner: - """Test DisbursementOperationPreviewOutputInstructionSetInner - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DisbursementOperationPreviewOutputInstructionSetInner` - """ - model = DisbursementOperationPreviewOutputInstructionSetInner() - if include_optional: - return DisbursementOperationPreviewOutputInstructionSetInner( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - payee_account = None, - time_seconds = 1.337 - ) - else: - return DisbursementOperationPreviewOutputInstructionSetInner( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - payee_account = None, - time_seconds = 1.337, - ) - """ - - def testDisbursementOperationPreviewOutputInstructionSetInner(self): - """Test DisbursementOperationPreviewOutputInstructionSetInner""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fcHJldmlld19vdXRwdXRfaW5zdHJ1Y3Rpb25fc2V0X2lubmVyIGltcG9ydCAoCiAgICBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0SW5zdHJ1Y3Rpb25TZXRJbm5lciwKKQoKCmNsYXNzIFRlc3REaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0SW5zdHJ1Y3Rpb25TZXRJbm5lcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0SW5zdHJ1Y3Rpb25TZXRJbm5lciB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2UoCiAgICAgICAgc2VsZiwgaW5jbHVkZV9vcHRpb25hbAogICAgKSAtPiBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0SW5zdHJ1Y3Rpb25TZXRJbm5lcjoKICAgICAgICAiIiJUZXN0IERpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXdPdXRwdXRJbnN0cnVjdGlvblNldElubmVyCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYERpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXdPdXRwdXRJbnN0cnVjdGlvblNldElubmVyYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlld091dHB1dEluc3RydWN0aW9uU2V0SW5uZXIoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0SW5zdHJ1Y3Rpb25TZXRJbm5lcigKICAgICAgICAgICAgICAgIGFtb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2Ftb3VudC5Bc3NldEFtb3VudCgKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgKSwKICAgICAgICAgICAgICAgIGZlZSA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2Ftb3VudC5Bc3NldEFtb3VudCgKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgKSwKICAgICAgICAgICAgICAgIHBheWVlX2FjY291bnQgPSBOb25lLAogICAgICAgICAgICAgICAgdGltZV9zZWNvbmRzID0gMS4zMzcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0SW5zdHJ1Y3Rpb25TZXRJbm5lcigKICAgICAgICAgICAgICAgIGFtb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2Ftb3VudC5Bc3NldEFtb3VudCgKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgKSwKICAgICAgICAgICAgICAgIGZlZSA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2Ftb3VudC5Bc3NldEFtb3VudCgKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgKSwKICAgICAgICAgICAgICAgIHBheWVlX2FjY291bnQgPSBOb25lLAogICAgICAgICAgICAgICAgdGltZV9zZWNvbmRzID0gMS4zMzcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RGlzYnVyc2VtZW50T3BlcmF0aW9uUHJldmlld091dHB1dEluc3RydWN0aW9uU2V0SW5uZXIoc2VsZik6CiAgICAgICAgIiIiVGVzdCBEaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0SW5zdHJ1Y3Rpb25TZXRJbm5lciIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_disbursement_operation_type.py b/test/test_disbursement_operation_type.py index 3ad0c430..5df1baa9 100644 --- a/test/test_disbursement_operation_type.py +++ b/test/test_disbursement_operation_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.disbursement_operation_type import DisbursementOperationType - - -class TestDisbursementOperationType(unittest.TestCase): - """DisbursementOperationType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testDisbursementOperationType(self): - """Test DisbursementOperationType""" - # inst = DisbursementOperationType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fdHlwZSBpbXBvcnQgRGlzYnVyc2VtZW50T3BlcmF0aW9uVHlwZQoKCmNsYXNzIFRlc3REaXNidXJzZW1lbnRPcGVyYXRpb25UeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkRpc2J1cnNlbWVudE9wZXJhdGlvblR5cGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0RGlzYnVyc2VtZW50T3BlcmF0aW9uVHlwZShzZWxmKToKICAgICAgICAiIiJUZXN0IERpc2J1cnNlbWVudE9wZXJhdGlvblR5cGUiIiIKICAgICAgICAjIGluc3QgPSBEaXNidXJzZW1lbnRPcGVyYXRpb25UeXBlKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_disbursement_percentage_instruction.py b/test/test_disbursement_percentage_instruction.py index ee1ce49a..58ed3136 100644 --- a/test/test_disbursement_percentage_instruction.py +++ b/test/test_disbursement_percentage_instruction.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.disbursement_percentage_instruction import ( - DisbursementPercentageInstruction, -) - - -class TestDisbursementPercentageInstruction(unittest.TestCase): - """DisbursementPercentageInstruction unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DisbursementPercentageInstruction: - """Test DisbursementPercentageInstruction - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DisbursementPercentageInstruction` - """ - model = DisbursementPercentageInstruction() - if include_optional: - return DisbursementPercentageInstruction( - payee_account = None, - asset_id = '', - percentage = '' - ) - else: - return DisbursementPercentageInstruction( - payee_account = None, - asset_id = '', - percentage = '', - ) - """ - - def testDisbursementPercentageInstruction(self): - """Test DisbursementPercentageInstruction""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9wZXJjZW50YWdlX2luc3RydWN0aW9uIGltcG9ydCAoCiAgICBEaXNidXJzZW1lbnRQZXJjZW50YWdlSW5zdHJ1Y3Rpb24sCikKCgpjbGFzcyBUZXN0RGlzYnVyc2VtZW50UGVyY2VudGFnZUluc3RydWN0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkRpc2J1cnNlbWVudFBlcmNlbnRhZ2VJbnN0cnVjdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRGlzYnVyc2VtZW50UGVyY2VudGFnZUluc3RydWN0aW9uOgogICAgICAgICIiIlRlc3QgRGlzYnVyc2VtZW50UGVyY2VudGFnZUluc3RydWN0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYERpc2J1cnNlbWVudFBlcmNlbnRhZ2VJbnN0cnVjdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IERpc2J1cnNlbWVudFBlcmNlbnRhZ2VJbnN0cnVjdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIERpc2J1cnNlbWVudFBlcmNlbnRhZ2VJbnN0cnVjdGlvbigKICAgICAgICAgICAgICAgIHBheWVlX2FjY291bnQgPSBOb25lLAogICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2UgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIERpc2J1cnNlbWVudFBlcmNlbnRhZ2VJbnN0cnVjdGlvbigKICAgICAgICAgICAgICAgIHBheWVlX2FjY291bnQgPSBOb25lLAogICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2UgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3REaXNidXJzZW1lbnRQZXJjZW50YWdlSW5zdHJ1Y3Rpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBEaXNidXJzZW1lbnRQZXJjZW50YWdlSW5zdHJ1Y3Rpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_disbursement_validation_failure.py b/test/test_disbursement_validation_failure.py index 1d815640..a7142e7e 100644 --- a/test/test_disbursement_validation_failure.py +++ b/test/test_disbursement_validation_failure.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.disbursement_validation_failure import ( - DisbursementValidationFailure, -) - - -class TestDisbursementValidationFailure(unittest.TestCase): - """DisbursementValidationFailure unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DisbursementValidationFailure: - """Test DisbursementValidationFailure - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DisbursementValidationFailure` - """ - model = DisbursementValidationFailure() - if include_optional: - return DisbursementValidationFailure( - reason = 'ACCOUNT_NOT_FOUND', - data = { - 'key' : null - } - ) - else: - return DisbursementValidationFailure( - reason = 'ACCOUNT_NOT_FOUND', - ) - """ - - def testDisbursementValidationFailure(self): - """Test DisbursementValidationFailure""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF92YWxpZGF0aW9uX2ZhaWx1cmUgaW1wb3J0ICgKICAgIERpc2J1cnNlbWVudFZhbGlkYXRpb25GYWlsdXJlLAopCgoKY2xhc3MgVGVzdERpc2J1cnNlbWVudFZhbGlkYXRpb25GYWlsdXJlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkRpc2J1cnNlbWVudFZhbGlkYXRpb25GYWlsdXJlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBEaXNidXJzZW1lbnRWYWxpZGF0aW9uRmFpbHVyZToKICAgICAgICAiIiJUZXN0IERpc2J1cnNlbWVudFZhbGlkYXRpb25GYWlsdXJlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYERpc2J1cnNlbWVudFZhbGlkYXRpb25GYWlsdXJlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRGlzYnVyc2VtZW50VmFsaWRhdGlvbkZhaWx1cmUoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBEaXNidXJzZW1lbnRWYWxpZGF0aW9uRmFpbHVyZSgKICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdBQ0NPVU5UX05PVF9GT1VORCcsCiAgICAgICAgICAgICAgICBkYXRhID0gewogICAgICAgICAgICAgICAgICAgICdrZXknIDogbnVsbAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBEaXNidXJzZW1lbnRWYWxpZGF0aW9uRmFpbHVyZSgKICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdBQ0NPVU5UX05PVF9GT1VORCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RGlzYnVyc2VtZW50VmFsaWRhdGlvbkZhaWx1cmUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBEaXNidXJzZW1lbnRWYWxpZGF0aW9uRmFpbHVyZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_dispatch_payout_response.py b/test/test_dispatch_payout_response.py index e388a117..9b946b2b 100644 --- a/test/test_dispatch_payout_response.py +++ b/test/test_dispatch_payout_response.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.dispatch_payout_response import DispatchPayoutResponse - - -class TestDispatchPayoutResponse(unittest.TestCase): - """DispatchPayoutResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DispatchPayoutResponse: - """Test DispatchPayoutResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DispatchPayoutResponse` - """ - model = DispatchPayoutResponse() - if include_optional: - return DispatchPayoutResponse( - payout_id = '' - ) - else: - return DispatchPayoutResponse( - payout_id = '', - ) - """ - - def testDispatchPayoutResponse(self): - """Test DispatchPayoutResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRpc3BhdGNoX3BheW91dF9yZXNwb25zZSBpbXBvcnQgRGlzcGF0Y2hQYXlvdXRSZXNwb25zZQoKCmNsYXNzIFRlc3REaXNwYXRjaFBheW91dFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkRpc3BhdGNoUGF5b3V0UmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IERpc3BhdGNoUGF5b3V0UmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBEaXNwYXRjaFBheW91dFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYERpc3BhdGNoUGF5b3V0UmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBEaXNwYXRjaFBheW91dFJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRGlzcGF0Y2hQYXlvdXRSZXNwb25zZSgKICAgICAgICAgICAgICAgIHBheW91dF9pZCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRGlzcGF0Y2hQYXlvdXRSZXNwb25zZSgKICAgICAgICAgICAgICAgIHBheW91dF9pZCA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdERpc3BhdGNoUGF5b3V0UmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBEaXNwYXRjaFBheW91dFJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_draft_response.py b/test/test_draft_response.py index 222dc4e7..cbd8da64 100644 --- a/test/test_draft_response.py +++ b/test/test_draft_response.py @@ -1,241 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.draft_response import DraftResponse - - -class TestDraftResponse(unittest.TestCase): - """DraftResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DraftResponse: - """Test DraftResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DraftResponse` - """ - model = DraftResponse() - if include_optional: - return DraftResponse( - status = '', - rules = [ - fireblocks.models.policy_rule.PolicyRule( - name = 'High Value Transfer Policy', - id = 'policy_rule_001', - policy_engine_version = 'v2', - type = 'TRANSFER', - sub_type = 'TRANSFER', - initiator = null, - asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], - operator = 'INCLUDES', ), - source = fireblocks.models.source_config.SourceConfig( - ids = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - address = '0x123...', ) - ], - tags = [ - fireblocks.models.policy_tag.PolicyTag( - id = 'tag_001', ) - ], - operator = 'INCLUDES', - match_from = 'ACCOUNT', ), - destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"}, - account = fireblocks.models.account_config.AccountConfig( - operator = , - match_from = 'ACCOUNT', ), - side = 'BUY', - verdict = fireblocks.models.verdict_config.VerdictConfig( - action = 'ALLOW', - approvers = fireblocks.models.approvers_config.ApproversConfig( - can_initiator_approve = False, - allow_operator_as_authorizer = False, - approval_groups = [{"threshold":2,"users":["user1","user2"]}], ), - designated_signers = fireblocks.models.designated_signers_config.DesignatedSignersConfig( - type = 'SINGLE', - users = ["user1","user2"], - groups = ["group1","group2"], ), ), - amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig( - range = {"min":"100","max":"10000"}, - currency = 'USD', - time_period = fireblocks.models.time_period_config.TimePeriodConfig( - seconds = '86400', - initiator = 'PER_SINGLE_MATCH', - source = 'PER_SINGLE_MATCH', - destination = 'PER_SINGLE_MATCH', ), ), - amount = {"range":{"min":"100","max":"10000"},"currency":"USD"}, - external_descriptor = 'High value transfer policy for institutional clients', - method = null, - is_global_policy = False, - program_call = fireblocks.models.program_call_config.ProgramCallConfig( - allowed_solana_program_calls = 'WHITELISTED', ), - screening_metadata = fireblocks.models.screening_metadata_config.ScreeningMetadataConfig( - direction = 'OUTBOUND', - provider = 'CHAINALYSIS', - risk_rating = 'MEDIUM', - risk_score = '0.8', - exposure_type = 'DIRECT', - category = [ - '' - ], - name = [ - '' - ], - category_id = [ - '' - ], - status = 'COMPLETED', - source_address = '0x123...', - dest_address = '0x456...', ), - quote_asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], ), - base_asset = , - quote_amount = {"range":{"min":"100","max":"10000"}}, - base_amount = {"range":{"min":"100","max":"10000"}}, - d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig( - global_whitelisted = ["rabby.io","jup.ag"], - tenant_whitelisted = ["uniswap.com","opensea.io"], - urls = ["*"], - operator = , ), - derivation_path = {"path":[44,0,0,0,0],"partial":false}, - index = 1, ) - ], - draft_id = '', - metadata = fireblocks.models.policy_metadata.PolicyMetadata( - edited_by = 'user123', - edited_at = '2024-01-15T10:30:00Z', - published_by = 'user456', - published_at = '2024-01-15T11:00:00Z', - policy_type = 'TRANSFER', ) - ) - else: - return DraftResponse( - status = '', - rules = [ - fireblocks.models.policy_rule.PolicyRule( - name = 'High Value Transfer Policy', - id = 'policy_rule_001', - policy_engine_version = 'v2', - type = 'TRANSFER', - sub_type = 'TRANSFER', - initiator = null, - asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], - operator = 'INCLUDES', ), - source = fireblocks.models.source_config.SourceConfig( - ids = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - address = '0x123...', ) - ], - tags = [ - fireblocks.models.policy_tag.PolicyTag( - id = 'tag_001', ) - ], - operator = 'INCLUDES', - match_from = 'ACCOUNT', ), - destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"}, - account = fireblocks.models.account_config.AccountConfig( - operator = , - match_from = 'ACCOUNT', ), - side = 'BUY', - verdict = fireblocks.models.verdict_config.VerdictConfig( - action = 'ALLOW', - approvers = fireblocks.models.approvers_config.ApproversConfig( - can_initiator_approve = False, - allow_operator_as_authorizer = False, - approval_groups = [{"threshold":2,"users":["user1","user2"]}], ), - designated_signers = fireblocks.models.designated_signers_config.DesignatedSignersConfig( - type = 'SINGLE', - users = ["user1","user2"], - groups = ["group1","group2"], ), ), - amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig( - range = {"min":"100","max":"10000"}, - currency = 'USD', - time_period = fireblocks.models.time_period_config.TimePeriodConfig( - seconds = '86400', - initiator = 'PER_SINGLE_MATCH', - source = 'PER_SINGLE_MATCH', - destination = 'PER_SINGLE_MATCH', ), ), - amount = {"range":{"min":"100","max":"10000"},"currency":"USD"}, - external_descriptor = 'High value transfer policy for institutional clients', - method = null, - is_global_policy = False, - program_call = fireblocks.models.program_call_config.ProgramCallConfig( - allowed_solana_program_calls = 'WHITELISTED', ), - screening_metadata = fireblocks.models.screening_metadata_config.ScreeningMetadataConfig( - direction = 'OUTBOUND', - provider = 'CHAINALYSIS', - risk_rating = 'MEDIUM', - risk_score = '0.8', - exposure_type = 'DIRECT', - category = [ - '' - ], - name = [ - '' - ], - category_id = [ - '' - ], - status = 'COMPLETED', - source_address = '0x123...', - dest_address = '0x456...', ), - quote_asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], ), - base_asset = , - quote_amount = {"range":{"min":"100","max":"10000"}}, - base_amount = {"range":{"min":"100","max":"10000"}}, - d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig( - global_whitelisted = ["rabby.io","jup.ag"], - tenant_whitelisted = ["uniswap.com","opensea.io"], - urls = ["*"], - operator = , ), - derivation_path = {"path":[44,0,0,0,0],"partial":false}, - index = 1, ) - ], - draft_id = '', - metadata = fireblocks.models.policy_metadata.PolicyMetadata( - edited_by = 'user123', - edited_at = '2024-01-15T10:30:00Z', - published_by = 'user456', - published_at = '2024-01-15T11:00:00Z', - policy_type = 'TRANSFER', ), - ) - """ - - def testDraftResponse(self): - """Test DraftResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRyYWZ0X3Jlc3BvbnNlIGltcG9ydCBEcmFmdFJlc3BvbnNlCgoKY2xhc3MgVGVzdERyYWZ0UmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRHJhZnRSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRHJhZnRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IERyYWZ0UmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRHJhZnRSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IERyYWZ0UmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBEcmFmdFJlc3BvbnNlKAogICAgICAgICAgICAgICAgc3RhdHVzID0gJycsCiAgICAgICAgICAgICAgICBydWxlcyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfcnVsZS5Qb2xpY3lSdWxlKAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ0hpZ2ggVmFsdWUgVHJhbnNmZXIgUG9saWN5JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJ3BvbGljeV9ydWxlXzAwMScsIAogICAgICAgICAgICAgICAgICAgICAgICBwb2xpY3lfZW5naW5lX3ZlcnNpb24gPSAndjInLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgICAgICBzdWJfdHlwZSA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgICAgICBpbml0aWF0b3IgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9jb25maWcuQXNzZXRDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZnRfdHJhbnNmZXIgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldF90eXBlcyA9IFsiRlVOR0lCTEUiLCJORlQiLCIqIl0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAnSU5DTFVERVMnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlID0gZmlyZWJsb2Nrcy5tb2RlbHMuc291cmNlX2NvbmZpZy5Tb3VyY2VDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9pZGVudGlmaWVyLkFjY291bnRJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJ2FjY291bnQxMjMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweDEyMy4uLicsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZ3MgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3RhZy5Qb2xpY3lUYWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJ3RhZ18wMDEnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICdJTkNMVURFUycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hfZnJvbSA9ICdBQ0NPVU5UJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0geyJ0eXBlIjpbIkVYVEVSTkFMIl0sIm9wZXJhdG9yIjoiSU5DTFVERVMiLCJhZGRyZXNzVHlwZSI6IldISVRFTElTVEVEIn0sIAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9jb25maWcuQWNjb3VudENvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoX2Zyb20gPSAnQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICBzaWRlID0gJ0JVWScsIAogICAgICAgICAgICAgICAgICAgICAgICB2ZXJkaWN0ID0gZmlyZWJsb2Nrcy5tb2RlbHMudmVyZGljdF9jb25maWcuVmVyZGljdENvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdBTExPVycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92ZXJzID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXBwcm92ZXJzX2NvbmZpZy5BcHByb3ZlcnNDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FuX2luaXRpYXRvcl9hcHByb3ZlID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93X29wZXJhdG9yX2FzX2F1dGhvcml6ZXIgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92YWxfZ3JvdXBzID0gW3sidGhyZXNob2xkIjoyLCJ1c2VycyI6WyJ1c2VyMSIsInVzZXIyIl19XSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNpZ25hdGVkX3NpZ25lcnMgPSBmaXJlYmxvY2tzLm1vZGVscy5kZXNpZ25hdGVkX3NpZ25lcnNfY29uZmlnLkRlc2lnbmF0ZWRTaWduZXJzQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnU0lOR0xFJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcnMgPSBbInVzZXIxIiwidXNlcjIiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBzID0gWyJncm91cDEiLCJncm91cDIiXSwgKSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudF9vdmVyX3RpbWUgPSBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfb3Zlcl90aW1lX2NvbmZpZy5BbW91bnRPdmVyVGltZUNvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlID0geyJtaW4iOiIxMDAiLCJtYXgiOiIxMDAwMCJ9LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5ID0gJ1VTRCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZV9wZXJpb2QgPSBmaXJlYmxvY2tzLm1vZGVscy50aW1lX3BlcmlvZF9jb25maWcuVGltZVBlcmlvZENvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRzID0gJzg2NDAwJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhdG9yID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UgPSAnUEVSX1NJTkdMRV9NQVRDSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLCApLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0geyJyYW5nZSI6eyJtaW4iOiIxMDAiLCJtYXgiOiIxMDAwMCJ9LCJjdXJyZW5jeSI6IlVTRCJ9LCAKICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfZGVzY3JpcHRvciA9ICdIaWdoIHZhbHVlIHRyYW5zZmVyIHBvbGljeSBmb3IgaW5zdGl0dXRpb25hbCBjbGllbnRzJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBpc19nbG9iYWxfcG9saWN5ID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmFtX2NhbGwgPSBmaXJlYmxvY2tzLm1vZGVscy5wcm9ncmFtX2NhbGxfY29uZmlnLlByb2dyYW1DYWxsQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dlZF9zb2xhbmFfcHJvZ3JhbV9jYWxscyA9ICdXSElURUxJU1RFRCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICBzY3JlZW5pbmdfbWV0YWRhdGEgPSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfbWV0YWRhdGFfY29uZmlnLlNjcmVlbmluZ01ldGFkYXRhQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uID0gJ09VVEJPVU5EJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlciA9ICdDSEFJTkFMWVNJUycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlza19yYXRpbmcgPSAnTUVESVVNJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByaXNrX3Njb3JlID0gJzAuOCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3N1cmVfdHlwZSA9ICdESVJFQ1QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZCA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ0NPTVBMRVRFRCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX2FkZHJlc3MgPSAnMHgxMjMuLi4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcweDQ1Ni4uLicsICksIAogICAgICAgICAgICAgICAgICAgICAgICBxdW90ZV9hc3NldCA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2NvbmZpZy5Bc3NldENvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5mdF90cmFuc2ZlciA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X3R5cGVzID0gWyJGVU5HSUJMRSIsIk5GVCIsIioiXSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VfYXNzZXQgPSAsIAogICAgICAgICAgICAgICAgICAgICAgICBxdW90ZV9hbW91bnQgPSB7InJhbmdlIjp7Im1pbiI6IjEwMCIsIm1heCI6IjEwMDAwIn19LCAKICAgICAgICAgICAgICAgICAgICAgICAgYmFzZV9hbW91bnQgPSB7InJhbmdlIjp7Im1pbiI6IjEwMCIsIm1heCI6IjEwMDAwIn19LCAKICAgICAgICAgICAgICAgICAgICAgICAgZF9hcHBfYWRkcmVzcyA9IGZpcmVibG9ja3MubW9kZWxzLmRfYXBwX2FkZHJlc3NfY29uZmlnLkRBcHBBZGRyZXNzQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsX3doaXRlbGlzdGVkID0gWyJyYWJieS5pbyIsImp1cC5hZyJdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbmFudF93aGl0ZWxpc3RlZCA9IFsidW5pc3dhcC5jb20iLCJvcGVuc2VhLmlvIl0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJscyA9IFsiKiJdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVyaXZhdGlvbl9wYXRoID0geyJwYXRoIjpbNDQsMCwwLDAsMF0sInBhcnRpYWwiOmZhbHNlfSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gMSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBkcmFmdF9pZCA9ICcnLAogICAgICAgICAgICAgICAgbWV0YWRhdGEgPSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfbWV0YWRhdGEuUG9saWN5TWV0YWRhdGEoCiAgICAgICAgICAgICAgICAgICAgZWRpdGVkX2J5ID0gJ3VzZXIxMjMnLCAKICAgICAgICAgICAgICAgICAgICBlZGl0ZWRfYXQgPSAnMjAyNC0wMS0xNVQxMDozMDowMFonLCAKICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZWRfYnkgPSAndXNlcjQ1NicsIAogICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlZF9hdCA9ICcyMDI0LTAxLTE1VDExOjAwOjAwWicsIAogICAgICAgICAgICAgICAgICAgIHBvbGljeV90eXBlID0gJ1RSQU5TRkVSJywgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIERyYWZ0UmVzcG9uc2UoCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnJywKICAgICAgICAgICAgICAgIHJ1bGVzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9ydWxlLlBvbGljeVJ1bGUoCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnSGlnaCBWYWx1ZSBUcmFuc2ZlciBQb2xpY3knLCAKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAncG9saWN5X3J1bGVfMDAxJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeV9lbmdpbmVfdmVyc2lvbiA9ICd2MicsIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1RSQU5TRkVSJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl90eXBlID0gJ1RSQU5TRkVSJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYXRvciA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldCA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2NvbmZpZy5Bc3NldENvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5mdF90cmFuc2ZlciA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X3R5cGVzID0gWyJGVU5HSUJMRSIsIk5GVCIsIioiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICdJTkNMVURFUycsICksIAogICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UgPSBmaXJlYmxvY2tzLm1vZGVscy5zb3VyY2VfY29uZmlnLlNvdXJjZUNvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2lkZW50aWZpZXIuQWNjb3VudElkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnYWNjb3VudDEyMycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzB4MTIzLi4uJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFncyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfdGFnLlBvbGljeVRhZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAndGFnXzAwMScsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gJ0lOQ0xVREVTJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaF9mcm9tID0gJ0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSB7InR5cGUiOlsiRVhURVJOQUwiXSwib3BlcmF0b3IiOiJJTkNMVURFUyIsImFkZHJlc3NUeXBlIjoiV0hJVEVMSVNURUQifSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2NvbmZpZy5BY2NvdW50Q29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hfZnJvbSA9ICdBQ0NPVU5UJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHNpZGUgPSAnQlVZJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHZlcmRpY3QgPSBmaXJlYmxvY2tzLm1vZGVscy52ZXJkaWN0X2NvbmZpZy5WZXJkaWN0Q29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FMTE9XJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZlcnMgPSBmaXJlYmxvY2tzLm1vZGVscy5hcHByb3ZlcnNfY29uZmlnLkFwcHJvdmVyc0NvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5faW5pdGlhdG9yX2FwcHJvdmUgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dfb3BlcmF0b3JfYXNfYXV0aG9yaXplciA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZhbF9ncm91cHMgPSBbeyJ0aHJlc2hvbGQiOjIsInVzZXJzIjpbInVzZXIxIiwidXNlcjIiXX1dLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2lnbmF0ZWRfc2lnbmVycyA9IGZpcmVibG9ja3MubW9kZWxzLmRlc2lnbmF0ZWRfc2lnbmVyc19jb25maWcuRGVzaWduYXRlZFNpZ25lcnNDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdTSU5HTEUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VycyA9IFsidXNlcjEiLCJ1c2VyMiJdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cHMgPSBbImdyb3VwMSIsImdyb3VwMiJdLCApLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50X292ZXJfdGltZSA9IGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9vdmVyX3RpbWVfY29uZmlnLkFtb3VudE92ZXJUaW1lQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSB7Im1pbiI6IjEwMCIsIm1heCI6IjEwMDAwIn0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3kgPSAnVVNEJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lX3BlcmlvZCA9IGZpcmVibG9ja3MubW9kZWxzLnRpbWVfcGVyaW9kX2NvbmZpZy5UaW1lUGVyaW9kQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZHMgPSAnODY0MDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWF0b3IgPSAnUEVSX1NJTkdMRV9NQVRDSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9ICdQRVJfU0lOR0xFX01BVENIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSAnUEVSX1NJTkdMRV9NQVRDSCcsICksICksIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSB7InJhbmdlIjp7Im1pbiI6IjEwMCIsIm1heCI6IjEwMDAwIn0sImN1cnJlbmN5IjoiVVNEIn0sIAogICAgICAgICAgICAgICAgICAgICAgICBleHRlcm5hbF9kZXNjcmlwdG9yID0gJ0hpZ2ggdmFsdWUgdHJhbnNmZXIgcG9saWN5IGZvciBpbnN0aXR1dGlvbmFsIGNsaWVudHMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIGlzX2dsb2JhbF9wb2xpY3kgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyYW1fY2FsbCA9IGZpcmVibG9ja3MubW9kZWxzLnByb2dyYW1fY2FsbF9jb25maWcuUHJvZ3JhbUNhbGxDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd2VkX3NvbGFuYV9wcm9ncmFtX2NhbGxzID0gJ1dISVRFTElTVEVEJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmVlbmluZ19tZXRhZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19tZXRhZGF0YV9jb25maWcuU2NyZWVuaW5nTWV0YWRhdGFDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyID0gJ0NIQUlOQUxZU0lTJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByaXNrX3JhdGluZyA9ICdNRURJVU0nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpc2tfc2NvcmUgPSAnMC44JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBvc3VyZV90eXBlID0gJ0RJUkVDVCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VfYWRkcmVzcyA9ICcweDEyMy4uLicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9hZGRyZXNzID0gJzB4NDU2Li4uJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlX2Fzc2V0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfY29uZmlnLkFzc2V0Q29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmZ0X3RyYW5zZmVyID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfdHlwZXMgPSBbIkZVTkdJQkxFIiwiTkZUIiwiKiJdLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmFzZV9hc3NldCA9ICwgCiAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlX2Ftb3VudCA9IHsicmFuZ2UiOnsibWluIjoiMTAwIiwibWF4IjoiMTAwMDAifX0sIAogICAgICAgICAgICAgICAgICAgICAgICBiYXNlX2Ftb3VudCA9IHsicmFuZ2UiOnsibWluIjoiMTAwIiwibWF4IjoiMTAwMDAifX0sIAogICAgICAgICAgICAgICAgICAgICAgICBkX2FwcF9hZGRyZXNzID0gZmlyZWJsb2Nrcy5tb2RlbHMuZF9hcHBfYWRkcmVzc19jb25maWcuREFwcEFkZHJlc3NDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWxfd2hpdGVsaXN0ZWQgPSBbInJhYmJ5LmlvIiwianVwLmFnIl0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVuYW50X3doaXRlbGlzdGVkID0gWyJ1bmlzd2FwLmNvbSIsIm9wZW5zZWEuaW8iXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzID0gWyIqIl0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAsICksIAogICAgICAgICAgICAgICAgICAgICAgICBkZXJpdmF0aW9uX3BhdGggPSB7InBhdGgiOls0NCwwLDAsMCwwXSwicGFydGlhbCI6ZmFsc2V9LCAKICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSAxLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGRyYWZ0X2lkID0gJycsCiAgICAgICAgICAgICAgICBtZXRhZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9tZXRhZGF0YS5Qb2xpY3lNZXRhZGF0YSgKICAgICAgICAgICAgICAgICAgICBlZGl0ZWRfYnkgPSAndXNlcjEyMycsIAogICAgICAgICAgICAgICAgICAgIGVkaXRlZF9hdCA9ICcyMDI0LTAxLTE1VDEwOjMwOjAwWicsIAogICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlZF9ieSA9ICd1c2VyNDU2JywgCiAgICAgICAgICAgICAgICAgICAgcHVibGlzaGVkX2F0ID0gJzIwMjQtMDEtMTVUMTE6MDA6MDBaJywgCiAgICAgICAgICAgICAgICAgICAgcG9saWN5X3R5cGUgPSAnVFJBTlNGRVInLCApLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdERyYWZ0UmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBEcmFmdFJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_draft_review_and_validation_response.py b/test/test_draft_review_and_validation_response.py index 8a968cc1..403bd0c2 100644 --- a/test/test_draft_review_and_validation_response.py +++ b/test/test_draft_review_and_validation_response.py @@ -1,277 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.draft_review_and_validation_response import ( - DraftReviewAndValidationResponse, -) - - -class TestDraftReviewAndValidationResponse(unittest.TestCase): - """DraftReviewAndValidationResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DraftReviewAndValidationResponse: - """Test DraftReviewAndValidationResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DraftReviewAndValidationResponse` - """ - model = DraftReviewAndValidationResponse() - if include_optional: - return DraftReviewAndValidationResponse( - draft_response = fireblocks.models.draft_response.DraftResponse( - status = '', - rules = [ - fireblocks.models.policy_rule.PolicyRule( - name = 'High Value Transfer Policy', - id = 'policy_rule_001', - policy_engine_version = 'v2', - type = 'TRANSFER', - sub_type = 'TRANSFER', - initiator = null, - asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], - operator = 'INCLUDES', ), - source = fireblocks.models.source_config.SourceConfig( - ids = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - address = '0x123...', ) - ], - tags = [ - fireblocks.models.policy_tag.PolicyTag( - id = 'tag_001', ) - ], - operator = 'INCLUDES', - match_from = 'ACCOUNT', ), - destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"}, - account = fireblocks.models.account_config.AccountConfig( - operator = , - match_from = 'ACCOUNT', ), - side = 'BUY', - verdict = fireblocks.models.verdict_config.VerdictConfig( - action = 'ALLOW', - approvers = fireblocks.models.approvers_config.ApproversConfig( - can_initiator_approve = False, - allow_operator_as_authorizer = False, - approval_groups = [{"threshold":2,"users":["user1","user2"]}], ), - designated_signers = fireblocks.models.designated_signers_config.DesignatedSignersConfig( - type = 'SINGLE', - users = ["user1","user2"], - groups = ["group1","group2"], ), ), - amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig( - range = {"min":"100","max":"10000"}, - currency = 'USD', - time_period = fireblocks.models.time_period_config.TimePeriodConfig( - seconds = '86400', - initiator = 'PER_SINGLE_MATCH', - source = 'PER_SINGLE_MATCH', - destination = 'PER_SINGLE_MATCH', ), ), - amount = {"range":{"min":"100","max":"10000"},"currency":"USD"}, - external_descriptor = 'High value transfer policy for institutional clients', - method = null, - is_global_policy = False, - program_call = fireblocks.models.program_call_config.ProgramCallConfig( - allowed_solana_program_calls = 'WHITELISTED', ), - screening_metadata = fireblocks.models.screening_metadata_config.ScreeningMetadataConfig( - direction = 'OUTBOUND', - provider = 'CHAINALYSIS', - risk_rating = 'MEDIUM', - risk_score = '0.8', - exposure_type = 'DIRECT', - category = [ - '' - ], - name = [ - '' - ], - category_id = [ - '' - ], - status = 'COMPLETED', - source_address = '0x123...', - dest_address = '0x456...', ), - quote_asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], ), - base_asset = , - quote_amount = {"range":{"min":"100","max":"10000"}}, - base_amount = {"range":{"min":"100","max":"10000"}}, - d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig( - global_whitelisted = ["rabby.io","jup.ag"], - tenant_whitelisted = ["uniswap.com","opensea.io"], - urls = ["*"], - operator = , ), - derivation_path = {"path":[44,0,0,0,0],"partial":false}, - index = 1, ) - ], - draft_id = '', - metadata = fireblocks.models.policy_metadata.PolicyMetadata( - edited_by = 'user123', - edited_at = '2024-01-15T10:30:00Z', - published_by = 'user456', - published_at = '2024-01-15T11:00:00Z', - policy_type = 'TRANSFER', ), ), - validation = fireblocks.models.policy_validation.PolicyValidation( - status = '', - check_result = fireblocks.models.policy_check_result.PolicyCheckResult( - errors = 1.337, - results = [ - fireblocks.models.policy_rule_check_result.PolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.policy_rule_error.PolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], ) - ], ), ) - ) - else: - return DraftReviewAndValidationResponse( - draft_response = fireblocks.models.draft_response.DraftResponse( - status = '', - rules = [ - fireblocks.models.policy_rule.PolicyRule( - name = 'High Value Transfer Policy', - id = 'policy_rule_001', - policy_engine_version = 'v2', - type = 'TRANSFER', - sub_type = 'TRANSFER', - initiator = null, - asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], - operator = 'INCLUDES', ), - source = fireblocks.models.source_config.SourceConfig( - ids = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - address = '0x123...', ) - ], - tags = [ - fireblocks.models.policy_tag.PolicyTag( - id = 'tag_001', ) - ], - operator = 'INCLUDES', - match_from = 'ACCOUNT', ), - destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"}, - account = fireblocks.models.account_config.AccountConfig( - operator = , - match_from = 'ACCOUNT', ), - side = 'BUY', - verdict = fireblocks.models.verdict_config.VerdictConfig( - action = 'ALLOW', - approvers = fireblocks.models.approvers_config.ApproversConfig( - can_initiator_approve = False, - allow_operator_as_authorizer = False, - approval_groups = [{"threshold":2,"users":["user1","user2"]}], ), - designated_signers = fireblocks.models.designated_signers_config.DesignatedSignersConfig( - type = 'SINGLE', - users = ["user1","user2"], - groups = ["group1","group2"], ), ), - amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig( - range = {"min":"100","max":"10000"}, - currency = 'USD', - time_period = fireblocks.models.time_period_config.TimePeriodConfig( - seconds = '86400', - initiator = 'PER_SINGLE_MATCH', - source = 'PER_SINGLE_MATCH', - destination = 'PER_SINGLE_MATCH', ), ), - amount = {"range":{"min":"100","max":"10000"},"currency":"USD"}, - external_descriptor = 'High value transfer policy for institutional clients', - method = null, - is_global_policy = False, - program_call = fireblocks.models.program_call_config.ProgramCallConfig( - allowed_solana_program_calls = 'WHITELISTED', ), - screening_metadata = fireblocks.models.screening_metadata_config.ScreeningMetadataConfig( - direction = 'OUTBOUND', - provider = 'CHAINALYSIS', - risk_rating = 'MEDIUM', - risk_score = '0.8', - exposure_type = 'DIRECT', - category = [ - '' - ], - name = [ - '' - ], - category_id = [ - '' - ], - status = 'COMPLETED', - source_address = '0x123...', - dest_address = '0x456...', ), - quote_asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], ), - base_asset = , - quote_amount = {"range":{"min":"100","max":"10000"}}, - base_amount = {"range":{"min":"100","max":"10000"}}, - d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig( - global_whitelisted = ["rabby.io","jup.ag"], - tenant_whitelisted = ["uniswap.com","opensea.io"], - urls = ["*"], - operator = , ), - derivation_path = {"path":[44,0,0,0,0],"partial":false}, - index = 1, ) - ], - draft_id = '', - metadata = fireblocks.models.policy_metadata.PolicyMetadata( - edited_by = 'user123', - edited_at = '2024-01-15T10:30:00Z', - published_by = 'user456', - published_at = '2024-01-15T11:00:00Z', - policy_type = 'TRANSFER', ), ), - validation = fireblocks.models.policy_validation.PolicyValidation( - status = '', - check_result = fireblocks.models.policy_check_result.PolicyCheckResult( - errors = 1.337, - results = [ - fireblocks.models.policy_rule_check_result.PolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.policy_rule_error.PolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], ) - ], ), ), - ) - """ - - def testDraftReviewAndValidationResponse(self): - """Test DraftReviewAndValidationResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRyYWZ0X3Jldmlld19hbmRfdmFsaWRhdGlvbl9yZXNwb25zZSBpbXBvcnQgKAogICAgRHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0RHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IERyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgRHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIERyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlKAogICAgICAgICAgICAgICAgZHJhZnRfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLm1vZGVscy5kcmFmdF9yZXNwb25zZS5EcmFmdFJlc3BvbnNlKAogICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBydWxlcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3J1bGUuUG9saWN5UnVsZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnSGlnaCBWYWx1ZSBUcmFuc2ZlciBQb2xpY3knLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJ3BvbGljeV9ydWxlXzAwMScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5X2VuZ2luZV92ZXJzaW9uID0gJ3YyJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1RSQU5TRkVSJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJfdHlwZSA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhdG9yID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldCA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2NvbmZpZy5Bc3NldENvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZnRfdHJhbnNmZXIgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfdHlwZXMgPSBbIkZVTkdJQkxFIiwiTkZUIiwiKiJdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICdJTkNMVURFUycsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlID0gZmlyZWJsb2Nrcy5tb2RlbHMuc291cmNlX2NvbmZpZy5Tb3VyY2VDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2lkZW50aWZpZXIuQWNjb3VudElkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdhY2NvdW50MTIzJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzB4MTIzLi4uJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfdGFnLlBvbGljeVRhZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJ3RhZ18wMDEnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gJ0lOQ0xVREVTJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hfZnJvbSA9ICdBQ0NPVU5UJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IHsidHlwZSI6WyJFWFRFUk5BTCJdLCJvcGVyYXRvciI6IklOQ0xVREVTIiwiYWRkcmVzc1R5cGUiOiJXSElURUxJU1RFRCJ9LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2NvbmZpZy5BY2NvdW50Q29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaF9mcm9tID0gJ0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZGUgPSAnQlVZJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJkaWN0ID0gZmlyZWJsb2Nrcy5tb2RlbHMudmVyZGljdF9jb25maWcuVmVyZGljdENvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUxMT1cnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZlcnMgPSBmaXJlYmxvY2tzLm1vZGVscy5hcHByb3ZlcnNfY29uZmlnLkFwcHJvdmVyc0NvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FuX2luaXRpYXRvcl9hcHByb3ZlID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd19vcGVyYXRvcl9hc19hdXRob3JpemVyID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZhbF9ncm91cHMgPSBbeyJ0aHJlc2hvbGQiOjIsInVzZXJzIjpbInVzZXIxIiwidXNlcjIiXX1dLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNpZ25hdGVkX3NpZ25lcnMgPSBmaXJlYmxvY2tzLm1vZGVscy5kZXNpZ25hdGVkX3NpZ25lcnNfY29uZmlnLkRlc2lnbmF0ZWRTaWduZXJzQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1NJTkdMRScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VycyA9IFsidXNlcjEiLCJ1c2VyMiJdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBzID0gWyJncm91cDEiLCJncm91cDIiXSwgKSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfb3Zlcl90aW1lID0gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X292ZXJfdGltZV9jb25maWcuQW1vdW50T3ZlclRpbWVDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSB7Im1pbiI6IjEwMCIsIm1heCI6IjEwMDAwIn0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5ID0gJ1VTRCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVfcGVyaW9kID0gZmlyZWJsb2Nrcy5tb2RlbHMudGltZV9wZXJpb2RfY29uZmlnLlRpbWVQZXJpb2RDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZHMgPSAnODY0MDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhdG9yID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSAnUEVSX1NJTkdMRV9NQVRDSCcsICksICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0geyJyYW5nZSI6eyJtaW4iOiIxMDAiLCJtYXgiOiIxMDAwMCJ9LCJjdXJyZW5jeSI6IlVTRCJ9LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX2Rlc2NyaXB0b3IgPSAnSGlnaCB2YWx1ZSB0cmFuc2ZlciBwb2xpY3kgZm9yIGluc3RpdHV0aW9uYWwgY2xpZW50cycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19nbG9iYWxfcG9saWN5ID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbV9jYWxsID0gZmlyZWJsb2Nrcy5tb2RlbHMucHJvZ3JhbV9jYWxsX2NvbmZpZy5Qcm9ncmFtQ2FsbENvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd2VkX3NvbGFuYV9wcm9ncmFtX2NhbGxzID0gJ1dISVRFTElTVEVEJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JlZW5pbmdfbWV0YWRhdGEgPSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfbWV0YWRhdGFfY29uZmlnLlNjcmVlbmluZ01ldGFkYXRhQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdPVVRCT1VORCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyID0gJ0NIQUlOQUxZU0lTJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlza19yYXRpbmcgPSAnTUVESVVNJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlza19zY29yZSA9ICcwLjgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBvc3VyZV90eXBlID0gJ0RJUkVDVCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZCA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ0NPTVBMRVRFRCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzID0gJzB4MTIzLi4uJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9hZGRyZXNzID0gJzB4NDU2Li4uJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdW90ZV9hc3NldCA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2NvbmZpZy5Bc3NldENvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZnRfdHJhbnNmZXIgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfdHlwZXMgPSBbIkZVTkdJQkxFIiwiTkZUIiwiKiJdLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VfYXNzZXQgPSAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVfYW1vdW50ID0geyJyYW5nZSI6eyJtaW4iOiIxMDAiLCJtYXgiOiIxMDAwMCJ9fSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlX2Ftb3VudCA9IHsicmFuZ2UiOnsibWluIjoiMTAwIiwibWF4IjoiMTAwMDAifX0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZF9hcHBfYWRkcmVzcyA9IGZpcmVibG9ja3MubW9kZWxzLmRfYXBwX2FkZHJlc3NfY29uZmlnLkRBcHBBZGRyZXNzQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbF93aGl0ZWxpc3RlZCA9IFsicmFiYnkuaW8iLCJqdXAuYWciXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVuYW50X3doaXRlbGlzdGVkID0gWyJ1bmlzd2FwLmNvbSIsIm9wZW5zZWEuaW8iXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJscyA9IFsiKiJdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXJpdmF0aW9uX3BhdGggPSB7InBhdGgiOls0NCwwLDAsMCwwXSwicGFydGlhbCI6ZmFsc2V9LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gMSwgKQogICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICBkcmFmdF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9tZXRhZGF0YS5Qb2xpY3lNZXRhZGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgZWRpdGVkX2J5ID0gJ3VzZXIxMjMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZWRpdGVkX2F0ID0gJzIwMjQtMDEtMTVUMTA6MzA6MDBaJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlZF9ieSA9ICd1c2VyNDU2JywgCiAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlZF9hdCA9ICcyMDI0LTAxLTE1VDExOjAwOjAwWicsIAogICAgICAgICAgICAgICAgICAgICAgICBwb2xpY3lfdHlwZSA9ICdUUkFOU0ZFUicsICksICksCiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3ZhbGlkYXRpb24uUG9saWN5VmFsaWRhdGlvbigKICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgY2hlY2tfcmVzdWx0ID0gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X2NoZWNrX3Jlc3VsdC5Qb2xpY3lDaGVja1Jlc3VsdCgKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3J1bGVfY2hlY2tfcmVzdWx0LlBvbGljeVJ1bGVDaGVja1Jlc3VsdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnb2snLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9ydWxlX2Vycm9yLlBvbGljeVJ1bGVFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX21lc3NhZ2UgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZV9uYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfZmllbGQgPSAnb3BlcmF0b3InLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZSgKICAgICAgICAgICAgICAgIGRyYWZ0X3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5tb2RlbHMuZHJhZnRfcmVzcG9uc2UuRHJhZnRSZXNwb25zZSgKICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgcnVsZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9ydWxlLlBvbGljeVJ1bGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ0hpZ2ggVmFsdWUgVHJhbnNmZXIgUG9saWN5JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdwb2xpY3lfcnVsZV8wMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeV9lbmdpbmVfdmVyc2lvbiA9ICd2MicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViX3R5cGUgPSAnVFJBTlNGRVInLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYXRvciA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9jb25maWcuQXNzZXRDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmZ0X3RyYW5zZmVyID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X3R5cGVzID0gWyJGVU5HSUJMRSIsIk5GVCIsIioiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAnSU5DTFVERVMnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9IGZpcmVibG9ja3MubW9kZWxzLnNvdXJjZV9jb25maWcuU291cmNlQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9pZGVudGlmaWVyLkFjY291bnRJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnYWNjb3VudDEyMycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweDEyMy4uLicsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFncyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3RhZy5Qb2xpY3lUYWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICd0YWdfMDAxJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICdJTkNMVURFUycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoX2Zyb20gPSAnQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSB7InR5cGUiOlsiRVhURVJOQUwiXSwib3BlcmF0b3IiOiJJTkNMVURFUyIsImFkZHJlc3NUeXBlIjoiV0hJVEVMSVNURUQifSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9jb25maWcuQWNjb3VudENvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hfZnJvbSA9ICdBQ0NPVU5UJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWRlID0gJ0JVWScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyZGljdCA9IGZpcmVibG9ja3MubW9kZWxzLnZlcmRpY3RfY29uZmlnLlZlcmRpY3RDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FMTE9XJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92ZXJzID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXBwcm92ZXJzX2NvbmZpZy5BcHByb3ZlcnNDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbl9pbml0aWF0b3JfYXBwcm92ZSA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dfb3BlcmF0b3JfYXNfYXV0aG9yaXplciA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92YWxfZ3JvdXBzID0gW3sidGhyZXNob2xkIjoyLCJ1c2VycyI6WyJ1c2VyMSIsInVzZXIyIl19XSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzaWduYXRlZF9zaWduZXJzID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzaWduYXRlZF9zaWduZXJzX2NvbmZpZy5EZXNpZ25hdGVkU2lnbmVyc0NvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdTSU5HTEUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcnMgPSBbInVzZXIxIiwidXNlcjIiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwcyA9IFsiZ3JvdXAxIiwiZ3JvdXAyIl0sICksICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50X292ZXJfdGltZSA9IGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9vdmVyX3RpbWVfY29uZmlnLkFtb3VudE92ZXJUaW1lQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlID0geyJtaW4iOiIxMDAiLCJtYXgiOiIxMDAwMCJ9LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeSA9ICdVU0QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lX3BlcmlvZCA9IGZpcmVibG9ja3MubW9kZWxzLnRpbWVfcGVyaW9kX2NvbmZpZy5UaW1lUGVyaW9kQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRzID0gJzg2NDAwJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYXRvciA9ICdQRVJfU0lOR0xFX01BVENIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9ICdQRVJfU0lOR0xFX01BVENIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLCApLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IHsicmFuZ2UiOnsibWluIjoiMTAwIiwibWF4IjoiMTAwMDAifSwiY3VycmVuY3kiOiJVU0QifSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlcm5hbF9kZXNjcmlwdG9yID0gJ0hpZ2ggdmFsdWUgdHJhbnNmZXIgcG9saWN5IGZvciBpbnN0aXR1dGlvbmFsIGNsaWVudHMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfZ2xvYmFsX3BvbGljeSA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyYW1fY2FsbCA9IGZpcmVibG9ja3MubW9kZWxzLnByb2dyYW1fY2FsbF9jb25maWcuUHJvZ3JhbUNhbGxDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dlZF9zb2xhbmFfcHJvZ3JhbV9jYWxscyA9ICdXSElURUxJU1RFRCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyZWVuaW5nX21ldGFkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX21ldGFkYXRhX2NvbmZpZy5TY3JlZW5pbmdNZXRhZGF0YUNvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlciA9ICdDSEFJTkFMWVNJUycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpc2tfcmF0aW5nID0gJ01FRElVTScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpc2tfc2NvcmUgPSAnMC44JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3N1cmVfdHlwZSA9ICdESVJFQ1QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VfYWRkcmVzcyA9ICcweDEyMy4uLicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcweDQ1Ni4uLicsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVfYXNzZXQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9jb25maWcuQXNzZXRDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmZ0X3RyYW5zZmVyID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X3R5cGVzID0gWyJGVU5HSUJMRSIsIk5GVCIsIioiXSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlX2Ftb3VudCA9IHsicmFuZ2UiOnsibWluIjoiMTAwIiwibWF4IjoiMTAwMDAifX0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZV9hbW91bnQgPSB7InJhbmdlIjp7Im1pbiI6IjEwMCIsIm1heCI6IjEwMDAwIn19LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRfYXBwX2FkZHJlc3MgPSBmaXJlYmxvY2tzLm1vZGVscy5kX2FwcF9hZGRyZXNzX2NvbmZpZy5EQXBwQWRkcmVzc0NvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWxfd2hpdGVsaXN0ZWQgPSBbInJhYmJ5LmlvIiwianVwLmFnIl0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbmFudF93aGl0ZWxpc3RlZCA9IFsidW5pc3dhcC5jb20iLCJvcGVuc2VhLmlvIl0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHMgPSBbIioiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVyaXZhdGlvbl9wYXRoID0geyJwYXRoIjpbNDQsMCwwLDAsMF0sInBhcnRpYWwiOmZhbHNlfSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IDEsICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgZHJhZnRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEgPSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfbWV0YWRhdGEuUG9saWN5TWV0YWRhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRlZF9ieSA9ICd1c2VyMTIzJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRlZF9hdCA9ICcyMDI0LTAxLTE1VDEwOjMwOjAwWicsIAogICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZWRfYnkgPSAndXNlcjQ1NicsIAogICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZWRfYXQgPSAnMjAyNC0wMS0xNVQxMTowMDowMFonLCAKICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5X3R5cGUgPSAnVFJBTlNGRVInLCApLCApLAogICAgICAgICAgICAgICAgdmFsaWRhdGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV92YWxpZGF0aW9uLlBvbGljeVZhbGlkYXRpb24oCiAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJycsIAogICAgICAgICAgICAgICAgICAgIGNoZWNrX3Jlc3VsdCA9IGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9jaGVja19yZXN1bHQuUG9saWN5Q2hlY2tSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0cyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9ydWxlX2NoZWNrX3Jlc3VsdC5Qb2xpY3lSdWxlQ2hlY2tSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ29rJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfcnVsZV9lcnJvci5Qb2xpY3lSdWxlRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9tZXNzYWdlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZSA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGVfbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2ZpZWxkID0gJ29wZXJhdG9yJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCApLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdERyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgRHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_drop_transaction_request.py b/test/test_drop_transaction_request.py index 159bafcc..66e05bf3 100644 --- a/test/test_drop_transaction_request.py +++ b/test/test_drop_transaction_request.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.drop_transaction_request import DropTransactionRequest - - -class TestDropTransactionRequest(unittest.TestCase): - """DropTransactionRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DropTransactionRequest: - """Test DropTransactionRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DropTransactionRequest` - """ - model = DropTransactionRequest() - if include_optional: - return DropTransactionRequest( - tx_id = '', - fee_level = '', - gas_price = '' - ) - else: - return DropTransactionRequest( - ) - """ - - def testDropTransactionRequest(self): - """Test DropTransactionRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRyb3BfdHJhbnNhY3Rpb25fcmVxdWVzdCBpbXBvcnQgRHJvcFRyYW5zYWN0aW9uUmVxdWVzdAoKCmNsYXNzIFRlc3REcm9wVHJhbnNhY3Rpb25SZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkRyb3BUcmFuc2FjdGlvblJlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IERyb3BUcmFuc2FjdGlvblJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBEcm9wVHJhbnNhY3Rpb25SZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYERyb3BUcmFuc2FjdGlvblJlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBEcm9wVHJhbnNhY3Rpb25SZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRHJvcFRyYW5zYWN0aW9uUmVxdWVzdCgKICAgICAgICAgICAgICAgIHR4X2lkID0gJycsCiAgICAgICAgICAgICAgICBmZWVfbGV2ZWwgPSAnJywKICAgICAgICAgICAgICAgIGdhc19wcmljZSA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRHJvcFRyYW5zYWN0aW9uUmVxdWVzdCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3REcm9wVHJhbnNhY3Rpb25SZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgRHJvcFRyYW5zYWN0aW9uUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_drop_transaction_response.py b/test/test_drop_transaction_response.py index 4ea68dd9..c85d2c05 100644 --- a/test/test_drop_transaction_response.py +++ b/test/test_drop_transaction_response.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.drop_transaction_response import DropTransactionResponse - - -class TestDropTransactionResponse(unittest.TestCase): - """DropTransactionResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DropTransactionResponse: - """Test DropTransactionResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DropTransactionResponse` - """ - model = DropTransactionResponse() - if include_optional: - return DropTransactionResponse( - tx_status = '', - tx_id = '', - replaced_tx_hash = '' - ) - else: - return DropTransactionResponse( - ) - """ - - def testDropTransactionResponse(self): - """Test DropTransactionResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmRyb3BfdHJhbnNhY3Rpb25fcmVzcG9uc2UgaW1wb3J0IERyb3BUcmFuc2FjdGlvblJlc3BvbnNlCgoKY2xhc3MgVGVzdERyb3BUcmFuc2FjdGlvblJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkRyb3BUcmFuc2FjdGlvblJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBEcm9wVHJhbnNhY3Rpb25SZXNwb25zZToKICAgICAgICAiIiJUZXN0IERyb3BUcmFuc2FjdGlvblJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYERyb3BUcmFuc2FjdGlvblJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRHJvcFRyYW5zYWN0aW9uUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBEcm9wVHJhbnNhY3Rpb25SZXNwb25zZSgKICAgICAgICAgICAgICAgIHR4X3N0YXR1cyA9ICcnLAogICAgICAgICAgICAgICAgdHhfaWQgPSAnJywKICAgICAgICAgICAgICAgIHJlcGxhY2VkX3R4X2hhc2ggPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIERyb3BUcmFuc2FjdGlvblJlc3BvbnNlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdERyb3BUcmFuc2FjdGlvblJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgRHJvcFRyYW5zYWN0aW9uUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_dvn_config.py b/test/test_dvn_config.py index 47831779..288ec003 100644 --- a/test/test_dvn_config.py +++ b/test/test_dvn_config.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.dvn_config import DvnConfig - - -class TestDvnConfig(unittest.TestCase): - """DvnConfig unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DvnConfig: - """Test DvnConfig - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DvnConfig` - """ - model = DvnConfig() - if include_optional: - return DvnConfig( - dvn_addresses = [1.0284746938594775E54,2.5101940177441514E50], - optional_dvn_addresses = [1.334824162533763E54], - optional_threshold = 2 - ) - else: - return DvnConfig( - dvn_addresses = [1.0284746938594775E54,2.5101940177441514E50], - optional_threshold = 2, - ) - """ - - def testDvnConfig(self): - """Test DvnConfig""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmR2bl9jb25maWcgaW1wb3J0IER2bkNvbmZpZwoKCmNsYXNzIFRlc3REdm5Db25maWcodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRHZuQ29uZmlnIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBEdm5Db25maWc6CiAgICAgICAgIiIiVGVzdCBEdm5Db25maWcKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRHZuQ29uZmlnYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRHZuQ29uZmlnKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRHZuQ29uZmlnKAogICAgICAgICAgICAgICAgZHZuX2FkZHJlc3NlcyA9IFsxLjAyODQ3NDY5Mzg1OTQ3NzVFNTQsMi41MTAxOTQwMTc3NDQxNTE0RTUwXSwKICAgICAgICAgICAgICAgIG9wdGlvbmFsX2R2bl9hZGRyZXNzZXMgPSBbMS4zMzQ4MjQxNjI1MzM3NjNFNTRdLAogICAgICAgICAgICAgICAgb3B0aW9uYWxfdGhyZXNob2xkID0gMgogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIER2bkNvbmZpZygKICAgICAgICAgICAgICAgIGR2bl9hZGRyZXNzZXMgPSBbMS4wMjg0NzQ2OTM4NTk0Nzc1RTU0LDIuNTEwMTk0MDE3NzQ0MTUxNEU1MF0sCiAgICAgICAgICAgICAgICBvcHRpb25hbF90aHJlc2hvbGQgPSAyLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdER2bkNvbmZpZyhzZWxmKToKICAgICAgICAiIiJUZXN0IER2bkNvbmZpZyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_dvn_config_with_confirmations.py b/test/test_dvn_config_with_confirmations.py index 288407c6..8c9a5a4f 100644 --- a/test/test_dvn_config_with_confirmations.py +++ b/test/test_dvn_config_with_confirmations.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.dvn_config_with_confirmations import DvnConfigWithConfirmations - - -class TestDvnConfigWithConfirmations(unittest.TestCase): - """DvnConfigWithConfirmations unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DvnConfigWithConfirmations: - """Test DvnConfigWithConfirmations - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DvnConfigWithConfirmations` - """ - model = DvnConfigWithConfirmations() - if include_optional: - return DvnConfigWithConfirmations( - dvn_addresses = [1.0284746938594775E54,2.5101940177441514E50], - optional_dvn_addresses = [1.334824162533763E54], - optional_threshold = 2, - confirmations = 12 - ) - else: - return DvnConfigWithConfirmations( - dvn_addresses = [1.0284746938594775E54,2.5101940177441514E50], - optional_threshold = 2, - confirmations = 12, - ) - """ - - def testDvnConfigWithConfirmations(self): - """Test DvnConfigWithConfirmations""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmR2bl9jb25maWdfd2l0aF9jb25maXJtYXRpb25zIGltcG9ydCBEdm5Db25maWdXaXRoQ29uZmlybWF0aW9ucwoKCmNsYXNzIFRlc3REdm5Db25maWdXaXRoQ29uZmlybWF0aW9ucyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJEdm5Db25maWdXaXRoQ29uZmlybWF0aW9ucyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnM6CiAgICAgICAgIiIiVGVzdCBEdm5Db25maWdXaXRoQ29uZmlybWF0aW9ucwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBEdm5Db25maWdXaXRoQ29uZmlybWF0aW9uc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnMoCiAgICAgICAgICAgICAgICBkdm5fYWRkcmVzc2VzID0gWzEuMDI4NDc0NjkzODU5NDc3NUU1NCwyLjUxMDE5NDAxNzc0NDE1MTRFNTBdLAogICAgICAgICAgICAgICAgb3B0aW9uYWxfZHZuX2FkZHJlc3NlcyA9IFsxLjMzNDgyNDE2MjUzMzc2M0U1NF0sCiAgICAgICAgICAgICAgICBvcHRpb25hbF90aHJlc2hvbGQgPSAyLAogICAgICAgICAgICAgICAgY29uZmlybWF0aW9ucyA9IDEyCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRHZuQ29uZmlnV2l0aENvbmZpcm1hdGlvbnMoCiAgICAgICAgICAgICAgICBkdm5fYWRkcmVzc2VzID0gWzEuMDI4NDc0NjkzODU5NDc3NUU1NCwyLjUxMDE5NDAxNzc0NDE1MTRFNTBdLAogICAgICAgICAgICAgICAgb3B0aW9uYWxfdGhyZXNob2xkID0gMiwKICAgICAgICAgICAgICAgIGNvbmZpcm1hdGlvbnMgPSAxMiwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3REdm5Db25maWdXaXRoQ29uZmlybWF0aW9ucyhzZWxmKToKICAgICAgICAiIiJUZXN0IER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_dvp_settlement.py b/test/test_dvp_settlement.py index 9a48e8fa..7db6beaa 100644 --- a/test/test_dvp_settlement.py +++ b/test/test_dvp_settlement.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.dvp_settlement import DVPSettlement - - -class TestDVPSettlement(unittest.TestCase): - """DVPSettlement unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> DVPSettlement: - """Test DVPSettlement - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `DVPSettlement` - """ - model = DVPSettlement() - if include_optional: - return DVPSettlement( - type = 'DVP', - source_account = None, - destination_account = None - ) - else: - return DVPSettlement( - type = 'DVP', - source_account = None, - destination_account = None, - ) - """ - - def testDVPSettlement(self): - """Test DVPSettlement""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmR2cF9zZXR0bGVtZW50IGltcG9ydCBEVlBTZXR0bGVtZW50CgoKY2xhc3MgVGVzdERWUFNldHRsZW1lbnQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRFZQU2V0dGxlbWVudCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRFZQU2V0dGxlbWVudDoKICAgICAgICAiIiJUZXN0IERWUFNldHRsZW1lbnQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRFZQU2V0dGxlbWVudGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IERWUFNldHRsZW1lbnQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBEVlBTZXR0bGVtZW50KAogICAgICAgICAgICAgICAgdHlwZSA9ICdEVlAnLAogICAgICAgICAgICAgICAgc291cmNlX2FjY291bnQgPSBOb25lLAogICAgICAgICAgICAgICAgZGVzdGluYXRpb25fYWNjb3VudCA9IE5vbmUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBEVlBTZXR0bGVtZW50KAogICAgICAgICAgICAgICAgdHlwZSA9ICdEVlAnLAogICAgICAgICAgICAgICAgc291cmNlX2FjY291bnQgPSBOb25lLAogICAgICAgICAgICAgICAgZGVzdGluYXRpb25fYWNjb3VudCA9IE5vbmUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RFZQU2V0dGxlbWVudChzZWxmKToKICAgICAgICAiIiJUZXN0IERWUFNldHRsZW1lbnQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_dvp_settlement_type.py b/test/test_dvp_settlement_type.py index 6d87fc4b..37e0aa37 100644 --- a/test/test_dvp_settlement_type.py +++ b/test/test_dvp_settlement_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.dvp_settlement_type import DVPSettlementType - - -class TestDVPSettlementType(unittest.TestCase): - """DVPSettlementType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testDVPSettlementType(self): - """Test DVPSettlementType""" - # inst = DVPSettlementType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmR2cF9zZXR0bGVtZW50X3R5cGUgaW1wb3J0IERWUFNldHRsZW1lbnRUeXBlCgoKY2xhc3MgVGVzdERWUFNldHRsZW1lbnRUeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkRWUFNldHRsZW1lbnRUeXBlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdERWUFNldHRsZW1lbnRUeXBlKHNlbGYpOgogICAgICAgICIiIlRlc3QgRFZQU2V0dGxlbWVudFR5cGUiIiIKICAgICAgICAjIGluc3QgPSBEVlBTZXR0bGVtZW50VHlwZSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_edit_gas_station_configuration_response.py b/test/test_edit_gas_station_configuration_response.py index a732e9c4..ed111952 100644 --- a/test/test_edit_gas_station_configuration_response.py +++ b/test/test_edit_gas_station_configuration_response.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.edit_gas_station_configuration_response import ( - EditGasStationConfigurationResponse, -) - - -class TestEditGasStationConfigurationResponse(unittest.TestCase): - """EditGasStationConfigurationResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EditGasStationConfigurationResponse: - """Test EditGasStationConfigurationResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EditGasStationConfigurationResponse` - """ - model = EditGasStationConfigurationResponse() - if include_optional: - return EditGasStationConfigurationResponse( - success = True - ) - else: - return EditGasStationConfigurationResponse( - success = True, - ) - """ - - def testEditGasStationConfigurationResponse(self): - """Test EditGasStationConfigurationResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVkaXRfZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbl9yZXNwb25zZSBpbXBvcnQgKAogICAgRWRpdEdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0RWRpdEdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRWRpdEdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEVkaXRHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgRWRpdEdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRWRpdEdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBFZGl0R2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEVkaXRHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlKAogICAgICAgICAgICAgICAgc3VjY2VzcyA9IFRydWUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBFZGl0R2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZSgKICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBUcnVlLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEVkaXRHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgRWRpdEdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_embedded_wallet.py b/test/test_embedded_wallet.py index 14b1f073..0ba33fa7 100644 --- a/test/test_embedded_wallet.py +++ b/test/test_embedded_wallet.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.embedded_wallet import EmbeddedWallet - - -class TestEmbeddedWallet(unittest.TestCase): - """EmbeddedWallet unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EmbeddedWallet: - """Test EmbeddedWallet - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EmbeddedWallet` - """ - model = EmbeddedWallet() - if include_optional: - return EmbeddedWallet( - wallet_id = '550e8400-e29b-41d4-a716-446655440000', - enabled = True - ) - else: - return EmbeddedWallet( - wallet_id = '550e8400-e29b-41d4-a716-446655440000', - enabled = True, - ) - """ - - def testEmbeddedWallet(self): - """Test EmbeddedWallet""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldCBpbXBvcnQgRW1iZWRkZWRXYWxsZXQKCgpjbGFzcyBUZXN0RW1iZWRkZWRXYWxsZXQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRW1iZWRkZWRXYWxsZXQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEVtYmVkZGVkV2FsbGV0OgogICAgICAgICIiIlRlc3QgRW1iZWRkZWRXYWxsZXQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRW1iZWRkZWRXYWxsZXRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBFbWJlZGRlZFdhbGxldCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEVtYmVkZGVkV2FsbGV0KAogICAgICAgICAgICAgICAgd2FsbGV0X2lkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCcsCiAgICAgICAgICAgICAgICBlbmFibGVkID0gVHJ1ZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEVtYmVkZGVkV2FsbGV0KAogICAgICAgICAgICAgICAgd2FsbGV0X2lkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCcsCiAgICAgICAgICAgICAgICBlbmFibGVkID0gVHJ1ZSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RFbWJlZGRlZFdhbGxldChzZWxmKToKICAgICAgICAiIiJUZXN0IEVtYmVkZGVkV2FsbGV0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_embedded_wallet_account.py b/test/test_embedded_wallet_account.py index 4a40306a..634f282a 100644 --- a/test/test_embedded_wallet_account.py +++ b/test/test_embedded_wallet_account.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.embedded_wallet_account import EmbeddedWalletAccount - - -class TestEmbeddedWalletAccount(unittest.TestCase): - """EmbeddedWalletAccount unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EmbeddedWalletAccount: - """Test EmbeddedWalletAccount - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EmbeddedWalletAccount` - """ - model = EmbeddedWalletAccount() - if include_optional: - return EmbeddedWalletAccount( - account_id = '0', - wallet_id = '550e8400-e29b-41d4-a716-446655440000' - ) - else: - return EmbeddedWalletAccount( - account_id = '0', - wallet_id = '550e8400-e29b-41d4-a716-446655440000', - ) - """ - - def testEmbeddedWalletAccount(self): - """Test EmbeddedWalletAccount""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9hY2NvdW50IGltcG9ydCBFbWJlZGRlZFdhbGxldEFjY291bnQKCgpjbGFzcyBUZXN0RW1iZWRkZWRXYWxsZXRBY2NvdW50KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkVtYmVkZGVkV2FsbGV0QWNjb3VudCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRW1iZWRkZWRXYWxsZXRBY2NvdW50OgogICAgICAgICIiIlRlc3QgRW1iZWRkZWRXYWxsZXRBY2NvdW50CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEVtYmVkZGVkV2FsbGV0QWNjb3VudGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEVtYmVkZGVkV2FsbGV0QWNjb3VudCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEVtYmVkZGVkV2FsbGV0QWNjb3VudCgKICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnMCcsCiAgICAgICAgICAgICAgICB3YWxsZXRfaWQgPSAnNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAwJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEVtYmVkZGVkV2FsbGV0QWNjb3VudCgKICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnMCcsCiAgICAgICAgICAgICAgICB3YWxsZXRfaWQgPSAnNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAwJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RFbWJlZGRlZFdhbGxldEFjY291bnQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBFbWJlZGRlZFdhbGxldEFjY291bnQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_embedded_wallet_address_details.py b/test/test_embedded_wallet_address_details.py index 943b08e7..750b06eb 100644 --- a/test/test_embedded_wallet_address_details.py +++ b/test/test_embedded_wallet_address_details.py @@ -1,78 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.embedded_wallet_address_details import ( - EmbeddedWalletAddressDetails, -) - - -class TestEmbeddedWalletAddressDetails(unittest.TestCase): - """EmbeddedWalletAddressDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EmbeddedWalletAddressDetails: - """Test EmbeddedWalletAddressDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EmbeddedWalletAddressDetails` - """ - model = EmbeddedWalletAddressDetails() - if include_optional: - return EmbeddedWalletAddressDetails( - account_name = 'accountName', - account_id = 'accountIdName', - asset = 'assetName', - address = 'addressName', - address_type = 'addressType', - address_description = 'addressDescriptionName', - tag = 'tagName', - address_index = 1.337, - change = 1.337, - coin_type = 1.337, - customer_ref_id = 'customerRefIdName', - address_format = 'addressFormatName', - legacy_address = 'legacyAddressName', - payment_address = 'paymentAddressName', - user_defined = True, - state = 'stateName' - ) - else: - return EmbeddedWalletAddressDetails( - account_name = 'accountName', - account_id = 'accountIdName', - asset = 'assetName', - address = 'addressName', - address_type = 'addressType', - address_description = 'addressDescriptionName', - tag = 'tagName', - ) - """ - - def testEmbeddedWalletAddressDetails(self): - """Test EmbeddedWalletAddressDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9hZGRyZXNzX2RldGFpbHMgaW1wb3J0ICgKICAgIEVtYmVkZGVkV2FsbGV0QWRkcmVzc0RldGFpbHMsCikKCgpjbGFzcyBUZXN0RW1iZWRkZWRXYWxsZXRBZGRyZXNzRGV0YWlscyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJFbWJlZGRlZFdhbGxldEFkZHJlc3NEZXRhaWxzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBFbWJlZGRlZFdhbGxldEFkZHJlc3NEZXRhaWxzOgogICAgICAgICIiIlRlc3QgRW1iZWRkZWRXYWxsZXRBZGRyZXNzRGV0YWlscwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBFbWJlZGRlZFdhbGxldEFkZHJlc3NEZXRhaWxzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRW1iZWRkZWRXYWxsZXRBZGRyZXNzRGV0YWlscygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEVtYmVkZGVkV2FsbGV0QWRkcmVzc0RldGFpbHMoCiAgICAgICAgICAgICAgICBhY2NvdW50X25hbWUgPSAnYWNjb3VudE5hbWUnLAogICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICdhY2NvdW50SWROYW1lJywKICAgICAgICAgICAgICAgIGFzc2V0ID0gJ2Fzc2V0TmFtZScsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0gJ2FkZHJlc3NOYW1lJywKICAgICAgICAgICAgICAgIGFkZHJlc3NfdHlwZSA9ICdhZGRyZXNzVHlwZScsCiAgICAgICAgICAgICAgICBhZGRyZXNzX2Rlc2NyaXB0aW9uID0gJ2FkZHJlc3NEZXNjcmlwdGlvbk5hbWUnLAogICAgICAgICAgICAgICAgdGFnID0gJ3RhZ05hbWUnLAogICAgICAgICAgICAgICAgYWRkcmVzc19pbmRleCA9IDEuMzM3LAogICAgICAgICAgICAgICAgY2hhbmdlID0gMS4zMzcsCiAgICAgICAgICAgICAgICBjb2luX3R5cGUgPSAxLjMzNywKICAgICAgICAgICAgICAgIGN1c3RvbWVyX3JlZl9pZCA9ICdjdXN0b21lclJlZklkTmFtZScsCiAgICAgICAgICAgICAgICBhZGRyZXNzX2Zvcm1hdCA9ICdhZGRyZXNzRm9ybWF0TmFtZScsCiAgICAgICAgICAgICAgICBsZWdhY3lfYWRkcmVzcyA9ICdsZWdhY3lBZGRyZXNzTmFtZScsCiAgICAgICAgICAgICAgICBwYXltZW50X2FkZHJlc3MgPSAncGF5bWVudEFkZHJlc3NOYW1lJywKICAgICAgICAgICAgICAgIHVzZXJfZGVmaW5lZCA9IFRydWUsCiAgICAgICAgICAgICAgICBzdGF0ZSA9ICdzdGF0ZU5hbWUnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRW1iZWRkZWRXYWxsZXRBZGRyZXNzRGV0YWlscygKICAgICAgICAgICAgICAgIGFjY291bnRfbmFtZSA9ICdhY2NvdW50TmFtZScsCiAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJ2FjY291bnRJZE5hbWUnLAogICAgICAgICAgICAgICAgYXNzZXQgPSAnYXNzZXROYW1lJywKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnYWRkcmVzc05hbWUnLAogICAgICAgICAgICAgICAgYWRkcmVzc190eXBlID0gJ2FkZHJlc3NUeXBlJywKICAgICAgICAgICAgICAgIGFkZHJlc3NfZGVzY3JpcHRpb24gPSAnYWRkcmVzc0Rlc2NyaXB0aW9uTmFtZScsCiAgICAgICAgICAgICAgICB0YWcgPSAndGFnTmFtZScsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RW1iZWRkZWRXYWxsZXRBZGRyZXNzRGV0YWlscyhzZWxmKToKICAgICAgICAiIiJUZXN0IEVtYmVkZGVkV2FsbGV0QWRkcmVzc0RldGFpbHMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_embedded_wallet_algoritm.py b/test/test_embedded_wallet_algoritm.py index 39effea8..4c6992fb 100644 --- a/test/test_embedded_wallet_algoritm.py +++ b/test/test_embedded_wallet_algoritm.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.embedded_wallet_algoritm import EmbeddedWalletAlgoritm - - -class TestEmbeddedWalletAlgoritm(unittest.TestCase): - """EmbeddedWalletAlgoritm unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EmbeddedWalletAlgoritm: - """Test EmbeddedWalletAlgoritm - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EmbeddedWalletAlgoritm` - """ - model = EmbeddedWalletAlgoritm() - if include_optional: - return EmbeddedWalletAlgoritm( - algorithm = 'MPC_EDDSA_ED25519' - ) - else: - return EmbeddedWalletAlgoritm( - algorithm = 'MPC_EDDSA_ED25519', - ) - """ - - def testEmbeddedWalletAlgoritm(self): - """Test EmbeddedWalletAlgoritm""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9hbGdvcml0bSBpbXBvcnQgRW1iZWRkZWRXYWxsZXRBbGdvcml0bQoKCmNsYXNzIFRlc3RFbWJlZGRlZFdhbGxldEFsZ29yaXRtKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkVtYmVkZGVkV2FsbGV0QWxnb3JpdG0gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEVtYmVkZGVkV2FsbGV0QWxnb3JpdG06CiAgICAgICAgIiIiVGVzdCBFbWJlZGRlZFdhbGxldEFsZ29yaXRtCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEVtYmVkZGVkV2FsbGV0QWxnb3JpdG1gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBFbWJlZGRlZFdhbGxldEFsZ29yaXRtKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRW1iZWRkZWRXYWxsZXRBbGdvcml0bSgKICAgICAgICAgICAgICAgIGFsZ29yaXRobSA9ICdNUENfRUREU0FfRUQyNTUxOScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBFbWJlZGRlZFdhbGxldEFsZ29yaXRtKAogICAgICAgICAgICAgICAgYWxnb3JpdGhtID0gJ01QQ19FRERTQV9FRDI1NTE5JywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RFbWJlZGRlZFdhbGxldEFsZ29yaXRtKHNlbGYpOgogICAgICAgICIiIlRlc3QgRW1iZWRkZWRXYWxsZXRBbGdvcml0bSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_embedded_wallet_asset_balance.py b/test/test_embedded_wallet_asset_balance.py index b0453071..208dd801 100644 --- a/test/test_embedded_wallet_asset_balance.py +++ b/test/test_embedded_wallet_asset_balance.py @@ -1,69 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.embedded_wallet_asset_balance import EmbeddedWalletAssetBalance - - -class TestEmbeddedWalletAssetBalance(unittest.TestCase): - """EmbeddedWalletAssetBalance unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EmbeddedWalletAssetBalance: - """Test EmbeddedWalletAssetBalance - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EmbeddedWalletAssetBalance` - """ - model = EmbeddedWalletAssetBalance() - if include_optional: - return EmbeddedWalletAssetBalance( - id = 'BTC-mainnet-acc-01', - total = '0.87500000', - available = '0.84500000', - pending = '0.01500000', - frozen = '0.00500000', - locked_amount = '0.01000000', - block_height = '8459341', - block_hash = '0000000000000000000769e73a0b8f32a6c5d55e0d64f9ec20c6c3d4e5a9a3f1', - reward_info = fireblocks.models.embedded_wallet_asset_reward_info.EmbeddedWalletAssetRewardInfo( - pending_rewards = '5', ) - ) - else: - return EmbeddedWalletAssetBalance( - id = 'BTC-mainnet-acc-01', - total = '0.87500000', - available = '0.84500000', - pending = '0.01500000', - frozen = '0.00500000', - locked_amount = '0.01000000', - ) - """ - - def testEmbeddedWalletAssetBalance(self): - """Test EmbeddedWalletAssetBalance""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9hc3NldF9iYWxhbmNlIGltcG9ydCBFbWJlZGRlZFdhbGxldEFzc2V0QmFsYW5jZQoKCmNsYXNzIFRlc3RFbWJlZGRlZFdhbGxldEFzc2V0QmFsYW5jZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJFbWJlZGRlZFdhbGxldEFzc2V0QmFsYW5jZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRW1iZWRkZWRXYWxsZXRBc3NldEJhbGFuY2U6CiAgICAgICAgIiIiVGVzdCBFbWJlZGRlZFdhbGxldEFzc2V0QmFsYW5jZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBFbWJlZGRlZFdhbGxldEFzc2V0QmFsYW5jZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEVtYmVkZGVkV2FsbGV0QXNzZXRCYWxhbmNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRW1iZWRkZWRXYWxsZXRBc3NldEJhbGFuY2UoCiAgICAgICAgICAgICAgICBpZCA9ICdCVEMtbWFpbm5ldC1hY2MtMDEnLAogICAgICAgICAgICAgICAgdG90YWwgPSAnMC44NzUwMDAwMCcsCiAgICAgICAgICAgICAgICBhdmFpbGFibGUgPSAnMC44NDUwMDAwMCcsCiAgICAgICAgICAgICAgICBwZW5kaW5nID0gJzAuMDE1MDAwMDAnLAogICAgICAgICAgICAgICAgZnJvemVuID0gJzAuMDA1MDAwMDAnLAogICAgICAgICAgICAgICAgbG9ja2VkX2Ftb3VudCA9ICcwLjAxMDAwMDAwJywKICAgICAgICAgICAgICAgIGJsb2NrX2hlaWdodCA9ICc4NDU5MzQxJywKICAgICAgICAgICAgICAgIGJsb2NrX2hhc2ggPSAnMDAwMDAwMDAwMDAwMDAwMDAwMDc2OWU3M2EwYjhmMzJhNmM1ZDU1ZTBkNjRmOWVjMjBjNmMzZDRlNWE5YTNmMScsCiAgICAgICAgICAgICAgICByZXdhcmRfaW5mbyA9IGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9hc3NldF9yZXdhcmRfaW5mby5FbWJlZGRlZFdhbGxldEFzc2V0UmV3YXJkSW5mbygKICAgICAgICAgICAgICAgICAgICBwZW5kaW5nX3Jld2FyZHMgPSAnNScsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBFbWJlZGRlZFdhbGxldEFzc2V0QmFsYW5jZSgKICAgICAgICAgICAgICAgIGlkID0gJ0JUQy1tYWlubmV0LWFjYy0wMScsCiAgICAgICAgICAgICAgICB0b3RhbCA9ICcwLjg3NTAwMDAwJywKICAgICAgICAgICAgICAgIGF2YWlsYWJsZSA9ICcwLjg0NTAwMDAwJywKICAgICAgICAgICAgICAgIHBlbmRpbmcgPSAnMC4wMTUwMDAwMCcsCiAgICAgICAgICAgICAgICBmcm96ZW4gPSAnMC4wMDUwMDAwMCcsCiAgICAgICAgICAgICAgICBsb2NrZWRfYW1vdW50ID0gJzAuMDEwMDAwMDAnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEVtYmVkZGVkV2FsbGV0QXNzZXRCYWxhbmNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgRW1iZWRkZWRXYWxsZXRBc3NldEJhbGFuY2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_embedded_wallet_asset_response.py b/test/test_embedded_wallet_asset_response.py index bf434298..f525a21b 100644 --- a/test/test_embedded_wallet_asset_response.py +++ b/test/test_embedded_wallet_asset_response.py @@ -1,80 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.embedded_wallet_asset_response import EmbeddedWalletAssetResponse - - -class TestEmbeddedWalletAssetResponse(unittest.TestCase): - """EmbeddedWalletAssetResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EmbeddedWalletAssetResponse: - """Test EmbeddedWalletAssetResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EmbeddedWalletAssetResponse` - """ - model = EmbeddedWalletAssetResponse() - if include_optional: - return EmbeddedWalletAssetResponse( - id = '', - symbol = 'USDT', - name = 'Tether USD', - decimals = 6, - network_protocol = 'ETH', - testnet = True, - has_fee = True, - base_asset = 'ETH_TEST5', - eth_network = '', - eth_contract_address = '', - issuer_address = 'rnDV4JiwgRNhudPY2sm65AzECpRXaasL4r', - blockchain_symbol = 'BTH', - deprecated = False, - coin_type = 0, - blockchain = 'ETH_TEST5', - blockchain_display_name = 'BTH', - algorithm = 'MPC_ECDSA_SECP256K1' - ) - else: - return EmbeddedWalletAssetResponse( - id = '', - symbol = 'USDT', - name = 'Tether USD', - decimals = 6, - network_protocol = 'ETH', - testnet = True, - has_fee = True, - base_asset = 'ETH_TEST5', - coin_type = 0, - blockchain = 'ETH_TEST5', - ) - """ - - def testEmbeddedWalletAssetResponse(self): - """Test EmbeddedWalletAssetResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9hc3NldF9yZXNwb25zZSBpbXBvcnQgRW1iZWRkZWRXYWxsZXRBc3NldFJlc3BvbnNlCgoKY2xhc3MgVGVzdEVtYmVkZGVkV2FsbGV0QXNzZXRSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJFbWJlZGRlZFdhbGxldEFzc2V0UmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEVtYmVkZGVkV2FsbGV0QXNzZXRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEVtYmVkZGVkV2FsbGV0QXNzZXRSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBFbWJlZGRlZFdhbGxldEFzc2V0UmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBFbWJlZGRlZFdhbGxldEFzc2V0UmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBFbWJlZGRlZFdhbGxldEFzc2V0UmVzcG9uc2UoCiAgICAgICAgICAgICAgICBpZCA9ICcnLAogICAgICAgICAgICAgICAgc3ltYm9sID0gJ1VTRFQnLAogICAgICAgICAgICAgICAgbmFtZSA9ICdUZXRoZXIgVVNEJywKICAgICAgICAgICAgICAgIGRlY2ltYWxzID0gNiwKICAgICAgICAgICAgICAgIG5ldHdvcmtfcHJvdG9jb2wgPSAnRVRIJywKICAgICAgICAgICAgICAgIHRlc3RuZXQgPSBUcnVlLAogICAgICAgICAgICAgICAgaGFzX2ZlZSA9IFRydWUsCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gJ0VUSF9URVNUNScsCiAgICAgICAgICAgICAgICBldGhfbmV0d29yayA9ICcnLAogICAgICAgICAgICAgICAgZXRoX2NvbnRyYWN0X2FkZHJlc3MgPSAnJywKICAgICAgICAgICAgICAgIGlzc3Vlcl9hZGRyZXNzID0gJ3JuRFY0Sml3Z1JOaHVkUFkyc202NUF6RUNwUlhhYXNMNHInLAogICAgICAgICAgICAgICAgYmxvY2tjaGFpbl9zeW1ib2wgPSAnQlRIJywKICAgICAgICAgICAgICAgIGRlcHJlY2F0ZWQgPSBGYWxzZSwKICAgICAgICAgICAgICAgIGNvaW5fdHlwZSA9IDAsCiAgICAgICAgICAgICAgICBibG9ja2NoYWluID0gJ0VUSF9URVNUNScsCiAgICAgICAgICAgICAgICBibG9ja2NoYWluX2Rpc3BsYXlfbmFtZSA9ICdCVEgnLAogICAgICAgICAgICAgICAgYWxnb3JpdGhtID0gJ01QQ19FQ0RTQV9TRUNQMjU2SzEnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRW1iZWRkZWRXYWxsZXRBc3NldFJlc3BvbnNlKAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIHN5bWJvbCA9ICdVU0RUJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnVGV0aGVyIFVTRCcsCiAgICAgICAgICAgICAgICBkZWNpbWFscyA9IDYsCiAgICAgICAgICAgICAgICBuZXR3b3JrX3Byb3RvY29sID0gJ0VUSCcsCiAgICAgICAgICAgICAgICB0ZXN0bmV0ID0gVHJ1ZSwKICAgICAgICAgICAgICAgIGhhc19mZWUgPSBUcnVlLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldCA9ICdFVEhfVEVTVDUnLAogICAgICAgICAgICAgICAgY29pbl90eXBlID0gMCwKICAgICAgICAgICAgICAgIGJsb2NrY2hhaW4gPSAnRVRIX1RFU1Q1JywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RFbWJlZGRlZFdhbGxldEFzc2V0UmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBFbWJlZGRlZFdhbGxldEFzc2V0UmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_embedded_wallet_asset_reward_info.py b/test/test_embedded_wallet_asset_reward_info.py index 2cb56b1e..72eb9532 100644 --- a/test/test_embedded_wallet_asset_reward_info.py +++ b/test/test_embedded_wallet_asset_reward_info.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.embedded_wallet_asset_reward_info import ( - EmbeddedWalletAssetRewardInfo, -) - - -class TestEmbeddedWalletAssetRewardInfo(unittest.TestCase): - """EmbeddedWalletAssetRewardInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EmbeddedWalletAssetRewardInfo: - """Test EmbeddedWalletAssetRewardInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EmbeddedWalletAssetRewardInfo` - """ - model = EmbeddedWalletAssetRewardInfo() - if include_optional: - return EmbeddedWalletAssetRewardInfo( - pending_rewards = '5' - ) - else: - return EmbeddedWalletAssetRewardInfo( - pending_rewards = '5', - ) - """ - - def testEmbeddedWalletAssetRewardInfo(self): - """Test EmbeddedWalletAssetRewardInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9hc3NldF9yZXdhcmRfaW5mbyBpbXBvcnQgKAogICAgRW1iZWRkZWRXYWxsZXRBc3NldFJld2FyZEluZm8sCikKCgpjbGFzcyBUZXN0RW1iZWRkZWRXYWxsZXRBc3NldFJld2FyZEluZm8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRW1iZWRkZWRXYWxsZXRBc3NldFJld2FyZEluZm8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEVtYmVkZGVkV2FsbGV0QXNzZXRSZXdhcmRJbmZvOgogICAgICAgICIiIlRlc3QgRW1iZWRkZWRXYWxsZXRBc3NldFJld2FyZEluZm8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRW1iZWRkZWRXYWxsZXRBc3NldFJld2FyZEluZm9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBFbWJlZGRlZFdhbGxldEFzc2V0UmV3YXJkSW5mbygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEVtYmVkZGVkV2FsbGV0QXNzZXRSZXdhcmRJbmZvKAogICAgICAgICAgICAgICAgcGVuZGluZ19yZXdhcmRzID0gJzUnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRW1iZWRkZWRXYWxsZXRBc3NldFJld2FyZEluZm8oCiAgICAgICAgICAgICAgICBwZW5kaW5nX3Jld2FyZHMgPSAnNScsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RW1iZWRkZWRXYWxsZXRBc3NldFJld2FyZEluZm8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBFbWJlZGRlZFdhbGxldEFzc2V0UmV3YXJkSW5mbyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_embedded_wallet_device.py b/test/test_embedded_wallet_device.py index 4efaa0c2..d7c963cf 100644 --- a/test/test_embedded_wallet_device.py +++ b/test/test_embedded_wallet_device.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.embedded_wallet_device import EmbeddedWalletDevice - - -class TestEmbeddedWalletDevice(unittest.TestCase): - """EmbeddedWalletDevice unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EmbeddedWalletDevice: - """Test EmbeddedWalletDevice - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EmbeddedWalletDevice` - """ - model = EmbeddedWalletDevice() - if include_optional: - return EmbeddedWalletDevice( - device_id = 'deviceIdValue', - enabled = True, - physical_device_id = 'physicalDeviceIdValue' - ) - else: - return EmbeddedWalletDevice( - device_id = 'deviceIdValue', - enabled = True, - physical_device_id = 'physicalDeviceIdValue', - ) - """ - - def testEmbeddedWalletDevice(self): - """Test EmbeddedWalletDevice""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9kZXZpY2UgaW1wb3J0IEVtYmVkZGVkV2FsbGV0RGV2aWNlCgoKY2xhc3MgVGVzdEVtYmVkZGVkV2FsbGV0RGV2aWNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkVtYmVkZGVkV2FsbGV0RGV2aWNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBFbWJlZGRlZFdhbGxldERldmljZToKICAgICAgICAiIiJUZXN0IEVtYmVkZGVkV2FsbGV0RGV2aWNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEVtYmVkZGVkV2FsbGV0RGV2aWNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRW1iZWRkZWRXYWxsZXREZXZpY2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBFbWJlZGRlZFdhbGxldERldmljZSgKICAgICAgICAgICAgICAgIGRldmljZV9pZCA9ICdkZXZpY2VJZFZhbHVlJywKICAgICAgICAgICAgICAgIGVuYWJsZWQgPSBUcnVlLAogICAgICAgICAgICAgICAgcGh5c2ljYWxfZGV2aWNlX2lkID0gJ3BoeXNpY2FsRGV2aWNlSWRWYWx1ZScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBFbWJlZGRlZFdhbGxldERldmljZSgKICAgICAgICAgICAgICAgIGRldmljZV9pZCA9ICdkZXZpY2VJZFZhbHVlJywKICAgICAgICAgICAgICAgIGVuYWJsZWQgPSBUcnVlLAogICAgICAgICAgICAgICAgcGh5c2ljYWxfZGV2aWNlX2lkID0gJ3BoeXNpY2FsRGV2aWNlSWRWYWx1ZScsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RW1iZWRkZWRXYWxsZXREZXZpY2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBFbWJlZGRlZFdhbGxldERldmljZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_embedded_wallet_device_key_setup_response.py b/test/test_embedded_wallet_device_key_setup_response.py index 594753f4..676bc234 100644 --- a/test/test_embedded_wallet_device_key_setup_response.py +++ b/test/test_embedded_wallet_device_key_setup_response.py @@ -1,65 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.embedded_wallet_device_key_setup_response import ( - EmbeddedWalletDeviceKeySetupResponse, -) - - -class TestEmbeddedWalletDeviceKeySetupResponse(unittest.TestCase): - """EmbeddedWalletDeviceKeySetupResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EmbeddedWalletDeviceKeySetupResponse: - """Test EmbeddedWalletDeviceKeySetupResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EmbeddedWalletDeviceKeySetupResponse` - """ - model = EmbeddedWalletDeviceKeySetupResponse() - if include_optional: - return EmbeddedWalletDeviceKeySetupResponse( - status = fireblocks.models.embedded_wallet_set_up_status.EmbeddedWalletSetUpStatus( - status = 'COMPLETE', ), - device_id = 'deviceIdValue', - enabled = True, - setup_status = [{"setupStatus":"setupStatusValue","confirmed":true,"backedUp":true}] - ) - else: - return EmbeddedWalletDeviceKeySetupResponse( - status = fireblocks.models.embedded_wallet_set_up_status.EmbeddedWalletSetUpStatus( - status = 'COMPLETE', ), - device_id = 'deviceIdValue', - enabled = True, - setup_status = [{"setupStatus":"setupStatusValue","confirmed":true,"backedUp":true}], - ) - """ - - def testEmbeddedWalletDeviceKeySetupResponse(self): - """Test EmbeddedWalletDeviceKeySetupResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9kZXZpY2Vfa2V5X3NldHVwX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBFbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0RW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkVtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEVtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEVtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEVtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZSgKICAgICAgICAgICAgICAgIHN0YXR1cyA9IGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9zZXRfdXBfc3RhdHVzLkVtYmVkZGVkV2FsbGV0U2V0VXBTdGF0dXMoCiAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ0NPTVBMRVRFJywgKSwKICAgICAgICAgICAgICAgIGRldmljZV9pZCA9ICdkZXZpY2VJZFZhbHVlJywKICAgICAgICAgICAgICAgIGVuYWJsZWQgPSBUcnVlLAogICAgICAgICAgICAgICAgc2V0dXBfc3RhdHVzID0gW3sic2V0dXBTdGF0dXMiOiJzZXR1cFN0YXR1c1ZhbHVlIiwiY29uZmlybWVkIjp0cnVlLCJiYWNrZWRVcCI6dHJ1ZX1dCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlKAogICAgICAgICAgICAgICAgc3RhdHVzID0gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X3NldF91cF9zdGF0dXMuRW1iZWRkZWRXYWxsZXRTZXRVcFN0YXR1cygKICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEUnLCApLAogICAgICAgICAgICAgICAgZGV2aWNlX2lkID0gJ2RldmljZUlkVmFsdWUnLAogICAgICAgICAgICAgICAgZW5hYmxlZCA9IFRydWUsCiAgICAgICAgICAgICAgICBzZXR1cF9zdGF0dXMgPSBbeyJzZXR1cFN0YXR1cyI6InNldHVwU3RhdHVzVmFsdWUiLCJjb25maXJtZWQiOnRydWUsImJhY2tlZFVwIjp0cnVlfV0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_embedded_wallet_device_key_setup_response_setup_status_inner.py b/test/test_embedded_wallet_device_key_setup_response_setup_status_inner.py index 2b4d731f..a13a6f24 100644 --- a/test/test_embedded_wallet_device_key_setup_response_setup_status_inner.py +++ b/test/test_embedded_wallet_device_key_setup_response_setup_status_inner.py @@ -1,65 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.embedded_wallet_device_key_setup_response_setup_status_inner import ( - EmbeddedWalletDeviceKeySetupResponseSetupStatusInner, -) - - -class TestEmbeddedWalletDeviceKeySetupResponseSetupStatusInner(unittest.TestCase): - """EmbeddedWalletDeviceKeySetupResponseSetupStatusInner unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> EmbeddedWalletDeviceKeySetupResponseSetupStatusInner: - """Test EmbeddedWalletDeviceKeySetupResponseSetupStatusInner - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EmbeddedWalletDeviceKeySetupResponseSetupStatusInner` - """ - model = EmbeddedWalletDeviceKeySetupResponseSetupStatusInner() - if include_optional: - return EmbeddedWalletDeviceKeySetupResponseSetupStatusInner( - algorithm_name = fireblocks.models.embedded_wallet_algoritm.EmbeddedWalletAlgoritm( - algorithm = 'MPC_EDDSA_ED25519', ), - confirmed = True, - backed_up = True - ) - else: - return EmbeddedWalletDeviceKeySetupResponseSetupStatusInner( - algorithm_name = fireblocks.models.embedded_wallet_algoritm.EmbeddedWalletAlgoritm( - algorithm = 'MPC_EDDSA_ED25519', ), - confirmed = True, - backed_up = True, - ) - """ - - def testEmbeddedWalletDeviceKeySetupResponseSetupStatusInner(self): - """Test EmbeddedWalletDeviceKeySetupResponseSetupStatusInner""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9kZXZpY2Vfa2V5X3NldHVwX3Jlc3BvbnNlX3NldHVwX3N0YXR1c19pbm5lciBpbXBvcnQgKAogICAgRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlU2V0dXBTdGF0dXNJbm5lciwKKQoKCmNsYXNzIFRlc3RFbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2VTZXR1cFN0YXR1c0lubmVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkVtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZVNldHVwU3RhdHVzSW5uZXIgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKAogICAgICAgIHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwKICAgICkgLT4gRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlU2V0dXBTdGF0dXNJbm5lcjoKICAgICAgICAiIiJUZXN0IEVtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZVNldHVwU3RhdHVzSW5uZXIKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlU2V0dXBTdGF0dXNJbm5lcmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEVtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZVNldHVwU3RhdHVzSW5uZXIoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBFbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2VTZXR1cFN0YXR1c0lubmVyKAogICAgICAgICAgICAgICAgYWxnb3JpdGhtX25hbWUgPSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfYWxnb3JpdG0uRW1iZWRkZWRXYWxsZXRBbGdvcml0bSgKICAgICAgICAgICAgICAgICAgICBhbGdvcml0aG0gPSAnTVBDX0VERFNBX0VEMjU1MTknLCApLAogICAgICAgICAgICAgICAgY29uZmlybWVkID0gVHJ1ZSwKICAgICAgICAgICAgICAgIGJhY2tlZF91cCA9IFRydWUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBFbWJlZGRlZFdhbGxldERldmljZUtleVNldHVwUmVzcG9uc2VTZXR1cFN0YXR1c0lubmVyKAogICAgICAgICAgICAgICAgYWxnb3JpdGhtX25hbWUgPSBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfYWxnb3JpdG0uRW1iZWRkZWRXYWxsZXRBbGdvcml0bSgKICAgICAgICAgICAgICAgICAgICBhbGdvcml0aG0gPSAnTVBDX0VERFNBX0VEMjU1MTknLCApLAogICAgICAgICAgICAgICAgY29uZmlybWVkID0gVHJ1ZSwKICAgICAgICAgICAgICAgIGJhY2tlZF91cCA9IFRydWUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RW1iZWRkZWRXYWxsZXREZXZpY2VLZXlTZXR1cFJlc3BvbnNlU2V0dXBTdGF0dXNJbm5lcihzZWxmKToKICAgICAgICAiIiJUZXN0IEVtYmVkZGVkV2FsbGV0RGV2aWNlS2V5U2V0dXBSZXNwb25zZVNldHVwU3RhdHVzSW5uZXIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_embedded_wallet_latest_backup_key.py b/test/test_embedded_wallet_latest_backup_key.py index 4cedad3e..f37d9c01 100644 --- a/test/test_embedded_wallet_latest_backup_key.py +++ b/test/test_embedded_wallet_latest_backup_key.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.embedded_wallet_latest_backup_key import ( - EmbeddedWalletLatestBackupKey, -) - - -class TestEmbeddedWalletLatestBackupKey(unittest.TestCase): - """EmbeddedWalletLatestBackupKey unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EmbeddedWalletLatestBackupKey: - """Test EmbeddedWalletLatestBackupKey - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EmbeddedWalletLatestBackupKey` - """ - model = EmbeddedWalletLatestBackupKey() - if include_optional: - return EmbeddedWalletLatestBackupKey( - device_id = 'deviceIdValue', - public_key = 'publicKeyValue', - key_id = 'keyIdValue', - algorithm = 'algorithm' - ) - else: - return EmbeddedWalletLatestBackupKey( - device_id = 'deviceIdValue', - public_key = 'publicKeyValue', - key_id = 'keyIdValue', - algorithm = 'algorithm', - ) - """ - - def testEmbeddedWalletLatestBackupKey(self): - """Test EmbeddedWalletLatestBackupKey""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9sYXRlc3RfYmFja3VwX2tleSBpbXBvcnQgKAogICAgRW1iZWRkZWRXYWxsZXRMYXRlc3RCYWNrdXBLZXksCikKCgpjbGFzcyBUZXN0RW1iZWRkZWRXYWxsZXRMYXRlc3RCYWNrdXBLZXkodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRW1iZWRkZWRXYWxsZXRMYXRlc3RCYWNrdXBLZXkgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEVtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwS2V5OgogICAgICAgICIiIlRlc3QgRW1iZWRkZWRXYWxsZXRMYXRlc3RCYWNrdXBLZXkKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRW1iZWRkZWRXYWxsZXRMYXRlc3RCYWNrdXBLZXlgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBFbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cEtleSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEVtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwS2V5KAogICAgICAgICAgICAgICAgZGV2aWNlX2lkID0gJ2RldmljZUlkVmFsdWUnLAogICAgICAgICAgICAgICAgcHVibGljX2tleSA9ICdwdWJsaWNLZXlWYWx1ZScsCiAgICAgICAgICAgICAgICBrZXlfaWQgPSAna2V5SWRWYWx1ZScsCiAgICAgICAgICAgICAgICBhbGdvcml0aG0gPSAnYWxnb3JpdGhtJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEVtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwS2V5KAogICAgICAgICAgICAgICAgZGV2aWNlX2lkID0gJ2RldmljZUlkVmFsdWUnLAogICAgICAgICAgICAgICAgcHVibGljX2tleSA9ICdwdWJsaWNLZXlWYWx1ZScsCiAgICAgICAgICAgICAgICBrZXlfaWQgPSAna2V5SWRWYWx1ZScsCiAgICAgICAgICAgICAgICBhbGdvcml0aG0gPSAnYWxnb3JpdGhtJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RFbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cEtleShzZWxmKToKICAgICAgICAiIiJUZXN0IEVtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwS2V5IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_embedded_wallet_latest_backup_response.py b/test/test_embedded_wallet_latest_backup_response.py index 5220a26c..e6a4e052 100644 --- a/test/test_embedded_wallet_latest_backup_response.py +++ b/test/test_embedded_wallet_latest_backup_response.py @@ -1,73 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.embedded_wallet_latest_backup_response import ( - EmbeddedWalletLatestBackupResponse, -) - - -class TestEmbeddedWalletLatestBackupResponse(unittest.TestCase): - """EmbeddedWalletLatestBackupResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EmbeddedWalletLatestBackupResponse: - """Test EmbeddedWalletLatestBackupResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EmbeddedWalletLatestBackupResponse` - """ - model = EmbeddedWalletLatestBackupResponse() - if include_optional: - return EmbeddedWalletLatestBackupResponse( - passphrase_id = 'passphraseId', - created_at = 1713789296, - keys = [ - fireblocks.models.embedded_wallet_latest_backup_key.EmbeddedWalletLatestBackupKey( - device_id = 'deviceIdValue', - public_key = 'publicKeyValue', - key_id = 'keyIdValue', - algorithm = 'algorithm', ) - ] - ) - else: - return EmbeddedWalletLatestBackupResponse( - passphrase_id = 'passphraseId', - created_at = 1713789296, - keys = [ - fireblocks.models.embedded_wallet_latest_backup_key.EmbeddedWalletLatestBackupKey( - device_id = 'deviceIdValue', - public_key = 'publicKeyValue', - key_id = 'keyIdValue', - algorithm = 'algorithm', ) - ], - ) - """ - - def testEmbeddedWalletLatestBackupResponse(self): - """Test EmbeddedWalletLatestBackupResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9sYXRlc3RfYmFja3VwX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBFbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cFJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdEVtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRW1iZWRkZWRXYWxsZXRMYXRlc3RCYWNrdXBSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRW1iZWRkZWRXYWxsZXRMYXRlc3RCYWNrdXBSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEVtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRW1iZWRkZWRXYWxsZXRMYXRlc3RCYWNrdXBSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEVtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBFbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cFJlc3BvbnNlKAogICAgICAgICAgICAgICAgcGFzc3BocmFzZV9pZCA9ICdwYXNzcGhyYXNlSWQnLAogICAgICAgICAgICAgICAgY3JlYXRlZF9hdCA9IDE3MTM3ODkyOTYsCiAgICAgICAgICAgICAgICBrZXlzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9sYXRlc3RfYmFja3VwX2tleS5FbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cEtleSgKICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlX2lkID0gJ2RldmljZUlkVmFsdWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljX2tleSA9ICdwdWJsaWNLZXlWYWx1ZScsIAogICAgICAgICAgICAgICAgICAgICAgICBrZXlfaWQgPSAna2V5SWRWYWx1ZScsIAogICAgICAgICAgICAgICAgICAgICAgICBhbGdvcml0aG0gPSAnYWxnb3JpdGhtJywgKQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBFbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cFJlc3BvbnNlKAogICAgICAgICAgICAgICAgcGFzc3BocmFzZV9pZCA9ICdwYXNzcGhyYXNlSWQnLAogICAgICAgICAgICAgICAgY3JlYXRlZF9hdCA9IDE3MTM3ODkyOTYsCiAgICAgICAgICAgICAgICBrZXlzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9sYXRlc3RfYmFja3VwX2tleS5FbWJlZGRlZFdhbGxldExhdGVzdEJhY2t1cEtleSgKICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlX2lkID0gJ2RldmljZUlkVmFsdWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljX2tleSA9ICdwdWJsaWNLZXlWYWx1ZScsIAogICAgICAgICAgICAgICAgICAgICAgICBrZXlfaWQgPSAna2V5SWRWYWx1ZScsIAogICAgICAgICAgICAgICAgICAgICAgICBhbGdvcml0aG0gPSAnYWxnb3JpdGhtJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RW1iZWRkZWRXYWxsZXRMYXRlc3RCYWNrdXBSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IEVtYmVkZGVkV2FsbGV0TGF0ZXN0QmFja3VwUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_embedded_wallet_paginated_addresses_response.py b/test/test_embedded_wallet_paginated_addresses_response.py index e2c5c126..28b120c2 100644 --- a/test/test_embedded_wallet_paginated_addresses_response.py +++ b/test/test_embedded_wallet_paginated_addresses_response.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.embedded_wallet_paginated_addresses_response import ( - EmbeddedWalletPaginatedAddressesResponse, -) - - -class TestEmbeddedWalletPaginatedAddressesResponse(unittest.TestCase): - """EmbeddedWalletPaginatedAddressesResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> EmbeddedWalletPaginatedAddressesResponse: - """Test EmbeddedWalletPaginatedAddressesResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EmbeddedWalletPaginatedAddressesResponse` - """ - model = EmbeddedWalletPaginatedAddressesResponse() - if include_optional: - return EmbeddedWalletPaginatedAddressesResponse( - data = [ - fireblocks.models.embedded_wallet_address_details.EmbeddedWalletAddressDetails( - account_name = 'accountName', - account_id = 'accountIdName', - asset = 'assetName', - address = 'addressName', - address_type = 'addressType', - address_description = 'addressDescriptionName', - tag = 'tagName', - address_index = 1.337, - change = 1.337, - coin_type = 1.337, - customer_ref_id = 'customerRefIdName', - address_format = 'addressFormatName', - legacy_address = 'legacyAddressName', - payment_address = 'paymentAddressName', - user_defined = True, - state = 'stateName', ) - ], - next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9' - ) - else: - return EmbeddedWalletPaginatedAddressesResponse( - data = [ - fireblocks.models.embedded_wallet_address_details.EmbeddedWalletAddressDetails( - account_name = 'accountName', - account_id = 'accountIdName', - asset = 'assetName', - address = 'addressName', - address_type = 'addressType', - address_description = 'addressDescriptionName', - tag = 'tagName', - address_index = 1.337, - change = 1.337, - coin_type = 1.337, - customer_ref_id = 'customerRefIdName', - address_format = 'addressFormatName', - legacy_address = 'legacyAddressName', - payment_address = 'paymentAddressName', - user_defined = True, - state = 'stateName', ) - ], - ) - """ - - def testEmbeddedWalletPaginatedAddressesResponse(self): - """Test EmbeddedWalletPaginatedAddressesResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9wYWdpbmF0ZWRfYWRkcmVzc2VzX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFkZHJlc3Nlc1Jlc3BvbnNlLAopCgoKY2xhc3MgVGVzdEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkQWRkcmVzc2VzUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBZGRyZXNzZXNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2UoCiAgICAgICAgc2VsZiwgaW5jbHVkZV9vcHRpb25hbAogICAgKSAtPiBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFkZHJlc3Nlc1Jlc3BvbnNlOgogICAgICAgICIiIlRlc3QgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBZGRyZXNzZXNSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFkZHJlc3Nlc1Jlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBZGRyZXNzZXNSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkQWRkcmVzc2VzUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9hZGRyZXNzX2RldGFpbHMuRW1iZWRkZWRXYWxsZXRBZGRyZXNzRGV0YWlscygKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9uYW1lID0gJ2FjY291bnROYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnYWNjb3VudElkTmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldCA9ICdhc3NldE5hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9ICdhZGRyZXNzTmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX3R5cGUgPSAnYWRkcmVzc1R5cGUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19kZXNjcmlwdGlvbiA9ICdhZGRyZXNzRGVzY3JpcHRpb25OYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRhZyA9ICd0YWdOYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfaW5kZXggPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZSA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgY29pbl90eXBlID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9yZWZfaWQgPSAnY3VzdG9tZXJSZWZJZE5hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19mb3JtYXQgPSAnYWRkcmVzc0Zvcm1hdE5hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbGVnYWN5X2FkZHJlc3MgPSAnbGVnYWN5QWRkcmVzc05hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcGF5bWVudF9hZGRyZXNzID0gJ3BheW1lbnRBZGRyZXNzTmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICB1c2VyX2RlZmluZWQgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAnc3RhdGVOYW1lJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBuZXh0ID0gJ2VKMGVYQWlPaUpLVjFRaUxDSmhiR2NPaUpJVXpJMU5pSjknCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBZGRyZXNzZXNSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X2FkZHJlc3NfZGV0YWlscy5FbWJlZGRlZFdhbGxldEFkZHJlc3NEZXRhaWxzKAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X25hbWUgPSAnYWNjb3VudE5hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICdhY2NvdW50SWROYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0ID0gJ2Fzc2V0TmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJ2FkZHJlc3NOYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfdHlwZSA9ICdhZGRyZXNzVHlwZScsIAogICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX2Rlc2NyaXB0aW9uID0gJ2FkZHJlc3NEZXNjcmlwdGlvbk5hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdGFnID0gJ3RhZ05hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19pbmRleCA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICBjb2luX3R5cGUgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX3JlZl9pZCA9ICdjdXN0b21lclJlZklkTmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX2Zvcm1hdCA9ICdhZGRyZXNzRm9ybWF0TmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICBsZWdhY3lfYWRkcmVzcyA9ICdsZWdhY3lBZGRyZXNzTmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICBwYXltZW50X2FkZHJlc3MgPSAncGF5bWVudEFkZHJlc3NOYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJfZGVmaW5lZCA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9ICdzdGF0ZU5hbWUnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFkZHJlc3Nlc1Jlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBZGRyZXNzZXNSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_embedded_wallet_paginated_assets_response.py b/test/test_embedded_wallet_paginated_assets_response.py index c51d009b..91fbf6de 100644 --- a/test/test_embedded_wallet_paginated_assets_response.py +++ b/test/test_embedded_wallet_paginated_assets_response.py @@ -1,96 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.embedded_wallet_paginated_assets_response import ( - EmbeddedWalletPaginatedAssetsResponse, -) - - -class TestEmbeddedWalletPaginatedAssetsResponse(unittest.TestCase): - """EmbeddedWalletPaginatedAssetsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EmbeddedWalletPaginatedAssetsResponse: - """Test EmbeddedWalletPaginatedAssetsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EmbeddedWalletPaginatedAssetsResponse` - """ - model = EmbeddedWalletPaginatedAssetsResponse() - if include_optional: - return EmbeddedWalletPaginatedAssetsResponse( - data = [ - fireblocks.models.embedded_wallet_asset_response.EmbeddedWalletAssetResponse( - id = '', - symbol = 'USDT', - name = 'Tether USD', - decimals = 6, - network_protocol = 'ETH', - testnet = True, - has_fee = True, - base_asset = 'ETH_TEST5', - eth_network = '', - eth_contract_address = '', - issuer_address = 'rnDV4JiwgRNhudPY2sm65AzECpRXaasL4r', - blockchain_symbol = 'BTH', - deprecated = False, - coin_type = 0, - blockchain = 'ETH_TEST5', - blockchain_display_name = 'BTH', - algorithm = 'MPC_ECDSA_SECP256K1', ) - ], - next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9' - ) - else: - return EmbeddedWalletPaginatedAssetsResponse( - data = [ - fireblocks.models.embedded_wallet_asset_response.EmbeddedWalletAssetResponse( - id = '', - symbol = 'USDT', - name = 'Tether USD', - decimals = 6, - network_protocol = 'ETH', - testnet = True, - has_fee = True, - base_asset = 'ETH_TEST5', - eth_network = '', - eth_contract_address = '', - issuer_address = 'rnDV4JiwgRNhudPY2sm65AzECpRXaasL4r', - blockchain_symbol = 'BTH', - deprecated = False, - coin_type = 0, - blockchain = 'ETH_TEST5', - blockchain_display_name = 'BTH', - algorithm = 'MPC_ECDSA_SECP256K1', ) - ], - ) - """ - - def testEmbeddedWalletPaginatedAssetsResponse(self): - """Test EmbeddedWalletPaginatedAssetsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9wYWdpbmF0ZWRfYXNzZXRzX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlLAopCgoKY2xhc3MgVGVzdEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkQXNzZXRzUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBc3NldHNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBc3NldHNSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkQXNzZXRzUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBc3NldHNSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkQXNzZXRzUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgZGF0YSA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfYXNzZXRfcmVzcG9uc2UuRW1iZWRkZWRXYWxsZXRBc3NldFJlc3BvbnNlKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9sID0gJ1VTRFQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdUZXRoZXIgVVNEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxzID0gNiwgCiAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtfcHJvdG9jb2wgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RuZXQgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgaGFzX2ZlZSA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gJ0VUSF9URVNUNScsIAogICAgICAgICAgICAgICAgICAgICAgICBldGhfbmV0d29yayA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXRoX2NvbnRyYWN0X2FkZHJlc3MgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGlzc3Vlcl9hZGRyZXNzID0gJ3JuRFY0Sml3Z1JOaHVkUFkyc202NUF6RUNwUlhhYXNMNHInLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tjaGFpbl9zeW1ib2wgPSAnQlRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlcHJlY2F0ZWQgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvaW5fdHlwZSA9IDAsIAogICAgICAgICAgICAgICAgICAgICAgICBibG9ja2NoYWluID0gJ0VUSF9URVNUNScsIAogICAgICAgICAgICAgICAgICAgICAgICBibG9ja2NoYWluX2Rpc3BsYXlfbmFtZSA9ICdCVEgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWxnb3JpdGhtID0gJ01QQ19FQ0RTQV9TRUNQMjU2SzEnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIG5leHQgPSAnZUowZVhBaU9pSktWMVFpTENKaGJHY09pSklVekkxTmlKOScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgZGF0YSA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXRfYXNzZXRfcmVzcG9uc2UuRW1iZWRkZWRXYWxsZXRBc3NldFJlc3BvbnNlKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9sID0gJ1VTRFQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdUZXRoZXIgVVNEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxzID0gNiwgCiAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtfcHJvdG9jb2wgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RuZXQgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgaGFzX2ZlZSA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gJ0VUSF9URVNUNScsIAogICAgICAgICAgICAgICAgICAgICAgICBldGhfbmV0d29yayA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXRoX2NvbnRyYWN0X2FkZHJlc3MgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGlzc3Vlcl9hZGRyZXNzID0gJ3JuRFY0Sml3Z1JOaHVkUFkyc202NUF6RUNwUlhhYXNMNHInLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tjaGFpbl9zeW1ib2wgPSAnQlRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlcHJlY2F0ZWQgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvaW5fdHlwZSA9IDAsIAogICAgICAgICAgICAgICAgICAgICAgICBibG9ja2NoYWluID0gJ0VUSF9URVNUNScsIAogICAgICAgICAgICAgICAgICAgICAgICBibG9ja2NoYWluX2Rpc3BsYXlfbmFtZSA9ICdCVEgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWxnb3JpdGhtID0gJ01QQ19FQ0RTQV9TRUNQMjU2SzEnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RFbWJlZGRlZFdhbGxldFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRBc3NldHNSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_embedded_wallet_paginated_devices_response.py b/test/test_embedded_wallet_paginated_devices_response.py index 602bb00d..7d7a2566 100644 --- a/test/test_embedded_wallet_paginated_devices_response.py +++ b/test/test_embedded_wallet_paginated_devices_response.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.embedded_wallet_paginated_devices_response import ( - EmbeddedWalletPaginatedDevicesResponse, -) - - -class TestEmbeddedWalletPaginatedDevicesResponse(unittest.TestCase): - """EmbeddedWalletPaginatedDevicesResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EmbeddedWalletPaginatedDevicesResponse: - """Test EmbeddedWalletPaginatedDevicesResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EmbeddedWalletPaginatedDevicesResponse` - """ - model = EmbeddedWalletPaginatedDevicesResponse() - if include_optional: - return EmbeddedWalletPaginatedDevicesResponse( - data = [{"deviceId":"9ee1bff0-6dba-4f0c-9b75-03fe90e66fa3","enabled":true,"physicalDeviceId":"ee1bff0-6dba-4f0c-9b75-03fe90e66fa3"}], - next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9' - ) - else: - return EmbeddedWalletPaginatedDevicesResponse( - data = [{"deviceId":"9ee1bff0-6dba-4f0c-9b75-03fe90e66fa3","enabled":true,"physicalDeviceId":"ee1bff0-6dba-4f0c-9b75-03fe90e66fa3"}], - ) - """ - - def testEmbeddedWalletPaginatedDevicesResponse(self): - """Test EmbeddedWalletPaginatedDevicesResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9wYWdpbmF0ZWRfZGV2aWNlc19yZXNwb25zZSBpbXBvcnQgKAogICAgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWREZXZpY2VzUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0RW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWREZXZpY2VzUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWREZXZpY2VzUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkRGV2aWNlc1Jlc3BvbnNlOgogICAgICAgICIiIlRlc3QgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWREZXZpY2VzUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWREZXZpY2VzUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZERldmljZXNSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkRGV2aWNlc1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgZGF0YSA9IFt7ImRldmljZUlkIjoiOWVlMWJmZjAtNmRiYS00ZjBjLTliNzUtMDNmZTkwZTY2ZmEzIiwiZW5hYmxlZCI6dHJ1ZSwicGh5c2ljYWxEZXZpY2VJZCI6ImVlMWJmZjAtNmRiYS00ZjBjLTliNzUtMDNmZTkwZTY2ZmEzIn1dLAogICAgICAgICAgICAgICAgbmV4dCA9ICdlSjBlWEFpT2lKS1YxUWlMQ0poYkdjT2lKSVV6STFOaUo5JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkRGV2aWNlc1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgZGF0YSA9IFt7ImRldmljZUlkIjoiOWVlMWJmZjAtNmRiYS00ZjBjLTliNzUtMDNmZTkwZTY2ZmEzIiwiZW5hYmxlZCI6dHJ1ZSwicGh5c2ljYWxEZXZpY2VJZCI6ImVlMWJmZjAtNmRiYS00ZjBjLTliNzUtMDNmZTkwZTY2ZmEzIn1dLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkRGV2aWNlc1Jlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWREZXZpY2VzUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_embedded_wallet_paginated_wallets_response.py b/test/test_embedded_wallet_paginated_wallets_response.py index fe7e82d7..7189f819 100644 --- a/test/test_embedded_wallet_paginated_wallets_response.py +++ b/test/test_embedded_wallet_paginated_wallets_response.py @@ -1,66 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.embedded_wallet_paginated_wallets_response import ( - EmbeddedWalletPaginatedWalletsResponse, -) - - -class TestEmbeddedWalletPaginatedWalletsResponse(unittest.TestCase): - """EmbeddedWalletPaginatedWalletsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EmbeddedWalletPaginatedWalletsResponse: - """Test EmbeddedWalletPaginatedWalletsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EmbeddedWalletPaginatedWalletsResponse` - """ - model = EmbeddedWalletPaginatedWalletsResponse() - if include_optional: - return EmbeddedWalletPaginatedWalletsResponse( - data = [ - fireblocks.models.embedded_wallet.EmbeddedWallet( - wallet_id = '550e8400-e29b-41d4-a716-446655440000', - enabled = True, ) - ], - next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9' - ) - else: - return EmbeddedWalletPaginatedWalletsResponse( - data = [ - fireblocks.models.embedded_wallet.EmbeddedWallet( - wallet_id = '550e8400-e29b-41d4-a716-446655440000', - enabled = True, ) - ], - ) - """ - - def testEmbeddedWalletPaginatedWalletsResponse(self): - """Test EmbeddedWalletPaginatedWalletsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9wYWdpbmF0ZWRfd2FsbGV0c19yZXNwb25zZSBpbXBvcnQgKAogICAgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRXYWxsZXRzUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0RW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRXYWxsZXRzUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRXYWxsZXRzUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkV2FsbGV0c1Jlc3BvbnNlOgogICAgICAgICIiIlRlc3QgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRXYWxsZXRzUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRXYWxsZXRzUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBFbWJlZGRlZFdhbGxldFBhZ2luYXRlZFdhbGxldHNSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkV2FsbGV0c1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgZGF0YSA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXQuRW1iZWRkZWRXYWxsZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIHdhbGxldF9pZCA9ICc1NTBlODQwMC1lMjliLTQxZDQtYTcxNi00NDY2NTU0NDAwMDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZCA9IFRydWUsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgbmV4dCA9ICdlSjBlWEFpT2lKS1YxUWlMQ0poYkdjT2lKSVV6STFOaUo5JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkV2FsbGV0c1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgZGF0YSA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5lbWJlZGRlZF93YWxsZXQuRW1iZWRkZWRXYWxsZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIHdhbGxldF9pZCA9ICc1NTBlODQwMC1lMjliLTQxZDQtYTcxNi00NDY2NTU0NDAwMDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZCA9IFRydWUsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEVtYmVkZGVkV2FsbGV0UGFnaW5hdGVkV2FsbGV0c1Jlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgRW1iZWRkZWRXYWxsZXRQYWdpbmF0ZWRXYWxsZXRzUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_embedded_wallet_required_algorithms.py b/test/test_embedded_wallet_required_algorithms.py index be7fa1df..f525be35 100644 --- a/test/test_embedded_wallet_required_algorithms.py +++ b/test/test_embedded_wallet_required_algorithms.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.embedded_wallet_required_algorithms import ( - EmbeddedWalletRequiredAlgorithms, -) - - -class TestEmbeddedWalletRequiredAlgorithms(unittest.TestCase): - """EmbeddedWalletRequiredAlgorithms unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testEmbeddedWalletRequiredAlgorithms(self): - """Test EmbeddedWalletRequiredAlgorithms""" - # inst = EmbeddedWalletRequiredAlgorithms() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9yZXF1aXJlZF9hbGdvcml0aG1zIGltcG9ydCAoCiAgICBFbWJlZGRlZFdhbGxldFJlcXVpcmVkQWxnb3JpdGhtcywKKQoKCmNsYXNzIFRlc3RFbWJlZGRlZFdhbGxldFJlcXVpcmVkQWxnb3JpdGhtcyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJFbWJlZGRlZFdhbGxldFJlcXVpcmVkQWxnb3JpdGhtcyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RFbWJlZGRlZFdhbGxldFJlcXVpcmVkQWxnb3JpdGhtcyhzZWxmKToKICAgICAgICAiIiJUZXN0IEVtYmVkZGVkV2FsbGV0UmVxdWlyZWRBbGdvcml0aG1zIiIiCiAgICAgICAgIyBpbnN0ID0gRW1iZWRkZWRXYWxsZXRSZXF1aXJlZEFsZ29yaXRobXMoKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_embedded_wallet_set_up_status.py b/test/test_embedded_wallet_set_up_status.py index 32c376ab..a053a699 100644 --- a/test/test_embedded_wallet_set_up_status.py +++ b/test/test_embedded_wallet_set_up_status.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.embedded_wallet_set_up_status import EmbeddedWalletSetUpStatus - - -class TestEmbeddedWalletSetUpStatus(unittest.TestCase): - """EmbeddedWalletSetUpStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EmbeddedWalletSetUpStatus: - """Test EmbeddedWalletSetUpStatus - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EmbeddedWalletSetUpStatus` - """ - model = EmbeddedWalletSetUpStatus() - if include_optional: - return EmbeddedWalletSetUpStatus( - status = 'COMPLETE' - ) - else: - return EmbeddedWalletSetUpStatus( - status = 'COMPLETE', - ) - """ - - def testEmbeddedWalletSetUpStatus(self): - """Test EmbeddedWalletSetUpStatus""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9zZXRfdXBfc3RhdHVzIGltcG9ydCBFbWJlZGRlZFdhbGxldFNldFVwU3RhdHVzCgoKY2xhc3MgVGVzdEVtYmVkZGVkV2FsbGV0U2V0VXBTdGF0dXModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRW1iZWRkZWRXYWxsZXRTZXRVcFN0YXR1cyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRW1iZWRkZWRXYWxsZXRTZXRVcFN0YXR1czoKICAgICAgICAiIiJUZXN0IEVtYmVkZGVkV2FsbGV0U2V0VXBTdGF0dXMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRW1iZWRkZWRXYWxsZXRTZXRVcFN0YXR1c2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEVtYmVkZGVkV2FsbGV0U2V0VXBTdGF0dXMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBFbWJlZGRlZFdhbGxldFNldFVwU3RhdHVzKAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ0NPTVBMRVRFJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEVtYmVkZGVkV2FsbGV0U2V0VXBTdGF0dXMoCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEUnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEVtYmVkZGVkV2FsbGV0U2V0VXBTdGF0dXMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBFbWJlZGRlZFdhbGxldFNldFVwU3RhdHVzIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_embedded_wallet_setup_status_response.py b/test/test_embedded_wallet_setup_status_response.py index 937e9ca2..8e6ec1b1 100644 --- a/test/test_embedded_wallet_setup_status_response.py +++ b/test/test_embedded_wallet_setup_status_response.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.embedded_wallet_setup_status_response import ( - EmbeddedWalletSetupStatusResponse, -) - - -class TestEmbeddedWalletSetupStatusResponse(unittest.TestCase): - """EmbeddedWalletSetupStatusResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EmbeddedWalletSetupStatusResponse: - """Test EmbeddedWalletSetupStatusResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EmbeddedWalletSetupStatusResponse` - """ - model = EmbeddedWalletSetupStatusResponse() - if include_optional: - return EmbeddedWalletSetupStatusResponse( - status = fireblocks.models.embedded_wallet_set_up_status.EmbeddedWalletSetUpStatus( - status = 'COMPLETE', ), - required_algorithms = ["MPC_ECDSA_SECP256K1","MPC_EDDSA_ED25519"], - device_setup_status = [{"status":{"status":"COMPLETE"},"deviceId":"9ee1bff0-6dba-4f0c-9b75-03fe90e66fa3","enabled":true,"setupStatus":[{"algorithmName":{"algorithm":"MPC_ECDSA_SECP256K1"},"confirmed":true,"backedUp":true}]}] - ) - else: - return EmbeddedWalletSetupStatusResponse( - status = fireblocks.models.embedded_wallet_set_up_status.EmbeddedWalletSetUpStatus( - status = 'COMPLETE', ), - required_algorithms = ["MPC_ECDSA_SECP256K1","MPC_EDDSA_ED25519"], - device_setup_status = [{"status":{"status":"COMPLETE"},"deviceId":"9ee1bff0-6dba-4f0c-9b75-03fe90e66fa3","enabled":true,"setupStatus":[{"algorithmName":{"algorithm":"MPC_ECDSA_SECP256K1"},"confirmed":true,"backedUp":true}]}], - ) - """ - - def testEmbeddedWalletSetupStatusResponse(self): - """Test EmbeddedWalletSetupStatusResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9zZXR1cF9zdGF0dXNfcmVzcG9uc2UgaW1wb3J0ICgKICAgIEVtYmVkZGVkV2FsbGV0U2V0dXBTdGF0dXNSZXNwb25zZSwKKQoKCmNsYXNzIFRlc3RFbWJlZGRlZFdhbGxldFNldHVwU3RhdHVzUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRW1iZWRkZWRXYWxsZXRTZXR1cFN0YXR1c1Jlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBFbWJlZGRlZFdhbGxldFNldHVwU3RhdHVzUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBFbWJlZGRlZFdhbGxldFNldHVwU3RhdHVzUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRW1iZWRkZWRXYWxsZXRTZXR1cFN0YXR1c1Jlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRW1iZWRkZWRXYWxsZXRTZXR1cFN0YXR1c1Jlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRW1iZWRkZWRXYWxsZXRTZXR1cFN0YXR1c1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgc3RhdHVzID0gZmlyZWJsb2Nrcy5tb2RlbHMuZW1iZWRkZWRfd2FsbGV0X3NldF91cF9zdGF0dXMuRW1iZWRkZWRXYWxsZXRTZXRVcFN0YXR1cygKICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEUnLCApLAogICAgICAgICAgICAgICAgcmVxdWlyZWRfYWxnb3JpdGhtcyA9IFsiTVBDX0VDRFNBX1NFQ1AyNTZLMSIsIk1QQ19FRERTQV9FRDI1NTE5Il0sCiAgICAgICAgICAgICAgICBkZXZpY2Vfc2V0dXBfc3RhdHVzID0gW3sic3RhdHVzIjp7InN0YXR1cyI6IkNPTVBMRVRFIn0sImRldmljZUlkIjoiOWVlMWJmZjAtNmRiYS00ZjBjLTliNzUtMDNmZTkwZTY2ZmEzIiwiZW5hYmxlZCI6dHJ1ZSwic2V0dXBTdGF0dXMiOlt7ImFsZ29yaXRobU5hbWUiOnsiYWxnb3JpdGhtIjoiTVBDX0VDRFNBX1NFQ1AyNTZLMSJ9LCJjb25maXJtZWQiOnRydWUsImJhY2tlZFVwIjp0cnVlfV19XQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEVtYmVkZGVkV2FsbGV0U2V0dXBTdGF0dXNSZXNwb25zZSgKICAgICAgICAgICAgICAgIHN0YXR1cyA9IGZpcmVibG9ja3MubW9kZWxzLmVtYmVkZGVkX3dhbGxldF9zZXRfdXBfc3RhdHVzLkVtYmVkZGVkV2FsbGV0U2V0VXBTdGF0dXMoCiAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ0NPTVBMRVRFJywgKSwKICAgICAgICAgICAgICAgIHJlcXVpcmVkX2FsZ29yaXRobXMgPSBbIk1QQ19FQ0RTQV9TRUNQMjU2SzEiLCJNUENfRUREU0FfRUQyNTUxOSJdLAogICAgICAgICAgICAgICAgZGV2aWNlX3NldHVwX3N0YXR1cyA9IFt7InN0YXR1cyI6eyJzdGF0dXMiOiJDT01QTEVURSJ9LCJkZXZpY2VJZCI6IjllZTFiZmYwLTZkYmEtNGYwYy05Yjc1LTAzZmU5MGU2NmZhMyIsImVuYWJsZWQiOnRydWUsInNldHVwU3RhdHVzIjpbeyJhbGdvcml0aG1OYW1lIjp7ImFsZ29yaXRobSI6Ik1QQ19FQ0RTQV9TRUNQMjU2SzEifSwiY29uZmlybWVkIjp0cnVlLCJiYWNrZWRVcCI6dHJ1ZX1dfV0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RW1iZWRkZWRXYWxsZXRTZXR1cFN0YXR1c1Jlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgRW1iZWRkZWRXYWxsZXRTZXR1cFN0YXR1c1Jlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_embedded_wallets_api.py b/test/test_embedded_wallets_api.py index d865874d..7311f3bb 100644 --- a/test/test_embedded_wallets_api.py +++ b/test/test_embedded_wallets_api.py @@ -1,186 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.embedded_wallets_api import EmbeddedWalletsApi - - -class TestEmbeddedWalletsApi(unittest.TestCase): - """EmbeddedWalletsApi unit test stubs""" - - def setUp(self) -> None: - self.api = EmbeddedWalletsApi() - - def tearDown(self) -> None: - pass - - def test_add_embedded_wallet_asset(self) -> None: - """Test case for add_embedded_wallet_asset - - Add asset to account - """ - pass - - def test_assign_embedded_wallet(self) -> None: - """Test case for assign_embedded_wallet - - Assign a wallet - """ - pass - - def test_create_embedded_wallet(self) -> None: - """Test case for create_embedded_wallet - - Create a new wallet - """ - pass - - def test_create_embedded_wallet_account(self) -> None: - """Test case for create_embedded_wallet_account - - Create a new account - """ - pass - - def test_get_embedded_wallet(self) -> None: - """Test case for get_embedded_wallet - - Get a wallet - """ - pass - - def test_get_embedded_wallet_account(self) -> None: - """Test case for get_embedded_wallet_account - - Get a account - """ - pass - - def test_get_embedded_wallet_addresses(self) -> None: - """Test case for get_embedded_wallet_addresses - - Retrieve asset addresses - """ - pass - - def test_get_embedded_wallet_asset(self) -> None: - """Test case for get_embedded_wallet_asset - - Retrieve asset - """ - pass - - def test_get_embedded_wallet_asset_balance(self) -> None: - """Test case for get_embedded_wallet_asset_balance - - Retrieve asset balance - """ - pass - - def test_get_embedded_wallet_assets(self) -> None: - """Test case for get_embedded_wallet_assets - - Retrieve assets - """ - pass - - def test_get_embedded_wallet_device(self) -> None: - """Test case for get_embedded_wallet_device - - Get Embedded Wallet Device - """ - pass - - def test_get_embedded_wallet_device_setup_state(self) -> None: - """Test case for get_embedded_wallet_device_setup_state - - Get device key setup state - """ - pass - - def test_get_embedded_wallet_devices_paginated(self) -> None: - """Test case for get_embedded_wallet_devices_paginated - - Get registered devices - paginated - """ - pass - - def test_get_embedded_wallet_latest_backup(self) -> None: - """Test case for get_embedded_wallet_latest_backup - - Get wallet Latest Backup details - """ - pass - - def test_get_embedded_wallet_public_key_info_for_address(self) -> None: - """Test case for get_embedded_wallet_public_key_info_for_address - - Get the public key of an asset - """ - pass - - def test_get_embedded_wallet_setup_status(self) -> None: - """Test case for get_embedded_wallet_setup_status - - Get wallet key setup state - """ - pass - - def test_get_embedded_wallet_supported_assets(self) -> None: - """Test case for get_embedded_wallet_supported_assets - - Retrieve supported assets - """ - pass - - def test_get_embedded_wallets(self) -> None: - """Test case for get_embedded_wallets - - List wallets - """ - pass - - def test_get_public_key_info_ncw(self) -> None: - """Test case for get_public_key_info_ncw - - Get the public key for a derivation path - """ - pass - - def test_refresh_embedded_wallet_asset_balance(self) -> None: - """Test case for refresh_embedded_wallet_asset_balance - - Refresh asset balance - """ - pass - - def test_update_embedded_wallet_device_status(self) -> None: - """Test case for update_embedded_wallet_device_status - - Update device status - """ - pass - - def test_update_embedded_wallet_status(self) -> None: - """Test case for update_embedded_wallet_status - - Update wallet status - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLmVtYmVkZGVkX3dhbGxldHNfYXBpIGltcG9ydCBFbWJlZGRlZFdhbGxldHNBcGkKCgpjbGFzcyBUZXN0RW1iZWRkZWRXYWxsZXRzQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkVtYmVkZGVkV2FsbGV0c0FwaSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZikgLT4gTm9uZToKICAgICAgICBzZWxmLmFwaSA9IEVtYmVkZGVkV2FsbGV0c0FwaSgpCgogICAgZGVmIHRlYXJEb3duKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2FkZF9lbWJlZGRlZF93YWxsZXRfYXNzZXQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGFkZF9lbWJlZGRlZF93YWxsZXRfYXNzZXQKCiAgICAgICAgQWRkIGFzc2V0IHRvIGFjY291bnQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfYXNzaWduX2VtYmVkZGVkX3dhbGxldChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgYXNzaWduX2VtYmVkZGVkX3dhbGxldAoKICAgICAgICBBc3NpZ24gYSB3YWxsZXQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY3JlYXRlX2VtYmVkZGVkX3dhbGxldChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgY3JlYXRlX2VtYmVkZGVkX3dhbGxldAoKICAgICAgICBDcmVhdGUgYSBuZXcgd2FsbGV0CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2NyZWF0ZV9lbWJlZGRlZF93YWxsZXRfYWNjb3VudChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgY3JlYXRlX2VtYmVkZGVkX3dhbGxldF9hY2NvdW50CgogICAgICAgIENyZWF0ZSBhIG5ldyBhY2NvdW50CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9lbWJlZGRlZF93YWxsZXQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9lbWJlZGRlZF93YWxsZXQKCiAgICAgICAgR2V0IGEgd2FsbGV0CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9lbWJlZGRlZF93YWxsZXRfYWNjb3VudChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2VtYmVkZGVkX3dhbGxldF9hY2NvdW50CgogICAgICAgIEdldCBhIGFjY291bnQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2VtYmVkZGVkX3dhbGxldF9hZGRyZXNzZXMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9lbWJlZGRlZF93YWxsZXRfYWRkcmVzc2VzCgogICAgICAgIFJldHJpZXZlIGFzc2V0IGFkZHJlc3NlcwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfZW1iZWRkZWRfd2FsbGV0X2Fzc2V0CgogICAgICAgIFJldHJpZXZlIGFzc2V0CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9lbWJlZGRlZF93YWxsZXRfYXNzZXRfYmFsYW5jZShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2VtYmVkZGVkX3dhbGxldF9hc3NldF9iYWxhbmNlCgogICAgICAgIFJldHJpZXZlIGFzc2V0IGJhbGFuY2UKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2VtYmVkZGVkX3dhbGxldF9hc3NldHMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9lbWJlZGRlZF93YWxsZXRfYXNzZXRzCgogICAgICAgIFJldHJpZXZlIGFzc2V0cwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfZW1iZWRkZWRfd2FsbGV0X2RldmljZShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2VtYmVkZGVkX3dhbGxldF9kZXZpY2UKCiAgICAgICAgR2V0IEVtYmVkZGVkIFdhbGxldCBEZXZpY2UKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2VtYmVkZGVkX3dhbGxldF9kZXZpY2Vfc2V0dXBfc3RhdGUoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9lbWJlZGRlZF93YWxsZXRfZGV2aWNlX3NldHVwX3N0YXRlCgogICAgICAgIEdldCBkZXZpY2Uga2V5IHNldHVwIHN0YXRlCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9lbWJlZGRlZF93YWxsZXRfZGV2aWNlc19wYWdpbmF0ZWQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9lbWJlZGRlZF93YWxsZXRfZGV2aWNlc19wYWdpbmF0ZWQKCiAgICAgICAgR2V0IHJlZ2lzdGVyZWQgZGV2aWNlcyAtIHBhZ2luYXRlZAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfZW1iZWRkZWRfd2FsbGV0X2xhdGVzdF9iYWNrdXAoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9lbWJlZGRlZF93YWxsZXRfbGF0ZXN0X2JhY2t1cAoKICAgICAgICBHZXQgd2FsbGV0IExhdGVzdCBCYWNrdXAgZGV0YWlscwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfZW1iZWRkZWRfd2FsbGV0X3B1YmxpY19rZXlfaW5mb19mb3JfYWRkcmVzcyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2VtYmVkZGVkX3dhbGxldF9wdWJsaWNfa2V5X2luZm9fZm9yX2FkZHJlc3MKCiAgICAgICAgR2V0IHRoZSBwdWJsaWMga2V5IG9mIGFuIGFzc2V0CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9lbWJlZGRlZF93YWxsZXRfc2V0dXBfc3RhdHVzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfZW1iZWRkZWRfd2FsbGV0X3NldHVwX3N0YXR1cwoKICAgICAgICBHZXQgd2FsbGV0IGtleSBzZXR1cCBzdGF0ZQogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfZW1iZWRkZWRfd2FsbGV0X3N1cHBvcnRlZF9hc3NldHMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9lbWJlZGRlZF93YWxsZXRfc3VwcG9ydGVkX2Fzc2V0cwoKICAgICAgICBSZXRyaWV2ZSBzdXBwb3J0ZWQgYXNzZXRzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9lbWJlZGRlZF93YWxsZXRzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfZW1iZWRkZWRfd2FsbGV0cwoKICAgICAgICBMaXN0IHdhbGxldHMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3B1YmxpY19rZXlfaW5mb19uY3coc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9wdWJsaWNfa2V5X2luZm9fbmN3CgogICAgICAgIEdldCB0aGUgcHVibGljIGtleSBmb3IgYSBkZXJpdmF0aW9uIHBhdGgKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfcmVmcmVzaF9lbWJlZGRlZF93YWxsZXRfYXNzZXRfYmFsYW5jZShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgcmVmcmVzaF9lbWJlZGRlZF93YWxsZXRfYXNzZXRfYmFsYW5jZQoKICAgICAgICBSZWZyZXNoIGFzc2V0IGJhbGFuY2UKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfdXBkYXRlX2VtYmVkZGVkX3dhbGxldF9kZXZpY2Vfc3RhdHVzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciB1cGRhdGVfZW1iZWRkZWRfd2FsbGV0X2RldmljZV9zdGF0dXMKCiAgICAgICAgVXBkYXRlIGRldmljZSBzdGF0dXMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfdXBkYXRlX2VtYmVkZGVkX3dhbGxldF9zdGF0dXMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHVwZGF0ZV9lbWJlZGRlZF93YWxsZXRfc3RhdHVzCgogICAgICAgIFVwZGF0ZSB3YWxsZXQgc3RhdHVzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_enable_device.py b/test/test_enable_device.py index 3a125f91..45d06ba1 100644 --- a/test/test_enable_device.py +++ b/test/test_enable_device.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.enable_device import EnableDevice - - -class TestEnableDevice(unittest.TestCase): - """EnableDevice unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EnableDevice: - """Test EnableDevice - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EnableDevice` - """ - model = EnableDevice() - if include_optional: - return EnableDevice( - enabled = True - ) - else: - return EnableDevice( - enabled = True, - ) - """ - - def testEnableDevice(self): - """Test EnableDevice""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVuYWJsZV9kZXZpY2UgaW1wb3J0IEVuYWJsZURldmljZQoKCmNsYXNzIFRlc3RFbmFibGVEZXZpY2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRW5hYmxlRGV2aWNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBFbmFibGVEZXZpY2U6CiAgICAgICAgIiIiVGVzdCBFbmFibGVEZXZpY2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRW5hYmxlRGV2aWNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRW5hYmxlRGV2aWNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRW5hYmxlRGV2aWNlKAogICAgICAgICAgICAgICAgZW5hYmxlZCA9IFRydWUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBFbmFibGVEZXZpY2UoCiAgICAgICAgICAgICAgICBlbmFibGVkID0gVHJ1ZSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RFbmFibGVEZXZpY2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBFbmFibGVEZXZpY2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_enable_wallet.py b/test/test_enable_wallet.py index 7b377151..f7702b70 100644 --- a/test/test_enable_wallet.py +++ b/test/test_enable_wallet.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.enable_wallet import EnableWallet - - -class TestEnableWallet(unittest.TestCase): - """EnableWallet unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EnableWallet: - """Test EnableWallet - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EnableWallet` - """ - model = EnableWallet() - if include_optional: - return EnableWallet( - enabled = True - ) - else: - return EnableWallet( - enabled = True, - ) - """ - - def testEnableWallet(self): - """Test EnableWallet""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVuYWJsZV93YWxsZXQgaW1wb3J0IEVuYWJsZVdhbGxldAoKCmNsYXNzIFRlc3RFbmFibGVXYWxsZXQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRW5hYmxlV2FsbGV0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBFbmFibGVXYWxsZXQ6CiAgICAgICAgIiIiVGVzdCBFbmFibGVXYWxsZXQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRW5hYmxlV2FsbGV0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRW5hYmxlV2FsbGV0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRW5hYmxlV2FsbGV0KAogICAgICAgICAgICAgICAgZW5hYmxlZCA9IFRydWUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBFbmFibGVXYWxsZXQoCiAgICAgICAgICAgICAgICBlbmFibGVkID0gVHJ1ZSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RFbmFibGVXYWxsZXQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBFbmFibGVXYWxsZXQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_error_response.py b/test/test_error_response.py index 0b03b508..98472345 100644 --- a/test/test_error_response.py +++ b/test/test_error_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.error_response import ErrorResponse - - -class TestErrorResponse(unittest.TestCase): - """ErrorResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ErrorResponse: - """Test ErrorResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ErrorResponse` - """ - model = ErrorResponse() - if include_optional: - return ErrorResponse( - error = fireblocks.models.error_response_error.ErrorResponse_error( - type = 'INTERNAL', - message = '', ) - ) - else: - return ErrorResponse( - error = fireblocks.models.error_response_error.ErrorResponse_error( - type = 'INTERNAL', - message = '', ), - ) - """ - - def testErrorResponse(self): - """Test ErrorResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVycm9yX3Jlc3BvbnNlIGltcG9ydCBFcnJvclJlc3BvbnNlCgoKY2xhc3MgVGVzdEVycm9yUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRXJyb3JSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRXJyb3JSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEVycm9yUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRXJyb3JSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEVycm9yUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBFcnJvclJlc3BvbnNlKAogICAgICAgICAgICAgICAgZXJyb3IgPSBmaXJlYmxvY2tzLm1vZGVscy5lcnJvcl9yZXNwb25zZV9lcnJvci5FcnJvclJlc3BvbnNlX2Vycm9yKAogICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnSU5URVJOQUwnLCAKICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gJycsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBFcnJvclJlc3BvbnNlKAogICAgICAgICAgICAgICAgZXJyb3IgPSBmaXJlYmxvY2tzLm1vZGVscy5lcnJvcl9yZXNwb25zZV9lcnJvci5FcnJvclJlc3BvbnNlX2Vycm9yKAogICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnSU5URVJOQUwnLCAKICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gJycsICksCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RXJyb3JSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IEVycm9yUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_error_response_error.py b/test/test_error_response_error.py index dd9de5e9..48a07b30 100644 --- a/test/test_error_response_error.py +++ b/test/test_error_response_error.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.error_response_error import ErrorResponseError - - -class TestErrorResponseError(unittest.TestCase): - """ErrorResponseError unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ErrorResponseError: - """Test ErrorResponseError - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ErrorResponseError` - """ - model = ErrorResponseError() - if include_optional: - return ErrorResponseError( - type = 'INTERNAL', - message = '' - ) - else: - return ErrorResponseError( - type = 'INTERNAL', - message = '', - ) - """ - - def testErrorResponseError(self): - """Test ErrorResponseError""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVycm9yX3Jlc3BvbnNlX2Vycm9yIGltcG9ydCBFcnJvclJlc3BvbnNlRXJyb3IKCgpjbGFzcyBUZXN0RXJyb3JSZXNwb25zZUVycm9yKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkVycm9yUmVzcG9uc2VFcnJvciB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRXJyb3JSZXNwb25zZUVycm9yOgogICAgICAgICIiIlRlc3QgRXJyb3JSZXNwb25zZUVycm9yCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEVycm9yUmVzcG9uc2VFcnJvcmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEVycm9yUmVzcG9uc2VFcnJvcigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEVycm9yUmVzcG9uc2VFcnJvcigKICAgICAgICAgICAgICAgIHR5cGUgPSAnSU5URVJOQUwnLAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRXJyb3JSZXNwb25zZUVycm9yKAogICAgICAgICAgICAgICAgdHlwZSA9ICdJTlRFUk5BTCcsCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RXJyb3JSZXNwb25zZUVycm9yKHNlbGYpOgogICAgICAgICIiIlRlc3QgRXJyb3JSZXNwb25zZUVycm9yIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_error_schema.py b/test/test_error_schema.py index 6f5d38fa..a6b1ffbc 100644 --- a/test/test_error_schema.py +++ b/test/test_error_schema.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.error_schema import ErrorSchema - - -class TestErrorSchema(unittest.TestCase): - """ErrorSchema unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ErrorSchema: - """Test ErrorSchema - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ErrorSchema` - """ - model = ErrorSchema() - if include_optional: - return ErrorSchema( - message = '', - code = 1.337 - ) - else: - return ErrorSchema( - ) - """ - - def testErrorSchema(self): - """Test ErrorSchema""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVycm9yX3NjaGVtYSBpbXBvcnQgRXJyb3JTY2hlbWEKCgpjbGFzcyBUZXN0RXJyb3JTY2hlbWEodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRXJyb3JTY2hlbWEgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEVycm9yU2NoZW1hOgogICAgICAgICIiIlRlc3QgRXJyb3JTY2hlbWEKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRXJyb3JTY2hlbWFgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBFcnJvclNjaGVtYSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEVycm9yU2NoZW1hKAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICcnLAogICAgICAgICAgICAgICAgY29kZSA9IDEuMzM3CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRXJyb3JTY2hlbWEoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RXJyb3JTY2hlbWEoc2VsZik6CiAgICAgICAgIiIiVGVzdCBFcnJvclNjaGVtYSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_estimated_fee_details.py b/test/test_estimated_fee_details.py index b1d97c1d..8bf75416 100644 --- a/test/test_estimated_fee_details.py +++ b/test/test_estimated_fee_details.py @@ -1,68 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.estimated_fee_details import EstimatedFeeDetails - - -class TestEstimatedFeeDetails(unittest.TestCase): - """EstimatedFeeDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EstimatedFeeDetails: - """Test EstimatedFeeDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EstimatedFeeDetails` - """ - model = EstimatedFeeDetails() - if include_optional: - return EstimatedFeeDetails( - low = fireblocks.models.fee_breakdown.FeeBreakdown( - base_fee = '', - priority_fee = '', - rent = '', - total_fee = '', ), - medium = fireblocks.models.fee_breakdown.FeeBreakdown( - base_fee = '', - priority_fee = '', - rent = '', - total_fee = '', ), - high = fireblocks.models.fee_breakdown.FeeBreakdown( - base_fee = '', - priority_fee = '', - rent = '', - total_fee = '', ) - ) - else: - return EstimatedFeeDetails( - ) - """ - - def testEstimatedFeeDetails(self): - """Test EstimatedFeeDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVzdGltYXRlZF9mZWVfZGV0YWlscyBpbXBvcnQgRXN0aW1hdGVkRmVlRGV0YWlscwoKCmNsYXNzIFRlc3RFc3RpbWF0ZWRGZWVEZXRhaWxzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkVzdGltYXRlZEZlZURldGFpbHMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEVzdGltYXRlZEZlZURldGFpbHM6CiAgICAgICAgIiIiVGVzdCBFc3RpbWF0ZWRGZWVEZXRhaWxzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEVzdGltYXRlZEZlZURldGFpbHNgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBFc3RpbWF0ZWRGZWVEZXRhaWxzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRXN0aW1hdGVkRmVlRGV0YWlscygKICAgICAgICAgICAgICAgIGxvdyA9IGZpcmVibG9ja3MubW9kZWxzLmZlZV9icmVha2Rvd24uRmVlQnJlYWtkb3duKAogICAgICAgICAgICAgICAgICAgIGJhc2VfZmVlID0gJycsIAogICAgICAgICAgICAgICAgICAgIHByaW9yaXR5X2ZlZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICByZW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIHRvdGFsX2ZlZSA9ICcnLCApLAogICAgICAgICAgICAgICAgbWVkaXVtID0gZmlyZWJsb2Nrcy5tb2RlbHMuZmVlX2JyZWFrZG93bi5GZWVCcmVha2Rvd24oCiAgICAgICAgICAgICAgICAgICAgYmFzZV9mZWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHlfZmVlID0gJycsIAogICAgICAgICAgICAgICAgICAgIHJlbnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgdG90YWxfZmVlID0gJycsICksCiAgICAgICAgICAgICAgICBoaWdoID0gZmlyZWJsb2Nrcy5tb2RlbHMuZmVlX2JyZWFrZG93bi5GZWVCcmVha2Rvd24oCiAgICAgICAgICAgICAgICAgICAgYmFzZV9mZWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHlfZmVlID0gJycsIAogICAgICAgICAgICAgICAgICAgIHJlbnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgdG90YWxfZmVlID0gJycsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBFc3RpbWF0ZWRGZWVEZXRhaWxzKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEVzdGltYXRlZEZlZURldGFpbHMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBFc3RpbWF0ZWRGZWVEZXRhaWxzIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_estimated_network_fee_response.py b/test/test_estimated_network_fee_response.py index 9f0ed906..4719bf43 100644 --- a/test/test_estimated_network_fee_response.py +++ b/test/test_estimated_network_fee_response.py @@ -1,89 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.estimated_network_fee_response import EstimatedNetworkFeeResponse - - -class TestEstimatedNetworkFeeResponse(unittest.TestCase): - """EstimatedNetworkFeeResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EstimatedNetworkFeeResponse: - """Test EstimatedNetworkFeeResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EstimatedNetworkFeeResponse` - """ - model = EstimatedNetworkFeeResponse() - if include_optional: - return EstimatedNetworkFeeResponse( - low = fireblocks.models.network_fee.NetworkFee( - fee_per_byte = '', - gas_price = '', - network_fee = '', - base_fee = '', - priority_fee = '', ), - medium = fireblocks.models.network_fee.NetworkFee( - fee_per_byte = '', - gas_price = '', - network_fee = '', - base_fee = '', - priority_fee = '', ), - high = fireblocks.models.network_fee.NetworkFee( - fee_per_byte = '', - gas_price = '', - network_fee = '', - base_fee = '', - priority_fee = '', ) - ) - else: - return EstimatedNetworkFeeResponse( - low = fireblocks.models.network_fee.NetworkFee( - fee_per_byte = '', - gas_price = '', - network_fee = '', - base_fee = '', - priority_fee = '', ), - medium = fireblocks.models.network_fee.NetworkFee( - fee_per_byte = '', - gas_price = '', - network_fee = '', - base_fee = '', - priority_fee = '', ), - high = fireblocks.models.network_fee.NetworkFee( - fee_per_byte = '', - gas_price = '', - network_fee = '', - base_fee = '', - priority_fee = '', ), - ) - """ - - def testEstimatedNetworkFeeResponse(self): - """Test EstimatedNetworkFeeResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVzdGltYXRlZF9uZXR3b3JrX2ZlZV9yZXNwb25zZSBpbXBvcnQgRXN0aW1hdGVkTmV0d29ya0ZlZVJlc3BvbnNlCgoKY2xhc3MgVGVzdEVzdGltYXRlZE5ldHdvcmtGZWVSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJFc3RpbWF0ZWROZXR3b3JrRmVlUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEVzdGltYXRlZE5ldHdvcmtGZWVSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEVzdGltYXRlZE5ldHdvcmtGZWVSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBFc3RpbWF0ZWROZXR3b3JrRmVlUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBFc3RpbWF0ZWROZXR3b3JrRmVlUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBFc3RpbWF0ZWROZXR3b3JrRmVlUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBsb3cgPSBmaXJlYmxvY2tzLm1vZGVscy5uZXR3b3JrX2ZlZS5OZXR3b3JrRmVlKAogICAgICAgICAgICAgICAgICAgIGZlZV9wZXJfYnl0ZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBnYXNfcHJpY2UgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgbmV0d29ya19mZWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYmFzZV9mZWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHlfZmVlID0gJycsICksCiAgICAgICAgICAgICAgICBtZWRpdW0gPSBmaXJlYmxvY2tzLm1vZGVscy5uZXR3b3JrX2ZlZS5OZXR3b3JrRmVlKAogICAgICAgICAgICAgICAgICAgIGZlZV9wZXJfYnl0ZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBnYXNfcHJpY2UgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgbmV0d29ya19mZWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYmFzZV9mZWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHlfZmVlID0gJycsICksCiAgICAgICAgICAgICAgICBoaWdoID0gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19mZWUuTmV0d29ya0ZlZSgKICAgICAgICAgICAgICAgICAgICBmZWVfcGVyX2J5dGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgZ2FzX3ByaWNlID0gJycsIAogICAgICAgICAgICAgICAgICAgIG5ldHdvcmtfZmVlID0gJycsIAogICAgICAgICAgICAgICAgICAgIGJhc2VfZmVlID0gJycsIAogICAgICAgICAgICAgICAgICAgIHByaW9yaXR5X2ZlZSA9ICcnLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRXN0aW1hdGVkTmV0d29ya0ZlZVJlc3BvbnNlKAogICAgICAgICAgICAgICAgbG93ID0gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19mZWUuTmV0d29ya0ZlZSgKICAgICAgICAgICAgICAgICAgICBmZWVfcGVyX2J5dGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgZ2FzX3ByaWNlID0gJycsIAogICAgICAgICAgICAgICAgICAgIG5ldHdvcmtfZmVlID0gJycsIAogICAgICAgICAgICAgICAgICAgIGJhc2VfZmVlID0gJycsIAogICAgICAgICAgICAgICAgICAgIHByaW9yaXR5X2ZlZSA9ICcnLCApLAogICAgICAgICAgICAgICAgbWVkaXVtID0gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19mZWUuTmV0d29ya0ZlZSgKICAgICAgICAgICAgICAgICAgICBmZWVfcGVyX2J5dGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgZ2FzX3ByaWNlID0gJycsIAogICAgICAgICAgICAgICAgICAgIG5ldHdvcmtfZmVlID0gJycsIAogICAgICAgICAgICAgICAgICAgIGJhc2VfZmVlID0gJycsIAogICAgICAgICAgICAgICAgICAgIHByaW9yaXR5X2ZlZSA9ICcnLCApLAogICAgICAgICAgICAgICAgaGlnaCA9IGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfZmVlLk5ldHdvcmtGZWUoCiAgICAgICAgICAgICAgICAgICAgZmVlX3Blcl9ieXRlID0gJycsIAogICAgICAgICAgICAgICAgICAgIGdhc19wcmljZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBuZXR3b3JrX2ZlZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBiYXNlX2ZlZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBwcmlvcml0eV9mZWUgPSAnJywgKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RFc3RpbWF0ZWROZXR3b3JrRmVlUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBFc3RpbWF0ZWROZXR3b3JrRmVlUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_estimated_transaction_fee_response.py b/test/test_estimated_transaction_fee_response.py index c9b4e729..d79afbec 100644 --- a/test/test_estimated_transaction_fee_response.py +++ b/test/test_estimated_transaction_fee_response.py @@ -1,121 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.estimated_transaction_fee_response import ( - EstimatedTransactionFeeResponse, -) - - -class TestEstimatedTransactionFeeResponse(unittest.TestCase): - """EstimatedTransactionFeeResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EstimatedTransactionFeeResponse: - """Test EstimatedTransactionFeeResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EstimatedTransactionFeeResponse` - """ - model = EstimatedTransactionFeeResponse() - if include_optional: - return EstimatedTransactionFeeResponse( - low = fireblocks.models.transaction_fee.TransactionFee( - fee_per_byte = '', - gas_price = 1.337, - gas_limit = '', - network_fee = '', - base_fee = 1.337, - priority_fee = 1.337, - max_fee_per_gas_delta = '', - l1_fee = '', ), - medium = fireblocks.models.transaction_fee.TransactionFee( - fee_per_byte = '', - gas_price = 1.337, - gas_limit = '', - network_fee = '', - base_fee = 1.337, - priority_fee = 1.337, - max_fee_per_gas_delta = '', - l1_fee = '', ), - high = fireblocks.models.transaction_fee.TransactionFee( - fee_per_byte = '', - gas_price = 1.337, - gas_limit = '', - network_fee = '', - base_fee = 1.337, - priority_fee = 1.337, - max_fee_per_gas_delta = '', - l1_fee = '', ), - fee_details = fireblocks.models.estimated_fee_details.EstimatedFeeDetails( - low = fireblocks.models.fee_breakdown.FeeBreakdown( - base_fee = '', - priority_fee = '', - rent = '', - total_fee = '', ), - medium = fireblocks.models.fee_breakdown.FeeBreakdown( - base_fee = '', - priority_fee = '', - rent = '', - total_fee = '', ), - high = , ) - ) - else: - return EstimatedTransactionFeeResponse( - low = fireblocks.models.transaction_fee.TransactionFee( - fee_per_byte = '', - gas_price = 1.337, - gas_limit = '', - network_fee = '', - base_fee = 1.337, - priority_fee = 1.337, - max_fee_per_gas_delta = '', - l1_fee = '', ), - medium = fireblocks.models.transaction_fee.TransactionFee( - fee_per_byte = '', - gas_price = 1.337, - gas_limit = '', - network_fee = '', - base_fee = 1.337, - priority_fee = 1.337, - max_fee_per_gas_delta = '', - l1_fee = '', ), - high = fireblocks.models.transaction_fee.TransactionFee( - fee_per_byte = '', - gas_price = 1.337, - gas_limit = '', - network_fee = '', - base_fee = 1.337, - priority_fee = 1.337, - max_fee_per_gas_delta = '', - l1_fee = '', ), - ) - """ - - def testEstimatedTransactionFeeResponse(self): - """Test EstimatedTransactionFeeResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmVzdGltYXRlZF90cmFuc2FjdGlvbl9mZWVfcmVzcG9uc2UgaW1wb3J0ICgKICAgIEVzdGltYXRlZFRyYW5zYWN0aW9uRmVlUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0RXN0aW1hdGVkVHJhbnNhY3Rpb25GZWVSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJFc3RpbWF0ZWRUcmFuc2FjdGlvbkZlZVJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBFc3RpbWF0ZWRUcmFuc2FjdGlvbkZlZVJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgRXN0aW1hdGVkVHJhbnNhY3Rpb25GZWVSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBFc3RpbWF0ZWRUcmFuc2FjdGlvbkZlZVJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRXN0aW1hdGVkVHJhbnNhY3Rpb25GZWVSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEVzdGltYXRlZFRyYW5zYWN0aW9uRmVlUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBsb3cgPSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9mZWUuVHJhbnNhY3Rpb25GZWUoCiAgICAgICAgICAgICAgICAgICAgZmVlX3Blcl9ieXRlID0gJycsIAogICAgICAgICAgICAgICAgICAgIGdhc19wcmljZSA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICBnYXNfbGltaXQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgbmV0d29ya19mZWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYmFzZV9mZWUgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHlfZmVlID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgIG1heF9mZWVfcGVyX2dhc19kZWx0YSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBsMV9mZWUgPSAnJywgKSwKICAgICAgICAgICAgICAgIG1lZGl1bSA9IGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX2ZlZS5UcmFuc2FjdGlvbkZlZSgKICAgICAgICAgICAgICAgICAgICBmZWVfcGVyX2J5dGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgZ2FzX3ByaWNlID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgIGdhc19saW1pdCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBuZXR3b3JrX2ZlZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBiYXNlX2ZlZSA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICBwcmlvcml0eV9mZWUgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgbWF4X2ZlZV9wZXJfZ2FzX2RlbHRhID0gJycsIAogICAgICAgICAgICAgICAgICAgIGwxX2ZlZSA9ICcnLCApLAogICAgICAgICAgICAgICAgaGlnaCA9IGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX2ZlZS5UcmFuc2FjdGlvbkZlZSgKICAgICAgICAgICAgICAgICAgICBmZWVfcGVyX2J5dGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgZ2FzX3ByaWNlID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgIGdhc19saW1pdCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBuZXR3b3JrX2ZlZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBiYXNlX2ZlZSA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICBwcmlvcml0eV9mZWUgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgbWF4X2ZlZV9wZXJfZ2FzX2RlbHRhID0gJycsIAogICAgICAgICAgICAgICAgICAgIGwxX2ZlZSA9ICcnLCApLAogICAgICAgICAgICAgICAgZmVlX2RldGFpbHMgPSBmaXJlYmxvY2tzLm1vZGVscy5lc3RpbWF0ZWRfZmVlX2RldGFpbHMuRXN0aW1hdGVkRmVlRGV0YWlscygKICAgICAgICAgICAgICAgICAgICBsb3cgPSBmaXJlYmxvY2tzLm1vZGVscy5mZWVfYnJlYWtkb3duLkZlZUJyZWFrZG93bigKICAgICAgICAgICAgICAgICAgICAgICAgYmFzZV9mZWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5X2ZlZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcmVudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxfZmVlID0gJycsICksIAogICAgICAgICAgICAgICAgICAgIG1lZGl1bSA9IGZpcmVibG9ja3MubW9kZWxzLmZlZV9icmVha2Rvd24uRmVlQnJlYWtkb3duKAogICAgICAgICAgICAgICAgICAgICAgICBiYXNlX2ZlZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHlfZmVlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICByZW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICB0b3RhbF9mZWUgPSAnJywgKSwgCiAgICAgICAgICAgICAgICAgICAgaGlnaCA9ICwgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEVzdGltYXRlZFRyYW5zYWN0aW9uRmVlUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBsb3cgPSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9mZWUuVHJhbnNhY3Rpb25GZWUoCiAgICAgICAgICAgICAgICAgICAgZmVlX3Blcl9ieXRlID0gJycsIAogICAgICAgICAgICAgICAgICAgIGdhc19wcmljZSA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICBnYXNfbGltaXQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgbmV0d29ya19mZWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYmFzZV9mZWUgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHlfZmVlID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgIG1heF9mZWVfcGVyX2dhc19kZWx0YSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBsMV9mZWUgPSAnJywgKSwKICAgICAgICAgICAgICAgIG1lZGl1bSA9IGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX2ZlZS5UcmFuc2FjdGlvbkZlZSgKICAgICAgICAgICAgICAgICAgICBmZWVfcGVyX2J5dGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgZ2FzX3ByaWNlID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgIGdhc19saW1pdCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBuZXR3b3JrX2ZlZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBiYXNlX2ZlZSA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICBwcmlvcml0eV9mZWUgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgbWF4X2ZlZV9wZXJfZ2FzX2RlbHRhID0gJycsIAogICAgICAgICAgICAgICAgICAgIGwxX2ZlZSA9ICcnLCApLAogICAgICAgICAgICAgICAgaGlnaCA9IGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX2ZlZS5UcmFuc2FjdGlvbkZlZSgKICAgICAgICAgICAgICAgICAgICBmZWVfcGVyX2J5dGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgZ2FzX3ByaWNlID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgIGdhc19saW1pdCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBuZXR3b3JrX2ZlZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBiYXNlX2ZlZSA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICBwcmlvcml0eV9mZWUgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgbWF4X2ZlZV9wZXJfZ2FzX2RlbHRhID0gJycsIAogICAgICAgICAgICAgICAgICAgIGwxX2ZlZSA9ICcnLCApLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEVzdGltYXRlZFRyYW5zYWN0aW9uRmVlUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBFc3RpbWF0ZWRUcmFuc2FjdGlvbkZlZVJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_ethereum_blockchain_data.py b/test/test_ethereum_blockchain_data.py index 9bdee011..544ff775 100644 --- a/test/test_ethereum_blockchain_data.py +++ b/test/test_ethereum_blockchain_data.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.ethereum_blockchain_data import EthereumBlockchainData - - -class TestEthereumBlockchainData(unittest.TestCase): - """EthereumBlockchainData unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EthereumBlockchainData: - """Test EthereumBlockchainData - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EthereumBlockchainData` - """ - model = EthereumBlockchainData() - if include_optional: - return EthereumBlockchainData( - is_compounding_validator = True - ) - else: - return EthereumBlockchainData( - is_compounding_validator = True, - ) - """ - - def testEthereumBlockchainData(self): - """Test EthereumBlockchainData""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV0aGVyZXVtX2Jsb2NrY2hhaW5fZGF0YSBpbXBvcnQgRXRoZXJldW1CbG9ja2NoYWluRGF0YQoKCmNsYXNzIFRlc3RFdGhlcmV1bUJsb2NrY2hhaW5EYXRhKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkV0aGVyZXVtQmxvY2tjaGFpbkRhdGEgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEV0aGVyZXVtQmxvY2tjaGFpbkRhdGE6CiAgICAgICAgIiIiVGVzdCBFdGhlcmV1bUJsb2NrY2hhaW5EYXRhCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEV0aGVyZXVtQmxvY2tjaGFpbkRhdGFgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBFdGhlcmV1bUJsb2NrY2hhaW5EYXRhKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRXRoZXJldW1CbG9ja2NoYWluRGF0YSgKICAgICAgICAgICAgICAgIGlzX2NvbXBvdW5kaW5nX3ZhbGlkYXRvciA9IFRydWUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBFdGhlcmV1bUJsb2NrY2hhaW5EYXRhKAogICAgICAgICAgICAgICAgaXNfY29tcG91bmRpbmdfdmFsaWRhdG9yID0gVHJ1ZSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RFdGhlcmV1bUJsb2NrY2hhaW5EYXRhKHNlbGYpOgogICAgICAgICIiIlRlc3QgRXRoZXJldW1CbG9ja2NoYWluRGF0YSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_european_sepa_address.py b/test/test_european_sepa_address.py index d6f26644..e37f46f0 100644 --- a/test/test_european_sepa_address.py +++ b/test/test_european_sepa_address.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.european_sepa_address import EuropeanSEPAAddress - - -class TestEuropeanSEPAAddress(unittest.TestCase): - """EuropeanSEPAAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EuropeanSEPAAddress: - """Test EuropeanSEPAAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EuropeanSEPAAddress` - """ - model = EuropeanSEPAAddress() - if include_optional: - return EuropeanSEPAAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - iban = 'GB82WEST12345698765432', - bic = '', - bank_name = '', - bank_branch = '', - bank_address = '', - purpose_code = '', - tax_id = '' - ) - else: - return EuropeanSEPAAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - iban = 'GB82WEST12345698765432', - ) - """ - - def testEuropeanSEPAAddress(self): - """Test EuropeanSEPAAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV1cm9wZWFuX3NlcGFfYWRkcmVzcyBpbXBvcnQgRXVyb3BlYW5TRVBBQWRkcmVzcwoKCmNsYXNzIFRlc3RFdXJvcGVhblNFUEFBZGRyZXNzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkV1cm9wZWFuU0VQQUFkZHJlc3MgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEV1cm9wZWFuU0VQQUFkZHJlc3M6CiAgICAgICAgIiIiVGVzdCBFdXJvcGVhblNFUEFBZGRyZXNzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEV1cm9wZWFuU0VQQUFkZHJlc3NgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBFdXJvcGVhblNFUEFBZGRyZXNzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRXVyb3BlYW5TRVBBQWRkcmVzcygKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyID0geyJuYW1lIjoiSm9obiBTbWl0aCIsImNpdHkiOiJOZXcgWW9yayIsImNvdW50cnkiOiJVUyIsInN1YmRpdmlzaW9uIjoiTlkiLCJhZGRyZXNzIjoiMTIzIFdhbGwgU3RyZWV0LCBBcHQgNEIiLCJwb3N0YWxDb2RlIjoiMTAwMDUifSwKICAgICAgICAgICAgICAgIGliYW4gPSAnR0I4MldFU1QxMjM0NTY5ODc2NTQzMicsCiAgICAgICAgICAgICAgICBiaWMgPSAnJywKICAgICAgICAgICAgICAgIGJhbmtfbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgYmFua19icmFuY2ggPSAnJywKICAgICAgICAgICAgICAgIGJhbmtfYWRkcmVzcyA9ICcnLAogICAgICAgICAgICAgICAgcHVycG9zZV9jb2RlID0gJycsCiAgICAgICAgICAgICAgICB0YXhfaWQgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEV1cm9wZWFuU0VQQUFkZHJlc3MoCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlciA9IHsibmFtZSI6IkpvaG4gU21pdGgiLCJjaXR5IjoiTmV3IFlvcmsiLCJjb3VudHJ5IjoiVVMiLCJzdWJkaXZpc2lvbiI6Ik5ZIiwiYWRkcmVzcyI6IjEyMyBXYWxsIFN0cmVldCwgQXB0IDRCIiwicG9zdGFsQ29kZSI6IjEwMDA1In0sCiAgICAgICAgICAgICAgICBpYmFuID0gJ0dCODJXRVNUMTIzNDU2OTg3NjU0MzInLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEV1cm9wZWFuU0VQQUFkZHJlc3Moc2VsZik6CiAgICAgICAgIiIiVGVzdCBFdXJvcGVhblNFUEFBZGRyZXNzIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_european_sepa_destination.py b/test/test_european_sepa_destination.py index b99b1978..16e1ae34 100644 --- a/test/test_european_sepa_destination.py +++ b/test/test_european_sepa_destination.py @@ -1,73 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.european_sepa_destination import EuropeanSEPADestination - - -class TestEuropeanSEPADestination(unittest.TestCase): - """EuropeanSEPADestination unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EuropeanSEPADestination: - """Test EuropeanSEPADestination - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EuropeanSEPADestination` - """ - model = EuropeanSEPADestination() - if include_optional: - return EuropeanSEPADestination( - type = 'EUROPEAN_SEPA', - address = fireblocks.models.european_sepa_address.EuropeanSEPAAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - iban = 'GB82WEST12345698765432', - bic = '', - bank_name = '', - bank_branch = '', - bank_address = '', - purpose_code = '', - tax_id = '', ) - ) - else: - return EuropeanSEPADestination( - type = 'EUROPEAN_SEPA', - address = fireblocks.models.european_sepa_address.EuropeanSEPAAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - iban = 'GB82WEST12345698765432', - bic = '', - bank_name = '', - bank_branch = '', - bank_address = '', - purpose_code = '', - tax_id = '', ), - ) - """ - - def testEuropeanSEPADestination(self): - """Test EuropeanSEPADestination""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV1cm9wZWFuX3NlcGFfZGVzdGluYXRpb24gaW1wb3J0IEV1cm9wZWFuU0VQQURlc3RpbmF0aW9uCgoKY2xhc3MgVGVzdEV1cm9wZWFuU0VQQURlc3RpbmF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkV1cm9wZWFuU0VQQURlc3RpbmF0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBFdXJvcGVhblNFUEFEZXN0aW5hdGlvbjoKICAgICAgICAiIiJUZXN0IEV1cm9wZWFuU0VQQURlc3RpbmF0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEV1cm9wZWFuU0VQQURlc3RpbmF0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRXVyb3BlYW5TRVBBRGVzdGluYXRpb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBFdXJvcGVhblNFUEFEZXN0aW5hdGlvbigKICAgICAgICAgICAgICAgIHR5cGUgPSAnRVVST1BFQU5fU0VQQScsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0gZmlyZWJsb2Nrcy5tb2RlbHMuZXVyb3BlYW5fc2VwYV9hZGRyZXNzLkV1cm9wZWFuU0VQQUFkZHJlc3MoCiAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXIgPSB7Im5hbWUiOiJKb2huIFNtaXRoIiwiY2l0eSI6Ik5ldyBZb3JrIiwiY291bnRyeSI6IlVTIiwic3ViZGl2aXNpb24iOiJOWSIsImFkZHJlc3MiOiIxMjMgV2FsbCBTdHJlZXQsIEFwdCA0QiIsInBvc3RhbENvZGUiOiIxMDAwNSJ9LCAKICAgICAgICAgICAgICAgICAgICBpYmFuID0gJ0dCODJXRVNUMTIzNDU2OTg3NjU0MzInLCAKICAgICAgICAgICAgICAgICAgICBiaWMgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYmFua19uYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgIGJhbmtfYnJhbmNoID0gJycsIAogICAgICAgICAgICAgICAgICAgIGJhbmtfYWRkcmVzcyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBwdXJwb3NlX2NvZGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgdGF4X2lkID0gJycsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBFdXJvcGVhblNFUEFEZXN0aW5hdGlvbigKICAgICAgICAgICAgICAgIHR5cGUgPSAnRVVST1BFQU5fU0VQQScsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0gZmlyZWJsb2Nrcy5tb2RlbHMuZXVyb3BlYW5fc2VwYV9hZGRyZXNzLkV1cm9wZWFuU0VQQUFkZHJlc3MoCiAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXIgPSB7Im5hbWUiOiJKb2huIFNtaXRoIiwiY2l0eSI6Ik5ldyBZb3JrIiwiY291bnRyeSI6IlVTIiwic3ViZGl2aXNpb24iOiJOWSIsImFkZHJlc3MiOiIxMjMgV2FsbCBTdHJlZXQsIEFwdCA0QiIsInBvc3RhbENvZGUiOiIxMDAwNSJ9LCAKICAgICAgICAgICAgICAgICAgICBpYmFuID0gJ0dCODJXRVNUMTIzNDU2OTg3NjU0MzInLCAKICAgICAgICAgICAgICAgICAgICBiaWMgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYmFua19uYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgIGJhbmtfYnJhbmNoID0gJycsIAogICAgICAgICAgICAgICAgICAgIGJhbmtfYWRkcmVzcyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBwdXJwb3NlX2NvZGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgdGF4X2lkID0gJycsICksCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RXVyb3BlYW5TRVBBRGVzdGluYXRpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBFdXJvcGVhblNFUEFEZXN0aW5hdGlvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_evm_token_create_params_dto.py b/test/test_evm_token_create_params_dto.py index fb824fae..fb543c15 100644 --- a/test/test_evm_token_create_params_dto.py +++ b/test/test_evm_token_create_params_dto.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.evm_token_create_params_dto import EVMTokenCreateParamsDto - - -class TestEVMTokenCreateParamsDto(unittest.TestCase): - """EVMTokenCreateParamsDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> EVMTokenCreateParamsDto: - """Test EVMTokenCreateParamsDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `EVMTokenCreateParamsDto` - """ - model = EVMTokenCreateParamsDto() - if include_optional: - return EVMTokenCreateParamsDto( - contract_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - deploy_function_params = [{"internalType":"string","name":"name","type":"string","value":"name"},{"internalType":"string","name":"symbol","type":"string","value":"symbol"},{"components":[{"internalType":"bool","name":"_isMintable","type":"bool"}],"internalType":"struct MyStruct","name":"customConfigProps","type":"tuple","value":[{"internalType":"bool","name":"_isMintable","type":"bool","value":false}]}] - ) - else: - return EVMTokenCreateParamsDto( - contract_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - ) - """ - - def testEVMTokenCreateParamsDto(self): - """Test EVMTokenCreateParamsDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV2bV90b2tlbl9jcmVhdGVfcGFyYW1zX2R0byBpbXBvcnQgRVZNVG9rZW5DcmVhdGVQYXJhbXNEdG8KCgpjbGFzcyBUZXN0RVZNVG9rZW5DcmVhdGVQYXJhbXNEdG8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRVZNVG9rZW5DcmVhdGVQYXJhbXNEdG8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEVWTVRva2VuQ3JlYXRlUGFyYW1zRHRvOgogICAgICAgICIiIlRlc3QgRVZNVG9rZW5DcmVhdGVQYXJhbXNEdG8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRVZNVG9rZW5DcmVhdGVQYXJhbXNEdG9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBFVk1Ub2tlbkNyZWF0ZVBhcmFtc0R0bygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEVWTVRva2VuQ3JlYXRlUGFyYW1zRHRvKAogICAgICAgICAgICAgICAgY29udHJhY3RfaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywKICAgICAgICAgICAgICAgIGRlcGxveV9mdW5jdGlvbl9wYXJhbXMgPSBbeyJpbnRlcm5hbFR5cGUiOiJzdHJpbmciLCJuYW1lIjoibmFtZSIsInR5cGUiOiJzdHJpbmciLCJ2YWx1ZSI6Im5hbWUifSx7ImludGVybmFsVHlwZSI6InN0cmluZyIsIm5hbWUiOiJzeW1ib2wiLCJ0eXBlIjoic3RyaW5nIiwidmFsdWUiOiJzeW1ib2wifSx7ImNvbXBvbmVudHMiOlt7ImludGVybmFsVHlwZSI6ImJvb2wiLCJuYW1lIjoiX2lzTWludGFibGUiLCJ0eXBlIjoiYm9vbCJ9XSwiaW50ZXJuYWxUeXBlIjoic3RydWN0IE15U3RydWN0IiwibmFtZSI6ImN1c3RvbUNvbmZpZ1Byb3BzIiwidHlwZSI6InR1cGxlIiwidmFsdWUiOlt7ImludGVybmFsVHlwZSI6ImJvb2wiLCJuYW1lIjoiX2lzTWludGFibGUiLCJ0eXBlIjoiYm9vbCIsInZhbHVlIjpmYWxzZX1dfV0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBFVk1Ub2tlbkNyZWF0ZVBhcmFtc0R0bygKICAgICAgICAgICAgICAgIGNvbnRyYWN0X2lkID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RVZNVG9rZW5DcmVhdGVQYXJhbXNEdG8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBFVk1Ub2tlbkNyZWF0ZVBhcmFtc0R0byIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_exchange_account.py b/test/test_exchange_account.py index 81a1be82..a1558b00 100644 --- a/test/test_exchange_account.py +++ b/test/test_exchange_account.py @@ -1,91 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.exchange_account import ExchangeAccount - - -class TestExchangeAccount(unittest.TestCase): - """ExchangeAccount unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ExchangeAccount: - """Test ExchangeAccount - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ExchangeAccount` - """ - model = ExchangeAccount() - if include_optional: - return ExchangeAccount( - id = '', - type = 'INDEPENDENT_RESERVE', - name = '', - status = '', - assets = [ - fireblocks.models.exchange_asset.ExchangeAsset( - id = '', - balance = '', - locked_amount = '', - total = '', - available = '', - credit = '', - asset_id = '2306088f-97ed-4293-8d28-8ab627f272d7', - provider_symbol = 'BTC', - asset_symbol = 'BTC', - asset_legacy_id = 'BTC', ) - ], - success = True, - trading_accounts = [ - fireblocks.models.exchange_trading_account.ExchangeTradingAccount( - type = '', - name = '', - assets = [ - fireblocks.models.exchange_asset.ExchangeAsset( - id = '', - balance = '', - locked_amount = '', - total = '', - available = '', - credit = '', - asset_id = '2306088f-97ed-4293-8d28-8ab627f272d7', - provider_symbol = 'BTC', - asset_symbol = 'BTC', - asset_legacy_id = 'BTC', ) - ], ) - ], - is_subaccount = True, - main_account_id = '' - ) - else: - return ExchangeAccount( - ) - """ - - def testExchangeAccount(self): - """Test ExchangeAccount""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4Y2hhbmdlX2FjY291bnQgaW1wb3J0IEV4Y2hhbmdlQWNjb3VudAoKCmNsYXNzIFRlc3RFeGNoYW5nZUFjY291bnQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRXhjaGFuZ2VBY2NvdW50IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBFeGNoYW5nZUFjY291bnQ6CiAgICAgICAgIiIiVGVzdCBFeGNoYW5nZUFjY291bnQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRXhjaGFuZ2VBY2NvdW50YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRXhjaGFuZ2VBY2NvdW50KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRXhjaGFuZ2VBY2NvdW50KAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnSU5ERVBFTkRFTlRfUkVTRVJWRScsCiAgICAgICAgICAgICAgICBuYW1lID0gJycsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnJywKICAgICAgICAgICAgICAgIGFzc2V0cyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5leGNoYW5nZV9hc3NldC5FeGNoYW5nZUFzc2V0KAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmFsYW5jZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbG9ja2VkX2Ftb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdG90YWwgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY3JlZGl0ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcyMzA2MDg4Zi05N2VkLTQyOTMtOGQyOC04YWI2MjdmMjcyZDcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJfc3ltYm9sID0gJ0JUQycsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldF9zeW1ib2wgPSAnQlRDJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2xlZ2FjeV9pZCA9ICdCVEMnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBUcnVlLAogICAgICAgICAgICAgICAgdHJhZGluZ19hY2NvdW50cyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5leGNoYW5nZV90cmFkaW5nX2FjY291bnQuRXhjaGFuZ2VUcmFkaW5nQWNjb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuZXhjaGFuZ2VfYXNzZXQuRXhjaGFuZ2VBc3NldCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWxhbmNlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2tlZF9hbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWwgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWRpdCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcyMzA2MDg4Zi05N2VkLTQyOTMtOGQyOC04YWI2MjdmMjcyZDcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlcl9zeW1ib2wgPSAnQlRDJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfc3ltYm9sID0gJ0JUQycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2xlZ2FjeV9pZCA9ICdCVEMnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGlzX3N1YmFjY291bnQgPSBUcnVlLAogICAgICAgICAgICAgICAgbWFpbl9hY2NvdW50X2lkID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBFeGNoYW5nZUFjY291bnQoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RXhjaGFuZ2VBY2NvdW50KHNlbGYpOgogICAgICAgICIiIlRlc3QgRXhjaGFuZ2VBY2NvdW50IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_exchange_accounts_api.py b/test/test_exchange_accounts_api.py index 14b7359c..40d0f27b 100644 --- a/test/test_exchange_accounts_api.py +++ b/test/test_exchange_accounts_api.py @@ -1,81 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.exchange_accounts_api import ExchangeAccountsApi - - -class TestExchangeAccountsApi(unittest.TestCase): - """ExchangeAccountsApi unit test stubs""" - - def setUp(self) -> None: - self.api = ExchangeAccountsApi() - - def tearDown(self) -> None: - pass - - def test_add_exchange_account(self) -> None: - """Test case for add_exchange_account - - Add an exchange account - """ - pass - - def test_convert_assets(self) -> None: - """Test case for convert_assets - - Convert exchange account funds - """ - pass - - def test_get_exchange_account(self) -> None: - """Test case for get_exchange_account - - Get a specific exchange account - """ - pass - - def test_get_exchange_account_asset(self) -> None: - """Test case for get_exchange_account_asset - - Get an asset for an exchange account - """ - pass - - def test_get_exchange_accounts_credentials_public_key(self) -> None: - """Test case for get_exchange_accounts_credentials_public_key - - Get public key to encrypt exchange credentials - """ - pass - - def test_get_paged_exchange_accounts(self) -> None: - """Test case for get_paged_exchange_accounts - - List connected exchange accounts - """ - pass - - def test_internal_transfer(self) -> None: - """Test case for internal_transfer - - Internal transfer for exchange accounts - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLmV4Y2hhbmdlX2FjY291bnRzX2FwaSBpbXBvcnQgRXhjaGFuZ2VBY2NvdW50c0FwaQoKCmNsYXNzIFRlc3RFeGNoYW5nZUFjY291bnRzQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkV4Y2hhbmdlQWNjb3VudHNBcGkgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgc2VsZi5hcGkgPSBFeGNoYW5nZUFjY291bnRzQXBpKCkKCiAgICBkZWYgdGVhckRvd24oc2VsZikgLT4gTm9uZToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfYWRkX2V4Y2hhbmdlX2FjY291bnQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGFkZF9leGNoYW5nZV9hY2NvdW50CgogICAgICAgIEFkZCBhbiBleGNoYW5nZSBhY2NvdW50CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2NvbnZlcnRfYXNzZXRzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBjb252ZXJ0X2Fzc2V0cwoKICAgICAgICBDb252ZXJ0IGV4Y2hhbmdlIGFjY291bnQgZnVuZHMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2V4Y2hhbmdlX2FjY291bnQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9leGNoYW5nZV9hY2NvdW50CgogICAgICAgIEdldCBhIHNwZWNpZmljIGV4Y2hhbmdlIGFjY291bnQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2V4Y2hhbmdlX2FjY291bnRfYXNzZXQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9leGNoYW5nZV9hY2NvdW50X2Fzc2V0CgogICAgICAgIEdldCBhbiBhc3NldCBmb3IgYW4gZXhjaGFuZ2UgYWNjb3VudAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfZXhjaGFuZ2VfYWNjb3VudHNfY3JlZGVudGlhbHNfcHVibGljX2tleShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2V4Y2hhbmdlX2FjY291bnRzX2NyZWRlbnRpYWxzX3B1YmxpY19rZXkKCiAgICAgICAgR2V0IHB1YmxpYyBrZXkgdG8gZW5jcnlwdCBleGNoYW5nZSBjcmVkZW50aWFscwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfcGFnZWRfZXhjaGFuZ2VfYWNjb3VudHMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9wYWdlZF9leGNoYW5nZV9hY2NvdW50cwoKICAgICAgICBMaXN0IGNvbm5lY3RlZCBleGNoYW5nZSBhY2NvdW50cwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9pbnRlcm5hbF90cmFuc2ZlcihzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgaW50ZXJuYWxfdHJhbnNmZXIKCiAgICAgICAgSW50ZXJuYWwgdHJhbnNmZXIgZm9yIGV4Y2hhbmdlIGFjY291bnRzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_exchange_asset.py b/test/test_exchange_asset.py index 8855ab08..93aa618a 100644 --- a/test/test_exchange_asset.py +++ b/test/test_exchange_asset.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.exchange_asset import ExchangeAsset - - -class TestExchangeAsset(unittest.TestCase): - """ExchangeAsset unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ExchangeAsset: - """Test ExchangeAsset - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ExchangeAsset` - """ - model = ExchangeAsset() - if include_optional: - return ExchangeAsset( - id = '', - balance = '', - locked_amount = '', - total = '', - available = '', - credit = '', - asset_id = '2306088f-97ed-4293-8d28-8ab627f272d7', - provider_symbol = 'BTC', - asset_symbol = 'BTC', - asset_legacy_id = 'BTC' - ) - else: - return ExchangeAsset( - ) - """ - - def testExchangeAsset(self): - """Test ExchangeAsset""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4Y2hhbmdlX2Fzc2V0IGltcG9ydCBFeGNoYW5nZUFzc2V0CgoKY2xhc3MgVGVzdEV4Y2hhbmdlQXNzZXQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRXhjaGFuZ2VBc3NldCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRXhjaGFuZ2VBc3NldDoKICAgICAgICAiIiJUZXN0IEV4Y2hhbmdlQXNzZXQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRXhjaGFuZ2VBc3NldGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEV4Y2hhbmdlQXNzZXQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBFeGNoYW5nZUFzc2V0KAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIGJhbGFuY2UgPSAnJywKICAgICAgICAgICAgICAgIGxvY2tlZF9hbW91bnQgPSAnJywKICAgICAgICAgICAgICAgIHRvdGFsID0gJycsCiAgICAgICAgICAgICAgICBhdmFpbGFibGUgPSAnJywKICAgICAgICAgICAgICAgIGNyZWRpdCA9ICcnLAogICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnMjMwNjA4OGYtOTdlZC00MjkzLThkMjgtOGFiNjI3ZjI3MmQ3JywKICAgICAgICAgICAgICAgIHByb3ZpZGVyX3N5bWJvbCA9ICdCVEMnLAogICAgICAgICAgICAgICAgYXNzZXRfc3ltYm9sID0gJ0JUQycsCiAgICAgICAgICAgICAgICBhc3NldF9sZWdhY3lfaWQgPSAnQlRDJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEV4Y2hhbmdlQXNzZXQoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RXhjaGFuZ2VBc3NldChzZWxmKToKICAgICAgICAiIiJUZXN0IEV4Y2hhbmdlQXNzZXQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_exchange_settlement_transactions_response.py b/test/test_exchange_settlement_transactions_response.py index 8ba516c8..50f0d268 100644 --- a/test/test_exchange_settlement_transactions_response.py +++ b/test/test_exchange_settlement_transactions_response.py @@ -1,70 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.exchange_settlement_transactions_response import ( - ExchangeSettlementTransactionsResponse, -) - - -class TestExchangeSettlementTransactionsResponse(unittest.TestCase): - """ExchangeSettlementTransactionsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ExchangeSettlementTransactionsResponse: - """Test ExchangeSettlementTransactionsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ExchangeSettlementTransactionsResponse` - """ - model = ExchangeSettlementTransactionsResponse() - if include_optional: - return ExchangeSettlementTransactionsResponse( - to_exchange = [ - fireblocks.models.to_exchange_transaction.ToExchangeTransaction( - asset_id = '', - amount = '', - dst_address = '', - dst_tag = '', ) - ], - to_collateral = [ - fireblocks.models.to_collateral_transaction.ToCollateralTransaction( - asset = '', - amount = '', - src_address = '', - src_tag = '', - fee = '', ) - ] - ) - else: - return ExchangeSettlementTransactionsResponse( - ) - """ - - def testExchangeSettlementTransactionsResponse(self): - """Test ExchangeSettlementTransactionsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4Y2hhbmdlX3NldHRsZW1lbnRfdHJhbnNhY3Rpb25zX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBFeGNoYW5nZVNldHRsZW1lbnRUcmFuc2FjdGlvbnNSZXNwb25zZSwKKQoKCmNsYXNzIFRlc3RFeGNoYW5nZVNldHRsZW1lbnRUcmFuc2FjdGlvbnNSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJFeGNoYW5nZVNldHRsZW1lbnRUcmFuc2FjdGlvbnNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRXhjaGFuZ2VTZXR0bGVtZW50VHJhbnNhY3Rpb25zUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBFeGNoYW5nZVNldHRsZW1lbnRUcmFuc2FjdGlvbnNSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBFeGNoYW5nZVNldHRsZW1lbnRUcmFuc2FjdGlvbnNSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEV4Y2hhbmdlU2V0dGxlbWVudFRyYW5zYWN0aW9uc1Jlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRXhjaGFuZ2VTZXR0bGVtZW50VHJhbnNhY3Rpb25zUmVzcG9uc2UoCiAgICAgICAgICAgICAgICB0b19leGNoYW5nZSA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50b19leGNoYW5nZV90cmFuc2FjdGlvbi5Ub0V4Y2hhbmdlVHJhbnNhY3Rpb24oCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRzdF9hZGRyZXNzID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBkc3RfdGFnID0gJycsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgdG9fY29sbGF0ZXJhbCA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50b19jb2xsYXRlcmFsX3RyYW5zYWN0aW9uLlRvQ29sbGF0ZXJhbFRyYW5zYWN0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBzcmNfYWRkcmVzcyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3JjX3RhZyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZmVlID0gJycsICkKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRXhjaGFuZ2VTZXR0bGVtZW50VHJhbnNhY3Rpb25zUmVzcG9uc2UoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RXhjaGFuZ2VTZXR0bGVtZW50VHJhbnNhY3Rpb25zUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBFeGNoYW5nZVNldHRsZW1lbnRUcmFuc2FjdGlvbnNSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_exchange_trading_account.py b/test/test_exchange_trading_account.py index b40931a6..efb8f50d 100644 --- a/test/test_exchange_trading_account.py +++ b/test/test_exchange_trading_account.py @@ -1,68 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.exchange_trading_account import ExchangeTradingAccount - - -class TestExchangeTradingAccount(unittest.TestCase): - """ExchangeTradingAccount unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ExchangeTradingAccount: - """Test ExchangeTradingAccount - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ExchangeTradingAccount` - """ - model = ExchangeTradingAccount() - if include_optional: - return ExchangeTradingAccount( - type = '', - name = '', - assets = [ - fireblocks.models.exchange_asset.ExchangeAsset( - id = '', - balance = '', - locked_amount = '', - total = '', - available = '', - credit = '', - asset_id = '2306088f-97ed-4293-8d28-8ab627f272d7', - provider_symbol = 'BTC', - asset_symbol = 'BTC', - asset_legacy_id = 'BTC', ) - ] - ) - else: - return ExchangeTradingAccount( - ) - """ - - def testExchangeTradingAccount(self): - """Test ExchangeTradingAccount""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4Y2hhbmdlX3RyYWRpbmdfYWNjb3VudCBpbXBvcnQgRXhjaGFuZ2VUcmFkaW5nQWNjb3VudAoKCmNsYXNzIFRlc3RFeGNoYW5nZVRyYWRpbmdBY2NvdW50KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkV4Y2hhbmdlVHJhZGluZ0FjY291bnQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEV4Y2hhbmdlVHJhZGluZ0FjY291bnQ6CiAgICAgICAgIiIiVGVzdCBFeGNoYW5nZVRyYWRpbmdBY2NvdW50CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEV4Y2hhbmdlVHJhZGluZ0FjY291bnRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBFeGNoYW5nZVRyYWRpbmdBY2NvdW50KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRXhjaGFuZ2VUcmFkaW5nQWNjb3VudCgKICAgICAgICAgICAgICAgIHR5cGUgPSAnJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnJywKICAgICAgICAgICAgICAgIGFzc2V0cyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5leGNoYW5nZV9hc3NldC5FeGNoYW5nZUFzc2V0KAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmFsYW5jZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbG9ja2VkX2Ftb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdG90YWwgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY3JlZGl0ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcyMzA2MDg4Zi05N2VkLTQyOTMtOGQyOC04YWI2MjdmMjcyZDcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJfc3ltYm9sID0gJ0JUQycsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldF9zeW1ib2wgPSAnQlRDJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2xlZ2FjeV9pZCA9ICdCVEMnLCApCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEV4Y2hhbmdlVHJhZGluZ0FjY291bnQoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RXhjaGFuZ2VUcmFkaW5nQWNjb3VudChzZWxmKToKICAgICAgICAiIiJUZXN0IEV4Y2hhbmdlVHJhZGluZ0FjY291bnQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_exchange_type.py b/test/test_exchange_type.py index c6c7bf80..947b29c7 100644 --- a/test/test_exchange_type.py +++ b/test/test_exchange_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.exchange_type import ExchangeType - - -class TestExchangeType(unittest.TestCase): - """ExchangeType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testExchangeType(self): - """Test ExchangeType""" - # inst = ExchangeType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4Y2hhbmdlX3R5cGUgaW1wb3J0IEV4Y2hhbmdlVHlwZQoKCmNsYXNzIFRlc3RFeGNoYW5nZVR5cGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRXhjaGFuZ2VUeXBlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdEV4Y2hhbmdlVHlwZShzZWxmKToKICAgICAgICAiIiJUZXN0IEV4Y2hhbmdlVHlwZSIiIgogICAgICAgICMgaW5zdCA9IEV4Y2hhbmdlVHlwZSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_execution_conversion_operation.py b/test/test_execution_conversion_operation.py index a5625e14..fa65a1d5 100644 --- a/test/test_execution_conversion_operation.py +++ b/test/test_execution_conversion_operation.py @@ -1,109 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.execution_conversion_operation import ( - ExecutionConversionOperation, -) - - -class TestExecutionConversionOperation(unittest.TestCase): - """ExecutionConversionOperation unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ExecutionConversionOperation: - """Test ExecutionConversionOperation - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ExecutionConversionOperation` - """ - model = ExecutionConversionOperation() - if include_optional: - return ExecutionConversionOperation( - operation_id = '', - status = 'PENDING', - validation_failure = fireblocks.models.conversion_validation_failure.ConversionValidationFailure( - reason = 'ACCOUNT_NOT_FOUND', - data = { - 'key' : null - }, ), - operation_type = 'CONVERSION', - preview = fireblocks.models.conversion_operation_preview.ConversionOperationPreview( - input = fireblocks.models.conversion_operation_config_params.ConversionOperationConfigParams( - amount = '', - account_id = '', - src_asset_id = '', - dest_asset_id = '', - slippage_basis_points = 0, ), - output = fireblocks.models.conversion_operation_preview_output.ConversionOperationPreviewOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - conversion_rate = '', - time_seconds = 1.337, ), - failure = fireblocks.models.conversion_operation_failure.ConversionOperationFailure( - reason = 'INVALID_AMOUNT', - data = { - 'key' : null - }, ), ), - execution = fireblocks.models.conversion_operation_execution.ConversionOperationExecution( - input = fireblocks.models.conversion_operation_config_params.ConversionOperationConfigParams( - amount = '', - account_id = '', - src_asset_id = '', - dest_asset_id = '', - slippage_basis_points = 0, ), - output = fireblocks.models.conversion_operation_execution_output.ConversionOperationExecutionOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - conversion_rate = '', ), - started_at = 1.337, - finished_at = 1.337, - failure = fireblocks.models.conversion_operation_failure.ConversionOperationFailure( - reason = 'INVALID_AMOUNT', - data = { - 'key' : null - }, ), ) - ) - else: - return ExecutionConversionOperation( - operation_id = '', - status = 'PENDING', - operation_type = 'CONVERSION', - ) - """ - - def testExecutionConversionOperation(self): - """Test ExecutionConversionOperation""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9jb252ZXJzaW9uX29wZXJhdGlvbiBpbXBvcnQgKAogICAgRXhlY3V0aW9uQ29udmVyc2lvbk9wZXJhdGlvbiwKKQoKCmNsYXNzIFRlc3RFeGVjdXRpb25Db252ZXJzaW9uT3BlcmF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkV4ZWN1dGlvbkNvbnZlcnNpb25PcGVyYXRpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEV4ZWN1dGlvbkNvbnZlcnNpb25PcGVyYXRpb246CiAgICAgICAgIiIiVGVzdCBFeGVjdXRpb25Db252ZXJzaW9uT3BlcmF0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEV4ZWN1dGlvbkNvbnZlcnNpb25PcGVyYXRpb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBFeGVjdXRpb25Db252ZXJzaW9uT3BlcmF0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRXhlY3V0aW9uQ29udmVyc2lvbk9wZXJhdGlvbigKICAgICAgICAgICAgICAgIG9wZXJhdGlvbl9pZCA9ICcnLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ1BFTkRJTkcnLAogICAgICAgICAgICAgICAgdmFsaWRhdGlvbl9mYWlsdXJlID0gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl92YWxpZGF0aW9uX2ZhaWx1cmUuQ29udmVyc2lvblZhbGlkYXRpb25GYWlsdXJlKAogICAgICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdBQ0NPVU5UX05PVF9GT1VORCcsIAogICAgICAgICAgICAgICAgICAgIGRhdGEgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICdrZXknIDogbnVsbAogICAgICAgICAgICAgICAgICAgICAgICB9LCApLAogICAgICAgICAgICAgICAgb3BlcmF0aW9uX3R5cGUgPSAnQ09OVkVSU0lPTicsCiAgICAgICAgICAgICAgICBwcmV2aWV3ID0gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fcHJldmlldy5Db252ZXJzaW9uT3BlcmF0aW9uUHJldmlldygKICAgICAgICAgICAgICAgICAgICBpbnB1dCA9IGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMuQ29udmVyc2lvbk9wZXJhdGlvbkNvbmZpZ1BhcmFtcygKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBzcmNfYXNzZXRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfYXNzZXRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNsaXBwYWdlX2Jhc2lzX3BvaW50cyA9IDAsICksIAogICAgICAgICAgICAgICAgICAgIG91dHB1dCA9IGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX3ByZXZpZXdfb3V0cHV0LkNvbnZlcnNpb25PcGVyYXRpb25QcmV2aWV3T3V0cHV0KAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgZmVlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfYW1vdW50LkFzc2V0QW1vdW50KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnNpb25fcmF0ZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdGltZV9zZWNvbmRzID0gMS4zMzcsICksIAogICAgICAgICAgICAgICAgICAgIGZhaWx1cmUgPSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJzaW9uX29wZXJhdGlvbl9mYWlsdXJlLkNvbnZlcnNpb25PcGVyYXRpb25GYWlsdXJlKAogICAgICAgICAgICAgICAgICAgICAgICByZWFzb24gPSAnSU5WQUxJRF9BTU9VTlQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdrZXknIDogbnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgKSwgKSwKICAgICAgICAgICAgICAgIGV4ZWN1dGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLmNvbnZlcnNpb25fb3BlcmF0aW9uX2V4ZWN1dGlvbi5Db252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uKAogICAgICAgICAgICAgICAgICAgIGlucHV0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fY29uZmlnX3BhcmFtcy5Db252ZXJzaW9uT3BlcmF0aW9uQ29uZmlnUGFyYW1zKAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNyY19hc3NldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9hc3NldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc2xpcHBhZ2VfYmFzaXNfcG9pbnRzID0gMCwgKSwgCiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuY29udmVyc2lvbl9vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dC5Db252ZXJzaW9uT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0KAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgZmVlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfYW1vdW50LkFzc2V0QW1vdW50KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnNpb25fcmF0ZSA9ICcnLCApLCAKICAgICAgICAgICAgICAgICAgICBzdGFydGVkX2F0ID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkX2F0ID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgIGZhaWx1cmUgPSBmaXJlYmxvY2tzLm1vZGVscy5jb252ZXJzaW9uX29wZXJhdGlvbl9mYWlsdXJlLkNvbnZlcnNpb25PcGVyYXRpb25GYWlsdXJlKAogICAgICAgICAgICAgICAgICAgICAgICByZWFzb24gPSAnSU5WQUxJRF9BTU9VTlQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdrZXknIDogbnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgKSwgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEV4ZWN1dGlvbkNvbnZlcnNpb25PcGVyYXRpb24oCiAgICAgICAgICAgICAgICBvcGVyYXRpb25faWQgPSAnJywKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdQRU5ESU5HJywKICAgICAgICAgICAgICAgIG9wZXJhdGlvbl90eXBlID0gJ0NPTlZFUlNJT04nLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEV4ZWN1dGlvbkNvbnZlcnNpb25PcGVyYXRpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBFeGVjdXRpb25Db252ZXJzaW9uT3BlcmF0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_execution_disbursement_operation.py b/test/test_execution_disbursement_operation.py index cf241715..4e37e950 100644 --- a/test/test_execution_disbursement_operation.py +++ b/test/test_execution_disbursement_operation.py @@ -1,112 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.execution_disbursement_operation import ( - ExecutionDisbursementOperation, -) - - -class TestExecutionDisbursementOperation(unittest.TestCase): - """ExecutionDisbursementOperation unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ExecutionDisbursementOperation: - """Test ExecutionDisbursementOperation - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ExecutionDisbursementOperation` - """ - model = ExecutionDisbursementOperation() - if include_optional: - return ExecutionDisbursementOperation( - operation_id = '', - status = 'PENDING', - validation_failure = fireblocks.models.disbursement_validation_failure.DisbursementValidationFailure( - reason = 'ACCOUNT_NOT_FOUND', - data = { - 'key' : null - }, ), - operation_type = 'DISBURSEMENT', - preview = fireblocks.models.disbursement_operation_preview.DisbursementOperationPreview( - input = fireblocks.models.disbursement_operation_input.DisbursementOperationInput( - amount = '', - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ), - output = fireblocks.models.disbursement_operation_preview_output.DisbursementOperationPreviewOutput( - instruction_set = [ - null - ], ), - failure = fireblocks.models.operation_execution_failure.OperationExecutionFailure( - reason = '', - data = { - 'key' : null - }, ), ), - execution = fireblocks.models.disbursement_operation_execution.DisbursementOperationExecution( - input = fireblocks.models.disbursement_operation_input.DisbursementOperationInput( - amount = '', - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ), - output = fireblocks.models.disbursement_operation_execution_output.DisbursementOperationExecutionOutput( - instruction_set = [ - fireblocks.models.disbursement_instruction_output.DisbursementInstructionOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - payee_account = null, ) - ], ), - payout_id = '', - started_at = 1.337, - finished_at = 1.337, - failure = fireblocks.models.operation_execution_failure.OperationExecutionFailure( - reason = '', - data = { - 'key' : null - }, ), ) - ) - else: - return ExecutionDisbursementOperation( - operation_id = '', - status = 'PENDING', - operation_type = 'DISBURSEMENT', - ) - """ - - def testExecutionDisbursementOperation(self): - """Test ExecutionDisbursementOperation""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9kaXNidXJzZW1lbnRfb3BlcmF0aW9uIGltcG9ydCAoCiAgICBFeGVjdXRpb25EaXNidXJzZW1lbnRPcGVyYXRpb24sCikKCgpjbGFzcyBUZXN0RXhlY3V0aW9uRGlzYnVyc2VtZW50T3BlcmF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkV4ZWN1dGlvbkRpc2J1cnNlbWVudE9wZXJhdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRXhlY3V0aW9uRGlzYnVyc2VtZW50T3BlcmF0aW9uOgogICAgICAgICIiIlRlc3QgRXhlY3V0aW9uRGlzYnVyc2VtZW50T3BlcmF0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEV4ZWN1dGlvbkRpc2J1cnNlbWVudE9wZXJhdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEV4ZWN1dGlvbkRpc2J1cnNlbWVudE9wZXJhdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEV4ZWN1dGlvbkRpc2J1cnNlbWVudE9wZXJhdGlvbigKICAgICAgICAgICAgICAgIG9wZXJhdGlvbl9pZCA9ICcnLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ1BFTkRJTkcnLAogICAgICAgICAgICAgICAgdmFsaWRhdGlvbl9mYWlsdXJlID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X3ZhbGlkYXRpb25fZmFpbHVyZS5EaXNidXJzZW1lbnRWYWxpZGF0aW9uRmFpbHVyZSgKICAgICAgICAgICAgICAgICAgICByZWFzb24gPSAnQUNDT1VOVF9OT1RfRk9VTkQnLCAKICAgICAgICAgICAgICAgICAgICBkYXRhID0gewogICAgICAgICAgICAgICAgICAgICAgICAna2V5JyA6IG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgfSwgKSwKICAgICAgICAgICAgICAgIG9wZXJhdGlvbl90eXBlID0gJ0RJU0JVUlNFTUVOVCcsCiAgICAgICAgICAgICAgICBwcmV2aWV3ID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9wcmV2aWV3LkRpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXcoCiAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2lucHV0LkRpc2J1cnNlbWVudE9wZXJhdGlvbklucHV0KAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHBheW1lbnRfYWNjb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFjY291bnQuQWNjb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X3R5cGUgPSAnRVhDSEFOR0VfQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbl9zZXQgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCAKICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX3ByZXZpZXdfb3V0cHV0LkRpc2J1cnNlbWVudE9wZXJhdGlvblByZXZpZXdPdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgICAgIGluc3RydWN0aW9uX3NldCA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksIAogICAgICAgICAgICAgICAgICAgIGZhaWx1cmUgPSBmaXJlYmxvY2tzLm1vZGVscy5vcGVyYXRpb25fZXhlY3V0aW9uX2ZhaWx1cmUuT3BlcmF0aW9uRXhlY3V0aW9uRmFpbHVyZSgKICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2tleScgOiBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCApLCApLAogICAgICAgICAgICAgICAgZXhlY3V0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9leGVjdXRpb24uRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uKAogICAgICAgICAgICAgICAgICAgIGlucHV0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9pbnB1dC5EaXNidXJzZW1lbnRPcGVyYXRpb25JbnB1dCgKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBwYXltZW50X2FjY291bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50LkFjY291bnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF90eXBlID0gJ0VYQ0hBTkdFX0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb25fc2V0ID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgCiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9leGVjdXRpb25fb3V0cHV0LkRpc2J1cnNlbWVudE9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCgKICAgICAgICAgICAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb25fc2V0ID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X2luc3RydWN0aW9uX291dHB1dC5EaXNidXJzZW1lbnRJbnN0cnVjdGlvbk91dHB1dCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfYW1vdW50LkFzc2V0QW1vdW50KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBheWVlX2FjY291bnQgPSBudWxsLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCAKICAgICAgICAgICAgICAgICAgICBwYXlvdXRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgc3RhcnRlZF9hdCA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICBmaW5pc2hlZF9hdCA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICBmYWlsdXJlID0gZmlyZWJsb2Nrcy5tb2RlbHMub3BlcmF0aW9uX2V4ZWN1dGlvbl9mYWlsdXJlLk9wZXJhdGlvbkV4ZWN1dGlvbkZhaWx1cmUoCiAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbiA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdrZXknIDogbnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgKSwgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEV4ZWN1dGlvbkRpc2J1cnNlbWVudE9wZXJhdGlvbigKICAgICAgICAgICAgICAgIG9wZXJhdGlvbl9pZCA9ICcnLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ1BFTkRJTkcnLAogICAgICAgICAgICAgICAgb3BlcmF0aW9uX3R5cGUgPSAnRElTQlVSU0VNRU5UJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RFeGVjdXRpb25EaXNidXJzZW1lbnRPcGVyYXRpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBFeGVjdXRpb25EaXNidXJzZW1lbnRPcGVyYXRpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_execution_operation_status.py b/test/test_execution_operation_status.py index fa26c45b..5606f00b 100644 --- a/test/test_execution_operation_status.py +++ b/test/test_execution_operation_status.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.execution_operation_status import ExecutionOperationStatus - - -class TestExecutionOperationStatus(unittest.TestCase): - """ExecutionOperationStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testExecutionOperationStatus(self): - """Test ExecutionOperationStatus""" - # inst = ExecutionOperationStatus() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9vcGVyYXRpb25fc3RhdHVzIGltcG9ydCBFeGVjdXRpb25PcGVyYXRpb25TdGF0dXMKCgpjbGFzcyBUZXN0RXhlY3V0aW9uT3BlcmF0aW9uU3RhdHVzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkV4ZWN1dGlvbk9wZXJhdGlvblN0YXR1cyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RFeGVjdXRpb25PcGVyYXRpb25TdGF0dXMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBFeGVjdXRpb25PcGVyYXRpb25TdGF0dXMiIiIKICAgICAgICAjIGluc3QgPSBFeGVjdXRpb25PcGVyYXRpb25TdGF0dXMoKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_execution_request_base_details.py b/test/test_execution_request_base_details.py index d678f3c1..54e36555 100644 --- a/test/test_execution_request_base_details.py +++ b/test/test_execution_request_base_details.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.execution_request_base_details import ExecutionRequestBaseDetails - - -class TestExecutionRequestBaseDetails(unittest.TestCase): - """ExecutionRequestBaseDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ExecutionRequestBaseDetails: - """Test ExecutionRequestBaseDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ExecutionRequestBaseDetails` - """ - model = ExecutionRequestBaseDetails() - if include_optional: - return ExecutionRequestBaseDetails( - side = 'BUY', - base_amount = '', - base_asset_id = '', - base_asset_rail = 'BLOCKCHAIN', - quote_asset_id = '', - quote_asset_rail = 'BLOCKCHAIN' - ) - else: - return ExecutionRequestBaseDetails( - side = 'BUY', - base_amount = '', - base_asset_id = '', - quote_asset_id = '', - ) - """ - - def testExecutionRequestBaseDetails(self): - """Test ExecutionRequestBaseDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9yZXF1ZXN0X2Jhc2VfZGV0YWlscyBpbXBvcnQgRXhlY3V0aW9uUmVxdWVzdEJhc2VEZXRhaWxzCgoKY2xhc3MgVGVzdEV4ZWN1dGlvblJlcXVlc3RCYXNlRGV0YWlscyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJFeGVjdXRpb25SZXF1ZXN0QmFzZURldGFpbHMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEV4ZWN1dGlvblJlcXVlc3RCYXNlRGV0YWlsczoKICAgICAgICAiIiJUZXN0IEV4ZWN1dGlvblJlcXVlc3RCYXNlRGV0YWlscwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBFeGVjdXRpb25SZXF1ZXN0QmFzZURldGFpbHNgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBFeGVjdXRpb25SZXF1ZXN0QmFzZURldGFpbHMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBFeGVjdXRpb25SZXF1ZXN0QmFzZURldGFpbHMoCiAgICAgICAgICAgICAgICBzaWRlID0gJ0JVWScsCiAgICAgICAgICAgICAgICBiYXNlX2Ftb3VudCA9ICcnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldF9yYWlsID0gJ0JMT0NLQ0hBSU4nLAogICAgICAgICAgICAgICAgcXVvdGVfYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIHF1b3RlX2Fzc2V0X3JhaWwgPSAnQkxPQ0tDSEFJTicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBFeGVjdXRpb25SZXF1ZXN0QmFzZURldGFpbHMoCiAgICAgICAgICAgICAgICBzaWRlID0gJ0JVWScsCiAgICAgICAgICAgICAgICBiYXNlX2Ftb3VudCA9ICcnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgcXVvdGVfYXNzZXRfaWQgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RFeGVjdXRpb25SZXF1ZXN0QmFzZURldGFpbHMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBFeGVjdXRpb25SZXF1ZXN0QmFzZURldGFpbHMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_execution_request_details.py b/test/test_execution_request_details.py index f1f4c0a6..34e1c441 100644 --- a/test/test_execution_request_details.py +++ b/test/test_execution_request_details.py @@ -1,68 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.execution_request_details import ExecutionRequestDetails - - -class TestExecutionRequestDetails(unittest.TestCase): - """ExecutionRequestDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ExecutionRequestDetails: - """Test ExecutionRequestDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ExecutionRequestDetails` - """ - model = ExecutionRequestDetails() - if include_optional: - return ExecutionRequestDetails( - type = 'QUOTE', - side = 'BUY', - base_amount = '', - base_asset_id = '', - base_asset_rail = 'BLOCKCHAIN', - quote_asset_id = '', - quote_asset_rail = 'BLOCKCHAIN', - quote_id = '', - re_quote = None - ) - else: - return ExecutionRequestDetails( - type = 'QUOTE', - side = 'BUY', - base_amount = '', - base_asset_id = '', - quote_asset_id = '', - quote_id = '', - ) - """ - - def testExecutionRequestDetails(self): - """Test ExecutionRequestDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHMgaW1wb3J0IEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzCgoKY2xhc3MgVGVzdEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkV4ZWN1dGlvblJlcXVlc3REZXRhaWxzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBFeGVjdXRpb25SZXF1ZXN0RGV0YWlsczoKICAgICAgICAiIiJUZXN0IEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRXhlY3V0aW9uUmVxdWVzdERldGFpbHMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBFeGVjdXRpb25SZXF1ZXN0RGV0YWlscygKICAgICAgICAgICAgICAgIHR5cGUgPSAnUVVPVEUnLAogICAgICAgICAgICAgICAgc2lkZSA9ICdCVVknLAogICAgICAgICAgICAgICAgYmFzZV9hbW91bnQgPSAnJywKICAgICAgICAgICAgICAgIGJhc2VfYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIGJhc2VfYXNzZXRfcmFpbCA9ICdCTE9DS0NIQUlOJywKICAgICAgICAgICAgICAgIHF1b3RlX2Fzc2V0X2lkID0gJycsCiAgICAgICAgICAgICAgICBxdW90ZV9hc3NldF9yYWlsID0gJ0JMT0NLQ0hBSU4nLAogICAgICAgICAgICAgICAgcXVvdGVfaWQgPSAnJywKICAgICAgICAgICAgICAgIHJlX3F1b3RlID0gTm9uZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzKAogICAgICAgICAgICAgICAgdHlwZSA9ICdRVU9URScsCiAgICAgICAgICAgICAgICBzaWRlID0gJ0JVWScsCiAgICAgICAgICAgICAgICBiYXNlX2Ftb3VudCA9ICcnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgcXVvdGVfYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIHF1b3RlX2lkID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RXhlY3V0aW9uUmVxdWVzdERldGFpbHMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBFeGVjdXRpb25SZXF1ZXN0RGV0YWlscyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_execution_request_details_type.py b/test/test_execution_request_details_type.py new file mode 100644 index 00000000..7dd39519 --- /dev/null +++ b/test/test_execution_request_details_type.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHNfdHlwZSBpbXBvcnQgRXhlY3V0aW9uUmVxdWVzdERldGFpbHNUeXBlCgoKY2xhc3MgVGVzdEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzVHlwZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJFeGVjdXRpb25SZXF1ZXN0RGV0YWlsc1R5cGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0RXhlY3V0aW9uUmVxdWVzdERldGFpbHNUeXBlKHNlbGYpOgogICAgICAgICIiIlRlc3QgRXhlY3V0aW9uUmVxdWVzdERldGFpbHNUeXBlIiIiCiAgICAgICAgIyBpbnN0ID0gRXhlY3V0aW9uUmVxdWVzdERldGFpbHNUeXBlKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_execution_response_base_details.py b/test/test_execution_response_base_details.py index 4db0b75b..b349b1b6 100644 --- a/test/test_execution_response_base_details.py +++ b/test/test_execution_response_base_details.py @@ -1,65 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.execution_response_base_details import ( - ExecutionResponseBaseDetails, -) - - -class TestExecutionResponseBaseDetails(unittest.TestCase): - """ExecutionResponseBaseDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ExecutionResponseBaseDetails: - """Test ExecutionResponseBaseDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ExecutionResponseBaseDetails` - """ - model = ExecutionResponseBaseDetails() - if include_optional: - return ExecutionResponseBaseDetails( - side = 'BUY', - base_amount = '', - base_asset_id = '', - base_asset_rail = 'BLOCKCHAIN', - quote_asset_id = '', - quote_asset_rail = 'BLOCKCHAIN' - ) - else: - return ExecutionResponseBaseDetails( - side = 'BUY', - base_amount = '', - base_asset_id = '', - quote_asset_id = '', - ) - """ - - def testExecutionResponseBaseDetails(self): - """Test ExecutionResponseBaseDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9yZXNwb25zZV9iYXNlX2RldGFpbHMgaW1wb3J0ICgKICAgIEV4ZWN1dGlvblJlc3BvbnNlQmFzZURldGFpbHMsCikKCgpjbGFzcyBUZXN0RXhlY3V0aW9uUmVzcG9uc2VCYXNlRGV0YWlscyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJFeGVjdXRpb25SZXNwb25zZUJhc2VEZXRhaWxzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBFeGVjdXRpb25SZXNwb25zZUJhc2VEZXRhaWxzOgogICAgICAgICIiIlRlc3QgRXhlY3V0aW9uUmVzcG9uc2VCYXNlRGV0YWlscwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBFeGVjdXRpb25SZXNwb25zZUJhc2VEZXRhaWxzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRXhlY3V0aW9uUmVzcG9uc2VCYXNlRGV0YWlscygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEV4ZWN1dGlvblJlc3BvbnNlQmFzZURldGFpbHMoCiAgICAgICAgICAgICAgICBzaWRlID0gJ0JVWScsCiAgICAgICAgICAgICAgICBiYXNlX2Ftb3VudCA9ICcnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldF9yYWlsID0gJ0JMT0NLQ0hBSU4nLAogICAgICAgICAgICAgICAgcXVvdGVfYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIHF1b3RlX2Fzc2V0X3JhaWwgPSAnQkxPQ0tDSEFJTicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBFeGVjdXRpb25SZXNwb25zZUJhc2VEZXRhaWxzKAogICAgICAgICAgICAgICAgc2lkZSA9ICdCVVknLAogICAgICAgICAgICAgICAgYmFzZV9hbW91bnQgPSAnJywKICAgICAgICAgICAgICAgIGJhc2VfYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIHF1b3RlX2Fzc2V0X2lkID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RXhlY3V0aW9uUmVzcG9uc2VCYXNlRGV0YWlscyhzZWxmKToKICAgICAgICAiIiJUZXN0IEV4ZWN1dGlvblJlc3BvbnNlQmFzZURldGFpbHMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_execution_response_details.py b/test/test_execution_response_details.py index 6073f522..84665e50 100644 --- a/test/test_execution_response_details.py +++ b/test/test_execution_response_details.py @@ -1,70 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.execution_response_details import ExecutionResponseDetails - - -class TestExecutionResponseDetails(unittest.TestCase): - """ExecutionResponseDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ExecutionResponseDetails: - """Test ExecutionResponseDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ExecutionResponseDetails` - """ - model = ExecutionResponseDetails() - if include_optional: - return ExecutionResponseDetails( - type = 'QUOTE', - side = 'BUY', - base_amount = '', - base_asset_id = '', - base_asset_rail = 'BLOCKCHAIN', - quote_asset_id = '', - quote_asset_rail = 'BLOCKCHAIN', - quote_id = '', - quote_amount = '', - re_quote = None - ) - else: - return ExecutionResponseDetails( - type = 'QUOTE', - side = 'BUY', - base_amount = '', - base_asset_id = '', - quote_asset_id = '', - quote_id = '', - quote_amount = '', - ) - """ - - def testExecutionResponseDetails(self): - """Test ExecutionResponseDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9yZXNwb25zZV9kZXRhaWxzIGltcG9ydCBFeGVjdXRpb25SZXNwb25zZURldGFpbHMKCgpjbGFzcyBUZXN0RXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkV4ZWN1dGlvblJlc3BvbnNlRGV0YWlscyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzOgogICAgICAgICIiIlRlc3QgRXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEV4ZWN1dGlvblJlc3BvbnNlRGV0YWlsc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEV4ZWN1dGlvblJlc3BvbnNlRGV0YWlscygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEV4ZWN1dGlvblJlc3BvbnNlRGV0YWlscygKICAgICAgICAgICAgICAgIHR5cGUgPSAnUVVPVEUnLAogICAgICAgICAgICAgICAgc2lkZSA9ICdCVVknLAogICAgICAgICAgICAgICAgYmFzZV9hbW91bnQgPSAnJywKICAgICAgICAgICAgICAgIGJhc2VfYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIGJhc2VfYXNzZXRfcmFpbCA9ICdCTE9DS0NIQUlOJywKICAgICAgICAgICAgICAgIHF1b3RlX2Fzc2V0X2lkID0gJycsCiAgICAgICAgICAgICAgICBxdW90ZV9hc3NldF9yYWlsID0gJ0JMT0NLQ0hBSU4nLAogICAgICAgICAgICAgICAgcXVvdGVfaWQgPSAnJywKICAgICAgICAgICAgICAgIHF1b3RlX2Ftb3VudCA9ICcnLAogICAgICAgICAgICAgICAgcmVfcXVvdGUgPSBOb25lCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzKAogICAgICAgICAgICAgICAgdHlwZSA9ICdRVU9URScsCiAgICAgICAgICAgICAgICBzaWRlID0gJ0JVWScsCiAgICAgICAgICAgICAgICBiYXNlX2Ftb3VudCA9ICcnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgcXVvdGVfYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIHF1b3RlX2lkID0gJycsCiAgICAgICAgICAgICAgICBxdW90ZV9hbW91bnQgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RFeGVjdXRpb25SZXNwb25zZURldGFpbHMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBFeGVjdXRpb25SZXNwb25zZURldGFpbHMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_execution_screening_operation.py b/test/test_execution_screening_operation.py index d6f2701d..3f856ef2 100644 --- a/test/test_execution_screening_operation.py +++ b/test/test_execution_screening_operation.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.execution_screening_operation import ExecutionScreeningOperation - - -class TestExecutionScreeningOperation(unittest.TestCase): - """ExecutionScreeningOperation unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ExecutionScreeningOperation: - """Test ExecutionScreeningOperation - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ExecutionScreeningOperation` - """ - model = ExecutionScreeningOperation() - if include_optional: - return ExecutionScreeningOperation( - operation_id = '', - status = 'PENDING', - operation_type = 'SCREENING', - validation_failure = fireblocks.models.screening_validation_failure.ScreeningValidationFailure( - reason = 'SCREENING_DISABLED_IN_TENANT', - data = { - 'key' : null - }, ), - execution = fireblocks.models.screening_operation_execution.ScreeningOperationExecution( - output = fireblocks.models.screening_operation_execution_output.ScreeningOperationExecutionOutput( - verdicts = [ - fireblocks.models.screening_verdict.ScreeningVerdict( - verdict = 'PASSED', - execution_operation_id = '', - account = null, - asset_id = '', - amount = '', - matched_rule = fireblocks.models.screening_verdict_matched_rule.ScreeningVerdict_matchedRule( - action = '', - category = [ - '' - ], ), ) - ], ), - started_at = 1.337, - finished_at = 1.337, - failure = fireblocks.models.screening_operation_failure.ScreeningOperationFailure( - reason = 'AML_PROCESS_FAILED', - data = fireblocks.models.screening_operation_execution_output.ScreeningOperationExecutionOutput( - verdicts = [ - fireblocks.models.screening_verdict.ScreeningVerdict( - verdict = 'PASSED', - execution_operation_id = '', - account = null, - asset_id = '', - amount = '', ) - ], ), ), ) - ) - else: - return ExecutionScreeningOperation( - operation_id = '', - status = 'PENDING', - operation_type = 'SCREENING', - ) - """ - - def testExecutionScreeningOperation(self): - """Test ExecutionScreeningOperation""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9zY3JlZW5pbmdfb3BlcmF0aW9uIGltcG9ydCBFeGVjdXRpb25TY3JlZW5pbmdPcGVyYXRpb24KCgpjbGFzcyBUZXN0RXhlY3V0aW9uU2NyZWVuaW5nT3BlcmF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkV4ZWN1dGlvblNjcmVlbmluZ09wZXJhdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRXhlY3V0aW9uU2NyZWVuaW5nT3BlcmF0aW9uOgogICAgICAgICIiIlRlc3QgRXhlY3V0aW9uU2NyZWVuaW5nT3BlcmF0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEV4ZWN1dGlvblNjcmVlbmluZ09wZXJhdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEV4ZWN1dGlvblNjcmVlbmluZ09wZXJhdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEV4ZWN1dGlvblNjcmVlbmluZ09wZXJhdGlvbigKICAgICAgICAgICAgICAgIG9wZXJhdGlvbl9pZCA9ICcnLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ1BFTkRJTkcnLAogICAgICAgICAgICAgICAgb3BlcmF0aW9uX3R5cGUgPSAnU0NSRUVOSU5HJywKICAgICAgICAgICAgICAgIHZhbGlkYXRpb25fZmFpbHVyZSA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ192YWxpZGF0aW9uX2ZhaWx1cmUuU2NyZWVuaW5nVmFsaWRhdGlvbkZhaWx1cmUoCiAgICAgICAgICAgICAgICAgICAgcmVhc29uID0gJ1NDUkVFTklOR19ESVNBQkxFRF9JTl9URU5BTlQnLCAKICAgICAgICAgICAgICAgICAgICBkYXRhID0gewogICAgICAgICAgICAgICAgICAgICAgICAna2V5JyA6IG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgfSwgKSwKICAgICAgICAgICAgICAgIGV4ZWN1dGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19vcGVyYXRpb25fZXhlY3V0aW9uLlNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbigKICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXQuU2NyZWVuaW5nT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0KAogICAgICAgICAgICAgICAgICAgICAgICB2ZXJkaWN0cyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ192ZXJkaWN0LlNjcmVlbmluZ1ZlcmRpY3QoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyZGljdCA9ICdQQVNTRUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRpb25fb3BlcmF0aW9uX2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnQgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3ZlcmRpY3RfbWF0Y2hlZF9ydWxlLlNjcmVlbmluZ1ZlcmRpY3RfbWF0Y2hlZFJ1bGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgCiAgICAgICAgICAgICAgICAgICAgc3RhcnRlZF9hdCA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICBmaW5pc2hlZF9hdCA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICBmYWlsdXJlID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX29wZXJhdGlvbl9mYWlsdXJlLlNjcmVlbmluZ09wZXJhdGlvbkZhaWx1cmUoCiAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdBTUxfUFJPQ0VTU19GQUlMRUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dC5TY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJkaWN0cyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdmVyZGljdC5TY3JlZW5pbmdWZXJkaWN0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJkaWN0ID0gJ1BBU1NFRCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRpb25fb3BlcmF0aW9uX2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50ID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksICksICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBFeGVjdXRpb25TY3JlZW5pbmdPcGVyYXRpb24oCiAgICAgICAgICAgICAgICBvcGVyYXRpb25faWQgPSAnJywKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdQRU5ESU5HJywKICAgICAgICAgICAgICAgIG9wZXJhdGlvbl90eXBlID0gJ1NDUkVFTklORycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RXhlY3V0aW9uU2NyZWVuaW5nT3BlcmF0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgRXhlY3V0aW9uU2NyZWVuaW5nT3BlcmF0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_execution_step_error.py b/test/test_execution_step_error.py index 41146064..b1ed5e6a 100644 --- a/test/test_execution_step_error.py +++ b/test/test_execution_step_error.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.execution_step_error import ExecutionStepError - - -class TestExecutionStepError(unittest.TestCase): - """ExecutionStepError unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testExecutionStepError(self): - """Test ExecutionStepError""" - # inst = ExecutionStepError() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9zdGVwX2Vycm9yIGltcG9ydCBFeGVjdXRpb25TdGVwRXJyb3IKCgpjbGFzcyBUZXN0RXhlY3V0aW9uU3RlcEVycm9yKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkV4ZWN1dGlvblN0ZXBFcnJvciB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RFeGVjdXRpb25TdGVwRXJyb3Ioc2VsZik6CiAgICAgICAgIiIiVGVzdCBFeGVjdXRpb25TdGVwRXJyb3IiIiIKICAgICAgICAjIGluc3QgPSBFeGVjdXRpb25TdGVwRXJyb3IoKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_execution_step_status_enum.py b/test/test_execution_step_status_enum.py index ab4be32d..cc2b3a83 100644 --- a/test/test_execution_step_status_enum.py +++ b/test/test_execution_step_status_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.execution_step_status_enum import ExecutionStepStatusEnum - - -class TestExecutionStepStatusEnum(unittest.TestCase): - """ExecutionStepStatusEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testExecutionStepStatusEnum(self): - """Test ExecutionStepStatusEnum""" - # inst = ExecutionStepStatusEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9zdGVwX3N0YXR1c19lbnVtIGltcG9ydCBFeGVjdXRpb25TdGVwU3RhdHVzRW51bQoKCmNsYXNzIFRlc3RFeGVjdXRpb25TdGVwU3RhdHVzRW51bSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJFeGVjdXRpb25TdGVwU3RhdHVzRW51bSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RFeGVjdXRpb25TdGVwU3RhdHVzRW51bShzZWxmKToKICAgICAgICAiIiJUZXN0IEV4ZWN1dGlvblN0ZXBTdGF0dXNFbnVtIiIiCiAgICAgICAgIyBpbnN0ID0gRXhlY3V0aW9uU3RlcFN0YXR1c0VudW0oKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_execution_step_type.py b/test/test_execution_step_type.py index f1be94bc..a239107f 100644 --- a/test/test_execution_step_type.py +++ b/test/test_execution_step_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.execution_step_type import ExecutionStepType - - -class TestExecutionStepType(unittest.TestCase): - """ExecutionStepType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testExecutionStepType(self): - """Test ExecutionStepType""" - # inst = ExecutionStepType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl9zdGVwX3R5cGUgaW1wb3J0IEV4ZWN1dGlvblN0ZXBUeXBlCgoKY2xhc3MgVGVzdEV4ZWN1dGlvblN0ZXBUeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkV4ZWN1dGlvblN0ZXBUeXBlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdEV4ZWN1dGlvblN0ZXBUeXBlKHNlbGYpOgogICAgICAgICIiIlRlc3QgRXhlY3V0aW9uU3RlcFR5cGUiIiIKICAgICAgICAjIGluc3QgPSBFeGVjdXRpb25TdGVwVHlwZSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_execution_transfer_operation.py b/test/test_execution_transfer_operation.py index 4c802c62..2c11064f 100644 --- a/test/test_execution_transfer_operation.py +++ b/test/test_execution_transfer_operation.py @@ -1,109 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.execution_transfer_operation import ExecutionTransferOperation - - -class TestExecutionTransferOperation(unittest.TestCase): - """ExecutionTransferOperation unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ExecutionTransferOperation: - """Test ExecutionTransferOperation - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ExecutionTransferOperation` - """ - model = ExecutionTransferOperation() - if include_optional: - return ExecutionTransferOperation( - operation_id = '', - status = 'PENDING', - validation_failure = fireblocks.models.transfer_validation_failure.TransferValidationFailure( - reason = 'ACCOUNT_NOT_FOUND', - data = { }, ), - operation_type = 'TRANSFER', - preview = fireblocks.models.transfer_operation_preview.TransferOperationPreview( - input = fireblocks.models.transfer_operation_config_params.TransferOperationConfigParams( - amount = '', - asset_id = '', - source = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - destination = null, ), - output = fireblocks.models.transfer_operation_preview_output.TransferOperationPreviewOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - is_sign_required = True, - time_seconds = 1.337, ), - failure = fireblocks.models.transfer_operation_failure.TransferOperationFailure( - reason = 'INVALID_AMOUNT', - data = fireblocks.models.transfer_operation_failure_data.TransferOperationFailure_data( - tx_id = '', - tx_status = '', - tx_sub_status = '', ), ), ), - execution = fireblocks.models.transfer_operation_execution.TransferOperationExecution( - input = fireblocks.models.transfer_operation_config_params.TransferOperationConfigParams( - amount = '', - asset_id = '', - source = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - destination = null, ), - output = fireblocks.models.transfer_operation_execution_output.TransferOperationExecutionOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), ), - tx_id = '', - started_at = 1.337, - finished_at = 1.337, - failure = fireblocks.models.transfer_operation_failure.TransferOperationFailure( - reason = 'INVALID_AMOUNT', - data = fireblocks.models.transfer_operation_failure_data.TransferOperationFailure_data( - tx_id = '', - tx_status = '', - tx_sub_status = '', ), ), ) - ) - else: - return ExecutionTransferOperation( - operation_id = '', - status = 'PENDING', - operation_type = 'TRANSFER', - ) - """ - - def testExecutionTransferOperation(self): - """Test ExecutionTransferOperation""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4ZWN1dGlvbl90cmFuc2Zlcl9vcGVyYXRpb24gaW1wb3J0IEV4ZWN1dGlvblRyYW5zZmVyT3BlcmF0aW9uCgoKY2xhc3MgVGVzdEV4ZWN1dGlvblRyYW5zZmVyT3BlcmF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkV4ZWN1dGlvblRyYW5zZmVyT3BlcmF0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBFeGVjdXRpb25UcmFuc2Zlck9wZXJhdGlvbjoKICAgICAgICAiIiJUZXN0IEV4ZWN1dGlvblRyYW5zZmVyT3BlcmF0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEV4ZWN1dGlvblRyYW5zZmVyT3BlcmF0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRXhlY3V0aW9uVHJhbnNmZXJPcGVyYXRpb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBFeGVjdXRpb25UcmFuc2Zlck9wZXJhdGlvbigKICAgICAgICAgICAgICAgIG9wZXJhdGlvbl9pZCA9ICcnLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ1BFTkRJTkcnLAogICAgICAgICAgICAgICAgdmFsaWRhdGlvbl9mYWlsdXJlID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfdmFsaWRhdGlvbl9mYWlsdXJlLlRyYW5zZmVyVmFsaWRhdGlvbkZhaWx1cmUoCiAgICAgICAgICAgICAgICAgICAgcmVhc29uID0gJ0FDQ09VTlRfTk9UX0ZPVU5EJywgCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHsgfSwgKSwKICAgICAgICAgICAgICAgIG9wZXJhdGlvbl90eXBlID0gJ1RSQU5TRkVSJywKICAgICAgICAgICAgICAgIHByZXZpZXcgPSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fcHJldmlldy5UcmFuc2Zlck9wZXJhdGlvblByZXZpZXcoCiAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fY29uZmlnX3BhcmFtcy5UcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcygKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudC5BY2NvdW50KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfdHlwZSA9ICdFWENIQU5HRV9BQ0NPVU5UJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gbnVsbCwgKSwgCiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX3ByZXZpZXdfb3V0cHV0LlRyYW5zZmVyT3BlcmF0aW9uUHJldmlld091dHB1dCgKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfYW1vdW50LkFzc2V0QW1vdW50KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGZlZSA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2Ftb3VudC5Bc3NldEFtb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksIAogICAgICAgICAgICAgICAgICAgICAgICBpc19zaWduX3JlcXVpcmVkID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVfc2Vjb25kcyA9IDEuMzM3LCApLCAKICAgICAgICAgICAgICAgICAgICBmYWlsdXJlID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX2ZhaWx1cmUuVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlKAogICAgICAgICAgICAgICAgICAgICAgICByZWFzb24gPSAnSU5WQUxJRF9BTU9VTlQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9mYWlsdXJlX2RhdGEuVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlX2RhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR4X3N0YXR1cyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR4X3N1Yl9zdGF0dXMgPSAnJywgKSwgKSwgKSwKICAgICAgICAgICAgICAgIGV4ZWN1dGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9leGVjdXRpb24uVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb24oCiAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fY29uZmlnX3BhcmFtcy5UcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcygKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudC5BY2NvdW50KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfdHlwZSA9ICdFWENIQU5HRV9BQ0NPVU5UJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gbnVsbCwgKSwgCiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXQuVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2Ftb3VudC5Bc3NldEFtb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksIAogICAgICAgICAgICAgICAgICAgICAgICBmZWUgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLCApLCApLCAKICAgICAgICAgICAgICAgICAgICB0eF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBzdGFydGVkX2F0ID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkX2F0ID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgIGZhaWx1cmUgPSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fZmFpbHVyZS5UcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmUoCiAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdJTlZBTElEX0FNT1VOVCcsIAogICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX2ZhaWx1cmVfZGF0YS5UcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmVfZGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR4X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHhfc3RhdHVzID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHhfc3ViX3N0YXR1cyA9ICcnLCApLCApLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRXhlY3V0aW9uVHJhbnNmZXJPcGVyYXRpb24oCiAgICAgICAgICAgICAgICBvcGVyYXRpb25faWQgPSAnJywKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdQRU5ESU5HJywKICAgICAgICAgICAgICAgIG9wZXJhdGlvbl90eXBlID0gJ1RSQU5TRkVSJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RFeGVjdXRpb25UcmFuc2Zlck9wZXJhdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IEV4ZWN1dGlvblRyYW5zZmVyT3BlcmF0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_external_account.py b/test/test_external_account.py index 8a7997a4..0aea3a4c 100644 --- a/test/test_external_account.py +++ b/test/test_external_account.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.external_account import ExternalAccount - - -class TestExternalAccount(unittest.TestCase): - """ExternalAccount unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ExternalAccount: - """Test ExternalAccount - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ExternalAccount` - """ - model = ExternalAccount() - if include_optional: - return ExternalAccount( - type = 'EXTERNAL', - sender_information = None - ) - else: - return ExternalAccount( - type = 'EXTERNAL', - ) - """ - - def testExternalAccount(self): - """Test ExternalAccount""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX2FjY291bnQgaW1wb3J0IEV4dGVybmFsQWNjb3VudAoKCmNsYXNzIFRlc3RFeHRlcm5hbEFjY291bnQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRXh0ZXJuYWxBY2NvdW50IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBFeHRlcm5hbEFjY291bnQ6CiAgICAgICAgIiIiVGVzdCBFeHRlcm5hbEFjY291bnQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRXh0ZXJuYWxBY2NvdW50YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRXh0ZXJuYWxBY2NvdW50KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRXh0ZXJuYWxBY2NvdW50KAogICAgICAgICAgICAgICAgdHlwZSA9ICdFWFRFUk5BTCcsCiAgICAgICAgICAgICAgICBzZW5kZXJfaW5mb3JtYXRpb24gPSBOb25lCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRXh0ZXJuYWxBY2NvdW50KAogICAgICAgICAgICAgICAgdHlwZSA9ICdFWFRFUk5BTCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RXh0ZXJuYWxBY2NvdW50KHNlbGYpOgogICAgICAgICIiIlRlc3QgRXh0ZXJuYWxBY2NvdW50IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_external_account_local_bank_africa.py b/test/test_external_account_local_bank_africa.py index 0b1ee92b..9255366c 100644 --- a/test/test_external_account_local_bank_africa.py +++ b/test/test_external_account_local_bank_africa.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.external_account_local_bank_africa import ( - ExternalAccountLocalBankAfrica, -) - - -class TestExternalAccountLocalBankAfrica(unittest.TestCase): - """ExternalAccountLocalBankAfrica unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ExternalAccountLocalBankAfrica: - """Test ExternalAccountLocalBankAfrica - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ExternalAccountLocalBankAfrica` - """ - model = ExternalAccountLocalBankAfrica() - if include_optional: - return ExternalAccountLocalBankAfrica( - success_redirect_url = '' - ) - else: - return ExternalAccountLocalBankAfrica( - ) - """ - - def testExternalAccountLocalBankAfrica(self): - """Test ExternalAccountLocalBankAfrica""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX2FjY291bnRfbG9jYWxfYmFua19hZnJpY2EgaW1wb3J0ICgKICAgIEV4dGVybmFsQWNjb3VudExvY2FsQmFua0FmcmljYSwKKQoKCmNsYXNzIFRlc3RFeHRlcm5hbEFjY291bnRMb2NhbEJhbmtBZnJpY2EodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRXh0ZXJuYWxBY2NvdW50TG9jYWxCYW5rQWZyaWNhIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBFeHRlcm5hbEFjY291bnRMb2NhbEJhbmtBZnJpY2E6CiAgICAgICAgIiIiVGVzdCBFeHRlcm5hbEFjY291bnRMb2NhbEJhbmtBZnJpY2EKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRXh0ZXJuYWxBY2NvdW50TG9jYWxCYW5rQWZyaWNhYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRXh0ZXJuYWxBY2NvdW50TG9jYWxCYW5rQWZyaWNhKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRXh0ZXJuYWxBY2NvdW50TG9jYWxCYW5rQWZyaWNhKAogICAgICAgICAgICAgICAgc3VjY2Vzc19yZWRpcmVjdF91cmwgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEV4dGVybmFsQWNjb3VudExvY2FsQmFua0FmcmljYSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RFeHRlcm5hbEFjY291bnRMb2NhbEJhbmtBZnJpY2Eoc2VsZik6CiAgICAgICAgIiIiVGVzdCBFeHRlcm5hbEFjY291bnRMb2NhbEJhbmtBZnJpY2EiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_external_account_mobile_money.py b/test/test_external_account_mobile_money.py index 42c6dbfd..814085bb 100644 --- a/test/test_external_account_mobile_money.py +++ b/test/test_external_account_mobile_money.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.external_account_mobile_money import ExternalAccountMobileMoney - - -class TestExternalAccountMobileMoney(unittest.TestCase): - """ExternalAccountMobileMoney unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ExternalAccountMobileMoney: - """Test ExternalAccountMobileMoney - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ExternalAccountMobileMoney` - """ - model = ExternalAccountMobileMoney() - if include_optional: - return ExternalAccountMobileMoney( - type = 'MOBILE_MONEY_RAIL', - mobile_phone_number = '+14155551234', - provider = 'M_PESA', - email = '', - success_redirect_url = '' - ) - else: - return ExternalAccountMobileMoney( - type = 'MOBILE_MONEY_RAIL', - mobile_phone_number = '+14155551234', - provider = 'M_PESA', - email = '', - ) - """ - - def testExternalAccountMobileMoney(self): - """Test ExternalAccountMobileMoney""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX2FjY291bnRfbW9iaWxlX21vbmV5IGltcG9ydCBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leQoKCmNsYXNzIFRlc3RFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXk6CiAgICAgICAgIiIiVGVzdCBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXkoCiAgICAgICAgICAgICAgICB0eXBlID0gJ01PQklMRV9NT05FWV9SQUlMJywKICAgICAgICAgICAgICAgIG1vYmlsZV9waG9uZV9udW1iZXIgPSAnKzE0MTU1NTUxMjM0JywKICAgICAgICAgICAgICAgIHByb3ZpZGVyID0gJ01fUEVTQScsCiAgICAgICAgICAgICAgICBlbWFpbCA9ICcnLAogICAgICAgICAgICAgICAgc3VjY2Vzc19yZWRpcmVjdF91cmwgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5KAogICAgICAgICAgICAgICAgdHlwZSA9ICdNT0JJTEVfTU9ORVlfUkFJTCcsCiAgICAgICAgICAgICAgICBtb2JpbGVfcGhvbmVfbnVtYmVyID0gJysxNDE1NTU1MTIzNCcsCiAgICAgICAgICAgICAgICBwcm92aWRlciA9ICdNX1BFU0EnLAogICAgICAgICAgICAgICAgZW1haWwgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leShzZWxmKToKICAgICAgICAiIiJUZXN0IEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_external_account_mobile_money_provider.py b/test/test_external_account_mobile_money_provider.py index 2421cb71..3dd9f370 100644 --- a/test/test_external_account_mobile_money_provider.py +++ b/test/test_external_account_mobile_money_provider.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.external_account_mobile_money_provider import ( - ExternalAccountMobileMoneyProvider, -) - - -class TestExternalAccountMobileMoneyProvider(unittest.TestCase): - """ExternalAccountMobileMoneyProvider unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testExternalAccountMobileMoneyProvider(self): - """Test ExternalAccountMobileMoneyProvider""" - # inst = ExternalAccountMobileMoneyProvider() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX2FjY291bnRfbW9iaWxlX21vbmV5X3Byb3ZpZGVyIGltcG9ydCAoCiAgICBFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leVByb3ZpZGVyLAopCgoKY2xhc3MgVGVzdEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5UHJvdmlkZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXlQcm92aWRlciB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leVByb3ZpZGVyKHNlbGYpOgogICAgICAgICIiIlRlc3QgRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXlQcm92aWRlciIiIgogICAgICAgICMgaW5zdCA9IEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5UHJvdmlkZXIoKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_external_account_mobile_money_type.py b/test/test_external_account_mobile_money_type.py index c4001236..9664e30e 100644 --- a/test/test_external_account_mobile_money_type.py +++ b/test/test_external_account_mobile_money_type.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.external_account_mobile_money_type import ( - ExternalAccountMobileMoneyType, -) - - -class TestExternalAccountMobileMoneyType(unittest.TestCase): - """ExternalAccountMobileMoneyType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testExternalAccountMobileMoneyType(self): - """Test ExternalAccountMobileMoneyType""" - # inst = ExternalAccountMobileMoneyType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX2FjY291bnRfbW9iaWxlX21vbmV5X3R5cGUgaW1wb3J0ICgKICAgIEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5VHlwZSwKKQoKCmNsYXNzIFRlc3RFeHRlcm5hbEFjY291bnRNb2JpbGVNb25leVR5cGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRXh0ZXJuYWxBY2NvdW50TW9iaWxlTW9uZXlUeXBlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5VHlwZShzZWxmKToKICAgICAgICAiIiJUZXN0IEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5VHlwZSIiIgogICAgICAgICMgaW5zdCA9IEV4dGVybmFsQWNjb3VudE1vYmlsZU1vbmV5VHlwZSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_external_account_sender_information.py b/test/test_external_account_sender_information.py index 76fe4216..7b3f08d3 100644 --- a/test/test_external_account_sender_information.py +++ b/test/test_external_account_sender_information.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.external_account_sender_information import ( - ExternalAccountSenderInformation, -) - - -class TestExternalAccountSenderInformation(unittest.TestCase): - """ExternalAccountSenderInformation unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ExternalAccountSenderInformation: - """Test ExternalAccountSenderInformation - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ExternalAccountSenderInformation` - """ - model = ExternalAccountSenderInformation() - if include_optional: - return ExternalAccountSenderInformation( - type = 'MOBILE_MONEY_RAIL', - mobile_phone_number = '+14155551234', - provider = 'M_PESA', - email = '', - success_redirect_url = '' - ) - else: - return ExternalAccountSenderInformation( - type = 'MOBILE_MONEY_RAIL', - mobile_phone_number = '+14155551234', - provider = 'M_PESA', - email = '', - ) - """ - - def testExternalAccountSenderInformation(self): - """Test ExternalAccountSenderInformation""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX2FjY291bnRfc2VuZGVyX2luZm9ybWF0aW9uIGltcG9ydCAoCiAgICBFeHRlcm5hbEFjY291bnRTZW5kZXJJbmZvcm1hdGlvbiwKKQoKCmNsYXNzIFRlc3RFeHRlcm5hbEFjY291bnRTZW5kZXJJbmZvcm1hdGlvbih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJFeHRlcm5hbEFjY291bnRTZW5kZXJJbmZvcm1hdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRXh0ZXJuYWxBY2NvdW50U2VuZGVySW5mb3JtYXRpb246CiAgICAgICAgIiIiVGVzdCBFeHRlcm5hbEFjY291bnRTZW5kZXJJbmZvcm1hdGlvbgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBFeHRlcm5hbEFjY291bnRTZW5kZXJJbmZvcm1hdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEV4dGVybmFsQWNjb3VudFNlbmRlckluZm9ybWF0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRXh0ZXJuYWxBY2NvdW50U2VuZGVySW5mb3JtYXRpb24oCiAgICAgICAgICAgICAgICB0eXBlID0gJ01PQklMRV9NT05FWV9SQUlMJywKICAgICAgICAgICAgICAgIG1vYmlsZV9waG9uZV9udW1iZXIgPSAnKzE0MTU1NTUxMjM0JywKICAgICAgICAgICAgICAgIHByb3ZpZGVyID0gJ01fUEVTQScsCiAgICAgICAgICAgICAgICBlbWFpbCA9ICcnLAogICAgICAgICAgICAgICAgc3VjY2Vzc19yZWRpcmVjdF91cmwgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEV4dGVybmFsQWNjb3VudFNlbmRlckluZm9ybWF0aW9uKAogICAgICAgICAgICAgICAgdHlwZSA9ICdNT0JJTEVfTU9ORVlfUkFJTCcsCiAgICAgICAgICAgICAgICBtb2JpbGVfcGhvbmVfbnVtYmVyID0gJysxNDE1NTU1MTIzNCcsCiAgICAgICAgICAgICAgICBwcm92aWRlciA9ICdNX1BFU0EnLAogICAgICAgICAgICAgICAgZW1haWwgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RFeHRlcm5hbEFjY291bnRTZW5kZXJJbmZvcm1hdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IEV4dGVybmFsQWNjb3VudFNlbmRlckluZm9ybWF0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_external_account_type.py b/test/test_external_account_type.py index 33f0d3b7..dde6a651 100644 --- a/test/test_external_account_type.py +++ b/test/test_external_account_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.external_account_type import ExternalAccountType - - -class TestExternalAccountType(unittest.TestCase): - """ExternalAccountType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testExternalAccountType(self): - """Test ExternalAccountType""" - # inst = ExternalAccountType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX2FjY291bnRfdHlwZSBpbXBvcnQgRXh0ZXJuYWxBY2NvdW50VHlwZQoKCmNsYXNzIFRlc3RFeHRlcm5hbEFjY291bnRUeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkV4dGVybmFsQWNjb3VudFR5cGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0RXh0ZXJuYWxBY2NvdW50VHlwZShzZWxmKToKICAgICAgICAiIiJUZXN0IEV4dGVybmFsQWNjb3VudFR5cGUiIiIKICAgICAgICAjIGluc3QgPSBFeHRlcm5hbEFjY291bnRUeXBlKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_external_wallet_asset.py b/test/test_external_wallet_asset.py index a4950061..d37b099f 100644 --- a/test/test_external_wallet_asset.py +++ b/test/test_external_wallet_asset.py @@ -1,79 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.external_wallet_asset import ExternalWalletAsset - - -class TestExternalWalletAsset(unittest.TestCase): - """ExternalWalletAsset unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ExternalWalletAsset: - """Test ExternalWalletAsset - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ExternalWalletAsset` - """ - model = ExternalWalletAsset() - if include_optional: - return ExternalWalletAsset( - id = '', - status = 'WAITING_FOR_APPROVAL', - address = '', - balance = 1.337, - locked_amount = 1.337, - tag = '', - activation_time = '', - additional_info = [ - fireblocks.models.wallet_asset_additional_info.WalletAssetAdditionalInfo( - account_holder_given_name = '', - account_holder_surname = '', - account_holder_city = '', - account_holder_country = '', - account_holder_address1 = '', - account_holder_address2 = '', - account_holder_district = '', - account_holder_postal_code = '', - aba_routing_number = '', - aba_account_number = '', - aba_country = '', - iban = '', - iban_city = '', - iban_country = '', - spei_clabe = '', - spei_name = '', ) - ] - ) - else: - return ExternalWalletAsset( - ) - """ - - def testExternalWalletAsset(self): - """Test ExternalWalletAsset""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dGVybmFsX3dhbGxldF9hc3NldCBpbXBvcnQgRXh0ZXJuYWxXYWxsZXRBc3NldAoKCmNsYXNzIFRlc3RFeHRlcm5hbFdhbGxldEFzc2V0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkV4dGVybmFsV2FsbGV0QXNzZXQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEV4dGVybmFsV2FsbGV0QXNzZXQ6CiAgICAgICAgIiIiVGVzdCBFeHRlcm5hbFdhbGxldEFzc2V0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEV4dGVybmFsV2FsbGV0QXNzZXRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBFeHRlcm5hbFdhbGxldEFzc2V0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRXh0ZXJuYWxXYWxsZXRBc3NldCgKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnV0FJVElOR19GT1JfQVBQUk9WQUwnLAogICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcnLAogICAgICAgICAgICAgICAgYmFsYW5jZSA9IDEuMzM3LAogICAgICAgICAgICAgICAgbG9ja2VkX2Ftb3VudCA9IDEuMzM3LAogICAgICAgICAgICAgICAgdGFnID0gJycsCiAgICAgICAgICAgICAgICBhY3RpdmF0aW9uX3RpbWUgPSAnJywKICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfaW5mbyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy53YWxsZXRfYXNzZXRfYWRkaXRpb25hbF9pbmZvLldhbGxldEFzc2V0QWRkaXRpb25hbEluZm8oCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2dpdmVuX25hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX3N1cm5hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2NpdHkgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2NvdW50cnkgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2FkZHJlc3MxID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9hZGRyZXNzMiA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfZGlzdHJpY3QgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX3Bvc3RhbF9jb2RlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhYmFfcm91dGluZ19udW1iZXIgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFiYV9hY2NvdW50X251bWJlciA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWJhX2NvdW50cnkgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGliYW4gPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGliYW5fY2l0eSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgaWJhbl9jb3VudHJ5ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBzcGVpX2NsYWJlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBzcGVpX25hbWUgPSAnJywgKQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBFeHRlcm5hbFdhbGxldEFzc2V0KAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEV4dGVybmFsV2FsbGV0QXNzZXQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBFeHRlcm5hbFdhbGxldEFzc2V0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_external_wallets_api.py b/test/test_external_wallets_api.py index 59f78a6f..6d589696 100644 --- a/test/test_external_wallets_api.py +++ b/test/test_external_wallets_api.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.external_wallets_api import ExternalWalletsApi - - -class TestExternalWalletsApi(unittest.TestCase): - """ExternalWalletsApi unit test stubs""" - - def setUp(self) -> None: - self.api = ExternalWalletsApi() - - def tearDown(self) -> None: - pass - - def test_add_asset_to_external_wallet(self) -> None: - """Test case for add_asset_to_external_wallet - - Add an asset to an external wallet. - """ - pass - - def test_create_external_wallet(self) -> None: - """Test case for create_external_wallet - - Create an external wallet - """ - pass - - def test_delete_external_wallet(self) -> None: - """Test case for delete_external_wallet - - Delete an external wallet - """ - pass - - def test_get_external_wallet(self) -> None: - """Test case for get_external_wallet - - Find an external wallet - """ - pass - - def test_get_external_wallet_asset(self) -> None: - """Test case for get_external_wallet_asset - - Get an asset from an external wallet - """ - pass - - def test_get_external_wallets(self) -> None: - """Test case for get_external_wallets - - List external wallets - """ - pass - - def test_remove_asset_from_external_wallet(self) -> None: - """Test case for remove_asset_from_external_wallet - - Delete an asset from an external wallet - """ - pass - - def test_set_external_wallet_customer_ref_id(self) -> None: - """Test case for set_external_wallet_customer_ref_id - - Set an AML customer reference ID for an external wallet - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLmV4dGVybmFsX3dhbGxldHNfYXBpIGltcG9ydCBFeHRlcm5hbFdhbGxldHNBcGkKCgpjbGFzcyBUZXN0RXh0ZXJuYWxXYWxsZXRzQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkV4dGVybmFsV2FsbGV0c0FwaSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZikgLT4gTm9uZToKICAgICAgICBzZWxmLmFwaSA9IEV4dGVybmFsV2FsbGV0c0FwaSgpCgogICAgZGVmIHRlYXJEb3duKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2FkZF9hc3NldF90b19leHRlcm5hbF93YWxsZXQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGFkZF9hc3NldF90b19leHRlcm5hbF93YWxsZXQKCiAgICAgICAgQWRkIGFuIGFzc2V0IHRvIGFuIGV4dGVybmFsIHdhbGxldC4KICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY3JlYXRlX2V4dGVybmFsX3dhbGxldChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgY3JlYXRlX2V4dGVybmFsX3dhbGxldAoKICAgICAgICBDcmVhdGUgYW4gZXh0ZXJuYWwgd2FsbGV0CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2RlbGV0ZV9leHRlcm5hbF93YWxsZXQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGRlbGV0ZV9leHRlcm5hbF93YWxsZXQKCiAgICAgICAgRGVsZXRlIGFuIGV4dGVybmFsIHdhbGxldAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfZXh0ZXJuYWxfd2FsbGV0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfZXh0ZXJuYWxfd2FsbGV0CgogICAgICAgIEZpbmQgYW4gZXh0ZXJuYWwgd2FsbGV0CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9leHRlcm5hbF93YWxsZXRfYXNzZXQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9leHRlcm5hbF93YWxsZXRfYXNzZXQKCiAgICAgICAgR2V0IGFuIGFzc2V0IGZyb20gYW4gZXh0ZXJuYWwgd2FsbGV0CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9leHRlcm5hbF93YWxsZXRzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfZXh0ZXJuYWxfd2FsbGV0cwoKICAgICAgICBMaXN0IGV4dGVybmFsIHdhbGxldHMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfcmVtb3ZlX2Fzc2V0X2Zyb21fZXh0ZXJuYWxfd2FsbGV0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciByZW1vdmVfYXNzZXRfZnJvbV9leHRlcm5hbF93YWxsZXQKCiAgICAgICAgRGVsZXRlIGFuIGFzc2V0IGZyb20gYW4gZXh0ZXJuYWwgd2FsbGV0CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3NldF9leHRlcm5hbF93YWxsZXRfY3VzdG9tZXJfcmVmX2lkKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBzZXRfZXh0ZXJuYWxfd2FsbGV0X2N1c3RvbWVyX3JlZl9pZAoKICAgICAgICBTZXQgYW4gQU1MIGN1c3RvbWVyIHJlZmVyZW5jZSBJRCBmb3IgYW4gZXh0ZXJuYWwgd2FsbGV0CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_extra_parameters.py b/test/test_extra_parameters.py index 2778d887..66d5572d 100644 --- a/test/test_extra_parameters.py +++ b/test/test_extra_parameters.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.extra_parameters import ExtraParameters - - -class TestExtraParameters(unittest.TestCase): - """ExtraParameters unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ExtraParameters: - """Test ExtraParameters - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ExtraParameters` - """ - model = ExtraParameters() - if include_optional: - return ExtraParameters( - node_controls = { }, - raw_message_data = { }, - contract_call_data = '', - program_call_data = '', - inputs_selection = { }, - allow_base_asset_address = True, - pii_data = { } - ) - else: - return ExtraParameters( - ) - """ - - def testExtraParameters(self): - """Test ExtraParameters""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmV4dHJhX3BhcmFtZXRlcnMgaW1wb3J0IEV4dHJhUGFyYW1ldGVycwoKCmNsYXNzIFRlc3RFeHRyYVBhcmFtZXRlcnModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRXh0cmFQYXJhbWV0ZXJzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBFeHRyYVBhcmFtZXRlcnM6CiAgICAgICAgIiIiVGVzdCBFeHRyYVBhcmFtZXRlcnMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRXh0cmFQYXJhbWV0ZXJzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRXh0cmFQYXJhbWV0ZXJzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRXh0cmFQYXJhbWV0ZXJzKAogICAgICAgICAgICAgICAgbm9kZV9jb250cm9scyA9IHsgfSwKICAgICAgICAgICAgICAgIHJhd19tZXNzYWdlX2RhdGEgPSB7IH0sCiAgICAgICAgICAgICAgICBjb250cmFjdF9jYWxsX2RhdGEgPSAnJywKICAgICAgICAgICAgICAgIHByb2dyYW1fY2FsbF9kYXRhID0gJycsCiAgICAgICAgICAgICAgICBpbnB1dHNfc2VsZWN0aW9uID0geyB9LAogICAgICAgICAgICAgICAgYWxsb3dfYmFzZV9hc3NldF9hZGRyZXNzID0gVHJ1ZSwKICAgICAgICAgICAgICAgIHBpaV9kYXRhID0geyB9CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRXh0cmFQYXJhbWV0ZXJzKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEV4dHJhUGFyYW1ldGVycyhzZWxmKToKICAgICAgICAiIiJUZXN0IEV4dHJhUGFyYW1ldGVycyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_failure.py b/test/test_failure.py index b829a20e..9a58655f 100644 --- a/test/test_failure.py +++ b/test/test_failure.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.failure import Failure - - -class TestFailure(unittest.TestCase): - """Failure unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Failure: - """Test Failure - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Failure` - """ - model = Failure() - if include_optional: - return Failure( - reason = 'INSUFFICIENT_FUNDS' - ) - else: - return Failure( - reason = 'INSUFFICIENT_FUNDS', - ) - """ - - def testFailure(self): - """Test Failure""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZhaWx1cmUgaW1wb3J0IEZhaWx1cmUKCgpjbGFzcyBUZXN0RmFpbHVyZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJGYWlsdXJlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBGYWlsdXJlOgogICAgICAgICIiIlRlc3QgRmFpbHVyZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBGYWlsdXJlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRmFpbHVyZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEZhaWx1cmUoCiAgICAgICAgICAgICAgICByZWFzb24gPSAnSU5TVUZGSUNJRU5UX0ZVTkRTJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEZhaWx1cmUoCiAgICAgICAgICAgICAgICByZWFzb24gPSAnSU5TVUZGSUNJRU5UX0ZVTkRTJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RGYWlsdXJlKHNlbGYpOgogICAgICAgICIiIlRlc3QgRmFpbHVyZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_failure_reason.py b/test/test_failure_reason.py index 2e4b0c85..00ead6c5 100644 --- a/test/test_failure_reason.py +++ b/test/test_failure_reason.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.failure_reason import FailureReason - - -class TestFailureReason(unittest.TestCase): - """FailureReason unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testFailureReason(self): - """Test FailureReason""" - # inst = FailureReason() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZhaWx1cmVfcmVhc29uIGltcG9ydCBGYWlsdXJlUmVhc29uCgoKY2xhc3MgVGVzdEZhaWx1cmVSZWFzb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRmFpbHVyZVJlYXNvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RGYWlsdXJlUmVhc29uKHNlbGYpOgogICAgICAgICIiIlRlc3QgRmFpbHVyZVJlYXNvbiIiIgogICAgICAgICMgaW5zdCA9IEZhaWx1cmVSZWFzb24oKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_fee.py b/test/test_fee.py index e9daffec..ec9b3305 100644 --- a/test/test_fee.py +++ b/test/test_fee.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.fee import Fee - - -class TestFee(unittest.TestCase): - """Fee unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Fee: - """Test Fee - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Fee` - """ - model = Fee() - if include_optional: - return Fee( - fee_type = 'ORDER', - asset_id = '', - amount_type = 'BPS', - amount = 50 - ) - else: - return Fee( - fee_type = 'ORDER', - asset_id = '', - amount_type = 'BPS', - amount = 50, - ) - """ - - def testFee(self): - """Test Fee""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZSBpbXBvcnQgRmVlCgoKY2xhc3MgVGVzdEZlZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJGZWUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEZlZToKICAgICAgICAiIiJUZXN0IEZlZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBGZWVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBGZWUoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBGZWUoCiAgICAgICAgICAgICAgICBmZWVfdHlwZSA9ICdPUkRFUicsCiAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgYW1vdW50X3R5cGUgPSAnQlBTJywKICAgICAgICAgICAgICAgIGFtb3VudCA9IDUwCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRmVlKAogICAgICAgICAgICAgICAgZmVlX3R5cGUgPSAnT1JERVInLAogICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIGFtb3VudF90eXBlID0gJ0JQUycsCiAgICAgICAgICAgICAgICBhbW91bnQgPSA1MCwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RGZWUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBGZWUiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_fee_breakdown.py b/test/test_fee_breakdown.py index b042d4b3..6c2a47f7 100644 --- a/test/test_fee_breakdown.py +++ b/test/test_fee_breakdown.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.fee_breakdown import FeeBreakdown - - -class TestFeeBreakdown(unittest.TestCase): - """FeeBreakdown unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> FeeBreakdown: - """Test FeeBreakdown - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `FeeBreakdown` - """ - model = FeeBreakdown() - if include_optional: - return FeeBreakdown( - base_fee = '', - priority_fee = '', - rent = '', - total_fee = '' - ) - else: - return FeeBreakdown( - ) - """ - - def testFeeBreakdown(self): - """Test FeeBreakdown""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZV9icmVha2Rvd24gaW1wb3J0IEZlZUJyZWFrZG93bgoKCmNsYXNzIFRlc3RGZWVCcmVha2Rvd24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRmVlQnJlYWtkb3duIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBGZWVCcmVha2Rvd246CiAgICAgICAgIiIiVGVzdCBGZWVCcmVha2Rvd24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRmVlQnJlYWtkb3duYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRmVlQnJlYWtkb3duKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRmVlQnJlYWtkb3duKAogICAgICAgICAgICAgICAgYmFzZV9mZWUgPSAnJywKICAgICAgICAgICAgICAgIHByaW9yaXR5X2ZlZSA9ICcnLAogICAgICAgICAgICAgICAgcmVudCA9ICcnLAogICAgICAgICAgICAgICAgdG90YWxfZmVlID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBGZWVCcmVha2Rvd24oCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RmVlQnJlYWtkb3duKHNlbGYpOgogICAgICAgICIiIlRlc3QgRmVlQnJlYWtkb3duIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_fee_info.py b/test/test_fee_info.py index 11600c1e..77f7bd7c 100644 --- a/test/test_fee_info.py +++ b/test/test_fee_info.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.fee_info import FeeInfo - - -class TestFeeInfo(unittest.TestCase): - """FeeInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> FeeInfo: - """Test FeeInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `FeeInfo` - """ - model = FeeInfo() - if include_optional: - return FeeInfo( - network_fee = '', - service_fee = '', - gas_price = '', - l1network_fee = '0.003955', - l2network_fee = '0.0005', - paid_by_relay = True, - relay_type = 'LOCAL', - relay_id = '1', - relay_name = 'Tenant Name', - fee_usd = '0.0013' - ) - else: - return FeeInfo( - ) - """ - - def testFeeInfo(self): - """Test FeeInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZV9pbmZvIGltcG9ydCBGZWVJbmZvCgoKY2xhc3MgVGVzdEZlZUluZm8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRmVlSW5mbyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRmVlSW5mbzoKICAgICAgICAiIiJUZXN0IEZlZUluZm8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRmVlSW5mb2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEZlZUluZm8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBGZWVJbmZvKAogICAgICAgICAgICAgICAgbmV0d29ya19mZWUgPSAnJywKICAgICAgICAgICAgICAgIHNlcnZpY2VfZmVlID0gJycsCiAgICAgICAgICAgICAgICBnYXNfcHJpY2UgPSAnJywKICAgICAgICAgICAgICAgIGwxbmV0d29ya19mZWUgPSAnMC4wMDM5NTUnLAogICAgICAgICAgICAgICAgbDJuZXR3b3JrX2ZlZSA9ICcwLjAwMDUnLAogICAgICAgICAgICAgICAgcGFpZF9ieV9yZWxheSA9IFRydWUsCiAgICAgICAgICAgICAgICByZWxheV90eXBlID0gJ0xPQ0FMJywKICAgICAgICAgICAgICAgIHJlbGF5X2lkID0gJzEnLAogICAgICAgICAgICAgICAgcmVsYXlfbmFtZSA9ICdUZW5hbnQgTmFtZScsCiAgICAgICAgICAgICAgICBmZWVfdXNkID0gJzAuMDAxMycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBGZWVJbmZvKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEZlZUluZm8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBGZWVJbmZvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_fee_level.py b/test/test_fee_level.py index 64b3f3c8..498bec49 100644 --- a/test/test_fee_level.py +++ b/test/test_fee_level.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.fee_level import FeeLevel - - -class TestFeeLevel(unittest.TestCase): - """FeeLevel unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testFeeLevel(self): - """Test FeeLevel""" - # inst = FeeLevel() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZV9sZXZlbCBpbXBvcnQgRmVlTGV2ZWwKCgpjbGFzcyBUZXN0RmVlTGV2ZWwodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRmVlTGV2ZWwgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0RmVlTGV2ZWwoc2VsZik6CiAgICAgICAgIiIiVGVzdCBGZWVMZXZlbCIiIgogICAgICAgICMgaW5zdCA9IEZlZUxldmVsKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_fee_payer_info.py b/test/test_fee_payer_info.py index 3f50ff4a..28626aee 100644 --- a/test/test_fee_payer_info.py +++ b/test/test_fee_payer_info.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.fee_payer_info import FeePayerInfo - - -class TestFeePayerInfo(unittest.TestCase): - """FeePayerInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> FeePayerInfo: - """Test FeePayerInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `FeePayerInfo` - """ - model = FeePayerInfo() - if include_optional: - return FeePayerInfo( - fee_payer_account_id = '123' - ) - else: - return FeePayerInfo( - ) - """ - - def testFeePayerInfo(self): - """Test FeePayerInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZV9wYXllcl9pbmZvIGltcG9ydCBGZWVQYXllckluZm8KCgpjbGFzcyBUZXN0RmVlUGF5ZXJJbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkZlZVBheWVySW5mbyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRmVlUGF5ZXJJbmZvOgogICAgICAgICIiIlRlc3QgRmVlUGF5ZXJJbmZvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEZlZVBheWVySW5mb2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEZlZVBheWVySW5mbygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEZlZVBheWVySW5mbygKICAgICAgICAgICAgICAgIGZlZV9wYXllcl9hY2NvdW50X2lkID0gJzEyMycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBGZWVQYXllckluZm8oCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RmVlUGF5ZXJJbmZvKHNlbGYpOgogICAgICAgICIiIlRlc3QgRmVlUGF5ZXJJbmZvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_fee_properties_details.py b/test/test_fee_properties_details.py index 905017e6..f788a6e6 100644 --- a/test/test_fee_properties_details.py +++ b/test/test_fee_properties_details.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.fee_properties_details import FeePropertiesDetails - - -class TestFeePropertiesDetails(unittest.TestCase): - """FeePropertiesDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> FeePropertiesDetails: - """Test FeePropertiesDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `FeePropertiesDetails` - """ - model = FeePropertiesDetails() - if include_optional: - return FeePropertiesDetails( - fee_type = 'ORDER', - asset_id = '' - ) - else: - return FeePropertiesDetails( - fee_type = 'ORDER', - asset_id = '', - ) - """ - - def testFeePropertiesDetails(self): - """Test FeePropertiesDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZV9wcm9wZXJ0aWVzX2RldGFpbHMgaW1wb3J0IEZlZVByb3BlcnRpZXNEZXRhaWxzCgoKY2xhc3MgVGVzdEZlZVByb3BlcnRpZXNEZXRhaWxzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkZlZVByb3BlcnRpZXNEZXRhaWxzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBGZWVQcm9wZXJ0aWVzRGV0YWlsczoKICAgICAgICAiIiJUZXN0IEZlZVByb3BlcnRpZXNEZXRhaWxzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEZlZVByb3BlcnRpZXNEZXRhaWxzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRmVlUHJvcGVydGllc0RldGFpbHMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBGZWVQcm9wZXJ0aWVzRGV0YWlscygKICAgICAgICAgICAgICAgIGZlZV90eXBlID0gJ09SREVSJywKICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBGZWVQcm9wZXJ0aWVzRGV0YWlscygKICAgICAgICAgICAgICAgIGZlZV90eXBlID0gJ09SREVSJywKICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RmVlUHJvcGVydGllc0RldGFpbHMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBGZWVQcm9wZXJ0aWVzRGV0YWlscyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_fee_type_enum.py b/test/test_fee_type_enum.py index 741cd88f..9d3996d1 100644 --- a/test/test_fee_type_enum.py +++ b/test/test_fee_type_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.fee_type_enum import FeeTypeEnum - - -class TestFeeTypeEnum(unittest.TestCase): - """FeeTypeEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testFeeTypeEnum(self): - """Test FeeTypeEnum""" - # inst = FeeTypeEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZlZV90eXBlX2VudW0gaW1wb3J0IEZlZVR5cGVFbnVtCgoKY2xhc3MgVGVzdEZlZVR5cGVFbnVtKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkZlZVR5cGVFbnVtIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdEZlZVR5cGVFbnVtKHNlbGYpOgogICAgICAgICIiIlRlc3QgRmVlVHlwZUVudW0iIiIKICAgICAgICAjIGluc3QgPSBGZWVUeXBlRW51bSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_fetch_abi_request_dto.py b/test/test_fetch_abi_request_dto.py index 3e5e7a52..ff1c5edc 100644 --- a/test/test_fetch_abi_request_dto.py +++ b/test/test_fetch_abi_request_dto.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.fetch_abi_request_dto import FetchAbiRequestDto - - -class TestFetchAbiRequestDto(unittest.TestCase): - """FetchAbiRequestDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> FetchAbiRequestDto: - """Test FetchAbiRequestDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `FetchAbiRequestDto` - """ - model = FetchAbiRequestDto() - if include_optional: - return FetchAbiRequestDto( - base_asset_id = 'ETH', - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66' - ) - else: - return FetchAbiRequestDto( - base_asset_id = 'ETH', - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66', - ) - """ - - def testFetchAbiRequestDto(self): - """Test FetchAbiRequestDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZldGNoX2FiaV9yZXF1ZXN0X2R0byBpbXBvcnQgRmV0Y2hBYmlSZXF1ZXN0RHRvCgoKY2xhc3MgVGVzdEZldGNoQWJpUmVxdWVzdER0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJGZXRjaEFiaVJlcXVlc3REdG8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEZldGNoQWJpUmVxdWVzdER0bzoKICAgICAgICAiIiJUZXN0IEZldGNoQWJpUmVxdWVzdER0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBGZXRjaEFiaVJlcXVlc3REdG9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBGZXRjaEFiaVJlcXVlc3REdG8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBGZXRjaEFiaVJlcXVlc3REdG8oCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0X2lkID0gJ0VUSCcsCiAgICAgICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzID0gJzB4QzJjNGUxRGI0MUYwYkI5Nzk5NkQwZUQwNTQyRDIxNzBkMTQ2RkI2NicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBGZXRjaEFiaVJlcXVlc3REdG8oCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0X2lkID0gJ0VUSCcsCiAgICAgICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzID0gJzB4QzJjNGUxRGI0MUYwYkI5Nzk5NkQwZUQwNTQyRDIxNzBkMTQ2RkI2NicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RmV0Y2hBYmlSZXF1ZXN0RHRvKHNlbGYpOgogICAgICAgICIiIlRlc3QgRmV0Y2hBYmlSZXF1ZXN0RHRvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_fiat_account.py b/test/test_fiat_account.py index 0557c12f..01358c77 100644 --- a/test/test_fiat_account.py +++ b/test/test_fiat_account.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.fiat_account import FiatAccount - - -class TestFiatAccount(unittest.TestCase): - """FiatAccount unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> FiatAccount: - """Test FiatAccount - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `FiatAccount` - """ - model = FiatAccount() - if include_optional: - return FiatAccount( - id = '', - type = 'BLINC', - name = '', - address = '', - assets = [ - fireblocks.models.fiat_asset.FiatAsset( - id = '', - balance = '', ) - ] - ) - else: - return FiatAccount( - ) - """ - - def testFiatAccount(self): - """Test FiatAccount""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZpYXRfYWNjb3VudCBpbXBvcnQgRmlhdEFjY291bnQKCgpjbGFzcyBUZXN0RmlhdEFjY291bnQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRmlhdEFjY291bnQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEZpYXRBY2NvdW50OgogICAgICAgICIiIlRlc3QgRmlhdEFjY291bnQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRmlhdEFjY291bnRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBGaWF0QWNjb3VudCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEZpYXRBY2NvdW50KAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnQkxJTkMnLAogICAgICAgICAgICAgICAgbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcnLAogICAgICAgICAgICAgICAgYXNzZXRzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmZpYXRfYXNzZXQuRmlhdEFzc2V0KAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmFsYW5jZSA9ICcnLCApCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEZpYXRBY2NvdW50KAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEZpYXRBY2NvdW50KHNlbGYpOgogICAgICAgICIiIlRlc3QgRmlhdEFjY291bnQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_fiat_account_type.py b/test/test_fiat_account_type.py index 6e44213d..acf7191c 100644 --- a/test/test_fiat_account_type.py +++ b/test/test_fiat_account_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.fiat_account_type import FiatAccountType - - -class TestFiatAccountType(unittest.TestCase): - """FiatAccountType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testFiatAccountType(self): - """Test FiatAccountType""" - # inst = FiatAccountType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZpYXRfYWNjb3VudF90eXBlIGltcG9ydCBGaWF0QWNjb3VudFR5cGUKCgpjbGFzcyBUZXN0RmlhdEFjY291bnRUeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkZpYXRBY2NvdW50VHlwZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RGaWF0QWNjb3VudFR5cGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBGaWF0QWNjb3VudFR5cGUiIiIKICAgICAgICAjIGluc3QgPSBGaWF0QWNjb3VudFR5cGUoKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_fiat_accounts_api.py b/test/test_fiat_accounts_api.py index 37eb514d..3fc8cbe6 100644 --- a/test/test_fiat_accounts_api.py +++ b/test/test_fiat_accounts_api.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.fiat_accounts_api import FiatAccountsApi - - -class TestFiatAccountsApi(unittest.TestCase): - """FiatAccountsApi unit test stubs""" - - def setUp(self) -> None: - self.api = FiatAccountsApi() - - def tearDown(self) -> None: - pass - - def test_deposit_funds_from_linked_dda(self) -> None: - """Test case for deposit_funds_from_linked_dda - - Deposit funds from DDA - """ - pass - - def test_get_fiat_account(self) -> None: - """Test case for get_fiat_account - - Find a specific fiat account - """ - pass - - def test_get_fiat_accounts(self) -> None: - """Test case for get_fiat_accounts - - List fiat accounts - """ - pass - - def test_redeem_funds_to_linked_dda(self) -> None: - """Test case for redeem_funds_to_linked_dda - - Redeem funds to DDA - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLmZpYXRfYWNjb3VudHNfYXBpIGltcG9ydCBGaWF0QWNjb3VudHNBcGkKCgpjbGFzcyBUZXN0RmlhdEFjY291bnRzQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkZpYXRBY2NvdW50c0FwaSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZikgLT4gTm9uZToKICAgICAgICBzZWxmLmFwaSA9IEZpYXRBY2NvdW50c0FwaSgpCgogICAgZGVmIHRlYXJEb3duKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2RlcG9zaXRfZnVuZHNfZnJvbV9saW5rZWRfZGRhKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBkZXBvc2l0X2Z1bmRzX2Zyb21fbGlua2VkX2RkYQoKICAgICAgICBEZXBvc2l0IGZ1bmRzIGZyb20gRERBCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9maWF0X2FjY291bnQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9maWF0X2FjY291bnQKCiAgICAgICAgRmluZCBhIHNwZWNpZmljIGZpYXQgYWNjb3VudAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfZmlhdF9hY2NvdW50cyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2ZpYXRfYWNjb3VudHMKCiAgICAgICAgTGlzdCBmaWF0IGFjY291bnRzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3JlZGVlbV9mdW5kc190b19saW5rZWRfZGRhKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciByZWRlZW1fZnVuZHNfdG9fbGlua2VkX2RkYQoKICAgICAgICBSZWRlZW0gZnVuZHMgdG8gRERBCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_fiat_asset.py b/test/test_fiat_asset.py index 908db4a0..758978e6 100644 --- a/test/test_fiat_asset.py +++ b/test/test_fiat_asset.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.fiat_asset import FiatAsset - - -class TestFiatAsset(unittest.TestCase): - """FiatAsset unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> FiatAsset: - """Test FiatAsset - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `FiatAsset` - """ - model = FiatAsset() - if include_optional: - return FiatAsset( - id = '', - balance = '' - ) - else: - return FiatAsset( - ) - """ - - def testFiatAsset(self): - """Test FiatAsset""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZpYXRfYXNzZXQgaW1wb3J0IEZpYXRBc3NldAoKCmNsYXNzIFRlc3RGaWF0QXNzZXQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRmlhdEFzc2V0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBGaWF0QXNzZXQ6CiAgICAgICAgIiIiVGVzdCBGaWF0QXNzZXQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRmlhdEFzc2V0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRmlhdEFzc2V0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRmlhdEFzc2V0KAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIGJhbGFuY2UgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEZpYXRBc3NldCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RGaWF0QXNzZXQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBGaWF0QXNzZXQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_fiat_destination.py b/test/test_fiat_destination.py index 04817cf0..a6bba11b 100644 --- a/test/test_fiat_destination.py +++ b/test/test_fiat_destination.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.fiat_destination import FiatDestination - - -class TestFiatDestination(unittest.TestCase): - """FiatDestination unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> FiatDestination: - """Test FiatDestination - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `FiatDestination` - """ - model = FiatDestination() - if include_optional: - return FiatDestination( - type = 'IBAN', - address = {"externalSubAccountId":"sub_acc_1234567890","accountId":"acc_1234567890"} - ) - else: - return FiatDestination( - type = 'IBAN', - address = {"externalSubAccountId":"sub_acc_1234567890","accountId":"acc_1234567890"}, - ) - """ - - def testFiatDestination(self): - """Test FiatDestination""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZpYXRfZGVzdGluYXRpb24gaW1wb3J0IEZpYXREZXN0aW5hdGlvbgoKCmNsYXNzIFRlc3RGaWF0RGVzdGluYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRmlhdERlc3RpbmF0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBGaWF0RGVzdGluYXRpb246CiAgICAgICAgIiIiVGVzdCBGaWF0RGVzdGluYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRmlhdERlc3RpbmF0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRmlhdERlc3RpbmF0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRmlhdERlc3RpbmF0aW9uKAogICAgICAgICAgICAgICAgdHlwZSA9ICdJQkFOJywKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSB7ImV4dGVybmFsU3ViQWNjb3VudElkIjoic3ViX2FjY18xMjM0NTY3ODkwIiwiYWNjb3VudElkIjoiYWNjXzEyMzQ1Njc4OTAifQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEZpYXREZXN0aW5hdGlvbigKICAgICAgICAgICAgICAgIHR5cGUgPSAnSUJBTicsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0geyJleHRlcm5hbFN1YkFjY291bnRJZCI6InN1Yl9hY2NfMTIzNDU2Nzg5MCIsImFjY291bnRJZCI6ImFjY18xMjM0NTY3ODkwIn0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0RmlhdERlc3RpbmF0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgRmlhdERlc3RpbmF0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_fiat_payment_metadata.py b/test/test_fiat_payment_metadata.py index 2bc3fc46..122d6b5e 100644 --- a/test/test_fiat_payment_metadata.py +++ b/test/test_fiat_payment_metadata.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.fiat_payment_metadata import FiatPaymentMetadata - - -class TestFiatPaymentMetadata(unittest.TestCase): - """FiatPaymentMetadata unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> FiatPaymentMetadata: - """Test FiatPaymentMetadata - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `FiatPaymentMetadata` - """ - model = FiatPaymentMetadata() - if include_optional: - return FiatPaymentMetadata( - reference_id = '' - ) - else: - return FiatPaymentMetadata( - ) - """ - - def testFiatPaymentMetadata(self): - """Test FiatPaymentMetadata""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZpYXRfcGF5bWVudF9tZXRhZGF0YSBpbXBvcnQgRmlhdFBheW1lbnRNZXRhZGF0YQoKCmNsYXNzIFRlc3RGaWF0UGF5bWVudE1ldGFkYXRhKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkZpYXRQYXltZW50TWV0YWRhdGEgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEZpYXRQYXltZW50TWV0YWRhdGE6CiAgICAgICAgIiIiVGVzdCBGaWF0UGF5bWVudE1ldGFkYXRhCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEZpYXRQYXltZW50TWV0YWRhdGFgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBGaWF0UGF5bWVudE1ldGFkYXRhKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRmlhdFBheW1lbnRNZXRhZGF0YSgKICAgICAgICAgICAgICAgIHJlZmVyZW5jZV9pZCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRmlhdFBheW1lbnRNZXRhZGF0YSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RGaWF0UGF5bWVudE1ldGFkYXRhKHNlbGYpOgogICAgICAgICIiIlRlc3QgRmlhdFBheW1lbnRNZXRhZGF0YSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_fiat_transfer.py b/test/test_fiat_transfer.py index f5b5e0e6..b34c469c 100644 --- a/test/test_fiat_transfer.py +++ b/test/test_fiat_transfer.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.fiat_transfer import FiatTransfer - - -class TestFiatTransfer(unittest.TestCase): - """FiatTransfer unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> FiatTransfer: - """Test FiatTransfer - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `FiatTransfer` - """ - model = FiatTransfer() - if include_optional: - return FiatTransfer( - type = 'FIAT', - amount = '', - reference_id = '' - ) - else: - return FiatTransfer( - amount = '', - ) - """ - - def testFiatTransfer(self): - """Test FiatTransfer""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZpYXRfdHJhbnNmZXIgaW1wb3J0IEZpYXRUcmFuc2ZlcgoKCmNsYXNzIFRlc3RGaWF0VHJhbnNmZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRmlhdFRyYW5zZmVyIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBGaWF0VHJhbnNmZXI6CiAgICAgICAgIiIiVGVzdCBGaWF0VHJhbnNmZXIKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRmlhdFRyYW5zZmVyYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gRmlhdFRyYW5zZmVyKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRmlhdFRyYW5zZmVyKAogICAgICAgICAgICAgICAgdHlwZSA9ICdGSUFUJywKICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLAogICAgICAgICAgICAgICAgcmVmZXJlbmNlX2lkID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBGaWF0VHJhbnNmZXIoCiAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RGaWF0VHJhbnNmZXIoc2VsZik6CiAgICAgICAgIiIiVGVzdCBGaWF0VHJhbnNmZXIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_fixed_amount_type_enum.py b/test/test_fixed_amount_type_enum.py index 2d8e9d34..27d9638a 100644 --- a/test/test_fixed_amount_type_enum.py +++ b/test/test_fixed_amount_type_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.fixed_amount_type_enum import FixedAmountTypeEnum - - -class TestFixedAmountTypeEnum(unittest.TestCase): - """FixedAmountTypeEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testFixedAmountTypeEnum(self): - """Test FixedAmountTypeEnum""" - # inst = FixedAmountTypeEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZpeGVkX2Ftb3VudF90eXBlX2VudW0gaW1wb3J0IEZpeGVkQW1vdW50VHlwZUVudW0KCgpjbGFzcyBUZXN0Rml4ZWRBbW91bnRUeXBlRW51bSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJGaXhlZEFtb3VudFR5cGVFbnVtIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdEZpeGVkQW1vdW50VHlwZUVudW0oc2VsZik6CiAgICAgICAgIiIiVGVzdCBGaXhlZEFtb3VudFR5cGVFbnVtIiIiCiAgICAgICAgIyBpbnN0ID0gRml4ZWRBbW91bnRUeXBlRW51bSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_fixed_fee.py b/test/test_fixed_fee.py index 5470ef10..6b545150 100644 --- a/test/test_fixed_fee.py +++ b/test/test_fixed_fee.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.fixed_fee import FixedFee - - -class TestFixedFee(unittest.TestCase): - """FixedFee unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> FixedFee: - """Test FixedFee - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `FixedFee` - """ - model = FixedFee() - if include_optional: - return FixedFee( - amount_type = 'FIXED', - amount = '0.01' - ) - else: - return FixedFee( - amount_type = 'FIXED', - amount = '0.01', - ) - """ - - def testFixedFee(self): - """Test FixedFee""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZpeGVkX2ZlZSBpbXBvcnQgRml4ZWRGZWUKCgpjbGFzcyBUZXN0Rml4ZWRGZWUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRml4ZWRGZWUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEZpeGVkRmVlOgogICAgICAgICIiIlRlc3QgRml4ZWRGZWUKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRml4ZWRGZWVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBGaXhlZEZlZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEZpeGVkRmVlKAogICAgICAgICAgICAgICAgYW1vdW50X3R5cGUgPSAnRklYRUQnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gJzAuMDEnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRml4ZWRGZWUoCiAgICAgICAgICAgICAgICBhbW91bnRfdHlwZSA9ICdGSVhFRCcsCiAgICAgICAgICAgICAgICBhbW91bnQgPSAnMC4wMScsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Rml4ZWRGZWUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBGaXhlZEZlZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_freeze_transaction_response.py b/test/test_freeze_transaction_response.py index bf7f80bd..0e4b7b76 100644 --- a/test/test_freeze_transaction_response.py +++ b/test/test_freeze_transaction_response.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.freeze_transaction_response import FreezeTransactionResponse - - -class TestFreezeTransactionResponse(unittest.TestCase): - """FreezeTransactionResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> FreezeTransactionResponse: - """Test FreezeTransactionResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `FreezeTransactionResponse` - """ - model = FreezeTransactionResponse() - if include_optional: - return FreezeTransactionResponse( - success = True - ) - else: - return FreezeTransactionResponse( - ) - """ - - def testFreezeTransactionResponse(self): - """Test FreezeTransactionResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZyZWV6ZV90cmFuc2FjdGlvbl9yZXNwb25zZSBpbXBvcnQgRnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZQoKCmNsYXNzIFRlc3RGcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkZyZWV6ZVRyYW5zYWN0aW9uUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEZyZWV6ZVRyYW5zYWN0aW9uUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBGcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEZyZWV6ZVRyYW5zYWN0aW9uUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBGcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZSgKICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RGcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgRnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_function_doc.py b/test/test_function_doc.py index 7cf5ccee..86ef5d42 100644 --- a/test/test_function_doc.py +++ b/test/test_function_doc.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.function_doc import FunctionDoc - - -class TestFunctionDoc(unittest.TestCase): - """FunctionDoc unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> FunctionDoc: - """Test FunctionDoc - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `FunctionDoc` - """ - model = FunctionDoc() - if include_optional: - return FunctionDoc( - details = '', - params = { - 'key' : '' - }, - returns = { - 'key' : '' - } - ) - else: - return FunctionDoc( - ) - """ - - def testFunctionDoc(self): - """Test FunctionDoc""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZ1bmN0aW9uX2RvYyBpbXBvcnQgRnVuY3Rpb25Eb2MKCgpjbGFzcyBUZXN0RnVuY3Rpb25Eb2ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiRnVuY3Rpb25Eb2MgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEZ1bmN0aW9uRG9jOgogICAgICAgICIiIlRlc3QgRnVuY3Rpb25Eb2MKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgRnVuY3Rpb25Eb2NgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBGdW5jdGlvbkRvYygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uRG9jKAogICAgICAgICAgICAgICAgZGV0YWlscyA9ICcnLAogICAgICAgICAgICAgICAgcGFyYW1zID0gewogICAgICAgICAgICAgICAgICAgICdrZXknIDogJycKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgcmV0dXJucyA9IHsKICAgICAgICAgICAgICAgICAgICAna2V5JyA6ICcnCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uRG9jKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEZ1bmN0aW9uRG9jKHNlbGYpOgogICAgICAgICIiIlRlc3QgRnVuY3Rpb25Eb2MiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_funds.py b/test/test_funds.py index 18324313..67677ff2 100644 --- a/test/test_funds.py +++ b/test/test_funds.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.funds import Funds - - -class TestFunds(unittest.TestCase): - """Funds unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Funds: - """Test Funds - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Funds` - """ - model = Funds() - if include_optional: - return Funds( - amount = 1.337 - ) - else: - return Funds( - ) - """ - - def testFunds(self): - """Test Funds""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmZ1bmRzIGltcG9ydCBGdW5kcwoKCmNsYXNzIFRlc3RGdW5kcyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJGdW5kcyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gRnVuZHM6CiAgICAgICAgIiIiVGVzdCBGdW5kcwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBGdW5kc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEZ1bmRzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gRnVuZHMoCiAgICAgICAgICAgICAgICBhbW91bnQgPSAxLjMzNwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEZ1bmRzKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEZ1bmRzKHNlbGYpOgogICAgICAgICIiIlRlc3QgRnVuZHMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_gas_station_configuration.py b/test/test_gas_station_configuration.py index c22b713e..5fc8d22e 100644 --- a/test/test_gas_station_configuration.py +++ b/test/test_gas_station_configuration.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.gas_station_configuration import GasStationConfiguration - - -class TestGasStationConfiguration(unittest.TestCase): - """GasStationConfiguration unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GasStationConfiguration: - """Test GasStationConfiguration - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GasStationConfiguration` - """ - model = GasStationConfiguration() - if include_optional: - return GasStationConfiguration( - gas_threshold = '', - gas_cap = '', - max_gas_price = '' - ) - else: - return GasStationConfiguration( - ) - """ - - def testGasStationConfiguration(self): - """Test GasStationConfiguration""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb24gaW1wb3J0IEdhc1N0YXRpb25Db25maWd1cmF0aW9uCgoKY2xhc3MgVGVzdEdhc1N0YXRpb25Db25maWd1cmF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkdhc1N0YXRpb25Db25maWd1cmF0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBHYXNTdGF0aW9uQ29uZmlndXJhdGlvbjoKICAgICAgICAiIiJUZXN0IEdhc1N0YXRpb25Db25maWd1cmF0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEdhc1N0YXRpb25Db25maWd1cmF0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gR2FzU3RhdGlvbkNvbmZpZ3VyYXRpb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBHYXNTdGF0aW9uQ29uZmlndXJhdGlvbigKICAgICAgICAgICAgICAgIGdhc190aHJlc2hvbGQgPSAnJywKICAgICAgICAgICAgICAgIGdhc19jYXAgPSAnJywKICAgICAgICAgICAgICAgIG1heF9nYXNfcHJpY2UgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEdhc1N0YXRpb25Db25maWd1cmF0aW9uKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEdhc1N0YXRpb25Db25maWd1cmF0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgR2FzU3RhdGlvbkNvbmZpZ3VyYXRpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_gas_station_configuration_response.py b/test/test_gas_station_configuration_response.py index 2ce2cdee..1d44218c 100644 --- a/test/test_gas_station_configuration_response.py +++ b/test/test_gas_station_configuration_response.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.gas_station_configuration_response import ( - GasStationConfigurationResponse, -) - - -class TestGasStationConfigurationResponse(unittest.TestCase): - """GasStationConfigurationResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GasStationConfigurationResponse: - """Test GasStationConfigurationResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GasStationConfigurationResponse` - """ - model = GasStationConfigurationResponse() - if include_optional: - return GasStationConfigurationResponse( - gas_threshold = '', - gas_cap = '', - max_gas_price = '' - ) - else: - return GasStationConfigurationResponse( - ) - """ - - def testGasStationConfigurationResponse(self): - """Test GasStationConfigurationResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25fcmVzcG9uc2UgaW1wb3J0ICgKICAgIEdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0R2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgR2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gR2FzU3RhdGlvbkNvbmZpZ3VyYXRpb25SZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBnYXNfdGhyZXNob2xkID0gJycsCiAgICAgICAgICAgICAgICBnYXNfY2FwID0gJycsCiAgICAgICAgICAgICAgICBtYXhfZ2FzX3ByaWNlID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBHYXNTdGF0aW9uQ29uZmlndXJhdGlvblJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_gas_station_properties_response.py b/test/test_gas_station_properties_response.py index d6020539..134c7673 100644 --- a/test/test_gas_station_properties_response.py +++ b/test/test_gas_station_properties_response.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.gas_station_properties_response import ( - GasStationPropertiesResponse, -) - - -class TestGasStationPropertiesResponse(unittest.TestCase): - """GasStationPropertiesResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GasStationPropertiesResponse: - """Test GasStationPropertiesResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GasStationPropertiesResponse` - """ - model = GasStationPropertiesResponse() - if include_optional: - return GasStationPropertiesResponse( - balance = None, - configuration = fireblocks.models.gas_station_configuration_response.GasStationConfigurationResponse( - gas_threshold = '', - gas_cap = '', - max_gas_price = '', ) - ) - else: - return GasStationPropertiesResponse( - ) - """ - - def testGasStationPropertiesResponse(self): - """Test GasStationPropertiesResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdhc19zdGF0aW9uX3Byb3BlcnRpZXNfcmVzcG9uc2UgaW1wb3J0ICgKICAgIEdhc1N0YXRpb25Qcm9wZXJ0aWVzUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0R2FzU3RhdGlvblByb3BlcnRpZXNSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJHYXNTdGF0aW9uUHJvcGVydGllc1Jlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBHYXNTdGF0aW9uUHJvcGVydGllc1Jlc3BvbnNlOgogICAgICAgICIiIlRlc3QgR2FzU3RhdGlvblByb3BlcnRpZXNSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBHYXNTdGF0aW9uUHJvcGVydGllc1Jlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gR2FzU3RhdGlvblByb3BlcnRpZXNSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEdhc1N0YXRpb25Qcm9wZXJ0aWVzUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBiYWxhbmNlID0gTm9uZSwKICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy5nYXNfc3RhdGlvbl9jb25maWd1cmF0aW9uX3Jlc3BvbnNlLkdhc1N0YXRpb25Db25maWd1cmF0aW9uUmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgZ2FzX3RocmVzaG9sZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBnYXNfY2FwID0gJycsIAogICAgICAgICAgICAgICAgICAgIG1heF9nYXNfcHJpY2UgPSAnJywgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEdhc1N0YXRpb25Qcm9wZXJ0aWVzUmVzcG9uc2UoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0R2FzU3RhdGlvblByb3BlcnRpZXNSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IEdhc1N0YXRpb25Qcm9wZXJ0aWVzUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_gas_stations_api.py b/test/test_gas_stations_api.py index ee3539a8..0adbfb64 100644 --- a/test/test_gas_stations_api.py +++ b/test/test_gas_stations_api.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.gas_stations_api import GasStationsApi - - -class TestGasStationsApi(unittest.TestCase): - """GasStationsApi unit test stubs""" - - def setUp(self) -> None: - self.api = GasStationsApi() - - def tearDown(self) -> None: - pass - - def test_get_gas_station_by_asset_id(self) -> None: - """Test case for get_gas_station_by_asset_id - - Get gas station settings by asset - """ - pass - - def test_get_gas_station_info(self) -> None: - """Test case for get_gas_station_info - - Get gas station settings - """ - pass - - def test_update_gas_station_configuration(self) -> None: - """Test case for update_gas_station_configuration - - Edit gas station settings - """ - pass - - def test_update_gas_station_configuration_by_asset_id(self) -> None: - """Test case for update_gas_station_configuration_by_asset_id - - Edit gas station settings for an asset - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLmdhc19zdGF0aW9uc19hcGkgaW1wb3J0IEdhc1N0YXRpb25zQXBpCgoKY2xhc3MgVGVzdEdhc1N0YXRpb25zQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkdhc1N0YXRpb25zQXBpIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKSAtPiBOb25lOgogICAgICAgIHNlbGYuYXBpID0gR2FzU3RhdGlvbnNBcGkoKQoKICAgIGRlZiB0ZWFyRG93bihzZWxmKSAtPiBOb25lOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfZ2FzX3N0YXRpb25fYnlfYXNzZXRfaWQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9nYXNfc3RhdGlvbl9ieV9hc3NldF9pZAoKICAgICAgICBHZXQgZ2FzIHN0YXRpb24gc2V0dGluZ3MgYnkgYXNzZXQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2dhc19zdGF0aW9uX2luZm8oc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9nYXNfc3RhdGlvbl9pbmZvCgogICAgICAgIEdldCBnYXMgc3RhdGlvbiBzZXR0aW5ncwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF91cGRhdGVfZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbihzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgdXBkYXRlX2dhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb24KCiAgICAgICAgRWRpdCBnYXMgc3RhdGlvbiBzZXR0aW5ncwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF91cGRhdGVfZ2FzX3N0YXRpb25fY29uZmlndXJhdGlvbl9ieV9hc3NldF9pZChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgdXBkYXRlX2dhc19zdGF0aW9uX2NvbmZpZ3VyYXRpb25fYnlfYXNzZXRfaWQKCiAgICAgICAgRWRpdCBnYXMgc3RhdGlvbiBzZXR0aW5ncyBmb3IgYW4gYXNzZXQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_gassless_standard_configurations.py b/test/test_gassless_standard_configurations.py index 7fdbe380..6dff6d7b 100644 --- a/test/test_gassless_standard_configurations.py +++ b/test/test_gassless_standard_configurations.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.gassless_standard_configurations import ( - GasslessStandardConfigurations, -) - - -class TestGasslessStandardConfigurations(unittest.TestCase): - """GasslessStandardConfigurations unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GasslessStandardConfigurations: - """Test GasslessStandardConfigurations - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GasslessStandardConfigurations` - """ - model = GasslessStandardConfigurations() - if include_optional: - return GasslessStandardConfigurations( - gasless_standard_configurations = { - 'key' : fireblocks.models.gassless_standard_configurations_gasless_standard_configurations_value.GasslessStandardConfigurations_gaslessStandardConfigurations_value( - last_on_chain_check = '2024-09-09T04:17:46.918Z', - forwarder_addresses = [ - '0x2E7B54631e18E9eEcc2eb5219249cc8388586f66' - ], ) - } - ) - else: - return GasslessStandardConfigurations( - ) - """ - - def testGasslessStandardConfigurations(self): - """Test GasslessStandardConfigurations""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdhc3NsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zIGltcG9ydCAoCiAgICBHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnMsCikKCgpjbGFzcyBUZXN0R2Fzc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9ucyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gR2Fzc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zOgogICAgICAgICIiIlRlc3QgR2Fzc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9ucygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9ucygKICAgICAgICAgICAgICAgIGdhc2xlc3Nfc3RhbmRhcmRfY29uZmlndXJhdGlvbnMgPSB7CiAgICAgICAgICAgICAgICAgICAgJ2tleScgOiBmaXJlYmxvY2tzLm1vZGVscy5nYXNzbGVzc19zdGFuZGFyZF9jb25maWd1cmF0aW9uc19nYXNsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zX3ZhbHVlLkdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc19nYXNsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc192YWx1ZSgKICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9vbl9jaGFpbl9jaGVjayA9ICcyMDI0LTA5LTA5VDA0OjE3OjQ2LjkxOFonLCAKICAgICAgICAgICAgICAgICAgICAgICAgZm9yd2FyZGVyX2FkZHJlc3NlcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcweDJFN0I1NDYzMWUxOEU5ZUVjYzJlYjUyMTkyNDljYzgzODg1ODZmNjYnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9ucygKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_gassless_standard_configurations_gasless_standard_configurations_value.py b/test/test_gassless_standard_configurations_gasless_standard_configurations_value.py index e91e2ccd..0f3ff75e 100644 --- a/test/test_gassless_standard_configurations_gasless_standard_configurations_value.py +++ b/test/test_gassless_standard_configurations_gasless_standard_configurations_value.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.gassless_standard_configurations_gasless_standard_configurations_value import ( - GasslessStandardConfigurationsGaslessStandardConfigurationsValue, -) - - -class TestGasslessStandardConfigurationsGaslessStandardConfigurationsValue( - unittest.TestCase -): - """GasslessStandardConfigurationsGaslessStandardConfigurationsValue unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> GasslessStandardConfigurationsGaslessStandardConfigurationsValue: - """Test GasslessStandardConfigurationsGaslessStandardConfigurationsValue - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GasslessStandardConfigurationsGaslessStandardConfigurationsValue` - """ - model = GasslessStandardConfigurationsGaslessStandardConfigurationsValue() - if include_optional: - return GasslessStandardConfigurationsGaslessStandardConfigurationsValue( - last_on_chain_check = '2024-09-09T04:17:46.918Z', - forwarder_addresses = [ - '0x2E7B54631e18E9eEcc2eb5219249cc8388586f66' - ] - ) - else: - return GasslessStandardConfigurationsGaslessStandardConfigurationsValue( - ) - """ - - def testGasslessStandardConfigurationsGaslessStandardConfigurationsValue(self): - """Test GasslessStandardConfigurationsGaslessStandardConfigurationsValue""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdhc3NsZXNzX3N0YW5kYXJkX2NvbmZpZ3VyYXRpb25zX2dhc2xlc3Nfc3RhbmRhcmRfY29uZmlndXJhdGlvbnNfdmFsdWUgaW1wb3J0ICgKICAgIEdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc0dhc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zVmFsdWUsCikKCgpjbGFzcyBUZXN0R2Fzc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zR2FzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnNWYWx1ZSgKICAgIHVuaXR0ZXN0LlRlc3RDYXNlCik6CiAgICAiIiJHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnNHYXNsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc1ZhbHVlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZSgKICAgICAgICBzZWxmLCBpbmNsdWRlX29wdGlvbmFsCiAgICApIC0+IEdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc0dhc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zVmFsdWU6CiAgICAgICAgIiIiVGVzdCBHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnNHYXNsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc1ZhbHVlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEdhc3NsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc0dhc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zVmFsdWVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnNHYXNsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc1ZhbHVlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gR2Fzc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zR2FzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnNWYWx1ZSgKICAgICAgICAgICAgICAgIGxhc3Rfb25fY2hhaW5fY2hlY2sgPSAnMjAyNC0wOS0wOVQwNDoxNzo0Ni45MThaJywKICAgICAgICAgICAgICAgIGZvcndhcmRlcl9hZGRyZXNzZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgJzB4MkU3QjU0NjMxZTE4RTllRWNjMmViNTIxOTI0OWNjODM4ODU4NmY2NicKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gR2Fzc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zR2FzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnNWYWx1ZSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RHYXNzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnNHYXNsZXNzU3RhbmRhcmRDb25maWd1cmF0aW9uc1ZhbHVlKHNlbGYpOgogICAgICAgICIiIlRlc3QgR2Fzc2xlc3NTdGFuZGFyZENvbmZpZ3VyYXRpb25zR2FzbGVzc1N0YW5kYXJkQ29uZmlndXJhdGlvbnNWYWx1ZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_get_api_users_response.py b/test/test_get_api_users_response.py index 2d195bc6..8b705e29 100644 --- a/test/test_get_api_users_response.py +++ b/test/test_get_api_users_response.py @@ -1,71 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_api_users_response import GetAPIUsersResponse - - -class TestGetAPIUsersResponse(unittest.TestCase): - """GetAPIUsersResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetAPIUsersResponse: - """Test GetAPIUsersResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetAPIUsersResponse` - """ - model = GetAPIUsersResponse() - if include_optional: - return GetAPIUsersResponse( - users = [ - fireblocks.models.api_user.APIUser( - id = '', - name = '', - role = 'OWNER', - enabled = True, - status = 'PENDING_ACTIVATION', - user_type = 'API', ) - ] - ) - else: - return GetAPIUsersResponse( - users = [ - fireblocks.models.api_user.APIUser( - id = '', - name = '', - role = 'OWNER', - enabled = True, - status = 'PENDING_ACTIVATION', - user_type = 'API', ) - ], - ) - """ - - def testGetAPIUsersResponse(self): - """Test GetAPIUsersResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9hcGlfdXNlcnNfcmVzcG9uc2UgaW1wb3J0IEdldEFQSVVzZXJzUmVzcG9uc2UKCgpjbGFzcyBUZXN0R2V0QVBJVXNlcnNSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJHZXRBUElVc2Vyc1Jlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBHZXRBUElVc2Vyc1Jlc3BvbnNlOgogICAgICAgICIiIlRlc3QgR2V0QVBJVXNlcnNSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBHZXRBUElVc2Vyc1Jlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gR2V0QVBJVXNlcnNSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEdldEFQSVVzZXJzUmVzcG9uc2UoCiAgICAgICAgICAgICAgICB1c2VycyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5hcGlfdXNlci5BUElVc2VyKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcm9sZSA9ICdPV05FUicsIAogICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdQRU5ESU5HX0FDVElWQVRJT04nLCAKICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl90eXBlID0gJ0FQSScsICkKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gR2V0QVBJVXNlcnNSZXNwb25zZSgKICAgICAgICAgICAgICAgIHVzZXJzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmFwaV91c2VyLkFQSVVzZXIoCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICByb2xlID0gJ09XTkVSJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ1BFTkRJTkdfQUNUSVZBVElPTicsIAogICAgICAgICAgICAgICAgICAgICAgICB1c2VyX3R5cGUgPSAnQVBJJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0R2V0QVBJVXNlcnNSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IEdldEFQSVVzZXJzUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_get_audit_logs_response.py b/test/test_get_audit_logs_response.py index 9443b0d4..9de646ba 100644 --- a/test/test_get_audit_logs_response.py +++ b/test/test_get_audit_logs_response.py @@ -1,66 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_audit_logs_response import GetAuditLogsResponse - - -class TestGetAuditLogsResponse(unittest.TestCase): - """GetAuditLogsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetAuditLogsResponse: - """Test GetAuditLogsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetAuditLogsResponse` - """ - model = GetAuditLogsResponse() - if include_optional: - return GetAuditLogsResponse( - data = [ - fireblocks.models.audit_log_data.AuditLogData( - id = '', - timestamp = 1.337, - created_at = 1.337, - user = '', - subject = '', - event = '', - tenant_id = '', - user_id = '', ) - ], - cursor = '', - total = 1.337 - ) - else: - return GetAuditLogsResponse( - ) - """ - - def testGetAuditLogsResponse(self): - """Test GetAuditLogsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9hdWRpdF9sb2dzX3Jlc3BvbnNlIGltcG9ydCBHZXRBdWRpdExvZ3NSZXNwb25zZQoKCmNsYXNzIFRlc3RHZXRBdWRpdExvZ3NSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJHZXRBdWRpdExvZ3NSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gR2V0QXVkaXRMb2dzUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBHZXRBdWRpdExvZ3NSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBHZXRBdWRpdExvZ3NSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEdldEF1ZGl0TG9nc1Jlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gR2V0QXVkaXRMb2dzUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmF1ZGl0X2xvZ19kYXRhLkF1ZGl0TG9nRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZF9hdCA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgdXNlciA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3ViamVjdCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRlbmFudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9pZCA9ICcnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGN1cnNvciA9ICcnLAogICAgICAgICAgICAgICAgdG90YWwgPSAxLjMzNwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEdldEF1ZGl0TG9nc1Jlc3BvbnNlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEdldEF1ZGl0TG9nc1Jlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgR2V0QXVkaXRMb2dzUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_get_connections_response.py b/test/test_get_connections_response.py index 3cfd2ae3..7763165d 100644 --- a/test/test_get_connections_response.py +++ b/test/test_get_connections_response.py @@ -1,79 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_connections_response import GetConnectionsResponse - - -class TestGetConnectionsResponse(unittest.TestCase): - """GetConnectionsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetConnectionsResponse: - """Test GetConnectionsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetConnectionsResponse` - """ - model = GetConnectionsResponse() - if include_optional: - return GetConnectionsResponse( - data = [ - fireblocks.models.session_dto.SessionDTO( - id = '4e9e7051-f3b2-48e9-8ee6-b12492552657', - user_id = '', - session_metadata = null, - vault_account_id = 1, - fee_level = 'MEDIUM', - chain_ids = ["ETH","ETH_TEST","SOL"], - connection_type = 'WalletConnect', - connection_method = 'API', - creation_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ) - ], - paging = fireblocks.models.paging.Paging( - next = '', ) - ) - else: - return GetConnectionsResponse( - data = [ - fireblocks.models.session_dto.SessionDTO( - id = '4e9e7051-f3b2-48e9-8ee6-b12492552657', - user_id = '', - session_metadata = null, - vault_account_id = 1, - fee_level = 'MEDIUM', - chain_ids = ["ETH","ETH_TEST","SOL"], - connection_type = 'WalletConnect', - connection_method = 'API', - creation_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ) - ], - ) - """ - - def testGetConnectionsResponse(self): - """Test GetConnectionsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9jb25uZWN0aW9uc19yZXNwb25zZSBpbXBvcnQgR2V0Q29ubmVjdGlvbnNSZXNwb25zZQoKCmNsYXNzIFRlc3RHZXRDb25uZWN0aW9uc1Jlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkdldENvbm5lY3Rpb25zUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEdldENvbm5lY3Rpb25zUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBHZXRDb25uZWN0aW9uc1Jlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEdldENvbm5lY3Rpb25zUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBHZXRDb25uZWN0aW9uc1Jlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gR2V0Q29ubmVjdGlvbnNSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuc2Vzc2lvbl9kdG8uU2Vzc2lvbkRUTygKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnNGU5ZTcwNTEtZjNiMi00OGU5LThlZTYtYjEyNDkyNTUyNjU3JywgCiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb25fbWV0YWRhdGEgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9IDEsIAogICAgICAgICAgICAgICAgICAgICAgICBmZWVfbGV2ZWwgPSAnTUVESVVNJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNoYWluX2lkcyA9IFsiRVRIIiwiRVRIX1RFU1QiLCJTT0wiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25fdHlwZSA9ICdXYWxsZXRDb25uZWN0JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25fbWV0aG9kID0gJ0FQSScsIAogICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGlvbl9kYXRlID0gZGF0ZXRpbWUuZGF0ZXRpbWUuc3RycHRpbWUoJzIwMTMtMTAtMjAgMTk6MjA6MzAuMDAnLCAnJVktJW0tJWQgJUg6JU06JVMuJWYnKSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBwYWdpbmcgPSBmaXJlYmxvY2tzLm1vZGVscy5wYWdpbmcuUGFnaW5nKAogICAgICAgICAgICAgICAgICAgIG5leHQgPSAnJywgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEdldENvbm5lY3Rpb25zUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnNlc3Npb25fZHRvLlNlc3Npb25EVE8oCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJzRlOWU3MDUxLWYzYjItNDhlOS04ZWU2LWIxMjQ5MjU1MjY1NycsIAogICAgICAgICAgICAgICAgICAgICAgICB1c2VyX2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uX21ldGFkYXRhID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQgPSAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgZmVlX2xldmVsID0gJ01FRElVTScsIAogICAgICAgICAgICAgICAgICAgICAgICBjaGFpbl9pZHMgPSBbIkVUSCIsIkVUSF9URVNUIiwiU09MIl0sIAogICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uX3R5cGUgPSAnV2FsbGV0Q29ubmVjdCcsIAogICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uX21ldGhvZCA9ICdBUEknLCAKICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRpb25fZGF0ZSA9IGRhdGV0aW1lLmRhdGV0aW1lLnN0cnB0aW1lKCcyMDEzLTEwLTIwIDE5OjIwOjMwLjAwJywgJyVZLSVtLSVkICVIOiVNOiVTLiVmJyksICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEdldENvbm5lY3Rpb25zUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBHZXRDb25uZWN0aW9uc1Jlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_get_console_users_response.py b/test/test_get_console_users_response.py index 05134de5..7b7bd780 100644 --- a/test/test_get_console_users_response.py +++ b/test/test_get_console_users_response.py @@ -1,75 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_console_users_response import GetConsoleUsersResponse - - -class TestGetConsoleUsersResponse(unittest.TestCase): - """GetConsoleUsersResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetConsoleUsersResponse: - """Test GetConsoleUsersResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetConsoleUsersResponse` - """ - model = GetConsoleUsersResponse() - if include_optional: - return GetConsoleUsersResponse( - users = [ - fireblocks.models.console_user.ConsoleUser( - id = '', - first_name = '', - last_name = '', - email = '', - role = 'OWNER', - enabled = True, - status = 'PENDING_ACTIVATION', - user_type = 'API', ) - ] - ) - else: - return GetConsoleUsersResponse( - users = [ - fireblocks.models.console_user.ConsoleUser( - id = '', - first_name = '', - last_name = '', - email = '', - role = 'OWNER', - enabled = True, - status = 'PENDING_ACTIVATION', - user_type = 'API', ) - ], - ) - """ - - def testGetConsoleUsersResponse(self): - """Test GetConsoleUsersResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9jb25zb2xlX3VzZXJzX3Jlc3BvbnNlIGltcG9ydCBHZXRDb25zb2xlVXNlcnNSZXNwb25zZQoKCmNsYXNzIFRlc3RHZXRDb25zb2xlVXNlcnNSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJHZXRDb25zb2xlVXNlcnNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gR2V0Q29uc29sZVVzZXJzUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBHZXRDb25zb2xlVXNlcnNSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBHZXRDb25zb2xlVXNlcnNSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEdldENvbnNvbGVVc2Vyc1Jlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gR2V0Q29uc29sZVVzZXJzUmVzcG9uc2UoCiAgICAgICAgICAgICAgICB1c2VycyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5jb25zb2xlX3VzZXIuQ29uc29sZVVzZXIoCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBmaXJzdF9uYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBsYXN0X25hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICByb2xlID0gJ09XTkVSJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ1BFTkRJTkdfQUNUSVZBVElPTicsIAogICAgICAgICAgICAgICAgICAgICAgICB1c2VyX3R5cGUgPSAnQVBJJywgKQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBHZXRDb25zb2xlVXNlcnNSZXNwb25zZSgKICAgICAgICAgICAgICAgIHVzZXJzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmNvbnNvbGVfdXNlci5Db25zb2xlVXNlcigKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0X25hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RfbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZW1haWwgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGUgPSAnT1dORVInLCAKICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZCA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnUEVORElOR19BQ1RJVkFUSU9OJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJfdHlwZSA9ICdBUEknLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RHZXRDb25zb2xlVXNlcnNSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IEdldENvbnNvbGVVc2Vyc1Jlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_get_deployable_address_request.py b/test/test_get_deployable_address_request.py index 01c4029b..7b3bd789 100644 --- a/test/test_get_deployable_address_request.py +++ b/test/test_get_deployable_address_request.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_deployable_address_request import GetDeployableAddressRequest - - -class TestGetDeployableAddressRequest(unittest.TestCase): - """GetDeployableAddressRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetDeployableAddressRequest: - """Test GetDeployableAddressRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetDeployableAddressRequest` - """ - model = GetDeployableAddressRequest() - if include_optional: - return GetDeployableAddressRequest( - chain_descriptor = 'ETH', - template_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - init_params = [{"internalType":"string","name":"name","type":"string","value":"name"},{"internalType":"string","name":"symbol","type":"string","value":"symbol"},{"components":[{"internalType":"bool","name":"_isMintable","type":"bool"}],"internalType":"struct MyStruct","value":[{"internalType":"bool","name":"_isMintable","type":"bool","value":false}]}], - salt = '123456789' - ) - else: - return GetDeployableAddressRequest( - chain_descriptor = 'ETH', - template_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - init_params = [{"internalType":"string","name":"name","type":"string","value":"name"},{"internalType":"string","name":"symbol","type":"string","value":"symbol"},{"components":[{"internalType":"bool","name":"_isMintable","type":"bool"}],"internalType":"struct MyStruct","value":[{"internalType":"bool","name":"_isMintable","type":"bool","value":false}]}], - salt = '123456789', - ) - """ - - def testGetDeployableAddressRequest(self): - """Test GetDeployableAddressRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9kZXBsb3lhYmxlX2FkZHJlc3NfcmVxdWVzdCBpbXBvcnQgR2V0RGVwbG95YWJsZUFkZHJlc3NSZXF1ZXN0CgoKY2xhc3MgVGVzdEdldERlcGxveWFibGVBZGRyZXNzUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJHZXREZXBsb3lhYmxlQWRkcmVzc1JlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEdldERlcGxveWFibGVBZGRyZXNzUmVxdWVzdDoKICAgICAgICAiIiJUZXN0IEdldERlcGxveWFibGVBZGRyZXNzUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBHZXREZXBsb3lhYmxlQWRkcmVzc1JlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBHZXREZXBsb3lhYmxlQWRkcmVzc1JlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBHZXREZXBsb3lhYmxlQWRkcmVzc1JlcXVlc3QoCiAgICAgICAgICAgICAgICBjaGFpbl9kZXNjcmlwdG9yID0gJ0VUSCcsCiAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9pZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGQnLAogICAgICAgICAgICAgICAgaW5pdF9wYXJhbXMgPSBbeyJpbnRlcm5hbFR5cGUiOiJzdHJpbmciLCJuYW1lIjoibmFtZSIsInR5cGUiOiJzdHJpbmciLCJ2YWx1ZSI6Im5hbWUifSx7ImludGVybmFsVHlwZSI6InN0cmluZyIsIm5hbWUiOiJzeW1ib2wiLCJ0eXBlIjoic3RyaW5nIiwidmFsdWUiOiJzeW1ib2wifSx7ImNvbXBvbmVudHMiOlt7ImludGVybmFsVHlwZSI6ImJvb2wiLCJuYW1lIjoiX2lzTWludGFibGUiLCJ0eXBlIjoiYm9vbCJ9XSwiaW50ZXJuYWxUeXBlIjoic3RydWN0IE15U3RydWN0IiwidmFsdWUiOlt7ImludGVybmFsVHlwZSI6ImJvb2wiLCJuYW1lIjoiX2lzTWludGFibGUiLCJ0eXBlIjoiYm9vbCIsInZhbHVlIjpmYWxzZX1dfV0sCiAgICAgICAgICAgICAgICBzYWx0ID0gJzEyMzQ1Njc4OScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBHZXREZXBsb3lhYmxlQWRkcmVzc1JlcXVlc3QoCiAgICAgICAgICAgICAgICBjaGFpbl9kZXNjcmlwdG9yID0gJ0VUSCcsCiAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9pZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGQnLAogICAgICAgICAgICAgICAgaW5pdF9wYXJhbXMgPSBbeyJpbnRlcm5hbFR5cGUiOiJzdHJpbmciLCJuYW1lIjoibmFtZSIsInR5cGUiOiJzdHJpbmciLCJ2YWx1ZSI6Im5hbWUifSx7ImludGVybmFsVHlwZSI6InN0cmluZyIsIm5hbWUiOiJzeW1ib2wiLCJ0eXBlIjoic3RyaW5nIiwidmFsdWUiOiJzeW1ib2wifSx7ImNvbXBvbmVudHMiOlt7ImludGVybmFsVHlwZSI6ImJvb2wiLCJuYW1lIjoiX2lzTWludGFibGUiLCJ0eXBlIjoiYm9vbCJ9XSwiaW50ZXJuYWxUeXBlIjoic3RydWN0IE15U3RydWN0IiwidmFsdWUiOlt7ImludGVybmFsVHlwZSI6ImJvb2wiLCJuYW1lIjoiX2lzTWludGFibGUiLCJ0eXBlIjoiYm9vbCIsInZhbHVlIjpmYWxzZX1dfV0sCiAgICAgICAgICAgICAgICBzYWx0ID0gJzEyMzQ1Njc4OScsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0R2V0RGVwbG95YWJsZUFkZHJlc3NSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgR2V0RGVwbG95YWJsZUFkZHJlc3NSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_get_exchange_accounts_credentials_public_key_response.py b/test/test_get_exchange_accounts_credentials_public_key_response.py index d8df519d..f3e8f052 100644 --- a/test/test_get_exchange_accounts_credentials_public_key_response.py +++ b/test/test_get_exchange_accounts_credentials_public_key_response.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_exchange_accounts_credentials_public_key_response import ( - GetExchangeAccountsCredentialsPublicKeyResponse, -) - - -class TestGetExchangeAccountsCredentialsPublicKeyResponse(unittest.TestCase): - """GetExchangeAccountsCredentialsPublicKeyResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> GetExchangeAccountsCredentialsPublicKeyResponse: - """Test GetExchangeAccountsCredentialsPublicKeyResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetExchangeAccountsCredentialsPublicKeyResponse` - """ - model = GetExchangeAccountsCredentialsPublicKeyResponse() - if include_optional: - return GetExchangeAccountsCredentialsPublicKeyResponse( - public_key = '', - tenant_id = '' - ) - else: - return GetExchangeAccountsCredentialsPublicKeyResponse( - public_key = '', - tenant_id = '', - ) - """ - - def testGetExchangeAccountsCredentialsPublicKeyResponse(self): - """Test GetExchangeAccountsCredentialsPublicKeyResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9leGNoYW5nZV9hY2NvdW50c19jcmVkZW50aWFsc19wdWJsaWNfa2V5X3Jlc3BvbnNlIGltcG9ydCAoCiAgICBHZXRFeGNoYW5nZUFjY291bnRzQ3JlZGVudGlhbHNQdWJsaWNLZXlSZXNwb25zZSwKKQoKCmNsYXNzIFRlc3RHZXRFeGNoYW5nZUFjY291bnRzQ3JlZGVudGlhbHNQdWJsaWNLZXlSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJHZXRFeGNoYW5nZUFjY291bnRzQ3JlZGVudGlhbHNQdWJsaWNLZXlSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2UoCiAgICAgICAgc2VsZiwgaW5jbHVkZV9vcHRpb25hbAogICAgKSAtPiBHZXRFeGNoYW5nZUFjY291bnRzQ3JlZGVudGlhbHNQdWJsaWNLZXlSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEdldEV4Y2hhbmdlQWNjb3VudHNDcmVkZW50aWFsc1B1YmxpY0tleVJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEdldEV4Y2hhbmdlQWNjb3VudHNDcmVkZW50aWFsc1B1YmxpY0tleVJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gR2V0RXhjaGFuZ2VBY2NvdW50c0NyZWRlbnRpYWxzUHVibGljS2V5UmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBHZXRFeGNoYW5nZUFjY291bnRzQ3JlZGVudGlhbHNQdWJsaWNLZXlSZXNwb25zZSgKICAgICAgICAgICAgICAgIHB1YmxpY19rZXkgPSAnJywKICAgICAgICAgICAgICAgIHRlbmFudF9pZCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gR2V0RXhjaGFuZ2VBY2NvdW50c0NyZWRlbnRpYWxzUHVibGljS2V5UmVzcG9uc2UoCiAgICAgICAgICAgICAgICBwdWJsaWNfa2V5ID0gJycsCiAgICAgICAgICAgICAgICB0ZW5hbnRfaWQgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RHZXRFeGNoYW5nZUFjY291bnRzQ3JlZGVudGlhbHNQdWJsaWNLZXlSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IEdldEV4Y2hhbmdlQWNjb3VudHNDcmVkZW50aWFsc1B1YmxpY0tleVJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_get_filter_parameter.py b/test/test_get_filter_parameter.py index 30ab9d8b..9f10188c 100644 --- a/test/test_get_filter_parameter.py +++ b/test/test_get_filter_parameter.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_filter_parameter import GetFilterParameter - - -class TestGetFilterParameter(unittest.TestCase): - """GetFilterParameter unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetFilterParameter: - """Test GetFilterParameter - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetFilterParameter` - """ - model = GetFilterParameter() - if include_optional: - return GetFilterParameter( - id = '', - user_id = '', - vault_account_id = 1.337, - connection_method = '', - fee_level = '', - app_url = '', - app_name = '' - ) - else: - return GetFilterParameter( - ) - """ - - def testGetFilterParameter(self): - """Test GetFilterParameter""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9maWx0ZXJfcGFyYW1ldGVyIGltcG9ydCBHZXRGaWx0ZXJQYXJhbWV0ZXIKCgpjbGFzcyBUZXN0R2V0RmlsdGVyUGFyYW1ldGVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkdldEZpbHRlclBhcmFtZXRlciB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gR2V0RmlsdGVyUGFyYW1ldGVyOgogICAgICAgICIiIlRlc3QgR2V0RmlsdGVyUGFyYW1ldGVyCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEdldEZpbHRlclBhcmFtZXRlcmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEdldEZpbHRlclBhcmFtZXRlcigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEdldEZpbHRlclBhcmFtZXRlcigKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICB1c2VyX2lkID0gJycsCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gMS4zMzcsCiAgICAgICAgICAgICAgICBjb25uZWN0aW9uX21ldGhvZCA9ICcnLAogICAgICAgICAgICAgICAgZmVlX2xldmVsID0gJycsCiAgICAgICAgICAgICAgICBhcHBfdXJsID0gJycsCiAgICAgICAgICAgICAgICBhcHBfbmFtZSA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gR2V0RmlsdGVyUGFyYW1ldGVyKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEdldEZpbHRlclBhcmFtZXRlcihzZWxmKToKICAgICAgICAiIiJUZXN0IEdldEZpbHRlclBhcmFtZXRlciIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_get_layer_zero_dvn_config_response.py b/test/test_get_layer_zero_dvn_config_response.py index 6b9f082e..28d371f0 100644 --- a/test/test_get_layer_zero_dvn_config_response.py +++ b/test/test_get_layer_zero_dvn_config_response.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_layer_zero_dvn_config_response import ( - GetLayerZeroDvnConfigResponse, -) - - -class TestGetLayerZeroDvnConfigResponse(unittest.TestCase): - """GetLayerZeroDvnConfigResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetLayerZeroDvnConfigResponse: - """Test GetLayerZeroDvnConfigResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetLayerZeroDvnConfigResponse` - """ - model = GetLayerZeroDvnConfigResponse() - if include_optional: - return GetLayerZeroDvnConfigResponse( - source_adapter_token_link_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - channel_configs = [ - fireblocks.models.channel_dvn_config_with_confirmations.ChannelDvnConfigWithConfirmations( - send_config = null, - receive_config = null, ) - ] - ) - else: - return GetLayerZeroDvnConfigResponse( - source_adapter_token_link_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - channel_configs = [ - fireblocks.models.channel_dvn_config_with_confirmations.ChannelDvnConfigWithConfirmations( - send_config = null, - receive_config = null, ) - ], - ) - """ - - def testGetLayerZeroDvnConfigResponse(self): - """Test GetLayerZeroDvnConfigResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9sYXllcl96ZXJvX2R2bl9jb25maWdfcmVzcG9uc2UgaW1wb3J0ICgKICAgIEdldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlLAopCgoKY2xhc3MgVGVzdEdldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkdldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBHZXRMYXllclplcm9Edm5Db25maWdSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEdldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEdldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gR2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBHZXRMYXllclplcm9Edm5Db25maWdSZXNwb25zZSgKICAgICAgICAgICAgICAgIHNvdXJjZV9hZGFwdGVyX3Rva2VuX2xpbmtfaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywKICAgICAgICAgICAgICAgIGNoYW5uZWxfY29uZmlncyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5jaGFubmVsX2R2bl9jb25maWdfd2l0aF9jb25maXJtYXRpb25zLkNoYW5uZWxEdm5Db25maWdXaXRoQ29uZmlybWF0aW9ucygKICAgICAgICAgICAgICAgICAgICAgICAgc2VuZF9jb25maWcgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgcmVjZWl2ZV9jb25maWcgPSBudWxsLCApCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEdldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgc291cmNlX2FkYXB0ZXJfdG9rZW5fbGlua19pZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGQnLAogICAgICAgICAgICAgICAgY2hhbm5lbF9jb25maWdzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmNoYW5uZWxfZHZuX2NvbmZpZ193aXRoX2NvbmZpcm1hdGlvbnMuQ2hhbm5lbER2bkNvbmZpZ1dpdGhDb25maXJtYXRpb25zKAogICAgICAgICAgICAgICAgICAgICAgICBzZW5kX2NvbmZpZyA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICByZWNlaXZlX2NvbmZpZyA9IG51bGwsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEdldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgR2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_get_layer_zero_peers_response.py b/test/test_get_layer_zero_peers_response.py index be0f6bcb..d6efeb9f 100644 --- a/test/test_get_layer_zero_peers_response.py +++ b/test/test_get_layer_zero_peers_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_layer_zero_peers_response import GetLayerZeroPeersResponse - - -class TestGetLayerZeroPeersResponse(unittest.TestCase): - """GetLayerZeroPeersResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetLayerZeroPeersResponse: - """Test GetLayerZeroPeersResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetLayerZeroPeersResponse` - """ - model = GetLayerZeroPeersResponse() - if include_optional: - return GetLayerZeroPeersResponse( - adapter_token_link_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - adapter_address = '0x1234567890abcdef1234567890abcdef12345678', - peers = [{"adapterTokenLinkId":"b70701f4-d7b1-4795-a8ee-b09cdb5b850d","adapterAddress":"0x1234567890abcdef1234567890abcdef12345678","baseAssetId":"ETH_TEST6"},{"adapterTokenLinkId":"b70701f4-d7b1-4795-a8ee-b09cdb5b850d","adapterAddress":"0x1234567890abcdef1234567890abcdef12345678","baseAssetId":"ETH_TEST5"}] - ) - else: - return GetLayerZeroPeersResponse( - adapter_token_link_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - adapter_address = '0x1234567890abcdef1234567890abcdef12345678', - peers = [{"adapterTokenLinkId":"b70701f4-d7b1-4795-a8ee-b09cdb5b850d","adapterAddress":"0x1234567890abcdef1234567890abcdef12345678","baseAssetId":"ETH_TEST6"},{"adapterTokenLinkId":"b70701f4-d7b1-4795-a8ee-b09cdb5b850d","adapterAddress":"0x1234567890abcdef1234567890abcdef12345678","baseAssetId":"ETH_TEST5"}], - ) - """ - - def testGetLayerZeroPeersResponse(self): - """Test GetLayerZeroPeersResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9sYXllcl96ZXJvX3BlZXJzX3Jlc3BvbnNlIGltcG9ydCBHZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlCgoKY2xhc3MgVGVzdEdldExheWVyWmVyb1BlZXJzUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiR2V0TGF5ZXJaZXJvUGVlcnNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gR2V0TGF5ZXJaZXJvUGVlcnNSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEdldExheWVyWmVyb1BlZXJzUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgR2V0TGF5ZXJaZXJvUGVlcnNSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEdldExheWVyWmVyb1BlZXJzUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBHZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgYWRhcHRlcl90b2tlbl9saW5rX2lkID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCcsCiAgICAgICAgICAgICAgICBhZGFwdGVyX2FkZHJlc3MgPSAnMHgxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4JywKICAgICAgICAgICAgICAgIHBlZXJzID0gW3siYWRhcHRlclRva2VuTGlua0lkIjoiYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkIiwiYWRhcHRlckFkZHJlc3MiOiIweDEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2NzgiLCJiYXNlQXNzZXRJZCI6IkVUSF9URVNUNiJ9LHsiYWRhcHRlclRva2VuTGlua0lkIjoiYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkIiwiYWRhcHRlckFkZHJlc3MiOiIweDEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2NzgiLCJiYXNlQXNzZXRJZCI6IkVUSF9URVNUNSJ9XQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEdldExheWVyWmVyb1BlZXJzUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBhZGFwdGVyX3Rva2VuX2xpbmtfaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywKICAgICAgICAgICAgICAgIGFkYXB0ZXJfYWRkcmVzcyA9ICcweDEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2NzgnLAogICAgICAgICAgICAgICAgcGVlcnMgPSBbeyJhZGFwdGVyVG9rZW5MaW5rSWQiOiJiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGQiLCJhZGFwdGVyQWRkcmVzcyI6IjB4MTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3OCIsImJhc2VBc3NldElkIjoiRVRIX1RFU1Q2In0seyJhZGFwdGVyVG9rZW5MaW5rSWQiOiJiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGQiLCJhZGFwdGVyQWRkcmVzcyI6IjB4MTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3OCIsImJhc2VBc3NldElkIjoiRVRIX1RFU1Q1In1dLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEdldExheWVyWmVyb1BlZXJzUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBHZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_get_linked_collections_paginated_response.py b/test/test_get_linked_collections_paginated_response.py index d70d74e3..184f12da 100644 --- a/test/test_get_linked_collections_paginated_response.py +++ b/test/test_get_linked_collections_paginated_response.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_linked_collections_paginated_response import ( - GetLinkedCollectionsPaginatedResponse, -) - - -class TestGetLinkedCollectionsPaginatedResponse(unittest.TestCase): - """GetLinkedCollectionsPaginatedResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetLinkedCollectionsPaginatedResponse: - """Test GetLinkedCollectionsPaginatedResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetLinkedCollectionsPaginatedResponse` - """ - model = GetLinkedCollectionsPaginatedResponse() - if include_optional: - return GetLinkedCollectionsPaginatedResponse( - data = [ - fireblocks.models.collection_link_dto.CollectionLinkDto( - id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb', - status = 'COMPLETED', - type = NON_FUNGIBLE_TOKEN, - display_name = 'My Simple ERC721 Collection', - collection_metadata = null, ) - ], - next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9' - ) - else: - return GetLinkedCollectionsPaginatedResponse( - ) - """ - - def testGetLinkedCollectionsPaginatedResponse(self): - """Test GetLinkedCollectionsPaginatedResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9saW5rZWRfY29sbGVjdGlvbnNfcGFnaW5hdGVkX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBHZXRMaW5rZWRDb2xsZWN0aW9uc1BhZ2luYXRlZFJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdEdldExpbmtlZENvbGxlY3Rpb25zUGFnaW5hdGVkUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiR2V0TGlua2VkQ29sbGVjdGlvbnNQYWdpbmF0ZWRSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gR2V0TGlua2VkQ29sbGVjdGlvbnNQYWdpbmF0ZWRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEdldExpbmtlZENvbGxlY3Rpb25zUGFnaW5hdGVkUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgR2V0TGlua2VkQ29sbGVjdGlvbnNQYWdpbmF0ZWRSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEdldExpbmtlZENvbGxlY3Rpb25zUGFnaW5hdGVkUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBHZXRMaW5rZWRDb2xsZWN0aW9uc1BhZ2luYXRlZFJlc3BvbnNlKAogICAgICAgICAgICAgICAgZGF0YSA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5jb2xsZWN0aW9uX2xpbmtfZHRvLkNvbGxlY3Rpb25MaW5rRHRvKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdmYmZiZmJmYi1mYmZiLWZiZmItZmJmYi1mYmZiZmJmYmZiZmInLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ0NPTVBMRVRFRCcsIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gTk9OX0ZVTkdJQkxFX1RPS0VOLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheV9uYW1lID0gJ015IFNpbXBsZSBFUkM3MjEgQ29sbGVjdGlvbicsIAogICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uX21ldGFkYXRhID0gbnVsbCwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBuZXh0ID0gJ2VKMGVYQWlPaUpLVjFRaUxDSmhiR2NPaUpJVXpJMU5pSjknCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gR2V0TGlua2VkQ29sbGVjdGlvbnNQYWdpbmF0ZWRSZXNwb25zZSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RHZXRMaW5rZWRDb2xsZWN0aW9uc1BhZ2luYXRlZFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgR2V0TGlua2VkQ29sbGVjdGlvbnNQYWdpbmF0ZWRSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_get_max_bip_index_used_response.py b/test/test_get_max_bip_index_used_response.py index bc7ac215..42bb01f3 100644 --- a/test/test_get_max_bip_index_used_response.py +++ b/test/test_get_max_bip_index_used_response.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_max_bip_index_used_response import GetMaxBipIndexUsedResponse - - -class TestGetMaxBipIndexUsedResponse(unittest.TestCase): - """GetMaxBipIndexUsedResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetMaxBipIndexUsedResponse: - """Test GetMaxBipIndexUsedResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetMaxBipIndexUsedResponse` - """ - model = GetMaxBipIndexUsedResponse() - if include_optional: - return GetMaxBipIndexUsedResponse( - max_bip44_address_index_used = 42, - max_bip44_change_address_index_used = 50 - ) - else: - return GetMaxBipIndexUsedResponse( - ) - """ - - def testGetMaxBipIndexUsedResponse(self): - """Test GetMaxBipIndexUsedResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9tYXhfYmlwX2luZGV4X3VzZWRfcmVzcG9uc2UgaW1wb3J0IEdldE1heEJpcEluZGV4VXNlZFJlc3BvbnNlCgoKY2xhc3MgVGVzdEdldE1heEJpcEluZGV4VXNlZFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkdldE1heEJpcEluZGV4VXNlZFJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBHZXRNYXhCaXBJbmRleFVzZWRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEdldE1heEJpcEluZGV4VXNlZFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEdldE1heEJpcEluZGV4VXNlZFJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gR2V0TWF4QmlwSW5kZXhVc2VkUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBHZXRNYXhCaXBJbmRleFVzZWRSZXNwb25zZSgKICAgICAgICAgICAgICAgIG1heF9iaXA0NF9hZGRyZXNzX2luZGV4X3VzZWQgPSA0MiwKICAgICAgICAgICAgICAgIG1heF9iaXA0NF9jaGFuZ2VfYWRkcmVzc19pbmRleF91c2VkID0gNTAKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBHZXRNYXhCaXBJbmRleFVzZWRSZXNwb25zZSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RHZXRNYXhCaXBJbmRleFVzZWRSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IEdldE1heEJpcEluZGV4VXNlZFJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_get_max_spendable_amount_response.py b/test/test_get_max_spendable_amount_response.py index cf10467b..cdf47b10 100644 --- a/test/test_get_max_spendable_amount_response.py +++ b/test/test_get_max_spendable_amount_response.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_max_spendable_amount_response import ( - GetMaxSpendableAmountResponse, -) - - -class TestGetMaxSpendableAmountResponse(unittest.TestCase): - """GetMaxSpendableAmountResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetMaxSpendableAmountResponse: - """Test GetMaxSpendableAmountResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetMaxSpendableAmountResponse` - """ - model = GetMaxSpendableAmountResponse() - if include_optional: - return GetMaxSpendableAmountResponse( - max_spendable_amount = '' - ) - else: - return GetMaxSpendableAmountResponse( - ) - """ - - def testGetMaxSpendableAmountResponse(self): - """Test GetMaxSpendableAmountResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9tYXhfc3BlbmRhYmxlX2Ftb3VudF9yZXNwb25zZSBpbXBvcnQgKAogICAgR2V0TWF4U3BlbmRhYmxlQW1vdW50UmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0R2V0TWF4U3BlbmRhYmxlQW1vdW50UmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiR2V0TWF4U3BlbmRhYmxlQW1vdW50UmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEdldE1heFNwZW5kYWJsZUFtb3VudFJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgR2V0TWF4U3BlbmRhYmxlQW1vdW50UmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgR2V0TWF4U3BlbmRhYmxlQW1vdW50UmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBHZXRNYXhTcGVuZGFibGVBbW91bnRSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEdldE1heFNwZW5kYWJsZUFtb3VudFJlc3BvbnNlKAogICAgICAgICAgICAgICAgbWF4X3NwZW5kYWJsZV9hbW91bnQgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEdldE1heFNwZW5kYWJsZUFtb3VudFJlc3BvbnNlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEdldE1heFNwZW5kYWJsZUFtb3VudFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgR2V0TWF4U3BlbmRhYmxlQW1vdW50UmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_get_mpc_keys_response.py b/test/test_get_mpc_keys_response.py index f81b0b86..7d848960 100644 --- a/test/test_get_mpc_keys_response.py +++ b/test/test_get_mpc_keys_response.py @@ -1,79 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_mpc_keys_response import GetMpcKeysResponse - - -class TestGetMpcKeysResponse(unittest.TestCase): - """GetMpcKeysResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetMpcKeysResponse: - """Test GetMpcKeysResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetMpcKeysResponse` - """ - model = GetMpcKeysResponse() - if include_optional: - return GetMpcKeysResponse( - tenant_id = 'bdb57751-921d-45d5-99fd-344cffb364f6', - keys = [ - fireblocks.models.mpc_key.MpcKey( - key_id = '743f82cf-b526-4148-afb1-cd71f1dfee10', - user_id = 'da084d02-d446-413e-b4ce-1e3256517dfd', - algorithm = 201, - players = [ - fireblocks.models.players.Players( - id = '47d3383e-37a3-43d5-90a4-de0ca8c5e258', - type = 'MOBILE', ) - ], - last_preprocessed_index = 6, ) - ] - ) - else: - return GetMpcKeysResponse( - tenant_id = 'bdb57751-921d-45d5-99fd-344cffb364f6', - keys = [ - fireblocks.models.mpc_key.MpcKey( - key_id = '743f82cf-b526-4148-afb1-cd71f1dfee10', - user_id = 'da084d02-d446-413e-b4ce-1e3256517dfd', - algorithm = 201, - players = [ - fireblocks.models.players.Players( - id = '47d3383e-37a3-43d5-90a4-de0ca8c5e258', - type = 'MOBILE', ) - ], - last_preprocessed_index = 6, ) - ], - ) - """ - - def testGetMpcKeysResponse(self): - """Test GetMpcKeysResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9tcGNfa2V5c19yZXNwb25zZSBpbXBvcnQgR2V0TXBjS2V5c1Jlc3BvbnNlCgoKY2xhc3MgVGVzdEdldE1wY0tleXNSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJHZXRNcGNLZXlzUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEdldE1wY0tleXNSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEdldE1wY0tleXNSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBHZXRNcGNLZXlzUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBHZXRNcGNLZXlzUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBHZXRNcGNLZXlzUmVzcG9uc2UoCiAgICAgICAgICAgICAgICB0ZW5hbnRfaWQgPSAnYmRiNTc3NTEtOTIxZC00NWQ1LTk5ZmQtMzQ0Y2ZmYjM2NGY2JywKICAgICAgICAgICAgICAgIGtleXMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubXBjX2tleS5NcGNLZXkoCiAgICAgICAgICAgICAgICAgICAgICAgIGtleV9pZCA9ICc3NDNmODJjZi1iNTI2LTQxNDgtYWZiMS1jZDcxZjFkZmVlMTAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9pZCA9ICdkYTA4NGQwMi1kNDQ2LTQxM2UtYjRjZS0xZTMyNTY1MTdkZmQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWxnb3JpdGhtID0gMjAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgcGxheWVycyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBsYXllcnMuUGxheWVycygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICc0N2QzMzgzZS0zN2EzLTQzZDUtOTBhNC1kZTBjYThjNWUyNTgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ01PQklMRScsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICBsYXN0X3ByZXByb2Nlc3NlZF9pbmRleCA9IDYsICkKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gR2V0TXBjS2V5c1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgdGVuYW50X2lkID0gJ2JkYjU3NzUxLTkyMWQtNDVkNS05OWZkLTM0NGNmZmIzNjRmNicsCiAgICAgICAgICAgICAgICBrZXlzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLm1wY19rZXkuTXBjS2V5KAogICAgICAgICAgICAgICAgICAgICAgICBrZXlfaWQgPSAnNzQzZjgyY2YtYjUyNi00MTQ4LWFmYjEtY2Q3MWYxZGZlZTEwJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJfaWQgPSAnZGEwODRkMDItZDQ0Ni00MTNlLWI0Y2UtMWUzMjU2NTE3ZGZkJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZ29yaXRobSA9IDIwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHBsYXllcnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wbGF5ZXJzLlBsYXllcnMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnNDdkMzM4M2UtMzdhMy00M2Q1LTkwYTQtZGUwY2E4YzVlMjU4JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdNT0JJTEUnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9wcmVwcm9jZXNzZWRfaW5kZXggPSA2LCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RHZXRNcGNLZXlzUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBHZXRNcGNLZXlzUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_get_nfts_response.py b/test/test_get_nfts_response.py index abc4651f..48a24bb1 100644 --- a/test/test_get_nfts_response.py +++ b/test/test_get_nfts_response.py @@ -1,73 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_nfts_response import GetNFTsResponse - - -class TestGetNFTsResponse(unittest.TestCase): - """GetNFTsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetNFTsResponse: - """Test GetNFTsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetNFTsResponse` - """ - model = GetNFTsResponse() - if include_optional: - return GetNFTsResponse( - paging = fireblocks.models.paging.Paging( - next = '', ), - data = [ - fireblocks.models.token_response.TokenResponse( - id = '', - token_id = '', - standard = '', - metadata_uri = '', - cached_metadata_uri = '', - media = [ - fireblocks.models.media_entity_response.MediaEntityResponse( - url = '', - content_type = 'IMAGE', ) - ], - spam = null, - collection = null, - blockchain_descriptor = 'ETH', - description = '', - name = '', ) - ] - ) - else: - return GetNFTsResponse( - ) - """ - - def testGetNFTsResponse(self): - """Test GetNFTsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9uZnRzX3Jlc3BvbnNlIGltcG9ydCBHZXRORlRzUmVzcG9uc2UKCgpjbGFzcyBUZXN0R2V0TkZUc1Jlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkdldE5GVHNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gR2V0TkZUc1Jlc3BvbnNlOgogICAgICAgICIiIlRlc3QgR2V0TkZUc1Jlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEdldE5GVHNSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEdldE5GVHNSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEdldE5GVHNSZXNwb25zZSgKICAgICAgICAgICAgICAgIHBhZ2luZyA9IGZpcmVibG9ja3MubW9kZWxzLnBhZ2luZy5QYWdpbmcoCiAgICAgICAgICAgICAgICAgICAgbmV4dCA9ICcnLCApLAogICAgICAgICAgICAgICAgZGF0YSA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50b2tlbl9yZXNwb25zZS5Ub2tlblJlc3BvbnNlKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5faWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YW5kYXJkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YV91cmkgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlZF9tZXRhZGF0YV91cmkgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG1lZGlhID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubWVkaWFfZW50aXR5X3Jlc3BvbnNlLk1lZGlhRW50aXR5UmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZSA9ICdJTUFHRScsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICBzcGFtID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24gPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tjaGFpbl9kZXNjcmlwdG9yID0gJ0VUSCcsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICcnLCApCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEdldE5GVHNSZXNwb25zZSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RHZXRORlRzUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBHZXRORlRzUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_get_orders_response.py b/test/test_get_orders_response.py index 9e09fb24..ab5dbb2a 100644 --- a/test/test_get_orders_response.py +++ b/test/test_get_orders_response.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_orders_response import GetOrdersResponse - - -class TestGetOrdersResponse(unittest.TestCase): - """GetOrdersResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetOrdersResponse: - """Test GetOrdersResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetOrdersResponse` - """ - model = GetOrdersResponse() - if include_optional: - return GetOrdersResponse( - data = [ - {"id":"ord_5f8e2d9c1a7b4e36","via":{"type":"PROVIDER_ACCOUNT","providerId":"prov_8c3f1a4b2d6e9f7c","accountId":"acc_5e9a2d1c4b7f3e8a"},"side":"BUY","baseAmount":"1000.00","quoteAmount":"0.02458","baseAssetId":"USD","quoteAssetId":"BTC","status":"COMPLETED","destination":{"type":"VAULT_ACCOUNT","accountId":"vault_acc_7b2e5d8f1c4a9e3b"},"source":{"type":"VAULT_ACCOUNT","accountId":"vault_acc_3f7e1d9b2c5a8e4f"},"createdAt":"2024-01-15T10:30:00.000Z"} - ], - total = 56, - next = '' - ) - else: - return GetOrdersResponse( - data = [ - {"id":"ord_5f8e2d9c1a7b4e36","via":{"type":"PROVIDER_ACCOUNT","providerId":"prov_8c3f1a4b2d6e9f7c","accountId":"acc_5e9a2d1c4b7f3e8a"},"side":"BUY","baseAmount":"1000.00","quoteAmount":"0.02458","baseAssetId":"USD","quoteAssetId":"BTC","status":"COMPLETED","destination":{"type":"VAULT_ACCOUNT","accountId":"vault_acc_7b2e5d8f1c4a9e3b"},"source":{"type":"VAULT_ACCOUNT","accountId":"vault_acc_3f7e1d9b2c5a8e4f"},"createdAt":"2024-01-15T10:30:00.000Z"} - ], - total = 56, - ) - """ - - def testGetOrdersResponse(self): - """Test GetOrdersResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9vcmRlcnNfcmVzcG9uc2UgaW1wb3J0IEdldE9yZGVyc1Jlc3BvbnNlCgoKY2xhc3MgVGVzdEdldE9yZGVyc1Jlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkdldE9yZGVyc1Jlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBHZXRPcmRlcnNSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEdldE9yZGVyc1Jlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEdldE9yZGVyc1Jlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gR2V0T3JkZXJzUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBHZXRPcmRlcnNSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgeyJpZCI6Im9yZF81ZjhlMmQ5YzFhN2I0ZTM2IiwidmlhIjp7InR5cGUiOiJQUk9WSURFUl9BQ0NPVU5UIiwicHJvdmlkZXJJZCI6InByb3ZfOGMzZjFhNGIyZDZlOWY3YyIsImFjY291bnRJZCI6ImFjY181ZTlhMmQxYzRiN2YzZThhIn0sInNpZGUiOiJCVVkiLCJiYXNlQW1vdW50IjoiMTAwMC4wMCIsInF1b3RlQW1vdW50IjoiMC4wMjQ1OCIsImJhc2VBc3NldElkIjoiVVNEIiwicXVvdGVBc3NldElkIjoiQlRDIiwic3RhdHVzIjoiQ09NUExFVEVEIiwiZGVzdGluYXRpb24iOnsidHlwZSI6IlZBVUxUX0FDQ09VTlQiLCJhY2NvdW50SWQiOiJ2YXVsdF9hY2NfN2IyZTVkOGYxYzRhOWUzYiJ9LCJzb3VyY2UiOnsidHlwZSI6IlZBVUxUX0FDQ09VTlQiLCJhY2NvdW50SWQiOiJ2YXVsdF9hY2NfM2Y3ZTFkOWIyYzVhOGU0ZiJ9LCJjcmVhdGVkQXQiOiIyMDI0LTAxLTE1VDEwOjMwOjAwLjAwMFoifQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICB0b3RhbCA9IDU2LAogICAgICAgICAgICAgICAgbmV4dCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gR2V0T3JkZXJzUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIHsiaWQiOiJvcmRfNWY4ZTJkOWMxYTdiNGUzNiIsInZpYSI6eyJ0eXBlIjoiUFJPVklERVJfQUNDT1VOVCIsInByb3ZpZGVySWQiOiJwcm92XzhjM2YxYTRiMmQ2ZTlmN2MiLCJhY2NvdW50SWQiOiJhY2NfNWU5YTJkMWM0YjdmM2U4YSJ9LCJzaWRlIjoiQlVZIiwiYmFzZUFtb3VudCI6IjEwMDAuMDAiLCJxdW90ZUFtb3VudCI6IjAuMDI0NTgiLCJiYXNlQXNzZXRJZCI6IlVTRCIsInF1b3RlQXNzZXRJZCI6IkJUQyIsInN0YXR1cyI6IkNPTVBMRVRFRCIsImRlc3RpbmF0aW9uIjp7InR5cGUiOiJWQVVMVF9BQ0NPVU5UIiwiYWNjb3VudElkIjoidmF1bHRfYWNjXzdiMmU1ZDhmMWM0YTllM2IifSwic291cmNlIjp7InR5cGUiOiJWQVVMVF9BQ0NPVU5UIiwiYWNjb3VudElkIjoidmF1bHRfYWNjXzNmN2UxZDliMmM1YThlNGYifSwiY3JlYXRlZEF0IjoiMjAyNC0wMS0xNVQxMDozMDowMC4wMDBaIn0KICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgdG90YWwgPSA1NiwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RHZXRPcmRlcnNSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IEdldE9yZGVyc1Jlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_get_ota_status_response.py b/test/test_get_ota_status_response.py index 5142734d..57611f55 100644 --- a/test/test_get_ota_status_response.py +++ b/test/test_get_ota_status_response.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_ota_status_response import GetOtaStatusResponse - - -class TestGetOtaStatusResponse(unittest.TestCase): - """GetOtaStatusResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetOtaStatusResponse: - """Test GetOtaStatusResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetOtaStatusResponse` - """ - model = GetOtaStatusResponse() - if include_optional: - return GetOtaStatusResponse( - enabled = True - ) - else: - return GetOtaStatusResponse( - ) - """ - - def testGetOtaStatusResponse(self): - """Test GetOtaStatusResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9vdGFfc3RhdHVzX3Jlc3BvbnNlIGltcG9ydCBHZXRPdGFTdGF0dXNSZXNwb25zZQoKCmNsYXNzIFRlc3RHZXRPdGFTdGF0dXNSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJHZXRPdGFTdGF0dXNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gR2V0T3RhU3RhdHVzUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBHZXRPdGFTdGF0dXNSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBHZXRPdGFTdGF0dXNSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEdldE90YVN0YXR1c1Jlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gR2V0T3RhU3RhdHVzUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBlbmFibGVkID0gVHJ1ZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEdldE90YVN0YXR1c1Jlc3BvbnNlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEdldE90YVN0YXR1c1Jlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgR2V0T3RhU3RhdHVzUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_get_ownership_tokens_response.py b/test/test_get_ownership_tokens_response.py index 44490381..894d0611 100644 --- a/test/test_get_ownership_tokens_response.py +++ b/test/test_get_ownership_tokens_response.py @@ -1,80 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_ownership_tokens_response import GetOwnershipTokensResponse - - -class TestGetOwnershipTokensResponse(unittest.TestCase): - """GetOwnershipTokensResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetOwnershipTokensResponse: - """Test GetOwnershipTokensResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetOwnershipTokensResponse` - """ - model = GetOwnershipTokensResponse() - if include_optional: - return GetOwnershipTokensResponse( - paging = fireblocks.models.paging.Paging( - next = '', ), - data = [ - fireblocks.models.token_ownership_response.TokenOwnershipResponse( - id = '', - token_id = '', - standard = '', - metadata_uri = '', - cached_metadata_uri = '', - media = [ - fireblocks.models.media_entity_response.MediaEntityResponse( - url = '', - content_type = 'IMAGE', ) - ], - spam = null, - collection = null, - balance = '', - vault_account_id = '', - ownership_start_time = 1.337, - ownership_last_update_time = 1.337, - blockchain_descriptor = 'ETH', - description = '', - name = '', - ncw_id = '', - ncw_account_id = '', - status = 'LISTED', ) - ] - ) - else: - return GetOwnershipTokensResponse( - ) - """ - - def testGetOwnershipTokensResponse(self): - """Test GetOwnershipTokensResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9vd25lcnNoaXBfdG9rZW5zX3Jlc3BvbnNlIGltcG9ydCBHZXRPd25lcnNoaXBUb2tlbnNSZXNwb25zZQoKCmNsYXNzIFRlc3RHZXRPd25lcnNoaXBUb2tlbnNSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJHZXRPd25lcnNoaXBUb2tlbnNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gR2V0T3duZXJzaGlwVG9rZW5zUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBHZXRPd25lcnNoaXBUb2tlbnNSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBHZXRPd25lcnNoaXBUb2tlbnNSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEdldE93bmVyc2hpcFRva2Vuc1Jlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gR2V0T3duZXJzaGlwVG9rZW5zUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBwYWdpbmcgPSBmaXJlYmxvY2tzLm1vZGVscy5wYWdpbmcuUGFnaW5nKAogICAgICAgICAgICAgICAgICAgIG5leHQgPSAnJywgKSwKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fb3duZXJzaGlwX3Jlc3BvbnNlLlRva2VuT3duZXJzaGlwUmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICB0b2tlbl9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3RhbmRhcmQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhX3VyaSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVkX21ldGFkYXRhX3VyaSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWVkaWEgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5tZWRpYV9lbnRpdHlfcmVzcG9uc2UuTWVkaWFFbnRpdHlSZXNwb25zZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlID0gJ0lNQUdFJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHNwYW0gPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbiA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBiYWxhbmNlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBvd25lcnNoaXBfc3RhcnRfdGltZSA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgb3duZXJzaGlwX2xhc3RfdXBkYXRlX3RpbWUgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrY2hhaW5fZGVzY3JpcHRvciA9ICdFVEgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG5jd19pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmN3X2FjY291bnRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdMSVNURUQnLCApCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEdldE93bmVyc2hpcFRva2Vuc1Jlc3BvbnNlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEdldE93bmVyc2hpcFRva2Vuc1Jlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgR2V0T3duZXJzaGlwVG9rZW5zUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_get_paged_exchange_accounts_response.py b/test/test_get_paged_exchange_accounts_response.py index 4406cfe5..30f9a11c 100644 --- a/test/test_get_paged_exchange_accounts_response.py +++ b/test/test_get_paged_exchange_accounts_response.py @@ -1,114 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_paged_exchange_accounts_response import ( - GetPagedExchangeAccountsResponse, -) - - -class TestGetPagedExchangeAccountsResponse(unittest.TestCase): - """GetPagedExchangeAccountsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetPagedExchangeAccountsResponse: - """Test GetPagedExchangeAccountsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetPagedExchangeAccountsResponse` - """ - model = GetPagedExchangeAccountsResponse() - if include_optional: - return GetPagedExchangeAccountsResponse( - exchanges = [ - fireblocks.models.exchange_account.ExchangeAccount( - id = '', - type = 'INDEPENDENT_RESERVE', - name = '', - status = '', - assets = [ - fireblocks.models.exchange_asset.ExchangeAsset( - id = '', - balance = '', - locked_amount = '', - total = '', - available = '', - credit = '', - asset_id = '2306088f-97ed-4293-8d28-8ab627f272d7', - provider_symbol = 'BTC', - asset_symbol = 'BTC', - asset_legacy_id = 'BTC', ) - ], - success = True, - trading_accounts = [ - fireblocks.models.exchange_trading_account.ExchangeTradingAccount( - name = '', ) - ], - is_subaccount = True, - main_account_id = '', ) - ], - paging = fireblocks.models.get_paged_exchange_accounts_response_paging.GetPagedExchangeAccountsResponse_paging( - after = '', - before = '', ), - prev_url = '', - next_url = '' - ) - else: - return GetPagedExchangeAccountsResponse( - exchanges = [ - fireblocks.models.exchange_account.ExchangeAccount( - id = '', - type = 'INDEPENDENT_RESERVE', - name = '', - status = '', - assets = [ - fireblocks.models.exchange_asset.ExchangeAsset( - id = '', - balance = '', - locked_amount = '', - total = '', - available = '', - credit = '', - asset_id = '2306088f-97ed-4293-8d28-8ab627f272d7', - provider_symbol = 'BTC', - asset_symbol = 'BTC', - asset_legacy_id = 'BTC', ) - ], - success = True, - trading_accounts = [ - fireblocks.models.exchange_trading_account.ExchangeTradingAccount( - name = '', ) - ], - is_subaccount = True, - main_account_id = '', ) - ], - ) - """ - - def testGetPagedExchangeAccountsResponse(self): - """Test GetPagedExchangeAccountsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9wYWdlZF9leGNoYW5nZV9hY2NvdW50c19yZXNwb25zZSBpbXBvcnQgKAogICAgR2V0UGFnZWRFeGNoYW5nZUFjY291bnRzUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0R2V0UGFnZWRFeGNoYW5nZUFjY291bnRzUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiR2V0UGFnZWRFeGNoYW5nZUFjY291bnRzUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlOgogICAgICAgICIiIlRlc3QgR2V0UGFnZWRFeGNoYW5nZUFjY291bnRzUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgR2V0UGFnZWRFeGNoYW5nZUFjY291bnRzUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBHZXRQYWdlZEV4Y2hhbmdlQWNjb3VudHNSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgZXhjaGFuZ2VzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmV4Y2hhbmdlX2FjY291bnQuRXhjaGFuZ2VBY2NvdW50KAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdJTkRFUEVOREVOVF9SRVNFUlZFJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuZXhjaGFuZ2VfYXNzZXQuRXhjaGFuZ2VBc3NldCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWxhbmNlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2tlZF9hbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWwgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWRpdCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcyMzA2MDg4Zi05N2VkLTQyOTMtOGQyOC04YWI2MjdmMjcyZDcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlcl9zeW1ib2wgPSAnQlRDJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfc3ltYm9sID0gJ0JUQycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2xlZ2FjeV9pZCA9ICdCVEMnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICB0cmFkaW5nX2FjY291bnRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuZXhjaGFuZ2VfdHJhZGluZ19hY2NvdW50LkV4Y2hhbmdlVHJhZGluZ0FjY291bnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICcnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgaXNfc3ViYWNjb3VudCA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICBtYWluX2FjY291bnRfaWQgPSAnJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBwYWdpbmcgPSBmaXJlYmxvY2tzLm1vZGVscy5nZXRfcGFnZWRfZXhjaGFuZ2VfYWNjb3VudHNfcmVzcG9uc2VfcGFnaW5nLkdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlX3BhZ2luZygKICAgICAgICAgICAgICAgICAgICBhZnRlciA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBiZWZvcmUgPSAnJywgKSwKICAgICAgICAgICAgICAgIHByZXZfdXJsID0gJycsCiAgICAgICAgICAgICAgICBuZXh0X3VybCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gR2V0UGFnZWRFeGNoYW5nZUFjY291bnRzUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBleGNoYW5nZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuZXhjaGFuZ2VfYWNjb3VudC5FeGNoYW5nZUFjY291bnQoCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ0lOREVQRU5ERU5UX1JFU0VSVkUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5leGNoYW5nZV9hc3NldC5FeGNoYW5nZUFzc2V0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhbGFuY2UgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9ja2VkX2Ftb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlZGl0ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJzIzMDYwODhmLTk3ZWQtNDI5My04ZDI4LThhYjYyN2YyNzJkNycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyX3N5bWJvbCA9ICdCVEMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldF9zeW1ib2wgPSAnQlRDJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfbGVnYWN5X2lkID0gJ0JUQycsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWRpbmdfYWNjb3VudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5leGNoYW5nZV90cmFkaW5nX2FjY291bnQuRXhjaGFuZ2VUcmFkaW5nQWNjb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJycsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICBpc19zdWJhY2NvdW50ID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIG1haW5fYWNjb3VudF9pZCA9ICcnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RHZXRQYWdlZEV4Y2hhbmdlQWNjb3VudHNSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_get_paged_exchange_accounts_response_paging.py b/test/test_get_paged_exchange_accounts_response_paging.py index 20be9b37..f45ebeff 100644 --- a/test/test_get_paged_exchange_accounts_response_paging.py +++ b/test/test_get_paged_exchange_accounts_response_paging.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_paged_exchange_accounts_response_paging import ( - GetPagedExchangeAccountsResponsePaging, -) - - -class TestGetPagedExchangeAccountsResponsePaging(unittest.TestCase): - """GetPagedExchangeAccountsResponsePaging unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetPagedExchangeAccountsResponsePaging: - """Test GetPagedExchangeAccountsResponsePaging - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetPagedExchangeAccountsResponsePaging` - """ - model = GetPagedExchangeAccountsResponsePaging() - if include_optional: - return GetPagedExchangeAccountsResponsePaging( - after = '', - before = '' - ) - else: - return GetPagedExchangeAccountsResponsePaging( - ) - """ - - def testGetPagedExchangeAccountsResponsePaging(self): - """Test GetPagedExchangeAccountsResponsePaging""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9wYWdlZF9leGNoYW5nZV9hY2NvdW50c19yZXNwb25zZV9wYWdpbmcgaW1wb3J0ICgKICAgIEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlUGFnaW5nLAopCgoKY2xhc3MgVGVzdEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlUGFnaW5nKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlUGFnaW5nIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBHZXRQYWdlZEV4Y2hhbmdlQWNjb3VudHNSZXNwb25zZVBhZ2luZzoKICAgICAgICAiIiJUZXN0IEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlUGFnaW5nCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlUGFnaW5nYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gR2V0UGFnZWRFeGNoYW5nZUFjY291bnRzUmVzcG9uc2VQYWdpbmcoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBHZXRQYWdlZEV4Y2hhbmdlQWNjb3VudHNSZXNwb25zZVBhZ2luZygKICAgICAgICAgICAgICAgIGFmdGVyID0gJycsCiAgICAgICAgICAgICAgICBiZWZvcmUgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlUGFnaW5nKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEdldFBhZ2VkRXhjaGFuZ2VBY2NvdW50c1Jlc3BvbnNlUGFnaW5nKHNlbGYpOgogICAgICAgICIiIlRlc3QgR2V0UGFnZWRFeGNoYW5nZUFjY291bnRzUmVzcG9uc2VQYWdpbmciIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_get_signing_key_response_dto.py b/test/test_get_signing_key_response_dto.py index a59956f7..19c8a166 100644 --- a/test/test_get_signing_key_response_dto.py +++ b/test/test_get_signing_key_response_dto.py @@ -1,76 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_signing_key_response_dto import GetSigningKeyResponseDto - - -class TestGetSigningKeyResponseDto(unittest.TestCase): - """GetSigningKeyResponseDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetSigningKeyResponseDto: - """Test GetSigningKeyResponseDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetSigningKeyResponseDto` - """ - model = GetSigningKeyResponseDto() - if include_optional: - return GetSigningKeyResponseDto( - data = [ - fireblocks.models.signing_key_dto.SigningKeyDto( - key_id = '46a92767-5f93-4a46-9eed-f012196bb4fc', - signing_device_key_id = 'MyKey1', - public_key_pem = '-----BEGIN PUBLIC KEY ... END PUBLIC KEY-----', - algorithm = 'ECDSA_SECP256K1', - enabled = True, - vault_account_id = 10, - agent_user_id = 'd18847b5-1df6-4c46-8f99-5cce47284529', - created_at = 124757537, ) - ], - next = '' - ) - else: - return GetSigningKeyResponseDto( - data = [ - fireblocks.models.signing_key_dto.SigningKeyDto( - key_id = '46a92767-5f93-4a46-9eed-f012196bb4fc', - signing_device_key_id = 'MyKey1', - public_key_pem = '-----BEGIN PUBLIC KEY ... END PUBLIC KEY-----', - algorithm = 'ECDSA_SECP256K1', - enabled = True, - vault_account_id = 10, - agent_user_id = 'd18847b5-1df6-4c46-8f99-5cce47284529', - created_at = 124757537, ) - ], - ) - """ - - def testGetSigningKeyResponseDto(self): - """Test GetSigningKeyResponseDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF9zaWduaW5nX2tleV9yZXNwb25zZV9kdG8gaW1wb3J0IEdldFNpZ25pbmdLZXlSZXNwb25zZUR0bwoKCmNsYXNzIFRlc3RHZXRTaWduaW5nS2V5UmVzcG9uc2VEdG8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiR2V0U2lnbmluZ0tleVJlc3BvbnNlRHRvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBHZXRTaWduaW5nS2V5UmVzcG9uc2VEdG86CiAgICAgICAgIiIiVGVzdCBHZXRTaWduaW5nS2V5UmVzcG9uc2VEdG8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgR2V0U2lnbmluZ0tleVJlc3BvbnNlRHRvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gR2V0U2lnbmluZ0tleVJlc3BvbnNlRHRvKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gR2V0U2lnbmluZ0tleVJlc3BvbnNlRHRvKAogICAgICAgICAgICAgICAgZGF0YSA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5zaWduaW5nX2tleV9kdG8uU2lnbmluZ0tleUR0bygKICAgICAgICAgICAgICAgICAgICAgICAga2V5X2lkID0gJzQ2YTkyNzY3LTVmOTMtNGE0Ni05ZWVkLWYwMTIxOTZiYjRmYycsIAogICAgICAgICAgICAgICAgICAgICAgICBzaWduaW5nX2RldmljZV9rZXlfaWQgPSAnTXlLZXkxJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY19rZXlfcGVtID0gJy0tLS0tQkVHSU4gUFVCTElDIEtFWSAuLi4gRU5EIFBVQkxJQyBLRVktLS0tLScsIAogICAgICAgICAgICAgICAgICAgICAgICBhbGdvcml0aG0gPSAnRUNEU0FfU0VDUDI1NksxJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9IDEwLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWdlbnRfdXNlcl9pZCA9ICdkMTg4NDdiNS0xZGY2LTRjNDYtOGY5OS01Y2NlNDcyODQ1MjknLCAKICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZF9hdCA9IDEyNDc1NzUzNywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBuZXh0ID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBHZXRTaWduaW5nS2V5UmVzcG9uc2VEdG8oCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnNpZ25pbmdfa2V5X2R0by5TaWduaW5nS2V5RHRvKAogICAgICAgICAgICAgICAgICAgICAgICBrZXlfaWQgPSAnNDZhOTI3NjctNWY5My00YTQ2LTllZWQtZjAxMjE5NmJiNGZjJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25pbmdfZGV2aWNlX2tleV9pZCA9ICdNeUtleTEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljX2tleV9wZW0gPSAnLS0tLS1CRUdJTiBQVUJMSUMgS0VZIC4uLiBFTkQgUFVCTElDIEtFWS0tLS0tJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZ29yaXRobSA9ICdFQ0RTQV9TRUNQMjU2SzEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZCA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gMTAsIAogICAgICAgICAgICAgICAgICAgICAgICBhZ2VudF91c2VyX2lkID0gJ2QxODg0N2I1LTFkZjYtNGM0Ni04Zjk5LTVjY2U0NzI4NDUyOScsIAogICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkX2F0ID0gMTI0NzU3NTM3LCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RHZXRTaWduaW5nS2V5UmVzcG9uc2VEdG8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBHZXRTaWduaW5nS2V5UmVzcG9uc2VEdG8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_get_transaction_operation.py b/test/test_get_transaction_operation.py index 1e752749..07c82f3e 100644 --- a/test/test_get_transaction_operation.py +++ b/test/test_get_transaction_operation.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_transaction_operation import GetTransactionOperation - - -class TestGetTransactionOperation(unittest.TestCase): - """GetTransactionOperation unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testGetTransactionOperation(self): - """Test GetTransactionOperation""" - # inst = GetTransactionOperation() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF90cmFuc2FjdGlvbl9vcGVyYXRpb24gaW1wb3J0IEdldFRyYW5zYWN0aW9uT3BlcmF0aW9uCgoKY2xhc3MgVGVzdEdldFRyYW5zYWN0aW9uT3BlcmF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkdldFRyYW5zYWN0aW9uT3BlcmF0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdEdldFRyYW5zYWN0aW9uT3BlcmF0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgR2V0VHJhbnNhY3Rpb25PcGVyYXRpb24iIiIKICAgICAgICAjIGluc3QgPSBHZXRUcmFuc2FjdGlvbk9wZXJhdGlvbigpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_get_validation_key_response_dto.py b/test/test_get_validation_key_response_dto.py index 676fc174..653b5b32 100644 --- a/test/test_get_validation_key_response_dto.py +++ b/test/test_get_validation_key_response_dto.py @@ -1,72 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_validation_key_response_dto import ( - GetValidationKeyResponseDto, -) - - -class TestGetValidationKeyResponseDto(unittest.TestCase): - """GetValidationKeyResponseDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetValidationKeyResponseDto: - """Test GetValidationKeyResponseDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetValidationKeyResponseDto` - """ - model = GetValidationKeyResponseDto() - if include_optional: - return GetValidationKeyResponseDto( - data = [ - fireblocks.models.validation_key_dto.ValidationKeyDto( - key_id = '46a92767-5f93-4a46-9eed-f012196bb4fc', - public_key_pem = '-----BEGIN PUBLIC KEY ... END PUBLIC KEY-----', - days_till_expired = 365, - enabled = False, - created_at = 12345633, ) - ], - next = '' - ) - else: - return GetValidationKeyResponseDto( - data = [ - fireblocks.models.validation_key_dto.ValidationKeyDto( - key_id = '46a92767-5f93-4a46-9eed-f012196bb4fc', - public_key_pem = '-----BEGIN PUBLIC KEY ... END PUBLIC KEY-----', - days_till_expired = 365, - enabled = False, - created_at = 12345633, ) - ], - ) - """ - - def testGetValidationKeyResponseDto(self): - """Test GetValidationKeyResponseDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF92YWxpZGF0aW9uX2tleV9yZXNwb25zZV9kdG8gaW1wb3J0ICgKICAgIEdldFZhbGlkYXRpb25LZXlSZXNwb25zZUR0bywKKQoKCmNsYXNzIFRlc3RHZXRWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiR2V0VmFsaWRhdGlvbktleVJlc3BvbnNlRHRvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBHZXRWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG86CiAgICAgICAgIiIiVGVzdCBHZXRWYWxpZGF0aW9uS2V5UmVzcG9uc2VEdG8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgR2V0VmFsaWRhdGlvbktleVJlc3BvbnNlRHRvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gR2V0VmFsaWRhdGlvbktleVJlc3BvbnNlRHRvKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gR2V0VmFsaWRhdGlvbktleVJlc3BvbnNlRHRvKAogICAgICAgICAgICAgICAgZGF0YSA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy52YWxpZGF0aW9uX2tleV9kdG8uVmFsaWRhdGlvbktleUR0bygKICAgICAgICAgICAgICAgICAgICAgICAga2V5X2lkID0gJzQ2YTkyNzY3LTVmOTMtNGE0Ni05ZWVkLWYwMTIxOTZiYjRmYycsIAogICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWNfa2V5X3BlbSA9ICctLS0tLUJFR0lOIFBVQkxJQyBLRVkgLi4uICBFTkQgUFVCTElDIEtFWS0tLS0tJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRheXNfdGlsbF9leHBpcmVkID0gMzY1LCAKICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZCA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZF9hdCA9IDEyMzQ1NjMzLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIG5leHQgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEdldFZhbGlkYXRpb25LZXlSZXNwb25zZUR0bygKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudmFsaWRhdGlvbl9rZXlfZHRvLlZhbGlkYXRpb25LZXlEdG8oCiAgICAgICAgICAgICAgICAgICAgICAgIGtleV9pZCA9ICc0NmE5Mjc2Ny01ZjkzLTRhNDYtOWVlZC1mMDEyMTk2YmI0ZmMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljX2tleV9wZW0gPSAnLS0tLS1CRUdJTiBQVUJMSUMgS0VZIC4uLiAgRU5EIFBVQkxJQyBLRVktLS0tLScsIAogICAgICAgICAgICAgICAgICAgICAgICBkYXlzX3RpbGxfZXhwaXJlZCA9IDM2NSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRfYXQgPSAxMjM0NTYzMywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0R2V0VmFsaWRhdGlvbktleVJlc3BvbnNlRHRvKHNlbGYpOgogICAgICAgICIiIlRlc3QgR2V0VmFsaWRhdGlvbktleVJlc3BvbnNlRHRvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_get_whitelist_ip_addresses_response.py b/test/test_get_whitelist_ip_addresses_response.py index ce40fdb7..41c9369f 100644 --- a/test/test_get_whitelist_ip_addresses_response.py +++ b/test/test_get_whitelist_ip_addresses_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_whitelist_ip_addresses_response import ( - GetWhitelistIpAddressesResponse, -) - - -class TestGetWhitelistIpAddressesResponse(unittest.TestCase): - """GetWhitelistIpAddressesResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetWhitelistIpAddressesResponse: - """Test GetWhitelistIpAddressesResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetWhitelistIpAddressesResponse` - """ - model = GetWhitelistIpAddressesResponse() - if include_optional: - return GetWhitelistIpAddressesResponse( - user_id = '', - whitelisted_ips = [ - '' - ] - ) - else: - return GetWhitelistIpAddressesResponse( - ) - """ - - def testGetWhitelistIpAddressesResponse(self): - """Test GetWhitelistIpAddressesResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF93aGl0ZWxpc3RfaXBfYWRkcmVzc2VzX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBHZXRXaGl0ZWxpc3RJcEFkZHJlc3Nlc1Jlc3BvbnNlLAopCgoKY2xhc3MgVGVzdEdldFdoaXRlbGlzdElwQWRkcmVzc2VzUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiR2V0V2hpdGVsaXN0SXBBZGRyZXNzZXNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gR2V0V2hpdGVsaXN0SXBBZGRyZXNzZXNSZXNwb25zZToKICAgICAgICAiIiJUZXN0IEdldFdoaXRlbGlzdElwQWRkcmVzc2VzUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgR2V0V2hpdGVsaXN0SXBBZGRyZXNzZXNSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEdldFdoaXRlbGlzdElwQWRkcmVzc2VzUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBHZXRXaGl0ZWxpc3RJcEFkZHJlc3Nlc1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgdXNlcl9pZCA9ICcnLAogICAgICAgICAgICAgICAgd2hpdGVsaXN0ZWRfaXBzID0gWwogICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEdldFdoaXRlbGlzdElwQWRkcmVzc2VzUmVzcG9uc2UoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0R2V0V2hpdGVsaXN0SXBBZGRyZXNzZXNSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IEdldFdoaXRlbGlzdElwQWRkcmVzc2VzUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_get_workspace_status_response.py b/test/test_get_workspace_status_response.py index 2514fa27..8c59ad76 100644 --- a/test/test_get_workspace_status_response.py +++ b/test/test_get_workspace_status_response.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.get_workspace_status_response import GetWorkspaceStatusResponse - - -class TestGetWorkspaceStatusResponse(unittest.TestCase): - """GetWorkspaceStatusResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetWorkspaceStatusResponse: - """Test GetWorkspaceStatusResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `GetWorkspaceStatusResponse` - """ - model = GetWorkspaceStatusResponse() - if include_optional: - return GetWorkspaceStatusResponse( - status = '' - ) - else: - return GetWorkspaceStatusResponse( - ) - """ - - def testGetWorkspaceStatusResponse(self): - """Test GetWorkspaceStatusResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmdldF93b3Jrc3BhY2Vfc3RhdHVzX3Jlc3BvbnNlIGltcG9ydCBHZXRXb3Jrc3BhY2VTdGF0dXNSZXNwb25zZQoKCmNsYXNzIFRlc3RHZXRXb3Jrc3BhY2VTdGF0dXNSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJHZXRXb3Jrc3BhY2VTdGF0dXNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gR2V0V29ya3NwYWNlU3RhdHVzUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBHZXRXb3Jrc3BhY2VTdGF0dXNSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBHZXRXb3Jrc3BhY2VTdGF0dXNSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEdldFdvcmtzcGFjZVN0YXR1c1Jlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gR2V0V29ya3NwYWNlU3RhdHVzUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEdldFdvcmtzcGFjZVN0YXR1c1Jlc3BvbnNlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEdldFdvcmtzcGFjZVN0YXR1c1Jlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgR2V0V29ya3NwYWNlU3RhdHVzUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_http_contract_does_not_exist_error.py b/test/test_http_contract_does_not_exist_error.py index a4e850ef..6d45139a 100644 --- a/test/test_http_contract_does_not_exist_error.py +++ b/test/test_http_contract_does_not_exist_error.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.http_contract_does_not_exist_error import ( - HttpContractDoesNotExistError, -) - - -class TestHttpContractDoesNotExistError(unittest.TestCase): - """HttpContractDoesNotExistError unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> HttpContractDoesNotExistError: - """Test HttpContractDoesNotExistError - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `HttpContractDoesNotExistError` - """ - model = HttpContractDoesNotExistError() - if include_optional: - return HttpContractDoesNotExistError( - message = 'Contract does not exist', - code = '404' - ) - else: - return HttpContractDoesNotExistError( - ) - """ - - def testHttpContractDoesNotExistError(self): - """Test HttpContractDoesNotExistError""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmh0dHBfY29udHJhY3RfZG9lc19ub3RfZXhpc3RfZXJyb3IgaW1wb3J0ICgKICAgIEh0dHBDb250cmFjdERvZXNOb3RFeGlzdEVycm9yLAopCgoKY2xhc3MgVGVzdEh0dHBDb250cmFjdERvZXNOb3RFeGlzdEVycm9yKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkh0dHBDb250cmFjdERvZXNOb3RFeGlzdEVycm9yIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBIdHRwQ29udHJhY3REb2VzTm90RXhpc3RFcnJvcjoKICAgICAgICAiIiJUZXN0IEh0dHBDb250cmFjdERvZXNOb3RFeGlzdEVycm9yCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEh0dHBDb250cmFjdERvZXNOb3RFeGlzdEVycm9yYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gSHR0cENvbnRyYWN0RG9lc05vdEV4aXN0RXJyb3IoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBIdHRwQ29udHJhY3REb2VzTm90RXhpc3RFcnJvcigKICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnQ29udHJhY3QgZG9lcyBub3QgZXhpc3QnLAogICAgICAgICAgICAgICAgY29kZSA9ICc0MDQnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gSHR0cENvbnRyYWN0RG9lc05vdEV4aXN0RXJyb3IoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0SHR0cENvbnRyYWN0RG9lc05vdEV4aXN0RXJyb3Ioc2VsZik6CiAgICAgICAgIiIiVGVzdCBIdHRwQ29udHJhY3REb2VzTm90RXhpc3RFcnJvciIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_iban_address.py b/test/test_iban_address.py index c6c60e75..6bc52bc4 100644 --- a/test/test_iban_address.py +++ b/test/test_iban_address.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.iban_address import IbanAddress - - -class TestIbanAddress(unittest.TestCase): - """IbanAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> IbanAddress: - """Test IbanAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `IbanAddress` - """ - model = IbanAddress() - if include_optional: - return IbanAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - iban = 'GB82WEST12345698765432' - ) - else: - return IbanAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - iban = 'GB82WEST12345698765432', - ) - """ - - def testIbanAddress(self): - """Test IbanAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmliYW5fYWRkcmVzcyBpbXBvcnQgSWJhbkFkZHJlc3MKCgpjbGFzcyBUZXN0SWJhbkFkZHJlc3ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiSWJhbkFkZHJlc3MgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEliYW5BZGRyZXNzOgogICAgICAgICIiIlRlc3QgSWJhbkFkZHJlc3MKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgSWJhbkFkZHJlc3NgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBJYmFuQWRkcmVzcygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEliYW5BZGRyZXNzKAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXIgPSB7Im5hbWUiOiJKb2huIFNtaXRoIiwiY2l0eSI6Ik5ldyBZb3JrIiwiY291bnRyeSI6IlVTIiwic3ViZGl2aXNpb24iOiJOWSIsImFkZHJlc3MiOiIxMjMgV2FsbCBTdHJlZXQsIEFwdCA0QiIsInBvc3RhbENvZGUiOiIxMDAwNSJ9LAogICAgICAgICAgICAgICAgaWJhbiA9ICdHQjgyV0VTVDEyMzQ1Njk4NzY1NDMyJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEliYW5BZGRyZXNzKAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXIgPSB7Im5hbWUiOiJKb2huIFNtaXRoIiwiY2l0eSI6Ik5ldyBZb3JrIiwiY291bnRyeSI6IlVTIiwic3ViZGl2aXNpb24iOiJOWSIsImFkZHJlc3MiOiIxMjMgV2FsbCBTdHJlZXQsIEFwdCA0QiIsInBvc3RhbENvZGUiOiIxMDAwNSJ9LAogICAgICAgICAgICAgICAgaWJhbiA9ICdHQjgyV0VTVDEyMzQ1Njk4NzY1NDMyJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RJYmFuQWRkcmVzcyhzZWxmKToKICAgICAgICAiIiJUZXN0IEliYW5BZGRyZXNzIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_iban_destination.py b/test/test_iban_destination.py index 91431b97..64d75259 100644 --- a/test/test_iban_destination.py +++ b/test/test_iban_destination.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.iban_destination import IbanDestination - - -class TestIbanDestination(unittest.TestCase): - """IbanDestination unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> IbanDestination: - """Test IbanDestination - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `IbanDestination` - """ - model = IbanDestination() - if include_optional: - return IbanDestination( - type = 'IBAN', - address = {"accountHolder":{"name":"Maria Gonzalez","city":"Madrid","country":"ES","subdivision":"MD","address":"Calle Gran Via 123, 2°B","postalCode":"28013"},"iban":"ES9121000418450200051332"} - ) - else: - return IbanDestination( - type = 'IBAN', - address = {"accountHolder":{"name":"Maria Gonzalez","city":"Madrid","country":"ES","subdivision":"MD","address":"Calle Gran Via 123, 2°B","postalCode":"28013"},"iban":"ES9121000418450200051332"}, - ) - """ - - def testIbanDestination(self): - """Test IbanDestination""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmliYW5fZGVzdGluYXRpb24gaW1wb3J0IEliYW5EZXN0aW5hdGlvbgoKCmNsYXNzIFRlc3RJYmFuRGVzdGluYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiSWJhbkRlc3RpbmF0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBJYmFuRGVzdGluYXRpb246CiAgICAgICAgIiIiVGVzdCBJYmFuRGVzdGluYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgSWJhbkRlc3RpbmF0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gSWJhbkRlc3RpbmF0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gSWJhbkRlc3RpbmF0aW9uKAogICAgICAgICAgICAgICAgdHlwZSA9ICdJQkFOJywKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSB7ImFjY291bnRIb2xkZXIiOnsibmFtZSI6Ik1hcmlhIEdvbnphbGV6IiwiY2l0eSI6Ik1hZHJpZCIsImNvdW50cnkiOiJFUyIsInN1YmRpdmlzaW9uIjoiTUQiLCJhZGRyZXNzIjoiQ2FsbGUgR3JhbiBWaWEgMTIzLCAywrBCIiwicG9zdGFsQ29kZSI6IjI4MDEzIn0sImliYW4iOiJFUzkxMjEwMDA0MTg0NTAyMDAwNTEzMzIifQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEliYW5EZXN0aW5hdGlvbigKICAgICAgICAgICAgICAgIHR5cGUgPSAnSUJBTicsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0geyJhY2NvdW50SG9sZGVyIjp7Im5hbWUiOiJNYXJpYSBHb256YWxleiIsImNpdHkiOiJNYWRyaWQiLCJjb3VudHJ5IjoiRVMiLCJzdWJkaXZpc2lvbiI6Ik1EIiwiYWRkcmVzcyI6IkNhbGxlIEdyYW4gVmlhIDEyMywgMsKwQiIsInBvc3RhbENvZGUiOiIyODAxMyJ9LCJpYmFuIjoiRVM5MTIxMDAwNDE4NDUwMjAwMDUxMzMyIn0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0SWJhbkRlc3RpbmF0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgSWJhbkRlc3RpbmF0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_iban_payment_info.py b/test/test_iban_payment_info.py index fb1ee061..1aede29f 100644 --- a/test/test_iban_payment_info.py +++ b/test/test_iban_payment_info.py @@ -1,72 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.iban_payment_info import IbanPaymentInfo - - -class TestIbanPaymentInfo(unittest.TestCase): - """IbanPaymentInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> IbanPaymentInfo: - """Test IbanPaymentInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `IbanPaymentInfo` - """ - model = IbanPaymentInfo() - if include_optional: - return IbanPaymentInfo( - account_holder_given_name = 'John', - account_holder_surname = 'Doe', - account_holder_city = 'London', - account_holder_country = 'GB', - account_holder_address1 = '123 Main Street', - account_holder_address2 = 'Apartment 4B', - account_holder_district = 'Westminster', - account_holder_postal_code = 'SW1A 1AA', - iban = 'GB82WEST12345698765432', - iban_city = 'London', - iban_country = 'GB' - ) - else: - return IbanPaymentInfo( - account_holder_given_name = 'John', - account_holder_city = 'London', - account_holder_country = 'GB', - account_holder_address1 = '123 Main Street', - account_holder_postal_code = 'SW1A 1AA', - iban = 'GB82WEST12345698765432', - iban_city = 'London', - iban_country = 'GB', - ) - """ - - def testIbanPaymentInfo(self): - """Test IbanPaymentInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmliYW5fcGF5bWVudF9pbmZvIGltcG9ydCBJYmFuUGF5bWVudEluZm8KCgpjbGFzcyBUZXN0SWJhblBheW1lbnRJbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkliYW5QYXltZW50SW5mbyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gSWJhblBheW1lbnRJbmZvOgogICAgICAgICIiIlRlc3QgSWJhblBheW1lbnRJbmZvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEliYW5QYXltZW50SW5mb2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEliYW5QYXltZW50SW5mbygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEliYW5QYXltZW50SW5mbygKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2dpdmVuX25hbWUgPSAnSm9obicsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9zdXJuYW1lID0gJ0RvZScsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9jaXR5ID0gJ0xvbmRvbicsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9jb3VudHJ5ID0gJ0dCJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2FkZHJlc3MxID0gJzEyMyBNYWluIFN0cmVldCcsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9hZGRyZXNzMiA9ICdBcGFydG1lbnQgNEInLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfZGlzdHJpY3QgPSAnV2VzdG1pbnN0ZXInLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfcG9zdGFsX2NvZGUgPSAnU1cxQSAxQUEnLAogICAgICAgICAgICAgICAgaWJhbiA9ICdHQjgyV0VTVDEyMzQ1Njk4NzY1NDMyJywKICAgICAgICAgICAgICAgIGliYW5fY2l0eSA9ICdMb25kb24nLAogICAgICAgICAgICAgICAgaWJhbl9jb3VudHJ5ID0gJ0dCJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEliYW5QYXltZW50SW5mbygKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2dpdmVuX25hbWUgPSAnSm9obicsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9jaXR5ID0gJ0xvbmRvbicsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9jb3VudHJ5ID0gJ0dCJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2FkZHJlc3MxID0gJzEyMyBNYWluIFN0cmVldCcsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9wb3N0YWxfY29kZSA9ICdTVzFBIDFBQScsCiAgICAgICAgICAgICAgICBpYmFuID0gJ0dCODJXRVNUMTIzNDU2OTg3NjU0MzInLAogICAgICAgICAgICAgICAgaWJhbl9jaXR5ID0gJ0xvbmRvbicsCiAgICAgICAgICAgICAgICBpYmFuX2NvdW50cnkgPSAnR0InLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEliYW5QYXltZW50SW5mbyhzZWxmKToKICAgICAgICAiIiJUZXN0IEliYW5QYXltZW50SW5mbyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_identification.py b/test/test_identification.py index 2765bd91..81fba141 100644 --- a/test/test_identification.py +++ b/test/test_identification.py @@ -1,79 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.identification import Identification - - -class TestIdentification(unittest.TestCase): - """Identification unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Identification: - """Test Identification - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Identification` - """ - model = Identification() - if include_optional: - return Identification( - external_reference_id = '', - entity_type = 'BUSINESS', - participant_relationship_type = 'FirstParty', - full_name = fireblocks.models.personal_identification_full_name.PersonalIdentification_fullName( - first_name = '', - last_name = '', ), - date_of_birth = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(), - postal_address = {"streetName":"Fifth Avenue","buildingNumber":"350","postalCode":"10118","city":"New York","subdivision":"NY","district":"Manhattan","country":"US"}, - email = '', - phone = '+14155551234', - id_number = '', - id_type = 'NIN_SLIP_CARD', - additional_id_number = '', - additional_id_type = 'NIN_SLIP_CARD', - business_name = '', - registration_number = '' - ) - else: - return Identification( - external_reference_id = '', - entity_type = 'BUSINESS', - participant_relationship_type = 'FirstParty', - full_name = fireblocks.models.personal_identification_full_name.PersonalIdentification_fullName( - first_name = '', - last_name = '', ), - date_of_birth = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(), - postal_address = {"streetName":"Fifth Avenue","buildingNumber":"350","postalCode":"10118","city":"New York","subdivision":"NY","district":"Manhattan","country":"US"}, - business_name = '', - registration_number = '', - ) - """ - - def testIdentification(self): - """Test Identification""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmlkZW50aWZpY2F0aW9uIGltcG9ydCBJZGVudGlmaWNhdGlvbgoKCmNsYXNzIFRlc3RJZGVudGlmaWNhdGlvbih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJJZGVudGlmaWNhdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gSWRlbnRpZmljYXRpb246CiAgICAgICAgIiIiVGVzdCBJZGVudGlmaWNhdGlvbgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBJZGVudGlmaWNhdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IElkZW50aWZpY2F0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gSWRlbnRpZmljYXRpb24oCiAgICAgICAgICAgICAgICBleHRlcm5hbF9yZWZlcmVuY2VfaWQgPSAnJywKICAgICAgICAgICAgICAgIGVudGl0eV90eXBlID0gJ0JVU0lORVNTJywKICAgICAgICAgICAgICAgIHBhcnRpY2lwYW50X3JlbGF0aW9uc2hpcF90eXBlID0gJ0ZpcnN0UGFydHknLAogICAgICAgICAgICAgICAgZnVsbF9uYW1lID0gZmlyZWJsb2Nrcy5tb2RlbHMucGVyc29uYWxfaWRlbnRpZmljYXRpb25fZnVsbF9uYW1lLlBlcnNvbmFsSWRlbnRpZmljYXRpb25fZnVsbE5hbWUoCiAgICAgICAgICAgICAgICAgICAgZmlyc3RfbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBsYXN0X25hbWUgPSAnJywgKSwKICAgICAgICAgICAgICAgIGRhdGVfb2ZfYmlydGggPSBkYXRldGltZS5kYXRldGltZS5zdHJwdGltZSgnMTk3NS0xMi0zMCcsICclWS0lbS0lZCcpLmRhdGUoKSwKICAgICAgICAgICAgICAgIHBvc3RhbF9hZGRyZXNzID0geyJzdHJlZXROYW1lIjoiRmlmdGggQXZlbnVlIiwiYnVpbGRpbmdOdW1iZXIiOiIzNTAiLCJwb3N0YWxDb2RlIjoiMTAxMTgiLCJjaXR5IjoiTmV3IFlvcmsiLCJzdWJkaXZpc2lvbiI6Ik5ZIiwiZGlzdHJpY3QiOiJNYW5oYXR0YW4iLCJjb3VudHJ5IjoiVVMifSwKICAgICAgICAgICAgICAgIGVtYWlsID0gJycsCiAgICAgICAgICAgICAgICBwaG9uZSA9ICcrMTQxNTU1NTEyMzQnLAogICAgICAgICAgICAgICAgaWRfbnVtYmVyID0gJycsCiAgICAgICAgICAgICAgICBpZF90eXBlID0gJ05JTl9TTElQX0NBUkQnLAogICAgICAgICAgICAgICAgYWRkaXRpb25hbF9pZF9udW1iZXIgPSAnJywKICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfaWRfdHlwZSA9ICdOSU5fU0xJUF9DQVJEJywKICAgICAgICAgICAgICAgIGJ1c2luZXNzX25hbWUgPSAnJywKICAgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbl9udW1iZXIgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIElkZW50aWZpY2F0aW9uKAogICAgICAgICAgICAgICAgZXh0ZXJuYWxfcmVmZXJlbmNlX2lkID0gJycsCiAgICAgICAgICAgICAgICBlbnRpdHlfdHlwZSA9ICdCVVNJTkVTUycsCiAgICAgICAgICAgICAgICBwYXJ0aWNpcGFudF9yZWxhdGlvbnNoaXBfdHlwZSA9ICdGaXJzdFBhcnR5JywKICAgICAgICAgICAgICAgIGZ1bGxfbmFtZSA9IGZpcmVibG9ja3MubW9kZWxzLnBlcnNvbmFsX2lkZW50aWZpY2F0aW9uX2Z1bGxfbmFtZS5QZXJzb25hbElkZW50aWZpY2F0aW9uX2Z1bGxOYW1lKAogICAgICAgICAgICAgICAgICAgIGZpcnN0X25hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgbGFzdF9uYW1lID0gJycsICksCiAgICAgICAgICAgICAgICBkYXRlX29mX2JpcnRoID0gZGF0ZXRpbWUuZGF0ZXRpbWUuc3RycHRpbWUoJzE5NzUtMTItMzAnLCAnJVktJW0tJWQnKS5kYXRlKCksCiAgICAgICAgICAgICAgICBwb3N0YWxfYWRkcmVzcyA9IHsic3RyZWV0TmFtZSI6IkZpZnRoIEF2ZW51ZSIsImJ1aWxkaW5nTnVtYmVyIjoiMzUwIiwicG9zdGFsQ29kZSI6IjEwMTE4IiwiY2l0eSI6Ik5ldyBZb3JrIiwic3ViZGl2aXNpb24iOiJOWSIsImRpc3RyaWN0IjoiTWFuaGF0dGFuIiwiY291bnRyeSI6IlVTIn0sCiAgICAgICAgICAgICAgICBidXNpbmVzc19uYW1lID0gJycsCiAgICAgICAgICAgICAgICByZWdpc3RyYXRpb25fbnVtYmVyID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0SWRlbnRpZmljYXRpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBJZGVudGlmaWNhdGlvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_idl_type.py b/test/test_idl_type.py index d22745de..ce5402c9 100644 --- a/test/test_idl_type.py +++ b/test/test_idl_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.idl_type import IdlType - - -class TestIdlType(unittest.TestCase): - """IdlType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testIdlType(self): - """Test IdlType""" - # inst = IdlType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmlkbF90eXBlIGltcG9ydCBJZGxUeXBlCgoKY2xhc3MgVGVzdElkbFR5cGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiSWRsVHlwZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RJZGxUeXBlKHNlbGYpOgogICAgICAgICIiIlRlc3QgSWRsVHlwZSIiIgogICAgICAgICMgaW5zdCA9IElkbFR5cGUoKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_indicative_quote_enum.py b/test/test_indicative_quote_enum.py index 73bd207d..7eb9935a 100644 --- a/test/test_indicative_quote_enum.py +++ b/test/test_indicative_quote_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.indicative_quote_enum import IndicativeQuoteEnum - - -class TestIndicativeQuoteEnum(unittest.TestCase): - """IndicativeQuoteEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testIndicativeQuoteEnum(self): - """Test IndicativeQuoteEnum""" - # inst = IndicativeQuoteEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmluZGljYXRpdmVfcXVvdGVfZW51bSBpbXBvcnQgSW5kaWNhdGl2ZVF1b3RlRW51bQoKCmNsYXNzIFRlc3RJbmRpY2F0aXZlUXVvdGVFbnVtKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkluZGljYXRpdmVRdW90ZUVudW0gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0SW5kaWNhdGl2ZVF1b3RlRW51bShzZWxmKToKICAgICAgICAiIiJUZXN0IEluZGljYXRpdmVRdW90ZUVudW0iIiIKICAgICAgICAjIGluc3QgPSBJbmRpY2F0aXZlUXVvdGVFbnVtKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_indicative_quote_type.py b/test/test_indicative_quote_type.py index a8c96f13..e42f920c 100644 --- a/test/test_indicative_quote_type.py +++ b/test/test_indicative_quote_type.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.indicative_quote_type import IndicativeQuoteType - - -class TestIndicativeQuoteType(unittest.TestCase): - """IndicativeQuoteType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> IndicativeQuoteType: - """Test IndicativeQuoteType - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `IndicativeQuoteType` - """ - model = IndicativeQuoteType() - if include_optional: - return IndicativeQuoteType( - type = 'INDICATIVE' - ) - else: - return IndicativeQuoteType( - type = 'INDICATIVE', - ) - """ - - def testIndicativeQuoteType(self): - """Test IndicativeQuoteType""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmluZGljYXRpdmVfcXVvdGVfdHlwZSBpbXBvcnQgSW5kaWNhdGl2ZVF1b3RlVHlwZQoKCmNsYXNzIFRlc3RJbmRpY2F0aXZlUXVvdGVUeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkluZGljYXRpdmVRdW90ZVR5cGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEluZGljYXRpdmVRdW90ZVR5cGU6CiAgICAgICAgIiIiVGVzdCBJbmRpY2F0aXZlUXVvdGVUeXBlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEluZGljYXRpdmVRdW90ZVR5cGVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBJbmRpY2F0aXZlUXVvdGVUeXBlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gSW5kaWNhdGl2ZVF1b3RlVHlwZSgKICAgICAgICAgICAgICAgIHR5cGUgPSAnSU5ESUNBVElWRScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBJbmRpY2F0aXZlUXVvdGVUeXBlKAogICAgICAgICAgICAgICAgdHlwZSA9ICdJTkRJQ0FUSVZFJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RJbmRpY2F0aXZlUXVvdGVUeXBlKHNlbGYpOgogICAgICAgICIiIlRlc3QgSW5kaWNhdGl2ZVF1b3RlVHlwZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_initiator_config.py b/test/test_initiator_config.py index abe96840..f9b40767 100644 --- a/test/test_initiator_config.py +++ b/test/test_initiator_config.py @@ -1,65 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.initiator_config import InitiatorConfig - - -class TestInitiatorConfig(unittest.TestCase): - """InitiatorConfig unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> InitiatorConfig: - """Test InitiatorConfig - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `InitiatorConfig` - """ - model = InitiatorConfig() - if include_optional: - return InitiatorConfig( - users = ["user1","user2"], - groups = ["group1","group2"], - services = [ - '' - ], - fb_admin_groups = [ - '' - ], - exchange = [ - '' - ], - operator = 'INCLUDES' - ) - else: - return InitiatorConfig( - ) - """ - - def testInitiatorConfig(self): - """Test InitiatorConfig""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmluaXRpYXRvcl9jb25maWcgaW1wb3J0IEluaXRpYXRvckNvbmZpZwoKCmNsYXNzIFRlc3RJbml0aWF0b3JDb25maWcodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiSW5pdGlhdG9yQ29uZmlnIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBJbml0aWF0b3JDb25maWc6CiAgICAgICAgIiIiVGVzdCBJbml0aWF0b3JDb25maWcKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgSW5pdGlhdG9yQ29uZmlnYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gSW5pdGlhdG9yQ29uZmlnKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gSW5pdGlhdG9yQ29uZmlnKAogICAgICAgICAgICAgICAgdXNlcnMgPSBbInVzZXIxIiwidXNlcjIiXSwKICAgICAgICAgICAgICAgIGdyb3VwcyA9IFsiZ3JvdXAxIiwiZ3JvdXAyIl0sCiAgICAgICAgICAgICAgICBzZXJ2aWNlcyA9IFsKICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBmYl9hZG1pbl9ncm91cHMgPSBbCiAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgZXhjaGFuZ2UgPSBbCiAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAnSU5DTFVERVMnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gSW5pdGlhdG9yQ29uZmlnKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEluaXRpYXRvckNvbmZpZyhzZWxmKToKICAgICAgICAiIiJUZXN0IEluaXRpYXRvckNvbmZpZyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_initiator_config_pattern.py b/test/test_initiator_config_pattern.py index 3d3c55fb..5fb75735 100644 --- a/test/test_initiator_config_pattern.py +++ b/test/test_initiator_config_pattern.py @@ -1,65 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.initiator_config_pattern import InitiatorConfigPattern - - -class TestInitiatorConfigPattern(unittest.TestCase): - """InitiatorConfigPattern unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> InitiatorConfigPattern: - """Test InitiatorConfigPattern - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `InitiatorConfigPattern` - """ - model = InitiatorConfigPattern() - if include_optional: - return InitiatorConfigPattern( - users = [user1, user2], - groups = [group1, group2], - services = [ - '' - ], - fb_admin_groups = [ - '' - ], - exchange = [ - '' - ], - operator = 'INCLUDES' - ) - else: - return InitiatorConfigPattern( - ) - """ - - def testInitiatorConfigPattern(self): - """Test InitiatorConfigPattern""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmluaXRpYXRvcl9jb25maWdfcGF0dGVybiBpbXBvcnQgSW5pdGlhdG9yQ29uZmlnUGF0dGVybgoKCmNsYXNzIFRlc3RJbml0aWF0b3JDb25maWdQYXR0ZXJuKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkluaXRpYXRvckNvbmZpZ1BhdHRlcm4gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEluaXRpYXRvckNvbmZpZ1BhdHRlcm46CiAgICAgICAgIiIiVGVzdCBJbml0aWF0b3JDb25maWdQYXR0ZXJuCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEluaXRpYXRvckNvbmZpZ1BhdHRlcm5gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBJbml0aWF0b3JDb25maWdQYXR0ZXJuKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gSW5pdGlhdG9yQ29uZmlnUGF0dGVybigKICAgICAgICAgICAgICAgIHVzZXJzID0gW3VzZXIxLCB1c2VyMl0sCiAgICAgICAgICAgICAgICBncm91cHMgPSBbZ3JvdXAxLCBncm91cDJdLAogICAgICAgICAgICAgICAgc2VydmljZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgZmJfYWRtaW5fZ3JvdXBzID0gWwogICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGV4Y2hhbmdlID0gWwogICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gJ0lOQ0xVREVTJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEluaXRpYXRvckNvbmZpZ1BhdHRlcm4oCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0SW5pdGlhdG9yQ29uZmlnUGF0dGVybihzZWxmKToKICAgICAgICAiIiJUZXN0IEluaXRpYXRvckNvbmZpZ1BhdHRlcm4iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_instruction_amount.py b/test/test_instruction_amount.py index 8f638246..e49717f6 100644 --- a/test/test_instruction_amount.py +++ b/test/test_instruction_amount.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.instruction_amount import InstructionAmount - - -class TestInstructionAmount(unittest.TestCase): - """InstructionAmount unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> InstructionAmount: - """Test InstructionAmount - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `InstructionAmount` - """ - model = InstructionAmount() - if include_optional: - return InstructionAmount( - amount = '', - asset_id = '' - ) - else: - return InstructionAmount( - amount = '', - asset_id = '', - ) - """ - - def testInstructionAmount(self): - """Test InstructionAmount""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmluc3RydWN0aW9uX2Ftb3VudCBpbXBvcnQgSW5zdHJ1Y3Rpb25BbW91bnQKCgpjbGFzcyBUZXN0SW5zdHJ1Y3Rpb25BbW91bnQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiSW5zdHJ1Y3Rpb25BbW91bnQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEluc3RydWN0aW9uQW1vdW50OgogICAgICAgICIiIlRlc3QgSW5zdHJ1Y3Rpb25BbW91bnQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgSW5zdHJ1Y3Rpb25BbW91bnRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBJbnN0cnVjdGlvbkFtb3VudCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEluc3RydWN0aW9uQW1vdW50KAogICAgICAgICAgICAgICAgYW1vdW50ID0gJycsCiAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gSW5zdHJ1Y3Rpb25BbW91bnQoCiAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywKICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0SW5zdHJ1Y3Rpb25BbW91bnQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBJbnN0cnVjdGlvbkFtb3VudCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_interac_address.py b/test/test_interac_address.py index 5868a8fb..f1a8073d 100644 --- a/test/test_interac_address.py +++ b/test/test_interac_address.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.interac_address import InteracAddress - - -class TestInteracAddress(unittest.TestCase): - """InteracAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> InteracAddress: - """Test InteracAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `InteracAddress` - """ - model = InteracAddress() - if include_optional: - return InteracAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - recipient_handle = fireblocks.models.recipient_handle.RecipientHandle( - type = 'EMAIL', - value = 'john.smith@email.com', ), - message = 'Please deposit the funds into the account' - ) - else: - return InteracAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - recipient_handle = fireblocks.models.recipient_handle.RecipientHandle( - type = 'EMAIL', - value = 'john.smith@email.com', ), - ) - """ - - def testInteracAddress(self): - """Test InteracAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmludGVyYWNfYWRkcmVzcyBpbXBvcnQgSW50ZXJhY0FkZHJlc3MKCgpjbGFzcyBUZXN0SW50ZXJhY0FkZHJlc3ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiSW50ZXJhY0FkZHJlc3MgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEludGVyYWNBZGRyZXNzOgogICAgICAgICIiIlRlc3QgSW50ZXJhY0FkZHJlc3MKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgSW50ZXJhY0FkZHJlc3NgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBJbnRlcmFjQWRkcmVzcygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEludGVyYWNBZGRyZXNzKAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXIgPSB7Im5hbWUiOiJKb2huIFNtaXRoIiwiY2l0eSI6Ik5ldyBZb3JrIiwiY291bnRyeSI6IlVTIiwic3ViZGl2aXNpb24iOiJOWSIsImFkZHJlc3MiOiIxMjMgV2FsbCBTdHJlZXQsIEFwdCA0QiIsInBvc3RhbENvZGUiOiIxMDAwNSJ9LAogICAgICAgICAgICAgICAgcmVjaXBpZW50X2hhbmRsZSA9IGZpcmVibG9ja3MubW9kZWxzLnJlY2lwaWVudF9oYW5kbGUuUmVjaXBpZW50SGFuZGxlKAogICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnRU1BSUwnLCAKICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9ICdqb2huLnNtaXRoQGVtYWlsLmNvbScsICksCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ1BsZWFzZSBkZXBvc2l0IHRoZSBmdW5kcyBpbnRvIHRoZSBhY2NvdW50JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEludGVyYWNBZGRyZXNzKAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXIgPSB7Im5hbWUiOiJKb2huIFNtaXRoIiwiY2l0eSI6Ik5ldyBZb3JrIiwiY291bnRyeSI6IlVTIiwic3ViZGl2aXNpb24iOiJOWSIsImFkZHJlc3MiOiIxMjMgV2FsbCBTdHJlZXQsIEFwdCA0QiIsInBvc3RhbENvZGUiOiIxMDAwNSJ9LAogICAgICAgICAgICAgICAgcmVjaXBpZW50X2hhbmRsZSA9IGZpcmVibG9ja3MubW9kZWxzLnJlY2lwaWVudF9oYW5kbGUuUmVjaXBpZW50SGFuZGxlKAogICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnRU1BSUwnLCAKICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9ICdqb2huLnNtaXRoQGVtYWlsLmNvbScsICksCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0SW50ZXJhY0FkZHJlc3Moc2VsZik6CiAgICAgICAgIiIiVGVzdCBJbnRlcmFjQWRkcmVzcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_interac_destination.py b/test/test_interac_destination.py index efde37e3..84e6f4be 100644 --- a/test/test_interac_destination.py +++ b/test/test_interac_destination.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.interac_destination import InteracDestination - - -class TestInteracDestination(unittest.TestCase): - """InteracDestination unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> InteracDestination: - """Test InteracDestination - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `InteracDestination` - """ - model = InteracDestination() - if include_optional: - return InteracDestination( - type = 'INTERAC', - address = {"accountHolder":{"name":"John Smith","city":"Toronto","country":"CA","subdivision":"ON","address":"123 Yonge Street","postalCode":"M5B 1M4"},"recipientHandle":{"type":"EMAIL","value":"john.smith@email.com"},"message":"Please deposit the funds into the account","securityQuestion":"What is your mother's maiden name?","securityAnswer":"Jane Smith"} - ) - else: - return InteracDestination( - type = 'INTERAC', - address = {"accountHolder":{"name":"John Smith","city":"Toronto","country":"CA","subdivision":"ON","address":"123 Yonge Street","postalCode":"M5B 1M4"},"recipientHandle":{"type":"EMAIL","value":"john.smith@email.com"},"message":"Please deposit the funds into the account","securityQuestion":"What is your mother's maiden name?","securityAnswer":"Jane Smith"}, - ) - """ - - def testInteracDestination(self): - """Test InteracDestination""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmludGVyYWNfZGVzdGluYXRpb24gaW1wb3J0IEludGVyYWNEZXN0aW5hdGlvbgoKCmNsYXNzIFRlc3RJbnRlcmFjRGVzdGluYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiSW50ZXJhY0Rlc3RpbmF0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBJbnRlcmFjRGVzdGluYXRpb246CiAgICAgICAgIiIiVGVzdCBJbnRlcmFjRGVzdGluYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgSW50ZXJhY0Rlc3RpbmF0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gSW50ZXJhY0Rlc3RpbmF0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gSW50ZXJhY0Rlc3RpbmF0aW9uKAogICAgICAgICAgICAgICAgdHlwZSA9ICdJTlRFUkFDJywKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSB7ImFjY291bnRIb2xkZXIiOnsibmFtZSI6IkpvaG4gU21pdGgiLCJjaXR5IjoiVG9yb250byIsImNvdW50cnkiOiJDQSIsInN1YmRpdmlzaW9uIjoiT04iLCJhZGRyZXNzIjoiMTIzIFlvbmdlIFN0cmVldCIsInBvc3RhbENvZGUiOiJNNUIgMU00In0sInJlY2lwaWVudEhhbmRsZSI6eyJ0eXBlIjoiRU1BSUwiLCJ2YWx1ZSI6ImpvaG4uc21pdGhAZW1haWwuY29tIn0sIm1lc3NhZ2UiOiJQbGVhc2UgZGVwb3NpdCB0aGUgZnVuZHMgaW50byB0aGUgYWNjb3VudCIsInNlY3VyaXR5UXVlc3Rpb24iOiJXaGF0IGlzIHlvdXIgbW90aGVyJ3MgbWFpZGVuIG5hbWU/Iiwic2VjdXJpdHlBbnN3ZXIiOiJKYW5lIFNtaXRoIn0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBJbnRlcmFjRGVzdGluYXRpb24oCiAgICAgICAgICAgICAgICB0eXBlID0gJ0lOVEVSQUMnLAogICAgICAgICAgICAgICAgYWRkcmVzcyA9IHsiYWNjb3VudEhvbGRlciI6eyJuYW1lIjoiSm9obiBTbWl0aCIsImNpdHkiOiJUb3JvbnRvIiwiY291bnRyeSI6IkNBIiwic3ViZGl2aXNpb24iOiJPTiIsImFkZHJlc3MiOiIxMjMgWW9uZ2UgU3RyZWV0IiwicG9zdGFsQ29kZSI6Ik01QiAxTTQifSwicmVjaXBpZW50SGFuZGxlIjp7InR5cGUiOiJFTUFJTCIsInZhbHVlIjoiam9obi5zbWl0aEBlbWFpbC5jb20ifSwibWVzc2FnZSI6IlBsZWFzZSBkZXBvc2l0IHRoZSBmdW5kcyBpbnRvIHRoZSBhY2NvdW50Iiwic2VjdXJpdHlRdWVzdGlvbiI6IldoYXQgaXMgeW91ciBtb3RoZXIncyBtYWlkZW4gbmFtZT8iLCJzZWN1cml0eUFuc3dlciI6IkphbmUgU21pdGgifSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RJbnRlcmFjRGVzdGluYXRpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBJbnRlcmFjRGVzdGluYXRpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_interac_payment_info.py b/test/test_interac_payment_info.py index bde78f64..f354480f 100644 --- a/test/test_interac_payment_info.py +++ b/test/test_interac_payment_info.py @@ -1,69 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.interac_payment_info import InteracPaymentInfo - - -class TestInteracPaymentInfo(unittest.TestCase): - """InteracPaymentInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> InteracPaymentInfo: - """Test InteracPaymentInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `InteracPaymentInfo` - """ - model = InteracPaymentInfo() - if include_optional: - return InteracPaymentInfo( - rail = 'INTERAC', - addressing_system = 'INTERAC', - account_holder_given_name = 'John', - account_holder_surname = 'Smith', - country = 'CA', - recipient_handle_type = 'EMAIL', - recipient_handle_value = 'john.smith@email.com', - message = 'Please deposit the funds into the account' - ) - else: - return InteracPaymentInfo( - rail = 'INTERAC', - addressing_system = 'INTERAC', - account_holder_given_name = 'John', - account_holder_surname = 'Smith', - country = 'CA', - recipient_handle_type = 'EMAIL', - recipient_handle_value = 'john.smith@email.com', - message = 'Please deposit the funds into the account', - ) - """ - - def testInteracPaymentInfo(self): - """Test InteracPaymentInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmludGVyYWNfcGF5bWVudF9pbmZvIGltcG9ydCBJbnRlcmFjUGF5bWVudEluZm8KCgpjbGFzcyBUZXN0SW50ZXJhY1BheW1lbnRJbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkludGVyYWNQYXltZW50SW5mbyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gSW50ZXJhY1BheW1lbnRJbmZvOgogICAgICAgICIiIlRlc3QgSW50ZXJhY1BheW1lbnRJbmZvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEludGVyYWNQYXltZW50SW5mb2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEludGVyYWNQYXltZW50SW5mbygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEludGVyYWNQYXltZW50SW5mbygKICAgICAgICAgICAgICAgIHJhaWwgPSAnSU5URVJBQycsCiAgICAgICAgICAgICAgICBhZGRyZXNzaW5nX3N5c3RlbSA9ICdJTlRFUkFDJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2dpdmVuX25hbWUgPSAnSm9obicsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9zdXJuYW1lID0gJ1NtaXRoJywKICAgICAgICAgICAgICAgIGNvdW50cnkgPSAnQ0EnLAogICAgICAgICAgICAgICAgcmVjaXBpZW50X2hhbmRsZV90eXBlID0gJ0VNQUlMJywKICAgICAgICAgICAgICAgIHJlY2lwaWVudF9oYW5kbGVfdmFsdWUgPSAnam9obi5zbWl0aEBlbWFpbC5jb20nLAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdQbGVhc2UgZGVwb3NpdCB0aGUgZnVuZHMgaW50byB0aGUgYWNjb3VudCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBJbnRlcmFjUGF5bWVudEluZm8oCiAgICAgICAgICAgICAgICByYWlsID0gJ0lOVEVSQUMnLAogICAgICAgICAgICAgICAgYWRkcmVzc2luZ19zeXN0ZW0gPSAnSU5URVJBQycsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9naXZlbl9uYW1lID0gJ0pvaG4nLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfc3VybmFtZSA9ICdTbWl0aCcsCiAgICAgICAgICAgICAgICBjb3VudHJ5ID0gJ0NBJywKICAgICAgICAgICAgICAgIHJlY2lwaWVudF9oYW5kbGVfdHlwZSA9ICdFTUFJTCcsCiAgICAgICAgICAgICAgICByZWNpcGllbnRfaGFuZGxlX3ZhbHVlID0gJ2pvaG4uc21pdGhAZW1haWwuY29tJywKICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnUGxlYXNlIGRlcG9zaXQgdGhlIGZ1bmRzIGludG8gdGhlIGFjY291bnQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEludGVyYWNQYXltZW50SW5mbyhzZWxmKToKICAgICAgICAiIiJUZXN0IEludGVyYWNQYXltZW50SW5mbyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_internal_reference.py b/test/test_internal_reference.py index 41f5445f..bf71e4d5 100644 --- a/test/test_internal_reference.py +++ b/test/test_internal_reference.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.internal_reference import InternalReference - - -class TestInternalReference(unittest.TestCase): - """InternalReference unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> InternalReference: - """Test InternalReference - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `InternalReference` - """ - model = InternalReference() - if include_optional: - return InternalReference( - type = 'VAULT_ACCOUNT', - account_id = '' - ) - else: - return InternalReference( - type = 'VAULT_ACCOUNT', - account_id = '', - ) - """ - - def testInternalReference(self): - """Test InternalReference""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmludGVybmFsX3JlZmVyZW5jZSBpbXBvcnQgSW50ZXJuYWxSZWZlcmVuY2UKCgpjbGFzcyBUZXN0SW50ZXJuYWxSZWZlcmVuY2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiSW50ZXJuYWxSZWZlcmVuY2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IEludGVybmFsUmVmZXJlbmNlOgogICAgICAgICIiIlRlc3QgSW50ZXJuYWxSZWZlcmVuY2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgSW50ZXJuYWxSZWZlcmVuY2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBJbnRlcm5hbFJlZmVyZW5jZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEludGVybmFsUmVmZXJlbmNlKAogICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEludGVybmFsUmVmZXJlbmNlKAogICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RJbnRlcm5hbFJlZmVyZW5jZShzZWxmKToKICAgICAgICAiIiJUZXN0IEludGVybmFsUmVmZXJlbmNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_internal_transfer_address.py b/test/test_internal_transfer_address.py index 1f6789a1..e87ae4b2 100644 --- a/test/test_internal_transfer_address.py +++ b/test/test_internal_transfer_address.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.internal_transfer_address import InternalTransferAddress - - -class TestInternalTransferAddress(unittest.TestCase): - """InternalTransferAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> InternalTransferAddress: - """Test InternalTransferAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `InternalTransferAddress` - """ - model = InternalTransferAddress() - if include_optional: - return InternalTransferAddress( - external_account_id = '', - account_id = '' - ) - else: - return InternalTransferAddress( - account_id = '', - ) - """ - - def testInternalTransferAddress(self): - """Test InternalTransferAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmludGVybmFsX3RyYW5zZmVyX2FkZHJlc3MgaW1wb3J0IEludGVybmFsVHJhbnNmZXJBZGRyZXNzCgoKY2xhc3MgVGVzdEludGVybmFsVHJhbnNmZXJBZGRyZXNzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkludGVybmFsVHJhbnNmZXJBZGRyZXNzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBJbnRlcm5hbFRyYW5zZmVyQWRkcmVzczoKICAgICAgICAiIiJUZXN0IEludGVybmFsVHJhbnNmZXJBZGRyZXNzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEludGVybmFsVHJhbnNmZXJBZGRyZXNzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gSW50ZXJuYWxUcmFuc2ZlckFkZHJlc3MoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBJbnRlcm5hbFRyYW5zZmVyQWRkcmVzcygKICAgICAgICAgICAgICAgIGV4dGVybmFsX2FjY291bnRfaWQgPSAnJywKICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEludGVybmFsVHJhbnNmZXJBZGRyZXNzKAogICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEludGVybmFsVHJhbnNmZXJBZGRyZXNzKHNlbGYpOgogICAgICAgICIiIlRlc3QgSW50ZXJuYWxUcmFuc2ZlckFkZHJlc3MiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_internal_transfer_destination.py b/test/test_internal_transfer_destination.py index 3749b1b9..2379d6ef 100644 --- a/test/test_internal_transfer_destination.py +++ b/test/test_internal_transfer_destination.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.internal_transfer_destination import InternalTransferDestination - - -class TestInternalTransferDestination(unittest.TestCase): - """InternalTransferDestination unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> InternalTransferDestination: - """Test InternalTransferDestination - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `InternalTransferDestination` - """ - model = InternalTransferDestination() - if include_optional: - return InternalTransferDestination( - type = 'INTERNAL_TRANSFER', - address = {"externalSubAccountId":"sub_acc_1234567890","accountId":"acc_1234567890"} - ) - else: - return InternalTransferDestination( - type = 'INTERNAL_TRANSFER', - ) - """ - - def testInternalTransferDestination(self): - """Test InternalTransferDestination""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmludGVybmFsX3RyYW5zZmVyX2Rlc3RpbmF0aW9uIGltcG9ydCBJbnRlcm5hbFRyYW5zZmVyRGVzdGluYXRpb24KCgpjbGFzcyBUZXN0SW50ZXJuYWxUcmFuc2ZlckRlc3RpbmF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkludGVybmFsVHJhbnNmZXJEZXN0aW5hdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gSW50ZXJuYWxUcmFuc2ZlckRlc3RpbmF0aW9uOgogICAgICAgICIiIlRlc3QgSW50ZXJuYWxUcmFuc2ZlckRlc3RpbmF0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEludGVybmFsVHJhbnNmZXJEZXN0aW5hdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEludGVybmFsVHJhbnNmZXJEZXN0aW5hdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEludGVybmFsVHJhbnNmZXJEZXN0aW5hdGlvbigKICAgICAgICAgICAgICAgIHR5cGUgPSAnSU5URVJOQUxfVFJBTlNGRVInLAogICAgICAgICAgICAgICAgYWRkcmVzcyA9IHsiZXh0ZXJuYWxTdWJBY2NvdW50SWQiOiJzdWJfYWNjXzEyMzQ1Njc4OTAiLCJhY2NvdW50SWQiOiJhY2NfMTIzNDU2Nzg5MCJ9CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gSW50ZXJuYWxUcmFuc2ZlckRlc3RpbmF0aW9uKAogICAgICAgICAgICAgICAgdHlwZSA9ICdJTlRFUk5BTF9UUkFOU0ZFUicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0SW50ZXJuYWxUcmFuc2ZlckRlc3RpbmF0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgSW50ZXJuYWxUcmFuc2ZlckRlc3RpbmF0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_internal_transfer_response.py b/test/test_internal_transfer_response.py index 379b1be0..98b6e14c 100644 --- a/test/test_internal_transfer_response.py +++ b/test/test_internal_transfer_response.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.internal_transfer_response import InternalTransferResponse - - -class TestInternalTransferResponse(unittest.TestCase): - """InternalTransferResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> InternalTransferResponse: - """Test InternalTransferResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `InternalTransferResponse` - """ - model = InternalTransferResponse() - if include_optional: - return InternalTransferResponse( - success = True, - id = '' - ) - else: - return InternalTransferResponse( - success = True, - ) - """ - - def testInternalTransferResponse(self): - """Test InternalTransferResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmludGVybmFsX3RyYW5zZmVyX3Jlc3BvbnNlIGltcG9ydCBJbnRlcm5hbFRyYW5zZmVyUmVzcG9uc2UKCgpjbGFzcyBUZXN0SW50ZXJuYWxUcmFuc2ZlclJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkludGVybmFsVHJhbnNmZXJSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gSW50ZXJuYWxUcmFuc2ZlclJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgSW50ZXJuYWxUcmFuc2ZlclJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYEludGVybmFsVHJhbnNmZXJSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEludGVybmFsVHJhbnNmZXJSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIEludGVybmFsVHJhbnNmZXJSZXNwb25zZSgKICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBUcnVlLAogICAgICAgICAgICAgICAgaWQgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEludGVybmFsVHJhbnNmZXJSZXNwb25zZSgKICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBUcnVlLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEludGVybmFsVHJhbnNmZXJSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IEludGVybmFsVHJhbnNmZXJSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_internal_wallets_api.py b/test/test_internal_wallets_api.py index fbe0cba8..6f7c25c5 100644 --- a/test/test_internal_wallets_api.py +++ b/test/test_internal_wallets_api.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.internal_wallets_api import InternalWalletsApi - - -class TestInternalWalletsApi(unittest.TestCase): - """InternalWalletsApi unit test stubs""" - - def setUp(self) -> None: - self.api = InternalWalletsApi() - - def tearDown(self) -> None: - pass - - def test_create_internal_wallet(self) -> None: - """Test case for create_internal_wallet - - Create an internal wallet - """ - pass - - def test_create_internal_wallet_asset(self) -> None: - """Test case for create_internal_wallet_asset - - Add an asset to an internal wallet - """ - pass - - def test_delete_internal_wallet(self) -> None: - """Test case for delete_internal_wallet - - Delete an internal wallet - """ - pass - - def test_delete_internal_wallet_asset(self) -> None: - """Test case for delete_internal_wallet_asset - - Delete a whitelisted address - """ - pass - - def test_get_internal_wallet(self) -> None: - """Test case for get_internal_wallet - - Get assets for internal wallet - """ - pass - - def test_get_internal_wallet_asset(self) -> None: - """Test case for get_internal_wallet_asset - - Get an asset from an internal wallet - """ - pass - - def test_get_internal_wallet_assets_paginated(self) -> None: - """Test case for get_internal_wallet_assets_paginated - - List assets in an internal wallet (Paginated) - """ - pass - - def test_get_internal_wallets(self) -> None: - """Test case for get_internal_wallets - - List internal wallets - """ - pass - - def test_set_customer_ref_id_for_internal_wallet(self) -> None: - """Test case for set_customer_ref_id_for_internal_wallet - - Set an AML/KYT customer reference ID for internal wallet - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLmludGVybmFsX3dhbGxldHNfYXBpIGltcG9ydCBJbnRlcm5hbFdhbGxldHNBcGkKCgpjbGFzcyBUZXN0SW50ZXJuYWxXYWxsZXRzQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkludGVybmFsV2FsbGV0c0FwaSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZikgLT4gTm9uZToKICAgICAgICBzZWxmLmFwaSA9IEludGVybmFsV2FsbGV0c0FwaSgpCgogICAgZGVmIHRlYXJEb3duKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2NyZWF0ZV9pbnRlcm5hbF93YWxsZXQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGNyZWF0ZV9pbnRlcm5hbF93YWxsZXQKCiAgICAgICAgQ3JlYXRlIGFuIGludGVybmFsIHdhbGxldAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9jcmVhdGVfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBjcmVhdGVfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0CgogICAgICAgIEFkZCBhbiBhc3NldCB0byBhbiBpbnRlcm5hbCB3YWxsZXQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZGVsZXRlX2ludGVybmFsX3dhbGxldChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZGVsZXRlX2ludGVybmFsX3dhbGxldAoKICAgICAgICBEZWxldGUgYW4gaW50ZXJuYWwgd2FsbGV0CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2RlbGV0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGRlbGV0ZV9pbnRlcm5hbF93YWxsZXRfYXNzZXQKCiAgICAgICAgRGVsZXRlIGEgd2hpdGVsaXN0ZWQgYWRkcmVzcwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfaW50ZXJuYWxfd2FsbGV0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfaW50ZXJuYWxfd2FsbGV0CgogICAgICAgIEdldCBhc3NldHMgZm9yIGludGVybmFsIHdhbGxldAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0CgogICAgICAgIEdldCBhbiBhc3NldCBmcm9tIGFuIGludGVybmFsIHdhbGxldAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfaW50ZXJuYWxfd2FsbGV0X2Fzc2V0c19wYWdpbmF0ZWQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9pbnRlcm5hbF93YWxsZXRfYXNzZXRzX3BhZ2luYXRlZAoKICAgICAgICBMaXN0IGFzc2V0cyBpbiBhbiBpbnRlcm5hbCB3YWxsZXQgKFBhZ2luYXRlZCkKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2ludGVybmFsX3dhbGxldHMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9pbnRlcm5hbF93YWxsZXRzCgogICAgICAgIExpc3QgaW50ZXJuYWwgd2FsbGV0cwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9zZXRfY3VzdG9tZXJfcmVmX2lkX2Zvcl9pbnRlcm5hbF93YWxsZXQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHNldF9jdXN0b21lcl9yZWZfaWRfZm9yX2ludGVybmFsX3dhbGxldAoKICAgICAgICBTZXQgYW4gQU1ML0tZVCBjdXN0b21lciByZWZlcmVuY2UgSUQgZm9yIGludGVybmFsIHdhbGxldAogICAgICAgICIiIgogICAgICAgIHBhc3MKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_invalid_paramater_value_error.py b/test/test_invalid_paramater_value_error.py index 9c320e55..603770ea 100644 --- a/test/test_invalid_paramater_value_error.py +++ b/test/test_invalid_paramater_value_error.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.invalid_paramater_value_error import InvalidParamaterValueError - - -class TestInvalidParamaterValueError(unittest.TestCase): - """InvalidParamaterValueError unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> InvalidParamaterValueError: - """Test InvalidParamaterValueError - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `InvalidParamaterValueError` - """ - model = InvalidParamaterValueError() - if include_optional: - return InvalidParamaterValueError( - message = 'Invalid initParams.', - code = 400 - ) - else: - return InvalidParamaterValueError( - message = 'Invalid initParams.', - code = 400, - ) - """ - - def testInvalidParamaterValueError(self): - """Test InvalidParamaterValueError""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmludmFsaWRfcGFyYW1hdGVyX3ZhbHVlX2Vycm9yIGltcG9ydCBJbnZhbGlkUGFyYW1hdGVyVmFsdWVFcnJvcgoKCmNsYXNzIFRlc3RJbnZhbGlkUGFyYW1hdGVyVmFsdWVFcnJvcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJJbnZhbGlkUGFyYW1hdGVyVmFsdWVFcnJvciB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gSW52YWxpZFBhcmFtYXRlclZhbHVlRXJyb3I6CiAgICAgICAgIiIiVGVzdCBJbnZhbGlkUGFyYW1hdGVyVmFsdWVFcnJvcgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBJbnZhbGlkUGFyYW1hdGVyVmFsdWVFcnJvcmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEludmFsaWRQYXJhbWF0ZXJWYWx1ZUVycm9yKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gSW52YWxpZFBhcmFtYXRlclZhbHVlRXJyb3IoCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ0ludmFsaWQgaW5pdFBhcmFtcy4nLAogICAgICAgICAgICAgICAgY29kZSA9IDQwMAogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEludmFsaWRQYXJhbWF0ZXJWYWx1ZUVycm9yKAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdJbnZhbGlkIGluaXRQYXJhbXMuJywKICAgICAgICAgICAgICAgIGNvZGUgPSA0MDAsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0SW52YWxpZFBhcmFtYXRlclZhbHVlRXJyb3Ioc2VsZik6CiAgICAgICAgIiIiVGVzdCBJbnZhbGlkUGFyYW1hdGVyVmFsdWVFcnJvciIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_job_created.py b/test/test_job_created.py index 76fd92df..881d7c98 100644 --- a/test/test_job_created.py +++ b/test/test_job_created.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.job_created import JobCreated - - -class TestJobCreated(unittest.TestCase): - """JobCreated unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> JobCreated: - """Test JobCreated - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `JobCreated` - """ - model = JobCreated() - if include_optional: - return JobCreated( - job_id = '' - ) - else: - return JobCreated( - ) - """ - - def testJobCreated(self): - """Test JobCreated""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmpvYl9jcmVhdGVkIGltcG9ydCBKb2JDcmVhdGVkCgoKY2xhc3MgVGVzdEpvYkNyZWF0ZWQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiSm9iQ3JlYXRlZCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gSm9iQ3JlYXRlZDoKICAgICAgICAiIiJUZXN0IEpvYkNyZWF0ZWQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgSm9iQ3JlYXRlZGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IEpvYkNyZWF0ZWQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBKb2JDcmVhdGVkKAogICAgICAgICAgICAgICAgam9iX2lkID0gJycsCiAgICAgICAgICAgICAgICBhcHByb3ZhbF9yZXF1ZXN0X2lkID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBKb2JDcmVhdGVkKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdEpvYkNyZWF0ZWQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBKb2JDcmVhdGVkIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_key_link_beta_api.py b/test/test_key_link_beta_api.py index 593caf8e..2677c977 100644 --- a/test/test_key_link_beta_api.py +++ b/test/test_key_link_beta_api.py @@ -1,95 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.key_link_beta_api import KeyLinkBetaApi - - -class TestKeyLinkBetaApi(unittest.TestCase): - """KeyLinkBetaApi unit test stubs""" - - def setUp(self) -> None: - self.api = KeyLinkBetaApi() - - def tearDown(self) -> None: - pass - - def test_create_signing_key(self) -> None: - """Test case for create_signing_key - - Add a new signing key - """ - pass - - def test_create_validation_key(self) -> None: - """Test case for create_validation_key - - Add a new validation key - """ - pass - - def test_disable_validation_key(self) -> None: - """Test case for disable_validation_key - - Disables a validation key - """ - pass - - def test_get_signing_key(self) -> None: - """Test case for get_signing_key - - Get a signing key by `keyId` - """ - pass - - def test_get_signing_keys_list(self) -> None: - """Test case for get_signing_keys_list - - Get list of signing keys - """ - pass - - def test_get_validation_key(self) -> None: - """Test case for get_validation_key - - Get a validation key by `keyId` - """ - pass - - def test_get_validation_keys_list(self) -> None: - """Test case for get_validation_keys_list - - Get list of registered validation keys - """ - pass - - def test_set_agent_id(self) -> None: - """Test case for set_agent_id - - Set agent user id - """ - pass - - def test_update_signing_key(self) -> None: - """Test case for update_signing_key - - Modify the signing keyId - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLmtleV9saW5rX2JldGFfYXBpIGltcG9ydCBLZXlMaW5rQmV0YUFwaQoKCmNsYXNzIFRlc3RLZXlMaW5rQmV0YUFwaSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJLZXlMaW5rQmV0YUFwaSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZikgLT4gTm9uZToKICAgICAgICBzZWxmLmFwaSA9IEtleUxpbmtCZXRhQXBpKCkKCiAgICBkZWYgdGVhckRvd24oc2VsZikgLT4gTm9uZToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY3JlYXRlX3NpZ25pbmdfa2V5KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBjcmVhdGVfc2lnbmluZ19rZXkKCiAgICAgICAgQWRkIGEgbmV3IHNpZ25pbmcga2V5CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2NyZWF0ZV92YWxpZGF0aW9uX2tleShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgY3JlYXRlX3ZhbGlkYXRpb25fa2V5CgogICAgICAgIEFkZCBhIG5ldyB2YWxpZGF0aW9uIGtleQogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9kaXNhYmxlX3ZhbGlkYXRpb25fa2V5KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBkaXNhYmxlX3ZhbGlkYXRpb25fa2V5CgogICAgICAgIERpc2FibGVzIGEgdmFsaWRhdGlvbiBrZXkKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3NpZ25pbmdfa2V5KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfc2lnbmluZ19rZXkKCiAgICAgICAgR2V0IGEgc2lnbmluZyBrZXkgYnkgYGtleUlkYAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfc2lnbmluZ19rZXlzX2xpc3Qoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9zaWduaW5nX2tleXNfbGlzdAoKICAgICAgICBHZXQgbGlzdCBvZiBzaWduaW5nIGtleXMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3ZhbGlkYXRpb25fa2V5KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfdmFsaWRhdGlvbl9rZXkKCiAgICAgICAgR2V0IGEgdmFsaWRhdGlvbiBrZXkgYnkgYGtleUlkYAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfdmFsaWRhdGlvbl9rZXlzX2xpc3Qoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF92YWxpZGF0aW9uX2tleXNfbGlzdAoKICAgICAgICBHZXQgbGlzdCBvZiByZWdpc3RlcmVkIHZhbGlkYXRpb24ga2V5cwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9zZXRfYWdlbnRfaWQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHNldF9hZ2VudF9pZAoKICAgICAgICBTZXQgYWdlbnQgdXNlciBpZAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF91cGRhdGVfc2lnbmluZ19rZXkoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHVwZGF0ZV9zaWduaW5nX2tleQoKICAgICAgICBNb2RpZnkgdGhlIHNpZ25pbmcga2V5SWQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_keys_beta_api.py b/test/test_keys_beta_api.py index 5e0d3d44..a878458e 100644 --- a/test/test_keys_beta_api.py +++ b/test/test_keys_beta_api.py @@ -1,46 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.keys_beta_api import KeysBetaApi - - -class TestKeysBetaApi(unittest.TestCase): - """KeysBetaApi unit test stubs""" - - def setUp(self) -> None: - self.api = KeysBetaApi() - - def tearDown(self) -> None: - pass - - def test_get_mpc_keys_list(self) -> None: - """Test case for get_mpc_keys_list - - Get list of mpc keys - """ - pass - - def test_get_mpc_keys_list_by_user(self) -> None: - """Test case for get_mpc_keys_list_by_user - - Get list of mpc keys by `userId` - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLmtleXNfYmV0YV9hcGkgaW1wb3J0IEtleXNCZXRhQXBpCgoKY2xhc3MgVGVzdEtleXNCZXRhQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIktleXNCZXRhQXBpIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKSAtPiBOb25lOgogICAgICAgIHNlbGYuYXBpID0gS2V5c0JldGFBcGkoKQoKICAgIGRlZiB0ZWFyRG93bihzZWxmKSAtPiBOb25lOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfbXBjX2tleXNfbGlzdChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X21wY19rZXlzX2xpc3QKCiAgICAgICAgR2V0IGxpc3Qgb2YgbXBjIGtleXMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X21wY19rZXlzX2xpc3RfYnlfdXNlcihzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X21wY19rZXlzX2xpc3RfYnlfdXNlcgoKICAgICAgICBHZXQgbGlzdCBvZiBtcGMga2V5cyBieSBgdXNlcklkYAogICAgICAgICIiIgogICAgICAgIHBhc3MKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_layer_zero_adapter_create_params.py b/test/test_layer_zero_adapter_create_params.py index 69666f8c..e1896635 100644 --- a/test/test_layer_zero_adapter_create_params.py +++ b/test/test_layer_zero_adapter_create_params.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.layer_zero_adapter_create_params import ( - LayerZeroAdapterCreateParams, -) - - -class TestLayerZeroAdapterCreateParams(unittest.TestCase): - """LayerZeroAdapterCreateParams unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LayerZeroAdapterCreateParams: - """Test LayerZeroAdapterCreateParams - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LayerZeroAdapterCreateParams` - """ - model = LayerZeroAdapterCreateParams() - if include_optional: - return LayerZeroAdapterCreateParams( - token_link_id = '123-432-1234-1234-123456789012', - delegate_address = '0xABCDEF123456789abcdef1234567890abcdef12345678', - default_admin_address = '0xABC123456789abcdef1234567890abcdef12345678', - pauser_address = '0xDEFABC123456789abcdef1234567890abcdef12345678' - ) - else: - return LayerZeroAdapterCreateParams( - token_link_id = '123-432-1234-1234-123456789012', - delegate_address = '0xABCDEF123456789abcdef1234567890abcdef12345678', - default_admin_address = '0xABC123456789abcdef1234567890abcdef12345678', - pauser_address = '0xDEFABC123456789abcdef1234567890abcdef12345678', - ) - """ - - def testLayerZeroAdapterCreateParams(self): - """Test LayerZeroAdapterCreateParams""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxheWVyX3plcm9fYWRhcHRlcl9jcmVhdGVfcGFyYW1zIGltcG9ydCAoCiAgICBMYXllclplcm9BZGFwdGVyQ3JlYXRlUGFyYW1zLAopCgoKY2xhc3MgVGVzdExheWVyWmVyb0FkYXB0ZXJDcmVhdGVQYXJhbXModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTGF5ZXJaZXJvQWRhcHRlckNyZWF0ZVBhcmFtcyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gTGF5ZXJaZXJvQWRhcHRlckNyZWF0ZVBhcmFtczoKICAgICAgICAiIiJUZXN0IExheWVyWmVyb0FkYXB0ZXJDcmVhdGVQYXJhbXMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTGF5ZXJaZXJvQWRhcHRlckNyZWF0ZVBhcmFtc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IExheWVyWmVyb0FkYXB0ZXJDcmVhdGVQYXJhbXMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBMYXllclplcm9BZGFwdGVyQ3JlYXRlUGFyYW1zKAogICAgICAgICAgICAgICAgdG9rZW5fbGlua19pZCA9ICcxMjMtNDMyLTEyMzQtMTIzNC0xMjM0NTY3ODkwMTInLAogICAgICAgICAgICAgICAgZGVsZWdhdGVfYWRkcmVzcyA9ICcweEFCQ0RFRjEyMzQ1Njc4OWFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3OCcsCiAgICAgICAgICAgICAgICBkZWZhdWx0X2FkbWluX2FkZHJlc3MgPSAnMHhBQkMxMjM0NTY3ODlhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2NzgnLAogICAgICAgICAgICAgICAgcGF1c2VyX2FkZHJlc3MgPSAnMHhERUZBQkMxMjM0NTY3ODlhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2NzgnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTGF5ZXJaZXJvQWRhcHRlckNyZWF0ZVBhcmFtcygKICAgICAgICAgICAgICAgIHRva2VuX2xpbmtfaWQgPSAnMTIzLTQzMi0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyJywKICAgICAgICAgICAgICAgIGRlbGVnYXRlX2FkZHJlc3MgPSAnMHhBQkNERUYxMjM0NTY3ODlhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2NzgnLAogICAgICAgICAgICAgICAgZGVmYXVsdF9hZG1pbl9hZGRyZXNzID0gJzB4QUJDMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4JywKICAgICAgICAgICAgICAgIHBhdXNlcl9hZGRyZXNzID0gJzB4REVGQUJDMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4JywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RMYXllclplcm9BZGFwdGVyQ3JlYXRlUGFyYW1zKHNlbGYpOgogICAgICAgICIiIlRlc3QgTGF5ZXJaZXJvQWRhcHRlckNyZWF0ZVBhcmFtcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_lbt_payment_info.py b/test/test_lbt_payment_info.py index f36ea80b..29722186 100644 --- a/test/test_lbt_payment_info.py +++ b/test/test_lbt_payment_info.py @@ -1,69 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.lbt_payment_info import LbtPaymentInfo - - -class TestLbtPaymentInfo(unittest.TestCase): - """LbtPaymentInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LbtPaymentInfo: - """Test LbtPaymentInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LbtPaymentInfo` - """ - model = LbtPaymentInfo() - if include_optional: - return LbtPaymentInfo( - rail = 'LBT', - addressing_system = 'BAN', - account_holder_given_name = 'Ahmad', - account_holder_surname = 'Khalil', - country = 'LB', - account_number = '123456789012', - bank_name = 'Bank of Beirut', - bank_code = '001' - ) - else: - return LbtPaymentInfo( - rail = 'LBT', - addressing_system = 'BAN', - account_holder_given_name = 'Ahmad', - account_holder_surname = 'Khalil', - country = 'LB', - account_number = '123456789012', - bank_name = 'Bank of Beirut', - bank_code = '001', - ) - """ - - def testLbtPaymentInfo(self): - """Test LbtPaymentInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxidF9wYXltZW50X2luZm8gaW1wb3J0IExidFBheW1lbnRJbmZvCgoKY2xhc3MgVGVzdExidFBheW1lbnRJbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkxidFBheW1lbnRJbmZvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBMYnRQYXltZW50SW5mbzoKICAgICAgICAiIiJUZXN0IExidFBheW1lbnRJbmZvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYExidFBheW1lbnRJbmZvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTGJ0UGF5bWVudEluZm8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBMYnRQYXltZW50SW5mbygKICAgICAgICAgICAgICAgIHJhaWwgPSAnTEJUJywKICAgICAgICAgICAgICAgIGFkZHJlc3Npbmdfc3lzdGVtID0gJ0JBTicsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9naXZlbl9uYW1lID0gJ0FobWFkJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX3N1cm5hbWUgPSAnS2hhbGlsJywKICAgICAgICAgICAgICAgIGNvdW50cnkgPSAnTEInLAogICAgICAgICAgICAgICAgYWNjb3VudF9udW1iZXIgPSAnMTIzNDU2Nzg5MDEyJywKICAgICAgICAgICAgICAgIGJhbmtfbmFtZSA9ICdCYW5rIG9mIEJlaXJ1dCcsCiAgICAgICAgICAgICAgICBiYW5rX2NvZGUgPSAnMDAxJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIExidFBheW1lbnRJbmZvKAogICAgICAgICAgICAgICAgcmFpbCA9ICdMQlQnLAogICAgICAgICAgICAgICAgYWRkcmVzc2luZ19zeXN0ZW0gPSAnQkFOJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2dpdmVuX25hbWUgPSAnQWhtYWQnLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfc3VybmFtZSA9ICdLaGFsaWwnLAogICAgICAgICAgICAgICAgY291bnRyeSA9ICdMQicsCiAgICAgICAgICAgICAgICBhY2NvdW50X251bWJlciA9ICcxMjM0NTY3ODkwMTInLAogICAgICAgICAgICAgICAgYmFua19uYW1lID0gJ0Jhbmsgb2YgQmVpcnV0JywKICAgICAgICAgICAgICAgIGJhbmtfY29kZSA9ICcwMDEnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdExidFBheW1lbnRJbmZvKHNlbGYpOgogICAgICAgICIiIlRlc3QgTGJ0UGF5bWVudEluZm8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_lean_abi_function.py b/test/test_lean_abi_function.py index 6fcf4238..dc9f0b60 100644 --- a/test/test_lean_abi_function.py +++ b/test/test_lean_abi_function.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.lean_abi_function import LeanAbiFunction - - -class TestLeanAbiFunction(unittest.TestCase): - """LeanAbiFunction unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LeanAbiFunction: - """Test LeanAbiFunction - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LeanAbiFunction` - """ - model = LeanAbiFunction() - if include_optional: - return LeanAbiFunction( - name = 'initialize', - inputs = [ - fireblocks.models.parameter_with_value.ParameterWithValue( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], - value = 'true', - function_value = null, ) - ], - outputs = [ - fireblocks.models.parameter_with_value.ParameterWithValue( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], - value = 'true', - function_value = null, ) - ], - state_mutability = 'nonpayable' - ) - else: - return LeanAbiFunction( - inputs = [ - fireblocks.models.parameter_with_value.ParameterWithValue( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], - value = 'true', - function_value = null, ) - ], - ) - """ - - def testLeanAbiFunction(self): - """Test LeanAbiFunction""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlYW5fYWJpX2Z1bmN0aW9uIGltcG9ydCBMZWFuQWJpRnVuY3Rpb24KCgpjbGFzcyBUZXN0TGVhbkFiaUZ1bmN0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkxlYW5BYmlGdW5jdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gTGVhbkFiaUZ1bmN0aW9uOgogICAgICAgICIiIlRlc3QgTGVhbkFiaUZ1bmN0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYExlYW5BYmlGdW5jdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IExlYW5BYmlGdW5jdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIExlYW5BYmlGdW5jdGlvbigKICAgICAgICAgICAgICAgIG5hbWUgPSAnaW5pdGlhbGl6ZScsCiAgICAgICAgICAgICAgICBpbnB1dHMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyX3dpdGhfdmFsdWUuUGFyYW1ldGVyV2l0aFZhbHVlKAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ19uYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1RoZSBuYW1lIG9mIHRoZSB0b2tlbicsIAogICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyLlBhcmFtZXRlcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ19uYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxfdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ3N0cmluZycsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9ICd0cnVlJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uX3ZhbHVlID0gbnVsbCwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBvdXRwdXRzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlcl93aXRoX3ZhbHVlLlBhcmFtZXRlcldpdGhWYWx1ZSgKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdfbmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGUgbmFtZSBvZiB0aGUgdG9rZW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxfdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50cyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlci5QYXJhbWV0ZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdfbmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1RoZSBuYW1lIG9mIHRoZSB0b2tlbicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdzdHJpbmcnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAndHJ1ZScsIAogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbl92YWx1ZSA9IG51bGwsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgc3RhdGVfbXV0YWJpbGl0eSA9ICdub25wYXlhYmxlJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIExlYW5BYmlGdW5jdGlvbigKICAgICAgICAgICAgICAgIGlucHV0cyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXJfd2l0aF92YWx1ZS5QYXJhbWV0ZXJXaXRoVmFsdWUoCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXIuUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGUgbmFtZSBvZiB0aGUgdG9rZW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gJ3RydWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25fdmFsdWUgPSBudWxsLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RMZWFuQWJpRnVuY3Rpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBMZWFuQWJpRnVuY3Rpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_lean_contract_dto.py b/test/test_lean_contract_dto.py index 8a7a7b37..3a11680b 100644 --- a/test/test_lean_contract_dto.py +++ b/test/test_lean_contract_dto.py @@ -1,78 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.lean_contract_dto import LeanContractDto - - -class TestLeanContractDto(unittest.TestCase): - """LeanContractDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LeanContractDto: - """Test LeanContractDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LeanContractDto` - """ - model = LeanContractDto() - if include_optional: - return LeanContractDto( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - name = 'My Contract', - description = 'an ERC20 implementation', - attributes = fireblocks.models.contract_attributes.ContractAttributes( - use_cases = [ - '' - ], - standards = [ - '' - ], - auditor = fireblocks.models.auditor_data.AuditorData( - name = '', - image_url = '', - link = '', ), ), - is_public = True, - can_deploy = True, - owner = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - vendor = fireblocks.models.vendor_dto.VendorDto( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b4453', - name = 'Fireblocks', ), - type = 'FUNGIBLE_TOKEN' - ) - else: - return LeanContractDto( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - name = 'My Contract', - description = 'an ERC20 implementation', - is_public = True, - ) - """ - - def testLeanContractDto(self): - """Test LeanContractDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlYW5fY29udHJhY3RfZHRvIGltcG9ydCBMZWFuQ29udHJhY3REdG8KCgpjbGFzcyBUZXN0TGVhbkNvbnRyYWN0RHRvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkxlYW5Db250cmFjdER0byB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gTGVhbkNvbnRyYWN0RHRvOgogICAgICAgICIiIlRlc3QgTGVhbkNvbnRyYWN0RHRvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYExlYW5Db250cmFjdER0b2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IExlYW5Db250cmFjdER0bygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIExlYW5Db250cmFjdER0bygKICAgICAgICAgICAgICAgIGlkID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCcsCiAgICAgICAgICAgICAgICBuYW1lID0gJ015IENvbnRyYWN0JywKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ2FuIEVSQzIwIGltcGxlbWVudGF0aW9uJywKICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBmaXJlYmxvY2tzLm1vZGVscy5jb250cmFjdF9hdHRyaWJ1dGVzLkNvbnRyYWN0QXR0cmlidXRlcygKICAgICAgICAgICAgICAgICAgICB1c2VfY2FzZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgIHN0YW5kYXJkcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgYXVkaXRvciA9IGZpcmVibG9ja3MubW9kZWxzLmF1ZGl0b3JfZGF0YS5BdWRpdG9yRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VfdXJsID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBsaW5rID0gJycsICksICksCiAgICAgICAgICAgICAgICBpc19wdWJsaWMgPSBUcnVlLAogICAgICAgICAgICAgICAgY2FuX2RlcGxveSA9IFRydWUsCiAgICAgICAgICAgICAgICBvd25lciA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGQnLAogICAgICAgICAgICAgICAgdmVuZG9yID0gZmlyZWJsb2Nrcy5tb2RlbHMudmVuZG9yX2R0by5WZW5kb3JEdG8oCiAgICAgICAgICAgICAgICAgICAgaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI0NDUzJywgCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdGaXJlYmxvY2tzJywgKSwKICAgICAgICAgICAgICAgIHR5cGUgPSAnRlVOR0lCTEVfVE9LRU4nCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTGVhbkNvbnRyYWN0RHRvKAogICAgICAgICAgICAgICAgaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnTXkgQ29udHJhY3QnLAogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnYW4gRVJDMjAgaW1wbGVtZW50YXRpb24nLAogICAgICAgICAgICAgICAgaXNfcHVibGljID0gVHJ1ZSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RMZWFuQ29udHJhY3REdG8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBMZWFuQ29udHJhY3REdG8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_lean_deployed_contract_response_dto.py b/test/test_lean_deployed_contract_response_dto.py index ef14e729..b93f38ea 100644 --- a/test/test_lean_deployed_contract_response_dto.py +++ b/test/test_lean_deployed_contract_response_dto.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.lean_deployed_contract_response_dto import ( - LeanDeployedContractResponseDto, -) - - -class TestLeanDeployedContractResponseDto(unittest.TestCase): - """LeanDeployedContractResponseDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LeanDeployedContractResponseDto: - """Test LeanDeployedContractResponseDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LeanDeployedContractResponseDto` - """ - model = LeanDeployedContractResponseDto() - if include_optional: - return LeanDeployedContractResponseDto( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66', - contract_template_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - blockchain_id = '' - ) - else: - return LeanDeployedContractResponseDto( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66', - contract_template_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - blockchain_id = '', - ) - """ - - def testLeanDeployedContractResponseDto(self): - """Test LeanDeployedContractResponseDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlYW5fZGVwbG95ZWRfY29udHJhY3RfcmVzcG9uc2VfZHRvIGltcG9ydCAoCiAgICBMZWFuRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvLAopCgoKY2xhc3MgVGVzdExlYW5EZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTGVhbkRlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0byB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gTGVhbkRlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0bzoKICAgICAgICAiIiJUZXN0IExlYW5EZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTGVhbkRlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0b2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IExlYW5EZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBMZWFuRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvKAogICAgICAgICAgICAgICAgaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywKICAgICAgICAgICAgICAgIGNvbnRyYWN0X2FkZHJlc3MgPSAnMHhDMmM0ZTFEYjQxRjBiQjk3OTk2RDBlRDA1NDJEMjE3MGQxNDZGQjY2JywKICAgICAgICAgICAgICAgIGNvbnRyYWN0X3RlbXBsYXRlX2lkID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCcsCiAgICAgICAgICAgICAgICBibG9ja2NoYWluX2lkID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBMZWFuRGVwbG95ZWRDb250cmFjdFJlc3BvbnNlRHRvKAogICAgICAgICAgICAgICAgaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywKICAgICAgICAgICAgICAgIGNvbnRyYWN0X2FkZHJlc3MgPSAnMHhDMmM0ZTFEYjQxRjBiQjk3OTk2RDBlRDA1NDJEMjE3MGQxNDZGQjY2JywKICAgICAgICAgICAgICAgIGNvbnRyYWN0X3RlbXBsYXRlX2lkID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCcsCiAgICAgICAgICAgICAgICBibG9ja2NoYWluX2lkID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TGVhbkRlcGxveWVkQ29udHJhY3RSZXNwb25zZUR0byhzZWxmKToKICAgICAgICAiIiJUZXN0IExlYW5EZXBsb3llZENvbnRyYWN0UmVzcG9uc2VEdG8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_legacy_amount_aggregation_time_period_method.py b/test/test_legacy_amount_aggregation_time_period_method.py index ff65adef..a1925500 100644 --- a/test/test_legacy_amount_aggregation_time_period_method.py +++ b/test/test_legacy_amount_aggregation_time_period_method.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_amount_aggregation_time_period_method import ( - LegacyAmountAggregationTimePeriodMethod, -) - - -class TestLegacyAmountAggregationTimePeriodMethod(unittest.TestCase): - """LegacyAmountAggregationTimePeriodMethod unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testLegacyAmountAggregationTimePeriodMethod(self): - """Test LegacyAmountAggregationTimePeriodMethod""" - # inst = LegacyAmountAggregationTimePeriodMethod() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9hbW91bnRfYWdncmVnYXRpb25fdGltZV9wZXJpb2RfbWV0aG9kIGltcG9ydCAoCiAgICBMZWdhY3lBbW91bnRBZ2dyZWdhdGlvblRpbWVQZXJpb2RNZXRob2QsCikKCgpjbGFzcyBUZXN0TGVnYWN5QW1vdW50QWdncmVnYXRpb25UaW1lUGVyaW9kTWV0aG9kKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkxlZ2FjeUFtb3VudEFnZ3JlZ2F0aW9uVGltZVBlcmlvZE1ldGhvZCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RMZWdhY3lBbW91bnRBZ2dyZWdhdGlvblRpbWVQZXJpb2RNZXRob2Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBMZWdhY3lBbW91bnRBZ2dyZWdhdGlvblRpbWVQZXJpb2RNZXRob2QiIiIKICAgICAgICAjIGluc3QgPSBMZWdhY3lBbW91bnRBZ2dyZWdhdGlvblRpbWVQZXJpb2RNZXRob2QoKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_legacy_draft_response.py b/test/test_legacy_draft_response.py index 44c37e10..d5e07984 100644 --- a/test/test_legacy_draft_response.py +++ b/test/test_legacy_draft_response.py @@ -1,191 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_draft_response import LegacyDraftResponse - - -class TestLegacyDraftResponse(unittest.TestCase): - """LegacyDraftResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacyDraftResponse: - """Test LegacyDraftResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyDraftResponse` - """ - model = LegacyDraftResponse() - if include_optional: - return LegacyDraftResponse( - status = '', - rules = [ - fireblocks.models.legacy_policy_rule.LegacyPolicyRule( - operator = '', - operators = fireblocks.models.legacy_policy_rule_operators.LegacyPolicyRule_operators( - wildcard = '*', - users = [ - '' - ], - users_groups = [ - '' - ], - services = [ - '' - ], ), - transaction_type = 'TRANSFER', - designated_signer = '', - designated_signers = fireblocks.models.legacy_policy_rule_designated_signers.LegacyPolicyRule_designatedSigners(), - type = 'TRANSFER', - action = 'ALLOW', - asset = '', - src_type = null, - src_sub_type = null, - src_id = null, - src = fireblocks.models.legacy_policy_rule_src.LegacyPolicyRule_src( - ids = [ - [ - null - ] - ], ), - dst_type = null, - dst_sub_type = null, - dst_id = null, - dst = fireblocks.models.legacy_policy_rule_dst.LegacyPolicyRule_dst(), - dst_address_type = 'WHITELISTED', - amount_currency = 'USD', - amount_scope = 'SINGLE_TX', - amount = null, - period_sec = 1.337, - authorizers = [ - '' - ], - authorizers_count = 1.337, - authorization_groups = fireblocks.models.legacy_policy_rule_authorization_groups.LegacyPolicyRule_authorizationGroups( - logic = 'AND', - allow_operator_as_authorizer = True, - groups = [ - fireblocks.models.legacy_policy_rule_authorization_groups_groups_inner.LegacyPolicyRule_authorizationGroups_groups_inner( - th = 1.337, ) - ], ), - amount_aggregation = fireblocks.models.legacy_policy_rule_amount_aggregation.LegacyPolicyRule_amountAggregation( - src_transfer_peers = 'PER_SINGLE_MATCH', - dst_transfer_peers = 'PER_SINGLE_MATCH', ), - raw_message_signing = fireblocks.models.legacy_policy_rule_raw_message_signing.LegacyPolicyRule_rawMessageSigning( - algorithm = '', - derivation_path = fireblocks.models.legacy_policy_rule_raw_message_signing_derivation_path.LegacyPolicyRule_rawMessageSigning_derivationPath( - path = [ - 1.337 - ], ), ), - apply_for_approve = True, - apply_for_typed_message = True, - external_descriptor = '', ) - ], - draft_id = '', - metadata = fireblocks.models.legacy_policy_metadata.LegacyPolicyMetadata( - edited_by = '', - edited_at = '', - published_by = '', - published_at = '', ) - ) - else: - return LegacyDraftResponse( - status = '', - rules = [ - fireblocks.models.legacy_policy_rule.LegacyPolicyRule( - operator = '', - operators = fireblocks.models.legacy_policy_rule_operators.LegacyPolicyRule_operators( - wildcard = '*', - users = [ - '' - ], - users_groups = [ - '' - ], - services = [ - '' - ], ), - transaction_type = 'TRANSFER', - designated_signer = '', - designated_signers = fireblocks.models.legacy_policy_rule_designated_signers.LegacyPolicyRule_designatedSigners(), - type = 'TRANSFER', - action = 'ALLOW', - asset = '', - src_type = null, - src_sub_type = null, - src_id = null, - src = fireblocks.models.legacy_policy_rule_src.LegacyPolicyRule_src( - ids = [ - [ - null - ] - ], ), - dst_type = null, - dst_sub_type = null, - dst_id = null, - dst = fireblocks.models.legacy_policy_rule_dst.LegacyPolicyRule_dst(), - dst_address_type = 'WHITELISTED', - amount_currency = 'USD', - amount_scope = 'SINGLE_TX', - amount = null, - period_sec = 1.337, - authorizers = [ - '' - ], - authorizers_count = 1.337, - authorization_groups = fireblocks.models.legacy_policy_rule_authorization_groups.LegacyPolicyRule_authorizationGroups( - logic = 'AND', - allow_operator_as_authorizer = True, - groups = [ - fireblocks.models.legacy_policy_rule_authorization_groups_groups_inner.LegacyPolicyRule_authorizationGroups_groups_inner( - th = 1.337, ) - ], ), - amount_aggregation = fireblocks.models.legacy_policy_rule_amount_aggregation.LegacyPolicyRule_amountAggregation( - src_transfer_peers = 'PER_SINGLE_MATCH', - dst_transfer_peers = 'PER_SINGLE_MATCH', ), - raw_message_signing = fireblocks.models.legacy_policy_rule_raw_message_signing.LegacyPolicyRule_rawMessageSigning( - algorithm = '', - derivation_path = fireblocks.models.legacy_policy_rule_raw_message_signing_derivation_path.LegacyPolicyRule_rawMessageSigning_derivationPath( - path = [ - 1.337 - ], ), ), - apply_for_approve = True, - apply_for_typed_message = True, - external_descriptor = '', ) - ], - draft_id = '', - metadata = fireblocks.models.legacy_policy_metadata.LegacyPolicyMetadata( - edited_by = '', - edited_at = '', - published_by = '', - published_at = '', ), - ) - """ - - def testLegacyDraftResponse(self): - """Test LegacyDraftResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9kcmFmdF9yZXNwb25zZSBpbXBvcnQgTGVnYWN5RHJhZnRSZXNwb25zZQoKCmNsYXNzIFRlc3RMZWdhY3lEcmFmdFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkxlZ2FjeURyYWZ0UmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IExlZ2FjeURyYWZ0UmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBMZWdhY3lEcmFmdFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYExlZ2FjeURyYWZ0UmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBMZWdhY3lEcmFmdFJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTGVnYWN5RHJhZnRSZXNwb25zZSgKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICcnLAogICAgICAgICAgICAgICAgcnVsZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlLkxlZ2FjeVBvbGljeVJ1bGUoCiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcnMgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfb3BlcmF0b3JzLkxlZ2FjeVBvbGljeVJ1bGVfb3BlcmF0b3JzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsZGNhcmQgPSAnKicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzX2dyb3VwcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25fdHlwZSA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNpZ25hdGVkX3NpZ25lciA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzaWduYXRlZF9zaWduZXJzID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2Rlc2lnbmF0ZWRfc2lnbmVycy5MZWdhY3lQb2xpY3lSdWxlX2Rlc2lnbmF0ZWRTaWduZXJzKCksIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1RSQU5TRkVSJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdBTExPVycsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3JjX3R5cGUgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3JjX3N1Yl90eXBlID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIHNyY19pZCA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBzcmMgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfc3JjLkxlZ2FjeVBvbGljeVJ1bGVfc3JjKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRzdF90eXBlID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRzdF9zdWJfdHlwZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBkc3RfaWQgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgZHN0ID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2RzdC5MZWdhY3lQb2xpY3lSdWxlX2RzdCgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgZHN0X2FkZHJlc3NfdHlwZSA9ICdXSElURUxJU1RFRCcsIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfY3VycmVuY3kgPSAnVVNEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudF9zY29wZSA9ICdTSU5HTEVfVFgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmlvZF9zZWMgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml6ZXJzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpemVyc19jb3VudCA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXphdGlvbl9ncm91cHMgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfYXV0aG9yaXphdGlvbl9ncm91cHMuTGVnYWN5UG9saWN5UnVsZV9hdXRob3JpemF0aW9uR3JvdXBzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9naWMgPSAnQU5EJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd19vcGVyYXRvcl9hc19hdXRob3JpemVyID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2F1dGhvcml6YXRpb25fZ3JvdXBzX2dyb3Vwc19pbm5lci5MZWdhY3lQb2xpY3lSdWxlX2F1dGhvcml6YXRpb25Hcm91cHNfZ3JvdXBzX2lubmVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aCA9IDEuMzM3LCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudF9hZ2dyZWdhdGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hbW91bnRfYWdncmVnYXRpb24uTGVnYWN5UG9saWN5UnVsZV9hbW91bnRBZ2dyZWdhdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY190cmFuc2Zlcl9wZWVycyA9ICdQRVJfU0lOR0xFX01BVENIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3RfdHJhbnNmZXJfcGVlcnMgPSAnUEVSX1NJTkdMRV9NQVRDSCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICByYXdfbWVzc2FnZV9zaWduaW5nID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX3Jhd19tZXNzYWdlX3NpZ25pbmcuTGVnYWN5UG9saWN5UnVsZV9yYXdNZXNzYWdlU2lnbmluZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZ29yaXRobSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcml2YXRpb25fcGF0aCA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9yYXdfbWVzc2FnZV9zaWduaW5nX2Rlcml2YXRpb25fcGF0aC5MZWdhY3lQb2xpY3lSdWxlX3Jhd01lc3NhZ2VTaWduaW5nX2Rlcml2YXRpb25QYXRoKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMzM3CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksICksIAogICAgICAgICAgICAgICAgICAgICAgICBhcHBseV9mb3JfYXBwcm92ZSA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICBhcHBseV9mb3JfdHlwZWRfbWVzc2FnZSA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICBleHRlcm5hbF9kZXNjcmlwdG9yID0gJycsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgZHJhZnRfaWQgPSAnJywKICAgICAgICAgICAgICAgIG1ldGFkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9tZXRhZGF0YS5MZWdhY3lQb2xpY3lNZXRhZGF0YSgKICAgICAgICAgICAgICAgICAgICBlZGl0ZWRfYnkgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgZWRpdGVkX2F0ID0gJycsIAogICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlZF9ieSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZWRfYXQgPSAnJywgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIExlZ2FjeURyYWZ0UmVzcG9uc2UoCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnJywKICAgICAgICAgICAgICAgIHJ1bGVzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZS5MZWdhY3lQb2xpY3lSdWxlKAogICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3JzID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX29wZXJhdG9ycy5MZWdhY3lQb2xpY3lSdWxlX29wZXJhdG9ycygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGRjYXJkID0gJyonLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2Vyc19ncm91cHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uX3R5cGUgPSAnVFJBTlNGRVInLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzaWduYXRlZF9zaWduZXIgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2lnbmF0ZWRfc2lnbmVycyA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9kZXNpZ25hdGVkX3NpZ25lcnMuTGVnYWN5UG9saWN5UnVsZV9kZXNpZ25hdGVkU2lnbmVycygpLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUxMT1cnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNyY190eXBlID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIHNyY19zdWJfdHlwZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBzcmNfaWQgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3JjID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX3NyYy5MZWdhY3lQb2xpY3lSdWxlX3NyYygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksIAogICAgICAgICAgICAgICAgICAgICAgICBkc3RfdHlwZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBkc3Rfc3ViX3R5cGUgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgZHN0X2lkID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRzdCA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9kc3QuTGVnYWN5UG9saWN5UnVsZV9kc3QoKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRzdF9hZGRyZXNzX3R5cGUgPSAnV0hJVEVMSVNURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50X2N1cnJlbmN5ID0gJ1VTRCcsIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfc2NvcGUgPSAnU0lOR0xFX1RYJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBwZXJpb2Rfc2VjID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpemVycyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXplcnNfY291bnQgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml6YXRpb25fZ3JvdXBzID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2F1dGhvcml6YXRpb25fZ3JvdXBzLkxlZ2FjeVBvbGljeVJ1bGVfYXV0aG9yaXphdGlvbkdyb3VwcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2ljID0gJ0FORCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dfb3BlcmF0b3JfYXNfYXV0aG9yaXplciA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hdXRob3JpemF0aW9uX2dyb3Vwc19ncm91cHNfaW5uZXIuTGVnYWN5UG9saWN5UnVsZV9hdXRob3JpemF0aW9uR3JvdXBzX2dyb3Vwc19pbm5lcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGggPSAxLjMzNywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfYWdncmVnYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfYW1vdW50X2FnZ3JlZ2F0aW9uLkxlZ2FjeVBvbGljeVJ1bGVfYW1vdW50QWdncmVnYXRpb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNfdHJhbnNmZXJfcGVlcnMgPSAnUEVSX1NJTkdMRV9NQVRDSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0X3RyYW5zZmVyX3BlZXJzID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgcmF3X21lc3NhZ2Vfc2lnbmluZyA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9yYXdfbWVzc2FnZV9zaWduaW5nLkxlZ2FjeVBvbGljeVJ1bGVfcmF3TWVzc2FnZVNpZ25pbmcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGdvcml0aG0gPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXJpdmF0aW9uX3BhdGggPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfcmF3X21lc3NhZ2Vfc2lnbmluZ19kZXJpdmF0aW9uX3BhdGguTGVnYWN5UG9saWN5UnVsZV9yYXdNZXNzYWdlU2lnbmluZ19kZXJpdmF0aW9uUGF0aCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjMzNwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXBwbHlfZm9yX2FwcHJvdmUgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXBwbHlfZm9yX3R5cGVkX21lc3NhZ2UgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfZGVzY3JpcHRvciA9ICcnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGRyYWZ0X2lkID0gJycsCiAgICAgICAgICAgICAgICBtZXRhZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfbWV0YWRhdGEuTGVnYWN5UG9saWN5TWV0YWRhdGEoCiAgICAgICAgICAgICAgICAgICAgZWRpdGVkX2J5ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGVkaXRlZF9hdCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZWRfYnkgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgcHVibGlzaGVkX2F0ID0gJycsICksCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TGVnYWN5RHJhZnRSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IExlZ2FjeURyYWZ0UmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_legacy_draft_review_and_validation_response.py b/test/test_legacy_draft_review_and_validation_response.py index 402b3994..2e737275 100644 --- a/test/test_legacy_draft_review_and_validation_response.py +++ b/test/test_legacy_draft_review_and_validation_response.py @@ -1,227 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_draft_review_and_validation_response import ( - LegacyDraftReviewAndValidationResponse, -) - - -class TestLegacyDraftReviewAndValidationResponse(unittest.TestCase): - """LegacyDraftReviewAndValidationResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacyDraftReviewAndValidationResponse: - """Test LegacyDraftReviewAndValidationResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyDraftReviewAndValidationResponse` - """ - model = LegacyDraftReviewAndValidationResponse() - if include_optional: - return LegacyDraftReviewAndValidationResponse( - draft_response = fireblocks.models.legacy_draft_response.LegacyDraftResponse( - status = '', - rules = [ - fireblocks.models.legacy_policy_rule.LegacyPolicyRule( - operator = '', - operators = fireblocks.models.legacy_policy_rule_operators.LegacyPolicyRule_operators( - wildcard = '*', - users = [ - '' - ], - users_groups = [ - '' - ], - services = [ - '' - ], ), - transaction_type = 'TRANSFER', - designated_signer = '', - designated_signers = fireblocks.models.legacy_policy_rule_designated_signers.LegacyPolicyRule_designatedSigners(), - type = 'TRANSFER', - action = 'ALLOW', - asset = '', - src_type = null, - src_sub_type = null, - src_id = null, - src = fireblocks.models.legacy_policy_rule_src.LegacyPolicyRule_src( - ids = [ - [ - null - ] - ], ), - dst_type = null, - dst_sub_type = null, - dst_id = null, - dst = fireblocks.models.legacy_policy_rule_dst.LegacyPolicyRule_dst(), - dst_address_type = 'WHITELISTED', - amount_currency = 'USD', - amount_scope = 'SINGLE_TX', - amount = null, - period_sec = 1.337, - authorizers = [ - '' - ], - authorizers_count = 1.337, - authorization_groups = fireblocks.models.legacy_policy_rule_authorization_groups.LegacyPolicyRule_authorizationGroups( - logic = 'AND', - allow_operator_as_authorizer = True, - groups = [ - fireblocks.models.legacy_policy_rule_authorization_groups_groups_inner.LegacyPolicyRule_authorizationGroups_groups_inner( - th = 1.337, ) - ], ), - amount_aggregation = fireblocks.models.legacy_policy_rule_amount_aggregation.LegacyPolicyRule_amountAggregation( - src_transfer_peers = 'PER_SINGLE_MATCH', - dst_transfer_peers = 'PER_SINGLE_MATCH', ), - raw_message_signing = fireblocks.models.legacy_policy_rule_raw_message_signing.LegacyPolicyRule_rawMessageSigning( - algorithm = '', - derivation_path = fireblocks.models.legacy_policy_rule_raw_message_signing_derivation_path.LegacyPolicyRule_rawMessageSigning_derivationPath( - path = [ - 1.337 - ], ), ), - apply_for_approve = True, - apply_for_typed_message = True, - external_descriptor = '', ) - ], - draft_id = '', - metadata = fireblocks.models.legacy_policy_metadata.LegacyPolicyMetadata( - edited_by = '', - edited_at = '', - published_by = '', - published_at = '', ), ), - validation = fireblocks.models.legacy_policy_validation.LegacyPolicyValidation( - status = '', - check_result = fireblocks.models.legacy_policy_check_result.LegacyPolicyCheckResult( - errors = 1.337, - results = [ - fireblocks.models.legacy_policy_rule_check_result.LegacyPolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.legacy_policy_rule_error.LegacyPolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], ) - ], ), ) - ) - else: - return LegacyDraftReviewAndValidationResponse( - draft_response = fireblocks.models.legacy_draft_response.LegacyDraftResponse( - status = '', - rules = [ - fireblocks.models.legacy_policy_rule.LegacyPolicyRule( - operator = '', - operators = fireblocks.models.legacy_policy_rule_operators.LegacyPolicyRule_operators( - wildcard = '*', - users = [ - '' - ], - users_groups = [ - '' - ], - services = [ - '' - ], ), - transaction_type = 'TRANSFER', - designated_signer = '', - designated_signers = fireblocks.models.legacy_policy_rule_designated_signers.LegacyPolicyRule_designatedSigners(), - type = 'TRANSFER', - action = 'ALLOW', - asset = '', - src_type = null, - src_sub_type = null, - src_id = null, - src = fireblocks.models.legacy_policy_rule_src.LegacyPolicyRule_src( - ids = [ - [ - null - ] - ], ), - dst_type = null, - dst_sub_type = null, - dst_id = null, - dst = fireblocks.models.legacy_policy_rule_dst.LegacyPolicyRule_dst(), - dst_address_type = 'WHITELISTED', - amount_currency = 'USD', - amount_scope = 'SINGLE_TX', - amount = null, - period_sec = 1.337, - authorizers = [ - '' - ], - authorizers_count = 1.337, - authorization_groups = fireblocks.models.legacy_policy_rule_authorization_groups.LegacyPolicyRule_authorizationGroups( - logic = 'AND', - allow_operator_as_authorizer = True, - groups = [ - fireblocks.models.legacy_policy_rule_authorization_groups_groups_inner.LegacyPolicyRule_authorizationGroups_groups_inner( - th = 1.337, ) - ], ), - amount_aggregation = fireblocks.models.legacy_policy_rule_amount_aggregation.LegacyPolicyRule_amountAggregation( - src_transfer_peers = 'PER_SINGLE_MATCH', - dst_transfer_peers = 'PER_SINGLE_MATCH', ), - raw_message_signing = fireblocks.models.legacy_policy_rule_raw_message_signing.LegacyPolicyRule_rawMessageSigning( - algorithm = '', - derivation_path = fireblocks.models.legacy_policy_rule_raw_message_signing_derivation_path.LegacyPolicyRule_rawMessageSigning_derivationPath( - path = [ - 1.337 - ], ), ), - apply_for_approve = True, - apply_for_typed_message = True, - external_descriptor = '', ) - ], - draft_id = '', - metadata = fireblocks.models.legacy_policy_metadata.LegacyPolicyMetadata( - edited_by = '', - edited_at = '', - published_by = '', - published_at = '', ), ), - validation = fireblocks.models.legacy_policy_validation.LegacyPolicyValidation( - status = '', - check_result = fireblocks.models.legacy_policy_check_result.LegacyPolicyCheckResult( - errors = 1.337, - results = [ - fireblocks.models.legacy_policy_rule_check_result.LegacyPolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.legacy_policy_rule_error.LegacyPolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], ) - ], ), ), - ) - """ - - def testLegacyDraftReviewAndValidationResponse(self): - """Test LegacyDraftReviewAndValidationResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9kcmFmdF9yZXZpZXdfYW5kX3ZhbGlkYXRpb25fcmVzcG9uc2UgaW1wb3J0ICgKICAgIExlZ2FjeURyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdExlZ2FjeURyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkxlZ2FjeURyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBMZWdhY3lEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZToKICAgICAgICAiIiJUZXN0IExlZ2FjeURyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYExlZ2FjeURyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTGVnYWN5RHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBMZWdhY3lEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZSgKICAgICAgICAgICAgICAgIGRyYWZ0X3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X2RyYWZ0X3Jlc3BvbnNlLkxlZ2FjeURyYWZ0UmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJycsIAogICAgICAgICAgICAgICAgICAgIHJ1bGVzID0gWwogICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGUuTGVnYWN5UG9saWN5UnVsZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3JzID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX29wZXJhdG9ycy5MZWdhY3lQb2xpY3lSdWxlX29wZXJhdG9ycygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxkY2FyZCA9ICcqJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzX2dyb3VwcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25fdHlwZSA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzaWduYXRlZF9zaWduZXIgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNpZ25hdGVkX3NpZ25lcnMgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfZGVzaWduYXRlZF9zaWduZXJzLkxlZ2FjeVBvbGljeVJ1bGVfZGVzaWduYXRlZFNpZ25lcnMoKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1RSQU5TRkVSJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUxMT1cnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjX3R5cGUgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY19zdWJfdHlwZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjX2lkID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfc3JjLkxlZ2FjeVBvbGljeVJ1bGVfc3JjKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRzdF90eXBlID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3Rfc3ViX3R5cGUgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRzdF9pZCA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0ID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2RzdC5MZWdhY3lQb2xpY3lSdWxlX2RzdCgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRzdF9hZGRyZXNzX3R5cGUgPSAnV0hJVEVMSVNURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudF9jdXJyZW5jeSA9ICdVU0QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudF9zY29wZSA9ICdTSU5HTEVfVFgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyaW9kX3NlYyA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml6ZXJzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpemVyc19jb3VudCA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml6YXRpb25fZ3JvdXBzID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2F1dGhvcml6YXRpb25fZ3JvdXBzLkxlZ2FjeVBvbGljeVJ1bGVfYXV0aG9yaXphdGlvbkdyb3VwcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpYyA9ICdBTkQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd19vcGVyYXRvcl9hc19hdXRob3JpemVyID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfYXV0aG9yaXphdGlvbl9ncm91cHNfZ3JvdXBzX2lubmVyLkxlZ2FjeVBvbGljeVJ1bGVfYXV0aG9yaXphdGlvbkdyb3Vwc19ncm91cHNfaW5uZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aCA9IDEuMzM3LCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50X2FnZ3JlZ2F0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2Ftb3VudF9hZ2dyZWdhdGlvbi5MZWdhY3lQb2xpY3lSdWxlX2Ftb3VudEFnZ3JlZ2F0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY190cmFuc2Zlcl9wZWVycyA9ICdQRVJfU0lOR0xFX01BVENIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0X3RyYW5zZmVyX3BlZXJzID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhd19tZXNzYWdlX3NpZ25pbmcgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfcmF3X21lc3NhZ2Vfc2lnbmluZy5MZWdhY3lQb2xpY3lSdWxlX3Jhd01lc3NhZ2VTaWduaW5nKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZ29yaXRobSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXJpdmF0aW9uX3BhdGggPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfcmF3X21lc3NhZ2Vfc2lnbmluZ19kZXJpdmF0aW9uX3BhdGguTGVnYWN5UG9saWN5UnVsZV9yYXdNZXNzYWdlU2lnbmluZ19kZXJpdmF0aW9uUGF0aCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMzM3CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGx5X2Zvcl9hcHByb3ZlID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBseV9mb3JfdHlwZWRfbWVzc2FnZSA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfZGVzY3JpcHRvciA9ICcnLCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgIGRyYWZ0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9tZXRhZGF0YS5MZWdhY3lQb2xpY3lNZXRhZGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgZWRpdGVkX2J5ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBlZGl0ZWRfYXQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlZF9ieSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGVkX2F0ID0gJycsICksICksCiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV92YWxpZGF0aW9uLkxlZ2FjeVBvbGljeVZhbGlkYXRpb24oCiAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJycsIAogICAgICAgICAgICAgICAgICAgIGNoZWNrX3Jlc3VsdCA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfY2hlY2tfcmVzdWx0LkxlZ2FjeVBvbGljeUNoZWNrUmVzdWx0KAogICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfY2hlY2tfcmVzdWx0LkxlZ2FjeVBvbGljeVJ1bGVDaGVja1Jlc3VsdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnb2snLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9lcnJvci5MZWdhY3lQb2xpY3lSdWxlRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9tZXNzYWdlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZSA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGVfbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2ZpZWxkID0gJ29wZXJhdG9yJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTGVnYWN5RHJhZnRSZXZpZXdBbmRWYWxpZGF0aW9uUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkcmFmdF9yZXNwb25zZSA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9kcmFmdF9yZXNwb25zZS5MZWdhY3lEcmFmdFJlc3BvbnNlKAogICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBydWxlcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlLkxlZ2FjeVBvbGljeVJ1bGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9ycyA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9vcGVyYXRvcnMuTGVnYWN5UG9saWN5UnVsZV9vcGVyYXRvcnMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsZGNhcmQgPSAnKicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2Vyc19ncm91cHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uX3R5cGUgPSAnVFJBTlNGRVInLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2lnbmF0ZWRfc2lnbmVyID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzaWduYXRlZF9zaWduZXJzID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2Rlc2lnbmF0ZWRfc2lnbmVycy5MZWdhY3lQb2xpY3lSdWxlX2Rlc2lnbmF0ZWRTaWduZXJzKCksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FMTE9XJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY190eXBlID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNfc3ViX3R5cGUgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY19pZCA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX3NyYy5MZWdhY3lQb2xpY3lSdWxlX3NyYygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3RfdHlwZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0X3N1Yl90eXBlID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3RfaWQgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRzdCA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9kc3QuTGVnYWN5UG9saWN5UnVsZV9kc3QoKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3RfYWRkcmVzc190eXBlID0gJ1dISVRFTElTVEVEJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfY3VycmVuY3kgPSAnVVNEJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfc2NvcGUgPSAnU0lOR0xFX1RYJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcmlvZF9zZWMgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpemVycyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXplcnNfY291bnQgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpemF0aW9uX2dyb3VwcyA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hdXRob3JpemF0aW9uX2dyb3Vwcy5MZWdhY3lQb2xpY3lSdWxlX2F1dGhvcml6YXRpb25Hcm91cHMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9naWMgPSAnQU5EJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dfb3BlcmF0b3JfYXNfYXV0aG9yaXplciA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2F1dGhvcml6YXRpb25fZ3JvdXBzX2dyb3Vwc19pbm5lci5MZWdhY3lQb2xpY3lSdWxlX2F1dGhvcml6YXRpb25Hcm91cHNfZ3JvdXBzX2lubmVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGggPSAxLjMzNywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudF9hZ2dyZWdhdGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hbW91bnRfYWdncmVnYXRpb24uTGVnYWN5UG9saWN5UnVsZV9hbW91bnRBZ2dyZWdhdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNfdHJhbnNmZXJfcGVlcnMgPSAnUEVSX1NJTkdMRV9NQVRDSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRzdF90cmFuc2Zlcl9wZWVycyA9ICdQRVJfU0lOR0xFX01BVENIJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByYXdfbWVzc2FnZV9zaWduaW5nID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX3Jhd19tZXNzYWdlX3NpZ25pbmcuTGVnYWN5UG9saWN5UnVsZV9yYXdNZXNzYWdlU2lnbmluZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGdvcml0aG0gPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVyaXZhdGlvbl9wYXRoID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX3Jhd19tZXNzYWdlX3NpZ25pbmdfZGVyaXZhdGlvbl9wYXRoLkxlZ2FjeVBvbGljeVJ1bGVfcmF3TWVzc2FnZVNpZ25pbmdfZGVyaXZhdGlvblBhdGgoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjMzNwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBseV9mb3JfYXBwcm92ZSA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbHlfZm9yX3R5cGVkX21lc3NhZ2UgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX2Rlc2NyaXB0b3IgPSAnJywgKQogICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICBkcmFmdF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfbWV0YWRhdGEuTGVnYWN5UG9saWN5TWV0YWRhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRlZF9ieSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZWRpdGVkX2F0ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZWRfYnkgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlZF9hdCA9ICcnLCApLCApLAogICAgICAgICAgICAgICAgdmFsaWRhdGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfdmFsaWRhdGlvbi5MZWdhY3lQb2xpY3lWYWxpZGF0aW9uKAogICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBjaGVja19yZXN1bHQgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X2NoZWNrX3Jlc3VsdC5MZWdhY3lQb2xpY3lDaGVja1Jlc3VsdCgKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2NoZWNrX3Jlc3VsdC5MZWdhY3lQb2xpY3lSdWxlQ2hlY2tSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ29rJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfZXJyb3IuTGVnYWN5UG9saWN5UnVsZUVycm9yKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfbWVzc2FnZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGUgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlX25hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9maWVsZCA9ICdvcGVyYXRvcicsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RMZWdhY3lEcmFmdFJldmlld0FuZFZhbGlkYXRpb25SZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IExlZ2FjeURyYWZ0UmV2aWV3QW5kVmFsaWRhdGlvblJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_legacy_policy_and_validation_response.py b/test/test_legacy_policy_and_validation_response.py index 3d611f67..3d9c7296 100644 --- a/test/test_legacy_policy_and_validation_response.py +++ b/test/test_legacy_policy_and_validation_response.py @@ -1,223 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_and_validation_response import ( - LegacyPolicyAndValidationResponse, -) - - -class TestLegacyPolicyAndValidationResponse(unittest.TestCase): - """LegacyPolicyAndValidationResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacyPolicyAndValidationResponse: - """Test LegacyPolicyAndValidationResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyPolicyAndValidationResponse` - """ - model = LegacyPolicyAndValidationResponse() - if include_optional: - return LegacyPolicyAndValidationResponse( - policy = fireblocks.models.legacy_policy_response.LegacyPolicyResponse( - rules = [ - fireblocks.models.legacy_policy_rule.LegacyPolicyRule( - operator = '', - operators = fireblocks.models.legacy_policy_rule_operators.LegacyPolicyRule_operators( - wildcard = '*', - users = [ - '' - ], - users_groups = [ - '' - ], - services = [ - '' - ], ), - transaction_type = 'TRANSFER', - designated_signer = '', - designated_signers = fireblocks.models.legacy_policy_rule_designated_signers.LegacyPolicyRule_designatedSigners(), - type = 'TRANSFER', - action = 'ALLOW', - asset = '', - src_type = null, - src_sub_type = null, - src_id = null, - src = fireblocks.models.legacy_policy_rule_src.LegacyPolicyRule_src( - ids = [ - [ - null - ] - ], ), - dst_type = null, - dst_sub_type = null, - dst_id = null, - dst = fireblocks.models.legacy_policy_rule_dst.LegacyPolicyRule_dst(), - dst_address_type = 'WHITELISTED', - amount_currency = 'USD', - amount_scope = 'SINGLE_TX', - amount = null, - period_sec = 1.337, - authorizers = [ - '' - ], - authorizers_count = 1.337, - authorization_groups = fireblocks.models.legacy_policy_rule_authorization_groups.LegacyPolicyRule_authorizationGroups( - logic = 'AND', - allow_operator_as_authorizer = True, - groups = [ - fireblocks.models.legacy_policy_rule_authorization_groups_groups_inner.LegacyPolicyRule_authorizationGroups_groups_inner( - th = 1.337, ) - ], ), - amount_aggregation = fireblocks.models.legacy_policy_rule_amount_aggregation.LegacyPolicyRule_amountAggregation( - src_transfer_peers = 'PER_SINGLE_MATCH', - dst_transfer_peers = 'PER_SINGLE_MATCH', ), - raw_message_signing = fireblocks.models.legacy_policy_rule_raw_message_signing.LegacyPolicyRule_rawMessageSigning( - algorithm = '', - derivation_path = fireblocks.models.legacy_policy_rule_raw_message_signing_derivation_path.LegacyPolicyRule_rawMessageSigning_derivationPath( - path = [ - 1.337 - ], ), ), - apply_for_approve = True, - apply_for_typed_message = True, - external_descriptor = '', ) - ], - metadata = fireblocks.models.legacy_policy_metadata.LegacyPolicyMetadata( - edited_by = '', - edited_at = '', - published_by = '', - published_at = '', ), ), - validation = fireblocks.models.legacy_policy_validation.LegacyPolicyValidation( - status = '', - check_result = fireblocks.models.legacy_policy_check_result.LegacyPolicyCheckResult( - errors = 1.337, - results = [ - fireblocks.models.legacy_policy_rule_check_result.LegacyPolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.legacy_policy_rule_error.LegacyPolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], ) - ], ), ) - ) - else: - return LegacyPolicyAndValidationResponse( - policy = fireblocks.models.legacy_policy_response.LegacyPolicyResponse( - rules = [ - fireblocks.models.legacy_policy_rule.LegacyPolicyRule( - operator = '', - operators = fireblocks.models.legacy_policy_rule_operators.LegacyPolicyRule_operators( - wildcard = '*', - users = [ - '' - ], - users_groups = [ - '' - ], - services = [ - '' - ], ), - transaction_type = 'TRANSFER', - designated_signer = '', - designated_signers = fireblocks.models.legacy_policy_rule_designated_signers.LegacyPolicyRule_designatedSigners(), - type = 'TRANSFER', - action = 'ALLOW', - asset = '', - src_type = null, - src_sub_type = null, - src_id = null, - src = fireblocks.models.legacy_policy_rule_src.LegacyPolicyRule_src( - ids = [ - [ - null - ] - ], ), - dst_type = null, - dst_sub_type = null, - dst_id = null, - dst = fireblocks.models.legacy_policy_rule_dst.LegacyPolicyRule_dst(), - dst_address_type = 'WHITELISTED', - amount_currency = 'USD', - amount_scope = 'SINGLE_TX', - amount = null, - period_sec = 1.337, - authorizers = [ - '' - ], - authorizers_count = 1.337, - authorization_groups = fireblocks.models.legacy_policy_rule_authorization_groups.LegacyPolicyRule_authorizationGroups( - logic = 'AND', - allow_operator_as_authorizer = True, - groups = [ - fireblocks.models.legacy_policy_rule_authorization_groups_groups_inner.LegacyPolicyRule_authorizationGroups_groups_inner( - th = 1.337, ) - ], ), - amount_aggregation = fireblocks.models.legacy_policy_rule_amount_aggregation.LegacyPolicyRule_amountAggregation( - src_transfer_peers = 'PER_SINGLE_MATCH', - dst_transfer_peers = 'PER_SINGLE_MATCH', ), - raw_message_signing = fireblocks.models.legacy_policy_rule_raw_message_signing.LegacyPolicyRule_rawMessageSigning( - algorithm = '', - derivation_path = fireblocks.models.legacy_policy_rule_raw_message_signing_derivation_path.LegacyPolicyRule_rawMessageSigning_derivationPath( - path = [ - 1.337 - ], ), ), - apply_for_approve = True, - apply_for_typed_message = True, - external_descriptor = '', ) - ], - metadata = fireblocks.models.legacy_policy_metadata.LegacyPolicyMetadata( - edited_by = '', - edited_at = '', - published_by = '', - published_at = '', ), ), - validation = fireblocks.models.legacy_policy_validation.LegacyPolicyValidation( - status = '', - check_result = fireblocks.models.legacy_policy_check_result.LegacyPolicyCheckResult( - errors = 1.337, - results = [ - fireblocks.models.legacy_policy_rule_check_result.LegacyPolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.legacy_policy_rule_error.LegacyPolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], ) - ], ), ), - ) - """ - - def testLegacyPolicyAndValidationResponse(self): - """Test LegacyPolicyAndValidationResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfYW5kX3ZhbGlkYXRpb25fcmVzcG9uc2UgaW1wb3J0ICgKICAgIExlZ2FjeVBvbGljeUFuZFZhbGlkYXRpb25SZXNwb25zZSwKKQoKCmNsYXNzIFRlc3RMZWdhY3lQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTGVnYWN5UG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBMZWdhY3lQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBMZWdhY3lQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTGVnYWN5UG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTGVnYWN5UG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTGVnYWN5UG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlKAogICAgICAgICAgICAgICAgcG9saWN5ID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9yZXNwb25zZS5MZWdhY3lQb2xpY3lSZXNwb25zZSgKICAgICAgICAgICAgICAgICAgICBydWxlcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlLkxlZ2FjeVBvbGljeVJ1bGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9ycyA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9vcGVyYXRvcnMuTGVnYWN5UG9saWN5UnVsZV9vcGVyYXRvcnMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsZGNhcmQgPSAnKicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2Vyc19ncm91cHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uX3R5cGUgPSAnVFJBTlNGRVInLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2lnbmF0ZWRfc2lnbmVyID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzaWduYXRlZF9zaWduZXJzID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2Rlc2lnbmF0ZWRfc2lnbmVycy5MZWdhY3lQb2xpY3lSdWxlX2Rlc2lnbmF0ZWRTaWduZXJzKCksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FMTE9XJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY190eXBlID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNfc3ViX3R5cGUgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY19pZCA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX3NyYy5MZWdhY3lQb2xpY3lSdWxlX3NyYygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3RfdHlwZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0X3N1Yl90eXBlID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3RfaWQgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRzdCA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9kc3QuTGVnYWN5UG9saWN5UnVsZV9kc3QoKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3RfYWRkcmVzc190eXBlID0gJ1dISVRFTElTVEVEJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfY3VycmVuY3kgPSAnVVNEJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfc2NvcGUgPSAnU0lOR0xFX1RYJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcmlvZF9zZWMgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpemVycyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXplcnNfY291bnQgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpemF0aW9uX2dyb3VwcyA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hdXRob3JpemF0aW9uX2dyb3Vwcy5MZWdhY3lQb2xpY3lSdWxlX2F1dGhvcml6YXRpb25Hcm91cHMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9naWMgPSAnQU5EJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dfb3BlcmF0b3JfYXNfYXV0aG9yaXplciA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2F1dGhvcml6YXRpb25fZ3JvdXBzX2dyb3Vwc19pbm5lci5MZWdhY3lQb2xpY3lSdWxlX2F1dGhvcml6YXRpb25Hcm91cHNfZ3JvdXBzX2lubmVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGggPSAxLjMzNywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudF9hZ2dyZWdhdGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hbW91bnRfYWdncmVnYXRpb24uTGVnYWN5UG9saWN5UnVsZV9hbW91bnRBZ2dyZWdhdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNfdHJhbnNmZXJfcGVlcnMgPSAnUEVSX1NJTkdMRV9NQVRDSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRzdF90cmFuc2Zlcl9wZWVycyA9ICdQRVJfU0lOR0xFX01BVENIJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByYXdfbWVzc2FnZV9zaWduaW5nID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX3Jhd19tZXNzYWdlX3NpZ25pbmcuTGVnYWN5UG9saWN5UnVsZV9yYXdNZXNzYWdlU2lnbmluZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGdvcml0aG0gPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVyaXZhdGlvbl9wYXRoID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX3Jhd19tZXNzYWdlX3NpZ25pbmdfZGVyaXZhdGlvbl9wYXRoLkxlZ2FjeVBvbGljeVJ1bGVfcmF3TWVzc2FnZVNpZ25pbmdfZGVyaXZhdGlvblBhdGgoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjMzNwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBseV9mb3JfYXBwcm92ZSA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbHlfZm9yX3R5cGVkX21lc3NhZ2UgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX2Rlc2NyaXB0b3IgPSAnJywgKQogICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfbWV0YWRhdGEuTGVnYWN5UG9saWN5TWV0YWRhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRlZF9ieSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZWRpdGVkX2F0ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZWRfYnkgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlZF9hdCA9ICcnLCApLCApLAogICAgICAgICAgICAgICAgdmFsaWRhdGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfdmFsaWRhdGlvbi5MZWdhY3lQb2xpY3lWYWxpZGF0aW9uKAogICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBjaGVja19yZXN1bHQgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X2NoZWNrX3Jlc3VsdC5MZWdhY3lQb2xpY3lDaGVja1Jlc3VsdCgKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2NoZWNrX3Jlc3VsdC5MZWdhY3lQb2xpY3lSdWxlQ2hlY2tSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ29rJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfZXJyb3IuTGVnYWN5UG9saWN5UnVsZUVycm9yKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfbWVzc2FnZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGUgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlX25hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9maWVsZCA9ICdvcGVyYXRvcicsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIExlZ2FjeVBvbGljeUFuZFZhbGlkYXRpb25SZXNwb25zZSgKICAgICAgICAgICAgICAgIHBvbGljeSA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcmVzcG9uc2UuTGVnYWN5UG9saWN5UmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgcnVsZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZS5MZWdhY3lQb2xpY3lSdWxlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcnMgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfb3BlcmF0b3JzLkxlZ2FjeVBvbGljeVJ1bGVfb3BlcmF0b3JzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGRjYXJkID0gJyonLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VycyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcnNfZ3JvdXBzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbl90eXBlID0gJ1RSQU5TRkVSJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNpZ25hdGVkX3NpZ25lciA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2lnbmF0ZWRfc2lnbmVycyA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9kZXNpZ25hdGVkX3NpZ25lcnMuTGVnYWN5UG9saWN5UnVsZV9kZXNpZ25hdGVkU2lnbmVycygpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVFJBTlNGRVInLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdBTExPVycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNfdHlwZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjX3N1Yl90eXBlID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNfaWQgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYyA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9zcmMuTGVnYWN5UG9saWN5UnVsZV9zcmMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0X3R5cGUgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRzdF9zdWJfdHlwZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0X2lkID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3QgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfZHN0LkxlZ2FjeVBvbGljeVJ1bGVfZHN0KCksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0X2FkZHJlc3NfdHlwZSA9ICdXSElURUxJU1RFRCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50X2N1cnJlbmN5ID0gJ1VTRCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50X3Njb3BlID0gJ1NJTkdMRV9UWCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJpb2Rfc2VjID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXplcnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml6ZXJzX2NvdW50ID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXphdGlvbl9ncm91cHMgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfYXV0aG9yaXphdGlvbl9ncm91cHMuTGVnYWN5UG9saWN5UnVsZV9hdXRob3JpemF0aW9uR3JvdXBzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2ljID0gJ0FORCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93X29wZXJhdG9yX2FzX2F1dGhvcml6ZXIgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hdXRob3JpemF0aW9uX2dyb3Vwc19ncm91cHNfaW5uZXIuTGVnYWN5UG9saWN5UnVsZV9hdXRob3JpemF0aW9uR3JvdXBzX2dyb3Vwc19pbm5lcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoID0gMS4zMzcsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfYWdncmVnYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfYW1vdW50X2FnZ3JlZ2F0aW9uLkxlZ2FjeVBvbGljeVJ1bGVfYW1vdW50QWdncmVnYXRpb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjX3RyYW5zZmVyX3BlZXJzID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3RfdHJhbnNmZXJfcGVlcnMgPSAnUEVSX1NJTkdMRV9NQVRDSCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmF3X21lc3NhZ2Vfc2lnbmluZyA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9yYXdfbWVzc2FnZV9zaWduaW5nLkxlZ2FjeVBvbGljeVJ1bGVfcmF3TWVzc2FnZVNpZ25pbmcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxnb3JpdGhtID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcml2YXRpb25fcGF0aCA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9yYXdfbWVzc2FnZV9zaWduaW5nX2Rlcml2YXRpb25fcGF0aC5MZWdhY3lQb2xpY3lSdWxlX3Jhd01lc3NhZ2VTaWduaW5nX2Rlcml2YXRpb25QYXRoKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4zMzcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbHlfZm9yX2FwcHJvdmUgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGx5X2Zvcl90eXBlZF9tZXNzYWdlID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlcm5hbF9kZXNjcmlwdG9yID0gJycsICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X21ldGFkYXRhLkxlZ2FjeVBvbGljeU1ldGFkYXRhKAogICAgICAgICAgICAgICAgICAgICAgICBlZGl0ZWRfYnkgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRlZF9hdCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGVkX2J5ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZWRfYXQgPSAnJywgKSwgKSwKICAgICAgICAgICAgICAgIHZhbGlkYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3ZhbGlkYXRpb24uTGVnYWN5UG9saWN5VmFsaWRhdGlvbigKICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgY2hlY2tfcmVzdWx0ID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9jaGVja19yZXN1bHQuTGVnYWN5UG9saWN5Q2hlY2tSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0cyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9jaGVja19yZXN1bHQuTGVnYWN5UG9saWN5UnVsZUNoZWNrUmVzdWx0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdvaycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2Vycm9yLkxlZ2FjeVBvbGljeVJ1bGVFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX21lc3NhZ2UgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZV9uYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfZmllbGQgPSAnb3BlcmF0b3InLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksICksCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TGVnYWN5UG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgTGVnYWN5UG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_legacy_policy_check_result.py b/test/test_legacy_policy_check_result.py index fc175568..ce95cf80 100644 --- a/test/test_legacy_policy_check_result.py +++ b/test/test_legacy_policy_check_result.py @@ -1,79 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_check_result import LegacyPolicyCheckResult - - -class TestLegacyPolicyCheckResult(unittest.TestCase): - """LegacyPolicyCheckResult unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacyPolicyCheckResult: - """Test LegacyPolicyCheckResult - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyPolicyCheckResult` - """ - model = LegacyPolicyCheckResult() - if include_optional: - return LegacyPolicyCheckResult( - errors = 1.337, - results = [ - fireblocks.models.legacy_policy_rule_check_result.LegacyPolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.legacy_policy_rule_error.LegacyPolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], ) - ] - ) - else: - return LegacyPolicyCheckResult( - errors = 1.337, - results = [ - fireblocks.models.legacy_policy_rule_check_result.LegacyPolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.legacy_policy_rule_error.LegacyPolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], ) - ], - ) - """ - - def testLegacyPolicyCheckResult(self): - """Test LegacyPolicyCheckResult""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfY2hlY2tfcmVzdWx0IGltcG9ydCBMZWdhY3lQb2xpY3lDaGVja1Jlc3VsdAoKCmNsYXNzIFRlc3RMZWdhY3lQb2xpY3lDaGVja1Jlc3VsdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJMZWdhY3lQb2xpY3lDaGVja1Jlc3VsdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gTGVnYWN5UG9saWN5Q2hlY2tSZXN1bHQ6CiAgICAgICAgIiIiVGVzdCBMZWdhY3lQb2xpY3lDaGVja1Jlc3VsdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBMZWdhY3lQb2xpY3lDaGVja1Jlc3VsdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IExlZ2FjeVBvbGljeUNoZWNrUmVzdWx0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTGVnYWN5UG9saWN5Q2hlY2tSZXN1bHQoCiAgICAgICAgICAgICAgICBlcnJvcnMgPSAxLjMzNywKICAgICAgICAgICAgICAgIHJlc3VsdHMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2NoZWNrX3Jlc3VsdC5MZWdhY3lQb2xpY3lSdWxlQ2hlY2tSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnb2snLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2Vycm9yLkxlZ2FjeVBvbGljeVJ1bGVFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9tZXNzYWdlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGUgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZV9uYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2ZpZWxkID0gJ29wZXJhdG9yJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBMZWdhY3lQb2xpY3lDaGVja1Jlc3VsdCgKICAgICAgICAgICAgICAgIGVycm9ycyA9IDEuMzM3LAogICAgICAgICAgICAgICAgcmVzdWx0cyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfY2hlY2tfcmVzdWx0LkxlZ2FjeVBvbGljeVJ1bGVDaGVja1Jlc3VsdCgKICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdvaycsIAogICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfZXJyb3IuTGVnYWN5UG9saWN5UnVsZUVycm9yKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX21lc3NhZ2UgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZSA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlX25hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfZmllbGQgPSAnb3BlcmF0b3InLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RMZWdhY3lQb2xpY3lDaGVja1Jlc3VsdChzZWxmKToKICAgICAgICAiIiJUZXN0IExlZ2FjeVBvbGljeUNoZWNrUmVzdWx0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_legacy_policy_metadata.py b/test/test_legacy_policy_metadata.py index 464f91a0..1b442e0a 100644 --- a/test/test_legacy_policy_metadata.py +++ b/test/test_legacy_policy_metadata.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_metadata import LegacyPolicyMetadata - - -class TestLegacyPolicyMetadata(unittest.TestCase): - """LegacyPolicyMetadata unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacyPolicyMetadata: - """Test LegacyPolicyMetadata - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyPolicyMetadata` - """ - model = LegacyPolicyMetadata() - if include_optional: - return LegacyPolicyMetadata( - edited_by = '', - edited_at = '', - published_by = '', - published_at = '' - ) - else: - return LegacyPolicyMetadata( - ) - """ - - def testLegacyPolicyMetadata(self): - """Test LegacyPolicyMetadata""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfbWV0YWRhdGEgaW1wb3J0IExlZ2FjeVBvbGljeU1ldGFkYXRhCgoKY2xhc3MgVGVzdExlZ2FjeVBvbGljeU1ldGFkYXRhKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkxlZ2FjeVBvbGljeU1ldGFkYXRhIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBMZWdhY3lQb2xpY3lNZXRhZGF0YToKICAgICAgICAiIiJUZXN0IExlZ2FjeVBvbGljeU1ldGFkYXRhCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYExlZ2FjeVBvbGljeU1ldGFkYXRhYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTGVnYWN5UG9saWN5TWV0YWRhdGEoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBMZWdhY3lQb2xpY3lNZXRhZGF0YSgKICAgICAgICAgICAgICAgIGVkaXRlZF9ieSA9ICcnLAogICAgICAgICAgICAgICAgZWRpdGVkX2F0ID0gJycsCiAgICAgICAgICAgICAgICBwdWJsaXNoZWRfYnkgPSAnJywKICAgICAgICAgICAgICAgIHB1Ymxpc2hlZF9hdCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTGVnYWN5UG9saWN5TWV0YWRhdGEoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TGVnYWN5UG9saWN5TWV0YWRhdGEoc2VsZik6CiAgICAgICAgIiIiVGVzdCBMZWdhY3lQb2xpY3lNZXRhZGF0YSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_legacy_policy_response.py b/test/test_legacy_policy_response.py index 29d339f9..bd8a119e 100644 --- a/test/test_legacy_policy_response.py +++ b/test/test_legacy_policy_response.py @@ -1,187 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_response import LegacyPolicyResponse - - -class TestLegacyPolicyResponse(unittest.TestCase): - """LegacyPolicyResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacyPolicyResponse: - """Test LegacyPolicyResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyPolicyResponse` - """ - model = LegacyPolicyResponse() - if include_optional: - return LegacyPolicyResponse( - rules = [ - fireblocks.models.legacy_policy_rule.LegacyPolicyRule( - operator = '', - operators = fireblocks.models.legacy_policy_rule_operators.LegacyPolicyRule_operators( - wildcard = '*', - users = [ - '' - ], - users_groups = [ - '' - ], - services = [ - '' - ], ), - transaction_type = 'TRANSFER', - designated_signer = '', - designated_signers = fireblocks.models.legacy_policy_rule_designated_signers.LegacyPolicyRule_designatedSigners(), - type = 'TRANSFER', - action = 'ALLOW', - asset = '', - src_type = null, - src_sub_type = null, - src_id = null, - src = fireblocks.models.legacy_policy_rule_src.LegacyPolicyRule_src( - ids = [ - [ - null - ] - ], ), - dst_type = null, - dst_sub_type = null, - dst_id = null, - dst = fireblocks.models.legacy_policy_rule_dst.LegacyPolicyRule_dst(), - dst_address_type = 'WHITELISTED', - amount_currency = 'USD', - amount_scope = 'SINGLE_TX', - amount = null, - period_sec = 1.337, - authorizers = [ - '' - ], - authorizers_count = 1.337, - authorization_groups = fireblocks.models.legacy_policy_rule_authorization_groups.LegacyPolicyRule_authorizationGroups( - logic = 'AND', - allow_operator_as_authorizer = True, - groups = [ - fireblocks.models.legacy_policy_rule_authorization_groups_groups_inner.LegacyPolicyRule_authorizationGroups_groups_inner( - th = 1.337, ) - ], ), - amount_aggregation = fireblocks.models.legacy_policy_rule_amount_aggregation.LegacyPolicyRule_amountAggregation( - src_transfer_peers = 'PER_SINGLE_MATCH', - dst_transfer_peers = 'PER_SINGLE_MATCH', ), - raw_message_signing = fireblocks.models.legacy_policy_rule_raw_message_signing.LegacyPolicyRule_rawMessageSigning( - algorithm = '', - derivation_path = fireblocks.models.legacy_policy_rule_raw_message_signing_derivation_path.LegacyPolicyRule_rawMessageSigning_derivationPath( - path = [ - 1.337 - ], ), ), - apply_for_approve = True, - apply_for_typed_message = True, - external_descriptor = '', ) - ], - metadata = fireblocks.models.legacy_policy_metadata.LegacyPolicyMetadata( - edited_by = '', - edited_at = '', - published_by = '', - published_at = '', ) - ) - else: - return LegacyPolicyResponse( - rules = [ - fireblocks.models.legacy_policy_rule.LegacyPolicyRule( - operator = '', - operators = fireblocks.models.legacy_policy_rule_operators.LegacyPolicyRule_operators( - wildcard = '*', - users = [ - '' - ], - users_groups = [ - '' - ], - services = [ - '' - ], ), - transaction_type = 'TRANSFER', - designated_signer = '', - designated_signers = fireblocks.models.legacy_policy_rule_designated_signers.LegacyPolicyRule_designatedSigners(), - type = 'TRANSFER', - action = 'ALLOW', - asset = '', - src_type = null, - src_sub_type = null, - src_id = null, - src = fireblocks.models.legacy_policy_rule_src.LegacyPolicyRule_src( - ids = [ - [ - null - ] - ], ), - dst_type = null, - dst_sub_type = null, - dst_id = null, - dst = fireblocks.models.legacy_policy_rule_dst.LegacyPolicyRule_dst(), - dst_address_type = 'WHITELISTED', - amount_currency = 'USD', - amount_scope = 'SINGLE_TX', - amount = null, - period_sec = 1.337, - authorizers = [ - '' - ], - authorizers_count = 1.337, - authorization_groups = fireblocks.models.legacy_policy_rule_authorization_groups.LegacyPolicyRule_authorizationGroups( - logic = 'AND', - allow_operator_as_authorizer = True, - groups = [ - fireblocks.models.legacy_policy_rule_authorization_groups_groups_inner.LegacyPolicyRule_authorizationGroups_groups_inner( - th = 1.337, ) - ], ), - amount_aggregation = fireblocks.models.legacy_policy_rule_amount_aggregation.LegacyPolicyRule_amountAggregation( - src_transfer_peers = 'PER_SINGLE_MATCH', - dst_transfer_peers = 'PER_SINGLE_MATCH', ), - raw_message_signing = fireblocks.models.legacy_policy_rule_raw_message_signing.LegacyPolicyRule_rawMessageSigning( - algorithm = '', - derivation_path = fireblocks.models.legacy_policy_rule_raw_message_signing_derivation_path.LegacyPolicyRule_rawMessageSigning_derivationPath( - path = [ - 1.337 - ], ), ), - apply_for_approve = True, - apply_for_typed_message = True, - external_descriptor = '', ) - ], - metadata = fireblocks.models.legacy_policy_metadata.LegacyPolicyMetadata( - edited_by = '', - edited_at = '', - published_by = '', - published_at = '', ), - ) - """ - - def testLegacyPolicyResponse(self): - """Test LegacyPolicyResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcmVzcG9uc2UgaW1wb3J0IExlZ2FjeVBvbGljeVJlc3BvbnNlCgoKY2xhc3MgVGVzdExlZ2FjeVBvbGljeVJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkxlZ2FjeVBvbGljeVJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBMZWdhY3lQb2xpY3lSZXNwb25zZToKICAgICAgICAiIiJUZXN0IExlZ2FjeVBvbGljeVJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYExlZ2FjeVBvbGljeVJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTGVnYWN5UG9saWN5UmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBMZWdhY3lQb2xpY3lSZXNwb25zZSgKICAgICAgICAgICAgICAgIHJ1bGVzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZS5MZWdhY3lQb2xpY3lSdWxlKAogICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3JzID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX29wZXJhdG9ycy5MZWdhY3lQb2xpY3lSdWxlX29wZXJhdG9ycygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGRjYXJkID0gJyonLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2Vyc19ncm91cHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uX3R5cGUgPSAnVFJBTlNGRVInLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzaWduYXRlZF9zaWduZXIgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2lnbmF0ZWRfc2lnbmVycyA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9kZXNpZ25hdGVkX3NpZ25lcnMuTGVnYWN5UG9saWN5UnVsZV9kZXNpZ25hdGVkU2lnbmVycygpLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUxMT1cnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNyY190eXBlID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIHNyY19zdWJfdHlwZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBzcmNfaWQgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3JjID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX3NyYy5MZWdhY3lQb2xpY3lSdWxlX3NyYygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksIAogICAgICAgICAgICAgICAgICAgICAgICBkc3RfdHlwZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBkc3Rfc3ViX3R5cGUgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgZHN0X2lkID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRzdCA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9kc3QuTGVnYWN5UG9saWN5UnVsZV9kc3QoKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRzdF9hZGRyZXNzX3R5cGUgPSAnV0hJVEVMSVNURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50X2N1cnJlbmN5ID0gJ1VTRCcsIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfc2NvcGUgPSAnU0lOR0xFX1RYJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBwZXJpb2Rfc2VjID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpemVycyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXplcnNfY291bnQgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml6YXRpb25fZ3JvdXBzID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2F1dGhvcml6YXRpb25fZ3JvdXBzLkxlZ2FjeVBvbGljeVJ1bGVfYXV0aG9yaXphdGlvbkdyb3VwcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2ljID0gJ0FORCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dfb3BlcmF0b3JfYXNfYXV0aG9yaXplciA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hdXRob3JpemF0aW9uX2dyb3Vwc19ncm91cHNfaW5uZXIuTGVnYWN5UG9saWN5UnVsZV9hdXRob3JpemF0aW9uR3JvdXBzX2dyb3Vwc19pbm5lcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGggPSAxLjMzNywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfYWdncmVnYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfYW1vdW50X2FnZ3JlZ2F0aW9uLkxlZ2FjeVBvbGljeVJ1bGVfYW1vdW50QWdncmVnYXRpb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNfdHJhbnNmZXJfcGVlcnMgPSAnUEVSX1NJTkdMRV9NQVRDSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0X3RyYW5zZmVyX3BlZXJzID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgcmF3X21lc3NhZ2Vfc2lnbmluZyA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9yYXdfbWVzc2FnZV9zaWduaW5nLkxlZ2FjeVBvbGljeVJ1bGVfcmF3TWVzc2FnZVNpZ25pbmcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGdvcml0aG0gPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXJpdmF0aW9uX3BhdGggPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfcmF3X21lc3NhZ2Vfc2lnbmluZ19kZXJpdmF0aW9uX3BhdGguTGVnYWN5UG9saWN5UnVsZV9yYXdNZXNzYWdlU2lnbmluZ19kZXJpdmF0aW9uUGF0aCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjMzNwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXBwbHlfZm9yX2FwcHJvdmUgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXBwbHlfZm9yX3R5cGVkX21lc3NhZ2UgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfZGVzY3JpcHRvciA9ICcnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIG1ldGFkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9tZXRhZGF0YS5MZWdhY3lQb2xpY3lNZXRhZGF0YSgKICAgICAgICAgICAgICAgICAgICBlZGl0ZWRfYnkgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgZWRpdGVkX2F0ID0gJycsIAogICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlZF9ieSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZWRfYXQgPSAnJywgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIExlZ2FjeVBvbGljeVJlc3BvbnNlKAogICAgICAgICAgICAgICAgcnVsZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlLkxlZ2FjeVBvbGljeVJ1bGUoCiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcnMgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfb3BlcmF0b3JzLkxlZ2FjeVBvbGljeVJ1bGVfb3BlcmF0b3JzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsZGNhcmQgPSAnKicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzX2dyb3VwcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25fdHlwZSA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNpZ25hdGVkX3NpZ25lciA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzaWduYXRlZF9zaWduZXJzID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2Rlc2lnbmF0ZWRfc2lnbmVycy5MZWdhY3lQb2xpY3lSdWxlX2Rlc2lnbmF0ZWRTaWduZXJzKCksIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1RSQU5TRkVSJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdBTExPVycsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3JjX3R5cGUgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3JjX3N1Yl90eXBlID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIHNyY19pZCA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBzcmMgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfc3JjLkxlZ2FjeVBvbGljeVJ1bGVfc3JjKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRzdF90eXBlID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRzdF9zdWJfdHlwZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBkc3RfaWQgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgZHN0ID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2RzdC5MZWdhY3lQb2xpY3lSdWxlX2RzdCgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgZHN0X2FkZHJlc3NfdHlwZSA9ICdXSElURUxJU1RFRCcsIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfY3VycmVuY3kgPSAnVVNEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudF9zY29wZSA9ICdTSU5HTEVfVFgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmlvZF9zZWMgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml6ZXJzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpemVyc19jb3VudCA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXphdGlvbl9ncm91cHMgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfYXV0aG9yaXphdGlvbl9ncm91cHMuTGVnYWN5UG9saWN5UnVsZV9hdXRob3JpemF0aW9uR3JvdXBzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9naWMgPSAnQU5EJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd19vcGVyYXRvcl9hc19hdXRob3JpemVyID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2F1dGhvcml6YXRpb25fZ3JvdXBzX2dyb3Vwc19pbm5lci5MZWdhY3lQb2xpY3lSdWxlX2F1dGhvcml6YXRpb25Hcm91cHNfZ3JvdXBzX2lubmVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aCA9IDEuMzM3LCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudF9hZ2dyZWdhdGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hbW91bnRfYWdncmVnYXRpb24uTGVnYWN5UG9saWN5UnVsZV9hbW91bnRBZ2dyZWdhdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY190cmFuc2Zlcl9wZWVycyA9ICdQRVJfU0lOR0xFX01BVENIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3RfdHJhbnNmZXJfcGVlcnMgPSAnUEVSX1NJTkdMRV9NQVRDSCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICByYXdfbWVzc2FnZV9zaWduaW5nID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX3Jhd19tZXNzYWdlX3NpZ25pbmcuTGVnYWN5UG9saWN5UnVsZV9yYXdNZXNzYWdlU2lnbmluZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZ29yaXRobSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcml2YXRpb25fcGF0aCA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9yYXdfbWVzc2FnZV9zaWduaW5nX2Rlcml2YXRpb25fcGF0aC5MZWdhY3lQb2xpY3lSdWxlX3Jhd01lc3NhZ2VTaWduaW5nX2Rlcml2YXRpb25QYXRoKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMzM3CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksICksIAogICAgICAgICAgICAgICAgICAgICAgICBhcHBseV9mb3JfYXBwcm92ZSA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICBhcHBseV9mb3JfdHlwZWRfbWVzc2FnZSA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICBleHRlcm5hbF9kZXNjcmlwdG9yID0gJycsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgbWV0YWRhdGEgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X21ldGFkYXRhLkxlZ2FjeVBvbGljeU1ldGFkYXRhKAogICAgICAgICAgICAgICAgICAgIGVkaXRlZF9ieSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBlZGl0ZWRfYXQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgcHVibGlzaGVkX2J5ID0gJycsIAogICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlZF9hdCA9ICcnLCApLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdExlZ2FjeVBvbGljeVJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgTGVnYWN5UG9saWN5UmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_legacy_policy_rule.py b/test/test_legacy_policy_rule.py index a10e5a0b..b48a995a 100644 --- a/test/test_legacy_policy_rule.py +++ b/test/test_legacy_policy_rule.py @@ -1,137 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_rule import LegacyPolicyRule - - -class TestLegacyPolicyRule(unittest.TestCase): - """LegacyPolicyRule unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacyPolicyRule: - """Test LegacyPolicyRule - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyPolicyRule` - """ - model = LegacyPolicyRule() - if include_optional: - return LegacyPolicyRule( - operator = '', - operators = fireblocks.models.legacy_policy_rule_operators.LegacyPolicyRule_operators( - wildcard = '*', - users = [ - '' - ], - users_groups = [ - '' - ], - services = [ - '' - ], ), - transaction_type = 'TRANSFER', - designated_signer = '', - designated_signers = fireblocks.models.legacy_policy_rule_designated_signers.LegacyPolicyRule_designatedSigners( - users = [ - '' - ], - users_groups = [ - '' - ], ), - type = 'TRANSFER', - action = 'ALLOW', - asset = '', - src_type = 'EXCHANGE', - src_sub_type = 'EXTERNAL', - src_id = '', - src = fireblocks.models.legacy_policy_rule_src.LegacyPolicyRule_src( - ids = [ - [ - null - ] - ], ), - dst_type = 'EXCHANGE', - dst_sub_type = 'EXTERNAL', - dst_id = '', - dst = fireblocks.models.legacy_policy_rule_dst.LegacyPolicyRule_dst( - ids = [ - [ - null - ] - ], ), - dst_address_type = 'WHITELISTED', - amount_currency = 'USD', - amount_scope = 'SINGLE_TX', - amount = None, - period_sec = 1.337, - authorizers = [ - '' - ], - authorizers_count = 1.337, - authorization_groups = fireblocks.models.legacy_policy_rule_authorization_groups.LegacyPolicyRule_authorizationGroups( - logic = 'AND', - allow_operator_as_authorizer = True, - groups = [ - fireblocks.models.legacy_policy_rule_authorization_groups_groups_inner.LegacyPolicyRule_authorizationGroups_groups_inner( - users = [ - '' - ], - users_groups = [ - '' - ], - th = 1.337, ) - ], ), - amount_aggregation = fireblocks.models.legacy_policy_rule_amount_aggregation.LegacyPolicyRule_amountAggregation( - operators = 'PER_SINGLE_MATCH', - src_transfer_peers = 'PER_SINGLE_MATCH', - dst_transfer_peers = 'PER_SINGLE_MATCH', ), - raw_message_signing = fireblocks.models.legacy_policy_rule_raw_message_signing.LegacyPolicyRule_rawMessageSigning( - algorithm = '', - derivation_path = fireblocks.models.legacy_policy_rule_raw_message_signing_derivation_path.LegacyPolicyRule_rawMessageSigning_derivationPath( - path = [ - 1.337 - ], ), ), - apply_for_approve = True, - apply_for_typed_message = True, - external_descriptor = '' - ) - else: - return LegacyPolicyRule( - type = 'TRANSFER', - action = 'ALLOW', - asset = '', - amount_currency = 'USD', - amount_scope = 'SINGLE_TX', - amount = None, - period_sec = 1.337, - ) - """ - - def testLegacyPolicyRule(self): - """Test LegacyPolicyRule""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZSBpbXBvcnQgTGVnYWN5UG9saWN5UnVsZQoKCmNsYXNzIFRlc3RMZWdhY3lQb2xpY3lSdWxlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkxlZ2FjeVBvbGljeVJ1bGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IExlZ2FjeVBvbGljeVJ1bGU6CiAgICAgICAgIiIiVGVzdCBMZWdhY3lQb2xpY3lSdWxlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYExlZ2FjeVBvbGljeVJ1bGVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBMZWdhY3lQb2xpY3lSdWxlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTGVnYWN5UG9saWN5UnVsZSgKICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gJycsCiAgICAgICAgICAgICAgICBvcGVyYXRvcnMgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfb3BlcmF0b3JzLkxlZ2FjeVBvbGljeVJ1bGVfb3BlcmF0b3JzKAogICAgICAgICAgICAgICAgICAgIHdpbGRjYXJkID0gJyonLCAKICAgICAgICAgICAgICAgICAgICB1c2VycyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgdXNlcnNfZ3JvdXBzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwKICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uX3R5cGUgPSAnVFJBTlNGRVInLAogICAgICAgICAgICAgICAgZGVzaWduYXRlZF9zaWduZXIgPSAnJywKICAgICAgICAgICAgICAgIGRlc2lnbmF0ZWRfc2lnbmVycyA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9kZXNpZ25hdGVkX3NpZ25lcnMuTGVnYWN5UG9saWN5UnVsZV9kZXNpZ25hdGVkU2lnbmVycygKICAgICAgICAgICAgICAgICAgICB1c2VycyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgdXNlcnNfZ3JvdXBzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICBdLCApLAogICAgICAgICAgICAgICAgdHlwZSA9ICdUUkFOU0ZFUicsCiAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUxMT1cnLAogICAgICAgICAgICAgICAgYXNzZXQgPSAnJywKICAgICAgICAgICAgICAgIHNyY190eXBlID0gJ0VYQ0hBTkdFJywKICAgICAgICAgICAgICAgIHNyY19zdWJfdHlwZSA9ICdFWFRFUk5BTCcsCiAgICAgICAgICAgICAgICBzcmNfaWQgPSAnJywKICAgICAgICAgICAgICAgIHNyYyA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9zcmMuTGVnYWN5UG9saWN5UnVsZV9zcmMoCiAgICAgICAgICAgICAgICAgICAgaWRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgIF0sICksCiAgICAgICAgICAgICAgICBkc3RfdHlwZSA9ICdFWENIQU5HRScsCiAgICAgICAgICAgICAgICBkc3Rfc3ViX3R5cGUgPSAnRVhURVJOQUwnLAogICAgICAgICAgICAgICAgZHN0X2lkID0gJycsCiAgICAgICAgICAgICAgICBkc3QgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfZHN0LkxlZ2FjeVBvbGljeVJ1bGVfZHN0KAogICAgICAgICAgICAgICAgICAgIGlkcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICBdLCApLAogICAgICAgICAgICAgICAgZHN0X2FkZHJlc3NfdHlwZSA9ICdXSElURUxJU1RFRCcsCiAgICAgICAgICAgICAgICBhbW91bnRfY3VycmVuY3kgPSAnVVNEJywKICAgICAgICAgICAgICAgIGFtb3VudF9zY29wZSA9ICdTSU5HTEVfVFgnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gTm9uZSwKICAgICAgICAgICAgICAgIHBlcmlvZF9zZWMgPSAxLjMzNywKICAgICAgICAgICAgICAgIGF1dGhvcml6ZXJzID0gWwogICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGF1dGhvcml6ZXJzX2NvdW50ID0gMS4zMzcsCiAgICAgICAgICAgICAgICBhdXRob3JpemF0aW9uX2dyb3VwcyA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hdXRob3JpemF0aW9uX2dyb3Vwcy5MZWdhY3lQb2xpY3lSdWxlX2F1dGhvcml6YXRpb25Hcm91cHMoCiAgICAgICAgICAgICAgICAgICAgbG9naWMgPSAnQU5EJywgCiAgICAgICAgICAgICAgICAgICAgYWxsb3dfb3BlcmF0b3JfYXNfYXV0aG9yaXplciA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgIGdyb3VwcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2F1dGhvcml6YXRpb25fZ3JvdXBzX2dyb3Vwc19pbm5lci5MZWdhY3lQb2xpY3lSdWxlX2F1dGhvcml6YXRpb25Hcm91cHNfZ3JvdXBzX2lubmVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzX2dyb3VwcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGggPSAxLjMzNywgKQogICAgICAgICAgICAgICAgICAgICAgICBdLCApLAogICAgICAgICAgICAgICAgYW1vdW50X2FnZ3JlZ2F0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2Ftb3VudF9hZ2dyZWdhdGlvbi5MZWdhY3lQb2xpY3lSdWxlX2Ftb3VudEFnZ3JlZ2F0aW9uKAogICAgICAgICAgICAgICAgICAgIG9wZXJhdG9ycyA9ICdQRVJfU0lOR0xFX01BVENIJywgCiAgICAgICAgICAgICAgICAgICAgc3JjX3RyYW5zZmVyX3BlZXJzID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLCAKICAgICAgICAgICAgICAgICAgICBkc3RfdHJhbnNmZXJfcGVlcnMgPSAnUEVSX1NJTkdMRV9NQVRDSCcsICksCiAgICAgICAgICAgICAgICByYXdfbWVzc2FnZV9zaWduaW5nID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX3Jhd19tZXNzYWdlX3NpZ25pbmcuTGVnYWN5UG9saWN5UnVsZV9yYXdNZXNzYWdlU2lnbmluZygKICAgICAgICAgICAgICAgICAgICBhbGdvcml0aG0gPSAnJywgCiAgICAgICAgICAgICAgICAgICAgZGVyaXZhdGlvbl9wYXRoID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX3Jhd19tZXNzYWdlX3NpZ25pbmdfZGVyaXZhdGlvbl9wYXRoLkxlZ2FjeVBvbGljeVJ1bGVfcmF3TWVzc2FnZVNpZ25pbmdfZGVyaXZhdGlvblBhdGgoCiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjMzNwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgKSwKICAgICAgICAgICAgICAgIGFwcGx5X2Zvcl9hcHByb3ZlID0gVHJ1ZSwKICAgICAgICAgICAgICAgIGFwcGx5X2Zvcl90eXBlZF9tZXNzYWdlID0gVHJ1ZSwKICAgICAgICAgICAgICAgIGV4dGVybmFsX2Rlc2NyaXB0b3IgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIExlZ2FjeVBvbGljeVJ1bGUoCiAgICAgICAgICAgICAgICB0eXBlID0gJ1RSQU5TRkVSJywKICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdBTExPVycsCiAgICAgICAgICAgICAgICBhc3NldCA9ICcnLAogICAgICAgICAgICAgICAgYW1vdW50X2N1cnJlbmN5ID0gJ1VTRCcsCiAgICAgICAgICAgICAgICBhbW91bnRfc2NvcGUgPSAnU0lOR0xFX1RYJywKICAgICAgICAgICAgICAgIGFtb3VudCA9IE5vbmUsCiAgICAgICAgICAgICAgICBwZXJpb2Rfc2VjID0gMS4zMzcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TGVnYWN5UG9saWN5UnVsZShzZWxmKToKICAgICAgICAiIiJUZXN0IExlZ2FjeVBvbGljeVJ1bGUiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_legacy_policy_rule_amount.py b/test/test_legacy_policy_rule_amount.py index dd0f0c1b..958ed606 100644 --- a/test/test_legacy_policy_rule_amount.py +++ b/test/test_legacy_policy_rule_amount.py @@ -1,53 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_rule_amount import LegacyPolicyRuleAmount - - -class TestLegacyPolicyRuleAmount(unittest.TestCase): - """LegacyPolicyRuleAmount unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacyPolicyRuleAmount: - """Test LegacyPolicyRuleAmount - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyPolicyRuleAmount` - """ - model = LegacyPolicyRuleAmount() - if include_optional: - return LegacyPolicyRuleAmount( - ) - else: - return LegacyPolicyRuleAmount( - ) - """ - - def testLegacyPolicyRuleAmount(self): - """Test LegacyPolicyRuleAmount""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hbW91bnQgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVBbW91bnQKCgpjbGFzcyBUZXN0TGVnYWN5UG9saWN5UnVsZUFtb3VudCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJMZWdhY3lQb2xpY3lSdWxlQW1vdW50IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBMZWdhY3lQb2xpY3lSdWxlQW1vdW50OgogICAgICAgICIiIlRlc3QgTGVnYWN5UG9saWN5UnVsZUFtb3VudAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBMZWdhY3lQb2xpY3lSdWxlQW1vdW50YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTGVnYWN5UG9saWN5UnVsZUFtb3VudCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIExlZ2FjeVBvbGljeVJ1bGVBbW91bnQoCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTGVnYWN5UG9saWN5UnVsZUFtb3VudCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RMZWdhY3lQb2xpY3lSdWxlQW1vdW50KHNlbGYpOgogICAgICAgICIiIlRlc3QgTGVnYWN5UG9saWN5UnVsZUFtb3VudCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_legacy_policy_rule_amount_aggregation.py b/test/test_legacy_policy_rule_amount_aggregation.py index 1ec64039..60bc8644 100644 --- a/test/test_legacy_policy_rule_amount_aggregation.py +++ b/test/test_legacy_policy_rule_amount_aggregation.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_rule_amount_aggregation import ( - LegacyPolicyRuleAmountAggregation, -) - - -class TestLegacyPolicyRuleAmountAggregation(unittest.TestCase): - """LegacyPolicyRuleAmountAggregation unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacyPolicyRuleAmountAggregation: - """Test LegacyPolicyRuleAmountAggregation - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyPolicyRuleAmountAggregation` - """ - model = LegacyPolicyRuleAmountAggregation() - if include_optional: - return LegacyPolicyRuleAmountAggregation( - operators = 'PER_SINGLE_MATCH', - src_transfer_peers = 'PER_SINGLE_MATCH', - dst_transfer_peers = 'PER_SINGLE_MATCH' - ) - else: - return LegacyPolicyRuleAmountAggregation( - ) - """ - - def testLegacyPolicyRuleAmountAggregation(self): - """Test LegacyPolicyRuleAmountAggregation""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hbW91bnRfYWdncmVnYXRpb24gaW1wb3J0ICgKICAgIExlZ2FjeVBvbGljeVJ1bGVBbW91bnRBZ2dyZWdhdGlvbiwKKQoKCmNsYXNzIFRlc3RMZWdhY3lQb2xpY3lSdWxlQW1vdW50QWdncmVnYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTGVnYWN5UG9saWN5UnVsZUFtb3VudEFnZ3JlZ2F0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBMZWdhY3lQb2xpY3lSdWxlQW1vdW50QWdncmVnYXRpb246CiAgICAgICAgIiIiVGVzdCBMZWdhY3lQb2xpY3lSdWxlQW1vdW50QWdncmVnYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTGVnYWN5UG9saWN5UnVsZUFtb3VudEFnZ3JlZ2F0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTGVnYWN5UG9saWN5UnVsZUFtb3VudEFnZ3JlZ2F0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTGVnYWN5UG9saWN5UnVsZUFtb3VudEFnZ3JlZ2F0aW9uKAogICAgICAgICAgICAgICAgb3BlcmF0b3JzID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLAogICAgICAgICAgICAgICAgc3JjX3RyYW5zZmVyX3BlZXJzID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLAogICAgICAgICAgICAgICAgZHN0X3RyYW5zZmVyX3BlZXJzID0gJ1BFUl9TSU5HTEVfTUFUQ0gnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTGVnYWN5UG9saWN5UnVsZUFtb3VudEFnZ3JlZ2F0aW9uKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdExlZ2FjeVBvbGljeVJ1bGVBbW91bnRBZ2dyZWdhdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IExlZ2FjeVBvbGljeVJ1bGVBbW91bnRBZ2dyZWdhdGlvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_legacy_policy_rule_authorization_groups.py b/test/test_legacy_policy_rule_authorization_groups.py index d18c3861..b10cf733 100644 --- a/test/test_legacy_policy_rule_authorization_groups.py +++ b/test/test_legacy_policy_rule_authorization_groups.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_rule_authorization_groups import ( - LegacyPolicyRuleAuthorizationGroups, -) - - -class TestLegacyPolicyRuleAuthorizationGroups(unittest.TestCase): - """LegacyPolicyRuleAuthorizationGroups unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacyPolicyRuleAuthorizationGroups: - """Test LegacyPolicyRuleAuthorizationGroups - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyPolicyRuleAuthorizationGroups` - """ - model = LegacyPolicyRuleAuthorizationGroups() - if include_optional: - return LegacyPolicyRuleAuthorizationGroups( - logic = 'AND', - allow_operator_as_authorizer = True, - groups = [ - fireblocks.models.legacy_policy_rule_authorization_groups_groups_inner.LegacyPolicyRule_authorizationGroups_groups_inner( - users = [ - '' - ], - users_groups = [ - '' - ], - th = 1.337, ) - ] - ) - else: - return LegacyPolicyRuleAuthorizationGroups( - ) - """ - - def testLegacyPolicyRuleAuthorizationGroups(self): - """Test LegacyPolicyRuleAuthorizationGroups""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hdXRob3JpemF0aW9uX2dyb3VwcyBpbXBvcnQgKAogICAgTGVnYWN5UG9saWN5UnVsZUF1dGhvcml6YXRpb25Hcm91cHMsCikKCgpjbGFzcyBUZXN0TGVnYWN5UG9saWN5UnVsZUF1dGhvcml6YXRpb25Hcm91cHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTGVnYWN5UG9saWN5UnVsZUF1dGhvcml6YXRpb25Hcm91cHMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IExlZ2FjeVBvbGljeVJ1bGVBdXRob3JpemF0aW9uR3JvdXBzOgogICAgICAgICIiIlRlc3QgTGVnYWN5UG9saWN5UnVsZUF1dGhvcml6YXRpb25Hcm91cHMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTGVnYWN5UG9saWN5UnVsZUF1dGhvcml6YXRpb25Hcm91cHNgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3VwcygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIExlZ2FjeVBvbGljeVJ1bGVBdXRob3JpemF0aW9uR3JvdXBzKAogICAgICAgICAgICAgICAgbG9naWMgPSAnQU5EJywKICAgICAgICAgICAgICAgIGFsbG93X29wZXJhdG9yX2FzX2F1dGhvcml6ZXIgPSBUcnVlLAogICAgICAgICAgICAgICAgZ3JvdXBzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hdXRob3JpemF0aW9uX2dyb3Vwc19ncm91cHNfaW5uZXIuTGVnYWN5UG9saWN5UnVsZV9hdXRob3JpemF0aW9uR3JvdXBzX2dyb3Vwc19pbm5lcigKICAgICAgICAgICAgICAgICAgICAgICAgdXNlcnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzX2dyb3VwcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgdGggPSAxLjMzNywgKQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3VwcygKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3VwcyhzZWxmKToKICAgICAgICAiIiJUZXN0IExlZ2FjeVBvbGljeVJ1bGVBdXRob3JpemF0aW9uR3JvdXBzIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_legacy_policy_rule_authorization_groups_groups_inner.py b/test/test_legacy_policy_rule_authorization_groups_groups_inner.py index 14056dff..61cebc61 100644 --- a/test/test_legacy_policy_rule_authorization_groups_groups_inner.py +++ b/test/test_legacy_policy_rule_authorization_groups_groups_inner.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_rule_authorization_groups_groups_inner import ( - LegacyPolicyRuleAuthorizationGroupsGroupsInner, -) - - -class TestLegacyPolicyRuleAuthorizationGroupsGroupsInner(unittest.TestCase): - """LegacyPolicyRuleAuthorizationGroupsGroupsInner unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> LegacyPolicyRuleAuthorizationGroupsGroupsInner: - """Test LegacyPolicyRuleAuthorizationGroupsGroupsInner - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyPolicyRuleAuthorizationGroupsGroupsInner` - """ - model = LegacyPolicyRuleAuthorizationGroupsGroupsInner() - if include_optional: - return LegacyPolicyRuleAuthorizationGroupsGroupsInner( - users = [ - '' - ], - users_groups = [ - '' - ], - th = 1.337 - ) - else: - return LegacyPolicyRuleAuthorizationGroupsGroupsInner( - ) - """ - - def testLegacyPolicyRuleAuthorizationGroupsGroupsInner(self): - """Test LegacyPolicyRuleAuthorizationGroupsGroupsInner""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hdXRob3JpemF0aW9uX2dyb3Vwc19ncm91cHNfaW5uZXIgaW1wb3J0ICgKICAgIExlZ2FjeVBvbGljeVJ1bGVBdXRob3JpemF0aW9uR3JvdXBzR3JvdXBzSW5uZXIsCikKCgpjbGFzcyBUZXN0TGVnYWN5UG9saWN5UnVsZUF1dGhvcml6YXRpb25Hcm91cHNHcm91cHNJbm5lcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3Vwc0dyb3Vwc0lubmVyIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZSgKICAgICAgICBzZWxmLCBpbmNsdWRlX29wdGlvbmFsCiAgICApIC0+IExlZ2FjeVBvbGljeVJ1bGVBdXRob3JpemF0aW9uR3JvdXBzR3JvdXBzSW5uZXI6CiAgICAgICAgIiIiVGVzdCBMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3Vwc0dyb3Vwc0lubmVyCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYExlZ2FjeVBvbGljeVJ1bGVBdXRob3JpemF0aW9uR3JvdXBzR3JvdXBzSW5uZXJgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3Vwc0dyb3Vwc0lubmVyKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTGVnYWN5UG9saWN5UnVsZUF1dGhvcml6YXRpb25Hcm91cHNHcm91cHNJbm5lcigKICAgICAgICAgICAgICAgIHVzZXJzID0gWwogICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHVzZXJzX2dyb3VwcyA9IFsKICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICB0aCA9IDEuMzM3CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTGVnYWN5UG9saWN5UnVsZUF1dGhvcml6YXRpb25Hcm91cHNHcm91cHNJbm5lcigKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RMZWdhY3lQb2xpY3lSdWxlQXV0aG9yaXphdGlvbkdyb3Vwc0dyb3Vwc0lubmVyKHNlbGYpOgogICAgICAgICIiIlRlc3QgTGVnYWN5UG9saWN5UnVsZUF1dGhvcml6YXRpb25Hcm91cHNHcm91cHNJbm5lciIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_legacy_policy_rule_check_result.py b/test/test_legacy_policy_rule_check_result.py index f6de4030..a52a19e2 100644 --- a/test/test_legacy_policy_rule_check_result.py +++ b/test/test_legacy_policy_rule_check_result.py @@ -1,73 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_rule_check_result import ( - LegacyPolicyRuleCheckResult, -) - - -class TestLegacyPolicyRuleCheckResult(unittest.TestCase): - """LegacyPolicyRuleCheckResult unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacyPolicyRuleCheckResult: - """Test LegacyPolicyRuleCheckResult - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyPolicyRuleCheckResult` - """ - model = LegacyPolicyRuleCheckResult() - if include_optional: - return LegacyPolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.legacy_policy_rule_error.LegacyPolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ] - ) - else: - return LegacyPolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.legacy_policy_rule_error.LegacyPolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], - ) - """ - - def testLegacyPolicyRuleCheckResult(self): - """Test LegacyPolicyRuleCheckResult""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9jaGVja19yZXN1bHQgaW1wb3J0ICgKICAgIExlZ2FjeVBvbGljeVJ1bGVDaGVja1Jlc3VsdCwKKQoKCmNsYXNzIFRlc3RMZWdhY3lQb2xpY3lSdWxlQ2hlY2tSZXN1bHQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTGVnYWN5UG9saWN5UnVsZUNoZWNrUmVzdWx0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBMZWdhY3lQb2xpY3lSdWxlQ2hlY2tSZXN1bHQ6CiAgICAgICAgIiIiVGVzdCBMZWdhY3lQb2xpY3lSdWxlQ2hlY2tSZXN1bHQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTGVnYWN5UG9saWN5UnVsZUNoZWNrUmVzdWx0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTGVnYWN5UG9saWN5UnVsZUNoZWNrUmVzdWx0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTGVnYWN5UG9saWN5UnVsZUNoZWNrUmVzdWx0KAogICAgICAgICAgICAgICAgaW5kZXggPSAxLjMzNywKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdvaycsCiAgICAgICAgICAgICAgICBlcnJvcnMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2Vycm9yLkxlZ2FjeVBvbGljeVJ1bGVFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfbWVzc2FnZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZSA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZV9uYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9maWVsZCA9ICdvcGVyYXRvcicsICkKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTGVnYWN5UG9saWN5UnVsZUNoZWNrUmVzdWx0KAogICAgICAgICAgICAgICAgaW5kZXggPSAxLjMzNywKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdvaycsCiAgICAgICAgICAgICAgICBlcnJvcnMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2Vycm9yLkxlZ2FjeVBvbGljeVJ1bGVFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfbWVzc2FnZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZSA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZV9uYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9maWVsZCA9ICdvcGVyYXRvcicsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdExlZ2FjeVBvbGljeVJ1bGVDaGVja1Jlc3VsdChzZWxmKToKICAgICAgICAiIiJUZXN0IExlZ2FjeVBvbGljeVJ1bGVDaGVja1Jlc3VsdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_legacy_policy_rule_designated_signers.py b/test/test_legacy_policy_rule_designated_signers.py index f31ac208..2ed1b9bf 100644 --- a/test/test_legacy_policy_rule_designated_signers.py +++ b/test/test_legacy_policy_rule_designated_signers.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_rule_designated_signers import ( - LegacyPolicyRuleDesignatedSigners, -) - - -class TestLegacyPolicyRuleDesignatedSigners(unittest.TestCase): - """LegacyPolicyRuleDesignatedSigners unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacyPolicyRuleDesignatedSigners: - """Test LegacyPolicyRuleDesignatedSigners - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyPolicyRuleDesignatedSigners` - """ - model = LegacyPolicyRuleDesignatedSigners() - if include_optional: - return LegacyPolicyRuleDesignatedSigners( - users = [ - '' - ], - users_groups = [ - '' - ] - ) - else: - return LegacyPolicyRuleDesignatedSigners( - ) - """ - - def testLegacyPolicyRuleDesignatedSigners(self): - """Test LegacyPolicyRuleDesignatedSigners""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9kZXNpZ25hdGVkX3NpZ25lcnMgaW1wb3J0ICgKICAgIExlZ2FjeVBvbGljeVJ1bGVEZXNpZ25hdGVkU2lnbmVycywKKQoKCmNsYXNzIFRlc3RMZWdhY3lQb2xpY3lSdWxlRGVzaWduYXRlZFNpZ25lcnModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTGVnYWN5UG9saWN5UnVsZURlc2lnbmF0ZWRTaWduZXJzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBMZWdhY3lQb2xpY3lSdWxlRGVzaWduYXRlZFNpZ25lcnM6CiAgICAgICAgIiIiVGVzdCBMZWdhY3lQb2xpY3lSdWxlRGVzaWduYXRlZFNpZ25lcnMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTGVnYWN5UG9saWN5UnVsZURlc2lnbmF0ZWRTaWduZXJzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTGVnYWN5UG9saWN5UnVsZURlc2lnbmF0ZWRTaWduZXJzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTGVnYWN5UG9saWN5UnVsZURlc2lnbmF0ZWRTaWduZXJzKAogICAgICAgICAgICAgICAgdXNlcnMgPSBbCiAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgdXNlcnNfZ3JvdXBzID0gWwogICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIExlZ2FjeVBvbGljeVJ1bGVEZXNpZ25hdGVkU2lnbmVycygKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RMZWdhY3lQb2xpY3lSdWxlRGVzaWduYXRlZFNpZ25lcnMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBMZWdhY3lQb2xpY3lSdWxlRGVzaWduYXRlZFNpZ25lcnMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_legacy_policy_rule_dst.py b/test/test_legacy_policy_rule_dst.py index a9295032..e713b439 100644 --- a/test/test_legacy_policy_rule_dst.py +++ b/test/test_legacy_policy_rule_dst.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_rule_dst import LegacyPolicyRuleDst - - -class TestLegacyPolicyRuleDst(unittest.TestCase): - """LegacyPolicyRuleDst unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacyPolicyRuleDst: - """Test LegacyPolicyRuleDst - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyPolicyRuleDst` - """ - model = LegacyPolicyRuleDst() - if include_optional: - return LegacyPolicyRuleDst( - ids = [ - [ - null - ] - ] - ) - else: - return LegacyPolicyRuleDst( - ) - """ - - def testLegacyPolicyRuleDst(self): - """Test LegacyPolicyRuleDst""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9kc3QgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVEc3QKCgpjbGFzcyBUZXN0TGVnYWN5UG9saWN5UnVsZURzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJMZWdhY3lQb2xpY3lSdWxlRHN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBMZWdhY3lQb2xpY3lSdWxlRHN0OgogICAgICAgICIiIlRlc3QgTGVnYWN5UG9saWN5UnVsZURzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBMZWdhY3lQb2xpY3lSdWxlRHN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTGVnYWN5UG9saWN5UnVsZURzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIExlZ2FjeVBvbGljeVJ1bGVEc3QoCiAgICAgICAgICAgICAgICBpZHMgPSBbCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTGVnYWN5UG9saWN5UnVsZURzdCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RMZWdhY3lQb2xpY3lSdWxlRHN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgTGVnYWN5UG9saWN5UnVsZURzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_legacy_policy_rule_error.py b/test/test_legacy_policy_rule_error.py index 8af67f62..dd9a8aac 100644 --- a/test/test_legacy_policy_rule_error.py +++ b/test/test_legacy_policy_rule_error.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_rule_error import LegacyPolicyRuleError - - -class TestLegacyPolicyRuleError(unittest.TestCase): - """LegacyPolicyRuleError unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacyPolicyRuleError: - """Test LegacyPolicyRuleError - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyPolicyRuleError` - """ - model = LegacyPolicyRuleError() - if include_optional: - return LegacyPolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator' - ) - else: - return LegacyPolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', - ) - """ - - def testLegacyPolicyRuleError(self): - """Test LegacyPolicyRuleError""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9lcnJvciBpbXBvcnQgTGVnYWN5UG9saWN5UnVsZUVycm9yCgoKY2xhc3MgVGVzdExlZ2FjeVBvbGljeVJ1bGVFcnJvcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJMZWdhY3lQb2xpY3lSdWxlRXJyb3IgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IExlZ2FjeVBvbGljeVJ1bGVFcnJvcjoKICAgICAgICAiIiJUZXN0IExlZ2FjeVBvbGljeVJ1bGVFcnJvcgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBMZWdhY3lQb2xpY3lSdWxlRXJyb3JgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBMZWdhY3lQb2xpY3lSdWxlRXJyb3IoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBMZWdhY3lQb2xpY3lSdWxlRXJyb3IoCiAgICAgICAgICAgICAgICBlcnJvcl9tZXNzYWdlID0gJycsCiAgICAgICAgICAgICAgICBlcnJvcl9jb2RlID0gMS4zMzcsCiAgICAgICAgICAgICAgICBlcnJvcl9jb2RlX25hbWUgPSAnJywKICAgICAgICAgICAgICAgIGVycm9yX2ZpZWxkID0gJ29wZXJhdG9yJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIExlZ2FjeVBvbGljeVJ1bGVFcnJvcigKICAgICAgICAgICAgICAgIGVycm9yX21lc3NhZ2UgPSAnJywKICAgICAgICAgICAgICAgIGVycm9yX2NvZGUgPSAxLjMzNywKICAgICAgICAgICAgICAgIGVycm9yX2NvZGVfbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgZXJyb3JfZmllbGQgPSAnb3BlcmF0b3InLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdExlZ2FjeVBvbGljeVJ1bGVFcnJvcihzZWxmKToKICAgICAgICAiIiJUZXN0IExlZ2FjeVBvbGljeVJ1bGVFcnJvciIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_legacy_policy_rule_operators.py b/test/test_legacy_policy_rule_operators.py index d89fd72c..884daf6d 100644 --- a/test/test_legacy_policy_rule_operators.py +++ b/test/test_legacy_policy_rule_operators.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_rule_operators import LegacyPolicyRuleOperators - - -class TestLegacyPolicyRuleOperators(unittest.TestCase): - """LegacyPolicyRuleOperators unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacyPolicyRuleOperators: - """Test LegacyPolicyRuleOperators - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyPolicyRuleOperators` - """ - model = LegacyPolicyRuleOperators() - if include_optional: - return LegacyPolicyRuleOperators( - wildcard = '*', - users = [ - '' - ], - users_groups = [ - '' - ], - services = [ - '' - ] - ) - else: - return LegacyPolicyRuleOperators( - ) - """ - - def testLegacyPolicyRuleOperators(self): - """Test LegacyPolicyRuleOperators""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9vcGVyYXRvcnMgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVPcGVyYXRvcnMKCgpjbGFzcyBUZXN0TGVnYWN5UG9saWN5UnVsZU9wZXJhdG9ycyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJMZWdhY3lQb2xpY3lSdWxlT3BlcmF0b3JzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBMZWdhY3lQb2xpY3lSdWxlT3BlcmF0b3JzOgogICAgICAgICIiIlRlc3QgTGVnYWN5UG9saWN5UnVsZU9wZXJhdG9ycwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBMZWdhY3lQb2xpY3lSdWxlT3BlcmF0b3JzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTGVnYWN5UG9saWN5UnVsZU9wZXJhdG9ycygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIExlZ2FjeVBvbGljeVJ1bGVPcGVyYXRvcnMoCiAgICAgICAgICAgICAgICB3aWxkY2FyZCA9ICcqJywKICAgICAgICAgICAgICAgIHVzZXJzID0gWwogICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHVzZXJzX2dyb3VwcyA9IFsKICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBzZXJ2aWNlcyA9IFsKICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBMZWdhY3lQb2xpY3lSdWxlT3BlcmF0b3JzKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdExlZ2FjeVBvbGljeVJ1bGVPcGVyYXRvcnMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBMZWdhY3lQb2xpY3lSdWxlT3BlcmF0b3JzIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_legacy_policy_rule_raw_message_signing.py b/test/test_legacy_policy_rule_raw_message_signing.py index 2c415844..d460c2a2 100644 --- a/test/test_legacy_policy_rule_raw_message_signing.py +++ b/test/test_legacy_policy_rule_raw_message_signing.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_rule_raw_message_signing import ( - LegacyPolicyRuleRawMessageSigning, -) - - -class TestLegacyPolicyRuleRawMessageSigning(unittest.TestCase): - """LegacyPolicyRuleRawMessageSigning unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacyPolicyRuleRawMessageSigning: - """Test LegacyPolicyRuleRawMessageSigning - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyPolicyRuleRawMessageSigning` - """ - model = LegacyPolicyRuleRawMessageSigning() - if include_optional: - return LegacyPolicyRuleRawMessageSigning( - algorithm = '', - derivation_path = fireblocks.models.legacy_policy_rule_raw_message_signing_derivation_path.LegacyPolicyRule_rawMessageSigning_derivationPath( - path = [ - 1.337 - ], ) - ) - else: - return LegacyPolicyRuleRawMessageSigning( - ) - """ - - def testLegacyPolicyRuleRawMessageSigning(self): - """Test LegacyPolicyRuleRawMessageSigning""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9yYXdfbWVzc2FnZV9zaWduaW5nIGltcG9ydCAoCiAgICBMZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmcsCikKCgpjbGFzcyBUZXN0TGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkxlZ2FjeVBvbGljeVJ1bGVSYXdNZXNzYWdlU2lnbmluZyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nOgogICAgICAgICIiIlRlc3QgTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYExlZ2FjeVBvbGljeVJ1bGVSYXdNZXNzYWdlU2lnbmluZ2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IExlZ2FjeVBvbGljeVJ1bGVSYXdNZXNzYWdlU2lnbmluZygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIExlZ2FjeVBvbGljeVJ1bGVSYXdNZXNzYWdlU2lnbmluZygKICAgICAgICAgICAgICAgIGFsZ29yaXRobSA9ICcnLAogICAgICAgICAgICAgICAgZGVyaXZhdGlvbl9wYXRoID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX3Jhd19tZXNzYWdlX3NpZ25pbmdfZGVyaXZhdGlvbl9wYXRoLkxlZ2FjeVBvbGljeVJ1bGVfcmF3TWVzc2FnZVNpZ25pbmdfZGVyaXZhdGlvblBhdGgoCiAgICAgICAgICAgICAgICAgICAgcGF0aCA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgMS4zMzcKICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIExlZ2FjeVBvbGljeVJ1bGVSYXdNZXNzYWdlU2lnbmluZygKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RMZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmcoc2VsZik6CiAgICAgICAgIiIiVGVzdCBMZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmciIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_legacy_policy_rule_raw_message_signing_derivation_path.py b/test/test_legacy_policy_rule_raw_message_signing_derivation_path.py index cb2123ef..26adc3ef 100644 --- a/test/test_legacy_policy_rule_raw_message_signing_derivation_path.py +++ b/test/test_legacy_policy_rule_raw_message_signing_derivation_path.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_rule_raw_message_signing_derivation_path import ( - LegacyPolicyRuleRawMessageSigningDerivationPath, -) - - -class TestLegacyPolicyRuleRawMessageSigningDerivationPath(unittest.TestCase): - """LegacyPolicyRuleRawMessageSigningDerivationPath unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> LegacyPolicyRuleRawMessageSigningDerivationPath: - """Test LegacyPolicyRuleRawMessageSigningDerivationPath - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyPolicyRuleRawMessageSigningDerivationPath` - """ - model = LegacyPolicyRuleRawMessageSigningDerivationPath() - if include_optional: - return LegacyPolicyRuleRawMessageSigningDerivationPath( - path = [ - 1.337 - ] - ) - else: - return LegacyPolicyRuleRawMessageSigningDerivationPath( - ) - """ - - def testLegacyPolicyRuleRawMessageSigningDerivationPath(self): - """Test LegacyPolicyRuleRawMessageSigningDerivationPath""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9yYXdfbWVzc2FnZV9zaWduaW5nX2Rlcml2YXRpb25fcGF0aCBpbXBvcnQgKAogICAgTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nRGVyaXZhdGlvblBhdGgsCikKCgpjbGFzcyBUZXN0TGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nRGVyaXZhdGlvblBhdGgodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nRGVyaXZhdGlvblBhdGggdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKAogICAgICAgIHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwKICAgICkgLT4gTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nRGVyaXZhdGlvblBhdGg6CiAgICAgICAgIiIiVGVzdCBMZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmdEZXJpdmF0aW9uUGF0aAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBMZWdhY3lQb2xpY3lSdWxlUmF3TWVzc2FnZVNpZ25pbmdEZXJpdmF0aW9uUGF0aGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IExlZ2FjeVBvbGljeVJ1bGVSYXdNZXNzYWdlU2lnbmluZ0Rlcml2YXRpb25QYXRoKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nRGVyaXZhdGlvblBhdGgoCiAgICAgICAgICAgICAgICBwYXRoID0gWwogICAgICAgICAgICAgICAgICAgIDEuMzM3CiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIExlZ2FjeVBvbGljeVJ1bGVSYXdNZXNzYWdlU2lnbmluZ0Rlcml2YXRpb25QYXRoKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdExlZ2FjeVBvbGljeVJ1bGVSYXdNZXNzYWdlU2lnbmluZ0Rlcml2YXRpb25QYXRoKHNlbGYpOgogICAgICAgICIiIlRlc3QgTGVnYWN5UG9saWN5UnVsZVJhd01lc3NhZ2VTaWduaW5nRGVyaXZhdGlvblBhdGgiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_legacy_policy_rule_src.py b/test/test_legacy_policy_rule_src.py index 0bc0f0a3..3dc66c5a 100644 --- a/test/test_legacy_policy_rule_src.py +++ b/test/test_legacy_policy_rule_src.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_rule_src import LegacyPolicyRuleSrc - - -class TestLegacyPolicyRuleSrc(unittest.TestCase): - """LegacyPolicyRuleSrc unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacyPolicyRuleSrc: - """Test LegacyPolicyRuleSrc - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyPolicyRuleSrc` - """ - model = LegacyPolicyRuleSrc() - if include_optional: - return LegacyPolicyRuleSrc( - ids = [ - [ - null - ] - ] - ) - else: - return LegacyPolicyRuleSrc( - ) - """ - - def testLegacyPolicyRuleSrc(self): - """Test LegacyPolicyRuleSrc""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9zcmMgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVTcmMKCgpjbGFzcyBUZXN0TGVnYWN5UG9saWN5UnVsZVNyYyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJMZWdhY3lQb2xpY3lSdWxlU3JjIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBMZWdhY3lQb2xpY3lSdWxlU3JjOgogICAgICAgICIiIlRlc3QgTGVnYWN5UG9saWN5UnVsZVNyYwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBMZWdhY3lQb2xpY3lSdWxlU3JjYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTGVnYWN5UG9saWN5UnVsZVNyYygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIExlZ2FjeVBvbGljeVJ1bGVTcmMoCiAgICAgICAgICAgICAgICBpZHMgPSBbCiAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTGVnYWN5UG9saWN5UnVsZVNyYygKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RMZWdhY3lQb2xpY3lSdWxlU3JjKHNlbGYpOgogICAgICAgICIiIlRlc3QgTGVnYWN5UG9saWN5UnVsZVNyYyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_legacy_policy_rules.py b/test/test_legacy_policy_rules.py index 8a568793..26de906a 100644 --- a/test/test_legacy_policy_rules.py +++ b/test/test_legacy_policy_rules.py @@ -1,115 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_rules import LegacyPolicyRules - - -class TestLegacyPolicyRules(unittest.TestCase): - """LegacyPolicyRules unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacyPolicyRules: - """Test LegacyPolicyRules - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyPolicyRules` - """ - model = LegacyPolicyRules() - if include_optional: - return LegacyPolicyRules( - rules = [ - fireblocks.models.legacy_policy_rule.LegacyPolicyRule( - operator = '', - operators = fireblocks.models.legacy_policy_rule_operators.LegacyPolicyRule_operators( - wildcard = '*', - users = [ - '' - ], - users_groups = [ - '' - ], - services = [ - '' - ], ), - transaction_type = 'TRANSFER', - designated_signer = '', - designated_signers = fireblocks.models.legacy_policy_rule_designated_signers.LegacyPolicyRule_designatedSigners(), - type = 'TRANSFER', - action = 'ALLOW', - asset = '', - src_type = null, - src_sub_type = null, - src_id = null, - src = fireblocks.models.legacy_policy_rule_src.LegacyPolicyRule_src( - ids = [ - [ - null - ] - ], ), - dst_type = null, - dst_sub_type = null, - dst_id = null, - dst = fireblocks.models.legacy_policy_rule_dst.LegacyPolicyRule_dst(), - dst_address_type = 'WHITELISTED', - amount_currency = 'USD', - amount_scope = 'SINGLE_TX', - amount = null, - period_sec = 1.337, - authorizers = [ - '' - ], - authorizers_count = 1.337, - authorization_groups = fireblocks.models.legacy_policy_rule_authorization_groups.LegacyPolicyRule_authorizationGroups( - logic = 'AND', - allow_operator_as_authorizer = True, - groups = [ - fireblocks.models.legacy_policy_rule_authorization_groups_groups_inner.LegacyPolicyRule_authorizationGroups_groups_inner( - th = 1.337, ) - ], ), - amount_aggregation = fireblocks.models.legacy_policy_rule_amount_aggregation.LegacyPolicyRule_amountAggregation( - src_transfer_peers = 'PER_SINGLE_MATCH', - dst_transfer_peers = 'PER_SINGLE_MATCH', ), - raw_message_signing = fireblocks.models.legacy_policy_rule_raw_message_signing.LegacyPolicyRule_rawMessageSigning( - algorithm = '', - derivation_path = fireblocks.models.legacy_policy_rule_raw_message_signing_derivation_path.LegacyPolicyRule_rawMessageSigning_derivationPath( - path = [ - 1.337 - ], ), ), - apply_for_approve = True, - apply_for_typed_message = True, - external_descriptor = '', ) - ] - ) - else: - return LegacyPolicyRules( - ) - """ - - def testLegacyPolicyRules(self): - """Test LegacyPolicyRules""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZXMgaW1wb3J0IExlZ2FjeVBvbGljeVJ1bGVzCgoKY2xhc3MgVGVzdExlZ2FjeVBvbGljeVJ1bGVzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkxlZ2FjeVBvbGljeVJ1bGVzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBMZWdhY3lQb2xpY3lSdWxlczoKICAgICAgICAiIiJUZXN0IExlZ2FjeVBvbGljeVJ1bGVzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYExlZ2FjeVBvbGljeVJ1bGVzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTGVnYWN5UG9saWN5UnVsZXMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBMZWdhY3lQb2xpY3lSdWxlcygKICAgICAgICAgICAgICAgIHJ1bGVzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZS5MZWdhY3lQb2xpY3lSdWxlKAogICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3JzID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX29wZXJhdG9ycy5MZWdhY3lQb2xpY3lSdWxlX29wZXJhdG9ycygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGRjYXJkID0gJyonLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2Vyc19ncm91cHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uX3R5cGUgPSAnVFJBTlNGRVInLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzaWduYXRlZF9zaWduZXIgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2lnbmF0ZWRfc2lnbmVycyA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9kZXNpZ25hdGVkX3NpZ25lcnMuTGVnYWN5UG9saWN5UnVsZV9kZXNpZ25hdGVkU2lnbmVycygpLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUxMT1cnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNyY190eXBlID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIHNyY19zdWJfdHlwZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBzcmNfaWQgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3JjID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX3NyYy5MZWdhY3lQb2xpY3lSdWxlX3NyYygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksIAogICAgICAgICAgICAgICAgICAgICAgICBkc3RfdHlwZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBkc3Rfc3ViX3R5cGUgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgZHN0X2lkID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRzdCA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9kc3QuTGVnYWN5UG9saWN5UnVsZV9kc3QoKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRzdF9hZGRyZXNzX3R5cGUgPSAnV0hJVEVMSVNURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50X2N1cnJlbmN5ID0gJ1VTRCcsIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfc2NvcGUgPSAnU0lOR0xFX1RYJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBwZXJpb2Rfc2VjID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpemVycyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXplcnNfY291bnQgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml6YXRpb25fZ3JvdXBzID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2F1dGhvcml6YXRpb25fZ3JvdXBzLkxlZ2FjeVBvbGljeVJ1bGVfYXV0aG9yaXphdGlvbkdyb3VwcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2ljID0gJ0FORCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dfb3BlcmF0b3JfYXNfYXV0aG9yaXplciA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hdXRob3JpemF0aW9uX2dyb3Vwc19ncm91cHNfaW5uZXIuTGVnYWN5UG9saWN5UnVsZV9hdXRob3JpemF0aW9uR3JvdXBzX2dyb3Vwc19pbm5lcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGggPSAxLjMzNywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfYWdncmVnYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfYW1vdW50X2FnZ3JlZ2F0aW9uLkxlZ2FjeVBvbGljeVJ1bGVfYW1vdW50QWdncmVnYXRpb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNfdHJhbnNmZXJfcGVlcnMgPSAnUEVSX1NJTkdMRV9NQVRDSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0X3RyYW5zZmVyX3BlZXJzID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgcmF3X21lc3NhZ2Vfc2lnbmluZyA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9yYXdfbWVzc2FnZV9zaWduaW5nLkxlZ2FjeVBvbGljeVJ1bGVfcmF3TWVzc2FnZVNpZ25pbmcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGdvcml0aG0gPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXJpdmF0aW9uX3BhdGggPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfcmF3X21lc3NhZ2Vfc2lnbmluZ19kZXJpdmF0aW9uX3BhdGguTGVnYWN5UG9saWN5UnVsZV9yYXdNZXNzYWdlU2lnbmluZ19kZXJpdmF0aW9uUGF0aCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjMzNwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXBwbHlfZm9yX2FwcHJvdmUgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXBwbHlfZm9yX3R5cGVkX21lc3NhZ2UgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfZGVzY3JpcHRvciA9ICcnLCApCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIExlZ2FjeVBvbGljeVJ1bGVzKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdExlZ2FjeVBvbGljeVJ1bGVzKHNlbGYpOgogICAgICAgICIiIlRlc3QgTGVnYWN5UG9saWN5UnVsZXMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_legacy_policy_src_or_dest_sub_type.py b/test/test_legacy_policy_src_or_dest_sub_type.py index 93ee9535..db1b6ea5 100644 --- a/test/test_legacy_policy_src_or_dest_sub_type.py +++ b/test/test_legacy_policy_src_or_dest_sub_type.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_src_or_dest_sub_type import ( - LegacyPolicySrcOrDestSubType, -) - - -class TestLegacyPolicySrcOrDestSubType(unittest.TestCase): - """LegacyPolicySrcOrDestSubType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testLegacyPolicySrcOrDestSubType(self): - """Test LegacyPolicySrcOrDestSubType""" - # inst = LegacyPolicySrcOrDestSubType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfc3JjX29yX2Rlc3Rfc3ViX3R5cGUgaW1wb3J0ICgKICAgIExlZ2FjeVBvbGljeVNyY09yRGVzdFN1YlR5cGUsCikKCgpjbGFzcyBUZXN0TGVnYWN5UG9saWN5U3JjT3JEZXN0U3ViVHlwZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJMZWdhY3lQb2xpY3lTcmNPckRlc3RTdWJUeXBlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdExlZ2FjeVBvbGljeVNyY09yRGVzdFN1YlR5cGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBMZWdhY3lQb2xpY3lTcmNPckRlc3RTdWJUeXBlIiIiCiAgICAgICAgIyBpbnN0ID0gTGVnYWN5UG9saWN5U3JjT3JEZXN0U3ViVHlwZSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_legacy_policy_src_or_dest_type.py b/test/test_legacy_policy_src_or_dest_type.py index bdb1903b..2c9a45b9 100644 --- a/test/test_legacy_policy_src_or_dest_type.py +++ b/test/test_legacy_policy_src_or_dest_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_src_or_dest_type import LegacyPolicySrcOrDestType - - -class TestLegacyPolicySrcOrDestType(unittest.TestCase): - """LegacyPolicySrcOrDestType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testLegacyPolicySrcOrDestType(self): - """Test LegacyPolicySrcOrDestType""" - # inst = LegacyPolicySrcOrDestType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfc3JjX29yX2Rlc3RfdHlwZSBpbXBvcnQgTGVnYWN5UG9saWN5U3JjT3JEZXN0VHlwZQoKCmNsYXNzIFRlc3RMZWdhY3lQb2xpY3lTcmNPckRlc3RUeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkxlZ2FjeVBvbGljeVNyY09yRGVzdFR5cGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0TGVnYWN5UG9saWN5U3JjT3JEZXN0VHlwZShzZWxmKToKICAgICAgICAiIiJUZXN0IExlZ2FjeVBvbGljeVNyY09yRGVzdFR5cGUiIiIKICAgICAgICAjIGluc3QgPSBMZWdhY3lQb2xpY3lTcmNPckRlc3RUeXBlKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_legacy_policy_status.py b/test/test_legacy_policy_status.py index 8423722b..45e4b326 100644 --- a/test/test_legacy_policy_status.py +++ b/test/test_legacy_policy_status.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_status import LegacyPolicyStatus - - -class TestLegacyPolicyStatus(unittest.TestCase): - """LegacyPolicyStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testLegacyPolicyStatus(self): - """Test LegacyPolicyStatus""" - # inst = LegacyPolicyStatus() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfc3RhdHVzIGltcG9ydCBMZWdhY3lQb2xpY3lTdGF0dXMKCgpjbGFzcyBUZXN0TGVnYWN5UG9saWN5U3RhdHVzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkxlZ2FjeVBvbGljeVN0YXR1cyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RMZWdhY3lQb2xpY3lTdGF0dXMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBMZWdhY3lQb2xpY3lTdGF0dXMiIiIKICAgICAgICAjIGluc3QgPSBMZWdhY3lQb2xpY3lTdGF0dXMoKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_legacy_policy_validation.py b/test/test_legacy_policy_validation.py index 787eae11..cb4e4bbc 100644 --- a/test/test_legacy_policy_validation.py +++ b/test/test_legacy_policy_validation.py @@ -1,83 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_policy_validation import LegacyPolicyValidation - - -class TestLegacyPolicyValidation(unittest.TestCase): - """LegacyPolicyValidation unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacyPolicyValidation: - """Test LegacyPolicyValidation - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyPolicyValidation` - """ - model = LegacyPolicyValidation() - if include_optional: - return LegacyPolicyValidation( - status = '', - check_result = fireblocks.models.legacy_policy_check_result.LegacyPolicyCheckResult( - errors = 1.337, - results = [ - fireblocks.models.legacy_policy_rule_check_result.LegacyPolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.legacy_policy_rule_error.LegacyPolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], ) - ], ) - ) - else: - return LegacyPolicyValidation( - status = '', - check_result = fireblocks.models.legacy_policy_check_result.LegacyPolicyCheckResult( - errors = 1.337, - results = [ - fireblocks.models.legacy_policy_rule_check_result.LegacyPolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.legacy_policy_rule_error.LegacyPolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], ) - ], ), - ) - """ - - def testLegacyPolicyValidation(self): - """Test LegacyPolicyValidation""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfdmFsaWRhdGlvbiBpbXBvcnQgTGVnYWN5UG9saWN5VmFsaWRhdGlvbgoKCmNsYXNzIFRlc3RMZWdhY3lQb2xpY3lWYWxpZGF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkxlZ2FjeVBvbGljeVZhbGlkYXRpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IExlZ2FjeVBvbGljeVZhbGlkYXRpb246CiAgICAgICAgIiIiVGVzdCBMZWdhY3lQb2xpY3lWYWxpZGF0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYExlZ2FjeVBvbGljeVZhbGlkYXRpb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBMZWdhY3lQb2xpY3lWYWxpZGF0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTGVnYWN5UG9saWN5VmFsaWRhdGlvbigKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICcnLAogICAgICAgICAgICAgICAgY2hlY2tfcmVzdWx0ID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9jaGVja19yZXN1bHQuTGVnYWN5UG9saWN5Q2hlY2tSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgIHJlc3VsdHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9jaGVja19yZXN1bHQuTGVnYWN5UG9saWN5UnVsZUNoZWNrUmVzdWx0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnb2snLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfZXJyb3IuTGVnYWN5UG9saWN5UnVsZUVycm9yKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9tZXNzYWdlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlX25hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2ZpZWxkID0gJ29wZXJhdG9yJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIExlZ2FjeVBvbGljeVZhbGlkYXRpb24oCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnJywKICAgICAgICAgICAgICAgIGNoZWNrX3Jlc3VsdCA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfY2hlY2tfcmVzdWx0LkxlZ2FjeVBvbGljeUNoZWNrUmVzdWx0KAogICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICByZXN1bHRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfY2hlY2tfcmVzdWx0LkxlZ2FjeVBvbGljeVJ1bGVDaGVja1Jlc3VsdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ29rJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2Vycm9yLkxlZ2FjeVBvbGljeVJ1bGVFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfbWVzc2FnZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZSA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZV9uYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9maWVsZCA9ICdvcGVyYXRvcicsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sICksCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TGVnYWN5UG9saWN5VmFsaWRhdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IExlZ2FjeVBvbGljeVZhbGlkYXRpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_legacy_publish_draft_request.py b/test/test_legacy_publish_draft_request.py index 3efc2b90..1a5c2845 100644 --- a/test/test_legacy_publish_draft_request.py +++ b/test/test_legacy_publish_draft_request.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_publish_draft_request import LegacyPublishDraftRequest - - -class TestLegacyPublishDraftRequest(unittest.TestCase): - """LegacyPublishDraftRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacyPublishDraftRequest: - """Test LegacyPublishDraftRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyPublishDraftRequest` - """ - model = LegacyPublishDraftRequest() - if include_optional: - return LegacyPublishDraftRequest( - draft_id = '' - ) - else: - return LegacyPublishDraftRequest( - ) - """ - - def testLegacyPublishDraftRequest(self): - """Test LegacyPublishDraftRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wdWJsaXNoX2RyYWZ0X3JlcXVlc3QgaW1wb3J0IExlZ2FjeVB1Ymxpc2hEcmFmdFJlcXVlc3QKCgpjbGFzcyBUZXN0TGVnYWN5UHVibGlzaERyYWZ0UmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJMZWdhY3lQdWJsaXNoRHJhZnRSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBMZWdhY3lQdWJsaXNoRHJhZnRSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgTGVnYWN5UHVibGlzaERyYWZ0UmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBMZWdhY3lQdWJsaXNoRHJhZnRSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTGVnYWN5UHVibGlzaERyYWZ0UmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIExlZ2FjeVB1Ymxpc2hEcmFmdFJlcXVlc3QoCiAgICAgICAgICAgICAgICBkcmFmdF9pZCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTGVnYWN5UHVibGlzaERyYWZ0UmVxdWVzdCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RMZWdhY3lQdWJsaXNoRHJhZnRSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgTGVnYWN5UHVibGlzaERyYWZ0UmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_legacy_publish_result.py b/test/test_legacy_publish_result.py index d5ce1e8d..366c1764 100644 --- a/test/test_legacy_publish_result.py +++ b/test/test_legacy_publish_result.py @@ -1,217 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_publish_result import LegacyPublishResult - - -class TestLegacyPublishResult(unittest.TestCase): - """LegacyPublishResult unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacyPublishResult: - """Test LegacyPublishResult - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacyPublishResult` - """ - model = LegacyPublishResult() - if include_optional: - return LegacyPublishResult( - status = 'SUCCESS', - rules = [ - fireblocks.models.legacy_policy_rule.LegacyPolicyRule( - operator = '', - operators = fireblocks.models.legacy_policy_rule_operators.LegacyPolicyRule_operators( - wildcard = '*', - users = [ - '' - ], - users_groups = [ - '' - ], - services = [ - '' - ], ), - transaction_type = 'TRANSFER', - designated_signer = '', - designated_signers = fireblocks.models.legacy_policy_rule_designated_signers.LegacyPolicyRule_designatedSigners(), - type = 'TRANSFER', - action = 'ALLOW', - asset = '', - src_type = null, - src_sub_type = null, - src_id = null, - src = fireblocks.models.legacy_policy_rule_src.LegacyPolicyRule_src( - ids = [ - [ - null - ] - ], ), - dst_type = null, - dst_sub_type = null, - dst_id = null, - dst = fireblocks.models.legacy_policy_rule_dst.LegacyPolicyRule_dst(), - dst_address_type = 'WHITELISTED', - amount_currency = 'USD', - amount_scope = 'SINGLE_TX', - amount = null, - period_sec = 1.337, - authorizers = [ - '' - ], - authorizers_count = 1.337, - authorization_groups = fireblocks.models.legacy_policy_rule_authorization_groups.LegacyPolicyRule_authorizationGroups( - logic = 'AND', - allow_operator_as_authorizer = True, - groups = [ - fireblocks.models.legacy_policy_rule_authorization_groups_groups_inner.LegacyPolicyRule_authorizationGroups_groups_inner( - th = 1.337, ) - ], ), - amount_aggregation = fireblocks.models.legacy_policy_rule_amount_aggregation.LegacyPolicyRule_amountAggregation( - src_transfer_peers = 'PER_SINGLE_MATCH', - dst_transfer_peers = 'PER_SINGLE_MATCH', ), - raw_message_signing = fireblocks.models.legacy_policy_rule_raw_message_signing.LegacyPolicyRule_rawMessageSigning( - algorithm = '', - derivation_path = fireblocks.models.legacy_policy_rule_raw_message_signing_derivation_path.LegacyPolicyRule_rawMessageSigning_derivationPath( - path = [ - 1.337 - ], ), ), - apply_for_approve = True, - apply_for_typed_message = True, - external_descriptor = '', ) - ], - check_result = fireblocks.models.legacy_policy_check_result.LegacyPolicyCheckResult( - errors = 1.337, - results = [ - fireblocks.models.legacy_policy_rule_check_result.LegacyPolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.legacy_policy_rule_error.LegacyPolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], ) - ], ), - metadata = fireblocks.models.legacy_policy_metadata.LegacyPolicyMetadata( - edited_by = '', - edited_at = '', - published_by = '', - published_at = '', ) - ) - else: - return LegacyPublishResult( - status = 'SUCCESS', - rules = [ - fireblocks.models.legacy_policy_rule.LegacyPolicyRule( - operator = '', - operators = fireblocks.models.legacy_policy_rule_operators.LegacyPolicyRule_operators( - wildcard = '*', - users = [ - '' - ], - users_groups = [ - '' - ], - services = [ - '' - ], ), - transaction_type = 'TRANSFER', - designated_signer = '', - designated_signers = fireblocks.models.legacy_policy_rule_designated_signers.LegacyPolicyRule_designatedSigners(), - type = 'TRANSFER', - action = 'ALLOW', - asset = '', - src_type = null, - src_sub_type = null, - src_id = null, - src = fireblocks.models.legacy_policy_rule_src.LegacyPolicyRule_src( - ids = [ - [ - null - ] - ], ), - dst_type = null, - dst_sub_type = null, - dst_id = null, - dst = fireblocks.models.legacy_policy_rule_dst.LegacyPolicyRule_dst(), - dst_address_type = 'WHITELISTED', - amount_currency = 'USD', - amount_scope = 'SINGLE_TX', - amount = null, - period_sec = 1.337, - authorizers = [ - '' - ], - authorizers_count = 1.337, - authorization_groups = fireblocks.models.legacy_policy_rule_authorization_groups.LegacyPolicyRule_authorizationGroups( - logic = 'AND', - allow_operator_as_authorizer = True, - groups = [ - fireblocks.models.legacy_policy_rule_authorization_groups_groups_inner.LegacyPolicyRule_authorizationGroups_groups_inner( - th = 1.337, ) - ], ), - amount_aggregation = fireblocks.models.legacy_policy_rule_amount_aggregation.LegacyPolicyRule_amountAggregation( - src_transfer_peers = 'PER_SINGLE_MATCH', - dst_transfer_peers = 'PER_SINGLE_MATCH', ), - raw_message_signing = fireblocks.models.legacy_policy_rule_raw_message_signing.LegacyPolicyRule_rawMessageSigning( - algorithm = '', - derivation_path = fireblocks.models.legacy_policy_rule_raw_message_signing_derivation_path.LegacyPolicyRule_rawMessageSigning_derivationPath( - path = [ - 1.337 - ], ), ), - apply_for_approve = True, - apply_for_typed_message = True, - external_descriptor = '', ) - ], - check_result = fireblocks.models.legacy_policy_check_result.LegacyPolicyCheckResult( - errors = 1.337, - results = [ - fireblocks.models.legacy_policy_rule_check_result.LegacyPolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.legacy_policy_rule_error.LegacyPolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], ) - ], ), - metadata = fireblocks.models.legacy_policy_metadata.LegacyPolicyMetadata( - edited_by = '', - edited_at = '', - published_by = '', - published_at = '', ), - ) - """ - - def testLegacyPublishResult(self): - """Test LegacyPublishResult""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wdWJsaXNoX3Jlc3VsdCBpbXBvcnQgTGVnYWN5UHVibGlzaFJlc3VsdAoKCmNsYXNzIFRlc3RMZWdhY3lQdWJsaXNoUmVzdWx0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkxlZ2FjeVB1Ymxpc2hSZXN1bHQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IExlZ2FjeVB1Ymxpc2hSZXN1bHQ6CiAgICAgICAgIiIiVGVzdCBMZWdhY3lQdWJsaXNoUmVzdWx0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYExlZ2FjeVB1Ymxpc2hSZXN1bHRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBMZWdhY3lQdWJsaXNoUmVzdWx0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTGVnYWN5UHVibGlzaFJlc3VsdCgKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdTVUNDRVNTJywKICAgICAgICAgICAgICAgIHJ1bGVzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZS5MZWdhY3lQb2xpY3lSdWxlKAogICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3JzID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX29wZXJhdG9ycy5MZWdhY3lQb2xpY3lSdWxlX29wZXJhdG9ycygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGRjYXJkID0gJyonLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2Vyc19ncm91cHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uX3R5cGUgPSAnVFJBTlNGRVInLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzaWduYXRlZF9zaWduZXIgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2lnbmF0ZWRfc2lnbmVycyA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9kZXNpZ25hdGVkX3NpZ25lcnMuTGVnYWN5UG9saWN5UnVsZV9kZXNpZ25hdGVkU2lnbmVycygpLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUxMT1cnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNyY190eXBlID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIHNyY19zdWJfdHlwZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBzcmNfaWQgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3JjID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX3NyYy5MZWdhY3lQb2xpY3lSdWxlX3NyYygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksIAogICAgICAgICAgICAgICAgICAgICAgICBkc3RfdHlwZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBkc3Rfc3ViX3R5cGUgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgZHN0X2lkID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRzdCA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9kc3QuTGVnYWN5UG9saWN5UnVsZV9kc3QoKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRzdF9hZGRyZXNzX3R5cGUgPSAnV0hJVEVMSVNURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50X2N1cnJlbmN5ID0gJ1VTRCcsIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfc2NvcGUgPSAnU0lOR0xFX1RYJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBwZXJpb2Rfc2VjID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpemVycyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXplcnNfY291bnQgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml6YXRpb25fZ3JvdXBzID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2F1dGhvcml6YXRpb25fZ3JvdXBzLkxlZ2FjeVBvbGljeVJ1bGVfYXV0aG9yaXphdGlvbkdyb3VwcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2ljID0gJ0FORCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dfb3BlcmF0b3JfYXNfYXV0aG9yaXplciA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hdXRob3JpemF0aW9uX2dyb3Vwc19ncm91cHNfaW5uZXIuTGVnYWN5UG9saWN5UnVsZV9hdXRob3JpemF0aW9uR3JvdXBzX2dyb3Vwc19pbm5lcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGggPSAxLjMzNywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfYWdncmVnYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfYW1vdW50X2FnZ3JlZ2F0aW9uLkxlZ2FjeVBvbGljeVJ1bGVfYW1vdW50QWdncmVnYXRpb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNfdHJhbnNmZXJfcGVlcnMgPSAnUEVSX1NJTkdMRV9NQVRDSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0X3RyYW5zZmVyX3BlZXJzID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgcmF3X21lc3NhZ2Vfc2lnbmluZyA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9yYXdfbWVzc2FnZV9zaWduaW5nLkxlZ2FjeVBvbGljeVJ1bGVfcmF3TWVzc2FnZVNpZ25pbmcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGdvcml0aG0gPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXJpdmF0aW9uX3BhdGggPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfcmF3X21lc3NhZ2Vfc2lnbmluZ19kZXJpdmF0aW9uX3BhdGguTGVnYWN5UG9saWN5UnVsZV9yYXdNZXNzYWdlU2lnbmluZ19kZXJpdmF0aW9uUGF0aCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjMzNwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXBwbHlfZm9yX2FwcHJvdmUgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXBwbHlfZm9yX3R5cGVkX21lc3NhZ2UgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfZGVzY3JpcHRvciA9ICcnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGNoZWNrX3Jlc3VsdCA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfY2hlY2tfcmVzdWx0LkxlZ2FjeVBvbGljeUNoZWNrUmVzdWx0KAogICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICByZXN1bHRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfY2hlY2tfcmVzdWx0LkxlZ2FjeVBvbGljeVJ1bGVDaGVja1Jlc3VsdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ29rJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2Vycm9yLkxlZ2FjeVBvbGljeVJ1bGVFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfbWVzc2FnZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZSA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZV9uYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9maWVsZCA9ICdvcGVyYXRvcicsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sICksCiAgICAgICAgICAgICAgICBtZXRhZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfbWV0YWRhdGEuTGVnYWN5UG9saWN5TWV0YWRhdGEoCiAgICAgICAgICAgICAgICAgICAgZWRpdGVkX2J5ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGVkaXRlZF9hdCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZWRfYnkgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgcHVibGlzaGVkX2F0ID0gJycsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBMZWdhY3lQdWJsaXNoUmVzdWx0KAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ1NVQ0NFU1MnLAogICAgICAgICAgICAgICAgcnVsZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlLkxlZ2FjeVBvbGljeVJ1bGUoCiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcnMgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfb3BlcmF0b3JzLkxlZ2FjeVBvbGljeVJ1bGVfb3BlcmF0b3JzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsZGNhcmQgPSAnKicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzX2dyb3VwcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25fdHlwZSA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNpZ25hdGVkX3NpZ25lciA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzaWduYXRlZF9zaWduZXJzID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2Rlc2lnbmF0ZWRfc2lnbmVycy5MZWdhY3lQb2xpY3lSdWxlX2Rlc2lnbmF0ZWRTaWduZXJzKCksIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1RSQU5TRkVSJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdBTExPVycsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3JjX3R5cGUgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3JjX3N1Yl90eXBlID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIHNyY19pZCA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBzcmMgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfc3JjLkxlZ2FjeVBvbGljeVJ1bGVfc3JjKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRzdF90eXBlID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRzdF9zdWJfdHlwZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBkc3RfaWQgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgZHN0ID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2RzdC5MZWdhY3lQb2xpY3lSdWxlX2RzdCgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgZHN0X2FkZHJlc3NfdHlwZSA9ICdXSElURUxJU1RFRCcsIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfY3VycmVuY3kgPSAnVVNEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudF9zY29wZSA9ICdTSU5HTEVfVFgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmlvZF9zZWMgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml6ZXJzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpemVyc19jb3VudCA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXphdGlvbl9ncm91cHMgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfYXV0aG9yaXphdGlvbl9ncm91cHMuTGVnYWN5UG9saWN5UnVsZV9hdXRob3JpemF0aW9uR3JvdXBzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9naWMgPSAnQU5EJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd19vcGVyYXRvcl9hc19hdXRob3JpemVyID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX2F1dGhvcml6YXRpb25fZ3JvdXBzX2dyb3Vwc19pbm5lci5MZWdhY3lQb2xpY3lSdWxlX2F1dGhvcml6YXRpb25Hcm91cHNfZ3JvdXBzX2lubmVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aCA9IDEuMzM3LCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudF9hZ2dyZWdhdGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9hbW91bnRfYWdncmVnYXRpb24uTGVnYWN5UG9saWN5UnVsZV9hbW91bnRBZ2dyZWdhdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY190cmFuc2Zlcl9wZWVycyA9ICdQRVJfU0lOR0xFX01BVENIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3RfdHJhbnNmZXJfcGVlcnMgPSAnUEVSX1NJTkdMRV9NQVRDSCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICByYXdfbWVzc2FnZV9zaWduaW5nID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9ydWxlX3Jhd19tZXNzYWdlX3NpZ25pbmcuTGVnYWN5UG9saWN5UnVsZV9yYXdNZXNzYWdlU2lnbmluZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZ29yaXRobSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcml2YXRpb25fcGF0aCA9IGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9yYXdfbWVzc2FnZV9zaWduaW5nX2Rlcml2YXRpb25fcGF0aC5MZWdhY3lQb2xpY3lSdWxlX3Jhd01lc3NhZ2VTaWduaW5nX2Rlcml2YXRpb25QYXRoKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMzM3CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksICksIAogICAgICAgICAgICAgICAgICAgICAgICBhcHBseV9mb3JfYXBwcm92ZSA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICBhcHBseV9mb3JfdHlwZWRfbWVzc2FnZSA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICBleHRlcm5hbF9kZXNjcmlwdG9yID0gJycsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgY2hlY2tfcmVzdWx0ID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9jaGVja19yZXN1bHQuTGVnYWN5UG9saWN5Q2hlY2tSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgIHJlc3VsdHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9wb2xpY3lfcnVsZV9jaGVja19yZXN1bHQuTGVnYWN5UG9saWN5UnVsZUNoZWNrUmVzdWx0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnb2snLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5sZWdhY3lfcG9saWN5X3J1bGVfZXJyb3IuTGVnYWN5UG9saWN5UnVsZUVycm9yKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9tZXNzYWdlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlX25hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2ZpZWxkID0gJ29wZXJhdG9yJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwKICAgICAgICAgICAgICAgIG1ldGFkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMubGVnYWN5X3BvbGljeV9tZXRhZGF0YS5MZWdhY3lQb2xpY3lNZXRhZGF0YSgKICAgICAgICAgICAgICAgICAgICBlZGl0ZWRfYnkgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgZWRpdGVkX2F0ID0gJycsIAogICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlZF9ieSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZWRfYXQgPSAnJywgKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RMZWdhY3lQdWJsaXNoUmVzdWx0KHNlbGYpOgogICAgICAgICIiIlRlc3QgTGVnYWN5UHVibGlzaFJlc3VsdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_legacy_src_or_dest_attributes_inner.py b/test/test_legacy_src_or_dest_attributes_inner.py index fa6a2f50..3eb4cbb5 100644 --- a/test/test_legacy_src_or_dest_attributes_inner.py +++ b/test/test_legacy_src_or_dest_attributes_inner.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.legacy_src_or_dest_attributes_inner import ( - LegacySrcOrDestAttributesInner, -) - - -class TestLegacySrcOrDestAttributesInner(unittest.TestCase): - """LegacySrcOrDestAttributesInner unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LegacySrcOrDestAttributesInner: - """Test LegacySrcOrDestAttributesInner - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LegacySrcOrDestAttributesInner` - """ - model = LegacySrcOrDestAttributesInner() - if include_optional: - return LegacySrcOrDestAttributesInner( - ) - else: - return LegacySrcOrDestAttributesInner( - ) - """ - - def testLegacySrcOrDestAttributesInner(self): - """Test LegacySrcOrDestAttributesInner""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxlZ2FjeV9zcmNfb3JfZGVzdF9hdHRyaWJ1dGVzX2lubmVyIGltcG9ydCAoCiAgICBMZWdhY3lTcmNPckRlc3RBdHRyaWJ1dGVzSW5uZXIsCikKCgpjbGFzcyBUZXN0TGVnYWN5U3JjT3JEZXN0QXR0cmlidXRlc0lubmVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkxlZ2FjeVNyY09yRGVzdEF0dHJpYnV0ZXNJbm5lciB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gTGVnYWN5U3JjT3JEZXN0QXR0cmlidXRlc0lubmVyOgogICAgICAgICIiIlRlc3QgTGVnYWN5U3JjT3JEZXN0QXR0cmlidXRlc0lubmVyCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYExlZ2FjeVNyY09yRGVzdEF0dHJpYnV0ZXNJbm5lcmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IExlZ2FjeVNyY09yRGVzdEF0dHJpYnV0ZXNJbm5lcigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIExlZ2FjeVNyY09yRGVzdEF0dHJpYnV0ZXNJbm5lcigKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBMZWdhY3lTcmNPckRlc3RBdHRyaWJ1dGVzSW5uZXIoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TGVnYWN5U3JjT3JEZXN0QXR0cmlidXRlc0lubmVyKHNlbGYpOgogICAgICAgICIiIlRlc3QgTGVnYWN5U3JjT3JEZXN0QXR0cmlidXRlc0lubmVyIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_linked_tokens_count.py b/test/test_linked_tokens_count.py index 53c21f86..99c266f7 100644 --- a/test/test_linked_tokens_count.py +++ b/test/test_linked_tokens_count.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.linked_tokens_count import LinkedTokensCount - - -class TestLinkedTokensCount(unittest.TestCase): - """LinkedTokensCount unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LinkedTokensCount: - """Test LinkedTokensCount - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LinkedTokensCount` - """ - model = LinkedTokensCount() - if include_optional: - return LinkedTokensCount( - count = 42 - ) - else: - return LinkedTokensCount( - count = 42, - ) - """ - - def testLinkedTokensCount(self): - """Test LinkedTokensCount""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxpbmtlZF90b2tlbnNfY291bnQgaW1wb3J0IExpbmtlZFRva2Vuc0NvdW50CgoKY2xhc3MgVGVzdExpbmtlZFRva2Vuc0NvdW50KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkxpbmtlZFRva2Vuc0NvdW50IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBMaW5rZWRUb2tlbnNDb3VudDoKICAgICAgICAiIiJUZXN0IExpbmtlZFRva2Vuc0NvdW50CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYExpbmtlZFRva2Vuc0NvdW50YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTGlua2VkVG9rZW5zQ291bnQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBMaW5rZWRUb2tlbnNDb3VudCgKICAgICAgICAgICAgICAgIGNvdW50ID0gNDIKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBMaW5rZWRUb2tlbnNDb3VudCgKICAgICAgICAgICAgICAgIGNvdW50ID0gNDIsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TGlua2VkVG9rZW5zQ291bnQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBMaW5rZWRUb2tlbnNDb3VudCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_list_assets_response.py b/test/test_list_assets_response.py index 8e709c5e..9f68d094 100644 --- a/test/test_list_assets_response.py +++ b/test/test_list_assets_response.py @@ -1,139 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.list_assets_response import ListAssetsResponse - - -class TestListAssetsResponse(unittest.TestCase): - """ListAssetsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ListAssetsResponse: - """Test ListAssetsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ListAssetsResponse` - """ - model = ListAssetsResponse() - if include_optional: - return ListAssetsResponse( - data = [ - fireblocks.models.asset.Asset( - id = '9f9f7062-df90-4fc0-8697-96685184358d', - legacy_id = 'USDT_ERC20', - blockchain_id = 'e85208ff-3b15-44e9-af14-0ed0280b2a15', - display_name = 'Tether USD', - display_symbol = 'USDT', - provider_id = 'SOME_PROVIDER_ID', - pegged_asset_id = '6ef19b84-2144-4d38-8056-d423199bce5e', - assets = [ - '6ef19b84-2144-4d38-8056-d423199bce5e' - ], - asset_class = 'FT', - decimals = 2, - onchain = fireblocks.models.asset_details_onchain.AssetDetailsOnchain( - symbol = 'USDT', - name = 'Tether USD', - address = '0xdAC17F958D2ee523a2206206994597C13D831ec7', - decimals = 6, - standards = ["ERC20"], ), - metadata = fireblocks.models.asset_details_metadata.AssetDetailsMetadata( - scope = 'GLOBAL', - verified = False, - deprecated = False, - deprecation_referral_id = '056776ab-9efa-4219-9820-9ece0cc4d90d', - website = 'https://example.org', - media = [ - fireblocks.models.asset_media.AssetMedia( - url = 'https://example.com/image.png', - type = 'image/svg+xml', - attributes = fireblocks.models.asset_media_attributes.AssetMedia_attributes( - monochrome = True, ), ) - ], - note = fireblocks.models.asset_note.AssetNote( - text = 'Pay attention to gas fees', - user_id = '056776ab-9efa-4219-9820-9ece0cc4d90d', - user_name = 'Test test', - updated_at = '2025-06-08T19:42:49Z', ), - features = [ - 'STABLECOIN' - ], ), ) - ], - next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9' - ) - else: - return ListAssetsResponse( - data = [ - fireblocks.models.asset.Asset( - id = '9f9f7062-df90-4fc0-8697-96685184358d', - legacy_id = 'USDT_ERC20', - blockchain_id = 'e85208ff-3b15-44e9-af14-0ed0280b2a15', - display_name = 'Tether USD', - display_symbol = 'USDT', - provider_id = 'SOME_PROVIDER_ID', - pegged_asset_id = '6ef19b84-2144-4d38-8056-d423199bce5e', - assets = [ - '6ef19b84-2144-4d38-8056-d423199bce5e' - ], - asset_class = 'FT', - decimals = 2, - onchain = fireblocks.models.asset_details_onchain.AssetDetailsOnchain( - symbol = 'USDT', - name = 'Tether USD', - address = '0xdAC17F958D2ee523a2206206994597C13D831ec7', - decimals = 6, - standards = ["ERC20"], ), - metadata = fireblocks.models.asset_details_metadata.AssetDetailsMetadata( - scope = 'GLOBAL', - verified = False, - deprecated = False, - deprecation_referral_id = '056776ab-9efa-4219-9820-9ece0cc4d90d', - website = 'https://example.org', - media = [ - fireblocks.models.asset_media.AssetMedia( - url = 'https://example.com/image.png', - type = 'image/svg+xml', - attributes = fireblocks.models.asset_media_attributes.AssetMedia_attributes( - monochrome = True, ), ) - ], - note = fireblocks.models.asset_note.AssetNote( - text = 'Pay attention to gas fees', - user_id = '056776ab-9efa-4219-9820-9ece0cc4d90d', - user_name = 'Test test', - updated_at = '2025-06-08T19:42:49Z', ), - features = [ - 'STABLECOIN' - ], ), ) - ], - next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9', - ) - """ - - def testListAssetsResponse(self): - """Test ListAssetsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxpc3RfYXNzZXRzX3Jlc3BvbnNlIGltcG9ydCBMaXN0QXNzZXRzUmVzcG9uc2UKCgpjbGFzcyBUZXN0TGlzdEFzc2V0c1Jlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkxpc3RBc3NldHNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gTGlzdEFzc2V0c1Jlc3BvbnNlOgogICAgICAgICIiIlRlc3QgTGlzdEFzc2V0c1Jlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYExpc3RBc3NldHNSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IExpc3RBc3NldHNSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIExpc3RBc3NldHNSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXQuQXNzZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJzlmOWY3MDYyLWRmOTAtNGZjMC04Njk3LTk2Njg1MTg0MzU4ZCcsIAogICAgICAgICAgICAgICAgICAgICAgICBsZWdhY3lfaWQgPSAnVVNEVF9FUkMyMCcsIAogICAgICAgICAgICAgICAgICAgICAgICBibG9ja2NoYWluX2lkID0gJ2U4NTIwOGZmLTNiMTUtNDRlOS1hZjE0LTBlZDAyODBiMmExNScsIAogICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5X25hbWUgPSAnVGV0aGVyIFVTRCcsIAogICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5X3N5bWJvbCA9ICdVU0RUJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyX2lkID0gJ1NPTUVfUFJPVklERVJfSUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcGVnZ2VkX2Fzc2V0X2lkID0gJzZlZjE5Yjg0LTIxNDQtNGQzOC04MDU2LWQ0MjMxOTliY2U1ZScsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnNmVmMTliODQtMjE0NC00ZDM4LTgwNTYtZDQyMzE5OWJjZTVlJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2NsYXNzID0gJ0ZUJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxzID0gMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIG9uY2hhaW4gPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9kZXRhaWxzX29uY2hhaW4uQXNzZXREZXRhaWxzT25jaGFpbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bWJvbCA9ICdVU0RUJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ1RldGhlciBVU0QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHhkQUMxN0Y5NThEMmVlNTIzYTIyMDYyMDY5OTQ1OTdDMTNEODMxZWM3JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFscyA9IDYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhbmRhcmRzID0gWyJFUkMyMCJdLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9kZXRhaWxzX21ldGFkYXRhLkFzc2V0RGV0YWlsc01ldGFkYXRhKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUgPSAnR0xPQkFMJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJpZmllZCA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHJlY2F0ZWQgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXByZWNhdGlvbl9yZWZlcnJhbF9pZCA9ICcwNTY3NzZhYi05ZWZhLTQyMTktOTgyMC05ZWNlMGNjNGQ5MGQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYnNpdGUgPSAnaHR0cHM6Ly9leGFtcGxlLm9yZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVkaWEgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfbWVkaWEuQXNzZXRNZWRpYSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vaW1hZ2UucG5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnaW1hZ2Uvc3ZnK3htbCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfbWVkaWFfYXR0cmlidXRlcy5Bc3NldE1lZGlhX2F0dHJpYnV0ZXMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb25vY2hyb21lID0gVHJ1ZSwgKSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90ZSA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X25vdGUuQXNzZXROb3RlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgPSAnUGF5IGF0dGVudGlvbiB0byBnYXMgZmVlcycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJfaWQgPSAnMDU2Nzc2YWItOWVmYS00MjE5LTk4MjAtOWVjZTBjYzRkOTBkJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9uYW1lID0gJ1Rlc3QgdGVzdCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZWRfYXQgPSAnMjAyNS0wNi0wOFQxOTo0Mjo0OVonLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlYXR1cmVzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTVEFCTEVDT0lOJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgbmV4dCA9ICdlSjBlWEFpT2lKS1YxUWlMQ0poYkdjT2lKSVV6STFOaUo5JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIExpc3RBc3NldHNSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXQuQXNzZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJzlmOWY3MDYyLWRmOTAtNGZjMC04Njk3LTk2Njg1MTg0MzU4ZCcsIAogICAgICAgICAgICAgICAgICAgICAgICBsZWdhY3lfaWQgPSAnVVNEVF9FUkMyMCcsIAogICAgICAgICAgICAgICAgICAgICAgICBibG9ja2NoYWluX2lkID0gJ2U4NTIwOGZmLTNiMTUtNDRlOS1hZjE0LTBlZDAyODBiMmExNScsIAogICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5X25hbWUgPSAnVGV0aGVyIFVTRCcsIAogICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5X3N5bWJvbCA9ICdVU0RUJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyX2lkID0gJ1NPTUVfUFJPVklERVJfSUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcGVnZ2VkX2Fzc2V0X2lkID0gJzZlZjE5Yjg0LTIxNDQtNGQzOC04MDU2LWQ0MjMxOTliY2U1ZScsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnNmVmMTliODQtMjE0NC00ZDM4LTgwNTYtZDQyMzE5OWJjZTVlJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2NsYXNzID0gJ0ZUJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxzID0gMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIG9uY2hhaW4gPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9kZXRhaWxzX29uY2hhaW4uQXNzZXREZXRhaWxzT25jaGFpbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bWJvbCA9ICdVU0RUJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ1RldGhlciBVU0QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHhkQUMxN0Y5NThEMmVlNTIzYTIyMDYyMDY5OTQ1OTdDMTNEODMxZWM3JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFscyA9IDYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhbmRhcmRzID0gWyJFUkMyMCJdLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9kZXRhaWxzX21ldGFkYXRhLkFzc2V0RGV0YWlsc01ldGFkYXRhKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUgPSAnR0xPQkFMJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJpZmllZCA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHJlY2F0ZWQgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXByZWNhdGlvbl9yZWZlcnJhbF9pZCA9ICcwNTY3NzZhYi05ZWZhLTQyMTktOTgyMC05ZWNlMGNjNGQ5MGQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYnNpdGUgPSAnaHR0cHM6Ly9leGFtcGxlLm9yZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVkaWEgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfbWVkaWEuQXNzZXRNZWRpYSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vaW1hZ2UucG5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnaW1hZ2Uvc3ZnK3htbCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfbWVkaWFfYXR0cmlidXRlcy5Bc3NldE1lZGlhX2F0dHJpYnV0ZXMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb25vY2hyb21lID0gVHJ1ZSwgKSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90ZSA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X25vdGUuQXNzZXROb3RlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgPSAnUGF5IGF0dGVudGlvbiB0byBnYXMgZmVlcycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJfaWQgPSAnMDU2Nzc2YWItOWVmYS00MjE5LTk4MjAtOWVjZTBjYzRkOTBkJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9uYW1lID0gJ1Rlc3QgdGVzdCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZWRfYXQgPSAnMjAyNS0wNi0wOFQxOTo0Mjo0OVonLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlYXR1cmVzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTVEFCTEVDT0lOJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgbmV4dCA9ICdlSjBlWEFpT2lKS1YxUWlMQ0poYkdjT2lKSVV6STFOaUo5JywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RMaXN0QXNzZXRzUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBMaXN0QXNzZXRzUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_list_blockchains_response.py b/test/test_list_blockchains_response.py index 14a990ea..170a1474 100644 --- a/test/test_list_blockchains_response.py +++ b/test/test_list_blockchains_response.py @@ -1,105 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.list_blockchains_response import ListBlockchainsResponse - - -class TestListBlockchainsResponse(unittest.TestCase): - """ListBlockchainsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ListBlockchainsResponse: - """Test ListBlockchainsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ListBlockchainsResponse` - """ - model = ListBlockchainsResponse() - if include_optional: - return ListBlockchainsResponse( - data = [ - fireblocks.models.blockchain_response.BlockchainResponse( - id = '9f9f7062-df90-4fc0-8697-96685184357b', - legacy_id = 'ETH', - display_name = 'Ethereum', - native_asset_id = '9f9f7062-df90-4fc0-8697-96685184356a', - onchain = fireblocks.models.blockchain_onchain.BlockchainOnchain( - protocol = 'EVM', - chain_id = '1', - test = False, - signing_algo = 'ECDSA_SECP256K1', ), - metadata = fireblocks.models.blockchain_metadata.BlockchainMetadata( - scope = 'GLOBAL', - deprecated = False, - media = [ - fireblocks.models.blockchain_media.BlockchainMedia( - url = 'https://example.com/image.png', - type = 'image/svg+xml', ) - ], - explorer = fireblocks.models.blockchain_explorer.BlockchainExplorer( - base = 'https://example.com', - address = 'https://example.com/address/{address}', - tx = 'https://example.com/tx/{tx}', - token = 'https://example.com/nft/{contract}/{tokenId}', ), ), ) - ], - next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9' - ) - else: - return ListBlockchainsResponse( - data = [ - fireblocks.models.blockchain_response.BlockchainResponse( - id = '9f9f7062-df90-4fc0-8697-96685184357b', - legacy_id = 'ETH', - display_name = 'Ethereum', - native_asset_id = '9f9f7062-df90-4fc0-8697-96685184356a', - onchain = fireblocks.models.blockchain_onchain.BlockchainOnchain( - protocol = 'EVM', - chain_id = '1', - test = False, - signing_algo = 'ECDSA_SECP256K1', ), - metadata = fireblocks.models.blockchain_metadata.BlockchainMetadata( - scope = 'GLOBAL', - deprecated = False, - media = [ - fireblocks.models.blockchain_media.BlockchainMedia( - url = 'https://example.com/image.png', - type = 'image/svg+xml', ) - ], - explorer = fireblocks.models.blockchain_explorer.BlockchainExplorer( - base = 'https://example.com', - address = 'https://example.com/address/{address}', - tx = 'https://example.com/tx/{tx}', - token = 'https://example.com/nft/{contract}/{tokenId}', ), ), ) - ], - next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9', - ) - """ - - def testListBlockchainsResponse(self): - """Test ListBlockchainsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxpc3RfYmxvY2tjaGFpbnNfcmVzcG9uc2UgaW1wb3J0IExpc3RCbG9ja2NoYWluc1Jlc3BvbnNlCgoKY2xhc3MgVGVzdExpc3RCbG9ja2NoYWluc1Jlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIkxpc3RCbG9ja2NoYWluc1Jlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBMaXN0QmxvY2tjaGFpbnNSZXNwb25zZToKICAgICAgICAiIiJUZXN0IExpc3RCbG9ja2NoYWluc1Jlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYExpc3RCbG9ja2NoYWluc1Jlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTGlzdEJsb2NrY2hhaW5zUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBMaXN0QmxvY2tjaGFpbnNSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9yZXNwb25zZS5CbG9ja2NoYWluUmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJzlmOWY3MDYyLWRmOTAtNGZjMC04Njk3LTk2Njg1MTg0MzU3YicsIAogICAgICAgICAgICAgICAgICAgICAgICBsZWdhY3lfaWQgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlfbmFtZSA9ICdFdGhlcmV1bScsIAogICAgICAgICAgICAgICAgICAgICAgICBuYXRpdmVfYXNzZXRfaWQgPSAnOWY5ZjcwNjItZGY5MC00ZmMwLTg2OTctOTY2ODUxODQzNTZhJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG9uY2hhaW4gPSBmaXJlYmxvY2tzLm1vZGVscy5ibG9ja2NoYWluX29uY2hhaW4uQmxvY2tjaGFpbk9uY2hhaW4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90b2NvbCA9ICdFVk0nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYWluX2lkID0gJzEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduaW5nX2FsZ28gPSAnRUNEU0FfU0VDUDI1NksxJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9tZXRhZGF0YS5CbG9ja2NoYWluTWV0YWRhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29wZSA9ICdHTE9CQUwnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHJlY2F0ZWQgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWRpYSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5ibG9ja2NoYWluX21lZGlhLkJsb2NrY2hhaW5NZWRpYSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vaW1hZ2UucG5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnaW1hZ2Uvc3ZnK3htbCcsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxvcmVyID0gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9leHBsb3Jlci5CbG9ja2NoYWluRXhwbG9yZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZSA9ICdodHRwczovL2V4YW1wbGUuY29tJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9ICdodHRwczovL2V4YW1wbGUuY29tL2FkZHJlc3Mve2FkZHJlc3N9JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHggPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS90eC97dHh9JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS9uZnQve2NvbnRyYWN0fS97dG9rZW5JZH0nLCApLCApLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIG5leHQgPSAnZUowZVhBaU9pSktWMVFpTENKaGJHY09pSklVekkxTmlKOScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBMaXN0QmxvY2tjaGFpbnNSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9yZXNwb25zZS5CbG9ja2NoYWluUmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJzlmOWY3MDYyLWRmOTAtNGZjMC04Njk3LTk2Njg1MTg0MzU3YicsIAogICAgICAgICAgICAgICAgICAgICAgICBsZWdhY3lfaWQgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlfbmFtZSA9ICdFdGhlcmV1bScsIAogICAgICAgICAgICAgICAgICAgICAgICBuYXRpdmVfYXNzZXRfaWQgPSAnOWY5ZjcwNjItZGY5MC00ZmMwLTg2OTctOTY2ODUxODQzNTZhJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG9uY2hhaW4gPSBmaXJlYmxvY2tzLm1vZGVscy5ibG9ja2NoYWluX29uY2hhaW4uQmxvY2tjaGFpbk9uY2hhaW4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90b2NvbCA9ICdFVk0nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYWluX2lkID0gJzEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduaW5nX2FsZ28gPSAnRUNEU0FfU0VDUDI1NksxJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9tZXRhZGF0YS5CbG9ja2NoYWluTWV0YWRhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29wZSA9ICdHTE9CQUwnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHJlY2F0ZWQgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWRpYSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5ibG9ja2NoYWluX21lZGlhLkJsb2NrY2hhaW5NZWRpYSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vaW1hZ2UucG5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnaW1hZ2Uvc3ZnK3htbCcsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxvcmVyID0gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tjaGFpbl9leHBsb3Jlci5CbG9ja2NoYWluRXhwbG9yZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZSA9ICdodHRwczovL2V4YW1wbGUuY29tJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9ICdodHRwczovL2V4YW1wbGUuY29tL2FkZHJlc3Mve2FkZHJlc3N9JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHggPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS90eC97dHh9JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS9uZnQve2NvbnRyYWN0fS97dG9rZW5JZH0nLCApLCApLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIG5leHQgPSAnZUowZVhBaU9pSktWMVFpTENKaGJHY09pSklVekkxTmlKOScsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TGlzdEJsb2NrY2hhaW5zUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBMaXN0QmxvY2tjaGFpbnNSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_list_owned_collections_response.py b/test/test_list_owned_collections_response.py index 7455517c..dadac001 100644 --- a/test/test_list_owned_collections_response.py +++ b/test/test_list_owned_collections_response.py @@ -1,66 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.list_owned_collections_response import ( - ListOwnedCollectionsResponse, -) - - -class TestListOwnedCollectionsResponse(unittest.TestCase): - """ListOwnedCollectionsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ListOwnedCollectionsResponse: - """Test ListOwnedCollectionsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ListOwnedCollectionsResponse` - """ - model = ListOwnedCollectionsResponse() - if include_optional: - return ListOwnedCollectionsResponse( - paging = fireblocks.models.paging.Paging( - next = '', ), - data = [ - fireblocks.models.collection_ownership_response.CollectionOwnershipResponse( - id = '', - name = '', - symbol = '', - standard = '', - blockchain_descriptor = 'ETH', - contract_address = '', ) - ] - ) - else: - return ListOwnedCollectionsResponse( - ) - """ - - def testListOwnedCollectionsResponse(self): - """Test ListOwnedCollectionsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxpc3Rfb3duZWRfY29sbGVjdGlvbnNfcmVzcG9uc2UgaW1wb3J0ICgKICAgIExpc3RPd25lZENvbGxlY3Rpb25zUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0TGlzdE93bmVkQ29sbGVjdGlvbnNSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJMaXN0T3duZWRDb2xsZWN0aW9uc1Jlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBMaXN0T3duZWRDb2xsZWN0aW9uc1Jlc3BvbnNlOgogICAgICAgICIiIlRlc3QgTGlzdE93bmVkQ29sbGVjdGlvbnNSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBMaXN0T3duZWRDb2xsZWN0aW9uc1Jlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTGlzdE93bmVkQ29sbGVjdGlvbnNSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIExpc3RPd25lZENvbGxlY3Rpb25zUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBwYWdpbmcgPSBmaXJlYmxvY2tzLm1vZGVscy5wYWdpbmcuUGFnaW5nKAogICAgICAgICAgICAgICAgICAgIG5leHQgPSAnJywgKSwKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuY29sbGVjdGlvbl9vd25lcnNoaXBfcmVzcG9uc2UuQ29sbGVjdGlvbk93bmVyc2hpcFJlc3BvbnNlKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9sID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBzdGFuZGFyZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tjaGFpbl9kZXNjcmlwdG9yID0gJ0VUSCcsIAogICAgICAgICAgICAgICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzID0gJycsICkKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTGlzdE93bmVkQ29sbGVjdGlvbnNSZXNwb25zZSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RMaXN0T3duZWRDb2xsZWN0aW9uc1Jlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgTGlzdE93bmVkQ29sbGVjdGlvbnNSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_list_owned_tokens_response.py b/test/test_list_owned_tokens_response.py index 6a0ac688..ff4a8c4c 100644 --- a/test/test_list_owned_tokens_response.py +++ b/test/test_list_owned_tokens_response.py @@ -1,73 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.list_owned_tokens_response import ListOwnedTokensResponse - - -class TestListOwnedTokensResponse(unittest.TestCase): - """ListOwnedTokensResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ListOwnedTokensResponse: - """Test ListOwnedTokensResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ListOwnedTokensResponse` - """ - model = ListOwnedTokensResponse() - if include_optional: - return ListOwnedTokensResponse( - paging = fireblocks.models.paging.Paging( - next = '', ), - data = [ - fireblocks.models.token_response.TokenResponse( - id = '', - token_id = '', - standard = '', - metadata_uri = '', - cached_metadata_uri = '', - media = [ - fireblocks.models.media_entity_response.MediaEntityResponse( - url = '', - content_type = 'IMAGE', ) - ], - spam = null, - collection = null, - blockchain_descriptor = 'ETH', - description = '', - name = '', ) - ] - ) - else: - return ListOwnedTokensResponse( - ) - """ - - def testListOwnedTokensResponse(self): - """Test ListOwnedTokensResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxpc3Rfb3duZWRfdG9rZW5zX3Jlc3BvbnNlIGltcG9ydCBMaXN0T3duZWRUb2tlbnNSZXNwb25zZQoKCmNsYXNzIFRlc3RMaXN0T3duZWRUb2tlbnNSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJMaXN0T3duZWRUb2tlbnNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gTGlzdE93bmVkVG9rZW5zUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBMaXN0T3duZWRUb2tlbnNSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBMaXN0T3duZWRUb2tlbnNSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IExpc3RPd25lZFRva2Vuc1Jlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTGlzdE93bmVkVG9rZW5zUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBwYWdpbmcgPSBmaXJlYmxvY2tzLm1vZGVscy5wYWdpbmcuUGFnaW5nKAogICAgICAgICAgICAgICAgICAgIG5leHQgPSAnJywgKSwKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fcmVzcG9uc2UuVG9rZW5SZXNwb25zZSgKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuX2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBzdGFuZGFyZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGFfdXJpID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBjYWNoZWRfbWV0YWRhdGFfdXJpID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBtZWRpYSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLm1lZGlhX2VudGl0eV9yZXNwb25zZS5NZWRpYUVudGl0eVJlc3BvbnNlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGUgPSAnSU1BR0UnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3BhbSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrY2hhaW5fZGVzY3JpcHRvciA9ICdFVEgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnJywgKQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBMaXN0T3duZWRUb2tlbnNSZXNwb25zZSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RMaXN0T3duZWRUb2tlbnNSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IExpc3RPd25lZFRva2Vuc1Jlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_local_bank_transfer_africa_address.py b/test/test_local_bank_transfer_africa_address.py index 55d778ff..6dc7329a 100644 --- a/test/test_local_bank_transfer_africa_address.py +++ b/test/test_local_bank_transfer_africa_address.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.local_bank_transfer_africa_address import ( - LocalBankTransferAfricaAddress, -) - - -class TestLocalBankTransferAfricaAddress(unittest.TestCase): - """LocalBankTransferAfricaAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LocalBankTransferAfricaAddress: - """Test LocalBankTransferAfricaAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LocalBankTransferAfricaAddress` - """ - model = LocalBankTransferAfricaAddress() - if include_optional: - return LocalBankTransferAfricaAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - account_number = '1234567890123', - bank_name = '', - bank_code = '', - success_payment_instruction_redirect_url = '', - payment_redirect = fireblocks.models.payment_redirect.PaymentRedirect( - url = 'https://yellowcard.example.com/authorize?token=abc123&transactionId=16b8b2c3-bd61-4745-9c48-3d30c2bc6907', - expires_at = '2025-01-15T12:00:00Z', ) - ) - else: - return LocalBankTransferAfricaAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - account_number = '1234567890123', - bank_name = '', - bank_code = '', - ) - """ - - def testLocalBankTransferAfricaAddress(self): - """Test LocalBankTransferAfricaAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxvY2FsX2JhbmtfdHJhbnNmZXJfYWZyaWNhX2FkZHJlc3MgaW1wb3J0ICgKICAgIExvY2FsQmFua1RyYW5zZmVyQWZyaWNhQWRkcmVzcywKKQoKCmNsYXNzIFRlc3RMb2NhbEJhbmtUcmFuc2ZlckFmcmljYUFkZHJlc3ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FBZGRyZXNzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBMb2NhbEJhbmtUcmFuc2ZlckFmcmljYUFkZHJlc3M6CiAgICAgICAgIiIiVGVzdCBMb2NhbEJhbmtUcmFuc2ZlckFmcmljYUFkZHJlc3MKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FBZGRyZXNzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FBZGRyZXNzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FBZGRyZXNzKAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXIgPSB7Im5hbWUiOiJKb2huIFNtaXRoIiwiY2l0eSI6Ik5ldyBZb3JrIiwiY291bnRyeSI6IlVTIiwic3ViZGl2aXNpb24iOiJOWSIsImFkZHJlc3MiOiIxMjMgV2FsbCBTdHJlZXQsIEFwdCA0QiIsInBvc3RhbENvZGUiOiIxMDAwNSJ9LAogICAgICAgICAgICAgICAgYWNjb3VudF9udW1iZXIgPSAnMTIzNDU2Nzg5MDEyMycsCiAgICAgICAgICAgICAgICBiYW5rX25hbWUgPSAnJywKICAgICAgICAgICAgICAgIGJhbmtfY29kZSA9ICcnLAogICAgICAgICAgICAgICAgc3VjY2Vzc19wYXltZW50X2luc3RydWN0aW9uX3JlZGlyZWN0X3VybCA9ICcnLAogICAgICAgICAgICAgICAgcGF5bWVudF9yZWRpcmVjdCA9IGZpcmVibG9ja3MubW9kZWxzLnBheW1lbnRfcmVkaXJlY3QuUGF5bWVudFJlZGlyZWN0KAogICAgICAgICAgICAgICAgICAgIHVybCA9ICdodHRwczovL3llbGxvd2NhcmQuZXhhbXBsZS5jb20vYXV0aG9yaXplP3Rva2VuPWFiYzEyMyZ0cmFuc2FjdGlvbklkPTE2YjhiMmMzLWJkNjEtNDc0NS05YzQ4LTNkMzBjMmJjNjkwNycsIAogICAgICAgICAgICAgICAgICAgIGV4cGlyZXNfYXQgPSAnMjAyNS0wMS0xNVQxMjowMDowMFonLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FBZGRyZXNzKAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXIgPSB7Im5hbWUiOiJKb2huIFNtaXRoIiwiY2l0eSI6Ik5ldyBZb3JrIiwiY291bnRyeSI6IlVTIiwic3ViZGl2aXNpb24iOiJOWSIsImFkZHJlc3MiOiIxMjMgV2FsbCBTdHJlZXQsIEFwdCA0QiIsInBvc3RhbENvZGUiOiIxMDAwNSJ9LAogICAgICAgICAgICAgICAgYWNjb3VudF9udW1iZXIgPSAnMTIzNDU2Nzg5MDEyMycsCiAgICAgICAgICAgICAgICBiYW5rX25hbWUgPSAnJywKICAgICAgICAgICAgICAgIGJhbmtfY29kZSA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdExvY2FsQmFua1RyYW5zZmVyQWZyaWNhQWRkcmVzcyhzZWxmKToKICAgICAgICAiIiJUZXN0IExvY2FsQmFua1RyYW5zZmVyQWZyaWNhQWRkcmVzcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_local_bank_transfer_africa_destination.py b/test/test_local_bank_transfer_africa_destination.py index 23df3904..17a9b59c 100644 --- a/test/test_local_bank_transfer_africa_destination.py +++ b/test/test_local_bank_transfer_africa_destination.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.local_bank_transfer_africa_destination import ( - LocalBankTransferAfricaDestination, -) - - -class TestLocalBankTransferAfricaDestination(unittest.TestCase): - """LocalBankTransferAfricaDestination unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> LocalBankTransferAfricaDestination: - """Test LocalBankTransferAfricaDestination - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `LocalBankTransferAfricaDestination` - """ - model = LocalBankTransferAfricaDestination() - if include_optional: - return LocalBankTransferAfricaDestination( - type = 'LOCAL_BANK_TRANSFER', - address = {"accountHolder":{"name":"Adaora Okafor","city":"Lagos","country":"NG","subdivision":"LA","address":"15 Victoria Island Road","postalCode":"101001"},"accountNumber":"1234567890123","bankName":"First Bank of Nigeria","bankCode":"011","successPaymentInstructionRedirectUrl":"https://yellowcard.example.com/authorize?token=abc123&transactionId=16b8b2c3-bd61-4745-9c48-3d30c2bc6907","paymentRedirect":{"url":"https://yellowcard.example.com/authorize?token=abc123&transactionId=16b8b2c3-bd61-4745-9c48-3d30c2bc6907","expiresAt":"2025-01-15T12:00:00Z"}} - ) - else: - return LocalBankTransferAfricaDestination( - type = 'LOCAL_BANK_TRANSFER', - address = {"accountHolder":{"name":"Adaora Okafor","city":"Lagos","country":"NG","subdivision":"LA","address":"15 Victoria Island Road","postalCode":"101001"},"accountNumber":"1234567890123","bankName":"First Bank of Nigeria","bankCode":"011","successPaymentInstructionRedirectUrl":"https://yellowcard.example.com/authorize?token=abc123&transactionId=16b8b2c3-bd61-4745-9c48-3d30c2bc6907","paymentRedirect":{"url":"https://yellowcard.example.com/authorize?token=abc123&transactionId=16b8b2c3-bd61-4745-9c48-3d30c2bc6907","expiresAt":"2025-01-15T12:00:00Z"}}, - ) - """ - - def testLocalBankTransferAfricaDestination(self): - """Test LocalBankTransferAfricaDestination""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLmxvY2FsX2JhbmtfdHJhbnNmZXJfYWZyaWNhX2Rlc3RpbmF0aW9uIGltcG9ydCAoCiAgICBMb2NhbEJhbmtUcmFuc2ZlckFmcmljYURlc3RpbmF0aW9uLAopCgoKY2xhc3MgVGVzdExvY2FsQmFua1RyYW5zZmVyQWZyaWNhRGVzdGluYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FEZXN0aW5hdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FEZXN0aW5hdGlvbjoKICAgICAgICAiIiJUZXN0IExvY2FsQmFua1RyYW5zZmVyQWZyaWNhRGVzdGluYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FEZXN0aW5hdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IExvY2FsQmFua1RyYW5zZmVyQWZyaWNhRGVzdGluYXRpb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBMb2NhbEJhbmtUcmFuc2ZlckFmcmljYURlc3RpbmF0aW9uKAogICAgICAgICAgICAgICAgdHlwZSA9ICdMT0NBTF9CQU5LX1RSQU5TRkVSJywKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSB7ImFjY291bnRIb2xkZXIiOnsibmFtZSI6IkFkYW9yYSBPa2Fmb3IiLCJjaXR5IjoiTGFnb3MiLCJjb3VudHJ5IjoiTkciLCJzdWJkaXZpc2lvbiI6IkxBIiwiYWRkcmVzcyI6IjE1IFZpY3RvcmlhIElzbGFuZCBSb2FkIiwicG9zdGFsQ29kZSI6IjEwMTAwMSJ9LCJhY2NvdW50TnVtYmVyIjoiMTIzNDU2Nzg5MDEyMyIsImJhbmtOYW1lIjoiRmlyc3QgQmFuayBvZiBOaWdlcmlhIiwiYmFua0NvZGUiOiIwMTEiLCJzdWNjZXNzUGF5bWVudEluc3RydWN0aW9uUmVkaXJlY3RVcmwiOiJodHRwczovL3llbGxvd2NhcmQuZXhhbXBsZS5jb20vYXV0aG9yaXplP3Rva2VuPWFiYzEyMyZ0cmFuc2FjdGlvbklkPTE2YjhiMmMzLWJkNjEtNDc0NS05YzQ4LTNkMzBjMmJjNjkwNyIsInBheW1lbnRSZWRpcmVjdCI6eyJ1cmwiOiJodHRwczovL3llbGxvd2NhcmQuZXhhbXBsZS5jb20vYXV0aG9yaXplP3Rva2VuPWFiYzEyMyZ0cmFuc2FjdGlvbklkPTE2YjhiMmMzLWJkNjEtNDc0NS05YzQ4LTNkMzBjMmJjNjkwNyIsImV4cGlyZXNBdCI6IjIwMjUtMDEtMTVUMTI6MDA6MDBaIn19CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FEZXN0aW5hdGlvbigKICAgICAgICAgICAgICAgIHR5cGUgPSAnTE9DQUxfQkFOS19UUkFOU0ZFUicsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0geyJhY2NvdW50SG9sZGVyIjp7Im5hbWUiOiJBZGFvcmEgT2thZm9yIiwiY2l0eSI6IkxhZ29zIiwiY291bnRyeSI6Ik5HIiwic3ViZGl2aXNpb24iOiJMQSIsImFkZHJlc3MiOiIxNSBWaWN0b3JpYSBJc2xhbmQgUm9hZCIsInBvc3RhbENvZGUiOiIxMDEwMDEifSwiYWNjb3VudE51bWJlciI6IjEyMzQ1Njc4OTAxMjMiLCJiYW5rTmFtZSI6IkZpcnN0IEJhbmsgb2YgTmlnZXJpYSIsImJhbmtDb2RlIjoiMDExIiwic3VjY2Vzc1BheW1lbnRJbnN0cnVjdGlvblJlZGlyZWN0VXJsIjoiaHR0cHM6Ly95ZWxsb3djYXJkLmV4YW1wbGUuY29tL2F1dGhvcml6ZT90b2tlbj1hYmMxMjMmdHJhbnNhY3Rpb25JZD0xNmI4YjJjMy1iZDYxLTQ3NDUtOWM0OC0zZDMwYzJiYzY5MDciLCJwYXltZW50UmVkaXJlY3QiOnsidXJsIjoiaHR0cHM6Ly95ZWxsb3djYXJkLmV4YW1wbGUuY29tL2F1dGhvcml6ZT90b2tlbj1hYmMxMjMmdHJhbnNhY3Rpb25JZD0xNmI4YjJjMy1iZDYxLTQ3NDUtOWM0OC0zZDMwYzJiYzY5MDciLCJleHBpcmVzQXQiOiIyMDI1LTAxLTE1VDEyOjAwOjAwWiJ9fSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RMb2NhbEJhbmtUcmFuc2ZlckFmcmljYURlc3RpbmF0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgTG9jYWxCYW5rVHJhbnNmZXJBZnJpY2FEZXN0aW5hdGlvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_manifest.py b/test/test_manifest.py index 41d99281..1bc0d149 100644 --- a/test/test_manifest.py +++ b/test/test_manifest.py @@ -1,65 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.manifest import Manifest - - -class TestManifest(unittest.TestCase): - """Manifest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Manifest: - """Test Manifest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Manifest` - """ - model = Manifest() - if include_optional: - return Manifest( - asset_types = [ - 'DIGITAL' - ], - capabilities = [ - 'TRADING' - ] - ) - else: - return Manifest( - asset_types = [ - 'DIGITAL' - ], - capabilities = [ - 'TRADING' - ], - ) - """ - - def testManifest(self): - """Test Manifest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hbmlmZXN0IGltcG9ydCBNYW5pZmVzdAoKCmNsYXNzIFRlc3RNYW5pZmVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJNYW5pZmVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gTWFuaWZlc3Q6CiAgICAgICAgIiIiVGVzdCBNYW5pZmVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBNYW5pZmVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IE1hbmlmZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTWFuaWZlc3QoCiAgICAgICAgICAgICAgICBvcmRlciA9IE5vbmUsCiAgICAgICAgICAgICAgICBxdW90ZSA9IE5vbmUsCiAgICAgICAgICAgICAgICByYXRlID0gZmlyZWJsb2Nrcy5tb2RlbHMubWFuaWZlc3RfYmFzZS5NYW5pZmVzdEJhc2UoCiAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkID0gVHJ1ZSwgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0KAogICAgICAgICAgICAgICAgb3JkZXIgPSBOb25lLAogICAgICAgICAgICAgICAgcXVvdGUgPSBOb25lLAogICAgICAgICAgICAgICAgcmF0ZSA9IGZpcmVibG9ja3MubW9kZWxzLm1hbmlmZXN0X2Jhc2UuTWFuaWZlc3RCYXNlKAogICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZCA9IFRydWUsICksCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TWFuaWZlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBNYW5pZmVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_manifest_base.py b/test/test_manifest_base.py new file mode 100644 index 00000000..d39226a5 --- /dev/null +++ b/test/test_manifest_base.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hbmlmZXN0X2Jhc2UgaW1wb3J0IE1hbmlmZXN0QmFzZQoKCmNsYXNzIFRlc3RNYW5pZmVzdEJhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTWFuaWZlc3RCYXNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBNYW5pZmVzdEJhc2U6CiAgICAgICAgIiIiVGVzdCBNYW5pZmVzdEJhc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTWFuaWZlc3RCYXNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTWFuaWZlc3RCYXNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTWFuaWZlc3RCYXNlKAogICAgICAgICAgICAgICAgc3VwcG9ydGVkID0gVHJ1ZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0QmFzZSgKICAgICAgICAgICAgICAgIHN1cHBvcnRlZCA9IFRydWUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TWFuaWZlc3RCYXNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgTWFuaWZlc3RCYXNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_manifest_order.py b/test/test_manifest_order.py new file mode 100644 index 00000000..1424dbcc --- /dev/null +++ b/test/test_manifest_order.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hbmlmZXN0X29yZGVyIGltcG9ydCBNYW5pZmVzdE9yZGVyCgoKY2xhc3MgVGVzdE1hbmlmZXN0T3JkZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTWFuaWZlc3RPcmRlciB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gTWFuaWZlc3RPcmRlcjoKICAgICAgICAiIiJUZXN0IE1hbmlmZXN0T3JkZXIKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTWFuaWZlc3RPcmRlcmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IE1hbmlmZXN0T3JkZXIoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdE9yZGVyKAogICAgICAgICAgICAgICAgc3VwcG9ydGVkID0gVHJ1ZSwKICAgICAgICAgICAgICAgIHNldHRsZW1lbnRfdHlwZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgJ0RWUCcKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgZXhlY3V0aW9uX3R5cGVzID0gWwogICAgICAgICAgICAgICAgICAgICdRVU9URScKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTWFuaWZlc3RPcmRlcigKICAgICAgICAgICAgICAgIHN1cHBvcnRlZCA9IFRydWUsCiAgICAgICAgICAgICAgICBleGVjdXRpb25fdHlwZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgJ1FVT1RFJwogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TWFuaWZlc3RPcmRlcihzZWxmKToKICAgICAgICAiIiJUZXN0IE1hbmlmZXN0T3JkZXIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_manifest_order_info.py b/test/test_manifest_order_info.py new file mode 100644 index 00000000..9d90c5b2 --- /dev/null +++ b/test/test_manifest_order_info.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hbmlmZXN0X29yZGVyX2luZm8gaW1wb3J0IE1hbmlmZXN0T3JkZXJJbmZvCgoKY2xhc3MgVGVzdE1hbmlmZXN0T3JkZXJJbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk1hbmlmZXN0T3JkZXJJbmZvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBNYW5pZmVzdE9yZGVySW5mbzoKICAgICAgICAiIiJUZXN0IE1hbmlmZXN0T3JkZXJJbmZvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYE1hbmlmZXN0T3JkZXJJbmZvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTWFuaWZlc3RPcmRlckluZm8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdE9yZGVySW5mbygKICAgICAgICAgICAgICAgIHNldHRsZW1lbnRfdHlwZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgJ0RWUCcKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgZXhlY3V0aW9uX3R5cGVzID0gWwogICAgICAgICAgICAgICAgICAgICdRVU9URScKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTWFuaWZlc3RPcmRlckluZm8oCiAgICAgICAgICAgICAgICBleGVjdXRpb25fdHlwZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgJ1FVT1RFJwogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TWFuaWZlc3RPcmRlckluZm8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBNYW5pZmVzdE9yZGVySW5mbyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_manifest_quote.py b/test/test_manifest_quote.py new file mode 100644 index 00000000..2c4500e6 --- /dev/null +++ b/test/test_manifest_quote.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hbmlmZXN0X3F1b3RlIGltcG9ydCBNYW5pZmVzdFF1b3RlCgoKY2xhc3MgVGVzdE1hbmlmZXN0UXVvdGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTWFuaWZlc3RRdW90ZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gTWFuaWZlc3RRdW90ZToKICAgICAgICAiIiJUZXN0IE1hbmlmZXN0UXVvdGUKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTWFuaWZlc3RRdW90ZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IE1hbmlmZXN0UXVvdGUoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdFF1b3RlKAogICAgICAgICAgICAgICAgc3VwcG9ydGVkID0gVHJ1ZSwKICAgICAgICAgICAgICAgIHNldHRsZW1lbnRfdHlwZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgJ0RWUCcKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTWFuaWZlc3RRdW90ZSgKICAgICAgICAgICAgICAgIHN1cHBvcnRlZCA9IFRydWUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TWFuaWZlc3RRdW90ZShzZWxmKToKICAgICAgICAiIiJUZXN0IE1hbmlmZXN0UXVvdGUiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_manifest_quote_info.py b/test/test_manifest_quote_info.py new file mode 100644 index 00000000..a0fad0e1 --- /dev/null +++ b/test/test_manifest_quote_info.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hbmlmZXN0X3F1b3RlX2luZm8gaW1wb3J0IE1hbmlmZXN0UXVvdGVJbmZvCgoKY2xhc3MgVGVzdE1hbmlmZXN0UXVvdGVJbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk1hbmlmZXN0UXVvdGVJbmZvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBNYW5pZmVzdFF1b3RlSW5mbzoKICAgICAgICAiIiJUZXN0IE1hbmlmZXN0UXVvdGVJbmZvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYE1hbmlmZXN0UXVvdGVJbmZvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTWFuaWZlc3RRdW90ZUluZm8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdFF1b3RlSW5mbygKICAgICAgICAgICAgICAgIHNldHRsZW1lbnRfdHlwZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgJ0RWUCcKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTWFuaWZlc3RRdW90ZUluZm8oCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TWFuaWZlc3RRdW90ZUluZm8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBNYW5pZmVzdFF1b3RlSW5mbyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_market_execution_request_details.py b/test/test_market_execution_request_details.py index 5651e4cd..f7b59856 100644 --- a/test/test_market_execution_request_details.py +++ b/test/test_market_execution_request_details.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.market_execution_request_details import ( - MarketExecutionRequestDetails, -) - - -class TestMarketExecutionRequestDetails(unittest.TestCase): - """MarketExecutionRequestDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> MarketExecutionRequestDetails: - """Test MarketExecutionRequestDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `MarketExecutionRequestDetails` - """ - model = MarketExecutionRequestDetails() - if include_optional: - return MarketExecutionRequestDetails( - type = 'MARKET', - side = 'BUY', - base_amount = '', - base_asset_id = '', - base_asset_rail = 'BLOCKCHAIN', - quote_asset_id = '', - quote_asset_rail = 'BLOCKCHAIN' - ) - else: - return MarketExecutionRequestDetails( - type = 'MARKET', - side = 'BUY', - base_amount = '', - base_asset_id = '', - quote_asset_id = '', - ) - """ - - def testMarketExecutionRequestDetails(self): - """Test MarketExecutionRequestDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hcmtldF9leGVjdXRpb25fcmVxdWVzdF9kZXRhaWxzIGltcG9ydCAoCiAgICBNYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlscywKKQoKCmNsYXNzIFRlc3RNYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlscyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJNYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlscyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gTWFya2V0RXhlY3V0aW9uUmVxdWVzdERldGFpbHM6CiAgICAgICAgIiIiVGVzdCBNYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlscwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBNYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlsc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IE1hcmtldEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTWFya2V0RXhlY3V0aW9uUmVxdWVzdERldGFpbHMoCiAgICAgICAgICAgICAgICB0eXBlID0gJ01BUktFVCcsCiAgICAgICAgICAgICAgICBzaWRlID0gJ0JVWScsCiAgICAgICAgICAgICAgICBiYXNlX2Ftb3VudCA9ICcnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldF9yYWlsID0gJ0JMT0NLQ0hBSU4nLAogICAgICAgICAgICAgICAgcXVvdGVfYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIHF1b3RlX2Fzc2V0X3JhaWwgPSAnQkxPQ0tDSEFJTicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBNYXJrZXRFeGVjdXRpb25SZXF1ZXN0RGV0YWlscygKICAgICAgICAgICAgICAgIHR5cGUgPSAnTUFSS0VUJywKICAgICAgICAgICAgICAgIHNpZGUgPSAnQlVZJywKICAgICAgICAgICAgICAgIGJhc2VfYW1vdW50ID0gJycsCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0X2lkID0gJycsCiAgICAgICAgICAgICAgICBxdW90ZV9hc3NldF9pZCA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdE1hcmtldEV4ZWN1dGlvblJlcXVlc3REZXRhaWxzKHNlbGYpOgogICAgICAgICIiIlRlc3QgTWFya2V0RXhlY3V0aW9uUmVxdWVzdERldGFpbHMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_market_execution_response_details.py b/test/test_market_execution_response_details.py index b7062979..378a2e0e 100644 --- a/test/test_market_execution_response_details.py +++ b/test/test_market_execution_response_details.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.market_execution_response_details import ( - MarketExecutionResponseDetails, -) - - -class TestMarketExecutionResponseDetails(unittest.TestCase): - """MarketExecutionResponseDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> MarketExecutionResponseDetails: - """Test MarketExecutionResponseDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `MarketExecutionResponseDetails` - """ - model = MarketExecutionResponseDetails() - if include_optional: - return MarketExecutionResponseDetails( - type = 'MARKET', - side = 'BUY', - base_amount = '', - base_asset_id = '', - base_asset_rail = 'BLOCKCHAIN', - quote_asset_id = '', - quote_asset_rail = 'BLOCKCHAIN' - ) - else: - return MarketExecutionResponseDetails( - type = 'MARKET', - side = 'BUY', - base_amount = '', - base_asset_id = '', - quote_asset_id = '', - ) - """ - - def testMarketExecutionResponseDetails(self): - """Test MarketExecutionResponseDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hcmtldF9leGVjdXRpb25fcmVzcG9uc2VfZGV0YWlscyBpbXBvcnQgKAogICAgTWFya2V0RXhlY3V0aW9uUmVzcG9uc2VEZXRhaWxzLAopCgoKY2xhc3MgVGVzdE1hcmtldEV4ZWN1dGlvblJlc3BvbnNlRGV0YWlscyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJNYXJrZXRFeGVjdXRpb25SZXNwb25zZURldGFpbHMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IE1hcmtldEV4ZWN1dGlvblJlc3BvbnNlRGV0YWlsczoKICAgICAgICAiIiJUZXN0IE1hcmtldEV4ZWN1dGlvblJlc3BvbnNlRGV0YWlscwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBNYXJrZXRFeGVjdXRpb25SZXNwb25zZURldGFpbHNgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBNYXJrZXRFeGVjdXRpb25SZXNwb25zZURldGFpbHMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBNYXJrZXRFeGVjdXRpb25SZXNwb25zZURldGFpbHMoCiAgICAgICAgICAgICAgICB0eXBlID0gJ01BUktFVCcsCiAgICAgICAgICAgICAgICBzaWRlID0gJ0JVWScsCiAgICAgICAgICAgICAgICBiYXNlX2Ftb3VudCA9ICcnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldF9yYWlsID0gJ0JMT0NLQ0hBSU4nLAogICAgICAgICAgICAgICAgcXVvdGVfYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIHF1b3RlX2Fzc2V0X3JhaWwgPSAnQkxPQ0tDSEFJTicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBNYXJrZXRFeGVjdXRpb25SZXNwb25zZURldGFpbHMoCiAgICAgICAgICAgICAgICB0eXBlID0gJ01BUktFVCcsCiAgICAgICAgICAgICAgICBzaWRlID0gJ0JVWScsCiAgICAgICAgICAgICAgICBiYXNlX2Ftb3VudCA9ICcnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgcXVvdGVfYXNzZXRfaWQgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RNYXJrZXRFeGVjdXRpb25SZXNwb25zZURldGFpbHMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBNYXJrZXRFeGVjdXRpb25SZXNwb25zZURldGFpbHMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_market_requote_request_details.py b/test/test_market_requote_request_details.py index 2afb01bf..51a8b6e1 100644 --- a/test/test_market_requote_request_details.py +++ b/test/test_market_requote_request_details.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.market_requote_request_details import MarketRequoteRequestDetails - - -class TestMarketRequoteRequestDetails(unittest.TestCase): - """MarketRequoteRequestDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> MarketRequoteRequestDetails: - """Test MarketRequoteRequestDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `MarketRequoteRequestDetails` - """ - model = MarketRequoteRequestDetails() - if include_optional: - return MarketRequoteRequestDetails( - type = 'MARKET' - ) - else: - return MarketRequoteRequestDetails( - type = 'MARKET', - ) - """ - - def testMarketRequoteRequestDetails(self): - """Test MarketRequoteRequestDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hcmtldF9yZXF1b3RlX3JlcXVlc3RfZGV0YWlscyBpbXBvcnQgTWFya2V0UmVxdW90ZVJlcXVlc3REZXRhaWxzCgoKY2xhc3MgVGVzdE1hcmtldFJlcXVvdGVSZXF1ZXN0RGV0YWlscyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJNYXJrZXRSZXF1b3RlUmVxdWVzdERldGFpbHMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IE1hcmtldFJlcXVvdGVSZXF1ZXN0RGV0YWlsczoKICAgICAgICAiIiJUZXN0IE1hcmtldFJlcXVvdGVSZXF1ZXN0RGV0YWlscwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBNYXJrZXRSZXF1b3RlUmVxdWVzdERldGFpbHNgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBNYXJrZXRSZXF1b3RlUmVxdWVzdERldGFpbHMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBNYXJrZXRSZXF1b3RlUmVxdWVzdERldGFpbHMoCiAgICAgICAgICAgICAgICB0eXBlID0gJ01BUktFVCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBNYXJrZXRSZXF1b3RlUmVxdWVzdERldGFpbHMoCiAgICAgICAgICAgICAgICB0eXBlID0gJ01BUktFVCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TWFya2V0UmVxdW90ZVJlcXVlc3REZXRhaWxzKHNlbGYpOgogICAgICAgICIiIlRlc3QgTWFya2V0UmVxdW90ZVJlcXVlc3REZXRhaWxzIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_market_requote_type_enum.py b/test/test_market_requote_type_enum.py index b67fd567..9ae0442a 100644 --- a/test/test_market_requote_type_enum.py +++ b/test/test_market_requote_type_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.market_requote_type_enum import MarketRequoteTypeEnum - - -class TestMarketRequoteTypeEnum(unittest.TestCase): - """MarketRequoteTypeEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testMarketRequoteTypeEnum(self): - """Test MarketRequoteTypeEnum""" - # inst = MarketRequoteTypeEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hcmtldF9yZXF1b3RlX3R5cGVfZW51bSBpbXBvcnQgTWFya2V0UmVxdW90ZVR5cGVFbnVtCgoKY2xhc3MgVGVzdE1hcmtldFJlcXVvdGVUeXBlRW51bSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJNYXJrZXRSZXF1b3RlVHlwZUVudW0gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0TWFya2V0UmVxdW90ZVR5cGVFbnVtKHNlbGYpOgogICAgICAgICIiIlRlc3QgTWFya2V0UmVxdW90ZVR5cGVFbnVtIiIiCiAgICAgICAgIyBpbnN0ID0gTWFya2V0UmVxdW90ZVR5cGVFbnVtKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_market_type_details.py b/test/test_market_type_details.py index 3948e9cc..8ac84ebc 100644 --- a/test/test_market_type_details.py +++ b/test/test_market_type_details.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.market_type_details import MarketTypeDetails - - -class TestMarketTypeDetails(unittest.TestCase): - """MarketTypeDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> MarketTypeDetails: - """Test MarketTypeDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `MarketTypeDetails` - """ - model = MarketTypeDetails() - if include_optional: - return MarketTypeDetails( - type = 'MARKET' - ) - else: - return MarketTypeDetails( - type = 'MARKET', - ) - """ - - def testMarketTypeDetails(self): - """Test MarketTypeDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hcmtldF90eXBlX2RldGFpbHMgaW1wb3J0IE1hcmtldFR5cGVEZXRhaWxzCgoKY2xhc3MgVGVzdE1hcmtldFR5cGVEZXRhaWxzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk1hcmtldFR5cGVEZXRhaWxzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBNYXJrZXRUeXBlRGV0YWlsczoKICAgICAgICAiIiJUZXN0IE1hcmtldFR5cGVEZXRhaWxzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYE1hcmtldFR5cGVEZXRhaWxzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTWFya2V0VHlwZURldGFpbHMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBNYXJrZXRUeXBlRGV0YWlscygKICAgICAgICAgICAgICAgIHR5cGUgPSAnTUFSS0VUJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIE1hcmtldFR5cGVEZXRhaWxzKAogICAgICAgICAgICAgICAgdHlwZSA9ICdNQVJLRVQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdE1hcmtldFR5cGVEZXRhaWxzKHNlbGYpOgogICAgICAgICIiIlRlc3QgTWFya2V0VHlwZURldGFpbHMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_market_type_enum.py b/test/test_market_type_enum.py index b468972d..28025f25 100644 --- a/test/test_market_type_enum.py +++ b/test/test_market_type_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.market_type_enum import MarketTypeEnum - - -class TestMarketTypeEnum(unittest.TestCase): - """MarketTypeEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testMarketTypeEnum(self): - """Test MarketTypeEnum""" - # inst = MarketTypeEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1hcmtldF90eXBlX2VudW0gaW1wb3J0IE1hcmtldFR5cGVFbnVtCgoKY2xhc3MgVGVzdE1hcmtldFR5cGVFbnVtKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk1hcmtldFR5cGVFbnVtIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdE1hcmtldFR5cGVFbnVtKHNlbGYpOgogICAgICAgICIiIlRlc3QgTWFya2V0VHlwZUVudW0iIiIKICAgICAgICAjIGluc3QgPSBNYXJrZXRUeXBlRW51bSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_media_entity_response.py b/test/test_media_entity_response.py index 5deee2ee..7723a1df 100644 --- a/test/test_media_entity_response.py +++ b/test/test_media_entity_response.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.media_entity_response import MediaEntityResponse - - -class TestMediaEntityResponse(unittest.TestCase): - """MediaEntityResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> MediaEntityResponse: - """Test MediaEntityResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `MediaEntityResponse` - """ - model = MediaEntityResponse() - if include_optional: - return MediaEntityResponse( - url = '', - content_type = 'IMAGE' - ) - else: - return MediaEntityResponse( - url = '', - content_type = 'IMAGE', - ) - """ - - def testMediaEntityResponse(self): - """Test MediaEntityResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1lZGlhX2VudGl0eV9yZXNwb25zZSBpbXBvcnQgTWVkaWFFbnRpdHlSZXNwb25zZQoKCmNsYXNzIFRlc3RNZWRpYUVudGl0eVJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk1lZGlhRW50aXR5UmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IE1lZGlhRW50aXR5UmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBNZWRpYUVudGl0eVJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYE1lZGlhRW50aXR5UmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBNZWRpYUVudGl0eVJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTWVkaWFFbnRpdHlSZXNwb25zZSgKICAgICAgICAgICAgICAgIHVybCA9ICcnLAogICAgICAgICAgICAgICAgY29udGVudF90eXBlID0gJ0lNQUdFJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIE1lZGlhRW50aXR5UmVzcG9uc2UoCiAgICAgICAgICAgICAgICB1cmwgPSAnJywKICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZSA9ICdJTUFHRScsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TWVkaWFFbnRpdHlSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IE1lZGlhRW50aXR5UmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_merge_stake_accounts_request.py b/test/test_merge_stake_accounts_request.py index abcd41d2..3797317c 100644 --- a/test/test_merge_stake_accounts_request.py +++ b/test/test_merge_stake_accounts_request.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.merge_stake_accounts_request import MergeStakeAccountsRequest - - -class TestMergeStakeAccountsRequest(unittest.TestCase): - """MergeStakeAccountsRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> MergeStakeAccountsRequest: - """Test MergeStakeAccountsRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `MergeStakeAccountsRequest` - """ - model = MergeStakeAccountsRequest() - if include_optional: - return MergeStakeAccountsRequest( - source_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - destination_id = '', - fee = '7', - fee_level = 'MEDIUM', - tx_note = 'Merging stake for optimization' - ) - else: - return MergeStakeAccountsRequest( - source_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - destination_id = '', - ) - """ - - def testMergeStakeAccountsRequest(self): - """Test MergeStakeAccountsRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1lcmdlX3N0YWtlX2FjY291bnRzX3JlcXVlc3QgaW1wb3J0IE1lcmdlU3Rha2VBY2NvdW50c1JlcXVlc3QKCgpjbGFzcyBUZXN0TWVyZ2VTdGFrZUFjY291bnRzUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJNZXJnZVN0YWtlQWNjb3VudHNSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBNZXJnZVN0YWtlQWNjb3VudHNSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgTWVyZ2VTdGFrZUFjY291bnRzUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBNZXJnZVN0YWtlQWNjb3VudHNSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTWVyZ2VTdGFrZUFjY291bnRzUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIE1lcmdlU3Rha2VBY2NvdW50c1JlcXVlc3QoCiAgICAgICAgICAgICAgICBzb3VyY2VfaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywKICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uX2lkID0gJycsCiAgICAgICAgICAgICAgICBmZWUgPSAnNycsCiAgICAgICAgICAgICAgICBmZWVfbGV2ZWwgPSAnTUVESVVNJywKICAgICAgICAgICAgICAgIHR4X25vdGUgPSAnTWVyZ2luZyBzdGFrZSBmb3Igb3B0aW1pemF0aW9uJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIE1lcmdlU3Rha2VBY2NvdW50c1JlcXVlc3QoCiAgICAgICAgICAgICAgICBzb3VyY2VfaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywKICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uX2lkID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TWVyZ2VTdGFrZUFjY291bnRzUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IE1lcmdlU3Rha2VBY2NvdW50c1JlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_merge_stake_accounts_response.py b/test/test_merge_stake_accounts_response.py index 82aa3703..f03da54e 100644 --- a/test/test_merge_stake_accounts_response.py +++ b/test/test_merge_stake_accounts_response.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.merge_stake_accounts_response import MergeStakeAccountsResponse - - -class TestMergeStakeAccountsResponse(unittest.TestCase): - """MergeStakeAccountsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> MergeStakeAccountsResponse: - """Test MergeStakeAccountsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `MergeStakeAccountsResponse` - """ - model = MergeStakeAccountsResponse() - if include_optional: - return MergeStakeAccountsResponse( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d' - ) - else: - return MergeStakeAccountsResponse( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - ) - """ - - def testMergeStakeAccountsResponse(self): - """Test MergeStakeAccountsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1lcmdlX3N0YWtlX2FjY291bnRzX3Jlc3BvbnNlIGltcG9ydCBNZXJnZVN0YWtlQWNjb3VudHNSZXNwb25zZQoKCmNsYXNzIFRlc3RNZXJnZVN0YWtlQWNjb3VudHNSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJNZXJnZVN0YWtlQWNjb3VudHNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gTWVyZ2VTdGFrZUFjY291bnRzUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBNZXJnZVN0YWtlQWNjb3VudHNSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBNZXJnZVN0YWtlQWNjb3VudHNSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IE1lcmdlU3Rha2VBY2NvdW50c1Jlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTWVyZ2VTdGFrZUFjY291bnRzUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBpZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGQnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTWVyZ2VTdGFrZUFjY291bnRzUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBpZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdE1lcmdlU3Rha2VBY2NvdW50c1Jlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgTWVyZ2VTdGFrZUFjY291bnRzUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_mobile_money_address.py b/test/test_mobile_money_address.py index a780005b..bb3fdabb 100644 --- a/test/test_mobile_money_address.py +++ b/test/test_mobile_money_address.py @@ -1,65 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.mobile_money_address import MobileMoneyAddress - - -class TestMobileMoneyAddress(unittest.TestCase): - """MobileMoneyAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> MobileMoneyAddress: - """Test MobileMoneyAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `MobileMoneyAddress` - """ - model = MobileMoneyAddress() - if include_optional: - return MobileMoneyAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - mobile_phone_number = '+14155551234', - provider = 'm-pesa', - beneficiary_document_id = '', - beneficiary_relationship = '', - success_payment_instruction_redirect_url = '', - payment_redirect = fireblocks.models.payment_redirect.PaymentRedirect( - url = 'https://yellowcard.example.com/authorize?token=abc123&transactionId=16b8b2c3-bd61-4745-9c48-3d30c2bc6907', - expires_at = '2025-01-15T12:00:00Z', ) - ) - else: - return MobileMoneyAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - mobile_phone_number = '+14155551234', - provider = 'm-pesa', - ) - """ - - def testMobileMoneyAddress(self): - """Test MobileMoneyAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1vYmlsZV9tb25leV9hZGRyZXNzIGltcG9ydCBNb2JpbGVNb25leUFkZHJlc3MKCgpjbGFzcyBUZXN0TW9iaWxlTW9uZXlBZGRyZXNzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk1vYmlsZU1vbmV5QWRkcmVzcyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gTW9iaWxlTW9uZXlBZGRyZXNzOgogICAgICAgICIiIlRlc3QgTW9iaWxlTW9uZXlBZGRyZXNzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYE1vYmlsZU1vbmV5QWRkcmVzc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IE1vYmlsZU1vbmV5QWRkcmVzcygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIE1vYmlsZU1vbmV5QWRkcmVzcygKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyID0geyJuYW1lIjoiSm9obiBTbWl0aCIsImNpdHkiOiJOZXcgWW9yayIsImNvdW50cnkiOiJVUyIsInN1YmRpdmlzaW9uIjoiTlkiLCJhZGRyZXNzIjoiMTIzIFdhbGwgU3RyZWV0LCBBcHQgNEIiLCJwb3N0YWxDb2RlIjoiMTAwMDUifSwKICAgICAgICAgICAgICAgIG1vYmlsZV9waG9uZV9udW1iZXIgPSAnKzE0MTU1NTUxMjM0JywKICAgICAgICAgICAgICAgIHByb3ZpZGVyID0gJ20tcGVzYScsCiAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV9kb2N1bWVudF9pZCA9ICcnLAogICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfcmVsYXRpb25zaGlwID0gJycsCiAgICAgICAgICAgICAgICBzdWNjZXNzX3BheW1lbnRfaW5zdHJ1Y3Rpb25fcmVkaXJlY3RfdXJsID0gJycsCiAgICAgICAgICAgICAgICBwYXltZW50X3JlZGlyZWN0ID0gZmlyZWJsb2Nrcy5tb2RlbHMucGF5bWVudF9yZWRpcmVjdC5QYXltZW50UmVkaXJlY3QoCiAgICAgICAgICAgICAgICAgICAgdXJsID0gJ2h0dHBzOi8veWVsbG93Y2FyZC5leGFtcGxlLmNvbS9hdXRob3JpemU/dG9rZW49YWJjMTIzJnRyYW5zYWN0aW9uSWQ9MTZiOGIyYzMtYmQ2MS00NzQ1LTljNDgtM2QzMGMyYmM2OTA3JywgCiAgICAgICAgICAgICAgICAgICAgZXhwaXJlc19hdCA9ICcyMDI1LTAxLTE1VDEyOjAwOjAwWicsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBNb2JpbGVNb25leUFkZHJlc3MoCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlciA9IHsibmFtZSI6IkpvaG4gU21pdGgiLCJjaXR5IjoiTmV3IFlvcmsiLCJjb3VudHJ5IjoiVVMiLCJzdWJkaXZpc2lvbiI6Ik5ZIiwiYWRkcmVzcyI6IjEyMyBXYWxsIFN0cmVldCwgQXB0IDRCIiwicG9zdGFsQ29kZSI6IjEwMDA1In0sCiAgICAgICAgICAgICAgICBtb2JpbGVfcGhvbmVfbnVtYmVyID0gJysxNDE1NTU1MTIzNCcsCiAgICAgICAgICAgICAgICBwcm92aWRlciA9ICdtLXBlc2EnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdE1vYmlsZU1vbmV5QWRkcmVzcyhzZWxmKToKICAgICAgICAiIiJUZXN0IE1vYmlsZU1vbmV5QWRkcmVzcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_mobile_money_destination.py b/test/test_mobile_money_destination.py index 6fd8e16d..74494634 100644 --- a/test/test_mobile_money_destination.py +++ b/test/test_mobile_money_destination.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.mobile_money_destination import MobileMoneyDestination - - -class TestMobileMoneyDestination(unittest.TestCase): - """MobileMoneyDestination unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> MobileMoneyDestination: - """Test MobileMoneyDestination - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `MobileMoneyDestination` - """ - model = MobileMoneyDestination() - if include_optional: - return MobileMoneyDestination( - type = 'MOBILE_MONEY', - address = {"accountHolder":{"name":"Grace Wanjiku Kamau","city":"Nairobi","country":"KE","subdivision":"NRB","address":"Westlands Avenue 45","postalCode":"00100"},"mobilePhoneNumber":"+254712345678","provider":"m-pesa","beneficiaryDocumentId":"12345678","beneficiaryRelationship":"self","successPaymentInstructionRedirectUrl":"https://yellowcard.example.com/authorize?token=abc123&transactionId=16b8b2c3-bd61-4745-9c48-3d30c2bc6907","paymentRedirect":{"url":"https://yellowcard.example.com/authorize?token=abc123&transactionId=16b8b2c3-bd61-4745-9c48-3d30c2bc6907","expiresAt":"2025-01-15T12:00:00Z"}} - ) - else: - return MobileMoneyDestination( - type = 'MOBILE_MONEY', - address = {"accountHolder":{"name":"Grace Wanjiku Kamau","city":"Nairobi","country":"KE","subdivision":"NRB","address":"Westlands Avenue 45","postalCode":"00100"},"mobilePhoneNumber":"+254712345678","provider":"m-pesa","beneficiaryDocumentId":"12345678","beneficiaryRelationship":"self","successPaymentInstructionRedirectUrl":"https://yellowcard.example.com/authorize?token=abc123&transactionId=16b8b2c3-bd61-4745-9c48-3d30c2bc6907","paymentRedirect":{"url":"https://yellowcard.example.com/authorize?token=abc123&transactionId=16b8b2c3-bd61-4745-9c48-3d30c2bc6907","expiresAt":"2025-01-15T12:00:00Z"}}, - ) - """ - - def testMobileMoneyDestination(self): - """Test MobileMoneyDestination""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1vYmlsZV9tb25leV9kZXN0aW5hdGlvbiBpbXBvcnQgTW9iaWxlTW9uZXlEZXN0aW5hdGlvbgoKCmNsYXNzIFRlc3RNb2JpbGVNb25leURlc3RpbmF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk1vYmlsZU1vbmV5RGVzdGluYXRpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IE1vYmlsZU1vbmV5RGVzdGluYXRpb246CiAgICAgICAgIiIiVGVzdCBNb2JpbGVNb25leURlc3RpbmF0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYE1vYmlsZU1vbmV5RGVzdGluYXRpb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBNb2JpbGVNb25leURlc3RpbmF0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTW9iaWxlTW9uZXlEZXN0aW5hdGlvbigKICAgICAgICAgICAgICAgIHR5cGUgPSAnTU9CSUxFX01PTkVZJywKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSB7ImFjY291bnRIb2xkZXIiOnsibmFtZSI6IkdyYWNlIFdhbmppa3UgS2FtYXUiLCJjaXR5IjoiTmFpcm9iaSIsImNvdW50cnkiOiJLRSIsInN1YmRpdmlzaW9uIjoiTlJCIiwiYWRkcmVzcyI6Ildlc3RsYW5kcyBBdmVudWUgNDUiLCJwb3N0YWxDb2RlIjoiMDAxMDAifSwibW9iaWxlUGhvbmVOdW1iZXIiOiIrMjU0NzEyMzQ1Njc4IiwicHJvdmlkZXIiOiJtLXBlc2EiLCJiZW5lZmljaWFyeURvY3VtZW50SWQiOiIxMjM0NTY3OCIsImJlbmVmaWNpYXJ5UmVsYXRpb25zaGlwIjoic2VsZiIsInN1Y2Nlc3NQYXltZW50SW5zdHJ1Y3Rpb25SZWRpcmVjdFVybCI6Imh0dHBzOi8veWVsbG93Y2FyZC5leGFtcGxlLmNvbS9hdXRob3JpemU/dG9rZW49YWJjMTIzJnRyYW5zYWN0aW9uSWQ9MTZiOGIyYzMtYmQ2MS00NzQ1LTljNDgtM2QzMGMyYmM2OTA3IiwicGF5bWVudFJlZGlyZWN0Ijp7InVybCI6Imh0dHBzOi8veWVsbG93Y2FyZC5leGFtcGxlLmNvbS9hdXRob3JpemU/dG9rZW49YWJjMTIzJnRyYW5zYWN0aW9uSWQ9MTZiOGIyYzMtYmQ2MS00NzQ1LTljNDgtM2QzMGMyYmM2OTA3IiwiZXhwaXJlc0F0IjoiMjAyNS0wMS0xNVQxMjowMDowMFoifX0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBNb2JpbGVNb25leURlc3RpbmF0aW9uKAogICAgICAgICAgICAgICAgdHlwZSA9ICdNT0JJTEVfTU9ORVknLAogICAgICAgICAgICAgICAgYWRkcmVzcyA9IHsiYWNjb3VudEhvbGRlciI6eyJuYW1lIjoiR3JhY2UgV2FuamlrdSBLYW1hdSIsImNpdHkiOiJOYWlyb2JpIiwiY291bnRyeSI6IktFIiwic3ViZGl2aXNpb24iOiJOUkIiLCJhZGRyZXNzIjoiV2VzdGxhbmRzIEF2ZW51ZSA0NSIsInBvc3RhbENvZGUiOiIwMDEwMCJ9LCJtb2JpbGVQaG9uZU51bWJlciI6IisyNTQ3MTIzNDU2NzgiLCJwcm92aWRlciI6Im0tcGVzYSIsImJlbmVmaWNpYXJ5RG9jdW1lbnRJZCI6IjEyMzQ1Njc4IiwiYmVuZWZpY2lhcnlSZWxhdGlvbnNoaXAiOiJzZWxmIiwic3VjY2Vzc1BheW1lbnRJbnN0cnVjdGlvblJlZGlyZWN0VXJsIjoiaHR0cHM6Ly95ZWxsb3djYXJkLmV4YW1wbGUuY29tL2F1dGhvcml6ZT90b2tlbj1hYmMxMjMmdHJhbnNhY3Rpb25JZD0xNmI4YjJjMy1iZDYxLTQ3NDUtOWM0OC0zZDMwYzJiYzY5MDciLCJwYXltZW50UmVkaXJlY3QiOnsidXJsIjoiaHR0cHM6Ly95ZWxsb3djYXJkLmV4YW1wbGUuY29tL2F1dGhvcml6ZT90b2tlbj1hYmMxMjMmdHJhbnNhY3Rpb25JZD0xNmI4YjJjMy1iZDYxLTQ3NDUtOWM0OC0zZDMwYzJiYzY5MDciLCJleHBpcmVzQXQiOiIyMDI1LTAxLTE1VDEyOjAwOjAwWiJ9fSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RNb2JpbGVNb25leURlc3RpbmF0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgTW9iaWxlTW9uZXlEZXN0aW5hdGlvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_modify_signing_key_agent_id_dto.py b/test/test_modify_signing_key_agent_id_dto.py index fa78ffb2..832f5335 100644 --- a/test/test_modify_signing_key_agent_id_dto.py +++ b/test/test_modify_signing_key_agent_id_dto.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.modify_signing_key_agent_id_dto import ModifySigningKeyAgentIdDto - - -class TestModifySigningKeyAgentIdDto(unittest.TestCase): - """ModifySigningKeyAgentIdDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ModifySigningKeyAgentIdDto: - """Test ModifySigningKeyAgentIdDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ModifySigningKeyAgentIdDto` - """ - model = ModifySigningKeyAgentIdDto() - if include_optional: - return ModifySigningKeyAgentIdDto( - agent_user_id = 'd18847b5-1df6-4c46-8f99-5cce47284529' - ) - else: - return ModifySigningKeyAgentIdDto( - agent_user_id = 'd18847b5-1df6-4c46-8f99-5cce47284529', - ) - """ - - def testModifySigningKeyAgentIdDto(self): - """Test ModifySigningKeyAgentIdDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1vZGlmeV9zaWduaW5nX2tleV9hZ2VudF9pZF9kdG8gaW1wb3J0IE1vZGlmeVNpZ25pbmdLZXlBZ2VudElkRHRvCgoKY2xhc3MgVGVzdE1vZGlmeVNpZ25pbmdLZXlBZ2VudElkRHRvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk1vZGlmeVNpZ25pbmdLZXlBZ2VudElkRHRvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBNb2RpZnlTaWduaW5nS2V5QWdlbnRJZER0bzoKICAgICAgICAiIiJUZXN0IE1vZGlmeVNpZ25pbmdLZXlBZ2VudElkRHRvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYE1vZGlmeVNpZ25pbmdLZXlBZ2VudElkRHRvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTW9kaWZ5U2lnbmluZ0tleUFnZW50SWREdG8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBNb2RpZnlTaWduaW5nS2V5QWdlbnRJZER0bygKICAgICAgICAgICAgICAgIGFnZW50X3VzZXJfaWQgPSAnZDE4ODQ3YjUtMWRmNi00YzQ2LThmOTktNWNjZTQ3Mjg0NTI5JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIE1vZGlmeVNpZ25pbmdLZXlBZ2VudElkRHRvKAogICAgICAgICAgICAgICAgYWdlbnRfdXNlcl9pZCA9ICdkMTg4NDdiNS0xZGY2LTRjNDYtOGY5OS01Y2NlNDcyODQ1MjknLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdE1vZGlmeVNpZ25pbmdLZXlBZ2VudElkRHRvKHNlbGYpOgogICAgICAgICIiIlRlc3QgTW9kaWZ5U2lnbmluZ0tleUFnZW50SWREdG8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_modify_signing_key_dto.py b/test/test_modify_signing_key_dto.py index eb4deddc..8481fee1 100644 --- a/test/test_modify_signing_key_dto.py +++ b/test/test_modify_signing_key_dto.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.modify_signing_key_dto import ModifySigningKeyDto - - -class TestModifySigningKeyDto(unittest.TestCase): - """ModifySigningKeyDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ModifySigningKeyDto: - """Test ModifySigningKeyDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ModifySigningKeyDto` - """ - model = ModifySigningKeyDto() - if include_optional: - return ModifySigningKeyDto( - vault_account_id = 123 - ) - else: - return ModifySigningKeyDto( - vault_account_id = 123, - ) - """ - - def testModifySigningKeyDto(self): - """Test ModifySigningKeyDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1vZGlmeV9zaWduaW5nX2tleV9kdG8gaW1wb3J0IE1vZGlmeVNpZ25pbmdLZXlEdG8KCgpjbGFzcyBUZXN0TW9kaWZ5U2lnbmluZ0tleUR0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJNb2RpZnlTaWduaW5nS2V5RHRvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBNb2RpZnlTaWduaW5nS2V5RHRvOgogICAgICAgICIiIlRlc3QgTW9kaWZ5U2lnbmluZ0tleUR0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBNb2RpZnlTaWduaW5nS2V5RHRvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTW9kaWZ5U2lnbmluZ0tleUR0bygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIE1vZGlmeVNpZ25pbmdLZXlEdG8oCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gMTIzCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTW9kaWZ5U2lnbmluZ0tleUR0bygKICAgICAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQgPSAxMjMsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TW9kaWZ5U2lnbmluZ0tleUR0byhzZWxmKToKICAgICAgICAiIiJUZXN0IE1vZGlmeVNpZ25pbmdLZXlEdG8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_modify_validation_key_dto.py b/test/test_modify_validation_key_dto.py index 3ced4cb3..68ac4dda 100644 --- a/test/test_modify_validation_key_dto.py +++ b/test/test_modify_validation_key_dto.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.modify_validation_key_dto import ModifyValidationKeyDto - - -class TestModifyValidationKeyDto(unittest.TestCase): - """ModifyValidationKeyDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ModifyValidationKeyDto: - """Test ModifyValidationKeyDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ModifyValidationKeyDto` - """ - model = ModifyValidationKeyDto() - if include_optional: - return ModifyValidationKeyDto( - enabled = False - ) - else: - return ModifyValidationKeyDto( - enabled = False, - ) - """ - - def testModifyValidationKeyDto(self): - """Test ModifyValidationKeyDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1vZGlmeV92YWxpZGF0aW9uX2tleV9kdG8gaW1wb3J0IE1vZGlmeVZhbGlkYXRpb25LZXlEdG8KCgpjbGFzcyBUZXN0TW9kaWZ5VmFsaWRhdGlvbktleUR0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJNb2RpZnlWYWxpZGF0aW9uS2V5RHRvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBNb2RpZnlWYWxpZGF0aW9uS2V5RHRvOgogICAgICAgICIiIlRlc3QgTW9kaWZ5VmFsaWRhdGlvbktleUR0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBNb2RpZnlWYWxpZGF0aW9uS2V5RHRvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTW9kaWZ5VmFsaWRhdGlvbktleUR0bygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIE1vZGlmeVZhbGlkYXRpb25LZXlEdG8oCiAgICAgICAgICAgICAgICBlbmFibGVkID0gRmFsc2UKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBNb2RpZnlWYWxpZGF0aW9uS2V5RHRvKAogICAgICAgICAgICAgICAgZW5hYmxlZCA9IEZhbHNlLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdE1vZGlmeVZhbGlkYXRpb25LZXlEdG8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBNb2RpZnlWYWxpZGF0aW9uS2V5RHRvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_momo_payment_info.py b/test/test_momo_payment_info.py index 5b5b7560..b1ce9a75 100644 --- a/test/test_momo_payment_info.py +++ b/test/test_momo_payment_info.py @@ -1,69 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.momo_payment_info import MomoPaymentInfo - - -class TestMomoPaymentInfo(unittest.TestCase): - """MomoPaymentInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> MomoPaymentInfo: - """Test MomoPaymentInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `MomoPaymentInfo` - """ - model = MomoPaymentInfo() - if include_optional: - return MomoPaymentInfo( - rail = 'MOMO', - addressing_system = 'MOMO', - account_holder_given_name = 'Kwame', - account_holder_surname = 'Asante', - country = 'GH', - mobile_phone_number = '+233241234567', - provider = 'MTN', - beneficiary_document_id = 'GHA-123456789-0', - beneficiary_relationship = 'Family' - ) - else: - return MomoPaymentInfo( - rail = 'MOMO', - addressing_system = 'MOMO', - account_holder_given_name = 'Kwame', - account_holder_surname = 'Asante', - country = 'GH', - mobile_phone_number = '+233241234567', - provider = 'MTN', - ) - """ - - def testMomoPaymentInfo(self): - """Test MomoPaymentInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1vbW9fcGF5bWVudF9pbmZvIGltcG9ydCBNb21vUGF5bWVudEluZm8KCgpjbGFzcyBUZXN0TW9tb1BheW1lbnRJbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk1vbW9QYXltZW50SW5mbyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gTW9tb1BheW1lbnRJbmZvOgogICAgICAgICIiIlRlc3QgTW9tb1BheW1lbnRJbmZvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYE1vbW9QYXltZW50SW5mb2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IE1vbW9QYXltZW50SW5mbygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIE1vbW9QYXltZW50SW5mbygKICAgICAgICAgICAgICAgIHJhaWwgPSAnTU9NTycsCiAgICAgICAgICAgICAgICBhZGRyZXNzaW5nX3N5c3RlbSA9ICdNT01PJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2dpdmVuX25hbWUgPSAnS3dhbWUnLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfc3VybmFtZSA9ICdBc2FudGUnLAogICAgICAgICAgICAgICAgY291bnRyeSA9ICdHSCcsCiAgICAgICAgICAgICAgICBtb2JpbGVfcGhvbmVfbnVtYmVyID0gJysyMzMyNDEyMzQ1NjcnLAogICAgICAgICAgICAgICAgcHJvdmlkZXIgPSAnTVROJywKICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5X2RvY3VtZW50X2lkID0gJ0dIQS0xMjM0NTY3ODktMCcsCiAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV9yZWxhdGlvbnNoaXAgPSAnRmFtaWx5JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIE1vbW9QYXltZW50SW5mbygKICAgICAgICAgICAgICAgIHJhaWwgPSAnTU9NTycsCiAgICAgICAgICAgICAgICBhZGRyZXNzaW5nX3N5c3RlbSA9ICdNT01PJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2dpdmVuX25hbWUgPSAnS3dhbWUnLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfc3VybmFtZSA9ICdBc2FudGUnLAogICAgICAgICAgICAgICAgY291bnRyeSA9ICdHSCcsCiAgICAgICAgICAgICAgICBtb2JpbGVfcGhvbmVfbnVtYmVyID0gJysyMzMyNDEyMzQ1NjcnLAogICAgICAgICAgICAgICAgcHJvdmlkZXIgPSAnTVROJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RNb21vUGF5bWVudEluZm8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBNb21vUGF5bWVudEluZm8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_mpc_key.py b/test/test_mpc_key.py index 348689cf..ab5ee9e5 100644 --- a/test/test_mpc_key.py +++ b/test/test_mpc_key.py @@ -1,70 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.mpc_key import MpcKey - - -class TestMpcKey(unittest.TestCase): - """MpcKey unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> MpcKey: - """Test MpcKey - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `MpcKey` - """ - model = MpcKey() - if include_optional: - return MpcKey( - key_id = '743f82cf-b526-4148-afb1-cd71f1dfee10', - user_id = 'da084d02-d446-413e-b4ce-1e3256517dfd', - algorithm = 201, - players = [ - fireblocks.models.players.Players( - id = '47d3383e-37a3-43d5-90a4-de0ca8c5e258', - type = 'MOBILE', ) - ], - last_preprocessed_index = 6 - ) - else: - return MpcKey( - key_id = '743f82cf-b526-4148-afb1-cd71f1dfee10', - user_id = 'da084d02-d446-413e-b4ce-1e3256517dfd', - algorithm = 201, - players = [ - fireblocks.models.players.Players( - id = '47d3383e-37a3-43d5-90a4-de0ca8c5e258', - type = 'MOBILE', ) - ], - ) - """ - - def testMpcKey(self): - """Test MpcKey""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm1wY19rZXkgaW1wb3J0IE1wY0tleQoKCmNsYXNzIFRlc3RNcGNLZXkodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTXBjS2V5IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBNcGNLZXk6CiAgICAgICAgIiIiVGVzdCBNcGNLZXkKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTXBjS2V5YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTXBjS2V5KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTXBjS2V5KAogICAgICAgICAgICAgICAga2V5X2lkID0gJzc0M2Y4MmNmLWI1MjYtNDE0OC1hZmIxLWNkNzFmMWRmZWUxMCcsCiAgICAgICAgICAgICAgICB1c2VyX2lkID0gJ2RhMDg0ZDAyLWQ0NDYtNDEzZS1iNGNlLTFlMzI1NjUxN2RmZCcsCiAgICAgICAgICAgICAgICBhbGdvcml0aG0gPSAyMDEsCiAgICAgICAgICAgICAgICBwbGF5ZXJzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBsYXllcnMuUGxheWVycygKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnNDdkMzM4M2UtMzdhMy00M2Q1LTkwYTQtZGUwY2E4YzVlMjU4JywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnTU9CSUxFJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBsYXN0X3ByZXByb2Nlc3NlZF9pbmRleCA9IDYKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBNcGNLZXkoCiAgICAgICAgICAgICAgICBrZXlfaWQgPSAnNzQzZjgyY2YtYjUyNi00MTQ4LWFmYjEtY2Q3MWYxZGZlZTEwJywKICAgICAgICAgICAgICAgIHVzZXJfaWQgPSAnZGEwODRkMDItZDQ0Ni00MTNlLWI0Y2UtMWUzMjU2NTE3ZGZkJywKICAgICAgICAgICAgICAgIGFsZ29yaXRobSA9IDIwMSwKICAgICAgICAgICAgICAgIHBsYXllcnMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucGxheWVycy5QbGF5ZXJzKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICc0N2QzMzgzZS0zN2EzLTQzZDUtOTBhNC1kZTBjYThjNWUyNTgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdNT0JJTEUnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RNcGNLZXkoc2VsZik6CiAgICAgICAgIiIiVGVzdCBNcGNLZXkiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_multichain_deployment_metadata.py b/test/test_multichain_deployment_metadata.py index 89041552..976605bb 100644 --- a/test/test_multichain_deployment_metadata.py +++ b/test/test_multichain_deployment_metadata.py @@ -1,76 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.multichain_deployment_metadata import ( - MultichainDeploymentMetadata, -) - - -class TestMultichainDeploymentMetadata(unittest.TestCase): - """MultichainDeploymentMetadata unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> MultichainDeploymentMetadata: - """Test MultichainDeploymentMetadata - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `MultichainDeploymentMetadata` - """ - model = MultichainDeploymentMetadata() - if include_optional: - return MultichainDeploymentMetadata( - id = '', - address = '0x742d35Cc6634C0532925a3b844Bc454e4438f44e', - template_id = '0e4f5a3b-924e-7bb9-8e5b-c748270feb38', - deployment_salt = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef', - init_params = [ - fireblocks.models.parameter_with_value.ParameterWithValue( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], - value = 'true', - function_value = null, ) - ], - encoded_init_params = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef' - ) - else: - return MultichainDeploymentMetadata( - ) - """ - - def testMultichainDeploymentMetadata(self): - """Test MultichainDeploymentMetadata""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm11bHRpY2hhaW5fZGVwbG95bWVudF9tZXRhZGF0YSBpbXBvcnQgKAogICAgTXVsdGljaGFpbkRlcGxveW1lbnRNZXRhZGF0YSwKKQoKCmNsYXNzIFRlc3RNdWx0aWNoYWluRGVwbG95bWVudE1ldGFkYXRhKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk11bHRpY2hhaW5EZXBsb3ltZW50TWV0YWRhdGEgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IE11bHRpY2hhaW5EZXBsb3ltZW50TWV0YWRhdGE6CiAgICAgICAgIiIiVGVzdCBNdWx0aWNoYWluRGVwbG95bWVudE1ldGFkYXRhCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYE11bHRpY2hhaW5EZXBsb3ltZW50TWV0YWRhdGFgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBNdWx0aWNoYWluRGVwbG95bWVudE1ldGFkYXRhKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTXVsdGljaGFpbkRlcGxveW1lbnRNZXRhZGF0YSgKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzB4NzQyZDM1Q2M2NjM0QzA1MzI5MjVhM2I4NDRCYzQ1NGU0NDM4ZjQ0ZScsCiAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9pZCA9ICcwZTRmNWEzYi05MjRlLTdiYjktOGU1Yi1jNzQ4MjcwZmViMzgnLAogICAgICAgICAgICAgICAgZGVwbG95bWVudF9zYWx0ID0gJzB4MTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZicsCiAgICAgICAgICAgICAgICBpbml0X3BhcmFtcyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXJfd2l0aF92YWx1ZS5QYXJhbWV0ZXJXaXRoVmFsdWUoCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXIuUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGUgbmFtZSBvZiB0aGUgdG9rZW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gJ3RydWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25fdmFsdWUgPSBudWxsLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGVuY29kZWRfaW5pdF9wYXJhbXMgPSAnMHgxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIE11bHRpY2hhaW5EZXBsb3ltZW50TWV0YWRhdGEoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TXVsdGljaGFpbkRlcGxveW1lbnRNZXRhZGF0YShzZWxmKToKICAgICAgICAiIiJUZXN0IE11bHRpY2hhaW5EZXBsb3ltZW50TWV0YWRhdGEiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_network_channel.py b/test/test_network_channel.py index 60b27da9..cd02935e 100644 --- a/test/test_network_channel.py +++ b/test/test_network_channel.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.network_channel import NetworkChannel - - -class TestNetworkChannel(unittest.TestCase): - """NetworkChannel unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> NetworkChannel: - """Test NetworkChannel - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `NetworkChannel` - """ - model = NetworkChannel() - if include_optional: - return NetworkChannel( - network_id = '', - name = '' - ) - else: - return NetworkChannel( - ) - """ - - def testNetworkChannel(self): - """Test NetworkChannel""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfY2hhbm5lbCBpbXBvcnQgTmV0d29ya0NoYW5uZWwKCgpjbGFzcyBUZXN0TmV0d29ya0NoYW5uZWwodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTmV0d29ya0NoYW5uZWwgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IE5ldHdvcmtDaGFubmVsOgogICAgICAgICIiIlRlc3QgTmV0d29ya0NoYW5uZWwKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTmV0d29ya0NoYW5uZWxgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBOZXR3b3JrQ2hhbm5lbCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIE5ldHdvcmtDaGFubmVsKAogICAgICAgICAgICAgICAgbmV0d29ya19pZCA9ICcnLAogICAgICAgICAgICAgICAgbmFtZSA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTmV0d29ya0NoYW5uZWwoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TmV0d29ya0NoYW5uZWwoc2VsZik6CiAgICAgICAgIiIiVGVzdCBOZXR3b3JrQ2hhbm5lbCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_network_connection.py b/test/test_network_connection.py index 48c1f585..e711b220 100644 --- a/test/test_network_connection.py +++ b/test/test_network_connection.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.network_connection import NetworkConnection - - -class TestNetworkConnection(unittest.TestCase): - """NetworkConnection unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> NetworkConnection: - """Test NetworkConnection - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `NetworkConnection` - """ - model = NetworkConnection() - if include_optional: - return NetworkConnection( - local_network_id = '', - remote_network_id = '', - routing_policy = { - 'key' : null - } - ) - else: - return NetworkConnection( - local_network_id = '', - remote_network_id = '', - ) - """ - - def testNetworkConnection(self): - """Test NetworkConnection""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfY29ubmVjdGlvbiBpbXBvcnQgTmV0d29ya0Nvbm5lY3Rpb24KCgpjbGFzcyBUZXN0TmV0d29ya0Nvbm5lY3Rpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTmV0d29ya0Nvbm5lY3Rpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IE5ldHdvcmtDb25uZWN0aW9uOgogICAgICAgICIiIlRlc3QgTmV0d29ya0Nvbm5lY3Rpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTmV0d29ya0Nvbm5lY3Rpb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBOZXR3b3JrQ29ubmVjdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIE5ldHdvcmtDb25uZWN0aW9uKAogICAgICAgICAgICAgICAgbG9jYWxfbmV0d29ya19pZCA9ICcnLAogICAgICAgICAgICAgICAgcmVtb3RlX25ldHdvcmtfaWQgPSAnJywKICAgICAgICAgICAgICAgIHJvdXRpbmdfcG9saWN5ID0gewogICAgICAgICAgICAgICAgICAgICdrZXknIDogbnVsbAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBOZXR3b3JrQ29ubmVjdGlvbigKICAgICAgICAgICAgICAgIGxvY2FsX25ldHdvcmtfaWQgPSAnJywKICAgICAgICAgICAgICAgIHJlbW90ZV9uZXR3b3JrX2lkID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TmV0d29ya0Nvbm5lY3Rpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBOZXR3b3JrQ29ubmVjdGlvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_network_connection_response.py b/test/test_network_connection_response.py index cb5415bf..93e91f2b 100644 --- a/test/test_network_connection_response.py +++ b/test/test_network_connection_response.py @@ -1,81 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.network_connection_response import NetworkConnectionResponse - - -class TestNetworkConnectionResponse(unittest.TestCase): - """NetworkConnectionResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> NetworkConnectionResponse: - """Test NetworkConnectionResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `NetworkConnectionResponse` - """ - model = NetworkConnectionResponse() - if include_optional: - return NetworkConnectionResponse( - id = '', - local_channel = fireblocks.models.network_channel.NetworkChannel( - network_id = '', - name = '', ), - remote_channel = fireblocks.models.network_channel.NetworkChannel( - network_id = '', - name = '', ), - status = 'WAITING_FOR_APPROVAL', - local_network_id = fireblocks.models.network_id.NetworkId( - id = '', - name = '', ), - remote_network_id = fireblocks.models.network_id.NetworkId( - id = '', - name = '', ), - routing_policy = { - 'key' : null - } - ) - else: - return NetworkConnectionResponse( - id = '', - status = 'WAITING_FOR_APPROVAL', - local_network_id = fireblocks.models.network_id.NetworkId( - id = '', - name = '', ), - remote_network_id = fireblocks.models.network_id.NetworkId( - id = '', - name = '', ), - routing_policy = { - 'key' : null - }, - ) - """ - - def testNetworkConnectionResponse(self): - """Test NetworkConnectionResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfY29ubmVjdGlvbl9yZXNwb25zZSBpbXBvcnQgTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZQoKCmNsYXNzIFRlc3ROZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IE5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYE5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBOZXR3b3JrQ29ubmVjdGlvblJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZSgKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICBsb2NhbF9jaGFubmVsID0gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19jaGFubmVsLk5ldHdvcmtDaGFubmVsKAogICAgICAgICAgICAgICAgICAgIG5ldHdvcmtfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICcnLCApLAogICAgICAgICAgICAgICAgcmVtb3RlX2NoYW5uZWwgPSBmaXJlYmxvY2tzLm1vZGVscy5uZXR3b3JrX2NoYW5uZWwuTmV0d29ya0NoYW5uZWwoCiAgICAgICAgICAgICAgICAgICAgbmV0d29ya19pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBuYW1lID0gJycsICksCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnV0FJVElOR19GT1JfQVBQUk9WQUwnLAogICAgICAgICAgICAgICAgbG9jYWxfbmV0d29ya19pZCA9IGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfaWQuTmV0d29ya0lkKAogICAgICAgICAgICAgICAgICAgIGlkID0gJycsIAogICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnJywgKSwKICAgICAgICAgICAgICAgIHJlbW90ZV9uZXR3b3JrX2lkID0gZmlyZWJsb2Nrcy5tb2RlbHMubmV0d29ya19pZC5OZXR3b3JrSWQoCiAgICAgICAgICAgICAgICAgICAgaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICcnLCApLAogICAgICAgICAgICAgICAgcm91dGluZ19wb2xpY3kgPSB7CiAgICAgICAgICAgICAgICAgICAgJ2tleScgOiBudWxsCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIE5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBpZCA9ICcnLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ1dBSVRJTkdfRk9SX0FQUFJPVkFMJywKICAgICAgICAgICAgICAgIGxvY2FsX25ldHdvcmtfaWQgPSBmaXJlYmxvY2tzLm1vZGVscy5uZXR3b3JrX2lkLk5ldHdvcmtJZCgKICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBuYW1lID0gJycsICksCiAgICAgICAgICAgICAgICByZW1vdGVfbmV0d29ya19pZCA9IGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfaWQuTmV0d29ya0lkKAogICAgICAgICAgICAgICAgICAgIGlkID0gJycsIAogICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnJywgKSwKICAgICAgICAgICAgICAgIHJvdXRpbmdfcG9saWN5ID0gewogICAgICAgICAgICAgICAgICAgICdrZXknIDogbnVsbAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TmV0d29ya0Nvbm5lY3Rpb25SZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IE5ldHdvcmtDb25uZWN0aW9uUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_network_connection_routing_policy_value.py b/test/test_network_connection_routing_policy_value.py index 3e1dbb29..8d349346 100644 --- a/test/test_network_connection_routing_policy_value.py +++ b/test/test_network_connection_routing_policy_value.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.network_connection_routing_policy_value import ( - NetworkConnectionRoutingPolicyValue, -) - - -class TestNetworkConnectionRoutingPolicyValue(unittest.TestCase): - """NetworkConnectionRoutingPolicyValue unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> NetworkConnectionRoutingPolicyValue: - """Test NetworkConnectionRoutingPolicyValue - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `NetworkConnectionRoutingPolicyValue` - """ - model = NetworkConnectionRoutingPolicyValue() - if include_optional: - return NetworkConnectionRoutingPolicyValue( - scheme = 'NONE', - dst_type = 'FIAT_ACCOUNT', - dst_id = '' - ) - else: - return NetworkConnectionRoutingPolicyValue( - scheme = 'NONE', - dst_type = 'FIAT_ACCOUNT', - dst_id = '', - ) - """ - - def testNetworkConnectionRoutingPolicyValue(self): - """Test NetworkConnectionRoutingPolicyValue""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfY29ubmVjdGlvbl9yb3V0aW5nX3BvbGljeV92YWx1ZSBpbXBvcnQgKAogICAgTmV0d29ya0Nvbm5lY3Rpb25Sb3V0aW5nUG9saWN5VmFsdWUsCikKCgpjbGFzcyBUZXN0TmV0d29ya0Nvbm5lY3Rpb25Sb3V0aW5nUG9saWN5VmFsdWUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTmV0d29ya0Nvbm5lY3Rpb25Sb3V0aW5nUG9saWN5VmFsdWUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IE5ldHdvcmtDb25uZWN0aW9uUm91dGluZ1BvbGljeVZhbHVlOgogICAgICAgICIiIlRlc3QgTmV0d29ya0Nvbm5lY3Rpb25Sb3V0aW5nUG9saWN5VmFsdWUKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTmV0d29ya0Nvbm5lY3Rpb25Sb3V0aW5nUG9saWN5VmFsdWVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBOZXR3b3JrQ29ubmVjdGlvblJvdXRpbmdQb2xpY3lWYWx1ZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIE5ldHdvcmtDb25uZWN0aW9uUm91dGluZ1BvbGljeVZhbHVlKAogICAgICAgICAgICAgICAgc2NoZW1lID0gJ05PTkUnLAogICAgICAgICAgICAgICAgZHN0X3R5cGUgPSAnRklBVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIGRzdF9pZCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTmV0d29ya0Nvbm5lY3Rpb25Sb3V0aW5nUG9saWN5VmFsdWUoCiAgICAgICAgICAgICAgICBzY2hlbWUgPSAnTk9ORScsCiAgICAgICAgICAgICAgICBkc3RfdHlwZSA9ICdGSUFUX0FDQ09VTlQnLAogICAgICAgICAgICAgICAgZHN0X2lkID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TmV0d29ya0Nvbm5lY3Rpb25Sb3V0aW5nUG9saWN5VmFsdWUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBOZXR3b3JrQ29ubmVjdGlvblJvdXRpbmdQb2xpY3lWYWx1ZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_network_connection_status.py b/test/test_network_connection_status.py index 2db8704b..cfbf2526 100644 --- a/test/test_network_connection_status.py +++ b/test/test_network_connection_status.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.network_connection_status import NetworkConnectionStatus - - -class TestNetworkConnectionStatus(unittest.TestCase): - """NetworkConnectionStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testNetworkConnectionStatus(self): - """Test NetworkConnectionStatus""" - # inst = NetworkConnectionStatus() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfY29ubmVjdGlvbl9zdGF0dXMgaW1wb3J0IE5ldHdvcmtDb25uZWN0aW9uU3RhdHVzCgoKY2xhc3MgVGVzdE5ldHdvcmtDb25uZWN0aW9uU3RhdHVzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk5ldHdvcmtDb25uZWN0aW9uU3RhdHVzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdE5ldHdvcmtDb25uZWN0aW9uU3RhdHVzKHNlbGYpOgogICAgICAgICIiIlRlc3QgTmV0d29ya0Nvbm5lY3Rpb25TdGF0dXMiIiIKICAgICAgICAjIGluc3QgPSBOZXR3b3JrQ29ubmVjdGlvblN0YXR1cygpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_network_connections_api.py b/test/test_network_connections_api.py index 50d2d9bf..2bfb4794 100644 --- a/test/test_network_connections_api.py +++ b/test/test_network_connections_api.py @@ -1,137 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.network_connections_api import NetworkConnectionsApi - - -class TestNetworkConnectionsApi(unittest.TestCase): - """NetworkConnectionsApi unit test stubs""" - - def setUp(self) -> None: - self.api = NetworkConnectionsApi() - - def tearDown(self) -> None: - pass - - def test_check_third_party_routing(self) -> None: - """Test case for check_third_party_routing - - Retrieve third-party network routing validation - """ - pass - - def test_create_network_connection(self) -> None: - """Test case for create_network_connection - - Create a new network connection - """ - pass - - def test_create_network_id(self) -> None: - """Test case for create_network_id - - Creates a new Network ID - """ - pass - - def test_delete_network_connection(self) -> None: - """Test case for delete_network_connection - - Delete a network connection by ID - """ - pass - - def test_delete_network_id(self) -> None: - """Test case for delete_network_id - - Delete specific network ID. - """ - pass - - def test_get_network(self) -> None: - """Test case for get_network - - Get a network connection - """ - pass - - def test_get_network_connections(self) -> None: - """Test case for get_network_connections - - List network connections - """ - pass - - def test_get_network_id(self) -> None: - """Test case for get_network_id - - Return specific network ID. - """ - pass - - def test_get_network_ids(self) -> None: - """Test case for get_network_ids - - Get all network IDs - """ - pass - - def test_get_routing_policy_asset_groups(self) -> None: - """Test case for get_routing_policy_asset_groups - - Return all enabled routing policy asset groups - """ - pass - - def test_search_network_ids(self) -> None: - """Test case for search_network_ids - - Get both local IDs and discoverable remote IDs - """ - pass - - def test_set_network_id_discoverability(self) -> None: - """Test case for set_network_id_discoverability - - Update network ID's discoverability. - """ - pass - - def test_set_network_id_name(self) -> None: - """Test case for set_network_id_name - - Update network ID's name. - """ - pass - - def test_set_network_id_routing_policy(self) -> None: - """Test case for set_network_id_routing_policy - - Update network id routing policy. - """ - pass - - def test_set_routing_policy(self) -> None: - """Test case for set_routing_policy - - Update network connection routing policy. - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLm5ldHdvcmtfY29ubmVjdGlvbnNfYXBpIGltcG9ydCBOZXR3b3JrQ29ubmVjdGlvbnNBcGkKCgpjbGFzcyBUZXN0TmV0d29ya0Nvbm5lY3Rpb25zQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk5ldHdvcmtDb25uZWN0aW9uc0FwaSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZikgLT4gTm9uZToKICAgICAgICBzZWxmLmFwaSA9IE5ldHdvcmtDb25uZWN0aW9uc0FwaSgpCgogICAgZGVmIHRlYXJEb3duKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2NoZWNrX3RoaXJkX3BhcnR5X3JvdXRpbmcoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGNoZWNrX3RoaXJkX3BhcnR5X3JvdXRpbmcKCiAgICAgICAgUmV0cmlldmUgdGhpcmQtcGFydHkgbmV0d29yayByb3V0aW5nIHZhbGlkYXRpb24KICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY3JlYXRlX25ldHdvcmtfY29ubmVjdGlvbihzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgY3JlYXRlX25ldHdvcmtfY29ubmVjdGlvbgoKICAgICAgICBDcmVhdGUgYSBuZXcgbmV0d29yayBjb25uZWN0aW9uCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2NyZWF0ZV9uZXR3b3JrX2lkKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBjcmVhdGVfbmV0d29ya19pZAoKICAgICAgICBDcmVhdGVzIGEgbmV3IE5ldHdvcmsgSUQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZGVsZXRlX25ldHdvcmtfY29ubmVjdGlvbihzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZGVsZXRlX25ldHdvcmtfY29ubmVjdGlvbgoKICAgICAgICBEZWxldGUgYSBuZXR3b3JrIGNvbm5lY3Rpb24gYnkgSUQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZGVsZXRlX25ldHdvcmtfaWQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGRlbGV0ZV9uZXR3b3JrX2lkCgogICAgICAgIERlbGV0ZSBzcGVjaWZpYyBuZXR3b3JrIElELgogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfbmV0d29yayhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X25ldHdvcmsKCiAgICAgICAgR2V0IGEgbmV0d29yayBjb25uZWN0aW9uCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9uZXR3b3JrX2Nvbm5lY3Rpb25zKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfbmV0d29ya19jb25uZWN0aW9ucwoKICAgICAgICBMaXN0IG5ldHdvcmsgY29ubmVjdGlvbnMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X25ldHdvcmtfaWQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9uZXR3b3JrX2lkCgogICAgICAgIFJldHVybiBzcGVjaWZpYyBuZXR3b3JrIElELgogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfbmV0d29ya19pZHMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9uZXR3b3JrX2lkcwoKICAgICAgICBHZXQgYWxsIG5ldHdvcmsgSURzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9yb3V0aW5nX3BvbGljeV9hc3NldF9ncm91cHMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9yb3V0aW5nX3BvbGljeV9hc3NldF9ncm91cHMKCiAgICAgICAgUmV0dXJuIGFsbCBlbmFibGVkIHJvdXRpbmcgcG9saWN5IGFzc2V0IGdyb3VwcwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9zZWFyY2hfbmV0d29ya19pZHMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHNlYXJjaF9uZXR3b3JrX2lkcwoKICAgICAgICBHZXQgYm90aCBsb2NhbCBJRHMgYW5kIGRpc2NvdmVyYWJsZSByZW1vdGUgSURzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3NldF9uZXR3b3JrX2lkX2Rpc2NvdmVyYWJpbGl0eShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3Igc2V0X25ldHdvcmtfaWRfZGlzY292ZXJhYmlsaXR5CgogICAgICAgIFVwZGF0ZSBuZXR3b3JrIElEJ3MgZGlzY292ZXJhYmlsaXR5LgogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9zZXRfbmV0d29ya19pZF9uYW1lKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBzZXRfbmV0d29ya19pZF9uYW1lCgogICAgICAgIFVwZGF0ZSBuZXR3b3JrIElEJ3MgbmFtZS4KICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3Rfc2V0X25ldHdvcmtfaWRfcm91dGluZ19wb2xpY3koc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHNldF9uZXR3b3JrX2lkX3JvdXRpbmdfcG9saWN5CgogICAgICAgIFVwZGF0ZSBuZXR3b3JrIGlkIHJvdXRpbmcgcG9saWN5LgogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9zZXRfcm91dGluZ19wb2xpY3koc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHNldF9yb3V0aW5nX3BvbGljeQoKICAgICAgICBVcGRhdGUgbmV0d29yayBjb25uZWN0aW9uIHJvdXRpbmcgcG9saWN5LgogICAgICAgICIiIgogICAgICAgIHBhc3MKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_network_fee.py b/test/test_network_fee.py index b39c77e7..5e8dfc61 100644 --- a/test/test_network_fee.py +++ b/test/test_network_fee.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.network_fee import NetworkFee - - -class TestNetworkFee(unittest.TestCase): - """NetworkFee unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> NetworkFee: - """Test NetworkFee - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `NetworkFee` - """ - model = NetworkFee() - if include_optional: - return NetworkFee( - fee_per_byte = '', - gas_price = '', - network_fee = '', - base_fee = '', - priority_fee = '' - ) - else: - return NetworkFee( - ) - """ - - def testNetworkFee(self): - """Test NetworkFee""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfZmVlIGltcG9ydCBOZXR3b3JrRmVlCgoKY2xhc3MgVGVzdE5ldHdvcmtGZWUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTmV0d29ya0ZlZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gTmV0d29ya0ZlZToKICAgICAgICAiIiJUZXN0IE5ldHdvcmtGZWUKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTmV0d29ya0ZlZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IE5ldHdvcmtGZWUoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBOZXR3b3JrRmVlKAogICAgICAgICAgICAgICAgZmVlX3Blcl9ieXRlID0gJycsCiAgICAgICAgICAgICAgICBnYXNfcHJpY2UgPSAnJywKICAgICAgICAgICAgICAgIG5ldHdvcmtfZmVlID0gJycsCiAgICAgICAgICAgICAgICBiYXNlX2ZlZSA9ICcnLAogICAgICAgICAgICAgICAgcHJpb3JpdHlfZmVlID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBOZXR3b3JrRmVlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdE5ldHdvcmtGZWUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBOZXR3b3JrRmVlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_network_id.py b/test/test_network_id.py index 7fb19240..9a167822 100644 --- a/test/test_network_id.py +++ b/test/test_network_id.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.network_id import NetworkId - - -class TestNetworkId(unittest.TestCase): - """NetworkId unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> NetworkId: - """Test NetworkId - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `NetworkId` - """ - model = NetworkId() - if include_optional: - return NetworkId( - id = '', - name = '' - ) - else: - return NetworkId( - id = '', - name = '', - ) - """ - - def testNetworkId(self): - """Test NetworkId""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfaWQgaW1wb3J0IE5ldHdvcmtJZAoKCmNsYXNzIFRlc3ROZXR3b3JrSWQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTmV0d29ya0lkIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBOZXR3b3JrSWQ6CiAgICAgICAgIiIiVGVzdCBOZXR3b3JrSWQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTmV0d29ya0lkYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTmV0d29ya0lkKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTmV0d29ya0lkKAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIE5ldHdvcmtJZCgKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICBuYW1lID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0TmV0d29ya0lkKHNlbGYpOgogICAgICAgICIiIlRlc3QgTmV0d29ya0lkIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_network_id_response.py b/test/test_network_id_response.py index 1a9c6276..b1c81d7a 100644 --- a/test/test_network_id_response.py +++ b/test/test_network_id_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.network_id_response import NetworkIdResponse - - -class TestNetworkIdResponse(unittest.TestCase): - """NetworkIdResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> NetworkIdResponse: - """Test NetworkIdResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `NetworkIdResponse` - """ - model = NetworkIdResponse() - if include_optional: - return NetworkIdResponse( - routing_policy = { - 'key' : null - }, - is_discoverable = True, - id = '', - name = '' - ) - else: - return NetworkIdResponse( - ) - """ - - def testNetworkIdResponse(self): - """Test NetworkIdResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfaWRfcmVzcG9uc2UgaW1wb3J0IE5ldHdvcmtJZFJlc3BvbnNlCgoKY2xhc3MgVGVzdE5ldHdvcmtJZFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk5ldHdvcmtJZFJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBOZXR3b3JrSWRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IE5ldHdvcmtJZFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYE5ldHdvcmtJZFJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTmV0d29ya0lkUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBOZXR3b3JrSWRSZXNwb25zZSgKICAgICAgICAgICAgICAgIHJvdXRpbmdfcG9saWN5ID0gewogICAgICAgICAgICAgICAgICAgICdrZXknIDogbnVsbAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBpc19kaXNjb3ZlcmFibGUgPSBUcnVlLAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIE5ldHdvcmtJZFJlc3BvbnNlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdE5ldHdvcmtJZFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgTmV0d29ya0lkUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_network_id_routing_policy_value.py b/test/test_network_id_routing_policy_value.py index 159b244e..c4d5d8c5 100644 --- a/test/test_network_id_routing_policy_value.py +++ b/test/test_network_id_routing_policy_value.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.network_id_routing_policy_value import ( - NetworkIdRoutingPolicyValue, -) - - -class TestNetworkIdRoutingPolicyValue(unittest.TestCase): - """NetworkIdRoutingPolicyValue unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> NetworkIdRoutingPolicyValue: - """Test NetworkIdRoutingPolicyValue - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `NetworkIdRoutingPolicyValue` - """ - model = NetworkIdRoutingPolicyValue() - if include_optional: - return NetworkIdRoutingPolicyValue( - scheme = 'NONE', - dst_type = 'FIAT_ACCOUNT', - dst_id = '' - ) - else: - return NetworkIdRoutingPolicyValue( - scheme = 'NONE', - dst_type = 'FIAT_ACCOUNT', - dst_id = '', - ) - """ - - def testNetworkIdRoutingPolicyValue(self): - """Test NetworkIdRoutingPolicyValue""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfaWRfcm91dGluZ19wb2xpY3lfdmFsdWUgaW1wb3J0ICgKICAgIE5ldHdvcmtJZFJvdXRpbmdQb2xpY3lWYWx1ZSwKKQoKCmNsYXNzIFRlc3ROZXR3b3JrSWRSb3V0aW5nUG9saWN5VmFsdWUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTmV0d29ya0lkUm91dGluZ1BvbGljeVZhbHVlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBOZXR3b3JrSWRSb3V0aW5nUG9saWN5VmFsdWU6CiAgICAgICAgIiIiVGVzdCBOZXR3b3JrSWRSb3V0aW5nUG9saWN5VmFsdWUKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTmV0d29ya0lkUm91dGluZ1BvbGljeVZhbHVlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTmV0d29ya0lkUm91dGluZ1BvbGljeVZhbHVlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gTmV0d29ya0lkUm91dGluZ1BvbGljeVZhbHVlKAogICAgICAgICAgICAgICAgc2NoZW1lID0gJ05PTkUnLAogICAgICAgICAgICAgICAgZHN0X3R5cGUgPSAnRklBVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIGRzdF9pZCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTmV0d29ya0lkUm91dGluZ1BvbGljeVZhbHVlKAogICAgICAgICAgICAgICAgc2NoZW1lID0gJ05PTkUnLAogICAgICAgICAgICAgICAgZHN0X3R5cGUgPSAnRklBVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIGRzdF9pZCA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdE5ldHdvcmtJZFJvdXRpbmdQb2xpY3lWYWx1ZShzZWxmKToKICAgICAgICAiIiJUZXN0IE5ldHdvcmtJZFJvdXRpbmdQb2xpY3lWYWx1ZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_network_record.py b/test/test_network_record.py index ae3ae6fd..59e5207a 100644 --- a/test/test_network_record.py +++ b/test/test_network_record.py @@ -1,78 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.network_record import NetworkRecord - - -class TestNetworkRecord(unittest.TestCase): - """NetworkRecord unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> NetworkRecord: - """Test NetworkRecord - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `NetworkRecord` - """ - model = NetworkRecord() - if include_optional: - return NetworkRecord( - source = fireblocks.models.source_transfer_peer_path_response.SourceTransferPeerPathResponse( - type = 'VAULT_ACCOUNT', - sub_type = '', - id = '', - name = '', - wallet_id = '', - trading_account = '', ), - destination = fireblocks.models.destination_transfer_peer_path_response.DestinationTransferPeerPathResponse( - type = 'VAULT_ACCOUNT', - sub_type = '', - id = '', - name = '', - wallet_id = '', - trading_account = '', ), - tx_hash = '', - network_fee = '', - asset_id = '', - net_amount = '', - is_dropped = True, - type = '', - destination_address = '', - amount_usd = '', - reward_info = fireblocks.models.reward_info.RewardInfo( - src_rewards = '', - dest_rewards = '', ) - ) - else: - return NetworkRecord( - ) - """ - - def testNetworkRecord(self): - """Test NetworkRecord""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfcmVjb3JkIGltcG9ydCBOZXR3b3JrUmVjb3JkCgoKY2xhc3MgVGVzdE5ldHdvcmtSZWNvcmQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTmV0d29ya1JlY29yZCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gTmV0d29ya1JlY29yZDoKICAgICAgICAiIiJUZXN0IE5ldHdvcmtSZWNvcmQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTmV0d29ya1JlY29yZGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IE5ldHdvcmtSZWNvcmQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBOZXR3b3JrUmVjb3JkKAogICAgICAgICAgICAgICAgc291cmNlID0gZmlyZWJsb2Nrcy5tb2RlbHMuc291cmNlX3RyYW5zZmVyX3BlZXJfcGF0aF9yZXNwb25zZS5Tb3VyY2VUcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgCiAgICAgICAgICAgICAgICAgICAgc3ViX3R5cGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICB3YWxsZXRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgdHJhZGluZ19hY2NvdW50ID0gJycsICksCiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLmRlc3RpbmF0aW9uX3RyYW5zZmVyX3BlZXJfcGF0aF9yZXNwb25zZS5EZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGhSZXNwb25zZSgKICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCAKICAgICAgICAgICAgICAgICAgICBzdWJfdHlwZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBuYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgIHdhbGxldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICB0cmFkaW5nX2FjY291bnQgPSAnJywgKSwKICAgICAgICAgICAgICAgIHR4X2hhc2ggPSAnJywKICAgICAgICAgICAgICAgIG5ldHdvcmtfZmVlID0gJycsCiAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgbmV0X2Ftb3VudCA9ICcnLAogICAgICAgICAgICAgICAgaXNfZHJvcHBlZCA9IFRydWUsCiAgICAgICAgICAgICAgICB0eXBlID0gJycsCiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl9hZGRyZXNzID0gJycsCiAgICAgICAgICAgICAgICBhbW91bnRfdXNkID0gJycsCiAgICAgICAgICAgICAgICByZXdhcmRfaW5mbyA9IGZpcmVibG9ja3MubW9kZWxzLnJld2FyZF9pbmZvLlJld2FyZEluZm8oCiAgICAgICAgICAgICAgICAgICAgc3JjX3Jld2FyZHMgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgZGVzdF9yZXdhcmRzID0gJycsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBOZXR3b3JrUmVjb3JkKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdE5ldHdvcmtSZWNvcmQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBOZXR3b3JrUmVjb3JkIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_new_address.py b/test/test_new_address.py index cd86f396..f353abd9 100644 --- a/test/test_new_address.py +++ b/test/test_new_address.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.new_address import NewAddress - - -class TestNewAddress(unittest.TestCase): - """NewAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> NewAddress: - """Test NewAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `NewAddress` - """ - model = NewAddress() - if include_optional: - return NewAddress( - address = 'addr_test1qp07k5kdwdfx4rpfqud8ry65acxgtgfgrxw0t35cwvl4uasjneqjdc868eqlex5p2f0nyekyyk4ze5xuanvj50ysrj3qqxqhsn', - index = 0, - description = 'Address one' - ) - else: - return NewAddress( - address = 'addr_test1qp07k5kdwdfx4rpfqud8ry65acxgtgfgrxw0t35cwvl4uasjneqjdc868eqlex5p2f0nyekyyk4ze5xuanvj50ysrj3qqxqhsn', - index = 0, - description = 'Address one', - ) - """ - - def testNewAddress(self): - """Test NewAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5ld19hZGRyZXNzIGltcG9ydCBOZXdBZGRyZXNzCgoKY2xhc3MgVGVzdE5ld0FkZHJlc3ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTmV3QWRkcmVzcyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gTmV3QWRkcmVzczoKICAgICAgICAiIiJUZXN0IE5ld0FkZHJlc3MKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTmV3QWRkcmVzc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IE5ld0FkZHJlc3MoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBOZXdBZGRyZXNzKAogICAgICAgICAgICAgICAgYWRkcmVzcyA9ICdhZGRyX3Rlc3QxcXAwN2s1a2R3ZGZ4NHJwZnF1ZDhyeTY1YWN4Z3RnZmdyeHcwdDM1Y3d2bDR1YXNqbmVxamRjODY4ZXFsZXg1cDJmMG55ZWt5eWs0emU1eHVhbnZqNTB5c3JqM3FxeHFoc24nLAogICAgICAgICAgICAgICAgaW5kZXggPSAwLAogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnQWRkcmVzcyBvbmUnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTmV3QWRkcmVzcygKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnYWRkcl90ZXN0MXFwMDdrNWtkd2RmeDRycGZxdWQ4cnk2NWFjeGd0Z2Zncnh3MHQzNWN3dmw0dWFzam5lcWpkYzg2OGVxbGV4NXAyZjBueWVreXlrNHplNXh1YW52ajUweXNyajNxcXhxaHNuJywKICAgICAgICAgICAgICAgIGluZGV4ID0gMCwKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ0FkZHJlc3Mgb25lJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3ROZXdBZGRyZXNzKHNlbGYpOgogICAgICAgICIiIlRlc3QgTmV3QWRkcmVzcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_nfts_api.py b/test/test_nfts_api.py index d6881968..61d8ce31 100644 --- a/test/test_nfts_api.py +++ b/test/test_nfts_api.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.nfts_api import NFTsApi - - -class TestNFTsApi(unittest.TestCase): - """NFTsApi unit test stubs""" - - def setUp(self) -> None: - self.api = NFTsApi() - - def tearDown(self) -> None: - pass - - def test_get_nft(self) -> None: - """Test case for get_nft - - List token data by ID - """ - pass - - def test_get_nfts(self) -> None: - """Test case for get_nfts - - List tokens by IDs - """ - pass - - def test_get_ownership_tokens(self) -> None: - """Test case for get_ownership_tokens - - List all owned tokens (paginated) - """ - pass - - def test_list_owned_collections(self) -> None: - """Test case for list_owned_collections - - List owned collections (paginated) - """ - pass - - def test_list_owned_tokens(self) -> None: - """Test case for list_owned_tokens - - List all distinct owned tokens (paginated) - """ - pass - - def test_refresh_nft_metadata(self) -> None: - """Test case for refresh_nft_metadata - - Refresh token metadata - """ - pass - - def test_update_ownership_tokens(self) -> None: - """Test case for update_ownership_tokens - - Refresh vault account tokens - """ - pass - - def test_update_token_ownership_status(self) -> None: - """Test case for update_token_ownership_status - - Update token ownership status - """ - pass - - def test_update_tokens_ownership_spam(self) -> None: - """Test case for update_tokens_ownership_spam - - Update tokens ownership spam property - """ - pass - - def test_update_tokens_ownership_status(self) -> None: - """Test case for update_tokens_ownership_status - - Update tokens ownership status - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLm5mdHNfYXBpIGltcG9ydCBORlRzQXBpCgoKY2xhc3MgVGVzdE5GVHNBcGkodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTkZUc0FwaSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZikgLT4gTm9uZToKICAgICAgICBzZWxmLmFwaSA9IE5GVHNBcGkoKQoKICAgIGRlZiB0ZWFyRG93bihzZWxmKSAtPiBOb25lOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfbmZ0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfbmZ0CgogICAgICAgIExpc3QgdG9rZW4gZGF0YSBieSBJRAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfbmZ0cyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X25mdHMKCiAgICAgICAgTGlzdCB0b2tlbnMgYnkgSURzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9vd25lcnNoaXBfdG9rZW5zKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfb3duZXJzaGlwX3Rva2VucwoKICAgICAgICBMaXN0IGFsbCBvd25lZCB0b2tlbnMgKHBhZ2luYXRlZCkKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfbGlzdF9vd25lZF9jb2xsZWN0aW9ucyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgbGlzdF9vd25lZF9jb2xsZWN0aW9ucwoKICAgICAgICBMaXN0IG93bmVkIGNvbGxlY3Rpb25zIChwYWdpbmF0ZWQpCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2xpc3Rfb3duZWRfdG9rZW5zKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBsaXN0X293bmVkX3Rva2VucwoKICAgICAgICBMaXN0IGFsbCBkaXN0aW5jdCBvd25lZCB0b2tlbnMgKHBhZ2luYXRlZCkKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfcmVmcmVzaF9uZnRfbWV0YWRhdGEoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHJlZnJlc2hfbmZ0X21ldGFkYXRhCgogICAgICAgIFJlZnJlc2ggdG9rZW4gbWV0YWRhdGEKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfdXBkYXRlX293bmVyc2hpcF90b2tlbnMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHVwZGF0ZV9vd25lcnNoaXBfdG9rZW5zCgogICAgICAgIFJlZnJlc2ggdmF1bHQgYWNjb3VudCB0b2tlbnMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfdXBkYXRlX3Rva2VuX293bmVyc2hpcF9zdGF0dXMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHVwZGF0ZV90b2tlbl9vd25lcnNoaXBfc3RhdHVzCgogICAgICAgIFVwZGF0ZSB0b2tlbiBvd25lcnNoaXAgc3RhdHVzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3VwZGF0ZV90b2tlbnNfb3duZXJzaGlwX3NwYW0oc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHVwZGF0ZV90b2tlbnNfb3duZXJzaGlwX3NwYW0KCiAgICAgICAgVXBkYXRlIHRva2VucyBvd25lcnNoaXAgc3BhbSBwcm9wZXJ0eQogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF91cGRhdGVfdG9rZW5zX293bmVyc2hpcF9zdGF0dXMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHVwZGF0ZV90b2tlbnNfb3duZXJzaGlwX3N0YXR1cwoKICAgICAgICBVcGRhdGUgdG9rZW5zIG93bmVyc2hpcCBzdGF0dXMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_none_network_routing_dest.py b/test/test_none_network_routing_dest.py index 659cee9c..ea022430 100644 --- a/test/test_none_network_routing_dest.py +++ b/test/test_none_network_routing_dest.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.none_network_routing_dest import NoneNetworkRoutingDest - - -class TestNoneNetworkRoutingDest(unittest.TestCase): - """NoneNetworkRoutingDest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> NoneNetworkRoutingDest: - """Test NoneNetworkRoutingDest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `NoneNetworkRoutingDest` - """ - model = NoneNetworkRoutingDest() - if include_optional: - return NoneNetworkRoutingDest( - scheme = 'NONE' - ) - else: - return NoneNetworkRoutingDest( - scheme = 'NONE', - ) - """ - - def testNoneNetworkRoutingDest(self): - """Test NoneNetworkRoutingDest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vbmVfbmV0d29ya19yb3V0aW5nX2Rlc3QgaW1wb3J0IE5vbmVOZXR3b3JrUm91dGluZ0Rlc3QKCgpjbGFzcyBUZXN0Tm9uZU5ldHdvcmtSb3V0aW5nRGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJOb25lTmV0d29ya1JvdXRpbmdEZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBOb25lTmV0d29ya1JvdXRpbmdEZXN0OgogICAgICAgICIiIlRlc3QgTm9uZU5ldHdvcmtSb3V0aW5nRGVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBOb25lTmV0d29ya1JvdXRpbmdEZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTm9uZU5ldHdvcmtSb3V0aW5nRGVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIE5vbmVOZXR3b3JrUm91dGluZ0Rlc3QoCiAgICAgICAgICAgICAgICBzY2hlbWUgPSAnTk9ORScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBOb25lTmV0d29ya1JvdXRpbmdEZXN0KAogICAgICAgICAgICAgICAgc2NoZW1lID0gJ05PTkUnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdE5vbmVOZXR3b3JrUm91dGluZ0Rlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBOb25lTmV0d29ya1JvdXRpbmdEZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_not_found_exception.py b/test/test_not_found_exception.py index fab30fd5..9b2d9723 100644 --- a/test/test_not_found_exception.py +++ b/test/test_not_found_exception.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.not_found_exception import NotFoundException - - -class TestNotFoundException(unittest.TestCase): - """NotFoundException unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> NotFoundException: - """Test NotFoundException - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `NotFoundException` - """ - model = NotFoundException() - if include_optional: - return NotFoundException( - status_code = 404, - message = '', - error = 'Not Found' - ) - else: - return NotFoundException( - ) - """ - - def testNotFoundException(self): - """Test NotFoundException""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vdF9mb3VuZF9leGNlcHRpb24gaW1wb3J0IE5vdEZvdW5kRXhjZXB0aW9uCgoKY2xhc3MgVGVzdE5vdEZvdW5kRXhjZXB0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk5vdEZvdW5kRXhjZXB0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBOb3RGb3VuZEV4Y2VwdGlvbjoKICAgICAgICAiIiJUZXN0IE5vdEZvdW5kRXhjZXB0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYE5vdEZvdW5kRXhjZXB0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTm90Rm91bmRFeGNlcHRpb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBOb3RGb3VuZEV4Y2VwdGlvbigKICAgICAgICAgICAgICAgIHN0YXR1c19jb2RlID0gNDA0LAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICcnLAogICAgICAgICAgICAgICAgZXJyb3IgPSAnTm90IEZvdW5kJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIE5vdEZvdW5kRXhjZXB0aW9uKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdE5vdEZvdW5kRXhjZXB0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgTm90Rm91bmRFeGNlcHRpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_notification.py b/test/test_notification.py index 633aa92c..5e79736a 100644 --- a/test/test_notification.py +++ b/test/test_notification.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.notification import Notification - - -class TestNotification(unittest.TestCase): - """Notification unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Notification: - """Test Notification - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Notification` - """ - model = Notification() - if include_optional: - return Notification( - id = '44fcead0-7053-4831-a53a-df7fb90d440f', - created_at = 1625126400000, - updated_at = 1625126400000, - status = 'COMPLETED', - event_type = 'transaction.created', - resource_id = '44fcead0-7053-4831-a53a-df7fb90d440f' - ) - else: - return Notification( - id = '44fcead0-7053-4831-a53a-df7fb90d440f', - created_at = 1625126400000, - updated_at = 1625126400000, - status = 'COMPLETED', - event_type = 'transaction.created', - ) - """ - - def testNotification(self): - """Test Notification""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vdGlmaWNhdGlvbiBpbXBvcnQgTm90aWZpY2F0aW9uCgoKY2xhc3MgVGVzdE5vdGlmaWNhdGlvbih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJOb3RpZmljYXRpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IE5vdGlmaWNhdGlvbjoKICAgICAgICAiIiJUZXN0IE5vdGlmaWNhdGlvbgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBOb3RpZmljYXRpb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBOb3RpZmljYXRpb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb24oCiAgICAgICAgICAgICAgICBpZCA9ICc0NGZjZWFkMC03MDUzLTQ4MzEtYTUzYS1kZjdmYjkwZDQ0MGYnLAogICAgICAgICAgICAgICAgY3JlYXRlZF9hdCA9IDE2MjUxMjY0MDAwMDAsCiAgICAgICAgICAgICAgICB1cGRhdGVkX2F0ID0gMTYyNTEyNjQwMDAwMCwKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLAogICAgICAgICAgICAgICAgZXZlbnRfdHlwZSA9ICd0cmFuc2FjdGlvbi5jcmVhdGVkJywKICAgICAgICAgICAgICAgIHJlc291cmNlX2lkID0gJzQ0ZmNlYWQwLTcwNTMtNDgzMS1hNTNhLWRmN2ZiOTBkNDQwZicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb24oCiAgICAgICAgICAgICAgICBpZCA9ICc0NGZjZWFkMC03MDUzLTQ4MzEtYTUzYS1kZjdmYjkwZDQ0MGYnLAogICAgICAgICAgICAgICAgY3JlYXRlZF9hdCA9IDE2MjUxMjY0MDAwMDAsCiAgICAgICAgICAgICAgICB1cGRhdGVkX2F0ID0gMTYyNTEyNjQwMDAwMCwKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLAogICAgICAgICAgICAgICAgZXZlbnRfdHlwZSA9ICd0cmFuc2FjdGlvbi5jcmVhdGVkJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3ROb3RpZmljYXRpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBOb3RpZmljYXRpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_notification_attempt.py b/test/test_notification_attempt.py index bf1ba75a..58c7ab4c 100644 --- a/test/test_notification_attempt.py +++ b/test/test_notification_attempt.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.notification_attempt import NotificationAttempt - - -class TestNotificationAttempt(unittest.TestCase): - """NotificationAttempt unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> NotificationAttempt: - """Test NotificationAttempt - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `NotificationAttempt` - """ - model = NotificationAttempt() - if include_optional: - return NotificationAttempt( - sent_time = 1625126400000, - duration = 130, - response_code = 200, - failure_reason = 'TIMED_OUT' - ) - else: - return NotificationAttempt( - sent_time = 1625126400000, - duration = 130, - ) - """ - - def testNotificationAttempt(self): - """Test NotificationAttempt""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vdGlmaWNhdGlvbl9hdHRlbXB0IGltcG9ydCBOb3RpZmljYXRpb25BdHRlbXB0CgoKY2xhc3MgVGVzdE5vdGlmaWNhdGlvbkF0dGVtcHQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTm90aWZpY2F0aW9uQXR0ZW1wdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gTm90aWZpY2F0aW9uQXR0ZW1wdDoKICAgICAgICAiIiJUZXN0IE5vdGlmaWNhdGlvbkF0dGVtcHQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgTm90aWZpY2F0aW9uQXR0ZW1wdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IE5vdGlmaWNhdGlvbkF0dGVtcHQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25BdHRlbXB0KAogICAgICAgICAgICAgICAgc2VudF90aW1lID0gMTYyNTEyNjQwMDAwMCwKICAgICAgICAgICAgICAgIGR1cmF0aW9uID0gMTMwLAogICAgICAgICAgICAgICAgcmVzcG9uc2VfY29kZSA9IDIwMCwKICAgICAgICAgICAgICAgIGZhaWx1cmVfcmVhc29uID0gJ1RJTUVEX09VVCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25BdHRlbXB0KAogICAgICAgICAgICAgICAgc2VudF90aW1lID0gMTYyNTEyNjQwMDAwMCwKICAgICAgICAgICAgICAgIGR1cmF0aW9uID0gMTMwLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdE5vdGlmaWNhdGlvbkF0dGVtcHQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBOb3RpZmljYXRpb25BdHRlbXB0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_notification_attempts_paginated_response.py b/test/test_notification_attempts_paginated_response.py index 10402314..1b9d8102 100644 --- a/test/test_notification_attempts_paginated_response.py +++ b/test/test_notification_attempts_paginated_response.py @@ -1,70 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.notification_attempts_paginated_response import ( - NotificationAttemptsPaginatedResponse, -) - - -class TestNotificationAttemptsPaginatedResponse(unittest.TestCase): - """NotificationAttemptsPaginatedResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> NotificationAttemptsPaginatedResponse: - """Test NotificationAttemptsPaginatedResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `NotificationAttemptsPaginatedResponse` - """ - model = NotificationAttemptsPaginatedResponse() - if include_optional: - return NotificationAttemptsPaginatedResponse( - data = [ - fireblocks.models.notification_attempt.NotificationAttempt( - sent_time = 1625126400000, - duration = 130, - response_code = 200, - failure_reason = 'TIMED_OUT', ) - ], - next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9' - ) - else: - return NotificationAttemptsPaginatedResponse( - data = [ - fireblocks.models.notification_attempt.NotificationAttempt( - sent_time = 1625126400000, - duration = 130, - response_code = 200, - failure_reason = 'TIMED_OUT', ) - ], - ) - """ - - def testNotificationAttemptsPaginatedResponse(self): - """Test NotificationAttemptsPaginatedResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vdGlmaWNhdGlvbl9hdHRlbXB0c19wYWdpbmF0ZWRfcmVzcG9uc2UgaW1wb3J0ICgKICAgIE5vdGlmaWNhdGlvbkF0dGVtcHRzUGFnaW5hdGVkUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0Tm90aWZpY2F0aW9uQXR0ZW1wdHNQYWdpbmF0ZWRSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJOb3RpZmljYXRpb25BdHRlbXB0c1BhZ2luYXRlZFJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBOb3RpZmljYXRpb25BdHRlbXB0c1BhZ2luYXRlZFJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgTm90aWZpY2F0aW9uQXR0ZW1wdHNQYWdpbmF0ZWRSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBOb3RpZmljYXRpb25BdHRlbXB0c1BhZ2luYXRlZFJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTm90aWZpY2F0aW9uQXR0ZW1wdHNQYWdpbmF0ZWRSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkF0dGVtcHRzUGFnaW5hdGVkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLm5vdGlmaWNhdGlvbl9hdHRlbXB0Lk5vdGlmaWNhdGlvbkF0dGVtcHQoCiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRfdGltZSA9IDE2MjUxMjY0MDAwMDAsIAogICAgICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbiA9IDEzMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlX2NvZGUgPSAyMDAsIAogICAgICAgICAgICAgICAgICAgICAgICBmYWlsdXJlX3JlYXNvbiA9ICdUSU1FRF9PVVQnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIG5leHQgPSAnZUowZVhBaU9pSktWMVFpTENKaGJHY09pSklVekkxTmlKOScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25BdHRlbXB0c1BhZ2luYXRlZFJlc3BvbnNlKAogICAgICAgICAgICAgICAgZGF0YSA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5ub3RpZmljYXRpb25fYXR0ZW1wdC5Ob3RpZmljYXRpb25BdHRlbXB0KAogICAgICAgICAgICAgICAgICAgICAgICBzZW50X3RpbWUgPSAxNjI1MTI2NDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb24gPSAxMzAsIAogICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZV9jb2RlID0gMjAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgZmFpbHVyZV9yZWFzb24gPSAnVElNRURfT1VUJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0Tm90aWZpY2F0aW9uQXR0ZW1wdHNQYWdpbmF0ZWRSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IE5vdGlmaWNhdGlvbkF0dGVtcHRzUGFnaW5hdGVkUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_notification_paginated_response.py b/test/test_notification_paginated_response.py index 3dfc20de..32eb246a 100644 --- a/test/test_notification_paginated_response.py +++ b/test/test_notification_paginated_response.py @@ -1,75 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.notification_paginated_response import ( - NotificationPaginatedResponse, -) - - -class TestNotificationPaginatedResponse(unittest.TestCase): - """NotificationPaginatedResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> NotificationPaginatedResponse: - """Test NotificationPaginatedResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `NotificationPaginatedResponse` - """ - model = NotificationPaginatedResponse() - if include_optional: - return NotificationPaginatedResponse( - data = [ - fireblocks.models.notification.Notification( - id = '44fcead0-7053-4831-a53a-df7fb90d440f', - created_at = 1625126400000, - updated_at = 1625126400000, - status = 'COMPLETED', - event_type = 'transaction.created', - resource_id = '44fcead0-7053-4831-a53a-df7fb90d440f', ) - ], - total = 100, - next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9' - ) - else: - return NotificationPaginatedResponse( - data = [ - fireblocks.models.notification.Notification( - id = '44fcead0-7053-4831-a53a-df7fb90d440f', - created_at = 1625126400000, - updated_at = 1625126400000, - status = 'COMPLETED', - event_type = 'transaction.created', - resource_id = '44fcead0-7053-4831-a53a-df7fb90d440f', ) - ], - ) - """ - - def testNotificationPaginatedResponse(self): - """Test NotificationPaginatedResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vdGlmaWNhdGlvbl9wYWdpbmF0ZWRfcmVzcG9uc2UgaW1wb3J0ICgKICAgIE5vdGlmaWNhdGlvblBhZ2luYXRlZFJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdE5vdGlmaWNhdGlvblBhZ2luYXRlZFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk5vdGlmaWNhdGlvblBhZ2luYXRlZFJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBOb3RpZmljYXRpb25QYWdpbmF0ZWRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IE5vdGlmaWNhdGlvblBhZ2luYXRlZFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYE5vdGlmaWNhdGlvblBhZ2luYXRlZFJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTm90aWZpY2F0aW9uUGFnaW5hdGVkUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25QYWdpbmF0ZWRSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubm90aWZpY2F0aW9uLk5vdGlmaWNhdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnNDRmY2VhZDAtNzA1My00ODMxLWE1M2EtZGY3ZmI5MGQ0NDBmJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRfYXQgPSAxNjI1MTI2NDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZF9hdCA9IDE2MjUxMjY0MDAwMDAsIAogICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50X3R5cGUgPSAndHJhbnNhY3Rpb24uY3JlYXRlZCcsIAogICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZV9pZCA9ICc0NGZjZWFkMC03MDUzLTQ4MzEtYTUzYS1kZjdmYjkwZDQ0MGYnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHRvdGFsID0gMTAwLAogICAgICAgICAgICAgICAgbmV4dCA9ICdlSjBlWEFpT2lKS1YxUWlMQ0poYkdjT2lKSVV6STFOaUo5JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvblBhZ2luYXRlZFJlc3BvbnNlKAogICAgICAgICAgICAgICAgZGF0YSA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5ub3RpZmljYXRpb24uTm90aWZpY2F0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICc0NGZjZWFkMC03MDUzLTQ4MzEtYTUzYS1kZjdmYjkwZDQ0MGYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZF9hdCA9IDE2MjUxMjY0MDAwMDAsIAogICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVkX2F0ID0gMTYyNTEyNjQwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRfdHlwZSA9ICd0cmFuc2FjdGlvbi5jcmVhdGVkJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlX2lkID0gJzQ0ZmNlYWQwLTcwNTMtNDgzMS1hNTNhLWRmN2ZiOTBkNDQwZicsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdE5vdGlmaWNhdGlvblBhZ2luYXRlZFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgTm90aWZpY2F0aW9uUGFnaW5hdGVkUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_notification_status.py b/test/test_notification_status.py index ee931084..c6358b1c 100644 --- a/test/test_notification_status.py +++ b/test/test_notification_status.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.notification_status import NotificationStatus - - -class TestNotificationStatus(unittest.TestCase): - """NotificationStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testNotificationStatus(self): - """Test NotificationStatus""" - # inst = NotificationStatus() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vdGlmaWNhdGlvbl9zdGF0dXMgaW1wb3J0IE5vdGlmaWNhdGlvblN0YXR1cwoKCmNsYXNzIFRlc3ROb3RpZmljYXRpb25TdGF0dXModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiTm90aWZpY2F0aW9uU3RhdHVzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdE5vdGlmaWNhdGlvblN0YXR1cyhzZWxmKToKICAgICAgICAiIiJUZXN0IE5vdGlmaWNhdGlvblN0YXR1cyIiIgogICAgICAgICMgaW5zdCA9IE5vdGlmaWNhdGlvblN0YXR1cygpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_notification_with_data.py b/test/test_notification_with_data.py index a63f971d..c41c7fa7 100644 --- a/test/test_notification_with_data.py +++ b/test/test_notification_with_data.py @@ -1,65 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.notification_with_data import NotificationWithData - - -class TestNotificationWithData(unittest.TestCase): - """NotificationWithData unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> NotificationWithData: - """Test NotificationWithData - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `NotificationWithData` - """ - model = NotificationWithData() - if include_optional: - return NotificationWithData( - id = '44fcead0-7053-4831-a53a-df7fb90d440f', - created_at = 1625126400000, - updated_at = 1625126400000, - status = 'COMPLETED', - event_type = 'transaction.created', - resource_id = '44fcead0-7053-4831-a53a-df7fb90d440f', - data = None - ) - else: - return NotificationWithData( - id = '44fcead0-7053-4831-a53a-df7fb90d440f', - created_at = 1625126400000, - updated_at = 1625126400000, - status = 'COMPLETED', - event_type = 'transaction.created', - ) - """ - - def testNotificationWithData(self): - """Test NotificationWithData""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm5vdGlmaWNhdGlvbl93aXRoX2RhdGEgaW1wb3J0IE5vdGlmaWNhdGlvbldpdGhEYXRhCgoKY2xhc3MgVGVzdE5vdGlmaWNhdGlvbldpdGhEYXRhKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk5vdGlmaWNhdGlvbldpdGhEYXRhIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBOb3RpZmljYXRpb25XaXRoRGF0YToKICAgICAgICAiIiJUZXN0IE5vdGlmaWNhdGlvbldpdGhEYXRhCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYE5vdGlmaWNhdGlvbldpdGhEYXRhYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gTm90aWZpY2F0aW9uV2l0aERhdGEoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25XaXRoRGF0YSgKICAgICAgICAgICAgICAgIGlkID0gJzQ0ZmNlYWQwLTcwNTMtNDgzMS1hNTNhLWRmN2ZiOTBkNDQwZicsCiAgICAgICAgICAgICAgICBjcmVhdGVkX2F0ID0gMTYyNTEyNjQwMDAwMCwKICAgICAgICAgICAgICAgIHVwZGF0ZWRfYXQgPSAxNjI1MTI2NDAwMDAwLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ0NPTVBMRVRFRCcsCiAgICAgICAgICAgICAgICBldmVudF90eXBlID0gJ3RyYW5zYWN0aW9uLmNyZWF0ZWQnLAogICAgICAgICAgICAgICAgcmVzb3VyY2VfaWQgPSAnNDRmY2VhZDAtNzA1My00ODMxLWE1M2EtZGY3ZmI5MGQ0NDBmJywKICAgICAgICAgICAgICAgIGRhdGEgPSBOb25lCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uV2l0aERhdGEoCiAgICAgICAgICAgICAgICBpZCA9ICc0NGZjZWFkMC03MDUzLTQ4MzEtYTUzYS1kZjdmYjkwZDQ0MGYnLAogICAgICAgICAgICAgICAgY3JlYXRlZF9hdCA9IDE2MjUxMjY0MDAwMDAsCiAgICAgICAgICAgICAgICB1cGRhdGVkX2F0ID0gMTYyNTEyNjQwMDAwMCwKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLAogICAgICAgICAgICAgICAgZXZlbnRfdHlwZSA9ICd0cmFuc2FjdGlvbi5jcmVhdGVkJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3ROb3RpZmljYXRpb25XaXRoRGF0YShzZWxmKToKICAgICAgICAiIiJUZXN0IE5vdGlmaWNhdGlvbldpdGhEYXRhIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_off_exchanges_api.py b/test/test_off_exchanges_api.py index e0871a1b..310736e7 100644 --- a/test/test_off_exchanges_api.py +++ b/test/test_off_exchanges_api.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.off_exchanges_api import OffExchangesApi - - -class TestOffExchangesApi(unittest.TestCase): - """OffExchangesApi unit test stubs""" - - def setUp(self) -> None: - self.api = OffExchangesApi() - - def tearDown(self) -> None: - pass - - def test_add_off_exchange(self) -> None: - """Test case for add_off_exchange - - Add Collateral - """ - pass - - def test_get_off_exchange_collateral_accounts(self) -> None: - """Test case for get_off_exchange_collateral_accounts - - Find a specific collateral exchange account - """ - pass - - def test_get_off_exchange_settlement_transactions(self) -> None: - """Test case for get_off_exchange_settlement_transactions - - Get Settlements Transactions - """ - pass - - def test_remove_off_exchange(self) -> None: - """Test case for remove_off_exchange - - Remove Collateral - """ - pass - - def test_settle_off_exchange_trades(self) -> None: - """Test case for settle_off_exchange_trades - - Create Settlement for a Trader - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLm9mZl9leGNoYW5nZXNfYXBpIGltcG9ydCBPZmZFeGNoYW5nZXNBcGkKCgpjbGFzcyBUZXN0T2ZmRXhjaGFuZ2VzQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk9mZkV4Y2hhbmdlc0FwaSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZikgLT4gTm9uZToKICAgICAgICBzZWxmLmFwaSA9IE9mZkV4Y2hhbmdlc0FwaSgpCgogICAgZGVmIHRlYXJEb3duKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2FkZF9vZmZfZXhjaGFuZ2Uoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGFkZF9vZmZfZXhjaGFuZ2UKCiAgICAgICAgQWRkIENvbGxhdGVyYWwKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X29mZl9leGNoYW5nZV9jb2xsYXRlcmFsX2FjY291bnRzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfb2ZmX2V4Y2hhbmdlX2NvbGxhdGVyYWxfYWNjb3VudHMKCiAgICAgICAgRmluZCBhIHNwZWNpZmljIGNvbGxhdGVyYWwgZXhjaGFuZ2UgYWNjb3VudAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfb2ZmX2V4Y2hhbmdlX3NldHRsZW1lbnRfdHJhbnNhY3Rpb25zKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfb2ZmX2V4Y2hhbmdlX3NldHRsZW1lbnRfdHJhbnNhY3Rpb25zCgogICAgICAgIEdldCBTZXR0bGVtZW50cyBUcmFuc2FjdGlvbnMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfcmVtb3ZlX29mZl9leGNoYW5nZShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgcmVtb3ZlX29mZl9leGNoYW5nZQoKICAgICAgICBSZW1vdmUgQ29sbGF0ZXJhbAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9zZXR0bGVfb2ZmX2V4Y2hhbmdlX3RyYWRlcyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3Igc2V0dGxlX29mZl9leGNoYW5nZV90cmFkZXMKCiAgICAgICAgQ3JlYXRlIFNldHRsZW1lbnQgZm9yIGEgVHJhZGVyCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_onchain_data_api.py b/test/test_onchain_data_api.py index 86a77072..eab65d0d 100644 --- a/test/test_onchain_data_api.py +++ b/test/test_onchain_data_api.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.onchain_data_api import OnchainDataApi - - -class TestOnchainDataApi(unittest.TestCase): - """OnchainDataApi unit test stubs""" - - def setUp(self) -> None: - self.api = OnchainDataApi() - - def tearDown(self) -> None: - pass - - def test_get_access_registry_current_state(self) -> None: - """Test case for get_access_registry_current_state - - Get the current state of addresses in an access registry - """ - pass - - def test_get_access_registry_summary(self) -> None: - """Test case for get_access_registry_summary - - Summary of access registry state - """ - pass - - def test_get_active_roles_for_contract(self) -> None: - """Test case for get_active_roles_for_contract - - List of active roles for a given contract address and base asset ID - """ - pass - - def test_get_contract_balance_history(self) -> None: - """Test case for get_contract_balance_history - - Get historical balance data for a specific account in a contract - """ - pass - - def test_get_contract_balances_summary(self) -> None: - """Test case for get_contract_balances_summary - - Get summary for the token contract - """ - pass - - def test_get_contract_total_supply(self) -> None: - """Test case for get_contract_total_supply - - Get historical total supply data for a contract - """ - pass - - def test_get_latest_balances_for_contract(self) -> None: - """Test case for get_latest_balances_for_contract - - Get latest balances for all addresses holding tokens from a contract - """ - pass - - def test_get_onchain_transactions(self) -> None: - """Test case for get_onchain_transactions - - Fetch onchain transactions for a contract - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLm9uY2hhaW5fZGF0YV9hcGkgaW1wb3J0IE9uY2hhaW5EYXRhQXBpCgoKY2xhc3MgVGVzdE9uY2hhaW5EYXRhQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk9uY2hhaW5EYXRhQXBpIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKSAtPiBOb25lOgogICAgICAgIHNlbGYuYXBpID0gT25jaGFpbkRhdGFBcGkoKQoKICAgIGRlZiB0ZWFyRG93bihzZWxmKSAtPiBOb25lOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfYWNjZXNzX3JlZ2lzdHJ5X2N1cnJlbnRfc3RhdGUoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9hY2Nlc3NfcmVnaXN0cnlfY3VycmVudF9zdGF0ZQoKICAgICAgICBHZXQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYWRkcmVzc2VzIGluIGFuIGFjY2VzcyByZWdpc3RyeQogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfYWNjZXNzX3JlZ2lzdHJ5X3N1bW1hcnkoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9hY2Nlc3NfcmVnaXN0cnlfc3VtbWFyeQoKICAgICAgICBTdW1tYXJ5IG9mIGFjY2VzcyByZWdpc3RyeSBzdGF0ZQogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfYWN0aXZlX3JvbGVzX2Zvcl9jb250cmFjdChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2FjdGl2ZV9yb2xlc19mb3JfY29udHJhY3QKCiAgICAgICAgTGlzdCBvZiBhY3RpdmUgcm9sZXMgZm9yIGEgZ2l2ZW4gY29udHJhY3QgYWRkcmVzcyBhbmQgYmFzZSBhc3NldCBJRAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfY29udHJhY3RfYmFsYW5jZV9oaXN0b3J5KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfY29udHJhY3RfYmFsYW5jZV9oaXN0b3J5CgogICAgICAgIEdldCBoaXN0b3JpY2FsIGJhbGFuY2UgZGF0YSBmb3IgYSBzcGVjaWZpYyBhY2NvdW50IGluIGEgY29udHJhY3QKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2NvbnRyYWN0X2JhbGFuY2VzX3N1bW1hcnkoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9jb250cmFjdF9iYWxhbmNlc19zdW1tYXJ5CgogICAgICAgIEdldCBzdW1tYXJ5IGZvciB0aGUgdG9rZW4gY29udHJhY3QKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2NvbnRyYWN0X3RvdGFsX3N1cHBseShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2NvbnRyYWN0X3RvdGFsX3N1cHBseQoKICAgICAgICBHZXQgaGlzdG9yaWNhbCB0b3RhbCBzdXBwbHkgZGF0YSBmb3IgYSBjb250cmFjdAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfbGF0ZXN0X2JhbGFuY2VzX2Zvcl9jb250cmFjdChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2xhdGVzdF9iYWxhbmNlc19mb3JfY29udHJhY3QKCiAgICAgICAgR2V0IGxhdGVzdCBiYWxhbmNlcyBmb3IgYWxsIGFkZHJlc3NlcyBob2xkaW5nIHRva2VucyBmcm9tIGEgY29udHJhY3QKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X29uY2hhaW5fdHJhbnNhY3Rpb25zKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfb25jaGFpbl90cmFuc2FjdGlvbnMKCiAgICAgICAgRmV0Y2ggb25jaGFpbiB0cmFuc2FjdGlvbnMgZm9yIGEgY29udHJhY3QKICAgICAgICAiIiIKICAgICAgICBwYXNzCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_onchain_transaction.py b/test/test_onchain_transaction.py index b948f9f7..5ccbe141 100644 --- a/test/test_onchain_transaction.py +++ b/test/test_onchain_transaction.py @@ -1,89 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.onchain_transaction import OnchainTransaction - - -class TestOnchainTransaction(unittest.TestCase): - """OnchainTransaction unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> OnchainTransaction: - """Test OnchainTransaction - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `OnchainTransaction` - """ - model = OnchainTransaction() - if include_optional: - return OnchainTransaction( - id = '550e8400-e29b-41d4-a716-446655440000', - base_asset_id = 'ETH_TEST3', - block_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef', - block_number = 12345678, - block_timestamp = '2025-01-16T15:45Z', - chain_id = 1, - contract_address = '0x1234567890123456789012345678901234567890', - cumulative_gas_used = '21000', - decoded_logs = fireblocks.models.decoded_log.DecodedLog( - address = '0x1234567890123456789012345678901234567890', - block_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef', - block_number = '12345678', - transaction_hash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890', - log_index = '0', ), - effective_gas_price = '20000000000', - from_address = '0xabcdef1234567890abcdef1234567890abcdef12', - gas_used = '21000', - status = '1', - to_address = '0x1234567890123456789012345678901234567890', - transaction_hash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890', - transaction_index = '0', - type = '2' - ) - else: - return OnchainTransaction( - id = '550e8400-e29b-41d4-a716-446655440000', - base_asset_id = 'ETH_TEST3', - block_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef', - block_number = 12345678, - block_timestamp = '2025-01-16T15:45Z', - chain_id = 1, - cumulative_gas_used = '21000', - effective_gas_price = '20000000000', - from_address = '0xabcdef1234567890abcdef1234567890abcdef12', - gas_used = '21000', - status = '1', - transaction_hash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890', - transaction_index = '0', - type = '2', - ) - """ - - def testOnchainTransaction(self): - """Test OnchainTransaction""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9uY2hhaW5fdHJhbnNhY3Rpb24gaW1wb3J0IE9uY2hhaW5UcmFuc2FjdGlvbgoKCmNsYXNzIFRlc3RPbmNoYWluVHJhbnNhY3Rpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiT25jaGFpblRyYW5zYWN0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBPbmNoYWluVHJhbnNhY3Rpb246CiAgICAgICAgIiIiVGVzdCBPbmNoYWluVHJhbnNhY3Rpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgT25jaGFpblRyYW5zYWN0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gT25jaGFpblRyYW5zYWN0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gT25jaGFpblRyYW5zYWN0aW9uKAogICAgICAgICAgICAgICAgaWQgPSAnNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAwJywKICAgICAgICAgICAgICAgIGJhc2VfYXNzZXRfaWQgPSAnRVRIX1RFU1QzJywKICAgICAgICAgICAgICAgIGJsb2NrX2hhc2ggPSAnMHgxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmJywKICAgICAgICAgICAgICAgIGJsb2NrX251bWJlciA9IDEyMzQ1Njc4LAogICAgICAgICAgICAgICAgYmxvY2tfdGltZXN0YW1wID0gJzIwMjUtMDEtMTZUMTU6NDVaJywKICAgICAgICAgICAgICAgIGNoYWluX2lkID0gMSwKICAgICAgICAgICAgICAgIGNvbnRyYWN0X2FkZHJlc3MgPSAnMHgxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwJywKICAgICAgICAgICAgICAgIGN1bXVsYXRpdmVfZ2FzX3VzZWQgPSAnMjEwMDAnLAogICAgICAgICAgICAgICAgZGVjb2RlZF9sb2dzID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGVjb2RlZF9sb2cuRGVjb2RlZExvZygKICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzB4MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MCcsIAogICAgICAgICAgICAgICAgICAgIGJsb2NrX2hhc2ggPSAnMHgxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmJywgCiAgICAgICAgICAgICAgICAgICAgYmxvY2tfbnVtYmVyID0gJzEyMzQ1Njc4JywgCiAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25faGFzaCA9ICcweGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTAnLCAKICAgICAgICAgICAgICAgICAgICBsb2dfaW5kZXggPSAnMCcsICksCiAgICAgICAgICAgICAgICBlZmZlY3RpdmVfZ2FzX3ByaWNlID0gJzIwMDAwMDAwMDAwJywKICAgICAgICAgICAgICAgIGZyb21fYWRkcmVzcyA9ICcweGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTInLAogICAgICAgICAgICAgICAgZ2FzX3VzZWQgPSAnMjEwMDAnLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJzEnLAogICAgICAgICAgICAgICAgdG9fYWRkcmVzcyA9ICcweDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAnLAogICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25faGFzaCA9ICcweGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTAnLAogICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25faW5kZXggPSAnMCcsCiAgICAgICAgICAgICAgICB0eXBlID0gJzInCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gT25jaGFpblRyYW5zYWN0aW9uKAogICAgICAgICAgICAgICAgaWQgPSAnNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAwJywKICAgICAgICAgICAgICAgIGJhc2VfYXNzZXRfaWQgPSAnRVRIX1RFU1QzJywKICAgICAgICAgICAgICAgIGJsb2NrX2hhc2ggPSAnMHgxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmJywKICAgICAgICAgICAgICAgIGJsb2NrX251bWJlciA9IDEyMzQ1Njc4LAogICAgICAgICAgICAgICAgYmxvY2tfdGltZXN0YW1wID0gJzIwMjUtMDEtMTZUMTU6NDVaJywKICAgICAgICAgICAgICAgIGNoYWluX2lkID0gMSwKICAgICAgICAgICAgICAgIGN1bXVsYXRpdmVfZ2FzX3VzZWQgPSAnMjEwMDAnLAogICAgICAgICAgICAgICAgZWZmZWN0aXZlX2dhc19wcmljZSA9ICcyMDAwMDAwMDAwMCcsCiAgICAgICAgICAgICAgICBmcm9tX2FkZHJlc3MgPSAnMHhhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyJywKICAgICAgICAgICAgICAgIGdhc191c2VkID0gJzIxMDAwJywKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICcxJywKICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uX2hhc2ggPSAnMHhhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwJywKICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uX2luZGV4ID0gJzAnLAogICAgICAgICAgICAgICAgdHlwZSA9ICcyJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RPbmNoYWluVHJhbnNhY3Rpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBPbmNoYWluVHJhbnNhY3Rpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_onchain_transactions_paged_response.py b/test/test_onchain_transactions_paged_response.py index e92d54a2..b7dc1d5b 100644 --- a/test/test_onchain_transactions_paged_response.py +++ b/test/test_onchain_transactions_paged_response.py @@ -1,108 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.onchain_transactions_paged_response import ( - OnchainTransactionsPagedResponse, -) - - -class TestOnchainTransactionsPagedResponse(unittest.TestCase): - """OnchainTransactionsPagedResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> OnchainTransactionsPagedResponse: - """Test OnchainTransactionsPagedResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `OnchainTransactionsPagedResponse` - """ - model = OnchainTransactionsPagedResponse() - if include_optional: - return OnchainTransactionsPagedResponse( - data = [ - fireblocks.models.onchain_transaction.OnchainTransaction( - id = '550e8400-e29b-41d4-a716-446655440000', - base_asset_id = 'ETH_TEST3', - block_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef', - block_number = 12345678, - block_timestamp = '2025-01-16T15:45Z', - chain_id = 1, - contract_address = '0x1234567890123456789012345678901234567890', - cumulative_gas_used = '21000', - decoded_logs = fireblocks.models.decoded_log.DecodedLog( - address = '0x1234567890123456789012345678901234567890', - block_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef', - block_number = '12345678', - transaction_hash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890', - log_index = '0', ), - effective_gas_price = '20000000000', - from_address = '0xabcdef1234567890abcdef1234567890abcdef12', - gas_used = '21000', - status = '1', - to_address = '0x1234567890123456789012345678901234567890', - transaction_hash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890', - transaction_index = '0', - type = '2', ) - ], - next = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==', - prev = 'dGhpcyBpcyBhIHByZXZpb3VzIGN1cnNvcg==', - total = 150 - ) - else: - return OnchainTransactionsPagedResponse( - data = [ - fireblocks.models.onchain_transaction.OnchainTransaction( - id = '550e8400-e29b-41d4-a716-446655440000', - base_asset_id = 'ETH_TEST3', - block_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef', - block_number = 12345678, - block_timestamp = '2025-01-16T15:45Z', - chain_id = 1, - contract_address = '0x1234567890123456789012345678901234567890', - cumulative_gas_used = '21000', - decoded_logs = fireblocks.models.decoded_log.DecodedLog( - address = '0x1234567890123456789012345678901234567890', - block_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef', - block_number = '12345678', - transaction_hash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890', - log_index = '0', ), - effective_gas_price = '20000000000', - from_address = '0xabcdef1234567890abcdef1234567890abcdef12', - gas_used = '21000', - status = '1', - to_address = '0x1234567890123456789012345678901234567890', - transaction_hash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890', - transaction_index = '0', - type = '2', ) - ], - ) - """ - - def testOnchainTransactionsPagedResponse(self): - """Test OnchainTransactionsPagedResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9uY2hhaW5fdHJhbnNhY3Rpb25zX3BhZ2VkX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBPbmNoYWluVHJhbnNhY3Rpb25zUGFnZWRSZXNwb25zZSwKKQoKCmNsYXNzIFRlc3RPbmNoYWluVHJhbnNhY3Rpb25zUGFnZWRSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJPbmNoYWluVHJhbnNhY3Rpb25zUGFnZWRSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gT25jaGFpblRyYW5zYWN0aW9uc1BhZ2VkUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBPbmNoYWluVHJhbnNhY3Rpb25zUGFnZWRSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBPbmNoYWluVHJhbnNhY3Rpb25zUGFnZWRSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IE9uY2hhaW5UcmFuc2FjdGlvbnNQYWdlZFJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gT25jaGFpblRyYW5zYWN0aW9uc1BhZ2VkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLm9uY2hhaW5fdHJhbnNhY3Rpb24uT25jaGFpblRyYW5zYWN0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICc1NTBlODQwMC1lMjliLTQxZDQtYTcxNi00NDY2NTU0NDAwMDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmFzZV9hc3NldF9pZCA9ICdFVEhfVEVTVDMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tfaGFzaCA9ICcweDEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tfbnVtYmVyID0gMTIzNDU2NzgsIAogICAgICAgICAgICAgICAgICAgICAgICBibG9ja190aW1lc3RhbXAgPSAnMjAyNS0wMS0xNlQxNTo0NVonLCAKICAgICAgICAgICAgICAgICAgICAgICAgY2hhaW5faWQgPSAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgY29udHJhY3RfYWRkcmVzcyA9ICcweDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY3VtdWxhdGl2ZV9nYXNfdXNlZCA9ICcyMTAwMCcsIAogICAgICAgICAgICAgICAgICAgICAgICBkZWNvZGVkX2xvZ3MgPSBmaXJlYmxvY2tzLm1vZGVscy5kZWNvZGVkX2xvZy5EZWNvZGVkTG9nKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrX2hhc2ggPSAnMHgxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja19udW1iZXIgPSAnMTIzNDU2NzgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uX2hhc2ggPSAnMHhhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dfaW5kZXggPSAnMCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICBlZmZlY3RpdmVfZ2FzX3ByaWNlID0gJzIwMDAwMDAwMDAwJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGZyb21fYWRkcmVzcyA9ICcweGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTInLCAKICAgICAgICAgICAgICAgICAgICAgICAgZ2FzX3VzZWQgPSAnMjEwMDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJzEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdG9fYWRkcmVzcyA9ICcweDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25faGFzaCA9ICcweGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25faW5kZXggPSAnMCcsIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJzInLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIG5leHQgPSAnTWpBeU15MHhNaTB4TXlBeU1Eb3pOam93T0M0ek1EST06TVRFd01BPT0nLAogICAgICAgICAgICAgICAgcHJldiA9ICdkR2hwY3lCcGN5QmhJSEJ5WlhacGIzVnpJR04xY25OdmNnPT0nLAogICAgICAgICAgICAgICAgdG90YWwgPSAxNTAKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBPbmNoYWluVHJhbnNhY3Rpb25zUGFnZWRSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMub25jaGFpbl90cmFuc2FjdGlvbi5PbmNoYWluVHJhbnNhY3Rpb24oCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCcsIAogICAgICAgICAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0X2lkID0gJ0VUSF9URVNUMycsIAogICAgICAgICAgICAgICAgICAgICAgICBibG9ja19oYXNoID0gJzB4MTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZicsIAogICAgICAgICAgICAgICAgICAgICAgICBibG9ja19udW1iZXIgPSAxMjM0NTY3OCwgCiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrX3RpbWVzdGFtcCA9ICcyMDI1LTAxLTE2VDE1OjQ1WicsIAogICAgICAgICAgICAgICAgICAgICAgICBjaGFpbl9pZCA9IDEsIAogICAgICAgICAgICAgICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzID0gJzB4MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MCcsIAogICAgICAgICAgICAgICAgICAgICAgICBjdW11bGF0aXZlX2dhc191c2VkID0gJzIxMDAwJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlY29kZWRfbG9ncyA9IGZpcmVibG9ja3MubW9kZWxzLmRlY29kZWRfbG9nLkRlY29kZWRMb2coCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzB4MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tfaGFzaCA9ICcweDEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrX251bWJlciA9ICcxMjM0NTY3OCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25faGFzaCA9ICcweGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ19pbmRleCA9ICcwJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGVmZmVjdGl2ZV9nYXNfcHJpY2UgPSAnMjAwMDAwMDAwMDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZnJvbV9hZGRyZXNzID0gJzB4YWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMicsIAogICAgICAgICAgICAgICAgICAgICAgICBnYXNfdXNlZCA9ICcyMTAwMCcsIAogICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnMScsIAogICAgICAgICAgICAgICAgICAgICAgICB0b19hZGRyZXNzID0gJzB4MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MCcsIAogICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbl9oYXNoID0gJzB4YWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MCcsIAogICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbl9pbmRleCA9ICcwJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnMicsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdE9uY2hhaW5UcmFuc2FjdGlvbnNQYWdlZFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgT25jaGFpblRyYW5zYWN0aW9uc1BhZ2VkUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_one_time_address.py b/test/test_one_time_address.py index 98f17085..ddfab388 100644 --- a/test/test_one_time_address.py +++ b/test/test_one_time_address.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.one_time_address import OneTimeAddress - - -class TestOneTimeAddress(unittest.TestCase): - """OneTimeAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> OneTimeAddress: - """Test OneTimeAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `OneTimeAddress` - """ - model = OneTimeAddress() - if include_optional: - return OneTimeAddress( - address = '', - tag = '' - ) - else: - return OneTimeAddress( - address = '', - ) - """ - - def testOneTimeAddress(self): - """Test OneTimeAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9uZV90aW1lX2FkZHJlc3MgaW1wb3J0IE9uZVRpbWVBZGRyZXNzCgoKY2xhc3MgVGVzdE9uZVRpbWVBZGRyZXNzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk9uZVRpbWVBZGRyZXNzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBPbmVUaW1lQWRkcmVzczoKICAgICAgICAiIiJUZXN0IE9uZVRpbWVBZGRyZXNzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYE9uZVRpbWVBZGRyZXNzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gT25lVGltZUFkZHJlc3MoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBPbmVUaW1lQWRkcmVzcygKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnJywKICAgICAgICAgICAgICAgIHRhZyA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gT25lVGltZUFkZHJlc3MoCiAgICAgICAgICAgICAgICBhZGRyZXNzID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0T25lVGltZUFkZHJlc3Moc2VsZik6CiAgICAgICAgIiIiVGVzdCBPbmVUaW1lQWRkcmVzcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_one_time_address_account.py b/test/test_one_time_address_account.py index 2e5e556d..a1e1f05b 100644 --- a/test/test_one_time_address_account.py +++ b/test/test_one_time_address_account.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.one_time_address_account import OneTimeAddressAccount - - -class TestOneTimeAddressAccount(unittest.TestCase): - """OneTimeAddressAccount unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> OneTimeAddressAccount: - """Test OneTimeAddressAccount - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `OneTimeAddressAccount` - """ - model = OneTimeAddressAccount() - if include_optional: - return OneTimeAddressAccount( - one_time_address = '', - tag = '' - ) - else: - return OneTimeAddressAccount( - one_time_address = '', - ) - """ - - def testOneTimeAddressAccount(self): - """Test OneTimeAddressAccount""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9uZV90aW1lX2FkZHJlc3NfYWNjb3VudCBpbXBvcnQgT25lVGltZUFkZHJlc3NBY2NvdW50CgoKY2xhc3MgVGVzdE9uZVRpbWVBZGRyZXNzQWNjb3VudCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJPbmVUaW1lQWRkcmVzc0FjY291bnQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IE9uZVRpbWVBZGRyZXNzQWNjb3VudDoKICAgICAgICAiIiJUZXN0IE9uZVRpbWVBZGRyZXNzQWNjb3VudAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBPbmVUaW1lQWRkcmVzc0FjY291bnRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBPbmVUaW1lQWRkcmVzc0FjY291bnQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBPbmVUaW1lQWRkcmVzc0FjY291bnQoCiAgICAgICAgICAgICAgICBvbmVfdGltZV9hZGRyZXNzID0gJycsCiAgICAgICAgICAgICAgICB0YWcgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIE9uZVRpbWVBZGRyZXNzQWNjb3VudCgKICAgICAgICAgICAgICAgIG9uZV90aW1lX2FkZHJlc3MgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RPbmVUaW1lQWRkcmVzc0FjY291bnQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBPbmVUaW1lQWRkcmVzc0FjY291bnQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_one_time_address_peer_type.py b/test/test_one_time_address_peer_type.py index 3f2db868..62842996 100644 --- a/test/test_one_time_address_peer_type.py +++ b/test/test_one_time_address_peer_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.one_time_address_peer_type import OneTimeAddressPeerType - - -class TestOneTimeAddressPeerType(unittest.TestCase): - """OneTimeAddressPeerType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testOneTimeAddressPeerType(self): - """Test OneTimeAddressPeerType""" - # inst = OneTimeAddressPeerType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9uZV90aW1lX2FkZHJlc3NfcGVlcl90eXBlIGltcG9ydCBPbmVUaW1lQWRkcmVzc1BlZXJUeXBlCgoKY2xhc3MgVGVzdE9uZVRpbWVBZGRyZXNzUGVlclR5cGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiT25lVGltZUFkZHJlc3NQZWVyVHlwZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RPbmVUaW1lQWRkcmVzc1BlZXJUeXBlKHNlbGYpOgogICAgICAgICIiIlRlc3QgT25lVGltZUFkZHJlc3NQZWVyVHlwZSIiIgogICAgICAgICMgaW5zdCA9IE9uZVRpbWVBZGRyZXNzUGVlclR5cGUoKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_one_time_address_reference.py b/test/test_one_time_address_reference.py index 61a973ed..298c2fa5 100644 --- a/test/test_one_time_address_reference.py +++ b/test/test_one_time_address_reference.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.one_time_address_reference import OneTimeAddressReference - - -class TestOneTimeAddressReference(unittest.TestCase): - """OneTimeAddressReference unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> OneTimeAddressReference: - """Test OneTimeAddressReference - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `OneTimeAddressReference` - """ - model = OneTimeAddressReference() - if include_optional: - return OneTimeAddressReference( - type = 'ONE_TIME_ADDRESS', - address = '', - tag = '' - ) - else: - return OneTimeAddressReference( - type = 'ONE_TIME_ADDRESS', - address = '', - ) - """ - - def testOneTimeAddressReference(self): - """Test OneTimeAddressReference""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9uZV90aW1lX2FkZHJlc3NfcmVmZXJlbmNlIGltcG9ydCBPbmVUaW1lQWRkcmVzc1JlZmVyZW5jZQoKCmNsYXNzIFRlc3RPbmVUaW1lQWRkcmVzc1JlZmVyZW5jZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJPbmVUaW1lQWRkcmVzc1JlZmVyZW5jZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gT25lVGltZUFkZHJlc3NSZWZlcmVuY2U6CiAgICAgICAgIiIiVGVzdCBPbmVUaW1lQWRkcmVzc1JlZmVyZW5jZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBPbmVUaW1lQWRkcmVzc1JlZmVyZW5jZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IE9uZVRpbWVBZGRyZXNzUmVmZXJlbmNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gT25lVGltZUFkZHJlc3NSZWZlcmVuY2UoCiAgICAgICAgICAgICAgICB0eXBlID0gJ09ORV9USU1FX0FERFJFU1MnLAogICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcnLAogICAgICAgICAgICAgICAgdGFnID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBPbmVUaW1lQWRkcmVzc1JlZmVyZW5jZSgKICAgICAgICAgICAgICAgIHR5cGUgPSAnT05FX1RJTUVfQUREUkVTUycsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0T25lVGltZUFkZHJlc3NSZWZlcmVuY2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBPbmVUaW1lQWRkcmVzc1JlZmVyZW5jZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_operation_execution_failure.py b/test/test_operation_execution_failure.py index 00998ded..66d1de0a 100644 --- a/test/test_operation_execution_failure.py +++ b/test/test_operation_execution_failure.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.operation_execution_failure import OperationExecutionFailure - - -class TestOperationExecutionFailure(unittest.TestCase): - """OperationExecutionFailure unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> OperationExecutionFailure: - """Test OperationExecutionFailure - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `OperationExecutionFailure` - """ - model = OperationExecutionFailure() - if include_optional: - return OperationExecutionFailure( - reason = '', - data = { - 'key' : null - } - ) - else: - return OperationExecutionFailure( - reason = '', - ) - """ - - def testOperationExecutionFailure(self): - """Test OperationExecutionFailure""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9wZXJhdGlvbl9leGVjdXRpb25fZmFpbHVyZSBpbXBvcnQgT3BlcmF0aW9uRXhlY3V0aW9uRmFpbHVyZQoKCmNsYXNzIFRlc3RPcGVyYXRpb25FeGVjdXRpb25GYWlsdXJlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk9wZXJhdGlvbkV4ZWN1dGlvbkZhaWx1cmUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IE9wZXJhdGlvbkV4ZWN1dGlvbkZhaWx1cmU6CiAgICAgICAgIiIiVGVzdCBPcGVyYXRpb25FeGVjdXRpb25GYWlsdXJlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYE9wZXJhdGlvbkV4ZWN1dGlvbkZhaWx1cmVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBPcGVyYXRpb25FeGVjdXRpb25GYWlsdXJlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gT3BlcmF0aW9uRXhlY3V0aW9uRmFpbHVyZSgKICAgICAgICAgICAgICAgIHJlYXNvbiA9ICcnLAogICAgICAgICAgICAgICAgZGF0YSA9IHsKICAgICAgICAgICAgICAgICAgICAna2V5JyA6IG51bGwKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gT3BlcmF0aW9uRXhlY3V0aW9uRmFpbHVyZSgKICAgICAgICAgICAgICAgIHJlYXNvbiA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdE9wZXJhdGlvbkV4ZWN1dGlvbkZhaWx1cmUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBPcGVyYXRpb25FeGVjdXRpb25GYWlsdXJlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_order_details.py b/test/test_order_details.py index 3945d838..4274fbaf 100644 --- a/test/test_order_details.py +++ b/test/test_order_details.py @@ -1,87 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.order_details import OrderDetails - - -class TestOrderDetails(unittest.TestCase): - """OrderDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> OrderDetails: - """Test OrderDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `OrderDetails` - """ - model = OrderDetails() - if include_optional: - return OrderDetails( - id = '', - via = None, - status = 'PROCESSING', - created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), - updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), - receipt = None, - general_fees = [ - null - ], - execution_steps = [ - {"type":"EXECUTE","status":"PROCESSING","fee":{"feeType":"NETWORK","assetId":"ETH","amountType":"FIXED","amount":"0.01"},"txId":"tx_abc123def456"} - ], - execution_response_details = None, - settlement = None, - participants_identification = {"originator":{"externalReferenceId":"user_123456","entityType":"INDIVIDUAL","participantRelationshipType":"FirstParty","fullName":{"firstName":"John","lastName":"Smith"},"dateOfBirth":"1985-03-15","email":"john.smith@example.com","phone":"+14155551234","postalAddress":{"streetName":"Main Street","buildingNumber":"123","postalCode":"10001","city":"New York","subdivision":"NY","district":"Manhattan","country":"US"}},"beneficiary":{"externalReferenceId":"user_789012","entityType":"INDIVIDUAL","participantRelationshipType":"ThirdParty","fullName":{"firstName":"Alice","lastName":"Johnson"},"dateOfBirth":"1990-07-22","email":"alice.johnson@example.com","phone":"+14155551234","postalAddress":{"streetName":"Broadway","buildingNumber":"456","postalCode":"10002","city":"New York","subdivision":"NY","district":"Manhattan","country":"US"}}}, - payment_instructions = [ - null - ], - created_by = '', - customer_internal_reference_id = '', - note = '', - expires_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), - failure = fireblocks.models.failure.Failure( - reason = 'INSUFFICIENT_FUNDS', ) - ) - else: - return OrderDetails( - id = '', - via = None, - status = 'PROCESSING', - created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), - execution_steps = [ - {"type":"EXECUTE","status":"PROCESSING","fee":{"feeType":"NETWORK","assetId":"ETH","amountType":"FIXED","amount":"0.01"},"txId":"tx_abc123def456"} - ], - execution_response_details = None, - settlement = None, - created_by = '', - ) - """ - - def testOrderDetails(self): - """Test OrderDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9yZGVyX2RldGFpbHMgaW1wb3J0IE9yZGVyRGV0YWlscwoKCmNsYXNzIFRlc3RPcmRlckRldGFpbHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiT3JkZXJEZXRhaWxzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBPcmRlckRldGFpbHM6CiAgICAgICAgIiIiVGVzdCBPcmRlckRldGFpbHMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgT3JkZXJEZXRhaWxzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gT3JkZXJEZXRhaWxzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gT3JkZXJEZXRhaWxzKAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIHZpYSA9IE5vbmUsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnUFJPQ0VTU0lORycsCiAgICAgICAgICAgICAgICBjcmVhdGVkX2F0ID0gZGF0ZXRpbWUuZGF0ZXRpbWUuc3RycHRpbWUoJzIwMTMtMTAtMjAgMTk6MjA6MzAuMDAnLCAnJVktJW0tJWQgJUg6JU06JVMuJWYnKSwKICAgICAgICAgICAgICAgIHVwZGF0ZWRfYXQgPSBkYXRldGltZS5kYXRldGltZS5zdHJwdGltZSgnMjAxMy0xMC0yMCAxOToyMDozMC4wMCcsICclWS0lbS0lZCAlSDolTTolUy4lZicpLAogICAgICAgICAgICAgICAgcmVjZWlwdCA9IE5vbmUsCiAgICAgICAgICAgICAgICBnZW5lcmFsX2ZlZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBleGVjdXRpb25fc3RlcHMgPSBbCiAgICAgICAgICAgICAgICAgICAgeyJ0eXBlIjoiRVhFQ1VURSIsInN0YXR1cyI6IlBST0NFU1NJTkciLCJmZWUiOnsiZmVlVHlwZSI6Ik5FVFdPUksiLCJhc3NldElkIjoiRVRIIiwiYW1vdW50VHlwZSI6IkZJWEVEIiwiYW1vdW50IjoiMC4wMSJ9LCJ0eElkIjoidHhfYWJjMTIzZGVmNDU2In0KICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgZXhlY3V0aW9uX3Jlc3BvbnNlX2RldGFpbHMgPSBOb25lLAogICAgICAgICAgICAgICAgc2V0dGxlbWVudCA9IE5vbmUsCiAgICAgICAgICAgICAgICBwYXJ0aWNpcGFudHNfaWRlbnRpZmljYXRpb24gPSB7Im9yaWdpbmF0b3IiOnsiZXh0ZXJuYWxSZWZlcmVuY2VJZCI6InVzZXJfMTIzNDU2IiwiZW50aXR5VHlwZSI6IklORElWSURVQUwiLCJwYXJ0aWNpcGFudFJlbGF0aW9uc2hpcFR5cGUiOiJGaXJzdFBhcnR5IiwiZnVsbE5hbWUiOnsiZmlyc3ROYW1lIjoiSm9obiIsImxhc3ROYW1lIjoiU21pdGgifSwiZGF0ZU9mQmlydGgiOiIxOTg1LTAzLTE1IiwiZW1haWwiOiJqb2huLnNtaXRoQGV4YW1wbGUuY29tIiwicGhvbmUiOiIrMTQxNTU1NTEyMzQiLCJwb3N0YWxBZGRyZXNzIjp7InN0cmVldE5hbWUiOiJNYWluIFN0cmVldCIsImJ1aWxkaW5nTnVtYmVyIjoiMTIzIiwicG9zdGFsQ29kZSI6IjEwMDAxIiwiY2l0eSI6Ik5ldyBZb3JrIiwic3ViZGl2aXNpb24iOiJOWSIsImRpc3RyaWN0IjoiTWFuaGF0dGFuIiwiY291bnRyeSI6IlVTIn19LCJiZW5lZmljaWFyeSI6eyJleHRlcm5hbFJlZmVyZW5jZUlkIjoidXNlcl83ODkwMTIiLCJlbnRpdHlUeXBlIjoiSU5ESVZJRFVBTCIsInBhcnRpY2lwYW50UmVsYXRpb25zaGlwVHlwZSI6IlRoaXJkUGFydHkiLCJmdWxsTmFtZSI6eyJmaXJzdE5hbWUiOiJBbGljZSIsImxhc3ROYW1lIjoiSm9obnNvbiJ9LCJkYXRlT2ZCaXJ0aCI6IjE5OTAtMDctMjIiLCJlbWFpbCI6ImFsaWNlLmpvaG5zb25AZXhhbXBsZS5jb20iLCJwaG9uZSI6IisxNDE1NTU1MTIzNCIsInBvc3RhbEFkZHJlc3MiOnsic3RyZWV0TmFtZSI6IkJyb2Fkd2F5IiwiYnVpbGRpbmdOdW1iZXIiOiI0NTYiLCJwb3N0YWxDb2RlIjoiMTAwMDIiLCJjaXR5IjoiTmV3IFlvcmsiLCJzdWJkaXZpc2lvbiI6Ik5ZIiwiZGlzdHJpY3QiOiJNYW5oYXR0YW4iLCJjb3VudHJ5IjoiVVMifX19LAogICAgICAgICAgICAgICAgcGF5bWVudF9pbnN0cnVjdGlvbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBjcmVhdGVkX2J5ID0gJycsCiAgICAgICAgICAgICAgICBjdXN0b21lcl9pbnRlcm5hbF9yZWZlcmVuY2VfaWQgPSAnJywKICAgICAgICAgICAgICAgIG5vdGUgPSAnJywKICAgICAgICAgICAgICAgIGV4cGlyZXNfYXQgPSBkYXRldGltZS5kYXRldGltZS5zdHJwdGltZSgnMjAxMy0xMC0yMCAxOToyMDozMC4wMCcsICclWS0lbS0lZCAlSDolTTolUy4lZicpLAogICAgICAgICAgICAgICAgZmFpbHVyZSA9IGZpcmVibG9ja3MubW9kZWxzLmZhaWx1cmUuRmFpbHVyZSgKICAgICAgICAgICAgICAgICAgICByZWFzb24gPSAnSU5TVUZGSUNJRU5UX0ZVTkRTJywgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIE9yZGVyRGV0YWlscygKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICB2aWEgPSBOb25lLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ1BST0NFU1NJTkcnLAogICAgICAgICAgICAgICAgY3JlYXRlZF9hdCA9IGRhdGV0aW1lLmRhdGV0aW1lLnN0cnB0aW1lKCcyMDEzLTEwLTIwIDE5OjIwOjMwLjAwJywgJyVZLSVtLSVkICVIOiVNOiVTLiVmJyksCiAgICAgICAgICAgICAgICBleGVjdXRpb25fc3RlcHMgPSBbCiAgICAgICAgICAgICAgICAgICAgeyJ0eXBlIjoiRVhFQ1VURSIsInN0YXR1cyI6IlBST0NFU1NJTkciLCJmZWUiOnsiZmVlVHlwZSI6Ik5FVFdPUksiLCJhc3NldElkIjoiRVRIIiwiYW1vdW50VHlwZSI6IkZJWEVEIiwiYW1vdW50IjoiMC4wMSJ9LCJ0eElkIjoidHhfYWJjMTIzZGVmNDU2In0KICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgZXhlY3V0aW9uX3Jlc3BvbnNlX2RldGFpbHMgPSBOb25lLAogICAgICAgICAgICAgICAgc2V0dGxlbWVudCA9IE5vbmUsCiAgICAgICAgICAgICAgICBjcmVhdGVkX2J5ID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0T3JkZXJEZXRhaWxzKHNlbGYpOgogICAgICAgICIiIlRlc3QgT3JkZXJEZXRhaWxzIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_order_execution_step.py b/test/test_order_execution_step.py index 23349cc6..a6a6242b 100644 --- a/test/test_order_execution_step.py +++ b/test/test_order_execution_step.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.order_execution_step import OrderExecutionStep - - -class TestOrderExecutionStep(unittest.TestCase): - """OrderExecutionStep unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> OrderExecutionStep: - """Test OrderExecutionStep - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `OrderExecutionStep` - """ - model = OrderExecutionStep() - if include_optional: - return OrderExecutionStep( - type = 'EXECUTE', - status = 'PROCESSING', - fee = None, - tx_id = '', - tx_hash = '', - error = 'INSUFFICIENT_FUNDS' - ) - else: - return OrderExecutionStep( - type = 'EXECUTE', - status = 'PROCESSING', - ) - """ - - def testOrderExecutionStep(self): - """Test OrderExecutionStep""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9yZGVyX2V4ZWN1dGlvbl9zdGVwIGltcG9ydCBPcmRlckV4ZWN1dGlvblN0ZXAKCgpjbGFzcyBUZXN0T3JkZXJFeGVjdXRpb25TdGVwKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk9yZGVyRXhlY3V0aW9uU3RlcCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gT3JkZXJFeGVjdXRpb25TdGVwOgogICAgICAgICIiIlRlc3QgT3JkZXJFeGVjdXRpb25TdGVwCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYE9yZGVyRXhlY3V0aW9uU3RlcGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IE9yZGVyRXhlY3V0aW9uU3RlcCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIE9yZGVyRXhlY3V0aW9uU3RlcCgKICAgICAgICAgICAgICAgIHR5cGUgPSAnRVhFQ1VURScsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnUFJPQ0VTU0lORycsCiAgICAgICAgICAgICAgICBmZWUgPSBOb25lLAogICAgICAgICAgICAgICAgdHhfaWQgPSAnJywKICAgICAgICAgICAgICAgIHR4X2hhc2ggPSAnJywKICAgICAgICAgICAgICAgIGVycm9yID0gJ0lOU1VGRklDSUVOVF9GVU5EUycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBPcmRlckV4ZWN1dGlvblN0ZXAoCiAgICAgICAgICAgICAgICB0eXBlID0gJ0VYRUNVVEUnLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ1BST0NFU1NJTkcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdE9yZGVyRXhlY3V0aW9uU3RlcChzZWxmKToKICAgICAgICAiIiJUZXN0IE9yZGVyRXhlY3V0aW9uU3RlcCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_order_side.py b/test/test_order_side.py index 43801e1a..fb430a12 100644 --- a/test/test_order_side.py +++ b/test/test_order_side.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.order_side import OrderSide - - -class TestOrderSide(unittest.TestCase): - """OrderSide unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testOrderSide(self): - """Test OrderSide""" - # inst = OrderSide() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9yZGVyX3NpZGUgaW1wb3J0IE9yZGVyU2lkZQoKCmNsYXNzIFRlc3RPcmRlclNpZGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiT3JkZXJTaWRlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdE9yZGVyU2lkZShzZWxmKToKICAgICAgICAiIiJUZXN0IE9yZGVyU2lkZSIiIgogICAgICAgICMgaW5zdCA9IE9yZGVyU2lkZSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_order_status.py b/test/test_order_status.py index b8fd48aa..4c4b1ae5 100644 --- a/test/test_order_status.py +++ b/test/test_order_status.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.order_status import OrderStatus - - -class TestOrderStatus(unittest.TestCase): - """OrderStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testOrderStatus(self): - """Test OrderStatus""" - # inst = OrderStatus() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9yZGVyX3N0YXR1cyBpbXBvcnQgT3JkZXJTdGF0dXMKCgpjbGFzcyBUZXN0T3JkZXJTdGF0dXModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiT3JkZXJTdGF0dXMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0T3JkZXJTdGF0dXMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBPcmRlclN0YXR1cyIiIgogICAgICAgICMgaW5zdCA9IE9yZGVyU3RhdHVzKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_order_summary.py b/test/test_order_summary.py index b1fd41dd..a4f0f3e4 100644 --- a/test/test_order_summary.py +++ b/test/test_order_summary.py @@ -1,73 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.order_summary import OrderSummary - - -class TestOrderSummary(unittest.TestCase): - """OrderSummary unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> OrderSummary: - """Test OrderSummary - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `OrderSummary` - """ - model = OrderSummary() - if include_optional: - return OrderSummary( - id = '', - via = None, - side = 'BUY', - base_amount = '', - quote_amount = '', - base_asset_id = '', - quote_asset_id = '', - status = 'PROCESSING', - destination = None, - source = None, - created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f') - ) - else: - return OrderSummary( - id = '', - via = None, - side = 'BUY', - base_amount = '', - base_asset_id = '', - quote_asset_id = '', - status = 'PROCESSING', - destination = None, - created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), - ) - """ - - def testOrderSummary(self): - """Test OrderSummary""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLm9yZGVyX3N1bW1hcnkgaW1wb3J0IE9yZGVyU3VtbWFyeQoKCmNsYXNzIFRlc3RPcmRlclN1bW1hcnkodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiT3JkZXJTdW1tYXJ5IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBPcmRlclN1bW1hcnk6CiAgICAgICAgIiIiVGVzdCBPcmRlclN1bW1hcnkKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgT3JkZXJTdW1tYXJ5YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gT3JkZXJTdW1tYXJ5KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gT3JkZXJTdW1tYXJ5KAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIHZpYSA9IE5vbmUsCiAgICAgICAgICAgICAgICBzaWRlID0gJ0JVWScsCiAgICAgICAgICAgICAgICBiYXNlX2Ftb3VudCA9ICcnLAogICAgICAgICAgICAgICAgcXVvdGVfYW1vdW50ID0gJycsCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0X2lkID0gJycsCiAgICAgICAgICAgICAgICBxdW90ZV9hc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ1BST0NFU1NJTkcnLAogICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSBOb25lLAogICAgICAgICAgICAgICAgc291cmNlID0gTm9uZSwKICAgICAgICAgICAgICAgIGNyZWF0ZWRfYXQgPSBkYXRldGltZS5kYXRldGltZS5zdHJwdGltZSgnMjAxMy0xMC0yMCAxOToyMDozMC4wMCcsICclWS0lbS0lZCAlSDolTTolUy4lZicpCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gT3JkZXJTdW1tYXJ5KAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIHZpYSA9IE5vbmUsCiAgICAgICAgICAgICAgICBzaWRlID0gJ0JVWScsCiAgICAgICAgICAgICAgICBiYXNlX2Ftb3VudCA9ICcnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgcXVvdGVfYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdQUk9DRVNTSU5HJywKICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gTm9uZSwKICAgICAgICAgICAgICAgIGNyZWF0ZWRfYXQgPSBkYXRldGltZS5kYXRldGltZS5zdHJwdGltZSgnMjAxMy0xMC0yMCAxOToyMDozMC4wMCcsICclWS0lbS0lZCAlSDolTTolUy4lZicpLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdE9yZGVyU3VtbWFyeShzZWxmKToKICAgICAgICAiIiJUZXN0IE9yZGVyU3VtbWFyeSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_ota_beta_api.py b/test/test_ota_beta_api.py index 76472f20..60655190 100644 --- a/test/test_ota_beta_api.py +++ b/test/test_ota_beta_api.py @@ -1,46 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.ota_beta_api import OTABetaApi - - -class TestOTABetaApi(unittest.TestCase): - """OTABetaApi unit test stubs""" - - def setUp(self) -> None: - self.api = OTABetaApi() - - def tearDown(self) -> None: - pass - - def test_get_ota_status(self) -> None: - """Test case for get_ota_status - - Returns current OTA status - """ - pass - - def test_set_ota_status(self) -> None: - """Test case for set_ota_status - - Enable or disable transactions to OTA - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLm90YV9iZXRhX2FwaSBpbXBvcnQgT1RBQmV0YUFwaQoKCmNsYXNzIFRlc3RPVEFCZXRhQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIk9UQUJldGFBcGkgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgc2VsZi5hcGkgPSBPVEFCZXRhQXBpKCkKCiAgICBkZWYgdGVhckRvd24oc2VsZikgLT4gTm9uZToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X290YV9zdGF0dXMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9vdGFfc3RhdHVzCgogICAgICAgIFJldHVybnMgY3VycmVudCBPVEEgc3RhdHVzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3NldF9vdGFfc3RhdHVzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBzZXRfb3RhX3N0YXR1cwoKICAgICAgICBFbmFibGUgb3IgZGlzYWJsZSB0cmFuc2FjdGlvbnMgdG8gT1RBCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_paginated_address_response.py b/test/test_paginated_address_response.py index 33d6a79b..6b253c44 100644 --- a/test/test_paginated_address_response.py +++ b/test/test_paginated_address_response.py @@ -1,70 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.paginated_address_response import PaginatedAddressResponse - - -class TestPaginatedAddressResponse(unittest.TestCase): - """PaginatedAddressResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PaginatedAddressResponse: - """Test PaginatedAddressResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PaginatedAddressResponse` - """ - model = PaginatedAddressResponse() - if include_optional: - return PaginatedAddressResponse( - addresses = [ - fireblocks.models.vault_wallet_address.VaultWalletAddress( - asset_id = '', - address = '', - description = '', - tag = '', - type = '', - customer_ref_id = '', - address_format = 'SEGWIT', - legacy_address = '', - enterprise_address = '', - bip44_address_index = 56, - user_defined = True, ) - ], - paging = fireblocks.models.paginated_address_response_paging.PaginatedAddressResponse_paging( - before = '', - after = '', ) - ) - else: - return PaginatedAddressResponse( - ) - """ - - def testPaginatedAddressResponse(self): - """Test PaginatedAddressResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhZ2luYXRlZF9hZGRyZXNzX3Jlc3BvbnNlIGltcG9ydCBQYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2UKCgpjbGFzcyBUZXN0UGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlBhZ2luYXRlZEFkZHJlc3NSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlOgogICAgICAgICIiIlRlc3QgUGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFBhZ2luYXRlZEFkZHJlc3NSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFBhZ2luYXRlZEFkZHJlc3NSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFBhZ2luYXRlZEFkZHJlc3NSZXNwb25zZSgKICAgICAgICAgICAgICAgIGFkZHJlc3NlcyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF93YWxsZXRfYWRkcmVzcy5WYXVsdFdhbGxldEFkZHJlc3MoCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdGFnID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9yZWZfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfZm9ybWF0ID0gJ1NFR1dJVCcsIAogICAgICAgICAgICAgICAgICAgICAgICBsZWdhY3lfYWRkcmVzcyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZW50ZXJwcmlzZV9hZGRyZXNzID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBiaXA0NF9hZGRyZXNzX2luZGV4ID0gNTYsIAogICAgICAgICAgICAgICAgICAgICAgICB1c2VyX2RlZmluZWQgPSBUcnVlLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHBhZ2luZyA9IGZpcmVibG9ja3MubW9kZWxzLnBhZ2luYXRlZF9hZGRyZXNzX3Jlc3BvbnNlX3BhZ2luZy5QYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2VfcGFnaW5nKAogICAgICAgICAgICAgICAgICAgIGJlZm9yZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhZnRlciA9ICcnLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFBhZ2luYXRlZEFkZHJlc3NSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFBhZ2luYXRlZEFkZHJlc3NSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_paginated_address_response_paging.py b/test/test_paginated_address_response_paging.py index 21d68922..71f35010 100644 --- a/test/test_paginated_address_response_paging.py +++ b/test/test_paginated_address_response_paging.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.paginated_address_response_paging import ( - PaginatedAddressResponsePaging, -) - - -class TestPaginatedAddressResponsePaging(unittest.TestCase): - """PaginatedAddressResponsePaging unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PaginatedAddressResponsePaging: - """Test PaginatedAddressResponsePaging - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PaginatedAddressResponsePaging` - """ - model = PaginatedAddressResponsePaging() - if include_optional: - return PaginatedAddressResponsePaging( - before = '', - after = '' - ) - else: - return PaginatedAddressResponsePaging( - ) - """ - - def testPaginatedAddressResponsePaging(self): - """Test PaginatedAddressResponsePaging""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhZ2luYXRlZF9hZGRyZXNzX3Jlc3BvbnNlX3BhZ2luZyBpbXBvcnQgKAogICAgUGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlUGFnaW5nLAopCgoKY2xhc3MgVGVzdFBhZ2luYXRlZEFkZHJlc3NSZXNwb25zZVBhZ2luZyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJQYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2VQYWdpbmcgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFBhZ2luYXRlZEFkZHJlc3NSZXNwb25zZVBhZ2luZzoKICAgICAgICAiIiJUZXN0IFBhZ2luYXRlZEFkZHJlc3NSZXNwb25zZVBhZ2luZwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBQYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2VQYWdpbmdgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBQYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2VQYWdpbmcoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2VQYWdpbmcoCiAgICAgICAgICAgICAgICBiZWZvcmUgPSAnJywKICAgICAgICAgICAgICAgIGFmdGVyID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQYWdpbmF0ZWRBZGRyZXNzUmVzcG9uc2VQYWdpbmcoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlUGFnaW5nKHNlbGYpOgogICAgICAgICIiIlRlc3QgUGFnaW5hdGVkQWRkcmVzc1Jlc3BvbnNlUGFnaW5nIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_paginated_asset_wallet_response.py b/test/test_paginated_asset_wallet_response.py index 24ca80e6..bea4df5a 100644 --- a/test/test_paginated_asset_wallet_response.py +++ b/test/test_paginated_asset_wallet_response.py @@ -1,72 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.paginated_asset_wallet_response import ( - PaginatedAssetWalletResponse, -) - - -class TestPaginatedAssetWalletResponse(unittest.TestCase): - """PaginatedAssetWalletResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PaginatedAssetWalletResponse: - """Test PaginatedAssetWalletResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PaginatedAssetWalletResponse` - """ - model = PaginatedAssetWalletResponse() - if include_optional: - return PaginatedAssetWalletResponse( - asset_wallets = [ - fireblocks.models.asset_wallet.AssetWallet( - vault_id = '', - asset_id = '', - available = '', - total = '', - pending = '', - staked = '', - frozen = '', - locked_amount = '', - block_height = '', - block_hash = '', - creation_timestamp = '', ) - ], - paging = fireblocks.models.paginated_asset_wallet_response_paging.PaginatedAssetWalletResponse_paging( - before = '', - after = '', ) - ) - else: - return PaginatedAssetWalletResponse( - ) - """ - - def testPaginatedAssetWalletResponse(self): - """Test PaginatedAssetWalletResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhZ2luYXRlZF9hc3NldF93YWxsZXRfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFBhZ2luYXRlZEFzc2V0V2FsbGV0UmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0UGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJQYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBQYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBQYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFBhZ2luYXRlZEFzc2V0V2FsbGV0UmVzcG9uc2UoCiAgICAgICAgICAgICAgICBhc3NldF93YWxsZXRzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X3dhbGxldC5Bc3NldFdhbGxldCgKICAgICAgICAgICAgICAgICAgICAgICAgdmF1bHRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBzdGFrZWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGZyb3plbiA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbG9ja2VkX2Ftb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tfaGVpZ2h0ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBibG9ja19oYXNoID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGlvbl90aW1lc3RhbXAgPSAnJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBwYWdpbmcgPSBmaXJlYmxvY2tzLm1vZGVscy5wYWdpbmF0ZWRfYXNzZXRfd2FsbGV0X3Jlc3BvbnNlX3BhZ2luZy5QYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlX3BhZ2luZygKICAgICAgICAgICAgICAgICAgICBiZWZvcmUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYWZ0ZXIgPSAnJywgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFBhZ2luYXRlZEFzc2V0V2FsbGV0UmVzcG9uc2UoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFBhZ2luYXRlZEFzc2V0V2FsbGV0UmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_paginated_asset_wallet_response_paging.py b/test/test_paginated_asset_wallet_response_paging.py index 0c187ed5..e23342d7 100644 --- a/test/test_paginated_asset_wallet_response_paging.py +++ b/test/test_paginated_asset_wallet_response_paging.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.paginated_asset_wallet_response_paging import ( - PaginatedAssetWalletResponsePaging, -) - - -class TestPaginatedAssetWalletResponsePaging(unittest.TestCase): - """PaginatedAssetWalletResponsePaging unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PaginatedAssetWalletResponsePaging: - """Test PaginatedAssetWalletResponsePaging - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PaginatedAssetWalletResponsePaging` - """ - model = PaginatedAssetWalletResponsePaging() - if include_optional: - return PaginatedAssetWalletResponsePaging( - before = '', - after = '' - ) - else: - return PaginatedAssetWalletResponsePaging( - ) - """ - - def testPaginatedAssetWalletResponsePaging(self): - """Test PaginatedAssetWalletResponsePaging""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhZ2luYXRlZF9hc3NldF93YWxsZXRfcmVzcG9uc2VfcGFnaW5nIGltcG9ydCAoCiAgICBQYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlUGFnaW5nLAopCgoKY2xhc3MgVGVzdFBhZ2luYXRlZEFzc2V0V2FsbGV0UmVzcG9uc2VQYWdpbmcodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZVBhZ2luZyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZVBhZ2luZzoKICAgICAgICAiIiJUZXN0IFBhZ2luYXRlZEFzc2V0V2FsbGV0UmVzcG9uc2VQYWdpbmcKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZVBhZ2luZ2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFBhZ2luYXRlZEFzc2V0V2FsbGV0UmVzcG9uc2VQYWdpbmcoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlUGFnaW5nKAogICAgICAgICAgICAgICAgYmVmb3JlID0gJycsCiAgICAgICAgICAgICAgICBhZnRlciA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZVBhZ2luZygKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RQYWdpbmF0ZWRBc3NldFdhbGxldFJlc3BvbnNlUGFnaW5nKHNlbGYpOgogICAgICAgICIiIlRlc3QgUGFnaW5hdGVkQXNzZXRXYWxsZXRSZXNwb25zZVBhZ2luZyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_paginated_assets_response.py b/test/test_paginated_assets_response.py index 802b8edb..e0e448ed 100644 --- a/test/test_paginated_assets_response.py +++ b/test/test_paginated_assets_response.py @@ -1,83 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.paginated_assets_response import PaginatedAssetsResponse - - -class TestPaginatedAssetsResponse(unittest.TestCase): - """PaginatedAssetsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PaginatedAssetsResponse: - """Test PaginatedAssetsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PaginatedAssetsResponse` - """ - model = PaginatedAssetsResponse() - if include_optional: - return PaginatedAssetsResponse( - total = 1.337, - data = fireblocks.models.unmanaged_wallet.UnmanagedWallet( - id = '', - name = '', - customer_ref_id = '', - assets = [ - fireblocks.models.wallet_asset.WalletAsset( - id = '', - balance = '', - locked_amount = '', - status = 'WAITING_FOR_APPROVAL', - address = '', - tag = '', - activation_time = '', ) - ], ), - next = '' - ) - else: - return PaginatedAssetsResponse( - data = fireblocks.models.unmanaged_wallet.UnmanagedWallet( - id = '', - name = '', - customer_ref_id = '', - assets = [ - fireblocks.models.wallet_asset.WalletAsset( - id = '', - balance = '', - locked_amount = '', - status = 'WAITING_FOR_APPROVAL', - address = '', - tag = '', - activation_time = '', ) - ], ), - ) - """ - - def testPaginatedAssetsResponse(self): - """Test PaginatedAssetsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhZ2luYXRlZF9hc3NldHNfcmVzcG9uc2UgaW1wb3J0IFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlCgoKY2xhc3MgVGVzdFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBQYWdpbmF0ZWRBc3NldHNSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUGFnaW5hdGVkQXNzZXRzUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQYWdpbmF0ZWRBc3NldHNSZXNwb25zZSgKICAgICAgICAgICAgICAgIHRvdGFsID0gMS4zMzcsCiAgICAgICAgICAgICAgICBkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMudW5tYW5hZ2VkX3dhbGxldC5Vbm1hbmFnZWRXYWxsZXQoCiAgICAgICAgICAgICAgICAgICAgaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9yZWZfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYXNzZXRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy53YWxsZXRfYXNzZXQuV2FsbGV0QXNzZXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhbGFuY2UgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NrZWRfYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ1dBSVRJTkdfRk9SX0FQUFJPVkFMJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZhdGlvbl90aW1lID0gJycsICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwKICAgICAgICAgICAgICAgIG5leHQgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFBhZ2luYXRlZEFzc2V0c1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLnVubWFuYWdlZF93YWxsZXQuVW5tYW5hZ2VkV2FsbGV0KAogICAgICAgICAgICAgICAgICAgIGlkID0gJycsIAogICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfcmVmX2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0cyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMud2FsbGV0X2Fzc2V0LldhbGxldEFzc2V0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWxhbmNlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9ja2VkX2Ftb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdXQUlUSU5HX0ZPUl9BUFBST1ZBTCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2YXRpb25fdGltZSA9ICcnLCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sICksCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UGFnaW5hdGVkQXNzZXRzUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBQYWdpbmF0ZWRBc3NldHNSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_paging.py b/test/test_paging.py index 17ad5d1a..4418b939 100644 --- a/test/test_paging.py +++ b/test/test_paging.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.paging import Paging - - -class TestPaging(unittest.TestCase): - """Paging unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Paging: - """Test Paging - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Paging` - """ - model = Paging() - if include_optional: - return Paging( - next = '' - ) - else: - return Paging( - next = '', - ) - """ - - def testPaging(self): - """Test Paging""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhZ2luZyBpbXBvcnQgUGFnaW5nCgoKY2xhc3MgVGVzdFBhZ2luZyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJQYWdpbmcgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFBhZ2luZzoKICAgICAgICAiIiJUZXN0IFBhZ2luZwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBQYWdpbmdgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBQYWdpbmcoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQYWdpbmcoCiAgICAgICAgICAgICAgICBuZXh0ID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQYWdpbmcoCiAgICAgICAgICAgICAgICBuZXh0ID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UGFnaW5nKHNlbGYpOgogICAgICAgICIiIlRlc3QgUGFnaW5nIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_pair_api_key_request.py b/test/test_pair_api_key_request.py index 173c6921..5c7c6e0d 100644 --- a/test/test_pair_api_key_request.py +++ b/test/test_pair_api_key_request.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.pair_api_key_request import PairApiKeyRequest - - -class TestPairApiKeyRequest(unittest.TestCase): - """PairApiKeyRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PairApiKeyRequest: - """Test PairApiKeyRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PairApiKeyRequest` - """ - model = PairApiKeyRequest() - if include_optional: - return PairApiKeyRequest( - callback_handler = fireblocks.models.callback_handler_request.CallbackHandlerRequest( - url = 'https://example.com/callback-handler', - public_key = '-----BEGIN PUBLIC KEY----- -... truncated ...-----END PUBLIC KEY-----', - cert = '-----BEGIN CERTIFICATE----- -... truncated ... ------END CERTIFICATE-----', ) - ) - else: - return PairApiKeyRequest( - ) - """ - - def testPairApiKeyRequest(self): - """Test PairApiKeyRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhaXJfYXBpX2tleV9yZXF1ZXN0IGltcG9ydCBQYWlyQXBpS2V5UmVxdWVzdAoKCmNsYXNzIFRlc3RQYWlyQXBpS2V5UmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJQYWlyQXBpS2V5UmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUGFpckFwaUtleVJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBQYWlyQXBpS2V5UmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBQYWlyQXBpS2V5UmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFBhaXJBcGlLZXlSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUGFpckFwaUtleVJlcXVlc3QoCiAgICAgICAgICAgICAgICBjYWxsYmFja19oYW5kbGVyID0gZmlyZWJsb2Nrcy5tb2RlbHMuY2FsbGJhY2tfaGFuZGxlcl9yZXF1ZXN0LkNhbGxiYWNrSGFuZGxlclJlcXVlc3QoCiAgICAgICAgICAgICAgICAgICAgdXJsID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vY2FsbGJhY2staGFuZGxlcicsIAogICAgICAgICAgICAgICAgICAgIHB1YmxpY19rZXkgPSAnLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KLi4uIHRydW5jYXRlZCAuLi4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0nLCAKICAgICAgICAgICAgICAgICAgICBjZXJ0ID0gJy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQouLi4gdHJ1bmNhdGVkIC4uLgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tJywgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFBhaXJBcGlLZXlSZXF1ZXN0KAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFBhaXJBcGlLZXlSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgUGFpckFwaUtleVJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_pair_api_key_response.py b/test/test_pair_api_key_response.py index 2c672e80..3ab37390 100644 --- a/test/test_pair_api_key_response.py +++ b/test/test_pair_api_key_response.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.pair_api_key_response import PairApiKeyResponse - - -class TestPairApiKeyResponse(unittest.TestCase): - """PairApiKeyResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PairApiKeyResponse: - """Test PairApiKeyResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PairApiKeyResponse` - """ - model = PairApiKeyResponse() - if include_optional: - return PairApiKeyResponse( - id = '44fcead0-7053-4831-a53a-df7fb90d440f', - callback_handler = fireblocks.models.callback_handler_request.CallbackHandlerRequest( - url = 'https://example.com/callback-handler', - public_key = '-----BEGIN PUBLIC KEY----- -... truncated ...-----END PUBLIC KEY-----', - cert = '-----BEGIN CERTIFICATE----- -... truncated ... ------END CERTIFICATE-----', ) - ) - else: - return PairApiKeyResponse( - id = '44fcead0-7053-4831-a53a-df7fb90d440f', - ) - """ - - def testPairApiKeyResponse(self): - """Test PairApiKeyResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhaXJfYXBpX2tleV9yZXNwb25zZSBpbXBvcnQgUGFpckFwaUtleVJlc3BvbnNlCgoKY2xhc3MgVGVzdFBhaXJBcGlLZXlSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJQYWlyQXBpS2V5UmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFBhaXJBcGlLZXlSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFBhaXJBcGlLZXlSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBQYWlyQXBpS2V5UmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBQYWlyQXBpS2V5UmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQYWlyQXBpS2V5UmVzcG9uc2UoCiAgICAgICAgICAgICAgICBpZCA9ICc0NGZjZWFkMC03MDUzLTQ4MzEtYTUzYS1kZjdmYjkwZDQ0MGYnLAogICAgICAgICAgICAgICAgY2FsbGJhY2tfaGFuZGxlciA9IGZpcmVibG9ja3MubW9kZWxzLmNhbGxiYWNrX2hhbmRsZXJfcmVxdWVzdC5DYWxsYmFja0hhbmRsZXJSZXF1ZXN0KAogICAgICAgICAgICAgICAgICAgIHVybCA9ICdodHRwczovL2V4YW1wbGUuY29tL2NhbGxiYWNrLWhhbmRsZXInLCAKICAgICAgICAgICAgICAgICAgICBwdWJsaWNfa2V5ID0gJy0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tCi4uLiB0cnVuY2F0ZWQgLi4uLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tJywgCiAgICAgICAgICAgICAgICAgICAgY2VydCA9ICctLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLi4uIHRydW5jYXRlZCAuLi4KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLScsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQYWlyQXBpS2V5UmVzcG9uc2UoCiAgICAgICAgICAgICAgICBpZCA9ICc0NGZjZWFkMC03MDUzLTQ4MzEtYTUzYS1kZjdmYjkwZDQ0MGYnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFBhaXJBcGlLZXlSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFBhaXJBcGlLZXlSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_parameter.py b/test/test_parameter.py index 5901a66d..0872b926 100644 --- a/test/test_parameter.py +++ b/test/test_parameter.py @@ -1,73 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.parameter import Parameter - - -class TestParameter(unittest.TestCase): - """Parameter unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Parameter: - """Test Parameter - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Parameter` - """ - model = Parameter() - if include_optional: - return Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], ) - ] - ) - else: - return Parameter( - name = '_name', - type = 'string', - ) - """ - - def testParameter(self): - """Test Parameter""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlciBpbXBvcnQgUGFyYW1ldGVyCgoKY2xhc3MgVGVzdFBhcmFtZXRlcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJQYXJhbWV0ZXIgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFBhcmFtZXRlcjoKICAgICAgICAiIiJUZXN0IFBhcmFtZXRlcgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBQYXJhbWV0ZXJgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBQYXJhbWV0ZXIoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQYXJhbWV0ZXIoCiAgICAgICAgICAgICAgICBuYW1lID0gJ19uYW1lJywKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1RoZSBuYW1lIG9mIHRoZSB0b2tlbicsCiAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsCiAgICAgICAgICAgICAgICB0eXBlID0gJ3N0cmluZycsCiAgICAgICAgICAgICAgICBjb21wb25lbnRzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlci5QYXJhbWV0ZXIoCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXIuUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGUgbmFtZSBvZiB0aGUgdG9rZW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQYXJhbWV0ZXIoCiAgICAgICAgICAgICAgICBuYW1lID0gJ19uYW1lJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RQYXJhbWV0ZXIoc2VsZik6CiAgICAgICAgIiIiVGVzdCBQYXJhbWV0ZXIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_parameter_with_value.py b/test/test_parameter_with_value.py index 4f5681c7..7527607f 100644 --- a/test/test_parameter_with_value.py +++ b/test/test_parameter_with_value.py @@ -1,102 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.parameter_with_value import ParameterWithValue - - -class TestParameterWithValue(unittest.TestCase): - """ParameterWithValue unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ParameterWithValue: - """Test ParameterWithValue - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ParameterWithValue` - """ - model = ParameterWithValue() - if include_optional: - return ParameterWithValue( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], ) - ], - value = 'true', - function_value = fireblocks.models.lean_abi_function.LeanAbiFunction( - name = 'initialize', - inputs = [ - fireblocks.models.parameter_with_value.ParameterWithValue( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], - value = 'true', - function_value = null, ) - ], - outputs = [ - fireblocks.models.parameter_with_value.ParameterWithValue( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - value = 'true', - function_value = null, ) - ], - state_mutability = 'nonpayable', ) - ) - else: - return ParameterWithValue( - name = '_name', - type = 'string', - ) - """ - - def testParameterWithValue(self): - """Test ParameterWithValue""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlcl93aXRoX3ZhbHVlIGltcG9ydCBQYXJhbWV0ZXJXaXRoVmFsdWUKCgpjbGFzcyBUZXN0UGFyYW1ldGVyV2l0aFZhbHVlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlBhcmFtZXRlcldpdGhWYWx1ZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUGFyYW1ldGVyV2l0aFZhbHVlOgogICAgICAgICIiIlRlc3QgUGFyYW1ldGVyV2l0aFZhbHVlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFBhcmFtZXRlcldpdGhWYWx1ZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFBhcmFtZXRlcldpdGhWYWx1ZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFBhcmFtZXRlcldpdGhWYWx1ZSgKICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLAogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywKICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywKICAgICAgICAgICAgICAgIGNvbXBvbmVudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyLlBhcmFtZXRlcigKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdfbmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGUgbmFtZSBvZiB0aGUgdG9rZW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxfdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50cyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlci5QYXJhbWV0ZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdfbmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1RoZSBuYW1lIG9mIHRoZSB0b2tlbicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdzdHJpbmcnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHZhbHVlID0gJ3RydWUnLAogICAgICAgICAgICAgICAgZnVuY3Rpb25fdmFsdWUgPSBmaXJlYmxvY2tzLm1vZGVscy5sZWFuX2FiaV9mdW5jdGlvbi5MZWFuQWJpRnVuY3Rpb24oCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdpbml0aWFsaXplJywgCiAgICAgICAgICAgICAgICAgICAgaW5wdXRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXJfd2l0aF92YWx1ZS5QYXJhbWV0ZXJXaXRoVmFsdWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ19uYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGUgbmFtZSBvZiB0aGUgdG9rZW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50cyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXIuUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ19uYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1RoZSBuYW1lIG9mIHRoZSB0b2tlbicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ3N0cmluZycsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gJ3RydWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uX3ZhbHVlID0gbnVsbCwgKQogICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICBvdXRwdXRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXJfd2l0aF92YWx1ZS5QYXJhbWV0ZXJXaXRoVmFsdWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ19uYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGUgbmFtZSBvZiB0aGUgdG9rZW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAndHJ1ZScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25fdmFsdWUgPSBudWxsLCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgIHN0YXRlX211dGFiaWxpdHkgPSAnbm9ucGF5YWJsZScsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQYXJhbWV0ZXJXaXRoVmFsdWUoCiAgICAgICAgICAgICAgICBuYW1lID0gJ19uYW1lJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RQYXJhbWV0ZXJXaXRoVmFsdWUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBQYXJhbWV0ZXJXaXRoVmFsdWUiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_participant_relationship_type.py b/test/test_participant_relationship_type.py index 420fb133..7e83ea6d 100644 --- a/test/test_participant_relationship_type.py +++ b/test/test_participant_relationship_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.participant_relationship_type import ParticipantRelationshipType - - -class TestParticipantRelationshipType(unittest.TestCase): - """ParticipantRelationshipType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testParticipantRelationshipType(self): - """Test ParticipantRelationshipType""" - # inst = ParticipantRelationshipType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhcnRpY2lwYW50X3JlbGF0aW9uc2hpcF90eXBlIGltcG9ydCBQYXJ0aWNpcGFudFJlbGF0aW9uc2hpcFR5cGUKCgpjbGFzcyBUZXN0UGFydGljaXBhbnRSZWxhdGlvbnNoaXBUeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlBhcnRpY2lwYW50UmVsYXRpb25zaGlwVHlwZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RQYXJ0aWNpcGFudFJlbGF0aW9uc2hpcFR5cGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBQYXJ0aWNpcGFudFJlbGF0aW9uc2hpcFR5cGUiIiIKICAgICAgICAjIGluc3QgPSBQYXJ0aWNpcGFudFJlbGF0aW9uc2hpcFR5cGUoKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_participants_identification.py b/test/test_participants_identification.py index 12b5050f..cd0c0070 100644 --- a/test/test_participants_identification.py +++ b/test/test_participants_identification.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.participants_identification import ParticipantsIdentification - - -class TestParticipantsIdentification(unittest.TestCase): - """ParticipantsIdentification unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ParticipantsIdentification: - """Test ParticipantsIdentification - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ParticipantsIdentification` - """ - model = ParticipantsIdentification() - if include_optional: - return ParticipantsIdentification( - originator = None, - beneficiary = None - ) - else: - return ParticipantsIdentification( - ) - """ - - def testParticipantsIdentification(self): - """Test ParticipantsIdentification""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBhcnRpY2lwYW50c19pZGVudGlmaWNhdGlvbiBpbXBvcnQgUGFydGljaXBhbnRzSWRlbnRpZmljYXRpb24KCgpjbGFzcyBUZXN0UGFydGljaXBhbnRzSWRlbnRpZmljYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUGFydGljaXBhbnRzSWRlbnRpZmljYXRpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFBhcnRpY2lwYW50c0lkZW50aWZpY2F0aW9uOgogICAgICAgICIiIlRlc3QgUGFydGljaXBhbnRzSWRlbnRpZmljYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUGFydGljaXBhbnRzSWRlbnRpZmljYXRpb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBQYXJ0aWNpcGFudHNJZGVudGlmaWNhdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFBhcnRpY2lwYW50c0lkZW50aWZpY2F0aW9uKAogICAgICAgICAgICAgICAgb3JpZ2luYXRvciA9IE5vbmUsCiAgICAgICAgICAgICAgICBiZW5lZmljaWFyeSA9IE5vbmUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQYXJ0aWNpcGFudHNJZGVudGlmaWNhdGlvbigKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RQYXJ0aWNpcGFudHNJZGVudGlmaWNhdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IFBhcnRpY2lwYW50c0lkZW50aWZpY2F0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_payee_account.py b/test/test_payee_account.py index ab14d3f8..1018b5b4 100644 --- a/test/test_payee_account.py +++ b/test/test_payee_account.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.payee_account import PayeeAccount - - -class TestPayeeAccount(unittest.TestCase): - """PayeeAccount unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PayeeAccount: - """Test PayeeAccount - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PayeeAccount` - """ - model = PayeeAccount() - if include_optional: - return PayeeAccount( - id = '', - type = 'VAULT_ACCOUNT' - ) - else: - return PayeeAccount( - id = '', - type = 'VAULT_ACCOUNT', - ) - """ - - def testPayeeAccount(self): - """Test PayeeAccount""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheWVlX2FjY291bnQgaW1wb3J0IFBheWVlQWNjb3VudAoKCmNsYXNzIFRlc3RQYXllZUFjY291bnQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUGF5ZWVBY2NvdW50IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBQYXllZUFjY291bnQ6CiAgICAgICAgIiIiVGVzdCBQYXllZUFjY291bnQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUGF5ZWVBY2NvdW50YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUGF5ZWVBY2NvdW50KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUGF5ZWVBY2NvdW50KAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFRfQUNDT1VOVCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQYXllZUFjY291bnQoCiAgICAgICAgICAgICAgICBpZCA9ICcnLAogICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RQYXllZUFjY291bnQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBQYXllZUFjY291bnQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_payee_account_response.py b/test/test_payee_account_response.py index c1bc1f2f..ab370018 100644 --- a/test/test_payee_account_response.py +++ b/test/test_payee_account_response.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.payee_account_response import PayeeAccountResponse - - -class TestPayeeAccountResponse(unittest.TestCase): - """PayeeAccountResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PayeeAccountResponse: - """Test PayeeAccountResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PayeeAccountResponse` - """ - model = PayeeAccountResponse() - if include_optional: - return PayeeAccountResponse( - id = '', - type = 'VAULT_ACCOUNT' - ) - else: - return PayeeAccountResponse( - ) - """ - - def testPayeeAccountResponse(self): - """Test PayeeAccountResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheWVlX2FjY291bnRfcmVzcG9uc2UgaW1wb3J0IFBheWVlQWNjb3VudFJlc3BvbnNlCgoKY2xhc3MgVGVzdFBheWVlQWNjb3VudFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlBheWVlQWNjb3VudFJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBQYXllZUFjY291bnRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFBheWVlQWNjb3VudFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFBheWVlQWNjb3VudFJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUGF5ZWVBY2NvdW50UmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQYXllZUFjY291bnRSZXNwb25zZSgKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUX0FDQ09VTlQnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUGF5ZWVBY2NvdW50UmVzcG9uc2UoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UGF5ZWVBY2NvdW50UmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBQYXllZUFjY291bnRSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_payee_account_type.py b/test/test_payee_account_type.py index 1964c135..cc4b0f27 100644 --- a/test/test_payee_account_type.py +++ b/test/test_payee_account_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.payee_account_type import PayeeAccountType - - -class TestPayeeAccountType(unittest.TestCase): - """PayeeAccountType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testPayeeAccountType(self): - """Test PayeeAccountType""" - # inst = PayeeAccountType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheWVlX2FjY291bnRfdHlwZSBpbXBvcnQgUGF5ZWVBY2NvdW50VHlwZQoKCmNsYXNzIFRlc3RQYXllZUFjY291bnRUeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlBheWVlQWNjb3VudFR5cGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0UGF5ZWVBY2NvdW50VHlwZShzZWxmKToKICAgICAgICAiIiJUZXN0IFBheWVlQWNjb3VudFR5cGUiIiIKICAgICAgICAjIGluc3QgPSBQYXllZUFjY291bnRUeXBlKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_payid_address.py b/test/test_payid_address.py index 1f0466a8..3a107491 100644 --- a/test/test_payid_address.py +++ b/test/test_payid_address.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.payid_address import PayidAddress - - -class TestPayidAddress(unittest.TestCase): - """PayidAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PayidAddress: - """Test PayidAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PayidAddress` - """ - model = PayidAddress() - if include_optional: - return PayidAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - value = 'john.williams@email.com', - type = 'EMAIL', - bsb = '123-456', - account_number = '12345678' - ) - else: - return PayidAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - value = 'john.williams@email.com', - type = 'EMAIL', - account_number = '12345678', - ) - """ - - def testPayidAddress(self): - """Test PayidAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheWlkX2FkZHJlc3MgaW1wb3J0IFBheWlkQWRkcmVzcwoKCmNsYXNzIFRlc3RQYXlpZEFkZHJlc3ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUGF5aWRBZGRyZXNzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBQYXlpZEFkZHJlc3M6CiAgICAgICAgIiIiVGVzdCBQYXlpZEFkZHJlc3MKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUGF5aWRBZGRyZXNzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUGF5aWRBZGRyZXNzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUGF5aWRBZGRyZXNzKAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXIgPSB7Im5hbWUiOiJKb2huIFNtaXRoIiwiY2l0eSI6Ik5ldyBZb3JrIiwiY291bnRyeSI6IlVTIiwic3ViZGl2aXNpb24iOiJOWSIsImFkZHJlc3MiOiIxMjMgV2FsbCBTdHJlZXQsIEFwdCA0QiIsInBvc3RhbENvZGUiOiIxMDAwNSJ9LAogICAgICAgICAgICAgICAgdmFsdWUgPSAnam9obi53aWxsaWFtc0BlbWFpbC5jb20nLAogICAgICAgICAgICAgICAgdHlwZSA9ICdFTUFJTCcsCiAgICAgICAgICAgICAgICBic2IgPSAnMTIzLTQ1NicsCiAgICAgICAgICAgICAgICBhY2NvdW50X251bWJlciA9ICcxMjM0NTY3OCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQYXlpZEFkZHJlc3MoCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlciA9IHsibmFtZSI6IkpvaG4gU21pdGgiLCJjaXR5IjoiTmV3IFlvcmsiLCJjb3VudHJ5IjoiVVMiLCJzdWJkaXZpc2lvbiI6Ik5ZIiwiYWRkcmVzcyI6IjEyMyBXYWxsIFN0cmVldCwgQXB0IDRCIiwicG9zdGFsQ29kZSI6IjEwMDA1In0sCiAgICAgICAgICAgICAgICB2YWx1ZSA9ICdqb2huLndpbGxpYW1zQGVtYWlsLmNvbScsCiAgICAgICAgICAgICAgICB0eXBlID0gJ0VNQUlMJywKICAgICAgICAgICAgICAgIGFjY291bnRfbnVtYmVyID0gJzEyMzQ1Njc4JywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RQYXlpZEFkZHJlc3Moc2VsZik6CiAgICAgICAgIiIiVGVzdCBQYXlpZEFkZHJlc3MiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_payid_destination.py b/test/test_payid_destination.py index 267c3fc7..36be371e 100644 --- a/test/test_payid_destination.py +++ b/test/test_payid_destination.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.payid_destination import PayidDestination - - -class TestPayidDestination(unittest.TestCase): - """PayidDestination unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PayidDestination: - """Test PayidDestination - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PayidDestination` - """ - model = PayidDestination() - if include_optional: - return PayidDestination( - type = 'PAYID', - address = {"accountHolder":{"name":"John Williams","city":"Sydney","country":"AU","subdivision":"NSW","address":"456 George Street","postalCode":"2000"},"value":"john.williams@email.com","type":"EMAIL","bsb":"123-456","accountNumber":"12345678"} - ) - else: - return PayidDestination( - type = 'PAYID', - address = {"accountHolder":{"name":"John Williams","city":"Sydney","country":"AU","subdivision":"NSW","address":"456 George Street","postalCode":"2000"},"value":"john.williams@email.com","type":"EMAIL","bsb":"123-456","accountNumber":"12345678"}, - ) - """ - - def testPayidDestination(self): - """Test PayidDestination""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheWlkX2Rlc3RpbmF0aW9uIGltcG9ydCBQYXlpZERlc3RpbmF0aW9uCgoKY2xhc3MgVGVzdFBheWlkRGVzdGluYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUGF5aWREZXN0aW5hdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUGF5aWREZXN0aW5hdGlvbjoKICAgICAgICAiIiJUZXN0IFBheWlkRGVzdGluYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUGF5aWREZXN0aW5hdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFBheWlkRGVzdGluYXRpb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQYXlpZERlc3RpbmF0aW9uKAogICAgICAgICAgICAgICAgdHlwZSA9ICdQQVlJRCcsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0geyJhY2NvdW50SG9sZGVyIjp7Im5hbWUiOiJKb2huIFdpbGxpYW1zIiwiY2l0eSI6IlN5ZG5leSIsImNvdW50cnkiOiJBVSIsInN1YmRpdmlzaW9uIjoiTlNXIiwiYWRkcmVzcyI6IjQ1NiBHZW9yZ2UgU3RyZWV0IiwicG9zdGFsQ29kZSI6IjIwMDAifSwidmFsdWUiOiJqb2huLndpbGxpYW1zQGVtYWlsLmNvbSIsInR5cGUiOiJFTUFJTCIsImJzYiI6IjEyMy00NTYiLCJhY2NvdW50TnVtYmVyIjoiMTIzNDU2NzgifQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFBheWlkRGVzdGluYXRpb24oCiAgICAgICAgICAgICAgICB0eXBlID0gJ1BBWUlEJywKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSB7ImFjY291bnRIb2xkZXIiOnsibmFtZSI6IkpvaG4gV2lsbGlhbXMiLCJjaXR5IjoiU3lkbmV5IiwiY291bnRyeSI6IkFVIiwic3ViZGl2aXNpb24iOiJOU1ciLCJhZGRyZXNzIjoiNDU2IEdlb3JnZSBTdHJlZXQiLCJwb3N0YWxDb2RlIjoiMjAwMCJ9LCJ2YWx1ZSI6ImpvaG4ud2lsbGlhbXNAZW1haWwuY29tIiwidHlwZSI6IkVNQUlMIiwiYnNiIjoiMTIzLTQ1NiIsImFjY291bnROdW1iZXIiOiIxMjM0NTY3OCJ9LAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFBheWlkRGVzdGluYXRpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBQYXlpZERlc3RpbmF0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_payid_payment_info.py b/test/test_payid_payment_info.py index 5c419893..2638334b 100644 --- a/test/test_payid_payment_info.py +++ b/test/test_payid_payment_info.py @@ -1,70 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.payid_payment_info import PayidPaymentInfo - - -class TestPayidPaymentInfo(unittest.TestCase): - """PayidPaymentInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PayidPaymentInfo: - """Test PayidPaymentInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PayidPaymentInfo` - """ - model = PayidPaymentInfo() - if include_optional: - return PayidPaymentInfo( - rail = 'PAYID', - addressing_system = 'PAYID', - account_holder_given_name = 'John', - account_holder_surname = 'Williams', - country = 'AU', - value = 'john.williams@email.com', - type = 'EMAIL', - bsb = '123-456', - account_number = '12345678' - ) - else: - return PayidPaymentInfo( - rail = 'PAYID', - addressing_system = 'PAYID', - account_holder_given_name = 'John', - account_holder_surname = 'Williams', - country = 'AU', - value = 'john.williams@email.com', - type = 'EMAIL', - account_number = '12345678', - ) - """ - - def testPayidPaymentInfo(self): - """Test PayidPaymentInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheWlkX3BheW1lbnRfaW5mbyBpbXBvcnQgUGF5aWRQYXltZW50SW5mbwoKCmNsYXNzIFRlc3RQYXlpZFBheW1lbnRJbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlBheWlkUGF5bWVudEluZm8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFBheWlkUGF5bWVudEluZm86CiAgICAgICAgIiIiVGVzdCBQYXlpZFBheW1lbnRJbmZvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFBheWlkUGF5bWVudEluZm9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBQYXlpZFBheW1lbnRJbmZvKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUGF5aWRQYXltZW50SW5mbygKICAgICAgICAgICAgICAgIHJhaWwgPSAnUEFZSUQnLAogICAgICAgICAgICAgICAgYWRkcmVzc2luZ19zeXN0ZW0gPSAnUEFZSUQnLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfZ2l2ZW5fbmFtZSA9ICdKb2huJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX3N1cm5hbWUgPSAnV2lsbGlhbXMnLAogICAgICAgICAgICAgICAgY291bnRyeSA9ICdBVScsCiAgICAgICAgICAgICAgICB2YWx1ZSA9ICdqb2huLndpbGxpYW1zQGVtYWlsLmNvbScsCiAgICAgICAgICAgICAgICB0eXBlID0gJ0VNQUlMJywKICAgICAgICAgICAgICAgIGJzYiA9ICcxMjMtNDU2JywKICAgICAgICAgICAgICAgIGFjY291bnRfbnVtYmVyID0gJzEyMzQ1Njc4JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFBheWlkUGF5bWVudEluZm8oCiAgICAgICAgICAgICAgICByYWlsID0gJ1BBWUlEJywKICAgICAgICAgICAgICAgIGFkZHJlc3Npbmdfc3lzdGVtID0gJ1BBWUlEJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2dpdmVuX25hbWUgPSAnSm9obicsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9zdXJuYW1lID0gJ1dpbGxpYW1zJywKICAgICAgICAgICAgICAgIGNvdW50cnkgPSAnQVUnLAogICAgICAgICAgICAgICAgdmFsdWUgPSAnam9obi53aWxsaWFtc0BlbWFpbC5jb20nLAogICAgICAgICAgICAgICAgdHlwZSA9ICdFTUFJTCcsCiAgICAgICAgICAgICAgICBhY2NvdW50X251bWJlciA9ICcxMjM0NTY3OCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UGF5aWRQYXltZW50SW5mbyhzZWxmKToKICAgICAgICAiIiJUZXN0IFBheWlkUGF5bWVudEluZm8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_payment_account.py b/test/test_payment_account.py index c3a69508..677641e3 100644 --- a/test/test_payment_account.py +++ b/test/test_payment_account.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.payment_account import PaymentAccount - - -class TestPaymentAccount(unittest.TestCase): - """PaymentAccount unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PaymentAccount: - """Test PaymentAccount - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PaymentAccount` - """ - model = PaymentAccount() - if include_optional: - return PaymentAccount( - id = '', - type = 'VAULT_ACCOUNT' - ) - else: - return PaymentAccount( - id = '', - type = 'VAULT_ACCOUNT', - ) - """ - - def testPaymentAccount(self): - """Test PaymentAccount""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW1lbnRfYWNjb3VudCBpbXBvcnQgUGF5bWVudEFjY291bnQKCgpjbGFzcyBUZXN0UGF5bWVudEFjY291bnQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUGF5bWVudEFjY291bnQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFBheW1lbnRBY2NvdW50OgogICAgICAgICIiIlRlc3QgUGF5bWVudEFjY291bnQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUGF5bWVudEFjY291bnRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBQYXltZW50QWNjb3VudCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFBheW1lbnRBY2NvdW50KAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFRfQUNDT1VOVCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQYXltZW50QWNjb3VudCgKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFBheW1lbnRBY2NvdW50KHNlbGYpOgogICAgICAgICIiIlRlc3QgUGF5bWVudEFjY291bnQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_payment_account_response.py b/test/test_payment_account_response.py index 6f46552c..b495bb32 100644 --- a/test/test_payment_account_response.py +++ b/test/test_payment_account_response.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.payment_account_response import PaymentAccountResponse - - -class TestPaymentAccountResponse(unittest.TestCase): - """PaymentAccountResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PaymentAccountResponse: - """Test PaymentAccountResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PaymentAccountResponse` - """ - model = PaymentAccountResponse() - if include_optional: - return PaymentAccountResponse( - id = '', - type = 'VAULT_ACCOUNT' - ) - else: - return PaymentAccountResponse( - ) - """ - - def testPaymentAccountResponse(self): - """Test PaymentAccountResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW1lbnRfYWNjb3VudF9yZXNwb25zZSBpbXBvcnQgUGF5bWVudEFjY291bnRSZXNwb25zZQoKCmNsYXNzIFRlc3RQYXltZW50QWNjb3VudFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlBheW1lbnRBY2NvdW50UmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFBheW1lbnRBY2NvdW50UmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBQYXltZW50QWNjb3VudFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFBheW1lbnRBY2NvdW50UmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBQYXltZW50QWNjb3VudFJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUGF5bWVudEFjY291bnRSZXNwb25zZSgKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUX0FDQ09VTlQnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUGF5bWVudEFjY291bnRSZXNwb25zZSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RQYXltZW50QWNjb3VudFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgUGF5bWVudEFjY291bnRSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_payment_account_type.py b/test/test_payment_account_type.py index 07b18fd1..546d40fe 100644 --- a/test/test_payment_account_type.py +++ b/test/test_payment_account_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.payment_account_type import PaymentAccountType - - -class TestPaymentAccountType(unittest.TestCase): - """PaymentAccountType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testPaymentAccountType(self): - """Test PaymentAccountType""" - # inst = PaymentAccountType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW1lbnRfYWNjb3VudF90eXBlIGltcG9ydCBQYXltZW50QWNjb3VudFR5cGUKCgpjbGFzcyBUZXN0UGF5bWVudEFjY291bnRUeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlBheW1lbnRBY2NvdW50VHlwZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RQYXltZW50QWNjb3VudFR5cGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBQYXltZW50QWNjb3VudFR5cGUiIiIKICAgICAgICAjIGluc3QgPSBQYXltZW50QWNjb3VudFR5cGUoKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_payment_instructions.py b/test/test_payment_instructions.py index f6236a88..d2b28add 100644 --- a/test/test_payment_instructions.py +++ b/test/test_payment_instructions.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.payment_instructions import PaymentInstructions - - -class TestPaymentInstructions(unittest.TestCase): - """PaymentInstructions unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PaymentInstructions: - """Test PaymentInstructions - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PaymentInstructions` - """ - model = PaymentInstructions() - if include_optional: - return PaymentInstructions( - type = 'BLOCKCHAIN', - address = {"externalSubAccountId":"sub_acc_1234567890","accountId":"acc_1234567890"}, - reference_id = '' - ) - else: - return PaymentInstructions( - type = 'BLOCKCHAIN', - address = {"externalSubAccountId":"sub_acc_1234567890","accountId":"acc_1234567890"}, - ) - """ - - def testPaymentInstructions(self): - """Test PaymentInstructions""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW1lbnRfaW5zdHJ1Y3Rpb25zIGltcG9ydCBQYXltZW50SW5zdHJ1Y3Rpb25zCgoKY2xhc3MgVGVzdFBheW1lbnRJbnN0cnVjdGlvbnModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUGF5bWVudEluc3RydWN0aW9ucyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUGF5bWVudEluc3RydWN0aW9uczoKICAgICAgICAiIiJUZXN0IFBheW1lbnRJbnN0cnVjdGlvbnMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUGF5bWVudEluc3RydWN0aW9uc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFBheW1lbnRJbnN0cnVjdGlvbnMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQYXltZW50SW5zdHJ1Y3Rpb25zKAogICAgICAgICAgICAgICAgdHlwZSA9ICdCTE9DS0NIQUlOJywKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSB7ImV4dGVybmFsU3ViQWNjb3VudElkIjoic3ViX2FjY18xMjM0NTY3ODkwIiwiYWNjb3VudElkIjoiYWNjXzEyMzQ1Njc4OTAifSwKICAgICAgICAgICAgICAgIHJlZmVyZW5jZV9pZCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUGF5bWVudEluc3RydWN0aW9ucygKICAgICAgICAgICAgICAgIHR5cGUgPSAnQkxPQ0tDSEFJTicsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0geyJleHRlcm5hbFN1YkFjY291bnRJZCI6InN1Yl9hY2NfMTIzNDU2Nzg5MCIsImFjY291bnRJZCI6ImFjY18xMjM0NTY3ODkwIn0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UGF5bWVudEluc3RydWN0aW9ucyhzZWxmKToKICAgICAgICAiIiJUZXN0IFBheW1lbnRJbnN0cnVjdGlvbnMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_payment_instructions_one_of.py b/test/test_payment_instructions_one_of.py index 7265b5e2..2856a58f 100644 --- a/test/test_payment_instructions_one_of.py +++ b/test/test_payment_instructions_one_of.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.payment_instructions_one_of import PaymentInstructionsOneOf - - -class TestPaymentInstructionsOneOf(unittest.TestCase): - """PaymentInstructionsOneOf unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PaymentInstructionsOneOf: - """Test PaymentInstructionsOneOf - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PaymentInstructionsOneOf` - """ - model = PaymentInstructionsOneOf() - if include_optional: - return PaymentInstructionsOneOf( - type = 'INTERNAL_TRANSFER', - address = {"externalSubAccountId":"sub_acc_1234567890","accountId":"acc_1234567890"}, - reference_id = '' - ) - else: - return PaymentInstructionsOneOf( - type = 'INTERNAL_TRANSFER', - address = {"externalSubAccountId":"sub_acc_1234567890","accountId":"acc_1234567890"}, - ) - """ - - def testPaymentInstructionsOneOf(self): - """Test PaymentInstructionsOneOf""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW1lbnRfaW5zdHJ1Y3Rpb25zX29uZV9vZiBpbXBvcnQgUGF5bWVudEluc3RydWN0aW9uc09uZU9mCgoKY2xhc3MgVGVzdFBheW1lbnRJbnN0cnVjdGlvbnNPbmVPZih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJQYXltZW50SW5zdHJ1Y3Rpb25zT25lT2YgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFBheW1lbnRJbnN0cnVjdGlvbnNPbmVPZjoKICAgICAgICAiIiJUZXN0IFBheW1lbnRJbnN0cnVjdGlvbnNPbmVPZgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBQYXltZW50SW5zdHJ1Y3Rpb25zT25lT2ZgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBQYXltZW50SW5zdHJ1Y3Rpb25zT25lT2YoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQYXltZW50SW5zdHJ1Y3Rpb25zT25lT2YoCiAgICAgICAgICAgICAgICB0eXBlID0gJ0lOVEVSTkFMX1RSQU5TRkVSJywKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSB7ImV4dGVybmFsU3ViQWNjb3VudElkIjoic3ViX2FjY18xMjM0NTY3ODkwIiwiYWNjb3VudElkIjoiYWNjXzEyMzQ1Njc4OTAifSwKICAgICAgICAgICAgICAgIHJlZmVyZW5jZV9pZCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUGF5bWVudEluc3RydWN0aW9uc09uZU9mKAogICAgICAgICAgICAgICAgdHlwZSA9ICdJTlRFUk5BTF9UUkFOU0ZFUicsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0geyJleHRlcm5hbFN1YkFjY291bnRJZCI6InN1Yl9hY2NfMTIzNDU2Nzg5MCIsImFjY291bnRJZCI6ImFjY18xMjM0NTY3ODkwIn0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UGF5bWVudEluc3RydWN0aW9uc09uZU9mKHNlbGYpOgogICAgICAgICIiIlRlc3QgUGF5bWVudEluc3RydWN0aW9uc09uZU9mIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_payment_redirect.py b/test/test_payment_redirect.py index 62b4dee0..7616e46d 100644 --- a/test/test_payment_redirect.py +++ b/test/test_payment_redirect.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.payment_redirect import PaymentRedirect - - -class TestPaymentRedirect(unittest.TestCase): - """PaymentRedirect unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PaymentRedirect: - """Test PaymentRedirect - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PaymentRedirect` - """ - model = PaymentRedirect() - if include_optional: - return PaymentRedirect( - url = 'https://yellowcard.example.com/authorize?token=abc123&transactionId=16b8b2c3-bd61-4745-9c48-3d30c2bc6907', - expires_at = '2025-01-15T12:00:00Z' - ) - else: - return PaymentRedirect( - ) - """ - - def testPaymentRedirect(self): - """Test PaymentRedirect""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW1lbnRfcmVkaXJlY3QgaW1wb3J0IFBheW1lbnRSZWRpcmVjdAoKCmNsYXNzIFRlc3RQYXltZW50UmVkaXJlY3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUGF5bWVudFJlZGlyZWN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBQYXltZW50UmVkaXJlY3Q6CiAgICAgICAgIiIiVGVzdCBQYXltZW50UmVkaXJlY3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUGF5bWVudFJlZGlyZWN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUGF5bWVudFJlZGlyZWN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUGF5bWVudFJlZGlyZWN0KAogICAgICAgICAgICAgICAgdXJsID0gJ2h0dHBzOi8veWVsbG93Y2FyZC5leGFtcGxlLmNvbS9hdXRob3JpemU/dG9rZW49YWJjMTIzJnRyYW5zYWN0aW9uSWQ9MTZiOGIyYzMtYmQ2MS00NzQ1LTljNDgtM2QzMGMyYmM2OTA3JywKICAgICAgICAgICAgICAgIGV4cGlyZXNfYXQgPSAnMjAyNS0wMS0xNVQxMjowMDowMFonCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUGF5bWVudFJlZGlyZWN0KAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFBheW1lbnRSZWRpcmVjdChzZWxmKToKICAgICAgICAiIiJUZXN0IFBheW1lbnRSZWRpcmVjdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_payments_payout_api.py b/test/test_payments_payout_api.py index c19a9e26..1c017557 100644 --- a/test/test_payments_payout_api.py +++ b/test/test_payments_payout_api.py @@ -1,53 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.payments_payout_api import PaymentsPayoutApi - - -class TestPaymentsPayoutApi(unittest.TestCase): - """PaymentsPayoutApi unit test stubs""" - - def setUp(self) -> None: - self.api = PaymentsPayoutApi() - - def tearDown(self) -> None: - pass - - def test_create_payout(self) -> None: - """Test case for create_payout - - Create a payout instruction set - """ - pass - - def test_execute_payout_action(self) -> None: - """Test case for execute_payout_action - - Execute a payout instruction set - """ - pass - - def test_get_payout(self) -> None: - """Test case for get_payout - - Get the status of a payout instruction set - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLnBheW1lbnRzX3BheW91dF9hcGkgaW1wb3J0IFBheW1lbnRzUGF5b3V0QXBpCgoKY2xhc3MgVGVzdFBheW1lbnRzUGF5b3V0QXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlBheW1lbnRzUGF5b3V0QXBpIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKSAtPiBOb25lOgogICAgICAgIHNlbGYuYXBpID0gUGF5bWVudHNQYXlvdXRBcGkoKQoKICAgIGRlZiB0ZWFyRG93bihzZWxmKSAtPiBOb25lOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9jcmVhdGVfcGF5b3V0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBjcmVhdGVfcGF5b3V0CgogICAgICAgIENyZWF0ZSBhIHBheW91dCBpbnN0cnVjdGlvbiBzZXQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZXhlY3V0ZV9wYXlvdXRfYWN0aW9uKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBleGVjdXRlX3BheW91dF9hY3Rpb24KCiAgICAgICAgRXhlY3V0ZSBhIHBheW91dCBpbnN0cnVjdGlvbiBzZXQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3BheW91dChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X3BheW91dAoKICAgICAgICBHZXQgdGhlIHN0YXR1cyBvZiBhIHBheW91dCBpbnN0cnVjdGlvbiBzZXQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_payout_init_method.py b/test/test_payout_init_method.py index 9d116bf5..372099bb 100644 --- a/test/test_payout_init_method.py +++ b/test/test_payout_init_method.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.payout_init_method import PayoutInitMethod - - -class TestPayoutInitMethod(unittest.TestCase): - """PayoutInitMethod unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testPayoutInitMethod(self): - """Test PayoutInitMethod""" - # inst = PayoutInitMethod() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW91dF9pbml0X21ldGhvZCBpbXBvcnQgUGF5b3V0SW5pdE1ldGhvZAoKCmNsYXNzIFRlc3RQYXlvdXRJbml0TWV0aG9kKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlBheW91dEluaXRNZXRob2QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0UGF5b3V0SW5pdE1ldGhvZChzZWxmKToKICAgICAgICAiIiJUZXN0IFBheW91dEluaXRNZXRob2QiIiIKICAgICAgICAjIGluc3QgPSBQYXlvdXRJbml0TWV0aG9kKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_payout_instruction.py b/test/test_payout_instruction.py index 52d978c1..d01395f1 100644 --- a/test/test_payout_instruction.py +++ b/test/test_payout_instruction.py @@ -1,66 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.payout_instruction import PayoutInstruction - - -class TestPayoutInstruction(unittest.TestCase): - """PayoutInstruction unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PayoutInstruction: - """Test PayoutInstruction - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PayoutInstruction` - """ - model = PayoutInstruction() - if include_optional: - return PayoutInstruction( - id = '', - payee_account = fireblocks.models.payee_account.PayeeAccount( - id = '', - type = 'VAULT_ACCOUNT', ), - amount = fireblocks.models.instruction_amount.InstructionAmount( - amount = '', - asset_id = '', ) - ) - else: - return PayoutInstruction( - payee_account = fireblocks.models.payee_account.PayeeAccount( - id = '', - type = 'VAULT_ACCOUNT', ), - amount = fireblocks.models.instruction_amount.InstructionAmount( - amount = '', - asset_id = '', ), - ) - """ - - def testPayoutInstruction(self): - """Test PayoutInstruction""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW91dF9pbnN0cnVjdGlvbiBpbXBvcnQgUGF5b3V0SW5zdHJ1Y3Rpb24KCgpjbGFzcyBUZXN0UGF5b3V0SW5zdHJ1Y3Rpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUGF5b3V0SW5zdHJ1Y3Rpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFBheW91dEluc3RydWN0aW9uOgogICAgICAgICIiIlRlc3QgUGF5b3V0SW5zdHJ1Y3Rpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUGF5b3V0SW5zdHJ1Y3Rpb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBQYXlvdXRJbnN0cnVjdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFBheW91dEluc3RydWN0aW9uKAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIHBheWVlX2FjY291bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5wYXllZV9hY2NvdW50LlBheWVlQWNjb3VudCgKICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCApLAogICAgICAgICAgICAgICAgYW1vdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMuaW5zdHJ1Y3Rpb25fYW1vdW50Lkluc3RydWN0aW9uQW1vdW50KAogICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUGF5b3V0SW5zdHJ1Y3Rpb24oCiAgICAgICAgICAgICAgICBwYXllZV9hY2NvdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMucGF5ZWVfYWNjb3VudC5QYXllZUFjY291bnQoCiAgICAgICAgICAgICAgICAgICAgaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgKSwKICAgICAgICAgICAgICAgIGFtb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmluc3RydWN0aW9uX2Ftb3VudC5JbnN0cnVjdGlvbkFtb3VudCgKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RQYXlvdXRJbnN0cnVjdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IFBheW91dEluc3RydWN0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_payout_instruction_response.py b/test/test_payout_instruction_response.py index 02d90f04..6844f3f5 100644 --- a/test/test_payout_instruction_response.py +++ b/test/test_payout_instruction_response.py @@ -1,82 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.payout_instruction_response import PayoutInstructionResponse - - -class TestPayoutInstructionResponse(unittest.TestCase): - """PayoutInstructionResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PayoutInstructionResponse: - """Test PayoutInstructionResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PayoutInstructionResponse` - """ - model = PayoutInstructionResponse() - if include_optional: - return PayoutInstructionResponse( - id = '', - payee_account = fireblocks.models.payee_account_response.PayeeAccountResponse( - id = '', - type = 'VAULT_ACCOUNT', ), - amount = fireblocks.models.instruction_amount.InstructionAmount( - amount = '', - asset_id = '', ), - state = 'NOT_STARTED', - transactions = [ - fireblocks.models.transaction.Transaction( - id = '', - state = 'SUBMITTED', - timestamp = 1.337, - instruction_id = '', ) - ] - ) - else: - return PayoutInstructionResponse( - payee_account = fireblocks.models.payee_account_response.PayeeAccountResponse( - id = '', - type = 'VAULT_ACCOUNT', ), - amount = fireblocks.models.instruction_amount.InstructionAmount( - amount = '', - asset_id = '', ), - state = 'NOT_STARTED', - transactions = [ - fireblocks.models.transaction.Transaction( - id = '', - state = 'SUBMITTED', - timestamp = 1.337, - instruction_id = '', ) - ], - ) - """ - - def testPayoutInstructionResponse(self): - """Test PayoutInstructionResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW91dF9pbnN0cnVjdGlvbl9yZXNwb25zZSBpbXBvcnQgUGF5b3V0SW5zdHJ1Y3Rpb25SZXNwb25zZQoKCmNsYXNzIFRlc3RQYXlvdXRJbnN0cnVjdGlvblJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlBheW91dEluc3RydWN0aW9uUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFBheW91dEluc3RydWN0aW9uUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBQYXlvdXRJbnN0cnVjdGlvblJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFBheW91dEluc3RydWN0aW9uUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBQYXlvdXRJbnN0cnVjdGlvblJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUGF5b3V0SW5zdHJ1Y3Rpb25SZXNwb25zZSgKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICBwYXllZV9hY2NvdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMucGF5ZWVfYWNjb3VudF9yZXNwb25zZS5QYXllZUFjY291bnRSZXNwb25zZSgKICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCApLAogICAgICAgICAgICAgICAgYW1vdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMuaW5zdHJ1Y3Rpb25fYW1vdW50Lkluc3RydWN0aW9uQW1vdW50KAogICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLCApLAogICAgICAgICAgICAgICAgc3RhdGUgPSAnTk9UX1NUQVJURUQnLAogICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25zID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uLlRyYW5zYWN0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAnU1VCTUlUVEVEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb25faWQgPSAnJywgKQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQYXlvdXRJbnN0cnVjdGlvblJlc3BvbnNlKAogICAgICAgICAgICAgICAgcGF5ZWVfYWNjb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLnBheWVlX2FjY291bnRfcmVzcG9uc2UuUGF5ZWVBY2NvdW50UmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgKSwKICAgICAgICAgICAgICAgIGFtb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmluc3RydWN0aW9uX2Ftb3VudC5JbnN0cnVjdGlvbkFtb3VudCgKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgKSwKICAgICAgICAgICAgICAgIHN0YXRlID0gJ05PVF9TVEFSVEVEJywKICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9ucyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbi5UcmFuc2FjdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gJ1NVQk1JVFRFRCcsIAogICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgIGluc3RydWN0aW9uX2lkID0gJycsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFBheW91dEluc3RydWN0aW9uUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBQYXlvdXRJbnN0cnVjdGlvblJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_payout_instruction_state.py b/test/test_payout_instruction_state.py index 2415cc36..709e7783 100644 --- a/test/test_payout_instruction_state.py +++ b/test/test_payout_instruction_state.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.payout_instruction_state import PayoutInstructionState - - -class TestPayoutInstructionState(unittest.TestCase): - """PayoutInstructionState unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testPayoutInstructionState(self): - """Test PayoutInstructionState""" - # inst = PayoutInstructionState() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW91dF9pbnN0cnVjdGlvbl9zdGF0ZSBpbXBvcnQgUGF5b3V0SW5zdHJ1Y3Rpb25TdGF0ZQoKCmNsYXNzIFRlc3RQYXlvdXRJbnN0cnVjdGlvblN0YXRlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlBheW91dEluc3RydWN0aW9uU3RhdGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0UGF5b3V0SW5zdHJ1Y3Rpb25TdGF0ZShzZWxmKToKICAgICAgICAiIiJUZXN0IFBheW91dEluc3RydWN0aW9uU3RhdGUiIiIKICAgICAgICAjIGluc3QgPSBQYXlvdXRJbnN0cnVjdGlvblN0YXRlKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_payout_response.py b/test/test_payout_response.py index 39f8b911..b0736ceb 100644 --- a/test/test_payout_response.py +++ b/test/test_payout_response.py @@ -1,106 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.payout_response import PayoutResponse - - -class TestPayoutResponse(unittest.TestCase): - """PayoutResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PayoutResponse: - """Test PayoutResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PayoutResponse` - """ - model = PayoutResponse() - if include_optional: - return PayoutResponse( - payout_id = '', - payment_account = fireblocks.models.payment_account_response.PaymentAccountResponse( - id = '', - type = 'VAULT_ACCOUNT', ), - created_at = 1.337, - state = 'CREATED', - status = 'REGISTERED', - reason_of_failure = '', - init_method = 'FILE', - instruction_set = [ - fireblocks.models.payout_instruction_response.PayoutInstructionResponse( - id = '', - payee_account = fireblocks.models.payee_account_response.PayeeAccountResponse( - id = '', - type = 'VAULT_ACCOUNT', ), - amount = fireblocks.models.instruction_amount.InstructionAmount( - amount = '', - asset_id = '', ), - state = 'NOT_STARTED', - transactions = [ - fireblocks.models.transaction.Transaction( - id = '', - state = 'SUBMITTED', - timestamp = 1.337, - instruction_id = '', ) - ], ) - ], - report_url = '' - ) - else: - return PayoutResponse( - payout_id = '', - payment_account = fireblocks.models.payment_account_response.PaymentAccountResponse( - id = '', - type = 'VAULT_ACCOUNT', ), - created_at = 1.337, - state = 'CREATED', - status = 'REGISTERED', - instruction_set = [ - fireblocks.models.payout_instruction_response.PayoutInstructionResponse( - id = '', - payee_account = fireblocks.models.payee_account_response.PayeeAccountResponse( - id = '', - type = 'VAULT_ACCOUNT', ), - amount = fireblocks.models.instruction_amount.InstructionAmount( - amount = '', - asset_id = '', ), - state = 'NOT_STARTED', - transactions = [ - fireblocks.models.transaction.Transaction( - id = '', - state = 'SUBMITTED', - timestamp = 1.337, - instruction_id = '', ) - ], ) - ], - ) - """ - - def testPayoutResponse(self): - """Test PayoutResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW91dF9yZXNwb25zZSBpbXBvcnQgUGF5b3V0UmVzcG9uc2UKCgpjbGFzcyBUZXN0UGF5b3V0UmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUGF5b3V0UmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFBheW91dFJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgUGF5b3V0UmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUGF5b3V0UmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBQYXlvdXRSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFBheW91dFJlc3BvbnNlKAogICAgICAgICAgICAgICAgcGF5b3V0X2lkID0gJycsCiAgICAgICAgICAgICAgICBwYXltZW50X2FjY291bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5wYXltZW50X2FjY291bnRfcmVzcG9uc2UuUGF5bWVudEFjY291bnRSZXNwb25zZSgKICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCApLAogICAgICAgICAgICAgICAgY3JlYXRlZF9hdCA9IDEuMzM3LAogICAgICAgICAgICAgICAgc3RhdGUgPSAnQ1JFQVRFRCcsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnUkVHSVNURVJFRCcsCiAgICAgICAgICAgICAgICByZWFzb25fb2ZfZmFpbHVyZSA9ICcnLAogICAgICAgICAgICAgICAgaW5pdF9tZXRob2QgPSAnRklMRScsCiAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbl9zZXQgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucGF5b3V0X2luc3RydWN0aW9uX3Jlc3BvbnNlLlBheW91dEluc3RydWN0aW9uUmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBwYXllZV9hY2NvdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMucGF5ZWVfYWNjb3VudF9yZXNwb25zZS5QYXllZUFjY291bnRSZXNwb25zZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmluc3RydWN0aW9uX2Ftb3VudC5JbnN0cnVjdGlvbkFtb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksIAogICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9ICdOT1RfU1RBUlRFRCcsIAogICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbi5UcmFuc2FjdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9ICdTVUJNSVRURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb25faWQgPSAnJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICByZXBvcnRfdXJsID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQYXlvdXRSZXNwb25zZSgKICAgICAgICAgICAgICAgIHBheW91dF9pZCA9ICcnLAogICAgICAgICAgICAgICAgcGF5bWVudF9hY2NvdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMucGF5bWVudF9hY2NvdW50X3Jlc3BvbnNlLlBheW1lbnRBY2NvdW50UmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgKSwKICAgICAgICAgICAgICAgIGNyZWF0ZWRfYXQgPSAxLjMzNywKICAgICAgICAgICAgICAgIHN0YXRlID0gJ0NSRUFURUQnLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ1JFR0lTVEVSRUQnLAogICAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb25fc2V0ID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBheW91dF9pbnN0cnVjdGlvbl9yZXNwb25zZS5QYXlvdXRJbnN0cnVjdGlvblJlc3BvbnNlKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcGF5ZWVfYWNjb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLnBheWVlX2FjY291bnRfcmVzcG9uc2UuUGF5ZWVBY2NvdW50UmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFRfQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5pbnN0cnVjdGlvbl9hbW91bnQuSW5zdHJ1Y3Rpb25BbW91bnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAnTk9UX1NUQVJURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25zID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb24uVHJhbnNhY3Rpb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAnU1VCTUlUVEVEJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RydWN0aW9uX2lkID0gJycsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFBheW91dFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgUGF5b3V0UmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_payout_state.py b/test/test_payout_state.py index b7bad112..d434aad8 100644 --- a/test/test_payout_state.py +++ b/test/test_payout_state.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.payout_state import PayoutState - - -class TestPayoutState(unittest.TestCase): - """PayoutState unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testPayoutState(self): - """Test PayoutState""" - # inst = PayoutState() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW91dF9zdGF0ZSBpbXBvcnQgUGF5b3V0U3RhdGUKCgpjbGFzcyBUZXN0UGF5b3V0U3RhdGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUGF5b3V0U3RhdGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0UGF5b3V0U3RhdGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBQYXlvdXRTdGF0ZSIiIgogICAgICAgICMgaW5zdCA9IFBheW91dFN0YXRlKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_payout_status.py b/test/test_payout_status.py index 6aa02475..c26af37f 100644 --- a/test/test_payout_status.py +++ b/test/test_payout_status.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.payout_status import PayoutStatus - - -class TestPayoutStatus(unittest.TestCase): - """PayoutStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testPayoutStatus(self): - """Test PayoutStatus""" - # inst = PayoutStatus() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBheW91dF9zdGF0dXMgaW1wb3J0IFBheW91dFN0YXR1cwoKCmNsYXNzIFRlc3RQYXlvdXRTdGF0dXModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUGF5b3V0U3RhdHVzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdFBheW91dFN0YXR1cyhzZWxmKToKICAgICAgICAiIiJUZXN0IFBheW91dFN0YXR1cyIiIgogICAgICAgICMgaW5zdCA9IFBheW91dFN0YXR1cygpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_peer_adapter_info.py b/test/test_peer_adapter_info.py index ea67a4da..b23e722f 100644 --- a/test/test_peer_adapter_info.py +++ b/test/test_peer_adapter_info.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.peer_adapter_info import PeerAdapterInfo - - -class TestPeerAdapterInfo(unittest.TestCase): - """PeerAdapterInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PeerAdapterInfo: - """Test PeerAdapterInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PeerAdapterInfo` - """ - model = PeerAdapterInfo() - if include_optional: - return PeerAdapterInfo( - adapter_token_link_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - adapter_address = '0x1234567890abcdef1234567890abcdef12345678', - base_asset_id = 'ETH_TEST6' - ) - else: - return PeerAdapterInfo( - adapter_token_link_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - adapter_address = '0x1234567890abcdef1234567890abcdef12345678', - base_asset_id = 'ETH_TEST6', - ) - """ - - def testPeerAdapterInfo(self): - """Test PeerAdapterInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBlZXJfYWRhcHRlcl9pbmZvIGltcG9ydCBQZWVyQWRhcHRlckluZm8KCgpjbGFzcyBUZXN0UGVlckFkYXB0ZXJJbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlBlZXJBZGFwdGVySW5mbyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUGVlckFkYXB0ZXJJbmZvOgogICAgICAgICIiIlRlc3QgUGVlckFkYXB0ZXJJbmZvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFBlZXJBZGFwdGVySW5mb2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFBlZXJBZGFwdGVySW5mbygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFBlZXJBZGFwdGVySW5mbygKICAgICAgICAgICAgICAgIGFkYXB0ZXJfdG9rZW5fbGlua19pZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGQnLAogICAgICAgICAgICAgICAgYWRhcHRlcl9hZGRyZXNzID0gJzB4MTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3OCcsCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0X2lkID0gJ0VUSF9URVNUNicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQZWVyQWRhcHRlckluZm8oCiAgICAgICAgICAgICAgICBhZGFwdGVyX3Rva2VuX2xpbmtfaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywKICAgICAgICAgICAgICAgIGFkYXB0ZXJfYWRkcmVzcyA9ICcweDEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2NzgnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldF9pZCA9ICdFVEhfVEVTVDYnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFBlZXJBZGFwdGVySW5mbyhzZWxmKToKICAgICAgICAiIiJUZXN0IFBlZXJBZGFwdGVySW5mbyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_peer_type.py b/test/test_peer_type.py index 2947bfda..f1bcae23 100644 --- a/test/test_peer_type.py +++ b/test/test_peer_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.peer_type import PeerType - - -class TestPeerType(unittest.TestCase): - """PeerType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testPeerType(self): - """Test PeerType""" - # inst = PeerType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBlZXJfdHlwZSBpbXBvcnQgUGVlclR5cGUKCgpjbGFzcyBUZXN0UGVlclR5cGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUGVlclR5cGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0UGVlclR5cGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBQZWVyVHlwZSIiIgogICAgICAgICMgaW5zdCA9IFBlZXJUeXBlKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_personal_entity_type_enum.py b/test/test_personal_entity_type_enum.py index ef81496e..2bcfe152 100644 --- a/test/test_personal_entity_type_enum.py +++ b/test/test_personal_entity_type_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.personal_entity_type_enum import PersonalEntityTypeEnum - - -class TestPersonalEntityTypeEnum(unittest.TestCase): - """PersonalEntityTypeEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testPersonalEntityTypeEnum(self): - """Test PersonalEntityTypeEnum""" - # inst = PersonalEntityTypeEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBlcnNvbmFsX2VudGl0eV90eXBlX2VudW0gaW1wb3J0IFBlcnNvbmFsRW50aXR5VHlwZUVudW0KCgpjbGFzcyBUZXN0UGVyc29uYWxFbnRpdHlUeXBlRW51bSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJQZXJzb25hbEVudGl0eVR5cGVFbnVtIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdFBlcnNvbmFsRW50aXR5VHlwZUVudW0oc2VsZik6CiAgICAgICAgIiIiVGVzdCBQZXJzb25hbEVudGl0eVR5cGVFbnVtIiIiCiAgICAgICAgIyBpbnN0ID0gUGVyc29uYWxFbnRpdHlUeXBlRW51bSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_personal_identification.py b/test/test_personal_identification.py index 1f76345f..5accdfff 100644 --- a/test/test_personal_identification.py +++ b/test/test_personal_identification.py @@ -1,75 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.personal_identification import PersonalIdentification - - -class TestPersonalIdentification(unittest.TestCase): - """PersonalIdentification unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PersonalIdentification: - """Test PersonalIdentification - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PersonalIdentification` - """ - model = PersonalIdentification() - if include_optional: - return PersonalIdentification( - external_reference_id = '', - entity_type = 'INDIVIDUAL', - participant_relationship_type = 'FirstParty', - full_name = fireblocks.models.personal_identification_full_name.PersonalIdentification_fullName( - first_name = '', - last_name = '', ), - date_of_birth = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(), - postal_address = {"streetName":"Fifth Avenue","buildingNumber":"350","postalCode":"10118","city":"New York","subdivision":"NY","district":"Manhattan","country":"US"}, - email = '', - phone = '+14155551234', - id_number = '', - id_type = 'NIN_SLIP_CARD', - additional_id_number = '', - additional_id_type = 'NIN_SLIP_CARD' - ) - else: - return PersonalIdentification( - external_reference_id = '', - entity_type = 'INDIVIDUAL', - participant_relationship_type = 'FirstParty', - full_name = fireblocks.models.personal_identification_full_name.PersonalIdentification_fullName( - first_name = '', - last_name = '', ), - date_of_birth = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(), - postal_address = {"streetName":"Fifth Avenue","buildingNumber":"350","postalCode":"10118","city":"New York","subdivision":"NY","district":"Manhattan","country":"US"}, - ) - """ - - def testPersonalIdentification(self): - """Test PersonalIdentification""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBlcnNvbmFsX2lkZW50aWZpY2F0aW9uIGltcG9ydCBQZXJzb25hbElkZW50aWZpY2F0aW9uCgoKY2xhc3MgVGVzdFBlcnNvbmFsSWRlbnRpZmljYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUGVyc29uYWxJZGVudGlmaWNhdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUGVyc29uYWxJZGVudGlmaWNhdGlvbjoKICAgICAgICAiIiJUZXN0IFBlcnNvbmFsSWRlbnRpZmljYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUGVyc29uYWxJZGVudGlmaWNhdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFBlcnNvbmFsSWRlbnRpZmljYXRpb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQZXJzb25hbElkZW50aWZpY2F0aW9uKAogICAgICAgICAgICAgICAgZXh0ZXJuYWxfcmVmZXJlbmNlX2lkID0gJycsCiAgICAgICAgICAgICAgICBlbnRpdHlfdHlwZSA9ICdJTkRJVklEVUFMJywKICAgICAgICAgICAgICAgIHBhcnRpY2lwYW50X3JlbGF0aW9uc2hpcF90eXBlID0gJ0ZpcnN0UGFydHknLAogICAgICAgICAgICAgICAgZnVsbF9uYW1lID0gZmlyZWJsb2Nrcy5tb2RlbHMucGVyc29uYWxfaWRlbnRpZmljYXRpb25fZnVsbF9uYW1lLlBlcnNvbmFsSWRlbnRpZmljYXRpb25fZnVsbE5hbWUoCiAgICAgICAgICAgICAgICAgICAgZmlyc3RfbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBsYXN0X25hbWUgPSAnJywgKSwKICAgICAgICAgICAgICAgIGRhdGVfb2ZfYmlydGggPSBkYXRldGltZS5kYXRldGltZS5zdHJwdGltZSgnMTk3NS0xMi0zMCcsICclWS0lbS0lZCcpLmRhdGUoKSwKICAgICAgICAgICAgICAgIHBvc3RhbF9hZGRyZXNzID0geyJzdHJlZXROYW1lIjoiRmlmdGggQXZlbnVlIiwiYnVpbGRpbmdOdW1iZXIiOiIzNTAiLCJwb3N0YWxDb2RlIjoiMTAxMTgiLCJjaXR5IjoiTmV3IFlvcmsiLCJzdWJkaXZpc2lvbiI6Ik5ZIiwiZGlzdHJpY3QiOiJNYW5oYXR0YW4iLCJjb3VudHJ5IjoiVVMifSwKICAgICAgICAgICAgICAgIGVtYWlsID0gJycsCiAgICAgICAgICAgICAgICBwaG9uZSA9ICcrMTQxNTU1NTEyMzQnLAogICAgICAgICAgICAgICAgaWRfbnVtYmVyID0gJycsCiAgICAgICAgICAgICAgICBpZF90eXBlID0gJ05JTl9TTElQX0NBUkQnLAogICAgICAgICAgICAgICAgYWRkaXRpb25hbF9pZF9udW1iZXIgPSAnJywKICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfaWRfdHlwZSA9ICdOSU5fU0xJUF9DQVJEJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFBlcnNvbmFsSWRlbnRpZmljYXRpb24oCiAgICAgICAgICAgICAgICBleHRlcm5hbF9yZWZlcmVuY2VfaWQgPSAnJywKICAgICAgICAgICAgICAgIGVudGl0eV90eXBlID0gJ0lORElWSURVQUwnLAogICAgICAgICAgICAgICAgcGFydGljaXBhbnRfcmVsYXRpb25zaGlwX3R5cGUgPSAnRmlyc3RQYXJ0eScsCiAgICAgICAgICAgICAgICBmdWxsX25hbWUgPSBmaXJlYmxvY2tzLm1vZGVscy5wZXJzb25hbF9pZGVudGlmaWNhdGlvbl9mdWxsX25hbWUuUGVyc29uYWxJZGVudGlmaWNhdGlvbl9mdWxsTmFtZSgKICAgICAgICAgICAgICAgICAgICBmaXJzdF9uYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgIGxhc3RfbmFtZSA9ICcnLCApLAogICAgICAgICAgICAgICAgZGF0ZV9vZl9iaXJ0aCA9IGRhdGV0aW1lLmRhdGV0aW1lLnN0cnB0aW1lKCcxOTc1LTEyLTMwJywgJyVZLSVtLSVkJykuZGF0ZSgpLAogICAgICAgICAgICAgICAgcG9zdGFsX2FkZHJlc3MgPSB7InN0cmVldE5hbWUiOiJGaWZ0aCBBdmVudWUiLCJidWlsZGluZ051bWJlciI6IjM1MCIsInBvc3RhbENvZGUiOiIxMDExOCIsImNpdHkiOiJOZXcgWW9yayIsInN1YmRpdmlzaW9uIjoiTlkiLCJkaXN0cmljdCI6Ik1hbmhhdHRhbiIsImNvdW50cnkiOiJVUyJ9LAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFBlcnNvbmFsSWRlbnRpZmljYXRpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBQZXJzb25hbElkZW50aWZpY2F0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_personal_identification_full_name.py b/test/test_personal_identification_full_name.py index 9aed2af0..3ed06c39 100644 --- a/test/test_personal_identification_full_name.py +++ b/test/test_personal_identification_full_name.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.personal_identification_full_name import ( - PersonalIdentificationFullName, -) - - -class TestPersonalIdentificationFullName(unittest.TestCase): - """PersonalIdentificationFullName unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PersonalIdentificationFullName: - """Test PersonalIdentificationFullName - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PersonalIdentificationFullName` - """ - model = PersonalIdentificationFullName() - if include_optional: - return PersonalIdentificationFullName( - first_name = '', - last_name = '' - ) - else: - return PersonalIdentificationFullName( - first_name = '', - last_name = '', - ) - """ - - def testPersonalIdentificationFullName(self): - """Test PersonalIdentificationFullName""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBlcnNvbmFsX2lkZW50aWZpY2F0aW9uX2Z1bGxfbmFtZSBpbXBvcnQgKAogICAgUGVyc29uYWxJZGVudGlmaWNhdGlvbkZ1bGxOYW1lLAopCgoKY2xhc3MgVGVzdFBlcnNvbmFsSWRlbnRpZmljYXRpb25GdWxsTmFtZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJQZXJzb25hbElkZW50aWZpY2F0aW9uRnVsbE5hbWUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFBlcnNvbmFsSWRlbnRpZmljYXRpb25GdWxsTmFtZToKICAgICAgICAiIiJUZXN0IFBlcnNvbmFsSWRlbnRpZmljYXRpb25GdWxsTmFtZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBQZXJzb25hbElkZW50aWZpY2F0aW9uRnVsbE5hbWVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBQZXJzb25hbElkZW50aWZpY2F0aW9uRnVsbE5hbWUoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQZXJzb25hbElkZW50aWZpY2F0aW9uRnVsbE5hbWUoCiAgICAgICAgICAgICAgICBmaXJzdF9uYW1lID0gJycsCiAgICAgICAgICAgICAgICBsYXN0X25hbWUgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFBlcnNvbmFsSWRlbnRpZmljYXRpb25GdWxsTmFtZSgKICAgICAgICAgICAgICAgIGZpcnN0X25hbWUgPSAnJywKICAgICAgICAgICAgICAgIGxhc3RfbmFtZSA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFBlcnNvbmFsSWRlbnRpZmljYXRpb25GdWxsTmFtZShzZWxmKToKICAgICAgICAiIiJUZXN0IFBlcnNvbmFsSWRlbnRpZmljYXRpb25GdWxsTmFtZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_personal_identification_type.py b/test/test_personal_identification_type.py index c440e75f..54746bdd 100644 --- a/test/test_personal_identification_type.py +++ b/test/test_personal_identification_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.personal_identification_type import PersonalIdentificationType - - -class TestPersonalIdentificationType(unittest.TestCase): - """PersonalIdentificationType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testPersonalIdentificationType(self): - """Test PersonalIdentificationType""" - # inst = PersonalIdentificationType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBlcnNvbmFsX2lkZW50aWZpY2F0aW9uX3R5cGUgaW1wb3J0IFBlcnNvbmFsSWRlbnRpZmljYXRpb25UeXBlCgoKY2xhc3MgVGVzdFBlcnNvbmFsSWRlbnRpZmljYXRpb25UeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlBlcnNvbmFsSWRlbnRpZmljYXRpb25UeXBlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdFBlcnNvbmFsSWRlbnRpZmljYXRpb25UeXBlKHNlbGYpOgogICAgICAgICIiIlRlc3QgUGVyc29uYWxJZGVudGlmaWNhdGlvblR5cGUiIiIKICAgICAgICAjIGluc3QgPSBQZXJzb25hbElkZW50aWZpY2F0aW9uVHlwZSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_pix_address.py b/test/test_pix_address.py index f745e225..da8b2f69 100644 --- a/test/test_pix_address.py +++ b/test/test_pix_address.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.pix_address import PixAddress - - -class TestPixAddress(unittest.TestCase): - """PixAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PixAddress: - """Test PixAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PixAddress` - """ - model = PixAddress() - if include_optional: - return PixAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - pix_key = '', - key_type = 'CPF', - bank_name = '', - bank_code = '', - qr_code = 'qr_code_number', - expiration_date = '2025-01-15T12:00:00Z' - ) - else: - return PixAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - pix_key = '', - key_type = 'CPF', - ) - """ - - def testPixAddress(self): - """Test PixAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBpeF9hZGRyZXNzIGltcG9ydCBQaXhBZGRyZXNzCgoKY2xhc3MgVGVzdFBpeEFkZHJlc3ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUGl4QWRkcmVzcyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUGl4QWRkcmVzczoKICAgICAgICAiIiJUZXN0IFBpeEFkZHJlc3MKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUGl4QWRkcmVzc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFBpeEFkZHJlc3MoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQaXhBZGRyZXNzKAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXIgPSB7Im5hbWUiOiJKb2huIFNtaXRoIiwiY2l0eSI6Ik5ldyBZb3JrIiwiY291bnRyeSI6IlVTIiwic3ViZGl2aXNpb24iOiJOWSIsImFkZHJlc3MiOiIxMjMgV2FsbCBTdHJlZXQsIEFwdCA0QiIsInBvc3RhbENvZGUiOiIxMDAwNSJ9LAogICAgICAgICAgICAgICAgcGl4X2tleSA9ICcnLAogICAgICAgICAgICAgICAga2V5X3R5cGUgPSAnQ1BGJywKICAgICAgICAgICAgICAgIGJhbmtfbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgYmFua19jb2RlID0gJycsCiAgICAgICAgICAgICAgICBxcl9jb2RlID0gJ3FyX2NvZGVfbnVtYmVyJywKICAgICAgICAgICAgICAgIGV4cGlyYXRpb25fZGF0ZSA9ICcyMDI1LTAxLTE1VDEyOjAwOjAwWicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQaXhBZGRyZXNzKAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXIgPSB7Im5hbWUiOiJKb2huIFNtaXRoIiwiY2l0eSI6Ik5ldyBZb3JrIiwiY291bnRyeSI6IlVTIiwic3ViZGl2aXNpb24iOiJOWSIsImFkZHJlc3MiOiIxMjMgV2FsbCBTdHJlZXQsIEFwdCA0QiIsInBvc3RhbENvZGUiOiIxMDAwNSJ9LAogICAgICAgICAgICAgICAgcGl4X2tleSA9ICcnLAogICAgICAgICAgICAgICAga2V5X3R5cGUgPSAnQ1BGJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RQaXhBZGRyZXNzKHNlbGYpOgogICAgICAgICIiIlRlc3QgUGl4QWRkcmVzcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_pix_destination.py b/test/test_pix_destination.py index 0cd58521..661358cb 100644 --- a/test/test_pix_destination.py +++ b/test/test_pix_destination.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.pix_destination import PixDestination - - -class TestPixDestination(unittest.TestCase): - """PixDestination unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PixDestination: - """Test PixDestination - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PixDestination` - """ - model = PixDestination() - if include_optional: - return PixDestination( - type = 'PIX', - address = {"accountHolder":{"name":"Maria Silva Santos","city":"São Paulo","country":"BR","subdivision":"SP","address":"Rua das Flores, 123","postalCode":"01234-567"},"pixKey":"11987654321","keyType":"phone","bankName":"Banco do Brasil","bankCode":"001","qrCode":"qr_code_number","expirationDate":"2025-01-15T12:00:00Z"} - ) - else: - return PixDestination( - type = 'PIX', - address = {"accountHolder":{"name":"Maria Silva Santos","city":"São Paulo","country":"BR","subdivision":"SP","address":"Rua das Flores, 123","postalCode":"01234-567"},"pixKey":"11987654321","keyType":"phone","bankName":"Banco do Brasil","bankCode":"001","qrCode":"qr_code_number","expirationDate":"2025-01-15T12:00:00Z"}, - ) - """ - - def testPixDestination(self): - """Test PixDestination""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBpeF9kZXN0aW5hdGlvbiBpbXBvcnQgUGl4RGVzdGluYXRpb24KCgpjbGFzcyBUZXN0UGl4RGVzdGluYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUGl4RGVzdGluYXRpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFBpeERlc3RpbmF0aW9uOgogICAgICAgICIiIlRlc3QgUGl4RGVzdGluYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUGl4RGVzdGluYXRpb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBQaXhEZXN0aW5hdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFBpeERlc3RpbmF0aW9uKAogICAgICAgICAgICAgICAgdHlwZSA9ICdQSVgnLAogICAgICAgICAgICAgICAgYWRkcmVzcyA9IHsiYWNjb3VudEhvbGRlciI6eyJuYW1lIjoiTWFyaWEgU2lsdmEgU2FudG9zIiwiY2l0eSI6IlPDo28gUGF1bG8iLCJjb3VudHJ5IjoiQlIiLCJzdWJkaXZpc2lvbiI6IlNQIiwiYWRkcmVzcyI6IlJ1YSBkYXMgRmxvcmVzLCAxMjMiLCJwb3N0YWxDb2RlIjoiMDEyMzQtNTY3In0sInBpeEtleSI6IjExOTg3NjU0MzIxIiwia2V5VHlwZSI6InBob25lIiwiYmFua05hbWUiOiJCYW5jbyBkbyBCcmFzaWwiLCJiYW5rQ29kZSI6IjAwMSIsInFyQ29kZSI6InFyX2NvZGVfbnVtYmVyIiwiZXhwaXJhdGlvbkRhdGUiOiIyMDI1LTAxLTE1VDEyOjAwOjAwWiJ9CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUGl4RGVzdGluYXRpb24oCiAgICAgICAgICAgICAgICB0eXBlID0gJ1BJWCcsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0geyJhY2NvdW50SG9sZGVyIjp7Im5hbWUiOiJNYXJpYSBTaWx2YSBTYW50b3MiLCJjaXR5IjoiU8OjbyBQYXVsbyIsImNvdW50cnkiOiJCUiIsInN1YmRpdmlzaW9uIjoiU1AiLCJhZGRyZXNzIjoiUnVhIGRhcyBGbG9yZXMsIDEyMyIsInBvc3RhbENvZGUiOiIwMTIzNC01NjcifSwicGl4S2V5IjoiMTE5ODc2NTQzMjEiLCJrZXlUeXBlIjoicGhvbmUiLCJiYW5rTmFtZSI6IkJhbmNvIGRvIEJyYXNpbCIsImJhbmtDb2RlIjoiMDAxIiwicXJDb2RlIjoicXJfY29kZV9udW1iZXIiLCJleHBpcmF0aW9uRGF0ZSI6IjIwMjUtMDEtMTVUMTI6MDA6MDBaIn0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UGl4RGVzdGluYXRpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBQaXhEZXN0aW5hdGlvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_pix_payment_info.py b/test/test_pix_payment_info.py index 9d036645..d85e6da3 100644 --- a/test/test_pix_payment_info.py +++ b/test/test_pix_payment_info.py @@ -1,69 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.pix_payment_info import PixPaymentInfo - - -class TestPixPaymentInfo(unittest.TestCase): - """PixPaymentInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PixPaymentInfo: - """Test PixPaymentInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PixPaymentInfo` - """ - model = PixPaymentInfo() - if include_optional: - return PixPaymentInfo( - rail = 'PIX', - addressing_system = 'PIX', - account_holder_given_name = 'João', - account_holder_surname = 'Silva', - country = 'BR', - pix_key = 'joao.silva@email.com', - bank_name = 'Banco do Brasil', - bank_code = '00000000', - key_type = 'EMAIL' - ) - else: - return PixPaymentInfo( - rail = 'PIX', - addressing_system = 'PIX', - account_holder_given_name = 'João', - account_holder_surname = 'Silva', - country = 'BR', - pix_key = 'joao.silva@email.com', - key_type = 'EMAIL', - ) - """ - - def testPixPaymentInfo(self): - """Test PixPaymentInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBpeF9wYXltZW50X2luZm8gaW1wb3J0IFBpeFBheW1lbnRJbmZvCgoKY2xhc3MgVGVzdFBpeFBheW1lbnRJbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlBpeFBheW1lbnRJbmZvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBQaXhQYXltZW50SW5mbzoKICAgICAgICAiIiJUZXN0IFBpeFBheW1lbnRJbmZvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFBpeFBheW1lbnRJbmZvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUGl4UGF5bWVudEluZm8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQaXhQYXltZW50SW5mbygKICAgICAgICAgICAgICAgIHJhaWwgPSAnUElYJywKICAgICAgICAgICAgICAgIGFkZHJlc3Npbmdfc3lzdGVtID0gJ1BJWCcsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9naXZlbl9uYW1lID0gJ0pvw6NvJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX3N1cm5hbWUgPSAnU2lsdmEnLAogICAgICAgICAgICAgICAgY291bnRyeSA9ICdCUicsCiAgICAgICAgICAgICAgICBwaXhfa2V5ID0gJ2pvYW8uc2lsdmFAZW1haWwuY29tJywKICAgICAgICAgICAgICAgIGJhbmtfbmFtZSA9ICdCYW5jbyBkbyBCcmFzaWwnLAogICAgICAgICAgICAgICAgYmFua19jb2RlID0gJzAwMDAwMDAwJywKICAgICAgICAgICAgICAgIGtleV90eXBlID0gJ0VNQUlMJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFBpeFBheW1lbnRJbmZvKAogICAgICAgICAgICAgICAgcmFpbCA9ICdQSVgnLAogICAgICAgICAgICAgICAgYWRkcmVzc2luZ19zeXN0ZW0gPSAnUElYJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2dpdmVuX25hbWUgPSAnSm/Do28nLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfc3VybmFtZSA9ICdTaWx2YScsCiAgICAgICAgICAgICAgICBjb3VudHJ5ID0gJ0JSJywKICAgICAgICAgICAgICAgIHBpeF9rZXkgPSAnam9hby5zaWx2YUBlbWFpbC5jb20nLAogICAgICAgICAgICAgICAga2V5X3R5cGUgPSAnRU1BSUwnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFBpeFBheW1lbnRJbmZvKHNlbGYpOgogICAgICAgICIiIlRlc3QgUGl4UGF5bWVudEluZm8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_platform_account.py b/test/test_platform_account.py index 5c14cff1..00c8c490 100644 --- a/test/test_platform_account.py +++ b/test/test_platform_account.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.platform_account import PlatformAccount - - -class TestPlatformAccount(unittest.TestCase): - """PlatformAccount unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PlatformAccount: - """Test PlatformAccount - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PlatformAccount` - """ - model = PlatformAccount() - if include_optional: - return PlatformAccount( - type = 'VAULT_ACCOUNT', - account_id = '' - ) - else: - return PlatformAccount( - type = 'VAULT_ACCOUNT', - account_id = '', - ) - """ - - def testPlatformAccount(self): - """Test PlatformAccount""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBsYXRmb3JtX2FjY291bnQgaW1wb3J0IFBsYXRmb3JtQWNjb3VudAoKCmNsYXNzIFRlc3RQbGF0Zm9ybUFjY291bnQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUGxhdGZvcm1BY2NvdW50IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBQbGF0Zm9ybUFjY291bnQ6CiAgICAgICAgIiIiVGVzdCBQbGF0Zm9ybUFjY291bnQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUGxhdGZvcm1BY2NvdW50YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUGxhdGZvcm1BY2NvdW50KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUGxhdGZvcm1BY2NvdW50KAogICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtQWNjb3VudCgKICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFRfQUNDT1VOVCcsCiAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UGxhdGZvcm1BY2NvdW50KHNlbGYpOgogICAgICAgICIiIlRlc3QgUGxhdGZvcm1BY2NvdW50IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_platform_peer_type.py b/test/test_platform_peer_type.py index 81ad4a5c..b088abf8 100644 --- a/test/test_platform_peer_type.py +++ b/test/test_platform_peer_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.platform_peer_type import PlatformPeerType - - -class TestPlatformPeerType(unittest.TestCase): - """PlatformPeerType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testPlatformPeerType(self): - """Test PlatformPeerType""" - # inst = PlatformPeerType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBsYXRmb3JtX3BlZXJfdHlwZSBpbXBvcnQgUGxhdGZvcm1QZWVyVHlwZQoKCmNsYXNzIFRlc3RQbGF0Zm9ybVBlZXJUeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlBsYXRmb3JtUGVlclR5cGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0UGxhdGZvcm1QZWVyVHlwZShzZWxmKToKICAgICAgICAiIiJUZXN0IFBsYXRmb3JtUGVlclR5cGUiIiIKICAgICAgICAjIGluc3QgPSBQbGF0Zm9ybVBlZXJUeXBlKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_players.py b/test/test_players.py index 5f02efb7..aa9fd25b 100644 --- a/test/test_players.py +++ b/test/test_players.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.players import Players - - -class TestPlayers(unittest.TestCase): - """Players unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Players: - """Test Players - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Players` - """ - model = Players() - if include_optional: - return Players( - id = '47d3383e-37a3-43d5-90a4-de0ca8c5e258', - type = 'MOBILE' - ) - else: - return Players( - id = '47d3383e-37a3-43d5-90a4-de0ca8c5e258', - type = 'MOBILE', - ) - """ - - def testPlayers(self): - """Test Players""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBsYXllcnMgaW1wb3J0IFBsYXllcnMKCgpjbGFzcyBUZXN0UGxheWVycyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJQbGF5ZXJzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBQbGF5ZXJzOgogICAgICAgICIiIlRlc3QgUGxheWVycwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBQbGF5ZXJzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUGxheWVycygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFBsYXllcnMoCiAgICAgICAgICAgICAgICBpZCA9ICc0N2QzMzgzZS0zN2EzLTQzZDUtOTBhNC1kZTBjYThjNWUyNTgnLAogICAgICAgICAgICAgICAgdHlwZSA9ICdNT0JJTEUnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUGxheWVycygKICAgICAgICAgICAgICAgIGlkID0gJzQ3ZDMzODNlLTM3YTMtNDNkNS05MGE0LWRlMGNhOGM1ZTI1OCcsCiAgICAgICAgICAgICAgICB0eXBlID0gJ01PQklMRScsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UGxheWVycyhzZWxmKToKICAgICAgICAiIiJUZXN0IFBsYXllcnMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_policy_and_validation_response.py b/test/test_policy_and_validation_response.py index e2d5aff1..29ff69c2 100644 --- a/test/test_policy_and_validation_response.py +++ b/test/test_policy_and_validation_response.py @@ -1,271 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.policy_and_validation_response import PolicyAndValidationResponse - - -class TestPolicyAndValidationResponse(unittest.TestCase): - """PolicyAndValidationResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PolicyAndValidationResponse: - """Test PolicyAndValidationResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PolicyAndValidationResponse` - """ - model = PolicyAndValidationResponse() - if include_optional: - return PolicyAndValidationResponse( - policy = fireblocks.models.policy_response.PolicyResponse( - rules = [ - fireblocks.models.policy_rule.PolicyRule( - name = 'High Value Transfer Policy', - id = 'policy_rule_001', - policy_engine_version = 'v2', - type = 'TRANSFER', - sub_type = 'TRANSFER', - initiator = null, - asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], - operator = 'INCLUDES', ), - source = fireblocks.models.source_config.SourceConfig( - ids = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - address = '0x123...', ) - ], - tags = [ - fireblocks.models.policy_tag.PolicyTag( - id = 'tag_001', ) - ], - operator = 'INCLUDES', - match_from = 'ACCOUNT', ), - destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"}, - account = fireblocks.models.account_config.AccountConfig( - operator = , - match_from = 'ACCOUNT', ), - side = 'BUY', - verdict = fireblocks.models.verdict_config.VerdictConfig( - action = 'ALLOW', - approvers = fireblocks.models.approvers_config.ApproversConfig( - can_initiator_approve = False, - allow_operator_as_authorizer = False, - approval_groups = [{"threshold":2,"users":["user1","user2"]}], ), - designated_signers = fireblocks.models.designated_signers_config.DesignatedSignersConfig( - type = 'SINGLE', - users = ["user1","user2"], - groups = ["group1","group2"], ), ), - amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig( - range = {"min":"100","max":"10000"}, - currency = 'USD', - time_period = fireblocks.models.time_period_config.TimePeriodConfig( - seconds = '86400', - initiator = 'PER_SINGLE_MATCH', - source = 'PER_SINGLE_MATCH', - destination = 'PER_SINGLE_MATCH', ), ), - amount = {"range":{"min":"100","max":"10000"},"currency":"USD"}, - external_descriptor = 'High value transfer policy for institutional clients', - method = null, - is_global_policy = False, - program_call = fireblocks.models.program_call_config.ProgramCallConfig( - allowed_solana_program_calls = 'WHITELISTED', ), - screening_metadata = fireblocks.models.screening_metadata_config.ScreeningMetadataConfig( - direction = 'OUTBOUND', - provider = 'CHAINALYSIS', - risk_rating = 'MEDIUM', - risk_score = '0.8', - exposure_type = 'DIRECT', - category = [ - '' - ], - name = [ - '' - ], - category_id = [ - '' - ], - status = 'COMPLETED', - source_address = '0x123...', - dest_address = '0x456...', ), - quote_asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], ), - base_asset = , - quote_amount = {"range":{"min":"100","max":"10000"}}, - base_amount = {"range":{"min":"100","max":"10000"}}, - d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig( - global_whitelisted = ["rabby.io","jup.ag"], - tenant_whitelisted = ["uniswap.com","opensea.io"], - urls = ["*"], - operator = , ), - derivation_path = {"path":[44,0,0,0,0],"partial":false}, - index = 1, ) - ], - metadata = fireblocks.models.policy_metadata.PolicyMetadata( - edited_by = 'user123', - edited_at = '2024-01-15T10:30:00Z', - published_by = 'user456', - published_at = '2024-01-15T11:00:00Z', - policy_type = 'TRANSFER', ), ), - validation = fireblocks.models.policy_validation.PolicyValidation( - status = '', - check_result = fireblocks.models.policy_check_result.PolicyCheckResult( - errors = 1.337, - results = [ - fireblocks.models.policy_rule_check_result.PolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.policy_rule_error.PolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], ) - ], ), ) - ) - else: - return PolicyAndValidationResponse( - policy = fireblocks.models.policy_response.PolicyResponse( - rules = [ - fireblocks.models.policy_rule.PolicyRule( - name = 'High Value Transfer Policy', - id = 'policy_rule_001', - policy_engine_version = 'v2', - type = 'TRANSFER', - sub_type = 'TRANSFER', - initiator = null, - asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], - operator = 'INCLUDES', ), - source = fireblocks.models.source_config.SourceConfig( - ids = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - address = '0x123...', ) - ], - tags = [ - fireblocks.models.policy_tag.PolicyTag( - id = 'tag_001', ) - ], - operator = 'INCLUDES', - match_from = 'ACCOUNT', ), - destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"}, - account = fireblocks.models.account_config.AccountConfig( - operator = , - match_from = 'ACCOUNT', ), - side = 'BUY', - verdict = fireblocks.models.verdict_config.VerdictConfig( - action = 'ALLOW', - approvers = fireblocks.models.approvers_config.ApproversConfig( - can_initiator_approve = False, - allow_operator_as_authorizer = False, - approval_groups = [{"threshold":2,"users":["user1","user2"]}], ), - designated_signers = fireblocks.models.designated_signers_config.DesignatedSignersConfig( - type = 'SINGLE', - users = ["user1","user2"], - groups = ["group1","group2"], ), ), - amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig( - range = {"min":"100","max":"10000"}, - currency = 'USD', - time_period = fireblocks.models.time_period_config.TimePeriodConfig( - seconds = '86400', - initiator = 'PER_SINGLE_MATCH', - source = 'PER_SINGLE_MATCH', - destination = 'PER_SINGLE_MATCH', ), ), - amount = {"range":{"min":"100","max":"10000"},"currency":"USD"}, - external_descriptor = 'High value transfer policy for institutional clients', - method = null, - is_global_policy = False, - program_call = fireblocks.models.program_call_config.ProgramCallConfig( - allowed_solana_program_calls = 'WHITELISTED', ), - screening_metadata = fireblocks.models.screening_metadata_config.ScreeningMetadataConfig( - direction = 'OUTBOUND', - provider = 'CHAINALYSIS', - risk_rating = 'MEDIUM', - risk_score = '0.8', - exposure_type = 'DIRECT', - category = [ - '' - ], - name = [ - '' - ], - category_id = [ - '' - ], - status = 'COMPLETED', - source_address = '0x123...', - dest_address = '0x456...', ), - quote_asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], ), - base_asset = , - quote_amount = {"range":{"min":"100","max":"10000"}}, - base_amount = {"range":{"min":"100","max":"10000"}}, - d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig( - global_whitelisted = ["rabby.io","jup.ag"], - tenant_whitelisted = ["uniswap.com","opensea.io"], - urls = ["*"], - operator = , ), - derivation_path = {"path":[44,0,0,0,0],"partial":false}, - index = 1, ) - ], - metadata = fireblocks.models.policy_metadata.PolicyMetadata( - edited_by = 'user123', - edited_at = '2024-01-15T10:30:00Z', - published_by = 'user456', - published_at = '2024-01-15T11:00:00Z', - policy_type = 'TRANSFER', ), ), - validation = fireblocks.models.policy_validation.PolicyValidation( - status = '', - check_result = fireblocks.models.policy_check_result.PolicyCheckResult( - errors = 1.337, - results = [ - fireblocks.models.policy_rule_check_result.PolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.policy_rule_error.PolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], ) - ], ), ), - ) - """ - - def testPolicyAndValidationResponse(self): - """Test PolicyAndValidationResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9hbmRfdmFsaWRhdGlvbl9yZXNwb25zZSBpbXBvcnQgUG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlCgoKY2xhc3MgVGVzdFBvbGljeUFuZFZhbGlkYXRpb25SZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFBvbGljeUFuZFZhbGlkYXRpb25SZXNwb25zZToKICAgICAgICAiIiJUZXN0IFBvbGljeUFuZFZhbGlkYXRpb25SZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBwb2xpY3kgPSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfcmVzcG9uc2UuUG9saWN5UmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgcnVsZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9ydWxlLlBvbGljeVJ1bGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ0hpZ2ggVmFsdWUgVHJhbnNmZXIgUG9saWN5JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdwb2xpY3lfcnVsZV8wMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeV9lbmdpbmVfdmVyc2lvbiA9ICd2MicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViX3R5cGUgPSAnVFJBTlNGRVInLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYXRvciA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9jb25maWcuQXNzZXRDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmZ0X3RyYW5zZmVyID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X3R5cGVzID0gWyJGVU5HSUJMRSIsIk5GVCIsIioiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAnSU5DTFVERVMnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9IGZpcmVibG9ja3MubW9kZWxzLnNvdXJjZV9jb25maWcuU291cmNlQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9pZGVudGlmaWVyLkFjY291bnRJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnYWNjb3VudDEyMycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweDEyMy4uLicsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFncyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3RhZy5Qb2xpY3lUYWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICd0YWdfMDAxJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICdJTkNMVURFUycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoX2Zyb20gPSAnQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSB7InR5cGUiOlsiRVhURVJOQUwiXSwib3BlcmF0b3IiOiJJTkNMVURFUyIsImFkZHJlc3NUeXBlIjoiV0hJVEVMSVNURUQifSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9jb25maWcuQWNjb3VudENvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hfZnJvbSA9ICdBQ0NPVU5UJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWRlID0gJ0JVWScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyZGljdCA9IGZpcmVibG9ja3MubW9kZWxzLnZlcmRpY3RfY29uZmlnLlZlcmRpY3RDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FMTE9XJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92ZXJzID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXBwcm92ZXJzX2NvbmZpZy5BcHByb3ZlcnNDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbl9pbml0aWF0b3JfYXBwcm92ZSA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dfb3BlcmF0b3JfYXNfYXV0aG9yaXplciA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92YWxfZ3JvdXBzID0gW3sidGhyZXNob2xkIjoyLCJ1c2VycyI6WyJ1c2VyMSIsInVzZXIyIl19XSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzaWduYXRlZF9zaWduZXJzID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzaWduYXRlZF9zaWduZXJzX2NvbmZpZy5EZXNpZ25hdGVkU2lnbmVyc0NvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdTSU5HTEUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcnMgPSBbInVzZXIxIiwidXNlcjIiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwcyA9IFsiZ3JvdXAxIiwiZ3JvdXAyIl0sICksICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50X292ZXJfdGltZSA9IGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9vdmVyX3RpbWVfY29uZmlnLkFtb3VudE92ZXJUaW1lQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlID0geyJtaW4iOiIxMDAiLCJtYXgiOiIxMDAwMCJ9LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeSA9ICdVU0QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lX3BlcmlvZCA9IGZpcmVibG9ja3MubW9kZWxzLnRpbWVfcGVyaW9kX2NvbmZpZy5UaW1lUGVyaW9kQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRzID0gJzg2NDAwJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYXRvciA9ICdQRVJfU0lOR0xFX01BVENIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9ICdQRVJfU0lOR0xFX01BVENIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLCApLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IHsicmFuZ2UiOnsibWluIjoiMTAwIiwibWF4IjoiMTAwMDAifSwiY3VycmVuY3kiOiJVU0QifSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlcm5hbF9kZXNjcmlwdG9yID0gJ0hpZ2ggdmFsdWUgdHJhbnNmZXIgcG9saWN5IGZvciBpbnN0aXR1dGlvbmFsIGNsaWVudHMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfZ2xvYmFsX3BvbGljeSA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyYW1fY2FsbCA9IGZpcmVibG9ja3MubW9kZWxzLnByb2dyYW1fY2FsbF9jb25maWcuUHJvZ3JhbUNhbGxDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dlZF9zb2xhbmFfcHJvZ3JhbV9jYWxscyA9ICdXSElURUxJU1RFRCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyZWVuaW5nX21ldGFkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX21ldGFkYXRhX2NvbmZpZy5TY3JlZW5pbmdNZXRhZGF0YUNvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlciA9ICdDSEFJTkFMWVNJUycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpc2tfcmF0aW5nID0gJ01FRElVTScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpc2tfc2NvcmUgPSAnMC44JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3N1cmVfdHlwZSA9ICdESVJFQ1QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VfYWRkcmVzcyA9ICcweDEyMy4uLicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcweDQ1Ni4uLicsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVfYXNzZXQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9jb25maWcuQXNzZXRDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmZ0X3RyYW5zZmVyID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X3R5cGVzID0gWyJGVU5HSUJMRSIsIk5GVCIsIioiXSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlX2Ftb3VudCA9IHsicmFuZ2UiOnsibWluIjoiMTAwIiwibWF4IjoiMTAwMDAifX0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZV9hbW91bnQgPSB7InJhbmdlIjp7Im1pbiI6IjEwMCIsIm1heCI6IjEwMDAwIn19LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRfYXBwX2FkZHJlc3MgPSBmaXJlYmxvY2tzLm1vZGVscy5kX2FwcF9hZGRyZXNzX2NvbmZpZy5EQXBwQWRkcmVzc0NvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWxfd2hpdGVsaXN0ZWQgPSBbInJhYmJ5LmlvIiwianVwLmFnIl0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbmFudF93aGl0ZWxpc3RlZCA9IFsidW5pc3dhcC5jb20iLCJvcGVuc2VhLmlvIl0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHMgPSBbIioiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVyaXZhdGlvbl9wYXRoID0geyJwYXRoIjpbNDQsMCwwLDAsMF0sInBhcnRpYWwiOmZhbHNlfSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IDEsICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEgPSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfbWV0YWRhdGEuUG9saWN5TWV0YWRhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRlZF9ieSA9ICd1c2VyMTIzJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRlZF9hdCA9ICcyMDI0LTAxLTE1VDEwOjMwOjAwWicsIAogICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZWRfYnkgPSAndXNlcjQ1NicsIAogICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZWRfYXQgPSAnMjAyNC0wMS0xNVQxMTowMDowMFonLCAKICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5X3R5cGUgPSAnVFJBTlNGRVInLCApLCApLAogICAgICAgICAgICAgICAgdmFsaWRhdGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV92YWxpZGF0aW9uLlBvbGljeVZhbGlkYXRpb24oCiAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJycsIAogICAgICAgICAgICAgICAgICAgIGNoZWNrX3Jlc3VsdCA9IGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9jaGVja19yZXN1bHQuUG9saWN5Q2hlY2tSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0cyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9ydWxlX2NoZWNrX3Jlc3VsdC5Qb2xpY3lSdWxlQ2hlY2tSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ29rJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfcnVsZV9lcnJvci5Qb2xpY3lSdWxlRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9tZXNzYWdlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZSA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGVfbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2ZpZWxkID0gJ29wZXJhdG9yJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUG9saWN5QW5kVmFsaWRhdGlvblJlc3BvbnNlKAogICAgICAgICAgICAgICAgcG9saWN5ID0gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3Jlc3BvbnNlLlBvbGljeVJlc3BvbnNlKAogICAgICAgICAgICAgICAgICAgIHJ1bGVzID0gWwogICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfcnVsZS5Qb2xpY3lSdWxlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdIaWdoIFZhbHVlIFRyYW5zZmVyIFBvbGljeScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAncG9saWN5X3J1bGVfMDAxJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2xpY3lfZW5naW5lX3ZlcnNpb24gPSAndjInLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVFJBTlNGRVInLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl90eXBlID0gJ1RSQU5TRkVSJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWF0b3IgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfY29uZmlnLkFzc2V0Q29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5mdF90cmFuc2ZlciA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldF90eXBlcyA9IFsiRlVOR0lCTEUiLCJORlQiLCIqIl0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gJ0lOQ0xVREVTJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UgPSBmaXJlYmxvY2tzLm1vZGVscy5zb3VyY2VfY29uZmlnLlNvdXJjZUNvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaWRlbnRpZmllci5BY2NvdW50SWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJ2FjY291bnQxMjMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHgxMjMuLi4nLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZ3MgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV90YWcuUG9saWN5VGFnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAndGFnXzAwMScsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAnSU5DTFVERVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaF9mcm9tID0gJ0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0geyJ0eXBlIjpbIkVYVEVSTkFMIl0sIm9wZXJhdG9yIjoiSU5DTFVERVMiLCJhZGRyZXNzVHlwZSI6IldISVRFTElTVEVEIn0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfY29uZmlnLkFjY291bnRDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoX2Zyb20gPSAnQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lkZSA9ICdCVVknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmRpY3QgPSBmaXJlYmxvY2tzLm1vZGVscy52ZXJkaWN0X2NvbmZpZy5WZXJkaWN0Q29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdBTExPVycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmVycyA9IGZpcmVibG9ja3MubW9kZWxzLmFwcHJvdmVyc19jb25maWcuQXBwcm92ZXJzQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5faW5pdGlhdG9yX2FwcHJvdmUgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93X29wZXJhdG9yX2FzX2F1dGhvcml6ZXIgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmFsX2dyb3VwcyA9IFt7InRocmVzaG9sZCI6MiwidXNlcnMiOlsidXNlcjEiLCJ1c2VyMiJdfV0sICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2lnbmF0ZWRfc2lnbmVycyA9IGZpcmVibG9ja3MubW9kZWxzLmRlc2lnbmF0ZWRfc2lnbmVyc19jb25maWcuRGVzaWduYXRlZFNpZ25lcnNDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnU0lOR0xFJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzID0gWyJ1c2VyMSIsInVzZXIyIl0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cHMgPSBbImdyb3VwMSIsImdyb3VwMiJdLCApLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudF9vdmVyX3RpbWUgPSBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfb3Zlcl90aW1lX2NvbmZpZy5BbW91bnRPdmVyVGltZUNvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZSA9IHsibWluIjoiMTAwIiwibWF4IjoiMTAwMDAifSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3kgPSAnVVNEJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZV9wZXJpb2QgPSBmaXJlYmxvY2tzLm1vZGVscy50aW1lX3BlcmlvZF9jb25maWcuVGltZVBlcmlvZENvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kcyA9ICc4NjQwMCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWF0b3IgPSAnUEVSX1NJTkdMRV9NQVRDSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UgPSAnUEVSX1NJTkdMRV9NQVRDSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9ICdQRVJfU0lOR0xFX01BVENIJywgKSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSB7InJhbmdlIjp7Im1pbiI6IjEwMCIsIm1heCI6IjEwMDAwIn0sImN1cnJlbmN5IjoiVVNEIn0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfZGVzY3JpcHRvciA9ICdIaWdoIHZhbHVlIHRyYW5zZmVyIHBvbGljeSBmb3IgaW5zdGl0dXRpb25hbCBjbGllbnRzJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX2dsb2JhbF9wb2xpY3kgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmFtX2NhbGwgPSBmaXJlYmxvY2tzLm1vZGVscy5wcm9ncmFtX2NhbGxfY29uZmlnLlByb2dyYW1DYWxsQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWRfc29sYW5hX3Byb2dyYW1fY2FsbHMgPSAnV0hJVEVMSVNURUQnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcmVlbmluZ19tZXRhZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19tZXRhZGF0YV9jb25maWcuU2NyZWVuaW5nTWV0YWRhdGFDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uID0gJ09VVEJPVU5EJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXIgPSAnQ0hBSU5BTFlTSVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaXNrX3JhdGluZyA9ICdNRURJVU0nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaXNrX3Njb3JlID0gJzAuOCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zdXJlX3R5cGUgPSAnRElSRUNUJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX2FkZHJlc3MgPSAnMHgxMjMuLi4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0X2FkZHJlc3MgPSAnMHg0NTYuLi4nLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlX2Fzc2V0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfY29uZmlnLkFzc2V0Q29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5mdF90cmFuc2ZlciA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldF90eXBlcyA9IFsiRlVOR0lCTEUiLCJORlQiLCIqIl0sICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZV9hc3NldCA9ICwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdW90ZV9hbW91bnQgPSB7InJhbmdlIjp7Im1pbiI6IjEwMCIsIm1heCI6IjEwMDAwIn19LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VfYW1vdW50ID0geyJyYW5nZSI6eyJtaW4iOiIxMDAiLCJtYXgiOiIxMDAwMCJ9fSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkX2FwcF9hZGRyZXNzID0gZmlyZWJsb2Nrcy5tb2RlbHMuZF9hcHBfYWRkcmVzc19jb25maWcuREFwcEFkZHJlc3NDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsX3doaXRlbGlzdGVkID0gWyJyYWJieS5pbyIsImp1cC5hZyJdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW5hbnRfd2hpdGVsaXN0ZWQgPSBbInVuaXN3YXAuY29tIiwib3BlbnNlYS5pbyJdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzID0gWyIqIl0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcml2YXRpb25fcGF0aCA9IHsicGF0aCI6WzQ0LDAsMCwwLDBdLCJwYXJ0aWFsIjpmYWxzZX0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSAxLCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X21ldGFkYXRhLlBvbGljeU1ldGFkYXRhKAogICAgICAgICAgICAgICAgICAgICAgICBlZGl0ZWRfYnkgPSAndXNlcjEyMycsIAogICAgICAgICAgICAgICAgICAgICAgICBlZGl0ZWRfYXQgPSAnMjAyNC0wMS0xNVQxMDozMDowMFonLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGVkX2J5ID0gJ3VzZXI0NTYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGVkX2F0ID0gJzIwMjQtMDEtMTVUMTE6MDA6MDBaJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeV90eXBlID0gJ1RSQU5TRkVSJywgKSwgKSwKICAgICAgICAgICAgICAgIHZhbGlkYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfdmFsaWRhdGlvbi5Qb2xpY3lWYWxpZGF0aW9uKAogICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBjaGVja19yZXN1bHQgPSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfY2hlY2tfcmVzdWx0LlBvbGljeUNoZWNrUmVzdWx0KAogICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfcnVsZV9jaGVja19yZXN1bHQuUG9saWN5UnVsZUNoZWNrUmVzdWx0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdvaycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3J1bGVfZXJyb3IuUG9saWN5UnVsZUVycm9yKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfbWVzc2FnZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGUgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlX25hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9maWVsZCA9ICdvcGVyYXRvcicsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBQb2xpY3lBbmRWYWxpZGF0aW9uUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_policy_check_result.py b/test/test_policy_check_result.py index 97429549..bc6b010f 100644 --- a/test/test_policy_check_result.py +++ b/test/test_policy_check_result.py @@ -1,79 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.policy_check_result import PolicyCheckResult - - -class TestPolicyCheckResult(unittest.TestCase): - """PolicyCheckResult unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PolicyCheckResult: - """Test PolicyCheckResult - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PolicyCheckResult` - """ - model = PolicyCheckResult() - if include_optional: - return PolicyCheckResult( - errors = 1.337, - results = [ - fireblocks.models.policy_rule_check_result.PolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.policy_rule_error.PolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], ) - ] - ) - else: - return PolicyCheckResult( - errors = 1.337, - results = [ - fireblocks.models.policy_rule_check_result.PolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.policy_rule_error.PolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], ) - ], - ) - """ - - def testPolicyCheckResult(self): - """Test PolicyCheckResult""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9jaGVja19yZXN1bHQgaW1wb3J0IFBvbGljeUNoZWNrUmVzdWx0CgoKY2xhc3MgVGVzdFBvbGljeUNoZWNrUmVzdWx0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlBvbGljeUNoZWNrUmVzdWx0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBQb2xpY3lDaGVja1Jlc3VsdDoKICAgICAgICAiIiJUZXN0IFBvbGljeUNoZWNrUmVzdWx0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFBvbGljeUNoZWNrUmVzdWx0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUG9saWN5Q2hlY2tSZXN1bHQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQb2xpY3lDaGVja1Jlc3VsdCgKICAgICAgICAgICAgICAgIGVycm9ycyA9IDEuMzM3LAogICAgICAgICAgICAgICAgcmVzdWx0cyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfcnVsZV9jaGVja19yZXN1bHQuUG9saWN5UnVsZUNoZWNrUmVzdWx0KAogICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ29rJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9ydWxlX2Vycm9yLlBvbGljeVJ1bGVFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9tZXNzYWdlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGUgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZV9uYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2ZpZWxkID0gJ29wZXJhdG9yJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQb2xpY3lDaGVja1Jlc3VsdCgKICAgICAgICAgICAgICAgIGVycm9ycyA9IDEuMzM3LAogICAgICAgICAgICAgICAgcmVzdWx0cyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfcnVsZV9jaGVja19yZXN1bHQuUG9saWN5UnVsZUNoZWNrUmVzdWx0KAogICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ29rJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9ydWxlX2Vycm9yLlBvbGljeVJ1bGVFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9tZXNzYWdlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGUgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZV9uYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2ZpZWxkID0gJ29wZXJhdG9yJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UG9saWN5Q2hlY2tSZXN1bHQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBQb2xpY3lDaGVja1Jlc3VsdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_policy_currency.py b/test/test_policy_currency.py index 989a1572..20e93f1b 100644 --- a/test/test_policy_currency.py +++ b/test/test_policy_currency.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.policy_currency import PolicyCurrency - - -class TestPolicyCurrency(unittest.TestCase): - """PolicyCurrency unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testPolicyCurrency(self): - """Test PolicyCurrency""" - # inst = PolicyCurrency() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9jdXJyZW5jeSBpbXBvcnQgUG9saWN5Q3VycmVuY3kKCgpjbGFzcyBUZXN0UG9saWN5Q3VycmVuY3kodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUG9saWN5Q3VycmVuY3kgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0UG9saWN5Q3VycmVuY3koc2VsZik6CiAgICAgICAgIiIiVGVzdCBQb2xpY3lDdXJyZW5jeSIiIgogICAgICAgICMgaW5zdCA9IFBvbGljeUN1cnJlbmN5KCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_policy_editor_beta_api.py b/test/test_policy_editor_beta_api.py index 57218055..182cdd87 100644 --- a/test/test_policy_editor_beta_api.py +++ b/test/test_policy_editor_beta_api.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.policy_editor_beta_api import PolicyEditorBetaApi - - -class TestPolicyEditorBetaApi(unittest.TestCase): - """PolicyEditorBetaApi unit test stubs""" - - def setUp(self) -> None: - self.api = PolicyEditorBetaApi() - - def tearDown(self) -> None: - pass - - def test_get_active_policy_legacy(self) -> None: - """Test case for get_active_policy_legacy - - Get the active policy and its validation - """ - pass - - def test_get_draft_legacy(self) -> None: - """Test case for get_draft_legacy - - Get the active draft - """ - pass - - def test_publish_draft_legacy(self) -> None: - """Test case for publish_draft_legacy - - Send publish request for a certain draft id - """ - pass - - def test_publish_policy_rules(self) -> None: - """Test case for publish_policy_rules - - Send publish request for a set of policy rules - """ - pass - - def test_update_draft_legacy(self) -> None: - """Test case for update_draft_legacy - - Update the draft with a new set of rules - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLnBvbGljeV9lZGl0b3JfYmV0YV9hcGkgaW1wb3J0IFBvbGljeUVkaXRvckJldGFBcGkKCgpjbGFzcyBUZXN0UG9saWN5RWRpdG9yQmV0YUFwaSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJQb2xpY3lFZGl0b3JCZXRhQXBpIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKSAtPiBOb25lOgogICAgICAgIHNlbGYuYXBpID0gUG9saWN5RWRpdG9yQmV0YUFwaSgpCgogICAgZGVmIHRlYXJEb3duKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9hY3RpdmVfcG9saWN5X2xlZ2FjeShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2FjdGl2ZV9wb2xpY3lfbGVnYWN5CgogICAgICAgIEdldCB0aGUgYWN0aXZlIHBvbGljeSBhbmQgaXRzIHZhbGlkYXRpb24KICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2RyYWZ0X2xlZ2FjeShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2RyYWZ0X2xlZ2FjeQoKICAgICAgICBHZXQgdGhlIGFjdGl2ZSBkcmFmdAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9wdWJsaXNoX2RyYWZ0X2xlZ2FjeShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgcHVibGlzaF9kcmFmdF9sZWdhY3kKCiAgICAgICAgU2VuZCBwdWJsaXNoIHJlcXVlc3QgZm9yIGEgY2VydGFpbiBkcmFmdCBpZAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9wdWJsaXNoX3BvbGljeV9ydWxlcyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgcHVibGlzaF9wb2xpY3lfcnVsZXMKCiAgICAgICAgU2VuZCBwdWJsaXNoIHJlcXVlc3QgZm9yIGEgc2V0IG9mIHBvbGljeSBydWxlcwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF91cGRhdGVfZHJhZnRfbGVnYWN5KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciB1cGRhdGVfZHJhZnRfbGVnYWN5CgogICAgICAgIFVwZGF0ZSB0aGUgZHJhZnQgd2l0aCBhIG5ldyBzZXQgb2YgcnVsZXMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_policy_editor_v2_beta_api.py b/test/test_policy_editor_v2_beta_api.py index 3b74a8df..56c78e81 100644 --- a/test/test_policy_editor_v2_beta_api.py +++ b/test/test_policy_editor_v2_beta_api.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.policy_editor_v2_beta_api import PolicyEditorV2BetaApi - - -class TestPolicyEditorV2BetaApi(unittest.TestCase): - """PolicyEditorV2BetaApi unit test stubs""" - - def setUp(self) -> None: - self.api = PolicyEditorV2BetaApi() - - def tearDown(self) -> None: - pass - - def test_get_active_policy(self) -> None: - """Test case for get_active_policy - - Get the active policy and its validation by policy type - """ - pass - - def test_get_draft(self) -> None: - """Test case for get_draft - - Get the active draft by policy type - """ - pass - - def test_publish_draft(self) -> None: - """Test case for publish_draft - - Send publish request for a certain draft id - """ - pass - - def test_update_draft(self) -> None: - """Test case for update_draft - - Update the draft with a new set of rules by policy types - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLnBvbGljeV9lZGl0b3JfdjJfYmV0YV9hcGkgaW1wb3J0IFBvbGljeUVkaXRvclYyQmV0YUFwaQoKCmNsYXNzIFRlc3RQb2xpY3lFZGl0b3JWMkJldGFBcGkodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUG9saWN5RWRpdG9yVjJCZXRhQXBpIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKSAtPiBOb25lOgogICAgICAgIHNlbGYuYXBpID0gUG9saWN5RWRpdG9yVjJCZXRhQXBpKCkKCiAgICBkZWYgdGVhckRvd24oc2VsZikgLT4gTm9uZToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2FjdGl2ZV9wb2xpY3koc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9hY3RpdmVfcG9saWN5CgogICAgICAgIEdldCB0aGUgYWN0aXZlIHBvbGljeSBhbmQgaXRzIHZhbGlkYXRpb24gYnkgcG9saWN5IHR5cGUKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2RyYWZ0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfZHJhZnQKCiAgICAgICAgR2V0IHRoZSBhY3RpdmUgZHJhZnQgYnkgcG9saWN5IHR5cGUKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfcHVibGlzaF9kcmFmdChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgcHVibGlzaF9kcmFmdAoKICAgICAgICBTZW5kIHB1Ymxpc2ggcmVxdWVzdCBmb3IgYSBjZXJ0YWluIGRyYWZ0IGlkCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3VwZGF0ZV9kcmFmdChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgdXBkYXRlX2RyYWZ0CgogICAgICAgIFVwZGF0ZSB0aGUgZHJhZnQgd2l0aCBhIG5ldyBzZXQgb2YgcnVsZXMgYnkgcG9saWN5IHR5cGVzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_policy_metadata.py b/test/test_policy_metadata.py index b3b92928..069f932e 100644 --- a/test/test_policy_metadata.py +++ b/test/test_policy_metadata.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.policy_metadata import PolicyMetadata - - -class TestPolicyMetadata(unittest.TestCase): - """PolicyMetadata unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PolicyMetadata: - """Test PolicyMetadata - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PolicyMetadata` - """ - model = PolicyMetadata() - if include_optional: - return PolicyMetadata( - edited_by = 'user123', - edited_at = '2024-01-15T10:30:00Z', - published_by = 'user456', - published_at = '2024-01-15T11:00:00Z', - policy_type = 'TRANSFER' - ) - else: - return PolicyMetadata( - policy_type = 'TRANSFER', - ) - """ - - def testPolicyMetadata(self): - """Test PolicyMetadata""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9tZXRhZGF0YSBpbXBvcnQgUG9saWN5TWV0YWRhdGEKCgpjbGFzcyBUZXN0UG9saWN5TWV0YWRhdGEodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUG9saWN5TWV0YWRhdGEgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFBvbGljeU1ldGFkYXRhOgogICAgICAgICIiIlRlc3QgUG9saWN5TWV0YWRhdGEKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUG9saWN5TWV0YWRhdGFgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBQb2xpY3lNZXRhZGF0YSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFBvbGljeU1ldGFkYXRhKAogICAgICAgICAgICAgICAgZWRpdGVkX2J5ID0gJ3VzZXIxMjMnLAogICAgICAgICAgICAgICAgZWRpdGVkX2F0ID0gJzIwMjQtMDEtMTVUMTA6MzA6MDBaJywKICAgICAgICAgICAgICAgIHB1Ymxpc2hlZF9ieSA9ICd1c2VyNDU2JywKICAgICAgICAgICAgICAgIHB1Ymxpc2hlZF9hdCA9ICcyMDI0LTAxLTE1VDExOjAwOjAwWicsCiAgICAgICAgICAgICAgICBwb2xpY3lfdHlwZSA9ICdUUkFOU0ZFUicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQb2xpY3lNZXRhZGF0YSgKICAgICAgICAgICAgICAgIHBvbGljeV90eXBlID0gJ1RSQU5TRkVSJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RQb2xpY3lNZXRhZGF0YShzZWxmKToKICAgICAgICAiIiJUZXN0IFBvbGljeU1ldGFkYXRhIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_policy_operator.py b/test/test_policy_operator.py index 8df83542..a8ffe708 100644 --- a/test/test_policy_operator.py +++ b/test/test_policy_operator.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.policy_operator import PolicyOperator - - -class TestPolicyOperator(unittest.TestCase): - """PolicyOperator unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testPolicyOperator(self): - """Test PolicyOperator""" - # inst = PolicyOperator() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9vcGVyYXRvciBpbXBvcnQgUG9saWN5T3BlcmF0b3IKCgpjbGFzcyBUZXN0UG9saWN5T3BlcmF0b3IodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUG9saWN5T3BlcmF0b3IgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0UG9saWN5T3BlcmF0b3Ioc2VsZik6CiAgICAgICAgIiIiVGVzdCBQb2xpY3lPcGVyYXRvciIiIgogICAgICAgICMgaW5zdCA9IFBvbGljeU9wZXJhdG9yKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_policy_response.py b/test/test_policy_response.py index 8dbfc95e..11acf81b 100644 --- a/test/test_policy_response.py +++ b/test/test_policy_response.py @@ -1,237 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.policy_response import PolicyResponse - - -class TestPolicyResponse(unittest.TestCase): - """PolicyResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PolicyResponse: - """Test PolicyResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PolicyResponse` - """ - model = PolicyResponse() - if include_optional: - return PolicyResponse( - rules = [ - fireblocks.models.policy_rule.PolicyRule( - name = 'High Value Transfer Policy', - id = 'policy_rule_001', - policy_engine_version = 'v2', - type = 'TRANSFER', - sub_type = 'TRANSFER', - initiator = null, - asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], - operator = 'INCLUDES', ), - source = fireblocks.models.source_config.SourceConfig( - ids = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - address = '0x123...', ) - ], - tags = [ - fireblocks.models.policy_tag.PolicyTag( - id = 'tag_001', ) - ], - operator = 'INCLUDES', - match_from = 'ACCOUNT', ), - destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"}, - account = fireblocks.models.account_config.AccountConfig( - operator = , - match_from = 'ACCOUNT', ), - side = 'BUY', - verdict = fireblocks.models.verdict_config.VerdictConfig( - action = 'ALLOW', - approvers = fireblocks.models.approvers_config.ApproversConfig( - can_initiator_approve = False, - allow_operator_as_authorizer = False, - approval_groups = [{"threshold":2,"users":["user1","user2"]}], ), - designated_signers = fireblocks.models.designated_signers_config.DesignatedSignersConfig( - type = 'SINGLE', - users = ["user1","user2"], - groups = ["group1","group2"], ), ), - amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig( - range = {"min":"100","max":"10000"}, - currency = 'USD', - time_period = fireblocks.models.time_period_config.TimePeriodConfig( - seconds = '86400', - initiator = 'PER_SINGLE_MATCH', - source = 'PER_SINGLE_MATCH', - destination = 'PER_SINGLE_MATCH', ), ), - amount = {"range":{"min":"100","max":"10000"},"currency":"USD"}, - external_descriptor = 'High value transfer policy for institutional clients', - method = null, - is_global_policy = False, - program_call = fireblocks.models.program_call_config.ProgramCallConfig( - allowed_solana_program_calls = 'WHITELISTED', ), - screening_metadata = fireblocks.models.screening_metadata_config.ScreeningMetadataConfig( - direction = 'OUTBOUND', - provider = 'CHAINALYSIS', - risk_rating = 'MEDIUM', - risk_score = '0.8', - exposure_type = 'DIRECT', - category = [ - '' - ], - name = [ - '' - ], - category_id = [ - '' - ], - status = 'COMPLETED', - source_address = '0x123...', - dest_address = '0x456...', ), - quote_asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], ), - base_asset = , - quote_amount = {"range":{"min":"100","max":"10000"}}, - base_amount = {"range":{"min":"100","max":"10000"}}, - d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig( - global_whitelisted = ["rabby.io","jup.ag"], - tenant_whitelisted = ["uniswap.com","opensea.io"], - urls = ["*"], - operator = , ), - derivation_path = {"path":[44,0,0,0,0],"partial":false}, - index = 1, ) - ], - metadata = fireblocks.models.policy_metadata.PolicyMetadata( - edited_by = 'user123', - edited_at = '2024-01-15T10:30:00Z', - published_by = 'user456', - published_at = '2024-01-15T11:00:00Z', - policy_type = 'TRANSFER', ) - ) - else: - return PolicyResponse( - rules = [ - fireblocks.models.policy_rule.PolicyRule( - name = 'High Value Transfer Policy', - id = 'policy_rule_001', - policy_engine_version = 'v2', - type = 'TRANSFER', - sub_type = 'TRANSFER', - initiator = null, - asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], - operator = 'INCLUDES', ), - source = fireblocks.models.source_config.SourceConfig( - ids = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - address = '0x123...', ) - ], - tags = [ - fireblocks.models.policy_tag.PolicyTag( - id = 'tag_001', ) - ], - operator = 'INCLUDES', - match_from = 'ACCOUNT', ), - destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"}, - account = fireblocks.models.account_config.AccountConfig( - operator = , - match_from = 'ACCOUNT', ), - side = 'BUY', - verdict = fireblocks.models.verdict_config.VerdictConfig( - action = 'ALLOW', - approvers = fireblocks.models.approvers_config.ApproversConfig( - can_initiator_approve = False, - allow_operator_as_authorizer = False, - approval_groups = [{"threshold":2,"users":["user1","user2"]}], ), - designated_signers = fireblocks.models.designated_signers_config.DesignatedSignersConfig( - type = 'SINGLE', - users = ["user1","user2"], - groups = ["group1","group2"], ), ), - amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig( - range = {"min":"100","max":"10000"}, - currency = 'USD', - time_period = fireblocks.models.time_period_config.TimePeriodConfig( - seconds = '86400', - initiator = 'PER_SINGLE_MATCH', - source = 'PER_SINGLE_MATCH', - destination = 'PER_SINGLE_MATCH', ), ), - amount = {"range":{"min":"100","max":"10000"},"currency":"USD"}, - external_descriptor = 'High value transfer policy for institutional clients', - method = null, - is_global_policy = False, - program_call = fireblocks.models.program_call_config.ProgramCallConfig( - allowed_solana_program_calls = 'WHITELISTED', ), - screening_metadata = fireblocks.models.screening_metadata_config.ScreeningMetadataConfig( - direction = 'OUTBOUND', - provider = 'CHAINALYSIS', - risk_rating = 'MEDIUM', - risk_score = '0.8', - exposure_type = 'DIRECT', - category = [ - '' - ], - name = [ - '' - ], - category_id = [ - '' - ], - status = 'COMPLETED', - source_address = '0x123...', - dest_address = '0x456...', ), - quote_asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], ), - base_asset = , - quote_amount = {"range":{"min":"100","max":"10000"}}, - base_amount = {"range":{"min":"100","max":"10000"}}, - d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig( - global_whitelisted = ["rabby.io","jup.ag"], - tenant_whitelisted = ["uniswap.com","opensea.io"], - urls = ["*"], - operator = , ), - derivation_path = {"path":[44,0,0,0,0],"partial":false}, - index = 1, ) - ], - metadata = fireblocks.models.policy_metadata.PolicyMetadata( - edited_by = 'user123', - edited_at = '2024-01-15T10:30:00Z', - published_by = 'user456', - published_at = '2024-01-15T11:00:00Z', - policy_type = 'TRANSFER', ), - ) - """ - - def testPolicyResponse(self): - """Test PolicyResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9yZXNwb25zZSBpbXBvcnQgUG9saWN5UmVzcG9uc2UKCgpjbGFzcyBUZXN0UG9saWN5UmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUG9saWN5UmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFBvbGljeVJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgUG9saWN5UmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUG9saWN5UmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBQb2xpY3lSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFBvbGljeVJlc3BvbnNlKAogICAgICAgICAgICAgICAgcnVsZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3J1bGUuUG9saWN5UnVsZSgKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdIaWdoIFZhbHVlIFRyYW5zZmVyIFBvbGljeScsIAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdwb2xpY3lfcnVsZV8wMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5X2VuZ2luZV92ZXJzaW9uID0gJ3YyJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVFJBTlNGRVInLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3ViX3R5cGUgPSAnVFJBTlNGRVInLCAKICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhdG9yID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfY29uZmlnLkFzc2V0Q29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmZ0X3RyYW5zZmVyID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfdHlwZXMgPSBbIkZVTkdJQkxFIiwiTkZUIiwiKiJdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gJ0lOQ0xVREVTJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9IGZpcmVibG9ja3MubW9kZWxzLnNvdXJjZV9jb25maWcuU291cmNlQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaWRlbnRpZmllci5BY2NvdW50SWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdhY2NvdW50MTIzJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHgxMjMuLi4nLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV90YWcuUG9saWN5VGFnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICd0YWdfMDAxJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAnSU5DTFVERVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoX2Zyb20gPSAnQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IHsidHlwZSI6WyJFWFRFUk5BTCJdLCJvcGVyYXRvciI6IklOQ0xVREVTIiwiYWRkcmVzc1R5cGUiOiJXSElURUxJU1RFRCJ9LCAKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfY29uZmlnLkFjY291bnRDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaF9mcm9tID0gJ0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgc2lkZSA9ICdCVVknLCAKICAgICAgICAgICAgICAgICAgICAgICAgdmVyZGljdCA9IGZpcmVibG9ja3MubW9kZWxzLnZlcmRpY3RfY29uZmlnLlZlcmRpY3RDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUxMT1cnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmVycyA9IGZpcmVibG9ja3MubW9kZWxzLmFwcHJvdmVyc19jb25maWcuQXBwcm92ZXJzQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbl9pbml0aWF0b3JfYXBwcm92ZSA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd19vcGVyYXRvcl9hc19hdXRob3JpemVyID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmFsX2dyb3VwcyA9IFt7InRocmVzaG9sZCI6MiwidXNlcnMiOlsidXNlcjEiLCJ1c2VyMiJdfV0sICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzaWduYXRlZF9zaWduZXJzID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzaWduYXRlZF9zaWduZXJzX2NvbmZpZy5EZXNpZ25hdGVkU2lnbmVyc0NvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1NJTkdMRScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzID0gWyJ1c2VyMSIsInVzZXIyIl0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwcyA9IFsiZ3JvdXAxIiwiZ3JvdXAyIl0sICksICksIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfb3Zlcl90aW1lID0gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X292ZXJfdGltZV9jb25maWcuQW1vdW50T3ZlclRpbWVDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZSA9IHsibWluIjoiMTAwIiwibWF4IjoiMTAwMDAifSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeSA9ICdVU0QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVfcGVyaW9kID0gZmlyZWJsb2Nrcy5tb2RlbHMudGltZV9wZXJpb2RfY29uZmlnLlRpbWVQZXJpb2RDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kcyA9ICc4NjQwMCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYXRvciA9ICdQRVJfU0lOR0xFX01BVENIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9ICdQRVJfU0lOR0xFX01BVENIJywgKSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IHsicmFuZ2UiOnsibWluIjoiMTAwIiwibWF4IjoiMTAwMDAifSwiY3VycmVuY3kiOiJVU0QifSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX2Rlc2NyaXB0b3IgPSAnSGlnaCB2YWx1ZSB0cmFuc2ZlciBwb2xpY3kgZm9yIGluc3RpdHV0aW9uYWwgY2xpZW50cycsIAogICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgaXNfZ2xvYmFsX3BvbGljeSA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbV9jYWxsID0gZmlyZWJsb2Nrcy5tb2RlbHMucHJvZ3JhbV9jYWxsX2NvbmZpZy5Qcm9ncmFtQ2FsbENvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWRfc29sYW5hX3Byb2dyYW1fY2FsbHMgPSAnV0hJVEVMSVNURUQnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgc2NyZWVuaW5nX21ldGFkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX21ldGFkYXRhX2NvbmZpZy5TY3JlZW5pbmdNZXRhZGF0YUNvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdPVVRCT1VORCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXIgPSAnQ0hBSU5BTFlTSVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpc2tfcmF0aW5nID0gJ01FRElVTScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlza19zY29yZSA9ICcwLjgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zdXJlX3R5cGUgPSAnRElSRUNUJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzID0gJzB4MTIzLi4uJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0X2FkZHJlc3MgPSAnMHg0NTYuLi4nLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVfYXNzZXQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9jb25maWcuQXNzZXRDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZnRfdHJhbnNmZXIgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldF90eXBlcyA9IFsiRlVOR0lCTEUiLCJORlQiLCIqIl0sICksIAogICAgICAgICAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gLCAKICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVfYW1vdW50ID0geyJyYW5nZSI6eyJtaW4iOiIxMDAiLCJtYXgiOiIxMDAwMCJ9fSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VfYW1vdW50ID0geyJyYW5nZSI6eyJtaW4iOiIxMDAiLCJtYXgiOiIxMDAwMCJ9fSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRfYXBwX2FkZHJlc3MgPSBmaXJlYmxvY2tzLm1vZGVscy5kX2FwcF9hZGRyZXNzX2NvbmZpZy5EQXBwQWRkcmVzc0NvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbF93aGl0ZWxpc3RlZCA9IFsicmFiYnkuaW8iLCJqdXAuYWciXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW5hbnRfd2hpdGVsaXN0ZWQgPSBbInVuaXN3YXAuY29tIiwib3BlbnNlYS5pbyJdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHMgPSBbIioiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlcml2YXRpb25fcGF0aCA9IHsicGF0aCI6WzQ0LDAsMCwwLDBdLCJwYXJ0aWFsIjpmYWxzZX0sIAogICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IDEsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgbWV0YWRhdGEgPSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfbWV0YWRhdGEuUG9saWN5TWV0YWRhdGEoCiAgICAgICAgICAgICAgICAgICAgZWRpdGVkX2J5ID0gJ3VzZXIxMjMnLCAKICAgICAgICAgICAgICAgICAgICBlZGl0ZWRfYXQgPSAnMjAyNC0wMS0xNVQxMDozMDowMFonLCAKICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZWRfYnkgPSAndXNlcjQ1NicsIAogICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlZF9hdCA9ICcyMDI0LTAxLTE1VDExOjAwOjAwWicsIAogICAgICAgICAgICAgICAgICAgIHBvbGljeV90eXBlID0gJ1RSQU5TRkVSJywgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFBvbGljeVJlc3BvbnNlKAogICAgICAgICAgICAgICAgcnVsZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3J1bGUuUG9saWN5UnVsZSgKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdIaWdoIFZhbHVlIFRyYW5zZmVyIFBvbGljeScsIAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdwb2xpY3lfcnVsZV8wMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5X2VuZ2luZV92ZXJzaW9uID0gJ3YyJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVFJBTlNGRVInLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3ViX3R5cGUgPSAnVFJBTlNGRVInLCAKICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhdG9yID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfY29uZmlnLkFzc2V0Q29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmZ0X3RyYW5zZmVyID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfdHlwZXMgPSBbIkZVTkdJQkxFIiwiTkZUIiwiKiJdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gJ0lOQ0xVREVTJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9IGZpcmVibG9ja3MubW9kZWxzLnNvdXJjZV9jb25maWcuU291cmNlQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaWRlbnRpZmllci5BY2NvdW50SWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdhY2NvdW50MTIzJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHgxMjMuLi4nLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV90YWcuUG9saWN5VGFnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICd0YWdfMDAxJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAnSU5DTFVERVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoX2Zyb20gPSAnQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IHsidHlwZSI6WyJFWFRFUk5BTCJdLCJvcGVyYXRvciI6IklOQ0xVREVTIiwiYWRkcmVzc1R5cGUiOiJXSElURUxJU1RFRCJ9LCAKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfY29uZmlnLkFjY291bnRDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaF9mcm9tID0gJ0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgc2lkZSA9ICdCVVknLCAKICAgICAgICAgICAgICAgICAgICAgICAgdmVyZGljdCA9IGZpcmVibG9ja3MubW9kZWxzLnZlcmRpY3RfY29uZmlnLlZlcmRpY3RDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUxMT1cnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmVycyA9IGZpcmVibG9ja3MubW9kZWxzLmFwcHJvdmVyc19jb25maWcuQXBwcm92ZXJzQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbl9pbml0aWF0b3JfYXBwcm92ZSA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd19vcGVyYXRvcl9hc19hdXRob3JpemVyID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmFsX2dyb3VwcyA9IFt7InRocmVzaG9sZCI6MiwidXNlcnMiOlsidXNlcjEiLCJ1c2VyMiJdfV0sICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzaWduYXRlZF9zaWduZXJzID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzaWduYXRlZF9zaWduZXJzX2NvbmZpZy5EZXNpZ25hdGVkU2lnbmVyc0NvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1NJTkdMRScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzID0gWyJ1c2VyMSIsInVzZXIyIl0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwcyA9IFsiZ3JvdXAxIiwiZ3JvdXAyIl0sICksICksIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfb3Zlcl90aW1lID0gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X292ZXJfdGltZV9jb25maWcuQW1vdW50T3ZlclRpbWVDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZSA9IHsibWluIjoiMTAwIiwibWF4IjoiMTAwMDAifSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeSA9ICdVU0QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVfcGVyaW9kID0gZmlyZWJsb2Nrcy5tb2RlbHMudGltZV9wZXJpb2RfY29uZmlnLlRpbWVQZXJpb2RDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kcyA9ICc4NjQwMCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYXRvciA9ICdQRVJfU0lOR0xFX01BVENIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9ICdQRVJfU0lOR0xFX01BVENIJywgKSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IHsicmFuZ2UiOnsibWluIjoiMTAwIiwibWF4IjoiMTAwMDAifSwiY3VycmVuY3kiOiJVU0QifSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX2Rlc2NyaXB0b3IgPSAnSGlnaCB2YWx1ZSB0cmFuc2ZlciBwb2xpY3kgZm9yIGluc3RpdHV0aW9uYWwgY2xpZW50cycsIAogICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgaXNfZ2xvYmFsX3BvbGljeSA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbV9jYWxsID0gZmlyZWJsb2Nrcy5tb2RlbHMucHJvZ3JhbV9jYWxsX2NvbmZpZy5Qcm9ncmFtQ2FsbENvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWRfc29sYW5hX3Byb2dyYW1fY2FsbHMgPSAnV0hJVEVMSVNURUQnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgc2NyZWVuaW5nX21ldGFkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX21ldGFkYXRhX2NvbmZpZy5TY3JlZW5pbmdNZXRhZGF0YUNvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdPVVRCT1VORCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXIgPSAnQ0hBSU5BTFlTSVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpc2tfcmF0aW5nID0gJ01FRElVTScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlza19zY29yZSA9ICcwLjgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zdXJlX3R5cGUgPSAnRElSRUNUJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzID0gJzB4MTIzLi4uJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0X2FkZHJlc3MgPSAnMHg0NTYuLi4nLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVfYXNzZXQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9jb25maWcuQXNzZXRDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZnRfdHJhbnNmZXIgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldF90eXBlcyA9IFsiRlVOR0lCTEUiLCJORlQiLCIqIl0sICksIAogICAgICAgICAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gLCAKICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVfYW1vdW50ID0geyJyYW5nZSI6eyJtaW4iOiIxMDAiLCJtYXgiOiIxMDAwMCJ9fSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VfYW1vdW50ID0geyJyYW5nZSI6eyJtaW4iOiIxMDAiLCJtYXgiOiIxMDAwMCJ9fSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRfYXBwX2FkZHJlc3MgPSBmaXJlYmxvY2tzLm1vZGVscy5kX2FwcF9hZGRyZXNzX2NvbmZpZy5EQXBwQWRkcmVzc0NvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbF93aGl0ZWxpc3RlZCA9IFsicmFiYnkuaW8iLCJqdXAuYWciXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW5hbnRfd2hpdGVsaXN0ZWQgPSBbInVuaXN3YXAuY29tIiwib3BlbnNlYS5pbyJdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHMgPSBbIioiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlcml2YXRpb25fcGF0aCA9IHsicGF0aCI6WzQ0LDAsMCwwLDBdLCJwYXJ0aWFsIjpmYWxzZX0sIAogICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IDEsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgbWV0YWRhdGEgPSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfbWV0YWRhdGEuUG9saWN5TWV0YWRhdGEoCiAgICAgICAgICAgICAgICAgICAgZWRpdGVkX2J5ID0gJ3VzZXIxMjMnLCAKICAgICAgICAgICAgICAgICAgICBlZGl0ZWRfYXQgPSAnMjAyNC0wMS0xNVQxMDozMDowMFonLCAKICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZWRfYnkgPSAndXNlcjQ1NicsIAogICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlZF9hdCA9ICcyMDI0LTAxLTE1VDExOjAwOjAwWicsIAogICAgICAgICAgICAgICAgICAgIHBvbGljeV90eXBlID0gJ1RSQU5TRkVSJywgKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RQb2xpY3lSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFBvbGljeVJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_policy_rule.py b/test/test_policy_rule.py index cba8758b..6beb931c 100644 --- a/test/test_policy_rule.py +++ b/test/test_policy_rule.py @@ -1,203 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.policy_rule import PolicyRule - - -class TestPolicyRule(unittest.TestCase): - """PolicyRule unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PolicyRule: - """Test PolicyRule - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PolicyRule` - """ - model = PolicyRule() - if include_optional: - return PolicyRule( - name = 'High Value Transfer Policy', - id = 'policy_rule_001', - policy_engine_version = 'v2', - type = 'TRANSFER', - sub_type = 'TRANSFER', - initiator = None, - asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], - operator = 'INCLUDES', ), - source = fireblocks.models.source_config.SourceConfig( - type = ["VAULT","UNMANAGED"], - sub_type = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - address = '0x123...', ) - ], - ids = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - address = '0x123...', ) - ], - tags = [ - fireblocks.models.policy_tag.PolicyTag( - id = 'tag_001', ) - ], - operator = 'INCLUDES', - match_from = 'ACCOUNT', ), - destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"}, - account = fireblocks.models.account_config.AccountConfig( - type = [ - 'VAULT' - ], - sub_type = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - address = '0x123...', ) - ], - ids = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - address = '0x123...', ) - ], - tags = [ - fireblocks.models.policy_tag.PolicyTag( - id = 'tag_001', ) - ], - operator = 'INCLUDES', - match_from = 'ACCOUNT', ), - side = 'BUY', - verdict = fireblocks.models.verdict_config.VerdictConfig( - action = 'ALLOW', - approvers = fireblocks.models.approvers_config.ApproversConfig( - can_initiator_approve = False, - operator = 'AND', - allow_operator_as_authorizer = False, - approval_groups = [{"threshold":2,"users":["user1","user2"]}], ), - designated_signers = fireblocks.models.designated_signers_config.DesignatedSignersConfig( - type = 'SINGLE', - users = ["user1","user2"], - groups = ["group1","group2"], ), ), - amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig( - range = {"min":"100","max":"10000"}, - currency = 'USD', - time_period = fireblocks.models.time_period_config.TimePeriodConfig( - seconds = '86400', - initiator = 'PER_SINGLE_MATCH', - source = 'PER_SINGLE_MATCH', - destination = 'PER_SINGLE_MATCH', ), ), - amount = {"range":{"min":"100","max":"10000"},"currency":"USD"}, - external_descriptor = 'High value transfer policy for institutional clients', - method = None, - is_global_policy = False, - program_call = fireblocks.models.program_call_config.ProgramCallConfig( - allowed_solana_program_calls = 'WHITELISTED', ), - screening_metadata = fireblocks.models.screening_metadata_config.ScreeningMetadataConfig( - direction = 'OUTBOUND', - provider = 'CHAINALYSIS', - risk_rating = 'MEDIUM', - risk_score = '0.8', - exposure_type = 'DIRECT', - category = [ - '' - ], - name = [ - '' - ], - category_id = [ - '' - ], - status = 'COMPLETED', - source_address = '0x123...', - dest_address = '0x456...', ), - quote_asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], - operator = 'INCLUDES', ), - base_asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], - operator = 'INCLUDES', ), - quote_amount = {"range":{"min":"100","max":"10000"}}, - base_amount = {"range":{"min":"100","max":"10000"}}, - d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig( - global_whitelisted = ["rabby.io","jup.ag"], - tenant_whitelisted = ["uniswap.com","opensea.io"], - urls = ["*"], - operator = 'INCLUDES', ), - derivation_path = {"path":[44,0,0,0,0],"partial":false}, - index = 1 - ) - else: - return PolicyRule( - name = 'High Value Transfer Policy', - id = 'policy_rule_001', - policy_engine_version = 'v2', - type = 'TRANSFER', - initiator = None, - source = fireblocks.models.source_config.SourceConfig( - type = ["VAULT","UNMANAGED"], - sub_type = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - address = '0x123...', ) - ], - ids = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - address = '0x123...', ) - ], - tags = [ - fireblocks.models.policy_tag.PolicyTag( - id = 'tag_001', ) - ], - operator = 'INCLUDES', - match_from = 'ACCOUNT', ), - verdict = fireblocks.models.verdict_config.VerdictConfig( - action = 'ALLOW', - approvers = fireblocks.models.approvers_config.ApproversConfig( - can_initiator_approve = False, - operator = 'AND', - allow_operator_as_authorizer = False, - approval_groups = [{"threshold":2,"users":["user1","user2"]}], ), - designated_signers = fireblocks.models.designated_signers_config.DesignatedSignersConfig( - type = 'SINGLE', - users = ["user1","user2"], - groups = ["group1","group2"], ), ), - ) - """ - - def testPolicyRule(self): - """Test PolicyRule""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9ydWxlIGltcG9ydCBQb2xpY3lSdWxlCgoKY2xhc3MgVGVzdFBvbGljeVJ1bGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUG9saWN5UnVsZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUG9saWN5UnVsZToKICAgICAgICAiIiJUZXN0IFBvbGljeVJ1bGUKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUG9saWN5UnVsZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFBvbGljeVJ1bGUoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQb2xpY3lSdWxlKAogICAgICAgICAgICAgICAgbmFtZSA9ICdIaWdoIFZhbHVlIFRyYW5zZmVyIFBvbGljeScsCiAgICAgICAgICAgICAgICBpZCA9ICdwb2xpY3lfcnVsZV8wMDEnLAogICAgICAgICAgICAgICAgcG9saWN5X2VuZ2luZV92ZXJzaW9uID0gJ3YyJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnVFJBTlNGRVInLAogICAgICAgICAgICAgICAgc3ViX3R5cGUgPSAnVFJBTlNGRVInLAogICAgICAgICAgICAgICAgaW5pdGlhdG9yID0gTm9uZSwKICAgICAgICAgICAgICAgIGFzc2V0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfY29uZmlnLkFzc2V0Q29uZmlnKAogICAgICAgICAgICAgICAgICAgIG5mdF90cmFuc2ZlciA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICBhc3NldF90eXBlcyA9IFsiRlVOR0lCTEUiLCJORlQiLCIqIl0sIAogICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gJ0lOQ0xVREVTJywgKSwKICAgICAgICAgICAgICAgIHNvdXJjZSA9IGZpcmVibG9ja3MubW9kZWxzLnNvdXJjZV9jb25maWcuU291cmNlQ29uZmlnKAogICAgICAgICAgICAgICAgICAgIHR5cGUgPSBbIlZBVUxUIiwiVU5NQU5BR0VEIl0sIAogICAgICAgICAgICAgICAgICAgIHN1Yl90eXBlID0gWwogICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2lkZW50aWZpZXIuQWNjb3VudElkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdhY2NvdW50MTIzJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzB4MTIzLi4uJywgKQogICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICBpZHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaWRlbnRpZmllci5BY2NvdW50SWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJ2FjY291bnQxMjMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHgxMjMuLi4nLCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgIHRhZ3MgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV90YWcuUG9saWN5VGFnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAndGFnXzAwMScsICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAnSU5DTFVERVMnLCAKICAgICAgICAgICAgICAgICAgICBtYXRjaF9mcm9tID0gJ0FDQ09VTlQnLCApLAogICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSB7InR5cGUiOlsiRVhURVJOQUwiXSwib3BlcmF0b3IiOiJJTkNMVURFUyIsImFkZHJlc3NUeXBlIjoiV0hJVEVMSVNURUQifSwKICAgICAgICAgICAgICAgIGFjY291bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2NvbmZpZy5BY2NvdW50Q29uZmlnKAogICAgICAgICAgICAgICAgICAgIHR5cGUgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICdWQVVMVCcKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgc3ViX3R5cGUgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaWRlbnRpZmllci5BY2NvdW50SWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJ2FjY291bnQxMjMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHgxMjMuLi4nLCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgIGlkcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9pZGVudGlmaWVyLkFjY291bnRJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnYWNjb3VudDEyMycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweDEyMy4uLicsICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgdGFncyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3RhZy5Qb2xpY3lUYWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICd0YWdfMDAxJywgKQogICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICdJTkNMVURFUycsIAogICAgICAgICAgICAgICAgICAgIG1hdGNoX2Zyb20gPSAnQUNDT1VOVCcsICksCiAgICAgICAgICAgICAgICBzaWRlID0gJ0JVWScsCiAgICAgICAgICAgICAgICB2ZXJkaWN0ID0gZmlyZWJsb2Nrcy5tb2RlbHMudmVyZGljdF9jb25maWcuVmVyZGljdENvbmZpZygKICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUxMT1cnLCAKICAgICAgICAgICAgICAgICAgICBhcHByb3ZlcnMgPSBmaXJlYmxvY2tzLm1vZGVscy5hcHByb3ZlcnNfY29uZmlnLkFwcHJvdmVyc0NvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgY2FuX2luaXRpYXRvcl9hcHByb3ZlID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICdBTkQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dfb3BlcmF0b3JfYXNfYXV0aG9yaXplciA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92YWxfZ3JvdXBzID0gW3sidGhyZXNob2xkIjoyLCJ1c2VycyI6WyJ1c2VyMSIsInVzZXIyIl19XSwgKSwgCiAgICAgICAgICAgICAgICAgICAgZGVzaWduYXRlZF9zaWduZXJzID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzaWduYXRlZF9zaWduZXJzX2NvbmZpZy5EZXNpZ25hdGVkU2lnbmVyc0NvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdTSU5HTEUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdXNlcnMgPSBbInVzZXIxIiwidXNlcjIiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwcyA9IFsiZ3JvdXAxIiwiZ3JvdXAyIl0sICksICksCiAgICAgICAgICAgICAgICBhbW91bnRfb3Zlcl90aW1lID0gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X292ZXJfdGltZV9jb25maWcuQW1vdW50T3ZlclRpbWVDb25maWcoCiAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSB7Im1pbiI6IjEwMCIsIm1heCI6IjEwMDAwIn0sIAogICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5ID0gJ1VTRCcsIAogICAgICAgICAgICAgICAgICAgIHRpbWVfcGVyaW9kID0gZmlyZWJsb2Nrcy5tb2RlbHMudGltZV9wZXJpb2RfY29uZmlnLlRpbWVQZXJpb2RDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZHMgPSAnODY0MDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhdG9yID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSAnUEVSX1NJTkdMRV9NQVRDSCcsICksICksCiAgICAgICAgICAgICAgICBhbW91bnQgPSB7InJhbmdlIjp7Im1pbiI6IjEwMCIsIm1heCI6IjEwMDAwIn0sImN1cnJlbmN5IjoiVVNEIn0sCiAgICAgICAgICAgICAgICBleHRlcm5hbF9kZXNjcmlwdG9yID0gJ0hpZ2ggdmFsdWUgdHJhbnNmZXIgcG9saWN5IGZvciBpbnN0aXR1dGlvbmFsIGNsaWVudHMnLAogICAgICAgICAgICAgICAgbWV0aG9kID0gTm9uZSwKICAgICAgICAgICAgICAgIGlzX2dsb2JhbF9wb2xpY3kgPSBGYWxzZSwKICAgICAgICAgICAgICAgIHByb2dyYW1fY2FsbCA9IGZpcmVibG9ja3MubW9kZWxzLnByb2dyYW1fY2FsbF9jb25maWcuUHJvZ3JhbUNhbGxDb25maWcoCiAgICAgICAgICAgICAgICAgICAgYWxsb3dlZF9zb2xhbmFfcHJvZ3JhbV9jYWxscyA9ICdXSElURUxJU1RFRCcsICksCiAgICAgICAgICAgICAgICBzY3JlZW5pbmdfbWV0YWRhdGEgPSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfbWV0YWRhdGFfY29uZmlnLlNjcmVlbmluZ01ldGFkYXRhQ29uZmlnKAogICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdPVVRCT1VORCcsIAogICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyID0gJ0NIQUlOQUxZU0lTJywgCiAgICAgICAgICAgICAgICAgICAgcmlza19yYXRpbmcgPSAnTUVESVVNJywgCiAgICAgICAgICAgICAgICAgICAgcmlza19zY29yZSA9ICcwLjgnLCAKICAgICAgICAgICAgICAgICAgICBleHBvc3VyZV90eXBlID0gJ0RJUkVDVCcsIAogICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gWwogICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICBuYW1lID0gWwogICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZCA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ0NPTVBMRVRFRCcsIAogICAgICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzID0gJzB4MTIzLi4uJywgCiAgICAgICAgICAgICAgICAgICAgZGVzdF9hZGRyZXNzID0gJzB4NDU2Li4uJywgKSwKICAgICAgICAgICAgICAgIHF1b3RlX2Fzc2V0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfY29uZmlnLkFzc2V0Q29uZmlnKAogICAgICAgICAgICAgICAgICAgIG5mdF90cmFuc2ZlciA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICBhc3NldF90eXBlcyA9IFsiRlVOR0lCTEUiLCJORlQiLCIqIl0sIAogICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gJ0lOQ0xVREVTJywgKSwKICAgICAgICAgICAgICAgIGJhc2VfYXNzZXQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9jb25maWcuQXNzZXRDb25maWcoCiAgICAgICAgICAgICAgICAgICAgbmZ0X3RyYW5zZmVyID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0X3R5cGVzID0gWyJGVU5HSUJMRSIsIk5GVCIsIioiXSwgCiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAnSU5DTFVERVMnLCApLAogICAgICAgICAgICAgICAgcXVvdGVfYW1vdW50ID0geyJyYW5nZSI6eyJtaW4iOiIxMDAiLCJtYXgiOiIxMDAwMCJ9fSwKICAgICAgICAgICAgICAgIGJhc2VfYW1vdW50ID0geyJyYW5nZSI6eyJtaW4iOiIxMDAiLCJtYXgiOiIxMDAwMCJ9fSwKICAgICAgICAgICAgICAgIGRfYXBwX2FkZHJlc3MgPSBmaXJlYmxvY2tzLm1vZGVscy5kX2FwcF9hZGRyZXNzX2NvbmZpZy5EQXBwQWRkcmVzc0NvbmZpZygKICAgICAgICAgICAgICAgICAgICBnbG9iYWxfd2hpdGVsaXN0ZWQgPSBbInJhYmJ5LmlvIiwianVwLmFnIl0sIAogICAgICAgICAgICAgICAgICAgIHRlbmFudF93aGl0ZWxpc3RlZCA9IFsidW5pc3dhcC5jb20iLCJvcGVuc2VhLmlvIl0sIAogICAgICAgICAgICAgICAgICAgIHVybHMgPSBbIioiXSwgCiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAnSU5DTFVERVMnLCApLAogICAgICAgICAgICAgICAgZGVyaXZhdGlvbl9wYXRoID0geyJwYXRoIjpbNDQsMCwwLDAsMF0sInBhcnRpYWwiOmZhbHNlfSwKICAgICAgICAgICAgICAgIGluZGV4ID0gMQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFBvbGljeVJ1bGUoCiAgICAgICAgICAgICAgICBuYW1lID0gJ0hpZ2ggVmFsdWUgVHJhbnNmZXIgUG9saWN5JywKICAgICAgICAgICAgICAgIGlkID0gJ3BvbGljeV9ydWxlXzAwMScsCiAgICAgICAgICAgICAgICBwb2xpY3lfZW5naW5lX3ZlcnNpb24gPSAndjInLAogICAgICAgICAgICAgICAgdHlwZSA9ICdUUkFOU0ZFUicsCiAgICAgICAgICAgICAgICBpbml0aWF0b3IgPSBOb25lLAogICAgICAgICAgICAgICAgc291cmNlID0gZmlyZWJsb2Nrcy5tb2RlbHMuc291cmNlX2NvbmZpZy5Tb3VyY2VDb25maWcoCiAgICAgICAgICAgICAgICAgICAgdHlwZSA9IFsiVkFVTFQiLCJVTk1BTkFHRUQiXSwgCiAgICAgICAgICAgICAgICAgICAgc3ViX3R5cGUgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaWRlbnRpZmllci5BY2NvdW50SWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJ2FjY291bnQxMjMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHgxMjMuLi4nLCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgIGlkcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudF9pZGVudGlmaWVyLkFjY291bnRJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnYWNjb3VudDEyMycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweDEyMy4uLicsICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgdGFncyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3RhZy5Qb2xpY3lUYWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICd0YWdfMDAxJywgKQogICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICdJTkNMVURFUycsIAogICAgICAgICAgICAgICAgICAgIG1hdGNoX2Zyb20gPSAnQUNDT1VOVCcsICksCiAgICAgICAgICAgICAgICB2ZXJkaWN0ID0gZmlyZWJsb2Nrcy5tb2RlbHMudmVyZGljdF9jb25maWcuVmVyZGljdENvbmZpZygKICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUxMT1cnLCAKICAgICAgICAgICAgICAgICAgICBhcHByb3ZlcnMgPSBmaXJlYmxvY2tzLm1vZGVscy5hcHByb3ZlcnNfY29uZmlnLkFwcHJvdmVyc0NvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgY2FuX2luaXRpYXRvcl9hcHByb3ZlID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICdBTkQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dfb3BlcmF0b3JfYXNfYXV0aG9yaXplciA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92YWxfZ3JvdXBzID0gW3sidGhyZXNob2xkIjoyLCJ1c2VycyI6WyJ1c2VyMSIsInVzZXIyIl19XSwgKSwgCiAgICAgICAgICAgICAgICAgICAgZGVzaWduYXRlZF9zaWduZXJzID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzaWduYXRlZF9zaWduZXJzX2NvbmZpZy5EZXNpZ25hdGVkU2lnbmVyc0NvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdTSU5HTEUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdXNlcnMgPSBbInVzZXIxIiwidXNlcjIiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwcyA9IFsiZ3JvdXAxIiwiZ3JvdXAyIl0sICksICksCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UG9saWN5UnVsZShzZWxmKToKICAgICAgICAiIiJUZXN0IFBvbGljeVJ1bGUiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_policy_rule_check_result.py b/test/test_policy_rule_check_result.py index b4ae10a4..748cea5e 100644 --- a/test/test_policy_rule_check_result.py +++ b/test/test_policy_rule_check_result.py @@ -1,71 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.policy_rule_check_result import PolicyRuleCheckResult - - -class TestPolicyRuleCheckResult(unittest.TestCase): - """PolicyRuleCheckResult unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PolicyRuleCheckResult: - """Test PolicyRuleCheckResult - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PolicyRuleCheckResult` - """ - model = PolicyRuleCheckResult() - if include_optional: - return PolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.policy_rule_error.PolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ] - ) - else: - return PolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.policy_rule_error.PolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], - ) - """ - - def testPolicyRuleCheckResult(self): - """Test PolicyRuleCheckResult""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9ydWxlX2NoZWNrX3Jlc3VsdCBpbXBvcnQgUG9saWN5UnVsZUNoZWNrUmVzdWx0CgoKY2xhc3MgVGVzdFBvbGljeVJ1bGVDaGVja1Jlc3VsdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJQb2xpY3lSdWxlQ2hlY2tSZXN1bHQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFBvbGljeVJ1bGVDaGVja1Jlc3VsdDoKICAgICAgICAiIiJUZXN0IFBvbGljeVJ1bGVDaGVja1Jlc3VsdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBQb2xpY3lSdWxlQ2hlY2tSZXN1bHRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBQb2xpY3lSdWxlQ2hlY2tSZXN1bHQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQb2xpY3lSdWxlQ2hlY2tSZXN1bHQoCiAgICAgICAgICAgICAgICBpbmRleCA9IDEuMzM3LAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ29rJywKICAgICAgICAgICAgICAgIGVycm9ycyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfcnVsZV9lcnJvci5Qb2xpY3lSdWxlRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX21lc3NhZ2UgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGUgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGVfbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfZmllbGQgPSAnb3BlcmF0b3InLCApCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFBvbGljeVJ1bGVDaGVja1Jlc3VsdCgKICAgICAgICAgICAgICAgIGluZGV4ID0gMS4zMzcsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnb2snLAogICAgICAgICAgICAgICAgZXJyb3JzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9ydWxlX2Vycm9yLlBvbGljeVJ1bGVFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfbWVzc2FnZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZSA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZV9uYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9maWVsZCA9ICdvcGVyYXRvcicsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFBvbGljeVJ1bGVDaGVja1Jlc3VsdChzZWxmKToKICAgICAgICAiIiJUZXN0IFBvbGljeVJ1bGVDaGVja1Jlc3VsdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_policy_rule_error.py b/test/test_policy_rule_error.py index e607024e..879a7b09 100644 --- a/test/test_policy_rule_error.py +++ b/test/test_policy_rule_error.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.policy_rule_error import PolicyRuleError - - -class TestPolicyRuleError(unittest.TestCase): - """PolicyRuleError unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PolicyRuleError: - """Test PolicyRuleError - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PolicyRuleError` - """ - model = PolicyRuleError() - if include_optional: - return PolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator' - ) - else: - return PolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', - ) - """ - - def testPolicyRuleError(self): - """Test PolicyRuleError""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9ydWxlX2Vycm9yIGltcG9ydCBQb2xpY3lSdWxlRXJyb3IKCgpjbGFzcyBUZXN0UG9saWN5UnVsZUVycm9yKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlBvbGljeVJ1bGVFcnJvciB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUG9saWN5UnVsZUVycm9yOgogICAgICAgICIiIlRlc3QgUG9saWN5UnVsZUVycm9yCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFBvbGljeVJ1bGVFcnJvcmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFBvbGljeVJ1bGVFcnJvcigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFBvbGljeVJ1bGVFcnJvcigKICAgICAgICAgICAgICAgIGVycm9yX21lc3NhZ2UgPSAnJywKICAgICAgICAgICAgICAgIGVycm9yX2NvZGUgPSAxLjMzNywKICAgICAgICAgICAgICAgIGVycm9yX2NvZGVfbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgZXJyb3JfZmllbGQgPSAnb3BlcmF0b3InCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUG9saWN5UnVsZUVycm9yKAogICAgICAgICAgICAgICAgZXJyb3JfbWVzc2FnZSA9ICcnLAogICAgICAgICAgICAgICAgZXJyb3JfY29kZSA9IDEuMzM3LAogICAgICAgICAgICAgICAgZXJyb3JfY29kZV9uYW1lID0gJycsCiAgICAgICAgICAgICAgICBlcnJvcl9maWVsZCA9ICdvcGVyYXRvcicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UG9saWN5UnVsZUVycm9yKHNlbGYpOgogICAgICAgICIiIlRlc3QgUG9saWN5UnVsZUVycm9yIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_policy_status.py b/test/test_policy_status.py index bb1c2ce1..6f17f149 100644 --- a/test/test_policy_status.py +++ b/test/test_policy_status.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.policy_status import PolicyStatus - - -class TestPolicyStatus(unittest.TestCase): - """PolicyStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testPolicyStatus(self): - """Test PolicyStatus""" - # inst = PolicyStatus() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9zdGF0dXMgaW1wb3J0IFBvbGljeVN0YXR1cwoKCmNsYXNzIFRlc3RQb2xpY3lTdGF0dXModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUG9saWN5U3RhdHVzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdFBvbGljeVN0YXR1cyhzZWxmKToKICAgICAgICAiIiJUZXN0IFBvbGljeVN0YXR1cyIiIgogICAgICAgICMgaW5zdCA9IFBvbGljeVN0YXR1cygpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_policy_tag.py b/test/test_policy_tag.py index 2667dd28..b13507e7 100644 --- a/test/test_policy_tag.py +++ b/test/test_policy_tag.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.policy_tag import PolicyTag - - -class TestPolicyTag(unittest.TestCase): - """PolicyTag unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PolicyTag: - """Test PolicyTag - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PolicyTag` - """ - model = PolicyTag() - if include_optional: - return PolicyTag( - id = 'tag_001' - ) - else: - return PolicyTag( - id = 'tag_001', - ) - """ - - def testPolicyTag(self): - """Test PolicyTag""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV90YWcgaW1wb3J0IFBvbGljeVRhZwoKCmNsYXNzIFRlc3RQb2xpY3lUYWcodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUG9saWN5VGFnIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBQb2xpY3lUYWc6CiAgICAgICAgIiIiVGVzdCBQb2xpY3lUYWcKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUG9saWN5VGFnYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUG9saWN5VGFnKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUG9saWN5VGFnKAogICAgICAgICAgICAgICAgaWQgPSAndGFnXzAwMScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQb2xpY3lUYWcoCiAgICAgICAgICAgICAgICBpZCA9ICd0YWdfMDAxJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RQb2xpY3lUYWcoc2VsZik6CiAgICAgICAgIiIiVGVzdCBQb2xpY3lUYWciIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_policy_type.py b/test/test_policy_type.py index f952fff0..eabba5f5 100644 --- a/test/test_policy_type.py +++ b/test/test_policy_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.policy_type import PolicyType - - -class TestPolicyType(unittest.TestCase): - """PolicyType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testPolicyType(self): - """Test PolicyType""" - # inst = PolicyType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV90eXBlIGltcG9ydCBQb2xpY3lUeXBlCgoKY2xhc3MgVGVzdFBvbGljeVR5cGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUG9saWN5VHlwZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RQb2xpY3lUeXBlKHNlbGYpOgogICAgICAgICIiIlRlc3QgUG9saWN5VHlwZSIiIgogICAgICAgICMgaW5zdCA9IFBvbGljeVR5cGUoKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_policy_validation.py b/test/test_policy_validation.py index b40abc21..5dcd0b74 100644 --- a/test/test_policy_validation.py +++ b/test/test_policy_validation.py @@ -1,83 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.policy_validation import PolicyValidation - - -class TestPolicyValidation(unittest.TestCase): - """PolicyValidation unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PolicyValidation: - """Test PolicyValidation - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PolicyValidation` - """ - model = PolicyValidation() - if include_optional: - return PolicyValidation( - status = '', - check_result = fireblocks.models.policy_check_result.PolicyCheckResult( - errors = 1.337, - results = [ - fireblocks.models.policy_rule_check_result.PolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.policy_rule_error.PolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], ) - ], ) - ) - else: - return PolicyValidation( - status = '', - check_result = fireblocks.models.policy_check_result.PolicyCheckResult( - errors = 1.337, - results = [ - fireblocks.models.policy_rule_check_result.PolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.policy_rule_error.PolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], ) - ], ), - ) - """ - - def testPolicyValidation(self): - """Test PolicyValidation""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV92YWxpZGF0aW9uIGltcG9ydCBQb2xpY3lWYWxpZGF0aW9uCgoKY2xhc3MgVGVzdFBvbGljeVZhbGlkYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUG9saWN5VmFsaWRhdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUG9saWN5VmFsaWRhdGlvbjoKICAgICAgICAiIiJUZXN0IFBvbGljeVZhbGlkYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUG9saWN5VmFsaWRhdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFBvbGljeVZhbGlkYXRpb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQb2xpY3lWYWxpZGF0aW9uKAogICAgICAgICAgICAgICAgc3RhdHVzID0gJycsCiAgICAgICAgICAgICAgICBjaGVja19yZXN1bHQgPSBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfY2hlY2tfcmVzdWx0LlBvbGljeUNoZWNrUmVzdWx0KAogICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICByZXN1bHRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfcnVsZV9jaGVja19yZXN1bHQuUG9saWN5UnVsZUNoZWNrUmVzdWx0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnb2snLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfcnVsZV9lcnJvci5Qb2xpY3lSdWxlRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX21lc3NhZ2UgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGUgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGVfbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfZmllbGQgPSAnb3BlcmF0b3InLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgICAgICBdLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUG9saWN5VmFsaWRhdGlvbigKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICcnLAogICAgICAgICAgICAgICAgY2hlY2tfcmVzdWx0ID0gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X2NoZWNrX3Jlc3VsdC5Qb2xpY3lDaGVja1Jlc3VsdCgKICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0cyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3J1bGVfY2hlY2tfcmVzdWx0LlBvbGljeVJ1bGVDaGVja1Jlc3VsdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ29rJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3J1bGVfZXJyb3IuUG9saWN5UnVsZUVycm9yKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9tZXNzYWdlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlX25hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2ZpZWxkID0gJ29wZXJhdG9yJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RQb2xpY3lWYWxpZGF0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgUG9saWN5VmFsaWRhdGlvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_policy_verdict_action_enum.py b/test/test_policy_verdict_action_enum.py index 6d47a540..4acab4d2 100644 --- a/test/test_policy_verdict_action_enum.py +++ b/test/test_policy_verdict_action_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.policy_verdict_action_enum import PolicyVerdictActionEnum - - -class TestPolicyVerdictActionEnum(unittest.TestCase): - """PolicyVerdictActionEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testPolicyVerdictActionEnum(self): - """Test PolicyVerdictActionEnum""" - # inst = PolicyVerdictActionEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV92ZXJkaWN0X2FjdGlvbl9lbnVtIGltcG9ydCBQb2xpY3lWZXJkaWN0QWN0aW9uRW51bQoKCmNsYXNzIFRlc3RQb2xpY3lWZXJkaWN0QWN0aW9uRW51bSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJQb2xpY3lWZXJkaWN0QWN0aW9uRW51bSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RQb2xpY3lWZXJkaWN0QWN0aW9uRW51bShzZWxmKToKICAgICAgICAiIiJUZXN0IFBvbGljeVZlcmRpY3RBY3Rpb25FbnVtIiIiCiAgICAgICAgIyBpbnN0ID0gUG9saWN5VmVyZGljdEFjdGlvbkVudW0oKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_policy_verdict_action_enum2.py b/test/test_policy_verdict_action_enum2.py index 99d53271..6d87c3b6 100644 --- a/test/test_policy_verdict_action_enum2.py +++ b/test/test_policy_verdict_action_enum2.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.policy_verdict_action_enum2 import PolicyVerdictActionEnum2 - - -class TestPolicyVerdictActionEnum2(unittest.TestCase): - """PolicyVerdictActionEnum2 unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testPolicyVerdictActionEnum2(self): - """Test PolicyVerdictActionEnum2""" - # inst = PolicyVerdictActionEnum2() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV92ZXJkaWN0X2FjdGlvbl9lbnVtMiBpbXBvcnQgUG9saWN5VmVyZGljdEFjdGlvbkVudW0yCgoKY2xhc3MgVGVzdFBvbGljeVZlcmRpY3RBY3Rpb25FbnVtMih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJQb2xpY3lWZXJkaWN0QWN0aW9uRW51bTIgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0UG9saWN5VmVyZGljdEFjdGlvbkVudW0yKHNlbGYpOgogICAgICAgICIiIlRlc3QgUG9saWN5VmVyZGljdEFjdGlvbkVudW0yIiIiCiAgICAgICAgIyBpbnN0ID0gUG9saWN5VmVyZGljdEFjdGlvbkVudW0yKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_position.py b/test/test_position.py new file mode 100644 index 00000000..8a949d71 --- /dev/null +++ b/test/test_position.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvc2l0aW9uIGltcG9ydCBQb3NpdGlvbgoKCmNsYXNzIFRlc3RQb3NpdGlvbih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJQb3NpdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUG9zaXRpb246CiAgICAgICAgIiIiVGVzdCBQb3NpdGlvbgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBQb3NpdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFBvc2l0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUG9zaXRpb24oCiAgICAgICAgICAgICAgICBpZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGEnLAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcyJywKICAgICAgICAgICAgICAgIHZhbGlkYXRvcl9uYW1lID0gJ0Z3UjNQLi4uLi4udFQ1OWYnLAogICAgICAgICAgICAgICAgcHJvdmlkZXJfbmFtZSA9ICdLaWxuJywKICAgICAgICAgICAgICAgIGNoYWluX2Rlc2NyaXB0b3IgPSAnU09MJywKICAgICAgICAgICAgICAgIGFtb3VudCA9ICcwLjA1JywKICAgICAgICAgICAgICAgIHJld2FyZHNfYW1vdW50ID0gJzAuMDAwODU2MDM4JywKICAgICAgICAgICAgICAgIGRhdGVfY3JlYXRlZCA9ICcyMDIzLTA3LTEzVDE1OjU1OjM0LjI1NlonLAogICAgICAgICAgICAgICAgZGF0ZV91cGRhdGVkID0gJzIwMjMtMDctMTNUMTU6NTU6MzQuMjU2WicsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQUNUSVZFJywKICAgICAgICAgICAgICAgIHZhbGlkYXRvcl9hZGRyZXNzID0gJ0Z3UjNQYmpTNWl5cXpMaUx1Z3JCcUtTYTVFS1o0dks5U0tzN2VRWHRUNTlmJywKICAgICAgICAgICAgICAgIHByb3ZpZGVyX2lkID0gJ2tpbG4nLAogICAgICAgICAgICAgICAgYXZhaWxhYmxlX2FjdGlvbnMgPSBbIlVOU1RBS0UiXSwKICAgICAgICAgICAgICAgIGluX3Byb2dyZXNzID0gVHJ1ZSwKICAgICAgICAgICAgICAgIGluX3Byb2dyZXNzX3R4X2lkID0gJ2M4MDYwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViNDUwYycsCiAgICAgICAgICAgICAgICBibG9ja2NoYWluX3Bvc2l0aW9uX2luZm8gPSBOb25lCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUG9zaXRpb24oCiAgICAgICAgICAgICAgICBpZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGEnLAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcyJywKICAgICAgICAgICAgICAgIHZhbGlkYXRvcl9uYW1lID0gJ0Z3UjNQLi4uLi4udFQ1OWYnLAogICAgICAgICAgICAgICAgcHJvdmlkZXJfbmFtZSA9ICdLaWxuJywKICAgICAgICAgICAgICAgIGNoYWluX2Rlc2NyaXB0b3IgPSAnU09MJywKICAgICAgICAgICAgICAgIGFtb3VudCA9ICcwLjA1JywKICAgICAgICAgICAgICAgIHJld2FyZHNfYW1vdW50ID0gJzAuMDAwODU2MDM4JywKICAgICAgICAgICAgICAgIGRhdGVfY3JlYXRlZCA9ICcyMDIzLTA3LTEzVDE1OjU1OjM0LjI1NlonLAogICAgICAgICAgICAgICAgZGF0ZV91cGRhdGVkID0gJzIwMjMtMDctMTNUMTU6NTU6MzQuMjU2WicsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQUNUSVZFJywKICAgICAgICAgICAgICAgIHZhbGlkYXRvcl9hZGRyZXNzID0gJ0Z3UjNQYmpTNWl5cXpMaUx1Z3JCcUtTYTVFS1o0dks5U0tzN2VRWHRUNTlmJywKICAgICAgICAgICAgICAgIHByb3ZpZGVyX2lkID0gJ2tpbG4nLAogICAgICAgICAgICAgICAgYXZhaWxhYmxlX2FjdGlvbnMgPSBbIlVOU1RBS0UiXSwKICAgICAgICAgICAgICAgIGluX3Byb2dyZXNzID0gVHJ1ZSwKICAgICAgICAgICAgICAgIGJsb2NrY2hhaW5fcG9zaXRpb25faW5mbyA9IE5vbmUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UG9zaXRpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBQb3NpdGlvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_postal_address.py b/test/test_postal_address.py index 57552d9f..e04b6f62 100644 --- a/test/test_postal_address.py +++ b/test/test_postal_address.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.postal_address import PostalAddress - - -class TestPostalAddress(unittest.TestCase): - """PostalAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PostalAddress: - """Test PostalAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PostalAddress` - """ - model = PostalAddress() - if include_optional: - return PostalAddress( - street_name = '', - building_number = '', - postal_code = '', - city = '', - subdivision = '', - district = '', - country = '' - ) - else: - return PostalAddress( - street_name = '', - building_number = '', - postal_code = '', - city = '', - subdivision = '', - district = '', - country = '', - ) - """ - - def testPostalAddress(self): - """Test PostalAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnBvc3RhbF9hZGRyZXNzIGltcG9ydCBQb3N0YWxBZGRyZXNzCgoKY2xhc3MgVGVzdFBvc3RhbEFkZHJlc3ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUG9zdGFsQWRkcmVzcyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUG9zdGFsQWRkcmVzczoKICAgICAgICAiIiJUZXN0IFBvc3RhbEFkZHJlc3MKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUG9zdGFsQWRkcmVzc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFBvc3RhbEFkZHJlc3MoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQb3N0YWxBZGRyZXNzKAogICAgICAgICAgICAgICAgc3RyZWV0X25hbWUgPSAnJywKICAgICAgICAgICAgICAgIGJ1aWxkaW5nX251bWJlciA9ICcnLAogICAgICAgICAgICAgICAgcG9zdGFsX2NvZGUgPSAnJywKICAgICAgICAgICAgICAgIGNpdHkgPSAnJywKICAgICAgICAgICAgICAgIHN1YmRpdmlzaW9uID0gJycsCiAgICAgICAgICAgICAgICBkaXN0cmljdCA9ICcnLAogICAgICAgICAgICAgICAgY291bnRyeSA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUG9zdGFsQWRkcmVzcygKICAgICAgICAgICAgICAgIHN0cmVldF9uYW1lID0gJycsCiAgICAgICAgICAgICAgICBidWlsZGluZ19udW1iZXIgPSAnJywKICAgICAgICAgICAgICAgIHBvc3RhbF9jb2RlID0gJycsCiAgICAgICAgICAgICAgICBjaXR5ID0gJycsCiAgICAgICAgICAgICAgICBzdWJkaXZpc2lvbiA9ICcnLAogICAgICAgICAgICAgICAgZGlzdHJpY3QgPSAnJywKICAgICAgICAgICAgICAgIGNvdW50cnkgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RQb3N0YWxBZGRyZXNzKHNlbGYpOgogICAgICAgICIiIlRlc3QgUG9zdGFsQWRkcmVzcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_pre_screening.py b/test/test_pre_screening.py index e9a00dcc..756c4bd8 100644 --- a/test/test_pre_screening.py +++ b/test/test_pre_screening.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.pre_screening import PreScreening - - -class TestPreScreening(unittest.TestCase): - """PreScreening unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PreScreening: - """Test PreScreening - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PreScreening` - """ - model = PreScreening() - if include_optional: - return PreScreening( - enabled = True - ) - else: - return PreScreening( - enabled = True, - ) - """ - - def testPreScreening(self): - """Test PreScreening""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnByZV9zY3JlZW5pbmcgaW1wb3J0IFByZVNjcmVlbmluZwoKCmNsYXNzIFRlc3RQcmVTY3JlZW5pbmcodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUHJlU2NyZWVuaW5nIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBQcmVTY3JlZW5pbmc6CiAgICAgICAgIiIiVGVzdCBQcmVTY3JlZW5pbmcKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUHJlU2NyZWVuaW5nYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUHJlU2NyZWVuaW5nKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUHJlU2NyZWVuaW5nKAogICAgICAgICAgICAgICAgZW5hYmxlZCA9IFRydWUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQcmVTY3JlZW5pbmcoCiAgICAgICAgICAgICAgICBlbmFibGVkID0gVHJ1ZSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RQcmVTY3JlZW5pbmcoc2VsZik6CiAgICAgICAgIiIiVGVzdCBQcmVTY3JlZW5pbmciIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_prefunded_settlement.py b/test/test_prefunded_settlement.py index a91218b1..fdf2c3ee 100644 --- a/test/test_prefunded_settlement.py +++ b/test/test_prefunded_settlement.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.prefunded_settlement import PrefundedSettlement - - -class TestPrefundedSettlement(unittest.TestCase): - """PrefundedSettlement unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PrefundedSettlement: - """Test PrefundedSettlement - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PrefundedSettlement` - """ - model = PrefundedSettlement() - if include_optional: - return PrefundedSettlement( - type = 'PREFUNDED', - destination_account = None - ) - else: - return PrefundedSettlement( - type = 'PREFUNDED', - destination_account = None, - ) - """ - - def testPrefundedSettlement(self): - """Test PrefundedSettlement""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnByZWZ1bmRlZF9zZXR0bGVtZW50IGltcG9ydCBQcmVmdW5kZWRTZXR0bGVtZW50CgoKY2xhc3MgVGVzdFByZWZ1bmRlZFNldHRsZW1lbnQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUHJlZnVuZGVkU2V0dGxlbWVudCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUHJlZnVuZGVkU2V0dGxlbWVudDoKICAgICAgICAiIiJUZXN0IFByZWZ1bmRlZFNldHRsZW1lbnQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUHJlZnVuZGVkU2V0dGxlbWVudGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFByZWZ1bmRlZFNldHRsZW1lbnQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQcmVmdW5kZWRTZXR0bGVtZW50KAogICAgICAgICAgICAgICAgdHlwZSA9ICdQUkVGVU5ERUQnLAogICAgICAgICAgICAgICAgZGVzdGluYXRpb25fYWNjb3VudCA9IE5vbmUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQcmVmdW5kZWRTZXR0bGVtZW50KAogICAgICAgICAgICAgICAgdHlwZSA9ICdQUkVGVU5ERUQnLAogICAgICAgICAgICAgICAgZGVzdGluYXRpb25fYWNjb3VudCA9IE5vbmUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UHJlZnVuZGVkU2V0dGxlbWVudChzZWxmKToKICAgICAgICAiIiJUZXN0IFByZWZ1bmRlZFNldHRsZW1lbnQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_prefunded_settlement_type.py b/test/test_prefunded_settlement_type.py index b2bbb190..8d56da0a 100644 --- a/test/test_prefunded_settlement_type.py +++ b/test/test_prefunded_settlement_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.prefunded_settlement_type import PrefundedSettlementType - - -class TestPrefundedSettlementType(unittest.TestCase): - """PrefundedSettlementType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testPrefundedSettlementType(self): - """Test PrefundedSettlementType""" - # inst = PrefundedSettlementType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnByZWZ1bmRlZF9zZXR0bGVtZW50X3R5cGUgaW1wb3J0IFByZWZ1bmRlZFNldHRsZW1lbnRUeXBlCgoKY2xhc3MgVGVzdFByZWZ1bmRlZFNldHRsZW1lbnRUeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlByZWZ1bmRlZFNldHRsZW1lbnRUeXBlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdFByZWZ1bmRlZFNldHRsZW1lbnRUeXBlKHNlbGYpOgogICAgICAgICIiIlRlc3QgUHJlZnVuZGVkU2V0dGxlbWVudFR5cGUiIiIKICAgICAgICAjIGluc3QgPSBQcmVmdW5kZWRTZXR0bGVtZW50VHlwZSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_program_call_config.py b/test/test_program_call_config.py index 144ce928..bcce5187 100644 --- a/test/test_program_call_config.py +++ b/test/test_program_call_config.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.program_call_config import ProgramCallConfig - - -class TestProgramCallConfig(unittest.TestCase): - """ProgramCallConfig unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ProgramCallConfig: - """Test ProgramCallConfig - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ProgramCallConfig` - """ - model = ProgramCallConfig() - if include_optional: - return ProgramCallConfig( - allowed_solana_program_calls = 'WHITELISTED' - ) - else: - return ProgramCallConfig( - allowed_solana_program_calls = 'WHITELISTED', - ) - """ - - def testProgramCallConfig(self): - """Test ProgramCallConfig""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnByb2dyYW1fY2FsbF9jb25maWcgaW1wb3J0IFByb2dyYW1DYWxsQ29uZmlnCgoKY2xhc3MgVGVzdFByb2dyYW1DYWxsQ29uZmlnKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlByb2dyYW1DYWxsQ29uZmlnIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBQcm9ncmFtQ2FsbENvbmZpZzoKICAgICAgICAiIiJUZXN0IFByb2dyYW1DYWxsQ29uZmlnCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFByb2dyYW1DYWxsQ29uZmlnYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUHJvZ3JhbUNhbGxDb25maWcoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQcm9ncmFtQ2FsbENvbmZpZygKICAgICAgICAgICAgICAgIGFsbG93ZWRfc29sYW5hX3Byb2dyYW1fY2FsbHMgPSAnV0hJVEVMSVNURUQnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUHJvZ3JhbUNhbGxDb25maWcoCiAgICAgICAgICAgICAgICBhbGxvd2VkX3NvbGFuYV9wcm9ncmFtX2NhbGxzID0gJ1dISVRFTElTVEVEJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RQcm9ncmFtQ2FsbENvbmZpZyhzZWxmKToKICAgICAgICAiIiJUZXN0IFByb2dyYW1DYWxsQ29uZmlnIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_provider.py b/test/test_provider.py index 1cce71fd..9d1fdd48 100644 --- a/test/test_provider.py +++ b/test/test_provider.py @@ -1,66 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.provider import Provider - - -class TestProvider(unittest.TestCase): - """Provider unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Provider: - """Test Provider - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Provider` - """ - model = Provider() - if include_optional: - return Provider( - id = 'kiln', - provider_name = 'Kiln', - validators = [{"chainDescriptor":"ETH","feePercent":5},{"chainDescriptor":"SOL","feePercent":7}], - icon_url = 'https://static.fireblocks.io/staking/validators/kiln_console.png', - terms_of_service_url = 'https://www.kiln.fi/terms-and-conditions-for-fireblocks-customers', - is_terms_of_service_approved = True, - is_private = True, - is_liquid_staking = True - ) - else: - return Provider( - id = 'kiln', - provider_name = 'Kiln', - validators = [{"chainDescriptor":"ETH","feePercent":5},{"chainDescriptor":"SOL","feePercent":7}], - is_terms_of_service_approved = True, - is_liquid_staking = True, - ) - """ - - def testProvider(self): - """Test Provider""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnByb3ZpZGVyIGltcG9ydCBQcm92aWRlcgoKCmNsYXNzIFRlc3RQcm92aWRlcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJQcm92aWRlciB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUHJvdmlkZXI6CiAgICAgICAgIiIiVGVzdCBQcm92aWRlcgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBQcm92aWRlcmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFByb3ZpZGVyKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUHJvdmlkZXIoCiAgICAgICAgICAgICAgICBpZCA9ICdraWxuJywKICAgICAgICAgICAgICAgIHByb3ZpZGVyX25hbWUgPSAnS2lsbicsCiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzID0gW3siY2hhaW5EZXNjcmlwdG9yIjoiRVRIIiwiZmVlUGVyY2VudCI6NX0seyJjaGFpbkRlc2NyaXB0b3IiOiJTT0wiLCJmZWVQZXJjZW50Ijo3fV0sCiAgICAgICAgICAgICAgICBpY29uX3VybCA9ICdodHRwczovL3N0YXRpYy5maXJlYmxvY2tzLmlvL3N0YWtpbmcvdmFsaWRhdG9ycy9raWxuX2NvbnNvbGUucG5nJywKICAgICAgICAgICAgICAgIHRlcm1zX29mX3NlcnZpY2VfdXJsID0gJ2h0dHBzOi8vd3d3LmtpbG4uZmkvdGVybXMtYW5kLWNvbmRpdGlvbnMtZm9yLWZpcmVibG9ja3MtY3VzdG9tZXJzJywKICAgICAgICAgICAgICAgIGlzX3Rlcm1zX29mX3NlcnZpY2VfYXBwcm92ZWQgPSBUcnVlLAogICAgICAgICAgICAgICAgaXNfcHJpdmF0ZSA9IFRydWUsCiAgICAgICAgICAgICAgICBpc19saXF1aWRfc3Rha2luZyA9IFRydWUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQcm92aWRlcigKICAgICAgICAgICAgICAgIGlkID0gJ2tpbG4nLAogICAgICAgICAgICAgICAgcHJvdmlkZXJfbmFtZSA9ICdLaWxuJywKICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMgPSBbeyJjaGFpbkRlc2NyaXB0b3IiOiJFVEgiLCJmZWVQZXJjZW50Ijo1fSx7ImNoYWluRGVzY3JpcHRvciI6IlNPTCIsImZlZVBlcmNlbnQiOjd9XSwKICAgICAgICAgICAgICAgIGlzX3Rlcm1zX29mX3NlcnZpY2VfYXBwcm92ZWQgPSBUcnVlLAogICAgICAgICAgICAgICAgaXNfbGlxdWlkX3N0YWtpbmcgPSBUcnVlLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFByb3ZpZGVyKHNlbGYpOgogICAgICAgICIiIlRlc3QgUHJvdmlkZXIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_providers_list_response.py b/test/test_providers_list_response.py index e2eb266e..4bcf592e 100644 --- a/test/test_providers_list_response.py +++ b/test/test_providers_list_response.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.providers_list_response import ProvidersListResponse - - -class TestProvidersListResponse(unittest.TestCase): - """ProvidersListResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ProvidersListResponse: - """Test ProvidersListResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ProvidersListResponse` - """ - model = ProvidersListResponse() - if include_optional: - return ProvidersListResponse( - data = [ - null - ], - total = 56, - next = '' - ) - else: - return ProvidersListResponse( - data = [ - null - ], - total = 56, - ) - """ - - def testProvidersListResponse(self): - """Test ProvidersListResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnByb3ZpZGVyc19saXN0X3Jlc3BvbnNlIGltcG9ydCBQcm92aWRlcnNMaXN0UmVzcG9uc2UKCgpjbGFzcyBUZXN0UHJvdmlkZXJzTGlzdFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlByb3ZpZGVyc0xpc3RSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUHJvdmlkZXJzTGlzdFJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgUHJvdmlkZXJzTGlzdFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFByb3ZpZGVyc0xpc3RSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFByb3ZpZGVyc0xpc3RSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFByb3ZpZGVyc0xpc3RSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICB0b3RhbCA9IDU2LAogICAgICAgICAgICAgICAgbmV4dCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUHJvdmlkZXJzTGlzdFJlc3BvbnNlKAogICAgICAgICAgICAgICAgZGF0YSA9IFsKICAgICAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHRvdGFsID0gNTYsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UHJvdmlkZXJzTGlzdFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgUHJvdmlkZXJzTGlzdFJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_public_key_information.py b/test/test_public_key_information.py index 0be92360..c2e27cd8 100644 --- a/test/test_public_key_information.py +++ b/test/test_public_key_information.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.public_key_information import PublicKeyInformation - - -class TestPublicKeyInformation(unittest.TestCase): - """PublicKeyInformation unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PublicKeyInformation: - """Test PublicKeyInformation - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PublicKeyInformation` - """ - model = PublicKeyInformation() - if include_optional: - return PublicKeyInformation( - algorithm = 'MPC_ECDSA_SECP256K1', - derivation_path = [44,0,0,0,0], - public_key = '1044c36403c1802818b472398f546a43a0d91569d5583a6e807c3825b155c7bd' - ) - else: - return PublicKeyInformation( - ) - """ - - def testPublicKeyInformation(self): - """Test PublicKeyInformation""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnB1YmxpY19rZXlfaW5mb3JtYXRpb24gaW1wb3J0IFB1YmxpY0tleUluZm9ybWF0aW9uCgoKY2xhc3MgVGVzdFB1YmxpY0tleUluZm9ybWF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlB1YmxpY0tleUluZm9ybWF0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBQdWJsaWNLZXlJbmZvcm1hdGlvbjoKICAgICAgICAiIiJUZXN0IFB1YmxpY0tleUluZm9ybWF0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFB1YmxpY0tleUluZm9ybWF0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUHVibGljS2V5SW5mb3JtYXRpb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQdWJsaWNLZXlJbmZvcm1hdGlvbigKICAgICAgICAgICAgICAgIGFsZ29yaXRobSA9ICdNUENfRUNEU0FfU0VDUDI1NksxJywKICAgICAgICAgICAgICAgIGRlcml2YXRpb25fcGF0aCA9IFs0NCwwLDAsMCwwXSwKICAgICAgICAgICAgICAgIHB1YmxpY19rZXkgPSAnMTA0NGMzNjQwM2MxODAyODE4YjQ3MjM5OGY1NDZhNDNhMGQ5MTU2OWQ1NTgzYTZlODA3YzM4MjViMTU1YzdiZCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQdWJsaWNLZXlJbmZvcm1hdGlvbigKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RQdWJsaWNLZXlJbmZvcm1hdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IFB1YmxpY0tleUluZm9ybWF0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_publish_draft_request.py b/test/test_publish_draft_request.py index e21ddc57..6cdfa424 100644 --- a/test/test_publish_draft_request.py +++ b/test/test_publish_draft_request.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.publish_draft_request import PublishDraftRequest - - -class TestPublishDraftRequest(unittest.TestCase): - """PublishDraftRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PublishDraftRequest: - """Test PublishDraftRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PublishDraftRequest` - """ - model = PublishDraftRequest() - if include_optional: - return PublishDraftRequest( - policy_types = [ - 'TRANSFER' - ], - draft_id = 'draft-123' - ) - else: - return PublishDraftRequest( - policy_types = [ - 'TRANSFER' - ], - draft_id = 'draft-123', - ) - """ - - def testPublishDraftRequest(self): - """Test PublishDraftRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnB1Ymxpc2hfZHJhZnRfcmVxdWVzdCBpbXBvcnQgUHVibGlzaERyYWZ0UmVxdWVzdAoKCmNsYXNzIFRlc3RQdWJsaXNoRHJhZnRSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlB1Ymxpc2hEcmFmdFJlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFB1Ymxpc2hEcmFmdFJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBQdWJsaXNoRHJhZnRSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFB1Ymxpc2hEcmFmdFJlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBQdWJsaXNoRHJhZnRSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUHVibGlzaERyYWZ0UmVxdWVzdCgKICAgICAgICAgICAgICAgIHBvbGljeV90eXBlcyA9IFsKICAgICAgICAgICAgICAgICAgICAnVFJBTlNGRVInCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGRyYWZ0X2lkID0gJ2RyYWZ0LTEyMycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQdWJsaXNoRHJhZnRSZXF1ZXN0KAogICAgICAgICAgICAgICAgcG9saWN5X3R5cGVzID0gWwogICAgICAgICAgICAgICAgICAgICdUUkFOU0ZFUicKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgZHJhZnRfaWQgPSAnZHJhZnQtMTIzJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RQdWJsaXNoRHJhZnRSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgUHVibGlzaERyYWZ0UmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_publish_result.py b/test/test_publish_result.py index f5f34d5d..2ad473b0 100644 --- a/test/test_publish_result.py +++ b/test/test_publish_result.py @@ -1,267 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.publish_result import PublishResult - - -class TestPublishResult(unittest.TestCase): - """PublishResult unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> PublishResult: - """Test PublishResult - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `PublishResult` - """ - model = PublishResult() - if include_optional: - return PublishResult( - status = 'SUCCESS', - rules = [ - fireblocks.models.policy_rule.PolicyRule( - name = 'High Value Transfer Policy', - id = 'policy_rule_001', - policy_engine_version = 'v2', - type = 'TRANSFER', - sub_type = 'TRANSFER', - initiator = null, - asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], - operator = 'INCLUDES', ), - source = fireblocks.models.source_config.SourceConfig( - ids = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - address = '0x123...', ) - ], - tags = [ - fireblocks.models.policy_tag.PolicyTag( - id = 'tag_001', ) - ], - operator = 'INCLUDES', - match_from = 'ACCOUNT', ), - destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"}, - account = fireblocks.models.account_config.AccountConfig( - operator = , - match_from = 'ACCOUNT', ), - side = 'BUY', - verdict = fireblocks.models.verdict_config.VerdictConfig( - action = 'ALLOW', - approvers = fireblocks.models.approvers_config.ApproversConfig( - can_initiator_approve = False, - allow_operator_as_authorizer = False, - approval_groups = [{"threshold":2,"users":["user1","user2"]}], ), - designated_signers = fireblocks.models.designated_signers_config.DesignatedSignersConfig( - type = 'SINGLE', - users = ["user1","user2"], - groups = ["group1","group2"], ), ), - amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig( - range = {"min":"100","max":"10000"}, - currency = 'USD', - time_period = fireblocks.models.time_period_config.TimePeriodConfig( - seconds = '86400', - initiator = 'PER_SINGLE_MATCH', - source = 'PER_SINGLE_MATCH', - destination = 'PER_SINGLE_MATCH', ), ), - amount = {"range":{"min":"100","max":"10000"},"currency":"USD"}, - external_descriptor = 'High value transfer policy for institutional clients', - method = null, - is_global_policy = False, - program_call = fireblocks.models.program_call_config.ProgramCallConfig( - allowed_solana_program_calls = 'WHITELISTED', ), - screening_metadata = fireblocks.models.screening_metadata_config.ScreeningMetadataConfig( - direction = 'OUTBOUND', - provider = 'CHAINALYSIS', - risk_rating = 'MEDIUM', - risk_score = '0.8', - exposure_type = 'DIRECT', - category = [ - '' - ], - name = [ - '' - ], - category_id = [ - '' - ], - status = 'COMPLETED', - source_address = '0x123...', - dest_address = '0x456...', ), - quote_asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], ), - base_asset = , - quote_amount = {"range":{"min":"100","max":"10000"}}, - base_amount = {"range":{"min":"100","max":"10000"}}, - d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig( - global_whitelisted = ["rabby.io","jup.ag"], - tenant_whitelisted = ["uniswap.com","opensea.io"], - urls = ["*"], - operator = , ), - derivation_path = {"path":[44,0,0,0,0],"partial":false}, - index = 1, ) - ], - check_result = fireblocks.models.policy_check_result.PolicyCheckResult( - errors = 1.337, - results = [ - fireblocks.models.policy_rule_check_result.PolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.policy_rule_error.PolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], ) - ], ), - metadata = fireblocks.models.policy_metadata.PolicyMetadata( - edited_by = 'user123', - edited_at = '2024-01-15T10:30:00Z', - published_by = 'user456', - published_at = '2024-01-15T11:00:00Z', - policy_type = 'TRANSFER', ) - ) - else: - return PublishResult( - status = 'SUCCESS', - rules = [ - fireblocks.models.policy_rule.PolicyRule( - name = 'High Value Transfer Policy', - id = 'policy_rule_001', - policy_engine_version = 'v2', - type = 'TRANSFER', - sub_type = 'TRANSFER', - initiator = null, - asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], - operator = 'INCLUDES', ), - source = fireblocks.models.source_config.SourceConfig( - ids = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - address = '0x123...', ) - ], - tags = [ - fireblocks.models.policy_tag.PolicyTag( - id = 'tag_001', ) - ], - operator = 'INCLUDES', - match_from = 'ACCOUNT', ), - destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"}, - account = fireblocks.models.account_config.AccountConfig( - operator = , - match_from = 'ACCOUNT', ), - side = 'BUY', - verdict = fireblocks.models.verdict_config.VerdictConfig( - action = 'ALLOW', - approvers = fireblocks.models.approvers_config.ApproversConfig( - can_initiator_approve = False, - allow_operator_as_authorizer = False, - approval_groups = [{"threshold":2,"users":["user1","user2"]}], ), - designated_signers = fireblocks.models.designated_signers_config.DesignatedSignersConfig( - type = 'SINGLE', - users = ["user1","user2"], - groups = ["group1","group2"], ), ), - amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig( - range = {"min":"100","max":"10000"}, - currency = 'USD', - time_period = fireblocks.models.time_period_config.TimePeriodConfig( - seconds = '86400', - initiator = 'PER_SINGLE_MATCH', - source = 'PER_SINGLE_MATCH', - destination = 'PER_SINGLE_MATCH', ), ), - amount = {"range":{"min":"100","max":"10000"},"currency":"USD"}, - external_descriptor = 'High value transfer policy for institutional clients', - method = null, - is_global_policy = False, - program_call = fireblocks.models.program_call_config.ProgramCallConfig( - allowed_solana_program_calls = 'WHITELISTED', ), - screening_metadata = fireblocks.models.screening_metadata_config.ScreeningMetadataConfig( - direction = 'OUTBOUND', - provider = 'CHAINALYSIS', - risk_rating = 'MEDIUM', - risk_score = '0.8', - exposure_type = 'DIRECT', - category = [ - '' - ], - name = [ - '' - ], - category_id = [ - '' - ], - status = 'COMPLETED', - source_address = '0x123...', - dest_address = '0x456...', ), - quote_asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], ), - base_asset = , - quote_amount = {"range":{"min":"100","max":"10000"}}, - base_amount = {"range":{"min":"100","max":"10000"}}, - d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig( - global_whitelisted = ["rabby.io","jup.ag"], - tenant_whitelisted = ["uniswap.com","opensea.io"], - urls = ["*"], - operator = , ), - derivation_path = {"path":[44,0,0,0,0],"partial":false}, - index = 1, ) - ], - check_result = fireblocks.models.policy_check_result.PolicyCheckResult( - errors = 1.337, - results = [ - fireblocks.models.policy_rule_check_result.PolicyRuleCheckResult( - index = 1.337, - status = 'ok', - errors = [ - fireblocks.models.policy_rule_error.PolicyRuleError( - error_message = '', - error_code = 1.337, - error_code_name = '', - error_field = 'operator', ) - ], ) - ], ), - metadata = fireblocks.models.policy_metadata.PolicyMetadata( - edited_by = 'user123', - edited_at = '2024-01-15T10:30:00Z', - published_by = 'user456', - published_at = '2024-01-15T11:00:00Z', - policy_type = 'TRANSFER', ), - ) - """ - - def testPublishResult(self): - """Test PublishResult""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnB1Ymxpc2hfcmVzdWx0IGltcG9ydCBQdWJsaXNoUmVzdWx0CgoKY2xhc3MgVGVzdFB1Ymxpc2hSZXN1bHQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUHVibGlzaFJlc3VsdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUHVibGlzaFJlc3VsdDoKICAgICAgICAiIiJUZXN0IFB1Ymxpc2hSZXN1bHQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUHVibGlzaFJlc3VsdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFB1Ymxpc2hSZXN1bHQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBQdWJsaXNoUmVzdWx0KAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ1NVQ0NFU1MnLAogICAgICAgICAgICAgICAgcnVsZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3J1bGUuUG9saWN5UnVsZSgKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdIaWdoIFZhbHVlIFRyYW5zZmVyIFBvbGljeScsIAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdwb2xpY3lfcnVsZV8wMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5X2VuZ2luZV92ZXJzaW9uID0gJ3YyJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVFJBTlNGRVInLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3ViX3R5cGUgPSAnVFJBTlNGRVInLCAKICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhdG9yID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfY29uZmlnLkFzc2V0Q29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmZ0X3RyYW5zZmVyID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfdHlwZXMgPSBbIkZVTkdJQkxFIiwiTkZUIiwiKiJdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gJ0lOQ0xVREVTJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9IGZpcmVibG9ja3MubW9kZWxzLnNvdXJjZV9jb25maWcuU291cmNlQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaWRlbnRpZmllci5BY2NvdW50SWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdhY2NvdW50MTIzJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHgxMjMuLi4nLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV90YWcuUG9saWN5VGFnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICd0YWdfMDAxJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAnSU5DTFVERVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoX2Zyb20gPSAnQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IHsidHlwZSI6WyJFWFRFUk5BTCJdLCJvcGVyYXRvciI6IklOQ0xVREVTIiwiYWRkcmVzc1R5cGUiOiJXSElURUxJU1RFRCJ9LCAKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfY29uZmlnLkFjY291bnRDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaF9mcm9tID0gJ0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgc2lkZSA9ICdCVVknLCAKICAgICAgICAgICAgICAgICAgICAgICAgdmVyZGljdCA9IGZpcmVibG9ja3MubW9kZWxzLnZlcmRpY3RfY29uZmlnLlZlcmRpY3RDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUxMT1cnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmVycyA9IGZpcmVibG9ja3MubW9kZWxzLmFwcHJvdmVyc19jb25maWcuQXBwcm92ZXJzQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbl9pbml0aWF0b3JfYXBwcm92ZSA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd19vcGVyYXRvcl9hc19hdXRob3JpemVyID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmFsX2dyb3VwcyA9IFt7InRocmVzaG9sZCI6MiwidXNlcnMiOlsidXNlcjEiLCJ1c2VyMiJdfV0sICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzaWduYXRlZF9zaWduZXJzID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzaWduYXRlZF9zaWduZXJzX2NvbmZpZy5EZXNpZ25hdGVkU2lnbmVyc0NvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1NJTkdMRScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzID0gWyJ1c2VyMSIsInVzZXIyIl0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwcyA9IFsiZ3JvdXAxIiwiZ3JvdXAyIl0sICksICksIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfb3Zlcl90aW1lID0gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X292ZXJfdGltZV9jb25maWcuQW1vdW50T3ZlclRpbWVDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZSA9IHsibWluIjoiMTAwIiwibWF4IjoiMTAwMDAifSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeSA9ICdVU0QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVfcGVyaW9kID0gZmlyZWJsb2Nrcy5tb2RlbHMudGltZV9wZXJpb2RfY29uZmlnLlRpbWVQZXJpb2RDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kcyA9ICc4NjQwMCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYXRvciA9ICdQRVJfU0lOR0xFX01BVENIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9ICdQRVJfU0lOR0xFX01BVENIJywgKSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IHsicmFuZ2UiOnsibWluIjoiMTAwIiwibWF4IjoiMTAwMDAifSwiY3VycmVuY3kiOiJVU0QifSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX2Rlc2NyaXB0b3IgPSAnSGlnaCB2YWx1ZSB0cmFuc2ZlciBwb2xpY3kgZm9yIGluc3RpdHV0aW9uYWwgY2xpZW50cycsIAogICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgaXNfZ2xvYmFsX3BvbGljeSA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbV9jYWxsID0gZmlyZWJsb2Nrcy5tb2RlbHMucHJvZ3JhbV9jYWxsX2NvbmZpZy5Qcm9ncmFtQ2FsbENvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWRfc29sYW5hX3Byb2dyYW1fY2FsbHMgPSAnV0hJVEVMSVNURUQnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgc2NyZWVuaW5nX21ldGFkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX21ldGFkYXRhX2NvbmZpZy5TY3JlZW5pbmdNZXRhZGF0YUNvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdPVVRCT1VORCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXIgPSAnQ0hBSU5BTFlTSVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpc2tfcmF0aW5nID0gJ01FRElVTScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlza19zY29yZSA9ICcwLjgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zdXJlX3R5cGUgPSAnRElSRUNUJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzID0gJzB4MTIzLi4uJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0X2FkZHJlc3MgPSAnMHg0NTYuLi4nLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVfYXNzZXQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9jb25maWcuQXNzZXRDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZnRfdHJhbnNmZXIgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldF90eXBlcyA9IFsiRlVOR0lCTEUiLCJORlQiLCIqIl0sICksIAogICAgICAgICAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gLCAKICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVfYW1vdW50ID0geyJyYW5nZSI6eyJtaW4iOiIxMDAiLCJtYXgiOiIxMDAwMCJ9fSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VfYW1vdW50ID0geyJyYW5nZSI6eyJtaW4iOiIxMDAiLCJtYXgiOiIxMDAwMCJ9fSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRfYXBwX2FkZHJlc3MgPSBmaXJlYmxvY2tzLm1vZGVscy5kX2FwcF9hZGRyZXNzX2NvbmZpZy5EQXBwQWRkcmVzc0NvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbF93aGl0ZWxpc3RlZCA9IFsicmFiYnkuaW8iLCJqdXAuYWciXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW5hbnRfd2hpdGVsaXN0ZWQgPSBbInVuaXN3YXAuY29tIiwib3BlbnNlYS5pbyJdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHMgPSBbIioiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlcml2YXRpb25fcGF0aCA9IHsicGF0aCI6WzQ0LDAsMCwwLDBdLCJwYXJ0aWFsIjpmYWxzZX0sIAogICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IDEsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgY2hlY2tfcmVzdWx0ID0gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X2NoZWNrX3Jlc3VsdC5Qb2xpY3lDaGVja1Jlc3VsdCgKICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0cyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3J1bGVfY2hlY2tfcmVzdWx0LlBvbGljeVJ1bGVDaGVja1Jlc3VsdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ29rJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3J1bGVfZXJyb3IuUG9saWN5UnVsZUVycm9yKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9tZXNzYWdlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlX25hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2ZpZWxkID0gJ29wZXJhdG9yJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwKICAgICAgICAgICAgICAgIG1ldGFkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X21ldGFkYXRhLlBvbGljeU1ldGFkYXRhKAogICAgICAgICAgICAgICAgICAgIGVkaXRlZF9ieSA9ICd1c2VyMTIzJywgCiAgICAgICAgICAgICAgICAgICAgZWRpdGVkX2F0ID0gJzIwMjQtMDEtMTVUMTA6MzA6MDBaJywgCiAgICAgICAgICAgICAgICAgICAgcHVibGlzaGVkX2J5ID0gJ3VzZXI0NTYnLCAKICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZWRfYXQgPSAnMjAyNC0wMS0xNVQxMTowMDowMFonLCAKICAgICAgICAgICAgICAgICAgICBwb2xpY3lfdHlwZSA9ICdUUkFOU0ZFUicsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBQdWJsaXNoUmVzdWx0KAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ1NVQ0NFU1MnLAogICAgICAgICAgICAgICAgcnVsZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3J1bGUuUG9saWN5UnVsZSgKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdIaWdoIFZhbHVlIFRyYW5zZmVyIFBvbGljeScsIAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdwb2xpY3lfcnVsZV8wMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5X2VuZ2luZV92ZXJzaW9uID0gJ3YyJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVFJBTlNGRVInLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3ViX3R5cGUgPSAnVFJBTlNGRVInLCAKICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhdG9yID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfY29uZmlnLkFzc2V0Q29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmZ0X3RyYW5zZmVyID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfdHlwZXMgPSBbIkZVTkdJQkxFIiwiTkZUIiwiKiJdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gJ0lOQ0xVREVTJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9IGZpcmVibG9ja3MubW9kZWxzLnNvdXJjZV9jb25maWcuU291cmNlQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaWRlbnRpZmllci5BY2NvdW50SWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdhY2NvdW50MTIzJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHgxMjMuLi4nLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV90YWcuUG9saWN5VGFnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICd0YWdfMDAxJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAnSU5DTFVERVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoX2Zyb20gPSAnQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IHsidHlwZSI6WyJFWFRFUk5BTCJdLCJvcGVyYXRvciI6IklOQ0xVREVTIiwiYWRkcmVzc1R5cGUiOiJXSElURUxJU1RFRCJ9LCAKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfY29uZmlnLkFjY291bnRDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaF9mcm9tID0gJ0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgc2lkZSA9ICdCVVknLCAKICAgICAgICAgICAgICAgICAgICAgICAgdmVyZGljdCA9IGZpcmVibG9ja3MubW9kZWxzLnZlcmRpY3RfY29uZmlnLlZlcmRpY3RDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUxMT1cnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmVycyA9IGZpcmVibG9ja3MubW9kZWxzLmFwcHJvdmVyc19jb25maWcuQXBwcm92ZXJzQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbl9pbml0aWF0b3JfYXBwcm92ZSA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd19vcGVyYXRvcl9hc19hdXRob3JpemVyID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmFsX2dyb3VwcyA9IFt7InRocmVzaG9sZCI6MiwidXNlcnMiOlsidXNlcjEiLCJ1c2VyMiJdfV0sICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzaWduYXRlZF9zaWduZXJzID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzaWduYXRlZF9zaWduZXJzX2NvbmZpZy5EZXNpZ25hdGVkU2lnbmVyc0NvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1NJTkdMRScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzID0gWyJ1c2VyMSIsInVzZXIyIl0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwcyA9IFsiZ3JvdXAxIiwiZ3JvdXAyIl0sICksICksIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfb3Zlcl90aW1lID0gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X292ZXJfdGltZV9jb25maWcuQW1vdW50T3ZlclRpbWVDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZSA9IHsibWluIjoiMTAwIiwibWF4IjoiMTAwMDAifSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeSA9ICdVU0QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVfcGVyaW9kID0gZmlyZWJsb2Nrcy5tb2RlbHMudGltZV9wZXJpb2RfY29uZmlnLlRpbWVQZXJpb2RDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kcyA9ICc4NjQwMCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYXRvciA9ICdQRVJfU0lOR0xFX01BVENIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9ICdQRVJfU0lOR0xFX01BVENIJywgKSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IHsicmFuZ2UiOnsibWluIjoiMTAwIiwibWF4IjoiMTAwMDAifSwiY3VycmVuY3kiOiJVU0QifSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX2Rlc2NyaXB0b3IgPSAnSGlnaCB2YWx1ZSB0cmFuc2ZlciBwb2xpY3kgZm9yIGluc3RpdHV0aW9uYWwgY2xpZW50cycsIAogICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgaXNfZ2xvYmFsX3BvbGljeSA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbV9jYWxsID0gZmlyZWJsb2Nrcy5tb2RlbHMucHJvZ3JhbV9jYWxsX2NvbmZpZy5Qcm9ncmFtQ2FsbENvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWRfc29sYW5hX3Byb2dyYW1fY2FsbHMgPSAnV0hJVEVMSVNURUQnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgc2NyZWVuaW5nX21ldGFkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX21ldGFkYXRhX2NvbmZpZy5TY3JlZW5pbmdNZXRhZGF0YUNvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdPVVRCT1VORCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXIgPSAnQ0hBSU5BTFlTSVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpc2tfcmF0aW5nID0gJ01FRElVTScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlza19zY29yZSA9ICcwLjgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zdXJlX3R5cGUgPSAnRElSRUNUJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzID0gJzB4MTIzLi4uJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0X2FkZHJlc3MgPSAnMHg0NTYuLi4nLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVfYXNzZXQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9jb25maWcuQXNzZXRDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZnRfdHJhbnNmZXIgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldF90eXBlcyA9IFsiRlVOR0lCTEUiLCJORlQiLCIqIl0sICksIAogICAgICAgICAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gLCAKICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVfYW1vdW50ID0geyJyYW5nZSI6eyJtaW4iOiIxMDAiLCJtYXgiOiIxMDAwMCJ9fSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VfYW1vdW50ID0geyJyYW5nZSI6eyJtaW4iOiIxMDAiLCJtYXgiOiIxMDAwMCJ9fSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRfYXBwX2FkZHJlc3MgPSBmaXJlYmxvY2tzLm1vZGVscy5kX2FwcF9hZGRyZXNzX2NvbmZpZy5EQXBwQWRkcmVzc0NvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbF93aGl0ZWxpc3RlZCA9IFsicmFiYnkuaW8iLCJqdXAuYWciXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW5hbnRfd2hpdGVsaXN0ZWQgPSBbInVuaXN3YXAuY29tIiwib3BlbnNlYS5pbyJdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHMgPSBbIioiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlcml2YXRpb25fcGF0aCA9IHsicGF0aCI6WzQ0LDAsMCwwLDBdLCJwYXJ0aWFsIjpmYWxzZX0sIAogICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IDEsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgY2hlY2tfcmVzdWx0ID0gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X2NoZWNrX3Jlc3VsdC5Qb2xpY3lDaGVja1Jlc3VsdCgKICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0cyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3J1bGVfY2hlY2tfcmVzdWx0LlBvbGljeVJ1bGVDaGVja1Jlc3VsdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ29rJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X3J1bGVfZXJyb3IuUG9saWN5UnVsZUVycm9yKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9tZXNzYWdlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlX25hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2ZpZWxkID0gJ29wZXJhdG9yJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwKICAgICAgICAgICAgICAgIG1ldGFkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMucG9saWN5X21ldGFkYXRhLlBvbGljeU1ldGFkYXRhKAogICAgICAgICAgICAgICAgICAgIGVkaXRlZF9ieSA9ICd1c2VyMTIzJywgCiAgICAgICAgICAgICAgICAgICAgZWRpdGVkX2F0ID0gJzIwMjQtMDEtMTVUMTA6MzA6MDBaJywgCiAgICAgICAgICAgICAgICAgICAgcHVibGlzaGVkX2J5ID0gJ3VzZXI0NTYnLCAKICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZWRfYXQgPSAnMjAyNC0wMS0xNVQxMTowMDowMFonLCAKICAgICAgICAgICAgICAgICAgICBwb2xpY3lfdHlwZSA9ICdUUkFOU0ZFUicsICksCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UHVibGlzaFJlc3VsdChzZWxmKToKICAgICAgICAiIiJUZXN0IFB1Ymxpc2hSZXN1bHQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_quote.py b/test/test_quote.py index e97b8a86..63e3c571 100644 --- a/test/test_quote.py +++ b/test/test_quote.py @@ -1,79 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.quote import Quote - - -class TestQuote(unittest.TestCase): - """Quote unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Quote: - """Test Quote - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Quote` - """ - model = Quote() - if include_optional: - return Quote( - via = None, - id = '', - quote_asset_id = '', - base_asset_id = '', - base_amount = '', - quote_amount = '', - price_impact = 1.337, - quote_min_amount = '', - execution_steps = [ - {"type":"MARKET_EXECUTION","fee":{"feeType":"ORDER","assetId":"USD","amountType":"FIXED","amount":"2.50"}} - ], - general_fees = [ - null - ], - side = 'BUY', - expires_at = '', - type = 'INDICATIVE' - ) - else: - return Quote( - via = None, - id = '', - quote_asset_id = '', - base_asset_id = '', - base_amount = '', - quote_amount = '', - side = 'BUY', - expires_at = '', - type = 'INDICATIVE', - ) - """ - - def testQuote(self): - """Test Quote""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnF1b3RlIGltcG9ydCBRdW90ZQoKCmNsYXNzIFRlc3RRdW90ZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJRdW90ZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUXVvdGU6CiAgICAgICAgIiIiVGVzdCBRdW90ZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBRdW90ZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFF1b3RlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUXVvdGUoCiAgICAgICAgICAgICAgICB2aWEgPSBOb25lLAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIHF1b3RlX2Fzc2V0X2lkID0gJycsCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0X2lkID0gJycsCiAgICAgICAgICAgICAgICBiYXNlX2Ftb3VudCA9ICcnLAogICAgICAgICAgICAgICAgcXVvdGVfYW1vdW50ID0gJycsCiAgICAgICAgICAgICAgICBwcmljZV9pbXBhY3QgPSAxLjMzNywKICAgICAgICAgICAgICAgIHF1b3RlX21pbl9hbW91bnQgPSAnJywKICAgICAgICAgICAgICAgIGV4ZWN1dGlvbl9zdGVwcyA9IFsKICAgICAgICAgICAgICAgICAgICB7InR5cGUiOiJNQVJLRVRfRVhFQ1VUSU9OIiwiZmVlIjp7ImZlZVR5cGUiOiJPUkRFUiIsImFzc2V0SWQiOiJVU0QiLCJhbW91bnRUeXBlIjoiRklYRUQiLCJhbW91bnQiOiIyLjUwIn19CiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGdlbmVyYWxfZmVlcyA9IFsKICAgICAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHNpZGUgPSAnQlVZJywKICAgICAgICAgICAgICAgIGV4cGlyZXNfYXQgPSAnJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnSU5ESUNBVElWRScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBRdW90ZSgKICAgICAgICAgICAgICAgIHZpYSA9IE5vbmUsCiAgICAgICAgICAgICAgICBpZCA9ICcnLAogICAgICAgICAgICAgICAgcXVvdGVfYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIGJhc2VfYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIGJhc2VfYW1vdW50ID0gJycsCiAgICAgICAgICAgICAgICBxdW90ZV9hbW91bnQgPSAnJywKICAgICAgICAgICAgICAgIHNpZGUgPSAnQlVZJywKICAgICAgICAgICAgICAgIGV4cGlyZXNfYXQgPSAnJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnSU5ESUNBVElWRScsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UXVvdGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBRdW90ZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_quote_execution_request_details.py b/test/test_quote_execution_request_details.py index 89505745..658bae7f 100644 --- a/test/test_quote_execution_request_details.py +++ b/test/test_quote_execution_request_details.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.quote_execution_request_details import ( - QuoteExecutionRequestDetails, -) - - -class TestQuoteExecutionRequestDetails(unittest.TestCase): - """QuoteExecutionRequestDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> QuoteExecutionRequestDetails: - """Test QuoteExecutionRequestDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `QuoteExecutionRequestDetails` - """ - model = QuoteExecutionRequestDetails() - if include_optional: - return QuoteExecutionRequestDetails( - type = 'QUOTE', - quote_id = '' - ) - else: - return QuoteExecutionRequestDetails( - type = 'QUOTE', - quote_id = '', - ) - """ - - def testQuoteExecutionRequestDetails(self): - """Test QuoteExecutionRequestDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnF1b3RlX2V4ZWN1dGlvbl9yZXF1ZXN0X2RldGFpbHMgaW1wb3J0ICgKICAgIFF1b3RlRXhlY3V0aW9uUmVxdWVzdERldGFpbHMsCikKCgpjbGFzcyBUZXN0UXVvdGVFeGVjdXRpb25SZXF1ZXN0RGV0YWlscyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJRdW90ZUV4ZWN1dGlvblJlcXVlc3REZXRhaWxzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBRdW90ZUV4ZWN1dGlvblJlcXVlc3REZXRhaWxzOgogICAgICAgICIiIlRlc3QgUXVvdGVFeGVjdXRpb25SZXF1ZXN0RGV0YWlscwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBRdW90ZUV4ZWN1dGlvblJlcXVlc3REZXRhaWxzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUXVvdGVFeGVjdXRpb25SZXF1ZXN0RGV0YWlscygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFF1b3RlRXhlY3V0aW9uUmVxdWVzdERldGFpbHMoCiAgICAgICAgICAgICAgICB0eXBlID0gJ1FVT1RFJywKICAgICAgICAgICAgICAgIHF1b3RlX2lkID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBRdW90ZUV4ZWN1dGlvblJlcXVlc3REZXRhaWxzKAogICAgICAgICAgICAgICAgdHlwZSA9ICdRVU9URScsCiAgICAgICAgICAgICAgICBxdW90ZV9pZCA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFF1b3RlRXhlY3V0aW9uUmVxdWVzdERldGFpbHMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBRdW90ZUV4ZWN1dGlvblJlcXVlc3REZXRhaWxzIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_quote_execution_step.py b/test/test_quote_execution_step.py index a8cc7f98..5b8188dc 100644 --- a/test/test_quote_execution_step.py +++ b/test/test_quote_execution_step.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.quote_execution_step import QuoteExecutionStep - - -class TestQuoteExecutionStep(unittest.TestCase): - """QuoteExecutionStep unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> QuoteExecutionStep: - """Test QuoteExecutionStep - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `QuoteExecutionStep` - """ - model = QuoteExecutionStep() - if include_optional: - return QuoteExecutionStep( - type = 'EXECUTE', - fee = None - ) - else: - return QuoteExecutionStep( - type = 'EXECUTE', - ) - """ - - def testQuoteExecutionStep(self): - """Test QuoteExecutionStep""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnF1b3RlX2V4ZWN1dGlvbl9zdGVwIGltcG9ydCBRdW90ZUV4ZWN1dGlvblN0ZXAKCgpjbGFzcyBUZXN0UXVvdGVFeGVjdXRpb25TdGVwKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlF1b3RlRXhlY3V0aW9uU3RlcCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUXVvdGVFeGVjdXRpb25TdGVwOgogICAgICAgICIiIlRlc3QgUXVvdGVFeGVjdXRpb25TdGVwCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFF1b3RlRXhlY3V0aW9uU3RlcGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFF1b3RlRXhlY3V0aW9uU3RlcCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFF1b3RlRXhlY3V0aW9uU3RlcCgKICAgICAgICAgICAgICAgIHR5cGUgPSAnRVhFQ1VURScsCiAgICAgICAgICAgICAgICBmZWUgPSBOb25lCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUXVvdGVFeGVjdXRpb25TdGVwKAogICAgICAgICAgICAgICAgdHlwZSA9ICdFWEVDVVRFJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RRdW90ZUV4ZWN1dGlvblN0ZXAoc2VsZik6CiAgICAgICAgIiIiVGVzdCBRdW90ZUV4ZWN1dGlvblN0ZXAiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_quote_execution_type_details.py b/test/test_quote_execution_type_details.py index 4e4233f6..0d10f166 100644 --- a/test/test_quote_execution_type_details.py +++ b/test/test_quote_execution_type_details.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.quote_execution_type_details import QuoteExecutionTypeDetails - - -class TestQuoteExecutionTypeDetails(unittest.TestCase): - """QuoteExecutionTypeDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> QuoteExecutionTypeDetails: - """Test QuoteExecutionTypeDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `QuoteExecutionTypeDetails` - """ - model = QuoteExecutionTypeDetails() - if include_optional: - return QuoteExecutionTypeDetails( - type = 'QUOTE', - quote_id = '', - quote_amount = '' - ) - else: - return QuoteExecutionTypeDetails( - type = 'QUOTE', - quote_id = '', - quote_amount = '', - ) - """ - - def testQuoteExecutionTypeDetails(self): - """Test QuoteExecutionTypeDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnF1b3RlX2V4ZWN1dGlvbl90eXBlX2RldGFpbHMgaW1wb3J0IFF1b3RlRXhlY3V0aW9uVHlwZURldGFpbHMKCgpjbGFzcyBUZXN0UXVvdGVFeGVjdXRpb25UeXBlRGV0YWlscyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJRdW90ZUV4ZWN1dGlvblR5cGVEZXRhaWxzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBRdW90ZUV4ZWN1dGlvblR5cGVEZXRhaWxzOgogICAgICAgICIiIlRlc3QgUXVvdGVFeGVjdXRpb25UeXBlRGV0YWlscwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBRdW90ZUV4ZWN1dGlvblR5cGVEZXRhaWxzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUXVvdGVFeGVjdXRpb25UeXBlRGV0YWlscygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFF1b3RlRXhlY3V0aW9uVHlwZURldGFpbHMoCiAgICAgICAgICAgICAgICB0eXBlID0gJ1FVT1RFJywKICAgICAgICAgICAgICAgIHF1b3RlX2lkID0gJycsCiAgICAgICAgICAgICAgICBxdW90ZV9hbW91bnQgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFF1b3RlRXhlY3V0aW9uVHlwZURldGFpbHMoCiAgICAgICAgICAgICAgICB0eXBlID0gJ1FVT1RFJywKICAgICAgICAgICAgICAgIHF1b3RlX2lkID0gJycsCiAgICAgICAgICAgICAgICBxdW90ZV9hbW91bnQgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RRdW90ZUV4ZWN1dGlvblR5cGVEZXRhaWxzKHNlbGYpOgogICAgICAgICIiIlRlc3QgUXVvdGVFeGVjdXRpb25UeXBlRGV0YWlscyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_quote_execution_with_requote_request_details.py b/test/test_quote_execution_with_requote_request_details.py index f99423e9..4841d105 100644 --- a/test/test_quote_execution_with_requote_request_details.py +++ b/test/test_quote_execution_with_requote_request_details.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.quote_execution_with_requote_request_details import ( - QuoteExecutionWithRequoteRequestDetails, -) - - -class TestQuoteExecutionWithRequoteRequestDetails(unittest.TestCase): - """QuoteExecutionWithRequoteRequestDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> QuoteExecutionWithRequoteRequestDetails: - """Test QuoteExecutionWithRequoteRequestDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `QuoteExecutionWithRequoteRequestDetails` - """ - model = QuoteExecutionWithRequoteRequestDetails() - if include_optional: - return QuoteExecutionWithRequoteRequestDetails( - type = 'QUOTE', - quote_id = '', - re_quote = None - ) - else: - return QuoteExecutionWithRequoteRequestDetails( - type = 'QUOTE', - quote_id = '', - ) - """ - - def testQuoteExecutionWithRequoteRequestDetails(self): - """Test QuoteExecutionWithRequoteRequestDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnF1b3RlX2V4ZWN1dGlvbl93aXRoX3JlcXVvdGVfcmVxdWVzdF9kZXRhaWxzIGltcG9ydCAoCiAgICBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVxdWVzdERldGFpbHMsCikKCgpjbGFzcyBUZXN0UXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlcXVlc3REZXRhaWxzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlF1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXF1ZXN0RGV0YWlscyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2UoCiAgICAgICAgc2VsZiwgaW5jbHVkZV9vcHRpb25hbAogICAgKSAtPiBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVxdWVzdERldGFpbHM6CiAgICAgICAgIiIiVGVzdCBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVxdWVzdERldGFpbHMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlcXVlc3REZXRhaWxzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlcXVlc3REZXRhaWxzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlcXVlc3REZXRhaWxzKAogICAgICAgICAgICAgICAgdHlwZSA9ICdRVU9URScsCiAgICAgICAgICAgICAgICBxdW90ZV9pZCA9ICcnLAogICAgICAgICAgICAgICAgcmVfcXVvdGUgPSBOb25lCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlcXVlc3REZXRhaWxzKAogICAgICAgICAgICAgICAgdHlwZSA9ICdRVU9URScsCiAgICAgICAgICAgICAgICBxdW90ZV9pZCA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFF1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXF1ZXN0RGV0YWlscyhzZWxmKToKICAgICAgICAiIiJUZXN0IFF1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXF1ZXN0RGV0YWlscyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_quote_execution_with_requote_response_details.py b/test/test_quote_execution_with_requote_response_details.py index ca6e0eb6..091333da 100644 --- a/test/test_quote_execution_with_requote_response_details.py +++ b/test/test_quote_execution_with_requote_response_details.py @@ -1,74 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.quote_execution_with_requote_response_details import ( - QuoteExecutionWithRequoteResponseDetails, -) - - -class TestQuoteExecutionWithRequoteResponseDetails(unittest.TestCase): - """QuoteExecutionWithRequoteResponseDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> QuoteExecutionWithRequoteResponseDetails: - """Test QuoteExecutionWithRequoteResponseDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `QuoteExecutionWithRequoteResponseDetails` - """ - model = QuoteExecutionWithRequoteResponseDetails() - if include_optional: - return QuoteExecutionWithRequoteResponseDetails( - type = 'QUOTE', - quote_id = '', - quote_amount = '', - side = 'BUY', - base_amount = '', - base_asset_id = '', - base_asset_rail = 'BLOCKCHAIN', - quote_asset_id = '', - quote_asset_rail = 'BLOCKCHAIN', - re_quote = None - ) - else: - return QuoteExecutionWithRequoteResponseDetails( - type = 'QUOTE', - quote_id = '', - quote_amount = '', - side = 'BUY', - base_amount = '', - base_asset_id = '', - quote_asset_id = '', - ) - """ - - def testQuoteExecutionWithRequoteResponseDetails(self): - """Test QuoteExecutionWithRequoteResponseDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnF1b3RlX2V4ZWN1dGlvbl93aXRoX3JlcXVvdGVfcmVzcG9uc2VfZGV0YWlscyBpbXBvcnQgKAogICAgUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlc3BvbnNlRGV0YWlscywKKQoKCmNsYXNzIFRlc3RRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVzcG9uc2VEZXRhaWxzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlF1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXNwb25zZURldGFpbHMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKAogICAgICAgIHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwKICAgICkgLT4gUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlc3BvbnNlRGV0YWlsczoKICAgICAgICAiIiJUZXN0IFF1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXNwb25zZURldGFpbHMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlc3BvbnNlRGV0YWlsc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFF1b3RlRXhlY3V0aW9uV2l0aFJlcXVvdGVSZXNwb25zZURldGFpbHMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVzcG9uc2VEZXRhaWxzKAogICAgICAgICAgICAgICAgdHlwZSA9ICdRVU9URScsCiAgICAgICAgICAgICAgICBxdW90ZV9pZCA9ICcnLAogICAgICAgICAgICAgICAgcXVvdGVfYW1vdW50ID0gJycsCiAgICAgICAgICAgICAgICBzaWRlID0gJ0JVWScsCiAgICAgICAgICAgICAgICBiYXNlX2Ftb3VudCA9ICcnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldF9yYWlsID0gJ0JMT0NLQ0hBSU4nLAogICAgICAgICAgICAgICAgcXVvdGVfYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIHF1b3RlX2Fzc2V0X3JhaWwgPSAnQkxPQ0tDSEFJTicsCiAgICAgICAgICAgICAgICByZV9xdW90ZSA9IE5vbmUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVzcG9uc2VEZXRhaWxzKAogICAgICAgICAgICAgICAgdHlwZSA9ICdRVU9URScsCiAgICAgICAgICAgICAgICBxdW90ZV9pZCA9ICcnLAogICAgICAgICAgICAgICAgcXVvdGVfYW1vdW50ID0gJycsCiAgICAgICAgICAgICAgICBzaWRlID0gJ0JVWScsCiAgICAgICAgICAgICAgICBiYXNlX2Ftb3VudCA9ICcnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgcXVvdGVfYXNzZXRfaWQgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RRdW90ZUV4ZWN1dGlvbldpdGhSZXF1b3RlUmVzcG9uc2VEZXRhaWxzKHNlbGYpOgogICAgICAgICIiIlRlc3QgUXVvdGVFeGVjdXRpb25XaXRoUmVxdW90ZVJlc3BvbnNlRGV0YWlscyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_quote_failure.py b/test/test_quote_failure.py index d41b075f..d204b387 100644 --- a/test/test_quote_failure.py +++ b/test/test_quote_failure.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.quote_failure import QuoteFailure - - -class TestQuoteFailure(unittest.TestCase): - """QuoteFailure unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> QuoteFailure: - """Test QuoteFailure - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `QuoteFailure` - """ - model = QuoteFailure() - if include_optional: - return QuoteFailure( - provider_id = 'BRIDGE', - account_id = 'acc_9f4e2d8b1c6a5e73', - error = {"code":900,"message":"Invalid base amount: must be greater than 0"} - ) - else: - return QuoteFailure( - provider_id = 'BRIDGE', - error = {"code":900,"message":"Invalid base amount: must be greater than 0"}, - ) - """ - - def testQuoteFailure(self): - """Test QuoteFailure""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnF1b3RlX2ZhaWx1cmUgaW1wb3J0IFF1b3RlRmFpbHVyZQoKCmNsYXNzIFRlc3RRdW90ZUZhaWx1cmUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUXVvdGVGYWlsdXJlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBRdW90ZUZhaWx1cmU6CiAgICAgICAgIiIiVGVzdCBRdW90ZUZhaWx1cmUKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUXVvdGVGYWlsdXJlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUXVvdGVGYWlsdXJlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUXVvdGVGYWlsdXJlKAogICAgICAgICAgICAgICAgcHJvdmlkZXJfaWQgPSAnQlJJREdFJywKICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnYWNjXzlmNGUyZDhiMWM2YTVlNzMnLAogICAgICAgICAgICAgICAgZXJyb3IgPSB7ImNvZGUiOjkwMCwibWVzc2FnZSI6IkludmFsaWQgYmFzZSBhbW91bnQ6IG11c3QgYmUgZ3JlYXRlciB0aGFuIDAifQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFF1b3RlRmFpbHVyZSgKICAgICAgICAgICAgICAgIHByb3ZpZGVyX2lkID0gJ0JSSURHRScsCiAgICAgICAgICAgICAgICBlcnJvciA9IHsiY29kZSI6OTAwLCJtZXNzYWdlIjoiSW52YWxpZCBiYXNlIGFtb3VudDogbXVzdCBiZSBncmVhdGVyIHRoYW4gMCJ9LAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFF1b3RlRmFpbHVyZShzZWxmKToKICAgICAgICAiIiJUZXN0IFF1b3RlRmFpbHVyZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_quote_properties_details.py b/test/test_quote_properties_details.py index b3023362..d7b1fccf 100644 --- a/test/test_quote_properties_details.py +++ b/test/test_quote_properties_details.py @@ -1,77 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.quote_properties_details import QuotePropertiesDetails - - -class TestQuotePropertiesDetails(unittest.TestCase): - """QuotePropertiesDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> QuotePropertiesDetails: - """Test QuotePropertiesDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `QuotePropertiesDetails` - """ - model = QuotePropertiesDetails() - if include_optional: - return QuotePropertiesDetails( - via = None, - id = '', - quote_asset_id = '', - base_asset_id = '', - base_amount = '', - quote_amount = '', - price_impact = 1.337, - quote_min_amount = '', - execution_steps = [ - {"type":"MARKET_EXECUTION","fee":{"feeType":"ORDER","assetId":"USD","amountType":"FIXED","amount":"2.50"}} - ], - general_fees = [ - null - ], - side = 'BUY', - expires_at = '' - ) - else: - return QuotePropertiesDetails( - via = None, - id = '', - quote_asset_id = '', - base_asset_id = '', - base_amount = '', - quote_amount = '', - side = 'BUY', - expires_at = '', - ) - """ - - def testQuotePropertiesDetails(self): - """Test QuotePropertiesDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnF1b3RlX3Byb3BlcnRpZXNfZGV0YWlscyBpbXBvcnQgUXVvdGVQcm9wZXJ0aWVzRGV0YWlscwoKCmNsYXNzIFRlc3RRdW90ZVByb3BlcnRpZXNEZXRhaWxzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlF1b3RlUHJvcGVydGllc0RldGFpbHMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFF1b3RlUHJvcGVydGllc0RldGFpbHM6CiAgICAgICAgIiIiVGVzdCBRdW90ZVByb3BlcnRpZXNEZXRhaWxzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFF1b3RlUHJvcGVydGllc0RldGFpbHNgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBRdW90ZVByb3BlcnRpZXNEZXRhaWxzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUXVvdGVQcm9wZXJ0aWVzRGV0YWlscygKICAgICAgICAgICAgICAgIHZpYSA9IE5vbmUsCiAgICAgICAgICAgICAgICBpZCA9ICcnLAogICAgICAgICAgICAgICAgcXVvdGVfYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIGJhc2VfYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIGJhc2VfYW1vdW50ID0gJycsCiAgICAgICAgICAgICAgICBxdW90ZV9hbW91bnQgPSAnJywKICAgICAgICAgICAgICAgIHByaWNlX2ltcGFjdCA9IDEuMzM3LAogICAgICAgICAgICAgICAgcXVvdGVfbWluX2Ftb3VudCA9ICcnLAogICAgICAgICAgICAgICAgZXhlY3V0aW9uX3N0ZXBzID0gWwogICAgICAgICAgICAgICAgICAgIHsidHlwZSI6Ik1BUktFVF9FWEVDVVRJT04iLCJmZWUiOnsiZmVlVHlwZSI6Ik9SREVSIiwiYXNzZXRJZCI6IlVTRCIsImFtb3VudFR5cGUiOiJGSVhFRCIsImFtb3VudCI6IjIuNTAifX0KICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgZ2VuZXJhbF9mZWVzID0gWwogICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgc2lkZSA9ICdCVVknLAogICAgICAgICAgICAgICAgZXhwaXJlc19hdCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUXVvdGVQcm9wZXJ0aWVzRGV0YWlscygKICAgICAgICAgICAgICAgIHZpYSA9IE5vbmUsCiAgICAgICAgICAgICAgICBpZCA9ICcnLAogICAgICAgICAgICAgICAgcXVvdGVfYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIGJhc2VfYXNzZXRfaWQgPSAnJywKICAgICAgICAgICAgICAgIGJhc2VfYW1vdW50ID0gJycsCiAgICAgICAgICAgICAgICBxdW90ZV9hbW91bnQgPSAnJywKICAgICAgICAgICAgICAgIHNpZGUgPSAnQlVZJywKICAgICAgICAgICAgICAgIGV4cGlyZXNfYXQgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RRdW90ZVByb3BlcnRpZXNEZXRhaWxzKHNlbGYpOgogICAgICAgICIiIlRlc3QgUXVvdGVQcm9wZXJ0aWVzRGV0YWlscyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_quote_type_enum.py b/test/test_quote_type_enum.py index e5177b48..13efa847 100644 --- a/test/test_quote_type_enum.py +++ b/test/test_quote_type_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.quote_type_enum import QuoteTypeEnum - - -class TestQuoteTypeEnum(unittest.TestCase): - """QuoteTypeEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testQuoteTypeEnum(self): - """Test QuoteTypeEnum""" - # inst = QuoteTypeEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnF1b3RlX3R5cGVfZW51bSBpbXBvcnQgUXVvdGVUeXBlRW51bQoKCmNsYXNzIFRlc3RRdW90ZVR5cGVFbnVtKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlF1b3RlVHlwZUVudW0gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0UXVvdGVUeXBlRW51bShzZWxmKToKICAgICAgICAiIiJUZXN0IFF1b3RlVHlwZUVudW0iIiIKICAgICAgICAjIGluc3QgPSBRdW90ZVR5cGVFbnVtKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_quotes_response.py b/test/test_quotes_response.py index 1495f403..34ad69ba 100644 --- a/test/test_quotes_response.py +++ b/test/test_quotes_response.py @@ -1,71 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.quotes_response import QuotesResponse - - -class TestQuotesResponse(unittest.TestCase): - """QuotesResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> QuotesResponse: - """Test QuotesResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `QuotesResponse` - """ - model = QuotesResponse() - if include_optional: - return QuotesResponse( - quotes = [ - null - ], - quote_failures = [ - fireblocks.models.quote_failure.QuoteFailure( - provider_id = 'BRIDGE', - account_id = 'acc_9f4e2d8b1c6a5e73', - error = {"code":900,"message":"Invalid base amount: must be greater than 0"}, ) - ] - ) - else: - return QuotesResponse( - quotes = [ - null - ], - quote_failures = [ - fireblocks.models.quote_failure.QuoteFailure( - provider_id = 'BRIDGE', - account_id = 'acc_9f4e2d8b1c6a5e73', - error = {"code":900,"message":"Invalid base amount: must be greater than 0"}, ) - ], - ) - """ - - def testQuotesResponse(self): - """Test QuotesResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnF1b3Rlc19yZXNwb25zZSBpbXBvcnQgUXVvdGVzUmVzcG9uc2UKCgpjbGFzcyBUZXN0UXVvdGVzUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUXVvdGVzUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFF1b3Rlc1Jlc3BvbnNlOgogICAgICAgICIiIlRlc3QgUXVvdGVzUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUXVvdGVzUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBRdW90ZXNSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFF1b3Rlc1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgcXVvdGVzID0gWwogICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgcXVvdGVfZmFpbHVyZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucXVvdGVfZmFpbHVyZS5RdW90ZUZhaWx1cmUoCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyX2lkID0gJ0JSSURHRScsIAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJ2FjY185ZjRlMmQ4YjFjNmE1ZTczJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0geyJjb2RlIjo5MDAsIm1lc3NhZ2UiOiJJbnZhbGlkIGJhc2UgYW1vdW50OiBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwIn0sICkKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUXVvdGVzUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBxdW90ZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBxdW90ZV9mYWlsdXJlcyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5xdW90ZV9mYWlsdXJlLlF1b3RlRmFpbHVyZSgKICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJfaWQgPSAnQlJJREdFJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnYWNjXzlmNGUyZDhiMWM2YTVlNzMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSB7ImNvZGUiOjkwMCwibWVzc2FnZSI6IkludmFsaWQgYmFzZSBhbW91bnQ6IG11c3QgYmUgZ3JlYXRlciB0aGFuIDAifSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UXVvdGVzUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBRdW90ZXNSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_re_quote_details.py b/test/test_re_quote_details.py index a08fc82c..a152583c 100644 --- a/test/test_re_quote_details.py +++ b/test/test_re_quote_details.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.re_quote_details import ReQuoteDetails - - -class TestReQuoteDetails(unittest.TestCase): - """ReQuoteDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ReQuoteDetails: - """Test ReQuoteDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ReQuoteDetails` - """ - model = ReQuoteDetails() - if include_optional: - return ReQuoteDetails( - re_quote = None - ) - else: - return ReQuoteDetails( - ) - """ - - def testReQuoteDetails(self): - """Test ReQuoteDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlX3F1b3RlX2RldGFpbHMgaW1wb3J0IFJlUXVvdGVEZXRhaWxzCgoKY2xhc3MgVGVzdFJlUXVvdGVEZXRhaWxzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlJlUXVvdGVEZXRhaWxzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBSZVF1b3RlRGV0YWlsczoKICAgICAgICAiIiJUZXN0IFJlUXVvdGVEZXRhaWxzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFJlUXVvdGVEZXRhaWxzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUmVRdW90ZURldGFpbHMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBSZVF1b3RlRGV0YWlscygKICAgICAgICAgICAgICAgIHJlX3F1b3RlID0gTm9uZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFJlUXVvdGVEZXRhaWxzKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFJlUXVvdGVEZXRhaWxzKHNlbGYpOgogICAgICAgICIiIlRlc3QgUmVRdW90ZURldGFpbHMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_re_quote_details_re_quote.py b/test/test_re_quote_details_re_quote.py index 2cfc828a..d8fe9394 100644 --- a/test/test_re_quote_details_re_quote.py +++ b/test/test_re_quote_details_re_quote.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.re_quote_details_re_quote import ReQuoteDetailsReQuote - - -class TestReQuoteDetailsReQuote(unittest.TestCase): - """ReQuoteDetailsReQuote unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ReQuoteDetailsReQuote: - """Test ReQuoteDetailsReQuote - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ReQuoteDetailsReQuote` - """ - model = ReQuoteDetailsReQuote() - if include_optional: - return ReQuoteDetailsReQuote( - type = 'RETRY', - count = 1, - slippage_bps = 1 - ) - else: - return ReQuoteDetailsReQuote( - type = 'RETRY', - count = 1, - ) - """ - - def testReQuoteDetailsReQuote(self): - """Test ReQuoteDetailsReQuote""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlX3F1b3RlX2RldGFpbHNfcmVfcXVvdGUgaW1wb3J0IFJlUXVvdGVEZXRhaWxzUmVRdW90ZQoKCmNsYXNzIFRlc3RSZVF1b3RlRGV0YWlsc1JlUXVvdGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUmVRdW90ZURldGFpbHNSZVF1b3RlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBSZVF1b3RlRGV0YWlsc1JlUXVvdGU6CiAgICAgICAgIiIiVGVzdCBSZVF1b3RlRGV0YWlsc1JlUXVvdGUKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUmVRdW90ZURldGFpbHNSZVF1b3RlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUmVRdW90ZURldGFpbHNSZVF1b3RlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUmVRdW90ZURldGFpbHNSZVF1b3RlKAogICAgICAgICAgICAgICAgdHlwZSA9ICdSRVRSWScsCiAgICAgICAgICAgICAgICBjb3VudCA9IDEsCiAgICAgICAgICAgICAgICBzbGlwcGFnZV9icHMgPSAxCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUmVRdW90ZURldGFpbHNSZVF1b3RlKAogICAgICAgICAgICAgICAgdHlwZSA9ICdSRVRSWScsCiAgICAgICAgICAgICAgICBjb3VudCA9IDEsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UmVRdW90ZURldGFpbHNSZVF1b3RlKHNlbGYpOgogICAgICAgICIiIlRlc3QgUmVRdW90ZURldGFpbHNSZVF1b3RlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_read_abi_function.py b/test/test_read_abi_function.py index a1cec73f..94c73dd2 100644 --- a/test/test_read_abi_function.py +++ b/test/test_read_abi_function.py @@ -1,105 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.read_abi_function import ReadAbiFunction - - -class TestReadAbiFunction(unittest.TestCase): - """ReadAbiFunction unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ReadAbiFunction: - """Test ReadAbiFunction - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ReadAbiFunction` - """ - model = ReadAbiFunction() - if include_optional: - return ReadAbiFunction( - state_mutability = 'pure', - outputs = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], ) - ], - name = '', - type = '', - inputs = [ - fireblocks.models.parameter_with_value.ParameterWithValue( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], - value = 'true', - function_value = null, ) - ], - description = '' - ) - else: - return ReadAbiFunction( - state_mutability = 'pure', - type = '', - inputs = [ - fireblocks.models.parameter_with_value.ParameterWithValue( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], - value = 'true', - function_value = null, ) - ], - ) - """ - - def testReadAbiFunction(self): - """Test ReadAbiFunction""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlYWRfYWJpX2Z1bmN0aW9uIGltcG9ydCBSZWFkQWJpRnVuY3Rpb24KCgpjbGFzcyBUZXN0UmVhZEFiaUZ1bmN0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlJlYWRBYmlGdW5jdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUmVhZEFiaUZ1bmN0aW9uOgogICAgICAgICIiIlRlc3QgUmVhZEFiaUZ1bmN0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFJlYWRBYmlGdW5jdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFJlYWRBYmlGdW5jdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFJlYWRBYmlGdW5jdGlvbigKICAgICAgICAgICAgICAgIHN0YXRlX211dGFiaWxpdHkgPSAncHVyZScsCiAgICAgICAgICAgICAgICBvdXRwdXRzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlci5QYXJhbWV0ZXIoCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXIuUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGUgbmFtZSBvZiB0aGUgdG9rZW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBuYW1lID0gJycsCiAgICAgICAgICAgICAgICB0eXBlID0gJycsCiAgICAgICAgICAgICAgICBpbnB1dHMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyX3dpdGhfdmFsdWUuUGFyYW1ldGVyV2l0aFZhbHVlKAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ19uYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1RoZSBuYW1lIG9mIHRoZSB0b2tlbicsIAogICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyLlBhcmFtZXRlcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ19uYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxfdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ3N0cmluZycsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9ICd0cnVlJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uX3ZhbHVlID0gbnVsbCwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUmVhZEFiaUZ1bmN0aW9uKAogICAgICAgICAgICAgICAgc3RhdGVfbXV0YWJpbGl0eSA9ICdwdXJlJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnJywKICAgICAgICAgICAgICAgIGlucHV0cyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXJfd2l0aF92YWx1ZS5QYXJhbWV0ZXJXaXRoVmFsdWUoCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXIuUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGUgbmFtZSBvZiB0aGUgdG9rZW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gJ3RydWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25fdmFsdWUgPSBudWxsLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RSZWFkQWJpRnVuY3Rpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBSZWFkQWJpRnVuY3Rpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_read_call_function_dto.py b/test/test_read_call_function_dto.py index cd68747e..cfd0b0b2 100644 --- a/test/test_read_call_function_dto.py +++ b/test/test_read_call_function_dto.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.read_call_function_dto import ReadCallFunctionDto - - -class TestReadCallFunctionDto(unittest.TestCase): - """ReadCallFunctionDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ReadCallFunctionDto: - """Test ReadCallFunctionDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ReadCallFunctionDto` - """ - model = ReadCallFunctionDto() - if include_optional: - return ReadCallFunctionDto( - abi_function = None - ) - else: - return ReadCallFunctionDto( - abi_function = None, - ) - """ - - def testReadCallFunctionDto(self): - """Test ReadCallFunctionDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlYWRfY2FsbF9mdW5jdGlvbl9kdG8gaW1wb3J0IFJlYWRDYWxsRnVuY3Rpb25EdG8KCgpjbGFzcyBUZXN0UmVhZENhbGxGdW5jdGlvbkR0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJSZWFkQ2FsbEZ1bmN0aW9uRHRvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBSZWFkQ2FsbEZ1bmN0aW9uRHRvOgogICAgICAgICIiIlRlc3QgUmVhZENhbGxGdW5jdGlvbkR0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBSZWFkQ2FsbEZ1bmN0aW9uRHRvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUmVhZENhbGxGdW5jdGlvbkR0bygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFJlYWRDYWxsRnVuY3Rpb25EdG8oCiAgICAgICAgICAgICAgICBhYmlfZnVuY3Rpb24gPSBOb25lCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUmVhZENhbGxGdW5jdGlvbkR0bygKICAgICAgICAgICAgICAgIGFiaV9mdW5jdGlvbiA9IE5vbmUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UmVhZENhbGxGdW5jdGlvbkR0byhzZWxmKToKICAgICAgICAiIiJUZXN0IFJlYWRDYWxsRnVuY3Rpb25EdG8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_read_call_function_dto_abi_function.py b/test/test_read_call_function_dto_abi_function.py index be68df67..c32f7b90 100644 --- a/test/test_read_call_function_dto_abi_function.py +++ b/test/test_read_call_function_dto_abi_function.py @@ -1,136 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.read_call_function_dto_abi_function import ( - ReadCallFunctionDtoAbiFunction, -) - - -class TestReadCallFunctionDtoAbiFunction(unittest.TestCase): - """ReadCallFunctionDtoAbiFunction unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ReadCallFunctionDtoAbiFunction: - """Test ReadCallFunctionDtoAbiFunction - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ReadCallFunctionDtoAbiFunction` - """ - model = ReadCallFunctionDtoAbiFunction() - if include_optional: - return ReadCallFunctionDtoAbiFunction( - state_mutability = 'pure', - outputs = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], ) - ], - name = 'approve', - type = '', - inputs = [ - fireblocks.models.parameter_with_value.ParameterWithValue( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], - value = 'true', - function_value = null, ) - ], - description = '', - discriminator = [13], - accounts = [ - fireblocks.models.sol_account_with_value.SOLAccountWithValue( - name = 'mint', - signer = False, - writable = True, - address = '4PVcDXAkAgQkVx4puiSXdZ5H8BrTqUzstJBKKWFy3XsH', ) - ], - args = [ - fireblocks.models.sol_parameter_with_value.SolParameterWithValue( - value = '1000000', - name = 'mint', - type = 'u8', ) - ] - ) - else: - return ReadCallFunctionDtoAbiFunction( - state_mutability = 'pure', - name = 'approve', - type = '', - inputs = [ - fireblocks.models.parameter_with_value.ParameterWithValue( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], - value = 'true', - function_value = null, ) - ], - discriminator = [13], - accounts = [ - fireblocks.models.sol_account_with_value.SOLAccountWithValue( - name = 'mint', - signer = False, - writable = True, - address = '4PVcDXAkAgQkVx4puiSXdZ5H8BrTqUzstJBKKWFy3XsH', ) - ], - args = [ - fireblocks.models.sol_parameter_with_value.SolParameterWithValue( - value = '1000000', - name = 'mint', - type = 'u8', ) - ], - ) - """ - - def testReadCallFunctionDtoAbiFunction(self): - """Test ReadCallFunctionDtoAbiFunction""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlYWRfY2FsbF9mdW5jdGlvbl9kdG9fYWJpX2Z1bmN0aW9uIGltcG9ydCAoCiAgICBSZWFkQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb24sCikKCgpjbGFzcyBUZXN0UmVhZENhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlJlYWRDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUmVhZENhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uOgogICAgICAgICIiIlRlc3QgUmVhZENhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFJlYWRDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFJlYWRDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFJlYWRDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbigKICAgICAgICAgICAgICAgIHN0YXRlX211dGFiaWxpdHkgPSAncHVyZScsCiAgICAgICAgICAgICAgICBvdXRwdXRzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlci5QYXJhbWV0ZXIoCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXIuUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGUgbmFtZSBvZiB0aGUgdG9rZW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBuYW1lID0gJ2FwcHJvdmUnLAogICAgICAgICAgICAgICAgdHlwZSA9ICcnLAogICAgICAgICAgICAgICAgaW5wdXRzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlcl93aXRoX3ZhbHVlLlBhcmFtZXRlcldpdGhWYWx1ZSgKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdfbmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGUgbmFtZSBvZiB0aGUgdG9rZW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxfdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50cyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlci5QYXJhbWV0ZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdfbmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1RoZSBuYW1lIG9mIHRoZSB0b2tlbicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdzdHJpbmcnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAndHJ1ZScsIAogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbl92YWx1ZSA9IG51bGwsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnJywKICAgICAgICAgICAgICAgIGRpc2NyaW1pbmF0b3IgPSBbMTNdLAogICAgICAgICAgICAgICAgYWNjb3VudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuc29sX2FjY291bnRfd2l0aF92YWx1ZS5TT0xBY2NvdW50V2l0aFZhbHVlKAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ21pbnQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVyID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZSA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzRQVmNEWEFrQWdRa1Z4NHB1aVNYZFo1SDhCclRxVXpzdEpCS0tXRnkzWHNIJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBhcmdzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnNvbF9wYXJhbWV0ZXJfd2l0aF92YWx1ZS5Tb2xQYXJhbWV0ZXJXaXRoVmFsdWUoCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gJzEwMDAwMDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdtaW50JywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAndTgnLCApCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFJlYWRDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbigKICAgICAgICAgICAgICAgIHN0YXRlX211dGFiaWxpdHkgPSAncHVyZScsCiAgICAgICAgICAgICAgICBuYW1lID0gJ2FwcHJvdmUnLAogICAgICAgICAgICAgICAgdHlwZSA9ICcnLAogICAgICAgICAgICAgICAgaW5wdXRzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlcl93aXRoX3ZhbHVlLlBhcmFtZXRlcldpdGhWYWx1ZSgKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdfbmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGUgbmFtZSBvZiB0aGUgdG9rZW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxfdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50cyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlci5QYXJhbWV0ZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdfbmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1RoZSBuYW1lIG9mIHRoZSB0b2tlbicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdzdHJpbmcnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAndHJ1ZScsIAogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbl92YWx1ZSA9IG51bGwsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgZGlzY3JpbWluYXRvciA9IFsxM10sCiAgICAgICAgICAgICAgICBhY2NvdW50cyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5zb2xfYWNjb3VudF93aXRoX3ZhbHVlLlNPTEFjY291bnRXaXRoVmFsdWUoCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnbWludCcsIAogICAgICAgICAgICAgICAgICAgICAgICBzaWduZXIgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnNFBWY0RYQWtBZ1FrVng0cHVpU1hkWjVIOEJyVHFVenN0SkJLS1dGeTNYc0gnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuc29sX3BhcmFtZXRlcl93aXRoX3ZhbHVlLlNvbFBhcmFtZXRlcldpdGhWYWx1ZSgKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAnMTAwMDAwMCcsIAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ21pbnQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICd1OCcsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFJlYWRDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IFJlYWRDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_recipient_handle.py b/test/test_recipient_handle.py index d55b339a..67559ad8 100644 --- a/test/test_recipient_handle.py +++ b/test/test_recipient_handle.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.recipient_handle import RecipientHandle - - -class TestRecipientHandle(unittest.TestCase): - """RecipientHandle unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> RecipientHandle: - """Test RecipientHandle - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `RecipientHandle` - """ - model = RecipientHandle() - if include_optional: - return RecipientHandle( - type = 'EMAIL', - value = 'john.smith@email.com' - ) - else: - return RecipientHandle( - type = 'EMAIL', - value = 'john.smith@email.com', - ) - """ - - def testRecipientHandle(self): - """Test RecipientHandle""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlY2lwaWVudF9oYW5kbGUgaW1wb3J0IFJlY2lwaWVudEhhbmRsZQoKCmNsYXNzIFRlc3RSZWNpcGllbnRIYW5kbGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUmVjaXBpZW50SGFuZGxlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBSZWNpcGllbnRIYW5kbGU6CiAgICAgICAgIiIiVGVzdCBSZWNpcGllbnRIYW5kbGUKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUmVjaXBpZW50SGFuZGxlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUmVjaXBpZW50SGFuZGxlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUmVjaXBpZW50SGFuZGxlKAogICAgICAgICAgICAgICAgdHlwZSA9ICdFTUFJTCcsCiAgICAgICAgICAgICAgICB2YWx1ZSA9ICdqb2huLnNtaXRoQGVtYWlsLmNvbScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBSZWNpcGllbnRIYW5kbGUoCiAgICAgICAgICAgICAgICB0eXBlID0gJ0VNQUlMJywKICAgICAgICAgICAgICAgIHZhbHVlID0gJ2pvaG4uc21pdGhAZW1haWwuY29tJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RSZWNpcGllbnRIYW5kbGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBSZWNpcGllbnRIYW5kbGUiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_redeem_funds_to_linked_dda_response.py b/test/test_redeem_funds_to_linked_dda_response.py index 62aa2c2e..12694be5 100644 --- a/test/test_redeem_funds_to_linked_dda_response.py +++ b/test/test_redeem_funds_to_linked_dda_response.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.redeem_funds_to_linked_dda_response import ( - RedeemFundsToLinkedDDAResponse, -) - - -class TestRedeemFundsToLinkedDDAResponse(unittest.TestCase): - """RedeemFundsToLinkedDDAResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> RedeemFundsToLinkedDDAResponse: - """Test RedeemFundsToLinkedDDAResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `RedeemFundsToLinkedDDAResponse` - """ - model = RedeemFundsToLinkedDDAResponse() - if include_optional: - return RedeemFundsToLinkedDDAResponse( - success = True - ) - else: - return RedeemFundsToLinkedDDAResponse( - success = True, - ) - """ - - def testRedeemFundsToLinkedDDAResponse(self): - """Test RedeemFundsToLinkedDDAResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlZGVlbV9mdW5kc190b19saW5rZWRfZGRhX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBSZWRlZW1GdW5kc1RvTGlua2VkRERBUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0UmVkZWVtRnVuZHNUb0xpbmtlZEREQVJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlJlZGVlbUZ1bmRzVG9MaW5rZWREREFSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUmVkZWVtRnVuZHNUb0xpbmtlZEREQVJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgUmVkZWVtRnVuZHNUb0xpbmtlZEREQVJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFJlZGVlbUZ1bmRzVG9MaW5rZWREREFSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFJlZGVlbUZ1bmRzVG9MaW5rZWREREFSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFJlZGVlbUZ1bmRzVG9MaW5rZWREREFSZXNwb25zZSgKICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUmVkZWVtRnVuZHNUb0xpbmtlZEREQVJlc3BvbnNlKAogICAgICAgICAgICAgICAgc3VjY2VzcyA9IFRydWUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UmVkZWVtRnVuZHNUb0xpbmtlZEREQVJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgUmVkZWVtRnVuZHNUb0xpbmtlZEREQVJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_register_new_asset_request.py b/test/test_register_new_asset_request.py index 53591eaa..39dcf4ca 100644 --- a/test/test_register_new_asset_request.py +++ b/test/test_register_new_asset_request.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.register_new_asset_request import RegisterNewAssetRequest - - -class TestRegisterNewAssetRequest(unittest.TestCase): - """RegisterNewAssetRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> RegisterNewAssetRequest: - """Test RegisterNewAssetRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `RegisterNewAssetRequest` - """ - model = RegisterNewAssetRequest() - if include_optional: - return RegisterNewAssetRequest( - blockchain_id = '(ETH, ETH_TEST5, MATIC_POLYGON)', - address = '0xe7A9as1oa38bc4da0248s179E30aa94CcF453991', - symbol = 'TST3' - ) - else: - return RegisterNewAssetRequest( - blockchain_id = '(ETH, ETH_TEST5, MATIC_POLYGON)', - address = '0xe7A9as1oa38bc4da0248s179E30aa94CcF453991', - ) - """ - - def testRegisterNewAssetRequest(self): - """Test RegisterNewAssetRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlZ2lzdGVyX25ld19hc3NldF9yZXF1ZXN0IGltcG9ydCBSZWdpc3Rlck5ld0Fzc2V0UmVxdWVzdAoKCmNsYXNzIFRlc3RSZWdpc3Rlck5ld0Fzc2V0UmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJSZWdpc3Rlck5ld0Fzc2V0UmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUmVnaXN0ZXJOZXdBc3NldFJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBSZWdpc3Rlck5ld0Fzc2V0UmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBSZWdpc3Rlck5ld0Fzc2V0UmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFJlZ2lzdGVyTmV3QXNzZXRSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUmVnaXN0ZXJOZXdBc3NldFJlcXVlc3QoCiAgICAgICAgICAgICAgICBibG9ja2NoYWluX2lkID0gJyhFVEgsIEVUSF9URVNUNSwgTUFUSUNfUE9MWUdPTiknLAogICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweGU3QTlhczFvYTM4YmM0ZGEwMjQ4czE3OUUzMGFhOTRDY0Y0NTM5OTEnLAogICAgICAgICAgICAgICAgc3ltYm9sID0gJ1RTVDMnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUmVnaXN0ZXJOZXdBc3NldFJlcXVlc3QoCiAgICAgICAgICAgICAgICBibG9ja2NoYWluX2lkID0gJyhFVEgsIEVUSF9URVNUNSwgTUFUSUNfUE9MWUdPTiknLAogICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweGU3QTlhczFvYTM4YmM0ZGEwMjQ4czE3OUUzMGFhOTRDY0Y0NTM5OTEnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFJlZ2lzdGVyTmV3QXNzZXRSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgUmVnaXN0ZXJOZXdBc3NldFJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_reissue_multichain_token_request.py b/test/test_reissue_multichain_token_request.py index 66a93354..10c2c162 100644 --- a/test/test_reissue_multichain_token_request.py +++ b/test/test_reissue_multichain_token_request.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.reissue_multichain_token_request import ( - ReissueMultichainTokenRequest, -) - - -class TestReissueMultichainTokenRequest(unittest.TestCase): - """ReissueMultichainTokenRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ReissueMultichainTokenRequest: - """Test ReissueMultichainTokenRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ReissueMultichainTokenRequest` - """ - model = ReissueMultichainTokenRequest() - if include_optional: - return ReissueMultichainTokenRequest( - vault_account_id = '0', - chains = ["ETH","POLYGON"], - use_gasless = True, - fee = '2000', - fee_level = 'MEDIUM' - ) - else: - return ReissueMultichainTokenRequest( - vault_account_id = '0', - chains = ["ETH","POLYGON"], - ) - """ - - def testReissueMultichainTokenRequest(self): - """Test ReissueMultichainTokenRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlaXNzdWVfbXVsdGljaGFpbl90b2tlbl9yZXF1ZXN0IGltcG9ydCAoCiAgICBSZWlzc3VlTXVsdGljaGFpblRva2VuUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RSZWlzc3VlTXVsdGljaGFpblRva2VuUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJSZWlzc3VlTXVsdGljaGFpblRva2VuUmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUmVpc3N1ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBSZWlzc3VlTXVsdGljaGFpblRva2VuUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBSZWlzc3VlTXVsdGljaGFpblRva2VuUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFJlaXNzdWVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUmVpc3N1ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3QoCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gJzAnLAogICAgICAgICAgICAgICAgY2hhaW5zID0gWyJFVEgiLCJQT0xZR09OIl0sCiAgICAgICAgICAgICAgICB1c2VfZ2FzbGVzcyA9IFRydWUsCiAgICAgICAgICAgICAgICBmZWUgPSAnMjAwMCcsCiAgICAgICAgICAgICAgICBmZWVfbGV2ZWwgPSAnTUVESVVNJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFJlaXNzdWVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0KAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcwJywKICAgICAgICAgICAgICAgIGNoYWlucyA9IFsiRVRIIiwiUE9MWUdPTiJdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFJlaXNzdWVNdWx0aWNoYWluVG9rZW5SZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgUmVpc3N1ZU11bHRpY2hhaW5Ub2tlblJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_related_request.py b/test/test_related_request.py index d8aae296..7878894b 100644 --- a/test/test_related_request.py +++ b/test/test_related_request.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.related_request import RelatedRequest - - -class TestRelatedRequest(unittest.TestCase): - """RelatedRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> RelatedRequest: - """Test RelatedRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `RelatedRequest` - """ - model = RelatedRequest() - if include_optional: - return RelatedRequest( - status = 'deactivating', - in_progress = False, - amount = '0.05', - tx_id = 'c80601f4-d7b1-4795-a8ee-b09cdb5b450c' - ) - else: - return RelatedRequest( - status = 'deactivating', - in_progress = False, - amount = '0.05', - tx_id = 'c80601f4-d7b1-4795-a8ee-b09cdb5b450c', - ) - """ - - def testRelatedRequest(self): - """Test RelatedRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbGF0ZWRfcmVxdWVzdCBpbXBvcnQgUmVsYXRlZFJlcXVlc3QKCgpjbGFzcyBUZXN0UmVsYXRlZFJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUmVsYXRlZFJlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFJlbGF0ZWRSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgUmVsYXRlZFJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUmVsYXRlZFJlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBSZWxhdGVkUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFJlbGF0ZWRSZXF1ZXN0KAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ2RlYWN0aXZhdGluZycsCiAgICAgICAgICAgICAgICBpbl9wcm9ncmVzcyA9IEZhbHNlLAogICAgICAgICAgICAgICAgYW1vdW50ID0gJzAuMDUnLAogICAgICAgICAgICAgICAgdHhfaWQgPSAnYzgwNjAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI0NTBjJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFJlbGF0ZWRSZXF1ZXN0KAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ2RlYWN0aXZhdGluZycsCiAgICAgICAgICAgICAgICBpbl9wcm9ncmVzcyA9IEZhbHNlLAogICAgICAgICAgICAgICAgYW1vdW50ID0gJzAuMDUnLAogICAgICAgICAgICAgICAgdHhfaWQgPSAnYzgwNjAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI0NTBjJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RSZWxhdGVkUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFJlbGF0ZWRSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_related_transaction.py b/test/test_related_transaction.py index 1a5088da..05aefdf5 100644 --- a/test/test_related_transaction.py +++ b/test/test_related_transaction.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.related_transaction import RelatedTransaction - - -class TestRelatedTransaction(unittest.TestCase): - """RelatedTransaction unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> RelatedTransaction: - """Test RelatedTransaction - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `RelatedTransaction` - """ - model = RelatedTransaction() - if include_optional: - return RelatedTransaction( - tx_id = 'b70601f4-d7b1-4795-a8ee-b09cdb4r850d', - completed = True - ) - else: - return RelatedTransaction( - tx_id = 'b70601f4-d7b1-4795-a8ee-b09cdb4r850d', - completed = True, - ) - """ - - def testRelatedTransaction(self): - """Test RelatedTransaction""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbGF0ZWRfdHJhbnNhY3Rpb24gaW1wb3J0IFJlbGF0ZWRUcmFuc2FjdGlvbgoKCmNsYXNzIFRlc3RSZWxhdGVkVHJhbnNhY3Rpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUmVsYXRlZFRyYW5zYWN0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBSZWxhdGVkVHJhbnNhY3Rpb246CiAgICAgICAgIiIiVGVzdCBSZWxhdGVkVHJhbnNhY3Rpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUmVsYXRlZFRyYW5zYWN0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUmVsYXRlZFRyYW5zYWN0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUmVsYXRlZFRyYW5zYWN0aW9uKAogICAgICAgICAgICAgICAgdHhfaWQgPSAnYjcwNjAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNHI4NTBkJywKICAgICAgICAgICAgICAgIGNvbXBsZXRlZCA9IFRydWUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBSZWxhdGVkVHJhbnNhY3Rpb24oCiAgICAgICAgICAgICAgICB0eF9pZCA9ICdiNzA2MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI0cjg1MGQnLAogICAgICAgICAgICAgICAgY29tcGxldGVkID0gVHJ1ZSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RSZWxhdGVkVHJhbnNhY3Rpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBSZWxhdGVkVHJhbnNhY3Rpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_remove_collateral_request_body.py b/test/test_remove_collateral_request_body.py index cff8bee7..d05bb01f 100644 --- a/test/test_remove_collateral_request_body.py +++ b/test/test_remove_collateral_request_body.py @@ -1,199 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.remove_collateral_request_body import RemoveCollateralRequestBody - - -class TestRemoveCollateralRequestBody(unittest.TestCase): - """RemoveCollateralRequestBody unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> RemoveCollateralRequestBody: - """Test RemoveCollateralRequestBody - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `RemoveCollateralRequestBody` - """ - model = RemoveCollateralRequestBody() - if include_optional: - return RemoveCollateralRequestBody( - transaction_request = fireblocks.models.transaction_request.TransactionRequest( - operation = 'TRANSFER', - note = 'Ticket 123', - external_tx_id = '00000000-0000-0000-0000-000000000000', - asset_id = 'ETH', - source = fireblocks.models.source_transfer_peer_path.SourceTransferPeerPath( - type = 'VAULT_ACCOUNT', - sub_type = 'BINANCE', - id = '', - name = '', - wallet_id = '', - is_collateral = True, ), - destination = fireblocks.models.destination_transfer_peer_path.DestinationTransferPeerPath( - type = 'VAULT_ACCOUNT', - id = '', - name = '', - wallet_id = '', - one_time_address = fireblocks.models.one_time_address.OneTimeAddress( - address = '', - tag = '', ), - is_collateral = True, ), - destinations = [ - fireblocks.models.transaction_request_destination.TransactionRequestDestination( - amount = '', - travel_rule_message_id = 'trm_12345678-1234-1234-1234-123456789012', - customer_ref_id = 'abcdef', ) - ], - amount = null, - treat_as_gross_amount = False, - force_sweep = False, - fee_level = 'MEDIUM', - fee = null, - priority_fee = null, - fail_on_low_fee = True, - max_fee = '120', - max_total_fee = '88', - gas_limit = null, - gas_price = null, - network_fee = null, - replace_tx_by_hash = '00000000-0000-0000-0000-000000000000', - extra_parameters = { }, - customer_ref_id = 'abcdef', - travel_rule_message = fireblocks.models.travel_rule_create_transaction_request.TravelRuleCreateTransactionRequest( - originator_vas_pdid = 'did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2', - beneficiary_vas_pdid = 'did:ethr:0x17fe2dd11a2daa7f6c1fdf22532a4763f963aea6', - originator_vas_pname = 'Originator VASP Ltd.', - beneficiary_vas_pname = 'Beneficiary VASP Inc.', - beneficiary_vas_pwebsite = 'https://www.beneficiaryvasp.com', - transaction_blockchain_info = fireblocks.models.travel_rule_transaction_blockchain_info.TravelRuleTransactionBlockchainInfo( - tx_hash = '6.685730843558756E+76', - origin = '8.41132469470587E+47', ), - originator = fireblocks.models.travel_rule_pii_ivms.TravelRulePiiIVMS( - originator_persons = [ - fireblocks.models.travel_rule_person.TravelRulePerson( - natural_person = fireblocks.models.travel_rule_natural_person.TravelRuleNaturalPerson( - name = [ - fireblocks.models.travel_rule_natural_person_name_identifier.TravelRuleNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - phonetic_name_identifier = [ - - ], ) - ], - geographic_address = [ - fireblocks.models.travel_rule_geographic_address.TravelRuleGeographicAddress( - street_name = 'QmZGXXsKPk5iPS97LLjXB5e8Qs555ocdzcpbPMXvt84Ji9', - town_name = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - country = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - building_number = 'QmUFpNkxdsVtebDSUz5eP51kzoysXmqj2gBgeH11PD7SVP', - post_code = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - address_type = 'Qmdr9LcChZsoivS6uAhe7Qk7cGLDAx73wBZTVvq4WoU71H', - department = 'QmN7fb65x5MyA7RKyhbXaUKvJ7U4Y9eqpEZTmJYpNyEG8', - sub_department = 'QmTkfyGh54tXNqFxyEGK9NyTJZYpQ6RZ9zpNykxykME8s', - building_name = 'QmXJfGk85t6RKyhbXaEK9Nz4MEeMKypq6EY9zpJyC9nM9', - floor = 'QmZP5G7fhZpMyQxXnT9KyR6ybXaEM9zpJy4ME9MkTJGE1', - post_box = 'QmTkfYRGK54xFqXyJYNZyE9kY9zpMKytJnXy5z9EME9sJ', - room = 'QmRYXnT9KyhbXaEMZpMyxMkZ9zpYNYTJ4ME5kCGE7fhMJ', - town_location_name = 'QmNpZTyXJXnT9K6EYZpQxYNYMkC5p4kGEfhnkMJzpYT9Jm', - district_name = 'QmT9p6ERKyNYXnTyhbpMYJ4zpYT9kMJZT9QmEMGZ5kMhCy', - country_sub_division = 'QmK9yTbXaZpMYJYTYp6NT9QmEMGZT9p9kMJfhyGE4Z7k5C', - address_line = ["QmNp9kMjfhGZ5kMJzpNYXZTy6NQmZYEMGZ4kZT9Y6pNYT"], ) - ], - national_identification = fireblocks.models.travel_rule_national_identification.TravelRuleNationalIdentification( - country_of_issue = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - national_identifier = 'QmdR6qLnZ7Kwf5cBaXG8QFQenEvRg9JNZeoPranVuGd63z', - national_identifier_type = 'QmUKTg3aFJFhMz1o9gPqA3MgTRwd2LvDLwWTPHYUoMEYVi', - registration_authority = 'QmV9KJMyT9RJzpYfhME5xNCZ4G67fEkzTpRMyJzp9kTNYk', ), - date_and_place_of_birth = fireblocks.models.travel_rule_date_and_place_of_birth.TravelRuleDateAndPlaceOfBirth( - date_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - place_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', ), - customer_identification = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - country_of_residence = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - customer_number = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', ), - legal_person = fireblocks.models.travel_rule_legal_person.TravelRuleLegalPerson( - customer_identification = 'QmRY9AA4Uit2JRTxDzfzshrJdTK86Kf5HriA3dXDnihDmy', - customer_number = 'QmXvyML3AJUFpBbJqL5NVp7Vn7xNkuedTsSMk93duLCNW8', - country_of_registration = 'QmeoTk6UPruEAYNbJEAHdQYc53ap9BXmpnPMcuvs8wutdr', ), ) - ], - beneficiary_persons = [ - fireblocks.models.travel_rule_person.TravelRulePerson() - ], - account_number = [ - 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt' - ], ), - beneficiary = fireblocks.models.travel_rule_pii_ivms.TravelRulePiiIVMS(), - encrypted = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...', - protocol = 'IVMS101', - target_protocol = 'GTR', - skip_beneficiary_data_validation = False, - travel_rule_behavior = True, - originator_ref = 'ORG123456', - beneficiary_ref = 'BEN654321', - travel_rule_behavior_ref = 'TRB987654', - originator_proof = fireblocks.models.travel_rule_ownership_proof.TravelRuleOwnershipProof( - proof = '0x3dd4a17a...ce4a2bcd1b', - attestation = 'I certify that ETH account 0x896B...0b9b belongs to me.', - address = '0x896B...0b9b', - wallet_provider = 'Metamask', - url = 'https://example.com/uploaded_image.png', - confirmed = True, ), - beneficiary_proof = fireblocks.models.travel_rule_ownership_proof.TravelRuleOwnershipProof( - proof = '0x3dd4a17a...ce4a2bcd1b', - attestation = 'I certify that ETH account 0x896B...0b9b belongs to me.', - address = '0x896B...0b9b', - wallet_provider = 'Metamask', - url = 'https://example.com/uploaded_image.png', - confirmed = True, ), - beneficiary_did = 'did:key:z6Mkf67890Zghijkl67890', - originator_did = 'did:key:z6Mkf12345Zabcdef12345', - is_non_custodial = True, ), - travel_rule_message_id = 'trm_12345678-1234-1234-1234-123456789012', - auto_staking = True, - network_staking = null, - cpu_staking = null, - use_gasless = True, ), - is_dst_collateral = True - ) - else: - return RemoveCollateralRequestBody( - ) - """ - - def testRemoveCollateralRequestBody(self): - """Test RemoveCollateralRequestBody""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbW92ZV9jb2xsYXRlcmFsX3JlcXVlc3RfYm9keSBpbXBvcnQgUmVtb3ZlQ29sbGF0ZXJhbFJlcXVlc3RCb2R5CgoKY2xhc3MgVGVzdFJlbW92ZUNvbGxhdGVyYWxSZXF1ZXN0Qm9keSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJSZW1vdmVDb2xsYXRlcmFsUmVxdWVzdEJvZHkgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFJlbW92ZUNvbGxhdGVyYWxSZXF1ZXN0Qm9keToKICAgICAgICAiIiJUZXN0IFJlbW92ZUNvbGxhdGVyYWxSZXF1ZXN0Qm9keQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBSZW1vdmVDb2xsYXRlcmFsUmVxdWVzdEJvZHlgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBSZW1vdmVDb2xsYXRlcmFsUmVxdWVzdEJvZHkoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBSZW1vdmVDb2xsYXRlcmFsUmVxdWVzdEJvZHkoCiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbl9yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVxdWVzdC5UcmFuc2FjdGlvblJlcXVlc3QoCiAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gJ1RSQU5TRkVSJywgCiAgICAgICAgICAgICAgICAgICAgbm90ZSA9ICdUaWNrZXQgMTIzJywgCiAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfdHhfaWQgPSAnMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwJywgCiAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgc291cmNlID0gZmlyZWJsb2Nrcy5tb2RlbHMuc291cmNlX3RyYW5zZmVyX3BlZXJfcGF0aC5Tb3VyY2VUcmFuc2ZlclBlZXJQYXRoKAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3ViX3R5cGUgPSAnQklOQU5DRScsIAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgd2FsbGV0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBpc19jb2xsYXRlcmFsID0gVHJ1ZSwgKSwgCiAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy5kZXN0aW5hdGlvbl90cmFuc2Zlcl9wZWVyX3BhdGguRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoKAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHdhbGxldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgb25lX3RpbWVfYWRkcmVzcyA9IGZpcmVibG9ja3MubW9kZWxzLm9uZV90aW1lX2FkZHJlc3MuT25lVGltZUFkZHJlc3MoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnID0gJycsICksIAogICAgICAgICAgICAgICAgICAgICAgICBpc19jb2xsYXRlcmFsID0gVHJ1ZSwgKSwgCiAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25zID0gWwogICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2FjdGlvbl9yZXF1ZXN0X2Rlc3RpbmF0aW9uLlRyYW5zYWN0aW9uUmVxdWVzdERlc3RpbmF0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCA9ICd0cm1fMTIzNDU2NzgtMTIzNC0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9yZWZfaWQgPSAnYWJjZGVmJywgKQogICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICB0cmVhdF9hc19ncm9zc19hbW91bnQgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgZm9yY2Vfc3dlZXAgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgZmVlX2xldmVsID0gJ01FRElVTScsIAogICAgICAgICAgICAgICAgICAgIGZlZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgIHByaW9yaXR5X2ZlZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgIGZhaWxfb25fbG93X2ZlZSA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgIG1heF9mZWUgPSAnMTIwJywgCiAgICAgICAgICAgICAgICAgICAgbWF4X3RvdGFsX2ZlZSA9ICc4OCcsIAogICAgICAgICAgICAgICAgICAgIGdhc19saW1pdCA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgIGdhc19wcmljZSA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgIG5ldHdvcmtfZmVlID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgcmVwbGFjZV90eF9ieV9oYXNoID0gJzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCcsIAogICAgICAgICAgICAgICAgICAgIGV4dHJhX3BhcmFtZXRlcnMgPSB7IH0sIAogICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX3JlZl9pZCA9ICdhYmNkZWYnLCAKICAgICAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV9tZXNzYWdlID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfY3JlYXRlX3RyYW5zYWN0aW9uX3JlcXVlc3QuVHJhdmVsUnVsZUNyZWF0ZVRyYW5zYWN0aW9uUmVxdWVzdCgKICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYXRvcl92YXNfcGRpZCA9ICdkaWQ6ZXRocjoweDQ0OTU3ZTc1ZDZjZTRhNWJmMzdhYWUxMTdkYTg2NDIyYzg0OGY3YzInLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfdmFzX3BkaWQgPSAnZGlkOmV0aHI6MHgxN2ZlMmRkMTFhMmRhYTdmNmMxZmRmMjI1MzJhNDc2M2Y5NjNhZWE2JywgCiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmF0b3JfdmFzX3BuYW1lID0gJ09yaWdpbmF0b3IgVkFTUCBMdGQuJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5X3Zhc19wbmFtZSA9ICdCZW5lZmljaWFyeSBWQVNQIEluYy4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfdmFzX3B3ZWJzaXRlID0gJ2h0dHBzOi8vd3d3LmJlbmVmaWNpYXJ5dmFzcC5jb20nLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25fYmxvY2tjaGFpbl9pbmZvID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdHJhbnNhY3Rpb25fYmxvY2tjaGFpbl9pbmZvLlRyYXZlbFJ1bGVUcmFuc2FjdGlvbkJsb2NrY2hhaW5JbmZvKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHhfaGFzaCA9ICc2LjY4NTczMDg0MzU1ODc1NkUrNzYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbiA9ICc4LjQxMTMyNDY5NDcwNTg3RSs0NycsICksIAogICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hdG9yID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfcGlpX2l2bXMuVHJhdmVsUnVsZVBpaUlWTVMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hdG9yX3BlcnNvbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfcGVyc29uLlRyYXZlbFJ1bGVQZXJzb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdHVyYWxfcGVyc29uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9wZXJzb24uVHJhdmVsUnVsZU5hdHVyYWxQZXJzb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlfaWRlbnRpZmllciA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5X2lkZW50aWZpZXIgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllcl90eXBlID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxfbmFtZV9pZGVudGlmaWVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9uYW1lX2lkZW50aWZpZXIuVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2lkZW50aWZpZXIgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeV9pZGVudGlmaWVyID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXJfdHlwZSA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob25ldGljX25hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvZ3JhcGhpY19hZGRyZXNzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2dlb2dyYXBoaWNfYWRkcmVzcy5UcmF2ZWxSdWxlR2VvZ3JhcGhpY0FkZHJlc3MoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVldF9uYW1lID0gJ1FtWkdYWHNLUGs1aVBTOTdMTGpYQjVlOFFzNTU1b2NkemNwYlBNWHZ0ODRKaTknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG93bl9uYW1lID0gJ1FtTmtFdDlWZG5oamVmUU1YbzNaYVpBczc2NXVnb1dpYXphcWNZOXNrSE1qQ3QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeSA9ICdRbVJHSGRveFFmU2k2dGV2eXZhWUd6czhCVlN0ZnFKcUV5ck1ZcVVmelh4a21tJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nX251bWJlciA9ICdRbVVGcE5reGRzVnRlYkRTVXo1ZVA1MWt6b3lzWG1xajJnQmdlSDExUEQ3U1ZQJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfY29kZSA9ICdRbVRKc0szc2MzZlBFVnd2QXA5N1VVaVZvRmhqelFoWVgzc0NkYTFKeHVDblhqJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfdHlwZSA9ICdRbWRyOUxjQ2hac29pdlM2dUFoZTdRazdjR0xEQXg3M3dCWlRWdnE0V29VNzFIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGFydG1lbnQgPSAnUW1ON2ZiNjV4NU15QTdSS3loYlhhVUt2SjdVNFk5ZXFwRVpUbUpZcE55RUc4JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl9kZXBhcnRtZW50ID0gJ1FtVGtmeUdoNTR0WE5xRnh5RUdLOU55VEpaWXBRNlJaOXpwTnlreHlrTUU4cycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19uYW1lID0gJ1FtWEpmR2s4NXQ2Ukt5aGJYYUVLOU56NE1FZU1LeXBxNkVZOXpwSnlDOW5NOScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9vciA9ICdRbVpQNUc3ZmhacE15UXhYblQ5S3lSNnliWGFFTTl6cEp5NE1FOU1rVEpHRTEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdF9ib3ggPSAnUW1Ua2ZZUkdLNTR4RnFYeUpZTlp5RTlrWTl6cE1LeXRKblh5NXo5RU1FOXNKJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvb20gPSAnUW1SWVhuVDlLeWhiWGFFTVpwTXl4TWtaOXpwWU5ZVEo0TUU1a0NHRTdmaE1KJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvd25fbG9jYXRpb25fbmFtZSA9ICdRbU5wWlR5WEpYblQ5SzZFWVpwUXhZTllNa0M1cDRrR0VmaG5rTUp6cFlUOUptJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RyaWN0X25hbWUgPSAnUW1UOXA2RVJLeU5ZWG5UeWhicE1ZSjR6cFlUOWtNSlpUOVFtRU1HWjVrTWhDeScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X3N1Yl9kaXZpc2lvbiA9ICdRbUs5eVRiWGFacE1ZSllUWXA2TlQ5UW1FTUdaVDlwOWtNSmZoeUdFNFo3azVDJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfbGluZSA9IFsiUW1OcDlrTWpmaEdaNWtNSnpwTllYWlR5Nk5RbVpZRU1HWjRrWlQ5WTZwTllUIl0sICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpY2F0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0aW9uYWxfaWRlbnRpZmljYXRpb24uVHJhdmVsUnVsZU5hdGlvbmFsSWRlbnRpZmljYXRpb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9pc3N1ZSA9ICdRbVJHSGRveFFmU2k2dGV2eXZhWUd6czhCVlN0ZnFKcUV5ck1ZcVVmelh4a21tJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmllciA9ICdRbWRSNnFMblo3S3dmNWNCYVhHOFFGUWVuRXZSZzlKTlplb1ByYW5WdUdkNjN6JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmllcl90eXBlID0gJ1FtVUtUZzNhRkpGaE16MW85Z1BxQTNNZ1RSd2QyTHZETHdXVFBIWVVvTUVZVmknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpc3RyYXRpb25fYXV0aG9yaXR5ID0gJ1FtVjlLSk15VDlSSnpwWWZoTUU1eE5DWjRHNjdmRWt6VHBSTXlKenA5a1ROWWsnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfYW5kX3BsYWNlX29mX2JpcnRoID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGguVHJhdmVsUnVsZURhdGVBbmRQbGFjZU9mQmlydGgoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9vZl9iaXJ0aCA9ICdRbU5rRXQ5VmRuaGplZlFNWG8zWmFaQXM3NjV1Z29XaWF6YXFjWTlza0hNakN0JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vfb2ZfYmlydGggPSAnUW1Oa0V0OVZkbmhqZWZRTVhvM1phWkFzNzY1dWdvV2lhemFxY1k5c2tITWpDdCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfaWRlbnRpZmljYXRpb24gPSAnUW1USnNLM3NjM2ZQRVZ3dkFwOTdVVWlWb0ZoanpRaFlYM3NDZGExSnh1Q25YaicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9yZXNpZGVuY2UgPSAnUW1USnNLM3NjM2ZQRVZ3dkFwOTdVVWlWb0ZoanpRaFlYM3NDZGExSnh1Q25YaicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfbnVtYmVyID0gJ1FtVEpzSzNzYzNmUEVWd3ZBcDk3VVVpVm9GaGp6UWhZWDNzQ2RhMUp4dUNuWGonLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnYWxfcGVyc29uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbGVnYWxfcGVyc29uLlRyYXZlbFJ1bGVMZWdhbFBlcnNvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX2lkZW50aWZpY2F0aW9uID0gJ1FtUlk5QUE0VWl0MkpSVHhEemZ6c2hySmRUSzg2S2Y1SHJpQTNkWERuaWhEbXknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX251bWJlciA9ICdRbVh2eU1MM0FKVUZwQmJKcUw1TlZwN1ZuN3hOa3VlZFRzU01rOTNkdUxDTlc4JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX3JlZ2lzdHJhdGlvbiA9ICdRbWVvVGs2VVBydUVBWU5iSkVBSGRRWWM1M2FwOUJYbXBuUE1jdXZzOHd1dGRyJywgKSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfcGVyc29ucyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9wZXJzb24uVHJhdmVsUnVsZVBlcnNvbigpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X251bWJlciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUW1Oa0V0OVZkbmhqZWZRTVhvM1phWkFzNzY1dWdvV2lhemFxY1k5c2tITWpDdCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmVuZWZpY2lhcnkgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9waWlfaXZtcy5UcmF2ZWxSdWxlUGlpSVZNUygpLCAKICAgICAgICAgICAgICAgICAgICAgICAgZW5jcnlwdGVkID0gJ2V5SmhiR2NpT2lKSVV6STFOaUlzSW5SNWNDSTZJa3BYVkNKOS4uLicsIAogICAgICAgICAgICAgICAgICAgICAgICBwcm90b2NvbCA9ICdJVk1TMTAxJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9wcm90b2NvbCA9ICdHVFInLCAKICAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9iZW5lZmljaWFyeV9kYXRhX3ZhbGlkYXRpb24gPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX2JlaGF2aW9yID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmF0b3JfcmVmID0gJ09SRzEyMzQ1NicsIAogICAgICAgICAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV9yZWYgPSAnQkVONjU0MzIxJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX2JlaGF2aW9yX3JlZiA9ICdUUkI5ODc2NTQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYXRvcl9wcm9vZiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX293bmVyc2hpcF9wcm9vZi5UcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2YoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9vZiA9ICcweDNkZDRhMTdhLi4uY2U0YTJiY2QxYicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ZXN0YXRpb24gPSAnSSBjZXJ0aWZ5IHRoYXQgRVRIIGFjY291bnQgMHg4OTZCLi4uMGI5YiBiZWxvbmdzIHRvIG1lLicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweDg5NkIuLi4wYjliJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YWxsZXRfcHJvdmlkZXIgPSAnTWV0YW1hc2snLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9ICdodHRwczovL2V4YW1wbGUuY29tL3VwbG9hZGVkX2ltYWdlLnBuZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkID0gJ2RpZDprZXk6ejZNa2YxMjM0NVphYmNkZWYxMjM0NScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ3ZlcmlmaWVkJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maXJtZWQgPSBUcnVlLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfcHJvb2YgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9vd25lcnNoaXBfcHJvb2YuVHJhdmVsUnVsZU93bmVyc2hpcFByb29mKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvb2YgPSAnMHgzZGQ0YTE3YS4uLmNlNGEyYmNkMWInLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGVzdGF0aW9uID0gJ0kgY2VydGlmeSB0aGF0IEVUSCBhY2NvdW50IDB4ODk2Qi4uLjBiOWIgYmVsb25ncyB0byBtZS4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHg4OTZCLi4uMGI5YicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FsbGV0X3Byb3ZpZGVyID0gJ01ldGFtYXNrJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS91cGxvYWRlZF9pbWFnZS5wbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZCA9ICdkaWQ6a2V5Ono2TWtmMTIzNDVaYWJjZGVmMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICd2ZXJpZmllZCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlybWVkID0gVHJ1ZSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5X2RpZCA9ICdkaWQ6a2V5Ono2TWtmNjc4OTBaZ2hpamtsNjc4OTAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYXRvcl9kaWQgPSAnZGlkOmtleTp6Nk1rZjEyMzQ1WmFiY2RlZjEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGlzX25vbl9jdXN0b2RpYWwgPSBUcnVlLCApLCAKICAgICAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV9tZXNzYWdlX2lkID0gJ3RybV8xMjM0NTY3OC0xMjM0LTEyMzQtMTIzNC0xMjM0NTY3ODkwMTInLCAKICAgICAgICAgICAgICAgICAgICBhdXRvX3N0YWtpbmcgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICBuZXR3b3JrX3N0YWtpbmcgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICBjcHVfc3Rha2luZyA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgIHVzZV9nYXNsZXNzID0gVHJ1ZSwgKSwKICAgICAgICAgICAgICAgIGlzX2RzdF9jb2xsYXRlcmFsID0gVHJ1ZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFJlbW92ZUNvbGxhdGVyYWxSZXF1ZXN0Qm9keSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RSZW1vdmVDb2xsYXRlcmFsUmVxdWVzdEJvZHkoc2VsZik6CiAgICAgICAgIiIiVGVzdCBSZW1vdmVDb2xsYXRlcmFsUmVxdWVzdEJvZHkiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_remove_layer_zero_adapter_failed_result.py b/test/test_remove_layer_zero_adapter_failed_result.py index 8f67841d..7ba23873 100644 --- a/test/test_remove_layer_zero_adapter_failed_result.py +++ b/test/test_remove_layer_zero_adapter_failed_result.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.remove_layer_zero_adapter_failed_result import ( - RemoveLayerZeroAdapterFailedResult, -) - - -class TestRemoveLayerZeroAdapterFailedResult(unittest.TestCase): - """RemoveLayerZeroAdapterFailedResult unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> RemoveLayerZeroAdapterFailedResult: - """Test RemoveLayerZeroAdapterFailedResult - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `RemoveLayerZeroAdapterFailedResult` - """ - model = RemoveLayerZeroAdapterFailedResult() - if include_optional: - return RemoveLayerZeroAdapterFailedResult( - adapter_token_link_id = '' - ) - else: - return RemoveLayerZeroAdapterFailedResult( - adapter_token_link_id = '', - ) - """ - - def testRemoveLayerZeroAdapterFailedResult(self): - """Test RemoveLayerZeroAdapterFailedResult""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJfZmFpbGVkX3Jlc3VsdCBpbXBvcnQgKAogICAgUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlckZhaWxlZFJlc3VsdCwKKQoKCmNsYXNzIFRlc3RSZW1vdmVMYXllclplcm9BZGFwdGVyRmFpbGVkUmVzdWx0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlJlbW92ZUxheWVyWmVyb0FkYXB0ZXJGYWlsZWRSZXN1bHQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJGYWlsZWRSZXN1bHQ6CiAgICAgICAgIiIiVGVzdCBSZW1vdmVMYXllclplcm9BZGFwdGVyRmFpbGVkUmVzdWx0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJGYWlsZWRSZXN1bHRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBSZW1vdmVMYXllclplcm9BZGFwdGVyRmFpbGVkUmVzdWx0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlckZhaWxlZFJlc3VsdCgKICAgICAgICAgICAgICAgIGFkYXB0ZXJfdG9rZW5fbGlua19pZCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlckZhaWxlZFJlc3VsdCgKICAgICAgICAgICAgICAgIGFkYXB0ZXJfdG9rZW5fbGlua19pZCA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJGYWlsZWRSZXN1bHQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBSZW1vdmVMYXllclplcm9BZGFwdGVyRmFpbGVkUmVzdWx0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_remove_layer_zero_adapters_request.py b/test/test_remove_layer_zero_adapters_request.py index dd4b5bd8..2974cbf3 100644 --- a/test/test_remove_layer_zero_adapters_request.py +++ b/test/test_remove_layer_zero_adapters_request.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.remove_layer_zero_adapters_request import ( - RemoveLayerZeroAdaptersRequest, -) - - -class TestRemoveLayerZeroAdaptersRequest(unittest.TestCase): - """RemoveLayerZeroAdaptersRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> RemoveLayerZeroAdaptersRequest: - """Test RemoveLayerZeroAdaptersRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `RemoveLayerZeroAdaptersRequest` - """ - model = RemoveLayerZeroAdaptersRequest() - if include_optional: - return RemoveLayerZeroAdaptersRequest( - vault_account_id = '1', - adapter_token_link_ids = ["d290f1ee-6c54-4b01-90e6-d701748f0851","e290f1ee-6c54-4b01-90e6-d701748f0852"] - ) - else: - return RemoveLayerZeroAdaptersRequest( - vault_account_id = '1', - adapter_token_link_ids = ["d290f1ee-6c54-4b01-90e6-d701748f0851","e290f1ee-6c54-4b01-90e6-d701748f0852"], - ) - """ - - def testRemoveLayerZeroAdaptersRequest(self): - """Test RemoveLayerZeroAdaptersRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJzX3JlcXVlc3QgaW1wb3J0ICgKICAgIFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RSZW1vdmVMYXllclplcm9BZGFwdGVyc1JlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBSZW1vdmVMYXllclplcm9BZGFwdGVyc1JlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBSZW1vdmVMYXllclplcm9BZGFwdGVyc1JlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0KAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcxJywKICAgICAgICAgICAgICAgIGFkYXB0ZXJfdG9rZW5fbGlua19pZHMgPSBbImQyOTBmMWVlLTZjNTQtNGIwMS05MGU2LWQ3MDE3NDhmMDg1MSIsImUyOTBmMWVlLTZjNTQtNGIwMS05MGU2LWQ3MDE3NDhmMDg1MiJdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXF1ZXN0KAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcxJywKICAgICAgICAgICAgICAgIGFkYXB0ZXJfdG9rZW5fbGlua19pZHMgPSBbImQyOTBmMWVlLTZjNTQtNGIwMS05MGU2LWQ3MDE3NDhmMDg1MSIsImUyOTBmMWVlLTZjNTQtNGIwMS05MGU2LWQ3MDE3NDhmMDg1MiJdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJzUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_remove_layer_zero_adapters_response.py b/test/test_remove_layer_zero_adapters_response.py index e4b11493..e2148407 100644 --- a/test/test_remove_layer_zero_adapters_response.py +++ b/test/test_remove_layer_zero_adapters_response.py @@ -1,69 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.remove_layer_zero_adapters_response import ( - RemoveLayerZeroAdaptersResponse, -) - - -class TestRemoveLayerZeroAdaptersResponse(unittest.TestCase): - """RemoveLayerZeroAdaptersResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> RemoveLayerZeroAdaptersResponse: - """Test RemoveLayerZeroAdaptersResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `RemoveLayerZeroAdaptersResponse` - """ - model = RemoveLayerZeroAdaptersResponse() - if include_optional: - return RemoveLayerZeroAdaptersResponse( - deactivated = [ - '' - ], - failed = [ - fireblocks.models.remove_layer_zero_adapter_failed_result.RemoveLayerZeroAdapterFailedResult( - adapter_token_link_id = '', ) - ] - ) - else: - return RemoveLayerZeroAdaptersResponse( - deactivated = [ - '' - ], - failed = [ - fireblocks.models.remove_layer_zero_adapter_failed_result.RemoveLayerZeroAdapterFailedResult( - adapter_token_link_id = '', ) - ], - ) - """ - - def testRemoveLayerZeroAdaptersResponse(self): - """Test RemoveLayerZeroAdaptersResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJzX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBSZW1vdmVMYXllclplcm9BZGFwdGVyc1Jlc3BvbnNlLAopCgoKY2xhc3MgVGVzdFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJzUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJzUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJzUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBSZW1vdmVMYXllclplcm9BZGFwdGVyc1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgZGVhY3RpdmF0ZWQgPSBbCiAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgZmFpbGVkID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJfZmFpbGVkX3Jlc3VsdC5SZW1vdmVMYXllclplcm9BZGFwdGVyRmFpbGVkUmVzdWx0KAogICAgICAgICAgICAgICAgICAgICAgICBhZGFwdGVyX3Rva2VuX2xpbmtfaWQgPSAnJywgKQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBSZW1vdmVMYXllclplcm9BZGFwdGVyc1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgZGVhY3RpdmF0ZWQgPSBbCiAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgZmFpbGVkID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnJlbW92ZV9sYXllcl96ZXJvX2FkYXB0ZXJfZmFpbGVkX3Jlc3VsdC5SZW1vdmVMYXllclplcm9BZGFwdGVyRmFpbGVkUmVzdWx0KAogICAgICAgICAgICAgICAgICAgICAgICBhZGFwdGVyX3Rva2VuX2xpbmtfaWQgPSAnJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UmVtb3ZlTGF5ZXJaZXJvQWRhcHRlcnNSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFJlbW92ZUxheWVyWmVyb0FkYXB0ZXJzUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_remove_layer_zero_peers_request.py b/test/test_remove_layer_zero_peers_request.py index 6b2303d2..e18a4894 100644 --- a/test/test_remove_layer_zero_peers_request.py +++ b/test/test_remove_layer_zero_peers_request.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.remove_layer_zero_peers_request import ( - RemoveLayerZeroPeersRequest, -) - - -class TestRemoveLayerZeroPeersRequest(unittest.TestCase): - """RemoveLayerZeroPeersRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> RemoveLayerZeroPeersRequest: - """Test RemoveLayerZeroPeersRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `RemoveLayerZeroPeersRequest` - """ - model = RemoveLayerZeroPeersRequest() - if include_optional: - return RemoveLayerZeroPeersRequest( - vault_account_id = '0', - source_adapter_token_link_id = '00000123-0432-1234-1234-123456789012', - destination_adapter_token_link_ids = [123-432-1234-1234-123456789012, 123-432-1234-1234-123456789012], - bidirectional = True - ) - else: - return RemoveLayerZeroPeersRequest( - vault_account_id = '0', - source_adapter_token_link_id = '00000123-0432-1234-1234-123456789012', - destination_adapter_token_link_ids = [123-432-1234-1234-123456789012, 123-432-1234-1234-123456789012], - bidirectional = True, - ) - """ - - def testRemoveLayerZeroPeersRequest(self): - """Test RemoveLayerZeroPeersRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbW92ZV9sYXllcl96ZXJvX3BlZXJzX3JlcXVlc3QgaW1wb3J0ICgKICAgIFJlbW92ZUxheWVyWmVyb1BlZXJzUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RSZW1vdmVMYXllclplcm9QZWVyc1JlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBSZW1vdmVMYXllclplcm9QZWVyc1JlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBSZW1vdmVMYXllclplcm9QZWVyc1JlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXF1ZXN0KAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcwJywKICAgICAgICAgICAgICAgIHNvdXJjZV9hZGFwdGVyX3Rva2VuX2xpbmtfaWQgPSAnMDAwMDAxMjMtMDQzMi0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyJywKICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uX2FkYXB0ZXJfdG9rZW5fbGlua19pZHMgPSBbMTIzLTQzMi0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyLCAxMjMtNDMyLTEyMzQtMTIzNC0xMjM0NTY3ODkwMTJdLAogICAgICAgICAgICAgICAgYmlkaXJlY3Rpb25hbCA9IFRydWUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBSZW1vdmVMYXllclplcm9QZWVyc1JlcXVlc3QoCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gJzAnLAogICAgICAgICAgICAgICAgc291cmNlX2FkYXB0ZXJfdG9rZW5fbGlua19pZCA9ICcwMDAwMDEyMy0wNDMyLTEyMzQtMTIzNC0xMjM0NTY3ODkwMTInLAogICAgICAgICAgICAgICAgZGVzdGluYXRpb25fYWRhcHRlcl90b2tlbl9saW5rX2lkcyA9IFsxMjMtNDMyLTEyMzQtMTIzNC0xMjM0NTY3ODkwMTIsIDEyMy00MzItMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMl0sCiAgICAgICAgICAgICAgICBiaWRpcmVjdGlvbmFsID0gVHJ1ZSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RSZW1vdmVMYXllclplcm9QZWVyc1JlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBSZW1vdmVMYXllclplcm9QZWVyc1JlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_remove_layer_zero_peers_response.py b/test/test_remove_layer_zero_peers_response.py index 52866c79..18a1af58 100644 --- a/test/test_remove_layer_zero_peers_response.py +++ b/test/test_remove_layer_zero_peers_response.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.remove_layer_zero_peers_response import ( - RemoveLayerZeroPeersResponse, -) - - -class TestRemoveLayerZeroPeersResponse(unittest.TestCase): - """RemoveLayerZeroPeersResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> RemoveLayerZeroPeersResponse: - """Test RemoveLayerZeroPeersResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `RemoveLayerZeroPeersResponse` - """ - model = RemoveLayerZeroPeersResponse() - if include_optional: - return RemoveLayerZeroPeersResponse( - txn_ids = [123-432-1234-1234-123456789012, 123-432-1234-1234-123456789012] - ) - else: - return RemoveLayerZeroPeersResponse( - txn_ids = [123-432-1234-1234-123456789012, 123-432-1234-1234-123456789012], - ) - """ - - def testRemoveLayerZeroPeersResponse(self): - """Test RemoveLayerZeroPeersResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbW92ZV9sYXllcl96ZXJvX3BlZXJzX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBSZW1vdmVMYXllclplcm9QZWVyc1Jlc3BvbnNlLAopCgoKY2xhc3MgVGVzdFJlbW92ZUxheWVyWmVyb1BlZXJzUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFJlbW92ZUxheWVyWmVyb1BlZXJzUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFJlbW92ZUxheWVyWmVyb1BlZXJzUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBSZW1vdmVMYXllclplcm9QZWVyc1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgdHhuX2lkcyA9IFsxMjMtNDMyLTEyMzQtMTIzNC0xMjM0NTY3ODkwMTIsIDEyMy00MzItMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMl0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBSZW1vdmVMYXllclplcm9QZWVyc1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgdHhuX2lkcyA9IFsxMjMtNDMyLTEyMzQtMTIzNC0xMjM0NTY3ODkwMTIsIDEyMy00MzItMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMl0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UmVtb3ZlTGF5ZXJaZXJvUGVlcnNSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFJlbW92ZUxheWVyWmVyb1BlZXJzUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_rename_connected_account_request.py b/test/test_rename_connected_account_request.py index 10b048db..e85667fd 100644 --- a/test/test_rename_connected_account_request.py +++ b/test/test_rename_connected_account_request.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.rename_connected_account_request import ( - RenameConnectedAccountRequest, -) - - -class TestRenameConnectedAccountRequest(unittest.TestCase): - """RenameConnectedAccountRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> RenameConnectedAccountRequest: - """Test RenameConnectedAccountRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `RenameConnectedAccountRequest` - """ - model = RenameConnectedAccountRequest() - if include_optional: - return RenameConnectedAccountRequest( - account_name = 'My Trading Account' - ) - else: - return RenameConnectedAccountRequest( - account_name = 'My Trading Account', - ) - """ - - def testRenameConnectedAccountRequest(self): - """Test RenameConnectedAccountRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbmFtZV9jb25uZWN0ZWRfYWNjb3VudF9yZXF1ZXN0IGltcG9ydCAoCiAgICBSZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RSZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJSZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUmVuYW1lQ29ubmVjdGVkQWNjb3VudFJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBSZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBSZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFJlbmFtZUNvbm5lY3RlZEFjY291bnRSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUmVuYW1lQ29ubmVjdGVkQWNjb3VudFJlcXVlc3QoCiAgICAgICAgICAgICAgICBhY2NvdW50X25hbWUgPSAnTXkgVHJhZGluZyBBY2NvdW50JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFJlbmFtZUNvbm5lY3RlZEFjY291bnRSZXF1ZXN0KAogICAgICAgICAgICAgICAgYWNjb3VudF9uYW1lID0gJ015IFRyYWRpbmcgQWNjb3VudCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UmVuYW1lQ29ubmVjdGVkQWNjb3VudFJlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBSZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_rename_connected_account_response.py b/test/test_rename_connected_account_response.py index 8d08c3e4..f003f00b 100644 --- a/test/test_rename_connected_account_response.py +++ b/test/test_rename_connected_account_response.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.rename_connected_account_response import ( - RenameConnectedAccountResponse, -) - - -class TestRenameConnectedAccountResponse(unittest.TestCase): - """RenameConnectedAccountResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testRenameConnectedAccountResponse(self): - """Test RenameConnectedAccountResponse""" - # inst = RenameConnectedAccountResponse() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbmFtZV9jb25uZWN0ZWRfYWNjb3VudF9yZXNwb25zZSBpbXBvcnQgKAogICAgUmVuYW1lQ29ubmVjdGVkQWNjb3VudFJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdFJlbmFtZUNvbm5lY3RlZEFjY291bnRSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJSZW5hbWVDb25uZWN0ZWRBY2NvdW50UmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0UmVuYW1lQ29ubmVjdGVkQWNjb3VudFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgUmVuYW1lQ29ubmVjdGVkQWNjb3VudFJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0ID0gUmVuYW1lQ29ubmVjdGVkQWNjb3VudFJlc3BvbnNlKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_rename_cosigner.py b/test/test_rename_cosigner.py index e975be18..af34cde0 100644 --- a/test/test_rename_cosigner.py +++ b/test/test_rename_cosigner.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.rename_cosigner import RenameCosigner - - -class TestRenameCosigner(unittest.TestCase): - """RenameCosigner unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> RenameCosigner: - """Test RenameCosigner - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `RenameCosigner` - """ - model = RenameCosigner() - if include_optional: - return RenameCosigner( - name = 'My Cosigner 1' - ) - else: - return RenameCosigner( - ) - """ - - def testRenameCosigner(self): - """Test RenameCosigner""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbmFtZV9jb3NpZ25lciBpbXBvcnQgUmVuYW1lQ29zaWduZXIKCgpjbGFzcyBUZXN0UmVuYW1lQ29zaWduZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUmVuYW1lQ29zaWduZXIgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFJlbmFtZUNvc2lnbmVyOgogICAgICAgICIiIlRlc3QgUmVuYW1lQ29zaWduZXIKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUmVuYW1lQ29zaWduZXJgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBSZW5hbWVDb3NpZ25lcigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFJlbmFtZUNvc2lnbmVyKAogICAgICAgICAgICAgICAgbmFtZSA9ICdNeSBDb3NpZ25lciAxJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFJlbmFtZUNvc2lnbmVyKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFJlbmFtZUNvc2lnbmVyKHNlbGYpOgogICAgICAgICIiIlRlc3QgUmVuYW1lQ29zaWduZXIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_rename_vault_account_response.py b/test/test_rename_vault_account_response.py index 1c6e2c94..760993cb 100644 --- a/test/test_rename_vault_account_response.py +++ b/test/test_rename_vault_account_response.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.rename_vault_account_response import RenameVaultAccountResponse - - -class TestRenameVaultAccountResponse(unittest.TestCase): - """RenameVaultAccountResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> RenameVaultAccountResponse: - """Test RenameVaultAccountResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `RenameVaultAccountResponse` - """ - model = RenameVaultAccountResponse() - if include_optional: - return RenameVaultAccountResponse( - name = '', - id = '' - ) - else: - return RenameVaultAccountResponse( - ) - """ - - def testRenameVaultAccountResponse(self): - """Test RenameVaultAccountResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlbmFtZV92YXVsdF9hY2NvdW50X3Jlc3BvbnNlIGltcG9ydCBSZW5hbWVWYXVsdEFjY291bnRSZXNwb25zZQoKCmNsYXNzIFRlc3RSZW5hbWVWYXVsdEFjY291bnRSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJSZW5hbWVWYXVsdEFjY291bnRSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUmVuYW1lVmF1bHRBY2NvdW50UmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBSZW5hbWVWYXVsdEFjY291bnRSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBSZW5hbWVWYXVsdEFjY291bnRSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFJlbmFtZVZhdWx0QWNjb3VudFJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUmVuYW1lVmF1bHRBY2NvdW50UmVzcG9uc2UoCiAgICAgICAgICAgICAgICBuYW1lID0gJycsCiAgICAgICAgICAgICAgICBpZCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUmVuYW1lVmF1bHRBY2NvdW50UmVzcG9uc2UoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UmVuYW1lVmF1bHRBY2NvdW50UmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBSZW5hbWVWYXVsdEFjY291bnRSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_resend_failed_notifications_job_status_response.py b/test/test_resend_failed_notifications_job_status_response.py index c2954288..3c355d85 100644 --- a/test/test_resend_failed_notifications_job_status_response.py +++ b/test/test_resend_failed_notifications_job_status_response.py @@ -1,65 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.resend_failed_notifications_job_status_response import ( - ResendFailedNotificationsJobStatusResponse, -) - - -class TestResendFailedNotificationsJobStatusResponse(unittest.TestCase): - """ResendFailedNotificationsJobStatusResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> ResendFailedNotificationsJobStatusResponse: - """Test ResendFailedNotificationsJobStatusResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ResendFailedNotificationsJobStatusResponse` - """ - model = ResendFailedNotificationsJobStatusResponse() - if include_optional: - return ResendFailedNotificationsJobStatusResponse( - job_id = '123e4567-e89b-12d3-a456-426614174000', - status = 'COMPLETED', - processed = 100, - total = 1000 - ) - else: - return ResendFailedNotificationsJobStatusResponse( - job_id = '123e4567-e89b-12d3-a456-426614174000', - status = 'COMPLETED', - processed = 100, - total = 1000, - ) - """ - - def testResendFailedNotificationsJobStatusResponse(self): - """Test ResendFailedNotificationsJobStatusResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19qb2Jfc3RhdHVzX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zSm9iU3RhdHVzUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0UmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc0pvYlN0YXR1c1Jlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNKb2JTdGF0dXNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2UoCiAgICAgICAgc2VsZiwgaW5jbHVkZV9vcHRpb25hbAogICAgKSAtPiBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zSm9iU3RhdHVzUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zSm9iU3RhdHVzUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc0pvYlN0YXR1c1Jlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc0pvYlN0YXR1c1Jlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc0pvYlN0YXR1c1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgam9iX2lkID0gJzEyM2U0NTY3LWU4OWItMTJkMy1hNDU2LTQyNjYxNDE3NDAwMCcsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywKICAgICAgICAgICAgICAgIHByb2Nlc3NlZCA9IDEwMCwKICAgICAgICAgICAgICAgIHRvdGFsID0gMTAwMAogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNKb2JTdGF0dXNSZXNwb25zZSgKICAgICAgICAgICAgICAgIGpvYl9pZCA9ICcxMjNlNDU2Ny1lODliLTEyZDMtYTQ1Ni00MjY2MTQxNzQwMDAnLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ0NPTVBMRVRFRCcsCiAgICAgICAgICAgICAgICBwcm9jZXNzZWQgPSAxMDAsCiAgICAgICAgICAgICAgICB0b3RhbCA9IDEwMDAsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc0pvYlN0YXR1c1Jlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc0pvYlN0YXR1c1Jlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_resend_failed_notifications_request.py b/test/test_resend_failed_notifications_request.py index e6dfb058..443511ae 100644 --- a/test/test_resend_failed_notifications_request.py +++ b/test/test_resend_failed_notifications_request.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.resend_failed_notifications_request import ( - ResendFailedNotificationsRequest, -) - - -class TestResendFailedNotificationsRequest(unittest.TestCase): - """ResendFailedNotificationsRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ResendFailedNotificationsRequest: - """Test ResendFailedNotificationsRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ResendFailedNotificationsRequest` - """ - model = ResendFailedNotificationsRequest() - if include_optional: - return ResendFailedNotificationsRequest( - start_time = 1625097600000, - events = ["transaction.created","transaction.status.updated"] - ) - else: - return ResendFailedNotificationsRequest( - ) - """ - - def testResendFailedNotificationsRequest(self): - """Test ResendFailedNotificationsRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19yZXF1ZXN0IGltcG9ydCAoCiAgICBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc1JlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc1JlcXVlc3QoCiAgICAgICAgICAgICAgICBzdGFydF90aW1lID0gMTYyNTA5NzYwMDAwMCwKICAgICAgICAgICAgICAgIGV2ZW50cyA9IFsidHJhbnNhY3Rpb24uY3JlYXRlZCIsInRyYW5zYWN0aW9uLnN0YXR1cy51cGRhdGVkIl0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVxdWVzdCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_resend_failed_notifications_response.py b/test/test_resend_failed_notifications_response.py index 1ee211cd..a4888ccf 100644 --- a/test/test_resend_failed_notifications_response.py +++ b/test/test_resend_failed_notifications_response.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.resend_failed_notifications_response import ( - ResendFailedNotificationsResponse, -) - - -class TestResendFailedNotificationsResponse(unittest.TestCase): - """ResendFailedNotificationsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ResendFailedNotificationsResponse: - """Test ResendFailedNotificationsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ResendFailedNotificationsResponse` - """ - model = ResendFailedNotificationsResponse() - if include_optional: - return ResendFailedNotificationsResponse( - total = 10 - ) - else: - return ResendFailedNotificationsResponse( - ) - """ - - def testResendFailedNotificationsResponse(self): - """Test ResendFailedNotificationsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc2VuZF9mYWlsZWRfbm90aWZpY2F0aW9uc19yZXNwb25zZSBpbXBvcnQgKAogICAgUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc1Jlc3BvbnNlLAopCgoKY2xhc3MgVGVzdFJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBSZXNlbmRGYWlsZWROb3RpZmljYXRpb25zUmVzcG9uc2UoCiAgICAgICAgICAgICAgICB0b3RhbCA9IDEwCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUmVzZW5kRmFpbGVkTm90aWZpY2F0aW9uc1Jlc3BvbnNlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFJlc2VuZEZhaWxlZE5vdGlmaWNhdGlvbnNSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_resend_notifications_by_resource_id_request.py b/test/test_resend_notifications_by_resource_id_request.py index 0171522c..7798de8b 100644 --- a/test/test_resend_notifications_by_resource_id_request.py +++ b/test/test_resend_notifications_by_resource_id_request.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.resend_notifications_by_resource_id_request import ( - ResendNotificationsByResourceIdRequest, -) - - -class TestResendNotificationsByResourceIdRequest(unittest.TestCase): - """ResendNotificationsByResourceIdRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ResendNotificationsByResourceIdRequest: - """Test ResendNotificationsByResourceIdRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ResendNotificationsByResourceIdRequest` - """ - model = ResendNotificationsByResourceIdRequest() - if include_optional: - return ResendNotificationsByResourceIdRequest( - resource_id = '44fcead0-7053-4831-a53a-df7fb90d440f', - exclude_statuses = ["IN_PROGRESS","FAILED"] - ) - else: - return ResendNotificationsByResourceIdRequest( - resource_id = '44fcead0-7053-4831-a53a-df7fb90d440f', - ) - """ - - def testResendNotificationsByResourceIdRequest(self): - """Test ResendNotificationsByResourceIdRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc2VuZF9ub3RpZmljYXRpb25zX2J5X3Jlc291cmNlX2lkX3JlcXVlc3QgaW1wb3J0ICgKICAgIFJlc2VuZE5vdGlmaWNhdGlvbnNCeVJlc291cmNlSWRSZXF1ZXN0LAopCgoKY2xhc3MgVGVzdFJlc2VuZE5vdGlmaWNhdGlvbnNCeVJlc291cmNlSWRSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlJlc2VuZE5vdGlmaWNhdGlvbnNCeVJlc291cmNlSWRSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBSZXNlbmROb3RpZmljYXRpb25zQnlSZXNvdXJjZUlkUmVxdWVzdDoKICAgICAgICAiIiJUZXN0IFJlc2VuZE5vdGlmaWNhdGlvbnNCeVJlc291cmNlSWRSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFJlc2VuZE5vdGlmaWNhdGlvbnNCeVJlc291cmNlSWRSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gUmVzZW5kTm90aWZpY2F0aW9uc0J5UmVzb3VyY2VJZFJlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBSZXNlbmROb3RpZmljYXRpb25zQnlSZXNvdXJjZUlkUmVxdWVzdCgKICAgICAgICAgICAgICAgIHJlc291cmNlX2lkID0gJzQ0ZmNlYWQwLTcwNTMtNDgzMS1hNTNhLWRmN2ZiOTBkNDQwZicsCiAgICAgICAgICAgICAgICBleGNsdWRlX3N0YXR1c2VzID0gWyJJTl9QUk9HUkVTUyIsIkZBSUxFRCJdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUmVzZW5kTm90aWZpY2F0aW9uc0J5UmVzb3VyY2VJZFJlcXVlc3QoCiAgICAgICAgICAgICAgICByZXNvdXJjZV9pZCA9ICc0NGZjZWFkMC03MDUzLTQ4MzEtYTUzYS1kZjdmYjkwZDQ0MGYnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFJlc2VuZE5vdGlmaWNhdGlvbnNCeVJlc291cmNlSWRSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgUmVzZW5kTm90aWZpY2F0aW9uc0J5UmVzb3VyY2VJZFJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_resend_transaction_webhooks_request.py b/test/test_resend_transaction_webhooks_request.py index 6be8190f..69043413 100644 --- a/test/test_resend_transaction_webhooks_request.py +++ b/test/test_resend_transaction_webhooks_request.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.resend_transaction_webhooks_request import ( - ResendTransactionWebhooksRequest, -) - - -class TestResendTransactionWebhooksRequest(unittest.TestCase): - """ResendTransactionWebhooksRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ResendTransactionWebhooksRequest: - """Test ResendTransactionWebhooksRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ResendTransactionWebhooksRequest` - """ - model = ResendTransactionWebhooksRequest() - if include_optional: - return ResendTransactionWebhooksRequest( - resend_created = True, - resend_status_updated = True - ) - else: - return ResendTransactionWebhooksRequest( - ) - """ - - def testResendTransactionWebhooksRequest(self): - """Test ResendTransactionWebhooksRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc2VuZF90cmFuc2FjdGlvbl93ZWJob29rc19yZXF1ZXN0IGltcG9ydCAoCiAgICBSZXNlbmRUcmFuc2FjdGlvbldlYmhvb2tzUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RSZXNlbmRUcmFuc2FjdGlvbldlYmhvb2tzUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJSZXNlbmRUcmFuc2FjdGlvbldlYmhvb2tzUmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUmVzZW5kVHJhbnNhY3Rpb25XZWJob29rc1JlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBSZXNlbmRUcmFuc2FjdGlvbldlYmhvb2tzUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBSZXNlbmRUcmFuc2FjdGlvbldlYmhvb2tzUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFJlc2VuZFRyYW5zYWN0aW9uV2ViaG9va3NSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUmVzZW5kVHJhbnNhY3Rpb25XZWJob29rc1JlcXVlc3QoCiAgICAgICAgICAgICAgICByZXNlbmRfY3JlYXRlZCA9IFRydWUsCiAgICAgICAgICAgICAgICByZXNlbmRfc3RhdHVzX3VwZGF0ZWQgPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUmVzZW5kVHJhbnNhY3Rpb25XZWJob29rc1JlcXVlc3QoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UmVzZW5kVHJhbnNhY3Rpb25XZWJob29rc1JlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBSZXNlbmRUcmFuc2FjdGlvbldlYmhvb2tzUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_resend_webhooks_by_transaction_id_response.py b/test/test_resend_webhooks_by_transaction_id_response.py index 8b828639..78863a65 100644 --- a/test/test_resend_webhooks_by_transaction_id_response.py +++ b/test/test_resend_webhooks_by_transaction_id_response.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.resend_webhooks_by_transaction_id_response import ( - ResendWebhooksByTransactionIdResponse, -) - - -class TestResendWebhooksByTransactionIdResponse(unittest.TestCase): - """ResendWebhooksByTransactionIdResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ResendWebhooksByTransactionIdResponse: - """Test ResendWebhooksByTransactionIdResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ResendWebhooksByTransactionIdResponse` - """ - model = ResendWebhooksByTransactionIdResponse() - if include_optional: - return ResendWebhooksByTransactionIdResponse( - success = True - ) - else: - return ResendWebhooksByTransactionIdResponse( - success = True, - ) - """ - - def testResendWebhooksByTransactionIdResponse(self): - """Test ResendWebhooksByTransactionIdResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc2VuZF93ZWJob29rc19ieV90cmFuc2FjdGlvbl9pZF9yZXNwb25zZSBpbXBvcnQgKAogICAgUmVzZW5kV2ViaG9va3NCeVRyYW5zYWN0aW9uSWRSZXNwb25zZSwKKQoKCmNsYXNzIFRlc3RSZXNlbmRXZWJob29rc0J5VHJhbnNhY3Rpb25JZFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlJlc2VuZFdlYmhvb2tzQnlUcmFuc2FjdGlvbklkUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFJlc2VuZFdlYmhvb2tzQnlUcmFuc2FjdGlvbklkUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBSZXNlbmRXZWJob29rc0J5VHJhbnNhY3Rpb25JZFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFJlc2VuZFdlYmhvb2tzQnlUcmFuc2FjdGlvbklkUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBSZXNlbmRXZWJob29rc0J5VHJhbnNhY3Rpb25JZFJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUmVzZW5kV2ViaG9va3NCeVRyYW5zYWN0aW9uSWRSZXNwb25zZSgKICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUmVzZW5kV2ViaG9va3NCeVRyYW5zYWN0aW9uSWRSZXNwb25zZSgKICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBUcnVlLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFJlc2VuZFdlYmhvb2tzQnlUcmFuc2FjdGlvbklkUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBSZXNlbmRXZWJob29rc0J5VHJhbnNhY3Rpb25JZFJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_resend_webhooks_response.py b/test/test_resend_webhooks_response.py index 4998c17e..12af4af2 100644 --- a/test/test_resend_webhooks_response.py +++ b/test/test_resend_webhooks_response.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.resend_webhooks_response import ResendWebhooksResponse - - -class TestResendWebhooksResponse(unittest.TestCase): - """ResendWebhooksResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ResendWebhooksResponse: - """Test ResendWebhooksResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ResendWebhooksResponse` - """ - model = ResendWebhooksResponse() - if include_optional: - return ResendWebhooksResponse( - messages_count = 1.337 - ) - else: - return ResendWebhooksResponse( - ) - """ - - def testResendWebhooksResponse(self): - """Test ResendWebhooksResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc2VuZF93ZWJob29rc19yZXNwb25zZSBpbXBvcnQgUmVzZW5kV2ViaG9va3NSZXNwb25zZQoKCmNsYXNzIFRlc3RSZXNlbmRXZWJob29rc1Jlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlJlc2VuZFdlYmhvb2tzUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFJlc2VuZFdlYmhvb2tzUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBSZXNlbmRXZWJob29rc1Jlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFJlc2VuZFdlYmhvb2tzUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBSZXNlbmRXZWJob29rc1Jlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUmVzZW5kV2ViaG9va3NSZXNwb25zZSgKICAgICAgICAgICAgICAgIG1lc3NhZ2VzX2NvdW50ID0gMS4zMzcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBSZXNlbmRXZWJob29rc1Jlc3BvbnNlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFJlc2VuZFdlYmhvb2tzUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBSZXNlbmRXZWJob29rc1Jlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_reset_device_api.py b/test/test_reset_device_api.py index 2572b150..590828ea 100644 --- a/test/test_reset_device_api.py +++ b/test/test_reset_device_api.py @@ -1,39 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.reset_device_api import ResetDeviceApi - - -class TestResetDeviceApi(unittest.TestCase): - """ResetDeviceApi unit test stubs""" - - def setUp(self) -> None: - self.api = ResetDeviceApi() - - def tearDown(self) -> None: - pass - - def test_reset_device(self) -> None: - """Test case for reset_device - - Resets device - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLnJlc2V0X2RldmljZV9hcGkgaW1wb3J0IFJlc2V0RGV2aWNlQXBpCgoKY2xhc3MgVGVzdFJlc2V0RGV2aWNlQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlJlc2V0RGV2aWNlQXBpIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKSAtPiBOb25lOgogICAgICAgIHNlbGYuYXBpID0gUmVzZXREZXZpY2VBcGkoKQoKICAgIGRlZiB0ZWFyRG93bihzZWxmKSAtPiBOb25lOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9yZXNldF9kZXZpY2Uoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHJlc2V0X2RldmljZQoKICAgICAgICBSZXNldHMgZGV2aWNlCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_respond_to_connection_request.py b/test/test_respond_to_connection_request.py index fa47883e..5a472573 100644 --- a/test/test_respond_to_connection_request.py +++ b/test/test_respond_to_connection_request.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.respond_to_connection_request import RespondToConnectionRequest - - -class TestRespondToConnectionRequest(unittest.TestCase): - """RespondToConnectionRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> RespondToConnectionRequest: - """Test RespondToConnectionRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `RespondToConnectionRequest` - """ - model = RespondToConnectionRequest() - if include_optional: - return RespondToConnectionRequest( - approve = True - ) - else: - return RespondToConnectionRequest( - approve = True, - ) - """ - - def testRespondToConnectionRequest(self): - """Test RespondToConnectionRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJlc3BvbmRfdG9fY29ubmVjdGlvbl9yZXF1ZXN0IGltcG9ydCBSZXNwb25kVG9Db25uZWN0aW9uUmVxdWVzdAoKCmNsYXNzIFRlc3RSZXNwb25kVG9Db25uZWN0aW9uUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJSZXNwb25kVG9Db25uZWN0aW9uUmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUmVzcG9uZFRvQ29ubmVjdGlvblJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBSZXNwb25kVG9Db25uZWN0aW9uUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBSZXNwb25kVG9Db25uZWN0aW9uUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFJlc3BvbmRUb0Nvbm5lY3Rpb25SZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUmVzcG9uZFRvQ29ubmVjdGlvblJlcXVlc3QoCiAgICAgICAgICAgICAgICBhcHByb3ZlID0gVHJ1ZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFJlc3BvbmRUb0Nvbm5lY3Rpb25SZXF1ZXN0KAogICAgICAgICAgICAgICAgYXBwcm92ZSA9IFRydWUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0UmVzcG9uZFRvQ29ubmVjdGlvblJlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBSZXNwb25kVG9Db25uZWN0aW9uUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_retry_requote_request_details.py b/test/test_retry_requote_request_details.py index 1074aa52..f8da971f 100644 --- a/test/test_retry_requote_request_details.py +++ b/test/test_retry_requote_request_details.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.retry_requote_request_details import RetryRequoteRequestDetails - - -class TestRetryRequoteRequestDetails(unittest.TestCase): - """RetryRequoteRequestDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> RetryRequoteRequestDetails: - """Test RetryRequoteRequestDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `RetryRequoteRequestDetails` - """ - model = RetryRequoteRequestDetails() - if include_optional: - return RetryRequoteRequestDetails( - type = 'RETRY', - count = 1, - slippage_bps = 1 - ) - else: - return RetryRequoteRequestDetails( - type = 'RETRY', - count = 1, - ) - """ - - def testRetryRequoteRequestDetails(self): - """Test RetryRequoteRequestDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJldHJ5X3JlcXVvdGVfcmVxdWVzdF9kZXRhaWxzIGltcG9ydCBSZXRyeVJlcXVvdGVSZXF1ZXN0RGV0YWlscwoKCmNsYXNzIFRlc3RSZXRyeVJlcXVvdGVSZXF1ZXN0RGV0YWlscyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJSZXRyeVJlcXVvdGVSZXF1ZXN0RGV0YWlscyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUmV0cnlSZXF1b3RlUmVxdWVzdERldGFpbHM6CiAgICAgICAgIiIiVGVzdCBSZXRyeVJlcXVvdGVSZXF1ZXN0RGV0YWlscwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBSZXRyeVJlcXVvdGVSZXF1ZXN0RGV0YWlsc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFJldHJ5UmVxdW90ZVJlcXVlc3REZXRhaWxzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gUmV0cnlSZXF1b3RlUmVxdWVzdERldGFpbHMoCiAgICAgICAgICAgICAgICB0eXBlID0gJ1JFVFJZJywKICAgICAgICAgICAgICAgIGNvdW50ID0gMSwKICAgICAgICAgICAgICAgIHNsaXBwYWdlX2JwcyA9IDEKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBSZXRyeVJlcXVvdGVSZXF1ZXN0RGV0YWlscygKICAgICAgICAgICAgICAgIHR5cGUgPSAnUkVUUlknLAogICAgICAgICAgICAgICAgY291bnQgPSAxLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFJldHJ5UmVxdW90ZVJlcXVlc3REZXRhaWxzKHNlbGYpOgogICAgICAgICIiIlRlc3QgUmV0cnlSZXF1b3RlUmVxdWVzdERldGFpbHMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_retry_requote_type_enum.py b/test/test_retry_requote_type_enum.py index 61bf53be..f49cc39d 100644 --- a/test/test_retry_requote_type_enum.py +++ b/test/test_retry_requote_type_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.retry_requote_type_enum import RetryRequoteTypeEnum - - -class TestRetryRequoteTypeEnum(unittest.TestCase): - """RetryRequoteTypeEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testRetryRequoteTypeEnum(self): - """Test RetryRequoteTypeEnum""" - # inst = RetryRequoteTypeEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJldHJ5X3JlcXVvdGVfdHlwZV9lbnVtIGltcG9ydCBSZXRyeVJlcXVvdGVUeXBlRW51bQoKCmNsYXNzIFRlc3RSZXRyeVJlcXVvdGVUeXBlRW51bSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJSZXRyeVJlcXVvdGVUeXBlRW51bSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RSZXRyeVJlcXVvdGVUeXBlRW51bShzZWxmKToKICAgICAgICAiIiJUZXN0IFJldHJ5UmVxdW90ZVR5cGVFbnVtIiIiCiAgICAgICAgIyBpbnN0ID0gUmV0cnlSZXF1b3RlVHlwZUVudW0oKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_reward_info.py b/test/test_reward_info.py index 8270d0d9..3b350935 100644 --- a/test/test_reward_info.py +++ b/test/test_reward_info.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.reward_info import RewardInfo - - -class TestRewardInfo(unittest.TestCase): - """RewardInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> RewardInfo: - """Test RewardInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `RewardInfo` - """ - model = RewardInfo() - if include_optional: - return RewardInfo( - src_rewards = '', - dest_rewards = '' - ) - else: - return RewardInfo( - ) - """ - - def testRewardInfo(self): - """Test RewardInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJld2FyZF9pbmZvIGltcG9ydCBSZXdhcmRJbmZvCgoKY2xhc3MgVGVzdFJld2FyZEluZm8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUmV3YXJkSW5mbyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gUmV3YXJkSW5mbzoKICAgICAgICAiIiJUZXN0IFJld2FyZEluZm8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUmV3YXJkSW5mb2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFJld2FyZEluZm8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBSZXdhcmRJbmZvKAogICAgICAgICAgICAgICAgc3JjX3Jld2FyZHMgPSAnJywKICAgICAgICAgICAgICAgIGRlc3RfcmV3YXJkcyA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gUmV3YXJkSW5mbygKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RSZXdhcmRJbmZvKHNlbGYpOgogICAgICAgICIiIlRlc3QgUmV3YXJkSW5mbyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_rewards_info.py b/test/test_rewards_info.py index 544b6714..a7695ce9 100644 --- a/test/test_rewards_info.py +++ b/test/test_rewards_info.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.rewards_info import RewardsInfo - - -class TestRewardsInfo(unittest.TestCase): - """RewardsInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> RewardsInfo: - """Test RewardsInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `RewardsInfo` - """ - model = RewardsInfo() - if include_optional: - return RewardsInfo( - pending_rewards = '' - ) - else: - return RewardsInfo( - ) - """ - - def testRewardsInfo(self): - """Test RewardsInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJld2FyZHNfaW5mbyBpbXBvcnQgUmV3YXJkc0luZm8KCgpjbGFzcyBUZXN0UmV3YXJkc0luZm8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUmV3YXJkc0luZm8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFJld2FyZHNJbmZvOgogICAgICAgICIiIlRlc3QgUmV3YXJkc0luZm8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUmV3YXJkc0luZm9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBSZXdhcmRzSW5mbygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFJld2FyZHNJbmZvKAogICAgICAgICAgICAgICAgcGVuZGluZ19yZXdhcmRzID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBSZXdhcmRzSW5mbygKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RSZXdhcmRzSW5mbyhzZWxmKToKICAgICAgICAiIiJUZXN0IFJld2FyZHNJbmZvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_role_details.py b/test/test_role_details.py index 4036717a..05d3a819 100644 --- a/test/test_role_details.py +++ b/test/test_role_details.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.role_details import RoleDetails - - -class TestRoleDetails(unittest.TestCase): - """RoleDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> RoleDetails: - """Test RoleDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `RoleDetails` - """ - model = RoleDetails() - if include_optional: - return RoleDetails( - role_hash = '0x0000000000000000000000000000000000000000000000000000000000000000', - description = 'DEFAULT_ADMIN_ROLE', - accounts = [ - fireblocks.models.role_grantee.RoleGrantee( - account_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66', - date_of_grant = '2024-07-01T00:00Z', ) - ] - ) - else: - return RoleDetails( - role_hash = '0x0000000000000000000000000000000000000000000000000000000000000000', - description = 'DEFAULT_ADMIN_ROLE', - accounts = [ - fireblocks.models.role_grantee.RoleGrantee( - account_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66', - date_of_grant = '2024-07-01T00:00Z', ) - ], - ) - """ - - def testRoleDetails(self): - """Test RoleDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJvbGVfZGV0YWlscyBpbXBvcnQgUm9sZURldGFpbHMKCgpjbGFzcyBUZXN0Um9sZURldGFpbHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUm9sZURldGFpbHMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFJvbGVEZXRhaWxzOgogICAgICAgICIiIlRlc3QgUm9sZURldGFpbHMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUm9sZURldGFpbHNgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBSb2xlRGV0YWlscygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFJvbGVEZXRhaWxzKAogICAgICAgICAgICAgICAgcm9sZV9oYXNoID0gJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdERUZBVUxUX0FETUlOX1JPTEUnLAogICAgICAgICAgICAgICAgYWNjb3VudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucm9sZV9ncmFudGVlLlJvbGVHcmFudGVlKAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2FkZHJlc3MgPSAnMHhDMmM0ZTFEYjQxRjBiQjk3OTk2RDBlRDA1NDJEMjE3MGQxNDZGQjY2JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfb2ZfZ3JhbnQgPSAnMjAyNC0wNy0wMVQwMDowMFonLCApCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFJvbGVEZXRhaWxzKAogICAgICAgICAgICAgICAgcm9sZV9oYXNoID0gJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdERUZBVUxUX0FETUlOX1JPTEUnLAogICAgICAgICAgICAgICAgYWNjb3VudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucm9sZV9ncmFudGVlLlJvbGVHcmFudGVlKAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2FkZHJlc3MgPSAnMHhDMmM0ZTFEYjQxRjBiQjk3OTk2RDBlRDA1NDJEMjE3MGQxNDZGQjY2JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfb2ZfZ3JhbnQgPSAnMjAyNC0wNy0wMVQwMDowMFonLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RSb2xlRGV0YWlscyhzZWxmKToKICAgICAgICAiIiJUZXN0IFJvbGVEZXRhaWxzIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_role_grantee.py b/test/test_role_grantee.py index d5075389..b0307234 100644 --- a/test/test_role_grantee.py +++ b/test/test_role_grantee.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.role_grantee import RoleGrantee - - -class TestRoleGrantee(unittest.TestCase): - """RoleGrantee unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> RoleGrantee: - """Test RoleGrantee - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `RoleGrantee` - """ - model = RoleGrantee() - if include_optional: - return RoleGrantee( - account_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66', - date_of_grant = '2024-07-01T00:00Z' - ) - else: - return RoleGrantee( - account_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66', - date_of_grant = '2024-07-01T00:00Z', - ) - """ - - def testRoleGrantee(self): - """Test RoleGrantee""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnJvbGVfZ3JhbnRlZSBpbXBvcnQgUm9sZUdyYW50ZWUKCgpjbGFzcyBUZXN0Um9sZUdyYW50ZWUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiUm9sZUdyYW50ZWUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFJvbGVHcmFudGVlOgogICAgICAgICIiIlRlc3QgUm9sZUdyYW50ZWUKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgUm9sZUdyYW50ZWVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBSb2xlR3JhbnRlZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFJvbGVHcmFudGVlKAogICAgICAgICAgICAgICAgYWNjb3VudF9hZGRyZXNzID0gJzB4QzJjNGUxRGI0MUYwYkI5Nzk5NkQwZUQwNTQyRDIxNzBkMTQ2RkI2NicsCiAgICAgICAgICAgICAgICBkYXRlX29mX2dyYW50ID0gJzIwMjQtMDctMDFUMDA6MDBaJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFJvbGVHcmFudGVlKAogICAgICAgICAgICAgICAgYWNjb3VudF9hZGRyZXNzID0gJzB4QzJjNGUxRGI0MUYwYkI5Nzk5NkQwZUQwNTQyRDIxNzBkMTQ2RkI2NicsCiAgICAgICAgICAgICAgICBkYXRlX29mX2dyYW50ID0gJzIwMjQtMDctMDFUMDA6MDBaJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RSb2xlR3JhbnRlZShzZWxmKToKICAgICAgICAiIiJUZXN0IFJvbGVHcmFudGVlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_scope_item.py b/test/test_scope_item.py index f146cb1c..59d2f910 100644 --- a/test/test_scope_item.py +++ b/test/test_scope_item.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.scope_item import ScopeItem - - -class TestScopeItem(unittest.TestCase): - """ScopeItem unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScopeItem: - """Test ScopeItem - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScopeItem` - """ - model = ScopeItem() - if include_optional: - return ScopeItem( - provider_id = '', - account_id = '' - ) - else: - return ScopeItem( - provider_id = '', - ) - """ - - def testScopeItem(self): - """Test ScopeItem""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjb3BlX2l0ZW0gaW1wb3J0IFNjb3BlSXRlbQoKCmNsYXNzIFRlc3RTY29wZUl0ZW0odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU2NvcGVJdGVtIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTY29wZUl0ZW06CiAgICAgICAgIiIiVGVzdCBTY29wZUl0ZW0KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU2NvcGVJdGVtYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU2NvcGVJdGVtKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU2NvcGVJdGVtKAogICAgICAgICAgICAgICAgcHJvdmlkZXJfaWQgPSAnJywKICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNjb3BlSXRlbSgKICAgICAgICAgICAgICAgIHByb3ZpZGVyX2lkID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U2NvcGVJdGVtKHNlbGYpOgogICAgICAgICIiIlRlc3QgU2NvcGVJdGVtIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_screening_alert_exposure_type_enum.py b/test/test_screening_alert_exposure_type_enum.py index f9eb0404..15969c28 100644 --- a/test/test_screening_alert_exposure_type_enum.py +++ b/test/test_screening_alert_exposure_type_enum.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_alert_exposure_type_enum import ( - ScreeningAlertExposureTypeEnum, -) - - -class TestScreeningAlertExposureTypeEnum(unittest.TestCase): - """ScreeningAlertExposureTypeEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testScreeningAlertExposureTypeEnum(self): - """Test ScreeningAlertExposureTypeEnum""" - # inst = ScreeningAlertExposureTypeEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19hbGVydF9leHBvc3VyZV90eXBlX2VudW0gaW1wb3J0ICgKICAgIFNjcmVlbmluZ0FsZXJ0RXhwb3N1cmVUeXBlRW51bSwKKQoKCmNsYXNzIFRlc3RTY3JlZW5pbmdBbGVydEV4cG9zdXJlVHlwZUVudW0odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU2NyZWVuaW5nQWxlcnRFeHBvc3VyZVR5cGVFbnVtIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdFNjcmVlbmluZ0FsZXJ0RXhwb3N1cmVUeXBlRW51bShzZWxmKToKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ0FsZXJ0RXhwb3N1cmVUeXBlRW51bSIiIgogICAgICAgICMgaW5zdCA9IFNjcmVlbmluZ0FsZXJ0RXhwb3N1cmVUeXBlRW51bSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_screening_aml_alert.py b/test/test_screening_aml_alert.py index b23b5575..5f43400c 100644 --- a/test/test_screening_aml_alert.py +++ b/test/test_screening_aml_alert.py @@ -1,66 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_aml_alert import ScreeningAmlAlert - - -class TestScreeningAmlAlert(unittest.TestCase): - """ScreeningAmlAlert unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningAmlAlert: - """Test ScreeningAmlAlert - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningAmlAlert` - """ - model = ScreeningAmlAlert() - if include_optional: - return ScreeningAmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101 - ) - else: - return ScreeningAmlAlert( - alert_level = 'HIGH', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - ) - """ - - def testScreeningAmlAlert(self): - """Test ScreeningAmlAlert""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19hbWxfYWxlcnQgaW1wb3J0IFNjcmVlbmluZ0FtbEFsZXJ0CgoKY2xhc3MgVGVzdFNjcmVlbmluZ0FtbEFsZXJ0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNjcmVlbmluZ0FtbEFsZXJ0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTY3JlZW5pbmdBbWxBbGVydDoKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ0FtbEFsZXJ0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNjcmVlbmluZ0FtbEFsZXJ0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU2NyZWVuaW5nQW1sQWxlcnQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdBbWxBbGVydCgKICAgICAgICAgICAgICAgIGFsZXJ0X2xldmVsID0gJ0hJR0gnLAogICAgICAgICAgICAgICAgYWxlcnRfbmFtZSA9ICdTYW5jdGlvbnMgTWF0Y2gnLAogICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSAnU0FOQ1RJT05FRF9FTlRJVFknLAogICAgICAgICAgICAgICAgc2VydmljZSA9ICdDSEFJTkFMWVNJUycsCiAgICAgICAgICAgICAgICBleHRlcm5hbF9pZCA9ICdhbGVydF8xMjM0NScsCiAgICAgICAgICAgICAgICBhbGVydF9hbW91bnQgPSAxMDAwLjUsCiAgICAgICAgICAgICAgICBleHBvc3VyZV90eXBlID0gJ0RJUkVDVCcsCiAgICAgICAgICAgICAgICBwb2xpY3lfYWN0aW9uID0gJ0JMT0NLJywKICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkID0gMTAxCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU2NyZWVuaW5nQW1sQWxlcnQoCiAgICAgICAgICAgICAgICBhbGVydF9sZXZlbCA9ICdISUdIJywKICAgICAgICAgICAgICAgIGV4dGVybmFsX2lkID0gJ2FsZXJ0XzEyMzQ1JywKICAgICAgICAgICAgICAgIGFsZXJ0X2Ftb3VudCA9IDEwMDAuNSwKICAgICAgICAgICAgICAgIGV4cG9zdXJlX3R5cGUgPSAnRElSRUNUJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTY3JlZW5pbmdBbWxBbGVydChzZWxmKToKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ0FtbEFsZXJ0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_screening_aml_matched_rule.py b/test/test_screening_aml_matched_rule.py index 38ed60c2..b2372e75 100644 --- a/test/test_screening_aml_matched_rule.py +++ b/test/test_screening_aml_matched_rule.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_aml_matched_rule import ScreeningAmlMatchedRule - - -class TestScreeningAmlMatchedRule(unittest.TestCase): - """ScreeningAmlMatchedRule unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningAmlMatchedRule: - """Test ScreeningAmlMatchedRule - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningAmlMatchedRule` - """ - model = ScreeningAmlMatchedRule() - if include_optional: - return ScreeningAmlMatchedRule( - rule_id = 'rule_001', - rule_name = 'High Risk Sanctions Check', - action = 'ALLOW' - ) - else: - return ScreeningAmlMatchedRule( - ) - """ - - def testScreeningAmlMatchedRule(self): - """Test ScreeningAmlMatchedRule""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19hbWxfbWF0Y2hlZF9ydWxlIGltcG9ydCBTY3JlZW5pbmdBbWxNYXRjaGVkUnVsZQoKCmNsYXNzIFRlc3RTY3JlZW5pbmdBbWxNYXRjaGVkUnVsZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTY3JlZW5pbmdBbWxNYXRjaGVkUnVsZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU2NyZWVuaW5nQW1sTWF0Y2hlZFJ1bGU6CiAgICAgICAgIiIiVGVzdCBTY3JlZW5pbmdBbWxNYXRjaGVkUnVsZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTY3JlZW5pbmdBbWxNYXRjaGVkUnVsZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNjcmVlbmluZ0FtbE1hdGNoZWRSdWxlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU2NyZWVuaW5nQW1sTWF0Y2hlZFJ1bGUoCiAgICAgICAgICAgICAgICBydWxlX2lkID0gJ3J1bGVfMDAxJywKICAgICAgICAgICAgICAgIHJ1bGVfbmFtZSA9ICdIaWdoIFJpc2sgU2FuY3Rpb25zIENoZWNrJywKICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdBTExPVycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdBbWxNYXRjaGVkUnVsZSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTY3JlZW5pbmdBbWxNYXRjaGVkUnVsZShzZWxmKToKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ0FtbE1hdGNoZWRSdWxlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_screening_aml_result.py b/test/test_screening_aml_result.py index 73d13c4f..376486c6 100644 --- a/test/test_screening_aml_result.py +++ b/test/test_screening_aml_result.py @@ -1,80 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_aml_result import ScreeningAmlResult - - -class TestScreeningAmlResult(unittest.TestCase): - """ScreeningAmlResult unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningAmlResult: - """Test ScreeningAmlResult - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningAmlResult` - """ - model = ScreeningAmlResult() - if include_optional: - return ScreeningAmlResult( - alerts = [ - fireblocks.models.screening_aml_alert.ScreeningAmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ) - ], - provider_response = { }, - matched_rule = fireblocks.models.screening_aml_matched_rule.ScreeningAmlMatchedRule( - rule_id = 'rule_001', - rule_name = 'High Risk Sanctions Check', - action = 'ALLOW', ), - matched_alert = fireblocks.models.screening_aml_alert.ScreeningAmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ) - ) - else: - return ScreeningAmlResult( - ) - """ - - def testScreeningAmlResult(self): - """Test ScreeningAmlResult""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19hbWxfcmVzdWx0IGltcG9ydCBTY3JlZW5pbmdBbWxSZXN1bHQKCgpjbGFzcyBUZXN0U2NyZWVuaW5nQW1sUmVzdWx0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNjcmVlbmluZ0FtbFJlc3VsdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU2NyZWVuaW5nQW1sUmVzdWx0OgogICAgICAgICIiIlRlc3QgU2NyZWVuaW5nQW1sUmVzdWx0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNjcmVlbmluZ0FtbFJlc3VsdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNjcmVlbmluZ0FtbFJlc3VsdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNjcmVlbmluZ0FtbFJlc3VsdCgKICAgICAgICAgICAgICAgIGFsZXJ0cyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfYW1sX2FsZXJ0LlNjcmVlbmluZ0FtbEFsZXJ0KAogICAgICAgICAgICAgICAgICAgICAgICBhbGVydF9sZXZlbCA9ICdISUdIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X25hbWUgPSAnU2FuY3Rpb25zIE1hdGNoJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gJ1NBTkNUSU9ORURfRU5USVRZJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2UgPSAnQ0hBSU5BTFlTSVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfaWQgPSAnYWxlcnRfMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRfYW1vdW50ID0gMTAwMC41LCAKICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3N1cmVfdHlwZSA9ICdESVJFQ1QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5X2FjdGlvbiA9ICdCTE9DSycsIAogICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZCA9IDEwMSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBwcm92aWRlcl9yZXNwb25zZSA9IHsgfSwKICAgICAgICAgICAgICAgIG1hdGNoZWRfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19hbWxfbWF0Y2hlZF9ydWxlLlNjcmVlbmluZ0FtbE1hdGNoZWRSdWxlKAogICAgICAgICAgICAgICAgICAgIHJ1bGVfaWQgPSAncnVsZV8wMDEnLCAKICAgICAgICAgICAgICAgICAgICBydWxlX25hbWUgPSAnSGlnaCBSaXNrIFNhbmN0aW9ucyBDaGVjaycsIAogICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdBTExPVycsICksCiAgICAgICAgICAgICAgICBtYXRjaGVkX2FsZXJ0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX2FtbF9hbGVydC5TY3JlZW5pbmdBbWxBbGVydCgKICAgICAgICAgICAgICAgICAgICBhbGVydF9sZXZlbCA9ICdISUdIJywgCiAgICAgICAgICAgICAgICAgICAgYWxlcnRfbmFtZSA9ICdTYW5jdGlvbnMgTWF0Y2gnLCAKICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSA9ICdTQU5DVElPTkVEX0VOVElUWScsIAogICAgICAgICAgICAgICAgICAgIHNlcnZpY2UgPSAnQ0hBSU5BTFlTSVMnLCAKICAgICAgICAgICAgICAgICAgICBleHRlcm5hbF9pZCA9ICdhbGVydF8xMjM0NScsIAogICAgICAgICAgICAgICAgICAgIGFsZXJ0X2Ftb3VudCA9IDEwMDAuNSwgCiAgICAgICAgICAgICAgICAgICAgZXhwb3N1cmVfdHlwZSA9ICdESVJFQ1QnLCAKICAgICAgICAgICAgICAgICAgICBwb2xpY3lfYWN0aW9uID0gJ0JMT0NLJywgCiAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQgPSAxMDEsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdBbWxSZXN1bHQoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U2NyZWVuaW5nQW1sUmVzdWx0KHNlbGYpOgogICAgICAgICIiIlRlc3QgU2NyZWVuaW5nQW1sUmVzdWx0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_screening_configurations_request.py b/test/test_screening_configurations_request.py index 2104775a..776aa0fe 100644 --- a/test/test_screening_configurations_request.py +++ b/test/test_screening_configurations_request.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_configurations_request import ( - ScreeningConfigurationsRequest, -) - - -class TestScreeningConfigurationsRequest(unittest.TestCase): - """ScreeningConfigurationsRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningConfigurationsRequest: - """Test ScreeningConfigurationsRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningConfigurationsRequest` - """ - model = ScreeningConfigurationsRequest() - if include_optional: - return ScreeningConfigurationsRequest( - bypass_screening_during_service_outages = True, - inbound_transaction_delay = 1.337, - outbound_transaction_delay = 1.337 - ) - else: - return ScreeningConfigurationsRequest( - ) - """ - - def testScreeningConfigurationsRequest(self): - """Test ScreeningConfigurationsRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19jb25maWd1cmF0aW9uc19yZXF1ZXN0IGltcG9ydCAoCiAgICBTY3JlZW5pbmdDb25maWd1cmF0aW9uc1JlcXVlc3QsCikKCgpjbGFzcyBUZXN0U2NyZWVuaW5nQ29uZmlndXJhdGlvbnNSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNjcmVlbmluZ0NvbmZpZ3VyYXRpb25zUmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU2NyZWVuaW5nQ29uZmlndXJhdGlvbnNSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgU2NyZWVuaW5nQ29uZmlndXJhdGlvbnNSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNjcmVlbmluZ0NvbmZpZ3VyYXRpb25zUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNjcmVlbmluZ0NvbmZpZ3VyYXRpb25zUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNjcmVlbmluZ0NvbmZpZ3VyYXRpb25zUmVxdWVzdCgKICAgICAgICAgICAgICAgIGJ5cGFzc19zY3JlZW5pbmdfZHVyaW5nX3NlcnZpY2Vfb3V0YWdlcyA9IFRydWUsCiAgICAgICAgICAgICAgICBpbmJvdW5kX3RyYW5zYWN0aW9uX2RlbGF5ID0gMS4zMzcsCiAgICAgICAgICAgICAgICBvdXRib3VuZF90cmFuc2FjdGlvbl9kZWxheSA9IDEuMzM3CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU2NyZWVuaW5nQ29uZmlndXJhdGlvbnNSZXF1ZXN0KAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNjcmVlbmluZ0NvbmZpZ3VyYXRpb25zUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ0NvbmZpZ3VyYXRpb25zUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_screening_metadata_config.py b/test/test_screening_metadata_config.py index d0aaf007..62a75634 100644 --- a/test/test_screening_metadata_config.py +++ b/test/test_screening_metadata_config.py @@ -1,70 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_metadata_config import ScreeningMetadataConfig - - -class TestScreeningMetadataConfig(unittest.TestCase): - """ScreeningMetadataConfig unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningMetadataConfig: - """Test ScreeningMetadataConfig - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningMetadataConfig` - """ - model = ScreeningMetadataConfig() - if include_optional: - return ScreeningMetadataConfig( - direction = 'OUTBOUND', - provider = 'CHAINALYSIS', - risk_rating = 'MEDIUM', - risk_score = '0.8', - exposure_type = 'DIRECT', - category = [ - '' - ], - name = [ - '' - ], - category_id = [ - '' - ], - status = 'COMPLETED', - source_address = '0x123...', - dest_address = '0x456...' - ) - else: - return ScreeningMetadataConfig( - ) - """ - - def testScreeningMetadataConfig(self): - """Test ScreeningMetadataConfig""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19tZXRhZGF0YV9jb25maWcgaW1wb3J0IFNjcmVlbmluZ01ldGFkYXRhQ29uZmlnCgoKY2xhc3MgVGVzdFNjcmVlbmluZ01ldGFkYXRhQ29uZmlnKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNjcmVlbmluZ01ldGFkYXRhQ29uZmlnIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTY3JlZW5pbmdNZXRhZGF0YUNvbmZpZzoKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ01ldGFkYXRhQ29uZmlnCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNjcmVlbmluZ01ldGFkYXRhQ29uZmlnYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU2NyZWVuaW5nTWV0YWRhdGFDb25maWcoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdNZXRhZGF0YUNvbmZpZygKICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdPVVRCT1VORCcsCiAgICAgICAgICAgICAgICBwcm92aWRlciA9ICdDSEFJTkFMWVNJUycsCiAgICAgICAgICAgICAgICByaXNrX3JhdGluZyA9ICdNRURJVU0nLAogICAgICAgICAgICAgICAgcmlza19zY29yZSA9ICcwLjgnLAogICAgICAgICAgICAgICAgZXhwb3N1cmVfdHlwZSA9ICdESVJFQ1QnLAogICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSBbCiAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgbmFtZSA9IFsKICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZCA9IFsKICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywKICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzID0gJzB4MTIzLi4uJywKICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcweDQ1Ni4uLicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdNZXRhZGF0YUNvbmZpZygKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTY3JlZW5pbmdNZXRhZGF0YUNvbmZpZyhzZWxmKToKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ01ldGFkYXRhQ29uZmlnIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_screening_operation_execution.py b/test/test_screening_operation_execution.py index 41548e7f..41d624b0 100644 --- a/test/test_screening_operation_execution.py +++ b/test/test_screening_operation_execution.py @@ -1,86 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_operation_execution import ScreeningOperationExecution - - -class TestScreeningOperationExecution(unittest.TestCase): - """ScreeningOperationExecution unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningOperationExecution: - """Test ScreeningOperationExecution - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningOperationExecution` - """ - model = ScreeningOperationExecution() - if include_optional: - return ScreeningOperationExecution( - output = fireblocks.models.screening_operation_execution_output.ScreeningOperationExecutionOutput( - verdicts = [ - fireblocks.models.screening_verdict.ScreeningVerdict( - verdict = 'PASSED', - execution_operation_id = '', - account = null, - asset_id = '', - amount = '', - matched_rule = fireblocks.models.screening_verdict_matched_rule.ScreeningVerdict_matchedRule( - action = '', - category = [ - '' - ], ), ) - ], ), - started_at = 1.337, - finished_at = 1.337, - failure = fireblocks.models.screening_operation_failure.ScreeningOperationFailure( - reason = 'AML_PROCESS_FAILED', - data = fireblocks.models.screening_operation_execution_output.ScreeningOperationExecutionOutput( - verdicts = [ - fireblocks.models.screening_verdict.ScreeningVerdict( - verdict = 'PASSED', - execution_operation_id = '', - account = null, - asset_id = '', - amount = '', - matched_rule = fireblocks.models.screening_verdict_matched_rule.ScreeningVerdict_matchedRule( - action = '', - category = [ - '' - ], ), ) - ], ), ) - ) - else: - return ScreeningOperationExecution( - started_at = 1.337, - ) - """ - - def testScreeningOperationExecution(self): - """Test ScreeningOperationExecution""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19vcGVyYXRpb25fZXhlY3V0aW9uIGltcG9ydCBTY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb24KCgpjbGFzcyBUZXN0U2NyZWVuaW5nT3BlcmF0aW9uRXhlY3V0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU2NyZWVuaW5nT3BlcmF0aW9uRXhlY3V0aW9uOgogICAgICAgICIiIlRlc3QgU2NyZWVuaW5nT3BlcmF0aW9uRXhlY3V0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbigKICAgICAgICAgICAgICAgIG91dHB1dCA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dC5TY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgdmVyZGljdHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ192ZXJkaWN0LlNjcmVlbmluZ1ZlcmRpY3QoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJkaWN0ID0gJ1BBU1NFRCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0aW9uX29wZXJhdGlvbl9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnQgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3ZlcmRpY3RfbWF0Y2hlZF9ydWxlLlNjcmVlbmluZ1ZlcmRpY3RfbWF0Y2hlZFJ1bGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sICksCiAgICAgICAgICAgICAgICBzdGFydGVkX2F0ID0gMS4zMzcsCiAgICAgICAgICAgICAgICBmaW5pc2hlZF9hdCA9IDEuMzM3LAogICAgICAgICAgICAgICAgZmFpbHVyZSA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19vcGVyYXRpb25fZmFpbHVyZS5TY3JlZW5pbmdPcGVyYXRpb25GYWlsdXJlKAogICAgICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdBTUxfUFJPQ0VTU19GQUlMRUQnLCAKICAgICAgICAgICAgICAgICAgICBkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX29wZXJhdGlvbl9leGVjdXRpb25fb3V0cHV0LlNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCgKICAgICAgICAgICAgICAgICAgICAgICAgdmVyZGljdHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdmVyZGljdC5TY3JlZW5pbmdWZXJkaWN0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmRpY3QgPSAnUEFTU0VEJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0aW9uX29wZXJhdGlvbl9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50ID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZWRfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ192ZXJkaWN0X21hdGNoZWRfcnVsZS5TY3JlZW5pbmdWZXJkaWN0X21hdGNoZWRSdWxlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb24oCiAgICAgICAgICAgICAgICBzdGFydGVkX2F0ID0gMS4zMzcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U2NyZWVuaW5nT3BlcmF0aW9uRXhlY3V0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgU2NyZWVuaW5nT3BlcmF0aW9uRXhlY3V0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_screening_operation_execution_output.py b/test/test_screening_operation_execution_output.py index 8b4186db..87551777 100644 --- a/test/test_screening_operation_execution_output.py +++ b/test/test_screening_operation_execution_output.py @@ -1,81 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_operation_execution_output import ( - ScreeningOperationExecutionOutput, -) - - -class TestScreeningOperationExecutionOutput(unittest.TestCase): - """ScreeningOperationExecutionOutput unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningOperationExecutionOutput: - """Test ScreeningOperationExecutionOutput - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningOperationExecutionOutput` - """ - model = ScreeningOperationExecutionOutput() - if include_optional: - return ScreeningOperationExecutionOutput( - verdicts = [ - fireblocks.models.screening_verdict.ScreeningVerdict( - verdict = 'PASSED', - execution_operation_id = '', - account = null, - asset_id = '', - amount = '', - matched_rule = fireblocks.models.screening_verdict_matched_rule.ScreeningVerdict_matchedRule( - action = '', - category = [ - '' - ], ), ) - ] - ) - else: - return ScreeningOperationExecutionOutput( - verdicts = [ - fireblocks.models.screening_verdict.ScreeningVerdict( - verdict = 'PASSED', - execution_operation_id = '', - account = null, - asset_id = '', - amount = '', - matched_rule = fireblocks.models.screening_verdict_matched_rule.ScreeningVerdict_matchedRule( - action = '', - category = [ - '' - ], ), ) - ], - ) - """ - - def testScreeningOperationExecutionOutput(self): - """Test ScreeningOperationExecutionOutput""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dCBpbXBvcnQgKAogICAgU2NyZWVuaW5nT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0LAopCgoKY2xhc3MgVGVzdFNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dDoKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb25PdXRwdXRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQoCiAgICAgICAgICAgICAgICB2ZXJkaWN0cyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdmVyZGljdC5TY3JlZW5pbmdWZXJkaWN0KAogICAgICAgICAgICAgICAgICAgICAgICB2ZXJkaWN0ID0gJ1BBU1NFRCcsIAogICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRpb25fb3BlcmF0aW9uX2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50ID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZWRfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ192ZXJkaWN0X21hdGNoZWRfcnVsZS5TY3JlZW5pbmdWZXJkaWN0X21hdGNoZWRSdWxlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCApCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCgKICAgICAgICAgICAgICAgIHZlcmRpY3RzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ192ZXJkaWN0LlNjcmVlbmluZ1ZlcmRpY3QoCiAgICAgICAgICAgICAgICAgICAgICAgIHZlcmRpY3QgPSAnUEFTU0VEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dGlvbl9vcGVyYXRpb25faWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnQgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3ZlcmRpY3RfbWF0Y2hlZF9ydWxlLlNjcmVlbmluZ1ZlcmRpY3RfbWF0Y2hlZFJ1bGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dChzZWxmKToKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ09wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_screening_operation_failure.py b/test/test_screening_operation_failure.py index c62935d9..17138fbd 100644 --- a/test/test_screening_operation_failure.py +++ b/test/test_screening_operation_failure.py @@ -1,69 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_operation_failure import ScreeningOperationFailure - - -class TestScreeningOperationFailure(unittest.TestCase): - """ScreeningOperationFailure unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningOperationFailure: - """Test ScreeningOperationFailure - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningOperationFailure` - """ - model = ScreeningOperationFailure() - if include_optional: - return ScreeningOperationFailure( - reason = 'AML_PROCESS_FAILED', - data = fireblocks.models.screening_operation_execution_output.ScreeningOperationExecutionOutput( - verdicts = [ - fireblocks.models.screening_verdict.ScreeningVerdict( - verdict = 'PASSED', - execution_operation_id = '', - account = null, - asset_id = '', - amount = '', - matched_rule = fireblocks.models.screening_verdict_matched_rule.ScreeningVerdict_matchedRule( - action = '', - category = [ - '' - ], ), ) - ], ) - ) - else: - return ScreeningOperationFailure( - reason = 'AML_PROCESS_FAILED', - ) - """ - - def testScreeningOperationFailure(self): - """Test ScreeningOperationFailure""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19vcGVyYXRpb25fZmFpbHVyZSBpbXBvcnQgU2NyZWVuaW5nT3BlcmF0aW9uRmFpbHVyZQoKCmNsYXNzIFRlc3RTY3JlZW5pbmdPcGVyYXRpb25GYWlsdXJlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNjcmVlbmluZ09wZXJhdGlvbkZhaWx1cmUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNjcmVlbmluZ09wZXJhdGlvbkZhaWx1cmU6CiAgICAgICAgIiIiVGVzdCBTY3JlZW5pbmdPcGVyYXRpb25GYWlsdXJlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNjcmVlbmluZ09wZXJhdGlvbkZhaWx1cmVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTY3JlZW5pbmdPcGVyYXRpb25GYWlsdXJlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU2NyZWVuaW5nT3BlcmF0aW9uRmFpbHVyZSgKICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdBTUxfUFJPQ0VTU19GQUlMRUQnLAogICAgICAgICAgICAgICAgZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dC5TY3JlZW5pbmdPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgdmVyZGljdHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ192ZXJkaWN0LlNjcmVlbmluZ1ZlcmRpY3QoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJkaWN0ID0gJ1BBU1NFRCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0aW9uX29wZXJhdGlvbl9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnQgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3ZlcmRpY3RfbWF0Y2hlZF9ydWxlLlNjcmVlbmluZ1ZlcmRpY3RfbWF0Y2hlZFJ1bGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdPcGVyYXRpb25GYWlsdXJlKAogICAgICAgICAgICAgICAgcmVhc29uID0gJ0FNTF9QUk9DRVNTX0ZBSUxFRCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U2NyZWVuaW5nT3BlcmF0aW9uRmFpbHVyZShzZWxmKToKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ09wZXJhdGlvbkZhaWx1cmUiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_screening_operation_type.py b/test/test_screening_operation_type.py index d5d0e297..804a9c60 100644 --- a/test/test_screening_operation_type.py +++ b/test/test_screening_operation_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_operation_type import ScreeningOperationType - - -class TestScreeningOperationType(unittest.TestCase): - """ScreeningOperationType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testScreeningOperationType(self): - """Test ScreeningOperationType""" - # inst = ScreeningOperationType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19vcGVyYXRpb25fdHlwZSBpbXBvcnQgU2NyZWVuaW5nT3BlcmF0aW9uVHlwZQoKCmNsYXNzIFRlc3RTY3JlZW5pbmdPcGVyYXRpb25UeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNjcmVlbmluZ09wZXJhdGlvblR5cGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0U2NyZWVuaW5nT3BlcmF0aW9uVHlwZShzZWxmKToKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ09wZXJhdGlvblR5cGUiIiIKICAgICAgICAjIGluc3QgPSBTY3JlZW5pbmdPcGVyYXRpb25UeXBlKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_screening_policy_response.py b/test/test_screening_policy_response.py index bf5c88c0..a53421c6 100644 --- a/test/test_screening_policy_response.py +++ b/test/test_screening_policy_response.py @@ -1,89 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_policy_response import ScreeningPolicyResponse - - -class TestScreeningPolicyResponse(unittest.TestCase): - """ScreeningPolicyResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningPolicyResponse: - """Test ScreeningPolicyResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningPolicyResponse` - """ - model = ScreeningPolicyResponse() - if include_optional: - return ScreeningPolicyResponse( - policy = fireblocks.models.travel_rule_policy_rule_response.TravelRulePolicyRuleResponse( - source_type = '', - source_sub_type = '', - dest_type = '', - dest_sub_type = '', - dest_address = '', - source_id = '', - dest_id = '', - asset = '', - base_asset = '', - amount = 1.337, - amount_usd = 1.337, - network_protocol = 'ETH', - operation = '', - action = 'SCREEN', ), - policy_status = '', - is_default = True, - create_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), - last_update = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f') - ) - else: - return ScreeningPolicyResponse( - policy = fireblocks.models.travel_rule_policy_rule_response.TravelRulePolicyRuleResponse( - source_type = '', - source_sub_type = '', - dest_type = '', - dest_sub_type = '', - dest_address = '', - source_id = '', - dest_id = '', - asset = '', - base_asset = '', - amount = 1.337, - amount_usd = 1.337, - network_protocol = 'ETH', - operation = '', - action = 'SCREEN', ), - is_default = True, - last_update = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), - ) - """ - - def testScreeningPolicyResponse(self): - """Test ScreeningPolicyResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19wb2xpY3lfcmVzcG9uc2UgaW1wb3J0IFNjcmVlbmluZ1BvbGljeVJlc3BvbnNlCgoKY2xhc3MgVGVzdFNjcmVlbmluZ1BvbGljeVJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNjcmVlbmluZ1BvbGljeVJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTY3JlZW5pbmdQb2xpY3lSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ1BvbGljeVJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNjcmVlbmluZ1BvbGljeVJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU2NyZWVuaW5nUG9saWN5UmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdQb2xpY3lSZXNwb25zZSgKICAgICAgICAgICAgICAgIHBvbGljeSA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3BvbGljeV9ydWxlX3Jlc3BvbnNlLlRyYXZlbFJ1bGVQb2xpY3lSdWxlUmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgc291cmNlX3R5cGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgc291cmNlX3N1Yl90eXBlID0gJycsIAogICAgICAgICAgICAgICAgICAgIGRlc3RfdHlwZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBkZXN0X3N1Yl90eXBlID0gJycsIAogICAgICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBzb3VyY2VfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgZGVzdF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhc3NldCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICBhbW91bnRfdXNkID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgIG5ldHdvcmtfcHJvdG9jb2wgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdTQ1JFRU4nLCApLAogICAgICAgICAgICAgICAgcG9saWN5X3N0YXR1cyA9ICcnLAogICAgICAgICAgICAgICAgaXNfZGVmYXVsdCA9IFRydWUsCiAgICAgICAgICAgICAgICBjcmVhdGVfZGF0ZSA9IGRhdGV0aW1lLmRhdGV0aW1lLnN0cnB0aW1lKCcyMDEzLTEwLTIwIDE5OjIwOjMwLjAwJywgJyVZLSVtLSVkICVIOiVNOiVTLiVmJyksCiAgICAgICAgICAgICAgICBsYXN0X3VwZGF0ZSA9IGRhdGV0aW1lLmRhdGV0aW1lLnN0cnB0aW1lKCcyMDEzLTEwLTIwIDE5OjIwOjMwLjAwJywgJyVZLSVtLSVkICVIOiVNOiVTLiVmJykKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdQb2xpY3lSZXNwb25zZSgKICAgICAgICAgICAgICAgIHBvbGljeSA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3BvbGljeV9ydWxlX3Jlc3BvbnNlLlRyYXZlbFJ1bGVQb2xpY3lSdWxlUmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgc291cmNlX3R5cGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgc291cmNlX3N1Yl90eXBlID0gJycsIAogICAgICAgICAgICAgICAgICAgIGRlc3RfdHlwZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBkZXN0X3N1Yl90eXBlID0gJycsIAogICAgICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBzb3VyY2VfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgZGVzdF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhc3NldCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICBhbW91bnRfdXNkID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgIG5ldHdvcmtfcHJvdG9jb2wgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdTQ1JFRU4nLCApLAogICAgICAgICAgICAgICAgaXNfZGVmYXVsdCA9IFRydWUsCiAgICAgICAgICAgICAgICBsYXN0X3VwZGF0ZSA9IGRhdGV0aW1lLmRhdGV0aW1lLnN0cnB0aW1lKCcyMDEzLTEwLTIwIDE5OjIwOjMwLjAwJywgJyVZLSVtLSVkICVIOiVNOiVTLiVmJyksCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U2NyZWVuaW5nUG9saWN5UmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTY3JlZW5pbmdQb2xpY3lSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_screening_provider_rules_configuration_response.py b/test/test_screening_provider_rules_configuration_response.py index 61da48cc..1467bbbc 100644 --- a/test/test_screening_provider_rules_configuration_response.py +++ b/test/test_screening_provider_rules_configuration_response.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_provider_rules_configuration_response import ( - ScreeningProviderRulesConfigurationResponse, -) - - -class TestScreeningProviderRulesConfigurationResponse(unittest.TestCase): - """ScreeningProviderRulesConfigurationResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> ScreeningProviderRulesConfigurationResponse: - """Test ScreeningProviderRulesConfigurationResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningProviderRulesConfigurationResponse` - """ - model = ScreeningProviderRulesConfigurationResponse() - if include_optional: - return ScreeningProviderRulesConfigurationResponse( - direction = 'INBOUND', - status = 'COMPLETED', - amount_usd = 1.337, - amount = 1.337, - asset = '', - action = 'ACCEPT' - ) - else: - return ScreeningProviderRulesConfigurationResponse( - action = 'ACCEPT', - ) - """ - - def testScreeningProviderRulesConfigurationResponse(self): - """Test ScreeningProviderRulesConfigurationResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19wcm92aWRlcl9ydWxlc19jb25maWd1cmF0aW9uX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBTY3JlZW5pbmdQcm92aWRlclJ1bGVzQ29uZmlndXJhdGlvblJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdFNjcmVlbmluZ1Byb3ZpZGVyUnVsZXNDb25maWd1cmF0aW9uUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU2NyZWVuaW5nUHJvdmlkZXJSdWxlc0NvbmZpZ3VyYXRpb25SZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2UoCiAgICAgICAgc2VsZiwgaW5jbHVkZV9vcHRpb25hbAogICAgKSAtPiBTY3JlZW5pbmdQcm92aWRlclJ1bGVzQ29uZmlndXJhdGlvblJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgU2NyZWVuaW5nUHJvdmlkZXJSdWxlc0NvbmZpZ3VyYXRpb25SZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTY3JlZW5pbmdQcm92aWRlclJ1bGVzQ29uZmlndXJhdGlvblJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU2NyZWVuaW5nUHJvdmlkZXJSdWxlc0NvbmZpZ3VyYXRpb25SZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNjcmVlbmluZ1Byb3ZpZGVyUnVsZXNDb25maWd1cmF0aW9uUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnSU5CT1VORCcsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywKICAgICAgICAgICAgICAgIGFtb3VudF91c2QgPSAxLjMzNywKICAgICAgICAgICAgICAgIGFtb3VudCA9IDEuMzM3LAogICAgICAgICAgICAgICAgYXNzZXQgPSAnJywKICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdBQ0NFUFQnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU2NyZWVuaW5nUHJvdmlkZXJSdWxlc0NvbmZpZ3VyYXRpb25SZXNwb25zZSgKICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdBQ0NFUFQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNjcmVlbmluZ1Byb3ZpZGVyUnVsZXNDb25maWd1cmF0aW9uUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTY3JlZW5pbmdQcm92aWRlclJ1bGVzQ29uZmlndXJhdGlvblJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_screening_tr_link_amount.py b/test/test_screening_tr_link_amount.py index 2396b2cf..27a80b19 100644 --- a/test/test_screening_tr_link_amount.py +++ b/test/test_screening_tr_link_amount.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_tr_link_amount import ScreeningTRLinkAmount - - -class TestScreeningTRLinkAmount(unittest.TestCase): - """ScreeningTRLinkAmount unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningTRLinkAmount: - """Test ScreeningTRLinkAmount - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningTRLinkAmount` - """ - model = ScreeningTRLinkAmount() - if include_optional: - return ScreeningTRLinkAmount( - range = fireblocks.models.amount_range_min_max.AmountRangeMinMax( - min = '100', - max = '10000', ), - currency = 'USD' - ) - else: - return ScreeningTRLinkAmount( - ) - """ - - def testScreeningTRLinkAmount(self): - """Test ScreeningTRLinkAmount""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cl9saW5rX2Ftb3VudCBpbXBvcnQgU2NyZWVuaW5nVFJMaW5rQW1vdW50CgoKY2xhc3MgVGVzdFNjcmVlbmluZ1RSTGlua0Ftb3VudCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTY3JlZW5pbmdUUkxpbmtBbW91bnQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNjcmVlbmluZ1RSTGlua0Ftb3VudDoKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ1RSTGlua0Ftb3VudAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTY3JlZW5pbmdUUkxpbmtBbW91bnRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTY3JlZW5pbmdUUkxpbmtBbW91bnQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdUUkxpbmtBbW91bnQoCiAgICAgICAgICAgICAgICByYW5nZSA9IGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9yYW5nZV9taW5fbWF4LkFtb3VudFJhbmdlTWluTWF4KAogICAgICAgICAgICAgICAgICAgIG1pbiA9ICcxMDAnLCAKICAgICAgICAgICAgICAgICAgICBtYXggPSAnMTAwMDAnLCApLAogICAgICAgICAgICAgICAgY3VycmVuY3kgPSAnVVNEJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNjcmVlbmluZ1RSTGlua0Ftb3VudCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTY3JlZW5pbmdUUkxpbmtBbW91bnQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTY3JlZW5pbmdUUkxpbmtBbW91bnQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_screening_tr_link_missing_trm_decision.py b/test/test_screening_tr_link_missing_trm_decision.py index ebac6ba5..e11c09fb 100644 --- a/test/test_screening_tr_link_missing_trm_decision.py +++ b/test/test_screening_tr_link_missing_trm_decision.py @@ -1,84 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_tr_link_missing_trm_decision import ( - ScreeningTRLinkMissingTrmDecision, -) - - -class TestScreeningTRLinkMissingTrmDecision(unittest.TestCase): - """ScreeningTRLinkMissingTrmDecision unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningTRLinkMissingTrmDecision: - """Test ScreeningTRLinkMissingTrmDecision - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningTRLinkMissingTrmDecision` - """ - model = ScreeningTRLinkMissingTrmDecision() - if include_optional: - return ScreeningTRLinkMissingTrmDecision( - customer_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - direction = 'OUTBOUND', - source_type = 'VAULT_ACCOUNT', - source_sub_type = 'INTERNAL', - source_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = 'INTERNAL', - dest_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - source_id = '1', - dest_id = '1', - asset = 'BTC', - base_asset = 'USD', - amount = fireblocks.models.screening_tr_link_amount.ScreeningTRLinkAmount( - range = fireblocks.models.amount_range_min_max.AmountRangeMinMax( - min = '100', - max = '10000', ), - currency = 'USD', ), - network_protocol = 'BITCOIN', - operation = 'TRANSFER', - description = 'Rule for high-value BTC transfers', - is_default = True, - valid_before = 1672531200000, - valid_after = 1640995200000, - action = 'WAIT', - source = 'policy', - timestamp = '2023-10-05T14:48Z', - reason = 'Missing travel rule message' - ) - else: - return ScreeningTRLinkMissingTrmDecision( - action = 'WAIT', - source = 'policy', - ) - """ - - def testScreeningTRLinkMissingTrmDecision(self): - """Test ScreeningTRLinkMissingTrmDecision""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cl9saW5rX21pc3NpbmdfdHJtX2RlY2lzaW9uIGltcG9ydCAoCiAgICBTY3JlZW5pbmdUUkxpbmtNaXNzaW5nVHJtRGVjaXNpb24sCikKCgpjbGFzcyBUZXN0U2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNjcmVlbmluZ1RSTGlua01pc3NpbmdUcm1EZWNpc2lvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uOgogICAgICAgICIiIlRlc3QgU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNjcmVlbmluZ1RSTGlua01pc3NpbmdUcm1EZWNpc2lvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNjcmVlbmluZ1RSTGlua01pc3NpbmdUcm1EZWNpc2lvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNjcmVlbmluZ1RSTGlua01pc3NpbmdUcm1EZWNpc2lvbigKICAgICAgICAgICAgICAgIGN1c3RvbWVyX2lkID0gJzNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNicsCiAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLAogICAgICAgICAgICAgICAgc291cmNlX3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsCiAgICAgICAgICAgICAgICBzb3VyY2Vfc3ViX3R5cGUgPSAnSU5URVJOQUwnLAogICAgICAgICAgICAgICAgc291cmNlX2FkZHJlc3MgPSAnMUExelAxZVA1UUdlZmkyRE1QVGZUTDVTTG12N0RpdmZOYScsCiAgICAgICAgICAgICAgICBkZXN0X3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsCiAgICAgICAgICAgICAgICBkZXN0X3N1Yl90eXBlID0gJ0lOVEVSTkFMJywKICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcxQTF6UDFlUDVRR2VmaTJETVBUZlRMNVNMbXY3RGl2Zk5hJywKICAgICAgICAgICAgICAgIHNvdXJjZV9pZCA9ICcxJywKICAgICAgICAgICAgICAgIGRlc3RfaWQgPSAnMScsCiAgICAgICAgICAgICAgICBhc3NldCA9ICdCVEMnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldCA9ICdVU0QnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyX2xpbmtfYW1vdW50LlNjcmVlbmluZ1RSTGlua0Ftb3VudCgKICAgICAgICAgICAgICAgICAgICByYW5nZSA9IGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9yYW5nZV9taW5fbWF4LkFtb3VudFJhbmdlTWluTWF4KAogICAgICAgICAgICAgICAgICAgICAgICBtaW4gPSAnMTAwJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG1heCA9ICcxMDAwMCcsICksIAogICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5ID0gJ1VTRCcsICksCiAgICAgICAgICAgICAgICBuZXR3b3JrX3Byb3RvY29sID0gJ0JJVENPSU4nLAogICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gJ1RSQU5TRkVSJywKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1J1bGUgZm9yIGhpZ2gtdmFsdWUgQlRDIHRyYW5zZmVycycsCiAgICAgICAgICAgICAgICBpc19kZWZhdWx0ID0gVHJ1ZSwKICAgICAgICAgICAgICAgIHZhbGlkX2JlZm9yZSA9IDE2NzI1MzEyMDAwMDAsCiAgICAgICAgICAgICAgICB2YWxpZF9hZnRlciA9IDE2NDA5OTUyMDAwMDAsCiAgICAgICAgICAgICAgICBhY3Rpb24gPSAnV0FJVCcsCiAgICAgICAgICAgICAgICBzb3VyY2UgPSAncG9saWN5JywKICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9ICcyMDIzLTEwLTA1VDE0OjQ4WicsCiAgICAgICAgICAgICAgICByZWFzb24gPSAnTWlzc2luZyB0cmF2ZWwgcnVsZSBtZXNzYWdlJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNjcmVlbmluZ1RSTGlua01pc3NpbmdUcm1EZWNpc2lvbigKICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdXQUlUJywKICAgICAgICAgICAgICAgIHNvdXJjZSA9ICdwb2xpY3knLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNjcmVlbmluZ1RSTGlua01pc3NpbmdUcm1EZWNpc2lvbihzZWxmKToKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ1RSTGlua01pc3NpbmdUcm1EZWNpc2lvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_screening_tr_link_missing_trm_rule.py b/test/test_screening_tr_link_missing_trm_rule.py index d6d957b7..417bf122 100644 --- a/test/test_screening_tr_link_missing_trm_rule.py +++ b/test/test_screening_tr_link_missing_trm_rule.py @@ -1,80 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_tr_link_missing_trm_rule import ( - ScreeningTRLinkMissingTrmRule, -) - - -class TestScreeningTRLinkMissingTrmRule(unittest.TestCase): - """ScreeningTRLinkMissingTrmRule unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningTRLinkMissingTrmRule: - """Test ScreeningTRLinkMissingTrmRule - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningTRLinkMissingTrmRule` - """ - model = ScreeningTRLinkMissingTrmRule() - if include_optional: - return ScreeningTRLinkMissingTrmRule( - customer_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - direction = 'OUTBOUND', - source_type = 'VAULT_ACCOUNT', - source_sub_type = 'INTERNAL', - source_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = 'INTERNAL', - dest_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - source_id = '1', - dest_id = '1', - asset = 'BTC', - base_asset = 'USD', - amount = fireblocks.models.screening_tr_link_amount.ScreeningTRLinkAmount( - range = fireblocks.models.amount_range_min_max.AmountRangeMinMax( - min = '100', - max = '10000', ), - currency = 'USD', ), - network_protocol = 'BITCOIN', - operation = 'TRANSFER', - description = 'Rule for high-value BTC transfers', - is_default = True, - valid_before = 1672531200000, - valid_after = 1640995200000, - action = 'WAIT' - ) - else: - return ScreeningTRLinkMissingTrmRule( - action = 'WAIT', - ) - """ - - def testScreeningTRLinkMissingTrmRule(self): - """Test ScreeningTRLinkMissingTrmRule""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cl9saW5rX21pc3NpbmdfdHJtX3J1bGUgaW1wb3J0ICgKICAgIFNjcmVlbmluZ1RSTGlua01pc3NpbmdUcm1SdWxlLAopCgoKY2xhc3MgVGVzdFNjcmVlbmluZ1RSTGlua01pc3NpbmdUcm1SdWxlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNjcmVlbmluZ1RSTGlua01pc3NpbmdUcm1SdWxlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTY3JlZW5pbmdUUkxpbmtNaXNzaW5nVHJtUnVsZToKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ1RSTGlua01pc3NpbmdUcm1SdWxlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNjcmVlbmluZ1RSTGlua01pc3NpbmdUcm1SdWxlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybVJ1bGUoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdUUkxpbmtNaXNzaW5nVHJtUnVsZSgKICAgICAgICAgICAgICAgIGN1c3RvbWVyX2lkID0gJzNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNicsCiAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLAogICAgICAgICAgICAgICAgc291cmNlX3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsCiAgICAgICAgICAgICAgICBzb3VyY2Vfc3ViX3R5cGUgPSAnSU5URVJOQUwnLAogICAgICAgICAgICAgICAgc291cmNlX2FkZHJlc3MgPSAnMUExelAxZVA1UUdlZmkyRE1QVGZUTDVTTG12N0RpdmZOYScsCiAgICAgICAgICAgICAgICBkZXN0X3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsCiAgICAgICAgICAgICAgICBkZXN0X3N1Yl90eXBlID0gJ0lOVEVSTkFMJywKICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcxQTF6UDFlUDVRR2VmaTJETVBUZlRMNVNMbXY3RGl2Zk5hJywKICAgICAgICAgICAgICAgIHNvdXJjZV9pZCA9ICcxJywKICAgICAgICAgICAgICAgIGRlc3RfaWQgPSAnMScsCiAgICAgICAgICAgICAgICBhc3NldCA9ICdCVEMnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldCA9ICdVU0QnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyX2xpbmtfYW1vdW50LlNjcmVlbmluZ1RSTGlua0Ftb3VudCgKICAgICAgICAgICAgICAgICAgICByYW5nZSA9IGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9yYW5nZV9taW5fbWF4LkFtb3VudFJhbmdlTWluTWF4KAogICAgICAgICAgICAgICAgICAgICAgICBtaW4gPSAnMTAwJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG1heCA9ICcxMDAwMCcsICksIAogICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5ID0gJ1VTRCcsICksCiAgICAgICAgICAgICAgICBuZXR3b3JrX3Byb3RvY29sID0gJ0JJVENPSU4nLAogICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gJ1RSQU5TRkVSJywKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1J1bGUgZm9yIGhpZ2gtdmFsdWUgQlRDIHRyYW5zZmVycycsCiAgICAgICAgICAgICAgICBpc19kZWZhdWx0ID0gVHJ1ZSwKICAgICAgICAgICAgICAgIHZhbGlkX2JlZm9yZSA9IDE2NzI1MzEyMDAwMDAsCiAgICAgICAgICAgICAgICB2YWxpZF9hZnRlciA9IDE2NDA5OTUyMDAwMDAsCiAgICAgICAgICAgICAgICBhY3Rpb24gPSAnV0FJVCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdUUkxpbmtNaXNzaW5nVHJtUnVsZSgKICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdXQUlUJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTY3JlZW5pbmdUUkxpbmtNaXNzaW5nVHJtUnVsZShzZWxmKToKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ1RSTGlua01pc3NpbmdUcm1SdWxlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_screening_tr_link_post_screening_rule.py b/test/test_screening_tr_link_post_screening_rule.py index d029ebbc..8c646be3 100644 --- a/test/test_screening_tr_link_post_screening_rule.py +++ b/test/test_screening_tr_link_post_screening_rule.py @@ -1,82 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_tr_link_post_screening_rule import ( - ScreeningTRLinkPostScreeningRule, -) - - -class TestScreeningTRLinkPostScreeningRule(unittest.TestCase): - """ScreeningTRLinkPostScreeningRule unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningTRLinkPostScreeningRule: - """Test ScreeningTRLinkPostScreeningRule - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningTRLinkPostScreeningRule` - """ - model = ScreeningTRLinkPostScreeningRule() - if include_optional: - return ScreeningTRLinkPostScreeningRule( - customer_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - direction = 'OUTBOUND', - source_type = 'VAULT_ACCOUNT', - source_sub_type = 'INTERNAL', - source_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = 'INTERNAL', - dest_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - source_id = '1', - dest_id = '1', - asset = 'BTC', - base_asset = 'USD', - amount = fireblocks.models.screening_tr_link_amount.ScreeningTRLinkAmount( - range = fireblocks.models.amount_range_min_max.AmountRangeMinMax( - min = '100', - max = '10000', ), - currency = 'USD', ), - network_protocol = 'BITCOIN', - operation = 'TRANSFER', - description = 'Rule for high-value BTC transfers', - is_default = True, - provider_ident = 'sumsub', - trm_status = 'ACCEPTED', - valid_before = 1672531200000, - valid_after = 1640995200000, - action = 'ACCEPT' - ) - else: - return ScreeningTRLinkPostScreeningRule( - action = 'ACCEPT', - ) - """ - - def testScreeningTRLinkPostScreeningRule(self): - """Test ScreeningTRLinkPostScreeningRule""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cl9saW5rX3Bvc3Rfc2NyZWVuaW5nX3J1bGUgaW1wb3J0ICgKICAgIFNjcmVlbmluZ1RSTGlua1Bvc3RTY3JlZW5pbmdSdWxlLAopCgoKY2xhc3MgVGVzdFNjcmVlbmluZ1RSTGlua1Bvc3RTY3JlZW5pbmdSdWxlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNjcmVlbmluZ1RSTGlua1Bvc3RTY3JlZW5pbmdSdWxlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTY3JlZW5pbmdUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZToKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ1RSTGlua1Bvc3RTY3JlZW5pbmdSdWxlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNjcmVlbmluZ1RSTGlua1Bvc3RTY3JlZW5pbmdSdWxlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU2NyZWVuaW5nVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZSgKICAgICAgICAgICAgICAgIGN1c3RvbWVyX2lkID0gJzNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNicsCiAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLAogICAgICAgICAgICAgICAgc291cmNlX3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsCiAgICAgICAgICAgICAgICBzb3VyY2Vfc3ViX3R5cGUgPSAnSU5URVJOQUwnLAogICAgICAgICAgICAgICAgc291cmNlX2FkZHJlc3MgPSAnMUExelAxZVA1UUdlZmkyRE1QVGZUTDVTTG12N0RpdmZOYScsCiAgICAgICAgICAgICAgICBkZXN0X3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsCiAgICAgICAgICAgICAgICBkZXN0X3N1Yl90eXBlID0gJ0lOVEVSTkFMJywKICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcxQTF6UDFlUDVRR2VmaTJETVBUZlRMNVNMbXY3RGl2Zk5hJywKICAgICAgICAgICAgICAgIHNvdXJjZV9pZCA9ICcxJywKICAgICAgICAgICAgICAgIGRlc3RfaWQgPSAnMScsCiAgICAgICAgICAgICAgICBhc3NldCA9ICdCVEMnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldCA9ICdVU0QnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyX2xpbmtfYW1vdW50LlNjcmVlbmluZ1RSTGlua0Ftb3VudCgKICAgICAgICAgICAgICAgICAgICByYW5nZSA9IGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9yYW5nZV9taW5fbWF4LkFtb3VudFJhbmdlTWluTWF4KAogICAgICAgICAgICAgICAgICAgICAgICBtaW4gPSAnMTAwJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG1heCA9ICcxMDAwMCcsICksIAogICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5ID0gJ1VTRCcsICksCiAgICAgICAgICAgICAgICBuZXR3b3JrX3Byb3RvY29sID0gJ0JJVENPSU4nLAogICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gJ1RSQU5TRkVSJywKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1J1bGUgZm9yIGhpZ2gtdmFsdWUgQlRDIHRyYW5zZmVycycsCiAgICAgICAgICAgICAgICBpc19kZWZhdWx0ID0gVHJ1ZSwKICAgICAgICAgICAgICAgIHByb3ZpZGVyX2lkZW50ID0gJ3N1bXN1YicsCiAgICAgICAgICAgICAgICB0cm1fc3RhdHVzID0gJ0FDQ0VQVEVEJywKICAgICAgICAgICAgICAgIHZhbGlkX2JlZm9yZSA9IDE2NzI1MzEyMDAwMDAsCiAgICAgICAgICAgICAgICB2YWxpZF9hZnRlciA9IDE2NDA5OTUyMDAwMDAsCiAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUNDRVBUJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNjcmVlbmluZ1RSTGlua1Bvc3RTY3JlZW5pbmdSdWxlKAogICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FDQ0VQVCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U2NyZWVuaW5nVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTY3JlZW5pbmdUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_screening_tr_link_prescreening_rule.py b/test/test_screening_tr_link_prescreening_rule.py index d5ea92f8..3102fb48 100644 --- a/test/test_screening_tr_link_prescreening_rule.py +++ b/test/test_screening_tr_link_prescreening_rule.py @@ -1,78 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_tr_link_prescreening_rule import ( - ScreeningTRLinkPrescreeningRule, -) - - -class TestScreeningTRLinkPrescreeningRule(unittest.TestCase): - """ScreeningTRLinkPrescreeningRule unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningTRLinkPrescreeningRule: - """Test ScreeningTRLinkPrescreeningRule - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningTRLinkPrescreeningRule` - """ - model = ScreeningTRLinkPrescreeningRule() - if include_optional: - return ScreeningTRLinkPrescreeningRule( - customer_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - direction = 'OUTBOUND', - source_type = 'VAULT_ACCOUNT', - source_sub_type = 'INTERNAL', - source_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = 'INTERNAL', - dest_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - source_id = '1', - dest_id = '1', - asset = 'BTC', - base_asset = 'USD', - amount = fireblocks.models.screening_tr_link_amount.ScreeningTRLinkAmount( - range = fireblocks.models.amount_range_min_max.AmountRangeMinMax( - min = '100', - max = '10000', ), - currency = 'USD', ), - network_protocol = 'BITCOIN', - operation = 'TRANSFER', - description = 'Rule for high-value BTC transfers', - is_default = True, - action = 'SCREEN' - ) - else: - return ScreeningTRLinkPrescreeningRule( - action = 'SCREEN', - ) - """ - - def testScreeningTRLinkPrescreeningRule(self): - """Test ScreeningTRLinkPrescreeningRule""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cl9saW5rX3ByZXNjcmVlbmluZ19ydWxlIGltcG9ydCAoCiAgICBTY3JlZW5pbmdUUkxpbmtQcmVzY3JlZW5pbmdSdWxlLAopCgoKY2xhc3MgVGVzdFNjcmVlbmluZ1RSTGlua1ByZXNjcmVlbmluZ1J1bGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU2NyZWVuaW5nVFJMaW5rUHJlc2NyZWVuaW5nUnVsZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU2NyZWVuaW5nVFJMaW5rUHJlc2NyZWVuaW5nUnVsZToKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ1RSTGlua1ByZXNjcmVlbmluZ1J1bGUKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU2NyZWVuaW5nVFJMaW5rUHJlc2NyZWVuaW5nUnVsZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNjcmVlbmluZ1RSTGlua1ByZXNjcmVlbmluZ1J1bGUoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdUUkxpbmtQcmVzY3JlZW5pbmdSdWxlKAogICAgICAgICAgICAgICAgY3VzdG9tZXJfaWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywKICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdPVVRCT1VORCcsCiAgICAgICAgICAgICAgICBzb3VyY2VfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIHNvdXJjZV9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsCiAgICAgICAgICAgICAgICBzb3VyY2VfYWRkcmVzcyA9ICcxQTF6UDFlUDVRR2VmaTJETVBUZlRMNVNMbXY3RGl2Zk5hJywKICAgICAgICAgICAgICAgIGRlc3RfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIGRlc3Rfc3ViX3R5cGUgPSAnSU5URVJOQUwnLAogICAgICAgICAgICAgICAgZGVzdF9hZGRyZXNzID0gJzFBMXpQMWVQNVFHZWZpMkRNUFRmVEw1U0xtdjdEaXZmTmEnLAogICAgICAgICAgICAgICAgc291cmNlX2lkID0gJzEnLAogICAgICAgICAgICAgICAgZGVzdF9pZCA9ICcxJywKICAgICAgICAgICAgICAgIGFzc2V0ID0gJ0JUQycsCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gJ1VTRCcsCiAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdHJfbGlua19hbW91bnQuU2NyZWVuaW5nVFJMaW5rQW1vdW50KAogICAgICAgICAgICAgICAgICAgIHJhbmdlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X3JhbmdlX21pbl9tYXguQW1vdW50UmFuZ2VNaW5NYXgoCiAgICAgICAgICAgICAgICAgICAgICAgIG1pbiA9ICcxMDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWF4ID0gJzEwMDAwJywgKSwgCiAgICAgICAgICAgICAgICAgICAgY3VycmVuY3kgPSAnVVNEJywgKSwKICAgICAgICAgICAgICAgIG5ldHdvcmtfcHJvdG9jb2wgPSAnQklUQ09JTicsCiAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSAnVFJBTlNGRVInLAogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnUnVsZSBmb3IgaGlnaC12YWx1ZSBCVEMgdHJhbnNmZXJzJywKICAgICAgICAgICAgICAgIGlzX2RlZmF1bHQgPSBUcnVlLAogICAgICAgICAgICAgICAgYWN0aW9uID0gJ1NDUkVFTicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdUUkxpbmtQcmVzY3JlZW5pbmdSdWxlKAogICAgICAgICAgICAgICAgYWN0aW9uID0gJ1NDUkVFTicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U2NyZWVuaW5nVFJMaW5rUHJlc2NyZWVuaW5nUnVsZShzZWxmKToKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ1RSTGlua1ByZXNjcmVlbmluZ1J1bGUiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_screening_tr_link_rule_base.py b/test/test_screening_tr_link_rule_base.py index cd4f85f8..8b1ed711 100644 --- a/test/test_screening_tr_link_rule_base.py +++ b/test/test_screening_tr_link_rule_base.py @@ -1,74 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_tr_link_rule_base import ScreeningTRLinkRuleBase - - -class TestScreeningTRLinkRuleBase(unittest.TestCase): - """ScreeningTRLinkRuleBase unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningTRLinkRuleBase: - """Test ScreeningTRLinkRuleBase - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningTRLinkRuleBase` - """ - model = ScreeningTRLinkRuleBase() - if include_optional: - return ScreeningTRLinkRuleBase( - customer_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - direction = 'OUTBOUND', - source_type = 'VAULT_ACCOUNT', - source_sub_type = 'INTERNAL', - source_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = 'INTERNAL', - dest_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - source_id = '1', - dest_id = '1', - asset = 'BTC', - base_asset = 'USD', - amount = fireblocks.models.screening_tr_link_amount.ScreeningTRLinkAmount( - range = fireblocks.models.amount_range_min_max.AmountRangeMinMax( - min = '100', - max = '10000', ), - currency = 'USD', ), - network_protocol = 'BITCOIN', - operation = 'TRANSFER', - description = 'Rule for high-value BTC transfers', - is_default = True - ) - else: - return ScreeningTRLinkRuleBase( - ) - """ - - def testScreeningTRLinkRuleBase(self): - """Test ScreeningTRLinkRuleBase""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cl9saW5rX3J1bGVfYmFzZSBpbXBvcnQgU2NyZWVuaW5nVFJMaW5rUnVsZUJhc2UKCgpjbGFzcyBUZXN0U2NyZWVuaW5nVFJMaW5rUnVsZUJhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU2NyZWVuaW5nVFJMaW5rUnVsZUJhc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNjcmVlbmluZ1RSTGlua1J1bGVCYXNlOgogICAgICAgICIiIlRlc3QgU2NyZWVuaW5nVFJMaW5rUnVsZUJhc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU2NyZWVuaW5nVFJMaW5rUnVsZUJhc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTY3JlZW5pbmdUUkxpbmtSdWxlQmFzZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNjcmVlbmluZ1RSTGlua1J1bGVCYXNlKAogICAgICAgICAgICAgICAgY3VzdG9tZXJfaWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywKICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdPVVRCT1VORCcsCiAgICAgICAgICAgICAgICBzb3VyY2VfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIHNvdXJjZV9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsCiAgICAgICAgICAgICAgICBzb3VyY2VfYWRkcmVzcyA9ICcxQTF6UDFlUDVRR2VmaTJETVBUZlRMNVNMbXY3RGl2Zk5hJywKICAgICAgICAgICAgICAgIGRlc3RfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIGRlc3Rfc3ViX3R5cGUgPSAnSU5URVJOQUwnLAogICAgICAgICAgICAgICAgZGVzdF9hZGRyZXNzID0gJzFBMXpQMWVQNVFHZWZpMkRNUFRmVEw1U0xtdjdEaXZmTmEnLAogICAgICAgICAgICAgICAgc291cmNlX2lkID0gJzEnLAogICAgICAgICAgICAgICAgZGVzdF9pZCA9ICcxJywKICAgICAgICAgICAgICAgIGFzc2V0ID0gJ0JUQycsCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gJ1VTRCcsCiAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdHJfbGlua19hbW91bnQuU2NyZWVuaW5nVFJMaW5rQW1vdW50KAogICAgICAgICAgICAgICAgICAgIHJhbmdlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X3JhbmdlX21pbl9tYXguQW1vdW50UmFuZ2VNaW5NYXgoCiAgICAgICAgICAgICAgICAgICAgICAgIG1pbiA9ICcxMDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWF4ID0gJzEwMDAwJywgKSwgCiAgICAgICAgICAgICAgICAgICAgY3VycmVuY3kgPSAnVVNEJywgKSwKICAgICAgICAgICAgICAgIG5ldHdvcmtfcHJvdG9jb2wgPSAnQklUQ09JTicsCiAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSAnVFJBTlNGRVInLAogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnUnVsZSBmb3IgaGlnaC12YWx1ZSBCVEMgdHJhbnNmZXJzJywKICAgICAgICAgICAgICAgIGlzX2RlZmF1bHQgPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU2NyZWVuaW5nVFJMaW5rUnVsZUJhc2UoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U2NyZWVuaW5nVFJMaW5rUnVsZUJhc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTY3JlZW5pbmdUUkxpbmtSdWxlQmFzZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_screening_travel_rule_matched_rule.py b/test/test_screening_travel_rule_matched_rule.py index e7328db9..9ee9d3bf 100644 --- a/test/test_screening_travel_rule_matched_rule.py +++ b/test/test_screening_travel_rule_matched_rule.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_travel_rule_matched_rule import ( - ScreeningTravelRuleMatchedRule, -) - - -class TestScreeningTravelRuleMatchedRule(unittest.TestCase): - """ScreeningTravelRuleMatchedRule unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningTravelRuleMatchedRule: - """Test ScreeningTravelRuleMatchedRule - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningTravelRuleMatchedRule` - """ - model = ScreeningTravelRuleMatchedRule() - if include_optional: - return ScreeningTravelRuleMatchedRule( - direction = 'OUTBOUND', - status = 'COMPLETED', - amount_usd = 1000.5, - amount = 0.025, - asset = 'BTC', - action = 'ACCEPT' - ) - else: - return ScreeningTravelRuleMatchedRule( - ) - """ - - def testScreeningTravelRuleMatchedRule(self): - """Test ScreeningTravelRuleMatchedRule""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cmF2ZWxfcnVsZV9tYXRjaGVkX3J1bGUgaW1wb3J0ICgKICAgIFNjcmVlbmluZ1RyYXZlbFJ1bGVNYXRjaGVkUnVsZSwKKQoKCmNsYXNzIFRlc3RTY3JlZW5pbmdUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU2NyZWVuaW5nVHJhdmVsUnVsZU1hdGNoZWRSdWxlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTY3JlZW5pbmdUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGU6CiAgICAgICAgIiIiVGVzdCBTY3JlZW5pbmdUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGUKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU2NyZWVuaW5nVHJhdmVsUnVsZU1hdGNoZWRSdWxlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU2NyZWVuaW5nVHJhdmVsUnVsZU1hdGNoZWRSdWxlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU2NyZWVuaW5nVHJhdmVsUnVsZU1hdGNoZWRSdWxlKAogICAgICAgICAgICAgICAgZGlyZWN0aW9uID0gJ09VVEJPVU5EJywKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLAogICAgICAgICAgICAgICAgYW1vdW50X3VzZCA9IDEwMDAuNSwKICAgICAgICAgICAgICAgIGFtb3VudCA9IDAuMDI1LAogICAgICAgICAgICAgICAgYXNzZXQgPSAnQlRDJywKICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdBQ0NFUFQnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU2NyZWVuaW5nVHJhdmVsUnVsZU1hdGNoZWRSdWxlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNjcmVlbmluZ1RyYXZlbFJ1bGVNYXRjaGVkUnVsZShzZWxmKToKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ1RyYXZlbFJ1bGVNYXRjaGVkUnVsZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_screening_travel_rule_prescreening_rule.py b/test/test_screening_travel_rule_prescreening_rule.py index c1982dc2..c5d84fa0 100644 --- a/test/test_screening_travel_rule_prescreening_rule.py +++ b/test/test_screening_travel_rule_prescreening_rule.py @@ -1,72 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_travel_rule_prescreening_rule import ( - ScreeningTravelRulePrescreeningRule, -) - - -class TestScreeningTravelRulePrescreeningRule(unittest.TestCase): - """ScreeningTravelRulePrescreeningRule unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningTravelRulePrescreeningRule: - """Test ScreeningTravelRulePrescreeningRule - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningTravelRulePrescreeningRule` - """ - model = ScreeningTravelRulePrescreeningRule() - if include_optional: - return ScreeningTravelRulePrescreeningRule( - bypass_reason = 'MANUAL', - source_type = 'VAULT_ACCOUNT', - source_sub_type = 'INTERNAL', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = 'INTERNAL', - transfer_peer_type = 'VAULT_ACCOUNT', - transfer_peer_sub_type = 'INTERNAL', - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - source_id = '0', - dest_id = '2', - asset = 'ETH', - base_asset = 'ETH', - amount = 0.5, - amount_usd = 1000, - network_protocol = 'ETH', - operation = 'TRANSFER', - action = 'SCREEN' - ) - else: - return ScreeningTravelRulePrescreeningRule( - ) - """ - - def testScreeningTravelRulePrescreeningRule(self): - """Test ScreeningTravelRulePrescreeningRule""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cmF2ZWxfcnVsZV9wcmVzY3JlZW5pbmdfcnVsZSBpbXBvcnQgKAogICAgU2NyZWVuaW5nVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGUsCikKCgpjbGFzcyBUZXN0U2NyZWVuaW5nVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU2NyZWVuaW5nVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNjcmVlbmluZ1RyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlOgogICAgICAgICIiIlRlc3QgU2NyZWVuaW5nVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGUKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU2NyZWVuaW5nVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTY3JlZW5pbmdUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNjcmVlbmluZ1RyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlKAogICAgICAgICAgICAgICAgYnlwYXNzX3JlYXNvbiA9ICdNQU5VQUwnLAogICAgICAgICAgICAgICAgc291cmNlX3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsCiAgICAgICAgICAgICAgICBzb3VyY2Vfc3ViX3R5cGUgPSAnSU5URVJOQUwnLAogICAgICAgICAgICAgICAgZGVzdF90eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLAogICAgICAgICAgICAgICAgZGVzdF9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsCiAgICAgICAgICAgICAgICB0cmFuc2Zlcl9wZWVyX3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsCiAgICAgICAgICAgICAgICB0cmFuc2Zlcl9wZWVyX3N1Yl90eXBlID0gJ0lOVEVSTkFMJywKICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcweEEyZEMyNDkwRUQxRGNBMkQyMTYxMzUwOGZkYjBjODJkYUVBYjA3MTUnLAogICAgICAgICAgICAgICAgc291cmNlX2lkID0gJzAnLAogICAgICAgICAgICAgICAgZGVzdF9pZCA9ICcyJywKICAgICAgICAgICAgICAgIGFzc2V0ID0gJ0VUSCcsCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gJ0VUSCcsCiAgICAgICAgICAgICAgICBhbW91bnQgPSAwLjUsCiAgICAgICAgICAgICAgICBhbW91bnRfdXNkID0gMTAwMCwKICAgICAgICAgICAgICAgIG5ldHdvcmtfcHJvdG9jb2wgPSAnRVRIJywKICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9ICdUUkFOU0ZFUicsCiAgICAgICAgICAgICAgICBhY3Rpb24gPSAnU0NSRUVOJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNjcmVlbmluZ1RyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNjcmVlbmluZ1RyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlKHNlbGYpOgogICAgICAgICIiIlRlc3QgU2NyZWVuaW5nVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGUiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_screening_travel_rule_result.py b/test/test_screening_travel_rule_result.py index 49e3bd2a..37226b8a 100644 --- a/test/test_screening_travel_rule_result.py +++ b/test/test_screening_travel_rule_result.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_travel_rule_result import ScreeningTravelRuleResult - - -class TestScreeningTravelRuleResult(unittest.TestCase): - """ScreeningTravelRuleResult unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningTravelRuleResult: - """Test ScreeningTravelRuleResult - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningTravelRuleResult` - """ - model = ScreeningTravelRuleResult() - if include_optional: - return ScreeningTravelRuleResult( - direction = 'OUTBOUND', - is_verified = True, - action = 'ACCEPT', - provider_response = { }, - matched_rule = fireblocks.models.screening_travel_rule_matched_rule.ScreeningTravelRuleMatchedRule( - direction = 'OUTBOUND', - status = 'COMPLETED', - amount_usd = 1000.5, - amount = 0.025, - asset = 'BTC', - action = 'ACCEPT', ) - ) - else: - return ScreeningTravelRuleResult( - ) - """ - - def testScreeningTravelRuleResult(self): - """Test ScreeningTravelRuleResult""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cmF2ZWxfcnVsZV9yZXN1bHQgaW1wb3J0IFNjcmVlbmluZ1RyYXZlbFJ1bGVSZXN1bHQKCgpjbGFzcyBUZXN0U2NyZWVuaW5nVHJhdmVsUnVsZVJlc3VsdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTY3JlZW5pbmdUcmF2ZWxSdWxlUmVzdWx0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTY3JlZW5pbmdUcmF2ZWxSdWxlUmVzdWx0OgogICAgICAgICIiIlRlc3QgU2NyZWVuaW5nVHJhdmVsUnVsZVJlc3VsdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTY3JlZW5pbmdUcmF2ZWxSdWxlUmVzdWx0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU2NyZWVuaW5nVHJhdmVsUnVsZVJlc3VsdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNjcmVlbmluZ1RyYXZlbFJ1bGVSZXN1bHQoCiAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLAogICAgICAgICAgICAgICAgaXNfdmVyaWZpZWQgPSBUcnVlLAogICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FDQ0VQVCcsCiAgICAgICAgICAgICAgICBwcm92aWRlcl9yZXNwb25zZSA9IHsgfSwKICAgICAgICAgICAgICAgIG1hdGNoZWRfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cmF2ZWxfcnVsZV9tYXRjaGVkX3J1bGUuU2NyZWVuaW5nVHJhdmVsUnVsZU1hdGNoZWRSdWxlKAogICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdPVVRCT1VORCcsIAogICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICBhbW91bnRfdXNkID0gMTAwMC41LCAKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAwLjAyNSwgCiAgICAgICAgICAgICAgICAgICAgYXNzZXQgPSAnQlRDJywgCiAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FDQ0VQVCcsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdUcmF2ZWxSdWxlUmVzdWx0KAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNjcmVlbmluZ1RyYXZlbFJ1bGVSZXN1bHQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTY3JlZW5pbmdUcmF2ZWxSdWxlUmVzdWx0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_screening_update_configurations.py b/test/test_screening_update_configurations.py index ef763341..75b6ca6b 100644 --- a/test/test_screening_update_configurations.py +++ b/test/test_screening_update_configurations.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_update_configurations import ( - ScreeningUpdateConfigurations, -) - - -class TestScreeningUpdateConfigurations(unittest.TestCase): - """ScreeningUpdateConfigurations unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningUpdateConfigurations: - """Test ScreeningUpdateConfigurations - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningUpdateConfigurations` - """ - model = ScreeningUpdateConfigurations() - if include_optional: - return ScreeningUpdateConfigurations( - disable_bypass = True, - disable_unfreeze = True - ) - else: - return ScreeningUpdateConfigurations( - ) - """ - - def testScreeningUpdateConfigurations(self): - """Test ScreeningUpdateConfigurations""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ191cGRhdGVfY29uZmlndXJhdGlvbnMgaW1wb3J0ICgKICAgIFNjcmVlbmluZ1VwZGF0ZUNvbmZpZ3VyYXRpb25zLAopCgoKY2xhc3MgVGVzdFNjcmVlbmluZ1VwZGF0ZUNvbmZpZ3VyYXRpb25zKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNjcmVlbmluZ1VwZGF0ZUNvbmZpZ3VyYXRpb25zIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTY3JlZW5pbmdVcGRhdGVDb25maWd1cmF0aW9uczoKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ1VwZGF0ZUNvbmZpZ3VyYXRpb25zCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNjcmVlbmluZ1VwZGF0ZUNvbmZpZ3VyYXRpb25zYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU2NyZWVuaW5nVXBkYXRlQ29uZmlndXJhdGlvbnMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdVcGRhdGVDb25maWd1cmF0aW9ucygKICAgICAgICAgICAgICAgIGRpc2FibGVfYnlwYXNzID0gVHJ1ZSwKICAgICAgICAgICAgICAgIGRpc2FibGVfdW5mcmVlemUgPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU2NyZWVuaW5nVXBkYXRlQ29uZmlndXJhdGlvbnMoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U2NyZWVuaW5nVXBkYXRlQ29uZmlndXJhdGlvbnMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTY3JlZW5pbmdVcGRhdGVDb25maWd1cmF0aW9ucyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_screening_validation_failure.py b/test/test_screening_validation_failure.py index e07fdf56..78b33a8e 100644 --- a/test/test_screening_validation_failure.py +++ b/test/test_screening_validation_failure.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_validation_failure import ScreeningValidationFailure - - -class TestScreeningValidationFailure(unittest.TestCase): - """ScreeningValidationFailure unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningValidationFailure: - """Test ScreeningValidationFailure - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningValidationFailure` - """ - model = ScreeningValidationFailure() - if include_optional: - return ScreeningValidationFailure( - reason = 'SCREENING_DISABLED_IN_TENANT', - data = { - 'key' : null - } - ) - else: - return ScreeningValidationFailure( - reason = 'SCREENING_DISABLED_IN_TENANT', - ) - """ - - def testScreeningValidationFailure(self): - """Test ScreeningValidationFailure""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ192YWxpZGF0aW9uX2ZhaWx1cmUgaW1wb3J0IFNjcmVlbmluZ1ZhbGlkYXRpb25GYWlsdXJlCgoKY2xhc3MgVGVzdFNjcmVlbmluZ1ZhbGlkYXRpb25GYWlsdXJlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNjcmVlbmluZ1ZhbGlkYXRpb25GYWlsdXJlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTY3JlZW5pbmdWYWxpZGF0aW9uRmFpbHVyZToKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ1ZhbGlkYXRpb25GYWlsdXJlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNjcmVlbmluZ1ZhbGlkYXRpb25GYWlsdXJlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU2NyZWVuaW5nVmFsaWRhdGlvbkZhaWx1cmUoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdWYWxpZGF0aW9uRmFpbHVyZSgKICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdTQ1JFRU5JTkdfRElTQUJMRURfSU5fVEVOQU5UJywKICAgICAgICAgICAgICAgIGRhdGEgPSB7CiAgICAgICAgICAgICAgICAgICAgJ2tleScgOiBudWxsCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNjcmVlbmluZ1ZhbGlkYXRpb25GYWlsdXJlKAogICAgICAgICAgICAgICAgcmVhc29uID0gJ1NDUkVFTklOR19ESVNBQkxFRF9JTl9URU5BTlQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNjcmVlbmluZ1ZhbGlkYXRpb25GYWlsdXJlKHNlbGYpOgogICAgICAgICIiIlRlc3QgU2NyZWVuaW5nVmFsaWRhdGlvbkZhaWx1cmUiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_screening_verdict.py b/test/test_screening_verdict.py index 037b2174..9e50e7f9 100644 --- a/test/test_screening_verdict.py +++ b/test/test_screening_verdict.py @@ -1,68 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_verdict import ScreeningVerdict - - -class TestScreeningVerdict(unittest.TestCase): - """ScreeningVerdict unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningVerdict: - """Test ScreeningVerdict - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningVerdict` - """ - model = ScreeningVerdict() - if include_optional: - return ScreeningVerdict( - verdict = 'PASSED', - execution_operation_id = '', - account = None, - asset_id = '', - amount = '', - matched_rule = fireblocks.models.screening_verdict_matched_rule.ScreeningVerdict_matchedRule( - action = '', - category = [ - '' - ], ) - ) - else: - return ScreeningVerdict( - verdict = 'PASSED', - execution_operation_id = '', - account = None, - asset_id = '', - amount = '', - ) - """ - - def testScreeningVerdict(self): - """Test ScreeningVerdict""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ192ZXJkaWN0IGltcG9ydCBTY3JlZW5pbmdWZXJkaWN0CgoKY2xhc3MgVGVzdFNjcmVlbmluZ1ZlcmRpY3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU2NyZWVuaW5nVmVyZGljdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU2NyZWVuaW5nVmVyZGljdDoKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ1ZlcmRpY3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU2NyZWVuaW5nVmVyZGljdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNjcmVlbmluZ1ZlcmRpY3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdWZXJkaWN0KAogICAgICAgICAgICAgICAgdmVyZGljdCA9ICdQQVNTRUQnLAogICAgICAgICAgICAgICAgZXhlY3V0aW9uX29wZXJhdGlvbl9pZCA9ICcnLAogICAgICAgICAgICAgICAgYWNjb3VudCA9IE5vbmUsCiAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gJycsCiAgICAgICAgICAgICAgICBtYXRjaGVkX3J1bGUgPSBmaXJlYmxvY2tzLm1vZGVscy5zY3JlZW5pbmdfdmVyZGljdF9tYXRjaGVkX3J1bGUuU2NyZWVuaW5nVmVyZGljdF9tYXRjaGVkUnVsZSgKICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnJywgCiAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgIF0sICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdWZXJkaWN0KAogICAgICAgICAgICAgICAgdmVyZGljdCA9ICdQQVNTRUQnLAogICAgICAgICAgICAgICAgZXhlY3V0aW9uX29wZXJhdGlvbl9pZCA9ICcnLAogICAgICAgICAgICAgICAgYWNjb3VudCA9IE5vbmUsCiAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U2NyZWVuaW5nVmVyZGljdChzZWxmKToKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ1ZlcmRpY3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_screening_verdict_enum.py b/test/test_screening_verdict_enum.py index a9274de9..88cc500b 100644 --- a/test/test_screening_verdict_enum.py +++ b/test/test_screening_verdict_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_verdict_enum import ScreeningVerdictEnum - - -class TestScreeningVerdictEnum(unittest.TestCase): - """ScreeningVerdictEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testScreeningVerdictEnum(self): - """Test ScreeningVerdictEnum""" - # inst = ScreeningVerdictEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ192ZXJkaWN0X2VudW0gaW1wb3J0IFNjcmVlbmluZ1ZlcmRpY3RFbnVtCgoKY2xhc3MgVGVzdFNjcmVlbmluZ1ZlcmRpY3RFbnVtKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNjcmVlbmluZ1ZlcmRpY3RFbnVtIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdFNjcmVlbmluZ1ZlcmRpY3RFbnVtKHNlbGYpOgogICAgICAgICIiIlRlc3QgU2NyZWVuaW5nVmVyZGljdEVudW0iIiIKICAgICAgICAjIGluc3QgPSBTY3JlZW5pbmdWZXJkaWN0RW51bSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_screening_verdict_matched_rule.py b/test/test_screening_verdict_matched_rule.py index a0721971..5b2fb6c2 100644 --- a/test/test_screening_verdict_matched_rule.py +++ b/test/test_screening_verdict_matched_rule.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.screening_verdict_matched_rule import ScreeningVerdictMatchedRule - - -class TestScreeningVerdictMatchedRule(unittest.TestCase): - """ScreeningVerdictMatchedRule unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ScreeningVerdictMatchedRule: - """Test ScreeningVerdictMatchedRule - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ScreeningVerdictMatchedRule` - """ - model = ScreeningVerdictMatchedRule() - if include_optional: - return ScreeningVerdictMatchedRule( - action = '', - category = [ - '' - ] - ) - else: - return ScreeningVerdictMatchedRule( - ) - """ - - def testScreeningVerdictMatchedRule(self): - """Test ScreeningVerdictMatchedRule""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ192ZXJkaWN0X21hdGNoZWRfcnVsZSBpbXBvcnQgU2NyZWVuaW5nVmVyZGljdE1hdGNoZWRSdWxlCgoKY2xhc3MgVGVzdFNjcmVlbmluZ1ZlcmRpY3RNYXRjaGVkUnVsZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTY3JlZW5pbmdWZXJkaWN0TWF0Y2hlZFJ1bGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNjcmVlbmluZ1ZlcmRpY3RNYXRjaGVkUnVsZToKICAgICAgICAiIiJUZXN0IFNjcmVlbmluZ1ZlcmRpY3RNYXRjaGVkUnVsZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTY3JlZW5pbmdWZXJkaWN0TWF0Y2hlZFJ1bGVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTY3JlZW5pbmdWZXJkaWN0TWF0Y2hlZFJ1bGUoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTY3JlZW5pbmdWZXJkaWN0TWF0Y2hlZFJ1bGUoCiAgICAgICAgICAgICAgICBhY3Rpb24gPSAnJywKICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gWwogICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNjcmVlbmluZ1ZlcmRpY3RNYXRjaGVkUnVsZSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTY3JlZW5pbmdWZXJkaWN0TWF0Y2hlZFJ1bGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTY3JlZW5pbmdWZXJkaWN0TWF0Y2hlZFJ1bGUiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_search_network_ids_response.py b/test/test_search_network_ids_response.py index 3c0c9bfe..c874cad3 100644 --- a/test/test_search_network_ids_response.py +++ b/test/test_search_network_ids_response.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.search_network_ids_response import SearchNetworkIdsResponse - - -class TestSearchNetworkIdsResponse(unittest.TestCase): - """SearchNetworkIdsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SearchNetworkIdsResponse: - """Test SearchNetworkIdsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SearchNetworkIdsResponse` - """ - model = SearchNetworkIdsResponse() - if include_optional: - return SearchNetworkIdsResponse( - data = [ - fireblocks.models.network_id_response.NetworkIdResponse( - routing_policy = { - 'key' : null - }, - is_discoverable = True, - id = '', - name = '', ) - ], - next = '' - ) - else: - return SearchNetworkIdsResponse( - ) - """ - - def testSearchNetworkIdsResponse(self): - """Test SearchNetworkIdsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNlYXJjaF9uZXR3b3JrX2lkc19yZXNwb25zZSBpbXBvcnQgU2VhcmNoTmV0d29ya0lkc1Jlc3BvbnNlCgoKY2xhc3MgVGVzdFNlYXJjaE5ldHdvcmtJZHNSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTZWFyY2hOZXR3b3JrSWRzUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNlYXJjaE5ldHdvcmtJZHNSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFNlYXJjaE5ldHdvcmtJZHNSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTZWFyY2hOZXR3b3JrSWRzUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTZWFyY2hOZXR3b3JrSWRzUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTZWFyY2hOZXR3b3JrSWRzUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfaWRfcmVzcG9uc2UuTmV0d29ya0lkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRpbmdfcG9saWN5ID0gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2tleScgOiBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKICAgICAgICAgICAgICAgICAgICAgICAgaXNfZGlzY292ZXJhYmxlID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJycsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgbmV4dCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU2VhcmNoTmV0d29ya0lkc1Jlc3BvbnNlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNlYXJjaE5ldHdvcmtJZHNSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFNlYXJjaE5ldHdvcmtJZHNSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_sepa_address.py b/test/test_sepa_address.py index 7b9f99f0..40c9a781 100644 --- a/test/test_sepa_address.py +++ b/test/test_sepa_address.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.sepa_address import SEPAAddress - - -class TestSEPAAddress(unittest.TestCase): - """SEPAAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SEPAAddress: - """Test SEPAAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SEPAAddress` - """ - model = SEPAAddress() - if include_optional: - return SEPAAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - iban = 'GB82WEST12345698765432', - bic = '', - bank_name = '', - bank_branch = '', - bank_address = '', - purpose_code = '', - tax_id = '' - ) - else: - return SEPAAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - iban = 'GB82WEST12345698765432', - ) - """ - - def testSEPAAddress(self): - """Test SEPAAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNlcGFfYWRkcmVzcyBpbXBvcnQgU0VQQUFkZHJlc3MKCgpjbGFzcyBUZXN0U0VQQUFkZHJlc3ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU0VQQUFkZHJlc3MgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNFUEFBZGRyZXNzOgogICAgICAgICIiIlRlc3QgU0VQQUFkZHJlc3MKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU0VQQUFkZHJlc3NgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTRVBBQWRkcmVzcygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNFUEFBZGRyZXNzKAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXIgPSB7Im5hbWUiOiJKb2huIFNtaXRoIiwiY2l0eSI6Ik5ldyBZb3JrIiwiY291bnRyeSI6IlVTIiwic3ViZGl2aXNpb24iOiJOWSIsImFkZHJlc3MiOiIxMjMgV2FsbCBTdHJlZXQsIEFwdCA0QiIsInBvc3RhbENvZGUiOiIxMDAwNSJ9LAogICAgICAgICAgICAgICAgaWJhbiA9ICdHQjgyV0VTVDEyMzQ1Njk4NzY1NDMyJywKICAgICAgICAgICAgICAgIGJpYyA9ICcnLAogICAgICAgICAgICAgICAgYmFua19uYW1lID0gJycsCiAgICAgICAgICAgICAgICBiYW5rX2JyYW5jaCA9ICcnLAogICAgICAgICAgICAgICAgYmFua19hZGRyZXNzID0gJycsCiAgICAgICAgICAgICAgICBwdXJwb3NlX2NvZGUgPSAnJywKICAgICAgICAgICAgICAgIHRheF9pZCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU0VQQUFkZHJlc3MoCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlciA9IHsibmFtZSI6IkpvaG4gU21pdGgiLCJjaXR5IjoiTmV3IFlvcmsiLCJjb3VudHJ5IjoiVVMiLCJzdWJkaXZpc2lvbiI6Ik5ZIiwiYWRkcmVzcyI6IjEyMyBXYWxsIFN0cmVldCwgQXB0IDRCIiwicG9zdGFsQ29kZSI6IjEwMDA1In0sCiAgICAgICAgICAgICAgICBpYmFuID0gJ0dCODJXRVNUMTIzNDU2OTg3NjU0MzInLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNFUEFBZGRyZXNzKHNlbGYpOgogICAgICAgICIiIlRlc3QgU0VQQUFkZHJlc3MiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_sepa_destination.py b/test/test_sepa_destination.py index 526a3762..ce51697b 100644 --- a/test/test_sepa_destination.py +++ b/test/test_sepa_destination.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.sepa_destination import SEPADestination - - -class TestSEPADestination(unittest.TestCase): - """SEPADestination unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SEPADestination: - """Test SEPADestination - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SEPADestination` - """ - model = SEPADestination() - if include_optional: - return SEPADestination( - type = 'SEPA', - address = {"accountHolder":{"name":"Pierre Dubois","city":"Paris","country":"FR","subdivision":"11","address":"15 Rue de la Paix","postalCode":"75001"},"iban":"FR1420041010050500013M02606","bic":"PSSTFRPPPAR","bankName":"La Banque Postale","bankBranch":"Paris Central","bankAddress":"1 Boulevard de Vaugirard, 75015 Paris","purposeCode":"TRAD","taxId":"FR12345678901"} - ) - else: - return SEPADestination( - type = 'SEPA', - address = {"accountHolder":{"name":"Pierre Dubois","city":"Paris","country":"FR","subdivision":"11","address":"15 Rue de la Paix","postalCode":"75001"},"iban":"FR1420041010050500013M02606","bic":"PSSTFRPPPAR","bankName":"La Banque Postale","bankBranch":"Paris Central","bankAddress":"1 Boulevard de Vaugirard, 75015 Paris","purposeCode":"TRAD","taxId":"FR12345678901"}, - ) - """ - - def testSEPADestination(self): - """Test SEPADestination""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNlcGFfZGVzdGluYXRpb24gaW1wb3J0IFNFUEFEZXN0aW5hdGlvbgoKCmNsYXNzIFRlc3RTRVBBRGVzdGluYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU0VQQURlc3RpbmF0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTRVBBRGVzdGluYXRpb246CiAgICAgICAgIiIiVGVzdCBTRVBBRGVzdGluYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU0VQQURlc3RpbmF0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU0VQQURlc3RpbmF0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU0VQQURlc3RpbmF0aW9uKAogICAgICAgICAgICAgICAgdHlwZSA9ICdTRVBBJywKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSB7ImFjY291bnRIb2xkZXIiOnsibmFtZSI6IlBpZXJyZSBEdWJvaXMiLCJjaXR5IjoiUGFyaXMiLCJjb3VudHJ5IjoiRlIiLCJzdWJkaXZpc2lvbiI6IjExIiwiYWRkcmVzcyI6IjE1IFJ1ZSBkZSBsYSBQYWl4IiwicG9zdGFsQ29kZSI6Ijc1MDAxIn0sImliYW4iOiJGUjE0MjAwNDEwMTAwNTA1MDAwMTNNMDI2MDYiLCJiaWMiOiJQU1NURlJQUFBBUiIsImJhbmtOYW1lIjoiTGEgQmFucXVlIFBvc3RhbGUiLCJiYW5rQnJhbmNoIjoiUGFyaXMgQ2VudHJhbCIsImJhbmtBZGRyZXNzIjoiMSBCb3VsZXZhcmQgZGUgVmF1Z2lyYXJkLCA3NTAxNSBQYXJpcyIsInB1cnBvc2VDb2RlIjoiVFJBRCIsInRheElkIjoiRlIxMjM0NTY3ODkwMSJ9CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU0VQQURlc3RpbmF0aW9uKAogICAgICAgICAgICAgICAgdHlwZSA9ICdTRVBBJywKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSB7ImFjY291bnRIb2xkZXIiOnsibmFtZSI6IlBpZXJyZSBEdWJvaXMiLCJjaXR5IjoiUGFyaXMiLCJjb3VudHJ5IjoiRlIiLCJzdWJkaXZpc2lvbiI6IjExIiwiYWRkcmVzcyI6IjE1IFJ1ZSBkZSBsYSBQYWl4IiwicG9zdGFsQ29kZSI6Ijc1MDAxIn0sImliYW4iOiJGUjE0MjAwNDEwMTAwNTA1MDAwMTNNMDI2MDYiLCJiaWMiOiJQU1NURlJQUFBBUiIsImJhbmtOYW1lIjoiTGEgQmFucXVlIFBvc3RhbGUiLCJiYW5rQnJhbmNoIjoiUGFyaXMgQ2VudHJhbCIsImJhbmtBZGRyZXNzIjoiMSBCb3VsZXZhcmQgZGUgVmF1Z2lyYXJkLCA3NTAxNSBQYXJpcyIsInB1cnBvc2VDb2RlIjoiVFJBRCIsInRheElkIjoiRlIxMjM0NTY3ODkwMSJ9LAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNFUEFEZXN0aW5hdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IFNFUEFEZXN0aW5hdGlvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_sepa_payment_info.py b/test/test_sepa_payment_info.py index 1aef5503..ad1c5305 100644 --- a/test/test_sepa_payment_info.py +++ b/test/test_sepa_payment_info.py @@ -1,73 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.sepa_payment_info import SepaPaymentInfo - - -class TestSepaPaymentInfo(unittest.TestCase): - """SepaPaymentInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SepaPaymentInfo: - """Test SepaPaymentInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SepaPaymentInfo` - """ - model = SepaPaymentInfo() - if include_optional: - return SepaPaymentInfo( - rail = 'SEPA', - addressing_system = 'IBAN', - account_holder_given_name = 'Marie', - account_holder_surname = 'Dupont', - account_holder_country = 'FR', - account_holder_address = '123 Rue de la Paix', - iban = 'FR1420041010050500013M02606', - country = 'FR', - bic = 'BNPAFRPP', - bank_name = 'BNP Paribas', - bank_branch = 'Paris Central', - bank_address = '16 Boulevard des Italiens, 75009 Paris', - purpose_code = 'SALA', - tax_id = '1234567890123' - ) - else: - return SepaPaymentInfo( - rail = 'SEPA', - addressing_system = 'IBAN', - account_holder_given_name = 'Marie', - account_holder_surname = 'Dupont', - iban = 'FR1420041010050500013M02606', - country = 'FR', - ) - """ - - def testSepaPaymentInfo(self): - """Test SepaPaymentInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNlcGFfcGF5bWVudF9pbmZvIGltcG9ydCBTZXBhUGF5bWVudEluZm8KCgpjbGFzcyBUZXN0U2VwYVBheW1lbnRJbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNlcGFQYXltZW50SW5mbyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU2VwYVBheW1lbnRJbmZvOgogICAgICAgICIiIlRlc3QgU2VwYVBheW1lbnRJbmZvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNlcGFQYXltZW50SW5mb2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNlcGFQYXltZW50SW5mbygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNlcGFQYXltZW50SW5mbygKICAgICAgICAgICAgICAgIHJhaWwgPSAnU0VQQScsCiAgICAgICAgICAgICAgICBhZGRyZXNzaW5nX3N5c3RlbSA9ICdJQkFOJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2dpdmVuX25hbWUgPSAnTWFyaWUnLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfc3VybmFtZSA9ICdEdXBvbnQnLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfY291bnRyeSA9ICdGUicsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9hZGRyZXNzID0gJzEyMyBSdWUgZGUgbGEgUGFpeCcsCiAgICAgICAgICAgICAgICBpYmFuID0gJ0ZSMTQyMDA0MTAxMDA1MDUwMDAxM00wMjYwNicsCiAgICAgICAgICAgICAgICBjb3VudHJ5ID0gJ0ZSJywKICAgICAgICAgICAgICAgIGJpYyA9ICdCTlBBRlJQUCcsCiAgICAgICAgICAgICAgICBiYW5rX25hbWUgPSAnQk5QIFBhcmliYXMnLAogICAgICAgICAgICAgICAgYmFua19icmFuY2ggPSAnUGFyaXMgQ2VudHJhbCcsCiAgICAgICAgICAgICAgICBiYW5rX2FkZHJlc3MgPSAnMTYgQm91bGV2YXJkIGRlcyBJdGFsaWVucywgNzUwMDkgUGFyaXMnLAogICAgICAgICAgICAgICAgcHVycG9zZV9jb2RlID0gJ1NBTEEnLAogICAgICAgICAgICAgICAgdGF4X2lkID0gJzEyMzQ1Njc4OTAxMjMnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU2VwYVBheW1lbnRJbmZvKAogICAgICAgICAgICAgICAgcmFpbCA9ICdTRVBBJywKICAgICAgICAgICAgICAgIGFkZHJlc3Npbmdfc3lzdGVtID0gJ0lCQU4nLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfZ2l2ZW5fbmFtZSA9ICdNYXJpZScsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9zdXJuYW1lID0gJ0R1cG9udCcsCiAgICAgICAgICAgICAgICBpYmFuID0gJ0ZSMTQyMDA0MTAxMDA1MDUwMDAxM00wMjYwNicsCiAgICAgICAgICAgICAgICBjb3VudHJ5ID0gJ0ZSJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTZXBhUGF5bWVudEluZm8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBTZXBhUGF5bWVudEluZm8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_session_dto.py b/test/test_session_dto.py index 8622c059..c7ec4441 100644 --- a/test/test_session_dto.py +++ b/test/test_session_dto.py @@ -1,79 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.session_dto import SessionDTO - - -class TestSessionDTO(unittest.TestCase): - """SessionDTO unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SessionDTO: - """Test SessionDTO - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SessionDTO` - """ - model = SessionDTO() - if include_optional: - return SessionDTO( - id = '4e9e7051-f3b2-48e9-8ee6-b12492552657', - user_id = '', - session_metadata = fireblocks.models.session_metadata.SessionMetadata( - app_url = '', - app_name = '', - app_description = '', - app_icon = '', ), - vault_account_id = 1, - fee_level = 'MEDIUM', - chain_ids = ["ETH","ETH_TEST","SOL"], - connection_type = 'WalletConnect', - connection_method = 'API', - creation_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f') - ) - else: - return SessionDTO( - id = '4e9e7051-f3b2-48e9-8ee6-b12492552657', - user_id = '', - session_metadata = fireblocks.models.session_metadata.SessionMetadata( - app_url = '', - app_name = '', - app_description = '', - app_icon = '', ), - vault_account_id = 1, - fee_level = 'MEDIUM', - chain_ids = ["ETH","ETH_TEST","SOL"], - connection_type = 'WalletConnect', - connection_method = 'API', - creation_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), - ) - """ - - def testSessionDTO(self): - """Test SessionDTO""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNlc3Npb25fZHRvIGltcG9ydCBTZXNzaW9uRFRPCgoKY2xhc3MgVGVzdFNlc3Npb25EVE8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU2Vzc2lvbkRUTyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU2Vzc2lvbkRUTzoKICAgICAgICAiIiJUZXN0IFNlc3Npb25EVE8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU2Vzc2lvbkRUT2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNlc3Npb25EVE8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTZXNzaW9uRFRPKAogICAgICAgICAgICAgICAgaWQgPSAnNGU5ZTcwNTEtZjNiMi00OGU5LThlZTYtYjEyNDkyNTUyNjU3JywKICAgICAgICAgICAgICAgIHVzZXJfaWQgPSAnJywKICAgICAgICAgICAgICAgIHNlc3Npb25fbWV0YWRhdGEgPSBmaXJlYmxvY2tzLm1vZGVscy5zZXNzaW9uX21ldGFkYXRhLlNlc3Npb25NZXRhZGF0YSgKICAgICAgICAgICAgICAgICAgICBhcHBfdXJsID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFwcF9uYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFwcF9kZXNjcmlwdGlvbiA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhcHBfaWNvbiA9ICcnLCApLAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9IDEsCiAgICAgICAgICAgICAgICBmZWVfbGV2ZWwgPSAnTUVESVVNJywKICAgICAgICAgICAgICAgIGNoYWluX2lkcyA9IFsiRVRIIiwiRVRIX1RFU1QiLCJTT0wiXSwKICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25fdHlwZSA9ICdXYWxsZXRDb25uZWN0JywKICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25fbWV0aG9kID0gJ0FQSScsCiAgICAgICAgICAgICAgICBjcmVhdGlvbl9kYXRlID0gZGF0ZXRpbWUuZGF0ZXRpbWUuc3RycHRpbWUoJzIwMTMtMTAtMjAgMTk6MjA6MzAuMDAnLCAnJVktJW0tJWQgJUg6JU06JVMuJWYnKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNlc3Npb25EVE8oCiAgICAgICAgICAgICAgICBpZCA9ICc0ZTllNzA1MS1mM2IyLTQ4ZTktOGVlNi1iMTI0OTI1NTI2NTcnLAogICAgICAgICAgICAgICAgdXNlcl9pZCA9ICcnLAogICAgICAgICAgICAgICAgc2Vzc2lvbl9tZXRhZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLnNlc3Npb25fbWV0YWRhdGEuU2Vzc2lvbk1ldGFkYXRhKAogICAgICAgICAgICAgICAgICAgIGFwcF91cmwgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYXBwX25hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYXBwX2Rlc2NyaXB0aW9uID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFwcF9pY29uID0gJycsICksCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gMSwKICAgICAgICAgICAgICAgIGZlZV9sZXZlbCA9ICdNRURJVU0nLAogICAgICAgICAgICAgICAgY2hhaW5faWRzID0gWyJFVEgiLCJFVEhfVEVTVCIsIlNPTCJdLAogICAgICAgICAgICAgICAgY29ubmVjdGlvbl90eXBlID0gJ1dhbGxldENvbm5lY3QnLAogICAgICAgICAgICAgICAgY29ubmVjdGlvbl9tZXRob2QgPSAnQVBJJywKICAgICAgICAgICAgICAgIGNyZWF0aW9uX2RhdGUgPSBkYXRldGltZS5kYXRldGltZS5zdHJwdGltZSgnMjAxMy0xMC0yMCAxOToyMDozMC4wMCcsICclWS0lbS0lZCAlSDolTTolUy4lZicpLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNlc3Npb25EVE8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBTZXNzaW9uRFRPIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_session_metadata.py b/test/test_session_metadata.py index 5d4a3aaf..0adc1eb6 100644 --- a/test/test_session_metadata.py +++ b/test/test_session_metadata.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.session_metadata import SessionMetadata - - -class TestSessionMetadata(unittest.TestCase): - """SessionMetadata unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SessionMetadata: - """Test SessionMetadata - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SessionMetadata` - """ - model = SessionMetadata() - if include_optional: - return SessionMetadata( - app_url = '', - app_name = '', - app_description = '', - app_icon = '' - ) - else: - return SessionMetadata( - app_url = '', - ) - """ - - def testSessionMetadata(self): - """Test SessionMetadata""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNlc3Npb25fbWV0YWRhdGEgaW1wb3J0IFNlc3Npb25NZXRhZGF0YQoKCmNsYXNzIFRlc3RTZXNzaW9uTWV0YWRhdGEodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU2Vzc2lvbk1ldGFkYXRhIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTZXNzaW9uTWV0YWRhdGE6CiAgICAgICAgIiIiVGVzdCBTZXNzaW9uTWV0YWRhdGEKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU2Vzc2lvbk1ldGFkYXRhYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU2Vzc2lvbk1ldGFkYXRhKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU2Vzc2lvbk1ldGFkYXRhKAogICAgICAgICAgICAgICAgYXBwX3VybCA9ICcnLAogICAgICAgICAgICAgICAgYXBwX25hbWUgPSAnJywKICAgICAgICAgICAgICAgIGFwcF9kZXNjcmlwdGlvbiA9ICcnLAogICAgICAgICAgICAgICAgYXBwX2ljb24gPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNlc3Npb25NZXRhZGF0YSgKICAgICAgICAgICAgICAgIGFwcF91cmwgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTZXNzaW9uTWV0YWRhdGEoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTZXNzaW9uTWV0YWRhdGEiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_set_admin_quorum_threshold_request.py b/test/test_set_admin_quorum_threshold_request.py index 41946c5e..2f0661b6 100644 --- a/test/test_set_admin_quorum_threshold_request.py +++ b/test/test_set_admin_quorum_threshold_request.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.set_admin_quorum_threshold_request import ( - SetAdminQuorumThresholdRequest, -) - - -class TestSetAdminQuorumThresholdRequest(unittest.TestCase): - """SetAdminQuorumThresholdRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SetAdminQuorumThresholdRequest: - """Test SetAdminQuorumThresholdRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SetAdminQuorumThresholdRequest` - """ - model = SetAdminQuorumThresholdRequest() - if include_optional: - return SetAdminQuorumThresholdRequest( - admin_quorum_threshold = 1.337 - ) - else: - return SetAdminQuorumThresholdRequest( - ) - """ - - def testSetAdminQuorumThresholdRequest(self): - """Test SetAdminQuorumThresholdRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9hZG1pbl9xdW9ydW1fdGhyZXNob2xkX3JlcXVlc3QgaW1wb3J0ICgKICAgIFNldEFkbWluUXVvcnVtVGhyZXNob2xkUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RTZXRBZG1pblF1b3J1bVRocmVzaG9sZFJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU2V0QWRtaW5RdW9ydW1UaHJlc2hvbGRSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTZXRBZG1pblF1b3J1bVRocmVzaG9sZFJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBTZXRBZG1pblF1b3J1bVRocmVzaG9sZFJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU2V0QWRtaW5RdW9ydW1UaHJlc2hvbGRSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU2V0QWRtaW5RdW9ydW1UaHJlc2hvbGRSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU2V0QWRtaW5RdW9ydW1UaHJlc2hvbGRSZXF1ZXN0KAogICAgICAgICAgICAgICAgYWRtaW5fcXVvcnVtX3RocmVzaG9sZCA9IDEuMzM3CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU2V0QWRtaW5RdW9ydW1UaHJlc2hvbGRSZXF1ZXN0KAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNldEFkbWluUXVvcnVtVGhyZXNob2xkUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFNldEFkbWluUXVvcnVtVGhyZXNob2xkUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_set_admin_quorum_threshold_response.py b/test/test_set_admin_quorum_threshold_response.py index e188cc5a..1b0a8dd1 100644 --- a/test/test_set_admin_quorum_threshold_response.py +++ b/test/test_set_admin_quorum_threshold_response.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.set_admin_quorum_threshold_response import ( - SetAdminQuorumThresholdResponse, -) - - -class TestSetAdminQuorumThresholdResponse(unittest.TestCase): - """SetAdminQuorumThresholdResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SetAdminQuorumThresholdResponse: - """Test SetAdminQuorumThresholdResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SetAdminQuorumThresholdResponse` - """ - model = SetAdminQuorumThresholdResponse() - if include_optional: - return SetAdminQuorumThresholdResponse( - message = 'Admin quorum threshold request sent successfully.' - ) - else: - return SetAdminQuorumThresholdResponse( - message = 'Admin quorum threshold request sent successfully.', - ) - """ - - def testSetAdminQuorumThresholdResponse(self): - """Test SetAdminQuorumThresholdResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9hZG1pbl9xdW9ydW1fdGhyZXNob2xkX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBTZXRBZG1pblF1b3J1bVRocmVzaG9sZFJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdFNldEFkbWluUXVvcnVtVGhyZXNob2xkUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU2V0QWRtaW5RdW9ydW1UaHJlc2hvbGRSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU2V0QWRtaW5RdW9ydW1UaHJlc2hvbGRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFNldEFkbWluUXVvcnVtVGhyZXNob2xkUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU2V0QWRtaW5RdW9ydW1UaHJlc2hvbGRSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNldEFkbWluUXVvcnVtVGhyZXNob2xkUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTZXRBZG1pblF1b3J1bVRocmVzaG9sZFJlc3BvbnNlKAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdBZG1pbiBxdW9ydW0gdGhyZXNob2xkIHJlcXVlc3Qgc2VudCBzdWNjZXNzZnVsbHkuJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNldEFkbWluUXVvcnVtVGhyZXNob2xkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ0FkbWluIHF1b3J1bSB0aHJlc2hvbGQgcmVxdWVzdCBzZW50IHN1Y2Nlc3NmdWxseS4nLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNldEFkbWluUXVvcnVtVGhyZXNob2xkUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTZXRBZG1pblF1b3J1bVRocmVzaG9sZFJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_set_asset_price_request.py b/test/test_set_asset_price_request.py index a9ef470e..eb65c28b 100644 --- a/test/test_set_asset_price_request.py +++ b/test/test_set_asset_price_request.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.set_asset_price_request import SetAssetPriceRequest - - -class TestSetAssetPriceRequest(unittest.TestCase): - """SetAssetPriceRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SetAssetPriceRequest: - """Test SetAssetPriceRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SetAssetPriceRequest` - """ - model = SetAssetPriceRequest() - if include_optional: - return SetAssetPriceRequest( - currency = 'USD', - price = 3100 - ) - else: - return SetAssetPriceRequest( - currency = 'USD', - price = 3100, - ) - """ - - def testSetAssetPriceRequest(self): - """Test SetAssetPriceRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9hc3NldF9wcmljZV9yZXF1ZXN0IGltcG9ydCBTZXRBc3NldFByaWNlUmVxdWVzdAoKCmNsYXNzIFRlc3RTZXRBc3NldFByaWNlUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTZXRBc3NldFByaWNlUmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU2V0QXNzZXRQcmljZVJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBTZXRBc3NldFByaWNlUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTZXRBc3NldFByaWNlUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNldEFzc2V0UHJpY2VSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU2V0QXNzZXRQcmljZVJlcXVlc3QoCiAgICAgICAgICAgICAgICBjdXJyZW5jeSA9ICdVU0QnLAogICAgICAgICAgICAgICAgcHJpY2UgPSAzMTAwCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU2V0QXNzZXRQcmljZVJlcXVlc3QoCiAgICAgICAgICAgICAgICBjdXJyZW5jeSA9ICdVU0QnLAogICAgICAgICAgICAgICAgcHJpY2UgPSAzMTAwLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNldEFzc2V0UHJpY2VSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgU2V0QXNzZXRQcmljZVJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_set_auto_fuel_request.py b/test/test_set_auto_fuel_request.py index c8f039a4..e8d833a9 100644 --- a/test/test_set_auto_fuel_request.py +++ b/test/test_set_auto_fuel_request.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.set_auto_fuel_request import SetAutoFuelRequest - - -class TestSetAutoFuelRequest(unittest.TestCase): - """SetAutoFuelRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SetAutoFuelRequest: - """Test SetAutoFuelRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SetAutoFuelRequest` - """ - model = SetAutoFuelRequest() - if include_optional: - return SetAutoFuelRequest( - auto_fuel = True - ) - else: - return SetAutoFuelRequest( - ) - """ - - def testSetAutoFuelRequest(self): - """Test SetAutoFuelRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9hdXRvX2Z1ZWxfcmVxdWVzdCBpbXBvcnQgU2V0QXV0b0Z1ZWxSZXF1ZXN0CgoKY2xhc3MgVGVzdFNldEF1dG9GdWVsUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTZXRBdXRvRnVlbFJlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNldEF1dG9GdWVsUmVxdWVzdDoKICAgICAgICAiIiJUZXN0IFNldEF1dG9GdWVsUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTZXRBdXRvRnVlbFJlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTZXRBdXRvRnVlbFJlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTZXRBdXRvRnVlbFJlcXVlc3QoCiAgICAgICAgICAgICAgICBhdXRvX2Z1ZWwgPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU2V0QXV0b0Z1ZWxSZXF1ZXN0KAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNldEF1dG9GdWVsUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFNldEF1dG9GdWVsUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_set_confirmations_threshold_request.py b/test/test_set_confirmations_threshold_request.py index ae7f130b..57c09d92 100644 --- a/test/test_set_confirmations_threshold_request.py +++ b/test/test_set_confirmations_threshold_request.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.set_confirmations_threshold_request import ( - SetConfirmationsThresholdRequest, -) - - -class TestSetConfirmationsThresholdRequest(unittest.TestCase): - """SetConfirmationsThresholdRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SetConfirmationsThresholdRequest: - """Test SetConfirmationsThresholdRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SetConfirmationsThresholdRequest` - """ - model = SetConfirmationsThresholdRequest() - if include_optional: - return SetConfirmationsThresholdRequest( - num_of_confirmations = 1.337 - ) - else: - return SetConfirmationsThresholdRequest( - ) - """ - - def testSetConfirmationsThresholdRequest(self): - """Test SetConfirmationsThresholdRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9jb25maXJtYXRpb25zX3RocmVzaG9sZF9yZXF1ZXN0IGltcG9ydCAoCiAgICBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU2V0Q29uZmlybWF0aW9uc1RocmVzaG9sZFJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU2V0Q29uZmlybWF0aW9uc1RocmVzaG9sZFJlcXVlc3QoCiAgICAgICAgICAgICAgICBudW1fb2ZfY29uZmlybWF0aW9ucyA9IDEuMzM3CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU2V0Q29uZmlybWF0aW9uc1RocmVzaG9sZFJlcXVlc3QoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U2V0Q29uZmlybWF0aW9uc1RocmVzaG9sZFJlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_set_confirmations_threshold_response.py b/test/test_set_confirmations_threshold_response.py index a873e1bd..667bb6c1 100644 --- a/test/test_set_confirmations_threshold_response.py +++ b/test/test_set_confirmations_threshold_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.set_confirmations_threshold_response import ( - SetConfirmationsThresholdResponse, -) - - -class TestSetConfirmationsThresholdResponse(unittest.TestCase): - """SetConfirmationsThresholdResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SetConfirmationsThresholdResponse: - """Test SetConfirmationsThresholdResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SetConfirmationsThresholdResponse` - """ - model = SetConfirmationsThresholdResponse() - if include_optional: - return SetConfirmationsThresholdResponse( - success = True, - transactions = [ - '' - ] - ) - else: - return SetConfirmationsThresholdResponse( - ) - """ - - def testSetConfirmationsThresholdResponse(self): - """Test SetConfirmationsThresholdResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9jb25maXJtYXRpb25zX3RocmVzaG9sZF9yZXNwb25zZSBpbXBvcnQgKAogICAgU2V0Q29uZmlybWF0aW9uc1RocmVzaG9sZFJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdFNldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFNldENvbmZpcm1hdGlvbnNUaHJlc2hvbGRSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBzdWNjZXNzID0gVHJ1ZSwKICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9ucyA9IFsKICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTZXRDb25maXJtYXRpb25zVGhyZXNob2xkUmVzcG9uc2UoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U2V0Q29uZmlybWF0aW9uc1RocmVzaG9sZFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgU2V0Q29uZmlybWF0aW9uc1RocmVzaG9sZFJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_set_customer_ref_id_for_address_request.py b/test/test_set_customer_ref_id_for_address_request.py index 5ad450d6..ee32aee9 100644 --- a/test/test_set_customer_ref_id_for_address_request.py +++ b/test/test_set_customer_ref_id_for_address_request.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.set_customer_ref_id_for_address_request import ( - SetCustomerRefIdForAddressRequest, -) - - -class TestSetCustomerRefIdForAddressRequest(unittest.TestCase): - """SetCustomerRefIdForAddressRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SetCustomerRefIdForAddressRequest: - """Test SetCustomerRefIdForAddressRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SetCustomerRefIdForAddressRequest` - """ - model = SetCustomerRefIdForAddressRequest() - if include_optional: - return SetCustomerRefIdForAddressRequest( - customer_ref_id = '' - ) - else: - return SetCustomerRefIdForAddressRequest( - ) - """ - - def testSetCustomerRefIdForAddressRequest(self): - """Test SetCustomerRefIdForAddressRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9jdXN0b21lcl9yZWZfaWRfZm9yX2FkZHJlc3NfcmVxdWVzdCBpbXBvcnQgKAogICAgU2V0Q3VzdG9tZXJSZWZJZEZvckFkZHJlc3NSZXF1ZXN0LAopCgoKY2xhc3MgVGVzdFNldEN1c3RvbWVyUmVmSWRGb3JBZGRyZXNzUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTZXRDdXN0b21lclJlZklkRm9yQWRkcmVzc1JlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNldEN1c3RvbWVyUmVmSWRGb3JBZGRyZXNzUmVxdWVzdDoKICAgICAgICAiIiJUZXN0IFNldEN1c3RvbWVyUmVmSWRGb3JBZGRyZXNzUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTZXRDdXN0b21lclJlZklkRm9yQWRkcmVzc1JlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTZXRDdXN0b21lclJlZklkRm9yQWRkcmVzc1JlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTZXRDdXN0b21lclJlZklkRm9yQWRkcmVzc1JlcXVlc3QoCiAgICAgICAgICAgICAgICBjdXN0b21lcl9yZWZfaWQgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNldEN1c3RvbWVyUmVmSWRGb3JBZGRyZXNzUmVxdWVzdCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTZXRDdXN0b21lclJlZklkRm9yQWRkcmVzc1JlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTZXRDdXN0b21lclJlZklkRm9yQWRkcmVzc1JlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_set_customer_ref_id_request.py b/test/test_set_customer_ref_id_request.py index 9e12bc2e..23a3ebce 100644 --- a/test/test_set_customer_ref_id_request.py +++ b/test/test_set_customer_ref_id_request.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.set_customer_ref_id_request import SetCustomerRefIdRequest - - -class TestSetCustomerRefIdRequest(unittest.TestCase): - """SetCustomerRefIdRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SetCustomerRefIdRequest: - """Test SetCustomerRefIdRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SetCustomerRefIdRequest` - """ - model = SetCustomerRefIdRequest() - if include_optional: - return SetCustomerRefIdRequest( - customer_ref_id = '' - ) - else: - return SetCustomerRefIdRequest( - ) - """ - - def testSetCustomerRefIdRequest(self): - """Test SetCustomerRefIdRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9jdXN0b21lcl9yZWZfaWRfcmVxdWVzdCBpbXBvcnQgU2V0Q3VzdG9tZXJSZWZJZFJlcXVlc3QKCgpjbGFzcyBUZXN0U2V0Q3VzdG9tZXJSZWZJZFJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU2V0Q3VzdG9tZXJSZWZJZFJlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNldEN1c3RvbWVyUmVmSWRSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgU2V0Q3VzdG9tZXJSZWZJZFJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU2V0Q3VzdG9tZXJSZWZJZFJlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTZXRDdXN0b21lclJlZklkUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNldEN1c3RvbWVyUmVmSWRSZXF1ZXN0KAogICAgICAgICAgICAgICAgY3VzdG9tZXJfcmVmX2lkID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTZXRDdXN0b21lclJlZklkUmVxdWVzdCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTZXRDdXN0b21lclJlZklkUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFNldEN1c3RvbWVyUmVmSWRSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_set_layer_zero_dvn_config_request.py b/test/test_set_layer_zero_dvn_config_request.py index 5811920b..1c98659c 100644 --- a/test/test_set_layer_zero_dvn_config_request.py +++ b/test/test_set_layer_zero_dvn_config_request.py @@ -1,77 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.set_layer_zero_dvn_config_request import ( - SetLayerZeroDvnConfigRequest, -) - - -class TestSetLayerZeroDvnConfigRequest(unittest.TestCase): - """SetLayerZeroDvnConfigRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SetLayerZeroDvnConfigRequest: - """Test SetLayerZeroDvnConfigRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SetLayerZeroDvnConfigRequest` - """ - model = SetLayerZeroDvnConfigRequest() - if include_optional: - return SetLayerZeroDvnConfigRequest( - vault_account_id = '0', - source_adapter_token_link_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - destination_adapter_token_link_id = '6add4f2a-b206-4114-8f94-2882618ffbb4', - send_config = fireblocks.models.dvn_config.DvnConfig( - dvn_addresses = [1.0284746938594775E54,2.5101940177441514E50], - optional_dvn_addresses = [1.334824162533763E54], - optional_threshold = 2, ), - receive_config = fireblocks.models.dvn_config.DvnConfig( - dvn_addresses = [1.0284746938594775E54,2.5101940177441514E50], - optional_dvn_addresses = [1.334824162533763E54], - optional_threshold = 2, ) - ) - else: - return SetLayerZeroDvnConfigRequest( - vault_account_id = '0', - source_adapter_token_link_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - destination_adapter_token_link_id = '6add4f2a-b206-4114-8f94-2882618ffbb4', - send_config = fireblocks.models.dvn_config.DvnConfig( - dvn_addresses = [1.0284746938594775E54,2.5101940177441514E50], - optional_dvn_addresses = [1.334824162533763E54], - optional_threshold = 2, ), - receive_config = fireblocks.models.dvn_config.DvnConfig( - dvn_addresses = [1.0284746938594775E54,2.5101940177441514E50], - optional_dvn_addresses = [1.334824162533763E54], - optional_threshold = 2, ), - ) - """ - - def testSetLayerZeroDvnConfigRequest(self): - """Test SetLayerZeroDvnConfigRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9sYXllcl96ZXJvX2R2bl9jb25maWdfcmVxdWVzdCBpbXBvcnQgKAogICAgU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RTZXRMYXllclplcm9Edm5Db25maWdSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNldExheWVyWmVyb0R2bkNvbmZpZ1JlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNldExheWVyWmVyb0R2bkNvbmZpZ1JlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBTZXRMYXllclplcm9Edm5Db25maWdSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNldExheWVyWmVyb0R2bkNvbmZpZ1JlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTZXRMYXllclplcm9Edm5Db25maWdSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVxdWVzdCgKICAgICAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQgPSAnMCcsCiAgICAgICAgICAgICAgICBzb3VyY2VfYWRhcHRlcl90b2tlbl9saW5rX2lkID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCcsCiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl9hZGFwdGVyX3Rva2VuX2xpbmtfaWQgPSAnNmFkZDRmMmEtYjIwNi00MTE0LThmOTQtMjg4MjYxOGZmYmI0JywKICAgICAgICAgICAgICAgIHNlbmRfY29uZmlnID0gZmlyZWJsb2Nrcy5tb2RlbHMuZHZuX2NvbmZpZy5Edm5Db25maWcoCiAgICAgICAgICAgICAgICAgICAgZHZuX2FkZHJlc3NlcyA9IFsxLjAyODQ3NDY5Mzg1OTQ3NzVFNTQsMi41MTAxOTQwMTc3NDQxNTE0RTUwXSwgCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWxfZHZuX2FkZHJlc3NlcyA9IFsxLjMzNDgyNDE2MjUzMzc2M0U1NF0sIAogICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsX3RocmVzaG9sZCA9IDIsICksCiAgICAgICAgICAgICAgICByZWNlaXZlX2NvbmZpZyA9IGZpcmVibG9ja3MubW9kZWxzLmR2bl9jb25maWcuRHZuQ29uZmlnKAogICAgICAgICAgICAgICAgICAgIGR2bl9hZGRyZXNzZXMgPSBbMS4wMjg0NzQ2OTM4NTk0Nzc1RTU0LDIuNTEwMTk0MDE3NzQ0MTUxNEU1MF0sIAogICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsX2R2bl9hZGRyZXNzZXMgPSBbMS4zMzQ4MjQxNjI1MzM3NjNFNTRdLCAKICAgICAgICAgICAgICAgICAgICBvcHRpb25hbF90aHJlc2hvbGQgPSAyLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVxdWVzdCgKICAgICAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQgPSAnMCcsCiAgICAgICAgICAgICAgICBzb3VyY2VfYWRhcHRlcl90b2tlbl9saW5rX2lkID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCcsCiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl9hZGFwdGVyX3Rva2VuX2xpbmtfaWQgPSAnNmFkZDRmMmEtYjIwNi00MTE0LThmOTQtMjg4MjYxOGZmYmI0JywKICAgICAgICAgICAgICAgIHNlbmRfY29uZmlnID0gZmlyZWJsb2Nrcy5tb2RlbHMuZHZuX2NvbmZpZy5Edm5Db25maWcoCiAgICAgICAgICAgICAgICAgICAgZHZuX2FkZHJlc3NlcyA9IFsxLjAyODQ3NDY5Mzg1OTQ3NzVFNTQsMi41MTAxOTQwMTc3NDQxNTE0RTUwXSwgCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWxfZHZuX2FkZHJlc3NlcyA9IFsxLjMzNDgyNDE2MjUzMzc2M0U1NF0sIAogICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsX3RocmVzaG9sZCA9IDIsICksCiAgICAgICAgICAgICAgICByZWNlaXZlX2NvbmZpZyA9IGZpcmVibG9ja3MubW9kZWxzLmR2bl9jb25maWcuRHZuQ29uZmlnKAogICAgICAgICAgICAgICAgICAgIGR2bl9hZGRyZXNzZXMgPSBbMS4wMjg0NzQ2OTM4NTk0Nzc1RTU0LDIuNTEwMTk0MDE3NzQ0MTUxNEU1MF0sIAogICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsX2R2bl9hZGRyZXNzZXMgPSBbMS4zMzQ4MjQxNjI1MzM3NjNFNTRdLCAKICAgICAgICAgICAgICAgICAgICBvcHRpb25hbF90aHJlc2hvbGQgPSAyLCApLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNldExheWVyWmVyb0R2bkNvbmZpZ1JlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTZXRMYXllclplcm9Edm5Db25maWdSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_set_layer_zero_dvn_config_response.py b/test/test_set_layer_zero_dvn_config_response.py index d767c791..68bd5ea7 100644 --- a/test/test_set_layer_zero_dvn_config_response.py +++ b/test/test_set_layer_zero_dvn_config_response.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.set_layer_zero_dvn_config_response import ( - SetLayerZeroDvnConfigResponse, -) - - -class TestSetLayerZeroDvnConfigResponse(unittest.TestCase): - """SetLayerZeroDvnConfigResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SetLayerZeroDvnConfigResponse: - """Test SetLayerZeroDvnConfigResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SetLayerZeroDvnConfigResponse` - """ - model = SetLayerZeroDvnConfigResponse() - if include_optional: - return SetLayerZeroDvnConfigResponse( - txn_ids = [ - '' - ] - ) - else: - return SetLayerZeroDvnConfigResponse( - txn_ids = [ - '' - ], - ) - """ - - def testSetLayerZeroDvnConfigResponse(self): - """Test SetLayerZeroDvnConfigResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9sYXllcl96ZXJvX2R2bl9jb25maWdfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFNldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlLAopCgoKY2xhc3MgVGVzdFNldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTZXRMYXllclplcm9Edm5Db25maWdSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFNldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTZXRMYXllclplcm9Edm5Db25maWdSZXNwb25zZSgKICAgICAgICAgICAgICAgIHR4bl9pZHMgPSBbCiAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU2V0TGF5ZXJaZXJvRHZuQ29uZmlnUmVzcG9uc2UoCiAgICAgICAgICAgICAgICB0eG5faWRzID0gWwogICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTZXRMYXllclplcm9Edm5Db25maWdSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFNldExheWVyWmVyb0R2bkNvbmZpZ1Jlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_set_layer_zero_peers_request.py b/test/test_set_layer_zero_peers_request.py index 2b81e7c6..c39cbe20 100644 --- a/test/test_set_layer_zero_peers_request.py +++ b/test/test_set_layer_zero_peers_request.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.set_layer_zero_peers_request import SetLayerZeroPeersRequest - - -class TestSetLayerZeroPeersRequest(unittest.TestCase): - """SetLayerZeroPeersRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SetLayerZeroPeersRequest: - """Test SetLayerZeroPeersRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SetLayerZeroPeersRequest` - """ - model = SetLayerZeroPeersRequest() - if include_optional: - return SetLayerZeroPeersRequest( - vault_account_id = '0', - source_adapter_token_link_id = '00000123-0432-1234-1234-123456789012', - destination_adapter_token_link_ids = ["123-432-1234-1234-123456789012","123-432-1234-1234-123456789012"], - bidirectional = True - ) - else: - return SetLayerZeroPeersRequest( - vault_account_id = '0', - source_adapter_token_link_id = '00000123-0432-1234-1234-123456789012', - destination_adapter_token_link_ids = ["123-432-1234-1234-123456789012","123-432-1234-1234-123456789012"], - bidirectional = True, - ) - """ - - def testSetLayerZeroPeersRequest(self): - """Test SetLayerZeroPeersRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9sYXllcl96ZXJvX3BlZXJzX3JlcXVlc3QgaW1wb3J0IFNldExheWVyWmVyb1BlZXJzUmVxdWVzdAoKCmNsYXNzIFRlc3RTZXRMYXllclplcm9QZWVyc1JlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU2V0TGF5ZXJaZXJvUGVlcnNSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTZXRMYXllclplcm9QZWVyc1JlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBTZXRMYXllclplcm9QZWVyc1JlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU2V0TGF5ZXJaZXJvUGVlcnNSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU2V0TGF5ZXJaZXJvUGVlcnNSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU2V0TGF5ZXJaZXJvUGVlcnNSZXF1ZXN0KAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcwJywKICAgICAgICAgICAgICAgIHNvdXJjZV9hZGFwdGVyX3Rva2VuX2xpbmtfaWQgPSAnMDAwMDAxMjMtMDQzMi0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyJywKICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uX2FkYXB0ZXJfdG9rZW5fbGlua19pZHMgPSBbIjEyMy00MzItMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMiIsIjEyMy00MzItMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMiJdLAogICAgICAgICAgICAgICAgYmlkaXJlY3Rpb25hbCA9IFRydWUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTZXRMYXllclplcm9QZWVyc1JlcXVlc3QoCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gJzAnLAogICAgICAgICAgICAgICAgc291cmNlX2FkYXB0ZXJfdG9rZW5fbGlua19pZCA9ICcwMDAwMDEyMy0wNDMyLTEyMzQtMTIzNC0xMjM0NTY3ODkwMTInLAogICAgICAgICAgICAgICAgZGVzdGluYXRpb25fYWRhcHRlcl90b2tlbl9saW5rX2lkcyA9IFsiMTIzLTQzMi0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyIiwiMTIzLTQzMi0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyIl0sCiAgICAgICAgICAgICAgICBiaWRpcmVjdGlvbmFsID0gVHJ1ZSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTZXRMYXllclplcm9QZWVyc1JlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTZXRMYXllclplcm9QZWVyc1JlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_set_layer_zero_peers_response.py b/test/test_set_layer_zero_peers_response.py index 1cee00c1..545de01a 100644 --- a/test/test_set_layer_zero_peers_response.py +++ b/test/test_set_layer_zero_peers_response.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.set_layer_zero_peers_response import SetLayerZeroPeersResponse - - -class TestSetLayerZeroPeersResponse(unittest.TestCase): - """SetLayerZeroPeersResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SetLayerZeroPeersResponse: - """Test SetLayerZeroPeersResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SetLayerZeroPeersResponse` - """ - model = SetLayerZeroPeersResponse() - if include_optional: - return SetLayerZeroPeersResponse( - txn_ids = ["123-432-1234-1234-123456789012","123-432-1234-1234-123456789012"] - ) - else: - return SetLayerZeroPeersResponse( - txn_ids = ["123-432-1234-1234-123456789012","123-432-1234-1234-123456789012"], - ) - """ - - def testSetLayerZeroPeersResponse(self): - """Test SetLayerZeroPeersResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9sYXllcl96ZXJvX3BlZXJzX3Jlc3BvbnNlIGltcG9ydCBTZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlCgoKY2xhc3MgVGVzdFNldExheWVyWmVyb1BlZXJzUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU2V0TGF5ZXJaZXJvUGVlcnNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU2V0TGF5ZXJaZXJvUGVlcnNSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFNldExheWVyWmVyb1BlZXJzUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU2V0TGF5ZXJaZXJvUGVlcnNSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNldExheWVyWmVyb1BlZXJzUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgdHhuX2lkcyA9IFsiMTIzLTQzMi0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyIiwiMTIzLTQzMi0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyIl0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTZXRMYXllclplcm9QZWVyc1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgdHhuX2lkcyA9IFsiMTIzLTQzMi0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyIiwiMTIzLTQzMi0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyIl0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U2V0TGF5ZXJaZXJvUGVlcnNSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFNldExheWVyWmVyb1BlZXJzUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_set_network_id_discoverability_request.py b/test/test_set_network_id_discoverability_request.py index 5aa1c38c..1d59f274 100644 --- a/test/test_set_network_id_discoverability_request.py +++ b/test/test_set_network_id_discoverability_request.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.set_network_id_discoverability_request import ( - SetNetworkIdDiscoverabilityRequest, -) - - -class TestSetNetworkIdDiscoverabilityRequest(unittest.TestCase): - """SetNetworkIdDiscoverabilityRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SetNetworkIdDiscoverabilityRequest: - """Test SetNetworkIdDiscoverabilityRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SetNetworkIdDiscoverabilityRequest` - """ - model = SetNetworkIdDiscoverabilityRequest() - if include_optional: - return SetNetworkIdDiscoverabilityRequest( - is_discoverable = True - ) - else: - return SetNetworkIdDiscoverabilityRequest( - is_discoverable = True, - ) - """ - - def testSetNetworkIdDiscoverabilityRequest(self): - """Test SetNetworkIdDiscoverabilityRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9uZXR3b3JrX2lkX2Rpc2NvdmVyYWJpbGl0eV9yZXF1ZXN0IGltcG9ydCAoCiAgICBTZXROZXR3b3JrSWREaXNjb3ZlcmFiaWxpdHlSZXF1ZXN0LAopCgoKY2xhc3MgVGVzdFNldE5ldHdvcmtJZERpc2NvdmVyYWJpbGl0eVJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU2V0TmV0d29ya0lkRGlzY292ZXJhYmlsaXR5UmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU2V0TmV0d29ya0lkRGlzY292ZXJhYmlsaXR5UmVxdWVzdDoKICAgICAgICAiIiJUZXN0IFNldE5ldHdvcmtJZERpc2NvdmVyYWJpbGl0eVJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU2V0TmV0d29ya0lkRGlzY292ZXJhYmlsaXR5UmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNldE5ldHdvcmtJZERpc2NvdmVyYWJpbGl0eVJlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTZXROZXR3b3JrSWREaXNjb3ZlcmFiaWxpdHlSZXF1ZXN0KAogICAgICAgICAgICAgICAgaXNfZGlzY292ZXJhYmxlID0gVHJ1ZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNldE5ldHdvcmtJZERpc2NvdmVyYWJpbGl0eVJlcXVlc3QoCiAgICAgICAgICAgICAgICBpc19kaXNjb3ZlcmFibGUgPSBUcnVlLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNldE5ldHdvcmtJZERpc2NvdmVyYWJpbGl0eVJlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTZXROZXR3b3JrSWREaXNjb3ZlcmFiaWxpdHlSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_set_network_id_name_request.py b/test/test_set_network_id_name_request.py index 07bee337..644a573a 100644 --- a/test/test_set_network_id_name_request.py +++ b/test/test_set_network_id_name_request.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.set_network_id_name_request import SetNetworkIdNameRequest - - -class TestSetNetworkIdNameRequest(unittest.TestCase): - """SetNetworkIdNameRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SetNetworkIdNameRequest: - """Test SetNetworkIdNameRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SetNetworkIdNameRequest` - """ - model = SetNetworkIdNameRequest() - if include_optional: - return SetNetworkIdNameRequest( - name = '' - ) - else: - return SetNetworkIdNameRequest( - name = '', - ) - """ - - def testSetNetworkIdNameRequest(self): - """Test SetNetworkIdNameRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9uZXR3b3JrX2lkX25hbWVfcmVxdWVzdCBpbXBvcnQgU2V0TmV0d29ya0lkTmFtZVJlcXVlc3QKCgpjbGFzcyBUZXN0U2V0TmV0d29ya0lkTmFtZVJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU2V0TmV0d29ya0lkTmFtZVJlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNldE5ldHdvcmtJZE5hbWVSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgU2V0TmV0d29ya0lkTmFtZVJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU2V0TmV0d29ya0lkTmFtZVJlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTZXROZXR3b3JrSWROYW1lUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNldE5ldHdvcmtJZE5hbWVSZXF1ZXN0KAogICAgICAgICAgICAgICAgbmFtZSA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU2V0TmV0d29ya0lkTmFtZVJlcXVlc3QoCiAgICAgICAgICAgICAgICBuYW1lID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U2V0TmV0d29ya0lkTmFtZVJlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTZXROZXR3b3JrSWROYW1lUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_set_network_id_response.py b/test/test_set_network_id_response.py index d7dd3400..8d093e1b 100644 --- a/test/test_set_network_id_response.py +++ b/test/test_set_network_id_response.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.set_network_id_response import SetNetworkIdResponse - - -class TestSetNetworkIdResponse(unittest.TestCase): - """SetNetworkIdResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SetNetworkIdResponse: - """Test SetNetworkIdResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SetNetworkIdResponse` - """ - model = SetNetworkIdResponse() - if include_optional: - return SetNetworkIdResponse( - success = True - ) - else: - return SetNetworkIdResponse( - success = True, - ) - """ - - def testSetNetworkIdResponse(self): - """Test SetNetworkIdResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9uZXR3b3JrX2lkX3Jlc3BvbnNlIGltcG9ydCBTZXROZXR3b3JrSWRSZXNwb25zZQoKCmNsYXNzIFRlc3RTZXROZXR3b3JrSWRSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTZXROZXR3b3JrSWRSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU2V0TmV0d29ya0lkUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBTZXROZXR3b3JrSWRSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTZXROZXR3b3JrSWRSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNldE5ldHdvcmtJZFJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU2V0TmV0d29ya0lkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBzdWNjZXNzID0gVHJ1ZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNldE5ldHdvcmtJZFJlc3BvbnNlKAogICAgICAgICAgICAgICAgc3VjY2VzcyA9IFRydWUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U2V0TmV0d29ya0lkUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTZXROZXR3b3JrSWRSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_set_network_id_routing_policy_request.py b/test/test_set_network_id_routing_policy_request.py index 19a253c6..7741c613 100644 --- a/test/test_set_network_id_routing_policy_request.py +++ b/test/test_set_network_id_routing_policy_request.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.set_network_id_routing_policy_request import ( - SetNetworkIdRoutingPolicyRequest, -) - - -class TestSetNetworkIdRoutingPolicyRequest(unittest.TestCase): - """SetNetworkIdRoutingPolicyRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SetNetworkIdRoutingPolicyRequest: - """Test SetNetworkIdRoutingPolicyRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SetNetworkIdRoutingPolicyRequest` - """ - model = SetNetworkIdRoutingPolicyRequest() - if include_optional: - return SetNetworkIdRoutingPolicyRequest( - routing_policy = { - 'key' : null - } - ) - else: - return SetNetworkIdRoutingPolicyRequest( - routing_policy = { - 'key' : null - }, - ) - """ - - def testSetNetworkIdRoutingPolicyRequest(self): - """Test SetNetworkIdRoutingPolicyRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9uZXR3b3JrX2lkX3JvdXRpbmdfcG9saWN5X3JlcXVlc3QgaW1wb3J0ICgKICAgIFNldE5ldHdvcmtJZFJvdXRpbmdQb2xpY3lSZXF1ZXN0LAopCgoKY2xhc3MgVGVzdFNldE5ldHdvcmtJZFJvdXRpbmdQb2xpY3lSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNldE5ldHdvcmtJZFJvdXRpbmdQb2xpY3lSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTZXROZXR3b3JrSWRSb3V0aW5nUG9saWN5UmVxdWVzdDoKICAgICAgICAiIiJUZXN0IFNldE5ldHdvcmtJZFJvdXRpbmdQb2xpY3lSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNldE5ldHdvcmtJZFJvdXRpbmdQb2xpY3lSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU2V0TmV0d29ya0lkUm91dGluZ1BvbGljeVJlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTZXROZXR3b3JrSWRSb3V0aW5nUG9saWN5UmVxdWVzdCgKICAgICAgICAgICAgICAgIHJvdXRpbmdfcG9saWN5ID0gewogICAgICAgICAgICAgICAgICAgICdrZXknIDogbnVsbAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTZXROZXR3b3JrSWRSb3V0aW5nUG9saWN5UmVxdWVzdCgKICAgICAgICAgICAgICAgIHJvdXRpbmdfcG9saWN5ID0gewogICAgICAgICAgICAgICAgICAgICdrZXknIDogbnVsbAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U2V0TmV0d29ya0lkUm91dGluZ1BvbGljeVJlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTZXROZXR3b3JrSWRSb3V0aW5nUG9saWN5UmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_set_ota_status_request.py b/test/test_set_ota_status_request.py index 3a2b69fc..391b9d47 100644 --- a/test/test_set_ota_status_request.py +++ b/test/test_set_ota_status_request.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.set_ota_status_request import SetOtaStatusRequest - - -class TestSetOtaStatusRequest(unittest.TestCase): - """SetOtaStatusRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SetOtaStatusRequest: - """Test SetOtaStatusRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SetOtaStatusRequest` - """ - model = SetOtaStatusRequest() - if include_optional: - return SetOtaStatusRequest( - enabled = True - ) - else: - return SetOtaStatusRequest( - ) - """ - - def testSetOtaStatusRequest(self): - """Test SetOtaStatusRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9vdGFfc3RhdHVzX3JlcXVlc3QgaW1wb3J0IFNldE90YVN0YXR1c1JlcXVlc3QKCgpjbGFzcyBUZXN0U2V0T3RhU3RhdHVzUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTZXRPdGFTdGF0dXNSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTZXRPdGFTdGF0dXNSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgU2V0T3RhU3RhdHVzUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTZXRPdGFTdGF0dXNSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU2V0T3RhU3RhdHVzUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNldE90YVN0YXR1c1JlcXVlc3QoCiAgICAgICAgICAgICAgICBlbmFibGVkID0gVHJ1ZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNldE90YVN0YXR1c1JlcXVlc3QoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U2V0T3RhU3RhdHVzUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFNldE90YVN0YXR1c1JlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_set_ota_status_response.py b/test/test_set_ota_status_response.py index 6af3e6ae..365fd249 100644 --- a/test/test_set_ota_status_response.py +++ b/test/test_set_ota_status_response.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.set_ota_status_response import SetOtaStatusResponse - - -class TestSetOtaStatusResponse(unittest.TestCase): - """SetOtaStatusResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SetOtaStatusResponse: - """Test SetOtaStatusResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SetOtaStatusResponse` - """ - model = SetOtaStatusResponse() - if include_optional: - return SetOtaStatusResponse( - message = 'No change needed. The current status is false' - ) - else: - return SetOtaStatusResponse( - ) - """ - - def testSetOtaStatusResponse(self): - """Test SetOtaStatusResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9vdGFfc3RhdHVzX3Jlc3BvbnNlIGltcG9ydCBTZXRPdGFTdGF0dXNSZXNwb25zZQoKCmNsYXNzIFRlc3RTZXRPdGFTdGF0dXNSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTZXRPdGFTdGF0dXNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU2V0T3RhU3RhdHVzUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBTZXRPdGFTdGF0dXNSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTZXRPdGFTdGF0dXNSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNldE90YVN0YXR1c1Jlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU2V0T3RhU3RhdHVzUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ05vIGNoYW5nZSBuZWVkZWQuIFRoZSBjdXJyZW50IHN0YXR1cyBpcyBmYWxzZScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTZXRPdGFTdGF0dXNSZXNwb25zZSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTZXRPdGFTdGF0dXNSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFNldE90YVN0YXR1c1Jlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_set_ota_status_response_one_of.py b/test/test_set_ota_status_response_one_of.py index 2fcaa877..ef357489 100644 --- a/test/test_set_ota_status_response_one_of.py +++ b/test/test_set_ota_status_response_one_of.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.set_ota_status_response_one_of import SetOtaStatusResponseOneOf - - -class TestSetOtaStatusResponseOneOf(unittest.TestCase): - """SetOtaStatusResponseOneOf unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SetOtaStatusResponseOneOf: - """Test SetOtaStatusResponseOneOf - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SetOtaStatusResponseOneOf` - """ - model = SetOtaStatusResponseOneOf() - if include_optional: - return SetOtaStatusResponseOneOf( - message = 'No change needed. The current status is false' - ) - else: - return SetOtaStatusResponseOneOf( - ) - """ - - def testSetOtaStatusResponseOneOf(self): - """Test SetOtaStatusResponseOneOf""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9vdGFfc3RhdHVzX3Jlc3BvbnNlX29uZV9vZiBpbXBvcnQgU2V0T3RhU3RhdHVzUmVzcG9uc2VPbmVPZgoKCmNsYXNzIFRlc3RTZXRPdGFTdGF0dXNSZXNwb25zZU9uZU9mKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNldE90YVN0YXR1c1Jlc3BvbnNlT25lT2YgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNldE90YVN0YXR1c1Jlc3BvbnNlT25lT2Y6CiAgICAgICAgIiIiVGVzdCBTZXRPdGFTdGF0dXNSZXNwb25zZU9uZU9mCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNldE90YVN0YXR1c1Jlc3BvbnNlT25lT2ZgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTZXRPdGFTdGF0dXNSZXNwb25zZU9uZU9mKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU2V0T3RhU3RhdHVzUmVzcG9uc2VPbmVPZigKICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnTm8gY2hhbmdlIG5lZWRlZC4gVGhlIGN1cnJlbnQgc3RhdHVzIGlzIGZhbHNlJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNldE90YVN0YXR1c1Jlc3BvbnNlT25lT2YoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U2V0T3RhU3RhdHVzUmVzcG9uc2VPbmVPZihzZWxmKToKICAgICAgICAiIiJUZXN0IFNldE90YVN0YXR1c1Jlc3BvbnNlT25lT2YiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_set_routing_policy_request.py b/test/test_set_routing_policy_request.py index 651412fb..d82aa142 100644 --- a/test/test_set_routing_policy_request.py +++ b/test/test_set_routing_policy_request.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.set_routing_policy_request import SetRoutingPolicyRequest - - -class TestSetRoutingPolicyRequest(unittest.TestCase): - """SetRoutingPolicyRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SetRoutingPolicyRequest: - """Test SetRoutingPolicyRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SetRoutingPolicyRequest` - """ - model = SetRoutingPolicyRequest() - if include_optional: - return SetRoutingPolicyRequest( - routing_policy = { - 'key' : null - } - ) - else: - return SetRoutingPolicyRequest( - routing_policy = { - 'key' : null - }, - ) - """ - - def testSetRoutingPolicyRequest(self): - """Test SetRoutingPolicyRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9yb3V0aW5nX3BvbGljeV9yZXF1ZXN0IGltcG9ydCBTZXRSb3V0aW5nUG9saWN5UmVxdWVzdAoKCmNsYXNzIFRlc3RTZXRSb3V0aW5nUG9saWN5UmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTZXRSb3V0aW5nUG9saWN5UmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU2V0Um91dGluZ1BvbGljeVJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBTZXRSb3V0aW5nUG9saWN5UmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTZXRSb3V0aW5nUG9saWN5UmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNldFJvdXRpbmdQb2xpY3lSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU2V0Um91dGluZ1BvbGljeVJlcXVlc3QoCiAgICAgICAgICAgICAgICByb3V0aW5nX3BvbGljeSA9IHsKICAgICAgICAgICAgICAgICAgICAna2V5JyA6IG51bGwKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU2V0Um91dGluZ1BvbGljeVJlcXVlc3QoCiAgICAgICAgICAgICAgICByb3V0aW5nX3BvbGljeSA9IHsKICAgICAgICAgICAgICAgICAgICAna2V5JyA6IG51bGwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNldFJvdXRpbmdQb2xpY3lSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgU2V0Um91dGluZ1BvbGljeVJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_set_routing_policy_response.py b/test/test_set_routing_policy_response.py index 6efdfe05..2e54d569 100644 --- a/test/test_set_routing_policy_response.py +++ b/test/test_set_routing_policy_response.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.set_routing_policy_response import SetRoutingPolicyResponse - - -class TestSetRoutingPolicyResponse(unittest.TestCase): - """SetRoutingPolicyResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SetRoutingPolicyResponse: - """Test SetRoutingPolicyResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SetRoutingPolicyResponse` - """ - model = SetRoutingPolicyResponse() - if include_optional: - return SetRoutingPolicyResponse( - success = True - ) - else: - return SetRoutingPolicyResponse( - success = True, - ) - """ - - def testSetRoutingPolicyResponse(self): - """Test SetRoutingPolicyResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldF9yb3V0aW5nX3BvbGljeV9yZXNwb25zZSBpbXBvcnQgU2V0Um91dGluZ1BvbGljeVJlc3BvbnNlCgoKY2xhc3MgVGVzdFNldFJvdXRpbmdQb2xpY3lSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTZXRSb3V0aW5nUG9saWN5UmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNldFJvdXRpbmdQb2xpY3lSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFNldFJvdXRpbmdQb2xpY3lSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTZXRSb3V0aW5nUG9saWN5UmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTZXRSb3V0aW5nUG9saWN5UmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTZXRSb3V0aW5nUG9saWN5UmVzcG9uc2UoCiAgICAgICAgICAgICAgICBzdWNjZXNzID0gVHJ1ZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNldFJvdXRpbmdQb2xpY3lSZXNwb25zZSgKICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBUcnVlLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNldFJvdXRpbmdQb2xpY3lSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFNldFJvdXRpbmdQb2xpY3lSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_settlement.py b/test/test_settlement.py index 49c47834..e7d2a1c7 100644 --- a/test/test_settlement.py +++ b/test/test_settlement.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.settlement import Settlement - - -class TestSettlement(unittest.TestCase): - """Settlement unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Settlement: - """Test Settlement - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Settlement` - """ - model = Settlement() - if include_optional: - return Settlement( - type = 'DVP', - destination_account = None, - source_account = None - ) - else: - return Settlement( - type = 'DVP', - destination_account = None, - source_account = None, - ) - """ - - def testSettlement(self): - """Test Settlement""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldHRsZW1lbnQgaW1wb3J0IFNldHRsZW1lbnQKCgpjbGFzcyBUZXN0U2V0dGxlbWVudCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTZXR0bGVtZW50IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTZXR0bGVtZW50OgogICAgICAgICIiIlRlc3QgU2V0dGxlbWVudAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTZXR0bGVtZW50YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU2V0dGxlbWVudCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNldHRsZW1lbnQoCiAgICAgICAgICAgICAgICB0eXBlID0gJ0RWUCcsCiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl9hY2NvdW50ID0gTm9uZSwKICAgICAgICAgICAgICAgIHNvdXJjZV9hY2NvdW50ID0gTm9uZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNldHRsZW1lbnQoCiAgICAgICAgICAgICAgICB0eXBlID0gJ0RWUCcsCiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl9hY2NvdW50ID0gTm9uZSwKICAgICAgICAgICAgICAgIHNvdXJjZV9hY2NvdW50ID0gTm9uZSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTZXR0bGVtZW50KHNlbGYpOgogICAgICAgICIiIlRlc3QgU2V0dGxlbWVudCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_settlement_request_body.py b/test/test_settlement_request_body.py index e8694b18..6955cdae 100644 --- a/test/test_settlement_request_body.py +++ b/test/test_settlement_request_body.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.settlement_request_body import SettlementRequestBody - - -class TestSettlementRequestBody(unittest.TestCase): - """SettlementRequestBody unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SettlementRequestBody: - """Test SettlementRequestBody - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SettlementRequestBody` - """ - model = SettlementRequestBody() - if include_optional: - return SettlementRequestBody( - main_exchange_account_id = '' - ) - else: - return SettlementRequestBody( - ) - """ - - def testSettlementRequestBody(self): - """Test SettlementRequestBody""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldHRsZW1lbnRfcmVxdWVzdF9ib2R5IGltcG9ydCBTZXR0bGVtZW50UmVxdWVzdEJvZHkKCgpjbGFzcyBUZXN0U2V0dGxlbWVudFJlcXVlc3RCb2R5KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNldHRsZW1lbnRSZXF1ZXN0Qm9keSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU2V0dGxlbWVudFJlcXVlc3RCb2R5OgogICAgICAgICIiIlRlc3QgU2V0dGxlbWVudFJlcXVlc3RCb2R5CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNldHRsZW1lbnRSZXF1ZXN0Qm9keWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNldHRsZW1lbnRSZXF1ZXN0Qm9keSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNldHRsZW1lbnRSZXF1ZXN0Qm9keSgKICAgICAgICAgICAgICAgIG1haW5fZXhjaGFuZ2VfYWNjb3VudF9pZCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU2V0dGxlbWVudFJlcXVlc3RCb2R5KAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNldHRsZW1lbnRSZXF1ZXN0Qm9keShzZWxmKToKICAgICAgICAiIiJUZXN0IFNldHRsZW1lbnRSZXF1ZXN0Qm9keSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_settlement_response.py b/test/test_settlement_response.py index 4ef48dcd..cf62c8fc 100644 --- a/test/test_settlement_response.py +++ b/test/test_settlement_response.py @@ -1,73 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.settlement_response import SettlementResponse - - -class TestSettlementResponse(unittest.TestCase): - """SettlementResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SettlementResponse: - """Test SettlementResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SettlementResponse` - """ - model = SettlementResponse() - if include_optional: - return SettlementResponse( - id = '', - initiator = '', - exchange_reply = '', - fireblocks_initiated_transactions = None, - exchange_requested_transactions = fireblocks.models.exchange_settlement_transactions_response.ExchangeSettlementTransactionsResponse( - to_exchange = [ - fireblocks.models.to_exchange_transaction.ToExchangeTransaction( - asset_id = '', - amount = '', - dst_address = '', - dst_tag = '', ) - ], - to_collateral = [ - fireblocks.models.to_collateral_transaction.ToCollateralTransaction( - asset = '', - amount = '', - src_address = '', - src_tag = '', - fee = '', ) - ], ) - ) - else: - return SettlementResponse( - ) - """ - - def testSettlementResponse(self): - """Test SettlementResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldHRsZW1lbnRfcmVzcG9uc2UgaW1wb3J0IFNldHRsZW1lbnRSZXNwb25zZQoKCmNsYXNzIFRlc3RTZXR0bGVtZW50UmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU2V0dGxlbWVudFJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTZXR0bGVtZW50UmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBTZXR0bGVtZW50UmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU2V0dGxlbWVudFJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU2V0dGxlbWVudFJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU2V0dGxlbWVudFJlc3BvbnNlKAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIGluaXRpYXRvciA9ICcnLAogICAgICAgICAgICAgICAgZXhjaGFuZ2VfcmVwbHkgPSAnJywKICAgICAgICAgICAgICAgIGZpcmVibG9ja3NfaW5pdGlhdGVkX3RyYW5zYWN0aW9ucyA9IE5vbmUsCiAgICAgICAgICAgICAgICBleGNoYW5nZV9yZXF1ZXN0ZWRfdHJhbnNhY3Rpb25zID0gZmlyZWJsb2Nrcy5tb2RlbHMuZXhjaGFuZ2Vfc2V0dGxlbWVudF90cmFuc2FjdGlvbnNfcmVzcG9uc2UuRXhjaGFuZ2VTZXR0bGVtZW50VHJhbnNhY3Rpb25zUmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgdG9fZXhjaGFuZ2UgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRvX2V4Y2hhbmdlX3RyYW5zYWN0aW9uLlRvRXhjaGFuZ2VUcmFuc2FjdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0X2FkZHJlc3MgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3RfdGFnID0gJycsICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgdG9fY29sbGF0ZXJhbCA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudG9fY29sbGF0ZXJhbF90cmFuc2FjdGlvbi5Ub0NvbGxhdGVyYWxUcmFuc2FjdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjX2FkZHJlc3MgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNfdGFnID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlID0gJycsICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNldHRsZW1lbnRSZXNwb25zZSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTZXR0bGVtZW50UmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTZXR0bGVtZW50UmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_settlement_source_account.py b/test/test_settlement_source_account.py index a6b849cc..f437f5f2 100644 --- a/test/test_settlement_source_account.py +++ b/test/test_settlement_source_account.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.settlement_source_account import SettlementSourceAccount - - -class TestSettlementSourceAccount(unittest.TestCase): - """SettlementSourceAccount unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SettlementSourceAccount: - """Test SettlementSourceAccount - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SettlementSourceAccount` - """ - model = SettlementSourceAccount() - if include_optional: - return SettlementSourceAccount( - type = 'EXTERNAL', - account_id = '', - sender_information = None - ) - else: - return SettlementSourceAccount( - type = 'EXTERNAL', - account_id = '', - ) - """ - - def testSettlementSourceAccount(self): - """Test SettlementSourceAccount""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldHRsZW1lbnRfc291cmNlX2FjY291bnQgaW1wb3J0IFNldHRsZW1lbnRTb3VyY2VBY2NvdW50CgoKY2xhc3MgVGVzdFNldHRsZW1lbnRTb3VyY2VBY2NvdW50KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNldHRsZW1lbnRTb3VyY2VBY2NvdW50IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTZXR0bGVtZW50U291cmNlQWNjb3VudDoKICAgICAgICAiIiJUZXN0IFNldHRsZW1lbnRTb3VyY2VBY2NvdW50CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNldHRsZW1lbnRTb3VyY2VBY2NvdW50YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU2V0dGxlbWVudFNvdXJjZUFjY291bnQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTZXR0bGVtZW50U291cmNlQWNjb3VudCgKICAgICAgICAgICAgICAgIHR5cGUgPSAnRVhURVJOQUwnLAogICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLAogICAgICAgICAgICAgICAgc2VuZGVyX2luZm9ybWF0aW9uID0gTm9uZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNldHRsZW1lbnRTb3VyY2VBY2NvdW50KAogICAgICAgICAgICAgICAgdHlwZSA9ICdFWFRFUk5BTCcsCiAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U2V0dGxlbWVudFNvdXJjZUFjY291bnQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTZXR0bGVtZW50U291cmNlQWNjb3VudCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_settlement_type_enum.py b/test/test_settlement_type_enum.py new file mode 100644 index 00000000..2a873b35 --- /dev/null +++ b/test/test_settlement_type_enum.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNldHRsZW1lbnRfdHlwZV9lbnVtIGltcG9ydCBTZXR0bGVtZW50VHlwZUVudW0KCgpjbGFzcyBUZXN0U2V0dGxlbWVudFR5cGVFbnVtKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNldHRsZW1lbnRUeXBlRW51bSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RTZXR0bGVtZW50VHlwZUVudW0oc2VsZik6CiAgICAgICAgIiIiVGVzdCBTZXR0bGVtZW50VHlwZUVudW0iIiIKICAgICAgICAjIGluc3QgPSBTZXR0bGVtZW50VHlwZUVudW0oKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_side.py b/test/test_side.py index 00fc8c7d..e93b640b 100644 --- a/test/test_side.py +++ b/test/test_side.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.side import Side - - -class TestSide(unittest.TestCase): - """Side unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testSide(self): - """Test Side""" - # inst = Side() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNpZGUgaW1wb3J0IFNpZGUKCgpjbGFzcyBUZXN0U2lkZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTaWRlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdFNpZGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTaWRlIiIiCiAgICAgICAgIyBpbnN0ID0gU2lkZSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_signed_message.py b/test/test_signed_message.py index 7ba9202c..1908ec6e 100644 --- a/test/test_signed_message.py +++ b/test/test_signed_message.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.signed_message import SignedMessage - - -class TestSignedMessage(unittest.TestCase): - """SignedMessage unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SignedMessage: - """Test SignedMessage - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SignedMessage` - """ - model = SignedMessage() - if include_optional: - return SignedMessage( - content = '', - algorithm = 'MPC_ECDSA_SECP256K1', - derivation_path = [ - 1.337 - ], - signature = fireblocks.models.signed_message_signature.SignedMessage_signature( - full_sig = '', - r = '', - s = '', - v = 1.337, ), - public_key = '' - ) - else: - return SignedMessage( - ) - """ - - def testSignedMessage(self): - """Test SignedMessage""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNpZ25lZF9tZXNzYWdlIGltcG9ydCBTaWduZWRNZXNzYWdlCgoKY2xhc3MgVGVzdFNpZ25lZE1lc3NhZ2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU2lnbmVkTWVzc2FnZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU2lnbmVkTWVzc2FnZToKICAgICAgICAiIiJUZXN0IFNpZ25lZE1lc3NhZ2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU2lnbmVkTWVzc2FnZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNpZ25lZE1lc3NhZ2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTaWduZWRNZXNzYWdlKAogICAgICAgICAgICAgICAgY29udGVudCA9ICcnLAogICAgICAgICAgICAgICAgYWxnb3JpdGhtID0gJ01QQ19FQ0RTQV9TRUNQMjU2SzEnLAogICAgICAgICAgICAgICAgZGVyaXZhdGlvbl9wYXRoID0gWwogICAgICAgICAgICAgICAgICAgIDEuMzM3CiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHNpZ25hdHVyZSA9IGZpcmVibG9ja3MubW9kZWxzLnNpZ25lZF9tZXNzYWdlX3NpZ25hdHVyZS5TaWduZWRNZXNzYWdlX3NpZ25hdHVyZSgKICAgICAgICAgICAgICAgICAgICBmdWxsX3NpZyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICByID0gJycsIAogICAgICAgICAgICAgICAgICAgIHMgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgdiA9IDEuMzM3LCApLAogICAgICAgICAgICAgICAgcHVibGljX2tleSA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU2lnbmVkTWVzc2FnZSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTaWduZWRNZXNzYWdlKHNlbGYpOgogICAgICAgICIiIlRlc3QgU2lnbmVkTWVzc2FnZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_signed_message_signature.py b/test/test_signed_message_signature.py index ddb0f16f..3bb2b9c7 100644 --- a/test/test_signed_message_signature.py +++ b/test/test_signed_message_signature.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.signed_message_signature import SignedMessageSignature - - -class TestSignedMessageSignature(unittest.TestCase): - """SignedMessageSignature unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SignedMessageSignature: - """Test SignedMessageSignature - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SignedMessageSignature` - """ - model = SignedMessageSignature() - if include_optional: - return SignedMessageSignature( - full_sig = '', - r = '', - s = '', - v = 1.337 - ) - else: - return SignedMessageSignature( - ) - """ - - def testSignedMessageSignature(self): - """Test SignedMessageSignature""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNpZ25lZF9tZXNzYWdlX3NpZ25hdHVyZSBpbXBvcnQgU2lnbmVkTWVzc2FnZVNpZ25hdHVyZQoKCmNsYXNzIFRlc3RTaWduZWRNZXNzYWdlU2lnbmF0dXJlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNpZ25lZE1lc3NhZ2VTaWduYXR1cmUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNpZ25lZE1lc3NhZ2VTaWduYXR1cmU6CiAgICAgICAgIiIiVGVzdCBTaWduZWRNZXNzYWdlU2lnbmF0dXJlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNpZ25lZE1lc3NhZ2VTaWduYXR1cmVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTaWduZWRNZXNzYWdlU2lnbmF0dXJlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU2lnbmVkTWVzc2FnZVNpZ25hdHVyZSgKICAgICAgICAgICAgICAgIGZ1bGxfc2lnID0gJycsCiAgICAgICAgICAgICAgICByID0gJycsCiAgICAgICAgICAgICAgICBzID0gJycsCiAgICAgICAgICAgICAgICB2ID0gMS4zMzcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTaWduZWRNZXNzYWdlU2lnbmF0dXJlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNpZ25lZE1lc3NhZ2VTaWduYXR1cmUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTaWduZWRNZXNzYWdlU2lnbmF0dXJlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_signing_key_dto.py b/test/test_signing_key_dto.py index c085e1a5..17e68ddf 100644 --- a/test/test_signing_key_dto.py +++ b/test/test_signing_key_dto.py @@ -1,69 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.signing_key_dto import SigningKeyDto - - -class TestSigningKeyDto(unittest.TestCase): - """SigningKeyDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SigningKeyDto: - """Test SigningKeyDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SigningKeyDto` - """ - model = SigningKeyDto() - if include_optional: - return SigningKeyDto( - key_id = '46a92767-5f93-4a46-9eed-f012196bb4fc', - signing_device_key_id = 'MyKey1', - public_key_pem = '-----BEGIN PUBLIC KEY ... END PUBLIC KEY-----', - algorithm = 'ECDSA_SECP256K1', - enabled = True, - vault_account_id = 10, - agent_user_id = 'd18847b5-1df6-4c46-8f99-5cce47284529', - created_at = 124757537 - ) - else: - return SigningKeyDto( - key_id = '46a92767-5f93-4a46-9eed-f012196bb4fc', - signing_device_key_id = 'MyKey1', - public_key_pem = '-----BEGIN PUBLIC KEY ... END PUBLIC KEY-----', - algorithm = 'ECDSA_SECP256K1', - enabled = True, - vault_account_id = 10, - agent_user_id = 'd18847b5-1df6-4c46-8f99-5cce47284529', - created_at = 124757537, - ) - """ - - def testSigningKeyDto(self): - """Test SigningKeyDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNpZ25pbmdfa2V5X2R0byBpbXBvcnQgU2lnbmluZ0tleUR0bwoKCmNsYXNzIFRlc3RTaWduaW5nS2V5RHRvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNpZ25pbmdLZXlEdG8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNpZ25pbmdLZXlEdG86CiAgICAgICAgIiIiVGVzdCBTaWduaW5nS2V5RHRvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNpZ25pbmdLZXlEdG9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTaWduaW5nS2V5RHRvKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU2lnbmluZ0tleUR0bygKICAgICAgICAgICAgICAgIGtleV9pZCA9ICc0NmE5Mjc2Ny01ZjkzLTRhNDYtOWVlZC1mMDEyMTk2YmI0ZmMnLAogICAgICAgICAgICAgICAgc2lnbmluZ19kZXZpY2Vfa2V5X2lkID0gJ015S2V5MScsCiAgICAgICAgICAgICAgICBwdWJsaWNfa2V5X3BlbSA9ICctLS0tLUJFR0lOIFBVQkxJQyBLRVkgLi4uIEVORCBQVUJMSUMgS0VZLS0tLS0nLAogICAgICAgICAgICAgICAgYWxnb3JpdGhtID0gJ0VDRFNBX1NFQ1AyNTZLMScsCiAgICAgICAgICAgICAgICBlbmFibGVkID0gVHJ1ZSwKICAgICAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQgPSAxMCwKICAgICAgICAgICAgICAgIGFnZW50X3VzZXJfaWQgPSAnZDE4ODQ3YjUtMWRmNi00YzQ2LThmOTktNWNjZTQ3Mjg0NTI5JywKICAgICAgICAgICAgICAgIGNyZWF0ZWRfYXQgPSAxMjQ3NTc1MzcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTaWduaW5nS2V5RHRvKAogICAgICAgICAgICAgICAga2V5X2lkID0gJzQ2YTkyNzY3LTVmOTMtNGE0Ni05ZWVkLWYwMTIxOTZiYjRmYycsCiAgICAgICAgICAgICAgICBzaWduaW5nX2RldmljZV9rZXlfaWQgPSAnTXlLZXkxJywKICAgICAgICAgICAgICAgIHB1YmxpY19rZXlfcGVtID0gJy0tLS0tQkVHSU4gUFVCTElDIEtFWSAuLi4gRU5EIFBVQkxJQyBLRVktLS0tLScsCiAgICAgICAgICAgICAgICBhbGdvcml0aG0gPSAnRUNEU0FfU0VDUDI1NksxJywKICAgICAgICAgICAgICAgIGVuYWJsZWQgPSBUcnVlLAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9IDEwLAogICAgICAgICAgICAgICAgYWdlbnRfdXNlcl9pZCA9ICdkMTg4NDdiNS0xZGY2LTRjNDYtOGY5OS01Y2NlNDcyODQ1MjknLAogICAgICAgICAgICAgICAgY3JlYXRlZF9hdCA9IDEyNDc1NzUzNywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTaWduaW5nS2V5RHRvKHNlbGYpOgogICAgICAgICIiIlRlc3QgU2lnbmluZ0tleUR0byIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_smart_transfer_api.py b/test/test_smart_transfer_api.py index fd5a6ca7..8928c8e4 100644 --- a/test/test_smart_transfer_api.py +++ b/test/test_smart_transfer_api.py @@ -1,165 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.smart_transfer_api import SmartTransferApi - - -class TestSmartTransferApi(unittest.TestCase): - """SmartTransferApi unit test stubs""" - - def setUp(self) -> None: - self.api = SmartTransferApi() - - def tearDown(self) -> None: - pass - - def test_approve_dv_p_ticket_term(self) -> None: - """Test case for approve_dv_p_ticket_term - - Set funding source and approval - """ - pass - - def test_cancel_ticket(self) -> None: - """Test case for cancel_ticket - - Cancel Ticket - """ - pass - - def test_create_ticket(self) -> None: - """Test case for create_ticket - - Create Ticket - """ - pass - - def test_create_ticket_term(self) -> None: - """Test case for create_ticket_term - - Create leg (term) - """ - pass - - def test_find_ticket_by_id(self) -> None: - """Test case for find_ticket_by_id - - Search Ticket by ID - """ - pass - - def test_find_ticket_term_by_id(self) -> None: - """Test case for find_ticket_term_by_id - - Get Smart Transfer ticket term - """ - pass - - def test_fulfill_ticket(self) -> None: - """Test case for fulfill_ticket - - Fund ticket manually - """ - pass - - def test_fund_dvp_ticket(self) -> None: - """Test case for fund_dvp_ticket - - Fund dvp ticket - """ - pass - - def test_fund_ticket_term(self) -> None: - """Test case for fund_ticket_term - - Define funding source - """ - pass - - def test_get_smart_transfer_statistic(self) -> None: - """Test case for get_smart_transfer_statistic - - Get smart transfers statistic - """ - pass - - def test_get_smart_transfer_user_groups(self) -> None: - """Test case for get_smart_transfer_user_groups - - Get user group - """ - pass - - def test_manually_fund_ticket_term(self) -> None: - """Test case for manually_fund_ticket_term - - Manually add term transaction - """ - pass - - def test_remove_ticket_term(self) -> None: - """Test case for remove_ticket_term - - Delete ticket leg (term) - """ - pass - - def test_search_tickets(self) -> None: - """Test case for search_tickets - - Find Ticket - """ - pass - - def test_set_external_ref_id(self) -> None: - """Test case for set_external_ref_id - - Add external ref. ID - """ - pass - - def test_set_ticket_expiration(self) -> None: - """Test case for set_ticket_expiration - - Set expiration - """ - pass - - def test_set_user_groups(self) -> None: - """Test case for set_user_groups - - Set user group - """ - pass - - def test_submit_ticket(self) -> None: - """Test case for submit_ticket - - Submit ticket - """ - pass - - def test_update_ticket_term(self) -> None: - """Test case for update_ticket_term - - Update ticket leg (term) - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLnNtYXJ0X3RyYW5zZmVyX2FwaSBpbXBvcnQgU21hcnRUcmFuc2ZlckFwaQoKCmNsYXNzIFRlc3RTbWFydFRyYW5zZmVyQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNtYXJ0VHJhbnNmZXJBcGkgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgc2VsZi5hcGkgPSBTbWFydFRyYW5zZmVyQXBpKCkKCiAgICBkZWYgdGVhckRvd24oc2VsZikgLT4gTm9uZToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfYXBwcm92ZV9kdl9wX3RpY2tldF90ZXJtKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBhcHByb3ZlX2R2X3BfdGlja2V0X3Rlcm0KCiAgICAgICAgU2V0IGZ1bmRpbmcgc291cmNlIGFuZCBhcHByb3ZhbAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9jYW5jZWxfdGlja2V0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBjYW5jZWxfdGlja2V0CgogICAgICAgIENhbmNlbCBUaWNrZXQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY3JlYXRlX3RpY2tldChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgY3JlYXRlX3RpY2tldAoKICAgICAgICBDcmVhdGUgVGlja2V0CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2NyZWF0ZV90aWNrZXRfdGVybShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgY3JlYXRlX3RpY2tldF90ZXJtCgogICAgICAgIENyZWF0ZSBsZWcgKHRlcm0pCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2ZpbmRfdGlja2V0X2J5X2lkKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBmaW5kX3RpY2tldF9ieV9pZAoKICAgICAgICBTZWFyY2ggVGlja2V0IGJ5IElECiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2ZpbmRfdGlja2V0X3Rlcm1fYnlfaWQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGZpbmRfdGlja2V0X3Rlcm1fYnlfaWQKCiAgICAgICAgR2V0IFNtYXJ0IFRyYW5zZmVyIHRpY2tldCB0ZXJtCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2Z1bGZpbGxfdGlja2V0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBmdWxmaWxsX3RpY2tldAoKICAgICAgICBGdW5kIHRpY2tldCBtYW51YWxseQogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9mdW5kX2R2cF90aWNrZXQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGZ1bmRfZHZwX3RpY2tldAoKICAgICAgICBGdW5kIGR2cCB0aWNrZXQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZnVuZF90aWNrZXRfdGVybShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZnVuZF90aWNrZXRfdGVybQoKICAgICAgICBEZWZpbmUgZnVuZGluZyBzb3VyY2UKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3NtYXJ0X3RyYW5zZmVyX3N0YXRpc3RpYyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X3NtYXJ0X3RyYW5zZmVyX3N0YXRpc3RpYwoKICAgICAgICBHZXQgc21hcnQgdHJhbnNmZXJzIHN0YXRpc3RpYwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfc21hcnRfdHJhbnNmZXJfdXNlcl9ncm91cHMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9zbWFydF90cmFuc2Zlcl91c2VyX2dyb3VwcwoKICAgICAgICBHZXQgdXNlciBncm91cAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9tYW51YWxseV9mdW5kX3RpY2tldF90ZXJtKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBtYW51YWxseV9mdW5kX3RpY2tldF90ZXJtCgogICAgICAgIE1hbnVhbGx5IGFkZCB0ZXJtIHRyYW5zYWN0aW9uCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3JlbW92ZV90aWNrZXRfdGVybShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgcmVtb3ZlX3RpY2tldF90ZXJtCgogICAgICAgIERlbGV0ZSB0aWNrZXQgbGVnICh0ZXJtKQogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9zZWFyY2hfdGlja2V0cyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3Igc2VhcmNoX3RpY2tldHMKCiAgICAgICAgRmluZCBUaWNrZXQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3Rfc2V0X2V4dGVybmFsX3JlZl9pZChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3Igc2V0X2V4dGVybmFsX3JlZl9pZAoKICAgICAgICBBZGQgZXh0ZXJuYWwgcmVmLiBJRAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9zZXRfdGlja2V0X2V4cGlyYXRpb24oc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHNldF90aWNrZXRfZXhwaXJhdGlvbgoKICAgICAgICBTZXQgZXhwaXJhdGlvbgogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9zZXRfdXNlcl9ncm91cHMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHNldF91c2VyX2dyb3VwcwoKICAgICAgICBTZXQgdXNlciBncm91cAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9zdWJtaXRfdGlja2V0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBzdWJtaXRfdGlja2V0CgogICAgICAgIFN1Ym1pdCB0aWNrZXQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfdXBkYXRlX3RpY2tldF90ZXJtKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciB1cGRhdGVfdGlja2V0X3Rlcm0KCiAgICAgICAgVXBkYXRlIHRpY2tldCBsZWcgKHRlcm0pCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_smart_transfer_approve_term.py b/test/test_smart_transfer_approve_term.py index 318ede4a..d20cde6b 100644 --- a/test/test_smart_transfer_approve_term.py +++ b/test/test_smart_transfer_approve_term.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_approve_term import SmartTransferApproveTerm - - -class TestSmartTransferApproveTerm(unittest.TestCase): - """SmartTransferApproveTerm unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferApproveTerm: - """Test SmartTransferApproveTerm - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferApproveTerm` - """ - model = SmartTransferApproveTerm() - if include_optional: - return SmartTransferApproveTerm( - asset = 'USDC', - amount = '133.789161216184', - src_id = '2', - fee = '0.001', - fee_level = 'MEDIUM', - note = 'Transaction note' - ) - else: - return SmartTransferApproveTerm( - asset = 'USDC', - amount = '133.789161216184', - src_id = '2', - ) - """ - - def testSmartTransferApproveTerm(self): - """Test SmartTransferApproveTerm""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2FwcHJvdmVfdGVybSBpbXBvcnQgU21hcnRUcmFuc2ZlckFwcHJvdmVUZXJtCgoKY2xhc3MgVGVzdFNtYXJ0VHJhbnNmZXJBcHByb3ZlVGVybSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTbWFydFRyYW5zZmVyQXBwcm92ZVRlcm0gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNtYXJ0VHJhbnNmZXJBcHByb3ZlVGVybToKICAgICAgICAiIiJUZXN0IFNtYXJ0VHJhbnNmZXJBcHByb3ZlVGVybQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTbWFydFRyYW5zZmVyQXBwcm92ZVRlcm1gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTbWFydFRyYW5zZmVyQXBwcm92ZVRlcm0oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTbWFydFRyYW5zZmVyQXBwcm92ZVRlcm0oCiAgICAgICAgICAgICAgICBhc3NldCA9ICdVU0RDJywKICAgICAgICAgICAgICAgIGFtb3VudCA9ICcxMzMuNzg5MTYxMjE2MTg0JywKICAgICAgICAgICAgICAgIHNyY19pZCA9ICcyJywKICAgICAgICAgICAgICAgIGZlZSA9ICcwLjAwMScsCiAgICAgICAgICAgICAgICBmZWVfbGV2ZWwgPSAnTUVESVVNJywKICAgICAgICAgICAgICAgIG5vdGUgPSAnVHJhbnNhY3Rpb24gbm90ZScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTbWFydFRyYW5zZmVyQXBwcm92ZVRlcm0oCiAgICAgICAgICAgICAgICBhc3NldCA9ICdVU0RDJywKICAgICAgICAgICAgICAgIGFtb3VudCA9ICcxMzMuNzg5MTYxMjE2MTg0JywKICAgICAgICAgICAgICAgIHNyY19pZCA9ICcyJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTbWFydFRyYW5zZmVyQXBwcm92ZVRlcm0oc2VsZik6CiAgICAgICAgIiIiVGVzdCBTbWFydFRyYW5zZmVyQXBwcm92ZVRlcm0iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_smart_transfer_bad_request_response.py b/test/test_smart_transfer_bad_request_response.py index 800a5ee0..fd5680aa 100644 --- a/test/test_smart_transfer_bad_request_response.py +++ b/test/test_smart_transfer_bad_request_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_bad_request_response import ( - SmartTransferBadRequestResponse, -) - - -class TestSmartTransferBadRequestResponse(unittest.TestCase): - """SmartTransferBadRequestResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferBadRequestResponse: - """Test SmartTransferBadRequestResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferBadRequestResponse` - """ - model = SmartTransferBadRequestResponse() - if include_optional: - return SmartTransferBadRequestResponse( - message = 'Your request contains invalid data', - code = '2e7a7a5d-c85c-4ea5-9adf-668cba8b4eb4' - ) - else: - return SmartTransferBadRequestResponse( - message = 'Your request contains invalid data', - code = '2e7a7a5d-c85c-4ea5-9adf-668cba8b4eb4', - ) - """ - - def testSmartTransferBadRequestResponse(self): - """Test SmartTransferBadRequestResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2JhZF9yZXF1ZXN0X3Jlc3BvbnNlIGltcG9ydCAoCiAgICBTbWFydFRyYW5zZmVyQmFkUmVxdWVzdFJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdFNtYXJ0VHJhbnNmZXJCYWRSZXF1ZXN0UmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU21hcnRUcmFuc2ZlckJhZFJlcXVlc3RSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU21hcnRUcmFuc2ZlckJhZFJlcXVlc3RSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFNtYXJ0VHJhbnNmZXJCYWRSZXF1ZXN0UmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU21hcnRUcmFuc2ZlckJhZFJlcXVlc3RSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNtYXJ0VHJhbnNmZXJCYWRSZXF1ZXN0UmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTbWFydFRyYW5zZmVyQmFkUmVxdWVzdFJlc3BvbnNlKAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdZb3VyIHJlcXVlc3QgY29udGFpbnMgaW52YWxpZCBkYXRhJywKICAgICAgICAgICAgICAgIGNvZGUgPSAnMmU3YTdhNWQtYzg1Yy00ZWE1LTlhZGYtNjY4Y2JhOGI0ZWI0JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNtYXJ0VHJhbnNmZXJCYWRSZXF1ZXN0UmVzcG9uc2UoCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ1lvdXIgcmVxdWVzdCBjb250YWlucyBpbnZhbGlkIGRhdGEnLAogICAgICAgICAgICAgICAgY29kZSA9ICcyZTdhN2E1ZC1jODVjLTRlYTUtOWFkZi02NjhjYmE4YjRlYjQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNtYXJ0VHJhbnNmZXJCYWRSZXF1ZXN0UmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTbWFydFRyYW5zZmVyQmFkUmVxdWVzdFJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_smart_transfer_coin_statistic.py b/test/test_smart_transfer_coin_statistic.py index 0db2472c..300ed761 100644 --- a/test/test_smart_transfer_coin_statistic.py +++ b/test/test_smart_transfer_coin_statistic.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_coin_statistic import SmartTransferCoinStatistic - - -class TestSmartTransferCoinStatistic(unittest.TestCase): - """SmartTransferCoinStatistic unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferCoinStatistic: - """Test SmartTransferCoinStatistic - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferCoinStatistic` - """ - model = SmartTransferCoinStatistic() - if include_optional: - return SmartTransferCoinStatistic( - asset = 'BTC', - amount = '15' - ) - else: - return SmartTransferCoinStatistic( - ) - """ - - def testSmartTransferCoinStatistic(self): - """Test SmartTransferCoinStatistic""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2NvaW5fc3RhdGlzdGljIGltcG9ydCBTbWFydFRyYW5zZmVyQ29pblN0YXRpc3RpYwoKCmNsYXNzIFRlc3RTbWFydFRyYW5zZmVyQ29pblN0YXRpc3RpYyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTbWFydFRyYW5zZmVyQ29pblN0YXRpc3RpYyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU21hcnRUcmFuc2ZlckNvaW5TdGF0aXN0aWM6CiAgICAgICAgIiIiVGVzdCBTbWFydFRyYW5zZmVyQ29pblN0YXRpc3RpYwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTbWFydFRyYW5zZmVyQ29pblN0YXRpc3RpY2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNtYXJ0VHJhbnNmZXJDb2luU3RhdGlzdGljKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU21hcnRUcmFuc2ZlckNvaW5TdGF0aXN0aWMoCiAgICAgICAgICAgICAgICBhc3NldCA9ICdCVEMnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gJzE1JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNtYXJ0VHJhbnNmZXJDb2luU3RhdGlzdGljKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNtYXJ0VHJhbnNmZXJDb2luU3RhdGlzdGljKHNlbGYpOgogICAgICAgICIiIlRlc3QgU21hcnRUcmFuc2ZlckNvaW5TdGF0aXN0aWMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_smart_transfer_create_ticket.py b/test/test_smart_transfer_create_ticket.py index ab1a237b..05e8084b 100644 --- a/test/test_smart_transfer_create_ticket.py +++ b/test/test_smart_transfer_create_ticket.py @@ -1,68 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_create_ticket import SmartTransferCreateTicket - - -class TestSmartTransferCreateTicket(unittest.TestCase): - """SmartTransferCreateTicket unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferCreateTicket: - """Test SmartTransferCreateTicket - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferCreateTicket` - """ - model = SmartTransferCreateTicket() - if include_optional: - return SmartTransferCreateTicket( - created_by_network_id = '', - type = 'ASYNC', - expires_in = 1, - terms = [ - fireblocks.models.smart_transfer_create_ticket_term.SmartTransferCreateTicketTerm( - asset = 'BTC', - amount = '133.789161216184', - from_network_id = '947c6115-1f5f-4fb4-9fd6-a1f9dee14670', - to_network_id = '5d009697-c29b-48e0-aff8-1f4305d19dc2', ) - ], - external_ref_id = '', - note = '', - submit = True - ) - else: - return SmartTransferCreateTicket( - created_by_network_id = '', - type = 'ASYNC', - ) - """ - - def testSmartTransferCreateTicket(self): - """Test SmartTransferCreateTicket""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2NyZWF0ZV90aWNrZXQgaW1wb3J0IFNtYXJ0VHJhbnNmZXJDcmVhdGVUaWNrZXQKCgpjbGFzcyBUZXN0U21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0OgogICAgICAgICIiIlRlc3QgU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNtYXJ0VHJhbnNmZXJDcmVhdGVUaWNrZXQoCiAgICAgICAgICAgICAgICBjcmVhdGVkX2J5X25ldHdvcmtfaWQgPSAnJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnQVNZTkMnLAogICAgICAgICAgICAgICAgZXhwaXJlc19pbiA9IDEsCiAgICAgICAgICAgICAgICB0ZXJtcyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9jcmVhdGVfdGlja2V0X3Rlcm0uU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldFRlcm0oCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0ID0gJ0JUQycsIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnMTMzLjc4OTE2MTIxNjE4NCcsIAogICAgICAgICAgICAgICAgICAgICAgICBmcm9tX25ldHdvcmtfaWQgPSAnOTQ3YzYxMTUtMWY1Zi00ZmI0LTlmZDYtYTFmOWRlZTE0NjcwJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRvX25ldHdvcmtfaWQgPSAnNWQwMDk2OTctYzI5Yi00OGUwLWFmZjgtMWY0MzA1ZDE5ZGMyJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBleHRlcm5hbF9yZWZfaWQgPSAnJywKICAgICAgICAgICAgICAgIG5vdGUgPSAnJywKICAgICAgICAgICAgICAgIHN1Ym1pdCA9IFRydWUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0KAogICAgICAgICAgICAgICAgY3JlYXRlZF9ieV9uZXR3b3JrX2lkID0gJycsCiAgICAgICAgICAgICAgICB0eXBlID0gJ0FTWU5DJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0KHNlbGYpOgogICAgICAgICIiIlRlc3QgU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_smart_transfer_create_ticket_term.py b/test/test_smart_transfer_create_ticket_term.py index a0e98166..bc00b6b4 100644 --- a/test/test_smart_transfer_create_ticket_term.py +++ b/test/test_smart_transfer_create_ticket_term.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_create_ticket_term import ( - SmartTransferCreateTicketTerm, -) - - -class TestSmartTransferCreateTicketTerm(unittest.TestCase): - """SmartTransferCreateTicketTerm unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferCreateTicketTerm: - """Test SmartTransferCreateTicketTerm - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferCreateTicketTerm` - """ - model = SmartTransferCreateTicketTerm() - if include_optional: - return SmartTransferCreateTicketTerm( - asset = 'BTC', - amount = '133.789161216184', - from_network_id = '947c6115-1f5f-4fb4-9fd6-a1f9dee14670', - to_network_id = '5d009697-c29b-48e0-aff8-1f4305d19dc2' - ) - else: - return SmartTransferCreateTicketTerm( - asset = 'BTC', - amount = '133.789161216184', - from_network_id = '947c6115-1f5f-4fb4-9fd6-a1f9dee14670', - to_network_id = '5d009697-c29b-48e0-aff8-1f4305d19dc2', - ) - """ - - def testSmartTransferCreateTicketTerm(self): - """Test SmartTransferCreateTicketTerm""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2NyZWF0ZV90aWNrZXRfdGVybSBpbXBvcnQgKAogICAgU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldFRlcm0sCikKCgpjbGFzcyBUZXN0U21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldFRlcm0odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldFRlcm0gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNtYXJ0VHJhbnNmZXJDcmVhdGVUaWNrZXRUZXJtOgogICAgICAgICIiIlRlc3QgU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldFRlcm0KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldFRlcm1gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0VGVybSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNtYXJ0VHJhbnNmZXJDcmVhdGVUaWNrZXRUZXJtKAogICAgICAgICAgICAgICAgYXNzZXQgPSAnQlRDJywKICAgICAgICAgICAgICAgIGFtb3VudCA9ICcxMzMuNzg5MTYxMjE2MTg0JywKICAgICAgICAgICAgICAgIGZyb21fbmV0d29ya19pZCA9ICc5NDdjNjExNS0xZjVmLTRmYjQtOWZkNi1hMWY5ZGVlMTQ2NzAnLAogICAgICAgICAgICAgICAgdG9fbmV0d29ya19pZCA9ICc1ZDAwOTY5Ny1jMjliLTQ4ZTAtYWZmOC0xZjQzMDVkMTlkYzInCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldFRlcm0oCiAgICAgICAgICAgICAgICBhc3NldCA9ICdCVEMnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gJzEzMy43ODkxNjEyMTYxODQnLAogICAgICAgICAgICAgICAgZnJvbV9uZXR3b3JrX2lkID0gJzk0N2M2MTE1LTFmNWYtNGZiNC05ZmQ2LWExZjlkZWUxNDY3MCcsCiAgICAgICAgICAgICAgICB0b19uZXR3b3JrX2lkID0gJzVkMDA5Njk3LWMyOWItNDhlMC1hZmY4LTFmNDMwNWQxOWRjMicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U21hcnRUcmFuc2ZlckNyZWF0ZVRpY2tldFRlcm0oc2VsZik6CiAgICAgICAgIiIiVGVzdCBTbWFydFRyYW5zZmVyQ3JlYXRlVGlja2V0VGVybSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_smart_transfer_forbidden_response.py b/test/test_smart_transfer_forbidden_response.py index 751f8006..f9b9dcbd 100644 --- a/test/test_smart_transfer_forbidden_response.py +++ b/test/test_smart_transfer_forbidden_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_forbidden_response import ( - SmartTransferForbiddenResponse, -) - - -class TestSmartTransferForbiddenResponse(unittest.TestCase): - """SmartTransferForbiddenResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferForbiddenResponse: - """Test SmartTransferForbiddenResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferForbiddenResponse` - """ - model = SmartTransferForbiddenResponse() - if include_optional: - return SmartTransferForbiddenResponse( - message = 'You do not have permission to execute this action', - code = '3002' - ) - else: - return SmartTransferForbiddenResponse( - message = 'You do not have permission to execute this action', - code = '3002', - ) - """ - - def testSmartTransferForbiddenResponse(self): - """Test SmartTransferForbiddenResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2ZvcmJpZGRlbl9yZXNwb25zZSBpbXBvcnQgKAogICAgU21hcnRUcmFuc2ZlckZvcmJpZGRlblJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdFNtYXJ0VHJhbnNmZXJGb3JiaWRkZW5SZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTbWFydFRyYW5zZmVyRm9yYmlkZGVuUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNtYXJ0VHJhbnNmZXJGb3JiaWRkZW5SZXNwb25zZToKICAgICAgICAiIiJUZXN0IFNtYXJ0VHJhbnNmZXJGb3JiaWRkZW5SZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTbWFydFRyYW5zZmVyRm9yYmlkZGVuUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTbWFydFRyYW5zZmVyRm9yYmlkZGVuUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTbWFydFRyYW5zZmVyRm9yYmlkZGVuUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ1lvdSBkbyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGV4ZWN1dGUgdGhpcyBhY3Rpb24nLAogICAgICAgICAgICAgICAgY29kZSA9ICczMDAyJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNtYXJ0VHJhbnNmZXJGb3JiaWRkZW5SZXNwb25zZSgKICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnWW91IGRvIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gZXhlY3V0ZSB0aGlzIGFjdGlvbicsCiAgICAgICAgICAgICAgICBjb2RlID0gJzMwMDInLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNtYXJ0VHJhbnNmZXJGb3JiaWRkZW5SZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFNtYXJ0VHJhbnNmZXJGb3JiaWRkZW5SZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_smart_transfer_fund_dvp_ticket.py b/test/test_smart_transfer_fund_dvp_ticket.py index f98336da..e16cef78 100644 --- a/test/test_smart_transfer_fund_dvp_ticket.py +++ b/test/test_smart_transfer_fund_dvp_ticket.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_fund_dvp_ticket import SmartTransferFundDvpTicket - - -class TestSmartTransferFundDvpTicket(unittest.TestCase): - """SmartTransferFundDvpTicket unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferFundDvpTicket: - """Test SmartTransferFundDvpTicket - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferFundDvpTicket` - """ - model = SmartTransferFundDvpTicket() - if include_optional: - return SmartTransferFundDvpTicket( - fee = '0.001', - fee_level = 'MEDIUM', - note = 'Transaction note' - ) - else: - return SmartTransferFundDvpTicket( - ) - """ - - def testSmartTransferFundDvpTicket(self): - """Test SmartTransferFundDvpTicket""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2Z1bmRfZHZwX3RpY2tldCBpbXBvcnQgU21hcnRUcmFuc2ZlckZ1bmREdnBUaWNrZXQKCgpjbGFzcyBUZXN0U21hcnRUcmFuc2ZlckZ1bmREdnBUaWNrZXQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU21hcnRUcmFuc2ZlckZ1bmREdnBUaWNrZXQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNtYXJ0VHJhbnNmZXJGdW5kRHZwVGlja2V0OgogICAgICAgICIiIlRlc3QgU21hcnRUcmFuc2ZlckZ1bmREdnBUaWNrZXQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU21hcnRUcmFuc2ZlckZ1bmREdnBUaWNrZXRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTbWFydFRyYW5zZmVyRnVuZER2cFRpY2tldCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNtYXJ0VHJhbnNmZXJGdW5kRHZwVGlja2V0KAogICAgICAgICAgICAgICAgZmVlID0gJzAuMDAxJywKICAgICAgICAgICAgICAgIGZlZV9sZXZlbCA9ICdNRURJVU0nLAogICAgICAgICAgICAgICAgbm90ZSA9ICdUcmFuc2FjdGlvbiBub3RlJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNtYXJ0VHJhbnNmZXJGdW5kRHZwVGlja2V0KAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNtYXJ0VHJhbnNmZXJGdW5kRHZwVGlja2V0KHNlbGYpOgogICAgICAgICIiIlRlc3QgU21hcnRUcmFuc2ZlckZ1bmREdnBUaWNrZXQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_smart_transfer_fund_term.py b/test/test_smart_transfer_fund_term.py index 209bc130..e09dc54e 100644 --- a/test/test_smart_transfer_fund_term.py +++ b/test/test_smart_transfer_fund_term.py @@ -1,66 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_fund_term import SmartTransferFundTerm - - -class TestSmartTransferFundTerm(unittest.TestCase): - """SmartTransferFundTerm unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferFundTerm: - """Test SmartTransferFundTerm - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferFundTerm` - """ - model = SmartTransferFundTerm() - if include_optional: - return SmartTransferFundTerm( - asset = 'BTC', - amount = '133.789161216184', - network_connection_id = '0805153d-e77d-4f9b-8818-e507eeb2d122', - src_id = '2', - src_type = 'VAULT_ACCOUNT', - fee = '0.001', - fee_level = 'MEDIUM', - note = 'Transaction note' - ) - else: - return SmartTransferFundTerm( - asset = 'BTC', - amount = '133.789161216184', - network_connection_id = '0805153d-e77d-4f9b-8818-e507eeb2d122', - src_id = '2', - src_type = 'VAULT_ACCOUNT', - ) - """ - - def testSmartTransferFundTerm(self): - """Test SmartTransferFundTerm""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2Z1bmRfdGVybSBpbXBvcnQgU21hcnRUcmFuc2ZlckZ1bmRUZXJtCgoKY2xhc3MgVGVzdFNtYXJ0VHJhbnNmZXJGdW5kVGVybSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTbWFydFRyYW5zZmVyRnVuZFRlcm0gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNtYXJ0VHJhbnNmZXJGdW5kVGVybToKICAgICAgICAiIiJUZXN0IFNtYXJ0VHJhbnNmZXJGdW5kVGVybQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTbWFydFRyYW5zZmVyRnVuZFRlcm1gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTbWFydFRyYW5zZmVyRnVuZFRlcm0oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTbWFydFRyYW5zZmVyRnVuZFRlcm0oCiAgICAgICAgICAgICAgICBhc3NldCA9ICdCVEMnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gJzEzMy43ODkxNjEyMTYxODQnLAogICAgICAgICAgICAgICAgbmV0d29ya19jb25uZWN0aW9uX2lkID0gJzA4MDUxNTNkLWU3N2QtNGY5Yi04ODE4LWU1MDdlZWIyZDEyMicsCiAgICAgICAgICAgICAgICBzcmNfaWQgPSAnMicsCiAgICAgICAgICAgICAgICBzcmNfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIGZlZSA9ICcwLjAwMScsCiAgICAgICAgICAgICAgICBmZWVfbGV2ZWwgPSAnTUVESVVNJywKICAgICAgICAgICAgICAgIG5vdGUgPSAnVHJhbnNhY3Rpb24gbm90ZScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTbWFydFRyYW5zZmVyRnVuZFRlcm0oCiAgICAgICAgICAgICAgICBhc3NldCA9ICdCVEMnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gJzEzMy43ODkxNjEyMTYxODQnLAogICAgICAgICAgICAgICAgbmV0d29ya19jb25uZWN0aW9uX2lkID0gJzA4MDUxNTNkLWU3N2QtNGY5Yi04ODE4LWU1MDdlZWIyZDEyMicsCiAgICAgICAgICAgICAgICBzcmNfaWQgPSAnMicsCiAgICAgICAgICAgICAgICBzcmNfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTbWFydFRyYW5zZmVyRnVuZFRlcm0oc2VsZik6CiAgICAgICAgIiIiVGVzdCBTbWFydFRyYW5zZmVyRnVuZFRlcm0iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_smart_transfer_manually_fund_term.py b/test/test_smart_transfer_manually_fund_term.py index 59e4cef4..f64f21d0 100644 --- a/test/test_smart_transfer_manually_fund_term.py +++ b/test/test_smart_transfer_manually_fund_term.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_manually_fund_term import ( - SmartTransferManuallyFundTerm, -) - - -class TestSmartTransferManuallyFundTerm(unittest.TestCase): - """SmartTransferManuallyFundTerm unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferManuallyFundTerm: - """Test SmartTransferManuallyFundTerm - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferManuallyFundTerm` - """ - model = SmartTransferManuallyFundTerm() - if include_optional: - return SmartTransferManuallyFundTerm( - tx_hash = '' - ) - else: - return SmartTransferManuallyFundTerm( - tx_hash = '', - ) - """ - - def testSmartTransferManuallyFundTerm(self): - """Test SmartTransferManuallyFundTerm""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX21hbnVhbGx5X2Z1bmRfdGVybSBpbXBvcnQgKAogICAgU21hcnRUcmFuc2Zlck1hbnVhbGx5RnVuZFRlcm0sCikKCgpjbGFzcyBUZXN0U21hcnRUcmFuc2Zlck1hbnVhbGx5RnVuZFRlcm0odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU21hcnRUcmFuc2Zlck1hbnVhbGx5RnVuZFRlcm0gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNtYXJ0VHJhbnNmZXJNYW51YWxseUZ1bmRUZXJtOgogICAgICAgICIiIlRlc3QgU21hcnRUcmFuc2Zlck1hbnVhbGx5RnVuZFRlcm0KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU21hcnRUcmFuc2Zlck1hbnVhbGx5RnVuZFRlcm1gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTbWFydFRyYW5zZmVyTWFudWFsbHlGdW5kVGVybSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNtYXJ0VHJhbnNmZXJNYW51YWxseUZ1bmRUZXJtKAogICAgICAgICAgICAgICAgdHhfaGFzaCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU21hcnRUcmFuc2Zlck1hbnVhbGx5RnVuZFRlcm0oCiAgICAgICAgICAgICAgICB0eF9oYXNoID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U21hcnRUcmFuc2Zlck1hbnVhbGx5RnVuZFRlcm0oc2VsZik6CiAgICAgICAgIiIiVGVzdCBTbWFydFRyYW5zZmVyTWFudWFsbHlGdW5kVGVybSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_smart_transfer_not_found_response.py b/test/test_smart_transfer_not_found_response.py index a54cd5c0..1c2b8316 100644 --- a/test/test_smart_transfer_not_found_response.py +++ b/test/test_smart_transfer_not_found_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_not_found_response import ( - SmartTransferNotFoundResponse, -) - - -class TestSmartTransferNotFoundResponse(unittest.TestCase): - """SmartTransferNotFoundResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferNotFoundResponse: - """Test SmartTransferNotFoundResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferNotFoundResponse` - """ - model = SmartTransferNotFoundResponse() - if include_optional: - return SmartTransferNotFoundResponse( - message = 'Requested entity not found', - code = 'c943bdb8-ada0-4ba6-8645-74fcf188a10f' - ) - else: - return SmartTransferNotFoundResponse( - message = 'Requested entity not found', - code = 'c943bdb8-ada0-4ba6-8645-74fcf188a10f', - ) - """ - - def testSmartTransferNotFoundResponse(self): - """Test SmartTransferNotFoundResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX25vdF9mb3VuZF9yZXNwb25zZSBpbXBvcnQgKAogICAgU21hcnRUcmFuc2Zlck5vdEZvdW5kUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0U21hcnRUcmFuc2Zlck5vdEZvdW5kUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU21hcnRUcmFuc2Zlck5vdEZvdW5kUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNtYXJ0VHJhbnNmZXJOb3RGb3VuZFJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgU21hcnRUcmFuc2Zlck5vdEZvdW5kUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU21hcnRUcmFuc2Zlck5vdEZvdW5kUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTbWFydFRyYW5zZmVyTm90Rm91bmRSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNtYXJ0VHJhbnNmZXJOb3RGb3VuZFJlc3BvbnNlKAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdSZXF1ZXN0ZWQgZW50aXR5IG5vdCBmb3VuZCcsCiAgICAgICAgICAgICAgICBjb2RlID0gJ2M5NDNiZGI4LWFkYTAtNGJhNi04NjQ1LTc0ZmNmMTg4YTEwZicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTbWFydFRyYW5zZmVyTm90Rm91bmRSZXNwb25zZSgKICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnUmVxdWVzdGVkIGVudGl0eSBub3QgZm91bmQnLAogICAgICAgICAgICAgICAgY29kZSA9ICdjOTQzYmRiOC1hZGEwLTRiYTYtODY0NS03NGZjZjE4OGExMGYnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNtYXJ0VHJhbnNmZXJOb3RGb3VuZFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgU21hcnRUcmFuc2Zlck5vdEZvdW5kUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_smart_transfer_set_ticket_expiration.py b/test/test_smart_transfer_set_ticket_expiration.py index e9783e7c..83c81a40 100644 --- a/test/test_smart_transfer_set_ticket_expiration.py +++ b/test/test_smart_transfer_set_ticket_expiration.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_set_ticket_expiration import ( - SmartTransferSetTicketExpiration, -) - - -class TestSmartTransferSetTicketExpiration(unittest.TestCase): - """SmartTransferSetTicketExpiration unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferSetTicketExpiration: - """Test SmartTransferSetTicketExpiration - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferSetTicketExpiration` - """ - model = SmartTransferSetTicketExpiration() - if include_optional: - return SmartTransferSetTicketExpiration( - expires_in = 1 - ) - else: - return SmartTransferSetTicketExpiration( - expires_in = 1, - ) - """ - - def testSmartTransferSetTicketExpiration(self): - """Test SmartTransferSetTicketExpiration""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXhwaXJhdGlvbiBpbXBvcnQgKAogICAgU21hcnRUcmFuc2ZlclNldFRpY2tldEV4cGlyYXRpb24sCikKCgpjbGFzcyBUZXN0U21hcnRUcmFuc2ZlclNldFRpY2tldEV4cGlyYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU21hcnRUcmFuc2ZlclNldFRpY2tldEV4cGlyYXRpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHBpcmF0aW9uOgogICAgICAgICIiIlRlc3QgU21hcnRUcmFuc2ZlclNldFRpY2tldEV4cGlyYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU21hcnRUcmFuc2ZlclNldFRpY2tldEV4cGlyYXRpb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTbWFydFRyYW5zZmVyU2V0VGlja2V0RXhwaXJhdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHBpcmF0aW9uKAogICAgICAgICAgICAgICAgZXhwaXJlc19pbiA9IDEKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTbWFydFRyYW5zZmVyU2V0VGlja2V0RXhwaXJhdGlvbigKICAgICAgICAgICAgICAgIGV4cGlyZXNfaW4gPSAxLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHBpcmF0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgU21hcnRUcmFuc2ZlclNldFRpY2tldEV4cGlyYXRpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_smart_transfer_set_ticket_external_id.py b/test/test_smart_transfer_set_ticket_external_id.py index 2e954508..90a83377 100644 --- a/test/test_smart_transfer_set_ticket_external_id.py +++ b/test/test_smart_transfer_set_ticket_external_id.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_set_ticket_external_id import ( - SmartTransferSetTicketExternalId, -) - - -class TestSmartTransferSetTicketExternalId(unittest.TestCase): - """SmartTransferSetTicketExternalId unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferSetTicketExternalId: - """Test SmartTransferSetTicketExternalId - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferSetTicketExternalId` - """ - model = SmartTransferSetTicketExternalId() - if include_optional: - return SmartTransferSetTicketExternalId( - external_ref_id = '01234' - ) - else: - return SmartTransferSetTicketExternalId( - external_ref_id = '01234', - ) - """ - - def testSmartTransferSetTicketExternalId(self): - """Test SmartTransferSetTicketExternalId""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3NldF90aWNrZXRfZXh0ZXJuYWxfaWQgaW1wb3J0ICgKICAgIFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHRlcm5hbElkLAopCgoKY2xhc3MgVGVzdFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHRlcm5hbElkKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHRlcm5hbElkIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTbWFydFRyYW5zZmVyU2V0VGlja2V0RXh0ZXJuYWxJZDoKICAgICAgICAiIiJUZXN0IFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHRlcm5hbElkCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNtYXJ0VHJhbnNmZXJTZXRUaWNrZXRFeHRlcm5hbElkYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU21hcnRUcmFuc2ZlclNldFRpY2tldEV4dGVybmFsSWQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTbWFydFRyYW5zZmVyU2V0VGlja2V0RXh0ZXJuYWxJZCgKICAgICAgICAgICAgICAgIGV4dGVybmFsX3JlZl9pZCA9ICcwMTIzNCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTbWFydFRyYW5zZmVyU2V0VGlja2V0RXh0ZXJuYWxJZCgKICAgICAgICAgICAgICAgIGV4dGVybmFsX3JlZl9pZCA9ICcwMTIzNCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U21hcnRUcmFuc2ZlclNldFRpY2tldEV4dGVybmFsSWQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTbWFydFRyYW5zZmVyU2V0VGlja2V0RXh0ZXJuYWxJZCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_smart_transfer_set_user_groups.py b/test/test_smart_transfer_set_user_groups.py index f53654c7..2cc7fbe2 100644 --- a/test/test_smart_transfer_set_user_groups.py +++ b/test/test_smart_transfer_set_user_groups.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_set_user_groups import SmartTransferSetUserGroups - - -class TestSmartTransferSetUserGroups(unittest.TestCase): - """SmartTransferSetUserGroups unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferSetUserGroups: - """Test SmartTransferSetUserGroups - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferSetUserGroups` - """ - model = SmartTransferSetUserGroups() - if include_optional: - return SmartTransferSetUserGroups( - user_group_ids = [ - '' - ] - ) - else: - return SmartTransferSetUserGroups( - user_group_ids = [ - '' - ], - ) - """ - - def testSmartTransferSetUserGroups(self): - """Test SmartTransferSetUserGroups""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3NldF91c2VyX2dyb3VwcyBpbXBvcnQgU21hcnRUcmFuc2ZlclNldFVzZXJHcm91cHMKCgpjbGFzcyBUZXN0U21hcnRUcmFuc2ZlclNldFVzZXJHcm91cHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU21hcnRUcmFuc2ZlclNldFVzZXJHcm91cHMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNtYXJ0VHJhbnNmZXJTZXRVc2VyR3JvdXBzOgogICAgICAgICIiIlRlc3QgU21hcnRUcmFuc2ZlclNldFVzZXJHcm91cHMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU21hcnRUcmFuc2ZlclNldFVzZXJHcm91cHNgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTbWFydFRyYW5zZmVyU2V0VXNlckdyb3VwcygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNtYXJ0VHJhbnNmZXJTZXRVc2VyR3JvdXBzKAogICAgICAgICAgICAgICAgdXNlcl9ncm91cF9pZHMgPSBbCiAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU21hcnRUcmFuc2ZlclNldFVzZXJHcm91cHMoCiAgICAgICAgICAgICAgICB1c2VyX2dyb3VwX2lkcyA9IFsKICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U21hcnRUcmFuc2ZlclNldFVzZXJHcm91cHMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTbWFydFRyYW5zZmVyU2V0VXNlckdyb3VwcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_smart_transfer_statistic.py b/test/test_smart_transfer_statistic.py index cd5099f2..201695fd 100644 --- a/test/test_smart_transfer_statistic.py +++ b/test/test_smart_transfer_statistic.py @@ -1,85 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_statistic import SmartTransferStatistic - - -class TestSmartTransferStatistic(unittest.TestCase): - """SmartTransferStatistic unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferStatistic: - """Test SmartTransferStatistic - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferStatistic` - """ - model = SmartTransferStatistic() - if include_optional: - return SmartTransferStatistic( - inflow = fireblocks.models.smart_transfer_statistic_inflow.SmartTransferStatistic_inflow( - coins = [ - fireblocks.models.smart_transfer_coin_statistic.SmartTransferCoinStatistic( - asset = 'BTC', - amount = '15', ) - ], - ticket_count = 4, ), - outflow = fireblocks.models.smart_transfer_statistic_outflow.SmartTransferStatistic_outflow( - coins = [ - fireblocks.models.smart_transfer_coin_statistic.SmartTransferCoinStatistic( - asset = 'BTC', - amount = '15', ) - ], - ticket_count = 4, ), - total_active_tickets = 5, - total_inactive_tickets = 5 - ) - else: - return SmartTransferStatistic( - inflow = fireblocks.models.smart_transfer_statistic_inflow.SmartTransferStatistic_inflow( - coins = [ - fireblocks.models.smart_transfer_coin_statistic.SmartTransferCoinStatistic( - asset = 'BTC', - amount = '15', ) - ], - ticket_count = 4, ), - outflow = fireblocks.models.smart_transfer_statistic_outflow.SmartTransferStatistic_outflow( - coins = [ - fireblocks.models.smart_transfer_coin_statistic.SmartTransferCoinStatistic( - asset = 'BTC', - amount = '15', ) - ], - ticket_count = 4, ), - total_active_tickets = 5, - total_inactive_tickets = 5, - ) - """ - - def testSmartTransferStatistic(self): - """Test SmartTransferStatistic""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3N0YXRpc3RpYyBpbXBvcnQgU21hcnRUcmFuc2ZlclN0YXRpc3RpYwoKCmNsYXNzIFRlc3RTbWFydFRyYW5zZmVyU3RhdGlzdGljKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNtYXJ0VHJhbnNmZXJTdGF0aXN0aWMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWM6CiAgICAgICAgIiIiVGVzdCBTbWFydFRyYW5zZmVyU3RhdGlzdGljCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWNgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTbWFydFRyYW5zZmVyU3RhdGlzdGljKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU21hcnRUcmFuc2ZlclN0YXRpc3RpYygKICAgICAgICAgICAgICAgIGluZmxvdyA9IGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3N0YXRpc3RpY19pbmZsb3cuU21hcnRUcmFuc2ZlclN0YXRpc3RpY19pbmZsb3coCiAgICAgICAgICAgICAgICAgICAgY29pbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2NvaW5fc3RhdGlzdGljLlNtYXJ0VHJhbnNmZXJDb2luU3RhdGlzdGljKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXQgPSAnQlRDJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnMTUnLCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgIHRpY2tldF9jb3VudCA9IDQsICksCiAgICAgICAgICAgICAgICBvdXRmbG93ID0gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfc3RhdGlzdGljX291dGZsb3cuU21hcnRUcmFuc2ZlclN0YXRpc3RpY19vdXRmbG93KAogICAgICAgICAgICAgICAgICAgIGNvaW5zID0gWwogICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9jb2luX3N0YXRpc3RpYy5TbWFydFRyYW5zZmVyQ29pblN0YXRpc3RpYygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0ID0gJ0JUQycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJzE1JywgKQogICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICB0aWNrZXRfY291bnQgPSA0LCApLAogICAgICAgICAgICAgICAgdG90YWxfYWN0aXZlX3RpY2tldHMgPSA1LAogICAgICAgICAgICAgICAgdG90YWxfaW5hY3RpdmVfdGlja2V0cyA9IDUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTbWFydFRyYW5zZmVyU3RhdGlzdGljKAogICAgICAgICAgICAgICAgaW5mbG93ID0gZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfc3RhdGlzdGljX2luZmxvdy5TbWFydFRyYW5zZmVyU3RhdGlzdGljX2luZmxvdygKICAgICAgICAgICAgICAgICAgICBjb2lucyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfY29pbl9zdGF0aXN0aWMuU21hcnRUcmFuc2ZlckNvaW5TdGF0aXN0aWMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldCA9ICdCVEMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcxNScsICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgdGlja2V0X2NvdW50ID0gNCwgKSwKICAgICAgICAgICAgICAgIG91dGZsb3cgPSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9zdGF0aXN0aWNfb3V0Zmxvdy5TbWFydFRyYW5zZmVyU3RhdGlzdGljX291dGZsb3coCiAgICAgICAgICAgICAgICAgICAgY29pbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX2NvaW5fc3RhdGlzdGljLlNtYXJ0VHJhbnNmZXJDb2luU3RhdGlzdGljKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXQgPSAnQlRDJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnMTUnLCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgIHRpY2tldF9jb3VudCA9IDQsICksCiAgICAgICAgICAgICAgICB0b3RhbF9hY3RpdmVfdGlja2V0cyA9IDUsCiAgICAgICAgICAgICAgICB0b3RhbF9pbmFjdGl2ZV90aWNrZXRzID0gNSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTbWFydFRyYW5zZmVyU3RhdGlzdGljKHNlbGYpOgogICAgICAgICIiIlRlc3QgU21hcnRUcmFuc2ZlclN0YXRpc3RpYyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_smart_transfer_statistic_inflow.py b/test/test_smart_transfer_statistic_inflow.py index 3e35885f..f3d3fbae 100644 --- a/test/test_smart_transfer_statistic_inflow.py +++ b/test/test_smart_transfer_statistic_inflow.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_statistic_inflow import ( - SmartTransferStatisticInflow, -) - - -class TestSmartTransferStatisticInflow(unittest.TestCase): - """SmartTransferStatisticInflow unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferStatisticInflow: - """Test SmartTransferStatisticInflow - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferStatisticInflow` - """ - model = SmartTransferStatisticInflow() - if include_optional: - return SmartTransferStatisticInflow( - coins = [ - fireblocks.models.smart_transfer_coin_statistic.SmartTransferCoinStatistic( - asset = 'BTC', - amount = '15', ) - ], - ticket_count = 4 - ) - else: - return SmartTransferStatisticInflow( - ) - """ - - def testSmartTransferStatisticInflow(self): - """Test SmartTransferStatisticInflow""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3N0YXRpc3RpY19pbmZsb3cgaW1wb3J0ICgKICAgIFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWNJbmZsb3csCikKCgpjbGFzcyBUZXN0U21hcnRUcmFuc2ZlclN0YXRpc3RpY0luZmxvdyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTbWFydFRyYW5zZmVyU3RhdGlzdGljSW5mbG93IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTbWFydFRyYW5zZmVyU3RhdGlzdGljSW5mbG93OgogICAgICAgICIiIlRlc3QgU21hcnRUcmFuc2ZlclN0YXRpc3RpY0luZmxvdwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTbWFydFRyYW5zZmVyU3RhdGlzdGljSW5mbG93YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU21hcnRUcmFuc2ZlclN0YXRpc3RpY0luZmxvdygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWNJbmZsb3coCiAgICAgICAgICAgICAgICBjb2lucyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9jb2luX3N0YXRpc3RpYy5TbWFydFRyYW5zZmVyQ29pblN0YXRpc3RpYygKICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXQgPSAnQlRDJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcxNScsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgdGlja2V0X2NvdW50ID0gNAogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWNJbmZsb3coCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U21hcnRUcmFuc2ZlclN0YXRpc3RpY0luZmxvdyhzZWxmKToKICAgICAgICAiIiJUZXN0IFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWNJbmZsb3ciIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_smart_transfer_statistic_outflow.py b/test/test_smart_transfer_statistic_outflow.py index d2e1a78e..87475740 100644 --- a/test/test_smart_transfer_statistic_outflow.py +++ b/test/test_smart_transfer_statistic_outflow.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_statistic_outflow import ( - SmartTransferStatisticOutflow, -) - - -class TestSmartTransferStatisticOutflow(unittest.TestCase): - """SmartTransferStatisticOutflow unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferStatisticOutflow: - """Test SmartTransferStatisticOutflow - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferStatisticOutflow` - """ - model = SmartTransferStatisticOutflow() - if include_optional: - return SmartTransferStatisticOutflow( - coins = [ - fireblocks.models.smart_transfer_coin_statistic.SmartTransferCoinStatistic( - asset = 'BTC', - amount = '15', ) - ], - ticket_count = 4 - ) - else: - return SmartTransferStatisticOutflow( - ) - """ - - def testSmartTransferStatisticOutflow(self): - """Test SmartTransferStatisticOutflow""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3N0YXRpc3RpY19vdXRmbG93IGltcG9ydCAoCiAgICBTbWFydFRyYW5zZmVyU3RhdGlzdGljT3V0ZmxvdywKKQoKCmNsYXNzIFRlc3RTbWFydFRyYW5zZmVyU3RhdGlzdGljT3V0Zmxvdyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTbWFydFRyYW5zZmVyU3RhdGlzdGljT3V0ZmxvdyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU21hcnRUcmFuc2ZlclN0YXRpc3RpY091dGZsb3c6CiAgICAgICAgIiIiVGVzdCBTbWFydFRyYW5zZmVyU3RhdGlzdGljT3V0ZmxvdwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTbWFydFRyYW5zZmVyU3RhdGlzdGljT3V0Zmxvd2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWNPdXRmbG93KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU21hcnRUcmFuc2ZlclN0YXRpc3RpY091dGZsb3coCiAgICAgICAgICAgICAgICBjb2lucyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl9jb2luX3N0YXRpc3RpYy5TbWFydFRyYW5zZmVyQ29pblN0YXRpc3RpYygKICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXQgPSAnQlRDJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcxNScsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgdGlja2V0X2NvdW50ID0gNAogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWNPdXRmbG93KAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNtYXJ0VHJhbnNmZXJTdGF0aXN0aWNPdXRmbG93KHNlbGYpOgogICAgICAgICIiIlRlc3QgU21hcnRUcmFuc2ZlclN0YXRpc3RpY091dGZsb3ciIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_smart_transfer_submit_ticket.py b/test/test_smart_transfer_submit_ticket.py index 246491e9..bb2ea77d 100644 --- a/test/test_smart_transfer_submit_ticket.py +++ b/test/test_smart_transfer_submit_ticket.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_submit_ticket import SmartTransferSubmitTicket - - -class TestSmartTransferSubmitTicket(unittest.TestCase): - """SmartTransferSubmitTicket unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferSubmitTicket: - """Test SmartTransferSubmitTicket - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferSubmitTicket` - """ - model = SmartTransferSubmitTicket() - if include_optional: - return SmartTransferSubmitTicket( - expires_in = 1 - ) - else: - return SmartTransferSubmitTicket( - ) - """ - - def testSmartTransferSubmitTicket(self): - """Test SmartTransferSubmitTicket""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3N1Ym1pdF90aWNrZXQgaW1wb3J0IFNtYXJ0VHJhbnNmZXJTdWJtaXRUaWNrZXQKCgpjbGFzcyBUZXN0U21hcnRUcmFuc2ZlclN1Ym1pdFRpY2tldCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTbWFydFRyYW5zZmVyU3VibWl0VGlja2V0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTbWFydFRyYW5zZmVyU3VibWl0VGlja2V0OgogICAgICAgICIiIlRlc3QgU21hcnRUcmFuc2ZlclN1Ym1pdFRpY2tldAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTbWFydFRyYW5zZmVyU3VibWl0VGlja2V0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU21hcnRUcmFuc2ZlclN1Ym1pdFRpY2tldCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNtYXJ0VHJhbnNmZXJTdWJtaXRUaWNrZXQoCiAgICAgICAgICAgICAgICBleHBpcmVzX2luID0gMQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNtYXJ0VHJhbnNmZXJTdWJtaXRUaWNrZXQoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U21hcnRUcmFuc2ZlclN1Ym1pdFRpY2tldChzZWxmKToKICAgICAgICAiIiJUZXN0IFNtYXJ0VHJhbnNmZXJTdWJtaXRUaWNrZXQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_smart_transfer_ticket.py b/test/test_smart_transfer_ticket.py index 4467e8c8..1bc12591 100644 --- a/test/test_smart_transfer_ticket.py +++ b/test/test_smart_transfer_ticket.py @@ -1,82 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_ticket import SmartTransferTicket - - -class TestSmartTransferTicket(unittest.TestCase): - """SmartTransferTicket unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferTicket: - """Test SmartTransferTicket - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferTicket` - """ - model = SmartTransferTicket() - if include_optional: - return SmartTransferTicket( - id = '118320d2-761f-46c7-96cf-65e71a370b36', - type = 'ASYNC', - direction = 'EXCHANGE', - status = 'DRAFT', - dvp_execution_status = 'STARTED', - order_created_by_network_id = '3eaa94c5-128b-4835-bb08-3111bb6564c7', - terms = [{"id":"84601ee2-b10f-4aa8-be9c-dba259a3533a","ticketId":"118320d2-761f-46c7-96cf-65e71a370b36","amount":"10.00","asset":"ETH","fromNetworkId":"947c6115-1f5f-4fb4-9fd6-a1f9dee14670","toNetworkId":"5d009697-c29b-48e0-aff8-1f4305d19dc2","status":"CREATED"},{"id":"84601ee2-b10f-4aa8-be9c-dba259a3533a","ticketId":"118320d2-761f-46c7-96cf-65e71a370b36","amount":"10.00","asset":"ETH","fromNetworkId":"947c6115-1f5f-4fb4-9fd6-a1f9dee14670","fromNetworkIdName":"Source network profile 1","toNetworkId":"5d009697-c29b-48e0-aff8-1f4305d19dc2","toNetworkIdName":"Destination network profile 1","status":"FUNDING","connectionId":"14817440-d5c8-4dbd-a754-ad415683610c","fbTxId":"79075e8c-1fd9-4c97-9575-3bd9229e5c0d","createdAt":"2023-03-01T11:23:00.000Z","updatedAt":"2023-03-01T11:23:00.000Z"},{"id":"84601ee2-b10f-4aa8-be9c-dba259a3533a","ticketId":"118320d2-761f-46c7-96cf-65e71a370b36","amount":"10.00","asset":"ETH","fromNetworkId":"947c6115-1f5f-4fb4-9fd6-a1f9dee14670","fromNetworkIdName":"Source network profile 2","toNetworkId":"5d009697-c29b-48e0-aff8-1f4305d19dc2","toNetworkIdName":"Destination network profile 2","status":"FUNDED","connectionId":"14817440-d5c8-4dbd-a754-ad415683610c","fbTxId":"79075e8c-1fd9-4c97-9575-3bd9229e5c0d","txHash":"0xb5c8bd9430b6cc87a0e2fe110ece6bf527fa4f170a4bc8cd032f768fc5219838","createdAt":"2023-03-01T11:23:00.000Z","updatedAt":"2023-03-01T11:23:00.000Z"}], - expires_in = 13, - expires_at = '2023-03-01T11:23Z', - submitted_at = '2023-03-01T11:23Z', - expired_at = '2023-03-01T11:23Z', - canceled_at = '2023-03-01T11:23Z', - fulfilled_at = '2023-03-01T11:23Z', - external_ref_id = '2631ffb9d8fe47c6b0825b5be28297da', - note = 'Random note', - created_by_network_id = '3eaa94c5-128b-4835-bb08-3111bb6564c7', - created_by_network_id_name = 'Network id name', - canceled_by_network_id_name = 'Network id name', - created_at = '2023-03-01T11:23Z', - updated_at = '2023-03-01T11:23Z', - canceled_by_me = True, - created_by_me = True - ) - else: - return SmartTransferTicket( - id = '118320d2-761f-46c7-96cf-65e71a370b36', - type = 'ASYNC', - status = 'DRAFT', - created_by_network_id = '3eaa94c5-128b-4835-bb08-3111bb6564c7', - created_by_network_id_name = 'Network id name', - created_at = '2023-03-01T11:23Z', - updated_at = '2023-03-01T11:23Z', - ) - """ - - def testSmartTransferTicket(self): - """Test SmartTransferTicket""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldCBpbXBvcnQgU21hcnRUcmFuc2ZlclRpY2tldAoKCmNsYXNzIFRlc3RTbWFydFRyYW5zZmVyVGlja2V0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNtYXJ0VHJhbnNmZXJUaWNrZXQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNtYXJ0VHJhbnNmZXJUaWNrZXQ6CiAgICAgICAgIiIiVGVzdCBTbWFydFRyYW5zZmVyVGlja2V0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNtYXJ0VHJhbnNmZXJUaWNrZXRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTbWFydFRyYW5zZmVyVGlja2V0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU21hcnRUcmFuc2ZlclRpY2tldCgKICAgICAgICAgICAgICAgIGlkID0gJzExODMyMGQyLTc2MWYtNDZjNy05NmNmLTY1ZTcxYTM3MGIzNicsCiAgICAgICAgICAgICAgICB0eXBlID0gJ0FTWU5DJywKICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdFWENIQU5HRScsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnRFJBRlQnLAogICAgICAgICAgICAgICAgZHZwX2V4ZWN1dGlvbl9zdGF0dXMgPSAnU1RBUlRFRCcsCiAgICAgICAgICAgICAgICBvcmRlcl9jcmVhdGVkX2J5X25ldHdvcmtfaWQgPSAnM2VhYTk0YzUtMTI4Yi00ODM1LWJiMDgtMzExMWJiNjU2NGM3JywKICAgICAgICAgICAgICAgIHRlcm1zID0gW3siaWQiOiI4NDYwMWVlMi1iMTBmLTRhYTgtYmU5Yy1kYmEyNTlhMzUzM2EiLCJ0aWNrZXRJZCI6IjExODMyMGQyLTc2MWYtNDZjNy05NmNmLTY1ZTcxYTM3MGIzNiIsImFtb3VudCI6IjEwLjAwIiwiYXNzZXQiOiJFVEgiLCJmcm9tTmV0d29ya0lkIjoiOTQ3YzYxMTUtMWY1Zi00ZmI0LTlmZDYtYTFmOWRlZTE0NjcwIiwidG9OZXR3b3JrSWQiOiI1ZDAwOTY5Ny1jMjliLTQ4ZTAtYWZmOC0xZjQzMDVkMTlkYzIiLCJzdGF0dXMiOiJDUkVBVEVEIn0seyJpZCI6Ijg0NjAxZWUyLWIxMGYtNGFhOC1iZTljLWRiYTI1OWEzNTMzYSIsInRpY2tldElkIjoiMTE4MzIwZDItNzYxZi00NmM3LTk2Y2YtNjVlNzFhMzcwYjM2IiwiYW1vdW50IjoiMTAuMDAiLCJhc3NldCI6IkVUSCIsImZyb21OZXR3b3JrSWQiOiI5NDdjNjExNS0xZjVmLTRmYjQtOWZkNi1hMWY5ZGVlMTQ2NzAiLCJmcm9tTmV0d29ya0lkTmFtZSI6IlNvdXJjZSBuZXR3b3JrIHByb2ZpbGUgMSIsInRvTmV0d29ya0lkIjoiNWQwMDk2OTctYzI5Yi00OGUwLWFmZjgtMWY0MzA1ZDE5ZGMyIiwidG9OZXR3b3JrSWROYW1lIjoiRGVzdGluYXRpb24gbmV0d29yayBwcm9maWxlIDEiLCJzdGF0dXMiOiJGVU5ESU5HIiwiY29ubmVjdGlvbklkIjoiMTQ4MTc0NDAtZDVjOC00ZGJkLWE3NTQtYWQ0MTU2ODM2MTBjIiwiZmJUeElkIjoiNzkwNzVlOGMtMWZkOS00Yzk3LTk1NzUtM2JkOTIyOWU1YzBkIiwiY3JlYXRlZEF0IjoiMjAyMy0wMy0wMVQxMToyMzowMC4wMDBaIiwidXBkYXRlZEF0IjoiMjAyMy0wMy0wMVQxMToyMzowMC4wMDBaIn0seyJpZCI6Ijg0NjAxZWUyLWIxMGYtNGFhOC1iZTljLWRiYTI1OWEzNTMzYSIsInRpY2tldElkIjoiMTE4MzIwZDItNzYxZi00NmM3LTk2Y2YtNjVlNzFhMzcwYjM2IiwiYW1vdW50IjoiMTAuMDAiLCJhc3NldCI6IkVUSCIsImZyb21OZXR3b3JrSWQiOiI5NDdjNjExNS0xZjVmLTRmYjQtOWZkNi1hMWY5ZGVlMTQ2NzAiLCJmcm9tTmV0d29ya0lkTmFtZSI6IlNvdXJjZSBuZXR3b3JrIHByb2ZpbGUgMiIsInRvTmV0d29ya0lkIjoiNWQwMDk2OTctYzI5Yi00OGUwLWFmZjgtMWY0MzA1ZDE5ZGMyIiwidG9OZXR3b3JrSWROYW1lIjoiRGVzdGluYXRpb24gbmV0d29yayBwcm9maWxlIDIiLCJzdGF0dXMiOiJGVU5ERUQiLCJjb25uZWN0aW9uSWQiOiIxNDgxNzQ0MC1kNWM4LTRkYmQtYTc1NC1hZDQxNTY4MzYxMGMiLCJmYlR4SWQiOiI3OTA3NWU4Yy0xZmQ5LTRjOTctOTU3NS0zYmQ5MjI5ZTVjMGQiLCJ0eEhhc2giOiIweGI1YzhiZDk0MzBiNmNjODdhMGUyZmUxMTBlY2U2YmY1MjdmYTRmMTcwYTRiYzhjZDAzMmY3NjhmYzUyMTk4MzgiLCJjcmVhdGVkQXQiOiIyMDIzLTAzLTAxVDExOjIzOjAwLjAwMFoiLCJ1cGRhdGVkQXQiOiIyMDIzLTAzLTAxVDExOjIzOjAwLjAwMFoifV0sCiAgICAgICAgICAgICAgICBleHBpcmVzX2luID0gMTMsCiAgICAgICAgICAgICAgICBleHBpcmVzX2F0ID0gJzIwMjMtMDMtMDFUMTE6MjNaJywKICAgICAgICAgICAgICAgIHN1Ym1pdHRlZF9hdCA9ICcyMDIzLTAzLTAxVDExOjIzWicsCiAgICAgICAgICAgICAgICBleHBpcmVkX2F0ID0gJzIwMjMtMDMtMDFUMTE6MjNaJywKICAgICAgICAgICAgICAgIGNhbmNlbGVkX2F0ID0gJzIwMjMtMDMtMDFUMTE6MjNaJywKICAgICAgICAgICAgICAgIGZ1bGZpbGxlZF9hdCA9ICcyMDIzLTAzLTAxVDExOjIzWicsCiAgICAgICAgICAgICAgICBleHRlcm5hbF9yZWZfaWQgPSAnMjYzMWZmYjlkOGZlNDdjNmIwODI1YjViZTI4Mjk3ZGEnLAogICAgICAgICAgICAgICAgbm90ZSA9ICdSYW5kb20gbm90ZScsCiAgICAgICAgICAgICAgICBjcmVhdGVkX2J5X25ldHdvcmtfaWQgPSAnM2VhYTk0YzUtMTI4Yi00ODM1LWJiMDgtMzExMWJiNjU2NGM3JywKICAgICAgICAgICAgICAgIGNyZWF0ZWRfYnlfbmV0d29ya19pZF9uYW1lID0gJ05ldHdvcmsgaWQgbmFtZScsCiAgICAgICAgICAgICAgICBjYW5jZWxlZF9ieV9uZXR3b3JrX2lkX25hbWUgPSAnTmV0d29yayBpZCBuYW1lJywKICAgICAgICAgICAgICAgIGNyZWF0ZWRfYXQgPSAnMjAyMy0wMy0wMVQxMToyM1onLAogICAgICAgICAgICAgICAgdXBkYXRlZF9hdCA9ICcyMDIzLTAzLTAxVDExOjIzWicsCiAgICAgICAgICAgICAgICBjYW5jZWxlZF9ieV9tZSA9IFRydWUsCiAgICAgICAgICAgICAgICBjcmVhdGVkX2J5X21lID0gVHJ1ZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNtYXJ0VHJhbnNmZXJUaWNrZXQoCiAgICAgICAgICAgICAgICBpZCA9ICcxMTgzMjBkMi03NjFmLTQ2YzctOTZjZi02NWU3MWEzNzBiMzYnLAogICAgICAgICAgICAgICAgdHlwZSA9ICdBU1lOQycsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnRFJBRlQnLAogICAgICAgICAgICAgICAgY3JlYXRlZF9ieV9uZXR3b3JrX2lkID0gJzNlYWE5NGM1LTEyOGItNDgzNS1iYjA4LTMxMTFiYjY1NjRjNycsCiAgICAgICAgICAgICAgICBjcmVhdGVkX2J5X25ldHdvcmtfaWRfbmFtZSA9ICdOZXR3b3JrIGlkIG5hbWUnLAogICAgICAgICAgICAgICAgY3JlYXRlZF9hdCA9ICcyMDIzLTAzLTAxVDExOjIzWicsCiAgICAgICAgICAgICAgICB1cGRhdGVkX2F0ID0gJzIwMjMtMDMtMDFUMTE6MjNaJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTbWFydFRyYW5zZmVyVGlja2V0KHNlbGYpOgogICAgICAgICIiIlRlc3QgU21hcnRUcmFuc2ZlclRpY2tldCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_smart_transfer_ticket_filtered_response.py b/test/test_smart_transfer_ticket_filtered_response.py index 7c7c2708..dd3465e8 100644 --- a/test/test_smart_transfer_ticket_filtered_response.py +++ b/test/test_smart_transfer_ticket_filtered_response.py @@ -1,109 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_ticket_filtered_response import ( - SmartTransferTicketFilteredResponse, -) - - -class TestSmartTransferTicketFilteredResponse(unittest.TestCase): - """SmartTransferTicketFilteredResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferTicketFilteredResponse: - """Test SmartTransferTicketFilteredResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferTicketFilteredResponse` - """ - model = SmartTransferTicketFilteredResponse() - if include_optional: - return SmartTransferTicketFilteredResponse( - message = 'Success', - after = '118320d2-761f-46c7-96cf-65e71a370b36', - data = [ - fireblocks.models.smart_transfer_ticket.SmartTransferTicket( - id = '118320d2-761f-46c7-96cf-65e71a370b36', - type = 'ASYNC', - direction = 'EXCHANGE', - status = 'DRAFT', - dvp_execution_status = 'STARTED', - order_created_by_network_id = '3eaa94c5-128b-4835-bb08-3111bb6564c7', - terms = [{"id":"84601ee2-b10f-4aa8-be9c-dba259a3533a","ticketId":"118320d2-761f-46c7-96cf-65e71a370b36","amount":"10.00","asset":"ETH","fromNetworkId":"947c6115-1f5f-4fb4-9fd6-a1f9dee14670","toNetworkId":"5d009697-c29b-48e0-aff8-1f4305d19dc2","status":"CREATED"},{"id":"84601ee2-b10f-4aa8-be9c-dba259a3533a","ticketId":"118320d2-761f-46c7-96cf-65e71a370b36","amount":"10.00","asset":"ETH","fromNetworkId":"947c6115-1f5f-4fb4-9fd6-a1f9dee14670","fromNetworkIdName":"Source network profile 1","toNetworkId":"5d009697-c29b-48e0-aff8-1f4305d19dc2","toNetworkIdName":"Destination network profile 1","status":"FUNDING","connectionId":"14817440-d5c8-4dbd-a754-ad415683610c","fbTxId":"79075e8c-1fd9-4c97-9575-3bd9229e5c0d","createdAt":"2023-03-01T11:23:00.000Z","updatedAt":"2023-03-01T11:23:00.000Z"},{"id":"84601ee2-b10f-4aa8-be9c-dba259a3533a","ticketId":"118320d2-761f-46c7-96cf-65e71a370b36","amount":"10.00","asset":"ETH","fromNetworkId":"947c6115-1f5f-4fb4-9fd6-a1f9dee14670","fromNetworkIdName":"Source network profile 2","toNetworkId":"5d009697-c29b-48e0-aff8-1f4305d19dc2","toNetworkIdName":"Destination network profile 2","status":"FUNDED","connectionId":"14817440-d5c8-4dbd-a754-ad415683610c","fbTxId":"79075e8c-1fd9-4c97-9575-3bd9229e5c0d","txHash":"0xb5c8bd9430b6cc87a0e2fe110ece6bf527fa4f170a4bc8cd032f768fc5219838","createdAt":"2023-03-01T11:23:00.000Z","updatedAt":"2023-03-01T11:23:00.000Z"}], - expires_in = 13, - expires_at = '2023-03-01T11:23Z', - submitted_at = '2023-03-01T11:23Z', - expired_at = '2023-03-01T11:23Z', - canceled_at = '2023-03-01T11:23Z', - fulfilled_at = '2023-03-01T11:23Z', - external_ref_id = '2631ffb9d8fe47c6b0825b5be28297da', - note = 'Random note', - created_by_network_id = '3eaa94c5-128b-4835-bb08-3111bb6564c7', - created_by_network_id_name = 'Network id name', - canceled_by_network_id_name = 'Network id name', - created_at = '2023-03-01T11:23Z', - updated_at = '2023-03-01T11:23Z', - canceled_by_me = True, - created_by_me = True, ) - ] - ) - else: - return SmartTransferTicketFilteredResponse( - message = 'Success', - after = '118320d2-761f-46c7-96cf-65e71a370b36', - data = [ - fireblocks.models.smart_transfer_ticket.SmartTransferTicket( - id = '118320d2-761f-46c7-96cf-65e71a370b36', - type = 'ASYNC', - direction = 'EXCHANGE', - status = 'DRAFT', - dvp_execution_status = 'STARTED', - order_created_by_network_id = '3eaa94c5-128b-4835-bb08-3111bb6564c7', - terms = [{"id":"84601ee2-b10f-4aa8-be9c-dba259a3533a","ticketId":"118320d2-761f-46c7-96cf-65e71a370b36","amount":"10.00","asset":"ETH","fromNetworkId":"947c6115-1f5f-4fb4-9fd6-a1f9dee14670","toNetworkId":"5d009697-c29b-48e0-aff8-1f4305d19dc2","status":"CREATED"},{"id":"84601ee2-b10f-4aa8-be9c-dba259a3533a","ticketId":"118320d2-761f-46c7-96cf-65e71a370b36","amount":"10.00","asset":"ETH","fromNetworkId":"947c6115-1f5f-4fb4-9fd6-a1f9dee14670","fromNetworkIdName":"Source network profile 1","toNetworkId":"5d009697-c29b-48e0-aff8-1f4305d19dc2","toNetworkIdName":"Destination network profile 1","status":"FUNDING","connectionId":"14817440-d5c8-4dbd-a754-ad415683610c","fbTxId":"79075e8c-1fd9-4c97-9575-3bd9229e5c0d","createdAt":"2023-03-01T11:23:00.000Z","updatedAt":"2023-03-01T11:23:00.000Z"},{"id":"84601ee2-b10f-4aa8-be9c-dba259a3533a","ticketId":"118320d2-761f-46c7-96cf-65e71a370b36","amount":"10.00","asset":"ETH","fromNetworkId":"947c6115-1f5f-4fb4-9fd6-a1f9dee14670","fromNetworkIdName":"Source network profile 2","toNetworkId":"5d009697-c29b-48e0-aff8-1f4305d19dc2","toNetworkIdName":"Destination network profile 2","status":"FUNDED","connectionId":"14817440-d5c8-4dbd-a754-ad415683610c","fbTxId":"79075e8c-1fd9-4c97-9575-3bd9229e5c0d","txHash":"0xb5c8bd9430b6cc87a0e2fe110ece6bf527fa4f170a4bc8cd032f768fc5219838","createdAt":"2023-03-01T11:23:00.000Z","updatedAt":"2023-03-01T11:23:00.000Z"}], - expires_in = 13, - expires_at = '2023-03-01T11:23Z', - submitted_at = '2023-03-01T11:23Z', - expired_at = '2023-03-01T11:23Z', - canceled_at = '2023-03-01T11:23Z', - fulfilled_at = '2023-03-01T11:23Z', - external_ref_id = '2631ffb9d8fe47c6b0825b5be28297da', - note = 'Random note', - created_by_network_id = '3eaa94c5-128b-4835-bb08-3111bb6564c7', - created_by_network_id_name = 'Network id name', - canceled_by_network_id_name = 'Network id name', - created_at = '2023-03-01T11:23Z', - updated_at = '2023-03-01T11:23Z', - canceled_by_me = True, - created_by_me = True, ) - ], - ) - """ - - def testSmartTransferTicketFilteredResponse(self): - """Test SmartTransferTicketFilteredResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldF9maWx0ZXJlZF9yZXNwb25zZSBpbXBvcnQgKAogICAgU21hcnRUcmFuc2ZlclRpY2tldEZpbHRlcmVkUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0U21hcnRUcmFuc2ZlclRpY2tldEZpbHRlcmVkUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU21hcnRUcmFuc2ZlclRpY2tldEZpbHRlcmVkUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNtYXJ0VHJhbnNmZXJUaWNrZXRGaWx0ZXJlZFJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgU21hcnRUcmFuc2ZlclRpY2tldEZpbHRlcmVkUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU21hcnRUcmFuc2ZlclRpY2tldEZpbHRlcmVkUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTbWFydFRyYW5zZmVyVGlja2V0RmlsdGVyZWRSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNtYXJ0VHJhbnNmZXJUaWNrZXRGaWx0ZXJlZFJlc3BvbnNlKAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdTdWNjZXNzJywKICAgICAgICAgICAgICAgIGFmdGVyID0gJzExODMyMGQyLTc2MWYtNDZjNy05NmNmLTY1ZTcxYTM3MGIzNicsCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldC5TbWFydFRyYW5zZmVyVGlja2V0KAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcxMTgzMjBkMi03NjFmLTQ2YzctOTZjZi02NWU3MWEzNzBiMzYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdBU1lOQycsIAogICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnRVhDSEFOR0UnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ0RSQUZUJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGR2cF9leGVjdXRpb25fc3RhdHVzID0gJ1NUQVJURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJfY3JlYXRlZF9ieV9uZXR3b3JrX2lkID0gJzNlYWE5NGM1LTEyOGItNDgzNS1iYjA4LTMxMTFiYjY1NjRjNycsIAogICAgICAgICAgICAgICAgICAgICAgICB0ZXJtcyA9IFt7ImlkIjoiODQ2MDFlZTItYjEwZi00YWE4LWJlOWMtZGJhMjU5YTM1MzNhIiwidGlja2V0SWQiOiIxMTgzMjBkMi03NjFmLTQ2YzctOTZjZi02NWU3MWEzNzBiMzYiLCJhbW91bnQiOiIxMC4wMCIsImFzc2V0IjoiRVRIIiwiZnJvbU5ldHdvcmtJZCI6Ijk0N2M2MTE1LTFmNWYtNGZiNC05ZmQ2LWExZjlkZWUxNDY3MCIsInRvTmV0d29ya0lkIjoiNWQwMDk2OTctYzI5Yi00OGUwLWFmZjgtMWY0MzA1ZDE5ZGMyIiwic3RhdHVzIjoiQ1JFQVRFRCJ9LHsiaWQiOiI4NDYwMWVlMi1iMTBmLTRhYTgtYmU5Yy1kYmEyNTlhMzUzM2EiLCJ0aWNrZXRJZCI6IjExODMyMGQyLTc2MWYtNDZjNy05NmNmLTY1ZTcxYTM3MGIzNiIsImFtb3VudCI6IjEwLjAwIiwiYXNzZXQiOiJFVEgiLCJmcm9tTmV0d29ya0lkIjoiOTQ3YzYxMTUtMWY1Zi00ZmI0LTlmZDYtYTFmOWRlZTE0NjcwIiwiZnJvbU5ldHdvcmtJZE5hbWUiOiJTb3VyY2UgbmV0d29yayBwcm9maWxlIDEiLCJ0b05ldHdvcmtJZCI6IjVkMDA5Njk3LWMyOWItNDhlMC1hZmY4LTFmNDMwNWQxOWRjMiIsInRvTmV0d29ya0lkTmFtZSI6IkRlc3RpbmF0aW9uIG5ldHdvcmsgcHJvZmlsZSAxIiwic3RhdHVzIjoiRlVORElORyIsImNvbm5lY3Rpb25JZCI6IjE0ODE3NDQwLWQ1YzgtNGRiZC1hNzU0LWFkNDE1NjgzNjEwYyIsImZiVHhJZCI6Ijc5MDc1ZThjLTFmZDktNGM5Ny05NTc1LTNiZDkyMjllNWMwZCIsImNyZWF0ZWRBdCI6IjIwMjMtMDMtMDFUMTE6MjM6MDAuMDAwWiIsInVwZGF0ZWRBdCI6IjIwMjMtMDMtMDFUMTE6MjM6MDAuMDAwWiJ9LHsiaWQiOiI4NDYwMWVlMi1iMTBmLTRhYTgtYmU5Yy1kYmEyNTlhMzUzM2EiLCJ0aWNrZXRJZCI6IjExODMyMGQyLTc2MWYtNDZjNy05NmNmLTY1ZTcxYTM3MGIzNiIsImFtb3VudCI6IjEwLjAwIiwiYXNzZXQiOiJFVEgiLCJmcm9tTmV0d29ya0lkIjoiOTQ3YzYxMTUtMWY1Zi00ZmI0LTlmZDYtYTFmOWRlZTE0NjcwIiwiZnJvbU5ldHdvcmtJZE5hbWUiOiJTb3VyY2UgbmV0d29yayBwcm9maWxlIDIiLCJ0b05ldHdvcmtJZCI6IjVkMDA5Njk3LWMyOWItNDhlMC1hZmY4LTFmNDMwNWQxOWRjMiIsInRvTmV0d29ya0lkTmFtZSI6IkRlc3RpbmF0aW9uIG5ldHdvcmsgcHJvZmlsZSAyIiwic3RhdHVzIjoiRlVOREVEIiwiY29ubmVjdGlvbklkIjoiMTQ4MTc0NDAtZDVjOC00ZGJkLWE3NTQtYWQ0MTU2ODM2MTBjIiwiZmJUeElkIjoiNzkwNzVlOGMtMWZkOS00Yzk3LTk1NzUtM2JkOTIyOWU1YzBkIiwidHhIYXNoIjoiMHhiNWM4YmQ5NDMwYjZjYzg3YTBlMmZlMTEwZWNlNmJmNTI3ZmE0ZjE3MGE0YmM4Y2QwMzJmNzY4ZmM1MjE5ODM4IiwiY3JlYXRlZEF0IjoiMjAyMy0wMy0wMVQxMToyMzowMC4wMDBaIiwidXBkYXRlZEF0IjoiMjAyMy0wMy0wMVQxMToyMzowMC4wMDBaIn1dLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlc19pbiA9IDEzLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlc19hdCA9ICcyMDIzLTAzLTAxVDExOjIzWicsIAogICAgICAgICAgICAgICAgICAgICAgICBzdWJtaXR0ZWRfYXQgPSAnMjAyMy0wMy0wMVQxMToyM1onLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlZF9hdCA9ICcyMDIzLTAzLTAxVDExOjIzWicsIAogICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxlZF9hdCA9ICcyMDIzLTAzLTAxVDExOjIzWicsIAogICAgICAgICAgICAgICAgICAgICAgICBmdWxmaWxsZWRfYXQgPSAnMjAyMy0wMy0wMVQxMToyM1onLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfcmVmX2lkID0gJzI2MzFmZmI5ZDhmZTQ3YzZiMDgyNWI1YmUyODI5N2RhJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGUgPSAnUmFuZG9tIG5vdGUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZF9ieV9uZXR3b3JrX2lkID0gJzNlYWE5NGM1LTEyOGItNDgzNS1iYjA4LTMxMTFiYjY1NjRjNycsIAogICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkX2J5X25ldHdvcmtfaWRfbmFtZSA9ICdOZXR3b3JrIGlkIG5hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsZWRfYnlfbmV0d29ya19pZF9uYW1lID0gJ05ldHdvcmsgaWQgbmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkX2F0ID0gJzIwMjMtMDMtMDFUMTE6MjNaJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZWRfYXQgPSAnMjAyMy0wMy0wMVQxMToyM1onLCAKICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsZWRfYnlfbWUgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZF9ieV9tZSA9IFRydWUsICkKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU21hcnRUcmFuc2ZlclRpY2tldEZpbHRlcmVkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ1N1Y2Nlc3MnLAogICAgICAgICAgICAgICAgYWZ0ZXIgPSAnMTE4MzIwZDItNzYxZi00NmM3LTk2Y2YtNjVlNzFhMzcwYjM2JywKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuc21hcnRfdHJhbnNmZXJfdGlja2V0LlNtYXJ0VHJhbnNmZXJUaWNrZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJzExODMyMGQyLTc2MWYtNDZjNy05NmNmLTY1ZTcxYTM3MGIzNicsIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ0FTWU5DJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdFWENIQU5HRScsIAogICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnRFJBRlQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZHZwX2V4ZWN1dGlvbl9zdGF0dXMgPSAnU1RBUlRFRCcsIAogICAgICAgICAgICAgICAgICAgICAgICBvcmRlcl9jcmVhdGVkX2J5X25ldHdvcmtfaWQgPSAnM2VhYTk0YzUtMTI4Yi00ODM1LWJiMDgtMzExMWJiNjU2NGM3JywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRlcm1zID0gW3siaWQiOiI4NDYwMWVlMi1iMTBmLTRhYTgtYmU5Yy1kYmEyNTlhMzUzM2EiLCJ0aWNrZXRJZCI6IjExODMyMGQyLTc2MWYtNDZjNy05NmNmLTY1ZTcxYTM3MGIzNiIsImFtb3VudCI6IjEwLjAwIiwiYXNzZXQiOiJFVEgiLCJmcm9tTmV0d29ya0lkIjoiOTQ3YzYxMTUtMWY1Zi00ZmI0LTlmZDYtYTFmOWRlZTE0NjcwIiwidG9OZXR3b3JrSWQiOiI1ZDAwOTY5Ny1jMjliLTQ4ZTAtYWZmOC0xZjQzMDVkMTlkYzIiLCJzdGF0dXMiOiJDUkVBVEVEIn0seyJpZCI6Ijg0NjAxZWUyLWIxMGYtNGFhOC1iZTljLWRiYTI1OWEzNTMzYSIsInRpY2tldElkIjoiMTE4MzIwZDItNzYxZi00NmM3LTk2Y2YtNjVlNzFhMzcwYjM2IiwiYW1vdW50IjoiMTAuMDAiLCJhc3NldCI6IkVUSCIsImZyb21OZXR3b3JrSWQiOiI5NDdjNjExNS0xZjVmLTRmYjQtOWZkNi1hMWY5ZGVlMTQ2NzAiLCJmcm9tTmV0d29ya0lkTmFtZSI6IlNvdXJjZSBuZXR3b3JrIHByb2ZpbGUgMSIsInRvTmV0d29ya0lkIjoiNWQwMDk2OTctYzI5Yi00OGUwLWFmZjgtMWY0MzA1ZDE5ZGMyIiwidG9OZXR3b3JrSWROYW1lIjoiRGVzdGluYXRpb24gbmV0d29yayBwcm9maWxlIDEiLCJzdGF0dXMiOiJGVU5ESU5HIiwiY29ubmVjdGlvbklkIjoiMTQ4MTc0NDAtZDVjOC00ZGJkLWE3NTQtYWQ0MTU2ODM2MTBjIiwiZmJUeElkIjoiNzkwNzVlOGMtMWZkOS00Yzk3LTk1NzUtM2JkOTIyOWU1YzBkIiwiY3JlYXRlZEF0IjoiMjAyMy0wMy0wMVQxMToyMzowMC4wMDBaIiwidXBkYXRlZEF0IjoiMjAyMy0wMy0wMVQxMToyMzowMC4wMDBaIn0seyJpZCI6Ijg0NjAxZWUyLWIxMGYtNGFhOC1iZTljLWRiYTI1OWEzNTMzYSIsInRpY2tldElkIjoiMTE4MzIwZDItNzYxZi00NmM3LTk2Y2YtNjVlNzFhMzcwYjM2IiwiYW1vdW50IjoiMTAuMDAiLCJhc3NldCI6IkVUSCIsImZyb21OZXR3b3JrSWQiOiI5NDdjNjExNS0xZjVmLTRmYjQtOWZkNi1hMWY5ZGVlMTQ2NzAiLCJmcm9tTmV0d29ya0lkTmFtZSI6IlNvdXJjZSBuZXR3b3JrIHByb2ZpbGUgMiIsInRvTmV0d29ya0lkIjoiNWQwMDk2OTctYzI5Yi00OGUwLWFmZjgtMWY0MzA1ZDE5ZGMyIiwidG9OZXR3b3JrSWROYW1lIjoiRGVzdGluYXRpb24gbmV0d29yayBwcm9maWxlIDIiLCJzdGF0dXMiOiJGVU5ERUQiLCJjb25uZWN0aW9uSWQiOiIxNDgxNzQ0MC1kNWM4LTRkYmQtYTc1NC1hZDQxNTY4MzYxMGMiLCJmYlR4SWQiOiI3OTA3NWU4Yy0xZmQ5LTRjOTctOTU3NS0zYmQ5MjI5ZTVjMGQiLCJ0eEhhc2giOiIweGI1YzhiZDk0MzBiNmNjODdhMGUyZmUxMTBlY2U2YmY1MjdmYTRmMTcwYTRiYzhjZDAzMmY3NjhmYzUyMTk4MzgiLCJjcmVhdGVkQXQiOiIyMDIzLTAzLTAxVDExOjIzOjAwLjAwMFoiLCJ1cGRhdGVkQXQiOiIyMDIzLTAzLTAxVDExOjIzOjAwLjAwMFoifV0sIAogICAgICAgICAgICAgICAgICAgICAgICBleHBpcmVzX2luID0gMTMsIAogICAgICAgICAgICAgICAgICAgICAgICBleHBpcmVzX2F0ID0gJzIwMjMtMDMtMDFUMTE6MjNaJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHN1Ym1pdHRlZF9hdCA9ICcyMDIzLTAzLTAxVDExOjIzWicsIAogICAgICAgICAgICAgICAgICAgICAgICBleHBpcmVkX2F0ID0gJzIwMjMtMDMtMDFUMTE6MjNaJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNhbmNlbGVkX2F0ID0gJzIwMjMtMDMtMDFUMTE6MjNaJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGZpbGxlZF9hdCA9ICcyMDIzLTAzLTAxVDExOjIzWicsIAogICAgICAgICAgICAgICAgICAgICAgICBleHRlcm5hbF9yZWZfaWQgPSAnMjYzMWZmYjlkOGZlNDdjNmIwODI1YjViZTI4Mjk3ZGEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbm90ZSA9ICdSYW5kb20gbm90ZScsIAogICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkX2J5X25ldHdvcmtfaWQgPSAnM2VhYTk0YzUtMTI4Yi00ODM1LWJiMDgtMzExMWJiNjU2NGM3JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRfYnlfbmV0d29ya19pZF9uYW1lID0gJ05ldHdvcmsgaWQgbmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxlZF9ieV9uZXR3b3JrX2lkX25hbWUgPSAnTmV0d29yayBpZCBuYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRfYXQgPSAnMjAyMy0wMy0wMVQxMToyM1onLCAKICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZF9hdCA9ICcyMDIzLTAzLTAxVDExOjIzWicsIAogICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxlZF9ieV9tZSA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkX2J5X21lID0gVHJ1ZSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U21hcnRUcmFuc2ZlclRpY2tldEZpbHRlcmVkUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTbWFydFRyYW5zZmVyVGlja2V0RmlsdGVyZWRSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_smart_transfer_ticket_response.py b/test/test_smart_transfer_ticket_response.py index bef9c4a6..67338c4d 100644 --- a/test/test_smart_transfer_ticket_response.py +++ b/test/test_smart_transfer_ticket_response.py @@ -1,78 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_ticket_response import SmartTransferTicketResponse - - -class TestSmartTransferTicketResponse(unittest.TestCase): - """SmartTransferTicketResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferTicketResponse: - """Test SmartTransferTicketResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferTicketResponse` - """ - model = SmartTransferTicketResponse() - if include_optional: - return SmartTransferTicketResponse( - message = 'Success', - data = fireblocks.models.smart_transfer_ticket.SmartTransferTicket( - id = '118320d2-761f-46c7-96cf-65e71a370b36', - type = 'ASYNC', - direction = 'EXCHANGE', - status = 'DRAFT', - dvp_execution_status = 'STARTED', - order_created_by_network_id = '3eaa94c5-128b-4835-bb08-3111bb6564c7', - terms = [{"id":"84601ee2-b10f-4aa8-be9c-dba259a3533a","ticketId":"118320d2-761f-46c7-96cf-65e71a370b36","amount":"10.00","asset":"ETH","fromNetworkId":"947c6115-1f5f-4fb4-9fd6-a1f9dee14670","toNetworkId":"5d009697-c29b-48e0-aff8-1f4305d19dc2","status":"CREATED"},{"id":"84601ee2-b10f-4aa8-be9c-dba259a3533a","ticketId":"118320d2-761f-46c7-96cf-65e71a370b36","amount":"10.00","asset":"ETH","fromNetworkId":"947c6115-1f5f-4fb4-9fd6-a1f9dee14670","fromNetworkIdName":"Source network profile 1","toNetworkId":"5d009697-c29b-48e0-aff8-1f4305d19dc2","toNetworkIdName":"Destination network profile 1","status":"FUNDING","connectionId":"14817440-d5c8-4dbd-a754-ad415683610c","fbTxId":"79075e8c-1fd9-4c97-9575-3bd9229e5c0d","createdAt":"2023-03-01T11:23:00.000Z","updatedAt":"2023-03-01T11:23:00.000Z"},{"id":"84601ee2-b10f-4aa8-be9c-dba259a3533a","ticketId":"118320d2-761f-46c7-96cf-65e71a370b36","amount":"10.00","asset":"ETH","fromNetworkId":"947c6115-1f5f-4fb4-9fd6-a1f9dee14670","fromNetworkIdName":"Source network profile 2","toNetworkId":"5d009697-c29b-48e0-aff8-1f4305d19dc2","toNetworkIdName":"Destination network profile 2","status":"FUNDED","connectionId":"14817440-d5c8-4dbd-a754-ad415683610c","fbTxId":"79075e8c-1fd9-4c97-9575-3bd9229e5c0d","txHash":"0xb5c8bd9430b6cc87a0e2fe110ece6bf527fa4f170a4bc8cd032f768fc5219838","createdAt":"2023-03-01T11:23:00.000Z","updatedAt":"2023-03-01T11:23:00.000Z"}], - expires_in = 13, - expires_at = '2023-03-01T11:23Z', - submitted_at = '2023-03-01T11:23Z', - expired_at = '2023-03-01T11:23Z', - canceled_at = '2023-03-01T11:23Z', - fulfilled_at = '2023-03-01T11:23Z', - external_ref_id = '2631ffb9d8fe47c6b0825b5be28297da', - note = 'Random note', - created_by_network_id = '3eaa94c5-128b-4835-bb08-3111bb6564c7', - created_by_network_id_name = 'Network id name', - canceled_by_network_id_name = 'Network id name', - created_at = '2023-03-01T11:23Z', - updated_at = '2023-03-01T11:23Z', - canceled_by_me = True, - created_by_me = True, ) - ) - else: - return SmartTransferTicketResponse( - message = 'Success', - ) - """ - - def testSmartTransferTicketResponse(self): - """Test SmartTransferTicketResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldF9yZXNwb25zZSBpbXBvcnQgU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlCgoKY2xhc3MgVGVzdFNtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFNtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTbWFydFRyYW5zZmVyVGlja2V0UmVzcG9uc2UoCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ1N1Y2Nlc3MnLAogICAgICAgICAgICAgICAgZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldC5TbWFydFRyYW5zZmVyVGlja2V0KAogICAgICAgICAgICAgICAgICAgIGlkID0gJzExODMyMGQyLTc2MWYtNDZjNy05NmNmLTY1ZTcxYTM3MGIzNicsIAogICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnQVNZTkMnLCAKICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnRVhDSEFOR0UnLCAKICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnRFJBRlQnLCAKICAgICAgICAgICAgICAgICAgICBkdnBfZXhlY3V0aW9uX3N0YXR1cyA9ICdTVEFSVEVEJywgCiAgICAgICAgICAgICAgICAgICAgb3JkZXJfY3JlYXRlZF9ieV9uZXR3b3JrX2lkID0gJzNlYWE5NGM1LTEyOGItNDgzNS1iYjA4LTMxMTFiYjY1NjRjNycsIAogICAgICAgICAgICAgICAgICAgIHRlcm1zID0gW3siaWQiOiI4NDYwMWVlMi1iMTBmLTRhYTgtYmU5Yy1kYmEyNTlhMzUzM2EiLCJ0aWNrZXRJZCI6IjExODMyMGQyLTc2MWYtNDZjNy05NmNmLTY1ZTcxYTM3MGIzNiIsImFtb3VudCI6IjEwLjAwIiwiYXNzZXQiOiJFVEgiLCJmcm9tTmV0d29ya0lkIjoiOTQ3YzYxMTUtMWY1Zi00ZmI0LTlmZDYtYTFmOWRlZTE0NjcwIiwidG9OZXR3b3JrSWQiOiI1ZDAwOTY5Ny1jMjliLTQ4ZTAtYWZmOC0xZjQzMDVkMTlkYzIiLCJzdGF0dXMiOiJDUkVBVEVEIn0seyJpZCI6Ijg0NjAxZWUyLWIxMGYtNGFhOC1iZTljLWRiYTI1OWEzNTMzYSIsInRpY2tldElkIjoiMTE4MzIwZDItNzYxZi00NmM3LTk2Y2YtNjVlNzFhMzcwYjM2IiwiYW1vdW50IjoiMTAuMDAiLCJhc3NldCI6IkVUSCIsImZyb21OZXR3b3JrSWQiOiI5NDdjNjExNS0xZjVmLTRmYjQtOWZkNi1hMWY5ZGVlMTQ2NzAiLCJmcm9tTmV0d29ya0lkTmFtZSI6IlNvdXJjZSBuZXR3b3JrIHByb2ZpbGUgMSIsInRvTmV0d29ya0lkIjoiNWQwMDk2OTctYzI5Yi00OGUwLWFmZjgtMWY0MzA1ZDE5ZGMyIiwidG9OZXR3b3JrSWROYW1lIjoiRGVzdGluYXRpb24gbmV0d29yayBwcm9maWxlIDEiLCJzdGF0dXMiOiJGVU5ESU5HIiwiY29ubmVjdGlvbklkIjoiMTQ4MTc0NDAtZDVjOC00ZGJkLWE3NTQtYWQ0MTU2ODM2MTBjIiwiZmJUeElkIjoiNzkwNzVlOGMtMWZkOS00Yzk3LTk1NzUtM2JkOTIyOWU1YzBkIiwiY3JlYXRlZEF0IjoiMjAyMy0wMy0wMVQxMToyMzowMC4wMDBaIiwidXBkYXRlZEF0IjoiMjAyMy0wMy0wMVQxMToyMzowMC4wMDBaIn0seyJpZCI6Ijg0NjAxZWUyLWIxMGYtNGFhOC1iZTljLWRiYTI1OWEzNTMzYSIsInRpY2tldElkIjoiMTE4MzIwZDItNzYxZi00NmM3LTk2Y2YtNjVlNzFhMzcwYjM2IiwiYW1vdW50IjoiMTAuMDAiLCJhc3NldCI6IkVUSCIsImZyb21OZXR3b3JrSWQiOiI5NDdjNjExNS0xZjVmLTRmYjQtOWZkNi1hMWY5ZGVlMTQ2NzAiLCJmcm9tTmV0d29ya0lkTmFtZSI6IlNvdXJjZSBuZXR3b3JrIHByb2ZpbGUgMiIsInRvTmV0d29ya0lkIjoiNWQwMDk2OTctYzI5Yi00OGUwLWFmZjgtMWY0MzA1ZDE5ZGMyIiwidG9OZXR3b3JrSWROYW1lIjoiRGVzdGluYXRpb24gbmV0d29yayBwcm9maWxlIDIiLCJzdGF0dXMiOiJGVU5ERUQiLCJjb25uZWN0aW9uSWQiOiIxNDgxNzQ0MC1kNWM4LTRkYmQtYTc1NC1hZDQxNTY4MzYxMGMiLCJmYlR4SWQiOiI3OTA3NWU4Yy0xZmQ5LTRjOTctOTU3NS0zYmQ5MjI5ZTVjMGQiLCJ0eEhhc2giOiIweGI1YzhiZDk0MzBiNmNjODdhMGUyZmUxMTBlY2U2YmY1MjdmYTRmMTcwYTRiYzhjZDAzMmY3NjhmYzUyMTk4MzgiLCJjcmVhdGVkQXQiOiIyMDIzLTAzLTAxVDExOjIzOjAwLjAwMFoiLCJ1cGRhdGVkQXQiOiIyMDIzLTAzLTAxVDExOjIzOjAwLjAwMFoifV0sIAogICAgICAgICAgICAgICAgICAgIGV4cGlyZXNfaW4gPSAxMywgCiAgICAgICAgICAgICAgICAgICAgZXhwaXJlc19hdCA9ICcyMDIzLTAzLTAxVDExOjIzWicsIAogICAgICAgICAgICAgICAgICAgIHN1Ym1pdHRlZF9hdCA9ICcyMDIzLTAzLTAxVDExOjIzWicsIAogICAgICAgICAgICAgICAgICAgIGV4cGlyZWRfYXQgPSAnMjAyMy0wMy0wMVQxMToyM1onLCAKICAgICAgICAgICAgICAgICAgICBjYW5jZWxlZF9hdCA9ICcyMDIzLTAzLTAxVDExOjIzWicsIAogICAgICAgICAgICAgICAgICAgIGZ1bGZpbGxlZF9hdCA9ICcyMDIzLTAzLTAxVDExOjIzWicsIAogICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX3JlZl9pZCA9ICcyNjMxZmZiOWQ4ZmU0N2M2YjA4MjViNWJlMjgyOTdkYScsIAogICAgICAgICAgICAgICAgICAgIG5vdGUgPSAnUmFuZG9tIG5vdGUnLCAKICAgICAgICAgICAgICAgICAgICBjcmVhdGVkX2J5X25ldHdvcmtfaWQgPSAnM2VhYTk0YzUtMTI4Yi00ODM1LWJiMDgtMzExMWJiNjU2NGM3JywgCiAgICAgICAgICAgICAgICAgICAgY3JlYXRlZF9ieV9uZXR3b3JrX2lkX25hbWUgPSAnTmV0d29yayBpZCBuYW1lJywgCiAgICAgICAgICAgICAgICAgICAgY2FuY2VsZWRfYnlfbmV0d29ya19pZF9uYW1lID0gJ05ldHdvcmsgaWQgbmFtZScsIAogICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRfYXQgPSAnMjAyMy0wMy0wMVQxMToyM1onLCAKICAgICAgICAgICAgICAgICAgICB1cGRhdGVkX2F0ID0gJzIwMjMtMDMtMDFUMTE6MjNaJywgCiAgICAgICAgICAgICAgICAgICAgY2FuY2VsZWRfYnlfbWUgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICBjcmVhdGVkX2J5X21lID0gVHJ1ZSwgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNtYXJ0VHJhbnNmZXJUaWNrZXRSZXNwb25zZSgKICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnU3VjY2VzcycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgU21hcnRUcmFuc2ZlclRpY2tldFJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_smart_transfer_ticket_term.py b/test/test_smart_transfer_ticket_term.py index 9644a233..a0c21ce6 100644 --- a/test/test_smart_transfer_ticket_term.py +++ b/test/test_smart_transfer_ticket_term.py @@ -1,83 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_ticket_term import SmartTransferTicketTerm - - -class TestSmartTransferTicketTerm(unittest.TestCase): - """SmartTransferTicketTerm unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferTicketTerm: - """Test SmartTransferTicketTerm - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferTicketTerm` - """ - model = SmartTransferTicketTerm() - if include_optional: - return SmartTransferTicketTerm( - id = '84601ee2-b10f-4aa8-be9c-dba259a3533a', - ticket_id = '900f04c3-83bc-428d-b681-aef682059637', - asset = 'BTC', - amount = '133.789161216184', - dvp_src_dst_vault_id = '1', - amount_usd = '1333.789161216184', - from_network_id = '947c6115-1f5f-4fb4-9fd6-a1f9dee14670', - from_network_id_name = 'Source network profile name', - to_network_id = '5d009697-c29b-48e0-aff8-1f4305d19dc2', - to_network_id_name = 'Destination network profile name', - tx_hash = '0x2446f1fd773fbb9f080e674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c', - fb_tx_id = '79075e8c-1fd9-4c97-9575-3bd9229e5c0d', - tx_status = 'COMPLETED', - status = 'CREATED', - created_at = '2023-03-01T11:23Z', - updated_at = '2023-03-01T11:23Z' - ) - else: - return SmartTransferTicketTerm( - id = '84601ee2-b10f-4aa8-be9c-dba259a3533a', - ticket_id = '900f04c3-83bc-428d-b681-aef682059637', - asset = 'BTC', - amount = '133.789161216184', - from_network_id = '947c6115-1f5f-4fb4-9fd6-a1f9dee14670', - from_network_id_name = 'Source network profile name', - to_network_id = '5d009697-c29b-48e0-aff8-1f4305d19dc2', - to_network_id_name = 'Destination network profile name', - tx_hash = '0x2446f1fd773fbb9f080e674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c', - fb_tx_id = '79075e8c-1fd9-4c97-9575-3bd9229e5c0d', - tx_status = 'COMPLETED', - status = 'CREATED', - created_at = '2023-03-01T11:23Z', - updated_at = '2023-03-01T11:23Z', - ) - """ - - def testSmartTransferTicketTerm(self): - """Test SmartTransferTicketTerm""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldF90ZXJtIGltcG9ydCBTbWFydFRyYW5zZmVyVGlja2V0VGVybQoKCmNsYXNzIFRlc3RTbWFydFRyYW5zZmVyVGlja2V0VGVybSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTbWFydFRyYW5zZmVyVGlja2V0VGVybSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU21hcnRUcmFuc2ZlclRpY2tldFRlcm06CiAgICAgICAgIiIiVGVzdCBTbWFydFRyYW5zZmVyVGlja2V0VGVybQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTbWFydFRyYW5zZmVyVGlja2V0VGVybWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU21hcnRUcmFuc2ZlclRpY2tldFRlcm0oCiAgICAgICAgICAgICAgICBpZCA9ICc4NDYwMWVlMi1iMTBmLTRhYTgtYmU5Yy1kYmEyNTlhMzUzM2EnLAogICAgICAgICAgICAgICAgdGlja2V0X2lkID0gJzkwMGYwNGMzLTgzYmMtNDI4ZC1iNjgxLWFlZjY4MjA1OTYzNycsCiAgICAgICAgICAgICAgICBhc3NldCA9ICdCVEMnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gJzEzMy43ODkxNjEyMTYxODQnLAogICAgICAgICAgICAgICAgZHZwX3NyY19kc3RfdmF1bHRfaWQgPSAnMScsCiAgICAgICAgICAgICAgICBhbW91bnRfdXNkID0gJzEzMzMuNzg5MTYxMjE2MTg0JywKICAgICAgICAgICAgICAgIGZyb21fbmV0d29ya19pZCA9ICc5NDdjNjExNS0xZjVmLTRmYjQtOWZkNi1hMWY5ZGVlMTQ2NzAnLAogICAgICAgICAgICAgICAgZnJvbV9uZXR3b3JrX2lkX25hbWUgPSAnU291cmNlIG5ldHdvcmsgcHJvZmlsZSBuYW1lJywKICAgICAgICAgICAgICAgIHRvX25ldHdvcmtfaWQgPSAnNWQwMDk2OTctYzI5Yi00OGUwLWFmZjgtMWY0MzA1ZDE5ZGMyJywKICAgICAgICAgICAgICAgIHRvX25ldHdvcmtfaWRfbmFtZSA9ICdEZXN0aW5hdGlvbiBuZXR3b3JrIHByb2ZpbGUgbmFtZScsCiAgICAgICAgICAgICAgICB0eF9oYXNoID0gJzB4MjQ0NmYxZmQ3NzNmYmI5ZjA4MGU2NzRiNjBjNmEwMzNjN2VkNzQyN2I4Yjk0MTNjZjI4YTJhNGE2ZGE5YjU2YycsCiAgICAgICAgICAgICAgICBmYl90eF9pZCA9ICc3OTA3NWU4Yy0xZmQ5LTRjOTctOTU3NS0zYmQ5MjI5ZTVjMGQnLAogICAgICAgICAgICAgICAgdHhfc3RhdHVzID0gJ0NPTVBMRVRFRCcsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ1JFQVRFRCcsCiAgICAgICAgICAgICAgICBjcmVhdGVkX2F0ID0gJzIwMjMtMDMtMDFUMTE6MjNaJywKICAgICAgICAgICAgICAgIHVwZGF0ZWRfYXQgPSAnMjAyMy0wMy0wMVQxMToyM1onCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU21hcnRUcmFuc2ZlclRpY2tldFRlcm0oCiAgICAgICAgICAgICAgICBpZCA9ICc4NDYwMWVlMi1iMTBmLTRhYTgtYmU5Yy1kYmEyNTlhMzUzM2EnLAogICAgICAgICAgICAgICAgdGlja2V0X2lkID0gJzkwMGYwNGMzLTgzYmMtNDI4ZC1iNjgxLWFlZjY4MjA1OTYzNycsCiAgICAgICAgICAgICAgICBhc3NldCA9ICdCVEMnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gJzEzMy43ODkxNjEyMTYxODQnLAogICAgICAgICAgICAgICAgZnJvbV9uZXR3b3JrX2lkID0gJzk0N2M2MTE1LTFmNWYtNGZiNC05ZmQ2LWExZjlkZWUxNDY3MCcsCiAgICAgICAgICAgICAgICBmcm9tX25ldHdvcmtfaWRfbmFtZSA9ICdTb3VyY2UgbmV0d29yayBwcm9maWxlIG5hbWUnLAogICAgICAgICAgICAgICAgdG9fbmV0d29ya19pZCA9ICc1ZDAwOTY5Ny1jMjliLTQ4ZTAtYWZmOC0xZjQzMDVkMTlkYzInLAogICAgICAgICAgICAgICAgdG9fbmV0d29ya19pZF9uYW1lID0gJ0Rlc3RpbmF0aW9uIG5ldHdvcmsgcHJvZmlsZSBuYW1lJywKICAgICAgICAgICAgICAgIHR4X2hhc2ggPSAnMHgyNDQ2ZjFmZDc3M2ZiYjlmMDgwZTY3NGI2MGM2YTAzM2M3ZWQ3NDI3YjhiOTQxM2NmMjhhMmE0YTZkYTliNTZjJywKICAgICAgICAgICAgICAgIGZiX3R4X2lkID0gJzc5MDc1ZThjLTFmZDktNGM5Ny05NTc1LTNiZDkyMjllNWMwZCcsCiAgICAgICAgICAgICAgICB0eF9zdGF0dXMgPSAnQ09NUExFVEVEJywKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDUkVBVEVEJywKICAgICAgICAgICAgICAgIGNyZWF0ZWRfYXQgPSAnMjAyMy0wMy0wMVQxMToyM1onLAogICAgICAgICAgICAgICAgdXBkYXRlZF9hdCA9ICcyMDIzLTAzLTAxVDExOjIzWicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U21hcnRUcmFuc2ZlclRpY2tldFRlcm0oc2VsZik6CiAgICAgICAgIiIiVGVzdCBTbWFydFRyYW5zZmVyVGlja2V0VGVybSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_smart_transfer_ticket_term_response.py b/test/test_smart_transfer_ticket_term_response.py index b3cbe014..801010d1 100644 --- a/test/test_smart_transfer_ticket_term_response.py +++ b/test/test_smart_transfer_ticket_term_response.py @@ -1,74 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_ticket_term_response import ( - SmartTransferTicketTermResponse, -) - - -class TestSmartTransferTicketTermResponse(unittest.TestCase): - """SmartTransferTicketTermResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferTicketTermResponse: - """Test SmartTransferTicketTermResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferTicketTermResponse` - """ - model = SmartTransferTicketTermResponse() - if include_optional: - return SmartTransferTicketTermResponse( - message = 'Success', - data = fireblocks.models.smart_transfer_ticket_term.SmartTransferTicketTerm( - id = '84601ee2-b10f-4aa8-be9c-dba259a3533a', - ticket_id = '900f04c3-83bc-428d-b681-aef682059637', - asset = 'BTC', - amount = '133.789161216184', - dvp_src_dst_vault_id = '1', - amount_usd = '1333.789161216184', - from_network_id = '947c6115-1f5f-4fb4-9fd6-a1f9dee14670', - from_network_id_name = 'Source network profile name', - to_network_id = '5d009697-c29b-48e0-aff8-1f4305d19dc2', - to_network_id_name = 'Destination network profile name', - tx_hash = '0x2446f1fd773fbb9f080e674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c', - fb_tx_id = '79075e8c-1fd9-4c97-9575-3bd9229e5c0d', - tx_status = 'COMPLETED', - status = 'CREATED', - created_at = '2023-03-01T11:23Z', - updated_at = '2023-03-01T11:23Z', ) - ) - else: - return SmartTransferTicketTermResponse( - message = 'Success', - ) - """ - - def testSmartTransferTicketTermResponse(self): - """Test SmartTransferTicketTermResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3RpY2tldF90ZXJtX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdFNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU21hcnRUcmFuc2ZlclRpY2tldFRlcm1SZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU21hcnRUcmFuc2ZlclRpY2tldFRlcm1SZXNwb25zZToKICAgICAgICAiIiJUZXN0IFNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU21hcnRUcmFuc2ZlclRpY2tldFRlcm1SZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTbWFydFRyYW5zZmVyVGlja2V0VGVybVJlc3BvbnNlKAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdTdWNjZXNzJywKICAgICAgICAgICAgICAgIGRhdGEgPSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl90aWNrZXRfdGVybS5TbWFydFRyYW5zZmVyVGlja2V0VGVybSgKICAgICAgICAgICAgICAgICAgICBpZCA9ICc4NDYwMWVlMi1iMTBmLTRhYTgtYmU5Yy1kYmEyNTlhMzUzM2EnLCAKICAgICAgICAgICAgICAgICAgICB0aWNrZXRfaWQgPSAnOTAwZjA0YzMtODNiYy00MjhkLWI2ODEtYWVmNjgyMDU5NjM3JywgCiAgICAgICAgICAgICAgICAgICAgYXNzZXQgPSAnQlRDJywgCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJzEzMy43ODkxNjEyMTYxODQnLCAKICAgICAgICAgICAgICAgICAgICBkdnBfc3JjX2RzdF92YXVsdF9pZCA9ICcxJywgCiAgICAgICAgICAgICAgICAgICAgYW1vdW50X3VzZCA9ICcxMzMzLjc4OTE2MTIxNjE4NCcsIAogICAgICAgICAgICAgICAgICAgIGZyb21fbmV0d29ya19pZCA9ICc5NDdjNjExNS0xZjVmLTRmYjQtOWZkNi1hMWY5ZGVlMTQ2NzAnLCAKICAgICAgICAgICAgICAgICAgICBmcm9tX25ldHdvcmtfaWRfbmFtZSA9ICdTb3VyY2UgbmV0d29yayBwcm9maWxlIG5hbWUnLCAKICAgICAgICAgICAgICAgICAgICB0b19uZXR3b3JrX2lkID0gJzVkMDA5Njk3LWMyOWItNDhlMC1hZmY4LTFmNDMwNWQxOWRjMicsIAogICAgICAgICAgICAgICAgICAgIHRvX25ldHdvcmtfaWRfbmFtZSA9ICdEZXN0aW5hdGlvbiBuZXR3b3JrIHByb2ZpbGUgbmFtZScsIAogICAgICAgICAgICAgICAgICAgIHR4X2hhc2ggPSAnMHgyNDQ2ZjFmZDc3M2ZiYjlmMDgwZTY3NGI2MGM2YTAzM2M3ZWQ3NDI3YjhiOTQxM2NmMjhhMmE0YTZkYTliNTZjJywgCiAgICAgICAgICAgICAgICAgICAgZmJfdHhfaWQgPSAnNzkwNzVlOGMtMWZkOS00Yzk3LTk1NzUtM2JkOTIyOWU1YzBkJywgCiAgICAgICAgICAgICAgICAgICAgdHhfc3RhdHVzID0gJ0NPTVBMRVRFRCcsIAogICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDUkVBVEVEJywgCiAgICAgICAgICAgICAgICAgICAgY3JlYXRlZF9hdCA9ICcyMDIzLTAzLTAxVDExOjIzWicsIAogICAgICAgICAgICAgICAgICAgIHVwZGF0ZWRfYXQgPSAnMjAyMy0wMy0wMVQxMToyM1onLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU21hcnRUcmFuc2ZlclRpY2tldFRlcm1SZXNwb25zZSgKICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnU3VjY2VzcycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U21hcnRUcmFuc2ZlclRpY2tldFRlcm1SZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFNtYXJ0VHJhbnNmZXJUaWNrZXRUZXJtUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_smart_transfer_update_ticket_term.py b/test/test_smart_transfer_update_ticket_term.py index e24c2baa..df41b011 100644 --- a/test/test_smart_transfer_update_ticket_term.py +++ b/test/test_smart_transfer_update_ticket_term.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_update_ticket_term import ( - SmartTransferUpdateTicketTerm, -) - - -class TestSmartTransferUpdateTicketTerm(unittest.TestCase): - """SmartTransferUpdateTicketTerm unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferUpdateTicketTerm: - """Test SmartTransferUpdateTicketTerm - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferUpdateTicketTerm` - """ - model = SmartTransferUpdateTicketTerm() - if include_optional: - return SmartTransferUpdateTicketTerm( - asset = 'BTC', - amount = '133.789161216184', - from_network_id = '947c6115-1f5f-4fb4-9fd6-a1f9dee14670', - to_network_id = '5d009697-c29b-48e0-aff8-1f4305d19dc2' - ) - else: - return SmartTransferUpdateTicketTerm( - asset = 'BTC', - amount = '133.789161216184', - from_network_id = '947c6115-1f5f-4fb4-9fd6-a1f9dee14670', - to_network_id = '5d009697-c29b-48e0-aff8-1f4305d19dc2', - ) - """ - - def testSmartTransferUpdateTicketTerm(self): - """Test SmartTransferUpdateTicketTerm""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3VwZGF0ZV90aWNrZXRfdGVybSBpbXBvcnQgKAogICAgU21hcnRUcmFuc2ZlclVwZGF0ZVRpY2tldFRlcm0sCikKCgpjbGFzcyBUZXN0U21hcnRUcmFuc2ZlclVwZGF0ZVRpY2tldFRlcm0odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU21hcnRUcmFuc2ZlclVwZGF0ZVRpY2tldFRlcm0gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNtYXJ0VHJhbnNmZXJVcGRhdGVUaWNrZXRUZXJtOgogICAgICAgICIiIlRlc3QgU21hcnRUcmFuc2ZlclVwZGF0ZVRpY2tldFRlcm0KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU21hcnRUcmFuc2ZlclVwZGF0ZVRpY2tldFRlcm1gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTbWFydFRyYW5zZmVyVXBkYXRlVGlja2V0VGVybSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNtYXJ0VHJhbnNmZXJVcGRhdGVUaWNrZXRUZXJtKAogICAgICAgICAgICAgICAgYXNzZXQgPSAnQlRDJywKICAgICAgICAgICAgICAgIGFtb3VudCA9ICcxMzMuNzg5MTYxMjE2MTg0JywKICAgICAgICAgICAgICAgIGZyb21fbmV0d29ya19pZCA9ICc5NDdjNjExNS0xZjVmLTRmYjQtOWZkNi1hMWY5ZGVlMTQ2NzAnLAogICAgICAgICAgICAgICAgdG9fbmV0d29ya19pZCA9ICc1ZDAwOTY5Ny1jMjliLTQ4ZTAtYWZmOC0xZjQzMDVkMTlkYzInCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU21hcnRUcmFuc2ZlclVwZGF0ZVRpY2tldFRlcm0oCiAgICAgICAgICAgICAgICBhc3NldCA9ICdCVEMnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gJzEzMy43ODkxNjEyMTYxODQnLAogICAgICAgICAgICAgICAgZnJvbV9uZXR3b3JrX2lkID0gJzk0N2M2MTE1LTFmNWYtNGZiNC05ZmQ2LWExZjlkZWUxNDY3MCcsCiAgICAgICAgICAgICAgICB0b19uZXR3b3JrX2lkID0gJzVkMDA5Njk3LWMyOWItNDhlMC1hZmY4LTFmNDMwNWQxOWRjMicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U21hcnRUcmFuc2ZlclVwZGF0ZVRpY2tldFRlcm0oc2VsZik6CiAgICAgICAgIiIiVGVzdCBTbWFydFRyYW5zZmVyVXBkYXRlVGlja2V0VGVybSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_smart_transfer_user_groups.py b/test/test_smart_transfer_user_groups.py index 6c578735..4218dd9e 100644 --- a/test/test_smart_transfer_user_groups.py +++ b/test/test_smart_transfer_user_groups.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_user_groups import SmartTransferUserGroups - - -class TestSmartTransferUserGroups(unittest.TestCase): - """SmartTransferUserGroups unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferUserGroups: - """Test SmartTransferUserGroups - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferUserGroups` - """ - model = SmartTransferUserGroups() - if include_optional: - return SmartTransferUserGroups( - user_group_ids = [ - '' - ] - ) - else: - return SmartTransferUserGroups( - user_group_ids = [ - '' - ], - ) - """ - - def testSmartTransferUserGroups(self): - """Test SmartTransferUserGroups""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3VzZXJfZ3JvdXBzIGltcG9ydCBTbWFydFRyYW5zZmVyVXNlckdyb3VwcwoKCmNsYXNzIFRlc3RTbWFydFRyYW5zZmVyVXNlckdyb3Vwcyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTbWFydFRyYW5zZmVyVXNlckdyb3VwcyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU21hcnRUcmFuc2ZlclVzZXJHcm91cHM6CiAgICAgICAgIiIiVGVzdCBTbWFydFRyYW5zZmVyVXNlckdyb3VwcwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTbWFydFRyYW5zZmVyVXNlckdyb3Vwc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU21hcnRUcmFuc2ZlclVzZXJHcm91cHMoCiAgICAgICAgICAgICAgICB1c2VyX2dyb3VwX2lkcyA9IFsKICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTbWFydFRyYW5zZmVyVXNlckdyb3VwcygKICAgICAgICAgICAgICAgIHVzZXJfZ3JvdXBfaWRzID0gWwogICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTbWFydFRyYW5zZmVyVXNlckdyb3VwcyhzZWxmKToKICAgICAgICAiIiJUZXN0IFNtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_smart_transfer_user_groups_response.py b/test/test_smart_transfer_user_groups_response.py index 9500fb76..0b5bcec6 100644 --- a/test/test_smart_transfer_user_groups_response.py +++ b/test/test_smart_transfer_user_groups_response.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.smart_transfer_user_groups_response import ( - SmartTransferUserGroupsResponse, -) - - -class TestSmartTransferUserGroupsResponse(unittest.TestCase): - """SmartTransferUserGroupsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SmartTransferUserGroupsResponse: - """Test SmartTransferUserGroupsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SmartTransferUserGroupsResponse` - """ - model = SmartTransferUserGroupsResponse() - if include_optional: - return SmartTransferUserGroupsResponse( - message = 'Success', - data = fireblocks.models.smart_transfer_user_groups.SmartTransferUserGroups( - user_group_ids = [ - '' - ], ) - ) - else: - return SmartTransferUserGroupsResponse( - message = 'Success', - ) - """ - - def testSmartTransferUserGroupsResponse(self): - """Test SmartTransferUserGroupsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNtYXJ0X3RyYW5zZmVyX3VzZXJfZ3JvdXBzX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBTbWFydFRyYW5zZmVyVXNlckdyb3Vwc1Jlc3BvbnNlLAopCgoKY2xhc3MgVGVzdFNtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU21hcnRUcmFuc2ZlclVzZXJHcm91cHNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU21hcnRUcmFuc2ZlclVzZXJHcm91cHNSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFNtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU21hcnRUcmFuc2ZlclVzZXJHcm91cHNSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTbWFydFRyYW5zZmVyVXNlckdyb3Vwc1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdTdWNjZXNzJywKICAgICAgICAgICAgICAgIGRhdGEgPSBmaXJlYmxvY2tzLm1vZGVscy5zbWFydF90cmFuc2Zlcl91c2VyX2dyb3Vwcy5TbWFydFRyYW5zZmVyVXNlckdyb3VwcygKICAgICAgICAgICAgICAgICAgICB1c2VyX2dyb3VwX2lkcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ1N1Y2Nlc3MnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNtYXJ0VHJhbnNmZXJVc2VyR3JvdXBzUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTbWFydFRyYW5zZmVyVXNlckdyb3Vwc1Jlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_sol_account.py b/test/test_sol_account.py index 196e7213..6b9ed4d9 100644 --- a/test/test_sol_account.py +++ b/test/test_sol_account.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.sol_account import SOLAccount - - -class TestSOLAccount(unittest.TestCase): - """SOLAccount unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SOLAccount: - """Test SOLAccount - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SOLAccount` - """ - model = SOLAccount() - if include_optional: - return SOLAccount( - name = 'mint', - signer = False, - writable = True, - address = '4PVcDXAkAgQkVx4puiSXdZ5H8BrTqUzstJBKKWFy3XsH' - ) - else: - return SOLAccount( - name = 'mint', - ) - """ - - def testSOLAccount(self): - """Test SOLAccount""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvbF9hY2NvdW50IGltcG9ydCBTT0xBY2NvdW50CgoKY2xhc3MgVGVzdFNPTEFjY291bnQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU09MQWNjb3VudCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU09MQWNjb3VudDoKICAgICAgICAiIiJUZXN0IFNPTEFjY291bnQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU09MQWNjb3VudGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNPTEFjY291bnQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTT0xBY2NvdW50KAogICAgICAgICAgICAgICAgbmFtZSA9ICdtaW50JywKICAgICAgICAgICAgICAgIHNpZ25lciA9IEZhbHNlLAogICAgICAgICAgICAgICAgd3JpdGFibGUgPSBUcnVlLAogICAgICAgICAgICAgICAgYWRkcmVzcyA9ICc0UFZjRFhBa0FnUWtWeDRwdWlTWGRaNUg4QnJUcVV6c3RKQktLV0Z5M1hzSCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTT0xBY2NvdW50KAogICAgICAgICAgICAgICAgbmFtZSA9ICdtaW50JywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTT0xBY2NvdW50KHNlbGYpOgogICAgICAgICIiIlRlc3QgU09MQWNjb3VudCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_sol_account_with_value.py b/test/test_sol_account_with_value.py index 558946de..18b64409 100644 --- a/test/test_sol_account_with_value.py +++ b/test/test_sol_account_with_value.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.sol_account_with_value import SOLAccountWithValue - - -class TestSOLAccountWithValue(unittest.TestCase): - """SOLAccountWithValue unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SOLAccountWithValue: - """Test SOLAccountWithValue - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SOLAccountWithValue` - """ - model = SOLAccountWithValue() - if include_optional: - return SOLAccountWithValue( - name = 'mint', - signer = False, - writable = True, - address = '4PVcDXAkAgQkVx4puiSXdZ5H8BrTqUzstJBKKWFy3XsH' - ) - else: - return SOLAccountWithValue( - name = 'mint', - address = '4PVcDXAkAgQkVx4puiSXdZ5H8BrTqUzstJBKKWFy3XsH', - ) - """ - - def testSOLAccountWithValue(self): - """Test SOLAccountWithValue""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvbF9hY2NvdW50X3dpdGhfdmFsdWUgaW1wb3J0IFNPTEFjY291bnRXaXRoVmFsdWUKCgpjbGFzcyBUZXN0U09MQWNjb3VudFdpdGhWYWx1ZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTT0xBY2NvdW50V2l0aFZhbHVlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTT0xBY2NvdW50V2l0aFZhbHVlOgogICAgICAgICIiIlRlc3QgU09MQWNjb3VudFdpdGhWYWx1ZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTT0xBY2NvdW50V2l0aFZhbHVlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU09MQWNjb3VudFdpdGhWYWx1ZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNPTEFjY291bnRXaXRoVmFsdWUoCiAgICAgICAgICAgICAgICBuYW1lID0gJ21pbnQnLAogICAgICAgICAgICAgICAgc2lnbmVyID0gRmFsc2UsCiAgICAgICAgICAgICAgICB3cml0YWJsZSA9IFRydWUsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzRQVmNEWEFrQWdRa1Z4NHB1aVNYZFo1SDhCclRxVXpzdEpCS0tXRnkzWHNIJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNPTEFjY291bnRXaXRoVmFsdWUoCiAgICAgICAgICAgICAgICBuYW1lID0gJ21pbnQnLAogICAgICAgICAgICAgICAgYWRkcmVzcyA9ICc0UFZjRFhBa0FnUWtWeDRwdWlTWGRaNUg4QnJUcVV6c3RKQktLV0Z5M1hzSCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U09MQWNjb3VudFdpdGhWYWx1ZShzZWxmKToKICAgICAgICAiIiJUZXN0IFNPTEFjY291bnRXaXRoVmFsdWUiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_sol_parameter.py b/test/test_sol_parameter.py index 745febf3..fdc5f6e3 100644 --- a/test/test_sol_parameter.py +++ b/test/test_sol_parameter.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.sol_parameter import SolParameter - - -class TestSolParameter(unittest.TestCase): - """SolParameter unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SolParameter: - """Test SolParameter - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SolParameter` - """ - model = SolParameter() - if include_optional: - return SolParameter( - name = 'mint', - type = 'u8' - ) - else: - return SolParameter( - name = 'mint', - type = 'u8', - ) - """ - - def testSolParameter(self): - """Test SolParameter""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvbF9wYXJhbWV0ZXIgaW1wb3J0IFNvbFBhcmFtZXRlcgoKCmNsYXNzIFRlc3RTb2xQYXJhbWV0ZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU29sUGFyYW1ldGVyIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTb2xQYXJhbWV0ZXI6CiAgICAgICAgIiIiVGVzdCBTb2xQYXJhbWV0ZXIKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU29sUGFyYW1ldGVyYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU29sUGFyYW1ldGVyKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU29sUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgbmFtZSA9ICdtaW50JywKICAgICAgICAgICAgICAgIHR5cGUgPSAndTgnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU29sUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgbmFtZSA9ICdtaW50JywKICAgICAgICAgICAgICAgIHR5cGUgPSAndTgnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNvbFBhcmFtZXRlcihzZWxmKToKICAgICAgICAiIiJUZXN0IFNvbFBhcmFtZXRlciIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_sol_parameter_with_value.py b/test/test_sol_parameter_with_value.py index ff809e11..66c25bd5 100644 --- a/test/test_sol_parameter_with_value.py +++ b/test/test_sol_parameter_with_value.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.sol_parameter_with_value import SolParameterWithValue - - -class TestSolParameterWithValue(unittest.TestCase): - """SolParameterWithValue unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SolParameterWithValue: - """Test SolParameterWithValue - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SolParameterWithValue` - """ - model = SolParameterWithValue() - if include_optional: - return SolParameterWithValue( - value = '1000000', - name = 'mint', - type = 'u8' - ) - else: - return SolParameterWithValue( - value = '1000000', - name = 'mint', - type = 'u8', - ) - """ - - def testSolParameterWithValue(self): - """Test SolParameterWithValue""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvbF9wYXJhbWV0ZXJfd2l0aF92YWx1ZSBpbXBvcnQgU29sUGFyYW1ldGVyV2l0aFZhbHVlCgoKY2xhc3MgVGVzdFNvbFBhcmFtZXRlcldpdGhWYWx1ZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTb2xQYXJhbWV0ZXJXaXRoVmFsdWUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNvbFBhcmFtZXRlcldpdGhWYWx1ZToKICAgICAgICAiIiJUZXN0IFNvbFBhcmFtZXRlcldpdGhWYWx1ZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTb2xQYXJhbWV0ZXJXaXRoVmFsdWVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTb2xQYXJhbWV0ZXJXaXRoVmFsdWUoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTb2xQYXJhbWV0ZXJXaXRoVmFsdWUoCiAgICAgICAgICAgICAgICB2YWx1ZSA9ICcxMDAwMDAwJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnbWludCcsCiAgICAgICAgICAgICAgICB0eXBlID0gJ3U4JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNvbFBhcmFtZXRlcldpdGhWYWx1ZSgKICAgICAgICAgICAgICAgIHZhbHVlID0gJzEwMDAwMDAnLAogICAgICAgICAgICAgICAgbmFtZSA9ICdtaW50JywKICAgICAgICAgICAgICAgIHR5cGUgPSAndTgnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNvbFBhcmFtZXRlcldpdGhWYWx1ZShzZWxmKToKICAgICAgICAiIiJUZXN0IFNvbFBhcmFtZXRlcldpdGhWYWx1ZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_solana_blockchain_data.py b/test/test_solana_blockchain_data.py index 1d54c281..ae7c9672 100644 --- a/test/test_solana_blockchain_data.py +++ b/test/test_solana_blockchain_data.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.solana_blockchain_data import SolanaBlockchainData - - -class TestSolanaBlockchainData(unittest.TestCase): - """SolanaBlockchainData unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SolanaBlockchainData: - """Test SolanaBlockchainData - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SolanaBlockchainData` - """ - model = SolanaBlockchainData() - if include_optional: - return SolanaBlockchainData( - stake_account_address = '3Ru67FyzMTcdENmmRL4Eve4dtPd6AdpuypR21q5EQCdq', - stake_account_derivation_change_value = 7 - ) - else: - return SolanaBlockchainData( - stake_account_address = '3Ru67FyzMTcdENmmRL4Eve4dtPd6AdpuypR21q5EQCdq', - stake_account_derivation_change_value = 7, - ) - """ - - def testSolanaBlockchainData(self): - """Test SolanaBlockchainData""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvbGFuYV9ibG9ja2NoYWluX2RhdGEgaW1wb3J0IFNvbGFuYUJsb2NrY2hhaW5EYXRhCgoKY2xhc3MgVGVzdFNvbGFuYUJsb2NrY2hhaW5EYXRhKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNvbGFuYUJsb2NrY2hhaW5EYXRhIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTb2xhbmFCbG9ja2NoYWluRGF0YToKICAgICAgICAiIiJUZXN0IFNvbGFuYUJsb2NrY2hhaW5EYXRhCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNvbGFuYUJsb2NrY2hhaW5EYXRhYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU29sYW5hQmxvY2tjaGFpbkRhdGEoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTb2xhbmFCbG9ja2NoYWluRGF0YSgKICAgICAgICAgICAgICAgIHN0YWtlX2FjY291bnRfYWRkcmVzcyA9ICczUnU2N0Z5ek1UY2RFTm1tUkw0RXZlNGR0UGQ2QWRwdXlwUjIxcTVFUUNkcScsCiAgICAgICAgICAgICAgICBzdGFrZV9hY2NvdW50X2Rlcml2YXRpb25fY2hhbmdlX3ZhbHVlID0gNwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNvbGFuYUJsb2NrY2hhaW5EYXRhKAogICAgICAgICAgICAgICAgc3Rha2VfYWNjb3VudF9hZGRyZXNzID0gJzNSdTY3Rnl6TVRjZEVObW1STDRFdmU0ZHRQZDZBZHB1eXBSMjFxNUVRQ2RxJywKICAgICAgICAgICAgICAgIHN0YWtlX2FjY291bnRfZGVyaXZhdGlvbl9jaGFuZ2VfdmFsdWUgPSA3LAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNvbGFuYUJsb2NrY2hhaW5EYXRhKHNlbGYpOgogICAgICAgICIiIlRlc3QgU29sYW5hQmxvY2tjaGFpbkRhdGEiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_solana_config.py b/test/test_solana_config.py index 7153d700..4aed5575 100644 --- a/test/test_solana_config.py +++ b/test/test_solana_config.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.solana_config import SolanaConfig - - -class TestSolanaConfig(unittest.TestCase): - """SolanaConfig unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SolanaConfig: - """Test SolanaConfig - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SolanaConfig` - """ - model = SolanaConfig() - if include_optional: - return SolanaConfig( - extensions = ["metadataPointer","transferHook"], - type = 'TOKEN2022' - ) - else: - return SolanaConfig( - ) - """ - - def testSolanaConfig(self): - """Test SolanaConfig""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvbGFuYV9jb25maWcgaW1wb3J0IFNvbGFuYUNvbmZpZwoKCmNsYXNzIFRlc3RTb2xhbmFDb25maWcodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU29sYW5hQ29uZmlnIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTb2xhbmFDb25maWc6CiAgICAgICAgIiIiVGVzdCBTb2xhbmFDb25maWcKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU29sYW5hQ29uZmlnYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU29sYW5hQ29uZmlnKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU29sYW5hQ29uZmlnKAogICAgICAgICAgICAgICAgZXh0ZW5zaW9ucyA9IFsibWV0YWRhdGFQb2ludGVyIiwidHJhbnNmZXJIb29rIl0sCiAgICAgICAgICAgICAgICB0eXBlID0gJ1RPS0VOMjAyMicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTb2xhbmFDb25maWcoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U29sYW5hQ29uZmlnKHNlbGYpOgogICAgICAgICIiIlRlc3QgU29sYW5hQ29uZmlnIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_solana_instruction.py b/test/test_solana_instruction.py index 773d5bd9..1ee63992 100644 --- a/test/test_solana_instruction.py +++ b/test/test_solana_instruction.py @@ -1,81 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.solana_instruction import SolanaInstruction - - -class TestSolanaInstruction(unittest.TestCase): - """SolanaInstruction unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SolanaInstruction: - """Test SolanaInstruction - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SolanaInstruction` - """ - model = SolanaInstruction() - if include_optional: - return SolanaInstruction( - name = 'transfer', - discriminator = [13], - accounts = [ - fireblocks.models.sol_account.SOLAccount( - name = 'mint', - signer = False, - writable = True, - address = '4PVcDXAkAgQkVx4puiSXdZ5H8BrTqUzstJBKKWFy3XsH', ) - ], - args = [ - fireblocks.models.sol_parameter.SolParameter( - name = 'mint', - type = 'u8', ) - ] - ) - else: - return SolanaInstruction( - name = 'transfer', - discriminator = [13], - accounts = [ - fireblocks.models.sol_account.SOLAccount( - name = 'mint', - signer = False, - writable = True, - address = '4PVcDXAkAgQkVx4puiSXdZ5H8BrTqUzstJBKKWFy3XsH', ) - ], - args = [ - fireblocks.models.sol_parameter.SolParameter( - name = 'mint', - type = 'u8', ) - ], - ) - """ - - def testSolanaInstruction(self): - """Test SolanaInstruction""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvbGFuYV9pbnN0cnVjdGlvbiBpbXBvcnQgU29sYW5hSW5zdHJ1Y3Rpb24KCgpjbGFzcyBUZXN0U29sYW5hSW5zdHJ1Y3Rpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU29sYW5hSW5zdHJ1Y3Rpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNvbGFuYUluc3RydWN0aW9uOgogICAgICAgICIiIlRlc3QgU29sYW5hSW5zdHJ1Y3Rpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU29sYW5hSW5zdHJ1Y3Rpb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTb2xhbmFJbnN0cnVjdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNvbGFuYUluc3RydWN0aW9uKAogICAgICAgICAgICAgICAgbmFtZSA9ICd0cmFuc2ZlcicsCiAgICAgICAgICAgICAgICBkaXNjcmltaW5hdG9yID0gWzEzXSwKICAgICAgICAgICAgICAgIGFjY291bnRzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnNvbF9hY2NvdW50LlNPTEFjY291bnQoCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnbWludCcsIAogICAgICAgICAgICAgICAgICAgICAgICBzaWduZXIgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnNFBWY0RYQWtBZ1FrVng0cHVpU1hkWjVIOEJyVHFVenN0SkJLS1dGeTNYc0gnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuc29sX3BhcmFtZXRlci5Tb2xQYXJhbWV0ZXIoCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnbWludCcsIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ3U4JywgKQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTb2xhbmFJbnN0cnVjdGlvbigKICAgICAgICAgICAgICAgIG5hbWUgPSAndHJhbnNmZXInLAogICAgICAgICAgICAgICAgZGlzY3JpbWluYXRvciA9IFsxM10sCiAgICAgICAgICAgICAgICBhY2NvdW50cyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5zb2xfYWNjb3VudC5TT0xBY2NvdW50KAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ21pbnQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVyID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZSA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzRQVmNEWEFrQWdRa1Z4NHB1aVNYZFo1SDhCclRxVXpzdEpCS0tXRnkzWHNIJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBhcmdzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnNvbF9wYXJhbWV0ZXIuU29sUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ21pbnQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICd1OCcsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNvbGFuYUluc3RydWN0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgU29sYW5hSW5zdHJ1Y3Rpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_solana_instruction_with_value.py b/test/test_solana_instruction_with_value.py index 7f96609d..131e1a20 100644 --- a/test/test_solana_instruction_with_value.py +++ b/test/test_solana_instruction_with_value.py @@ -1,83 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.solana_instruction_with_value import SolanaInstructionWithValue - - -class TestSolanaInstructionWithValue(unittest.TestCase): - """SolanaInstructionWithValue unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SolanaInstructionWithValue: - """Test SolanaInstructionWithValue - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SolanaInstructionWithValue` - """ - model = SolanaInstructionWithValue() - if include_optional: - return SolanaInstructionWithValue( - name = 'approve', - discriminator = [13], - accounts = [ - fireblocks.models.sol_account_with_value.SOLAccountWithValue( - name = 'mint', - signer = False, - writable = True, - address = '4PVcDXAkAgQkVx4puiSXdZ5H8BrTqUzstJBKKWFy3XsH', ) - ], - args = [ - fireblocks.models.sol_parameter_with_value.SolParameterWithValue( - value = '1000000', - name = 'mint', - type = 'u8', ) - ] - ) - else: - return SolanaInstructionWithValue( - name = 'approve', - discriminator = [13], - accounts = [ - fireblocks.models.sol_account_with_value.SOLAccountWithValue( - name = 'mint', - signer = False, - writable = True, - address = '4PVcDXAkAgQkVx4puiSXdZ5H8BrTqUzstJBKKWFy3XsH', ) - ], - args = [ - fireblocks.models.sol_parameter_with_value.SolParameterWithValue( - value = '1000000', - name = 'mint', - type = 'u8', ) - ], - ) - """ - - def testSolanaInstructionWithValue(self): - """Test SolanaInstructionWithValue""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvbGFuYV9pbnN0cnVjdGlvbl93aXRoX3ZhbHVlIGltcG9ydCBTb2xhbmFJbnN0cnVjdGlvbldpdGhWYWx1ZQoKCmNsYXNzIFRlc3RTb2xhbmFJbnN0cnVjdGlvbldpdGhWYWx1ZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTb2xhbmFJbnN0cnVjdGlvbldpdGhWYWx1ZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU29sYW5hSW5zdHJ1Y3Rpb25XaXRoVmFsdWU6CiAgICAgICAgIiIiVGVzdCBTb2xhbmFJbnN0cnVjdGlvbldpdGhWYWx1ZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTb2xhbmFJbnN0cnVjdGlvbldpdGhWYWx1ZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNvbGFuYUluc3RydWN0aW9uV2l0aFZhbHVlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU29sYW5hSW5zdHJ1Y3Rpb25XaXRoVmFsdWUoCiAgICAgICAgICAgICAgICBuYW1lID0gJ2FwcHJvdmUnLAogICAgICAgICAgICAgICAgZGlzY3JpbWluYXRvciA9IFsxM10sCiAgICAgICAgICAgICAgICBhY2NvdW50cyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5zb2xfYWNjb3VudF93aXRoX3ZhbHVlLlNPTEFjY291bnRXaXRoVmFsdWUoCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnbWludCcsIAogICAgICAgICAgICAgICAgICAgICAgICBzaWduZXIgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnNFBWY0RYQWtBZ1FrVng0cHVpU1hkWjVIOEJyVHFVenN0SkJLS1dGeTNYc0gnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuc29sX3BhcmFtZXRlcl93aXRoX3ZhbHVlLlNvbFBhcmFtZXRlcldpdGhWYWx1ZSgKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAnMTAwMDAwMCcsIAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ21pbnQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICd1OCcsICkKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU29sYW5hSW5zdHJ1Y3Rpb25XaXRoVmFsdWUoCiAgICAgICAgICAgICAgICBuYW1lID0gJ2FwcHJvdmUnLAogICAgICAgICAgICAgICAgZGlzY3JpbWluYXRvciA9IFsxM10sCiAgICAgICAgICAgICAgICBhY2NvdW50cyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5zb2xfYWNjb3VudF93aXRoX3ZhbHVlLlNPTEFjY291bnRXaXRoVmFsdWUoCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnbWludCcsIAogICAgICAgICAgICAgICAgICAgICAgICBzaWduZXIgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnNFBWY0RYQWtBZ1FrVng0cHVpU1hkWjVIOEJyVHFVenN0SkJLS1dGeTNYc0gnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuc29sX3BhcmFtZXRlcl93aXRoX3ZhbHVlLlNvbFBhcmFtZXRlcldpdGhWYWx1ZSgKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAnMTAwMDAwMCcsIAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ21pbnQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICd1OCcsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNvbGFuYUluc3RydWN0aW9uV2l0aFZhbHVlKHNlbGYpOgogICAgICAgICIiIlRlc3QgU29sYW5hSW5zdHJ1Y3Rpb25XaXRoVmFsdWUiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_solana_simple_create_params.py b/test/test_solana_simple_create_params.py index 2bf65e58..52d62288 100644 --- a/test/test_solana_simple_create_params.py +++ b/test/test_solana_simple_create_params.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.solana_simple_create_params import SolanaSimpleCreateParams - - -class TestSolanaSimpleCreateParams(unittest.TestCase): - """SolanaSimpleCreateParams unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SolanaSimpleCreateParams: - """Test SolanaSimpleCreateParams - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SolanaSimpleCreateParams` - """ - model = SolanaSimpleCreateParams() - if include_optional: - return SolanaSimpleCreateParams( - name = 'SolanaToken', - symbol = 'SOL', - decimals = 9 - ) - else: - return SolanaSimpleCreateParams( - name = 'SolanaToken', - symbol = 'SOL', - decimals = 9, - ) - """ - - def testSolanaSimpleCreateParams(self): - """Test SolanaSimpleCreateParams""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvbGFuYV9zaW1wbGVfY3JlYXRlX3BhcmFtcyBpbXBvcnQgU29sYW5hU2ltcGxlQ3JlYXRlUGFyYW1zCgoKY2xhc3MgVGVzdFNvbGFuYVNpbXBsZUNyZWF0ZVBhcmFtcyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTb2xhbmFTaW1wbGVDcmVhdGVQYXJhbXMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNvbGFuYVNpbXBsZUNyZWF0ZVBhcmFtczoKICAgICAgICAiIiJUZXN0IFNvbGFuYVNpbXBsZUNyZWF0ZVBhcmFtcwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTb2xhbmFTaW1wbGVDcmVhdGVQYXJhbXNgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTb2xhbmFTaW1wbGVDcmVhdGVQYXJhbXMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTb2xhbmFTaW1wbGVDcmVhdGVQYXJhbXMoCiAgICAgICAgICAgICAgICBuYW1lID0gJ1NvbGFuYVRva2VuJywKICAgICAgICAgICAgICAgIHN5bWJvbCA9ICdTT0wnLAogICAgICAgICAgICAgICAgZGVjaW1hbHMgPSA5CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU29sYW5hU2ltcGxlQ3JlYXRlUGFyYW1zKAogICAgICAgICAgICAgICAgbmFtZSA9ICdTb2xhbmFUb2tlbicsCiAgICAgICAgICAgICAgICBzeW1ib2wgPSAnU09MJywKICAgICAgICAgICAgICAgIGRlY2ltYWxzID0gOSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTb2xhbmFTaW1wbGVDcmVhdGVQYXJhbXMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTb2xhbmFTaW1wbGVDcmVhdGVQYXJhbXMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_source_config.py b/test/test_source_config.py index 419750a4..545ef05c 100644 --- a/test/test_source_config.py +++ b/test/test_source_config.py @@ -1,75 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.source_config import SourceConfig - - -class TestSourceConfig(unittest.TestCase): - """SourceConfig unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SourceConfig: - """Test SourceConfig - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SourceConfig` - """ - model = SourceConfig() - if include_optional: - return SourceConfig( - type = ["VAULT","UNMANAGED"], - sub_type = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - sub_type = 'INTERNAL', - address = '0x123...', ) - ], - ids = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - sub_type = 'INTERNAL', - address = '0x123...', ) - ], - tags = [ - fireblocks.models.policy_tag.PolicyTag( - id = 'tag_001', ) - ], - operator = 'INCLUDES', - match_from = 'ACCOUNT' - ) - else: - return SourceConfig( - operator = 'INCLUDES', - ) - """ - - def testSourceConfig(self): - """Test SourceConfig""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvdXJjZV9jb25maWcgaW1wb3J0IFNvdXJjZUNvbmZpZwoKCmNsYXNzIFRlc3RTb3VyY2VDb25maWcodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU291cmNlQ29uZmlnIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTb3VyY2VDb25maWc6CiAgICAgICAgIiIiVGVzdCBTb3VyY2VDb25maWcKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU291cmNlQ29uZmlnYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU291cmNlQ29uZmlnKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU291cmNlQ29uZmlnKAogICAgICAgICAgICAgICAgdHlwZSA9IFsiVkFVTFQiLCJVTk1BTkFHRUQiXSwKICAgICAgICAgICAgICAgIHN1Yl90eXBlID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmFjY291bnRfaWRlbnRpZmllci5BY2NvdW50SWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVCcsIAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdhY2NvdW50MTIzJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl90eXBlID0gJ0lOVEVSTkFMJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHgxMjMuLi4nLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGlkcyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2lkZW50aWZpZXIuQWNjb3VudElkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnYWNjb3VudDEyMycsIAogICAgICAgICAgICAgICAgICAgICAgICBzdWJfdHlwZSA9ICdJTlRFUk5BTCcsIAogICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzB4MTIzLi4uJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICB0YWdzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV90YWcuUG9saWN5VGFnKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICd0YWdfMDAxJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICdJTkNMVURFUycsCiAgICAgICAgICAgICAgICBtYXRjaF9mcm9tID0gJ0FDQ09VTlQnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU291cmNlQ29uZmlnKAogICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAnSU5DTFVERVMnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNvdXJjZUNvbmZpZyhzZWxmKToKICAgICAgICAiIiJUZXN0IFNvdXJjZUNvbmZpZyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_source_transfer_peer_path.py b/test/test_source_transfer_peer_path.py index 719983ae..7c372b33 100644 --- a/test/test_source_transfer_peer_path.py +++ b/test/test_source_transfer_peer_path.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.source_transfer_peer_path import SourceTransferPeerPath - - -class TestSourceTransferPeerPath(unittest.TestCase): - """SourceTransferPeerPath unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SourceTransferPeerPath: - """Test SourceTransferPeerPath - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SourceTransferPeerPath` - """ - model = SourceTransferPeerPath() - if include_optional: - return SourceTransferPeerPath( - type = 'VAULT_ACCOUNT', - sub_type = 'BINANCE', - id = '', - name = '', - wallet_id = '', - is_collateral = True - ) - else: - return SourceTransferPeerPath( - type = 'VAULT_ACCOUNT', - ) - """ - - def testSourceTransferPeerPath(self): - """Test SourceTransferPeerPath""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvdXJjZV90cmFuc2Zlcl9wZWVyX3BhdGggaW1wb3J0IFNvdXJjZVRyYW5zZmVyUGVlclBhdGgKCgpjbGFzcyBUZXN0U291cmNlVHJhbnNmZXJQZWVyUGF0aCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTb3VyY2VUcmFuc2ZlclBlZXJQYXRoIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTb3VyY2VUcmFuc2ZlclBlZXJQYXRoOgogICAgICAgICIiIlRlc3QgU291cmNlVHJhbnNmZXJQZWVyUGF0aAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTb3VyY2VUcmFuc2ZlclBlZXJQYXRoYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU291cmNlVHJhbnNmZXJQZWVyUGF0aCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNvdXJjZVRyYW5zZmVyUGVlclBhdGgoCiAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLAogICAgICAgICAgICAgICAgc3ViX3R5cGUgPSAnQklOQU5DRScsCiAgICAgICAgICAgICAgICBpZCA9ICcnLAogICAgICAgICAgICAgICAgbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgd2FsbGV0X2lkID0gJycsCiAgICAgICAgICAgICAgICBpc19jb2xsYXRlcmFsID0gVHJ1ZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNvdXJjZVRyYW5zZmVyUGVlclBhdGgoCiAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNvdXJjZVRyYW5zZmVyUGVlclBhdGgoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTb3VyY2VUcmFuc2ZlclBlZXJQYXRoIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_source_transfer_peer_path_response.py b/test/test_source_transfer_peer_path_response.py index 8451e48a..dbf1d96c 100644 --- a/test/test_source_transfer_peer_path_response.py +++ b/test/test_source_transfer_peer_path_response.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.source_transfer_peer_path_response import ( - SourceTransferPeerPathResponse, -) - - -class TestSourceTransferPeerPathResponse(unittest.TestCase): - """SourceTransferPeerPathResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SourceTransferPeerPathResponse: - """Test SourceTransferPeerPathResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SourceTransferPeerPathResponse` - """ - model = SourceTransferPeerPathResponse() - if include_optional: - return SourceTransferPeerPathResponse( - type = 'VAULT_ACCOUNT', - sub_type = '', - id = '', - name = '', - wallet_id = '', - trading_account = '' - ) - else: - return SourceTransferPeerPathResponse( - type = 'VAULT_ACCOUNT', - ) - """ - - def testSourceTransferPeerPathResponse(self): - """Test SourceTransferPeerPathResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNvdXJjZV90cmFuc2Zlcl9wZWVyX3BhdGhfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFNvdXJjZVRyYW5zZmVyUGVlclBhdGhSZXNwb25zZSwKKQoKCmNsYXNzIFRlc3RTb3VyY2VUcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU291cmNlVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTb3VyY2VUcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBTb3VyY2VUcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU291cmNlVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU291cmNlVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU291cmNlVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlKAogICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIHN1Yl90eXBlID0gJycsCiAgICAgICAgICAgICAgICBpZCA9ICcnLAogICAgICAgICAgICAgICAgbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgd2FsbGV0X2lkID0gJycsCiAgICAgICAgICAgICAgICB0cmFkaW5nX2FjY291bnQgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNvdXJjZVRyYW5zZmVyUGVlclBhdGhSZXNwb25zZSgKICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFRfQUNDT1VOVCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U291cmNlVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgU291cmNlVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_spam_ownership_response.py b/test/test_spam_ownership_response.py index 7090599d..9c842c55 100644 --- a/test/test_spam_ownership_response.py +++ b/test/test_spam_ownership_response.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.spam_ownership_response import SpamOwnershipResponse - - -class TestSpamOwnershipResponse(unittest.TestCase): - """SpamOwnershipResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SpamOwnershipResponse: - """Test SpamOwnershipResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SpamOwnershipResponse` - """ - model = SpamOwnershipResponse() - if include_optional: - return SpamOwnershipResponse( - result = True, - source = 'OWNER' - ) - else: - return SpamOwnershipResponse( - result = True, - source = 'OWNER', - ) - """ - - def testSpamOwnershipResponse(self): - """Test SpamOwnershipResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwYW1fb3duZXJzaGlwX3Jlc3BvbnNlIGltcG9ydCBTcGFtT3duZXJzaGlwUmVzcG9uc2UKCgpjbGFzcyBUZXN0U3BhbU93bmVyc2hpcFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNwYW1Pd25lcnNoaXBSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU3BhbU93bmVyc2hpcFJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgU3BhbU93bmVyc2hpcFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNwYW1Pd25lcnNoaXBSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNwYW1Pd25lcnNoaXBSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNwYW1Pd25lcnNoaXBSZXNwb25zZSgKICAgICAgICAgICAgICAgIHJlc3VsdCA9IFRydWUsCiAgICAgICAgICAgICAgICBzb3VyY2UgPSAnT1dORVInCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU3BhbU93bmVyc2hpcFJlc3BvbnNlKAogICAgICAgICAgICAgICAgcmVzdWx0ID0gVHJ1ZSwKICAgICAgICAgICAgICAgIHNvdXJjZSA9ICdPV05FUicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U3BhbU93bmVyc2hpcFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgU3BhbU93bmVyc2hpcFJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_spam_token_response.py b/test/test_spam_token_response.py index a542e720..0f26e095 100644 --- a/test/test_spam_token_response.py +++ b/test/test_spam_token_response.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.spam_token_response import SpamTokenResponse - - -class TestSpamTokenResponse(unittest.TestCase): - """SpamTokenResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SpamTokenResponse: - """Test SpamTokenResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SpamTokenResponse` - """ - model = SpamTokenResponse() - if include_optional: - return SpamTokenResponse( - result = True - ) - else: - return SpamTokenResponse( - result = True, - ) - """ - - def testSpamTokenResponse(self): - """Test SpamTokenResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwYW1fdG9rZW5fcmVzcG9uc2UgaW1wb3J0IFNwYW1Ub2tlblJlc3BvbnNlCgoKY2xhc3MgVGVzdFNwYW1Ub2tlblJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlNwYW1Ub2tlblJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTcGFtVG9rZW5SZXNwb25zZToKICAgICAgICAiIiJUZXN0IFNwYW1Ub2tlblJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFNwYW1Ub2tlblJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU3BhbVRva2VuUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTcGFtVG9rZW5SZXNwb25zZSgKICAgICAgICAgICAgICAgIHJlc3VsdCA9IFRydWUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTcGFtVG9rZW5SZXNwb25zZSgKICAgICAgICAgICAgICAgIHJlc3VsdCA9IFRydWUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U3BhbVRva2VuUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTcGFtVG9rZW5SZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_spei_address.py b/test/test_spei_address.py index b8478205..0a075a33 100644 --- a/test/test_spei_address.py +++ b/test/test_spei_address.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.spei_address import SpeiAddress - - -class TestSpeiAddress(unittest.TestCase): - """SpeiAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SpeiAddress: - """Test SpeiAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SpeiAddress` - """ - model = SpeiAddress() - if include_optional: - return SpeiAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - bank_name = '', - bank_account_number = '' - ) - else: - return SpeiAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - bank_account_number = '', - ) - """ - - def testSpeiAddress(self): - """Test SpeiAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwZWlfYWRkcmVzcyBpbXBvcnQgU3BlaUFkZHJlc3MKCgpjbGFzcyBUZXN0U3BlaUFkZHJlc3ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU3BlaUFkZHJlc3MgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFNwZWlBZGRyZXNzOgogICAgICAgICIiIlRlc3QgU3BlaUFkZHJlc3MKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU3BlaUFkZHJlc3NgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTcGVpQWRkcmVzcygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFNwZWlBZGRyZXNzKAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXIgPSB7Im5hbWUiOiJKb2huIFNtaXRoIiwiY2l0eSI6Ik5ldyBZb3JrIiwiY291bnRyeSI6IlVTIiwic3ViZGl2aXNpb24iOiJOWSIsImFkZHJlc3MiOiIxMjMgV2FsbCBTdHJlZXQsIEFwdCA0QiIsInBvc3RhbENvZGUiOiIxMDAwNSJ9LAogICAgICAgICAgICAgICAgYmFua19uYW1lID0gJycsCiAgICAgICAgICAgICAgICBiYW5rX2FjY291bnRfbnVtYmVyID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTcGVpQWRkcmVzcygKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyID0geyJuYW1lIjoiSm9obiBTbWl0aCIsImNpdHkiOiJOZXcgWW9yayIsImNvdW50cnkiOiJVUyIsInN1YmRpdmlzaW9uIjoiTlkiLCJhZGRyZXNzIjoiMTIzIFdhbGwgU3RyZWV0LCBBcHQgNEIiLCJwb3N0YWxDb2RlIjoiMTAwMDUifSwKICAgICAgICAgICAgICAgIGJhbmtfYWNjb3VudF9udW1iZXIgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTcGVpQWRkcmVzcyhzZWxmKToKICAgICAgICAiIiJUZXN0IFNwZWlBZGRyZXNzIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_spei_advanced_payment_info.py b/test/test_spei_advanced_payment_info.py index cf13afa3..3c3d3db5 100644 --- a/test/test_spei_advanced_payment_info.py +++ b/test/test_spei_advanced_payment_info.py @@ -1,68 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.spei_advanced_payment_info import SpeiAdvancedPaymentInfo - - -class TestSpeiAdvancedPaymentInfo(unittest.TestCase): - """SpeiAdvancedPaymentInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SpeiAdvancedPaymentInfo: - """Test SpeiAdvancedPaymentInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SpeiAdvancedPaymentInfo` - """ - model = SpeiAdvancedPaymentInfo() - if include_optional: - return SpeiAdvancedPaymentInfo( - rail = 'SPEI', - addressing_system = 'CLABE', - account_holder_given_name = 'Juan', - account_holder_surname = 'Pérez', - country = 'MX', - bank_name = 'Banco Nacional de México', - beneficiary_rfc = 'PERJ800101ABC', - sender_document_id = 'CURP123456789', - clabe = '012180001234567890' - ) - else: - return SpeiAdvancedPaymentInfo( - rail = 'SPEI', - addressing_system = 'CLABE', - account_holder_given_name = 'Juan', - account_holder_surname = 'Pérez', - country = 'MX', - clabe = '012180001234567890', - ) - """ - - def testSpeiAdvancedPaymentInfo(self): - """Test SpeiAdvancedPaymentInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwZWlfYWR2YW5jZWRfcGF5bWVudF9pbmZvIGltcG9ydCBTcGVpQWR2YW5jZWRQYXltZW50SW5mbwoKCmNsYXNzIFRlc3RTcGVpQWR2YW5jZWRQYXltZW50SW5mbyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTcGVpQWR2YW5jZWRQYXltZW50SW5mbyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU3BlaUFkdmFuY2VkUGF5bWVudEluZm86CiAgICAgICAgIiIiVGVzdCBTcGVpQWR2YW5jZWRQYXltZW50SW5mbwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTcGVpQWR2YW5jZWRQYXltZW50SW5mb2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNwZWlBZHZhbmNlZFBheW1lbnRJbmZvKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU3BlaUFkdmFuY2VkUGF5bWVudEluZm8oCiAgICAgICAgICAgICAgICByYWlsID0gJ1NQRUknLAogICAgICAgICAgICAgICAgYWRkcmVzc2luZ19zeXN0ZW0gPSAnQ0xBQkUnLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfZ2l2ZW5fbmFtZSA9ICdKdWFuJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX3N1cm5hbWUgPSAnUMOpcmV6JywKICAgICAgICAgICAgICAgIGNvdW50cnkgPSAnTVgnLAogICAgICAgICAgICAgICAgYmFua19uYW1lID0gJ0JhbmNvIE5hY2lvbmFsIGRlIE3DqXhpY28nLAogICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfcmZjID0gJ1BFUko4MDAxMDFBQkMnLAogICAgICAgICAgICAgICAgc2VuZGVyX2RvY3VtZW50X2lkID0gJ0NVUlAxMjM0NTY3ODknLAogICAgICAgICAgICAgICAgY2xhYmUgPSAnMDEyMTgwMDAxMjM0NTY3ODkwJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNwZWlBZHZhbmNlZFBheW1lbnRJbmZvKAogICAgICAgICAgICAgICAgcmFpbCA9ICdTUEVJJywKICAgICAgICAgICAgICAgIGFkZHJlc3Npbmdfc3lzdGVtID0gJ0NMQUJFJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2dpdmVuX25hbWUgPSAnSnVhbicsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9zdXJuYW1lID0gJ1DDqXJleicsCiAgICAgICAgICAgICAgICBjb3VudHJ5ID0gJ01YJywKICAgICAgICAgICAgICAgIGNsYWJlID0gJzAxMjE4MDAwMTIzNDU2Nzg5MCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U3BlaUFkdmFuY2VkUGF5bWVudEluZm8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBTcGVpQWR2YW5jZWRQYXltZW50SW5mbyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_spei_basic_payment_info.py b/test/test_spei_basic_payment_info.py index 4dfe3a50..ca6a78b6 100644 --- a/test/test_spei_basic_payment_info.py +++ b/test/test_spei_basic_payment_info.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.spei_basic_payment_info import SpeiBasicPaymentInfo - - -class TestSpeiBasicPaymentInfo(unittest.TestCase): - """SpeiBasicPaymentInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SpeiBasicPaymentInfo: - """Test SpeiBasicPaymentInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SpeiBasicPaymentInfo` - """ - model = SpeiBasicPaymentInfo() - if include_optional: - return SpeiBasicPaymentInfo( - spei_clabe = '012180001234567890', - spei_name = 'Juan Pérez' - ) - else: - return SpeiBasicPaymentInfo( - spei_clabe = '012180001234567890', - ) - """ - - def testSpeiBasicPaymentInfo(self): - """Test SpeiBasicPaymentInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwZWlfYmFzaWNfcGF5bWVudF9pbmZvIGltcG9ydCBTcGVpQmFzaWNQYXltZW50SW5mbwoKCmNsYXNzIFRlc3RTcGVpQmFzaWNQYXltZW50SW5mbyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTcGVpQmFzaWNQYXltZW50SW5mbyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU3BlaUJhc2ljUGF5bWVudEluZm86CiAgICAgICAgIiIiVGVzdCBTcGVpQmFzaWNQYXltZW50SW5mbwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTcGVpQmFzaWNQYXltZW50SW5mb2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNwZWlCYXNpY1BheW1lbnRJbmZvKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU3BlaUJhc2ljUGF5bWVudEluZm8oCiAgICAgICAgICAgICAgICBzcGVpX2NsYWJlID0gJzAxMjE4MDAwMTIzNDU2Nzg5MCcsCiAgICAgICAgICAgICAgICBzcGVpX25hbWUgPSAnSnVhbiBQw6lyZXonCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU3BlaUJhc2ljUGF5bWVudEluZm8oCiAgICAgICAgICAgICAgICBzcGVpX2NsYWJlID0gJzAxMjE4MDAwMTIzNDU2Nzg5MCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U3BlaUJhc2ljUGF5bWVudEluZm8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBTcGVpQmFzaWNQYXltZW50SW5mbyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_spei_destination.py b/test/test_spei_destination.py index 22c8a37c..3d3e3370 100644 --- a/test/test_spei_destination.py +++ b/test/test_spei_destination.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.spei_destination import SpeiDestination - - -class TestSpeiDestination(unittest.TestCase): - """SpeiDestination unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SpeiDestination: - """Test SpeiDestination - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SpeiDestination` - """ - model = SpeiDestination() - if include_optional: - return SpeiDestination( - type = 'SPEI', - address = {"accountHolder":{"name":"Carlos Martinez Lopez","city":"Mexico City","country":"MX","subdivision":"CDMX","address":"Avenida Reforma 123","postalCode":"06600"},"bankName":"BBVA México","bankAccountNumber":"012180001234567890"} - ) - else: - return SpeiDestination( - type = 'SPEI', - address = {"accountHolder":{"name":"Carlos Martinez Lopez","city":"Mexico City","country":"MX","subdivision":"CDMX","address":"Avenida Reforma 123","postalCode":"06600"},"bankName":"BBVA México","bankAccountNumber":"012180001234567890"}, - ) - """ - - def testSpeiDestination(self): - """Test SpeiDestination""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwZWlfZGVzdGluYXRpb24gaW1wb3J0IFNwZWlEZXN0aW5hdGlvbgoKCmNsYXNzIFRlc3RTcGVpRGVzdGluYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU3BlaURlc3RpbmF0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTcGVpRGVzdGluYXRpb246CiAgICAgICAgIiIiVGVzdCBTcGVpRGVzdGluYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU3BlaURlc3RpbmF0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU3BlaURlc3RpbmF0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU3BlaURlc3RpbmF0aW9uKAogICAgICAgICAgICAgICAgdHlwZSA9ICdTUEVJJywKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSB7ImFjY291bnRIb2xkZXIiOnsibmFtZSI6IkNhcmxvcyBNYXJ0aW5leiBMb3BleiIsImNpdHkiOiJNZXhpY28gQ2l0eSIsImNvdW50cnkiOiJNWCIsInN1YmRpdmlzaW9uIjoiQ0RNWCIsImFkZHJlc3MiOiJBdmVuaWRhIFJlZm9ybWEgMTIzIiwicG9zdGFsQ29kZSI6IjA2NjAwIn0sImJhbmtOYW1lIjoiQkJWQSBNw6l4aWNvIiwiYmFua0FjY291bnROdW1iZXIiOiIwMTIxODAwMDEyMzQ1Njc4OTAifQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNwZWlEZXN0aW5hdGlvbigKICAgICAgICAgICAgICAgIHR5cGUgPSAnU1BFSScsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0geyJhY2NvdW50SG9sZGVyIjp7Im5hbWUiOiJDYXJsb3MgTWFydGluZXogTG9wZXoiLCJjaXR5IjoiTWV4aWNvIENpdHkiLCJjb3VudHJ5IjoiTVgiLCJzdWJkaXZpc2lvbiI6IkNETVgiLCJhZGRyZXNzIjoiQXZlbmlkYSBSZWZvcm1hIDEyMyIsInBvc3RhbENvZGUiOiIwNjYwMCJ9LCJiYW5rTmFtZSI6IkJCVkEgTcOpeGljbyIsImJhbmtBY2NvdW50TnVtYmVyIjoiMDEyMTgwMDAxMjM0NTY3ODkwIn0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U3BlaURlc3RpbmF0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgU3BlaURlc3RpbmF0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_split_request.py b/test/test_split_request.py index be8ee3d8..7d287ff7 100644 --- a/test/test_split_request.py +++ b/test/test_split_request.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.split_request import SplitRequest - - -class TestSplitRequest(unittest.TestCase): - """SplitRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SplitRequest: - """Test SplitRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SplitRequest` - """ - model = SplitRequest() - if include_optional: - return SplitRequest( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - amount = '20', - fee = '7', - fee_level = 'MEDIUM', - tx_note = 'split 20 SOL out of 100 SOL, created on 02.04.23' - ) - else: - return SplitRequest( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - amount = '20', - ) - """ - - def testSplitRequest(self): - """Test SplitRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwbGl0X3JlcXVlc3QgaW1wb3J0IFNwbGl0UmVxdWVzdAoKCmNsYXNzIFRlc3RTcGxpdFJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU3BsaXRSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTcGxpdFJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBTcGxpdFJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU3BsaXRSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU3BsaXRSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU3BsaXRSZXF1ZXN0KAogICAgICAgICAgICAgICAgaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywKICAgICAgICAgICAgICAgIGFtb3VudCA9ICcyMCcsCiAgICAgICAgICAgICAgICBmZWUgPSAnNycsCiAgICAgICAgICAgICAgICBmZWVfbGV2ZWwgPSAnTUVESVVNJywKICAgICAgICAgICAgICAgIHR4X25vdGUgPSAnc3BsaXQgMjAgU09MIG91dCBvZiAxMDAgU09MLCBjcmVhdGVkIG9uIDAyLjA0LjIzJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNwbGl0UmVxdWVzdCgKICAgICAgICAgICAgICAgIGlkID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCcsCiAgICAgICAgICAgICAgICBhbW91bnQgPSAnMjAnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNwbGl0UmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFNwbGl0UmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_split_response.py b/test/test_split_response.py index a7f0f2cf..f70f17f2 100644 --- a/test/test_split_response.py +++ b/test/test_split_response.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.split_response import SplitResponse - - -class TestSplitResponse(unittest.TestCase): - """SplitResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SplitResponse: - """Test SplitResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SplitResponse` - """ - model = SplitResponse() - if include_optional: - return SplitResponse( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d' - ) - else: - return SplitResponse( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - ) - """ - - def testSplitResponse(self): - """Test SplitResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnNwbGl0X3Jlc3BvbnNlIGltcG9ydCBTcGxpdFJlc3BvbnNlCgoKY2xhc3MgVGVzdFNwbGl0UmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU3BsaXRSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU3BsaXRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFNwbGl0UmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU3BsaXRSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFNwbGl0UmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTcGxpdFJlc3BvbnNlKAogICAgICAgICAgICAgICAgaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFNwbGl0UmVzcG9uc2UoCiAgICAgICAgICAgICAgICBpZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFNwbGl0UmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTcGxpdFJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_st_eth_blockchain_data.py b/test/test_st_eth_blockchain_data.py index c20068eb..a016ff19 100644 --- a/test/test_st_eth_blockchain_data.py +++ b/test/test_st_eth_blockchain_data.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.st_eth_blockchain_data import StEthBlockchainData - - -class TestStEthBlockchainData(unittest.TestCase): - """StEthBlockchainData unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> StEthBlockchainData: - """Test StEthBlockchainData - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `StEthBlockchainData` - """ - model = StEthBlockchainData() - if include_optional: - return StEthBlockchainData( - total_withdrawable_amount = '1.5', - total_inactive_amount = '2.0' - ) - else: - return StEthBlockchainData( - total_withdrawable_amount = '1.5', - total_inactive_amount = '2.0', - ) - """ - - def testStEthBlockchainData(self): - """Test StEthBlockchainData""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN0X2V0aF9ibG9ja2NoYWluX2RhdGEgaW1wb3J0IFN0RXRoQmxvY2tjaGFpbkRhdGEKCgpjbGFzcyBUZXN0U3RFdGhCbG9ja2NoYWluRGF0YSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTdEV0aEJsb2NrY2hhaW5EYXRhIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTdEV0aEJsb2NrY2hhaW5EYXRhOgogICAgICAgICIiIlRlc3QgU3RFdGhCbG9ja2NoYWluRGF0YQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTdEV0aEJsb2NrY2hhaW5EYXRhYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU3RFdGhCbG9ja2NoYWluRGF0YSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFN0RXRoQmxvY2tjaGFpbkRhdGEoCiAgICAgICAgICAgICAgICB0b3RhbF93aXRoZHJhd2FibGVfYW1vdW50ID0gJzEuNScsCiAgICAgICAgICAgICAgICB0b3RhbF9pbmFjdGl2ZV9hbW91bnQgPSAnMi4wJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFN0RXRoQmxvY2tjaGFpbkRhdGEoCiAgICAgICAgICAgICAgICB0b3RhbF93aXRoZHJhd2FibGVfYW1vdW50ID0gJzEuNScsCiAgICAgICAgICAgICAgICB0b3RhbF9pbmFjdGl2ZV9hbW91bnQgPSAnMi4wJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTdEV0aEJsb2NrY2hhaW5EYXRhKHNlbGYpOgogICAgICAgICIiIlRlc3QgU3RFdGhCbG9ja2NoYWluRGF0YSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_stake_request.py b/test/test_stake_request.py index a875a965..76b7abce 100644 --- a/test/test_stake_request.py +++ b/test/test_stake_request.py @@ -1,65 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.stake_request import StakeRequest - - -class TestStakeRequest(unittest.TestCase): - """StakeRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> StakeRequest: - """Test StakeRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `StakeRequest` - """ - model = StakeRequest() - if include_optional: - return StakeRequest( - vault_account_id = '22', - provider_id = 'kiln', - stake_amount = '32', - tx_note = 'stake request of 32ETH created on 02.04.23', - fee = '7', - fee_level = 'MEDIUM', - chain_descriptor = 'ETH', - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - is_compounding_validator = True - ) - else: - return StakeRequest( - vault_account_id = '22', - provider_id = 'kiln', - stake_amount = '32', - ) - """ - - def testStakeRequest(self): - """Test StakeRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN0YWtlX3JlcXVlc3QgaW1wb3J0IFN0YWtlUmVxdWVzdAoKCmNsYXNzIFRlc3RTdGFrZVJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU3Rha2VSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTdGFrZVJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBTdGFrZVJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU3Rha2VSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU3Rha2VSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU3Rha2VSZXF1ZXN0KAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcyMicsCiAgICAgICAgICAgICAgICBwcm92aWRlcl9pZCA9ICdraWxuJywKICAgICAgICAgICAgICAgIHN0YWtlX2Ftb3VudCA9ICczMicsCiAgICAgICAgICAgICAgICB0eF9ub3RlID0gJ3N0YWtlIHJlcXVlc3Qgb2YgMzJFVEggY3JlYXRlZCBvbiAwMi4wNC4yMycsCiAgICAgICAgICAgICAgICBmZWUgPSAnNycsCiAgICAgICAgICAgICAgICBmZWVfbGV2ZWwgPSAnTUVESVVNJywKICAgICAgICAgICAgICAgIGNoYWluX2Rlc2NyaXB0b3IgPSAnRVRIJywKICAgICAgICAgICAgICAgIGlkID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCcsCiAgICAgICAgICAgICAgICBpc19jb21wb3VuZGluZ192YWxpZGF0b3IgPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU3Rha2VSZXF1ZXN0KAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcyMicsCiAgICAgICAgICAgICAgICBwcm92aWRlcl9pZCA9ICdraWxuJywKICAgICAgICAgICAgICAgIHN0YWtlX2Ftb3VudCA9ICczMicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U3Rha2VSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgU3Rha2VSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_stake_response.py b/test/test_stake_response.py index 6f2b06d6..04a498bd 100644 --- a/test/test_stake_response.py +++ b/test/test_stake_response.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.stake_response import StakeResponse - - -class TestStakeResponse(unittest.TestCase): - """StakeResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> StakeResponse: - """Test StakeResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `StakeResponse` - """ - model = StakeResponse() - if include_optional: - return StakeResponse( - id = 'afedfd2e4-e3c9-4b70-90d6-eb0f74bfd4sd8' - ) - else: - return StakeResponse( - id = 'afedfd2e4-e3c9-4b70-90d6-eb0f74bfd4sd8', - ) - """ - - def testStakeResponse(self): - """Test StakeResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN0YWtlX3Jlc3BvbnNlIGltcG9ydCBTdGFrZVJlc3BvbnNlCgoKY2xhc3MgVGVzdFN0YWtlUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU3Rha2VSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU3Rha2VSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFN0YWtlUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU3Rha2VSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFN0YWtlUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTdGFrZVJlc3BvbnNlKAogICAgICAgICAgICAgICAgaWQgPSAnYWZlZGZkMmU0LWUzYzktNGI3MC05MGQ2LWViMGY3NGJmZDRzZDgnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU3Rha2VSZXNwb25zZSgKICAgICAgICAgICAgICAgIGlkID0gJ2FmZWRmZDJlNC1lM2M5LTRiNzAtOTBkNi1lYjBmNzRiZmQ0c2Q4JywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTdGFrZVJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgU3Rha2VSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_staking_api.py b/test/test_staking_api.py index a50c4109..afdc3c93 100644 --- a/test/test_staking_api.py +++ b/test/test_staking_api.py @@ -1,137 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.staking_api import StakingApi - - -class TestStakingApi(unittest.TestCase): - """StakingApi unit test stubs""" - - def setUp(self) -> None: - self.api = StakingApi() - - def tearDown(self) -> None: - pass - - def test_approve_terms_of_service_by_provider_id(self) -> None: - """Test case for approve_terms_of_service_by_provider_id - - Approve provider terms of service - """ - pass - - def test_claim_rewards(self) -> None: - """Test case for claim_rewards - - Claim accrued rewards - """ - pass - - def test_consolidate(self) -> None: - """Test case for consolidate - - Consolidate staking positions (ETH validator consolidation) - """ - pass - - def test_get_all_delegations(self) -> None: - """Test case for get_all_delegations - - List staking positions - """ - pass - - def test_get_chain_info(self) -> None: - """Test case for get_chain_info - - Get chain-level staking parameters - """ - pass - - def test_get_chains(self) -> None: - """Test case for get_chains - - List supported staking chains - """ - pass - - def test_get_delegation_by_id(self) -> None: - """Test case for get_delegation_by_id - - Get position details - """ - pass - - def test_get_providers(self) -> None: - """Test case for get_providers - - List staking providers - """ - pass - - def test_get_summary(self) -> None: - """Test case for get_summary - - Get positions summary - """ - pass - - def test_get_summary_by_vault(self) -> None: - """Test case for get_summary_by_vault - - Get positions summary by vault - """ - pass - - def test_merge_stake_accounts(self) -> None: - """Test case for merge_stake_accounts - - Merge staking positions - """ - pass - - def test_split(self) -> None: - """Test case for split - - Split a staking position - """ - pass - - def test_stake(self) -> None: - """Test case for stake - - Initiate or add to existing stake - """ - pass - - def test_unstake(self) -> None: - """Test case for unstake - - Initiate unstake - """ - pass - - def test_withdraw(self) -> None: - """Test case for withdraw - - Withdraw staked funds - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLnN0YWtpbmdfYXBpIGltcG9ydCBTdGFraW5nQXBpCgoKY2xhc3MgVGVzdFN0YWtpbmdBcGkodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU3Rha2luZ0FwaSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZikgLT4gTm9uZToKICAgICAgICBzZWxmLmFwaSA9IFN0YWtpbmdBcGkoKQoKICAgIGRlZiB0ZWFyRG93bihzZWxmKSAtPiBOb25lOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9hcHByb3ZlX3Rlcm1zX29mX3NlcnZpY2VfYnlfcHJvdmlkZXJfaWQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGFwcHJvdmVfdGVybXNfb2Zfc2VydmljZV9ieV9wcm92aWRlcl9pZAoKICAgICAgICBBcHByb3ZlIHByb3ZpZGVyIHRlcm1zIG9mIHNlcnZpY2UKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY2xhaW1fcmV3YXJkcyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgY2xhaW1fcmV3YXJkcwoKICAgICAgICBDbGFpbSBhY2NydWVkIHJld2FyZHMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY29uc29saWRhdGUoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGNvbnNvbGlkYXRlCgogICAgICAgIENvbnNvbGlkYXRlIHN0YWtpbmcgcG9zaXRpb25zIChFVEggdmFsaWRhdG9yIGNvbnNvbGlkYXRpb24pCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9hbGxfZGVsZWdhdGlvbnMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9hbGxfZGVsZWdhdGlvbnMKCiAgICAgICAgTGlzdCBzdGFraW5nIHBvc2l0aW9ucwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfY2hhaW5faW5mbyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2NoYWluX2luZm8KCiAgICAgICAgR2V0IGNoYWluLWxldmVsIHN0YWtpbmcgcGFyYW1ldGVycwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfY2hhaW5zKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfY2hhaW5zCgogICAgICAgIExpc3Qgc3VwcG9ydGVkIHN0YWtpbmcgY2hhaW5zCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9kZWxlZ2F0aW9uX2J5X2lkKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfZGVsZWdhdGlvbl9ieV9pZAoKICAgICAgICBHZXQgcG9zaXRpb24gZGV0YWlscwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfcG9zaXRpb25zKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfcG9zaXRpb25zCgogICAgICAgIExpc3Qgc3Rha2luZyBwb3NpdGlvbnMgKFBhZ2luYXRlZCkKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3Byb3ZpZGVycyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X3Byb3ZpZGVycwoKICAgICAgICBMaXN0IHN0YWtpbmcgcHJvdmlkZXJzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9zdW1tYXJ5KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfc3VtbWFyeQoKICAgICAgICBHZXQgcG9zaXRpb25zIHN1bW1hcnkKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3N1bW1hcnlfYnlfdmF1bHQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9zdW1tYXJ5X2J5X3ZhdWx0CgogICAgICAgIEdldCBwb3NpdGlvbnMgc3VtbWFyeSBieSB2YXVsdAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9tZXJnZV9zdGFrZV9hY2NvdW50cyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgbWVyZ2Vfc3Rha2VfYWNjb3VudHMKCiAgICAgICAgTWVyZ2Ugc3Rha2luZyBwb3NpdGlvbnMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3Rfc3BsaXQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHNwbGl0CgogICAgICAgIFNwbGl0IGEgc3Rha2luZyBwb3NpdGlvbgogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9zdGFrZShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3Igc3Rha2UKCiAgICAgICAgSW5pdGlhdGUgb3IgYWRkIHRvIGV4aXN0aW5nIHN0YWtlCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3Vuc3Rha2Uoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHVuc3Rha2UKCiAgICAgICAgSW5pdGlhdGUgdW5zdGFrZQogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF93aXRoZHJhdyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3Igd2l0aGRyYXcKCiAgICAgICAgV2l0aGRyYXcgc3Rha2VkIGZ1bmRzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_staking_positions_paginated_response.py b/test/test_staking_positions_paginated_response.py new file mode 100644 index 00000000..7d771292 --- /dev/null +++ b/test/test_staking_positions_paginated_response.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN0YWtpbmdfcG9zaXRpb25zX3BhZ2luYXRlZF9yZXNwb25zZSBpbXBvcnQgKAogICAgU3Rha2luZ1Bvc2l0aW9uc1BhZ2luYXRlZFJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdFN0YWtpbmdQb3NpdGlvbnNQYWdpbmF0ZWRSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTdGFraW5nUG9zaXRpb25zUGFnaW5hdGVkUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFN0YWtpbmdQb3NpdGlvbnNQYWdpbmF0ZWRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFN0YWtpbmdQb3NpdGlvbnNQYWdpbmF0ZWRSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTdGFraW5nUG9zaXRpb25zUGFnaW5hdGVkUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTdGFraW5nUG9zaXRpb25zUGFnaW5hdGVkUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTdGFraW5nUG9zaXRpb25zUGFnaW5hdGVkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvc2l0aW9uLlBvc2l0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcyJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcl9uYW1lID0gJ0Z3UjNQLi4uLi4udFQ1OWYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJfbmFtZSA9ICdLaWxuJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNoYWluX2Rlc2NyaXB0b3IgPSAnU09MJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcwLjA1JywgCiAgICAgICAgICAgICAgICAgICAgICAgIHJld2FyZHNfYW1vdW50ID0gJzAuMDAwODU2MDM4JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY3JlYXRlZCA9ICcyMDIzLTA3LTEzVDE1OjU1OjM0LjI1NlonLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV91cGRhdGVkID0gJzIwMjMtMDctMTNUMTU6NTU6MzQuMjU2WicsIAogICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQUNUSVZFJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcl9hZGRyZXNzID0gJ0Z3UjNQYmpTNWl5cXpMaUx1Z3JCcUtTYTVFS1o0dks5U0tzN2VRWHRUNTlmJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyX2lkID0gJ2tpbG4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlX2FjdGlvbnMgPSBbIlVOU1RBS0UiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGluX3Byb2dyZXNzID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGluX3Byb2dyZXNzX3R4X2lkID0gJ2M4MDYwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViNDUwYycsIAogICAgICAgICAgICAgICAgICAgICAgICBibG9ja2NoYWluX3Bvc2l0aW9uX2luZm8gPSBudWxsLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIG5leHQgPSAnZUowZVhBaU9pSktWMVFpTENKaGJHY09pSklVekkxTmlKOScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTdGFraW5nUG9zaXRpb25zUGFnaW5hdGVkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvc2l0aW9uLlBvc2l0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcyJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcl9uYW1lID0gJ0Z3UjNQLi4uLi4udFQ1OWYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJfbmFtZSA9ICdLaWxuJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNoYWluX2Rlc2NyaXB0b3IgPSAnU09MJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcwLjA1JywgCiAgICAgICAgICAgICAgICAgICAgICAgIHJld2FyZHNfYW1vdW50ID0gJzAuMDAwODU2MDM4JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY3JlYXRlZCA9ICcyMDIzLTA3LTEzVDE1OjU1OjM0LjI1NlonLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV91cGRhdGVkID0gJzIwMjMtMDctMTNUMTU6NTU6MzQuMjU2WicsIAogICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQUNUSVZFJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcl9hZGRyZXNzID0gJ0Z3UjNQYmpTNWl5cXpMaUx1Z3JCcUtTYTVFS1o0dks5U0tzN2VRWHRUNTlmJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyX2lkID0gJ2tpbG4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlX2FjdGlvbnMgPSBbIlVOU1RBS0UiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGluX3Byb2dyZXNzID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGluX3Byb2dyZXNzX3R4X2lkID0gJ2M4MDYwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViNDUwYycsIAogICAgICAgICAgICAgICAgICAgICAgICBibG9ja2NoYWluX3Bvc2l0aW9uX2luZm8gPSBudWxsLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTdGFraW5nUG9zaXRpb25zUGFnaW5hdGVkUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBTdGFraW5nUG9zaXRpb25zUGFnaW5hdGVkUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_staking_provider.py b/test/test_staking_provider.py index 3476b9d0..7e508e34 100644 --- a/test/test_staking_provider.py +++ b/test/test_staking_provider.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.staking_provider import StakingProvider - - -class TestStakingProvider(unittest.TestCase): - """StakingProvider unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testStakingProvider(self): - """Test StakingProvider""" - # inst = StakingProvider() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN0YWtpbmdfcHJvdmlkZXIgaW1wb3J0IFN0YWtpbmdQcm92aWRlcgoKCmNsYXNzIFRlc3RTdGFraW5nUHJvdmlkZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU3Rha2luZ1Byb3ZpZGVyIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdFN0YWtpbmdQcm92aWRlcihzZWxmKToKICAgICAgICAiIiJUZXN0IFN0YWtpbmdQcm92aWRlciIiIgogICAgICAgICMgaW5zdCA9IFN0YWtpbmdQcm92aWRlcigpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_status.py b/test/test_status.py index 0fce7cdd..122b9ee2 100644 --- a/test/test_status.py +++ b/test/test_status.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.status import Status - - -class TestStatus(unittest.TestCase): - """Status unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Status: - """Test Status - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Status` - """ - model = Status() - if include_optional: - return Status( - status = 'COMPLETED', - type = 'PAIR_API_KEY' - ) - else: - return Status( - status = 'COMPLETED', - type = 'PAIR_API_KEY', - ) - """ - - def testStatus(self): - """Test Status""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN0YXR1cyBpbXBvcnQgU3RhdHVzCgoKY2xhc3MgVGVzdFN0YXR1cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTdGF0dXMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFN0YXR1czoKICAgICAgICAiIiJUZXN0IFN0YXR1cwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTdGF0dXNgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBTdGF0dXMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTdGF0dXMoCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnUEFJUl9BUElfS0VZJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFN0YXR1cygKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLAogICAgICAgICAgICAgICAgdHlwZSA9ICdQQUlSX0FQSV9LRVknLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFN0YXR1cyhzZWxmKToKICAgICAgICAiIiJUZXN0IFN0YXR1cyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_stellar_ripple_create_params_dto.py b/test/test_stellar_ripple_create_params_dto.py index fcd1f51b..9cefcdd2 100644 --- a/test/test_stellar_ripple_create_params_dto.py +++ b/test/test_stellar_ripple_create_params_dto.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.stellar_ripple_create_params_dto import ( - StellarRippleCreateParamsDto, -) - - -class TestStellarRippleCreateParamsDto(unittest.TestCase): - """StellarRippleCreateParamsDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> StellarRippleCreateParamsDto: - """Test StellarRippleCreateParamsDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `StellarRippleCreateParamsDto` - """ - model = StellarRippleCreateParamsDto() - if include_optional: - return StellarRippleCreateParamsDto( - symbol = 'MyUSDT', - name = 'My USD Tether', - issuer_address = 'rnDV4JiwgRNhudPY2sm65AzECpRXaasL4r' - ) - else: - return StellarRippleCreateParamsDto( - symbol = 'MyUSDT', - name = 'My USD Tether', - issuer_address = 'rnDV4JiwgRNhudPY2sm65AzECpRXaasL4r', - ) - """ - - def testStellarRippleCreateParamsDto(self): - """Test StellarRippleCreateParamsDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN0ZWxsYXJfcmlwcGxlX2NyZWF0ZV9wYXJhbXNfZHRvIGltcG9ydCAoCiAgICBTdGVsbGFyUmlwcGxlQ3JlYXRlUGFyYW1zRHRvLAopCgoKY2xhc3MgVGVzdFN0ZWxsYXJSaXBwbGVDcmVhdGVQYXJhbXNEdG8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU3RlbGxhclJpcHBsZUNyZWF0ZVBhcmFtc0R0byB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU3RlbGxhclJpcHBsZUNyZWF0ZVBhcmFtc0R0bzoKICAgICAgICAiIiJUZXN0IFN0ZWxsYXJSaXBwbGVDcmVhdGVQYXJhbXNEdG8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU3RlbGxhclJpcHBsZUNyZWF0ZVBhcmFtc0R0b2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFN0ZWxsYXJSaXBwbGVDcmVhdGVQYXJhbXNEdG8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTdGVsbGFyUmlwcGxlQ3JlYXRlUGFyYW1zRHRvKAogICAgICAgICAgICAgICAgc3ltYm9sID0gJ015VVNEVCcsCiAgICAgICAgICAgICAgICBuYW1lID0gJ015IFVTRCBUZXRoZXInLAogICAgICAgICAgICAgICAgaXNzdWVyX2FkZHJlc3MgPSAncm5EVjRKaXdnUk5odWRQWTJzbTY1QXpFQ3BSWGFhc0w0cicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTdGVsbGFyUmlwcGxlQ3JlYXRlUGFyYW1zRHRvKAogICAgICAgICAgICAgICAgc3ltYm9sID0gJ015VVNEVCcsCiAgICAgICAgICAgICAgICBuYW1lID0gJ015IFVTRCBUZXRoZXInLAogICAgICAgICAgICAgICAgaXNzdWVyX2FkZHJlc3MgPSAncm5EVjRKaXdnUk5odWRQWTJzbTY1QXpFQ3BSWGFhc0w0cicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U3RlbGxhclJpcHBsZUNyZWF0ZVBhcmFtc0R0byhzZWxmKToKICAgICAgICAiIiJUZXN0IFN0ZWxsYXJSaXBwbGVDcmVhdGVQYXJhbXNEdG8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_supported_block_chains_response.py b/test/test_supported_block_chains_response.py index db7f47e2..4ab85a24 100644 --- a/test/test_supported_block_chains_response.py +++ b/test/test_supported_block_chains_response.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.supported_block_chains_response import ( - SupportedBlockChainsResponse, -) - - -class TestSupportedBlockChainsResponse(unittest.TestCase): - """SupportedBlockChainsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SupportedBlockChainsResponse: - """Test SupportedBlockChainsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SupportedBlockChainsResponse` - """ - model = SupportedBlockChainsResponse() - if include_optional: - return SupportedBlockChainsResponse( - supports_all_blockchains = True, - supported_blockchains = [ - fireblocks.models.supported_blockchain.SupportedBlockchain( - id = '9f9f7062-df90-4fc0-8697-96685184357b', - legacy_id = 'ETH', - display_name = 'Ethereum', - native_asset_id = '9f9f7062-df90-4fc0-8697-96685184356a', ) - ] - ) - else: - return SupportedBlockChainsResponse( - supports_all_blockchains = True, - ) - """ - - def testSupportedBlockChainsResponse(self): - """Test SupportedBlockChainsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN1cHBvcnRlZF9ibG9ja19jaGFpbnNfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFN1cHBvcnRlZEJsb2NrQ2hhaW5zUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0U3VwcG9ydGVkQmxvY2tDaGFpbnNSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJTdXBwb3J0ZWRCbG9ja0NoYWluc1Jlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTdXBwb3J0ZWRCbG9ja0NoYWluc1Jlc3BvbnNlOgogICAgICAgICIiIlRlc3QgU3VwcG9ydGVkQmxvY2tDaGFpbnNSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBTdXBwb3J0ZWRCbG9ja0NoYWluc1Jlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU3VwcG9ydGVkQmxvY2tDaGFpbnNSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFN1cHBvcnRlZEJsb2NrQ2hhaW5zUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBzdXBwb3J0c19hbGxfYmxvY2tjaGFpbnMgPSBUcnVlLAogICAgICAgICAgICAgICAgc3VwcG9ydGVkX2Jsb2NrY2hhaW5zID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnN1cHBvcnRlZF9ibG9ja2NoYWluLlN1cHBvcnRlZEJsb2NrY2hhaW4oCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJzlmOWY3MDYyLWRmOTAtNGZjMC04Njk3LTk2Njg1MTg0MzU3YicsIAogICAgICAgICAgICAgICAgICAgICAgICBsZWdhY3lfaWQgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlfbmFtZSA9ICdFdGhlcmV1bScsIAogICAgICAgICAgICAgICAgICAgICAgICBuYXRpdmVfYXNzZXRfaWQgPSAnOWY5ZjcwNjItZGY5MC00ZmMwLTg2OTctOTY2ODUxODQzNTZhJywgKQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTdXBwb3J0ZWRCbG9ja0NoYWluc1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgc3VwcG9ydHNfYWxsX2Jsb2NrY2hhaW5zID0gVHJ1ZSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTdXBwb3J0ZWRCbG9ja0NoYWluc1Jlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgU3VwcG9ydGVkQmxvY2tDaGFpbnNSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_supported_blockchain.py b/test/test_supported_blockchain.py index 12406ffe..5cd15aa7 100644 --- a/test/test_supported_blockchain.py +++ b/test/test_supported_blockchain.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.supported_blockchain import SupportedBlockchain - - -class TestSupportedBlockchain(unittest.TestCase): - """SupportedBlockchain unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SupportedBlockchain: - """Test SupportedBlockchain - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SupportedBlockchain` - """ - model = SupportedBlockchain() - if include_optional: - return SupportedBlockchain( - id = '9f9f7062-df90-4fc0-8697-96685184357b', - legacy_id = 'ETH', - display_name = 'Ethereum', - native_asset_id = '9f9f7062-df90-4fc0-8697-96685184356a' - ) - else: - return SupportedBlockchain( - id = '9f9f7062-df90-4fc0-8697-96685184357b', - legacy_id = 'ETH', - display_name = 'Ethereum', - native_asset_id = '9f9f7062-df90-4fc0-8697-96685184356a', - ) - """ - - def testSupportedBlockchain(self): - """Test SupportedBlockchain""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN1cHBvcnRlZF9ibG9ja2NoYWluIGltcG9ydCBTdXBwb3J0ZWRCbG9ja2NoYWluCgoKY2xhc3MgVGVzdFN1cHBvcnRlZEJsb2NrY2hhaW4odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU3VwcG9ydGVkQmxvY2tjaGFpbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU3VwcG9ydGVkQmxvY2tjaGFpbjoKICAgICAgICAiIiJUZXN0IFN1cHBvcnRlZEJsb2NrY2hhaW4KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU3VwcG9ydGVkQmxvY2tjaGFpbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFN1cHBvcnRlZEJsb2NrY2hhaW4oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTdXBwb3J0ZWRCbG9ja2NoYWluKAogICAgICAgICAgICAgICAgaWQgPSAnOWY5ZjcwNjItZGY5MC00ZmMwLTg2OTctOTY2ODUxODQzNTdiJywKICAgICAgICAgICAgICAgIGxlZ2FjeV9pZCA9ICdFVEgnLAogICAgICAgICAgICAgICAgZGlzcGxheV9uYW1lID0gJ0V0aGVyZXVtJywKICAgICAgICAgICAgICAgIG5hdGl2ZV9hc3NldF9pZCA9ICc5ZjlmNzA2Mi1kZjkwLTRmYzAtODY5Ny05NjY4NTE4NDM1NmEnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU3VwcG9ydGVkQmxvY2tjaGFpbigKICAgICAgICAgICAgICAgIGlkID0gJzlmOWY3MDYyLWRmOTAtNGZjMC04Njk3LTk2Njg1MTg0MzU3YicsCiAgICAgICAgICAgICAgICBsZWdhY3lfaWQgPSAnRVRIJywKICAgICAgICAgICAgICAgIGRpc3BsYXlfbmFtZSA9ICdFdGhlcmV1bScsCiAgICAgICAgICAgICAgICBuYXRpdmVfYXNzZXRfaWQgPSAnOWY5ZjcwNjItZGY5MC00ZmMwLTg2OTctOTY2ODUxODQzNTZhJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTdXBwb3J0ZWRCbG9ja2NoYWluKHNlbGYpOgogICAgICAgICIiIlRlc3QgU3VwcG9ydGVkQmxvY2tjaGFpbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_swift_address.py b/test/test_swift_address.py index b0cb588f..b487734f 100644 --- a/test/test_swift_address.py +++ b/test/test_swift_address.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.swift_address import SwiftAddress - - -class TestSwiftAddress(unittest.TestCase): - """SwiftAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SwiftAddress: - """Test SwiftAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SwiftAddress` - """ - model = SwiftAddress() - if include_optional: - return SwiftAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - swift_code = 'CHASUS33XXX', - routing_number = '' - ) - else: - return SwiftAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - swift_code = 'CHASUS33XXX', - routing_number = '', - ) - """ - - def testSwiftAddress(self): - """Test SwiftAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN3aWZ0X2FkZHJlc3MgaW1wb3J0IFN3aWZ0QWRkcmVzcwoKCmNsYXNzIFRlc3RTd2lmdEFkZHJlc3ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU3dpZnRBZGRyZXNzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTd2lmdEFkZHJlc3M6CiAgICAgICAgIiIiVGVzdCBTd2lmdEFkZHJlc3MKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU3dpZnRBZGRyZXNzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU3dpZnRBZGRyZXNzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gU3dpZnRBZGRyZXNzKAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXIgPSB7Im5hbWUiOiJKb2huIFNtaXRoIiwiY2l0eSI6Ik5ldyBZb3JrIiwiY291bnRyeSI6IlVTIiwic3ViZGl2aXNpb24iOiJOWSIsImFkZHJlc3MiOiIxMjMgV2FsbCBTdHJlZXQsIEFwdCA0QiIsInBvc3RhbENvZGUiOiIxMDAwNSJ9LAogICAgICAgICAgICAgICAgc3dpZnRfY29kZSA9ICdDSEFTVVMzM1hYWCcsCiAgICAgICAgICAgICAgICByb3V0aW5nX251bWJlciA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gU3dpZnRBZGRyZXNzKAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXIgPSB7Im5hbWUiOiJKb2huIFNtaXRoIiwiY2l0eSI6Ik5ldyBZb3JrIiwiY291bnRyeSI6IlVTIiwic3ViZGl2aXNpb24iOiJOWSIsImFkZHJlc3MiOiIxMjMgV2FsbCBTdHJlZXQsIEFwdCA0QiIsInBvc3RhbENvZGUiOiIxMDAwNSJ9LAogICAgICAgICAgICAgICAgc3dpZnRfY29kZSA9ICdDSEFTVVMzM1hYWCcsCiAgICAgICAgICAgICAgICByb3V0aW5nX251bWJlciA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFN3aWZ0QWRkcmVzcyhzZWxmKToKICAgICAgICAiIiJUZXN0IFN3aWZ0QWRkcmVzcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_swift_destination.py b/test/test_swift_destination.py index 7c9e08c9..c25cab99 100644 --- a/test/test_swift_destination.py +++ b/test/test_swift_destination.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.swift_destination import SwiftDestination - - -class TestSwiftDestination(unittest.TestCase): - """SwiftDestination unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SwiftDestination: - """Test SwiftDestination - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SwiftDestination` - """ - model = SwiftDestination() - if include_optional: - return SwiftDestination( - type = 'SWIFT', - address = {"accountHolder":{"name":"Emma Watson","city":"London","country":"GB","subdivision":"ENG","address":"25 Bank Street, Canary Wharf","postalCode":"E14 5JP"},"swiftCode":"CHASUS33XXX","routingNumber":"026009593"} - ) - else: - return SwiftDestination( - type = 'SWIFT', - address = {"accountHolder":{"name":"Emma Watson","city":"London","country":"GB","subdivision":"ENG","address":"25 Bank Street, Canary Wharf","postalCode":"E14 5JP"},"swiftCode":"CHASUS33XXX","routingNumber":"026009593"}, - ) - """ - - def testSwiftDestination(self): - """Test SwiftDestination""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN3aWZ0X2Rlc3RpbmF0aW9uIGltcG9ydCBTd2lmdERlc3RpbmF0aW9uCgoKY2xhc3MgVGVzdFN3aWZ0RGVzdGluYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiU3dpZnREZXN0aW5hdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gU3dpZnREZXN0aW5hdGlvbjoKICAgICAgICAiIiJUZXN0IFN3aWZ0RGVzdGluYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgU3dpZnREZXN0aW5hdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFN3aWZ0RGVzdGluYXRpb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTd2lmdERlc3RpbmF0aW9uKAogICAgICAgICAgICAgICAgdHlwZSA9ICdTV0lGVCcsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0geyJhY2NvdW50SG9sZGVyIjp7Im5hbWUiOiJFbW1hIFdhdHNvbiIsImNpdHkiOiJMb25kb24iLCJjb3VudHJ5IjoiR0IiLCJzdWJkaXZpc2lvbiI6IkVORyIsImFkZHJlc3MiOiIyNSBCYW5rIFN0cmVldCwgQ2FuYXJ5IFdoYXJmIiwicG9zdGFsQ29kZSI6IkUxNCA1SlAifSwic3dpZnRDb2RlIjoiQ0hBU1VTMzNYWFgiLCJyb3V0aW5nTnVtYmVyIjoiMDI2MDA5NTkzIn0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTd2lmdERlc3RpbmF0aW9uKAogICAgICAgICAgICAgICAgdHlwZSA9ICdTV0lGVCcsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0geyJhY2NvdW50SG9sZGVyIjp7Im5hbWUiOiJFbW1hIFdhdHNvbiIsImNpdHkiOiJMb25kb24iLCJjb3VudHJ5IjoiR0IiLCJzdWJkaXZpc2lvbiI6IkVORyIsImFkZHJlc3MiOiIyNSBCYW5rIFN0cmVldCwgQ2FuYXJ5IFdoYXJmIiwicG9zdGFsQ29kZSI6IkUxNCA1SlAifSwic3dpZnRDb2RlIjoiQ0hBU1VTMzNYWFgiLCJyb3V0aW5nTnVtYmVyIjoiMDI2MDA5NTkzIn0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0U3dpZnREZXN0aW5hdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IFN3aWZ0RGVzdGluYXRpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_system_message_info.py b/test/test_system_message_info.py index c086e79c..e8faba85 100644 --- a/test/test_system_message_info.py +++ b/test/test_system_message_info.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.system_message_info import SystemMessageInfo - - -class TestSystemMessageInfo(unittest.TestCase): - """SystemMessageInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> SystemMessageInfo: - """Test SystemMessageInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `SystemMessageInfo` - """ - model = SystemMessageInfo() - if include_optional: - return SystemMessageInfo( - type = 'WARN', - message = 'Slow transaction processing. Outgoing transactions might be stuck.' - ) - else: - return SystemMessageInfo( - ) - """ - - def testSystemMessageInfo(self): - """Test SystemMessageInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnN5c3RlbV9tZXNzYWdlX2luZm8gaW1wb3J0IFN5c3RlbU1lc3NhZ2VJbmZvCgoKY2xhc3MgVGVzdFN5c3RlbU1lc3NhZ2VJbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlN5c3RlbU1lc3NhZ2VJbmZvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBTeXN0ZW1NZXNzYWdlSW5mbzoKICAgICAgICAiIiJUZXN0IFN5c3RlbU1lc3NhZ2VJbmZvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFN5c3RlbU1lc3NhZ2VJbmZvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gU3lzdGVtTWVzc2FnZUluZm8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBTeXN0ZW1NZXNzYWdlSW5mbygKICAgICAgICAgICAgICAgIHR5cGUgPSAnV0FSTicsCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ1Nsb3cgdHJhbnNhY3Rpb24gcHJvY2Vzc2luZy4gT3V0Z29pbmcgdHJhbnNhY3Rpb25zIG1pZ2h0IGJlIHN0dWNrLicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBTeXN0ZW1NZXNzYWdlSW5mbygKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RTeXN0ZW1NZXNzYWdlSW5mbyhzZWxmKToKICAgICAgICAiIiJUZXN0IFN5c3RlbU1lc3NhZ2VJbmZvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tag.py b/test/test_tag.py index e776ce73..54f78513 100644 --- a/test/test_tag.py +++ b/test/test_tag.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tag import Tag - - -class TestTag(unittest.TestCase): - """Tag unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Tag: - """Test Tag - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Tag` - """ - model = Tag() - if include_optional: - return Tag( - id = 'df4c0987-30da-4976-8dcf-bc2dd41ae331', - label = 'VIP', - description = 'Tag for VIP customers', - color = '#FF5733', - is_protected = True, - updated_at = 1717084800000, - pending_approval_request = fireblocks.models.approval_request.ApprovalRequest( - id = '12345', - type = 'TAG_UPDATE', - state = 'PENDING', ) - ) - else: - return Tag( - id = 'df4c0987-30da-4976-8dcf-bc2dd41ae331', - label = 'VIP', - is_protected = True, - updated_at = 1717084800000, - ) - """ - - def testTag(self): - """Test Tag""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRhZyBpbXBvcnQgVGFnCgoKY2xhc3MgVGVzdFRhZyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUYWcgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRhZzoKICAgICAgICAiIiJUZXN0IFRhZwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUYWdgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUYWcoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUYWcoCiAgICAgICAgICAgICAgICBpZCA9ICdkZjRjMDk4Ny0zMGRhLTQ5NzYtOGRjZi1iYzJkZDQxYWUzMzEnLAogICAgICAgICAgICAgICAgbGFiZWwgPSAnVklQJywKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1RhZyBmb3IgVklQIGN1c3RvbWVycycsCiAgICAgICAgICAgICAgICBjb2xvciA9ICcjRkY1NzMzJywKICAgICAgICAgICAgICAgIGlzX3Byb3RlY3RlZCA9IFRydWUsCiAgICAgICAgICAgICAgICB1cGRhdGVkX2F0ID0gMTcxNzA4NDgwMDAwMCwKICAgICAgICAgICAgICAgIHBlbmRpbmdfYXBwcm92YWxfcmVxdWVzdCA9IGZpcmVibG9ja3MubW9kZWxzLmFwcHJvdmFsX3JlcXVlc3QuQXBwcm92YWxSZXF1ZXN0KAogICAgICAgICAgICAgICAgICAgIGlkID0gJzEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdUQUdfVVBEQVRFJywgCiAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAnUEVORElORycsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUYWcoCiAgICAgICAgICAgICAgICBpZCA9ICdkZjRjMDk4Ny0zMGRhLTQ5NzYtOGRjZi1iYzJkZDQxYWUzMzEnLAogICAgICAgICAgICAgICAgbGFiZWwgPSAnVklQJywKICAgICAgICAgICAgICAgIGlzX3Byb3RlY3RlZCA9IFRydWUsCiAgICAgICAgICAgICAgICB1cGRhdGVkX2F0ID0gMTcxNzA4NDgwMDAwMCwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUYWcoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUYWciIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tag_attachment_operation_action.py b/test/test_tag_attachment_operation_action.py index 353d5b69..fcaf4986 100644 --- a/test/test_tag_attachment_operation_action.py +++ b/test/test_tag_attachment_operation_action.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tag_attachment_operation_action import ( - TagAttachmentOperationAction, -) - - -class TestTagAttachmentOperationAction(unittest.TestCase): - """TagAttachmentOperationAction unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTagAttachmentOperationAction(self): - """Test TagAttachmentOperationAction""" - # inst = TagAttachmentOperationAction() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRhZ19hdHRhY2htZW50X29wZXJhdGlvbl9hY3Rpb24gaW1wb3J0ICgKICAgIFRhZ0F0dGFjaG1lbnRPcGVyYXRpb25BY3Rpb24sCikKCgpjbGFzcyBUZXN0VGFnQXR0YWNobWVudE9wZXJhdGlvbkFjdGlvbih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUYWdBdHRhY2htZW50T3BlcmF0aW9uQWN0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdFRhZ0F0dGFjaG1lbnRPcGVyYXRpb25BY3Rpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBUYWdBdHRhY2htZW50T3BlcmF0aW9uQWN0aW9uIiIiCiAgICAgICAgIyBpbnN0ID0gVGFnQXR0YWNobWVudE9wZXJhdGlvbkFjdGlvbigpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tags_api.py b/test/test_tags_api.py index 7ac94561..c19b8ce7 100644 --- a/test/test_tags_api.py +++ b/test/test_tags_api.py @@ -1,81 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.tags_api import TagsApi - - -class TestTagsApi(unittest.TestCase): - """TagsApi unit test stubs""" - - def setUp(self) -> None: - self.api = TagsApi() - - def tearDown(self) -> None: - pass - - def test_cancel_approval_request(self) -> None: - """Test case for cancel_approval_request - - Cancel an approval request by id - """ - pass - - def test_create_tag(self) -> None: - """Test case for create_tag - - Create a new tag - """ - pass - - def test_delete_tag(self) -> None: - """Test case for delete_tag - - Delete a tag - """ - pass - - def test_get_approval_request(self) -> None: - """Test case for get_approval_request - - Get an approval request by id - """ - pass - - def test_get_tag(self) -> None: - """Test case for get_tag - - Get a tag - """ - pass - - def test_get_tags(self) -> None: - """Test case for get_tags - - Get list of tags - """ - pass - - def test_update_tag(self) -> None: - """Test case for update_tag - - Update a tag - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLnRhZ3NfYXBpIGltcG9ydCBUYWdzQXBpCgoKY2xhc3MgVGVzdFRhZ3NBcGkodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVGFnc0FwaSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZikgLT4gTm9uZToKICAgICAgICBzZWxmLmFwaSA9IFRhZ3NBcGkoKQoKICAgIGRlZiB0ZWFyRG93bihzZWxmKSAtPiBOb25lOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9jYW5jZWxfYXBwcm92YWxfcmVxdWVzdChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgY2FuY2VsX2FwcHJvdmFsX3JlcXVlc3QKCiAgICAgICAgQ2FuY2VsIGFuIGFwcHJvdmFsIHJlcXVlc3QgYnkgaWQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY3JlYXRlX3RhZyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgY3JlYXRlX3RhZwoKICAgICAgICBDcmVhdGUgYSBuZXcgdGFnCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2RlbGV0ZV90YWcoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGRlbGV0ZV90YWcKCiAgICAgICAgRGVsZXRlIGEgdGFnCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9hcHByb3ZhbF9yZXF1ZXN0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfYXBwcm92YWxfcmVxdWVzdAoKICAgICAgICBHZXQgYW4gYXBwcm92YWwgcmVxdWVzdCBieSBpZAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfdGFnKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfdGFnCgogICAgICAgIEdldCBhIHRhZwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfdGFncyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X3RhZ3MKCiAgICAgICAgR2V0IGxpc3Qgb2YgdGFncwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF91cGRhdGVfdGFnKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciB1cGRhdGVfdGFnCgogICAgICAgIFVwZGF0ZSBhIHRhZwogICAgICAgICIiIgogICAgICAgIHBhc3MKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tags_paged_response.py b/test/test_tags_paged_response.py index 6578a0b1..ebee4199 100644 --- a/test/test_tags_paged_response.py +++ b/test/test_tags_paged_response.py @@ -1,81 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tags_paged_response import TagsPagedResponse - - -class TestTagsPagedResponse(unittest.TestCase): - """TagsPagedResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TagsPagedResponse: - """Test TagsPagedResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TagsPagedResponse` - """ - model = TagsPagedResponse() - if include_optional: - return TagsPagedResponse( - data = [ - fireblocks.models.tag.Tag( - id = 'df4c0987-30da-4976-8dcf-bc2dd41ae331', - label = 'VIP', - description = 'Tag for VIP customers', - color = '#FF5733', - is_protected = True, - updated_at = 1717084800000, - pending_approval_request = fireblocks.models.approval_request.ApprovalRequest( - id = '12345', - type = 'TAG_UPDATE', - state = 'PENDING', ), ) - ], - next = 'MjAyNS0wNy0wOSAxMDo1MzoxMy40NTI=:NA==' - ) - else: - return TagsPagedResponse( - data = [ - fireblocks.models.tag.Tag( - id = 'df4c0987-30da-4976-8dcf-bc2dd41ae331', - label = 'VIP', - description = 'Tag for VIP customers', - color = '#FF5733', - is_protected = True, - updated_at = 1717084800000, - pending_approval_request = fireblocks.models.approval_request.ApprovalRequest( - id = '12345', - type = 'TAG_UPDATE', - state = 'PENDING', ), ) - ], - next = 'MjAyNS0wNy0wOSAxMDo1MzoxMy40NTI=:NA==', - ) - """ - - def testTagsPagedResponse(self): - """Test TagsPagedResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRhZ3NfcGFnZWRfcmVzcG9uc2UgaW1wb3J0IFRhZ3NQYWdlZFJlc3BvbnNlCgoKY2xhc3MgVGVzdFRhZ3NQYWdlZFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRhZ3NQYWdlZFJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUYWdzUGFnZWRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFRhZ3NQYWdlZFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRhZ3NQYWdlZFJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVGFnc1BhZ2VkUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUYWdzUGFnZWRSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudGFnLlRhZygKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnZGY0YzA5ODctMzBkYS00OTc2LThkY2YtYmMyZGQ0MWFlMzMxJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsID0gJ1ZJUCcsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUYWcgZm9yIFZJUCBjdXN0b21lcnMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgPSAnI0ZGNTczMycsIAogICAgICAgICAgICAgICAgICAgICAgICBpc19wcm90ZWN0ZWQgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZF9hdCA9IDE3MTcwODQ4MDAwMDAsIAogICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nX2FwcHJvdmFsX3JlcXVlc3QgPSBmaXJlYmxvY2tzLm1vZGVscy5hcHByb3ZhbF9yZXF1ZXN0LkFwcHJvdmFsUmVxdWVzdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJzEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1RBR19VUERBVEUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gJ1BFTkRJTkcnLCApLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIG5leHQgPSAnTWpBeU5TMHdOeTB3T1NBeE1EbzFNem94TXk0ME5UST06TkE9PScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUYWdzUGFnZWRSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudGFnLlRhZygKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnZGY0YzA5ODctMzBkYS00OTc2LThkY2YtYmMyZGQ0MWFlMzMxJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsID0gJ1ZJUCcsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUYWcgZm9yIFZJUCBjdXN0b21lcnMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgPSAnI0ZGNTczMycsIAogICAgICAgICAgICAgICAgICAgICAgICBpc19wcm90ZWN0ZWQgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZF9hdCA9IDE3MTcwODQ4MDAwMDAsIAogICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nX2FwcHJvdmFsX3JlcXVlc3QgPSBmaXJlYmxvY2tzLm1vZGVscy5hcHByb3ZhbF9yZXF1ZXN0LkFwcHJvdmFsUmVxdWVzdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJzEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1RBR19VUERBVEUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gJ1BFTkRJTkcnLCApLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIG5leHQgPSAnTWpBeU5TMHdOeTB3T1NBeE1EbzFNem94TXk0ME5UST06TkE9PScsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VGFnc1BhZ2VkUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUYWdzUGFnZWRSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_templates_paginated_response.py b/test/test_templates_paginated_response.py index a9b3afea..19d3b04b 100644 --- a/test/test_templates_paginated_response.py +++ b/test/test_templates_paginated_response.py @@ -1,78 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.templates_paginated_response import TemplatesPaginatedResponse - - -class TestTemplatesPaginatedResponse(unittest.TestCase): - """TemplatesPaginatedResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TemplatesPaginatedResponse: - """Test TemplatesPaginatedResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TemplatesPaginatedResponse` - """ - model = TemplatesPaginatedResponse() - if include_optional: - return TemplatesPaginatedResponse( - data = [ - fireblocks.models.lean_contract_dto.LeanContractDto( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - name = 'My Contract', - description = 'an ERC20 implementation', - attributes = {"useCases":["Stablecoin","CBDC"],"standards":["ERC-20","ERC-1400"],"auditor":{"name":"MyAuditor","imageURL":"https://my-images.com/my-image.jpg","link":"https://my-auditor.com/my-audit-report"}}, - is_public = True, - can_deploy = True, - owner = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - vendor = null, - type = 'FUNGIBLE_TOKEN', ) - ], - next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9' - ) - else: - return TemplatesPaginatedResponse( - data = [ - fireblocks.models.lean_contract_dto.LeanContractDto( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - name = 'My Contract', - description = 'an ERC20 implementation', - attributes = {"useCases":["Stablecoin","CBDC"],"standards":["ERC-20","ERC-1400"],"auditor":{"name":"MyAuditor","imageURL":"https://my-images.com/my-image.jpg","link":"https://my-auditor.com/my-audit-report"}}, - is_public = True, - can_deploy = True, - owner = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - vendor = null, - type = 'FUNGIBLE_TOKEN', ) - ], - ) - """ - - def testTemplatesPaginatedResponse(self): - """Test TemplatesPaginatedResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRlbXBsYXRlc19wYWdpbmF0ZWRfcmVzcG9uc2UgaW1wb3J0IFRlbXBsYXRlc1BhZ2luYXRlZFJlc3BvbnNlCgoKY2xhc3MgVGVzdFRlbXBsYXRlc1BhZ2luYXRlZFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRlbXBsYXRlc1BhZ2luYXRlZFJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUZW1wbGF0ZXNQYWdpbmF0ZWRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFRlbXBsYXRlc1BhZ2luYXRlZFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRlbXBsYXRlc1BhZ2luYXRlZFJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVGVtcGxhdGVzUGFnaW5hdGVkUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUZW1wbGF0ZXNQYWdpbmF0ZWRSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubGVhbl9jb250cmFjdF9kdG8uTGVhbkNvbnRyYWN0RHRvKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdNeSBDb250cmFjdCcsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdhbiBFUkMyMCBpbXBsZW1lbnRhdGlvbicsIAogICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0geyJ1c2VDYXNlcyI6WyJTdGFibGVjb2luIiwiQ0JEQyJdLCJzdGFuZGFyZHMiOlsiRVJDLTIwIiwiRVJDLTE0MDAiXSwiYXVkaXRvciI6eyJuYW1lIjoiTXlBdWRpdG9yIiwiaW1hZ2VVUkwiOiJodHRwczovL215LWltYWdlcy5jb20vbXktaW1hZ2UuanBnIiwibGluayI6Imh0dHBzOi8vbXktYXVkaXRvci5jb20vbXktYXVkaXQtcmVwb3J0In19LCAKICAgICAgICAgICAgICAgICAgICAgICAgaXNfcHVibGljID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGNhbl9kZXBsb3kgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgb3duZXIgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHZlbmRvciA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ0ZVTkdJQkxFX1RPS0VOJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBuZXh0ID0gJ2VKMGVYQWlPaUpLVjFRaUxDSmhiR2NPaUpJVXpJMU5pSjknCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVGVtcGxhdGVzUGFnaW5hdGVkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmxlYW5fY29udHJhY3RfZHRvLkxlYW5Db250cmFjdER0bygKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnTXkgQ29udHJhY3QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnYW4gRVJDMjAgaW1wbGVtZW50YXRpb24nLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcyA9IHsidXNlQ2FzZXMiOlsiU3RhYmxlY29pbiIsIkNCREMiXSwic3RhbmRhcmRzIjpbIkVSQy0yMCIsIkVSQy0xNDAwIl0sImF1ZGl0b3IiOnsibmFtZSI6Ik15QXVkaXRvciIsImltYWdlVVJMIjoiaHR0cHM6Ly9teS1pbWFnZXMuY29tL215LWltYWdlLmpwZyIsImxpbmsiOiJodHRwczovL215LWF1ZGl0b3IuY29tL215LWF1ZGl0LXJlcG9ydCJ9fSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGlzX3B1YmxpYyA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICBjYW5fZGVwbG95ID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCcsIAogICAgICAgICAgICAgICAgICAgICAgICB2ZW5kb3IgPSBudWxsLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdGVU5HSUJMRV9UT0tFTicsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRlbXBsYXRlc1BhZ2luYXRlZFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVGVtcGxhdGVzUGFnaW5hdGVkUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_third_party_routing.py b/test/test_third_party_routing.py index d8a6cfee..d67aaec4 100644 --- a/test/test_third_party_routing.py +++ b/test/test_third_party_routing.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.third_party_routing import ThirdPartyRouting - - -class TestThirdPartyRouting(unittest.TestCase): - """ThirdPartyRouting unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ThirdPartyRouting: - """Test ThirdPartyRouting - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ThirdPartyRouting` - """ - model = ThirdPartyRouting() - if include_optional: - return ThirdPartyRouting( - is_third_party_routing = True, - description = '' - ) - else: - return ThirdPartyRouting( - ) - """ - - def testThirdPartyRouting(self): - """Test ThirdPartyRouting""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRoaXJkX3BhcnR5X3JvdXRpbmcgaW1wb3J0IFRoaXJkUGFydHlSb3V0aW5nCgoKY2xhc3MgVGVzdFRoaXJkUGFydHlSb3V0aW5nKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRoaXJkUGFydHlSb3V0aW5nIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUaGlyZFBhcnR5Um91dGluZzoKICAgICAgICAiIiJUZXN0IFRoaXJkUGFydHlSb3V0aW5nCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRoaXJkUGFydHlSb3V0aW5nYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVGhpcmRQYXJ0eVJvdXRpbmcoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUaGlyZFBhcnR5Um91dGluZygKICAgICAgICAgICAgICAgIGlzX3RoaXJkX3BhcnR5X3JvdXRpbmcgPSBUcnVlLAogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRoaXJkUGFydHlSb3V0aW5nKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRoaXJkUGFydHlSb3V0aW5nKHNlbGYpOgogICAgICAgICIiIlRlc3QgVGhpcmRQYXJ0eVJvdXRpbmciIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_time_period_config.py b/test/test_time_period_config.py index b9750373..6b759a7b 100644 --- a/test/test_time_period_config.py +++ b/test/test_time_period_config.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.time_period_config import TimePeriodConfig - - -class TestTimePeriodConfig(unittest.TestCase): - """TimePeriodConfig unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TimePeriodConfig: - """Test TimePeriodConfig - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TimePeriodConfig` - """ - model = TimePeriodConfig() - if include_optional: - return TimePeriodConfig( - seconds = '86400', - initiator = 'PER_SINGLE_MATCH', - source = 'PER_SINGLE_MATCH', - destination = 'PER_SINGLE_MATCH' - ) - else: - return TimePeriodConfig( - seconds = '86400', - initiator = 'PER_SINGLE_MATCH', - source = 'PER_SINGLE_MATCH', - destination = 'PER_SINGLE_MATCH', - ) - """ - - def testTimePeriodConfig(self): - """Test TimePeriodConfig""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRpbWVfcGVyaW9kX2NvbmZpZyBpbXBvcnQgVGltZVBlcmlvZENvbmZpZwoKCmNsYXNzIFRlc3RUaW1lUGVyaW9kQ29uZmlnKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRpbWVQZXJpb2RDb25maWcgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRpbWVQZXJpb2RDb25maWc6CiAgICAgICAgIiIiVGVzdCBUaW1lUGVyaW9kQ29uZmlnCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRpbWVQZXJpb2RDb25maWdgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUaW1lUGVyaW9kQ29uZmlnKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVGltZVBlcmlvZENvbmZpZygKICAgICAgICAgICAgICAgIHNlY29uZHMgPSAnODY0MDAnLAogICAgICAgICAgICAgICAgaW5pdGlhdG9yID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLAogICAgICAgICAgICAgICAgc291cmNlID0gJ1BFUl9TSU5HTEVfTUFUQ0gnLAogICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSAnUEVSX1NJTkdMRV9NQVRDSCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUaW1lUGVyaW9kQ29uZmlnKAogICAgICAgICAgICAgICAgc2Vjb25kcyA9ICc4NjQwMCcsCiAgICAgICAgICAgICAgICBpbml0aWF0b3IgPSAnUEVSX1NJTkdMRV9NQVRDSCcsCiAgICAgICAgICAgICAgICBzb3VyY2UgPSAnUEVSX1NJTkdMRV9NQVRDSCcsCiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9ICdQRVJfU0lOR0xFX01BVENIJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUaW1lUGVyaW9kQ29uZmlnKHNlbGYpOgogICAgICAgICIiIlRlc3QgVGltZVBlcmlvZENvbmZpZyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_time_period_match_type.py b/test/test_time_period_match_type.py index 31d47148..47388e31 100644 --- a/test/test_time_period_match_type.py +++ b/test/test_time_period_match_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.time_period_match_type import TimePeriodMatchType - - -class TestTimePeriodMatchType(unittest.TestCase): - """TimePeriodMatchType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTimePeriodMatchType(self): - """Test TimePeriodMatchType""" - # inst = TimePeriodMatchType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRpbWVfcGVyaW9kX21hdGNoX3R5cGUgaW1wb3J0IFRpbWVQZXJpb2RNYXRjaFR5cGUKCgpjbGFzcyBUZXN0VGltZVBlcmlvZE1hdGNoVHlwZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUaW1lUGVyaW9kTWF0Y2hUeXBlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdFRpbWVQZXJpb2RNYXRjaFR5cGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUaW1lUGVyaW9kTWF0Y2hUeXBlIiIiCiAgICAgICAgIyBpbnN0ID0gVGltZVBlcmlvZE1hdGNoVHlwZSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_to_collateral_transaction.py b/test/test_to_collateral_transaction.py index a223c89c..e8520c0e 100644 --- a/test/test_to_collateral_transaction.py +++ b/test/test_to_collateral_transaction.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.to_collateral_transaction import ToCollateralTransaction - - -class TestToCollateralTransaction(unittest.TestCase): - """ToCollateralTransaction unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ToCollateralTransaction: - """Test ToCollateralTransaction - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ToCollateralTransaction` - """ - model = ToCollateralTransaction() - if include_optional: - return ToCollateralTransaction( - asset = '', - amount = '', - src_address = '', - src_tag = '', - fee = '' - ) - else: - return ToCollateralTransaction( - ) - """ - - def testToCollateralTransaction(self): - """Test ToCollateralTransaction""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRvX2NvbGxhdGVyYWxfdHJhbnNhY3Rpb24gaW1wb3J0IFRvQ29sbGF0ZXJhbFRyYW5zYWN0aW9uCgoKY2xhc3MgVGVzdFRvQ29sbGF0ZXJhbFRyYW5zYWN0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRvQ29sbGF0ZXJhbFRyYW5zYWN0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUb0NvbGxhdGVyYWxUcmFuc2FjdGlvbjoKICAgICAgICAiIiJUZXN0IFRvQ29sbGF0ZXJhbFRyYW5zYWN0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRvQ29sbGF0ZXJhbFRyYW5zYWN0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVG9Db2xsYXRlcmFsVHJhbnNhY3Rpb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUb0NvbGxhdGVyYWxUcmFuc2FjdGlvbigKICAgICAgICAgICAgICAgIGFzc2V0ID0gJycsCiAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywKICAgICAgICAgICAgICAgIHNyY19hZGRyZXNzID0gJycsCiAgICAgICAgICAgICAgICBzcmNfdGFnID0gJycsCiAgICAgICAgICAgICAgICBmZWUgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRvQ29sbGF0ZXJhbFRyYW5zYWN0aW9uKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRvQ29sbGF0ZXJhbFRyYW5zYWN0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgVG9Db2xsYXRlcmFsVHJhbnNhY3Rpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_to_exchange_transaction.py b/test/test_to_exchange_transaction.py index 9c51945e..af4ec9e7 100644 --- a/test/test_to_exchange_transaction.py +++ b/test/test_to_exchange_transaction.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.to_exchange_transaction import ToExchangeTransaction - - -class TestToExchangeTransaction(unittest.TestCase): - """ToExchangeTransaction unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ToExchangeTransaction: - """Test ToExchangeTransaction - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ToExchangeTransaction` - """ - model = ToExchangeTransaction() - if include_optional: - return ToExchangeTransaction( - asset_id = '', - amount = '', - dst_address = '', - dst_tag = '' - ) - else: - return ToExchangeTransaction( - ) - """ - - def testToExchangeTransaction(self): - """Test ToExchangeTransaction""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRvX2V4Y2hhbmdlX3RyYW5zYWN0aW9uIGltcG9ydCBUb0V4Y2hhbmdlVHJhbnNhY3Rpb24KCgpjbGFzcyBUZXN0VG9FeGNoYW5nZVRyYW5zYWN0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRvRXhjaGFuZ2VUcmFuc2FjdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVG9FeGNoYW5nZVRyYW5zYWN0aW9uOgogICAgICAgICIiIlRlc3QgVG9FeGNoYW5nZVRyYW5zYWN0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRvRXhjaGFuZ2VUcmFuc2FjdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRvRXhjaGFuZ2VUcmFuc2FjdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRvRXhjaGFuZ2VUcmFuc2FjdGlvbigKICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsCiAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywKICAgICAgICAgICAgICAgIGRzdF9hZGRyZXNzID0gJycsCiAgICAgICAgICAgICAgICBkc3RfdGFnID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUb0V4Y2hhbmdlVHJhbnNhY3Rpb24oCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VG9FeGNoYW5nZVRyYW5zYWN0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgVG9FeGNoYW5nZVRyYW5zYWN0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_token_collection_response.py b/test/test_token_collection_response.py index fc22e290..3bca94a6 100644 --- a/test/test_token_collection_response.py +++ b/test/test_token_collection_response.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.token_collection_response import TokenCollectionResponse - - -class TestTokenCollectionResponse(unittest.TestCase): - """TokenCollectionResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TokenCollectionResponse: - """Test TokenCollectionResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TokenCollectionResponse` - """ - model = TokenCollectionResponse() - if include_optional: - return TokenCollectionResponse( - id = '', - name = '', - symbol = '' - ) - else: - return TokenCollectionResponse( - id = '', - ) - """ - - def testTokenCollectionResponse(self): - """Test TokenCollectionResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2NvbGxlY3Rpb25fcmVzcG9uc2UgaW1wb3J0IFRva2VuQ29sbGVjdGlvblJlc3BvbnNlCgoKY2xhc3MgVGVzdFRva2VuQ29sbGVjdGlvblJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRva2VuQ29sbGVjdGlvblJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUb2tlbkNvbGxlY3Rpb25SZXNwb25zZToKICAgICAgICAiIiJUZXN0IFRva2VuQ29sbGVjdGlvblJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRva2VuQ29sbGVjdGlvblJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVG9rZW5Db2xsZWN0aW9uUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUb2tlbkNvbGxlY3Rpb25SZXNwb25zZSgKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICBuYW1lID0gJycsCiAgICAgICAgICAgICAgICBzeW1ib2wgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRva2VuQ29sbGVjdGlvblJlc3BvbnNlKAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUb2tlbkNvbGxlY3Rpb25SZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFRva2VuQ29sbGVjdGlvblJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_token_contract_summary_response.py b/test/test_token_contract_summary_response.py index f250c404..17a79ba7 100644 --- a/test/test_token_contract_summary_response.py +++ b/test/test_token_contract_summary_response.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.token_contract_summary_response import ( - TokenContractSummaryResponse, -) - - -class TestTokenContractSummaryResponse(unittest.TestCase): - """TokenContractSummaryResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TokenContractSummaryResponse: - """Test TokenContractSummaryResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TokenContractSummaryResponse` - """ - model = TokenContractSummaryResponse() - if include_optional: - return TokenContractSummaryResponse( - base_asset_id = 'ETH', - contract_address = '0x1234567890123456789012345678901234567890', - total_addresses = 150, - total_supply = '1000000000000000000000' - ) - else: - return TokenContractSummaryResponse( - base_asset_id = 'ETH', - contract_address = '0x1234567890123456789012345678901234567890', - total_addresses = 150, - total_supply = '1000000000000000000000', - ) - """ - - def testTokenContractSummaryResponse(self): - """Test TokenContractSummaryResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2NvbnRyYWN0X3N1bW1hcnlfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFRva2VuQ29udHJhY3RTdW1tYXJ5UmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0VG9rZW5Db250cmFjdFN1bW1hcnlSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUb2tlbkNvbnRyYWN0U3VtbWFyeVJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUb2tlbkNvbnRyYWN0U3VtbWFyeVJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgVG9rZW5Db250cmFjdFN1bW1hcnlSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUb2tlbkNvbnRyYWN0U3VtbWFyeVJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVG9rZW5Db250cmFjdFN1bW1hcnlSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRva2VuQ29udHJhY3RTdW1tYXJ5UmVzcG9uc2UoCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0X2lkID0gJ0VUSCcsCiAgICAgICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzID0gJzB4MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MCcsCiAgICAgICAgICAgICAgICB0b3RhbF9hZGRyZXNzZXMgPSAxNTAsCiAgICAgICAgICAgICAgICB0b3RhbF9zdXBwbHkgPSAnMTAwMDAwMDAwMDAwMDAwMDAwMDAwMCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUb2tlbkNvbnRyYWN0U3VtbWFyeVJlc3BvbnNlKAogICAgICAgICAgICAgICAgYmFzZV9hc3NldF9pZCA9ICdFVEgnLAogICAgICAgICAgICAgICAgY29udHJhY3RfYWRkcmVzcyA9ICcweDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAnLAogICAgICAgICAgICAgICAgdG90YWxfYWRkcmVzc2VzID0gMTUwLAogICAgICAgICAgICAgICAgdG90YWxfc3VwcGx5ID0gJzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRva2VuQ29udHJhY3RTdW1tYXJ5UmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUb2tlbkNvbnRyYWN0U3VtbWFyeVJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_token_info_not_found_error_response.py b/test/test_token_info_not_found_error_response.py index 606af792..b4dc4c20 100644 --- a/test/test_token_info_not_found_error_response.py +++ b/test/test_token_info_not_found_error_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.token_info_not_found_error_response import ( - TokenInfoNotFoundErrorResponse, -) - - -class TestTokenInfoNotFoundErrorResponse(unittest.TestCase): - """TokenInfoNotFoundErrorResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TokenInfoNotFoundErrorResponse: - """Test TokenInfoNotFoundErrorResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TokenInfoNotFoundErrorResponse` - """ - model = TokenInfoNotFoundErrorResponse() - if include_optional: - return TokenInfoNotFoundErrorResponse( - message = 'Invalid address, could not get asset information', - code = 3009 - ) - else: - return TokenInfoNotFoundErrorResponse( - message = 'Invalid address, could not get asset information', - code = 3009, - ) - """ - - def testTokenInfoNotFoundErrorResponse(self): - """Test TokenInfoNotFoundErrorResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2luZm9fbm90X2ZvdW5kX2Vycm9yX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBUb2tlbkluZm9Ob3RGb3VuZEVycm9yUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0VG9rZW5JbmZvTm90Rm91bmRFcnJvclJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRva2VuSW5mb05vdEZvdW5kRXJyb3JSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVG9rZW5JbmZvTm90Rm91bmRFcnJvclJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgVG9rZW5JbmZvTm90Rm91bmRFcnJvclJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRva2VuSW5mb05vdEZvdW5kRXJyb3JSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRva2VuSW5mb05vdEZvdW5kRXJyb3JSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRva2VuSW5mb05vdEZvdW5kRXJyb3JSZXNwb25zZSgKICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnSW52YWxpZCBhZGRyZXNzLCBjb3VsZCBub3QgZ2V0IGFzc2V0IGluZm9ybWF0aW9uJywKICAgICAgICAgICAgICAgIGNvZGUgPSAzMDA5CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVG9rZW5JbmZvTm90Rm91bmRFcnJvclJlc3BvbnNlKAogICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdJbnZhbGlkIGFkZHJlc3MsIGNvdWxkIG5vdCBnZXQgYXNzZXQgaW5mb3JtYXRpb24nLAogICAgICAgICAgICAgICAgY29kZSA9IDMwMDksCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VG9rZW5JbmZvTm90Rm91bmRFcnJvclJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVG9rZW5JbmZvTm90Rm91bmRFcnJvclJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_token_link_dto.py b/test/test_token_link_dto.py index a6470781..d56ae36d 100644 --- a/test/test_token_link_dto.py +++ b/test/test_token_link_dto.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.token_link_dto import TokenLinkDto - - -class TestTokenLinkDto(unittest.TestCase): - """TokenLinkDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TokenLinkDto: - """Test TokenLinkDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TokenLinkDto` - """ - model = TokenLinkDto() - if include_optional: - return TokenLinkDto( - id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb', - status = 'COMPLETED', - type = 'NON_FUNGIBLE_TOKEN', - ref_id = 'BQ5R_MY_TOKEN', - display_name = 'My Simple ERC20 Token', - token_metadata = None - ) - else: - return TokenLinkDto( - id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb', - status = 'COMPLETED', - ) - """ - - def testTokenLinkDto(self): - """Test TokenLinkDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2xpbmtfZHRvIGltcG9ydCBUb2tlbkxpbmtEdG8KCgpjbGFzcyBUZXN0VG9rZW5MaW5rRHRvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRva2VuTGlua0R0byB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVG9rZW5MaW5rRHRvOgogICAgICAgICIiIlRlc3QgVG9rZW5MaW5rRHRvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRva2VuTGlua0R0b2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRva2VuTGlua0R0bygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRva2VuTGlua0R0bygKICAgICAgICAgICAgICAgIGlkID0gJ2ZiZmJmYmZiLWZiZmItZmJmYi1mYmZiLWZiZmJmYmZiZmJmYicsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnTk9OX0ZVTkdJQkxFX1RPS0VOJywKICAgICAgICAgICAgICAgIHJlZl9pZCA9ICdCUTVSX01ZX1RPS0VOJywKICAgICAgICAgICAgICAgIGRpc3BsYXlfbmFtZSA9ICdNeSBTaW1wbGUgRVJDMjAgVG9rZW4nLAogICAgICAgICAgICAgICAgdG9rZW5fbWV0YWRhdGEgPSBOb25lCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVG9rZW5MaW5rRHRvKAogICAgICAgICAgICAgICAgaWQgPSAnZmJmYmZiZmItZmJmYi1mYmZiLWZiZmItZmJmYmZiZmJmYmZiJywKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRva2VuTGlua0R0byhzZWxmKToKICAgICAgICAiIiJUZXN0IFRva2VuTGlua0R0byIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_token_link_dto_token_metadata.py b/test/test_token_link_dto_token_metadata.py index da21e703..8adee7e4 100644 --- a/test/test_token_link_dto_token_metadata.py +++ b/test/test_token_link_dto_token_metadata.py @@ -1,79 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.token_link_dto_token_metadata import TokenLinkDtoTokenMetadata - - -class TestTokenLinkDtoTokenMetadata(unittest.TestCase): - """TokenLinkDtoTokenMetadata unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TokenLinkDtoTokenMetadata: - """Test TokenLinkDtoTokenMetadata - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TokenLinkDtoTokenMetadata` - """ - model = TokenLinkDtoTokenMetadata() - if include_optional: - return TokenLinkDtoTokenMetadata( - asset_id = 'BQ5R_MY_TOKEN', - name = 'Rarible', - symbol = 'RARI', - network_protocol = 'ETH', - total_supply = '1000000000000000', - holders_count = 6, - type = 'ERC20', - contract_address = '0x1234567890abcdef1234567890abcdef12345678', - issuer_address = 'rGyXjc5d7s17vvt3NtKKascvJrnSxV21kQ', - testnet = True, - blockchain = 'ETH_TEST5', - decimals = 18, - vault_account_id = '0', - fb_collection_id = '911fe739f0d4d123c98fd366c3bed35c6e30c00e', - standard = '["ERC721","ERC1155","FA2"]', - blockchain_descriptor = 'ETH', - id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb', - blockchain_id = 'B7QG017M', - contract_template_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d' - ) - else: - return TokenLinkDtoTokenMetadata( - asset_id = 'BQ5R_MY_TOKEN', - contract_address = '0x1234567890abcdef1234567890abcdef12345678', - fb_collection_id = '911fe739f0d4d123c98fd366c3bed35c6e30c00e', - blockchain_descriptor = 'ETH', - id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb', - blockchain_id = 'B7QG017M', - contract_template_id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - ) - """ - - def testTokenLinkDtoTokenMetadata(self): - """Test TokenLinkDtoTokenMetadata""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2xpbmtfZHRvX3Rva2VuX21ldGFkYXRhIGltcG9ydCBUb2tlbkxpbmtEdG9Ub2tlbk1ldGFkYXRhCgoKY2xhc3MgVGVzdFRva2VuTGlua0R0b1Rva2VuTWV0YWRhdGEodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVG9rZW5MaW5rRHRvVG9rZW5NZXRhZGF0YSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVG9rZW5MaW5rRHRvVG9rZW5NZXRhZGF0YToKICAgICAgICAiIiJUZXN0IFRva2VuTGlua0R0b1Rva2VuTWV0YWRhdGEKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVG9rZW5MaW5rRHRvVG9rZW5NZXRhZGF0YWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRva2VuTGlua0R0b1Rva2VuTWV0YWRhdGEoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUb2tlbkxpbmtEdG9Ub2tlbk1ldGFkYXRhKAogICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnQlE1Ul9NWV9UT0tFTicsCiAgICAgICAgICAgICAgICBuYW1lID0gJ1JhcmlibGUnLAogICAgICAgICAgICAgICAgc3ltYm9sID0gJ1JBUkknLAogICAgICAgICAgICAgICAgbmV0d29ya19wcm90b2NvbCA9ICdFVEgnLAogICAgICAgICAgICAgICAgdG90YWxfc3VwcGx5ID0gJzEwMDAwMDAwMDAwMDAwMDAnLAogICAgICAgICAgICAgICAgaG9sZGVyc19jb3VudCA9IDYsCiAgICAgICAgICAgICAgICB0eXBlID0gJ0VSQzIwJywKICAgICAgICAgICAgICAgIGNvbnRyYWN0X2FkZHJlc3MgPSAnMHgxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4JywKICAgICAgICAgICAgICAgIGlzc3Vlcl9hZGRyZXNzID0gJ3JHeVhqYzVkN3MxN3Z2dDNOdEtLYXNjdkpyblN4VjIxa1EnLAogICAgICAgICAgICAgICAgdGVzdG5ldCA9IFRydWUsCiAgICAgICAgICAgICAgICBibG9ja2NoYWluID0gJ0VUSF9URVNUNScsCiAgICAgICAgICAgICAgICBkZWNpbWFscyA9IDE4LAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcwJywKICAgICAgICAgICAgICAgIGZiX2NvbGxlY3Rpb25faWQgPSAnOTExZmU3MzlmMGQ0ZDEyM2M5OGZkMzY2YzNiZWQzNWM2ZTMwYzAwZScsCiAgICAgICAgICAgICAgICBzdGFuZGFyZCA9ICdbIkVSQzcyMSIsIkVSQzExNTUiLCJGQTIiXScsCiAgICAgICAgICAgICAgICBibG9ja2NoYWluX2Rlc2NyaXB0b3IgPSAnRVRIJywKICAgICAgICAgICAgICAgIGlkID0gJ2ZiZmJmYmZiLWZiZmItZmJmYi1mYmZiLWZiZmJmYmZiZmJmYicsCiAgICAgICAgICAgICAgICBibG9ja2NoYWluX2lkID0gJ0I3UUcwMTdNJywKICAgICAgICAgICAgICAgIGNvbnRyYWN0X3RlbXBsYXRlX2lkID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUb2tlbkxpbmtEdG9Ub2tlbk1ldGFkYXRhKAogICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnQlE1Ul9NWV9UT0tFTicsCiAgICAgICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzID0gJzB4MTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3OCcsCiAgICAgICAgICAgICAgICBmYl9jb2xsZWN0aW9uX2lkID0gJzkxMWZlNzM5ZjBkNGQxMjNjOThmZDM2NmMzYmVkMzVjNmUzMGMwMGUnLAogICAgICAgICAgICAgICAgYmxvY2tjaGFpbl9kZXNjcmlwdG9yID0gJ0VUSCcsCiAgICAgICAgICAgICAgICBpZCA9ICdmYmZiZmJmYi1mYmZiLWZiZmItZmJmYi1mYmZiZmJmYmZiZmInLAogICAgICAgICAgICAgICAgYmxvY2tjaGFpbl9pZCA9ICdCN1FHMDE3TScsCiAgICAgICAgICAgICAgICBjb250cmFjdF90ZW1wbGF0ZV9pZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRva2VuTGlua0R0b1Rva2VuTWV0YWRhdGEoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUb2tlbkxpbmtEdG9Ub2tlbk1ldGFkYXRhIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_token_link_exists_http_error.py b/test/test_token_link_exists_http_error.py index 9568f2f3..8f3b26db 100644 --- a/test/test_token_link_exists_http_error.py +++ b/test/test_token_link_exists_http_error.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.token_link_exists_http_error import TokenLinkExistsHttpError - - -class TestTokenLinkExistsHttpError(unittest.TestCase): - """TokenLinkExistsHttpError unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TokenLinkExistsHttpError: - """Test TokenLinkExistsHttpError - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TokenLinkExistsHttpError` - """ - model = TokenLinkExistsHttpError() - if include_optional: - return TokenLinkExistsHttpError( - status_code = 409, - message = '', - error = 'Conflict' - ) - else: - return TokenLinkExistsHttpError( - ) - """ - - def testTokenLinkExistsHttpError(self): - """Test TokenLinkExistsHttpError""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2xpbmtfZXhpc3RzX2h0dHBfZXJyb3IgaW1wb3J0IFRva2VuTGlua0V4aXN0c0h0dHBFcnJvcgoKCmNsYXNzIFRlc3RUb2tlbkxpbmtFeGlzdHNIdHRwRXJyb3IodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVG9rZW5MaW5rRXhpc3RzSHR0cEVycm9yIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUb2tlbkxpbmtFeGlzdHNIdHRwRXJyb3I6CiAgICAgICAgIiIiVGVzdCBUb2tlbkxpbmtFeGlzdHNIdHRwRXJyb3IKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVG9rZW5MaW5rRXhpc3RzSHR0cEVycm9yYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVG9rZW5MaW5rRXhpc3RzSHR0cEVycm9yKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVG9rZW5MaW5rRXhpc3RzSHR0cEVycm9yKAogICAgICAgICAgICAgICAgc3RhdHVzX2NvZGUgPSA0MDksCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJycsCiAgICAgICAgICAgICAgICBlcnJvciA9ICdDb25mbGljdCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUb2tlbkxpbmtFeGlzdHNIdHRwRXJyb3IoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VG9rZW5MaW5rRXhpc3RzSHR0cEVycm9yKHNlbGYpOgogICAgICAgICIiIlRlc3QgVG9rZW5MaW5rRXhpc3RzSHR0cEVycm9yIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_token_link_not_multichain_compatible_http_error.py b/test/test_token_link_not_multichain_compatible_http_error.py index 0ce7b1cf..21655fc0 100644 --- a/test/test_token_link_not_multichain_compatible_http_error.py +++ b/test/test_token_link_not_multichain_compatible_http_error.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.token_link_not_multichain_compatible_http_error import ( - TokenLinkNotMultichainCompatibleHttpError, -) - - -class TestTokenLinkNotMultichainCompatibleHttpError(unittest.TestCase): - """TokenLinkNotMultichainCompatibleHttpError unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> TokenLinkNotMultichainCompatibleHttpError: - """Test TokenLinkNotMultichainCompatibleHttpError - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TokenLinkNotMultichainCompatibleHttpError` - """ - model = TokenLinkNotMultichainCompatibleHttpError() - if include_optional: - return TokenLinkNotMultichainCompatibleHttpError( - message = 'Token link is not multichain compatible.', - code = 400 - ) - else: - return TokenLinkNotMultichainCompatibleHttpError( - message = 'Token link is not multichain compatible.', - code = 400, - ) - """ - - def testTokenLinkNotMultichainCompatibleHttpError(self): - """Test TokenLinkNotMultichainCompatibleHttpError""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2xpbmtfbm90X211bHRpY2hhaW5fY29tcGF0aWJsZV9odHRwX2Vycm9yIGltcG9ydCAoCiAgICBUb2tlbkxpbmtOb3RNdWx0aWNoYWluQ29tcGF0aWJsZUh0dHBFcnJvciwKKQoKCmNsYXNzIFRlc3RUb2tlbkxpbmtOb3RNdWx0aWNoYWluQ29tcGF0aWJsZUh0dHBFcnJvcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUb2tlbkxpbmtOb3RNdWx0aWNoYWluQ29tcGF0aWJsZUh0dHBFcnJvciB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2UoCiAgICAgICAgc2VsZiwgaW5jbHVkZV9vcHRpb25hbAogICAgKSAtPiBUb2tlbkxpbmtOb3RNdWx0aWNoYWluQ29tcGF0aWJsZUh0dHBFcnJvcjoKICAgICAgICAiIiJUZXN0IFRva2VuTGlua05vdE11bHRpY2hhaW5Db21wYXRpYmxlSHR0cEVycm9yCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRva2VuTGlua05vdE11bHRpY2hhaW5Db21wYXRpYmxlSHR0cEVycm9yYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVG9rZW5MaW5rTm90TXVsdGljaGFpbkNvbXBhdGlibGVIdHRwRXJyb3IoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUb2tlbkxpbmtOb3RNdWx0aWNoYWluQ29tcGF0aWJsZUh0dHBFcnJvcigKICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnVG9rZW4gbGluayBpcyBub3QgbXVsdGljaGFpbiBjb21wYXRpYmxlLicsCiAgICAgICAgICAgICAgICBjb2RlID0gNDAwCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVG9rZW5MaW5rTm90TXVsdGljaGFpbkNvbXBhdGlibGVIdHRwRXJyb3IoCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ1Rva2VuIGxpbmsgaXMgbm90IG11bHRpY2hhaW4gY29tcGF0aWJsZS4nLAogICAgICAgICAgICAgICAgY29kZSA9IDQwMCwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUb2tlbkxpbmtOb3RNdWx0aWNoYWluQ29tcGF0aWJsZUh0dHBFcnJvcihzZWxmKToKICAgICAgICAiIiJUZXN0IFRva2VuTGlua05vdE11bHRpY2hhaW5Db21wYXRpYmxlSHR0cEVycm9yIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_token_link_request_dto.py b/test/test_token_link_request_dto.py index 167abf0e..21b75989 100644 --- a/test/test_token_link_request_dto.py +++ b/test/test_token_link_request_dto.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.token_link_request_dto import TokenLinkRequestDto - - -class TestTokenLinkRequestDto(unittest.TestCase): - """TokenLinkRequestDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TokenLinkRequestDto: - """Test TokenLinkRequestDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TokenLinkRequestDto` - """ - model = TokenLinkRequestDto() - if include_optional: - return TokenLinkRequestDto( - type = 'FUNGIBLE_TOKEN', - ref_id = 'USDC_ETH_TEST3_1XF5', - display_name = 'My Simple ERC20 Token', - base_asset_id = 'ETH_TEST3', - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66' - ) - else: - return TokenLinkRequestDto( - type = 'FUNGIBLE_TOKEN', - ) - """ - - def testTokenLinkRequestDto(self): - """Test TokenLinkRequestDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2xpbmtfcmVxdWVzdF9kdG8gaW1wb3J0IFRva2VuTGlua1JlcXVlc3REdG8KCgpjbGFzcyBUZXN0VG9rZW5MaW5rUmVxdWVzdER0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUb2tlbkxpbmtSZXF1ZXN0RHRvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUb2tlbkxpbmtSZXF1ZXN0RHRvOgogICAgICAgICIiIlRlc3QgVG9rZW5MaW5rUmVxdWVzdER0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUb2tlbkxpbmtSZXF1ZXN0RHRvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVG9rZW5MaW5rUmVxdWVzdER0bygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRva2VuTGlua1JlcXVlc3REdG8oCiAgICAgICAgICAgICAgICB0eXBlID0gJ0ZVTkdJQkxFX1RPS0VOJywKICAgICAgICAgICAgICAgIHJlZl9pZCA9ICdVU0RDX0VUSF9URVNUM18xWEY1JywKICAgICAgICAgICAgICAgIGRpc3BsYXlfbmFtZSA9ICdNeSBTaW1wbGUgRVJDMjAgVG9rZW4nLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldF9pZCA9ICdFVEhfVEVTVDMnLAogICAgICAgICAgICAgICAgY29udHJhY3RfYWRkcmVzcyA9ICcweEMyYzRlMURiNDFGMGJCOTc5OTZEMGVEMDU0MkQyMTcwZDE0NkZCNjYnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVG9rZW5MaW5rUmVxdWVzdER0bygKICAgICAgICAgICAgICAgIHR5cGUgPSAnRlVOR0lCTEVfVE9LRU4nLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRva2VuTGlua1JlcXVlc3REdG8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBUb2tlbkxpbmtSZXF1ZXN0RHRvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_token_ownership_response.py b/test/test_token_ownership_response.py index f5a94e89..9a596fb8 100644 --- a/test/test_token_ownership_response.py +++ b/test/test_token_ownership_response.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.token_ownership_response import TokenOwnershipResponse - - -class TestTokenOwnershipResponse(unittest.TestCase): - """TokenOwnershipResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TokenOwnershipResponse: - """Test TokenOwnershipResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TokenOwnershipResponse` - """ - model = TokenOwnershipResponse() - if include_optional: - return TokenOwnershipResponse( - id = '', - token_id = '', - standard = '', - metadata_uri = '', - cached_metadata_uri = '', - media = [ - fireblocks.models.media_entity_response.MediaEntityResponse( - url = '', - content_type = 'IMAGE', ) - ], - spam = fireblocks.models.spam_ownership_response.SpamOwnershipResponse( - result = True, - source = 'OWNER', ), - collection = fireblocks.models.token_collection_response.TokenCollectionResponse( - id = '', - name = '', - symbol = '', ), - balance = '', - vault_account_id = '', - ownership_start_time = 1.337, - ownership_last_update_time = 1.337, - blockchain_descriptor = 'ETH', - description = '', - name = '', - ncw_id = '', - ncw_account_id = '', - status = 'LISTED' - ) - else: - return TokenOwnershipResponse( - id = '', - token_id = '', - standard = '', - balance = '', - ownership_start_time = 1.337, - ownership_last_update_time = 1.337, - blockchain_descriptor = 'ETH', - status = 'LISTED', - ) - """ - - def testTokenOwnershipResponse(self): - """Test TokenOwnershipResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX293bmVyc2hpcF9yZXNwb25zZSBpbXBvcnQgVG9rZW5Pd25lcnNoaXBSZXNwb25zZQoKCmNsYXNzIFRlc3RUb2tlbk93bmVyc2hpcFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRva2VuT3duZXJzaGlwUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRva2VuT3duZXJzaGlwUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBUb2tlbk93bmVyc2hpcFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRva2VuT3duZXJzaGlwUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUb2tlbk93bmVyc2hpcFJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVG9rZW5Pd25lcnNoaXBSZXNwb25zZSgKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICB0b2tlbl9pZCA9ICcnLAogICAgICAgICAgICAgICAgc3RhbmRhcmQgPSAnJywKICAgICAgICAgICAgICAgIG1ldGFkYXRhX3VyaSA9ICcnLAogICAgICAgICAgICAgICAgY2FjaGVkX21ldGFkYXRhX3VyaSA9ICcnLAogICAgICAgICAgICAgICAgbWVkaWEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMubWVkaWFfZW50aXR5X3Jlc3BvbnNlLk1lZGlhRW50aXR5UmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlID0gJ0lNQUdFJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBzcGFtID0gZmlyZWJsb2Nrcy5tb2RlbHMuc3BhbV9vd25lcnNoaXBfcmVzcG9uc2UuU3BhbU93bmVyc2hpcFJlc3BvbnNlKAogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9ICdPV05FUicsICksCiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fY29sbGVjdGlvbl9yZXNwb25zZS5Ub2tlbkNvbGxlY3Rpb25SZXNwb25zZSgKICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBuYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgIHN5bWJvbCA9ICcnLCApLAogICAgICAgICAgICAgICAgYmFsYW5jZSA9ICcnLAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcnLAogICAgICAgICAgICAgICAgb3duZXJzaGlwX3N0YXJ0X3RpbWUgPSAxLjMzNywKICAgICAgICAgICAgICAgIG93bmVyc2hpcF9sYXN0X3VwZGF0ZV90aW1lID0gMS4zMzcsCiAgICAgICAgICAgICAgICBibG9ja2NoYWluX2Rlc2NyaXB0b3IgPSAnRVRIJywKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJycsCiAgICAgICAgICAgICAgICBuYW1lID0gJycsCiAgICAgICAgICAgICAgICBuY3dfaWQgPSAnJywKICAgICAgICAgICAgICAgIG5jd19hY2NvdW50X2lkID0gJycsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnTElTVEVEJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRva2VuT3duZXJzaGlwUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBpZCA9ICcnLAogICAgICAgICAgICAgICAgdG9rZW5faWQgPSAnJywKICAgICAgICAgICAgICAgIHN0YW5kYXJkID0gJycsCiAgICAgICAgICAgICAgICBiYWxhbmNlID0gJycsCiAgICAgICAgICAgICAgICBvd25lcnNoaXBfc3RhcnRfdGltZSA9IDEuMzM3LAogICAgICAgICAgICAgICAgb3duZXJzaGlwX2xhc3RfdXBkYXRlX3RpbWUgPSAxLjMzNywKICAgICAgICAgICAgICAgIGJsb2NrY2hhaW5fZGVzY3JpcHRvciA9ICdFVEgnLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ0xJU1RFRCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VG9rZW5Pd25lcnNoaXBSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFRva2VuT3duZXJzaGlwUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_token_ownership_spam_update_payload.py b/test/test_token_ownership_spam_update_payload.py index f0f61346..e6d89515 100644 --- a/test/test_token_ownership_spam_update_payload.py +++ b/test/test_token_ownership_spam_update_payload.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.token_ownership_spam_update_payload import ( - TokenOwnershipSpamUpdatePayload, -) - - -class TestTokenOwnershipSpamUpdatePayload(unittest.TestCase): - """TokenOwnershipSpamUpdatePayload unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TokenOwnershipSpamUpdatePayload: - """Test TokenOwnershipSpamUpdatePayload - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TokenOwnershipSpamUpdatePayload` - """ - model = TokenOwnershipSpamUpdatePayload() - if include_optional: - return TokenOwnershipSpamUpdatePayload( - asset_id = 'NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd', - spam = True - ) - else: - return TokenOwnershipSpamUpdatePayload( - asset_id = 'NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd', - spam = True, - ) - """ - - def testTokenOwnershipSpamUpdatePayload(self): - """Test TokenOwnershipSpamUpdatePayload""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX293bmVyc2hpcF9zcGFtX3VwZGF0ZV9wYXlsb2FkIGltcG9ydCAoCiAgICBUb2tlbk93bmVyc2hpcFNwYW1VcGRhdGVQYXlsb2FkLAopCgoKY2xhc3MgVGVzdFRva2VuT3duZXJzaGlwU3BhbVVwZGF0ZVBheWxvYWQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVG9rZW5Pd25lcnNoaXBTcGFtVXBkYXRlUGF5bG9hZCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVG9rZW5Pd25lcnNoaXBTcGFtVXBkYXRlUGF5bG9hZDoKICAgICAgICAiIiJUZXN0IFRva2VuT3duZXJzaGlwU3BhbVVwZGF0ZVBheWxvYWQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVG9rZW5Pd25lcnNoaXBTcGFtVXBkYXRlUGF5bG9hZGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRva2VuT3duZXJzaGlwU3BhbVVwZGF0ZVBheWxvYWQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUb2tlbk93bmVyc2hpcFNwYW1VcGRhdGVQYXlsb2FkKAogICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnTkZULWFiY2RlZmFiY2RlZmFiY2RlZmFiY2RlZmFiY2RlZmFiY2RlZmFiY2QnLAogICAgICAgICAgICAgICAgc3BhbSA9IFRydWUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUb2tlbk93bmVyc2hpcFNwYW1VcGRhdGVQYXlsb2FkKAogICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnTkZULWFiY2RlZmFiY2RlZmFiY2RlZmFiY2RlZmFiY2RlZmFiY2RlZmFiY2QnLAogICAgICAgICAgICAgICAgc3BhbSA9IFRydWUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VG9rZW5Pd25lcnNoaXBTcGFtVXBkYXRlUGF5bG9hZChzZWxmKToKICAgICAgICAiIiJUZXN0IFRva2VuT3duZXJzaGlwU3BhbVVwZGF0ZVBheWxvYWQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_token_ownership_status_update_payload.py b/test/test_token_ownership_status_update_payload.py index c8b0ec90..adfb65f8 100644 --- a/test/test_token_ownership_status_update_payload.py +++ b/test/test_token_ownership_status_update_payload.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.token_ownership_status_update_payload import ( - TokenOwnershipStatusUpdatePayload, -) - - -class TestTokenOwnershipStatusUpdatePayload(unittest.TestCase): - """TokenOwnershipStatusUpdatePayload unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TokenOwnershipStatusUpdatePayload: - """Test TokenOwnershipStatusUpdatePayload - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TokenOwnershipStatusUpdatePayload` - """ - model = TokenOwnershipStatusUpdatePayload() - if include_optional: - return TokenOwnershipStatusUpdatePayload( - asset_id = 'NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd', - status = 'ARCHIVED' - ) - else: - return TokenOwnershipStatusUpdatePayload( - asset_id = 'NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd', - status = 'ARCHIVED', - ) - """ - - def testTokenOwnershipStatusUpdatePayload(self): - """Test TokenOwnershipStatusUpdatePayload""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX293bmVyc2hpcF9zdGF0dXNfdXBkYXRlX3BheWxvYWQgaW1wb3J0ICgKICAgIFRva2VuT3duZXJzaGlwU3RhdHVzVXBkYXRlUGF5bG9hZCwKKQoKCmNsYXNzIFRlc3RUb2tlbk93bmVyc2hpcFN0YXR1c1VwZGF0ZVBheWxvYWQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVG9rZW5Pd25lcnNoaXBTdGF0dXNVcGRhdGVQYXlsb2FkIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUb2tlbk93bmVyc2hpcFN0YXR1c1VwZGF0ZVBheWxvYWQ6CiAgICAgICAgIiIiVGVzdCBUb2tlbk93bmVyc2hpcFN0YXR1c1VwZGF0ZVBheWxvYWQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVG9rZW5Pd25lcnNoaXBTdGF0dXNVcGRhdGVQYXlsb2FkYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVG9rZW5Pd25lcnNoaXBTdGF0dXNVcGRhdGVQYXlsb2FkKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVG9rZW5Pd25lcnNoaXBTdGF0dXNVcGRhdGVQYXlsb2FkKAogICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnTkZULWFiY2RlZmFiY2RlZmFiY2RlZmFiY2RlZmFiY2RlZmFiY2RlZmFiY2QnLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ0FSQ0hJVkVEJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRva2VuT3duZXJzaGlwU3RhdHVzVXBkYXRlUGF5bG9hZCgKICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJ05GVC1hYmNkZWZhYmNkZWZhYmNkZWZhYmNkZWZhYmNkZWZhYmNkZWZhYmNkJywKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdBUkNISVZFRCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VG9rZW5Pd25lcnNoaXBTdGF0dXNVcGRhdGVQYXlsb2FkKHNlbGYpOgogICAgICAgICIiIlRlc3QgVG9rZW5Pd25lcnNoaXBTdGF0dXNVcGRhdGVQYXlsb2FkIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_token_response.py b/test/test_token_response.py index 1624fc5d..c11437e0 100644 --- a/test/test_token_response.py +++ b/test/test_token_response.py @@ -1,76 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.token_response import TokenResponse - - -class TestTokenResponse(unittest.TestCase): - """TokenResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TokenResponse: - """Test TokenResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TokenResponse` - """ - model = TokenResponse() - if include_optional: - return TokenResponse( - id = '', - token_id = '', - standard = '', - metadata_uri = '', - cached_metadata_uri = '', - media = [ - fireblocks.models.media_entity_response.MediaEntityResponse( - url = '', - content_type = 'IMAGE', ) - ], - spam = fireblocks.models.spam_token_response.SpamTokenResponse( - result = True, ), - collection = fireblocks.models.token_collection_response.TokenCollectionResponse( - id = '', - name = '', - symbol = '', ), - blockchain_descriptor = 'ETH', - description = '', - name = '' - ) - else: - return TokenResponse( - id = '', - token_id = '', - standard = '', - blockchain_descriptor = 'ETH', - ) - """ - - def testTokenResponse(self): - """Test TokenResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX3Jlc3BvbnNlIGltcG9ydCBUb2tlblJlc3BvbnNlCgoKY2xhc3MgVGVzdFRva2VuUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVG9rZW5SZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVG9rZW5SZXNwb25zZToKICAgICAgICAiIiJUZXN0IFRva2VuUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVG9rZW5SZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRva2VuUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUb2tlblJlc3BvbnNlKAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIHRva2VuX2lkID0gJycsCiAgICAgICAgICAgICAgICBzdGFuZGFyZCA9ICcnLAogICAgICAgICAgICAgICAgbWV0YWRhdGFfdXJpID0gJycsCiAgICAgICAgICAgICAgICBjYWNoZWRfbWV0YWRhdGFfdXJpID0gJycsCiAgICAgICAgICAgICAgICBtZWRpYSA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5tZWRpYV9lbnRpdHlfcmVzcG9uc2UuTWVkaWFFbnRpdHlSZXNwb25zZSgKICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGUgPSAnSU1BR0UnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHNwYW0gPSBmaXJlYmxvY2tzLm1vZGVscy5zcGFtX3Rva2VuX3Jlc3BvbnNlLlNwYW1Ub2tlblJlc3BvbnNlKAogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IFRydWUsICksCiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fY29sbGVjdGlvbl9yZXNwb25zZS5Ub2tlbkNvbGxlY3Rpb25SZXNwb25zZSgKICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBuYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgIHN5bWJvbCA9ICcnLCApLAogICAgICAgICAgICAgICAgYmxvY2tjaGFpbl9kZXNjcmlwdG9yID0gJ0VUSCcsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICcnLAogICAgICAgICAgICAgICAgbmFtZSA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVG9rZW5SZXNwb25zZSgKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICB0b2tlbl9pZCA9ICcnLAogICAgICAgICAgICAgICAgc3RhbmRhcmQgPSAnJywKICAgICAgICAgICAgICAgIGJsb2NrY2hhaW5fZGVzY3JpcHRvciA9ICdFVEgnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRva2VuUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUb2tlblJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tokenization_api.py b/test/test_tokenization_api.py index 73158c69..a9bbe771 100644 --- a/test/test_tokenization_api.py +++ b/test/test_tokenization_api.py @@ -1,200 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.tokenization_api import TokenizationApi - - -class TestTokenizationApi(unittest.TestCase): - """TokenizationApi unit test stubs""" - - def setUp(self) -> None: - self.api = TokenizationApi() - - def tearDown(self) -> None: - pass - - def test_burn_collection_token(self) -> None: - """Test case for burn_collection_token - - Burn tokens - """ - pass - - def test_create_new_collection(self) -> None: - """Test case for create_new_collection - - Create a new collection - """ - pass - - def test_deactivate_and_unlink_adapters(self) -> None: - """Test case for deactivate_and_unlink_adapters - - Remove LayerZero adapters - """ - pass - - def test_deploy_and_link_adapters(self) -> None: - """Test case for deploy_and_link_adapters - - Deploy LayerZero adapters - """ - pass - - def test_fetch_collection_token_details(self) -> None: - """Test case for fetch_collection_token_details - - Get collection token details - """ - pass - - def test_get_collection_by_id(self) -> None: - """Test case for get_collection_by_id - - Get a collection by id - """ - pass - - def test_get_deployable_address(self) -> None: - """Test case for get_deployable_address - - Get deterministic address for contract deployment - """ - pass - - def test_get_layer_zero_dvn_config(self) -> None: - """Test case for get_layer_zero_dvn_config - - Get LayerZero DVN configuration - """ - pass - - def test_get_layer_zero_peers(self) -> None: - """Test case for get_layer_zero_peers - - Get LayerZero peers - """ - pass - - def test_get_linked_collections(self) -> None: - """Test case for get_linked_collections - - Get collections - """ - pass - - def test_get_linked_token(self) -> None: - """Test case for get_linked_token - - Return a linked token - """ - pass - - def test_get_linked_tokens(self) -> None: - """Test case for get_linked_tokens - - List all linked tokens - """ - pass - - def test_get_linked_tokens_count(self) -> None: - """Test case for get_linked_tokens_count - - Get the total count of linked tokens - """ - pass - - def test_issue_new_token(self) -> None: - """Test case for issue_new_token - - Issue a new token - """ - pass - - def test_issue_token_multi_chain(self) -> None: - """Test case for issue_token_multi_chain - - Issue a token on one or more blockchains - """ - pass - - def test_link(self) -> None: - """Test case for link - - Link a contract - """ - pass - - def test_mint_collection_token(self) -> None: - """Test case for mint_collection_token - - Mint tokens - """ - pass - - def test_re_issue_token_multi_chain(self) -> None: - """Test case for re_issue_token_multi_chain - - Reissue a multichain token - """ - pass - - def test_remove_layer_zero_peers(self) -> None: - """Test case for remove_layer_zero_peers - - Remove LayerZero peers - """ - pass - - def test_set_layer_zero_dvn_config(self) -> None: - """Test case for set_layer_zero_dvn_config - - Set LayerZero DVN configuration - """ - pass - - def test_set_layer_zero_peers(self) -> None: - """Test case for set_layer_zero_peers - - Set LayerZero peers - """ - pass - - def test_unlink(self) -> None: - """Test case for unlink - - Unlink a token - """ - pass - - def test_unlink_collection(self) -> None: - """Test case for unlink_collection - - Delete a collection link - """ - pass - - def test_validate_layer_zero_channel_config(self) -> None: - """Test case for validate_layer_zero_channel_config - - Validate LayerZero channel configuration - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLnRva2VuaXphdGlvbl9hcGkgaW1wb3J0IFRva2VuaXphdGlvbkFwaQoKCmNsYXNzIFRlc3RUb2tlbml6YXRpb25BcGkodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVG9rZW5pemF0aW9uQXBpIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKSAtPiBOb25lOgogICAgICAgIHNlbGYuYXBpID0gVG9rZW5pemF0aW9uQXBpKCkKCiAgICBkZWYgdGVhckRvd24oc2VsZikgLT4gTm9uZToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfYnVybl9jb2xsZWN0aW9uX3Rva2VuKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBidXJuX2NvbGxlY3Rpb25fdG9rZW4KCiAgICAgICAgQnVybiB0b2tlbnMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY3JlYXRlX25ld19jb2xsZWN0aW9uKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBjcmVhdGVfbmV3X2NvbGxlY3Rpb24KCiAgICAgICAgQ3JlYXRlIGEgbmV3IGNvbGxlY3Rpb24KICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZGVhY3RpdmF0ZV9hbmRfdW5saW5rX2FkYXB0ZXJzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBkZWFjdGl2YXRlX2FuZF91bmxpbmtfYWRhcHRlcnMKCiAgICAgICAgUmVtb3ZlIExheWVyWmVybyBhZGFwdGVycwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9kZXBsb3lfYW5kX2xpbmtfYWRhcHRlcnMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGRlcGxveV9hbmRfbGlua19hZGFwdGVycwoKICAgICAgICBEZXBsb3kgTGF5ZXJaZXJvIGFkYXB0ZXJzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2ZldGNoX2NvbGxlY3Rpb25fdG9rZW5fZGV0YWlscyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZmV0Y2hfY29sbGVjdGlvbl90b2tlbl9kZXRhaWxzCgogICAgICAgIEdldCBjb2xsZWN0aW9uIHRva2VuIGRldGFpbHMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2NvbGxlY3Rpb25fYnlfaWQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9jb2xsZWN0aW9uX2J5X2lkCgogICAgICAgIEdldCBhIGNvbGxlY3Rpb24gYnkgaWQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2RlcGxveWFibGVfYWRkcmVzcyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2RlcGxveWFibGVfYWRkcmVzcwoKICAgICAgICBHZXQgZGV0ZXJtaW5pc3RpYyBhZGRyZXNzIGZvciBjb250cmFjdCBkZXBsb3ltZW50CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9sYXllcl96ZXJvX2R2bl9jb25maWcoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9sYXllcl96ZXJvX2R2bl9jb25maWcKCiAgICAgICAgR2V0IExheWVyWmVybyBEVk4gY29uZmlndXJhdGlvbgogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfbGF5ZXJfemVyb19wZWVycyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2xheWVyX3plcm9fcGVlcnMKCiAgICAgICAgR2V0IExheWVyWmVybyBwZWVycwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfbGlua2VkX2NvbGxlY3Rpb25zKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfbGlua2VkX2NvbGxlY3Rpb25zCgogICAgICAgIEdldCBjb2xsZWN0aW9ucwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfbGlua2VkX3Rva2VuKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfbGlua2VkX3Rva2VuCgogICAgICAgIFJldHVybiBhIGxpbmtlZCB0b2tlbgogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfbGlua2VkX3Rva2VucyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2xpbmtlZF90b2tlbnMKCiAgICAgICAgTGlzdCBhbGwgbGlua2VkIHRva2VucwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfbGlua2VkX3Rva2Vuc19jb3VudChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2xpbmtlZF90b2tlbnNfY291bnQKCiAgICAgICAgR2V0IHRoZSB0b3RhbCBjb3VudCBvZiBsaW5rZWQgdG9rZW5zCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2lzc3VlX25ld190b2tlbihzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgaXNzdWVfbmV3X3Rva2VuCgogICAgICAgIElzc3VlIGEgbmV3IHRva2VuCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2lzc3VlX3Rva2VuX211bHRpX2NoYWluKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBpc3N1ZV90b2tlbl9tdWx0aV9jaGFpbgoKICAgICAgICBJc3N1ZSBhIHRva2VuIG9uIG9uZSBvciBtb3JlIGJsb2NrY2hhaW5zCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2xpbmsoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGxpbmsKCiAgICAgICAgTGluayBhIGNvbnRyYWN0CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X21pbnRfY29sbGVjdGlvbl90b2tlbihzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgbWludF9jb2xsZWN0aW9uX3Rva2VuCgogICAgICAgIE1pbnQgdG9rZW5zCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3JlX2lzc3VlX3Rva2VuX211bHRpX2NoYWluKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciByZV9pc3N1ZV90b2tlbl9tdWx0aV9jaGFpbgoKICAgICAgICBSZWlzc3VlIGEgbXVsdGljaGFpbiB0b2tlbgogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9yZW1vdmVfbGF5ZXJfemVyb19wZWVycyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgcmVtb3ZlX2xheWVyX3plcm9fcGVlcnMKCiAgICAgICAgUmVtb3ZlIExheWVyWmVybyBwZWVycwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9zZXRfbGF5ZXJfemVyb19kdm5fY29uZmlnKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBzZXRfbGF5ZXJfemVyb19kdm5fY29uZmlnCgogICAgICAgIFNldCBMYXllclplcm8gRFZOIGNvbmZpZ3VyYXRpb24KICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3Rfc2V0X2xheWVyX3plcm9fcGVlcnMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHNldF9sYXllcl96ZXJvX3BlZXJzCgogICAgICAgIFNldCBMYXllclplcm8gcGVlcnMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfdW5saW5rKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciB1bmxpbmsKCiAgICAgICAgVW5saW5rIGEgdG9rZW4KICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfdW5saW5rX2NvbGxlY3Rpb24oc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHVubGlua19jb2xsZWN0aW9uCgogICAgICAgIERlbGV0ZSBhIGNvbGxlY3Rpb24gbGluawogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF92YWxpZGF0ZV9sYXllcl96ZXJvX2NoYW5uZWxfY29uZmlnKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciB2YWxpZGF0ZV9sYXllcl96ZXJvX2NoYW5uZWxfY29uZmlnCgogICAgICAgIFZhbGlkYXRlIExheWVyWmVybyBjaGFubmVsIGNvbmZpZ3VyYXRpb24KICAgICAgICAiIiIKICAgICAgICBwYXNzCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tokens_paginated_response.py b/test/test_tokens_paginated_response.py index a77fa9fb..f54e0aae 100644 --- a/test/test_tokens_paginated_response.py +++ b/test/test_tokens_paginated_response.py @@ -1,72 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tokens_paginated_response import TokensPaginatedResponse - - -class TestTokensPaginatedResponse(unittest.TestCase): - """TokensPaginatedResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TokensPaginatedResponse: - """Test TokensPaginatedResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TokensPaginatedResponse` - """ - model = TokensPaginatedResponse() - if include_optional: - return TokensPaginatedResponse( - data = [ - fireblocks.models.token_link_dto.TokenLinkDto( - id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb', - status = 'COMPLETED', - type = 'NON_FUNGIBLE_TOKEN', - ref_id = 'BQ5R_MY_TOKEN', - display_name = 'My Simple ERC20 Token', - token_metadata = null, ) - ], - next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9' - ) - else: - return TokensPaginatedResponse( - data = [ - fireblocks.models.token_link_dto.TokenLinkDto( - id = 'fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb', - status = 'COMPLETED', - type = 'NON_FUNGIBLE_TOKEN', - ref_id = 'BQ5R_MY_TOKEN', - display_name = 'My Simple ERC20 Token', - token_metadata = null, ) - ], - ) - """ - - def testTokensPaginatedResponse(self): - """Test TokensPaginatedResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRva2Vuc19wYWdpbmF0ZWRfcmVzcG9uc2UgaW1wb3J0IFRva2Vuc1BhZ2luYXRlZFJlc3BvbnNlCgoKY2xhc3MgVGVzdFRva2Vuc1BhZ2luYXRlZFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRva2Vuc1BhZ2luYXRlZFJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUb2tlbnNQYWdpbmF0ZWRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFRva2Vuc1BhZ2luYXRlZFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRva2Vuc1BhZ2luYXRlZFJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVG9rZW5zUGFnaW5hdGVkUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUb2tlbnNQYWdpbmF0ZWRSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudG9rZW5fbGlua19kdG8uVG9rZW5MaW5rRHRvKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdmYmZiZmJmYi1mYmZiLWZiZmItZmJmYi1mYmZiZmJmYmZiZmInLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ0NPTVBMRVRFRCcsIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ05PTl9GVU5HSUJMRV9UT0tFTicsIAogICAgICAgICAgICAgICAgICAgICAgICByZWZfaWQgPSAnQlE1Ul9NWV9UT0tFTicsIAogICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5X25hbWUgPSAnTXkgU2ltcGxlIEVSQzIwIFRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuX21ldGFkYXRhID0gbnVsbCwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBuZXh0ID0gJ2VKMGVYQWlPaUpLVjFRaUxDSmhiR2NPaUpJVXpJMU5pSjknCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVG9rZW5zUGFnaW5hdGVkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRva2VuX2xpbmtfZHRvLlRva2VuTGlua0R0bygKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnZmJmYmZiZmItZmJmYi1mYmZiLWZiZmItZmJmYmZiZmJmYmZiJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdOT05fRlVOR0lCTEVfVE9LRU4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgcmVmX2lkID0gJ0JRNVJfTVlfVE9LRU4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheV9uYW1lID0gJ015IFNpbXBsZSBFUkMyMCBUb2tlbicsIAogICAgICAgICAgICAgICAgICAgICAgICB0b2tlbl9tZXRhZGF0YSA9IG51bGwsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRva2Vuc1BhZ2luYXRlZFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVG9rZW5zUGFnaW5hdGVkUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_total_supply_item_dto.py b/test/test_total_supply_item_dto.py index f33c3d6f..23e2ff6a 100644 --- a/test/test_total_supply_item_dto.py +++ b/test/test_total_supply_item_dto.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.total_supply_item_dto import TotalSupplyItemDto - - -class TestTotalSupplyItemDto(unittest.TestCase): - """TotalSupplyItemDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TotalSupplyItemDto: - """Test TotalSupplyItemDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TotalSupplyItemDto` - """ - model = TotalSupplyItemDto() - if include_optional: - return TotalSupplyItemDto( - timestamp = '2024-01-01T23:59:59.999Z', - total_supply = '1000000000000000000000' - ) - else: - return TotalSupplyItemDto( - timestamp = '2024-01-01T23:59:59.999Z', - total_supply = '1000000000000000000000', - ) - """ - - def testTotalSupplyItemDto(self): - """Test TotalSupplyItemDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRvdGFsX3N1cHBseV9pdGVtX2R0byBpbXBvcnQgVG90YWxTdXBwbHlJdGVtRHRvCgoKY2xhc3MgVGVzdFRvdGFsU3VwcGx5SXRlbUR0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUb3RhbFN1cHBseUl0ZW1EdG8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRvdGFsU3VwcGx5SXRlbUR0bzoKICAgICAgICAiIiJUZXN0IFRvdGFsU3VwcGx5SXRlbUR0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUb3RhbFN1cHBseUl0ZW1EdG9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUb3RhbFN1cHBseUl0ZW1EdG8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUb3RhbFN1cHBseUl0ZW1EdG8oCiAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSAnMjAyNC0wMS0wMVQyMzo1OTo1OS45OTlaJywKICAgICAgICAgICAgICAgIHRvdGFsX3N1cHBseSA9ICcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRvdGFsU3VwcGx5SXRlbUR0bygKICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9ICcyMDI0LTAxLTAxVDIzOjU5OjU5Ljk5OVonLAogICAgICAgICAgICAgICAgdG90YWxfc3VwcGx5ID0gJzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRvdGFsU3VwcGx5SXRlbUR0byhzZWxmKToKICAgICAgICAiIiJUZXN0IFRvdGFsU3VwcGx5SXRlbUR0byIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_total_supply_paged_response.py b/test/test_total_supply_paged_response.py index 05ae2ce5..0834438b 100644 --- a/test/test_total_supply_paged_response.py +++ b/test/test_total_supply_paged_response.py @@ -1,66 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.total_supply_paged_response import TotalSupplyPagedResponse - - -class TestTotalSupplyPagedResponse(unittest.TestCase): - """TotalSupplyPagedResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TotalSupplyPagedResponse: - """Test TotalSupplyPagedResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TotalSupplyPagedResponse` - """ - model = TotalSupplyPagedResponse() - if include_optional: - return TotalSupplyPagedResponse( - data = [ - fireblocks.models.total_supply_item_dto.TotalSupplyItemDto( - timestamp = '2024-01-01T23:59:59.999Z', - total_supply = '1000000000000000000000', ) - ], - next = 'MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==', - prev = 'dGhpcyBpcyBhIHByZXZpb3VzIGN1cnNvcg==', - total = 150 - ) - else: - return TotalSupplyPagedResponse( - data = [ - fireblocks.models.total_supply_item_dto.TotalSupplyItemDto( - timestamp = '2024-01-01T23:59:59.999Z', - total_supply = '1000000000000000000000', ) - ], - ) - """ - - def testTotalSupplyPagedResponse(self): - """Test TotalSupplyPagedResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRvdGFsX3N1cHBseV9wYWdlZF9yZXNwb25zZSBpbXBvcnQgVG90YWxTdXBwbHlQYWdlZFJlc3BvbnNlCgoKY2xhc3MgVGVzdFRvdGFsU3VwcGx5UGFnZWRSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUb3RhbFN1cHBseVBhZ2VkUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRvdGFsU3VwcGx5UGFnZWRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFRvdGFsU3VwcGx5UGFnZWRSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUb3RhbFN1cHBseVBhZ2VkUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUb3RhbFN1cHBseVBhZ2VkUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUb3RhbFN1cHBseVBhZ2VkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRvdGFsX3N1cHBseV9pdGVtX2R0by5Ub3RhbFN1cHBseUl0ZW1EdG8oCiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9ICcyMDI0LTAxLTAxVDIzOjU5OjU5Ljk5OVonLCAKICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxfc3VwcGx5ID0gJzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIG5leHQgPSAnTWpBeU15MHhNaTB4TXlBeU1Eb3pOam93T0M0ek1EST06TVRFd01BPT0nLAogICAgICAgICAgICAgICAgcHJldiA9ICdkR2hwY3lCcGN5QmhJSEJ5WlhacGIzVnpJR04xY25OdmNnPT0nLAogICAgICAgICAgICAgICAgdG90YWwgPSAxNTAKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUb3RhbFN1cHBseVBhZ2VkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRvdGFsX3N1cHBseV9pdGVtX2R0by5Ub3RhbFN1cHBseUl0ZW1EdG8oCiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9ICcyMDI0LTAxLTAxVDIzOjU5OjU5Ljk5OVonLCAKICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxfc3VwcGx5ID0gJzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUb3RhbFN1cHBseVBhZ2VkUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUb3RhbFN1cHBseVBhZ2VkUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_amount.py b/test/test_tr_link_amount.py index 2266ba17..0391df88 100644 --- a/test/test_tr_link_amount.py +++ b/test/test_tr_link_amount.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_amount import TRLinkAmount - - -class TestTRLinkAmount(unittest.TestCase): - """TRLinkAmount unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkAmount: - """Test TRLinkAmount - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkAmount` - """ - model = TRLinkAmount() - if include_optional: - return TRLinkAmount( - range = fireblocks.models.amount_range_min_max.AmountRangeMinMax( - min = '100', - max = '10000', ), - currency = 'USD' - ) - else: - return TRLinkAmount( - ) - """ - - def testTRLinkAmount(self): - """Test TRLinkAmount""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYW1vdW50IGltcG9ydCBUUkxpbmtBbW91bnQKCgpjbGFzcyBUZXN0VFJMaW5rQW1vdW50KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua0Ftb3VudCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVFJMaW5rQW1vdW50OgogICAgICAgICIiIlRlc3QgVFJMaW5rQW1vdW50CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRSTGlua0Ftb3VudGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRSTGlua0Ftb3VudCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRSTGlua0Ftb3VudCgKICAgICAgICAgICAgICAgIHJhbmdlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYW1vdW50X3JhbmdlX21pbl9tYXguQW1vdW50UmFuZ2VNaW5NYXgoCiAgICAgICAgICAgICAgICAgICAgbWluID0gJzEwMCcsIAogICAgICAgICAgICAgICAgICAgIG1heCA9ICcxMDAwMCcsICksCiAgICAgICAgICAgICAgICBjdXJyZW5jeSA9ICdVU0QnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rQW1vdW50KAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua0Ftb3VudChzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua0Ftb3VudCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_amount2.py b/test/test_tr_link_amount2.py index 9a5e64a8..2cccba09 100644 --- a/test/test_tr_link_amount2.py +++ b/test/test_tr_link_amount2.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_amount2 import TRLinkAmount2 - - -class TestTRLinkAmount2(unittest.TestCase): - """TRLinkAmount2 unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkAmount2: - """Test TRLinkAmount2 - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkAmount2` - """ - model = TRLinkAmount2() - if include_optional: - return TRLinkAmount2( - range = fireblocks.models.tr_link_amount_range.TRLinkAmountRange( - min = '1000', - max = '100000', ), - currency = 'USD' - ) - else: - return TRLinkAmount2( - range = fireblocks.models.tr_link_amount_range.TRLinkAmountRange( - min = '1000', - max = '100000', ), - currency = 'USD', - ) - """ - - def testTRLinkAmount2(self): - """Test TRLinkAmount2""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYW1vdW50MiBpbXBvcnQgVFJMaW5rQW1vdW50MgoKCmNsYXNzIFRlc3RUUkxpbmtBbW91bnQyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua0Ftb3VudDIgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRSTGlua0Ftb3VudDI6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtBbW91bnQyCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRSTGlua0Ftb3VudDJgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtBbW91bnQyKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rQW1vdW50MigKICAgICAgICAgICAgICAgIHJhbmdlID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hbW91bnRfcmFuZ2UuVFJMaW5rQW1vdW50UmFuZ2UoCiAgICAgICAgICAgICAgICAgICAgbWluID0gJzEwMDAnLCAKICAgICAgICAgICAgICAgICAgICBtYXggPSAnMTAwMDAwJywgKSwKICAgICAgICAgICAgICAgIGN1cnJlbmN5ID0gJ1VTRCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtBbW91bnQyKAogICAgICAgICAgICAgICAgcmFuZ2UgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Ftb3VudF9yYW5nZS5UUkxpbmtBbW91bnRSYW5nZSgKICAgICAgICAgICAgICAgICAgICBtaW4gPSAnMTAwMCcsIAogICAgICAgICAgICAgICAgICAgIG1heCA9ICcxMDAwMDAnLCApLAogICAgICAgICAgICAgICAgY3VycmVuY3kgPSAnVVNEJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtBbW91bnQyKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rQW1vdW50MiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_amount_range.py b/test/test_tr_link_amount_range.py index 398dabea..00e34e3f 100644 --- a/test/test_tr_link_amount_range.py +++ b/test/test_tr_link_amount_range.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_amount_range import TRLinkAmountRange - - -class TestTRLinkAmountRange(unittest.TestCase): - """TRLinkAmountRange unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkAmountRange: - """Test TRLinkAmountRange - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkAmountRange` - """ - model = TRLinkAmountRange() - if include_optional: - return TRLinkAmountRange( - min = '1000', - max = '100000' - ) - else: - return TRLinkAmountRange( - ) - """ - - def testTRLinkAmountRange(self): - """Test TRLinkAmountRange""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYW1vdW50X3JhbmdlIGltcG9ydCBUUkxpbmtBbW91bnRSYW5nZQoKCmNsYXNzIFRlc3RUUkxpbmtBbW91bnRSYW5nZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUUkxpbmtBbW91bnRSYW5nZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVFJMaW5rQW1vdW50UmFuZ2U6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtBbW91bnRSYW5nZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUUkxpbmtBbW91bnRSYW5nZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRSTGlua0Ftb3VudFJhbmdlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rQW1vdW50UmFuZ2UoCiAgICAgICAgICAgICAgICBtaW4gPSAnMTAwMCcsCiAgICAgICAgICAgICAgICBtYXggPSAnMTAwMDAwJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRSTGlua0Ftb3VudFJhbmdlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua0Ftb3VudFJhbmdlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rQW1vdW50UmFuZ2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_api.py b/test/test_tr_link_api.py index 5e764458..47428270 100644 --- a/test/test_tr_link_api.py +++ b/test/test_tr_link_api.py @@ -1,207 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.tr_link_api import TRLinkApi - - -class TestTRLinkApi(unittest.TestCase): - """TRLinkApi unit test stubs""" - - def setUp(self) -> None: - self.api = TRLinkApi() - - def tearDown(self) -> None: - pass - - def test_assess_tr_link_travel_rule_requirement(self) -> None: - """Test case for assess_tr_link_travel_rule_requirement - - Assess Travel Rule requirement - """ - pass - - def test_cancel_tr_link_trm(self) -> None: - """Test case for cancel_tr_link_trm - - Cancel Travel Rule Message - """ - pass - - def test_connect_tr_link_integration(self) -> None: - """Test case for connect_tr_link_integration - - Connect customer integration - """ - pass - - def test_create_tr_link_customer(self) -> None: - """Test case for create_tr_link_customer - - Create customer - """ - pass - - def test_create_tr_link_integration(self) -> None: - """Test case for create_tr_link_integration - - Create customer integration - """ - pass - - def test_create_tr_link_trm(self) -> None: - """Test case for create_tr_link_trm - - Create Travel Rule Message - """ - pass - - def test_delete_tr_link_customer(self) -> None: - """Test case for delete_tr_link_customer - - Delete customer - """ - pass - - def test_disconnect_tr_link_integration(self) -> None: - """Test case for disconnect_tr_link_integration - - Disconnect customer integration - """ - pass - - def test_get_tr_link_customer_by_id(self) -> None: - """Test case for get_tr_link_customer_by_id - - Get customer by ID - """ - pass - - def test_get_tr_link_customer_integration_by_id(self) -> None: - """Test case for get_tr_link_customer_integration_by_id - - Get customer integration by ID - """ - pass - - def test_get_tr_link_customer_integrations(self) -> None: - """Test case for get_tr_link_customer_integrations - - Get customer integrations - """ - pass - - def test_get_tr_link_customers(self) -> None: - """Test case for get_tr_link_customers - - Get all customers - """ - pass - - def test_get_tr_link_integration_public_key(self) -> None: - """Test case for get_tr_link_integration_public_key - - Get public key for PII encryption - """ - pass - - def test_get_tr_link_partners(self) -> None: - """Test case for get_tr_link_partners - - List available TRSupport partners - """ - pass - - def test_get_tr_link_policy(self) -> None: - """Test case for get_tr_link_policy - - Get TRLink policy - """ - pass - - def test_get_tr_link_supported_asset(self) -> None: - """Test case for get_tr_link_supported_asset - - Get supported asset by ID - """ - pass - - def test_get_tr_link_trm_by_id(self) -> None: - """Test case for get_tr_link_trm_by_id - - Get TRM by ID - """ - pass - - def test_get_tr_link_vasp_by_id(self) -> None: - """Test case for get_tr_link_vasp_by_id - - Get VASP by ID - """ - pass - - def test_list_tr_link_supported_assets(self) -> None: - """Test case for list_tr_link_supported_assets - - List supported assets - """ - pass - - def test_list_tr_link_vasps(self) -> None: - """Test case for list_tr_link_vasps - - List VASPs - """ - pass - - def test_redirect_tr_link_trm(self) -> None: - """Test case for redirect_tr_link_trm - - Redirect Travel Rule Message - """ - pass - - def test_set_tr_link_destination_travel_rule_message_id(self) -> None: - """Test case for set_tr_link_destination_travel_rule_message_id - - Set destination travel rule message ID - """ - pass - - def test_set_tr_link_transaction_travel_rule_message_id(self) -> None: - """Test case for set_tr_link_transaction_travel_rule_message_id - - Set transaction travel rule message ID - """ - pass - - def test_test_tr_link_integration_connection(self) -> None: - """Test case for test_tr_link_integration_connection - - Test connection - """ - pass - - def test_update_tr_link_customer(self) -> None: - """Test case for update_tr_link_customer - - Update customer - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLnRyX2xpbmtfYXBpIGltcG9ydCBUUkxpbmtBcGkKCgpjbGFzcyBUZXN0VFJMaW5rQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua0FwaSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZikgLT4gTm9uZToKICAgICAgICBzZWxmLmFwaSA9IFRSTGlua0FwaSgpCgogICAgZGVmIHRlYXJEb3duKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2Fzc2Vzc190cl9saW5rX3RyYXZlbF9ydWxlX3JlcXVpcmVtZW50KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBhc3Nlc3NfdHJfbGlua190cmF2ZWxfcnVsZV9yZXF1aXJlbWVudAoKICAgICAgICBBc3Nlc3MgVHJhdmVsIFJ1bGUgcmVxdWlyZW1lbnQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY2FuY2VsX3RyX2xpbmtfdHJtKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBjYW5jZWxfdHJfbGlua190cm0KCiAgICAgICAgQ2FuY2VsIFRyYXZlbCBSdWxlIE1lc3NhZ2UKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY29ubmVjdF90cl9saW5rX2ludGVncmF0aW9uKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBjb25uZWN0X3RyX2xpbmtfaW50ZWdyYXRpb24KCiAgICAgICAgQ29ubmVjdCBjdXN0b21lciBpbnRlZ3JhdGlvbgogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9jcmVhdGVfdHJfbGlua19jdXN0b21lcihzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgY3JlYXRlX3RyX2xpbmtfY3VzdG9tZXIKCiAgICAgICAgQ3JlYXRlIGN1c3RvbWVyCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2NyZWF0ZV90cl9saW5rX2ludGVncmF0aW9uKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBjcmVhdGVfdHJfbGlua19pbnRlZ3JhdGlvbgoKICAgICAgICBDcmVhdGUgY3VzdG9tZXIgaW50ZWdyYXRpb24KICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY3JlYXRlX3RyX2xpbmtfdHJtKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBjcmVhdGVfdHJfbGlua190cm0KCiAgICAgICAgQ3JlYXRlIFRyYXZlbCBSdWxlIE1lc3NhZ2UKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZGVsZXRlX3RyX2xpbmtfY3VzdG9tZXIoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGRlbGV0ZV90cl9saW5rX2N1c3RvbWVyCgogICAgICAgIERlbGV0ZSBjdXN0b21lcgogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9kaXNjb25uZWN0X3RyX2xpbmtfaW50ZWdyYXRpb24oc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGRpc2Nvbm5lY3RfdHJfbGlua19pbnRlZ3JhdGlvbgoKICAgICAgICBEaXNjb25uZWN0IGN1c3RvbWVyIGludGVncmF0aW9uCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF90cl9saW5rX2N1c3RvbWVyX2J5X2lkKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfdHJfbGlua19jdXN0b21lcl9ieV9pZAoKICAgICAgICBHZXQgY3VzdG9tZXIgYnkgSUQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3RyX2xpbmtfY3VzdG9tZXJfaW50ZWdyYXRpb25fYnlfaWQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF90cl9saW5rX2N1c3RvbWVyX2ludGVncmF0aW9uX2J5X2lkCgogICAgICAgIEdldCBjdXN0b21lciBpbnRlZ3JhdGlvbiBieSBJRAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfdHJfbGlua19jdXN0b21lcl9pbnRlZ3JhdGlvbnMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF90cl9saW5rX2N1c3RvbWVyX2ludGVncmF0aW9ucwoKICAgICAgICBHZXQgY3VzdG9tZXIgaW50ZWdyYXRpb25zCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF90cl9saW5rX2N1c3RvbWVycyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X3RyX2xpbmtfY3VzdG9tZXJzCgogICAgICAgIEdldCBhbGwgY3VzdG9tZXJzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF90cl9saW5rX2ludGVncmF0aW9uX3B1YmxpY19rZXkoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF90cl9saW5rX2ludGVncmF0aW9uX3B1YmxpY19rZXkKCiAgICAgICAgR2V0IHB1YmxpYyBrZXkgZm9yIFBJSSBlbmNyeXB0aW9uCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF90cl9saW5rX3BhcnRuZXJzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfdHJfbGlua19wYXJ0bmVycwoKICAgICAgICBMaXN0IGF2YWlsYWJsZSBUUlN1cHBvcnQgcGFydG5lcnMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3RyX2xpbmtfcG9saWN5KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfdHJfbGlua19wb2xpY3kKCiAgICAgICAgR2V0IFRSTGluayBwb2xpY3kKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3RyX2xpbmtfc3VwcG9ydGVkX2Fzc2V0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfdHJfbGlua19zdXBwb3J0ZWRfYXNzZXQKCiAgICAgICAgR2V0IHN1cHBvcnRlZCBhc3NldCBieSBJRAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfdHJfbGlua190cm1fYnlfaWQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF90cl9saW5rX3RybV9ieV9pZAoKICAgICAgICBHZXQgVFJNIGJ5IElECiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF90cl9saW5rX3Zhc3BfYnlfaWQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF90cl9saW5rX3Zhc3BfYnlfaWQKCiAgICAgICAgR2V0IFZBU1AgYnkgSUQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfbGlzdF90cl9saW5rX3N1cHBvcnRlZF9hc3NldHMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGxpc3RfdHJfbGlua19zdXBwb3J0ZWRfYXNzZXRzCgogICAgICAgIExpc3Qgc3VwcG9ydGVkIGFzc2V0cwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9saXN0X3RyX2xpbmtfdmFzcHMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGxpc3RfdHJfbGlua192YXNwcwoKICAgICAgICBMaXN0IFZBU1BzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3JlZGlyZWN0X3RyX2xpbmtfdHJtKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciByZWRpcmVjdF90cl9saW5rX3RybQoKICAgICAgICBSZWRpcmVjdCBUcmF2ZWwgUnVsZSBNZXNzYWdlCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3NldF90cl9saW5rX2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHNldF90cl9saW5rX2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWQKCiAgICAgICAgU2V0IGRlc3RpbmF0aW9uIHRyYXZlbCBydWxlIG1lc3NhZ2UgSUQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3Rfc2V0X3RyX2xpbmtfdHJhbnNhY3Rpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3Igc2V0X3RyX2xpbmtfdHJhbnNhY3Rpb25fdHJhdmVsX3J1bGVfbWVzc2FnZV9pZAoKICAgICAgICBTZXQgdHJhbnNhY3Rpb24gdHJhdmVsIHJ1bGUgbWVzc2FnZSBJRAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF90ZXN0X3RyX2xpbmtfaW50ZWdyYXRpb25fY29ubmVjdGlvbihzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgdGVzdF90cl9saW5rX2ludGVncmF0aW9uX2Nvbm5lY3Rpb24KCiAgICAgICAgVGVzdCBjb25uZWN0aW9uCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3VwZGF0ZV90cl9saW5rX2N1c3RvbWVyKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciB1cGRhdGVfdHJfbGlua19jdXN0b21lcgoKICAgICAgICBVcGRhdGUgY3VzdG9tZXIKICAgICAgICAiIiIKICAgICAgICBwYXNzCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_api_paged_response.py b/test/test_tr_link_api_paged_response.py index 33cad368..3e11abdd 100644 --- a/test/test_tr_link_api_paged_response.py +++ b/test/test_tr_link_api_paged_response.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_api_paged_response import TRLinkAPIPagedResponse - - -class TestTRLinkAPIPagedResponse(unittest.TestCase): - """TRLinkAPIPagedResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkAPIPagedResponse: - """Test TRLinkAPIPagedResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkAPIPagedResponse` - """ - model = TRLinkAPIPagedResponse() - if include_optional: - return TRLinkAPIPagedResponse( - data = [ - { } - ], - paging = fireblocks.models.tr_link_paging.TRLinkPaging( - next = 'eyJwYWdlIjoyLCJsaW1pdCI6MTAwfQ==', ) - ) - else: - return TRLinkAPIPagedResponse( - data = [ - { } - ], - ) - """ - - def testTRLinkAPIPagedResponse(self): - """Test TRLinkAPIPagedResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXBpX3BhZ2VkX3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtBUElQYWdlZFJlc3BvbnNlCgoKY2xhc3MgVGVzdFRSTGlua0FQSVBhZ2VkUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rQVBJUGFnZWRSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVFJMaW5rQVBJUGFnZWRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFRSTGlua0FQSVBhZ2VkUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rQVBJUGFnZWRSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRSTGlua0FQSVBhZ2VkUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtBUElQYWdlZFJlc3BvbnNlKAogICAgICAgICAgICAgICAgZGF0YSA9IFsKICAgICAgICAgICAgICAgICAgICB7IH0KICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgcGFnaW5nID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wYWdpbmcuVFJMaW5rUGFnaW5nKAogICAgICAgICAgICAgICAgICAgIG5leHQgPSAnZXlKd1lXZGxJam95TENKc2FXMXBkQ0k2TVRBd2ZRPT0nLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rQVBJUGFnZWRSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgeyB9CiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtBUElQYWdlZFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rQVBJUGFnZWRSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_assess_travel_rule_request.py b/test/test_tr_link_assess_travel_rule_request.py index 55118bc5..a8cbfcb3 100644 --- a/test/test_tr_link_assess_travel_rule_request.py +++ b/test/test_tr_link_assess_travel_rule_request.py @@ -1,77 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_assess_travel_rule_request import ( - TRLinkAssessTravelRuleRequest, -) - - -class TestTRLinkAssessTravelRuleRequest(unittest.TestCase): - """TRLinkAssessTravelRuleRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkAssessTravelRuleRequest: - """Test TRLinkAssessTravelRuleRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkAssessTravelRuleRequest` - """ - model = TRLinkAssessTravelRuleRequest() - if include_optional: - return TRLinkAssessTravelRuleRequest( - tx_id = '550e8400-e29b-41d4-a716-446655440000', - amount = '1000', - amount_usd = '1000.50', - destination = fireblocks.models.tr_link_destination_transfer_peer_path.TRLinkDestinationTransferPeerPath( - type = 'ONE_TIME_ADDRESS', - id = '45', - wallet_id = '0', - one_time_address = fireblocks.models.tr_link_one_time_address.TRLinkOneTimeAddress( - address = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb', - tag = '1234567890', ), ), - dest_address = '0x8d12A197cB00D4747a1fe03395095ce2A5CC6819', - dest_tag = '1234567890', - source = fireblocks.models.tr_link_source_transfer_peer_path.TRLinkSourceTransferPeerPath( - type = 'VAULT_ACCOUNT', - id = '12', - wallet_id = '0', ), - src_address = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb', - asset_id = 'USDT_ERC20', - direction = 'OUTBOUND', - tx_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef', - originator_vasp_id = 'did:ethr:0x1234567890abcdef', - beneficiary_vasp_id = 'did:ethr:0xfedcba0987654321' - ) - else: - return TRLinkAssessTravelRuleRequest( - ) - """ - - def testTRLinkAssessTravelRuleRequest(self): - """Test TRLinkAssessTravelRuleRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXNzZXNzX3RyYXZlbF9ydWxlX3JlcXVlc3QgaW1wb3J0ICgKICAgIFRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXF1ZXN0LAopCgoKY2xhc3MgVGVzdFRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVxdWVzdDoKICAgICAgICAiIiJUZXN0IFRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVxdWVzdCgKICAgICAgICAgICAgICAgIHR4X2lkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCcsCiAgICAgICAgICAgICAgICBhbW91bnQgPSAnMTAwMCcsCiAgICAgICAgICAgICAgICBhbW91bnRfdXNkID0gJzEwMDAuNTAnLAogICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Rlc3RpbmF0aW9uX3RyYW5zZmVyX3BlZXJfcGF0aC5UUkxpbmtEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgoCiAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdPTkVfVElNRV9BRERSRVNTJywgCiAgICAgICAgICAgICAgICAgICAgaWQgPSAnNDUnLCAKICAgICAgICAgICAgICAgICAgICB3YWxsZXRfaWQgPSAnMCcsIAogICAgICAgICAgICAgICAgICAgIG9uZV90aW1lX2FkZHJlc3MgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX29uZV90aW1lX2FkZHJlc3MuVFJMaW5rT25lVGltZUFkZHJlc3MoCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHg3NDJkMzVDYzY2MzRDMDUzMjkyNWEzYjg0NEJjOWU3NTk1ZjBiRWInLCAKICAgICAgICAgICAgICAgICAgICAgICAgdGFnID0gJzEyMzQ1Njc4OTAnLCApLCApLAogICAgICAgICAgICAgICAgZGVzdF9hZGRyZXNzID0gJzB4OGQxMkExOTdjQjAwRDQ3NDdhMWZlMDMzOTUwOTVjZTJBNUNDNjgxOScsCiAgICAgICAgICAgICAgICBkZXN0X3RhZyA9ICcxMjM0NTY3ODkwJywKICAgICAgICAgICAgICAgIHNvdXJjZSA9IGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfc291cmNlX3RyYW5zZmVyX3BlZXJfcGF0aC5UUkxpbmtTb3VyY2VUcmFuc2ZlclBlZXJQYXRoKAogICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFRfQUNDT1VOVCcsIAogICAgICAgICAgICAgICAgICAgIGlkID0gJzEyJywgCiAgICAgICAgICAgICAgICAgICAgd2FsbGV0X2lkID0gJzAnLCApLAogICAgICAgICAgICAgICAgc3JjX2FkZHJlc3MgPSAnMHg3NDJkMzVDYzY2MzRDMDUzMjkyNWEzYjg0NEJjOWU3NTk1ZjBiRWInLAogICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnVVNEVF9FUkMyMCcsCiAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLAogICAgICAgICAgICAgICAgdHhfaGFzaCA9ICcweDEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYnLAogICAgICAgICAgICAgICAgb3JpZ2luYXRvcl92YXNwX2lkID0gJ2RpZDpldGhyOjB4MTIzNDU2Nzg5MGFiY2RlZicsCiAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV92YXNwX2lkID0gJ2RpZDpldGhyOjB4ZmVkY2JhMDk4NzY1NDMyMScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVxdWVzdCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tr_link_assess_travel_rule_response.py b/test/test_tr_link_assess_travel_rule_response.py index d7494dcd..fc2be7b9 100644 --- a/test/test_tr_link_assess_travel_rule_response.py +++ b/test/test_tr_link_assess_travel_rule_response.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_assess_travel_rule_response import ( - TRLinkAssessTravelRuleResponse, -) - - -class TestTRLinkAssessTravelRuleResponse(unittest.TestCase): - """TRLinkAssessTravelRuleResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkAssessTravelRuleResponse: - """Test TRLinkAssessTravelRuleResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkAssessTravelRuleResponse` - """ - model = TRLinkAssessTravelRuleResponse() - if include_optional: - return TRLinkAssessTravelRuleResponse( - decision = 'REQUIRED', - reason = 'Transaction amount exceeds Travel Rule threshold for this jurisdiction', - required_fields = ["originator.name","originator.address","beneficiary.name","beneficiary.address"], - missing_info = ["beneficiary.nationalIdentification","beneficiary.dateOfBirth"], - thresholds = fireblocks.models.tr_link_thresholds.TRLinkThresholds( - amount = '1000', - currency = 'USD', ) - ) - else: - return TRLinkAssessTravelRuleResponse( - decision = 'REQUIRED', - reason = 'Transaction amount exceeds Travel Rule threshold for this jurisdiction', - ) - """ - - def testTRLinkAssessTravelRuleResponse(self): - """Test TRLinkAssessTravelRuleResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXNzZXNzX3RyYXZlbF9ydWxlX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBUUkxpbmtBc3Nlc3NUcmF2ZWxSdWxlUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0VFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRlY2lzaW9uID0gJ1JFUVVJUkVEJywKICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdUcmFuc2FjdGlvbiBhbW91bnQgZXhjZWVkcyBUcmF2ZWwgUnVsZSB0aHJlc2hvbGQgZm9yIHRoaXMganVyaXNkaWN0aW9uJywKICAgICAgICAgICAgICAgIHJlcXVpcmVkX2ZpZWxkcyA9IFsib3JpZ2luYXRvci5uYW1lIiwib3JpZ2luYXRvci5hZGRyZXNzIiwiYmVuZWZpY2lhcnkubmFtZSIsImJlbmVmaWNpYXJ5LmFkZHJlc3MiXSwKICAgICAgICAgICAgICAgIG1pc3NpbmdfaW5mbyA9IFsiYmVuZWZpY2lhcnkubmF0aW9uYWxJZGVudGlmaWNhdGlvbiIsImJlbmVmaWNpYXJ5LmRhdGVPZkJpcnRoIl0sCiAgICAgICAgICAgICAgICB0aHJlc2hvbGRzID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua190aHJlc2hvbGRzLlRSTGlua1RocmVzaG9sZHMoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJzEwMDAnLCAKICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeSA9ICdVU0QnLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rQXNzZXNzVHJhdmVsUnVsZVJlc3BvbnNlKAogICAgICAgICAgICAgICAgZGVjaXNpb24gPSAnUkVRVUlSRUQnLAogICAgICAgICAgICAgICAgcmVhc29uID0gJ1RyYW5zYWN0aW9uIGFtb3VudCBleGNlZWRzIFRyYXZlbCBSdWxlIHRocmVzaG9sZCBmb3IgdGhpcyBqdXJpc2RpY3Rpb24nLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua0Fzc2Vzc1RyYXZlbFJ1bGVSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_assessment_decision.py b/test/test_tr_link_assessment_decision.py index 0cc08734..4f541a34 100644 --- a/test/test_tr_link_assessment_decision.py +++ b/test/test_tr_link_assessment_decision.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_assessment_decision import TRLinkAssessmentDecision - - -class TestTRLinkAssessmentDecision(unittest.TestCase): - """TRLinkAssessmentDecision unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTRLinkAssessmentDecision(self): - """Test TRLinkAssessmentDecision""" - # inst = TRLinkAssessmentDecision() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXNzZXNzbWVudF9kZWNpc2lvbiBpbXBvcnQgVFJMaW5rQXNzZXNzbWVudERlY2lzaW9uCgoKY2xhc3MgVGVzdFRSTGlua0Fzc2Vzc21lbnREZWNpc2lvbih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUUkxpbmtBc3Nlc3NtZW50RGVjaXNpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0VFJMaW5rQXNzZXNzbWVudERlY2lzaW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rQXNzZXNzbWVudERlY2lzaW9uIiIiCiAgICAgICAgIyBpbnN0ID0gVFJMaW5rQXNzZXNzbWVudERlY2lzaW9uKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_asset.py b/test/test_tr_link_asset.py index fb8f91be..ff9cbf14 100644 --- a/test/test_tr_link_asset.py +++ b/test/test_tr_link_asset.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_asset import TRLinkAsset - - -class TestTRLinkAsset(unittest.TestCase): - """TRLinkAsset unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkAsset: - """Test TRLinkAsset - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkAsset` - """ - model = TRLinkAsset() - if include_optional: - return TRLinkAsset( - format = 'fireblocks', - data = fireblocks.models.tr_link_asset_data.TRLinkAssetData( - ticker = 'USDT', - network = 'ETH', - ucid = 825, - contract_address = '0xdac17f958d2ee523a2206206994597c13d831ec7', - id = 'USDT_ERC20', ) - ) - else: - return TRLinkAsset( - format = 'fireblocks', - data = fireblocks.models.tr_link_asset_data.TRLinkAssetData( - ticker = 'USDT', - network = 'ETH', - ucid = 825, - contract_address = '0xdac17f958d2ee523a2206206994597c13d831ec7', - id = 'USDT_ERC20', ), - ) - """ - - def testTRLinkAsset(self): - """Test TRLinkAsset""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXNzZXQgaW1wb3J0IFRSTGlua0Fzc2V0CgoKY2xhc3MgVGVzdFRSTGlua0Fzc2V0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua0Fzc2V0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUUkxpbmtBc3NldDoKICAgICAgICAiIiJUZXN0IFRSTGlua0Fzc2V0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRSTGlua0Fzc2V0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVFJMaW5rQXNzZXQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtBc3NldCgKICAgICAgICAgICAgICAgIGZvcm1hdCA9ICdmaXJlYmxvY2tzJywKICAgICAgICAgICAgICAgIGRhdGEgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Fzc2V0X2RhdGEuVFJMaW5rQXNzZXREYXRhKAogICAgICAgICAgICAgICAgICAgIHRpY2tlciA9ICdVU0RUJywgCiAgICAgICAgICAgICAgICAgICAgbmV0d29yayA9ICdFVEgnLCAKICAgICAgICAgICAgICAgICAgICB1Y2lkID0gODI1LCAKICAgICAgICAgICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzID0gJzB4ZGFjMTdmOTU4ZDJlZTUyM2EyMjA2MjA2OTk0NTk3YzEzZDgzMWVjNycsIAogICAgICAgICAgICAgICAgICAgIGlkID0gJ1VTRFRfRVJDMjAnLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rQXNzZXQoCiAgICAgICAgICAgICAgICBmb3JtYXQgPSAnZmlyZWJsb2NrcycsCiAgICAgICAgICAgICAgICBkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hc3NldF9kYXRhLlRSTGlua0Fzc2V0RGF0YSgKICAgICAgICAgICAgICAgICAgICB0aWNrZXIgPSAnVVNEVCcsIAogICAgICAgICAgICAgICAgICAgIG5ldHdvcmsgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgdWNpZCA9IDgyNSwgCiAgICAgICAgICAgICAgICAgICAgY29udHJhY3RfYWRkcmVzcyA9ICcweGRhYzE3Zjk1OGQyZWU1MjNhMjIwNjIwNjk5NDU5N2MxM2Q4MzFlYzcnLCAKICAgICAgICAgICAgICAgICAgICBpZCA9ICdVU0RUX0VSQzIwJywgKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtBc3NldChzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua0Fzc2V0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tr_link_asset_data.py b/test/test_tr_link_asset_data.py index 36a23e50..f7c5c4ca 100644 --- a/test/test_tr_link_asset_data.py +++ b/test/test_tr_link_asset_data.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_asset_data import TRLinkAssetData - - -class TestTRLinkAssetData(unittest.TestCase): - """TRLinkAssetData unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkAssetData: - """Test TRLinkAssetData - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkAssetData` - """ - model = TRLinkAssetData() - if include_optional: - return TRLinkAssetData( - ticker = 'USDT', - network = 'ETH', - ucid = 825, - contract_address = '0xdac17f958d2ee523a2206206994597c13d831ec7', - id = 'USDT_ERC20' - ) - else: - return TRLinkAssetData( - network = 'ETH', - ) - """ - - def testTRLinkAssetData(self): - """Test TRLinkAssetData""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXNzZXRfZGF0YSBpbXBvcnQgVFJMaW5rQXNzZXREYXRhCgoKY2xhc3MgVGVzdFRSTGlua0Fzc2V0RGF0YSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUUkxpbmtBc3NldERhdGEgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRSTGlua0Fzc2V0RGF0YToKICAgICAgICAiIiJUZXN0IFRSTGlua0Fzc2V0RGF0YQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUUkxpbmtBc3NldERhdGFgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtBc3NldERhdGEoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtBc3NldERhdGEoCiAgICAgICAgICAgICAgICB0aWNrZXIgPSAnVVNEVCcsCiAgICAgICAgICAgICAgICBuZXR3b3JrID0gJ0VUSCcsCiAgICAgICAgICAgICAgICB1Y2lkID0gODI1LAogICAgICAgICAgICAgICAgY29udHJhY3RfYWRkcmVzcyA9ICcweGRhYzE3Zjk1OGQyZWU1MjNhMjIwNjIwNjk5NDU5N2MxM2Q4MzFlYzcnLAogICAgICAgICAgICAgICAgaWQgPSAnVVNEVF9FUkMyMCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtBc3NldERhdGEoCiAgICAgICAgICAgICAgICBuZXR3b3JrID0gJ0VUSCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VFJMaW5rQXNzZXREYXRhKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rQXNzZXREYXRhIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tr_link_asset_format.py b/test/test_tr_link_asset_format.py index 850045aa..19ba28c3 100644 --- a/test/test_tr_link_asset_format.py +++ b/test/test_tr_link_asset_format.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_asset_format import TRLinkAssetFormat - - -class TestTRLinkAssetFormat(unittest.TestCase): - """TRLinkAssetFormat unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTRLinkAssetFormat(self): - """Test TRLinkAssetFormat""" - # inst = TRLinkAssetFormat() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXNzZXRfZm9ybWF0IGltcG9ydCBUUkxpbmtBc3NldEZvcm1hdAoKCmNsYXNzIFRlc3RUUkxpbmtBc3NldEZvcm1hdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUUkxpbmtBc3NldEZvcm1hdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RUUkxpbmtBc3NldEZvcm1hdChzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua0Fzc2V0Rm9ybWF0IiIiCiAgICAgICAgIyBpbnN0ID0gVFJMaW5rQXNzZXRGb3JtYXQoKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tr_link_assets_list_paged_response.py b/test/test_tr_link_assets_list_paged_response.py index 305fbf60..271c8348 100644 --- a/test/test_tr_link_assets_list_paged_response.py +++ b/test/test_tr_link_assets_list_paged_response.py @@ -1,81 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_assets_list_paged_response import ( - TRLinkAssetsListPagedResponse, -) - - -class TestTRLinkAssetsListPagedResponse(unittest.TestCase): - """TRLinkAssetsListPagedResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkAssetsListPagedResponse: - """Test TRLinkAssetsListPagedResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkAssetsListPagedResponse` - """ - model = TRLinkAssetsListPagedResponse() - if include_optional: - return TRLinkAssetsListPagedResponse( - data = [ - fireblocks.models.tr_link_public_asset_info.TRLinkPublicAssetInfo( - id = 'USDC_ETH', - name = 'USD Coin', - type = 'ERC20', - contract_address = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', - native_asset = 'ETH', - decimals = 6, - issuer_address = '0x1234567890abcdef1234567890abcdef12345678', ) - ], - paging = fireblocks.models.tr_link_paging.TRLinkPaging( - next = 'eyJwYWdlIjoyLCJsaW1pdCI6MTAwfQ==', ), - partner_can_handle_any_asset = True, - note = 'Partner can handle assets beyond those explicitly listed' - ) - else: - return TRLinkAssetsListPagedResponse( - data = [ - fireblocks.models.tr_link_public_asset_info.TRLinkPublicAssetInfo( - id = 'USDC_ETH', - name = 'USD Coin', - type = 'ERC20', - contract_address = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', - native_asset = 'ETH', - decimals = 6, - issuer_address = '0x1234567890abcdef1234567890abcdef12345678', ) - ], - partner_can_handle_any_asset = True, - note = 'Partner can handle assets beyond those explicitly listed', - ) - """ - - def testTRLinkAssetsListPagedResponse(self): - """Test TRLinkAssetsListPagedResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXNzZXRzX2xpc3RfcGFnZWRfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFRSTGlua0Fzc2V0c0xpc3RQYWdlZFJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdFRSTGlua0Fzc2V0c0xpc3RQYWdlZFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua0Fzc2V0c0xpc3RQYWdlZFJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUUkxpbmtBc3NldHNMaXN0UGFnZWRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFRSTGlua0Fzc2V0c0xpc3RQYWdlZFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRSTGlua0Fzc2V0c0xpc3RQYWdlZFJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVFJMaW5rQXNzZXRzTGlzdFBhZ2VkUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtBc3NldHNMaXN0UGFnZWRSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wdWJsaWNfYXNzZXRfaW5mby5UUkxpbmtQdWJsaWNBc3NldEluZm8oCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJ1VTRENfRVRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnVVNEIENvaW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdFUkMyMCcsIAogICAgICAgICAgICAgICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzID0gJzB4QTBiODY5OTFjNjIxOGIzNmMxZDE5RDRhMmU5RWIwY0UzNjA2ZUI0OCcsIAogICAgICAgICAgICAgICAgICAgICAgICBuYXRpdmVfYXNzZXQgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxzID0gNiwgCiAgICAgICAgICAgICAgICAgICAgICAgIGlzc3Vlcl9hZGRyZXNzID0gJzB4MTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3OCcsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgcGFnaW5nID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wYWdpbmcuVFJMaW5rUGFnaW5nKAogICAgICAgICAgICAgICAgICAgIG5leHQgPSAnZXlKd1lXZGxJam95TENKc2FXMXBkQ0k2TVRBd2ZRPT0nLCApLAogICAgICAgICAgICAgICAgcGFydG5lcl9jYW5faGFuZGxlX2FueV9hc3NldCA9IFRydWUsCiAgICAgICAgICAgICAgICBub3RlID0gJ1BhcnRuZXIgY2FuIGhhbmRsZSBhc3NldHMgYmV5b25kIHRob3NlIGV4cGxpY2l0bHkgbGlzdGVkJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRSTGlua0Fzc2V0c0xpc3RQYWdlZFJlc3BvbnNlKAogICAgICAgICAgICAgICAgZGF0YSA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3B1YmxpY19hc3NldF9pbmZvLlRSTGlua1B1YmxpY0Fzc2V0SW5mbygKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnVVNEQ19FVEgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdVU0QgQ29pbicsIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ0VSQzIwJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyYWN0X2FkZHJlc3MgPSAnMHhBMGI4Njk5MWM2MjE4YjM2YzFkMTlENGEyZTlFYjBjRTM2MDZlQjQ4JywgCiAgICAgICAgICAgICAgICAgICAgICAgIG5hdGl2ZV9hc3NldCA9ICdFVEgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbHMgPSA2LCAKICAgICAgICAgICAgICAgICAgICAgICAgaXNzdWVyX2FkZHJlc3MgPSAnMHgxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4JywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBwYXJ0bmVyX2Nhbl9oYW5kbGVfYW55X2Fzc2V0ID0gVHJ1ZSwKICAgICAgICAgICAgICAgIG5vdGUgPSAnUGFydG5lciBjYW4gaGFuZGxlIGFzc2V0cyBiZXlvbmQgdGhvc2UgZXhwbGljaXRseSBsaXN0ZWQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua0Fzc2V0c0xpc3RQYWdlZFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rQXNzZXRzTGlzdFBhZ2VkUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_cancel_trm_request.py b/test/test_tr_link_cancel_trm_request.py index 5477e2b9..17bfffca 100644 --- a/test/test_tr_link_cancel_trm_request.py +++ b/test/test_tr_link_cancel_trm_request.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_cancel_trm_request import TRLinkCancelTrmRequest - - -class TestTRLinkCancelTrmRequest(unittest.TestCase): - """TRLinkCancelTrmRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkCancelTrmRequest: - """Test TRLinkCancelTrmRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkCancelTrmRequest` - """ - model = TRLinkCancelTrmRequest() - if include_optional: - return TRLinkCancelTrmRequest( - reason = 'Transaction no longer needed', - cancelled_by = 'user_123456' - ) - else: - return TRLinkCancelTrmRequest( - ) - """ - - def testTRLinkCancelTrmRequest(self): - """Test TRLinkCancelTrmRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY2FuY2VsX3RybV9yZXF1ZXN0IGltcG9ydCBUUkxpbmtDYW5jZWxUcm1SZXF1ZXN0CgoKY2xhc3MgVGVzdFRSTGlua0NhbmNlbFRybVJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rQ2FuY2VsVHJtUmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVFJMaW5rQ2FuY2VsVHJtUmVxdWVzdDoKICAgICAgICAiIiJUZXN0IFRSTGlua0NhbmNlbFRybVJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rQ2FuY2VsVHJtUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRSTGlua0NhbmNlbFRybVJlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtDYW5jZWxUcm1SZXF1ZXN0KAogICAgICAgICAgICAgICAgcmVhc29uID0gJ1RyYW5zYWN0aW9uIG5vIGxvbmdlciBuZWVkZWQnLAogICAgICAgICAgICAgICAgY2FuY2VsbGVkX2J5ID0gJ3VzZXJfMTIzNDU2JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRSTGlua0NhbmNlbFRybVJlcXVlc3QoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VFJMaW5rQ2FuY2VsVHJtUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua0NhbmNlbFRybVJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_connect_integration_request.py b/test/test_tr_link_connect_integration_request.py index 421caa6f..dfb9bdb3 100644 --- a/test/test_tr_link_connect_integration_request.py +++ b/test/test_tr_link_connect_integration_request.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_connect_integration_request import ( - TRLinkConnectIntegrationRequest, -) - - -class TestTRLinkConnectIntegrationRequest(unittest.TestCase): - """TRLinkConnectIntegrationRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkConnectIntegrationRequest: - """Test TRLinkConnectIntegrationRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkConnectIntegrationRequest` - """ - model = TRLinkConnectIntegrationRequest() - if include_optional: - return TRLinkConnectIntegrationRequest( - api_key = 'fb_api_key_12345', - secret = 'secret_value_67890' - ) - else: - return TRLinkConnectIntegrationRequest( - api_key = 'fb_api_key_12345', - ) - """ - - def testTRLinkConnectIntegrationRequest(self): - """Test TRLinkConnectIntegrationRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY29ubmVjdF9pbnRlZ3JhdGlvbl9yZXF1ZXN0IGltcG9ydCAoCiAgICBUUkxpbmtDb25uZWN0SW50ZWdyYXRpb25SZXF1ZXN0LAopCgoKY2xhc3MgVGVzdFRSTGlua0Nvbm5lY3RJbnRlZ3JhdGlvblJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rQ29ubmVjdEludGVncmF0aW9uUmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVFJMaW5rQ29ubmVjdEludGVncmF0aW9uUmVxdWVzdDoKICAgICAgICAiIiJUZXN0IFRSTGlua0Nvbm5lY3RJbnRlZ3JhdGlvblJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rQ29ubmVjdEludGVncmF0aW9uUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRSTGlua0Nvbm5lY3RJbnRlZ3JhdGlvblJlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtDb25uZWN0SW50ZWdyYXRpb25SZXF1ZXN0KAogICAgICAgICAgICAgICAgYXBpX2tleSA9ICdmYl9hcGlfa2V5XzEyMzQ1JywKICAgICAgICAgICAgICAgIHNlY3JldCA9ICdzZWNyZXRfdmFsdWVfNjc4OTAnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rQ29ubmVjdEludGVncmF0aW9uUmVxdWVzdCgKICAgICAgICAgICAgICAgIGFwaV9rZXkgPSAnZmJfYXBpX2tleV8xMjM0NScsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VFJMaW5rQ29ubmVjdEludGVncmF0aW9uUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua0Nvbm5lY3RJbnRlZ3JhdGlvblJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_create_customer_request.py b/test/test_tr_link_create_customer_request.py index 3b310cf4..2540b01d 100644 --- a/test/test_tr_link_create_customer_request.py +++ b/test/test_tr_link_create_customer_request.py @@ -1,75 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_create_customer_request import ( - TRLinkCreateCustomerRequest, -) - - -class TestTRLinkCreateCustomerRequest(unittest.TestCase): - """TRLinkCreateCustomerRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkCreateCustomerRequest: - """Test TRLinkCreateCustomerRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkCreateCustomerRequest` - """ - model = TRLinkCreateCustomerRequest() - if include_optional: - return TRLinkCreateCustomerRequest( - discoverable = 'discoverable', - short_name = 'Acme Corp', - full_legal_name = 'Acme Corporation Ltd.', - geographic_address = fireblocks.models.tr_link_geographic_address_request.TRLinkGeographicAddressRequest( - address_line = ["Suite 100"], - street_name = 'Main Street', - building_number = '123', - floor = '5', - post_box = 'PO Box 456', - post_code = '10001', - town_name = 'New York', - district_name = 'Manhattan', - country_sub_division = 'NY', - country = 'US', ), - country_of_registration = 'US', - national_identification = '{"nationalIdentifierType":"LEIXG","nationalIdentifier":"5493001KJTIIGC8Y1R12","countryOfIssue":"US"}', - date_of_incorporation = 'Sun Mar 15 00:00:00 GMT 2015', - vaults = [0,1,2], - tr_primary_purpose = 'Virtual asset service provider' - ) - else: - return TRLinkCreateCustomerRequest( - short_name = 'Acme Corp', - ) - """ - - def testTRLinkCreateCustomerRequest(self): - """Test TRLinkCreateCustomerRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY3JlYXRlX2N1c3RvbWVyX3JlcXVlc3QgaW1wb3J0ICgKICAgIFRSTGlua0NyZWF0ZUN1c3RvbWVyUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RUUkxpbmtDcmVhdGVDdXN0b21lclJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rQ3JlYXRlQ3VzdG9tZXJSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUUkxpbmtDcmVhdGVDdXN0b21lclJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtDcmVhdGVDdXN0b21lclJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rQ3JlYXRlQ3VzdG9tZXJSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVFJMaW5rQ3JlYXRlQ3VzdG9tZXJSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rQ3JlYXRlQ3VzdG9tZXJSZXF1ZXN0KAogICAgICAgICAgICAgICAgZGlzY292ZXJhYmxlID0gJ2Rpc2NvdmVyYWJsZScsCiAgICAgICAgICAgICAgICBzaG9ydF9uYW1lID0gJ0FjbWUgQ29ycCcsCiAgICAgICAgICAgICAgICBmdWxsX2xlZ2FsX25hbWUgPSAnQWNtZSBDb3Jwb3JhdGlvbiBMdGQuJywKICAgICAgICAgICAgICAgIGdlb2dyYXBoaWNfYWRkcmVzcyA9IGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfZ2VvZ3JhcGhpY19hZGRyZXNzX3JlcXVlc3QuVFJMaW5rR2VvZ3JhcGhpY0FkZHJlc3NSZXF1ZXN0KAogICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfbGluZSA9IFsiU3VpdGUgMTAwIl0sIAogICAgICAgICAgICAgICAgICAgIHN0cmVldF9uYW1lID0gJ01haW4gU3RyZWV0JywgCiAgICAgICAgICAgICAgICAgICAgYnVpbGRpbmdfbnVtYmVyID0gJzEyMycsIAogICAgICAgICAgICAgICAgICAgIGZsb29yID0gJzUnLCAKICAgICAgICAgICAgICAgICAgICBwb3N0X2JveCA9ICdQTyBCb3ggNDU2JywgCiAgICAgICAgICAgICAgICAgICAgcG9zdF9jb2RlID0gJzEwMDAxJywgCiAgICAgICAgICAgICAgICAgICAgdG93bl9uYW1lID0gJ05ldyBZb3JrJywgCiAgICAgICAgICAgICAgICAgICAgZGlzdHJpY3RfbmFtZSA9ICdNYW5oYXR0YW4nLCAKICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X3N1Yl9kaXZpc2lvbiA9ICdOWScsIAogICAgICAgICAgICAgICAgICAgIGNvdW50cnkgPSAnVVMnLCApLAogICAgICAgICAgICAgICAgY291bnRyeV9vZl9yZWdpc3RyYXRpb24gPSAnVVMnLAogICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmljYXRpb24gPSAneyJuYXRpb25hbElkZW50aWZpZXJUeXBlIjoiTEVJWEciLCJuYXRpb25hbElkZW50aWZpZXIiOiI1NDkzMDAxS0pUSUlHQzhZMVIxMiIsImNvdW50cnlPZklzc3VlIjoiVVMifScsCiAgICAgICAgICAgICAgICBkYXRlX29mX2luY29ycG9yYXRpb24gPSAnU3VuIE1hciAxNSAwMDowMDowMCBHTVQgMjAxNScsCiAgICAgICAgICAgICAgICB2YXVsdHMgPSBbMCwxLDJdLAogICAgICAgICAgICAgICAgdHJfcHJpbWFyeV9wdXJwb3NlID0gJ1ZpcnR1YWwgYXNzZXQgc2VydmljZSBwcm92aWRlcicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtDcmVhdGVDdXN0b21lclJlcXVlc3QoCiAgICAgICAgICAgICAgICBzaG9ydF9uYW1lID0gJ0FjbWUgQ29ycCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VFJMaW5rQ3JlYXRlQ3VzdG9tZXJSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rQ3JlYXRlQ3VzdG9tZXJSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tr_link_create_integration_request.py b/test/test_tr_link_create_integration_request.py index f30f8195..4215f933 100644 --- a/test/test_tr_link_create_integration_request.py +++ b/test/test_tr_link_create_integration_request.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_create_integration_request import ( - TRLinkCreateIntegrationRequest, -) - - -class TestTRLinkCreateIntegrationRequest(unittest.TestCase): - """TRLinkCreateIntegrationRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkCreateIntegrationRequest: - """Test TRLinkCreateIntegrationRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkCreateIntegrationRequest` - """ - model = TRLinkCreateIntegrationRequest() - if include_optional: - return TRLinkCreateIntegrationRequest( - customer_id = '550e8400-e29b-41d4-a716-446655440001', - partner_ident = 'sumsub' - ) - else: - return TRLinkCreateIntegrationRequest( - customer_id = '550e8400-e29b-41d4-a716-446655440001', - partner_ident = 'sumsub', - ) - """ - - def testTRLinkCreateIntegrationRequest(self): - """Test TRLinkCreateIntegrationRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY3JlYXRlX2ludGVncmF0aW9uX3JlcXVlc3QgaW1wb3J0ICgKICAgIFRSTGlua0NyZWF0ZUludGVncmF0aW9uUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RUUkxpbmtDcmVhdGVJbnRlZ3JhdGlvblJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rQ3JlYXRlSW50ZWdyYXRpb25SZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUUkxpbmtDcmVhdGVJbnRlZ3JhdGlvblJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtDcmVhdGVJbnRlZ3JhdGlvblJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rQ3JlYXRlSW50ZWdyYXRpb25SZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVFJMaW5rQ3JlYXRlSW50ZWdyYXRpb25SZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rQ3JlYXRlSW50ZWdyYXRpb25SZXF1ZXN0KAogICAgICAgICAgICAgICAgY3VzdG9tZXJfaWQgPSAnNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAxJywKICAgICAgICAgICAgICAgIHBhcnRuZXJfaWRlbnQgPSAnc3Vtc3ViJywKICAgICAgICAgICAgICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkID0gJzY2MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDA5OScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtDcmVhdGVJbnRlZ3JhdGlvblJlcXVlc3QoCiAgICAgICAgICAgICAgICBjdXN0b21lcl9pZCA9ICc1NTBlODQwMC1lMjliLTQxZDQtYTcxNi00NDY2NTU0NDAwMDEnLAogICAgICAgICAgICAgICAgcGFydG5lcl9pZGVudCA9ICdzdW1zdWInLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua0NyZWF0ZUludGVncmF0aW9uUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua0NyZWF0ZUludGVncmF0aW9uUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_create_trm_request.py b/test/test_tr_link_create_trm_request.py index 49a348dd..9d371124 100644 --- a/test/test_tr_link_create_trm_request.py +++ b/test/test_tr_link_create_trm_request.py @@ -1,83 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_create_trm_request import TRLinkCreateTrmRequest - - -class TestTRLinkCreateTrmRequest(unittest.TestCase): - """TRLinkCreateTrmRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkCreateTrmRequest: - """Test TRLinkCreateTrmRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkCreateTrmRequest` - """ - model = TRLinkCreateTrmRequest() - if include_optional: - return TRLinkCreateTrmRequest( - asset_id = 'USDT_ERC20', - amount = '1000', - amount_usd = '1000.50', - source = fireblocks.models.tr_link_source_transfer_peer_path.TRLinkSourceTransferPeerPath( - type = 'VAULT_ACCOUNT', - id = '12', - wallet_id = '0', ), - src_address = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb', - destination = fireblocks.models.tr_link_destination_transfer_peer_path.TRLinkDestinationTransferPeerPath( - type = 'ONE_TIME_ADDRESS', - id = '45', - wallet_id = '0', - one_time_address = fireblocks.models.tr_link_one_time_address.TRLinkOneTimeAddress( - address = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb', - tag = '1234567890', ), ), - dest_address = '0x8d12A197cB00D4747a1fe03395095ce2A5CC6819', - dest_tag = '1234567890', - tx_id = '550e8400-e29b-41d4-a716-446655440000', - tx_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef', - direction = 'OUTBOUND', - originator_vasp_id = 'did:ethr:0x1234567890abcdef', - beneficiary_vasp_id = 'did:ethr:0xfedcba0987654321', - ivms101 = fireblocks.models.tr_link_ivms.TRLinkIvms( - version = 'IVMS101.2023', - data = 'aGVsbG8gd29ybGQgdGhpcyBpcyBlbmNyeXB0ZWQgZGF0YQ==', - filled_fields = ["Beneficiary.beneficiaryPersons[].legalPerson.name.nameIdentifier","Beneficiary.beneficiaryPersons[].naturalPerson.name.nameIdentifier"], ) - ) - else: - return TRLinkCreateTrmRequest( - ivms101 = fireblocks.models.tr_link_ivms.TRLinkIvms( - version = 'IVMS101.2023', - data = 'aGVsbG8gd29ybGQgdGhpcyBpcyBlbmNyeXB0ZWQgZGF0YQ==', - filled_fields = ["Beneficiary.beneficiaryPersons[].legalPerson.name.nameIdentifier","Beneficiary.beneficiaryPersons[].naturalPerson.name.nameIdentifier"], ), - ) - """ - - def testTRLinkCreateTrmRequest(self): - """Test TRLinkCreateTrmRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY3JlYXRlX3RybV9yZXF1ZXN0IGltcG9ydCBUUkxpbmtDcmVhdGVUcm1SZXF1ZXN0CgoKY2xhc3MgVGVzdFRSTGlua0NyZWF0ZVRybVJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rQ3JlYXRlVHJtUmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVFJMaW5rQ3JlYXRlVHJtUmVxdWVzdDoKICAgICAgICAiIiJUZXN0IFRSTGlua0NyZWF0ZVRybVJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rQ3JlYXRlVHJtUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRSTGlua0NyZWF0ZVRybVJlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtDcmVhdGVUcm1SZXF1ZXN0KAogICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnVVNEVF9FUkMyMCcsCiAgICAgICAgICAgICAgICBhbW91bnQgPSAnMTAwMCcsCiAgICAgICAgICAgICAgICBhbW91bnRfdXNkID0gJzEwMDAuNTAnLAogICAgICAgICAgICAgICAgc291cmNlID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19zb3VyY2VfdHJhbnNmZXJfcGVlcl9wYXRoLlRSTGlua1NvdXJjZVRyYW5zZmVyUGVlclBhdGgoCiAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgCiAgICAgICAgICAgICAgICAgICAgaWQgPSAnMTInLCAKICAgICAgICAgICAgICAgICAgICB3YWxsZXRfaWQgPSAnMCcsICksCiAgICAgICAgICAgICAgICBzcmNfYWRkcmVzcyA9ICcweDc0MmQzNUNjNjYzNEMwNTMyOTI1YTNiODQ0QmM5ZTc1OTVmMGJFYicsCiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfZGVzdGluYXRpb25fdHJhbnNmZXJfcGVlcl9wYXRoLlRSTGlua0Rlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aCgKICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ09ORV9USU1FX0FERFJFU1MnLCAKICAgICAgICAgICAgICAgICAgICBpZCA9ICc0NScsIAogICAgICAgICAgICAgICAgICAgIHdhbGxldF9pZCA9ICcwJywgCiAgICAgICAgICAgICAgICAgICAgb25lX3RpbWVfYWRkcmVzcyA9IGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfb25lX3RpbWVfYWRkcmVzcy5UUkxpbmtPbmVUaW1lQWRkcmVzcygKICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweDc0MmQzNUNjNjYzNEMwNTMyOTI1YTNiODQ0QmM5ZTc1OTVmMGJFYicsIAogICAgICAgICAgICAgICAgICAgICAgICB0YWcgPSAnMTIzNDU2Nzg5MCcsICksICksCiAgICAgICAgICAgICAgICBkZXN0X2FkZHJlc3MgPSAnMHg4ZDEyQTE5N2NCMDBENDc0N2ExZmUwMzM5NTA5NWNlMkE1Q0M2ODE5JywKICAgICAgICAgICAgICAgIGRlc3RfdGFnID0gJzEyMzQ1Njc4OTAnLAogICAgICAgICAgICAgICAgdHhfaWQgPSAnNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAwJywKICAgICAgICAgICAgICAgIHR4X2hhc2ggPSAnMHgxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmJywKICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdPVVRCT1VORCcsCiAgICAgICAgICAgICAgICBvcmlnaW5hdG9yX3Zhc3BfaWQgPSAnZGlkOmV0aHI6MHgxMjM0NTY3ODkwYWJjZGVmJywKICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5X3Zhc3BfaWQgPSAnZGlkOmV0aHI6MHhmZWRjYmEwOTg3NjU0MzIxJywKICAgICAgICAgICAgICAgIGl2bXMxMDEgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2l2bXMuVFJMaW5rSXZtcygKICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uID0gJ0lWTVMxMDEuMjAyMycsIAogICAgICAgICAgICAgICAgICAgIGRhdGEgPSAnYUdWc2JHOGdkMjl5YkdRZ2RHaHBjeUJwY3lCbGJtTnllWEIwWldRZ1pHRjBZUT09JywgCiAgICAgICAgICAgICAgICAgICAgZmlsbGVkX2ZpZWxkcyA9IFsiQmVuZWZpY2lhcnkuYmVuZWZpY2lhcnlQZXJzb25zW10ubGVnYWxQZXJzb24ubmFtZS5uYW1lSWRlbnRpZmllciIsIkJlbmVmaWNpYXJ5LmJlbmVmaWNpYXJ5UGVyc29uc1tdLm5hdHVyYWxQZXJzb24ubmFtZS5uYW1lSWRlbnRpZmllciJdLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rQ3JlYXRlVHJtUmVxdWVzdCgKICAgICAgICAgICAgICAgIGl2bXMxMDEgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2l2bXMuVFJMaW5rSXZtcygKICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uID0gJ0lWTVMxMDEuMjAyMycsIAogICAgICAgICAgICAgICAgICAgIGRhdGEgPSAnYUdWc2JHOGdkMjl5YkdRZ2RHaHBjeUJwY3lCbGJtTnllWEIwWldRZ1pHRjBZUT09JywgCiAgICAgICAgICAgICAgICAgICAgZmlsbGVkX2ZpZWxkcyA9IFsiQmVuZWZpY2lhcnkuYmVuZWZpY2lhcnlQZXJzb25zW10ubGVnYWxQZXJzb24ubmFtZS5uYW1lSWRlbnRpZmllciIsIkJlbmVmaWNpYXJ5LmJlbmVmaWNpYXJ5UGVyc29uc1tdLm5hdHVyYWxQZXJzb24ubmFtZS5uYW1lSWRlbnRpZmllciJdLCApLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua0NyZWF0ZVRybVJlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtDcmVhdGVUcm1SZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tr_link_currency.py b/test/test_tr_link_currency.py index 38ed7d40..4c47b8ce 100644 --- a/test/test_tr_link_currency.py +++ b/test/test_tr_link_currency.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_currency import TRLinkCurrency - - -class TestTRLinkCurrency(unittest.TestCase): - """TRLinkCurrency unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTRLinkCurrency(self): - """Test TRLinkCurrency""" - # inst = TRLinkCurrency() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY3VycmVuY3kgaW1wb3J0IFRSTGlua0N1cnJlbmN5CgoKY2xhc3MgVGVzdFRSTGlua0N1cnJlbmN5KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua0N1cnJlbmN5IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdFRSTGlua0N1cnJlbmN5KHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rQ3VycmVuY3kiIiIKICAgICAgICAjIGluc3QgPSBUUkxpbmtDdXJyZW5jeSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_customer_integration_response.py b/test/test_tr_link_customer_integration_response.py index 4b29e7bb..6d3b3176 100644 --- a/test/test_tr_link_customer_integration_response.py +++ b/test/test_tr_link_customer_integration_response.py @@ -1,127 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_customer_integration_response import ( - TRLinkCustomerIntegrationResponse, -) - - -class TestTRLinkCustomerIntegrationResponse(unittest.TestCase): - """TRLinkCustomerIntegrationResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkCustomerIntegrationResponse: - """Test TRLinkCustomerIntegrationResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkCustomerIntegrationResponse` - """ - model = TRLinkCustomerIntegrationResponse() - if include_optional: - return TRLinkCustomerIntegrationResponse( - customer_integration_id = '123e4567-e89b-12d3-a456-426614174000', - api_key = 'fb_***************', - secret = '***', - create_date = '2025-01-20T10:30Z', - last_update = '2025-01-24T08:45Z', - partner = fireblocks.models.tr_link_partner_response.TRLinkPartnerResponse( - id = '123e4567-e89b-12d3-a456-426614174000', - ident = 'notabene', - name = 'Notabene', - description = 'Travel Rule compliance provider', - base_url = 'https://api.notabene.id', - active = True, - is_test = False, ), - customer = fireblocks.models.tr_link_customer_response.TRLinkCustomerResponse( - id = '550e8400-e29b-41d4-a716-446655440001', - tenant_id = '550e8400-e29b-41d4-a716-446655440003', - discoverable = 'discoverable', - short_name = 'Acme Corp', - full_legal_name = 'Acme Corporation Ltd.', - geographic_address = fireblocks.models.tr_link_geographic_address_request.TRLinkGeographicAddressRequest( - address_line = ["Suite 100"], - street_name = 'Main Street', - building_number = '123', - floor = '5', - post_box = 'PO Box 456', - post_code = '10001', - town_name = 'New York', - district_name = 'Manhattan', - country_sub_division = 'NY', - country = 'US', ), - country_of_registration = 'US', - national_identification = '{"nationalIdentifierType":"LEIXG","nationalIdentifier":"5493001KJTIIGC8Y1R12","countryOfIssue":"US"}', - date_of_incorporation = 'Sun Mar 15 00:00:00 GMT 2015', - vaults = [0,1,2], - tr_primary_purpose = 'Virtual asset service provider', - create_date = '2025-01-20T10:30Z', - last_update = '2025-01-24T08:45Z', ) - ) - else: - return TRLinkCustomerIntegrationResponse( - customer_integration_id = '123e4567-e89b-12d3-a456-426614174000', - create_date = '2025-01-20T10:30Z', - last_update = '2025-01-24T08:45Z', - partner = fireblocks.models.tr_link_partner_response.TRLinkPartnerResponse( - id = '123e4567-e89b-12d3-a456-426614174000', - ident = 'notabene', - name = 'Notabene', - description = 'Travel Rule compliance provider', - base_url = 'https://api.notabene.id', - active = True, - is_test = False, ), - customer = fireblocks.models.tr_link_customer_response.TRLinkCustomerResponse( - id = '550e8400-e29b-41d4-a716-446655440001', - tenant_id = '550e8400-e29b-41d4-a716-446655440003', - discoverable = 'discoverable', - short_name = 'Acme Corp', - full_legal_name = 'Acme Corporation Ltd.', - geographic_address = fireblocks.models.tr_link_geographic_address_request.TRLinkGeographicAddressRequest( - address_line = ["Suite 100"], - street_name = 'Main Street', - building_number = '123', - floor = '5', - post_box = 'PO Box 456', - post_code = '10001', - town_name = 'New York', - district_name = 'Manhattan', - country_sub_division = 'NY', - country = 'US', ), - country_of_registration = 'US', - national_identification = '{"nationalIdentifierType":"LEIXG","nationalIdentifier":"5493001KJTIIGC8Y1R12","countryOfIssue":"US"}', - date_of_incorporation = 'Sun Mar 15 00:00:00 GMT 2015', - vaults = [0,1,2], - tr_primary_purpose = 'Virtual asset service provider', - create_date = '2025-01-20T10:30Z', - last_update = '2025-01-24T08:45Z', ), - ) - """ - - def testTRLinkCustomerIntegrationResponse(self): - """Test TRLinkCustomerIntegrationResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY3VzdG9tZXJfaW50ZWdyYXRpb25fcmVzcG9uc2UgaW1wb3J0ICgKICAgIFRSTGlua0N1c3RvbWVySW50ZWdyYXRpb25SZXNwb25zZSwKKQoKCmNsYXNzIFRlc3RUUkxpbmtDdXN0b21lckludGVncmF0aW9uUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rQ3VzdG9tZXJJbnRlZ3JhdGlvblJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUUkxpbmtDdXN0b21lckludGVncmF0aW9uUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtDdXN0b21lckludGVncmF0aW9uUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rQ3VzdG9tZXJJbnRlZ3JhdGlvblJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVFJMaW5rQ3VzdG9tZXJJbnRlZ3JhdGlvblJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rQ3VzdG9tZXJJbnRlZ3JhdGlvblJlc3BvbnNlKAogICAgICAgICAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQgPSAnMTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDAwJywKICAgICAgICAgICAgICAgIGFwaV9rZXkgPSAnZmJfKioqKioqKioqKioqKioqJywKICAgICAgICAgICAgICAgIHNlY3JldCA9ICcqKionLAogICAgICAgICAgICAgICAgY3JlYXRlX2RhdGUgPSAnMjAyNS0wMS0yMFQxMDozMFonLAogICAgICAgICAgICAgICAgbGFzdF91cGRhdGUgPSAnMjAyNS0wMS0yNFQwODo0NVonLAogICAgICAgICAgICAgICAgcGFydG5lciA9IGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcGFydG5lcl9yZXNwb25zZS5UUkxpbmtQYXJ0bmVyUmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgaWQgPSAnMTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDAwJywgCiAgICAgICAgICAgICAgICAgICAgaWRlbnQgPSAnbm90YWJlbmUnLCAKICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ05vdGFiZW5lJywgCiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVHJhdmVsIFJ1bGUgY29tcGxpYW5jZSBwcm92aWRlcicsIAogICAgICAgICAgICAgICAgICAgIGJhc2VfdXJsID0gJ2h0dHBzOi8vYXBpLm5vdGFiZW5lLmlkJywgCiAgICAgICAgICAgICAgICAgICAgYWN0aXZlID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgaXNfdGVzdCA9IEZhbHNlLCApLAogICAgICAgICAgICAgICAgY3VzdG9tZXIgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2N1c3RvbWVyX3Jlc3BvbnNlLlRSTGlua0N1c3RvbWVyUmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgaWQgPSAnNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAxJywgCiAgICAgICAgICAgICAgICAgICAgdGVuYW50X2lkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMycsIAogICAgICAgICAgICAgICAgICAgIGRpc2NvdmVyYWJsZSA9ICdkaXNjb3ZlcmFibGUnLCAKICAgICAgICAgICAgICAgICAgICBzaG9ydF9uYW1lID0gJ0FjbWUgQ29ycCcsIAogICAgICAgICAgICAgICAgICAgIGZ1bGxfbGVnYWxfbmFtZSA9ICdBY21lIENvcnBvcmF0aW9uIEx0ZC4nLCAKICAgICAgICAgICAgICAgICAgICBnZW9ncmFwaGljX2FkZHJlc3MgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2dlb2dyYXBoaWNfYWRkcmVzc19yZXF1ZXN0LlRSTGlua0dlb2dyYXBoaWNBZGRyZXNzUmVxdWVzdCgKICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19saW5lID0gWyJTdWl0ZSAxMDAiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVldF9uYW1lID0gJ01haW4gU3RyZWV0JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nX251bWJlciA9ICcxMjMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZmxvb3IgPSAnNScsIAogICAgICAgICAgICAgICAgICAgICAgICBwb3N0X2JveCA9ICdQTyBCb3ggNDU2JywgCiAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfY29kZSA9ICcxMDAwMScsIAogICAgICAgICAgICAgICAgICAgICAgICB0b3duX25hbWUgPSAnTmV3IFlvcmsnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGlzdHJpY3RfbmFtZSA9ICdNYW5oYXR0YW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9zdWJfZGl2aXNpb24gPSAnTlknLCAKICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeSA9ICdVUycsICksIAogICAgICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfcmVnaXN0cmF0aW9uID0gJ1VTJywgCiAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmljYXRpb24gPSAneyJuYXRpb25hbElkZW50aWZpZXJUeXBlIjoiTEVJWEciLCJuYXRpb25hbElkZW50aWZpZXIiOiI1NDkzMDAxS0pUSUlHQzhZMVIxMiIsImNvdW50cnlPZklzc3VlIjoiVVMifScsIAogICAgICAgICAgICAgICAgICAgIGRhdGVfb2ZfaW5jb3Jwb3JhdGlvbiA9ICdTdW4gTWFyIDE1IDAwOjAwOjAwIEdNVCAyMDE1JywgCiAgICAgICAgICAgICAgICAgICAgdmF1bHRzID0gWzAsMSwyXSwgCiAgICAgICAgICAgICAgICAgICAgdHJfcHJpbWFyeV9wdXJwb3NlID0gJ1ZpcnR1YWwgYXNzZXQgc2VydmljZSBwcm92aWRlcicsIAogICAgICAgICAgICAgICAgICAgIGNyZWF0ZV9kYXRlID0gJzIwMjUtMDEtMjBUMTA6MzBaJywgCiAgICAgICAgICAgICAgICAgICAgbGFzdF91cGRhdGUgPSAnMjAyNS0wMS0yNFQwODo0NVonLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rQ3VzdG9tZXJJbnRlZ3JhdGlvblJlc3BvbnNlKAogICAgICAgICAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQgPSAnMTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDAwJywKICAgICAgICAgICAgICAgIGNyZWF0ZV9kYXRlID0gJzIwMjUtMDEtMjBUMTA6MzBaJywKICAgICAgICAgICAgICAgIGxhc3RfdXBkYXRlID0gJzIwMjUtMDEtMjRUMDg6NDVaJywKICAgICAgICAgICAgICAgIHBhcnRuZXIgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3BhcnRuZXJfcmVzcG9uc2UuVFJMaW5rUGFydG5lclJlc3BvbnNlKAogICAgICAgICAgICAgICAgICAgIGlkID0gJzEyM2U0NTY3LWU4OWItMTJkMy1hNDU2LTQyNjYxNDE3NDAwMCcsIAogICAgICAgICAgICAgICAgICAgIGlkZW50ID0gJ25vdGFiZW5lJywgCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdOb3RhYmVuZScsIAogICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1RyYXZlbCBSdWxlIGNvbXBsaWFuY2UgcHJvdmlkZXInLCAKICAgICAgICAgICAgICAgICAgICBiYXNlX3VybCA9ICdodHRwczovL2FwaS5ub3RhYmVuZS5pZCcsIAogICAgICAgICAgICAgICAgICAgIGFjdGl2ZSA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgIGlzX3Rlc3QgPSBGYWxzZSwgKSwKICAgICAgICAgICAgICAgIGN1c3RvbWVyID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19jdXN0b21lcl9yZXNwb25zZS5UUkxpbmtDdXN0b21lclJlc3BvbnNlKAogICAgICAgICAgICAgICAgICAgIGlkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMScsIAogICAgICAgICAgICAgICAgICAgIHRlbmFudF9pZCA9ICc1NTBlODQwMC1lMjliLTQxZDQtYTcxNi00NDY2NTU0NDAwMDMnLCAKICAgICAgICAgICAgICAgICAgICBkaXNjb3ZlcmFibGUgPSAnZGlzY292ZXJhYmxlJywgCiAgICAgICAgICAgICAgICAgICAgc2hvcnRfbmFtZSA9ICdBY21lIENvcnAnLCAKICAgICAgICAgICAgICAgICAgICBmdWxsX2xlZ2FsX25hbWUgPSAnQWNtZSBDb3Jwb3JhdGlvbiBMdGQuJywgCiAgICAgICAgICAgICAgICAgICAgZ2VvZ3JhcGhpY19hZGRyZXNzID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19nZW9ncmFwaGljX2FkZHJlc3NfcmVxdWVzdC5UUkxpbmtHZW9ncmFwaGljQWRkcmVzc1JlcXVlc3QoCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfbGluZSA9IFsiU3VpdGUgMTAwIl0sIAogICAgICAgICAgICAgICAgICAgICAgICBzdHJlZXRfbmFtZSA9ICdNYWluIFN0cmVldCcsIAogICAgICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19udW1iZXIgPSAnMTIzJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGZsb29yID0gJzUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcG9zdF9ib3ggPSAnUE8gQm94IDQ1NicsIAogICAgICAgICAgICAgICAgICAgICAgICBwb3N0X2NvZGUgPSAnMTAwMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdG93bl9uYW1lID0gJ05ldyBZb3JrJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RyaWN0X25hbWUgPSAnTWFuaGF0dGFuJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfc3ViX2RpdmlzaW9uID0gJ05ZJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnkgPSAnVVMnLCApLCAKICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX3JlZ2lzdHJhdGlvbiA9ICdVUycsIAogICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpY2F0aW9uID0gJ3sibmF0aW9uYWxJZGVudGlmaWVyVHlwZSI6IkxFSVhHIiwibmF0aW9uYWxJZGVudGlmaWVyIjoiNTQ5MzAwMUtKVElJR0M4WTFSMTIiLCJjb3VudHJ5T2ZJc3N1ZSI6IlVTIn0nLCAKICAgICAgICAgICAgICAgICAgICBkYXRlX29mX2luY29ycG9yYXRpb24gPSAnU3VuIE1hciAxNSAwMDowMDowMCBHTVQgMjAxNScsIAogICAgICAgICAgICAgICAgICAgIHZhdWx0cyA9IFswLDEsMl0sIAogICAgICAgICAgICAgICAgICAgIHRyX3ByaW1hcnlfcHVycG9zZSA9ICdWaXJ0dWFsIGFzc2V0IHNlcnZpY2UgcHJvdmlkZXInLCAKICAgICAgICAgICAgICAgICAgICBjcmVhdGVfZGF0ZSA9ICcyMDI1LTAxLTIwVDEwOjMwWicsIAogICAgICAgICAgICAgICAgICAgIGxhc3RfdXBkYXRlID0gJzIwMjUtMDEtMjRUMDg6NDVaJywgKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtDdXN0b21lckludGVncmF0aW9uUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtDdXN0b21lckludGVncmF0aW9uUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_customer_response.py b/test/test_tr_link_customer_response.py index a2f7141f..5e6326d8 100644 --- a/test/test_tr_link_customer_response.py +++ b/test/test_tr_link_customer_response.py @@ -1,84 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_customer_response import TRLinkCustomerResponse - - -class TestTRLinkCustomerResponse(unittest.TestCase): - """TRLinkCustomerResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkCustomerResponse: - """Test TRLinkCustomerResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkCustomerResponse` - """ - model = TRLinkCustomerResponse() - if include_optional: - return TRLinkCustomerResponse( - id = '550e8400-e29b-41d4-a716-446655440001', - tenant_id = '550e8400-e29b-41d4-a716-446655440003', - discoverable = 'discoverable', - short_name = 'Acme Corp', - full_legal_name = 'Acme Corporation Ltd.', - geographic_address = fireblocks.models.tr_link_geographic_address_request.TRLinkGeographicAddressRequest( - address_line = ["Suite 100"], - street_name = 'Main Street', - building_number = '123', - floor = '5', - post_box = 'PO Box 456', - post_code = '10001', - town_name = 'New York', - district_name = 'Manhattan', - country_sub_division = 'NY', - country = 'US', ), - country_of_registration = 'US', - national_identification = '{"nationalIdentifierType":"LEIXG","nationalIdentifier":"5493001KJTIIGC8Y1R12","countryOfIssue":"US"}', - date_of_incorporation = 'Sun Mar 15 00:00:00 GMT 2015', - vaults = [0,1,2], - tr_primary_purpose = 'Virtual asset service provider', - create_date = '2025-01-20T10:30Z', - last_update = '2025-01-24T08:45Z' - ) - else: - return TRLinkCustomerResponse( - id = '550e8400-e29b-41d4-a716-446655440001', - tenant_id = '550e8400-e29b-41d4-a716-446655440003', - discoverable = 'discoverable', - short_name = 'Acme Corp', - full_legal_name = 'Acme Corporation Ltd.', - country_of_registration = 'US', - create_date = '2025-01-20T10:30Z', - last_update = '2025-01-24T08:45Z', - ) - """ - - def testTRLinkCustomerResponse(self): - """Test TRLinkCustomerResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfY3VzdG9tZXJfcmVzcG9uc2UgaW1wb3J0IFRSTGlua0N1c3RvbWVyUmVzcG9uc2UKCgpjbGFzcyBUZXN0VFJMaW5rQ3VzdG9tZXJSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUUkxpbmtDdXN0b21lclJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUUkxpbmtDdXN0b21lclJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgVFJMaW5rQ3VzdG9tZXJSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUUkxpbmtDdXN0b21lclJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVFJMaW5rQ3VzdG9tZXJSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRSTGlua0N1c3RvbWVyUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBpZCA9ICc1NTBlODQwMC1lMjliLTQxZDQtYTcxNi00NDY2NTU0NDAwMDEnLAogICAgICAgICAgICAgICAgdGVuYW50X2lkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMycsCiAgICAgICAgICAgICAgICBkaXNjb3ZlcmFibGUgPSAnZGlzY292ZXJhYmxlJywKICAgICAgICAgICAgICAgIHNob3J0X25hbWUgPSAnQWNtZSBDb3JwJywKICAgICAgICAgICAgICAgIGZ1bGxfbGVnYWxfbmFtZSA9ICdBY21lIENvcnBvcmF0aW9uIEx0ZC4nLAogICAgICAgICAgICAgICAgZ2VvZ3JhcGhpY19hZGRyZXNzID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19nZW9ncmFwaGljX2FkZHJlc3NfcmVxdWVzdC5UUkxpbmtHZW9ncmFwaGljQWRkcmVzc1JlcXVlc3QoCiAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19saW5lID0gWyJTdWl0ZSAxMDAiXSwgCiAgICAgICAgICAgICAgICAgICAgc3RyZWV0X25hbWUgPSAnTWFpbiBTdHJlZXQnLCAKICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19udW1iZXIgPSAnMTIzJywgCiAgICAgICAgICAgICAgICAgICAgZmxvb3IgPSAnNScsIAogICAgICAgICAgICAgICAgICAgIHBvc3RfYm94ID0gJ1BPIEJveCA0NTYnLCAKICAgICAgICAgICAgICAgICAgICBwb3N0X2NvZGUgPSAnMTAwMDEnLCAKICAgICAgICAgICAgICAgICAgICB0b3duX25hbWUgPSAnTmV3IFlvcmsnLCAKICAgICAgICAgICAgICAgICAgICBkaXN0cmljdF9uYW1lID0gJ01hbmhhdHRhbicsIAogICAgICAgICAgICAgICAgICAgIGNvdW50cnlfc3ViX2RpdmlzaW9uID0gJ05ZJywgCiAgICAgICAgICAgICAgICAgICAgY291bnRyeSA9ICdVUycsICksCiAgICAgICAgICAgICAgICBjb3VudHJ5X29mX3JlZ2lzdHJhdGlvbiA9ICdVUycsCiAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWNhdGlvbiA9ICd7Im5hdGlvbmFsSWRlbnRpZmllclR5cGUiOiJMRUlYRyIsIm5hdGlvbmFsSWRlbnRpZmllciI6IjU0OTMwMDFLSlRJSUdDOFkxUjEyIiwiY291bnRyeU9mSXNzdWUiOiJVUyJ9JywKICAgICAgICAgICAgICAgIGRhdGVfb2ZfaW5jb3Jwb3JhdGlvbiA9ICdTdW4gTWFyIDE1IDAwOjAwOjAwIEdNVCAyMDE1JywKICAgICAgICAgICAgICAgIHZhdWx0cyA9IFswLDEsMl0sCiAgICAgICAgICAgICAgICB0cl9wcmltYXJ5X3B1cnBvc2UgPSAnVmlydHVhbCBhc3NldCBzZXJ2aWNlIHByb3ZpZGVyJywKICAgICAgICAgICAgICAgIGNyZWF0ZV9kYXRlID0gJzIwMjUtMDEtMjBUMTA6MzBaJywKICAgICAgICAgICAgICAgIGxhc3RfdXBkYXRlID0gJzIwMjUtMDEtMjRUMDg6NDVaJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRSTGlua0N1c3RvbWVyUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBpZCA9ICc1NTBlODQwMC1lMjliLTQxZDQtYTcxNi00NDY2NTU0NDAwMDEnLAogICAgICAgICAgICAgICAgdGVuYW50X2lkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMycsCiAgICAgICAgICAgICAgICBkaXNjb3ZlcmFibGUgPSAnZGlzY292ZXJhYmxlJywKICAgICAgICAgICAgICAgIHNob3J0X25hbWUgPSAnQWNtZSBDb3JwJywKICAgICAgICAgICAgICAgIGZ1bGxfbGVnYWxfbmFtZSA9ICdBY21lIENvcnBvcmF0aW9uIEx0ZC4nLAogICAgICAgICAgICAgICAgY291bnRyeV9vZl9yZWdpc3RyYXRpb24gPSAnVVMnLAogICAgICAgICAgICAgICAgY3JlYXRlX2RhdGUgPSAnMjAyNS0wMS0yMFQxMDozMFonLAogICAgICAgICAgICAgICAgbGFzdF91cGRhdGUgPSAnMjAyNS0wMS0yNFQwODo0NVonLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua0N1c3RvbWVyUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtDdXN0b21lclJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tr_link_destination_transfer_peer_path.py b/test/test_tr_link_destination_transfer_peer_path.py index d8d19985..e10ac2d2 100644 --- a/test/test_tr_link_destination_transfer_peer_path.py +++ b/test/test_tr_link_destination_transfer_peer_path.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_destination_transfer_peer_path import ( - TRLinkDestinationTransferPeerPath, -) - - -class TestTRLinkDestinationTransferPeerPath(unittest.TestCase): - """TRLinkDestinationTransferPeerPath unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkDestinationTransferPeerPath: - """Test TRLinkDestinationTransferPeerPath - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkDestinationTransferPeerPath` - """ - model = TRLinkDestinationTransferPeerPath() - if include_optional: - return TRLinkDestinationTransferPeerPath( - type = 'ONE_TIME_ADDRESS', - id = '45', - wallet_id = '0', - one_time_address = fireblocks.models.tr_link_one_time_address.TRLinkOneTimeAddress( - address = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb', - tag = '1234567890', ) - ) - else: - return TRLinkDestinationTransferPeerPath( - type = 'ONE_TIME_ADDRESS', - ) - """ - - def testTRLinkDestinationTransferPeerPath(self): - """Test TRLinkDestinationTransferPeerPath""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfZGVzdGluYXRpb25fdHJhbnNmZXJfcGVlcl9wYXRoIGltcG9ydCAoCiAgICBUUkxpbmtEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgsCikKCgpjbGFzcyBUZXN0VFJMaW5rRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua0Rlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVFJMaW5rRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoOgogICAgICAgICIiIlRlc3QgVFJMaW5rRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRSTGlua0Rlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRSTGlua0Rlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRSTGlua0Rlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aCgKICAgICAgICAgICAgICAgIHR5cGUgPSAnT05FX1RJTUVfQUREUkVTUycsCiAgICAgICAgICAgICAgICBpZCA9ICc0NScsCiAgICAgICAgICAgICAgICB3YWxsZXRfaWQgPSAnMCcsCiAgICAgICAgICAgICAgICBvbmVfdGltZV9hZGRyZXNzID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19vbmVfdGltZV9hZGRyZXNzLlRSTGlua09uZVRpbWVBZGRyZXNzKAogICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHg3NDJkMzVDYzY2MzRDMDUzMjkyNWEzYjg0NEJjOWU3NTk1ZjBiRWInLCAKICAgICAgICAgICAgICAgICAgICB0YWcgPSAnMTIzNDU2Nzg5MCcsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtEZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgoCiAgICAgICAgICAgICAgICB0eXBlID0gJ09ORV9USU1FX0FERFJFU1MnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua0Rlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aChzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua0Rlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_discoverable_status.py b/test/test_tr_link_discoverable_status.py index cda14bdf..a7083b5d 100644 --- a/test/test_tr_link_discoverable_status.py +++ b/test/test_tr_link_discoverable_status.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_discoverable_status import TRLinkDiscoverableStatus - - -class TestTRLinkDiscoverableStatus(unittest.TestCase): - """TRLinkDiscoverableStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTRLinkDiscoverableStatus(self): - """Test TRLinkDiscoverableStatus""" - # inst = TRLinkDiscoverableStatus() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfZGlzY292ZXJhYmxlX3N0YXR1cyBpbXBvcnQgVFJMaW5rRGlzY292ZXJhYmxlU3RhdHVzCgoKY2xhc3MgVGVzdFRSTGlua0Rpc2NvdmVyYWJsZVN0YXR1cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUUkxpbmtEaXNjb3ZlcmFibGVTdGF0dXMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0VFJMaW5rRGlzY292ZXJhYmxlU3RhdHVzKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rRGlzY292ZXJhYmxlU3RhdHVzIiIiCiAgICAgICAgIyBpbnN0ID0gVFJMaW5rRGlzY292ZXJhYmxlU3RhdHVzKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_fiat_value.py b/test/test_tr_link_fiat_value.py index 125b4d29..e5dfe555 100644 --- a/test/test_tr_link_fiat_value.py +++ b/test/test_tr_link_fiat_value.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_fiat_value import TRLinkFiatValue - - -class TestTRLinkFiatValue(unittest.TestCase): - """TRLinkFiatValue unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkFiatValue: - """Test TRLinkFiatValue - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkFiatValue` - """ - model = TRLinkFiatValue() - if include_optional: - return TRLinkFiatValue( - amount = '1000.50', - currency = 'USD' - ) - else: - return TRLinkFiatValue( - amount = '1000.50', - currency = 'USD', - ) - """ - - def testTRLinkFiatValue(self): - """Test TRLinkFiatValue""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfZmlhdF92YWx1ZSBpbXBvcnQgVFJMaW5rRmlhdFZhbHVlCgoKY2xhc3MgVGVzdFRSTGlua0ZpYXRWYWx1ZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUUkxpbmtGaWF0VmFsdWUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRSTGlua0ZpYXRWYWx1ZToKICAgICAgICAiIiJUZXN0IFRSTGlua0ZpYXRWYWx1ZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUUkxpbmtGaWF0VmFsdWVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtGaWF0VmFsdWUoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtGaWF0VmFsdWUoCiAgICAgICAgICAgICAgICBhbW91bnQgPSAnMTAwMC41MCcsCiAgICAgICAgICAgICAgICBjdXJyZW5jeSA9ICdVU0QnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rRmlhdFZhbHVlKAogICAgICAgICAgICAgICAgYW1vdW50ID0gJzEwMDAuNTAnLAogICAgICAgICAgICAgICAgY3VycmVuY3kgPSAnVVNEJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtGaWF0VmFsdWUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtGaWF0VmFsdWUiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_geographic_address_request.py b/test/test_tr_link_geographic_address_request.py index 5f71e825..79af9cf8 100644 --- a/test/test_tr_link_geographic_address_request.py +++ b/test/test_tr_link_geographic_address_request.py @@ -1,65 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_geographic_address_request import ( - TRLinkGeographicAddressRequest, -) - - -class TestTRLinkGeographicAddressRequest(unittest.TestCase): - """TRLinkGeographicAddressRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkGeographicAddressRequest: - """Test TRLinkGeographicAddressRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkGeographicAddressRequest` - """ - model = TRLinkGeographicAddressRequest() - if include_optional: - return TRLinkGeographicAddressRequest( - address_line = ["Suite 100"], - street_name = 'Main Street', - building_number = '123', - floor = '5', - post_box = 'PO Box 456', - post_code = '10001', - town_name = 'New York', - district_name = 'Manhattan', - country_sub_division = 'NY', - country = 'US' - ) - else: - return TRLinkGeographicAddressRequest( - ) - """ - - def testTRLinkGeographicAddressRequest(self): - """Test TRLinkGeographicAddressRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfZ2VvZ3JhcGhpY19hZGRyZXNzX3JlcXVlc3QgaW1wb3J0ICgKICAgIFRSTGlua0dlb2dyYXBoaWNBZGRyZXNzUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RUUkxpbmtHZW9ncmFwaGljQWRkcmVzc1JlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rR2VvZ3JhcGhpY0FkZHJlc3NSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUUkxpbmtHZW9ncmFwaGljQWRkcmVzc1JlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtHZW9ncmFwaGljQWRkcmVzc1JlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rR2VvZ3JhcGhpY0FkZHJlc3NSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVFJMaW5rR2VvZ3JhcGhpY0FkZHJlc3NSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rR2VvZ3JhcGhpY0FkZHJlc3NSZXF1ZXN0KAogICAgICAgICAgICAgICAgYWRkcmVzc19saW5lID0gWyJTdWl0ZSAxMDAiXSwKICAgICAgICAgICAgICAgIHN0cmVldF9uYW1lID0gJ01haW4gU3RyZWV0JywKICAgICAgICAgICAgICAgIGJ1aWxkaW5nX251bWJlciA9ICcxMjMnLAogICAgICAgICAgICAgICAgZmxvb3IgPSAnNScsCiAgICAgICAgICAgICAgICBwb3N0X2JveCA9ICdQTyBCb3ggNDU2JywKICAgICAgICAgICAgICAgIHBvc3RfY29kZSA9ICcxMDAwMScsCiAgICAgICAgICAgICAgICB0b3duX25hbWUgPSAnTmV3IFlvcmsnLAogICAgICAgICAgICAgICAgZGlzdHJpY3RfbmFtZSA9ICdNYW5oYXR0YW4nLAogICAgICAgICAgICAgICAgY291bnRyeV9zdWJfZGl2aXNpb24gPSAnTlknLAogICAgICAgICAgICAgICAgY291bnRyeSA9ICdVUycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtHZW9ncmFwaGljQWRkcmVzc1JlcXVlc3QoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VFJMaW5rR2VvZ3JhcGhpY0FkZHJlc3NSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rR2VvZ3JhcGhpY0FkZHJlc3NSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tr_link_get_supported_asset_response.py b/test/test_tr_link_get_supported_asset_response.py index e734ad16..815a248f 100644 --- a/test/test_tr_link_get_supported_asset_response.py +++ b/test/test_tr_link_get_supported_asset_response.py @@ -1,79 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_get_supported_asset_response import ( - TRLinkGetSupportedAssetResponse, -) - - -class TestTRLinkGetSupportedAssetResponse(unittest.TestCase): - """TRLinkGetSupportedAssetResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkGetSupportedAssetResponse: - """Test TRLinkGetSupportedAssetResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkGetSupportedAssetResponse` - """ - model = TRLinkGetSupportedAssetResponse() - if include_optional: - return TRLinkGetSupportedAssetResponse( - fireblocks_asset = fireblocks.models.tr_link_public_asset_info.TRLinkPublicAssetInfo( - id = 'USDC_ETH', - name = 'USD Coin', - type = 'ERC20', - contract_address = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', - native_asset = 'ETH', - decimals = 6, - issuer_address = '0x1234567890abcdef1234567890abcdef12345678', ), - partner_response = {"assetCode":"USDC","network":"ethereum","enabled":true}, - partner_can_handle_any_asset = False, - note = 'Partner supports only explicitly listed assets', - supported = True - ) - else: - return TRLinkGetSupportedAssetResponse( - fireblocks_asset = fireblocks.models.tr_link_public_asset_info.TRLinkPublicAssetInfo( - id = 'USDC_ETH', - name = 'USD Coin', - type = 'ERC20', - contract_address = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', - native_asset = 'ETH', - decimals = 6, - issuer_address = '0x1234567890abcdef1234567890abcdef12345678', ), - partner_response = {"assetCode":"USDC","network":"ethereum","enabled":true}, - partner_can_handle_any_asset = False, - note = 'Partner supports only explicitly listed assets', - supported = True, - ) - """ - - def testTRLinkGetSupportedAssetResponse(self): - """Test TRLinkGetSupportedAssetResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfZ2V0X3N1cHBvcnRlZF9hc3NldF9yZXNwb25zZSBpbXBvcnQgKAogICAgVFJMaW5rR2V0U3VwcG9ydGVkQXNzZXRSZXNwb25zZSwKKQoKCmNsYXNzIFRlc3RUUkxpbmtHZXRTdXBwb3J0ZWRBc3NldFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua0dldFN1cHBvcnRlZEFzc2V0UmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRSTGlua0dldFN1cHBvcnRlZEFzc2V0UmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtHZXRTdXBwb3J0ZWRBc3NldFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRSTGlua0dldFN1cHBvcnRlZEFzc2V0UmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtHZXRTdXBwb3J0ZWRBc3NldFJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rR2V0U3VwcG9ydGVkQXNzZXRSZXNwb25zZSgKICAgICAgICAgICAgICAgIGZpcmVibG9ja3NfYXNzZXQgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3B1YmxpY19hc3NldF9pbmZvLlRSTGlua1B1YmxpY0Fzc2V0SW5mbygKICAgICAgICAgICAgICAgICAgICBpZCA9ICdVU0RDX0VUSCcsIAogICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnVVNEIENvaW4nLCAKICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ0VSQzIwJywgCiAgICAgICAgICAgICAgICAgICAgY29udHJhY3RfYWRkcmVzcyA9ICcweEEwYjg2OTkxYzYyMThiMzZjMWQxOUQ0YTJlOUViMGNFMzYwNmVCNDgnLCAKICAgICAgICAgICAgICAgICAgICBuYXRpdmVfYXNzZXQgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgZGVjaW1hbHMgPSA2LCAKICAgICAgICAgICAgICAgICAgICBpc3N1ZXJfYWRkcmVzcyA9ICcweDEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2NzgnLCApLAogICAgICAgICAgICAgICAgcGFydG5lcl9yZXNwb25zZSA9IHsiYXNzZXRDb2RlIjoiVVNEQyIsIm5ldHdvcmsiOiJldGhlcmV1bSIsImVuYWJsZWQiOnRydWV9LAogICAgICAgICAgICAgICAgcGFydG5lcl9jYW5faGFuZGxlX2FueV9hc3NldCA9IEZhbHNlLAogICAgICAgICAgICAgICAgbm90ZSA9ICdQYXJ0bmVyIHN1cHBvcnRzIG9ubHkgZXhwbGljaXRseSBsaXN0ZWQgYXNzZXRzJywKICAgICAgICAgICAgICAgIHN1cHBvcnRlZCA9IFRydWUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtHZXRTdXBwb3J0ZWRBc3NldFJlc3BvbnNlKAogICAgICAgICAgICAgICAgZmlyZWJsb2Nrc19hc3NldCA9IGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHVibGljX2Fzc2V0X2luZm8uVFJMaW5rUHVibGljQXNzZXRJbmZvKAogICAgICAgICAgICAgICAgICAgIGlkID0gJ1VTRENfRVRIJywgCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdVU0QgQ29pbicsIAogICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnRVJDMjAnLCAKICAgICAgICAgICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzID0gJzB4QTBiODY5OTFjNjIxOGIzNmMxZDE5RDRhMmU5RWIwY0UzNjA2ZUI0OCcsIAogICAgICAgICAgICAgICAgICAgIG5hdGl2ZV9hc3NldCA9ICdFVEgnLCAKICAgICAgICAgICAgICAgICAgICBkZWNpbWFscyA9IDYsIAogICAgICAgICAgICAgICAgICAgIGlzc3Vlcl9hZGRyZXNzID0gJzB4MTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3OCcsICksCiAgICAgICAgICAgICAgICBwYXJ0bmVyX3Jlc3BvbnNlID0geyJhc3NldENvZGUiOiJVU0RDIiwibmV0d29yayI6ImV0aGVyZXVtIiwiZW5hYmxlZCI6dHJ1ZX0sCiAgICAgICAgICAgICAgICBwYXJ0bmVyX2Nhbl9oYW5kbGVfYW55X2Fzc2V0ID0gRmFsc2UsCiAgICAgICAgICAgICAgICBub3RlID0gJ1BhcnRuZXIgc3VwcG9ydHMgb25seSBleHBsaWNpdGx5IGxpc3RlZCBhc3NldHMnLAogICAgICAgICAgICAgICAgc3VwcG9ydGVkID0gVHJ1ZSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtHZXRTdXBwb3J0ZWRBc3NldFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rR2V0U3VwcG9ydGVkQXNzZXRSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_ivms.py b/test/test_tr_link_ivms.py index 7bdea8bd..33685ac5 100644 --- a/test/test_tr_link_ivms.py +++ b/test/test_tr_link_ivms.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_ivms import TRLinkIvms - - -class TestTRLinkIvms(unittest.TestCase): - """TRLinkIvms unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkIvms: - """Test TRLinkIvms - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkIvms` - """ - model = TRLinkIvms() - if include_optional: - return TRLinkIvms( - version = 'IVMS101.2023', - data = 'aGVsbG8gd29ybGQgdGhpcyBpcyBlbmNyeXB0ZWQgZGF0YQ==', - filled_fields = ["Beneficiary.beneficiaryPersons[].legalPerson.name.nameIdentifier","Beneficiary.beneficiaryPersons[].naturalPerson.name.nameIdentifier"] - ) - else: - return TRLinkIvms( - version = 'IVMS101.2023', - data = 'aGVsbG8gd29ybGQgdGhpcyBpcyBlbmNyeXB0ZWQgZGF0YQ==', - filled_fields = ["Beneficiary.beneficiaryPersons[].legalPerson.name.nameIdentifier","Beneficiary.beneficiaryPersons[].naturalPerson.name.nameIdentifier"], - ) - """ - - def testTRLinkIvms(self): - """Test TRLinkIvms""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfaXZtcyBpbXBvcnQgVFJMaW5rSXZtcwoKCmNsYXNzIFRlc3RUUkxpbmtJdm1zKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua0l2bXMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRSTGlua0l2bXM6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtJdm1zCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRSTGlua0l2bXNgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtJdm1zKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rSXZtcygKICAgICAgICAgICAgICAgIHZlcnNpb24gPSAnSVZNUzEwMS4yMDIzJywKICAgICAgICAgICAgICAgIGRhdGEgPSAnYUdWc2JHOGdkMjl5YkdRZ2RHaHBjeUJwY3lCbGJtTnllWEIwWldRZ1pHRjBZUT09JywKICAgICAgICAgICAgICAgIGZpbGxlZF9maWVsZHMgPSBbIkJlbmVmaWNpYXJ5LmJlbmVmaWNpYXJ5UGVyc29uc1tdLmxlZ2FsUGVyc29uLm5hbWUubmFtZUlkZW50aWZpZXIiLCJCZW5lZmljaWFyeS5iZW5lZmljaWFyeVBlcnNvbnNbXS5uYXR1cmFsUGVyc29uLm5hbWUubmFtZUlkZW50aWZpZXIiXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRSTGlua0l2bXMoCiAgICAgICAgICAgICAgICB2ZXJzaW9uID0gJ0lWTVMxMDEuMjAyMycsCiAgICAgICAgICAgICAgICBkYXRhID0gJ2FHVnNiRzhnZDI5eWJHUWdkR2hwY3lCcGN5QmxibU55ZVhCMFpXUWdaR0YwWVE9PScsCiAgICAgICAgICAgICAgICBmaWxsZWRfZmllbGRzID0gWyJCZW5lZmljaWFyeS5iZW5lZmljaWFyeVBlcnNvbnNbXS5sZWdhbFBlcnNvbi5uYW1lLm5hbWVJZGVudGlmaWVyIiwiQmVuZWZpY2lhcnkuYmVuZWZpY2lhcnlQZXJzb25zW10ubmF0dXJhbFBlcnNvbi5uYW1lLm5hbWVJZGVudGlmaWVyIl0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VFJMaW5rSXZtcyhzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua0l2bXMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_ivms_response.py b/test/test_tr_link_ivms_response.py index 595d1b45..2f952674 100644 --- a/test/test_tr_link_ivms_response.py +++ b/test/test_tr_link_ivms_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_ivms_response import TRLinkIvmsResponse - - -class TestTRLinkIvmsResponse(unittest.TestCase): - """TRLinkIvmsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkIvmsResponse: - """Test TRLinkIvmsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkIvmsResponse` - """ - model = TRLinkIvmsResponse() - if include_optional: - return TRLinkIvmsResponse( - version = '1.0', - data = 'eyJvcmlnaW5hdG9yIjp7Im5hbWUiOiJKb2huIERvZSIsImFkZHJlc3MiOiIxMjMgTWFpbiBTdCJ9LCJiZW5lZmljaWFyeSI6eyJuYW1lIjoiSmFuZSBTbWl0aCIsImFkZHJlc3MiOiI0NTYgRWxtIFN0In19', - filled_fields = ["originator.name","originator.address","beneficiary.name","beneficiary.address"] - ) - else: - return TRLinkIvmsResponse( - version = '1.0', - data = 'eyJvcmlnaW5hdG9yIjp7Im5hbWUiOiJKb2huIERvZSIsImFkZHJlc3MiOiIxMjMgTWFpbiBTdCJ9LCJiZW5lZmljaWFyeSI6eyJuYW1lIjoiSmFuZSBTbWl0aCIsImFkZHJlc3MiOiI0NTYgRWxtIFN0In19', - filled_fields = ["originator.name","originator.address","beneficiary.name","beneficiary.address"], - ) - """ - - def testTRLinkIvmsResponse(self): - """Test TRLinkIvmsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfaXZtc19yZXNwb25zZSBpbXBvcnQgVFJMaW5rSXZtc1Jlc3BvbnNlCgoKY2xhc3MgVGVzdFRSTGlua0l2bXNSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUUkxpbmtJdm1zUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRSTGlua0l2bXNSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFRSTGlua0l2bXNSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUUkxpbmtJdm1zUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtJdm1zUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtJdm1zUmVzcG9uc2UoCiAgICAgICAgICAgICAgICB2ZXJzaW9uID0gJzEuMCcsCiAgICAgICAgICAgICAgICBkYXRhID0gJ2V5SnZjbWxuYVc1aGRHOXlJanA3SW01aGJXVWlPaUpLYjJodUlFUnZaU0lzSW1Ga1pISmxjM01pT2lJeE1qTWdUV0ZwYmlCVGRDSjlMQ0ppWlc1bFptbGphV0Z5ZVNJNmV5SnVZVzFsSWpvaVNtRnVaU0JUYldsMGFDSXNJbUZrWkhKbGMzTWlPaUkwTlRZZ1JXeHRJRk4wSW4xOScsCiAgICAgICAgICAgICAgICBmaWxsZWRfZmllbGRzID0gWyJvcmlnaW5hdG9yLm5hbWUiLCJvcmlnaW5hdG9yLmFkZHJlc3MiLCJiZW5lZmljaWFyeS5uYW1lIiwiYmVuZWZpY2lhcnkuYWRkcmVzcyJdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rSXZtc1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgdmVyc2lvbiA9ICcxLjAnLAogICAgICAgICAgICAgICAgZGF0YSA9ICdleUp2Y21sbmFXNWhkRzl5SWpwN0ltNWhiV1VpT2lKS2IyaHVJRVJ2WlNJc0ltRmtaSEpsYzNNaU9pSXhNak1nVFdGcGJpQlRkQ0o5TENKaVpXNWxabWxqYVdGeWVTSTZleUp1WVcxbElqb2lTbUZ1WlNCVGJXbDBhQ0lzSW1Ga1pISmxjM01pT2lJME5UWWdSV3h0SUZOMEluMTknLAogICAgICAgICAgICAgICAgZmlsbGVkX2ZpZWxkcyA9IFsib3JpZ2luYXRvci5uYW1lIiwib3JpZ2luYXRvci5hZGRyZXNzIiwiYmVuZWZpY2lhcnkubmFtZSIsImJlbmVmaWNpYXJ5LmFkZHJlc3MiXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtJdm1zUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtJdm1zUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_jwk_public_key.py b/test/test_tr_link_jwk_public_key.py index c0e44fc9..7068d13d 100644 --- a/test/test_tr_link_jwk_public_key.py +++ b/test/test_tr_link_jwk_public_key.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_jwk_public_key import TRLinkJwkPublicKey - - -class TestTRLinkJwkPublicKey(unittest.TestCase): - """TRLinkJwkPublicKey unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkJwkPublicKey: - """Test TRLinkJwkPublicKey - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkJwkPublicKey` - """ - model = TRLinkJwkPublicKey() - if include_optional: - return TRLinkJwkPublicKey( - kty = 'RSA', - e = 'AQAB', - use = 'enc', - kid = 'key-12345', - n = 'xGOr-H7A...' - ) - else: - return TRLinkJwkPublicKey( - kty = 'RSA', - e = 'AQAB', - use = 'enc', - kid = 'key-12345', - n = 'xGOr-H7A...', - ) - """ - - def testTRLinkJwkPublicKey(self): - """Test TRLinkJwkPublicKey""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfandrX3B1YmxpY19rZXkgaW1wb3J0IFRSTGlua0p3a1B1YmxpY0tleQoKCmNsYXNzIFRlc3RUUkxpbmtKd2tQdWJsaWNLZXkodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rSndrUHVibGljS2V5IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUUkxpbmtKd2tQdWJsaWNLZXk6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtKd2tQdWJsaWNLZXkKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rSndrUHVibGljS2V5YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVFJMaW5rSndrUHVibGljS2V5KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rSndrUHVibGljS2V5KAogICAgICAgICAgICAgICAga3R5ID0gJ1JTQScsCiAgICAgICAgICAgICAgICBlID0gJ0FRQUInLAogICAgICAgICAgICAgICAgdXNlID0gJ2VuYycsCiAgICAgICAgICAgICAgICBraWQgPSAna2V5LTEyMzQ1JywKICAgICAgICAgICAgICAgIG4gPSAneEdPci1IN0EuLi4nCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rSndrUHVibGljS2V5KAogICAgICAgICAgICAgICAga3R5ID0gJ1JTQScsCiAgICAgICAgICAgICAgICBlID0gJ0FRQUInLAogICAgICAgICAgICAgICAgdXNlID0gJ2VuYycsCiAgICAgICAgICAgICAgICBraWQgPSAna2V5LTEyMzQ1JywKICAgICAgICAgICAgICAgIG4gPSAneEdPci1IN0EuLi4nLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua0p3a1B1YmxpY0tleShzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua0p3a1B1YmxpY0tleSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_missing_trm_action.py b/test/test_tr_link_missing_trm_action.py index 4796e9cf..00a24351 100644 --- a/test/test_tr_link_missing_trm_action.py +++ b/test/test_tr_link_missing_trm_action.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_missing_trm_action import TRLinkMissingTrmAction - - -class TestTRLinkMissingTrmAction(unittest.TestCase): - """TRLinkMissingTrmAction unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTRLinkMissingTrmAction(self): - """Test TRLinkMissingTrmAction""" - # inst = TRLinkMissingTrmAction() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfbWlzc2luZ190cm1fYWN0aW9uIGltcG9ydCBUUkxpbmtNaXNzaW5nVHJtQWN0aW9uCgoKY2xhc3MgVGVzdFRSTGlua01pc3NpbmdUcm1BY3Rpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rTWlzc2luZ1RybUFjdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RUUkxpbmtNaXNzaW5nVHJtQWN0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rTWlzc2luZ1RybUFjdGlvbiIiIgogICAgICAgICMgaW5zdCA9IFRSTGlua01pc3NpbmdUcm1BY3Rpb24oKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tr_link_missing_trm_action2.py b/test/test_tr_link_missing_trm_action2.py index d6239b3f..d6a5e64d 100644 --- a/test/test_tr_link_missing_trm_action2.py +++ b/test/test_tr_link_missing_trm_action2.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_missing_trm_action2 import TRLinkMissingTrmAction2 - - -class TestTRLinkMissingTrmAction2(unittest.TestCase): - """TRLinkMissingTrmAction2 unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTRLinkMissingTrmAction2(self): - """Test TRLinkMissingTrmAction2""" - # inst = TRLinkMissingTrmAction2() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfbWlzc2luZ190cm1fYWN0aW9uMiBpbXBvcnQgVFJMaW5rTWlzc2luZ1RybUFjdGlvbjIKCgpjbGFzcyBUZXN0VFJMaW5rTWlzc2luZ1RybUFjdGlvbjIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rTWlzc2luZ1RybUFjdGlvbjIgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0VFJMaW5rTWlzc2luZ1RybUFjdGlvbjIoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtNaXNzaW5nVHJtQWN0aW9uMiIiIgogICAgICAgICMgaW5zdCA9IFRSTGlua01pc3NpbmdUcm1BY3Rpb24yKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_missing_trm_action_enum.py b/test/test_tr_link_missing_trm_action_enum.py index 6814a9fd..68df34ea 100644 --- a/test/test_tr_link_missing_trm_action_enum.py +++ b/test/test_tr_link_missing_trm_action_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_missing_trm_action_enum import TRLinkMissingTrmActionEnum - - -class TestTRLinkMissingTrmActionEnum(unittest.TestCase): - """TRLinkMissingTrmActionEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTRLinkMissingTrmActionEnum(self): - """Test TRLinkMissingTrmActionEnum""" - # inst = TRLinkMissingTrmActionEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfbWlzc2luZ190cm1fYWN0aW9uX2VudW0gaW1wb3J0IFRSTGlua01pc3NpbmdUcm1BY3Rpb25FbnVtCgoKY2xhc3MgVGVzdFRSTGlua01pc3NpbmdUcm1BY3Rpb25FbnVtKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua01pc3NpbmdUcm1BY3Rpb25FbnVtIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdFRSTGlua01pc3NpbmdUcm1BY3Rpb25FbnVtKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rTWlzc2luZ1RybUFjdGlvbkVudW0iIiIKICAgICAgICAjIGluc3QgPSBUUkxpbmtNaXNzaW5nVHJtQWN0aW9uRW51bSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_missing_trm_decision.py b/test/test_tr_link_missing_trm_decision.py index a54c6016..1d25ac48 100644 --- a/test/test_tr_link_missing_trm_decision.py +++ b/test/test_tr_link_missing_trm_decision.py @@ -1,82 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_missing_trm_decision import TRLinkMissingTrmDecision - - -class TestTRLinkMissingTrmDecision(unittest.TestCase): - """TRLinkMissingTrmDecision unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkMissingTrmDecision: - """Test TRLinkMissingTrmDecision - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkMissingTrmDecision` - """ - model = TRLinkMissingTrmDecision() - if include_optional: - return TRLinkMissingTrmDecision( - customer_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - direction = 'OUTBOUND', - source_type = 'VAULT_ACCOUNT', - source_sub_type = 'INTERNAL', - source_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = 'INTERNAL', - dest_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - source_id = '1', - dest_id = '1', - asset = 'BTC', - base_asset = 'USD', - amount = fireblocks.models.tr_link_amount.TRLinkAmount( - range = fireblocks.models.amount_range_min_max.AmountRangeMinMax( - min = '100', - max = '10000', ), - currency = 'USD', ), - network_protocol = 'BITCOIN', - operation = 'TRANSFER', - description = '', - is_default = True, - valid_before = 1672531200000, - valid_after = 1640995200000, - action = 'WAIT', - source = 'policy', - timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), - reason = 'Missing travel rule message' - ) - else: - return TRLinkMissingTrmDecision( - action = 'WAIT', - source = 'policy', - ) - """ - - def testTRLinkMissingTrmDecision(self): - """Test TRLinkMissingTrmDecision""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfbWlzc2luZ190cm1fZGVjaXNpb24gaW1wb3J0IFRSTGlua01pc3NpbmdUcm1EZWNpc2lvbgoKCmNsYXNzIFRlc3RUUkxpbmtNaXNzaW5nVHJtRGVjaXNpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUUkxpbmtNaXNzaW5nVHJtRGVjaXNpb246CiAgICAgICAgIiIiVGVzdCBUUkxpbmtNaXNzaW5nVHJtRGVjaXNpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uKAogICAgICAgICAgICAgICAgY3VzdG9tZXJfaWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywKICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdPVVRCT1VORCcsCiAgICAgICAgICAgICAgICBzb3VyY2VfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIHNvdXJjZV9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsCiAgICAgICAgICAgICAgICBzb3VyY2VfYWRkcmVzcyA9ICcxQTF6UDFlUDVRR2VmaTJETVBUZlRMNVNMbXY3RGl2Zk5hJywKICAgICAgICAgICAgICAgIGRlc3RfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIGRlc3Rfc3ViX3R5cGUgPSAnSU5URVJOQUwnLAogICAgICAgICAgICAgICAgZGVzdF9hZGRyZXNzID0gJzFBMXpQMWVQNVFHZWZpMkRNUFRmVEw1U0xtdjdEaXZmTmEnLAogICAgICAgICAgICAgICAgc291cmNlX2lkID0gJzEnLAogICAgICAgICAgICAgICAgZGVzdF9pZCA9ICcxJywKICAgICAgICAgICAgICAgIGFzc2V0ID0gJ0JUQycsCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gJ1VTRCcsCiAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Ftb3VudC5UUkxpbmtBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfcmFuZ2VfbWluX21heC5BbW91bnRSYW5nZU1pbk1heCgKICAgICAgICAgICAgICAgICAgICAgICAgbWluID0gJzEwMCcsIAogICAgICAgICAgICAgICAgICAgICAgICBtYXggPSAnMTAwMDAnLCApLCAKICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeSA9ICdVU0QnLCApLAogICAgICAgICAgICAgICAgbmV0d29ya19wcm90b2NvbCA9ICdCSVRDT0lOJywKICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9ICdUUkFOU0ZFUicsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICcnLAogICAgICAgICAgICAgICAgaXNfZGVmYXVsdCA9IFRydWUsCiAgICAgICAgICAgICAgICB2YWxpZF9iZWZvcmUgPSAxNjcyNTMxMjAwMDAwLAogICAgICAgICAgICAgICAgdmFsaWRfYWZ0ZXIgPSAxNjQwOTk1MjAwMDAwLAogICAgICAgICAgICAgICAgYWN0aW9uID0gJ1dBSVQnLAogICAgICAgICAgICAgICAgc291cmNlID0gJ3BvbGljeScsCiAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSBkYXRldGltZS5kYXRldGltZS5zdHJwdGltZSgnMjAxMy0xMC0yMCAxOToyMDozMC4wMCcsICclWS0lbS0lZCAlSDolTTolUy4lZicpLAogICAgICAgICAgICAgICAgcmVhc29uID0gJ01pc3NpbmcgdHJhdmVsIHJ1bGUgbWVzc2FnZScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtNaXNzaW5nVHJtRGVjaXNpb24oCiAgICAgICAgICAgICAgICBhY3Rpb24gPSAnV0FJVCcsCiAgICAgICAgICAgICAgICBzb3VyY2UgPSAncG9saWN5JywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtNaXNzaW5nVHJtRGVjaXNpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtNaXNzaW5nVHJtRGVjaXNpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_missing_trm_rule.py b/test/test_tr_link_missing_trm_rule.py index 15773911..956172b8 100644 --- a/test/test_tr_link_missing_trm_rule.py +++ b/test/test_tr_link_missing_trm_rule.py @@ -1,78 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_missing_trm_rule import TRLinkMissingTrmRule - - -class TestTRLinkMissingTrmRule(unittest.TestCase): - """TRLinkMissingTrmRule unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkMissingTrmRule: - """Test TRLinkMissingTrmRule - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkMissingTrmRule` - """ - model = TRLinkMissingTrmRule() - if include_optional: - return TRLinkMissingTrmRule( - customer_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - direction = 'OUTBOUND', - source_type = 'VAULT_ACCOUNT', - source_sub_type = 'INTERNAL', - source_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = 'INTERNAL', - dest_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - source_id = '1', - dest_id = '1', - asset = 'BTC', - base_asset = 'USD', - amount = fireblocks.models.tr_link_amount.TRLinkAmount( - range = fireblocks.models.amount_range_min_max.AmountRangeMinMax( - min = '100', - max = '10000', ), - currency = 'USD', ), - network_protocol = 'BITCOIN', - operation = 'TRANSFER', - description = '', - is_default = True, - valid_before = 1672531200000, - valid_after = 1640995200000, - action = 'WAIT' - ) - else: - return TRLinkMissingTrmRule( - action = 'WAIT', - ) - """ - - def testTRLinkMissingTrmRule(self): - """Test TRLinkMissingTrmRule""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfbWlzc2luZ190cm1fcnVsZSBpbXBvcnQgVFJMaW5rTWlzc2luZ1RybVJ1bGUKCgpjbGFzcyBUZXN0VFJMaW5rTWlzc2luZ1RybVJ1bGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rTWlzc2luZ1RybVJ1bGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRSTGlua01pc3NpbmdUcm1SdWxlOgogICAgICAgICIiIlRlc3QgVFJMaW5rTWlzc2luZ1RybVJ1bGUKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rTWlzc2luZ1RybVJ1bGVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtNaXNzaW5nVHJtUnVsZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRSTGlua01pc3NpbmdUcm1SdWxlKAogICAgICAgICAgICAgICAgY3VzdG9tZXJfaWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywKICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdPVVRCT1VORCcsCiAgICAgICAgICAgICAgICBzb3VyY2VfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIHNvdXJjZV9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsCiAgICAgICAgICAgICAgICBzb3VyY2VfYWRkcmVzcyA9ICcxQTF6UDFlUDVRR2VmaTJETVBUZlRMNVNMbXY3RGl2Zk5hJywKICAgICAgICAgICAgICAgIGRlc3RfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIGRlc3Rfc3ViX3R5cGUgPSAnSU5URVJOQUwnLAogICAgICAgICAgICAgICAgZGVzdF9hZGRyZXNzID0gJzFBMXpQMWVQNVFHZWZpMkRNUFRmVEw1U0xtdjdEaXZmTmEnLAogICAgICAgICAgICAgICAgc291cmNlX2lkID0gJzEnLAogICAgICAgICAgICAgICAgZGVzdF9pZCA9ICcxJywKICAgICAgICAgICAgICAgIGFzc2V0ID0gJ0JUQycsCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gJ1VTRCcsCiAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Ftb3VudC5UUkxpbmtBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfcmFuZ2VfbWluX21heC5BbW91bnRSYW5nZU1pbk1heCgKICAgICAgICAgICAgICAgICAgICAgICAgbWluID0gJzEwMCcsIAogICAgICAgICAgICAgICAgICAgICAgICBtYXggPSAnMTAwMDAnLCApLCAKICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeSA9ICdVU0QnLCApLAogICAgICAgICAgICAgICAgbmV0d29ya19wcm90b2NvbCA9ICdCSVRDT0lOJywKICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9ICdUUkFOU0ZFUicsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICcnLAogICAgICAgICAgICAgICAgaXNfZGVmYXVsdCA9IFRydWUsCiAgICAgICAgICAgICAgICB2YWxpZF9iZWZvcmUgPSAxNjcyNTMxMjAwMDAwLAogICAgICAgICAgICAgICAgdmFsaWRfYWZ0ZXIgPSAxNjQwOTk1MjAwMDAwLAogICAgICAgICAgICAgICAgYWN0aW9uID0gJ1dBSVQnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rTWlzc2luZ1RybVJ1bGUoCiAgICAgICAgICAgICAgICBhY3Rpb24gPSAnV0FJVCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VFJMaW5rTWlzc2luZ1RybVJ1bGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtNaXNzaW5nVHJtUnVsZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_missing_trm_rule2.py b/test/test_tr_link_missing_trm_rule2.py index 750511df..32afff24 100644 --- a/test/test_tr_link_missing_trm_rule2.py +++ b/test/test_tr_link_missing_trm_rule2.py @@ -1,78 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_missing_trm_rule2 import TRLinkMissingTrmRule2 - - -class TestTRLinkMissingTrmRule2(unittest.TestCase): - """TRLinkMissingTrmRule2 unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkMissingTrmRule2: - """Test TRLinkMissingTrmRule2 - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkMissingTrmRule2` - """ - model = TRLinkMissingTrmRule2() - if include_optional: - return TRLinkMissingTrmRule2( - customer_id = 'cust_123abc', - direction = 'OUTBOUND', - source_type = 'EXTERNAL_WALLET', - source_sub_type = '', - source_address = '0xabcdef1234567890abcdef1234567890abcdef12', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = '', - dest_address = '0x567890abcdef1234567890abcdef1234567890ab', - source_id = '', - dest_id = '', - asset = 'BTC', - base_asset = '', - amount = fireblocks.models.tr_link_amount_2.TRLinkAmount-2( - range = fireblocks.models.tr_link_amount_range.TRLinkAmountRange( - min = '1000', - max = '100000', ), - currency = 'USD', ), - network_protocol = 'BITCOIN', - operation = 'TRANSFER', - description = 'Wait for TRM screening on inbound transactions', - is_default = False, - valid_before = 1735689600000, - valid_after = 1704067200000, - action = 'WAIT' - ) - else: - return TRLinkMissingTrmRule2( - action = 'WAIT', - ) - """ - - def testTRLinkMissingTrmRule2(self): - """Test TRLinkMissingTrmRule2""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfbWlzc2luZ190cm1fcnVsZTIgaW1wb3J0IFRSTGlua01pc3NpbmdUcm1SdWxlMgoKCmNsYXNzIFRlc3RUUkxpbmtNaXNzaW5nVHJtUnVsZTIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rTWlzc2luZ1RybVJ1bGUyIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUUkxpbmtNaXNzaW5nVHJtUnVsZTI6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtNaXNzaW5nVHJtUnVsZTIKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rTWlzc2luZ1RybVJ1bGUyYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVFJMaW5rTWlzc2luZ1RybVJ1bGUyKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rTWlzc2luZ1RybVJ1bGUyKAogICAgICAgICAgICAgICAgY3VzdG9tZXJfaWQgPSAnY3VzdF8xMjNhYmMnLAogICAgICAgICAgICAgICAgZGlyZWN0aW9uID0gJ09VVEJPVU5EJywKICAgICAgICAgICAgICAgIHNvdXJjZV90eXBlID0gJ0VYVEVSTkFMX1dBTExFVCcsCiAgICAgICAgICAgICAgICBzb3VyY2Vfc3ViX3R5cGUgPSAnJywKICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzID0gJzB4YWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMicsCiAgICAgICAgICAgICAgICBkZXN0X3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsCiAgICAgICAgICAgICAgICBkZXN0X3N1Yl90eXBlID0gJycsCiAgICAgICAgICAgICAgICBkZXN0X2FkZHJlc3MgPSAnMHg1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiJywKICAgICAgICAgICAgICAgIHNvdXJjZV9pZCA9ICcnLAogICAgICAgICAgICAgICAgZGVzdF9pZCA9ICcnLAogICAgICAgICAgICAgICAgYXNzZXQgPSAnQlRDJywKICAgICAgICAgICAgICAgIGJhc2VfYXNzZXQgPSAnJywKICAgICAgICAgICAgICAgIGFtb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYW1vdW50XzIuVFJMaW5rQW1vdW50LTIoCiAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Ftb3VudF9yYW5nZS5UUkxpbmtBbW91bnRSYW5nZSgKICAgICAgICAgICAgICAgICAgICAgICAgbWluID0gJzEwMDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWF4ID0gJzEwMDAwMCcsICksIAogICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5ID0gJ1VTRCcsICksCiAgICAgICAgICAgICAgICBuZXR3b3JrX3Byb3RvY29sID0gJ0JJVENPSU4nLAogICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gJ1RSQU5TRkVSJywKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1dhaXQgZm9yIFRSTSBzY3JlZW5pbmcgb24gaW5ib3VuZCB0cmFuc2FjdGlvbnMnLAogICAgICAgICAgICAgICAgaXNfZGVmYXVsdCA9IEZhbHNlLAogICAgICAgICAgICAgICAgdmFsaWRfYmVmb3JlID0gMTczNTY4OTYwMDAwMCwKICAgICAgICAgICAgICAgIHZhbGlkX2FmdGVyID0gMTcwNDA2NzIwMDAwMCwKICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdXQUlUJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRSTGlua01pc3NpbmdUcm1SdWxlMigKICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdXQUlUJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtNaXNzaW5nVHJtUnVsZTIoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtNaXNzaW5nVHJtUnVsZTIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_one_time_address.py b/test/test_tr_link_one_time_address.py index 3cc96122..95eb77af 100644 --- a/test/test_tr_link_one_time_address.py +++ b/test/test_tr_link_one_time_address.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_one_time_address import TRLinkOneTimeAddress - - -class TestTRLinkOneTimeAddress(unittest.TestCase): - """TRLinkOneTimeAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkOneTimeAddress: - """Test TRLinkOneTimeAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkOneTimeAddress` - """ - model = TRLinkOneTimeAddress() - if include_optional: - return TRLinkOneTimeAddress( - address = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb', - tag = '1234567890' - ) - else: - return TRLinkOneTimeAddress( - address = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb', - ) - """ - - def testTRLinkOneTimeAddress(self): - """Test TRLinkOneTimeAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfb25lX3RpbWVfYWRkcmVzcyBpbXBvcnQgVFJMaW5rT25lVGltZUFkZHJlc3MKCgpjbGFzcyBUZXN0VFJMaW5rT25lVGltZUFkZHJlc3ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rT25lVGltZUFkZHJlc3MgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRSTGlua09uZVRpbWVBZGRyZXNzOgogICAgICAgICIiIlRlc3QgVFJMaW5rT25lVGltZUFkZHJlc3MKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rT25lVGltZUFkZHJlc3NgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtPbmVUaW1lQWRkcmVzcygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRSTGlua09uZVRpbWVBZGRyZXNzKAogICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweDc0MmQzNUNjNjYzNEMwNTMyOTI1YTNiODQ0QmM5ZTc1OTVmMGJFYicsCiAgICAgICAgICAgICAgICB0YWcgPSAnMTIzNDU2Nzg5MCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtPbmVUaW1lQWRkcmVzcygKICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHg3NDJkMzVDYzY2MzRDMDUzMjkyNWEzYjg0NEJjOWU3NTk1ZjBiRWInLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua09uZVRpbWVBZGRyZXNzKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rT25lVGltZUFkZHJlc3MiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_paging.py b/test/test_tr_link_paging.py index 8333f166..b77ffce9 100644 --- a/test/test_tr_link_paging.py +++ b/test/test_tr_link_paging.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_paging import TRLinkPaging - - -class TestTRLinkPaging(unittest.TestCase): - """TRLinkPaging unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkPaging: - """Test TRLinkPaging - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkPaging` - """ - model = TRLinkPaging() - if include_optional: - return TRLinkPaging( - next = 'eyJwYWdlIjoyLCJsaW1pdCI6MTAwfQ==' - ) - else: - return TRLinkPaging( - next = 'eyJwYWdlIjoyLCJsaW1pdCI6MTAwfQ==', - ) - """ - - def testTRLinkPaging(self): - """Test TRLinkPaging""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcGFnaW5nIGltcG9ydCBUUkxpbmtQYWdpbmcKCgpjbGFzcyBUZXN0VFJMaW5rUGFnaW5nKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua1BhZ2luZyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVFJMaW5rUGFnaW5nOgogICAgICAgICIiIlRlc3QgVFJMaW5rUGFnaW5nCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRSTGlua1BhZ2luZ2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRSTGlua1BhZ2luZygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRSTGlua1BhZ2luZygKICAgICAgICAgICAgICAgIG5leHQgPSAnZXlKd1lXZGxJam95TENKc2FXMXBkQ0k2TVRBd2ZRPT0nCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rUGFnaW5nKAogICAgICAgICAgICAgICAgbmV4dCA9ICdleUp3WVdkbElqb3lMQ0pzYVcxcGRDSTZNVEF3ZlE9PScsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VFJMaW5rUGFnaW5nKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rUGFnaW5nIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tr_link_partner_response.py b/test/test_tr_link_partner_response.py index 71a195dc..f7f4809f 100644 --- a/test/test_tr_link_partner_response.py +++ b/test/test_tr_link_partner_response.py @@ -1,66 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_partner_response import TRLinkPartnerResponse - - -class TestTRLinkPartnerResponse(unittest.TestCase): - """TRLinkPartnerResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkPartnerResponse: - """Test TRLinkPartnerResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkPartnerResponse` - """ - model = TRLinkPartnerResponse() - if include_optional: - return TRLinkPartnerResponse( - id = '123e4567-e89b-12d3-a456-426614174000', - ident = 'notabene', - name = 'Notabene', - description = 'Travel Rule compliance provider', - base_url = 'https://api.notabene.id', - active = True, - is_test = False - ) - else: - return TRLinkPartnerResponse( - id = '123e4567-e89b-12d3-a456-426614174000', - ident = 'notabene', - name = 'Notabene', - base_url = 'https://api.notabene.id', - active = True, - is_test = False, - ) - """ - - def testTRLinkPartnerResponse(self): - """Test TRLinkPartnerResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcGFydG5lcl9yZXNwb25zZSBpbXBvcnQgVFJMaW5rUGFydG5lclJlc3BvbnNlCgoKY2xhc3MgVGVzdFRSTGlua1BhcnRuZXJSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUUkxpbmtQYXJ0bmVyUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRSTGlua1BhcnRuZXJSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFRSTGlua1BhcnRuZXJSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUUkxpbmtQYXJ0bmVyUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtQYXJ0bmVyUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtQYXJ0bmVyUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBpZCA9ICcxMjNlNDU2Ny1lODliLTEyZDMtYTQ1Ni00MjY2MTQxNzQwMDAnLAogICAgICAgICAgICAgICAgaWRlbnQgPSAnbm90YWJlbmUnLAogICAgICAgICAgICAgICAgbmFtZSA9ICdOb3RhYmVuZScsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUcmF2ZWwgUnVsZSBjb21wbGlhbmNlIHByb3ZpZGVyJywKICAgICAgICAgICAgICAgIGJhc2VfdXJsID0gJ2h0dHBzOi8vYXBpLm5vdGFiZW5lLmlkJywKICAgICAgICAgICAgICAgIGFjdGl2ZSA9IFRydWUsCiAgICAgICAgICAgICAgICBpc190ZXN0ID0gRmFsc2UKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtQYXJ0bmVyUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBpZCA9ICcxMjNlNDU2Ny1lODliLTEyZDMtYTQ1Ni00MjY2MTQxNzQwMDAnLAogICAgICAgICAgICAgICAgaWRlbnQgPSAnbm90YWJlbmUnLAogICAgICAgICAgICAgICAgbmFtZSA9ICdOb3RhYmVuZScsCiAgICAgICAgICAgICAgICBiYXNlX3VybCA9ICdodHRwczovL2FwaS5ub3RhYmVuZS5pZCcsCiAgICAgICAgICAgICAgICBhY3RpdmUgPSBUcnVlLAogICAgICAgICAgICAgICAgaXNfdGVzdCA9IEZhbHNlLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua1BhcnRuZXJSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua1BhcnRuZXJSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_policy_response.py b/test/test_tr_link_policy_response.py index 06a98773..ea4e907b 100644 --- a/test/test_tr_link_policy_response.py +++ b/test/test_tr_link_policy_response.py @@ -1,215 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_policy_response import TRLinkPolicyResponse - - -class TestTRLinkPolicyResponse(unittest.TestCase): - """TRLinkPolicyResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkPolicyResponse: - """Test TRLinkPolicyResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkPolicyResponse` - """ - model = TRLinkPolicyResponse() - if include_optional: - return TRLinkPolicyResponse( - pre_screening_rules = [ - fireblocks.models.tr_link_pre_screening_rule_2.TRLinkPreScreeningRule-2( - customer_id = 'cust_123abc', - direction = 'OUTBOUND', - source_type = 'VAULT_ACCOUNT', - source_sub_type = '', - source_address = '0x1234567890abcdef1234567890abcdef12345678', - dest_type = 'EXTERNAL_WALLET', - dest_sub_type = '', - dest_address = '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd', - source_id = '', - dest_id = '', - asset = 'BTC', - base_asset = '', - amount = fireblocks.models.tr_link_amount_2.TRLinkAmount-2( - range = fireblocks.models.tr_link_amount_range.TRLinkAmountRange( - min = '1000', - max = '100000', ), - currency = 'USD', ), - network_protocol = 'BITCOIN', - operation = 'TRANSFER', - description = 'Screen large BTC outbound transactions to external wallets', - is_default = False, - action = 'SCREEN', ) - ], - post_screening_rules = [ - fireblocks.models.tr_link_post_screening_rule_2.TRLinkPostScreeningRule-2( - customer_id = 'cust_123abc', - direction = 'OUTBOUND', - source_type = 'EXTERNAL_WALLET', - source_sub_type = '', - source_address = '0x9876543210fedcba9876543210fedcba98765432', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = '', - dest_address = '0x1234567890abcdef1234567890abcdef12345678', - source_id = '', - dest_id = '', - asset = 'ETH', - base_asset = '', - amount = fireblocks.models.tr_link_amount_2.TRLinkAmount-2( - range = fireblocks.models.tr_link_amount_range.TRLinkAmountRange( - min = '1000', - max = '100000', ), - currency = 'USD', ), - network_protocol = 'ETHEREUM', - operation = 'TRANSFER', - description = 'Accept transactions with TRM approval after January 2024', - is_default = False, - provider_ident = 'trm-provider-1', - trm_status = 'ACCEPTED', - valid_before = 1735689600000, - valid_after = 1704067200000, - action = 'ACCEPT', ) - ], - missing_trm_rules = [ - fireblocks.models.tr_link_missing_trm_rule_2.TRLinkMissingTrmRule-2( - customer_id = 'cust_123abc', - direction = 'OUTBOUND', - source_type = 'EXTERNAL_WALLET', - source_sub_type = '', - source_address = '0xabcdef1234567890abcdef1234567890abcdef12', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = '', - dest_address = '0x567890abcdef1234567890abcdef1234567890ab', - source_id = '', - dest_id = '', - asset = 'BTC', - base_asset = '', - amount = fireblocks.models.tr_link_amount_2.TRLinkAmount-2( - range = fireblocks.models.tr_link_amount_range.TRLinkAmountRange( - min = '1000', - max = '100000', ), - currency = 'USD', ), - network_protocol = 'BITCOIN', - operation = 'TRANSFER', - description = 'Wait for TRM screening on inbound transactions', - is_default = False, - valid_before = 1735689600000, - valid_after = 1704067200000, - action = 'WAIT', ) - ] - ) - else: - return TRLinkPolicyResponse( - pre_screening_rules = [ - fireblocks.models.tr_link_pre_screening_rule_2.TRLinkPreScreeningRule-2( - customer_id = 'cust_123abc', - direction = 'OUTBOUND', - source_type = 'VAULT_ACCOUNT', - source_sub_type = '', - source_address = '0x1234567890abcdef1234567890abcdef12345678', - dest_type = 'EXTERNAL_WALLET', - dest_sub_type = '', - dest_address = '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd', - source_id = '', - dest_id = '', - asset = 'BTC', - base_asset = '', - amount = fireblocks.models.tr_link_amount_2.TRLinkAmount-2( - range = fireblocks.models.tr_link_amount_range.TRLinkAmountRange( - min = '1000', - max = '100000', ), - currency = 'USD', ), - network_protocol = 'BITCOIN', - operation = 'TRANSFER', - description = 'Screen large BTC outbound transactions to external wallets', - is_default = False, - action = 'SCREEN', ) - ], - post_screening_rules = [ - fireblocks.models.tr_link_post_screening_rule_2.TRLinkPostScreeningRule-2( - customer_id = 'cust_123abc', - direction = 'OUTBOUND', - source_type = 'EXTERNAL_WALLET', - source_sub_type = '', - source_address = '0x9876543210fedcba9876543210fedcba98765432', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = '', - dest_address = '0x1234567890abcdef1234567890abcdef12345678', - source_id = '', - dest_id = '', - asset = 'ETH', - base_asset = '', - amount = fireblocks.models.tr_link_amount_2.TRLinkAmount-2( - range = fireblocks.models.tr_link_amount_range.TRLinkAmountRange( - min = '1000', - max = '100000', ), - currency = 'USD', ), - network_protocol = 'ETHEREUM', - operation = 'TRANSFER', - description = 'Accept transactions with TRM approval after January 2024', - is_default = False, - provider_ident = 'trm-provider-1', - trm_status = 'ACCEPTED', - valid_before = 1735689600000, - valid_after = 1704067200000, - action = 'ACCEPT', ) - ], - missing_trm_rules = [ - fireblocks.models.tr_link_missing_trm_rule_2.TRLinkMissingTrmRule-2( - customer_id = 'cust_123abc', - direction = 'OUTBOUND', - source_type = 'EXTERNAL_WALLET', - source_sub_type = '', - source_address = '0xabcdef1234567890abcdef1234567890abcdef12', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = '', - dest_address = '0x567890abcdef1234567890abcdef1234567890ab', - source_id = '', - dest_id = '', - asset = 'BTC', - base_asset = '', - amount = fireblocks.models.tr_link_amount_2.TRLinkAmount-2( - range = fireblocks.models.tr_link_amount_range.TRLinkAmountRange( - min = '1000', - max = '100000', ), - currency = 'USD', ), - network_protocol = 'BITCOIN', - operation = 'TRANSFER', - description = 'Wait for TRM screening on inbound transactions', - is_default = False, - valid_before = 1735689600000, - valid_after = 1704067200000, - action = 'WAIT', ) - ], - ) - """ - - def testTRLinkPolicyResponse(self): - """Test TRLinkPolicyResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcG9saWN5X3Jlc3BvbnNlIGltcG9ydCBUUkxpbmtQb2xpY3lSZXNwb25zZQoKCmNsYXNzIFRlc3RUUkxpbmtQb2xpY3lSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUUkxpbmtQb2xpY3lSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVFJMaW5rUG9saWN5UmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtQb2xpY3lSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUUkxpbmtQb2xpY3lSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRSTGlua1BvbGljeVJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rUG9saWN5UmVzcG9uc2UoCiAgICAgICAgICAgICAgICBwcmVfc2NyZWVuaW5nX3J1bGVzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJlX3NjcmVlbmluZ19ydWxlXzIuVFJMaW5rUHJlU2NyZWVuaW5nUnVsZS0yKAogICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pZCA9ICdjdXN0XzEyM2FiYycsIAogICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsIAogICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2Vfc3ViX3R5cGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzID0gJzB4MTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3OCcsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXN0X3R5cGUgPSAnRVhURVJOQUxfV0FMTEVUJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Rfc3ViX3R5cGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcweGFiY2RlZmFiY2RlZmFiY2RlZmFiY2RlZmFiY2RlZmFiY2RlZmFiY2QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXN0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldCA9ICdCVEMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmFzZV9hc3NldCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hbW91bnRfMi5UUkxpbmtBbW91bnQtMigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hbW91bnRfcmFuZ2UuVFJMaW5rQW1vdW50UmFuZ2UoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluID0gJzEwMDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXggPSAnMTAwMDAwJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeSA9ICdVU0QnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmV0d29ya19wcm90b2NvbCA9ICdCSVRDT0lOJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdTY3JlZW4gbGFyZ2UgQlRDIG91dGJvdW5kIHRyYW5zYWN0aW9ucyB0byBleHRlcm5hbCB3YWxsZXRzJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGlzX2RlZmF1bHQgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdTQ1JFRU4nLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHBvc3Rfc2NyZWVuaW5nX3J1bGVzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcG9zdF9zY3JlZW5pbmdfcnVsZV8yLlRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlLTIoCiAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX2lkID0gJ2N1c3RfMTIzYWJjJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdPVVRCT1VORCcsIAogICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VfdHlwZSA9ICdFWFRFUk5BTF9XQUxMRVQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX3N1Yl90eXBlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VfYWRkcmVzcyA9ICcweDk4NzY1NDMyMTBmZWRjYmE5ODc2NTQzMjEwZmVkY2JhOTg3NjU0MzInLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF90eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9zdWJfdHlwZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9hZGRyZXNzID0gJzB4MTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3OCcsIAogICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0ID0gJ0VUSCcsIAogICAgICAgICAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Ftb3VudF8yLlRSTGlua0Ftb3VudC0yKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Ftb3VudF9yYW5nZS5UUkxpbmtBbW91bnRSYW5nZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW4gPSAnMTAwMCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heCA9ICcxMDAwMDAnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5ID0gJ1VTRCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICBuZXR3b3JrX3Byb3RvY29sID0gJ0VUSEVSRVVNJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdBY2NlcHQgdHJhbnNhY3Rpb25zIHdpdGggVFJNIGFwcHJvdmFsIGFmdGVyIEphbnVhcnkgMjAyNCcsIAogICAgICAgICAgICAgICAgICAgICAgICBpc19kZWZhdWx0ID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlcl9pZGVudCA9ICd0cm0tcHJvdmlkZXItMScsIAogICAgICAgICAgICAgICAgICAgICAgICB0cm1fc3RhdHVzID0gJ0FDQ0VQVEVEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2JlZm9yZSA9IDE3MzU2ODk2MDAwMDAsIAogICAgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hZnRlciA9IDE3MDQwNjcyMDAwMDAsIAogICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUNDRVBUJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBtaXNzaW5nX3RybV9ydWxlcyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX21pc3NpbmdfdHJtX3J1bGVfMi5UUkxpbmtNaXNzaW5nVHJtUnVsZS0yKAogICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pZCA9ICdjdXN0XzEyM2FiYycsIAogICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX3R5cGUgPSAnRVhURVJOQUxfV0FMTEVUJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9zdWJfdHlwZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX2FkZHJlc3MgPSAnMHhhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Rfc3ViX3R5cGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcweDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWInLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXN0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldCA9ICdCVEMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmFzZV9hc3NldCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hbW91bnRfMi5UUkxpbmtBbW91bnQtMigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hbW91bnRfcmFuZ2UuVFJMaW5rQW1vdW50UmFuZ2UoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluID0gJzEwMDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXggPSAnMTAwMDAwJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeSA9ICdVU0QnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmV0d29ya19wcm90b2NvbCA9ICdCSVRDT0lOJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdXYWl0IGZvciBUUk0gc2NyZWVuaW5nIG9uIGluYm91bmQgdHJhbnNhY3Rpb25zJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGlzX2RlZmF1bHQgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2JlZm9yZSA9IDE3MzU2ODk2MDAwMDAsIAogICAgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hZnRlciA9IDE3MDQwNjcyMDAwMDAsIAogICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnV0FJVCcsICkKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rUG9saWN5UmVzcG9uc2UoCiAgICAgICAgICAgICAgICBwcmVfc2NyZWVuaW5nX3J1bGVzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJlX3NjcmVlbmluZ19ydWxlXzIuVFJMaW5rUHJlU2NyZWVuaW5nUnVsZS0yKAogICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pZCA9ICdjdXN0XzEyM2FiYycsIAogICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsIAogICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2Vfc3ViX3R5cGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzID0gJzB4MTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3OCcsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXN0X3R5cGUgPSAnRVhURVJOQUxfV0FMTEVUJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Rfc3ViX3R5cGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcweGFiY2RlZmFiY2RlZmFiY2RlZmFiY2RlZmFiY2RlZmFiY2RlZmFiY2QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXN0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldCA9ICdCVEMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmFzZV9hc3NldCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hbW91bnRfMi5UUkxpbmtBbW91bnQtMigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hbW91bnRfcmFuZ2UuVFJMaW5rQW1vdW50UmFuZ2UoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluID0gJzEwMDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXggPSAnMTAwMDAwJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeSA9ICdVU0QnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmV0d29ya19wcm90b2NvbCA9ICdCSVRDT0lOJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdTY3JlZW4gbGFyZ2UgQlRDIG91dGJvdW5kIHRyYW5zYWN0aW9ucyB0byBleHRlcm5hbCB3YWxsZXRzJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGlzX2RlZmF1bHQgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdTQ1JFRU4nLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHBvc3Rfc2NyZWVuaW5nX3J1bGVzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcG9zdF9zY3JlZW5pbmdfcnVsZV8yLlRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlLTIoCiAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX2lkID0gJ2N1c3RfMTIzYWJjJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdPVVRCT1VORCcsIAogICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VfdHlwZSA9ICdFWFRFUk5BTF9XQUxMRVQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX3N1Yl90eXBlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VfYWRkcmVzcyA9ICcweDk4NzY1NDMyMTBmZWRjYmE5ODc2NTQzMjEwZmVkY2JhOTg3NjU0MzInLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF90eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9zdWJfdHlwZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9hZGRyZXNzID0gJzB4MTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3OCcsIAogICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0ID0gJ0VUSCcsIAogICAgICAgICAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Ftb3VudF8yLlRSTGlua0Ftb3VudC0yKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Ftb3VudF9yYW5nZS5UUkxpbmtBbW91bnRSYW5nZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW4gPSAnMTAwMCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heCA9ICcxMDAwMDAnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5ID0gJ1VTRCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICBuZXR3b3JrX3Byb3RvY29sID0gJ0VUSEVSRVVNJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdBY2NlcHQgdHJhbnNhY3Rpb25zIHdpdGggVFJNIGFwcHJvdmFsIGFmdGVyIEphbnVhcnkgMjAyNCcsIAogICAgICAgICAgICAgICAgICAgICAgICBpc19kZWZhdWx0ID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlcl9pZGVudCA9ICd0cm0tcHJvdmlkZXItMScsIAogICAgICAgICAgICAgICAgICAgICAgICB0cm1fc3RhdHVzID0gJ0FDQ0VQVEVEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2JlZm9yZSA9IDE3MzU2ODk2MDAwMDAsIAogICAgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hZnRlciA9IDE3MDQwNjcyMDAwMDAsIAogICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUNDRVBUJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBtaXNzaW5nX3RybV9ydWxlcyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX21pc3NpbmdfdHJtX3J1bGVfMi5UUkxpbmtNaXNzaW5nVHJtUnVsZS0yKAogICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pZCA9ICdjdXN0XzEyM2FiYycsIAogICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX3R5cGUgPSAnRVhURVJOQUxfV0FMTEVUJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9zdWJfdHlwZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX2FkZHJlc3MgPSAnMHhhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Rfc3ViX3R5cGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcweDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWInLCAKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXN0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldCA9ICdCVEMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmFzZV9hc3NldCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hbW91bnRfMi5UUkxpbmtBbW91bnQtMigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hbW91bnRfcmFuZ2UuVFJMaW5rQW1vdW50UmFuZ2UoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluID0gJzEwMDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXggPSAnMTAwMDAwJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeSA9ICdVU0QnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmV0d29ya19wcm90b2NvbCA9ICdCSVRDT0lOJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9ICdUUkFOU0ZFUicsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdXYWl0IGZvciBUUk0gc2NyZWVuaW5nIG9uIGluYm91bmQgdHJhbnNhY3Rpb25zJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGlzX2RlZmF1bHQgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2JlZm9yZSA9IDE3MzU2ODk2MDAwMDAsIAogICAgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hZnRlciA9IDE3MDQwNjcyMDAwMDAsIAogICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnV0FJVCcsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua1BvbGljeVJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rUG9saWN5UmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_post_screening_action.py b/test/test_tr_link_post_screening_action.py index 3e64b3bd..999a3c34 100644 --- a/test/test_tr_link_post_screening_action.py +++ b/test/test_tr_link_post_screening_action.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_post_screening_action import TRLinkPostScreeningAction - - -class TestTRLinkPostScreeningAction(unittest.TestCase): - """TRLinkPostScreeningAction unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTRLinkPostScreeningAction(self): - """Test TRLinkPostScreeningAction""" - # inst = TRLinkPostScreeningAction() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcG9zdF9zY3JlZW5pbmdfYWN0aW9uIGltcG9ydCBUUkxpbmtQb3N0U2NyZWVuaW5nQWN0aW9uCgoKY2xhc3MgVGVzdFRSTGlua1Bvc3RTY3JlZW5pbmdBY3Rpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rUG9zdFNjcmVlbmluZ0FjdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RUUkxpbmtQb3N0U2NyZWVuaW5nQWN0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rUG9zdFNjcmVlbmluZ0FjdGlvbiIiIgogICAgICAgICMgaW5zdCA9IFRSTGlua1Bvc3RTY3JlZW5pbmdBY3Rpb24oKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tr_link_post_screening_rule.py b/test/test_tr_link_post_screening_rule.py index 93269c32..974262ef 100644 --- a/test/test_tr_link_post_screening_rule.py +++ b/test/test_tr_link_post_screening_rule.py @@ -1,80 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_post_screening_rule import TRLinkPostScreeningRule - - -class TestTRLinkPostScreeningRule(unittest.TestCase): - """TRLinkPostScreeningRule unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkPostScreeningRule: - """Test TRLinkPostScreeningRule - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkPostScreeningRule` - """ - model = TRLinkPostScreeningRule() - if include_optional: - return TRLinkPostScreeningRule( - customer_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - direction = 'OUTBOUND', - source_type = 'VAULT_ACCOUNT', - source_sub_type = 'INTERNAL', - source_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = 'INTERNAL', - dest_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - source_id = '1', - dest_id = '1', - asset = 'BTC', - base_asset = 'USD', - amount = fireblocks.models.tr_link_amount.TRLinkAmount( - range = fireblocks.models.amount_range_min_max.AmountRangeMinMax( - min = '100', - max = '10000', ), - currency = 'USD', ), - network_protocol = 'BITCOIN', - operation = 'TRANSFER', - description = '', - is_default = True, - provider_ident = 'sumsub', - trm_status = 'ACCEPTED', - valid_before = 1672531200000, - valid_after = 1640995200000, - action = 'ACCEPT' - ) - else: - return TRLinkPostScreeningRule( - action = 'ACCEPT', - ) - """ - - def testTRLinkPostScreeningRule(self): - """Test TRLinkPostScreeningRule""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcG9zdF9zY3JlZW5pbmdfcnVsZSBpbXBvcnQgVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUKCgpjbGFzcyBUZXN0VFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlOgogICAgICAgICIiIlRlc3QgVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlKAogICAgICAgICAgICAgICAgY3VzdG9tZXJfaWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywKICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdPVVRCT1VORCcsCiAgICAgICAgICAgICAgICBzb3VyY2VfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIHNvdXJjZV9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsCiAgICAgICAgICAgICAgICBzb3VyY2VfYWRkcmVzcyA9ICcxQTF6UDFlUDVRR2VmaTJETVBUZlRMNVNMbXY3RGl2Zk5hJywKICAgICAgICAgICAgICAgIGRlc3RfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIGRlc3Rfc3ViX3R5cGUgPSAnSU5URVJOQUwnLAogICAgICAgICAgICAgICAgZGVzdF9hZGRyZXNzID0gJzFBMXpQMWVQNVFHZWZpMkRNUFRmVEw1U0xtdjdEaXZmTmEnLAogICAgICAgICAgICAgICAgc291cmNlX2lkID0gJzEnLAogICAgICAgICAgICAgICAgZGVzdF9pZCA9ICcxJywKICAgICAgICAgICAgICAgIGFzc2V0ID0gJ0JUQycsCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gJ1VTRCcsCiAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Ftb3VudC5UUkxpbmtBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfcmFuZ2VfbWluX21heC5BbW91bnRSYW5nZU1pbk1heCgKICAgICAgICAgICAgICAgICAgICAgICAgbWluID0gJzEwMCcsIAogICAgICAgICAgICAgICAgICAgICAgICBtYXggPSAnMTAwMDAnLCApLCAKICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeSA9ICdVU0QnLCApLAogICAgICAgICAgICAgICAgbmV0d29ya19wcm90b2NvbCA9ICdCSVRDT0lOJywKICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9ICdUUkFOU0ZFUicsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICcnLAogICAgICAgICAgICAgICAgaXNfZGVmYXVsdCA9IFRydWUsCiAgICAgICAgICAgICAgICBwcm92aWRlcl9pZGVudCA9ICdzdW1zdWInLAogICAgICAgICAgICAgICAgdHJtX3N0YXR1cyA9ICdBQ0NFUFRFRCcsCiAgICAgICAgICAgICAgICB2YWxpZF9iZWZvcmUgPSAxNjcyNTMxMjAwMDAwLAogICAgICAgICAgICAgICAgdmFsaWRfYWZ0ZXIgPSAxNjQwOTk1MjAwMDAwLAogICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FDQ0VQVCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZSgKICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdBQ0NFUFQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_post_screening_rule2.py b/test/test_tr_link_post_screening_rule2.py index e22d0b49..9b15d5b0 100644 --- a/test/test_tr_link_post_screening_rule2.py +++ b/test/test_tr_link_post_screening_rule2.py @@ -1,80 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_post_screening_rule2 import TRLinkPostScreeningRule2 - - -class TestTRLinkPostScreeningRule2(unittest.TestCase): - """TRLinkPostScreeningRule2 unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkPostScreeningRule2: - """Test TRLinkPostScreeningRule2 - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkPostScreeningRule2` - """ - model = TRLinkPostScreeningRule2() - if include_optional: - return TRLinkPostScreeningRule2( - customer_id = 'cust_123abc', - direction = 'OUTBOUND', - source_type = 'EXTERNAL_WALLET', - source_sub_type = '', - source_address = '0x9876543210fedcba9876543210fedcba98765432', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = '', - dest_address = '0x1234567890abcdef1234567890abcdef12345678', - source_id = '', - dest_id = '', - asset = 'ETH', - base_asset = '', - amount = fireblocks.models.tr_link_amount_2.TRLinkAmount-2( - range = fireblocks.models.tr_link_amount_range.TRLinkAmountRange( - min = '1000', - max = '100000', ), - currency = 'USD', ), - network_protocol = 'ETHEREUM', - operation = 'TRANSFER', - description = 'Accept transactions with TRM approval after January 2024', - is_default = False, - provider_ident = 'trm-provider-1', - trm_status = 'ACCEPTED', - valid_before = 1735689600000, - valid_after = 1704067200000, - action = 'ACCEPT' - ) - else: - return TRLinkPostScreeningRule2( - action = 'ACCEPT', - ) - """ - - def testTRLinkPostScreeningRule2(self): - """Test TRLinkPostScreeningRule2""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcG9zdF9zY3JlZW5pbmdfcnVsZTIgaW1wb3J0IFRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlMgoKCmNsYXNzIFRlc3RUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZTIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUyIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZTI6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZTIKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUyYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUyKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUyKAogICAgICAgICAgICAgICAgY3VzdG9tZXJfaWQgPSAnY3VzdF8xMjNhYmMnLAogICAgICAgICAgICAgICAgZGlyZWN0aW9uID0gJ09VVEJPVU5EJywKICAgICAgICAgICAgICAgIHNvdXJjZV90eXBlID0gJ0VYVEVSTkFMX1dBTExFVCcsCiAgICAgICAgICAgICAgICBzb3VyY2Vfc3ViX3R5cGUgPSAnJywKICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzID0gJzB4OTg3NjU0MzIxMGZlZGNiYTk4NzY1NDMyMTBmZWRjYmE5ODc2NTQzMicsCiAgICAgICAgICAgICAgICBkZXN0X3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsCiAgICAgICAgICAgICAgICBkZXN0X3N1Yl90eXBlID0gJycsCiAgICAgICAgICAgICAgICBkZXN0X2FkZHJlc3MgPSAnMHgxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4JywKICAgICAgICAgICAgICAgIHNvdXJjZV9pZCA9ICcnLAogICAgICAgICAgICAgICAgZGVzdF9pZCA9ICcnLAogICAgICAgICAgICAgICAgYXNzZXQgPSAnRVRIJywKICAgICAgICAgICAgICAgIGJhc2VfYXNzZXQgPSAnJywKICAgICAgICAgICAgICAgIGFtb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYW1vdW50XzIuVFJMaW5rQW1vdW50LTIoCiAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Ftb3VudF9yYW5nZS5UUkxpbmtBbW91bnRSYW5nZSgKICAgICAgICAgICAgICAgICAgICAgICAgbWluID0gJzEwMDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWF4ID0gJzEwMDAwMCcsICksIAogICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5ID0gJ1VTRCcsICksCiAgICAgICAgICAgICAgICBuZXR3b3JrX3Byb3RvY29sID0gJ0VUSEVSRVVNJywKICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9ICdUUkFOU0ZFUicsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdBY2NlcHQgdHJhbnNhY3Rpb25zIHdpdGggVFJNIGFwcHJvdmFsIGFmdGVyIEphbnVhcnkgMjAyNCcsCiAgICAgICAgICAgICAgICBpc19kZWZhdWx0ID0gRmFsc2UsCiAgICAgICAgICAgICAgICBwcm92aWRlcl9pZGVudCA9ICd0cm0tcHJvdmlkZXItMScsCiAgICAgICAgICAgICAgICB0cm1fc3RhdHVzID0gJ0FDQ0VQVEVEJywKICAgICAgICAgICAgICAgIHZhbGlkX2JlZm9yZSA9IDE3MzU2ODk2MDAwMDAsCiAgICAgICAgICAgICAgICB2YWxpZF9hZnRlciA9IDE3MDQwNjcyMDAwMDAsCiAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUNDRVBUJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlMigKICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdBQ0NFUFQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlMihzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlMiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_pre_screening_action.py b/test/test_tr_link_pre_screening_action.py index 87c885cf..3d87f31e 100644 --- a/test/test_tr_link_pre_screening_action.py +++ b/test/test_tr_link_pre_screening_action.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_pre_screening_action import TRLinkPreScreeningAction - - -class TestTRLinkPreScreeningAction(unittest.TestCase): - """TRLinkPreScreeningAction unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTRLinkPreScreeningAction(self): - """Test TRLinkPreScreeningAction""" - # inst = TRLinkPreScreeningAction() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJlX3NjcmVlbmluZ19hY3Rpb24gaW1wb3J0IFRSTGlua1ByZVNjcmVlbmluZ0FjdGlvbgoKCmNsYXNzIFRlc3RUUkxpbmtQcmVTY3JlZW5pbmdBY3Rpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rUHJlU2NyZWVuaW5nQWN0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdFRSTGlua1ByZVNjcmVlbmluZ0FjdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua1ByZVNjcmVlbmluZ0FjdGlvbiIiIgogICAgICAgICMgaW5zdCA9IFRSTGlua1ByZVNjcmVlbmluZ0FjdGlvbigpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_pre_screening_action2.py b/test/test_tr_link_pre_screening_action2.py index 498f81af..65982aa5 100644 --- a/test/test_tr_link_pre_screening_action2.py +++ b/test/test_tr_link_pre_screening_action2.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_pre_screening_action2 import TRLinkPreScreeningAction2 - - -class TestTRLinkPreScreeningAction2(unittest.TestCase): - """TRLinkPreScreeningAction2 unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTRLinkPreScreeningAction2(self): - """Test TRLinkPreScreeningAction2""" - # inst = TRLinkPreScreeningAction2() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJlX3NjcmVlbmluZ19hY3Rpb24yIGltcG9ydCBUUkxpbmtQcmVTY3JlZW5pbmdBY3Rpb24yCgoKY2xhc3MgVGVzdFRSTGlua1ByZVNjcmVlbmluZ0FjdGlvbjIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rUHJlU2NyZWVuaW5nQWN0aW9uMiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RUUkxpbmtQcmVTY3JlZW5pbmdBY3Rpb24yKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rUHJlU2NyZWVuaW5nQWN0aW9uMiIiIgogICAgICAgICMgaW5zdCA9IFRSTGlua1ByZVNjcmVlbmluZ0FjdGlvbjIoKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tr_link_pre_screening_action_enum.py b/test/test_tr_link_pre_screening_action_enum.py index 7c0965cf..354336e4 100644 --- a/test/test_tr_link_pre_screening_action_enum.py +++ b/test/test_tr_link_pre_screening_action_enum.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_pre_screening_action_enum import ( - TRLinkPreScreeningActionEnum, -) - - -class TestTRLinkPreScreeningActionEnum(unittest.TestCase): - """TRLinkPreScreeningActionEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTRLinkPreScreeningActionEnum(self): - """Test TRLinkPreScreeningActionEnum""" - # inst = TRLinkPreScreeningActionEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJlX3NjcmVlbmluZ19hY3Rpb25fZW51bSBpbXBvcnQgKAogICAgVFJMaW5rUHJlU2NyZWVuaW5nQWN0aW9uRW51bSwKKQoKCmNsYXNzIFRlc3RUUkxpbmtQcmVTY3JlZW5pbmdBY3Rpb25FbnVtKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua1ByZVNjcmVlbmluZ0FjdGlvbkVudW0gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0VFJMaW5rUHJlU2NyZWVuaW5nQWN0aW9uRW51bShzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua1ByZVNjcmVlbmluZ0FjdGlvbkVudW0iIiIKICAgICAgICAjIGluc3QgPSBUUkxpbmtQcmVTY3JlZW5pbmdBY3Rpb25FbnVtKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_pre_screening_rule.py b/test/test_tr_link_pre_screening_rule.py index 6b26eab6..4de92574 100644 --- a/test/test_tr_link_pre_screening_rule.py +++ b/test/test_tr_link_pre_screening_rule.py @@ -1,76 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_pre_screening_rule import TRLinkPreScreeningRule - - -class TestTRLinkPreScreeningRule(unittest.TestCase): - """TRLinkPreScreeningRule unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkPreScreeningRule: - """Test TRLinkPreScreeningRule - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkPreScreeningRule` - """ - model = TRLinkPreScreeningRule() - if include_optional: - return TRLinkPreScreeningRule( - customer_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - direction = 'OUTBOUND', - source_type = 'VAULT_ACCOUNT', - source_sub_type = 'INTERNAL', - source_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = 'INTERNAL', - dest_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - source_id = '1', - dest_id = '1', - asset = 'BTC', - base_asset = 'USD', - amount = fireblocks.models.tr_link_amount.TRLinkAmount( - range = fireblocks.models.amount_range_min_max.AmountRangeMinMax( - min = '100', - max = '10000', ), - currency = 'USD', ), - network_protocol = 'BITCOIN', - operation = 'TRANSFER', - description = '', - is_default = True, - action = 'SCREEN' - ) - else: - return TRLinkPreScreeningRule( - action = 'SCREEN', - ) - """ - - def testTRLinkPreScreeningRule(self): - """Test TRLinkPreScreeningRule""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJlX3NjcmVlbmluZ19ydWxlIGltcG9ydCBUUkxpbmtQcmVTY3JlZW5pbmdSdWxlCgoKY2xhc3MgVGVzdFRSTGlua1ByZVNjcmVlbmluZ1J1bGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rUHJlU2NyZWVuaW5nUnVsZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVFJMaW5rUHJlU2NyZWVuaW5nUnVsZToKICAgICAgICAiIiJUZXN0IFRSTGlua1ByZVNjcmVlbmluZ1J1bGUKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rUHJlU2NyZWVuaW5nUnVsZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRSTGlua1ByZVNjcmVlbmluZ1J1bGUoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtQcmVTY3JlZW5pbmdSdWxlKAogICAgICAgICAgICAgICAgY3VzdG9tZXJfaWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywKICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdPVVRCT1VORCcsCiAgICAgICAgICAgICAgICBzb3VyY2VfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIHNvdXJjZV9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsCiAgICAgICAgICAgICAgICBzb3VyY2VfYWRkcmVzcyA9ICcxQTF6UDFlUDVRR2VmaTJETVBUZlRMNVNMbXY3RGl2Zk5hJywKICAgICAgICAgICAgICAgIGRlc3RfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIGRlc3Rfc3ViX3R5cGUgPSAnSU5URVJOQUwnLAogICAgICAgICAgICAgICAgZGVzdF9hZGRyZXNzID0gJzFBMXpQMWVQNVFHZWZpMkRNUFRmVEw1U0xtdjdEaXZmTmEnLAogICAgICAgICAgICAgICAgc291cmNlX2lkID0gJzEnLAogICAgICAgICAgICAgICAgZGVzdF9pZCA9ICcxJywKICAgICAgICAgICAgICAgIGFzc2V0ID0gJ0JUQycsCiAgICAgICAgICAgICAgICBiYXNlX2Fzc2V0ID0gJ1VTRCcsCiAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Ftb3VudC5UUkxpbmtBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfcmFuZ2VfbWluX21heC5BbW91bnRSYW5nZU1pbk1heCgKICAgICAgICAgICAgICAgICAgICAgICAgbWluID0gJzEwMCcsIAogICAgICAgICAgICAgICAgICAgICAgICBtYXggPSAnMTAwMDAnLCApLCAKICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeSA9ICdVU0QnLCApLAogICAgICAgICAgICAgICAgbmV0d29ya19wcm90b2NvbCA9ICdCSVRDT0lOJywKICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9ICdUUkFOU0ZFUicsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICcnLAogICAgICAgICAgICAgICAgaXNfZGVmYXVsdCA9IFRydWUsCiAgICAgICAgICAgICAgICBhY3Rpb24gPSAnU0NSRUVOJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRSTGlua1ByZVNjcmVlbmluZ1J1bGUoCiAgICAgICAgICAgICAgICBhY3Rpb24gPSAnU0NSRUVOJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtQcmVTY3JlZW5pbmdSdWxlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rUHJlU2NyZWVuaW5nUnVsZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_pre_screening_rule2.py b/test/test_tr_link_pre_screening_rule2.py index a7658bc1..e462f9e2 100644 --- a/test/test_tr_link_pre_screening_rule2.py +++ b/test/test_tr_link_pre_screening_rule2.py @@ -1,76 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_pre_screening_rule2 import TRLinkPreScreeningRule2 - - -class TestTRLinkPreScreeningRule2(unittest.TestCase): - """TRLinkPreScreeningRule2 unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkPreScreeningRule2: - """Test TRLinkPreScreeningRule2 - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkPreScreeningRule2` - """ - model = TRLinkPreScreeningRule2() - if include_optional: - return TRLinkPreScreeningRule2( - customer_id = 'cust_123abc', - direction = 'OUTBOUND', - source_type = 'VAULT_ACCOUNT', - source_sub_type = '', - source_address = '0x1234567890abcdef1234567890abcdef12345678', - dest_type = 'EXTERNAL_WALLET', - dest_sub_type = '', - dest_address = '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd', - source_id = '', - dest_id = '', - asset = 'BTC', - base_asset = '', - amount = fireblocks.models.tr_link_amount_2.TRLinkAmount-2( - range = fireblocks.models.tr_link_amount_range.TRLinkAmountRange( - min = '1000', - max = '100000', ), - currency = 'USD', ), - network_protocol = 'BITCOIN', - operation = 'TRANSFER', - description = 'Screen large BTC outbound transactions to external wallets', - is_default = False, - action = 'SCREEN' - ) - else: - return TRLinkPreScreeningRule2( - action = 'SCREEN', - ) - """ - - def testTRLinkPreScreeningRule2(self): - """Test TRLinkPreScreeningRule2""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJlX3NjcmVlbmluZ19ydWxlMiBpbXBvcnQgVFJMaW5rUHJlU2NyZWVuaW5nUnVsZTIKCgpjbGFzcyBUZXN0VFJMaW5rUHJlU2NyZWVuaW5nUnVsZTIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rUHJlU2NyZWVuaW5nUnVsZTIgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRSTGlua1ByZVNjcmVlbmluZ1J1bGUyOgogICAgICAgICIiIlRlc3QgVFJMaW5rUHJlU2NyZWVuaW5nUnVsZTIKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rUHJlU2NyZWVuaW5nUnVsZTJgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtQcmVTY3JlZW5pbmdSdWxlMigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRSTGlua1ByZVNjcmVlbmluZ1J1bGUyKAogICAgICAgICAgICAgICAgY3VzdG9tZXJfaWQgPSAnY3VzdF8xMjNhYmMnLAogICAgICAgICAgICAgICAgZGlyZWN0aW9uID0gJ09VVEJPVU5EJywKICAgICAgICAgICAgICAgIHNvdXJjZV90eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLAogICAgICAgICAgICAgICAgc291cmNlX3N1Yl90eXBlID0gJycsCiAgICAgICAgICAgICAgICBzb3VyY2VfYWRkcmVzcyA9ICcweDEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2NzgnLAogICAgICAgICAgICAgICAgZGVzdF90eXBlID0gJ0VYVEVSTkFMX1dBTExFVCcsCiAgICAgICAgICAgICAgICBkZXN0X3N1Yl90eXBlID0gJycsCiAgICAgICAgICAgICAgICBkZXN0X2FkZHJlc3MgPSAnMHhhYmNkZWZhYmNkZWZhYmNkZWZhYmNkZWZhYmNkZWZhYmNkZWZhYmNkJywKICAgICAgICAgICAgICAgIHNvdXJjZV9pZCA9ICcnLAogICAgICAgICAgICAgICAgZGVzdF9pZCA9ICcnLAogICAgICAgICAgICAgICAgYXNzZXQgPSAnQlRDJywKICAgICAgICAgICAgICAgIGJhc2VfYXNzZXQgPSAnJywKICAgICAgICAgICAgICAgIGFtb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYW1vdW50XzIuVFJMaW5rQW1vdW50LTIoCiAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Ftb3VudF9yYW5nZS5UUkxpbmtBbW91bnRSYW5nZSgKICAgICAgICAgICAgICAgICAgICAgICAgbWluID0gJzEwMDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWF4ID0gJzEwMDAwMCcsICksIAogICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5ID0gJ1VTRCcsICksCiAgICAgICAgICAgICAgICBuZXR3b3JrX3Byb3RvY29sID0gJ0JJVENPSU4nLAogICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gJ1RSQU5TRkVSJywKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1NjcmVlbiBsYXJnZSBCVEMgb3V0Ym91bmQgdHJhbnNhY3Rpb25zIHRvIGV4dGVybmFsIHdhbGxldHMnLAogICAgICAgICAgICAgICAgaXNfZGVmYXVsdCA9IEZhbHNlLAogICAgICAgICAgICAgICAgYWN0aW9uID0gJ1NDUkVFTicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtQcmVTY3JlZW5pbmdSdWxlMigKICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdTQ1JFRU4nLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua1ByZVNjcmVlbmluZ1J1bGUyKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rUHJlU2NyZWVuaW5nUnVsZTIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_provider_data.py b/test/test_tr_link_provider_data.py index a4123ac9..0a192331 100644 --- a/test/test_tr_link_provider_data.py +++ b/test/test_tr_link_provider_data.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_provider_data import TRLinkProviderData - - -class TestTRLinkProviderData(unittest.TestCase): - """TRLinkProviderData unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkProviderData: - """Test TRLinkProviderData - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkProviderData` - """ - model = TRLinkProviderData() - if include_optional: - return TRLinkProviderData( - provider = 'notabene', - data = {"vasp_did":"did:ethr:0x1234567890abcdef","compliance_status":"verified"} - ) - else: - return TRLinkProviderData( - ) - """ - - def testTRLinkProviderData(self): - """Test TRLinkProviderData""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJvdmlkZXJfZGF0YSBpbXBvcnQgVFJMaW5rUHJvdmlkZXJEYXRhCgoKY2xhc3MgVGVzdFRSTGlua1Byb3ZpZGVyRGF0YSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUUkxpbmtQcm92aWRlckRhdGEgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRSTGlua1Byb3ZpZGVyRGF0YToKICAgICAgICAiIiJUZXN0IFRSTGlua1Byb3ZpZGVyRGF0YQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUUkxpbmtQcm92aWRlckRhdGFgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtQcm92aWRlckRhdGEoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtQcm92aWRlckRhdGEoCiAgICAgICAgICAgICAgICBwcm92aWRlciA9ICdub3RhYmVuZScsCiAgICAgICAgICAgICAgICBkYXRhID0geyJ2YXNwX2RpZCI6ImRpZDpldGhyOjB4MTIzNDU2Nzg5MGFiY2RlZiIsImNvbXBsaWFuY2Vfc3RhdHVzIjoidmVyaWZpZWQifQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRSTGlua1Byb3ZpZGVyRGF0YSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtQcm92aWRlckRhdGEoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtQcm92aWRlckRhdGEiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_provider_result.py b/test/test_tr_link_provider_result.py index 492b4d54..bb316ff8 100644 --- a/test/test_tr_link_provider_result.py +++ b/test/test_tr_link_provider_result.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_provider_result import TRLinkProviderResult - - -class TestTRLinkProviderResult(unittest.TestCase): - """TRLinkProviderResult unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkProviderResult: - """Test TRLinkProviderResult - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkProviderResult` - """ - model = TRLinkProviderResult() - if include_optional: - return TRLinkProviderResult( - provider_response = None - ) - else: - return TRLinkProviderResult( - ) - """ - - def testTRLinkProviderResult(self): - """Test TRLinkProviderResult""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJvdmlkZXJfcmVzdWx0IGltcG9ydCBUUkxpbmtQcm92aWRlclJlc3VsdAoKCmNsYXNzIFRlc3RUUkxpbmtQcm92aWRlclJlc3VsdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUUkxpbmtQcm92aWRlclJlc3VsdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVFJMaW5rUHJvdmlkZXJSZXN1bHQ6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtQcm92aWRlclJlc3VsdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUUkxpbmtQcm92aWRlclJlc3VsdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRSTGlua1Byb3ZpZGVyUmVzdWx0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rUHJvdmlkZXJSZXN1bHQoCiAgICAgICAgICAgICAgICBwcm92aWRlcl9yZXNwb25zZSA9IE5vbmUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtQcm92aWRlclJlc3VsdCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtQcm92aWRlclJlc3VsdChzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua1Byb3ZpZGVyUmVzdWx0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tr_link_provider_result_with_rule.py b/test/test_tr_link_provider_result_with_rule.py index 3339b0c7..311dc53e 100644 --- a/test/test_tr_link_provider_result_with_rule.py +++ b/test/test_tr_link_provider_result_with_rule.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_provider_result_with_rule import ( - TRLinkProviderResultWithRule, -) - - -class TestTRLinkProviderResultWithRule(unittest.TestCase): - """TRLinkProviderResultWithRule unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkProviderResultWithRule: - """Test TRLinkProviderResultWithRule - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkProviderResultWithRule` - """ - model = TRLinkProviderResultWithRule() - if include_optional: - return TRLinkProviderResultWithRule( - provider_response = None, - matched_rule = fireblocks.models.tr_link_post_screening_rule.TRLinkPostScreeningRule() - ) - else: - return TRLinkProviderResultWithRule( - ) - """ - - def testTRLinkProviderResultWithRule(self): - """Test TRLinkProviderResultWithRule""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJvdmlkZXJfcmVzdWx0X3dpdGhfcnVsZSBpbXBvcnQgKAogICAgVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZSwKKQoKCmNsYXNzIFRlc3RUUkxpbmtQcm92aWRlclJlc3VsdFdpdGhSdWxlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua1Byb3ZpZGVyUmVzdWx0V2l0aFJ1bGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRSTGlua1Byb3ZpZGVyUmVzdWx0V2l0aFJ1bGU6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtQcm92aWRlclJlc3VsdFdpdGhSdWxlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRSTGlua1Byb3ZpZGVyUmVzdWx0V2l0aFJ1bGVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtQcm92aWRlclJlc3VsdFdpdGhSdWxlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZSgKICAgICAgICAgICAgICAgIHByb3ZpZGVyX3Jlc3BvbnNlID0gTm9uZSwKICAgICAgICAgICAgICAgIG1hdGNoZWRfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcG9zdF9zY3JlZW5pbmdfcnVsZS5UUkxpbmtQb3N0U2NyZWVuaW5nUnVsZSgpCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtQcm92aWRlclJlc3VsdFdpdGhSdWxlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_provider_result_with_rule2.py b/test/test_tr_link_provider_result_with_rule2.py index e6c3b3b5..c7c1a109 100644 --- a/test/test_tr_link_provider_result_with_rule2.py +++ b/test/test_tr_link_provider_result_with_rule2.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_provider_result_with_rule2 import ( - TRLinkProviderResultWithRule2, -) - - -class TestTRLinkProviderResultWithRule2(unittest.TestCase): - """TRLinkProviderResultWithRule2 unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkProviderResultWithRule2: - """Test TRLinkProviderResultWithRule2 - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkProviderResultWithRule2` - """ - model = TRLinkProviderResultWithRule2() - if include_optional: - return TRLinkProviderResultWithRule2( - provider_response = None, - matched_rule = fireblocks.models.screening_tr_link_post_screening_rule.ScreeningTRLinkPostScreeningRule() - ) - else: - return TRLinkProviderResultWithRule2( - ) - """ - - def testTRLinkProviderResultWithRule2(self): - """Test TRLinkProviderResultWithRule2""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJvdmlkZXJfcmVzdWx0X3dpdGhfcnVsZTIgaW1wb3J0ICgKICAgIFRSTGlua1Byb3ZpZGVyUmVzdWx0V2l0aFJ1bGUyLAopCgoKY2xhc3MgVGVzdFRSTGlua1Byb3ZpZGVyUmVzdWx0V2l0aFJ1bGUyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua1Byb3ZpZGVyUmVzdWx0V2l0aFJ1bGUyIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUUkxpbmtQcm92aWRlclJlc3VsdFdpdGhSdWxlMjoKICAgICAgICAiIiJUZXN0IFRSTGlua1Byb3ZpZGVyUmVzdWx0V2l0aFJ1bGUyCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRSTGlua1Byb3ZpZGVyUmVzdWx0V2l0aFJ1bGUyYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZTIoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtQcm92aWRlclJlc3VsdFdpdGhSdWxlMigKICAgICAgICAgICAgICAgIHByb3ZpZGVyX3Jlc3BvbnNlID0gTm9uZSwKICAgICAgICAgICAgICAgIG1hdGNoZWRfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cl9saW5rX3Bvc3Rfc2NyZWVuaW5nX3J1bGUuU2NyZWVuaW5nVFJMaW5rUG9zdFNjcmVlbmluZ1J1bGUoKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRSTGlua1Byb3ZpZGVyUmVzdWx0V2l0aFJ1bGUyKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua1Byb3ZpZGVyUmVzdWx0V2l0aFJ1bGUyKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZTIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_public_asset_info.py b/test/test_tr_link_public_asset_info.py index 2ea743ac..3c74ca11 100644 --- a/test/test_tr_link_public_asset_info.py +++ b/test/test_tr_link_public_asset_info.py @@ -1,66 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_public_asset_info import TRLinkPublicAssetInfo - - -class TestTRLinkPublicAssetInfo(unittest.TestCase): - """TRLinkPublicAssetInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkPublicAssetInfo: - """Test TRLinkPublicAssetInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkPublicAssetInfo` - """ - model = TRLinkPublicAssetInfo() - if include_optional: - return TRLinkPublicAssetInfo( - id = 'USDC_ETH', - name = 'USD Coin', - type = 'ERC20', - contract_address = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', - native_asset = 'ETH', - decimals = 6, - issuer_address = '0x1234567890abcdef1234567890abcdef12345678' - ) - else: - return TRLinkPublicAssetInfo( - id = 'USDC_ETH', - name = 'USD Coin', - type = 'ERC20', - contract_address = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', - native_asset = 'ETH', - decimals = 6, - ) - """ - - def testTRLinkPublicAssetInfo(self): - """Test TRLinkPublicAssetInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHVibGljX2Fzc2V0X2luZm8gaW1wb3J0IFRSTGlua1B1YmxpY0Fzc2V0SW5mbwoKCmNsYXNzIFRlc3RUUkxpbmtQdWJsaWNBc3NldEluZm8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rUHVibGljQXNzZXRJbmZvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUUkxpbmtQdWJsaWNBc3NldEluZm86CiAgICAgICAgIiIiVGVzdCBUUkxpbmtQdWJsaWNBc3NldEluZm8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rUHVibGljQXNzZXRJbmZvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVFJMaW5rUHVibGljQXNzZXRJbmZvKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rUHVibGljQXNzZXRJbmZvKAogICAgICAgICAgICAgICAgaWQgPSAnVVNEQ19FVEgnLAogICAgICAgICAgICAgICAgbmFtZSA9ICdVU0QgQ29pbicsCiAgICAgICAgICAgICAgICB0eXBlID0gJ0VSQzIwJywKICAgICAgICAgICAgICAgIGNvbnRyYWN0X2FkZHJlc3MgPSAnMHhBMGI4Njk5MWM2MjE4YjM2YzFkMTlENGEyZTlFYjBjRTM2MDZlQjQ4JywKICAgICAgICAgICAgICAgIG5hdGl2ZV9hc3NldCA9ICdFVEgnLAogICAgICAgICAgICAgICAgZGVjaW1hbHMgPSA2LAogICAgICAgICAgICAgICAgaXNzdWVyX2FkZHJlc3MgPSAnMHgxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRSTGlua1B1YmxpY0Fzc2V0SW5mbygKICAgICAgICAgICAgICAgIGlkID0gJ1VTRENfRVRIJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnVVNEIENvaW4nLAogICAgICAgICAgICAgICAgdHlwZSA9ICdFUkMyMCcsCiAgICAgICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzID0gJzB4QTBiODY5OTFjNjIxOGIzNmMxZDE5RDRhMmU5RWIwY0UzNjA2ZUI0OCcsCiAgICAgICAgICAgICAgICBuYXRpdmVfYXNzZXQgPSAnRVRIJywKICAgICAgICAgICAgICAgIGRlY2ltYWxzID0gNiwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtQdWJsaWNBc3NldEluZm8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtQdWJsaWNBc3NldEluZm8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_public_key_response.py b/test/test_tr_link_public_key_response.py index b49dc93f..1a1f34c5 100644 --- a/test/test_tr_link_public_key_response.py +++ b/test/test_tr_link_public_key_response.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_public_key_response import TRLinkPublicKeyResponse - - -class TestTRLinkPublicKeyResponse(unittest.TestCase): - """TRLinkPublicKeyResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkPublicKeyResponse: - """Test TRLinkPublicKeyResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkPublicKeyResponse` - """ - model = TRLinkPublicKeyResponse() - if include_optional: - return TRLinkPublicKeyResponse( - issuer = 'notabene', - public_key = fireblocks.models.tr_link_jwk_public_key.TRLinkJwkPublicKey( - kty = 'RSA', - e = 'AQAB', - use = 'enc', - kid = 'key-12345', - n = 'xGOr-H7A...', ) - ) - else: - return TRLinkPublicKeyResponse( - issuer = 'notabene', - public_key = fireblocks.models.tr_link_jwk_public_key.TRLinkJwkPublicKey( - kty = 'RSA', - e = 'AQAB', - use = 'enc', - kid = 'key-12345', - n = 'xGOr-H7A...', ), - ) - """ - - def testTRLinkPublicKeyResponse(self): - """Test TRLinkPublicKeyResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHVibGljX2tleV9yZXNwb25zZSBpbXBvcnQgVFJMaW5rUHVibGljS2V5UmVzcG9uc2UKCgpjbGFzcyBUZXN0VFJMaW5rUHVibGljS2V5UmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rUHVibGljS2V5UmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRSTGlua1B1YmxpY0tleVJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgVFJMaW5rUHVibGljS2V5UmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rUHVibGljS2V5UmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtQdWJsaWNLZXlSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRSTGlua1B1YmxpY0tleVJlc3BvbnNlKAogICAgICAgICAgICAgICAgaXNzdWVyID0gJ25vdGFiZW5lJywKICAgICAgICAgICAgICAgIHB1YmxpY19rZXkgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2p3a19wdWJsaWNfa2V5LlRSTGlua0p3a1B1YmxpY0tleSgKICAgICAgICAgICAgICAgICAgICBrdHkgPSAnUlNBJywgCiAgICAgICAgICAgICAgICAgICAgZSA9ICdBUUFCJywgCiAgICAgICAgICAgICAgICAgICAgdXNlID0gJ2VuYycsIAogICAgICAgICAgICAgICAgICAgIGtpZCA9ICdrZXktMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICBuID0gJ3hHT3ItSDdBLi4uJywgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRSTGlua1B1YmxpY0tleVJlc3BvbnNlKAogICAgICAgICAgICAgICAgaXNzdWVyID0gJ25vdGFiZW5lJywKICAgICAgICAgICAgICAgIHB1YmxpY19rZXkgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2p3a19wdWJsaWNfa2V5LlRSTGlua0p3a1B1YmxpY0tleSgKICAgICAgICAgICAgICAgICAgICBrdHkgPSAnUlNBJywgCiAgICAgICAgICAgICAgICAgICAgZSA9ICdBUUFCJywgCiAgICAgICAgICAgICAgICAgICAgdXNlID0gJ2VuYycsIAogICAgICAgICAgICAgICAgICAgIGtpZCA9ICdrZXktMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICBuID0gJ3hHT3ItSDdBLi4uJywgKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtQdWJsaWNLZXlSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua1B1YmxpY0tleVJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tr_link_redirect_trm_request.py b/test/test_tr_link_redirect_trm_request.py index 029d426a..91061ca0 100644 --- a/test/test_tr_link_redirect_trm_request.py +++ b/test/test_tr_link_redirect_trm_request.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_redirect_trm_request import TRLinkRedirectTrmRequest - - -class TestTRLinkRedirectTrmRequest(unittest.TestCase): - """TRLinkRedirectTrmRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkRedirectTrmRequest: - """Test TRLinkRedirectTrmRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkRedirectTrmRequest` - """ - model = TRLinkRedirectTrmRequest() - if include_optional: - return TRLinkRedirectTrmRequest( - subsidiary_vasp_id = 'did:ethr:0xabcdef1234567890' - ) - else: - return TRLinkRedirectTrmRequest( - subsidiary_vasp_id = 'did:ethr:0xabcdef1234567890', - ) - """ - - def testTRLinkRedirectTrmRequest(self): - """Test TRLinkRedirectTrmRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcmVkaXJlY3RfdHJtX3JlcXVlc3QgaW1wb3J0IFRSTGlua1JlZGlyZWN0VHJtUmVxdWVzdAoKCmNsYXNzIFRlc3RUUkxpbmtSZWRpcmVjdFRybVJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rUmVkaXJlY3RUcm1SZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUUkxpbmtSZWRpcmVjdFRybVJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtSZWRpcmVjdFRybVJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rUmVkaXJlY3RUcm1SZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVFJMaW5rUmVkaXJlY3RUcm1SZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rUmVkaXJlY3RUcm1SZXF1ZXN0KAogICAgICAgICAgICAgICAgc3Vic2lkaWFyeV92YXNwX2lkID0gJ2RpZDpldGhyOjB4YWJjZGVmMTIzNDU2Nzg5MCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtSZWRpcmVjdFRybVJlcXVlc3QoCiAgICAgICAgICAgICAgICBzdWJzaWRpYXJ5X3Zhc3BfaWQgPSAnZGlkOmV0aHI6MHhhYmNkZWYxMjM0NTY3ODkwJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtSZWRpcmVjdFRybVJlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtSZWRpcmVjdFRybVJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_registration_result.py b/test/test_tr_link_registration_result.py index 0577327c..66ec663d 100644 --- a/test/test_tr_link_registration_result.py +++ b/test/test_tr_link_registration_result.py @@ -1,66 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_registration_result import TRLinkRegistrationResult - - -class TestTRLinkRegistrationResult(unittest.TestCase): - """TRLinkRegistrationResult unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkRegistrationResult: - """Test TRLinkRegistrationResult - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkRegistrationResult` - """ - model = TRLinkRegistrationResult() - if include_optional: - return TRLinkRegistrationResult( - status = 'COMPLETED', - provider = 'SUMSUB', - success = True, - timestamp = 1640995200000, - dest_record_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_short_name = 'ACME Corp', - result = fireblocks.models.tr_link_provider_result.TRLinkProviderResult( - provider_response = fireblocks.models.provider_response.providerResponse(), ), - matched_prescreening_rule = fireblocks.models.tr_link_pre_screening_rule.TRLinkPreScreeningRule() - ) - else: - return TRLinkRegistrationResult( - status = 'COMPLETED', - timestamp = 1640995200000, - ) - """ - - def testTRLinkRegistrationResult(self): - """Test TRLinkRegistrationResult""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcmVnaXN0cmF0aW9uX3Jlc3VsdCBpbXBvcnQgVFJMaW5rUmVnaXN0cmF0aW9uUmVzdWx0CgoKY2xhc3MgVGVzdFRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdDoKICAgICAgICAiIiJUZXN0IFRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHQoCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywKICAgICAgICAgICAgICAgIHByb3ZpZGVyID0gJ1NVTVNVQicsCiAgICAgICAgICAgICAgICBzdWNjZXNzID0gVHJ1ZSwKICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9IDE2NDA5OTUyMDAwMDAsCiAgICAgICAgICAgICAgICBkZXN0X3JlY29yZF9pZCA9ICczZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYnLAogICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCA9ICczZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYnLAogICAgICAgICAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywKICAgICAgICAgICAgICAgIGN1c3RvbWVyX3Nob3J0X25hbWUgPSAnQUNNRSBDb3JwJywKICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJvdmlkZXJfcmVzdWx0LlRSTGlua1Byb3ZpZGVyUmVzdWx0KAogICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyX3Jlc3BvbnNlID0gZmlyZWJsb2Nrcy5tb2RlbHMucHJvdmlkZXJfcmVzcG9uc2UucHJvdmlkZXJSZXNwb25zZSgpLCApLAogICAgICAgICAgICAgICAgbWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJlX3NjcmVlbmluZ19ydWxlLlRSTGlua1ByZVNjcmVlbmluZ1J1bGUoKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdCgKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLAogICAgICAgICAgICAgICAgdGltZXN0YW1wID0gMTY0MDk5NTIwMDAwMCwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_registration_result_full_payload.py b/test/test_tr_link_registration_result_full_payload.py index 4fd8ad9b..c829fc20 100644 --- a/test/test_tr_link_registration_result_full_payload.py +++ b/test/test_tr_link_registration_result_full_payload.py @@ -1,68 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_registration_result_full_payload import ( - TRLinkRegistrationResultFullPayload, -) - - -class TestTRLinkRegistrationResultFullPayload(unittest.TestCase): - """TRLinkRegistrationResultFullPayload unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkRegistrationResultFullPayload: - """Test TRLinkRegistrationResultFullPayload - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkRegistrationResultFullPayload` - """ - model = TRLinkRegistrationResultFullPayload() - if include_optional: - return TRLinkRegistrationResultFullPayload( - status = 'COMPLETED', - provider = 'SUMSUB', - success = True, - timestamp = 1640995200000, - dest_record_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_short_name = 'ACME Corp', - result = fireblocks.models.tr_link_provider_result.TRLinkProviderResult( - provider_response = fireblocks.models.provider_response.providerResponse(), ), - matched_prescreening_rule = fireblocks.models.screening_tr_link_prescreening_rule.ScreeningTRLinkPrescreeningRule() - ) - else: - return TRLinkRegistrationResultFullPayload( - status = 'COMPLETED', - timestamp = 1640995200000, - ) - """ - - def testTRLinkRegistrationResultFullPayload(self): - """Test TRLinkRegistrationResultFullPayload""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcmVnaXN0cmF0aW9uX3Jlc3VsdF9mdWxsX3BheWxvYWQgaW1wb3J0ICgKICAgIFRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkLAopCgoKY2xhc3MgVGVzdFRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZDoKICAgICAgICAiIiJUZXN0IFRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdEZ1bGxQYXlsb2FkYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVFJMaW5rUmVnaXN0cmF0aW9uUmVzdWx0RnVsbFBheWxvYWQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZCgKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdDT01QTEVURUQnLAogICAgICAgICAgICAgICAgcHJvdmlkZXIgPSAnU1VNU1VCJywKICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBUcnVlLAogICAgICAgICAgICAgICAgdGltZXN0YW1wID0gMTY0MDk5NTIwMDAwMCwKICAgICAgICAgICAgICAgIGRlc3RfcmVjb3JkX2lkID0gJzNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNicsCiAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV9tZXNzYWdlX2lkID0gJzNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNicsCiAgICAgICAgICAgICAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCA9ICczZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYnLAogICAgICAgICAgICAgICAgY3VzdG9tZXJfc2hvcnRfbmFtZSA9ICdBQ01FIENvcnAnLAogICAgICAgICAgICAgICAgcmVzdWx0ID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wcm92aWRlcl9yZXN1bHQuVFJMaW5rUHJvdmlkZXJSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJfcmVzcG9uc2UgPSBmaXJlYmxvY2tzLm1vZGVscy5wcm92aWRlcl9yZXNwb25zZS5wcm92aWRlclJlc3BvbnNlKCksICksCiAgICAgICAgICAgICAgICBtYXRjaGVkX3ByZXNjcmVlbmluZ19ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyX2xpbmtfcHJlc2NyZWVuaW5nX3J1bGUuU2NyZWVuaW5nVFJMaW5rUHJlc2NyZWVuaW5nUnVsZSgpCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rUmVnaXN0cmF0aW9uUmVzdWx0RnVsbFBheWxvYWQoCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywKICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9IDE2NDA5OTUyMDAwMDAsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VFJMaW5rUmVnaXN0cmF0aW9uUmVzdWx0RnVsbFBheWxvYWQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtSZWdpc3RyYXRpb25SZXN1bHRGdWxsUGF5bG9hZCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_registration_status.py b/test/test_tr_link_registration_status.py index d14df499..177274d4 100644 --- a/test/test_tr_link_registration_status.py +++ b/test/test_tr_link_registration_status.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_registration_status import TRLinkRegistrationStatus - - -class TestTRLinkRegistrationStatus(unittest.TestCase): - """TRLinkRegistrationStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTRLinkRegistrationStatus(self): - """Test TRLinkRegistrationStatus""" - # inst = TRLinkRegistrationStatus() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcmVnaXN0cmF0aW9uX3N0YXR1cyBpbXBvcnQgVFJMaW5rUmVnaXN0cmF0aW9uU3RhdHVzCgoKY2xhc3MgVGVzdFRSTGlua1JlZ2lzdHJhdGlvblN0YXR1cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUUkxpbmtSZWdpc3RyYXRpb25TdGF0dXMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0VFJMaW5rUmVnaXN0cmF0aW9uU3RhdHVzKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rUmVnaXN0cmF0aW9uU3RhdHVzIiIiCiAgICAgICAgIyBpbnN0ID0gVFJMaW5rUmVnaXN0cmF0aW9uU3RhdHVzKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_registration_status_enum.py b/test/test_tr_link_registration_status_enum.py index 10460e0a..308c646c 100644 --- a/test/test_tr_link_registration_status_enum.py +++ b/test/test_tr_link_registration_status_enum.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_registration_status_enum import ( - TRLinkRegistrationStatusEnum, -) - - -class TestTRLinkRegistrationStatusEnum(unittest.TestCase): - """TRLinkRegistrationStatusEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTRLinkRegistrationStatusEnum(self): - """Test TRLinkRegistrationStatusEnum""" - # inst = TRLinkRegistrationStatusEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcmVnaXN0cmF0aW9uX3N0YXR1c19lbnVtIGltcG9ydCAoCiAgICBUUkxpbmtSZWdpc3RyYXRpb25TdGF0dXNFbnVtLAopCgoKY2xhc3MgVGVzdFRSTGlua1JlZ2lzdHJhdGlvblN0YXR1c0VudW0odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rUmVnaXN0cmF0aW9uU3RhdHVzRW51bSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RUUkxpbmtSZWdpc3RyYXRpb25TdGF0dXNFbnVtKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rUmVnaXN0cmF0aW9uU3RhdHVzRW51bSIiIgogICAgICAgICMgaW5zdCA9IFRSTGlua1JlZ2lzdHJhdGlvblN0YXR1c0VudW0oKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tr_link_result.py b/test/test_tr_link_result.py index f8cb3974..ef84627b 100644 --- a/test/test_tr_link_result.py +++ b/test/test_tr_link_result.py @@ -1,72 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_result import TRLinkResult - - -class TestTRLinkResult(unittest.TestCase): - """TRLinkResult unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkResult: - """Test TRLinkResult - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkResult` - """ - model = TRLinkResult() - if include_optional: - return TRLinkResult( - provider = 'SUMSUB', - timestamp = 1640995200000, - status = 'COMPLETED', - verdict = 'ACCEPT', - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - dest_tag = 'memo_12345', - bypass_reason = 'MANUAL', - details_message = 'Screening completed successfully', - customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_short_name = 'ACME Corp', - travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - result = fireblocks.models.tr_link_provider_result_with_rule.TRLinkProviderResultWithRule( - provider_response = fireblocks.models.provider_response.providerResponse(), - matched_rule = fireblocks.models.tr_link_post_screening_rule.TRLinkPostScreeningRule(), ), - matched_prescreening_rule = fireblocks.models.tr_link_pre_screening_rule.TRLinkPreScreeningRule(), - matched_no_trm_screening_rule = fireblocks.models.tr_link_missing_trm_decision.TRLinkMissingTrmDecision() - ) - else: - return TRLinkResult( - provider = 'SUMSUB', - timestamp = 1640995200000, - status = 'COMPLETED', - ) - """ - - def testTRLinkResult(self): - """Test TRLinkResult""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcmVzdWx0IGltcG9ydCBUUkxpbmtSZXN1bHQKCgpjbGFzcyBUZXN0VFJMaW5rUmVzdWx0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua1Jlc3VsdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVFJMaW5rUmVzdWx0OgogICAgICAgICIiIlRlc3QgVFJMaW5rUmVzdWx0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRSTGlua1Jlc3VsdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRSTGlua1Jlc3VsdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRSTGlua1Jlc3VsdCgKICAgICAgICAgICAgICAgIHByb3ZpZGVyID0gJ1NVTVNVQicsCiAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSAxNjQwOTk1MjAwMDAwLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ0NPTVBMRVRFRCcsCiAgICAgICAgICAgICAgICB2ZXJkaWN0ID0gJ0FDQ0VQVCcsCiAgICAgICAgICAgICAgICBkZXN0X2FkZHJlc3MgPSAnMHhBMmRDMjQ5MEVEMURjQTJEMjE2MTM1MDhmZGIwYzgyZGFFQWIwNzE1JywKICAgICAgICAgICAgICAgIGRlc3RfdGFnID0gJ21lbW9fMTIzNDUnLAogICAgICAgICAgICAgICAgYnlwYXNzX3JlYXNvbiA9ICdNQU5VQUwnLAogICAgICAgICAgICAgICAgZGV0YWlsc19tZXNzYWdlID0gJ1NjcmVlbmluZyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5JywKICAgICAgICAgICAgICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkID0gJzNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNicsCiAgICAgICAgICAgICAgICBjdXN0b21lcl9zaG9ydF9uYW1lID0gJ0FDTUUgQ29ycCcsCiAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV9tZXNzYWdlX2lkID0gJzNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNicsCiAgICAgICAgICAgICAgICByZXN1bHQgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3Byb3ZpZGVyX3Jlc3VsdF93aXRoX3J1bGUuVFJMaW5rUHJvdmlkZXJSZXN1bHRXaXRoUnVsZSgKICAgICAgICAgICAgICAgICAgICBwcm92aWRlcl9yZXNwb25zZSA9IGZpcmVibG9ja3MubW9kZWxzLnByb3ZpZGVyX3Jlc3BvbnNlLnByb3ZpZGVyUmVzcG9uc2UoKSwgCiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wb3N0X3NjcmVlbmluZ19ydWxlLlRSTGlua1Bvc3RTY3JlZW5pbmdSdWxlKCksICksCiAgICAgICAgICAgICAgICBtYXRjaGVkX3ByZXNjcmVlbmluZ19ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19wcmVfc2NyZWVuaW5nX3J1bGUuVFJMaW5rUHJlU2NyZWVuaW5nUnVsZSgpLAogICAgICAgICAgICAgICAgbWF0Y2hlZF9ub190cm1fc2NyZWVuaW5nX3J1bGUgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX21pc3NpbmdfdHJtX2RlY2lzaW9uLlRSTGlua01pc3NpbmdUcm1EZWNpc2lvbigpCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rUmVzdWx0KAogICAgICAgICAgICAgICAgcHJvdmlkZXIgPSAnU1VNU1VCJywKICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9IDE2NDA5OTUyMDAwMDAsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtSZXN1bHQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtSZXN1bHQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_result_full_payload.py b/test/test_tr_link_result_full_payload.py index 3687f99a..26fc4662 100644 --- a/test/test_tr_link_result_full_payload.py +++ b/test/test_tr_link_result_full_payload.py @@ -1,72 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_result_full_payload import TRLinkResultFullPayload - - -class TestTRLinkResultFullPayload(unittest.TestCase): - """TRLinkResultFullPayload unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkResultFullPayload: - """Test TRLinkResultFullPayload - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkResultFullPayload` - """ - model = TRLinkResultFullPayload() - if include_optional: - return TRLinkResultFullPayload( - provider = 'SUMSUB', - timestamp = 1640995200000, - status = 'COMPLETED', - verdict = 'ACCEPT', - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - dest_tag = 'memo_12345', - bypass_reason = 'MANUAL', - details_message = 'Screening completed successfully', - customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_short_name = 'ACME Corp', - travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - result = fireblocks.models.tr_link_provider_result_with_rule_2.TRLinkProviderResultWithRule-2( - provider_response = fireblocks.models.provider_response.providerResponse(), - matched_rule = fireblocks.models.screening_tr_link_post_screening_rule.ScreeningTRLinkPostScreeningRule(), ), - matched_prescreening_rule = fireblocks.models.screening_tr_link_prescreening_rule.ScreeningTRLinkPrescreeningRule(), - matched_no_trm_screening_rule = fireblocks.models.screening_tr_link_missing_trm_decision.ScreeningTRLinkMissingTrmDecision() - ) - else: - return TRLinkResultFullPayload( - provider = 'SUMSUB', - timestamp = 1640995200000, - status = 'COMPLETED', - ) - """ - - def testTRLinkResultFullPayload(self): - """Test TRLinkResultFullPayload""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcmVzdWx0X2Z1bGxfcGF5bG9hZCBpbXBvcnQgVFJMaW5rUmVzdWx0RnVsbFBheWxvYWQKCgpjbGFzcyBUZXN0VFJMaW5rUmVzdWx0RnVsbFBheWxvYWQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rUmVzdWx0RnVsbFBheWxvYWQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRSTGlua1Jlc3VsdEZ1bGxQYXlsb2FkOgogICAgICAgICIiIlRlc3QgVFJMaW5rUmVzdWx0RnVsbFBheWxvYWQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rUmVzdWx0RnVsbFBheWxvYWRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtSZXN1bHRGdWxsUGF5bG9hZCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRSTGlua1Jlc3VsdEZ1bGxQYXlsb2FkKAogICAgICAgICAgICAgICAgcHJvdmlkZXIgPSAnU1VNU1VCJywKICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9IDE2NDA5OTUyMDAwMDAsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywKICAgICAgICAgICAgICAgIHZlcmRpY3QgPSAnQUNDRVBUJywKICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcweEEyZEMyNDkwRUQxRGNBMkQyMTYxMzUwOGZkYjBjODJkYUVBYjA3MTUnLAogICAgICAgICAgICAgICAgZGVzdF90YWcgPSAnbWVtb18xMjM0NScsCiAgICAgICAgICAgICAgICBieXBhc3NfcmVhc29uID0gJ01BTlVBTCcsCiAgICAgICAgICAgICAgICBkZXRhaWxzX21lc3NhZ2UgPSAnU2NyZWVuaW5nIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHknLAogICAgICAgICAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywKICAgICAgICAgICAgICAgIGN1c3RvbWVyX3Nob3J0X25hbWUgPSAnQUNNRSBDb3JwJywKICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX21lc3NhZ2VfaWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywKICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcHJvdmlkZXJfcmVzdWx0X3dpdGhfcnVsZV8yLlRSTGlua1Byb3ZpZGVyUmVzdWx0V2l0aFJ1bGUtMigKICAgICAgICAgICAgICAgICAgICBwcm92aWRlcl9yZXNwb25zZSA9IGZpcmVibG9ja3MubW9kZWxzLnByb3ZpZGVyX3Jlc3BvbnNlLnByb3ZpZGVyUmVzcG9uc2UoKSwgCiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyX2xpbmtfcG9zdF9zY3JlZW5pbmdfcnVsZS5TY3JlZW5pbmdUUkxpbmtQb3N0U2NyZWVuaW5nUnVsZSgpLCApLAogICAgICAgICAgICAgICAgbWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ190cl9saW5rX3ByZXNjcmVlbmluZ19ydWxlLlNjcmVlbmluZ1RSTGlua1ByZXNjcmVlbmluZ1J1bGUoKSwKICAgICAgICAgICAgICAgIG1hdGNoZWRfbm9fdHJtX3NjcmVlbmluZ19ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMuc2NyZWVuaW5nX3RyX2xpbmtfbWlzc2luZ190cm1fZGVjaXNpb24uU2NyZWVuaW5nVFJMaW5rTWlzc2luZ1RybURlY2lzaW9uKCkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtSZXN1bHRGdWxsUGF5bG9hZCgKICAgICAgICAgICAgICAgIHByb3ZpZGVyID0gJ1NVTVNVQicsCiAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSAxNjQwOTk1MjAwMDAwLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ0NPTVBMRVRFRCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VFJMaW5rUmVzdWx0RnVsbFBheWxvYWQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtSZXN1bHRGdWxsUGF5bG9hZCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_rule_base.py b/test/test_tr_link_rule_base.py index 1147ade8..b74c8c60 100644 --- a/test/test_tr_link_rule_base.py +++ b/test/test_tr_link_rule_base.py @@ -1,74 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_rule_base import TRLinkRuleBase - - -class TestTRLinkRuleBase(unittest.TestCase): - """TRLinkRuleBase unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkRuleBase: - """Test TRLinkRuleBase - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkRuleBase` - """ - model = TRLinkRuleBase() - if include_optional: - return TRLinkRuleBase( - customer_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - direction = 'OUTBOUND', - source_type = 'VAULT_ACCOUNT', - source_sub_type = 'INTERNAL', - source_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = 'INTERNAL', - dest_address = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', - source_id = '1', - dest_id = '1', - asset = 'BTC', - base_asset = 'USD', - amount = fireblocks.models.tr_link_amount.TRLinkAmount( - range = fireblocks.models.amount_range_min_max.AmountRangeMinMax( - min = '100', - max = '10000', ), - currency = 'USD', ), - network_protocol = 'BITCOIN', - operation = 'TRANSFER', - description = '', - is_default = True - ) - else: - return TRLinkRuleBase( - ) - """ - - def testTRLinkRuleBase(self): - """Test TRLinkRuleBase""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcnVsZV9iYXNlIGltcG9ydCBUUkxpbmtSdWxlQmFzZQoKCmNsYXNzIFRlc3RUUkxpbmtSdWxlQmFzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUUkxpbmtSdWxlQmFzZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVFJMaW5rUnVsZUJhc2U6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtSdWxlQmFzZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUUkxpbmtSdWxlQmFzZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRSTGlua1J1bGVCYXNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rUnVsZUJhc2UoCiAgICAgICAgICAgICAgICBjdXN0b21lcl9pZCA9ICczZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYnLAogICAgICAgICAgICAgICAgZGlyZWN0aW9uID0gJ09VVEJPVU5EJywKICAgICAgICAgICAgICAgIHNvdXJjZV90eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLAogICAgICAgICAgICAgICAgc291cmNlX3N1Yl90eXBlID0gJ0lOVEVSTkFMJywKICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzID0gJzFBMXpQMWVQNVFHZWZpMkRNUFRmVEw1U0xtdjdEaXZmTmEnLAogICAgICAgICAgICAgICAgZGVzdF90eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLAogICAgICAgICAgICAgICAgZGVzdF9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsCiAgICAgICAgICAgICAgICBkZXN0X2FkZHJlc3MgPSAnMUExelAxZVA1UUdlZmkyRE1QVGZUTDVTTG12N0RpdmZOYScsCiAgICAgICAgICAgICAgICBzb3VyY2VfaWQgPSAnMScsCiAgICAgICAgICAgICAgICBkZXN0X2lkID0gJzEnLAogICAgICAgICAgICAgICAgYXNzZXQgPSAnQlRDJywKICAgICAgICAgICAgICAgIGJhc2VfYXNzZXQgPSAnVVNEJywKICAgICAgICAgICAgICAgIGFtb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYW1vdW50LlRSTGlua0Ftb3VudCgKICAgICAgICAgICAgICAgICAgICByYW5nZSA9IGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9yYW5nZV9taW5fbWF4LkFtb3VudFJhbmdlTWluTWF4KAogICAgICAgICAgICAgICAgICAgICAgICBtaW4gPSAnMTAwJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG1heCA9ICcxMDAwMCcsICksIAogICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5ID0gJ1VTRCcsICksCiAgICAgICAgICAgICAgICBuZXR3b3JrX3Byb3RvY29sID0gJ0JJVENPSU4nLAogICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gJ1RSQU5TRkVSJywKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJycsCiAgICAgICAgICAgICAgICBpc19kZWZhdWx0ID0gVHJ1ZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRSTGlua1J1bGVCYXNlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua1J1bGVCYXNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rUnVsZUJhc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_set_destination_travel_rule_message_id_request.py b/test/test_tr_link_set_destination_travel_rule_message_id_request.py index a9e14212..64b9af76 100644 --- a/test/test_tr_link_set_destination_travel_rule_message_id_request.py +++ b/test/test_tr_link_set_destination_travel_rule_message_id_request.py @@ -1,71 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_set_destination_travel_rule_message_id_request import ( - TRLinkSetDestinationTravelRuleMessageIdRequest, -) - - -class TestTRLinkSetDestinationTravelRuleMessageIdRequest(unittest.TestCase): - """TRLinkSetDestinationTravelRuleMessageIdRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> TRLinkSetDestinationTravelRuleMessageIdRequest: - """Test TRLinkSetDestinationTravelRuleMessageIdRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkSetDestinationTravelRuleMessageIdRequest` - """ - model = TRLinkSetDestinationTravelRuleMessageIdRequest() - if include_optional: - return TRLinkSetDestinationTravelRuleMessageIdRequest( - amount = '1000', - destination = fireblocks.models.tr_link_transfer_peer_path.TRLinkTransferPeerPath( - type = 'VAULT_ACCOUNT', - id = '12', - sub_type = '0', - address = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb', ), - travel_rule_message_id = 'trm_1234567890abcdef' - ) - else: - return TRLinkSetDestinationTravelRuleMessageIdRequest( - amount = '1000', - destination = fireblocks.models.tr_link_transfer_peer_path.TRLinkTransferPeerPath( - type = 'VAULT_ACCOUNT', - id = '12', - sub_type = '0', - address = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb', ), - travel_rule_message_id = 'trm_1234567890abcdef', - ) - """ - - def testTRLinkSetDestinationTravelRuleMessageIdRequest(self): - """Test TRLinkSetDestinationTravelRuleMessageIdRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfc2V0X2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVxdWVzdCBpbXBvcnQgKAogICAgVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RUUkxpbmtTZXREZXN0aW5hdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKAogICAgICAgIHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwKICAgICkgLT4gVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVxdWVzdDoKICAgICAgICAiIiJUZXN0IFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtTZXREZXN0aW5hdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXF1ZXN0KAogICAgICAgICAgICAgICAgYW1vdW50ID0gJzEwMDAnLAogICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3RyYW5zZmVyX3BlZXJfcGF0aC5UUkxpbmtUcmFuc2ZlclBlZXJQYXRoKAogICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFRfQUNDT1VOVCcsIAogICAgICAgICAgICAgICAgICAgIGlkID0gJzEyJywgCiAgICAgICAgICAgICAgICAgICAgc3ViX3R5cGUgPSAnMCcsIAogICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHg3NDJkMzVDYzY2MzRDMDUzMjkyNWEzYjg0NEJjOWU3NTk1ZjBiRWInLCApLAogICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCA9ICd0cm1fMTIzNDU2Nzg5MGFiY2RlZicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtTZXREZXN0aW5hdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXF1ZXN0KAogICAgICAgICAgICAgICAgYW1vdW50ID0gJzEwMDAnLAogICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3RyYW5zZmVyX3BlZXJfcGF0aC5UUkxpbmtUcmFuc2ZlclBlZXJQYXRoKAogICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFRfQUNDT1VOVCcsIAogICAgICAgICAgICAgICAgICAgIGlkID0gJzEyJywgCiAgICAgICAgICAgICAgICAgICAgc3ViX3R5cGUgPSAnMCcsIAogICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHg3NDJkMzVDYzY2MzRDMDUzMjkyNWEzYjg0NEJjOWU3NTk1ZjBiRWInLCApLAogICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCA9ICd0cm1fMTIzNDU2Nzg5MGFiY2RlZicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_set_destination_travel_rule_message_id_response.py b/test/test_tr_link_set_destination_travel_rule_message_id_response.py index d185f6ec..9eb685a8 100644 --- a/test/test_tr_link_set_destination_travel_rule_message_id_response.py +++ b/test/test_tr_link_set_destination_travel_rule_message_id_response.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_set_destination_travel_rule_message_id_response import ( - TRLinkSetDestinationTravelRuleMessageIdResponse, -) - - -class TestTRLinkSetDestinationTravelRuleMessageIdResponse(unittest.TestCase): - """TRLinkSetDestinationTravelRuleMessageIdResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> TRLinkSetDestinationTravelRuleMessageIdResponse: - """Test TRLinkSetDestinationTravelRuleMessageIdResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkSetDestinationTravelRuleMessageIdResponse` - """ - model = TRLinkSetDestinationTravelRuleMessageIdResponse() - if include_optional: - return TRLinkSetDestinationTravelRuleMessageIdResponse( - success = True, - updated_destinations = 1, - failed_destinations = 0, - errors = [] - ) - else: - return TRLinkSetDestinationTravelRuleMessageIdResponse( - success = True, - updated_destinations = 1, - failed_destinations = 0, - ) - """ - - def testTRLinkSetDestinationTravelRuleMessageIdResponse(self): - """Test TRLinkSetDestinationTravelRuleMessageIdResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfc2V0X2Rlc3RpbmF0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZSgKICAgICAgICBzZWxmLCBpbmNsdWRlX29wdGlvbmFsCiAgICApIC0+IFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtTZXREZXN0aW5hdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlKAogICAgICAgICAgICAgICAgc3VjY2VzcyA9IFRydWUsCiAgICAgICAgICAgICAgICB1cGRhdGVkX2Rlc3RpbmF0aW9ucyA9IDEsCiAgICAgICAgICAgICAgICBmYWlsZWRfZGVzdGluYXRpb25zID0gMCwKICAgICAgICAgICAgICAgIGVycm9ycyA9IFtdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBzdWNjZXNzID0gVHJ1ZSwKICAgICAgICAgICAgICAgIHVwZGF0ZWRfZGVzdGluYXRpb25zID0gMSwKICAgICAgICAgICAgICAgIGZhaWxlZF9kZXN0aW5hdGlvbnMgPSAwLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua1NldERlc3RpbmF0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rU2V0RGVzdGluYXRpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_set_transaction_travel_rule_message_id_request.py b/test/test_tr_link_set_transaction_travel_rule_message_id_request.py index 027a6d37..6a1efc3c 100644 --- a/test/test_tr_link_set_transaction_travel_rule_message_id_request.py +++ b/test/test_tr_link_set_transaction_travel_rule_message_id_request.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_set_transaction_travel_rule_message_id_request import ( - TRLinkSetTransactionTravelRuleMessageIdRequest, -) - - -class TestTRLinkSetTransactionTravelRuleMessageIdRequest(unittest.TestCase): - """TRLinkSetTransactionTravelRuleMessageIdRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> TRLinkSetTransactionTravelRuleMessageIdRequest: - """Test TRLinkSetTransactionTravelRuleMessageIdRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkSetTransactionTravelRuleMessageIdRequest` - """ - model = TRLinkSetTransactionTravelRuleMessageIdRequest() - if include_optional: - return TRLinkSetTransactionTravelRuleMessageIdRequest( - travel_rule_message_id = 'trm_1234567890abcdef' - ) - else: - return TRLinkSetTransactionTravelRuleMessageIdRequest( - travel_rule_message_id = 'trm_1234567890abcdef', - ) - """ - - def testTRLinkSetTransactionTravelRuleMessageIdRequest(self): - """Test TRLinkSetTransactionTravelRuleMessageIdRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfc2V0X3RyYW5zYWN0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVxdWVzdCBpbXBvcnQgKAogICAgVFJMaW5rU2V0VHJhbnNhY3Rpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKAogICAgICAgIHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwKICAgICkgLT4gVFJMaW5rU2V0VHJhbnNhY3Rpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVxdWVzdDoKICAgICAgICAiIiJUZXN0IFRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rU2V0VHJhbnNhY3Rpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXF1ZXN0KAogICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCA9ICd0cm1fMTIzNDU2Nzg5MGFiY2RlZicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXF1ZXN0KAogICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCA9ICd0cm1fMTIzNDU2Nzg5MGFiY2RlZicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VFJMaW5rU2V0VHJhbnNhY3Rpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_set_transaction_travel_rule_message_id_response.py b/test/test_tr_link_set_transaction_travel_rule_message_id_response.py index 61a705d9..1c95051d 100644 --- a/test/test_tr_link_set_transaction_travel_rule_message_id_response.py +++ b/test/test_tr_link_set_transaction_travel_rule_message_id_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_set_transaction_travel_rule_message_id_response import ( - TRLinkSetTransactionTravelRuleMessageIdResponse, -) - - -class TestTRLinkSetTransactionTravelRuleMessageIdResponse(unittest.TestCase): - """TRLinkSetTransactionTravelRuleMessageIdResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> TRLinkSetTransactionTravelRuleMessageIdResponse: - """Test TRLinkSetTransactionTravelRuleMessageIdResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkSetTransactionTravelRuleMessageIdResponse` - """ - model = TRLinkSetTransactionTravelRuleMessageIdResponse() - if include_optional: - return TRLinkSetTransactionTravelRuleMessageIdResponse( - success = True - ) - else: - return TRLinkSetTransactionTravelRuleMessageIdResponse( - success = True, - ) - """ - - def testTRLinkSetTransactionTravelRuleMessageIdResponse(self): - """Test TRLinkSetTransactionTravelRuleMessageIdResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfc2V0X3RyYW5zYWN0aW9uX3RyYXZlbF9ydWxlX21lc3NhZ2VfaWRfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdFRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZSgKICAgICAgICBzZWxmLCBpbmNsdWRlX29wdGlvbmFsCiAgICApIC0+IFRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgVFJMaW5rU2V0VHJhbnNhY3Rpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rU2V0VHJhbnNhY3Rpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlKAogICAgICAgICAgICAgICAgc3VjY2VzcyA9IFRydWUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtTZXRUcmFuc2FjdGlvblRyYXZlbFJ1bGVNZXNzYWdlSWRSZXNwb25zZSgKICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBUcnVlLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua1NldFRyYW5zYWN0aW9uVHJhdmVsUnVsZU1lc3NhZ2VJZFJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rU2V0VHJhbnNhY3Rpb25UcmF2ZWxSdWxlTWVzc2FnZUlkUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_source_transfer_peer_path.py b/test/test_tr_link_source_transfer_peer_path.py index 253b960d..8b4c1729 100644 --- a/test/test_tr_link_source_transfer_peer_path.py +++ b/test/test_tr_link_source_transfer_peer_path.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_source_transfer_peer_path import ( - TRLinkSourceTransferPeerPath, -) - - -class TestTRLinkSourceTransferPeerPath(unittest.TestCase): - """TRLinkSourceTransferPeerPath unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkSourceTransferPeerPath: - """Test TRLinkSourceTransferPeerPath - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkSourceTransferPeerPath` - """ - model = TRLinkSourceTransferPeerPath() - if include_optional: - return TRLinkSourceTransferPeerPath( - type = 'VAULT_ACCOUNT', - id = '12', - wallet_id = '0' - ) - else: - return TRLinkSourceTransferPeerPath( - type = 'VAULT_ACCOUNT', - ) - """ - - def testTRLinkSourceTransferPeerPath(self): - """Test TRLinkSourceTransferPeerPath""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfc291cmNlX3RyYW5zZmVyX3BlZXJfcGF0aCBpbXBvcnQgKAogICAgVFJMaW5rU291cmNlVHJhbnNmZXJQZWVyUGF0aCwKKQoKCmNsYXNzIFRlc3RUUkxpbmtTb3VyY2VUcmFuc2ZlclBlZXJQYXRoKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua1NvdXJjZVRyYW5zZmVyUGVlclBhdGggdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRSTGlua1NvdXJjZVRyYW5zZmVyUGVlclBhdGg6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtTb3VyY2VUcmFuc2ZlclBlZXJQYXRoCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRSTGlua1NvdXJjZVRyYW5zZmVyUGVlclBhdGhgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtTb3VyY2VUcmFuc2ZlclBlZXJQYXRoKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rU291cmNlVHJhbnNmZXJQZWVyUGF0aCgKICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFRfQUNDT1VOVCcsCiAgICAgICAgICAgICAgICBpZCA9ICcxMicsCiAgICAgICAgICAgICAgICB3YWxsZXRfaWQgPSAnMCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtTb3VyY2VUcmFuc2ZlclBlZXJQYXRoKAogICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtTb3VyY2VUcmFuc2ZlclBlZXJQYXRoKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rU291cmNlVHJhbnNmZXJQZWVyUGF0aCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_test_connection_response.py b/test/test_tr_link_test_connection_response.py index d6c7c243..c45cf59e 100644 --- a/test/test_tr_link_test_connection_response.py +++ b/test/test_tr_link_test_connection_response.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_test_connection_response import ( - TRLinkTestConnectionResponse, -) - - -class TestTRLinkTestConnectionResponse(unittest.TestCase): - """TRLinkTestConnectionResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkTestConnectionResponse: - """Test TRLinkTestConnectionResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkTestConnectionResponse` - """ - model = TRLinkTestConnectionResponse() - if include_optional: - return TRLinkTestConnectionResponse( - success = True, - message = 'Connection test failed: Invalid API key', - timestamp = '2025-01-24T10:30Z', - partner_ident = 'notabene', - partner_name = 'Notabene' - ) - else: - return TRLinkTestConnectionResponse( - success = True, - timestamp = '2025-01-24T10:30Z', - ) - """ - - def testTRLinkTestConnectionResponse(self): - """Test TRLinkTestConnectionResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdGVzdF9jb25uZWN0aW9uX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBUUkxpbmtUZXN0Q29ubmVjdGlvblJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdFRSTGlua1Rlc3RDb25uZWN0aW9uUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rVGVzdENvbm5lY3Rpb25SZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVFJMaW5rVGVzdENvbm5lY3Rpb25SZXNwb25zZToKICAgICAgICAiIiJUZXN0IFRSTGlua1Rlc3RDb25uZWN0aW9uUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rVGVzdENvbm5lY3Rpb25SZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRSTGlua1Rlc3RDb25uZWN0aW9uUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtUZXN0Q29ubmVjdGlvblJlc3BvbnNlKAogICAgICAgICAgICAgICAgc3VjY2VzcyA9IFRydWUsCiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ0Nvbm5lY3Rpb24gdGVzdCBmYWlsZWQ6IEludmFsaWQgQVBJIGtleScsCiAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSAnMjAyNS0wMS0yNFQxMDozMFonLAogICAgICAgICAgICAgICAgcGFydG5lcl9pZGVudCA9ICdub3RhYmVuZScsCiAgICAgICAgICAgICAgICBwYXJ0bmVyX25hbWUgPSAnTm90YWJlbmUnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rVGVzdENvbm5lY3Rpb25SZXNwb25zZSgKICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBUcnVlLAogICAgICAgICAgICAgICAgdGltZXN0YW1wID0gJzIwMjUtMDEtMjRUMTA6MzBaJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtUZXN0Q29ubmVjdGlvblJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rVGVzdENvbm5lY3Rpb25SZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_thresholds.py b/test/test_tr_link_thresholds.py index 70b977e1..f7dab832 100644 --- a/test/test_tr_link_thresholds.py +++ b/test/test_tr_link_thresholds.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_thresholds import TRLinkThresholds - - -class TestTRLinkThresholds(unittest.TestCase): - """TRLinkThresholds unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkThresholds: - """Test TRLinkThresholds - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkThresholds` - """ - model = TRLinkThresholds() - if include_optional: - return TRLinkThresholds( - amount = '1000', - currency = 'USD' - ) - else: - return TRLinkThresholds( - ) - """ - - def testTRLinkThresholds(self): - """Test TRLinkThresholds""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdGhyZXNob2xkcyBpbXBvcnQgVFJMaW5rVGhyZXNob2xkcwoKCmNsYXNzIFRlc3RUUkxpbmtUaHJlc2hvbGRzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua1RocmVzaG9sZHMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRSTGlua1RocmVzaG9sZHM6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtUaHJlc2hvbGRzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRSTGlua1RocmVzaG9sZHNgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtUaHJlc2hvbGRzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rVGhyZXNob2xkcygKICAgICAgICAgICAgICAgIGFtb3VudCA9ICcxMDAwJywKICAgICAgICAgICAgICAgIGN1cnJlbmN5ID0gJ1VTRCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtUaHJlc2hvbGRzKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua1RocmVzaG9sZHMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtUaHJlc2hvbGRzIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tr_link_transaction_direction.py b/test/test_tr_link_transaction_direction.py index 648b5b54..2eb8902d 100644 --- a/test/test_tr_link_transaction_direction.py +++ b/test/test_tr_link_transaction_direction.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_transaction_direction import TRLinkTransactionDirection - - -class TestTRLinkTransactionDirection(unittest.TestCase): - """TRLinkTransactionDirection unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTRLinkTransactionDirection(self): - """Test TRLinkTransactionDirection""" - # inst = TRLinkTransactionDirection() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdHJhbnNhY3Rpb25fZGlyZWN0aW9uIGltcG9ydCBUUkxpbmtUcmFuc2FjdGlvbkRpcmVjdGlvbgoKCmNsYXNzIFRlc3RUUkxpbmtUcmFuc2FjdGlvbkRpcmVjdGlvbih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUUkxpbmtUcmFuc2FjdGlvbkRpcmVjdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RUUkxpbmtUcmFuc2FjdGlvbkRpcmVjdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua1RyYW5zYWN0aW9uRGlyZWN0aW9uIiIiCiAgICAgICAgIyBpbnN0ID0gVFJMaW5rVHJhbnNhY3Rpb25EaXJlY3Rpb24oKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tr_link_transfer_peer_path.py b/test/test_tr_link_transfer_peer_path.py index b3d5aef2..bc6c19fc 100644 --- a/test/test_tr_link_transfer_peer_path.py +++ b/test/test_tr_link_transfer_peer_path.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_transfer_peer_path import TRLinkTransferPeerPath - - -class TestTRLinkTransferPeerPath(unittest.TestCase): - """TRLinkTransferPeerPath unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkTransferPeerPath: - """Test TRLinkTransferPeerPath - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkTransferPeerPath` - """ - model = TRLinkTransferPeerPath() - if include_optional: - return TRLinkTransferPeerPath( - type = 'VAULT_ACCOUNT', - id = '12', - sub_type = '0', - address = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb' - ) - else: - return TRLinkTransferPeerPath( - ) - """ - - def testTRLinkTransferPeerPath(self): - """Test TRLinkTransferPeerPath""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdHJhbnNmZXJfcGVlcl9wYXRoIGltcG9ydCBUUkxpbmtUcmFuc2ZlclBlZXJQYXRoCgoKY2xhc3MgVGVzdFRSTGlua1RyYW5zZmVyUGVlclBhdGgodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rVHJhbnNmZXJQZWVyUGF0aCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVFJMaW5rVHJhbnNmZXJQZWVyUGF0aDoKICAgICAgICAiIiJUZXN0IFRSTGlua1RyYW5zZmVyUGVlclBhdGgKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rVHJhbnNmZXJQZWVyUGF0aGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRSTGlua1RyYW5zZmVyUGVlclBhdGgoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtUcmFuc2ZlclBlZXJQYXRoKAogICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIGlkID0gJzEyJywKICAgICAgICAgICAgICAgIHN1Yl90eXBlID0gJzAnLAogICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweDc0MmQzNUNjNjYzNEMwNTMyOTI1YTNiODQ0QmM5ZTc1OTVmMGJFYicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtUcmFuc2ZlclBlZXJQYXRoKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua1RyYW5zZmVyUGVlclBhdGgoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtUcmFuc2ZlclBlZXJQYXRoIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tr_link_trm_direction.py b/test/test_tr_link_trm_direction.py index 4bc9e281..fe1e0e7d 100644 --- a/test/test_tr_link_trm_direction.py +++ b/test/test_tr_link_trm_direction.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_trm_direction import TRLinkTrmDirection - - -class TestTRLinkTrmDirection(unittest.TestCase): - """TRLinkTrmDirection unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTRLinkTrmDirection(self): - """Test TRLinkTrmDirection""" - # inst = TRLinkTrmDirection() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdHJtX2RpcmVjdGlvbiBpbXBvcnQgVFJMaW5rVHJtRGlyZWN0aW9uCgoKY2xhc3MgVGVzdFRSTGlua1RybURpcmVjdGlvbih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUUkxpbmtUcm1EaXJlY3Rpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0VFJMaW5rVHJtRGlyZWN0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rVHJtRGlyZWN0aW9uIiIiCiAgICAgICAgIyBpbnN0ID0gVFJMaW5rVHJtRGlyZWN0aW9uKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_trm_info_response.py b/test/test_tr_link_trm_info_response.py index 411c82aa..83594f9d 100644 --- a/test/test_tr_link_trm_info_response.py +++ b/test/test_tr_link_trm_info_response.py @@ -1,104 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_trm_info_response import TRLinkTrmInfoResponse - - -class TestTRLinkTrmInfoResponse(unittest.TestCase): - """TRLinkTrmInfoResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkTrmInfoResponse: - """Test TRLinkTrmInfoResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkTrmInfoResponse` - """ - model = TRLinkTrmInfoResponse() - if include_optional: - return TRLinkTrmInfoResponse( - id = 'trm_1234567890abcdef', - version = '1.0', - status = 'ACCEPTED', - reason = 'Travel Rule compliance required for this transaction', - external_id = '550e8400-e29b-41d4-a716-446655440000', - asset = fireblocks.models.tr_link_asset.TRLinkAsset( - format = 'fireblocks', - data = fireblocks.models.tr_link_asset_data.TRLinkAssetData( - ticker = 'USDT', - network = 'ETH', - ucid = 825, - contract_address = '0xdac17f958d2ee523a2206206994597c13d831ec7', - id = 'USDT_ERC20', ), ), - amount = '1000', - fiat_value = fireblocks.models.tr_link_fiat_value.TRLinkFiatValue( - amount = '1000.50', - currency = 'USD', ), - direction = 'out', - originator_vasp_id = 'did:ethr:0x1234567890abcdef', - beneficiary_vasp_id = 'did:ethr:0xfedcba0987654321', - txn_info = fireblocks.models.tr_link_txn_info.TRLinkTxnInfo( - originator_wallet_address = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb', - beneficiary_wallet_address = '0x8d12A197cB00D4747a1fe03395095ce2A5CC6819', - tx_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef', ), - ivms101 = fireblocks.models.tr_link_ivms_response.TRLinkIvmsResponse( - version = '1.0', - data = 'eyJvcmlnaW5hdG9yIjp7Im5hbWUiOiJKb2huIERvZSIsImFkZHJlc3MiOiIxMjMgTWFpbiBTdCJ9LCJiZW5lZmljaWFyeSI6eyJuYW1lIjoiSmFuZSBTbWl0aCIsImFkZHJlc3MiOiI0NTYgRWxtIFN0In19', - filled_fields = ["originator.name","originator.address","beneficiary.name","beneficiary.address"], ), - provider_data = fireblocks.models.tr_link_provider_data.TRLinkProviderData( - provider = 'notabene', - data = {"vasp_did":"did:ethr:0x1234567890abcdef","compliance_status":"verified"}, ) - ) - else: - return TRLinkTrmInfoResponse( - id = 'trm_1234567890abcdef', - external_id = '550e8400-e29b-41d4-a716-446655440000', - asset = fireblocks.models.tr_link_asset.TRLinkAsset( - format = 'fireblocks', - data = fireblocks.models.tr_link_asset_data.TRLinkAssetData( - ticker = 'USDT', - network = 'ETH', - ucid = 825, - contract_address = '0xdac17f958d2ee523a2206206994597c13d831ec7', - id = 'USDT_ERC20', ), ), - amount = '1000', - direction = 'out', - txn_info = fireblocks.models.tr_link_txn_info.TRLinkTxnInfo( - originator_wallet_address = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb', - beneficiary_wallet_address = '0x8d12A197cB00D4747a1fe03395095ce2A5CC6819', - tx_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef', ), - ivms101 = fireblocks.models.tr_link_ivms_response.TRLinkIvmsResponse( - version = '1.0', - data = 'eyJvcmlnaW5hdG9yIjp7Im5hbWUiOiJKb2huIERvZSIsImFkZHJlc3MiOiIxMjMgTWFpbiBTdCJ9LCJiZW5lZmljaWFyeSI6eyJuYW1lIjoiSmFuZSBTbWl0aCIsImFkZHJlc3MiOiI0NTYgRWxtIFN0In19', - filled_fields = ["originator.name","originator.address","beneficiary.name","beneficiary.address"], ), - ) - """ - - def testTRLinkTrmInfoResponse(self): - """Test TRLinkTrmInfoResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdHJtX2luZm9fcmVzcG9uc2UgaW1wb3J0IFRSTGlua1RybUluZm9SZXNwb25zZQoKCmNsYXNzIFRlc3RUUkxpbmtUcm1JbmZvUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rVHJtSW5mb1Jlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUUkxpbmtUcm1JbmZvUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtUcm1JbmZvUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rVHJtSW5mb1Jlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVFJMaW5rVHJtSW5mb1Jlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rVHJtSW5mb1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgaWQgPSAndHJtXzEyMzQ1Njc4OTBhYmNkZWYnLAogICAgICAgICAgICAgICAgdmVyc2lvbiA9ICcxLjAnLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ0FDQ0VQVEVEJywKICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdUcmF2ZWwgUnVsZSBjb21wbGlhbmNlIHJlcXVpcmVkIGZvciB0aGlzIHRyYW5zYWN0aW9uJywKICAgICAgICAgICAgICAgIGV4dGVybmFsX2lkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCcsCiAgICAgICAgICAgICAgICBhc3NldCA9IGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXNzZXQuVFJMaW5rQXNzZXQoCiAgICAgICAgICAgICAgICAgICAgZm9ybWF0ID0gJ2ZpcmVibG9ja3MnLCAKICAgICAgICAgICAgICAgICAgICBkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19hc3NldF9kYXRhLlRSTGlua0Fzc2V0RGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgdGlja2VyID0gJ1VTRFQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmV0d29yayA9ICdFVEgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdWNpZCA9IDgyNSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyYWN0X2FkZHJlc3MgPSAnMHhkYWMxN2Y5NThkMmVlNTIzYTIyMDYyMDY5OTQ1OTdjMTNkODMxZWM3JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJ1VTRFRfRVJDMjAnLCApLCApLAogICAgICAgICAgICAgICAgYW1vdW50ID0gJzEwMDAnLAogICAgICAgICAgICAgICAgZmlhdF92YWx1ZSA9IGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfZmlhdF92YWx1ZS5UUkxpbmtGaWF0VmFsdWUoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJzEwMDAuNTAnLCAKICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeSA9ICdVU0QnLCApLAogICAgICAgICAgICAgICAgZGlyZWN0aW9uID0gJ291dCcsCiAgICAgICAgICAgICAgICBvcmlnaW5hdG9yX3Zhc3BfaWQgPSAnZGlkOmV0aHI6MHgxMjM0NTY3ODkwYWJjZGVmJywKICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5X3Zhc3BfaWQgPSAnZGlkOmV0aHI6MHhmZWRjYmEwOTg3NjU0MzIxJywKICAgICAgICAgICAgICAgIHR4bl9pbmZvID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua190eG5faW5mby5UUkxpbmtUeG5JbmZvKAogICAgICAgICAgICAgICAgICAgIG9yaWdpbmF0b3Jfd2FsbGV0X2FkZHJlc3MgPSAnMHg3NDJkMzVDYzY2MzRDMDUzMjkyNWEzYjg0NEJjOWU3NTk1ZjBiRWInLCAKICAgICAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV93YWxsZXRfYWRkcmVzcyA9ICcweDhkMTJBMTk3Y0IwMEQ0NzQ3YTFmZTAzMzk1MDk1Y2UyQTVDQzY4MTknLCAKICAgICAgICAgICAgICAgICAgICB0eF9oYXNoID0gJzB4MTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZicsICksCiAgICAgICAgICAgICAgICBpdm1zMTAxID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19pdm1zX3Jlc3BvbnNlLlRSTGlua0l2bXNSZXNwb25zZSgKICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uID0gJzEuMCcsIAogICAgICAgICAgICAgICAgICAgIGRhdGEgPSAnZXlKdmNtbG5hVzVoZEc5eUlqcDdJbTVoYldVaU9pSktiMmh1SUVSdlpTSXNJbUZrWkhKbGMzTWlPaUl4TWpNZ1RXRnBiaUJUZENKOUxDSmlaVzVsWm1samFXRnllU0k2ZXlKdVlXMWxJam9pU21GdVpTQlRiV2wwYUNJc0ltRmtaSEpsYzNNaU9pSTBOVFlnUld4dElGTjBJbjE5JywgCiAgICAgICAgICAgICAgICAgICAgZmlsbGVkX2ZpZWxkcyA9IFsib3JpZ2luYXRvci5uYW1lIiwib3JpZ2luYXRvci5hZGRyZXNzIiwiYmVuZWZpY2lhcnkubmFtZSIsImJlbmVmaWNpYXJ5LmFkZHJlc3MiXSwgKSwKICAgICAgICAgICAgICAgIHByb3ZpZGVyX2RhdGEgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3Byb3ZpZGVyX2RhdGEuVFJMaW5rUHJvdmlkZXJEYXRhKAogICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyID0gJ25vdGFiZW5lJywgCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHsidmFzcF9kaWQiOiJkaWQ6ZXRocjoweDEyMzQ1Njc4OTBhYmNkZWYiLCJjb21wbGlhbmNlX3N0YXR1cyI6InZlcmlmaWVkIn0sICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtUcm1JbmZvUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBpZCA9ICd0cm1fMTIzNDU2Nzg5MGFiY2RlZicsCiAgICAgICAgICAgICAgICBleHRlcm5hbF9pZCA9ICc1NTBlODQwMC1lMjliLTQxZDQtYTcxNi00NDY2NTU0NDAwMDAnLAogICAgICAgICAgICAgICAgYXNzZXQgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2Fzc2V0LlRSTGlua0Fzc2V0KAogICAgICAgICAgICAgICAgICAgIGZvcm1hdCA9ICdmaXJlYmxvY2tzJywgCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfYXNzZXRfZGF0YS5UUkxpbmtBc3NldERhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgIHRpY2tlciA9ICdVU0RUJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmsgPSAnRVRIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHVjaWQgPSA4MjUsIAogICAgICAgICAgICAgICAgICAgICAgICBjb250cmFjdF9hZGRyZXNzID0gJzB4ZGFjMTdmOTU4ZDJlZTUyM2EyMjA2MjA2OTk0NTk3YzEzZDgzMWVjNycsIAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdVU0RUX0VSQzIwJywgKSwgKSwKICAgICAgICAgICAgICAgIGFtb3VudCA9ICcxMDAwJywKICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdvdXQnLAogICAgICAgICAgICAgICAgdHhuX2luZm8gPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3R4bl9pbmZvLlRSTGlua1R4bkluZm8oCiAgICAgICAgICAgICAgICAgICAgb3JpZ2luYXRvcl93YWxsZXRfYWRkcmVzcyA9ICcweDc0MmQzNUNjNjYzNEMwNTMyOTI1YTNiODQ0QmM5ZTc1OTVmMGJFYicsIAogICAgICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5X3dhbGxldF9hZGRyZXNzID0gJzB4OGQxMkExOTdjQjAwRDQ3NDdhMWZlMDMzOTUwOTVjZTJBNUNDNjgxOScsIAogICAgICAgICAgICAgICAgICAgIHR4X2hhc2ggPSAnMHgxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmJywgKSwKICAgICAgICAgICAgICAgIGl2bXMxMDEgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2l2bXNfcmVzcG9uc2UuVFJMaW5rSXZtc1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgICAgIHZlcnNpb24gPSAnMS4wJywgCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9ICdleUp2Y21sbmFXNWhkRzl5SWpwN0ltNWhiV1VpT2lKS2IyaHVJRVJ2WlNJc0ltRmtaSEpsYzNNaU9pSXhNak1nVFdGcGJpQlRkQ0o5TENKaVpXNWxabWxqYVdGeWVTSTZleUp1WVcxbElqb2lTbUZ1WlNCVGJXbDBhQ0lzSW1Ga1pISmxjM01pT2lJME5UWWdSV3h0SUZOMEluMTknLCAKICAgICAgICAgICAgICAgICAgICBmaWxsZWRfZmllbGRzID0gWyJvcmlnaW5hdG9yLm5hbWUiLCJvcmlnaW5hdG9yLmFkZHJlc3MiLCJiZW5lZmljaWFyeS5uYW1lIiwiYmVuZWZpY2lhcnkuYWRkcmVzcyJdLCApLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua1RybUluZm9SZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua1RybUluZm9SZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_trm_screening_status.py b/test/test_tr_link_trm_screening_status.py index 770fe331..03f72ec4 100644 --- a/test/test_tr_link_trm_screening_status.py +++ b/test/test_tr_link_trm_screening_status.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_trm_screening_status import TRLinkTrmScreeningStatus - - -class TestTRLinkTrmScreeningStatus(unittest.TestCase): - """TRLinkTrmScreeningStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTRLinkTrmScreeningStatus(self): - """Test TRLinkTrmScreeningStatus""" - # inst = TRLinkTrmScreeningStatus() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdHJtX3NjcmVlbmluZ19zdGF0dXMgaW1wb3J0IFRSTGlua1RybVNjcmVlbmluZ1N0YXR1cwoKCmNsYXNzIFRlc3RUUkxpbmtUcm1TY3JlZW5pbmdTdGF0dXModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rVHJtU2NyZWVuaW5nU3RhdHVzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdFRSTGlua1RybVNjcmVlbmluZ1N0YXR1cyhzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua1RybVNjcmVlbmluZ1N0YXR1cyIiIgogICAgICAgICMgaW5zdCA9IFRSTGlua1RybVNjcmVlbmluZ1N0YXR1cygpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_tr_link_trm_screening_status_enum.py b/test/test_tr_link_trm_screening_status_enum.py index ee167f85..0b42715d 100644 --- a/test/test_tr_link_trm_screening_status_enum.py +++ b/test/test_tr_link_trm_screening_status_enum.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_trm_screening_status_enum import ( - TRLinkTrmScreeningStatusEnum, -) - - -class TestTRLinkTrmScreeningStatusEnum(unittest.TestCase): - """TRLinkTrmScreeningStatusEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTRLinkTrmScreeningStatusEnum(self): - """Test TRLinkTrmScreeningStatusEnum""" - # inst = TRLinkTrmScreeningStatusEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdHJtX3NjcmVlbmluZ19zdGF0dXNfZW51bSBpbXBvcnQgKAogICAgVFJMaW5rVHJtU2NyZWVuaW5nU3RhdHVzRW51bSwKKQoKCmNsYXNzIFRlc3RUUkxpbmtUcm1TY3JlZW5pbmdTdGF0dXNFbnVtKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua1RybVNjcmVlbmluZ1N0YXR1c0VudW0gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0VFJMaW5rVHJtU2NyZWVuaW5nU3RhdHVzRW51bShzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua1RybVNjcmVlbmluZ1N0YXR1c0VudW0iIiIKICAgICAgICAjIGluc3QgPSBUUkxpbmtUcm1TY3JlZW5pbmdTdGF0dXNFbnVtKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_trm_status.py b/test/test_tr_link_trm_status.py index 250a8542..ee6e59a9 100644 --- a/test/test_tr_link_trm_status.py +++ b/test/test_tr_link_trm_status.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_trm_status import TRLinkTrmStatus - - -class TestTRLinkTrmStatus(unittest.TestCase): - """TRLinkTrmStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTRLinkTrmStatus(self): - """Test TRLinkTrmStatus""" - # inst = TRLinkTrmStatus() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdHJtX3N0YXR1cyBpbXBvcnQgVFJMaW5rVHJtU3RhdHVzCgoKY2xhc3MgVGVzdFRSTGlua1RybVN0YXR1cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUUkxpbmtUcm1TdGF0dXMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0VFJMaW5rVHJtU3RhdHVzKHNlbGYpOgogICAgICAgICIiIlRlc3QgVFJMaW5rVHJtU3RhdHVzIiIiCiAgICAgICAgIyBpbnN0ID0gVFJMaW5rVHJtU3RhdHVzKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_txn_info.py b/test/test_tr_link_txn_info.py index f5278ebd..21553b9f 100644 --- a/test/test_tr_link_txn_info.py +++ b/test/test_tr_link_txn_info.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_txn_info import TRLinkTxnInfo - - -class TestTRLinkTxnInfo(unittest.TestCase): - """TRLinkTxnInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkTxnInfo: - """Test TRLinkTxnInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkTxnInfo` - """ - model = TRLinkTxnInfo() - if include_optional: - return TRLinkTxnInfo( - originator_wallet_address = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb', - beneficiary_wallet_address = '0x8d12A197cB00D4747a1fe03395095ce2A5CC6819', - tx_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef' - ) - else: - return TRLinkTxnInfo( - originator_wallet_address = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb', - beneficiary_wallet_address = '0x8d12A197cB00D4747a1fe03395095ce2A5CC6819', - tx_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef', - ) - """ - - def testTRLinkTxnInfo(self): - """Test TRLinkTxnInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdHhuX2luZm8gaW1wb3J0IFRSTGlua1R4bkluZm8KCgpjbGFzcyBUZXN0VFJMaW5rVHhuSW5mbyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUUkxpbmtUeG5JbmZvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUUkxpbmtUeG5JbmZvOgogICAgICAgICIiIlRlc3QgVFJMaW5rVHhuSW5mbwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUUkxpbmtUeG5JbmZvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVFJMaW5rVHhuSW5mbygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRSTGlua1R4bkluZm8oCiAgICAgICAgICAgICAgICBvcmlnaW5hdG9yX3dhbGxldF9hZGRyZXNzID0gJzB4NzQyZDM1Q2M2NjM0QzA1MzI5MjVhM2I4NDRCYzllNzU5NWYwYkViJywKICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5X3dhbGxldF9hZGRyZXNzID0gJzB4OGQxMkExOTdjQjAwRDQ3NDdhMWZlMDMzOTUwOTVjZTJBNUNDNjgxOScsCiAgICAgICAgICAgICAgICB0eF9oYXNoID0gJzB4MTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtUeG5JbmZvKAogICAgICAgICAgICAgICAgb3JpZ2luYXRvcl93YWxsZXRfYWRkcmVzcyA9ICcweDc0MmQzNUNjNjYzNEMwNTMyOTI1YTNiODQ0QmM5ZTc1OTVmMGJFYicsCiAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV93YWxsZXRfYWRkcmVzcyA9ICcweDhkMTJBMTk3Y0IwMEQ0NzQ3YTFmZTAzMzk1MDk1Y2UyQTVDQzY4MTknLAogICAgICAgICAgICAgICAgdHhfaGFzaCA9ICcweDEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua1R4bkluZm8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtUeG5JbmZvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tr_link_update_customer_request.py b/test/test_tr_link_update_customer_request.py index 9e2ca582..95036566 100644 --- a/test/test_tr_link_update_customer_request.py +++ b/test/test_tr_link_update_customer_request.py @@ -1,74 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_update_customer_request import ( - TRLinkUpdateCustomerRequest, -) - - -class TestTRLinkUpdateCustomerRequest(unittest.TestCase): - """TRLinkUpdateCustomerRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkUpdateCustomerRequest: - """Test TRLinkUpdateCustomerRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkUpdateCustomerRequest` - """ - model = TRLinkUpdateCustomerRequest() - if include_optional: - return TRLinkUpdateCustomerRequest( - discoverable = 'discoverable', - short_name = 'Acme Corporation', - full_legal_name = 'Acme Corporation Ltd.', - geographic_address = fireblocks.models.tr_link_geographic_address_request.TRLinkGeographicAddressRequest( - address_line = ["Suite 100"], - street_name = 'Main Street', - building_number = '123', - floor = '5', - post_box = 'PO Box 456', - post_code = '10001', - town_name = 'New York', - district_name = 'Manhattan', - country_sub_division = 'NY', - country = 'US', ), - country_of_registration = 'US', - national_identification = '{"nationalIdentifierType":"LEIXG","nationalIdentifier":"5493001KJTIIGC8Y1R12","countryOfIssue":"US"}', - date_of_incorporation = 'Sun Mar 15 00:00:00 GMT 2015', - vaults = [0,1,2,3], - tr_primary_purpose = 'Updated: Virtual asset service provider and exchange' - ) - else: - return TRLinkUpdateCustomerRequest( - ) - """ - - def testTRLinkUpdateCustomerRequest(self): - """Test TRLinkUpdateCustomerRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdXBkYXRlX2N1c3RvbWVyX3JlcXVlc3QgaW1wb3J0ICgKICAgIFRSTGlua1VwZGF0ZUN1c3RvbWVyUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RUUkxpbmtVcGRhdGVDdXN0b21lclJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rVXBkYXRlQ3VzdG9tZXJSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUUkxpbmtVcGRhdGVDdXN0b21lclJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtVcGRhdGVDdXN0b21lclJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rVXBkYXRlQ3VzdG9tZXJSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVFJMaW5rVXBkYXRlQ3VzdG9tZXJSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rVXBkYXRlQ3VzdG9tZXJSZXF1ZXN0KAogICAgICAgICAgICAgICAgZGlzY292ZXJhYmxlID0gJ2Rpc2NvdmVyYWJsZScsCiAgICAgICAgICAgICAgICBzaG9ydF9uYW1lID0gJ0FjbWUgQ29ycG9yYXRpb24nLAogICAgICAgICAgICAgICAgZnVsbF9sZWdhbF9uYW1lID0gJ0FjbWUgQ29ycG9yYXRpb24gTHRkLicsCiAgICAgICAgICAgICAgICBnZW9ncmFwaGljX2FkZHJlc3MgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX2dlb2dyYXBoaWNfYWRkcmVzc19yZXF1ZXN0LlRSTGlua0dlb2dyYXBoaWNBZGRyZXNzUmVxdWVzdCgKICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX2xpbmUgPSBbIlN1aXRlIDEwMCJdLCAKICAgICAgICAgICAgICAgICAgICBzdHJlZXRfbmFtZSA9ICdNYWluIFN0cmVldCcsIAogICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nX251bWJlciA9ICcxMjMnLCAKICAgICAgICAgICAgICAgICAgICBmbG9vciA9ICc1JywgCiAgICAgICAgICAgICAgICAgICAgcG9zdF9ib3ggPSAnUE8gQm94IDQ1NicsIAogICAgICAgICAgICAgICAgICAgIHBvc3RfY29kZSA9ICcxMDAwMScsIAogICAgICAgICAgICAgICAgICAgIHRvd25fbmFtZSA9ICdOZXcgWW9yaycsIAogICAgICAgICAgICAgICAgICAgIGRpc3RyaWN0X25hbWUgPSAnTWFuaGF0dGFuJywgCiAgICAgICAgICAgICAgICAgICAgY291bnRyeV9zdWJfZGl2aXNpb24gPSAnTlknLCAKICAgICAgICAgICAgICAgICAgICBjb3VudHJ5ID0gJ1VTJywgKSwKICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfcmVnaXN0cmF0aW9uID0gJ1VTJywKICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpY2F0aW9uID0gJ3sibmF0aW9uYWxJZGVudGlmaWVyVHlwZSI6IkxFSVhHIiwibmF0aW9uYWxJZGVudGlmaWVyIjoiNTQ5MzAwMUtKVElJR0M4WTFSMTIiLCJjb3VudHJ5T2ZJc3N1ZSI6IlVTIn0nLAogICAgICAgICAgICAgICAgZGF0ZV9vZl9pbmNvcnBvcmF0aW9uID0gJ1N1biBNYXIgMTUgMDA6MDA6MDAgR01UIDIwMTUnLAogICAgICAgICAgICAgICAgdmF1bHRzID0gWzAsMSwyLDNdLAogICAgICAgICAgICAgICAgdHJfcHJpbWFyeV9wdXJwb3NlID0gJ1VwZGF0ZWQ6IFZpcnR1YWwgYXNzZXQgc2VydmljZSBwcm92aWRlciBhbmQgZXhjaGFuZ2UnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rVXBkYXRlQ3VzdG9tZXJSZXF1ZXN0KAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua1VwZGF0ZUN1c3RvbWVyUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua1VwZGF0ZUN1c3RvbWVyUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_vasp_dto.py b/test/test_tr_link_vasp_dto.py index 9f7f7521..d2980a6a 100644 --- a/test/test_tr_link_vasp_dto.py +++ b/test/test_tr_link_vasp_dto.py @@ -1,72 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_vasp_dto import TRLinkVaspDto - - -class TestTRLinkVaspDto(unittest.TestCase): - """TRLinkVaspDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkVaspDto: - """Test TRLinkVaspDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkVaspDto` - """ - model = TRLinkVaspDto() - if include_optional: - return TRLinkVaspDto( - id = 'did:ethr:0x1234567890abcdef', - name = 'ACME Virtual Assets', - legal_name = 'ACME Virtual Assets Corporation', - national_identification = fireblocks.models.tr_link_vasp_national_identification.TRLinkVaspNationalIdentification( - identifier = '123456789', - type = 'LEI', - authority = 'Financial Conduct Authority', ), - geographic_address = fireblocks.models.tr_link_vasp_geographic_address.TRLinkVaspGeographicAddress( - formatted_address = '123 Main Street, New York, NY 10001, USA', - country = 'USA', - street_name = 'Main Street', - building_number = '123', - city = 'New York', - postal_code = '10001', ), - public_key = '-----BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA... ------END PUBLIC KEY-----' - ) - else: - return TRLinkVaspDto( - id = 'did:ethr:0x1234567890abcdef', - name = 'ACME Virtual Assets', - ) - """ - - def testTRLinkVaspDto(self): - """Test TRLinkVaspDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdmFzcF9kdG8gaW1wb3J0IFRSTGlua1Zhc3BEdG8KCgpjbGFzcyBUZXN0VFJMaW5rVmFzcER0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUUkxpbmtWYXNwRHRvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUUkxpbmtWYXNwRHRvOgogICAgICAgICIiIlRlc3QgVFJMaW5rVmFzcER0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUUkxpbmtWYXNwRHRvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVFJMaW5rVmFzcER0bygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRSTGlua1Zhc3BEdG8oCiAgICAgICAgICAgICAgICBpZCA9ICdkaWQ6ZXRocjoweDEyMzQ1Njc4OTBhYmNkZWYnLAogICAgICAgICAgICAgICAgbmFtZSA9ICdBQ01FIFZpcnR1YWwgQXNzZXRzJywKICAgICAgICAgICAgICAgIGxlZ2FsX25hbWUgPSAnQUNNRSBWaXJ0dWFsIEFzc2V0cyBDb3Jwb3JhdGlvbicsCiAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWNhdGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdmFzcF9uYXRpb25hbF9pZGVudGlmaWNhdGlvbi5UUkxpbmtWYXNwTmF0aW9uYWxJZGVudGlmaWNhdGlvbigKICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyID0gJzEyMzQ1Njc4OScsIAogICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnTEVJJywgCiAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5ID0gJ0ZpbmFuY2lhbCBDb25kdWN0IEF1dGhvcml0eScsICksCiAgICAgICAgICAgICAgICBnZW9ncmFwaGljX2FkZHJlc3MgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3Zhc3BfZ2VvZ3JhcGhpY19hZGRyZXNzLlRSTGlua1Zhc3BHZW9ncmFwaGljQWRkcmVzcygKICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZWRfYWRkcmVzcyA9ICcxMjMgTWFpbiBTdHJlZXQsIE5ldyBZb3JrLCBOWSAxMDAwMSwgVVNBJywgCiAgICAgICAgICAgICAgICAgICAgY291bnRyeSA9ICdVU0EnLCAKICAgICAgICAgICAgICAgICAgICBzdHJlZXRfbmFtZSA9ICdNYWluIFN0cmVldCcsIAogICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nX251bWJlciA9ICcxMjMnLCAKICAgICAgICAgICAgICAgICAgICBjaXR5ID0gJ05ldyBZb3JrJywgCiAgICAgICAgICAgICAgICAgICAgcG9zdGFsX2NvZGUgPSAnMTAwMDEnLCApLAogICAgICAgICAgICAgICAgcHVibGljX2tleSA9ICctLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLQpNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQS4uLgotLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0nCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rVmFzcER0bygKICAgICAgICAgICAgICAgIGlkID0gJ2RpZDpldGhyOjB4MTIzNDU2Nzg5MGFiY2RlZicsCiAgICAgICAgICAgICAgICBuYW1lID0gJ0FDTUUgVmlydHVhbCBBc3NldHMnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua1Zhc3BEdG8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtWYXNwRHRvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tr_link_vasp_geographic_address.py b/test/test_tr_link_vasp_geographic_address.py index b5e31b02..e1064542 100644 --- a/test/test_tr_link_vasp_geographic_address.py +++ b/test/test_tr_link_vasp_geographic_address.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_vasp_geographic_address import ( - TRLinkVaspGeographicAddress, -) - - -class TestTRLinkVaspGeographicAddress(unittest.TestCase): - """TRLinkVaspGeographicAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkVaspGeographicAddress: - """Test TRLinkVaspGeographicAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkVaspGeographicAddress` - """ - model = TRLinkVaspGeographicAddress() - if include_optional: - return TRLinkVaspGeographicAddress( - formatted_address = '123 Main Street, New York, NY 10001, USA', - country = 'USA', - street_name = 'Main Street', - building_number = '123', - city = 'New York', - postal_code = '10001' - ) - else: - return TRLinkVaspGeographicAddress( - ) - """ - - def testTRLinkVaspGeographicAddress(self): - """Test TRLinkVaspGeographicAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdmFzcF9nZW9ncmFwaGljX2FkZHJlc3MgaW1wb3J0ICgKICAgIFRSTGlua1Zhc3BHZW9ncmFwaGljQWRkcmVzcywKKQoKCmNsYXNzIFRlc3RUUkxpbmtWYXNwR2VvZ3JhcGhpY0FkZHJlc3ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rVmFzcEdlb2dyYXBoaWNBZGRyZXNzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUUkxpbmtWYXNwR2VvZ3JhcGhpY0FkZHJlc3M6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtWYXNwR2VvZ3JhcGhpY0FkZHJlc3MKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rVmFzcEdlb2dyYXBoaWNBZGRyZXNzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVFJMaW5rVmFzcEdlb2dyYXBoaWNBZGRyZXNzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rVmFzcEdlb2dyYXBoaWNBZGRyZXNzKAogICAgICAgICAgICAgICAgZm9ybWF0dGVkX2FkZHJlc3MgPSAnMTIzIE1haW4gU3RyZWV0LCBOZXcgWW9yaywgTlkgMTAwMDEsIFVTQScsCiAgICAgICAgICAgICAgICBjb3VudHJ5ID0gJ1VTQScsCiAgICAgICAgICAgICAgICBzdHJlZXRfbmFtZSA9ICdNYWluIFN0cmVldCcsCiAgICAgICAgICAgICAgICBidWlsZGluZ19udW1iZXIgPSAnMTIzJywKICAgICAgICAgICAgICAgIGNpdHkgPSAnTmV3IFlvcmsnLAogICAgICAgICAgICAgICAgcG9zdGFsX2NvZGUgPSAnMTAwMDEnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVFJMaW5rVmFzcEdlb2dyYXBoaWNBZGRyZXNzKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRSTGlua1Zhc3BHZW9ncmFwaGljQWRkcmVzcyhzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua1Zhc3BHZW9ncmFwaGljQWRkcmVzcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_vasp_list_dto.py b/test/test_tr_link_vasp_list_dto.py index 3430cd6f..6f78736d 100644 --- a/test/test_tr_link_vasp_list_dto.py +++ b/test/test_tr_link_vasp_list_dto.py @@ -1,69 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_vasp_list_dto import TRLinkVaspListDto - - -class TestTRLinkVaspListDto(unittest.TestCase): - """TRLinkVaspListDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkVaspListDto: - """Test TRLinkVaspListDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkVaspListDto` - """ - model = TRLinkVaspListDto() - if include_optional: - return TRLinkVaspListDto( - id = 'did:ethr:0x1234567890abcdef', - name = 'ACME Virtual Assets', - legal_name = 'ACME Virtual Assets Corporation', - national_identification = fireblocks.models.tr_link_vasp_national_identification.TRLinkVaspNationalIdentification( - identifier = '123456789', - type = 'LEI', - authority = 'Financial Conduct Authority', ), - geographic_address = fireblocks.models.tr_link_vasp_geographic_address.TRLinkVaspGeographicAddress( - formatted_address = '123 Main Street, New York, NY 10001, USA', - country = 'USA', - street_name = 'Main Street', - building_number = '123', - city = 'New York', - postal_code = '10001', ) - ) - else: - return TRLinkVaspListDto( - id = 'did:ethr:0x1234567890abcdef', - name = 'ACME Virtual Assets', - ) - """ - - def testTRLinkVaspListDto(self): - """Test TRLinkVaspListDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdmFzcF9saXN0X2R0byBpbXBvcnQgVFJMaW5rVmFzcExpc3REdG8KCgpjbGFzcyBUZXN0VFJMaW5rVmFzcExpc3REdG8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rVmFzcExpc3REdG8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRSTGlua1Zhc3BMaXN0RHRvOgogICAgICAgICIiIlRlc3QgVFJMaW5rVmFzcExpc3REdG8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rVmFzcExpc3REdG9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtWYXNwTGlzdER0bygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRSTGlua1Zhc3BMaXN0RHRvKAogICAgICAgICAgICAgICAgaWQgPSAnZGlkOmV0aHI6MHgxMjM0NTY3ODkwYWJjZGVmJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnQUNNRSBWaXJ0dWFsIEFzc2V0cycsCiAgICAgICAgICAgICAgICBsZWdhbF9uYW1lID0gJ0FDTUUgVmlydHVhbCBBc3NldHMgQ29ycG9yYXRpb24nLAogICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmljYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX3Zhc3BfbmF0aW9uYWxfaWRlbnRpZmljYXRpb24uVFJMaW5rVmFzcE5hdGlvbmFsSWRlbnRpZmljYXRpb24oCiAgICAgICAgICAgICAgICAgICAgaWRlbnRpZmllciA9ICcxMjM0NTY3ODknLCAKICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ0xFSScsIAogICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eSA9ICdGaW5hbmNpYWwgQ29uZHVjdCBBdXRob3JpdHknLCApLAogICAgICAgICAgICAgICAgZ2VvZ3JhcGhpY19hZGRyZXNzID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua192YXNwX2dlb2dyYXBoaWNfYWRkcmVzcy5UUkxpbmtWYXNwR2VvZ3JhcGhpY0FkZHJlc3MoCiAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkX2FkZHJlc3MgPSAnMTIzIE1haW4gU3RyZWV0LCBOZXcgWW9yaywgTlkgMTAwMDEsIFVTQScsIAogICAgICAgICAgICAgICAgICAgIGNvdW50cnkgPSAnVVNBJywgCiAgICAgICAgICAgICAgICAgICAgc3RyZWV0X25hbWUgPSAnTWFpbiBTdHJlZXQnLCAKICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19udW1iZXIgPSAnMTIzJywgCiAgICAgICAgICAgICAgICAgICAgY2l0eSA9ICdOZXcgWW9yaycsIAogICAgICAgICAgICAgICAgICAgIHBvc3RhbF9jb2RlID0gJzEwMDAxJywgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRSTGlua1Zhc3BMaXN0RHRvKAogICAgICAgICAgICAgICAgaWQgPSAnZGlkOmV0aHI6MHgxMjM0NTY3ODkwYWJjZGVmJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnQUNNRSBWaXJ0dWFsIEFzc2V0cycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VFJMaW5rVmFzcExpc3REdG8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBUUkxpbmtWYXNwTGlzdER0byIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_vasp_national_identification.py b/test/test_tr_link_vasp_national_identification.py index a9f22229..122d9176 100644 --- a/test/test_tr_link_vasp_national_identification.py +++ b/test/test_tr_link_vasp_national_identification.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_vasp_national_identification import ( - TRLinkVaspNationalIdentification, -) - - -class TestTRLinkVaspNationalIdentification(unittest.TestCase): - """TRLinkVaspNationalIdentification unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TRLinkVaspNationalIdentification: - """Test TRLinkVaspNationalIdentification - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TRLinkVaspNationalIdentification` - """ - model = TRLinkVaspNationalIdentification() - if include_optional: - return TRLinkVaspNationalIdentification( - identifier = '123456789', - type = 'LEI', - authority = 'Financial Conduct Authority' - ) - else: - return TRLinkVaspNationalIdentification( - identifier = '123456789', - ) - """ - - def testTRLinkVaspNationalIdentification(self): - """Test TRLinkVaspNationalIdentification""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdmFzcF9uYXRpb25hbF9pZGVudGlmaWNhdGlvbiBpbXBvcnQgKAogICAgVFJMaW5rVmFzcE5hdGlvbmFsSWRlbnRpZmljYXRpb24sCikKCgpjbGFzcyBUZXN0VFJMaW5rVmFzcE5hdGlvbmFsSWRlbnRpZmljYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVFJMaW5rVmFzcE5hdGlvbmFsSWRlbnRpZmljYXRpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRSTGlua1Zhc3BOYXRpb25hbElkZW50aWZpY2F0aW9uOgogICAgICAgICIiIlRlc3QgVFJMaW5rVmFzcE5hdGlvbmFsSWRlbnRpZmljYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVFJMaW5rVmFzcE5hdGlvbmFsSWRlbnRpZmljYXRpb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUUkxpbmtWYXNwTmF0aW9uYWxJZGVudGlmaWNhdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRSTGlua1Zhc3BOYXRpb25hbElkZW50aWZpY2F0aW9uKAogICAgICAgICAgICAgICAgaWRlbnRpZmllciA9ICcxMjM0NTY3ODknLAogICAgICAgICAgICAgICAgdHlwZSA9ICdMRUknLAogICAgICAgICAgICAgICAgYXV0aG9yaXR5ID0gJ0ZpbmFuY2lhbCBDb25kdWN0IEF1dGhvcml0eScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUUkxpbmtWYXNwTmF0aW9uYWxJZGVudGlmaWNhdGlvbigKICAgICAgICAgICAgICAgIGlkZW50aWZpZXIgPSAnMTIzNDU2Nzg5JywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUUkxpbmtWYXNwTmF0aW9uYWxJZGVudGlmaWNhdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua1Zhc3BOYXRpb25hbElkZW50aWZpY2F0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tr_link_verdict.py b/test/test_tr_link_verdict.py index 0dfdc4df..19c9429d 100644 --- a/test/test_tr_link_verdict.py +++ b/test/test_tr_link_verdict.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_verdict import TRLinkVerdict - - -class TestTRLinkVerdict(unittest.TestCase): - """TRLinkVerdict unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTRLinkVerdict(self): - """Test TRLinkVerdict""" - # inst = TRLinkVerdict() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdmVyZGljdCBpbXBvcnQgVFJMaW5rVmVyZGljdAoKCmNsYXNzIFRlc3RUUkxpbmtWZXJkaWN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRSTGlua1ZlcmRpY3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0VFJMaW5rVmVyZGljdChzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua1ZlcmRpY3QiIiIKICAgICAgICAjIGluc3QgPSBUUkxpbmtWZXJkaWN0KCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_tr_link_verdict_enum.py b/test/test_tr_link_verdict_enum.py index 2cff322e..a2ec5d52 100644 --- a/test/test_tr_link_verdict_enum.py +++ b/test/test_tr_link_verdict_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tr_link_verdict_enum import TRLinkVerdictEnum - - -class TestTRLinkVerdictEnum(unittest.TestCase): - """TRLinkVerdictEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTRLinkVerdictEnum(self): - """Test TRLinkVerdictEnum""" - # inst = TRLinkVerdictEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfdmVyZGljdF9lbnVtIGltcG9ydCBUUkxpbmtWZXJkaWN0RW51bQoKCmNsYXNzIFRlc3RUUkxpbmtWZXJkaWN0RW51bSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUUkxpbmtWZXJkaWN0RW51bSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RUUkxpbmtWZXJkaWN0RW51bShzZWxmKToKICAgICAgICAiIiJUZXN0IFRSTGlua1ZlcmRpY3RFbnVtIiIiCiAgICAgICAgIyBpbnN0ID0gVFJMaW5rVmVyZGljdEVudW0oKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_trading_account_type.py b/test/test_trading_account_type.py index 13eb0c28..972af7b2 100644 --- a/test/test_trading_account_type.py +++ b/test/test_trading_account_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.trading_account_type import TradingAccountType - - -class TestTradingAccountType(unittest.TestCase): - """TradingAccountType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTradingAccountType(self): - """Test TradingAccountType""" - # inst = TradingAccountType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYWRpbmdfYWNjb3VudF90eXBlIGltcG9ydCBUcmFkaW5nQWNjb3VudFR5cGUKCgpjbGFzcyBUZXN0VHJhZGluZ0FjY291bnRUeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYWRpbmdBY2NvdW50VHlwZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RUcmFkaW5nQWNjb3VudFR5cGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFkaW5nQWNjb3VudFR5cGUiIiIKICAgICAgICAjIGluc3QgPSBUcmFkaW5nQWNjb3VudFR5cGUoKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_trading_beta_api.py b/test/test_trading_beta_api.py index f28b2541..627bdd5a 100644 --- a/test/test_trading_beta_api.py +++ b/test/test_trading_beta_api.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.trading_beta_api import TradingBetaApi - - -class TestTradingBetaApi(unittest.TestCase): - """TradingBetaApi unit test stubs""" - - def setUp(self) -> None: - self.api = TradingBetaApi() - - def tearDown(self) -> None: - pass - - def test_create_order(self) -> None: - """Test case for create_order - - Create an order - """ - pass - - def test_create_quote(self) -> None: - """Test case for create_quote - - Create a quote - """ - pass - - def test_get_order(self) -> None: - """Test case for get_order - - Get order details - """ - pass - - def test_get_orders(self) -> None: - """Test case for get_orders - - Get orders - """ - pass - - def test_get_trading_providers(self) -> None: - """Test case for get_trading_providers - - Get providers - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLnRyYWRpbmdfYmV0YV9hcGkgaW1wb3J0IFRyYWRpbmdCZXRhQXBpCgoKY2xhc3MgVGVzdFRyYWRpbmdCZXRhQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYWRpbmdCZXRhQXBpIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKSAtPiBOb25lOgogICAgICAgIHNlbGYuYXBpID0gVHJhZGluZ0JldGFBcGkoKQoKICAgIGRlZiB0ZWFyRG93bihzZWxmKSAtPiBOb25lOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9jcmVhdGVfb3JkZXIoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGNyZWF0ZV9vcmRlcgoKICAgICAgICBDcmVhdGUgYW4gb3JkZXIKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY3JlYXRlX3F1b3RlKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBjcmVhdGVfcXVvdGUKCiAgICAgICAgQ3JlYXRlIGEgcXVvdGUKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X29yZGVyKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfb3JkZXIKCiAgICAgICAgR2V0IG9yZGVyIGRldGFpbHMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X29yZGVycyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X29yZGVycwoKICAgICAgICBHZXQgb3JkZXJzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF90cmFkaW5nX3Byb3ZpZGVyX2J5X2lkKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfdHJhZGluZ19wcm92aWRlcl9ieV9pZAoKICAgICAgICBHZXQgdHJhZGluZyBwcm92aWRlciBieSBJRAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfdHJhZGluZ19wcm92aWRlcnMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF90cmFkaW5nX3Byb3ZpZGVycwoKICAgICAgICBHZXQgcHJvdmlkZXJzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_trading_error_schema.py b/test/test_trading_error_schema.py index e9785db6..fe8321cd 100644 --- a/test/test_trading_error_schema.py +++ b/test/test_trading_error_schema.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.trading_error_schema import TradingErrorSchema - - -class TestTradingErrorSchema(unittest.TestCase): - """TradingErrorSchema unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TradingErrorSchema: - """Test TradingErrorSchema - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TradingErrorSchema` - """ - model = TradingErrorSchema() - if include_optional: - return TradingErrorSchema( - message = '', - code = 1.337, - descriptor = '' - ) - else: - return TradingErrorSchema( - message = '', - code = 1.337, - ) - """ - - def testTradingErrorSchema(self): - """Test TradingErrorSchema""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYWRpbmdfZXJyb3Jfc2NoZW1hIGltcG9ydCBUcmFkaW5nRXJyb3JTY2hlbWEKCgpjbGFzcyBUZXN0VHJhZGluZ0Vycm9yU2NoZW1hKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYWRpbmdFcnJvclNjaGVtYSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhZGluZ0Vycm9yU2NoZW1hOgogICAgICAgICIiIlRlc3QgVHJhZGluZ0Vycm9yU2NoZW1hCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYWRpbmdFcnJvclNjaGVtYWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYWRpbmdFcnJvclNjaGVtYSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRyYWRpbmdFcnJvclNjaGVtYSgKICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnJywKICAgICAgICAgICAgICAgIGNvZGUgPSAxLjMzNywKICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRyYWRpbmdFcnJvclNjaGVtYSgKICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnJywKICAgICAgICAgICAgICAgIGNvZGUgPSAxLjMzNywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmFkaW5nRXJyb3JTY2hlbWEoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFkaW5nRXJyb3JTY2hlbWEiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_trading_provider.py b/test/test_trading_provider.py index 22e13f28..1e20c608 100644 --- a/test/test_trading_provider.py +++ b/test/test_trading_provider.py @@ -1,71 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.trading_provider import TradingProvider - - -class TestTradingProvider(unittest.TestCase): - """TradingProvider unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TradingProvider: - """Test TradingProvider - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TradingProvider` - """ - model = TradingProvider() - if include_optional: - return TradingProvider( - id = '', - name = '', - logo = '', - account_based = True, - manifest = {"assetTypes":["DIGITAL","FIAT"],"capabilities":["SPOT_TRADING","LIMIT_ORDERS"]}, - connected = True, - accounts = [ - {"id":"acc_9f4e2d8b1c6a5e73","name":"Main Trading Account"} - ], - approved = True, - has_terms_of_service = True, - terms_of_service_url = '' - ) - else: - return TradingProvider( - id = '', - name = '', - account_based = True, - manifest = {"assetTypes":["DIGITAL","FIAT"],"capabilities":["SPOT_TRADING","LIMIT_ORDERS"]}, - connected = True, - has_terms_of_service = True, - ) - """ - - def testTradingProvider(self): - """Test TradingProvider""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYWRpbmdfcHJvdmlkZXIgaW1wb3J0IFRyYWRpbmdQcm92aWRlcgoKCmNsYXNzIFRlc3RUcmFkaW5nUHJvdmlkZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhZGluZ1Byb3ZpZGVyIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUcmFkaW5nUHJvdmlkZXI6CiAgICAgICAgIiIiVGVzdCBUcmFkaW5nUHJvdmlkZXIKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhZGluZ1Byb3ZpZGVyYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVHJhZGluZ1Byb3ZpZGVyKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhZGluZ1Byb3ZpZGVyKAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnJywKICAgICAgICAgICAgICAgIGxvZ28gPSAnJywKICAgICAgICAgICAgICAgIGFjY291bnRfYmFzZWQgPSBUcnVlLAogICAgICAgICAgICAgICAgbWFuaWZlc3QgPSB7Im9yZGVyIjp7InN1cHBvcnRlZCI6dHJ1ZSwiZXhlY3V0aW9uVHlwZXMiOlsiTUFSS0VUIiwiUVVPVEUiXSwic2V0dGxlbWVudFR5cGVzIjpbIkRWUCJdfSwicXVvdGUiOnsic3VwcG9ydGVkIjp0cnVlLCJzZXR0bGVtZW50VHlwZXMiOlsiRFZQIl19LCJyYXRlIjp7InN1cHBvcnRlZCI6dHJ1ZX19LAogICAgICAgICAgICAgICAgY29ubmVjdGVkID0gVHJ1ZSwKICAgICAgICAgICAgICAgIGFjY291bnRzID0gWwogICAgICAgICAgICAgICAgICAgIHsiaWQiOiJhY2NfOWY0ZTJkOGIxYzZhNWU3MyIsIm5hbWUiOiJNYWluIFRyYWRpbmcgQWNjb3VudCJ9CiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGFwcHJvdmVkID0gVHJ1ZSwKICAgICAgICAgICAgICAgIGhhc190ZXJtc19vZl9zZXJ2aWNlID0gVHJ1ZSwKICAgICAgICAgICAgICAgIHRlcm1zX29mX3NlcnZpY2VfdXJsID0gJycsCiAgICAgICAgICAgICAgICBwcml2YWN5X3BvbGljeV91cmwgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRyYWRpbmdQcm92aWRlcigKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICBuYW1lID0gJycsCiAgICAgICAgICAgICAgICBhY2NvdW50X2Jhc2VkID0gVHJ1ZSwKICAgICAgICAgICAgICAgIG1hbmlmZXN0ID0geyJvcmRlciI6eyJzdXBwb3J0ZWQiOnRydWUsImV4ZWN1dGlvblR5cGVzIjpbIk1BUktFVCIsIlFVT1RFIl0sInNldHRsZW1lbnRUeXBlcyI6WyJEVlAiXX0sInF1b3RlIjp7InN1cHBvcnRlZCI6dHJ1ZSwic2V0dGxlbWVudFR5cGVzIjpbIkRWUCJdfSwicmF0ZSI6eyJzdXBwb3J0ZWQiOnRydWV9fSwKICAgICAgICAgICAgICAgIGNvbm5lY3RlZCA9IFRydWUsCiAgICAgICAgICAgICAgICBhY2NvdW50cyA9IFsKICAgICAgICAgICAgICAgICAgICB7ImlkIjoiYWNjXzlmNGUyZDhiMWM2YTVlNzMiLCJuYW1lIjoiTWFpbiBUcmFkaW5nIEFjY291bnQifQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBoYXNfdGVybXNfb2Zfc2VydmljZSA9IFRydWUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhZGluZ1Byb3ZpZGVyKHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJhZGluZ1Byb3ZpZGVyIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_trading_provider_details.py b/test/test_trading_provider_details.py new file mode 100644 index 00000000..2cf1f3e5 --- /dev/null +++ b/test/test_trading_provider_details.py @@ -0,0 +1 @@ +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYWRpbmdfcHJvdmlkZXJfZGV0YWlscyBpbXBvcnQgVHJhZGluZ1Byb3ZpZGVyRGV0YWlscwoKCmNsYXNzIFRlc3RUcmFkaW5nUHJvdmlkZXJEZXRhaWxzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYWRpbmdQcm92aWRlckRldGFpbHMgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRyYWRpbmdQcm92aWRlckRldGFpbHM6CiAgICAgICAgIiIiVGVzdCBUcmFkaW5nUHJvdmlkZXJEZXRhaWxzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYWRpbmdQcm92aWRlckRldGFpbHNgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUcmFkaW5nUHJvdmlkZXJEZXRhaWxzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhZGluZ1Byb3ZpZGVyRGV0YWlscygKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICBuYW1lID0gJycsCiAgICAgICAgICAgICAgICBsb2dvID0gJycsCiAgICAgICAgICAgICAgICBhY2NvdW50X2Jhc2VkID0gVHJ1ZSwKICAgICAgICAgICAgICAgIG1hbmlmZXN0ID0geyJvcmRlciI6eyJzdXBwb3J0ZWQiOnRydWUsImV4ZWN1dGlvblR5cGVzIjpbIk1BUktFVCIsIlFVT1RFIl0sInNldHRsZW1lbnRUeXBlcyI6WyJEVlAiXX0sInF1b3RlIjp7InN1cHBvcnRlZCI6dHJ1ZSwic2V0dGxlbWVudFR5cGVzIjpbIkRWUCJdfSwicmF0ZSI6eyJzdXBwb3J0ZWQiOnRydWV9fSwKICAgICAgICAgICAgICAgIGNvbm5lY3RlZCA9IFRydWUsCiAgICAgICAgICAgICAgICBhY2NvdW50cyA9IFsKICAgICAgICAgICAgICAgICAgICB7ImlkIjoiYWNjXzlmNGUyZDhiMWM2YTVlNzMiLCJuYW1lIjoiTWFpbiBUcmFkaW5nIEFjY291bnQifQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBhcHByb3ZlZCA9IFRydWUsCiAgICAgICAgICAgICAgICBoYXNfdGVybXNfb2Zfc2VydmljZSA9IFRydWUsCiAgICAgICAgICAgICAgICB0ZXJtc19vZl9zZXJ2aWNlX3VybCA9ICcnLAogICAgICAgICAgICAgICAgcHJpdmFjeV9wb2xpY3lfdXJsID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmFkaW5nUHJvdmlkZXJEZXRhaWxzKAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnJywKICAgICAgICAgICAgICAgIGFjY291bnRfYmFzZWQgPSBUcnVlLAogICAgICAgICAgICAgICAgbWFuaWZlc3QgPSB7Im9yZGVyIjp7InN1cHBvcnRlZCI6dHJ1ZSwiZXhlY3V0aW9uVHlwZXMiOlsiTUFSS0VUIiwiUVVPVEUiXSwic2V0dGxlbWVudFR5cGVzIjpbIkRWUCJdfSwicXVvdGUiOnsic3VwcG9ydGVkIjp0cnVlLCJzZXR0bGVtZW50VHlwZXMiOlsiRFZQIl19LCJyYXRlIjp7InN1cHBvcnRlZCI6dHJ1ZX19LAogICAgICAgICAgICAgICAgY29ubmVjdGVkID0gVHJ1ZSwKICAgICAgICAgICAgICAgIGFjY291bnRzID0gWwogICAgICAgICAgICAgICAgICAgIHsiaWQiOiJhY2NfOWY0ZTJkOGIxYzZhNWU3MyIsIm5hbWUiOiJNYWluIFRyYWRpbmcgQWNjb3VudCJ9CiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGhhc190ZXJtc19vZl9zZXJ2aWNlID0gVHJ1ZSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmFkaW5nUHJvdmlkZXJEZXRhaWxzKHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJhZGluZ1Byb3ZpZGVyRGV0YWlscyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_transaction.py b/test/test_transaction.py index d4c173a7..a4364eb1 100644 --- a/test/test_transaction.py +++ b/test/test_transaction.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transaction import Transaction - - -class TestTransaction(unittest.TestCase): - """Transaction unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Transaction: - """Test Transaction - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Transaction` - """ - model = Transaction() - if include_optional: - return Transaction( - id = '', - state = 'SUBMITTED', - timestamp = 1.337, - instruction_id = '' - ) - else: - return Transaction( - id = '', - state = 'SUBMITTED', - ) - """ - - def testTransaction(self): - """Test Transaction""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uIGltcG9ydCBUcmFuc2FjdGlvbgoKCmNsYXNzIFRlc3RUcmFuc2FjdGlvbih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmFuc2FjdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhbnNhY3Rpb246CiAgICAgICAgIiIiVGVzdCBUcmFuc2FjdGlvbgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmFuc2FjdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYW5zYWN0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb24oCiAgICAgICAgICAgICAgICBpZCA9ICcnLAogICAgICAgICAgICAgICAgc3RhdGUgPSAnU1VCTUlUVEVEJywKICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9IDEuMzM3LAogICAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb25faWQgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uKAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIHN0YXRlID0gJ1NVQk1JVFRFRCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhbnNhY3Rpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFuc2FjdGlvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_transaction_direction.py b/test/test_transaction_direction.py index d3001fee..8bd0eb13 100644 --- a/test/test_transaction_direction.py +++ b/test/test_transaction_direction.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transaction_direction import TransactionDirection - - -class TestTransactionDirection(unittest.TestCase): - """TransactionDirection unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTransactionDirection(self): - """Test TransactionDirection""" - # inst = TransactionDirection() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX2RpcmVjdGlvbiBpbXBvcnQgVHJhbnNhY3Rpb25EaXJlY3Rpb24KCgpjbGFzcyBUZXN0VHJhbnNhY3Rpb25EaXJlY3Rpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhbnNhY3Rpb25EaXJlY3Rpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0VHJhbnNhY3Rpb25EaXJlY3Rpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFuc2FjdGlvbkRpcmVjdGlvbiIiIgogICAgICAgICMgaW5zdCA9IFRyYW5zYWN0aW9uRGlyZWN0aW9uKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_transaction_fee.py b/test/test_transaction_fee.py index 4f0cf3a6..a310b686 100644 --- a/test/test_transaction_fee.py +++ b/test/test_transaction_fee.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transaction_fee import TransactionFee - - -class TestTransactionFee(unittest.TestCase): - """TransactionFee unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransactionFee: - """Test TransactionFee - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransactionFee` - """ - model = TransactionFee() - if include_optional: - return TransactionFee( - fee_per_byte = '', - gas_price = 1.337, - gas_limit = '', - network_fee = '', - base_fee = 1.337, - priority_fee = 1.337, - max_fee_per_gas_delta = '', - l1_fee = '' - ) - else: - return TransactionFee( - ) - """ - - def testTransactionFee(self): - """Test TransactionFee""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX2ZlZSBpbXBvcnQgVHJhbnNhY3Rpb25GZWUKCgpjbGFzcyBUZXN0VHJhbnNhY3Rpb25GZWUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhbnNhY3Rpb25GZWUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRyYW5zYWN0aW9uRmVlOgogICAgICAgICIiIlRlc3QgVHJhbnNhY3Rpb25GZWUKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhbnNhY3Rpb25GZWVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUcmFuc2FjdGlvbkZlZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uRmVlKAogICAgICAgICAgICAgICAgZmVlX3Blcl9ieXRlID0gJycsCiAgICAgICAgICAgICAgICBnYXNfcHJpY2UgPSAxLjMzNywKICAgICAgICAgICAgICAgIGdhc19saW1pdCA9ICcnLAogICAgICAgICAgICAgICAgbmV0d29ya19mZWUgPSAnJywKICAgICAgICAgICAgICAgIGJhc2VfZmVlID0gMS4zMzcsCiAgICAgICAgICAgICAgICBwcmlvcml0eV9mZWUgPSAxLjMzNywKICAgICAgICAgICAgICAgIG1heF9mZWVfcGVyX2dhc19kZWx0YSA9ICcnLAogICAgICAgICAgICAgICAgbDFfZmVlID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmFuc2FjdGlvbkZlZSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmFuc2FjdGlvbkZlZShzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYW5zYWN0aW9uRmVlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_transaction_operation.py b/test/test_transaction_operation.py index b2fc37d0..ed68e455 100644 --- a/test/test_transaction_operation.py +++ b/test/test_transaction_operation.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transaction_operation import TransactionOperation - - -class TestTransactionOperation(unittest.TestCase): - """TransactionOperation unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTransactionOperation(self): - """Test TransactionOperation""" - # inst = TransactionOperation() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX29wZXJhdGlvbiBpbXBvcnQgVHJhbnNhY3Rpb25PcGVyYXRpb24KCgpjbGFzcyBUZXN0VHJhbnNhY3Rpb25PcGVyYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhbnNhY3Rpb25PcGVyYXRpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0VHJhbnNhY3Rpb25PcGVyYXRpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFuc2FjdGlvbk9wZXJhdGlvbiIiIgogICAgICAgICMgaW5zdCA9IFRyYW5zYWN0aW9uT3BlcmF0aW9uKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_transaction_operation_enum.py b/test/test_transaction_operation_enum.py index ac8f1c0e..90dd0265 100644 --- a/test/test_transaction_operation_enum.py +++ b/test/test_transaction_operation_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transaction_operation_enum import TransactionOperationEnum - - -class TestTransactionOperationEnum(unittest.TestCase): - """TransactionOperationEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTransactionOperationEnum(self): - """Test TransactionOperationEnum""" - # inst = TransactionOperationEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX29wZXJhdGlvbl9lbnVtIGltcG9ydCBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0KCgpjbGFzcyBUZXN0VHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0oc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0iIiIKICAgICAgICAjIGluc3QgPSBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0oKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_transaction_receipt_response.py b/test/test_transaction_receipt_response.py index 27366b03..c4eb00ce 100644 --- a/test/test_transaction_receipt_response.py +++ b/test/test_transaction_receipt_response.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transaction_receipt_response import TransactionReceiptResponse - - -class TestTransactionReceiptResponse(unittest.TestCase): - """TransactionReceiptResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransactionReceiptResponse: - """Test TransactionReceiptResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransactionReceiptResponse` - """ - model = TransactionReceiptResponse() - if include_optional: - return TransactionReceiptResponse( - block_hash = '0x6e3c92a3d96f96e46b7f39c30244edb6e8e0f4b65d3846c9f8287f9dd5d1a3d2', - block_number = 123456, - contract_address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66', - cumulative_gas_used = 21000, - effective_gas_price = 1000000000, - var_from = '0xa7D9ddBE1f17865597Fbd27ec712455208B6b76D', - gas_used = 21000, - logs = [ - fireblocks.models.tx_log.TxLog( - address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66', - topics = ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000a7d9ddbe1f17865597fbd27ec712455208b6b76d","0x000000000000000000000000c2c4e1db41f0bb97996d0ed0542d2170d146fb66"], - data = '0x000000000000000000000000000000000000000000000000000000000000000a', - block_number = 123456, - transaction_hash = '0x5a3b7f4b2c9e4a0b1f8a12c8e5f1d0e2a6b4c9d1f7e2b1a2b3c4d5e6f7a8b9c', - transaction_index = 2, - block_hash = '0x6e3c92a3d96f96e46b7f39c30244edb6e8e0f4b65d3846c9f8287f9dd5d1a3d2', - log_index = 1, - removed = False, ) - ], - logs_bloom = '0x0000000000000000000000000000000000000000000000000000000000000000', - status = 1, - to = '0x1eC4a8bB9bB9Afa24f79cC2e1423cD00B6cFf50', - transaction_hash = '0x5a3b7f4b2c9e4a0b1f8a12c8e5f1d0e2a6b4c9d1f7e2b1a2b3c4d5e6f7a8b9c', - transaction_index = 3, - type = '0x2' - ) - else: - return TransactionReceiptResponse( - block_hash = '0x6e3c92a3d96f96e46b7f39c30244edb6e8e0f4b65d3846c9f8287f9dd5d1a3d2', - block_number = 123456, - cumulative_gas_used = 21000, - effective_gas_price = 1000000000, - var_from = '0xa7D9ddBE1f17865597Fbd27ec712455208B6b76D', - gas_used = 21000, - logs = [ - fireblocks.models.tx_log.TxLog( - address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66', - topics = ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000a7d9ddbe1f17865597fbd27ec712455208b6b76d","0x000000000000000000000000c2c4e1db41f0bb97996d0ed0542d2170d146fb66"], - data = '0x000000000000000000000000000000000000000000000000000000000000000a', - block_number = 123456, - transaction_hash = '0x5a3b7f4b2c9e4a0b1f8a12c8e5f1d0e2a6b4c9d1f7e2b1a2b3c4d5e6f7a8b9c', - transaction_index = 2, - block_hash = '0x6e3c92a3d96f96e46b7f39c30244edb6e8e0f4b65d3846c9f8287f9dd5d1a3d2', - log_index = 1, - removed = False, ) - ], - logs_bloom = '0x0000000000000000000000000000000000000000000000000000000000000000', - status = 1, - transaction_hash = '0x5a3b7f4b2c9e4a0b1f8a12c8e5f1d0e2a6b4c9d1f7e2b1a2b3c4d5e6f7a8b9c', - transaction_index = 3, - type = '0x2', - ) - """ - - def testTransactionReceiptResponse(self): - """Test TransactionReceiptResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlY2VpcHRfcmVzcG9uc2UgaW1wb3J0IFRyYW5zYWN0aW9uUmVjZWlwdFJlc3BvbnNlCgoKY2xhc3MgVGVzdFRyYW5zYWN0aW9uUmVjZWlwdFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYW5zYWN0aW9uUmVjZWlwdFJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUcmFuc2FjdGlvblJlY2VpcHRSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFRyYW5zYWN0aW9uUmVjZWlwdFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYW5zYWN0aW9uUmVjZWlwdFJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVHJhbnNhY3Rpb25SZWNlaXB0UmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmFuc2FjdGlvblJlY2VpcHRSZXNwb25zZSgKICAgICAgICAgICAgICAgIGJsb2NrX2hhc2ggPSAnMHg2ZTNjOTJhM2Q5NmY5NmU0NmI3ZjM5YzMwMjQ0ZWRiNmU4ZTBmNGI2NWQzODQ2YzlmODI4N2Y5ZGQ1ZDFhM2QyJywKICAgICAgICAgICAgICAgIGJsb2NrX251bWJlciA9IDEyMzQ1NiwKICAgICAgICAgICAgICAgIGNvbnRyYWN0X2FkZHJlc3MgPSAnMHhDMmM0ZTFEYjQxRjBiQjk3OTk2RDBlRDA1NDJEMjE3MGQxNDZGQjY2JywKICAgICAgICAgICAgICAgIGN1bXVsYXRpdmVfZ2FzX3VzZWQgPSAyMTAwMCwKICAgICAgICAgICAgICAgIGVmZmVjdGl2ZV9nYXNfcHJpY2UgPSAxMDAwMDAwMDAwLAogICAgICAgICAgICAgICAgdmFyX2Zyb20gPSAnMHhhN0Q5ZGRCRTFmMTc4NjU1OTdGYmQyN2VjNzEyNDU1MjA4QjZiNzZEJywKICAgICAgICAgICAgICAgIGdhc191c2VkID0gMjEwMDAsCiAgICAgICAgICAgICAgICBsb2dzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnR4X2xvZy5UeExvZygKICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweEMyYzRlMURiNDFGMGJCOTc5OTZEMGVEMDU0MkQyMTcwZDE0NkZCNjYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdG9waWNzID0gWyIweGRkZjI1MmFkMWJlMmM4OWI2OWMyYjA2OGZjMzc4ZGFhOTUyYmE3ZjE2M2M0YTExNjI4ZjU1YTRkZjUyM2IzZWYiLCIweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGE3ZDlkZGJlMWYxNzg2NTU5N2ZiZDI3ZWM3MTI0NTUyMDhiNmI3NmQiLCIweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGMyYzRlMWRiNDFmMGJiOTc5OTZkMGVkMDU0MmQyMTcwZDE0NmZiNjYiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSAnMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBhJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrX251bWJlciA9IDEyMzQ1NiwgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uX2hhc2ggPSAnMHg1YTNiN2Y0YjJjOWU0YTBiMWY4YTEyYzhlNWYxZDBlMmE2YjRjOWQxZjdlMmIxYTJiM2M0ZDVlNmY3YThiOWMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25faW5kZXggPSAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tfaGFzaCA9ICcweDZlM2M5MmEzZDk2Zjk2ZTQ2YjdmMzljMzAyNDRlZGI2ZThlMGY0YjY1ZDM4NDZjOWY4Mjg3ZjlkZDVkMWEzZDInLCAKICAgICAgICAgICAgICAgICAgICAgICAgbG9nX2luZGV4ID0gMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZWQgPSBGYWxzZSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBsb2dzX2Jsb29tID0gJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAxLAogICAgICAgICAgICAgICAgdG8gPSAnMHgxZUM0YThiQjliQjlBZmEyNGY3OWNDMmUxNDIzY0QwMEI2Y0ZmNTAnLAogICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25faGFzaCA9ICcweDVhM2I3ZjRiMmM5ZTRhMGIxZjhhMTJjOGU1ZjFkMGUyYTZiNGM5ZDFmN2UyYjFhMmIzYzRkNWU2ZjdhOGI5YycsCiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbl9pbmRleCA9IDMsCiAgICAgICAgICAgICAgICB0eXBlID0gJzB4MicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmFuc2FjdGlvblJlY2VpcHRSZXNwb25zZSgKICAgICAgICAgICAgICAgIGJsb2NrX2hhc2ggPSAnMHg2ZTNjOTJhM2Q5NmY5NmU0NmI3ZjM5YzMwMjQ0ZWRiNmU4ZTBmNGI2NWQzODQ2YzlmODI4N2Y5ZGQ1ZDFhM2QyJywKICAgICAgICAgICAgICAgIGJsb2NrX251bWJlciA9IDEyMzQ1NiwKICAgICAgICAgICAgICAgIGN1bXVsYXRpdmVfZ2FzX3VzZWQgPSAyMTAwMCwKICAgICAgICAgICAgICAgIGVmZmVjdGl2ZV9nYXNfcHJpY2UgPSAxMDAwMDAwMDAwLAogICAgICAgICAgICAgICAgdmFyX2Zyb20gPSAnMHhhN0Q5ZGRCRTFmMTc4NjU1OTdGYmQyN2VjNzEyNDU1MjA4QjZiNzZEJywKICAgICAgICAgICAgICAgIGdhc191c2VkID0gMjEwMDAsCiAgICAgICAgICAgICAgICBsb2dzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnR4X2xvZy5UeExvZygKICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweEMyYzRlMURiNDFGMGJCOTc5OTZEMGVEMDU0MkQyMTcwZDE0NkZCNjYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdG9waWNzID0gWyIweGRkZjI1MmFkMWJlMmM4OWI2OWMyYjA2OGZjMzc4ZGFhOTUyYmE3ZjE2M2M0YTExNjI4ZjU1YTRkZjUyM2IzZWYiLCIweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGE3ZDlkZGJlMWYxNzg2NTU5N2ZiZDI3ZWM3MTI0NTUyMDhiNmI3NmQiLCIweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGMyYzRlMWRiNDFmMGJiOTc5OTZkMGVkMDU0MmQyMTcwZDE0NmZiNjYiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSAnMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBhJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrX251bWJlciA9IDEyMzQ1NiwgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uX2hhc2ggPSAnMHg1YTNiN2Y0YjJjOWU0YTBiMWY4YTEyYzhlNWYxZDBlMmE2YjRjOWQxZjdlMmIxYTJiM2M0ZDVlNmY3YThiOWMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25faW5kZXggPSAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tfaGFzaCA9ICcweDZlM2M5MmEzZDk2Zjk2ZTQ2YjdmMzljMzAyNDRlZGI2ZThlMGY0YjY1ZDM4NDZjOWY4Mjg3ZjlkZDVkMWEzZDInLCAKICAgICAgICAgICAgICAgICAgICAgICAgbG9nX2luZGV4ID0gMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZWQgPSBGYWxzZSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBsb2dzX2Jsb29tID0gJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAxLAogICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25faGFzaCA9ICcweDVhM2I3ZjRiMmM5ZTRhMGIxZjhhMTJjOGU1ZjFkMGUyYTZiNGM5ZDFmN2UyYjFhMmIzYzRkNWU2ZjdhOGI5YycsCiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbl9pbmRleCA9IDMsCiAgICAgICAgICAgICAgICB0eXBlID0gJzB4MicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhbnNhY3Rpb25SZWNlaXB0UmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFuc2FjdGlvblJlY2VpcHRSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_transaction_request.py b/test/test_transaction_request.py index 7396327d..9d4a8563 100644 --- a/test/test_transaction_request.py +++ b/test/test_transaction_request.py @@ -1,211 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transaction_request import TransactionRequest - - -class TestTransactionRequest(unittest.TestCase): - """TransactionRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransactionRequest: - """Test TransactionRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransactionRequest` - """ - model = TransactionRequest() - if include_optional: - return TransactionRequest( - operation = 'TRANSFER', - note = 'Ticket 123', - external_tx_id = '00000000-0000-0000-0000-000000000000', - asset_id = 'ETH', - source = fireblocks.models.source_transfer_peer_path.SourceTransferPeerPath( - type = 'VAULT_ACCOUNT', - sub_type = 'BINANCE', - id = '', - name = '', - wallet_id = '', - is_collateral = True, ), - destination = fireblocks.models.destination_transfer_peer_path.DestinationTransferPeerPath( - type = 'VAULT_ACCOUNT', - sub_type = 'BINANCE', - id = '', - name = '', - wallet_id = '', - one_time_address = fireblocks.models.one_time_address.OneTimeAddress( - address = '', - tag = '', ), - is_collateral = True, ), - destinations = [ - fireblocks.models.transaction_request_destination.TransactionRequestDestination( - amount = '', - destination = fireblocks.models.destination_transfer_peer_path.DestinationTransferPeerPath( - type = 'VAULT_ACCOUNT', - sub_type = 'BINANCE', - id = '', - name = '', - wallet_id = '', - one_time_address = fireblocks.models.one_time_address.OneTimeAddress( - address = '', - tag = '', ), - is_collateral = True, ), - travel_rule_message_id = 'trm_12345678-1234-1234-1234-123456789012', - customer_ref_id = 'abcdef', ) - ], - amount = None, - treat_as_gross_amount = False, - force_sweep = False, - fee_level = 'MEDIUM', - fee = None, - priority_fee = None, - fail_on_low_fee = True, - max_fee = '120', - max_total_fee = '88', - gas_limit = None, - gas_price = None, - network_fee = None, - replace_tx_by_hash = '00000000-0000-0000-0000-000000000000', - extra_parameters = { }, - customer_ref_id = 'abcdef', - travel_rule_message = fireblocks.models.travel_rule_create_transaction_request.TravelRuleCreateTransactionRequest( - originator_vas_pdid = 'did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2', - beneficiary_vas_pdid = 'did:ethr:0x17fe2dd11a2daa7f6c1fdf22532a4763f963aea6', - originator_vas_pname = 'Originator VASP Ltd.', - beneficiary_vas_pname = 'Beneficiary VASP Inc.', - beneficiary_vas_pwebsite = 'https://www.beneficiaryvasp.com', - transaction_blockchain_info = fireblocks.models.travel_rule_transaction_blockchain_info.TravelRuleTransactionBlockchainInfo( - tx_hash = '6.685730843558756E+76', - origin = '8.41132469470587E+47', - destination = '8.41132469470587E+47', ), - originator = fireblocks.models.travel_rule_pii_ivms.TravelRulePiiIVMS( - originator_persons = [ - fireblocks.models.travel_rule_person.TravelRulePerson( - natural_person = fireblocks.models.travel_rule_natural_person.TravelRuleNaturalPerson( - name = [ - fireblocks.models.travel_rule_natural_person_name_identifier.TravelRuleNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - phonetic_name_identifier = [ - - ], ) - ], - geographic_address = [ - fireblocks.models.travel_rule_geographic_address.TravelRuleGeographicAddress( - street_name = 'QmZGXXsKPk5iPS97LLjXB5e8Qs555ocdzcpbPMXvt84Ji9', - town_name = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - country = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - building_number = 'QmUFpNkxdsVtebDSUz5eP51kzoysXmqj2gBgeH11PD7SVP', - post_code = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - address_type = 'Qmdr9LcChZsoivS6uAhe7Qk7cGLDAx73wBZTVvq4WoU71H', - department = 'QmN7fb65x5MyA7RKyhbXaUKvJ7U4Y9eqpEZTmJYpNyEG8', - sub_department = 'QmTkfyGh54tXNqFxyEGK9NyTJZYpQ6RZ9zpNykxykME8s', - building_name = 'QmXJfGk85t6RKyhbXaEK9Nz4MEeMKypq6EY9zpJyC9nM9', - floor = 'QmZP5G7fhZpMyQxXnT9KyR6ybXaEM9zpJy4ME9MkTJGE1', - post_box = 'QmTkfYRGK54xFqXyJYNZyE9kY9zpMKytJnXy5z9EME9sJ', - room = 'QmRYXnT9KyhbXaEMZpMyxMkZ9zpYNYTJ4ME5kCGE7fhMJ', - town_location_name = 'QmNpZTyXJXnT9K6EYZpQxYNYMkC5p4kGEfhnkMJzpYT9Jm', - district_name = 'QmT9p6ERKyNYXnTyhbpMYJ4zpYT9kMJZT9QmEMGZ5kMhCy', - country_sub_division = 'QmK9yTbXaZpMYJYTYp6NT9QmEMGZT9p9kMJfhyGE4Z7k5C', - address_line = ["QmNp9kMjfhGZ5kMJzpNYXZTy6NQmZYEMGZ4kZT9Y6pNYT"], ) - ], - national_identification = fireblocks.models.travel_rule_national_identification.TravelRuleNationalIdentification( - country_of_issue = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - national_identifier = 'QmdR6qLnZ7Kwf5cBaXG8QFQenEvRg9JNZeoPranVuGd63z', - national_identifier_type = 'QmUKTg3aFJFhMz1o9gPqA3MgTRwd2LvDLwWTPHYUoMEYVi', - registration_authority = 'QmV9KJMyT9RJzpYfhME5xNCZ4G67fEkzTpRMyJzp9kTNYk', ), - date_and_place_of_birth = fireblocks.models.travel_rule_date_and_place_of_birth.TravelRuleDateAndPlaceOfBirth( - date_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - place_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', ), - customer_identification = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - country_of_residence = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - customer_number = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', ), - legal_person = fireblocks.models.travel_rule_legal_person.TravelRuleLegalPerson( - customer_identification = 'QmRY9AA4Uit2JRTxDzfzshrJdTK86Kf5HriA3dXDnihDmy', - customer_number = 'QmXvyML3AJUFpBbJqL5NVp7Vn7xNkuedTsSMk93duLCNW8', - country_of_registration = 'QmeoTk6UPruEAYNbJEAHdQYc53ap9BXmpnPMcuvs8wutdr', ), ) - ], - beneficiary_persons = [ - fireblocks.models.travel_rule_person.TravelRulePerson() - ], - account_number = [ - 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt' - ], ), - beneficiary = fireblocks.models.travel_rule_pii_ivms.TravelRulePiiIVMS(), - encrypted = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...', - protocol = 'IVMS101', - target_protocol = 'GTR', - skip_beneficiary_data_validation = False, - travel_rule_behavior = True, - originator_ref = 'ORG123456', - beneficiary_ref = 'BEN654321', - travel_rule_behavior_ref = 'TRB987654', - originator_proof = fireblocks.models.travel_rule_ownership_proof.TravelRuleOwnershipProof( - type = 'eip-191', - proof = '0x3dd4a17a...ce4a2bcd1b', - attestation = 'I certify that ETH account 0x896B...0b9b belongs to me.', - address = '0x896B...0b9b', - wallet_provider = 'Metamask', - url = 'https://example.com/uploaded_image.png', - confirmed = True, ), - beneficiary_proof = fireblocks.models.travel_rule_ownership_proof.TravelRuleOwnershipProof( - type = 'eip-191', - proof = '0x3dd4a17a...ce4a2bcd1b', - attestation = 'I certify that ETH account 0x896B...0b9b belongs to me.', - address = '0x896B...0b9b', - wallet_provider = 'Metamask', - url = 'https://example.com/uploaded_image.png', - confirmed = True, ), - beneficiary_did = 'did:key:z6Mkf67890Zghijkl67890', - originator_did = 'did:key:z6Mkf12345Zabcdef12345', - is_non_custodial = True, ), - travel_rule_message_id = 'trm_12345678-1234-1234-1234-123456789012', - auto_staking = True, - network_staking = None, - cpu_staking = None, - use_gasless = True - ) - else: - return TransactionRequest( - ) - """ - - def testTransactionRequest(self): - """Test TransactionRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlcXVlc3QgaW1wb3J0IFRyYW5zYWN0aW9uUmVxdWVzdAoKCmNsYXNzIFRlc3RUcmFuc2FjdGlvblJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhbnNhY3Rpb25SZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUcmFuc2FjdGlvblJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBUcmFuc2FjdGlvblJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhbnNhY3Rpb25SZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVHJhbnNhY3Rpb25SZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb25SZXF1ZXN0KAogICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gJ1RSQU5TRkVSJywKICAgICAgICAgICAgICAgIG5vdGUgPSAnVGlja2V0IDEyMycsCiAgICAgICAgICAgICAgICBleHRlcm5hbF90eF9pZCA9ICcwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAnLAogICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnRVRIJywKICAgICAgICAgICAgICAgIHNvdXJjZSA9IGZpcmVibG9ja3MubW9kZWxzLnNvdXJjZV90cmFuc2Zlcl9wZWVyX3BhdGguU291cmNlVHJhbnNmZXJQZWVyUGF0aCgKICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCAKICAgICAgICAgICAgICAgICAgICBzdWJfdHlwZSA9ICdCSU5BTkNFJywgCiAgICAgICAgICAgICAgICAgICAgaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICB3YWxsZXRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgaXNfY29sbGF0ZXJhbCA9IFRydWUsICksCiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLmRlc3RpbmF0aW9uX3RyYW5zZmVyX3BlZXJfcGF0aC5EZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgoCiAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgCiAgICAgICAgICAgICAgICAgICAgc3ViX3R5cGUgPSAnQklOQU5DRScsIAogICAgICAgICAgICAgICAgICAgIGlkID0gJycsIAogICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgd2FsbGV0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgIG9uZV90aW1lX2FkZHJlc3MgPSBmaXJlYmxvY2tzLm1vZGVscy5vbmVfdGltZV9hZGRyZXNzLk9uZVRpbWVBZGRyZXNzKAogICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICB0YWcgPSAnJywgKSwgCiAgICAgICAgICAgICAgICAgICAgaXNfY29sbGF0ZXJhbCA9IFRydWUsICksCiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNhY3Rpb25fcmVxdWVzdF9kZXN0aW5hdGlvbi5UcmFuc2FjdGlvblJlcXVlc3REZXN0aW5hdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLmRlc3RpbmF0aW9uX3RyYW5zZmVyX3BlZXJfcGF0aC5EZXN0aW5hdGlvblRyYW5zZmVyUGVlclBhdGgoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl90eXBlID0gJ0JJTkFOQ0UnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhbGxldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uZV90aW1lX2FkZHJlc3MgPSBmaXJlYmxvY2tzLm1vZGVscy5vbmVfdGltZV9hZGRyZXNzLk9uZVRpbWVBZGRyZXNzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnID0gJycsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfY29sbGF0ZXJhbCA9IFRydWUsICksIAogICAgICAgICAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV9tZXNzYWdlX2lkID0gJ3RybV8xMjM0NTY3OC0xMjM0LTEyMzQtMTIzNC0xMjM0NTY3ODkwMTInLCAKICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfcmVmX2lkID0gJ2FiY2RlZicsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgYW1vdW50ID0gTm9uZSwKICAgICAgICAgICAgICAgIHRyZWF0X2FzX2dyb3NzX2Ftb3VudCA9IEZhbHNlLAogICAgICAgICAgICAgICAgZm9yY2Vfc3dlZXAgPSBGYWxzZSwKICAgICAgICAgICAgICAgIGZlZV9sZXZlbCA9ICdNRURJVU0nLAogICAgICAgICAgICAgICAgZmVlID0gTm9uZSwKICAgICAgICAgICAgICAgIHByaW9yaXR5X2ZlZSA9IE5vbmUsCiAgICAgICAgICAgICAgICBmYWlsX29uX2xvd19mZWUgPSBUcnVlLAogICAgICAgICAgICAgICAgbWF4X2ZlZSA9ICcxMjAnLAogICAgICAgICAgICAgICAgbWF4X3RvdGFsX2ZlZSA9ICc4OCcsCiAgICAgICAgICAgICAgICBnYXNfbGltaXQgPSBOb25lLAogICAgICAgICAgICAgICAgZ2FzX3ByaWNlID0gTm9uZSwKICAgICAgICAgICAgICAgIG5ldHdvcmtfZmVlID0gTm9uZSwKICAgICAgICAgICAgICAgIHJlcGxhY2VfdHhfYnlfaGFzaCA9ICcwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAnLAogICAgICAgICAgICAgICAgZXh0cmFfcGFyYW1ldGVycyA9IHsgfSwKICAgICAgICAgICAgICAgIGN1c3RvbWVyX3JlZl9pZCA9ICdhYmNkZWYnLAogICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfbWVzc2FnZSA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2NyZWF0ZV90cmFuc2FjdGlvbl9yZXF1ZXN0LlRyYXZlbFJ1bGVDcmVhdGVUcmFuc2FjdGlvblJlcXVlc3QoCiAgICAgICAgICAgICAgICAgICAgb3JpZ2luYXRvcl92YXNfcGRpZCA9ICdkaWQ6ZXRocjoweDQ0OTU3ZTc1ZDZjZTRhNWJmMzdhYWUxMTdkYTg2NDIyYzg0OGY3YzInLCAKICAgICAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV92YXNfcGRpZCA9ICdkaWQ6ZXRocjoweDE3ZmUyZGQxMWEyZGFhN2Y2YzFmZGYyMjUzMmE0NzYzZjk2M2FlYTYnLCAKICAgICAgICAgICAgICAgICAgICBvcmlnaW5hdG9yX3Zhc19wbmFtZSA9ICdPcmlnaW5hdG9yIFZBU1AgTHRkLicsIAogICAgICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5X3Zhc19wbmFtZSA9ICdCZW5lZmljaWFyeSBWQVNQIEluYy4nLCAKICAgICAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV92YXNfcHdlYnNpdGUgPSAnaHR0cHM6Ly93d3cuYmVuZWZpY2lhcnl2YXNwLmNvbScsIAogICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uX2Jsb2NrY2hhaW5faW5mbyA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3RyYW5zYWN0aW9uX2Jsb2NrY2hhaW5faW5mby5UcmF2ZWxSdWxlVHJhbnNhY3Rpb25CbG9ja2NoYWluSW5mbygKICAgICAgICAgICAgICAgICAgICAgICAgdHhfaGFzaCA9ICc2LjY4NTczMDg0MzU1ODc1NkUrNzYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luID0gJzguNDExMzI0Njk0NzA1ODdFKzQ3JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gJzguNDExMzI0Njk0NzA1ODdFKzQ3JywgKSwgCiAgICAgICAgICAgICAgICAgICAgb3JpZ2luYXRvciA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3BpaV9pdm1zLlRyYXZlbFJ1bGVQaWlJVk1TKAogICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hdG9yX3BlcnNvbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9wZXJzb24uVHJhdmVsUnVsZVBlcnNvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXR1cmFsX3BlcnNvbiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uLlRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyLlRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9pZGVudGlmaWVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9pZGVudGlmaWVyID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeV9pZGVudGlmaWVyID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllcl90eXBlID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsX25hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9uYW1lX2lkZW50aWZpZXIuVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlfaWRlbnRpZmllciA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlfaWRlbnRpZmllciA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXJfdHlwZSA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG9uZXRpY19uYW1lX2lkZW50aWZpZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvZ3JhcGhpY19hZGRyZXNzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfZ2VvZ3JhcGhpY19hZGRyZXNzLlRyYXZlbFJ1bGVHZW9ncmFwaGljQWRkcmVzcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlZXRfbmFtZSA9ICdRbVpHWFhzS1BrNWlQUzk3TExqWEI1ZThRczU1NW9jZHpjcGJQTVh2dDg0Smk5JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG93bl9uYW1lID0gJ1FtTmtFdDlWZG5oamVmUU1YbzNaYVpBczc2NXVnb1dpYXphcWNZOXNrSE1qQ3QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5ID0gJ1FtUkdIZG94UWZTaTZ0ZXZ5dmFZR3pzOEJWU3RmcUpxRXlyTVlxVWZ6WHhrbW0nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19udW1iZXIgPSAnUW1VRnBOa3hkc1Z0ZWJEU1V6NWVQNTFrem95c1htcWoyZ0JnZUgxMVBEN1NWUCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfY29kZSA9ICdRbVRKc0szc2MzZlBFVnd2QXA5N1VVaVZvRmhqelFoWVgzc0NkYTFKeHVDblhqJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc190eXBlID0gJ1FtZHI5TGNDaFpzb2l2UzZ1QWhlN1FrN2NHTERBeDczd0JaVFZ2cTRXb1U3MUgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBhcnRtZW50ID0gJ1FtTjdmYjY1eDVNeUE3Ukt5aGJYYVVLdko3VTRZOWVxcEVaVG1KWXBOeUVHOCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl9kZXBhcnRtZW50ID0gJ1FtVGtmeUdoNTR0WE5xRnh5RUdLOU55VEpaWXBRNlJaOXpwTnlreHlrTUU4cycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nX25hbWUgPSAnUW1YSmZHazg1dDZSS3loYlhhRUs5Tno0TUVlTUt5cHE2RVk5enBKeUM5bk05JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvb3IgPSAnUW1aUDVHN2ZoWnBNeVF4WG5UOUt5UjZ5YlhhRU05enBKeTRNRTlNa1RKR0UxJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdF9ib3ggPSAnUW1Ua2ZZUkdLNTR4RnFYeUpZTlp5RTlrWTl6cE1LeXRKblh5NXo5RU1FOXNKJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vbSA9ICdRbVJZWG5UOUt5aGJYYUVNWnBNeXhNa1o5enBZTllUSjRNRTVrQ0dFN2ZoTUonLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3duX2xvY2F0aW9uX25hbWUgPSAnUW1OcFpUeVhKWG5UOUs2RVlacFF4WU5ZTWtDNXA0a0dFZmhua01KenBZVDlKbScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RyaWN0X25hbWUgPSAnUW1UOXA2RVJLeU5ZWG5UeWhicE1ZSjR6cFlUOWtNSlpUOVFtRU1HWjVrTWhDeScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfc3ViX2RpdmlzaW9uID0gJ1FtSzl5VGJYYVpwTVlKWVRZcDZOVDlRbUVNR1pUOXA5a01KZmh5R0U0WjdrNUMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX2xpbmUgPSBbIlFtTnA5a01qZmhHWjVrTUp6cE5ZWFpUeTZOUW1aWUVNR1o0a1pUOVk2cE5ZVCJdLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmljYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXRpb25hbF9pZGVudGlmaWNhdGlvbi5UcmF2ZWxSdWxlTmF0aW9uYWxJZGVudGlmaWNhdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfaXNzdWUgPSAnUW1SR0hkb3hRZlNpNnRldnl2YVlHenM4QlZTdGZxSnFFeXJNWXFVZnpYeGttbScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmllciA9ICdRbWRSNnFMblo3S3dmNWNCYVhHOFFGUWVuRXZSZzlKTlplb1ByYW5WdUdkNjN6JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWVyX3R5cGUgPSAnUW1VS1RnM2FGSkZoTXoxbzlnUHFBM01nVFJ3ZDJMdkRMd1dUUEhZVW9NRVlWaScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0cmF0aW9uX2F1dGhvcml0eSA9ICdRbVY5S0pNeVQ5Ukp6cFlmaE1FNXhOQ1o0RzY3ZkVrelRwUk15SnpwOWtUTllrJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfYW5kX3BsYWNlX29mX2JpcnRoID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGguVHJhdmVsUnVsZURhdGVBbmRQbGFjZU9mQmlydGgoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX29mX2JpcnRoID0gJ1FtTmtFdDlWZG5oamVmUU1YbzNaYVpBczc2NXVnb1dpYXphcWNZOXNrSE1qQ3QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlX29mX2JpcnRoID0gJ1FtTmtFdDlWZG5oamVmUU1YbzNaYVpBczc2NXVnb1dpYXphcWNZOXNrSE1qQ3QnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfaWRlbnRpZmljYXRpb24gPSAnUW1USnNLM3NjM2ZQRVZ3dkFwOTdVVWlWb0ZoanpRaFlYM3NDZGExSnh1Q25YaicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX3Jlc2lkZW5jZSA9ICdRbVRKc0szc2MzZlBFVnd2QXA5N1VVaVZvRmhqelFoWVgzc0NkYTFKeHVDblhqJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX251bWJlciA9ICdRbVRKc0szc2MzZlBFVnd2QXA5N1VVaVZvRmhqelFoWVgzc0NkYTFKeHVDblhqJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnYWxfcGVyc29uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbGVnYWxfcGVyc29uLlRyYXZlbFJ1bGVMZWdhbFBlcnNvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfaWRlbnRpZmljYXRpb24gPSAnUW1SWTlBQTRVaXQySlJUeER6ZnpzaHJKZFRLODZLZjVIcmlBM2RYRG5paERteScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9udW1iZXIgPSAnUW1YdnlNTDNBSlVGcEJiSnFMNU5WcDdWbjd4Tmt1ZWRUc1NNazkzZHVMQ05XOCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX3JlZ2lzdHJhdGlvbiA9ICdRbWVvVGs2VVBydUVBWU5iSkVBSGRRWWM1M2FwOUJYbXBuUE1jdXZzOHd1dGRyJywgKSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5X3BlcnNvbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9wZXJzb24uVHJhdmVsUnVsZVBlcnNvbigpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9udW1iZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUW1Oa0V0OVZkbmhqZWZRTVhvM1phWkFzNzY1dWdvV2lhemFxY1k5c2tITWpDdCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksIAogICAgICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5ID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfcGlpX2l2bXMuVHJhdmVsUnVsZVBpaUlWTVMoKSwgCiAgICAgICAgICAgICAgICAgICAgZW5jcnlwdGVkID0gJ2V5SmhiR2NpT2lKSVV6STFOaUlzSW5SNWNDSTZJa3BYVkNKOS4uLicsIAogICAgICAgICAgICAgICAgICAgIHByb3RvY29sID0gJ0lWTVMxMDEnLCAKICAgICAgICAgICAgICAgICAgICB0YXJnZXRfcHJvdG9jb2wgPSAnR1RSJywgCiAgICAgICAgICAgICAgICAgICAgc2tpcF9iZW5lZmljaWFyeV9kYXRhX3ZhbGlkYXRpb24gPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfYmVoYXZpb3IgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICBvcmlnaW5hdG9yX3JlZiA9ICdPUkcxMjM0NTYnLCAKICAgICAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV9yZWYgPSAnQkVONjU0MzIxJywgCiAgICAgICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfYmVoYXZpb3JfcmVmID0gJ1RSQjk4NzY1NCcsIAogICAgICAgICAgICAgICAgICAgIG9yaWdpbmF0b3JfcHJvb2YgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9vd25lcnNoaXBfcHJvb2YuVHJhdmVsUnVsZU93bmVyc2hpcFByb29mKAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ2VpcC0xOTEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHJvb2YgPSAnMHgzZGQ0YTE3YS4uLmNlNGEyYmNkMWInLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXR0ZXN0YXRpb24gPSAnSSBjZXJ0aWZ5IHRoYXQgRVRIIGFjY291bnQgMHg4OTZCLi4uMGI5YiBiZWxvbmdzIHRvIG1lLicsIAogICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzB4ODk2Qi4uLjBiOWInLCAKICAgICAgICAgICAgICAgICAgICAgICAgd2FsbGV0X3Byb3ZpZGVyID0gJ01ldGFtYXNrJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9ICdodHRwczovL2V4YW1wbGUuY29tL3VwbG9hZGVkX2ltYWdlLnBuZycsIAogICAgICAgICAgICAgICAgICAgICAgICBkaWQgPSAnZGlkOmtleTp6Nk1rZjEyMzQ1WmFiY2RlZjEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICd2ZXJpZmllZCcsIAogICAgICAgICAgICAgICAgICAgICAgICBjb25maXJtZWQgPSBUcnVlLCApLCAKICAgICAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV9wcm9vZiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX293bmVyc2hpcF9wcm9vZi5UcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2YoCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnZWlwLTE5MScsIAogICAgICAgICAgICAgICAgICAgICAgICBwcm9vZiA9ICcweDNkZDRhMTdhLi4uY2U0YTJiY2QxYicsIAogICAgICAgICAgICAgICAgICAgICAgICBhdHRlc3RhdGlvbiA9ICdJIGNlcnRpZnkgdGhhdCBFVEggYWNjb3VudCAweDg5NkIuLi4wYjliIGJlbG9uZ3MgdG8gbWUuJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHg4OTZCLi4uMGI5YicsIAogICAgICAgICAgICAgICAgICAgICAgICB3YWxsZXRfcHJvdmlkZXIgPSAnTWV0YW1hc2snLCAKICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vdXBsb2FkZWRfaW1hZ2UucG5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRpZCA9ICdkaWQ6a2V5Ono2TWtmMTIzNDVaYWJjZGVmMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ3ZlcmlmaWVkJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpcm1lZCA9IFRydWUsICksIAogICAgICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5X2RpZCA9ICdkaWQ6a2V5Ono2TWtmNjc4OTBaZ2hpamtsNjc4OTAnLCAKICAgICAgICAgICAgICAgICAgICBvcmlnaW5hdG9yX2RpZCA9ICdkaWQ6a2V5Ono2TWtmMTIzNDVaYWJjZGVmMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICBpc19ub25fY3VzdG9kaWFsID0gVHJ1ZSwgKSwKICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX21lc3NhZ2VfaWQgPSAndHJtXzEyMzQ1Njc4LTEyMzQtMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMicsCiAgICAgICAgICAgICAgICBhdXRvX3N0YWtpbmcgPSBUcnVlLAogICAgICAgICAgICAgICAgbmV0d29ya19zdGFraW5nID0gTm9uZSwKICAgICAgICAgICAgICAgIGNwdV9zdGFraW5nID0gTm9uZSwKICAgICAgICAgICAgICAgIHVzZV9nYXNsZXNzID0gVHJ1ZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uUmVxdWVzdCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmFuc2FjdGlvblJlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFuc2FjdGlvblJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_transaction_request_amount.py b/test/test_transaction_request_amount.py index 40adf2ad..cf0e9c41 100644 --- a/test/test_transaction_request_amount.py +++ b/test/test_transaction_request_amount.py @@ -1,53 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transaction_request_amount import TransactionRequestAmount - - -class TestTransactionRequestAmount(unittest.TestCase): - """TransactionRequestAmount unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransactionRequestAmount: - """Test TransactionRequestAmount - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransactionRequestAmount` - """ - model = TransactionRequestAmount() - if include_optional: - return TransactionRequestAmount( - ) - else: - return TransactionRequestAmount( - ) - """ - - def testTransactionRequestAmount(self): - """Test TransactionRequestAmount""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlcXVlc3RfYW1vdW50IGltcG9ydCBUcmFuc2FjdGlvblJlcXVlc3RBbW91bnQKCgpjbGFzcyBUZXN0VHJhbnNhY3Rpb25SZXF1ZXN0QW1vdW50KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYW5zYWN0aW9uUmVxdWVzdEFtb3VudCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhbnNhY3Rpb25SZXF1ZXN0QW1vdW50OgogICAgICAgICIiIlRlc3QgVHJhbnNhY3Rpb25SZXF1ZXN0QW1vdW50CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYW5zYWN0aW9uUmVxdWVzdEFtb3VudGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYW5zYWN0aW9uUmVxdWVzdEFtb3VudCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uUmVxdWVzdEFtb3VudCgKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmFuc2FjdGlvblJlcXVlc3RBbW91bnQoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhbnNhY3Rpb25SZXF1ZXN0QW1vdW50KHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJhbnNhY3Rpb25SZXF1ZXN0QW1vdW50IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_transaction_request_destination.py b/test/test_transaction_request_destination.py index 4bb4ff02..dc257d54 100644 --- a/test/test_transaction_request_destination.py +++ b/test/test_transaction_request_destination.py @@ -1,68 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transaction_request_destination import ( - TransactionRequestDestination, -) - - -class TestTransactionRequestDestination(unittest.TestCase): - """TransactionRequestDestination unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransactionRequestDestination: - """Test TransactionRequestDestination - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransactionRequestDestination` - """ - model = TransactionRequestDestination() - if include_optional: - return TransactionRequestDestination( - amount = '', - destination = fireblocks.models.destination_transfer_peer_path.DestinationTransferPeerPath( - type = 'VAULT_ACCOUNT', - sub_type = 'BINANCE', - id = '', - name = '', - wallet_id = '', - one_time_address = fireblocks.models.one_time_address.OneTimeAddress( - address = '', - tag = '', ), - is_collateral = True, ), - travel_rule_message_id = 'trm_12345678-1234-1234-1234-123456789012', - customer_ref_id = 'abcdef' - ) - else: - return TransactionRequestDestination( - ) - """ - - def testTransactionRequestDestination(self): - """Test TransactionRequestDestination""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlcXVlc3RfZGVzdGluYXRpb24gaW1wb3J0ICgKICAgIFRyYW5zYWN0aW9uUmVxdWVzdERlc3RpbmF0aW9uLAopCgoKY2xhc3MgVGVzdFRyYW5zYWN0aW9uUmVxdWVzdERlc3RpbmF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYW5zYWN0aW9uUmVxdWVzdERlc3RpbmF0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUcmFuc2FjdGlvblJlcXVlc3REZXN0aW5hdGlvbjoKICAgICAgICAiIiJUZXN0IFRyYW5zYWN0aW9uUmVxdWVzdERlc3RpbmF0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYW5zYWN0aW9uUmVxdWVzdERlc3RpbmF0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVHJhbnNhY3Rpb25SZXF1ZXN0RGVzdGluYXRpb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmFuc2FjdGlvblJlcXVlc3REZXN0aW5hdGlvbigKICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLAogICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy5kZXN0aW5hdGlvbl90cmFuc2Zlcl9wZWVyX3BhdGguRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoKAogICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFRfQUNDT1VOVCcsIAogICAgICAgICAgICAgICAgICAgIHN1Yl90eXBlID0gJ0JJTkFOQ0UnLCAKICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBuYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgIHdhbGxldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBvbmVfdGltZV9hZGRyZXNzID0gZmlyZWJsb2Nrcy5tb2RlbHMub25lX3RpbWVfYWRkcmVzcy5PbmVUaW1lQWRkcmVzcygKICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdGFnID0gJycsICksIAogICAgICAgICAgICAgICAgICAgIGlzX2NvbGxhdGVyYWwgPSBUcnVlLCApLAogICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCA9ICd0cm1fMTIzNDU2NzgtMTIzNC0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyJywKICAgICAgICAgICAgICAgIGN1c3RvbWVyX3JlZl9pZCA9ICdhYmNkZWYnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb25SZXF1ZXN0RGVzdGluYXRpb24oCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhbnNhY3Rpb25SZXF1ZXN0RGVzdGluYXRpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFuc2FjdGlvblJlcXVlc3REZXN0aW5hdGlvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_transaction_request_fee.py b/test/test_transaction_request_fee.py index 4a3ca4c2..d21358bd 100644 --- a/test/test_transaction_request_fee.py +++ b/test/test_transaction_request_fee.py @@ -1,53 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transaction_request_fee import TransactionRequestFee - - -class TestTransactionRequestFee(unittest.TestCase): - """TransactionRequestFee unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransactionRequestFee: - """Test TransactionRequestFee - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransactionRequestFee` - """ - model = TransactionRequestFee() - if include_optional: - return TransactionRequestFee( - ) - else: - return TransactionRequestFee( - ) - """ - - def testTransactionRequestFee(self): - """Test TransactionRequestFee""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlcXVlc3RfZmVlIGltcG9ydCBUcmFuc2FjdGlvblJlcXVlc3RGZWUKCgpjbGFzcyBUZXN0VHJhbnNhY3Rpb25SZXF1ZXN0RmVlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYW5zYWN0aW9uUmVxdWVzdEZlZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhbnNhY3Rpb25SZXF1ZXN0RmVlOgogICAgICAgICIiIlRlc3QgVHJhbnNhY3Rpb25SZXF1ZXN0RmVlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYW5zYWN0aW9uUmVxdWVzdEZlZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYW5zYWN0aW9uUmVxdWVzdEZlZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uUmVxdWVzdEZlZSgKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmFuc2FjdGlvblJlcXVlc3RGZWUoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhbnNhY3Rpb25SZXF1ZXN0RmVlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJhbnNhY3Rpb25SZXF1ZXN0RmVlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_transaction_request_gas_limit.py b/test/test_transaction_request_gas_limit.py index 4a6ca79c..df39bee8 100644 --- a/test/test_transaction_request_gas_limit.py +++ b/test/test_transaction_request_gas_limit.py @@ -1,53 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transaction_request_gas_limit import TransactionRequestGasLimit - - -class TestTransactionRequestGasLimit(unittest.TestCase): - """TransactionRequestGasLimit unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransactionRequestGasLimit: - """Test TransactionRequestGasLimit - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransactionRequestGasLimit` - """ - model = TransactionRequestGasLimit() - if include_optional: - return TransactionRequestGasLimit( - ) - else: - return TransactionRequestGasLimit( - ) - """ - - def testTransactionRequestGasLimit(self): - """Test TransactionRequestGasLimit""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlcXVlc3RfZ2FzX2xpbWl0IGltcG9ydCBUcmFuc2FjdGlvblJlcXVlc3RHYXNMaW1pdAoKCmNsYXNzIFRlc3RUcmFuc2FjdGlvblJlcXVlc3RHYXNMaW1pdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmFuc2FjdGlvblJlcXVlc3RHYXNMaW1pdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhbnNhY3Rpb25SZXF1ZXN0R2FzTGltaXQ6CiAgICAgICAgIiIiVGVzdCBUcmFuc2FjdGlvblJlcXVlc3RHYXNMaW1pdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmFuc2FjdGlvblJlcXVlc3RHYXNMaW1pdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYW5zYWN0aW9uUmVxdWVzdEdhc0xpbWl0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb25SZXF1ZXN0R2FzTGltaXQoCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb25SZXF1ZXN0R2FzTGltaXQoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhbnNhY3Rpb25SZXF1ZXN0R2FzTGltaXQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFuc2FjdGlvblJlcXVlc3RHYXNMaW1pdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_transaction_request_gas_price.py b/test/test_transaction_request_gas_price.py index 9cc3cca9..9ce74b34 100644 --- a/test/test_transaction_request_gas_price.py +++ b/test/test_transaction_request_gas_price.py @@ -1,53 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transaction_request_gas_price import TransactionRequestGasPrice - - -class TestTransactionRequestGasPrice(unittest.TestCase): - """TransactionRequestGasPrice unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransactionRequestGasPrice: - """Test TransactionRequestGasPrice - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransactionRequestGasPrice` - """ - model = TransactionRequestGasPrice() - if include_optional: - return TransactionRequestGasPrice( - ) - else: - return TransactionRequestGasPrice( - ) - """ - - def testTransactionRequestGasPrice(self): - """Test TransactionRequestGasPrice""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlcXVlc3RfZ2FzX3ByaWNlIGltcG9ydCBUcmFuc2FjdGlvblJlcXVlc3RHYXNQcmljZQoKCmNsYXNzIFRlc3RUcmFuc2FjdGlvblJlcXVlc3RHYXNQcmljZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmFuc2FjdGlvblJlcXVlc3RHYXNQcmljZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhbnNhY3Rpb25SZXF1ZXN0R2FzUHJpY2U6CiAgICAgICAgIiIiVGVzdCBUcmFuc2FjdGlvblJlcXVlc3RHYXNQcmljZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmFuc2FjdGlvblJlcXVlc3RHYXNQcmljZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYW5zYWN0aW9uUmVxdWVzdEdhc1ByaWNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb25SZXF1ZXN0R2FzUHJpY2UoCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb25SZXF1ZXN0R2FzUHJpY2UoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhbnNhY3Rpb25SZXF1ZXN0R2FzUHJpY2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFuc2FjdGlvblJlcXVlc3RHYXNQcmljZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_transaction_request_network_fee.py b/test/test_transaction_request_network_fee.py index 5c55fa58..f94028c6 100644 --- a/test/test_transaction_request_network_fee.py +++ b/test/test_transaction_request_network_fee.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transaction_request_network_fee import ( - TransactionRequestNetworkFee, -) - - -class TestTransactionRequestNetworkFee(unittest.TestCase): - """TransactionRequestNetworkFee unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransactionRequestNetworkFee: - """Test TransactionRequestNetworkFee - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransactionRequestNetworkFee` - """ - model = TransactionRequestNetworkFee() - if include_optional: - return TransactionRequestNetworkFee( - ) - else: - return TransactionRequestNetworkFee( - ) - """ - - def testTransactionRequestNetworkFee(self): - """Test TransactionRequestNetworkFee""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlcXVlc3RfbmV0d29ya19mZWUgaW1wb3J0ICgKICAgIFRyYW5zYWN0aW9uUmVxdWVzdE5ldHdvcmtGZWUsCikKCgpjbGFzcyBUZXN0VHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya0ZlZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrRmVlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrRmVlOgogICAgICAgICIiIlRlc3QgVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya0ZlZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrRmVlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya0ZlZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uUmVxdWVzdE5ldHdvcmtGZWUoCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya0ZlZSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrRmVlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya0ZlZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_transaction_request_network_staking.py b/test/test_transaction_request_network_staking.py index 98e5f6ad..a978ddff 100644 --- a/test/test_transaction_request_network_staking.py +++ b/test/test_transaction_request_network_staking.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transaction_request_network_staking import ( - TransactionRequestNetworkStaking, -) - - -class TestTransactionRequestNetworkStaking(unittest.TestCase): - """TransactionRequestNetworkStaking unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransactionRequestNetworkStaking: - """Test TransactionRequestNetworkStaking - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransactionRequestNetworkStaking` - """ - model = TransactionRequestNetworkStaking() - if include_optional: - return TransactionRequestNetworkStaking( - ) - else: - return TransactionRequestNetworkStaking( - ) - """ - - def testTransactionRequestNetworkStaking(self): - """Test TransactionRequestNetworkStaking""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlcXVlc3RfbmV0d29ya19zdGFraW5nIGltcG9ydCAoCiAgICBUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrU3Rha2luZywKKQoKCmNsYXNzIFRlc3RUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrU3Rha2luZyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrU3Rha2luZyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya1N0YWtpbmc6CiAgICAgICAgIiIiVGVzdCBUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrU3Rha2luZwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrU3Rha2luZ2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYW5zYWN0aW9uUmVxdWVzdE5ldHdvcmtTdGFraW5nKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya1N0YWtpbmcoCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya1N0YWtpbmcoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhbnNhY3Rpb25SZXF1ZXN0TmV0d29ya1N0YWtpbmcoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFuc2FjdGlvblJlcXVlc3ROZXR3b3JrU3Rha2luZyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_transaction_request_priority_fee.py b/test/test_transaction_request_priority_fee.py index 320251f0..da5f0674 100644 --- a/test/test_transaction_request_priority_fee.py +++ b/test/test_transaction_request_priority_fee.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transaction_request_priority_fee import ( - TransactionRequestPriorityFee, -) - - -class TestTransactionRequestPriorityFee(unittest.TestCase): - """TransactionRequestPriorityFee unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransactionRequestPriorityFee: - """Test TransactionRequestPriorityFee - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransactionRequestPriorityFee` - """ - model = TransactionRequestPriorityFee() - if include_optional: - return TransactionRequestPriorityFee( - ) - else: - return TransactionRequestPriorityFee( - ) - """ - - def testTransactionRequestPriorityFee(self): - """Test TransactionRequestPriorityFee""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3JlcXVlc3RfcHJpb3JpdHlfZmVlIGltcG9ydCAoCiAgICBUcmFuc2FjdGlvblJlcXVlc3RQcmlvcml0eUZlZSwKKQoKCmNsYXNzIFRlc3RUcmFuc2FjdGlvblJlcXVlc3RQcmlvcml0eUZlZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmFuc2FjdGlvblJlcXVlc3RQcmlvcml0eUZlZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhbnNhY3Rpb25SZXF1ZXN0UHJpb3JpdHlGZWU6CiAgICAgICAgIiIiVGVzdCBUcmFuc2FjdGlvblJlcXVlc3RQcmlvcml0eUZlZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmFuc2FjdGlvblJlcXVlc3RQcmlvcml0eUZlZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYW5zYWN0aW9uUmVxdWVzdFByaW9yaXR5RmVlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb25SZXF1ZXN0UHJpb3JpdHlGZWUoCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb25SZXF1ZXN0UHJpb3JpdHlGZWUoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhbnNhY3Rpb25SZXF1ZXN0UHJpb3JpdHlGZWUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFuc2FjdGlvblJlcXVlc3RQcmlvcml0eUZlZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_transaction_response.py b/test/test_transaction_response.py index 5578fb18..56878f2b 100644 --- a/test/test_transaction_response.py +++ b/test/test_transaction_response.py @@ -1,357 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transaction_response import TransactionResponse - - -class TestTransactionResponse(unittest.TestCase): - """TransactionResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransactionResponse: - """Test TransactionResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransactionResponse` - """ - model = TransactionResponse() - if include_optional: - return TransactionResponse( - id = '', - external_tx_id = '', - status = '', - sub_status = '', - tx_hash = '', - operation = 'TRANSFER', - note = '', - asset_id = '', - asset_type = 'ERC20', - source = fireblocks.models.source_transfer_peer_path_response.SourceTransferPeerPathResponse( - type = 'VAULT_ACCOUNT', - sub_type = '', - id = '', - name = '', - wallet_id = '', - trading_account = '', ), - source_address = '', - tag = '', - destination = fireblocks.models.destination_transfer_peer_path_response.DestinationTransferPeerPathResponse( - type = 'VAULT_ACCOUNT', - sub_type = '', - id = '', - name = '', - wallet_id = '', - trading_account = '', ), - destinations = [ - fireblocks.models.transaction_response_destination.TransactionResponseDestination( - amount = '', - amount_usd = '', - travel_rule_message_id = 'trm_12345678-1234-1234-1234-123456789012', - aml_screening_result = fireblocks.models.aml_screening_result.AmlScreeningResult( - provider = '', - payload = fireblocks.models.payload.payload(), ), - destination = fireblocks.models.destination_transfer_peer_path_response.DestinationTransferPeerPathResponse( - type = 'VAULT_ACCOUNT', - sub_type = '', - id = '', - name = '', - wallet_id = '', - trading_account = '', ), - authorization_info = fireblocks.models.authorization_info.AuthorizationInfo( - allow_operator_as_authorizer = True, - logic = 'AND', - groups = [ - fireblocks.models.authorization_groups.AuthorizationGroups( - th = 1.337, - users = { - 'PENDING_AUTHORIZATION' : 'PENDING_AUTHORIZATION' - }, ) - ], ), ) - ], - destination_address = '', - destination_address_description = '', - destination_tag = '', - contract_call_decoded_data = fireblocks.models.transaction_response_contract_call_decoded_data.TransactionResponse_contractCallDecodedData( - contract_name = '', - function_calls = [ - None - ], ), - amount_info = fireblocks.models.amount_info.AmountInfo( - amount = '', - requested_amount = '', - net_amount = '', - amount_usd = '', ), - treat_as_gross_amount = True, - fee_info = fireblocks.models.fee_info.FeeInfo( - network_fee = '', - service_fee = '', - gas_price = '', - l1network_fee = '0.003955', - l2network_fee = '0.0005', - paid_by_relay = True, - relay_type = 'LOCAL', - relay_id = '1', - relay_name = 'Tenant Name', - fee_usd = '0.0013', ), - fee_currency = '', - network_records = [ - fireblocks.models.network_record.NetworkRecord( - source = fireblocks.models.source_transfer_peer_path_response.SourceTransferPeerPathResponse( - type = 'VAULT_ACCOUNT', - sub_type = '', - id = '', - name = '', - wallet_id = '', - trading_account = '', ), - destination = fireblocks.models.destination_transfer_peer_path_response.DestinationTransferPeerPathResponse( - type = 'VAULT_ACCOUNT', - sub_type = '', - id = '', - name = '', - wallet_id = '', - trading_account = '', ), - tx_hash = '', - network_fee = '', - asset_id = '', - net_amount = '', - is_dropped = True, - type = '', - destination_address = '', - amount_usd = '', - reward_info = fireblocks.models.reward_info.RewardInfo( - src_rewards = '', - dest_rewards = '', ), ) - ], - created_at = 1.337, - last_updated = 1.337, - created_by = '', - signed_by = [ - '' - ], - rejected_by = '', - authorization_info = fireblocks.models.authorization_info.AuthorizationInfo( - allow_operator_as_authorizer = True, - logic = 'AND', - groups = [ - fireblocks.models.authorization_groups.AuthorizationGroups( - th = 1.337, - users = { - 'PENDING_AUTHORIZATION' : 'PENDING_AUTHORIZATION' - }, ) - ], ), - exchange_tx_id = '', - customer_ref_id = '', - travel_rule_message_id = 'trm_12345678-1234-1234-1234-123456789012', - aml_screening_result = fireblocks.models.aml_screening_result.AmlScreeningResult( - provider = '', - payload = fireblocks.models.payload.payload(), ), - compliance_results = fireblocks.models.compliance_results.ComplianceResults( - aml = fireblocks.models.compliance_screening_result.ComplianceScreeningResult( - provider = 'NOTABENE', - payload = fireblocks.models.payload.payload(), - timestamp = 1753459111824, - screening_status = 'COMPLETED', - bypass_reason = 'BELOW_THRESHOLD', - status = 'COMPLETED', - prev_status = 'COMPLETED', - prev_bypass_reason = 'BELOW_THRESHOLD', - verdict = 'PASS', - risk = 'LOW', - extended_risk = 'LOW', - external_id = 'aml_screening_12345', - customer_ref_id = 'customer_ref_789', - ref_id = 'ref_12345', - category = 'EXCHANGE', - category_id = 5, - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - dest_tag = 'memo_12345', - dest_record_id = 'record_001', - address_resolution_signature = '0x1234567890abcdef', - aml_result = fireblocks.models.aml_result.AmlResult( - alerts = [ - fireblocks.models.aml_alert.AmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ) - ], - provider_response = { }, - matched_rule = fireblocks.models.aml_matched_rule.AmlMatchedRule( - rule_id = 'rule_001', - rule_name = 'High Risk Sanctions Check', - action = 'ALLOW', ), - matched_alert = fireblocks.models.aml_alert.AmlAlert( - alert_level = 'HIGH', - alert_name = 'Sanctions Match', - category = 'SANCTIONED_ENTITY', - service = 'CHAINALYSIS', - external_id = 'alert_12345', - alert_amount = 1000.5, - exposure_type = 'DIRECT', - policy_action = 'BLOCK', - category_id = 101, ), ), - result = fireblocks.models.travel_rule_result.TravelRuleResult( - direction = 'OUTBOUND', - is_verified = True, ), - details_message = 'Travel rule screening completed successfully', - matched_alert = fireblocks.models.matched_alert.matchedAlert(), - matched_rule = fireblocks.models.matched_rule.matchedRule(), - matched_prescreening_rule = fireblocks.models.travel_rule_prescreening_rule.TravelRulePrescreeningRule( - bypass_reason = 'MANUAL', - source_type = 'VAULT_ACCOUNT', - source_sub_type = 'INTERNAL', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = 'INTERNAL', - transfer_peer_type = 'VAULT_ACCOUNT', - transfer_peer_sub_type = 'INTERNAL', - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - source_id = '0', - dest_id = 'ext_address_001', - asset = 'ETH', - base_asset = 'ETH', - amount = 0.5, - amount_usd = 1000, - network_protocol = 'ETH', - operation = 'TRANSFER', ), - matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(), - customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_short_name = 'ACME Corp', - travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', ), - tr = fireblocks.models.compliance_screening_result.ComplianceScreeningResult( - provider = 'NOTABENE', - payload = fireblocks.models.payload.payload(), - timestamp = 1753459111824, - screening_status = 'COMPLETED', - bypass_reason = 'BELOW_THRESHOLD', - prev_bypass_reason = 'BELOW_THRESHOLD', - external_id = 'aml_screening_12345', - customer_ref_id = 'customer_ref_789', - ref_id = 'ref_12345', - category = 'EXCHANGE', - category_id = 5, - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - dest_tag = 'memo_12345', - dest_record_id = 'record_001', - address_resolution_signature = '0x1234567890abcdef', - details_message = 'Travel rule screening completed successfully', - matched_no_trm_screening_rule = fireblocks.models.matched_no_trm_screening_rule.matchedNoTrmScreeningRule(), - customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_short_name = 'ACME Corp', - travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', ), - aml_list = [ - - ], - status = 'Completed', - aml_registration = fireblocks.models.aml_registration_result.AmlRegistrationResult( - provider = '', - success = True, - timestamp = 1.337, ), - trlink_registration = fireblocks.models.tr_link_registration_result.TRLinkRegistrationResult( - status = 'COMPLETED', - provider = 'SUMSUB', - success = True, - timestamp = 1640995200000, - dest_record_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_short_name = 'ACME Corp', ), - trlink_destinations = [ - fireblocks.models.tr_link_result.TRLinkResult( - provider = 'SUMSUB', - timestamp = 1640995200000, - status = 'COMPLETED', - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - dest_tag = 'memo_12345', - bypass_reason = 'MANUAL', - details_message = 'Screening completed successfully', - customer_integration_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - customer_short_name = 'ACME Corp', - travel_rule_message_id = '3fa85f64-5717-4562-b3fc-2c963f66afa6', - matched_no_trm_screening_rule = fireblocks.models.tr_link_missing_trm_decision.TRLinkMissingTrmDecision(), ) - ], ), - not_broadcast_by_fireblocks = False, - dapp_url = 'https://app.uniswap.org', - gas_limit = '21000', - blockchain_index = '1.1.1', - paid_rent = '0.00203928', - extra_parameters = { }, - signed_messages = [ - fireblocks.models.signed_message.SignedMessage( - content = '', - algorithm = 'MPC_ECDSA_SECP256K1', - derivation_path = [ - 1.337 - ], - signature = fireblocks.models.signed_message_signature.SignedMessage_signature( - full_sig = '', - r = '', - s = '', - v = 1.337, ), - public_key = '', ) - ], - num_of_confirmations = 1.337, - block_info = fireblocks.models.block_info.BlockInfo( - block_height = '', - block_hash = '', ), - index = 1.337, - reward_info = fireblocks.models.reward_info.RewardInfo( - src_rewards = '', - dest_rewards = '', ), - fee_payer_info = fireblocks.models.fee_payer_info.FeePayerInfo( - fee_payer_account_id = '123', ), - system_messages = [ - fireblocks.models.system_message_info.SystemMessageInfo( - type = 'WARN', - message = 'Slow transaction processing. Outgoing transactions might be stuck.', ) - ], - address_type = '', - requested_amount = 1.337, - amount = 1.337, - net_amount = 1.337, - amount_usd = 1.337, - service_fee = 1.337, - fee = 1.337, - network_fee = 1.337, - error_description = '', - replaced_tx_hash = '', - nonce = '11228', - blockchain_info = {"evmTransferType":"NATIVE"} - ) - else: - return TransactionResponse( - ) - """ - - def testTransactionResponse(self): - """Test TransactionResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBUcmFuc2FjdGlvblJlc3BvbnNlCgoKY2xhc3MgVGVzdFRyYW5zYWN0aW9uUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhbnNhY3Rpb25SZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhbnNhY3Rpb25SZXNwb25zZToKICAgICAgICAiIiJUZXN0IFRyYW5zYWN0aW9uUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhbnNhY3Rpb25SZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYW5zYWN0aW9uUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmFuc2FjdGlvblJlc3BvbnNlKAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIGV4dGVybmFsX3R4X2lkID0gJycsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnJywKICAgICAgICAgICAgICAgIHN1Yl9zdGF0dXMgPSAnJywKICAgICAgICAgICAgICAgIHR4X2hhc2ggPSAnJywKICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9ICdUUkFOU0ZFUicsCiAgICAgICAgICAgICAgICBub3RlID0gJycsCiAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgYXNzZXRfdHlwZSA9ICdFUkMyMCcsCiAgICAgICAgICAgICAgICBzb3VyY2UgPSBmaXJlYmxvY2tzLm1vZGVscy5zb3VyY2VfdHJhbnNmZXJfcGVlcl9wYXRoX3Jlc3BvbnNlLlNvdXJjZVRyYW5zZmVyUGVlclBhdGhSZXNwb25zZSgKICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCAKICAgICAgICAgICAgICAgICAgICBzdWJfdHlwZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBuYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgIHdhbGxldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICB0cmFkaW5nX2FjY291bnQgPSAnJywgKSwKICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzID0gJycsCiAgICAgICAgICAgICAgICB0YWcgPSAnJywKICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzdGluYXRpb25fdHJhbnNmZXJfcGVlcl9wYXRoX3Jlc3BvbnNlLkRlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlKAogICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFRfQUNDT1VOVCcsIAogICAgICAgICAgICAgICAgICAgIHN1Yl90eXBlID0gJycsIAogICAgICAgICAgICAgICAgICAgIGlkID0gJycsIAogICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgd2FsbGV0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgIHRyYWRpbmdfYWNjb3VudCA9ICcnLCApLAogICAgICAgICAgICAgICAgZGVzdGluYXRpb25zID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3Jlc3BvbnNlX2Rlc3RpbmF0aW9uLlRyYW5zYWN0aW9uUmVzcG9uc2VEZXN0aW5hdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfdXNkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV9tZXNzYWdlX2lkID0gJ3RybV8xMjM0NTY3OC0xMjM0LTEyMzQtMTIzNC0xMjM0NTY3ODkwMTInLCAKICAgICAgICAgICAgICAgICAgICAgICAgYW1sX3NjcmVlbmluZ19yZXN1bHQgPSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfc2NyZWVuaW5nX3Jlc3VsdC5BbWxTY3JlZW5pbmdSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlciA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWQgPSBmaXJlYmxvY2tzLm1vZGVscy5wYXlsb2FkLnBheWxvYWQoKSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzdGluYXRpb25fdHJhbnNmZXJfcGVlcl9wYXRoX3Jlc3BvbnNlLkRlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJfdHlwZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhbGxldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWRpbmdfYWNjb3VudCA9ICcnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXphdGlvbl9pbmZvID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXV0aG9yaXphdGlvbl9pbmZvLkF1dGhvcml6YXRpb25JbmZvKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dfb3BlcmF0b3JfYXNfYXV0aG9yaXplciA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9naWMgPSAnQU5EJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYXV0aG9yaXphdGlvbl9ncm91cHMuQXV0aG9yaXphdGlvbkdyb3VwcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGggPSAxLjMzNywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzID0gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1BFTkRJTkdfQVVUSE9SSVpBVElPTicgOiAnUEVORElOR19BVVRIT1JJWkFUSU9OJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgZGVzdGluYXRpb25fYWRkcmVzcyA9ICcnLAogICAgICAgICAgICAgICAgZGVzdGluYXRpb25fYWRkcmVzc19kZXNjcmlwdGlvbiA9ICcnLAogICAgICAgICAgICAgICAgZGVzdGluYXRpb25fdGFnID0gJycsCiAgICAgICAgICAgICAgICBjb250cmFjdF9jYWxsX2RlY29kZWRfZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3Jlc3BvbnNlX2NvbnRyYWN0X2NhbGxfZGVjb2RlZF9kYXRhLlRyYW5zYWN0aW9uUmVzcG9uc2VfY29udHJhY3RDYWxsRGVjb2RlZERhdGEoCiAgICAgICAgICAgICAgICAgICAgY29udHJhY3RfbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbl9jYWxscyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgTm9uZQogICAgICAgICAgICAgICAgICAgICAgICBdLCApLAogICAgICAgICAgICAgICAgYW1vdW50X2luZm8gPSBmaXJlYmxvY2tzLm1vZGVscy5hbW91bnRfaW5mby5BbW91bnRJbmZvKAogICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRfYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIG5ldF9hbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYW1vdW50X3VzZCA9ICcnLCApLAogICAgICAgICAgICAgICAgdHJlYXRfYXNfZ3Jvc3NfYW1vdW50ID0gVHJ1ZSwKICAgICAgICAgICAgICAgIGZlZV9pbmZvID0gZmlyZWJsb2Nrcy5tb2RlbHMuZmVlX2luZm8uRmVlSW5mbygKICAgICAgICAgICAgICAgICAgICBuZXR3b3JrX2ZlZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlX2ZlZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBnYXNfcHJpY2UgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgbDFuZXR3b3JrX2ZlZSA9ICcwLjAwMzk1NScsIAogICAgICAgICAgICAgICAgICAgIGwybmV0d29ya19mZWUgPSAnMC4wMDA1JywgCiAgICAgICAgICAgICAgICAgICAgcGFpZF9ieV9yZWxheSA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgIHJlbGF5X3R5cGUgPSAnTE9DQUwnLCAKICAgICAgICAgICAgICAgICAgICByZWxheV9pZCA9ICcxJywgCiAgICAgICAgICAgICAgICAgICAgcmVsYXlfbmFtZSA9ICdUZW5hbnQgTmFtZScsIAogICAgICAgICAgICAgICAgICAgIGZlZV91c2QgPSAnMC4wMDEzJywgKSwKICAgICAgICAgICAgICAgIGZlZV9jdXJyZW5jeSA9ICcnLAogICAgICAgICAgICAgICAgbmV0d29ya19yZWNvcmRzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLm5ldHdvcmtfcmVjb3JkLk5ldHdvcmtSZWNvcmQoCiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9IGZpcmVibG9ja3MubW9kZWxzLnNvdXJjZV90cmFuc2Zlcl9wZWVyX3BhdGhfcmVzcG9uc2UuU291cmNlVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJfdHlwZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhbGxldF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWRpbmdfYWNjb3VudCA9ICcnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy5kZXN0aW5hdGlvbl90cmFuc2Zlcl9wZWVyX3BhdGhfcmVzcG9uc2UuRGVzdGluYXRpb25UcmFuc2ZlclBlZXJQYXRoUmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl90eXBlID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FsbGV0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhZGluZ19hY2NvdW50ID0gJycsICksIAogICAgICAgICAgICAgICAgICAgICAgICB0eF9oYXNoID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBuZXR3b3JrX2ZlZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG5ldF9hbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGlzX2Ryb3BwZWQgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fYWRkcmVzcyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50X3VzZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcmV3YXJkX2luZm8gPSBmaXJlYmxvY2tzLm1vZGVscy5yZXdhcmRfaW5mby5SZXdhcmRJbmZvKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjX3Jld2FyZHMgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0X3Jld2FyZHMgPSAnJywgKSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBjcmVhdGVkX2F0ID0gMS4zMzcsCiAgICAgICAgICAgICAgICBsYXN0X3VwZGF0ZWQgPSAxLjMzNywKICAgICAgICAgICAgICAgIGNyZWF0ZWRfYnkgPSAnJywKICAgICAgICAgICAgICAgIHNpZ25lZF9ieSA9IFsKICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICByZWplY3RlZF9ieSA9ICcnLAogICAgICAgICAgICAgICAgYXV0aG9yaXphdGlvbl9pbmZvID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXV0aG9yaXphdGlvbl9pbmZvLkF1dGhvcml6YXRpb25JbmZvKAogICAgICAgICAgICAgICAgICAgIGFsbG93X29wZXJhdG9yX2FzX2F1dGhvcml6ZXIgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICBsb2dpYyA9ICdBTkQnLCAKICAgICAgICAgICAgICAgICAgICBncm91cHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmF1dGhvcml6YXRpb25fZ3JvdXBzLkF1dGhvcml6YXRpb25Hcm91cHMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aCA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzID0gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQRU5ESU5HX0FVVEhPUklaQVRJT04nIDogJ1BFTkRJTkdfQVVUSE9SSVpBVElPTicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sICksCiAgICAgICAgICAgICAgICBleGNoYW5nZV90eF9pZCA9ICcnLAogICAgICAgICAgICAgICAgY3VzdG9tZXJfcmVmX2lkID0gJycsCiAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV9tZXNzYWdlX2lkID0gJ3RybV8xMjM0NTY3OC0xMjM0LTEyMzQtMTIzNC0xMjM0NTY3ODkwMTInLAogICAgICAgICAgICAgICAgYW1sX3NjcmVlbmluZ19yZXN1bHQgPSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfc2NyZWVuaW5nX3Jlc3VsdC5BbWxTY3JlZW5pbmdSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXIgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgcGF5bG9hZCA9IGZpcmVibG9ja3MubW9kZWxzLnBheWxvYWQucGF5bG9hZCgpLCApLAogICAgICAgICAgICAgICAgY29tcGxpYW5jZV9yZXN1bHRzID0gZmlyZWJsb2Nrcy5tb2RlbHMuY29tcGxpYW5jZV9yZXN1bHRzLkNvbXBsaWFuY2VSZXN1bHRzKAogICAgICAgICAgICAgICAgICAgIGFtbCA9IGZpcmVibG9ja3MubW9kZWxzLmNvbXBsaWFuY2Vfc2NyZWVuaW5nX3Jlc3VsdC5Db21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0KAogICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlciA9ICdOT1RBQkVORScsIAogICAgICAgICAgICAgICAgICAgICAgICBwYXlsb2FkID0gZmlyZWJsb2Nrcy5tb2RlbHMucGF5bG9hZC5wYXlsb2FkKCksIAogICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSAxNzUzNDU5MTExODI0LCAKICAgICAgICAgICAgICAgICAgICAgICAgc2NyZWVuaW5nX3N0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYnlwYXNzX3JlYXNvbiA9ICdVTlNVUFBPUlRFRF9BU1NFVCcsIAogICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZfc3RhdHVzID0gJ0NPTVBMRVRFRCcsIAogICAgICAgICAgICAgICAgICAgICAgICBwcmV2X2J5cGFzc19yZWFzb24gPSAnQkVMT1dfVEhSRVNIT0xEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHZlcmRpY3QgPSAnUEFTUycsIAogICAgICAgICAgICAgICAgICAgICAgICByaXNrID0gJ2xvd1Jpc2snLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5kZWRfcmlzayA9ICdsb3dSaXNrJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX2lkID0gJ2FtbF9zY3JlZW5pbmdfMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfcmVmX2lkID0gJ2N1c3RvbWVyX3JlZl83ODknLCAKICAgICAgICAgICAgICAgICAgICAgICAgcmVmX2lkID0gJ3JlZl8xMjM0NScsIAogICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSA9ICdFWENIQU5HRScsIAogICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZCA9IDUsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXN0X2FkZHJlc3MgPSAnMHhBMmRDMjQ5MEVEMURjQTJEMjE2MTM1MDhmZGIwYzgyZGFFQWIwNzE1JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfdGFnID0gJ21lbW9fMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9yZWNvcmRfaWQgPSAncmVjb3JkXzAwMScsIAogICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX3Jlc29sdXRpb25fc2lnbmF0dXJlID0gJzB4MTIzNDU2Nzg5MGFiY2RlZicsIAogICAgICAgICAgICAgICAgICAgICAgICBhbWxfcmVzdWx0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX3Jlc3VsdC5BbWxSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX2FsZXJ0LkFtbEFsZXJ0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydF9sZXZlbCA9ICdISUdIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X25hbWUgPSAnU2FuY3Rpb25zIE1hdGNoJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gJ1NBTkNUSU9ORURfRU5USVRZJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2UgPSAnQ0hBSU5BTFlTSVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfaWQgPSAnYWxlcnRfMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRfYW1vdW50ID0gMTAwMC41LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3N1cmVfdHlwZSA9ICdESVJFQ1QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5X2FjdGlvbiA9ICdCTE9DSycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZCA9IDEwMSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJfcmVzcG9uc2UgPSB7IH0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX21hdGNoZWRfcnVsZS5BbWxNYXRjaGVkUnVsZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlX2lkID0gJ3J1bGVfMDAxJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZV9uYW1lID0gJ0hpZ2ggUmlzayBTYW5jdGlvbnMgQ2hlY2snLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUxMT1cnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZWRfYWxlcnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfYWxlcnQuQW1sQWxlcnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRfbGV2ZWwgPSAnSElHSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0X25hbWUgPSAnU2FuY3Rpb25zIE1hdGNoJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSAnU0FOQ1RJT05FRF9FTlRJVFknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlID0gJ0NIQUlOQUxZU0lTJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfaWQgPSAnYWxlcnRfMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydF9hbW91bnQgPSAxMDAwLjUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zdXJlX3R5cGUgPSAnRElSRUNUJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5X2FjdGlvbiA9ICdCTE9DSycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkID0gMTAxLCApLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfcmVzdWx0LlRyYXZlbFJ1bGVSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX3ZlcmlmaWVkID0gVHJ1ZSwgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHNfbWVzc2FnZSA9ICdUcmF2ZWwgcnVsZSBzY3JlZW5pbmcgY29tcGxldGVkIHN1Y2Nlc3NmdWxseScsIAogICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVkX2FsZXJ0ID0gZmlyZWJsb2Nrcy5tb2RlbHMubWF0Y2hlZF9hbGVydC5tYXRjaGVkQWxlcnQoKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZWRfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLm1hdGNoZWRfcnVsZS5tYXRjaGVkUnVsZSgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9wcmVzY3JlZW5pbmdfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ByZXNjcmVlbmluZ19ydWxlLlRyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnlwYXNzX3JlYXNvbiA9ICdNQU5VQUwnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV90eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF90eXBlID0gJ1ZBVUxUX0FDQ09VTlQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Rfc3ViX3R5cGUgPSAnSU5URVJOQUwnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZmVyX3BlZXJfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zlcl9wZWVyX3N1Yl90eXBlID0gJ0lOVEVSTkFMJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0X2FkZHJlc3MgPSAnMHhBMmRDMjQ5MEVEMURjQTJEMjE2MTM1MDhmZGIwYzgyZGFFQWIwNzE1JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VfaWQgPSAnMCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9pZCA9ICdleHRfYWRkcmVzc18wMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0ID0gJ0VUSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZV9hc3NldCA9ICdFVEgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IDAuNSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfdXNkID0gMTAwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXR3b3JrX3Byb3RvY29sID0gJ0VUSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gJ1RSQU5TRkVSJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZWRfbm9fdHJtX3NjcmVlbmluZ19ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMubWF0Y2hlZF9ub190cm1fc2NyZWVuaW5nX3J1bGUubWF0Y2hlZE5vVHJtU2NyZWVuaW5nUnVsZSgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfaW50ZWdyYXRpb25faWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX3Nob3J0X25hbWUgPSAnQUNNRSBDb3JwJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX21lc3NhZ2VfaWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywgCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyX3Jlc3BvbnNlID0geyB9LCApLCAKICAgICAgICAgICAgICAgICAgICB0ciA9IGZpcmVibG9ja3MubW9kZWxzLmNvbXBsaWFuY2Vfc2NyZWVuaW5nX3Jlc3VsdC5Db21wbGlhbmNlU2NyZWVuaW5nUmVzdWx0KAogICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlciA9ICdOT1RBQkVORScsIAogICAgICAgICAgICAgICAgICAgICAgICBwYXlsb2FkID0gZmlyZWJsb2Nrcy5tb2RlbHMucGF5bG9hZC5wYXlsb2FkKCksIAogICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSAxNzUzNDU5MTExODI0LCAKICAgICAgICAgICAgICAgICAgICAgICAgc2NyZWVuaW5nX3N0YXR1cyA9ICdDT01QTEVURUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYnlwYXNzX3JlYXNvbiA9ICdVTlNVUFBPUlRFRF9BU1NFVCcsIAogICAgICAgICAgICAgICAgICAgICAgICBwcmV2X2J5cGFzc19yZWFzb24gPSAnQkVMT1dfVEhSRVNIT0xEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHJpc2sgPSAnbG93UmlzaycsIAogICAgICAgICAgICAgICAgICAgICAgICBleHRlbmRlZF9yaXNrID0gJ2xvd1Jpc2snLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfaWQgPSAnYW1sX3NjcmVlbmluZ18xMjM0NScsIAogICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9yZWZfaWQgPSAnY3VzdG9tZXJfcmVmXzc4OScsIAogICAgICAgICAgICAgICAgICAgICAgICByZWZfaWQgPSAncmVmXzEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gJ0VYQ0hBTkdFJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkID0gNSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfYWRkcmVzcyA9ICcweEEyZEMyNDkwRUQxRGNBMkQyMTYxMzUwOGZkYjBjODJkYUVBYjA3MTUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF90YWcgPSAnbWVtb18xMjM0NScsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXN0X3JlY29yZF9pZCA9ICdyZWNvcmRfMDAxJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfcmVzb2x1dGlvbl9zaWduYXR1cmUgPSAnMHgxMjM0NTY3ODkwYWJjZGVmJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHNfbWVzc2FnZSA9ICdUcmF2ZWwgcnVsZSBzY3JlZW5pbmcgY29tcGxldGVkIHN1Y2Nlc3NmdWxseScsIAogICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVkX25vX3RybV9zY3JlZW5pbmdfcnVsZSA9IGZpcmVibG9ja3MubW9kZWxzLm1hdGNoZWRfbm9fdHJtX3NjcmVlbmluZ19ydWxlLm1hdGNoZWROb1RybVNjcmVlbmluZ1J1bGUoKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkID0gJzNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNicsIAogICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9zaG9ydF9uYW1lID0gJ0FDTUUgQ29ycCcsIAogICAgICAgICAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV9tZXNzYWdlX2lkID0gJzNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNicsICksIAogICAgICAgICAgICAgICAgICAgIGFtbF9saXN0ID0gWwogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ0NvbXBsZXRlZCcsIAogICAgICAgICAgICAgICAgICAgIGFtbF9yZWdpc3RyYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy5hbWxfcmVnaXN0cmF0aW9uX3Jlc3VsdC5BbWxSZWdpc3RyYXRpb25SZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9IDEuMzM3LCApLCAKICAgICAgICAgICAgICAgICAgICB0cmxpbmtfcmVnaXN0cmF0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJfbGlua19yZWdpc3RyYXRpb25fcmVzdWx0LlRSTGlua1JlZ2lzdHJhdGlvblJlc3VsdCgKICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ0NPTVBMRVRFRCcsIAogICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlciA9ICdTVU1TVUInLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSAxNjQwOTk1MjAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9yZWNvcmRfaWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX21lc3NhZ2VfaWQgPSAnM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX2ludGVncmF0aW9uX2lkID0gJzNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNicsIAogICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9zaG9ydF9uYW1lID0gJ0FDTUUgQ29ycCcsICksIAogICAgICAgICAgICAgICAgICAgIHRybGlua19kZXN0aW5hdGlvbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyX2xpbmtfcmVzdWx0LlRSTGlua1Jlc3VsdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyID0gJ1NVTVNVQicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wID0gMTY0MDk5NTIwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0X2FkZHJlc3MgPSAnMHhBMmRDMjQ5MEVEMURjQTJEMjE2MTM1MDhmZGIwYzgyZGFFQWIwNzE1JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0X3RhZyA9ICdtZW1vXzEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXBhc3NfcmVhc29uID0gJ01BTlVBTCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsc19tZXNzYWdlID0gJ1NjcmVlbmluZyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pbnRlZ3JhdGlvbl9pZCA9ICczZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX3Nob3J0X25hbWUgPSAnQUNNRSBDb3JwJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV9tZXNzYWdlX2lkID0gJzNmYTg1ZjY0LTU3MTctNDU2Mi1iM2ZjLTJjOTYzZjY2YWZhNicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9ub190cm1fc2NyZWVuaW5nX3J1bGUgPSBmaXJlYmxvY2tzLm1vZGVscy50cl9saW5rX21pc3NpbmdfdHJtX2RlY2lzaW9uLlRSTGlua01pc3NpbmdUcm1EZWNpc2lvbigpLCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sICksCiAgICAgICAgICAgICAgICBub3RfYnJvYWRjYXN0X2J5X2ZpcmVibG9ja3MgPSBGYWxzZSwKICAgICAgICAgICAgICAgIGRhcHBfdXJsID0gJ2h0dHBzOi8vYXBwLnVuaXN3YXAub3JnJywKICAgICAgICAgICAgICAgIGdhc19saW1pdCA9ICcyMTAwMCcsCiAgICAgICAgICAgICAgICBibG9ja2NoYWluX2luZGV4ID0gJzEuMS4xJywKICAgICAgICAgICAgICAgIHBhaWRfcmVudCA9ICcwLjAwMjAzOTI4JywKICAgICAgICAgICAgICAgIGV4dHJhX3BhcmFtZXRlcnMgPSB7IH0sCiAgICAgICAgICAgICAgICBzaWduZWRfbWVzc2FnZXMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuc2lnbmVkX21lc3NhZ2UuU2lnbmVkTWVzc2FnZSgKICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWxnb3JpdGhtID0gJ01QQ19FQ0RTQV9TRUNQMjU2SzEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVyaXZhdGlvbl9wYXRoID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4zMzcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICBzaWduYXR1cmUgPSBmaXJlYmxvY2tzLm1vZGVscy5zaWduZWRfbWVzc2FnZV9zaWduYXR1cmUuU2lnbmVkTWVzc2FnZV9zaWduYXR1cmUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsX3NpZyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IDEuMzM3LCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljX2tleSA9ICcnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIG51bV9vZl9jb25maXJtYXRpb25zID0gMS4zMzcsCiAgICAgICAgICAgICAgICBibG9ja19pbmZvID0gZmlyZWJsb2Nrcy5tb2RlbHMuYmxvY2tfaW5mby5CbG9ja0luZm8oCiAgICAgICAgICAgICAgICAgICAgYmxvY2tfaGVpZ2h0ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGJsb2NrX2hhc2ggPSAnJywgKSwKICAgICAgICAgICAgICAgIGluZGV4ID0gMS4zMzcsCiAgICAgICAgICAgICAgICByZXdhcmRfaW5mbyA9IGZpcmVibG9ja3MubW9kZWxzLnJld2FyZF9pbmZvLlJld2FyZEluZm8oCiAgICAgICAgICAgICAgICAgICAgc3JjX3Jld2FyZHMgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgZGVzdF9yZXdhcmRzID0gJycsICksCiAgICAgICAgICAgICAgICBmZWVfcGF5ZXJfaW5mbyA9IGZpcmVibG9ja3MubW9kZWxzLmZlZV9wYXllcl9pbmZvLkZlZVBheWVySW5mbygKICAgICAgICAgICAgICAgICAgICBmZWVfcGF5ZXJfYWNjb3VudF9pZCA9ICcxMjMnLCApLAogICAgICAgICAgICAgICAgc3lzdGVtX21lc3NhZ2VzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnN5c3RlbV9tZXNzYWdlX2luZm8uU3lzdGVtTWVzc2FnZUluZm8oCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnV0FSTicsIAogICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ1Nsb3cgdHJhbnNhY3Rpb24gcHJvY2Vzc2luZy4gT3V0Z29pbmcgdHJhbnNhY3Rpb25zIG1pZ2h0IGJlIHN0dWNrLicsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgYWRkcmVzc190eXBlID0gJycsCiAgICAgICAgICAgICAgICByZXF1ZXN0ZWRfYW1vdW50ID0gMS4zMzcsCiAgICAgICAgICAgICAgICBhbW91bnQgPSAxLjMzNywKICAgICAgICAgICAgICAgIG5ldF9hbW91bnQgPSAxLjMzNywKICAgICAgICAgICAgICAgIGFtb3VudF91c2QgPSAxLjMzNywKICAgICAgICAgICAgICAgIHNlcnZpY2VfZmVlID0gMS4zMzcsCiAgICAgICAgICAgICAgICBmZWUgPSAxLjMzNywKICAgICAgICAgICAgICAgIG5ldHdvcmtfZmVlID0gMS4zMzcsCiAgICAgICAgICAgICAgICBlcnJvcl9kZXNjcmlwdGlvbiA9ICcnLAogICAgICAgICAgICAgICAgcmVwbGFjZWRfdHhfaGFzaCA9ICcnLAogICAgICAgICAgICAgICAgbm9uY2UgPSAnMTEyMjgnLAogICAgICAgICAgICAgICAgYmxvY2tjaGFpbl9pbmZvID0geyJldm1UcmFuc2ZlclR5cGUiOiJOQVRJVkUifQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uUmVzcG9uc2UoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhbnNhY3Rpb25SZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYW5zYWN0aW9uUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_transaction_response_contract_call_decoded_data.py b/test/test_transaction_response_contract_call_decoded_data.py index 8001761b..18ae735c 100644 --- a/test/test_transaction_response_contract_call_decoded_data.py +++ b/test/test_transaction_response_contract_call_decoded_data.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transaction_response_contract_call_decoded_data import ( - TransactionResponseContractCallDecodedData, -) - - -class TestTransactionResponseContractCallDecodedData(unittest.TestCase): - """TransactionResponseContractCallDecodedData unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> TransactionResponseContractCallDecodedData: - """Test TransactionResponseContractCallDecodedData - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransactionResponseContractCallDecodedData` - """ - model = TransactionResponseContractCallDecodedData() - if include_optional: - return TransactionResponseContractCallDecodedData( - contract_name = '', - function_calls = [ - None - ] - ) - else: - return TransactionResponseContractCallDecodedData( - ) - """ - - def testTransactionResponseContractCallDecodedData(self): - """Test TransactionResponseContractCallDecodedData""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3Jlc3BvbnNlX2NvbnRyYWN0X2NhbGxfZGVjb2RlZF9kYXRhIGltcG9ydCAoCiAgICBUcmFuc2FjdGlvblJlc3BvbnNlQ29udHJhY3RDYWxsRGVjb2RlZERhdGEsCikKCgpjbGFzcyBUZXN0VHJhbnNhY3Rpb25SZXNwb25zZUNvbnRyYWN0Q2FsbERlY29kZWREYXRhKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYW5zYWN0aW9uUmVzcG9uc2VDb250cmFjdENhbGxEZWNvZGVkRGF0YSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2UoCiAgICAgICAgc2VsZiwgaW5jbHVkZV9vcHRpb25hbAogICAgKSAtPiBUcmFuc2FjdGlvblJlc3BvbnNlQ29udHJhY3RDYWxsRGVjb2RlZERhdGE6CiAgICAgICAgIiIiVGVzdCBUcmFuc2FjdGlvblJlc3BvbnNlQ29udHJhY3RDYWxsRGVjb2RlZERhdGEKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhbnNhY3Rpb25SZXNwb25zZUNvbnRyYWN0Q2FsbERlY29kZWREYXRhYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVHJhbnNhY3Rpb25SZXNwb25zZUNvbnRyYWN0Q2FsbERlY29kZWREYXRhKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb25SZXNwb25zZUNvbnRyYWN0Q2FsbERlY29kZWREYXRhKAogICAgICAgICAgICAgICAgY29udHJhY3RfbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgZnVuY3Rpb25fY2FsbHMgPSBbCiAgICAgICAgICAgICAgICAgICAgTm9uZQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmFuc2FjdGlvblJlc3BvbnNlQ29udHJhY3RDYWxsRGVjb2RlZERhdGEoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhbnNhY3Rpb25SZXNwb25zZUNvbnRyYWN0Q2FsbERlY29kZWREYXRhKHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJhbnNhY3Rpb25SZXNwb25zZUNvbnRyYWN0Q2FsbERlY29kZWREYXRhIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_transaction_response_destination.py b/test/test_transaction_response_destination.py index 74d41152..05d60d27 100644 --- a/test/test_transaction_response_destination.py +++ b/test/test_transaction_response_destination.py @@ -1,78 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transaction_response_destination import ( - TransactionResponseDestination, -) - - -class TestTransactionResponseDestination(unittest.TestCase): - """TransactionResponseDestination unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransactionResponseDestination: - """Test TransactionResponseDestination - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransactionResponseDestination` - """ - model = TransactionResponseDestination() - if include_optional: - return TransactionResponseDestination( - amount = '', - amount_usd = '', - travel_rule_message_id = 'trm_12345678-1234-1234-1234-123456789012', - aml_screening_result = fireblocks.models.aml_screening_result.AmlScreeningResult( - provider = '', - payload = fireblocks.models.payload.payload(), ), - destination = fireblocks.models.destination_transfer_peer_path_response.DestinationTransferPeerPathResponse( - type = 'VAULT_ACCOUNT', - sub_type = '', - id = '', - name = '', - wallet_id = '', - trading_account = '', ), - authorization_info = fireblocks.models.authorization_info.AuthorizationInfo( - allow_operator_as_authorizer = True, - logic = 'AND', - groups = [ - fireblocks.models.authorization_groups.AuthorizationGroups( - th = 1.337, - users = { - 'PENDING_AUTHORIZATION' : 'PENDING_AUTHORIZATION' - }, ) - ], ) - ) - else: - return TransactionResponseDestination( - ) - """ - - def testTransactionResponseDestination(self): - """Test TransactionResponseDestination""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zYWN0aW9uX3Jlc3BvbnNlX2Rlc3RpbmF0aW9uIGltcG9ydCAoCiAgICBUcmFuc2FjdGlvblJlc3BvbnNlRGVzdGluYXRpb24sCikKCgpjbGFzcyBUZXN0VHJhbnNhY3Rpb25SZXNwb25zZURlc3RpbmF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYW5zYWN0aW9uUmVzcG9uc2VEZXN0aW5hdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhbnNhY3Rpb25SZXNwb25zZURlc3RpbmF0aW9uOgogICAgICAgICIiIlRlc3QgVHJhbnNhY3Rpb25SZXNwb25zZURlc3RpbmF0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYW5zYWN0aW9uUmVzcG9uc2VEZXN0aW5hdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYW5zYWN0aW9uUmVzcG9uc2VEZXN0aW5hdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uUmVzcG9uc2VEZXN0aW5hdGlvbigKICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLAogICAgICAgICAgICAgICAgYW1vdW50X3VzZCA9ICcnLAogICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfbWVzc2FnZV9pZCA9ICd0cm1fMTIzNDU2NzgtMTIzNC0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyJywKICAgICAgICAgICAgICAgIGFtbF9zY3JlZW5pbmdfcmVzdWx0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYW1sX3NjcmVlbmluZ19yZXN1bHQuQW1sU2NyZWVuaW5nUmVzdWx0KAogICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyID0gJycsIAogICAgICAgICAgICAgICAgICAgIHBheWxvYWQgPSBmaXJlYmxvY2tzLm1vZGVscy5wYXlsb2FkLnBheWxvYWQoKSwgKSwKICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGVzdGluYXRpb25fdHJhbnNmZXJfcGVlcl9wYXRoX3Jlc3BvbnNlLkRlc3RpbmF0aW9uVHJhbnNmZXJQZWVyUGF0aFJlc3BvbnNlKAogICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFRfQUNDT1VOVCcsIAogICAgICAgICAgICAgICAgICAgIHN1Yl90eXBlID0gJycsIAogICAgICAgICAgICAgICAgICAgIGlkID0gJycsIAogICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgd2FsbGV0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgIHRyYWRpbmdfYWNjb3VudCA9ICcnLCApLAogICAgICAgICAgICAgICAgYXV0aG9yaXphdGlvbl9pbmZvID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXV0aG9yaXphdGlvbl9pbmZvLkF1dGhvcml6YXRpb25JbmZvKAogICAgICAgICAgICAgICAgICAgIGFsbG93X29wZXJhdG9yX2FzX2F1dGhvcml6ZXIgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICBsb2dpYyA9ICdBTkQnLCAKICAgICAgICAgICAgICAgICAgICBncm91cHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLmF1dGhvcml6YXRpb25fZ3JvdXBzLkF1dGhvcml6YXRpb25Hcm91cHMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aCA9IDEuMzM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzID0gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQRU5ESU5HX0FVVEhPUklaQVRJT04nIDogJ1BFTkRJTkdfQVVUSE9SSVpBVElPTicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmFuc2FjdGlvblJlc3BvbnNlRGVzdGluYXRpb24oCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhbnNhY3Rpb25SZXNwb25zZURlc3RpbmF0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJhbnNhY3Rpb25SZXNwb25zZURlc3RpbmF0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_transactions_api.py b/test/test_transactions_api.py index 7dd1f085..38302c0c 100644 --- a/test/test_transactions_api.py +++ b/test/test_transactions_api.py @@ -1,123 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.transactions_api import TransactionsApi - - -class TestTransactionsApi(unittest.TestCase): - """TransactionsApi unit test stubs""" - - def setUp(self) -> None: - self.api = TransactionsApi() - - def tearDown(self) -> None: - pass - - def test_cancel_transaction(self) -> None: - """Test case for cancel_transaction - - Cancel a transaction - """ - pass - - def test_create_transaction(self) -> None: - """Test case for create_transaction - - Create a new transaction - """ - pass - - def test_drop_transaction(self) -> None: - """Test case for drop_transaction - - Drop ETH (EVM) transaction by ID - """ - pass - - def test_estimate_network_fee(self) -> None: - """Test case for estimate_network_fee - - Estimate the required fee for an asset - """ - pass - - def test_estimate_transaction_fee(self) -> None: - """Test case for estimate_transaction_fee - - Estimate transaction fee - """ - pass - - def test_freeze_transaction(self) -> None: - """Test case for freeze_transaction - - Freeze a transaction - """ - pass - - def test_get_transaction(self) -> None: - """Test case for get_transaction - - Get a specific transaction by Fireblocks transaction ID - """ - pass - - def test_get_transaction_by_external_id(self) -> None: - """Test case for get_transaction_by_external_id - - Get a specific transaction by external transaction ID - """ - pass - - def test_get_transactions(self) -> None: - """Test case for get_transactions - - Get transaction history - """ - pass - - def test_set_confirmation_threshold_by_transaction_hash(self) -> None: - """Test case for set_confirmation_threshold_by_transaction_hash - - Set confirmation threshold by transaction hash - """ - pass - - def test_set_transaction_confirmation_threshold(self) -> None: - """Test case for set_transaction_confirmation_threshold - - Set confirmation threshold by Fireblocks Transaction ID - """ - pass - - def test_unfreeze_transaction(self) -> None: - """Test case for unfreeze_transaction - - Unfreeze a transaction - """ - pass - - def test_validate_address(self) -> None: - """Test case for validate_address - - Validate destination address - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLnRyYW5zYWN0aW9uc19hcGkgaW1wb3J0IFRyYW5zYWN0aW9uc0FwaQoKCmNsYXNzIFRlc3RUcmFuc2FjdGlvbnNBcGkodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhbnNhY3Rpb25zQXBpIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKSAtPiBOb25lOgogICAgICAgIHNlbGYuYXBpID0gVHJhbnNhY3Rpb25zQXBpKCkKCiAgICBkZWYgdGVhckRvd24oc2VsZikgLT4gTm9uZToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY2FuY2VsX3RyYW5zYWN0aW9uKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBjYW5jZWxfdHJhbnNhY3Rpb24KCiAgICAgICAgQ2FuY2VsIGEgdHJhbnNhY3Rpb24KICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY3JlYXRlX3RyYW5zYWN0aW9uKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBjcmVhdGVfdHJhbnNhY3Rpb24KCiAgICAgICAgQ3JlYXRlIGEgbmV3IHRyYW5zYWN0aW9uCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2Ryb3BfdHJhbnNhY3Rpb24oc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGRyb3BfdHJhbnNhY3Rpb24KCiAgICAgICAgRHJvcCBFVEggKEVWTSkgdHJhbnNhY3Rpb24gYnkgSUQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZXN0aW1hdGVfbmV0d29ya19mZWUoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGVzdGltYXRlX25ldHdvcmtfZmVlCgogICAgICAgIEVzdGltYXRlIHRoZSByZXF1aXJlZCBmZWUgZm9yIGFuIGFzc2V0CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2VzdGltYXRlX3RyYW5zYWN0aW9uX2ZlZShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZXN0aW1hdGVfdHJhbnNhY3Rpb25fZmVlCgogICAgICAgIEVzdGltYXRlIHRyYW5zYWN0aW9uIGZlZQogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9mcmVlemVfdHJhbnNhY3Rpb24oc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGZyZWV6ZV90cmFuc2FjdGlvbgoKICAgICAgICBGcmVlemUgYSB0cmFuc2FjdGlvbgogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfdHJhbnNhY3Rpb24oc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF90cmFuc2FjdGlvbgoKICAgICAgICBHZXQgYSBzcGVjaWZpYyB0cmFuc2FjdGlvbiBieSBGaXJlYmxvY2tzIHRyYW5zYWN0aW9uIElECiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF90cmFuc2FjdGlvbl9ieV9leHRlcm5hbF9pZChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X3RyYW5zYWN0aW9uX2J5X2V4dGVybmFsX2lkCgogICAgICAgIEdldCBhIHNwZWNpZmljIHRyYW5zYWN0aW9uIGJ5IGV4dGVybmFsIHRyYW5zYWN0aW9uIElECiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF90cmFuc2FjdGlvbnMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF90cmFuc2FjdGlvbnMKCiAgICAgICAgR2V0IHRyYW5zYWN0aW9uIGhpc3RvcnkKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3Rfc2V0X2NvbmZpcm1hdGlvbl90aHJlc2hvbGRfYnlfdHJhbnNhY3Rpb25faGFzaChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3Igc2V0X2NvbmZpcm1hdGlvbl90aHJlc2hvbGRfYnlfdHJhbnNhY3Rpb25faGFzaAoKICAgICAgICBTZXQgY29uZmlybWF0aW9uIHRocmVzaG9sZCBieSB0cmFuc2FjdGlvbiBoYXNoCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3NldF90cmFuc2FjdGlvbl9jb25maXJtYXRpb25fdGhyZXNob2xkKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBzZXRfdHJhbnNhY3Rpb25fY29uZmlybWF0aW9uX3RocmVzaG9sZAoKICAgICAgICBTZXQgY29uZmlybWF0aW9uIHRocmVzaG9sZCBieSBGaXJlYmxvY2tzIFRyYW5zYWN0aW9uIElECiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3VuZnJlZXplX3RyYW5zYWN0aW9uKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciB1bmZyZWV6ZV90cmFuc2FjdGlvbgoKICAgICAgICBVbmZyZWV6ZSBhIHRyYW5zYWN0aW9uCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3ZhbGlkYXRlX2FkZHJlc3Moc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHZhbGlkYXRlX2FkZHJlc3MKCiAgICAgICAgVmFsaWRhdGUgZGVzdGluYXRpb24gYWRkcmVzcwogICAgICAgICIiIgogICAgICAgIHBhc3MKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_transfer_config_operation.py b/test/test_transfer_config_operation.py index 63d283ec..9ed89ee8 100644 --- a/test/test_transfer_config_operation.py +++ b/test/test_transfer_config_operation.py @@ -1,76 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transfer_config_operation import TransferConfigOperation - - -class TestTransferConfigOperation(unittest.TestCase): - """TransferConfigOperation unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransferConfigOperation: - """Test TransferConfigOperation - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransferConfigOperation` - """ - model = TransferConfigOperation() - if include_optional: - return TransferConfigOperation( - operation_id = '', - type = 'TRANSFER', - params = fireblocks.models.transfer_operation_config_params.TransferOperationConfigParams( - amount = '', - asset_id = '', - source = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - destination = null, ), - status = 'PENDING', - validation_failure = fireblocks.models.transfer_validation_failure.TransferValidationFailure( - reason = 'ACCOUNT_NOT_FOUND', - data = { }, ) - ) - else: - return TransferConfigOperation( - operation_id = '', - type = 'TRANSFER', - params = fireblocks.models.transfer_operation_config_params.TransferOperationConfigParams( - amount = '', - asset_id = '', - source = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - destination = null, ), - status = 'PENDING', - ) - """ - - def testTransferConfigOperation(self): - """Test TransferConfigOperation""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX2NvbmZpZ19vcGVyYXRpb24gaW1wb3J0IFRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uCgoKY2xhc3MgVGVzdFRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUcmFuc2ZlckNvbmZpZ09wZXJhdGlvbjoKICAgICAgICAiIiJUZXN0IFRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVHJhbnNmZXJDb25maWdPcGVyYXRpb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmFuc2ZlckNvbmZpZ09wZXJhdGlvbigKICAgICAgICAgICAgICAgIG9wZXJhdGlvbl9pZCA9ICcnLAogICAgICAgICAgICAgICAgdHlwZSA9ICdUUkFOU0ZFUicsCiAgICAgICAgICAgICAgICBwYXJhbXMgPSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fY29uZmlnX3BhcmFtcy5UcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcygKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgc291cmNlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudC5BY2NvdW50KAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X3R5cGUgPSAnRVhDSEFOR0VfQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gbnVsbCwgKSwKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdQRU5ESU5HJywKICAgICAgICAgICAgICAgIHZhbGlkYXRpb25fZmFpbHVyZSA9IGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3ZhbGlkYXRpb25fZmFpbHVyZS5UcmFuc2ZlclZhbGlkYXRpb25GYWlsdXJlKAogICAgICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdBQ0NPVU5UX05PVF9GT1VORCcsIAogICAgICAgICAgICAgICAgICAgIGRhdGEgPSB7IH0sICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmFuc2ZlckNvbmZpZ09wZXJhdGlvbigKICAgICAgICAgICAgICAgIG9wZXJhdGlvbl9pZCA9ICcnLAogICAgICAgICAgICAgICAgdHlwZSA9ICdUUkFOU0ZFUicsCiAgICAgICAgICAgICAgICBwYXJhbXMgPSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fY29uZmlnX3BhcmFtcy5UcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcygKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgc291cmNlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudC5BY2NvdW50KAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X3R5cGUgPSAnRVhDSEFOR0VfQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gbnVsbCwgKSwKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdQRU5ESU5HJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmFuc2ZlckNvbmZpZ09wZXJhdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYW5zZmVyQ29uZmlnT3BlcmF0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_transfer_operation_config_params.py b/test/test_transfer_operation_config_params.py index 3e4c4a70..48cd4a7b 100644 --- a/test/test_transfer_operation_config_params.py +++ b/test/test_transfer_operation_config_params.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transfer_operation_config_params import ( - TransferOperationConfigParams, -) - - -class TestTransferOperationConfigParams(unittest.TestCase): - """TransferOperationConfigParams unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransferOperationConfigParams: - """Test TransferOperationConfigParams - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransferOperationConfigParams` - """ - model = TransferOperationConfigParams() - if include_optional: - return TransferOperationConfigParams( - amount = '', - asset_id = '', - source = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - destination = None - ) - else: - return TransferOperationConfigParams( - destination = None, - ) - """ - - def testTransferOperationConfigParams(self): - """Test TransferOperationConfigParams""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9jb25maWdfcGFyYW1zIGltcG9ydCAoCiAgICBUcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcywKKQoKCmNsYXNzIFRlc3RUcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXM6CiAgICAgICAgIiIiVGVzdCBUcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYW5zZmVyT3BlcmF0aW9uQ29uZmlnUGFyYW1zKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMoCiAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywKICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsCiAgICAgICAgICAgICAgICBzb3VyY2UgPSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50LkFjY291bnQoCiAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhY2NvdW50X3R5cGUgPSAnRVhDSEFOR0VfQUNDT1VOVCcsICksCiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IE5vbmUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcygKICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gTm9uZSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcyhzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYW5zZmVyT3BlcmF0aW9uQ29uZmlnUGFyYW1zIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_transfer_operation_execution.py b/test/test_transfer_operation_execution.py index 7d3f4149..96c013ff 100644 --- a/test/test_transfer_operation_execution.py +++ b/test/test_transfer_operation_execution.py @@ -1,84 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transfer_operation_execution import TransferOperationExecution - - -class TestTransferOperationExecution(unittest.TestCase): - """TransferOperationExecution unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransferOperationExecution: - """Test TransferOperationExecution - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransferOperationExecution` - """ - model = TransferOperationExecution() - if include_optional: - return TransferOperationExecution( - input = fireblocks.models.transfer_operation_config_params.TransferOperationConfigParams( - amount = '', - asset_id = '', - source = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - destination = null, ), - output = fireblocks.models.transfer_operation_execution_output.TransferOperationExecutionOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), ), - tx_id = '', - started_at = 1.337, - finished_at = 1.337, - failure = fireblocks.models.transfer_operation_failure.TransferOperationFailure( - reason = 'INVALID_AMOUNT', - data = fireblocks.models.transfer_operation_failure_data.TransferOperationFailure_data( - tx_id = '', - tx_status = '', - tx_sub_status = '', ), ) - ) - else: - return TransferOperationExecution( - input = fireblocks.models.transfer_operation_config_params.TransferOperationConfigParams( - amount = '', - asset_id = '', - source = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - destination = null, ), - started_at = 1.337, - ) - """ - - def testTransferOperationExecution(self): - """Test TransferOperationExecution""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9leGVjdXRpb24gaW1wb3J0IFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uCgoKY2xhc3MgVGVzdFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbjoKICAgICAgICAiIiJUZXN0IFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbigKICAgICAgICAgICAgICAgIGlucHV0ID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMuVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9IGZpcmVibG9ja3MubW9kZWxzLmFjY291bnQuQWNjb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF90eXBlID0gJ0VYQ0hBTkdFX0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IG51bGwsICksCiAgICAgICAgICAgICAgICBvdXRwdXQgPSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fZXhlY3V0aW9uX291dHB1dC5UcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCgKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgKSwgCiAgICAgICAgICAgICAgICAgICAgZmVlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfYW1vdW50LkFzc2V0QW1vdW50KAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksICksCiAgICAgICAgICAgICAgICB0eF9pZCA9ICcnLAogICAgICAgICAgICAgICAgc3RhcnRlZF9hdCA9IDEuMzM3LAogICAgICAgICAgICAgICAgZmluaXNoZWRfYXQgPSAxLjMzNywKICAgICAgICAgICAgICAgIGZhaWx1cmUgPSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fZmFpbHVyZS5UcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmUoCiAgICAgICAgICAgICAgICAgICAgcmVhc29uID0gJ0lOVkFMSURfQU1PVU5UJywgCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9mYWlsdXJlX2RhdGEuVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlX2RhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgIHR4X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICB0eF9zdGF0dXMgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR4X3N1Yl9zdGF0dXMgPSAnJywgKSwgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uKAogICAgICAgICAgICAgICAgaW5wdXQgPSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fY29uZmlnX3BhcmFtcy5UcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcygKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgc291cmNlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudC5BY2NvdW50KAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X3R5cGUgPSAnRVhDSEFOR0VfQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gbnVsbCwgKSwKICAgICAgICAgICAgICAgIHN0YXJ0ZWRfYXQgPSAxLjMzNywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_transfer_operation_execution_output.py b/test/test_transfer_operation_execution_output.py index ef44ec50..34338441 100644 --- a/test/test_transfer_operation_execution_output.py +++ b/test/test_transfer_operation_execution_output.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transfer_operation_execution_output import ( - TransferOperationExecutionOutput, -) - - -class TestTransferOperationExecutionOutput(unittest.TestCase): - """TransferOperationExecutionOutput unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransferOperationExecutionOutput: - """Test TransferOperationExecutionOutput - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransferOperationExecutionOutput` - """ - model = TransferOperationExecutionOutput() - if include_optional: - return TransferOperationExecutionOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ) - ) - else: - return TransferOperationExecutionOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - ) - """ - - def testTransferOperationExecutionOutput(self): - """Test TransferOperationExecutionOutput""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9leGVjdXRpb25fb3V0cHV0IGltcG9ydCAoCiAgICBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCwKKQoKCmNsYXNzIFRlc3RUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQ6CiAgICAgICAgIiIiVGVzdCBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25PdXRwdXQoCiAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksCiAgICAgICAgICAgICAgICBmZWUgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dCgKICAgICAgICAgICAgICAgIGFtb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2Ftb3VudC5Bc3NldEFtb3VudCgKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgKSwKICAgICAgICAgICAgICAgIGZlZSA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2Ftb3VudC5Bc3NldEFtb3VudCgKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvbk91dHB1dChzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_transfer_operation_execution_params.py b/test/test_transfer_operation_execution_params.py index a868f237..af6dcc5d 100644 --- a/test/test_transfer_operation_execution_params.py +++ b/test/test_transfer_operation_execution_params.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transfer_operation_execution_params import ( - TransferOperationExecutionParams, -) - - -class TestTransferOperationExecutionParams(unittest.TestCase): - """TransferOperationExecutionParams unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransferOperationExecutionParams: - """Test TransferOperationExecutionParams - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransferOperationExecutionParams` - """ - model = TransferOperationExecutionParams() - if include_optional: - return TransferOperationExecutionParams( - config_operation_id = '', - execution_params = fireblocks.models.transfer_operation_execution_params_execution_params.TransferOperationExecutionParams_executionParams( - amount = '', - asset_id = '', - source = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - destination = null, ) - ) - else: - return TransferOperationExecutionParams( - config_operation_id = '', - ) - """ - - def testTransferOperationExecutionParams(self): - """Test TransferOperationExecutionParams""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9leGVjdXRpb25fcGFyYW1zIGltcG9ydCAoCiAgICBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcywKKQoKCmNsYXNzIFRlc3RUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXM6CiAgICAgICAgIiIiVGVzdCBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXMoCiAgICAgICAgICAgICAgICBjb25maWdfb3BlcmF0aW9uX2lkID0gJycsCiAgICAgICAgICAgICAgICBleGVjdXRpb25fcGFyYW1zID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX2V4ZWN1dGlvbl9wYXJhbXNfZXhlY3V0aW9uX3BhcmFtcy5UcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc19leGVjdXRpb25QYXJhbXMoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9IGZpcmVibG9ja3MubW9kZWxzLmFjY291bnQuQWNjb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF90eXBlID0gJ0VYQ0hBTkdFX0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IG51bGwsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcygKICAgICAgICAgICAgICAgIGNvbmZpZ19vcGVyYXRpb25faWQgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtcyhzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_transfer_operation_execution_params_execution_params.py b/test/test_transfer_operation_execution_params_execution_params.py index 1dcc5ce3..afa51fa5 100644 --- a/test/test_transfer_operation_execution_params_execution_params.py +++ b/test/test_transfer_operation_execution_params_execution_params.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transfer_operation_execution_params_execution_params import ( - TransferOperationExecutionParamsExecutionParams, -) - - -class TestTransferOperationExecutionParamsExecutionParams(unittest.TestCase): - """TransferOperationExecutionParamsExecutionParams unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> TransferOperationExecutionParamsExecutionParams: - """Test TransferOperationExecutionParamsExecutionParams - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransferOperationExecutionParamsExecutionParams` - """ - model = TransferOperationExecutionParamsExecutionParams() - if include_optional: - return TransferOperationExecutionParamsExecutionParams( - amount = '', - asset_id = '', - source = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - destination = None - ) - else: - return TransferOperationExecutionParamsExecutionParams( - ) - """ - - def testTransferOperationExecutionParamsExecutionParams(self): - """Test TransferOperationExecutionParamsExecutionParams""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9leGVjdXRpb25fcGFyYW1zX2V4ZWN1dGlvbl9wYXJhbXMgaW1wb3J0ICgKICAgIFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zLAopCgoKY2xhc3MgVGVzdFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZSgKICAgICAgICBzZWxmLCBpbmNsdWRlX29wdGlvbmFsCiAgICApIC0+IFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zOgogICAgICAgICIiIlRlc3QgVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXNgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtcygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRyYW5zZmVyT3BlcmF0aW9uRXhlY3V0aW9uUGFyYW1zRXhlY3V0aW9uUGFyYW1zKAogICAgICAgICAgICAgICAgYW1vdW50ID0gJycsCiAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLAogICAgICAgICAgICAgICAgc291cmNlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudC5BY2NvdW50KAogICAgICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYWNjb3VudF90eXBlID0gJ0VYQ0hBTkdFX0FDQ09VTlQnLCApLAogICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSBOb25lCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhbnNmZXJPcGVyYXRpb25FeGVjdXRpb25QYXJhbXNFeGVjdXRpb25QYXJhbXMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFuc2Zlck9wZXJhdGlvbkV4ZWN1dGlvblBhcmFtc0V4ZWN1dGlvblBhcmFtcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_transfer_operation_failure.py b/test/test_transfer_operation_failure.py index 3333d970..827064bb 100644 --- a/test/test_transfer_operation_failure.py +++ b/test/test_transfer_operation_failure.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transfer_operation_failure import TransferOperationFailure - - -class TestTransferOperationFailure(unittest.TestCase): - """TransferOperationFailure unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransferOperationFailure: - """Test TransferOperationFailure - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransferOperationFailure` - """ - model = TransferOperationFailure() - if include_optional: - return TransferOperationFailure( - reason = 'INVALID_AMOUNT', - data = fireblocks.models.transfer_operation_failure_data.TransferOperationFailure_data( - tx_id = '', - tx_status = '', - tx_sub_status = '', ) - ) - else: - return TransferOperationFailure( - reason = 'INVALID_AMOUNT', - ) - """ - - def testTransferOperationFailure(self): - """Test TransferOperationFailure""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9mYWlsdXJlIGltcG9ydCBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmUKCgpjbGFzcyBUZXN0VHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYW5zZmVyT3BlcmF0aW9uRmFpbHVyZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlOgogICAgICAgICIiIlRlc3QgVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYW5zZmVyT3BlcmF0aW9uRmFpbHVyZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYW5zZmVyT3BlcmF0aW9uRmFpbHVyZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRyYW5zZmVyT3BlcmF0aW9uRmFpbHVyZSgKICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdJTlZBTElEX0FNT1VOVCcsCiAgICAgICAgICAgICAgICBkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX2ZhaWx1cmVfZGF0YS5UcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmVfZGF0YSgKICAgICAgICAgICAgICAgICAgICB0eF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICB0eF9zdGF0dXMgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgdHhfc3ViX3N0YXR1cyA9ICcnLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlKAogICAgICAgICAgICAgICAgcmVhc29uID0gJ0lOVkFMSURfQU1PVU5UJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmUiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_transfer_operation_failure_data.py b/test/test_transfer_operation_failure_data.py index 6a437f23..5e8723d0 100644 --- a/test/test_transfer_operation_failure_data.py +++ b/test/test_transfer_operation_failure_data.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transfer_operation_failure_data import ( - TransferOperationFailureData, -) - - -class TestTransferOperationFailureData(unittest.TestCase): - """TransferOperationFailureData unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransferOperationFailureData: - """Test TransferOperationFailureData - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransferOperationFailureData` - """ - model = TransferOperationFailureData() - if include_optional: - return TransferOperationFailureData( - tx_id = '', - tx_status = '', - tx_sub_status = '' - ) - else: - return TransferOperationFailureData( - tx_id = '', - tx_status = '', - ) - """ - - def testTransferOperationFailureData(self): - """Test TransferOperationFailureData""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9mYWlsdXJlX2RhdGEgaW1wb3J0ICgKICAgIFRyYW5zZmVyT3BlcmF0aW9uRmFpbHVyZURhdGEsCikKCgpjbGFzcyBUZXN0VHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlRGF0YSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmVEYXRhIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmVEYXRhOgogICAgICAgICIiIlRlc3QgVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlRGF0YQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmVEYXRhYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVHJhbnNmZXJPcGVyYXRpb25GYWlsdXJlRGF0YSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRyYW5zZmVyT3BlcmF0aW9uRmFpbHVyZURhdGEoCiAgICAgICAgICAgICAgICB0eF9pZCA9ICcnLAogICAgICAgICAgICAgICAgdHhfc3RhdHVzID0gJycsCiAgICAgICAgICAgICAgICB0eF9zdWJfc3RhdHVzID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmVEYXRhKAogICAgICAgICAgICAgICAgdHhfaWQgPSAnJywKICAgICAgICAgICAgICAgIHR4X3N0YXR1cyA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRyYW5zZmVyT3BlcmF0aW9uRmFpbHVyZURhdGEoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmVEYXRhIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_transfer_operation_preview.py b/test/test_transfer_operation_preview.py index dd8cdba4..7c472c2f 100644 --- a/test/test_transfer_operation_preview.py +++ b/test/test_transfer_operation_preview.py @@ -1,82 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transfer_operation_preview import TransferOperationPreview - - -class TestTransferOperationPreview(unittest.TestCase): - """TransferOperationPreview unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransferOperationPreview: - """Test TransferOperationPreview - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransferOperationPreview` - """ - model = TransferOperationPreview() - if include_optional: - return TransferOperationPreview( - input = fireblocks.models.transfer_operation_config_params.TransferOperationConfigParams( - amount = '', - asset_id = '', - source = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - destination = null, ), - output = fireblocks.models.transfer_operation_preview_output.TransferOperationPreviewOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - is_sign_required = True, - time_seconds = 1.337, ), - failure = fireblocks.models.transfer_operation_failure.TransferOperationFailure( - reason = 'INVALID_AMOUNT', - data = fireblocks.models.transfer_operation_failure_data.TransferOperationFailure_data( - tx_id = '', - tx_status = '', - tx_sub_status = '', ), ) - ) - else: - return TransferOperationPreview( - input = fireblocks.models.transfer_operation_config_params.TransferOperationConfigParams( - amount = '', - asset_id = '', - source = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - destination = null, ), - ) - """ - - def testTransferOperationPreview(self): - """Test TransferOperationPreview""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9wcmV2aWV3IGltcG9ydCBUcmFuc2Zlck9wZXJhdGlvblByZXZpZXcKCgpjbGFzcyBUZXN0VHJhbnNmZXJPcGVyYXRpb25QcmV2aWV3KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYW5zZmVyT3BlcmF0aW9uUHJldmlldyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhbnNmZXJPcGVyYXRpb25QcmV2aWV3OgogICAgICAgICIiIlRlc3QgVHJhbnNmZXJPcGVyYXRpb25QcmV2aWV3CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYW5zZmVyT3BlcmF0aW9uUHJldmlld2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYW5zZmVyT3BlcmF0aW9uUHJldmlldygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRyYW5zZmVyT3BlcmF0aW9uUHJldmlldygKICAgICAgICAgICAgICAgIGlucHV0ID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX2NvbmZpZ19wYXJhbXMuVHJhbnNmZXJPcGVyYXRpb25Db25maWdQYXJhbXMoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9IGZpcmVibG9ja3MubW9kZWxzLmFjY291bnQuQWNjb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF90eXBlID0gJ0VYQ0hBTkdFX0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IG51bGwsICksCiAgICAgICAgICAgICAgICBvdXRwdXQgPSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fcHJldmlld19vdXRwdXQuVHJhbnNmZXJPcGVyYXRpb25QcmV2aWV3T3V0cHV0KAogICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2Ftb3VudC5Bc3NldEFtb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLCApLCAKICAgICAgICAgICAgICAgICAgICBmZWUgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgKSwgCiAgICAgICAgICAgICAgICAgICAgaXNfc2lnbl9yZXF1aXJlZCA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgIHRpbWVfc2Vjb25kcyA9IDEuMzM3LCApLAogICAgICAgICAgICAgICAgZmFpbHVyZSA9IGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9mYWlsdXJlLlRyYW5zZmVyT3BlcmF0aW9uRmFpbHVyZSgKICAgICAgICAgICAgICAgICAgICByZWFzb24gPSAnSU5WQUxJRF9BTU9VTlQnLCAKICAgICAgICAgICAgICAgICAgICBkYXRhID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhbnNmZXJfb3BlcmF0aW9uX2ZhaWx1cmVfZGF0YS5UcmFuc2Zlck9wZXJhdGlvbkZhaWx1cmVfZGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgdHhfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR4X3N0YXR1cyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHhfc3ViX3N0YXR1cyA9ICcnLCApLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhbnNmZXJPcGVyYXRpb25QcmV2aWV3KAogICAgICAgICAgICAgICAgaW5wdXQgPSBmaXJlYmxvY2tzLm1vZGVscy50cmFuc2Zlcl9vcGVyYXRpb25fY29uZmlnX3BhcmFtcy5UcmFuc2Zlck9wZXJhdGlvbkNvbmZpZ1BhcmFtcygKICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgc291cmNlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYWNjb3VudC5BY2NvdW50KAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X3R5cGUgPSAnRVhDSEFOR0VfQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gbnVsbCwgKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmFuc2Zlck9wZXJhdGlvblByZXZpZXcoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFuc2Zlck9wZXJhdGlvblByZXZpZXciIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_transfer_operation_preview_output.py b/test/test_transfer_operation_preview_output.py index d6c55a21..b2ff3bbc 100644 --- a/test/test_transfer_operation_preview_output.py +++ b/test/test_transfer_operation_preview_output.py @@ -1,71 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transfer_operation_preview_output import ( - TransferOperationPreviewOutput, -) - - -class TestTransferOperationPreviewOutput(unittest.TestCase): - """TransferOperationPreviewOutput unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransferOperationPreviewOutput: - """Test TransferOperationPreviewOutput - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransferOperationPreviewOutput` - """ - model = TransferOperationPreviewOutput() - if include_optional: - return TransferOperationPreviewOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - is_sign_required = True, - time_seconds = 1.337 - ) - else: - return TransferOperationPreviewOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - is_sign_required = True, - time_seconds = 1.337, - ) - """ - - def testTransferOperationPreviewOutput(self): - """Test TransferOperationPreviewOutput""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl9wcmV2aWV3X291dHB1dCBpbXBvcnQgKAogICAgVHJhbnNmZXJPcGVyYXRpb25QcmV2aWV3T3V0cHV0LAopCgoKY2xhc3MgVGVzdFRyYW5zZmVyT3BlcmF0aW9uUHJldmlld091dHB1dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmFuc2Zlck9wZXJhdGlvblByZXZpZXdPdXRwdXQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRyYW5zZmVyT3BlcmF0aW9uUHJldmlld091dHB1dDoKICAgICAgICAiIiJUZXN0IFRyYW5zZmVyT3BlcmF0aW9uUHJldmlld091dHB1dAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmFuc2Zlck9wZXJhdGlvblByZXZpZXdPdXRwdXRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUcmFuc2Zlck9wZXJhdGlvblByZXZpZXdPdXRwdXQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmFuc2Zlck9wZXJhdGlvblByZXZpZXdPdXRwdXQoCiAgICAgICAgICAgICAgICBhbW91bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksCiAgICAgICAgICAgICAgICBmZWUgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsICksCiAgICAgICAgICAgICAgICBpc19zaWduX3JlcXVpcmVkID0gVHJ1ZSwKICAgICAgICAgICAgICAgIHRpbWVfc2Vjb25kcyA9IDEuMzM3CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhbnNmZXJPcGVyYXRpb25QcmV2aWV3T3V0cHV0KAogICAgICAgICAgICAgICAgYW1vdW50ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfYW1vdW50LkFzc2V0QW1vdW50KAogICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLCApLAogICAgICAgICAgICAgICAgZmVlID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfYW1vdW50LkFzc2V0QW1vdW50KAogICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLCApLAogICAgICAgICAgICAgICAgaXNfc2lnbl9yZXF1aXJlZCA9IFRydWUsCiAgICAgICAgICAgICAgICB0aW1lX3NlY29uZHMgPSAxLjMzNywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmFuc2Zlck9wZXJhdGlvblByZXZpZXdPdXRwdXQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFuc2Zlck9wZXJhdGlvblByZXZpZXdPdXRwdXQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_transfer_operation_type.py b/test/test_transfer_operation_type.py index 500dd8f0..da3ef15e 100644 --- a/test/test_transfer_operation_type.py +++ b/test/test_transfer_operation_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transfer_operation_type import TransferOperationType - - -class TestTransferOperationType(unittest.TestCase): - """TransferOperationType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTransferOperationType(self): - """Test TransferOperationType""" - # inst = TransferOperationType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX29wZXJhdGlvbl90eXBlIGltcG9ydCBUcmFuc2Zlck9wZXJhdGlvblR5cGUKCgpjbGFzcyBUZXN0VHJhbnNmZXJPcGVyYXRpb25UeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYW5zZmVyT3BlcmF0aW9uVHlwZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RUcmFuc2Zlck9wZXJhdGlvblR5cGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFuc2Zlck9wZXJhdGlvblR5cGUiIiIKICAgICAgICAjIGluc3QgPSBUcmFuc2Zlck9wZXJhdGlvblR5cGUoKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_transfer_peer_path_sub_type.py b/test/test_transfer_peer_path_sub_type.py index addf5051..94ac2a0f 100644 --- a/test/test_transfer_peer_path_sub_type.py +++ b/test/test_transfer_peer_path_sub_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transfer_peer_path_sub_type import TransferPeerPathSubType - - -class TestTransferPeerPathSubType(unittest.TestCase): - """TransferPeerPathSubType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTransferPeerPathSubType(self): - """Test TransferPeerPathSubType""" - # inst = TransferPeerPathSubType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3BlZXJfcGF0aF9zdWJfdHlwZSBpbXBvcnQgVHJhbnNmZXJQZWVyUGF0aFN1YlR5cGUKCgpjbGFzcyBUZXN0VHJhbnNmZXJQZWVyUGF0aFN1YlR5cGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhbnNmZXJQZWVyUGF0aFN1YlR5cGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0VHJhbnNmZXJQZWVyUGF0aFN1YlR5cGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFuc2ZlclBlZXJQYXRoU3ViVHlwZSIiIgogICAgICAgICMgaW5zdCA9IFRyYW5zZmVyUGVlclBhdGhTdWJUeXBlKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_transfer_peer_path_type.py b/test/test_transfer_peer_path_type.py index c751f5a0..b1393324 100644 --- a/test/test_transfer_peer_path_type.py +++ b/test/test_transfer_peer_path_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transfer_peer_path_type import TransferPeerPathType - - -class TestTransferPeerPathType(unittest.TestCase): - """TransferPeerPathType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTransferPeerPathType(self): - """Test TransferPeerPathType""" - # inst = TransferPeerPathType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3BlZXJfcGF0aF90eXBlIGltcG9ydCBUcmFuc2ZlclBlZXJQYXRoVHlwZQoKCmNsYXNzIFRlc3RUcmFuc2ZlclBlZXJQYXRoVHlwZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmFuc2ZlclBlZXJQYXRoVHlwZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RUcmFuc2ZlclBlZXJQYXRoVHlwZShzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYW5zZmVyUGVlclBhdGhUeXBlIiIiCiAgICAgICAgIyBpbnN0ID0gVHJhbnNmZXJQZWVyUGF0aFR5cGUoKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_transfer_peer_sub_type_enum.py b/test/test_transfer_peer_sub_type_enum.py index ac914faf..124f6e59 100644 --- a/test/test_transfer_peer_sub_type_enum.py +++ b/test/test_transfer_peer_sub_type_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transfer_peer_sub_type_enum import TransferPeerSubTypeEnum - - -class TestTransferPeerSubTypeEnum(unittest.TestCase): - """TransferPeerSubTypeEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTransferPeerSubTypeEnum(self): - """Test TransferPeerSubTypeEnum""" - # inst = TransferPeerSubTypeEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3BlZXJfc3ViX3R5cGVfZW51bSBpbXBvcnQgVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0KCgpjbGFzcyBUZXN0VHJhbnNmZXJQZWVyU3ViVHlwZUVudW0odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhbnNmZXJQZWVyU3ViVHlwZUVudW0gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0VHJhbnNmZXJQZWVyU3ViVHlwZUVudW0oc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFuc2ZlclBlZXJTdWJUeXBlRW51bSIiIgogICAgICAgICMgaW5zdCA9IFRyYW5zZmVyUGVlclN1YlR5cGVFbnVtKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_transfer_peer_type_enum.py b/test/test_transfer_peer_type_enum.py index f33f432e..4370b80e 100644 --- a/test/test_transfer_peer_type_enum.py +++ b/test/test_transfer_peer_type_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transfer_peer_type_enum import TransferPeerTypeEnum - - -class TestTransferPeerTypeEnum(unittest.TestCase): - """TransferPeerTypeEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTransferPeerTypeEnum(self): - """Test TransferPeerTypeEnum""" - # inst = TransferPeerTypeEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3BlZXJfdHlwZV9lbnVtIGltcG9ydCBUcmFuc2ZlclBlZXJUeXBlRW51bQoKCmNsYXNzIFRlc3RUcmFuc2ZlclBlZXJUeXBlRW51bSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmFuc2ZlclBlZXJUeXBlRW51bSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RUcmFuc2ZlclBlZXJUeXBlRW51bShzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYW5zZmVyUGVlclR5cGVFbnVtIiIiCiAgICAgICAgIyBpbnN0ID0gVHJhbnNmZXJQZWVyVHlwZUVudW0oKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_transfer_rail.py b/test/test_transfer_rail.py index de14639d..d6b4fdaa 100644 --- a/test/test_transfer_rail.py +++ b/test/test_transfer_rail.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transfer_rail import TransferRail - - -class TestTransferRail(unittest.TestCase): - """TransferRail unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTransferRail(self): - """Test TransferRail""" - # inst = TransferRail() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3JhaWwgaW1wb3J0IFRyYW5zZmVyUmFpbAoKCmNsYXNzIFRlc3RUcmFuc2ZlclJhaWwodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhbnNmZXJSYWlsIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdFRyYW5zZmVyUmFpbChzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYW5zZmVyUmFpbCIiIgogICAgICAgICMgaW5zdCA9IFRyYW5zZmVyUmFpbCgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_transfer_receipt.py b/test/test_transfer_receipt.py index 71978ec4..f8da2435 100644 --- a/test/test_transfer_receipt.py +++ b/test/test_transfer_receipt.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transfer_receipt import TransferReceipt - - -class TestTransferReceipt(unittest.TestCase): - """TransferReceipt unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransferReceipt: - """Test TransferReceipt - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransferReceipt` - """ - model = TransferReceipt() - if include_optional: - return TransferReceipt( - type = 'BLOCKCHAIN', - tx_hash = '', - amount = '', - reference_id = '' - ) - else: - return TransferReceipt( - amount = '', - ) - """ - - def testTransferReceipt(self): - """Test TransferReceipt""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3JlY2VpcHQgaW1wb3J0IFRyYW5zZmVyUmVjZWlwdAoKCmNsYXNzIFRlc3RUcmFuc2ZlclJlY2VpcHQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhbnNmZXJSZWNlaXB0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUcmFuc2ZlclJlY2VpcHQ6CiAgICAgICAgIiIiVGVzdCBUcmFuc2ZlclJlY2VpcHQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhbnNmZXJSZWNlaXB0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVHJhbnNmZXJSZWNlaXB0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhbnNmZXJSZWNlaXB0KAogICAgICAgICAgICAgICAgdHlwZSA9ICdCTE9DS0NIQUlOJywKICAgICAgICAgICAgICAgIHR4X2hhc2ggPSAnJywKICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLAogICAgICAgICAgICAgICAgcmVmZXJlbmNlX2lkID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmFuc2ZlclJlY2VpcHQoCiAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmFuc2ZlclJlY2VpcHQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmFuc2ZlclJlY2VpcHQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_transfer_validation_failure.py b/test/test_transfer_validation_failure.py index 180a5cd5..6b2098e1 100644 --- a/test/test_transfer_validation_failure.py +++ b/test/test_transfer_validation_failure.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.transfer_validation_failure import TransferValidationFailure - - -class TestTransferValidationFailure(unittest.TestCase): - """TransferValidationFailure unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TransferValidationFailure: - """Test TransferValidationFailure - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TransferValidationFailure` - """ - model = TransferValidationFailure() - if include_optional: - return TransferValidationFailure( - reason = 'ACCOUNT_NOT_FOUND', - data = { } - ) - else: - return TransferValidationFailure( - reason = 'ACCOUNT_NOT_FOUND', - ) - """ - - def testTransferValidationFailure(self): - """Test TransferValidationFailure""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYW5zZmVyX3ZhbGlkYXRpb25fZmFpbHVyZSBpbXBvcnQgVHJhbnNmZXJWYWxpZGF0aW9uRmFpbHVyZQoKCmNsYXNzIFRlc3RUcmFuc2ZlclZhbGlkYXRpb25GYWlsdXJlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYW5zZmVyVmFsaWRhdGlvbkZhaWx1cmUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRyYW5zZmVyVmFsaWRhdGlvbkZhaWx1cmU6CiAgICAgICAgIiIiVGVzdCBUcmFuc2ZlclZhbGlkYXRpb25GYWlsdXJlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYW5zZmVyVmFsaWRhdGlvbkZhaWx1cmVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUcmFuc2ZlclZhbGlkYXRpb25GYWlsdXJlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhbnNmZXJWYWxpZGF0aW9uRmFpbHVyZSgKICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdBQ0NPVU5UX05PVF9GT1VORCcsCiAgICAgICAgICAgICAgICBkYXRhID0geyB9CiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhbnNmZXJWYWxpZGF0aW9uRmFpbHVyZSgKICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdBQ0NPVU5UX05PVF9GT1VORCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhbnNmZXJWYWxpZGF0aW9uRmFpbHVyZShzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYW5zZmVyVmFsaWRhdGlvbkZhaWx1cmUiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_travel_rule_action_enum.py b/test/test_travel_rule_action_enum.py index bfa629f9..a898cf44 100644 --- a/test/test_travel_rule_action_enum.py +++ b/test/test_travel_rule_action_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_action_enum import TravelRuleActionEnum - - -class TestTravelRuleActionEnum(unittest.TestCase): - """TravelRuleActionEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTravelRuleActionEnum(self): - """Test TravelRuleActionEnum""" - # inst = TravelRuleActionEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2FjdGlvbl9lbnVtIGltcG9ydCBUcmF2ZWxSdWxlQWN0aW9uRW51bQoKCmNsYXNzIFRlc3RUcmF2ZWxSdWxlQWN0aW9uRW51bSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmF2ZWxSdWxlQWN0aW9uRW51bSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RUcmF2ZWxSdWxlQWN0aW9uRW51bShzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVBY3Rpb25FbnVtIiIiCiAgICAgICAgIyBpbnN0ID0gVHJhdmVsUnVsZUFjdGlvbkVudW0oKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_travel_rule_address.py b/test/test_travel_rule_address.py index 5f61b23a..b91185a0 100644 --- a/test/test_travel_rule_address.py +++ b/test/test_travel_rule_address.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_address import TravelRuleAddress - - -class TestTravelRuleAddress(unittest.TestCase): - """TravelRuleAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleAddress: - """Test TravelRuleAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleAddress` - """ - model = TravelRuleAddress() - if include_optional: - return TravelRuleAddress( - street = '1234 Example St', - city = 'New York', - state = 'NY', - postal_code = '10001' - ) - else: - return TravelRuleAddress( - ) - """ - - def testTravelRuleAddress(self): - """Test TravelRuleAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2FkZHJlc3MgaW1wb3J0IFRyYXZlbFJ1bGVBZGRyZXNzCgoKY2xhc3MgVGVzdFRyYXZlbFJ1bGVBZGRyZXNzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYXZlbFJ1bGVBZGRyZXNzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUcmF2ZWxSdWxlQWRkcmVzczoKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVBZGRyZXNzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYXZlbFJ1bGVBZGRyZXNzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVHJhdmVsUnVsZUFkZHJlc3MoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlQWRkcmVzcygKICAgICAgICAgICAgICAgIHN0cmVldCA9ICcxMjM0IEV4YW1wbGUgU3QnLAogICAgICAgICAgICAgICAgY2l0eSA9ICdOZXcgWW9yaycsCiAgICAgICAgICAgICAgICBzdGF0ZSA9ICdOWScsCiAgICAgICAgICAgICAgICBwb3N0YWxfY29kZSA9ICcxMDAwMScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlQWRkcmVzcygKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmF2ZWxSdWxlQWRkcmVzcyhzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVBZGRyZXNzIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_travel_rule_api.py b/test/test_travel_rule_api.py index 3ff7d154..2cabdf96 100644 --- a/test/test_travel_rule_api.py +++ b/test/test_travel_rule_api.py @@ -1,88 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.travel_rule_api import TravelRuleApi - - -class TestTravelRuleApi(unittest.TestCase): - """TravelRuleApi unit test stubs""" - - def setUp(self) -> None: - self.api = TravelRuleApi() - - def tearDown(self) -> None: - pass - - def test_create_trust_proof_of_address(self) -> None: - """Test case for create_trust_proof_of_address - - Create Trust Network Proof of Address - """ - pass - - def test_get_trust_proof_of_address(self) -> None: - """Test case for get_trust_proof_of_address - - Retrieve Trust Network Proof of Address Signature - """ - pass - - def test_get_vasp_for_vault(self) -> None: - """Test case for get_vasp_for_vault - - Get assigned VASP to vault - """ - pass - - def test_get_vaspby_did(self) -> None: - """Test case for get_vaspby_did - - Get VASP details - """ - pass - - def test_get_vasps(self) -> None: - """Test case for get_vasps - - Get All VASPs - """ - pass - - def test_set_vasp_for_vault(self) -> None: - """Test case for set_vasp_for_vault - - Assign VASP to vault - """ - pass - - def test_update_vasp(self) -> None: - """Test case for update_vasp - - Add jsonDidKey to VASP details - """ - pass - - def test_validate_full_travel_rule_transaction(self) -> None: - """Test case for validate_full_travel_rule_transaction - - Validate Full Travel Rule Transaction - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLnRyYXZlbF9ydWxlX2FwaSBpbXBvcnQgVHJhdmVsUnVsZUFwaQoKCmNsYXNzIFRlc3RUcmF2ZWxSdWxlQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYXZlbFJ1bGVBcGkgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgc2VsZi5hcGkgPSBUcmF2ZWxSdWxlQXBpKCkKCiAgICBkZWYgdGVhckRvd24oc2VsZikgLT4gTm9uZToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY3JlYXRlX3RydXN0X3Byb29mX29mX2FkZHJlc3Moc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGNyZWF0ZV90cnVzdF9wcm9vZl9vZl9hZGRyZXNzCgogICAgICAgIENyZWF0ZSBUcnVzdCBOZXR3b3JrIFByb29mIG9mIEFkZHJlc3MKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3RydXN0X3Byb29mX29mX2FkZHJlc3Moc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF90cnVzdF9wcm9vZl9vZl9hZGRyZXNzCgogICAgICAgIFJldHJpZXZlIFRydXN0IE5ldHdvcmsgUHJvb2Ygb2YgQWRkcmVzcyBTaWduYXR1cmUKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3Zhc3BfZm9yX3ZhdWx0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfdmFzcF9mb3JfdmF1bHQKCiAgICAgICAgR2V0IGFzc2lnbmVkIFZBU1AgdG8gdmF1bHQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3Zhc3BieV9kaWQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF92YXNwYnlfZGlkCgogICAgICAgIEdldCBWQVNQIGRldGFpbHMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3Zhc3BzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfdmFzcHMKCiAgICAgICAgR2V0IEFsbCBWQVNQcwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9zZXRfdmFzcF9mb3JfdmF1bHQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHNldF92YXNwX2Zvcl92YXVsdAoKICAgICAgICBBc3NpZ24gVkFTUCB0byB2YXVsdAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF91cGRhdGVfdmFzcChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgdXBkYXRlX3Zhc3AKCiAgICAgICAgQWRkIGpzb25EaWRLZXkgdG8gVkFTUCBkZXRhaWxzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3ZhbGlkYXRlX2Z1bGxfdHJhdmVsX3J1bGVfdHJhbnNhY3Rpb24oc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHZhbGlkYXRlX2Z1bGxfdHJhdmVsX3J1bGVfdHJhbnNhY3Rpb24KCiAgICAgICAgVmFsaWRhdGUgRnVsbCBUcmF2ZWwgUnVsZSBUcmFuc2FjdGlvbgogICAgICAgICIiIgogICAgICAgIHBhc3MKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_travel_rule_create_transaction_request.py b/test/test_travel_rule_create_transaction_request.py index 6cd493de..219eacd8 100644 --- a/test/test_travel_rule_create_transaction_request.py +++ b/test/test_travel_rule_create_transaction_request.py @@ -1,343 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_create_transaction_request import ( - TravelRuleCreateTransactionRequest, -) - - -class TestTravelRuleCreateTransactionRequest(unittest.TestCase): - """TravelRuleCreateTransactionRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleCreateTransactionRequest: - """Test TravelRuleCreateTransactionRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleCreateTransactionRequest` - """ - model = TravelRuleCreateTransactionRequest() - if include_optional: - return TravelRuleCreateTransactionRequest( - originator_vas_pdid = 'did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2', - beneficiary_vas_pdid = 'did:ethr:0x17fe2dd11a2daa7f6c1fdf22532a4763f963aea6', - originator_vas_pname = 'Originator VASP Ltd.', - beneficiary_vas_pname = 'Beneficiary VASP Inc.', - beneficiary_vas_pwebsite = 'https://www.beneficiaryvasp.com', - transaction_blockchain_info = fireblocks.models.travel_rule_transaction_blockchain_info.TravelRuleTransactionBlockchainInfo( - tx_hash = '6.685730843558756E+76', - origin = '8.41132469470587E+47', - destination = '8.41132469470587E+47', ), - originator = fireblocks.models.travel_rule_pii_ivms.TravelRulePiiIVMS( - originator_persons = [ - fireblocks.models.travel_rule_person.TravelRulePerson( - natural_person = fireblocks.models.travel_rule_natural_person.TravelRuleNaturalPerson( - name = [ - fireblocks.models.travel_rule_natural_person_name_identifier.TravelRuleNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - phonetic_name_identifier = [ - - ], ) - ], - geographic_address = [ - fireblocks.models.travel_rule_geographic_address.TravelRuleGeographicAddress( - street_name = 'QmZGXXsKPk5iPS97LLjXB5e8Qs555ocdzcpbPMXvt84Ji9', - town_name = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - country = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - building_number = 'QmUFpNkxdsVtebDSUz5eP51kzoysXmqj2gBgeH11PD7SVP', - post_code = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - address_type = 'Qmdr9LcChZsoivS6uAhe7Qk7cGLDAx73wBZTVvq4WoU71H', - department = 'QmN7fb65x5MyA7RKyhbXaUKvJ7U4Y9eqpEZTmJYpNyEG8', - sub_department = 'QmTkfyGh54tXNqFxyEGK9NyTJZYpQ6RZ9zpNykxykME8s', - building_name = 'QmXJfGk85t6RKyhbXaEK9Nz4MEeMKypq6EY9zpJyC9nM9', - floor = 'QmZP5G7fhZpMyQxXnT9KyR6ybXaEM9zpJy4ME9MkTJGE1', - post_box = 'QmTkfYRGK54xFqXyJYNZyE9kY9zpMKytJnXy5z9EME9sJ', - room = 'QmRYXnT9KyhbXaEMZpMyxMkZ9zpYNYTJ4ME5kCGE7fhMJ', - town_location_name = 'QmNpZTyXJXnT9K6EYZpQxYNYMkC5p4kGEfhnkMJzpYT9Jm', - district_name = 'QmT9p6ERKyNYXnTyhbpMYJ4zpYT9kMJZT9QmEMGZ5kMhCy', - country_sub_division = 'QmK9yTbXaZpMYJYTYp6NT9QmEMGZT9p9kMJfhyGE4Z7k5C', - address_line = ["QmNp9kMjfhGZ5kMJzpNYXZTy6NQmZYEMGZ4kZT9Y6pNYT"], ) - ], - national_identification = fireblocks.models.travel_rule_national_identification.TravelRuleNationalIdentification( - country_of_issue = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - national_identifier = 'QmdR6qLnZ7Kwf5cBaXG8QFQenEvRg9JNZeoPranVuGd63z', - national_identifier_type = 'QmUKTg3aFJFhMz1o9gPqA3MgTRwd2LvDLwWTPHYUoMEYVi', - registration_authority = 'QmV9KJMyT9RJzpYfhME5xNCZ4G67fEkzTpRMyJzp9kTNYk', ), - date_and_place_of_birth = fireblocks.models.travel_rule_date_and_place_of_birth.TravelRuleDateAndPlaceOfBirth( - date_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - place_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', ), - customer_identification = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - country_of_residence = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - customer_number = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', ), - legal_person = fireblocks.models.travel_rule_legal_person.TravelRuleLegalPerson( - customer_identification = 'QmRY9AA4Uit2JRTxDzfzshrJdTK86Kf5HriA3dXDnihDmy', - customer_number = 'QmXvyML3AJUFpBbJqL5NVp7Vn7xNkuedTsSMk93duLCNW8', - country_of_registration = 'QmeoTk6UPruEAYNbJEAHdQYc53ap9BXmpnPMcuvs8wutdr', ), ) - ], - beneficiary_persons = [ - fireblocks.models.travel_rule_person.TravelRulePerson() - ], - account_number = [ - 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt' - ], ), - beneficiary = fireblocks.models.travel_rule_pii_ivms.TravelRulePiiIVMS( - originator_persons = [ - fireblocks.models.travel_rule_person.TravelRulePerson( - natural_person = fireblocks.models.travel_rule_natural_person.TravelRuleNaturalPerson( - name = [ - fireblocks.models.travel_rule_natural_person_name_identifier.TravelRuleNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - phonetic_name_identifier = [ - - ], ) - ], - geographic_address = [ - fireblocks.models.travel_rule_geographic_address.TravelRuleGeographicAddress( - street_name = 'QmZGXXsKPk5iPS97LLjXB5e8Qs555ocdzcpbPMXvt84Ji9', - town_name = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - country = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - building_number = 'QmUFpNkxdsVtebDSUz5eP51kzoysXmqj2gBgeH11PD7SVP', - post_code = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - address_type = 'Qmdr9LcChZsoivS6uAhe7Qk7cGLDAx73wBZTVvq4WoU71H', - department = 'QmN7fb65x5MyA7RKyhbXaUKvJ7U4Y9eqpEZTmJYpNyEG8', - sub_department = 'QmTkfyGh54tXNqFxyEGK9NyTJZYpQ6RZ9zpNykxykME8s', - building_name = 'QmXJfGk85t6RKyhbXaEK9Nz4MEeMKypq6EY9zpJyC9nM9', - floor = 'QmZP5G7fhZpMyQxXnT9KyR6ybXaEM9zpJy4ME9MkTJGE1', - post_box = 'QmTkfYRGK54xFqXyJYNZyE9kY9zpMKytJnXy5z9EME9sJ', - room = 'QmRYXnT9KyhbXaEMZpMyxMkZ9zpYNYTJ4ME5kCGE7fhMJ', - town_location_name = 'QmNpZTyXJXnT9K6EYZpQxYNYMkC5p4kGEfhnkMJzpYT9Jm', - district_name = 'QmT9p6ERKyNYXnTyhbpMYJ4zpYT9kMJZT9QmEMGZ5kMhCy', - country_sub_division = 'QmK9yTbXaZpMYJYTYp6NT9QmEMGZT9p9kMJfhyGE4Z7k5C', - address_line = ["QmNp9kMjfhGZ5kMJzpNYXZTy6NQmZYEMGZ4kZT9Y6pNYT"], ) - ], - national_identification = fireblocks.models.travel_rule_national_identification.TravelRuleNationalIdentification( - country_of_issue = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - national_identifier = 'QmdR6qLnZ7Kwf5cBaXG8QFQenEvRg9JNZeoPranVuGd63z', - national_identifier_type = 'QmUKTg3aFJFhMz1o9gPqA3MgTRwd2LvDLwWTPHYUoMEYVi', - registration_authority = 'QmV9KJMyT9RJzpYfhME5xNCZ4G67fEkzTpRMyJzp9kTNYk', ), - date_and_place_of_birth = fireblocks.models.travel_rule_date_and_place_of_birth.TravelRuleDateAndPlaceOfBirth( - date_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - place_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', ), - customer_identification = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - country_of_residence = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - customer_number = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', ), - legal_person = fireblocks.models.travel_rule_legal_person.TravelRuleLegalPerson( - customer_identification = 'QmRY9AA4Uit2JRTxDzfzshrJdTK86Kf5HriA3dXDnihDmy', - customer_number = 'QmXvyML3AJUFpBbJqL5NVp7Vn7xNkuedTsSMk93duLCNW8', - country_of_registration = 'QmeoTk6UPruEAYNbJEAHdQYc53ap9BXmpnPMcuvs8wutdr', ), ) - ], - beneficiary_persons = [ - fireblocks.models.travel_rule_person.TravelRulePerson() - ], - account_number = [ - 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt' - ], ), - encrypted = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...', - protocol = 'IVMS101', - target_protocol = 'GTR', - skip_beneficiary_data_validation = False, - travel_rule_behavior = True, - originator_ref = 'ORG123456', - beneficiary_ref = 'BEN654321', - travel_rule_behavior_ref = 'TRB987654', - originator_proof = fireblocks.models.travel_rule_ownership_proof.TravelRuleOwnershipProof( - type = 'eip-191', - proof = '0x3dd4a17a...ce4a2bcd1b', - attestation = 'I certify that ETH account 0x896B...0b9b belongs to me.', - address = '0x896B...0b9b', - wallet_provider = 'Metamask', - url = 'https://example.com/uploaded_image.png', - confirmed = True, ), - beneficiary_proof = fireblocks.models.travel_rule_ownership_proof.TravelRuleOwnershipProof( - type = 'eip-191', - proof = '0x3dd4a17a...ce4a2bcd1b', - attestation = 'I certify that ETH account 0x896B...0b9b belongs to me.', - address = '0x896B...0b9b', - wallet_provider = 'Metamask', - url = 'https://example.com/uploaded_image.png', - confirmed = True, ), - beneficiary_did = 'did:key:z6Mkf67890Zghijkl67890', - originator_did = 'did:key:z6Mkf12345Zabcdef12345', - is_non_custodial = True - ) - else: - return TravelRuleCreateTransactionRequest( - originator = fireblocks.models.travel_rule_pii_ivms.TravelRulePiiIVMS( - originator_persons = [ - fireblocks.models.travel_rule_person.TravelRulePerson( - natural_person = fireblocks.models.travel_rule_natural_person.TravelRuleNaturalPerson( - name = [ - fireblocks.models.travel_rule_natural_person_name_identifier.TravelRuleNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - phonetic_name_identifier = [ - - ], ) - ], - geographic_address = [ - fireblocks.models.travel_rule_geographic_address.TravelRuleGeographicAddress( - street_name = 'QmZGXXsKPk5iPS97LLjXB5e8Qs555ocdzcpbPMXvt84Ji9', - town_name = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - country = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - building_number = 'QmUFpNkxdsVtebDSUz5eP51kzoysXmqj2gBgeH11PD7SVP', - post_code = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - address_type = 'Qmdr9LcChZsoivS6uAhe7Qk7cGLDAx73wBZTVvq4WoU71H', - department = 'QmN7fb65x5MyA7RKyhbXaUKvJ7U4Y9eqpEZTmJYpNyEG8', - sub_department = 'QmTkfyGh54tXNqFxyEGK9NyTJZYpQ6RZ9zpNykxykME8s', - building_name = 'QmXJfGk85t6RKyhbXaEK9Nz4MEeMKypq6EY9zpJyC9nM9', - floor = 'QmZP5G7fhZpMyQxXnT9KyR6ybXaEM9zpJy4ME9MkTJGE1', - post_box = 'QmTkfYRGK54xFqXyJYNZyE9kY9zpMKytJnXy5z9EME9sJ', - room = 'QmRYXnT9KyhbXaEMZpMyxMkZ9zpYNYTJ4ME5kCGE7fhMJ', - town_location_name = 'QmNpZTyXJXnT9K6EYZpQxYNYMkC5p4kGEfhnkMJzpYT9Jm', - district_name = 'QmT9p6ERKyNYXnTyhbpMYJ4zpYT9kMJZT9QmEMGZ5kMhCy', - country_sub_division = 'QmK9yTbXaZpMYJYTYp6NT9QmEMGZT9p9kMJfhyGE4Z7k5C', - address_line = ["QmNp9kMjfhGZ5kMJzpNYXZTy6NQmZYEMGZ4kZT9Y6pNYT"], ) - ], - national_identification = fireblocks.models.travel_rule_national_identification.TravelRuleNationalIdentification( - country_of_issue = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - national_identifier = 'QmdR6qLnZ7Kwf5cBaXG8QFQenEvRg9JNZeoPranVuGd63z', - national_identifier_type = 'QmUKTg3aFJFhMz1o9gPqA3MgTRwd2LvDLwWTPHYUoMEYVi', - registration_authority = 'QmV9KJMyT9RJzpYfhME5xNCZ4G67fEkzTpRMyJzp9kTNYk', ), - date_and_place_of_birth = fireblocks.models.travel_rule_date_and_place_of_birth.TravelRuleDateAndPlaceOfBirth( - date_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - place_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', ), - customer_identification = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - country_of_residence = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - customer_number = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', ), - legal_person = fireblocks.models.travel_rule_legal_person.TravelRuleLegalPerson( - customer_identification = 'QmRY9AA4Uit2JRTxDzfzshrJdTK86Kf5HriA3dXDnihDmy', - customer_number = 'QmXvyML3AJUFpBbJqL5NVp7Vn7xNkuedTsSMk93duLCNW8', - country_of_registration = 'QmeoTk6UPruEAYNbJEAHdQYc53ap9BXmpnPMcuvs8wutdr', ), ) - ], - beneficiary_persons = [ - fireblocks.models.travel_rule_person.TravelRulePerson() - ], - account_number = [ - 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt' - ], ), - beneficiary = fireblocks.models.travel_rule_pii_ivms.TravelRulePiiIVMS( - originator_persons = [ - fireblocks.models.travel_rule_person.TravelRulePerson( - natural_person = fireblocks.models.travel_rule_natural_person.TravelRuleNaturalPerson( - name = [ - fireblocks.models.travel_rule_natural_person_name_identifier.TravelRuleNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - phonetic_name_identifier = [ - - ], ) - ], - geographic_address = [ - fireblocks.models.travel_rule_geographic_address.TravelRuleGeographicAddress( - street_name = 'QmZGXXsKPk5iPS97LLjXB5e8Qs555ocdzcpbPMXvt84Ji9', - town_name = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - country = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - building_number = 'QmUFpNkxdsVtebDSUz5eP51kzoysXmqj2gBgeH11PD7SVP', - post_code = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - address_type = 'Qmdr9LcChZsoivS6uAhe7Qk7cGLDAx73wBZTVvq4WoU71H', - department = 'QmN7fb65x5MyA7RKyhbXaUKvJ7U4Y9eqpEZTmJYpNyEG8', - sub_department = 'QmTkfyGh54tXNqFxyEGK9NyTJZYpQ6RZ9zpNykxykME8s', - building_name = 'QmXJfGk85t6RKyhbXaEK9Nz4MEeMKypq6EY9zpJyC9nM9', - floor = 'QmZP5G7fhZpMyQxXnT9KyR6ybXaEM9zpJy4ME9MkTJGE1', - post_box = 'QmTkfYRGK54xFqXyJYNZyE9kY9zpMKytJnXy5z9EME9sJ', - room = 'QmRYXnT9KyhbXaEMZpMyxMkZ9zpYNYTJ4ME5kCGE7fhMJ', - town_location_name = 'QmNpZTyXJXnT9K6EYZpQxYNYMkC5p4kGEfhnkMJzpYT9Jm', - district_name = 'QmT9p6ERKyNYXnTyhbpMYJ4zpYT9kMJZT9QmEMGZ5kMhCy', - country_sub_division = 'QmK9yTbXaZpMYJYTYp6NT9QmEMGZT9p9kMJfhyGE4Z7k5C', - address_line = ["QmNp9kMjfhGZ5kMJzpNYXZTy6NQmZYEMGZ4kZT9Y6pNYT"], ) - ], - national_identification = fireblocks.models.travel_rule_national_identification.TravelRuleNationalIdentification( - country_of_issue = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - national_identifier = 'QmdR6qLnZ7Kwf5cBaXG8QFQenEvRg9JNZeoPranVuGd63z', - national_identifier_type = 'QmUKTg3aFJFhMz1o9gPqA3MgTRwd2LvDLwWTPHYUoMEYVi', - registration_authority = 'QmV9KJMyT9RJzpYfhME5xNCZ4G67fEkzTpRMyJzp9kTNYk', ), - date_and_place_of_birth = fireblocks.models.travel_rule_date_and_place_of_birth.TravelRuleDateAndPlaceOfBirth( - date_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - place_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', ), - customer_identification = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - country_of_residence = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - customer_number = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', ), - legal_person = fireblocks.models.travel_rule_legal_person.TravelRuleLegalPerson( - customer_identification = 'QmRY9AA4Uit2JRTxDzfzshrJdTK86Kf5HriA3dXDnihDmy', - customer_number = 'QmXvyML3AJUFpBbJqL5NVp7Vn7xNkuedTsSMk93duLCNW8', - country_of_registration = 'QmeoTk6UPruEAYNbJEAHdQYc53ap9BXmpnPMcuvs8wutdr', ), ) - ], - beneficiary_persons = [ - fireblocks.models.travel_rule_person.TravelRulePerson() - ], - account_number = [ - 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt' - ], ), - ) - """ - - def testTravelRuleCreateTransactionRequest(self): - """Test TravelRuleCreateTransactionRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2NyZWF0ZV90cmFuc2FjdGlvbl9yZXF1ZXN0IGltcG9ydCAoCiAgICBUcmF2ZWxSdWxlQ3JlYXRlVHJhbnNhY3Rpb25SZXF1ZXN0LAopCgoKY2xhc3MgVGVzdFRyYXZlbFJ1bGVDcmVhdGVUcmFuc2FjdGlvblJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhdmVsUnVsZUNyZWF0ZVRyYW5zYWN0aW9uUmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhdmVsUnVsZUNyZWF0ZVRyYW5zYWN0aW9uUmVxdWVzdDoKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVDcmVhdGVUcmFuc2FjdGlvblJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhdmVsUnVsZUNyZWF0ZVRyYW5zYWN0aW9uUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYXZlbFJ1bGVDcmVhdGVUcmFuc2FjdGlvblJlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlQ3JlYXRlVHJhbnNhY3Rpb25SZXF1ZXN0KAogICAgICAgICAgICAgICAgb3JpZ2luYXRvcl92YXNfcGRpZCA9ICdkaWQ6ZXRocjoweDQ0OTU3ZTc1ZDZjZTRhNWJmMzdhYWUxMTdkYTg2NDIyYzg0OGY3YzInLAogICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfdmFzX3BkaWQgPSAnZGlkOmV0aHI6MHgxN2ZlMmRkMTFhMmRhYTdmNmMxZmRmMjI1MzJhNDc2M2Y5NjNhZWE2JywKICAgICAgICAgICAgICAgIG9yaWdpbmF0b3JfdmFzX3BuYW1lID0gJ09yaWdpbmF0b3IgVkFTUCBMdGQuJywKICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5X3Zhc19wbmFtZSA9ICdCZW5lZmljaWFyeSBWQVNQIEluYy4nLAogICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfdmFzX3B3ZWJzaXRlID0gJ2h0dHBzOi8vd3d3LmJlbmVmaWNpYXJ5dmFzcC5jb20nLAogICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25fYmxvY2tjaGFpbl9pbmZvID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdHJhbnNhY3Rpb25fYmxvY2tjaGFpbl9pbmZvLlRyYXZlbFJ1bGVUcmFuc2FjdGlvbkJsb2NrY2hhaW5JbmZvKAogICAgICAgICAgICAgICAgICAgIHR4X2hhc2ggPSAnNi42ODU3MzA4NDM1NTg3NTZFKzc2JywgCiAgICAgICAgICAgICAgICAgICAgb3JpZ2luID0gJzguNDExMzI0Njk0NzA1ODdFKzQ3JywgCiAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSAnOC40MTEzMjQ2OTQ3MDU4N0UrNDcnLCApLAogICAgICAgICAgICAgICAgb3JpZ2luYXRvciA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3BpaV9pdm1zLlRyYXZlbFJ1bGVQaWlJVk1TKAogICAgICAgICAgICAgICAgICAgIG9yaWdpbmF0b3JfcGVyc29ucyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfcGVyc29uLlRyYXZlbFJ1bGVQZXJzb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXR1cmFsX3BlcnNvbiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uLlRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9pZGVudGlmaWVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyLlRyYXZlbFJ1bGVOYXR1cmFsTmFtZUlkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlfaWRlbnRpZmllciA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeV9pZGVudGlmaWVyID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9pZGVudGlmaWVyX3R5cGUgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsX25hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2lkZW50aWZpZXIgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlfaWRlbnRpZmllciA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllcl90eXBlID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG9uZXRpY19uYW1lX2lkZW50aWZpZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW9ncmFwaGljX2FkZHJlc3MgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2dlb2dyYXBoaWNfYWRkcmVzcy5UcmF2ZWxSdWxlR2VvZ3JhcGhpY0FkZHJlc3MoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlZXRfbmFtZSA9ICdRbVpHWFhzS1BrNWlQUzk3TExqWEI1ZThRczU1NW9jZHpjcGJQTVh2dDg0Smk5JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3duX25hbWUgPSAnUW1Oa0V0OVZkbmhqZWZRTVhvM1phWkFzNzY1dWdvV2lhemFxY1k5c2tITWpDdCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeSA9ICdRbVJHSGRveFFmU2k2dGV2eXZhWUd6czhCVlN0ZnFKcUV5ck1ZcVVmelh4a21tJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19udW1iZXIgPSAnUW1VRnBOa3hkc1Z0ZWJEU1V6NWVQNTFrem95c1htcWoyZ0JnZUgxMVBEN1NWUCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdF9jb2RlID0gJ1FtVEpzSzNzYzNmUEVWd3ZBcDk3VVVpVm9GaGp6UWhZWDNzQ2RhMUp4dUNuWGonLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfdHlwZSA9ICdRbWRyOUxjQ2hac29pdlM2dUFoZTdRazdjR0xEQXg3M3dCWlRWdnE0V29VNzFIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBhcnRtZW50ID0gJ1FtTjdmYjY1eDVNeUE3Ukt5aGJYYVVLdko3VTRZOWVxcEVaVG1KWXBOeUVHOCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViX2RlcGFydG1lbnQgPSAnUW1Ua2Z5R2g1NHRYTnFGeHlFR0s5TnlUSlpZcFE2Ulo5enBOeWt4eWtNRThzJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19uYW1lID0gJ1FtWEpmR2s4NXQ2Ukt5aGJYYUVLOU56NE1FZU1LeXBxNkVZOXpwSnlDOW5NOScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvb3IgPSAnUW1aUDVHN2ZoWnBNeVF4WG5UOUt5UjZ5YlhhRU05enBKeTRNRTlNa1RKR0UxJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0X2JveCA9ICdRbVRrZllSR0s1NHhGcVh5SllOWnlFOWtZOXpwTUt5dEpuWHk1ejlFTUU5c0onLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvb20gPSAnUW1SWVhuVDlLeWhiWGFFTVpwTXl4TWtaOXpwWU5ZVEo0TUU1a0NHRTdmaE1KJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3duX2xvY2F0aW9uX25hbWUgPSAnUW1OcFpUeVhKWG5UOUs2RVlacFF4WU5ZTWtDNXA0a0dFZmhua01KenBZVDlKbScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzdHJpY3RfbmFtZSA9ICdRbVQ5cDZFUkt5TllYblR5aGJwTVlKNHpwWVQ5a01KWlQ5UW1FTUdaNWtNaEN5JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X3N1Yl9kaXZpc2lvbiA9ICdRbUs5eVRiWGFacE1ZSllUWXA2TlQ5UW1FTUdaVDlwOWtNSmZoeUdFNFo3azVDJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX2xpbmUgPSBbIlFtTnA5a01qZmhHWjVrTUp6cE5ZWFpUeTZOUW1aWUVNR1o0a1pUOVk2cE5ZVCJdLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpY2F0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0aW9uYWxfaWRlbnRpZmljYXRpb24uVHJhdmVsUnVsZU5hdGlvbmFsSWRlbnRpZmljYXRpb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfaXNzdWUgPSAnUW1SR0hkb3hRZlNpNnRldnl2YVlHenM4QlZTdGZxSnFFeXJNWXFVZnpYeGttbScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWVyID0gJ1FtZFI2cUxuWjdLd2Y1Y0JhWEc4UUZRZW5FdlJnOUpOWmVvUHJhblZ1R2Q2M3onLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmllcl90eXBlID0gJ1FtVUtUZzNhRkpGaE16MW85Z1BxQTNNZ1RSd2QyTHZETHdXVFBIWVVvTUVZVmknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0cmF0aW9uX2F1dGhvcml0eSA9ICdRbVY5S0pNeVQ5Ukp6cFlmaE1FNXhOQ1o0RzY3ZkVrelRwUk15SnpwOWtUTllrJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGggPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9kYXRlX2FuZF9wbGFjZV9vZl9iaXJ0aC5UcmF2ZWxSdWxlRGF0ZUFuZFBsYWNlT2ZCaXJ0aCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9vZl9iaXJ0aCA9ICdRbU5rRXQ5VmRuaGplZlFNWG8zWmFaQXM3NjV1Z29XaWF6YXFjWTlza0hNakN0JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlX29mX2JpcnRoID0gJ1FtTmtFdDlWZG5oamVmUU1YbzNaYVpBczc2NXVnb1dpYXphcWNZOXNrSE1qQ3QnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pZGVudGlmaWNhdGlvbiA9ICdRbVRKc0szc2MzZlBFVnd2QXA5N1VVaVZvRmhqelFoWVgzc0NkYTFKeHVDblhqJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9yZXNpZGVuY2UgPSAnUW1USnNLM3NjM2ZQRVZ3dkFwOTdVVWlWb0ZoanpRaFlYM3NDZGExSnh1Q25YaicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX251bWJlciA9ICdRbVRKc0szc2MzZlBFVnd2QXA5N1VVaVZvRmhqelFoWVgzc0NkYTFKeHVDblhqJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdhbF9wZXJzb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9sZWdhbF9wZXJzb24uVHJhdmVsUnVsZUxlZ2FsUGVyc29uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX2lkZW50aWZpY2F0aW9uID0gJ1FtUlk5QUE0VWl0MkpSVHhEemZ6c2hySmRUSzg2S2Y1SHJpQTNkWERuaWhEbXknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9udW1iZXIgPSAnUW1YdnlNTDNBSlVGcEJiSnFMNU5WcDdWbjd4Tmt1ZWRUc1NNazkzZHVMQ05XOCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfcmVnaXN0cmF0aW9uID0gJ1FtZW9UazZVUHJ1RUFZTmJKRUFIZFFZYzUzYXA5QlhtcG5QTWN1dnM4d3V0ZHInLCApLCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5X3BlcnNvbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3BlcnNvbi5UcmF2ZWxSdWxlUGVyc29uKCkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9udW1iZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICdRbU5rRXQ5VmRuaGplZlFNWG8zWmFaQXM3NjV1Z29XaWF6YXFjWTlza0hNakN0JwogICAgICAgICAgICAgICAgICAgICAgICBdLCApLAogICAgICAgICAgICAgICAgYmVuZWZpY2lhcnkgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9waWlfaXZtcy5UcmF2ZWxSdWxlUGlpSVZNUygKICAgICAgICAgICAgICAgICAgICBvcmlnaW5hdG9yX3BlcnNvbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3BlcnNvbi5UcmF2ZWxSdWxlUGVyc29uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0dXJhbF9wZXJzb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXR1cmFsX3BlcnNvbi5UcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXR1cmFsX3BlcnNvbl9uYW1lX2lkZW50aWZpZXIuVHJhdmVsUnVsZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2lkZW50aWZpZXIgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlfaWRlbnRpZmllciA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllcl90eXBlID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbF9uYW1lX2lkZW50aWZpZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9uYW1lX2lkZW50aWZpZXIuVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9pZGVudGlmaWVyID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5X2lkZW50aWZpZXIgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXJfdHlwZSA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhvbmV0aWNfbmFtZV9pZGVudGlmaWVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvZ3JhcGhpY19hZGRyZXNzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9nZW9ncmFwaGljX2FkZHJlc3MuVHJhdmVsUnVsZUdlb2dyYXBoaWNBZGRyZXNzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWV0X25hbWUgPSAnUW1aR1hYc0tQazVpUFM5N0xMalhCNWU4UXM1NTVvY2R6Y3BiUE1YdnQ4NEppOScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG93bl9uYW1lID0gJ1FtTmtFdDlWZG5oamVmUU1YbzNaYVpBczc2NXVnb1dpYXphcWNZOXNrSE1qQ3QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnkgPSAnUW1SR0hkb3hRZlNpNnRldnl2YVlHenM4QlZTdGZxSnFFeXJNWXFVZnpYeGttbScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRpbmdfbnVtYmVyID0gJ1FtVUZwTmt4ZHNWdGViRFNVejVlUDUxa3pveXNYbXFqMmdCZ2VIMTFQRDdTVlAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfY29kZSA9ICdRbVRKc0szc2MzZlBFVnd2QXA5N1VVaVZvRmhqelFoWVgzc0NkYTFKeHVDblhqJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX3R5cGUgPSAnUW1kcjlMY0NoWnNvaXZTNnVBaGU3UWs3Y0dMREF4NzN3QlpUVnZxNFdvVTcxSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwYXJ0bWVudCA9ICdRbU43ZmI2NXg1TXlBN1JLeWhiWGFVS3ZKN1U0WTllcXBFWlRtSllwTnlFRzgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl9kZXBhcnRtZW50ID0gJ1FtVGtmeUdoNTR0WE5xRnh5RUdLOU55VEpaWXBRNlJaOXpwTnlreHlrTUU4cycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRpbmdfbmFtZSA9ICdRbVhKZkdrODV0NlJLeWhiWGFFSzlOejRNRWVNS3lwcTZFWTl6cEp5QzluTTknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb29yID0gJ1FtWlA1RzdmaFpwTXlReFhuVDlLeVI2eWJYYUVNOXpwSnk0TUU5TWtUSkdFMScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdF9ib3ggPSAnUW1Ua2ZZUkdLNTR4RnFYeUpZTlp5RTlrWTl6cE1LeXRKblh5NXo5RU1FOXNKJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb29tID0gJ1FtUllYblQ5S3loYlhhRU1acE15eE1rWjl6cFlOWVRKNE1FNWtDR0U3ZmhNSicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG93bl9sb2NhdGlvbl9uYW1lID0gJ1FtTnBaVHlYSlhuVDlLNkVZWnBReFlOWU1rQzVwNGtHRWZobmtNSnpwWVQ5Sm0nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RyaWN0X25hbWUgPSAnUW1UOXA2RVJLeU5ZWG5UeWhicE1ZSjR6cFlUOWtNSlpUOVFtRU1HWjVrTWhDeScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9zdWJfZGl2aXNpb24gPSAnUW1LOXlUYlhhWnBNWUpZVFlwNk5UOVFtRU1HWlQ5cDlrTUpmaHlHRTRaN2s1QycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19saW5lID0gWyJRbU5wOWtNamZoR1o1a01KenBOWVhaVHk2TlFtWllFTUdaNGtaVDlZNnBOWVQiXSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWNhdGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdGlvbmFsX2lkZW50aWZpY2F0aW9uLlRyYXZlbFJ1bGVOYXRpb25hbElkZW50aWZpY2F0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX2lzc3VlID0gJ1FtUkdIZG94UWZTaTZ0ZXZ5dmFZR3pzOEJWU3RmcUpxRXlyTVlxVWZ6WHhrbW0nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmllciA9ICdRbWRSNnFMblo3S3dmNWNCYVhHOFFGUWVuRXZSZzlKTlplb1ByYW5WdUdkNjN6JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSA9ICdRbVVLVGczYUZKRmhNejFvOWdQcUEzTWdUUndkMkx2REx3V1RQSFlVb01FWVZpJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbl9hdXRob3JpdHkgPSAnUW1WOUtKTXlUOVJKenBZZmhNRTV4TkNaNEc2N2ZFa3pUcFJNeUp6cDlrVE5ZaycsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfYW5kX3BsYWNlX29mX2JpcnRoID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGguVHJhdmVsUnVsZURhdGVBbmRQbGFjZU9mQmlydGgoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfb2ZfYmlydGggPSAnUW1Oa0V0OVZkbmhqZWZRTVhvM1phWkFzNzY1dWdvV2lhemFxY1k5c2tITWpDdCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZV9vZl9iaXJ0aCA9ICdRbU5rRXQ5VmRuaGplZlFNWG8zWmFaQXM3NjV1Z29XaWF6YXFjWTlza0hNakN0JywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfaWRlbnRpZmljYXRpb24gPSAnUW1USnNLM3NjM2ZQRVZ3dkFwOTdVVWlWb0ZoanpRaFlYM3NDZGExSnh1Q25YaicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfcmVzaWRlbmNlID0gJ1FtVEpzSzNzYzNmUEVWd3ZBcDk3VVVpVm9GaGp6UWhZWDNzQ2RhMUp4dUNuWGonLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9udW1iZXIgPSAnUW1USnNLM3NjM2ZQRVZ3dkFwOTdVVWlWb0ZoanpRaFlYM3NDZGExSnh1Q25YaicsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnYWxfcGVyc29uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbGVnYWxfcGVyc29uLlRyYXZlbFJ1bGVMZWdhbFBlcnNvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pZGVudGlmaWNhdGlvbiA9ICdRbVJZOUFBNFVpdDJKUlR4RHpmenNockpkVEs4NktmNUhyaUEzZFhEbmloRG15JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfbnVtYmVyID0gJ1FtWHZ5TUwzQUpVRnBCYkpxTDVOVnA3Vm43eE5rdWVkVHNTTWs5M2R1TENOVzgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX3JlZ2lzdHJhdGlvbiA9ICdRbWVvVGs2VVBydUVBWU5iSkVBSGRRWWM1M2FwOUJYbXBuUE1jdXZzOHd1dGRyJywgKSwgKQogICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV9wZXJzb25zID0gWwogICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9wZXJzb24uVHJhdmVsUnVsZVBlcnNvbigpCiAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgIGFjY291bnRfbnVtYmVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAnUW1Oa0V0OVZkbmhqZWZRTVhvM1phWkFzNzY1dWdvV2lhemFxY1k5c2tITWpDdCcKICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwKICAgICAgICAgICAgICAgIGVuY3J5cHRlZCA9ICdleUpoYkdjaU9pSklVekkxTmlJc0luUjVjQ0k2SWtwWFZDSjkuLi4nLAogICAgICAgICAgICAgICAgcHJvdG9jb2wgPSAnSVZNUzEwMScsCiAgICAgICAgICAgICAgICB0YXJnZXRfcHJvdG9jb2wgPSAnR1RSJywKICAgICAgICAgICAgICAgIHNraXBfYmVuZWZpY2lhcnlfZGF0YV92YWxpZGF0aW9uID0gRmFsc2UsCiAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV9iZWhhdmlvciA9IFRydWUsCiAgICAgICAgICAgICAgICBvcmlnaW5hdG9yX3JlZiA9ICdPUkcxMjM0NTYnLAogICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfcmVmID0gJ0JFTjY1NDMyMScsCiAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV9iZWhhdmlvcl9yZWYgPSAnVFJCOTg3NjU0JywKICAgICAgICAgICAgICAgIG9yaWdpbmF0b3JfcHJvb2YgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9vd25lcnNoaXBfcHJvb2YuVHJhdmVsUnVsZU93bmVyc2hpcFByb29mKAogICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnZWlwLTE5MScsIAogICAgICAgICAgICAgICAgICAgIHByb29mID0gJzB4M2RkNGExN2EuLi5jZTRhMmJjZDFiJywgCiAgICAgICAgICAgICAgICAgICAgYXR0ZXN0YXRpb24gPSAnSSBjZXJ0aWZ5IHRoYXQgRVRIIGFjY291bnQgMHg4OTZCLi4uMGI5YiBiZWxvbmdzIHRvIG1lLicsIAogICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHg4OTZCLi4uMGI5YicsIAogICAgICAgICAgICAgICAgICAgIHdhbGxldF9wcm92aWRlciA9ICdNZXRhbWFzaycsIAogICAgICAgICAgICAgICAgICAgIHVybCA9ICdodHRwczovL2V4YW1wbGUuY29tL3VwbG9hZGVkX2ltYWdlLnBuZycsIAogICAgICAgICAgICAgICAgICAgIGRpZCA9ICdkaWQ6a2V5Ono2TWtmMTIzNDVaYWJjZGVmMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAndmVyaWZpZWQnLCAKICAgICAgICAgICAgICAgICAgICBjb25maXJtZWQgPSBUcnVlLCApLAogICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfcHJvb2YgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9vd25lcnNoaXBfcHJvb2YuVHJhdmVsUnVsZU93bmVyc2hpcFByb29mKAogICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnZWlwLTE5MScsIAogICAgICAgICAgICAgICAgICAgIHByb29mID0gJzB4M2RkNGExN2EuLi5jZTRhMmJjZDFiJywgCiAgICAgICAgICAgICAgICAgICAgYXR0ZXN0YXRpb24gPSAnSSBjZXJ0aWZ5IHRoYXQgRVRIIGFjY291bnQgMHg4OTZCLi4uMGI5YiBiZWxvbmdzIHRvIG1lLicsIAogICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnMHg4OTZCLi4uMGI5YicsIAogICAgICAgICAgICAgICAgICAgIHdhbGxldF9wcm92aWRlciA9ICdNZXRhbWFzaycsIAogICAgICAgICAgICAgICAgICAgIHVybCA9ICdodHRwczovL2V4YW1wbGUuY29tL3VwbG9hZGVkX2ltYWdlLnBuZycsIAogICAgICAgICAgICAgICAgICAgIGRpZCA9ICdkaWQ6a2V5Ono2TWtmMTIzNDVaYWJjZGVmMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAndmVyaWZpZWQnLCAKICAgICAgICAgICAgICAgICAgICBjb25maXJtZWQgPSBUcnVlLCApLAogICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfZGlkID0gJ2RpZDprZXk6ejZNa2Y2Nzg5MFpnaGlqa2w2Nzg5MCcsCiAgICAgICAgICAgICAgICBvcmlnaW5hdG9yX2RpZCA9ICdkaWQ6a2V5Ono2TWtmMTIzNDVaYWJjZGVmMTIzNDUnLAogICAgICAgICAgICAgICAgaXNfbm9uX2N1c3RvZGlhbCA9IFRydWUKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlQ3JlYXRlVHJhbnNhY3Rpb25SZXF1ZXN0KAogICAgICAgICAgICAgICAgb3JpZ2luYXRvciA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3BpaV9pdm1zLlRyYXZlbFJ1bGVQaWlJVk1TKAogICAgICAgICAgICAgICAgICAgIG9yaWdpbmF0b3JfcGVyc29ucyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfcGVyc29uLlRyYXZlbFJ1bGVQZXJzb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXR1cmFsX3BlcnNvbiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uLlRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9pZGVudGlmaWVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyLlRyYXZlbFJ1bGVOYXR1cmFsTmFtZUlkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlfaWRlbnRpZmllciA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeV9pZGVudGlmaWVyID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9pZGVudGlmaWVyX3R5cGUgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsX25hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2lkZW50aWZpZXIgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlfaWRlbnRpZmllciA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllcl90eXBlID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG9uZXRpY19uYW1lX2lkZW50aWZpZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW9ncmFwaGljX2FkZHJlc3MgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2dlb2dyYXBoaWNfYWRkcmVzcy5UcmF2ZWxSdWxlR2VvZ3JhcGhpY0FkZHJlc3MoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlZXRfbmFtZSA9ICdRbVpHWFhzS1BrNWlQUzk3TExqWEI1ZThRczU1NW9jZHpjcGJQTVh2dDg0Smk5JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3duX25hbWUgPSAnUW1Oa0V0OVZkbmhqZWZRTVhvM1phWkFzNzY1dWdvV2lhemFxY1k5c2tITWpDdCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeSA9ICdRbVJHSGRveFFmU2k2dGV2eXZhWUd6czhCVlN0ZnFKcUV5ck1ZcVVmelh4a21tJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19udW1iZXIgPSAnUW1VRnBOa3hkc1Z0ZWJEU1V6NWVQNTFrem95c1htcWoyZ0JnZUgxMVBEN1NWUCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdF9jb2RlID0gJ1FtVEpzSzNzYzNmUEVWd3ZBcDk3VVVpVm9GaGp6UWhZWDNzQ2RhMUp4dUNuWGonLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfdHlwZSA9ICdRbWRyOUxjQ2hac29pdlM2dUFoZTdRazdjR0xEQXg3M3dCWlRWdnE0V29VNzFIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBhcnRtZW50ID0gJ1FtTjdmYjY1eDVNeUE3Ukt5aGJYYVVLdko3VTRZOWVxcEVaVG1KWXBOeUVHOCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViX2RlcGFydG1lbnQgPSAnUW1Ua2Z5R2g1NHRYTnFGeHlFR0s5TnlUSlpZcFE2Ulo5enBOeWt4eWtNRThzJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19uYW1lID0gJ1FtWEpmR2s4NXQ2Ukt5aGJYYUVLOU56NE1FZU1LeXBxNkVZOXpwSnlDOW5NOScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvb3IgPSAnUW1aUDVHN2ZoWnBNeVF4WG5UOUt5UjZ5YlhhRU05enBKeTRNRTlNa1RKR0UxJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0X2JveCA9ICdRbVRrZllSR0s1NHhGcVh5SllOWnlFOWtZOXpwTUt5dEpuWHk1ejlFTUU5c0onLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvb20gPSAnUW1SWVhuVDlLeWhiWGFFTVpwTXl4TWtaOXpwWU5ZVEo0TUU1a0NHRTdmaE1KJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3duX2xvY2F0aW9uX25hbWUgPSAnUW1OcFpUeVhKWG5UOUs2RVlacFF4WU5ZTWtDNXA0a0dFZmhua01KenBZVDlKbScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzdHJpY3RfbmFtZSA9ICdRbVQ5cDZFUkt5TllYblR5aGJwTVlKNHpwWVQ5a01KWlQ5UW1FTUdaNWtNaEN5JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X3N1Yl9kaXZpc2lvbiA9ICdRbUs5eVRiWGFacE1ZSllUWXA2TlQ5UW1FTUdaVDlwOWtNSmZoeUdFNFo3azVDJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX2xpbmUgPSBbIlFtTnA5a01qZmhHWjVrTUp6cE5ZWFpUeTZOUW1aWUVNR1o0a1pUOVk2cE5ZVCJdLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpY2F0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0aW9uYWxfaWRlbnRpZmljYXRpb24uVHJhdmVsUnVsZU5hdGlvbmFsSWRlbnRpZmljYXRpb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfaXNzdWUgPSAnUW1SR0hkb3hRZlNpNnRldnl2YVlHenM4QlZTdGZxSnFFeXJNWXFVZnpYeGttbScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWVyID0gJ1FtZFI2cUxuWjdLd2Y1Y0JhWEc4UUZRZW5FdlJnOUpOWmVvUHJhblZ1R2Q2M3onLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmllcl90eXBlID0gJ1FtVUtUZzNhRkpGaE16MW85Z1BxQTNNZ1RSd2QyTHZETHdXVFBIWVVvTUVZVmknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0cmF0aW9uX2F1dGhvcml0eSA9ICdRbVY5S0pNeVQ5Ukp6cFlmaE1FNXhOQ1o0RzY3ZkVrelRwUk15SnpwOWtUTllrJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGggPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9kYXRlX2FuZF9wbGFjZV9vZl9iaXJ0aC5UcmF2ZWxSdWxlRGF0ZUFuZFBsYWNlT2ZCaXJ0aCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9vZl9iaXJ0aCA9ICdRbU5rRXQ5VmRuaGplZlFNWG8zWmFaQXM3NjV1Z29XaWF6YXFjWTlza0hNakN0JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlX29mX2JpcnRoID0gJ1FtTmtFdDlWZG5oamVmUU1YbzNaYVpBczc2NXVnb1dpYXphcWNZOXNrSE1qQ3QnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pZGVudGlmaWNhdGlvbiA9ICdRbVRKc0szc2MzZlBFVnd2QXA5N1VVaVZvRmhqelFoWVgzc0NkYTFKeHVDblhqJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9yZXNpZGVuY2UgPSAnUW1USnNLM3NjM2ZQRVZ3dkFwOTdVVWlWb0ZoanpRaFlYM3NDZGExSnh1Q25YaicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX251bWJlciA9ICdRbVRKc0szc2MzZlBFVnd2QXA5N1VVaVZvRmhqelFoWVgzc0NkYTFKeHVDblhqJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdhbF9wZXJzb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9sZWdhbF9wZXJzb24uVHJhdmVsUnVsZUxlZ2FsUGVyc29uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX2lkZW50aWZpY2F0aW9uID0gJ1FtUlk5QUE0VWl0MkpSVHhEemZ6c2hySmRUSzg2S2Y1SHJpQTNkWERuaWhEbXknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9udW1iZXIgPSAnUW1YdnlNTDNBSlVGcEJiSnFMNU5WcDdWbjd4Tmt1ZWRUc1NNazkzZHVMQ05XOCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfcmVnaXN0cmF0aW9uID0gJ1FtZW9UazZVUHJ1RUFZTmJKRUFIZFFZYzUzYXA5QlhtcG5QTWN1dnM4d3V0ZHInLCApLCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5X3BlcnNvbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3BlcnNvbi5UcmF2ZWxSdWxlUGVyc29uKCkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9udW1iZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICdRbU5rRXQ5VmRuaGplZlFNWG8zWmFaQXM3NjV1Z29XaWF6YXFjWTlza0hNakN0JwogICAgICAgICAgICAgICAgICAgICAgICBdLCApLAogICAgICAgICAgICAgICAgYmVuZWZpY2lhcnkgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9waWlfaXZtcy5UcmF2ZWxSdWxlUGlpSVZNUygKICAgICAgICAgICAgICAgICAgICBvcmlnaW5hdG9yX3BlcnNvbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3BlcnNvbi5UcmF2ZWxSdWxlUGVyc29uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0dXJhbF9wZXJzb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXR1cmFsX3BlcnNvbi5UcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXR1cmFsX3BlcnNvbl9uYW1lX2lkZW50aWZpZXIuVHJhdmVsUnVsZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2lkZW50aWZpZXIgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlfaWRlbnRpZmllciA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllcl90eXBlID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbF9uYW1lX2lkZW50aWZpZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9uYW1lX2lkZW50aWZpZXIuVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9pZGVudGlmaWVyID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5X2lkZW50aWZpZXIgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXJfdHlwZSA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhvbmV0aWNfbmFtZV9pZGVudGlmaWVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvZ3JhcGhpY19hZGRyZXNzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9nZW9ncmFwaGljX2FkZHJlc3MuVHJhdmVsUnVsZUdlb2dyYXBoaWNBZGRyZXNzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWV0X25hbWUgPSAnUW1aR1hYc0tQazVpUFM5N0xMalhCNWU4UXM1NTVvY2R6Y3BiUE1YdnQ4NEppOScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG93bl9uYW1lID0gJ1FtTmtFdDlWZG5oamVmUU1YbzNaYVpBczc2NXVnb1dpYXphcWNZOXNrSE1qQ3QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnkgPSAnUW1SR0hkb3hRZlNpNnRldnl2YVlHenM4QlZTdGZxSnFFeXJNWXFVZnpYeGttbScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRpbmdfbnVtYmVyID0gJ1FtVUZwTmt4ZHNWdGViRFNVejVlUDUxa3pveXNYbXFqMmdCZ2VIMTFQRDdTVlAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfY29kZSA9ICdRbVRKc0szc2MzZlBFVnd2QXA5N1VVaVZvRmhqelFoWVgzc0NkYTFKeHVDblhqJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX3R5cGUgPSAnUW1kcjlMY0NoWnNvaXZTNnVBaGU3UWs3Y0dMREF4NzN3QlpUVnZxNFdvVTcxSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwYXJ0bWVudCA9ICdRbU43ZmI2NXg1TXlBN1JLeWhiWGFVS3ZKN1U0WTllcXBFWlRtSllwTnlFRzgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl9kZXBhcnRtZW50ID0gJ1FtVGtmeUdoNTR0WE5xRnh5RUdLOU55VEpaWXBRNlJaOXpwTnlreHlrTUU4cycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRpbmdfbmFtZSA9ICdRbVhKZkdrODV0NlJLeWhiWGFFSzlOejRNRWVNS3lwcTZFWTl6cEp5QzluTTknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb29yID0gJ1FtWlA1RzdmaFpwTXlReFhuVDlLeVI2eWJYYUVNOXpwSnk0TUU5TWtUSkdFMScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdF9ib3ggPSAnUW1Ua2ZZUkdLNTR4RnFYeUpZTlp5RTlrWTl6cE1LeXRKblh5NXo5RU1FOXNKJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb29tID0gJ1FtUllYblQ5S3loYlhhRU1acE15eE1rWjl6cFlOWVRKNE1FNWtDR0U3ZmhNSicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG93bl9sb2NhdGlvbl9uYW1lID0gJ1FtTnBaVHlYSlhuVDlLNkVZWnBReFlOWU1rQzVwNGtHRWZobmtNSnpwWVQ5Sm0nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RyaWN0X25hbWUgPSAnUW1UOXA2RVJLeU5ZWG5UeWhicE1ZSjR6cFlUOWtNSlpUOVFtRU1HWjVrTWhDeScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9zdWJfZGl2aXNpb24gPSAnUW1LOXlUYlhhWnBNWUpZVFlwNk5UOVFtRU1HWlQ5cDlrTUpmaHlHRTRaN2s1QycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19saW5lID0gWyJRbU5wOWtNamZoR1o1a01KenBOWVhaVHk2TlFtWllFTUdaNGtaVDlZNnBOWVQiXSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWNhdGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdGlvbmFsX2lkZW50aWZpY2F0aW9uLlRyYXZlbFJ1bGVOYXRpb25hbElkZW50aWZpY2F0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX2lzc3VlID0gJ1FtUkdIZG94UWZTaTZ0ZXZ5dmFZR3pzOEJWU3RmcUpxRXlyTVlxVWZ6WHhrbW0nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmllciA9ICdRbWRSNnFMblo3S3dmNWNCYVhHOFFGUWVuRXZSZzlKTlplb1ByYW5WdUdkNjN6JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSA9ICdRbVVLVGczYUZKRmhNejFvOWdQcUEzTWdUUndkMkx2REx3V1RQSFlVb01FWVZpJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbl9hdXRob3JpdHkgPSAnUW1WOUtKTXlUOVJKenBZZmhNRTV4TkNaNEc2N2ZFa3pUcFJNeUp6cDlrVE5ZaycsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfYW5kX3BsYWNlX29mX2JpcnRoID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGguVHJhdmVsUnVsZURhdGVBbmRQbGFjZU9mQmlydGgoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfb2ZfYmlydGggPSAnUW1Oa0V0OVZkbmhqZWZRTVhvM1phWkFzNzY1dWdvV2lhemFxY1k5c2tITWpDdCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZV9vZl9iaXJ0aCA9ICdRbU5rRXQ5VmRuaGplZlFNWG8zWmFaQXM3NjV1Z29XaWF6YXFjWTlza0hNakN0JywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfaWRlbnRpZmljYXRpb24gPSAnUW1USnNLM3NjM2ZQRVZ3dkFwOTdVVWlWb0ZoanpRaFlYM3NDZGExSnh1Q25YaicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfcmVzaWRlbmNlID0gJ1FtVEpzSzNzYzNmUEVWd3ZBcDk3VVVpVm9GaGp6UWhZWDNzQ2RhMUp4dUNuWGonLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9udW1iZXIgPSAnUW1USnNLM3NjM2ZQRVZ3dkFwOTdVVWlWb0ZoanpRaFlYM3NDZGExSnh1Q25YaicsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnYWxfcGVyc29uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbGVnYWxfcGVyc29uLlRyYXZlbFJ1bGVMZWdhbFBlcnNvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pZGVudGlmaWNhdGlvbiA9ICdRbVJZOUFBNFVpdDJKUlR4RHpmenNockpkVEs4NktmNUhyaUEzZFhEbmloRG15JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfbnVtYmVyID0gJ1FtWHZ5TUwzQUpVRnBCYkpxTDVOVnA3Vm43eE5rdWVkVHNTTWs5M2R1TENOVzgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX3JlZ2lzdHJhdGlvbiA9ICdRbWVvVGs2VVBydUVBWU5iSkVBSGRRWWM1M2FwOUJYbXBuUE1jdXZzOHd1dGRyJywgKSwgKQogICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV9wZXJzb25zID0gWwogICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9wZXJzb24uVHJhdmVsUnVsZVBlcnNvbigpCiAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgIGFjY291bnRfbnVtYmVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAnUW1Oa0V0OVZkbmhqZWZRTVhvM1phWkFzNzY1dWdvV2lhemFxY1k5c2tITWpDdCcKICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmF2ZWxSdWxlQ3JlYXRlVHJhbnNhY3Rpb25SZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJhdmVsUnVsZUNyZWF0ZVRyYW5zYWN0aW9uUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_travel_rule_date_and_place_of_birth.py b/test/test_travel_rule_date_and_place_of_birth.py index 6aada9ac..38889a29 100644 --- a/test/test_travel_rule_date_and_place_of_birth.py +++ b/test/test_travel_rule_date_and_place_of_birth.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_date_and_place_of_birth import ( - TravelRuleDateAndPlaceOfBirth, -) - - -class TestTravelRuleDateAndPlaceOfBirth(unittest.TestCase): - """TravelRuleDateAndPlaceOfBirth unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleDateAndPlaceOfBirth: - """Test TravelRuleDateAndPlaceOfBirth - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleDateAndPlaceOfBirth` - """ - model = TravelRuleDateAndPlaceOfBirth() - if include_optional: - return TravelRuleDateAndPlaceOfBirth( - date_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - place_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt' - ) - else: - return TravelRuleDateAndPlaceOfBirth( - ) - """ - - def testTravelRuleDateAndPlaceOfBirth(self): - """Test TravelRuleDateAndPlaceOfBirth""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2RhdGVfYW5kX3BsYWNlX29mX2JpcnRoIGltcG9ydCAoCiAgICBUcmF2ZWxSdWxlRGF0ZUFuZFBsYWNlT2ZCaXJ0aCwKKQoKCmNsYXNzIFRlc3RUcmF2ZWxSdWxlRGF0ZUFuZFBsYWNlT2ZCaXJ0aCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmF2ZWxSdWxlRGF0ZUFuZFBsYWNlT2ZCaXJ0aCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhdmVsUnVsZURhdGVBbmRQbGFjZU9mQmlydGg6CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlRGF0ZUFuZFBsYWNlT2ZCaXJ0aAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmF2ZWxSdWxlRGF0ZUFuZFBsYWNlT2ZCaXJ0aGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYXZlbFJ1bGVEYXRlQW5kUGxhY2VPZkJpcnRoKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZURhdGVBbmRQbGFjZU9mQmlydGgoCiAgICAgICAgICAgICAgICBkYXRlX29mX2JpcnRoID0gJ1FtTmtFdDlWZG5oamVmUU1YbzNaYVpBczc2NXVnb1dpYXphcWNZOXNrSE1qQ3QnLAogICAgICAgICAgICAgICAgcGxhY2Vfb2ZfYmlydGggPSAnUW1Oa0V0OVZkbmhqZWZRTVhvM1phWkFzNzY1dWdvV2lhemFxY1k5c2tITWpDdCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlRGF0ZUFuZFBsYWNlT2ZCaXJ0aCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmF2ZWxSdWxlRGF0ZUFuZFBsYWNlT2ZCaXJ0aChzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVEYXRlQW5kUGxhY2VPZkJpcnRoIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_travel_rule_direction_enum.py b/test/test_travel_rule_direction_enum.py index e4624b36..cd194e7b 100644 --- a/test/test_travel_rule_direction_enum.py +++ b/test/test_travel_rule_direction_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_direction_enum import TravelRuleDirectionEnum - - -class TestTravelRuleDirectionEnum(unittest.TestCase): - """TravelRuleDirectionEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTravelRuleDirectionEnum(self): - """Test TravelRuleDirectionEnum""" - # inst = TravelRuleDirectionEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2RpcmVjdGlvbl9lbnVtIGltcG9ydCBUcmF2ZWxSdWxlRGlyZWN0aW9uRW51bQoKCmNsYXNzIFRlc3RUcmF2ZWxSdWxlRGlyZWN0aW9uRW51bSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmF2ZWxSdWxlRGlyZWN0aW9uRW51bSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RUcmF2ZWxSdWxlRGlyZWN0aW9uRW51bShzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVEaXJlY3Rpb25FbnVtIiIiCiAgICAgICAgIyBpbnN0ID0gVHJhdmVsUnVsZURpcmVjdGlvbkVudW0oKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_travel_rule_geographic_address.py b/test/test_travel_rule_geographic_address.py index cffda667..29f113d3 100644 --- a/test/test_travel_rule_geographic_address.py +++ b/test/test_travel_rule_geographic_address.py @@ -1,69 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_geographic_address import TravelRuleGeographicAddress - - -class TestTravelRuleGeographicAddress(unittest.TestCase): - """TravelRuleGeographicAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleGeographicAddress: - """Test TravelRuleGeographicAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleGeographicAddress` - """ - model = TravelRuleGeographicAddress() - if include_optional: - return TravelRuleGeographicAddress( - street_name = 'QmZGXXsKPk5iPS97LLjXB5e8Qs555ocdzcpbPMXvt84Ji9', - town_name = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - country = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - building_number = 'QmUFpNkxdsVtebDSUz5eP51kzoysXmqj2gBgeH11PD7SVP', - post_code = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - address_type = 'Qmdr9LcChZsoivS6uAhe7Qk7cGLDAx73wBZTVvq4WoU71H', - department = 'QmN7fb65x5MyA7RKyhbXaUKvJ7U4Y9eqpEZTmJYpNyEG8', - sub_department = 'QmTkfyGh54tXNqFxyEGK9NyTJZYpQ6RZ9zpNykxykME8s', - building_name = 'QmXJfGk85t6RKyhbXaEK9Nz4MEeMKypq6EY9zpJyC9nM9', - floor = 'QmZP5G7fhZpMyQxXnT9KyR6ybXaEM9zpJy4ME9MkTJGE1', - post_box = 'QmTkfYRGK54xFqXyJYNZyE9kY9zpMKytJnXy5z9EME9sJ', - room = 'QmRYXnT9KyhbXaEMZpMyxMkZ9zpYNYTJ4ME5kCGE7fhMJ', - town_location_name = 'QmNpZTyXJXnT9K6EYZpQxYNYMkC5p4kGEfhnkMJzpYT9Jm', - district_name = 'QmT9p6ERKyNYXnTyhbpMYJ4zpYT9kMJZT9QmEMGZ5kMhCy', - country_sub_division = 'QmK9yTbXaZpMYJYTYp6NT9QmEMGZT9p9kMJfhyGE4Z7k5C', - address_line = ["QmNp9kMjfhGZ5kMJzpNYXZTy6NQmZYEMGZ4kZT9Y6pNYT"] - ) - else: - return TravelRuleGeographicAddress( - ) - """ - - def testTravelRuleGeographicAddress(self): - """Test TravelRuleGeographicAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2dlb2dyYXBoaWNfYWRkcmVzcyBpbXBvcnQgVHJhdmVsUnVsZUdlb2dyYXBoaWNBZGRyZXNzCgoKY2xhc3MgVGVzdFRyYXZlbFJ1bGVHZW9ncmFwaGljQWRkcmVzcyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmF2ZWxSdWxlR2VvZ3JhcGhpY0FkZHJlc3MgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRyYXZlbFJ1bGVHZW9ncmFwaGljQWRkcmVzczoKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVHZW9ncmFwaGljQWRkcmVzcwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmF2ZWxSdWxlR2VvZ3JhcGhpY0FkZHJlc3NgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUcmF2ZWxSdWxlR2VvZ3JhcGhpY0FkZHJlc3MoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlR2VvZ3JhcGhpY0FkZHJlc3MoCiAgICAgICAgICAgICAgICBzdHJlZXRfbmFtZSA9ICdRbVpHWFhzS1BrNWlQUzk3TExqWEI1ZThRczU1NW9jZHpjcGJQTVh2dDg0Smk5JywKICAgICAgICAgICAgICAgIHRvd25fbmFtZSA9ICdRbU5rRXQ5VmRuaGplZlFNWG8zWmFaQXM3NjV1Z29XaWF6YXFjWTlza0hNakN0JywKICAgICAgICAgICAgICAgIGNvdW50cnkgPSAnUW1SR0hkb3hRZlNpNnRldnl2YVlHenM4QlZTdGZxSnFFeXJNWXFVZnpYeGttbScsCiAgICAgICAgICAgICAgICBidWlsZGluZ19udW1iZXIgPSAnUW1VRnBOa3hkc1Z0ZWJEU1V6NWVQNTFrem95c1htcWoyZ0JnZUgxMVBEN1NWUCcsCiAgICAgICAgICAgICAgICBwb3N0X2NvZGUgPSAnUW1USnNLM3NjM2ZQRVZ3dkFwOTdVVWlWb0ZoanpRaFlYM3NDZGExSnh1Q25YaicsCiAgICAgICAgICAgICAgICBhZGRyZXNzX3R5cGUgPSAnUW1kcjlMY0NoWnNvaXZTNnVBaGU3UWs3Y0dMREF4NzN3QlpUVnZxNFdvVTcxSCcsCiAgICAgICAgICAgICAgICBkZXBhcnRtZW50ID0gJ1FtTjdmYjY1eDVNeUE3Ukt5aGJYYVVLdko3VTRZOWVxcEVaVG1KWXBOeUVHOCcsCiAgICAgICAgICAgICAgICBzdWJfZGVwYXJ0bWVudCA9ICdRbVRrZnlHaDU0dFhOcUZ4eUVHSzlOeVRKWllwUTZSWjl6cE55a3h5a01FOHMnLAogICAgICAgICAgICAgICAgYnVpbGRpbmdfbmFtZSA9ICdRbVhKZkdrODV0NlJLeWhiWGFFSzlOejRNRWVNS3lwcTZFWTl6cEp5QzluTTknLAogICAgICAgICAgICAgICAgZmxvb3IgPSAnUW1aUDVHN2ZoWnBNeVF4WG5UOUt5UjZ5YlhhRU05enBKeTRNRTlNa1RKR0UxJywKICAgICAgICAgICAgICAgIHBvc3RfYm94ID0gJ1FtVGtmWVJHSzU0eEZxWHlKWU5aeUU5a1k5enBNS3l0Sm5YeTV6OUVNRTlzSicsCiAgICAgICAgICAgICAgICByb29tID0gJ1FtUllYblQ5S3loYlhhRU1acE15eE1rWjl6cFlOWVRKNE1FNWtDR0U3ZmhNSicsCiAgICAgICAgICAgICAgICB0b3duX2xvY2F0aW9uX25hbWUgPSAnUW1OcFpUeVhKWG5UOUs2RVlacFF4WU5ZTWtDNXA0a0dFZmhua01KenBZVDlKbScsCiAgICAgICAgICAgICAgICBkaXN0cmljdF9uYW1lID0gJ1FtVDlwNkVSS3lOWVhuVHloYnBNWUo0enBZVDlrTUpaVDlRbUVNR1o1a01oQ3knLAogICAgICAgICAgICAgICAgY291bnRyeV9zdWJfZGl2aXNpb24gPSAnUW1LOXlUYlhhWnBNWUpZVFlwNk5UOVFtRU1HWlQ5cDlrTUpmaHlHRTRaN2s1QycsCiAgICAgICAgICAgICAgICBhZGRyZXNzX2xpbmUgPSBbIlFtTnA5a01qZmhHWjVrTUp6cE5ZWFpUeTZOUW1aWUVNR1o0a1pUOVk2cE5ZVCJdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZUdlb2dyYXBoaWNBZGRyZXNzKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRyYXZlbFJ1bGVHZW9ncmFwaGljQWRkcmVzcyhzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVHZW9ncmFwaGljQWRkcmVzcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_travel_rule_get_all_vasps_response.py b/test/test_travel_rule_get_all_vasps_response.py index a113abd2..20195d98 100644 --- a/test/test_travel_rule_get_all_vasps_response.py +++ b/test/test_travel_rule_get_all_vasps_response.py @@ -1,187 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_get_all_vasps_response import ( - TravelRuleGetAllVASPsResponse, -) - - -class TestTravelRuleGetAllVASPsResponse(unittest.TestCase): - """TravelRuleGetAllVASPsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleGetAllVASPsResponse: - """Test TravelRuleGetAllVASPsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleGetAllVASPsResponse` - """ - model = TravelRuleGetAllVASPsResponse() - if include_optional: - return TravelRuleGetAllVASPsResponse( - data = [ - fireblocks.models.travel_rule_vasp.TravelRuleVASP( - did = 'did:ethr:0x17fe2dd11a2daa7f6c1fdf22532a4763f963aea6', - name = 'Fireblocks TST', - verification_status = 'VERIFIED', - address_line1 = '657 Campfire Street', - address_line2 = 'Suite 10', - city = 'New York', - country = 'US', - email_domains = 'fireblocks.com,example.com', - website = 'https://fireblocks.com', - logo = 'https://fireblocks.com/logo.png', - legal_structure = 'CORPORATION', - legal_name = 'Fireblocks Inc.', - year_founded = '2019', - incorporation_country = 'US', - is_regulated = 'YES', - other_names = 'Fireblocks Test VASP', - identification_type = 'Business License', - identification_country = 'US', - business_number = '123456789', - regulatory_authorities = 'SEC, FINCEN', - jurisdictions = 'US, EU', - street = 'Wall Street', - number = '10', - unit = 'Apt 2B', - post_code = '10005', - state = 'NY', - certificates = 'ISO 27001', - description = 'A leading provider of crypto security solutions.', - travel_rule_openvasp = 'active', - travel_rule_sygna = 'inactive', - travel_rule_trisa = 'pending', - travel_rule_trlight = 'active', - travel_rule_email = 'inactive', - travel_rule_trp = 'active', - travel_rule_shyft = 'inactive', - travel_rule_ustravelrulewg = 'pending', - created_at = '2023-09-19T12:23:59.711Z', - created_by = 'admin', - updated_at = '2024-08-29T08:23:51.416Z', - updated_by = 'system', - last_sent_date = '2024-03-18T09:26:07.988Z', - last_received_date = '2024-03-20T11:45:30.212Z', - documents = '['license.pdf', 'compliance.pdf']', - has_admin = True, - is_notifiable = True, - issuers = fireblocks.models.travel_rule_issuers.TravelRuleIssuers( - year_founded = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - is_regulated = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - regulatory_authorities = , - name = , - logo = , - website = , - legal_name = , - legal_structure = , - incorporation_country = , - business_number = , - address_line1 = , - city = , - country = , - description = , ), ) - ], - total = 2, - next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9' - ) - else: - return TravelRuleGetAllVASPsResponse( - data = [ - fireblocks.models.travel_rule_vasp.TravelRuleVASP( - did = 'did:ethr:0x17fe2dd11a2daa7f6c1fdf22532a4763f963aea6', - name = 'Fireblocks TST', - verification_status = 'VERIFIED', - address_line1 = '657 Campfire Street', - address_line2 = 'Suite 10', - city = 'New York', - country = 'US', - email_domains = 'fireblocks.com,example.com', - website = 'https://fireblocks.com', - logo = 'https://fireblocks.com/logo.png', - legal_structure = 'CORPORATION', - legal_name = 'Fireblocks Inc.', - year_founded = '2019', - incorporation_country = 'US', - is_regulated = 'YES', - other_names = 'Fireblocks Test VASP', - identification_type = 'Business License', - identification_country = 'US', - business_number = '123456789', - regulatory_authorities = 'SEC, FINCEN', - jurisdictions = 'US, EU', - street = 'Wall Street', - number = '10', - unit = 'Apt 2B', - post_code = '10005', - state = 'NY', - certificates = 'ISO 27001', - description = 'A leading provider of crypto security solutions.', - travel_rule_openvasp = 'active', - travel_rule_sygna = 'inactive', - travel_rule_trisa = 'pending', - travel_rule_trlight = 'active', - travel_rule_email = 'inactive', - travel_rule_trp = 'active', - travel_rule_shyft = 'inactive', - travel_rule_ustravelrulewg = 'pending', - created_at = '2023-09-19T12:23:59.711Z', - created_by = 'admin', - updated_at = '2024-08-29T08:23:51.416Z', - updated_by = 'system', - last_sent_date = '2024-03-18T09:26:07.988Z', - last_received_date = '2024-03-20T11:45:30.212Z', - documents = '['license.pdf', 'compliance.pdf']', - has_admin = True, - is_notifiable = True, - issuers = fireblocks.models.travel_rule_issuers.TravelRuleIssuers( - year_founded = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - is_regulated = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - regulatory_authorities = , - name = , - logo = , - website = , - legal_name = , - legal_structure = , - incorporation_country = , - business_number = , - address_line1 = , - city = , - country = , - description = , ), ) - ], - ) - """ - - def testTravelRuleGetAllVASPsResponse(self): - """Test TravelRuleGetAllVASPsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2dldF9hbGxfdmFzcHNfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFRyYXZlbFJ1bGVHZXRBbGxWQVNQc1Jlc3BvbnNlLAopCgoKY2xhc3MgVGVzdFRyYXZlbFJ1bGVHZXRBbGxWQVNQc1Jlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYXZlbFJ1bGVHZXRBbGxWQVNQc1Jlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUcmF2ZWxSdWxlR2V0QWxsVkFTUHNSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVHZXRBbGxWQVNQc1Jlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYXZlbFJ1bGVHZXRBbGxWQVNQc1Jlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVHJhdmVsUnVsZUdldEFsbFZBU1BzUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlR2V0QWxsVkFTUHNSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFzcC5UcmF2ZWxSdWxlVkFTUCgKICAgICAgICAgICAgICAgICAgICAgICAgZGlkID0gJ2RpZDpldGhyOjB4MTdmZTJkZDExYTJkYWE3ZjZjMWZkZjIyNTMyYTQ3NjNmOTYzYWVhNicsIAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ0ZpcmVibG9ja3MgVFNUJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHZlcmlmaWNhdGlvbl9zdGF0dXMgPSAnVkVSSUZJRUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19saW5lMSA9ICc2NTcgQ2FtcGZpcmUgU3RyZWV0JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfbGluZTIgPSAnU3VpdGUgMTAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY2l0eSA9ICdOZXcgWW9yaycsIAogICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5ID0gJ1VTJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsX2RvbWFpbnMgPSAnZmlyZWJsb2Nrcy5jb20sZXhhbXBsZS5jb20nLCAKICAgICAgICAgICAgICAgICAgICAgICAgd2Vic2l0ZSA9ICdodHRwczovL2ZpcmVibG9ja3MuY29tJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGxvZ28gPSAnaHR0cHM6Ly9maXJlYmxvY2tzLmNvbS9sb2dvLnBuZycsIAogICAgICAgICAgICAgICAgICAgICAgICBsZWdhbF9zdHJ1Y3R1cmUgPSAnQ09SUE9SQVRJT04nLCAKICAgICAgICAgICAgICAgICAgICAgICAgbGVnYWxfbmFtZSA9ICdGaXJlYmxvY2tzIEluYy4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgeWVhcl9mb3VuZGVkID0gJzIwMTknLCAKICAgICAgICAgICAgICAgICAgICAgICAgaW5jb3Jwb3JhdGlvbl9jb3VudHJ5ID0gJ1VTJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGlzX3JlZ3VsYXRlZCA9ICdZRVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJfbmFtZXMgPSAnRmlyZWJsb2NrcyBUZXN0IFZBU1AnLCAKICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnRpZmljYXRpb25fdHlwZSA9ICdCdXNpbmVzcyBMaWNlbnNlJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpY2F0aW9uX2NvdW50cnkgPSAnVVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYnVzaW5lc3NfbnVtYmVyID0gJzEyMzQ1Njc4OScsIAogICAgICAgICAgICAgICAgICAgICAgICByZWd1bGF0b3J5X2F1dGhvcml0aWVzID0gJ1NFQywgRklOQ0VOJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGp1cmlzZGljdGlvbnMgPSAnVVMsIEVVJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVldCA9ICdXYWxsIFN0cmVldCcsIAogICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSAnMTAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdW5pdCA9ICdBcHQgMkInLCAKICAgICAgICAgICAgICAgICAgICAgICAgcG9zdF9jb2RlID0gJzEwMDA1JywgCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gJ05ZJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRpZmljYXRlcyA9ICdJU08gMjcwMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnQSBsZWFkaW5nIHByb3ZpZGVyIG9mIGNyeXB0byBzZWN1cml0eSBzb2x1dGlvbnMuJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX29wZW52YXNwID0gJ2FjdGl2ZScsIAogICAgICAgICAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV9zeWduYSA9ICdpbmFjdGl2ZScsIAogICAgICAgICAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV90cmlzYSA9ICdwZW5kaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX3RybGlnaHQgPSAnYWN0aXZlJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX2VtYWlsID0gJ2luYWN0aXZlJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX3RycCA9ICdhY3RpdmUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfc2h5ZnQgPSAnaW5hY3RpdmUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfdXN0cmF2ZWxydWxld2cgPSAncGVuZGluZycsIAogICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkX2F0ID0gJzIwMjMtMDktMTlUMTI6MjM6NTkuNzExWicsIAogICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkX2J5ID0gJ2FkbWluJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZWRfYXQgPSAnMjAyNC0wOC0yOVQwODoyMzo1MS40MTZaJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZWRfYnkgPSAnc3lzdGVtJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3Rfc2VudF9kYXRlID0gJzIwMjQtMDMtMThUMDk6MjY6MDcuOTg4WicsIAogICAgICAgICAgICAgICAgICAgICAgICBsYXN0X3JlY2VpdmVkX2RhdGUgPSAnMjAyNC0wMy0yMFQxMTo0NTozMC4yMTJaJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50cyA9ICdbJ2xpY2Vuc2UucGRmJywgJ2NvbXBsaWFuY2UucGRmJ10nLCAKICAgICAgICAgICAgICAgICAgICAgICAgaGFzX2FkbWluID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGlzX25vdGlmaWFibGUgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgaXNzdWVycyA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2lzc3VlcnMuVHJhdmVsUnVsZUlzc3VlcnMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ZWFyX2ZvdW5kZWQgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9pc3N1ZXIuVHJhdmVsUnVsZUlzc3VlcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc3N1ZXJfZGlkID0gJycsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfcmVndWxhdGVkID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfaXNzdWVyLlRyYXZlbFJ1bGVJc3N1ZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNzdWVyX2RpZCA9ICcnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ3VsYXRvcnlfYXV0aG9yaXRpZXMgPSAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dvID0gLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYnNpdGUgPSAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnYWxfbmFtZSA9ICwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdhbF9zdHJ1Y3R1cmUgPSAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jb3Jwb3JhdGlvbl9jb3VudHJ5ID0gLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1c2luZXNzX251bWJlciA9ICwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX2xpbmUxID0gLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNpdHkgPSAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeSA9ICwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICwgKSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICB0b3RhbCA9IDIsCiAgICAgICAgICAgICAgICBuZXh0ID0gJ2VKMGVYQWlPaUpLVjFRaUxDSmhiR2NPaUpJVXpJMU5pSjknCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZUdldEFsbFZBU1BzUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBkYXRhID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3Zhc3AuVHJhdmVsUnVsZVZBU1AoCiAgICAgICAgICAgICAgICAgICAgICAgIGRpZCA9ICdkaWQ6ZXRocjoweDE3ZmUyZGQxMWEyZGFhN2Y2YzFmZGYyMjUzMmE0NzYzZjk2M2FlYTYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdGaXJlYmxvY2tzIFRTVCcsIAogICAgICAgICAgICAgICAgICAgICAgICB2ZXJpZmljYXRpb25fc3RhdHVzID0gJ1ZFUklGSUVEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfbGluZTEgPSAnNjU3IENhbXBmaXJlIFN0cmVldCcsIAogICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX2xpbmUyID0gJ1N1aXRlIDEwJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNpdHkgPSAnTmV3IFlvcmsnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeSA9ICdVUycsIAogICAgICAgICAgICAgICAgICAgICAgICBlbWFpbF9kb21haW5zID0gJ2ZpcmVibG9ja3MuY29tLGV4YW1wbGUuY29tJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHdlYnNpdGUgPSAnaHR0cHM6Ly9maXJlYmxvY2tzLmNvbScsIAogICAgICAgICAgICAgICAgICAgICAgICBsb2dvID0gJ2h0dHBzOi8vZmlyZWJsb2Nrcy5jb20vbG9nby5wbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbGVnYWxfc3RydWN0dXJlID0gJ0NPUlBPUkFUSU9OJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2FsX25hbWUgPSAnRmlyZWJsb2NrcyBJbmMuJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHllYXJfZm91bmRlZCA9ICcyMDE5JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGluY29ycG9yYXRpb25fY291bnRyeSA9ICdVUycsIAogICAgICAgICAgICAgICAgICAgICAgICBpc19yZWd1bGF0ZWQgPSAnWUVTJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyX25hbWVzID0gJ0ZpcmVibG9ja3MgVGVzdCBWQVNQJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpY2F0aW9uX3R5cGUgPSAnQnVzaW5lc3MgTGljZW5zZScsIAogICAgICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWNhdGlvbl9jb3VudHJ5ID0gJ1VTJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1c2luZXNzX251bWJlciA9ICcxMjM0NTY3ODknLCAKICAgICAgICAgICAgICAgICAgICAgICAgcmVndWxhdG9yeV9hdXRob3JpdGllcyA9ICdTRUMsIEZJTkNFTicsIAogICAgICAgICAgICAgICAgICAgICAgICBqdXJpc2RpY3Rpb25zID0gJ1VTLCBFVScsIAogICAgICAgICAgICAgICAgICAgICAgICBzdHJlZXQgPSAnV2FsbCBTdHJlZXQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gJzEwJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHVuaXQgPSAnQXB0IDJCJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfY29kZSA9ICcxMDAwNScsIAogICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9ICdOWScsIAogICAgICAgICAgICAgICAgICAgICAgICBjZXJ0aWZpY2F0ZXMgPSAnSVNPIDI3MDAxJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ0EgbGVhZGluZyBwcm92aWRlciBvZiBjcnlwdG8gc2VjdXJpdHkgc29sdXRpb25zLicsIAogICAgICAgICAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV9vcGVudmFzcCA9ICdhY3RpdmUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfc3lnbmEgPSAnaW5hY3RpdmUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfdHJpc2EgPSAncGVuZGluZycsIAogICAgICAgICAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV90cmxpZ2h0ID0gJ2FjdGl2ZScsIAogICAgICAgICAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV9lbWFpbCA9ICdpbmFjdGl2ZScsIAogICAgICAgICAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV90cnAgPSAnYWN0aXZlJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX3NoeWZ0ID0gJ2luYWN0aXZlJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX3VzdHJhdmVscnVsZXdnID0gJ3BlbmRpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZF9hdCA9ICcyMDIzLTA5LTE5VDEyOjIzOjU5LjcxMVonLCAKICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZF9ieSA9ICdhZG1pbicsIAogICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVkX2F0ID0gJzIwMjQtMDgtMjlUMDg6MjM6NTEuNDE2WicsIAogICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVkX2J5ID0gJ3N5c3RlbScsIAogICAgICAgICAgICAgICAgICAgICAgICBsYXN0X3NlbnRfZGF0ZSA9ICcyMDI0LTAzLTE4VDA5OjI2OjA3Ljk4OFonLCAKICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9yZWNlaXZlZF9kYXRlID0gJzIwMjQtMDMtMjBUMTE6NDU6MzAuMjEyWicsIAogICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudHMgPSAnWydsaWNlbnNlLnBkZicsICdjb21wbGlhbmNlLnBkZiddJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGhhc19hZG1pbiA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICBpc19ub3RpZmlhYmxlID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGlzc3VlcnMgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9pc3N1ZXJzLlRyYXZlbFJ1bGVJc3N1ZXJzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgeWVhcl9mb3VuZGVkID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfaXNzdWVyLlRyYXZlbFJ1bGVJc3N1ZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNzdWVyX2RpZCA9ICcnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX3JlZ3VsYXRlZCA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2lzc3Vlci5UcmF2ZWxSdWxlSXNzdWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzc3Vlcl9kaWQgPSAnJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWd1bGF0b3J5X2F1dGhvcml0aWVzID0gLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbyA9ICwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlID0gLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2FsX25hbWUgPSAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnYWxfc3RydWN0dXJlID0gLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY29ycG9yYXRpb25fY291bnRyeSA9ICwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXNpbmVzc19udW1iZXIgPSAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19saW5lMSA9ICwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXR5ID0gLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnkgPSAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAsICksICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRyYXZlbFJ1bGVHZXRBbGxWQVNQc1Jlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJhdmVsUnVsZUdldEFsbFZBU1BzUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_travel_rule_issuer.py b/test/test_travel_rule_issuer.py index 81b4edbe..eab38c94 100644 --- a/test/test_travel_rule_issuer.py +++ b/test/test_travel_rule_issuer.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_issuer import TravelRuleIssuer - - -class TestTravelRuleIssuer(unittest.TestCase): - """TravelRuleIssuer unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleIssuer: - """Test TravelRuleIssuer - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleIssuer` - """ - model = TravelRuleIssuer() - if include_optional: - return TravelRuleIssuer( - issuer_did = '' - ) - else: - return TravelRuleIssuer( - issuer_did = '', - ) - """ - - def testTravelRuleIssuer(self): - """Test TravelRuleIssuer""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2lzc3VlciBpbXBvcnQgVHJhdmVsUnVsZUlzc3VlcgoKCmNsYXNzIFRlc3RUcmF2ZWxSdWxlSXNzdWVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYXZlbFJ1bGVJc3N1ZXIgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRyYXZlbFJ1bGVJc3N1ZXI6CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlSXNzdWVyCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYXZlbFJ1bGVJc3N1ZXJgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUcmF2ZWxSdWxlSXNzdWVyKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZUlzc3VlcigKICAgICAgICAgICAgICAgIGlzc3Vlcl9kaWQgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRyYXZlbFJ1bGVJc3N1ZXIoCiAgICAgICAgICAgICAgICBpc3N1ZXJfZGlkID0gJycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhdmVsUnVsZUlzc3VlcihzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVJc3N1ZXIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_travel_rule_issuers.py b/test/test_travel_rule_issuers.py index bcbd5d0b..a4d33e51 100644 --- a/test/test_travel_rule_issuers.py +++ b/test/test_travel_rule_issuers.py @@ -1,109 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_issuers import TravelRuleIssuers - - -class TestTravelRuleIssuers(unittest.TestCase): - """TravelRuleIssuers unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleIssuers: - """Test TravelRuleIssuers - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleIssuers` - """ - model = TravelRuleIssuers() - if include_optional: - return TravelRuleIssuers( - year_founded = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - is_regulated = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - regulatory_authorities = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - name = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - logo = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - website = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - legal_name = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - legal_structure = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - incorporation_country = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - business_number = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - address_line1 = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - city = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - country = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - description = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ) - ) - else: - return TravelRuleIssuers( - year_founded = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - is_regulated = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - regulatory_authorities = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - name = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - logo = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - website = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - legal_name = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - legal_structure = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - incorporation_country = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - business_number = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - address_line1 = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - city = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - country = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - description = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - ) - """ - - def testTravelRuleIssuers(self): - """Test TravelRuleIssuers""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2lzc3VlcnMgaW1wb3J0IFRyYXZlbFJ1bGVJc3N1ZXJzCgoKY2xhc3MgVGVzdFRyYXZlbFJ1bGVJc3N1ZXJzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYXZlbFJ1bGVJc3N1ZXJzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUcmF2ZWxSdWxlSXNzdWVyczoKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVJc3N1ZXJzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYXZlbFJ1bGVJc3N1ZXJzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVHJhdmVsUnVsZUlzc3VlcnMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlSXNzdWVycygKICAgICAgICAgICAgICAgIHllYXJfZm91bmRlZCA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2lzc3Vlci5UcmF2ZWxSdWxlSXNzdWVyKAogICAgICAgICAgICAgICAgICAgIGlzc3Vlcl9kaWQgPSAnJywgKSwKICAgICAgICAgICAgICAgIGlzX3JlZ3VsYXRlZCA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2lzc3Vlci5UcmF2ZWxSdWxlSXNzdWVyKAogICAgICAgICAgICAgICAgICAgIGlzc3Vlcl9kaWQgPSAnJywgKSwKICAgICAgICAgICAgICAgIHJlZ3VsYXRvcnlfYXV0aG9yaXRpZXMgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9pc3N1ZXIuVHJhdmVsUnVsZUlzc3VlcigKICAgICAgICAgICAgICAgICAgICBpc3N1ZXJfZGlkID0gJycsICksCiAgICAgICAgICAgICAgICBuYW1lID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfaXNzdWVyLlRyYXZlbFJ1bGVJc3N1ZXIoCiAgICAgICAgICAgICAgICAgICAgaXNzdWVyX2RpZCA9ICcnLCApLAogICAgICAgICAgICAgICAgbG9nbyA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2lzc3Vlci5UcmF2ZWxSdWxlSXNzdWVyKAogICAgICAgICAgICAgICAgICAgIGlzc3Vlcl9kaWQgPSAnJywgKSwKICAgICAgICAgICAgICAgIHdlYnNpdGUgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9pc3N1ZXIuVHJhdmVsUnVsZUlzc3VlcigKICAgICAgICAgICAgICAgICAgICBpc3N1ZXJfZGlkID0gJycsICksCiAgICAgICAgICAgICAgICBsZWdhbF9uYW1lID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfaXNzdWVyLlRyYXZlbFJ1bGVJc3N1ZXIoCiAgICAgICAgICAgICAgICAgICAgaXNzdWVyX2RpZCA9ICcnLCApLAogICAgICAgICAgICAgICAgbGVnYWxfc3RydWN0dXJlID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfaXNzdWVyLlRyYXZlbFJ1bGVJc3N1ZXIoCiAgICAgICAgICAgICAgICAgICAgaXNzdWVyX2RpZCA9ICcnLCApLAogICAgICAgICAgICAgICAgaW5jb3Jwb3JhdGlvbl9jb3VudHJ5ID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfaXNzdWVyLlRyYXZlbFJ1bGVJc3N1ZXIoCiAgICAgICAgICAgICAgICAgICAgaXNzdWVyX2RpZCA9ICcnLCApLAogICAgICAgICAgICAgICAgYnVzaW5lc3NfbnVtYmVyID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfaXNzdWVyLlRyYXZlbFJ1bGVJc3N1ZXIoCiAgICAgICAgICAgICAgICAgICAgaXNzdWVyX2RpZCA9ICcnLCApLAogICAgICAgICAgICAgICAgYWRkcmVzc19saW5lMSA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2lzc3Vlci5UcmF2ZWxSdWxlSXNzdWVyKAogICAgICAgICAgICAgICAgICAgIGlzc3Vlcl9kaWQgPSAnJywgKSwKICAgICAgICAgICAgICAgIGNpdHkgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9pc3N1ZXIuVHJhdmVsUnVsZUlzc3VlcigKICAgICAgICAgICAgICAgICAgICBpc3N1ZXJfZGlkID0gJycsICksCiAgICAgICAgICAgICAgICBjb3VudHJ5ID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfaXNzdWVyLlRyYXZlbFJ1bGVJc3N1ZXIoCiAgICAgICAgICAgICAgICAgICAgaXNzdWVyX2RpZCA9ICcnLCApLAogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9pc3N1ZXIuVHJhdmVsUnVsZUlzc3VlcigKICAgICAgICAgICAgICAgICAgICBpc3N1ZXJfZGlkID0gJycsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlSXNzdWVycygKICAgICAgICAgICAgICAgIHllYXJfZm91bmRlZCA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2lzc3Vlci5UcmF2ZWxSdWxlSXNzdWVyKAogICAgICAgICAgICAgICAgICAgIGlzc3Vlcl9kaWQgPSAnJywgKSwKICAgICAgICAgICAgICAgIGlzX3JlZ3VsYXRlZCA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2lzc3Vlci5UcmF2ZWxSdWxlSXNzdWVyKAogICAgICAgICAgICAgICAgICAgIGlzc3Vlcl9kaWQgPSAnJywgKSwKICAgICAgICAgICAgICAgIHJlZ3VsYXRvcnlfYXV0aG9yaXRpZXMgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9pc3N1ZXIuVHJhdmVsUnVsZUlzc3VlcigKICAgICAgICAgICAgICAgICAgICBpc3N1ZXJfZGlkID0gJycsICksCiAgICAgICAgICAgICAgICBuYW1lID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfaXNzdWVyLlRyYXZlbFJ1bGVJc3N1ZXIoCiAgICAgICAgICAgICAgICAgICAgaXNzdWVyX2RpZCA9ICcnLCApLAogICAgICAgICAgICAgICAgbG9nbyA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2lzc3Vlci5UcmF2ZWxSdWxlSXNzdWVyKAogICAgICAgICAgICAgICAgICAgIGlzc3Vlcl9kaWQgPSAnJywgKSwKICAgICAgICAgICAgICAgIHdlYnNpdGUgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9pc3N1ZXIuVHJhdmVsUnVsZUlzc3VlcigKICAgICAgICAgICAgICAgICAgICBpc3N1ZXJfZGlkID0gJycsICksCiAgICAgICAgICAgICAgICBsZWdhbF9uYW1lID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfaXNzdWVyLlRyYXZlbFJ1bGVJc3N1ZXIoCiAgICAgICAgICAgICAgICAgICAgaXNzdWVyX2RpZCA9ICcnLCApLAogICAgICAgICAgICAgICAgbGVnYWxfc3RydWN0dXJlID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfaXNzdWVyLlRyYXZlbFJ1bGVJc3N1ZXIoCiAgICAgICAgICAgICAgICAgICAgaXNzdWVyX2RpZCA9ICcnLCApLAogICAgICAgICAgICAgICAgaW5jb3Jwb3JhdGlvbl9jb3VudHJ5ID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfaXNzdWVyLlRyYXZlbFJ1bGVJc3N1ZXIoCiAgICAgICAgICAgICAgICAgICAgaXNzdWVyX2RpZCA9ICcnLCApLAogICAgICAgICAgICAgICAgYnVzaW5lc3NfbnVtYmVyID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfaXNzdWVyLlRyYXZlbFJ1bGVJc3N1ZXIoCiAgICAgICAgICAgICAgICAgICAgaXNzdWVyX2RpZCA9ICcnLCApLAogICAgICAgICAgICAgICAgYWRkcmVzc19saW5lMSA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2lzc3Vlci5UcmF2ZWxSdWxlSXNzdWVyKAogICAgICAgICAgICAgICAgICAgIGlzc3Vlcl9kaWQgPSAnJywgKSwKICAgICAgICAgICAgICAgIGNpdHkgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9pc3N1ZXIuVHJhdmVsUnVsZUlzc3VlcigKICAgICAgICAgICAgICAgICAgICBpc3N1ZXJfZGlkID0gJycsICksCiAgICAgICAgICAgICAgICBjb3VudHJ5ID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfaXNzdWVyLlRyYXZlbFJ1bGVJc3N1ZXIoCiAgICAgICAgICAgICAgICAgICAgaXNzdWVyX2RpZCA9ICcnLCApLAogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9pc3N1ZXIuVHJhdmVsUnVsZUlzc3VlcigKICAgICAgICAgICAgICAgICAgICBpc3N1ZXJfZGlkID0gJycsICksCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhdmVsUnVsZUlzc3VlcnMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlSXNzdWVycyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_travel_rule_legal_person.py b/test/test_travel_rule_legal_person.py index aa86a1b7..f6a80c2a 100644 --- a/test/test_travel_rule_legal_person.py +++ b/test/test_travel_rule_legal_person.py @@ -1,83 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_legal_person import TravelRuleLegalPerson - - -class TestTravelRuleLegalPerson(unittest.TestCase): - """TravelRuleLegalPerson unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleLegalPerson: - """Test TravelRuleLegalPerson - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleLegalPerson` - """ - model = TravelRuleLegalPerson() - if include_optional: - return TravelRuleLegalPerson( - name = fireblocks.models.travel_rule_legal_person_name_identifier.TravelRuleLegalPersonNameIdentifier( - legal_person_name = 'QmVXXj5BJchhqQTU27uEkeghYMnxR6aVjZxJP9jS6uCg9Q', - legal_person_name_identifier_type = 'QmPevsa5xdkxf6Lgt7f9YweRBdgseeAkWVaYyssKF3Q86e', ), - geographic_address = [ - fireblocks.models.travel_rule_geographic_address.TravelRuleGeographicAddress( - street_name = 'QmZGXXsKPk5iPS97LLjXB5e8Qs555ocdzcpbPMXvt84Ji9', - town_name = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - country = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - building_number = 'QmUFpNkxdsVtebDSUz5eP51kzoysXmqj2gBgeH11PD7SVP', - post_code = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - address_type = 'Qmdr9LcChZsoivS6uAhe7Qk7cGLDAx73wBZTVvq4WoU71H', - department = 'QmN7fb65x5MyA7RKyhbXaUKvJ7U4Y9eqpEZTmJYpNyEG8', - sub_department = 'QmTkfyGh54tXNqFxyEGK9NyTJZYpQ6RZ9zpNykxykME8s', - building_name = 'QmXJfGk85t6RKyhbXaEK9Nz4MEeMKypq6EY9zpJyC9nM9', - floor = 'QmZP5G7fhZpMyQxXnT9KyR6ybXaEM9zpJy4ME9MkTJGE1', - post_box = 'QmTkfYRGK54xFqXyJYNZyE9kY9zpMKytJnXy5z9EME9sJ', - room = 'QmRYXnT9KyhbXaEMZpMyxMkZ9zpYNYTJ4ME5kCGE7fhMJ', - town_location_name = 'QmNpZTyXJXnT9K6EYZpQxYNYMkC5p4kGEfhnkMJzpYT9Jm', - district_name = 'QmT9p6ERKyNYXnTyhbpMYJ4zpYT9kMJZT9QmEMGZ5kMhCy', - country_sub_division = 'QmK9yTbXaZpMYJYTYp6NT9QmEMGZT9p9kMJfhyGE4Z7k5C', - address_line = ["QmNp9kMjfhGZ5kMJzpNYXZTy6NQmZYEMGZ4kZT9Y6pNYT"], ) - ], - national_identification = fireblocks.models.travel_rule_national_identification.TravelRuleNationalIdentification( - country_of_issue = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - national_identifier = 'QmdR6qLnZ7Kwf5cBaXG8QFQenEvRg9JNZeoPranVuGd63z', - national_identifier_type = 'QmUKTg3aFJFhMz1o9gPqA3MgTRwd2LvDLwWTPHYUoMEYVi', - registration_authority = 'QmV9KJMyT9RJzpYfhME5xNCZ4G67fEkzTpRMyJzp9kTNYk', ), - customer_identification = 'QmRY9AA4Uit2JRTxDzfzshrJdTK86Kf5HriA3dXDnihDmy', - customer_number = 'QmXvyML3AJUFpBbJqL5NVp7Vn7xNkuedTsSMk93duLCNW8', - country_of_registration = 'QmeoTk6UPruEAYNbJEAHdQYc53ap9BXmpnPMcuvs8wutdr' - ) - else: - return TravelRuleLegalPerson( - ) - """ - - def testTravelRuleLegalPerson(self): - """Test TravelRuleLegalPerson""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2xlZ2FsX3BlcnNvbiBpbXBvcnQgVHJhdmVsUnVsZUxlZ2FsUGVyc29uCgoKY2xhc3MgVGVzdFRyYXZlbFJ1bGVMZWdhbFBlcnNvbih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmF2ZWxSdWxlTGVnYWxQZXJzb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRyYXZlbFJ1bGVMZWdhbFBlcnNvbjoKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVMZWdhbFBlcnNvbgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmF2ZWxSdWxlTGVnYWxQZXJzb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUcmF2ZWxSdWxlTGVnYWxQZXJzb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlTGVnYWxQZXJzb24oCiAgICAgICAgICAgICAgICBuYW1lID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbGVnYWxfcGVyc29uX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICBsZWdhbF9wZXJzb25fbmFtZSA9ICdRbVZYWGo1QkpjaGhxUVRVMjd1RWtlZ2hZTW54UjZhVmpaeEpQOWpTNnVDZzlRJywgCiAgICAgICAgICAgICAgICAgICAgbGVnYWxfcGVyc29uX25hbWVfaWRlbnRpZmllcl90eXBlID0gJ1FtUGV2c2E1eGRreGY2TGd0N2Y5WXdlUkJkZ3NlZUFrV1ZhWXlzc0tGM1E4NmUnLCApLAogICAgICAgICAgICAgICAgZ2VvZ3JhcGhpY19hZGRyZXNzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2dlb2dyYXBoaWNfYWRkcmVzcy5UcmF2ZWxSdWxlR2VvZ3JhcGhpY0FkZHJlc3MoCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVldF9uYW1lID0gJ1FtWkdYWHNLUGs1aVBTOTdMTGpYQjVlOFFzNTU1b2NkemNwYlBNWHZ0ODRKaTknLCAKICAgICAgICAgICAgICAgICAgICAgICAgdG93bl9uYW1lID0gJ1FtTmtFdDlWZG5oamVmUU1YbzNaYVpBczc2NXVnb1dpYXphcWNZOXNrSE1qQ3QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeSA9ICdRbVJHSGRveFFmU2k2dGV2eXZhWUd6czhCVlN0ZnFKcUV5ck1ZcVVmelh4a21tJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nX251bWJlciA9ICdRbVVGcE5reGRzVnRlYkRTVXo1ZVA1MWt6b3lzWG1xajJnQmdlSDExUEQ3U1ZQJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfY29kZSA9ICdRbVRKc0szc2MzZlBFVnd2QXA5N1VVaVZvRmhqelFoWVgzc0NkYTFKeHVDblhqJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfdHlwZSA9ICdRbWRyOUxjQ2hac29pdlM2dUFoZTdRazdjR0xEQXg3M3dCWlRWdnE0V29VNzFIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlcGFydG1lbnQgPSAnUW1ON2ZiNjV4NU15QTdSS3loYlhhVUt2SjdVNFk5ZXFwRVpUbUpZcE55RUc4JywgCiAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl9kZXBhcnRtZW50ID0gJ1FtVGtmeUdoNTR0WE5xRnh5RUdLOU55VEpaWXBRNlJaOXpwTnlreHlrTUU4cycsIAogICAgICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19uYW1lID0gJ1FtWEpmR2s4NXQ2Ukt5aGJYYUVLOU56NE1FZU1LeXBxNkVZOXpwSnlDOW5NOScsIAogICAgICAgICAgICAgICAgICAgICAgICBmbG9vciA9ICdRbVpQNUc3ZmhacE15UXhYblQ5S3lSNnliWGFFTTl6cEp5NE1FOU1rVEpHRTEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcG9zdF9ib3ggPSAnUW1Ua2ZZUkdLNTR4RnFYeUpZTlp5RTlrWTl6cE1LeXRKblh5NXo5RU1FOXNKJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHJvb20gPSAnUW1SWVhuVDlLeWhiWGFFTVpwTXl4TWtaOXpwWU5ZVEo0TUU1a0NHRTdmaE1KJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRvd25fbG9jYXRpb25fbmFtZSA9ICdRbU5wWlR5WEpYblQ5SzZFWVpwUXhZTllNa0M1cDRrR0VmaG5rTUp6cFlUOUptJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RyaWN0X25hbWUgPSAnUW1UOXA2RVJLeU5ZWG5UeWhicE1ZSjR6cFlUOWtNSlpUOVFtRU1HWjVrTWhDeScsIAogICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X3N1Yl9kaXZpc2lvbiA9ICdRbUs5eVRiWGFacE1ZSllUWXA2TlQ5UW1FTUdaVDlwOWtNSmZoeUdFNFo3azVDJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfbGluZSA9IFsiUW1OcDlrTWpmaEdaNWtNSnpwTllYWlR5Nk5RbVpZRU1HWjRrWlQ5WTZwTllUIl0sICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmljYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXRpb25hbF9pZGVudGlmaWNhdGlvbi5UcmF2ZWxSdWxlTmF0aW9uYWxJZGVudGlmaWNhdGlvbigKICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX2lzc3VlID0gJ1FtUkdIZG94UWZTaTZ0ZXZ5dmFZR3pzOEJWU3RmcUpxRXlyTVlxVWZ6WHhrbW0nLCAKICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWVyID0gJ1FtZFI2cUxuWjdLd2Y1Y0JhWEc4UUZRZW5FdlJnOUpOWmVvUHJhblZ1R2Q2M3onLCAKICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWVyX3R5cGUgPSAnUW1VS1RnM2FGSkZoTXoxbzlnUHFBM01nVFJ3ZDJMdkRMd1dUUEhZVW9NRVlWaScsIAogICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbl9hdXRob3JpdHkgPSAnUW1WOUtKTXlUOVJKenBZZmhNRTV4TkNaNEc2N2ZFa3pUcFJNeUp6cDlrVE5ZaycsICksCiAgICAgICAgICAgICAgICBjdXN0b21lcl9pZGVudGlmaWNhdGlvbiA9ICdRbVJZOUFBNFVpdDJKUlR4RHpmenNockpkVEs4NktmNUhyaUEzZFhEbmloRG15JywKICAgICAgICAgICAgICAgIGN1c3RvbWVyX251bWJlciA9ICdRbVh2eU1MM0FKVUZwQmJKcUw1TlZwN1ZuN3hOa3VlZFRzU01rOTNkdUxDTlc4JywKICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfcmVnaXN0cmF0aW9uID0gJ1FtZW9UazZVUHJ1RUFZTmJKRUFIZFFZYzUzYXA5QlhtcG5QTWN1dnM4d3V0ZHInCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZUxlZ2FsUGVyc29uKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRyYXZlbFJ1bGVMZWdhbFBlcnNvbihzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVMZWdhbFBlcnNvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_travel_rule_legal_person_name_identifier.py b/test/test_travel_rule_legal_person_name_identifier.py index 2037d649..6cd13ab9 100644 --- a/test/test_travel_rule_legal_person_name_identifier.py +++ b/test/test_travel_rule_legal_person_name_identifier.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_legal_person_name_identifier import ( - TravelRuleLegalPersonNameIdentifier, -) - - -class TestTravelRuleLegalPersonNameIdentifier(unittest.TestCase): - """TravelRuleLegalPersonNameIdentifier unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleLegalPersonNameIdentifier: - """Test TravelRuleLegalPersonNameIdentifier - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleLegalPersonNameIdentifier` - """ - model = TravelRuleLegalPersonNameIdentifier() - if include_optional: - return TravelRuleLegalPersonNameIdentifier( - legal_person_name = 'QmVXXj5BJchhqQTU27uEkeghYMnxR6aVjZxJP9jS6uCg9Q', - legal_person_name_identifier_type = 'QmPevsa5xdkxf6Lgt7f9YweRBdgseeAkWVaYyssKF3Q86e' - ) - else: - return TravelRuleLegalPersonNameIdentifier( - ) - """ - - def testTravelRuleLegalPersonNameIdentifier(self): - """Test TravelRuleLegalPersonNameIdentifier""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2xlZ2FsX3BlcnNvbl9uYW1lX2lkZW50aWZpZXIgaW1wb3J0ICgKICAgIFRyYXZlbFJ1bGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyLAopCgoKY2xhc3MgVGVzdFRyYXZlbFJ1bGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYXZlbFJ1bGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUcmF2ZWxSdWxlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllcjoKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYXZlbFJ1bGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVHJhdmVsUnVsZUxlZ2FsUGVyc29uTmFtZUlkZW50aWZpZXIoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgIGxlZ2FsX3BlcnNvbl9uYW1lID0gJ1FtVlhYajVCSmNoaHFRVFUyN3VFa2VnaFlNbnhSNmFWalp4SlA5alM2dUNnOVEnLAogICAgICAgICAgICAgICAgbGVnYWxfcGVyc29uX25hbWVfaWRlbnRpZmllcl90eXBlID0gJ1FtUGV2c2E1eGRreGY2TGd0N2Y5WXdlUkJkZ3NlZUFrV1ZhWXlzc0tGM1E4NmUnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZUxlZ2FsUGVyc29uTmFtZUlkZW50aWZpZXIoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhdmVsUnVsZUxlZ2FsUGVyc29uTmFtZUlkZW50aWZpZXIoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllciIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_travel_rule_matched_rule.py b/test/test_travel_rule_matched_rule.py index aa7290c1..335ee88a 100644 --- a/test/test_travel_rule_matched_rule.py +++ b/test/test_travel_rule_matched_rule.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_matched_rule import TravelRuleMatchedRule - - -class TestTravelRuleMatchedRule(unittest.TestCase): - """TravelRuleMatchedRule unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleMatchedRule: - """Test TravelRuleMatchedRule - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleMatchedRule` - """ - model = TravelRuleMatchedRule() - if include_optional: - return TravelRuleMatchedRule( - direction = 'OUTBOUND', - status = 'COMPLETED', - amount_usd = 1000.5, - amount = 0.025, - asset = 'BTC', - action = 'ACCEPT' - ) - else: - return TravelRuleMatchedRule( - ) - """ - - def testTravelRuleMatchedRule(self): - """Test TravelRuleMatchedRule""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX21hdGNoZWRfcnVsZSBpbXBvcnQgVHJhdmVsUnVsZU1hdGNoZWRSdWxlCgoKY2xhc3MgVGVzdFRyYXZlbFJ1bGVNYXRjaGVkUnVsZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRyYXZlbFJ1bGVNYXRjaGVkUnVsZToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVNYXRjaGVkUnVsZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGVgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGUoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGUoCiAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ0NPTVBMRVRFRCcsCiAgICAgICAgICAgICAgICBhbW91bnRfdXNkID0gMTAwMC41LAogICAgICAgICAgICAgICAgYW1vdW50ID0gMC4wMjUsCiAgICAgICAgICAgICAgICBhc3NldCA9ICdCVEMnLAogICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FDQ0VQVCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlTWF0Y2hlZFJ1bGUoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhdmVsUnVsZU1hdGNoZWRSdWxlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJhdmVsUnVsZU1hdGNoZWRSdWxlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_travel_rule_national_identification.py b/test/test_travel_rule_national_identification.py index fabd7f3f..07d6c2a0 100644 --- a/test/test_travel_rule_national_identification.py +++ b/test/test_travel_rule_national_identification.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_national_identification import ( - TravelRuleNationalIdentification, -) - - -class TestTravelRuleNationalIdentification(unittest.TestCase): - """TravelRuleNationalIdentification unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleNationalIdentification: - """Test TravelRuleNationalIdentification - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleNationalIdentification` - """ - model = TravelRuleNationalIdentification() - if include_optional: - return TravelRuleNationalIdentification( - country_of_issue = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - national_identifier = 'QmdR6qLnZ7Kwf5cBaXG8QFQenEvRg9JNZeoPranVuGd63z', - national_identifier_type = 'QmUKTg3aFJFhMz1o9gPqA3MgTRwd2LvDLwWTPHYUoMEYVi', - registration_authority = 'QmV9KJMyT9RJzpYfhME5xNCZ4G67fEkzTpRMyJzp9kTNYk' - ) - else: - return TravelRuleNationalIdentification( - ) - """ - - def testTravelRuleNationalIdentification(self): - """Test TravelRuleNationalIdentification""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdGlvbmFsX2lkZW50aWZpY2F0aW9uIGltcG9ydCAoCiAgICBUcmF2ZWxSdWxlTmF0aW9uYWxJZGVudGlmaWNhdGlvbiwKKQoKCmNsYXNzIFRlc3RUcmF2ZWxSdWxlTmF0aW9uYWxJZGVudGlmaWNhdGlvbih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmF2ZWxSdWxlTmF0aW9uYWxJZGVudGlmaWNhdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhdmVsUnVsZU5hdGlvbmFsSWRlbnRpZmljYXRpb246CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlTmF0aW9uYWxJZGVudGlmaWNhdGlvbgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmF2ZWxSdWxlTmF0aW9uYWxJZGVudGlmaWNhdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYXZlbFJ1bGVOYXRpb25hbElkZW50aWZpY2F0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZU5hdGlvbmFsSWRlbnRpZmljYXRpb24oCiAgICAgICAgICAgICAgICBjb3VudHJ5X29mX2lzc3VlID0gJ1FtUkdIZG94UWZTaTZ0ZXZ5dmFZR3pzOEJWU3RmcUpxRXlyTVlxVWZ6WHhrbW0nLAogICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmllciA9ICdRbWRSNnFMblo3S3dmNWNCYVhHOFFGUWVuRXZSZzlKTlplb1ByYW5WdUdkNjN6JywKICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSA9ICdRbVVLVGczYUZKRmhNejFvOWdQcUEzTWdUUndkMkx2REx3V1RQSFlVb01FWVZpJywKICAgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbl9hdXRob3JpdHkgPSAnUW1WOUtKTXlUOVJKenBZZmhNRTV4TkNaNEc2N2ZFa3pUcFJNeUp6cDlrVE5ZaycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlTmF0aW9uYWxJZGVudGlmaWNhdGlvbigKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmF2ZWxSdWxlTmF0aW9uYWxJZGVudGlmaWNhdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVOYXRpb25hbElkZW50aWZpY2F0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_travel_rule_natural_name_identifier.py b/test/test_travel_rule_natural_name_identifier.py index 68a3b000..876f5542 100644 --- a/test/test_travel_rule_natural_name_identifier.py +++ b/test/test_travel_rule_natural_name_identifier.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_natural_name_identifier import ( - TravelRuleNaturalNameIdentifier, -) - - -class TestTravelRuleNaturalNameIdentifier(unittest.TestCase): - """TravelRuleNaturalNameIdentifier unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleNaturalNameIdentifier: - """Test TravelRuleNaturalNameIdentifier - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleNaturalNameIdentifier` - """ - model = TravelRuleNaturalNameIdentifier() - if include_optional: - return TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv' - ) - else: - return TravelRuleNaturalNameIdentifier( - ) - """ - - def testTravelRuleNaturalNameIdentifier(self): - """Test TravelRuleNaturalNameIdentifier""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyIGltcG9ydCAoCiAgICBUcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyLAopCgoKY2xhc3MgVGVzdFRyYXZlbFJ1bGVOYXR1cmFsTmFtZUlkZW50aWZpZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllciB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllcjoKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVOYXR1cmFsTmFtZUlkZW50aWZpZXIKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllcmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYXZlbFJ1bGVOYXR1cmFsTmFtZUlkZW50aWZpZXIoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgcHJpbWFyeV9pZGVudGlmaWVyID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLAogICAgICAgICAgICAgICAgc2Vjb25kYXJ5X2lkZW50aWZpZXIgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsCiAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXJfdHlwZSA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRyYXZlbFJ1bGVOYXR1cmFsTmFtZUlkZW50aWZpZXIoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllcihzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVOYXR1cmFsTmFtZUlkZW50aWZpZXIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_travel_rule_natural_person.py b/test/test_travel_rule_natural_person.py index 8e8b01eb..0fd842f8 100644 --- a/test/test_travel_rule_natural_person.py +++ b/test/test_travel_rule_natural_person.py @@ -1,101 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_natural_person import TravelRuleNaturalPerson - - -class TestTravelRuleNaturalPerson(unittest.TestCase): - """TravelRuleNaturalPerson unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleNaturalPerson: - """Test TravelRuleNaturalPerson - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleNaturalPerson` - """ - model = TravelRuleNaturalPerson() - if include_optional: - return TravelRuleNaturalPerson( - name = [ - fireblocks.models.travel_rule_natural_person_name_identifier.TravelRuleNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - phonetic_name_identifier = [ - - ], ) - ], - geographic_address = [ - fireblocks.models.travel_rule_geographic_address.TravelRuleGeographicAddress( - street_name = 'QmZGXXsKPk5iPS97LLjXB5e8Qs555ocdzcpbPMXvt84Ji9', - town_name = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - country = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - building_number = 'QmUFpNkxdsVtebDSUz5eP51kzoysXmqj2gBgeH11PD7SVP', - post_code = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - address_type = 'Qmdr9LcChZsoivS6uAhe7Qk7cGLDAx73wBZTVvq4WoU71H', - department = 'QmN7fb65x5MyA7RKyhbXaUKvJ7U4Y9eqpEZTmJYpNyEG8', - sub_department = 'QmTkfyGh54tXNqFxyEGK9NyTJZYpQ6RZ9zpNykxykME8s', - building_name = 'QmXJfGk85t6RKyhbXaEK9Nz4MEeMKypq6EY9zpJyC9nM9', - floor = 'QmZP5G7fhZpMyQxXnT9KyR6ybXaEM9zpJy4ME9MkTJGE1', - post_box = 'QmTkfYRGK54xFqXyJYNZyE9kY9zpMKytJnXy5z9EME9sJ', - room = 'QmRYXnT9KyhbXaEMZpMyxMkZ9zpYNYTJ4ME5kCGE7fhMJ', - town_location_name = 'QmNpZTyXJXnT9K6EYZpQxYNYMkC5p4kGEfhnkMJzpYT9Jm', - district_name = 'QmT9p6ERKyNYXnTyhbpMYJ4zpYT9kMJZT9QmEMGZ5kMhCy', - country_sub_division = 'QmK9yTbXaZpMYJYTYp6NT9QmEMGZT9p9kMJfhyGE4Z7k5C', - address_line = ["QmNp9kMjfhGZ5kMJzpNYXZTy6NQmZYEMGZ4kZT9Y6pNYT"], ) - ], - national_identification = fireblocks.models.travel_rule_national_identification.TravelRuleNationalIdentification( - country_of_issue = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - national_identifier = 'QmdR6qLnZ7Kwf5cBaXG8QFQenEvRg9JNZeoPranVuGd63z', - national_identifier_type = 'QmUKTg3aFJFhMz1o9gPqA3MgTRwd2LvDLwWTPHYUoMEYVi', - registration_authority = 'QmV9KJMyT9RJzpYfhME5xNCZ4G67fEkzTpRMyJzp9kTNYk', ), - date_and_place_of_birth = fireblocks.models.travel_rule_date_and_place_of_birth.TravelRuleDateAndPlaceOfBirth( - date_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - place_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', ), - customer_identification = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - country_of_residence = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - customer_number = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj' - ) - else: - return TravelRuleNaturalPerson( - ) - """ - - def testTravelRuleNaturalPerson(self): - """Test TravelRuleNaturalPerson""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uIGltcG9ydCBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbgoKCmNsYXNzIFRlc3RUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhdmVsUnVsZU5hdHVyYWxQZXJzb246CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZU5hdHVyYWxQZXJzb24oCiAgICAgICAgICAgICAgICBuYW1lID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlfaWRlbnRpZmllciA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5X2lkZW50aWZpZXIgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllcl90eXBlID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxfbmFtZV9pZGVudGlmaWVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9uYW1lX2lkZW50aWZpZXIuVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2lkZW50aWZpZXIgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeV9pZGVudGlmaWVyID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXJfdHlwZSA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHBob25ldGljX25hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBnZW9ncmFwaGljX2FkZHJlc3MgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfZ2VvZ3JhcGhpY19hZGRyZXNzLlRyYXZlbFJ1bGVHZW9ncmFwaGljQWRkcmVzcygKICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWV0X25hbWUgPSAnUW1aR1hYc0tQazVpUFM5N0xMalhCNWU4UXM1NTVvY2R6Y3BiUE1YdnQ4NEppOScsIAogICAgICAgICAgICAgICAgICAgICAgICB0b3duX25hbWUgPSAnUW1Oa0V0OVZkbmhqZWZRTVhvM1phWkFzNzY1dWdvV2lhemFxY1k5c2tITWpDdCcsIAogICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5ID0gJ1FtUkdIZG94UWZTaTZ0ZXZ5dmFZR3pzOEJWU3RmcUpxRXlyTVlxVWZ6WHhrbW0nLCAKICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRpbmdfbnVtYmVyID0gJ1FtVUZwTmt4ZHNWdGViRFNVejVlUDUxa3pveXNYbXFqMmdCZ2VIMTFQRDdTVlAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcG9zdF9jb2RlID0gJ1FtVEpzSzNzYzNmUEVWd3ZBcDk3VVVpVm9GaGp6UWhZWDNzQ2RhMUp4dUNuWGonLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc190eXBlID0gJ1FtZHI5TGNDaFpzb2l2UzZ1QWhlN1FrN2NHTERBeDczd0JaVFZ2cTRXb1U3MUgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVwYXJ0bWVudCA9ICdRbU43ZmI2NXg1TXlBN1JLeWhiWGFVS3ZKN1U0WTllcXBFWlRtSllwTnlFRzgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3ViX2RlcGFydG1lbnQgPSAnUW1Ua2Z5R2g1NHRYTnFGeHlFR0s5TnlUSlpZcFE2Ulo5enBOeWt4eWtNRThzJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nX25hbWUgPSAnUW1YSmZHazg1dDZSS3loYlhhRUs5Tno0TUVlTUt5cHE2RVk5enBKeUM5bk05JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGZsb29yID0gJ1FtWlA1RzdmaFpwTXlReFhuVDlLeVI2eWJYYUVNOXpwSnk0TUU5TWtUSkdFMScsIAogICAgICAgICAgICAgICAgICAgICAgICBwb3N0X2JveCA9ICdRbVRrZllSR0s1NHhGcVh5SllOWnlFOWtZOXpwTUt5dEpuWHk1ejlFTUU5c0onLCAKICAgICAgICAgICAgICAgICAgICAgICAgcm9vbSA9ICdRbVJZWG5UOUt5aGJYYUVNWnBNeXhNa1o5enBZTllUSjRNRTVrQ0dFN2ZoTUonLCAKICAgICAgICAgICAgICAgICAgICAgICAgdG93bl9sb2NhdGlvbl9uYW1lID0gJ1FtTnBaVHlYSlhuVDlLNkVZWnBReFlOWU1rQzVwNGtHRWZobmtNSnpwWVQ5Sm0nLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGlzdHJpY3RfbmFtZSA9ICdRbVQ5cDZFUkt5TllYblR5aGJwTVlKNHpwWVQ5a01KWlQ5UW1FTUdaNWtNaEN5JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfc3ViX2RpdmlzaW9uID0gJ1FtSzl5VGJYYVpwTVlKWVRZcDZOVDlRbUVNR1pUOXA5a01KZmh5R0U0WjdrNUMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19saW5lID0gWyJRbU5wOWtNamZoR1o1a01KenBOWVhaVHk2TlFtWllFTUdaNGtaVDlZNnBOWVQiXSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWNhdGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdGlvbmFsX2lkZW50aWZpY2F0aW9uLlRyYXZlbFJ1bGVOYXRpb25hbElkZW50aWZpY2F0aW9uKAogICAgICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfaXNzdWUgPSAnUW1SR0hkb3hRZlNpNnRldnl2YVlHenM4QlZTdGZxSnFFeXJNWXFVZnpYeGttbScsIAogICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpZXIgPSAnUW1kUjZxTG5aN0t3ZjVjQmFYRzhRRlFlbkV2Umc5Sk5aZW9QcmFuVnVHZDYzeicsIAogICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSA9ICdRbVVLVGczYUZKRmhNejFvOWdQcUEzTWdUUndkMkx2REx3V1RQSFlVb01FWVZpJywgCiAgICAgICAgICAgICAgICAgICAgcmVnaXN0cmF0aW9uX2F1dGhvcml0eSA9ICdRbVY5S0pNeVQ5Ukp6cFlmaE1FNXhOQ1o0RzY3ZkVrelRwUk15SnpwOWtUTllrJywgKSwKICAgICAgICAgICAgICAgIGRhdGVfYW5kX3BsYWNlX29mX2JpcnRoID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGguVHJhdmVsUnVsZURhdGVBbmRQbGFjZU9mQmlydGgoCiAgICAgICAgICAgICAgICAgICAgZGF0ZV9vZl9iaXJ0aCA9ICdRbU5rRXQ5VmRuaGplZlFNWG8zWmFaQXM3NjV1Z29XaWF6YXFjWTlza0hNakN0JywgCiAgICAgICAgICAgICAgICAgICAgcGxhY2Vfb2ZfYmlydGggPSAnUW1Oa0V0OVZkbmhqZWZRTVhvM1phWkFzNzY1dWdvV2lhemFxY1k5c2tITWpDdCcsICksCiAgICAgICAgICAgICAgICBjdXN0b21lcl9pZGVudGlmaWNhdGlvbiA9ICdRbVRKc0szc2MzZlBFVnd2QXA5N1VVaVZvRmhqelFoWVgzc0NkYTFKeHVDblhqJywKICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfcmVzaWRlbmNlID0gJ1FtVEpzSzNzYzNmUEVWd3ZBcDk3VVVpVm9GaGp6UWhZWDNzQ2RhMUp4dUNuWGonLAogICAgICAgICAgICAgICAgY3VzdG9tZXJfbnVtYmVyID0gJ1FtVEpzSzNzYzNmUEVWd3ZBcDk3VVVpVm9GaGp6UWhZWDNzQ2RhMUp4dUNuWGonCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZU5hdHVyYWxQZXJzb24oCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhdmVsUnVsZU5hdHVyYWxQZXJzb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_travel_rule_natural_person_name_identifier.py b/test/test_travel_rule_natural_person_name_identifier.py index cdbefc5e..17f067f4 100644 --- a/test/test_travel_rule_natural_person_name_identifier.py +++ b/test/test_travel_rule_natural_person_name_identifier.py @@ -1,73 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_natural_person_name_identifier import ( - TravelRuleNaturalPersonNameIdentifier, -) - - -class TestTravelRuleNaturalPersonNameIdentifier(unittest.TestCase): - """TravelRuleNaturalPersonNameIdentifier unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleNaturalPersonNameIdentifier: - """Test TravelRuleNaturalPersonNameIdentifier - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleNaturalPersonNameIdentifier` - """ - model = TravelRuleNaturalPersonNameIdentifier() - if include_optional: - return TravelRuleNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - phonetic_name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ] - ) - else: - return TravelRuleNaturalPersonNameIdentifier( - ) - """ - - def testTravelRuleNaturalPersonNameIdentifier(self): - """Test TravelRuleNaturalPersonNameIdentifier""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uX25hbWVfaWRlbnRpZmllciBpbXBvcnQgKAogICAgVHJhdmVsUnVsZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllciwKKQoKCmNsYXNzIFRlc3RUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXI6CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXJgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2lkZW50aWZpZXIgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsIAogICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlfaWRlbnRpZmllciA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllcl90eXBlID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGxvY2FsX25hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2lkZW50aWZpZXIgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsIAogICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlfaWRlbnRpZmllciA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllcl90eXBlID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHBob25ldGljX25hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2lkZW50aWZpZXIgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsIAogICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlfaWRlbnRpZmllciA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllcl90eXBlID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCApCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhdmVsUnVsZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllcihzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_travel_rule_ownership_proof.py b/test/test_travel_rule_ownership_proof.py index 263f040b..f9209c2d 100644 --- a/test/test_travel_rule_ownership_proof.py +++ b/test/test_travel_rule_ownership_proof.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_ownership_proof import TravelRuleOwnershipProof - - -class TestTravelRuleOwnershipProof(unittest.TestCase): - """TravelRuleOwnershipProof unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleOwnershipProof: - """Test TravelRuleOwnershipProof - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleOwnershipProof` - """ - model = TravelRuleOwnershipProof() - if include_optional: - return TravelRuleOwnershipProof( - type = 'eip-191', - proof = '0x3dd4a17a...ce4a2bcd1b', - attestation = 'I certify that ETH account 0x896B...0b9b belongs to me.', - address = '0x896B...0b9b', - wallet_provider = 'Metamask', - url = 'https://example.com/uploaded_image.png', - confirmed = True - ) - else: - return TravelRuleOwnershipProof( - ) - """ - - def testTravelRuleOwnershipProof(self): - """Test TravelRuleOwnershipProof""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX293bmVyc2hpcF9wcm9vZiBpbXBvcnQgVHJhdmVsUnVsZU93bmVyc2hpcFByb29mCgoKY2xhc3MgVGVzdFRyYXZlbFJ1bGVPd25lcnNoaXBQcm9vZih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2YgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRyYXZlbFJ1bGVPd25lcnNoaXBQcm9vZjoKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVPd25lcnNoaXBQcm9vZgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2ZgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2YoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2YoCiAgICAgICAgICAgICAgICB0eXBlID0gJ2VpcC0xOTEnLAogICAgICAgICAgICAgICAgcHJvb2YgPSAnMHgzZGQ0YTE3YS4uLmNlNGEyYmNkMWInLAogICAgICAgICAgICAgICAgYXR0ZXN0YXRpb24gPSAnSSBjZXJ0aWZ5IHRoYXQgRVRIIGFjY291bnQgMHg4OTZCLi4uMGI5YiBiZWxvbmdzIHRvIG1lLicsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzB4ODk2Qi4uLjBiOWInLAogICAgICAgICAgICAgICAgd2FsbGV0X3Byb3ZpZGVyID0gJ01ldGFtYXNrJywKICAgICAgICAgICAgICAgIHVybCA9ICdodHRwczovL2V4YW1wbGUuY29tL3VwbG9hZGVkX2ltYWdlLnBuZycsCiAgICAgICAgICAgICAgICBkaWQgPSAnZGlkOmtleTp6Nk1rZjEyMzQ1WmFiY2RlZjEyMzQ1JywKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICd2ZXJpZmllZCcsCiAgICAgICAgICAgICAgICBjb25maXJtZWQgPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZU93bmVyc2hpcFByb29mKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRyYXZlbFJ1bGVPd25lcnNoaXBQcm9vZihzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVPd25lcnNoaXBQcm9vZiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_travel_rule_person.py b/test/test_travel_rule_person.py index 63f45d2a..85bb4f7c 100644 --- a/test/test_travel_rule_person.py +++ b/test/test_travel_rule_person.py @@ -1,133 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_person import TravelRulePerson - - -class TestTravelRulePerson(unittest.TestCase): - """TravelRulePerson unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRulePerson: - """Test TravelRulePerson - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRulePerson` - """ - model = TravelRulePerson() - if include_optional: - return TravelRulePerson( - natural_person = fireblocks.models.travel_rule_natural_person.TravelRuleNaturalPerson( - name = [ - fireblocks.models.travel_rule_natural_person_name_identifier.TravelRuleNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - phonetic_name_identifier = [ - - ], ) - ], - geographic_address = [ - fireblocks.models.travel_rule_geographic_address.TravelRuleGeographicAddress( - street_name = 'QmZGXXsKPk5iPS97LLjXB5e8Qs555ocdzcpbPMXvt84Ji9', - town_name = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - country = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - building_number = 'QmUFpNkxdsVtebDSUz5eP51kzoysXmqj2gBgeH11PD7SVP', - post_code = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - address_type = 'Qmdr9LcChZsoivS6uAhe7Qk7cGLDAx73wBZTVvq4WoU71H', - department = 'QmN7fb65x5MyA7RKyhbXaUKvJ7U4Y9eqpEZTmJYpNyEG8', - sub_department = 'QmTkfyGh54tXNqFxyEGK9NyTJZYpQ6RZ9zpNykxykME8s', - building_name = 'QmXJfGk85t6RKyhbXaEK9Nz4MEeMKypq6EY9zpJyC9nM9', - floor = 'QmZP5G7fhZpMyQxXnT9KyR6ybXaEM9zpJy4ME9MkTJGE1', - post_box = 'QmTkfYRGK54xFqXyJYNZyE9kY9zpMKytJnXy5z9EME9sJ', - room = 'QmRYXnT9KyhbXaEMZpMyxMkZ9zpYNYTJ4ME5kCGE7fhMJ', - town_location_name = 'QmNpZTyXJXnT9K6EYZpQxYNYMkC5p4kGEfhnkMJzpYT9Jm', - district_name = 'QmT9p6ERKyNYXnTyhbpMYJ4zpYT9kMJZT9QmEMGZ5kMhCy', - country_sub_division = 'QmK9yTbXaZpMYJYTYp6NT9QmEMGZT9p9kMJfhyGE4Z7k5C', - address_line = ["QmNp9kMjfhGZ5kMJzpNYXZTy6NQmZYEMGZ4kZT9Y6pNYT"], ) - ], - national_identification = fireblocks.models.travel_rule_national_identification.TravelRuleNationalIdentification( - country_of_issue = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - national_identifier = 'QmdR6qLnZ7Kwf5cBaXG8QFQenEvRg9JNZeoPranVuGd63z', - national_identifier_type = 'QmUKTg3aFJFhMz1o9gPqA3MgTRwd2LvDLwWTPHYUoMEYVi', - registration_authority = 'QmV9KJMyT9RJzpYfhME5xNCZ4G67fEkzTpRMyJzp9kTNYk', ), - date_and_place_of_birth = fireblocks.models.travel_rule_date_and_place_of_birth.TravelRuleDateAndPlaceOfBirth( - date_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - place_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', ), - customer_identification = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - country_of_residence = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - customer_number = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', ), - legal_person = fireblocks.models.travel_rule_legal_person.TravelRuleLegalPerson( - name = fireblocks.models.travel_rule_legal_person_name_identifier.TravelRuleLegalPersonNameIdentifier( - legal_person_name = 'QmVXXj5BJchhqQTU27uEkeghYMnxR6aVjZxJP9jS6uCg9Q', - legal_person_name_identifier_type = 'QmPevsa5xdkxf6Lgt7f9YweRBdgseeAkWVaYyssKF3Q86e', ), - geographic_address = [ - fireblocks.models.travel_rule_geographic_address.TravelRuleGeographicAddress( - street_name = 'QmZGXXsKPk5iPS97LLjXB5e8Qs555ocdzcpbPMXvt84Ji9', - town_name = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - country = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - building_number = 'QmUFpNkxdsVtebDSUz5eP51kzoysXmqj2gBgeH11PD7SVP', - post_code = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - address_type = 'Qmdr9LcChZsoivS6uAhe7Qk7cGLDAx73wBZTVvq4WoU71H', - department = 'QmN7fb65x5MyA7RKyhbXaUKvJ7U4Y9eqpEZTmJYpNyEG8', - sub_department = 'QmTkfyGh54tXNqFxyEGK9NyTJZYpQ6RZ9zpNykxykME8s', - building_name = 'QmXJfGk85t6RKyhbXaEK9Nz4MEeMKypq6EY9zpJyC9nM9', - floor = 'QmZP5G7fhZpMyQxXnT9KyR6ybXaEM9zpJy4ME9MkTJGE1', - post_box = 'QmTkfYRGK54xFqXyJYNZyE9kY9zpMKytJnXy5z9EME9sJ', - room = 'QmRYXnT9KyhbXaEMZpMyxMkZ9zpYNYTJ4ME5kCGE7fhMJ', - town_location_name = 'QmNpZTyXJXnT9K6EYZpQxYNYMkC5p4kGEfhnkMJzpYT9Jm', - district_name = 'QmT9p6ERKyNYXnTyhbpMYJ4zpYT9kMJZT9QmEMGZ5kMhCy', - country_sub_division = 'QmK9yTbXaZpMYJYTYp6NT9QmEMGZT9p9kMJfhyGE4Z7k5C', - address_line = ["QmNp9kMjfhGZ5kMJzpNYXZTy6NQmZYEMGZ4kZT9Y6pNYT"], ) - ], - national_identification = fireblocks.models.travel_rule_national_identification.TravelRuleNationalIdentification( - country_of_issue = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - national_identifier = 'QmdR6qLnZ7Kwf5cBaXG8QFQenEvRg9JNZeoPranVuGd63z', - national_identifier_type = 'QmUKTg3aFJFhMz1o9gPqA3MgTRwd2LvDLwWTPHYUoMEYVi', - registration_authority = 'QmV9KJMyT9RJzpYfhME5xNCZ4G67fEkzTpRMyJzp9kTNYk', ), - customer_identification = 'QmRY9AA4Uit2JRTxDzfzshrJdTK86Kf5HriA3dXDnihDmy', - customer_number = 'QmXvyML3AJUFpBbJqL5NVp7Vn7xNkuedTsSMk93duLCNW8', - country_of_registration = 'QmeoTk6UPruEAYNbJEAHdQYc53ap9BXmpnPMcuvs8wutdr', ) - ) - else: - return TravelRulePerson( - ) - """ - - def testTravelRulePerson(self): - """Test TravelRulePerson""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3BlcnNvbiBpbXBvcnQgVHJhdmVsUnVsZVBlcnNvbgoKCmNsYXNzIFRlc3RUcmF2ZWxSdWxlUGVyc29uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYXZlbFJ1bGVQZXJzb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRyYXZlbFJ1bGVQZXJzb246CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlUGVyc29uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYXZlbFJ1bGVQZXJzb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUcmF2ZWxSdWxlUGVyc29uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZVBlcnNvbigKICAgICAgICAgICAgICAgIG5hdHVyYWxfcGVyc29uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9wZXJzb24uVHJhdmVsUnVsZU5hdHVyYWxQZXJzb24oCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyLlRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9uYW1lX2lkZW50aWZpZXIuVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9pZGVudGlmaWVyID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5X2lkZW50aWZpZXIgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXJfdHlwZSA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxfbmFtZV9pZGVudGlmaWVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyLlRyYXZlbFJ1bGVOYXR1cmFsTmFtZUlkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlfaWRlbnRpZmllciA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeV9pZGVudGlmaWVyID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9pZGVudGlmaWVyX3R5cGUgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob25ldGljX25hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgIGdlb2dyYXBoaWNfYWRkcmVzcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfZ2VvZ3JhcGhpY19hZGRyZXNzLlRyYXZlbFJ1bGVHZW9ncmFwaGljQWRkcmVzcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVldF9uYW1lID0gJ1FtWkdYWHNLUGs1aVBTOTdMTGpYQjVlOFFzNTU1b2NkemNwYlBNWHZ0ODRKaTknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvd25fbmFtZSA9ICdRbU5rRXQ5VmRuaGplZlFNWG8zWmFaQXM3NjV1Z29XaWF6YXFjWTlza0hNakN0JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5ID0gJ1FtUkdIZG94UWZTaTZ0ZXZ5dmFZR3pzOEJWU3RmcUpxRXlyTVlxVWZ6WHhrbW0nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nX251bWJlciA9ICdRbVVGcE5reGRzVnRlYkRTVXo1ZVA1MWt6b3lzWG1xajJnQmdlSDExUEQ3U1ZQJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0X2NvZGUgPSAnUW1USnNLM3NjM2ZQRVZ3dkFwOTdVVWlWb0ZoanpRaFlYM3NDZGExSnh1Q25YaicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc190eXBlID0gJ1FtZHI5TGNDaFpzb2l2UzZ1QWhlN1FrN2NHTERBeDczd0JaVFZ2cTRXb1U3MUgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGFydG1lbnQgPSAnUW1ON2ZiNjV4NU15QTdSS3loYlhhVUt2SjdVNFk5ZXFwRVpUbUpZcE55RUc4JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJfZGVwYXJ0bWVudCA9ICdRbVRrZnlHaDU0dFhOcUZ4eUVHSzlOeVRKWllwUTZSWjl6cE55a3h5a01FOHMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nX25hbWUgPSAnUW1YSmZHazg1dDZSS3loYlhhRUs5Tno0TUVlTUt5cHE2RVk5enBKeUM5bk05JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9vciA9ICdRbVpQNUc3ZmhacE15UXhYblQ5S3lSNnliWGFFTTl6cEp5NE1FOU1rVEpHRTEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfYm94ID0gJ1FtVGtmWVJHSzU0eEZxWHlKWU5aeUU5a1k5enBNS3l0Sm5YeTV6OUVNRTlzSicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vbSA9ICdRbVJZWG5UOUt5aGJYYUVNWnBNeXhNa1o5enBZTllUSjRNRTVrQ0dFN2ZoTUonLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvd25fbG9jYXRpb25fbmFtZSA9ICdRbU5wWlR5WEpYblQ5SzZFWVpwUXhZTllNa0M1cDRrR0VmaG5rTUp6cFlUOUptJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0cmljdF9uYW1lID0gJ1FtVDlwNkVSS3lOWVhuVHloYnBNWUo0enBZVDlrTUpaVDlRbUVNR1o1a01oQ3knLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfc3ViX2RpdmlzaW9uID0gJ1FtSzl5VGJYYVpwTVlKWVRZcDZOVDlRbUVNR1pUOXA5a01KZmh5R0U0WjdrNUMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfbGluZSA9IFsiUW1OcDlrTWpmaEdaNWtNSnpwTllYWlR5Nk5RbVpZRU1HWjRrWlQ5WTZwTllUIl0sICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmljYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXRpb25hbF9pZGVudGlmaWNhdGlvbi5UcmF2ZWxSdWxlTmF0aW9uYWxJZGVudGlmaWNhdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9pc3N1ZSA9ICdRbVJHSGRveFFmU2k2dGV2eXZhWUd6czhCVlN0ZnFKcUV5ck1ZcVVmelh4a21tJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpZXIgPSAnUW1kUjZxTG5aN0t3ZjVjQmFYRzhRRlFlbkV2Umc5Sk5aZW9QcmFuVnVHZDYzeicsIAogICAgICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWVyX3R5cGUgPSAnUW1VS1RnM2FGSkZoTXoxbzlnUHFBM01nVFJ3ZDJMdkRMd1dUUEhZVW9NRVlWaScsIAogICAgICAgICAgICAgICAgICAgICAgICByZWdpc3RyYXRpb25fYXV0aG9yaXR5ID0gJ1FtVjlLSk15VDlSSnpwWWZoTUU1eE5DWjRHNjdmRWt6VHBSTXlKenA5a1ROWWsnLCApLCAKICAgICAgICAgICAgICAgICAgICBkYXRlX2FuZF9wbGFjZV9vZl9iaXJ0aCA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2RhdGVfYW5kX3BsYWNlX29mX2JpcnRoLlRyYXZlbFJ1bGVEYXRlQW5kUGxhY2VPZkJpcnRoKAogICAgICAgICAgICAgICAgICAgICAgICBkYXRlX29mX2JpcnRoID0gJ1FtTmtFdDlWZG5oamVmUU1YbzNaYVpBczc2NXVnb1dpYXphcWNZOXNrSE1qQ3QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vfb2ZfYmlydGggPSAnUW1Oa0V0OVZkbmhqZWZRTVhvM1phWkFzNzY1dWdvV2lhemFxY1k5c2tITWpDdCcsICksIAogICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX2lkZW50aWZpY2F0aW9uID0gJ1FtVEpzSzNzYzNmUEVWd3ZBcDk3VVVpVm9GaGp6UWhZWDNzQ2RhMUp4dUNuWGonLCAKICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX3Jlc2lkZW5jZSA9ICdRbVRKc0szc2MzZlBFVnd2QXA5N1VVaVZvRmhqelFoWVgzc0NkYTFKeHVDblhqJywgCiAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfbnVtYmVyID0gJ1FtVEpzSzNzYzNmUEVWd3ZBcDk3VVVpVm9GaGp6UWhZWDNzQ2RhMUp4dUNuWGonLCApLAogICAgICAgICAgICAgICAgbGVnYWxfcGVyc29uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbGVnYWxfcGVyc29uLlRyYXZlbFJ1bGVMZWdhbFBlcnNvbigKICAgICAgICAgICAgICAgICAgICBuYW1lID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbGVnYWxfcGVyc29uX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgbGVnYWxfcGVyc29uX25hbWUgPSAnUW1WWFhqNUJKY2hocVFUVTI3dUVrZWdoWU1ueFI2YVZqWnhKUDlqUzZ1Q2c5UScsIAogICAgICAgICAgICAgICAgICAgICAgICBsZWdhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyX3R5cGUgPSAnUW1QZXZzYTV4ZGt4ZjZMZ3Q3ZjlZd2VSQmRnc2VlQWtXVmFZeXNzS0YzUTg2ZScsICksIAogICAgICAgICAgICAgICAgICAgIGdlb2dyYXBoaWNfYWRkcmVzcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfZ2VvZ3JhcGhpY19hZGRyZXNzLlRyYXZlbFJ1bGVHZW9ncmFwaGljQWRkcmVzcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVldF9uYW1lID0gJ1FtWkdYWHNLUGs1aVBTOTdMTGpYQjVlOFFzNTU1b2NkemNwYlBNWHZ0ODRKaTknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvd25fbmFtZSA9ICdRbU5rRXQ5VmRuaGplZlFNWG8zWmFaQXM3NjV1Z29XaWF6YXFjWTlza0hNakN0JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5ID0gJ1FtUkdIZG94UWZTaTZ0ZXZ5dmFZR3pzOEJWU3RmcUpxRXlyTVlxVWZ6WHhrbW0nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nX251bWJlciA9ICdRbVVGcE5reGRzVnRlYkRTVXo1ZVA1MWt6b3lzWG1xajJnQmdlSDExUEQ3U1ZQJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0X2NvZGUgPSAnUW1USnNLM3NjM2ZQRVZ3dkFwOTdVVWlWb0ZoanpRaFlYM3NDZGExSnh1Q25YaicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc190eXBlID0gJ1FtZHI5TGNDaFpzb2l2UzZ1QWhlN1FrN2NHTERBeDczd0JaVFZ2cTRXb1U3MUgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGFydG1lbnQgPSAnUW1ON2ZiNjV4NU15QTdSS3loYlhhVUt2SjdVNFk5ZXFwRVpUbUpZcE55RUc4JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJfZGVwYXJ0bWVudCA9ICdRbVRrZnlHaDU0dFhOcUZ4eUVHSzlOeVRKWllwUTZSWjl6cE55a3h5a01FOHMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nX25hbWUgPSAnUW1YSmZHazg1dDZSS3loYlhhRUs5Tno0TUVlTUt5cHE2RVk5enBKeUM5bk05JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9vciA9ICdRbVpQNUc3ZmhacE15UXhYblQ5S3lSNnliWGFFTTl6cEp5NE1FOU1rVEpHRTEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfYm94ID0gJ1FtVGtmWVJHSzU0eEZxWHlKWU5aeUU5a1k5enBNS3l0Sm5YeTV6OUVNRTlzSicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vbSA9ICdRbVJZWG5UOUt5aGJYYUVNWnBNeXhNa1o5enBZTllUSjRNRTVrQ0dFN2ZoTUonLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvd25fbG9jYXRpb25fbmFtZSA9ICdRbU5wWlR5WEpYblQ5SzZFWVpwUXhZTllNa0M1cDRrR0VmaG5rTUp6cFlUOUptJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0cmljdF9uYW1lID0gJ1FtVDlwNkVSS3lOWVhuVHloYnBNWUo0enBZVDlrTUpaVDlRbUVNR1o1a01oQ3knLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfc3ViX2RpdmlzaW9uID0gJ1FtSzl5VGJYYVpwTVlKWVRZcDZOVDlRbUVNR1pUOXA5a01KZmh5R0U0WjdrNUMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfbGluZSA9IFsiUW1OcDlrTWpmaEdaNWtNSnpwTllYWlR5Nk5RbVpZRU1HWjRrWlQ5WTZwTllUIl0sICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmljYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXRpb25hbF9pZGVudGlmaWNhdGlvbi5UcmF2ZWxSdWxlTmF0aW9uYWxJZGVudGlmaWNhdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9pc3N1ZSA9ICdRbVJHSGRveFFmU2k2dGV2eXZhWUd6czhCVlN0ZnFKcUV5ck1ZcVVmelh4a21tJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpZXIgPSAnUW1kUjZxTG5aN0t3ZjVjQmFYRzhRRlFlbkV2Umc5Sk5aZW9QcmFuVnVHZDYzeicsIAogICAgICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWVyX3R5cGUgPSAnUW1VS1RnM2FGSkZoTXoxbzlnUHFBM01nVFJ3ZDJMdkRMd1dUUEhZVW9NRVlWaScsIAogICAgICAgICAgICAgICAgICAgICAgICByZWdpc3RyYXRpb25fYXV0aG9yaXR5ID0gJ1FtVjlLSk15VDlSSnpwWWZoTUU1eE5DWjRHNjdmRWt6VHBSTXlKenA5a1ROWWsnLCApLCAKICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pZGVudGlmaWNhdGlvbiA9ICdRbVJZOUFBNFVpdDJKUlR4RHpmenNockpkVEs4NktmNUhyaUEzZFhEbmloRG15JywgCiAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfbnVtYmVyID0gJ1FtWHZ5TUwzQUpVRnBCYkpxTDVOVnA3Vm43eE5rdWVkVHNTTWs5M2R1TENOVzgnLCAKICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX3JlZ2lzdHJhdGlvbiA9ICdRbWVvVGs2VVBydUVBWU5iSkVBSGRRWWM1M2FwOUJYbXBuUE1jdXZzOHd1dGRyJywgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRyYXZlbFJ1bGVQZXJzb24oCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhdmVsUnVsZVBlcnNvbihzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVQZXJzb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_travel_rule_pii_ivms.py b/test/test_travel_rule_pii_ivms.py index f315559e..8bd2feae 100644 --- a/test/test_travel_rule_pii_ivms.py +++ b/test/test_travel_rule_pii_ivms.py @@ -1,168 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_pii_ivms import TravelRulePiiIVMS - - -class TestTravelRulePiiIVMS(unittest.TestCase): - """TravelRulePiiIVMS unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRulePiiIVMS: - """Test TravelRulePiiIVMS - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRulePiiIVMS` - """ - model = TravelRulePiiIVMS() - if include_optional: - return TravelRulePiiIVMS( - originator_persons = [ - fireblocks.models.travel_rule_person.TravelRulePerson( - natural_person = fireblocks.models.travel_rule_natural_person.TravelRuleNaturalPerson( - name = [ - fireblocks.models.travel_rule_natural_person_name_identifier.TravelRuleNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - phonetic_name_identifier = [ - - ], ) - ], - geographic_address = [ - fireblocks.models.travel_rule_geographic_address.TravelRuleGeographicAddress( - street_name = 'QmZGXXsKPk5iPS97LLjXB5e8Qs555ocdzcpbPMXvt84Ji9', - town_name = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - country = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - building_number = 'QmUFpNkxdsVtebDSUz5eP51kzoysXmqj2gBgeH11PD7SVP', - post_code = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - address_type = 'Qmdr9LcChZsoivS6uAhe7Qk7cGLDAx73wBZTVvq4WoU71H', - department = 'QmN7fb65x5MyA7RKyhbXaUKvJ7U4Y9eqpEZTmJYpNyEG8', - sub_department = 'QmTkfyGh54tXNqFxyEGK9NyTJZYpQ6RZ9zpNykxykME8s', - building_name = 'QmXJfGk85t6RKyhbXaEK9Nz4MEeMKypq6EY9zpJyC9nM9', - floor = 'QmZP5G7fhZpMyQxXnT9KyR6ybXaEM9zpJy4ME9MkTJGE1', - post_box = 'QmTkfYRGK54xFqXyJYNZyE9kY9zpMKytJnXy5z9EME9sJ', - room = 'QmRYXnT9KyhbXaEMZpMyxMkZ9zpYNYTJ4ME5kCGE7fhMJ', - town_location_name = 'QmNpZTyXJXnT9K6EYZpQxYNYMkC5p4kGEfhnkMJzpYT9Jm', - district_name = 'QmT9p6ERKyNYXnTyhbpMYJ4zpYT9kMJZT9QmEMGZ5kMhCy', - country_sub_division = 'QmK9yTbXaZpMYJYTYp6NT9QmEMGZT9p9kMJfhyGE4Z7k5C', - address_line = ["QmNp9kMjfhGZ5kMJzpNYXZTy6NQmZYEMGZ4kZT9Y6pNYT"], ) - ], - national_identification = fireblocks.models.travel_rule_national_identification.TravelRuleNationalIdentification( - country_of_issue = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - national_identifier = 'QmdR6qLnZ7Kwf5cBaXG8QFQenEvRg9JNZeoPranVuGd63z', - national_identifier_type = 'QmUKTg3aFJFhMz1o9gPqA3MgTRwd2LvDLwWTPHYUoMEYVi', - registration_authority = 'QmV9KJMyT9RJzpYfhME5xNCZ4G67fEkzTpRMyJzp9kTNYk', ), - date_and_place_of_birth = fireblocks.models.travel_rule_date_and_place_of_birth.TravelRuleDateAndPlaceOfBirth( - date_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - place_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', ), - customer_identification = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - country_of_residence = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - customer_number = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', ), - legal_person = fireblocks.models.travel_rule_legal_person.TravelRuleLegalPerson( - customer_identification = 'QmRY9AA4Uit2JRTxDzfzshrJdTK86Kf5HriA3dXDnihDmy', - customer_number = 'QmXvyML3AJUFpBbJqL5NVp7Vn7xNkuedTsSMk93duLCNW8', - country_of_registration = 'QmeoTk6UPruEAYNbJEAHdQYc53ap9BXmpnPMcuvs8wutdr', ), ) - ], - beneficiary_persons = [ - fireblocks.models.travel_rule_person.TravelRulePerson( - natural_person = fireblocks.models.travel_rule_natural_person.TravelRuleNaturalPerson( - name = [ - fireblocks.models.travel_rule_natural_person_name_identifier.TravelRuleNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - phonetic_name_identifier = [ - - ], ) - ], - geographic_address = [ - fireblocks.models.travel_rule_geographic_address.TravelRuleGeographicAddress( - street_name = 'QmZGXXsKPk5iPS97LLjXB5e8Qs555ocdzcpbPMXvt84Ji9', - town_name = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - country = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - building_number = 'QmUFpNkxdsVtebDSUz5eP51kzoysXmqj2gBgeH11PD7SVP', - post_code = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - address_type = 'Qmdr9LcChZsoivS6uAhe7Qk7cGLDAx73wBZTVvq4WoU71H', - department = 'QmN7fb65x5MyA7RKyhbXaUKvJ7U4Y9eqpEZTmJYpNyEG8', - sub_department = 'QmTkfyGh54tXNqFxyEGK9NyTJZYpQ6RZ9zpNykxykME8s', - building_name = 'QmXJfGk85t6RKyhbXaEK9Nz4MEeMKypq6EY9zpJyC9nM9', - floor = 'QmZP5G7fhZpMyQxXnT9KyR6ybXaEM9zpJy4ME9MkTJGE1', - post_box = 'QmTkfYRGK54xFqXyJYNZyE9kY9zpMKytJnXy5z9EME9sJ', - room = 'QmRYXnT9KyhbXaEMZpMyxMkZ9zpYNYTJ4ME5kCGE7fhMJ', - town_location_name = 'QmNpZTyXJXnT9K6EYZpQxYNYMkC5p4kGEfhnkMJzpYT9Jm', - district_name = 'QmT9p6ERKyNYXnTyhbpMYJ4zpYT9kMJZT9QmEMGZ5kMhCy', - country_sub_division = 'QmK9yTbXaZpMYJYTYp6NT9QmEMGZT9p9kMJfhyGE4Z7k5C', - address_line = ["QmNp9kMjfhGZ5kMJzpNYXZTy6NQmZYEMGZ4kZT9Y6pNYT"], ) - ], - national_identification = fireblocks.models.travel_rule_national_identification.TravelRuleNationalIdentification( - country_of_issue = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - national_identifier = 'QmdR6qLnZ7Kwf5cBaXG8QFQenEvRg9JNZeoPranVuGd63z', - national_identifier_type = 'QmUKTg3aFJFhMz1o9gPqA3MgTRwd2LvDLwWTPHYUoMEYVi', - registration_authority = 'QmV9KJMyT9RJzpYfhME5xNCZ4G67fEkzTpRMyJzp9kTNYk', ), - date_and_place_of_birth = fireblocks.models.travel_rule_date_and_place_of_birth.TravelRuleDateAndPlaceOfBirth( - date_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - place_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', ), - customer_identification = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - country_of_residence = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - customer_number = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', ), - legal_person = fireblocks.models.travel_rule_legal_person.TravelRuleLegalPerson( - customer_identification = 'QmRY9AA4Uit2JRTxDzfzshrJdTK86Kf5HriA3dXDnihDmy', - customer_number = 'QmXvyML3AJUFpBbJqL5NVp7Vn7xNkuedTsSMk93duLCNW8', - country_of_registration = 'QmeoTk6UPruEAYNbJEAHdQYc53ap9BXmpnPMcuvs8wutdr', ), ) - ], - account_number = [ - 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt' - ] - ) - else: - return TravelRulePiiIVMS( - ) - """ - - def testTravelRulePiiIVMS(self): - """Test TravelRulePiiIVMS""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3BpaV9pdm1zIGltcG9ydCBUcmF2ZWxSdWxlUGlpSVZNUwoKCmNsYXNzIFRlc3RUcmF2ZWxSdWxlUGlpSVZNUyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmF2ZWxSdWxlUGlpSVZNUyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhdmVsUnVsZVBpaUlWTVM6CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlUGlpSVZNUwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmF2ZWxSdWxlUGlpSVZNU2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYXZlbFJ1bGVQaWlJVk1TKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZVBpaUlWTVMoCiAgICAgICAgICAgICAgICBvcmlnaW5hdG9yX3BlcnNvbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfcGVyc29uLlRyYXZlbFJ1bGVQZXJzb24oCiAgICAgICAgICAgICAgICAgICAgICAgIG5hdHVyYWxfcGVyc29uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9wZXJzb24uVHJhdmVsUnVsZU5hdHVyYWxQZXJzb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlTmF0dXJhbE5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlfaWRlbnRpZmllciA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5X2lkZW50aWZpZXIgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllcl90eXBlID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxfbmFtZV9pZGVudGlmaWVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9uYW1lX2lkZW50aWZpZXIuVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2lkZW50aWZpZXIgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeV9pZGVudGlmaWVyID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXJfdHlwZSA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob25ldGljX25hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvZ3JhcGhpY19hZGRyZXNzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2dlb2dyYXBoaWNfYWRkcmVzcy5UcmF2ZWxSdWxlR2VvZ3JhcGhpY0FkZHJlc3MoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVldF9uYW1lID0gJ1FtWkdYWHNLUGs1aVBTOTdMTGpYQjVlOFFzNTU1b2NkemNwYlBNWHZ0ODRKaTknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG93bl9uYW1lID0gJ1FtTmtFdDlWZG5oamVmUU1YbzNaYVpBczc2NXVnb1dpYXphcWNZOXNrSE1qQ3QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeSA9ICdRbVJHSGRveFFmU2k2dGV2eXZhWUd6czhCVlN0ZnFKcUV5ck1ZcVVmelh4a21tJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nX251bWJlciA9ICdRbVVGcE5reGRzVnRlYkRTVXo1ZVA1MWt6b3lzWG1xajJnQmdlSDExUEQ3U1ZQJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfY29kZSA9ICdRbVRKc0szc2MzZlBFVnd2QXA5N1VVaVZvRmhqelFoWVgzc0NkYTFKeHVDblhqJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfdHlwZSA9ICdRbWRyOUxjQ2hac29pdlM2dUFoZTdRazdjR0xEQXg3M3dCWlRWdnE0V29VNzFIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGFydG1lbnQgPSAnUW1ON2ZiNjV4NU15QTdSS3loYlhhVUt2SjdVNFk5ZXFwRVpUbUpZcE55RUc4JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl9kZXBhcnRtZW50ID0gJ1FtVGtmeUdoNTR0WE5xRnh5RUdLOU55VEpaWXBRNlJaOXpwTnlreHlrTUU4cycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19uYW1lID0gJ1FtWEpmR2s4NXQ2Ukt5aGJYYUVLOU56NE1FZU1LeXBxNkVZOXpwSnlDOW5NOScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9vciA9ICdRbVpQNUc3ZmhacE15UXhYblQ5S3lSNnliWGFFTTl6cEp5NE1FOU1rVEpHRTEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdF9ib3ggPSAnUW1Ua2ZZUkdLNTR4RnFYeUpZTlp5RTlrWTl6cE1LeXRKblh5NXo5RU1FOXNKJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvb20gPSAnUW1SWVhuVDlLeWhiWGFFTVpwTXl4TWtaOXpwWU5ZVEo0TUU1a0NHRTdmaE1KJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvd25fbG9jYXRpb25fbmFtZSA9ICdRbU5wWlR5WEpYblQ5SzZFWVpwUXhZTllNa0M1cDRrR0VmaG5rTUp6cFlUOUptJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RyaWN0X25hbWUgPSAnUW1UOXA2RVJLeU5ZWG5UeWhicE1ZSjR6cFlUOWtNSlpUOVFtRU1HWjVrTWhDeScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X3N1Yl9kaXZpc2lvbiA9ICdRbUs5eVRiWGFacE1ZSllUWXA2TlQ5UW1FTUdaVDlwOWtNSmZoeUdFNFo3azVDJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfbGluZSA9IFsiUW1OcDlrTWpmaEdaNWtNSnpwTllYWlR5Nk5RbVpZRU1HWjRrWlQ5WTZwTllUIl0sICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpY2F0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0aW9uYWxfaWRlbnRpZmljYXRpb24uVHJhdmVsUnVsZU5hdGlvbmFsSWRlbnRpZmljYXRpb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9pc3N1ZSA9ICdRbVJHSGRveFFmU2k2dGV2eXZhWUd6czhCVlN0ZnFKcUV5ck1ZcVVmelh4a21tJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmllciA9ICdRbWRSNnFMblo3S3dmNWNCYVhHOFFGUWVuRXZSZzlKTlplb1ByYW5WdUdkNjN6JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmllcl90eXBlID0gJ1FtVUtUZzNhRkpGaE16MW85Z1BxQTNNZ1RSd2QyTHZETHdXVFBIWVVvTUVZVmknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpc3RyYXRpb25fYXV0aG9yaXR5ID0gJ1FtVjlLSk15VDlSSnpwWWZoTUU1eE5DWjRHNjdmRWt6VHBSTXlKenA5a1ROWWsnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfYW5kX3BsYWNlX29mX2JpcnRoID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGguVHJhdmVsUnVsZURhdGVBbmRQbGFjZU9mQmlydGgoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9vZl9iaXJ0aCA9ICdRbU5rRXQ5VmRuaGplZlFNWG8zWmFaQXM3NjV1Z29XaWF6YXFjWTlza0hNakN0JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vfb2ZfYmlydGggPSAnUW1Oa0V0OVZkbmhqZWZRTVhvM1phWkFzNzY1dWdvV2lhemFxY1k5c2tITWpDdCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfaWRlbnRpZmljYXRpb24gPSAnUW1USnNLM3NjM2ZQRVZ3dkFwOTdVVWlWb0ZoanpRaFlYM3NDZGExSnh1Q25YaicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9yZXNpZGVuY2UgPSAnUW1USnNLM3NjM2ZQRVZ3dkFwOTdVVWlWb0ZoanpRaFlYM3NDZGExSnh1Q25YaicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfbnVtYmVyID0gJ1FtVEpzSzNzYzNmUEVWd3ZBcDk3VVVpVm9GaGp6UWhZWDNzQ2RhMUp4dUNuWGonLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgbGVnYWxfcGVyc29uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbGVnYWxfcGVyc29uLlRyYXZlbFJ1bGVMZWdhbFBlcnNvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX2lkZW50aWZpY2F0aW9uID0gJ1FtUlk5QUE0VWl0MkpSVHhEemZ6c2hySmRUSzg2S2Y1SHJpQTNkWERuaWhEbXknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX251bWJlciA9ICdRbVh2eU1MM0FKVUZwQmJKcUw1TlZwN1ZuN3hOa3VlZFRzU01rOTNkdUxDTlc4JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX3JlZ2lzdHJhdGlvbiA9ICdRbWVvVGs2VVBydUVBWU5iSkVBSGRRWWM1M2FwOUJYbXBuUE1jdXZzOHd1dGRyJywgKSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV9wZXJzb25zID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3BlcnNvbi5UcmF2ZWxSdWxlUGVyc29uKAogICAgICAgICAgICAgICAgICAgICAgICBuYXR1cmFsX3BlcnNvbiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfcGVyc29uLlRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXR1cmFsX3BlcnNvbl9uYW1lX2lkZW50aWZpZXIuVHJhdmVsUnVsZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9pZGVudGlmaWVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9uYW1lX2lkZW50aWZpZXIuVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2lkZW50aWZpZXIgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeV9pZGVudGlmaWVyID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXJfdHlwZSA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsX25hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyLlRyYXZlbFJ1bGVOYXR1cmFsTmFtZUlkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9pZGVudGlmaWVyID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlfaWRlbnRpZmllciA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9pZGVudGlmaWVyX3R5cGUgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG9uZXRpY19uYW1lX2lkZW50aWZpZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlb2dyYXBoaWNfYWRkcmVzcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9nZW9ncmFwaGljX2FkZHJlc3MuVHJhdmVsUnVsZUdlb2dyYXBoaWNBZGRyZXNzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlZXRfbmFtZSA9ICdRbVpHWFhzS1BrNWlQUzk3TExqWEI1ZThRczU1NW9jZHpjcGJQTVh2dDg0Smk5JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvd25fbmFtZSA9ICdRbU5rRXQ5VmRuaGplZlFNWG8zWmFaQXM3NjV1Z29XaWF6YXFjWTlza0hNakN0JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnkgPSAnUW1SR0hkb3hRZlNpNnRldnl2YVlHenM4QlZTdGZxSnFFeXJNWXFVZnpYeGttbScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19udW1iZXIgPSAnUW1VRnBOa3hkc1Z0ZWJEU1V6NWVQNTFrem95c1htcWoyZ0JnZUgxMVBEN1NWUCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0X2NvZGUgPSAnUW1USnNLM3NjM2ZQRVZ3dkFwOTdVVWlWb0ZoanpRaFlYM3NDZGExSnh1Q25YaicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX3R5cGUgPSAnUW1kcjlMY0NoWnNvaXZTNnVBaGU3UWs3Y0dMREF4NzN3QlpUVnZxNFdvVTcxSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBhcnRtZW50ID0gJ1FtTjdmYjY1eDVNeUE3Ukt5aGJYYVVLdko3VTRZOWVxcEVaVG1KWXBOeUVHOCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJfZGVwYXJ0bWVudCA9ICdRbVRrZnlHaDU0dFhOcUZ4eUVHSzlOeVRKWllwUTZSWjl6cE55a3h5a01FOHMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRpbmdfbmFtZSA9ICdRbVhKZkdrODV0NlJLeWhiWGFFSzlOejRNRWVNS3lwcTZFWTl6cEp5QzluTTknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvb3IgPSAnUW1aUDVHN2ZoWnBNeVF4WG5UOUt5UjZ5YlhhRU05enBKeTRNRTlNa1RKR0UxJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfYm94ID0gJ1FtVGtmWVJHSzU0eEZxWHlKWU5aeUU5a1k5enBNS3l0Sm5YeTV6OUVNRTlzSicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb29tID0gJ1FtUllYblQ5S3loYlhhRU1acE15eE1rWjl6cFlOWVRKNE1FNWtDR0U3ZmhNSicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3duX2xvY2F0aW9uX25hbWUgPSAnUW1OcFpUeVhKWG5UOUs2RVlacFF4WU5ZTWtDNXA0a0dFZmhua01KenBZVDlKbScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0cmljdF9uYW1lID0gJ1FtVDlwNkVSS3lOWVhuVHloYnBNWUo0enBZVDlrTUpaVDlRbUVNR1o1a01oQ3knLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9zdWJfZGl2aXNpb24gPSAnUW1LOXlUYlhhWnBNWUpZVFlwNk5UOVFtRU1HWlQ5cDlrTUpmaHlHRTRaN2s1QycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX2xpbmUgPSBbIlFtTnA5a01qZmhHWjVrTUp6cE5ZWFpUeTZOUW1aWUVNR1o0a1pUOVk2cE5ZVCJdLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWNhdGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdGlvbmFsX2lkZW50aWZpY2F0aW9uLlRyYXZlbFJ1bGVOYXRpb25hbElkZW50aWZpY2F0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfaXNzdWUgPSAnUW1SR0hkb3hRZlNpNnRldnl2YVlHenM4QlZTdGZxSnFFeXJNWXFVZnpYeGttbScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpZXIgPSAnUW1kUjZxTG5aN0t3ZjVjQmFYRzhRRlFlbkV2Umc5Sk5aZW9QcmFuVnVHZDYzeicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSA9ICdRbVVLVGczYUZKRmhNejFvOWdQcUEzTWdUUndkMkx2REx3V1RQSFlVb01FWVZpJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0cmF0aW9uX2F1dGhvcml0eSA9ICdRbVY5S0pNeVQ5Ukp6cFlmaE1FNXhOQ1o0RzY3ZkVrelRwUk15SnpwOWtUTllrJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2FuZF9wbGFjZV9vZl9iaXJ0aCA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2RhdGVfYW5kX3BsYWNlX29mX2JpcnRoLlRyYXZlbFJ1bGVEYXRlQW5kUGxhY2VPZkJpcnRoKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfb2ZfYmlydGggPSAnUW1Oa0V0OVZkbmhqZWZRTVhvM1phWkFzNzY1dWdvV2lhemFxY1k5c2tITWpDdCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlX29mX2JpcnRoID0gJ1FtTmtFdDlWZG5oamVmUU1YbzNaYVpBczc2NXVnb1dpYXphcWNZOXNrSE1qQ3QnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX2lkZW50aWZpY2F0aW9uID0gJ1FtVEpzSzNzYzNmUEVWd3ZBcDk3VVVpVm9GaGp6UWhZWDNzQ2RhMUp4dUNuWGonLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfcmVzaWRlbmNlID0gJ1FtVEpzSzNzYzNmUEVWd3ZBcDk3VVVpVm9GaGp6UWhZWDNzQ2RhMUp4dUNuWGonLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX251bWJlciA9ICdRbVRKc0szc2MzZlBFVnd2QXA5N1VVaVZvRmhqelFoWVgzc0NkYTFKeHVDblhqJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2FsX3BlcnNvbiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2xlZ2FsX3BlcnNvbi5UcmF2ZWxSdWxlTGVnYWxQZXJzb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pZGVudGlmaWNhdGlvbiA9ICdRbVJZOUFBNFVpdDJKUlR4RHpmenNockpkVEs4NktmNUhyaUEzZFhEbmloRG15JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9udW1iZXIgPSAnUW1YdnlNTDNBSlVGcEJiSnFMNU5WcDdWbjd4Tmt1ZWRUc1NNazkzZHVMQ05XOCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9yZWdpc3RyYXRpb24gPSAnUW1lb1RrNlVQcnVFQVlOYkpFQUhkUVljNTNhcDlCWG1wblBNY3V2czh3dXRkcicsICksICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgYWNjb3VudF9udW1iZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgJ1FtTmtFdDlWZG5oamVmUU1YbzNaYVpBczc2NXVnb1dpYXphcWNZOXNrSE1qQ3QnCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRyYXZlbFJ1bGVQaWlJVk1TKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRyYXZlbFJ1bGVQaWlJVk1TKHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJhdmVsUnVsZVBpaUlWTVMiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_travel_rule_policy_rule_response.py b/test/test_travel_rule_policy_rule_response.py index b93e8fa1..5c0fadef 100644 --- a/test/test_travel_rule_policy_rule_response.py +++ b/test/test_travel_rule_policy_rule_response.py @@ -1,70 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_policy_rule_response import ( - TravelRulePolicyRuleResponse, -) - - -class TestTravelRulePolicyRuleResponse(unittest.TestCase): - """TravelRulePolicyRuleResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRulePolicyRuleResponse: - """Test TravelRulePolicyRuleResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRulePolicyRuleResponse` - """ - model = TravelRulePolicyRuleResponse() - if include_optional: - return TravelRulePolicyRuleResponse( - source_type = '', - source_sub_type = '', - dest_type = '', - dest_sub_type = '', - dest_address = '', - source_id = '', - dest_id = '', - asset = '', - base_asset = '', - amount = 1.337, - amount_usd = 1.337, - network_protocol = 'ETH', - operation = '', - action = 'SCREEN' - ) - else: - return TravelRulePolicyRuleResponse( - action = 'SCREEN', - ) - """ - - def testTravelRulePolicyRuleResponse(self): - """Test TravelRulePolicyRuleResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3BvbGljeV9ydWxlX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBUcmF2ZWxSdWxlUG9saWN5UnVsZVJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdFRyYXZlbFJ1bGVQb2xpY3lSdWxlUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhdmVsUnVsZVBvbGljeVJ1bGVSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhdmVsUnVsZVBvbGljeVJ1bGVSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVQb2xpY3lSdWxlUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhdmVsUnVsZVBvbGljeVJ1bGVSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYXZlbFJ1bGVQb2xpY3lSdWxlUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlUG9saWN5UnVsZVJlc3BvbnNlKAogICAgICAgICAgICAgICAgc291cmNlX3R5cGUgPSAnJywKICAgICAgICAgICAgICAgIHNvdXJjZV9zdWJfdHlwZSA9ICcnLAogICAgICAgICAgICAgICAgZGVzdF90eXBlID0gJycsCiAgICAgICAgICAgICAgICBkZXN0X3N1Yl90eXBlID0gJycsCiAgICAgICAgICAgICAgICBkZXN0X2FkZHJlc3MgPSAnJywKICAgICAgICAgICAgICAgIHNvdXJjZV9pZCA9ICcnLAogICAgICAgICAgICAgICAgZGVzdF9pZCA9ICcnLAogICAgICAgICAgICAgICAgYXNzZXQgPSAnJywKICAgICAgICAgICAgICAgIGJhc2VfYXNzZXQgPSAnJywKICAgICAgICAgICAgICAgIGFtb3VudCA9IDEuMzM3LAogICAgICAgICAgICAgICAgYW1vdW50X3VzZCA9IDEuMzM3LAogICAgICAgICAgICAgICAgbmV0d29ya19wcm90b2NvbCA9ICdFVEgnLAogICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gJycsCiAgICAgICAgICAgICAgICBhY3Rpb24gPSAnU0NSRUVOJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRyYXZlbFJ1bGVQb2xpY3lSdWxlUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBhY3Rpb24gPSAnU0NSRUVOJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmF2ZWxSdWxlUG9saWN5UnVsZVJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJhdmVsUnVsZVBvbGljeVJ1bGVSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_travel_rule_prescreening_rule.py b/test/test_travel_rule_prescreening_rule.py index c52e357b..338dcd96 100644 --- a/test/test_travel_rule_prescreening_rule.py +++ b/test/test_travel_rule_prescreening_rule.py @@ -1,70 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_prescreening_rule import TravelRulePrescreeningRule - - -class TestTravelRulePrescreeningRule(unittest.TestCase): - """TravelRulePrescreeningRule unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRulePrescreeningRule: - """Test TravelRulePrescreeningRule - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRulePrescreeningRule` - """ - model = TravelRulePrescreeningRule() - if include_optional: - return TravelRulePrescreeningRule( - bypass_reason = 'MANUAL', - source_type = 'VAULT_ACCOUNT', - source_sub_type = 'INTERNAL', - dest_type = 'VAULT_ACCOUNT', - dest_sub_type = 'INTERNAL', - transfer_peer_type = 'VAULT_ACCOUNT', - transfer_peer_sub_type = 'INTERNAL', - dest_address = '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715', - source_id = '0', - dest_id = 'ext_address_001', - asset = 'ETH', - base_asset = 'ETH', - amount = 0.5, - amount_usd = 1000, - network_protocol = 'ETH', - operation = 'TRANSFER', - action = 'SCREEN' - ) - else: - return TravelRulePrescreeningRule( - ) - """ - - def testTravelRulePrescreeningRule(self): - """Test TravelRulePrescreeningRule""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ByZXNjcmVlbmluZ19ydWxlIGltcG9ydCBUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZQoKCmNsYXNzIFRlc3RUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGU6CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZVByZXNjcmVlbmluZ1J1bGUoCiAgICAgICAgICAgICAgICBieXBhc3NfcmVhc29uID0gJ01BTlVBTCcsCiAgICAgICAgICAgICAgICBzb3VyY2VfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIHNvdXJjZV9zdWJfdHlwZSA9ICdJTlRFUk5BTCcsCiAgICAgICAgICAgICAgICBkZXN0X3R5cGUgPSAnVkFVTFRfQUNDT1VOVCcsCiAgICAgICAgICAgICAgICBkZXN0X3N1Yl90eXBlID0gJ0lOVEVSTkFMJywKICAgICAgICAgICAgICAgIHRyYW5zZmVyX3BlZXJfdHlwZSA9ICdWQVVMVF9BQ0NPVU5UJywKICAgICAgICAgICAgICAgIHRyYW5zZmVyX3BlZXJfc3ViX3R5cGUgPSAnSU5URVJOQUwnLAogICAgICAgICAgICAgICAgZGVzdF9hZGRyZXNzID0gJzB4QTJkQzI0OTBFRDFEY0EyRDIxNjEzNTA4ZmRiMGM4MmRhRUFiMDcxNScsCiAgICAgICAgICAgICAgICBzb3VyY2VfaWQgPSAnMCcsCiAgICAgICAgICAgICAgICBkZXN0X2lkID0gJ2V4dF9hZGRyZXNzXzAwMScsCiAgICAgICAgICAgICAgICBhc3NldCA9ICdFVEgnLAogICAgICAgICAgICAgICAgYmFzZV9hc3NldCA9ICdFVEgnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gMC41LAogICAgICAgICAgICAgICAgYW1vdW50X3VzZCA9IDEwMDAsCiAgICAgICAgICAgICAgICBuZXR3b3JrX3Byb3RvY29sID0gJ0VUSCcsCiAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSAnVFJBTlNGRVInLAogICAgICAgICAgICAgICAgYWN0aW9uID0gJ1NDUkVFTicKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmF2ZWxSdWxlUHJlc2NyZWVuaW5nUnVsZShzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVQcmVzY3JlZW5pbmdSdWxlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_travel_rule_result.py b/test/test_travel_rule_result.py index 75d9ea50..1e6a61d8 100644 --- a/test/test_travel_rule_result.py +++ b/test/test_travel_rule_result.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_result import TravelRuleResult - - -class TestTravelRuleResult(unittest.TestCase): - """TravelRuleResult unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleResult: - """Test TravelRuleResult - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleResult` - """ - model = TravelRuleResult() - if include_optional: - return TravelRuleResult( - direction = 'OUTBOUND', - is_verified = True, - action = 'ACCEPT', - provider_response = { }, - matched_rule = fireblocks.models.travel_rule_matched_rule.TravelRuleMatchedRule( - direction = 'OUTBOUND', - status = 'COMPLETED', - amount_usd = 1000.5, - amount = 0.025, - asset = 'BTC', - action = 'ACCEPT', ) - ) - else: - return TravelRuleResult( - ) - """ - - def testTravelRuleResult(self): - """Test TravelRuleResult""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3Jlc3VsdCBpbXBvcnQgVHJhdmVsUnVsZVJlc3VsdAoKCmNsYXNzIFRlc3RUcmF2ZWxSdWxlUmVzdWx0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYXZlbFJ1bGVSZXN1bHQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRyYXZlbFJ1bGVSZXN1bHQ6CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlUmVzdWx0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYXZlbFJ1bGVSZXN1bHRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUcmF2ZWxSdWxlUmVzdWx0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZVJlc3VsdCgKICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdPVVRCT1VORCcsCiAgICAgICAgICAgICAgICBpc192ZXJpZmllZCA9IFRydWUsCiAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUNDRVBUJywKICAgICAgICAgICAgICAgIHByb3ZpZGVyX3Jlc3BvbnNlID0geyB9LAogICAgICAgICAgICAgICAgbWF0Y2hlZF9ydWxlID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbWF0Y2hlZF9ydWxlLlRyYXZlbFJ1bGVNYXRjaGVkUnVsZSgKICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLCAKICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywgCiAgICAgICAgICAgICAgICAgICAgYW1vdW50X3VzZCA9IDEwMDAuNSwgCiAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gMC4wMjUsIAogICAgICAgICAgICAgICAgICAgIGFzc2V0ID0gJ0JUQycsIAogICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdBQ0NFUFQnLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZVJlc3VsdCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmF2ZWxSdWxlUmVzdWx0KHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJhdmVsUnVsZVJlc3VsdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_travel_rule_status_enum.py b/test/test_travel_rule_status_enum.py index 4cd58e4f..35aa2c25 100644 --- a/test/test_travel_rule_status_enum.py +++ b/test/test_travel_rule_status_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_status_enum import TravelRuleStatusEnum - - -class TestTravelRuleStatusEnum(unittest.TestCase): - """TravelRuleStatusEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTravelRuleStatusEnum(self): - """Test TravelRuleStatusEnum""" - # inst = TravelRuleStatusEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3N0YXR1c19lbnVtIGltcG9ydCBUcmF2ZWxSdWxlU3RhdHVzRW51bQoKCmNsYXNzIFRlc3RUcmF2ZWxSdWxlU3RhdHVzRW51bSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmF2ZWxSdWxlU3RhdHVzRW51bSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RUcmF2ZWxSdWxlU3RhdHVzRW51bShzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVTdGF0dXNFbnVtIiIiCiAgICAgICAgIyBpbnN0ID0gVHJhdmVsUnVsZVN0YXR1c0VudW0oKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_travel_rule_transaction_blockchain_info.py b/test/test_travel_rule_transaction_blockchain_info.py index 80ad3b13..43a9a9fa 100644 --- a/test/test_travel_rule_transaction_blockchain_info.py +++ b/test/test_travel_rule_transaction_blockchain_info.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_transaction_blockchain_info import ( - TravelRuleTransactionBlockchainInfo, -) - - -class TestTravelRuleTransactionBlockchainInfo(unittest.TestCase): - """TravelRuleTransactionBlockchainInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleTransactionBlockchainInfo: - """Test TravelRuleTransactionBlockchainInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleTransactionBlockchainInfo` - """ - model = TravelRuleTransactionBlockchainInfo() - if include_optional: - return TravelRuleTransactionBlockchainInfo( - tx_hash = '6.685730843558756E+76', - origin = '8.41132469470587E+47', - destination = '8.41132469470587E+47' - ) - else: - return TravelRuleTransactionBlockchainInfo( - ) - """ - - def testTravelRuleTransactionBlockchainInfo(self): - """Test TravelRuleTransactionBlockchainInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3RyYW5zYWN0aW9uX2Jsb2NrY2hhaW5faW5mbyBpbXBvcnQgKAogICAgVHJhdmVsUnVsZVRyYW5zYWN0aW9uQmxvY2tjaGFpbkluZm8sCikKCgpjbGFzcyBUZXN0VHJhdmVsUnVsZVRyYW5zYWN0aW9uQmxvY2tjaGFpbkluZm8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhdmVsUnVsZVRyYW5zYWN0aW9uQmxvY2tjaGFpbkluZm8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRyYXZlbFJ1bGVUcmFuc2FjdGlvbkJsb2NrY2hhaW5JbmZvOgogICAgICAgICIiIlRlc3QgVHJhdmVsUnVsZVRyYW5zYWN0aW9uQmxvY2tjaGFpbkluZm8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhdmVsUnVsZVRyYW5zYWN0aW9uQmxvY2tjaGFpbkluZm9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUcmF2ZWxSdWxlVHJhbnNhY3Rpb25CbG9ja2NoYWluSW5mbygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRyYXZlbFJ1bGVUcmFuc2FjdGlvbkJsb2NrY2hhaW5JbmZvKAogICAgICAgICAgICAgICAgdHhfaGFzaCA9ICc2LjY4NTczMDg0MzU1ODc1NkUrNzYnLAogICAgICAgICAgICAgICAgb3JpZ2luID0gJzguNDExMzI0Njk0NzA1ODdFKzQ3JywKICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gJzguNDExMzI0Njk0NzA1ODdFKzQ3JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRyYXZlbFJ1bGVUcmFuc2FjdGlvbkJsb2NrY2hhaW5JbmZvKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRyYXZlbFJ1bGVUcmFuc2FjdGlvbkJsb2NrY2hhaW5JbmZvKHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJhdmVsUnVsZVRyYW5zYWN0aW9uQmxvY2tjaGFpbkluZm8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_travel_rule_update_vasp_details.py b/test/test_travel_rule_update_vasp_details.py index ce97ddb2..d3d720de 100644 --- a/test/test_travel_rule_update_vasp_details.py +++ b/test/test_travel_rule_update_vasp_details.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_update_vasp_details import ( - TravelRuleUpdateVASPDetails, -) - - -class TestTravelRuleUpdateVASPDetails(unittest.TestCase): - """TravelRuleUpdateVASPDetails unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleUpdateVASPDetails: - """Test TravelRuleUpdateVASPDetails - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleUpdateVASPDetails` - """ - model = TravelRuleUpdateVASPDetails() - if include_optional: - return TravelRuleUpdateVASPDetails( - did = 'did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2', - pii_didkey = 'did:key:z6Mks5CZRaiooKYhq5TwtXQC1gWhwiZnmiKfFrMnYY62MhYf' - ) - else: - return TravelRuleUpdateVASPDetails( - did = 'did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2', - pii_didkey = 'did:key:z6Mks5CZRaiooKYhq5TwtXQC1gWhwiZnmiKfFrMnYY62MhYf', - ) - """ - - def testTravelRuleUpdateVASPDetails(self): - """Test TravelRuleUpdateVASPDetails""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3VwZGF0ZV92YXNwX2RldGFpbHMgaW1wb3J0ICgKICAgIFRyYXZlbFJ1bGVVcGRhdGVWQVNQRGV0YWlscywKKQoKCmNsYXNzIFRlc3RUcmF2ZWxSdWxlVXBkYXRlVkFTUERldGFpbHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhdmVsUnVsZVVwZGF0ZVZBU1BEZXRhaWxzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUcmF2ZWxSdWxlVXBkYXRlVkFTUERldGFpbHM6CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlVXBkYXRlVkFTUERldGFpbHMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhdmVsUnVsZVVwZGF0ZVZBU1BEZXRhaWxzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVHJhdmVsUnVsZVVwZGF0ZVZBU1BEZXRhaWxzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZVVwZGF0ZVZBU1BEZXRhaWxzKAogICAgICAgICAgICAgICAgZGlkID0gJ2RpZDpldGhyOjB4NDQ5NTdlNzVkNmNlNGE1YmYzN2FhZTExN2RhODY0MjJjODQ4ZjdjMicsCiAgICAgICAgICAgICAgICBwaWlfZGlka2V5ID0gJ2RpZDprZXk6ejZNa3M1Q1pSYWlvb0tZaHE1VHd0WFFDMWdXaHdpWm5taUtmRnJNbllZNjJNaFlmJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRyYXZlbFJ1bGVVcGRhdGVWQVNQRGV0YWlscygKICAgICAgICAgICAgICAgIGRpZCA9ICdkaWQ6ZXRocjoweDQ0OTU3ZTc1ZDZjZTRhNWJmMzdhYWUxMTdkYTg2NDIyYzg0OGY3YzInLAogICAgICAgICAgICAgICAgcGlpX2RpZGtleSA9ICdkaWQ6a2V5Ono2TWtzNUNaUmFpb29LWWhxNVR3dFhRQzFnV2h3aVpubWlLZkZyTW5ZWTYyTWhZZicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhdmVsUnVsZVVwZGF0ZVZBU1BEZXRhaWxzKHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJhdmVsUnVsZVVwZGF0ZVZBU1BEZXRhaWxzIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_travel_rule_validate_date_and_place_of_birth.py b/test/test_travel_rule_validate_date_and_place_of_birth.py index aebc4240..3d7dae43 100644 --- a/test/test_travel_rule_validate_date_and_place_of_birth.py +++ b/test/test_travel_rule_validate_date_and_place_of_birth.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_validate_date_and_place_of_birth import ( - TravelRuleValidateDateAndPlaceOfBirth, -) - - -class TestTravelRuleValidateDateAndPlaceOfBirth(unittest.TestCase): - """TravelRuleValidateDateAndPlaceOfBirth unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleValidateDateAndPlaceOfBirth: - """Test TravelRuleValidateDateAndPlaceOfBirth - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleValidateDateAndPlaceOfBirth` - """ - model = TravelRuleValidateDateAndPlaceOfBirth() - if include_optional: - return TravelRuleValidateDateAndPlaceOfBirth( - date_of_birth = '1990-01-01', - place_of_birth = 'New York, USA' - ) - else: - return TravelRuleValidateDateAndPlaceOfBirth( - ) - """ - - def testTravelRuleValidateDateAndPlaceOfBirth(self): - """Test TravelRuleValidateDateAndPlaceOfBirth""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2RhdGVfYW5kX3BsYWNlX29mX2JpcnRoIGltcG9ydCAoCiAgICBUcmF2ZWxSdWxlVmFsaWRhdGVEYXRlQW5kUGxhY2VPZkJpcnRoLAopCgoKY2xhc3MgVGVzdFRyYXZlbFJ1bGVWYWxpZGF0ZURhdGVBbmRQbGFjZU9mQmlydGgodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhdmVsUnVsZVZhbGlkYXRlRGF0ZUFuZFBsYWNlT2ZCaXJ0aCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhdmVsUnVsZVZhbGlkYXRlRGF0ZUFuZFBsYWNlT2ZCaXJ0aDoKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVWYWxpZGF0ZURhdGVBbmRQbGFjZU9mQmlydGgKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhdmVsUnVsZVZhbGlkYXRlRGF0ZUFuZFBsYWNlT2ZCaXJ0aGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYXZlbFJ1bGVWYWxpZGF0ZURhdGVBbmRQbGFjZU9mQmlydGgoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlVmFsaWRhdGVEYXRlQW5kUGxhY2VPZkJpcnRoKAogICAgICAgICAgICAgICAgZGF0ZV9vZl9iaXJ0aCA9ICcxOTkwLTAxLTAxJywKICAgICAgICAgICAgICAgIHBsYWNlX29mX2JpcnRoID0gJ05ldyBZb3JrLCBVU0EnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZVZhbGlkYXRlRGF0ZUFuZFBsYWNlT2ZCaXJ0aCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmF2ZWxSdWxlVmFsaWRhdGVEYXRlQW5kUGxhY2VPZkJpcnRoKHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJhdmVsUnVsZVZhbGlkYXRlRGF0ZUFuZFBsYWNlT2ZCaXJ0aCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_travel_rule_validate_full_transaction_request.py b/test/test_travel_rule_validate_full_transaction_request.py index 6e220bca..aad1ba23 100644 --- a/test/test_travel_rule_validate_full_transaction_request.py +++ b/test/test_travel_rule_validate_full_transaction_request.py @@ -1,410 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_validate_full_transaction_request import ( - TravelRuleValidateFullTransactionRequest, -) - - -class TestTravelRuleValidateFullTransactionRequest(unittest.TestCase): - """TravelRuleValidateFullTransactionRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> TravelRuleValidateFullTransactionRequest: - """Test TravelRuleValidateFullTransactionRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleValidateFullTransactionRequest` - """ - model = TravelRuleValidateFullTransactionRequest() - if include_optional: - return TravelRuleValidateFullTransactionRequest( - originator_vas_pdid = 'did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2', - beneficiary_vas_pdid = 'did:ethr:0x17fe2dd11a2daa7f6c1fdf22532a4763f963aea6', - transaction_asset = 'BTC', - transaction_amount = '10', - originator_vas_pname = 'Originator VASP Ltd.', - beneficiary_vas_pname = 'Beneficiary VASP Inc.', - transaction_blockchain_info = fireblocks.models.travel_rule_transaction_blockchain_info.TravelRuleTransactionBlockchainInfo( - tx_hash = '6.685730843558756E+76', - origin = '8.41132469470587E+47', - destination = '8.41132469470587E+47', ), - originator = fireblocks.models.travel_rule_validate_pii_ivms.TravelRuleValidatePiiIVMS( - originator_persons = [ - fireblocks.models.travel_rule_validate_person.TravelRuleValidatePerson( - natural_person = fireblocks.models.travel_rule_validate_natural_person.TravelRuleValidateNaturalPerson( - name = [ - fireblocks.models.travel_rule_validate_natural_person_name_identifier.TravelRuleValidateNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_validate_natural_name_identifier.TravelRuleValidateNaturalNameIdentifier( - primary_identifier = 'John', - secondary_identifier = 'Doe', - name_identifier_type = 'LEGL', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_validate_natural_name_identifier.TravelRuleValidateNaturalNameIdentifier( - primary_identifier = 'John', - secondary_identifier = 'Doe', - name_identifier_type = 'LEGL', ) - ], - phonetic_name_identifier = [ - - ], ) - ], - geographic_address = [ - fireblocks.models.travel_rule_validate_geographic_address.TravelRuleValidateGeographicAddress( - street_name = '123 Main St', - town_name = 'New York', - country = 'US', - building_number = '123', - post_code = '12345', - address_type = 'HOME', - department = 'IT', - sub_department = 'Security', - building_name = 'Acme Building', - floor = '1', - post_box = '123', - room = '101', - town_location_name = 'Downtown', - district_name = 'Manhattan', - country_sub_division = 'New York', - address_line = ["123 Main St","New York","NY 12345"], ) - ], - national_identification = fireblocks.models.travel_rule_validate_national_identification.TravelRuleValidateNationalIdentification( - country_of_issue = 'US', - national_identifier = '123456789', - national_identifier_type = 'NATIONAL_ID', - registration_authority = 'RA123456', ), - date_and_place_of_birth = fireblocks.models.travel_rule_validate_date_and_place_of_birth.TravelRuleValidateDateAndPlaceOfBirth( - date_of_birth = '1990-01-01', - place_of_birth = 'New York, USA', ), - customer_identification = 'CUST123456', - country_of_residence = 'US', - customer_number = '123456789', ), - legal_person = fireblocks.models.travel_rule_validate_legal_person.TravelRuleValidateLegalPerson( - customer_identification = 'CUST987654', - customer_number = '123456789', - country_of_registration = 'US', ), ) - ], - beneficiary_persons = [ - fireblocks.models.travel_rule_validate_person.TravelRuleValidatePerson() - ], - account_number = [ - '' - ], ), - beneficiary = fireblocks.models.travel_rule_validate_pii_ivms.TravelRuleValidatePiiIVMS( - originator_persons = [ - fireblocks.models.travel_rule_validate_person.TravelRuleValidatePerson( - natural_person = fireblocks.models.travel_rule_validate_natural_person.TravelRuleValidateNaturalPerson( - name = [ - fireblocks.models.travel_rule_validate_natural_person_name_identifier.TravelRuleValidateNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_validate_natural_name_identifier.TravelRuleValidateNaturalNameIdentifier( - primary_identifier = 'John', - secondary_identifier = 'Doe', - name_identifier_type = 'LEGL', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_validate_natural_name_identifier.TravelRuleValidateNaturalNameIdentifier( - primary_identifier = 'John', - secondary_identifier = 'Doe', - name_identifier_type = 'LEGL', ) - ], - phonetic_name_identifier = [ - - ], ) - ], - geographic_address = [ - fireblocks.models.travel_rule_validate_geographic_address.TravelRuleValidateGeographicAddress( - street_name = '123 Main St', - town_name = 'New York', - country = 'US', - building_number = '123', - post_code = '12345', - address_type = 'HOME', - department = 'IT', - sub_department = 'Security', - building_name = 'Acme Building', - floor = '1', - post_box = '123', - room = '101', - town_location_name = 'Downtown', - district_name = 'Manhattan', - country_sub_division = 'New York', - address_line = ["123 Main St","New York","NY 12345"], ) - ], - national_identification = fireblocks.models.travel_rule_validate_national_identification.TravelRuleValidateNationalIdentification( - country_of_issue = 'US', - national_identifier = '123456789', - national_identifier_type = 'NATIONAL_ID', - registration_authority = 'RA123456', ), - date_and_place_of_birth = fireblocks.models.travel_rule_validate_date_and_place_of_birth.TravelRuleValidateDateAndPlaceOfBirth( - date_of_birth = '1990-01-01', - place_of_birth = 'New York, USA', ), - customer_identification = 'CUST123456', - country_of_residence = 'US', - customer_number = '123456789', ), - legal_person = fireblocks.models.travel_rule_validate_legal_person.TravelRuleValidateLegalPerson( - customer_identification = 'CUST987654', - customer_number = '123456789', - country_of_registration = 'US', ), ) - ], - beneficiary_persons = [ - fireblocks.models.travel_rule_validate_person.TravelRuleValidatePerson() - ], - account_number = [ - '' - ], ), - encrypted = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...', - protocol = 'TRLight', - skip_beneficiary_data_validation = False, - travel_rule_behavior = True, - originator_ref = 'ORG123456', - beneficiary_ref = 'BEN654321', - travel_rule_behavior_ref = 'TRB987654', - originator_proof = fireblocks.models.travel_rule_ownership_proof.TravelRuleOwnershipProof( - type = 'eip-191', - proof = '0x3dd4a17a...ce4a2bcd1b', - attestation = 'I certify that ETH account 0x896B...0b9b belongs to me.', - address = '0x896B...0b9b', - wallet_provider = 'Metamask', - url = 'https://example.com/uploaded_image.png', - confirmed = True, ), - beneficiary_proof = fireblocks.models.travel_rule_ownership_proof.TravelRuleOwnershipProof( - type = 'eip-191', - proof = '0x3dd4a17a...ce4a2bcd1b', - attestation = 'I certify that ETH account 0x896B...0b9b belongs to me.', - address = '0x896B...0b9b', - wallet_provider = 'Metamask', - url = 'https://example.com/uploaded_image.png', - confirmed = True, ), - beneficiary_did = 'did:key:z6Mkf67890Zghijkl67890', - originator_did = 'did:key:z6Mkf12345Zabcdef12345', - is_non_custodial = True, - notification_email = '', - pii = fireblocks.models.travel_rule_pii_ivms.TravelRulePiiIVMS( - originator_persons = [ - fireblocks.models.travel_rule_person.TravelRulePerson( - natural_person = fireblocks.models.travel_rule_natural_person.TravelRuleNaturalPerson( - name = [ - fireblocks.models.travel_rule_natural_person_name_identifier.TravelRuleNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_natural_name_identifier.TravelRuleNaturalNameIdentifier( - primary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - secondary_identifier = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', - name_identifier_type = 'QmP6wx8bx3SVNG3hd3SZKnS5pDjUan4y9H1VtyRqu7tsAv', ) - ], - phonetic_name_identifier = [ - - ], ) - ], - geographic_address = [ - fireblocks.models.travel_rule_geographic_address.TravelRuleGeographicAddress( - street_name = 'QmZGXXsKPk5iPS97LLjXB5e8Qs555ocdzcpbPMXvt84Ji9', - town_name = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - country = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - building_number = 'QmUFpNkxdsVtebDSUz5eP51kzoysXmqj2gBgeH11PD7SVP', - post_code = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - address_type = 'Qmdr9LcChZsoivS6uAhe7Qk7cGLDAx73wBZTVvq4WoU71H', - department = 'QmN7fb65x5MyA7RKyhbXaUKvJ7U4Y9eqpEZTmJYpNyEG8', - sub_department = 'QmTkfyGh54tXNqFxyEGK9NyTJZYpQ6RZ9zpNykxykME8s', - building_name = 'QmXJfGk85t6RKyhbXaEK9Nz4MEeMKypq6EY9zpJyC9nM9', - floor = 'QmZP5G7fhZpMyQxXnT9KyR6ybXaEM9zpJy4ME9MkTJGE1', - post_box = 'QmTkfYRGK54xFqXyJYNZyE9kY9zpMKytJnXy5z9EME9sJ', - room = 'QmRYXnT9KyhbXaEMZpMyxMkZ9zpYNYTJ4ME5kCGE7fhMJ', - town_location_name = 'QmNpZTyXJXnT9K6EYZpQxYNYMkC5p4kGEfhnkMJzpYT9Jm', - district_name = 'QmT9p6ERKyNYXnTyhbpMYJ4zpYT9kMJZT9QmEMGZ5kMhCy', - country_sub_division = 'QmK9yTbXaZpMYJYTYp6NT9QmEMGZT9p9kMJfhyGE4Z7k5C', - address_line = ["QmNp9kMjfhGZ5kMJzpNYXZTy6NQmZYEMGZ4kZT9Y6pNYT"], ) - ], - national_identification = fireblocks.models.travel_rule_national_identification.TravelRuleNationalIdentification( - country_of_issue = 'QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm', - national_identifier = 'QmdR6qLnZ7Kwf5cBaXG8QFQenEvRg9JNZeoPranVuGd63z', - national_identifier_type = 'QmUKTg3aFJFhMz1o9gPqA3MgTRwd2LvDLwWTPHYUoMEYVi', - registration_authority = 'QmV9KJMyT9RJzpYfhME5xNCZ4G67fEkzTpRMyJzp9kTNYk', ), - date_and_place_of_birth = fireblocks.models.travel_rule_date_and_place_of_birth.TravelRuleDateAndPlaceOfBirth( - date_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', - place_of_birth = 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt', ), - customer_identification = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - country_of_residence = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', - customer_number = 'QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj', ), - legal_person = fireblocks.models.travel_rule_legal_person.TravelRuleLegalPerson( - customer_identification = 'QmRY9AA4Uit2JRTxDzfzshrJdTK86Kf5HriA3dXDnihDmy', - customer_number = 'QmXvyML3AJUFpBbJqL5NVp7Vn7xNkuedTsSMk93duLCNW8', - country_of_registration = 'QmeoTk6UPruEAYNbJEAHdQYc53ap9BXmpnPMcuvs8wutdr', ), ) - ], - beneficiary_persons = [ - fireblocks.models.travel_rule_person.TravelRulePerson() - ], - account_number = [ - 'QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt' - ], ), - pii_url = '' - ) - else: - return TravelRuleValidateFullTransactionRequest( - originator = fireblocks.models.travel_rule_validate_pii_ivms.TravelRuleValidatePiiIVMS( - originator_persons = [ - fireblocks.models.travel_rule_validate_person.TravelRuleValidatePerson( - natural_person = fireblocks.models.travel_rule_validate_natural_person.TravelRuleValidateNaturalPerson( - name = [ - fireblocks.models.travel_rule_validate_natural_person_name_identifier.TravelRuleValidateNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_validate_natural_name_identifier.TravelRuleValidateNaturalNameIdentifier( - primary_identifier = 'John', - secondary_identifier = 'Doe', - name_identifier_type = 'LEGL', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_validate_natural_name_identifier.TravelRuleValidateNaturalNameIdentifier( - primary_identifier = 'John', - secondary_identifier = 'Doe', - name_identifier_type = 'LEGL', ) - ], - phonetic_name_identifier = [ - - ], ) - ], - geographic_address = [ - fireblocks.models.travel_rule_validate_geographic_address.TravelRuleValidateGeographicAddress( - street_name = '123 Main St', - town_name = 'New York', - country = 'US', - building_number = '123', - post_code = '12345', - address_type = 'HOME', - department = 'IT', - sub_department = 'Security', - building_name = 'Acme Building', - floor = '1', - post_box = '123', - room = '101', - town_location_name = 'Downtown', - district_name = 'Manhattan', - country_sub_division = 'New York', - address_line = ["123 Main St","New York","NY 12345"], ) - ], - national_identification = fireblocks.models.travel_rule_validate_national_identification.TravelRuleValidateNationalIdentification( - country_of_issue = 'US', - national_identifier = '123456789', - national_identifier_type = 'NATIONAL_ID', - registration_authority = 'RA123456', ), - date_and_place_of_birth = fireblocks.models.travel_rule_validate_date_and_place_of_birth.TravelRuleValidateDateAndPlaceOfBirth( - date_of_birth = '1990-01-01', - place_of_birth = 'New York, USA', ), - customer_identification = 'CUST123456', - country_of_residence = 'US', - customer_number = '123456789', ), - legal_person = fireblocks.models.travel_rule_validate_legal_person.TravelRuleValidateLegalPerson( - customer_identification = 'CUST987654', - customer_number = '123456789', - country_of_registration = 'US', ), ) - ], - beneficiary_persons = [ - fireblocks.models.travel_rule_validate_person.TravelRuleValidatePerson() - ], - account_number = [ - '' - ], ), - beneficiary = fireblocks.models.travel_rule_validate_pii_ivms.TravelRuleValidatePiiIVMS( - originator_persons = [ - fireblocks.models.travel_rule_validate_person.TravelRuleValidatePerson( - natural_person = fireblocks.models.travel_rule_validate_natural_person.TravelRuleValidateNaturalPerson( - name = [ - fireblocks.models.travel_rule_validate_natural_person_name_identifier.TravelRuleValidateNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_validate_natural_name_identifier.TravelRuleValidateNaturalNameIdentifier( - primary_identifier = 'John', - secondary_identifier = 'Doe', - name_identifier_type = 'LEGL', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_validate_natural_name_identifier.TravelRuleValidateNaturalNameIdentifier( - primary_identifier = 'John', - secondary_identifier = 'Doe', - name_identifier_type = 'LEGL', ) - ], - phonetic_name_identifier = [ - - ], ) - ], - geographic_address = [ - fireblocks.models.travel_rule_validate_geographic_address.TravelRuleValidateGeographicAddress( - street_name = '123 Main St', - town_name = 'New York', - country = 'US', - building_number = '123', - post_code = '12345', - address_type = 'HOME', - department = 'IT', - sub_department = 'Security', - building_name = 'Acme Building', - floor = '1', - post_box = '123', - room = '101', - town_location_name = 'Downtown', - district_name = 'Manhattan', - country_sub_division = 'New York', - address_line = ["123 Main St","New York","NY 12345"], ) - ], - national_identification = fireblocks.models.travel_rule_validate_national_identification.TravelRuleValidateNationalIdentification( - country_of_issue = 'US', - national_identifier = '123456789', - national_identifier_type = 'NATIONAL_ID', - registration_authority = 'RA123456', ), - date_and_place_of_birth = fireblocks.models.travel_rule_validate_date_and_place_of_birth.TravelRuleValidateDateAndPlaceOfBirth( - date_of_birth = '1990-01-01', - place_of_birth = 'New York, USA', ), - customer_identification = 'CUST123456', - country_of_residence = 'US', - customer_number = '123456789', ), - legal_person = fireblocks.models.travel_rule_validate_legal_person.TravelRuleValidateLegalPerson( - customer_identification = 'CUST987654', - customer_number = '123456789', - country_of_registration = 'US', ), ) - ], - beneficiary_persons = [ - fireblocks.models.travel_rule_validate_person.TravelRuleValidatePerson() - ], - account_number = [ - '' - ], ), - ) - """ - - def testTravelRuleValidateFullTransactionRequest(self): - """Test TravelRuleValidateFullTransactionRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2Z1bGxfdHJhbnNhY3Rpb25fcmVxdWVzdCBpbXBvcnQgKAogICAgVHJhdmVsUnVsZVZhbGlkYXRlRnVsbFRyYW5zYWN0aW9uUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RUcmF2ZWxSdWxlVmFsaWRhdGVGdWxsVHJhbnNhY3Rpb25SZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYXZlbFJ1bGVWYWxpZGF0ZUZ1bGxUcmFuc2FjdGlvblJlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKAogICAgICAgIHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwKICAgICkgLT4gVHJhdmVsUnVsZVZhbGlkYXRlRnVsbFRyYW5zYWN0aW9uUmVxdWVzdDoKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVWYWxpZGF0ZUZ1bGxUcmFuc2FjdGlvblJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhdmVsUnVsZVZhbGlkYXRlRnVsbFRyYW5zYWN0aW9uUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYXZlbFJ1bGVWYWxpZGF0ZUZ1bGxUcmFuc2FjdGlvblJlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlVmFsaWRhdGVGdWxsVHJhbnNhY3Rpb25SZXF1ZXN0KAogICAgICAgICAgICAgICAgb3JpZ2luYXRvcl92YXNfcGRpZCA9ICdkaWQ6ZXRocjoweDQ0OTU3ZTc1ZDZjZTRhNWJmMzdhYWUxMTdkYTg2NDIyYzg0OGY3YzInLAogICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfdmFzX3BkaWQgPSAnZGlkOmV0aHI6MHgxN2ZlMmRkMTFhMmRhYTdmNmMxZmRmMjI1MzJhNDc2M2Y5NjNhZWE2JywKICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uX2Fzc2V0ID0gJ0JUQycsCiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbl9hbW91bnQgPSAnMTAnLAogICAgICAgICAgICAgICAgb3JpZ2luYXRvcl92YXNfcG5hbWUgPSAnT3JpZ2luYXRvciBWQVNQIEx0ZC4nLAogICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfdmFzX3BuYW1lID0gJ0JlbmVmaWNpYXJ5IFZBU1AgSW5jLicsCiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbl9ibG9ja2NoYWluX2luZm8gPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV90cmFuc2FjdGlvbl9ibG9ja2NoYWluX2luZm8uVHJhdmVsUnVsZVRyYW5zYWN0aW9uQmxvY2tjaGFpbkluZm8oCiAgICAgICAgICAgICAgICAgICAgdHhfaGFzaCA9ICc2LjY4NTczMDg0MzU1ODc1NkUrNzYnLCAKICAgICAgICAgICAgICAgICAgICBvcmlnaW4gPSAnOC40MTEzMjQ2OTQ3MDU4N0UrNDcnLCAKICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9ICc4LjQxMTMyNDY5NDcwNTg3RSs0NycsICksCiAgICAgICAgICAgICAgICBvcmlnaW5hdG9yID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfcGlpX2l2bXMuVHJhdmVsUnVsZVZhbGlkYXRlUGlpSVZNUygKICAgICAgICAgICAgICAgICAgICBvcmlnaW5hdG9yX3BlcnNvbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX3BlcnNvbi5UcmF2ZWxSdWxlVmFsaWRhdGVQZXJzb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXR1cmFsX3BlcnNvbiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfcGVyc29uLlRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyLlRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsTmFtZUlkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlfaWRlbnRpZmllciA9ICdKb2huJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeV9pZGVudGlmaWVyID0gJ0RvZScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXJfdHlwZSA9ICdMRUdMJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxfbmFtZV9pZGVudGlmaWVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyLlRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxOYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9pZGVudGlmaWVyID0gJ0pvaG4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5X2lkZW50aWZpZXIgPSAnRG9lJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllcl90eXBlID0gJ0xFR0wnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG9uZXRpY19uYW1lX2lkZW50aWZpZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW9ncmFwaGljX2FkZHJlc3MgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2dlb2dyYXBoaWNfYWRkcmVzcy5UcmF2ZWxSdWxlVmFsaWRhdGVHZW9ncmFwaGljQWRkcmVzcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVldF9uYW1lID0gJzEyMyBNYWluIFN0JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3duX25hbWUgPSAnTmV3IFlvcmsnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnkgPSAnVVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nX251bWJlciA9ICcxMjMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfY29kZSA9ICcxMjM0NScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc190eXBlID0gJ0hPTUUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGFydG1lbnQgPSAnSVQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl9kZXBhcnRtZW50ID0gJ1NlY3VyaXR5JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19uYW1lID0gJ0FjbWUgQnVpbGRpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb29yID0gJzEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfYm94ID0gJzEyMycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vbSA9ICcxMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvd25fbG9jYXRpb25fbmFtZSA9ICdEb3dudG93bicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzdHJpY3RfbmFtZSA9ICdNYW5oYXR0YW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfc3ViX2RpdmlzaW9uID0gJ05ldyBZb3JrJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX2xpbmUgPSBbIjEyMyBNYWluIFN0IiwiTmV3IFlvcmsiLCJOWSAxMjM0NSJdLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpY2F0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0aW9uYWxfaWRlbnRpZmljYXRpb24uVHJhdmVsUnVsZVZhbGlkYXRlTmF0aW9uYWxJZGVudGlmaWNhdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9pc3N1ZSA9ICdVUycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWVyID0gJzEyMzQ1Njc4OScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWVyX3R5cGUgPSAnTkFUSU9OQUxfSUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0cmF0aW9uX2F1dGhvcml0eSA9ICdSQTEyMzQ1NicsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfYW5kX3BsYWNlX29mX2JpcnRoID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGguVHJhdmVsUnVsZVZhbGlkYXRlRGF0ZUFuZFBsYWNlT2ZCaXJ0aCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9vZl9iaXJ0aCA9ICcxOTkwLTAxLTAxJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlX29mX2JpcnRoID0gJ05ldyBZb3JrLCBVU0EnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pZGVudGlmaWNhdGlvbiA9ICdDVVNUMTIzNDU2JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9yZXNpZGVuY2UgPSAnVVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9udW1iZXIgPSAnMTIzNDU2Nzg5JywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdhbF9wZXJzb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9sZWdhbF9wZXJzb24uVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfaWRlbnRpZmljYXRpb24gPSAnQ1VTVDk4NzY1NCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX251bWJlciA9ICcxMjM0NTY3ODknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX3JlZ2lzdHJhdGlvbiA9ICdVUycsICksICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfcGVyc29ucyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfcGVyc29uLlRyYXZlbFJ1bGVWYWxpZGF0ZVBlcnNvbigpCiAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgIGFjY291bnRfbnVtYmVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICBdLCApLAogICAgICAgICAgICAgICAgYmVuZWZpY2lhcnkgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9waWlfaXZtcy5UcmF2ZWxSdWxlVmFsaWRhdGVQaWlJVk1TKAogICAgICAgICAgICAgICAgICAgIG9yaWdpbmF0b3JfcGVyc29ucyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfcGVyc29uLlRyYXZlbFJ1bGVWYWxpZGF0ZVBlcnNvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdHVyYWxfcGVyc29uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9wZXJzb24uVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX3BlcnNvbl9uYW1lX2lkZW50aWZpZXIuVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9pZGVudGlmaWVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyLlRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxOYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9pZGVudGlmaWVyID0gJ0pvaG4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5X2lkZW50aWZpZXIgPSAnRG9lJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllcl90eXBlID0gJ0xFR0wnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbF9uYW1lX2lkZW50aWZpZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9uYW1lX2lkZW50aWZpZXIuVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbE5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2lkZW50aWZpZXIgPSAnSm9obicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlfaWRlbnRpZmllciA9ICdEb2UnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9pZGVudGlmaWVyX3R5cGUgPSAnTEVHTCcsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob25ldGljX25hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlb2dyYXBoaWNfYWRkcmVzcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfZ2VvZ3JhcGhpY19hZGRyZXNzLlRyYXZlbFJ1bGVWYWxpZGF0ZUdlb2dyYXBoaWNBZGRyZXNzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWV0X25hbWUgPSAnMTIzIE1haW4gU3QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvd25fbmFtZSA9ICdOZXcgWW9yaycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeSA9ICdVUycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRpbmdfbnVtYmVyID0gJzEyMycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdF9jb2RlID0gJzEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX3R5cGUgPSAnSE9NRScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwYXJ0bWVudCA9ICdJVCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViX2RlcGFydG1lbnQgPSAnU2VjdXJpdHknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nX25hbWUgPSAnQWNtZSBCdWlsZGluZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvb3IgPSAnMScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdF9ib3ggPSAnMTIzJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb29tID0gJzEwMScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG93bl9sb2NhdGlvbl9uYW1lID0gJ0Rvd250b3duJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0cmljdF9uYW1lID0gJ01hbmhhdHRhbicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9zdWJfZGl2aXNpb24gPSAnTmV3IFlvcmsnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfbGluZSA9IFsiMTIzIE1haW4gU3QiLCJOZXcgWW9yayIsIk5ZIDEyMzQ1Il0sICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmljYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXRpb25hbF9pZGVudGlmaWNhdGlvbi5UcmF2ZWxSdWxlVmFsaWRhdGVOYXRpb25hbElkZW50aWZpY2F0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX2lzc3VlID0gJ1VTJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpZXIgPSAnMTIzNDU2Nzg5JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSA9ICdOQVRJT05BTF9JRCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpc3RyYXRpb25fYXV0aG9yaXR5ID0gJ1JBMTIzNDU2JywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGggPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9kYXRlX2FuZF9wbGFjZV9vZl9iaXJ0aC5UcmF2ZWxSdWxlVmFsaWRhdGVEYXRlQW5kUGxhY2VPZkJpcnRoKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX29mX2JpcnRoID0gJzE5OTAtMDEtMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vfb2ZfYmlydGggPSAnTmV3IFlvcmssIFVTQScsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX2lkZW50aWZpY2F0aW9uID0gJ0NVU1QxMjM0NTYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX3Jlc2lkZW5jZSA9ICdVUycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX251bWJlciA9ICcxMjM0NTY3ODknLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2FsX3BlcnNvbiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2xlZ2FsX3BlcnNvbi5UcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pZGVudGlmaWNhdGlvbiA9ICdDVVNUOTg3NjU0JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfbnVtYmVyID0gJzEyMzQ1Njc4OScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfcmVnaXN0cmF0aW9uID0gJ1VTJywgKSwgKQogICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV9wZXJzb25zID0gWwogICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9wZXJzb24uVHJhdmVsUnVsZVZhbGlkYXRlUGVyc29uKCkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9udW1iZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgIF0sICksCiAgICAgICAgICAgICAgICBlbmNyeXB0ZWQgPSAnZXlKaGJHY2lPaUpJVXpJMU5pSXNJblI1Y0NJNklrcFhWQ0o5Li4uJywKICAgICAgICAgICAgICAgIHByb3RvY29sID0gJ1RSTGlnaHQnLAogICAgICAgICAgICAgICAgc2tpcF9iZW5lZmljaWFyeV9kYXRhX3ZhbGlkYXRpb24gPSBGYWxzZSwKICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX2JlaGF2aW9yID0gVHJ1ZSwKICAgICAgICAgICAgICAgIG9yaWdpbmF0b3JfcmVmID0gJ09SRzEyMzQ1NicsCiAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV9yZWYgPSAnQkVONjU0MzIxJywKICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX2JlaGF2aW9yX3JlZiA9ICdUUkI5ODc2NTQnLAogICAgICAgICAgICAgICAgb3JpZ2luYXRvcl9wcm9vZiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX293bmVyc2hpcF9wcm9vZi5UcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2YoCiAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdlaXAtMTkxJywgCiAgICAgICAgICAgICAgICAgICAgcHJvb2YgPSAnMHgzZGQ0YTE3YS4uLmNlNGEyYmNkMWInLCAKICAgICAgICAgICAgICAgICAgICBhdHRlc3RhdGlvbiA9ICdJIGNlcnRpZnkgdGhhdCBFVEggYWNjb3VudCAweDg5NkIuLi4wYjliIGJlbG9uZ3MgdG8gbWUuJywgCiAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweDg5NkIuLi4wYjliJywgCiAgICAgICAgICAgICAgICAgICAgd2FsbGV0X3Byb3ZpZGVyID0gJ01ldGFtYXNrJywgCiAgICAgICAgICAgICAgICAgICAgdXJsID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vdXBsb2FkZWRfaW1hZ2UucG5nJywgCiAgICAgICAgICAgICAgICAgICAgZGlkID0gJ2RpZDprZXk6ejZNa2YxMjM0NVphYmNkZWYxMjM0NScsIAogICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICd2ZXJpZmllZCcsIAogICAgICAgICAgICAgICAgICAgIGNvbmZpcm1lZCA9IFRydWUsICksCiAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV9wcm9vZiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX293bmVyc2hpcF9wcm9vZi5UcmF2ZWxSdWxlT3duZXJzaGlwUHJvb2YoCiAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdlaXAtMTkxJywgCiAgICAgICAgICAgICAgICAgICAgcHJvb2YgPSAnMHgzZGQ0YTE3YS4uLmNlNGEyYmNkMWInLCAKICAgICAgICAgICAgICAgICAgICBhdHRlc3RhdGlvbiA9ICdJIGNlcnRpZnkgdGhhdCBFVEggYWNjb3VudCAweDg5NkIuLi4wYjliIGJlbG9uZ3MgdG8gbWUuJywgCiAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweDg5NkIuLi4wYjliJywgCiAgICAgICAgICAgICAgICAgICAgd2FsbGV0X3Byb3ZpZGVyID0gJ01ldGFtYXNrJywgCiAgICAgICAgICAgICAgICAgICAgdXJsID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vdXBsb2FkZWRfaW1hZ2UucG5nJywgCiAgICAgICAgICAgICAgICAgICAgZGlkID0gJ2RpZDprZXk6ejZNa2YxMjM0NVphYmNkZWYxMjM0NScsIAogICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICd2ZXJpZmllZCcsIAogICAgICAgICAgICAgICAgICAgIGNvbmZpcm1lZCA9IFRydWUsICksCiAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV9kaWQgPSAnZGlkOmtleTp6Nk1rZjY3ODkwWmdoaWprbDY3ODkwJywKICAgICAgICAgICAgICAgIG9yaWdpbmF0b3JfZGlkID0gJ2RpZDprZXk6ejZNa2YxMjM0NVphYmNkZWYxMjM0NScsCiAgICAgICAgICAgICAgICBpc19ub25fY3VzdG9kaWFsID0gVHJ1ZSwKICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbl9lbWFpbCA9ICcnLAogICAgICAgICAgICAgICAgcGlpID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfcGlpX2l2bXMuVHJhdmVsUnVsZVBpaUlWTVMoCiAgICAgICAgICAgICAgICAgICAgb3JpZ2luYXRvcl9wZXJzb25zID0gWwogICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9wZXJzb24uVHJhdmVsUnVsZVBlcnNvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdHVyYWxfcGVyc29uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9wZXJzb24uVHJhdmVsUnVsZU5hdHVyYWxQZXJzb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyLlRyYXZlbFJ1bGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfbmF0dXJhbF9uYW1lX2lkZW50aWZpZXIuVHJhdmVsUnVsZU5hdHVyYWxOYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9pZGVudGlmaWVyID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5X2lkZW50aWZpZXIgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXJfdHlwZSA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxfbmFtZV9pZGVudGlmaWVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyLlRyYXZlbFJ1bGVOYXR1cmFsTmFtZUlkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlfaWRlbnRpZmllciA9ICdRbVA2d3g4YngzU1ZORzNoZDNTWktuUzVwRGpVYW40eTlIMVZ0eVJxdTd0c0F2JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeV9pZGVudGlmaWVyID0gJ1FtUDZ3eDhieDNTVk5HM2hkM1NaS25TNXBEalVhbjR5OUgxVnR5UnF1N3RzQXYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9pZGVudGlmaWVyX3R5cGUgPSAnUW1QNnd4OGJ4M1NWTkczaGQzU1pLblM1cERqVWFuNHk5SDFWdHlScXU3dHNBdicsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob25ldGljX25hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlb2dyYXBoaWNfYWRkcmVzcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfZ2VvZ3JhcGhpY19hZGRyZXNzLlRyYXZlbFJ1bGVHZW9ncmFwaGljQWRkcmVzcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVldF9uYW1lID0gJ1FtWkdYWHNLUGs1aVBTOTdMTGpYQjVlOFFzNTU1b2NkemNwYlBNWHZ0ODRKaTknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvd25fbmFtZSA9ICdRbU5rRXQ5VmRuaGplZlFNWG8zWmFaQXM3NjV1Z29XaWF6YXFjWTlza0hNakN0JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5ID0gJ1FtUkdIZG94UWZTaTZ0ZXZ5dmFZR3pzOEJWU3RmcUpxRXlyTVlxVWZ6WHhrbW0nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nX251bWJlciA9ICdRbVVGcE5reGRzVnRlYkRTVXo1ZVA1MWt6b3lzWG1xajJnQmdlSDExUEQ3U1ZQJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0X2NvZGUgPSAnUW1USnNLM3NjM2ZQRVZ3dkFwOTdVVWlWb0ZoanpRaFlYM3NDZGExSnh1Q25YaicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc190eXBlID0gJ1FtZHI5TGNDaFpzb2l2UzZ1QWhlN1FrN2NHTERBeDczd0JaVFZ2cTRXb1U3MUgnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGFydG1lbnQgPSAnUW1ON2ZiNjV4NU15QTdSS3loYlhhVUt2SjdVNFk5ZXFwRVpUbUpZcE55RUc4JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJfZGVwYXJ0bWVudCA9ICdRbVRrZnlHaDU0dFhOcUZ4eUVHSzlOeVRKWllwUTZSWjl6cE55a3h5a01FOHMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nX25hbWUgPSAnUW1YSmZHazg1dDZSS3loYlhhRUs5Tno0TUVlTUt5cHE2RVk5enBKeUM5bk05JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9vciA9ICdRbVpQNUc3ZmhacE15UXhYblQ5S3lSNnliWGFFTTl6cEp5NE1FOU1rVEpHRTEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfYm94ID0gJ1FtVGtmWVJHSzU0eEZxWHlKWU5aeUU5a1k5enBNS3l0Sm5YeTV6OUVNRTlzSicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vbSA9ICdRbVJZWG5UOUt5aGJYYUVNWnBNeXhNa1o5enBZTllUSjRNRTVrQ0dFN2ZoTUonLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvd25fbG9jYXRpb25fbmFtZSA9ICdRbU5wWlR5WEpYblQ5SzZFWVpwUXhZTllNa0M1cDRrR0VmaG5rTUp6cFlUOUptJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0cmljdF9uYW1lID0gJ1FtVDlwNkVSS3lOWVhuVHloYnBNWUo0enBZVDlrTUpaVDlRbUVNR1o1a01oQ3knLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfc3ViX2RpdmlzaW9uID0gJ1FtSzl5VGJYYVpwTVlKWVRZcDZOVDlRbUVNR1pUOXA5a01KZmh5R0U0WjdrNUMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfbGluZSA9IFsiUW1OcDlrTWpmaEdaNWtNSnpwTllYWlR5Nk5RbVpZRU1HWjRrWlQ5WTZwTllUIl0sICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmljYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9uYXRpb25hbF9pZGVudGlmaWNhdGlvbi5UcmF2ZWxSdWxlTmF0aW9uYWxJZGVudGlmaWNhdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9pc3N1ZSA9ICdRbVJHSGRveFFmU2k2dGV2eXZhWUd6czhCVlN0ZnFKcUV5ck1ZcVVmelh4a21tJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpZXIgPSAnUW1kUjZxTG5aN0t3ZjVjQmFYRzhRRlFlbkV2Umc5Sk5aZW9QcmFuVnVHZDYzeicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWVyX3R5cGUgPSAnUW1VS1RnM2FGSkZoTXoxbzlnUHFBM01nVFJ3ZDJMdkRMd1dUUEhZVW9NRVlWaScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpc3RyYXRpb25fYXV0aG9yaXR5ID0gJ1FtVjlLSk15VDlSSnpwWWZoTUU1eE5DWjRHNjdmRWt6VHBSTXlKenA5a1ROWWsnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2FuZF9wbGFjZV9vZl9iaXJ0aCA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2RhdGVfYW5kX3BsYWNlX29mX2JpcnRoLlRyYXZlbFJ1bGVEYXRlQW5kUGxhY2VPZkJpcnRoKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX29mX2JpcnRoID0gJ1FtTmtFdDlWZG5oamVmUU1YbzNaYVpBczc2NXVnb1dpYXphcWNZOXNrSE1qQ3QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vfb2ZfYmlydGggPSAnUW1Oa0V0OVZkbmhqZWZRTVhvM1phWkFzNzY1dWdvV2lhemFxY1k5c2tITWpDdCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX2lkZW50aWZpY2F0aW9uID0gJ1FtVEpzSzNzYzNmUEVWd3ZBcDk3VVVpVm9GaGp6UWhZWDNzQ2RhMUp4dUNuWGonLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX3Jlc2lkZW5jZSA9ICdRbVRKc0szc2MzZlBFVnd2QXA5N1VVaVZvRmhqelFoWVgzc0NkYTFKeHVDblhqJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfbnVtYmVyID0gJ1FtVEpzSzNzYzNmUEVWd3ZBcDk3VVVpVm9GaGp6UWhZWDNzQ2RhMUp4dUNuWGonLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2FsX3BlcnNvbiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2xlZ2FsX3BlcnNvbi5UcmF2ZWxSdWxlTGVnYWxQZXJzb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfaWRlbnRpZmljYXRpb24gPSAnUW1SWTlBQTRVaXQySlJUeER6ZnpzaHJKZFRLODZLZjVIcmlBM2RYRG5paERteScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX251bWJlciA9ICdRbVh2eU1MM0FKVUZwQmJKcUw1TlZwN1ZuN3hOa3VlZFRzU01rOTNkdUxDTlc4JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9yZWdpc3RyYXRpb24gPSAnUW1lb1RrNlVQcnVFQVlOYkpFQUhkUVljNTNhcDlCWG1wblBNY3V2czh3dXRkcicsICksICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfcGVyc29ucyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfcGVyc29uLlRyYXZlbFJ1bGVQZXJzb24oKQogICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICBhY2NvdW50X251bWJlciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgJ1FtTmtFdDlWZG5oamVmUU1YbzNaYVpBczc2NXVnb1dpYXphcWNZOXNrSE1qQ3QnCiAgICAgICAgICAgICAgICAgICAgICAgIF0sICksCiAgICAgICAgICAgICAgICBwaWlfdXJsID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlVmFsaWRhdGVGdWxsVHJhbnNhY3Rpb25SZXF1ZXN0KAogICAgICAgICAgICAgICAgb3JpZ2luYXRvciA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX3BpaV9pdm1zLlRyYXZlbFJ1bGVWYWxpZGF0ZVBpaUlWTVMoCiAgICAgICAgICAgICAgICAgICAgb3JpZ2luYXRvcl9wZXJzb25zID0gWwogICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9wZXJzb24uVHJhdmVsUnVsZVZhbGlkYXRlUGVyc29uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0dXJhbF9wZXJzb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX3BlcnNvbi5UcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfcGVyc29uX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9uYW1lX2lkZW50aWZpZXIuVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbE5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2lkZW50aWZpZXIgPSAnSm9obicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlfaWRlbnRpZmllciA9ICdEb2UnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9pZGVudGlmaWVyX3R5cGUgPSAnTEVHTCcsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsX25hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsTmFtZUlkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlfaWRlbnRpZmllciA9ICdKb2huJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeV9pZGVudGlmaWVyID0gJ0RvZScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXJfdHlwZSA9ICdMRUdMJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhvbmV0aWNfbmFtZV9pZGVudGlmaWVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvZ3JhcGhpY19hZGRyZXNzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9nZW9ncmFwaGljX2FkZHJlc3MuVHJhdmVsUnVsZVZhbGlkYXRlR2VvZ3JhcGhpY0FkZHJlc3MoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlZXRfbmFtZSA9ICcxMjMgTWFpbiBTdCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG93bl9uYW1lID0gJ05ldyBZb3JrJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5ID0gJ1VTJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19udW1iZXIgPSAnMTIzJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0X2NvZGUgPSAnMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfdHlwZSA9ICdIT01FJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBhcnRtZW50ID0gJ0lUJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJfZGVwYXJ0bWVudCA9ICdTZWN1cml0eScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRpbmdfbmFtZSA9ICdBY21lIEJ1aWxkaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9vciA9ICcxJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0X2JveCA9ICcxMjMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvb20gPSAnMTAxJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3duX2xvY2F0aW9uX25hbWUgPSAnRG93bnRvd24nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RyaWN0X25hbWUgPSAnTWFuaGF0dGFuJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X3N1Yl9kaXZpc2lvbiA9ICdOZXcgWW9yaycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19saW5lID0gWyIxMjMgTWFpbiBTdCIsIk5ldyBZb3JrIiwiTlkgMTIzNDUiXSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWNhdGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdGlvbmFsX2lkZW50aWZpY2F0aW9uLlRyYXZlbFJ1bGVWYWxpZGF0ZU5hdGlvbmFsSWRlbnRpZmljYXRpb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfaXNzdWUgPSAnVVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmllciA9ICcxMjM0NTY3ODknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmllcl90eXBlID0gJ05BVElPTkFMX0lEJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbl9hdXRob3JpdHkgPSAnUkExMjM0NTYnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2FuZF9wbGFjZV9vZl9iaXJ0aCA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2RhdGVfYW5kX3BsYWNlX29mX2JpcnRoLlRyYXZlbFJ1bGVWYWxpZGF0ZURhdGVBbmRQbGFjZU9mQmlydGgoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfb2ZfYmlydGggPSAnMTk5MC0wMS0wMScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZV9vZl9iaXJ0aCA9ICdOZXcgWW9yaywgVVNBJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfaWRlbnRpZmljYXRpb24gPSAnQ1VTVDEyMzQ1NicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfcmVzaWRlbmNlID0gJ1VTJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfbnVtYmVyID0gJzEyMzQ1Njc4OScsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnYWxfcGVyc29uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbGVnYWxfcGVyc29uLlRyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX2lkZW50aWZpY2F0aW9uID0gJ0NVU1Q5ODc2NTQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9udW1iZXIgPSAnMTIzNDU2Nzg5JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9yZWdpc3RyYXRpb24gPSAnVVMnLCApLCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5X3BlcnNvbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX3BlcnNvbi5UcmF2ZWxSdWxlVmFsaWRhdGVQZXJzb24oKQogICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICBhY2NvdW50X251bWJlciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwKICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5ID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfcGlpX2l2bXMuVHJhdmVsUnVsZVZhbGlkYXRlUGlpSVZNUygKICAgICAgICAgICAgICAgICAgICBvcmlnaW5hdG9yX3BlcnNvbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX3BlcnNvbi5UcmF2ZWxSdWxlVmFsaWRhdGVQZXJzb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXR1cmFsX3BlcnNvbiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfcGVyc29uLlRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyLlRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsTmFtZUlkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlfaWRlbnRpZmllciA9ICdKb2huJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeV9pZGVudGlmaWVyID0gJ0RvZScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXJfdHlwZSA9ICdMRUdMJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxfbmFtZV9pZGVudGlmaWVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyLlRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxOYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9pZGVudGlmaWVyID0gJ0pvaG4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5X2lkZW50aWZpZXIgPSAnRG9lJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllcl90eXBlID0gJ0xFR0wnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG9uZXRpY19uYW1lX2lkZW50aWZpZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW9ncmFwaGljX2FkZHJlc3MgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2dlb2dyYXBoaWNfYWRkcmVzcy5UcmF2ZWxSdWxlVmFsaWRhdGVHZW9ncmFwaGljQWRkcmVzcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVldF9uYW1lID0gJzEyMyBNYWluIFN0JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3duX25hbWUgPSAnTmV3IFlvcmsnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnkgPSAnVVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nX251bWJlciA9ICcxMjMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfY29kZSA9ICcxMjM0NScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc190eXBlID0gJ0hPTUUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGFydG1lbnQgPSAnSVQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl9kZXBhcnRtZW50ID0gJ1NlY3VyaXR5JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19uYW1lID0gJ0FjbWUgQnVpbGRpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb29yID0gJzEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfYm94ID0gJzEyMycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vbSA9ICcxMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvd25fbG9jYXRpb25fbmFtZSA9ICdEb3dudG93bicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzdHJpY3RfbmFtZSA9ICdNYW5oYXR0YW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfc3ViX2RpdmlzaW9uID0gJ05ldyBZb3JrJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX2xpbmUgPSBbIjEyMyBNYWluIFN0IiwiTmV3IFlvcmsiLCJOWSAxMjM0NSJdLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpY2F0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0aW9uYWxfaWRlbnRpZmljYXRpb24uVHJhdmVsUnVsZVZhbGlkYXRlTmF0aW9uYWxJZGVudGlmaWNhdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9pc3N1ZSA9ICdVUycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWVyID0gJzEyMzQ1Njc4OScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWVyX3R5cGUgPSAnTkFUSU9OQUxfSUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0cmF0aW9uX2F1dGhvcml0eSA9ICdSQTEyMzQ1NicsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfYW5kX3BsYWNlX29mX2JpcnRoID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGguVHJhdmVsUnVsZVZhbGlkYXRlRGF0ZUFuZFBsYWNlT2ZCaXJ0aCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9vZl9iaXJ0aCA9ICcxOTkwLTAxLTAxJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlX29mX2JpcnRoID0gJ05ldyBZb3JrLCBVU0EnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pZGVudGlmaWNhdGlvbiA9ICdDVVNUMTIzNDU2JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9yZXNpZGVuY2UgPSAnVVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9udW1iZXIgPSAnMTIzNDU2Nzg5JywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdhbF9wZXJzb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9sZWdhbF9wZXJzb24uVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfaWRlbnRpZmljYXRpb24gPSAnQ1VTVDk4NzY1NCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX251bWJlciA9ICcxMjM0NTY3ODknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX3JlZ2lzdHJhdGlvbiA9ICdVUycsICksICkKICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfcGVyc29ucyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfcGVyc29uLlRyYXZlbFJ1bGVWYWxpZGF0ZVBlcnNvbigpCiAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgIGFjY291bnRfbnVtYmVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgICAgICBdLCApLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRyYXZlbFJ1bGVWYWxpZGF0ZUZ1bGxUcmFuc2FjdGlvblJlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlVmFsaWRhdGVGdWxsVHJhbnNhY3Rpb25SZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_travel_rule_validate_geographic_address.py b/test/test_travel_rule_validate_geographic_address.py index 00297000..b692be54 100644 --- a/test/test_travel_rule_validate_geographic_address.py +++ b/test/test_travel_rule_validate_geographic_address.py @@ -1,71 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_validate_geographic_address import ( - TravelRuleValidateGeographicAddress, -) - - -class TestTravelRuleValidateGeographicAddress(unittest.TestCase): - """TravelRuleValidateGeographicAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleValidateGeographicAddress: - """Test TravelRuleValidateGeographicAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleValidateGeographicAddress` - """ - model = TravelRuleValidateGeographicAddress() - if include_optional: - return TravelRuleValidateGeographicAddress( - street_name = '123 Main St', - town_name = 'New York', - country = 'US', - building_number = '123', - post_code = '12345', - address_type = 'HOME', - department = 'IT', - sub_department = 'Security', - building_name = 'Acme Building', - floor = '1', - post_box = '123', - room = '101', - town_location_name = 'Downtown', - district_name = 'Manhattan', - country_sub_division = 'New York', - address_line = ["123 Main St","New York","NY 12345"] - ) - else: - return TravelRuleValidateGeographicAddress( - ) - """ - - def testTravelRuleValidateGeographicAddress(self): - """Test TravelRuleValidateGeographicAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2dlb2dyYXBoaWNfYWRkcmVzcyBpbXBvcnQgKAogICAgVHJhdmVsUnVsZVZhbGlkYXRlR2VvZ3JhcGhpY0FkZHJlc3MsCikKCgpjbGFzcyBUZXN0VHJhdmVsUnVsZVZhbGlkYXRlR2VvZ3JhcGhpY0FkZHJlc3ModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhdmVsUnVsZVZhbGlkYXRlR2VvZ3JhcGhpY0FkZHJlc3MgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRyYXZlbFJ1bGVWYWxpZGF0ZUdlb2dyYXBoaWNBZGRyZXNzOgogICAgICAgICIiIlRlc3QgVHJhdmVsUnVsZVZhbGlkYXRlR2VvZ3JhcGhpY0FkZHJlc3MKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhdmVsUnVsZVZhbGlkYXRlR2VvZ3JhcGhpY0FkZHJlc3NgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUcmF2ZWxSdWxlVmFsaWRhdGVHZW9ncmFwaGljQWRkcmVzcygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRyYXZlbFJ1bGVWYWxpZGF0ZUdlb2dyYXBoaWNBZGRyZXNzKAogICAgICAgICAgICAgICAgc3RyZWV0X25hbWUgPSAnMTIzIE1haW4gU3QnLAogICAgICAgICAgICAgICAgdG93bl9uYW1lID0gJ05ldyBZb3JrJywKICAgICAgICAgICAgICAgIGNvdW50cnkgPSAnVVMnLAogICAgICAgICAgICAgICAgYnVpbGRpbmdfbnVtYmVyID0gJzEyMycsCiAgICAgICAgICAgICAgICBwb3N0X2NvZGUgPSAnMTIzNDUnLAogICAgICAgICAgICAgICAgYWRkcmVzc190eXBlID0gJ0hPTUUnLAogICAgICAgICAgICAgICAgZGVwYXJ0bWVudCA9ICdJVCcsCiAgICAgICAgICAgICAgICBzdWJfZGVwYXJ0bWVudCA9ICdTZWN1cml0eScsCiAgICAgICAgICAgICAgICBidWlsZGluZ19uYW1lID0gJ0FjbWUgQnVpbGRpbmcnLAogICAgICAgICAgICAgICAgZmxvb3IgPSAnMScsCiAgICAgICAgICAgICAgICBwb3N0X2JveCA9ICcxMjMnLAogICAgICAgICAgICAgICAgcm9vbSA9ICcxMDEnLAogICAgICAgICAgICAgICAgdG93bl9sb2NhdGlvbl9uYW1lID0gJ0Rvd250b3duJywKICAgICAgICAgICAgICAgIGRpc3RyaWN0X25hbWUgPSAnTWFuaGF0dGFuJywKICAgICAgICAgICAgICAgIGNvdW50cnlfc3ViX2RpdmlzaW9uID0gJ05ldyBZb3JrJywKICAgICAgICAgICAgICAgIGFkZHJlc3NfbGluZSA9IFsiMTIzIE1haW4gU3QiLCJOZXcgWW9yayIsIk5ZIDEyMzQ1Il0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlVmFsaWRhdGVHZW9ncmFwaGljQWRkcmVzcygKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmF2ZWxSdWxlVmFsaWRhdGVHZW9ncmFwaGljQWRkcmVzcyhzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVWYWxpZGF0ZUdlb2dyYXBoaWNBZGRyZXNzIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_travel_rule_validate_legal_person.py b/test/test_travel_rule_validate_legal_person.py index 81a9082f..25162758 100644 --- a/test/test_travel_rule_validate_legal_person.py +++ b/test/test_travel_rule_validate_legal_person.py @@ -1,85 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_validate_legal_person import ( - TravelRuleValidateLegalPerson, -) - - -class TestTravelRuleValidateLegalPerson(unittest.TestCase): - """TravelRuleValidateLegalPerson unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleValidateLegalPerson: - """Test TravelRuleValidateLegalPerson - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleValidateLegalPerson` - """ - model = TravelRuleValidateLegalPerson() - if include_optional: - return TravelRuleValidateLegalPerson( - name = fireblocks.models.travel_rule_validate_legal_person_name_identifier.TravelRuleValidateLegalPersonNameIdentifier( - legal_person_name = 'Acme Corporation', - legal_person_name_identifier_type = 'REGISTERED', ), - geographic_address = [ - fireblocks.models.travel_rule_validate_geographic_address.TravelRuleValidateGeographicAddress( - street_name = '123 Main St', - town_name = 'New York', - country = 'US', - building_number = '123', - post_code = '12345', - address_type = 'HOME', - department = 'IT', - sub_department = 'Security', - building_name = 'Acme Building', - floor = '1', - post_box = '123', - room = '101', - town_location_name = 'Downtown', - district_name = 'Manhattan', - country_sub_division = 'New York', - address_line = ["123 Main St","New York","NY 12345"], ) - ], - national_identification = fireblocks.models.travel_rule_validate_national_identification.TravelRuleValidateNationalIdentification( - country_of_issue = 'US', - national_identifier = '123456789', - national_identifier_type = 'NATIONAL_ID', - registration_authority = 'RA123456', ), - customer_identification = 'CUST987654', - customer_number = '123456789', - country_of_registration = 'US' - ) - else: - return TravelRuleValidateLegalPerson( - ) - """ - - def testTravelRuleValidateLegalPerson(self): - """Test TravelRuleValidateLegalPerson""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2xlZ2FsX3BlcnNvbiBpbXBvcnQgKAogICAgVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb24sCikKCgpjbGFzcyBUZXN0VHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uOgogICAgICAgICIiIlRlc3QgVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uKAogICAgICAgICAgICAgICAgbmFtZSA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2xlZ2FsX3BlcnNvbl9uYW1lX2lkZW50aWZpZXIuVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICBsZWdhbF9wZXJzb25fbmFtZSA9ICdBY21lIENvcnBvcmF0aW9uJywgCiAgICAgICAgICAgICAgICAgICAgbGVnYWxfcGVyc29uX25hbWVfaWRlbnRpZmllcl90eXBlID0gJ1JFR0lTVEVSRUQnLCApLAogICAgICAgICAgICAgICAgZ2VvZ3JhcGhpY19hZGRyZXNzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2dlb2dyYXBoaWNfYWRkcmVzcy5UcmF2ZWxSdWxlVmFsaWRhdGVHZW9ncmFwaGljQWRkcmVzcygKICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWV0X25hbWUgPSAnMTIzIE1haW4gU3QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdG93bl9uYW1lID0gJ05ldyBZb3JrJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnkgPSAnVVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRpbmdfbnVtYmVyID0gJzEyMycsIAogICAgICAgICAgICAgICAgICAgICAgICBwb3N0X2NvZGUgPSAnMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc190eXBlID0gJ0hPTUUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVwYXJ0bWVudCA9ICdJVCcsIAogICAgICAgICAgICAgICAgICAgICAgICBzdWJfZGVwYXJ0bWVudCA9ICdTZWN1cml0eScsIAogICAgICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19uYW1lID0gJ0FjbWUgQnVpbGRpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZmxvb3IgPSAnMScsIAogICAgICAgICAgICAgICAgICAgICAgICBwb3N0X2JveCA9ICcxMjMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcm9vbSA9ICcxMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdG93bl9sb2NhdGlvbl9uYW1lID0gJ0Rvd250b3duJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RyaWN0X25hbWUgPSAnTWFuaGF0dGFuJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfc3ViX2RpdmlzaW9uID0gJ05ldyBZb3JrJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfbGluZSA9IFsiMTIzIE1haW4gU3QiLCJOZXcgWW9yayIsIk5ZIDEyMzQ1Il0sICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmljYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXRpb25hbF9pZGVudGlmaWNhdGlvbi5UcmF2ZWxSdWxlVmFsaWRhdGVOYXRpb25hbElkZW50aWZpY2F0aW9uKAogICAgICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfaXNzdWUgPSAnVVMnLCAKICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWVyID0gJzEyMzQ1Njc4OScsIAogICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSA9ICdOQVRJT05BTF9JRCcsIAogICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbl9hdXRob3JpdHkgPSAnUkExMjM0NTYnLCApLAogICAgICAgICAgICAgICAgY3VzdG9tZXJfaWRlbnRpZmljYXRpb24gPSAnQ1VTVDk4NzY1NCcsCiAgICAgICAgICAgICAgICBjdXN0b21lcl9udW1iZXIgPSAnMTIzNDU2Nzg5JywKICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfcmVnaXN0cmF0aW9uID0gJ1VTJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uKHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_travel_rule_validate_legal_person_name_identifier.py b/test/test_travel_rule_validate_legal_person_name_identifier.py index bc6a05cd..f3fb4111 100644 --- a/test/test_travel_rule_validate_legal_person_name_identifier.py +++ b/test/test_travel_rule_validate_legal_person_name_identifier.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_validate_legal_person_name_identifier import ( - TravelRuleValidateLegalPersonNameIdentifier, -) - - -class TestTravelRuleValidateLegalPersonNameIdentifier(unittest.TestCase): - """TravelRuleValidateLegalPersonNameIdentifier unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> TravelRuleValidateLegalPersonNameIdentifier: - """Test TravelRuleValidateLegalPersonNameIdentifier - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleValidateLegalPersonNameIdentifier` - """ - model = TravelRuleValidateLegalPersonNameIdentifier() - if include_optional: - return TravelRuleValidateLegalPersonNameIdentifier( - legal_person_name = 'Acme Corporation', - legal_person_name_identifier_type = 'REGISTERED' - ) - else: - return TravelRuleValidateLegalPersonNameIdentifier( - ) - """ - - def testTravelRuleValidateLegalPersonNameIdentifier(self): - """Test TravelRuleValidateLegalPersonNameIdentifier""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2xlZ2FsX3BlcnNvbl9uYW1lX2lkZW50aWZpZXIgaW1wb3J0ICgKICAgIFRyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uTmFtZUlkZW50aWZpZXIsCikKCgpjbGFzcyBUZXN0VHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZSgKICAgICAgICBzZWxmLCBpbmNsdWRlX29wdGlvbmFsCiAgICApIC0+IFRyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uTmFtZUlkZW50aWZpZXI6CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uTmFtZUlkZW50aWZpZXJgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgIGxlZ2FsX3BlcnNvbl9uYW1lID0gJ0FjbWUgQ29ycG9yYXRpb24nLAogICAgICAgICAgICAgICAgbGVnYWxfcGVyc29uX25hbWVfaWRlbnRpZmllcl90eXBlID0gJ1JFR0lTVEVSRUQnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllcigKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyKHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb25OYW1lSWRlbnRpZmllciIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_travel_rule_validate_national_identification.py b/test/test_travel_rule_validate_national_identification.py index 222f60a7..73bef1dd 100644 --- a/test/test_travel_rule_validate_national_identification.py +++ b/test/test_travel_rule_validate_national_identification.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_validate_national_identification import ( - TravelRuleValidateNationalIdentification, -) - - -class TestTravelRuleValidateNationalIdentification(unittest.TestCase): - """TravelRuleValidateNationalIdentification unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> TravelRuleValidateNationalIdentification: - """Test TravelRuleValidateNationalIdentification - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleValidateNationalIdentification` - """ - model = TravelRuleValidateNationalIdentification() - if include_optional: - return TravelRuleValidateNationalIdentification( - country_of_issue = 'US', - national_identifier = '123456789', - national_identifier_type = 'NATIONAL_ID', - registration_authority = 'RA123456' - ) - else: - return TravelRuleValidateNationalIdentification( - ) - """ - - def testTravelRuleValidateNationalIdentification(self): - """Test TravelRuleValidateNationalIdentification""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdGlvbmFsX2lkZW50aWZpY2F0aW9uIGltcG9ydCAoCiAgICBUcmF2ZWxSdWxlVmFsaWRhdGVOYXRpb25hbElkZW50aWZpY2F0aW9uLAopCgoKY2xhc3MgVGVzdFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdGlvbmFsSWRlbnRpZmljYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhdmVsUnVsZVZhbGlkYXRlTmF0aW9uYWxJZGVudGlmaWNhdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2UoCiAgICAgICAgc2VsZiwgaW5jbHVkZV9vcHRpb25hbAogICAgKSAtPiBUcmF2ZWxSdWxlVmFsaWRhdGVOYXRpb25hbElkZW50aWZpY2F0aW9uOgogICAgICAgICIiIlRlc3QgVHJhdmVsUnVsZVZhbGlkYXRlTmF0aW9uYWxJZGVudGlmaWNhdGlvbgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmF2ZWxSdWxlVmFsaWRhdGVOYXRpb25hbElkZW50aWZpY2F0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVHJhdmVsUnVsZVZhbGlkYXRlTmF0aW9uYWxJZGVudGlmaWNhdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdGlvbmFsSWRlbnRpZmljYXRpb24oCiAgICAgICAgICAgICAgICBjb3VudHJ5X29mX2lzc3VlID0gJ1VTJywKICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpZXIgPSAnMTIzNDU2Nzg5JywKICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSA9ICdOQVRJT05BTF9JRCcsCiAgICAgICAgICAgICAgICByZWdpc3RyYXRpb25fYXV0aG9yaXR5ID0gJ1JBMTIzNDU2JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdGlvbmFsSWRlbnRpZmljYXRpb24oCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhdmVsUnVsZVZhbGlkYXRlTmF0aW9uYWxJZGVudGlmaWNhdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdGlvbmFsSWRlbnRpZmljYXRpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_travel_rule_validate_natural_name_identifier.py b/test/test_travel_rule_validate_natural_name_identifier.py index d8bc65c4..2f918b10 100644 --- a/test/test_travel_rule_validate_natural_name_identifier.py +++ b/test/test_travel_rule_validate_natural_name_identifier.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_validate_natural_name_identifier import ( - TravelRuleValidateNaturalNameIdentifier, -) - - -class TestTravelRuleValidateNaturalNameIdentifier(unittest.TestCase): - """TravelRuleValidateNaturalNameIdentifier unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> TravelRuleValidateNaturalNameIdentifier: - """Test TravelRuleValidateNaturalNameIdentifier - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleValidateNaturalNameIdentifier` - """ - model = TravelRuleValidateNaturalNameIdentifier() - if include_optional: - return TravelRuleValidateNaturalNameIdentifier( - primary_identifier = 'John', - secondary_identifier = 'Doe', - name_identifier_type = 'LEGL' - ) - else: - return TravelRuleValidateNaturalNameIdentifier( - ) - """ - - def testTravelRuleValidateNaturalNameIdentifier(self): - """Test TravelRuleValidateNaturalNameIdentifier""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyIGltcG9ydCAoCiAgICBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsTmFtZUlkZW50aWZpZXIsCikKCgpjbGFzcyBUZXN0VHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbE5hbWVJZGVudGlmaWVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxOYW1lSWRlbnRpZmllciB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2UoCiAgICAgICAgc2VsZiwgaW5jbHVkZV9vcHRpb25hbAogICAgKSAtPiBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsTmFtZUlkZW50aWZpZXI6CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsTmFtZUlkZW50aWZpZXIKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbE5hbWVJZGVudGlmaWVyYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbE5hbWVJZGVudGlmaWVyKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbE5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgcHJpbWFyeV9pZGVudGlmaWVyID0gJ0pvaG4nLAogICAgICAgICAgICAgICAgc2Vjb25kYXJ5X2lkZW50aWZpZXIgPSAnRG9lJywKICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllcl90eXBlID0gJ0xFR0wnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbE5hbWVJZGVudGlmaWVyKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxOYW1lSWRlbnRpZmllcihzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxOYW1lSWRlbnRpZmllciIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_travel_rule_validate_natural_person.py b/test/test_travel_rule_validate_natural_person.py index 4f547e01..03b0c787 100644 --- a/test/test_travel_rule_validate_natural_person.py +++ b/test/test_travel_rule_validate_natural_person.py @@ -1,103 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_validate_natural_person import ( - TravelRuleValidateNaturalPerson, -) - - -class TestTravelRuleValidateNaturalPerson(unittest.TestCase): - """TravelRuleValidateNaturalPerson unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleValidateNaturalPerson: - """Test TravelRuleValidateNaturalPerson - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleValidateNaturalPerson` - """ - model = TravelRuleValidateNaturalPerson() - if include_optional: - return TravelRuleValidateNaturalPerson( - name = [ - fireblocks.models.travel_rule_validate_natural_person_name_identifier.TravelRuleValidateNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_validate_natural_name_identifier.TravelRuleValidateNaturalNameIdentifier( - primary_identifier = 'John', - secondary_identifier = 'Doe', - name_identifier_type = 'LEGL', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_validate_natural_name_identifier.TravelRuleValidateNaturalNameIdentifier( - primary_identifier = 'John', - secondary_identifier = 'Doe', - name_identifier_type = 'LEGL', ) - ], - phonetic_name_identifier = [ - - ], ) - ], - geographic_address = [ - fireblocks.models.travel_rule_validate_geographic_address.TravelRuleValidateGeographicAddress( - street_name = '123 Main St', - town_name = 'New York', - country = 'US', - building_number = '123', - post_code = '12345', - address_type = 'HOME', - department = 'IT', - sub_department = 'Security', - building_name = 'Acme Building', - floor = '1', - post_box = '123', - room = '101', - town_location_name = 'Downtown', - district_name = 'Manhattan', - country_sub_division = 'New York', - address_line = ["123 Main St","New York","NY 12345"], ) - ], - national_identification = fireblocks.models.travel_rule_validate_national_identification.TravelRuleValidateNationalIdentification( - country_of_issue = 'US', - national_identifier = '123456789', - national_identifier_type = 'NATIONAL_ID', - registration_authority = 'RA123456', ), - date_and_place_of_birth = fireblocks.models.travel_rule_validate_date_and_place_of_birth.TravelRuleValidateDateAndPlaceOfBirth( - date_of_birth = '1990-01-01', - place_of_birth = 'New York, USA', ), - customer_identification = 'CUST123456', - country_of_residence = 'US', - customer_number = '123456789' - ) - else: - return TravelRuleValidateNaturalPerson( - ) - """ - - def testTravelRuleValidateNaturalPerson(self): - """Test TravelRuleValidateNaturalPerson""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfcGVyc29uIGltcG9ydCAoCiAgICBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uLAopCgoKY2xhc3MgVGVzdFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbjoKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uKAogICAgICAgICAgICAgICAgbmFtZSA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX3BlcnNvbl9uYW1lX2lkZW50aWZpZXIuVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsTmFtZUlkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9pZGVudGlmaWVyID0gJ0pvaG4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlfaWRlbnRpZmllciA9ICdEb2UnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXJfdHlwZSA9ICdMRUdMJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsX25hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyLlRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxOYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2lkZW50aWZpZXIgPSAnSm9obicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeV9pZGVudGlmaWVyID0gJ0RvZScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllcl90eXBlID0gJ0xFR0wnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgcGhvbmV0aWNfbmFtZV9pZGVudGlmaWVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGdlb2dyYXBoaWNfYWRkcmVzcyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9nZW9ncmFwaGljX2FkZHJlc3MuVHJhdmVsUnVsZVZhbGlkYXRlR2VvZ3JhcGhpY0FkZHJlc3MoCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVldF9uYW1lID0gJzEyMyBNYWluIFN0JywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRvd25fbmFtZSA9ICdOZXcgWW9yaycsIAogICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5ID0gJ1VTJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nX251bWJlciA9ICcxMjMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcG9zdF9jb2RlID0gJzEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfdHlwZSA9ICdIT01FJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlcGFydG1lbnQgPSAnSVQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3ViX2RlcGFydG1lbnQgPSAnU2VjdXJpdHknLCAKICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRpbmdfbmFtZSA9ICdBY21lIEJ1aWxkaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGZsb29yID0gJzEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcG9zdF9ib3ggPSAnMTIzJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHJvb20gPSAnMTAxJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRvd25fbG9jYXRpb25fbmFtZSA9ICdEb3dudG93bicsIAogICAgICAgICAgICAgICAgICAgICAgICBkaXN0cmljdF9uYW1lID0gJ01hbmhhdHRhbicsIAogICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X3N1Yl9kaXZpc2lvbiA9ICdOZXcgWW9yaycsIAogICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX2xpbmUgPSBbIjEyMyBNYWluIFN0IiwiTmV3IFlvcmsiLCJOWSAxMjM0NSJdLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpY2F0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0aW9uYWxfaWRlbnRpZmljYXRpb24uVHJhdmVsUnVsZVZhbGlkYXRlTmF0aW9uYWxJZGVudGlmaWNhdGlvbigKICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX2lzc3VlID0gJ1VTJywgCiAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmllciA9ICcxMjM0NTY3ODknLCAKICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWVyX3R5cGUgPSAnTkFUSU9OQUxfSUQnLCAKICAgICAgICAgICAgICAgICAgICByZWdpc3RyYXRpb25fYXV0aG9yaXR5ID0gJ1JBMTIzNDU2JywgKSwKICAgICAgICAgICAgICAgIGRhdGVfYW5kX3BsYWNlX29mX2JpcnRoID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGguVHJhdmVsUnVsZVZhbGlkYXRlRGF0ZUFuZFBsYWNlT2ZCaXJ0aCgKICAgICAgICAgICAgICAgICAgICBkYXRlX29mX2JpcnRoID0gJzE5OTAtMDEtMDEnLCAKICAgICAgICAgICAgICAgICAgICBwbGFjZV9vZl9iaXJ0aCA9ICdOZXcgWW9yaywgVVNBJywgKSwKICAgICAgICAgICAgICAgIGN1c3RvbWVyX2lkZW50aWZpY2F0aW9uID0gJ0NVU1QxMjM0NTYnLAogICAgICAgICAgICAgICAgY291bnRyeV9vZl9yZXNpZGVuY2UgPSAnVVMnLAogICAgICAgICAgICAgICAgY3VzdG9tZXJfbnVtYmVyID0gJzEyMzQ1Njc4OScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_travel_rule_validate_natural_person_name_identifier.py b/test/test_travel_rule_validate_natural_person_name_identifier.py index 7f4773ec..f4cbd09f 100644 --- a/test/test_travel_rule_validate_natural_person_name_identifier.py +++ b/test/test_travel_rule_validate_natural_person_name_identifier.py @@ -1,75 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_validate_natural_person_name_identifier import ( - TravelRuleValidateNaturalPersonNameIdentifier, -) - - -class TestTravelRuleValidateNaturalPersonNameIdentifier(unittest.TestCase): - """TravelRuleValidateNaturalPersonNameIdentifier unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> TravelRuleValidateNaturalPersonNameIdentifier: - """Test TravelRuleValidateNaturalPersonNameIdentifier - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleValidateNaturalPersonNameIdentifier` - """ - model = TravelRuleValidateNaturalPersonNameIdentifier() - if include_optional: - return TravelRuleValidateNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_validate_natural_name_identifier.TravelRuleValidateNaturalNameIdentifier( - primary_identifier = 'John', - secondary_identifier = 'Doe', - name_identifier_type = 'LEGL', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_validate_natural_name_identifier.TravelRuleValidateNaturalNameIdentifier( - primary_identifier = 'John', - secondary_identifier = 'Doe', - name_identifier_type = 'LEGL', ) - ], - phonetic_name_identifier = [ - fireblocks.models.travel_rule_validate_natural_name_identifier.TravelRuleValidateNaturalNameIdentifier( - primary_identifier = 'John', - secondary_identifier = 'Doe', - name_identifier_type = 'LEGL', ) - ] - ) - else: - return TravelRuleValidateNaturalPersonNameIdentifier( - ) - """ - - def testTravelRuleValidateNaturalPersonNameIdentifier(self): - """Test TravelRuleValidateNaturalPersonNameIdentifier""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfcGVyc29uX25hbWVfaWRlbnRpZmllciBpbXBvcnQgKAogICAgVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyLAopCgoKY2xhc3MgVGVzdFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKAogICAgICAgIHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwKICAgICkgLT4gVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyOgogICAgICAgICIiIlRlc3QgVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllcmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllcigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsTmFtZUlkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlfaWRlbnRpZmllciA9ICdKb2huJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeV9pZGVudGlmaWVyID0gJ0RvZScsIAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXJfdHlwZSA9ICdMRUdMJywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBsb2NhbF9uYW1lX2lkZW50aWZpZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9uYW1lX2lkZW50aWZpZXIuVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbE5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2lkZW50aWZpZXIgPSAnSm9obicsIAogICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlfaWRlbnRpZmllciA9ICdEb2UnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9pZGVudGlmaWVyX3R5cGUgPSAnTEVHTCcsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgcGhvbmV0aWNfbmFtZV9pZGVudGlmaWVyID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyLlRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxOYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9pZGVudGlmaWVyID0gJ0pvaG4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5X2lkZW50aWZpZXIgPSAnRG9lJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllcl90eXBlID0gJ0xFR0wnLCApCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllcigKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uTmFtZUlkZW50aWZpZXIiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_travel_rule_validate_person.py b/test/test_travel_rule_validate_person.py index 0640c62b..0bf2823b 100644 --- a/test/test_travel_rule_validate_person.py +++ b/test/test_travel_rule_validate_person.py @@ -1,133 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_validate_person import TravelRuleValidatePerson - - -class TestTravelRuleValidatePerson(unittest.TestCase): - """TravelRuleValidatePerson unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleValidatePerson: - """Test TravelRuleValidatePerson - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleValidatePerson` - """ - model = TravelRuleValidatePerson() - if include_optional: - return TravelRuleValidatePerson( - natural_person = fireblocks.models.travel_rule_validate_natural_person.TravelRuleValidateNaturalPerson( - name = [ - fireblocks.models.travel_rule_validate_natural_person_name_identifier.TravelRuleValidateNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_validate_natural_name_identifier.TravelRuleValidateNaturalNameIdentifier( - primary_identifier = 'John', - secondary_identifier = 'Doe', - name_identifier_type = 'LEGL', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_validate_natural_name_identifier.TravelRuleValidateNaturalNameIdentifier( - primary_identifier = 'John', - secondary_identifier = 'Doe', - name_identifier_type = 'LEGL', ) - ], - phonetic_name_identifier = [ - - ], ) - ], - geographic_address = [ - fireblocks.models.travel_rule_validate_geographic_address.TravelRuleValidateGeographicAddress( - street_name = '123 Main St', - town_name = 'New York', - country = 'US', - building_number = '123', - post_code = '12345', - address_type = 'HOME', - department = 'IT', - sub_department = 'Security', - building_name = 'Acme Building', - floor = '1', - post_box = '123', - room = '101', - town_location_name = 'Downtown', - district_name = 'Manhattan', - country_sub_division = 'New York', - address_line = ["123 Main St","New York","NY 12345"], ) - ], - national_identification = fireblocks.models.travel_rule_validate_national_identification.TravelRuleValidateNationalIdentification( - country_of_issue = 'US', - national_identifier = '123456789', - national_identifier_type = 'NATIONAL_ID', - registration_authority = 'RA123456', ), - date_and_place_of_birth = fireblocks.models.travel_rule_validate_date_and_place_of_birth.TravelRuleValidateDateAndPlaceOfBirth( - date_of_birth = '1990-01-01', - place_of_birth = 'New York, USA', ), - customer_identification = 'CUST123456', - country_of_residence = 'US', - customer_number = '123456789', ), - legal_person = fireblocks.models.travel_rule_validate_legal_person.TravelRuleValidateLegalPerson( - name = fireblocks.models.travel_rule_validate_legal_person_name_identifier.TravelRuleValidateLegalPersonNameIdentifier( - legal_person_name = 'Acme Corporation', - legal_person_name_identifier_type = 'REGISTERED', ), - geographic_address = [ - fireblocks.models.travel_rule_validate_geographic_address.TravelRuleValidateGeographicAddress( - street_name = '123 Main St', - town_name = 'New York', - country = 'US', - building_number = '123', - post_code = '12345', - address_type = 'HOME', - department = 'IT', - sub_department = 'Security', - building_name = 'Acme Building', - floor = '1', - post_box = '123', - room = '101', - town_location_name = 'Downtown', - district_name = 'Manhattan', - country_sub_division = 'New York', - address_line = ["123 Main St","New York","NY 12345"], ) - ], - national_identification = fireblocks.models.travel_rule_validate_national_identification.TravelRuleValidateNationalIdentification( - country_of_issue = 'US', - national_identifier = '123456789', - national_identifier_type = 'NATIONAL_ID', - registration_authority = 'RA123456', ), - customer_identification = 'CUST987654', - customer_number = '123456789', - country_of_registration = 'US', ) - ) - else: - return TravelRuleValidatePerson( - ) - """ - - def testTravelRuleValidatePerson(self): - """Test TravelRuleValidatePerson""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX3BlcnNvbiBpbXBvcnQgVHJhdmVsUnVsZVZhbGlkYXRlUGVyc29uCgoKY2xhc3MgVGVzdFRyYXZlbFJ1bGVWYWxpZGF0ZVBlcnNvbih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmF2ZWxSdWxlVmFsaWRhdGVQZXJzb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRyYXZlbFJ1bGVWYWxpZGF0ZVBlcnNvbjoKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVWYWxpZGF0ZVBlcnNvbgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBUcmF2ZWxSdWxlVmFsaWRhdGVQZXJzb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUcmF2ZWxSdWxlVmFsaWRhdGVQZXJzb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlVmFsaWRhdGVQZXJzb24oCiAgICAgICAgICAgICAgICBuYXR1cmFsX3BlcnNvbiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfcGVyc29uLlRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb24oCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyLlRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsTmFtZUlkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlfaWRlbnRpZmllciA9ICdKb2huJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeV9pZGVudGlmaWVyID0gJ0RvZScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXJfdHlwZSA9ICdMRUdMJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxfbmFtZV9pZGVudGlmaWVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyLlRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxOYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9pZGVudGlmaWVyID0gJ0pvaG4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5X2lkZW50aWZpZXIgPSAnRG9lJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllcl90eXBlID0gJ0xFR0wnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG9uZXRpY19uYW1lX2lkZW50aWZpZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICBnZW9ncmFwaGljX2FkZHJlc3MgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2dlb2dyYXBoaWNfYWRkcmVzcy5UcmF2ZWxSdWxlVmFsaWRhdGVHZW9ncmFwaGljQWRkcmVzcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVldF9uYW1lID0gJzEyMyBNYWluIFN0JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3duX25hbWUgPSAnTmV3IFlvcmsnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnkgPSAnVVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nX251bWJlciA9ICcxMjMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfY29kZSA9ICcxMjM0NScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc190eXBlID0gJ0hPTUUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGFydG1lbnQgPSAnSVQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl9kZXBhcnRtZW50ID0gJ1NlY3VyaXR5JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19uYW1lID0gJ0FjbWUgQnVpbGRpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb29yID0gJzEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfYm94ID0gJzEyMycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vbSA9ICcxMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvd25fbG9jYXRpb25fbmFtZSA9ICdEb3dudG93bicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzdHJpY3RfbmFtZSA9ICdNYW5oYXR0YW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfc3ViX2RpdmlzaW9uID0gJ05ldyBZb3JrJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX2xpbmUgPSBbIjEyMyBNYWluIFN0IiwiTmV3IFlvcmsiLCJOWSAxMjM0NSJdLCApCiAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpY2F0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0aW9uYWxfaWRlbnRpZmljYXRpb24uVHJhdmVsUnVsZVZhbGlkYXRlTmF0aW9uYWxJZGVudGlmaWNhdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9pc3N1ZSA9ICdVUycsIAogICAgICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWVyID0gJzEyMzQ1Njc4OScsIAogICAgICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWVyX3R5cGUgPSAnTkFUSU9OQUxfSUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0cmF0aW9uX2F1dGhvcml0eSA9ICdSQTEyMzQ1NicsICksIAogICAgICAgICAgICAgICAgICAgIGRhdGVfYW5kX3BsYWNlX29mX2JpcnRoID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGguVHJhdmVsUnVsZVZhbGlkYXRlRGF0ZUFuZFBsYWNlT2ZCaXJ0aCgKICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9vZl9iaXJ0aCA9ICcxOTkwLTAxLTAxJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlX29mX2JpcnRoID0gJ05ldyBZb3JrLCBVU0EnLCApLCAKICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pZGVudGlmaWNhdGlvbiA9ICdDVVNUMTIzNDU2JywgCiAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9yZXNpZGVuY2UgPSAnVVMnLCAKICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9udW1iZXIgPSAnMTIzNDU2Nzg5JywgKSwKICAgICAgICAgICAgICAgIGxlZ2FsX3BlcnNvbiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2xlZ2FsX3BlcnNvbi5UcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbigKICAgICAgICAgICAgICAgICAgICBuYW1lID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbGVnYWxfcGVyc29uX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlVmFsaWRhdGVMZWdhbFBlcnNvbk5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICBsZWdhbF9wZXJzb25fbmFtZSA9ICdBY21lIENvcnBvcmF0aW9uJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2FsX3BlcnNvbl9uYW1lX2lkZW50aWZpZXJfdHlwZSA9ICdSRUdJU1RFUkVEJywgKSwgCiAgICAgICAgICAgICAgICAgICAgZ2VvZ3JhcGhpY19hZGRyZXNzID0gWwogICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9nZW9ncmFwaGljX2FkZHJlc3MuVHJhdmVsUnVsZVZhbGlkYXRlR2VvZ3JhcGhpY0FkZHJlc3MoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlZXRfbmFtZSA9ICcxMjMgTWFpbiBTdCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG93bl9uYW1lID0gJ05ldyBZb3JrJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5ID0gJ1VTJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19udW1iZXIgPSAnMTIzJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0X2NvZGUgPSAnMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfdHlwZSA9ICdIT01FJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBhcnRtZW50ID0gJ0lUJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJfZGVwYXJ0bWVudCA9ICdTZWN1cml0eScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRpbmdfbmFtZSA9ICdBY21lIEJ1aWxkaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9vciA9ICcxJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0X2JveCA9ICcxMjMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvb20gPSAnMTAxJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3duX2xvY2F0aW9uX25hbWUgPSAnRG93bnRvd24nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RyaWN0X25hbWUgPSAnTWFuaGF0dGFuJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X3N1Yl9kaXZpc2lvbiA9ICdOZXcgWW9yaycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19saW5lID0gWyIxMjMgTWFpbiBTdCIsIk5ldyBZb3JrIiwiTlkgMTIzNDUiXSwgKQogICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWNhdGlvbiA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdGlvbmFsX2lkZW50aWZpY2F0aW9uLlRyYXZlbFJ1bGVWYWxpZGF0ZU5hdGlvbmFsSWRlbnRpZmljYXRpb24oCiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfaXNzdWUgPSAnVVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmllciA9ICcxMjM0NTY3ODknLCAKICAgICAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmllcl90eXBlID0gJ05BVElPTkFMX0lEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbl9hdXRob3JpdHkgPSAnUkExMjM0NTYnLCApLCAKICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pZGVudGlmaWNhdGlvbiA9ICdDVVNUOTg3NjU0JywgCiAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfbnVtYmVyID0gJzEyMzQ1Njc4OScsIAogICAgICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfcmVnaXN0cmF0aW9uID0gJ1VTJywgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRyYXZlbFJ1bGVWYWxpZGF0ZVBlcnNvbigKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmF2ZWxSdWxlVmFsaWRhdGVQZXJzb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlVmFsaWRhdGVQZXJzb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_travel_rule_validate_pii_ivms.py b/test/test_travel_rule_validate_pii_ivms.py index 03d296ab..83a6703e 100644 --- a/test/test_travel_rule_validate_pii_ivms.py +++ b/test/test_travel_rule_validate_pii_ivms.py @@ -1,168 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_validate_pii_ivms import TravelRuleValidatePiiIVMS - - -class TestTravelRuleValidatePiiIVMS(unittest.TestCase): - """TravelRuleValidatePiiIVMS unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleValidatePiiIVMS: - """Test TravelRuleValidatePiiIVMS - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleValidatePiiIVMS` - """ - model = TravelRuleValidatePiiIVMS() - if include_optional: - return TravelRuleValidatePiiIVMS( - originator_persons = [ - fireblocks.models.travel_rule_validate_person.TravelRuleValidatePerson( - natural_person = fireblocks.models.travel_rule_validate_natural_person.TravelRuleValidateNaturalPerson( - name = [ - fireblocks.models.travel_rule_validate_natural_person_name_identifier.TravelRuleValidateNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_validate_natural_name_identifier.TravelRuleValidateNaturalNameIdentifier( - primary_identifier = 'John', - secondary_identifier = 'Doe', - name_identifier_type = 'LEGL', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_validate_natural_name_identifier.TravelRuleValidateNaturalNameIdentifier( - primary_identifier = 'John', - secondary_identifier = 'Doe', - name_identifier_type = 'LEGL', ) - ], - phonetic_name_identifier = [ - - ], ) - ], - geographic_address = [ - fireblocks.models.travel_rule_validate_geographic_address.TravelRuleValidateGeographicAddress( - street_name = '123 Main St', - town_name = 'New York', - country = 'US', - building_number = '123', - post_code = '12345', - address_type = 'HOME', - department = 'IT', - sub_department = 'Security', - building_name = 'Acme Building', - floor = '1', - post_box = '123', - room = '101', - town_location_name = 'Downtown', - district_name = 'Manhattan', - country_sub_division = 'New York', - address_line = ["123 Main St","New York","NY 12345"], ) - ], - national_identification = fireblocks.models.travel_rule_validate_national_identification.TravelRuleValidateNationalIdentification( - country_of_issue = 'US', - national_identifier = '123456789', - national_identifier_type = 'NATIONAL_ID', - registration_authority = 'RA123456', ), - date_and_place_of_birth = fireblocks.models.travel_rule_validate_date_and_place_of_birth.TravelRuleValidateDateAndPlaceOfBirth( - date_of_birth = '1990-01-01', - place_of_birth = 'New York, USA', ), - customer_identification = 'CUST123456', - country_of_residence = 'US', - customer_number = '123456789', ), - legal_person = fireblocks.models.travel_rule_validate_legal_person.TravelRuleValidateLegalPerson( - customer_identification = 'CUST987654', - customer_number = '123456789', - country_of_registration = 'US', ), ) - ], - beneficiary_persons = [ - fireblocks.models.travel_rule_validate_person.TravelRuleValidatePerson( - natural_person = fireblocks.models.travel_rule_validate_natural_person.TravelRuleValidateNaturalPerson( - name = [ - fireblocks.models.travel_rule_validate_natural_person_name_identifier.TravelRuleValidateNaturalPersonNameIdentifier( - name_identifier = [ - fireblocks.models.travel_rule_validate_natural_name_identifier.TravelRuleValidateNaturalNameIdentifier( - primary_identifier = 'John', - secondary_identifier = 'Doe', - name_identifier_type = 'LEGL', ) - ], - local_name_identifier = [ - fireblocks.models.travel_rule_validate_natural_name_identifier.TravelRuleValidateNaturalNameIdentifier( - primary_identifier = 'John', - secondary_identifier = 'Doe', - name_identifier_type = 'LEGL', ) - ], - phonetic_name_identifier = [ - - ], ) - ], - geographic_address = [ - fireblocks.models.travel_rule_validate_geographic_address.TravelRuleValidateGeographicAddress( - street_name = '123 Main St', - town_name = 'New York', - country = 'US', - building_number = '123', - post_code = '12345', - address_type = 'HOME', - department = 'IT', - sub_department = 'Security', - building_name = 'Acme Building', - floor = '1', - post_box = '123', - room = '101', - town_location_name = 'Downtown', - district_name = 'Manhattan', - country_sub_division = 'New York', - address_line = ["123 Main St","New York","NY 12345"], ) - ], - national_identification = fireblocks.models.travel_rule_validate_national_identification.TravelRuleValidateNationalIdentification( - country_of_issue = 'US', - national_identifier = '123456789', - national_identifier_type = 'NATIONAL_ID', - registration_authority = 'RA123456', ), - date_and_place_of_birth = fireblocks.models.travel_rule_validate_date_and_place_of_birth.TravelRuleValidateDateAndPlaceOfBirth( - date_of_birth = '1990-01-01', - place_of_birth = 'New York, USA', ), - customer_identification = 'CUST123456', - country_of_residence = 'US', - customer_number = '123456789', ), - legal_person = fireblocks.models.travel_rule_validate_legal_person.TravelRuleValidateLegalPerson( - customer_identification = 'CUST987654', - customer_number = '123456789', - country_of_registration = 'US', ), ) - ], - account_number = [ - '' - ] - ) - else: - return TravelRuleValidatePiiIVMS( - ) - """ - - def testTravelRuleValidatePiiIVMS(self): - """Test TravelRuleValidatePiiIVMS""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX3BpaV9pdm1zIGltcG9ydCBUcmF2ZWxSdWxlVmFsaWRhdGVQaWlJVk1TCgoKY2xhc3MgVGVzdFRyYXZlbFJ1bGVWYWxpZGF0ZVBpaUlWTVModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhdmVsUnVsZVZhbGlkYXRlUGlpSVZNUyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhdmVsUnVsZVZhbGlkYXRlUGlpSVZNUzoKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVWYWxpZGF0ZVBpaUlWTVMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhdmVsUnVsZVZhbGlkYXRlUGlpSVZNU2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYXZlbFJ1bGVWYWxpZGF0ZVBpaUlWTVMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlVmFsaWRhdGVQaWlJVk1TKAogICAgICAgICAgICAgICAgb3JpZ2luYXRvcl9wZXJzb25zID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX3BlcnNvbi5UcmF2ZWxSdWxlVmFsaWRhdGVQZXJzb24oCiAgICAgICAgICAgICAgICAgICAgICAgIG5hdHVyYWxfcGVyc29uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9wZXJzb24uVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9wZXJzb25fbmFtZV9pZGVudGlmaWVyLlRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxQZXJzb25OYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9pZGVudGlmaWVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0dXJhbF9uYW1lX2lkZW50aWZpZXIuVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbE5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlfaWRlbnRpZmllciA9ICdKb2huJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5X2lkZW50aWZpZXIgPSAnRG9lJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9pZGVudGlmaWVyX3R5cGUgPSAnTEVHTCcsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbF9uYW1lX2lkZW50aWZpZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsTmFtZUlkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9pZGVudGlmaWVyID0gJ0pvaG4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlfaWRlbnRpZmllciA9ICdEb2UnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXJfdHlwZSA9ICdMRUdMJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob25ldGljX25hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VvZ3JhcGhpY19hZGRyZXNzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2dlb2dyYXBoaWNfYWRkcmVzcy5UcmF2ZWxSdWxlVmFsaWRhdGVHZW9ncmFwaGljQWRkcmVzcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWV0X25hbWUgPSAnMTIzIE1haW4gU3QnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG93bl9uYW1lID0gJ05ldyBZb3JrJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnkgPSAnVVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRpbmdfbnVtYmVyID0gJzEyMycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0X2NvZGUgPSAnMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc190eXBlID0gJ0hPTUUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwYXJ0bWVudCA9ICdJVCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJfZGVwYXJ0bWVudCA9ICdTZWN1cml0eScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19uYW1lID0gJ0FjbWUgQnVpbGRpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvb3IgPSAnMScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0X2JveCA9ICcxMjMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vbSA9ICcxMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG93bl9sb2NhdGlvbl9uYW1lID0gJ0Rvd250b3duJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RyaWN0X25hbWUgPSAnTWFuaGF0dGFuJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfc3ViX2RpdmlzaW9uID0gJ05ldyBZb3JrJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfbGluZSA9IFsiMTIzIE1haW4gU3QiLCJOZXcgWW9yayIsIk5ZIDEyMzQ1Il0sICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpY2F0aW9uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbmF0aW9uYWxfaWRlbnRpZmljYXRpb24uVHJhdmVsUnVsZVZhbGlkYXRlTmF0aW9uYWxJZGVudGlmaWNhdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX2lzc3VlID0gJ1VTJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmllciA9ICcxMjM0NTY3ODknLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWVyX3R5cGUgPSAnTkFUSU9OQUxfSUQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpc3RyYXRpb25fYXV0aG9yaXR5ID0gJ1JBMTIzNDU2JywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2FuZF9wbGFjZV9vZl9iaXJ0aCA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX2RhdGVfYW5kX3BsYWNlX29mX2JpcnRoLlRyYXZlbFJ1bGVWYWxpZGF0ZURhdGVBbmRQbGFjZU9mQmlydGgoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9vZl9iaXJ0aCA9ICcxOTkwLTAxLTAxJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vfb2ZfYmlydGggPSAnTmV3IFlvcmssIFVTQScsICksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfaWRlbnRpZmljYXRpb24gPSAnQ1VTVDEyMzQ1NicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9yZXNpZGVuY2UgPSAnVVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX251bWJlciA9ICcxMjM0NTY3ODknLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgbGVnYWxfcGVyc29uID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfbGVnYWxfcGVyc29uLlRyYXZlbFJ1bGVWYWxpZGF0ZUxlZ2FsUGVyc29uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfaWRlbnRpZmljYXRpb24gPSAnQ1VTVDk4NzY1NCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfbnVtYmVyID0gJzEyMzQ1Njc4OScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9vZl9yZWdpc3RyYXRpb24gPSAnVVMnLCApLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5X3BlcnNvbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfcGVyc29uLlRyYXZlbFJ1bGVWYWxpZGF0ZVBlcnNvbigKICAgICAgICAgICAgICAgICAgICAgICAgbmF0dXJhbF9wZXJzb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX3BlcnNvbi5UcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsUGVyc29uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX3BlcnNvbl9uYW1lX2lkZW50aWZpZXIuVHJhdmVsUnVsZVZhbGlkYXRlTmF0dXJhbFBlcnNvbk5hbWVJZGVudGlmaWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXR1cmFsX25hbWVfaWRlbnRpZmllci5UcmF2ZWxSdWxlVmFsaWRhdGVOYXR1cmFsTmFtZUlkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9pZGVudGlmaWVyID0gJ0pvaG4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlfaWRlbnRpZmllciA9ICdEb2UnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2lkZW50aWZpZXJfdHlwZSA9ICdMRUdMJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsX25hbWVfaWRlbnRpZmllciA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX25hdHVyYWxfbmFtZV9pZGVudGlmaWVyLlRyYXZlbFJ1bGVWYWxpZGF0ZU5hdHVyYWxOYW1lSWRlbnRpZmllcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2lkZW50aWZpZXIgPSAnSm9obicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeV9pZGVudGlmaWVyID0gJ0RvZScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfaWRlbnRpZmllcl90eXBlID0gJ0xFR0wnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhvbmV0aWNfbmFtZV9pZGVudGlmaWVyID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW9ncmFwaGljX2FkZHJlc3MgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfZ2VvZ3JhcGhpY19hZGRyZXNzLlRyYXZlbFJ1bGVWYWxpZGF0ZUdlb2dyYXBoaWNBZGRyZXNzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlZXRfbmFtZSA9ICcxMjMgTWFpbiBTdCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3duX25hbWUgPSAnTmV3IFlvcmsnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeSA9ICdVUycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19udW1iZXIgPSAnMTIzJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfY29kZSA9ICcxMjM0NScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX3R5cGUgPSAnSE9NRScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBhcnRtZW50ID0gJ0lUJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl9kZXBhcnRtZW50ID0gJ1NlY3VyaXR5JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nX25hbWUgPSAnQWNtZSBCdWlsZGluZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9vciA9ICcxJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfYm94ID0gJzEyMycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb29tID0gJzEwMScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3duX2xvY2F0aW9uX25hbWUgPSAnRG93bnRvd24nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzdHJpY3RfbmFtZSA9ICdNYW5oYXR0YW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9zdWJfZGl2aXNpb24gPSAnTmV3IFlvcmsnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19saW5lID0gWyIxMjMgTWFpbiBTdCIsIk5ldyBZb3JrIiwiTlkgMTIzNDUiXSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aW9uYWxfaWRlbnRpZmljYXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9uYXRpb25hbF9pZGVudGlmaWNhdGlvbi5UcmF2ZWxSdWxlVmFsaWRhdGVOYXRpb25hbElkZW50aWZpY2F0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfb2ZfaXNzdWUgPSAnVVMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9pZGVudGlmaWVyID0gJzEyMzQ1Njc4OScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGlvbmFsX2lkZW50aWZpZXJfdHlwZSA9ICdOQVRJT05BTF9JRCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbl9hdXRob3JpdHkgPSAnUkExMjM0NTYnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfYW5kX3BsYWNlX29mX2JpcnRoID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfdmFsaWRhdGVfZGF0ZV9hbmRfcGxhY2Vfb2ZfYmlydGguVHJhdmVsUnVsZVZhbGlkYXRlRGF0ZUFuZFBsYWNlT2ZCaXJ0aCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX29mX2JpcnRoID0gJzE5OTAtMDEtMDEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZV9vZl9iaXJ0aCA9ICdOZXcgWW9yaywgVVNBJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pZGVudGlmaWNhdGlvbiA9ICdDVVNUMTIzNDU2JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX3Jlc2lkZW5jZSA9ICdVUycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJfbnVtYmVyID0gJzEyMzQ1Njc4OScsICksIAogICAgICAgICAgICAgICAgICAgICAgICBsZWdhbF9wZXJzb24gPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV92YWxpZGF0ZV9sZWdhbF9wZXJzb24uVHJhdmVsUnVsZVZhbGlkYXRlTGVnYWxQZXJzb24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9pZGVudGlmaWNhdGlvbiA9ICdDVVNUOTg3NjU0JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lcl9udW1iZXIgPSAnMTIzNDU2Nzg5JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X29mX3JlZ2lzdHJhdGlvbiA9ICdVUycsICksICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgYWNjb3VudF9udW1iZXIgPSBbCiAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZVZhbGlkYXRlUGlpSVZNUygKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmF2ZWxSdWxlVmFsaWRhdGVQaWlJVk1TKHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJhdmVsUnVsZVZhbGlkYXRlUGlpSVZNUyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_travel_rule_validate_transaction_request.py b/test/test_travel_rule_validate_transaction_request.py index 0b2aa710..c10dcac3 100644 --- a/test/test_travel_rule_validate_transaction_request.py +++ b/test/test_travel_rule_validate_transaction_request.py @@ -1,76 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_validate_transaction_request import ( - TravelRuleValidateTransactionRequest, -) - - -class TestTravelRuleValidateTransactionRequest(unittest.TestCase): - """TravelRuleValidateTransactionRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleValidateTransactionRequest: - """Test TravelRuleValidateTransactionRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleValidateTransactionRequest` - """ - model = TravelRuleValidateTransactionRequest() - if include_optional: - return TravelRuleValidateTransactionRequest( - transaction_asset = 'BTC', - destination = 'bc1qxy2kgdygjrsqtzq2n0yrf1234p83kkfjhx0wlh', - transaction_amount = '10', - transaction_asset_decimals = 8, - originator_vas_pdid = 'did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2', - originator_equals_beneficiary = False, - travel_rule_behavior = True, - beneficiary_vas_pdid = 'did:ethr:0x46a7ed5813ce735387df2bfb245bd7722e0de992', - beneficiary_vas_pname = 'HelloCrypto', - beneficiary_name = 'John Doe', - beneficiary_account_number = '1234-1234-1234-12234', - beneficiary_address = fireblocks.models.travel_rule_address.TravelRuleAddress( - street = '1234 Example St', - city = 'New York', - state = 'NY', - postal_code = '10001', ) - ) - else: - return TravelRuleValidateTransactionRequest( - transaction_asset = 'BTC', - destination = 'bc1qxy2kgdygjrsqtzq2n0yrf1234p83kkfjhx0wlh', - transaction_amount = '10', - originator_vas_pdid = 'did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2', - originator_equals_beneficiary = False, - ) - """ - - def testTravelRuleValidateTransactionRequest(self): - """Test TravelRuleValidateTransactionRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX3RyYW5zYWN0aW9uX3JlcXVlc3QgaW1wb3J0ICgKICAgIFRyYXZlbFJ1bGVWYWxpZGF0ZVRyYW5zYWN0aW9uUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RUcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhdmVsUnVsZVZhbGlkYXRlVHJhbnNhY3Rpb25SZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhdmVsUnVsZVZhbGlkYXRlVHJhbnNhY3Rpb25SZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVHJhdmVsUnVsZVZhbGlkYXRlVHJhbnNhY3Rpb25SZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZVZhbGlkYXRlVHJhbnNhY3Rpb25SZXF1ZXN0KAogICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25fYXNzZXQgPSAnQlRDJywKICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gJ2JjMXF4eTJrZ2R5Z2pyc3F0enEybjB5cmYxMjM0cDgza2tmamh4MHdsaCcsCiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbl9hbW91bnQgPSAnMTAnLAogICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25fYXNzZXRfZGVjaW1hbHMgPSA4LAogICAgICAgICAgICAgICAgb3JpZ2luYXRvcl92YXNfcGRpZCA9ICdkaWQ6ZXRocjoweDQ0OTU3ZTc1ZDZjZTRhNWJmMzdhYWUxMTdkYTg2NDIyYzg0OGY3YzInLAogICAgICAgICAgICAgICAgb3JpZ2luYXRvcl9lcXVhbHNfYmVuZWZpY2lhcnkgPSBGYWxzZSwKICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX2JlaGF2aW9yID0gVHJ1ZSwKICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5X3Zhc19wZGlkID0gJ2RpZDpldGhyOjB4NDZhN2VkNTgxM2NlNzM1Mzg3ZGYyYmZiMjQ1YmQ3NzIyZTBkZTk5MicsCiAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV92YXNfcG5hbWUgPSAnSGVsbG9DcnlwdG8nLAogICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfbmFtZSA9ICdKb2huIERvZScsCiAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV9hY2NvdW50X251bWJlciA9ICcxMjM0LTEyMzQtMTIzNC0xMjIzNCcsCiAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV9hZGRyZXNzID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfYWRkcmVzcy5UcmF2ZWxSdWxlQWRkcmVzcygKICAgICAgICAgICAgICAgICAgICBzdHJlZXQgPSAnMTIzNCBFeGFtcGxlIFN0JywgCiAgICAgICAgICAgICAgICAgICAgY2l0eSA9ICdOZXcgWW9yaycsIAogICAgICAgICAgICAgICAgICAgIHN0YXRlID0gJ05ZJywgCiAgICAgICAgICAgICAgICAgICAgcG9zdGFsX2NvZGUgPSAnMTAwMDEnLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZVZhbGlkYXRlVHJhbnNhY3Rpb25SZXF1ZXN0KAogICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25fYXNzZXQgPSAnQlRDJywKICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gJ2JjMXF4eTJrZ2R5Z2pyc3F0enEybjB5cmYxMjM0cDgza2tmamh4MHdsaCcsCiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbl9hbW91bnQgPSAnMTAnLAogICAgICAgICAgICAgICAgb3JpZ2luYXRvcl92YXNfcGRpZCA9ICdkaWQ6ZXRocjoweDQ0OTU3ZTc1ZDZjZTRhNWJmMzdhYWUxMTdkYTg2NDIyYzg0OGY3YzInLAogICAgICAgICAgICAgICAgb3JpZ2luYXRvcl9lcXVhbHNfYmVuZWZpY2lhcnkgPSBGYWxzZSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_travel_rule_validate_transaction_response.py b/test/test_travel_rule_validate_transaction_response.py index 2a2e6239..e8fe0052 100644 --- a/test/test_travel_rule_validate_transaction_response.py +++ b/test/test_travel_rule_validate_transaction_response.py @@ -1,69 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_validate_transaction_response import ( - TravelRuleValidateTransactionResponse, -) - - -class TestTravelRuleValidateTransactionResponse(unittest.TestCase): - """TravelRuleValidateTransactionResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleValidateTransactionResponse: - """Test TravelRuleValidateTransactionResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleValidateTransactionResponse` - """ - model = TravelRuleValidateTransactionResponse() - if include_optional: - return TravelRuleValidateTransactionResponse( - is_valid = True, - type = 'TRAVELRULE', - beneficiary_address_type = 'UNKNOWN', - address_source = 'UNKNOWN', - beneficiary_vas_pdid = 'did:ethr:0x46a7ed5813ce735387df2bfb245bd7722e0de992', - beneficiary_vas_pname = 'Fireblocks', - warnings = ["optional-beneficiaryAccountNumber"] - ) - else: - return TravelRuleValidateTransactionResponse( - is_valid = True, - type = 'TRAVELRULE', - beneficiary_address_type = 'UNKNOWN', - address_source = 'UNKNOWN', - beneficiary_vas_pdid = 'did:ethr:0x46a7ed5813ce735387df2bfb245bd7722e0de992', - beneficiary_vas_pname = 'Fireblocks', - warnings = ["optional-beneficiaryAccountNumber"], - ) - """ - - def testTravelRuleValidateTransactionResponse(self): - """Test TravelRuleValidateTransactionResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZhbGlkYXRlX3RyYW5zYWN0aW9uX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBUcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlc3BvbnNlLAopCgoKY2xhc3MgVGVzdFRyYXZlbFJ1bGVWYWxpZGF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhdmVsUnVsZVZhbGlkYXRlVHJhbnNhY3Rpb25SZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhdmVsUnVsZVZhbGlkYXRlVHJhbnNhY3Rpb25SZXNwb25zZToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVWYWxpZGF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhdmVsUnVsZVZhbGlkYXRlVHJhbnNhY3Rpb25SZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYXZlbFJ1bGVWYWxpZGF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlc3BvbnNlKAogICAgICAgICAgICAgICAgaXNfdmFsaWQgPSBUcnVlLAogICAgICAgICAgICAgICAgdHlwZSA9ICdUUkFWRUxSVUxFJywKICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5X2FkZHJlc3NfdHlwZSA9ICdVTktOT1dOJywKICAgICAgICAgICAgICAgIGFkZHJlc3Nfc291cmNlID0gJ1VOS05PV04nLAogICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfdmFzX3BkaWQgPSAnZGlkOmV0aHI6MHg0NmE3ZWQ1ODEzY2U3MzUzODdkZjJiZmIyNDViZDc3MjJlMGRlOTkyJywKICAgICAgICAgICAgICAgIGJlbmVmaWNpYXJ5X3Zhc19wbmFtZSA9ICdGaXJlYmxvY2tzJywKICAgICAgICAgICAgICAgIHdhcm5pbmdzID0gWyJvcHRpb25hbC1iZW5lZmljaWFyeUFjY291bnROdW1iZXIiXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRyYXZlbFJ1bGVWYWxpZGF0ZVRyYW5zYWN0aW9uUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBpc192YWxpZCA9IFRydWUsCiAgICAgICAgICAgICAgICB0eXBlID0gJ1RSQVZFTFJVTEUnLAogICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfYWRkcmVzc190eXBlID0gJ1VOS05PV04nLAogICAgICAgICAgICAgICAgYWRkcmVzc19zb3VyY2UgPSAnVU5LTk9XTicsCiAgICAgICAgICAgICAgICBiZW5lZmljaWFyeV92YXNfcGRpZCA9ICdkaWQ6ZXRocjoweDQ2YTdlZDU4MTNjZTczNTM4N2RmMmJmYjI0NWJkNzcyMmUwZGU5OTInLAogICAgICAgICAgICAgICAgYmVuZWZpY2lhcnlfdmFzX3BuYW1lID0gJ0ZpcmVibG9ja3MnLAogICAgICAgICAgICAgICAgd2FybmluZ3MgPSBbIm9wdGlvbmFsLWJlbmVmaWNpYXJ5QWNjb3VudE51bWJlciJdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFRyYXZlbFJ1bGVWYWxpZGF0ZVRyYW5zYWN0aW9uUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBUcmF2ZWxSdWxlVmFsaWRhdGVUcmFuc2FjdGlvblJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_travel_rule_vasp.py b/test/test_travel_rule_vasp.py index 17a6ce7f..e2d0513f 100644 --- a/test/test_travel_rule_vasp.py +++ b/test/test_travel_rule_vasp.py @@ -1,150 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_vasp import TravelRuleVASP - - -class TestTravelRuleVASP(unittest.TestCase): - """TravelRuleVASP unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleVASP: - """Test TravelRuleVASP - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleVASP` - """ - model = TravelRuleVASP() - if include_optional: - return TravelRuleVASP( - did = 'did:ethr:0x17fe2dd11a2daa7f6c1fdf22532a4763f963aea6', - name = 'Fireblocks TST', - verification_status = 'VERIFIED', - address_line1 = '657 Campfire Street', - address_line2 = 'Suite 10', - city = 'New York', - country = 'US', - email_domains = 'fireblocks.com,example.com', - website = 'https://fireblocks.com', - logo = 'https://fireblocks.com/logo.png', - legal_structure = 'CORPORATION', - legal_name = 'Fireblocks Inc.', - year_founded = '2019', - incorporation_country = 'US', - is_regulated = 'YES', - other_names = 'Fireblocks Test VASP', - identification_type = 'Business License', - identification_country = 'US', - business_number = '123456789', - regulatory_authorities = 'SEC, FINCEN', - jurisdictions = 'US, EU', - street = 'Wall Street', - number = '10', - unit = 'Apt 2B', - post_code = '10005', - state = 'NY', - certificates = 'ISO 27001', - description = 'A leading provider of crypto security solutions.', - travel_rule_openvasp = 'active', - travel_rule_sygna = 'inactive', - travel_rule_trisa = 'pending', - travel_rule_trlight = 'active', - travel_rule_email = 'inactive', - travel_rule_trp = 'active', - travel_rule_shyft = 'inactive', - travel_rule_ustravelrulewg = 'pending', - created_at = '2023-09-19T12:23:59.711Z', - created_by = 'admin', - updated_at = '2024-08-29T08:23:51.416Z', - updated_by = 'system', - last_sent_date = '2024-03-18T09:26:07.988Z', - last_received_date = '2024-03-20T11:45:30.212Z', - documents = '['license.pdf', 'compliance.pdf']', - has_admin = True, - is_notifiable = True, - issuers = fireblocks.models.travel_rule_issuers.TravelRuleIssuers( - year_founded = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - is_regulated = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - regulatory_authorities = , - name = , - logo = , - website = , - legal_name = , - legal_structure = , - incorporation_country = , - business_number = , - address_line1 = , - city = , - country = , - description = , ) - ) - else: - return TravelRuleVASP( - did = 'did:ethr:0x17fe2dd11a2daa7f6c1fdf22532a4763f963aea6', - name = 'Fireblocks TST', - verification_status = 'VERIFIED', - address_line1 = '657 Campfire Street', - city = 'New York', - country = 'US', - email_domains = 'fireblocks.com,example.com', - website = 'https://fireblocks.com', - legal_structure = 'CORPORATION', - legal_name = 'Fireblocks Inc.', - year_founded = '2019', - incorporation_country = 'US', - is_regulated = 'YES', - jurisdictions = 'US, EU', - travel_rule_trlight = 'active', - created_at = '2023-09-19T12:23:59.711Z', - has_admin = True, - is_notifiable = True, - issuers = fireblocks.models.travel_rule_issuers.TravelRuleIssuers( - year_founded = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - is_regulated = fireblocks.models.travel_rule_issuer.TravelRuleIssuer( - issuer_did = '', ), - regulatory_authorities = , - name = , - logo = , - website = , - legal_name = , - legal_structure = , - incorporation_country = , - business_number = , - address_line1 = , - city = , - country = , - description = , ), - ) - """ - - def testTravelRuleVASP(self): - """Test TravelRuleVASP""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3Zhc3AgaW1wb3J0IFRyYXZlbFJ1bGVWQVNQCgoKY2xhc3MgVGVzdFRyYXZlbFJ1bGVWQVNQKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRyYXZlbFJ1bGVWQVNQIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUcmF2ZWxSdWxlVkFTUDoKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVWQVNQCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRyYXZlbFJ1bGVWQVNQYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVHJhdmVsUnVsZVZBU1AoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlVkFTUCgKICAgICAgICAgICAgICAgIGRpZCA9ICdkaWQ6ZXRocjoweDE3ZmUyZGQxMWEyZGFhN2Y2YzFmZGYyMjUzMmE0NzYzZjk2M2FlYTYnLAogICAgICAgICAgICAgICAgbmFtZSA9ICdGaXJlYmxvY2tzIFRTVCcsCiAgICAgICAgICAgICAgICB2ZXJpZmljYXRpb25fc3RhdHVzID0gJ1ZFUklGSUVEJywKICAgICAgICAgICAgICAgIGFkZHJlc3NfbGluZTEgPSAnNjU3IENhbXBmaXJlIFN0cmVldCcsCiAgICAgICAgICAgICAgICBhZGRyZXNzX2xpbmUyID0gJ1N1aXRlIDEwJywKICAgICAgICAgICAgICAgIGNpdHkgPSAnTmV3IFlvcmsnLAogICAgICAgICAgICAgICAgY291bnRyeSA9ICdVUycsCiAgICAgICAgICAgICAgICBlbWFpbF9kb21haW5zID0gJ2ZpcmVibG9ja3MuY29tLGV4YW1wbGUuY29tJywKICAgICAgICAgICAgICAgIHdlYnNpdGUgPSAnaHR0cHM6Ly9maXJlYmxvY2tzLmNvbScsCiAgICAgICAgICAgICAgICBsb2dvID0gJ2h0dHBzOi8vZmlyZWJsb2Nrcy5jb20vbG9nby5wbmcnLAogICAgICAgICAgICAgICAgbGVnYWxfc3RydWN0dXJlID0gJ0NPUlBPUkFUSU9OJywKICAgICAgICAgICAgICAgIGxlZ2FsX25hbWUgPSAnRmlyZWJsb2NrcyBJbmMuJywKICAgICAgICAgICAgICAgIHllYXJfZm91bmRlZCA9ICcyMDE5JywKICAgICAgICAgICAgICAgIGluY29ycG9yYXRpb25fY291bnRyeSA9ICdVUycsCiAgICAgICAgICAgICAgICBpc19yZWd1bGF0ZWQgPSAnWUVTJywKICAgICAgICAgICAgICAgIG90aGVyX25hbWVzID0gJ0ZpcmVibG9ja3MgVGVzdCBWQVNQJywKICAgICAgICAgICAgICAgIGlkZW50aWZpY2F0aW9uX3R5cGUgPSAnQnVzaW5lc3MgTGljZW5zZScsCiAgICAgICAgICAgICAgICBpZGVudGlmaWNhdGlvbl9jb3VudHJ5ID0gJ1VTJywKICAgICAgICAgICAgICAgIGJ1c2luZXNzX251bWJlciA9ICcxMjM0NTY3ODknLAogICAgICAgICAgICAgICAgcmVndWxhdG9yeV9hdXRob3JpdGllcyA9ICdTRUMsIEZJTkNFTicsCiAgICAgICAgICAgICAgICBqdXJpc2RpY3Rpb25zID0gJ1VTLCBFVScsCiAgICAgICAgICAgICAgICBzdHJlZXQgPSAnV2FsbCBTdHJlZXQnLAogICAgICAgICAgICAgICAgbnVtYmVyID0gJzEwJywKICAgICAgICAgICAgICAgIHVuaXQgPSAnQXB0IDJCJywKICAgICAgICAgICAgICAgIHBvc3RfY29kZSA9ICcxMDAwNScsCiAgICAgICAgICAgICAgICBzdGF0ZSA9ICdOWScsCiAgICAgICAgICAgICAgICBjZXJ0aWZpY2F0ZXMgPSAnSVNPIDI3MDAxJywKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ0EgbGVhZGluZyBwcm92aWRlciBvZiBjcnlwdG8gc2VjdXJpdHkgc29sdXRpb25zLicsCiAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV9vcGVudmFzcCA9ICdhY3RpdmUnLAogICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfc3lnbmEgPSAnaW5hY3RpdmUnLAogICAgICAgICAgICAgICAgdHJhdmVsX3J1bGVfdHJpc2EgPSAncGVuZGluZycsCiAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV90cmxpZ2h0ID0gJ2FjdGl2ZScsCiAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV9lbWFpbCA9ICdpbmFjdGl2ZScsCiAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV90cnAgPSAnYWN0aXZlJywKICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX3NoeWZ0ID0gJ2luYWN0aXZlJywKICAgICAgICAgICAgICAgIHRyYXZlbF9ydWxlX3VzdHJhdmVscnVsZXdnID0gJ3BlbmRpbmcnLAogICAgICAgICAgICAgICAgY3JlYXRlZF9hdCA9ICcyMDIzLTA5LTE5VDEyOjIzOjU5LjcxMVonLAogICAgICAgICAgICAgICAgY3JlYXRlZF9ieSA9ICdhZG1pbicsCiAgICAgICAgICAgICAgICB1cGRhdGVkX2F0ID0gJzIwMjQtMDgtMjlUMDg6MjM6NTEuNDE2WicsCiAgICAgICAgICAgICAgICB1cGRhdGVkX2J5ID0gJ3N5c3RlbScsCiAgICAgICAgICAgICAgICBsYXN0X3NlbnRfZGF0ZSA9ICcyMDI0LTAzLTE4VDA5OjI2OjA3Ljk4OFonLAogICAgICAgICAgICAgICAgbGFzdF9yZWNlaXZlZF9kYXRlID0gJzIwMjQtMDMtMjBUMTE6NDU6MzAuMjEyWicsCiAgICAgICAgICAgICAgICBkb2N1bWVudHMgPSAnWydsaWNlbnNlLnBkZicsICdjb21wbGlhbmNlLnBkZiddJywKICAgICAgICAgICAgICAgIGhhc19hZG1pbiA9IFRydWUsCiAgICAgICAgICAgICAgICBpc19ub3RpZmlhYmxlID0gVHJ1ZSwKICAgICAgICAgICAgICAgIGlzc3VlcnMgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9pc3N1ZXJzLlRyYXZlbFJ1bGVJc3N1ZXJzKAogICAgICAgICAgICAgICAgICAgIHllYXJfZm91bmRlZCA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2lzc3Vlci5UcmF2ZWxSdWxlSXNzdWVyKAogICAgICAgICAgICAgICAgICAgICAgICBpc3N1ZXJfZGlkID0gJycsICksIAogICAgICAgICAgICAgICAgICAgIGlzX3JlZ3VsYXRlZCA9IGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX2lzc3Vlci5UcmF2ZWxSdWxlSXNzdWVyKAogICAgICAgICAgICAgICAgICAgICAgICBpc3N1ZXJfZGlkID0gJycsICksIAogICAgICAgICAgICAgICAgICAgIHJlZ3VsYXRvcnlfYXV0aG9yaXRpZXMgPSAsIAogICAgICAgICAgICAgICAgICAgIG5hbWUgPSAsIAogICAgICAgICAgICAgICAgICAgIGxvZ28gPSAsIAogICAgICAgICAgICAgICAgICAgIHdlYnNpdGUgPSAsIAogICAgICAgICAgICAgICAgICAgIGxlZ2FsX25hbWUgPSAsIAogICAgICAgICAgICAgICAgICAgIGxlZ2FsX3N0cnVjdHVyZSA9ICwgCiAgICAgICAgICAgICAgICAgICAgaW5jb3Jwb3JhdGlvbl9jb3VudHJ5ID0gLCAKICAgICAgICAgICAgICAgICAgICBidXNpbmVzc19udW1iZXIgPSAsIAogICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfbGluZTEgPSAsIAogICAgICAgICAgICAgICAgICAgIGNpdHkgPSAsIAogICAgICAgICAgICAgICAgICAgIGNvdW50cnkgPSAsIAogICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJhdmVsUnVsZVZBU1AoCiAgICAgICAgICAgICAgICBkaWQgPSAnZGlkOmV0aHI6MHgxN2ZlMmRkMTFhMmRhYTdmNmMxZmRmMjI1MzJhNDc2M2Y5NjNhZWE2JywKICAgICAgICAgICAgICAgIG5hbWUgPSAnRmlyZWJsb2NrcyBUU1QnLAogICAgICAgICAgICAgICAgdmVyaWZpY2F0aW9uX3N0YXR1cyA9ICdWRVJJRklFRCcsCiAgICAgICAgICAgICAgICBhZGRyZXNzX2xpbmUxID0gJzY1NyBDYW1wZmlyZSBTdHJlZXQnLAogICAgICAgICAgICAgICAgY2l0eSA9ICdOZXcgWW9yaycsCiAgICAgICAgICAgICAgICBjb3VudHJ5ID0gJ1VTJywKICAgICAgICAgICAgICAgIGVtYWlsX2RvbWFpbnMgPSAnZmlyZWJsb2Nrcy5jb20sZXhhbXBsZS5jb20nLAogICAgICAgICAgICAgICAgd2Vic2l0ZSA9ICdodHRwczovL2ZpcmVibG9ja3MuY29tJywKICAgICAgICAgICAgICAgIGxlZ2FsX3N0cnVjdHVyZSA9ICdDT1JQT1JBVElPTicsCiAgICAgICAgICAgICAgICBsZWdhbF9uYW1lID0gJ0ZpcmVibG9ja3MgSW5jLicsCiAgICAgICAgICAgICAgICB5ZWFyX2ZvdW5kZWQgPSAnMjAxOScsCiAgICAgICAgICAgICAgICBpbmNvcnBvcmF0aW9uX2NvdW50cnkgPSAnVVMnLAogICAgICAgICAgICAgICAgaXNfcmVndWxhdGVkID0gJ1lFUycsCiAgICAgICAgICAgICAgICBqdXJpc2RpY3Rpb25zID0gJ1VTLCBFVScsCiAgICAgICAgICAgICAgICB0cmF2ZWxfcnVsZV90cmxpZ2h0ID0gJ2FjdGl2ZScsCiAgICAgICAgICAgICAgICBjcmVhdGVkX2F0ID0gJzIwMjMtMDktMTlUMTI6MjM6NTkuNzExWicsCiAgICAgICAgICAgICAgICBoYXNfYWRtaW4gPSBUcnVlLAogICAgICAgICAgICAgICAgaXNfbm90aWZpYWJsZSA9IFRydWUsCiAgICAgICAgICAgICAgICBpc3N1ZXJzID0gZmlyZWJsb2Nrcy5tb2RlbHMudHJhdmVsX3J1bGVfaXNzdWVycy5UcmF2ZWxSdWxlSXNzdWVycygKICAgICAgICAgICAgICAgICAgICB5ZWFyX2ZvdW5kZWQgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9pc3N1ZXIuVHJhdmVsUnVsZUlzc3VlcigKICAgICAgICAgICAgICAgICAgICAgICAgaXNzdWVyX2RpZCA9ICcnLCApLCAKICAgICAgICAgICAgICAgICAgICBpc19yZWd1bGF0ZWQgPSBmaXJlYmxvY2tzLm1vZGVscy50cmF2ZWxfcnVsZV9pc3N1ZXIuVHJhdmVsUnVsZUlzc3VlcigKICAgICAgICAgICAgICAgICAgICAgICAgaXNzdWVyX2RpZCA9ICcnLCApLCAKICAgICAgICAgICAgICAgICAgICByZWd1bGF0b3J5X2F1dGhvcml0aWVzID0gLCAKICAgICAgICAgICAgICAgICAgICBuYW1lID0gLCAKICAgICAgICAgICAgICAgICAgICBsb2dvID0gLCAKICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlID0gLCAKICAgICAgICAgICAgICAgICAgICBsZWdhbF9uYW1lID0gLCAKICAgICAgICAgICAgICAgICAgICBsZWdhbF9zdHJ1Y3R1cmUgPSAsIAogICAgICAgICAgICAgICAgICAgIGluY29ycG9yYXRpb25fY291bnRyeSA9ICwgCiAgICAgICAgICAgICAgICAgICAgYnVzaW5lc3NfbnVtYmVyID0gLCAKICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX2xpbmUxID0gLCAKICAgICAgICAgICAgICAgICAgICBjaXR5ID0gLCAKICAgICAgICAgICAgICAgICAgICBjb3VudHJ5ID0gLCAKICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICwgKSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcmF2ZWxSdWxlVkFTUChzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVWQVNQIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_travel_rule_vasp_for_vault.py b/test/test_travel_rule_vasp_for_vault.py index 29974d6b..4bf39f28 100644 --- a/test/test_travel_rule_vasp_for_vault.py +++ b/test/test_travel_rule_vasp_for_vault.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_vasp_for_vault import TravelRuleVaspForVault - - -class TestTravelRuleVaspForVault(unittest.TestCase): - """TravelRuleVaspForVault unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TravelRuleVaspForVault: - """Test TravelRuleVaspForVault - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TravelRuleVaspForVault` - """ - model = TravelRuleVaspForVault() - if include_optional: - return TravelRuleVaspForVault( - vasp_did = 'did:ethr:0x5dddec8dd669c49304ddbcba36ccc6e0798534dc' - ) - else: - return TravelRuleVaspForVault( - ) - """ - - def testTravelRuleVaspForVault(self): - """Test TravelRuleVaspForVault""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3Zhc3BfZm9yX3ZhdWx0IGltcG9ydCBUcmF2ZWxSdWxlVmFzcEZvclZhdWx0CgoKY2xhc3MgVGVzdFRyYXZlbFJ1bGVWYXNwRm9yVmF1bHQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJhdmVsUnVsZVZhc3BGb3JWYXVsdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJhdmVsUnVsZVZhc3BGb3JWYXVsdDoKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVWYXNwRm9yVmF1bHQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJhdmVsUnVsZVZhc3BGb3JWYXVsdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRyYXZlbFJ1bGVWYXNwRm9yVmF1bHQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBUcmF2ZWxSdWxlVmFzcEZvclZhdWx0KAogICAgICAgICAgICAgICAgdmFzcF9kaWQgPSAnZGlkOmV0aHI6MHg1ZGRkZWM4ZGQ2NjljNDkzMDRkZGJjYmEzNmNjYzZlMDc5ODUzNGRjJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRyYXZlbFJ1bGVWYXNwRm9yVmF1bHQoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJhdmVsUnVsZVZhc3BGb3JWYXVsdChzZWxmKToKICAgICAgICAiIiJUZXN0IFRyYXZlbFJ1bGVWYXNwRm9yVmF1bHQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_travel_rule_verdict_enum.py b/test/test_travel_rule_verdict_enum.py index 669e3434..825653be 100644 --- a/test/test_travel_rule_verdict_enum.py +++ b/test/test_travel_rule_verdict_enum.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.travel_rule_verdict_enum import TravelRuleVerdictEnum - - -class TestTravelRuleVerdictEnum(unittest.TestCase): - """TravelRuleVerdictEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTravelRuleVerdictEnum(self): - """Test TravelRuleVerdictEnum""" - # inst = TravelRuleVerdictEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRyYXZlbF9ydWxlX3ZlcmRpY3RfZW51bSBpbXBvcnQgVHJhdmVsUnVsZVZlcmRpY3RFbnVtCgoKY2xhc3MgVGVzdFRyYXZlbFJ1bGVWZXJkaWN0RW51bSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJUcmF2ZWxSdWxlVmVyZGljdEVudW0gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0VHJhdmVsUnVsZVZlcmRpY3RFbnVtKHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJhdmVsUnVsZVZlcmRpY3RFbnVtIiIiCiAgICAgICAgIyBpbnN0ID0gVHJhdmVsUnVsZVZlcmRpY3RFbnVtKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_trust_proof_of_address_create_response.py b/test/test_trust_proof_of_address_create_response.py index bd798770..555f150e 100644 --- a/test/test_trust_proof_of_address_create_response.py +++ b/test/test_trust_proof_of_address_create_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.trust_proof_of_address_create_response import ( - TrustProofOfAddressCreateResponse, -) - - -class TestTrustProofOfAddressCreateResponse(unittest.TestCase): - """TrustProofOfAddressCreateResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TrustProofOfAddressCreateResponse: - """Test TrustProofOfAddressCreateResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TrustProofOfAddressCreateResponse` - """ - model = TrustProofOfAddressCreateResponse() - if include_optional: - return TrustProofOfAddressCreateResponse( - transaction_id = '550e8400-e29b-41d4-a716-446655440000', - status = 'PENDING_SIGNATURE' - ) - else: - return TrustProofOfAddressCreateResponse( - transaction_id = '550e8400-e29b-41d4-a716-446655440000', - status = 'PENDING_SIGNATURE', - ) - """ - - def testTrustProofOfAddressCreateResponse(self): - """Test TrustProofOfAddressCreateResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRydXN0X3Byb29mX29mX2FkZHJlc3NfY3JlYXRlX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBUcnVzdFByb29mT2ZBZGRyZXNzQ3JlYXRlUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0VHJ1c3RQcm9vZk9mQWRkcmVzc0NyZWF0ZVJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlRydXN0UHJvb2ZPZkFkZHJlc3NDcmVhdGVSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVHJ1c3RQcm9vZk9mQWRkcmVzc0NyZWF0ZVJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgVHJ1c3RQcm9vZk9mQWRkcmVzc0NyZWF0ZVJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFRydXN0UHJvb2ZPZkFkZHJlc3NDcmVhdGVSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFRydXN0UHJvb2ZPZkFkZHJlc3NDcmVhdGVSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRydXN0UHJvb2ZPZkFkZHJlc3NDcmVhdGVSZXNwb25zZSgKICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uX2lkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCcsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnUEVORElOR19TSUdOQVRVUkUnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVHJ1c3RQcm9vZk9mQWRkcmVzc0NyZWF0ZVJlc3BvbnNlKAogICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25faWQgPSAnNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAwJywKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdQRU5ESU5HX1NJR05BVFVSRScsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJ1c3RQcm9vZk9mQWRkcmVzc0NyZWF0ZVJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJ1c3RQcm9vZk9mQWRkcmVzc0NyZWF0ZVJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_trust_proof_of_address_request.py b/test/test_trust_proof_of_address_request.py index 0bdfee24..7dc4b7a3 100644 --- a/test/test_trust_proof_of_address_request.py +++ b/test/test_trust_proof_of_address_request.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.trust_proof_of_address_request import TrustProofOfAddressRequest - - -class TestTrustProofOfAddressRequest(unittest.TestCase): - """TrustProofOfAddressRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TrustProofOfAddressRequest: - """Test TrustProofOfAddressRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TrustProofOfAddressRequest` - """ - model = TrustProofOfAddressRequest() - if include_optional: - return TrustProofOfAddressRequest( - vault_account_id = '0', - asset = 'ETH', - prefix = 'trust_verification', - trust_uuid = '550e8400-e29b-41d4-a716-446655440000' - ) - else: - return TrustProofOfAddressRequest( - vault_account_id = '0', - asset = 'ETH', - prefix = 'trust_verification', - trust_uuid = '550e8400-e29b-41d4-a716-446655440000', - ) - """ - - def testTrustProofOfAddressRequest(self): - """Test TrustProofOfAddressRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRydXN0X3Byb29mX29mX2FkZHJlc3NfcmVxdWVzdCBpbXBvcnQgVHJ1c3RQcm9vZk9mQWRkcmVzc1JlcXVlc3QKCgpjbGFzcyBUZXN0VHJ1c3RQcm9vZk9mQWRkcmVzc1JlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJ1c3RQcm9vZk9mQWRkcmVzc1JlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFRydXN0UHJvb2ZPZkFkZHJlc3NSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgVHJ1c3RQcm9vZk9mQWRkcmVzc1JlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJ1c3RQcm9vZk9mQWRkcmVzc1JlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUcnVzdFByb29mT2ZBZGRyZXNzUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFRydXN0UHJvb2ZPZkFkZHJlc3NSZXF1ZXN0KAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcwJywKICAgICAgICAgICAgICAgIGFzc2V0ID0gJ0VUSCcsCiAgICAgICAgICAgICAgICBwcmVmaXggPSAndHJ1c3RfdmVyaWZpY2F0aW9uJywKICAgICAgICAgICAgICAgIHRydXN0X3V1aWQgPSAnNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAwJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRydXN0UHJvb2ZPZkFkZHJlc3NSZXF1ZXN0KAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcwJywKICAgICAgICAgICAgICAgIGFzc2V0ID0gJ0VUSCcsCiAgICAgICAgICAgICAgICBwcmVmaXggPSAndHJ1c3RfdmVyaWZpY2F0aW9uJywKICAgICAgICAgICAgICAgIHRydXN0X3V1aWQgPSAnNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAwJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUcnVzdFByb29mT2ZBZGRyZXNzUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFRydXN0UHJvb2ZPZkFkZHJlc3NSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_trust_proof_of_address_response.py b/test/test_trust_proof_of_address_response.py index 559298a1..b602cf0b 100644 --- a/test/test_trust_proof_of_address_response.py +++ b/test/test_trust_proof_of_address_response.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.trust_proof_of_address_response import ( - TrustProofOfAddressResponse, -) - - -class TestTrustProofOfAddressResponse(unittest.TestCase): - """TrustProofOfAddressResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TrustProofOfAddressResponse: - """Test TrustProofOfAddressResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TrustProofOfAddressResponse` - """ - model = TrustProofOfAddressResponse() - if include_optional: - return TrustProofOfAddressResponse( - transaction_id = '550e8400-e29b-41d4-a716-446655440000', - status = 'PENDING_SIGNATURE', - signature = '0x6e6e0da016d49d2eaeefb2ce49efcde627151ce03d3e525963aa541ce07fb41c0f1f70d131f160480b4a68aaefbdae1b6fe3765eee3ceff0a8b47a8c979ccd961c' - ) - else: - return TrustProofOfAddressResponse( - transaction_id = '550e8400-e29b-41d4-a716-446655440000', - status = 'PENDING_SIGNATURE', - signature = '0x6e6e0da016d49d2eaeefb2ce49efcde627151ce03d3e525963aa541ce07fb41c0f1f70d131f160480b4a68aaefbdae1b6fe3765eee3ceff0a8b47a8c979ccd961c', - ) - """ - - def testTrustProofOfAddressResponse(self): - """Test TrustProofOfAddressResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnRydXN0X3Byb29mX29mX2FkZHJlc3NfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFRydXN0UHJvb2ZPZkFkZHJlc3NSZXNwb25zZSwKKQoKCmNsYXNzIFRlc3RUcnVzdFByb29mT2ZBZGRyZXNzUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHJ1c3RQcm9vZk9mQWRkcmVzc1Jlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBUcnVzdFByb29mT2ZBZGRyZXNzUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBUcnVzdFByb29mT2ZBZGRyZXNzUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHJ1c3RQcm9vZk9mQWRkcmVzc1Jlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVHJ1c3RQcm9vZk9mQWRkcmVzc1Jlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVHJ1c3RQcm9vZk9mQWRkcmVzc1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25faWQgPSAnNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAwJywKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdQRU5ESU5HX1NJR05BVFVSRScsCiAgICAgICAgICAgICAgICBzaWduYXR1cmUgPSAnMHg2ZTZlMGRhMDE2ZDQ5ZDJlYWVlZmIyY2U0OWVmY2RlNjI3MTUxY2UwM2QzZTUyNTk2M2FhNTQxY2UwN2ZiNDFjMGYxZjcwZDEzMWYxNjA0ODBiNGE2OGFhZWZiZGFlMWI2ZmUzNzY1ZWVlM2NlZmYwYThiNDdhOGM5NzljY2Q5NjFjJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFRydXN0UHJvb2ZPZkFkZHJlc3NSZXNwb25zZSgKICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uX2lkID0gJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCcsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnUEVORElOR19TSUdOQVRVUkUnLAogICAgICAgICAgICAgICAgc2lnbmF0dXJlID0gJzB4NmU2ZTBkYTAxNmQ0OWQyZWFlZWZiMmNlNDllZmNkZTYyNzE1MWNlMDNkM2U1MjU5NjNhYTU0MWNlMDdmYjQxYzBmMWY3MGQxMzFmMTYwNDgwYjRhNjhhYWVmYmRhZTFiNmZlMzc2NWVlZTNjZWZmMGE4YjQ3YThjOTc5Y2NkOTYxYycsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VHJ1c3RQcm9vZk9mQWRkcmVzc1Jlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVHJ1c3RQcm9vZk9mQWRkcmVzc1Jlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_tx_log.py b/test/test_tx_log.py index 15ec5ed2..f2e3f537 100644 --- a/test/test_tx_log.py +++ b/test/test_tx_log.py @@ -1,71 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.tx_log import TxLog - - -class TestTxLog(unittest.TestCase): - """TxLog unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> TxLog: - """Test TxLog - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `TxLog` - """ - model = TxLog() - if include_optional: - return TxLog( - address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66', - topics = ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000a7d9ddbe1f17865597fbd27ec712455208b6b76d","0x000000000000000000000000c2c4e1db41f0bb97996d0ed0542d2170d146fb66"], - data = '0x000000000000000000000000000000000000000000000000000000000000000a', - block_number = 123456, - transaction_hash = '0x5a3b7f4b2c9e4a0b1f8a12c8e5f1d0e2a6b4c9d1f7e2b1a2b3c4d5e6f7a8b9c', - transaction_index = 2, - block_hash = '0x6e3c92a3d96f96e46b7f39c30244edb6e8e0f4b65d3846c9f8287f9dd5d1a3d2', - log_index = 1, - removed = False - ) - else: - return TxLog( - address = '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66', - topics = ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000a7d9ddbe1f17865597fbd27ec712455208b6b76d","0x000000000000000000000000c2c4e1db41f0bb97996d0ed0542d2170d146fb66"], - data = '0x000000000000000000000000000000000000000000000000000000000000000a', - block_number = 123456, - transaction_hash = '0x5a3b7f4b2c9e4a0b1f8a12c8e5f1d0e2a6b4c9d1f7e2b1a2b3c4d5e6f7a8b9c', - transaction_index = 2, - block_hash = '0x6e3c92a3d96f96e46b7f39c30244edb6e8e0f4b65d3846c9f8287f9dd5d1a3d2', - log_index = 1, - removed = False, - ) - """ - - def testTxLog(self): - """Test TxLog""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnR4X2xvZyBpbXBvcnQgVHhMb2cKCgpjbGFzcyBUZXN0VHhMb2codW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHhMb2cgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFR4TG9nOgogICAgICAgICIiIlRlc3QgVHhMb2cKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVHhMb2dgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBUeExvZygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFR4TG9nKAogICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweEMyYzRlMURiNDFGMGJCOTc5OTZEMGVEMDU0MkQyMTcwZDE0NkZCNjYnLAogICAgICAgICAgICAgICAgdG9waWNzID0gWyIweGRkZjI1MmFkMWJlMmM4OWI2OWMyYjA2OGZjMzc4ZGFhOTUyYmE3ZjE2M2M0YTExNjI4ZjU1YTRkZjUyM2IzZWYiLCIweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGE3ZDlkZGJlMWYxNzg2NTU5N2ZiZDI3ZWM3MTI0NTUyMDhiNmI3NmQiLCIweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGMyYzRlMWRiNDFmMGJiOTc5OTZkMGVkMDU0MmQyMTcwZDE0NmZiNjYiXSwKICAgICAgICAgICAgICAgIGRhdGEgPSAnMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBhJywKICAgICAgICAgICAgICAgIGJsb2NrX251bWJlciA9IDEyMzQ1NiwKICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uX2hhc2ggPSAnMHg1YTNiN2Y0YjJjOWU0YTBiMWY4YTEyYzhlNWYxZDBlMmE2YjRjOWQxZjdlMmIxYTJiM2M0ZDVlNmY3YThiOWMnLAogICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25faW5kZXggPSAyLAogICAgICAgICAgICAgICAgYmxvY2tfaGFzaCA9ICcweDZlM2M5MmEzZDk2Zjk2ZTQ2YjdmMzljMzAyNDRlZGI2ZThlMGY0YjY1ZDM4NDZjOWY4Mjg3ZjlkZDVkMWEzZDInLAogICAgICAgICAgICAgICAgbG9nX2luZGV4ID0gMSwKICAgICAgICAgICAgICAgIHJlbW92ZWQgPSBGYWxzZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFR4TG9nKAogICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcweEMyYzRlMURiNDFGMGJCOTc5OTZEMGVEMDU0MkQyMTcwZDE0NkZCNjYnLAogICAgICAgICAgICAgICAgdG9waWNzID0gWyIweGRkZjI1MmFkMWJlMmM4OWI2OWMyYjA2OGZjMzc4ZGFhOTUyYmE3ZjE2M2M0YTExNjI4ZjU1YTRkZjUyM2IzZWYiLCIweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGE3ZDlkZGJlMWYxNzg2NTU5N2ZiZDI3ZWM3MTI0NTUyMDhiNmI3NmQiLCIweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGMyYzRlMWRiNDFmMGJiOTc5OTZkMGVkMDU0MmQyMTcwZDE0NmZiNjYiXSwKICAgICAgICAgICAgICAgIGRhdGEgPSAnMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBhJywKICAgICAgICAgICAgICAgIGJsb2NrX251bWJlciA9IDEyMzQ1NiwKICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uX2hhc2ggPSAnMHg1YTNiN2Y0YjJjOWU0YTBiMWY4YTEyYzhlNWYxZDBlMmE2YjRjOWQxZjdlMmIxYTJiM2M0ZDVlNmY3YThiOWMnLAogICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25faW5kZXggPSAyLAogICAgICAgICAgICAgICAgYmxvY2tfaGFzaCA9ICcweDZlM2M5MmEzZDk2Zjk2ZTQ2YjdmMzljMzAyNDRlZGI2ZThlMGY0YjY1ZDM4NDZjOWY4Mjg3ZjlkZDVkMWEzZDInLAogICAgICAgICAgICAgICAgbG9nX2luZGV4ID0gMSwKICAgICAgICAgICAgICAgIHJlbW92ZWQgPSBGYWxzZSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RUeExvZyhzZWxmKToKICAgICAgICAiIiJUZXN0IFR4TG9nIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_typed_message_transaction_status_enum.py b/test/test_typed_message_transaction_status_enum.py index 1853a66e..93e1d22a 100644 --- a/test/test_typed_message_transaction_status_enum.py +++ b/test/test_typed_message_transaction_status_enum.py @@ -1,38 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.typed_message_transaction_status_enum import ( - TypedMessageTransactionStatusEnum, -) - - -class TestTypedMessageTransactionStatusEnum(unittest.TestCase): - """TypedMessageTransactionStatusEnum unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testTypedMessageTransactionStatusEnum(self): - """Test TypedMessageTransactionStatusEnum""" - # inst = TypedMessageTransactionStatusEnum() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnR5cGVkX21lc3NhZ2VfdHJhbnNhY3Rpb25fc3RhdHVzX2VudW0gaW1wb3J0ICgKICAgIFR5cGVkTWVzc2FnZVRyYW5zYWN0aW9uU3RhdHVzRW51bSwKKQoKCmNsYXNzIFRlc3RUeXBlZE1lc3NhZ2VUcmFuc2FjdGlvblN0YXR1c0VudW0odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVHlwZWRNZXNzYWdlVHJhbnNhY3Rpb25TdGF0dXNFbnVtIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdFR5cGVkTWVzc2FnZVRyYW5zYWN0aW9uU3RhdHVzRW51bShzZWxmKToKICAgICAgICAiIiJUZXN0IFR5cGVkTWVzc2FnZVRyYW5zYWN0aW9uU3RhdHVzRW51bSIiIgogICAgICAgICMgaW5zdCA9IFR5cGVkTWVzc2FnZVRyYW5zYWN0aW9uU3RhdHVzRW51bSgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_unfreeze_transaction_response.py b/test/test_unfreeze_transaction_response.py index b2656cbf..1df80680 100644 --- a/test/test_unfreeze_transaction_response.py +++ b/test/test_unfreeze_transaction_response.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.unfreeze_transaction_response import UnfreezeTransactionResponse - - -class TestUnfreezeTransactionResponse(unittest.TestCase): - """UnfreezeTransactionResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> UnfreezeTransactionResponse: - """Test UnfreezeTransactionResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `UnfreezeTransactionResponse` - """ - model = UnfreezeTransactionResponse() - if include_optional: - return UnfreezeTransactionResponse( - success = True - ) - else: - return UnfreezeTransactionResponse( - ) - """ - - def testUnfreezeTransactionResponse(self): - """Test UnfreezeTransactionResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVuZnJlZXplX3RyYW5zYWN0aW9uX3Jlc3BvbnNlIGltcG9ydCBVbmZyZWV6ZVRyYW5zYWN0aW9uUmVzcG9uc2UKCgpjbGFzcyBUZXN0VW5mcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlVuZnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVW5mcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgVW5mcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFVuZnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFVuZnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFVuZnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZSgKICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVW5mcmVlemVUcmFuc2FjdGlvblJlc3BvbnNlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFVuZnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFVuZnJlZXplVHJhbnNhY3Rpb25SZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_unmanaged_wallet.py b/test/test_unmanaged_wallet.py index 5d639be2..b1b078be 100644 --- a/test/test_unmanaged_wallet.py +++ b/test/test_unmanaged_wallet.py @@ -1,78 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.unmanaged_wallet import UnmanagedWallet - - -class TestUnmanagedWallet(unittest.TestCase): - """UnmanagedWallet unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> UnmanagedWallet: - """Test UnmanagedWallet - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `UnmanagedWallet` - """ - model = UnmanagedWallet() - if include_optional: - return UnmanagedWallet( - id = '', - name = '', - customer_ref_id = '', - assets = [ - fireblocks.models.wallet_asset.WalletAsset( - id = '', - balance = '', - locked_amount = '', - status = 'WAITING_FOR_APPROVAL', - address = '', - tag = '', - activation_time = '', ) - ] - ) - else: - return UnmanagedWallet( - id = '', - name = '', - assets = [ - fireblocks.models.wallet_asset.WalletAsset( - id = '', - balance = '', - locked_amount = '', - status = 'WAITING_FOR_APPROVAL', - address = '', - tag = '', - activation_time = '', ) - ], - ) - """ - - def testUnmanagedWallet(self): - """Test UnmanagedWallet""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVubWFuYWdlZF93YWxsZXQgaW1wb3J0IFVubWFuYWdlZFdhbGxldAoKCmNsYXNzIFRlc3RVbm1hbmFnZWRXYWxsZXQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVW5tYW5hZ2VkV2FsbGV0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBVbm1hbmFnZWRXYWxsZXQ6CiAgICAgICAgIiIiVGVzdCBVbm1hbmFnZWRXYWxsZXQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVW5tYW5hZ2VkV2FsbGV0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVW5tYW5hZ2VkV2FsbGV0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVW5tYW5hZ2VkV2FsbGV0KAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnJywKICAgICAgICAgICAgICAgIGN1c3RvbWVyX3JlZl9pZCA9ICcnLAogICAgICAgICAgICAgICAgYXNzZXRzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLndhbGxldF9hc3NldC5XYWxsZXRBc3NldCgKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGJhbGFuY2UgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2tlZF9hbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdXQUlUSU5HX0ZPUl9BUFBST1ZBTCcsIAogICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICB0YWcgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2YXRpb25fdGltZSA9ICcnLCApCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFVubWFuYWdlZFdhbGxldCgKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICBuYW1lID0gJycsCiAgICAgICAgICAgICAgICBhc3NldHMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMud2FsbGV0X2Fzc2V0LldhbGxldEFzc2V0KAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmFsYW5jZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbG9ja2VkX2Ftb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJ1dBSVRJTkdfRk9SX0FQUFJPVkFMJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRhZyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZhdGlvbl90aW1lID0gJycsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFVubWFuYWdlZFdhbGxldChzZWxmKToKICAgICAgICAiIiJUZXN0IFVubWFuYWdlZFdhbGxldCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_unspent_input.py b/test/test_unspent_input.py index 1eb24355..48dc9311 100644 --- a/test/test_unspent_input.py +++ b/test/test_unspent_input.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.unspent_input import UnspentInput - - -class TestUnspentInput(unittest.TestCase): - """UnspentInput unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> UnspentInput: - """Test UnspentInput - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `UnspentInput` - """ - model = UnspentInput() - if include_optional: - return UnspentInput( - tx_hash = '', - index = 1.337 - ) - else: - return UnspentInput( - ) - """ - - def testUnspentInput(self): - """Test UnspentInput""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVuc3BlbnRfaW5wdXQgaW1wb3J0IFVuc3BlbnRJbnB1dAoKCmNsYXNzIFRlc3RVbnNwZW50SW5wdXQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVW5zcGVudElucHV0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBVbnNwZW50SW5wdXQ6CiAgICAgICAgIiIiVGVzdCBVbnNwZW50SW5wdXQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVW5zcGVudElucHV0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVW5zcGVudElucHV0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVW5zcGVudElucHV0KAogICAgICAgICAgICAgICAgdHhfaGFzaCA9ICcnLAogICAgICAgICAgICAgICAgaW5kZXggPSAxLjMzNwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFVuc3BlbnRJbnB1dCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RVbnNwZW50SW5wdXQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBVbnNwZW50SW5wdXQiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_unspent_inputs_response.py b/test/test_unspent_inputs_response.py index 0ec0ac16..25705c0d 100644 --- a/test/test_unspent_inputs_response.py +++ b/test/test_unspent_inputs_response.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.unspent_inputs_response import UnspentInputsResponse - - -class TestUnspentInputsResponse(unittest.TestCase): - """UnspentInputsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> UnspentInputsResponse: - """Test UnspentInputsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `UnspentInputsResponse` - """ - model = UnspentInputsResponse() - if include_optional: - return UnspentInputsResponse( - input = fireblocks.models.unspent_input.UnspentInput( - tx_hash = '', - index = 1.337, ), - address = '', - amount = '', - confirmations = 1.337, - status = '' - ) - else: - return UnspentInputsResponse( - ) - """ - - def testUnspentInputsResponse(self): - """Test UnspentInputsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVuc3BlbnRfaW5wdXRzX3Jlc3BvbnNlIGltcG9ydCBVbnNwZW50SW5wdXRzUmVzcG9uc2UKCgpjbGFzcyBUZXN0VW5zcGVudElucHV0c1Jlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlVuc3BlbnRJbnB1dHNSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVW5zcGVudElucHV0c1Jlc3BvbnNlOgogICAgICAgICIiIlRlc3QgVW5zcGVudElucHV0c1Jlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFVuc3BlbnRJbnB1dHNSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFVuc3BlbnRJbnB1dHNSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFVuc3BlbnRJbnB1dHNSZXNwb25zZSgKICAgICAgICAgICAgICAgIGlucHV0ID0gZmlyZWJsb2Nrcy5tb2RlbHMudW5zcGVudF9pbnB1dC5VbnNwZW50SW5wdXQoCiAgICAgICAgICAgICAgICAgICAgdHhfaGFzaCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBpbmRleCA9IDEuMzM3LCApLAogICAgICAgICAgICAgICAgYWRkcmVzcyA9ICcnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gJycsCiAgICAgICAgICAgICAgICBjb25maXJtYXRpb25zID0gMS4zMzcsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFVuc3BlbnRJbnB1dHNSZXNwb25zZSgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RVbnNwZW50SW5wdXRzUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBVbnNwZW50SW5wdXRzUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_unstake_request.py b/test/test_unstake_request.py index 81ed77b9..df864c90 100644 --- a/test/test_unstake_request.py +++ b/test/test_unstake_request.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.unstake_request import UnstakeRequest - - -class TestUnstakeRequest(unittest.TestCase): - """UnstakeRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> UnstakeRequest: - """Test UnstakeRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `UnstakeRequest` - """ - model = UnstakeRequest() - if include_optional: - return UnstakeRequest( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - fee = '7', - fee_level = 'MEDIUM', - tx_note = 'unstake request id b70701f4-d7b1-4795-a8ee-b09cdb5b850d #SOL', - amount = '7' - ) - else: - return UnstakeRequest( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - ) - """ - - def testUnstakeRequest(self): - """Test UnstakeRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVuc3Rha2VfcmVxdWVzdCBpbXBvcnQgVW5zdGFrZVJlcXVlc3QKCgpjbGFzcyBUZXN0VW5zdGFrZVJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVW5zdGFrZVJlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFVuc3Rha2VSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgVW5zdGFrZVJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVW5zdGFrZVJlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBVbnN0YWtlUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFVuc3Rha2VSZXF1ZXN0KAogICAgICAgICAgICAgICAgaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywKICAgICAgICAgICAgICAgIGZlZSA9ICc3JywKICAgICAgICAgICAgICAgIGZlZV9sZXZlbCA9ICdNRURJVU0nLAogICAgICAgICAgICAgICAgdHhfbm90ZSA9ICd1bnN0YWtlIHJlcXVlc3QgaWQgYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkICNTT0wnLAogICAgICAgICAgICAgICAgYW1vdW50ID0gJzcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVW5zdGFrZVJlcXVlc3QoCiAgICAgICAgICAgICAgICBpZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1Yjg1MGQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFVuc3Rha2VSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgVW5zdGFrZVJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_update_asset_user_metadata_request.py b/test/test_update_asset_user_metadata_request.py index 382fa701..228ddaf0 100644 --- a/test/test_update_asset_user_metadata_request.py +++ b/test/test_update_asset_user_metadata_request.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.update_asset_user_metadata_request import ( - UpdateAssetUserMetadataRequest, -) - - -class TestUpdateAssetUserMetadataRequest(unittest.TestCase): - """UpdateAssetUserMetadataRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> UpdateAssetUserMetadataRequest: - """Test UpdateAssetUserMetadataRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `UpdateAssetUserMetadataRequest` - """ - model = UpdateAssetUserMetadataRequest() - if include_optional: - return UpdateAssetUserMetadataRequest( - metadata = fireblocks.models.asset_metadata_request.AssetMetadataRequest( - note = fireblocks.models.asset_note_request.AssetNoteRequest( - text = 'Pay attention to ETH gas fees', ), ) - ) - else: - return UpdateAssetUserMetadataRequest( - ) - """ - - def testUpdateAssetUserMetadataRequest(self): - """Test UpdateAssetUserMetadataRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV9hc3NldF91c2VyX21ldGFkYXRhX3JlcXVlc3QgaW1wb3J0ICgKICAgIFVwZGF0ZUFzc2V0VXNlck1ldGFkYXRhUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RVcGRhdGVBc3NldFVzZXJNZXRhZGF0YVJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVXBkYXRlQXNzZXRVc2VyTWV0YWRhdGFSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBVcGRhdGVBc3NldFVzZXJNZXRhZGF0YVJlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBVcGRhdGVBc3NldFVzZXJNZXRhZGF0YVJlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVXBkYXRlQXNzZXRVc2VyTWV0YWRhdGFSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVXBkYXRlQXNzZXRVc2VyTWV0YWRhdGFSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVXBkYXRlQXNzZXRVc2VyTWV0YWRhdGFSZXF1ZXN0KAogICAgICAgICAgICAgICAgbWV0YWRhdGEgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9tZXRhZGF0YV9yZXF1ZXN0LkFzc2V0TWV0YWRhdGFSZXF1ZXN0KAogICAgICAgICAgICAgICAgICAgIG5vdGUgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9ub3RlX3JlcXVlc3QuQXNzZXROb3RlUmVxdWVzdCgKICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICdQYXkgYXR0ZW50aW9uIHRvIEVUSCBnYXMgZmVlcycsICksICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBVcGRhdGVBc3NldFVzZXJNZXRhZGF0YVJlcXVlc3QoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VXBkYXRlQXNzZXRVc2VyTWV0YWRhdGFSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgVXBkYXRlQXNzZXRVc2VyTWV0YWRhdGFSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_update_callback_handler_request.py b/test/test_update_callback_handler_request.py index 35c9eb0a..940b0d0c 100644 --- a/test/test_update_callback_handler_request.py +++ b/test/test_update_callback_handler_request.py @@ -1,62 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.update_callback_handler_request import ( - UpdateCallbackHandlerRequest, -) - - -class TestUpdateCallbackHandlerRequest(unittest.TestCase): - """UpdateCallbackHandlerRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> UpdateCallbackHandlerRequest: - """Test UpdateCallbackHandlerRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `UpdateCallbackHandlerRequest` - """ - model = UpdateCallbackHandlerRequest() - if include_optional: - return UpdateCallbackHandlerRequest( - callback_handler = fireblocks.models.callback_handler_request.CallbackHandlerRequest( - url = 'https://example.com/callback-handler', - public_key = '-----BEGIN PUBLIC KEY----- -... truncated ...-----END PUBLIC KEY-----', - cert = '-----BEGIN CERTIFICATE----- -... truncated ... ------END CERTIFICATE-----', ) - ) - else: - return UpdateCallbackHandlerRequest( - ) - """ - - def testUpdateCallbackHandlerRequest(self): - """Test UpdateCallbackHandlerRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV9jYWxsYmFja19oYW5kbGVyX3JlcXVlc3QgaW1wb3J0ICgKICAgIFVwZGF0ZUNhbGxiYWNrSGFuZGxlclJlcXVlc3QsCikKCgpjbGFzcyBUZXN0VXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFVwZGF0ZUNhbGxiYWNrSGFuZGxlclJlcXVlc3QoCiAgICAgICAgICAgICAgICBjYWxsYmFja19oYW5kbGVyID0gZmlyZWJsb2Nrcy5tb2RlbHMuY2FsbGJhY2tfaGFuZGxlcl9yZXF1ZXN0LkNhbGxiYWNrSGFuZGxlclJlcXVlc3QoCiAgICAgICAgICAgICAgICAgICAgdXJsID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vY2FsbGJhY2staGFuZGxlcicsIAogICAgICAgICAgICAgICAgICAgIHB1YmxpY19rZXkgPSAnLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KLi4uIHRydW5jYXRlZCAuLi4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0nLCAKICAgICAgICAgICAgICAgICAgICBjZXJ0ID0gJy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQouLi4gdHJ1bmNhdGVkIC4uLgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tJywgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFVwZGF0ZUNhbGxiYWNrSGFuZGxlclJlcXVlc3QoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFVwZGF0ZUNhbGxiYWNrSGFuZGxlclJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_update_callback_handler_response.py b/test/test_update_callback_handler_response.py index ccff656b..7f3619a7 100644 --- a/test/test_update_callback_handler_response.py +++ b/test/test_update_callback_handler_response.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.update_callback_handler_response import ( - UpdateCallbackHandlerResponse, -) - - -class TestUpdateCallbackHandlerResponse(unittest.TestCase): - """UpdateCallbackHandlerResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> UpdateCallbackHandlerResponse: - """Test UpdateCallbackHandlerResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `UpdateCallbackHandlerResponse` - """ - model = UpdateCallbackHandlerResponse() - if include_optional: - return UpdateCallbackHandlerResponse( - id = '44fcead0-7053-4831-a53a-df7fb90d440f', - callback_handler = fireblocks.models.callback_handler_request.CallbackHandlerRequest( - url = 'https://example.com/callback-handler', - public_key = '-----BEGIN PUBLIC KEY----- -... truncated ...-----END PUBLIC KEY-----', - cert = '-----BEGIN CERTIFICATE----- -... truncated ... ------END CERTIFICATE-----', ) - ) - else: - return UpdateCallbackHandlerResponse( - id = '44fcead0-7053-4831-a53a-df7fb90d440f', - ) - """ - - def testUpdateCallbackHandlerResponse(self): - """Test UpdateCallbackHandlerResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV9jYWxsYmFja19oYW5kbGVyX3Jlc3BvbnNlIGltcG9ydCAoCiAgICBVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXNwb25zZSwKKQoKCmNsYXNzIFRlc3RVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFVwZGF0ZUNhbGxiYWNrSGFuZGxlclJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBpZCA9ICc0NGZjZWFkMC03MDUzLTQ4MzEtYTUzYS1kZjdmYjkwZDQ0MGYnLAogICAgICAgICAgICAgICAgY2FsbGJhY2tfaGFuZGxlciA9IGZpcmVibG9ja3MubW9kZWxzLmNhbGxiYWNrX2hhbmRsZXJfcmVxdWVzdC5DYWxsYmFja0hhbmRsZXJSZXF1ZXN0KAogICAgICAgICAgICAgICAgICAgIHVybCA9ICdodHRwczovL2V4YW1wbGUuY29tL2NhbGxiYWNrLWhhbmRsZXInLCAKICAgICAgICAgICAgICAgICAgICBwdWJsaWNfa2V5ID0gJy0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tCi4uLiB0cnVuY2F0ZWQgLi4uLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tJywgCiAgICAgICAgICAgICAgICAgICAgY2VydCA9ICctLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLi4uIHRydW5jYXRlZCAuLi4KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLScsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXNwb25zZSgKICAgICAgICAgICAgICAgIGlkID0gJzQ0ZmNlYWQwLTcwNTMtNDgzMS1hNTNhLWRmN2ZiOTBkNDQwZicsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VXBkYXRlQ2FsbGJhY2tIYW5kbGVyUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBVcGRhdGVDYWxsYmFja0hhbmRsZXJSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_update_draft_request.py b/test/test_update_draft_request.py index e8248e90..062ef005 100644 --- a/test/test_update_draft_request.py +++ b/test/test_update_draft_request.py @@ -1,231 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.update_draft_request import UpdateDraftRequest - - -class TestUpdateDraftRequest(unittest.TestCase): - """UpdateDraftRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> UpdateDraftRequest: - """Test UpdateDraftRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `UpdateDraftRequest` - """ - model = UpdateDraftRequest() - if include_optional: - return UpdateDraftRequest( - policy_types = [ - 'TRANSFER' - ], - rules = [ - fireblocks.models.policy_rule.PolicyRule( - name = 'High Value Transfer Policy', - id = 'policy_rule_001', - policy_engine_version = 'v2', - type = 'TRANSFER', - sub_type = 'TRANSFER', - initiator = null, - asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], - operator = 'INCLUDES', ), - source = fireblocks.models.source_config.SourceConfig( - ids = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - address = '0x123...', ) - ], - tags = [ - fireblocks.models.policy_tag.PolicyTag( - id = 'tag_001', ) - ], - operator = 'INCLUDES', - match_from = 'ACCOUNT', ), - destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"}, - account = fireblocks.models.account_config.AccountConfig( - operator = , - match_from = 'ACCOUNT', ), - side = 'BUY', - verdict = fireblocks.models.verdict_config.VerdictConfig( - action = 'ALLOW', - approvers = fireblocks.models.approvers_config.ApproversConfig( - can_initiator_approve = False, - allow_operator_as_authorizer = False, - approval_groups = [{"threshold":2,"users":["user1","user2"]}], ), - designated_signers = fireblocks.models.designated_signers_config.DesignatedSignersConfig( - type = 'SINGLE', - users = ["user1","user2"], - groups = ["group1","group2"], ), ), - amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig( - range = {"min":"100","max":"10000"}, - currency = 'USD', - time_period = fireblocks.models.time_period_config.TimePeriodConfig( - seconds = '86400', - initiator = 'PER_SINGLE_MATCH', - source = 'PER_SINGLE_MATCH', - destination = 'PER_SINGLE_MATCH', ), ), - amount = {"range":{"min":"100","max":"10000"},"currency":"USD"}, - external_descriptor = 'High value transfer policy for institutional clients', - method = null, - is_global_policy = False, - program_call = fireblocks.models.program_call_config.ProgramCallConfig( - allowed_solana_program_calls = 'WHITELISTED', ), - screening_metadata = fireblocks.models.screening_metadata_config.ScreeningMetadataConfig( - direction = 'OUTBOUND', - provider = 'CHAINALYSIS', - risk_rating = 'MEDIUM', - risk_score = '0.8', - exposure_type = 'DIRECT', - category = [ - '' - ], - name = [ - '' - ], - category_id = [ - '' - ], - status = 'COMPLETED', - source_address = '0x123...', - dest_address = '0x456...', ), - quote_asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], ), - base_asset = , - quote_amount = {"range":{"min":"100","max":"10000"}}, - base_amount = {"range":{"min":"100","max":"10000"}}, - d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig( - global_whitelisted = ["rabby.io","jup.ag"], - tenant_whitelisted = ["uniswap.com","opensea.io"], - urls = ["*"], - operator = , ), - derivation_path = {"path":[44,0,0,0,0],"partial":false}, - index = 1, ) - ] - ) - else: - return UpdateDraftRequest( - policy_types = [ - 'TRANSFER' - ], - rules = [ - fireblocks.models.policy_rule.PolicyRule( - name = 'High Value Transfer Policy', - id = 'policy_rule_001', - policy_engine_version = 'v2', - type = 'TRANSFER', - sub_type = 'TRANSFER', - initiator = null, - asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], - operator = 'INCLUDES', ), - source = fireblocks.models.source_config.SourceConfig( - ids = [ - fireblocks.models.account_identifier.AccountIdentifier( - type = 'VAULT', - id = 'account123', - address = '0x123...', ) - ], - tags = [ - fireblocks.models.policy_tag.PolicyTag( - id = 'tag_001', ) - ], - operator = 'INCLUDES', - match_from = 'ACCOUNT', ), - destination = {"type":["EXTERNAL"],"operator":"INCLUDES","addressType":"WHITELISTED"}, - account = fireblocks.models.account_config.AccountConfig( - operator = , - match_from = 'ACCOUNT', ), - side = 'BUY', - verdict = fireblocks.models.verdict_config.VerdictConfig( - action = 'ALLOW', - approvers = fireblocks.models.approvers_config.ApproversConfig( - can_initiator_approve = False, - allow_operator_as_authorizer = False, - approval_groups = [{"threshold":2,"users":["user1","user2"]}], ), - designated_signers = fireblocks.models.designated_signers_config.DesignatedSignersConfig( - type = 'SINGLE', - users = ["user1","user2"], - groups = ["group1","group2"], ), ), - amount_over_time = fireblocks.models.amount_over_time_config.AmountOverTimeConfig( - range = {"min":"100","max":"10000"}, - currency = 'USD', - time_period = fireblocks.models.time_period_config.TimePeriodConfig( - seconds = '86400', - initiator = 'PER_SINGLE_MATCH', - source = 'PER_SINGLE_MATCH', - destination = 'PER_SINGLE_MATCH', ), ), - amount = {"range":{"min":"100","max":"10000"},"currency":"USD"}, - external_descriptor = 'High value transfer policy for institutional clients', - method = null, - is_global_policy = False, - program_call = fireblocks.models.program_call_config.ProgramCallConfig( - allowed_solana_program_calls = 'WHITELISTED', ), - screening_metadata = fireblocks.models.screening_metadata_config.ScreeningMetadataConfig( - direction = 'OUTBOUND', - provider = 'CHAINALYSIS', - risk_rating = 'MEDIUM', - risk_score = '0.8', - exposure_type = 'DIRECT', - category = [ - '' - ], - name = [ - '' - ], - category_id = [ - '' - ], - status = 'COMPLETED', - source_address = '0x123...', - dest_address = '0x456...', ), - quote_asset = fireblocks.models.asset_config.AssetConfig( - nft_transfer = False, - asset_types = ["FUNGIBLE","NFT","*"], ), - base_asset = , - quote_amount = {"range":{"min":"100","max":"10000"}}, - base_amount = {"range":{"min":"100","max":"10000"}}, - d_app_address = fireblocks.models.d_app_address_config.DAppAddressConfig( - global_whitelisted = ["rabby.io","jup.ag"], - tenant_whitelisted = ["uniswap.com","opensea.io"], - urls = ["*"], - operator = , ), - derivation_path = {"path":[44,0,0,0,0],"partial":false}, - index = 1, ) - ], - ) - """ - - def testUpdateDraftRequest(self): - """Test UpdateDraftRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV9kcmFmdF9yZXF1ZXN0IGltcG9ydCBVcGRhdGVEcmFmdFJlcXVlc3QKCgpjbGFzcyBUZXN0VXBkYXRlRHJhZnRSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlVwZGF0ZURyYWZ0UmVxdWVzdCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVXBkYXRlRHJhZnRSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgVXBkYXRlRHJhZnRSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFVwZGF0ZURyYWZ0UmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFVwZGF0ZURyYWZ0UmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFVwZGF0ZURyYWZ0UmVxdWVzdCgKICAgICAgICAgICAgICAgIHBvbGljeV90eXBlcyA9IFsKICAgICAgICAgICAgICAgICAgICAnVFJBTlNGRVInCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHJ1bGVzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9ydWxlLlBvbGljeVJ1bGUoCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnSGlnaCBWYWx1ZSBUcmFuc2ZlciBQb2xpY3knLCAKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAncG9saWN5X3J1bGVfMDAxJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeV9lbmdpbmVfdmVyc2lvbiA9ICd2MicsIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1RSQU5TRkVSJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl90eXBlID0gJ1RSQU5TRkVSJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYXRvciA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldCA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2NvbmZpZy5Bc3NldENvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5mdF90cmFuc2ZlciA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X3R5cGVzID0gWyJGVU5HSUJMRSIsIk5GVCIsIioiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICdJTkNMVURFUycsICksIAogICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UgPSBmaXJlYmxvY2tzLm1vZGVscy5zb3VyY2VfY29uZmlnLlNvdXJjZUNvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2lkZW50aWZpZXIuQWNjb3VudElkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnYWNjb3VudDEyMycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzB4MTIzLi4uJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFncyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfdGFnLlBvbGljeVRhZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAndGFnXzAwMScsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gJ0lOQ0xVREVTJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaF9mcm9tID0gJ0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSB7InR5cGUiOlsiRVhURVJOQUwiXSwib3BlcmF0b3IiOiJJTkNMVURFUyIsImFkZHJlc3NUeXBlIjoiV0hJVEVMSVNURUQifSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2NvbmZpZy5BY2NvdW50Q29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hfZnJvbSA9ICdBQ0NPVU5UJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHNpZGUgPSAnQlVZJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHZlcmRpY3QgPSBmaXJlYmxvY2tzLm1vZGVscy52ZXJkaWN0X2NvbmZpZy5WZXJkaWN0Q29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FMTE9XJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZlcnMgPSBmaXJlYmxvY2tzLm1vZGVscy5hcHByb3ZlcnNfY29uZmlnLkFwcHJvdmVyc0NvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5faW5pdGlhdG9yX2FwcHJvdmUgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dfb3BlcmF0b3JfYXNfYXV0aG9yaXplciA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZhbF9ncm91cHMgPSBbeyJ0aHJlc2hvbGQiOjIsInVzZXJzIjpbInVzZXIxIiwidXNlcjIiXX1dLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2lnbmF0ZWRfc2lnbmVycyA9IGZpcmVibG9ja3MubW9kZWxzLmRlc2lnbmF0ZWRfc2lnbmVyc19jb25maWcuRGVzaWduYXRlZFNpZ25lcnNDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdTSU5HTEUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VycyA9IFsidXNlcjEiLCJ1c2VyMiJdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cHMgPSBbImdyb3VwMSIsImdyb3VwMiJdLCApLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50X292ZXJfdGltZSA9IGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9vdmVyX3RpbWVfY29uZmlnLkFtb3VudE92ZXJUaW1lQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSB7Im1pbiI6IjEwMCIsIm1heCI6IjEwMDAwIn0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3kgPSAnVVNEJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lX3BlcmlvZCA9IGZpcmVibG9ja3MubW9kZWxzLnRpbWVfcGVyaW9kX2NvbmZpZy5UaW1lUGVyaW9kQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZHMgPSAnODY0MDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWF0b3IgPSAnUEVSX1NJTkdMRV9NQVRDSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9ICdQRVJfU0lOR0xFX01BVENIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSAnUEVSX1NJTkdMRV9NQVRDSCcsICksICksIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSB7InJhbmdlIjp7Im1pbiI6IjEwMCIsIm1heCI6IjEwMDAwIn0sImN1cnJlbmN5IjoiVVNEIn0sIAogICAgICAgICAgICAgICAgICAgICAgICBleHRlcm5hbF9kZXNjcmlwdG9yID0gJ0hpZ2ggdmFsdWUgdHJhbnNmZXIgcG9saWN5IGZvciBpbnN0aXR1dGlvbmFsIGNsaWVudHMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIGlzX2dsb2JhbF9wb2xpY3kgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyYW1fY2FsbCA9IGZpcmVibG9ja3MubW9kZWxzLnByb2dyYW1fY2FsbF9jb25maWcuUHJvZ3JhbUNhbGxDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd2VkX3NvbGFuYV9wcm9ncmFtX2NhbGxzID0gJ1dISVRFTElTVEVEJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmVlbmluZ19tZXRhZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19tZXRhZGF0YV9jb25maWcuU2NyZWVuaW5nTWV0YWRhdGFDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyID0gJ0NIQUlOQUxZU0lTJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByaXNrX3JhdGluZyA9ICdNRURJVU0nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpc2tfc2NvcmUgPSAnMC44JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBvc3VyZV90eXBlID0gJ0RJUkVDVCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VfYWRkcmVzcyA9ICcweDEyMy4uLicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9hZGRyZXNzID0gJzB4NDU2Li4uJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlX2Fzc2V0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfY29uZmlnLkFzc2V0Q29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmZ0X3RyYW5zZmVyID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfdHlwZXMgPSBbIkZVTkdJQkxFIiwiTkZUIiwiKiJdLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmFzZV9hc3NldCA9ICwgCiAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlX2Ftb3VudCA9IHsicmFuZ2UiOnsibWluIjoiMTAwIiwibWF4IjoiMTAwMDAifX0sIAogICAgICAgICAgICAgICAgICAgICAgICBiYXNlX2Ftb3VudCA9IHsicmFuZ2UiOnsibWluIjoiMTAwIiwibWF4IjoiMTAwMDAifX0sIAogICAgICAgICAgICAgICAgICAgICAgICBkX2FwcF9hZGRyZXNzID0gZmlyZWJsb2Nrcy5tb2RlbHMuZF9hcHBfYWRkcmVzc19jb25maWcuREFwcEFkZHJlc3NDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWxfd2hpdGVsaXN0ZWQgPSBbInJhYmJ5LmlvIiwianVwLmFnIl0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVuYW50X3doaXRlbGlzdGVkID0gWyJ1bmlzd2FwLmNvbSIsIm9wZW5zZWEuaW8iXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzID0gWyIqIl0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAsICksIAogICAgICAgICAgICAgICAgICAgICAgICBkZXJpdmF0aW9uX3BhdGggPSB7InBhdGgiOls0NCwwLDAsMCwwXSwicGFydGlhbCI6ZmFsc2V9LCAKICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSAxLCApCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFVwZGF0ZURyYWZ0UmVxdWVzdCgKICAgICAgICAgICAgICAgIHBvbGljeV90eXBlcyA9IFsKICAgICAgICAgICAgICAgICAgICAnVFJBTlNGRVInCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHJ1bGVzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBvbGljeV9ydWxlLlBvbGljeVJ1bGUoCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnSGlnaCBWYWx1ZSBUcmFuc2ZlciBQb2xpY3knLCAKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAncG9saWN5X3J1bGVfMDAxJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeV9lbmdpbmVfdmVyc2lvbiA9ICd2MicsIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ1RSQU5TRkVSJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl90eXBlID0gJ1RSQU5TRkVSJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYXRvciA9IG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICBhc3NldCA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2NvbmZpZy5Bc3NldENvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5mdF90cmFuc2ZlciA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0X3R5cGVzID0gWyJGVU5HSUJMRSIsIk5GVCIsIioiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICdJTkNMVURFUycsICksIAogICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UgPSBmaXJlYmxvY2tzLm1vZGVscy5zb3VyY2VfY29uZmlnLlNvdXJjZUNvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2lkZW50aWZpZXIuQWNjb3VudElkZW50aWZpZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVkFVTFQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnYWNjb3VudDEyMycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJzB4MTIzLi4uJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFncyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wb2xpY3lfdGFnLlBvbGljeVRhZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAndGFnXzAwMScsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yID0gJ0lOQ0xVREVTJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaF9mcm9tID0gJ0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSB7InR5cGUiOlsiRVhURVJOQUwiXSwib3BlcmF0b3IiOiJJTkNMVURFUyIsImFkZHJlc3NUeXBlIjoiV0hJVEVMSVNURUQifSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50X2NvbmZpZy5BY2NvdW50Q29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hfZnJvbSA9ICdBQ0NPVU5UJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHNpZGUgPSAnQlVZJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHZlcmRpY3QgPSBmaXJlYmxvY2tzLm1vZGVscy52ZXJkaWN0X2NvbmZpZy5WZXJkaWN0Q29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FMTE9XJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZlcnMgPSBmaXJlYmxvY2tzLm1vZGVscy5hcHByb3ZlcnNfY29uZmlnLkFwcHJvdmVyc0NvbmZpZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5faW5pdGlhdG9yX2FwcHJvdmUgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dfb3BlcmF0b3JfYXNfYXV0aG9yaXplciA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZhbF9ncm91cHMgPSBbeyJ0aHJlc2hvbGQiOjIsInVzZXJzIjpbInVzZXIxIiwidXNlcjIiXX1dLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2lnbmF0ZWRfc2lnbmVycyA9IGZpcmVibG9ja3MubW9kZWxzLmRlc2lnbmF0ZWRfc2lnbmVyc19jb25maWcuRGVzaWduYXRlZFNpZ25lcnNDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdTSU5HTEUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VycyA9IFsidXNlcjEiLCJ1c2VyMiJdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cHMgPSBbImdyb3VwMSIsImdyb3VwMiJdLCApLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50X292ZXJfdGltZSA9IGZpcmVibG9ja3MubW9kZWxzLmFtb3VudF9vdmVyX3RpbWVfY29uZmlnLkFtb3VudE92ZXJUaW1lQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSB7Im1pbiI6IjEwMCIsIm1heCI6IjEwMDAwIn0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3kgPSAnVVNEJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lX3BlcmlvZCA9IGZpcmVibG9ja3MubW9kZWxzLnRpbWVfcGVyaW9kX2NvbmZpZy5UaW1lUGVyaW9kQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZHMgPSAnODY0MDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWF0b3IgPSAnUEVSX1NJTkdMRV9NQVRDSCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9ICdQRVJfU0lOR0xFX01BVENIJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24gPSAnUEVSX1NJTkdMRV9NQVRDSCcsICksICksIAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSB7InJhbmdlIjp7Im1pbiI6IjEwMCIsIm1heCI6IjEwMDAwIn0sImN1cnJlbmN5IjoiVVNEIn0sIAogICAgICAgICAgICAgICAgICAgICAgICBleHRlcm5hbF9kZXNjcmlwdG9yID0gJ0hpZ2ggdmFsdWUgdHJhbnNmZXIgcG9saWN5IGZvciBpbnN0aXR1dGlvbmFsIGNsaWVudHMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kID0gbnVsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgIGlzX2dsb2JhbF9wb2xpY3kgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyYW1fY2FsbCA9IGZpcmVibG9ja3MubW9kZWxzLnByb2dyYW1fY2FsbF9jb25maWcuUHJvZ3JhbUNhbGxDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd2VkX3NvbGFuYV9wcm9ncmFtX2NhbGxzID0gJ1dISVRFTElTVEVEJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmVlbmluZ19tZXRhZGF0YSA9IGZpcmVibG9ja3MubW9kZWxzLnNjcmVlbmluZ19tZXRhZGF0YV9jb25maWcuU2NyZWVuaW5nTWV0YWRhdGFDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAnT1VUQk9VTkQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyID0gJ0NIQUlOQUxZU0lTJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByaXNrX3JhdGluZyA9ICdNRURJVU0nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpc2tfc2NvcmUgPSAnMC44JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBvc3VyZV90eXBlID0gJ0RJUkVDVCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnQ09NUExFVEVEJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VfYWRkcmVzcyA9ICcweDEyMy4uLicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdF9hZGRyZXNzID0gJzB4NDU2Li4uJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlX2Fzc2V0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXNzZXRfY29uZmlnLkFzc2V0Q29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmZ0X3RyYW5zZmVyID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfdHlwZXMgPSBbIkZVTkdJQkxFIiwiTkZUIiwiKiJdLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmFzZV9hc3NldCA9ICwgCiAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlX2Ftb3VudCA9IHsicmFuZ2UiOnsibWluIjoiMTAwIiwibWF4IjoiMTAwMDAifX0sIAogICAgICAgICAgICAgICAgICAgICAgICBiYXNlX2Ftb3VudCA9IHsicmFuZ2UiOnsibWluIjoiMTAwIiwibWF4IjoiMTAwMDAifX0sIAogICAgICAgICAgICAgICAgICAgICAgICBkX2FwcF9hZGRyZXNzID0gZmlyZWJsb2Nrcy5tb2RlbHMuZF9hcHBfYWRkcmVzc19jb25maWcuREFwcEFkZHJlc3NDb25maWcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWxfd2hpdGVsaXN0ZWQgPSBbInJhYmJ5LmlvIiwianVwLmFnIl0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVuYW50X3doaXRlbGlzdGVkID0gWyJ1bmlzd2FwLmNvbSIsIm9wZW5zZWEuaW8iXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzID0gWyIqIl0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPSAsICksIAogICAgICAgICAgICAgICAgICAgICAgICBkZXJpdmF0aW9uX3BhdGggPSB7InBhdGgiOls0NCwwLDAsMCwwXSwicGFydGlhbCI6ZmFsc2V9LCAKICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSAxLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RVcGRhdGVEcmFmdFJlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBVcGRhdGVEcmFmdFJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_update_tag_request.py b/test/test_update_tag_request.py index 0164a321..d1a511f9 100644 --- a/test/test_update_tag_request.py +++ b/test/test_update_tag_request.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.update_tag_request import UpdateTagRequest - - -class TestUpdateTagRequest(unittest.TestCase): - """UpdateTagRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> UpdateTagRequest: - """Test UpdateTagRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `UpdateTagRequest` - """ - model = UpdateTagRequest() - if include_optional: - return UpdateTagRequest( - label = 'VIP', - description = 'Tag for VIP customers' - ) - else: - return UpdateTagRequest( - ) - """ - - def testUpdateTagRequest(self): - """Test UpdateTagRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV90YWdfcmVxdWVzdCBpbXBvcnQgVXBkYXRlVGFnUmVxdWVzdAoKCmNsYXNzIFRlc3RVcGRhdGVUYWdSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlVwZGF0ZVRhZ1JlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFVwZGF0ZVRhZ1JlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBVcGRhdGVUYWdSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFVwZGF0ZVRhZ1JlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBVcGRhdGVUYWdSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVXBkYXRlVGFnUmVxdWVzdCgKICAgICAgICAgICAgICAgIGxhYmVsID0gJ1ZJUCcsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUYWcgZm9yIFZJUCBjdXN0b21lcnMnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVXBkYXRlVGFnUmVxdWVzdCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RVcGRhdGVUYWdSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgVXBkYXRlVGFnUmVxdWVzdCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_update_token_ownership_status_dto.py b/test/test_update_token_ownership_status_dto.py index 5f0fff78..a91cce8b 100644 --- a/test/test_update_token_ownership_status_dto.py +++ b/test/test_update_token_ownership_status_dto.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.update_token_ownership_status_dto import ( - UpdateTokenOwnershipStatusDto, -) - - -class TestUpdateTokenOwnershipStatusDto(unittest.TestCase): - """UpdateTokenOwnershipStatusDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> UpdateTokenOwnershipStatusDto: - """Test UpdateTokenOwnershipStatusDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `UpdateTokenOwnershipStatusDto` - """ - model = UpdateTokenOwnershipStatusDto() - if include_optional: - return UpdateTokenOwnershipStatusDto( - status = 'LISTED' - ) - else: - return UpdateTokenOwnershipStatusDto( - status = 'LISTED', - ) - """ - - def testUpdateTokenOwnershipStatusDto(self): - """Test UpdateTokenOwnershipStatusDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV90b2tlbl9vd25lcnNoaXBfc3RhdHVzX2R0byBpbXBvcnQgKAogICAgVXBkYXRlVG9rZW5Pd25lcnNoaXBTdGF0dXNEdG8sCikKCgpjbGFzcyBUZXN0VXBkYXRlVG9rZW5Pd25lcnNoaXBTdGF0dXNEdG8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVXBkYXRlVG9rZW5Pd25lcnNoaXBTdGF0dXNEdG8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFVwZGF0ZVRva2VuT3duZXJzaGlwU3RhdHVzRHRvOgogICAgICAgICIiIlRlc3QgVXBkYXRlVG9rZW5Pd25lcnNoaXBTdGF0dXNEdG8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVXBkYXRlVG9rZW5Pd25lcnNoaXBTdGF0dXNEdG9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBVcGRhdGVUb2tlbk93bmVyc2hpcFN0YXR1c0R0bygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFVwZGF0ZVRva2VuT3duZXJzaGlwU3RhdHVzRHRvKAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ0xJU1RFRCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBVcGRhdGVUb2tlbk93bmVyc2hpcFN0YXR1c0R0bygKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdMSVNURUQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFVwZGF0ZVRva2VuT3duZXJzaGlwU3RhdHVzRHRvKHNlbGYpOgogICAgICAgICIiIlRlc3QgVXBkYXRlVG9rZW5Pd25lcnNoaXBTdGF0dXNEdG8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_update_vault_account_asset_address_request.py b/test/test_update_vault_account_asset_address_request.py index e6158e26..b190ae06 100644 --- a/test/test_update_vault_account_asset_address_request.py +++ b/test/test_update_vault_account_asset_address_request.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.update_vault_account_asset_address_request import ( - UpdateVaultAccountAssetAddressRequest, -) - - -class TestUpdateVaultAccountAssetAddressRequest(unittest.TestCase): - """UpdateVaultAccountAssetAddressRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> UpdateVaultAccountAssetAddressRequest: - """Test UpdateVaultAccountAssetAddressRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `UpdateVaultAccountAssetAddressRequest` - """ - model = UpdateVaultAccountAssetAddressRequest() - if include_optional: - return UpdateVaultAccountAssetAddressRequest( - description = '' - ) - else: - return UpdateVaultAccountAssetAddressRequest( - ) - """ - - def testUpdateVaultAccountAssetAddressRequest(self): - """Test UpdateVaultAccountAssetAddressRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3NfcmVxdWVzdCBpbXBvcnQgKAogICAgVXBkYXRlVmF1bHRBY2NvdW50QXNzZXRBZGRyZXNzUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RVcGRhdGVWYXVsdEFjY291bnRBc3NldEFkZHJlc3NSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlVwZGF0ZVZhdWx0QWNjb3VudEFzc2V0QWRkcmVzc1JlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFVwZGF0ZVZhdWx0QWNjb3VudEFzc2V0QWRkcmVzc1JlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBVcGRhdGVWYXVsdEFjY291bnRBc3NldEFkZHJlc3NSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFVwZGF0ZVZhdWx0QWNjb3VudEFzc2V0QWRkcmVzc1JlcXVlc3RgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBVcGRhdGVWYXVsdEFjY291bnRBc3NldEFkZHJlc3NSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVXBkYXRlVmF1bHRBY2NvdW50QXNzZXRBZGRyZXNzUmVxdWVzdCgKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBVcGRhdGVWYXVsdEFjY291bnRBc3NldEFkZHJlc3NSZXF1ZXN0KAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFVwZGF0ZVZhdWx0QWNjb3VudEFzc2V0QWRkcmVzc1JlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBVcGRhdGVWYXVsdEFjY291bnRBc3NldEFkZHJlc3NSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_update_vault_account_request.py b/test/test_update_vault_account_request.py index d8e17ddf..c9af65f4 100644 --- a/test/test_update_vault_account_request.py +++ b/test/test_update_vault_account_request.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.update_vault_account_request import UpdateVaultAccountRequest - - -class TestUpdateVaultAccountRequest(unittest.TestCase): - """UpdateVaultAccountRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> UpdateVaultAccountRequest: - """Test UpdateVaultAccountRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `UpdateVaultAccountRequest` - """ - model = UpdateVaultAccountRequest() - if include_optional: - return UpdateVaultAccountRequest( - name = '' - ) - else: - return UpdateVaultAccountRequest( - ) - """ - - def testUpdateVaultAccountRequest(self): - """Test UpdateVaultAccountRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV92YXVsdF9hY2NvdW50X3JlcXVlc3QgaW1wb3J0IFVwZGF0ZVZhdWx0QWNjb3VudFJlcXVlc3QKCgpjbGFzcyBUZXN0VXBkYXRlVmF1bHRBY2NvdW50UmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJVcGRhdGVWYXVsdEFjY291bnRSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBVcGRhdGVWYXVsdEFjY291bnRSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgVXBkYXRlVmF1bHRBY2NvdW50UmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBVcGRhdGVWYXVsdEFjY291bnRSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVXBkYXRlVmF1bHRBY2NvdW50UmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFVwZGF0ZVZhdWx0QWNjb3VudFJlcXVlc3QoCiAgICAgICAgICAgICAgICBuYW1lID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBVcGRhdGVWYXVsdEFjY291bnRSZXF1ZXN0KAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFVwZGF0ZVZhdWx0QWNjb3VudFJlcXVlc3Qoc2VsZik6CiAgICAgICAgIiIiVGVzdCBVcGRhdGVWYXVsdEFjY291bnRSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_update_webhook_request.py b/test/test_update_webhook_request.py index c51caf14..58c6c423 100644 --- a/test/test_update_webhook_request.py +++ b/test/test_update_webhook_request.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.update_webhook_request import UpdateWebhookRequest - - -class TestUpdateWebhookRequest(unittest.TestCase): - """UpdateWebhookRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> UpdateWebhookRequest: - """Test UpdateWebhookRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `UpdateWebhookRequest` - """ - model = UpdateWebhookRequest() - if include_optional: - return UpdateWebhookRequest( - url = 'https://example.com/webhook', - description = 'This webhook is used for transactions notifications', - events = ["transaction.created","transaction.status.updated"], - enabled = False - ) - else: - return UpdateWebhookRequest( - ) - """ - - def testUpdateWebhookRequest(self): - """Test UpdateWebhookRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVwZGF0ZV93ZWJob29rX3JlcXVlc3QgaW1wb3J0IFVwZGF0ZVdlYmhvb2tSZXF1ZXN0CgoKY2xhc3MgVGVzdFVwZGF0ZVdlYmhvb2tSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlVwZGF0ZVdlYmhvb2tSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBVcGRhdGVXZWJob29rUmVxdWVzdDoKICAgICAgICAiIiJUZXN0IFVwZGF0ZVdlYmhvb2tSZXF1ZXN0CiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFVwZGF0ZVdlYmhvb2tSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVXBkYXRlV2ViaG9va1JlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBVcGRhdGVXZWJob29rUmVxdWVzdCgKICAgICAgICAgICAgICAgIHVybCA9ICdodHRwczovL2V4YW1wbGUuY29tL3dlYmhvb2snLAogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhpcyB3ZWJob29rIGlzIHVzZWQgZm9yIHRyYW5zYWN0aW9ucyBub3RpZmljYXRpb25zJywKICAgICAgICAgICAgICAgIGV2ZW50cyA9IFsidHJhbnNhY3Rpb24uY3JlYXRlZCIsInRyYW5zYWN0aW9uLnN0YXR1cy51cGRhdGVkIl0sCiAgICAgICAgICAgICAgICBlbmFibGVkID0gRmFsc2UKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBVcGRhdGVXZWJob29rUmVxdWVzdCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RVcGRhdGVXZWJob29rUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFVwZGF0ZVdlYmhvb2tSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_us_wire_address.py b/test/test_us_wire_address.py index 38dcb311..3ccf5aa6 100644 --- a/test/test_us_wire_address.py +++ b/test/test_us_wire_address.py @@ -1,68 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.us_wire_address import USWireAddress - - -class TestUSWireAddress(unittest.TestCase): - """USWireAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> USWireAddress: - """Test USWireAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `USWireAddress` - """ - model = USWireAddress() - if include_optional: - return USWireAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - bank_name = '', - bank_account_number = '', - routing_number = '', - bank_address = fireblocks.models.bank_address.BankAddress( - street_name = '', - building_number = '', - postal_code = '', - city = '', - subdivision = '', - district = '', - country = '', ) - ) - else: - return USWireAddress( - account_holder = {"name":"John Smith","city":"New York","country":"US","subdivision":"NY","address":"123 Wall Street, Apt 4B","postalCode":"10005"}, - bank_account_number = '', - routing_number = '', - ) - """ - - def testUSWireAddress(self): - """Test USWireAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzX3dpcmVfYWRkcmVzcyBpbXBvcnQgVVNXaXJlQWRkcmVzcwoKCmNsYXNzIFRlc3RVU1dpcmVBZGRyZXNzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlVTV2lyZUFkZHJlc3MgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFVTV2lyZUFkZHJlc3M6CiAgICAgICAgIiIiVGVzdCBVU1dpcmVBZGRyZXNzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFVTV2lyZUFkZHJlc3NgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBVU1dpcmVBZGRyZXNzKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVVNXaXJlQWRkcmVzcygKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyID0geyJuYW1lIjoiSm9obiBTbWl0aCIsImNpdHkiOiJOZXcgWW9yayIsImNvdW50cnkiOiJVUyIsInN1YmRpdmlzaW9uIjoiTlkiLCJhZGRyZXNzIjoiMTIzIFdhbGwgU3RyZWV0LCBBcHQgNEIiLCJwb3N0YWxDb2RlIjoiMTAwMDUifSwKICAgICAgICAgICAgICAgIGJhbmtfbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgYmFua19hY2NvdW50X251bWJlciA9ICcnLAogICAgICAgICAgICAgICAgcm91dGluZ19udW1iZXIgPSAnJywKICAgICAgICAgICAgICAgIGJhbmtfYWRkcmVzcyA9IGZpcmVibG9ja3MubW9kZWxzLmJhbmtfYWRkcmVzcy5CYW5rQWRkcmVzcygKICAgICAgICAgICAgICAgICAgICBzdHJlZXRfbmFtZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBidWlsZGluZ19udW1iZXIgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgcG9zdGFsX2NvZGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgY2l0eSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBzdWJkaXZpc2lvbiA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBkaXN0cmljdCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBjb3VudHJ5ID0gJycsICkKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBVU1dpcmVBZGRyZXNzKAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXIgPSB7Im5hbWUiOiJKb2huIFNtaXRoIiwiY2l0eSI6Ik5ldyBZb3JrIiwiY291bnRyeSI6IlVTIiwic3ViZGl2aXNpb24iOiJOWSIsImFkZHJlc3MiOiIxMjMgV2FsbCBTdHJlZXQsIEFwdCA0QiIsInBvc3RhbENvZGUiOiIxMDAwNSJ9LAogICAgICAgICAgICAgICAgYmFua19hY2NvdW50X251bWJlciA9ICcnLAogICAgICAgICAgICAgICAgcm91dGluZ19udW1iZXIgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RVU1dpcmVBZGRyZXNzKHNlbGYpOgogICAgICAgICIiIlRlc3QgVVNXaXJlQWRkcmVzcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_us_wire_destination.py b/test/test_us_wire_destination.py index 9b45c7d5..113f344b 100644 --- a/test/test_us_wire_destination.py +++ b/test/test_us_wire_destination.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.us_wire_destination import USWireDestination - - -class TestUSWireDestination(unittest.TestCase): - """USWireDestination unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> USWireDestination: - """Test USWireDestination - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `USWireDestination` - """ - model = USWireDestination() - if include_optional: - return USWireDestination( - type = 'WIRE', - address = {"accountHolder":{"name":"Michael Thompson","city":"Chicago","country":"US","subdivision":"IL","address":"200 West Jackson Blvd, Suite 1500","postalCode":"60606"},"bankName":"JPMorgan Chase Bank","bankAccountNumber":"987654321012345","routingNumber":"021000021","bankAddress":"270 Park Avenue, New York, NY 10017"} - ) - else: - return USWireDestination( - type = 'WIRE', - address = {"accountHolder":{"name":"Michael Thompson","city":"Chicago","country":"US","subdivision":"IL","address":"200 West Jackson Blvd, Suite 1500","postalCode":"60606"},"bankName":"JPMorgan Chase Bank","bankAccountNumber":"987654321012345","routingNumber":"021000021","bankAddress":"270 Park Avenue, New York, NY 10017"}, - ) - """ - - def testUSWireDestination(self): - """Test USWireDestination""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzX3dpcmVfZGVzdGluYXRpb24gaW1wb3J0IFVTV2lyZURlc3RpbmF0aW9uCgoKY2xhc3MgVGVzdFVTV2lyZURlc3RpbmF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlVTV2lyZURlc3RpbmF0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBVU1dpcmVEZXN0aW5hdGlvbjoKICAgICAgICAiIiJUZXN0IFVTV2lyZURlc3RpbmF0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFVTV2lyZURlc3RpbmF0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVVNXaXJlRGVzdGluYXRpb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBVU1dpcmVEZXN0aW5hdGlvbigKICAgICAgICAgICAgICAgIHR5cGUgPSAnV0lSRScsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0geyJhY2NvdW50SG9sZGVyIjp7Im5hbWUiOiJNaWNoYWVsIFRob21wc29uIiwiY2l0eSI6IkNoaWNhZ28iLCJjb3VudHJ5IjoiVVMiLCJzdWJkaXZpc2lvbiI6IklMIiwiYWRkcmVzcyI6IjIwMCBXZXN0IEphY2tzb24gQmx2ZCwgU3VpdGUgMTUwMCIsInBvc3RhbENvZGUiOiI2MDYwNiJ9LCJiYW5rTmFtZSI6IkpQTW9yZ2FuIENoYXNlIEJhbmsiLCJiYW5rQWNjb3VudE51bWJlciI6Ijk4NzY1NDMyMTAxMjM0NSIsInJvdXRpbmdOdW1iZXIiOiIwMjEwMDAwMjEiLCJiYW5rQWRkcmVzcyI6IjI3MCBQYXJrIEF2ZW51ZSwgTmV3IFlvcmssIE5ZIDEwMDE3In0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBVU1dpcmVEZXN0aW5hdGlvbigKICAgICAgICAgICAgICAgIHR5cGUgPSAnV0lSRScsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0geyJhY2NvdW50SG9sZGVyIjp7Im5hbWUiOiJNaWNoYWVsIFRob21wc29uIiwiY2l0eSI6IkNoaWNhZ28iLCJjb3VudHJ5IjoiVVMiLCJzdWJkaXZpc2lvbiI6IklMIiwiYWRkcmVzcyI6IjIwMCBXZXN0IEphY2tzb24gQmx2ZCwgU3VpdGUgMTUwMCIsInBvc3RhbENvZGUiOiI2MDYwNiJ9LCJiYW5rTmFtZSI6IkpQTW9yZ2FuIENoYXNlIEJhbmsiLCJiYW5rQWNjb3VudE51bWJlciI6Ijk4NzY1NDMyMTAxMjM0NSIsInJvdXRpbmdOdW1iZXIiOiIwMjEwMDAwMjEiLCJiYW5rQWRkcmVzcyI6IjI3MCBQYXJrIEF2ZW51ZSwgTmV3IFlvcmssIE5ZIDEwMDE3In0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VVNXaXJlRGVzdGluYXRpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBVU1dpcmVEZXN0aW5hdGlvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_us_wire_payment_info.py b/test/test_us_wire_payment_info.py index 6c86acc3..b182c3f4 100644 --- a/test/test_us_wire_payment_info.py +++ b/test/test_us_wire_payment_info.py @@ -1,81 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.us_wire_payment_info import UsWirePaymentInfo - - -class TestUsWirePaymentInfo(unittest.TestCase): - """UsWirePaymentInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> UsWirePaymentInfo: - """Test UsWirePaymentInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `UsWirePaymentInfo` - """ - model = UsWirePaymentInfo() - if include_optional: - return UsWirePaymentInfo( - rail = 'US_WIRE', - addressing_system = 'ABA', - account_holder_given_name = 'John', - account_holder_surname = 'Smith', - country = 'US', - account_number = '1234567890', - routing_number = '021000021', - swift_code = 'CHASUS33', - bank_name = 'JPMorgan Chase Bank', - bank_address_line = '270 Park Avenue', - bank_address_city = 'New York', - bank_address_state = 'NY', - bank_address_country = 'US', - bank_address_postal_code = '10017', - branch_number = '001' - ) - else: - return UsWirePaymentInfo( - rail = 'US_WIRE', - addressing_system = 'ABA', - account_holder_given_name = 'John', - account_holder_surname = 'Smith', - country = 'US', - account_number = '1234567890', - routing_number = '021000021', - swift_code = 'CHASUS33', - bank_name = 'JPMorgan Chase Bank', - bank_address_line = '270 Park Avenue', - bank_address_city = 'New York', - bank_address_country = 'US', - bank_address_postal_code = '10017', - ) - """ - - def testUsWirePaymentInfo(self): - """Test UsWirePaymentInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzX3dpcmVfcGF5bWVudF9pbmZvIGltcG9ydCBVc1dpcmVQYXltZW50SW5mbwoKCmNsYXNzIFRlc3RVc1dpcmVQYXltZW50SW5mbyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJVc1dpcmVQYXltZW50SW5mbyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVXNXaXJlUGF5bWVudEluZm86CiAgICAgICAgIiIiVGVzdCBVc1dpcmVQYXltZW50SW5mbwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBVc1dpcmVQYXltZW50SW5mb2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFVzV2lyZVBheW1lbnRJbmZvKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVXNXaXJlUGF5bWVudEluZm8oCiAgICAgICAgICAgICAgICByYWlsID0gJ1VTX1dJUkUnLAogICAgICAgICAgICAgICAgYWRkcmVzc2luZ19zeXN0ZW0gPSAnQUJBJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2dpdmVuX25hbWUgPSAnSm9obicsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9zdXJuYW1lID0gJ1NtaXRoJywKICAgICAgICAgICAgICAgIGNvdW50cnkgPSAnVVMnLAogICAgICAgICAgICAgICAgYWNjb3VudF9udW1iZXIgPSAnMTIzNDU2Nzg5MCcsCiAgICAgICAgICAgICAgICByb3V0aW5nX251bWJlciA9ICcwMjEwMDAwMjEnLAogICAgICAgICAgICAgICAgc3dpZnRfY29kZSA9ICdDSEFTVVMzMycsCiAgICAgICAgICAgICAgICBiYW5rX25hbWUgPSAnSlBNb3JnYW4gQ2hhc2UgQmFuaycsCiAgICAgICAgICAgICAgICBiYW5rX2FkZHJlc3NfbGluZSA9ICcyNzAgUGFyayBBdmVudWUnLAogICAgICAgICAgICAgICAgYmFua19hZGRyZXNzX2NpdHkgPSAnTmV3IFlvcmsnLAogICAgICAgICAgICAgICAgYmFua19hZGRyZXNzX3N0YXRlID0gJ05ZJywKICAgICAgICAgICAgICAgIGJhbmtfYWRkcmVzc19jb3VudHJ5ID0gJ1VTJywKICAgICAgICAgICAgICAgIGJhbmtfYWRkcmVzc19wb3N0YWxfY29kZSA9ICcxMDAxNycsCiAgICAgICAgICAgICAgICBicmFuY2hfbnVtYmVyID0gJzAwMScKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBVc1dpcmVQYXltZW50SW5mbygKICAgICAgICAgICAgICAgIHJhaWwgPSAnVVNfV0lSRScsCiAgICAgICAgICAgICAgICBhZGRyZXNzaW5nX3N5c3RlbSA9ICdBQkEnLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfZ2l2ZW5fbmFtZSA9ICdKb2huJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX3N1cm5hbWUgPSAnU21pdGgnLAogICAgICAgICAgICAgICAgY291bnRyeSA9ICdVUycsCiAgICAgICAgICAgICAgICBhY2NvdW50X251bWJlciA9ICcxMjM0NTY3ODkwJywKICAgICAgICAgICAgICAgIHJvdXRpbmdfbnVtYmVyID0gJzAyMTAwMDAyMScsCiAgICAgICAgICAgICAgICBzd2lmdF9jb2RlID0gJ0NIQVNVUzMzJywKICAgICAgICAgICAgICAgIGJhbmtfbmFtZSA9ICdKUE1vcmdhbiBDaGFzZSBCYW5rJywKICAgICAgICAgICAgICAgIGJhbmtfYWRkcmVzc19saW5lID0gJzI3MCBQYXJrIEF2ZW51ZScsCiAgICAgICAgICAgICAgICBiYW5rX2FkZHJlc3NfY2l0eSA9ICdOZXcgWW9yaycsCiAgICAgICAgICAgICAgICBiYW5rX2FkZHJlc3NfY291bnRyeSA9ICdVUycsCiAgICAgICAgICAgICAgICBiYW5rX2FkZHJlc3NfcG9zdGFsX2NvZGUgPSAnMTAwMTcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFVzV2lyZVBheW1lbnRJbmZvKHNlbGYpOgogICAgICAgICIiIlRlc3QgVXNXaXJlUGF5bWVudEluZm8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_user_group_create_request.py b/test/test_user_group_create_request.py index 6969ba2e..7f4b1f6b 100644 --- a/test/test_user_group_create_request.py +++ b/test/test_user_group_create_request.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.user_group_create_request import UserGroupCreateRequest - - -class TestUserGroupCreateRequest(unittest.TestCase): - """UserGroupCreateRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> UserGroupCreateRequest: - """Test UserGroupCreateRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `UserGroupCreateRequest` - """ - model = UserGroupCreateRequest() - if include_optional: - return UserGroupCreateRequest( - group_name = '', - member_ids = [ - '' - ] - ) - else: - return UserGroupCreateRequest( - ) - """ - - def testUserGroupCreateRequest(self): - """Test UserGroupCreateRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfZ3JvdXBfY3JlYXRlX3JlcXVlc3QgaW1wb3J0IFVzZXJHcm91cENyZWF0ZVJlcXVlc3QKCgpjbGFzcyBUZXN0VXNlckdyb3VwQ3JlYXRlUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJVc2VyR3JvdXBDcmVhdGVSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBVc2VyR3JvdXBDcmVhdGVSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgVXNlckdyb3VwQ3JlYXRlUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBVc2VyR3JvdXBDcmVhdGVSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVXNlckdyb3VwQ3JlYXRlUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFVzZXJHcm91cENyZWF0ZVJlcXVlc3QoCiAgICAgICAgICAgICAgICBncm91cF9uYW1lID0gJycsCiAgICAgICAgICAgICAgICBtZW1iZXJfaWRzID0gWwogICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFVzZXJHcm91cENyZWF0ZVJlcXVlc3QoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VXNlckdyb3VwQ3JlYXRlUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFVzZXJHcm91cENyZWF0ZVJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_user_group_create_response.py b/test/test_user_group_create_response.py index 3d1c48a6..3cc2465c 100644 --- a/test/test_user_group_create_response.py +++ b/test/test_user_group_create_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.user_group_create_response import UserGroupCreateResponse - - -class TestUserGroupCreateResponse(unittest.TestCase): - """UserGroupCreateResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> UserGroupCreateResponse: - """Test UserGroupCreateResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `UserGroupCreateResponse` - """ - model = UserGroupCreateResponse() - if include_optional: - return UserGroupCreateResponse( - name = '', - id = '', - member_ids = [ - '' - ], - status = '' - ) - else: - return UserGroupCreateResponse( - ) - """ - - def testUserGroupCreateResponse(self): - """Test UserGroupCreateResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfZ3JvdXBfY3JlYXRlX3Jlc3BvbnNlIGltcG9ydCBVc2VyR3JvdXBDcmVhdGVSZXNwb25zZQoKCmNsYXNzIFRlc3RVc2VyR3JvdXBDcmVhdGVSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJVc2VyR3JvdXBDcmVhdGVSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVXNlckdyb3VwQ3JlYXRlUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBVc2VyR3JvdXBDcmVhdGVSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBVc2VyR3JvdXBDcmVhdGVSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFVzZXJHcm91cENyZWF0ZVJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVXNlckdyb3VwQ3JlYXRlUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBuYW1lID0gJycsCiAgICAgICAgICAgICAgICBpZCA9ICcnLAogICAgICAgICAgICAgICAgbWVtYmVyX2lkcyA9IFsKICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFVzZXJHcm91cENyZWF0ZVJlc3BvbnNlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFVzZXJHcm91cENyZWF0ZVJlc3BvbnNlKHNlbGYpOgogICAgICAgICIiIlRlc3QgVXNlckdyb3VwQ3JlYXRlUmVzcG9uc2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_user_group_response.py b/test/test_user_group_response.py index 0013d1fc..4427e52c 100644 --- a/test/test_user_group_response.py +++ b/test/test_user_group_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.user_group_response import UserGroupResponse - - -class TestUserGroupResponse(unittest.TestCase): - """UserGroupResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> UserGroupResponse: - """Test UserGroupResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `UserGroupResponse` - """ - model = UserGroupResponse() - if include_optional: - return UserGroupResponse( - id = '', - name = '', - status = '', - member_ids = [ - '' - ] - ) - else: - return UserGroupResponse( - ) - """ - - def testUserGroupResponse(self): - """Test UserGroupResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfZ3JvdXBfcmVzcG9uc2UgaW1wb3J0IFVzZXJHcm91cFJlc3BvbnNlCgoKY2xhc3MgVGVzdFVzZXJHcm91cFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlVzZXJHcm91cFJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBVc2VyR3JvdXBSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFVzZXJHcm91cFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFVzZXJHcm91cFJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVXNlckdyb3VwUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBVc2VyR3JvdXBSZXNwb25zZSgKICAgICAgICAgICAgICAgIGlkID0gJycsCiAgICAgICAgICAgICAgICBuYW1lID0gJycsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnJywKICAgICAgICAgICAgICAgIG1lbWJlcl9pZHMgPSBbCiAgICAgICAgICAgICAgICAgICAgJycKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVXNlckdyb3VwUmVzcG9uc2UoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VXNlckdyb3VwUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBVc2VyR3JvdXBSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_user_group_update_request.py b/test/test_user_group_update_request.py index 979f299a..5046d728 100644 --- a/test/test_user_group_update_request.py +++ b/test/test_user_group_update_request.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.user_group_update_request import UserGroupUpdateRequest - - -class TestUserGroupUpdateRequest(unittest.TestCase): - """UserGroupUpdateRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> UserGroupUpdateRequest: - """Test UserGroupUpdateRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `UserGroupUpdateRequest` - """ - model = UserGroupUpdateRequest() - if include_optional: - return UserGroupUpdateRequest( - group_name = '', - member_ids = [ - '' - ] - ) - else: - return UserGroupUpdateRequest( - ) - """ - - def testUserGroupUpdateRequest(self): - """Test UserGroupUpdateRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfZ3JvdXBfdXBkYXRlX3JlcXVlc3QgaW1wb3J0IFVzZXJHcm91cFVwZGF0ZVJlcXVlc3QKCgpjbGFzcyBUZXN0VXNlckdyb3VwVXBkYXRlUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJVc2VyR3JvdXBVcGRhdGVSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBVc2VyR3JvdXBVcGRhdGVSZXF1ZXN0OgogICAgICAgICIiIlRlc3QgVXNlckdyb3VwVXBkYXRlUmVxdWVzdAogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBVc2VyR3JvdXBVcGRhdGVSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVXNlckdyb3VwVXBkYXRlUmVxdWVzdCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFVzZXJHcm91cFVwZGF0ZVJlcXVlc3QoCiAgICAgICAgICAgICAgICBncm91cF9uYW1lID0gJycsCiAgICAgICAgICAgICAgICBtZW1iZXJfaWRzID0gWwogICAgICAgICAgICAgICAgICAgICcnCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFVzZXJHcm91cFVwZGF0ZVJlcXVlc3QoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VXNlckdyb3VwVXBkYXRlUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFVzZXJHcm91cFVwZGF0ZVJlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_user_groups_beta_api.py b/test/test_user_groups_beta_api.py index 56c40b99..1636365e 100644 --- a/test/test_user_groups_beta_api.py +++ b/test/test_user_groups_beta_api.py @@ -1,67 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.user_groups_beta_api import UserGroupsBetaApi - - -class TestUserGroupsBetaApi(unittest.TestCase): - """UserGroupsBetaApi unit test stubs""" - - def setUp(self) -> None: - self.api = UserGroupsBetaApi() - - def tearDown(self) -> None: - pass - - def test_create_user_group(self) -> None: - """Test case for create_user_group - - Create user group - """ - pass - - def test_delete_user_group(self) -> None: - """Test case for delete_user_group - - Delete user group - """ - pass - - def test_get_user_group(self) -> None: - """Test case for get_user_group - - Get user group - """ - pass - - def test_get_user_groups(self) -> None: - """Test case for get_user_groups - - List user groups - """ - pass - - def test_update_user_group(self) -> None: - """Test case for update_user_group - - Update user group - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLnVzZXJfZ3JvdXBzX2JldGFfYXBpIGltcG9ydCBVc2VyR3JvdXBzQmV0YUFwaQoKCmNsYXNzIFRlc3RVc2VyR3JvdXBzQmV0YUFwaSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJVc2VyR3JvdXBzQmV0YUFwaSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZikgLT4gTm9uZToKICAgICAgICBzZWxmLmFwaSA9IFVzZXJHcm91cHNCZXRhQXBpKCkKCiAgICBkZWYgdGVhckRvd24oc2VsZikgLT4gTm9uZToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY3JlYXRlX3VzZXJfZ3JvdXAoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGNyZWF0ZV91c2VyX2dyb3VwCgogICAgICAgIENyZWF0ZSB1c2VyIGdyb3VwCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2RlbGV0ZV91c2VyX2dyb3VwKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBkZWxldGVfdXNlcl9ncm91cAoKICAgICAgICBEZWxldGUgdXNlciBncm91cAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfdXNlcl9ncm91cChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X3VzZXJfZ3JvdXAKCiAgICAgICAgR2V0IHVzZXIgZ3JvdXAKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3VzZXJfZ3JvdXBzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfdXNlcl9ncm91cHMKCiAgICAgICAgTGlzdCB1c2VyIGdyb3VwcwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF91cGRhdGVfdXNlcl9ncm91cChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgdXBkYXRlX3VzZXJfZ3JvdXAKCiAgICAgICAgVXBkYXRlIHVzZXIgZ3JvdXAKICAgICAgICAiIiIKICAgICAgICBwYXNzCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_user_response.py b/test/test_user_response.py index 3cab12f3..0abad357 100644 --- a/test/test_user_response.py +++ b/test/test_user_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.user_response import UserResponse - - -class TestUserResponse(unittest.TestCase): - """UserResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> UserResponse: - """Test UserResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `UserResponse` - """ - model = UserResponse() - if include_optional: - return UserResponse( - id = '', - first_name = '', - last_name = '', - role = '', - email = '', - enabled = True - ) - else: - return UserResponse( - ) - """ - - def testUserResponse(self): - """Test UserResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfcmVzcG9uc2UgaW1wb3J0IFVzZXJSZXNwb25zZQoKCmNsYXNzIFRlc3RVc2VyUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVXNlclJlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBVc2VyUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBVc2VyUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVXNlclJlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVXNlclJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVXNlclJlc3BvbnNlKAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIGZpcnN0X25hbWUgPSAnJywKICAgICAgICAgICAgICAgIGxhc3RfbmFtZSA9ICcnLAogICAgICAgICAgICAgICAgcm9sZSA9ICcnLAogICAgICAgICAgICAgICAgZW1haWwgPSAnJywKICAgICAgICAgICAgICAgIGVuYWJsZWQgPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVXNlclJlc3BvbnNlKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFVzZXJSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFVzZXJSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_user_role.py b/test/test_user_role.py index 6f316d8e..2540ee69 100644 --- a/test/test_user_role.py +++ b/test/test_user_role.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.user_role import UserRole - - -class TestUserRole(unittest.TestCase): - """UserRole unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testUserRole(self): - """Test UserRole""" - # inst = UserRole() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfcm9sZSBpbXBvcnQgVXNlclJvbGUKCgpjbGFzcyBUZXN0VXNlclJvbGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVXNlclJvbGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0VXNlclJvbGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBVc2VyUm9sZSIiIgogICAgICAgICMgaW5zdCA9IFVzZXJSb2xlKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_user_status.py b/test/test_user_status.py index 544c863e..23784d8b 100644 --- a/test/test_user_status.py +++ b/test/test_user_status.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.user_status import UserStatus - - -class TestUserStatus(unittest.TestCase): - """UserStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testUserStatus(self): - """Test UserStatus""" - # inst = UserStatus() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfc3RhdHVzIGltcG9ydCBVc2VyU3RhdHVzCgoKY2xhc3MgVGVzdFVzZXJTdGF0dXModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVXNlclN0YXR1cyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RVc2VyU3RhdHVzKHNlbGYpOgogICAgICAgICIiIlRlc3QgVXNlclN0YXR1cyIiIgogICAgICAgICMgaW5zdCA9IFVzZXJTdGF0dXMoKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_user_type.py b/test/test_user_type.py index 38013cd0..a4969455 100644 --- a/test/test_user_type.py +++ b/test/test_user_type.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.user_type import UserType - - -class TestUserType(unittest.TestCase): - """UserType unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testUserType(self): - """Test UserType""" - # inst = UserType() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnVzZXJfdHlwZSBpbXBvcnQgVXNlclR5cGUKCgpjbGFzcyBUZXN0VXNlclR5cGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVXNlclR5cGUgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0VXNlclR5cGUoc2VsZik6CiAgICAgICAgIiIiVGVzdCBVc2VyVHlwZSIiIgogICAgICAgICMgaW5zdCA9IFVzZXJUeXBlKCkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_users_api.py b/test/test_users_api.py index ca44f278..6f273fea 100644 --- a/test/test_users_api.py +++ b/test/test_users_api.py @@ -1,39 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.users_api import UsersApi - - -class TestUsersApi(unittest.TestCase): - """UsersApi unit test stubs""" - - def setUp(self) -> None: - self.api = UsersApi() - - def tearDown(self) -> None: - pass - - def test_get_users(self) -> None: - """Test case for get_users - - List users - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLnVzZXJzX2FwaSBpbXBvcnQgVXNlcnNBcGkKCgpjbGFzcyBUZXN0VXNlcnNBcGkodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVXNlcnNBcGkgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgc2VsZi5hcGkgPSBVc2Vyc0FwaSgpCgogICAgZGVmIHRlYXJEb3duKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF91c2VycyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X3VzZXJzCgogICAgICAgIExpc3QgdXNlcnMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_validate_address_response.py b/test/test_validate_address_response.py index 6f27b964..308ad1a7 100644 --- a/test/test_validate_address_response.py +++ b/test/test_validate_address_response.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.validate_address_response import ValidateAddressResponse - - -class TestValidateAddressResponse(unittest.TestCase): - """ValidateAddressResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ValidateAddressResponse: - """Test ValidateAddressResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ValidateAddressResponse` - """ - model = ValidateAddressResponse() - if include_optional: - return ValidateAddressResponse( - is_valid = True, - is_active = True, - requires_tag = True - ) - else: - return ValidateAddressResponse( - ) - """ - - def testValidateAddressResponse(self): - """Test ValidateAddressResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhbGlkYXRlX2FkZHJlc3NfcmVzcG9uc2UgaW1wb3J0IFZhbGlkYXRlQWRkcmVzc1Jlc3BvbnNlCgoKY2xhc3MgVGVzdFZhbGlkYXRlQWRkcmVzc1Jlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlZhbGlkYXRlQWRkcmVzc1Jlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBWYWxpZGF0ZUFkZHJlc3NSZXNwb25zZToKICAgICAgICAiIiJUZXN0IFZhbGlkYXRlQWRkcmVzc1Jlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFZhbGlkYXRlQWRkcmVzc1Jlc3BvbnNlYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVmFsaWRhdGVBZGRyZXNzUmVzcG9uc2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBWYWxpZGF0ZUFkZHJlc3NSZXNwb25zZSgKICAgICAgICAgICAgICAgIGlzX3ZhbGlkID0gVHJ1ZSwKICAgICAgICAgICAgICAgIGlzX2FjdGl2ZSA9IFRydWUsCiAgICAgICAgICAgICAgICByZXF1aXJlc190YWcgPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVmFsaWRhdGVBZGRyZXNzUmVzcG9uc2UoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VmFsaWRhdGVBZGRyZXNzUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBWYWxpZGF0ZUFkZHJlc3NSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_validate_layer_zero_channel_response.py b/test/test_validate_layer_zero_channel_response.py index 14fe281d..419270ee 100644 --- a/test/test_validate_layer_zero_channel_response.py +++ b/test/test_validate_layer_zero_channel_response.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.validate_layer_zero_channel_response import ( - ValidateLayerZeroChannelResponse, -) - - -class TestValidateLayerZeroChannelResponse(unittest.TestCase): - """ValidateLayerZeroChannelResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ValidateLayerZeroChannelResponse: - """Test ValidateLayerZeroChannelResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ValidateLayerZeroChannelResponse` - """ - model = ValidateLayerZeroChannelResponse() - if include_optional: - return ValidateLayerZeroChannelResponse( - correct = True, - errors = ["Adapter not found","Adapter missing role","Adapter is not a peer"] - ) - else: - return ValidateLayerZeroChannelResponse( - correct = True, - errors = ["Adapter not found","Adapter missing role","Adapter is not a peer"], - ) - """ - - def testValidateLayerZeroChannelResponse(self): - """Test ValidateLayerZeroChannelResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhbGlkYXRlX2xheWVyX3plcm9fY2hhbm5lbF9yZXNwb25zZSBpbXBvcnQgKAogICAgVmFsaWRhdGVMYXllclplcm9DaGFubmVsUmVzcG9uc2UsCikKCgpjbGFzcyBUZXN0VmFsaWRhdGVMYXllclplcm9DaGFubmVsUmVzcG9uc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVmFsaWRhdGVMYXllclplcm9DaGFubmVsUmVzcG9uc2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFZhbGlkYXRlTGF5ZXJaZXJvQ2hhbm5lbFJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgVmFsaWRhdGVMYXllclplcm9DaGFubmVsUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVmFsaWRhdGVMYXllclplcm9DaGFubmVsUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBWYWxpZGF0ZUxheWVyWmVyb0NoYW5uZWxSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFZhbGlkYXRlTGF5ZXJaZXJvQ2hhbm5lbFJlc3BvbnNlKAogICAgICAgICAgICAgICAgY29ycmVjdCA9IFRydWUsCiAgICAgICAgICAgICAgICBlcnJvcnMgPSBbIkFkYXB0ZXIgbm90IGZvdW5kIiwiQWRhcHRlciBtaXNzaW5nIHJvbGUiLCJBZGFwdGVyIGlzIG5vdCBhIHBlZXIiXQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFZhbGlkYXRlTGF5ZXJaZXJvQ2hhbm5lbFJlc3BvbnNlKAogICAgICAgICAgICAgICAgY29ycmVjdCA9IFRydWUsCiAgICAgICAgICAgICAgICBlcnJvcnMgPSBbIkFkYXB0ZXIgbm90IGZvdW5kIiwiQWRhcHRlciBtaXNzaW5nIHJvbGUiLCJBZGFwdGVyIGlzIG5vdCBhIHBlZXIiXSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RWYWxpZGF0ZUxheWVyWmVyb0NoYW5uZWxSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFZhbGlkYXRlTGF5ZXJaZXJvQ2hhbm5lbFJlc3BvbnNlIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_validation_key_dto.py b/test/test_validation_key_dto.py index b7e4587a..0a419f04 100644 --- a/test/test_validation_key_dto.py +++ b/test/test_validation_key_dto.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.validation_key_dto import ValidationKeyDto - - -class TestValidationKeyDto(unittest.TestCase): - """ValidationKeyDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ValidationKeyDto: - """Test ValidationKeyDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `ValidationKeyDto` - """ - model = ValidationKeyDto() - if include_optional: - return ValidationKeyDto( - key_id = '46a92767-5f93-4a46-9eed-f012196bb4fc', - public_key_pem = '-----BEGIN PUBLIC KEY ... END PUBLIC KEY-----', - days_till_expired = 365, - enabled = False, - created_at = 12345633 - ) - else: - return ValidationKeyDto( - key_id = '46a92767-5f93-4a46-9eed-f012196bb4fc', - public_key_pem = '-----BEGIN PUBLIC KEY ... END PUBLIC KEY-----', - days_till_expired = 365, - enabled = False, - created_at = 12345633, - ) - """ - - def testValidationKeyDto(self): - """Test ValidationKeyDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhbGlkYXRpb25fa2V5X2R0byBpbXBvcnQgVmFsaWRhdGlvbktleUR0bwoKCmNsYXNzIFRlc3RWYWxpZGF0aW9uS2V5RHRvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlZhbGlkYXRpb25LZXlEdG8gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFZhbGlkYXRpb25LZXlEdG86CiAgICAgICAgIiIiVGVzdCBWYWxpZGF0aW9uS2V5RHRvCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFZhbGlkYXRpb25LZXlEdG9gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBWYWxpZGF0aW9uS2V5RHRvKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVmFsaWRhdGlvbktleUR0bygKICAgICAgICAgICAgICAgIGtleV9pZCA9ICc0NmE5Mjc2Ny01ZjkzLTRhNDYtOWVlZC1mMDEyMTk2YmI0ZmMnLAogICAgICAgICAgICAgICAgcHVibGljX2tleV9wZW0gPSAnLS0tLS1CRUdJTiBQVUJMSUMgS0VZIC4uLiAgRU5EIFBVQkxJQyBLRVktLS0tLScsCiAgICAgICAgICAgICAgICBkYXlzX3RpbGxfZXhwaXJlZCA9IDM2NSwKICAgICAgICAgICAgICAgIGVuYWJsZWQgPSBGYWxzZSwKICAgICAgICAgICAgICAgIGNyZWF0ZWRfYXQgPSAxMjM0NTYzMwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFZhbGlkYXRpb25LZXlEdG8oCiAgICAgICAgICAgICAgICBrZXlfaWQgPSAnNDZhOTI3NjctNWY5My00YTQ2LTllZWQtZjAxMjE5NmJiNGZjJywKICAgICAgICAgICAgICAgIHB1YmxpY19rZXlfcGVtID0gJy0tLS0tQkVHSU4gUFVCTElDIEtFWSAuLi4gIEVORCBQVUJMSUMgS0VZLS0tLS0nLAogICAgICAgICAgICAgICAgZGF5c190aWxsX2V4cGlyZWQgPSAzNjUsCiAgICAgICAgICAgICAgICBlbmFibGVkID0gRmFsc2UsCiAgICAgICAgICAgICAgICBjcmVhdGVkX2F0ID0gMTIzNDU2MzMsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VmFsaWRhdGlvbktleUR0byhzZWxmKToKICAgICAgICAiIiJUZXN0IFZhbGlkYXRpb25LZXlEdG8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_validator.py b/test/test_validator.py index cd279ade..24d6fa81 100644 --- a/test/test_validator.py +++ b/test/test_validator.py @@ -1,58 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.validator import Validator - - -class TestValidator(unittest.TestCase): - """Validator unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Validator: - """Test Validator - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Validator` - """ - model = Validator() - if include_optional: - return Validator( - chain_descriptor = 'SOL', - fee_percent = 5, - is_private = True - ) - else: - return Validator( - chain_descriptor = 'SOL', - fee_percent = 5, - ) - """ - - def testValidator(self): - """Test Validator""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhbGlkYXRvciBpbXBvcnQgVmFsaWRhdG9yCgoKY2xhc3MgVGVzdFZhbGlkYXRvcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJWYWxpZGF0b3IgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFZhbGlkYXRvcjoKICAgICAgICAiIiJUZXN0IFZhbGlkYXRvcgogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBWYWxpZGF0b3JgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBWYWxpZGF0b3IoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBWYWxpZGF0b3IoCiAgICAgICAgICAgICAgICBjaGFpbl9kZXNjcmlwdG9yID0gJ1NPTCcsCiAgICAgICAgICAgICAgICBmZWVfcGVyY2VudCA9IDUsCiAgICAgICAgICAgICAgICBpc19wcml2YXRlID0gVHJ1ZQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFZhbGlkYXRvcigKICAgICAgICAgICAgICAgIGNoYWluX2Rlc2NyaXB0b3IgPSAnU09MJywKICAgICAgICAgICAgICAgIGZlZV9wZXJjZW50ID0gNSwKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RWYWxpZGF0b3Ioc2VsZik6CiAgICAgICAgIiIiVGVzdCBWYWxpZGF0b3IiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_vault_account.py b/test/test_vault_account.py index b026f834..2cfdcb52 100644 --- a/test/test_vault_account.py +++ b/test/test_vault_account.py @@ -1,92 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.vault_account import VaultAccount - - -class TestVaultAccount(unittest.TestCase): - """VaultAccount unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> VaultAccount: - """Test VaultAccount - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `VaultAccount` - """ - model = VaultAccount() - if include_optional: - return VaultAccount( - id = '', - name = '', - assets = [ - fireblocks.models.vault_asset.VaultAsset( - id = '', - total = '', - balance = '', - available = '', - pending = '', - frozen = '', - locked_amount = '', - staked = '', - total_staked_cpu = '', - total_staked_network = '', - self_staked_cpu = '', - self_staked_network = '', - pending_refund_cpu = '', - pending_refund_network = '', - block_height = '', - block_hash = '', - rewards_info = fireblocks.models.rewards_info.RewardsInfo( - pending_rewards = '', ), ) - ], - hidden_on_ui = True, - customer_ref_id = '', - auto_fuel = True, - tags = [ - fireblocks.models.tag.Tag( - id = 'df4c0987-30da-4976-8dcf-bc2dd41ae331', - label = 'VIP', - description = 'Tag for VIP customers', - color = '#FF5733', - is_protected = True, - updated_at = 1717084800000, - pending_approval_request = fireblocks.models.approval_request.ApprovalRequest( - id = '12345', - type = 'TAG_UPDATE', - state = 'PENDING', ), ) - ] - ) - else: - return VaultAccount( - ) - """ - - def testVaultAccount(self): - """Test VaultAccount""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnQgaW1wb3J0IFZhdWx0QWNjb3VudAoKCmNsYXNzIFRlc3RWYXVsdEFjY291bnQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVmF1bHRBY2NvdW50IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBWYXVsdEFjY291bnQ6CiAgICAgICAgIiIiVGVzdCBWYXVsdEFjY291bnQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVmF1bHRBY2NvdW50YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVmF1bHRBY2NvdW50KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVmF1bHRBY2NvdW50KAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnJywKICAgICAgICAgICAgICAgIGFzc2V0cyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hc3NldC5WYXVsdEFzc2V0KAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdG90YWwgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGJhbGFuY2UgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcGVuZGluZyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZnJvemVuID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBsb2NrZWRfYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBzdGFrZWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsX3N0YWtlZF9jcHUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsX3N0YWtlZF9uZXR3b3JrID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBzZWxmX3N0YWtlZF9jcHUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGZfc3Rha2VkX25ldHdvcmsgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHBlbmRpbmdfcmVmdW5kX2NwdSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgcGVuZGluZ19yZWZ1bmRfbmV0d29yayA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tfaGVpZ2h0ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBibG9ja19oYXNoID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICByZXdhcmRzX2luZm8gPSBmaXJlYmxvY2tzLm1vZGVscy5yZXdhcmRzX2luZm8uUmV3YXJkc0luZm8oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nX3Jld2FyZHMgPSAnJywgKSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBoaWRkZW5fb25fdWkgPSBUcnVlLAogICAgICAgICAgICAgICAgY3VzdG9tZXJfcmVmX2lkID0gJycsCiAgICAgICAgICAgICAgICBhdXRvX2Z1ZWwgPSBUcnVlLAogICAgICAgICAgICAgICAgdGFncyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50YWcuVGFnKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICdkZjRjMDk4Ny0zMGRhLTQ5NzYtOGRjZi1iYzJkZDQxYWUzMzEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwgPSAnVklQJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1RhZyBmb3IgVklQIGN1c3RvbWVycycsIAogICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9ICcjRkY1NzMzJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGlzX3Byb3RlY3RlZCA9IFRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVkX2F0ID0gMTcxNzA4NDgwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIHBlbmRpbmdfYXBwcm92YWxfcmVxdWVzdCA9IGZpcmVibG9ja3MubW9kZWxzLmFwcHJvdmFsX3JlcXVlc3QuQXBwcm92YWxSZXF1ZXN0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnMTIzNDUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVEFHX1VQREFURScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAnUEVORElORycsICksICkKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVmF1bHRBY2NvdW50KAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFZhdWx0QWNjb3VudChzZWxmKToKICAgICAgICAiIiJUZXN0IFZhdWx0QWNjb3VudCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_vault_account_tag_attachment_operation.py b/test/test_vault_account_tag_attachment_operation.py index b31605ab..917671d5 100644 --- a/test/test_vault_account_tag_attachment_operation.py +++ b/test/test_vault_account_tag_attachment_operation.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.vault_account_tag_attachment_operation import ( - VaultAccountTagAttachmentOperation, -) - - -class TestVaultAccountTagAttachmentOperation(unittest.TestCase): - """VaultAccountTagAttachmentOperation unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> VaultAccountTagAttachmentOperation: - """Test VaultAccountTagAttachmentOperation - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `VaultAccountTagAttachmentOperation` - """ - model = VaultAccountTagAttachmentOperation() - if include_optional: - return VaultAccountTagAttachmentOperation( - vault_account_id = '1', - tag_id = 'f0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', - action = 'ATTACH' - ) - else: - return VaultAccountTagAttachmentOperation( - vault_account_id = '1', - tag_id = 'f0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', - action = 'ATTACH', - ) - """ - - def testVaultAccountTagAttachmentOperation(self): - """Test VaultAccountTagAttachmentOperation""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnRfdGFnX2F0dGFjaG1lbnRfb3BlcmF0aW9uIGltcG9ydCAoCiAgICBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50T3BlcmF0aW9uLAopCgoKY2xhc3MgVGVzdFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRPcGVyYXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudE9wZXJhdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudE9wZXJhdGlvbjoKICAgICAgICAiIiJUZXN0IFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRPcGVyYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudE9wZXJhdGlvbmAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRPcGVyYXRpb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50T3BlcmF0aW9uKAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcxJywKICAgICAgICAgICAgICAgIHRhZ19pZCA9ICdmMGVlYmM5OS05YzBiLTRlZjgtYmI2ZC02YmI5YmQzODBhMTEnLAogICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FUVEFDSCcKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50T3BlcmF0aW9uKAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcxJywKICAgICAgICAgICAgICAgIHRhZ19pZCA9ICdmMGVlYmM5OS05YzBiLTRlZjgtYmI2ZC02YmI5YmQzODBhMTEnLAogICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FUVEFDSCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VmF1bHRBY2NvdW50VGFnQXR0YWNobWVudE9wZXJhdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRPcGVyYXRpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_vault_account_tag_attachment_pending_operation.py b/test/test_vault_account_tag_attachment_pending_operation.py index 7cc0933e..5c4214e0 100644 --- a/test/test_vault_account_tag_attachment_pending_operation.py +++ b/test/test_vault_account_tag_attachment_pending_operation.py @@ -1,65 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.vault_account_tag_attachment_pending_operation import ( - VaultAccountTagAttachmentPendingOperation, -) - - -class TestVaultAccountTagAttachmentPendingOperation(unittest.TestCase): - """VaultAccountTagAttachmentPendingOperation unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> VaultAccountTagAttachmentPendingOperation: - """Test VaultAccountTagAttachmentPendingOperation - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `VaultAccountTagAttachmentPendingOperation` - """ - model = VaultAccountTagAttachmentPendingOperation() - if include_optional: - return VaultAccountTagAttachmentPendingOperation( - vault_account_id = '1', - tag_id = 'f0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', - action = 'ATTACH', - approval_request_id = '12345' - ) - else: - return VaultAccountTagAttachmentPendingOperation( - vault_account_id = '1', - tag_id = 'f0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', - action = 'ATTACH', - approval_request_id = '12345', - ) - """ - - def testVaultAccountTagAttachmentPendingOperation(self): - """Test VaultAccountTagAttachmentPendingOperation""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnRfdGFnX2F0dGFjaG1lbnRfcGVuZGluZ19vcGVyYXRpb24gaW1wb3J0ICgKICAgIFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRQZW5kaW5nT3BlcmF0aW9uLAopCgoKY2xhc3MgVGVzdFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRQZW5kaW5nT3BlcmF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRQZW5kaW5nT3BlcmF0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZSgKICAgICAgICBzZWxmLCBpbmNsdWRlX29wdGlvbmFsCiAgICApIC0+IFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRQZW5kaW5nT3BlcmF0aW9uOgogICAgICAgICIiIlRlc3QgVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudFBlbmRpbmdPcGVyYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudFBlbmRpbmdPcGVyYXRpb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50UGVuZGluZ09wZXJhdGlvbigpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRQZW5kaW5nT3BlcmF0aW9uKAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcxJywKICAgICAgICAgICAgICAgIHRhZ19pZCA9ICdmMGVlYmM5OS05YzBiLTRlZjgtYmI2ZC02YmI5YmQzODBhMTEnLAogICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FUVEFDSCcsCiAgICAgICAgICAgICAgICBhcHByb3ZhbF9yZXF1ZXN0X2lkID0gJzEyMzQ1JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRQZW5kaW5nT3BlcmF0aW9uKAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcxJywKICAgICAgICAgICAgICAgIHRhZ19pZCA9ICdmMGVlYmM5OS05YzBiLTRlZjgtYmI2ZC02YmI5YmQzODBhMTEnLAogICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FUVEFDSCcsCiAgICAgICAgICAgICAgICBhcHByb3ZhbF9yZXF1ZXN0X2lkID0gJzEyMzQ1JywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RWYXVsdEFjY291bnRUYWdBdHRhY2htZW50UGVuZGluZ09wZXJhdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRQZW5kaW5nT3BlcmF0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_vault_account_tag_attachment_rejected_operation.py b/test/test_vault_account_tag_attachment_rejected_operation.py index bbb63a8a..71112e54 100644 --- a/test/test_vault_account_tag_attachment_rejected_operation.py +++ b/test/test_vault_account_tag_attachment_rejected_operation.py @@ -1,65 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.vault_account_tag_attachment_rejected_operation import ( - VaultAccountTagAttachmentRejectedOperation, -) - - -class TestVaultAccountTagAttachmentRejectedOperation(unittest.TestCase): - """VaultAccountTagAttachmentRejectedOperation unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> VaultAccountTagAttachmentRejectedOperation: - """Test VaultAccountTagAttachmentRejectedOperation - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `VaultAccountTagAttachmentRejectedOperation` - """ - model = VaultAccountTagAttachmentRejectedOperation() - if include_optional: - return VaultAccountTagAttachmentRejectedOperation( - vault_account_id = '1', - tag_id = 'f0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', - action = 'ATTACH', - reason = 'CAPACITY_EXCEEDED' - ) - else: - return VaultAccountTagAttachmentRejectedOperation( - vault_account_id = '1', - tag_id = 'f0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', - action = 'ATTACH', - reason = 'CAPACITY_EXCEEDED', - ) - """ - - def testVaultAccountTagAttachmentRejectedOperation(self): - """Test VaultAccountTagAttachmentRejectedOperation""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnRfdGFnX2F0dGFjaG1lbnRfcmVqZWN0ZWRfb3BlcmF0aW9uIGltcG9ydCAoCiAgICBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50UmVqZWN0ZWRPcGVyYXRpb24sCikKCgpjbGFzcyBUZXN0VmF1bHRBY2NvdW50VGFnQXR0YWNobWVudFJlamVjdGVkT3BlcmF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRSZWplY3RlZE9wZXJhdGlvbiB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2UoCiAgICAgICAgc2VsZiwgaW5jbHVkZV9vcHRpb25hbAogICAgKSAtPiBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50UmVqZWN0ZWRPcGVyYXRpb246CiAgICAgICAgIiIiVGVzdCBWYXVsdEFjY291bnRUYWdBdHRhY2htZW50UmVqZWN0ZWRPcGVyYXRpb24KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudFJlamVjdGVkT3BlcmF0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudFJlamVjdGVkT3BlcmF0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudFJlamVjdGVkT3BlcmF0aW9uKAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcxJywKICAgICAgICAgICAgICAgIHRhZ19pZCA9ICdmMGVlYmM5OS05YzBiLTRlZjgtYmI2ZC02YmI5YmQzODBhMTEnLAogICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FUVEFDSCcsCiAgICAgICAgICAgICAgICByZWFzb24gPSAnQ0FQQUNJVFlfRVhDRUVERUQnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudFJlamVjdGVkT3BlcmF0aW9uKAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcxJywKICAgICAgICAgICAgICAgIHRhZ19pZCA9ICdmMGVlYmM5OS05YzBiLTRlZjgtYmI2ZC02YmI5YmQzODBhMTEnLAogICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FUVEFDSCcsCiAgICAgICAgICAgICAgICByZWFzb24gPSAnQ0FQQUNJVFlfRVhDRUVERUQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRSZWplY3RlZE9wZXJhdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IFZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRSZWplY3RlZE9wZXJhdGlvbiIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_vault_accounts_paged_response.py b/test/test_vault_accounts_paged_response.py index 97c004c6..7ecf72b6 100644 --- a/test/test_vault_accounts_paged_response.py +++ b/test/test_vault_accounts_paged_response.py @@ -1,100 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.vault_accounts_paged_response import VaultAccountsPagedResponse - - -class TestVaultAccountsPagedResponse(unittest.TestCase): - """VaultAccountsPagedResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> VaultAccountsPagedResponse: - """Test VaultAccountsPagedResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `VaultAccountsPagedResponse` - """ - model = VaultAccountsPagedResponse() - if include_optional: - return VaultAccountsPagedResponse( - accounts = [ - fireblocks.models.vault_account.VaultAccount( - id = '', - name = '', - assets = [ - fireblocks.models.vault_asset.VaultAsset( - id = '', - total = '', - balance = '', - available = '', - pending = '', - frozen = '', - locked_amount = '', - staked = '', - total_staked_cpu = '', - total_staked_network = '', - self_staked_cpu = '', - self_staked_network = '', - pending_refund_cpu = '', - pending_refund_network = '', - block_height = '', - block_hash = '', - rewards_info = fireblocks.models.rewards_info.RewardsInfo( - pending_rewards = '', ), ) - ], - hidden_on_ui = True, - customer_ref_id = '', - auto_fuel = True, - tags = [ - fireblocks.models.tag.Tag( - id = 'df4c0987-30da-4976-8dcf-bc2dd41ae331', - label = 'VIP', - description = 'Tag for VIP customers', - color = '#FF5733', - is_protected = True, - updated_at = 1717084800000, - pending_approval_request = fireblocks.models.approval_request.ApprovalRequest( - id = '12345', - type = 'TAG_UPDATE', - state = 'PENDING', ), ) - ], ) - ], - paging = fireblocks.models.vault_accounts_paged_response_paging.VaultAccountsPagedResponse_paging( - before = '', - after = '', ), - previous_url = '', - next_url = '' - ) - else: - return VaultAccountsPagedResponse( - ) - """ - - def testVaultAccountsPagedResponse(self): - """Test VaultAccountsPagedResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnRzX3BhZ2VkX3Jlc3BvbnNlIGltcG9ydCBWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZQoKCmNsYXNzIFRlc3RWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2U6CiAgICAgICAgIiIiVGVzdCBWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFZhdWx0QWNjb3VudHNQYWdlZFJlc3BvbnNlKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2UoCiAgICAgICAgICAgICAgICBhY2NvdW50cyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hY2NvdW50LlZhdWx0QWNjb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0cyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2Fzc2V0LlZhdWx0QXNzZXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWwgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFsYW5jZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVuZGluZyA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm96ZW4gPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9ja2VkX2Ftb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFrZWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxfc3Rha2VkX2NwdSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbF9zdGFrZWRfbmV0d29yayA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmX3N0YWtlZF9jcHUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZl9zdGFrZWRfbmV0d29yayA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nX3JlZnVuZF9jcHUgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVuZGluZ19yZWZ1bmRfbmV0d29yayA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja19oZWlnaHQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tfaGFzaCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXdhcmRzX2luZm8gPSBmaXJlYmxvY2tzLm1vZGVscy5yZXdhcmRzX2luZm8uUmV3YXJkc0luZm8oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlbmRpbmdfcmV3YXJkcyA9ICcnLCApLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgaGlkZGVuX29uX3VpID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyX3JlZl9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXV0b19mdWVsID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHRhZ3MgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy50YWcuVGFnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJ2RmNGMwOTg3LTMwZGEtNDk3Ni04ZGNmLWJjMmRkNDFhZTMzMScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsID0gJ1ZJUCcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1RhZyBmb3IgVklQIGN1c3RvbWVycycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yID0gJyNGRjU3MzMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19wcm90ZWN0ZWQgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVkX2F0ID0gMTcxNzA4NDgwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVuZGluZ19hcHByb3ZhbF9yZXF1ZXN0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuYXBwcm92YWxfcmVxdWVzdC5BcHByb3ZhbFJlcXVlc3QoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJzEyMzQ1JywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnVEFHX1VQREFURScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9ICdQRU5ESU5HJywgKSwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBwYWdpbmcgPSBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hY2NvdW50c19wYWdlZF9yZXNwb25zZV9wYWdpbmcuVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2VfcGFnaW5nKAogICAgICAgICAgICAgICAgICAgIGJlZm9yZSA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBhZnRlciA9ICcnLCApLAogICAgICAgICAgICAgICAgcHJldmlvdXNfdXJsID0gJycsCiAgICAgICAgICAgICAgICBuZXh0X3VybCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2UoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_vault_accounts_paged_response_paging.py b/test/test_vault_accounts_paged_response_paging.py index 4535edf7..eb3e2980 100644 --- a/test/test_vault_accounts_paged_response_paging.py +++ b/test/test_vault_accounts_paged_response_paging.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.vault_accounts_paged_response_paging import ( - VaultAccountsPagedResponsePaging, -) - - -class TestVaultAccountsPagedResponsePaging(unittest.TestCase): - """VaultAccountsPagedResponsePaging unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> VaultAccountsPagedResponsePaging: - """Test VaultAccountsPagedResponsePaging - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `VaultAccountsPagedResponsePaging` - """ - model = VaultAccountsPagedResponsePaging() - if include_optional: - return VaultAccountsPagedResponsePaging( - before = '', - after = '' - ) - else: - return VaultAccountsPagedResponsePaging( - ) - """ - - def testVaultAccountsPagedResponsePaging(self): - """Test VaultAccountsPagedResponsePaging""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnRzX3BhZ2VkX3Jlc3BvbnNlX3BhZ2luZyBpbXBvcnQgKAogICAgVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2VQYWdpbmcsCikKCgpjbGFzcyBUZXN0VmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2VQYWdpbmcodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2VQYWdpbmcgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFZhdWx0QWNjb3VudHNQYWdlZFJlc3BvbnNlUGFnaW5nOgogICAgICAgICIiIlRlc3QgVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2VQYWdpbmcKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2VQYWdpbmdgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZVBhZ2luZygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFZhdWx0QWNjb3VudHNQYWdlZFJlc3BvbnNlUGFnaW5nKAogICAgICAgICAgICAgICAgYmVmb3JlID0gJycsCiAgICAgICAgICAgICAgICBhZnRlciA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2VQYWdpbmcoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VmF1bHRBY2NvdW50c1BhZ2VkUmVzcG9uc2VQYWdpbmcoc2VsZik6CiAgICAgICAgIiIiVGVzdCBWYXVsdEFjY291bnRzUGFnZWRSZXNwb25zZVBhZ2luZyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_vault_accounts_tag_attachment_operations_request.py b/test/test_vault_accounts_tag_attachment_operations_request.py index 6c61f648..0dd5811a 100644 --- a/test/test_vault_accounts_tag_attachment_operations_request.py +++ b/test/test_vault_accounts_tag_attachment_operations_request.py @@ -1,61 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.vault_accounts_tag_attachment_operations_request import ( - VaultAccountsTagAttachmentOperationsRequest, -) - - -class TestVaultAccountsTagAttachmentOperationsRequest(unittest.TestCase): - """VaultAccountsTagAttachmentOperationsRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> VaultAccountsTagAttachmentOperationsRequest: - """Test VaultAccountsTagAttachmentOperationsRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `VaultAccountsTagAttachmentOperationsRequest` - """ - model = VaultAccountsTagAttachmentOperationsRequest() - if include_optional: - return VaultAccountsTagAttachmentOperationsRequest( - vault_account_ids = ["0","1"], - tag_ids_to_attach = ["df4c0987-30da-4976-8dcf-bc2dd41ae331","a1b2c3d4-e5f6-7890-abcd-ef1234567890"], - tag_ids_to_detach = ["df4c0987-30da-4976-8dcf-bc2dd41ae331","a1b2c3d4-e5f6-7890-abcd-ef1234567890"] - ) - else: - return VaultAccountsTagAttachmentOperationsRequest( - vault_account_ids = ["0","1"], - ) - """ - - def testVaultAccountsTagAttachmentOperationsRequest(self): - """Test VaultAccountsTagAttachmentOperationsRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnRzX3RhZ19hdHRhY2htZW50X29wZXJhdGlvbnNfcmVxdWVzdCBpbXBvcnQgKAogICAgVmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVxdWVzdCwKKQoKCmNsYXNzIFRlc3RWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXF1ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1JlcXVlc3QgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKAogICAgICAgIHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwKICAgICkgLT4gVmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVxdWVzdDoKICAgICAgICAiIiJUZXN0IFZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1JlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVxdWVzdGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1JlcXVlc3QoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXF1ZXN0KAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZHMgPSBbIjAiLCIxIl0sCiAgICAgICAgICAgICAgICB0YWdfaWRzX3RvX2F0dGFjaCA9IFsiZGY0YzA5ODctMzBkYS00OTc2LThkY2YtYmMyZGQ0MWFlMzMxIiwiYTFiMmMzZDQtZTVmNi03ODkwLWFiY2QtZWYxMjM0NTY3ODkwIl0sCiAgICAgICAgICAgICAgICB0YWdfaWRzX3RvX2RldGFjaCA9IFsiZGY0YzA5ODctMzBkYS00OTc2LThkY2YtYmMyZGQ0MWFlMzMxIiwiYTFiMmMzZDQtZTVmNi03ODkwLWFiY2QtZWYxMjM0NTY3ODkwIl0KICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXF1ZXN0KAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZHMgPSBbIjAiLCIxIl0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVxdWVzdChzZWxmKToKICAgICAgICAiIiJUZXN0IFZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1JlcXVlc3QiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_vault_accounts_tag_attachment_operations_response.py b/test/test_vault_accounts_tag_attachment_operations_response.py index af4cd6e9..9a3ea02b 100644 --- a/test/test_vault_accounts_tag_attachment_operations_response.py +++ b/test/test_vault_accounts_tag_attachment_operations_response.py @@ -1,77 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.vault_accounts_tag_attachment_operations_response import ( - VaultAccountsTagAttachmentOperationsResponse, -) - - -class TestVaultAccountsTagAttachmentOperationsResponse(unittest.TestCase): - """VaultAccountsTagAttachmentOperationsResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance( - self, include_optional - ) -> VaultAccountsTagAttachmentOperationsResponse: - """Test VaultAccountsTagAttachmentOperationsResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `VaultAccountsTagAttachmentOperationsResponse` - """ - model = VaultAccountsTagAttachmentOperationsResponse() - if include_optional: - return VaultAccountsTagAttachmentOperationsResponse( - applied_operations = [ - fireblocks.models.vault_account_tag_attachment_operation.VaultAccountTagAttachmentOperation( - vault_account_id = '1', - tag_id = 'f0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', - action = 'ATTACH', ) - ], - pending_operations = [ - fireblocks.models.vault_account_tag_attachment_pending_operation.VaultAccountTagAttachmentPendingOperation( - vault_account_id = '1', - tag_id = 'f0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', - action = 'ATTACH', - approval_request_id = '12345', ) - ], - rejected_operations = [ - fireblocks.models.vault_account_tag_attachment_rejected_operation.VaultAccountTagAttachmentRejectedOperation( - vault_account_id = '1', - tag_id = 'f0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', - action = 'ATTACH', - reason = 'CAPACITY_EXCEEDED', ) - ] - ) - else: - return VaultAccountsTagAttachmentOperationsResponse( - ) - """ - - def testVaultAccountsTagAttachmentOperationsResponse(self): - """Test VaultAccountsTagAttachmentOperationsResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnRzX3RhZ19hdHRhY2htZW50X29wZXJhdGlvbnNfcmVzcG9uc2UgaW1wb3J0ICgKICAgIFZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1Jlc3BvbnNlLAopCgoKY2xhc3MgVGVzdFZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1Jlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1Jlc3BvbnNlIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZSgKICAgICAgICBzZWxmLCBpbmNsdWRlX29wdGlvbmFsCiAgICApIC0+IFZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1Jlc3BvbnNlOgogICAgICAgICIiIlRlc3QgVmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVzcG9uc2UKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVzcG9uc2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFZhdWx0QWNjb3VudHNUYWdBdHRhY2htZW50T3BlcmF0aW9uc1Jlc3BvbnNlKAogICAgICAgICAgICAgICAgYXBwbGllZF9vcGVyYXRpb25zID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjY291bnRfdGFnX2F0dGFjaG1lbnRfb3BlcmF0aW9uLlZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRPcGVyYXRpb24oCiAgICAgICAgICAgICAgICAgICAgICAgIHZhdWx0X2FjY291bnRfaWQgPSAnMScsIAogICAgICAgICAgICAgICAgICAgICAgICB0YWdfaWQgPSAnZjBlZWJjOTktOWMwYi00ZWY4LWJiNmQtNmJiOWJkMzgwYTExJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdBVFRBQ0gnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHBlbmRpbmdfb3BlcmF0aW9ucyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy52YXVsdF9hY2NvdW50X3RhZ19hdHRhY2htZW50X3BlbmRpbmdfb3BlcmF0aW9uLlZhdWx0QWNjb3VudFRhZ0F0dGFjaG1lbnRQZW5kaW5nT3BlcmF0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gJzEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdGFnX2lkID0gJ2YwZWViYzk5LTljMGItNGVmOC1iYjZkLTZiYjliZDM4MGExMScsIAogICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQVRUQUNIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmFsX3JlcXVlc3RfaWQgPSAnMTIzNDUnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHJlamVjdGVkX29wZXJhdGlvbnMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMudmF1bHRfYWNjb3VudF90YWdfYXR0YWNobWVudF9yZWplY3RlZF9vcGVyYXRpb24uVmF1bHRBY2NvdW50VGFnQXR0YWNobWVudFJlamVjdGVkT3BlcmF0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gJzEnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdGFnX2lkID0gJ2YwZWViYzk5LTljMGItNGVmOC1iYjZkLTZiYjliZDM4MGExMScsIAogICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQVRUQUNIJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbiA9ICdDQVBBQ0lUWV9FWENFRURFRCcsICkKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVzcG9uc2UoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VmF1bHRBY2NvdW50c1RhZ0F0dGFjaG1lbnRPcGVyYXRpb25zUmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBWYXVsdEFjY291bnRzVGFnQXR0YWNobWVudE9wZXJhdGlvbnNSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_vault_action_status.py b/test/test_vault_action_status.py index 331d2a96..1af7c2ba 100644 --- a/test/test_vault_action_status.py +++ b/test/test_vault_action_status.py @@ -1,54 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.vault_action_status import VaultActionStatus - - -class TestVaultActionStatus(unittest.TestCase): - """VaultActionStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> VaultActionStatus: - """Test VaultActionStatus - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `VaultActionStatus` - """ - model = VaultActionStatus() - if include_optional: - return VaultActionStatus( - success = True - ) - else: - return VaultActionStatus( - ) - """ - - def testVaultActionStatus(self): - """Test VaultActionStatus""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2FjdGlvbl9zdGF0dXMgaW1wb3J0IFZhdWx0QWN0aW9uU3RhdHVzCgoKY2xhc3MgVGVzdFZhdWx0QWN0aW9uU3RhdHVzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlZhdWx0QWN0aW9uU3RhdHVzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBWYXVsdEFjdGlvblN0YXR1czoKICAgICAgICAiIiJUZXN0IFZhdWx0QWN0aW9uU3RhdHVzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFZhdWx0QWN0aW9uU3RhdHVzYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVmF1bHRBY3Rpb25TdGF0dXMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBWYXVsdEFjdGlvblN0YXR1cygKICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVmF1bHRBY3Rpb25TdGF0dXMoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0VmF1bHRBY3Rpb25TdGF0dXMoc2VsZik6CiAgICAgICAgIiIiVGVzdCBWYXVsdEFjdGlvblN0YXR1cyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_vault_asset.py b/test/test_vault_asset.py index eece6c46..67626833 100644 --- a/test/test_vault_asset.py +++ b/test/test_vault_asset.py @@ -1,71 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.vault_asset import VaultAsset - - -class TestVaultAsset(unittest.TestCase): - """VaultAsset unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> VaultAsset: - """Test VaultAsset - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `VaultAsset` - """ - model = VaultAsset() - if include_optional: - return VaultAsset( - id = '', - total = '', - balance = '', - available = '', - pending = '', - frozen = '', - locked_amount = '', - staked = '', - total_staked_cpu = '', - total_staked_network = '', - self_staked_cpu = '', - self_staked_network = '', - pending_refund_cpu = '', - pending_refund_network = '', - block_height = '', - block_hash = '', - rewards_info = fireblocks.models.rewards_info.RewardsInfo( - pending_rewards = '', ) - ) - else: - return VaultAsset( - ) - """ - - def testVaultAsset(self): - """Test VaultAsset""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X2Fzc2V0IGltcG9ydCBWYXVsdEFzc2V0CgoKY2xhc3MgVGVzdFZhdWx0QXNzZXQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVmF1bHRBc3NldCB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVmF1bHRBc3NldDoKICAgICAgICAiIiJUZXN0IFZhdWx0QXNzZXQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVmF1bHRBc3NldGAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFZhdWx0QXNzZXQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBWYXVsdEFzc2V0KAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIHRvdGFsID0gJycsCiAgICAgICAgICAgICAgICBiYWxhbmNlID0gJycsCiAgICAgICAgICAgICAgICBhdmFpbGFibGUgPSAnJywKICAgICAgICAgICAgICAgIHBlbmRpbmcgPSAnJywKICAgICAgICAgICAgICAgIGZyb3plbiA9ICcnLAogICAgICAgICAgICAgICAgbG9ja2VkX2Ftb3VudCA9ICcnLAogICAgICAgICAgICAgICAgc3Rha2VkID0gJycsCiAgICAgICAgICAgICAgICB0b3RhbF9zdGFrZWRfY3B1ID0gJycsCiAgICAgICAgICAgICAgICB0b3RhbF9zdGFrZWRfbmV0d29yayA9ICcnLAogICAgICAgICAgICAgICAgc2VsZl9zdGFrZWRfY3B1ID0gJycsCiAgICAgICAgICAgICAgICBzZWxmX3N0YWtlZF9uZXR3b3JrID0gJycsCiAgICAgICAgICAgICAgICBwZW5kaW5nX3JlZnVuZF9jcHUgPSAnJywKICAgICAgICAgICAgICAgIHBlbmRpbmdfcmVmdW5kX25ldHdvcmsgPSAnJywKICAgICAgICAgICAgICAgIGJsb2NrX2hlaWdodCA9ICcnLAogICAgICAgICAgICAgICAgYmxvY2tfaGFzaCA9ICcnLAogICAgICAgICAgICAgICAgcmV3YXJkc19pbmZvID0gZmlyZWJsb2Nrcy5tb2RlbHMucmV3YXJkc19pbmZvLlJld2FyZHNJbmZvKAogICAgICAgICAgICAgICAgICAgIHBlbmRpbmdfcmV3YXJkcyA9ICcnLCApCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVmF1bHRBc3NldCgKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RWYXVsdEFzc2V0KHNlbGYpOgogICAgICAgICIiIlRlc3QgVmF1bHRBc3NldCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_vault_wallet_address.py b/test/test_vault_wallet_address.py index ac14b434..ff7da835 100644 --- a/test/test_vault_wallet_address.py +++ b/test/test_vault_wallet_address.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.vault_wallet_address import VaultWalletAddress - - -class TestVaultWalletAddress(unittest.TestCase): - """VaultWalletAddress unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> VaultWalletAddress: - """Test VaultWalletAddress - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `VaultWalletAddress` - """ - model = VaultWalletAddress() - if include_optional: - return VaultWalletAddress( - asset_id = '', - address = '', - description = '', - tag = '', - type = '', - customer_ref_id = '', - address_format = 'SEGWIT', - legacy_address = '', - enterprise_address = '', - bip44_address_index = 56, - user_defined = True - ) - else: - return VaultWalletAddress( - ) - """ - - def testVaultWalletAddress(self): - """Test VaultWalletAddress""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZhdWx0X3dhbGxldF9hZGRyZXNzIGltcG9ydCBWYXVsdFdhbGxldEFkZHJlc3MKCgpjbGFzcyBUZXN0VmF1bHRXYWxsZXRBZGRyZXNzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIlZhdWx0V2FsbGV0QWRkcmVzcyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVmF1bHRXYWxsZXRBZGRyZXNzOgogICAgICAgICIiIlRlc3QgVmF1bHRXYWxsZXRBZGRyZXNzCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFZhdWx0V2FsbGV0QWRkcmVzc2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFZhdWx0V2FsbGV0QWRkcmVzcygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFZhdWx0V2FsbGV0QWRkcmVzcygKICAgICAgICAgICAgICAgIGFzc2V0X2lkID0gJycsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0gJycsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICcnLAogICAgICAgICAgICAgICAgdGFnID0gJycsCiAgICAgICAgICAgICAgICB0eXBlID0gJycsCiAgICAgICAgICAgICAgICBjdXN0b21lcl9yZWZfaWQgPSAnJywKICAgICAgICAgICAgICAgIGFkZHJlc3NfZm9ybWF0ID0gJ1NFR1dJVCcsCiAgICAgICAgICAgICAgICBsZWdhY3lfYWRkcmVzcyA9ICcnLAogICAgICAgICAgICAgICAgZW50ZXJwcmlzZV9hZGRyZXNzID0gJycsCiAgICAgICAgICAgICAgICBiaXA0NF9hZGRyZXNzX2luZGV4ID0gNTYsCiAgICAgICAgICAgICAgICB1c2VyX2RlZmluZWQgPSBUcnVlCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gVmF1bHRXYWxsZXRBZGRyZXNzKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFZhdWx0V2FsbGV0QWRkcmVzcyhzZWxmKToKICAgICAgICAiIiJUZXN0IFZhdWx0V2FsbGV0QWRkcmVzcyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_vaults_api.py b/test/test_vaults_api.py index f3aa9502..5ca70357 100644 --- a/test/test_vaults_api.py +++ b/test/test_vaults_api.py @@ -1,242 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.vaults_api import VaultsApi - - -class TestVaultsApi(unittest.TestCase): - """VaultsApi unit test stubs""" - - def setUp(self) -> None: - self.api = VaultsApi() - - def tearDown(self) -> None: - pass - - def test_activate_asset_for_vault_account(self) -> None: - """Test case for activate_asset_for_vault_account - - Activate a wallet in a vault account - """ - pass - - def test_attach_or_detach_tags_from_vault_accounts(self) -> None: - """Test case for attach_or_detach_tags_from_vault_accounts - - Attach or detach tags from vault accounts - """ - pass - - def test_create_legacy_address(self) -> None: - """Test case for create_legacy_address - - Convert a segwit address to legacy format - """ - pass - - def test_create_multiple_accounts(self) -> None: - """Test case for create_multiple_accounts - - Bulk creation of new vault accounts - """ - pass - - def test_create_multiple_deposit_addresses(self) -> None: - """Test case for create_multiple_deposit_addresses - - Bulk creation of new deposit addresses - """ - pass - - def test_create_vault_account(self) -> None: - """Test case for create_vault_account - - Create a new vault account - """ - pass - - def test_create_vault_account_asset(self) -> None: - """Test case for create_vault_account_asset - - Create a new vault wallet - """ - pass - - def test_create_vault_account_asset_address(self) -> None: - """Test case for create_vault_account_asset_address - - Create new asset deposit address - """ - pass - - def test_get_asset_wallets(self) -> None: - """Test case for get_asset_wallets - - Get vault wallets (Paginated) - """ - pass - - def test_get_create_multiple_deposit_addresses_job_status(self) -> None: - """Test case for get_create_multiple_deposit_addresses_job_status - - Get the job status of the bulk deposit address creation - """ - pass - - def test_get_create_multiple_vault_accounts_job_status(self) -> None: - """Test case for get_create_multiple_vault_accounts_job_status - - Get job status of bulk creation of new vault accounts - """ - pass - - def test_get_max_bip_index_used(self) -> None: - """Test case for get_max_bip_index_used - - Get maximum BIP44 index used - """ - pass - - def test_get_max_spendable_amount(self) -> None: - """Test case for get_max_spendable_amount - - Get max spendable amount in a transaction - """ - pass - - def test_get_paged_vault_accounts(self) -> None: - """Test case for get_paged_vault_accounts - - Get vault accounts (Paginated) - """ - pass - - def test_get_public_key_info(self) -> None: - """Test case for get_public_key_info - - Get the public key for a derivation path - """ - pass - - def test_get_public_key_info_for_address(self) -> None: - """Test case for get_public_key_info_for_address - - Get an asset's public key - """ - pass - - def test_get_unspent_inputs(self) -> None: - """Test case for get_unspent_inputs - - Get UTXO unspent inputs information - """ - pass - - def test_get_vault_account(self) -> None: - """Test case for get_vault_account - - Get a vault account by ID - """ - pass - - def test_get_vault_account_asset(self) -> None: - """Test case for get_vault_account_asset - - Get the asset balance for a vault account - """ - pass - - def test_get_vault_account_asset_addresses_paginated(self) -> None: - """Test case for get_vault_account_asset_addresses_paginated - - Get addresses (Paginated) - """ - pass - - def test_get_vault_assets(self) -> None: - """Test case for get_vault_assets - - Get asset balance for chosen assets - """ - pass - - def test_get_vault_balance_by_asset(self) -> None: - """Test case for get_vault_balance_by_asset - - Get vault balance by an asset - """ - pass - - def test_hide_vault_account(self) -> None: - """Test case for hide_vault_account - - Hide a vault account in the console - """ - pass - - def test_set_customer_ref_id_for_address(self) -> None: - """Test case for set_customer_ref_id_for_address - - Assign AML customer reference ID - """ - pass - - def test_set_vault_account_auto_fuel(self) -> None: - """Test case for set_vault_account_auto_fuel - - Set auto fueling to on or off - """ - pass - - def test_set_vault_account_customer_ref_id(self) -> None: - """Test case for set_vault_account_customer_ref_id - - Set an AML/KYT ID for a vault account - """ - pass - - def test_unhide_vault_account(self) -> None: - """Test case for unhide_vault_account - - Unhide a vault account in the console - """ - pass - - def test_update_vault_account(self) -> None: - """Test case for update_vault_account - - Rename a vault account - """ - pass - - def test_update_vault_account_asset_address(self) -> None: - """Test case for update_vault_account_asset_address - - Update address description - """ - pass - - def test_update_vault_account_asset_balance(self) -> None: - """Test case for update_vault_account_asset_balance - - Refresh asset balance data - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLnZhdWx0c19hcGkgaW1wb3J0IFZhdWx0c0FwaQoKCmNsYXNzIFRlc3RWYXVsdHNBcGkodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVmF1bHRzQXBpIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKSAtPiBOb25lOgogICAgICAgIHNlbGYuYXBpID0gVmF1bHRzQXBpKCkKCiAgICBkZWYgdGVhckRvd24oc2VsZikgLT4gTm9uZToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfYWN0aXZhdGVfYXNzZXRfZm9yX3ZhdWx0X2FjY291bnQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGFjdGl2YXRlX2Fzc2V0X2Zvcl92YXVsdF9hY2NvdW50CgogICAgICAgIEFjdGl2YXRlIGEgd2FsbGV0IGluIGEgdmF1bHQgYWNjb3VudAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9hdHRhY2hfb3JfZGV0YWNoX3RhZ3NfZnJvbV92YXVsdF9hY2NvdW50cyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgYXR0YWNoX29yX2RldGFjaF90YWdzX2Zyb21fdmF1bHRfYWNjb3VudHMKCiAgICAgICAgQXR0YWNoIG9yIGRldGFjaCB0YWdzIGZyb20gdmF1bHQgYWNjb3VudHMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY3JlYXRlX2xlZ2FjeV9hZGRyZXNzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBjcmVhdGVfbGVnYWN5X2FkZHJlc3MKCiAgICAgICAgQ29udmVydCBhIHNlZ3dpdCBhZGRyZXNzIHRvIGxlZ2FjeSBmb3JtYXQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY3JlYXRlX211bHRpcGxlX2FjY291bnRzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBjcmVhdGVfbXVsdGlwbGVfYWNjb3VudHMKCiAgICAgICAgQnVsayBjcmVhdGlvbiBvZiBuZXcgdmF1bHQgYWNjb3VudHMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY3JlYXRlX211bHRpcGxlX2RlcG9zaXRfYWRkcmVzc2VzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBjcmVhdGVfbXVsdGlwbGVfZGVwb3NpdF9hZGRyZXNzZXMKCiAgICAgICAgQnVsayBjcmVhdGlvbiBvZiBuZXcgZGVwb3NpdCBhZGRyZXNzZXMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY3JlYXRlX3ZhdWx0X2FjY291bnQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGNyZWF0ZV92YXVsdF9hY2NvdW50CgogICAgICAgIENyZWF0ZSBhIG5ldyB2YXVsdCBhY2NvdW50CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2NyZWF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBjcmVhdGVfdmF1bHRfYWNjb3VudF9hc3NldAoKICAgICAgICBDcmVhdGUgYSBuZXcgdmF1bHQgd2FsbGV0CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2NyZWF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3Moc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGNyZWF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3MKCiAgICAgICAgQ3JlYXRlIG5ldyBhc3NldCBkZXBvc2l0IGFkZHJlc3MKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2Fzc2V0X3dhbGxldHMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9hc3NldF93YWxsZXRzCgogICAgICAgIEdldCB2YXVsdCB3YWxsZXRzIChQYWdpbmF0ZWQpCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9jcmVhdGVfbXVsdGlwbGVfZGVwb3NpdF9hZGRyZXNzZXNfam9iX3N0YXR1cyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X2NyZWF0ZV9tdWx0aXBsZV9kZXBvc2l0X2FkZHJlc3Nlc19qb2Jfc3RhdHVzCgogICAgICAgIEdldCB0aGUgam9iIHN0YXR1cyBvZiB0aGUgYnVsayBkZXBvc2l0IGFkZHJlc3MgY3JlYXRpb24KICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X2NyZWF0ZV9tdWx0aXBsZV92YXVsdF9hY2NvdW50c19qb2Jfc3RhdHVzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfY3JlYXRlX211bHRpcGxlX3ZhdWx0X2FjY291bnRzX2pvYl9zdGF0dXMKCiAgICAgICAgR2V0IGpvYiBzdGF0dXMgb2YgYnVsayBjcmVhdGlvbiBvZiBuZXcgdmF1bHQgYWNjb3VudHMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X21heF9iaXBfaW5kZXhfdXNlZChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X21heF9iaXBfaW5kZXhfdXNlZAoKICAgICAgICBHZXQgbWF4aW11bSBCSVA0NCBpbmRleCB1c2VkCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9tYXhfc3BlbmRhYmxlX2Ftb3VudChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X21heF9zcGVuZGFibGVfYW1vdW50CgogICAgICAgIEdldCBtYXggc3BlbmRhYmxlIGFtb3VudCBpbiBhIHRyYW5zYWN0aW9uCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9wYWdlZF92YXVsdF9hY2NvdW50cyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X3BhZ2VkX3ZhdWx0X2FjY291bnRzCgogICAgICAgIEdldCB2YXVsdCBhY2NvdW50cyAoUGFnaW5hdGVkKQogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfcHVibGljX2tleV9pbmZvKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfcHVibGljX2tleV9pbmZvCgogICAgICAgIEdldCB0aGUgcHVibGljIGtleSBmb3IgYSBkZXJpdmF0aW9uIHBhdGgKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3B1YmxpY19rZXlfaW5mb19mb3JfYWRkcmVzcyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X3B1YmxpY19rZXlfaW5mb19mb3JfYWRkcmVzcwoKICAgICAgICBHZXQgYW4gYXNzZXQncyBwdWJsaWMga2V5CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF91bnNwZW50X2lucHV0cyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X3Vuc3BlbnRfaW5wdXRzCgogICAgICAgIEdldCBVVFhPIHVuc3BlbnQgaW5wdXRzIGluZm9ybWF0aW9uCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF92YXVsdF9hY2NvdW50KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfdmF1bHRfYWNjb3VudAoKICAgICAgICBHZXQgYSB2YXVsdCBhY2NvdW50IGJ5IElECiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF92YXVsdF9hY2NvdW50X2Fzc2V0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfdmF1bHRfYWNjb3VudF9hc3NldAoKICAgICAgICBHZXQgdGhlIGFzc2V0IGJhbGFuY2UgZm9yIGEgdmF1bHQgYWNjb3VudAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfdmF1bHRfYWNjb3VudF9hc3NldF9hZGRyZXNzZXNfcGFnaW5hdGVkKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfdmF1bHRfYWNjb3VudF9hc3NldF9hZGRyZXNzZXNfcGFnaW5hdGVkCgogICAgICAgIEdldCBhZGRyZXNzZXMgKFBhZ2luYXRlZCkKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3ZhdWx0X2Fzc2V0cyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X3ZhdWx0X2Fzc2V0cwoKICAgICAgICBHZXQgYXNzZXQgYmFsYW5jZSBmb3IgY2hvc2VuIGFzc2V0cwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfdmF1bHRfYmFsYW5jZV9ieV9hc3NldChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X3ZhdWx0X2JhbGFuY2VfYnlfYXNzZXQKCiAgICAgICAgR2V0IHZhdWx0IGJhbGFuY2UgYnkgYW4gYXNzZXQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfaGlkZV92YXVsdF9hY2NvdW50KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBoaWRlX3ZhdWx0X2FjY291bnQKCiAgICAgICAgSGlkZSBhIHZhdWx0IGFjY291bnQgaW4gdGhlIGNvbnNvbGUKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3Rfc2V0X2N1c3RvbWVyX3JlZl9pZF9mb3JfYWRkcmVzcyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3Igc2V0X2N1c3RvbWVyX3JlZl9pZF9mb3JfYWRkcmVzcwoKICAgICAgICBBc3NpZ24gQU1MIGN1c3RvbWVyIHJlZmVyZW5jZSBJRAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9zZXRfdmF1bHRfYWNjb3VudF9hdXRvX2Z1ZWwoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHNldF92YXVsdF9hY2NvdW50X2F1dG9fZnVlbAoKICAgICAgICBTZXQgYXV0byBmdWVsaW5nIHRvIG9uIG9yIG9mZgogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9zZXRfdmF1bHRfYWNjb3VudF9jdXN0b21lcl9yZWZfaWQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHNldF92YXVsdF9hY2NvdW50X2N1c3RvbWVyX3JlZl9pZAoKICAgICAgICBTZXQgYW4gQU1ML0tZVCBJRCBmb3IgYSB2YXVsdCBhY2NvdW50CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3VuaGlkZV92YXVsdF9hY2NvdW50KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciB1bmhpZGVfdmF1bHRfYWNjb3VudAoKICAgICAgICBVbmhpZGUgYSB2YXVsdCBhY2NvdW50IGluIHRoZSBjb25zb2xlCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3VwZGF0ZV92YXVsdF9hY2NvdW50KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciB1cGRhdGVfdmF1bHRfYWNjb3VudAoKICAgICAgICBSZW5hbWUgYSB2YXVsdCBhY2NvdW50CiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3VwZGF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3Moc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHVwZGF0ZV92YXVsdF9hY2NvdW50X2Fzc2V0X2FkZHJlc3MKCiAgICAgICAgVXBkYXRlIGFkZHJlc3MgZGVzY3JpcHRpb24KICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfdXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYmFsYW5jZShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgdXBkYXRlX3ZhdWx0X2FjY291bnRfYXNzZXRfYmFsYW5jZQoKICAgICAgICBSZWZyZXNoIGFzc2V0IGJhbGFuY2UgZGF0YQogICAgICAgICIiIgogICAgICAgIHBhc3MKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_vendor_dto.py b/test/test_vendor_dto.py index f873ffed..e1bf0c46 100644 --- a/test/test_vendor_dto.py +++ b/test/test_vendor_dto.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.vendor_dto import VendorDto - - -class TestVendorDto(unittest.TestCase): - """VendorDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> VendorDto: - """Test VendorDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `VendorDto` - """ - model = VendorDto() - if include_optional: - return VendorDto( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b4453', - name = 'Fireblocks' - ) - else: - return VendorDto( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b4453', - name = 'Fireblocks', - ) - """ - - def testVendorDto(self): - """Test VendorDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZlbmRvcl9kdG8gaW1wb3J0IFZlbmRvckR0bwoKCmNsYXNzIFRlc3RWZW5kb3JEdG8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVmVuZG9yRHRvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBWZW5kb3JEdG86CiAgICAgICAgIiIiVGVzdCBWZW5kb3JEdG8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVmVuZG9yRHRvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gVmVuZG9yRHRvKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gVmVuZG9yRHRvKAogICAgICAgICAgICAgICAgaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI0NDUzJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnRmlyZWJsb2NrcycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBWZW5kb3JEdG8oCiAgICAgICAgICAgICAgICBpZCA9ICdiNzA3MDFmNC1kN2IxLTQ3OTUtYThlZS1iMDljZGI1YjQ0NTMnLAogICAgICAgICAgICAgICAgbmFtZSA9ICdGaXJlYmxvY2tzJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RWZW5kb3JEdG8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBWZW5kb3JEdG8iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_verdict_config.py b/test/test_verdict_config.py index a4e833ed..612ef22b 100644 --- a/test/test_verdict_config.py +++ b/test/test_verdict_config.py @@ -1,64 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.verdict_config import VerdictConfig - - -class TestVerdictConfig(unittest.TestCase): - """VerdictConfig unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> VerdictConfig: - """Test VerdictConfig - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `VerdictConfig` - """ - model = VerdictConfig() - if include_optional: - return VerdictConfig( - action = 'ALLOW', - approvers = fireblocks.models.approvers_config.ApproversConfig( - can_initiator_approve = False, - operator = 'AND', - allow_operator_as_authorizer = False, - approval_groups = [{"threshold":2,"users":["user1","user2"]}], ), - designated_signers = fireblocks.models.designated_signers_config.DesignatedSignersConfig( - type = 'SINGLE', - users = ["user1","user2"], - groups = ["group1","group2"], ) - ) - else: - return VerdictConfig( - action = 'ALLOW', - ) - """ - - def testVerdictConfig(self): - """Test VerdictConfig""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZlcmRpY3RfY29uZmlnIGltcG9ydCBWZXJkaWN0Q29uZmlnCgoKY2xhc3MgVGVzdFZlcmRpY3RDb25maWcodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVmVyZGljdENvbmZpZyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gVmVyZGljdENvbmZpZzoKICAgICAgICAiIiJUZXN0IFZlcmRpY3RDb25maWcKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVmVyZGljdENvbmZpZ2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFZlcmRpY3RDb25maWcoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBWZXJkaWN0Q29uZmlnKAogICAgICAgICAgICAgICAgYWN0aW9uID0gJ0FMTE9XJywKICAgICAgICAgICAgICAgIGFwcHJvdmVycyA9IGZpcmVibG9ja3MubW9kZWxzLmFwcHJvdmVyc19jb25maWcuQXBwcm92ZXJzQ29uZmlnKAogICAgICAgICAgICAgICAgICAgIGNhbl9pbml0aWF0b3JfYXBwcm92ZSA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9ICdBTkQnLCAKICAgICAgICAgICAgICAgICAgICBhbGxvd19vcGVyYXRvcl9hc19hdXRob3JpemVyID0gRmFsc2UsIAogICAgICAgICAgICAgICAgICAgIGFwcHJvdmFsX2dyb3VwcyA9IFt7InRocmVzaG9sZCI6MiwidXNlcnMiOlsidXNlcjEiLCJ1c2VyMiJdfV0sICksCiAgICAgICAgICAgICAgICBkZXNpZ25hdGVkX3NpZ25lcnMgPSBmaXJlYmxvY2tzLm1vZGVscy5kZXNpZ25hdGVkX3NpZ25lcnNfY29uZmlnLkRlc2lnbmF0ZWRTaWduZXJzQ29uZmlnKAogICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnU0lOR0xFJywgCiAgICAgICAgICAgICAgICAgICAgdXNlcnMgPSBbInVzZXIxIiwidXNlcjIiXSwgCiAgICAgICAgICAgICAgICAgICAgZ3JvdXBzID0gWyJncm91cDEiLCJncm91cDIiXSwgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFZlcmRpY3RDb25maWcoCiAgICAgICAgICAgICAgICBhY3Rpb24gPSAnQUxMT1cnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFZlcmRpY3RDb25maWcoc2VsZik6CiAgICAgICAgIiIiVGVzdCBWZXJkaWN0Q29uZmlnIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_version_summary.py b/test/test_version_summary.py index a0de6f90..7f0367c1 100644 --- a/test/test_version_summary.py +++ b/test/test_version_summary.py @@ -1,56 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.version_summary import VersionSummary - - -class TestVersionSummary(unittest.TestCase): - """VersionSummary unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> VersionSummary: - """Test VersionSummary - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `VersionSummary` - """ - model = VersionSummary() - if include_optional: - return VersionSummary( - hash = 'a1b2c3d4e5', - name = '1.0.0 (December 2025)' - ) - else: - return VersionSummary( - hash = 'a1b2c3d4e5', - ) - """ - - def testVersionSummary(self): - """Test VersionSummary""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLnZlcnNpb25fc3VtbWFyeSBpbXBvcnQgVmVyc2lvblN1bW1hcnkKCgpjbGFzcyBUZXN0VmVyc2lvblN1bW1hcnkodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiVmVyc2lvblN1bW1hcnkgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFZlcnNpb25TdW1tYXJ5OgogICAgICAgICIiIlRlc3QgVmVyc2lvblN1bW1hcnkKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgVmVyc2lvblN1bW1hcnlgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBWZXJzaW9uU3VtbWFyeSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFZlcnNpb25TdW1tYXJ5KAogICAgICAgICAgICAgICAgaGFzaCA9ICdhMWIyYzNkNGU1JywKICAgICAgICAgICAgICAgIG5hbWUgPSAnMS4wLjAgKERlY2VtYmVyIDIwMjUpJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFZlcnNpb25TdW1tYXJ5KAogICAgICAgICAgICAgICAgaGFzaCA9ICdhMWIyYzNkNGU1JywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RWZXJzaW9uU3VtbWFyeShzZWxmKToKICAgICAgICAiIiJUZXN0IFZlcnNpb25TdW1tYXJ5IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_wallet_asset.py b/test/test_wallet_asset.py index 737651a9..564c7729 100644 --- a/test/test_wallet_asset.py +++ b/test/test_wallet_asset.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.wallet_asset import WalletAsset - - -class TestWalletAsset(unittest.TestCase): - """WalletAsset unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> WalletAsset: - """Test WalletAsset - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `WalletAsset` - """ - model = WalletAsset() - if include_optional: - return WalletAsset( - id = '', - balance = '', - locked_amount = '', - status = 'WAITING_FOR_APPROVAL', - address = '', - tag = '', - activation_time = '' - ) - else: - return WalletAsset( - ) - """ - - def testWalletAsset(self): - """Test WalletAsset""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndhbGxldF9hc3NldCBpbXBvcnQgV2FsbGV0QXNzZXQKCgpjbGFzcyBUZXN0V2FsbGV0QXNzZXQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiV2FsbGV0QXNzZXQgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFdhbGxldEFzc2V0OgogICAgICAgICIiIlRlc3QgV2FsbGV0QXNzZXQKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgV2FsbGV0QXNzZXRgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBXYWxsZXRBc3NldCgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFdhbGxldEFzc2V0KAogICAgICAgICAgICAgICAgaWQgPSAnJywKICAgICAgICAgICAgICAgIGJhbGFuY2UgPSAnJywKICAgICAgICAgICAgICAgIGxvY2tlZF9hbW91bnQgPSAnJywKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdXQUlUSU5HX0ZPUl9BUFBST1ZBTCcsCiAgICAgICAgICAgICAgICBhZGRyZXNzID0gJycsCiAgICAgICAgICAgICAgICB0YWcgPSAnJywKICAgICAgICAgICAgICAgIGFjdGl2YXRpb25fdGltZSA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gV2FsbGV0QXNzZXQoCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0V2FsbGV0QXNzZXQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBXYWxsZXRBc3NldCIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_wallet_asset_additional_info.py b/test/test_wallet_asset_additional_info.py index 85192885..14eb18c6 100644 --- a/test/test_wallet_asset_additional_info.py +++ b/test/test_wallet_asset_additional_info.py @@ -1,69 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.wallet_asset_additional_info import WalletAssetAdditionalInfo - - -class TestWalletAssetAdditionalInfo(unittest.TestCase): - """WalletAssetAdditionalInfo unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> WalletAssetAdditionalInfo: - """Test WalletAssetAdditionalInfo - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `WalletAssetAdditionalInfo` - """ - model = WalletAssetAdditionalInfo() - if include_optional: - return WalletAssetAdditionalInfo( - account_holder_given_name = '', - account_holder_surname = '', - account_holder_city = '', - account_holder_country = '', - account_holder_address1 = '', - account_holder_address2 = '', - account_holder_district = '', - account_holder_postal_code = '', - aba_routing_number = '', - aba_account_number = '', - aba_country = '', - iban = '', - iban_city = '', - iban_country = '', - spei_clabe = '', - spei_name = '' - ) - else: - return WalletAssetAdditionalInfo( - ) - """ - - def testWalletAssetAdditionalInfo(self): - """Test WalletAssetAdditionalInfo""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndhbGxldF9hc3NldF9hZGRpdGlvbmFsX2luZm8gaW1wb3J0IFdhbGxldEFzc2V0QWRkaXRpb25hbEluZm8KCgpjbGFzcyBUZXN0V2FsbGV0QXNzZXRBZGRpdGlvbmFsSW5mbyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJXYWxsZXRBc3NldEFkZGl0aW9uYWxJbmZvIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBXYWxsZXRBc3NldEFkZGl0aW9uYWxJbmZvOgogICAgICAgICIiIlRlc3QgV2FsbGV0QXNzZXRBZGRpdGlvbmFsSW5mbwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBXYWxsZXRBc3NldEFkZGl0aW9uYWxJbmZvYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gV2FsbGV0QXNzZXRBZGRpdGlvbmFsSW5mbygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFdhbGxldEFzc2V0QWRkaXRpb25hbEluZm8oCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9naXZlbl9uYW1lID0gJycsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9zdXJuYW1lID0gJycsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9jaXR5ID0gJycsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9jb3VudHJ5ID0gJycsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9hZGRyZXNzMSA9ICcnLAogICAgICAgICAgICAgICAgYWNjb3VudF9ob2xkZXJfYWRkcmVzczIgPSAnJywKICAgICAgICAgICAgICAgIGFjY291bnRfaG9sZGVyX2Rpc3RyaWN0ID0gJycsCiAgICAgICAgICAgICAgICBhY2NvdW50X2hvbGRlcl9wb3N0YWxfY29kZSA9ICcnLAogICAgICAgICAgICAgICAgYWJhX3JvdXRpbmdfbnVtYmVyID0gJycsCiAgICAgICAgICAgICAgICBhYmFfYWNjb3VudF9udW1iZXIgPSAnJywKICAgICAgICAgICAgICAgIGFiYV9jb3VudHJ5ID0gJycsCiAgICAgICAgICAgICAgICBpYmFuID0gJycsCiAgICAgICAgICAgICAgICBpYmFuX2NpdHkgPSAnJywKICAgICAgICAgICAgICAgIGliYW5fY291bnRyeSA9ICcnLAogICAgICAgICAgICAgICAgc3BlaV9jbGFiZSA9ICcnLAogICAgICAgICAgICAgICAgc3BlaV9uYW1lID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBXYWxsZXRBc3NldEFkZGl0aW9uYWxJbmZvKAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFdhbGxldEFzc2V0QWRkaXRpb25hbEluZm8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBXYWxsZXRBc3NldEFkZGl0aW9uYWxJbmZvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_web3_connections_api.py b/test/test_web3_connections_api.py index 51fb0a40..9a571e40 100644 --- a/test/test_web3_connections_api.py +++ b/test/test_web3_connections_api.py @@ -1,60 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.web3_connections_api import Web3ConnectionsApi - - -class TestWeb3ConnectionsApi(unittest.TestCase): - """Web3ConnectionsApi unit test stubs""" - - def setUp(self) -> None: - self.api = Web3ConnectionsApi() - - def tearDown(self) -> None: - pass - - def test_create(self) -> None: - """Test case for create - - Create a new Web3 connection. - """ - pass - - def test_get(self) -> None: - """Test case for get - - List all open Web3 connections. - """ - pass - - def test_remove(self) -> None: - """Test case for remove - - Remove an existing Web3 connection. - """ - pass - - def test_submit(self) -> None: - """Test case for submit - - Respond to a pending Web3 connection request. - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLndlYjNfY29ubmVjdGlvbnNfYXBpIGltcG9ydCBXZWIzQ29ubmVjdGlvbnNBcGkKCgpjbGFzcyBUZXN0V2ViM0Nvbm5lY3Rpb25zQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIldlYjNDb25uZWN0aW9uc0FwaSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZikgLT4gTm9uZToKICAgICAgICBzZWxmLmFwaSA9IFdlYjNDb25uZWN0aW9uc0FwaSgpCgogICAgZGVmIHRlYXJEb3duKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2NyZWF0ZShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgY3JlYXRlCgogICAgICAgIENyZWF0ZSBhIG5ldyBXZWIzIGNvbm5lY3Rpb24uCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0CgogICAgICAgIExpc3QgYWxsIG9wZW4gV2ViMyBjb25uZWN0aW9ucy4KICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfcmVtb3ZlKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciByZW1vdmUKCiAgICAgICAgUmVtb3ZlIGFuIGV4aXN0aW5nIFdlYjMgY29ubmVjdGlvbi4KICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3Rfc3VibWl0KHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBzdWJtaXQKCiAgICAgICAgUmVzcG9uZCB0byBhIHBlbmRpbmcgV2ViMyBjb25uZWN0aW9uIHJlcXVlc3QuCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_webhook.py b/test/test_webhook.py index 8d7af5c4..3d0217bb 100644 --- a/test/test_webhook.py +++ b/test/test_webhook.py @@ -1,66 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.webhook import Webhook - - -class TestWebhook(unittest.TestCase): - """Webhook unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Webhook: - """Test Webhook - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Webhook` - """ - model = Webhook() - if include_optional: - return Webhook( - id = '123e4567-e89b-12d3-a456-426614174000', - url = 'https://example.com/webhook', - description = 'This webhook is used for transactions notifications', - events = ["transaction.created","transaction.status.updated"], - status = 'ENABLED', - created_at = 1625126400000, - updated_at = 1625126400000 - ) - else: - return Webhook( - id = '123e4567-e89b-12d3-a456-426614174000', - url = 'https://example.com/webhook', - events = ["transaction.created","transaction.status.updated"], - status = 'ENABLED', - created_at = 1625126400000, - updated_at = 1625126400000, - ) - """ - - def testWebhook(self): - """Test Webhook""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndlYmhvb2sgaW1wb3J0IFdlYmhvb2sKCgpjbGFzcyBUZXN0V2ViaG9vayh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJXZWJob29rIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBXZWJob29rOgogICAgICAgICIiIlRlc3QgV2ViaG9vawogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBXZWJob29rYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gV2ViaG9vaygpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFdlYmhvb2soCiAgICAgICAgICAgICAgICBpZCA9ICcxMjNlNDU2Ny1lODliLTEyZDMtYTQ1Ni00MjY2MTQxNzQwMDAnLAogICAgICAgICAgICAgICAgdXJsID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vd2ViaG9vaycsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGlzIHdlYmhvb2sgaXMgdXNlZCBmb3IgdHJhbnNhY3Rpb25zIG5vdGlmaWNhdGlvbnMnLAogICAgICAgICAgICAgICAgZXZlbnRzID0gWyJ0cmFuc2FjdGlvbi5jcmVhdGVkIiwidHJhbnNhY3Rpb24uc3RhdHVzLnVwZGF0ZWQiXSwKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdFTkFCTEVEJywKICAgICAgICAgICAgICAgIGNyZWF0ZWRfYXQgPSAxNjI1MTI2NDAwMDAwLAogICAgICAgICAgICAgICAgdXBkYXRlZF9hdCA9IDE2MjUxMjY0MDAwMDAKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBXZWJob29rKAogICAgICAgICAgICAgICAgaWQgPSAnMTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDAwJywKICAgICAgICAgICAgICAgIHVybCA9ICdodHRwczovL2V4YW1wbGUuY29tL3dlYmhvb2snLAogICAgICAgICAgICAgICAgZXZlbnRzID0gWyJ0cmFuc2FjdGlvbi5jcmVhdGVkIiwidHJhbnNhY3Rpb24uc3RhdHVzLnVwZGF0ZWQiXSwKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdFTkFCTEVEJywKICAgICAgICAgICAgICAgIGNyZWF0ZWRfYXQgPSAxNjI1MTI2NDAwMDAwLAogICAgICAgICAgICAgICAgdXBkYXRlZF9hdCA9IDE2MjUxMjY0MDAwMDAsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0V2ViaG9vayhzZWxmKToKICAgICAgICAiIiJUZXN0IFdlYmhvb2siIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_webhook_event.py b/test/test_webhook_event.py index c77f6c36..3845c1c3 100644 --- a/test/test_webhook_event.py +++ b/test/test_webhook_event.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.webhook_event import WebhookEvent - - -class TestWebhookEvent(unittest.TestCase): - """WebhookEvent unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testWebhookEvent(self): - """Test WebhookEvent""" - # inst = WebhookEvent() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndlYmhvb2tfZXZlbnQgaW1wb3J0IFdlYmhvb2tFdmVudAoKCmNsYXNzIFRlc3RXZWJob29rRXZlbnQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiV2ViaG9va0V2ZW50IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdFdlYmhvb2tFdmVudChzZWxmKToKICAgICAgICAiIiJUZXN0IFdlYmhvb2tFdmVudCIiIgogICAgICAgICMgaW5zdCA9IFdlYmhvb2tFdmVudCgpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_webhook_metric.py b/test/test_webhook_metric.py index 0729e7ee..c928ddf4 100644 --- a/test/test_webhook_metric.py +++ b/test/test_webhook_metric.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.webhook_metric import WebhookMetric - - -class TestWebhookMetric(unittest.TestCase): - """WebhookMetric unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> WebhookMetric: - """Test WebhookMetric - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `WebhookMetric` - """ - model = WebhookMetric() - if include_optional: - return WebhookMetric( - value = '55' - ) - else: - return WebhookMetric( - value = '55', - ) - """ - - def testWebhookMetric(self): - """Test WebhookMetric""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndlYmhvb2tfbWV0cmljIGltcG9ydCBXZWJob29rTWV0cmljCgoKY2xhc3MgVGVzdFdlYmhvb2tNZXRyaWModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiV2ViaG9va01ldHJpYyB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gV2ViaG9va01ldHJpYzoKICAgICAgICAiIiJUZXN0IFdlYmhvb2tNZXRyaWMKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgV2ViaG9va01ldHJpY2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFdlYmhvb2tNZXRyaWMoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBXZWJob29rTWV0cmljKAogICAgICAgICAgICAgICAgdmFsdWUgPSAnNTUnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gV2ViaG9va01ldHJpYygKICAgICAgICAgICAgICAgIHZhbHVlID0gJzU1JywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RXZWJob29rTWV0cmljKHNlbGYpOgogICAgICAgICIiIlRlc3QgV2ViaG9va01ldHJpYyIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_webhook_paginated_response.py b/test/test_webhook_paginated_response.py index 893429b1..2a70fb21 100644 --- a/test/test_webhook_paginated_response.py +++ b/test/test_webhook_paginated_response.py @@ -1,74 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.webhook_paginated_response import WebhookPaginatedResponse - - -class TestWebhookPaginatedResponse(unittest.TestCase): - """WebhookPaginatedResponse unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> WebhookPaginatedResponse: - """Test WebhookPaginatedResponse - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `WebhookPaginatedResponse` - """ - model = WebhookPaginatedResponse() - if include_optional: - return WebhookPaginatedResponse( - data = [ - fireblocks.models.webhook.Webhook( - id = '123e4567-e89b-12d3-a456-426614174000', - url = 'https://example.com/webhook', - description = 'This webhook is used for transactions notifications', - events = ["transaction.created","transaction.status.updated"], - status = 'ENABLED', - created_at = 1625126400000, - updated_at = 1625126400000, ) - ], - next = 'eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9' - ) - else: - return WebhookPaginatedResponse( - data = [ - fireblocks.models.webhook.Webhook( - id = '123e4567-e89b-12d3-a456-426614174000', - url = 'https://example.com/webhook', - description = 'This webhook is used for transactions notifications', - events = ["transaction.created","transaction.status.updated"], - status = 'ENABLED', - created_at = 1625126400000, - updated_at = 1625126400000, ) - ], - ) - """ - - def testWebhookPaginatedResponse(self): - """Test WebhookPaginatedResponse""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndlYmhvb2tfcGFnaW5hdGVkX3Jlc3BvbnNlIGltcG9ydCBXZWJob29rUGFnaW5hdGVkUmVzcG9uc2UKCgpjbGFzcyBUZXN0V2ViaG9va1BhZ2luYXRlZFJlc3BvbnNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIldlYmhvb2tQYWdpbmF0ZWRSZXNwb25zZSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gV2ViaG9va1BhZ2luYXRlZFJlc3BvbnNlOgogICAgICAgICIiIlRlc3QgV2ViaG9va1BhZ2luYXRlZFJlc3BvbnNlCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFdlYmhvb2tQYWdpbmF0ZWRSZXNwb25zZWAKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFdlYmhvb2tQYWdpbmF0ZWRSZXNwb25zZSgpCiAgICAgICAgaWYgaW5jbHVkZV9vcHRpb25hbDoKICAgICAgICAgICAgcmV0dXJuIFdlYmhvb2tQYWdpbmF0ZWRSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMud2ViaG9vay5XZWJob29rKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcxMjNlNDU2Ny1lODliLTEyZDMtYTQ1Ni00MjY2MTQxNzQwMDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vd2ViaG9vaycsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGlzIHdlYmhvb2sgaXMgdXNlZCBmb3IgdHJhbnNhY3Rpb25zIG5vdGlmaWNhdGlvbnMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRzID0gWyJ0cmFuc2FjdGlvbi5jcmVhdGVkIiwidHJhbnNhY3Rpb24uc3RhdHVzLnVwZGF0ZWQiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdFTkFCTEVEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRfYXQgPSAxNjI1MTI2NDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZF9hdCA9IDE2MjUxMjY0MDAwMDAsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgbmV4dCA9ICdlSjBlWEFpT2lKS1YxUWlMQ0poYkdjT2lKSVV6STFOaUo5JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFdlYmhvb2tQYWdpbmF0ZWRSZXNwb25zZSgKICAgICAgICAgICAgICAgIGRhdGEgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMud2ViaG9vay5XZWJob29rKAogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICcxMjNlNDU2Ny1lODliLTEyZDMtYTQ1Ni00MjY2MTQxNzQwMDAnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vd2ViaG9vaycsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGlzIHdlYmhvb2sgaXMgdXNlZCBmb3IgdHJhbnNhY3Rpb25zIG5vdGlmaWNhdGlvbnMnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRzID0gWyJ0cmFuc2FjdGlvbi5jcmVhdGVkIiwidHJhbnNhY3Rpb24uc3RhdHVzLnVwZGF0ZWQiXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdFTkFCTEVEJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRfYXQgPSAxNjI1MTI2NDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZF9hdCA9IDE2MjUxMjY0MDAwMDAsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFdlYmhvb2tQYWdpbmF0ZWRSZXNwb25zZShzZWxmKToKICAgICAgICAiIiJUZXN0IFdlYmhvb2tQYWdpbmF0ZWRSZXNwb25zZSIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_webhooks_api.py b/test/test_webhooks_api.py index 9ab07c0e..8960e508 100644 --- a/test/test_webhooks_api.py +++ b/test/test_webhooks_api.py @@ -1,46 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.webhooks_api import WebhooksApi - - -class TestWebhooksApi(unittest.TestCase): - """WebhooksApi unit test stubs""" - - def setUp(self) -> None: - self.api = WebhooksApi() - - def tearDown(self) -> None: - pass - - def test_resend_transaction_webhooks(self) -> None: - """Test case for resend_transaction_webhooks - - Resend webhooks for a transaction by ID - """ - pass - - def test_resend_webhooks(self) -> None: - """Test case for resend_webhooks - - Resend failed webhooks - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLndlYmhvb2tzX2FwaSBpbXBvcnQgV2ViaG9va3NBcGkKCgpjbGFzcyBUZXN0V2ViaG9va3NBcGkodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiV2ViaG9va3NBcGkgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgc2VsZi5hcGkgPSBXZWJob29rc0FwaSgpCgogICAgZGVmIHRlYXJEb3duKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3Jlc2VuZF90cmFuc2FjdGlvbl93ZWJob29rcyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgcmVzZW5kX3RyYW5zYWN0aW9uX3dlYmhvb2tzCgogICAgICAgIFJlc2VuZCB3ZWJob29rcyBmb3IgYSB0cmFuc2FjdGlvbiBieSBJRAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9yZXNlbmRfd2ViaG9va3Moc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHJlc2VuZF93ZWJob29rcwoKICAgICAgICBSZXNlbmQgZmFpbGVkIHdlYmhvb2tzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_webhooks_v2_api.py b/test/test_webhooks_v2_api.py index f692b503..f1232499 100644 --- a/test/test_webhooks_v2_api.py +++ b/test/test_webhooks_v2_api.py @@ -1,123 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.webhooks_v2_api import WebhooksV2Api - - -class TestWebhooksV2Api(unittest.TestCase): - """WebhooksV2Api unit test stubs""" - - def setUp(self) -> None: - self.api = WebhooksV2Api() - - def tearDown(self) -> None: - pass - - def test_create_webhook(self) -> None: - """Test case for create_webhook - - Create a new webhook - """ - pass - - def test_delete_webhook(self) -> None: - """Test case for delete_webhook - - Delete webhook - """ - pass - - def test_get_metrics(self) -> None: - """Test case for get_metrics - - Get webhook metrics - """ - pass - - def test_get_notification(self) -> None: - """Test case for get_notification - - Get notification by id - """ - pass - - def test_get_notification_attempts(self) -> None: - """Test case for get_notification_attempts - - Get notification attempts - """ - pass - - def test_get_notifications(self) -> None: - """Test case for get_notifications - - Get all notifications by webhook id - """ - pass - - def test_get_resend_job_status(self) -> None: - """Test case for get_resend_job_status - - Get resend job status - """ - pass - - def test_get_webhook(self) -> None: - """Test case for get_webhook - - Get webhook by id - """ - pass - - def test_get_webhooks(self) -> None: - """Test case for get_webhooks - - Get all webhooks - """ - pass - - def test_resend_failed_notifications(self) -> None: - """Test case for resend_failed_notifications - - Resend failed notifications - """ - pass - - def test_resend_notification_by_id(self) -> None: - """Test case for resend_notification_by_id - - Resend notification by id - """ - pass - - def test_resend_notifications_by_resource_id(self) -> None: - """Test case for resend_notifications_by_resource_id - - Resend notifications by resource Id - """ - pass - - def test_update_webhook(self) -> None: - """Test case for update_webhook - - Update webhook - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLndlYmhvb2tzX3YyX2FwaSBpbXBvcnQgV2ViaG9va3NWMkFwaQoKCmNsYXNzIFRlc3RXZWJob29rc1YyQXBpKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIldlYmhvb2tzVjJBcGkgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgc2VsZi5hcGkgPSBXZWJob29rc1YyQXBpKCkKCiAgICBkZWYgdGVhckRvd24oc2VsZikgLT4gTm9uZToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfY3JlYXRlX3dlYmhvb2soc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGNyZWF0ZV93ZWJob29rCgogICAgICAgIENyZWF0ZSBhIG5ldyB3ZWJob29rCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2RlbGV0ZV93ZWJob29rKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBkZWxldGVfd2ViaG9vawoKICAgICAgICBEZWxldGUgd2ViaG9vawogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfbWV0cmljcyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X21ldHJpY3MKCiAgICAgICAgR2V0IHdlYmhvb2sgbWV0cmljcwogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfbm90aWZpY2F0aW9uKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfbm90aWZpY2F0aW9uCgogICAgICAgIEdldCBub3RpZmljYXRpb24gYnkgaWQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X25vdGlmaWNhdGlvbl9hdHRlbXB0cyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X25vdGlmaWNhdGlvbl9hdHRlbXB0cwoKICAgICAgICBHZXQgbm90aWZpY2F0aW9uIGF0dGVtcHRzCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF9ub3RpZmljYXRpb25zKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfbm90aWZpY2F0aW9ucwoKICAgICAgICBHZXQgYWxsIG5vdGlmaWNhdGlvbnMgYnkgd2ViaG9vayBpZAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9nZXRfcmVzZW5kX2pvYl9zdGF0dXMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF9yZXNlbmRfam9iX3N0YXR1cwoKICAgICAgICBHZXQgcmVzZW5kIGpvYiBzdGF0dXMKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3dlYmhvb2soc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF93ZWJob29rCgogICAgICAgIEdldCB3ZWJob29rIGJ5IGlkCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF93ZWJob29rcyhzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X3dlYmhvb2tzCgogICAgICAgIEdldCBhbGwgd2ViaG9va3MKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfcmVzZW5kX2ZhaWxlZF9ub3RpZmljYXRpb25zKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciByZXNlbmRfZmFpbGVkX25vdGlmaWNhdGlvbnMKCiAgICAgICAgUmVzZW5kIGZhaWxlZCBub3RpZmljYXRpb25zCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X3Jlc2VuZF9ub3RpZmljYXRpb25fYnlfaWQoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHJlc2VuZF9ub3RpZmljYXRpb25fYnlfaWQKCiAgICAgICAgUmVzZW5kIG5vdGlmaWNhdGlvbiBieSBpZAogICAgICAgICIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdF9yZXNlbmRfbm90aWZpY2F0aW9uc19ieV9yZXNvdXJjZV9pZChzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgcmVzZW5kX25vdGlmaWNhdGlvbnNfYnlfcmVzb3VyY2VfaWQKCiAgICAgICAgUmVzZW5kIG5vdGlmaWNhdGlvbnMgYnkgcmVzb3VyY2UgSWQKICAgICAgICAiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfdXBkYXRlX3dlYmhvb2soc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIHVwZGF0ZV93ZWJob29rCgogICAgICAgIFVwZGF0ZSB3ZWJob29rCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_whitelist_ip_addresses_api.py b/test/test_whitelist_ip_addresses_api.py index 31de0cd8..7e9b6c61 100644 --- a/test/test_whitelist_ip_addresses_api.py +++ b/test/test_whitelist_ip_addresses_api.py @@ -1,39 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.whitelist_ip_addresses_api import WhitelistIpAddressesApi - - -class TestWhitelistIpAddressesApi(unittest.TestCase): - """WhitelistIpAddressesApi unit test stubs""" - - def setUp(self) -> None: - self.api = WhitelistIpAddressesApi() - - def tearDown(self) -> None: - pass - - def test_get_whitelist_ip_addresses(self) -> None: - """Test case for get_whitelist_ip_addresses - - Get whitelisted ip addresses for an API Key - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLndoaXRlbGlzdF9pcF9hZGRyZXNzZXNfYXBpIGltcG9ydCBXaGl0ZWxpc3RJcEFkZHJlc3Nlc0FwaQoKCmNsYXNzIFRlc3RXaGl0ZWxpc3RJcEFkZHJlc3Nlc0FwaSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJXaGl0ZWxpc3RJcEFkZHJlc3Nlc0FwaSB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZikgLT4gTm9uZToKICAgICAgICBzZWxmLmFwaSA9IFdoaXRlbGlzdElwQWRkcmVzc2VzQXBpKCkKCiAgICBkZWYgdGVhckRvd24oc2VsZikgLT4gTm9uZToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3doaXRlbGlzdF9pcF9hZGRyZXNzZXMoc2VsZikgLT4gTm9uZToKICAgICAgICAiIiJUZXN0IGNhc2UgZm9yIGdldF93aGl0ZWxpc3RfaXBfYWRkcmVzc2VzCgogICAgICAgIEdldCB3aGl0ZWxpc3RlZCBpcCBhZGRyZXNzZXMgZm9yIGFuIEFQSSBLZXkKICAgICAgICAiIiIKICAgICAgICBwYXNzCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_withdraw_request.py b/test/test_withdraw_request.py index e3f74c83..3735aef2 100644 --- a/test/test_withdraw_request.py +++ b/test/test_withdraw_request.py @@ -1,59 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.withdraw_request import WithdrawRequest - - -class TestWithdrawRequest(unittest.TestCase): - """WithdrawRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> WithdrawRequest: - """Test WithdrawRequest - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `WithdrawRequest` - """ - model = WithdrawRequest() - if include_optional: - return WithdrawRequest( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - fee = '7', - fee_level = 'MEDIUM', - tx_note = 'withdraw request id b70701f4-d7b1-4795-a8ee-b09cdb5b850d #ETH', - amount = '7' - ) - else: - return WithdrawRequest( - id = 'b70701f4-d7b1-4795-a8ee-b09cdb5b850d', - ) - """ - - def testWithdrawRequest(self): - """Test WithdrawRequest""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndpdGhkcmF3X3JlcXVlc3QgaW1wb3J0IFdpdGhkcmF3UmVxdWVzdAoKCmNsYXNzIFRlc3RXaXRoZHJhd1JlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiV2l0aGRyYXdSZXF1ZXN0IHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBXaXRoZHJhd1JlcXVlc3Q6CiAgICAgICAgIiIiVGVzdCBXaXRoZHJhd1JlcXVlc3QKICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgV2l0aGRyYXdSZXF1ZXN0YAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gV2l0aGRyYXdSZXF1ZXN0KCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gV2l0aGRyYXdSZXF1ZXN0KAogICAgICAgICAgICAgICAgaWQgPSAnYjcwNzAxZjQtZDdiMS00Nzk1LWE4ZWUtYjA5Y2RiNWI4NTBkJywKICAgICAgICAgICAgICAgIGZlZSA9ICc3JywKICAgICAgICAgICAgICAgIGZlZV9sZXZlbCA9ICdNRURJVU0nLAogICAgICAgICAgICAgICAgdHhfbm90ZSA9ICd3aXRoZHJhdyByZXF1ZXN0IGlkIGI3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCAjRVRIJywKICAgICAgICAgICAgICAgIGFtb3VudCA9ICc3JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFdpdGhkcmF3UmVxdWVzdCgKICAgICAgICAgICAgICAgIGlkID0gJ2I3MDcwMWY0LWQ3YjEtNDc5NS1hOGVlLWIwOWNkYjViODUwZCcsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0V2l0aGRyYXdSZXF1ZXN0KHNlbGYpOgogICAgICAgICIiIlRlc3QgV2l0aGRyYXdSZXF1ZXN0IiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_workflow_config_status.py b/test/test_workflow_config_status.py index 689ee684..3556abf0 100644 --- a/test/test_workflow_config_status.py +++ b/test/test_workflow_config_status.py @@ -1,36 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.workflow_config_status import WorkflowConfigStatus - - -class TestWorkflowConfigStatus(unittest.TestCase): - """WorkflowConfigStatus unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testWorkflowConfigStatus(self): - """Test WorkflowConfigStatus""" - # inst = WorkflowConfigStatus() - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndvcmtmbG93X2NvbmZpZ19zdGF0dXMgaW1wb3J0IFdvcmtmbG93Q29uZmlnU3RhdHVzCgoKY2xhc3MgVGVzdFdvcmtmbG93Q29uZmlnU3RhdHVzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIldvcmtmbG93Q29uZmlnU3RhdHVzIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVzdFdvcmtmbG93Q29uZmlnU3RhdHVzKHNlbGYpOgogICAgICAgICIiIlRlc3QgV29ya2Zsb3dDb25maWdTdGF0dXMiIiIKICAgICAgICAjIGluc3QgPSBXb3JrZmxvd0NvbmZpZ1N0YXR1cygpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_workflow_configuration_id.py b/test/test_workflow_configuration_id.py index 4c7cc080..27d3f9a4 100644 --- a/test/test_workflow_configuration_id.py +++ b/test/test_workflow_configuration_id.py @@ -1,55 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.workflow_configuration_id import WorkflowConfigurationId - - -class TestWorkflowConfigurationId(unittest.TestCase): - """WorkflowConfigurationId unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> WorkflowConfigurationId: - """Test WorkflowConfigurationId - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `WorkflowConfigurationId` - """ - model = WorkflowConfigurationId() - if include_optional: - return WorkflowConfigurationId( - config_id = '' - ) - else: - return WorkflowConfigurationId( - config_id = '', - ) - """ - - def testWorkflowConfigurationId(self): - """Test WorkflowConfigurationId""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndvcmtmbG93X2NvbmZpZ3VyYXRpb25faWQgaW1wb3J0IFdvcmtmbG93Q29uZmlndXJhdGlvbklkCgoKY2xhc3MgVGVzdFdvcmtmbG93Q29uZmlndXJhdGlvbklkKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIldvcmtmbG93Q29uZmlndXJhdGlvbklkIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBXb3JrZmxvd0NvbmZpZ3VyYXRpb25JZDoKICAgICAgICAiIiJUZXN0IFdvcmtmbG93Q29uZmlndXJhdGlvbklkCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFdvcmtmbG93Q29uZmlndXJhdGlvbklkYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gV29ya2Zsb3dDb25maWd1cmF0aW9uSWQoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBXb3JrZmxvd0NvbmZpZ3VyYXRpb25JZCgKICAgICAgICAgICAgICAgIGNvbmZpZ19pZCA9ICcnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gV29ya2Zsb3dDb25maWd1cmF0aW9uSWQoCiAgICAgICAgICAgICAgICBjb25maWdfaWQgPSAnJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RXb3JrZmxvd0NvbmZpZ3VyYXRpb25JZChzZWxmKToKICAgICAgICAiIiJUZXN0IFdvcmtmbG93Q29uZmlndXJhdGlvbklkIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_workflow_execution_operation.py b/test/test_workflow_execution_operation.py index 1e2ac807..31739122 100644 --- a/test/test_workflow_execution_operation.py +++ b/test/test_workflow_execution_operation.py @@ -1,110 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.workflow_execution_operation import WorkflowExecutionOperation - - -class TestWorkflowExecutionOperation(unittest.TestCase): - """WorkflowExecutionOperation unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> WorkflowExecutionOperation: - """Test WorkflowExecutionOperation - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `WorkflowExecutionOperation` - """ - model = WorkflowExecutionOperation() - if include_optional: - return WorkflowExecutionOperation( - operation_id = '', - status = 'PENDING', - operation_type = 'DISBURSEMENT', - validation_failure = fireblocks.models.disbursement_validation_failure.DisbursementValidationFailure( - reason = 'ACCOUNT_NOT_FOUND', - data = { - 'key' : null - }, ), - execution = fireblocks.models.disbursement_operation_execution.DisbursementOperationExecution( - input = fireblocks.models.disbursement_operation_input.DisbursementOperationInput( - amount = '', - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ), - output = fireblocks.models.disbursement_operation_execution_output.DisbursementOperationExecutionOutput( - instruction_set = [ - fireblocks.models.disbursement_instruction_output.DisbursementInstructionOutput( - amount = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - fee = fireblocks.models.asset_amount.AssetAmount( - amount = '', - asset_id = '', ), - payee_account = null, ) - ], ), - payout_id = '', - started_at = 1.337, - finished_at = 1.337, - failure = fireblocks.models.operation_execution_failure.OperationExecutionFailure( - reason = '', - data = { - 'key' : null - }, ), ), - preview = fireblocks.models.disbursement_operation_preview.DisbursementOperationPreview( - input = fireblocks.models.disbursement_operation_input.DisbursementOperationInput( - amount = '', - payment_account = fireblocks.models.account.Account( - account_id = '', - account_type = 'EXCHANGE_ACCOUNT', ), - instruction_set = [ - null - ], ), - output = fireblocks.models.disbursement_operation_preview_output.DisbursementOperationPreviewOutput( - instruction_set = [ - null - ], ), - failure = fireblocks.models.operation_execution_failure.OperationExecutionFailure( - reason = '', - data = { - 'key' : null - }, ), ) - ) - else: - return WorkflowExecutionOperation( - operation_id = '', - status = 'PENDING', - operation_type = 'DISBURSEMENT', - ) - """ - - def testWorkflowExecutionOperation(self): - """Test WorkflowExecutionOperation""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndvcmtmbG93X2V4ZWN1dGlvbl9vcGVyYXRpb24gaW1wb3J0IFdvcmtmbG93RXhlY3V0aW9uT3BlcmF0aW9uCgoKY2xhc3MgVGVzdFdvcmtmbG93RXhlY3V0aW9uT3BlcmF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIldvcmtmbG93RXhlY3V0aW9uT3BlcmF0aW9uIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgbWFrZV9pbnN0YW5jZShzZWxmLCBpbmNsdWRlX29wdGlvbmFsKSAtPiBXb3JrZmxvd0V4ZWN1dGlvbk9wZXJhdGlvbjoKICAgICAgICAiIiJUZXN0IFdvcmtmbG93RXhlY3V0aW9uT3BlcmF0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFdvcmtmbG93RXhlY3V0aW9uT3BlcmF0aW9uYAogICAgICAgICIiIgogICAgICAgIG1vZGVsID0gV29ya2Zsb3dFeGVjdXRpb25PcGVyYXRpb24oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBXb3JrZmxvd0V4ZWN1dGlvbk9wZXJhdGlvbigKICAgICAgICAgICAgICAgIG9wZXJhdGlvbl9pZCA9ICcnLAogICAgICAgICAgICAgICAgc3RhdHVzID0gJ1BFTkRJTkcnLAogICAgICAgICAgICAgICAgb3BlcmF0aW9uX3R5cGUgPSAnRElTQlVSU0VNRU5UJywKICAgICAgICAgICAgICAgIHZhbGlkYXRpb25fZmFpbHVyZSA9IGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF92YWxpZGF0aW9uX2ZhaWx1cmUuRGlzYnVyc2VtZW50VmFsaWRhdGlvbkZhaWx1cmUoCiAgICAgICAgICAgICAgICAgICAgcmVhc29uID0gJ0FDQ09VTlRfTk9UX0ZPVU5EJywgCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgJ2tleScgOiBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sICksCiAgICAgICAgICAgICAgICBleGVjdXRpb24gPSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2V4ZWN1dGlvbi5EaXNidXJzZW1lbnRPcGVyYXRpb25FeGVjdXRpb24oCiAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2lucHV0LkRpc2J1cnNlbWVudE9wZXJhdGlvbklucHV0KAogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHBheW1lbnRfYWNjb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFjY291bnQuQWNjb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfaWQgPSAnJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X3R5cGUgPSAnRVhDSEFOR0VfQUNDT1VOVCcsICksIAogICAgICAgICAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbl9zZXQgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCAKICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfb3BlcmF0aW9uX2V4ZWN1dGlvbl9vdXRwdXQuRGlzYnVyc2VtZW50T3BlcmF0aW9uRXhlY3V0aW9uT3V0cHV0KAogICAgICAgICAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbl9zZXQgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5kaXNidXJzZW1lbnRfaW5zdHJ1Y3Rpb25fb3V0cHV0LkRpc2J1cnNlbWVudEluc3RydWN0aW9uT3V0cHV0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9IGZpcmVibG9ja3MubW9kZWxzLmFzc2V0X2Ftb3VudC5Bc3NldEFtb3VudCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldF9pZCA9ICcnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWUgPSBmaXJlYmxvY2tzLm1vZGVscy5hc3NldF9hbW91bnQuQXNzZXRBbW91bnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfaWQgPSAnJywgKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF5ZWVfYWNjb3VudCA9IG51bGwsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sICksIAogICAgICAgICAgICAgICAgICAgIHBheW91dF9pZCA9ICcnLCAKICAgICAgICAgICAgICAgICAgICBzdGFydGVkX2F0ID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkX2F0ID0gMS4zMzcsIAogICAgICAgICAgICAgICAgICAgIGZhaWx1cmUgPSBmaXJlYmxvY2tzLm1vZGVscy5vcGVyYXRpb25fZXhlY3V0aW9uX2ZhaWx1cmUuT3BlcmF0aW9uRXhlY3V0aW9uRmFpbHVyZSgKICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2tleScgOiBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCApLCApLAogICAgICAgICAgICAgICAgcHJldmlldyA9IGZpcmVibG9ja3MubW9kZWxzLmRpc2J1cnNlbWVudF9vcGVyYXRpb25fcHJldmlldy5EaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3KAogICAgICAgICAgICAgICAgICAgIGlucHV0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9pbnB1dC5EaXNidXJzZW1lbnRPcGVyYXRpb25JbnB1dCgKICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICBwYXltZW50X2FjY291bnQgPSBmaXJlYmxvY2tzLm1vZGVscy5hY2NvdW50LkFjY291bnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2lkID0gJycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF90eXBlID0gJ0VYQ0hBTkdFX0FDQ09VTlQnLCApLCAKICAgICAgICAgICAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb25fc2V0ID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKSwgCiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gZmlyZWJsb2Nrcy5tb2RlbHMuZGlzYnVyc2VtZW50X29wZXJhdGlvbl9wcmV2aWV3X291dHB1dC5EaXNidXJzZW1lbnRPcGVyYXRpb25QcmV2aWV3T3V0cHV0KAogICAgICAgICAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbl9zZXQgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCApLCAKICAgICAgICAgICAgICAgICAgICBmYWlsdXJlID0gZmlyZWJsb2Nrcy5tb2RlbHMub3BlcmF0aW9uX2V4ZWN1dGlvbl9mYWlsdXJlLk9wZXJhdGlvbkV4ZWN1dGlvbkZhaWx1cmUoCiAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbiA9ICcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdrZXknIDogbnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgKSwgKQogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFdvcmtmbG93RXhlY3V0aW9uT3BlcmF0aW9uKAogICAgICAgICAgICAgICAgb3BlcmF0aW9uX2lkID0gJycsCiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnUEVORElORycsCiAgICAgICAgICAgICAgICBvcGVyYXRpb25fdHlwZSA9ICdESVNCVVJTRU1FTlQnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFdvcmtmbG93RXhlY3V0aW9uT3BlcmF0aW9uKHNlbGYpOgogICAgICAgICIiIlRlc3QgV29ya2Zsb3dFeGVjdXRpb25PcGVyYXRpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_workspace.py b/test/test_workspace.py index 08909461..ec3a40cd 100644 --- a/test/test_workspace.py +++ b/test/test_workspace.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.workspace import Workspace - - -class TestWorkspace(unittest.TestCase): - """Workspace unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> Workspace: - """Test Workspace - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `Workspace` - """ - model = Workspace() - if include_optional: - return Workspace( - id = '123e4567-e89b-12d3-a456-426614174000', - name = 'My Workspace' - ) - else: - return Workspace( - id = '123e4567-e89b-12d3-a456-426614174000', - name = 'My Workspace', - ) - """ - - def testWorkspace(self): - """Test Workspace""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndvcmtzcGFjZSBpbXBvcnQgV29ya3NwYWNlCgoKY2xhc3MgVGVzdFdvcmtzcGFjZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJXb3Jrc3BhY2UgdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFdvcmtzcGFjZToKICAgICAgICAiIiJUZXN0IFdvcmtzcGFjZQogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBXb3Jrc3BhY2VgCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBXb3Jrc3BhY2UoKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBXb3Jrc3BhY2UoCiAgICAgICAgICAgICAgICBpZCA9ICcxMjNlNDU2Ny1lODliLTEyZDMtYTQ1Ni00MjY2MTQxNzQwMDAnLAogICAgICAgICAgICAgICAgbmFtZSA9ICdNeSBXb3Jrc3BhY2UnCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gV29ya3NwYWNlKAogICAgICAgICAgICAgICAgaWQgPSAnMTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDAwJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnTXkgV29ya3NwYWNlJywKICAgICAgICApCiAgICAgICAgIiIiCgogICAgZGVmIHRlc3RXb3Jrc3BhY2Uoc2VsZik6CiAgICAgICAgIiIiVGVzdCBXb3Jrc3BhY2UiIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_workspace_api.py b/test/test_workspace_api.py index 77f6502f..7a5c2842 100644 --- a/test/test_workspace_api.py +++ b/test/test_workspace_api.py @@ -1,39 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.workspace_api import WorkspaceApi - - -class TestWorkspaceApi(unittest.TestCase): - """WorkspaceApi unit test stubs""" - - def setUp(self) -> None: - self.api = WorkspaceApi() - - def tearDown(self) -> None: - pass - - def test_get_workspace(self) -> None: - """Test case for get_workspace - - Get workspace - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLndvcmtzcGFjZV9hcGkgaW1wb3J0IFdvcmtzcGFjZUFwaQoKCmNsYXNzIFRlc3RXb3Jrc3BhY2VBcGkodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiV29ya3NwYWNlQXBpIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKSAtPiBOb25lOgogICAgICAgIHNlbGYuYXBpID0gV29ya3NwYWNlQXBpKCkKCiAgICBkZWYgdGVhckRvd24oc2VsZikgLT4gTm9uZToKICAgICAgICBwYXNzCgogICAgZGVmIHRlc3RfZ2V0X3dvcmtzcGFjZShzZWxmKSAtPiBOb25lOgogICAgICAgICIiIlRlc3QgY2FzZSBmb3IgZ2V0X3dvcmtzcGFjZQoKICAgICAgICBHZXQgd29ya3NwYWNlCiAgICAgICAgIiIiCiAgICAgICAgcGFzcwoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_workspace_status_beta_api.py b/test/test_workspace_status_beta_api.py index c682261a..ee5e8eeb 100644 --- a/test/test_workspace_status_beta_api.py +++ b/test/test_workspace_status_beta_api.py @@ -1,39 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.api.workspace_status_beta_api import WorkspaceStatusBetaApi - - -class TestWorkspaceStatusBetaApi(unittest.TestCase): - """WorkspaceStatusBetaApi unit test stubs""" - - def setUp(self) -> None: - self.api = WorkspaceStatusBetaApi() - - def tearDown(self) -> None: - pass - - def test_get_workspace_status(self) -> None: - """Test case for get_workspace_status - - Returns current workspace status - """ - pass - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MuYXBpLndvcmtzcGFjZV9zdGF0dXNfYmV0YV9hcGkgaW1wb3J0IFdvcmtzcGFjZVN0YXR1c0JldGFBcGkKCgpjbGFzcyBUZXN0V29ya3NwYWNlU3RhdHVzQmV0YUFwaSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJXb3Jrc3BhY2VTdGF0dXNCZXRhQXBpIHVuaXQgdGVzdCBzdHVicyIiIgoKICAgIGRlZiBzZXRVcChzZWxmKSAtPiBOb25lOgogICAgICAgIHNlbGYuYXBpID0gV29ya3NwYWNlU3RhdHVzQmV0YUFwaSgpCgogICAgZGVmIHRlYXJEb3duKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZXN0X2dldF93b3Jrc3BhY2Vfc3RhdHVzKHNlbGYpIC0+IE5vbmU6CiAgICAgICAgIiIiVGVzdCBjYXNlIGZvciBnZXRfd29ya3NwYWNlX3N0YXR1cwoKICAgICAgICBSZXR1cm5zIGN1cnJlbnQgd29ya3NwYWNlIHN0YXR1cwogICAgICAgICIiIgogICAgICAgIHBhc3MKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_write_abi_function.py b/test/test_write_abi_function.py index 3d8dddce..004c1dc8 100644 --- a/test/test_write_abi_function.py +++ b/test/test_write_abi_function.py @@ -1,105 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.write_abi_function import WriteAbiFunction - - -class TestWriteAbiFunction(unittest.TestCase): - """WriteAbiFunction unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> WriteAbiFunction: - """Test WriteAbiFunction - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `WriteAbiFunction` - """ - model = WriteAbiFunction() - if include_optional: - return WriteAbiFunction( - state_mutability = 'nonpayable', - outputs = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], ) - ], - type = 'function', - name = '', - inputs = [ - fireblocks.models.parameter_with_value.ParameterWithValue( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], - value = 'true', - function_value = null, ) - ], - description = '' - ) - else: - return WriteAbiFunction( - state_mutability = 'nonpayable', - type = 'function', - inputs = [ - fireblocks.models.parameter_with_value.ParameterWithValue( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], - value = 'true', - function_value = null, ) - ], - ) - """ - - def testWriteAbiFunction(self): - """Test WriteAbiFunction""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndyaXRlX2FiaV9mdW5jdGlvbiBpbXBvcnQgV3JpdGVBYmlGdW5jdGlvbgoKCmNsYXNzIFRlc3RXcml0ZUFiaUZ1bmN0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIldyaXRlQWJpRnVuY3Rpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFdyaXRlQWJpRnVuY3Rpb246CiAgICAgICAgIiIiVGVzdCBXcml0ZUFiaUZ1bmN0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFdyaXRlQWJpRnVuY3Rpb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBXcml0ZUFiaUZ1bmN0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gV3JpdGVBYmlGdW5jdGlvbigKICAgICAgICAgICAgICAgIHN0YXRlX211dGFiaWxpdHkgPSAnbm9ucGF5YWJsZScsCiAgICAgICAgICAgICAgICBvdXRwdXRzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlci5QYXJhbWV0ZXIoCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXIuUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGUgbmFtZSBvZiB0aGUgdG9rZW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICB0eXBlID0gJ2Z1bmN0aW9uJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnJywKICAgICAgICAgICAgICAgIGlucHV0cyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXJfd2l0aF92YWx1ZS5QYXJhbWV0ZXJXaXRoVmFsdWUoCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXIuUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGUgbmFtZSBvZiB0aGUgdG9rZW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gJ3RydWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25fdmFsdWUgPSBudWxsLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJycKICAgICAgICAgICAgKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBXcml0ZUFiaUZ1bmN0aW9uKAogICAgICAgICAgICAgICAgc3RhdGVfbXV0YWJpbGl0eSA9ICdub25wYXlhYmxlJywKICAgICAgICAgICAgICAgIHR5cGUgPSAnZnVuY3Rpb24nLAogICAgICAgICAgICAgICAgaW5wdXRzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlcl93aXRoX3ZhbHVlLlBhcmFtZXRlcldpdGhWYWx1ZSgKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdfbmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGUgbmFtZSBvZiB0aGUgdG9rZW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxfdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50cyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlci5QYXJhbWV0ZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdfbmFtZScsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1RoZSBuYW1lIG9mIHRoZSB0b2tlbicsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdzdHJpbmcnLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCAKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAndHJ1ZScsIAogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbl92YWx1ZSA9IG51bGwsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFdyaXRlQWJpRnVuY3Rpb24oc2VsZik6CiAgICAgICAgIiIiVGVzdCBXcml0ZUFiaUZ1bmN0aW9uIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/test/test_write_call_function_dto.py b/test/test_write_call_function_dto.py index dc2fc2d6..fbe03ac5 100644 --- a/test/test_write_call_function_dto.py +++ b/test/test_write_call_function_dto.py @@ -1,63 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.write_call_function_dto import WriteCallFunctionDto - - -class TestWriteCallFunctionDto(unittest.TestCase): - """WriteCallFunctionDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> WriteCallFunctionDto: - """Test WriteCallFunctionDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `WriteCallFunctionDto` - """ - model = WriteCallFunctionDto() - if include_optional: - return WriteCallFunctionDto( - vault_account_id = '0', - abi_function = None, - amount = '12.345', - fee_level = 'MEDIUM', - fee = '2000', - note = '', - use_gasless = False, - external_id = '0192e4f5-924e-7bb9-8e5b-c748270feb38' - ) - else: - return WriteCallFunctionDto( - vault_account_id = '0', - abi_function = None, - ) - """ - - def testWriteCallFunctionDto(self): - """Test WriteCallFunctionDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndyaXRlX2NhbGxfZnVuY3Rpb25fZHRvIGltcG9ydCBXcml0ZUNhbGxGdW5jdGlvbkR0bwoKCmNsYXNzIFRlc3RXcml0ZUNhbGxGdW5jdGlvbkR0byh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAiIiJXcml0ZUNhbGxGdW5jdGlvbkR0byB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gV3JpdGVDYWxsRnVuY3Rpb25EdG86CiAgICAgICAgIiIiVGVzdCBXcml0ZUNhbGxGdW5jdGlvbkR0bwogICAgICAgIGluY2x1ZGVfb3B0aW9uYWwgaXMgYSBib29sZWFuLCB3aGVuIEZhbHNlIG9ubHkgcmVxdWlyZWQKICAgICAgICBwYXJhbXMgYXJlIGluY2x1ZGVkLCB3aGVuIFRydWUgYm90aCByZXF1aXJlZCBhbmQKICAgICAgICBvcHRpb25hbCBwYXJhbXMgYXJlIGluY2x1ZGVkIiIiCiAgICAgICAgIyB1bmNvbW1lbnQgYmVsb3cgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGBXcml0ZUNhbGxGdW5jdGlvbkR0b2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFdyaXRlQ2FsbEZ1bmN0aW9uRHRvKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gV3JpdGVDYWxsRnVuY3Rpb25EdG8oCiAgICAgICAgICAgICAgICB2YXVsdF9hY2NvdW50X2lkID0gJzAnLAogICAgICAgICAgICAgICAgYWJpX2Z1bmN0aW9uID0gTm9uZSwKICAgICAgICAgICAgICAgIGFtb3VudCA9ICcxMi4zNDUnLAogICAgICAgICAgICAgICAgZmVlX2xldmVsID0gJ01FRElVTScsCiAgICAgICAgICAgICAgICBmZWUgPSAnMjAwMCcsCiAgICAgICAgICAgICAgICBub3RlID0gJycsCiAgICAgICAgICAgICAgICB1c2VfZ2FzbGVzcyA9IEZhbHNlLAogICAgICAgICAgICAgICAgZXh0ZXJuYWxfaWQgPSAnMDE5MmU0ZjUtOTI0ZS03YmI5LThlNWItYzc0ODI3MGZlYjM4JwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFdyaXRlQ2FsbEZ1bmN0aW9uRHRvKAogICAgICAgICAgICAgICAgdmF1bHRfYWNjb3VudF9pZCA9ICcwJywKICAgICAgICAgICAgICAgIGFiaV9mdW5jdGlvbiA9IE5vbmUsCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0V3JpdGVDYWxsRnVuY3Rpb25EdG8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBXcml0ZUNhbGxGdW5jdGlvbkR0byIiIgogICAgICAgICMgaW5zdF9yZXFfb25seSA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPUZhbHNlKQogICAgICAgICMgaW5zdF9yZXFfYW5kX29wdGlvbmFsID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9VHJ1ZSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigpCg== \ No newline at end of file diff --git a/test/test_write_call_function_dto_abi_function.py b/test/test_write_call_function_dto_abi_function.py index d055ed5e..3a219a40 100644 --- a/test/test_write_call_function_dto_abi_function.py +++ b/test/test_write_call_function_dto_abi_function.py @@ -1,136 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.write_call_function_dto_abi_function import ( - WriteCallFunctionDtoAbiFunction, -) - - -class TestWriteCallFunctionDtoAbiFunction(unittest.TestCase): - """WriteCallFunctionDtoAbiFunction unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> WriteCallFunctionDtoAbiFunction: - """Test WriteCallFunctionDtoAbiFunction - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `WriteCallFunctionDtoAbiFunction` - """ - model = WriteCallFunctionDtoAbiFunction() - if include_optional: - return WriteCallFunctionDtoAbiFunction( - state_mutability = 'nonpayable', - outputs = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], ) - ], - type = 'function', - name = 'approve', - inputs = [ - fireblocks.models.parameter_with_value.ParameterWithValue( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], - value = 'true', - function_value = null, ) - ], - description = '', - discriminator = [13], - accounts = [ - fireblocks.models.sol_account_with_value.SOLAccountWithValue( - name = 'mint', - signer = False, - writable = True, - address = '4PVcDXAkAgQkVx4puiSXdZ5H8BrTqUzstJBKKWFy3XsH', ) - ], - args = [ - fireblocks.models.sol_parameter_with_value.SolParameterWithValue( - value = '1000000', - name = 'mint', - type = 'u8', ) - ] - ) - else: - return WriteCallFunctionDtoAbiFunction( - state_mutability = 'nonpayable', - type = 'function', - name = 'approve', - inputs = [ - fireblocks.models.parameter_with_value.ParameterWithValue( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', - components = [ - fireblocks.models.parameter.Parameter( - name = '_name', - description = 'The name of the token', - internal_type = 'string', - type = 'string', ) - ], - value = 'true', - function_value = null, ) - ], - discriminator = [13], - accounts = [ - fireblocks.models.sol_account_with_value.SOLAccountWithValue( - name = 'mint', - signer = False, - writable = True, - address = '4PVcDXAkAgQkVx4puiSXdZ5H8BrTqUzstJBKKWFy3XsH', ) - ], - args = [ - fireblocks.models.sol_parameter_with_value.SolParameterWithValue( - value = '1000000', - name = 'mint', - type = 'u8', ) - ], - ) - """ - - def testWriteCallFunctionDtoAbiFunction(self): - """Test WriteCallFunctionDtoAbiFunction""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndyaXRlX2NhbGxfZnVuY3Rpb25fZHRvX2FiaV9mdW5jdGlvbiBpbXBvcnQgKAogICAgV3JpdGVDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbiwKKQoKCmNsYXNzIFRlc3RXcml0ZUNhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICIiIldyaXRlQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb24gdW5pdCB0ZXN0IHN0dWJzIiIiCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiBtYWtlX2luc3RhbmNlKHNlbGYsIGluY2x1ZGVfb3B0aW9uYWwpIC0+IFdyaXRlQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb246CiAgICAgICAgIiIiVGVzdCBXcml0ZUNhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uCiAgICAgICAgaW5jbHVkZV9vcHRpb25hbCBpcyBhIGJvb2xlYW4sIHdoZW4gRmFsc2Ugb25seSByZXF1aXJlZAogICAgICAgIHBhcmFtcyBhcmUgaW5jbHVkZWQsIHdoZW4gVHJ1ZSBib3RoIHJlcXVpcmVkIGFuZAogICAgICAgIG9wdGlvbmFsIHBhcmFtcyBhcmUgaW5jbHVkZWQiIiIKICAgICAgICAjIHVuY29tbWVudCBiZWxvdyB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYFdyaXRlQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb25gCiAgICAgICAgIiIiCiAgICAgICAgbW9kZWwgPSBXcml0ZUNhbGxGdW5jdGlvbkR0b0FiaUZ1bmN0aW9uKCkKICAgICAgICBpZiBpbmNsdWRlX29wdGlvbmFsOgogICAgICAgICAgICByZXR1cm4gV3JpdGVDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbigKICAgICAgICAgICAgICAgIHN0YXRlX211dGFiaWxpdHkgPSAnbm9ucGF5YWJsZScsCiAgICAgICAgICAgICAgICBvdXRwdXRzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnBhcmFtZXRlci5QYXJhbWV0ZXIoCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3R5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5wYXJhbWV0ZXIuUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICdUaGUgbmFtZSBvZiB0aGUgdG9rZW4nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnc3RyaW5nJywgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICB0eXBlID0gJ2Z1bmN0aW9uJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnYXBwcm92ZScsCiAgICAgICAgICAgICAgICBpbnB1dHMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyX3dpdGhfdmFsdWUuUGFyYW1ldGVyV2l0aFZhbHVlKAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ19uYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1RoZSBuYW1lIG9mIHRoZSB0b2tlbicsIAogICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyLlBhcmFtZXRlcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ19uYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxfdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ3N0cmluZycsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9ICd0cnVlJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uX3ZhbHVlID0gbnVsbCwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICcnLAogICAgICAgICAgICAgICAgZGlzY3JpbWluYXRvciA9IFsxM10sCiAgICAgICAgICAgICAgICBhY2NvdW50cyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5zb2xfYWNjb3VudF93aXRoX3ZhbHVlLlNPTEFjY291bnRXaXRoVmFsdWUoCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnbWludCcsIAogICAgICAgICAgICAgICAgICAgICAgICBzaWduZXIgPSBGYWxzZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlID0gVHJ1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSAnNFBWY0RYQWtBZ1FrVng0cHVpU1hkWjVIOEJyVHFVenN0SkJLS1dGeTNYc0gnLCApCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMuc29sX3BhcmFtZXRlcl93aXRoX3ZhbHVlLlNvbFBhcmFtZXRlcldpdGhWYWx1ZSgKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAnMTAwMDAwMCcsIAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ21pbnQnLCAKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICd1OCcsICkKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICkKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gV3JpdGVDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbigKICAgICAgICAgICAgICAgIHN0YXRlX211dGFiaWxpdHkgPSAnbm9ucGF5YWJsZScsCiAgICAgICAgICAgICAgICB0eXBlID0gJ2Z1bmN0aW9uJywKICAgICAgICAgICAgICAgIG5hbWUgPSAnYXBwcm92ZScsCiAgICAgICAgICAgICAgICBpbnB1dHMgPSBbCiAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyX3dpdGhfdmFsdWUuUGFyYW1ldGVyV2l0aFZhbHVlKAogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ19uYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gJ1RoZSBuYW1lIG9mIHRoZSB0b2tlbicsIAogICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF90eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ3N0cmluZycsIAogICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyZWJsb2Nrcy5tb2RlbHMucGFyYW1ldGVyLlBhcmFtZXRlcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ19uYW1lJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnVGhlIG5hbWUgb2YgdGhlIHRva2VuJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxfdHlwZSA9ICdzdHJpbmcnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ3N0cmluZycsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIAogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9ICd0cnVlJywgCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uX3ZhbHVlID0gbnVsbCwgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBkaXNjcmltaW5hdG9yID0gWzEzXSwKICAgICAgICAgICAgICAgIGFjY291bnRzID0gWwogICAgICAgICAgICAgICAgICAgIGZpcmVibG9ja3MubW9kZWxzLnNvbF9hY2NvdW50X3dpdGhfdmFsdWUuU09MQWNjb3VudFdpdGhWYWx1ZSgKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdtaW50JywgCiAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lciA9IEZhbHNlLCAKICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGFibGUgPSBUcnVlLCAKICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9ICc0UFZjRFhBa0FnUWtWeDRwdWlTWGRaNUg4QnJUcVV6c3RKQktLV0Z5M1hzSCcsICkKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICAgICAgICBmaXJlYmxvY2tzLm1vZGVscy5zb2xfcGFyYW1ldGVyX3dpdGhfdmFsdWUuU29sUGFyYW1ldGVyV2l0aFZhbHVlKAogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9ICcxMDAwMDAwJywgCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnbWludCcsIAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ3U4JywgKQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgKQogICAgICAgICIiIgoKICAgIGRlZiB0ZXN0V3JpdGVDYWxsRnVuY3Rpb25EdG9BYmlGdW5jdGlvbihzZWxmKToKICAgICAgICAiIiJUZXN0IFdyaXRlQ2FsbEZ1bmN0aW9uRHRvQWJpRnVuY3Rpb24iIiIKICAgICAgICAjIGluc3RfcmVxX29ubHkgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1GYWxzZSkKICAgICAgICAjIGluc3RfcmVxX2FuZF9vcHRpb25hbCA9IHNlbGYubWFrZV9pbnN0YW5jZShpbmNsdWRlX29wdGlvbmFsPVRydWUpCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHVuaXR0ZXN0Lm1haW4oKQo= \ No newline at end of file diff --git a/test/test_write_call_function_response_dto.py b/test/test_write_call_function_response_dto.py index f6bb2b4f..549a042c 100644 --- a/test/test_write_call_function_response_dto.py +++ b/test/test_write_call_function_response_dto.py @@ -1,57 +1 @@ -# coding: utf-8 - -""" -Fireblocks API - -Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com) - -The version of the OpenAPI document: 1.6.2 -Contact: developers@fireblocks.com -Generated by OpenAPI Generator (https://openapi-generator.tech) - -Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from fireblocks.models.write_call_function_response_dto import ( - WriteCallFunctionResponseDto, -) - - -class TestWriteCallFunctionResponseDto(unittest.TestCase): - """WriteCallFunctionResponseDto unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> WriteCallFunctionResponseDto: - """Test WriteCallFunctionResponseDto - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included""" - # uncomment below to create an instance of `WriteCallFunctionResponseDto` - """ - model = WriteCallFunctionResponseDto() - if include_optional: - return WriteCallFunctionResponseDto( - tx_id = '' - ) - else: - return WriteCallFunctionResponseDto( - tx_id = '', - ) - """ - - def testWriteCallFunctionResponseDto(self): - """Test WriteCallFunctionResponseDto""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - - -if __name__ == "__main__": - unittest.main() +IyBjb2Rpbmc6IHV0Zi04CgoiIiIKRmlyZWJsb2NrcyBBUEkKCkZpcmVibG9ja3MgcHJvdmlkZXMgYSBzdWl0ZSBvZiBhcHBsaWNhdGlvbnMgdG8gbWFuYWdlIGRpZ2l0YWwgYXNzZXQgb3BlcmF0aW9ucyBhbmQgYSBjb21wbGV0ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSB0byBidWlsZCB5b3VyIGJ1c2luZXNzIG9uIHRoZSBibG9ja2NoYWluLiAgLSBWaXNpdCBvdXIgd2Vic2l0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW0ZpcmVibG9ja3MgV2Vic2l0ZV0oaHR0cHM6Ly9maXJlYmxvY2tzLmNvbSkgLSBWaXNpdCBvdXIgZGV2ZWxvcGVyIGRvY3M6IFtGaXJlYmxvY2tzIERldlBvcnRhbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmZpcmVibG9ja3MuY29tKQoKVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuNi4yCkNvbnRhY3Q6IGRldmVsb3BlcnNAZmlyZWJsb2Nrcy5jb20KR2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpCgpEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuCiIiIiAgIyBub3FhOiBFNTAxCgoKaW1wb3J0IHVuaXR0ZXN0Cgpmcm9tIGZpcmVibG9ja3MubW9kZWxzLndyaXRlX2NhbGxfZnVuY3Rpb25fcmVzcG9uc2VfZHRvIGltcG9ydCAoCiAgICBXcml0ZUNhbGxGdW5jdGlvblJlc3BvbnNlRHRvLAopCgoKY2xhc3MgVGVzdFdyaXRlQ2FsbEZ1bmN0aW9uUmVzcG9uc2VEdG8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIiIiV3JpdGVDYWxsRnVuY3Rpb25SZXNwb25zZUR0byB1bml0IHRlc3Qgc3R1YnMiIiIKCiAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgcGFzcwoKICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIG1ha2VfaW5zdGFuY2Uoc2VsZiwgaW5jbHVkZV9vcHRpb25hbCkgLT4gV3JpdGVDYWxsRnVuY3Rpb25SZXNwb25zZUR0bzoKICAgICAgICAiIiJUZXN0IFdyaXRlQ2FsbEZ1bmN0aW9uUmVzcG9uc2VEdG8KICAgICAgICBpbmNsdWRlX29wdGlvbmFsIGlzIGEgYm9vbGVhbiwgd2hlbiBGYWxzZSBvbmx5IHJlcXVpcmVkCiAgICAgICAgcGFyYW1zIGFyZSBpbmNsdWRlZCwgd2hlbiBUcnVlIGJvdGggcmVxdWlyZWQgYW5kCiAgICAgICAgb3B0aW9uYWwgcGFyYW1zIGFyZSBpbmNsdWRlZCIiIgogICAgICAgICMgdW5jb21tZW50IGJlbG93IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgV3JpdGVDYWxsRnVuY3Rpb25SZXNwb25zZUR0b2AKICAgICAgICAiIiIKICAgICAgICBtb2RlbCA9IFdyaXRlQ2FsbEZ1bmN0aW9uUmVzcG9uc2VEdG8oKQogICAgICAgIGlmIGluY2x1ZGVfb3B0aW9uYWw6CiAgICAgICAgICAgIHJldHVybiBXcml0ZUNhbGxGdW5jdGlvblJlc3BvbnNlRHRvKAogICAgICAgICAgICAgICAgdHhfaWQgPSAnJwogICAgICAgICAgICApCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIFdyaXRlQ2FsbEZ1bmN0aW9uUmVzcG9uc2VEdG8oCiAgICAgICAgICAgICAgICB0eF9pZCA9ICcnLAogICAgICAgICkKICAgICAgICAiIiIKCiAgICBkZWYgdGVzdFdyaXRlQ2FsbEZ1bmN0aW9uUmVzcG9uc2VEdG8oc2VsZik6CiAgICAgICAgIiIiVGVzdCBXcml0ZUNhbGxGdW5jdGlvblJlc3BvbnNlRHRvIiIiCiAgICAgICAgIyBpbnN0X3JlcV9vbmx5ID0gc2VsZi5tYWtlX2luc3RhbmNlKGluY2x1ZGVfb3B0aW9uYWw9RmFsc2UpCiAgICAgICAgIyBpbnN0X3JlcV9hbmRfb3B0aW9uYWwgPSBzZWxmLm1ha2VfaW5zdGFuY2UoaW5jbHVkZV9vcHRpb25hbD1UcnVlKQoKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB1bml0dGVzdC5tYWluKCkK \ No newline at end of file diff --git a/tox.ini b/tox.ini index 8faf8b6e..e4cbb435 100644 --- a/tox.ini +++ b/tox.ini @@ -1,9 +1 @@ -[tox] -envlist = py3 - -[testenv] -deps=-r{toxinidir}/requirements.txt - -r{toxinidir}/test-requirements.txt - -commands= - pytest --cov=fireblocks +W3RveF0KZW52bGlzdCA9IHB5MwoKW3Rlc3RlbnZdCmRlcHM9LXJ7dG94aW5pZGlyfS9yZXF1aXJlbWVudHMudHh0CiAgICAgLXJ7dG94aW5pZGlyfS90ZXN0LXJlcXVpcmVtZW50cy50eHQKCmNvbW1hbmRzPQogICBweXRlc3QgLS1jb3Y9ZmlyZWJsb2Nrcwo= \ No newline at end of file